@pacem/pacem 1.0.3 → 1.0.4
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/browser/pacem-2d.js +1 -1
- package/dist/browser/pacem-2d.min.js +1 -1
- package/dist/browser/pacem-3d.js +1 -1
- package/dist/browser/pacem-3d.min.js +1 -1
- package/dist/browser/pacem-charts.js +1 -1
- package/dist/browser/pacem-charts.min.js +1 -1
- package/dist/browser/pacem-cms.js +1 -1
- package/dist/browser/pacem-cms.min.js +1 -1
- package/dist/browser/pacem-core.js +2 -2
- package/dist/browser/pacem-core.js.map +1 -1
- package/dist/browser/pacem-core.min.js +2 -2
- package/dist/browser/pacem-foundation.js +1 -1
- package/dist/browser/pacem-foundation.min.js +1 -1
- package/dist/browser/pacem-fx.js +1 -1
- package/dist/browser/pacem-fx.min.js +1 -1
- package/dist/browser/pacem-logging.js +1 -1
- package/dist/browser/pacem-logging.min.js +1 -1
- package/dist/browser/pacem-maps.js +1 -1
- package/dist/browser/pacem-maps.min.js +1 -1
- package/dist/browser/pacem-media.js +1 -1
- package/dist/browser/pacem-media.min.js +1 -1
- package/dist/browser/pacem-networking.js +1 -1
- package/dist/browser/pacem-networking.min.js +1 -1
- package/dist/browser/pacem-numerical.js +1 -1
- package/dist/browser/pacem-numerical.min.js +1 -1
- package/dist/browser/pacem-plus.js +1 -1
- package/dist/browser/pacem-plus.min.js +1 -1
- package/dist/browser/pacem-scaffolding.js +1 -1
- package/dist/browser/pacem-scaffolding.min.js +1 -1
- package/dist/browser/pacem-ui.js +27 -24
- package/dist/browser/pacem-ui.js.map +1 -1
- package/dist/browser/pacem-ui.min.js +2 -2
- package/dist/bundle/pacem.min.mjs +92 -92
- package/dist/bundle/pacem.mjs +29 -25
- package/dist/bundle/pacem.mjs.map +2 -2
- package/dist/typings/index.d.ts +1 -1
- package/package.json +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* @pacem/pacem v1.0.
|
|
2
|
+
* @pacem/pacem v1.0.4 (https://js.pacem.it)
|
|
3
3
|
* Pacem (https://pacem.it)
|
|
4
4
|
* Licensed under Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
(function(pacemFoundation){"use strict";const pi_half=.5*Math.PI,EASINGS={linear:e=>e,sineIn:e=>Math.sin(e*pi_half-pi_half)+1,sineOut:e=>Math.sin(e*pi_half),sineInOut:e=>.5*Math.sin(e*Math.PI-pi_half)+.5,expoIn:e=>(Math.pow(Math.E,e)-1)/(Math.E-1),expoOut:e=>Math.log(e*(Math.E-1)+1),expoInOut:e=>e<.5?.5*Easings.expoIn(2*e):.5*(1+Easings.expoOut(2*e-1))};function assembleEasing(e,t){const r=t=>e(t);return r.css=t,r}const Easings={linear:assembleEasing(EASINGS.linear,"linear"),sineIn:assembleEasing(EASINGS.sineIn,"cubic-bezier(0.12, 0, 0.39, 0)"),sineOut:assembleEasing(EASINGS.sineOut,"cubic-bezier(0.61, 1, 0.88, 1)"),sineInOut:assembleEasing(EASINGS.sineInOut,"cubic-bezier(0.37, 0, 0.63, 1)"),expoIn:assembleEasing(EASINGS.expoIn,"cubic-bezier(0.7, 0, 0.84, 0)"),expoOut:assembleEasing(EASINGS.expoOut,"cubic-bezier(0.16, 1, 0.3, 1)"),expoInOut:assembleEasing(EASINGS.expoInOut,"cubic-bezier(0.87, 0, 0.13, 1)")};class DeepCloner{constructor(){}static clone(e){return(new DeepCloner)._clone(e)}_clone(e){let t=new WeakMap;return function e(r){if(!("object"!=typeof r||null===r||r instanceof Element||r instanceof FileSystemHandle||r instanceof File)){if(Array.isArray(r))return r.map(e);if(r instanceof Date)return new Date(r.valueOf());if(r instanceof RegExp)return new RegExp(r);if(t.has(r))return t.get(r);{let n=Object.assign({},r);return t.set(r,n),Object.keys(n).forEach(t=>{n[t]=e(r[t])}),n}}return r}(e)}}const REF_ID="$refId";var JsonFunctionConversion;!function(e){e[e.Ignore=0]="Ignore",e.Reference="reference",e.Plain="plain"}(JsonFunctionConversion||(JsonFunctionConversion={}));class JsonFnStore{static{this._jsonFnWeakMap=new WeakMap}static{this._jsonFnMap=new Map}static store(e){const t=this._jsonFnWeakMap;if(!t.has(e)){const r=pacemFoundation.Keys.uniqueCode();t.set(e,r),this._jsonFnMap.set(r,e)}return t.get(e)}static retrieve(e){return this._jsonFnMap.get(e)}static remove(e){const t=this.retrieve(e);this._jsonFnMap.delete(e),this._jsonFnWeakMap.delete(t)}}class Json{constructor(e){this._options=e}static serialize(e,t){return new Json(t)._serialize(e)}static deserialize(e){return(new Json)._deserialize(e)}_serialize(e){let t=DeepCloner.clone(e),r=[REF_ID],n=this._flatten(t,0,null,r);return JSON.stringify(n,r.sort())}_deserialize(json){let hasRefs=!1,obj=JSON.parse(json,(key,value)=>{const elPattern=/^\$<#(.+)>$/,fnPattern=/^\$<fn:([^\x05]+)>$/,regexPattern=/^\$<regex:(.+)>$/,fnRefPattern=/^\$<fn#(.+)>$/;let arr;if(key===REF_ID)hasRefs=!0;else if("string"==typeof value){if((arr=regexPattern.exec(value))&&arr.length>1){const e=arr[1],t=e.lastIndexOf("|");return new RegExp(e.substr(0,t),e.substr(t+1))}if((arr=elPattern.exec(value))&&arr.length>1)return document.getElementById(arr[1]);if((arr=fnPattern.exec(value))&&arr.length>1)return eval(arr[1]);if((arr=fnRefPattern.exec(value))&&arr.length>1)return JsonFnStore.retrieve(arr[1])}return value});return hasRefs?this._revive(obj):obj}_flatten(e,t=0,r,n){if(r=r||new WeakSet,n=n||[],e instanceof Element){if(!e.id)return;return`$<#${e.id}>`}if(e instanceof RegExp)return`$<regex:${e.source}|${e.flags}>`;if(!("object"!=typeof e||null==e||e instanceof Date))return Array.isArray(e)?e.map(e=>this._flatten(e,t,r,n)):r.has(e)?e[REF_ID]=e[REF_ID]||"$#ref_"+t++:(r.add(e),Object.keys(e).forEach(s=>{-1===n.indexOf(s)&&n.push(s),e[s]=this._flatten(e[s],t,r,n)}),e);if("function"==typeof e)switch(this._options?.functions){case JsonFunctionConversion.Reference:return"$<fn#"+JsonFnStore.store(e)+">";case JsonFunctionConversion.Plain:return"$<fn:"+e+">";default:return}return e}_revive(e){let t={};const r=/^\$#ref_(.+)$/;return function e(n){if("object"==typeof n&&null!==n){if(Array.isArray(n))return n.map(e);REF_ID in n&&(t[n[REF_ID]]=n,delete n[REF_ID]),Object.keys(n).forEach(t=>{n[t]=e(n[t])})}else if("string"==typeof n&&r.test(n)){let e=r.exec(n);return t[e[0]]}return n}(e)}}class DeferPromise{constructor(){this.deferred=null;var e=this;e.promise=new Promise(function(t,r){e.deferred={resolve:t,reject:r,promise:e}})}then(e,t){return this.promise.then(e,t)}finally(e){return this.promise.then(e,e),this}success(e){return this.promise.then(e,null),this}error(e){return this.promise.then(null,e),this}static defer(){return(new DeferPromise).deferred}}const PACEM_CORE_DEFAULT="pacem",DEFAULT_DOWNLOAD_FILENAME="download",stopPropagationHandler=e=>{e.stopPropagation()},preventDefaultHandler=e=>{e.preventDefault()},avoidHandler=e=>{e.preventDefault(),e.stopPropagation()},SEGMENT_PATTERN=/^\/[^\/]+/,ROUTE_SEGMENT_PATTERN=/\/\{([a-z\$_][\w]*)\??\}/;class Utils{static get core(){const e=window.Pacem;var t=e&&e.Configuration&&e.Configuration.core||PACEM_CORE_DEFAULT;return window[t]=window[t]||{}}static get customElements(){return window.customElements}static uniqueId(){return pacemFoundation.Keys.uniqueId()}static uniqueCode(){return pacemFoundation.Keys.uniqueCode()}static randomString(e){return pacemFoundation.Keys.randomString(e)}static parseDate(e){return pacemFoundation.Dates.parse(e)}static copyToClipboard(e){return navigator.clipboard?navigator.clipboard.writeText(e):new Promise((t,r)=>{const n=document.createElement("textarea");n.value=e,n.style.opacity="0",document.body.appendChild(n);try{n.select(),document.execCommand("copy"),n.remove(),t()}catch(e){r(e)}})}static{this.Json={stringify:Json.serialize,parse:Json.deserialize}}static{this.Dates={now:()=>Utils.parseDate(Date.now()),parse:Utils.parseDate,isLeapYear:pacemFoundation.Dates.isLeapYear,daysInMonth:pacemFoundation.Dates.daysInMonth,isDate:pacemFoundation.Dates.isDate,dateOnly:pacemFoundation.Dates.dateOnly,addMonths:pacemFoundation.Dates.addMonths,addDays:pacemFoundation.Dates.addDays,daysBetween:pacemFoundation.Dates.daysBetween}}static colorize(e,t){const r=38,n=.245,s=.6;var o,a,i;a="string"==typeof(o=e instanceof HTMLElement?t:e)?pacemFoundation.Colors.parse(o):{r:o[0],g:o[1],b:o[2]};const l=pacemFoundation.Colors.hsl(a);if(i=`brightness(50%) sepia(1) hue-rotate(${l.h-r}deg) saturate(${l.s-n+1}) brightness(${l.l-s+1})`,o!==t)return i;(void 0).style.filter=i}static cssEscape(e){return escape(e).replace("%","\\")}static{this.Css={colorize:Utils.colorize,escape:Utils.cssEscape,getVariableValue:e=>getComputedStyle(document.documentElement).getPropertyValue(e),setVariable(e,t){getComputedStyle(document.documentElement).setProperty(e,t)},isClassDefined(e){const t=new RegExp("."+e+"($|[s.,])");for(let e=0;e<document.styleSheets.length;e++){const r=document.styleSheets.item(e);try{const e=r.cssRules;for(let n=0;n<e.length;n++){const e=r.cssRules.item(n);if(t.test(e.selectorText))return!0}}catch(e){e instanceof DOMException&&console.warn("Couldn't access cssRules of stylesheet \""+r.href+'".')}}return!1},deserializeTransform(e){const t=e instanceof Element?getComputedStyle(e):e;let r,n=1,s=0,o=0,a=1,i=0,l=0,c=/^matrix\((.*)\)$/.exec(t.transform);return c&&c.length>1&&6==(r=c[1].split(",")).length&&(n=parseFloat(r[0]),s=parseFloat(r[1]),o=parseFloat(r[2]),a=parseFloat(r[3]),i+=parseFloat(r[4]),l+=parseFloat(r[5])),{a:n,b:s,c:o,d:a,e:i,f:l}}}}static{this.leftPad=pacemFoundation.Strings.leftPad}static{this.formatString=pacemFoundation.Strings.format}static{this.diff=pacemFoundation.Strings.diff}static{this.Strings={leftPad:pacemFoundation.Strings.leftPad,format:pacemFoundation.Strings.format,diff:pacemFoundation.Strings.diff,stripHTML:e=>(new DOMParser).parseFromString(e,"text/html").body.textContent||""}}static{this.Blobs={toDataURL:pacemFoundation.Blobs.blobToDataURL,fromDataURL:pacemFoundation.Blobs.dataURLToBlob,toText:pacemFoundation.Blobs.blobToText,fromText:pacemFoundation.Blobs.textToBlob}}static{this.Images={load:pacemFoundation.Imaging.loadImage,resize:pacemFoundation.Imaging.resizeImage}}static loadImage(e){return new Promise((t,r)=>{const n=new Image;n.src=e,n.complete?t(n):(n.onload=e=>{t(n)},n.onerror=e=>{r()})})}static blobToDataURL(e){return Utils.Blobs.toDataURL(e)}static dataURLToBlob(e){return Utils.Blobs.fromDataURL(e)}static blobToText(e,t){return Utils.Blobs.toText(e,t)}static textToBlob(e,t="text/plain"){return Utils.Blobs.fromText(e,t)}static resizeImage(e,t,r,n){var s=DeferPromise.defer();return Utils.blobToDataURL(e).then(Utils.loadImage).then(o=>{const a=o.width,i=o.height;let l=document.createElement("canvas");l.width=a,l.height=i;let c=l.getContext("2d");if(a>t||i>r){const e=a/i;let m,d;t/r<e?(d=t,m=t/e):(m=r,d=r*e),l.width=d,l.height=m;const p=n>0&&n<=1;let h;p&&(c.fillStyle="#000",c.fillRect(0,0,l.width,l.height)),Utils.cropImageOntoCanvas(o,c),h=p?c.canvas.toDataURL("image/jpeg",n):c.canvas.toDataURL(),s.resolve(Utils.dataURLToBlob(h))}else s.resolve(e)},e=>{}),s.promise}static cropImage(e,t,r,n){var s=DeferPromise.defer();let o=new Image;return o.crossOrigin="anonymous",o.onload=function(e){let a=document.createElement("canvas"),i=a.getContext("2d");t&&(a.width=t),r&&(a.height=r);const l=n>0&&n<=1;l&&(i.fillStyle="#000",i.fillRect(0,0,a.width,a.height)),Utils.cropImageOntoCanvas(o,i),s.resolve(l?a.toDataURL("image/jpeg",n):a.toDataURL())},o.src=e,s.promise}static getUserMediaFunctions(){var e=[];let t=[navigator.getUserMedia,navigator.webkitGetUserMedia,navigator.msGetUserMedia,navigator.mozGetUserMedia].filter(function(e,t){return"function"==typeof e});return t.length&&(e=t),e}static cropImageOntoCanvas(e,t,r,n){t.imageSmoothingEnabled=t.mozImageSmoothingEnabled=t.oImageSmoothingEnabled=t.webkitImageSmoothingEnabled=!0;let s=t.canvas.width,o=t.canvas.height,a=s,i=o,l=r||1*e.width,c=n||1*e.height;s/o>l/c?(o=s/l*c,t.drawImage(e,0,.5*(-o+i),a,o)):(s=o/c*l,t.drawImage(e,-Math.abs(.5*(-s+a)),0,s,i))}static get _domURL(){return window.URL||window.webkitURL||window}static snapshotElement(e,t,r="image/png",n){function s(e){return new Promise((s,o)=>{const a=document.createElement("canvas"),i=e.width,l=e.height;if(i>0)if(l>0){a.width=i,a.height=l;const o=a.getContext("2d");Utils.isNullOrEmpty(t)||(o.fillStyle=t,o.fillRect(0,0,i,l)),o.drawImage(e,0,0),a.toBlob(e=>{s(e)},r,n)}else o("Image has height zero.");else o("Image has width zero.")})}return e instanceof HTMLCanvasElement?s(e):new Promise((t,r)=>{const n=[];function o(e){const t=new Promise((t,r)=>{fetch(e instanceof HTMLImageElement?e.src:e.href.baseVal).then(e=>e.blob()).then(e=>Utils.blobToDataURL(e)).then(r=>{var n;n=r,e instanceof HTMLImageElement?e.src=n:e.setAttribute("href",n),t()})});n.push(t)}function a(e,t){!function(e,t){const r=getComputedStyle(t);for(let t=0;t<r.length;t++){const n=r.item(t);e.style[n]=r[n]}}(e,t),e instanceof HTMLImageElement||e instanceof SVGImageElement?o(e):e instanceof HTMLCanvasElement&&function(e,t){const r=new Promise((r,n)=>{const s=new Image;s.crossOrigin="anonymous",s.width=t.width,s.height=t.height,s.style.cssText=e.style.cssText,s.onload=()=>{e.replaceWith(s),r()},s.src=t.toDataURL()});n.push(r)}(e,t);const r=e.children.length;for(let n=0;n<r;n++){const r=e.children.item(n),s=t.children.item(n);r.tagName===s.tagName&&a(r,s)}}if(e instanceof SVGElement){const t=e.cloneNode(!0);a(t,e),Promise.all(n).then(r=>{e=t,l()})}else{var i=document.implementation.createHTMLDocument("");i.write(e.outerHTML),i.documentElement.setAttribute("xmlns",i.documentElement.namespaceURI);const t=document.evaluate(".//"+e.localName,i.body,null,XPathResult.FIRST_ORDERED_NODE_TYPE,null).singleNodeValue;t.setAttribute("xmlns",i.documentElement.namespaceURI),a(t,e),Promise.all(n).then(r=>{const n=document.createElementNS("http://www.w3.org/2000/svg","svg"),s=Utils.offset(e);n.setAttribute("viewBox",`0 0 ${s.width} ${s.height}`),n.setAttribute("width",s.width.toString()),n.setAttribute("height",s.height.toString()),n.innerHTML=`<foreignObject width="${s.width}" height="${s.height}">${t.outerHTML}</foreignObject>`,e=n,l()})}function l(){const r=(new XMLSerializer).serializeToString(e),n=new Image;n.crossOrigin="anonymous";const o="data:image/svg+xml;charset=utf8,"+encodeURIComponent(r);n.onload=()=>{s(n).then(t)},n.src=o}})}static async download(e,t,r="application/download"){if("string"==typeof e){const o=e;let a,i={};Utils.isNullOrEmpty(t)||("object"==typeof t?(i={credentials:t.credentials,headers:t.headers},a=t.filename||a,r=t.mime||r):a=t);var n=await fetch(o,i);if(n.ok){if(Utils.isNullOrEmpty(a)){const e="Content-Disposition";if(n.headers.has(e)){const t=n.headers.get(e),r=/^attachment; filename=\"?([^;\"]+)\"?(;|$)/.exec(t);r.length>1&&(a=r[1])}else a=DEFAULT_DOWNLOAD_FILENAME}var s=await n.blob();const e=a.split(/[\\\/]/g).join("_");return Utils.download(s,e)}{const e=await n.text();throw new Error(e)}}{const r=e,n="string"==typeof t&&t||DEFAULT_DOWNLOAD_FILENAME,s=document.createElement("a");if(s.setAttribute("href",Utils._domURL.createObjectURL(r)),s.setAttribute("download",n),document.createEvent){var o=document.createEvent("MouseEvents");o.initEvent("click",!0,!0),s.dispatchEvent(o)}else s.click()}}static isDOMReady(){return"complete"===document.readyState}static onDOMReady(e){window.addEventListener("load",e,!1)}static moveChildren(e,t){return Utils.moveItems(e.childNodes,t)}static moveItems(e,t){let r,n=[];for(let s=e.length-1;s>=0;s--){let o=e instanceof NodeList?e.item(s):e[s];t.insertBefore(o,r),n.unshift(o),r=o}return n}static is(e,t){return(e.matches||e.matchesSelector||e.msMatchesSelector||e.mozMatchesSelector||e.webkitMatchesSelector||e.oMatchesSelector).call(e,t)}static lang(e){return e.lang||document.documentElement.lang||navigator.language}static jsonSortStringify(e){return Utils.isNull(e)?e:Utils.Json.stringify(e)}static{this.Browsers={detect:pacemFoundation.detect}}static cookies(e){const t=(e??document.cookie).split(";"),r={};for(var n of t){const e=n.split("=");if(e.length<2)continue;const t=(e[0]||"").trim(),s=(e[1]||"").trim();Object.defineProperty(r,t,{configurable:!1,enumerable:!0,writable:!1,value:decodeURIComponent(s.split("+").join(" "))})}return r}static{this.Cookies={getAll:async e=>{const t="cookieStore"in window?window.cookieStore:null,r=[];if(Utils.isNull(t)){const t=Utils.cookies();for(let n in t)(Utils.isNullOrEmpty(e)||e===n)&&r.push({name:n,value:t[n]});return r}return await t.getAll(e)},stringify:e=>{let t=`${e.name}=${encodeURIComponent(e.value??"")}`;return Utils.isNullOrEmpty(e.domain)||(t+=`; domain=${encodeURIComponent(e.domain)}`),Utils.isNullOrEmpty(e.path)||(t+=`; path=${encodeURIComponent(e.path)}`),e.maxAge>0&&(t+=`; max-age=${e.maxAge.toFixed(0)}`),Utils.isNullOrEmpty(e.expires)||(t+=`; expires=${e.expires}`),e.partitioned&&(t+="; Partitioned"),Utils.isNullOrEmpty(e.sameSite)||(t+=`; SameSite=${encodeURIComponent(e.sameSite)}`),e.secure&&(t+="; Secure"),t}}}static isVisible(e){return"checkVisibility"in e?e.checkVisibility({checkOpacity:!0,checkVisibilityCSS:!0}):"hidden"!==getComputedStyle(e).visibility&&(e.clientWidth>0||e.clientHeight>0)}static hasClass(e,t){return e.classList?e.classList.contains(t):new RegExp("(^| )"+t+"( |$)","gi").test(e.className)}static addClass(e,t){const r=t.trim();e.classList?DOMTokenList.prototype.add.apply(e.classList,r.split(" ")):e.setAttribute("class",e.className+" "+r)}static removeClass(e,t){const r=t.trim();e.classList?DOMTokenList.prototype.remove.apply(e.classList,r.split(" ")):e.setAttribute("class",e.className.replace(new RegExp("(^|\\b)"+r.split(" ").join("|")+"(\\b|$)","gi")," "))}static toggleClass(e,t,r){r?Utils.addClass(e,t):Utils.removeClass(e,t)}static hasPart(e,t){return e.part.contains(t)}static addPart(e,t){DOMTokenList.prototype.add.apply(e.part,t.trim().split(" "))}static removePart(e,t){DOMTokenList.prototype.remove.apply(e.part,t.trim().split(" "))}static togglePart(e,t,r){r?Utils.addPart(e,t):Utils.removePart(e,t)}static offset(e){var t=e.getBoundingClientRect();return{top:Math.round(t.top)+Utils.scrollTop,left:Math.round(t.left)+Utils.scrollLeft,width:Math.round(t.width),height:Math.round(t.height)}}static offsetRect(e){var t=this.offset(e);return{y:t.top,x:t.left,width:t.width,height:t.height}}static naturalOffsetTop(e){return(e?.offsetTop??0)+(e?.offsetParent&&e.offsetParent instanceof HTMLElement?this.naturalOffsetTop(e.offsetParent):0)}static naturalOffsetLeft(e){return(e?.offsetTop??0)+(e?.offsetParent&&e.offsetParent instanceof HTMLElement?this.naturalOffsetLeft(e.offsetParent):0)}static naturalOffset(e){return{left:this.naturalOffsetLeft(e),top:this.naturalOffsetTop(e),width:e?.offsetWidth??0,height:e?.offsetHeight??0}}static naturalOffsetRect(e){var t=this.naturalOffset(e);return{y:t.top,x:t.left,width:t.width,height:t.height}}static deserializeTransform(e){return Utils.Css.deserializeTransform(e)}static set scrollTop(e){window.scrollTo(Utils.scrollLeft,e)}static set scrollLeft(e){window.scrollTo(e,Utils.scrollTop)}static scrollTo(e,t=!0,r=!0){const n=Utils.isNull(t)||"boolean"==typeof t,s=n?Utils.scrollLeft:e,o=n?e:t,a=(n?t:r)?"smooth":"instant";window.scrollTo({behavior:a,left:s,top:o})}static get scrollTop(){return window.scrollY||document.documentElement.scrollTop||document.body.scrollTop||0}static get scrollLeft(){return window.scrollX||document.documentElement.scrollLeft||document.body.scrollLeft||0}static get windowSize(){let e=window;return{width:e.innerWidth||e.document.documentElement.clientWidth||e.document.body.clientWidth||0,height:e.innerHeight||e.document.documentElement.clientHeight||e.document.body.clientHeight||0}}static addAnimationEndCallback(e,t,r=500){const n=r=>{r&&r.target!=e||(clearTimeout(s),e.removeEventListener("animationend",n,!1),e.removeEventListener("transitionend",n,!1),t.apply(this,[e]))};e.addEventListener("animationend",n,!1),e.addEventListener("transitionend",n,!1);const s=setTimeout(n,r)}static waitForAnimationEnd(e,t=500){return new Promise((r,n)=>{Utils.addAnimationEndCallback(e,()=>{r()},t)})}static idle(e){return new Promise((t,r)=>{setTimeout(()=>t(),e)})}static accelerateCallback(e,t=500,r=5,n=20){let s={cancel:!1},o=t,a=r+n,i=()=>{e(s),setTimeout(i,o),o<a?o=n:o-=r};i()}static isEmpty(e){return pacemFoundation.NullChecker.isEmpty(e)&&!(e instanceof Node)}static isNull(e){return pacemFoundation.NullChecker.isNull(e)}static isArray(e){return Array.isArray(e)}static isNullOrEmpty(e){return Utils.isNull(e)||Utils.isEmpty(e)}static areSemanticallyEqual(e,t){e??=null,t??=null;return(e&&e.valueOf&&e.valueOf())===(t&&t.valueOf&&t.valueOf())}static{this.extend=Object.assign}static clone(e){if(void 0!==e)return DeepCloner.clone(e)}static fromResult(e){return Promise.resolve(e)}static fromResultAsync(e){return new Promise(t=>requestAnimationFrame(()=>t(e())))}static readonlyCopy(e){if(Utils.isNull(e))return null;if(Utils.isArray(e)){const t=e.slice(0);return Object.freeze(t),t}{const t={};for(let r in e)t[r]=e[r];return Object.freeze(t),t}}static{this.URIs={format:function(e,t,r){for(let n in t||{}){let s=new RegExp("(^|\\/)\\{"+n+"\\??\\}(\\/|$)").exec(e);if(s&&s.length){let o=new RegExp("\\{"+n+"\\??\\}"),a=s.index;e=e.substring(0,a)+e.substring(a).replace(o,encodeURIComponent(t[n])),r&&delete t[n]}}const n=/(^|\/)\{[\w]+\?\}(\/|$)/;for(var s;(s=n.exec(e))&&s.length>0;){let t=s[0];e=e.replace(t,t.endsWith("/")?"/":"")}return e},appendQuery:function(e,t,r=!1,n=!1){const s=n?"#":"?",o=((n?/#/:/\?/).test(e)?"&":s)+Object.keys(t).filter(e=>!Utils.isNull(t[e])||!r).map(e=>encodeURIComponent(e)+"="+encodeURIComponent(t[e]??"")).join("&");return e+(o.length>1?o:"")},parseQuery:(e=window.location)=>{"string"!=typeof e&&(e=e.search);const t={};return new URLSearchParams(e).forEach((e,r)=>{Object.defineProperty(t,r,{enumerable:!0,value:e})}),t},hasMandatoryTemplateSegments:function(e){return/(^|\/)\{\.*\}(\/|$)/.test(e)},parseRoute:function(e){let t=e;const r=[];if(!Utils.isNullOrEmpty(t)){let e,n=0;for(;null!=(e=SEGMENT_PATTERN.exec(t));){const s=e[0],o=ROUTE_SEGMENT_PATTERN.exec(s);if(!Utils.isNullOrEmpty(o)){const e=o[1];r.push({name:e,optional:"?"===s.charAt(s.length-2),index:n})}t=t.substring(e.index+s.length),n++}}return r},split:function(e){const t=/^((https?:)?\/\/[^\/]+)?([^\?#]+)(\?[^#]*)?(#[^#]*)?$/.exec(e);return t?{domain:t[2]??"",protocol:t[1]??"",path:t[3]??"",query:t[4]??"",hash:t[5]??""}:null},parseState:function(e,t,r,n,s){let o=t;if(Utils.isNullOrEmpty(r)){const e=Utils.URIs.split(t);r=e.path,Utils.isNullOrEmpty(n)&&(n=e.query??""),Utils.isNullOrEmpty(s)&&(s=e.hash??""),o=r+n+s}let a={$path:o,$pathname:r,$querystring:n.length>0?n.substring(1):n,$query:(e=>{const t=e.indexOf("?");return 0===t?Utils.URIs.parseQuery(e.substring(t+1)):{}})(n),$hash:(e=>{const t=e.indexOf("#");return 0!==t?null:e.substring(t+1)})(s)},i=0;const l=e.slice();if(!Utils.isNullOrEmpty(l)){let e;for(;null!=(e=SEGMENT_PATTERN.exec(r));){const t=e[0],n=l.findIndex(e=>e.index===i);if(n>=0){const e=l[n],{name:r}=e;Object.defineProperty(a,r,{enumerable:!0,value:t.substring(1)}),l.splice(n,1)}i++,r=r.substring(e.index+t.length)}}for(let e=0;e<l.length;e++)if(!l[e].optional)throw`Must provide "${l[e].name}" route value.`;return a}}}static getApiResult(e){if("object"==typeof e&&!Utils.isNull(e)&&e.hasOwnProperty("success"))switch(e.success){case!0:if(e.hasOwnProperty("result"))return e.result;break;case!1:if(e.hasOwnProperty("error"))return null}return e}}var EventKeyModifier;!function(e){e.AltKey="Alt",e.CtrlKey="Ctrl",e.ShiftKey="Shift",e.MetaKey="Cmd"}(EventKeyModifier||(EventKeyModifier={}));class CustomEventUtils{static isInstanceOf(e,t){return e instanceof t}static getEventCoordinates(e){var t;return"touches"in e?Utils.isNullOrEmpty(e.touches)?Utils.isNullOrEmpty(e.changedTouches)||(t=e.changedTouches[0]):t=e.touches[0]:t=e,{page:{x:t.pageX,y:t.pageY},screen:{x:t.screenX,y:t.screenY},client:{x:t.clientX,y:t.clientY}}}static getEventKeyModifiers(e){var t=e.which;return e instanceof MouseEvent&&(t=e.button),{which:t,shiftKey:e.shiftKey,altKey:e.altKey,ctrlKey:e.ctrlKey,metaKey:e.metaKey}}static matchModifiers(e,...t){const r=(!Utils.isNull(t)&&(1===t.length&&Utils.isArray(t[0])?t[0]:Array.from(t).filter(e=>!Utils.isNullOrEmpty(e)))||[]).map(e=>e.toLowerCase()),n=r.indexOf("alt")>=0||r.indexOf("option")>=0,s=r.indexOf("shift")>=0,o=r.indexOf("ctrl")>=0,a=r.indexOf("win")>=0||r.indexOf("cmd")>=0;return n===e.altKey&&s===e.shiftKey&&a===e.metaKey&&o===e.ctrlKey}static fixEdgeCustomEventSubClassInstance(e,t){e instanceof t||Object.setPrototypeOf(e,t)}}class CustomTypedEvent extends CustomEvent{constructor(e,t,r){super(e,Utils.extend({detail:t},r||{})),CustomEventUtils.fixEdgeCustomEventSubClassInstance(this,this.constructor)}}function isEventInit(e){if("detail"in e){for(let t in e)if("bubbles"!==t&&"cancelable"!==t&&"composed"!==t&&"detail"!==t)return!1;return!0}return!1}class CustomUIEvent extends CustomEvent{constructor(e,t,r,n){super(e,Utils.extend(isEventInit(t||{})?t:{detail:t},!(r instanceof Event)&&r||{}));const s=n||r;s instanceof Event&&(this.#e=s,this.#t=CustomEventUtils.getEventKeyModifiers(s),(s instanceof MouseEvent||s instanceof TouchEvent)&&(this.#r=CustomEventUtils.getEventCoordinates(s))),CustomEventUtils.fixEdgeCustomEventSubClassInstance(this,this.constructor)}#e;#t;#r;get originalEvent(){return this.#e}get which(){return this.#t?.which}get altKey(){return this.#t?.altKey}get shiftKey(){return this.#t?.shiftKey}get ctrlKey(){return this.#t?.ctrlKey}get metaKey(){return this.#t?.metaKey}get pageX(){return this.#r?.page.x}get pageY(){return this.#r?.page.y}get clientX(){return this.#r?.client.x}get clientY(){return this.#r?.client.y}get screenX(){return this.#r?.screen.x}get screenY(){return this.#r?.screen.y}}const AttributeChangeEventName="attributechange";class AttributeChangeEvent extends CustomTypedEvent{constructor(e){super(AttributeChangeEventName,e)}}const PropertyChangeEventName="propertychange";class PropertyChangeEvent extends CustomTypedEvent{constructor(e){super(PropertyChangeEventName,e)}}const RouterNavigatingEventName="navigating",RouterNavigateEventName="navigate";class RouterNavigateEvent extends CustomTypedEvent{constructor(e){super(RouterNavigateEventName,"string"==typeof e?{path:e}:e,{cancelable:!1,bubbles:!1})}}class RouterNavigatingEvent extends CustomTypedEvent{constructor(e){super(RouterNavigatingEventName,e,{cancelable:!0,bubbles:!1})}}class AnimationEvent extends CustomTypedEvent{constructor(e){super("step",e)}}class AnimationEndEvent extends CustomEvent{constructor(){super("end")}}class AnimationStartEvent extends CustomEvent{constructor(){super("start")}}class TweenService{run(e,t,r,n=0,s=Easings.linear,o=null){return new Promise((a,i)=>{const l=(performance&&performance.now()||Date.now())+Math.abs(n||0),c=l+Math.abs(r||0),m=()=>{const n=performance&&performance.now()||Date.now();if(n>=l&&n<c){const a=(n-l)/r,i=e+(s||Easings.linear)(a)*(t-e);o&&o(a,i)}n<c?requestAnimationFrame(m):(o&&o(1,t),a())};m()})}}class Timer{#n;#s;#o;constructor(e,t){this.#a=0,this._run=e=>{this.#o=requestAnimationFrame(this._run);const t=performance.now(),r=this.#n,n=t-this.#a;n>=r&&(this.#a=t-n%r,this.#s(e))},this.#n=1e3/t,this.#s=e,this.#o=requestAnimationFrame(this._run)}#a;static run(e,t=60){return new Timer(e,t)}stop(){cancelAnimationFrame(this.#o)}}var indexAnimations=Object.freeze({__proto__:null,AnimationEndEvent:AnimationEndEvent,AnimationEvent:AnimationEvent,AnimationStartEvent:AnimationStartEvent,Easings:Easings,Timer:Timer,TweenService:TweenService}),HttpMethod;!function(e){e.Get="GET",e.Post="POST",e.Put="PUT",e.Delete="DELETE",e.Options="OPTIONS",e.Head="HEAD",e.Patch="PATCH",e.Connect="CONNECT",e.Trace="TRACE"}(HttpMethod||(HttpMethod={}));const FetchResultEventName="fetchresult",FetchErrorEventName="error",FetchSuccessEventName="success";class Fetcher{static isEmpty(e){return 204===e.status||"0"===e.headers.get("Content-Length")}}const noop=()=>{};class StatusCodeError extends Error{constructor(e,t){super(t),this.statusCode=e}get status(){return this.statusCode}}class Response{constructor(e,t){e&&(this._status=e.status,this._body=e.response,this._text=e.responseText,this._type=e.responseType,this._allHeadersRaw=e.getAllResponseHeaders(),this._processTime=t)}get processTime(){return this._processTime}get headers(){return void 0===this._headers&&this._allHeadersRaw&&this._parseHeaders(),this._headers}get size(){return+this.headers["Content-Length"]}get mime(){return this.headers["Content-Type"]}get date(){return new Date(Date.parse(this.headers.Date))}_parseHeaders(){let e={};this._allHeadersRaw.split("\r\n").forEach(t=>{if(t&&t.length){let r=t.indexOf(":"),n=t.substr(0,r).trim(),s=t.substr(r+1).trim();e[n]=s}}),this._headers=e}get status(){return this._status}get text(){return this._text}get content(){return this._body}get type(){return this._type}get json(){if("json"===this._type)return this._body;try{return JSON.parse(this._text)}catch(e){return}}}class Http{constructor(){}request(e,t){var r=this;let n=DeferPromise.defer();var s=(t=t||{method:HttpMethod.Get}).method||HttpMethod.Get,o=t.data||{},a=t.progress||noop,i=t.headers||{};r.accessToken&&(i.Authorization="Bearer "+r.accessToken);var l,c,m=new XMLHttpRequest;switch(m.withCredentials=!1,m.addEventListener("progress",e=>{if(e.lengthComputable){var t=e.loaded/e.total;"function"==typeof a&&a.apply(r,[t])}},!1),m.addEventListener("error",e=>{n.reject(new StatusCodeError(500,e.message||"Unknown error"))},!1),m.addEventListener("load",()=>{if(m.status>=200&&m.status<300){var e=new Response(m,Date.now()-l);n.resolve(e)}else n.reject(new StatusCodeError(m.status,m.statusText))},!1),s.toUpperCase()){case HttpMethod.Get:e+=(/\?/.test(e)?"&":"?")+("string"==typeof o?o:Object.keys(o).map(function(e){return encodeURIComponent(e)+"="+encodeURIComponent(o[e])}).join("&"));break;case HttpMethod.Post:c=JSON.stringify(o)}switch(m.open(s,e,!0),s.toUpperCase()){case HttpMethod.Get:m.setRequestHeader("X-Requested-With","XMLHttpRequest");break;case HttpMethod.Post:m.setRequestHeader("X-Requested-With","XMLHttpRequest"),m.setRequestHeader("Content-Type","application/json")}for(var d in i)m.setRequestHeader(d,i[d]);return l=Date.now(),m.send(c),n.promise}get(e,t,r){return this.request(e,{method:HttpMethod.Get,data:t,headers:r||{}})}post(e,t,r){return this.request(e,{method:HttpMethod.Post,data:t,headers:r||{}})}}var indexNet=Object.freeze({__proto__:null,FetchErrorEventName:FetchErrorEventName,FetchResultEventName:FetchResultEventName,FetchSuccessEventName:FetchSuccessEventName,Fetcher:Fetcher,Http:Http,get HttpMethod(){return HttpMethod},Response:Response,StatusCodeError:StatusCodeError}),DragDataMode,DropBehavior,DropTargetMissedBehavior,DragDropEventType,RescaleHandle,RescaleEventType,RotateEventType,SwipeEventType;!function(e){e.Self="self",e.Alias="alias",e.Copy="copy"}(DragDataMode||(DragDataMode={})),function(e){e.InsertChild="insert",e.None="none"}(DropBehavior||(DropBehavior={})),function(e){e.Revert="revert",e.Remove="remove",e.None="none"}(DropTargetMissedBehavior||(DropTargetMissedBehavior={})),function(e){e.Init="draginit",e.Start="dragstart",e.Drag="drag",e.Drop="drop",e.Over="dragover",e.Out="dragout",e.End="dragend"}(DragDropEventType||(DragDropEventType={}));class DragDropEventArgsBaseClass{constructor(e){this._builder=e,this.currentPosition=e.currentPosition,this.target=e.target}get element(){return this._builder.element}get origin(){return this._builder.origin}get initialDelta(){return this._builder.initialDelta}get startTime(){return this._builder.startTime}get floater(){return this._builder.floater}get delta(){var e=this;return pacemFoundation.Point.add(e.initialDelta,pacemFoundation.Point.subtract(e.origin,e.currentPosition))}}class DragDropInitEventArgsClass extends DragDropEventArgsBaseClass{constructor(e){super(e),this.placeholder=e.placeholder,this.data=e.data}static fromArgs(e){return new DragDropInitEventArgsClass(Utils.extend({},e))}}class DragDropEventArgsClass extends DragDropEventArgsBaseClass{constructor(e,t=e.placeholder,r=e.data){super(e),this._placeholder=t,this._data=r}get placeholder(){return this._placeholder}get data(){return this._data}static fromArgs(e){return new DragDropEventArgsClass(Utils.extend({},e))}}class DragDropEvent extends CustomUIEvent{constructor(e,t,r,n){super(e,t,r,n)}}!function(e){e.All="all",e.Top="top",e.Left="left",e.Right="right",e.Bottom="bottom"}(RescaleHandle||(RescaleHandle={})),function(e){e.Start="rescalestart",e.Rescale="rescale",e.End="rescaleend"}(RescaleEventType||(RescaleEventType={}));class RescaleEventArgsClass{constructor(e){this._builder=e}get currentPosition(){return this._builder.currentPosition}get targetRect(){return this._builder.targetRect}get element(){return this._builder.element}get handle(){return this._builder.handle}static fromArgs(e){return new RescaleEventArgsClass(Utils.extend({},e))}}class RescaleEvent extends CustomUIEvent{constructor(e,t,r,n){super(e,t,r,n)}}!function(e){e.Start="rotatestart",e.Rotate="rotate",e.End="rotateend"}(RotateEventType||(RotateEventType={}));class RotateEventArgsClass{constructor(e){this._builder=e}get currentPosition(){return this._builder.currentPosition}get rotation(){return this._builder.rotation}get element(){return this._builder.element}get center(){return this._builder.center}static fromArgs(e){return new RotateEventArgsClass(Utils.extend({},e))}}class RotateEvent extends CustomUIEvent{constructor(e,t,r,n){super(e,t,r,n)}}!function(e){e.Swipe="swipe",e.Pan="pan",e.SwipeLeft="swipeleft",e.SwipeRight="swiperight",e.SwipeUp="swipeup",e.SwipeDown="swipedown",e.SwipeAnimationEnd="swipeanimationend",e.SwipeLeftAnimationEnd="swipeleftanimationend",e.SwipeRightAnimationEnd="swiperightanimationend",e.SwipeUpAnimationEnd="swipeupanimationend",e.SwipeDownAnimationEnd="swipedownanimationend"}(SwipeEventType||(SwipeEventType={}));class SwipeEventArgsClass{constructor(e){this._builder=e}get#i(){const{verticalspeed:e,horizontalspeed:t,vertical:r}=this._builder;return r??Math.abs(t)<Math.abs(e)}get direction(){return this.#i?this._builder.verticalspeed>0?"down":"up":this._builder.horizontalspeed>0?"right":"left"}get speed(){const{verticalspeed:e,horizontalspeed:t}=this._builder;return this.#i?e:t}get delta(){const{position:{x:e,y:t},t0:{position:{x:r,y:n}}}=this._builder;return this.#i?t-n:e-r}get flinging(){const{fling:e}=this._builder;return e>0&&Math.abs(this.speed)>e}get predictedDelta(){const e=this._builder.inertia??8;return this.delta+this.speed/e}get predictedDuration(){const e=this._builder.inertia??8;return-Math.log(.01)/e}get element(){return this._builder.element}static fromArgs(e){return new SwipeEventArgsClass(Utils.extend({},e))}}class SwipeEvent extends CustomTypedEvent{constructor(e,t,r){super(e,t,r)}}var indexUi=Object.freeze({__proto__:null,get DragDataMode(){return DragDataMode},DragDropEvent:DragDropEvent,DragDropEventArgsClass:DragDropEventArgsClass,get DragDropEventType(){return DragDropEventType},DragDropInitEventArgsClass:DragDropInitEventArgsClass,get DropBehavior(){return DropBehavior},get DropTargetMissedBehavior(){return DropTargetMissedBehavior},RescaleEvent:RescaleEvent,RescaleEventArgsClass:RescaleEventArgsClass,get RescaleEventType(){return RescaleEventType},get RescaleHandle(){return RescaleHandle},RotateEvent:RotateEvent,RotateEventArgsClass:RotateEventArgsClass,get RotateEventType(){return RotateEventType},SwipeEvent:SwipeEvent,SwipeEventArgsClass:SwipeEventArgsClass,get SwipeEventType(){return SwipeEventType}});class CurrentIndexChangeEvent extends CustomTypedEvent{constructor(e){super("currentindexchange",e)}}const Type=Function,WATCH_PROPS_VAR="pacem:properties",INSTANCE_BINDINGS_VAR="pacem:custom-element:bindings",INSTANCE_HOST_VAR="pacem:custom-element:host",INSTANCE_SCOPE_VAR="pacem:custom-element:scope";var root;const P=(root=window.Pacem)?.Configuration?.prefix??"pacem",PCSS=root?.Configuration?.css??P;class TemplateElement extends HTMLElement{}const PACEM_BAG="__pacem__",bindingPattern=/^\{\{(.|\n)+\}\}$/;class CustomElementUtils{static get polyfilling(){return customElements instanceof window.CustomElementRegistry}static camelToKebab(e){return e&&e.replace(/([A-Z])/g,"-$1").toLowerCase()}static kebabToCamel(e){return e&&e.replace(/(-[a-z])/g,e=>e[1].toUpperCase())}static waitForReady(e){return new Promise((t,r)=>{Utils.isNull(e)&&r("Not found."),e.isReady&&t();const n=()=>{e.removeEventListener("load",n),t()};e.addEventListener("load",n)})}static whenReady(e,t){CustomElementUtils.waitForReady(e).then(t)}static getWatchedProperties(e,t=!0){var r=[],n=e instanceof HTMLElement?e.constructor:e;do{let e=(this.getAttachedPropertyValue(n,WATCH_PROPS_VAR)||[]).filter(e=>!e.name.startsWith("_"));Array.prototype.splice.apply(r,[0,0].concat(e))}while(t&&(n=Object.getPrototypeOf(n)));return r}static getWatchedProperty(e,t){return this.getWatchedProperties(e,!0).find(e=>e.name===t)}static importjs(e,t=null,r=!1){var n={type:"text/javascript",src:e};return Utils.isNullOrEmpty(t)||Utils.extend(n,{integrity:t}),r&&Utils.extend(n,{crossorigin:""}),CustomElementUtils.import(e,"script",n,document.head||document.getElementsByTagName("head")[0])}static importcss(e,t=null,r=!1){var n={rel:"stylesheet",href:e};return Utils.isNullOrEmpty(t)||Utils.extend(n,{integrity:t}),r&&Utils.extend(n,{crossorigin:"anonymous"}),CustomElementUtils.import(e,"link",n,document.head||document.getElementsByTagName("head")[0])}static import(e,t,r,n=document.body){const s=Utils.core;var o=s.imports=s.imports||{};return o[e]=o[e]||new Promise((e,s)=>{var o=t;for(let e in r||{})o+=`[${e}="${r[e]}"]`;var a=document.querySelector(o);if(Utils.isNull(a)){for(var i in(a=document.createElement(t)).onerror=e=>{s(e)},a.onload=()=>{e(a)},r||{})a.setAttribute(i,r[i]);n.appendChild(a)}else e(a)})}static{this.Theme={importWebFonts(){function e(e){return Utils.isNullOrEmpty(e)?Promise.resolve():document.fonts.load("1rem "+e)}const t=["icons","std","main","tech","btn"].map(t=>{const r=Utils.Css.getVariableValue(`--${PCSS}-font-${t}`).split(",")[0],n=(s=Utils.Css.getVariableValue(`--${PCSS}-font-${t}-api-url`),/^('|").*\1$/.test(s)?s.substring(1,s.length-1):s);var s;return Utils.isNullOrEmpty(n)?e(r):CustomElementUtils.importcss(n).then(t=>e(r))}),r=new Promise(e=>{!function t(r=0){r>4||!("size"in document.fonts)||"number"==typeof document.fonts.size&&document.fonts.size>0?document.fonts.ready.then(e):setTimeout(t,250,r++)}()});return t.push(r),Promise.all(t)}}}static setAttachedPropertyValue(e,t,r){if(Utils.isNull(e))return;const n=Object.getOwnPropertyDescriptor(e,PACEM_BAG),s=n&&n.value||Object.defineProperty(e,PACEM_BAG,{value:{},enumerable:!1,writable:!1,configurable:!1})[PACEM_BAG];Utils.isNull(r)?delete s[t]:s[t]=r}static deleteAttachedPropertyValue(e,t){CustomElementUtils.setAttachedPropertyValue(e,t,void 0)}static getAttachedPropertyValue(e,t,r){const n=Object.getOwnPropertyDescriptor(e,PACEM_BAG),s=n&&n.value;return Utils.isNull(s&&s[t])&&!Utils.isNull(r)?(CustomElementUtils.setAttachedPropertyValue(e,t,r),r):s&&s[t]}static resolvePath(e,t){if(!e||!t)return;if(/[\(\)\{\}]/.test(e))throw`Security alert: not allowed to process paths like ${e}.`;const r=e.split(".");var n,s,o,a=t,i=a,l=r[0];return r.forEach((e,t)=>{e.split("[").forEach((e,t)=>{n=i,/\]$/.test(e)&&(e=e.substring(0,e.length-1),/^('|").+[^\\]\1$/.test(e)&&(e=e.substr(1,e.length-2))),i=i[e]})}),/\]$/.test(e)?(o=e.lastIndexOf("["),s=(s=e.substring(o+1)).substring(0,s.length-1)):(o=e.lastIndexOf("."),s=e.substring(o+1)),{target:{value:i,name:s},parent:{value:n||t,path:e.substring(0,o)},root:{value:a,property:l}}}static set(e,t,r){var n=CustomElementUtils.resolvePath(t,e),s=n.target.value;if(s!==r)if(n.parent.value==n.root.value||n.parent.value instanceof HTMLElement)n.parent.value[n.target.name]=r;else{n.parent.value[n.target.name]=r;const e=Utils.clone(n.root.value[n.root.property]);let t;n.parent.value[n.target.name]=s,"item"!==n.root.property||Utils.isNull(t=RepeaterItem$1.getRepeaterItem(n.root.value))?n.root.value[n.root.property]=e:t.repeater&&t.repeater.datasource&&t.repeater.datasource.splice(t.index,1,t.item=e)}}static get(e,t){var r=CustomElementUtils.resolvePath(t,e);return r&&r.target&&r.target.value}static _findScopeContextLegacy(e){let t,r=e;do{r=r.parentNode}while(null!=r&&(r!=(t=e.ownerDocument)||r instanceof HTMLElement&&null!=(t=r.shadowRoot)));return t}static findScopeContext(e){return(e.isConnected?e.getRootNode():CustomElementUtils.getAttachedPropertyValue(e,INSTANCE_SCOPE_VAR))??CustomElementUtils._findScopeContextLegacy(e)}static findAncestor(e,t){let r,n=e;for(;n&&null!=(n=n.parentNode||n.getRootNode()?.host);)if(n.host instanceof HTMLElement&&(n=n.host),t.apply(n,[n])){r=n;break}return r}static findAncestorShell(e){return CustomElementUtils.findAncestor(e,e=>Utils.is(e,`.${PCSS}-body`)||e===document.body)}static findAncestorOfType(e,t){return CustomElementUtils.findAncestor(e,e=>e instanceof t)}static findDescendants(e,t,r=!1){const n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT);for(var s=[];n.nextNode();){let e=n.currentNode;if(!0===t(e)&&(s.push(e),r))return s}return s}static findFirstDescendant(e,t){const r=CustomElementUtils.findDescendants(e,t,!0);return Utils.isNullOrEmpty(r)?void 0:r[0]}static findAll(e="[pacem]",t=e=>!0){const r=[];return document.querySelectorAll(e).forEach((e,n,s)=>{!0===t(e)&&r.push(e)}),r}static findPreviousSiblingOrAncestorOfType(e,t,r=0){let n=e,s=null,o=0;do{if(n=n.previousSibling||n.parentNode,n instanceof t){if(o>=r){s=n;break}n=n.parentNode,o++}}while(null!=n);return s}static findPreviousSiblingOrAncestor(e,t,r=0){let n=e,s=null,o=0;do{if(n=n.previousSibling||n.parentNode,n&&t.apply(n,[n])){if(o>=r){s=n;break}n=n.parentNode,o++}}while(null!=n);return s}static assignHostContext(e,t){const r=document.createTreeWalker(t.content,NodeFilter.SHOW_ELEMENT+NodeFilter.SHOW_DOCUMENT_FRAGMENT);for(;r.nextNode();){var n=r.currentNode;Utils.isNull(CustomElementUtils.getAttachedPropertyValue(n,INSTANCE_HOST_VAR))&&CustomElementUtils.setAttachedPropertyValue(n,INSTANCE_HOST_VAR,e)}}static findHostContext(e){let t,r,n=e;if(!n.isConnected)return t;for(;null!=n&&(t=CustomElementUtils.getAttachedPropertyValue(n,INSTANCE_HOST_VAR),!(t instanceof HTMLElement));)n=n.parentElement;return null==t&&console&&(r=console.warn)&&r(`Element "${e.constructor.name}" isn't a descendant of a templated component.`),t}static isBindingAttribute(e){return bindingPattern.test(e)}static extractBindingAttributeExpression(e){if(CustomElementUtils.isBindingAttribute(e))return e.substr(2,e.length-4);throw"Invalid attribute: incorrect binding syntax."}static parseBindingAttribute(e,t){let r=CustomElementUtils.extractBindingAttributeExpression(e);const n=/,\s*(twoway|once)\s*$/.exec(r),s=n&&n.length>1&&n[1];Utils.isNullOrEmpty(s)||(r=r.substr(0,r.lastIndexOf(",")));var o=Expression.parse(r,t);return(o&&o.dependencies).forEach(e=>{switch(s){case"twoway":e.mode=e.twowayAllowed&&1==o.dependencies.length?"twoway":void 0;break;case"once":e.mode=s}}),o}static ensureMember(e,t,r){let n=Object.getOwnPropertyDescriptor(e,t);return null!=n?n:(Object.defineProperty(e,t,r),Object.getOwnPropertyDescriptor(e,t))}static stripObservedAttributes(e){avoidObservedAttributes(e,!1)}static freezeObservedAttributes(e){avoidObservedAttributes(e)}}function avoidObservedAttributes(e,t=!0){const r=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT);do{var n=r.currentNode;if(n instanceof HTMLElement){const e=n.constructor.observedAttributes;if(!Utils.isNull(e)){CustomElementUtils.deleteAttachedPropertyValue(n,INSTANCE_BINDINGS_VAR);let r=function(e){if(Utils.isArray(e))return"["+e.map(r).join(",")+"]";if(e instanceof Element){return`#${e.id=e.id||"_"+Utils.uniqueCode()}`}return`${Utils.Json.stringify(e)}`};for(var s of e)if(s in n.attributes){let e;if(t&&!Utils.isNull(e=n[CustomElementUtils.kebabToCamel(s)])){let t=r(e);n.setAttribute(s,`{{ ${t} }}`)}else n.removeAttribute(s)}}}}while(r.nextNode())}const GET_VAL$6=CustomElementUtils.getAttachedPropertyValue,SET_VAL$5=CustomElementUtils.setAttachedPropertyValue,REPEATERITEM_PLACEHOLDER="pacem:repeater-item";class Repeater{static findItemContext(e,t=0,r=console.warn){let n=RepeaterItem$1.findUpwards(e,t,r);return null==n&&r&&e instanceof HTMLElement&&e.isConnected&&r(`Couldn't find a ${RepeaterItem$1.name} up ${t} level${1===t?"":"s"} from element "${e.constructor.name}".`),n}}let RepeaterItem$1=class RepeaterItem{static findUpwards(e,t=0,r=console.warn){if(Utils.isNull(e)||"template"===e.localName||e instanceof TemplateElement)return null;let n=null;return null==CustomElementUtils.findPreviousSiblingOrAncestor(e,e=>!Utils.isNull(n=RepeaterItem.getRepeaterItem(e)),t)&&r&&e instanceof HTMLElement&&e.isConnected&&r(`Couldn't find a ${RepeaterItem.name} up ${t} level${1===t?"":"s"} from element "${e.constructor.name}".`),n}static isRepeaterItem(e){return!Utils.isNull(GET_VAL$6(e,REPEATERITEM_PLACEHOLDER))}static getRepeaterItem(e){return GET_VAL$6(e,REPEATERITEM_PLACEHOLDER)}constructor(e){this._placeholder=e,SET_VAL$5(e,REPEATERITEM_PLACEHOLDER,this)}get placeholder(){return this._placeholder}};const CONTEXT_PREFIX="__context_pacem",stringPattern=/'(\\'|[^'])*[^\\]?'|"(\\"|[^"])*[^\\]?"/g,safetyPattern=/[^\w]new\s|[^\w]window\s*[\.\[]|[^\w]document\s*\.|[^\w]eval\s*\(/,variablePattern=/(^|[\s\(\[\+\-\*\/!])(:host\.|\^+item[\s\.,;\)\]]|\^+item$|\^+index[^\w\.]|\^+index$|\$?this[\.\s$]?|#[a-zA-Z_][\w]*|::[a-zA-Z_][\w]*)/g;class Expression{constructor(){this._pending=!1,this._independent=!1}get dependencies(){return this._dependencies}get functionBody(){return this._fnBody}get voidBody(){return this._voidBody}get pending(){return this._pending}get independent(){return this._independent}evaluate(){return this._fn||(this._fn=new Function("$pacem",CONTEXT_PREFIX,this._fnBody)),this._fn.apply(null,[Utils.core,this._args])}evaluateAsync(){const e=DeferPromise.defer();return this._fn||(this._fn=new Function("$pacem",CONTEXT_PREFIX,this._fnBody)),e.resolve(this._fn.apply(null,[Utils.core,this._args])),e.promise}evaluatePlus(e={}){if(!this._fn){let r=[CONTEXT_PREFIX];for(var t in e)r.push(t);r.push("$pacem"),this._fn=new Function(r.join(", "),this._voidBody)}let r=[].concat(this._args);for(var t in e)r.push(e[t]);return r.push(Utils.core),this._fn.apply(null,r)}static{this._pendingExpression=null}static _getPendingExpressionSingleton(){if(null==Expression._pendingExpression){let e=new Expression;e._pending=!0,e._dependencies=[],Expression._pendingExpression=e}return Expression._pendingExpression}static parse(e,t){for(var r,n=CustomElementUtils.findScopeContext(t),s={$this:t},o=[],a="",i=!0,l=[],c=0,m=[];null!=(r=stringPattern.exec(e));){m.push(e.substr(c,r.index-c));let t=r[0].length;l.push({start:r.index,length:t}),c=r.index+t}c<e.length&&m.push(e.substr(c,e.length-c));for(var d=0;d<m.length;d++){let r=m[d];if(safetyPattern.test(r))throw`Unsafe expression detected: "${r}".`;if(null==n){if(!0===new RegExp(variablePattern).test(r)){i=!1;break}}else{let c=r.replace(variablePattern,(e,r,a,l,c)=>{i=!1;const m="__host_pacem";let d,p=CONTEXT_PREFIX+".$this"+(a.endsWith(".")?".":""),h=t,u=c.indexOf(".",l),v=u>l?c.substr(u+1).trim():"",E=/^[\w\.\$]+/.exec(v),g=E&&E.length>0&&E[0],f=g&&(d=g.split(".")).length>0&&d[0];if(":host."===a)h=s[m]=s[m]||CustomElementUtils.findHostContext(t),p=`${CONTEXT_PREFIX}.${m}.`;else if(a.endsWith("^item")||a.substr(0,a.length-1).endsWith("^item")){let e=a.endsWith("^item")?"":a.substr(a.length-1,1),r=a.length-(e.length>0?6:5),n=`__item_${r}_up_pacem`,o=Repeater.findItemContext(t,r);h=s[n]=s[n]||o&&o.placeholder,g="item"+(g?"."+g:""),f="item",p=`${CONTEXT_PREFIX}.${n}.item${e}`}else if(a.endsWith("^index")||a.substr(0,a.length-1).endsWith("^index")){let e=a.endsWith("^index")?"":a.substr(a.length-1,1),r=a.length-(e.length>0?7:6),n=`__item_${r}_up_pacem`,o=Repeater.findItemContext(t,r);h=s[n]=s[n]||o&&o.placeholder,g="index",f="index",p=`${CONTEXT_PREFIX}.${n}.index${e}`}else if(a.startsWith("::")){let e=a.substr(2,a.length-2),r=s[m]=s[m]||CustomElementUtils.findHostContext(t);h=Utils.isNull(r)?null:r[e],p=`${CONTEXT_PREFIX}.${m}.${e}`}else if(a.startsWith("#")){let e=a.substr(1,a.length-1);h=s[e]=s[e]||n.querySelector("#"+e),p=`${CONTEXT_PREFIX}.${e}`}return f&&h&&f in h&&"function"!=typeof h[f]&&null==o.find(e=>e.element===h&&e.property==f)&&o.push({element:h,property:f,path:g,twowayAllowed:!1}),r+p});if(a+=c,d<l.length){const t=l[d];a+=e.substr(t.start,t.length)}}}if(i){var p=new Expression;return p._independent=!0,p._fnBody=`return ${e};`,p._voidBody=e,p._dependencies=[],p}if(null==n)return this._getPendingExpressionSingleton();for(var h in s)if(null==s[h])return Expression._getPendingExpressionSingleton();1==o.length&&!0!==/[^\w\.\$]+/.test(a.trim())&&(o[0].twowayAllowed=!0);var u=new Expression;return u._args=s,u._fnBody=`try{ var ___$$$r = ${a}; return ___$$$r; }catch(e){ }`,u._voidBody=`try{ ${a} }catch(e){ }`,u._dependencies=o,u}}var LogLevel;!function(e){e.Trace="trace",e.Debug="debug",e.Warn="warn",e.Error="error",e.Info="info",e.Log="log"}(LogLevel||(LogLevel={}));const NonePropertyConverter={convert:e=>{}},StringPropertyConverter={convert:e=>e,convertBack:e=>e},StringArrayPropertyConverter={convert:e=>e&&e.trim().split(/[ ,]+/),convertBack:e=>Utils.isArray(e)&&e.join(" ")||""},NumberPropertyConverter={convert:e=>parseFloat(e),convertBack:e=>e.toString()},BooleanPropertyConverter={convert:e=>!Utils.isNullOrEmpty(e)&&"0"!==e&&"false"!==e,convertBack:e=>(!!e).toString()},BooleanStrictPropertyConverter={convert:e=>"true"===e||"1"===e,convertBack:e=>(!!e).toString()},DateTimePropertyConverter={convert:e=>Utils.parseDate(e),convertBack:e=>Utils.parseDate(e).toISOString()},DatePropertyConverter=DateTimePropertyConverter,JsonPropertyConverter={convert:e=>Utils.Json.parse(e),convertBack:e=>Utils.Json.stringify(e)},EvalPropertyConverter={convert:e=>Function(`return ${e};`).apply(null),convertBack:e=>{}},ElementPropertyConverter={convert:e=>document.querySelector(e),convertBack:e=>e instanceof Element&&e.id?"#"+e.id:void 0,retryConversionWhenReady:!0},PointPropertyConverter={convert:e=>pacemFoundation.Point.parse(e),convertBack:e=>`${e.x||0} ${e.y||0}`},SizePropertyConverter={convert:e=>pacemFoundation.Size.parse(e),convertBack:e=>`${e.width||0} ${e.height||0}`},RectPropertyConverter={convert:e=>pacemFoundation.Rect.parse(e),convertBack:e=>`${e.x||0} ${e.y||0} ${e.width||0} ${e.height||0}`},PropertyConverters={None:NonePropertyConverter,String:StringPropertyConverter,StringArray:StringArrayPropertyConverter,Number:NumberPropertyConverter,Boolean:BooleanPropertyConverter,BooleanStrict:BooleanStrictPropertyConverter,Date:DatePropertyConverter,Datetime:DateTimePropertyConverter,Json:JsonPropertyConverter,Eval:EvalPropertyConverter,Element:ElementPropertyConverter,Point:PointPropertyConverter,Rect:RectPropertyConverter,Size:SizePropertyConverter},DefaultComparer=(e,t)=>Utils.areSemanticallyEqual(e,t),GET_VAL$5=CustomElementUtils.getAttachedPropertyValue,SET_VAL$4=CustomElementUtils.setAttachedPropertyValue,DEL_VAL$4=CustomElementUtils.deleteAttachedPropertyValue,WATCH_PROP_PREFIX="pacem:property:",WATCH_VERS_PROP="pacem:version",WATCH_BIND_PREFIX="pacem:binding:",INSTANCE_CHILDREN_VAR="pacem:view-children",HAS_BIND_PREFIX="pacem:has-binding:",HAS_TEMPLATE_VAR="pacem:custom-element:has-template",HASBEEN_TEMPLATED_VAR="pacem:custom-element:has-templated",INSTANCE_PROMISE_VAR="pacem:custom-element:promise",INSTANCE_READY_VAR="pacem:custom-element:ready",INSTANCE_ONREADY_VAR="pacem:custom-element:startup";function processBinding(e,t,r){var n=e;const s=t,o=r;var a=GET_VAL$5(n,WATCH_BIND_PREFIX+s);if(a&&a.forEach(e=>{e.dep.element.removeEventListener(PropertyChangeEventName,e.callback,!1)}),Utils.isNull(o)||!0!==GET_VAL$5(e,INSTANCE_READY_VAR))DEL_VAL$4(n,WATCH_BIND_PREFIX+s),DEL_VAL$4(n,HAS_BIND_PREFIX+s);else if(o.pending)SET_VAL$4(n,WATCH_BIND_PREFIX+s,[]);else{let e="oneway";switch(o.dependencies&&o.dependencies.length&&o.dependencies[0].mode){case"twoway":1==o.dependencies.length&&(e="twoway");break;case"once":e="once"}SET_VAL$4(n,HAS_BIND_PREFIX+s,e);const t=o.dependencies.map(e=>{var t={dep:e,callback:function(t){t.detail.propertyName===e.property&&(n[s]=o.evaluate())}};return e.element.addEventListener(PropertyChangeEventName,t.callback,!1),t});SET_VAL$4(n,WATCH_BIND_PREFIX+s,t),n[s]=o.evaluate()}}function retrieveTemplateAndWaitForDOMReady(e){var t=DeferPromise.defer();const r=e=>{Utils.isDOMReady()?t.resolve(e):Utils.onDOMReady(r=>{t.resolve(e)})};if(e.template)r(e.template);else if(e.templateUrl){(new Http).get(e.templateUrl).success(t=>{let n=e.template=t.text;return r(n),t}).error(e=>{console.error(e.message),r(null)})}else r(null);return t.promise}function retrieveDescendantTemplateActivationPromises(e,t){const r=document.createTreeWalker(t,NodeFilter.SHOW_ELEMENT);for(var n=[];r.nextNode();){var s=r.currentNode;if(!0===GET_VAL$5(s.constructor,HAS_TEMPLATE_VAR)){var o=GET_VAL$5(s,INSTANCE_PROMISE_VAR,DeferPromise.defer());n.push(o.promise)}}return n}const CustomElement=e=>t=>{if(Utils.customElements.get(e.tagName))console.warn(`${e.tagName} registration skipped, since already defined.`);else{var r=CustomElementUtils.getWatchedProperties(t,!0);if(SET_VAL$4(t,HAS_TEMPLATE_VAR,!(Utils.isNullOrEmpty(e.template)&&Utils.isNullOrEmpty(e.templateUrl))),r&&r.length>0){const e="observedAttributes";var n=[];t.hasOwnProperty(e)&&(n=t[e].slice(),delete t[e]);let o=n;for(var s of r){let e=CustomElementUtils.camelToKebab(s.name);o.unshift(e)}Object.defineProperty(t,e,{get:function(){return o},enumerable:!0,configurable:!1})}{const n=t.prototype,s=Object.getOwnPropertyDescriptor(n,"connectedCallback")||n.connectedCallback,o=Object.getOwnPropertyDescriptor(n,"viewActivatedCallback")||n.viewActivatedCallback;Object.defineProperty(n,"connectedCallback",{value:function(){const t=this;t.setAttribute("pacem",""),t.setAttribute("cloak",""),DEL_VAL$4(t,INSTANCE_CHILDREN_VAR),s&&s.value?s.value.apply(t,[]):"function"==typeof s&&s.apply(t),retrieveTemplateAndWaitForDOMReady(e).then(n=>{if(!t.isConnected)return;var s=[];if(!0!==GET_VAL$5(t,INSTANCE_READY_VAR)&&!Utils.isNullOrEmpty(n)&&1!=GET_VAL$5(t,HASBEEN_TEMPLATED_VAR)){SET_VAL$4(t,HASBEEN_TEMPLATED_VAR,!0);const r=t,o=e.shadow,m=document.createElement("template").content,d=document.createElement("template");if(!o)for(var a=r.childNodes.length-1;a>=0;a--)m.insertBefore(r.childNodes.item(a),m.firstChild);d.innerHTML=n;const p=d.content.querySelectorAll(P+"-content");if(CustomElementUtils.assignHostContext(t,d),1==p.length){const e=p.item(0);var i=e.nextSibling;const t=e.parentElement||d.content,r=m.childNodes;for(t.removeChild(e);r.length>0;)try{let e=r.item(0);t.insertBefore(e,i)}catch(e){console.error(e.toString())}}else if(p.length>1)throw"There can only be at most 1 content placeholder inside a template.";var l;if(e.shadow)(l=r.attachShadow({mode:"open"})).appendChild(d.content);else{l=r;for(var c=d.content.children;c.length>0;)l.append(c.item(0))}s=retrieveDescendantTemplateActivationPromises(t,l)}SET_VAL$4(t,INSTANCE_READY_VAR,!0);for(let e of r){const r=e.name,n=e.config;if(!n.converter.retryConversionWhenReady||!Utils.isNull(t[r]))continue;const s=CustomElementUtils.camelToKebab(r),o=t.getAttribute(s);Utils.isNullOrEmpty(o)||CustomElementUtils.isBindingAttribute(o)||(t[r]=n.converter.convert(o,t))}(GET_VAL$5(t,INSTANCE_ONREADY_VAR)||[]).forEach(e=>{e.apply(t)});(GET_VAL$5(t,INSTANCE_BINDINGS_VAR)||[]).forEach(e=>{const r=e;if(!(r in t.attributes))throw`Howcome? ${r} not in ${t.constructor.name} attributes!?...`;const n=t.attributes[r].value;if(CustomElementUtils.isBindingAttribute(n)){var s=CustomElementUtils.parseBindingAttribute(n,t);processBinding(t,CustomElementUtils.kebabToCamel(e),s)}});t.removeAttribute("cloak"),Promise.all(s).then(e=>(()=>{o&&o.value?o.value.apply(t,[]):"function"==typeof o&&o.apply(t);var e=GET_VAL$5(t,INSTANCE_PROMISE_VAR);Utils.isNull(e)||e.resolve()})())})},configurable:!0,enumerable:!0});const a=Object.getOwnPropertyDescriptor(n,"disconnectedCallback")||n.disconnectedCallback;Object.defineProperty(n,"disconnectedCallback",{value:function(){const e=this;a&&a.value?a.value.apply(e,[]):"function"==typeof a&&a.apply(e,[]),SET_VAL$4(e,INSTANCE_READY_VAR,!1);(GET_VAL$5(e,INSTANCE_BINDINGS_VAR)||[]).forEach(t=>{processBinding(e,CustomElementUtils.kebabToCamel(t))})},configurable:!0,enumerable:!0});const i=Object.getOwnPropertyDescriptor(n,"attributeChangedCallback")||n.attributeChangedCallback;Object.defineProperty(n,"attributeChangedCallback",{value:function(e,t,n){const s=this,o=!0===GET_VAL$5(s,INSTANCE_READY_VAR);i&&i.value?i.value.apply(s,[e,t,n]):"function"==typeof i&&i.apply(s,[e,t,n]);const a=new AttributeChangeEvent({attributeName:e,oldValue:t,currentValue:n,firstChange:!o});s.dispatchEvent(a);const l=CustomElementUtils.isBindingAttribute(n),c=e,m=CustomElementUtils.kebabToCamel(c);if(l){let e=CustomElementUtils.parseBindingAttribute(n,s);if(!(e instanceof Expression))throw`Howcome? ${n} misinterpreted as ${c} binding...`;{const t=()=>{s[m]=e.evaluate(),processBinding(s,m)},r=()=>{GET_VAL$5(s,INSTANCE_BINDINGS_VAR,[]).push(c),e.pending||processBinding(s,m,e)};if(e.independent)try{t()}catch(e){console.warn(`Error occurred in early binding evaluation:\n${n}\n${e.message??e}`),r()}else r()}}else{var d=r.find(e=>e.name===m);Utils.isNull(d)||(processBinding(s,m),s[m]=d.config.converter.convert(n,s))}},configurable:!0,enumerable:!0});const l=Object.getOwnPropertyDescriptor(n,"propertyChangedCallback")||n.propertyChangedCallback;Object.defineProperty(n,"propertyChangedCallback",{value:function(e,t,n,s,o){const a=this,i=!0===GET_VAL$5(a,INSTANCE_READY_VAR),c=()=>{const s=GET_VAL$5(a,HAS_BIND_PREFIX+e);if(l&&l.value?l.value.apply(a,[e,t,n,!i]):"function"==typeof l&&l.apply(a,[e,t,n,!i]),!o||!1!==o.emit){const r=new PropertyChangeEvent({propertyName:e,oldValue:t,currentValue:n,firstChange:!i});a.dispatchEvent(r)}if(Utils.isNullOrEmpty(s)){var c=r.find(t=>t.name===e);if(o&&!0===o.reflectBack&&!CustomElementUtils.polyfilling){var m,d=CustomElementUtils.camelToKebab(e),p=a.attributes.getNamedItem(d);if(i||Utils.isNullOrEmpty(p))if(null==n)a.removeAttribute(d);else if(c&&(m=c.config)&&"function"==typeof m.converter.convertBack){const e=m.converter.convertBack(n,a);null!=p&&e===p.value||a.setAttribute(d,e)}}}else if("twoway"===s){const t=GET_VAL$5(a,WATCH_BIND_PREFIX+e)[0].dep;CustomElementUtils.set(t.element,t.path,n)}else"once"===s&&processBinding(a,e)};i?c.apply(a):GET_VAL$5(a,INSTANCE_ONREADY_VAR,[]).push(c)},configurable:!0,enumerable:!0})}Utils.customElements.define(e.tagName,t,e.options),Utils.customElements.whenDefined(e.tagName).then(()=>{})}},DefaultPropertyConverter=PropertyConverters.None;function Watch(e){return(t,r,n)=>{GET_VAL$5(t.constructor,WATCH_PROPS_VAR,[]).push({name:r,config:Utils.extend({emit:!0,converter:DefaultPropertyConverter},e)});const s=DefaultComparer,o=n&&n.set,a=WATCH_PROP_PREFIX+r,i=WATCH_VERS_PROP,l=WATCH_VERS_PROP+":"+r;function c(){return GET_VAL$5(this,a)}function m(t,n,s){const o=this,i=e&&e.debounce;let l;if("function"==typeof(l=o.propertyChangedCallback)){let s=()=>l.apply(o,[t,n,GET_VAL$5(o,a),!1,e]);"number"==typeof i&&i>0?(clearTimeout(this["_handle_"+r]),this["_handle_"+r]=setTimeout(s,i)):!0===i?(cancelAnimationFrame(this["_handle_"+r]),this["_handle_"+r]=requestAnimationFrame(s)):s()}}function d(e){const t=this;if(e=e||t[r],!0===GET_VAL$5(e,"pacem:array:decorated"))return;SET_VAL$4(e,"pacem:array:decorated",!0);const n=Array.prototype,s={splice:n.splice,pop:n.pop,copyWithin:n.copyWithin,push:n.push,shift:n.shift,unshift:n.unshift};for(let n in s){let o=n;e[o]=function(...e){const n=s[o].apply(this,e);return SET_VAL$4(this,i,Date.now()),m.call(t,r,this,this),n}}}function p(e,t){const n=this,o=Utils.isArray(t);(!s(e,t)||o&&GET_VAL$5(t,i)!==GET_VAL$5(n,l))&&(SET_VAL$4(n,a,t),o&&(SET_VAL$4(n,l,GET_VAL$5(t,i)),d.call(n,t)),m.call(n,r,e,t))}if(o)n.set=function(e){const t=this,n=t[r];o.call(t,e);const s=t[r];p.call(t,n,s)};else{try{t.ownerDocument&&(t[a]=t[r])}catch(e){}delete t[r]&&Object.defineProperty(t,r,{get:function(){return c.call(this)},set:function(e){const t=GET_VAL$5(this,a);p.call(this,t,e)},enumerable:!0,configurable:!0})}}}function ViewChild(e){return(t,r,n)=>{const s=`${r}_${Utils.uniqueCode()}`;function o(){const t=this,r=(t.shadowRoot||t).querySelectorAll(e);for(let e=0;e<r.length;e++){let n=r.item(e);if(GET_VAL$5(n,INSTANCE_HOST_VAR)===t)return n}return null}function a(){const e=GET_VAL$5(this,INSTANCE_CHILDREN_VAR,{});return e[s]=e[s]||o.call(this)}delete t[r]&&Object.defineProperty(t,r,{get:function(){return a.call(this)},enumerable:!0,configurable:!0})}}function Concurrent(){return function(e,t,r){const n=r.value,s=`pacem:concurrent-buffer:${t}`,o=`pacem:concurrent-running:${t}`;r.value=function(...e){var t=this,r=CustomElementUtils.getAttachedPropertyValue(t,s,[]);if(CustomElementUtils.getAttachedPropertyValue(t,o,!1)){let t=DeferPromise.defer();return e.push(t),r.push(e),t.promise}var a,i=n.apply(t,e);if((a=i)&&"function"==typeof a.then){let s=e&&e.length>0&&e[e.length-1];return s&&s.promise instanceof DeferPromise?e.pop():s=DeferPromise.defer(),CustomElementUtils.setAttachedPropertyValue(t,o,!0),i.then(e=>{s.resolve(e),CustomElementUtils.setAttachedPropertyValue(t,o,!1),r.length>0&&n.apply(t,r.shift())},e=>{CustomElementUtils.setAttachedPropertyValue(t,o,!1),s.reject(e)}),s.promise}return i}}}function Debounce(e=50,t=(e,...t)=>`pacem:debouncer:${e}`){return function(r,n,s){const o=s.value;!0===e?s.value=function(...e){const r=t(n,...e);var s=this;cancelAnimationFrame(GET_VAL$5(s,r)),SET_VAL$4(s,r,requestAnimationFrame(()=>{o.apply(s,e)}))}:e>0&&(s.value=function(...r){const s=t(n,...r);var a=this;clearTimeout(GET_VAL$5(a,s,0)),SET_VAL$4(a,s,setTimeout(()=>{o.apply(a,r)},e))})}}function Throttle(e=50,t=(e,...t)=>`pacem:throttler:${e}`){return function(r,n,s){const o=s.value;s.value=function(...r){const s=t(n,...r),a=`${s}:args`,i=this,l=()=>{DEL_VAL$4(i,s);const e=GET_VAL$5(i,a);DEL_VAL$4(i,a),e&&o.apply(i,r)};Utils.isNull(GET_VAL$5(i,s))?(SET_VAL$4(i,s,1),o.apply(i,r),!0===e?requestAnimationFrame(l):e>0&&setTimeout(l,e)):SET_VAL$4(i,a,r??["pacem"])}}}let Transforms$1=class Transforms{static register(e,t){let r=Utils.core;const n=(e||t.name).split(".");for(let e of n.slice(0,-1))r=r[e]||(r[e]={});const s=n[n.length-1]||t.name;Utils.isNull(r[s])?r[s]=t:console.warn(`A transform named ${s} already exists in this set.`)}};function Transformer(e){return function(t,r,n){const s=n.value;Transforms$1.register(e,s)}}var __decorate$I=function(e,t,r,n){var s,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(s=e[i])&&(a=(o<3?s(a):o>3?s(t,r,a):s(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a};class PacemEventTarget extends HTMLElement{constructor(){super(),this._isReady=!1,this.emitHandler=e=>{this.disabled||this.emit(e)}}emit(e){e.defaultPrevented||this._emitCore(e)}_emitCore(e){var t=`on-${e.type.toLowerCase()}`;if(t in this.attributes){this.log(LogLevel.Debug,`Calling ${t} handler for event ${e.type}`);var r=this.attributes[t].value,n=Expression.parse(r,this);Utils.isNull(n)||!0===n.pending||n.evaluatePlus({$event:e})}}handle(e,t){"string"==typeof e&&(e=Utils.isNull(t)?new Event(e,{cancelable:!1}):new CustomEvent(e,{cancelable:!1,detail:t})),this.emit(e)}get isReady(){return this._isReady}connectedCallback(){CustomElementUtils.setAttachedPropertyValue(this,INSTANCE_SCOPE_VAR,CustomElementUtils.findScopeContext(this)),this.log(LogLevel.Debug,"Connected.")}disconnectedCallback(){this._isReady=!1,this.dispatchEvent(new Event("unload")),CustomElementUtils.deleteAttachedPropertyValue(this,INSTANCE_SCOPE_VAR),this.log(LogLevel.Debug,"Disconnected.")}viewActivatedCallback(){this._isReady=!0,this.log(LogLevel.Debug,"Loaded (view activated)."),this.dispatchEvent(new Event("load"))}propertyChangedCallback(e,t,r,n){n?this.log(LogLevel.Log,`Property "${e}" changed at start-up`):this.log(LogLevel.Log,`Property "${e}" changed from ${t} to ${r}`)}dispatchEvent(e){if(this.disabled)return!1;this.log(LogLevel.Log,`Dispatching event "${e.type}"`);const t=super.dispatchEvent(e);return this.emit(e),t}log(e,t,r=this.localName+(this.id?"#"+this.id:"")){this.logger&&"function"==typeof this.logger.log&&this.logger.log(e,t,r)}refreshBindings(){for(let e=0;e<this.attributes.length;e++){let t=this.attributes.item(e);if(!CustomElementUtils.isBindingAttribute(t.value))continue;let r=CustomElementUtils.kebabToCamel(t.name),n=CustomElementUtils.parseBindingAttribute(t.value,this);this[r]=n.evaluate()}}}__decorate$I([Watch({reflectBack:!0,converter:PropertyConverters.Boolean})],PacemEventTarget.prototype,"disabled",void 0),__decorate$I([Watch({emit:!1,converter:PropertyConverters.Element})],PacemEventTarget.prototype,"logger",void 0);var __decorate$H=function(e,t,r,n){var s,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(s=e[i])&&(a=(o<3?s(a):o>3?s(t,r,a):s(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a};const RepeaterItemCreateEventName="repeateritemcreate",RepeaterItemRemoveEventName="repeateritemremove";class RepeaterItemEvent extends CustomTypedEvent{constructor(e,t){super(e,t)}}class RepeaterItemCreateEvent extends RepeaterItemEvent{constructor(e){super(RepeaterItemCreateEventName,e)}}class RepeaterItemRemoveEvent extends RepeaterItemEvent{constructor(e){super(RepeaterItemRemoveEventName,e)}}const STD_EVENTS=["keydown","keyup","click","focus","blur","dblclick","mouseover","mouseout","mouseenter","mouseleave","mousedown","mouseup","mousemove","contextmenu","wheel"];class ElementAriaAttributes{constructor(e,t){this._element=e,this._aria=Utils.extend({},t||{})}toObject(){return Utils.extend({},this._aria)}set(e,t){this._aria[e]=t;const r=this._element;r.isConnected&&r.setAttribute("aria-"+e,t)}remove(e){delete this._aria[e];const t=this._element;t.isConnected&&t.removeAttribute("aria-"+e)}}class ElementAria{constructor(e,t,r){this._element=e,this._aria={role:t,attrs:new ElementAriaAttributes(e,r)}}get role(){return this._aria.role}set role(e){this._aria.role=e;const t=this._element;t.isConnected&&(Utils.isNullOrEmpty(e)?t.removeAttribute("role"):t.setAttribute("role",e))}get attributes(){return this._aria.attrs}}class PacemElement extends PacemEventTarget{constructor(e,t){super(),this.#l=[],this.#c=[],this._tabIndex=-1,this.behaviors=[],this._aria=new ElementAria(this,e,t)}get aria(){return this._aria}static#m=null;static get emittedEventTypes(){return this.#m??=Utils.readonlyCopy(STD_EVENTS)}#l;#c;connectedCallback(){super.connectedCallback(),Utils.isNullOrEmpty(this._aria.role)||this.setAttribute("role",this._aria.role);let e=this._aria.attributes.toObject();if(!Utils.isNullOrEmpty(e))for(let t in e)this.setAttribute("aria-"+t,e[t])}viewActivatedCallback(){for(var e of(super.viewActivatedCallback(),STD_EVENTS.forEach(e=>{this.addEventListener(e,this.emitHandler,!1)}),this.behaviors||[]))e.register(this)}disconnectedCallback(){for(var e of this.behaviors||[])e.unregister(this);STD_EVENTS.forEach(e=>{this.removeEventListener(e,this.emitHandler,!1)}),super.disconnectedCallback()}propertyChangedCallback(e,t,r,n){switch(super.propertyChangedCallback(e,t,r,n),e){case"css":for(var s in this.css)this.style.setProperty(s,this.css[s]);break;case"cssClass":if(Utils.isArray(this.cssClass)){const e=this.cssClass;for(let e of this.#l.splice(0))Utils.removeClass(this,e);for(let t of e)this.#l.push(t),Utils.addClass(this,t)}else for(let e in this.cssClass)Utils.toggleClass(this,e,this.cssClass[e]);break;case"cssPart":const o=this.cssPart,a=this.#c;if(Utils.isArray(o)){const e=o;for(let e of a.splice(0))Utils.removePart(this,e);for(let t of e)a.push(t),Utils.addPart(this,t)}else for(let e in o)Utils.togglePart(this,e,o[e]);break;case"hide":const i=PCSS+"-hiding";if(r){const e=this,r=PCSS+"-anim",n=()=>{e.setAttribute("hidden",""),e.aria.attributes.set("hidden","true")};Utils.hasClass(e,r)&&!Utils.isNull(t)?(Utils.removeClass(e,r),requestAnimationFrame(()=>{Utils.addClass(e,i),Utils.addClass(e,r),Utils.waitForAnimationEnd(e,250).then(t=>{e.hide&&n(),Utils.removeClass(e,i)})})):n()}else Utils.removeClass(this,i),this.removeAttribute("hidden"),this.aria.attributes.remove("hidden");break;case"tooltip":this.title=r,Utils.isNullOrEmpty(r)?this.aria.attributes.remove("label"):this.aria.attributes.set("label",r);break;case"tabOrder":this._tabIndex=r,this.disabled||(this.tabIndex=r);break;case"behaviors":if(!Utils.isNullOrEmpty(t))for(let e of t)e.unregister(this);if(!Utils.isNullOrEmpty(r)&&!n)for(let e of r)e.register(this);break;case"disabled":let l=PCSS+"-"+e;r?(this._tabIndex=this.tabIndex,this.tabIndex=-1,Utils.addClass(this,l)):(this.tabIndex=this._tabIndex,Utils.removeClass(this,l));break;case"culture":Utils.isNullOrEmpty(r)?this.removeAttribute("lang"):this.setAttribute("lang",r),n||this.refreshBindings()}}}__decorate$H([Watch({emit:!1,converter:PropertyConverters.Json})],PacemElement.prototype,"cssClass",void 0),__decorate$H([Watch({emit:!1,converter:PropertyConverters.Json})],PacemElement.prototype,"cssPart",void 0),__decorate$H([Watch({emit:!1,converter:PropertyConverters.Json})],PacemElement.prototype,"css",void 0),__decorate$H([Watch({emit:!1,converter:PropertyConverters.Boolean})],PacemElement.prototype,"hide",void 0),__decorate$H([Watch({emit:!1,converter:PropertyConverters.String})],PacemElement.prototype,"tooltip",void 0),__decorate$H([Watch({emit:!1,converter:PropertyConverters.Number})],PacemElement.prototype,"tabOrder",void 0),__decorate$H([Watch({converter:PropertyConverters.String})],PacemElement.prototype,"culture",void 0),__decorate$H([Watch({emit:!1})],PacemElement.prototype,"behaviors",void 0);class PacemContentElement extends PacemElement{propertyChangedCallback(e,t,r,n){super.propertyChangedCallback(e,t,r,n),"content"!==e||n||this._fillContent(r)}_isContentNullOrEmpty(e=this.content){return Utils.isNullOrEmpty(e)||e instanceof DocumentFragment&&0===e.childElementCount}viewActivatedCallback(){super.viewActivatedCallback(),this._original=Array.from(this.children),this._isContentNullOrEmpty()||this._fillContent()}disconnectedCallback(){Utils.isNullOrEmpty(this._original)||(this.innerHTML="",Element.prototype.append.apply(this,this._original)),super.disconnectedCallback()}_fillContent(e=this.content){const t=this.sanitize(e);Utils.isNullOrEmpty(t)?this.innerHTML="":t instanceof Node?(this.innerHTML="",this.append(t)):this.innerHTML=t}}__decorate$H([Watch({emit:!1,converter:PropertyConverters.String})],PacemContentElement.prototype,"content",void 0);class PacemUnsafeContentElement extends PacemContentElement{sanitize(e){return e}}class PacemSafeContentElement extends PacemContentElement{_sanitizeLegacy(e){if(Utils.isNullOrEmpty(e))return e;if(e instanceof Node){for(let t=e.childNodes.length-1;t>=0;t--){const r=e.childNodes.item(t);r instanceof HTMLScriptElement?r.remove():this.sanitize(r)}return e}{const t=/<script.+<\/script>/g;return(e||"").toString().replace(t,"")}}sanitize(e){return this._sanitizeLegacy(e)}}class PacemAdapter extends PacemElement{constructor(){super(...arguments),this._propertyChangeHandler=e=>{this.masterPropertyChangedCallback(e.detail.propertyName,e.detail.oldValue,e.detail.currentValue,e.detail.firstChange)}}get master(){return this._element}get initialized(){return!Utils.isNull(this._element)}masterPropertyChangedCallback(e,t,r,n){switch(e){case"items":this._adjustFocusIndex();break;case"index":this._element.dispatchEvent(new CurrentIndexChangeEvent({currentIndex:r,previousIndex:t}))}}itemPropertyChangedCallback(e,t,r,n,s){}initializeCallback(){}destroyCallback(){}initialize(e){null!=this._element&&this.destroy(),null!=e&&(this._element=e,this._element.addEventListener(PropertyChangeEventName,this._propertyChangeHandler,!1)),this.initializeCallback()}destroy(){null!=this._element&&this._element.removeEventListener(PropertyChangeEventName,this._propertyChangeHandler,!1),this.destroyCallback()}disconnectedCallback(){this.destroy(),super.disconnectedCallback()}_adjustFocusIndex(){let e=this._element.items;const t=this._element.index,r=e&&e.length,n=r?Math.max(0,Math.min(r-1,t)):-1,s=this._getAvailable(n);this._element.index=s}_getNextAvailable(e){return this._getAvailable(e,1)}_getPreviousAvailable(e){return this._getAvailable(Math.max(0,e),-1)}_getAvailable(e=this._element&&this._element.index,t=0){let r,n=this._element.items;if(!(n&&(r=n.length)>0))return-1;let s,o=((e%=r)+t+r)%r;for(t=t||-1;(s=n[o])instanceof PacemEventTarget&&!0===s.disabled||s instanceof PacemElement&&!0===s.hide;)if(o=(o+t+r)%r,o==e)return-1;return o}isClose(e){const t=this._getAvailable();return e===t||e===this._getPreviousAvailable(t)||e===this._getNextAvailable(t)}isPrevious(e){const t=this._getAvailable();return e===this._getPreviousAvailable(t)}isNext(e){const t=this._getAvailable();return e===this._getNextAvailable(t)}select(e){this._element.index=this._getAvailable(e)}previous(e=!0){var t=this._getPreviousAvailable(this._element.index);t>=0&&(e||this._element.index>t)&&(this._element.index=t)}next(e=!0){var t=this._getNextAvailable(this._element.index);t>=0&&(e||this._element.index<t)&&(this._element.index=t)}}var __decorate$G=function(e,t,r,n){var s,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(s=e[i])&&(a=(o<3?s(a):o>3?s(t,r,a):s(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a};let PacemAnnihilatorElement=class PacemAnnihilatorElement extends HTMLElement{constructor(){super()}connectedCallback(){this.remove()}};PacemAnnihilatorElement=__decorate$G([CustomElement({tagName:P+"-annihilator"})],PacemAnnihilatorElement);var __decorate$F=function(e,t,r,n){var s,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(s=e[i])&&(a=(o<3?s(a):o>3?s(t,r,a):s(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a};let PacemBeforeunloadElement=class PacemBeforeunloadElement extends PacemEventTarget{constructor(){super(...arguments),this._unloadingHandler=e=>{const t=this.message;this.active&&!this.disabled&&("beforeunload"===e.type?(e.preventDefault(),e.returnValue=t||""):confirm(t||"Leave page?")||e.preventDefault())}}viewActivatedCallback(){super.viewActivatedCallback(),window.addEventListener("navigating",this._unloadingHandler,!1),window.addEventListener("beforeunload",this._unloadingHandler,!1)}disconnectedCallback(){window.removeEventListener("navigating",this._unloadingHandler,!1),window.removeEventListener("beforeunload",this._unloadingHandler,!1),super.disconnectedCallback()}};__decorate$F([Watch({emit:!1,converter:PropertyConverters.String})],PacemBeforeunloadElement.prototype,"message",void 0),__decorate$F([Watch({emit:!1,converter:PropertyConverters.Boolean})],PacemBeforeunloadElement.prototype,"active",void 0),PacemBeforeunloadElement=__decorate$F([CustomElement({tagName:P+"-beforeunload"})],PacemBeforeunloadElement);var __decorate$E=function(e,t,r,n){var s,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(s=e[i])&&(a=(o<3?s(a):o>3?s(t,r,a):s(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a};let PacemBroadcastChannelProxyElement=class PacemBroadcastChannelProxyElement extends PacemEventTarget{constructor(){super(...arguments),this.autosend=!0,this._messageHandler=e=>{this.result=e.data,this.dispatchEvent(new CustomEvent("receive",{detail:e.data,bubbles:!1,cancelable:!1}))},this._errorHandler=e=>{this.dispatchEvent(new CustomEvent("error",{detail:e.data,bubbles:!1,cancelable:!1}))}}viewActivatedCallback(){super.viewActivatedCallback(),this._initializeChannel()}propertyChangedCallback(e,t,r,n){if(super.propertyChangedCallback(e,t,r,n),!n)switch(e){case"src":this._disposeChannel(),this._initializeChannel(r);break;case"autosend":case"disabled":case"message":this.autosend&&this.send(this.message)}}disconnectedCallback(){this._disposeChannel(),super.disconnectedCallback()}send(e=this.message){if(this.disabled)return;const t=this.#d;Utils.isNull(t)||t.postMessage(e)}#d;_initializeChannel(e=this.channelName){if(!Utils.isNullOrEmpty(e)){const t=this.#d=new BroadcastChannel(e);t.addEventListener("message",this._messageHandler,!1),t.addEventListener("messageerror",this._errorHandler,!1),this.autosend&&!Utils.isNull(this.message)&&this.send()}}_disposeChannel(e=this.#d){Utils.isNull(e)||(e.removeEventListener("messageerror",this._errorHandler,!1),e.removeEventListener("message",this._messageHandler,!1),e.close())}};__decorate$E([Watch({emit:!1,converter:PropertyConverters.String})],PacemBroadcastChannelProxyElement.prototype,"message",void 0),__decorate$E([Watch({converter:PropertyConverters.String})],PacemBroadcastChannelProxyElement.prototype,"result",void 0),__decorate$E([Watch({emit:!1,converter:PropertyConverters.String})],PacemBroadcastChannelProxyElement.prototype,"channelName",void 0),__decorate$E([Watch({emit:!1,reflectBack:!0,converter:PropertyConverters.Boolean})],PacemBroadcastChannelProxyElement.prototype,"autosend",void 0),PacemBroadcastChannelProxyElement=__decorate$E([CustomElement({tagName:P+"-broadcastchannel-proxy"})],PacemBroadcastChannelProxyElement);var __decorate$D=function(e,t,r,n){var s,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(s=e[i])&&(a=(o<3?s(a):o>3?s(t,r,a):s(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a};let PacemBrowserDetectElement=class PacemBrowserDetectElement extends PacemEventTarget{viewActivatedCallback(){super.viewActivatedCallback(),this._detect()}propertyChangedCallback(e,t,r,n){super.propertyChangedCallback(e,t,r,n),"userAgent"===e&&this._detect(r)}#p;#h;get browser(){return this.#p}get version(){return this.#h}_detect(e=this.userAgent){const{version:t,name:r}=pacemFoundation.detect(e),{browser:n,version:s}=this;r!=n&&(this.#p=r,this.dispatchEvent(new PropertyChangeEvent({propertyName:"browser",currentValue:r,oldValue:n}))),t!=s&&(this.#h=t,this.dispatchEvent(new PropertyChangeEvent({propertyName:"version",currentValue:t,oldValue:s})))}};__decorate$D([Watch({emit:!1,converter:PropertyConverters.String})],PacemBrowserDetectElement.prototype,"userAgent",void 0),PacemBrowserDetectElement=__decorate$D([CustomElement({tagName:P+"-browser-detect"})],PacemBrowserDetectElement);const EXPIRATION_FIELD="_exp";class Storage{_getStorage(e){return e?window.localStorage:window.sessionStorage}_parseValue(e,t){const r=e.getItem(t);if(Utils.isNullOrEmpty(r))return null;const n=Utils.Json.parse(r);if(!Object.hasOwnProperty(EXPIRATION_FIELD))return n;return n[EXPIRATION_FIELD]<Date.now()?(e.removeItem(t),null):n.value}setPropertyValue(e,t,r){var n=this._getStorage(!0===r||"number"==typeof r&&r>0),s=t;if("number"==typeof r&&r>0){const e=Date.now()+1e3*r;(s={value:t})[EXPIRATION_FIELD]=e}n.setItem(e,Utils.Json.stringify(s)),(n=this._getStorage(!r)).removeItem(e)}getPropertyValue(e){return this._parseValue(this._getStorage(!1),e)||this._parseValue(this._getStorage(!0),e)}clear(){var e=this._getStorage(!0);e.clear(),(e=this._getStorage(!1)).clear()}removeProperty(e){var t=this._getStorage(!0);t.removeItem(e),(t=this._getStorage(!1)).removeItem(e)}}var __decorate$C=function(e,t,r,n){var s,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(s=e[i])&&(a=(o<3?s(a):o>3?s(t,r,a):s(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a};let PacemDataElement=class PacemDataElement extends PacemEventTarget{constructor(e=new Storage){super(),this.storage=e,this._handle=0,this._flag=!1}propertyChangedCallback(e,t,r,n){switch(super.propertyChangedCallback(e,t,r,n),e){case"persistAs":Utils.isNullOrEmpty(t)||this.storage.removeProperty(t),!0!==n||Utils.isNullOrEmpty(r)||(this.model=this.storage.getPropertyValue(r)??this.model);break;case"model":const s=this.debounce,o=this.throttle,a=()=>{this.dispatchEvent(new PropertyChangeEvent({propertyName:e,oldValue:t,currentValue:r,firstChange:n}))};if(s>0&&!n)if(o){if(this._flag)return;this._flag=!0,a(),this._handle=window.setTimeout(()=>{this._flag=!1},s)}else clearTimeout(this._handle),this._handle=window.setTimeout(a,s);else a();n||Utils.isNullOrEmpty(this.persistAs)||(Utils.isNull(r)?this.storage.removeProperty(this.persistAs):this.storage.setPropertyValue(this.persistAs,r,!0))}}};__decorate$C([Watch({emit:!1,converter:PropertyConverters.Eval})],PacemDataElement.prototype,"model",void 0),__decorate$C([Watch({emit:!1,converter:PropertyConverters.String})],PacemDataElement.prototype,"persistAs",void 0),__decorate$C([Watch({emit:!1,converter:PropertyConverters.Number})],PacemDataElement.prototype,"debounce",void 0),__decorate$C([Watch({emit:!1,converter:PropertyConverters.BooleanStrict})],PacemDataElement.prototype,"throttle",void 0),PacemDataElement=__decorate$C([CustomElement({tagName:P+"-data"})],PacemDataElement);var __decorate$B=function(e,t,r,n){var s,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(s=e[i])&&(a=(o<3?s(a):o>3?s(t,r,a):s(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a},DockMode;!function(e){e.Top="top",e.Bottom="bottom"}(DockMode||(DockMode={}));let PacemDockElement=class PacemDockElement extends PacemEventTarget{constructor(e=new TweenService){super(),this._tweener=e,this.mode=DockMode.Top,this.transitionDuration=300}propertyChangedCallback(e,t,r,n){super.propertyChangedCallback(e,t,r,n),"dock"!==e||Utils.isNull(t)&&0==r?"mode"===e&&!0===this.dock&&this._doDock():this._doDock()}_animate(e,t){var r=this.transitionDuration;return r>0||(r=300),this._tweener.run(e,t,r,this.delay,Easings.sineInOut,(e,t)=>{this._setOffset(t)}).then(()=>{this._resetOffset()})}_setOffset(e){this.style.transform="translateY("+e+"px)"}_resetOffset(){this.style.transform=""}_compute(){const e=Utils.offset(this),t=getComputedStyle(this),r=Utils.scrollTop;switch(this.mode){case DockMode.Bottom:const n=parseInt(t.marginBottom),s=e.top;return{delta:Utils.windowSize.height-(s-r+this.offsetHeight)+n};case DockMode.Top:const o=parseInt(t.marginTop);return{delta:-(e.top-r+o)}}}_doDock(){if(this.dock){const e=this._compute();if(Utils.isNull(e))return;switch(Utils.addClass(this,PCSS+"-dock"),this.mode){case DockMode.Bottom:Utils.removeClass(this,PCSS+"-dock-top"),Utils.addClass(this,PCSS+"-dock-bottom");break;case DockMode.Top:Utils.removeClass(this,PCSS+"-dock-bottom"),Utils.addClass(this,PCSS+"-dock-top")}const t=-e.delta,r=0,n=CustomElementUtils.getAttachedPropertyValue(this,"pacem-dock:state")||0;CustomElementUtils.setAttachedPropertyValue(this,"pacem-dock:state",-t+n),this.log(LogLevel.Info,`animating from ${t}px to ${r}px`),this._animate(t,r)}else{const e=CustomElementUtils.getAttachedPropertyValue(this,"pacem-dock:state");CustomElementUtils.deleteAttachedPropertyValue(this,"pacem-dock:state");const t=0;this.log(LogLevel.Info,`animating back from ${e}px to ${t}px`),Utils.removeClass(this,`${PCSS}-dock ${PCSS}-dock-top ${PCSS}-dock-bottom`),this._animate(e,t)}}};__decorate$B([Watch({emit:!1,converter:PropertyConverters.String})],PacemDockElement.prototype,"mode",void 0),__decorate$B([Watch({converter:PropertyConverters.Boolean})],PacemDockElement.prototype,"dock",void 0),__decorate$B([Watch({emit:!1,converter:PropertyConverters.Element})],PacemDockElement.prototype,"target",void 0),__decorate$B([Watch({emit:!1,converter:PropertyConverters.Number})],PacemDockElement.prototype,"delay",void 0),__decorate$B([Watch({emit:!1,converter:PropertyConverters.Number})],PacemDockElement.prototype,"transitionDuration",void 0),PacemDockElement=__decorate$B([CustomElement({tagName:P+"-dock"})],PacemDockElement);var __decorate$A=function(e,t,r,n){var s,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(s=e[i])&&(a=(o<3?s(a):o>3?s(t,r,a):s(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a};class PacemTransferProxyElement extends PacemEventTarget{constructor(){super(...arguments),this._dom=[],this._children=[]}get dom(){return this._children}viewActivatedCallback(){super.viewActivatedCallback(),this.moveContent(this.proxy)}moveContent(e){Utils.isNull(e)||(Utils.isNullOrEmpty(this._dom)?(this._dom=Utils.moveItems(this.childNodes,e),this._children=this._dom.filter(e=>e instanceof Element)):Utils.moveItems(this._children,e))}disconnectedCallback(){for(let e of(this._dom||[]).splice(0))e.remove();super.disconnectedCallback()}}let PacemBodyProxyElement=class PacemBodyProxyElement extends PacemTransferProxyElement{get proxy(){return document.body}};PacemBodyProxyElement=__decorate$A([CustomElement({tagName:P+"-body-proxy"})],PacemBodyProxyElement);let PacemShellProxyElement=class PacemShellProxyElement extends PacemTransferProxyElement{get proxy(){return CustomElementUtils.findAncestorShell(this)}};PacemShellProxyElement=__decorate$A([CustomElement({tagName:P+"-shell-proxy"})],PacemShellProxyElement);let PacemElementProxyElement=class PacemElementProxyElement extends PacemTransferProxyElement{get proxy(){return this.target}propertyChangedCallback(e,t,r,n){super.propertyChangedCallback(e,t,r,n),"target"!==e||n||this.moveContent(this.proxy)}};__decorate$A([Watch({converter:PropertyConverters.Element})],PacemElementProxyElement.prototype,"target",void 0),PacemElementProxyElement=__decorate$A([CustomElement({tagName:P+"-element-proxy"})],PacemElementProxyElement);var __decorate$z=function(e,t,r,n){var s,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(s=e[i])&&(a=(o<3?s(a):o>3?s(t,r,a):s(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a};class EmitEvent extends Event{constructor(e){super("emit"),this._originalEvent=e}get originalEvent(){return this._originalEvent}}const ElementOrWindowConverter={convert:function(e,t){return"$window"===e?window:PropertyConverters.Element.convert(e,t)},convertBack:(e,t)=>e===window?"$window":PropertyConverters.Element.convertBack(e,t)};let PacemEventProxyElement=class PacemEventProxyElement extends PacemEventTarget{constructor(){super(...arguments),this._emitHandler=e=>{var t=new EmitEvent(e);this.dispatchEvent(t)}}viewActivatedCallback(){super.viewActivatedCallback(),this._observe()}propertyChangedCallback(e,t,r,n){if(super.propertyChangedCallback(e,t,r,n),!n)switch(e){case"target":this._unobserve(t,this.event,this.capture),this._observe();break;case"event":this._unobserve(this.target,t,this.capture),this._observe();break;case"capture":this._unobserve(this.target,this.event,t),this._observe()}}disconnectedCallback(){this._unobserve(),super.disconnectedCallback()}_unobserve(e=this.target,t=this.event,r=this.capture){Utils.isNull(e)||Utils.isNullOrEmpty(t)||e.removeEventListener(t,this._emitHandler,{capture:r})}_observe(e=this.target,t=this.event,r=this.capture){Utils.isNull(e)||Utils.isNullOrEmpty(t)||e.addEventListener(t,this._emitHandler,{capture:r})}};__decorate$z([Watch({emit:!1,converter:ElementOrWindowConverter})],PacemEventProxyElement.prototype,"target",void 0),__decorate$z([Watch({emit:!1,converter:PropertyConverters.String})],PacemEventProxyElement.prototype,"event",void 0),__decorate$z([Watch({emit:!1,converter:PropertyConverters.Boolean})],PacemEventProxyElement.prototype,"capture",void 0),PacemEventProxyElement=__decorate$z([CustomElement({tagName:P+"-event-proxy"})],PacemEventProxyElement);var __decorate$y=function(e,t,r,n){var s,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(s=e[i])&&(a=(o<3?s(a):o>3?s(t,r,a):s(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a};const ABORT_MESSAGE="New incoming request overrides the ongoing one. Aborting.";let PacemFetchElement=class PacemFetchElement extends PacemEventTarget{constructor(){super(...arguments),this.autofetch=!0,this.debounce=100}viewActivatedCallback(){super.viewActivatedCallback(),this._delayAndConditionallyFetch()}propertyChangedCallback(e,t,r,n){switch(super.propertyChangedCallback(e,t,r,n),e){case"url":case"method":case"type":case"as":case"mode":case"credentials":case"disabled":case"autofetch":this._delayAndConditionallyFetch();break;case"parameters":case"headers":this.diffByValues&&Utils.jsonSortStringify(t)==Utils.jsonSortStringify(r)||this._delayAndConditionallyFetch()}}_delayAndConditionallyFetch(){clearTimeout(this._handle),this.disabled?this._abortPending():this.autofetch&&(this._handle=setTimeout(()=>{this.fetch()},this.debounce||0))}_abortPending(){this.#u&&(this.#u.abort(ABORT_MESSAGE),this.#u=null)}#u;#v;fetch(){return this.throttle&&this.fetching?this.#v:this.#v=new Promise((e,t)=>{var r=this.url;if(!this.isReady||Utils.isNullOrEmpty(r)||this.disabled)return void e(null);let n=this;n.fetching=!0;let s="application/json";if("raw"===(n.type||"json"))s="application/x-www-form-urlencoded";const o=(n.method||HttpMethod.Get).toUpperCase();let a={headers:Utils.extend({"Content-Type":s},n.headers),method:o,mode:n.mode||"cors",credentials:n.credentials||"same-origin",cache:n.cache||"default"};const i=Utils.clone(n.parameters??{});if(r=Utils.URIs.format(r,i,"GET"==o),!Utils.isNullOrEmpty(i))switch(o){case"GET":r=Utils.URIs.appendQuery(r,i);break;case"PUT":case"POST":case"PATCH":if("raw"===n.type){let e=new URLSearchParams;for(let t in i)e.set(t,i[t]);a.body=e}else a.body=Utils.Json.stringify(i)}if(Utils.URIs.hasMandatoryTemplateSegments(r))return void e(null);this._abortPending();const{signal:l}=this.#u=new AbortController;a.signal=l,fetch(r,a).then(r=>{if(this.#u=null,n.fetching=!1,r.ok){this.dispatchEvent(new CustomEvent(FetchSuccessEventName,{detail:r}));if(Fetcher.isEmpty(r))n.as,n.result=null,e(r);else switch(n.as){case"blob":case"image":r.blob().then(t=>{"image"===n.as?Utils.blobToDataURL(t).then(e=>{n._acceptFetchResult(e)}):n._acceptFetchResult(t),e(r)},t=>{this.log(LogLevel.Warn,`Couldn't parse a ${n.as}. ${t}`),e(null)});break;case"text":r.text().then(t=>{n._acceptFetchResult(t),e(r)});break;default:r.json().then(t=>{n._acceptFetchResult(t),e(r)},t=>{this.log(LogLevel.Warn,`Couldn't parse a ${n.as}. ${t}`),e(null)})}}else this.dispatchEvent(new CustomEvent(FetchErrorEventName,{detail:r})),t(r)},r=>{"string"==typeof r&&r===ABORT_MESSAGE?(this.log(LogLevel.Info,r),e(null)):t(r)})})}_acceptFetchResult(e){this.dispatchEvent(new CustomEvent(FetchResultEventName,{detail:e})),this.result=e}};__decorate$y([Watch({emit:!1,reflectBack:!0,converter:PropertyConverters.String})],PacemFetchElement.prototype,"url",void 0),__decorate$y([Watch({emit:!1,reflectBack:!0,converter:PropertyConverters.String})],PacemFetchElement.prototype,"method",void 0),__decorate$y([Watch({emit:!1,converter:PropertyConverters.Json})],PacemFetchElement.prototype,"parameters",void 0),__decorate$y([Watch({emit:!1,converter:PropertyConverters.Json})],PacemFetchElement.prototype,"headers",void 0),__decorate$y([Watch({emit:!1,converter:PropertyConverters.String})],PacemFetchElement.prototype,"credentials",void 0),__decorate$y([Watch({emit:!1,converter:PropertyConverters.String})],PacemFetchElement.prototype,"mode",void 0),__decorate$y([Watch({emit:!1,converter:PropertyConverters.String})],PacemFetchElement.prototype,"cache",void 0),__decorate$y([Watch({converter:PropertyConverters.BooleanStrict})],PacemFetchElement.prototype,"fetching",void 0),__decorate$y([Watch({reflectBack:!0,converter:PropertyConverters.Boolean})],PacemFetchElement.prototype,"autofetch",void 0),__decorate$y([Watch({emit:!1,converter:PropertyConverters.String})],PacemFetchElement.prototype,"as",void 0),__decorate$y([Watch({emit:!1,converter:PropertyConverters.String})],PacemFetchElement.prototype,"type",void 0),__decorate$y([Watch({reflectBack:!0,converter:PropertyConverters.Number})],PacemFetchElement.prototype,"debounce",void 0),__decorate$y([Watch({emit:!1,reflectBack:!0,converter:PropertyConverters.Number})],PacemFetchElement.prototype,"throttle",void 0),__decorate$y([Watch({emit:!1,reflectBack:!0,converter:PropertyConverters.Boolean})],PacemFetchElement.prototype,"diffByValues",void 0),__decorate$y([Watch()],PacemFetchElement.prototype,"result",void 0),PacemFetchElement=__decorate$y([CustomElement({tagName:P+"-fetch"})],PacemFetchElement);var __decorate$x=function(e,t,r,n){var s,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(s=e[i])&&(a=(o<3?s(a):o>3?s(t,r,a):s(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a};class StateEvent extends CustomEvent{constructor(e,t){super(e,{detail:t})}}let PacemHistoryElement=class PacemHistoryElement extends PacemEventTarget{#E;propertyChangedCallback(e,t,r,n){switch(super.propertyChangedCallback(e,t,r,n),e){case"state":this._handleStateChange(r);break;case"maxlength":const e=this.#E;Utils.isNull(e)||(e.maxlength=r)}}viewActivatedCallback(){super.viewActivatedCallback(),this._handleStateChange()}_handleStateChange(e=this.state){const t=this.#E;Utils.isNull(t)?this.#E=new pacemFoundation.HistoryService(e,this.maxlength):!0!==DefaultComparer(t.current,e)&&(t.push(e),this.log(LogLevel.Log,"Pushed state."),this._synchronize("push"))}redo(){const e=this.#E;Utils.isNull(e)||(e.redo(),this.log(LogLevel.Log,"Redone state."),this._synchronize("redo"))}reset(){const e=this.#E;Utils.isNull(e)||(e.reset(),this.log(LogLevel.Log,"Reset state."),this._synchronize("reset"))}undo(){const e=this.#E;Utils.isNull(e)||(e.undo(),this.log(LogLevel.Log,"Undone state."),this._synchronize("undo"))}_synchronize(e){const t=this.#E;this.canUndo=t.canUndo,this.canRedo=t.canRedo,this.state=t.current;const{canRedo:r,canUndo:n,current:s}=t;this.dispatchEvent(new StateEvent(e,{canRedo:r,canUndo:n,state:s}))}};__decorate$x([Watch({emit:!0,converter:PropertyConverters.Json})],PacemHistoryElement.prototype,"state",void 0),__decorate$x([Watch({emit:!1,converter:PropertyConverters.Number})],PacemHistoryElement.prototype,"maxlength",void 0),__decorate$x([Watch({emit:!0,converter:PropertyConverters.Boolean})],PacemHistoryElement.prototype,"canUndo",void 0),__decorate$x([Watch({emit:!0,converter:PropertyConverters.Boolean})],PacemHistoryElement.prototype,"canRedo",void 0),PacemHistoryElement=__decorate$x([CustomElement({tagName:P+"-history"})],PacemHistoryElement);var __decorate$w=function(e,t,r,n){var s,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(s=e[i])&&(a=(o<3?s(a):o>3?s(t,r,a):s(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a};let PacemHtmlProxyElement=class PacemHtmlProxyElement extends PacemEventTarget{constructor(){super(...arguments),this._html=document.documentElement}propertyChangedCallback(e,t,r,n){super.propertyChangedCallback(e,t,r,n),"attr"===e&&t&&this._html.removeAttribute(t),this._update()}_update(){const e=this.attr;if(Utils.isNullOrEmpty(e)||this.disabled)return;const t=this.value,r=this._html;Utils.isNullOrEmpty(t)?r.removeAttribute(e):r.setAttribute(e,t)}};__decorate$w([Watch({emit:!1,converter:PropertyConverters.String})],PacemHtmlProxyElement.prototype,"attr",void 0),__decorate$w([Watch({emit:!1,converter:PropertyConverters.String})],PacemHtmlProxyElement.prototype,"value",void 0),PacemHtmlProxyElement=__decorate$w([CustomElement({tagName:P+"-html-proxy"})],PacemHtmlProxyElement);var __decorate$v=function(e,t,r,n){var s,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(s=e[i])&&(a=(o<3?s(a):o>3?s(t,r,a):s(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a};let PacemIfElement=class PacemIfElement extends HTMLElement{#g;propertyChangedCallback(e,t,r,n){Utils.isNullOrEmpty(this.#g)&&(this.#g=this.innerHTML),this.innerHTML=r?this.#g:""}};__decorate$v([Watch({emit:!1,converter:PropertyConverters.Boolean})],PacemIfElement.prototype,"match",void 0),PacemIfElement=__decorate$v([CustomElement({tagName:P+"-if"})],PacemIfElement);var __decorate$u=function(e,t,r,n){var s,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(s=e[i])&&(a=(o<3?s(a):o>3?s(t,r,a):s(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a};class PacemItemElement extends PacemElement{get container(){return this._container}findContainer(){return CustomElementUtils.findAncestor(this,e=>e instanceof PacemItemsContainerElement)}viewActivatedCallback(){super.viewActivatedCallback();const e=this._container=this.findContainer();Utils.isNull(e)||e.register(this)}disconnectedCallback(){Utils.isNull(this._container)||this._container.unregister(this),super.disconnectedCallback()}}function isItemsContainer(e){return"items"in e&&(Utils.isNull(e.items)||Utils.isArray(e.items))&&"function"==typeof e.register&&"function"==typeof e.unregister}const ItemRegisterEventName="itemregister",ItemUnregisterEventName="itemunregister";class ItemRegisterEvent extends CustomTypedEvent{constructor(e,t){super(ItemRegisterEventName,e,t)}}class ItemUnregisterEvent extends CustomTypedEvent{constructor(e,t){super(ItemUnregisterEventName,e,t)}}class ItemsContainerRegistrar{constructor(e){if(this._container=e,null==e||!(e instanceof PacemItemsContainerElement||e instanceof PacemCrossItemsContainerElement))throw"Must provide a valid itemscontainer."}register(e){const t=this._container;var r=!1;return t.validate(e)?Utils.isNull(t.items)?(t.items=[e],r=!0):-1===t.items.indexOf(e)&&(t.items.push(e),r=!0):t.logger&&t.logger.log(LogLevel.Debug,`${e&&e.localName} element couldn't be registered in a ${t.localName} element.`),r&&t.dispatchEvent(new ItemRegisterEvent(e)),r}unregister(e){const t=this._container;if(!Utils.isNull(t.items)){const r=t.items.indexOf(e);if(r>=0){let e=t.items.splice(r,1);return t.dispatchEvent(new ItemUnregisterEvent(e[0])),!0}}return!1}}class PacemCrossItemsContainerElement extends PacemItemElement{constructor(e,t){super(e,t),this._registrar=new ItemsContainerRegistrar(this)}register(e){return this._registrar.register(e)}unregister(e){return this._registrar.unregister(e)}}__decorate$u([Watch()],PacemCrossItemsContainerElement.prototype,"items",void 0);class PacemItemsContainerElement extends PacemElement{constructor(e,t){super(e,t),this._registrar=new ItemsContainerRegistrar(this)}register(e){return this._registrar.register(e)}unregister(e){return this._registrar.unregister(e)}}__decorate$u([Watch()],PacemItemsContainerElement.prototype,"items",void 0);var __decorate$t=function(e,t,r,n){var s,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(s=e[i])&&(a=(o<3?s(a):o>3?s(t,r,a):s(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a};class PacemIterableElement extends PacemItemElement{findContainer(){return CustomElementUtils.findAncestor(this,e=>e instanceof PacemIterativeElement)}propertyChangedCallback(e,t,r,n){super.propertyChangedCallback(e,t,r,n);const s=this.container,o=(s&&s.items||[]).indexOf(this);o>=0&&s&&s.adapter&&s.adapter.itemPropertyChangedCallback(o,e,t,r,n)}}class PacemIterativeElement extends PacemItemsContainerElement{propertyChangedCallback(e,t,r,n){switch(super.propertyChangedCallback(e,t,r,n),this.adapter&&this.adapter.masterPropertyChangedCallback(e,t,r,n),e){case"adapter":Utils.isNull(t)||t.destroy(),Utils.isNull(r)||this.adapter.initialize(this);break;case"items":this.isReady&&this._checkIndex()}}viewActivatedCallback(){super.viewActivatedCallback(),this._checkIndex()}_checkIndex(){let e=0;Utils.isNullOrEmpty(this.items)||this.index<this.items.length&&(e=this.index),this.index=e}disconnectedCallback(){Utils.isNull(this.adapter)||this.adapter.destroy(),super.disconnectedCallback()}}__decorate$t([Watch({emit:!1,converter:PropertyConverters.Element})],PacemIterativeElement.prototype,"adapter",void 0),__decorate$t([Watch({converter:PropertyConverters.Number})],PacemIterativeElement.prototype,"index",void 0);var __decorate$s=function(e,t,r,n){var s,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(s=e[i])&&(a=(o<3?s(a):o>3?s(t,r,a):s(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a};const REMOVE_VALUE="false",EMPTY_VALUE="true";let PacemLayoutProxyElement=class PacemLayoutProxyElement extends PacemEventTarget{#f;connectedCallback(){super.connectedCallback(),this.#f=CustomElementUtils.findAncestorShell(this)}propertyChangedCallback(e,t,r,n){super.propertyChangedCallback(e,t,r,n),this._update()}disconnectedCallback(){const e=this.attr;Utils.isNullOrEmpty(e)||this._update(e,REMOVE_VALUE,!1),super.disconnectedCallback()}_update(e=this.attr,t=this.value?.toString(),r=this.disabled){if(Utils.isNullOrEmpty(e)||r)return;const n=this.#f;Utils.isNull(n)||(Utils.isNullOrEmpty(t)||t===REMOVE_VALUE?n.removeAttribute(e):n.setAttribute(e,t===EMPTY_VALUE?"":t))}};__decorate$s([Watch({emit:!1,converter:PropertyConverters.String})],PacemLayoutProxyElement.prototype,"attr",void 0),__decorate$s([Watch({emit:!1,converter:PropertyConverters.String})],PacemLayoutProxyElement.prototype,"value",void 0),PacemLayoutProxyElement=__decorate$s([CustomElement({tagName:P+"-layout-proxy"})],PacemLayoutProxyElement);var __decorate$r=function(e,t,r,n){var s,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(s=e[i])&&(a=(o<3?s(a):o>3?s(t,r,a):s(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a};let PacemMetaProxyElement=class PacemMetaProxyElement extends PacemEventTarget{propertyChangedCallback(e,t,r,n){super.propertyChangedCallback(e,t,r,n),this._update()}viewActivatedCallback(){super.viewActivatedCallback(),this._update()}_update(){const e=this.content,t=!Utils.isNullOrEmpty(this.name),r=t?this.name:this.itemprop;if(Utils.isNullOrEmpty(r)||this.disabled)return;const n=Utils.cssEscape(r),s=t?`meta[name='${n}']`:`meta[itemprop='${n}']`;var o=document.head.querySelector(s);if(Utils.isNull(o))o=document.createElement("meta"),document.head.appendChild(o);else if(Utils.isNullOrEmpty(e))return void o.remove();o.setAttribute("content",e),o.setAttribute(t?"name":"itemprop",r),o.removeAttribute(t?"itemprop":"name")}};__decorate$r([Watch({emit:!1,converter:PropertyConverters.String})],PacemMetaProxyElement.prototype,"name",void 0),__decorate$r([Watch({emit:!1,converter:PropertyConverters.String})],PacemMetaProxyElement.prototype,"itemprop",void 0),__decorate$r([Watch({emit:!1,converter:PropertyConverters.String})],PacemMetaProxyElement.prototype,"content",void 0),__decorate$r([Debounce(!0)],PacemMetaProxyElement.prototype,"_update",null),PacemMetaProxyElement=__decorate$r([CustomElement({tagName:P+"-meta-proxy"})],PacemMetaProxyElement);var __decorate$q=function(e,t,r,n){var s,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(s=e[i])&&(a=(o<3?s(a):o>3?s(t,r,a):s(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a};let PacemOnlineStatusElement=class PacemOnlineStatusElement extends PacemEventTarget{constructor(){super(...arguments),this._onlineHandler=e=>{Utils.isNull(e)?this.online=navigator.onLine||!1:this.online="online"===e.type}}connectedCallback(){super.connectedCallback(),window.addEventListener("online",this._onlineHandler,!1),window.addEventListener("offline",this._onlineHandler,!1)}viewActivatedCallback(){super.viewActivatedCallback(),this._onlineHandler()}disconnectedCallback(){window.removeEventListener("online",this._onlineHandler,!1),window.removeEventListener("offline",this._onlineHandler,!1),super.disconnectedCallback()}};__decorate$q([Watch({converter:PropertyConverters.Boolean})],PacemOnlineStatusElement.prototype,"online",void 0),PacemOnlineStatusElement=__decorate$q([CustomElement({tagName:P+"-online-status"})],PacemOnlineStatusElement);var __decorate$p=function(e,t,r,n){var s,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(s=e[i])&&(a=(o<3?s(a):o>3?s(t,r,a):s(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a};let PacemPanelElement=class PacemPanelElement extends PacemSafeContentElement{};PacemPanelElement=__decorate$p([CustomElement({tagName:P+"-panel"})],PacemPanelElement);const CommandEventName="command";class CommandEvent extends CustomTypedEvent{constructor(e){super(CommandEventName,e,{bubbles:!0,cancelable:!0})}}var __decorate$o=function(e,t,r,n){var s,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(s=e[i])&&(a=(o<3?s(a):o>3?s(t,r,a):s(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a};let PacemTemplateProxyElement=class PacemTemplateProxyElement extends TemplateElement{propertyChangedCallback(e,t,r,n){"target"===e&&this.dispatchEvent(new Event("templatechange"))}addEventListener(e,t,r){super.addEventListener(e,t,r)}removeEventListener(e,t,r){super.removeEventListener(e,t,r)}};__decorate$o([Watch({emit:!1,converter:PropertyConverters.Element})],PacemTemplateProxyElement.prototype,"target",void 0),PacemTemplateProxyElement=__decorate$o([CustomElement({tagName:P+"-template-proxy"})],PacemTemplateProxyElement);var __decorate$n=function(e,t,r,n){var s,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(s=e[i])&&(a=(o<3?s(a):o>3?s(t,r,a):s(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a},PacemRepeaterElement_1;const GET_VAL$4=CustomElementUtils.getAttachedPropertyValue;CustomElementUtils.setAttachedPropertyValue;class ItemEvent extends CustomTypedEvent{constructor(e,t,r){super(e,t,{bubbles:!1,cancelable:!0}),this._originalEvent=r}get srcEvent(){return this._originalEvent}}class ItemCommandEvent extends ItemEvent{constructor(e){super("item"+CommandEventName,e.detail,e)}}class CustomItemCommandEvent extends ItemEvent{constructor(e){super("item"+e.detail.commandName.toLowerCase(),e.detail.commandArgument,e)}}let PacemRepeaterElement=PacemRepeaterElement_1=class PacemRepeaterElement extends PacemEventTarget{constructor(){super(...arguments),this._childItems=[],this._fragment=document.createDocumentFragment(),this._setupItem=(e,t,r)=>{e.index=t,e.item=r},this._refreshItemTemplateHandler=e=>{const t=e.target;this._itemTemplate=t.target,this._databind()}}removeItem(e){this._removeItems(e,e)}_setItem(e,t,r){const n=this._childItems;let s;t>=n.length?(s=new RepeaterItem(this,this._itemTemplate,r,this._childTemplatePlaceholder),this._setupItem(s,t,e),n.push(s),s.append()):(s=n[t],this._setupItem(s,t,e),s.redrawEventually(this._itemTemplate,r)),this.dispatchEvent(new RepeaterItemCreateEvent(s))}_removeItems(e,t){let r=this._childItems.splice(e,t+1-e);for(var n=r.length-1;n>=0;n--){let e=r[n];this.dispatchEvent(new RepeaterItemRemoveEvent(e)),e.remove()}}databind(){this._databind()}_databind(e=this.datasource){if(!this.isConnected)return;let t=this._itemTemplate,r=this._childTemplatePlaceholder;if(null==t)throw`Missing template element in ${PacemRepeaterElement_1.name}.`;let n=this._childItems,s=0;try{for(var o of e||[])this._setItem(o,s,this._fragment),s++}catch(e){this.log(LogLevel.Error,e)}s<n.length?this._removeItems(s,n.length-1):Utils.isNull(r&&r.parentNode)||r.parentNode.insertBefore(this._fragment,r)}_onCommand(e){this.dispatchEvent(new ItemCommandEvent(e)),this.dispatchEvent(new CustomItemCommandEvent(e))}_buildupItemTemplate(){let e=CustomElementUtils.findFirstDescendant(this,e=>e instanceof HTMLTemplateElement||e instanceof PacemTemplateProxyElement);return e instanceof PacemTemplateProxyElement?(e.addEventListener("templatechange",this._refreshItemTemplateHandler,!1),this._childTemplatePlaceholder=e,this._itemTemplate=e.target):this._itemTemplate=this._childTemplatePlaceholder=e}viewActivatedCallback(){super.viewActivatedCallback(),this.addEventListener(CommandEventName,this._onCommand,!1),this._buildupItemTemplate()&&this._databind()}disconnectedCallback(){const e=this._childTemplatePlaceholder;!Utils.isNull(e)&&e instanceof PacemTemplateProxyElement&&e.removeEventListener("templatechange",this._refreshItemTemplateHandler,!1),this.removeEventListener(CommandEventName,this._onCommand,!1),this.datasource=[],super.disconnectedCallback()}propertyChangedCallback(e,t,r,n){if(super.propertyChangedCallback(e,t,r,n),"datasource"===e)Utils.isNull(this._itemTemplate)||this._databind(r)}};__decorate$n([Watch({emit:!1,converter:PropertyConverters.Eval})],PacemRepeaterElement.prototype,"datasource",void 0),PacemRepeaterElement=PacemRepeaterElement_1=__decorate$n([CustomElement({tagName:P+"-repeater"})],PacemRepeaterElement);class RepeaterItem extends RepeaterItem$1{constructor(e,t,r,n){super(document.createComment("pacem-repeater-item")),this._repeater=e,this._template=t,this._fragment=r,this._holder=n,this._alterEgos=[];function s(e,t){var r=this,n="_"+e;if(t!==r[n]){var s=r[n];r[n]=t;var o=new PropertyChangeEvent({propertyName:e,oldValue:s,currentValue:t});r.dispatchEvent(o)}}let o=this.placeholder;Object.defineProperties(o,{item:{get:function(){return this._item},set:function(e){s.apply(o,["item",e])},configurable:!0},index:{get:function(){const e=this._index;return Utils.isNull(e)?-1:e},set:function(e){s.apply(o,["index",e])},configurable:!0}})}append(){const e=this._template,t=this._fragment;this._alterEgos.push(t.appendChild(this.placeholder));const r=e.cloneNode(!0);var n;Utils.isNull(n=GET_VAL$4(this._repeater,INSTANCE_HOST_VAR))||CustomElementUtils.assignHostContext(n,r);var s=r.content.childNodes;Array.prototype.push.apply(this._alterEgos,s),t.appendChild(r.content)}redrawEventually(e,t){if(e===this._template)return;this._fragment=t,this._template=e;const r=this._holder.parentElement,n=this._alterEgos;for(;n.length>0;)r.removeChild(n.pop());this.append()}get dom(){return this._alterEgos.filter(e=>!(e instanceof Comment||e instanceof Text))}get repeater(){return this._repeater}remove(){let e=this._holder.parentElement;for(var t of this._alterEgos)t.parentElement!==e||Utils.isNull(e)||e.removeChild(t)}get index(){return this.placeholder.index}set index(e){this.placeholder.index=e}get item(){return this.placeholder.item}set item(e){this.placeholder.item=e}}var __decorate$m=function(e,t,r,n){var s,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(s=e[i])&&(a=(o<3?s(a):o>3?s(t,r,a):s(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a};const ResizeEventName="resize";class ResizeEvent extends CustomTypedEvent{constructor(e){super(ResizeEventName,e)}}const BORDER_BOX={box:"border-box"};let PacemResizeElement=class PacemResizeElement extends PacemEventTarget{constructor(){super(...arguments),this._checkSizeHandler=()=>{this._assignSizeDebounced()}}get _target(){return this.target||this}propertyChangedCallback(e,t,r,n){switch(super.propertyChangedCallback(e,t,r,n),e){case"disabled":this._start();break;case"target":if(!Utils.isNull(this._observer)){var s=t||this;this._observer.unobserve(s)}case"watchPosition":var o=this.target||this;Utils.isNull(this._observer)||this._observer.observe(o,BORDER_BOX)}}_start(){this.disabled?this._stop():(this.watchPosition?this._startWatchIntensively():(this._observer=new ResizeObserver(e=>{var t=!1;for(let r of e)if(r.target===this._target&&r.contentRect){t=!0;break}t&&this._assignSizeDebounced()}),this._observer.observe(this._target,BORDER_BOX)),window.addEventListener("resize",this._checkSizeHandler,!1))}_stop(){window.cancelAnimationFrame(this._handle),window.removeEventListener("resize",this._checkSizeHandler,!1),Utils.isNull(this._observer)||(this._observer.disconnect(),this._observer=null)}_startWatchIntensively(){this._checkSize(),this._handle=window.requestAnimationFrame(()=>{this._startWatchIntensively()})}_assignSizeDebounced(){this._checkSize()}_checkSize(){this.log(LogLevel.Log,"Resize flow triggered.");let e=this._target;const t=Utils.offset(e);let r=t.height,n=t.width;(r!=this._previousHeight||n!=this._previousWidth||this.watchPosition&&(t.left!=this._previousLeft||t.top!=this._previousTop))&&(this._previousHeight=r,this._previousWidth=n,this._previousLeft=t.left,this._previousTop=t.top,this._dispatchResize())}get currentSize(){var e={height:this._previousHeight,width:this._previousWidth};return this.watchPosition&&(e.left=this._previousLeft,e.top=this._previousTop),e}_dispatchResize(){this.dispatchEvent(new ResizeEvent(this.currentSize))}connectedCallback(){super.connectedCallback(),this._start()}disconnectedCallback(){this._stop(),super.disconnectedCallback()}};__decorate$m([Watch({emit:!1,converter:PropertyConverters.Element})],PacemResizeElement.prototype,"target",void 0),__decorate$m([Watch({emit:!1,converter:PropertyConverters.Boolean})],PacemResizeElement.prototype,"watchPosition",void 0),PacemResizeElement=__decorate$m([CustomElement({tagName:P+"-resize"})],PacemResizeElement);var __decorate$l=function(e,t,r,n){var s,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(s=e[i])&&(a=(o<3?s(a):o>3?s(t,r,a):s(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a};const CHECK_PATTERN=/^([\w\.]:)?\/\/[^\/]+/;let PacemRouterElement=class PacemRouterElement extends PacemEventTarget{constructor(){super(...arguments),this._onScroll=e=>{if(!(this.scrollRestoration??!0))return;const t=Math.floor(Utils.scrollTop);window.history.replaceState(Utils.extend({},window.history.state,{$scrollY:t}),document.title)},this._onPopState=e=>{if(!Utils.isNull(e.state)&&!this.#_){const t=e.state;this.path=t.$path}}}#_;#y;parseState(e={}){const t=this._stringifyMergedState(e),r=this._segmentateUrl(t);return this._parseState(r.path+r.query+r.hash,r.path,r.query,r.hash)}navigate(e,t){if(this.disabled||Utils.isNullOrEmpty(e))return;if((e="object"==typeof e?this._stringifyMergedState(e):Utils.URIs.format(e,this.state))!=this.path)return void(this.path=e);const r=document.location;if(CHECK_PATTERN.test(e)&&!e.startsWith(r.protocol+"//"+r.host))throw`Only same-origin navigation is currently supported. "${e}" is not a valid path.`;if(!this.#_){const n=this.state&&this.state.$path||void 0,s=this._segmentateUrl(e),o=this._parseState(s.path+s.query+s.hash,s.path,s.query,s.hash),a=r.pathname+r.search+r.hash===s.path+s.query+s.hash,i=new RouterNavigatingEvent(e);if(window.dispatchEvent(i),this.#_=i.defaultPrevented)return a&&window.history.pushState(this.state,t,n),void(this.path=n);const l=a?Utils.extend({$scrollY:0},window.history.state,o):Utils.extend({$scrollY:0},o);this.state=l,window.history.scrollRestoration=this.scrollRestoration??!0?"manual":"auto",a?window.history.replaceState(l,document.title):window.history.pushState(l,t,e),Utils.isNullOrEmpty(t)||(document.title=t),window.dispatchEvent(new RouterNavigateEvent({path:e,referrer:n,title:t}))}this.#_=!1}propertyChangedCallback(e,t,r,n){if(super.propertyChangedCallback(e,t,r,n),!n)switch(e){case"template":this.#y=null;break;case"path":this.navigate(r)}}connectedCallback(){super.connectedCallback(),window.addEventListener("popstate",this._onPopState,!1),document.addEventListener("scroll",this._onScroll,!1)}viewActivatedCallback(){super.viewActivatedCallback();const e=this.path;Utils.isNullOrEmpty(e)||this.navigate(e)}disconnectedCallback(){document.removeEventListener("scroll",this._onScroll,!1),window.removeEventListener("popstate",this._onPopState,!1),super.disconnectedCallback()}_stringifyMergedState(e){const t=Utils.extend({},e),r=Utils.extend({},this.state,t),n=this.template;let s=""+n;for(let e of this._parseTemplate(n)){const n=e.name,o=new RegExp("/{"+n+"\\??}"),a=r[n];delete t[n],s=s.replace(o,Utils.isNullOrEmpty(a)?"":"/"+a)}const o=Utils.extend({},this.state.$query);for(let e in t)o[e]=t[e];const{hash:a}=this._segmentateUrl(this.path);return Utils.URIs.appendQuery(s,o,!0)+a}_parseTemplate(e=this.template){return Utils.isNullOrEmpty(this.#y)?this.#y=Utils.URIs.parseRoute(e):this.#y}_segmentateUrl(e){const t=Utils.URIs.split(e);return Utils.isNullOrEmpty(t.path)?null:t}_parseState(e,t,r,n){const s=this._parseTemplate();return Utils.URIs.parseState(s,e,t,r,n)}};__decorate$l([Watch({emit:!1,converter:PropertyConverters.String})],PacemRouterElement.prototype,"template",void 0),__decorate$l([Watch({converter:PropertyConverters.Eval})],PacemRouterElement.prototype,"state",void 0),__decorate$l([Watch({emit:!1,converter:PropertyConverters.String})],PacemRouterElement.prototype,"path",void 0),__decorate$l([Watch({emit:!1,reflectBack:!0,converter:PropertyConverters.Boolean})],PacemRouterElement.prototype,"scrollRestoration",void 0),PacemRouterElement=__decorate$l([CustomElement({tagName:P+"-router"})],PacemRouterElement);var __decorate$k=function(e,t,r,n){var s,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(s=e[i])&&(a=(o<3?s(a):o>3?s(t,r,a):s(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a};const ScrollEventName="scroll";class ScrollEvent extends CustomTypedEvent{constructor(e){super(ScrollEventName,e)}}class PacemScrollOrchestrator{constructor(e){this.global=e,this.scrollers=[],this.scrollHandler=e=>{this._scroll(e)}}register(e){const t=this.scrollers;-1===t.indexOf(e)&&(t.push(e),1===t.length&&this.global.addEventListener("scroll",this.scrollHandler,!1),this._scroll())}unregister(e){var t;const r=this.scrollers;-1!==(t=r.indexOf(e))&&(r.splice(t,1),0===r.length&&this.global.removeEventListener("scroll",this.scrollHandler,!1))}_scroll(e){for(var t of this.scrollers){if(Utils.isNull(t.target)){const e=Utils.scrollTop,r=Utils.scrollLeft;t.offset={top:e,left:r}}else{const e=t.target.scrollTop,r=t.target.scrollLeft;t.offset={top:e,left:r}}t.dispatchEvent(new ScrollEvent(t.offset))}}}const ORCHESTRATOR$1=new PacemScrollOrchestrator(window);let PacemScrollAwareElement=class PacemScrollAwareElement extends PacemEventTarget{viewActivatedCallback(){super.viewActivatedCallback(),ORCHESTRATOR$1.register(this)}disconnectedCallback(){ORCHESTRATOR$1.unregister(this),super.disconnectedCallback()}};__decorate$k([Watch({converter:PropertyConverters.Element})],PacemScrollAwareElement.prototype,"target",void 0),__decorate$k([Watch({converter:PropertyConverters.Json})],PacemScrollAwareElement.prototype,"offset",void 0),PacemScrollAwareElement=__decorate$k([CustomElement({tagName:P+"-scroll-aware"})],PacemScrollAwareElement);var __decorate$j=function(e,t,r,n){var s,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(s=e[i])&&(a=(o<3?s(a):o>3?s(t,r,a):s(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a};function base64ToUint8Array(e){e=(e+"=".repeat((4-e.length%4)%4)).replace(/\-/g,"+").replace(/_/g,"/");const t=window.atob(e),r=new Uint8Array(t.length);for(var n=0;n<t.length;n++)r[n]=t.charCodeAt(n);return r}let PacemServiceWorkerProxyElement=class PacemServiceWorkerProxyElement extends PacemEventTarget{viewActivatedCallback(){super.viewActivatedCallback(),this._tryRegister()}disconnectedCallback(){this._tryUnregister(),super.disconnectedCallback()}propertyChangedCallback(e,t,r,n){switch(super.propertyChangedCallback(e,t,r,n),e){case"pushSubscription":Utils.isNull(t)||this.dispatchEvent(new CustomEvent("unsubscribe",{detail:t})),Utils.isNull(r)||this.dispatchEvent(new CustomEvent("subscribe",{detail:r}));break;case"registration":Utils.isNull(t)||this.dispatchEvent(new CustomEvent("unregister",{detail:t})),Utils.isNull(r)||this.dispatchEvent(new CustomEvent("register",{detail:r}))}}_tryUnregister(e=this.registration){return Utils.isNull(e)?Promise.resolve(!0):e.unregister()}_tryRegister(e=this.src){this._tryUnregister().then(t=>{!Utils.isNullOrEmpty(e)&&"serviceWorker"in navigator&&navigator.serviceWorker.register(e).then(e=>{this.registration=e,"PushManager"in window&&e.pushManager.getSubscription().then(e=>{this.pushSubscription=e})})})}unsubscribe(e=this.pushSubscription){return new Promise((t,r)=>{if(Utils.isNull(e))t(!1);else{const r=e===this.pushSubscription;e.unsubscribe().then(e=>{r&&(this.pushSubscription=null),t(e)})}})}subscribe(e=this.publicKey){return new Promise((t,r)=>{"string"==typeof e&&(e=base64ToUint8Array(e));const n=this.registration?.pushManager;Utils.isNull(n)?t(null):n.subscribe({userVisibleOnly:!0,applicationServerKey:e}).then(e=>{"denied"===Notification.permission?t(this.pushSubscription=null):t(this.pushSubscription=e)})})}};__decorate$j([Watch()],PacemServiceWorkerProxyElement.prototype,"registration",void 0),__decorate$j([Watch()],PacemServiceWorkerProxyElement.prototype,"pushSubscription",void 0),__decorate$j([Watch({emit:!1,converter:PropertyConverters.String})],PacemServiceWorkerProxyElement.prototype,"src",void 0),__decorate$j([Watch({emit:!1,converter:PropertyConverters.String})],PacemServiceWorkerProxyElement.prototype,"publicKey",void 0),PacemServiceWorkerProxyElement=__decorate$j([CustomElement({tagName:P+"-serviceworker-proxy"})],PacemServiceWorkerProxyElement);var __decorate$i=function(e,t,r,n){var s,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(s=e[i])&&(a=(o<3?s(a):o>3?s(t,r,a):s(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a};const KEYEVT="keydown";function matchesKeyCombination(e,t,r=[]){if(Utils.isNullOrEmpty(t))return!1;const n=/(\w+)\s*\+/,s=[];let o;for(;!Utils.isNullOrEmpty(o=n.exec(t));)t=t.substr(o.index+o[0].length),s.push(o[1]);if(!CustomEventUtils.matchModifiers(e,s))return!1;const a=t.split(",").map(e=>e.trim().toLowerCase());if(Utils.isNullOrEmpty(a))return!1;var i=e.key.toLowerCase();return!!charEquals(i,a[r.length])&&(r.push(i),r.length==a.length||"ongoing")}function charEquals(e,t){return e===t||"escape"===e&&"esc"===t||"backspace"===e&&"back"===t||"control"===e&&"ctrl"===t||"delete"===e&&("del"===t||"canc"===t)||/^arrow/.test(e)&&t===e.substr(5)}const KeyboardShortcutExecuteEventName="execute";let PacemShortcutElement=class PacemShortcutElement extends PacemEventTarget{constructor(){super(...arguments),this._accumulator=[],this._shortcutHandler=e=>{switch(matchesKeyCombination(e,this.combination,this._accumulator)){case!0:avoidHandler(e),this.dispatchEvent(new Event(KeyboardShortcutExecuteEventName,{bubbles:!1,cancelable:!1}));case!1:this._accumulator.splice(0)}}}viewActivatedCallback(){super.viewActivatedCallback(),this._addHandler()}propertyChangedCallback(e,t,r,n){super.propertyChangedCallback(e,t,r,n),"target"!==e||n||(this._removeHandler(t),this._addHandler(r))}disconnectedCallback(){this._removeHandler(),super.disconnectedCallback()}_removeHandler(e=this.target){(e||window).removeEventListener(KEYEVT,this._shortcutHandler,!1)}_addHandler(e=this.target){(e||window).addEventListener(KEYEVT,this._shortcutHandler,!1)}};__decorate$i([Watch({emit:!1,converter:PropertyConverters.String})],PacemShortcutElement.prototype,"combination",void 0),__decorate$i([Watch({emit:!1,converter:PropertyConverters.Element})],PacemShortcutElement.prototype,"target",void 0),PacemShortcutElement=__decorate$i([CustomElement({tagName:P+"-shortcut"})],PacemShortcutElement);var __decorate$h=function(e,t,r,n){var s,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(s=e[i])&&(a=(o<3?s(a):o>3?s(t,r,a):s(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a};let PacemSpanElement=class PacemSpanElement extends PacemSafeContentElement{propertyChangedCallback(e,t,r,n){super.propertyChangedCallback(e,t,r,n),"text"!==e||n||(this.textContent=r)}viewActivatedCallback(){super.viewActivatedCallback(),Utils.isNull(this.text)||(this.textContent=this.text)}};__decorate$h([Watch({converter:PropertyConverters.String})],PacemSpanElement.prototype,"text",void 0),PacemSpanElement=__decorate$h([CustomElement({tagName:P+"-span"})],PacemSpanElement);var __decorate$g=function(e,t,r,n){var s,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(s=e[i])&&(a=(o<3?s(a):o>3?s(t,r,a):s(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a};let PacemStyleProxyElement=class PacemStyleProxyElement extends PacemEventTarget{propertyChangedCallback(e,t,r,n){switch(super.propertyChangedCallback(e,t,r,n),e){case"cssText":Utils.isNull(this._style)||(this.cssReady=!1,this._style.textContent=r,Utils.isNullOrEmpty(r)?this.cssReady=!0:this._idleWhileReady());break;case"disabled":case"src":this._fetch()}}viewActivatedCallback(){super.viewActivatedCallback();const e=this._style=document.createElement("style");e.setAttribute("type","text/css"),document.head.appendChild(e),this._fetch()}disconnectedCallback(){Utils.isNull(this._style)||this._style.remove(),super.disconnectedCallback()}_idleWhileReady(){let e=this._style.sheet,t=setInterval(()=>{try{e.cssRules.length>0&&(clearInterval(t),CustomElementUtils.Theme.importWebFonts().then(e=>{this.cssReady=!0,this.dispatchEvent(new Event("cssready"))}))}catch(e){}},100)}_fetch(){const e=this.src,t=this._style;this.disabled||Utils.isNull(t)||(Utils.isNullOrEmpty(e)?t.textContent=this.cssText||"":(this.cssReady=!1,fetch(e).then(e=>{e.text().then(e=>{t.textContent=e,this._idleWhileReady()},e=>{this.cssReady=!0})},e=>{this.cssReady=!0})))}};__decorate$g([Watch({emit:!1,converter:PropertyConverters.String})],PacemStyleProxyElement.prototype,"src",void 0),__decorate$g([Watch({emit:!1,converter:PropertyConverters.String})],PacemStyleProxyElement.prototype,"cssText",void 0),__decorate$g([Watch({converter:PropertyConverters.Boolean})],PacemStyleProxyElement.prototype,"cssReady",void 0),PacemStyleProxyElement=__decorate$g([CustomElement({tagName:P+"-style-proxy"})],PacemStyleProxyElement);var __decorate$f=function(e,t,r,n){var s,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(s=e[i])&&(a=(o<3?s(a):o>3?s(t,r,a):s(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a};let PacemTextElement=class PacemTextElement extends HTMLElement{constructor(){super()}connectedCallback(){0==this.childNodes.length&&(this.innerHTML=" "),this._text=this.childNodes.item(0)}propertyChangedCallback(e,t,r,n){Utils.isNull(r)&&!0===n||(this._text.nodeValue=r)}};__decorate$f([Watch({emit:!1,converter:PropertyConverters.String})],PacemTextElement.prototype,"text",void 0),PacemTextElement=__decorate$f([CustomElement({tagName:P+"-text"})],PacemTextElement);var __decorate$e=function(e,t,r,n){var s,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(s=e[i])&&(a=(o<3?s(a):o>3?s(t,r,a):s(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a};let PacemTimerElement=class PacemTimerElement extends PacemEventTarget{constructor(){super(),this._handle=0}propertyChangedCallback(e,t,r,n){switch(super.propertyChangedCallback(e,t,r,n),e){case"interval":case"disabled":this._restart()}}viewActivatedCallback(){super.viewActivatedCallback(),this._restart()}disconnectedCallback(){window.clearInterval(this._handle),super.disconnectedCallback()}_restart(){clearInterval(this._handle),!this.disabled&&this.interval>0&&(this._handle=window.setInterval(()=>{this.dispatchEvent(new Event("tick",{bubbles:!1,cancelable:!1}))},this.interval))}};__decorate$e([Watch({emit:!1,converter:PropertyConverters.Number})],PacemTimerElement.prototype,"interval",void 0),PacemTimerElement=__decorate$e([CustomElement({tagName:P+"-timer"})],PacemTimerElement);var __decorate$d=function(e,t,r,n){var s,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(s=e[i])&&(a=(o<3?s(a):o>3?s(t,r,a):s(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a};let PacemTitleProxyElement=class PacemTitleProxyElement extends PacemEventTarget{propertyChangedCallback(e,t,r,n){super.propertyChangedCallback(e,t,r,n),this._update()}viewActivatedCallback(){super.viewActivatedCallback(),this._update()}_update(){const e=this.value;Utils.isNullOrEmpty(e)||this.disabled||(document.title=e)}};__decorate$d([Watch({emit:!1,converter:PropertyConverters.String})],PacemTitleProxyElement.prototype,"value",void 0),PacemTitleProxyElement=__decorate$d([CustomElement({tagName:P+"-title-proxy"})],PacemTitleProxyElement);var __decorate$c=function(e,t,r,n){var s,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(s=e[i])&&(a=(o<3?s(a):o>3?s(t,r,a):s(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a};let PacemTweenElement=class PacemTweenElement extends PacemEventTarget{constructor(e=new TweenService){super(),this._tweener=e,this.duration=1e3}propertyChangedCallback(e,t,r,n){super.propertyChangedCallback(e,t,r,n),"start"===e&&!0===r&&1!=this.disabled&&this._animate()}run(){return this._animate()}_animate(){var e=!1;return this._tweener.run(this.from,this.to,this.duration,this.delay,this.easing,(t,r)=>{e=0==e&&this.dispatchEvent(new AnimationStartEvent),this.dispatchEvent(new AnimationEvent({time:t,value:this.value=r})),this.log(LogLevel.Info,"value: "+this.value),1==t&&(this.dispatchEvent(new AnimationEndEvent),this.start=!1)})}};__decorate$c([Watch({emit:!1})],PacemTweenElement.prototype,"easing",void 0),__decorate$c([Watch({emit:!1,reflectBack:!0,converter:PropertyConverters.Number})],PacemTweenElement.prototype,"from",void 0),__decorate$c([Watch({emit:!1,reflectBack:!0,converter:PropertyConverters.Number})],PacemTweenElement.prototype,"to",void 0),__decorate$c([Watch({emit:!1,converter:PropertyConverters.Number})],PacemTweenElement.prototype,"duration",void 0),__decorate$c([Watch({emit:!1,converter:PropertyConverters.Number})],PacemTweenElement.prototype,"delay",void 0),__decorate$c([Watch({emit:!1,converter:PropertyConverters.Boolean})],PacemTweenElement.prototype,"start",void 0),__decorate$c([Watch({converter:PropertyConverters.Number})],PacemTweenElement.prototype,"value",void 0),PacemTweenElement=__decorate$c([CustomElement({tagName:P+"-tween"})],PacemTweenElement);var __decorate$b=function(e,t,r,n){var s,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(s=e[i])&&(a=(o<3?s(a):o>3?s(t,r,a):s(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a};class PacemViewportOrchestrator{constructor(e){this._global=e,this.viewports=[],this._checkHandler=e=>{this._oncheck(e)}}register(e){const t=this.viewports,r=this._global;-1===t.indexOf(e)&&(t.push(e),1===t.length&&(r.addEventListener("resize",this._checkHandler,!1),r.addEventListener("scroll",this._checkHandler,!1),r.addEventListener("transitionend",this._checkHandler,!1),r.addEventListener("animationend",this._checkHandler,!1)),this._oncheck())}unregister(e){var t;const r=this.viewports,n=this._global;-1!==(t=r.indexOf(e))&&(r.splice(t,1),0===r.length&&(n.removeEventListener("resize",this._checkHandler,!1),n.removeEventListener("scroll",this._checkHandler,!1),n.removeEventListener("transitionend",this._checkHandler,!1),n.removeEventListener("animationend",this._checkHandler,!1)),this._oncheck())}isElementVisible(e,t){const r=Utils.windowSize;this._global.document;var n=e.getBoundingClientRect(),s=r.width,o=r.height;return n.bottom>0&&n.top<0+o&&(t||n.left<s+0&&n.right>0)}_oncheck(e){for(var t of this.viewports){const e=t.target||t,r=this.isElementVisible(e,t.ignoreHorizontal);if(r!==t.visible)(t.visible=r)?Utils.addClass(e,PCSS+"-in-viewport"):Utils.removeClass(e,PCSS+"-in-viewport")}}}__decorate$b([Debounce(100)],PacemViewportOrchestrator.prototype,"_oncheck",null);const ORCHESTRATOR=new PacemViewportOrchestrator(window);let PacemViewportAwareElement=class PacemViewportAwareElement extends PacemEventTarget{viewActivatedCallback(){super.viewActivatedCallback(),ORCHESTRATOR.register(this)}disconnectedCallback(){ORCHESTRATOR.unregister(this),super.disconnectedCallback()}};__decorate$b([Watch({converter:PropertyConverters.Boolean})],PacemViewportAwareElement.prototype,"visible",void 0),__decorate$b([Watch({emit:!1,converter:PropertyConverters.Element})],PacemViewportAwareElement.prototype,"target",void 0),__decorate$b([Watch({emit:!1,converter:PropertyConverters.Boolean})],PacemViewportAwareElement.prototype,"ignoreHorizontal",void 0),PacemViewportAwareElement=__decorate$b([CustomElement({tagName:P+"-viewport-aware"})],PacemViewportAwareElement);var __decorate$a=function(e,t,r,n){var s,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(s=e[i])&&(a=(o<3?s(a):o>3?s(t,r,a):s(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a};let PacemWebWorkerProxyElement=class PacemWebWorkerProxyElement extends PacemEventTarget{constructor(){super(...arguments),this.autosend=!0,this._messageHandler=e=>{this.result=e.data,this.dispatchEvent(new CustomEvent("receive",{detail:e.data,bubbles:!1,cancelable:!1}))},this._errorHandler=e=>{this.dispatchEvent(new CustomEvent("error",{detail:e.error,bubbles:!1,cancelable:!1}))}}viewActivatedCallback(){super.viewActivatedCallback(),this._initializeWorker()}propertyChangedCallback(e,t,r,n){if(super.propertyChangedCallback(e,t,r,n),!n)switch(e){case"src":this._disposeWorker(),this._initializeWorker(r);break;case"autosend":case"disabled":case"message":this.autosend&&this.send(this.message)}}disconnectedCallback(){this._disposeWorker(),super.disconnectedCallback()}send(e=this.message){if(this.disabled)return;const t=this._worker;Utils.isNull(t)||t.postMessage(e)}_initializeWorker(e=this.src){if(!Utils.isNullOrEmpty(e)){const t=this._worker=new Worker(e);t.addEventListener("message",this._messageHandler,!1),t.addEventListener("error",this._errorHandler,!1),this.autosend&&!Utils.isNull(this.message)&&this.send()}}_disposeWorker(e=this._worker){Utils.isNull(e)||(e.removeEventListener("error",this._errorHandler,!1),e.removeEventListener("message",this._messageHandler,!1),e.terminate())}};__decorate$a([Watch({emit:!1,converter:PropertyConverters.String})],PacemWebWorkerProxyElement.prototype,"message",void 0),__decorate$a([Watch({converter:PropertyConverters.String})],PacemWebWorkerProxyElement.prototype,"result",void 0),__decorate$a([Watch({emit:!1,converter:PropertyConverters.String})],PacemWebWorkerProxyElement.prototype,"src",void 0),__decorate$a([Watch({emit:!1,reflectBack:!0,converter:PropertyConverters.Boolean})],PacemWebWorkerProxyElement.prototype,"autosend",void 0),PacemWebWorkerProxyElement=__decorate$a([CustomElement({tagName:P+"-webworker-proxy"})],PacemWebWorkerProxyElement);class PacemBehavior extends PacemEventTarget{#P=new WeakSet;register(e){var t=this.#P;t.has(e)||(t.add(e),this.decorate(e))}unregister(e){var t=this.#P;t.has(e)&&(this.undecorate(e),t.delete(e))}has(e){return this.#P.has(e)}}var __decorate$9=function(e,t,r,n){var s,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(s=e[i])&&(a=(o<3?s(a):o>3?s(t,r,a):s(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a};const GET_VAL$3=CustomElementUtils.getAttachedPropertyValue,SET_VAL$3=CustomElementUtils.setAttachedPropertyValue,DEL_VAL$3=CustomElementUtils.deleteAttachedPropertyValue,MOUSE_DOWN$2="pacem:dragdrop:mousedown",DRAGGING="pacem:dragdrop:info",DELEGATE$2="pacem:dragdrop:delegate";class DragElementDelegate{constructor(e,t){this._logFn=t,this._started=!1,this._enterHandler=e=>{this._currentTarget=e.target},this._leaveHandler=e=>{this._currentTarget=null},this._revertTrackedTarget=null,this._moveHandler=e=>{"wheel"!==e.type&&avoidHandler(e);var t,r=this._element,n=this._dragDropper,s=GET_VAL$3(r,DRAGGING);if(!this._started){if(this._logFn(LogLevel.Info,"Dragging act started"),this._started=!0,n.dropBehavior===DropBehavior.InsertChild){var o=r;do{o=o.parentElement}while(o&&-1==n.dropTargets.indexOf(o));this._currentTarget=o}n.dispatchEvent(new DragDropEvent(DragDropEventType.Start,DragDropEventArgsClass.fromArgs(s),{},e))}if(!Utils.isNull(s)){this._logFn(LogLevel.Debug,"Dragging act ongoing");const o=e instanceof MouseEvent;Utils.addClass(CustomElementUtils.findAncestorShell(r),PCSS+"-dragging"),s.currentPosition=t=t||(e instanceof MouseEvent?{x:e.pageX,y:e.pageY}:{x:e.touches[0].pageX,y:e.touches[0].pageY});let l=s.floater,c=new DragDropEvent(DragDropEventType.Drag,DragDropEventArgsClass.fromArgs(s),{cancelable:!0},e);if(n.dispatchEvent(c),!c.defaultPrevented&&(l instanceof HTMLElement||l instanceof SVGElement)){let e={x:c.detail.delta.x,y:c.detail.delta.y};l.style.transform=`translate3d(${e.x}px, ${e.y}px, 0)`}var a=this._currentTarget;!o&&n.dropTargets.length>0&&(a=document.elementsFromPoint(s.currentPosition.x-Utils.scrollLeft,s.currentPosition.y-Utils.scrollTop).find(e=>n.dropTargets.indexOf(e)>=0));var i=s.target;if(a!==i)if(Utils.isNull(i)||(Utils.removeClass(i,PCSS+"-dropping"),n.dispatchEvent(new DragDropEvent(DragDropEventType.Out,DragDropEventArgsClass.fromArgs(s),{},e)),this._logFn(LogLevel.Info,`Drop area left (${i.id||i.constructor.name})`)),-1!=n.dropTargets.indexOf(a)){s.target=a,this._logFn(LogLevel.Info,`Drop area entering (${s.target.id||s.target.constructor.name})`);let t=new DragDropEvent(DragDropEventType.Over,DragDropEventArgsClass.fromArgs(s),{cancelable:!0},e);n.dispatchEvent(t),t.defaultPrevented?delete s.target:(Utils.addClass(s.target,PCSS+"-dropping"),this._logFn(LogLevel.Info,`Drop area entered (${s.target.id||s.target.constructor.name})`))}else delete s.target;if(this._revertTrackedTarget=s.target||i,Utils.isNull(s.target)||n.dropBehavior!==DropBehavior.InsertChild){if(Utils.isNull(s.target)&&n.mode===DragDataMode.Copy){const e=s.placeholder;e instanceof Element&&e.remove()}}else this._insertChild(a,s)}},this._endHandler=e=>{var t,r=this._element,n=CustomElementUtils.findAncestorShell(r),s=this._dragDropper;if(!Utils.isNull(t=GET_VAL$3(r,DRAGGING))){e instanceof MouseEvent&&avoidHandler(e);let a=()=>{let o=t.floater;(o instanceof HTMLElement||o instanceof SVGElement)&&(o.style.pointerEvents=""),s.mode!==DragDataMode.Self&&t.floater.remove(),Utils.removeClass(r,PCSS+"-dragging"),Utils.removeClass(r,PCSS+"-drag-lock"),DEL_VAL$3(r,DRAGGING),Utils.isNull(t.placeholder)||(Utils.removeClass(t.placeholder,PCSS+"-dragging"),Utils.removeClass(t.placeholder,"drag-placeholder"),Utils.removeClass(t.placeholder,PCSS+"-drag-lock"),DEL_VAL$3(t.placeholder,DRAGGING));const a=!Utils.isNull(t.target);a&&(s.dispatchEvent(new DragDropEvent(DragDropEventType.Drop,DragDropEventArgsClass.fromArgs(t),{},e)),Utils.removeClass(t.target,PCSS+"-dropping"));const i=t.data;s.dropTargets;const l=t.placeholder,c=this._repeaterItem,m=this._sourceRepeater,d=!Utils.isNull(c),p=l&&this._findTargetRepeaterItem(t.placeholder.parentElement,t.placeholder.nextElementSibling),h=p&&p.repeater,u=s.mode===DragDataMode.Copy,v=a&&!Utils.isNull(h)&&!(Utils.isNull(c)&&m===h);if(d&&!u&&a&&m.removeItem(c.index),v)if(t.placeholder.remove(),h!==m||u)u||m&&m.datasource.splice(c.index,1),h&&(h.datasource=h.datasource||[]).splice(p.index,0,i);else{let e=c.index,t=p.index;t>e&&t--,m.datasource.moveWithin(e,t)}a||Utils.isNullOrEmpty(s.dropTargets)||s.spillBehavior!==DropTargetMissedBehavior.Remove||u||(d?m.datasource.splice(c.index,1):r.remove()),s.dispatchEvent(new DragDropEvent(DragDropEventType.End,DragDropEventArgsClass.fromArgs(t),{},e)),Utils.removeClass(n,PCSS+"-dragging")};const i=t.placeholder||t.element;if(t.floater!=i){let e=t.floater;var o=Utils.deserializeTransform(getComputedStyle(e));if(!Utils.isNull(t.target)||s.spillBehavior===DropTargetMissedBehavior.Revert||s.dropBehavior===DropBehavior.InsertChild&&s.spillBehavior!==DropTargetMissedBehavior.Remove){const t=Utils.offset(i),r=Utils.offset(e);e.style.transition="transform .2s ease-in-out",o=pacemFoundation.Matrix2D.translate(o,{x:t.left-r.left,y:t.top-r.top})}else e.style.transition="transform .2s ease-in, opacity .2s linear",o=pacemFoundation.Matrix2D.scale(o,.1),e.style.opacity="0";Utils.addAnimationEndCallback(e,a,300),e.style.transform=`matrix(${o.a},${o.b},${o.c},${o.d},${o.e},${o.f})`}else a()}Utils.removeClass(r,PCSS+"-drag-lock"),this.dispose(),this._logFn(LogLevel.Info,"Dragging act disposed")},this._dragDropper=e.dragDrop,Utils.addClass(this._element=e.element,PCSS+"-drag-lock"),window.addEventListener("mouseup",this._endHandler,!1),window.addEventListener("touchend",this._endHandler,!1),window.addEventListener("mousemove",this._moveHandler,!1),document.addEventListener("wheel",this._moveHandler,!1),window.addEventListener("touchmove",this._moveHandler,{capture:!0,passive:!1}),this._dragDropper.dropTargets.forEach(e=>{e.addEventListener("mouseenter",this._enterHandler,!1),e.addEventListener("mouseleave",this._leaveHandler,!1)});var r=Repeater.findItemContext(this._element,0,null);r&&(r.dom&&1===r.dom.length&&r.dom[0]===this._element&&(this._repeaterItem=r),this._sourceRepeater=r.repeater),this._bootstrap(e.placeholder,e.data)}_getLogicalData(e){return e instanceof RepeaterItem$1?e.item:e instanceof HTMLElement?e.dataset:e}_getPhysicalData(e){return e instanceof RepeaterItem?e.dom:[e]}_createFloater(e,t){let r=e;if(this._dragDropper.mode!=DragDataMode.Self&&(r=r.cloneNode(!0),CustomElementUtils.stripObservedAttributes(r),r instanceof HTMLElement||r instanceof SVGElement)){Utils.addClass(r,PCSS+"-drag-floater"),CustomElementUtils.findAncestorShell(this._element).appendChild(r),r.style.position="absolute";let n={left:t.x+r.clientWidth/2,top:t.y-r.clientHeight/2};if(e===this._element||e.classList.contains("drag-floater-resize")){let e=Utils.offset(this._element);r.style.boxSizing="border-box",r.style.width=e.width+"px",r.style.height=e.height+"px",n={left:e.left,top:e.top}}r.style.left=`${n.left}px`,r.style.top=`${n.top}px`}return(r instanceof HTMLElement||r instanceof SVGElement)&&(r.style.pointerEvents="none"),r}_findTargetRepeaterItem(e,t){var r=Repeater.findItemContext(t,0,null);if(!Utils.isNull(r))return{repeater:r.repeater,index:r.index};var n=null;return n=e instanceof PacemRepeaterElement?e:CustomElementUtils.findAncestorOfType(e,PacemRepeaterElement),Utils.isNull(n)?null:{repeater:n,index:n.datasource&&n.datasource.length||0}}_findNextSibling(e,t){const r=Array.from(e.children);r.length;const n=document.elementFromPoint(t.currentPosition.x-Utils.scrollLeft,t.currentPosition.y-Utils.scrollTop);let s;if(n===e)return this._currentHover=s=t.placeholder,s.parentElement===e?s.nextElementSibling:null;for(var o=n;o.parentElement!=e&&null!=o.parentElement;)o=o.parentElement;if(o.parentElement!=e||o===t.placeholder)return this._currentHover=s=t.placeholder,s.nextElementSibling;if(o!=this._currentHover){s=this._currentHover;const e=r.indexOf(s),t=r.indexOf(o);return this._currentHover=o,e>t?o:o.nextElementSibling}return o}_insertChild(e,t){const r=t.placeholder||t.element,n=t.target,s=this._findNextSibling(n,t);r.nextSibling==s&&r.parentElement==n||(Utils.isNull(s)||s.parentElement==e)&&(e.insertBefore(r,s),this._logFn(LogLevel.Info,`Positioned before ${s&&(s.id||s.constructor.name)||"null"} for drop`))}_bootstrap(e,t){var r,n,s=this._element,o=this._dragDropper;if(!Utils.isNull(r=GET_VAL$3(s,MOUSE_DOWN$2))){this._started=!1,DEL_VAL$3(s,MOUSE_DOWN$2),Utils.addClass(s,PCSS+"-dragging");let a=getComputedStyle(s),i={x:0,y:0},l=Utils.deserializeTransform(a);i.x+=l.e,i.y+=l.f;let c=this._createFloater(o.floater||s,r);if(Utils.isNull(e))switch(o.mode){case DragDataMode.Alias:e=s;break;case DragDataMode.Copy:e=s.cloneNode(!0)}Utils.isNull(e)||Utils.addClass(e,"drag-placeholder"),Utils.isNull(this._repeaterItem)||Utils.isNull(e)||CustomElementUtils.freezeObservedAttributes(e);n={element:s,placeholder:e||s,data:t||this._getLogicalData(this._repeaterItem||s),startTime:Date.now(),origin:r,initialDelta:i,currentPosition:r,floater:c},SET_VAL$3(s,DRAGGING,n)}}dispose(){this._dragDropper.dropTargets.forEach(e=>{e.removeEventListener("mouseenter",this._enterHandler,!1),e.removeEventListener("mouseleave",this._leaveHandler,!1)}),window.removeEventListener("mouseup",this._endHandler,!1),window.removeEventListener("touchend",this._endHandler,!1),window.removeEventListener("mousemove",this._moveHandler,!1),document.removeEventListener("wheel",this._moveHandler,!1),window.removeEventListener("touchmove",this._moveHandler,{capture:!0})}}let PacemDragDropElement=class PacemDragDropElement extends PacemBehavior{constructor(){super(...arguments),this._startHandler=e=>{if(this.disabled)return;if(!e.isTrusted)return;if(!Utils.isNullOrEmpty(this.handleSelector)&&e.currentTarget.querySelector(this.handleSelector)!==e.target)return;const t=e.currentTarget,r=CustomEventUtils.getEventCoordinates(e).page;let n=t,s=DragDropInitEventArgsClass.fromArgs({element:n,placeholder:null,currentPosition:r,origin:r,initialDelta:{x:0,y:0},startTime:null,floater:null,data:null});const o=new DragDropEvent(DragDropEventType.Init,s,{cancelable:!0},e);if(this.dispatchEvent(o),o.defaultPrevented)return;avoidHandler(e);const a=e=>{this.log(LogLevel.Info,"Drag avoided!"),clearTimeout(i)},i=setTimeout(()=>{t.removeEventListener("mouseup",a,!1),t.removeEventListener("touchend",a,!1),this.log(LogLevel.Info,"Drag locked!"),SET_VAL$3(t,MOUSE_DOWN$2,r),SET_VAL$3(t,DELEGATE$2,new DragElementDelegate({element:n,dragDrop:this,placeholder:s.placeholder,data:s.data},(e,t,r)=>this.log.apply(this,[e,t,r])))},this.lockTimeout);t.addEventListener("mouseup",a,!1),t.addEventListener("touchend",a,!1)},this.lockTimeout=100,this.dropTargets=[],this.mode=DragDataMode.Self}decorate(e){e.addEventListener("mousedown",this._startHandler,!1),e.addEventListener("touchstart",this._startHandler,{capture:!1,passive:!1})}undecorate(e){e.removeEventListener("mousedown",this._startHandler,!1),e.removeEventListener("touchstart",this._startHandler,{capture:!1,passive:!1})}addEventListener(e,t,r){super.addEventListener(e,t,r)}removeEventListener(e,t,r){super.removeEventListener(e,t,r)}dispatchEvent(e){return e.type===DragDropEventType.End&&(DEL_VAL$3(e.detail.element,MOUSE_DOWN$2),DEL_VAL$3(e.detail.element,DELEGATE$2)),super.dispatchEvent(e)}};__decorate$9([Watch({emit:!1,converter:PropertyConverters.Number})],PacemDragDropElement.prototype,"lockTimeout",void 0),__decorate$9([Watch({emit:!1})],PacemDragDropElement.prototype,"dropTargets",void 0),__decorate$9([Watch({emit:!1,converter:PropertyConverters.String})],PacemDragDropElement.prototype,"mode",void 0),__decorate$9([Watch({emit:!1,converter:PropertyConverters.Element})],PacemDragDropElement.prototype,"floater",void 0),__decorate$9([Watch({emit:!1,converter:PropertyConverters.String})],PacemDragDropElement.prototype,"dropBehavior",void 0),__decorate$9([Watch({emit:!1,converter:PropertyConverters.String})],PacemDragDropElement.prototype,"spillBehavior",void 0),__decorate$9([Watch({emit:!1,converter:PropertyConverters.String})],PacemDragDropElement.prototype,"handleSelector",void 0),PacemDragDropElement=__decorate$9([CustomElement({tagName:P+"-drag-drop"})],PacemDragDropElement);var __decorate$8=function(e,t,r,n){var s,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(s=e[i])&&(a=(o<3?s(a):o>3?s(t,r,a):s(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a};class RescaleElementDelegate{constructor(e,t,r,n){this._element=e,this._type=t,this._rescaler=r,this._logFn=n,this._startTime=Date.now(),this._moveHandler=e=>{e.stopPropagation();const t=this._element,r=this._origin,n=this._rescaler,s=this._type,o=n.keepProportions,a=n.minWidth||0,i=n.minHeight||0,l=n.maxWidth||Number.MAX_SAFE_INTEGER,c=n.maxHeight||Number.MAX_SAFE_INTEGER,m=e instanceof MouseEvent?{x:e.pageX,y:e.pageY}:{x:e.touches[0].pageX,y:e.touches[0].pageY},d={x:m.x,y:m.y},p=this._rect;switch(s){case"top":case"bottom":d.x=r.x;break;case"left":case"right":d.y=r.y}this._position=d;const h={x:d.x-r.x,y:d.y-r.y};var u;if(o){const e={x:p.x,y:p.y},t={x:p.x+p.width,y:p.y},r={x:p.x+p.width,y:p.y+p.height},n={x:p.x,y:p.y+p.height},o=pacemFoundation.Point.distance(r,n)/pacemFoundation.Point.distance(r,e),a=pacemFoundation.Point.distance(e,n)/pacemFoundation.Point.distance(r,e),i=pacemFoundation.Point.distance(e,r),l=(e,t)=>(e.x*t.x+e.y*t.y)/i;switch(s){case"topleft":const s=pacemFoundation.Point.subtract(r,e),i=l(pacemFoundation.Point.subtract(r,d),s),c={x:r.x-i*o,y:r.y-i*a};u={x:c.x,y:c.y,width:r.x-c.x,height:r.y-c.y};break;case"topright":const m=pacemFoundation.Point.subtract(n,t),p=l(pacemFoundation.Point.subtract(n,d),m),h={x:n.x+p*o,y:n.y-p*a};u={x:n.x,y:h.y,width:h.x-n.x,height:n.y-h.y};break;case"bottomleft":const v=pacemFoundation.Point.subtract(t,n),E=l(pacemFoundation.Point.subtract(t,d),v),g={x:t.x-E*o,y:t.y+E*a};u={x:g.x,y:t.y,width:t.x-g.x,height:g.y-t.y};break;default:const f=pacemFoundation.Point.subtract(e,r),_=l(pacemFoundation.Point.subtract(e,d),f),y={x:e.x+_*o,y:e.y+_*a};u={x:e.x,y:e.y,width:y.x-e.x,height:y.y-e.y}}}else u={x:this._rect.x,y:this._rect.y,width:this._rect.width+h.x,height:this._rect.height+h.y},s.startsWith("top")&&(u.y=this._rect.y+h.y,u.height=this._rect.height-h.y),s.endsWith("left")&&(u.x=this._rect.x+h.x,u.width=this._rect.width-h.x);this._logFn(LogLevel.Log,`handle: ${s}, origin: ${JSON.stringify(r)}, currentPosition: ${JSON.stringify(m)}`,"Rescaling"),this._logFn(LogLevel.Log,`delta: ${JSON.stringify(h)}, position: ${JSON.stringify(d)}`,"Rescaling"),this._logFn(LogLevel.Log,`from: ${JSON.stringify(this._rect)}, to: ${JSON.stringify(u)}`,"Rescaling");let v=u.width>=a&&u.width<=l,E=u.height>=i&&u.height<=c;if(!o||v&&E||(v=E=!1),v||(u.x=this._targetRect.x,u.width=this._targetRect.width),E||(u.y=this._targetRect.y,u.height=this._targetRect.height),v||E){const o={currentPosition:d,element:t,handle:s,origin:r,targetRect:u,startTime:this._startTime};let a=new RescaleEvent(RescaleEventType.Rescale,RescaleEventArgsClass.fromArgs(o),{cancelable:!0},e);if(n.dispatchEvent(a),!a.defaultPrevented){const e=this._originalTransform;t.style.transform=`matrix(${e.a},${e.b},${e.c},${e.d},${e.e+u.x-this._rect.x},${e.f+u.y-this._rect.y})`,t.style.width=u.width+"px",t.style.height=u.height+"px"}this._targetRect=u}},this._endHandler=e=>{e.stopPropagation();const t=this._type;let r=new RescaleEvent(RescaleEventType.End,RescaleEventArgsClass.fromArgs({element:this._element,origin:this._origin,handle:t,startTime:this._startTime,currentPosition:this._position,targetRect:this._targetRect}),{},e);Utils.removeClass(document.body,PCSS+"-rescaling rescale-"+t),this._rescaler.dispatchEvent(r),DEL_VAL$2(this._element,DELEGATE$1),window.removeEventListener("mouseup",this._endHandler,!1),window.removeEventListener("touchend",this._endHandler,!1),window.removeEventListener("mousemove",this._moveHandler,!1),window.removeEventListener("touchmove",this._moveHandler,!1)},window.addEventListener("mouseup",this._endHandler,!1),window.addEventListener("touchend",this._endHandler,!1),window.addEventListener("mousemove",this._moveHandler,!1),window.addEventListener("touchmove",this._moveHandler,!1),this._origin=this._position=GET_VAL$2(e,MOUSE_DOWN$1),this._rect=this._targetRect=Utils.offsetRect(e),this._originalTransform=Utils.deserializeTransform(getComputedStyle(e)),Utils.addClass(document.body,PCSS+"-rescaling rescale-"+t)}}const GET_VAL$2=CustomElementUtils.getAttachedPropertyValue,SET_VAL$2=CustomElementUtils.setAttachedPropertyValue,DEL_VAL$2=CustomElementUtils.deleteAttachedPropertyValue,HANDLES="top right bottom left topleft topright bottomright bottomleft".split(" "),RESCALE_FRAME="pacem:rescale:frame",MOUSE_DOWN$1="pacem:rescale:origin",DELEGATE$1="pacem:rescale:delegate";let PacemRescaleElement=class PacemRescaleElement extends PacemBehavior{constructor(){super(...arguments),this._bag=[],this._startHandler=e=>{e.stopPropagation();const t=CustomEventUtils.getEventCoordinates(e),r=e.currentTarget,n=t.page,s=/rescale-(.+)/.exec(r.className)[1],o=r.parentElement,a=new RescaleEvent(RescaleEventType.Start,RescaleEventArgsClass.fromArgs({currentPosition:n,origin:n,element:o,handle:s,startTime:Date.now()}),{cancelable:!0},e);this.dispatchEvent(a),a.defaultPrevented||(avoidHandler(e),SET_VAL$2(o,MOUSE_DOWN$1,n),SET_VAL$2(o,DELEGATE$1,new RescaleElementDelegate(o,s,this,(e,t,r)=>this.log.apply(this,[e,t,r]))))}}decorate(e){const t=e;getComputedStyle(t),Utils.addClass(t,PCSS+"-rescalable"),this._setFrame(t)}undecorate(e){const t=e;Utils.removeClass(t,PCSS+"-rescalable"),this._removeFrame(t)}viewActivatedCallback(){super.viewActivatedCallback(),this._syncHandles()}propertyChangedCallback(e,t,r,n){switch(super.propertyChangedCallback(e,t,r,n),e){case"disabled":case"handles":case"keepProportions":this._syncHandles()}}_syncHandles(){const e=this.handles||[RescaleHandle.All],t=null!=e.find(e=>e===RescaleHandle.All),r=this.disabled,n=this.keepProportions;for(let s of this._bag){let o=GET_VAL$2(s,RESCALE_FRAME);o.top.hidden=r||!t&&null==e.find(e=>e===RescaleHandle.Top),o.bottom.hidden=r||!t&&null==e.find(e=>e===RescaleHandle.Bottom),o.left.hidden=r||!t&&null==e.find(e=>e===RescaleHandle.Left),o.right.hidden=r||!t&&null==e.find(e=>e===RescaleHandle.Right),o.topleft.hidden=o.top.hidden||o.left.hidden,o.topright.hidden=o.top.hidden||o.right.hidden,o.bottomleft.hidden=o.bottom.hidden||o.left.hidden,o.bottomright.hidden=o.bottom.hidden||o.right.hidden,n&&(o.top.hidden=o.bottom.hidden=o.left.hidden=o.right.hidden=!0)}}_setFrame(e){let t={};for(let r of HANDLES){const n=t[r]=document.createElement("div");Utils.addClass(n,PCSS+"-rescale rescale-"+r),e.setAttribute("pacem",""),e.appendChild(n),n.addEventListener("mousedown",this._startHandler,!1),n.addEventListener("touchstart",this._startHandler,{capture:!1,passive:!0})}SET_VAL$2(e,RESCALE_FRAME,t),this._bag.push(e),this._syncHandles()}_removeFrame(e){const t=GET_VAL$2(e,RESCALE_FRAME);for(var r in t){const e=t[r];e.removeEventListener("mousedown",this._startHandler,!1),e.removeEventListener("touchstart",this._startHandler,{capture:!1}),e.remove()}DEL_VAL$2(e,RESCALE_FRAME),this._bag.splice(this._bag.indexOf(e),1)}};__decorate$8([Watch({emit:!1,converter:PropertyConverters.StringArray})],PacemRescaleElement.prototype,"handles",void 0),__decorate$8([Watch({emit:!1,converter:PropertyConverters.Number})],PacemRescaleElement.prototype,"minWidth",void 0),__decorate$8([Watch({emit:!1,converter:PropertyConverters.Number})],PacemRescaleElement.prototype,"maxWidth",void 0),__decorate$8([Watch({emit:!1,converter:PropertyConverters.Number})],PacemRescaleElement.prototype,"minHeight",void 0),__decorate$8([Watch({emit:!1,converter:PropertyConverters.Number})],PacemRescaleElement.prototype,"maxHeight",void 0),__decorate$8([Watch({emit:!1,converter:PropertyConverters.Boolean})],PacemRescaleElement.prototype,"keepProportions",void 0),PacemRescaleElement=__decorate$8([CustomElement({tagName:P+"-rescale"})],PacemRescaleElement);var __decorate$7=function(e,t,r,n){var s,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(s=e[i])&&(a=(o<3?s(a):o>3?s(t,r,a):s(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a};const GET_VAL$1=CustomElementUtils.getAttachedPropertyValue,SET_VAL$1=CustomElementUtils.setAttachedPropertyValue,DEL_VAL$1=CustomElementUtils.deleteAttachedPropertyValue,MOUSE_DOWN="pacem:rotate:origin",DELEGATE="pacem:rotate:delegate",OFFSET="pacem:rotate:offset",PIVOT="pacem:rotate:center";class RotateElementDelegate{constructor(e,t,r){this._element=e,this._rotator=t,this._logFn=r,this._startTime=Date.now(),this._moveHandler=e=>{e.stopPropagation();const t=this._element,r=this._previousPosition,n=this._rotator,s=n.minRotation,o=n.maxRotation,a=e instanceof MouseEvent?{x:e.pageX,y:e.pageY}:{x:e.touches[0].pageX,y:e.touches[0].pageY},i=this._pivot;var l=this._computeAngle(i,a,r)+this._previousAngle,c=this._constraintAngle(l,n.step);for(this._logFn(LogLevel.Log,`previousPosition: ${JSON.stringify(r)}, currentPosition: ${JSON.stringify(a)}`,"Rotating"),l>o&&(l=o);c>o&&n.step>0;)this._logFn(LogLevel.Log,`angle: ${c} constrained to max: ${o}`,"Rotating"),c-=n.step;for(l<s&&(l=s);c<s&&n.step>0;)this._logFn(LogLevel.Log,`angle: ${c} constrained to min: ${s}`,"Rotating"),c+=n.step;if(this._logFn(LogLevel.Log,`angle: ${c}, origin: ${JSON.stringify(this._originalPosition)}, current: ${JSON.stringify(a)}`,"Rotating"),c!=this._previousRenderedAngle){let r=new RotateEvent(RotateEventType.Rotate,RotateEventArgsClass.fromArgs({element:this._element,origin:this._originalPosition,startTime:this._startTime,currentPosition:a,rotation:c,center:this._pivot}),{cancelable:!0},e);if(this._rotator.dispatchEvent(r),!r.defaultPrevented){const e=this._originalTransform,r=pacemFoundation.Matrix2D.rotate(e,c-this._originalAngle);t.style.transform=`matrix(${r.a}, ${r.b}, ${r.c}, ${r.d}, ${r.e}, ${r.f})`,SET_VAL$1(this._element,OFFSET,c)}this._previousRenderedAngle=c}this._previousPosition=a,this._previousAngle=l},this._endHandler=e=>{e.stopPropagation();let t=new RotateEvent(RotateEventType.End,RotateEventArgsClass.fromArgs({element:this._element,origin:this._originalPosition,startTime:this._startTime,currentPosition:this._previousPosition,rotation:this._previousAngle,center:this._pivot}),{},e);this._rotator.dispatchEvent(t),DEL_VAL$1(this._element,DELEGATE),window.removeEventListener("mouseup",this._endHandler,!1),window.removeEventListener("touchend",this._endHandler,!1),window.removeEventListener("mousemove",this._moveHandler,!1),window.removeEventListener("touchmove",this._moveHandler,!1)},window.addEventListener("mouseup",this._endHandler,!1),window.addEventListener("touchend",this._endHandler,!1),window.addEventListener("mousemove",this._moveHandler,!1),window.addEventListener("touchmove",this._moveHandler,!1),this._originalPosition=this._previousPosition=GET_VAL$1(e,MOUSE_DOWN),this._originalAngle=this._previousAngle=this._previousRenderedAngle=GET_VAL$1(e,OFFSET,0),this._pivot=GET_VAL$1(e,PIVOT),this._originalTransform=Utils.Css.deserializeTransform(e)}_computeAngle(e,t,r){return pacemFoundation.Angle.angleBetween(e,t,r)}_constraintAngle(e,t){return t>0?pacemFoundation.Numbers.round(e,t):e}}let PacemRotateElement=class PacemRotateElement extends PacemBehavior{constructor(){super(...arguments),this._startHandler=e=>{if(this.disabled)return;const t=CustomEventUtils.getEventCoordinates(e),r=e.currentTarget,n=t.page,s=Utils.offsetRect(r),o=s.width/2,a=s.height/2;var i=this.center;if(Utils.isNull(i))i={x:s.x+o,y:s.y+a},r.style.transformOrigin="50% 50%";else{const e=s.x+o-i.x,t=s.y+a-i.y;r.style.transformOrigin=`${-e}px ${-t}px`}const l=new RotateEvent(RotateEventType.Start,RotateEventArgsClass.fromArgs({currentPosition:n,rotation:GET_VAL$1(r,OFFSET,0),center:i,origin:n,element:r,startTime:Date.now()}),{cancelable:!0},e);this.dispatchEvent(l),l.defaultPrevented||(avoidHandler(e),SET_VAL$1(r,MOUSE_DOWN,n),SET_VAL$1(r,PIVOT,i),SET_VAL$1(r,DELEGATE,new RotateElementDelegate(r,this,(e,t,r)=>this.log.apply(this,[e,t,r]))))}}decorate(e){const t=e;Utils.addClass(t,PCSS+"-rotatable");e.addEventListener("mousedown",this._startHandler,!1),e.addEventListener("touchstart",this._startHandler,{capture:!1,passive:!1})}undecorate(e){const t=e;Utils.removeClass(t,PCSS+"-rotatable");e.removeEventListener("mousedown",this._startHandler,!1),e.removeEventListener("touchstart",this._startHandler,{capture:!1,passive:!1})}};__decorate$7([Watch({emit:!1,converter:PropertyConverters.Number})],PacemRotateElement.prototype,"step",void 0),__decorate$7([Watch({emit:!1,converter:PropertyConverters.Number})],PacemRotateElement.prototype,"minRotation",void 0),__decorate$7([Watch({emit:!1,converter:PropertyConverters.Number})],PacemRotateElement.prototype,"maxRotation",void 0),__decorate$7([Watch({emit:!1,converter:PropertyConverters.Point})],PacemRotateElement.prototype,"center",void 0),PacemRotateElement=__decorate$7([CustomElement({tagName:P+"-rotate"})],PacemRotateElement);var __decorate$6=function(e,t,r,n){var s,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(s=e[i])&&(a=(o<3?s(a):o>3?s(t,r,a):s(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a};const GET_VAL=CustomElementUtils.getAttachedPropertyValue,SET_VAL=CustomElementUtils.setAttachedPropertyValue,DEL_VAL=CustomElementUtils.deleteAttachedPropertyValue,PREPARING_LABEL="pacem:swipe:preparing",DELEGATE_LABEL="pacem:swipe:delegate",DEFAULT_OPTIONS={fling:400,inertia:8,start:32,autoresetSpans:!1,bouncy:!0};class SwipeElementDelegate{constructor(e,t,r,n){this._element=e,this._swiper=t,this._init=r,this._logFn=n,this._moveHandler=e=>{const t=this.#C,r=this._buildStateFromUiEvent(e);for(t.push(this.#b=r);t.length>0&&r.timestamp-t[0].timestamp>100;)t.shift();const n=this._buildSwipeArgsFromState(r),s=new SwipeEvent(SwipeEventType.Pan,n,{cancelable:!0,bubbles:!1}),o=this._swiper;if(o.dispatchEvent(s),!s.defaultPrevented){let{delta:e}=this._delta(this._init,r);if(!o.options.bouncy){const t=o.snaps.slice().sort(),r=t[0],n=t[t.length-1],s=this._swiper.direction,{x:a,y:i}=e,l=a.clamp(r,n),c=i.clamp(r,n);e="vertical"===s?{x:0,y:c}:{x:l,y:0}}this._animateOffsetBy(e,0)}},this._endHandler=e=>{if(window.removeEventListener("pointermove",this._moveHandler),Utils.isNull(this.#b))console.log("How come?!");else{const e=this._buildSwipeArgsFromState(),t=new SwipeEvent(SwipeEventType.Swipe,e,{cancelable:!0,bubbles:!1}),r=this._swiper;if(r.dispatchEvent(t),!t.defaultPrevented){const t=new SwipeEvent("swipe"+e.direction,e,{cancelable:!0,bubbles:!1});if(r.dispatchEvent(t),!t.defaultPrevented){const t=r.snaps??[0];t.sort();const n=r.options.bouncy?e.predictedDelta:e.predictedDelta.clamp(t[0],t[t.length-1]),s=t.reduce((e,t)=>Math.abs(t-n)<Math.abs(e-n)?t:e,0),o="vertical"===r.direction,a=e.predictedDuration,i=o?{x:0,y:n}:{x:n,y:0},l=()=>{const t=new SwipeEvent(SwipeEventType.SwipeAnimationEnd,e,{cancelable:!1,bubbles:!1});return r.dispatchEvent(t)?t:null};if(s.isCloseTo(0))this._animateOffsetBy(i,a).then(()=>{this._animateOffsetBy({x:0,y:0},.3,"cubic-bezier(.37,-0.01,.34,1.43)").then(()=>l())});else{const t=(s-n)*(s-e.delta)>=0,c=o?{x:0,y:s}:{x:s,y:0},m=()=>this._animateOffsetBy(c,t?a:.2,"cubic-bezier(0,0,0,1)");(()=>t?Promise.resolve():this._animateOffsetBy(i,a))().then(()=>m().then(()=>{l();const t=new SwipeEvent("swipe"+e.direction+"animationend",e,{cancelable:!1,bubbles:!1});r.dispatchEvent(t)}))}this.#w.autoresetSpans&&(this._swiper.snaps=t.map(e=>e-s))}}}this.dispose()},this.#C=[];const s=e;this.#w=Utils.extend({},DEFAULT_OPTIONS,t.options??{}),this.#A=Utils.deserializeTransform(getComputedStyle(s)),window.addEventListener("pointermove",this._moveHandler,!1),window.addEventListener("pointerup",this._endHandler,!1),window.addEventListener("pointercancel",this._endHandler,!1)}_serializeTransformMatrix(e){return`matrix3d(${e.a},${e.b},0,0,${e.c},${e.d},0,0,0,0,1,0,${e.e},${e.f},0,1)`}_animateOffsetBy(e,t,r=Utils.Css.getVariableValue(`--${PCSS}-easing-out-sine`)){const n=pacemFoundation.Matrix2D.translate(this.#A,e),s=1e3*Math.min(.3,t),o=this._element,a=this._serializeTransformMatrix(n);return new Promise((e,t)=>{const n=o.animate([{transform:a}],{fill:"forwards",duration:s,easing:r}),i=t=>{n.removeEventListener("finish",i),n.commitStyles(),n.cancel(),e()};n.addEventListener("finish",i,!1)})}_buildStateFromUiEvent(e){const t=CustomEventUtils.getEventCoordinates(e),r=performance.now();return{position:t.client,timestamp:r}}_buildSwipeArgsFromState(e=this.#b){const t=this.#w,r=this.speed,n="vertical"===this._swiper.direction,s=n?0:r,o=n?r:0;return SwipeEventArgsClass.fromArgs({position:e.position,element:this._element,t0:this._init,timestamp:e.timestamp,inertia:t.inertia,fling:t.fling,horizontalspeed:s,verticalspeed:o,vertical:n})}_delta(e,t){const{position:{x:r,y:n},timestamp:s}=e,{position:{x:o,y:a},timestamp:i}=t;return{delta:"vertical"===this._swiper.direction?{x:0,y:a-n}:{x:o-r,y:0},time:i-s}}get speed(){const e=this.#C;if(e.length<2)return 0;const t=e[0],r=e[e.length-1],{delta:n,time:s}=this._delta(t,r),o=s/1e3,a=n.x+n.y;return o>0?a/o:0}#w;#C;#A;#b;dispose(){const e=this._element;DEL_VAL(e,DELEGATE_LABEL),window.removeEventListener("pointercancel",this._endHandler),window.removeEventListener("pointerup",this._endHandler)}}let PacemSwipeElement=class PacemSwipeElement extends PacemBehavior{constructor(){super(...arguments),this._prepareHandler=e=>{if(this.disabled)return;const t=CustomEventUtils.getEventCoordinates(e),r=e.currentTarget,n=t.client,s=this.handleSelector;(Utils.isNullOrEmpty(s)||r.querySelector(s)===e.target)&&(e.stopPropagation(),SET_VAL(r,PREPARING_LABEL,{position:n,timestamp:performance.now()}),SET_VAL(window,PREPARING_LABEL,r),window.addEventListener("pointermove",this._startHandler,!1),window.addEventListener("pointerup",this._undoHandler,!1))},this._startHandler=e=>{const t=GET_VAL(window,PREPARING_LABEL),r=GET_VAL(t,PREPARING_LABEL);if(Utils.isNull(r))return void this._undo(t);const n=CustomEventUtils.getEventCoordinates(e),{x:s,y:o}=n.client,{position:{x:a,y:i}}=r,l="vertical"===(this.direction||"horizontal")?o-i:s-a,c=this.#w,{start:m}=c;if(Math.abs(l)>m){this._undo(t);const e=this,n=new SwipeElementDelegate(t,e,r,(t,r,n)=>{e.log(t,r,n)});SET_VAL(t,DELEGATE_LABEL,n)}},this._undoHandler=e=>{const t=e.currentTarget;this._undo(t)}}decorate(e){(e instanceof HTMLElement||e instanceof SVGElement)&&Utils.addClass(e,PCSS+"-swipe"),e.addEventListener("pointerdown",this._prepareHandler,!1)}undecorate(e){(e instanceof HTMLElement||e instanceof SVGElement)&&Utils.removeClass(e,PCSS+"-swipe"),e.removeEventListener("pointerdown",this._prepareHandler,!1)}viewActivatedCallback(){super.viewActivatedCallback(),this._setOptions()}propertyChangedCallback(e,t,r,n){if(super.propertyChangedCallback(e,t,r,n),!n&&"options"===e)this._setOptions(r)}#w;_setOptions(e=this.options){this.#w=Utils.extend({},DEFAULT_OPTIONS,e??{})}_undo(e){window.removeEventListener("pointermove",this._startHandler),window.removeEventListener("pointerup",this._undoHandler),DEL_VAL(e,PREPARING_LABEL),DEL_VAL(window,PREPARING_LABEL)}};__decorate$6([Watch({emit:!1,reflectBack:!0,converter:{convert:(e,t)=>e.match(/[-+]?[\d\.]+/g).map(e=>parseFloat(e)),convertBack:(e,t)=>e?.join(" ")}})],PacemSwipeElement.prototype,"snaps",void 0),__decorate$6([Watch({emit:!1,converter:PropertyConverters.String,reflectBack:!0})],PacemSwipeElement.prototype,"direction",void 0),__decorate$6([Watch({emit:!1,converter:PropertyConverters.Json})],PacemSwipeElement.prototype,"options",void 0),__decorate$6([Watch({emit:!1,converter:PropertyConverters.String,reflectBack:!0})],PacemSwipeElement.prototype,"handleSelector",void 0),PacemSwipeElement=__decorate$6([CustomElement({tagName:P+"-swipe"})],PacemSwipeElement);var __decorate$5=function(e,t,r,n){var s,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(s=e[i])&&(a=(o<3?s(a):o>3?s(t,r,a):s(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a};const EasingConverter={convert:e=>Easings[e]??Easings.linear};class AnimationElement extends PacemItemElement{}__decorate$5([Watch({emit:!1,converter:PropertyConverters.Element})],AnimationElement.prototype,"target",void 0),__decorate$5([Watch({emit:!1,converter:PropertyConverters.String})],AnimationElement.prototype,"property",void 0),__decorate$5([Watch({emit:!1,converter:PropertyConverters.Number})],AnimationElement.prototype,"delay",void 0),__decorate$5([Watch({emit:!1,converter:PropertyConverters.Number})],AnimationElement.prototype,"duration",void 0),__decorate$5([Watch({emit:!1,converter:EasingConverter})],AnimationElement.prototype,"easing",void 0),__decorate$5([Watch({emit:!1,converter:PropertyConverters.Number})],AnimationElement.prototype,"iterations",void 0),__decorate$5([Watch({emit:!1,converter:PropertyConverters.String})],AnimationElement.prototype,"direction",void 0);class TweenAnimationElement extends AnimationElement{constructor(e=new TweenService){super(),this._tweener=e}get tweener(){return this._tweener}#T=!1;startAnimation(){return this.#T=!1,new Promise((e,t)=>{this._tweener.run(0,1,this.duration??0,this.delay??0,this.easing??Easings.linear,(e,t)=>{this.#T||(this.target[this.property]=this.tweenInterpolationCallback(e,t))}).then(e)})}cancelAnimation(){this.#T=!0}}var __decorate$4=function(e,t,r,n){var s,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(s=e[i])&&(a=(o<3?s(a):o>3?s(t,r,a):s(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a};const DEFAULT_FROM$2={h:0,l:0,s:.5,a:1},DEFAULT_TO$2={h:0,l:1,s:.5,a:1};let PacemColorAnimationElement=class PacemColorAnimationElement extends TweenAnimationElement{propertyChangedCallback(e,t,r,n){if(super.propertyChangedCallback(e,t,r,n),!n)switch(e){case"from":this._precomputeFrom(r);break;case"to":this._precomputeTo(r)}}#R=DEFAULT_FROM$2;#S=DEFAULT_TO$2;viewActivatedCallback(){super.viewActivatedCallback(),this._precomputeColors()}_precomputeColors(){this._precomputeFrom(),this._precomputeTo()}_precomputeFrom(e=this.from){this.#R=this._precomputeColor(e)??DEFAULT_FROM$2}_precomputeTo(e=this.to){this.#S=this._precomputeColor(e)??DEFAULT_FROM$2}_precomputeColor(e){if(!Utils.isNullOrEmpty(e))try{return this._parseColor(e)}catch{return null}}_parseColor(e){return pacemFoundation.Colors.hsl(pacemFoundation.Colors.parse(e))}tweenInterpolationCallback(e,t){const r=this.#R,n=this.#S,s={h:(n.h-r.h)*t+r.h,s:(n.s-r.s)*t+r.s,l:(n.l-r.l)*t+r.l,a:(n.a-r.a)*t+r.a};return pacemFoundation.Colors.stringify(s)}};__decorate$4([Watch({emit:!1,converter:PropertyConverters.String})],PacemColorAnimationElement.prototype,"from",void 0),__decorate$4([Watch({emit:!1,converter:PropertyConverters.String})],PacemColorAnimationElement.prototype,"to",void 0),PacemColorAnimationElement=__decorate$4([CustomElement({tagName:P+"-color-animation"})],PacemColorAnimationElement);var __decorate$3=function(e,t,r,n){var s,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(s=e[i])&&(a=(o<3?s(a):o>3?s(t,r,a):s(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a};const DEFAULT_FROM$1=0,DEFAULT_TO$1=1;let PacemNumberAnimationElement=class PacemNumberAnimationElement extends TweenAnimationElement{tweenInterpolationCallback(e,t){const r=this.to??DEFAULT_TO$1,n=this.from??DEFAULT_FROM$1;return(r-n)*t+n}};__decorate$3([Watch({emit:!1,converter:PropertyConverters.Number})],PacemNumberAnimationElement.prototype,"from",void 0),__decorate$3([Watch({emit:!1,converter:PropertyConverters.Number})],PacemNumberAnimationElement.prototype,"to",void 0),PacemNumberAnimationElement=__decorate$3([CustomElement({tagName:P+"-number-animation"})],PacemNumberAnimationElement);var __decorate$2=function(e,t,r,n){var s,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(s=e[i])&&(a=(o<3?s(a):o>3?s(t,r,a):s(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a};const DEFAULT_FROM={x:0,y:0},DEFAULT_TO={x:1,y:1};let PacemPointAnimationElement=class PacemPointAnimationElement extends TweenAnimationElement{tweenInterpolationCallback(e,t){const r=this.to??DEFAULT_TO,n=this.from??DEFAULT_FROM;return{x:(r.x-n.x)*t+n.x,y:(r.y-n.y)*t+n.y}}};__decorate$2([Watch({emit:!1,converter:PropertyConverters.Point})],PacemPointAnimationElement.prototype,"from",void 0),__decorate$2([Watch({emit:!1,converter:PropertyConverters.Point})],PacemPointAnimationElement.prototype,"to",void 0),PacemPointAnimationElement=__decorate$2([CustomElement({tagName:P+"-point-animation"})],PacemPointAnimationElement);var __decorate$1=function(e,t,r,n){var s,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(s=e[i])&&(a=(o<3?s(a):o>3?s(t,r,a):s(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a};let PacemStoryboardElement=class PacemStoryboardElement extends PacemItemsContainerElement{validate(e){return e instanceof AnimationElement}viewActivatedCallback(){super.viewActivatedCallback(),this._animate()}propertyChangedCallback(e,t,r,n){if(super.propertyChangedCallback(e,t,r,n),!n)switch(e){case"datasource":this._buildDatasourceFromDatasource(r);break;case"items":this._buildDatasourceFromItems(r);break;case"_adaptedDatasource":case"autostart":this._animate()}}_buildDatasourceFromItems(e=this.items){this._adaptedDatasource=e||[]}_buildDatasourceFromDatasource(e=this.datasource){this._adaptedDatasource=e||[]}_animate(e=this.autostart){const t=this._adaptedDatasource,r=[];if(e&&!Utils.isNullOrEmpty(t))for(let e of t)r.push(e.startAnimation());return Promise.all(r)}cancelAnimation(){const e=this._adaptedDatasource||[];for(let t of e)t.cancelAnimation()}startAnimation(){return this._animate(!0)}};__decorate$1([Watch({emit:!1,converter:PropertyConverters.Boolean})],PacemStoryboardElement.prototype,"autostart",void 0),__decorate$1([Watch({emit:!1,converter:PropertyConverters.Number})],PacemStoryboardElement.prototype,"duration",void 0),__decorate$1([Watch({emit:!1})],PacemStoryboardElement.prototype,"datasource",void 0),__decorate$1([Watch({emit:!1})],PacemStoryboardElement.prototype,"_adaptedDatasource",void 0),PacemStoryboardElement=__decorate$1([CustomElement({tagName:P+"-storyboard"})],PacemStoryboardElement);var indexComponents=Object.freeze({__proto__:null,AnimationElement:AnimationElement,CustomItemCommandEvent:CustomItemCommandEvent,get DockMode(){return DockMode},ItemCommandEvent:ItemCommandEvent,ItemRegisterEvent:ItemRegisterEvent,ItemRegisterEventName:ItemRegisterEventName,ItemUnregisterEvent:ItemUnregisterEvent,ItemUnregisterEventName:ItemUnregisterEventName,KeyboardShortcutExecuteEventName:KeyboardShortcutExecuteEventName,PacemAdapter:PacemAdapter,get PacemAnnihilatorElement(){return PacemAnnihilatorElement},get PacemBeforeunloadElement(){return PacemBeforeunloadElement},get PacemBodyProxyElement(){return PacemBodyProxyElement},get PacemBroadcastChannelProxyElement(){return PacemBroadcastChannelProxyElement},get PacemBrowserDetectElement(){return PacemBrowserDetectElement},get PacemColorAnimationElement(){return PacemColorAnimationElement},PacemContentElement:PacemContentElement,PacemCrossItemsContainerElement:PacemCrossItemsContainerElement,get PacemDataElement(){return PacemDataElement},get PacemDockElement(){return PacemDockElement},get PacemDragDropElement(){return PacemDragDropElement},PacemElement:PacemElement,get PacemElementProxyElement(){return PacemElementProxyElement},get PacemEventProxyElement(){return PacemEventProxyElement},get PacemFetchElement(){return PacemFetchElement},get PacemHistoryElement(){return PacemHistoryElement},get PacemHtmlProxyElement(){return PacemHtmlProxyElement},get PacemIfElement(){return PacemIfElement},PacemItemElement:PacemItemElement,PacemItemsContainerElement:PacemItemsContainerElement,PacemIterableElement:PacemIterableElement,PacemIterativeElement:PacemIterativeElement,get PacemLayoutProxyElement(){return PacemLayoutProxyElement},get PacemMetaProxyElement(){return PacemMetaProxyElement},get PacemNumberAnimationElement(){return PacemNumberAnimationElement},get PacemOnlineStatusElement(){return PacemOnlineStatusElement},get PacemPanelElement(){return PacemPanelElement},get PacemPointAnimationElement(){return PacemPointAnimationElement},get PacemRepeaterElement(){return PacemRepeaterElement},get PacemRescaleElement(){return PacemRescaleElement},get PacemResizeElement(){return PacemResizeElement},get PacemRotateElement(){return PacemRotateElement},get PacemRouterElement(){return PacemRouterElement},PacemSafeContentElement:PacemSafeContentElement,get PacemScrollAwareElement(){return PacemScrollAwareElement},get PacemServiceWorkerProxyElement(){return PacemServiceWorkerProxyElement},get PacemShellProxyElement(){return PacemShellProxyElement},get PacemShortcutElement(){return PacemShortcutElement},get PacemSpanElement(){return PacemSpanElement},get PacemStoryboardElement(){return PacemStoryboardElement},get PacemStyleProxyElement(){return PacemStyleProxyElement},get PacemSwipeElement(){return PacemSwipeElement},get PacemTemplateProxyElement(){return PacemTemplateProxyElement},get PacemTextElement(){return PacemTextElement},get PacemTimerElement(){return PacemTimerElement},get PacemTitleProxyElement(){return PacemTitleProxyElement},PacemTransferProxyElement:PacemTransferProxyElement,get PacemTweenElement(){return PacemTweenElement},PacemUnsafeContentElement:PacemUnsafeContentElement,get PacemViewportAwareElement(){return PacemViewportAwareElement},get PacemWebWorkerProxyElement(){return PacemWebWorkerProxyElement},RepeaterItem:RepeaterItem,RepeaterItemCreateEvent:RepeaterItemCreateEvent,RepeaterItemCreateEventName:RepeaterItemCreateEventName,RepeaterItemEvent:RepeaterItemEvent,RepeaterItemRemoveEvent:RepeaterItemRemoveEvent,RepeaterItemRemoveEventName:RepeaterItemRemoveEventName,ResizeEvent:ResizeEvent,ResizeEventName:ResizeEventName,ScrollEvent:ScrollEvent,ScrollEventName:ScrollEventName,StateEvent:StateEvent,TweenAnimationElement:TweenAnimationElement,isItemsContainer:isItemsContainer}),indexBehaviors=Object.freeze({__proto__:null,PacemBehavior:PacemBehavior}),indexLogging=Object.freeze({__proto__:null,get LogLevel(){return LogLevel}});const Defaults={USE_SHADOW_ROOT:!1},EMPTY_MATCHER=/a^/;class Regex{static split(e,t){for(var r,n=0,s=[];null!=(r=t.exec(e));){s.push({value:e.substr(n,r.index-n),match:!1,index:n});let t=r[0].length;s.push({value:e.substr(r.index,t),match:!0,index:r.index}),n=r.index+t}return n<e.length&&s.push({value:e.substr(n,e.length-n),match:!1,index:n}),s}}var __decorate=function(e,t,r,n){var s,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(s=e[i])&&(a=(o<3?s(a):o>3?s(t,r,a):s(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a};function escapeRegExp(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function buildDiffOptions(e,t,r,n){let s,o,a="char",i="full";return["line","word","char"].includes(e)?(a=e,i=t,s=r,o=n):(i=e,s=t,o=r),{mode:a,output:i,cssAdd:s??"fill-green-container",cssRemove:o??"fill-red-container"}}class Transforms{static highlight(e,t,r=PCSS+"-highlight"){if(!t||!e)return e;let n=e.substring(0);const s=t.substring(0).split(" ");for(var o=0;o<s.length;o++){const e=escapeRegExp(s[o]),t=new RegExp("(?![^<>]*>)"+e,"gi");n=n.replace(t,function(e,t,n){var s;return(s=n.indexOf("<",t))!=n.indexOf("</",t)||-1==s?'<span class="'+r+'">'+e+"</span>":e})}return n}static diff(e,t,r="full",n,s,o){const{mode:a,output:i,cssAdd:l,cssRemove:c}=buildDiffOptions(r,n,s,o);return Utils.diff(e,t,a).reduce((e,t)=>{const r=t.type;if("="===r)e+=t.value;else if("+"===r&&"left"!==i||"-"===r&&"right"!==i){const n=t.value.split(/\r?\n/),s=n.length-1;for(let t=0;t<=s;t++){const o=n[t];if(!Utils.isNullOrEmpty(o)||t<s){e+=`<span class="${PCSS}-token ${"-"===r?c:l} text-prewrap">${o||" "}</span>`}t<s&&(e+="\n")}}return e},"")}static padleft(e,t,r){return Utils.leftPad(""+e,t,r)}static size(e){return e>0?e<1024?e+" B":e<1048576?(e/1024).toFixed(2)+" kB":e<1073741824?(e/1048576).toFixed(2)+" MB":(e/1073741824).toFixed(2)+" GB":"-"}static decToDeg(e,t="° ",r="' ",n='"'){const s=Math.sign(e);e=Math.abs(e);const o=Math.floor(e),a=60*(e-o),i=Math.floor(a),l=60*(a-i);return(s<0?"-":"")+o+t+i+r+Math.floor(l)+n}static date(e,t,r){var n=Utils.parseDate(e),s=r||navigator.language;if(!Utils.isNull(t)&&"string"!=typeof t)return n.toLocaleString(r,t);switch(t){case"iso":return n.toISOString();case"isodate":return n.toISOString().substring(0,10);case"localdate":return`${n.getFullYear()}-${Utils.leftPad(n.getMonth()+1,2,"0")}-${Utils.leftPad(n.getDate(),2,"0")}`;case"time":case"localtime":return n.toLocaleTimeString(s,{hour:"numeric",minute:"numeric",second:"numeric",hour12:!1});case"full":const e=-n.getTimezoneOffset()/60;var o="";return 0!=e&&(o=" (UTC"+(e>0?"+":"-")+Math.abs(e).toLocaleString()+")"),n.toLocaleString(s)+o;default:return n.toLocaleDateString(s)}}static timespan(e,t,r,n){const s=Utils.parseDate(e),o=Utils.parseDate(t).valueOf()-s.valueOf(),a=o<0?"-":"",i=Math.abs(o);if("object"==typeof r){const e={timeZone:"UTC",hour12:!1},t=Utils.extend(e,r);return(a||(r.sign?"+":""))+Intl.DateTimeFormat(n??navigator.language,t).format(i)}const l=864e5,c=36e5;return`${a}${Math.floor(i/l)}d ${Math.floor(i%l/c)}h ${Math.floor(i%c/6e4)}m ${Math.floor(i%6e4/1e3)}s ${Math.floor(i%1e3)}ms`}static currency(e,t,r){return new Intl.NumberFormat(r??navigator.language,{style:"currency",currency:t}).format(e)}static number(e,t,r){return"string"==typeof t?new Intl.NumberFormat(t||navigator.language).format(e):new Intl.NumberFormat(r??navigator.language,t).format(e)}static filter(e,t){return e.filter(t)}static orderby(e,t){return e.sort((e,r)=>(Utils.isNullOrEmpty(t)||(e=e[t],r=r[t]),e>r?1:e<r?-1:0))}static isMatch(e,t,r){return new RegExp(t,r).test(e)}static isEmpty(e){return Utils.isEmpty(e)}static isNull(e){return Utils.isNull(e)}static isNullOrEmpty(e){return Utils.isNullOrEmpty(e)}static getCssVariable(e){return Utils.Css.getVariableValue(e)}static getQuerystring(e){return Utils.URIs.parseQuery()[e]}static importThemeWebFonts(){return CustomElementUtils.Theme.importWebFonts()}static findHostContext(e){return CustomElementUtils.findHostContext(e)}}__decorate([Transformer()],Transforms,"highlight",null),__decorate([Transformer()],Transforms,"diff",null),__decorate([Transformer()],Transforms,"padleft",null),__decorate([Transformer()],Transforms,"size",null),__decorate([Transformer()],Transforms,"decToDeg",null),__decorate([Transformer()],Transforms,"date",null),__decorate([Transformer()],Transforms,"timespan",null),__decorate([Transformer()],Transforms,"currency",null),__decorate([Transformer()],Transforms,"number",null),__decorate([Transformer()],Transforms,"filter",null),__decorate([Transformer()],Transforms,"orderby",null),__decorate([Transformer("regex.")],Transforms,"isMatch",null),__decorate([Transformer()],Transforms,"isEmpty",null),__decorate([Transformer()],Transforms,"isNull",null),__decorate([Transformer()],Transforms,"isNullOrEmpty",null),__decorate([Transformer("cssvar")],Transforms,"getCssVariable",null),__decorate([Transformer("querystring")],Transforms,"getQuerystring",null),__decorate([Transformer()],Transforms,"importThemeWebFonts",null),__decorate([Transformer("host")],Transforms,"findHostContext",null);var Output=Object.freeze({__proto__:null,Animations:indexAnimations,AttributeChangeEvent:AttributeChangeEvent,AttributeChangeEventName:AttributeChangeEventName,Behaviors:indexBehaviors,CommandEvent:CommandEvent,CommandEventName:CommandEventName,Components:indexComponents,Concurrent:Concurrent,CurrentIndexChangeEvent:CurrentIndexChangeEvent,CustomElement:CustomElement,CustomElementUtils:CustomElementUtils,CustomEventUtils:CustomEventUtils,CustomTypedEvent:CustomTypedEvent,CustomUIEvent:CustomUIEvent,Debounce:Debounce,DeepCloner:DeepCloner,DefaultComparer:DefaultComparer,Defaults:Defaults,DeferPromise:DeferPromise,EMPTY_MATCHER:EMPTY_MATCHER,get EventKeyModifier(){return EventKeyModifier},Expression:Expression,INSTANCE_BINDINGS_VAR:INSTANCE_BINDINGS_VAR,INSTANCE_HOST_VAR:INSTANCE_HOST_VAR,INSTANCE_SCOPE_VAR:INSTANCE_SCOPE_VAR,Json:Json,get JsonFunctionConversion(){return JsonFunctionConversion},Logging:indexLogging,Net:indexNet,P:P,PCSS:PCSS,PacemEventTarget:PacemEventTarget,PropertyChangeEvent:PropertyChangeEvent,PropertyChangeEventName:PropertyChangeEventName,PropertyConverters:PropertyConverters,Regex:Regex,Repeater:Repeater,RepeaterItem:RepeaterItem$1,RouterNavigateEvent:RouterNavigateEvent,RouterNavigateEventName:RouterNavigateEventName,RouterNavigatingEvent:RouterNavigatingEvent,RouterNavigatingEventName:RouterNavigatingEventName,Storage:Storage,TemplateElement:TemplateElement,Throttle:Throttle,Transformer:Transformer,Type:Type,UI:indexUi,Utils:Utils,ViewChild:ViewChild,WATCH_PROPS_VAR:WATCH_PROPS_VAR,Watch:Watch,avoidHandler:avoidHandler,preventDefaultHandler:preventDefaultHandler,stopPropagationHandler:stopPropagationHandler});pacemFoundation.DeepMerger.merge(Output)})(Pacem);
|
|
6
|
+
(function(pacemFoundation){"use strict";const pi_half=.5*Math.PI,EASINGS={linear:e=>e,sineIn:e=>Math.sin(e*pi_half-pi_half)+1,sineOut:e=>Math.sin(e*pi_half),sineInOut:e=>.5*Math.sin(e*Math.PI-pi_half)+.5,expoIn:e=>(Math.pow(Math.E,e)-1)/(Math.E-1),expoOut:e=>Math.log(e*(Math.E-1)+1),expoInOut:e=>e<.5?.5*Easings.expoIn(2*e):.5*(1+Easings.expoOut(2*e-1))};function assembleEasing(e,t){const r=t=>e(t);return r.css=t,r}const Easings={linear:assembleEasing(EASINGS.linear,"linear"),sineIn:assembleEasing(EASINGS.sineIn,"cubic-bezier(0.12, 0, 0.39, 0)"),sineOut:assembleEasing(EASINGS.sineOut,"cubic-bezier(0.61, 1, 0.88, 1)"),sineInOut:assembleEasing(EASINGS.sineInOut,"cubic-bezier(0.37, 0, 0.63, 1)"),expoIn:assembleEasing(EASINGS.expoIn,"cubic-bezier(0.7, 0, 0.84, 0)"),expoOut:assembleEasing(EASINGS.expoOut,"cubic-bezier(0.16, 1, 0.3, 1)"),expoInOut:assembleEasing(EASINGS.expoInOut,"cubic-bezier(0.87, 0, 0.13, 1)")};class DeepCloner{constructor(){}static clone(e){return(new DeepCloner)._clone(e)}_clone(e){let t=new WeakMap;return function e(r){if(!("object"!=typeof r||null===r||r instanceof Element||r instanceof FileSystemHandle||r instanceof File)){if(Array.isArray(r))return r.map(e);if(r instanceof Date)return new Date(r.valueOf());if(r instanceof RegExp)return new RegExp(r);if(t.has(r))return t.get(r);{let n=Object.assign({},r);return t.set(r,n),Object.keys(n).forEach(t=>{n[t]=e(r[t])}),n}}return r}(e)}}const REF_ID="$refId";var JsonFunctionConversion;!function(e){e[e.Ignore=0]="Ignore",e.Reference="reference",e.Plain="plain"}(JsonFunctionConversion||(JsonFunctionConversion={}));class JsonFnStore{static{this._jsonFnWeakMap=new WeakMap}static{this._jsonFnMap=new Map}static store(e){const t=this._jsonFnWeakMap;if(!t.has(e)){const r=pacemFoundation.Keys.uniqueCode();t.set(e,r),this._jsonFnMap.set(r,e)}return t.get(e)}static retrieve(e){return this._jsonFnMap.get(e)}static remove(e){const t=this.retrieve(e);this._jsonFnMap.delete(e),this._jsonFnWeakMap.delete(t)}}class Json{constructor(e){this._options=e}static serialize(e,t){return new Json(t)._serialize(e)}static deserialize(e){return(new Json)._deserialize(e)}_serialize(e){let t=DeepCloner.clone(e),r=[REF_ID],n=this._flatten(t,0,null,r);return JSON.stringify(n,r.sort())}_deserialize(json){let hasRefs=!1,obj=JSON.parse(json,(key,value)=>{const elPattern=/^\$<#(.+)>$/,fnPattern=/^\$<fn:([^\x05]+)>$/,regexPattern=/^\$<regex:(.+)>$/,fnRefPattern=/^\$<fn#(.+)>$/;let arr;if(key===REF_ID)hasRefs=!0;else if("string"==typeof value){if((arr=regexPattern.exec(value))&&arr.length>1){const e=arr[1],t=e.lastIndexOf("|");return new RegExp(e.substr(0,t),e.substr(t+1))}if((arr=elPattern.exec(value))&&arr.length>1)return document.getElementById(arr[1]);if((arr=fnPattern.exec(value))&&arr.length>1)return eval(arr[1]);if((arr=fnRefPattern.exec(value))&&arr.length>1)return JsonFnStore.retrieve(arr[1])}return value});return hasRefs?this._revive(obj):obj}_flatten(e,t=0,r,n){if(r=r||new WeakSet,n=n||[],e instanceof Element){if(!e.id)return;return`$<#${e.id}>`}if(e instanceof RegExp)return`$<regex:${e.source}|${e.flags}>`;if(!("object"!=typeof e||null==e||e instanceof Date))return Array.isArray(e)?e.map(e=>this._flatten(e,t,r,n)):r.has(e)?e[REF_ID]=e[REF_ID]||"$#ref_"+t++:(r.add(e),Object.keys(e).forEach(s=>{-1===n.indexOf(s)&&n.push(s),e[s]=this._flatten(e[s],t,r,n)}),e);if("function"==typeof e)switch(this._options?.functions){case JsonFunctionConversion.Reference:return"$<fn#"+JsonFnStore.store(e)+">";case JsonFunctionConversion.Plain:return"$<fn:"+e+">";default:return}return e}_revive(e){let t={};const r=/^\$#ref_(.+)$/;return function e(n){if("object"==typeof n&&null!==n){if(Array.isArray(n))return n.map(e);REF_ID in n&&(t[n[REF_ID]]=n,delete n[REF_ID]),Object.keys(n).forEach(t=>{n[t]=e(n[t])})}else if("string"==typeof n&&r.test(n)){let e=r.exec(n);return t[e[0]]}return n}(e)}}class DeferPromise{constructor(){this.deferred=null;var e=this;e.promise=new Promise(function(t,r){e.deferred={resolve:t,reject:r,promise:e}})}then(e,t){return this.promise.then(e,t)}finally(e){return this.promise.then(e,e),this}success(e){return this.promise.then(e,null),this}error(e){return this.promise.then(null,e),this}static defer(){return(new DeferPromise).deferred}}const PACEM_CORE_DEFAULT="pacem",DEFAULT_DOWNLOAD_FILENAME="download",stopPropagationHandler=e=>{e.stopPropagation()},preventDefaultHandler=e=>{e.preventDefault()},avoidHandler=e=>{e.preventDefault(),e.stopPropagation()},SEGMENT_PATTERN=/^\/[^\/]+/,ROUTE_SEGMENT_PATTERN=/\/\{([a-z\$_][\w]*)\??\}/;class Utils{static get core(){const e=window.Pacem;var t=e&&e.Configuration&&e.Configuration.core||PACEM_CORE_DEFAULT;return window[t]=window[t]||{}}static get customElements(){return window.customElements}static uniqueId(){return pacemFoundation.Keys.uniqueId()}static uniqueCode(){return pacemFoundation.Keys.uniqueCode()}static randomString(e){return pacemFoundation.Keys.randomString(e)}static parseDate(e){return pacemFoundation.Dates.parse(e)}static copyToClipboard(e){return navigator.clipboard?navigator.clipboard.writeText(e):new Promise((t,r)=>{const n=document.createElement("textarea");n.value=e,n.style.opacity="0",document.body.appendChild(n);try{n.select(),document.execCommand("copy"),n.remove(),t()}catch(e){r(e)}})}static{this.Json={stringify:Json.serialize,parse:Json.deserialize}}static{this.Dates={now:()=>Utils.parseDate(Date.now()),parse:Utils.parseDate,isLeapYear:pacemFoundation.Dates.isLeapYear,daysInMonth:pacemFoundation.Dates.daysInMonth,isDate:pacemFoundation.Dates.isDate,dateOnly:pacemFoundation.Dates.dateOnly,addMonths:pacemFoundation.Dates.addMonths,addDays:pacemFoundation.Dates.addDays,daysBetween:pacemFoundation.Dates.daysBetween}}static colorize(e,t){const r=38,n=.245,s=.6;var o,a,i;a="string"==typeof(o=e instanceof HTMLElement?t:e)?pacemFoundation.Colors.parse(o):{r:o[0],g:o[1],b:o[2]};const l=pacemFoundation.Colors.hsl(a);if(i=`brightness(50%) sepia(1) hue-rotate(${l.h-r}deg) saturate(${l.s-n+1}) brightness(${l.l-s+1})`,o!==t)return i;(void 0).style.filter=i}static cssEscape(e){return escape(e).replace("%","\\")}static{this.Css={colorize:Utils.colorize,escape:Utils.cssEscape,getVariableValue:e=>getComputedStyle(document.documentElement).getPropertyValue(e),setVariable(e,t){getComputedStyle(document.documentElement).setProperty(e,t)},isClassDefined(e){const t=new RegExp("."+e+"($|[s.,])");for(let e=0;e<document.styleSheets.length;e++){const r=document.styleSheets.item(e);try{const e=r.cssRules;for(let n=0;n<e.length;n++){const e=r.cssRules.item(n);if(t.test(e.selectorText))return!0}}catch(e){e instanceof DOMException&&console.warn("Couldn't access cssRules of stylesheet \""+r.href+'".')}}return!1},deserializeTransform(e){const t=e instanceof Element?getComputedStyle(e):e;let r,n=1,s=0,o=0,a=1,i=0,l=0,c=/^matrix\((.*)\)$/.exec(t.transform);return c&&c.length>1&&6==(r=c[1].split(",")).length&&(n=parseFloat(r[0]),s=parseFloat(r[1]),o=parseFloat(r[2]),a=parseFloat(r[3]),i+=parseFloat(r[4]),l+=parseFloat(r[5])),{a:n,b:s,c:o,d:a,e:i,f:l}}}}static{this.leftPad=pacemFoundation.Strings.leftPad}static{this.formatString=pacemFoundation.Strings.format}static{this.diff=pacemFoundation.Strings.diff}static{this.Strings={leftPad:pacemFoundation.Strings.leftPad,format:pacemFoundation.Strings.format,diff:pacemFoundation.Strings.diff,stripHTML:e=>(new DOMParser).parseFromString(e,"text/html").body.textContent||""}}static{this.Blobs={toDataURL:pacemFoundation.Blobs.blobToDataURL,fromDataURL:pacemFoundation.Blobs.dataURLToBlob,toText:pacemFoundation.Blobs.blobToText,fromText:pacemFoundation.Blobs.textToBlob}}static{this.Images={load:pacemFoundation.Imaging.loadImage,resize:pacemFoundation.Imaging.resizeImage}}static loadImage(e){return new Promise((t,r)=>{const n=new Image;n.src=e,n.complete?t(n):(n.onload=e=>{t(n)},n.onerror=e=>{r()})})}static blobToDataURL(e){return Utils.Blobs.toDataURL(e)}static dataURLToBlob(e){return Utils.Blobs.fromDataURL(e)}static blobToText(e,t){return Utils.Blobs.toText(e,t)}static textToBlob(e,t="text/plain"){return Utils.Blobs.fromText(e,t)}static resizeImage(e,t,r,n){var s=DeferPromise.defer();return Utils.blobToDataURL(e).then(Utils.loadImage).then(o=>{const a=o.width,i=o.height;let l=document.createElement("canvas");l.width=a,l.height=i;let c=l.getContext("2d");if(a>t||i>r){const e=a/i;let m,d;t/r<e?(d=t,m=t/e):(m=r,d=r*e),l.width=d,l.height=m;const p=n>0&&n<=1;let h;p&&(c.fillStyle="#000",c.fillRect(0,0,l.width,l.height)),Utils.cropImageOntoCanvas(o,c),h=p?c.canvas.toDataURL("image/jpeg",n):c.canvas.toDataURL(),s.resolve(Utils.dataURLToBlob(h))}else s.resolve(e)},e=>{}),s.promise}static cropImage(e,t,r,n){var s=DeferPromise.defer();let o=new Image;return o.crossOrigin="anonymous",o.onload=function(e){let a=document.createElement("canvas"),i=a.getContext("2d");t&&(a.width=t),r&&(a.height=r);const l=n>0&&n<=1;l&&(i.fillStyle="#000",i.fillRect(0,0,a.width,a.height)),Utils.cropImageOntoCanvas(o,i),s.resolve(l?a.toDataURL("image/jpeg",n):a.toDataURL())},o.src=e,s.promise}static getUserMediaFunctions(){var e=[];let t=[navigator.getUserMedia,navigator.webkitGetUserMedia,navigator.msGetUserMedia,navigator.mozGetUserMedia].filter(function(e,t){return"function"==typeof e});return t.length&&(e=t),e}static cropImageOntoCanvas(e,t,r,n){t.imageSmoothingEnabled=t.mozImageSmoothingEnabled=t.oImageSmoothingEnabled=t.webkitImageSmoothingEnabled=!0;let s=t.canvas.width,o=t.canvas.height,a=s,i=o,l=r||1*e.width,c=n||1*e.height;s/o>l/c?(o=s/l*c,t.drawImage(e,0,.5*(-o+i),a,o)):(s=o/c*l,t.drawImage(e,-Math.abs(.5*(-s+a)),0,s,i))}static get _domURL(){return window.URL||window.webkitURL||window}static snapshotElement(e,t,r="image/png",n){function s(e){return new Promise((s,o)=>{const a=document.createElement("canvas"),i=e.width,l=e.height;if(i>0)if(l>0){a.width=i,a.height=l;const o=a.getContext("2d");Utils.isNullOrEmpty(t)||(o.fillStyle=t,o.fillRect(0,0,i,l)),o.drawImage(e,0,0),a.toBlob(e=>{s(e)},r,n)}else o("Image has height zero.");else o("Image has width zero.")})}return e instanceof HTMLCanvasElement?s(e):new Promise((t,r)=>{const n=[];function o(e){const t=new Promise((t,r)=>{fetch(e instanceof HTMLImageElement?e.src:e.href.baseVal).then(e=>e.blob()).then(e=>Utils.blobToDataURL(e)).then(r=>{var n;n=r,e instanceof HTMLImageElement?e.src=n:e.setAttribute("href",n),t()})});n.push(t)}function a(e,t){!function(e,t){const r=getComputedStyle(t);for(let t=0;t<r.length;t++){const n=r.item(t);e.style[n]=r[n]}}(e,t),e instanceof HTMLImageElement||e instanceof SVGImageElement?o(e):e instanceof HTMLCanvasElement&&function(e,t){const r=new Promise((r,n)=>{const s=new Image;s.crossOrigin="anonymous",s.width=t.width,s.height=t.height,s.style.cssText=e.style.cssText,s.onload=()=>{e.replaceWith(s),r()},s.src=t.toDataURL()});n.push(r)}(e,t);const r=e.children.length;for(let n=0;n<r;n++){const r=e.children.item(n),s=t.children.item(n);r.tagName===s.tagName&&a(r,s)}}if(e instanceof SVGElement){const t=e.cloneNode(!0);a(t,e),Promise.all(n).then(r=>{e=t,l()})}else{var i=document.implementation.createHTMLDocument("");i.write(e.outerHTML),i.documentElement.setAttribute("xmlns",i.documentElement.namespaceURI);const t=document.evaluate(".//"+e.localName,i.body,null,XPathResult.FIRST_ORDERED_NODE_TYPE,null).singleNodeValue;t.setAttribute("xmlns",i.documentElement.namespaceURI),a(t,e),Promise.all(n).then(r=>{const n=document.createElementNS("http://www.w3.org/2000/svg","svg"),s=Utils.offset(e);n.setAttribute("viewBox",`0 0 ${s.width} ${s.height}`),n.setAttribute("width",s.width.toString()),n.setAttribute("height",s.height.toString()),n.innerHTML=`<foreignObject width="${s.width}" height="${s.height}">${t.outerHTML}</foreignObject>`,e=n,l()})}function l(){const r=(new XMLSerializer).serializeToString(e),n=new Image;n.crossOrigin="anonymous";const o="data:image/svg+xml;charset=utf8,"+encodeURIComponent(r);n.onload=()=>{s(n).then(t)},n.src=o}})}static async download(e,t,r="application/download"){if("string"==typeof e){const o=e;let a,i={};Utils.isNullOrEmpty(t)||("object"==typeof t?(i={credentials:t.credentials,headers:t.headers},a=t.filename||a,r=t.mime||r):a=t);var n=await fetch(o,i);if(n.ok){if(Utils.isNullOrEmpty(a)){const e="Content-Disposition";if(n.headers.has(e)){const t=n.headers.get(e),r=/^attachment; filename=\"?([^;\"]+)\"?(;|$)/.exec(t);r.length>1&&(a=r[1])}else a=DEFAULT_DOWNLOAD_FILENAME}var s=await n.blob();const e=a.split(/[\\\/]/g).join("_");return Utils.download(s,e)}{const e=await n.text();throw new Error(e)}}{const r=e,n="string"==typeof t&&t||DEFAULT_DOWNLOAD_FILENAME,s=document.createElement("a");if(s.setAttribute("href",Utils._domURL.createObjectURL(r)),s.setAttribute("download",n),document.createEvent){var o=document.createEvent("MouseEvents");o.initEvent("click",!0,!0),s.dispatchEvent(o)}else s.click()}}static isDOMReady(){return"complete"===document.readyState}static onDOMReady(e){window.addEventListener("load",e,!1)}static moveChildren(e,t){return Utils.moveItems(e.childNodes,t)}static moveItems(e,t){let r,n=[];for(let s=e.length-1;s>=0;s--){let o=e instanceof NodeList?e.item(s):e[s];t.insertBefore(o,r),n.unshift(o),r=o}return n}static is(e,t){return(e.matches||e.matchesSelector||e.msMatchesSelector||e.mozMatchesSelector||e.webkitMatchesSelector||e.oMatchesSelector).call(e,t)}static lang(e){return e.lang||document.documentElement.lang||navigator.language}static jsonSortStringify(e){return Utils.isNull(e)?e:Utils.Json.stringify(e)}static{this.Browsers={detect:pacemFoundation.detect}}static cookies(e){const t=(e??document.cookie).split(";"),r={};for(var n of t){const e=n.split("=");if(e.length<2)continue;const t=(e[0]||"").trim(),s=(e[1]||"").trim();Object.defineProperty(r,t,{configurable:!1,enumerable:!0,writable:!1,value:decodeURIComponent(s.split("+").join(" "))})}return r}static{this.Cookies={getAll:async e=>{const t="cookieStore"in window?window.cookieStore:null,r=[];if(Utils.isNull(t)){const t=Utils.cookies();for(let n in t)(Utils.isNullOrEmpty(e)||e===n)&&r.push({name:n,value:t[n]});return r}return await t.getAll(e)},stringify:e=>{let t=`${e.name}=${encodeURIComponent(e.value??"")}`;return Utils.isNullOrEmpty(e.domain)||(t+=`; domain=${encodeURIComponent(e.domain)}`),Utils.isNullOrEmpty(e.path)||(t+=`; path=${encodeURIComponent(e.path)}`),e.maxAge>0&&(t+=`; max-age=${e.maxAge.toFixed(0)}`),Utils.isNullOrEmpty(e.expires)||(t+=`; expires=${e.expires}`),e.partitioned&&(t+="; Partitioned"),Utils.isNullOrEmpty(e.sameSite)||(t+=`; SameSite=${encodeURIComponent(e.sameSite)}`),e.secure&&(t+="; Secure"),t}}}static isVisible(e){return"checkVisibility"in e?e.checkVisibility({checkOpacity:!0,checkVisibilityCSS:!0}):"hidden"!==getComputedStyle(e).visibility&&(e.clientWidth>0||e.clientHeight>0)}static hasClass(e,t){return e.classList?e.classList.contains(t):new RegExp("(^| )"+t+"( |$)","gi").test(e.className)}static addClass(e,t){const r=t.trim();e.classList?DOMTokenList.prototype.add.apply(e.classList,r.split(" ")):e.setAttribute("class",e.className+" "+r)}static removeClass(e,t){const r=t.trim();e.classList?DOMTokenList.prototype.remove.apply(e.classList,r.split(" ")):e.setAttribute("class",e.className.replace(new RegExp("(^|\\b)"+r.split(" ").join("|")+"(\\b|$)","gi")," "))}static toggleClass(e,t,r){r?Utils.addClass(e,t):Utils.removeClass(e,t)}static hasPart(e,t){return e.part.contains(t)}static addPart(e,t){DOMTokenList.prototype.add.apply(e.part,t.trim().split(" "))}static removePart(e,t){DOMTokenList.prototype.remove.apply(e.part,t.trim().split(" "))}static togglePart(e,t,r){r?Utils.addPart(e,t):Utils.removePart(e,t)}static offset(e){var t=e.getBoundingClientRect();return{top:Math.round(t.top)+Utils.scrollTop,left:Math.round(t.left)+Utils.scrollLeft,width:Math.round(t.width),height:Math.round(t.height)}}static offsetRect(e){var t=this.offset(e);return{y:t.top,x:t.left,width:t.width,height:t.height}}static naturalOffsetTop(e){return(e?.offsetTop??0)+(e?.offsetParent&&e.offsetParent instanceof HTMLElement?this.naturalOffsetTop(e.offsetParent):0)}static naturalOffsetLeft(e){return(e?.offsetTop??0)+(e?.offsetParent&&e.offsetParent instanceof HTMLElement?this.naturalOffsetLeft(e.offsetParent):0)}static naturalOffset(e){return{left:this.naturalOffsetLeft(e),top:this.naturalOffsetTop(e),width:e?.offsetWidth??0,height:e?.offsetHeight??0}}static naturalOffsetRect(e){var t=this.naturalOffset(e);return{y:t.top,x:t.left,width:t.width,height:t.height}}static deserializeTransform(e){return Utils.Css.deserializeTransform(e)}static set scrollTop(e){window.scrollTo(Utils.scrollLeft,e)}static set scrollLeft(e){window.scrollTo(e,Utils.scrollTop)}static scrollTo(e,t=!0,r=!0){const n=Utils.isNull(t)||"boolean"==typeof t,s=n?Utils.scrollLeft:e,o=n?e:t,a=(n?t:r)?"smooth":"instant";window.scrollTo({behavior:a,left:s,top:o})}static get scrollTop(){return window.scrollY||document.documentElement.scrollTop||document.body.scrollTop||0}static get scrollLeft(){return window.scrollX||document.documentElement.scrollLeft||document.body.scrollLeft||0}static get windowSize(){let e=window;return{width:e.innerWidth||e.document.documentElement.clientWidth||e.document.body.clientWidth||0,height:e.innerHeight||e.document.documentElement.clientHeight||e.document.body.clientHeight||0}}static addAnimationEndCallback(e,t,r=500){const n=r=>{r&&r.target!=e||(clearTimeout(s),e.removeEventListener("animationend",n,!1),e.removeEventListener("transitionend",n,!1),t.apply(this,[e]))};e.addEventListener("animationend",n,!1),e.addEventListener("transitionend",n,!1);const s=setTimeout(n,r)}static waitForAnimationEnd(e,t=500){return new Promise((r,n)=>{Utils.addAnimationEndCallback(e,()=>{r()},t)})}static idle(e){return new Promise((t,r)=>{setTimeout(()=>t(),e)})}static accelerateCallback(e,t=500,r=5,n=20){let s={cancel:!1},o=t,a=r+n,i=()=>{e(s),setTimeout(i,o),o<a?o=n:o-=r};i()}static isEmpty(e){return pacemFoundation.NullChecker.isEmpty(e)&&!(e instanceof Node)}static isNull(e){return pacemFoundation.NullChecker.isNull(e)}static isArray(e){return Array.isArray(e)}static isNullOrEmpty(e){return Utils.isNull(e)||Utils.isEmpty(e)}static areSemanticallyEqual(e,t){e??=null,t??=null;return(e&&e.valueOf&&e.valueOf())===(t&&t.valueOf&&t.valueOf())}static{this.extend=Object.assign}static clone(e){if(void 0!==e)return DeepCloner.clone(e)}static fromResult(e){return Promise.resolve(e)}static fromResultAsync(e){return new Promise(t=>requestAnimationFrame(()=>t(e())))}static readonlyCopy(e){if(Utils.isNull(e))return null;if(Utils.isArray(e)){const t=e.slice(0);return Object.freeze(t),t}{const t={};for(let r in e)t[r]=e[r];return Object.freeze(t),t}}static{this.URIs={format:function(e,t,r){for(let n in t||{}){let s=new RegExp("(^|\\/)\\{"+n+"\\??\\}(\\/|$)").exec(e);if(s&&s.length){let o=new RegExp("\\{"+n+"\\??\\}"),a=s.index;e=e.substring(0,a)+e.substring(a).replace(o,encodeURIComponent(t[n])),r&&delete t[n]}}const n=/(^|\/)\{[\w]+\?\}(\/|$)/;for(var s;(s=n.exec(e))&&s.length>0;){let t=s[0];e=e.replace(t,t.endsWith("/")?"/":"")}return e},appendQuery:function(e,t,r=!1,n=!1){const s=n?"#":"?",o=((n?/#/:/\?/).test(e)?"&":s)+Object.keys(t).filter(e=>!Utils.isNull(t[e])||!r).map(e=>encodeURIComponent(e)+"="+encodeURIComponent(t[e]??"")).join("&");return e+(o.length>1?o:"")},parseQuery:(e=window.location)=>{"string"!=typeof e&&(e=e.search);const t={};return new URLSearchParams(e).forEach((e,r)=>{Object.defineProperty(t,r,{enumerable:!0,value:e})}),t},hasMandatoryTemplateSegments:function(e){return/(^|\/)\{\.*\}(\/|$)/.test(e)},parseRoute:function(e){let t=e;const r=[];if(!Utils.isNullOrEmpty(t)){let e,n=0;for(;null!=(e=SEGMENT_PATTERN.exec(t));){const s=e[0],o=ROUTE_SEGMENT_PATTERN.exec(s);if(!Utils.isNullOrEmpty(o)){const e=o[1];r.push({name:e,optional:"?"===s.charAt(s.length-2),index:n})}t=t.substring(e.index+s.length),n++}}return r},split:function(e){const t=/^((https?:)?\/\/[^\/]+)?([^\?#]+)(\?[^#]*)?(#[^#]*)?$/.exec(e);return t?{domain:t[2]??"",protocol:t[1]??"",path:t[3]??"",query:t[4]??"",hash:t[5]??""}:null},parseState:function(e,t,r,n,s){let o=t;if(Utils.isNullOrEmpty(r)){const e=Utils.URIs.split(t);r=e.path,Utils.isNullOrEmpty(n)&&(n=e.query??""),Utils.isNullOrEmpty(s)&&(s=e.hash??""),o=r+n+s}let a={$path:o,$pathname:r,$querystring:n.length>0?n.substring(1):n,$query:(e=>{const t=e.indexOf("?");return 0===t?Utils.URIs.parseQuery(e.substring(t+1)):{}})(n),$hash:(e=>{const t=e.indexOf("#");return 0!==t?null:e.substring(t+1)})(s)},i=0;const l=e.slice();if(!Utils.isNullOrEmpty(l)){let e;for(;null!=(e=SEGMENT_PATTERN.exec(r));){const t=e[0],n=l.findIndex(e=>e.index===i);if(n>=0){const e=l[n],{name:r}=e;Object.defineProperty(a,r,{enumerable:!0,value:t.substring(1)}),l.splice(n,1)}i++,r=r.substring(e.index+t.length)}}for(let e=0;e<l.length;e++)if(!l[e].optional)throw`Must provide "${l[e].name}" route value.`;return a}}}static getApiResult(e){if("object"==typeof e&&!Utils.isNull(e)&&e.hasOwnProperty("success"))switch(e.success){case!0:if(e.hasOwnProperty("result"))return e.result;break;case!1:if(e.hasOwnProperty("error"))return null}return e}}var EventKeyModifier;!function(e){e.AltKey="Alt",e.CtrlKey="Ctrl",e.ShiftKey="Shift",e.MetaKey="Cmd"}(EventKeyModifier||(EventKeyModifier={}));class CustomEventUtils{static isInstanceOf(e,t){return e instanceof t}static getEventCoordinates(e){var t;return"touches"in e?Utils.isNullOrEmpty(e.touches)?Utils.isNullOrEmpty(e.changedTouches)||(t=e.changedTouches[0]):t=e.touches[0]:t=e,{page:{x:t.pageX,y:t.pageY},screen:{x:t.screenX,y:t.screenY},client:{x:t.clientX,y:t.clientY}}}static getEventKeyModifiers(e){var t=e.which;return e instanceof MouseEvent&&(t=e.button),{which:t,shiftKey:e.shiftKey,altKey:e.altKey,ctrlKey:e.ctrlKey,metaKey:e.metaKey}}static matchModifiers(e,...t){const r=(!Utils.isNull(t)&&(1===t.length&&Utils.isArray(t[0])?t[0]:Array.from(t).filter(e=>!Utils.isNullOrEmpty(e)))||[]).map(e=>e.toLowerCase()),n=r.indexOf("alt")>=0||r.indexOf("option")>=0,s=r.indexOf("shift")>=0,o=r.indexOf("ctrl")>=0,a=r.indexOf("win")>=0||r.indexOf("cmd")>=0;return n===e.altKey&&s===e.shiftKey&&a===e.metaKey&&o===e.ctrlKey}static fixEdgeCustomEventSubClassInstance(e,t){e instanceof t||Object.setPrototypeOf(e,t)}}class CustomTypedEvent extends CustomEvent{constructor(e,t,r){super(e,Utils.extend({detail:t},r||{})),CustomEventUtils.fixEdgeCustomEventSubClassInstance(this,this.constructor)}}function isEventInit(e){if("detail"in e){for(let t in e)if("bubbles"!==t&&"cancelable"!==t&&"composed"!==t&&"detail"!==t)return!1;return!0}return!1}class CustomUIEvent extends CustomEvent{constructor(e,t,r,n){super(e,Utils.extend(isEventInit(t||{})?t:{detail:t},!(r instanceof Event)&&r||{}));const s=n||r;s instanceof Event&&(this.#e=s,this.#t=CustomEventUtils.getEventKeyModifiers(s),(s instanceof MouseEvent||s instanceof TouchEvent)&&(this.#r=CustomEventUtils.getEventCoordinates(s))),CustomEventUtils.fixEdgeCustomEventSubClassInstance(this,this.constructor)}#e;#t;#r;get originalEvent(){return this.#e}get which(){return this.#t?.which}get altKey(){return this.#t?.altKey}get shiftKey(){return this.#t?.shiftKey}get ctrlKey(){return this.#t?.ctrlKey}get metaKey(){return this.#t?.metaKey}get pageX(){return this.#r?.page.x}get pageY(){return this.#r?.page.y}get clientX(){return this.#r?.client.x}get clientY(){return this.#r?.client.y}get screenX(){return this.#r?.screen.x}get screenY(){return this.#r?.screen.y}}const AttributeChangeEventName="attributechange";class AttributeChangeEvent extends CustomTypedEvent{constructor(e){super(AttributeChangeEventName,e)}}const PropertyChangeEventName="propertychange";class PropertyChangeEvent extends CustomTypedEvent{constructor(e){super(PropertyChangeEventName,e)}}const RouterNavigatingEventName="navigating",RouterNavigateEventName="navigate";class RouterNavigateEvent extends CustomTypedEvent{constructor(e){super(RouterNavigateEventName,"string"==typeof e?{path:e}:e,{cancelable:!1,bubbles:!1})}}class RouterNavigatingEvent extends CustomTypedEvent{constructor(e){super(RouterNavigatingEventName,e,{cancelable:!0,bubbles:!1})}}class AnimationEvent extends CustomTypedEvent{constructor(e){super("step",e)}}class AnimationEndEvent extends CustomEvent{constructor(){super("end")}}class AnimationStartEvent extends CustomEvent{constructor(){super("start")}}class TweenService{run(e,t,r,n=0,s=Easings.linear,o=null){return new Promise((a,i)=>{const l=(performance&&performance.now()||Date.now())+Math.abs(n||0),c=l+Math.abs(r||0),m=()=>{const n=performance&&performance.now()||Date.now();if(n>=l&&n<c){const a=(n-l)/r,i=e+(s||Easings.linear)(a)*(t-e);o&&o(a,i)}n<c?requestAnimationFrame(m):(o&&o(1,t),a())};m()})}}class Timer{#n;#s;#o;constructor(e,t){this.#a=0,this._run=e=>{this.#o=requestAnimationFrame(this._run);const t=performance.now(),r=this.#n,n=t-this.#a;n>=r&&(this.#a=t-n%r,this.#s(e))},this.#n=1e3/t,this.#s=e,this.#o=requestAnimationFrame(this._run)}#a;static run(e,t=60){return new Timer(e,t)}stop(){cancelAnimationFrame(this.#o)}}var indexAnimations=Object.freeze({__proto__:null,AnimationEndEvent:AnimationEndEvent,AnimationEvent:AnimationEvent,AnimationStartEvent:AnimationStartEvent,Easings:Easings,Timer:Timer,TweenService:TweenService}),HttpMethod;!function(e){e.Get="GET",e.Post="POST",e.Put="PUT",e.Delete="DELETE",e.Options="OPTIONS",e.Head="HEAD",e.Patch="PATCH",e.Connect="CONNECT",e.Trace="TRACE"}(HttpMethod||(HttpMethod={}));const FetchResultEventName="fetchresult",FetchErrorEventName="error",FetchSuccessEventName="success";class Fetcher{static isEmpty(e){return 204===e.status||"0"===e.headers.get("Content-Length")}}const noop=()=>{};class StatusCodeError extends Error{constructor(e,t){super(t),this.statusCode=e}get status(){return this.statusCode}}class Response{constructor(e,t){e&&(this._status=e.status,this._body=e.response,this._text=e.responseText,this._type=e.responseType,this._allHeadersRaw=e.getAllResponseHeaders(),this._processTime=t)}get processTime(){return this._processTime}get headers(){return void 0===this._headers&&this._allHeadersRaw&&this._parseHeaders(),this._headers}get size(){return+this.headers["Content-Length"]}get mime(){return this.headers["Content-Type"]}get date(){return new Date(Date.parse(this.headers.Date))}_parseHeaders(){let e={};this._allHeadersRaw.split("\r\n").forEach(t=>{if(t&&t.length){let r=t.indexOf(":"),n=t.substr(0,r).trim(),s=t.substr(r+1).trim();e[n]=s}}),this._headers=e}get status(){return this._status}get text(){return this._text}get content(){return this._body}get type(){return this._type}get json(){if("json"===this._type)return this._body;try{return JSON.parse(this._text)}catch(e){return}}}class Http{constructor(){}request(e,t){var r=this;let n=DeferPromise.defer();var s=(t=t||{method:HttpMethod.Get}).method||HttpMethod.Get,o=t.data||{},a=t.progress||noop,i=t.headers||{};r.accessToken&&(i.Authorization="Bearer "+r.accessToken);var l,c,m=new XMLHttpRequest;switch(m.withCredentials=!1,m.addEventListener("progress",e=>{if(e.lengthComputable){var t=e.loaded/e.total;"function"==typeof a&&a.apply(r,[t])}},!1),m.addEventListener("error",e=>{n.reject(new StatusCodeError(500,e.message||"Unknown error"))},!1),m.addEventListener("load",()=>{if(m.status>=200&&m.status<300){var e=new Response(m,Date.now()-l);n.resolve(e)}else n.reject(new StatusCodeError(m.status,m.statusText))},!1),s.toUpperCase()){case HttpMethod.Get:e+=(/\?/.test(e)?"&":"?")+("string"==typeof o?o:Object.keys(o).map(function(e){return encodeURIComponent(e)+"="+encodeURIComponent(o[e])}).join("&"));break;case HttpMethod.Post:c=JSON.stringify(o)}switch(m.open(s,e,!0),s.toUpperCase()){case HttpMethod.Get:m.setRequestHeader("X-Requested-With","XMLHttpRequest");break;case HttpMethod.Post:m.setRequestHeader("X-Requested-With","XMLHttpRequest"),m.setRequestHeader("Content-Type","application/json")}for(var d in i)m.setRequestHeader(d,i[d]);return l=Date.now(),m.send(c),n.promise}get(e,t,r){return this.request(e,{method:HttpMethod.Get,data:t,headers:r||{}})}post(e,t,r){return this.request(e,{method:HttpMethod.Post,data:t,headers:r||{}})}}var indexNet=Object.freeze({__proto__:null,FetchErrorEventName:FetchErrorEventName,FetchResultEventName:FetchResultEventName,FetchSuccessEventName:FetchSuccessEventName,Fetcher:Fetcher,Http:Http,get HttpMethod(){return HttpMethod},Response:Response,StatusCodeError:StatusCodeError}),DragDataMode,DropBehavior,DropTargetMissedBehavior,DragDropEventType,RescaleHandle,RescaleEventType,RotateEventType,SwipeEventType;!function(e){e.Self="self",e.Alias="alias",e.Copy="copy"}(DragDataMode||(DragDataMode={})),function(e){e.InsertChild="insert",e.None="none"}(DropBehavior||(DropBehavior={})),function(e){e.Revert="revert",e.Remove="remove",e.None="none"}(DropTargetMissedBehavior||(DropTargetMissedBehavior={})),function(e){e.Init="draginit",e.Start="dragstart",e.Drag="drag",e.Drop="drop",e.Over="dragover",e.Out="dragout",e.End="dragend"}(DragDropEventType||(DragDropEventType={}));class DragDropEventArgsBaseClass{constructor(e){this._builder=e,this.currentPosition=e.currentPosition,this.target=e.target}get element(){return this._builder.element}get origin(){return this._builder.origin}get initialDelta(){return this._builder.initialDelta}get startTime(){return this._builder.startTime}get floater(){return this._builder.floater}get delta(){var e=this;return pacemFoundation.Point.add(e.initialDelta,pacemFoundation.Point.subtract(e.origin,e.currentPosition))}}class DragDropInitEventArgsClass extends DragDropEventArgsBaseClass{constructor(e){super(e),this.placeholder=e.placeholder,this.data=e.data}static fromArgs(e){return new DragDropInitEventArgsClass(Utils.extend({},e))}}class DragDropEventArgsClass extends DragDropEventArgsBaseClass{constructor(e,t=e.placeholder,r=e.data){super(e),this._placeholder=t,this._data=r}get placeholder(){return this._placeholder}get data(){return this._data}static fromArgs(e){return new DragDropEventArgsClass(Utils.extend({},e))}}class DragDropEvent extends CustomUIEvent{constructor(e,t,r,n){super(e,t,r,n)}}!function(e){e.All="all",e.Top="top",e.Left="left",e.Right="right",e.Bottom="bottom"}(RescaleHandle||(RescaleHandle={})),function(e){e.Start="rescalestart",e.Rescale="rescale",e.End="rescaleend"}(RescaleEventType||(RescaleEventType={}));class RescaleEventArgsClass{constructor(e){this._builder=e}get currentPosition(){return this._builder.currentPosition}get targetRect(){return this._builder.targetRect}get element(){return this._builder.element}get handle(){return this._builder.handle}static fromArgs(e){return new RescaleEventArgsClass(Utils.extend({},e))}}class RescaleEvent extends CustomUIEvent{constructor(e,t,r,n){super(e,t,r,n)}}!function(e){e.Start="rotatestart",e.Rotate="rotate",e.End="rotateend"}(RotateEventType||(RotateEventType={}));class RotateEventArgsClass{constructor(e){this._builder=e}get currentPosition(){return this._builder.currentPosition}get rotation(){return this._builder.rotation}get element(){return this._builder.element}get center(){return this._builder.center}static fromArgs(e){return new RotateEventArgsClass(Utils.extend({},e))}}class RotateEvent extends CustomUIEvent{constructor(e,t,r,n){super(e,t,r,n)}}!function(e){e.Swipe="swipe",e.Pan="pan",e.SwipeLeft="swipeleft",e.SwipeRight="swiperight",e.SwipeUp="swipeup",e.SwipeDown="swipedown",e.SwipeAnimationEnd="swipeanimationend",e.SwipeLeftAnimationEnd="swipeleftanimationend",e.SwipeRightAnimationEnd="swiperightanimationend",e.SwipeUpAnimationEnd="swipeupanimationend",e.SwipeDownAnimationEnd="swipedownanimationend"}(SwipeEventType||(SwipeEventType={}));class SwipeEventArgsClass{constructor(e){this._builder=e}get#i(){const{verticalspeed:e,horizontalspeed:t,vertical:r}=this._builder;return r??Math.abs(t)<Math.abs(e)}get direction(){return this.#i?this._builder.verticalspeed>0?"down":"up":this._builder.horizontalspeed>0?"right":"left"}get speed(){const{verticalspeed:e,horizontalspeed:t}=this._builder;return this.#i?e:t}get delta(){const{position:{x:e,y:t},t0:{position:{x:r,y:n}}}=this._builder;return this.#i?t-n:e-r}get flinging(){const{fling:e}=this._builder;return e>0&&Math.abs(this.speed)>e}get predictedDelta(){const e=this._builder.inertia??8;return this.delta+this.speed/e}get predictedDuration(){const e=this._builder.inertia??8;return-Math.log(.01)/e}get element(){return this._builder.element}static fromArgs(e){return new SwipeEventArgsClass(Utils.extend({},e))}}class SwipeEvent extends CustomTypedEvent{constructor(e,t,r){super(e,t,r)}}var indexUi=Object.freeze({__proto__:null,get DragDataMode(){return DragDataMode},DragDropEvent:DragDropEvent,DragDropEventArgsClass:DragDropEventArgsClass,get DragDropEventType(){return DragDropEventType},DragDropInitEventArgsClass:DragDropInitEventArgsClass,get DropBehavior(){return DropBehavior},get DropTargetMissedBehavior(){return DropTargetMissedBehavior},RescaleEvent:RescaleEvent,RescaleEventArgsClass:RescaleEventArgsClass,get RescaleEventType(){return RescaleEventType},get RescaleHandle(){return RescaleHandle},RotateEvent:RotateEvent,RotateEventArgsClass:RotateEventArgsClass,get RotateEventType(){return RotateEventType},SwipeEvent:SwipeEvent,SwipeEventArgsClass:SwipeEventArgsClass,get SwipeEventType(){return SwipeEventType}});class CurrentIndexChangeEvent extends CustomTypedEvent{constructor(e){super("currentindexchange",e)}}const Type=Function,WATCH_PROPS_VAR="pacem:properties",INSTANCE_BINDINGS_VAR="pacem:custom-element:bindings",INSTANCE_HOST_VAR="pacem:custom-element:host",INSTANCE_SCOPE_VAR="pacem:custom-element:scope";var root;const P=(root=window.Pacem)?.Configuration?.prefix??"pacem",PCSS=root?.Configuration?.css??P;class TemplateElement extends HTMLElement{}const PACEM_BAG="__pacem__",bindingPattern=/^\{\{(.|\n)+\}\}$/;class CustomElementUtils{static get polyfilling(){return customElements instanceof window.CustomElementRegistry}static camelToKebab(e){return e&&e.replace(/([A-Z])/g,"-$1").toLowerCase()}static kebabToCamel(e){return e&&e.replace(/(-[a-z])/g,e=>e[1].toUpperCase())}static waitForReady(e){return new Promise((t,r)=>{Utils.isNull(e)&&r("Not found."),e.isReady&&t();const n=()=>{e.removeEventListener("load",n),t()};e.addEventListener("load",n)})}static whenReady(e,t){CustomElementUtils.waitForReady(e).then(t)}static getWatchedProperties(e,t=!0){var r=[],n=e instanceof HTMLElement?e.constructor:e;do{let e=(this.getAttachedPropertyValue(n,WATCH_PROPS_VAR)||[]).filter(e=>!e.name.startsWith("_"));Array.prototype.splice.apply(r,[0,0].concat(e))}while(t&&(n=Object.getPrototypeOf(n)));return r}static getWatchedProperty(e,t){return this.getWatchedProperties(e,!0).find(e=>e.name===t)}static importjs(e,t=null,r=!1){var n={type:"text/javascript",src:e};return Utils.isNullOrEmpty(t)||Utils.extend(n,{integrity:t}),r&&Utils.extend(n,{crossorigin:""}),CustomElementUtils.import(e,"script",n,document.head||document.getElementsByTagName("head")[0])}static importcss(e,t=null,r=!1){var n={rel:"stylesheet",href:e};return Utils.isNullOrEmpty(t)||Utils.extend(n,{integrity:t}),r&&Utils.extend(n,{crossorigin:"anonymous"}),CustomElementUtils.import(e,"link",n,document.head||document.getElementsByTagName("head")[0])}static import(e,t,r,n=document.body){const s=Utils.core;var o=s.imports=s.imports||{};return o[e]=o[e]||new Promise((e,s)=>{var o=t;for(let e in r||{})o+=`[${e}="${r[e]}"]`;var a=document.querySelector(o);if(Utils.isNull(a)){for(var i in(a=document.createElement(t)).onerror=e=>{s(e)},a.onload=()=>{e(a)},r||{})a.setAttribute(i,r[i]);n.appendChild(a)}else e(a)})}static{this.Theme={importWebFonts(){function e(e){return Utils.isNullOrEmpty(e)?Promise.resolve():document.fonts.load("1rem "+e)}const t=["icons","std","main","tech","btn"].map(t=>{const r=Utils.Css.getVariableValue(`--${PCSS}-font-${t}`).split(",")[0],n=(s=Utils.Css.getVariableValue(`--${PCSS}-font-${t}-api-url`),/^('|").*\1$/.test(s)?s.substring(1,s.length-1):s);var s;return Utils.isNullOrEmpty(n)?e(r):CustomElementUtils.importcss(n).then(t=>e(r))}),r=new Promise(e=>{!function t(r=0){r>4||!("size"in document.fonts)||"number"==typeof document.fonts.size&&document.fonts.size>0?document.fonts.ready.then(e):setTimeout(t,250,r++)}()});return t.push(r),Promise.all(t)}}}static setAttachedPropertyValue(e,t,r){if(Utils.isNull(e))return;const n=Object.getOwnPropertyDescriptor(e,PACEM_BAG),s=n&&n.value||Object.defineProperty(e,PACEM_BAG,{value:{},enumerable:!1,writable:!1,configurable:!1})[PACEM_BAG];Utils.isNull(r)?delete s[t]:s[t]=r}static deleteAttachedPropertyValue(e,t){CustomElementUtils.setAttachedPropertyValue(e,t,void 0)}static getAttachedPropertyValue(e,t,r){const n=Object.getOwnPropertyDescriptor(e,PACEM_BAG),s=n&&n.value;return Utils.isNull(s&&s[t])&&!Utils.isNull(r)?(CustomElementUtils.setAttachedPropertyValue(e,t,r),r):s&&s[t]}static resolvePath(e,t){if(!e||!t)return;if(/[\(\)\{\}]/.test(e))throw`Security alert: not allowed to process paths like ${e}.`;const r=e.split(".");var n,s,o,a=t,i=a,l=r[0];return r.forEach((e,t)=>{e.split("[").forEach((e,t)=>{n=i,/\]$/.test(e)&&(e=e.substring(0,e.length-1),/^('|").+[^\\]\1$/.test(e)&&(e=e.substr(1,e.length-2))),i=i[e]})}),/\]$/.test(e)?(o=e.lastIndexOf("["),s=(s=e.substring(o+1)).substring(0,s.length-1)):(o=e.lastIndexOf("."),s=e.substring(o+1)),{target:{value:i,name:s},parent:{value:n||t,path:e.substring(0,o)},root:{value:a,property:l}}}static set(e,t,r){var n=CustomElementUtils.resolvePath(t,e),s=n.target.value;if(s!==r)if(n.parent.value==n.root.value||n.parent.value instanceof HTMLElement)n.parent.value[n.target.name]=r;else{n.parent.value[n.target.name]=r;const e=Utils.clone(n.root.value[n.root.property]);let t;n.parent.value[n.target.name]=s,"item"!==n.root.property||Utils.isNull(t=RepeaterItem$1.getRepeaterItem(n.root.value))?n.root.value[n.root.property]=e:t.repeater&&t.repeater.datasource&&t.repeater.datasource.splice(t.index,1,t.item=e)}}static get(e,t){var r=CustomElementUtils.resolvePath(t,e);return r&&r.target&&r.target.value}static _findScopeContextLegacy(e){let t,r=e;do{r=r.parentNode}while(null!=r&&(r!=(t=e.ownerDocument)||r instanceof HTMLElement&&null!=(t=r.shadowRoot)));return t}static findScopeContext(e){return(e.isConnected?e.getRootNode():CustomElementUtils.getAttachedPropertyValue(e,INSTANCE_SCOPE_VAR))??CustomElementUtils._findScopeContextLegacy(e)}static findAncestor(e,t){let r,n=e;for(;n&&null!=(n=n.parentNode||n.getRootNode()?.host);)if(n.host instanceof HTMLElement&&(n=n.host),t.apply(n,[n])){r=n;break}return r}static findAncestorShell(e){return CustomElementUtils.findAncestor(e,e=>Utils.is(e,`.${PCSS}-body`)||e===document.body)}static findAncestorOfType(e,t){return CustomElementUtils.findAncestor(e,e=>e instanceof t)}static findDescendants(e,t,r=!1){const n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT);for(var s=[];n.nextNode();){let e=n.currentNode;if(!0===t(e)&&(s.push(e),r))return s}return s}static findFirstDescendant(e,t){const r=CustomElementUtils.findDescendants(e,t,!0);return Utils.isNullOrEmpty(r)?void 0:r[0]}static findAll(e="[pacem]",t=e=>!0){const r=[];return document.querySelectorAll(e).forEach((e,n,s)=>{!0===t(e)&&r.push(e)}),r}static findPreviousSiblingOrAncestorOfType(e,t,r=0){let n=e,s=null,o=0;do{if(n=n.previousSibling||n.parentNode,n instanceof t){if(o>=r){s=n;break}n=n.parentNode,o++}}while(null!=n);return s}static findPreviousSiblingOrAncestor(e,t,r=0){let n=e,s=null,o=0;do{if(n=n.previousSibling||n.parentNode,n&&t.apply(n,[n])){if(o>=r){s=n;break}n=n.parentNode,o++}}while(null!=n);return s}static assignHostContext(e,t){const r=document.createTreeWalker(t.content,NodeFilter.SHOW_ELEMENT+NodeFilter.SHOW_DOCUMENT_FRAGMENT);for(;r.nextNode();){var n=r.currentNode;Utils.isNull(CustomElementUtils.getAttachedPropertyValue(n,INSTANCE_HOST_VAR))&&CustomElementUtils.setAttachedPropertyValue(n,INSTANCE_HOST_VAR,e)}}static findHostContext(e){let t,r,n=e;if(!n.isConnected)return t;for(;null!=n&&(t=CustomElementUtils.getAttachedPropertyValue(n,INSTANCE_HOST_VAR),!(t instanceof HTMLElement));)n=n.parentElement;return null==t&&console&&(r=console.warn)&&r(`Element "${e.constructor.name}" isn't a descendant of a templated component.`),t}static isBindingAttribute(e){return bindingPattern.test(e)}static extractBindingAttributeExpression(e){if(CustomElementUtils.isBindingAttribute(e))return e.substr(2,e.length-4);throw"Invalid attribute: incorrect binding syntax."}static parseBindingAttribute(e,t){let r=CustomElementUtils.extractBindingAttributeExpression(e);const n=/,\s*(twoway|once)\s*$/.exec(r),s=n&&n.length>1&&n[1];Utils.isNullOrEmpty(s)||(r=r.substr(0,r.lastIndexOf(",")));var o=Expression.parse(r,t);return(o&&o.dependencies).forEach(e=>{switch(s){case"twoway":e.mode=e.twowayAllowed&&1==o.dependencies.length?"twoway":void 0;break;case"once":e.mode=s}}),o}static ensureMember(e,t,r){let n=Object.getOwnPropertyDescriptor(e,t);return null!=n?n:(Object.defineProperty(e,t,r),Object.getOwnPropertyDescriptor(e,t))}static stripObservedAttributes(e){avoidObservedAttributes(e,!1)}static freezeObservedAttributes(e){avoidObservedAttributes(e)}}function avoidObservedAttributes(e,t=!0){const r=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT);do{var n=r.currentNode;if(n instanceof HTMLElement){const e=n.constructor.observedAttributes;if(!Utils.isNull(e)){CustomElementUtils.deleteAttachedPropertyValue(n,INSTANCE_BINDINGS_VAR);let r=function(e){if(Utils.isArray(e))return"["+e.map(r).join(",")+"]";if(e instanceof Element){return`#${e.id=e.id||"_"+Utils.uniqueCode()}`}return`${Utils.Json.stringify(e)}`};for(var s of e)if(s in n.attributes){let e;if(t&&!Utils.isNull(e=n[CustomElementUtils.kebabToCamel(s)])){let t=r(e);n.setAttribute(s,`{{ ${t} }}`)}else n.removeAttribute(s)}}}}while(r.nextNode())}const GET_VAL$6=CustomElementUtils.getAttachedPropertyValue,SET_VAL$5=CustomElementUtils.setAttachedPropertyValue,REPEATERITEM_PLACEHOLDER="pacem:repeater-item";class Repeater{static findItemContext(e,t=0,r=console.warn){let n=RepeaterItem$1.findUpwards(e,t,r);return null==n&&r&&e instanceof HTMLElement&&e.isConnected&&r(`Couldn't find a ${RepeaterItem$1.name} up ${t} level${1===t?"":"s"} from element "${e.constructor.name}".`),n}}let RepeaterItem$1=class RepeaterItem{static findUpwards(e,t=0,r=console.warn){if(Utils.isNull(e)||"template"===e.localName||e instanceof TemplateElement)return null;let n=null;return null==CustomElementUtils.findPreviousSiblingOrAncestor(e,e=>!Utils.isNull(n=RepeaterItem.getRepeaterItem(e)),t)&&r&&e instanceof HTMLElement&&e.isConnected&&r(`Couldn't find a ${RepeaterItem.name} up ${t} level${1===t?"":"s"} from element "${e.constructor.name}".`),n}static isRepeaterItem(e){return!Utils.isNull(GET_VAL$6(e,REPEATERITEM_PLACEHOLDER))}static getRepeaterItem(e){return GET_VAL$6(e,REPEATERITEM_PLACEHOLDER)}constructor(e){this._placeholder=e,SET_VAL$5(e,REPEATERITEM_PLACEHOLDER,this)}get placeholder(){return this._placeholder}};const CONTEXT_PREFIX="__context_pacem",stringPattern=/'(\\'|[^'])*[^\\]?'|"(\\"|[^"])*[^\\]?"/g,safetyPattern=/[^\w]new\s|[^\w]window\s*[\.\[]|[^\w]document\s*\.|[^\w]eval\s*\(/,variablePattern=/(^|[\s\(\[\+\-\*\/!])(:host\.|\^+item[\s\.,;\)\]]|\^+item$|\^+index[^\w\.]|\^+index$|\$?this[\.\s$]?|#[a-zA-Z_][\w]*|::[a-zA-Z_][\w]*)/g;class Expression{constructor(){this._pending=!1,this._independent=!1}get dependencies(){return this._dependencies}get functionBody(){return this._fnBody}get voidBody(){return this._voidBody}get pending(){return this._pending}get independent(){return this._independent}evaluate(){return this._fn||(this._fn=new Function("$pacem",CONTEXT_PREFIX,this._fnBody)),this._fn.apply(null,[Utils.core,this._args])}evaluateAsync(){const e=DeferPromise.defer();return this._fn||(this._fn=new Function("$pacem",CONTEXT_PREFIX,this._fnBody)),e.resolve(this._fn.apply(null,[Utils.core,this._args])),e.promise}evaluatePlus(e={}){if(!this._fn){let r=[CONTEXT_PREFIX];for(var t in e)r.push(t);r.push("$pacem"),this._fn=new Function(r.join(", "),this._voidBody)}let r=[].concat(this._args);for(var t in e)r.push(e[t]);return r.push(Utils.core),this._fn.apply(null,r)}static{this._pendingExpression=null}static _getPendingExpressionSingleton(){if(null==Expression._pendingExpression){let e=new Expression;e._pending=!0,e._dependencies=[],Expression._pendingExpression=e}return Expression._pendingExpression}static parse(e,t){for(var r,n=CustomElementUtils.findScopeContext(t),s={$this:t},o=[],a="",i=!0,l=[],c=0,m=[];null!=(r=stringPattern.exec(e));){m.push(e.substr(c,r.index-c));let t=r[0].length;l.push({start:r.index,length:t}),c=r.index+t}c<e.length&&m.push(e.substr(c,e.length-c));for(var d=0;d<m.length;d++){let r=m[d];if(safetyPattern.test(r))throw`Unsafe expression detected: "${r}".`;if(null==n){if(!0===new RegExp(variablePattern).test(r)){i=!1;break}}else{let c=r.replace(variablePattern,(e,r,a,l,c)=>{i=!1;const m="__host_pacem";let d,p=CONTEXT_PREFIX+".$this"+(a.endsWith(".")?".":""),h=t,u=c.indexOf(".",l),v=u>l?c.substr(u+1).trim():"",E=/^[\w\.\$]+/.exec(v),g=E&&E.length>0&&E[0],f=g&&(d=g.split(".")).length>0&&d[0];if(":host."===a)h=s[m]=s[m]||CustomElementUtils.findHostContext(t),p=`${CONTEXT_PREFIX}.${m}.`;else if(a.endsWith("^item")||a.substr(0,a.length-1).endsWith("^item")){let e=a.endsWith("^item")?"":a.substr(a.length-1,1),r=a.length-(e.length>0?6:5),n=`__item_${r}_up_pacem`,o=Repeater.findItemContext(t,r);h=s[n]=s[n]||o&&o.placeholder,g="item"+(g?"."+g:""),f="item",p=`${CONTEXT_PREFIX}.${n}.item${e}`}else if(a.endsWith("^index")||a.substr(0,a.length-1).endsWith("^index")){let e=a.endsWith("^index")?"":a.substr(a.length-1,1),r=a.length-(e.length>0?7:6),n=`__item_${r}_up_pacem`,o=Repeater.findItemContext(t,r);h=s[n]=s[n]||o&&o.placeholder,g="index",f="index",p=`${CONTEXT_PREFIX}.${n}.index${e}`}else if(a.startsWith("::")){let e=a.substr(2,a.length-2),r=s[m]=s[m]||CustomElementUtils.findHostContext(t);h=Utils.isNull(r)?null:r[e],p=`${CONTEXT_PREFIX}.${m}.${e}`}else if(a.startsWith("#")){let e=a.substr(1,a.length-1);h=s[e]=s[e]||n.querySelector("#"+e),p=`${CONTEXT_PREFIX}.${e}`}return f&&h&&f in h&&"function"!=typeof h[f]&&null==o.find(e=>e.element===h&&e.property==f)&&o.push({element:h,property:f,path:g,twowayAllowed:!1}),r+p});if(a+=c,d<l.length){const t=l[d];a+=e.substr(t.start,t.length)}}}if(i){var p=new Expression;return p._independent=!0,p._fnBody=`return ${e};`,p._voidBody=e,p._dependencies=[],p}if(null==n)return this._getPendingExpressionSingleton();for(var h in s)if(null==s[h])return Expression._getPendingExpressionSingleton();1==o.length&&!0!==/[^\w\.\$]+/.test(a.trim())&&(o[0].twowayAllowed=!0);var u=new Expression;return u._args=s,u._fnBody=`try{ var ___$$$r = ${a}; return ___$$$r; }catch(e){ }`,u._voidBody=`try{ ${a} }catch(e){ }`,u._dependencies=o,u}}var LogLevel;!function(e){e.Trace="trace",e.Debug="debug",e.Warn="warn",e.Error="error",e.Info="info",e.Log="log"}(LogLevel||(LogLevel={}));const NonePropertyConverter={convert:e=>{}},StringPropertyConverter={convert:e=>e,convertBack:e=>e},StringArrayPropertyConverter={convert:e=>e&&e.trim().split(/[ ,]+/),convertBack:e=>Utils.isArray(e)&&e.join(" ")||""},NumberPropertyConverter={convert:e=>parseFloat(e),convertBack:e=>e.toString()},BooleanPropertyConverter={convert:e=>!Utils.isNullOrEmpty(e)&&"0"!==e&&"false"!==e,convertBack:e=>(!!e).toString()},BooleanStrictPropertyConverter={convert:e=>"true"===e||"1"===e,convertBack:e=>(!!e).toString()},DateTimePropertyConverter={convert:e=>Utils.parseDate(e),convertBack:e=>Utils.parseDate(e).toISOString()},DatePropertyConverter=DateTimePropertyConverter,JsonPropertyConverter={convert:e=>Utils.Json.parse(e),convertBack:e=>Utils.Json.stringify(e)},EvalPropertyConverter={convert:e=>Function(`return ${e};`).apply(null),convertBack:e=>{}},ElementPropertyConverter={convert:e=>document.querySelector(e),convertBack:e=>e instanceof Element&&e.id?"#"+e.id:void 0,retryConversionWhenReady:!0},PointPropertyConverter={convert:e=>pacemFoundation.Point.parse(e),convertBack:e=>`${e.x||0} ${e.y||0}`},SizePropertyConverter={convert:e=>pacemFoundation.Size.parse(e),convertBack:e=>`${e.width||0} ${e.height||0}`},RectPropertyConverter={convert:e=>pacemFoundation.Rect.parse(e),convertBack:e=>`${e.x||0} ${e.y||0} ${e.width||0} ${e.height||0}`},PropertyConverters={None:NonePropertyConverter,String:StringPropertyConverter,StringArray:StringArrayPropertyConverter,Number:NumberPropertyConverter,Boolean:BooleanPropertyConverter,BooleanStrict:BooleanStrictPropertyConverter,Date:DatePropertyConverter,Datetime:DateTimePropertyConverter,Json:JsonPropertyConverter,Eval:EvalPropertyConverter,Element:ElementPropertyConverter,Point:PointPropertyConverter,Rect:RectPropertyConverter,Size:SizePropertyConverter},DefaultComparer=(e,t)=>Utils.areSemanticallyEqual(e,t),GET_VAL$5=CustomElementUtils.getAttachedPropertyValue,SET_VAL$4=CustomElementUtils.setAttachedPropertyValue,DEL_VAL$4=CustomElementUtils.deleteAttachedPropertyValue,WATCH_PROP_PREFIX="pacem:property:",WATCH_VERS_PROP="pacem:version",WATCH_BIND_PREFIX="pacem:binding:",INSTANCE_CHILDREN_VAR="pacem:view-children",HAS_BIND_PREFIX="pacem:has-binding:",HAS_TEMPLATE_VAR="pacem:custom-element:has-template",HASBEEN_TEMPLATED_VAR="pacem:custom-element:has-templated",INSTANCE_PROMISE_VAR="pacem:custom-element:promise",INSTANCE_READY_VAR="pacem:custom-element:ready",INSTANCE_ONREADY_VAR="pacem:custom-element:startup";function processBinding(e,t,r){var n=e;const s=t,o=r;var a=GET_VAL$5(n,WATCH_BIND_PREFIX+s);if(a&&a.forEach(e=>{e.dep.element.removeEventListener(PropertyChangeEventName,e.callback,!1)}),Utils.isNull(o)||!0!==GET_VAL$5(e,INSTANCE_READY_VAR))DEL_VAL$4(n,WATCH_BIND_PREFIX+s),DEL_VAL$4(n,HAS_BIND_PREFIX+s);else if(o.pending)SET_VAL$4(n,WATCH_BIND_PREFIX+s,[]);else{let e="oneway";switch(o.dependencies&&o.dependencies.length&&o.dependencies[0].mode){case"twoway":1==o.dependencies.length&&(e="twoway");break;case"once":e="once"}SET_VAL$4(n,HAS_BIND_PREFIX+s,e);const t=o.dependencies.map(e=>{var t={dep:e,callback:function(t){t.detail.propertyName===e.property&&(n[s]=o.evaluate())}};return e.element.addEventListener(PropertyChangeEventName,t.callback,!1),t});SET_VAL$4(n,WATCH_BIND_PREFIX+s,t),n[s]=o.evaluate()}}function retrieveTemplateAndWaitForDOMReady(e){var t=DeferPromise.defer();const r=e=>{Utils.isDOMReady()?t.resolve(e):Utils.onDOMReady(r=>{t.resolve(e)})};if(e.template)r(e.template);else if(e.templateUrl){(new Http).get(e.templateUrl).success(t=>{let n=e.template=t.text;return r(n),t}).error(e=>{console.error(e.message),r(null)})}else r(null);return t.promise}function retrieveDescendantTemplateActivationPromises(e,t){const r=document.createTreeWalker(t,NodeFilter.SHOW_ELEMENT);for(var n=[];r.nextNode();){var s=r.currentNode;if(!0===GET_VAL$5(s.constructor,HAS_TEMPLATE_VAR)){var o=GET_VAL$5(s,INSTANCE_PROMISE_VAR,DeferPromise.defer());n.push(o.promise)}}return n}const CustomElement=e=>t=>{if(Utils.customElements.get(e.tagName))console.warn(`${e.tagName} registration skipped, since already defined.`);else{var r=CustomElementUtils.getWatchedProperties(t,!0);if(SET_VAL$4(t,HAS_TEMPLATE_VAR,!(Utils.isNullOrEmpty(e.template)&&Utils.isNullOrEmpty(e.templateUrl))),r&&r.length>0){const e="observedAttributes";var n=[];t.hasOwnProperty(e)&&(n=t[e].slice(),delete t[e]);let o=n;for(var s of r){let e=CustomElementUtils.camelToKebab(s.name);o.unshift(e)}Object.defineProperty(t,e,{get:function(){return o},enumerable:!0,configurable:!1})}{const n=t.prototype,s=Object.getOwnPropertyDescriptor(n,"connectedCallback")||n.connectedCallback,o=Object.getOwnPropertyDescriptor(n,"viewActivatedCallback")||n.viewActivatedCallback;Object.defineProperty(n,"connectedCallback",{value:function(){const t=this;t.setAttribute("pacem",""),t.setAttribute("cloak",""),DEL_VAL$4(t,INSTANCE_CHILDREN_VAR),s&&s.value?s.value.apply(t,[]):"function"==typeof s&&s.apply(t),retrieveTemplateAndWaitForDOMReady(e).then(n=>{if(!t.isConnected)return;var s=[];if(!0!==GET_VAL$5(t,INSTANCE_READY_VAR)&&!Utils.isNullOrEmpty(n)&&1!=GET_VAL$5(t,HASBEEN_TEMPLATED_VAR)){SET_VAL$4(t,HASBEEN_TEMPLATED_VAR,!0);const r=t,o=e.shadow,m=document.createElement("template").content,d=document.createElement("template");if(!o)for(var a=r.childNodes.length-1;a>=0;a--)m.insertBefore(r.childNodes.item(a),m.firstChild);d.innerHTML=n;const p=d.content.querySelectorAll(P+"-content");if(CustomElementUtils.assignHostContext(t,d),1==p.length){const e=p.item(0);var i=e.nextSibling;const t=e.parentElement||d.content,r=m.childNodes;for(t.removeChild(e);r.length>0;)try{let e=r.item(0);t.insertBefore(e,i)}catch(e){console.error(e.toString())}}else if(p.length>1)throw"There can only be at most 1 content placeholder inside a template.";var l;if(e.shadow)(l=r.attachShadow({mode:"open"})).appendChild(d.content);else{l=r;for(var c=d.content.children;c.length>0;)l.append(c.item(0))}s=retrieveDescendantTemplateActivationPromises(t,l)}SET_VAL$4(t,INSTANCE_READY_VAR,!0);for(let e of r){const r=e.name,n=e.config;if(!n.converter.retryConversionWhenReady||!Utils.isNull(t[r]))continue;const s=CustomElementUtils.camelToKebab(r),o=t.getAttribute(s);Utils.isNullOrEmpty(o)||CustomElementUtils.isBindingAttribute(o)||(t[r]=n.converter.convert(o,t))}(GET_VAL$5(t,INSTANCE_ONREADY_VAR)||[]).forEach(e=>{e.apply(t)});(GET_VAL$5(t,INSTANCE_BINDINGS_VAR)||[]).forEach(e=>{const r=e;if(!(r in t.attributes))throw`Howcome? ${r} not in ${t.constructor.name} attributes!?...`;const n=t.attributes[r].value;if(CustomElementUtils.isBindingAttribute(n)){var s=CustomElementUtils.parseBindingAttribute(n,t);processBinding(t,CustomElementUtils.kebabToCamel(e),s)}});t.removeAttribute("cloak"),Promise.all(s).then(e=>(()=>{o&&o.value?o.value.apply(t,[]):"function"==typeof o&&o.apply(t);var e=GET_VAL$5(t,INSTANCE_PROMISE_VAR);Utils.isNull(e)||e.resolve()})())})},configurable:!0,enumerable:!0});const a=Object.getOwnPropertyDescriptor(n,"disconnectedCallback")||n.disconnectedCallback;Object.defineProperty(n,"disconnectedCallback",{value:function(){const e=this;a&&a.value?a.value.apply(e,[]):"function"==typeof a&&a.apply(e,[]),SET_VAL$4(e,INSTANCE_READY_VAR,!1);(GET_VAL$5(e,INSTANCE_BINDINGS_VAR)||[]).forEach(t=>{processBinding(e,CustomElementUtils.kebabToCamel(t))})},configurable:!0,enumerable:!0});const i=Object.getOwnPropertyDescriptor(n,"attributeChangedCallback")||n.attributeChangedCallback;Object.defineProperty(n,"attributeChangedCallback",{value:function(e,t,n){const s=this,o=!0===GET_VAL$5(s,INSTANCE_READY_VAR);i&&i.value?i.value.apply(s,[e,t,n]):"function"==typeof i&&i.apply(s,[e,t,n]);const a=new AttributeChangeEvent({attributeName:e,oldValue:t,currentValue:n,firstChange:!o});s.dispatchEvent(a);const l=CustomElementUtils.isBindingAttribute(n),c=e,m=CustomElementUtils.kebabToCamel(c);if(l){let e=CustomElementUtils.parseBindingAttribute(n,s);if(!(e instanceof Expression))throw`Howcome? ${n} misinterpreted as ${c} binding...`;{const t=()=>{s[m]=e.evaluate(),processBinding(s,m)},r=()=>{GET_VAL$5(s,INSTANCE_BINDINGS_VAR,[]).push(c),e.pending||processBinding(s,m,e)};if(e.independent)try{t()}catch(e){console.warn(`Error occurred in early binding evaluation:\n${n}\n${e.message??e}`),r()}else r()}}else{var d=r.find(e=>e.name===m);Utils.isNull(d)||(processBinding(s,m),s[m]=d.config.converter.convert(n,s))}},configurable:!0,enumerable:!0});const l=Object.getOwnPropertyDescriptor(n,"propertyChangedCallback")||n.propertyChangedCallback;Object.defineProperty(n,"propertyChangedCallback",{value:function(e,t,n,s,o){const a=this,i=!0===GET_VAL$5(a,INSTANCE_READY_VAR),c=()=>{const s=GET_VAL$5(a,HAS_BIND_PREFIX+e);if(l&&l.value?l.value.apply(a,[e,t,n,!i]):"function"==typeof l&&l.apply(a,[e,t,n,!i]),!o||!1!==o.emit){const r=new PropertyChangeEvent({propertyName:e,oldValue:t,currentValue:n,firstChange:!i});a.dispatchEvent(r)}if(Utils.isNullOrEmpty(s)){var c=r.find(t=>t.name===e);if(o&&!0===o.reflectBack&&!CustomElementUtils.polyfilling){var m,d=CustomElementUtils.camelToKebab(e),p=a.attributes.getNamedItem(d);if(i||Utils.isNullOrEmpty(p))if(null==n)a.removeAttribute(d);else if(c&&(m=c.config)&&"function"==typeof m.converter.convertBack){const e=m.converter.convertBack(n,a);null!=p&&e===p.value||a.setAttribute(d,e)}}}else if("twoway"===s){const t=GET_VAL$5(a,WATCH_BIND_PREFIX+e)[0].dep;CustomElementUtils.set(t.element,t.path,n)}else"once"===s&&processBinding(a,e)};i?c.apply(a):GET_VAL$5(a,INSTANCE_ONREADY_VAR,[]).push(c)},configurable:!0,enumerable:!0})}Utils.customElements.define(e.tagName,t,e.options),Utils.customElements.whenDefined(e.tagName).then(()=>{})}},DefaultPropertyConverter=PropertyConverters.None;function Watch(e){return(t,r,n)=>{GET_VAL$5(t.constructor,WATCH_PROPS_VAR,[]).push({name:r,config:Utils.extend({emit:!0,converter:DefaultPropertyConverter},e)});const s=DefaultComparer,o=n&&n.set,a=WATCH_PROP_PREFIX+r,i=WATCH_VERS_PROP,l=WATCH_VERS_PROP+":"+r;function c(){return GET_VAL$5(this,a)}function m(t,n,s){const o=this,i=e&&e.debounce;let l;if("function"==typeof(l=o.propertyChangedCallback)){let s=()=>l.apply(o,[t,n,GET_VAL$5(o,a),!1,e]);"number"==typeof i&&i>0?(clearTimeout(this["_handle_"+r]),this["_handle_"+r]=setTimeout(s,i)):!0===i?(cancelAnimationFrame(this["_handle_"+r]),this["_handle_"+r]=requestAnimationFrame(s)):s()}}function d(e){const t=this;if(e=e||t[r],!0===GET_VAL$5(e,"pacem:array:decorated"))return;SET_VAL$4(e,"pacem:array:decorated",!0);const n=Array.prototype,s={splice:n.splice,pop:n.pop,copyWithin:n.copyWithin,push:n.push,shift:n.shift,unshift:n.unshift};for(let n in s){let o=n;e[o]=function(...e){const n=s[o].apply(this,e);return SET_VAL$4(this,i,Date.now()),m.call(t,r,this,this),n}}}function p(e,t){const n=this,o=Utils.isArray(t);(!s(e,t)||o&&GET_VAL$5(t,i)!==GET_VAL$5(n,l))&&(SET_VAL$4(n,a,t),o&&(SET_VAL$4(n,l,GET_VAL$5(t,i)),d.call(n,t)),m.call(n,r,e,t))}if(o)n.set=function(e){const t=this,n=t[r];o.call(t,e);const s=t[r];p.call(t,n,s)};else{try{t.ownerDocument&&(t[a]=t[r])}catch(e){}delete t[r]&&Object.defineProperty(t,r,{get:function(){return c.call(this)},set:function(e){const t=GET_VAL$5(this,a);p.call(this,t,e)},enumerable:!0,configurable:!0})}}}function ViewChild(e){return(t,r,n)=>{const s=`${r}_${Utils.uniqueCode()}`;function o(){const t=this,r=(t.shadowRoot||t).querySelectorAll(e);for(let e=0;e<r.length;e++){let n=r.item(e);if(GET_VAL$5(n,INSTANCE_HOST_VAR)===t)return n}return null}function a(){const e=GET_VAL$5(this,INSTANCE_CHILDREN_VAR,{});return e[s]=e[s]||o.call(this)}delete t[r]&&Object.defineProperty(t,r,{get:function(){return a.call(this)},enumerable:!0,configurable:!0})}}function Concurrent(){return function(e,t,r){const n=r.value,s=`pacem:concurrent-buffer:${t}`,o=`pacem:concurrent-running:${t}`;r.value=function(...e){var t=this,r=CustomElementUtils.getAttachedPropertyValue(t,s,[]);if(CustomElementUtils.getAttachedPropertyValue(t,o,!1)){let t=DeferPromise.defer();return e.push(t),r.push(e),t.promise}var a,i=n.apply(t,e);if((a=i)&&"function"==typeof a.then){let s=e&&e.length>0&&e[e.length-1];return s&&s.promise instanceof DeferPromise?e.pop():s=DeferPromise.defer(),CustomElementUtils.setAttachedPropertyValue(t,o,!0),i.then(e=>{s.resolve(e),CustomElementUtils.setAttachedPropertyValue(t,o,!1),r.length>0&&n.apply(t,r.shift())},e=>{CustomElementUtils.setAttachedPropertyValue(t,o,!1),s.reject(e)}),s.promise}return i}}}function Debounce(e=50,t=(e,...t)=>`pacem:debouncer:${e}`){return function(r,n,s){const o=s.value;!0===e?s.value=function(...e){const r=t(n,...e);var s=this;cancelAnimationFrame(GET_VAL$5(s,r)),SET_VAL$4(s,r,requestAnimationFrame(()=>{o.apply(s,e)}))}:e>0&&(s.value=function(...r){const s=t(n,...r);var a=this;clearTimeout(GET_VAL$5(a,s,0)),SET_VAL$4(a,s,setTimeout(()=>{o.apply(a,r)},e))})}}function Throttle(e=50,t=(e,...t)=>`pacem:throttler:${e}`){return function(r,n,s){const o=s.value;s.value=function(...r){const s=t(n,...r),a=`${s}:args`,i=this,l=()=>{DEL_VAL$4(i,s);const e=GET_VAL$5(i,a);DEL_VAL$4(i,a),e&&o.apply(i,r)};Utils.isNull(GET_VAL$5(i,s))?(SET_VAL$4(i,s,1),o.apply(i,r),!0===e?requestAnimationFrame(l):e>0&&setTimeout(l,e)):SET_VAL$4(i,a,r??["pacem"])}}}let Transforms$1=class Transforms{static register(e,t){let r=Utils.core;const n=(e||t.name).split(".");for(let e of n.slice(0,-1))r=r[e]||(r[e]={});const s=n[n.length-1]||t.name;Utils.isNull(r[s])?r[s]=t:console.warn(`A transform named ${s} already exists in this set.`)}};function Transformer(e){return function(t,r,n){const s=n.value;Transforms$1.register(e,s)}}var __decorate$I=function(e,t,r,n){var s,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(s=e[i])&&(a=(o<3?s(a):o>3?s(t,r,a):s(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a};class PacemEventTarget extends HTMLElement{constructor(){super(),this._isReady=!1,this.emitHandler=e=>{this.disabled||this.emit(e)}}emit(e){e.defaultPrevented||this._emitCore(e)}_emitCore(e){var t=`on-${e.type.toLowerCase()}`;if(t in this.attributes){this.log(LogLevel.Debug,`Calling ${t} handler for event ${e.type}`);var r=this.attributes[t].value,n=Expression.parse(r,this);Utils.isNull(n)||!0===n.pending||n.evaluatePlus({$event:e})}}handle(e,t){"string"==typeof e&&(e=Utils.isNull(t)?new Event(e,{cancelable:!1}):new CustomEvent(e,{cancelable:!1,detail:t})),this.emit(e)}get isReady(){return this._isReady}connectedCallback(){CustomElementUtils.setAttachedPropertyValue(this,INSTANCE_SCOPE_VAR,CustomElementUtils.findScopeContext(this)),this.log(LogLevel.Debug,"Connected.")}disconnectedCallback(){this._isReady=!1,this.dispatchEvent(new Event("unload")),CustomElementUtils.deleteAttachedPropertyValue(this,INSTANCE_SCOPE_VAR),this.log(LogLevel.Debug,"Disconnected.")}viewActivatedCallback(){this._isReady=!0,this.log(LogLevel.Debug,"Loaded (view activated)."),this.dispatchEvent(new Event("load"))}propertyChangedCallback(e,t,r,n){n?this.log(LogLevel.Log,`Property "${e}" changed at start-up`):this.log(LogLevel.Log,`Property "${e}" changed from ${t} to ${r}`)}dispatchEvent(e){if(this.disabled)return!1;this.log(LogLevel.Log,`Dispatching event "${e.type}"`);const t=super.dispatchEvent(e);return this.emit(e),t}log(e,t,r=this.localName+(this.id?"#"+this.id:"")){this.logger&&"function"==typeof this.logger.log&&this.logger.log(e,t,r)}refreshBindings(){for(let e=0;e<this.attributes.length;e++){let t=this.attributes.item(e);if(!CustomElementUtils.isBindingAttribute(t.value))continue;let r=CustomElementUtils.kebabToCamel(t.name),n=CustomElementUtils.parseBindingAttribute(t.value,this);this[r]=n.evaluate()}}}__decorate$I([Watch({reflectBack:!0,converter:PropertyConverters.Boolean})],PacemEventTarget.prototype,"disabled",void 0),__decorate$I([Watch({emit:!1,converter:PropertyConverters.Element})],PacemEventTarget.prototype,"logger",void 0);var __decorate$H=function(e,t,r,n){var s,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(s=e[i])&&(a=(o<3?s(a):o>3?s(t,r,a):s(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a};const RepeaterItemCreateEventName="repeateritemcreate",RepeaterItemRemoveEventName="repeateritemremove";class RepeaterItemEvent extends CustomTypedEvent{constructor(e,t){super(e,t)}}class RepeaterItemCreateEvent extends RepeaterItemEvent{constructor(e){super(RepeaterItemCreateEventName,e)}}class RepeaterItemRemoveEvent extends RepeaterItemEvent{constructor(e){super(RepeaterItemRemoveEventName,e)}}const STD_EVENTS=["keydown","keyup","click","focus","blur","dblclick","mouseover","mouseout","mouseenter","mouseleave","mousedown","pointerdown","mouseup","pointerup","mousemove","contextmenu","wheel"];class ElementAriaAttributes{constructor(e,t){this._element=e,this._aria=Utils.extend({},t||{})}toObject(){return Utils.extend({},this._aria)}set(e,t){this._aria[e]=t;const r=this._element;r.isConnected&&r.setAttribute("aria-"+e,t)}remove(e){delete this._aria[e];const t=this._element;t.isConnected&&t.removeAttribute("aria-"+e)}}class ElementAria{constructor(e,t,r){this._element=e,this._aria={role:t,attrs:new ElementAriaAttributes(e,r)}}get role(){return this._aria.role}set role(e){this._aria.role=e;const t=this._element;t.isConnected&&(Utils.isNullOrEmpty(e)?t.removeAttribute("role"):t.setAttribute("role",e))}get attributes(){return this._aria.attrs}}class PacemElement extends PacemEventTarget{constructor(e,t){super(),this.#l=[],this.#c=[],this._tabIndex=-1,this.behaviors=[],this._aria=new ElementAria(this,e,t)}get aria(){return this._aria}static#m=null;static get emittedEventTypes(){return this.#m??=Utils.readonlyCopy(STD_EVENTS)}#l;#c;connectedCallback(){super.connectedCallback(),Utils.isNullOrEmpty(this._aria.role)||this.setAttribute("role",this._aria.role);let e=this._aria.attributes.toObject();if(!Utils.isNullOrEmpty(e))for(let t in e)this.setAttribute("aria-"+t,e[t])}viewActivatedCallback(){for(var e of(super.viewActivatedCallback(),STD_EVENTS.forEach(e=>{this.addEventListener(e,this.emitHandler,!1)}),this.behaviors||[]))e.register(this)}disconnectedCallback(){for(var e of this.behaviors||[])e.unregister(this);STD_EVENTS.forEach(e=>{this.removeEventListener(e,this.emitHandler,!1)}),super.disconnectedCallback()}propertyChangedCallback(e,t,r,n){switch(super.propertyChangedCallback(e,t,r,n),e){case"css":for(var s in this.css)this.style.setProperty(s,this.css[s]);break;case"cssClass":if(Utils.isArray(this.cssClass)){const e=this.cssClass;for(let e of this.#l.splice(0))Utils.removeClass(this,e);for(let t of e)this.#l.push(t),Utils.addClass(this,t)}else for(let e in this.cssClass)Utils.toggleClass(this,e,this.cssClass[e]);break;case"cssPart":const o=this.cssPart,a=this.#c;if(Utils.isArray(o)){const e=o;for(let e of a.splice(0))Utils.removePart(this,e);for(let t of e)a.push(t),Utils.addPart(this,t)}else for(let e in o)Utils.togglePart(this,e,o[e]);break;case"hide":const i=PCSS+"-hiding";if(r){const e=this,r=PCSS+"-anim",n=()=>{e.setAttribute("hidden",""),e.aria.attributes.set("hidden","true")};Utils.hasClass(e,r)&&!Utils.isNull(t)?(Utils.removeClass(e,r),requestAnimationFrame(()=>{Utils.addClass(e,i),Utils.addClass(e,r),Utils.waitForAnimationEnd(e,250).then(t=>{e.hide&&n(),Utils.removeClass(e,i)})})):n()}else Utils.removeClass(this,i),this.removeAttribute("hidden"),this.aria.attributes.remove("hidden");break;case"tooltip":this.title=r,Utils.isNullOrEmpty(r)?this.aria.attributes.remove("label"):this.aria.attributes.set("label",r);break;case"tabOrder":this._tabIndex=r,this.disabled||(this.tabIndex=r);break;case"behaviors":if(!Utils.isNullOrEmpty(t))for(let e of t)e.unregister(this);if(!Utils.isNullOrEmpty(r)&&!n)for(let e of r)e.register(this);break;case"disabled":let l=PCSS+"-"+e;r?(this._tabIndex=this.tabIndex,this.tabIndex=-1,Utils.addClass(this,l)):(this.tabIndex=this._tabIndex,Utils.removeClass(this,l));break;case"culture":Utils.isNullOrEmpty(r)?this.removeAttribute("lang"):this.setAttribute("lang",r),n||this.refreshBindings()}}}__decorate$H([Watch({emit:!1,converter:PropertyConverters.Json})],PacemElement.prototype,"cssClass",void 0),__decorate$H([Watch({emit:!1,converter:PropertyConverters.Json})],PacemElement.prototype,"cssPart",void 0),__decorate$H([Watch({emit:!1,converter:PropertyConverters.Json})],PacemElement.prototype,"css",void 0),__decorate$H([Watch({emit:!1,converter:PropertyConverters.Boolean})],PacemElement.prototype,"hide",void 0),__decorate$H([Watch({emit:!1,converter:PropertyConverters.String})],PacemElement.prototype,"tooltip",void 0),__decorate$H([Watch({emit:!1,converter:PropertyConverters.Number})],PacemElement.prototype,"tabOrder",void 0),__decorate$H([Watch({converter:PropertyConverters.String})],PacemElement.prototype,"culture",void 0),__decorate$H([Watch({emit:!1})],PacemElement.prototype,"behaviors",void 0);class PacemContentElement extends PacemElement{propertyChangedCallback(e,t,r,n){super.propertyChangedCallback(e,t,r,n),"content"!==e||n||this._fillContent(r)}_isContentNullOrEmpty(e=this.content){return Utils.isNullOrEmpty(e)||e instanceof DocumentFragment&&0===e.childElementCount}viewActivatedCallback(){super.viewActivatedCallback(),this._original=Array.from(this.children),this._isContentNullOrEmpty()||this._fillContent()}disconnectedCallback(){Utils.isNullOrEmpty(this._original)||(this.innerHTML="",Element.prototype.append.apply(this,this._original)),super.disconnectedCallback()}_fillContent(e=this.content){const t=this.sanitize(e);Utils.isNullOrEmpty(t)?this.innerHTML="":t instanceof Node?(this.innerHTML="",this.append(t)):this.innerHTML=t}}__decorate$H([Watch({emit:!1,converter:PropertyConverters.String})],PacemContentElement.prototype,"content",void 0);class PacemUnsafeContentElement extends PacemContentElement{sanitize(e){return e}}class PacemSafeContentElement extends PacemContentElement{_sanitizeLegacy(e){if(Utils.isNullOrEmpty(e))return e;if(e instanceof Node){for(let t=e.childNodes.length-1;t>=0;t--){const r=e.childNodes.item(t);r instanceof HTMLScriptElement?r.remove():this.sanitize(r)}return e}{const t=/<script.+<\/script>/g;return(e||"").toString().replace(t,"")}}sanitize(e){return this._sanitizeLegacy(e)}}class PacemAdapter extends PacemElement{constructor(){super(...arguments),this._propertyChangeHandler=e=>{this.masterPropertyChangedCallback(e.detail.propertyName,e.detail.oldValue,e.detail.currentValue,e.detail.firstChange)}}get master(){return this._element}get initialized(){return!Utils.isNull(this._element)}masterPropertyChangedCallback(e,t,r,n){switch(e){case"items":this._adjustFocusIndex();break;case"index":this._element.dispatchEvent(new CurrentIndexChangeEvent({currentIndex:r,previousIndex:t}))}}itemPropertyChangedCallback(e,t,r,n,s){}initializeCallback(){}destroyCallback(){}initialize(e){null!=this._element&&this.destroy(),null!=e&&(this._element=e,this._element.addEventListener(PropertyChangeEventName,this._propertyChangeHandler,!1)),this.initializeCallback()}destroy(){null!=this._element&&this._element.removeEventListener(PropertyChangeEventName,this._propertyChangeHandler,!1),this.destroyCallback()}disconnectedCallback(){this.destroy(),super.disconnectedCallback()}_adjustFocusIndex(){let e=this._element.items;const t=this._element.index,r=e&&e.length,n=r?Math.max(0,Math.min(r-1,t)):-1,s=this._getAvailable(n);this._element.index=s}_getNextAvailable(e){return this._getAvailable(e,1)}_getPreviousAvailable(e){return this._getAvailable(Math.max(0,e),-1)}_getAvailable(e=this._element&&this._element.index,t=0){let r,n=this._element.items;if(!(n&&(r=n.length)>0))return-1;let s,o=((e%=r)+t+r)%r;for(t=t||-1;(s=n[o])instanceof PacemEventTarget&&!0===s.disabled||s instanceof PacemElement&&!0===s.hide;)if(o=(o+t+r)%r,o==e)return-1;return o}isClose(e){const t=this._getAvailable();return e===t||e===this._getPreviousAvailable(t)||e===this._getNextAvailable(t)}isPrevious(e){const t=this._getAvailable();return e===this._getPreviousAvailable(t)}isNext(e){const t=this._getAvailable();return e===this._getNextAvailable(t)}select(e){this._element.index=this._getAvailable(e)}previous(e=!0){var t=this._getPreviousAvailable(this._element.index);t>=0&&(e||this._element.index>t)&&(this._element.index=t)}next(e=!0){var t=this._getNextAvailable(this._element.index);t>=0&&(e||this._element.index<t)&&(this._element.index=t)}}var __decorate$G=function(e,t,r,n){var s,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(s=e[i])&&(a=(o<3?s(a):o>3?s(t,r,a):s(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a};let PacemAnnihilatorElement=class PacemAnnihilatorElement extends HTMLElement{constructor(){super()}connectedCallback(){this.remove()}};PacemAnnihilatorElement=__decorate$G([CustomElement({tagName:P+"-annihilator"})],PacemAnnihilatorElement);var __decorate$F=function(e,t,r,n){var s,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(s=e[i])&&(a=(o<3?s(a):o>3?s(t,r,a):s(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a};let PacemBeforeunloadElement=class PacemBeforeunloadElement extends PacemEventTarget{constructor(){super(...arguments),this._unloadingHandler=e=>{const t=this.message;this.active&&!this.disabled&&("beforeunload"===e.type?(e.preventDefault(),e.returnValue=t||""):confirm(t||"Leave page?")||e.preventDefault())}}viewActivatedCallback(){super.viewActivatedCallback(),window.addEventListener("navigating",this._unloadingHandler,!1),window.addEventListener("beforeunload",this._unloadingHandler,!1)}disconnectedCallback(){window.removeEventListener("navigating",this._unloadingHandler,!1),window.removeEventListener("beforeunload",this._unloadingHandler,!1),super.disconnectedCallback()}};__decorate$F([Watch({emit:!1,converter:PropertyConverters.String})],PacemBeforeunloadElement.prototype,"message",void 0),__decorate$F([Watch({emit:!1,converter:PropertyConverters.Boolean})],PacemBeforeunloadElement.prototype,"active",void 0),PacemBeforeunloadElement=__decorate$F([CustomElement({tagName:P+"-beforeunload"})],PacemBeforeunloadElement);var __decorate$E=function(e,t,r,n){var s,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(s=e[i])&&(a=(o<3?s(a):o>3?s(t,r,a):s(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a};let PacemBroadcastChannelProxyElement=class PacemBroadcastChannelProxyElement extends PacemEventTarget{constructor(){super(...arguments),this.autosend=!0,this._messageHandler=e=>{this.result=e.data,this.dispatchEvent(new CustomEvent("receive",{detail:e.data,bubbles:!1,cancelable:!1}))},this._errorHandler=e=>{this.dispatchEvent(new CustomEvent("error",{detail:e.data,bubbles:!1,cancelable:!1}))}}viewActivatedCallback(){super.viewActivatedCallback(),this._initializeChannel()}propertyChangedCallback(e,t,r,n){if(super.propertyChangedCallback(e,t,r,n),!n)switch(e){case"src":this._disposeChannel(),this._initializeChannel(r);break;case"autosend":case"disabled":case"message":this.autosend&&this.send(this.message)}}disconnectedCallback(){this._disposeChannel(),super.disconnectedCallback()}send(e=this.message){if(this.disabled)return;const t=this.#d;Utils.isNull(t)||t.postMessage(e)}#d;_initializeChannel(e=this.channelName){if(!Utils.isNullOrEmpty(e)){const t=this.#d=new BroadcastChannel(e);t.addEventListener("message",this._messageHandler,!1),t.addEventListener("messageerror",this._errorHandler,!1),this.autosend&&!Utils.isNull(this.message)&&this.send()}}_disposeChannel(e=this.#d){Utils.isNull(e)||(e.removeEventListener("messageerror",this._errorHandler,!1),e.removeEventListener("message",this._messageHandler,!1),e.close())}};__decorate$E([Watch({emit:!1,converter:PropertyConverters.String})],PacemBroadcastChannelProxyElement.prototype,"message",void 0),__decorate$E([Watch({converter:PropertyConverters.String})],PacemBroadcastChannelProxyElement.prototype,"result",void 0),__decorate$E([Watch({emit:!1,converter:PropertyConverters.String})],PacemBroadcastChannelProxyElement.prototype,"channelName",void 0),__decorate$E([Watch({emit:!1,reflectBack:!0,converter:PropertyConverters.Boolean})],PacemBroadcastChannelProxyElement.prototype,"autosend",void 0),PacemBroadcastChannelProxyElement=__decorate$E([CustomElement({tagName:P+"-broadcastchannel-proxy"})],PacemBroadcastChannelProxyElement);var __decorate$D=function(e,t,r,n){var s,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(s=e[i])&&(a=(o<3?s(a):o>3?s(t,r,a):s(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a};let PacemBrowserDetectElement=class PacemBrowserDetectElement extends PacemEventTarget{viewActivatedCallback(){super.viewActivatedCallback(),this._detect()}propertyChangedCallback(e,t,r,n){super.propertyChangedCallback(e,t,r,n),"userAgent"===e&&this._detect(r)}#p;#h;get browser(){return this.#p}get version(){return this.#h}_detect(e=this.userAgent){const{version:t,name:r}=pacemFoundation.detect(e),{browser:n,version:s}=this;r!=n&&(this.#p=r,this.dispatchEvent(new PropertyChangeEvent({propertyName:"browser",currentValue:r,oldValue:n}))),t!=s&&(this.#h=t,this.dispatchEvent(new PropertyChangeEvent({propertyName:"version",currentValue:t,oldValue:s})))}};__decorate$D([Watch({emit:!1,converter:PropertyConverters.String})],PacemBrowserDetectElement.prototype,"userAgent",void 0),PacemBrowserDetectElement=__decorate$D([CustomElement({tagName:P+"-browser-detect"})],PacemBrowserDetectElement);const EXPIRATION_FIELD="_exp";class Storage{_getStorage(e){return e?window.localStorage:window.sessionStorage}_parseValue(e,t){const r=e.getItem(t);if(Utils.isNullOrEmpty(r))return null;const n=Utils.Json.parse(r);if(!Object.hasOwnProperty(EXPIRATION_FIELD))return n;return n[EXPIRATION_FIELD]<Date.now()?(e.removeItem(t),null):n.value}setPropertyValue(e,t,r){var n=this._getStorage(!0===r||"number"==typeof r&&r>0),s=t;if("number"==typeof r&&r>0){const e=Date.now()+1e3*r;(s={value:t})[EXPIRATION_FIELD]=e}n.setItem(e,Utils.Json.stringify(s)),(n=this._getStorage(!r)).removeItem(e)}getPropertyValue(e){return this._parseValue(this._getStorage(!1),e)||this._parseValue(this._getStorage(!0),e)}clear(){var e=this._getStorage(!0);e.clear(),(e=this._getStorage(!1)).clear()}removeProperty(e){var t=this._getStorage(!0);t.removeItem(e),(t=this._getStorage(!1)).removeItem(e)}}var __decorate$C=function(e,t,r,n){var s,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(s=e[i])&&(a=(o<3?s(a):o>3?s(t,r,a):s(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a};let PacemDataElement=class PacemDataElement extends PacemEventTarget{constructor(e=new Storage){super(),this.storage=e,this._handle=0,this._flag=!1}propertyChangedCallback(e,t,r,n){switch(super.propertyChangedCallback(e,t,r,n),e){case"persistAs":Utils.isNullOrEmpty(t)||this.storage.removeProperty(t),!0!==n||Utils.isNullOrEmpty(r)||(this.model=this.storage.getPropertyValue(r)??this.model);break;case"model":const s=this.debounce,o=this.throttle,a=()=>{this.dispatchEvent(new PropertyChangeEvent({propertyName:e,oldValue:t,currentValue:r,firstChange:n}))};if(s>0&&!n)if(o){if(this._flag)return;this._flag=!0,a(),this._handle=window.setTimeout(()=>{this._flag=!1},s)}else clearTimeout(this._handle),this._handle=window.setTimeout(a,s);else a();n||Utils.isNullOrEmpty(this.persistAs)||(Utils.isNull(r)?this.storage.removeProperty(this.persistAs):this.storage.setPropertyValue(this.persistAs,r,!0))}}};__decorate$C([Watch({emit:!1,converter:PropertyConverters.Eval})],PacemDataElement.prototype,"model",void 0),__decorate$C([Watch({emit:!1,converter:PropertyConverters.String})],PacemDataElement.prototype,"persistAs",void 0),__decorate$C([Watch({emit:!1,converter:PropertyConverters.Number})],PacemDataElement.prototype,"debounce",void 0),__decorate$C([Watch({emit:!1,converter:PropertyConverters.BooleanStrict})],PacemDataElement.prototype,"throttle",void 0),PacemDataElement=__decorate$C([CustomElement({tagName:P+"-data"})],PacemDataElement);var __decorate$B=function(e,t,r,n){var s,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(s=e[i])&&(a=(o<3?s(a):o>3?s(t,r,a):s(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a},DockMode;!function(e){e.Top="top",e.Bottom="bottom"}(DockMode||(DockMode={}));let PacemDockElement=class PacemDockElement extends PacemEventTarget{constructor(e=new TweenService){super(),this._tweener=e,this.mode=DockMode.Top,this.transitionDuration=300}propertyChangedCallback(e,t,r,n){super.propertyChangedCallback(e,t,r,n),"dock"!==e||Utils.isNull(t)&&0==r?"mode"===e&&!0===this.dock&&this._doDock():this._doDock()}_animate(e,t){var r=this.transitionDuration;return r>0||(r=300),this._tweener.run(e,t,r,this.delay,Easings.sineInOut,(e,t)=>{this._setOffset(t)}).then(()=>{this._resetOffset()})}_setOffset(e){this.style.transform="translateY("+e+"px)"}_resetOffset(){this.style.transform=""}_compute(){const e=Utils.offset(this),t=getComputedStyle(this),r=Utils.scrollTop;switch(this.mode){case DockMode.Bottom:const n=parseInt(t.marginBottom),s=e.top;return{delta:Utils.windowSize.height-(s-r+this.offsetHeight)+n};case DockMode.Top:const o=parseInt(t.marginTop);return{delta:-(e.top-r+o)}}}_doDock(){if(this.dock){const e=this._compute();if(Utils.isNull(e))return;switch(Utils.addClass(this,PCSS+"-dock"),this.mode){case DockMode.Bottom:Utils.removeClass(this,PCSS+"-dock-top"),Utils.addClass(this,PCSS+"-dock-bottom");break;case DockMode.Top:Utils.removeClass(this,PCSS+"-dock-bottom"),Utils.addClass(this,PCSS+"-dock-top")}const t=-e.delta,r=0,n=CustomElementUtils.getAttachedPropertyValue(this,"pacem-dock:state")||0;CustomElementUtils.setAttachedPropertyValue(this,"pacem-dock:state",-t+n),this.log(LogLevel.Info,`animating from ${t}px to ${r}px`),this._animate(t,r)}else{const e=CustomElementUtils.getAttachedPropertyValue(this,"pacem-dock:state");CustomElementUtils.deleteAttachedPropertyValue(this,"pacem-dock:state");const t=0;this.log(LogLevel.Info,`animating back from ${e}px to ${t}px`),Utils.removeClass(this,`${PCSS}-dock ${PCSS}-dock-top ${PCSS}-dock-bottom`),this._animate(e,t)}}};__decorate$B([Watch({emit:!1,converter:PropertyConverters.String})],PacemDockElement.prototype,"mode",void 0),__decorate$B([Watch({converter:PropertyConverters.Boolean})],PacemDockElement.prototype,"dock",void 0),__decorate$B([Watch({emit:!1,converter:PropertyConverters.Element})],PacemDockElement.prototype,"target",void 0),__decorate$B([Watch({emit:!1,converter:PropertyConverters.Number})],PacemDockElement.prototype,"delay",void 0),__decorate$B([Watch({emit:!1,converter:PropertyConverters.Number})],PacemDockElement.prototype,"transitionDuration",void 0),PacemDockElement=__decorate$B([CustomElement({tagName:P+"-dock"})],PacemDockElement);var __decorate$A=function(e,t,r,n){var s,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(s=e[i])&&(a=(o<3?s(a):o>3?s(t,r,a):s(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a};class PacemTransferProxyElement extends PacemEventTarget{constructor(){super(...arguments),this._dom=[],this._children=[]}get dom(){return this._children}viewActivatedCallback(){super.viewActivatedCallback(),this.moveContent(this.proxy)}moveContent(e){Utils.isNull(e)||(Utils.isNullOrEmpty(this._dom)?(this._dom=Utils.moveItems(this.childNodes,e),this._children=this._dom.filter(e=>e instanceof Element)):Utils.moveItems(this._children,e))}disconnectedCallback(){for(let e of(this._dom||[]).splice(0))e.remove();super.disconnectedCallback()}}let PacemBodyProxyElement=class PacemBodyProxyElement extends PacemTransferProxyElement{get proxy(){return document.body}};PacemBodyProxyElement=__decorate$A([CustomElement({tagName:P+"-body-proxy"})],PacemBodyProxyElement);let PacemShellProxyElement=class PacemShellProxyElement extends PacemTransferProxyElement{get proxy(){return CustomElementUtils.findAncestorShell(this)}};PacemShellProxyElement=__decorate$A([CustomElement({tagName:P+"-shell-proxy"})],PacemShellProxyElement);let PacemElementProxyElement=class PacemElementProxyElement extends PacemTransferProxyElement{get proxy(){return this.target}propertyChangedCallback(e,t,r,n){super.propertyChangedCallback(e,t,r,n),"target"!==e||n||this.moveContent(this.proxy)}};__decorate$A([Watch({converter:PropertyConverters.Element})],PacemElementProxyElement.prototype,"target",void 0),PacemElementProxyElement=__decorate$A([CustomElement({tagName:P+"-element-proxy"})],PacemElementProxyElement);var __decorate$z=function(e,t,r,n){var s,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(s=e[i])&&(a=(o<3?s(a):o>3?s(t,r,a):s(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a};class EmitEvent extends Event{constructor(e){super("emit"),this._originalEvent=e}get originalEvent(){return this._originalEvent}}const ElementOrWindowConverter={convert:function(e,t){return"$window"===e?window:PropertyConverters.Element.convert(e,t)},convertBack:(e,t)=>e===window?"$window":PropertyConverters.Element.convertBack(e,t)};let PacemEventProxyElement=class PacemEventProxyElement extends PacemEventTarget{constructor(){super(...arguments),this._emitHandler=e=>{var t=new EmitEvent(e);this.dispatchEvent(t)}}viewActivatedCallback(){super.viewActivatedCallback(),this._observe()}propertyChangedCallback(e,t,r,n){if(super.propertyChangedCallback(e,t,r,n),!n)switch(e){case"target":this._unobserve(t,this.event,this.capture),this._observe();break;case"event":this._unobserve(this.target,t,this.capture),this._observe();break;case"capture":this._unobserve(this.target,this.event,t),this._observe()}}disconnectedCallback(){this._unobserve(),super.disconnectedCallback()}_unobserve(e=this.target,t=this.event,r=this.capture){Utils.isNull(e)||Utils.isNullOrEmpty(t)||e.removeEventListener(t,this._emitHandler,{capture:r})}_observe(e=this.target,t=this.event,r=this.capture){Utils.isNull(e)||Utils.isNullOrEmpty(t)||e.addEventListener(t,this._emitHandler,{capture:r})}};__decorate$z([Watch({emit:!1,converter:ElementOrWindowConverter})],PacemEventProxyElement.prototype,"target",void 0),__decorate$z([Watch({emit:!1,converter:PropertyConverters.String})],PacemEventProxyElement.prototype,"event",void 0),__decorate$z([Watch({emit:!1,converter:PropertyConverters.Boolean})],PacemEventProxyElement.prototype,"capture",void 0),PacemEventProxyElement=__decorate$z([CustomElement({tagName:P+"-event-proxy"})],PacemEventProxyElement);var __decorate$y=function(e,t,r,n){var s,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(s=e[i])&&(a=(o<3?s(a):o>3?s(t,r,a):s(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a};const ABORT_MESSAGE="New incoming request overrides the ongoing one. Aborting.";let PacemFetchElement=class PacemFetchElement extends PacemEventTarget{constructor(){super(...arguments),this.autofetch=!0,this.debounce=100}viewActivatedCallback(){super.viewActivatedCallback(),this._delayAndConditionallyFetch()}propertyChangedCallback(e,t,r,n){switch(super.propertyChangedCallback(e,t,r,n),e){case"url":case"method":case"type":case"as":case"mode":case"credentials":case"disabled":case"autofetch":this._delayAndConditionallyFetch();break;case"parameters":case"headers":this.diffByValues&&Utils.jsonSortStringify(t)==Utils.jsonSortStringify(r)||this._delayAndConditionallyFetch()}}_delayAndConditionallyFetch(){clearTimeout(this._handle),this.disabled?this._abortPending():this.autofetch&&(this._handle=setTimeout(()=>{this.fetch()},this.debounce||0))}_abortPending(){this.#u&&(this.#u.abort(ABORT_MESSAGE),this.#u=null)}#u;#v;fetch(){return this.throttle&&this.fetching?this.#v:this.#v=new Promise((e,t)=>{var r=this.url;if(!this.isReady||Utils.isNullOrEmpty(r)||this.disabled)return void e(null);let n=this;n.fetching=!0;let s="application/json";if("raw"===(n.type||"json"))s="application/x-www-form-urlencoded";const o=(n.method||HttpMethod.Get).toUpperCase();let a={headers:Utils.extend({"Content-Type":s},n.headers),method:o,mode:n.mode||"cors",credentials:n.credentials||"same-origin",cache:n.cache||"default"};const i=Utils.clone(n.parameters??{});if(r=Utils.URIs.format(r,i,"GET"==o),!Utils.isNullOrEmpty(i))switch(o){case"GET":r=Utils.URIs.appendQuery(r,i);break;case"PUT":case"POST":case"PATCH":if("raw"===n.type){let e=new URLSearchParams;for(let t in i)e.set(t,i[t]);a.body=e}else a.body=Utils.Json.stringify(i)}if(Utils.URIs.hasMandatoryTemplateSegments(r))return void e(null);this._abortPending();const{signal:l}=this.#u=new AbortController;a.signal=l,fetch(r,a).then(r=>{if(this.#u=null,n.fetching=!1,r.ok){this.dispatchEvent(new CustomEvent(FetchSuccessEventName,{detail:r}));if(Fetcher.isEmpty(r))n.as,n.result=null,e(r);else switch(n.as){case"blob":case"image":r.blob().then(t=>{"image"===n.as?Utils.blobToDataURL(t).then(e=>{n._acceptFetchResult(e)}):n._acceptFetchResult(t),e(r)},t=>{this.log(LogLevel.Warn,`Couldn't parse a ${n.as}. ${t}`),e(null)});break;case"text":r.text().then(t=>{n._acceptFetchResult(t),e(r)});break;default:r.json().then(t=>{n._acceptFetchResult(t),e(r)},t=>{this.log(LogLevel.Warn,`Couldn't parse a ${n.as}. ${t}`),e(null)})}}else this.dispatchEvent(new CustomEvent(FetchErrorEventName,{detail:r})),t(r)},r=>{"string"==typeof r&&r===ABORT_MESSAGE?(this.log(LogLevel.Info,r),e(null)):t(r)})})}_acceptFetchResult(e){this.dispatchEvent(new CustomEvent(FetchResultEventName,{detail:e})),this.result=e}};__decorate$y([Watch({emit:!1,reflectBack:!0,converter:PropertyConverters.String})],PacemFetchElement.prototype,"url",void 0),__decorate$y([Watch({emit:!1,reflectBack:!0,converter:PropertyConverters.String})],PacemFetchElement.prototype,"method",void 0),__decorate$y([Watch({emit:!1,converter:PropertyConverters.Json})],PacemFetchElement.prototype,"parameters",void 0),__decorate$y([Watch({emit:!1,converter:PropertyConverters.Json})],PacemFetchElement.prototype,"headers",void 0),__decorate$y([Watch({emit:!1,converter:PropertyConverters.String})],PacemFetchElement.prototype,"credentials",void 0),__decorate$y([Watch({emit:!1,converter:PropertyConverters.String})],PacemFetchElement.prototype,"mode",void 0),__decorate$y([Watch({emit:!1,converter:PropertyConverters.String})],PacemFetchElement.prototype,"cache",void 0),__decorate$y([Watch({converter:PropertyConverters.BooleanStrict})],PacemFetchElement.prototype,"fetching",void 0),__decorate$y([Watch({reflectBack:!0,converter:PropertyConverters.Boolean})],PacemFetchElement.prototype,"autofetch",void 0),__decorate$y([Watch({emit:!1,converter:PropertyConverters.String})],PacemFetchElement.prototype,"as",void 0),__decorate$y([Watch({emit:!1,converter:PropertyConverters.String})],PacemFetchElement.prototype,"type",void 0),__decorate$y([Watch({reflectBack:!0,converter:PropertyConverters.Number})],PacemFetchElement.prototype,"debounce",void 0),__decorate$y([Watch({emit:!1,reflectBack:!0,converter:PropertyConverters.Number})],PacemFetchElement.prototype,"throttle",void 0),__decorate$y([Watch({emit:!1,reflectBack:!0,converter:PropertyConverters.Boolean})],PacemFetchElement.prototype,"diffByValues",void 0),__decorate$y([Watch()],PacemFetchElement.prototype,"result",void 0),PacemFetchElement=__decorate$y([CustomElement({tagName:P+"-fetch"})],PacemFetchElement);var __decorate$x=function(e,t,r,n){var s,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(s=e[i])&&(a=(o<3?s(a):o>3?s(t,r,a):s(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a};class StateEvent extends CustomEvent{constructor(e,t){super(e,{detail:t})}}let PacemHistoryElement=class PacemHistoryElement extends PacemEventTarget{#E;propertyChangedCallback(e,t,r,n){switch(super.propertyChangedCallback(e,t,r,n),e){case"state":this._handleStateChange(r);break;case"maxlength":const e=this.#E;Utils.isNull(e)||(e.maxlength=r)}}viewActivatedCallback(){super.viewActivatedCallback(),this._handleStateChange()}_handleStateChange(e=this.state){const t=this.#E;Utils.isNull(t)?this.#E=new pacemFoundation.HistoryService(e,this.maxlength):!0!==DefaultComparer(t.current,e)&&(t.push(e),this.log(LogLevel.Log,"Pushed state."),this._synchronize("push"))}redo(){const e=this.#E;Utils.isNull(e)||(e.redo(),this.log(LogLevel.Log,"Redone state."),this._synchronize("redo"))}reset(){const e=this.#E;Utils.isNull(e)||(e.reset(),this.log(LogLevel.Log,"Reset state."),this._synchronize("reset"))}undo(){const e=this.#E;Utils.isNull(e)||(e.undo(),this.log(LogLevel.Log,"Undone state."),this._synchronize("undo"))}_synchronize(e){const t=this.#E;this.canUndo=t.canUndo,this.canRedo=t.canRedo,this.state=t.current;const{canRedo:r,canUndo:n,current:s}=t;this.dispatchEvent(new StateEvent(e,{canRedo:r,canUndo:n,state:s}))}};__decorate$x([Watch({emit:!0,converter:PropertyConverters.Json})],PacemHistoryElement.prototype,"state",void 0),__decorate$x([Watch({emit:!1,converter:PropertyConverters.Number})],PacemHistoryElement.prototype,"maxlength",void 0),__decorate$x([Watch({emit:!0,converter:PropertyConverters.Boolean})],PacemHistoryElement.prototype,"canUndo",void 0),__decorate$x([Watch({emit:!0,converter:PropertyConverters.Boolean})],PacemHistoryElement.prototype,"canRedo",void 0),PacemHistoryElement=__decorate$x([CustomElement({tagName:P+"-history"})],PacemHistoryElement);var __decorate$w=function(e,t,r,n){var s,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(s=e[i])&&(a=(o<3?s(a):o>3?s(t,r,a):s(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a};let PacemHtmlProxyElement=class PacemHtmlProxyElement extends PacemEventTarget{constructor(){super(...arguments),this._html=document.documentElement}propertyChangedCallback(e,t,r,n){super.propertyChangedCallback(e,t,r,n),"attr"===e&&t&&this._html.removeAttribute(t),this._update()}_update(){const e=this.attr;if(Utils.isNullOrEmpty(e)||this.disabled)return;const t=this.value,r=this._html;Utils.isNullOrEmpty(t)?r.removeAttribute(e):r.setAttribute(e,t)}};__decorate$w([Watch({emit:!1,converter:PropertyConverters.String})],PacemHtmlProxyElement.prototype,"attr",void 0),__decorate$w([Watch({emit:!1,converter:PropertyConverters.String})],PacemHtmlProxyElement.prototype,"value",void 0),PacemHtmlProxyElement=__decorate$w([CustomElement({tagName:P+"-html-proxy"})],PacemHtmlProxyElement);var __decorate$v=function(e,t,r,n){var s,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(s=e[i])&&(a=(o<3?s(a):o>3?s(t,r,a):s(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a};let PacemIfElement=class PacemIfElement extends HTMLElement{#g;propertyChangedCallback(e,t,r,n){Utils.isNullOrEmpty(this.#g)&&(this.#g=this.innerHTML),this.innerHTML=r?this.#g:""}};__decorate$v([Watch({emit:!1,converter:PropertyConverters.Boolean})],PacemIfElement.prototype,"match",void 0),PacemIfElement=__decorate$v([CustomElement({tagName:P+"-if"})],PacemIfElement);var __decorate$u=function(e,t,r,n){var s,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(s=e[i])&&(a=(o<3?s(a):o>3?s(t,r,a):s(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a};class PacemItemElement extends PacemElement{get container(){return this._container}findContainer(){return CustomElementUtils.findAncestor(this,e=>e instanceof PacemItemsContainerElement)}viewActivatedCallback(){super.viewActivatedCallback();const e=this._container=this.findContainer();Utils.isNull(e)||e.register(this)}disconnectedCallback(){Utils.isNull(this._container)||this._container.unregister(this),super.disconnectedCallback()}}function isItemsContainer(e){return"items"in e&&(Utils.isNull(e.items)||Utils.isArray(e.items))&&"function"==typeof e.register&&"function"==typeof e.unregister}const ItemRegisterEventName="itemregister",ItemUnregisterEventName="itemunregister";class ItemRegisterEvent extends CustomTypedEvent{constructor(e,t){super(ItemRegisterEventName,e,t)}}class ItemUnregisterEvent extends CustomTypedEvent{constructor(e,t){super(ItemUnregisterEventName,e,t)}}class ItemsContainerRegistrar{constructor(e){if(this._container=e,null==e||!(e instanceof PacemItemsContainerElement||e instanceof PacemCrossItemsContainerElement))throw"Must provide a valid itemscontainer."}register(e){const t=this._container;var r=!1;return t.validate(e)?Utils.isNull(t.items)?(t.items=[e],r=!0):-1===t.items.indexOf(e)&&(t.items.push(e),r=!0):t.logger&&t.logger.log(LogLevel.Debug,`${e&&e.localName} element couldn't be registered in a ${t.localName} element.`),r&&t.dispatchEvent(new ItemRegisterEvent(e)),r}unregister(e){const t=this._container;if(!Utils.isNull(t.items)){const r=t.items.indexOf(e);if(r>=0){let e=t.items.splice(r,1);return t.dispatchEvent(new ItemUnregisterEvent(e[0])),!0}}return!1}}class PacemCrossItemsContainerElement extends PacemItemElement{constructor(e,t){super(e,t),this._registrar=new ItemsContainerRegistrar(this)}register(e){return this._registrar.register(e)}unregister(e){return this._registrar.unregister(e)}}__decorate$u([Watch()],PacemCrossItemsContainerElement.prototype,"items",void 0);class PacemItemsContainerElement extends PacemElement{constructor(e,t){super(e,t),this._registrar=new ItemsContainerRegistrar(this)}register(e){return this._registrar.register(e)}unregister(e){return this._registrar.unregister(e)}}__decorate$u([Watch()],PacemItemsContainerElement.prototype,"items",void 0);var __decorate$t=function(e,t,r,n){var s,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(s=e[i])&&(a=(o<3?s(a):o>3?s(t,r,a):s(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a};class PacemIterableElement extends PacemItemElement{findContainer(){return CustomElementUtils.findAncestor(this,e=>e instanceof PacemIterativeElement)}propertyChangedCallback(e,t,r,n){super.propertyChangedCallback(e,t,r,n);const s=this.container,o=(s&&s.items||[]).indexOf(this);o>=0&&s&&s.adapter&&s.adapter.itemPropertyChangedCallback(o,e,t,r,n)}}class PacemIterativeElement extends PacemItemsContainerElement{propertyChangedCallback(e,t,r,n){switch(super.propertyChangedCallback(e,t,r,n),this.adapter&&this.adapter.masterPropertyChangedCallback(e,t,r,n),e){case"adapter":Utils.isNull(t)||t.destroy(),Utils.isNull(r)||this.adapter.initialize(this);break;case"items":this.isReady&&this._checkIndex()}}viewActivatedCallback(){super.viewActivatedCallback(),this._checkIndex()}_checkIndex(){let e=0;Utils.isNullOrEmpty(this.items)||this.index<this.items.length&&(e=this.index),this.index=e}disconnectedCallback(){Utils.isNull(this.adapter)||this.adapter.destroy(),super.disconnectedCallback()}}__decorate$t([Watch({emit:!1,converter:PropertyConverters.Element})],PacemIterativeElement.prototype,"adapter",void 0),__decorate$t([Watch({converter:PropertyConverters.Number})],PacemIterativeElement.prototype,"index",void 0);var __decorate$s=function(e,t,r,n){var s,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(s=e[i])&&(a=(o<3?s(a):o>3?s(t,r,a):s(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a};const REMOVE_VALUE="false",EMPTY_VALUE="true";let PacemLayoutProxyElement=class PacemLayoutProxyElement extends PacemEventTarget{#f;connectedCallback(){super.connectedCallback(),this.#f=CustomElementUtils.findAncestorShell(this)}propertyChangedCallback(e,t,r,n){super.propertyChangedCallback(e,t,r,n),this._update()}disconnectedCallback(){const e=this.attr;Utils.isNullOrEmpty(e)||this._update(e,REMOVE_VALUE,!1),super.disconnectedCallback()}_update(e=this.attr,t=this.value?.toString(),r=this.disabled){if(Utils.isNullOrEmpty(e)||r)return;const n=this.#f;Utils.isNull(n)||(Utils.isNullOrEmpty(t)||t===REMOVE_VALUE?n.removeAttribute(e):n.setAttribute(e,t===EMPTY_VALUE?"":t))}};__decorate$s([Watch({emit:!1,converter:PropertyConverters.String})],PacemLayoutProxyElement.prototype,"attr",void 0),__decorate$s([Watch({emit:!1,converter:PropertyConverters.String})],PacemLayoutProxyElement.prototype,"value",void 0),PacemLayoutProxyElement=__decorate$s([CustomElement({tagName:P+"-layout-proxy"})],PacemLayoutProxyElement);var __decorate$r=function(e,t,r,n){var s,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(s=e[i])&&(a=(o<3?s(a):o>3?s(t,r,a):s(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a};let PacemMetaProxyElement=class PacemMetaProxyElement extends PacemEventTarget{propertyChangedCallback(e,t,r,n){super.propertyChangedCallback(e,t,r,n),this._update()}viewActivatedCallback(){super.viewActivatedCallback(),this._update()}_update(){const e=this.content,t=!Utils.isNullOrEmpty(this.name),r=t?this.name:this.itemprop;if(Utils.isNullOrEmpty(r)||this.disabled)return;const n=Utils.cssEscape(r),s=t?`meta[name='${n}']`:`meta[itemprop='${n}']`;var o=document.head.querySelector(s);if(Utils.isNull(o))o=document.createElement("meta"),document.head.appendChild(o);else if(Utils.isNullOrEmpty(e))return void o.remove();o.setAttribute("content",e),o.setAttribute(t?"name":"itemprop",r),o.removeAttribute(t?"itemprop":"name")}};__decorate$r([Watch({emit:!1,converter:PropertyConverters.String})],PacemMetaProxyElement.prototype,"name",void 0),__decorate$r([Watch({emit:!1,converter:PropertyConverters.String})],PacemMetaProxyElement.prototype,"itemprop",void 0),__decorate$r([Watch({emit:!1,converter:PropertyConverters.String})],PacemMetaProxyElement.prototype,"content",void 0),__decorate$r([Debounce(!0)],PacemMetaProxyElement.prototype,"_update",null),PacemMetaProxyElement=__decorate$r([CustomElement({tagName:P+"-meta-proxy"})],PacemMetaProxyElement);var __decorate$q=function(e,t,r,n){var s,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(s=e[i])&&(a=(o<3?s(a):o>3?s(t,r,a):s(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a};let PacemOnlineStatusElement=class PacemOnlineStatusElement extends PacemEventTarget{constructor(){super(...arguments),this._onlineHandler=e=>{Utils.isNull(e)?this.online=navigator.onLine||!1:this.online="online"===e.type}}connectedCallback(){super.connectedCallback(),window.addEventListener("online",this._onlineHandler,!1),window.addEventListener("offline",this._onlineHandler,!1)}viewActivatedCallback(){super.viewActivatedCallback(),this._onlineHandler()}disconnectedCallback(){window.removeEventListener("online",this._onlineHandler,!1),window.removeEventListener("offline",this._onlineHandler,!1),super.disconnectedCallback()}};__decorate$q([Watch({converter:PropertyConverters.Boolean})],PacemOnlineStatusElement.prototype,"online",void 0),PacemOnlineStatusElement=__decorate$q([CustomElement({tagName:P+"-online-status"})],PacemOnlineStatusElement);var __decorate$p=function(e,t,r,n){var s,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(s=e[i])&&(a=(o<3?s(a):o>3?s(t,r,a):s(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a};let PacemPanelElement=class PacemPanelElement extends PacemSafeContentElement{};PacemPanelElement=__decorate$p([CustomElement({tagName:P+"-panel"})],PacemPanelElement);const CommandEventName="command";class CommandEvent extends CustomTypedEvent{constructor(e){super(CommandEventName,e,{bubbles:!0,cancelable:!0})}}var __decorate$o=function(e,t,r,n){var s,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(s=e[i])&&(a=(o<3?s(a):o>3?s(t,r,a):s(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a};let PacemTemplateProxyElement=class PacemTemplateProxyElement extends TemplateElement{propertyChangedCallback(e,t,r,n){"target"===e&&this.dispatchEvent(new Event("templatechange"))}addEventListener(e,t,r){super.addEventListener(e,t,r)}removeEventListener(e,t,r){super.removeEventListener(e,t,r)}};__decorate$o([Watch({emit:!1,converter:PropertyConverters.Element})],PacemTemplateProxyElement.prototype,"target",void 0),PacemTemplateProxyElement=__decorate$o([CustomElement({tagName:P+"-template-proxy"})],PacemTemplateProxyElement);var __decorate$n=function(e,t,r,n){var s,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(s=e[i])&&(a=(o<3?s(a):o>3?s(t,r,a):s(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a},PacemRepeaterElement_1;const GET_VAL$4=CustomElementUtils.getAttachedPropertyValue;CustomElementUtils.setAttachedPropertyValue;class ItemEvent extends CustomTypedEvent{constructor(e,t,r){super(e,t,{bubbles:!1,cancelable:!0}),this._originalEvent=r}get srcEvent(){return this._originalEvent}}class ItemCommandEvent extends ItemEvent{constructor(e){super("item"+CommandEventName,e.detail,e)}}class CustomItemCommandEvent extends ItemEvent{constructor(e){super("item"+e.detail.commandName.toLowerCase(),e.detail.commandArgument,e)}}let PacemRepeaterElement=PacemRepeaterElement_1=class PacemRepeaterElement extends PacemEventTarget{constructor(){super(...arguments),this._childItems=[],this._fragment=document.createDocumentFragment(),this._setupItem=(e,t,r)=>{e.index=t,e.item=r},this._refreshItemTemplateHandler=e=>{const t=e.target;this._itemTemplate=t.target,this._databind()}}removeItem(e){this._removeItems(e,e)}_setItem(e,t,r){const n=this._childItems;let s;t>=n.length?(s=new RepeaterItem(this,this._itemTemplate,r,this._childTemplatePlaceholder),this._setupItem(s,t,e),n.push(s),s.append()):(s=n[t],this._setupItem(s,t,e),s.redrawEventually(this._itemTemplate,r)),this.dispatchEvent(new RepeaterItemCreateEvent(s))}_removeItems(e,t){let r=this._childItems.splice(e,t+1-e);for(var n=r.length-1;n>=0;n--){let e=r[n];this.dispatchEvent(new RepeaterItemRemoveEvent(e)),e.remove()}}databind(){this._databind()}_databind(e=this.datasource){if(!this.isConnected)return;let t=this._itemTemplate,r=this._childTemplatePlaceholder;if(null==t)throw`Missing template element in ${PacemRepeaterElement_1.name}.`;let n=this._childItems,s=0;try{for(var o of e||[])this._setItem(o,s,this._fragment),s++}catch(e){this.log(LogLevel.Error,e)}s<n.length?this._removeItems(s,n.length-1):Utils.isNull(r&&r.parentNode)||r.parentNode.insertBefore(this._fragment,r)}_onCommand(e){this.dispatchEvent(new ItemCommandEvent(e)),this.dispatchEvent(new CustomItemCommandEvent(e))}_buildupItemTemplate(){let e=CustomElementUtils.findFirstDescendant(this,e=>e instanceof HTMLTemplateElement||e instanceof PacemTemplateProxyElement);return e instanceof PacemTemplateProxyElement?(e.addEventListener("templatechange",this._refreshItemTemplateHandler,!1),this._childTemplatePlaceholder=e,this._itemTemplate=e.target):this._itemTemplate=this._childTemplatePlaceholder=e}viewActivatedCallback(){super.viewActivatedCallback(),this.addEventListener(CommandEventName,this._onCommand,!1),this._buildupItemTemplate()&&this._databind()}disconnectedCallback(){const e=this._childTemplatePlaceholder;!Utils.isNull(e)&&e instanceof PacemTemplateProxyElement&&e.removeEventListener("templatechange",this._refreshItemTemplateHandler,!1),this.removeEventListener(CommandEventName,this._onCommand,!1),this.datasource=[],super.disconnectedCallback()}propertyChangedCallback(e,t,r,n){if(super.propertyChangedCallback(e,t,r,n),"datasource"===e)Utils.isNull(this._itemTemplate)||this._databind(r)}};__decorate$n([Watch({emit:!1,converter:PropertyConverters.Eval})],PacemRepeaterElement.prototype,"datasource",void 0),PacemRepeaterElement=PacemRepeaterElement_1=__decorate$n([CustomElement({tagName:P+"-repeater"})],PacemRepeaterElement);class RepeaterItem extends RepeaterItem$1{constructor(e,t,r,n){super(document.createComment("pacem-repeater-item")),this._repeater=e,this._template=t,this._fragment=r,this._holder=n,this._alterEgos=[];function s(e,t){var r=this,n="_"+e;if(t!==r[n]){var s=r[n];r[n]=t;var o=new PropertyChangeEvent({propertyName:e,oldValue:s,currentValue:t});r.dispatchEvent(o)}}let o=this.placeholder;Object.defineProperties(o,{item:{get:function(){return this._item},set:function(e){s.apply(o,["item",e])},configurable:!0},index:{get:function(){const e=this._index;return Utils.isNull(e)?-1:e},set:function(e){s.apply(o,["index",e])},configurable:!0}})}append(){const e=this._template,t=this._fragment;this._alterEgos.push(t.appendChild(this.placeholder));const r=e.cloneNode(!0);var n;Utils.isNull(n=GET_VAL$4(this._repeater,INSTANCE_HOST_VAR))||CustomElementUtils.assignHostContext(n,r);var s=r.content.childNodes;Array.prototype.push.apply(this._alterEgos,s),t.appendChild(r.content)}redrawEventually(e,t){if(e===this._template)return;this._fragment=t,this._template=e;const r=this._holder.parentElement,n=this._alterEgos;for(;n.length>0;)r.removeChild(n.pop());this.append()}get dom(){return this._alterEgos.filter(e=>!(e instanceof Comment||e instanceof Text))}get repeater(){return this._repeater}remove(){let e=this._holder.parentElement;for(var t of this._alterEgos)t.parentElement!==e||Utils.isNull(e)||e.removeChild(t)}get index(){return this.placeholder.index}set index(e){this.placeholder.index=e}get item(){return this.placeholder.item}set item(e){this.placeholder.item=e}}var __decorate$m=function(e,t,r,n){var s,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(s=e[i])&&(a=(o<3?s(a):o>3?s(t,r,a):s(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a};const ResizeEventName="resize";class ResizeEvent extends CustomTypedEvent{constructor(e){super(ResizeEventName,e)}}const BORDER_BOX={box:"border-box"};let PacemResizeElement=class PacemResizeElement extends PacemEventTarget{constructor(){super(...arguments),this._checkSizeHandler=()=>{this._assignSizeDebounced()}}get _target(){return this.target||this}propertyChangedCallback(e,t,r,n){switch(super.propertyChangedCallback(e,t,r,n),e){case"disabled":this._start();break;case"target":if(!Utils.isNull(this._observer)){var s=t||this;this._observer.unobserve(s)}case"watchPosition":var o=this.target||this;Utils.isNull(this._observer)||this._observer.observe(o,BORDER_BOX)}}_start(){this.disabled?this._stop():(this.watchPosition?this._startWatchIntensively():(this._observer=new ResizeObserver(e=>{var t=!1;for(let r of e)if(r.target===this._target&&r.contentRect){t=!0;break}t&&this._assignSizeDebounced()}),this._observer.observe(this._target,BORDER_BOX)),window.addEventListener("resize",this._checkSizeHandler,!1))}_stop(){window.cancelAnimationFrame(this._handle),window.removeEventListener("resize",this._checkSizeHandler,!1),Utils.isNull(this._observer)||(this._observer.disconnect(),this._observer=null)}_startWatchIntensively(){this._checkSize(),this._handle=window.requestAnimationFrame(()=>{this._startWatchIntensively()})}_assignSizeDebounced(){this._checkSize()}_checkSize(){this.log(LogLevel.Log,"Resize flow triggered.");let e=this._target;const t=Utils.offset(e);let r=t.height,n=t.width;(r!=this._previousHeight||n!=this._previousWidth||this.watchPosition&&(t.left!=this._previousLeft||t.top!=this._previousTop))&&(this._previousHeight=r,this._previousWidth=n,this._previousLeft=t.left,this._previousTop=t.top,this._dispatchResize())}get currentSize(){var e={height:this._previousHeight,width:this._previousWidth};return this.watchPosition&&(e.left=this._previousLeft,e.top=this._previousTop),e}_dispatchResize(){this.dispatchEvent(new ResizeEvent(this.currentSize))}connectedCallback(){super.connectedCallback(),this._start()}disconnectedCallback(){this._stop(),super.disconnectedCallback()}};__decorate$m([Watch({emit:!1,converter:PropertyConverters.Element})],PacemResizeElement.prototype,"target",void 0),__decorate$m([Watch({emit:!1,converter:PropertyConverters.Boolean})],PacemResizeElement.prototype,"watchPosition",void 0),PacemResizeElement=__decorate$m([CustomElement({tagName:P+"-resize"})],PacemResizeElement);var __decorate$l=function(e,t,r,n){var s,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(s=e[i])&&(a=(o<3?s(a):o>3?s(t,r,a):s(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a};const CHECK_PATTERN=/^([\w\.]:)?\/\/[^\/]+/;let PacemRouterElement=class PacemRouterElement extends PacemEventTarget{constructor(){super(...arguments),this._onScroll=e=>{if(!(this.scrollRestoration??!0))return;const t=Math.floor(Utils.scrollTop);window.history.replaceState(Utils.extend({},window.history.state,{$scrollY:t}),document.title)},this._onPopState=e=>{if(!Utils.isNull(e.state)&&!this.#_){const t=e.state;this.path=t.$path}}}#_;#y;parseState(e={}){const t=this._stringifyMergedState(e),r=this._segmentateUrl(t);return this._parseState(r.path+r.query+r.hash,r.path,r.query,r.hash)}navigate(e,t){if(this.disabled||Utils.isNullOrEmpty(e))return;if((e="object"==typeof e?this._stringifyMergedState(e):Utils.URIs.format(e,this.state))!=this.path)return void(this.path=e);const r=document.location;if(CHECK_PATTERN.test(e)&&!e.startsWith(r.protocol+"//"+r.host))throw`Only same-origin navigation is currently supported. "${e}" is not a valid path.`;if(!this.#_){const n=this.state&&this.state.$path||void 0,s=this._segmentateUrl(e),o=this._parseState(s.path+s.query+s.hash,s.path,s.query,s.hash),a=r.pathname+r.search+r.hash===s.path+s.query+s.hash,i=new RouterNavigatingEvent(e);if(window.dispatchEvent(i),this.#_=i.defaultPrevented)return a&&window.history.pushState(this.state,t,n),void(this.path=n);const l=a?Utils.extend({$scrollY:0},window.history.state,o):Utils.extend({$scrollY:0},o);this.state=l,window.history.scrollRestoration=this.scrollRestoration??!0?"manual":"auto",a?window.history.replaceState(l,document.title):window.history.pushState(l,t,e),Utils.isNullOrEmpty(t)||(document.title=t),window.dispatchEvent(new RouterNavigateEvent({path:e,referrer:n,title:t}))}this.#_=!1}propertyChangedCallback(e,t,r,n){if(super.propertyChangedCallback(e,t,r,n),!n)switch(e){case"template":this.#y=null;break;case"path":this.navigate(r)}}connectedCallback(){super.connectedCallback(),window.addEventListener("popstate",this._onPopState,!1),document.addEventListener("scroll",this._onScroll,!1)}viewActivatedCallback(){super.viewActivatedCallback();const e=this.path;Utils.isNullOrEmpty(e)||this.navigate(e)}disconnectedCallback(){document.removeEventListener("scroll",this._onScroll,!1),window.removeEventListener("popstate",this._onPopState,!1),super.disconnectedCallback()}_stringifyMergedState(e){const t=Utils.extend({},e),r=Utils.extend({},this.state,t),n=this.template;let s=""+n;for(let e of this._parseTemplate(n)){const n=e.name,o=new RegExp("/{"+n+"\\??}"),a=r[n];delete t[n],s=s.replace(o,Utils.isNullOrEmpty(a)?"":"/"+a)}const o=Utils.extend({},this.state.$query);for(let e in t)o[e]=t[e];const{hash:a}=this._segmentateUrl(this.path);return Utils.URIs.appendQuery(s,o,!0)+a}_parseTemplate(e=this.template){return Utils.isNullOrEmpty(this.#y)?this.#y=Utils.URIs.parseRoute(e):this.#y}_segmentateUrl(e){const t=Utils.URIs.split(e);return Utils.isNullOrEmpty(t.path)?null:t}_parseState(e,t,r,n){const s=this._parseTemplate();return Utils.URIs.parseState(s,e,t,r,n)}};__decorate$l([Watch({emit:!1,converter:PropertyConverters.String})],PacemRouterElement.prototype,"template",void 0),__decorate$l([Watch({converter:PropertyConverters.Eval})],PacemRouterElement.prototype,"state",void 0),__decorate$l([Watch({emit:!1,converter:PropertyConverters.String})],PacemRouterElement.prototype,"path",void 0),__decorate$l([Watch({emit:!1,reflectBack:!0,converter:PropertyConverters.Boolean})],PacemRouterElement.prototype,"scrollRestoration",void 0),PacemRouterElement=__decorate$l([CustomElement({tagName:P+"-router"})],PacemRouterElement);var __decorate$k=function(e,t,r,n){var s,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(s=e[i])&&(a=(o<3?s(a):o>3?s(t,r,a):s(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a};const ScrollEventName="scroll";class ScrollEvent extends CustomTypedEvent{constructor(e){super(ScrollEventName,e)}}class PacemScrollOrchestrator{constructor(e){this.global=e,this.scrollers=[],this.scrollHandler=e=>{this._scroll(e)}}register(e){const t=this.scrollers;-1===t.indexOf(e)&&(t.push(e),1===t.length&&this.global.addEventListener("scroll",this.scrollHandler,!1),this._scroll())}unregister(e){var t;const r=this.scrollers;-1!==(t=r.indexOf(e))&&(r.splice(t,1),0===r.length&&this.global.removeEventListener("scroll",this.scrollHandler,!1))}_scroll(e){for(var t of this.scrollers){if(Utils.isNull(t.target)){const e=Utils.scrollTop,r=Utils.scrollLeft;t.offset={top:e,left:r}}else{const e=t.target.scrollTop,r=t.target.scrollLeft;t.offset={top:e,left:r}}t.dispatchEvent(new ScrollEvent(t.offset))}}}const ORCHESTRATOR$1=new PacemScrollOrchestrator(window);let PacemScrollAwareElement=class PacemScrollAwareElement extends PacemEventTarget{viewActivatedCallback(){super.viewActivatedCallback(),ORCHESTRATOR$1.register(this)}disconnectedCallback(){ORCHESTRATOR$1.unregister(this),super.disconnectedCallback()}};__decorate$k([Watch({converter:PropertyConverters.Element})],PacemScrollAwareElement.prototype,"target",void 0),__decorate$k([Watch({converter:PropertyConverters.Json})],PacemScrollAwareElement.prototype,"offset",void 0),PacemScrollAwareElement=__decorate$k([CustomElement({tagName:P+"-scroll-aware"})],PacemScrollAwareElement);var __decorate$j=function(e,t,r,n){var s,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(s=e[i])&&(a=(o<3?s(a):o>3?s(t,r,a):s(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a};function base64ToUint8Array(e){e=(e+"=".repeat((4-e.length%4)%4)).replace(/\-/g,"+").replace(/_/g,"/");const t=window.atob(e),r=new Uint8Array(t.length);for(var n=0;n<t.length;n++)r[n]=t.charCodeAt(n);return r}let PacemServiceWorkerProxyElement=class PacemServiceWorkerProxyElement extends PacemEventTarget{viewActivatedCallback(){super.viewActivatedCallback(),this._tryRegister()}disconnectedCallback(){this._tryUnregister(),super.disconnectedCallback()}propertyChangedCallback(e,t,r,n){switch(super.propertyChangedCallback(e,t,r,n),e){case"pushSubscription":Utils.isNull(t)||this.dispatchEvent(new CustomEvent("unsubscribe",{detail:t})),Utils.isNull(r)||this.dispatchEvent(new CustomEvent("subscribe",{detail:r}));break;case"registration":Utils.isNull(t)||this.dispatchEvent(new CustomEvent("unregister",{detail:t})),Utils.isNull(r)||this.dispatchEvent(new CustomEvent("register",{detail:r}))}}_tryUnregister(e=this.registration){return Utils.isNull(e)?Promise.resolve(!0):e.unregister()}_tryRegister(e=this.src){this._tryUnregister().then(t=>{!Utils.isNullOrEmpty(e)&&"serviceWorker"in navigator&&navigator.serviceWorker.register(e).then(e=>{this.registration=e,"PushManager"in window&&e.pushManager.getSubscription().then(e=>{this.pushSubscription=e})})})}unsubscribe(e=this.pushSubscription){return new Promise((t,r)=>{if(Utils.isNull(e))t(!1);else{const r=e===this.pushSubscription;e.unsubscribe().then(e=>{r&&(this.pushSubscription=null),t(e)})}})}subscribe(e=this.publicKey){return new Promise((t,r)=>{"string"==typeof e&&(e=base64ToUint8Array(e));const n=this.registration?.pushManager;Utils.isNull(n)?t(null):n.subscribe({userVisibleOnly:!0,applicationServerKey:e}).then(e=>{"denied"===Notification.permission?t(this.pushSubscription=null):t(this.pushSubscription=e)})})}};__decorate$j([Watch()],PacemServiceWorkerProxyElement.prototype,"registration",void 0),__decorate$j([Watch()],PacemServiceWorkerProxyElement.prototype,"pushSubscription",void 0),__decorate$j([Watch({emit:!1,converter:PropertyConverters.String})],PacemServiceWorkerProxyElement.prototype,"src",void 0),__decorate$j([Watch({emit:!1,converter:PropertyConverters.String})],PacemServiceWorkerProxyElement.prototype,"publicKey",void 0),PacemServiceWorkerProxyElement=__decorate$j([CustomElement({tagName:P+"-serviceworker-proxy"})],PacemServiceWorkerProxyElement);var __decorate$i=function(e,t,r,n){var s,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(s=e[i])&&(a=(o<3?s(a):o>3?s(t,r,a):s(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a};const KEYEVT="keydown";function matchesKeyCombination(e,t,r=[]){if(Utils.isNullOrEmpty(t))return!1;const n=/(\w+)\s*\+/,s=[];let o;for(;!Utils.isNullOrEmpty(o=n.exec(t));)t=t.substr(o.index+o[0].length),s.push(o[1]);if(!CustomEventUtils.matchModifiers(e,s))return!1;const a=t.split(",").map(e=>e.trim().toLowerCase());if(Utils.isNullOrEmpty(a))return!1;var i=e.key.toLowerCase();return!!charEquals(i,a[r.length])&&(r.push(i),r.length==a.length||"ongoing")}function charEquals(e,t){return e===t||"escape"===e&&"esc"===t||"backspace"===e&&"back"===t||"control"===e&&"ctrl"===t||"delete"===e&&("del"===t||"canc"===t)||/^arrow/.test(e)&&t===e.substr(5)}const KeyboardShortcutExecuteEventName="execute";let PacemShortcutElement=class PacemShortcutElement extends PacemEventTarget{constructor(){super(...arguments),this._accumulator=[],this._shortcutHandler=e=>{switch(matchesKeyCombination(e,this.combination,this._accumulator)){case!0:avoidHandler(e),this.dispatchEvent(new Event(KeyboardShortcutExecuteEventName,{bubbles:!1,cancelable:!1}));case!1:this._accumulator.splice(0)}}}viewActivatedCallback(){super.viewActivatedCallback(),this._addHandler()}propertyChangedCallback(e,t,r,n){super.propertyChangedCallback(e,t,r,n),"target"!==e||n||(this._removeHandler(t),this._addHandler(r))}disconnectedCallback(){this._removeHandler(),super.disconnectedCallback()}_removeHandler(e=this.target){(e||window).removeEventListener(KEYEVT,this._shortcutHandler,!1)}_addHandler(e=this.target){(e||window).addEventListener(KEYEVT,this._shortcutHandler,!1)}};__decorate$i([Watch({emit:!1,converter:PropertyConverters.String})],PacemShortcutElement.prototype,"combination",void 0),__decorate$i([Watch({emit:!1,converter:PropertyConverters.Element})],PacemShortcutElement.prototype,"target",void 0),PacemShortcutElement=__decorate$i([CustomElement({tagName:P+"-shortcut"})],PacemShortcutElement);var __decorate$h=function(e,t,r,n){var s,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(s=e[i])&&(a=(o<3?s(a):o>3?s(t,r,a):s(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a};let PacemSpanElement=class PacemSpanElement extends PacemSafeContentElement{propertyChangedCallback(e,t,r,n){super.propertyChangedCallback(e,t,r,n),"text"!==e||n||(this.textContent=r)}viewActivatedCallback(){super.viewActivatedCallback(),Utils.isNull(this.text)||(this.textContent=this.text)}};__decorate$h([Watch({converter:PropertyConverters.String})],PacemSpanElement.prototype,"text",void 0),PacemSpanElement=__decorate$h([CustomElement({tagName:P+"-span"})],PacemSpanElement);var __decorate$g=function(e,t,r,n){var s,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(s=e[i])&&(a=(o<3?s(a):o>3?s(t,r,a):s(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a};let PacemStyleProxyElement=class PacemStyleProxyElement extends PacemEventTarget{propertyChangedCallback(e,t,r,n){switch(super.propertyChangedCallback(e,t,r,n),e){case"cssText":Utils.isNull(this._style)||(this.cssReady=!1,this._style.textContent=r,Utils.isNullOrEmpty(r)?this.cssReady=!0:this._idleWhileReady());break;case"disabled":case"src":this._fetch()}}viewActivatedCallback(){super.viewActivatedCallback();const e=this._style=document.createElement("style");e.setAttribute("type","text/css"),document.head.appendChild(e),this._fetch()}disconnectedCallback(){Utils.isNull(this._style)||this._style.remove(),super.disconnectedCallback()}_idleWhileReady(){let e=this._style.sheet,t=setInterval(()=>{try{e.cssRules.length>0&&(clearInterval(t),CustomElementUtils.Theme.importWebFonts().then(e=>{this.cssReady=!0,this.dispatchEvent(new Event("cssready"))}))}catch(e){}},100)}_fetch(){const e=this.src,t=this._style;this.disabled||Utils.isNull(t)||(Utils.isNullOrEmpty(e)?t.textContent=this.cssText||"":(this.cssReady=!1,fetch(e).then(e=>{e.text().then(e=>{t.textContent=e,this._idleWhileReady()},e=>{this.cssReady=!0})},e=>{this.cssReady=!0})))}};__decorate$g([Watch({emit:!1,converter:PropertyConverters.String})],PacemStyleProxyElement.prototype,"src",void 0),__decorate$g([Watch({emit:!1,converter:PropertyConverters.String})],PacemStyleProxyElement.prototype,"cssText",void 0),__decorate$g([Watch({converter:PropertyConverters.Boolean})],PacemStyleProxyElement.prototype,"cssReady",void 0),PacemStyleProxyElement=__decorate$g([CustomElement({tagName:P+"-style-proxy"})],PacemStyleProxyElement);var __decorate$f=function(e,t,r,n){var s,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(s=e[i])&&(a=(o<3?s(a):o>3?s(t,r,a):s(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a};let PacemTextElement=class PacemTextElement extends HTMLElement{constructor(){super()}connectedCallback(){0==this.childNodes.length&&(this.innerHTML=" "),this._text=this.childNodes.item(0)}propertyChangedCallback(e,t,r,n){Utils.isNull(r)&&!0===n||(this._text.nodeValue=r)}};__decorate$f([Watch({emit:!1,converter:PropertyConverters.String})],PacemTextElement.prototype,"text",void 0),PacemTextElement=__decorate$f([CustomElement({tagName:P+"-text"})],PacemTextElement);var __decorate$e=function(e,t,r,n){var s,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(s=e[i])&&(a=(o<3?s(a):o>3?s(t,r,a):s(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a};let PacemTimerElement=class PacemTimerElement extends PacemEventTarget{constructor(){super(),this._handle=0}propertyChangedCallback(e,t,r,n){switch(super.propertyChangedCallback(e,t,r,n),e){case"interval":case"disabled":this._restart()}}viewActivatedCallback(){super.viewActivatedCallback(),this._restart()}disconnectedCallback(){window.clearInterval(this._handle),super.disconnectedCallback()}_restart(){clearInterval(this._handle),!this.disabled&&this.interval>0&&(this._handle=window.setInterval(()=>{this.dispatchEvent(new Event("tick",{bubbles:!1,cancelable:!1}))},this.interval))}};__decorate$e([Watch({emit:!1,converter:PropertyConverters.Number})],PacemTimerElement.prototype,"interval",void 0),PacemTimerElement=__decorate$e([CustomElement({tagName:P+"-timer"})],PacemTimerElement);var __decorate$d=function(e,t,r,n){var s,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(s=e[i])&&(a=(o<3?s(a):o>3?s(t,r,a):s(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a};let PacemTitleProxyElement=class PacemTitleProxyElement extends PacemEventTarget{propertyChangedCallback(e,t,r,n){super.propertyChangedCallback(e,t,r,n),this._update()}viewActivatedCallback(){super.viewActivatedCallback(),this._update()}_update(){const e=this.value;Utils.isNullOrEmpty(e)||this.disabled||(document.title=e)}};__decorate$d([Watch({emit:!1,converter:PropertyConverters.String})],PacemTitleProxyElement.prototype,"value",void 0),PacemTitleProxyElement=__decorate$d([CustomElement({tagName:P+"-title-proxy"})],PacemTitleProxyElement);var __decorate$c=function(e,t,r,n){var s,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(s=e[i])&&(a=(o<3?s(a):o>3?s(t,r,a):s(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a};let PacemTweenElement=class PacemTweenElement extends PacemEventTarget{constructor(e=new TweenService){super(),this._tweener=e,this.duration=1e3}propertyChangedCallback(e,t,r,n){super.propertyChangedCallback(e,t,r,n),"start"===e&&!0===r&&1!=this.disabled&&this._animate()}run(){return this._animate()}_animate(){var e=!1;return this._tweener.run(this.from,this.to,this.duration,this.delay,this.easing,(t,r)=>{e=0==e&&this.dispatchEvent(new AnimationStartEvent),this.dispatchEvent(new AnimationEvent({time:t,value:this.value=r})),this.log(LogLevel.Info,"value: "+this.value),1==t&&(this.dispatchEvent(new AnimationEndEvent),this.start=!1)})}};__decorate$c([Watch({emit:!1})],PacemTweenElement.prototype,"easing",void 0),__decorate$c([Watch({emit:!1,reflectBack:!0,converter:PropertyConverters.Number})],PacemTweenElement.prototype,"from",void 0),__decorate$c([Watch({emit:!1,reflectBack:!0,converter:PropertyConverters.Number})],PacemTweenElement.prototype,"to",void 0),__decorate$c([Watch({emit:!1,converter:PropertyConverters.Number})],PacemTweenElement.prototype,"duration",void 0),__decorate$c([Watch({emit:!1,converter:PropertyConverters.Number})],PacemTweenElement.prototype,"delay",void 0),__decorate$c([Watch({emit:!1,converter:PropertyConverters.Boolean})],PacemTweenElement.prototype,"start",void 0),__decorate$c([Watch({converter:PropertyConverters.Number})],PacemTweenElement.prototype,"value",void 0),PacemTweenElement=__decorate$c([CustomElement({tagName:P+"-tween"})],PacemTweenElement);var __decorate$b=function(e,t,r,n){var s,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(s=e[i])&&(a=(o<3?s(a):o>3?s(t,r,a):s(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a};class PacemViewportOrchestrator{constructor(e){this._global=e,this.viewports=[],this._checkHandler=e=>{this._oncheck(e)}}register(e){const t=this.viewports,r=this._global;-1===t.indexOf(e)&&(t.push(e),1===t.length&&(r.addEventListener("resize",this._checkHandler,!1),r.addEventListener("scroll",this._checkHandler,!1),r.addEventListener("transitionend",this._checkHandler,!1),r.addEventListener("animationend",this._checkHandler,!1)),this._oncheck())}unregister(e){var t;const r=this.viewports,n=this._global;-1!==(t=r.indexOf(e))&&(r.splice(t,1),0===r.length&&(n.removeEventListener("resize",this._checkHandler,!1),n.removeEventListener("scroll",this._checkHandler,!1),n.removeEventListener("transitionend",this._checkHandler,!1),n.removeEventListener("animationend",this._checkHandler,!1)),this._oncheck())}isElementVisible(e,t){const r=Utils.windowSize;this._global.document;var n=e.getBoundingClientRect(),s=r.width,o=r.height;return n.bottom>0&&n.top<0+o&&(t||n.left<s+0&&n.right>0)}_oncheck(e){for(var t of this.viewports){const e=t.target||t,r=this.isElementVisible(e,t.ignoreHorizontal);if(r!==t.visible)(t.visible=r)?Utils.addClass(e,PCSS+"-in-viewport"):Utils.removeClass(e,PCSS+"-in-viewport")}}}__decorate$b([Debounce(100)],PacemViewportOrchestrator.prototype,"_oncheck",null);const ORCHESTRATOR=new PacemViewportOrchestrator(window);let PacemViewportAwareElement=class PacemViewportAwareElement extends PacemEventTarget{viewActivatedCallback(){super.viewActivatedCallback(),ORCHESTRATOR.register(this)}disconnectedCallback(){ORCHESTRATOR.unregister(this),super.disconnectedCallback()}};__decorate$b([Watch({converter:PropertyConverters.Boolean})],PacemViewportAwareElement.prototype,"visible",void 0),__decorate$b([Watch({emit:!1,converter:PropertyConverters.Element})],PacemViewportAwareElement.prototype,"target",void 0),__decorate$b([Watch({emit:!1,converter:PropertyConverters.Boolean})],PacemViewportAwareElement.prototype,"ignoreHorizontal",void 0),PacemViewportAwareElement=__decorate$b([CustomElement({tagName:P+"-viewport-aware"})],PacemViewportAwareElement);var __decorate$a=function(e,t,r,n){var s,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(s=e[i])&&(a=(o<3?s(a):o>3?s(t,r,a):s(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a};let PacemWebWorkerProxyElement=class PacemWebWorkerProxyElement extends PacemEventTarget{constructor(){super(...arguments),this.autosend=!0,this._messageHandler=e=>{this.result=e.data,this.dispatchEvent(new CustomEvent("receive",{detail:e.data,bubbles:!1,cancelable:!1}))},this._errorHandler=e=>{this.dispatchEvent(new CustomEvent("error",{detail:e.error,bubbles:!1,cancelable:!1}))}}viewActivatedCallback(){super.viewActivatedCallback(),this._initializeWorker()}propertyChangedCallback(e,t,r,n){if(super.propertyChangedCallback(e,t,r,n),!n)switch(e){case"src":this._disposeWorker(),this._initializeWorker(r);break;case"autosend":case"disabled":case"message":this.autosend&&this.send(this.message)}}disconnectedCallback(){this._disposeWorker(),super.disconnectedCallback()}send(e=this.message){if(this.disabled)return;const t=this._worker;Utils.isNull(t)||t.postMessage(e)}_initializeWorker(e=this.src){if(!Utils.isNullOrEmpty(e)){const t=this._worker=new Worker(e);t.addEventListener("message",this._messageHandler,!1),t.addEventListener("error",this._errorHandler,!1),this.autosend&&!Utils.isNull(this.message)&&this.send()}}_disposeWorker(e=this._worker){Utils.isNull(e)||(e.removeEventListener("error",this._errorHandler,!1),e.removeEventListener("message",this._messageHandler,!1),e.terminate())}};__decorate$a([Watch({emit:!1,converter:PropertyConverters.String})],PacemWebWorkerProxyElement.prototype,"message",void 0),__decorate$a([Watch({converter:PropertyConverters.String})],PacemWebWorkerProxyElement.prototype,"result",void 0),__decorate$a([Watch({emit:!1,converter:PropertyConverters.String})],PacemWebWorkerProxyElement.prototype,"src",void 0),__decorate$a([Watch({emit:!1,reflectBack:!0,converter:PropertyConverters.Boolean})],PacemWebWorkerProxyElement.prototype,"autosend",void 0),PacemWebWorkerProxyElement=__decorate$a([CustomElement({tagName:P+"-webworker-proxy"})],PacemWebWorkerProxyElement);class PacemBehavior extends PacemEventTarget{#P=new WeakSet;register(e){var t=this.#P;t.has(e)||(t.add(e),this.decorate(e))}unregister(e){var t=this.#P;t.has(e)&&(this.undecorate(e),t.delete(e))}has(e){return this.#P.has(e)}}var __decorate$9=function(e,t,r,n){var s,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(s=e[i])&&(a=(o<3?s(a):o>3?s(t,r,a):s(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a};const GET_VAL$3=CustomElementUtils.getAttachedPropertyValue,SET_VAL$3=CustomElementUtils.setAttachedPropertyValue,DEL_VAL$3=CustomElementUtils.deleteAttachedPropertyValue,MOUSE_DOWN$2="pacem:dragdrop:mousedown",DRAGGING="pacem:dragdrop:info",DELEGATE$2="pacem:dragdrop:delegate";class DragElementDelegate{constructor(e,t){this._logFn=t,this._started=!1,this._enterHandler=e=>{this._currentTarget=e.target},this._leaveHandler=e=>{this._currentTarget=null},this._revertTrackedTarget=null,this._moveHandler=e=>{"wheel"!==e.type&&avoidHandler(e);var t,r=this._element,n=this._dragDropper,s=GET_VAL$3(r,DRAGGING);if(!this._started){if(this._logFn(LogLevel.Info,"Dragging act started"),this._started=!0,n.dropBehavior===DropBehavior.InsertChild){var o=r;do{o=o.parentElement}while(o&&-1==n.dropTargets.indexOf(o));this._currentTarget=o}n.dispatchEvent(new DragDropEvent(DragDropEventType.Start,DragDropEventArgsClass.fromArgs(s),{},e))}if(!Utils.isNull(s)){this._logFn(LogLevel.Debug,"Dragging act ongoing");const o=e instanceof MouseEvent;Utils.addClass(CustomElementUtils.findAncestorShell(r),PCSS+"-dragging"),s.currentPosition=t=t||(e instanceof MouseEvent?{x:e.pageX,y:e.pageY}:{x:e.touches[0].pageX,y:e.touches[0].pageY});let l=s.floater,c=new DragDropEvent(DragDropEventType.Drag,DragDropEventArgsClass.fromArgs(s),{cancelable:!0},e);if(n.dispatchEvent(c),!c.defaultPrevented&&(l instanceof HTMLElement||l instanceof SVGElement)){let e={x:c.detail.delta.x,y:c.detail.delta.y};l.style.transform=`translate3d(${e.x}px, ${e.y}px, 0)`}var a=this._currentTarget;!o&&n.dropTargets.length>0&&(a=document.elementsFromPoint(s.currentPosition.x-Utils.scrollLeft,s.currentPosition.y-Utils.scrollTop).find(e=>n.dropTargets.indexOf(e)>=0));var i=s.target;if(a!==i)if(Utils.isNull(i)||(Utils.removeClass(i,PCSS+"-dropping"),n.dispatchEvent(new DragDropEvent(DragDropEventType.Out,DragDropEventArgsClass.fromArgs(s),{},e)),this._logFn(LogLevel.Info,`Drop area left (${i.id||i.constructor.name})`)),-1!=n.dropTargets.indexOf(a)){s.target=a,this._logFn(LogLevel.Info,`Drop area entering (${s.target.id||s.target.constructor.name})`);let t=new DragDropEvent(DragDropEventType.Over,DragDropEventArgsClass.fromArgs(s),{cancelable:!0},e);n.dispatchEvent(t),t.defaultPrevented?delete s.target:(Utils.addClass(s.target,PCSS+"-dropping"),this._logFn(LogLevel.Info,`Drop area entered (${s.target.id||s.target.constructor.name})`))}else delete s.target;if(this._revertTrackedTarget=s.target||i,Utils.isNull(s.target)||n.dropBehavior!==DropBehavior.InsertChild){if(Utils.isNull(s.target)&&n.mode===DragDataMode.Copy){const e=s.placeholder;e instanceof Element&&e.remove()}}else this._insertChild(a,s)}},this._endHandler=e=>{var t,r=this._element,n=CustomElementUtils.findAncestorShell(r),s=this._dragDropper;if(!Utils.isNull(t=GET_VAL$3(r,DRAGGING))){e instanceof MouseEvent&&avoidHandler(e);let a=()=>{let o=t.floater;(o instanceof HTMLElement||o instanceof SVGElement)&&(o.style.pointerEvents=""),s.mode!==DragDataMode.Self&&t.floater.remove(),Utils.removeClass(r,PCSS+"-dragging"),Utils.removeClass(r,PCSS+"-drag-lock"),DEL_VAL$3(r,DRAGGING),Utils.isNull(t.placeholder)||(Utils.removeClass(t.placeholder,PCSS+"-dragging"),Utils.removeClass(t.placeholder,"drag-placeholder"),Utils.removeClass(t.placeholder,PCSS+"-drag-lock"),DEL_VAL$3(t.placeholder,DRAGGING));const a=!Utils.isNull(t.target);a&&(s.dispatchEvent(new DragDropEvent(DragDropEventType.Drop,DragDropEventArgsClass.fromArgs(t),{},e)),Utils.removeClass(t.target,PCSS+"-dropping"));const i=t.data;s.dropTargets;const l=t.placeholder,c=this._repeaterItem,m=this._sourceRepeater,d=!Utils.isNull(c),p=l&&this._findTargetRepeaterItem(t.placeholder.parentElement,t.placeholder.nextElementSibling),h=p&&p.repeater,u=s.mode===DragDataMode.Copy,v=a&&!Utils.isNull(h)&&!(Utils.isNull(c)&&m===h);if(d&&!u&&a&&m.removeItem(c.index),v)if(t.placeholder.remove(),h!==m||u)u||m&&m.datasource.splice(c.index,1),h&&(h.datasource=h.datasource||[]).splice(p.index,0,i);else{let e=c.index,t=p.index;t>e&&t--,m.datasource.moveWithin(e,t)}a||Utils.isNullOrEmpty(s.dropTargets)||s.spillBehavior!==DropTargetMissedBehavior.Remove||u||(d?m.datasource.splice(c.index,1):r.remove()),s.dispatchEvent(new DragDropEvent(DragDropEventType.End,DragDropEventArgsClass.fromArgs(t),{},e)),Utils.removeClass(n,PCSS+"-dragging")};const i=t.placeholder||t.element;if(t.floater!=i){let e=t.floater;var o=Utils.deserializeTransform(getComputedStyle(e));if(!Utils.isNull(t.target)||s.spillBehavior===DropTargetMissedBehavior.Revert||s.dropBehavior===DropBehavior.InsertChild&&s.spillBehavior!==DropTargetMissedBehavior.Remove){const t=Utils.offset(i),r=Utils.offset(e);e.style.transition="transform .2s ease-in-out",o=pacemFoundation.Matrix2D.translate(o,{x:t.left-r.left,y:t.top-r.top})}else e.style.transition="transform .2s ease-in, opacity .2s linear",o=pacemFoundation.Matrix2D.scale(o,.1),e.style.opacity="0";Utils.addAnimationEndCallback(e,a,300),e.style.transform=`matrix(${o.a},${o.b},${o.c},${o.d},${o.e},${o.f})`}else a()}Utils.removeClass(r,PCSS+"-drag-lock"),this.dispose(),this._logFn(LogLevel.Info,"Dragging act disposed")},this._dragDropper=e.dragDrop,Utils.addClass(this._element=e.element,PCSS+"-drag-lock"),window.addEventListener("mouseup",this._endHandler,!1),window.addEventListener("touchend",this._endHandler,!1),window.addEventListener("mousemove",this._moveHandler,!1),document.addEventListener("wheel",this._moveHandler,!1),window.addEventListener("touchmove",this._moveHandler,{capture:!0,passive:!1}),this._dragDropper.dropTargets.forEach(e=>{e.addEventListener("mouseenter",this._enterHandler,!1),e.addEventListener("mouseleave",this._leaveHandler,!1)});var r=Repeater.findItemContext(this._element,0,null);r&&(r.dom&&1===r.dom.length&&r.dom[0]===this._element&&(this._repeaterItem=r),this._sourceRepeater=r.repeater),this._bootstrap(e.placeholder,e.data)}_getLogicalData(e){return e instanceof RepeaterItem$1?e.item:e instanceof HTMLElement?e.dataset:e}_getPhysicalData(e){return e instanceof RepeaterItem?e.dom:[e]}_createFloater(e,t){let r=e;if(this._dragDropper.mode!=DragDataMode.Self&&(r=r.cloneNode(!0),CustomElementUtils.stripObservedAttributes(r),r instanceof HTMLElement||r instanceof SVGElement)){Utils.addClass(r,PCSS+"-drag-floater"),CustomElementUtils.findAncestorShell(this._element).appendChild(r),r.style.position="absolute";let n={left:t.x+r.clientWidth/2,top:t.y-r.clientHeight/2};if(e===this._element||e.classList.contains("drag-floater-resize")){let e=Utils.offset(this._element);r.style.boxSizing="border-box",r.style.width=e.width+"px",r.style.height=e.height+"px",n={left:e.left,top:e.top}}r.style.left=`${n.left}px`,r.style.top=`${n.top}px`}return(r instanceof HTMLElement||r instanceof SVGElement)&&(r.style.pointerEvents="none"),r}_findTargetRepeaterItem(e,t){var r=Repeater.findItemContext(t,0,null);if(!Utils.isNull(r))return{repeater:r.repeater,index:r.index};var n=null;return n=e instanceof PacemRepeaterElement?e:CustomElementUtils.findAncestorOfType(e,PacemRepeaterElement),Utils.isNull(n)?null:{repeater:n,index:n.datasource&&n.datasource.length||0}}_findNextSibling(e,t){const r=Array.from(e.children);r.length;const n=document.elementFromPoint(t.currentPosition.x-Utils.scrollLeft,t.currentPosition.y-Utils.scrollTop);let s;if(n===e)return this._currentHover=s=t.placeholder,s.parentElement===e?s.nextElementSibling:null;for(var o=n;o.parentElement!=e&&null!=o.parentElement;)o=o.parentElement;if(o.parentElement!=e||o===t.placeholder)return this._currentHover=s=t.placeholder,s.nextElementSibling;if(o!=this._currentHover){s=this._currentHover;const e=r.indexOf(s),t=r.indexOf(o);return this._currentHover=o,e>t?o:o.nextElementSibling}return o}_insertChild(e,t){const r=t.placeholder||t.element,n=t.target,s=this._findNextSibling(n,t);r.nextSibling==s&&r.parentElement==n||(Utils.isNull(s)||s.parentElement==e)&&(e.insertBefore(r,s),this._logFn(LogLevel.Info,`Positioned before ${s&&(s.id||s.constructor.name)||"null"} for drop`))}_bootstrap(e,t){var r,n,s=this._element,o=this._dragDropper;if(!Utils.isNull(r=GET_VAL$3(s,MOUSE_DOWN$2))){this._started=!1,DEL_VAL$3(s,MOUSE_DOWN$2),Utils.addClass(s,PCSS+"-dragging");let a=getComputedStyle(s),i={x:0,y:0},l=Utils.deserializeTransform(a);i.x+=l.e,i.y+=l.f;let c=this._createFloater(o.floater||s,r);if(Utils.isNull(e))switch(o.mode){case DragDataMode.Alias:e=s;break;case DragDataMode.Copy:e=s.cloneNode(!0)}Utils.isNull(e)||Utils.addClass(e,"drag-placeholder"),Utils.isNull(this._repeaterItem)||Utils.isNull(e)||CustomElementUtils.freezeObservedAttributes(e);n={element:s,placeholder:e||s,data:t||this._getLogicalData(this._repeaterItem||s),startTime:Date.now(),origin:r,initialDelta:i,currentPosition:r,floater:c},SET_VAL$3(s,DRAGGING,n)}}dispose(){this._dragDropper.dropTargets.forEach(e=>{e.removeEventListener("mouseenter",this._enterHandler,!1),e.removeEventListener("mouseleave",this._leaveHandler,!1)}),window.removeEventListener("mouseup",this._endHandler,!1),window.removeEventListener("touchend",this._endHandler,!1),window.removeEventListener("mousemove",this._moveHandler,!1),document.removeEventListener("wheel",this._moveHandler,!1),window.removeEventListener("touchmove",this._moveHandler,{capture:!0})}}let PacemDragDropElement=class PacemDragDropElement extends PacemBehavior{constructor(){super(...arguments),this._startHandler=e=>{if(this.disabled)return;if(!e.isTrusted)return;if(!Utils.isNullOrEmpty(this.handleSelector)&&e.currentTarget.querySelector(this.handleSelector)!==e.target)return;const t=e.currentTarget,r=CustomEventUtils.getEventCoordinates(e).page;let n=t,s=DragDropInitEventArgsClass.fromArgs({element:n,placeholder:null,currentPosition:r,origin:r,initialDelta:{x:0,y:0},startTime:null,floater:null,data:null});const o=new DragDropEvent(DragDropEventType.Init,s,{cancelable:!0},e);if(this.dispatchEvent(o),o.defaultPrevented)return;avoidHandler(e);const a=e=>{this.log(LogLevel.Info,"Drag avoided!"),clearTimeout(i)},i=setTimeout(()=>{t.removeEventListener("mouseup",a,!1),t.removeEventListener("touchend",a,!1),this.log(LogLevel.Info,"Drag locked!"),SET_VAL$3(t,MOUSE_DOWN$2,r),SET_VAL$3(t,DELEGATE$2,new DragElementDelegate({element:n,dragDrop:this,placeholder:s.placeholder,data:s.data},(e,t,r)=>this.log.apply(this,[e,t,r])))},this.lockTimeout);t.addEventListener("mouseup",a,!1),t.addEventListener("touchend",a,!1)},this.lockTimeout=100,this.dropTargets=[],this.mode=DragDataMode.Self}decorate(e){e.addEventListener("mousedown",this._startHandler,!1),e.addEventListener("touchstart",this._startHandler,{capture:!1,passive:!1})}undecorate(e){e.removeEventListener("mousedown",this._startHandler,!1),e.removeEventListener("touchstart",this._startHandler,{capture:!1,passive:!1})}addEventListener(e,t,r){super.addEventListener(e,t,r)}removeEventListener(e,t,r){super.removeEventListener(e,t,r)}dispatchEvent(e){return e.type===DragDropEventType.End&&(DEL_VAL$3(e.detail.element,MOUSE_DOWN$2),DEL_VAL$3(e.detail.element,DELEGATE$2)),super.dispatchEvent(e)}};__decorate$9([Watch({emit:!1,converter:PropertyConverters.Number})],PacemDragDropElement.prototype,"lockTimeout",void 0),__decorate$9([Watch({emit:!1})],PacemDragDropElement.prototype,"dropTargets",void 0),__decorate$9([Watch({emit:!1,converter:PropertyConverters.String})],PacemDragDropElement.prototype,"mode",void 0),__decorate$9([Watch({emit:!1,converter:PropertyConverters.Element})],PacemDragDropElement.prototype,"floater",void 0),__decorate$9([Watch({emit:!1,converter:PropertyConverters.String})],PacemDragDropElement.prototype,"dropBehavior",void 0),__decorate$9([Watch({emit:!1,converter:PropertyConverters.String})],PacemDragDropElement.prototype,"spillBehavior",void 0),__decorate$9([Watch({emit:!1,converter:PropertyConverters.String})],PacemDragDropElement.prototype,"handleSelector",void 0),PacemDragDropElement=__decorate$9([CustomElement({tagName:P+"-drag-drop"})],PacemDragDropElement);var __decorate$8=function(e,t,r,n){var s,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(s=e[i])&&(a=(o<3?s(a):o>3?s(t,r,a):s(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a};class RescaleElementDelegate{constructor(e,t,r,n){this._element=e,this._type=t,this._rescaler=r,this._logFn=n,this._startTime=Date.now(),this._moveHandler=e=>{e.stopPropagation();const t=this._element,r=this._origin,n=this._rescaler,s=this._type,o=n.keepProportions,a=n.minWidth||0,i=n.minHeight||0,l=n.maxWidth||Number.MAX_SAFE_INTEGER,c=n.maxHeight||Number.MAX_SAFE_INTEGER,m=e instanceof MouseEvent?{x:e.pageX,y:e.pageY}:{x:e.touches[0].pageX,y:e.touches[0].pageY},d={x:m.x,y:m.y},p=this._rect;switch(s){case"top":case"bottom":d.x=r.x;break;case"left":case"right":d.y=r.y}this._position=d;const h={x:d.x-r.x,y:d.y-r.y};var u;if(o){const e={x:p.x,y:p.y},t={x:p.x+p.width,y:p.y},r={x:p.x+p.width,y:p.y+p.height},n={x:p.x,y:p.y+p.height},o=pacemFoundation.Point.distance(r,n)/pacemFoundation.Point.distance(r,e),a=pacemFoundation.Point.distance(e,n)/pacemFoundation.Point.distance(r,e),i=pacemFoundation.Point.distance(e,r),l=(e,t)=>(e.x*t.x+e.y*t.y)/i;switch(s){case"topleft":const s=pacemFoundation.Point.subtract(r,e),i=l(pacemFoundation.Point.subtract(r,d),s),c={x:r.x-i*o,y:r.y-i*a};u={x:c.x,y:c.y,width:r.x-c.x,height:r.y-c.y};break;case"topright":const m=pacemFoundation.Point.subtract(n,t),p=l(pacemFoundation.Point.subtract(n,d),m),h={x:n.x+p*o,y:n.y-p*a};u={x:n.x,y:h.y,width:h.x-n.x,height:n.y-h.y};break;case"bottomleft":const v=pacemFoundation.Point.subtract(t,n),E=l(pacemFoundation.Point.subtract(t,d),v),g={x:t.x-E*o,y:t.y+E*a};u={x:g.x,y:t.y,width:t.x-g.x,height:g.y-t.y};break;default:const f=pacemFoundation.Point.subtract(e,r),_=l(pacemFoundation.Point.subtract(e,d),f),y={x:e.x+_*o,y:e.y+_*a};u={x:e.x,y:e.y,width:y.x-e.x,height:y.y-e.y}}}else u={x:this._rect.x,y:this._rect.y,width:this._rect.width+h.x,height:this._rect.height+h.y},s.startsWith("top")&&(u.y=this._rect.y+h.y,u.height=this._rect.height-h.y),s.endsWith("left")&&(u.x=this._rect.x+h.x,u.width=this._rect.width-h.x);this._logFn(LogLevel.Log,`handle: ${s}, origin: ${JSON.stringify(r)}, currentPosition: ${JSON.stringify(m)}`,"Rescaling"),this._logFn(LogLevel.Log,`delta: ${JSON.stringify(h)}, position: ${JSON.stringify(d)}`,"Rescaling"),this._logFn(LogLevel.Log,`from: ${JSON.stringify(this._rect)}, to: ${JSON.stringify(u)}`,"Rescaling");let v=u.width>=a&&u.width<=l,E=u.height>=i&&u.height<=c;if(!o||v&&E||(v=E=!1),v||(u.x=this._targetRect.x,u.width=this._targetRect.width),E||(u.y=this._targetRect.y,u.height=this._targetRect.height),v||E){const o={currentPosition:d,element:t,handle:s,origin:r,targetRect:u,startTime:this._startTime};let a=new RescaleEvent(RescaleEventType.Rescale,RescaleEventArgsClass.fromArgs(o),{cancelable:!0},e);if(n.dispatchEvent(a),!a.defaultPrevented){const e=this._originalTransform;t.style.transform=`matrix(${e.a},${e.b},${e.c},${e.d},${e.e+u.x-this._rect.x},${e.f+u.y-this._rect.y})`,t.style.width=u.width+"px",t.style.height=u.height+"px"}this._targetRect=u}},this._endHandler=e=>{e.stopPropagation();const t=this._type;let r=new RescaleEvent(RescaleEventType.End,RescaleEventArgsClass.fromArgs({element:this._element,origin:this._origin,handle:t,startTime:this._startTime,currentPosition:this._position,targetRect:this._targetRect}),{},e);Utils.removeClass(document.body,PCSS+"-rescaling rescale-"+t),this._rescaler.dispatchEvent(r),DEL_VAL$2(this._element,DELEGATE$1),window.removeEventListener("mouseup",this._endHandler,!1),window.removeEventListener("touchend",this._endHandler,!1),window.removeEventListener("mousemove",this._moveHandler,!1),window.removeEventListener("touchmove",this._moveHandler,!1)},window.addEventListener("mouseup",this._endHandler,!1),window.addEventListener("touchend",this._endHandler,!1),window.addEventListener("mousemove",this._moveHandler,!1),window.addEventListener("touchmove",this._moveHandler,!1),this._origin=this._position=GET_VAL$2(e,MOUSE_DOWN$1),this._rect=this._targetRect=Utils.offsetRect(e),this._originalTransform=Utils.deserializeTransform(getComputedStyle(e)),Utils.addClass(document.body,PCSS+"-rescaling rescale-"+t)}}const GET_VAL$2=CustomElementUtils.getAttachedPropertyValue,SET_VAL$2=CustomElementUtils.setAttachedPropertyValue,DEL_VAL$2=CustomElementUtils.deleteAttachedPropertyValue,HANDLES="top right bottom left topleft topright bottomright bottomleft".split(" "),RESCALE_FRAME="pacem:rescale:frame",MOUSE_DOWN$1="pacem:rescale:origin",DELEGATE$1="pacem:rescale:delegate";let PacemRescaleElement=class PacemRescaleElement extends PacemBehavior{constructor(){super(...arguments),this._bag=[],this._startHandler=e=>{e.stopPropagation();const t=CustomEventUtils.getEventCoordinates(e),r=e.currentTarget,n=t.page,s=/rescale-(.+)/.exec(r.className)[1],o=r.parentElement,a=new RescaleEvent(RescaleEventType.Start,RescaleEventArgsClass.fromArgs({currentPosition:n,origin:n,element:o,handle:s,startTime:Date.now()}),{cancelable:!0},e);this.dispatchEvent(a),a.defaultPrevented||(avoidHandler(e),SET_VAL$2(o,MOUSE_DOWN$1,n),SET_VAL$2(o,DELEGATE$1,new RescaleElementDelegate(o,s,this,(e,t,r)=>this.log.apply(this,[e,t,r]))))}}decorate(e){const t=e;getComputedStyle(t),Utils.addClass(t,PCSS+"-rescalable"),this._setFrame(t)}undecorate(e){const t=e;Utils.removeClass(t,PCSS+"-rescalable"),this._removeFrame(t)}viewActivatedCallback(){super.viewActivatedCallback(),this._syncHandles()}propertyChangedCallback(e,t,r,n){switch(super.propertyChangedCallback(e,t,r,n),e){case"disabled":case"handles":case"keepProportions":this._syncHandles()}}_syncHandles(){const e=this.handles||[RescaleHandle.All],t=null!=e.find(e=>e===RescaleHandle.All),r=this.disabled,n=this.keepProportions;for(let s of this._bag){let o=GET_VAL$2(s,RESCALE_FRAME);o.top.hidden=r||!t&&null==e.find(e=>e===RescaleHandle.Top),o.bottom.hidden=r||!t&&null==e.find(e=>e===RescaleHandle.Bottom),o.left.hidden=r||!t&&null==e.find(e=>e===RescaleHandle.Left),o.right.hidden=r||!t&&null==e.find(e=>e===RescaleHandle.Right),o.topleft.hidden=o.top.hidden||o.left.hidden,o.topright.hidden=o.top.hidden||o.right.hidden,o.bottomleft.hidden=o.bottom.hidden||o.left.hidden,o.bottomright.hidden=o.bottom.hidden||o.right.hidden,n&&(o.top.hidden=o.bottom.hidden=o.left.hidden=o.right.hidden=!0)}}_setFrame(e){let t={};for(let r of HANDLES){const n=t[r]=document.createElement("div");Utils.addClass(n,PCSS+"-rescale rescale-"+r),e.setAttribute("pacem",""),e.appendChild(n),n.addEventListener("mousedown",this._startHandler,!1),n.addEventListener("touchstart",this._startHandler,{capture:!1,passive:!0})}SET_VAL$2(e,RESCALE_FRAME,t),this._bag.push(e),this._syncHandles()}_removeFrame(e){const t=GET_VAL$2(e,RESCALE_FRAME);for(var r in t){const e=t[r];e.removeEventListener("mousedown",this._startHandler,!1),e.removeEventListener("touchstart",this._startHandler,{capture:!1}),e.remove()}DEL_VAL$2(e,RESCALE_FRAME),this._bag.splice(this._bag.indexOf(e),1)}};__decorate$8([Watch({emit:!1,converter:PropertyConverters.StringArray})],PacemRescaleElement.prototype,"handles",void 0),__decorate$8([Watch({emit:!1,converter:PropertyConverters.Number})],PacemRescaleElement.prototype,"minWidth",void 0),__decorate$8([Watch({emit:!1,converter:PropertyConverters.Number})],PacemRescaleElement.prototype,"maxWidth",void 0),__decorate$8([Watch({emit:!1,converter:PropertyConverters.Number})],PacemRescaleElement.prototype,"minHeight",void 0),__decorate$8([Watch({emit:!1,converter:PropertyConverters.Number})],PacemRescaleElement.prototype,"maxHeight",void 0),__decorate$8([Watch({emit:!1,converter:PropertyConverters.Boolean})],PacemRescaleElement.prototype,"keepProportions",void 0),PacemRescaleElement=__decorate$8([CustomElement({tagName:P+"-rescale"})],PacemRescaleElement);var __decorate$7=function(e,t,r,n){var s,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(s=e[i])&&(a=(o<3?s(a):o>3?s(t,r,a):s(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a};const GET_VAL$1=CustomElementUtils.getAttachedPropertyValue,SET_VAL$1=CustomElementUtils.setAttachedPropertyValue,DEL_VAL$1=CustomElementUtils.deleteAttachedPropertyValue,MOUSE_DOWN="pacem:rotate:origin",DELEGATE="pacem:rotate:delegate",OFFSET="pacem:rotate:offset",PIVOT="pacem:rotate:center";class RotateElementDelegate{constructor(e,t,r){this._element=e,this._rotator=t,this._logFn=r,this._startTime=Date.now(),this._moveHandler=e=>{e.stopPropagation();const t=this._element,r=this._previousPosition,n=this._rotator,s=n.minRotation,o=n.maxRotation,a=e instanceof MouseEvent?{x:e.pageX,y:e.pageY}:{x:e.touches[0].pageX,y:e.touches[0].pageY},i=this._pivot;var l=this._computeAngle(i,a,r)+this._previousAngle,c=this._constraintAngle(l,n.step);for(this._logFn(LogLevel.Log,`previousPosition: ${JSON.stringify(r)}, currentPosition: ${JSON.stringify(a)}`,"Rotating"),l>o&&(l=o);c>o&&n.step>0;)this._logFn(LogLevel.Log,`angle: ${c} constrained to max: ${o}`,"Rotating"),c-=n.step;for(l<s&&(l=s);c<s&&n.step>0;)this._logFn(LogLevel.Log,`angle: ${c} constrained to min: ${s}`,"Rotating"),c+=n.step;if(this._logFn(LogLevel.Log,`angle: ${c}, origin: ${JSON.stringify(this._originalPosition)}, current: ${JSON.stringify(a)}`,"Rotating"),c!=this._previousRenderedAngle){let r=new RotateEvent(RotateEventType.Rotate,RotateEventArgsClass.fromArgs({element:this._element,origin:this._originalPosition,startTime:this._startTime,currentPosition:a,rotation:c,center:this._pivot}),{cancelable:!0},e);if(this._rotator.dispatchEvent(r),!r.defaultPrevented){const e=this._originalTransform,r=pacemFoundation.Matrix2D.rotate(e,c-this._originalAngle);t.style.transform=`matrix(${r.a}, ${r.b}, ${r.c}, ${r.d}, ${r.e}, ${r.f})`,SET_VAL$1(this._element,OFFSET,c)}this._previousRenderedAngle=c}this._previousPosition=a,this._previousAngle=l},this._endHandler=e=>{e.stopPropagation();let t=new RotateEvent(RotateEventType.End,RotateEventArgsClass.fromArgs({element:this._element,origin:this._originalPosition,startTime:this._startTime,currentPosition:this._previousPosition,rotation:this._previousAngle,center:this._pivot}),{},e);this._rotator.dispatchEvent(t),DEL_VAL$1(this._element,DELEGATE),window.removeEventListener("mouseup",this._endHandler,!1),window.removeEventListener("touchend",this._endHandler,!1),window.removeEventListener("mousemove",this._moveHandler,!1),window.removeEventListener("touchmove",this._moveHandler,!1)},window.addEventListener("mouseup",this._endHandler,!1),window.addEventListener("touchend",this._endHandler,!1),window.addEventListener("mousemove",this._moveHandler,!1),window.addEventListener("touchmove",this._moveHandler,!1),this._originalPosition=this._previousPosition=GET_VAL$1(e,MOUSE_DOWN),this._originalAngle=this._previousAngle=this._previousRenderedAngle=GET_VAL$1(e,OFFSET,0),this._pivot=GET_VAL$1(e,PIVOT),this._originalTransform=Utils.Css.deserializeTransform(e)}_computeAngle(e,t,r){return pacemFoundation.Angle.angleBetween(e,t,r)}_constraintAngle(e,t){return t>0?pacemFoundation.Numbers.round(e,t):e}}let PacemRotateElement=class PacemRotateElement extends PacemBehavior{constructor(){super(...arguments),this._startHandler=e=>{if(this.disabled)return;const t=CustomEventUtils.getEventCoordinates(e),r=e.currentTarget,n=t.page,s=Utils.offsetRect(r),o=s.width/2,a=s.height/2;var i=this.center;if(Utils.isNull(i))i={x:s.x+o,y:s.y+a},r.style.transformOrigin="50% 50%";else{const e=s.x+o-i.x,t=s.y+a-i.y;r.style.transformOrigin=`${-e}px ${-t}px`}const l=new RotateEvent(RotateEventType.Start,RotateEventArgsClass.fromArgs({currentPosition:n,rotation:GET_VAL$1(r,OFFSET,0),center:i,origin:n,element:r,startTime:Date.now()}),{cancelable:!0},e);this.dispatchEvent(l),l.defaultPrevented||(avoidHandler(e),SET_VAL$1(r,MOUSE_DOWN,n),SET_VAL$1(r,PIVOT,i),SET_VAL$1(r,DELEGATE,new RotateElementDelegate(r,this,(e,t,r)=>this.log.apply(this,[e,t,r]))))}}decorate(e){const t=e;Utils.addClass(t,PCSS+"-rotatable");e.addEventListener("mousedown",this._startHandler,!1),e.addEventListener("touchstart",this._startHandler,{capture:!1,passive:!1})}undecorate(e){const t=e;Utils.removeClass(t,PCSS+"-rotatable");e.removeEventListener("mousedown",this._startHandler,!1),e.removeEventListener("touchstart",this._startHandler,{capture:!1,passive:!1})}};__decorate$7([Watch({emit:!1,converter:PropertyConverters.Number})],PacemRotateElement.prototype,"step",void 0),__decorate$7([Watch({emit:!1,converter:PropertyConverters.Number})],PacemRotateElement.prototype,"minRotation",void 0),__decorate$7([Watch({emit:!1,converter:PropertyConverters.Number})],PacemRotateElement.prototype,"maxRotation",void 0),__decorate$7([Watch({emit:!1,converter:PropertyConverters.Point})],PacemRotateElement.prototype,"center",void 0),PacemRotateElement=__decorate$7([CustomElement({tagName:P+"-rotate"})],PacemRotateElement);var __decorate$6=function(e,t,r,n){var s,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(s=e[i])&&(a=(o<3?s(a):o>3?s(t,r,a):s(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a};const GET_VAL=CustomElementUtils.getAttachedPropertyValue,SET_VAL=CustomElementUtils.setAttachedPropertyValue,DEL_VAL=CustomElementUtils.deleteAttachedPropertyValue,PREPARING_LABEL="pacem:swipe:preparing",DELEGATE_LABEL="pacem:swipe:delegate",DEFAULT_OPTIONS={fling:400,inertia:8,start:32,autoresetSpans:!1,bouncy:!0};class SwipeElementDelegate{constructor(e,t,r,n){this._element=e,this._swiper=t,this._init=r,this._logFn=n,this._moveHandler=e=>{const t=this.#C,r=this._buildStateFromUiEvent(e);for(t.push(this.#b=r);t.length>0&&r.timestamp-t[0].timestamp>100;)t.shift();const n=this._buildSwipeArgsFromState(r),s=new SwipeEvent(SwipeEventType.Pan,n,{cancelable:!0,bubbles:!1}),o=this._swiper;if(o.dispatchEvent(s),!s.defaultPrevented){let{delta:e}=this._delta(this._init,r);if(!o.options.bouncy){const t=o.snaps.slice().sort(),r=t[0],n=t[t.length-1],s=this._swiper.direction,{x:a,y:i}=e,l=a.clamp(r,n),c=i.clamp(r,n);e="vertical"===s?{x:0,y:c}:{x:l,y:0}}this._animateOffsetBy(e,0)}},this._endHandler=e=>{if(window.removeEventListener("pointermove",this._moveHandler),Utils.isNull(this.#b))console.log("How come?!");else{const e=this._buildSwipeArgsFromState(),t=new SwipeEvent(SwipeEventType.Swipe,e,{cancelable:!0,bubbles:!1}),r=this._swiper;if(r.dispatchEvent(t),!t.defaultPrevented){const t=new SwipeEvent("swipe"+e.direction,e,{cancelable:!0,bubbles:!1});if(r.dispatchEvent(t),!t.defaultPrevented){const t=r.snaps??[0];t.sort();const n=r.options.bouncy?e.predictedDelta:e.predictedDelta.clamp(t[0],t[t.length-1]),s=t.reduce((e,t)=>Math.abs(t-n)<Math.abs(e-n)?t:e,0),o="vertical"===r.direction,a=e.predictedDuration,i=o?{x:0,y:n}:{x:n,y:0},l=()=>{const t=new SwipeEvent(SwipeEventType.SwipeAnimationEnd,e,{cancelable:!1,bubbles:!1});return r.dispatchEvent(t)?t:null};if(s.isCloseTo(0))this._animateOffsetBy(i,a).then(()=>{this._animateOffsetBy({x:0,y:0},.3,"cubic-bezier(.37,-0.01,.34,1.43)").then(()=>l())});else{const t=(s-n)*(s-e.delta)>=0,c=o?{x:0,y:s}:{x:s,y:0},m=()=>this._animateOffsetBy(c,t?a:.2,"cubic-bezier(0,0,0,1)");(()=>t?Promise.resolve():this._animateOffsetBy(i,a))().then(()=>m().then(()=>{l();const t=new SwipeEvent("swipe"+e.direction+"animationend",e,{cancelable:!1,bubbles:!1});r.dispatchEvent(t)}))}this.#w.autoresetSpans&&(this._swiper.snaps=t.map(e=>e-s))}}}this.dispose()},this.#C=[];const s=e;this.#w=Utils.extend({},DEFAULT_OPTIONS,t.options??{}),this.#A=Utils.deserializeTransform(getComputedStyle(s)),window.addEventListener("pointermove",this._moveHandler,!1),window.addEventListener("pointerup",this._endHandler,!1),window.addEventListener("pointercancel",this._endHandler,!1)}_serializeTransformMatrix(e){return`matrix3d(${e.a},${e.b},0,0,${e.c},${e.d},0,0,0,0,1,0,${e.e},${e.f},0,1)`}_animateOffsetBy(e,t,r=Utils.Css.getVariableValue(`--${PCSS}-easing-out-sine`)){const n=pacemFoundation.Matrix2D.translate(this.#A,e),s=1e3*Math.min(.3,t),o=this._element,a=this._serializeTransformMatrix(n);return new Promise((e,t)=>{const n=o.animate([{transform:a}],{fill:"forwards",duration:s,easing:r}),i=t=>{n.removeEventListener("finish",i),n.commitStyles(),n.cancel(),e()};n.addEventListener("finish",i,!1)})}_buildStateFromUiEvent(e){const t=CustomEventUtils.getEventCoordinates(e),r=performance.now();return{position:t.client,timestamp:r}}_buildSwipeArgsFromState(e=this.#b){const t=this.#w,r=this.speed,n="vertical"===this._swiper.direction,s=n?0:r,o=n?r:0;return SwipeEventArgsClass.fromArgs({position:e.position,element:this._element,t0:this._init,timestamp:e.timestamp,inertia:t.inertia,fling:t.fling,horizontalspeed:s,verticalspeed:o,vertical:n})}_delta(e,t){const{position:{x:r,y:n},timestamp:s}=e,{position:{x:o,y:a},timestamp:i}=t;return{delta:"vertical"===this._swiper.direction?{x:0,y:a-n}:{x:o-r,y:0},time:i-s}}get speed(){const e=this.#C;if(e.length<2)return 0;const t=e[0],r=e[e.length-1],{delta:n,time:s}=this._delta(t,r),o=s/1e3,a=n.x+n.y;return o>0?a/o:0}#w;#C;#A;#b;dispose(){const e=this._element;DEL_VAL(e,DELEGATE_LABEL),window.removeEventListener("pointercancel",this._endHandler),window.removeEventListener("pointerup",this._endHandler)}}let PacemSwipeElement=class PacemSwipeElement extends PacemBehavior{constructor(){super(...arguments),this._prepareHandler=e=>{if(this.disabled)return;const t=CustomEventUtils.getEventCoordinates(e),r=e.currentTarget,n=t.client,s=this.handleSelector;(Utils.isNullOrEmpty(s)||r.querySelector(s)===e.target)&&(e.stopPropagation(),SET_VAL(r,PREPARING_LABEL,{position:n,timestamp:performance.now()}),SET_VAL(window,PREPARING_LABEL,r),window.addEventListener("pointermove",this._startHandler,!1),window.addEventListener("pointerup",this._undoHandler,!1))},this._startHandler=e=>{const t=GET_VAL(window,PREPARING_LABEL),r=GET_VAL(t,PREPARING_LABEL);if(Utils.isNull(r))return void this._undo(t);const n=CustomEventUtils.getEventCoordinates(e),{x:s,y:o}=n.client,{position:{x:a,y:i}}=r,l="vertical"===(this.direction||"horizontal")?o-i:s-a,c=this.#w,{start:m}=c;if(Math.abs(l)>m){this._undo(t);const e=this,n=new SwipeElementDelegate(t,e,r,(t,r,n)=>{e.log(t,r,n)});SET_VAL(t,DELEGATE_LABEL,n)}},this._undoHandler=e=>{const t=e.currentTarget;this._undo(t)}}decorate(e){(e instanceof HTMLElement||e instanceof SVGElement)&&Utils.addClass(e,PCSS+"-swipe"),e.addEventListener("pointerdown",this._prepareHandler,!1)}undecorate(e){(e instanceof HTMLElement||e instanceof SVGElement)&&Utils.removeClass(e,PCSS+"-swipe"),e.removeEventListener("pointerdown",this._prepareHandler,!1)}viewActivatedCallback(){super.viewActivatedCallback(),this._setOptions()}propertyChangedCallback(e,t,r,n){if(super.propertyChangedCallback(e,t,r,n),!n&&"options"===e)this._setOptions(r)}#w;_setOptions(e=this.options){this.#w=Utils.extend({},DEFAULT_OPTIONS,e??{})}_undo(e){window.removeEventListener("pointermove",this._startHandler),window.removeEventListener("pointerup",this._undoHandler),DEL_VAL(e,PREPARING_LABEL),DEL_VAL(window,PREPARING_LABEL)}};__decorate$6([Watch({emit:!1,reflectBack:!0,converter:{convert:(e,t)=>e.match(/[-+]?[\d\.]+/g).map(e=>parseFloat(e)),convertBack:(e,t)=>e?.join(" ")}})],PacemSwipeElement.prototype,"snaps",void 0),__decorate$6([Watch({emit:!1,converter:PropertyConverters.String,reflectBack:!0})],PacemSwipeElement.prototype,"direction",void 0),__decorate$6([Watch({emit:!1,converter:PropertyConverters.Json})],PacemSwipeElement.prototype,"options",void 0),__decorate$6([Watch({emit:!1,converter:PropertyConverters.String,reflectBack:!0})],PacemSwipeElement.prototype,"handleSelector",void 0),PacemSwipeElement=__decorate$6([CustomElement({tagName:P+"-swipe"})],PacemSwipeElement);var __decorate$5=function(e,t,r,n){var s,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(s=e[i])&&(a=(o<3?s(a):o>3?s(t,r,a):s(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a};const EasingConverter={convert:e=>Easings[e]??Easings.linear};class AnimationElement extends PacemItemElement{}__decorate$5([Watch({emit:!1,converter:PropertyConverters.Element})],AnimationElement.prototype,"target",void 0),__decorate$5([Watch({emit:!1,converter:PropertyConverters.String})],AnimationElement.prototype,"property",void 0),__decorate$5([Watch({emit:!1,converter:PropertyConverters.Number})],AnimationElement.prototype,"delay",void 0),__decorate$5([Watch({emit:!1,converter:PropertyConverters.Number})],AnimationElement.prototype,"duration",void 0),__decorate$5([Watch({emit:!1,converter:EasingConverter})],AnimationElement.prototype,"easing",void 0),__decorate$5([Watch({emit:!1,converter:PropertyConverters.Number})],AnimationElement.prototype,"iterations",void 0),__decorate$5([Watch({emit:!1,converter:PropertyConverters.String})],AnimationElement.prototype,"direction",void 0);class TweenAnimationElement extends AnimationElement{constructor(e=new TweenService){super(),this._tweener=e}get tweener(){return this._tweener}#T=!1;startAnimation(){return this.#T=!1,new Promise((e,t)=>{this._tweener.run(0,1,this.duration??0,this.delay??0,this.easing??Easings.linear,(e,t)=>{this.#T||(this.target[this.property]=this.tweenInterpolationCallback(e,t))}).then(e)})}cancelAnimation(){this.#T=!0}}var __decorate$4=function(e,t,r,n){var s,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(s=e[i])&&(a=(o<3?s(a):o>3?s(t,r,a):s(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a};const DEFAULT_FROM$2={h:0,l:0,s:.5,a:1},DEFAULT_TO$2={h:0,l:1,s:.5,a:1};let PacemColorAnimationElement=class PacemColorAnimationElement extends TweenAnimationElement{propertyChangedCallback(e,t,r,n){if(super.propertyChangedCallback(e,t,r,n),!n)switch(e){case"from":this._precomputeFrom(r);break;case"to":this._precomputeTo(r)}}#R=DEFAULT_FROM$2;#S=DEFAULT_TO$2;viewActivatedCallback(){super.viewActivatedCallback(),this._precomputeColors()}_precomputeColors(){this._precomputeFrom(),this._precomputeTo()}_precomputeFrom(e=this.from){this.#R=this._precomputeColor(e)??DEFAULT_FROM$2}_precomputeTo(e=this.to){this.#S=this._precomputeColor(e)??DEFAULT_FROM$2}_precomputeColor(e){if(!Utils.isNullOrEmpty(e))try{return this._parseColor(e)}catch{return null}}_parseColor(e){return pacemFoundation.Colors.hsl(pacemFoundation.Colors.parse(e))}tweenInterpolationCallback(e,t){const r=this.#R,n=this.#S,s={h:(n.h-r.h)*t+r.h,s:(n.s-r.s)*t+r.s,l:(n.l-r.l)*t+r.l,a:(n.a-r.a)*t+r.a};return pacemFoundation.Colors.stringify(s)}};__decorate$4([Watch({emit:!1,converter:PropertyConverters.String})],PacemColorAnimationElement.prototype,"from",void 0),__decorate$4([Watch({emit:!1,converter:PropertyConverters.String})],PacemColorAnimationElement.prototype,"to",void 0),PacemColorAnimationElement=__decorate$4([CustomElement({tagName:P+"-color-animation"})],PacemColorAnimationElement);var __decorate$3=function(e,t,r,n){var s,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(s=e[i])&&(a=(o<3?s(a):o>3?s(t,r,a):s(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a};const DEFAULT_FROM$1=0,DEFAULT_TO$1=1;let PacemNumberAnimationElement=class PacemNumberAnimationElement extends TweenAnimationElement{tweenInterpolationCallback(e,t){const r=this.to??DEFAULT_TO$1,n=this.from??DEFAULT_FROM$1;return(r-n)*t+n}};__decorate$3([Watch({emit:!1,converter:PropertyConverters.Number})],PacemNumberAnimationElement.prototype,"from",void 0),__decorate$3([Watch({emit:!1,converter:PropertyConverters.Number})],PacemNumberAnimationElement.prototype,"to",void 0),PacemNumberAnimationElement=__decorate$3([CustomElement({tagName:P+"-number-animation"})],PacemNumberAnimationElement);var __decorate$2=function(e,t,r,n){var s,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(s=e[i])&&(a=(o<3?s(a):o>3?s(t,r,a):s(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a};const DEFAULT_FROM={x:0,y:0},DEFAULT_TO={x:1,y:1};let PacemPointAnimationElement=class PacemPointAnimationElement extends TweenAnimationElement{tweenInterpolationCallback(e,t){const r=this.to??DEFAULT_TO,n=this.from??DEFAULT_FROM;return{x:(r.x-n.x)*t+n.x,y:(r.y-n.y)*t+n.y}}};__decorate$2([Watch({emit:!1,converter:PropertyConverters.Point})],PacemPointAnimationElement.prototype,"from",void 0),__decorate$2([Watch({emit:!1,converter:PropertyConverters.Point})],PacemPointAnimationElement.prototype,"to",void 0),PacemPointAnimationElement=__decorate$2([CustomElement({tagName:P+"-point-animation"})],PacemPointAnimationElement);var __decorate$1=function(e,t,r,n){var s,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(s=e[i])&&(a=(o<3?s(a):o>3?s(t,r,a):s(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a};let PacemStoryboardElement=class PacemStoryboardElement extends PacemItemsContainerElement{validate(e){return e instanceof AnimationElement}viewActivatedCallback(){super.viewActivatedCallback(),this._animate()}propertyChangedCallback(e,t,r,n){if(super.propertyChangedCallback(e,t,r,n),!n)switch(e){case"datasource":this._buildDatasourceFromDatasource(r);break;case"items":this._buildDatasourceFromItems(r);break;case"_adaptedDatasource":case"autostart":this._animate()}}_buildDatasourceFromItems(e=this.items){this._adaptedDatasource=e||[]}_buildDatasourceFromDatasource(e=this.datasource){this._adaptedDatasource=e||[]}_animate(e=this.autostart){const t=this._adaptedDatasource,r=[];if(e&&!Utils.isNullOrEmpty(t))for(let e of t)r.push(e.startAnimation());return Promise.all(r)}cancelAnimation(){const e=this._adaptedDatasource||[];for(let t of e)t.cancelAnimation()}startAnimation(){return this._animate(!0)}};__decorate$1([Watch({emit:!1,converter:PropertyConverters.Boolean})],PacemStoryboardElement.prototype,"autostart",void 0),__decorate$1([Watch({emit:!1,converter:PropertyConverters.Number})],PacemStoryboardElement.prototype,"duration",void 0),__decorate$1([Watch({emit:!1})],PacemStoryboardElement.prototype,"datasource",void 0),__decorate$1([Watch({emit:!1})],PacemStoryboardElement.prototype,"_adaptedDatasource",void 0),PacemStoryboardElement=__decorate$1([CustomElement({tagName:P+"-storyboard"})],PacemStoryboardElement);var indexComponents=Object.freeze({__proto__:null,AnimationElement:AnimationElement,CustomItemCommandEvent:CustomItemCommandEvent,get DockMode(){return DockMode},ItemCommandEvent:ItemCommandEvent,ItemRegisterEvent:ItemRegisterEvent,ItemRegisterEventName:ItemRegisterEventName,ItemUnregisterEvent:ItemUnregisterEvent,ItemUnregisterEventName:ItemUnregisterEventName,KeyboardShortcutExecuteEventName:KeyboardShortcutExecuteEventName,PacemAdapter:PacemAdapter,get PacemAnnihilatorElement(){return PacemAnnihilatorElement},get PacemBeforeunloadElement(){return PacemBeforeunloadElement},get PacemBodyProxyElement(){return PacemBodyProxyElement},get PacemBroadcastChannelProxyElement(){return PacemBroadcastChannelProxyElement},get PacemBrowserDetectElement(){return PacemBrowserDetectElement},get PacemColorAnimationElement(){return PacemColorAnimationElement},PacemContentElement:PacemContentElement,PacemCrossItemsContainerElement:PacemCrossItemsContainerElement,get PacemDataElement(){return PacemDataElement},get PacemDockElement(){return PacemDockElement},get PacemDragDropElement(){return PacemDragDropElement},PacemElement:PacemElement,get PacemElementProxyElement(){return PacemElementProxyElement},get PacemEventProxyElement(){return PacemEventProxyElement},get PacemFetchElement(){return PacemFetchElement},get PacemHistoryElement(){return PacemHistoryElement},get PacemHtmlProxyElement(){return PacemHtmlProxyElement},get PacemIfElement(){return PacemIfElement},PacemItemElement:PacemItemElement,PacemItemsContainerElement:PacemItemsContainerElement,PacemIterableElement:PacemIterableElement,PacemIterativeElement:PacemIterativeElement,get PacemLayoutProxyElement(){return PacemLayoutProxyElement},get PacemMetaProxyElement(){return PacemMetaProxyElement},get PacemNumberAnimationElement(){return PacemNumberAnimationElement},get PacemOnlineStatusElement(){return PacemOnlineStatusElement},get PacemPanelElement(){return PacemPanelElement},get PacemPointAnimationElement(){return PacemPointAnimationElement},get PacemRepeaterElement(){return PacemRepeaterElement},get PacemRescaleElement(){return PacemRescaleElement},get PacemResizeElement(){return PacemResizeElement},get PacemRotateElement(){return PacemRotateElement},get PacemRouterElement(){return PacemRouterElement},PacemSafeContentElement:PacemSafeContentElement,get PacemScrollAwareElement(){return PacemScrollAwareElement},get PacemServiceWorkerProxyElement(){return PacemServiceWorkerProxyElement},get PacemShellProxyElement(){return PacemShellProxyElement},get PacemShortcutElement(){return PacemShortcutElement},get PacemSpanElement(){return PacemSpanElement},get PacemStoryboardElement(){return PacemStoryboardElement},get PacemStyleProxyElement(){return PacemStyleProxyElement},get PacemSwipeElement(){return PacemSwipeElement},get PacemTemplateProxyElement(){return PacemTemplateProxyElement},get PacemTextElement(){return PacemTextElement},get PacemTimerElement(){return PacemTimerElement},get PacemTitleProxyElement(){return PacemTitleProxyElement},PacemTransferProxyElement:PacemTransferProxyElement,get PacemTweenElement(){return PacemTweenElement},PacemUnsafeContentElement:PacemUnsafeContentElement,get PacemViewportAwareElement(){return PacemViewportAwareElement},get PacemWebWorkerProxyElement(){return PacemWebWorkerProxyElement},RepeaterItem:RepeaterItem,RepeaterItemCreateEvent:RepeaterItemCreateEvent,RepeaterItemCreateEventName:RepeaterItemCreateEventName,RepeaterItemEvent:RepeaterItemEvent,RepeaterItemRemoveEvent:RepeaterItemRemoveEvent,RepeaterItemRemoveEventName:RepeaterItemRemoveEventName,ResizeEvent:ResizeEvent,ResizeEventName:ResizeEventName,ScrollEvent:ScrollEvent,ScrollEventName:ScrollEventName,StateEvent:StateEvent,TweenAnimationElement:TweenAnimationElement,isItemsContainer:isItemsContainer}),indexBehaviors=Object.freeze({__proto__:null,PacemBehavior:PacemBehavior}),indexLogging=Object.freeze({__proto__:null,get LogLevel(){return LogLevel}});const Defaults={USE_SHADOW_ROOT:!1},EMPTY_MATCHER=/a^/;class Regex{static split(e,t){for(var r,n=0,s=[];null!=(r=t.exec(e));){s.push({value:e.substr(n,r.index-n),match:!1,index:n});let t=r[0].length;s.push({value:e.substr(r.index,t),match:!0,index:r.index}),n=r.index+t}return n<e.length&&s.push({value:e.substr(n,e.length-n),match:!1,index:n}),s}}var __decorate=function(e,t,r,n){var s,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(s=e[i])&&(a=(o<3?s(a):o>3?s(t,r,a):s(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a};function escapeRegExp(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function buildDiffOptions(e,t,r,n){let s,o,a="char",i="full";return["line","word","char"].includes(e)?(a=e,i=t,s=r,o=n):(i=e,s=t,o=r),{mode:a,output:i,cssAdd:s??"fill-green-container",cssRemove:o??"fill-red-container"}}class Transforms{static highlight(e,t,r=PCSS+"-highlight"){if(!t||!e)return e;let n=e.substring(0);const s=t.substring(0).split(" ");for(var o=0;o<s.length;o++){const e=escapeRegExp(s[o]),t=new RegExp("(?![^<>]*>)"+e,"gi");n=n.replace(t,function(e,t,n){var s;return(s=n.indexOf("<",t))!=n.indexOf("</",t)||-1==s?'<span class="'+r+'">'+e+"</span>":e})}return n}static diff(e,t,r="full",n,s,o){const{mode:a,output:i,cssAdd:l,cssRemove:c}=buildDiffOptions(r,n,s,o);return Utils.diff(e,t,a).reduce((e,t)=>{const r=t.type;if("="===r)e+=t.value;else if("+"===r&&"left"!==i||"-"===r&&"right"!==i){const n=t.value.split(/\r?\n/),s=n.length-1;for(let t=0;t<=s;t++){const o=n[t];if(!Utils.isNullOrEmpty(o)||t<s){e+=`<span class="${PCSS}-token ${"-"===r?c:l} text-prewrap">${o||" "}</span>`}t<s&&(e+="\n")}}return e},"")}static padleft(e,t,r){return Utils.leftPad(""+e,t,r)}static size(e){return e>0?e<1024?e+" B":e<1048576?(e/1024).toFixed(2)+" kB":e<1073741824?(e/1048576).toFixed(2)+" MB":(e/1073741824).toFixed(2)+" GB":"-"}static decToDeg(e,t="° ",r="' ",n='"'){const s=Math.sign(e);e=Math.abs(e);const o=Math.floor(e),a=60*(e-o),i=Math.floor(a),l=60*(a-i);return(s<0?"-":"")+o+t+i+r+Math.floor(l)+n}static date(e,t,r){var n=Utils.parseDate(e),s=r||navigator.language;if(!Utils.isNull(t)&&"string"!=typeof t)return n.toLocaleString(r,t);switch(t){case"iso":return n.toISOString();case"isodate":return n.toISOString().substring(0,10);case"localdate":return`${n.getFullYear()}-${Utils.leftPad(n.getMonth()+1,2,"0")}-${Utils.leftPad(n.getDate(),2,"0")}`;case"time":case"localtime":return n.toLocaleTimeString(s,{hour:"numeric",minute:"numeric",second:"numeric",hour12:!1});case"full":const e=-n.getTimezoneOffset()/60;var o="";return 0!=e&&(o=" (UTC"+(e>0?"+":"-")+Math.abs(e).toLocaleString()+")"),n.toLocaleString(s)+o;default:return n.toLocaleDateString(s)}}static timespan(e,t,r,n){const s=Utils.parseDate(e),o=Utils.parseDate(t).valueOf()-s.valueOf(),a=o<0?"-":"",i=Math.abs(o);if("object"==typeof r){const e={timeZone:"UTC",hour12:!1},t=Utils.extend(e,r);return(a||(r.sign?"+":""))+Intl.DateTimeFormat(n??navigator.language,t).format(i)}const l=864e5,c=36e5;return`${a}${Math.floor(i/l)}d ${Math.floor(i%l/c)}h ${Math.floor(i%c/6e4)}m ${Math.floor(i%6e4/1e3)}s ${Math.floor(i%1e3)}ms`}static currency(e,t,r){return new Intl.NumberFormat(r??navigator.language,{style:"currency",currency:t}).format(e)}static number(e,t,r){return"string"==typeof t?new Intl.NumberFormat(t||navigator.language).format(e):new Intl.NumberFormat(r??navigator.language,t).format(e)}static filter(e,t){return e.filter(t)}static orderby(e,t){return e.sort((e,r)=>(Utils.isNullOrEmpty(t)||(e=e[t],r=r[t]),e>r?1:e<r?-1:0))}static isMatch(e,t,r){return new RegExp(t,r).test(e)}static isEmpty(e){return Utils.isEmpty(e)}static isNull(e){return Utils.isNull(e)}static isNullOrEmpty(e){return Utils.isNullOrEmpty(e)}static getCssVariable(e){return Utils.Css.getVariableValue(e)}static getQuerystring(e){return Utils.URIs.parseQuery()[e]}static importThemeWebFonts(){return CustomElementUtils.Theme.importWebFonts()}static findHostContext(e){return CustomElementUtils.findHostContext(e)}}__decorate([Transformer()],Transforms,"highlight",null),__decorate([Transformer()],Transforms,"diff",null),__decorate([Transformer()],Transforms,"padleft",null),__decorate([Transformer()],Transforms,"size",null),__decorate([Transformer()],Transforms,"decToDeg",null),__decorate([Transformer()],Transforms,"date",null),__decorate([Transformer()],Transforms,"timespan",null),__decorate([Transformer()],Transforms,"currency",null),__decorate([Transformer()],Transforms,"number",null),__decorate([Transformer()],Transforms,"filter",null),__decorate([Transformer()],Transforms,"orderby",null),__decorate([Transformer("regex.")],Transforms,"isMatch",null),__decorate([Transformer()],Transforms,"isEmpty",null),__decorate([Transformer()],Transforms,"isNull",null),__decorate([Transformer()],Transforms,"isNullOrEmpty",null),__decorate([Transformer("cssvar")],Transforms,"getCssVariable",null),__decorate([Transformer("querystring")],Transforms,"getQuerystring",null),__decorate([Transformer()],Transforms,"importThemeWebFonts",null),__decorate([Transformer("host")],Transforms,"findHostContext",null);var Output=Object.freeze({__proto__:null,Animations:indexAnimations,AttributeChangeEvent:AttributeChangeEvent,AttributeChangeEventName:AttributeChangeEventName,Behaviors:indexBehaviors,CommandEvent:CommandEvent,CommandEventName:CommandEventName,Components:indexComponents,Concurrent:Concurrent,CurrentIndexChangeEvent:CurrentIndexChangeEvent,CustomElement:CustomElement,CustomElementUtils:CustomElementUtils,CustomEventUtils:CustomEventUtils,CustomTypedEvent:CustomTypedEvent,CustomUIEvent:CustomUIEvent,Debounce:Debounce,DeepCloner:DeepCloner,DefaultComparer:DefaultComparer,Defaults:Defaults,DeferPromise:DeferPromise,EMPTY_MATCHER:EMPTY_MATCHER,get EventKeyModifier(){return EventKeyModifier},Expression:Expression,INSTANCE_BINDINGS_VAR:INSTANCE_BINDINGS_VAR,INSTANCE_HOST_VAR:INSTANCE_HOST_VAR,INSTANCE_SCOPE_VAR:INSTANCE_SCOPE_VAR,Json:Json,get JsonFunctionConversion(){return JsonFunctionConversion},Logging:indexLogging,Net:indexNet,P:P,PCSS:PCSS,PacemEventTarget:PacemEventTarget,PropertyChangeEvent:PropertyChangeEvent,PropertyChangeEventName:PropertyChangeEventName,PropertyConverters:PropertyConverters,Regex:Regex,Repeater:Repeater,RepeaterItem:RepeaterItem$1,RouterNavigateEvent:RouterNavigateEvent,RouterNavigateEventName:RouterNavigateEventName,RouterNavigatingEvent:RouterNavigatingEvent,RouterNavigatingEventName:RouterNavigatingEventName,Storage:Storage,TemplateElement:TemplateElement,Throttle:Throttle,Transformer:Transformer,Type:Type,UI:indexUi,Utils:Utils,ViewChild:ViewChild,WATCH_PROPS_VAR:WATCH_PROPS_VAR,Watch:Watch,avoidHandler:avoidHandler,preventDefaultHandler:preventDefaultHandler,stopPropagationHandler:stopPropagationHandler});pacemFoundation.DeepMerger.merge(Output)})(Pacem);
|