UNPKG

spectre.css-js

Version:
1 lines 8.34 kB
!function(t){var e={};function i(s){if(e[s])return e[s].exports;var n=e[s]={i:s,l:!1,exports:{}};return t[s].call(n.exports,n,n.exports,i),n.l=!0,n.exports}i.m=t,i.c=e,i.d=function(t,e,s){i.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:s})},i.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},i.t=function(t,e){if(1&e&&(t=i(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var s=Object.create(null);if(i.r(s),Object.defineProperty(s,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var n in t)i.d(s,n,function(e){return t[e]}.bind(null,n));return s},i.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return i.d(e,"a",e),e},i.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},i.p="../",i(i.s=4)}([function(t,e,i){"use strict";i.d(e,"a",function(){return s});class s{constructor(t){this.element=t,this.init()}loadDataParams(t){Object.getOwnPropertyNames(t).forEach(e=>{if(e in this.element.dataset)try{t[e]=JSON.parse(this.element.dataset[e])}catch(i){t[e]=this.element.dataset[e]}})}static get selector(){return console.error("selector() getter not implemented yet"),""}static get class(){return console.error("class() getter not implemented yet"),""}static register(t=!1){this.class.instances=[],!1===t&&(t=this.selector),document.querySelectorAll(t).forEach(t=>{this.class.instances.push(new this.class(t))})}static get(t){let e=document.querySelector(t);return this.class.instances.find(t=>t.element===e)}log(){console.info(this)}init(){console.error("init() method not implemented yet")}}},function(t,e,i){"use strict";i.r(e);var s=i(2),n=i(0);class a extends n.a{static get selector(){return"[data-chips]"}static get class(){return a}init(){this.chips=[],this._buildConfig(),this._buildContainer(),this._buildInput()}_buildConfig(){this.config={chipsEnter:!0,chipsComma:!0,chipsClasses:[],chipsContainerClasses:["mb-3"]},this.loadDataParams(this.config)}_buildContainer(){this.chipsContainer=document.createElement("div"),this.chipsContainer.classList.add(...this.config.chipsContainerClasses),this.element.parentElement.prepend(this.chipsContainer)}_buildInput(){this.input=document.createElement("input"),this.input.type="hidden",this.input.name=`${this.element.name}`,this.element.removeAttribute("name"),this.element.parentElement.append(this.input),this.element.onkeyup=t=>{let e=","===t.key&&this.config.chipsComma,i="Enter"===t.key&&this.config.chipsEnter;if(e||i){let i=t.target.value;e&&(i=i.replace(",","")),this.add(i),t.target.value=""}}}_buildChip(t){let e=document.createElement("span");e.classList.add("chip"),e.innerText=t,e.dataset.chip=t,this.config.chipsClasses.length>0&&e.classList.add(...this.config.chipsClasses);let i=document.createElement("a");return i.classList.add("btn","btn-clear"),i.role="button",i.href="#",i.onclick=t=>{this.delete(t.target.parentElement.dataset.chip)},e.appendChild(i),e}_reset(){this.chipsContainer.innerHTML="",this.input.value=""}refresh(){this._reset(),this.chips.forEach(t=>{let e=this._buildChip(t);this.input.value+=`${t},`,this.chipsContainer.appendChild(e)}),this.input.value=this.input.value.substr(0,this.input.value.length-1)}add(t){if(""!==t&&" "!==t){t=t.replace(/"/g,"'"),this.chips.find(e=>e===t)||(this.chips.push(t),this.refresh())}}delete(t){this.chips=this.chips.filter(e=>e!==t),this.refresh()}}class o extends n.a{static get selector(){return"[data-tabs]"}static get class(){return o}init(){this.name=this.element.dataset.tabs,this._buildButtons(),this._buildPages()}_buildButtons(){this.buttons=this.element.querySelectorAll(".tab-item"),this.buttons.forEach((t,e)=>{t.dataset.tab=e,t.classList.contains("active")&&(this.index=e),t.onclick=t=>{t.preventDefault(),this.active(t.target.parentElement.dataset.tab)}})}_buildPages(){this.pages=document.querySelectorAll(`[data-tabs-content="${this.name}"] li`),this.pages.forEach((t,e)=>{t.style.display=e!==this.index?"none":"block"})}refresh(){this.buttons.forEach((t,e)=>{e===this.index?t.classList.add("active"):t.classList.remove("active")}),this.pages.forEach((t,e)=>{t.style.display=e===this.index?"block":"none"})}active(t){this.index=parseInt(t),this.refresh()}}class l extends n.a{static get selector(){return"[data-toast]"}static get class(){return l}init(){this.button=this.element.querySelector("button.btn-clear"),this.button.onclick=()=>{this.close()}}close(){this.element.animate([{opacity:1},{opacity:0}],{duration:300}),setTimeout(()=>{this.element.remove()},290)}static show(t){let e={title:"Test toast",message:"Simple toast text message",timeout:3e3,autoClose:!0};e={...e,...t};let i=document.createElement("div");if(i.classList.add("toast","p-fixed"),i.style.width="auto",i.style.minWidth="300px",i.style.maxWidth="600px",setTimeout(()=>{i.style.marginLeft=`calc(50% - ${i.offsetWidth/2}px)`,i.style.top=`-${i.offsetHeight}px`},1),"type"in e&&i.classList.add(`toast-${e.type}`),"title"in e&&!1!==e.title){let t=document.createElement("h6");t.innerText=e.title,i.appendChild(t)}let s=document.createElement("p");s.innerHTML=e.message,i.appendChild(s);let n=function(){i.animate([{opacity:1},{opacity:0}],{duration:300}),setTimeout(()=>{i.remove()},290)},a=document.createElement("button");a.classList.add("btn","btn-clear","float-right"),a.onclick=n,i.prepend(a),document.body.appendChild(i),i.animate([{top:`-${i.offsetHeight}px`},{top:"25px"}],{duration:300,easing:"ease",fill:"forwards"}),e.autoClose&&setTimeout(n,e.timeout)}static info(t,e=!1,i={}){l.show({message:t,title:e,type:"primary",...i})}static success(t,e=!1,i={}){l.show({message:t,title:e,type:"success",...i})}static warning(t,e=!1,i={}){l.show({message:t,title:e,type:"warning",...i})}static error(t,e=!1,i={}){l.show({message:t,title:e,type:"error",...i})}}const r={Autocomplete:s.a,Chips:a,Tabs:o,Toast:l};e.default=r},function(module,__webpack_exports__,__webpack_require__){"use strict";__webpack_require__.d(__webpack_exports__,"a",function(){return Autocomplete});var _classes_widget__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(0);class Autocomplete extends _classes_widget__WEBPACK_IMPORTED_MODULE_0__.a{static get selector(){return"[data-autocomplete]"}static get class(){return Autocomplete}init(){this._buildConfiguration(),this._buildOptionList()}_buildConfiguration(){this.options=[];let autocomplete=this.element.dataset.autocomplete;if(""!==autocomplete)try{this.options=JSON.parse(autocomplete)}catch(e){try{let callback=eval(autocomplete);"function"==typeof callback&&(this.options=callback(),void 0!==this.options.then&&this.options.then(t=>{this.options=t}))}catch(t){console.error('Invalid "autocomplete" callback')}}"onchange"in this.element.dataset&&(this.onchange=eval(this.element.dataset.onchange))}_buildOptionList(){this.optionList=document.createElement("ul"),this.optionList.classList.add("menu"),this.optionList.style.display="none",this.input=this.element.querySelector("input.form-input"),this.input.onclick=t=>{this.inputChanged(t.target.value,!1)},this.input.oninput=t=>{this.inputChanged(t.target.value)},document.addEventListener("click",t=>{t.target!==this.input&&(this.optionList.style.display="none")}),this.element.appendChild(this.optionList)}_buildOptionItem(t){let e=document.createElement("li");e.classList.add("menu-item");let i=document.createElement("a"),s=document.createElement("div");s.classList.add("tile","tile-centered");let n=document.createElement("div");return n.classList.add("tile-content"),n.innerText=t,n.onclick=t=>{this.input.value=t.target.innerText},s.appendChild(n),i.appendChild(s),e.appendChild(i),e}inputChanged(t,e=!0){this.onchange&&(e||this.options.length<1)&&this.onchange(t,this),this.refresh()}refresh(){let t=this.filter(this.input.value);this.optionList.innerHTML="",this.optionList.style.display="none",t.length>0&&(this.optionList.style.display="block",t.forEach(t=>{this.optionList.appendChild(this._buildOptionItem(t))}))}filter(t){return this.options.filter(e=>e.match(new RegExp(`${t}`,"gui")))}}},,function(t,e,i){i(5),t.exports=i(6)},function(t,e,i){"use strict";i.r(e);var s=i(1);window.onload=()=>{window.Spectre=s.default,Object.getOwnPropertyNames(s.default).forEach(t=>{s.default[t].register()})}},function(t,e,i){}]);