@onenexus/polymorph
Version:
Style Synergy modules/BEM DOM elements using JavaScript
1 lines • 11.7 kB
JavaScript
!function(e,n){if("object"==typeof exports&&"object"==typeof module)module.exports=n();else if("function"==typeof define&&define.amd)define([],n);else{var t=n();for(var r in t)("object"==typeof exports?exports:e)[r]=t[r]}}("undefined"!=typeof self?self:this,function(){return function(t){var r={};function o(e){if(r[e])return r[e].exports;var n=r[e]={i:e,l:!1,exports:{}};return t[e].call(n.exports,n,n.exports,o),n.l=!0,n.exports}return o.m=t,o.c=r,o.d=function(e,n,t){o.o(e,n)||Object.defineProperty(e,n,{enumerable:!0,get:t})},o.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.t=function(n,e){if(1&e&&(n=o(n)),8&e)return n;if(4&e&&"object"==typeof n&&n&&n.__esModule)return n;var t=Object.create(null);if(o.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:n}),2&e&&"string"!=typeof n)for(var r in n)o.d(t,r,function(e){return n[e]}.bind(null,r));return t},o.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(n,"a",n),n},o.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},o.p="/",o(o.s=3)}([function(e,n,t){"use strict";function f(e){return(f="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function r(e,n,t){var r=t=Object.assign(this||{},t||{}),o=r.namespace,i=r.modifierGlue,c=r.componentGlue;if(e instanceof HTMLElement){if(e.hasAttribute("data-module"))return e.getAttribute("data-module");var u;if(e.classList.length)return o&&(u=[].slice.call(e.classList).filter(function(e){return 0===e.indexOf(o)})[0]),o&&u||(u=e.classList[0]),n?u.split(i)[0]:u.split(i)[0].split(c)[0];if(o)return o}return"string"==typeof e&&e.match("^[a-zA-Z0-9_-]+$")?e:e&&"object"===f(e)&&e.name?e.name:e&&e.constructor===Array?e[1]:void 0}t.d(n,"a",function(){return r})},function(e,n,t){"use strict";t.r(n),t.d(n,"default",function(){return s});var l=t(0);function s(e,n,t){if(t=Object.assign(this||{},t||{}),e instanceof NodeList||e instanceof Array)return[].slice.call(e).map(function(e){return s(e,n,t)});var r=t,o=r.componentGlue,i=r.modifierGlue,c=t.namespace||Object(l.a)(e,!1,t),u=n||c;u!==c&&(u=c+o+u);var f=u&&e.closest(".".concat(u,", [class*='").concat(u+i,"']"));if(f)return"function"==typeof sQuery?sQuery(f):f;(c=t.namespace||Object(l.a)(e,!0,t))&&c.indexOf(-1<n)&&(u=c.substring(0,c.indexOf(n)+n.length));var a=u&&e.closest(".".concat(u,", [class*='").concat(u+i,"']"));return a?"function"==typeof sQuery?sQuery(a):a:void 0}},function(e,n,t){"use strict";t.r(n);var b=t(0),v=t(1);function h(n){for(var e=1;e<arguments.length;e++){var t=null!=arguments[e]?arguments[e]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(e){o(n,e,t[e])})}return n}function o(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function g(u,f,a){if(a=Object.assign(this||{},a||{}),f&&!function(e){if(!e||"string"!=typeof e)return!1;var n=document.createElement("br");n.textContent="Hello!";try{e&&n.querySelector(e)}catch(e){return!1}return!0}(f))return[];if(u instanceof NodeList||u instanceof Array)return[].slice.call(u).reduce(function(e,n){return e.concat([].slice.call(g(n,f,a)))},[]);var e,n,t,r,o,i,c,l=a,s=l.subComponent,p=l.modifierGlue,d=l.componentGlue,y=a.namespace||Object(b.a)(u,s,a);if(f){var m=y+d+f;e=u.querySelectorAll(".".concat(m,", [class*='").concat(m+p,"']"))}else e=u.querySelectorAll("[class*='".concat(y+d,"']"));return e=[].slice.call(e).filter(function(e){var n=Object(b.a)(u,!0,h({},a,{namespace:y})),t=Object(b.a)(e,!0,h({},a,{namespace:y})),r=(n.match(new RegExp(d,"g"))||[]).length,o=(t.match(new RegExp(d,"g"))||[]).length;if(s&&!f&&-1===n.indexOf(d))return!0;if(s&&!r)return!1;!s&&r||r++;var i=!0,c=[].slice.call(e.classList).filter(function(e){return 0===e.indexOf(y)})[0];return a.modifier&&(i=-1<c.indexOf(a.modifier)),!s&&1<r?!(1<c.split(d).length-1)&&i:i&&o===r}),n=u,t=e,r=s,i=(o=a).namespace||Object(b.a)(n,r,o),e=(c=Object(v.default)(n,i,o))?t=[].slice.call(t).filter(function(e){var n=Object(v.default)(e,i,o);return!n||n===c}):t,"function"==typeof sQuery?sQuery(e):e}t.d(n,"default",function(){return g})},function(e,n,f){"use strict";function d(e){return(d="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function y(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){var t=[],r=!0,o=!1,i=void 0;try{for(var c,u=e[Symbol.iterator]();!(r=(c=u.next()).done)&&(t.push(c.value),!n||t.length!==n);r=!0);}catch(e){o=!0,i=e}finally{try{r||null==u.return||u.return()}finally{if(o)throw i}}return t}(e,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}function m(e){return function(e){if(Array.isArray(e)){for(var n=0,t=new Array(e.length);n<e.length;n++)t[n]=e[n];return t}}(e)||function(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e))return Array.from(e)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}()}function b(n){for(var e=1;e<arguments.length;e++){var t=null!=arguments[e]?arguments[e]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(e){o(n,e,t[e])})}return n}function o(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}var v;function t(n,e){var t=2<arguments.length&&void 0!==arguments[2]?arguments[2]:{},r=3<arguments.length?arguments[3]:void 0,o=window.Synergy||{};v=window.sQuery,process.env.SYNERGY||v||(v={getComponents:f(2).default,getSubComponents:f(4).default,hasModifier:f(5).default,parent:f(1).default});var i=t.modifierGlue||o.modifierGlue||"-",c={componentGlue:t.componentGlue||o.componentGlue||"_",modifierGlue:i},u=e;"function"==typeof e&&(u=e(n,t,r)),e.constructor===Array&&(u=e.map(function(e){return"function"==typeof e?e(n,t,r):e})),u.constructor===Array?u.every(function(e){return e&&e.constructor===Object})&&u.forEach(function(e){return h(n,e,c)}):h(n,u,c),n.repaint()}function h(l,e,s){var p=3<arguments.length&&void 0!==arguments[3]?arguments[3]:[];if(!l.polymorph){var n=[].slice.call(l.parentNode.classList).some(function(e){return 0===e.indexOf("group")||0===e.indexOf("wrapper")})&&l.parentNode;l.polymorph={rules:[],COMPONENTS:v.getComponents.bind(b({},s))(l),SUB_COMPONENTS:v.getSubComponents.bind(b({},s))(l)};var t=l.polymorph,r=t.COMPONENTS,i=t.SUB_COMPONENTS;l.repaint=function(e){var o=[];n&&n.repaint&&n.repaint(!0),[l].concat(m(r),m(i)).forEach(function(r){r.polymorph&&(r.polymorph.rules.forEach(function(e){if(e.context.every(function(e){return"function"==typeof e?e():"hover"===e.value?e.source.polymorph.isHovered:"focus"===e.value?e.source.polymorph.isFocused:v.hasModifier.bind(b({},s))(e.source,e.value)})){var n,t=function(o,e){"function"==typeof e&&(e=e(o));if(!e)return;return Object.entries(e).forEach(function(e){var n=y(e,2),t=n[0],r=n[1];if("function"==typeof r)try{return o.style[t]=r(o.style[t])}catch(e){return e}if(isNaN(t))return o.style[t]=r}),Object.values(e).reduce(function(e,n){return n instanceof Array&&n[0]?n[0]instanceof NodeList||n[0]instanceof Array?e.concat.apply(e,m(n[0])):e.concat(n[0]):e},[])}(r,e.styles)||[];t.length&&(n=o).push.apply(n,m(t))}}),o.includes(r)&&o.filter(function(e){return e!==r}))}),!e&&o.length&&(o=o.filter(function(e,n){return o.indexOf(e)==n})).forEach(function(e){return e.repaint&&e.repaint(!0)})}}l.polymorph.rules=l.polymorph.rules.concat({context:p,styles:e}),"function"==typeof e&&(e=e(l)),e&&(Object.entries(e).forEach(function(e){var n=y(e,2),t=n[0],r=n[1],o=v.getComponents.bind(b({},s))(l,t),i=v.getSubComponents.bind(b({},s))(l,t);if(r.styles)return r.condition&&(p=p.concat(r.condition)),r.element&&(l=r.element),h(l,r.styles,s,p);if(r instanceof Array){if(void 0===r[0])return;return r.every(function(e){return e&&"object"===d(e)&&e.constructor===Object})?r.forEach(function(e){return h(l,e,s,p)}):r[0]instanceof HTMLElement?h(r[0],r[1],s,p):(r[0]instanceof NodeList&&r[0].forEach(function(e){return h(e,r[1],s,p)}),"function"==typeof r[0]?h(l,r[1],s,p.concat(r[0])):void 0)}if(o.length)return r.disableCascade&&(o=o.filter(function(n){return o.every(function(e){return n.contains(e)})})),o.forEach(function(e){return h(e,r,s,p)});if(i.length)return r.disableCascade&&(i=i.filter(function(e){var n=m(l.classList).reduce(function(e,n){if(1<n.indexOf(s.componentGlue)){var t=s.componentGlue.length,r=n.lastIndexOf(s.componentGlue)+t;return(n=n.substring(r,n.length)).substring(0,n.indexOf(s.modifierGlue))}},[]),t=v.parent.bind(b({},s))(e,n);return l===t})),i.forEach(function(e){return h(e,r,s,p)});if(-1<t.indexOf("sub-component(")){var c=t.replace("sub-component(","").replace(/\)/g,"");return v.getSubComponents.bind(b({},s))(l,c).forEach(function(e){return h(e,r,s,p)})}if(-1<t.indexOf("component(")){var u=t.replace("component(","").replace(/\)/g,"");return v.getComponents.bind(b({},s))(l,u).forEach(function(e){return h(e,r,s,p)})}if(-1<t.indexOf("modifier(")){var f=t.replace("modifier(","").replace(/\)/g,"");return h(l,r,s,p.concat({source:l,value:f}))}if(":hover"===t)return h(l,r,s,p.concat({source:l,value:"hover"})),l.addEventListener("mouseenter",function(e){l.polymorph.isHovered=!0,l.repaint()}),void l.addEventListener("mouseleave",function(e){l.polymorph.isHovered=!1,l.repaint()});if(":focus"===t)return h(l,r,s,p.concat({source:l,value:"focus"})),l.addEventListener("focus",function(e){l.polymorph.isFocused=!0,l.repaint()}),void l.addEventListener("blur",function(e){l.polymorph.isFocused=!1,l.repaint()});if("group"===t||"wrapper"===t){var a=l.parentNode;return a.classList.forEach(function(e){0!==e.indexOf("group")&&0!==e.indexOf("wrapper")||h(a,r,s,p)})}}),l.polymorph.rules.sort(function(e,n){return e.context.length||n.context.length?e.context.length&&!n.context.length?1:!e.context.length&&n.context.length?-1:e.context.some(function(e){return"hover"===e.value})&&n.context.some(function(e){return"hover"===e.value})?0:n.context.some(function(e){return"hover"===e.value})?-1:0:0}))}f.r(n),f.d(n,"default",function(){return t}),"undefined"==typeof process&&(window.process={env:{}}),t.modifier=function(e,n,t,r){var o=window.Synergy||{};return t=t||o.modifierGlue||"-",r=r||o.componentGlue||"_",v.hasModifier.bind({modifierGlue:t,componentGlue:r})(e,n)},"undefined"!=typeof window&&(window.polymorph=t)},function(e,n,t){"use strict";t.r(n),t.d(n,"default",function(){return o});var r=t(2);function o(e,n,t){return(t=Object.assign(this||{},t||{})).subComponent=!0,Object(r.default)(e,n,t)}},function(e,n,t){"use strict";t.r(n),t.d(n,"default",function(){return o});var r=t(0);function o(n,i,t){if(t=Object.assign(this||{},t||{}),i){if(i.constructor===Array)return i.every(function(e){return o(n,e,t)});if(n instanceof NodeList||n instanceof Array)return[].slice.call(n).every(function(e){return o(e,i,t)});var c=t.modifierGlue,u=t.namespace||n.namespace||Object(r.a)(n,!1,t);return[].slice.call(n.classList).some(function(e){var n=e.indexOf(c+i),t=0===e.indexOf(u),r=-1<e.indexOf(c+i+c),o=-1<n&&n===e.length-i.length-c.length;return t&&(r||o)})}}}])});