Pen Settings

HTML

CSS

CSS Base

Vendor Prefixing

Add External Stylesheets/Pens

Any URL's added here will be added as <link>s in order, and before the CSS in the editor. If you link to another Pen, it will include the CSS from that Pen. If the preprocessor matches, it will attempt to combine them before processing.

+ add another resource

JavaScript

Babel includes JSX processing.

Add External Scripts/Pens

Any URL's added here will be added as <script>s in order, and run before the JavaScript in the editor. You can use the URL of any other Pen and it will include the JavaScript from that Pen.

+ add another resource

Packages

Add Packages

Search for and use JavaScript packages from npm here. By selecting a package, an import statement will be added to the top of the JavaScript editor for this package.

Behavior

Save Automatically?

If active, Pens will autosave every 30 seconds after being saved once.

Auto-Updating Preview

If enabled, the preview panel updates automatically as you code. If disabled, use the "Run" button to update.

Format on Save

If enabled, your code will be formatted when you actively save your Pen. Note: your code becomes un-folded during formatting.

Editor Settings

Code Indentation

Want to change your Syntax Highlighting theme, Fonts and more?

Visit your global Editor Settings.

HTML

              
                <div class="container">
<marked-calendar
    id="calendar1"
    year="2020"
    name="Ausencias"
    save-data
    weekends
    view='month'
    change-view 
    legend='[
          {"code": "#0F0", "label": "V",  "title": "Vacaciones"},
          {"code": "#FF0", "label": "LD", "title": "Libre Disposición"},
          {"code": "#F00", "label": "A",  "title": "Ausencia"},
          {"code": "#00F", "label": "T",  "title": "Teletrabajo"},
          {"code": "#F90", "label": "DE", "title": "Dia de Eventos"},
          {"code": "#F0F", "label": "AE", "title": "Autorizado por Empresa"},
          {"code": "#0FF", "label": "FD", "title": "Festivo Departamento"} ]'
    holidays='[
          {"title": "Año nuevo", "date": "1/1"},
          {"title": "Dia de Reyes", "date": "6/1"},
          {"title": "Jueves Santo", "date": "9/4"},
          {"title": "Viernes Santo", "date": "10/4"},
          {"title": "Día del trabajador", "date": "1/5"},
          {"title": "Día de la comunidad de Madrid", "date":"2/5"}, 
          {"title": "San Isidro", "date":"15/5"}, 
          {"title": "Día de la Asunción de la Virgen", "date": "15/8"}, 
          {"title": "Día de todos los santos (pasado del domingo)", "date": "2/11"},
          {"title": "Día de la Almudena", "date":"9/11"}, 
          {"title": "Día de la constitución", "date": "6/12"},
          {"title": "Día de la Inmaculada Concepción", "date": "9/12"},
          {"title": "Festivo en Kairós", "date": "24/12"},
          {"title": "Navidad", "date": "25/12"},
          {"title": "Festivo en Kairós", "date": "31/12"},
          {"title": "Año Nuevo", "date": "1/1/2021"},
          {"title": "Día de Reyes", "date": "6/1/2021"} ]'
  >  
  </marked-calendar>
  
  <marked-calendar 
      id="calendar2" 
      year="2020"
      name="Bitakora"
      weekends
      view='month'
      legend='[
          {"code": "#0F0", "label": "Filled",  "title": "Filled"} ]'
      holidays='[
          {"title": "Año nuevo", "date": "1/1"},
          {"title": "Dia de Reyes", "date": "6/1"},
          {"title": "Jueves Santo", "date": "9/4"},
          {"title": "Viernes Santo", "date": "10/4"},
          {"title": "Día del trabajador", "date": "1/5"},
          {"title": "Día de la comunidad de Madrid", "date":"2/5"}, 
          {"title": "San Isidro", "date":"15/5"}, 
          {"title": "Día de la Asunción de la Virgen", "date": "15/8"}, 
          {"title": "Día de todos los santos (pasado del domingo)", "date": "2/11"},
          {"title": "Día de la Almudena", "date":"9/11"}, 
          {"title": "Día de la constitución", "date": "6/12"},
          {"title": "Día de la Inmaculada Concepción", "date": "9/12"},
          {"title": "Festivo en Kairós", "date": "24/12"},
          {"title": "Navidad", "date": "25/12"},
          {"title": "Festivo en Kairós", "date": "31/12"},
          {"title": "Año Nuevo", "date": "1/1/2021"},
          {"title": "Día de Reyes", "date": "6/1/2021"} ]'
  >
  </marked-calendar>
 
  <marked-calendar
          id="calendar3"
          year="2020"
          name="Clases"
          save-data
          weekends
          view='year'
          legend='[
          {"code": "#0F0", "label": "Vue",  "title": "Vue"},
          {"code": "#FF0", "label": "LitEl", "title": "Lit-Element"},
          {"code": "#F00", "label": "Ng",  "title": "Angular"},
          {"code": "#00F", "label": "Ts",  "title": "Typescript"},
          {"code": "#0FF", "label": "React", "title": "React"} ]'
   >
   </marked-calendar>
</div>
              
            
!

CSS

              
                .container { display:flex; flex-direction:row; } 
              
            
!

JS

              
                // https://github.com/manufosela/marked-calendar
