UNPKG

bulma-extensions

Version:

Set of extensions for Bulma.io CSS Framework

1 lines 11.2 kB
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.bulmaIconpicker=t():e.bulmaIconpicker=t()}("undefined"!=typeof self?self:this,function(){return function(n){var i={};function r(e){if(i[e])return i[e].exports;var t=i[e]={i:e,l:!1,exports:{}};return n[e].call(t.exports,t,t.exports,r),t.l=!0,t.exports}return r.m=n,r.c=i,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:n})},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=0)}([function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(1),a=n(2),l=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],i=!0,r=!1,a=void 0;try{for(var o,s=e[Symbol.iterator]();!(i=(o=s.next()).done)&&(n.push(o.value),!t||n.length!==t);i=!0);}catch(e){r=!0,a=e}finally{try{!i&&s.return&&s.return()}finally{if(r)throw a}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")},o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},s=function(){function i(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(e,t,n){return t&&i(e.prototype,t),n&&i(e,n),e}}();var r=function(e){function r(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{};!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,r);var n=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,(r.__proto__||Object.getPrototypeOf(r)).call(this));if(n.element="string"==typeof e?document.querySelector(e):e,!n.element)throw new Error("An invalid selector or non-DOM node has been provided.");return n._clickEvents=["click"],n.options=o({},a.a,t),n.icons=[],n.id="iconPicker"+(new Date).getTime(),n.init(),n}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(r,i["a"]),s(r,[{key:"init",value:function(){var r=this;this.createModal(),this.createPreview(),this.options.iconSets.forEach(function(n){var i;i=n.css,new Promise(function(e,t){var n=document.createElement("link");n.type="text/css",n.rel="stylesheet",n.onload=function(){e()},n.href=i,document.querySelector('link[href="'+i+'"]')||document.querySelector("head").append(n)}),fetch(n.css,{mode:"cors"}).then(function(e){return e.text()}).then(function(e){r.icons[n.name]=r.parseCSS(e,n.prefix||"fa-",n.displayPrefix||""),r.modalSetTabs.querySelector("a").click();var t=new Event("touchstart");r.modalSetTabs.querySelector("a").dispatchEvent(t)})})}},{key:"createPreview",value:function(){var t=this;this.preview=document.createElement("div"),this.preview.className="icon is-large",this.preview.classList.add("iconpicker-preview");var n=document.createElement("i");(n.className="iconpicker-icon-preview",this.element.value.length)&&this.element.value.split(" ").forEach(function(e){n.classList.add(e)});this.preview.appendChild(n),this._clickEvents.forEach(function(e){t.preview.addEventListener(e,function(e){e.preventDefault(),t.modal.classList.add("is-active")})}),this.element.parentNode.insertBefore(this.preview,this.element.nextSibling)}},{key:"parseCSS",value:function(e){for(var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:"fa-",n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:"",i=new RegExp("\\."+t+"([^\\.!:]*)::?before\\s*{\\s*content:\\s*[\"|']\\\\[^'|\"]*[\"|'];?\\s*}","g"),r=[],a=void 0,o=void 0;o=i.exec(e);)a={prefix:t,selector:t+o[1].trim(":"),name:this.ucwords(o[1]).trim(":"),filter:o[1].trim(":"),displayPrefix:n},r[o[1]]=a;return 0==Object.getOwnPropertyNames(this.icons).length&&console.warn("No icons found in CSS file"),r}},{key:"ucwords",value:function(e){return(e+"").replace(/^(.)|\s+(.)/g,function(e){return e.toUpperCase()})}},{key:"drawIcons",value:function(e){if(this.iconsList.innerHTML="",e){var t=!0,n=!1,i=void 0;try{for(var r,a=Object.entries(e)[Symbol.iterator]();!(t=(r=a.next()).done);t=!0){var o=r.value,s=l(o,2),c=(s[0],s[1]);this.iconsList.appendChild(this.createIconPreview(c))}}catch(e){n=!0,i=e}finally{try{!t&&a.return&&a.return()}finally{if(n)throw i}}}}},{key:"createIconPreview",value:function(e){var t=this,n=(1<arguments.length&&void 0!==arguments[1]&&arguments[1],document.createElement("a"));n.dataset.title=e.name,n.setAttribute("title",e.name),n.dataset.icon=e.selector,n.dataset.filter=e.filter;var i=document.createElement("i");return i.className="iconpicker-icon-preview",e.displayPrefix.length&&e.displayPrefix.split(" ").forEach(function(e){i.classList.add(e)}),i.classList.add(e.selector),n.appendChild(i),this._clickEvents.forEach(function(e){n.addEventListener(e,function(e){e.preventDefault(),t.preview.innerHTML="",t.element.value=e.target.classList,t.preview.appendChild(e.target.cloneNode(!0)),t.modal.classList.remove("is-active")})}),n}},{key:"createModal",value:function(){var i=this;this.modal=document.createElement("div"),this.modal.className="modal",this.modal.classList.add("iconpicker-modal"),this.modal.id=this.id;var e=document.createElement("div");e.className="modal-background";var t=document.createElement("div");t.className="modal-card";var n=document.createElement("header");n.className="modal-card-head";var r=document.createElement("p");r.className="modal-card-title",r.innerHTML="iconPicker",this.modalHeaderSearch=document.createElement("input"),this.modalHeaderSearch.setAttribute("type","search"),this.modalHeaderSearch.setAttribute("placeholder","Search"),this.modalHeaderSearch.className="iconpicker-search",this.modalHeaderSearch.addEventListener("input",function(e){i.filter(e.target.value)});var a=document.createElement("button");if(a.className="delete",this._clickEvents.forEach(function(e){a.addEventListener(e,function(e){e.preventDefault(),i.modal.classList.remove("is-active")})}),t.appendChild(n),this.modalBody=document.createElement("section"),this.modalBody.className="modal-card-body",1<=this.options.iconSets.length){var o=document.createElement("div");o.className="iconpicker-sets",o.classList.add("tabs"),this.modalSetTabs=document.createElement("ul"),this.options.iconSets.forEach(function(e){var t=document.createElement("li"),n=document.createElement("a");n.dataset.iconset=e.name,n.innerHTML=e.name,i._clickEvents.forEach(function(e){n.addEventListener(e,function(e){e.preventDefault();var t=i.modalSetTabs.querySelectorAll(".is-active");[].forEach.call(t,function(e){e.classList.remove("is-active")}),e.target.parentNode.classList.add("is-active"),i.drawIcons(i.icons[e.target.dataset.iconset]),i.filter(i.modalHeaderSearch.value)})}),t.appendChild(n),i.modalSetTabs.appendChild(t)}),o.appendChild(this.modalSetTabs),t.appendChild(o)}this.iconsList=document.createElement("div"),this.iconsList.className="iconpicker-icons",n.appendChild(r),n.appendChild(this.modalHeaderSearch),n.appendChild(a),this.modalBody.appendChild(this.iconsList),t.appendChild(this.modalBody),this.modal.appendChild(e),this.modal.appendChild(t),document.body.appendChild(this.modal)}},{key:"filter",value:function(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:"";""!==e?(this.iconsList.querySelectorAll("[data-filter]").forEach(function(e){e.classList.remove("is-hidden")}),this.iconsList.querySelectorAll('[data-filter]:not([data-filter*="'+e+'"])').forEach(function(e){e.classList.add("is-hidden")})):this.iconsList.querySelectorAll("[data-filter]").forEach(function(e){e.classList.remove("is-hidden")})}}],[{key:"attach",value:function(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:'[data-action="iconPicker"]',t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{},n=new Array,i=document.querySelectorAll(e);return[].forEach.call(i,function(e){setTimeout(function(){n.push(new r(e,t))},100)}),n}}]),r}();t.default=r},function(e,t,n){"use strict";var i=function(){function i(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(e,t,n){return t&&i(e.prototype,t),n&&i(e,n),e}}();var r=function(){function t(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:[];!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),this._listeners=new Map(e),this._middlewares=new Map}return i(t,[{key:"listenerCount",value:function(e){return this._listeners.has(e)?this._listeners.get(e).length:0}},{key:"removeListeners",value:function(){var t=this,e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:null,n=1<arguments.length&&void 0!==arguments[1]&&arguments[1];null!==e?Array.isArray(e)?name.forEach(function(e){return t.removeListeners(e,n)}):(this._listeners.delete(e),n&&this.removeMiddleware(e)):this._listeners=new Map}},{key:"middleware",value:function(e,t){var n=this;Array.isArray(e)?name.forEach(function(e){return n.middleware(e,t)}):(Array.isArray(this._middlewares.get(e))||this._middlewares.set(e,[]),this._middlewares.get(e).push(t))}},{key:"removeMiddleware",value:function(){var t=this,e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:null;null!==e?Array.isArray(e)?name.forEach(function(e){return t.removeMiddleware(e)}):this._middlewares.delete(e):this._middlewares=new Map}},{key:"on",value:function(e,t){var n=this,i=2<arguments.length&&void 0!==arguments[2]&&arguments[2];if(Array.isArray(e))e.forEach(function(e){return n.on(e,t)});else{var r=(e=e.toString()).split(/,|, | /);1<r.length?r.forEach(function(e){return n.on(e,t)}):(Array.isArray(this._listeners.get(e))||this._listeners.set(e,[]),this._listeners.get(e).push({once:i,callback:t}))}}},{key:"once",value:function(e,t){this.on(e,t,!0)}},{key:"emit",value:function(n,i){var r=this,a=2<arguments.length&&void 0!==arguments[2]&&arguments[2];n=n.toString();var o=this._listeners.get(n),s=null,c=0,l=a;if(Array.isArray(o))for(o.forEach(function(e,t){a||(s=r._middlewares.get(n),Array.isArray(s)?(s.forEach(function(e){e(i,function(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:null;null!==e&&(i=e),c++},n)}),c>=s.length&&(l=!0)):l=!0),l&&(e.once&&(o[t]=null),e.callback(i))});-1!==o.indexOf(null);)o.splice(o.indexOf(null),1)}}]),t}();t.a=r},function(e,t,n){"use strict";t.a={iconSets:[{name:"simpleLine",css:"https://cdnjs.cloudflare.com/ajax/libs/simple-line-icons/2.4.1/css/simple-line-icons.css",prefix:"icon-",displayPrefix:""},{name:"fontAwesome",css:"https://use.fontawesome.com/releases/v5.0.13/css/all.css",prefix:"fa-",displayPrefix:"fas fa-icon"}]}}]).default});