vendor: 4,912 bytes, lines 1-41
1import{r as t,h as i,a as e}from"./p-a13a36bb.js";import{a as s,t as n,p as o}from"./p-ac634c7f.js";import"./p-be0dc5c8.js";import"./p-f2660943.js";import"./p-9cc49b65.js"; 2/** 3 * @license 4 * Copyright (c) 2017 The Polymer Project Authors. All rights reserved. 5 * This code may only be used under the BSD style license found at 6 * http://polymer.github.io/LICENSE.txt 7 * The complete set of authors may be found at 8 * http://polymer.github.io/AUTHORS.txt 9 * The complete set of contributors may be found at 10 * http://polymer.github.io/CONTRIBUTORS.txt 11 * Code distributed by Google as part of the polymer project is also 12 * subject to an additional IP rights grant found at 13 * http://polymer.github.io/PATENTS.txt 14 */const a="undefined"!=typeof window&&null!=window.customElements&&void 0!==window.customElements.polyfillWrapFlushCallback,r=(t,i,e=null)=>{for(;i!==e;){const e=i.nextSibling;t.removeChild(i),i=e}},h=`{{lit-${String(Math.random()).slice(2)}}}`,l=`\x3c!--${h}--\x3e`,d=new RegExp(`${h}|${l}`);class c{constructor(t,i){this.parts=[],this.element=i;const e=[],s=[],n=document.createTreeWalker(i.content,133,null,!1);let o=0,a=-1,r=0;const{strings:l,values:{length:c}}=t;for(;r<c;){const t=n.nextNode();if(null!==t){if(a++,1===t.nodeType){if(t.hasAttributes()){const i=t.attributes,{length:e}=i;let s=0;for(let t=0;t<e;t++)p(i[t].name,"$lit$")&&s++;for(;s-- >0;){const i=f.exec(l[r])[2],e=i.toLowerCase()+"$lit$",s=t.getAttribute(e);t.removeAttribute(e);const n=s.split(d);this.parts.push({type:"attribute",index:a,name:i,strings:n}),r+=n.length-1}}"TEMPLATE"===t.tagName&&(s.push(t),n.currentNode=t.content)}else if(3===t.nodeType){const i=t.data;if(i.indexOf(h)>=0){const s=t.parentNode,n=i.split(d),o=n.length-1;for(let i=0;i<o;i++){let e,o=n[i];if(""===o)e=m();else{const t=f.exec(o);null!==t&&p(t[2],"$lit$")&&(o=o.slice(0,t.index)+t[1]+t[2].slice(0,-"$lit$".length)+t[3]),e=document.createTextNode(o)}s.insertBefore(e,t),this.parts.push({type:"node",index:++a})}""===n[o]?(s.insertBefore(m(),t),e.push(t)):t.data=n[o],r+=o}}else if(8===t.nodeType)if(t.data===h){const i=t.parentNode;null!==t.previousSibling&&a!==o||(a++,i.insertBefore(m(),t)),o=a,this.parts.push({type:"node",index:a}),null===t.nextSibling?t.data="":(e.push(t),a--),r++}else{let i=-1;for(;-1!==(i=t.data.indexOf(h,i+1));)this.parts.push({type:"node",index:-1}),r++}}else n.currentNode=s.pop()}for(const t of e)t.parentNode.removeChild(t)}}const p=(t,i)=>{const e=t.length-i.length;return e>=0&&t.slice(e)===i},u=t=>-1!==t.index,m=()=>document.createComment(""),f=/([ \x09\x0a\x0c\x0d])([^\0-\x1F\x7F-\x9F "'>=/]+)([ \x09\x0a\x0c\x0d]*=[ \x09\x0a\x0c\x0d]*(?:[^ \x09\x0a\x0c\x0d"'`<>=]*|"[^"]*|'[^']*))$/;function g(t,i){const{element:{content:e},parts:s}=t,n=document.createTreeWalker(e,133,null,!1);let o=v(s),a=s[o],r=-1,h=0;const l=[];let d=null;for(;n.nextNode();){r++;const t=n.currentNode;for(t.previousSibling===d&&(d=null),i.has(t)&&(l.push(t),null===d&&(d=t)),null!==d&&h++;void 0!==a&&a.index===r;)a.index=null!==d?-1:a.index-h,o=v(s,o),a=s[o]}l.forEach((t=>t.parentNode.removeChild(t)))}const w=t=>{let i=11===t.nodeType?0:1;const e=document.createTreeWalker(t,133,null,!1);for(;e.nextNode();)i++;return i},v=(t,i=-1)=>{for(let e=i+1;e<t.length;e++)if(u(t[e]))return e;return-1},x=new WeakMap,b=t=>"function"==typeof t&&x.has(t),y={},k={}; 15/** 16 * @license 17 * Copyright (c) 2017 The Polymer Project Authors. All rights reserved. 18 * This code may only be used under the BSD style license found at 19 * http://polymer.github.io/LICENSE.txt 20 * The complete set of authors may be found at 21 * http://polymer.github.io/AUTHORS.txt 22 * The complete set of contributors may be found at 23 * http://polymer.github.io/CONTRIBUTORS.txt 24 * Code distributed by Google as part of the polymer project is also 25 * subject to an additional IP rights grant found at 26 * http://polymer.github.io/PATENTS.txt 27 */ 28/** 29 * @license 30 * Copyright (c) 2017 The Polymer Project Authors. All rights reserved. 31 * This code may only be used under the BSD style license found at 32 * http://polymer.github.io/LICENSE.txt 33 * The complete set of authors may be found at 34 * http://polymer.github.io/AUTHORS.txt 35 * The complete set of contributors may be found at 36 * http://polymer.github.io/CONTRIBUTORS.txt 37 * Code distributed by Google as part of the polymer project is also 38 * subject to an additional IP rights grant found at 39 * http://polymer.github.io/PATENTS.txt 40 */ 41class C{constructor(t,i,e){this.__parts=[],this.template=t,this.processor=i,this.options=e}update(t){let i=0;for(const e of this.__parts)void 0!==e&&e.setValue(t[i]),i++;for(const t of this.__parts)void 0!==t&&t.commit()}_clone(){const t=a?this.template.element.content.cloneNode(!0):document.importNode(this.template.element.content,!0),i=[],e=this.template.parts,s=document.createTreeWalker(t,133,null,!1);let n,o=0,r=0,h=s.nextNode();for(;o<e.length;)if(n=e[o],u(n)){for(;r<n.index;
vendor: 8,228 bytes, lines 41-94
41)r++,"TEMPLATE"===h.nodeName&&(i.push(h),s.currentNode=h.content),null===(h=s.nextNode())&&(s.currentNode=i.pop(),h=s.nextNode());if("node"===n.type){const t=this.processor.handleTextExpression(this.options);t.insertAfterNode(h.previousSibling),this.__parts.push(t)}else this.__parts.push(...this.processor.handleAttributeExpressions(h,n.name,n.strings,this.options));o++}else this.__parts.push(void 0),o++;return a&&(document.adoptNode(t),customElements.upgrade(t)),t 42/** 43 * @license 44 * Copyright (c) 2017 The Polymer Project Authors. All rights reserved. 45 * This code may only be used under the BSD style license found at 46 * http://polymer.github.io/LICENSE.txt 47 * The complete set of authors may be found at 48 * http://polymer.github.io/AUTHORS.txt 49 * The complete set of contributors may be found at 50 * http://polymer.github.io/CONTRIBUTORS.txt 51 * Code distributed by Google as part of the polymer project is also 52 * subject to an additional IP rights grant found at 53 * http://polymer.github.io/PATENTS.txt 54 */}}const S=` ${h} `;class ${constructor(t,i,e,s){this.strings=t,this.values=i,this.type=e,this.processor=s}getHTML(){const t=this.strings.length-1;let i="",e=!1;for(let s=0;s<t;s++){const t=this.strings[s],n=t.lastIndexOf("\x3c!--");e=(n>-1||e)&&-1===t.indexOf("--\x3e",n+1);const o=f.exec(t);i+=null===o?t+(e?S:l):t.substr(0,o.index)+o[1]+o[2]+"$lit$"+o[3]+h}return i+=this.strings[t],i}getTemplateElement(){const t=document.createElement("template");return t.innerHTML=this.getHTML(),t 55/** 56 * @license 57 * Copyright (c) 2017 The Polymer Project Authors. All rights reserved. 58 * This code may only be used under the BSD style license found at 59 * http://polymer.github.io/LICENSE.txt 60 * The complete set of authors may be found at 61 * http://polymer.github.io/AUTHORS.txt 62 * The complete set of contributors may be found at 63 * http://polymer.github.io/CONTRIBUTORS.txt 64 * Code distributed by Google as part of the polymer project is also 65 * subject to an additional IP rights grant found at 66 * http://polymer.github.io/PATENTS.txt 67 */}}const B=t=>null===t||!("object"==typeof t||"function"==typeof t),j=t=>Array.isArray(t)||!(!t||!t[Symbol.iterator]);class _{constructor(t,i,e){this.dirty=!0,this.element=t,this.name=i,this.strings=e,this.parts=[];for(let t=0;t<e.length-1;t++)this.parts[t]=this._createPart()}_createPart(){return new z(this)}_getValue(){const t=this.strings,i=t.length-1;let e="";for(let s=0;s<i;s++){e+=t[s];const i=this.parts[s];if(void 0!==i){const t=i.value;if(B(t)||!j(t))e+="string"==typeof t?t:String(t);else for(const i of t)e+="string"==typeof i?i:String(i)}}return e+=t[i],e}commit(){this.dirty&&(this.dirty=!1,this.element.setAttribute(this.name,this._getValue()))}}class z{constructor(t){this.value=void 0,this.committer=t}setValue(t){t===y||B(t)&&t===this.value||(this.value=t,b(t)||(this.committer.dirty=!0))}commit(){for(;b(this.value);){const t=this.value;this.value=y,t(this)}this.value!==y&&this.committer.commit()}}class M{constructor(t){this.value=void 0,this.__pendingValue=void 0,this.options=t}appendInto(t){this.startNode=t.appendChild(m()),this.endNode=t.appendChild(m())}insertAfterNode(t){this.startNode=t,this.endNode=t.nextSibling}appendIntoPart(t){t.__insert(this.startNode=m()),t.__insert(this.endNode=m())}insertAfterPart(t){t.__insert(this.startNode=m()),this.endNode=t.endNode,t.endNode=this.startNode}setValue(t){this.__pendingValue=t}commit(){if(null===this.startNode.parentNode)return;for(;b(this.__pendingValue);){const t=this.__pendingValue;this.__pendingValue=y,t(this)}const t=this.__pendingValue;t!==y&&(B(t)?t!==this.value&&this.__commitText(t):t instanceof $?this.__commitTemplateResult(t):t instanceof Node?this.__commitNode(t):j(t)?this.__commitIterable(t):t===k?(this.value=k,this.clear()):this.__commitText(t))}__insert(t){this.endNode.parentNode.insertBefore(t,this.endNode)}__commitNode(t){this.value!==t&&(this.clear(),this.__insert(t),this.value=t)}__commitText(t){const i=this.startNode.nextSibling,e="string"==typeof(t=null==t?"":t)?t:String(t);i===this.endNode.previousSibling&&3===i.nodeType?i.data=e:this.__commitNode(document.createTextNode(e)),this.value=t}__commitTemplateResult(t){const i=this.options.templateFactory(t);if(this.value instanceof C&&this.value.template===i)this.value.update(t.values);else{const e=new C(i,t.processor,this.options),s=e._clone();e.update(t.values),this.__commitNode(s),this.value=e}}__commitIterable(t){Array.isArray(this.value)||(this.value=[],this.clear());const i=this.value;let e,s=0;for(const n of t)e=i[s],void 0===e&&(e=new M(this.options),i.push(e),0===s?e.appendIntoPart(this):e.insertAfterPart(i[s-1])),e.setValue(n),e.commit(),s++;s<i.length&&(i.length=s,this.clear(e&&e.endNode))}clear(t=this.startNode){r(this.startNode.parentNode,t.nextSibling,this.endNode)}}class P{constructor(t,i,e){if(this.value=void 0,this.__pendingValue=void 0,2!==e.length||""!==e[0]||""!==e[1])throw new Error("Boolean attributes can only contain a single expression");this.element=t,this.name=i,this.strings=e}setValue(t){this.__pendingValue=t}commit(){for(;b(this.__pendingValue);){const t=this.__pendingValue;this.__pendingValue=y,t(this)}if(this.__pendingValue===y)return;const t=!!this.__pendingValue;this.value!==t&&(t?this.element.setAttribute(this.name,""):this.element.removeAttribute(this.name),this.value=t),this.__pendingValue=y}}class A extends _{constructor(t,i,e){super(t,i,e),this.single=2===e.length&&""===e[0]&&""===e[1]}_createPart(){return new E(this)}_getValue(){return this.single?this.parts[0].value:super._getValue()}commit(){this.dirty&&(this.dirty=!1,this.element[this.name]=this._getValue())}}class E extends z{}let I=!1;(()=>{try{const t={get capture(){return I=!0,!1}};window.addEventListener("test",t,t),window.removeEventListener("test",t,t)}catch(t){}})();class T{constructor(t,i,e){this.value=void 0,this.__pendingValue=void 0,this.element=t,this.eventName=i,this.eventContext=e,this.__boundHandleEvent=t=>this.handleEvent(t)}setValue(t){this.__pendingValue=t}commit(){for(;b(this.__pendingValue);){const t=this.__pendingValue;this.__pendingValue=y,t(this)}if(this.__pendingValue===y)return;const t=this.__pendingValue,i=this.value,e=null==t||null!=i&&(t.capture!==i.capture||t.once!==i.once||t.passive!==i.passive),s=null!=t&&(null==i||e);e&&this.element.removeEventListener(this.eventName,this.__boundHandleEvent,this.__options),s&&(this.__options=D(t),this.element.addEventListener(this.eventName,this.__boundHandleEvent,this.__options)),this.value=t,this.__pendingValue=y}handleEvent(t){"function"==typeof this.value?this.value.call(this.eventContext||this.element,t):this.value.handleEvent(t)}}const D=t=>t&&(I?{capture:t.capture,passive:t.passive,once:t.once}:t.capture 68/** 69 * @license 70 * Copyright (c) 2017 The Polymer Project Authors. All rights reserved. 71 * This code may only be used under the BSD style license found at 72 * http://polymer.github.io/LICENSE.txt 73 * The complete set of authors may be found at 74 * http://polymer.github.io/AUTHORS.txt 75 * The complete set of contributors may be found at 76 * http://polymer.github.io/CONTRIBUTORS.txt 77 * Code distributed by Google as part of the polymer project is also 78 * subject to an additional IP rights grant found at 79 * http://polymer.github.io/PATENTS.txt 80 */);function L(t){let i=O.get(t.type);void 0===i&&(i={stringsArray:new WeakMap,keyString:new Map},O.set(t.type,i));let e=i.stringsArray.get(t.strings);if(void 0!==e)return e;const s=t.strings.join(h);return e=i.keyString.get(s),void 0===e&&(e=new c(t,t.getTemplateElement()),i.keyString.set(s,e)),i.stringsArray.set(t.strings,e),e}const O=new Map,F=new WeakMap,N=new 81/** 82 * @license 83 * Copyright (c) 2017 The Polymer Project Authors. All rights reserved. 84 * This code may only be used under the BSD style license found at 85 * http://polymer.github.io/LICENSE.txt 86 * The complete set of authors may be found at 87 * http://polymer.github.io/AUTHORS.txt 88 * The complete set of contributors may be found at 89 * http://polymer.github.io/CONTRIBUTORS.txt 90 * Code distributed by Google as part of the polymer project is also 91 * subject to an additional IP rights grant found at 92 * http://polymer.github.io/PATENTS.txt 93 */ 94class{handleAttributeExpressions(t,i,e,s){const n=i[0];
vendor: 5,342 bytes, lines 94-134
94return"."===n?new A(t,i.slice(1),e).parts:"@"===n?[new T(t,i.slice(1),s.eventContext)]:"?"===n?[new P(t,i.slice(1),e)]:new _(t,i,e).parts}handleTextExpression(t){return new M(t)}}; 95/** 96 * @license 97 * Copyright (c) 2017 The Polymer Project Authors. All rights reserved. 98 * This code may only be used under the BSD style license found at 99 * http://polymer.github.io/LICENSE.txt 100 * The complete set of authors may be found at 101 * http://polymer.github.io/AUTHORS.txt 102 * The complete set of contributors may be found at 103 * http://polymer.github.io/CONTRIBUTORS.txt 104 * Code distributed by Google as part of the polymer project is also 105 * subject to an additional IP rights grant found at 106 * http://polymer.github.io/PATENTS.txt 107 */ 108/** 109 * @license 110 * Copyright (c) 2017 The Polymer Project Authors. All rights reserved. 111 * This code may only be used under the BSD style license found at 112 * http://polymer.github.io/LICENSE.txt 113 * The complete set of authors may be found at 114 * http://polymer.github.io/AUTHORS.txt 115 * The complete set of contributors may be found at 116 * http://polymer.github.io/CONTRIBUTORS.txt 117 * Code distributed by Google as part of the polymer project is also 118 * subject to an additional IP rights grant found at 119 * http://polymer.github.io/PATENTS.txt 120 */ 121"undefined"!=typeof window&&(window.litHtmlVersions||(window.litHtmlVersions=[])).push("1.2.1");const U=(t,...i)=>new $(t,i,"html",N) 122/** 123 * @license 124 * Copyright (c) 2017 The Polymer Project Authors. All rights reserved. 125 * This code may only be used under the BSD style license found at 126 * http://polymer.github.io/LICENSE.txt 127 * The complete set of authors may be found at 128 * http://polymer.github.io/AUTHORS.txt 129 * The complete set of contributors may be found at 130 * http://polymer.github.io/CONTRIBUTORS.txt 131 * Code distributed by Google as part of the polymer project is also 132 * subject to an additional IP rights grant found at 133 * http://polymer.github.io/PATENTS.txt 134 */,R=(t,i)=>`${t}--${i}`;let V=!0;void 0===window.ShadyCSS?V=!1:void 0===window.ShadyCSS.prepareTemplateDom&&(console.warn("Incompatible ShadyCSS version detected. Please update to at least @webcomponents/[email protected] and @webcomponents/[email protected]."),V=!1);const W=t=>i=>{const e=R(i.type,t);let s=O.get(e);void 0===s&&(s={stringsArray:new WeakMap,keyString:new Map},O.set(e,s));let n=s.stringsArray.get(i.strings);if(void 0!==n)return n;const o=i.strings.join(h);if(n=s.keyString.get(o),void 0===n){const e=i.getTemplateElement();V&&window.ShadyCSS.prepareTemplateDom(e,t),n=new c(i,e),s.keyString.set(o,n)}return s.stringsArray.set(i.strings,n),n},q=["html","svg"],Y=new Set;window.JSCompiler_renameProperty=t=>t;const H={toAttribute(t,i){switch(i){case Boolean:return t?"":null;case Object:case Array:return null==t?t:JSON.stringify(t)}return t},fromAttribute(t,i){switch(i){case Boolean:return null!==t;case Number:return null===t?null:Number(t);case Object:case Array:return JSON.parse(t)}return t}},J=(t,i)=>i!==t&&(i==i||t==t),G={attribute:!0,type:String,converter:H,reflect:!1,hasChanged:J};class K extends HTMLElement{constructor(){super(),this._updateState=0,this._instanceProperties=void 0,this._updatePromise=new Promise((t=>this._enableUpdatingResolver=t)),this._changedProperties=new Map,this._reflectingProperties=void 0,this.initialize()}static get observedAttributes(){this.finalize();const t=[];return this._classProperties.forEach(((i,e)=>{const s=this._attributeNameForProperty(e,i);void 0!==s&&(this._attributeToPropertyMap.set(s,e),t.push(s))})),t}static _ensureClassProperties(){if(!this.hasOwnProperty(JSCompiler_renameProperty("_classProperties",this))){this._classProperties=new Map;const t=Object.getPrototypeOf(this)._classProperties;void 0!==t&&t.forEach(((t,i)=>this._classProperties.set(i,t)))}}static createProperty(t,i=G){if(this._ensureClassProperties(),this._classProperties.set(t,i),i.noAccessor||this.prototype.hasOwnProperty(t))return;const e="symbol"==typeof t?Symbol():"__"+t,s=this.getPropertyDescriptor(t,e,i);void 0!==s&&Object.defineProperty(this.prototype,t,s)}static getPropertyDescriptor(t,i,e){return{get(){return this[i]},set(e){const s=this[t];this[i]=e,this._requestUpdate(t,s)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this._classProperties&&this._classProperties.get(t)||G}static finalize(){const t=Object.getPrototypeOf(this);if(t.hasOwnProperty("finalized")||t.finalize(),this.finalized=!0,this._ensureClassProperties(),this._attributeToPropertyMap=new Map,this.hasOwnProperty(JSCompiler_renameProperty("properties",this))){const t=this.properties,i=[...Object.getOwnPropertyNames(t),..."function"==typeof Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(t):[]];for(const e of i)this.createProperty(e,t[e])}}static _attributeNameForProperty(t,i){const e=i.attribute;return!1===e?void 0:"string"==typeof e?e:"string"==typeof t?t.toLowerCase():void 0}static _valueHasChanged(t,i,e=J){return e(t,i)}static _propertyValueFromAttribute(t,i){const e=i.converter||H,s="function"==typeof e?e:e.fromAttribute;return s?s(t,i.type):t}static _propertyValueToAttribute(t,i){if(void 0===i.reflect)return;const e=i.converter;return(e&&e.toAttribute||H.toAttribute)(t,i.type)}initialize(){this._saveInstanceProperties(),this._requestUpdate()}_saveInstanceProperties(){this.constructor._classProperties.forEac
vendor: 7,992 bytes, lines 134-171
134h(((t,i)=>{if(this.hasOwnProperty(i)){const t=this[i];delete this[i],this._instanceProperties||(this._instanceProperties=new Map),this._instanceProperties.set(i,t)}}))}_applyInstanceProperties(){this._instanceProperties.forEach(((t,i)=>this[i]=t)),this._instanceProperties=void 0}connectedCallback(){this.enableUpdating()}enableUpdating(){void 0!==this._enableUpdatingResolver&&(this._enableUpdatingResolver(),this._enableUpdatingResolver=void 0)}disconnectedCallback(){}attributeChangedCallback(t,i,e){i!==e&&this._attributeToProperty(t,e)}_propertyToAttribute(t,i,e=G){const s=this.constructor,n=s._attributeNameForProperty(t,e);if(void 0!==n){const t=s._propertyValueToAttribute(i,e);if(void 0===t)return;this._updateState=8|this._updateState,null==t?this.removeAttribute(n):this.setAttribute(n,t),this._updateState=-9&this._updateState}}_attributeToProperty(t,i){if(8&this._updateState)return;const e=this.constructor,s=e._attributeToPropertyMap.get(t);if(void 0!==s){const t=e.getPropertyOptions(s);this._updateState=16|this._updateState,this[s]=e._propertyValueFromAttribute(i,t),this._updateState=-17&this._updateState}}_requestUpdate(t,i){let e=!0;if(void 0!==t){const s=this.constructor,n=s.getPropertyOptions(t);s._valueHasChanged(this[t],i,n.hasChanged)?(this._changedProperties.has(t)||this._changedProperties.set(t,i),!0!==n.reflect||16&this._updateState||(void 0===this._reflectingProperties&&(this._reflectingProperties=new Map),this._reflectingProperties.set(t,n))):e=!1}!this._hasRequestedUpdate&&e&&(this._updatePromise=this._enqueueUpdate())}requestUpdate(t,i){return this._requestUpdate(t,i),this.updateComplete}async _enqueueUpdate(){this._updateState=4|this._updateState;try{await this._updatePromise}catch(t){}const t=this.performUpdate();return null!=t&&await t,!this._hasRequestedUpdate}get _hasRequestedUpdate(){return 4&this._updateState}get hasUpdated(){return 1&this._updateState}performUpdate(){this._instanceProperties&&this._applyInstanceProperties();let t=!1;const i=this._changedProperties;try{t=this.shouldUpdate(i),t?this.update(i):this._markUpdated()}catch(i){throw t=!1,this._markUpdated(),i}t&&(1&this._updateState||(this._updateState=1|this._updateState,this.firstUpdated(i)),this.updated(i))}_markUpdated(){this._changedProperties=new Map,this._updateState=-5&this._updateState}get updateComplete(){return this._getUpdateComplete()}_getUpdateComplete(){return this._updatePromise}shouldUpdate(t){return!0}update(t){void 0!==this._reflectingProperties&&this._reflectingProperties.size>0&&(this._reflectingProperties.forEach(((t,i)=>this._propertyToAttribute(i,this[i],t))),this._reflectingProperties=void 0),this._markUpdated()}updated(t){}firstUpdated(t){}}K.finalized=!0; 135/** 136 * @license 137 * Copyright (c) 2017 The Polymer Project Authors. All rights reserved. 138 * This code may only be used under the BSD style license found at 139 * http://polymer.github.io/LICENSE.txt 140 * The complete set of authors may be found at 141 * http://polymer.github.io/AUTHORS.txt 142 * The complete set of contributors may be found at 143 * http://polymer.github.io/CONTRIBUTORS.txt 144 * Code distributed by Google as part of the polymer project is also 145 * subject to an additional IP rights grant found at 146 * http://polymer.github.io/PATENTS.txt 147 */ 148const Z=(t,i)=>"method"===i.kind&&i.descriptor&&!("value"in i.descriptor)?Object.assign(Object.assign({},i),{finisher(e){e.createProperty(i.key,t)}}):{kind:"field",key:Symbol(),placement:"own",descriptor:{},initializer(){"function"==typeof i.initializer&&(this[i.key]=i.initializer.call(this))},finisher(e){e.createProperty(i.key,t)}};function Q(t){return(i,e)=>void 0!==e?((t,i,e)=>{i.constructor.createProperty(e,t)})(t,i,e):Z(t,i) 149/** 150@license 151Copyright (c) 2019 The Polymer Project Authors. All rights reserved. 152This code may only be used under the BSD style license found at 153http://polymer.github.io/LICENSE.txt The complete set of authors may be found at 154http://polymer.github.io/AUTHORS.txt The complete set of contributors may be 155found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as 156part of the polymer project is also subject to an additional IP rights grant 157found at http://polymer.github.io/PATENTS.txt 158*/}const X="adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,tt=Symbol();class it{constructor(t,i){if(i!==tt)throw new Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=t}get styleSheet(){return void 0===this._styleSheet&&(X?(this._styleSheet=new CSSStyleSheet,this._styleSheet.replaceSync(this.cssText)):this._styleSheet=null),this._styleSheet}toString(){return this.cssText}}const et=(t,...i)=>{const e=i.reduce(((i,e,s)=>i+(t=>{if(t instanceof it)return t.cssText;if("number"==typeof t)return t;throw new Error(`Value passed to 'css' function must be a 'css' function result: ${t}. Use 'unsafeCSS' to pass non-literal values, but\n take care to ensure page security.`)})(e)+t[s+1]),t[0]);return new it(e,tt)}; 159/** 160 * @license 161 * Copyright (c) 2017 The Polymer Project Authors. All rights reserved. 162 * This code may only be used under the BSD style license found at 163 * http://polymer.github.io/LICENSE.txt 164 * The complete set of authors may be found at 165 * http://polymer.github.io/AUTHORS.txt 166 * The complete set of contributors may be found at 167 * http://polymer.github.io/CONTRIBUTORS.txt 168 * Code distributed by Google as part of the polymer project is also 169 * subject to an additional IP rights grant found at 170 * http://polymer.github.io/PATENTS.txt 171 */(window.litElementVersions||(window.litElementVersions=[])).push("2.3.1");const st={};class nt extends K{static getStyles(){return this.styles}static _getUniqueStyles(){if(this.hasOwnProperty(JSCompiler_renameProperty("_styles",this)))return;const t=this.getStyles();if(void 0===t)this._styles=[];else if(Array.isArray(t)){const i=(t,e)=>t.reduceRight(((t,e)=>Array.isArray(e)?i(e,t):(t.add(e),t)),e),e=i(t,new Set),s=[];e.forEach((t=>s.unshift(t))),this._styles=s}else this._styles=[t]}initialize(){super.initialize(),this.constructor._getUniqueStyles(),this.renderRoot=this.createRenderRoot(),window.ShadowRoot&&this.renderRoot instanceof window.ShadowRoot&&this.adoptStyles()}createRenderRoot(){return this.attachShadow({mode:"open"})}adoptStyles(){const t=this.constructor._styles;0!==t.length&&(void 0===window.ShadyCSS||window.ShadyCSS.nativeShadow?X?this.renderRoot.adoptedStyleSheets=t.map((t=>t.styleSheet)):this._needsShimAdoptedStyleSheets=!0:window.ShadyCSS.ScopingShim.prepareAdoptedCssText(t.map((t=>t.cssText)),this.localName))}connectedCallback(){super.connectedCallback(),this.hasUpdated&&void 0!==window.ShadyCSS&&window.ShadyCSS.styleElement(this)}update(t){const i=this.render();super.update(t),i!==st&&this.constructor.render(i,this.renderRoot,{scopeName:this.localName,eventContext:this}),this._needsShimAdoptedStyleSheets&&(this._needsShimAdoptedStyleSheets=!1,this.constructor._styles.forEach((t=>{const i=document.createElement("style");i.textContent=t.cssText,this.renderRoot.appendChild(i)})))}render(){return st}}nt.finalized=!0,nt.render=(t,i,e)=>{if(!e||"object"!=typeof e||!e.scopeName)throw new Error("The `scopeName` option is required.");const s=e.scopeName,n=F.has(i),o=V&&11===i.nodeType&&!!i.host,a=o&&!Y.has(s),h=a?document.createDocumentFragment():i;if(((t,i,e)=>{let s=F.get(i);void 0===s&&(r(i,i.firstChild),F.set(i,s=new M(Object.assign({templateFactory:L},e))),s.appendInto(i)),s.setValue(t),s.commit()})(t,h,Object.assign({templateFactory:W(s)},e)),a){const t=F.get(h);F.delete(h),((t,i,e)=>{Y.add(t);const s=e?e.element:document.createElement("template"),n=i.querySelectorAll("style"),{length:o}=n;if(0===o)return void window.ShadyCSS.prepareTemplateStyles(s,t);const a=document.createElement("style");for(let t=0;t<o;t++){const i=n[t];i.parentNode.removeChild(i),a.textContent+=i.textContent}(t=>{q.forEach((i=>{const e=O.get(R(i,t));void 0!==e&&e.keyString.forEach((t=>{const{element:{content:i}}=t,e=new Set;
171Array.from(i.querySelectorAll("style")).forEach((t=>{e.add(t)})),g(t,e)}))}))})(t);const r=s.content;e?function(t,i,e=null){const{element:{content:s},parts:n}=t;if(null==e)return void s.appendChild(i);const o=document.createTreeWalker(s,133,null,!1);let a=v(n),r=0,h=-1;for(;o.nextNode();)for(h++,o.currentNode===e&&(r=w(i),e.parentNode.insertBefore(i,e));-1!==a&&n[a].index===h;){if(r>0){for(;-1!==a;)n[a].index+=r,a=v(n,a);return}a=v(n,a)}}(e,a,r.firstChild):r.insertBefore(a,r.firstChild),window.ShadyCSS.prepareTemplateStyles(s,t);const h=r.querySelector("style");if(window.ShadyCSS.nativeShadow&&null!==h)i.insertBefore(h.cloneNode(!0),i.firstChild);else if(e){r.insertBefore(a,r.firstChild);const t=new Set;t.add(a),g(e,t)}})(s,h,t.value instanceof C?t.value.template:void 0),r(i,i.firstChild),i.appendChild(h),F.set(i,t)}!n&&o&&window.ShadyCSS.styleElement(i.host)};var ot=function(t,i,e,s){var n,o=arguments.length,a=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,i,e,s);else for(var r=t.length-1;r>=0;r--)(n=t[r])&&(a=(o<3?n(a):o>3?n(i,e,a):n(i,e))||a);return o>3&&a&&Object.defineProperty(i,e,a),a};let at=class extends nt{constructor(){super(),this.manifestpath="manifest.json",this.openmodal=!1,this.hasprompt=!1,this.relatedApps=[],this.explainer="This app can be installed on your PC or mobile device. This will allow this web app to look and behave like any other installed app. You will find it in your app lists and be able to pin it to your home screen, start menus or task bars. This installed web app will also be able to safely interact with other apps and your operating system. ",this.featuresheader="Key Features",this.descriptionheader="Description",this.installbuttontext="Install",this.cancelbuttontext="Cancel",this.iosinstallinfotext="Tap the share button and then 'Add to Homescreen'",this.isSupportingBrowser=window.hasOwnProperty("BeforeInstallPromptEvent"),this.isIOS=navigator.userAgent.includes("iPhone")||navigator.userAgent.includes("iPad")||navigator.userAgent.includes("Macintosh")&&navigator.maxTouchPoints&&navigator.maxTouchPoints>2,this.installed=!1,window.addEventListener("beforeinstallprompt",(t=>this.handleInstallPromptEvent(t))),document.addEventListener("keyup",(t=>{"Escape"===t.key&&this.cancel()}))}static get styles(){return et`:host{--install-focus-color:#919c9c;--install-button-color:#1FC2C8;--modal-z-index:9999;--background-z-index:9998;--modal-background-color:white}button{outline:0}#installModalWrapper{height:100vh;width:100vw;overflow:auto;position:fixed;bottom:0;top:0;left:0;right:0;z-index:var(--modal-z-index);display:flex;justify-content:center;align-items:center}#descriptionWrapper{margin-bottom:3em}#installModal{position:absolute;background:var(--modal-background-color);font-family:sans-serif;box-shadow:0 25px 26px rgba(32,36,50,.25),0 5px 9px rgba(51,58,83,.53);border-radius:10px;display:flex;flex-direction:column;padding:0;animation-name:opened;animation-duration:150ms;z-index:var(--modal-z-index);max-width:56em}@keyframes opened{from{transform:scale(.8,.8);opacity:.4}to{transform:scale(1,1);opacity:1}}@keyframes mobile{from{opacity:.6}to{opacity:1}}@keyframes fadein{from{opacity:.2}to{opacity:1}}#background{position:fixed;top:0;bottom:0;left:0;right:0;background:#e3e3e3b0;backdrop-filter:blur(5px);z-index:var(--background-z-index);animation-name:fadein;animation-duration:250ms}#headerContainer{display:flex;justify-content:space-between;margin:40px;margin-bottom:32px}#headerContainer h1{font-size:34px;color:#3c3c3c;margin-top:20px;margin-bottom:7px}#headerContainer img{height:122px;width:122px;background:#d3d3d3;border-radius:10px;padding:12px;border-radius:24px;margin-right:24px}#buttonsContainer{display:flex;justify-content:flex-end;position:relative;height:100px;background:#dedede75;width:100%;right:0;border-radius:0 0 12px 12px}#installButton,#installCancelButton,#openButton{text-align:center;align-content:center;align-self:center;vertical-align:middle;justify-self:flex-end;line-height:200%;flex:0 0 auto;display:inline-block;background:#0078d4;color:#fff;cursor:pointer;border:solid 1px transparent;outline:0}#openButton{background:var(--install-button-color)}#installButton,#installCancelButton{min-width:130px;margin-right:30px;background:var(--install-button-color);border-radius:20px;font-weight:600;font-size:14px;line-height:21px;padding-top:10px;padding-bottom:9px;padding-left:20px;padding-right:20px;outline:0;color:#fff}#closeButton{background:0 0;border:none;color:#000;padding-left:12px;padding-right:12px;padding-top:4px;padding-bottom:4px;border-radius:20px;font-weight:600;outline:0;cursor:pointer;align-self:self-end}#closeButton:focus,#installButton:focus,#installCancelButton:focus{box-shadow:0 0 0 3px var(--install-focus-color)}#contentContainer{margin-left:40px;margin-right:40px;flex:1}#contentContainer h3{font-size:22px;color:#3c3c3c;margin-bottom:12px}#contentContainer p{font-size:14px;color:#3c3c3c}#featuresScreenDiv{display:flex;justify-content:space-around;align-items:center;margin-right:20px}#featuresScreenDiv h3{font-style:normal;font-weight:600;font-size:22px;line-height:225%;margin-top:0}#keyFeatures{overflow:hidden;padding-right:2em}#keyFeatures ul{padding-inline-start:22px;margin-block-start:12px}#featuresScreenDiv #keyFeatures li{font-style:normal;font-weight:600;font-size:16px;line-height:29px;color:rgba(51,51,51,.72)}#screenshotsContainer{max-height:220px;display:flex;max-width:30em}#screenshotsContainer button{border:none;width:4em;transition:background-color .2s}#screenshotsContainer button:focus,#screenshotsContainer button:hover{background-color:#bbb}#screenshotsContainer button svg{width:28px;fill:#6b6969}#screenshots{display:flex;scroll-snap-type:x mandatory;flex-wrap:wrap;flex-direction:column;overflow-x:scroll;width:22em;max-height:220px;-webkit-overflow-scrolling:touch}#screenshots div{display:flex;align-items:center;justify-content:center;scroll-snap-align:start;height:14em;width:100%;background:#efefef}#screenshots img{height:100%;object-fit:contain}#screenshots::-webkit-scrollbar{display:none}#tagsDiv{margin-top:1em;margin-bottom:1em}#desc{width:100%;max-width:40em;font-size:14px;color:#7e7e7e;text-overflow:ellipsis;overflow:hidden}#logoContainer{display:flex}#tagsDiv span{background:grey;color:#fff;padding-left:12px;padding-right:12px;padding-bottom:4px;font-weight:700;border-radius:24px;margin-right:12px;padding-top:1px}#iosText{color:var(--install-button-color);text-align:center;font-weight:700;position:fixed;bottom:0;left:0;right:0;backdrop-filter:blur(10px);background:rgba(239,239,239,.17);margin:0;padding:2em}#manifest-description{white-space:pre-wrap}@media(max-height:780px){#buttonsContainer{height:70px;background:0 0}}@media(max-width:1220px){#installModal{margin:0;border-radius:0;min-height:100%;width:100%;animation-name:mobile;animation-duration:250ms}#screenshots{justify-content:center}}@media (max-width:962px){#headerContainer h1{margin-top:0;margin-bottom:0}#logoContainer{align-items:center}#desc{display:none}#headerContainer{margin-bottom:24px}#headerContainer img{height:42px;width:42px}}@media (max-width:800px){#background{display:none}#installModal{overflow:scroll;box-shadow:none;max-width:100%;height:100%}#screenshotsContainer{width:100%}#screenshots img{height:180px}#buttonsContainer{display:flex;justify-content:center;bottom:0;margin-bottom:0;border-radius:0;padding-top:1em;padding-bottom:1em}#buttonsContainer #installButton{margin-right:0}#featuresScreenDiv{flex-direction:column;align-items:flex-start;margin-right:0}#headerContainer{margin:20px}#desc{display:none}#contentContainer{margin-left:20px;margin-right:20px;margin-bottom:5em}#headerContainer img{height:60px;width:60px;margin-right:12px}#buttonsContainer{position:fixed;bottom:0;background:#efefef2b;backdrop-filter:blur(10px)}}@media(max-width:400px){#headerContainer h1{font-size:26px}#headerContainer img{height:40px;width:40px}#featuresScreenDiv h3{font-size:18px;margin-bottom:0}#keyFeatures ul{margin-top:0}}@media all and (display-mode:standalone){button{display:none}}`}async firstUpdated(){if(this.manifestpath)try{await this.getManifestData()}catch(t){console.error("Error getting manifest, check that you have a valid web manifest")}"getInstalledRelatedApps"in navigator&&(this.relatedApps=await navigator.getInstalledRelatedApps())}handleInstallPromptEvent(t){this.deferredprompt=t,this.hasprompt=!0,t.preventDefault()}checkManifest(t){t.icons&&t.icons[0]?t.name?t.description||console.error("Your web manifest must have a description listed"):console.error("Your web manifest must have a name listed"):console.error("Your web manifest must have atleast one icon listed")}async getManifestData(){try{const t=await fetch(this.manifestpath),i=await t.json();if(this.manifestdata=i,this.manifestdata)return this.checkManifest(this.manifestdata),i}catch(t){return null}}scrollToLeft(){const t=this.shadowRoot.querySelector("#screenshots");t.scrollBy({left:-t.clientWidth,top:0,behavior:"smooth"})}scrollToRight(){const t=this.shadowRoot.querySelector("#screenshots");t.scrollBy({left:t.clientWidth,top:0,behavior:"smooth"})}openPrompt(){this.openmodal=!0;let t=new CustomEvent("show");this.dispatchEvent(t)}closePrompt(){this.openmodal=!1;let t=new CustomEvent("hide");this.dispatchEvent(t)}shouldShowInstall(){return this.isSupportingBrowser&&this.relatedApps.length<1&&(this.hasprompt||this.isIOS)}async install(){if(this.deferredprompt){this.deferredprompt.prompt();let t=new CustomEvent("show");if(this.dispatchEvent(t),"accepted"===(await this.deferredprompt.userChoice).outcome){await this.cancel(),this.installed=!0;let t=new CustomEvent("hide");return this.dispatchEvent(t),!0}{await this.cancel(),this.installed=!0;let t=new CustomEvent("hide");return this.dispatchEvent(t),!1}}}getInstalledStatus(){return navigator.standalone?navigator.standalone:!!matchMedia("(display-mode: standalone)").matches}cancel(){return new Promise((t=>{this.openmodal=!1,this.hasAttribute("openmodal")&&this.removeAttribute("openmodal");let i=new CustomEvent("hide");this.dispatchEvent(i),t()}))}render(){return U`${"standalone"in navigator&&!1===navigator.standalone||!0!==this.usecustom&&this.shouldShowInstall()&&!1===this.installed?U`<button part="openButton" id="openButton" @click="${()=>this.openPrompt()}"><slot>${this.installbuttontext}</slot></button>`:null} ${!0===this.openmodal?U`<div id="installModalWrapper">${this.openmodal?U`<div id="background" @click="${()=>this.cancel()}"></div>`:null}<div id="installModal" part="installModal"><div id="headerContainer"><div id="logoContainer"><img src="${this.iconpath?this.iconpath:this.manifestdata.icons[0].src}" alt="App Logo"><div id="installTitle"><h1>${this.manifestdata.short_name||this.manifestdata.name}</h1><p id="desc">${this.explainer}</p></div></div><button id="closeButton" @click="${()=>this.cancel()}"><svg width="23" height="22" viewBox="0 0 23 22" fill="none" xmlns="http://www.w3.org/2000/svg"><path opacity="0.33" fill-rule="evenodd" clip-rule="evenodd" d="M1.11932 0.357981C1.59693 -0.119327 2.37129 -0.119327 2.8489 0.357981L11.7681 9.27152L20.6873 0.357981C21.165 -0.119327 21.9393 -0.119327 22.4169 0.357981C22.8945 0.835288 22.8945 1.60916 22.4169 2.08646L13.4977 11L22.4169 19.9135C22.8945 20.3908 22.8945 21.1647 22.4169 21.642C21.9393 22.1193 21.165 22.1193 20.6873 21.642L11.7681 12.7285L2.8489 21.642C2.37129 22.1193 1.59693 22.1193 1.11932 21.642C0.641705 21.1647 0.641705 20.3908 1.11932 19.9135L10.0385 11L1.11932 2.08646C0.
171641705 1.60916 0.641705 0.835288 1.11932 0.357981Z" fill="#60656D"/></svg></button></div><div id="contentContainer"><div id="featuresScreenDiv">${this.manifestdata.features?U`<div id="keyFeatures"><h3>${this.featuresheader}</h3><ul>${this.manifestdata.features?this.manifestdata.features.map((t=>U`<li>${t}</li>`)):null}</ul></div>`:null} ${this.manifestdata.screenshots?U`<div id="screenshotsContainer"><button @click="${()=>this.scrollToLeft()}"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M401.4 224h-214l83-79.4c11.9-12.5 11.9-32.7 0-45.2s-31.2-12.5-43.2 0L89 233.4c-6 5.8-9 13.7-9 22.4v.4c0 8.7 3 16.6 9 22.4l138.1 134c12 12.5 31.3 12.5 43.2 0 11.9-12.5 11.9-32.7 0-45.2l-83-79.4h214c16.9 0 30.6-14.3 30.6-32 .1-18-13.6-32-30.5-32z"/></svg></button><section id="screenshots">${this.manifestdata.screenshots.map((t=>U`<div><img alt="App Screenshot" src="${t.src}"></div>`))}</section><button @click="${()=>this.scrollToRight()}"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M284.9 412.6l138.1-134c6-5.8 9-13.7 9-22.4v-.4c0-8.7-3-16.6-9-22.4l-138.1-134c-12-12.5-31.3-12.5-43.2 0-11.9 12.5-11.9 32.7 0 45.2l83 79.4h-214c-17 0-30.7 14.3-30.7 32 0 18 13.7 32 30.6 32h214l-83 79.4c-11.9 12.5-11.9 32.7 0 45.2 12 12.5 31.3 12.5 43.3 0z"/></svg></button></div>`:null}</div><div id="descriptionWrapper"><h3>${this.descriptionheader}</h3><p id="manifest-description">${this.manifestdata.description}</p></div></div>${this.isIOS?U`<p id="iosText">${this.iosinstallinfotext}</p>`:U`<div id="buttonsContainer">${this.deferredprompt?U`<button id="installButton" @click="${()=>this.install()}">${this.installbuttontext} ${this.manifestdata.short_name}</button>`:U`<button @click="${()=>this.cancel()}" id="installCancelButton">${this.cancelbuttontext}</button>`}</div>`}</div></div>`:null}`}};ot([Q({type:String})],at.prototype,"manifestpath",void 0),ot([Q({type:String})],at.prototype,"iconpath",void 0),ot([Q({type:Object})],at.prototype,"manifestdata",void 0),ot([Q({type:Boolean})],at.prototype,"openmodal",void 0),ot([Q({type:Boolean})],at.prototype,"showopen",void 0),ot([Q({type:Boolean})],at.prototype,"isSupportingBrowser",void 0),ot([Q({type:Boolean})],at.prototype,"isIOS",void 0),ot([Q({type:Boolean})],at.prototype,"installed",void 0),ot([Q({type:Boolean})],at.prototype,"hasprompt",void 0),ot([Q({type:Boolean})],at.prototype,"usecustom",void 0),ot([Q({type:Array})],at.prototype,"relatedApps",void 0),ot([Q({type:String})],at.prototype,"explainer",void 0),ot([Q({type:String})],at.prototype,"featuresheader",void 0),ot([Q({type:String})],at.prototype,"descriptionheader",void 0),ot([Q({type:String})],at.prototype,"installbuttontext",void 0),ot([Q({type:String})],at.prototype,"cancelbuttontext",void 0),ot([Q({type:String})],at.prototype,"iosinstallinfotext",void 0),ot([Q()],at.prototype,"deferredprompt",void 0),at=ot([t=>"function"==typeof t?((t,i)=>(window.customElements.define("pwa-install",i),i))(0,t):((t,i)=>{const{kind:e,elements:s}=i;return{kind:e,elements:s,finisher(t){window.customElements.define("pwa-install",t)}}})(0,t)],at);const rt=class{constructor(i){t(this,i),this.color="black",this.drawingMode="pen",this.savedImage=null,this.grid=!1,this.dragMode=!1,this.currentFileName=null,this.canInstall=!1,this.spanned=!1,this.mgtLoaded=!1}async componentDidLoad(){window.requestIdleCallback((()=>{this.setupWakeLock()})),window.getWindowSegments&&(this.handleSegments(),window.onresize=()=>{console.log("resize"),this.handleSegments()})}handleSegments(){const t=window.getWindowSegments();this.spanned=2===t.length}handleInstall(){this.canInstall=!0}async setupWakeLock(){"wakeLock"in navigator&&"request"in navigator.wakeLock&&(this.wakeLockController=await navigator.wakeLock.request("screen"))}changeColor(t){console.log("changeColor"),this.color=t.detail}async clear(){const t=this.el.querySelector("app-canvas"),i=await s.create({header:"Delete this Canvas?",message:"Are you sure you want to delete the canvas? This will ERASE your current work.",buttons:[{text:"Cancel",cssClass:"secondary"},{text:"Yes",handler:async()=>{this.currentFileName=null,await t.clearCanvas()}}]});await i.present()}async save(){const t=this.el.querySelector("app-canvas");if(this.currentFileHandle){const i=await n.create({message:"saving..."});await i.present(),console.log("this.currentFileHandle",this.currentFileHandle),await t.saveCanvas(this.currentFileName,this.currentFileHandle),await i.dismiss();const e=await n.create({message:`${this.currentFileName} saved`,duration:1800});await e.present()}else{const i=await n.create({message:"saving..."});await i.present(),this.currentFileHandle=await t.saveCanvas("",this.currentFileHandle),console.log(this.currentFileHandle),this.currentFileHandle&&this.currentFileHandle.name&&(this.currentFileName=this.currentFileHandle.name),await i.dismiss();const e=await n.create({message:`${this.currentFileName} saved`,duration:1800});await e.present()}}erase(){console.log("erase"),this.drawingMode="erase"}pen(){console.log("pen"),this.drawingMode="pen"}async allImages(){const t=await window.showOpenFilePicker({mimeTypes:["image/*"],extensions:["png","jpg","jpeg","webp"],description:"Image files"});this.currentFileHandle=t[0];const i=await this.currentFileHandle.getFile(),e=URL.createObjectURL(i),s=this.el.querySelector("app-canvas");console.log(i,t),await s.addImageToCanvas(e)}async doGrid(){if(console.log("here"),!0===this.grid){this.grid=!1;const t=this.el.querySelector("app-canvas");await t.clearGrid()}else{console.log("hello world"),this.grid=!0;const t=this.el.querySelector("app-canvas");await t.drawGrid()}}async doImage(t){console.log(t)}async openSettings(t){console.log(t);const i=await o.create({component:"app-settings",event:t,cssClass:"settingsPopover",showBackdrop:!1!==navigator.userAgent.includes("iPad")||!window.matchMedia("(min-width: 1450px)").matches});await i.present()}async openLoginPop(t){const i=await o.create({component:"login-pop",event:t,showBackdrop:!window.matchMedia("(min-width: 1450px)").matches});await i.present()}doDrag(){this.dragMode=!0!==this.dragMode}openInstall(){const t=this.el.querySelector("pwa-install");t.hasAttribute("openmodal")?t.removeAttribute("openmodal"):t.setAttribute("openmodal","")}doShare(){this.el.querySelector("app-canvas").shareCanvas()}handleLive(){this.el.querySelector("app-canvas").liveConnect()}spanCanvas(){!0===this.spanned?(this.spanned=!1,this.el.querySelector("app-canvas").resizeCanvas()):(this.el.querySelector("app-canvas").resizeCanvas(window.innerWidth/2,window.innerHeight),this.spanned=!0)}async handleInkToShape(t){console.log("home inkshape",t.detail),await this.el.querySelector("app-canvas").inkToShape()}disconnectedCallback(){this.wakeLockController&&this.wakeLockController.release()}render(){return[i("div",{class:"app-home"},i("pwa-install",{usecustom:!0}),this.canInstall&&window.matchMedia("(min-width: 1200px)").matches&&!1===window.matchMedia("(display-mode: standalone)").matches?i("ion-button",{id:"pwaInstallButton",shape:"round",size:"small",onClick:()=>this.openInstall()},i("ion-icon",{slot:"start",name:"download"}),"Install"):null,this.canInstall&&!1===window.matchMedia("(min-width: 1200px)").matches?i("ion-button",{onClick:()=>this.openInstall(),id:"mobileInstallButton",fill:"clear",size:"small"},i("ion-icon",{name:"download"})):null,this.currentFileName?i("div",{id:"fileNameDiv"},i("span",null,this.currentFileName)):null,i("app-canvas",{savedDrawing:this.savedImage,mode:this.drawingMode,color:this.color}),i("app-controls",{onDoInkToShape:t=>this.handleInkToShape(t),onLive:()=>this.handleLive(),onDoShare:()=>this.doShare(),onDragMode:()=>this.doDrag(),onDoGrid:()=>this.doGrid(),onAllImages:()=>this.allImages(),onSaveCanvas:()=>this.save(),onPenMode:()=>this.pen(),onEraserMode:()=>this.erase(),onClearCanvas:()=>this.clear(),onColorSelected:t=>this.changeColor(t)}),i("div",{id:"settingsBlock"},i("ion-button",{shape:"round",size:"small",id:"settingsButton",color:"primary",onClick:t=>this.openSettings(t),fill:"clear"},i("ion-icon",{color:"primary",name:"settings-outline"})),i("div",null)))]}get el(){return e(this)}};rt.style="#spanFab{display:none}#pwaInstallButton{position:fixed;z-index:-1;top:18px;right:6em}pwa-install{--install-button-color:var(--ion-color-primary) !important}pwa-auth{position:absolute;right:5em;top:14px}pwa-auth::part(signInButton){background:var(--ion-color-primary);color:white;padding:10px;text-transform:uppercase;border-radius:22px;padding-left:2em;padding-right:2em}#signInText{color:var(--ion-color-primary);margin-right:2em;font-weight:bold}#mobileInstallButton{position:fixed;bottom:4px;right:8px;background:#d3d3d3a6;border-radius:50%;height:40px;width:40px;z-index:-1}#settingsButton{font-size:18px}.settingsPopover .popover-content{border-radius:14px !important}#settingsBlock{position:fixed;top:12px;right:16px;display:flex;align-items:center;justify-content:space-around;background:white;border-radius:24px;z-index:-1}.login-button{border-radius:24px}#fileNameDiv{z-index:9999;position:fixed;width:100%;pointer-events:none;display:flex;justify-content:center;align-items:center}app-canvas{position:fixed;top:0;bottom:0;left:0;right:0;z-index:-2}@media (max-width: 500px){#fileNameDiv{display:none}#settingsButton{display:none}pwa-auth{display:none}}#fileNameDiv span{background:#1976d25e;color:white;font-size:18px;padding-left:2em;padding-right:2em;padding-top:6px;padding-bottom:6px;border-radius:22px;margin-top:10px;backdrop-filter:blur(10px);animation-name:slidedown;animation-duration:300ms}@keyframes slidedown{from{opacity:0.6;transform:translateY(-60px)}to{opacity:1;transform:translateY(0)}}@media (min-width: 1200px){.imagesModal{--width:56em !important}}@media (horizontal-viewport-segments: 2){#spanFab{display:initial}#fileNameDiv{width:50%}}@media (screen-spanning: single-fold-vertical){#spanFab{display:initial}#fileNameDiv{width:50%}}";export{rt as app_home}
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.