// npm i --save marked-calendar
window.localStorage.setItem('marked-calendar-calendar1', '{"2020":{"0":{},"1":{},"2":{},"3":{},"4":{"3":"1","4":"1","5":"2","6":"3","7":"3","10":"4","11":"4","12":"4","13":"4"},"5":{},"6":{},"7":{},"8":{},"9":{},"10":{},"11":{}}}');
window.localStorage.setItem('marked-calendar-calendar2', '{"2020":{"0":{},"1":{},"2":{},"3":{},"4":{"3":"1","4":"1","5":"1","6":"1","7":"1","10":"1","11":"1","12":"1","13":"1","17":"1","18":"1","19":"1","20":"1","24":null,"25":null,"27":null},"5":{},"6":{},"7":{},"8":{},"9":{},"10":{},"11":{}}}');
window.localStorage.setItem('marked-calendar-calendar3', '{"2020":{"0":{},"1":{},"2":{},"3":{},"4":{"3":"1","4":"1","5":"2","6":"2","7":"2","10":"4","11":"3","12":"3","13":"3","14":"3","17":"5","18":"5","19":"5","20":"5","21":"5"},"5":{},"6":{},"7":{},"8":{},"9":{},"10":{},"11":{}}}');
const t=new WeakMap,e=e=>"function"==typeof e&&t.has(e),s=void 0!==window.customElements&&void 0!==window.customElements.polyfillWrapFlushCallback,i=(t,e,s=null)=>{let i=e;for(;i!==s;){const e=i.nextSibling;t.removeChild(i),i=e}},n={},r={},a=`{{lit-${String(Math.random()).slice(2)}}}`,o=`\x3c!--${a}--\x3e`,h=new RegExp(`${a}|${o}`);class l{constructor(t,e){this.parts=[],this.element=e;let s=-1,i=0;const n=[],r=e=>{const o=e.content,l=document.createTreeWalker(o,133,null,!1);let d=0;for(;l.nextNode();){s++;const e=l.currentNode;if(1===e.nodeType){if(e.hasAttributes()){const n=e.attributes;let r=0;for(let t=0;t<n.length;t++)n[t].value.indexOf(a)>=0&&r++;for(;r-- >0;){const n=t.strings[i],r=u.exec(n)[2],a=r.toLowerCase()+"$lit$",o=e.getAttribute(a).split(h);this.parts.push({type:"attribute",index:s,name:r,strings:o}),e.removeAttribute(a),i+=o.length-1}}"TEMPLATE"===e.tagName&&r(e)}else if(3===e.nodeType){const t=e.data;if(t.indexOf(a)>=0){const r=e.parentNode,a=t.split(h),o=a.length-1;for(let t=0;t<o;t++)r.insertBefore(""===a[t]?c():document.createTextNode(a[t]),e),this.parts.push({type:"node",index:++s});""===a[o]?(r.insertBefore(c(),e),n.push(e)):e.data=a[o],i+=o}}else if(8===e.nodeType)if(e.data===a){const t=e.parentNode;null!==e.previousSibling&&s!==d||(s++,t.insertBefore(c(),e)),d=s,this.parts.push({type:"node",index:s}),null===e.nextSibling?e.data="":(n.push(e),s--),i++}else{let t=-1;for(;-1!==(t=e.data.indexOf(a,t+1));)this.parts.push({type:"node",index:-1})}}};r(e);for(const t of n)t.parentNode.removeChild(t)}}const d=t=>-1!==t.index,c=()=>document.createComment(""),u=/([ \x09\x0a\x0c\x0d])([^\0-\x1F\x7F-\x9F \x09\x0a\x0c\x0d"'>=/]+)([ \x09\x0a\x0c\x0d]*=[ \x09\x0a\x0c\x0d]*(?:[^ \x09\x0a\x0c\x0d"'`<>=]*|"[^"]*|'[^']*))$/;class p{constructor(t,e,s){this._parts=[],this.template=t,this.processor=e,this.options=s}update(t){let e=0;for(const s of this._parts)void 0!==s&&s.setValue(t[e]),e++;for(const t of this._parts)void 0!==t&&t.commit()}_clone(){const t=s?this.template.element.content.cloneNode(!0):document.importNode(this.template.element.content,!0),e=this.template.parts;let i=0,n=0;const r=t=>{const s=document.createTreeWalker(t,133,null,!1);let a=s.nextNode();for(;i<e.length&&null!==a;){const t=e[i];if(d(t))if(n===t.index){if("node"===t.type){const t=this.processor.handleTextExpression(this.options);t.insertAfterNode(a.previousSibling),this._parts.push(t)}else this._parts.push(...this.processor.handleAttributeExpressions(a,t.name,t.strings,this.options));i++}else n++,"TEMPLATE"===a.nodeName&&r(a.content),a=s.nextNode();else this._parts.push(void 0),i++}};return r(t),s&&(document.adoptNode(t),customElements.upgrade(t)),t}}class m{constructor(t,e,s,i){this.strings=t,this.values=e,this.type=s,this.processor=i}getHTML(){const t=this.strings.length-1;let e="";for(let s=0;s<t;s++){const t=this.strings[s],i=u.exec(t);e+=i?t.substr(0,i.index)+i[1]+i[2]+"$lit$"+i[3]+a:t+o}return e+this.strings[t]}getTemplateElement(){const t=document.createElement("template");return t.innerHTML=this.getHTML(),t}}const y=t=>null===t||!("object"==typeof t||"function"==typeof t);class g{constructor(t,e,s){this.dirty=!0,this.element=t,this.name=e,this.strings=s,this.parts=[];for(let t=0;t<s.length-1;t++)this.parts[t]=this._createPart()}_createPart(){return new S(this)}_getValue(){const t=this.strings,e=t.length-1;let s="";for(let i=0;i<e;i++){s+=t[i];const e=this.parts[i];if(void 0!==e){const t=e.value;if(null!=t&&(Array.isArray(t)||"string"!=typeof t&&t[Symbol.iterator]))for(const e of t)s+="string"==typeof e?e:String(e);else s+="string"==typeof t?t:String(t)}}return s+=t[e],s}commit(){this.dirty&&(this.dirty=!1,this.element.setAttribute(this.name,this._getValue()))}}class S{constructor(t){this.value=void 0,this.committer=t}setValue(t){t===n||y(t)&&t===this.value||(this.value=t,e(t)||(this.committer.dirty=!0))}commit(){for(;e(this.value);){const t=this.value;this.value=n,t(this)}this.value!==n&&this.committer.commit()}}class f{constructor(t){this.value=void 0,this._pendingValue=void 0,this.options=t}appendInto(t){this.startNode=t.appendChild(c()),this.endNode=t.appendChild(c())}insertAfterNode(t){this.startNode=t,this.endNode=t.nextSibling}appendIntoPart(t){t._insert(this.startNode=c()),t._insert(this.endNode=c())}insertAfterPart(t){t._insert(this.startNode=c()),this.endNode=t.endNode,t.endNode=this.startNode}setValue(t){this._pendingValue=t}commit(){for(;e(this._pendingValue);){const t=this._pendingValue;this._pendingValue=n,t(this)}const t=this._pendingValue;t!==n&&(y(t)?t!==this.value&&this._commitText(t):t instanceof m?this._commitTemplateResult(t):t instanceof Node?this._commitNode(t):Array.isArray(t)||t[Symbol.iterator]?this._commitIterable(t):t===r?(this.value=r,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 e=this.startNode.nextSibling;t=null==t?"":t,e===this.endNode.previousSibling&&3===e.nodeType?e.data=t:this._commitNode(document.createTextNode("string"==typeof t?t:String(t))),this.value=t}_commitTemplateResult(t){const e=this.options.templateFactory(t);if(this.value instanceof p&&this.value.template===e)this.value.update(t.values);else{const s=new p(e,t.processor,this.options),i=s._clone();s.update(t.values),this._commitNode(i),this.value=s}}_commitIterable(t){Array.isArray(this.value)||(this.value=[],this.clear());const e=this.value;let s,i=0;for(const n of t)s=e[i],void 0===s&&(s=new f(this.options),e.push(s),0===i?s.appendIntoPart(this):s.insertAfterPart(e[i-1])),s.setValue(n),s.commit(),i++;i<e.length&&(e.length=i,this.clear(s&&s.endNode))}clear(t=this.startNode){i(this.startNode.parentNode,t.nextSibling,this.endNode)}}class v{constructor(t,e,s){if(this.value=void 0,this._pendingValue=void 0,2!==s.length||""!==s[0]||""!==s[1])throw new Error("Boolean attributes can only contain a single expression");this.element=t,this.name=e,this.strings=s}setValue(t){this._pendingValue=t}commit(){for(;e(this._pendingValue);){const t=this._pendingValue;this._pendingValue=n,t(this)}if(this._pendingValue===n)return;const t=!!this._pendingValue;this.value!==t&&(t?this.element.setAttribute(this.name,""):this.element.removeAttribute(this.name)),this.value=t,this._pendingValue=n}}class _ extends g{constructor(t,e,s){super(t,e,s),this.single=2===s.length&&""===s[0]&&""===s[1]}_createPart(){return new w(this)}_getValue(){return this.single?this.parts[0].value:super._getValue()}commit(){this.dirty&&(this.dirty=!1,this.element[this.name]=this._getValue())}}class w extends S{}let x=!1;try{const t={get capture(){return x=!0,!1}};window.addEventListener("test",t,t),window.removeEventListener("test",t,t)}catch(t){}class N{constructor(t,e,s){this.value=void 0,this._pendingValue=void 0,this.element=t,this.eventName=e,this.eventContext=s,this._boundHandleEvent=t=>this.handleEvent(t)}setValue(t){this._pendingValue=t}commit(){for(;e(this._pendingValue);){const t=this._pendingValue;this._pendingValue=n,t(this)}if(this._pendingValue===n)return;const t=this._pendingValue,s=this.value,i=null==t||null!=s&&(t.capture!==s.capture||t.once!==s.once||t.passive!==s.passive),r=null!=t&&(null==s||i);i&&this.element.removeEventListener(this.eventName,this._boundHandleEvent,this._options),r&&(this._options=E(t),this.element.addEventListener(this.eventName,this._boundHandleEvent,this._options)),this.value=t,this._pendingValue=n}handleEvent(t){"function"==typeof this.value?this.value.call(this.eventContext||this.element,t):this.value.handleEvent(t)}}const E=t=>t&&(x?{capture:t.capture,passive:t.passive,once:t.once}:t.capture);const b=new class{handleAttributeExpressions(t,e,s,i){const n=e[0];if("."===n){return new _(t,e.slice(1),s).parts}if("@"===n)return[new N(t,e.slice(1),i.eventContext)];if("?"===n)return[new v(t,e.slice(1),s)];return new g(t,e,s).parts}handleTextExpression(t){return new f(t)}};function C(t){let e=A.get(t.type);void 0===e&&(e={stringsArray:new WeakMap,keyString:new Map},A.set(t.type,e));let s=e.stringsArray.get(t.strings);if(void 0!==s)return s;const i=t.strings.join(a);return s=e.keyString.get(i),void 0===s&&(s=new l(t,t.getTemplateElement()),e.keyString.set(i,s)),e.stringsArray.set(t.strings,s),s}const A=new Map,T=new WeakMap;(window.litHtmlVersions||(window.litHtmlVersions=[])).push("1.0.0");const M=(t,...e)=>new m(t,e,"html",b);function D(t,e){const{element:{content:s},parts:i}=t,n=document.createTreeWalker(s,133,null,!1);let r=O(i),a=i[r],o=-1,h=0;const l=[];let d=null;for(;n.nextNode();){o++;const t=n.currentNode;for(t.previousSibling===d&&(d=null),e.has(t)&&(l.push(t),null===d&&(d=t)),null!==d&&h++;void 0!==a&&a.index===o;)a.index=null!==d?-1:a.index-h,r=O(i,r),a=i[r]}l.forEach(t=>t.parentNode.removeChild(t))}const R=t=>{let e=11===t.nodeType?0:1;const s=document.createTreeWalker(t,133,null,!1);for(;s.nextNode();)e++;return e},O=(t,e=-1)=>{for(let s=e+1;s<t.length;s++){const e=t[s];if(d(e))return s}return-1};const P=(t,e)=>`${t}--${e}`;let k=!0;void 0===window.ShadyCSS?k=!1:void 0===window.ShadyCSS.prepareTemplateDom&&(console.warn("Incompatible ShadyCSS version detected.Please update to at least @webcomponents/webcomponentsjs@2.0.2 and@webcomponents/shadycss@1.3.1."),k=!1);const V=t=>e=>{const s=P(e.type,t);let i=A.get(s);void 0===i&&(i={stringsArray:new WeakMap,keyString:new Map},A.set(s,i));let n=i.stringsArray.get(e.strings);if(void 0!==n)return n;const r=e.strings.join(a);if(n=i.keyString.get(r),void 0===n){const s=e.getTemplateElement();k&&window.ShadyCSS.prepareTemplateDom(s,t),n=new l(e,s),i.keyString.set(r,n)}return i.stringsArray.set(e.strings,n),n},L=["html","svg"],H=new Set,I=(t,e,s)=>{H.add(s);const i=t.querySelectorAll("style");if(0===i.length)return void window.ShadyCSS.prepareTemplateStyles(e.element,s);const n=document.createElement("style");for(let t=0;t<i.length;t++){const e=i[t];e.parentNode.removeChild(e),n.textContent+=e.textContent}if((t=>{L.forEach(e=>{const s=A.get(P(e,t));void 0!==s&&s.keyString.forEach(t=>{const{element:{content:e}}=t,s=new Set;Array.from(e.querySelectorAll("style")).forEach(t=>{s.add(t)}),D(t,s)})})})(s),function(t,e,s=null){const{element:{content:i},parts:n}=t;if(null==s)return void i.appendChild(e);const r=document.createTreeWalker(i,133,null,!1);let a=O(n),o=0,h=-1;for(;r.nextNode();){h++;for(r.currentNode===s&&(o=R(e),s.parentNode.insertBefore(e,s));-1!==a&&n[a].index===h;){if(o>0){for(;-1!==a;)n[a].index+=o,a=O(n,a);return}a=O(n,a)}}}(e,n,e.element.content.firstChild),window.ShadyCSS.prepareTemplateStyles(e.element,s),window.ShadyCSS.nativeShadow){const s=e.element.content.querySelector("style");t.insertBefore(s.cloneNode(!0),t.firstChild)}else{e.element.content.insertBefore(n,e.element.content.firstChild);const t=new Set;t.add(n),D(e,t)}};window.JSCompiler_renameProperty=(t,e)=>t;const B={toAttribute(t,e){switch(e){case Boolean:return t?"":null;case Object:case Array:return null==t?t:JSON.stringify(t)}return t},fromAttribute(t,e){switch(e){case Boolean:return null!==t;case Number:return null===t?null:Number(t);case Object:case Array:return JSON.parse(t)}return t}},F=(t,e)=>e!==t&&(e==e||t==t),Y={attribute:!0,type:String,converter:B,reflect:!1,hasChanged:F},q=Promise.resolve(!0);class z extends HTMLElement{constructor(){super(),this._updateState=0,this._instanceProperties=void 0,this._updatePromise=q,this._hasConnectedResolver=void 0,this._changedProperties=new Map,this._reflectingProperties=void 0,this.initialize()}static get observedAttributes(){this.finalize();const t=[];return this._classProperties.forEach((e,s)=>{const i=this._attributeNameForProperty(s,e);void 0!==i&&(this._attributeToPropertyMap.set(i,s),t.push(i))}),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,e)=>this._classProperties.set(e,t))}}static createProperty(t,e=Y){if(this._ensureClassProperties(),this._classProperties.set(t,e),e.noAccessor||this.prototype.hasOwnProperty(t))return;const s="symbol"==typeof t?Symbol():"__"+t;Object.defineProperty(this.prototype,t,{get(){return this[s]},set(e){const i=this[t];this[s]=e,this._requestUpdate(t,i)},configurable:!0,enumerable:!0})}static finalize(){if(this.hasOwnProperty(JSCompiler_renameProperty("finalized",this))&&this.finalized)return;const t=Object.getPrototypeOf(this);if("function"==typeof t.finalize&&t.finalize(),this.finalized=!0,this._ensureClassProperties(),this._attributeToPropertyMap=new Map,this.hasOwnProperty(JSCompiler_renameProperty("properties",this))){const t=this.properties,e=[...Object.getOwnPropertyNames(t),..."function"==typeof Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(t):[]];for(const s of e)this.createProperty(s,t[s])}}static _attributeNameForProperty(t,e){const s=e.attribute;return!1===s?void 0:"string"==typeof s?s:"string"==typeof t?t.toLowerCase():void 0}static _valueHasChanged(t,e,s=F){return s(t,e)}static _propertyValueFromAttribute(t,e){const s=e.type,i=e.converter||B,n="function"==typeof i?i:i.fromAttribute;return n?n(t,s):t}static _propertyValueToAttribute(t,e){if(void 0===e.reflect)return;const s=e.type,i=e.converter;return(i&&i.toAttribute||B.toAttribute)(t,s)}initialize(){this._saveInstanceProperties(),this._requestUpdate()}_saveInstanceProperties(){this.constructor._classProperties.forEach((t,e)=>{if(this.hasOwnProperty(e)){const t=this[e];delete this[e],this._instanceProperties||(this._instanceProperties=new Map),this._instanceProperties.set(e,t)}})}_applyInstanceProperties(){this._instanceProperties.forEach((t,e)=>this[e]=t),this._instanceProperties=void 0}connectedCallback(){this._updateState=32|this._updateState,this._hasConnectedResolver&&(this._hasConnectedResolver(),this._hasConnectedResolver=void 0)}disconnectedCallback(){}attributeChangedCallback(t,e,s){e!==s&&this._attributeToProperty(t,s)}_propertyToAttribute(t,e,s=Y){const i=this.constructor,n=i._attributeNameForProperty(t,s);if(void 0!==n){const t=i._propertyValueToAttribute(e,s);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,e){if(8&this._updateState)return;const s=this.constructor,i=s._attributeToPropertyMap.get(t);if(void 0!==i){const t=s._classProperties.get(i)||Y;this._updateState=16|this._updateState,this[i]=s._propertyValueFromAttribute(e,t),this._updateState=-17&this._updateState}}_requestUpdate(t,e){let s=!0;if(void 0!==t){const i=this.constructor,n=i._classProperties.get(t)||Y;i._valueHasChanged(this[t],e,n.hasChanged)?(this._changedProperties.has(t)||this._changedProperties.set(t,e),!0!==n.reflect||16&this._updateState||(void 0===this._reflectingProperties&&(this._reflectingProperties=new Map),this._reflectingProperties.set(t,n))):s=!1}!this._hasRequestedUpdate&&s&&this._enqueueUpdate()}requestUpdate(t,e){return this._requestUpdate(t,e),this.updateComplete}async _enqueueUpdate(){let t,e;this._updateState=4|this._updateState;const s=this._updatePromise;this._updatePromise=new Promise((s,i)=>{t=s,e=i});try{await s}catch(t){}this._hasConnected||await new Promise(t=>this._hasConnectedResolver=t);try{const t=this.performUpdate();null!=t&&await t}catch(t){e(t)}t(!this._hasRequestedUpdate)}get _hasConnected(){return 32&this._updateState}get _hasRequestedUpdate(){return 4&this._updateState}get hasUpdated(){return 1&this._updateState}performUpdate(){this._instanceProperties&&this._applyInstanceProperties();let t=!1;const e=this._changedProperties;try{t=this.shouldUpdate(e),t&&this.update(e)}catch(e){throw t=!1,e}finally{this._markUpdated()}t&&(1&this._updateState||(this._updateState=1|this._updateState,this.firstUpdated(e)),this.updated(e))}_markUpdated(){this._changedProperties=new Map,this._updateState=-5&this._updateState}get updateComplete(){return this._updatePromise}shouldUpdate(t){return!0}update(t){void 0!==this._reflectingProperties&&this._reflectingProperties.size>0&&(this._reflectingProperties.forEach((t,e)=>this._propertyToAttribute(e,this[e],t)),this._reflectingProperties=void 0)}updated(t){}firstUpdated(t){}}z.finalized=!0;const U="adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,$=Symbol();class G{constructor(t,e){if(e!==$)throw new Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=t}get styleSheet(){return void 0===this._styleSheet&&(U?(this._styleSheet=new CSSStyleSheet,this._styleSheet.replaceSync(this.cssText)):this._styleSheet=null),this._styleSheet}toString(){return this.cssText}}const W=(t,...e)=>{const s=e.reduce((e,s,i)=>e+(t=>{if(t instanceof G)return t.cssText;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.`)})(s)+t[i+1],t[0]);return new G(s,$)};(window.litElementVersions||(window.litElementVersions=[])).push("2.0.1");const j=t=>t.flat?t.flat(1/0):function t(e,s=[]){for(let i=0,n=e.length;i<n;i++){const n=e[i];Array.isArray(n)?t(n,s):s.push(n)}return s}(t);class J extends z{static finalize(){super.finalize(),this._styles=this.hasOwnProperty(JSCompiler_renameProperty("styles",this))?this._getUniqueStyles():this._styles||[]}static _getUniqueStyles(){const t=this.styles,e=[];if(Array.isArray(t)){j(t).reduceRight((t,e)=>(t.add(e),t),new Set).forEach(t=>e.unshift(t))}else t&&e.push(t);return e}initialize(){super.initialize(),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?U?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){super.update(t);const e=this.render();e instanceof m&&this.constructor.render(e,this.renderRoot,{scopeName:this.localName,eventContext:this}),this._needsShimAdoptedStyleSheets&&(this._needsShimAdoptedStyleSheets=!1,this.constructor._styles.forEach(t=>{const e=document.createElement("style");e.textContent=t.cssText,this.renderRoot.appendChild(e)}))}render(){}}J.finalized=!0,J.render=(t,e,s)=>{const n=s.scopeName,r=T.has(e),a=e instanceof ShadowRoot&&k&&t instanceof m,o=a&&!H.has(n),h=o?document.createDocumentFragment():e;if(((t,e,s)=>{let n=T.get(e);void 0===n&&(i(e,e.firstChild),T.set(e,n=new f(Object.assign({templateFactory:C},s))),n.appendInto(e)),n.setValue(t),n.commit()})(t,h,Object.assign({templateFactory:V(n)},s)),o){const t=T.get(h);T.delete(h),t.value instanceof p&&I(h,t.value.template,n),i(e,e.firstChild),e.appendChild(h),T.set(e,t)}!r&&a&&window.ShadyCSS.styleElement(e.host)};class X extends J{static get is(){return"marked-calendar"}static get properties(){return{lang:{type:String},view:{type:String},year:{type:Number},name:{type:String},saveData:{type:Boolean,attribute:"save-data"},weekends:{type:Boolean},changeView:{type:Boolean,attribute:"change-view"},legend:{type:String},holidays:{type:String}}}static get styles(){return W`
      :host {
        display:flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        background: #f8f7f2;
        font-family: "Amatic SC", cursive;
        font-size: 100%;
        -webkit-user-select: none;
          -moz-user-select: none;
            -ms-user-select: none;
                user-select: none;

        --cellSize: 1.25em;
      }

      .title {
        text-align: center;
        font-family: "Pacifico", cursive;
        margin: 0;
        color: #564d65;
        text-shadow: 1px 3px 1px #dfe8ea;
      }

      .social {
        position: absolute;
        left: 10px;
        top: 10px;
      }
      .social a img {
        display: inline-block;
        height: 1.5em;
      }

      #guide {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        font-weight: bold;
        margin: 1em 0;
      }
      #guide:hover {
        cursor: pointer;
      }
      #selectedState {
        color: #F30;
        font-weight: bold;
        font-size: 1.1rem;
        letter-spacing: 3px;
      }
      #selectedState span {
        width: 1em;
        height: 1em;
        display: inline-block;
        vertical-align: middle;
      }

      #states {
        display: flex;
        flex-direction: row;
        flex-wrap: wrap;
        max-width:22rem;
      }
      #states div {
        position: relative;
        margin: 5px 1em;
        padding-left: var(--cellSize);
        width: 2em;
      }
      #states div span {
        position: absolute;
        left: 0;
        top: 0.25em;
        width: 1em;
        height: 1em;
      }
      .typeselected {
        border:3px inset !important;
      }

      /* Vista AÑO */
      .content {
        display: inline-flex;
        flex-direction: column;
      }

      .yearMainContainer,
      #monthHeader,
      #daysHeader,
      #tableContainer {
        display: flex;
        justify-content: center;
        margin-bottom: 0.25em;
      }

      #daysHeader {
        margin-left: var(--cellSize);
        margin-bottom: 0;
        margin-top: 1em;
      }

      .monthHeader,
      .dayHeader {
        width: var(--cellSize);
        height: var(--cellSize);
        font-size: 1rem;
        padding: 1px 0 0 1px;
        text-align: center;
        font-weight: bold;
      }

      .monthContainer {
        display: flex;
        flex-direction: column;
        align-items: stretch;
      }
      .monthContainer:hover {
        cursor: pointer;
      }
      .monthLetterBtn {
        width:var(--cellSize);
        padding:0;
      }

      .dayContainer {
        width: var(--cellSize);
        height: var(--cellSize);
        border: 1px solid #dfe8ea;
        margin-right: -1px;
        margin-bottom: -1px;
      }

      /* VISTA MES */
      .monthMainContainer {
        width:21rem;
        display:grid;
        grid-template-columns: repeat(7, 1fr);
      }

      .monthMainContainer span.dayofweek {
        text-align: center;
        font-weight:bold;
        font-size:1.2rem;
      }

      .monthMainContainer span.dayofmonth { 
        border:1px solid #CCC; 
        height: 3rem;
        width: 3rem; 
      }

      .monthMainContainer span div {
        font-size: 2rem;
        text-align:center;
        height:65%;
        width:100%;
      }

      .calendarNavigation { 
        text-align: center;
        color:red;
        
        height: 2rem;
      }
      .calendarNavigation .navBar {
        display:flex;
        width:80%;
        margin-left:10%;
      }
      .calendarNavigation .navBar button {
        margin:0 1rem;
      }
      .calendarNavigation .navBar .navTitle {
        width:200px;
      }
      #changeViewBtn { width:7rem; }
      .notice { width:150px; height:50px; padding:5px; position:absolute; display:none; border:2px solid #000; border-radius:10px; background:#F90; }

      @media (min-width: 769px) {
        .content {
          display: flex;
          justify-content: center;
          --cellSize: 1em;
        }

        .yearMainContainer {
          flex-direction: column;
        }

        #monthHeader {
          flex-direction: column;
        }

        .dayHeader,
        #daysHeader,
        .monthContainer {
          flex-direction: row;
        }
      }
      @media (max-width: 768px) {
        .content {
          display: inline-flex;
          flex-direction: row;
          justify-content: center;
          width: 90%;
        }

        .yearMainContainer,
        #monthHeader {
          flex-direction: row;
        }

        .dayHeader,
        #daysHeader,
        #tableContainer {
          flex-direction: column;
        }

        .monthMainContainer {
          width:15rem;
          margin:0;
        }

        .monthMainContainer span.dayofweek {
          font-size:0.8rem;
        }
        .monthMainContainer span.dayofmonth { 
          border:1px solid #CCC; 
          height: 3rem;
          width: 2.1rem; 
          font-size:0.8rem;
        }

        #guide {
          font-size:1rem;
        }
        #states {
          width: 100%;
        }
      }
    `}constructor(){super(),this.view="year",this.lang="sp",this.YEARNOW=(new Date).getFullYear(),this.year=this.YEARNOW,this.YEAR=this.year,this.day=(new Date).getDate(),this.month=(new Date).getMonth(),this.saveData=!1,this.changeView=!1,this.weekends=!1,this.LEGEND={0:{code:"#FFFFFF",label:"X",title:"delete"},1:{code:"#2DE1C2",label:"😃",title:"very-happy"},2:{code:"#01BAEF",label:"😊",title:"happy"},3:{code:"#AFBFC0",label:"😐",title:"neutral"},4:{code:"#037171",label:"😞",title:"sad"},5:{code:"#305654",label:"😭",title:"very-sad"}},this.legend="",this.holidays="",this.arrHolidays=[],this.MONTH_LETTERS={sp:[{letter:"E",name:"Enero"},{letter:"F",name:"Febrero"},{letter:"M",name:"Marzo"},{letter:"A",name:"Abril"},{letter:"M",name:"Mayo"},{letter:"J",name:"Junio"},{letter:"J",name:"Julio"},{letter:"A",name:"Agosto"},{letter:"S",name:"Septiembre"},{letter:"O",name:"Octubre"},{letter:"N",name:"Noviembre"},{letter:"D",name:"Diciembre"}]},this.DAYOFWEEK_LETTER={sp:[{letter:"L",name:"Lunes"},{letter:"M",name:"Martes"},{letter:"X",name:"Miércoles"},{letter:"J",name:"Jueves"},{letter:"V",name:"Viernes"},{letter:"S",name:"Sábado"},{letter:"D",name:"Domingo"}]},this.selectedState=null,this.DAYHEADERLENGTH=31,this.id=this.id||this._createUUID(),this.structureName="marked-calendar-"+this.id,this._selectLegendType=this._selectLegendType.bind(this),this._changeToViewMonth=this._changeToViewMonth.bind(this),this._decrementMonth=this._decrementMonth.bind(this),this._incrementMonth=this._incrementMonth.bind(this),this._decrementYear=this._decrementYear.bind(this),this._incrementYear=this._incrementYear.bind(this),this.setCellValue=this.setCellValue.bind(this)}connectedCallback(){super.connectedCallback(),this.YEAR=this.year}getArrDaysByMonth(){return[31,this.year%4==0&&this.year%100!=0||this.year%400==0?29:28,31,30,31,30,31,31,30,31,30,31]}_createUUID(){var t=(new Date).getTime();return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(function(e){var s=(t+16*Math.random())%16|0;return t=Math.floor(t/16),("x"===e?s:3&s|8).toString(16)}))}setStates(){Object.keys(this.LEGEND).forEach(t=>{let e=document.createElement("div"),s=document.createElement("span");s.style.background=this._getGradient(this.LEGEND[t].code),e.setAttribute("state",t),s.setAttribute("state",t),e.textContent+=this.LEGEND[t].label,e.title=this.LEGEND[t].title,e.appendChild(s),this.MOODS.appendChild(e)})}setMarkedDays(t){(t="string"==typeof t?JSON.parse(t):t).forEach(t=>{let e=t.day.split("/"),s=e[0]-1,i=e[1]-1,n=t.value;const r=this._getCurrentLSStructure()[this.year];r[i][s]=n,this._setCurrentLSStructure(r),this.generateVisualStructure()})}getMarkedDays(){let t=[];const e=this._getCurrentLSStructure()[this.year];for(let s in e)if(Object.prototype.hasOwnProperty.call(e,s))for(let i in e[s])Object.prototype.hasOwnProperty.call(e[s],s)&&e[s][i]&&t.push({day:Number(i)+1+"/"+(Number(s)+1),value:e[s][i]});return t}checkLocalStorage(){if(void 0===window.localStorage[this.structureName]){let t=this.generateDataStructure();localStorage.setItem(this.structureName,JSON.stringify(t))}}generateDataStructure(){let t={};t[this.year]={};for(let e=0;e<12;e++)t[this.year][e]={};return t}createDayCells(t){this.DAYS_HEADER.textContent="";for(let e=1;e<=t;e++){let t=document.createElement("div");t.className="dayHeader",t.textContent=e,this.DAYS_HEADER.appendChild(t)}}setDayContent(t,e,s){let i=document.createElement("div"),n=!0,r=!0,a=this.arrHolidays.length>0;return i.className="dayContainer",t&&(i.style.background=this._getGradient(this.LEGEND[t].code),i.title=this.LEGEND[t].label),this.weekends&&([i,r]=this.drawIsWeekend(i,e,s)),a&&([i,n]=this.drawIsHoliday(i,e,s)),i.dataset.noweekend=r,i.dataset.noholidays=n,i.dataset.month=e,i.dataset.day=s,i}setDayStyle(t,e){const s=this._getCurrentLSStructure()[this.year],i=this.getArrDaysByMonth()[t];for(let n=0;n<i;n++){const i=s[t][n]?s[t][n]:"",r=this.setDayContent(i,t,n);e.appendChild(r)}}_decrementMonth(t){this.month--,0===this.month&&(this.month=11,this.year--),this.createWeeks(this.month),this.shadowRoot.querySelector("#navTitle").textContent=`${this.MONTH_LETTERS.sp[this.month].name} ${this.year}`}_incrementMonth(t){this.month++,12===this.month&&(this.month=0,this.year++),this.createWeeks(this.month),this.shadowRoot.querySelector("#navTitle").textContent=`${this.MONTH_LETTERS.sp[this.month].name} ${this.year}`}addBtnEventsMonthNavBar(){this.shadowRoot.querySelector("#lastMonthBtn").onclick=this._decrementMonth,this.shadowRoot.querySelector("#nextMonthBtn").onclick=this._incrementMonth,this.changeView&&(this.shadowRoot.querySelector("#changeViewBtn").onclick=t=>{this.view="year",this.generateVisualStructure()})}_decrementYear(t){if(this.year--,void 0===window.localStorage[this.structureName]){if(!this.saveData)return void this.year++;{let t=this.generateDataStructure();localStorage.setItem(this.structureName,JSON.stringify(t))}}this.createDayCells(this.DAYHEADERLENGTH),this.createMonths(),this.shadowRoot.querySelector("#navTitle").textContent=""+this.year}_incrementYear(t){if(this.year++,void 0===window.localStorage[this.structureName]){if(!this.saveData)return void this.year--;{let t=this.generateDataStructure();localStorage.setItem(this.structureName,JSON.stringify(t))}}this.createDayCells(this.DAYHEADERLENGTH),this.createMonths(),this.shadowRoot.querySelector("#navTitle").textContent=""+this.year}addBtnEventsYearNavBar(){this.shadowRoot.querySelector("#lastYearBtn").onclick=this._decrementYear,this.shadowRoot.querySelector("#nextYearBtn").onclick=this._incrementYear,this.changeView&&(this.shadowRoot.querySelector("#changeViewBtn").onclick=t=>{this.view="month",this.generateVisualStructure()})}_addNavEvents(t){"month"===t?this.addBtnEventsMonthNavBar():this.addBtnEventsYearNavBar()}drawNavigationBar(t,e){let s=document.createElement("div");"month"===t?(s.innerHTML=`\n        <div class="navBar">\n          <button id="lastMonthBtn"><</button>\n          <div id="navTitle" class="navTitle">${this.MONTH_LETTERS.sp[e].name} ${this.year}</div>\n          <button id="nextMonthBtn">></button>\n          ${this.changeView?'<button id="changeViewBtn">Vista Año</button>':""}\n        </div>`,s.className="calendarNavigation"):s.innerHTML=`\n        <div class="navBar">\n          <button id="lastYearBtn"><</button>\n          <div id="navTitle" class="navTitle">${this.year}</div>\n          <button id="nextYearBtn">></button>\n          ${this.changeView?'<button id="changeViewBtn">Vista Mes</button>':""}\n        </div>`,this.shadowRoot.querySelector("#calendarNav").textContent="",this.shadowRoot.querySelector("#calendarNav").appendChild(s),this._addNavEvents(t)}drawMonthHeaderBar(t){t=Number(t),this.MAIN_CONTAINER.textContent="",this.MONTH_HEADER.textContent="",this.DAYS_HEADER.textContent="",this.MAIN_CONTAINER.className="monthMainContainer"}drawDayOfTheWeeksHeader(){for(let t=0;t<7;t++){let e=document.createElement("span");e.className="dayofweek",e.textContent=this.DAYOFWEEK_LETTER.sp[t].letter,this.MAIN_CONTAINER.appendChild(e)}}drawMonth(t){t=Number(t);const e=this._getCurrentLSStructure()[this.year],s=new Date(t+1+"/1/"+this.year).getDay(),i=new Date(this.year,t+1,0).getDate(),n=0===s?7:s;let r=0;for(let s=1;s<=42;s++){let a=document.createElement("span");if(s>=n&&r<i){a.className="dayofmonth",a.textContent=++r;let s=this.setDayContent(e[t][r-1],t,r-1);a.appendChild(s)}this.MAIN_CONTAINER.appendChild(a)}}createWeeks(t){this.month=t,this.checkLocalStorage(),this.drawMonthHeaderBar(this.month),this.drawDayOfTheWeeksHeader(),this.drawMonth(this.month)}_changeToViewMonth(t){let e=t.target.dataset.monthnum;this.view="month",this.createWeeks(e),this.generateVisualStructure()}createMonths(){this._getCurrentLSStructure()[this.year];const t=Object.keys(this.getArrDaysByMonth());this.MONTH_HEADER.textContent="",this.MAIN_CONTAINER.textContent="",this.MAIN_CONTAINER.className="yearMainContainer",t.forEach(t=>{let e=document.createElement("div");e.className="monthContainer";let s=document.createElement("div");s.className="monthHeader";let i=this.MONTH_LETTERS[this.lang][t].letter,n=this.MONTH_LETTERS[this.lang][t].name;s.innerHTML=`<button id="month_${n}" class="monthLetterBtn" title="click to change view of ${n}" data-monthnum="${t}">${i}</button>`,s.title=n,this.setDayStyle(t,e),this.MONTH_HEADER.appendChild(s),this.MAIN_CONTAINER.appendChild(e),this.shadowRoot.querySelector("#month_"+n).onclick=this._changeToViewMonth}),this.MAIN_CONTAINER.onclick=this.setCellValue}generateVisualStructure(){switch(this.view){case"month":this.drawNavigationBar("month",this.month),this.createWeeks(this.month);break;default:this.drawNavigationBar("year",this.YEAR),this.createDayCells(this.DAYHEADERLENGTH),this.createMonths()}}drawIsWeekend(t,e,s){let i=!0,n=new Date(`${this.year}/${Number(e)+1}/${Number(s)+1}`).getDay();return 0!==n&&6!==n||(t.style.background="#CCC",t.style.cursor="not-allowed",i=!1),[t,i]}drawIsHoliday(t,e,s){let i=!0,n=String(Number(s)+1),r=String(Number(e)+1);this.year;return this.arrHolidays.forEach(e=>{(e.date===n+"/"+r&&this.year===this.YEAR||e.date===n+"/"+r+"/"+this.year)&&(t.style.background="#999",t.style.cursor="not-allowed",t.title=e.title,i=!1)}),[t,i]}assignState(t,e,s){const i=s.target,n="true"===i.dataset.noholidays,r="true"===i.dataset.noweekend;if(n&&r&&this.saveData){const n=this._getCurrentLSStructure(),r=n[this.year];if(r[t][e]="0"===this.selectedState?null:this.selectedState,this.selectedState){i.style.background=this._getGradient(this.LEGEND[this.selectedState].code),i.title=this.LEGEND[this.selectedState].label;let s=new CustomEvent("setting-calendarItem",{detail:{year:this.year,month:t,day:e,state:this.selectedState}});this.dispatchEvent(s),this.saveData&&(n[this.year]=r,localStorage.setItem(this.structureName,JSON.stringify(n)))}else this.showNotice(s)}}showNotice(t){this.NOTICE_LAYER.style.display="block";let e=this.NOTICE_LAYER.offsetWidth,s=this.NOTICE_LAYER.offsetHeight;this.NOTICE_LAYER.style.top=t.pageY-s/2+"px",this.NOTICE_LAYER.style.left=t.pageX-e/2+"px",setTimeout(()=>{this.NOTICE_LAYER.style.display="none"},1e3)}_getDaysFromMonth(t){return new Date(this.year,t,0).getDate()}_getCurrentLSStructure(){const t=JSON.parse(window.localStorage[this.structureName]);return void 0===t[this.year]&&(t[this.year]=this.generateDataStructure()[this.year]),t}_setCurrentLSStructure(t){const e=this._getCurrentLSStructure();e[this.year]=t,localStorage.setItem(this.structureName,JSON.stringify(e))}_getGradient(t){return`radial-gradient(ellipse at center, rgba(255,255,255,.1) -95%, ${t} 100%)`}_selectLegendType(t){t.target.attributes[0].value>=0&&(this.shadowRoot.querySelector('span[class="typeselected"]')&&this.shadowRoot.querySelector('span[class="typeselected"]').classList.remove("typeselected"),this.selectedState=t.target.attributes[0].value,t.target.classList.add("typeselected"))}updated(){this.saveData&&this.GUIDES.addEventListener("click",this._selectLegendType)}_defineLEGEND(){""!==this.legend&&(this.LEGEND=JSON.parse(this.legend),this.saveData?this.LEGEND.unshift({code:"#FFFFFF",label:"X",title:"borrar"}):this.LEGEND.unshift({code:"#FFFFFF",label:" ",title:" "}))}_setArrHolidays(){""!==this.holidays&&(this.arrHolidays=JSON.parse(this.holidays))}setCellValue(t){const e=t.target.dataset.month,s=t.target.dataset.day;this.assignState(e,s,t)}init(){this.checkLocalStorage(),this.generateVisualStructure(),this.setStates()}firstUpdated(){this.name=this.name||M`Year in pixels`,this._defineLEGEND(),this._setArrHolidays(),this.MAIN_CONTAINER=this.shadowRoot.querySelector("#mainContainer"),this.DAYS_HEADER=this.shadowRoot.querySelector("#daysHeader"),this.MONTH_HEADER=this.shadowRoot.querySelector("#monthHeader"),this.GUIDES=this.shadowRoot.querySelector("#guide"),this.GUIDES=this.shadowRoot.querySelector("#guide"),this.SELECTED_MOOD=this.shadowRoot.querySelector("#selectedState span"),this.MOODS=this.shadowRoot.querySelector("#states"),this.NOTICE_LAYER=this.renderRoot.querySelector("#notice"),this.init(),this.renderRoot.querySelector('div [state="0"] span').style.border="1px solid black",this.MAIN_CONTAINER.onclick=this.setCellValue}render(){return M`
      <h1 class="title">${this.name}</h1>
      <div id="guide">
        <div id="selectedState">${this.saveData?M`Select an option:`:M`Legend`}<span></span></div>
        <div id="states"></div>
      </div>
      <div id="calendarNav" class="calendarNavigation"></div>
      <div class="content">
        <div id="daysHeader"></div>
        <div id="tableContainer">
          <div id="monthHeader"></div>
          <div id="mainContainer"></div>
        </div>
      </div>
      <div id="notice" class="notice">Select option first</div>
    `}}window.customElements.define(X.is,X);
//# sourceMappingURL=marked-calendar.js.map
              
            
!
999px

Console