@marqueefy/marqueefy
Advanced tools
Comparing version 1.0.0 to 1.0.1
@@ -16,2 +16,3 @@ /*! | ||
*/ | ||
const elementMap = new Map(); | ||
@@ -23,6 +24,6 @@ const Data = { | ||
} | ||
const instanceMap = elementMap.get(element); | ||
const instanceMap = elementMap.get(element); // make it clear we only want one instance per element | ||
// make it clear we only want one instance per element | ||
// can be removed later when multiple key/instances are fine to be used | ||
if (!instanceMap.has(key) && instanceMap.size !== 0) { | ||
@@ -33,6 +34,4 @@ // eslint-disable-next-line no-console | ||
} | ||
instanceMap.set(key, instance); | ||
}, | ||
get(element, key) { | ||
@@ -42,6 +41,4 @@ if (elementMap.has(element)) { | ||
} | ||
return null; | ||
}, | ||
remove(element, key) { | ||
@@ -51,6 +48,6 @@ if (!elementMap.has(element)) { | ||
} | ||
const instanceMap = elementMap.get(element); | ||
instanceMap.delete(key); // free up element references if there are no instances left for an element | ||
instanceMap.delete(key); | ||
// free up element references if there are no instances left for an element | ||
if (instanceMap.size === 0) { | ||
@@ -60,3 +57,2 @@ elementMap.delete(element); | ||
} | ||
}; | ||
@@ -70,2 +66,3 @@ | ||
*/ | ||
// Shout-out Angus Croll (https://goo.gl/pxwQGp) | ||
@@ -76,6 +73,4 @@ const toType = object => { | ||
} | ||
return Object.prototype.toString.call(object).match(/\s([a-z]+)/i)[1].toLowerCase(); | ||
}; | ||
const isElement = object => { | ||
@@ -85,6 +80,4 @@ if (!object || typeof object !== 'object') { | ||
} | ||
return typeof object.nodeType !== 'undefined'; | ||
}; | ||
const getElement = object => { | ||
@@ -94,7 +87,5 @@ if (isElement(object)) { | ||
} | ||
if (typeof object === 'string' && object.length > 0) { | ||
return document.querySelector(object); | ||
} | ||
return null; | ||
@@ -109,2 +100,3 @@ }; | ||
*/ | ||
function normalizeData(value) { | ||
@@ -114,19 +106,14 @@ if (value === 'true') { | ||
} | ||
if (value === 'false') { | ||
return false; | ||
} | ||
if (value === Number(value).toString()) { | ||
return Number(value); | ||
} | ||
if (value === '' || value === 'null') { | ||
return null; | ||
} | ||
if (typeof value !== 'string') { | ||
return value; | ||
} | ||
try { | ||
@@ -138,7 +125,5 @@ return JSON.parse(decodeURIComponent(value)); | ||
} | ||
function normalizeDataKey(key) { | ||
return key.replace(/[A-Z]/g, chr => `-${chr.toLowerCase()}`); | ||
} | ||
const Manipulator = { | ||
@@ -148,7 +133,5 @@ setDataAttribute(element, key, value) { | ||
}, | ||
removeDataAttribute(element, key) { | ||
element.removeAttribute(`data-mq-${normalizeDataKey(key)}`); | ||
}, | ||
getDataAttributes(element) { | ||
@@ -158,6 +141,4 @@ if (!element) { | ||
} | ||
const attributes = {}; | ||
const mqKeys = Object.keys(element.dataset).filter(key => key.startsWith('mq') && !key.startsWith('mqConfig')); | ||
for (const key of mqKeys) { | ||
@@ -168,10 +149,7 @@ let pureKey = key.replace(/^mq/, ''); | ||
} | ||
return attributes; | ||
}, | ||
getDataAttribute(element, key) { | ||
return normalizeData(element.getAttribute(`data-mq-${normalizeDataKey(key)}`)); | ||
} | ||
}; | ||
@@ -185,2 +163,3 @@ | ||
*/ | ||
/** | ||
@@ -195,28 +174,22 @@ * Class definition | ||
} | ||
static get DefaultType() { | ||
return {}; | ||
} | ||
static get NAME() { | ||
throw new Error('You have to implement the static method "NAME", for each component!'); | ||
} | ||
_getConfig(config) { | ||
config = this._mergeConfigObj(config); | ||
config = this._configAfterMerge(config); | ||
this._typeCheckConfig(config); | ||
return config; | ||
} | ||
_configAfterMerge(config) { | ||
return config; | ||
} | ||
_mergeConfigObj(config, element) { | ||
const jsonConfig = isElement(element) ? Manipulator.getDataAttribute(element, 'config') : {}; // try to parse | ||
return { ...this.constructor.Default, | ||
return { | ||
...this.constructor.Default, | ||
...(typeof jsonConfig === 'object' ? jsonConfig : {}), | ||
@@ -227,3 +200,2 @@ ...(isElement(element) ? Manipulator.getDataAttributes(element) : {}), | ||
} | ||
_typeCheckConfig(config, configTypes = this.constructor.DefaultType) { | ||
@@ -234,3 +206,2 @@ for (const property of Object.keys(configTypes)) { | ||
const valueType = isElement(value) ? 'element' : toType(value); | ||
if (!new RegExp(expectedTypes).test(valueType)) { | ||
@@ -241,3 +212,2 @@ throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option "${property}" provided type "${valueType}" but expected type "${expectedTypes}".`); | ||
} | ||
} | ||
@@ -251,2 +221,3 @@ | ||
*/ | ||
/** | ||
@@ -257,2 +228,3 @@ * Constants | ||
const VERSION = '1.0.0'; | ||
/** | ||
@@ -266,16 +238,13 @@ * Class definition | ||
element = getElement(element); | ||
if (!element) { | ||
return; | ||
} | ||
this._element = element; | ||
this._config = this._getConfig(config); | ||
Data.set(this._element, this.constructor.DATA_KEY, this); | ||
} // Public | ||
} | ||
// Public | ||
dispose() { | ||
Data.remove(this._element, this.constructor.DATA_KEY); | ||
for (const propertyName of Object.getOwnPropertyNames(this)) { | ||
@@ -285,29 +254,22 @@ this[propertyName] = null; | ||
} | ||
_getConfig(config) { | ||
config = this._mergeConfigObj(config, this._element); | ||
config = this._configAfterMerge(config); | ||
this._typeCheckConfig(config); | ||
return config; | ||
} // Static | ||
} | ||
// Static | ||
static getInstance(element) { | ||
return Data.get(getElement(element), this.DATA_KEY); | ||
} | ||
static getOrCreateInstance(element, config = {}) { | ||
return this.getInstance(element) || new this(element, typeof config === 'object' ? config : null); | ||
} | ||
static get VERSION() { | ||
return VERSION; | ||
} | ||
static get DATA_KEY() { | ||
return `mq.${this.NAME}`; | ||
} | ||
} | ||
@@ -330,3 +292,2 @@ | ||
}; | ||
class Marqueefy extends BaseComponent { | ||
@@ -339,15 +300,11 @@ constructor(element, config) { | ||
} | ||
static get NAME() { | ||
return NAME; | ||
} | ||
static get Default() { | ||
return Default; | ||
} | ||
static get DefaultType() { | ||
return DefaultType; | ||
} | ||
refresh() { | ||
@@ -360,16 +317,10 @@ const { | ||
} = this._config; | ||
const content = this._element.querySelector('.content'); | ||
let distance = content.getBoundingClientRect().width; | ||
if (direction === 'top' || direction === 'bottom') { | ||
distance = this._element.getBoundingClientRect().height; | ||
this._element.style.setProperty('--mq-height', distance + 'px'); | ||
} | ||
this._element.style.setProperty('--mq-animation-duration', distance / speed + 's'); | ||
} | ||
} | ||
@@ -376,0 +327,0 @@ |
@@ -22,2 +22,3 @@ /*! | ||
*/ | ||
const elementMap = new Map(); | ||
@@ -29,6 +30,6 @@ const Data = { | ||
} | ||
const instanceMap = elementMap.get(element); | ||
const instanceMap = elementMap.get(element); // make it clear we only want one instance per element | ||
// make it clear we only want one instance per element | ||
// can be removed later when multiple key/instances are fine to be used | ||
if (!instanceMap.has(key) && instanceMap.size !== 0) { | ||
@@ -39,6 +40,4 @@ // eslint-disable-next-line no-console | ||
} | ||
instanceMap.set(key, instance); | ||
}, | ||
get(element, key) { | ||
@@ -48,6 +47,4 @@ if (elementMap.has(element)) { | ||
} | ||
return null; | ||
}, | ||
remove(element, key) { | ||
@@ -57,6 +54,6 @@ if (!elementMap.has(element)) { | ||
} | ||
const instanceMap = elementMap.get(element); | ||
instanceMap.delete(key); // free up element references if there are no instances left for an element | ||
instanceMap.delete(key); | ||
// free up element references if there are no instances left for an element | ||
if (instanceMap.size === 0) { | ||
@@ -66,3 +63,2 @@ elementMap.delete(element); | ||
} | ||
}; | ||
@@ -76,2 +72,3 @@ | ||
*/ | ||
// Shout-out Angus Croll (https://goo.gl/pxwQGp) | ||
@@ -82,6 +79,4 @@ const toType = object => { | ||
} | ||
return Object.prototype.toString.call(object).match(/\s([a-z]+)/i)[1].toLowerCase(); | ||
}; | ||
const isElement = object => { | ||
@@ -91,6 +86,4 @@ if (!object || typeof object !== 'object') { | ||
} | ||
return typeof object.nodeType !== 'undefined'; | ||
}; | ||
const getElement = object => { | ||
@@ -100,7 +93,5 @@ if (isElement(object)) { | ||
} | ||
if (typeof object === 'string' && object.length > 0) { | ||
return document.querySelector(object); | ||
} | ||
return null; | ||
@@ -115,2 +106,3 @@ }; | ||
*/ | ||
function normalizeData(value) { | ||
@@ -120,19 +112,14 @@ if (value === 'true') { | ||
} | ||
if (value === 'false') { | ||
return false; | ||
} | ||
if (value === Number(value).toString()) { | ||
return Number(value); | ||
} | ||
if (value === '' || value === 'null') { | ||
return null; | ||
} | ||
if (typeof value !== 'string') { | ||
return value; | ||
} | ||
try { | ||
@@ -144,7 +131,5 @@ return JSON.parse(decodeURIComponent(value)); | ||
} | ||
function normalizeDataKey(key) { | ||
return key.replace(/[A-Z]/g, chr => `-${chr.toLowerCase()}`); | ||
} | ||
const Manipulator = { | ||
@@ -154,7 +139,5 @@ setDataAttribute(element, key, value) { | ||
}, | ||
removeDataAttribute(element, key) { | ||
element.removeAttribute(`data-mq-${normalizeDataKey(key)}`); | ||
}, | ||
getDataAttributes(element) { | ||
@@ -164,6 +147,4 @@ if (!element) { | ||
} | ||
const attributes = {}; | ||
const mqKeys = Object.keys(element.dataset).filter(key => key.startsWith('mq') && !key.startsWith('mqConfig')); | ||
for (const key of mqKeys) { | ||
@@ -174,10 +155,7 @@ let pureKey = key.replace(/^mq/, ''); | ||
} | ||
return attributes; | ||
}, | ||
getDataAttribute(element, key) { | ||
return normalizeData(element.getAttribute(`data-mq-${normalizeDataKey(key)}`)); | ||
} | ||
}; | ||
@@ -191,2 +169,3 @@ | ||
*/ | ||
/** | ||
@@ -201,28 +180,22 @@ * Class definition | ||
} | ||
static get DefaultType() { | ||
return {}; | ||
} | ||
static get NAME() { | ||
throw new Error('You have to implement the static method "NAME", for each component!'); | ||
} | ||
_getConfig(config) { | ||
config = this._mergeConfigObj(config); | ||
config = this._configAfterMerge(config); | ||
this._typeCheckConfig(config); | ||
return config; | ||
} | ||
_configAfterMerge(config) { | ||
return config; | ||
} | ||
_mergeConfigObj(config, element) { | ||
const jsonConfig = isElement(element) ? Manipulator.getDataAttribute(element, 'config') : {}; // try to parse | ||
return { ...this.constructor.Default, | ||
return { | ||
...this.constructor.Default, | ||
...(typeof jsonConfig === 'object' ? jsonConfig : {}), | ||
@@ -233,3 +206,2 @@ ...(isElement(element) ? Manipulator.getDataAttributes(element) : {}), | ||
} | ||
_typeCheckConfig(config, configTypes = this.constructor.DefaultType) { | ||
@@ -240,3 +212,2 @@ for (const property of Object.keys(configTypes)) { | ||
const valueType = isElement(value) ? 'element' : toType(value); | ||
if (!new RegExp(expectedTypes).test(valueType)) { | ||
@@ -247,3 +218,2 @@ throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option "${property}" provided type "${valueType}" but expected type "${expectedTypes}".`); | ||
} | ||
} | ||
@@ -257,2 +227,3 @@ | ||
*/ | ||
/** | ||
@@ -263,2 +234,3 @@ * Constants | ||
const VERSION = '1.0.0'; | ||
/** | ||
@@ -272,16 +244,13 @@ * Class definition | ||
element = getElement(element); | ||
if (!element) { | ||
return; | ||
} | ||
this._element = element; | ||
this._config = this._getConfig(config); | ||
Data.set(this._element, this.constructor.DATA_KEY, this); | ||
} // Public | ||
} | ||
// Public | ||
dispose() { | ||
Data.remove(this._element, this.constructor.DATA_KEY); | ||
for (const propertyName of Object.getOwnPropertyNames(this)) { | ||
@@ -291,29 +260,22 @@ this[propertyName] = null; | ||
} | ||
_getConfig(config) { | ||
config = this._mergeConfigObj(config, this._element); | ||
config = this._configAfterMerge(config); | ||
this._typeCheckConfig(config); | ||
return config; | ||
} // Static | ||
} | ||
// Static | ||
static getInstance(element) { | ||
return Data.get(getElement(element), this.DATA_KEY); | ||
} | ||
static getOrCreateInstance(element, config = {}) { | ||
return this.getInstance(element) || new this(element, typeof config === 'object' ? config : null); | ||
} | ||
static get VERSION() { | ||
return VERSION; | ||
} | ||
static get DATA_KEY() { | ||
return `mq.${this.NAME}`; | ||
} | ||
} | ||
@@ -336,3 +298,2 @@ | ||
}; | ||
class Marqueefy extends BaseComponent { | ||
@@ -345,15 +306,11 @@ constructor(element, config) { | ||
} | ||
static get NAME() { | ||
return NAME; | ||
} | ||
static get Default() { | ||
return Default; | ||
} | ||
static get DefaultType() { | ||
return DefaultType; | ||
} | ||
refresh() { | ||
@@ -366,16 +323,10 @@ const { | ||
} = this._config; | ||
const content = this._element.querySelector('.content'); | ||
let distance = content.getBoundingClientRect().width; | ||
if (direction === 'top' || direction === 'bottom') { | ||
distance = this._element.getBoundingClientRect().height; | ||
this._element.style.setProperty('--mq-height', distance + 'px'); | ||
} | ||
this._element.style.setProperty('--mq-animation-duration', distance / speed + 's'); | ||
} | ||
} | ||
@@ -382,0 +333,0 @@ |
@@ -6,3 +6,3 @@ /*! | ||
*/ | ||
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).marqueefy=e()}(this,(function(){"use strict";const t=new Map,e={set(e,r,n){t.has(e)||t.set(e,new Map);const s=t.get(e);s.has(r)||0===s.size?s.set(r,n):console.error(`Marqueefy doesn't allow more than one instance per element. Bound instance: ${Array.from(s.keys())[0]}.`)},get:(e,r)=>t.has(e)&&t.get(e).get(r)||null,remove(e,r){if(!t.has(e))return;const n=t.get(e);n.delete(r),0===n.size&&t.delete(e)}},r=t=>!(!t||"object"!=typeof t)&&void 0!==t.nodeType,n=t=>r(t)?t:"string"==typeof t&&t.length>0?document.querySelector(t):null;function s(t){if("true"===t)return!0;if("false"===t)return!1;if(t===Number(t).toString())return Number(t);if(""===t||"null"===t)return null;if("string"!=typeof t)return t;try{return JSON.parse(decodeURIComponent(t))}catch(e){return t}}function o(t){return t.replace(/[A-Z]/g,(t=>`-${t.toLowerCase()}`))}const i={setDataAttribute(t,e,r){t.setAttribute(`data-mq-${o(e)}`,r)},removeDataAttribute(t,e){t.removeAttribute(`data-mq-${o(e)}`)},getDataAttributes(t){if(!t)return{};const e={},r=Object.keys(t.dataset).filter((t=>t.startsWith("mq")&&!t.startsWith("mqConfig")));for(const n of r){let r=n.replace(/^mq/,"");r=r.charAt(0).toLowerCase()+r.slice(1,r.length),e[r]=s(t.dataset[n])}return e},getDataAttribute:(t,e)=>s(t.getAttribute(`data-mq-${o(e)}`))},c={direction:"left",speed:100},a={direction:"string",speed:"number"};return{Marqueefy:class extends class extends class{static get Default(){return{}}static get DefaultType(){return{}}static get NAME(){throw new Error('You have to implement the static method "NAME", for each component!')}_getConfig(t){return t=this._mergeConfigObj(t),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}_configAfterMerge(t){return t}_mergeConfigObj(t,e){const n=r(e)?i.getDataAttribute(e,"config"):{};return{...this.constructor.Default,..."object"==typeof n?n:{},...r(e)?i.getDataAttributes(e):{},..."object"==typeof t?t:{}}}_typeCheckConfig(t,e=this.constructor.DefaultType){for(const s of Object.keys(e)){const o=e[s],i=t[s],c=r(i)?"element":null==(n=i)?`${n}`:Object.prototype.toString.call(n).match(/\s([a-z]+)/i)[1].toLowerCase();if(!new RegExp(o).test(c))throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option "${s}" provided type "${c}" but expected type "${o}".`)}var n}}{constructor(t,r){super(),(t=n(t))&&(this._element=t,this._config=this._getConfig(r),e.set(this._element,this.constructor.DATA_KEY,this))}dispose(){e.remove(this._element,this.constructor.DATA_KEY);for(const t of Object.getOwnPropertyNames(this))this[t]=null}_getConfig(t){return t=this._mergeConfigObj(t,this._element),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}static getInstance(t){return e.get(n(t),this.DATA_KEY)}static getOrCreateInstance(t,e={}){return this.getInstance(t)||new this(t,"object"==typeof e?e:null)}static get VERSION(){return"1.0.0"}static get DATA_KEY(){return`mq.${this.NAME}`}}{constructor(t,e){super(t),this._element=t,this._config=this._getConfig(e),this.refresh()}static get NAME(){return"marqueefy"}static get Default(){return c}static get DefaultType(){return a}refresh(){const{direction:t}=this._config,{speed:e}=this._config;let r=this._element.querySelector(".content").getBoundingClientRect().width;"top"!==t&&"bottom"!==t||(r=this._element.getBoundingClientRect().height,this._element.style.setProperty("--mq-height",r+"px")),this._element.style.setProperty("--mq-animation-duration",r/e+"s")}}}})); | ||
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).marqueefy=e()}(this,(function(){"use strict";const t=new Map,e={set(e,r,n){t.has(e)||t.set(e,new Map);const s=t.get(e);s.has(r)||0===s.size?s.set(r,n):console.error(`Marqueefy doesn't allow more than one instance per element. Bound instance: ${Array.from(s.keys())[0]}.`)},get:(e,r)=>t.has(e)&&t.get(e).get(r)||null,remove(e,r){if(!t.has(e))return;const n=t.get(e);n.delete(r),0===n.size&&t.delete(e)}},r=t=>!(!t||"object"!=typeof t)&&void 0!==t.nodeType,n=t=>r(t)?t:"string"==typeof t&&t.length>0?document.querySelector(t):null;function s(t){if("true"===t)return!0;if("false"===t)return!1;if(t===Number(t).toString())return Number(t);if(""===t||"null"===t)return null;if("string"!=typeof t)return t;try{return JSON.parse(decodeURIComponent(t))}catch(e){return t}}function o(t){return t.replace(/[A-Z]/g,(t=>`-${t.toLowerCase()}`))}const i={setDataAttribute(t,e,r){t.setAttribute(`data-mq-${o(e)}`,r)},removeDataAttribute(t,e){t.removeAttribute(`data-mq-${o(e)}`)},getDataAttributes(t){if(!t)return{};const e={},r=Object.keys(t.dataset).filter((t=>t.startsWith("mq")&&!t.startsWith("mqConfig")));for(const n of r){let r=n.replace(/^mq/,"");r=r.charAt(0).toLowerCase()+r.slice(1,r.length),e[r]=s(t.dataset[n])}return e},getDataAttribute:(t,e)=>s(t.getAttribute(`data-mq-${o(e)}`))};class c{static get Default(){return{}}static get DefaultType(){return{}}static get NAME(){throw new Error('You have to implement the static method "NAME", for each component!')}_getConfig(t){return t=this._mergeConfigObj(t),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}_configAfterMerge(t){return t}_mergeConfigObj(t,e){const n=r(e)?i.getDataAttribute(e,"config"):{};return{...this.constructor.Default,..."object"==typeof n?n:{},...r(e)?i.getDataAttributes(e):{},..."object"==typeof t?t:{}}}_typeCheckConfig(t,e=this.constructor.DefaultType){for(const s of Object.keys(e)){const o=e[s],i=t[s],c=r(i)?"element":null==(n=i)?`${n}`:Object.prototype.toString.call(n).match(/\s([a-z]+)/i)[1].toLowerCase();if(!new RegExp(o).test(c))throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option "${s}" provided type "${c}" but expected type "${o}".`)}var n}}class a extends c{constructor(t,r){super(),(t=n(t))&&(this._element=t,this._config=this._getConfig(r),e.set(this._element,this.constructor.DATA_KEY,this))}dispose(){e.remove(this._element,this.constructor.DATA_KEY);for(const t of Object.getOwnPropertyNames(this))this[t]=null}_getConfig(t){return t=this._mergeConfigObj(t,this._element),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}static getInstance(t){return e.get(n(t),this.DATA_KEY)}static getOrCreateInstance(t,e={}){return this.getInstance(t)||new this(t,"object"==typeof e?e:null)}static get VERSION(){return"1.0.0"}static get DATA_KEY(){return`mq.${this.NAME}`}}const u={direction:"left",speed:100},f={direction:"string",speed:"number"};return{Marqueefy:class extends a{constructor(t,e){super(t),this._element=t,this._config=this._getConfig(e),this.refresh()}static get NAME(){return"marqueefy"}static get Default(){return u}static get DefaultType(){return f}refresh(){const{direction:t}=this._config,{speed:e}=this._config;let r=this._element.querySelector(".content").getBoundingClientRect().width;"top"!==t&&"bottom"!==t||(r=this._element.getBoundingClientRect().height,this._element.style.setProperty("--mq-height",r+"px")),this._element.style.setProperty("--mq-animation-duration",r/e+"s")}}}})); | ||
//# sourceMappingURL=marqueefy.min.js.map |
@@ -16,3 +16,3 @@ /** | ||
const VERSION = '1.0.0' | ||
const VERSION = '1.0.1' | ||
@@ -19,0 +19,0 @@ /** |
/** | ||
* -------------------------------------------------------------------------- | ||
* Marqueefy (v1.0.0): marqueefy.js | ||
* Marqueefy (v1.0.1): marqueefy.js | ||
* Licensed under MIT (https://github.com/marqueefy/marqueefy.github.io/blob/main/LICENSE) | ||
@@ -47,2 +47,5 @@ * -------------------------------------------------------------------------- | ||
this._element.setAttribute('data-mq-direction', direction) | ||
this._element.setAttribute('data-mq-speed', speed) | ||
const content = this._element.querySelector('.content') | ||
@@ -49,0 +52,0 @@ let distance = content.getBoundingClientRect().width |
{ | ||
"name": "@marqueefy/marqueefy", | ||
"description": "Marqueefy is a custom Marquee component.", | ||
"version": "1.0.0", | ||
"description": "Marqueefy is a custom Marquee component used to create horizontal or vertical scrolling content.", | ||
"version": "1.0.1", | ||
"config": { | ||
@@ -79,37 +79,34 @@ "version_short": "1.0" | ||
"@babel/cli": "^7.19.3", | ||
"@babel/core": "^7.19.3", | ||
"@babel/preset-env": "^7.19.3", | ||
"@rollup/plugin-babel": "^5.3.1", | ||
"@rollup/plugin-commonjs": "^22.0.2", | ||
"@rollup/plugin-node-resolve": "^14.1.0", | ||
"@rollup/plugin-replace": "^4.0.0", | ||
"autoprefixer": "^10.4.12", | ||
"@babel/core": "^7.20.2", | ||
"@babel/preset-env": "^7.20.2", | ||
"@rollup/plugin-babel": "^6.0.2", | ||
"@rollup/plugin-commonjs": "^23.0.2", | ||
"@rollup/plugin-node-resolve": "^15.0.1", | ||
"@rollup/plugin-replace": "^5.0.1", | ||
"autoprefixer": "^10.4.13", | ||
"bundlewatch": "^0.3.3", | ||
"clean-css-cli": "^5.6.1", | ||
"cross-env": "^7.0.3", | ||
"eslint": "^8.24.0", | ||
"eslint-config-xo": "^0.42.0", | ||
"eslint": "^8.27.0", | ||
"eslint-config-xo": "^0.43.1", | ||
"eslint-plugin-html": "^7.1.0", | ||
"eslint-plugin-import": "^2.26.0", | ||
"eslint-plugin-markdown": "^3.0.0", | ||
"eslint-plugin-unicorn": "^44.0.0", | ||
"eslint-plugin-unicorn": "^44.0.2", | ||
"find-unused-sass-variables": "^4.0.4", | ||
"globby": "^11.1.0", | ||
"hammer-simulator": "0.0.1", | ||
"hugo-bin": "^0.92.2", | ||
"hugo-bin": "^0.93.0", | ||
"ip": "^2.0.0", | ||
"jquery": "^3.6.1", | ||
"lockfile-lint": "^4.9.5", | ||
"lockfile-lint": "^4.9.6", | ||
"nodemon": "^2.0.20", | ||
"npm-run-all": "^4.1.5", | ||
"postcss": "^8.4.17", | ||
"postcss": "^8.4.19", | ||
"postcss-cli": "^10.0.0", | ||
"rollup": "^2.79.1", | ||
"rollup-plugin-istanbul": "^3.0.0", | ||
"rtlcss": "^4.0.0", | ||
"sass": "^1.55.0", | ||
"rollup": "^3.2.5", | ||
"sass": "^1.56.1", | ||
"shelljs": "^0.8.5", | ||
"stylelint": "^14.13.0", | ||
"stylelint-config-twbs-bootstrap": "^6.0.0", | ||
"terser": "^5.15.0", | ||
"stylelint": "^14.14.1", | ||
"stylelint-config-twbs-bootstrap": "^7.0.0", | ||
"terser": "^5.15.1", | ||
"vnu-jar": "22.9.29" | ||
@@ -116,0 +113,0 @@ }, |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
34
1025
130744