@appartmint/mint 0.12.17 → 0.12.28

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/dist/css/mint.css +31 -7
  2. package/dist/css/mint.css.map +1 -1
  3. package/dist/css/mint.min.css +1 -1
  4. package/dist/css/mint.min.css.map +1 -1
  5. package/dist/js/imports/components/header.d.ts +4 -0
  6. package/dist/js/imports/components/header.d.ts.map +1 -1
  7. package/dist/js/imports/util/object.d.ts.map +1 -1
  8. package/dist/js/index.js +22 -19
  9. package/dist/js/index.js.map +1 -1
  10. package/dist/js/index.min.js +1 -1
  11. package/dist/js/index.min.js.map +1 -1
  12. package/dist/js/util.js +2 -2
  13. package/dist/js/util.js.map +1 -1
  14. package/dist/js/util.min.js +1 -1
  15. package/dist/js/util.min.js.map +1 -1
  16. package/package.json +18 -13
  17. package/src/scss/imports/components/_header.scss +31 -6
  18. package/src/scss/imports/global/_global.scss +2 -2
  19. package/src/scss/imports/global/_texture.scss +1 -0
  20. package/src/scss/imports/util/_vars.scss +5 -0
  21. package/src/ts/imports/components/header.ts +378 -0
  22. package/src/ts/imports/enum.ts +9 -0
  23. package/src/ts/imports/models/color.ts +96 -0
  24. package/src/ts/imports/models/item.ts +66 -0
  25. package/src/ts/imports/util/display.ts +7 -0
  26. package/src/ts/imports/util/event.ts +7 -0
  27. package/src/ts/imports/util/icon.ts +67 -0
  28. package/src/ts/imports/util/list.ts +19 -0
  29. package/src/ts/imports/util/math.ts +17 -0
  30. package/src/ts/imports/util/object.ts +141 -0
  31. package/src/ts/imports/util/selectors.ts +230 -0
  32. package/src/ts/imports/util/settings.ts +120 -0
  33. package/src/ts/imports/util/text.ts +47 -0
  34. package/src/ts/imports/util/window.ts +7 -0
  35. package/src/ts/index.ts +33 -0
  36. package/src/ts/util.ts +209 -0
@@ -1 +1 @@
1
- {"version":3,"file":"js/util.js","mappings":"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","sources":["webpack://mint/webpack/universalModuleDefinition","webpack://mint/./src/ts/imports/enum.ts","webpack://mint/./src/ts/imports/util/selectors.ts","webpack://mint/./src/ts/imports/util/settings.ts","webpack://mint/./src/ts/util.ts","webpack://mint/webpack/bootstrap","webpack://mint/webpack/before-startup","webpack://mint/webpack/startup","webpack://mint/webpack/after-startup"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"mintUtil\"] = factory();\n\telse\n\t\troot[\"mintUtil\"] = factory();\n})(this, () => {\nreturn ","/**\n * Side Enum\n */\n export enum mintSide {\n Top,\n Right,\n Bottom,\n Left\n};\n","/**\n * CSS-selector helpers\n * @public\n */\nexport abstract class mintSelectors {\n /**\n * The library name that will be added as a prefix\n */\n static lib: string = 'mint';\n\n /**\n * The prefix built from the library name\n */\n static pre: string = `${this.lib}-`;\n\n /**\n * CSS-selector for disabled elements\n */\n static disabled: string = '[disabled]';\n\n /**\n * CSS-selector for elements with an aria-controls attribute\n */\n static hasControls: string = '[aria-controls]';\n\n /**\n * CSS-selector for elements with an aria-expanded attribute\n */\n static hasExpanded: string = '[aria-expanded]';\n\n /**\n * CSS-selector for elements with an href attribute\n */\n static hasLink: string = '[href]';\n\n /**\n * CSS-selector for elements with a routerLink attribute\n */\n static hasRouterLink: string = '[routerLink]';\n\n /**\n * CSS-selector for elements with an id attribute\n */\n static hasId: string = '[id]';\n\n /**\n * CSS-selector for elements that aren't tabbable (i.e. tabindex is negative)\n */\n static notTabbable: string = '[tabindex^=\"-\"]';\n\n /**\n * CSS-selector for elements that are tabbable (i.e. tabindex isn't negative)\n */\n static tabbable: string = `[tabindex]${this.neg(this.notTabbable)}`;\n\n /**\n * CSS-selector for elements that can receive focus\n */\n static focusable: string = `input${this.neg(this.disabled)}${this.neg(this.notTabbable)},\n select${this.neg(this.disabled)}${this.neg(this.notTabbable)},\n textarea${this.neg(this.disabled)}${this.neg(this.notTabbable)},\n button${this.neg(this.disabled)}${this.neg(this.notTabbable)},\n object${this.neg(this.disabled)}${this.neg(this.notTabbable)},\n a${this.hasLink}, a${this.hasRouterLink},\n area${this.hasLink},\n ${this.tabbable}`.replace(/\\s/g, '');\n\n /**\n * CSS-selector for submenu buttons\n */\n static subMenuButtons: string = `button${this.hasControls}`;\n\n /**\n * CSS-selector for submenus\n */\n static subMenu: string = `${this.subMenuButtons} + ul${this.hasId}`;\n\n /**\n * Frequently-used ids\n */\n static ids: {[key: string]: string | {[key: string]: string}} = {\n header: this.prefix('header'),\n logo: this.prefix('logo'),\n wrapper: this.prefix('wrapper'),\n mainContent: this.prefix('main-content')\n };\n\n /**\n * Classes\n */\n static classes: {[key: string]: string | {[key: string]: string}} = {\n sides: {\n top: this.prefix('top'),\n right: this.prefix('right'),\n bottom: this.prefix('bottom'),\n left: this.prefix('left')\n },\n srOnly: this.prefix('sr-only'),\n js: this.prefix('js'),\n ready: this.prefix('ready'),\n fixed: this.prefix('fixed'),\n open: this.prefix('open')\n };\n\n /**\n * Adds the library prefix to the beginning of the provided string\n * @param base - the string to be prefixed\n * @returns - the provided string prefixed with the library name\n */\n static prefix (base: string) : string {\n base = base.toLowerCase();\n return base.startsWith(this.pre) ? base : `${this.pre}${base}`;\n }\n\n /**\n * Adds two dashes to the beginning of the provided string\n * @param base - the string to be prefixed\n * @returns - the provided string prefixed with two dashes\n */\n static cssPrefix (base: string) : string {\n return `--${this.prefix(base.replace(/^-+/, ''))}`;\n }\n\n /**\n * Turns the provided string into a CSS variable call\n * @param base - the name of the CSS variable to call\n * @returns - the CSS variable call for the provided string\n */\n static cssVar (base: string) : string {\n return `var(${this.cssPrefix(base)})`;\n }\n\n /**\n * Negates the provided CSS selector\n * @param base - the CSS selector to negate\n * @returns - the negated CSS selector\n */\n static neg (base: string) : string {\n return `:not(${base})`;\n }\n\n /**\n * Generates a class CSS selector\n * @param base - the name of the class to generate\n * @returns - the generated CSS selector\n */\n static class (base: string) : string {\n return `.${this.prefix(base)}`;\n }\n\n /**\n * Generates an id CSS selector\n * @param base - the name of the id to generate\n * @returns - the generated CSS selector\n */\n static id (base: string) : string {\n return `#${this.prefix(base)}`;\n }\n\n /**\n * Generates an aria-controls CSS selector\n * @param id - the id of the controlled element\n * @returns - the generated CSS selector\n */\n static controls (id?: string | null) : string {\n return id ? `[aria-controls=\"${this.prefix(id)}\"]` : this.hasControls;\n }\n\n /**\n * Generates an aria-expanded CSS selector\n * @param bool - whether the element is expanded or not\n * @returns - the generated CSS selector\n */\n static expanded (bool?: boolean | null) : string {\n return typeof bool === 'boolean' ? `[aria-expanded=\"${bool}\"]` : this.hasExpanded;\n }\n\n /**\n * Returns the id of the requested element\n */\n static getId (id?: string) : string {\n return this.ids[id ?? -1] as string ?? '';\n }\n\n /**\n * Returns the class of the requested element\n */\n static getClass (className?: string, classGroup?: string) : string {\n if (classGroup) {\n let group: {[key: string]: string} = this.classes[classGroup] as {[key: string]: string};\n return group[className ?? -1] ?? '';\n }\n return this.classes[className ?? -1] as string ?? '';\n }\n\n /**\n * Returns a NodeList of HTMLElements within the given element that are focusable\n * @param el - the element whose focusable children will be returned\n * @returns - the elements within the given element that are focusable\n */\n static getFocusables (el?: HTMLElement) : HTMLElement[] {\n let focusables: HTMLElement[];\n if (el) {\n focusables = [...el.querySelectorAll<HTMLElement>(this.focusable)];\n } else {\n focusables = [...document.querySelectorAll<HTMLElement>(this.focusable)];\n }\n return focusables.filter((el: HTMLElement) => this.isFocusable(el));\n }\n\n /**\n * Returns true if an element is focusable and false if not,\n * based on styles (i.e. a parent has display: none;)\n * NOTE: Still need to determine what other styles may make an element un-focusable\n * @param el - the element\n * @returns - true if the element is focusable; false if not\n */\n static isFocusable (el: HTMLElement) : boolean {\n let current: HTMLElement | null = el;\n\n do {\n if (window.getComputedStyle(current).getPropertyValue('display').toLowerCase() === 'none') {\n return false;\n }\n current = current.parentElement;\n } while (current);\n return true;\n }\n}\nexport default mintSelectors;\n","/**\n * Imports\n */\nimport { mintSide } from '../enum';\nimport { mintSelectors } from './selectors';\n\n/**\n * Settings management\n * @public\n */\nexport abstract class mintSettings {\n /**\n * Value added to all delay variables\n */\n static delayBase: number = 0;\n\n /**\n * Value multiplied by delay variable index\n */\n static delayStep: number = 100;\n\n /**\n * Delay variables\n */\n static delay: {[key: string]: number} = {\n instant: this.delayBase + this.delayStep * 0,\n fast: this.delayBase + this.delayStep * 1,\n medFast: this.delayBase + this.delayStep * 2,\n default: this.delayBase + this.delayStep * 3,\n medSlow: this.delayBase + this.delayStep * 4,\n slow: this.delayBase + this.delayStep * 5\n };\n\n /**\n * Side of the window the mobile navbar enters from\n */\n static from?: mintSide;\n\n /**\n * Whether the navbar is fixed or not\n */\n static fixed?: boolean;\n\n /**\n * Update the provided settings variables\n * @param settings - Object of settings variables to update\n */\n static set (settings: {[key: string]: any}) : void {\n let newDelay: boolean = false;\n if (typeof settings.delayBase === 'number') {\n this.delayBase = settings.delayBase;\n newDelay = true;\n }\n if (typeof settings.delayStep === 'number') {\n this.delayStep = settings.delayStep;\n newDelay = true;\n }\n if (newDelay) {\n this.setDelay();\n }\n\n if (settings.delay && Object.keys(settings.delay).length) {\n if (Object.values(settings.delay).reduce((prev: any, next: any) => prev && typeof next === 'number', true)) {\n this.delay = {...this.delay, ...settings.delay};\n }\n }\n\n if (typeof settings.from === 'number') {\n this.setFrom(settings.from);\n }\n\n if (typeof settings.fixed === 'boolean') {\n this.setFixed(settings.fixed);\n }\n }\n\n /**\n * Updates the delay variables based on `this.delayBase` and `this.delayStep`\n */\n protected static setDelay () : void {\n this.delay = {\n instant: this.delayBase + this.delayStep * 0,\n fast: this.delayBase + this.delayStep * 1,\n medFast: this.delayBase + this.delayStep * 2,\n default: this.delayBase + this.delayStep * 3,\n medSlow: this.delayBase + this.delayStep * 4,\n slow: this.delayBase + this.delayStep * 5\n };\n }\n\n /**\n * Updates the direction the navbar enters from\n */\n protected static setFrom (from: mintSide) : void {\n if (this.from !== from) {\n this.from = from;\n let header: HTMLElement | null = document.getElementById(mintSelectors.getId('header'));\n header?.classList.remove(...Object.values(mintSelectors.classes.sides));\n header?.classList.add(mintSelectors.getClass(mintSide[this.from].toLowerCase(), 'sides'));\n }\n }\n\n /**\n * Updates whether or not the navbar is fixed\n */\n protected static setFixed (fixed: boolean) : void {\n if (this.fixed !== fixed) {\n this.fixed = fixed;\n let header: HTMLElement | null = document.getElementById(mintSelectors.getId('header')),\n fixedClass: string = mintSelectors.getClass('fixed');\n if (this.fixed) {\n header?.classList.add(fixedClass);\n } else {\n header?.classList.remove(fixedClass);\n }\n }\n }\n};\n\nexport default mintSettings;\n","/**\n * Imports\n */\nimport { mintSide } from './imports/enum';\nimport mintSettings from './imports/util/settings';\n\n/**\n * Utility functions\n * @public\n */\nexport abstract class mintUtil {\n /**\n * Returns the width of the window, including fractional pixels\n * @returns the width of the window\n */\n static windowWidth () : number {\n const decimal: number = document.body.getBoundingClientRect().width % 1;\n return window.innerWidth + decimal;\n }\n\n /**\n * Ensures that a function `func` is run only after not being called for `wait` milliseconds\n * @param func - the function to debounce\n * @param wait - the amount of time to wait before running the function\n * @returns - the debounced function\n */\n static debounce (func: Function, wait: number = mintSettings.delay.default) : Function {\n let timer: number;\n return function (e: any) {\n if (timer) {\n clearTimeout(timer);\n }\n timer = setTimeout(func, wait, e);\n }\n }\n\n /**\n * Ensures that a function `func` is run only after not being called for `wait` milliseconds\n * @param func - the function to debounce\n * @param wait - the amount of time to wait before running the function\n * @returns - the debounced function as an EventListener\n */\n static debounceEvent (func: Function, wait: number = mintSettings.delay.default) : EventListener {\n return mintUtil.debounce(func, wait) as EventListener;\n }\n\n /**\n * Ensures that a function `func` is called at most every `wait` milliseconds with optional leading and trailing calls\n * @param func - the function to throttle\n * @param wait - the amount of time between function calls\n * @param options - leading and trailing options: default = \\{ leading: true, trailing, true \\}\n * @returns - the throttled function\n */\n static throttle (func: Function,\n wait: number = mintSettings.delay.default,\n options?: {[key: string]: boolean}) : Function {\n let context: any, args: any, result: any,\n timeout: number, previous: number = 0,\n later: Function = function () {\n previous = options?.leading === false ? 0 : new Date().getTime();\n timeout = 0;\n result = func.apply(context, args);\n if (!timeout) {\n context = args = null;\n }\n },\n throttled: Function = function (this: any): any {\n let now: number = new Date().getTime();\n if (!previous && options?.leading === false) {\n previous = now;\n }\n let remaining: number = wait - now + previous;\n context = this;\n args = arguments;\n if (remaining <= 0 || remaining > wait) {\n if (timeout) {\n clearTimeout(timeout);\n timeout = 0;\n }\n previous = now;\n result = func.apply(context, args);\n if (!timeout) {\n context = args = null;\n }\n } else if (!timeout && options?.trailing !== false) {\n timeout = window.setTimeout(later, remaining);\n }\n return result;\n };\n\n return throttled;\n }\n\n /**\n * Ensures that a function `func` is called at most every `wait` milliseconds with optional leading and trailing calls\n * @param func - the function to throttle\n * @param wait - the amount of time between function calls\n * @param options - leading and trailing options: default = \\{ leading: true, trailing, true \\}\n * @returns - the throttled function as an EventListener\n */\n static throttleEvent (func: Function,\n wait: number = mintSettings.delay.default,\n options?: {[key: string]: boolean}) : EventListener {\n return mintUtil.throttle(func, wait, options) as EventListener;\n }\n\n /**\n * Sets the element's height to its `innerHeight`, then to `auto` after a delay\n * @param el - the element whose height will be set\n * @param delay - the amount of time in milliseconds that the show animation will be active\n * @param from - the side that the element is animating from\n */\n static show (el?: HTMLElement | null, delay: number = mintSettings.delay.default, from: mintSide = mintSide.Top) : void {\n if (el) {\n el.style.display = '';\n requestAnimationFrame(() => {\n if (from === mintSide.Top || from === mintSide.Bottom) {\n el.style.height = `${el.scrollHeight}px`;\n } else {\n el.style.width = `${el.scrollWidth}px`;\n }\n \n setTimeout(() => {\n if (from === mintSide.Top || from === mintSide.Bottom) {\n el.style.height = 'auto';\n } else {\n el.style.width = 'auto';\n }\n }, delay);\n });\n }\n }\n\n /**\n * Sets the element's height to 0\n * @param el - the element whose height will be set\n * @param delay - the amount of time in milliseconds that the show animation will be active\n * @param from - the side that the element is animating from\n */\n static hide (el?: HTMLElement | null, delay: number = mintSettings.delay.default, from: mintSide = mintSide.Top) : void {\n if (el) {\n let height = el.scrollHeight,\n width = el.scrollWidth,\n transition = el.style.transition;\n el.style.transition = '';\n requestAnimationFrame(() => {\n if (from === mintSide.Top || from === mintSide.Bottom) {\n el.style.height = `${height}px`;\n } else {\n el.style.width = `${width}px`;\n }\n \n el.style.transition = transition;\n requestAnimationFrame(() => {\n if (from === mintSide.Top || from === mintSide.Bottom) {\n el.style.height = '0';\n } else {\n el.style.width = '0';\n }\n });\n });\n setTimeout(() => {\n el.style.display = 'none';\n }, delay);\n }\n }\n\n /**\n * Copies the provided text to the clipboard\n * @param text - the text to copy\n * @returns - true if the text was successfully copied to the clipboard; else false\n */\n static copyText (text: string) : boolean {\n let textArea: HTMLTextAreaElement = document.createElement('textarea');\n\n if (!text || !textArea) {\n return false;\n }\n\n textArea.value = text;\n textArea.style.cssText = `\n position: fixed;\n top: 0;\n left: 0;\n transform: translate(-100%, -100%);\n opacity: 0;\n z-index: -1;\n `;\n\n document.body.appendChild(textArea);\n textArea.select();\n textArea.setSelectionRange(0, 99999);\n navigator.clipboard.writeText(textArea.value);\n document.body.removeChild(textArea);\n\n return true;\n }\n\n /**\n * Tests the validity of an email address\n * @see {@link https://stackoverflow.com/questions/201323/how-can-i-validate-an-email-address-using-a-regular-expression}\n * @param text - the string to test\n * @returns - true if the given string is an email address; false if not\n */\n static isEmail (text: string) : boolean {\n return null !== text.match(/(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9]))\\.){3}(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9])|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])/);\n }\n}\nexport default mintUtil;\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(\"./src/ts/util.ts\");\n",""],"names":["mintSide","exports","mintSelectors","prefix","base","toLowerCase","startsWith","pre","cssPrefix","replace","cssVar","neg","class","id","controls","hasControls","expanded","bool","hasExpanded","getId","_b","ids","getClass","className","classGroup","group","classes","_c","getFocusables","el","focusables","querySelectorAll","focusable","document","filter","isFocusable","current","window","getComputedStyle","getPropertyValue","parentElement","lib","_a","disabled","hasLink","hasRouterLink","hasId","notTabbable","tabbable","subMenuButtons","subMenu","header","logo","wrapper","mainContent","sides","top","right","bottom","left","srOnly","js","ready","fixed","open","default","enum_1","require","selectors_1","mintSettings","set","settings","newDelay","delayBase","delayStep","setDelay","delay","Object","keys","length","values","reduce","prev","next","assign","from","setFrom","setFixed","instant","fast","medFast","medSlow","slow","getElementById","classList","remove","add","fixedClass","settings_1","__importDefault","mintUtil","windowWidth","decimal","body","getBoundingClientRect","width","innerWidth","debounce","func","wait","arguments","undefined","timer","e","clearTimeout","setTimeout","debounceEvent","throttle","options","context","args","result","timeout","previous","later","leading","Date","getTime","apply","throttled","now","remaining","trailing","throttleEvent","show","Top","style","display","requestAnimationFrame","Bottom","height","scrollHeight","scrollWidth","hide","transition","copyText","text","textArea","createElement","value","cssText","appendChild","select","setSelectionRange","navigator","clipboard","writeText","removeChild","isEmail","match"],"sourceRoot":""}
1
+ {"version":3,"file":"js/util.js","mappings":"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","sources":["webpack://mint/webpack/universalModuleDefinition","webpack://mint/./src/ts/imports/enum.ts","webpack://mint/./src/ts/imports/util/selectors.ts","webpack://mint/./src/ts/imports/util/settings.ts","webpack://mint/./src/ts/util.ts","webpack://mint/webpack/bootstrap","webpack://mint/webpack/before-startup","webpack://mint/webpack/startup","webpack://mint/webpack/after-startup"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"mintUtil\"] = factory();\n\telse\n\t\troot[\"mintUtil\"] = factory();\n})(this, () => {\nreturn ","/**\n * Side Enum\n */\n export enum mintSide {\n Top,\n Right,\n Bottom,\n Left\n};\n","/**\n * CSS-selector helpers\n * @public\n */\nexport abstract class mintSelectors {\n /**\n * The library name that will be added as a prefix\n */\n static lib: string = 'mint';\n\n /**\n * The prefix built from the library name\n */\n static pre: string = `${this.lib}-`;\n\n /**\n * CSS-selector for disabled elements\n */\n static disabled: string = '[disabled]';\n\n /**\n * CSS-selector for elements with an aria-controls attribute\n */\n static hasControls: string = '[aria-controls]';\n\n /**\n * CSS-selector for elements with an aria-expanded attribute\n */\n static hasExpanded: string = '[aria-expanded]';\n\n /**\n * CSS-selector for elements with an href attribute\n */\n static hasLink: string = '[href]';\n\n /**\n * CSS-selector for elements with a routerLink attribute\n */\n static hasRouterLink: string = '[routerLink]';\n\n /**\n * CSS-selector for elements with an id attribute\n */\n static hasId: string = '[id]';\n\n /**\n * CSS-selector for elements that aren't tabbable (i.e. tabindex is negative)\n */\n static notTabbable: string = '[tabindex^=\"-\"]';\n\n /**\n * CSS-selector for elements that are tabbable (i.e. tabindex isn't negative)\n */\n static tabbable: string = `[tabindex]${this.neg(this.notTabbable)}`;\n\n /**\n * CSS-selector for elements that can receive focus\n */\n static focusable: string = `input${this.neg(this.disabled)}${this.neg(this.notTabbable)},\n select${this.neg(this.disabled)}${this.neg(this.notTabbable)},\n textarea${this.neg(this.disabled)}${this.neg(this.notTabbable)},\n button${this.neg(this.disabled)}${this.neg(this.notTabbable)},\n object${this.neg(this.disabled)}${this.neg(this.notTabbable)},\n a${this.hasLink}, a${this.hasRouterLink},\n area${this.hasLink},\n ${this.tabbable}`.replace(/\\s/g, '');\n\n /**\n * CSS-selector for submenu buttons\n */\n static subMenuButtons: string = `button${this.hasControls}`;\n\n /**\n * CSS-selector for submenus\n */\n static subMenu: string = `${this.subMenuButtons} + ul${this.hasId}`;\n\n /**\n * Frequently-used ids\n */\n static ids: {[key: string]: string | {[key: string]: string}} = {\n header: this.prefix('header'),\n logo: this.prefix('logo'),\n wrapper: this.prefix('wrapper'),\n mainContent: this.prefix('main-content')\n };\n\n /**\n * Classes\n */\n static classes: {[key: string]: string | {[key: string]: string}} = {\n sides: {\n top: this.prefix('top'),\n right: this.prefix('right'),\n bottom: this.prefix('bottom'),\n left: this.prefix('left')\n },\n srOnly: this.prefix('sr-only'),\n js: this.prefix('js'),\n ready: this.prefix('ready'),\n fixed: this.prefix('fixed'),\n open: this.prefix('open')\n };\n\n /**\n * Adds the library prefix to the beginning of the provided string\n * @param base - the string to be prefixed\n * @returns - the provided string prefixed with the library name\n */\n static prefix (base: string) : string {\n base = base.toLowerCase();\n return base.startsWith(this.pre) ? base : `${this.pre}${base}`;\n }\n\n /**\n * Adds two dashes to the beginning of the provided string\n * @param base - the string to be prefixed\n * @returns - the provided string prefixed with two dashes\n */\n static cssPrefix (base: string) : string {\n return `--${this.prefix(base.replace(/^-+/, ''))}`;\n }\n\n /**\n * Turns the provided string into a CSS variable call\n * @param base - the name of the CSS variable to call\n * @returns - the CSS variable call for the provided string\n */\n static cssVar (base: string) : string {\n return `var(${this.cssPrefix(base)})`;\n }\n\n /**\n * Negates the provided CSS selector\n * @param base - the CSS selector to negate\n * @returns - the negated CSS selector\n */\n static neg (base: string) : string {\n return `:not(${base})`;\n }\n\n /**\n * Generates a class CSS selector\n * @param base - the name of the class to generate\n * @returns - the generated CSS selector\n */\n static class (base: string) : string {\n return `.${this.prefix(base)}`;\n }\n\n /**\n * Generates an id CSS selector\n * @param base - the name of the id to generate\n * @returns - the generated CSS selector\n */\n static id (base: string) : string {\n return `#${this.prefix(base)}`;\n }\n\n /**\n * Generates an aria-controls CSS selector\n * @param id - the id of the controlled element\n * @returns - the generated CSS selector\n */\n static controls (id?: string | null) : string {\n return id ? `[aria-controls=\"${this.prefix(id)}\"]` : this.hasControls;\n }\n\n /**\n * Generates an aria-expanded CSS selector\n * @param bool - whether the element is expanded or not\n * @returns - the generated CSS selector\n */\n static expanded (bool?: boolean | null) : string {\n return typeof bool === 'boolean' ? `[aria-expanded=\"${bool}\"]` : this.hasExpanded;\n }\n\n /**\n * Returns the id of the requested element\n */\n static getId (id?: string) : string {\n return this.ids[id ?? -1] as string ?? '';\n }\n\n /**\n * Returns the class of the requested element\n */\n static getClass (className?: string, classGroup?: string) : string {\n if (classGroup) {\n let group: {[key: string]: string} = this.classes[classGroup] as {[key: string]: string};\n return group[className ?? -1] ?? '';\n }\n return this.classes[className ?? -1] as string ?? '';\n }\n\n /**\n * Returns a NodeList of HTMLElements within the given element that are focusable\n * @param el - the element whose focusable children will be returned\n * @returns - the elements within the given element that are focusable\n */\n static getFocusables (el?: HTMLElement) : HTMLElement[] {\n let focusables: HTMLElement[];\n if (el) {\n focusables = Array.from(el.querySelectorAll<HTMLElement>(this.focusable));\n } else {\n focusables = Array.from(document.querySelectorAll<HTMLElement>(this.focusable));\n }\n return focusables.filter((el: HTMLElement) => this.isFocusable(el));\n }\n\n /**\n * Returns true if an element is focusable and false if not,\n * based on styles (i.e. a parent has display: none;)\n * NOTE: Still need to determine what other styles may make an element un-focusable\n * @param el - the element\n * @returns - true if the element is focusable; false if not\n */\n static isFocusable (el: HTMLElement) : boolean {\n let current: HTMLElement | null = el;\n\n do {\n if (window.getComputedStyle(current).getPropertyValue('display').toLowerCase() === 'none') {\n return false;\n }\n current = current.parentElement;\n } while (current);\n return true;\n }\n}\nexport default mintSelectors;\n","/**\n * Imports\n */\nimport { mintSide } from '../enum';\nimport { mintSelectors } from './selectors';\n\n/**\n * Settings management\n * @public\n */\nexport abstract class mintSettings {\n /**\n * Value added to all delay variables\n */\n static delayBase: number = 0;\n\n /**\n * Value multiplied by delay variable index\n */\n static delayStep: number = 100;\n\n /**\n * Delay variables\n */\n static delay: {[key: string]: number} = {\n instant: this.delayBase + this.delayStep * 0,\n fast: this.delayBase + this.delayStep * 1,\n medFast: this.delayBase + this.delayStep * 2,\n default: this.delayBase + this.delayStep * 3,\n medSlow: this.delayBase + this.delayStep * 4,\n slow: this.delayBase + this.delayStep * 5\n };\n\n /**\n * Side of the window the mobile navbar enters from\n */\n static from?: mintSide;\n\n /**\n * Whether the navbar is fixed or not\n */\n static fixed?: boolean;\n\n /**\n * Update the provided settings variables\n * @param settings - Object of settings variables to update\n */\n static set (settings: {[key: string]: any}) : void {\n let newDelay: boolean = false;\n if (typeof settings.delayBase === 'number') {\n this.delayBase = settings.delayBase;\n newDelay = true;\n }\n if (typeof settings.delayStep === 'number') {\n this.delayStep = settings.delayStep;\n newDelay = true;\n }\n if (newDelay) {\n this.setDelay();\n }\n\n if (settings.delay && Object.keys(settings.delay).length) {\n if (Object.values(settings.delay).reduce((prev: any, next: any) => prev && typeof next === 'number', true)) {\n this.delay = {...this.delay, ...settings.delay};\n }\n }\n\n if (typeof settings.from === 'number') {\n this.setFrom(settings.from);\n }\n\n if (typeof settings.fixed === 'boolean') {\n this.setFixed(settings.fixed);\n }\n }\n\n /**\n * Updates the delay variables based on `this.delayBase` and `this.delayStep`\n */\n protected static setDelay () : void {\n this.delay = {\n instant: this.delayBase + this.delayStep * 0,\n fast: this.delayBase + this.delayStep * 1,\n medFast: this.delayBase + this.delayStep * 2,\n default: this.delayBase + this.delayStep * 3,\n medSlow: this.delayBase + this.delayStep * 4,\n slow: this.delayBase + this.delayStep * 5\n };\n }\n\n /**\n * Updates the direction the navbar enters from\n */\n protected static setFrom (from: mintSide) : void {\n if (this.from !== from) {\n this.from = from;\n let header: HTMLElement | null = document.getElementById(mintSelectors.getId('header'));\n header?.classList.remove(...Object.values(mintSelectors.classes.sides));\n header?.classList.add(mintSelectors.getClass(mintSide[this.from].toLowerCase(), 'sides'));\n }\n }\n\n /**\n * Updates whether or not the navbar is fixed\n */\n protected static setFixed (fixed: boolean) : void {\n if (this.fixed !== fixed) {\n this.fixed = fixed;\n let header: HTMLElement | null = document.getElementById(mintSelectors.getId('header')),\n fixedClass: string = mintSelectors.getClass('fixed');\n if (this.fixed) {\n header?.classList.add(fixedClass);\n } else {\n header?.classList.remove(fixedClass);\n }\n }\n }\n};\n\nexport default mintSettings;\n","/**\n * Imports\n */\nimport { mintSide } from './imports/enum';\nimport mintSettings from './imports/util/settings';\n\n/**\n * Utility functions\n * @public\n */\nexport abstract class mintUtil {\n /**\n * Returns the width of the window, including fractional pixels\n * @returns the width of the window\n */\n static windowWidth () : number {\n const decimal: number = document.body.getBoundingClientRect().width % 1;\n return window.innerWidth + decimal;\n }\n\n /**\n * Ensures that a function `func` is run only after not being called for `wait` milliseconds\n * @param func - the function to debounce\n * @param wait - the amount of time to wait before running the function\n * @returns - the debounced function\n */\n static debounce (func: Function, wait: number = mintSettings.delay.default) : Function {\n let timer: number;\n return function (e: any) {\n if (timer) {\n clearTimeout(timer);\n }\n timer = setTimeout(func, wait, e);\n }\n }\n\n /**\n * Ensures that a function `func` is run only after not being called for `wait` milliseconds\n * @param func - the function to debounce\n * @param wait - the amount of time to wait before running the function\n * @returns - the debounced function as an EventListener\n */\n static debounceEvent (func: Function, wait: number = mintSettings.delay.default) : EventListener {\n return mintUtil.debounce(func, wait) as EventListener;\n }\n\n /**\n * Ensures that a function `func` is called at most every `wait` milliseconds with optional leading and trailing calls\n * @param func - the function to throttle\n * @param wait - the amount of time between function calls\n * @param options - leading and trailing options: default = \\{ leading: true, trailing, true \\}\n * @returns - the throttled function\n */\n static throttle (func: Function,\n wait: number = mintSettings.delay.default,\n options?: {[key: string]: boolean}) : Function {\n let context: any, args: any, result: any,\n timeout: number, previous: number = 0,\n later: Function = function () {\n previous = options?.leading === false ? 0 : new Date().getTime();\n timeout = 0;\n result = func.apply(context, args);\n if (!timeout) {\n context = args = null;\n }\n },\n throttled: Function = function (this: any): any {\n let now: number = new Date().getTime();\n if (!previous && options?.leading === false) {\n previous = now;\n }\n let remaining: number = wait - now + previous;\n context = this;\n args = arguments;\n if (remaining <= 0 || remaining > wait) {\n if (timeout) {\n clearTimeout(timeout);\n timeout = 0;\n }\n previous = now;\n result = func.apply(context, args);\n if (!timeout) {\n context = args = null;\n }\n } else if (!timeout && options?.trailing !== false) {\n timeout = window.setTimeout(later, remaining);\n }\n return result;\n };\n\n return throttled;\n }\n\n /**\n * Ensures that a function `func` is called at most every `wait` milliseconds with optional leading and trailing calls\n * @param func - the function to throttle\n * @param wait - the amount of time between function calls\n * @param options - leading and trailing options: default = \\{ leading: true, trailing, true \\}\n * @returns - the throttled function as an EventListener\n */\n static throttleEvent (func: Function,\n wait: number = mintSettings.delay.default,\n options?: {[key: string]: boolean}) : EventListener {\n return mintUtil.throttle(func, wait, options) as EventListener;\n }\n\n /**\n * Sets the element's height to its `innerHeight`, then to `auto` after a delay\n * @param el - the element whose height will be set\n * @param delay - the amount of time in milliseconds that the show animation will be active\n * @param from - the side that the element is animating from\n */\n static show (el?: HTMLElement | null, delay: number = mintSettings.delay.default, from: mintSide = mintSide.Top) : void {\n if (el) {\n el.style.display = '';\n requestAnimationFrame(() => {\n if (from === mintSide.Top || from === mintSide.Bottom) {\n el.style.height = `${el.scrollHeight}px`;\n } else {\n el.style.width = `${el.scrollWidth}px`;\n }\n \n setTimeout(() => {\n if (from === mintSide.Top || from === mintSide.Bottom) {\n el.style.height = 'auto';\n } else {\n el.style.width = 'auto';\n }\n }, delay);\n });\n }\n }\n\n /**\n * Sets the element's height to 0\n * @param el - the element whose height will be set\n * @param delay - the amount of time in milliseconds that the show animation will be active\n * @param from - the side that the element is animating from\n */\n static hide (el?: HTMLElement | null, delay: number = mintSettings.delay.default, from: mintSide = mintSide.Top) : void {\n if (el) {\n let height = el.scrollHeight,\n width = el.scrollWidth,\n transition = el.style.transition;\n el.style.transition = '';\n requestAnimationFrame(() => {\n if (from === mintSide.Top || from === mintSide.Bottom) {\n el.style.height = `${height}px`;\n } else {\n el.style.width = `${width}px`;\n }\n \n el.style.transition = transition;\n requestAnimationFrame(() => {\n if (from === mintSide.Top || from === mintSide.Bottom) {\n el.style.height = '0';\n } else {\n el.style.width = '0';\n }\n });\n });\n setTimeout(() => {\n el.style.display = 'none';\n }, delay);\n }\n }\n\n /**\n * Copies the provided text to the clipboard\n * @param text - the text to copy\n * @returns - true if the text was successfully copied to the clipboard; else false\n */\n static copyText (text: string) : boolean {\n let textArea: HTMLTextAreaElement = document.createElement('textarea');\n\n if (!text || !textArea) {\n return false;\n }\n\n textArea.value = text;\n textArea.style.cssText = `\n position: fixed;\n top: 0;\n left: 0;\n transform: translate(-100%, -100%);\n opacity: 0;\n z-index: -1;\n `;\n\n document.body.appendChild(textArea);\n textArea.select();\n textArea.setSelectionRange(0, 99999);\n navigator.clipboard.writeText(textArea.value);\n document.body.removeChild(textArea);\n\n return true;\n }\n\n /**\n * Tests the validity of an email address\n * @see {@link https://stackoverflow.com/questions/201323/how-can-i-validate-an-email-address-using-a-regular-expression}\n * @param text - the string to test\n * @returns - true if the given string is an email address; false if not\n */\n static isEmail (text: string) : boolean {\n return null !== text.match(/(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9]))\\.){3}(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9])|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])/);\n }\n}\nexport default mintUtil;\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(\"./src/ts/util.ts\");\n",""],"names":["mintSide","exports","mintSelectors","prefix","base","toLowerCase","startsWith","pre","cssPrefix","replace","cssVar","neg","class","id","controls","hasControls","expanded","bool","hasExpanded","getId","_b","ids","getClass","className","classGroup","group","classes","_c","getFocusables","el","focusables","Array","from","querySelectorAll","focusable","document","filter","isFocusable","current","window","getComputedStyle","getPropertyValue","parentElement","lib","_a","disabled","hasLink","hasRouterLink","hasId","notTabbable","tabbable","subMenuButtons","subMenu","header","logo","wrapper","mainContent","sides","top","right","bottom","left","srOnly","js","ready","fixed","open","default","enum_1","require","selectors_1","mintSettings","set","settings","newDelay","delayBase","delayStep","setDelay","delay","Object","keys","length","values","reduce","prev","next","assign","setFrom","setFixed","instant","fast","medFast","medSlow","slow","getElementById","classList","remove","add","fixedClass","settings_1","__importDefault","mintUtil","windowWidth","decimal","body","getBoundingClientRect","width","innerWidth","debounce","func","wait","arguments","undefined","timer","e","clearTimeout","setTimeout","debounceEvent","throttle","options","context","args","result","timeout","previous","later","leading","Date","getTime","apply","throttled","now","remaining","trailing","throttleEvent","show","Top","style","display","requestAnimationFrame","Bottom","height","scrollHeight","scrollWidth","hide","transition","copyText","text","textArea","createElement","value","cssText","appendChild","select","setSelectionRange","navigator","clipboard","writeText","removeChild","isEmail","match"],"sourceRoot":""}
@@ -1,2 +1,2 @@
1
- !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.mintUtil=t():e.mintUtil=t()}(this,(()=>(()=>{"use strict";var e={64:(e,t)=>{var i;Object.defineProperty(t,"__esModule",{value:!0}),t.mintSide=void 0,(i=t.mintSide||(t.mintSide={}))[i.Top=0]="Top",i[i.Right=1]="Right",i[i.Bottom=2]="Bottom",i[i.Left=3]="Left"},378:(e,t)=>{var i;Object.defineProperty(t,"__esModule",{value:!0}),t.mintSelectors=void 0;class a{static prefix(e){return(e=e.toLowerCase()).startsWith(this.pre)?e:`${this.pre}${e}`}static cssPrefix(e){return`--${this.prefix(e.replace(/^-+/,""))}`}static cssVar(e){return`var(${this.cssPrefix(e)})`}static neg(e){return`:not(${e})`}static class(e){return`.${this.prefix(e)}`}static id(e){return`#${this.prefix(e)}`}static controls(e){return e?`[aria-controls="${this.prefix(e)}"]`:this.hasControls}static expanded(e){return"boolean"==typeof e?`[aria-expanded="${e}"]`:this.hasExpanded}static getId(e){var t;return null!==(t=this.ids[null!=e?e:-1])&&void 0!==t?t:""}static getClass(e,t){var i,a;return t?null!==(i=this.classes[t][null!=e?e:-1])&&void 0!==i?i:"":null!==(a=this.classes[null!=e?e:-1])&&void 0!==a?a:""}static getFocusables(e){let t;return t=e?[...e.querySelectorAll(this.focusable)]:[...document.querySelectorAll(this.focusable)],t.filter((e=>this.isFocusable(e)))}static isFocusable(e){let t=e;do{if("none"===window.getComputedStyle(t).getPropertyValue("display").toLowerCase())return!1;t=t.parentElement}while(t);return!0}}t.mintSelectors=a,i=a,a.lib="mint",a.pre=`${i.lib}-`,a.disabled="[disabled]",a.hasControls="[aria-controls]",a.hasExpanded="[aria-expanded]",a.hasLink="[href]",a.hasRouterLink="[routerLink]",a.hasId="[id]",a.notTabbable='[tabindex^="-"]',a.tabbable=`[tabindex]${i.neg(i.notTabbable)}`,a.focusable=`input${i.neg(i.disabled)}${i.neg(i.notTabbable)},\n select${i.neg(i.disabled)}${i.neg(i.notTabbable)},\n textarea${i.neg(i.disabled)}${i.neg(i.notTabbable)},\n button${i.neg(i.disabled)}${i.neg(i.notTabbable)},\n object${i.neg(i.disabled)}${i.neg(i.notTabbable)},\n a${i.hasLink}, a${i.hasRouterLink},\n area${i.hasLink},\n ${i.tabbable}`.replace(/\s/g,""),a.subMenuButtons=`button${i.hasControls}`,a.subMenu=`${i.subMenuButtons} + ul${i.hasId}`,a.ids={header:i.prefix("header"),logo:i.prefix("logo"),wrapper:i.prefix("wrapper"),mainContent:i.prefix("main-content")},a.classes={sides:{top:i.prefix("top"),right:i.prefix("right"),bottom:i.prefix("bottom"),left:i.prefix("left")},srOnly:i.prefix("sr-only"),js:i.prefix("js"),ready:i.prefix("ready"),fixed:i.prefix("fixed"),open:i.prefix("open")},t.default=a},110:(e,t,i)=>{var a;Object.defineProperty(t,"__esModule",{value:!0}),t.mintSettings=void 0;const s=i(64),l=i(378);class n{static set(e){let t=!1;"number"==typeof e.delayBase&&(this.delayBase=e.delayBase,t=!0),"number"==typeof e.delayStep&&(this.delayStep=e.delayStep,t=!0),t&&this.setDelay(),e.delay&&Object.keys(e.delay).length&&Object.values(e.delay).reduce(((e,t)=>e&&"number"==typeof t),!0)&&(this.delay=Object.assign(Object.assign({},this.delay),e.delay)),"number"==typeof e.from&&this.setFrom(e.from),"boolean"==typeof e.fixed&&this.setFixed(e.fixed)}static setDelay(){this.delay={instant:this.delayBase+0*this.delayStep,fast:this.delayBase+1*this.delayStep,medFast:this.delayBase+2*this.delayStep,default:this.delayBase+3*this.delayStep,medSlow:this.delayBase+4*this.delayStep,slow:this.delayBase+5*this.delayStep}}static setFrom(e){if(this.from!==e){this.from=e;let t=document.getElementById(l.mintSelectors.getId("header"));null==t||t.classList.remove(...Object.values(l.mintSelectors.classes.sides)),null==t||t.classList.add(l.mintSelectors.getClass(s.mintSide[this.from].toLowerCase(),"sides"))}}static setFixed(e){if(this.fixed!==e){this.fixed=e;let t=document.getElementById(l.mintSelectors.getId("header")),i=l.mintSelectors.getClass("fixed");this.fixed?null==t||t.classList.add(i):null==t||t.classList.remove(i)}}}t.mintSettings=n,a=n,n.delayBase=0,n.delayStep=100,n.delay={instant:a.delayBase+0*a.delayStep,fast:a.delayBase+1*a.delayStep,medFast:a.delayBase+2*a.delayStep,default:a.delayBase+3*a.delayStep,medSlow:a.delayBase+4*a.delayStep,slow:a.delayBase+5*a.delayStep},t.default=n},427:function(e,t,i){var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.mintUtil=void 0;const s=i(64),l=a(i(110));class n{static windowWidth(){const e=document.body.getBoundingClientRect().width%1;return window.innerWidth+e}static debounce(e){let t,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:l.default.delay.default;return function(a){t&&clearTimeout(t),t=setTimeout(e,i,a)}}static debounceEvent(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:l.default.delay.default;return n.debounce(e,t)}static throttle(e){let t,i,a,s,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:l.default.delay.default,d=arguments.length>2?arguments[2]:void 0,o=0,r=function(){o=!1===(null==d?void 0:d.leading)?0:(new Date).getTime(),s=0,a=e.apply(t,i),s||(t=i=null)};return function(){let l=(new Date).getTime();o||!1!==(null==d?void 0:d.leading)||(o=l);let u=n-l+o;return t=this,i=arguments,u<=0||u>n?(s&&(clearTimeout(s),s=0),o=l,a=e.apply(t,i),s||(t=i=null)):s||!1===(null==d?void 0:d.trailing)||(s=window.setTimeout(r,u)),a}}static throttleEvent(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:l.default.delay.default,i=arguments.length>2?arguments[2]:void 0;return n.throttle(e,t,i)}static show(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:l.default.delay.default,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:s.mintSide.Top;e&&(e.style.display="",requestAnimationFrame((()=>{i===s.mintSide.Top||i===s.mintSide.Bottom?e.style.height=`${e.scrollHeight}px`:e.style.width=`${e.scrollWidth}px`,setTimeout((()=>{i===s.mintSide.Top||i===s.mintSide.Bottom?e.style.height="auto":e.style.width="auto"}),t)})))}static hide(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:l.default.delay.default,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:s.mintSide.Top;if(e){let a=e.scrollHeight,l=e.scrollWidth,n=e.style.transition;e.style.transition="",requestAnimationFrame((()=>{i===s.mintSide.Top||i===s.mintSide.Bottom?e.style.height=`${a}px`:e.style.width=`${l}px`,e.style.transition=n,requestAnimationFrame((()=>{i===s.mintSide.Top||i===s.mintSide.Bottom?e.style.height="0":e.style.width="0"}))})),setTimeout((()=>{e.style.display="none"}),t)}}static copyText(e){let t=document.createElement("textarea");return!(!e||!t||(t.value=e,t.style.cssText="\n position: fixed;\n top: 0;\n left: 0;\n transform: translate(-100%, -100%);\n opacity: 0;\n z-index: -1;\n ",document.body.appendChild(t),t.select(),t.setSelectionRange(0,99999),navigator.clipboard.writeText(t.value),document.body.removeChild(t),0))}static isEmail(e){return null!==e.match(/(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9]))\.){3}(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9])|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])/)}}t.mintUtil=n,t.default=n}},t={},i=function i(a){var s=t[a];if(void 0!==s)return s.exports;var l=t[a]={exports:{}};return e[a].call(l.exports,l,l.exports,i),l.exports}(427);return i.default})()));
1
+ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.mintUtil=t():e.mintUtil=t()}(this,(()=>(()=>{"use strict";var e={64:(e,t)=>{var i;Object.defineProperty(t,"__esModule",{value:!0}),t.mintSide=void 0,(i=t.mintSide||(t.mintSide={}))[i.Top=0]="Top",i[i.Right=1]="Right",i[i.Bottom=2]="Bottom",i[i.Left=3]="Left"},378:(e,t)=>{var i;Object.defineProperty(t,"__esModule",{value:!0}),t.mintSelectors=void 0;class a{static prefix(e){return(e=e.toLowerCase()).startsWith(this.pre)?e:`${this.pre}${e}`}static cssPrefix(e){return`--${this.prefix(e.replace(/^-+/,""))}`}static cssVar(e){return`var(${this.cssPrefix(e)})`}static neg(e){return`:not(${e})`}static class(e){return`.${this.prefix(e)}`}static id(e){return`#${this.prefix(e)}`}static controls(e){return e?`[aria-controls="${this.prefix(e)}"]`:this.hasControls}static expanded(e){return"boolean"==typeof e?`[aria-expanded="${e}"]`:this.hasExpanded}static getId(e){var t;return null!==(t=this.ids[null!=e?e:-1])&&void 0!==t?t:""}static getClass(e,t){var i,a;return t?null!==(i=this.classes[t][null!=e?e:-1])&&void 0!==i?i:"":null!==(a=this.classes[null!=e?e:-1])&&void 0!==a?a:""}static getFocusables(e){let t;return t=e?Array.from(e.querySelectorAll(this.focusable)):Array.from(document.querySelectorAll(this.focusable)),t.filter((e=>this.isFocusable(e)))}static isFocusable(e){let t=e;do{if("none"===window.getComputedStyle(t).getPropertyValue("display").toLowerCase())return!1;t=t.parentElement}while(t);return!0}}t.mintSelectors=a,i=a,a.lib="mint",a.pre=`${i.lib}-`,a.disabled="[disabled]",a.hasControls="[aria-controls]",a.hasExpanded="[aria-expanded]",a.hasLink="[href]",a.hasRouterLink="[routerLink]",a.hasId="[id]",a.notTabbable='[tabindex^="-"]',a.tabbable=`[tabindex]${i.neg(i.notTabbable)}`,a.focusable=`input${i.neg(i.disabled)}${i.neg(i.notTabbable)},\n select${i.neg(i.disabled)}${i.neg(i.notTabbable)},\n textarea${i.neg(i.disabled)}${i.neg(i.notTabbable)},\n button${i.neg(i.disabled)}${i.neg(i.notTabbable)},\n object${i.neg(i.disabled)}${i.neg(i.notTabbable)},\n a${i.hasLink}, a${i.hasRouterLink},\n area${i.hasLink},\n ${i.tabbable}`.replace(/\s/g,""),a.subMenuButtons=`button${i.hasControls}`,a.subMenu=`${i.subMenuButtons} + ul${i.hasId}`,a.ids={header:i.prefix("header"),logo:i.prefix("logo"),wrapper:i.prefix("wrapper"),mainContent:i.prefix("main-content")},a.classes={sides:{top:i.prefix("top"),right:i.prefix("right"),bottom:i.prefix("bottom"),left:i.prefix("left")},srOnly:i.prefix("sr-only"),js:i.prefix("js"),ready:i.prefix("ready"),fixed:i.prefix("fixed"),open:i.prefix("open")},t.default=a},110:(e,t,i)=>{var a;Object.defineProperty(t,"__esModule",{value:!0}),t.mintSettings=void 0;const s=i(64),l=i(378);class n{static set(e){let t=!1;"number"==typeof e.delayBase&&(this.delayBase=e.delayBase,t=!0),"number"==typeof e.delayStep&&(this.delayStep=e.delayStep,t=!0),t&&this.setDelay(),e.delay&&Object.keys(e.delay).length&&Object.values(e.delay).reduce(((e,t)=>e&&"number"==typeof t),!0)&&(this.delay=Object.assign(Object.assign({},this.delay),e.delay)),"number"==typeof e.from&&this.setFrom(e.from),"boolean"==typeof e.fixed&&this.setFixed(e.fixed)}static setDelay(){this.delay={instant:this.delayBase+0*this.delayStep,fast:this.delayBase+1*this.delayStep,medFast:this.delayBase+2*this.delayStep,default:this.delayBase+3*this.delayStep,medSlow:this.delayBase+4*this.delayStep,slow:this.delayBase+5*this.delayStep}}static setFrom(e){if(this.from!==e){this.from=e;let t=document.getElementById(l.mintSelectors.getId("header"));null==t||t.classList.remove(...Object.values(l.mintSelectors.classes.sides)),null==t||t.classList.add(l.mintSelectors.getClass(s.mintSide[this.from].toLowerCase(),"sides"))}}static setFixed(e){if(this.fixed!==e){this.fixed=e;let t=document.getElementById(l.mintSelectors.getId("header")),i=l.mintSelectors.getClass("fixed");this.fixed?null==t||t.classList.add(i):null==t||t.classList.remove(i)}}}t.mintSettings=n,a=n,n.delayBase=0,n.delayStep=100,n.delay={instant:a.delayBase+0*a.delayStep,fast:a.delayBase+1*a.delayStep,medFast:a.delayBase+2*a.delayStep,default:a.delayBase+3*a.delayStep,medSlow:a.delayBase+4*a.delayStep,slow:a.delayBase+5*a.delayStep},t.default=n},427:function(e,t,i){var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.mintUtil=void 0;const s=i(64),l=a(i(110));class n{static windowWidth(){const e=document.body.getBoundingClientRect().width%1;return window.innerWidth+e}static debounce(e){let t,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:l.default.delay.default;return function(a){t&&clearTimeout(t),t=setTimeout(e,i,a)}}static debounceEvent(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:l.default.delay.default;return n.debounce(e,t)}static throttle(e){let t,i,a,s,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:l.default.delay.default,o=arguments.length>2?arguments[2]:void 0,d=0,r=function(){d=!1===(null==o?void 0:o.leading)?0:(new Date).getTime(),s=0,a=e.apply(t,i),s||(t=i=null)};return function(){let l=(new Date).getTime();d||!1!==(null==o?void 0:o.leading)||(d=l);let u=n-l+d;return t=this,i=arguments,u<=0||u>n?(s&&(clearTimeout(s),s=0),d=l,a=e.apply(t,i),s||(t=i=null)):s||!1===(null==o?void 0:o.trailing)||(s=window.setTimeout(r,u)),a}}static throttleEvent(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:l.default.delay.default,i=arguments.length>2?arguments[2]:void 0;return n.throttle(e,t,i)}static show(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:l.default.delay.default,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:s.mintSide.Top;e&&(e.style.display="",requestAnimationFrame((()=>{i===s.mintSide.Top||i===s.mintSide.Bottom?e.style.height=`${e.scrollHeight}px`:e.style.width=`${e.scrollWidth}px`,setTimeout((()=>{i===s.mintSide.Top||i===s.mintSide.Bottom?e.style.height="auto":e.style.width="auto"}),t)})))}static hide(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:l.default.delay.default,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:s.mintSide.Top;if(e){let a=e.scrollHeight,l=e.scrollWidth,n=e.style.transition;e.style.transition="",requestAnimationFrame((()=>{i===s.mintSide.Top||i===s.mintSide.Bottom?e.style.height=`${a}px`:e.style.width=`${l}px`,e.style.transition=n,requestAnimationFrame((()=>{i===s.mintSide.Top||i===s.mintSide.Bottom?e.style.height="0":e.style.width="0"}))})),setTimeout((()=>{e.style.display="none"}),t)}}static copyText(e){let t=document.createElement("textarea");return!(!e||!t||(t.value=e,t.style.cssText="\n position: fixed;\n top: 0;\n left: 0;\n transform: translate(-100%, -100%);\n opacity: 0;\n z-index: -1;\n ",document.body.appendChild(t),t.select(),t.setSelectionRange(0,99999),navigator.clipboard.writeText(t.value),document.body.removeChild(t),0))}static isEmail(e){return null!==e.match(/(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9]))\.){3}(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9])|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])/)}}t.mintUtil=n,t.default=n}},t={},i=function i(a){var s=t[a];if(void 0!==s)return s.exports;var l=t[a]={exports:{}};return e[a].call(l.exports,l,l.exports,i),l.exports}(427);return i.default})()));
2
2
  //# sourceMappingURL=util.min.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"js/util.min.js","mappings":"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","sources":["webpack://mint/webpack/universalModuleDefinition","webpack://mint/./src/ts/imports/enum.ts","webpack://mint/./src/ts/imports/util/selectors.ts","webpack://mint/./src/ts/imports/util/settings.ts","webpack://mint/./src/ts/util.ts","webpack://mint/webpack/bootstrap","webpack://mint/webpack/startup"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"mintUtil\"] = factory();\n\telse\n\t\troot[\"mintUtil\"] = factory();\n})(this, () => {\nreturn ","/**\n * Side Enum\n */\n export enum mintSide {\n Top,\n Right,\n Bottom,\n Left\n};\n","/**\n * CSS-selector helpers\n * @public\n */\nexport abstract class mintSelectors {\n /**\n * The library name that will be added as a prefix\n */\n static lib: string = 'mint';\n\n /**\n * The prefix built from the library name\n */\n static pre: string = `${this.lib}-`;\n\n /**\n * CSS-selector for disabled elements\n */\n static disabled: string = '[disabled]';\n\n /**\n * CSS-selector for elements with an aria-controls attribute\n */\n static hasControls: string = '[aria-controls]';\n\n /**\n * CSS-selector for elements with an aria-expanded attribute\n */\n static hasExpanded: string = '[aria-expanded]';\n\n /**\n * CSS-selector for elements with an href attribute\n */\n static hasLink: string = '[href]';\n\n /**\n * CSS-selector for elements with a routerLink attribute\n */\n static hasRouterLink: string = '[routerLink]';\n\n /**\n * CSS-selector for elements with an id attribute\n */\n static hasId: string = '[id]';\n\n /**\n * CSS-selector for elements that aren't tabbable (i.e. tabindex is negative)\n */\n static notTabbable: string = '[tabindex^=\"-\"]';\n\n /**\n * CSS-selector for elements that are tabbable (i.e. tabindex isn't negative)\n */\n static tabbable: string = `[tabindex]${this.neg(this.notTabbable)}`;\n\n /**\n * CSS-selector for elements that can receive focus\n */\n static focusable: string = `input${this.neg(this.disabled)}${this.neg(this.notTabbable)},\n select${this.neg(this.disabled)}${this.neg(this.notTabbable)},\n textarea${this.neg(this.disabled)}${this.neg(this.notTabbable)},\n button${this.neg(this.disabled)}${this.neg(this.notTabbable)},\n object${this.neg(this.disabled)}${this.neg(this.notTabbable)},\n a${this.hasLink}, a${this.hasRouterLink},\n area${this.hasLink},\n ${this.tabbable}`.replace(/\\s/g, '');\n\n /**\n * CSS-selector for submenu buttons\n */\n static subMenuButtons: string = `button${this.hasControls}`;\n\n /**\n * CSS-selector for submenus\n */\n static subMenu: string = `${this.subMenuButtons} + ul${this.hasId}`;\n\n /**\n * Frequently-used ids\n */\n static ids: {[key: string]: string | {[key: string]: string}} = {\n header: this.prefix('header'),\n logo: this.prefix('logo'),\n wrapper: this.prefix('wrapper'),\n mainContent: this.prefix('main-content')\n };\n\n /**\n * Classes\n */\n static classes: {[key: string]: string | {[key: string]: string}} = {\n sides: {\n top: this.prefix('top'),\n right: this.prefix('right'),\n bottom: this.prefix('bottom'),\n left: this.prefix('left')\n },\n srOnly: this.prefix('sr-only'),\n js: this.prefix('js'),\n ready: this.prefix('ready'),\n fixed: this.prefix('fixed'),\n open: this.prefix('open')\n };\n\n /**\n * Adds the library prefix to the beginning of the provided string\n * @param base - the string to be prefixed\n * @returns - the provided string prefixed with the library name\n */\n static prefix (base: string) : string {\n base = base.toLowerCase();\n return base.startsWith(this.pre) ? base : `${this.pre}${base}`;\n }\n\n /**\n * Adds two dashes to the beginning of the provided string\n * @param base - the string to be prefixed\n * @returns - the provided string prefixed with two dashes\n */\n static cssPrefix (base: string) : string {\n return `--${this.prefix(base.replace(/^-+/, ''))}`;\n }\n\n /**\n * Turns the provided string into a CSS variable call\n * @param base - the name of the CSS variable to call\n * @returns - the CSS variable call for the provided string\n */\n static cssVar (base: string) : string {\n return `var(${this.cssPrefix(base)})`;\n }\n\n /**\n * Negates the provided CSS selector\n * @param base - the CSS selector to negate\n * @returns - the negated CSS selector\n */\n static neg (base: string) : string {\n return `:not(${base})`;\n }\n\n /**\n * Generates a class CSS selector\n * @param base - the name of the class to generate\n * @returns - the generated CSS selector\n */\n static class (base: string) : string {\n return `.${this.prefix(base)}`;\n }\n\n /**\n * Generates an id CSS selector\n * @param base - the name of the id to generate\n * @returns - the generated CSS selector\n */\n static id (base: string) : string {\n return `#${this.prefix(base)}`;\n }\n\n /**\n * Generates an aria-controls CSS selector\n * @param id - the id of the controlled element\n * @returns - the generated CSS selector\n */\n static controls (id?: string | null) : string {\n return id ? `[aria-controls=\"${this.prefix(id)}\"]` : this.hasControls;\n }\n\n /**\n * Generates an aria-expanded CSS selector\n * @param bool - whether the element is expanded or not\n * @returns - the generated CSS selector\n */\n static expanded (bool?: boolean | null) : string {\n return typeof bool === 'boolean' ? `[aria-expanded=\"${bool}\"]` : this.hasExpanded;\n }\n\n /**\n * Returns the id of the requested element\n */\n static getId (id?: string) : string {\n return this.ids[id ?? -1] as string ?? '';\n }\n\n /**\n * Returns the class of the requested element\n */\n static getClass (className?: string, classGroup?: string) : string {\n if (classGroup) {\n let group: {[key: string]: string} = this.classes[classGroup] as {[key: string]: string};\n return group[className ?? -1] ?? '';\n }\n return this.classes[className ?? -1] as string ?? '';\n }\n\n /**\n * Returns a NodeList of HTMLElements within the given element that are focusable\n * @param el - the element whose focusable children will be returned\n * @returns - the elements within the given element that are focusable\n */\n static getFocusables (el?: HTMLElement) : HTMLElement[] {\n let focusables: HTMLElement[];\n if (el) {\n focusables = [...el.querySelectorAll<HTMLElement>(this.focusable)];\n } else {\n focusables = [...document.querySelectorAll<HTMLElement>(this.focusable)];\n }\n return focusables.filter((el: HTMLElement) => this.isFocusable(el));\n }\n\n /**\n * Returns true if an element is focusable and false if not,\n * based on styles (i.e. a parent has display: none;)\n * NOTE: Still need to determine what other styles may make an element un-focusable\n * @param el - the element\n * @returns - true if the element is focusable; false if not\n */\n static isFocusable (el: HTMLElement) : boolean {\n let current: HTMLElement | null = el;\n\n do {\n if (window.getComputedStyle(current).getPropertyValue('display').toLowerCase() === 'none') {\n return false;\n }\n current = current.parentElement;\n } while (current);\n return true;\n }\n}\nexport default mintSelectors;\n","/**\n * Imports\n */\nimport { mintSide } from '../enum';\nimport { mintSelectors } from './selectors';\n\n/**\n * Settings management\n * @public\n */\nexport abstract class mintSettings {\n /**\n * Value added to all delay variables\n */\n static delayBase: number = 0;\n\n /**\n * Value multiplied by delay variable index\n */\n static delayStep: number = 100;\n\n /**\n * Delay variables\n */\n static delay: {[key: string]: number} = {\n instant: this.delayBase + this.delayStep * 0,\n fast: this.delayBase + this.delayStep * 1,\n medFast: this.delayBase + this.delayStep * 2,\n default: this.delayBase + this.delayStep * 3,\n medSlow: this.delayBase + this.delayStep * 4,\n slow: this.delayBase + this.delayStep * 5\n };\n\n /**\n * Side of the window the mobile navbar enters from\n */\n static from?: mintSide;\n\n /**\n * Whether the navbar is fixed or not\n */\n static fixed?: boolean;\n\n /**\n * Update the provided settings variables\n * @param settings - Object of settings variables to update\n */\n static set (settings: {[key: string]: any}) : void {\n let newDelay: boolean = false;\n if (typeof settings.delayBase === 'number') {\n this.delayBase = settings.delayBase;\n newDelay = true;\n }\n if (typeof settings.delayStep === 'number') {\n this.delayStep = settings.delayStep;\n newDelay = true;\n }\n if (newDelay) {\n this.setDelay();\n }\n\n if (settings.delay && Object.keys(settings.delay).length) {\n if (Object.values(settings.delay).reduce((prev: any, next: any) => prev && typeof next === 'number', true)) {\n this.delay = {...this.delay, ...settings.delay};\n }\n }\n\n if (typeof settings.from === 'number') {\n this.setFrom(settings.from);\n }\n\n if (typeof settings.fixed === 'boolean') {\n this.setFixed(settings.fixed);\n }\n }\n\n /**\n * Updates the delay variables based on `this.delayBase` and `this.delayStep`\n */\n protected static setDelay () : void {\n this.delay = {\n instant: this.delayBase + this.delayStep * 0,\n fast: this.delayBase + this.delayStep * 1,\n medFast: this.delayBase + this.delayStep * 2,\n default: this.delayBase + this.delayStep * 3,\n medSlow: this.delayBase + this.delayStep * 4,\n slow: this.delayBase + this.delayStep * 5\n };\n }\n\n /**\n * Updates the direction the navbar enters from\n */\n protected static setFrom (from: mintSide) : void {\n if (this.from !== from) {\n this.from = from;\n let header: HTMLElement | null = document.getElementById(mintSelectors.getId('header'));\n header?.classList.remove(...Object.values(mintSelectors.classes.sides));\n header?.classList.add(mintSelectors.getClass(mintSide[this.from].toLowerCase(), 'sides'));\n }\n }\n\n /**\n * Updates whether or not the navbar is fixed\n */\n protected static setFixed (fixed: boolean) : void {\n if (this.fixed !== fixed) {\n this.fixed = fixed;\n let header: HTMLElement | null = document.getElementById(mintSelectors.getId('header')),\n fixedClass: string = mintSelectors.getClass('fixed');\n if (this.fixed) {\n header?.classList.add(fixedClass);\n } else {\n header?.classList.remove(fixedClass);\n }\n }\n }\n};\n\nexport default mintSettings;\n","/**\n * Imports\n */\nimport { mintSide } from './imports/enum';\nimport mintSettings from './imports/util/settings';\n\n/**\n * Utility functions\n * @public\n */\nexport abstract class mintUtil {\n /**\n * Returns the width of the window, including fractional pixels\n * @returns the width of the window\n */\n static windowWidth () : number {\n const decimal: number = document.body.getBoundingClientRect().width % 1;\n return window.innerWidth + decimal;\n }\n\n /**\n * Ensures that a function `func` is run only after not being called for `wait` milliseconds\n * @param func - the function to debounce\n * @param wait - the amount of time to wait before running the function\n * @returns - the debounced function\n */\n static debounce (func: Function, wait: number = mintSettings.delay.default) : Function {\n let timer: number;\n return function (e: any) {\n if (timer) {\n clearTimeout(timer);\n }\n timer = setTimeout(func, wait, e);\n }\n }\n\n /**\n * Ensures that a function `func` is run only after not being called for `wait` milliseconds\n * @param func - the function to debounce\n * @param wait - the amount of time to wait before running the function\n * @returns - the debounced function as an EventListener\n */\n static debounceEvent (func: Function, wait: number = mintSettings.delay.default) : EventListener {\n return mintUtil.debounce(func, wait) as EventListener;\n }\n\n /**\n * Ensures that a function `func` is called at most every `wait` milliseconds with optional leading and trailing calls\n * @param func - the function to throttle\n * @param wait - the amount of time between function calls\n * @param options - leading and trailing options: default = \\{ leading: true, trailing, true \\}\n * @returns - the throttled function\n */\n static throttle (func: Function,\n wait: number = mintSettings.delay.default,\n options?: {[key: string]: boolean}) : Function {\n let context: any, args: any, result: any,\n timeout: number, previous: number = 0,\n later: Function = function () {\n previous = options?.leading === false ? 0 : new Date().getTime();\n timeout = 0;\n result = func.apply(context, args);\n if (!timeout) {\n context = args = null;\n }\n },\n throttled: Function = function (this: any): any {\n let now: number = new Date().getTime();\n if (!previous && options?.leading === false) {\n previous = now;\n }\n let remaining: number = wait - now + previous;\n context = this;\n args = arguments;\n if (remaining <= 0 || remaining > wait) {\n if (timeout) {\n clearTimeout(timeout);\n timeout = 0;\n }\n previous = now;\n result = func.apply(context, args);\n if (!timeout) {\n context = args = null;\n }\n } else if (!timeout && options?.trailing !== false) {\n timeout = window.setTimeout(later, remaining);\n }\n return result;\n };\n\n return throttled;\n }\n\n /**\n * Ensures that a function `func` is called at most every `wait` milliseconds with optional leading and trailing calls\n * @param func - the function to throttle\n * @param wait - the amount of time between function calls\n * @param options - leading and trailing options: default = \\{ leading: true, trailing, true \\}\n * @returns - the throttled function as an EventListener\n */\n static throttleEvent (func: Function,\n wait: number = mintSettings.delay.default,\n options?: {[key: string]: boolean}) : EventListener {\n return mintUtil.throttle(func, wait, options) as EventListener;\n }\n\n /**\n * Sets the element's height to its `innerHeight`, then to `auto` after a delay\n * @param el - the element whose height will be set\n * @param delay - the amount of time in milliseconds that the show animation will be active\n * @param from - the side that the element is animating from\n */\n static show (el?: HTMLElement | null, delay: number = mintSettings.delay.default, from: mintSide = mintSide.Top) : void {\n if (el) {\n el.style.display = '';\n requestAnimationFrame(() => {\n if (from === mintSide.Top || from === mintSide.Bottom) {\n el.style.height = `${el.scrollHeight}px`;\n } else {\n el.style.width = `${el.scrollWidth}px`;\n }\n \n setTimeout(() => {\n if (from === mintSide.Top || from === mintSide.Bottom) {\n el.style.height = 'auto';\n } else {\n el.style.width = 'auto';\n }\n }, delay);\n });\n }\n }\n\n /**\n * Sets the element's height to 0\n * @param el - the element whose height will be set\n * @param delay - the amount of time in milliseconds that the show animation will be active\n * @param from - the side that the element is animating from\n */\n static hide (el?: HTMLElement | null, delay: number = mintSettings.delay.default, from: mintSide = mintSide.Top) : void {\n if (el) {\n let height = el.scrollHeight,\n width = el.scrollWidth,\n transition = el.style.transition;\n el.style.transition = '';\n requestAnimationFrame(() => {\n if (from === mintSide.Top || from === mintSide.Bottom) {\n el.style.height = `${height}px`;\n } else {\n el.style.width = `${width}px`;\n }\n \n el.style.transition = transition;\n requestAnimationFrame(() => {\n if (from === mintSide.Top || from === mintSide.Bottom) {\n el.style.height = '0';\n } else {\n el.style.width = '0';\n }\n });\n });\n setTimeout(() => {\n el.style.display = 'none';\n }, delay);\n }\n }\n\n /**\n * Copies the provided text to the clipboard\n * @param text - the text to copy\n * @returns - true if the text was successfully copied to the clipboard; else false\n */\n static copyText (text: string) : boolean {\n let textArea: HTMLTextAreaElement = document.createElement('textarea');\n\n if (!text || !textArea) {\n return false;\n }\n\n textArea.value = text;\n textArea.style.cssText = `\n position: fixed;\n top: 0;\n left: 0;\n transform: translate(-100%, -100%);\n opacity: 0;\n z-index: -1;\n `;\n\n document.body.appendChild(textArea);\n textArea.select();\n textArea.setSelectionRange(0, 99999);\n navigator.clipboard.writeText(textArea.value);\n document.body.removeChild(textArea);\n\n return true;\n }\n\n /**\n * Tests the validity of an email address\n * @see {@link https://stackoverflow.com/questions/201323/how-can-i-validate-an-email-address-using-a-regular-expression}\n * @param text - the string to test\n * @returns - true if the given string is an email address; false if not\n */\n static isEmail (text: string) : boolean {\n return null !== text.match(/(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9]))\\.){3}(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9])|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])/);\n }\n}\nexport default mintUtil;\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(427);\n"],"names":["root","factory","exports","module","define","amd","this","mintSide","mintSelectors","static","base","toLowerCase","startsWith","pre","prefix","replace","cssPrefix","id","hasControls","bool","hasExpanded","_b","ids","className","classGroup","classes","_c","el","focusables","querySelectorAll","focusable","document","filter","isFocusable","current","window","getComputedStyle","getPropertyValue","parentElement","lib","_a","disabled","hasLink","hasRouterLink","hasId","notTabbable","tabbable","neg","subMenuButtons","subMenu","header","logo","wrapper","mainContent","sides","top","right","bottom","left","srOnly","js","ready","fixed","open","enum_1","require","selectors_1","mintSettings","settings","newDelay","delayBase","delayStep","setDelay","delay","Object","keys","length","values","reduce","prev","next","assign","from","setFrom","setFixed","instant","fast","medFast","default","medSlow","slow","getElementById","getId","classList","remove","add","getClass","fixedClass","settings_1","__importDefault","mintUtil","decimal","body","getBoundingClientRect","width","innerWidth","func","timer","wait","arguments","undefined","e","clearTimeout","setTimeout","debounce","context","args","result","timeout","options","previous","later","leading","Date","getTime","apply","now","remaining","trailing","throttle","Top","style","display","requestAnimationFrame","Bottom","height","scrollHeight","scrollWidth","transition","text","textArea","createElement","value","cssText","appendChild","select","setSelectionRange","navigator","clipboard","writeText","removeChild","match","__webpack_module_cache__","__webpack_exports__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","call"],"sourceRoot":""}
1
+ {"version":3,"file":"js/util.min.js","mappings":"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","sources":["webpack://mint/webpack/universalModuleDefinition","webpack://mint/./src/ts/imports/enum.ts","webpack://mint/./src/ts/imports/util/selectors.ts","webpack://mint/./src/ts/imports/util/settings.ts","webpack://mint/./src/ts/util.ts","webpack://mint/webpack/bootstrap","webpack://mint/webpack/startup"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"mintUtil\"] = factory();\n\telse\n\t\troot[\"mintUtil\"] = factory();\n})(this, () => {\nreturn ","/**\n * Side Enum\n */\n export enum mintSide {\n Top,\n Right,\n Bottom,\n Left\n};\n","/**\n * CSS-selector helpers\n * @public\n */\nexport abstract class mintSelectors {\n /**\n * The library name that will be added as a prefix\n */\n static lib: string = 'mint';\n\n /**\n * The prefix built from the library name\n */\n static pre: string = `${this.lib}-`;\n\n /**\n * CSS-selector for disabled elements\n */\n static disabled: string = '[disabled]';\n\n /**\n * CSS-selector for elements with an aria-controls attribute\n */\n static hasControls: string = '[aria-controls]';\n\n /**\n * CSS-selector for elements with an aria-expanded attribute\n */\n static hasExpanded: string = '[aria-expanded]';\n\n /**\n * CSS-selector for elements with an href attribute\n */\n static hasLink: string = '[href]';\n\n /**\n * CSS-selector for elements with a routerLink attribute\n */\n static hasRouterLink: string = '[routerLink]';\n\n /**\n * CSS-selector for elements with an id attribute\n */\n static hasId: string = '[id]';\n\n /**\n * CSS-selector for elements that aren't tabbable (i.e. tabindex is negative)\n */\n static notTabbable: string = '[tabindex^=\"-\"]';\n\n /**\n * CSS-selector for elements that are tabbable (i.e. tabindex isn't negative)\n */\n static tabbable: string = `[tabindex]${this.neg(this.notTabbable)}`;\n\n /**\n * CSS-selector for elements that can receive focus\n */\n static focusable: string = `input${this.neg(this.disabled)}${this.neg(this.notTabbable)},\n select${this.neg(this.disabled)}${this.neg(this.notTabbable)},\n textarea${this.neg(this.disabled)}${this.neg(this.notTabbable)},\n button${this.neg(this.disabled)}${this.neg(this.notTabbable)},\n object${this.neg(this.disabled)}${this.neg(this.notTabbable)},\n a${this.hasLink}, a${this.hasRouterLink},\n area${this.hasLink},\n ${this.tabbable}`.replace(/\\s/g, '');\n\n /**\n * CSS-selector for submenu buttons\n */\n static subMenuButtons: string = `button${this.hasControls}`;\n\n /**\n * CSS-selector for submenus\n */\n static subMenu: string = `${this.subMenuButtons} + ul${this.hasId}`;\n\n /**\n * Frequently-used ids\n */\n static ids: {[key: string]: string | {[key: string]: string}} = {\n header: this.prefix('header'),\n logo: this.prefix('logo'),\n wrapper: this.prefix('wrapper'),\n mainContent: this.prefix('main-content')\n };\n\n /**\n * Classes\n */\n static classes: {[key: string]: string | {[key: string]: string}} = {\n sides: {\n top: this.prefix('top'),\n right: this.prefix('right'),\n bottom: this.prefix('bottom'),\n left: this.prefix('left')\n },\n srOnly: this.prefix('sr-only'),\n js: this.prefix('js'),\n ready: this.prefix('ready'),\n fixed: this.prefix('fixed'),\n open: this.prefix('open')\n };\n\n /**\n * Adds the library prefix to the beginning of the provided string\n * @param base - the string to be prefixed\n * @returns - the provided string prefixed with the library name\n */\n static prefix (base: string) : string {\n base = base.toLowerCase();\n return base.startsWith(this.pre) ? base : `${this.pre}${base}`;\n }\n\n /**\n * Adds two dashes to the beginning of the provided string\n * @param base - the string to be prefixed\n * @returns - the provided string prefixed with two dashes\n */\n static cssPrefix (base: string) : string {\n return `--${this.prefix(base.replace(/^-+/, ''))}`;\n }\n\n /**\n * Turns the provided string into a CSS variable call\n * @param base - the name of the CSS variable to call\n * @returns - the CSS variable call for the provided string\n */\n static cssVar (base: string) : string {\n return `var(${this.cssPrefix(base)})`;\n }\n\n /**\n * Negates the provided CSS selector\n * @param base - the CSS selector to negate\n * @returns - the negated CSS selector\n */\n static neg (base: string) : string {\n return `:not(${base})`;\n }\n\n /**\n * Generates a class CSS selector\n * @param base - the name of the class to generate\n * @returns - the generated CSS selector\n */\n static class (base: string) : string {\n return `.${this.prefix(base)}`;\n }\n\n /**\n * Generates an id CSS selector\n * @param base - the name of the id to generate\n * @returns - the generated CSS selector\n */\n static id (base: string) : string {\n return `#${this.prefix(base)}`;\n }\n\n /**\n * Generates an aria-controls CSS selector\n * @param id - the id of the controlled element\n * @returns - the generated CSS selector\n */\n static controls (id?: string | null) : string {\n return id ? `[aria-controls=\"${this.prefix(id)}\"]` : this.hasControls;\n }\n\n /**\n * Generates an aria-expanded CSS selector\n * @param bool - whether the element is expanded or not\n * @returns - the generated CSS selector\n */\n static expanded (bool?: boolean | null) : string {\n return typeof bool === 'boolean' ? `[aria-expanded=\"${bool}\"]` : this.hasExpanded;\n }\n\n /**\n * Returns the id of the requested element\n */\n static getId (id?: string) : string {\n return this.ids[id ?? -1] as string ?? '';\n }\n\n /**\n * Returns the class of the requested element\n */\n static getClass (className?: string, classGroup?: string) : string {\n if (classGroup) {\n let group: {[key: string]: string} = this.classes[classGroup] as {[key: string]: string};\n return group[className ?? -1] ?? '';\n }\n return this.classes[className ?? -1] as string ?? '';\n }\n\n /**\n * Returns a NodeList of HTMLElements within the given element that are focusable\n * @param el - the element whose focusable children will be returned\n * @returns - the elements within the given element that are focusable\n */\n static getFocusables (el?: HTMLElement) : HTMLElement[] {\n let focusables: HTMLElement[];\n if (el) {\n focusables = Array.from(el.querySelectorAll<HTMLElement>(this.focusable));\n } else {\n focusables = Array.from(document.querySelectorAll<HTMLElement>(this.focusable));\n }\n return focusables.filter((el: HTMLElement) => this.isFocusable(el));\n }\n\n /**\n * Returns true if an element is focusable and false if not,\n * based on styles (i.e. a parent has display: none;)\n * NOTE: Still need to determine what other styles may make an element un-focusable\n * @param el - the element\n * @returns - true if the element is focusable; false if not\n */\n static isFocusable (el: HTMLElement) : boolean {\n let current: HTMLElement | null = el;\n\n do {\n if (window.getComputedStyle(current).getPropertyValue('display').toLowerCase() === 'none') {\n return false;\n }\n current = current.parentElement;\n } while (current);\n return true;\n }\n}\nexport default mintSelectors;\n","/**\n * Imports\n */\nimport { mintSide } from '../enum';\nimport { mintSelectors } from './selectors';\n\n/**\n * Settings management\n * @public\n */\nexport abstract class mintSettings {\n /**\n * Value added to all delay variables\n */\n static delayBase: number = 0;\n\n /**\n * Value multiplied by delay variable index\n */\n static delayStep: number = 100;\n\n /**\n * Delay variables\n */\n static delay: {[key: string]: number} = {\n instant: this.delayBase + this.delayStep * 0,\n fast: this.delayBase + this.delayStep * 1,\n medFast: this.delayBase + this.delayStep * 2,\n default: this.delayBase + this.delayStep * 3,\n medSlow: this.delayBase + this.delayStep * 4,\n slow: this.delayBase + this.delayStep * 5\n };\n\n /**\n * Side of the window the mobile navbar enters from\n */\n static from?: mintSide;\n\n /**\n * Whether the navbar is fixed or not\n */\n static fixed?: boolean;\n\n /**\n * Update the provided settings variables\n * @param settings - Object of settings variables to update\n */\n static set (settings: {[key: string]: any}) : void {\n let newDelay: boolean = false;\n if (typeof settings.delayBase === 'number') {\n this.delayBase = settings.delayBase;\n newDelay = true;\n }\n if (typeof settings.delayStep === 'number') {\n this.delayStep = settings.delayStep;\n newDelay = true;\n }\n if (newDelay) {\n this.setDelay();\n }\n\n if (settings.delay && Object.keys(settings.delay).length) {\n if (Object.values(settings.delay).reduce((prev: any, next: any) => prev && typeof next === 'number', true)) {\n this.delay = {...this.delay, ...settings.delay};\n }\n }\n\n if (typeof settings.from === 'number') {\n this.setFrom(settings.from);\n }\n\n if (typeof settings.fixed === 'boolean') {\n this.setFixed(settings.fixed);\n }\n }\n\n /**\n * Updates the delay variables based on `this.delayBase` and `this.delayStep`\n */\n protected static setDelay () : void {\n this.delay = {\n instant: this.delayBase + this.delayStep * 0,\n fast: this.delayBase + this.delayStep * 1,\n medFast: this.delayBase + this.delayStep * 2,\n default: this.delayBase + this.delayStep * 3,\n medSlow: this.delayBase + this.delayStep * 4,\n slow: this.delayBase + this.delayStep * 5\n };\n }\n\n /**\n * Updates the direction the navbar enters from\n */\n protected static setFrom (from: mintSide) : void {\n if (this.from !== from) {\n this.from = from;\n let header: HTMLElement | null = document.getElementById(mintSelectors.getId('header'));\n header?.classList.remove(...Object.values(mintSelectors.classes.sides));\n header?.classList.add(mintSelectors.getClass(mintSide[this.from].toLowerCase(), 'sides'));\n }\n }\n\n /**\n * Updates whether or not the navbar is fixed\n */\n protected static setFixed (fixed: boolean) : void {\n if (this.fixed !== fixed) {\n this.fixed = fixed;\n let header: HTMLElement | null = document.getElementById(mintSelectors.getId('header')),\n fixedClass: string = mintSelectors.getClass('fixed');\n if (this.fixed) {\n header?.classList.add(fixedClass);\n } else {\n header?.classList.remove(fixedClass);\n }\n }\n }\n};\n\nexport default mintSettings;\n","/**\n * Imports\n */\nimport { mintSide } from './imports/enum';\nimport mintSettings from './imports/util/settings';\n\n/**\n * Utility functions\n * @public\n */\nexport abstract class mintUtil {\n /**\n * Returns the width of the window, including fractional pixels\n * @returns the width of the window\n */\n static windowWidth () : number {\n const decimal: number = document.body.getBoundingClientRect().width % 1;\n return window.innerWidth + decimal;\n }\n\n /**\n * Ensures that a function `func` is run only after not being called for `wait` milliseconds\n * @param func - the function to debounce\n * @param wait - the amount of time to wait before running the function\n * @returns - the debounced function\n */\n static debounce (func: Function, wait: number = mintSettings.delay.default) : Function {\n let timer: number;\n return function (e: any) {\n if (timer) {\n clearTimeout(timer);\n }\n timer = setTimeout(func, wait, e);\n }\n }\n\n /**\n * Ensures that a function `func` is run only after not being called for `wait` milliseconds\n * @param func - the function to debounce\n * @param wait - the amount of time to wait before running the function\n * @returns - the debounced function as an EventListener\n */\n static debounceEvent (func: Function, wait: number = mintSettings.delay.default) : EventListener {\n return mintUtil.debounce(func, wait) as EventListener;\n }\n\n /**\n * Ensures that a function `func` is called at most every `wait` milliseconds with optional leading and trailing calls\n * @param func - the function to throttle\n * @param wait - the amount of time between function calls\n * @param options - leading and trailing options: default = \\{ leading: true, trailing, true \\}\n * @returns - the throttled function\n */\n static throttle (func: Function,\n wait: number = mintSettings.delay.default,\n options?: {[key: string]: boolean}) : Function {\n let context: any, args: any, result: any,\n timeout: number, previous: number = 0,\n later: Function = function () {\n previous = options?.leading === false ? 0 : new Date().getTime();\n timeout = 0;\n result = func.apply(context, args);\n if (!timeout) {\n context = args = null;\n }\n },\n throttled: Function = function (this: any): any {\n let now: number = new Date().getTime();\n if (!previous && options?.leading === false) {\n previous = now;\n }\n let remaining: number = wait - now + previous;\n context = this;\n args = arguments;\n if (remaining <= 0 || remaining > wait) {\n if (timeout) {\n clearTimeout(timeout);\n timeout = 0;\n }\n previous = now;\n result = func.apply(context, args);\n if (!timeout) {\n context = args = null;\n }\n } else if (!timeout && options?.trailing !== false) {\n timeout = window.setTimeout(later, remaining);\n }\n return result;\n };\n\n return throttled;\n }\n\n /**\n * Ensures that a function `func` is called at most every `wait` milliseconds with optional leading and trailing calls\n * @param func - the function to throttle\n * @param wait - the amount of time between function calls\n * @param options - leading and trailing options: default = \\{ leading: true, trailing, true \\}\n * @returns - the throttled function as an EventListener\n */\n static throttleEvent (func: Function,\n wait: number = mintSettings.delay.default,\n options?: {[key: string]: boolean}) : EventListener {\n return mintUtil.throttle(func, wait, options) as EventListener;\n }\n\n /**\n * Sets the element's height to its `innerHeight`, then to `auto` after a delay\n * @param el - the element whose height will be set\n * @param delay - the amount of time in milliseconds that the show animation will be active\n * @param from - the side that the element is animating from\n */\n static show (el?: HTMLElement | null, delay: number = mintSettings.delay.default, from: mintSide = mintSide.Top) : void {\n if (el) {\n el.style.display = '';\n requestAnimationFrame(() => {\n if (from === mintSide.Top || from === mintSide.Bottom) {\n el.style.height = `${el.scrollHeight}px`;\n } else {\n el.style.width = `${el.scrollWidth}px`;\n }\n \n setTimeout(() => {\n if (from === mintSide.Top || from === mintSide.Bottom) {\n el.style.height = 'auto';\n } else {\n el.style.width = 'auto';\n }\n }, delay);\n });\n }\n }\n\n /**\n * Sets the element's height to 0\n * @param el - the element whose height will be set\n * @param delay - the amount of time in milliseconds that the show animation will be active\n * @param from - the side that the element is animating from\n */\n static hide (el?: HTMLElement | null, delay: number = mintSettings.delay.default, from: mintSide = mintSide.Top) : void {\n if (el) {\n let height = el.scrollHeight,\n width = el.scrollWidth,\n transition = el.style.transition;\n el.style.transition = '';\n requestAnimationFrame(() => {\n if (from === mintSide.Top || from === mintSide.Bottom) {\n el.style.height = `${height}px`;\n } else {\n el.style.width = `${width}px`;\n }\n \n el.style.transition = transition;\n requestAnimationFrame(() => {\n if (from === mintSide.Top || from === mintSide.Bottom) {\n el.style.height = '0';\n } else {\n el.style.width = '0';\n }\n });\n });\n setTimeout(() => {\n el.style.display = 'none';\n }, delay);\n }\n }\n\n /**\n * Copies the provided text to the clipboard\n * @param text - the text to copy\n * @returns - true if the text was successfully copied to the clipboard; else false\n */\n static copyText (text: string) : boolean {\n let textArea: HTMLTextAreaElement = document.createElement('textarea');\n\n if (!text || !textArea) {\n return false;\n }\n\n textArea.value = text;\n textArea.style.cssText = `\n position: fixed;\n top: 0;\n left: 0;\n transform: translate(-100%, -100%);\n opacity: 0;\n z-index: -1;\n `;\n\n document.body.appendChild(textArea);\n textArea.select();\n textArea.setSelectionRange(0, 99999);\n navigator.clipboard.writeText(textArea.value);\n document.body.removeChild(textArea);\n\n return true;\n }\n\n /**\n * Tests the validity of an email address\n * @see {@link https://stackoverflow.com/questions/201323/how-can-i-validate-an-email-address-using-a-regular-expression}\n * @param text - the string to test\n * @returns - true if the given string is an email address; false if not\n */\n static isEmail (text: string) : boolean {\n return null !== text.match(/(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9]))\\.){3}(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9])|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])/);\n }\n}\nexport default mintUtil;\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(427);\n"],"names":["root","factory","exports","module","define","amd","this","mintSide","mintSelectors","static","base","toLowerCase","startsWith","pre","prefix","replace","cssPrefix","id","hasControls","bool","hasExpanded","_b","ids","className","classGroup","classes","_c","el","focusables","Array","from","querySelectorAll","focusable","document","filter","isFocusable","current","window","getComputedStyle","getPropertyValue","parentElement","lib","_a","disabled","hasLink","hasRouterLink","hasId","notTabbable","tabbable","neg","subMenuButtons","subMenu","header","logo","wrapper","mainContent","sides","top","right","bottom","left","srOnly","js","ready","fixed","open","enum_1","require","selectors_1","mintSettings","settings","newDelay","delayBase","delayStep","setDelay","delay","Object","keys","length","values","reduce","prev","next","assign","setFrom","setFixed","instant","fast","medFast","default","medSlow","slow","getElementById","getId","classList","remove","add","getClass","fixedClass","settings_1","__importDefault","mintUtil","decimal","body","getBoundingClientRect","width","innerWidth","func","timer","wait","arguments","undefined","e","clearTimeout","setTimeout","debounce","context","args","result","timeout","options","previous","later","leading","Date","getTime","apply","now","remaining","trailing","throttle","Top","style","display","requestAnimationFrame","Bottom","height","scrollHeight","scrollWidth","transition","text","textArea","createElement","value","cssText","appendChild","select","setSelectionRange","navigator","clipboard","writeText","removeChild","match","__webpack_module_cache__","__webpack_exports__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","call"],"sourceRoot":""}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@appartmint/mint",
3
3
  "author": "App Art Mint LLC",
4
- "version": "0.12.17",
4
+ "version": "0.12.28",
5
5
  "license": "MIT",
6
6
  "description": "The front-end TS/SCSS framework of App Art Mint",
7
7
  "keywords": [
@@ -19,10 +19,10 @@
19
19
  "bugs": {
20
20
  "url": "https://github.com/App-Art-Mint/npm-mint/issues"
21
21
  },
22
- "main": "dist/js/index.min.js",
23
- "types": "dist/js/index.d.ts",
22
+ "main": "src/ts/index.ts",
23
+ "type": "module",
24
24
  "files": [
25
- "src/scss/**/*.scss",
25
+ "src/**/*.{ts,scss}",
26
26
  "dist/**/*.{css,js,d.ts,map}"
27
27
  ],
28
28
  "directories": {
@@ -44,35 +44,40 @@
44
44
  "webpack": "node_modules/@appartmint/config/dist/js/webpack.config.min.js"
45
45
  },
46
46
  "scripts": {
47
- "upgrade:config": "npm up -D @appartmint/config && mint-config",
47
+ "upgrade": "npm up -D @appartmint/config && mint-config",
48
48
  "prepare": "npm-run-all clean bundle",
49
- "bundle": "npm-run-all build build:**",
50
49
  "preversion": "npm i && npm run test",
51
50
  "version": "npm publish && git add -A",
52
51
  "postversion": "git push && git push --tags && npm run endversion --if-present",
53
- "clean": "rimraf $npm_package_config_dirs_dist $npm_package_config_dirs_doc",
52
+ "clean": "cross-var rimraf $npm_package_config_dirs_dist $npm_package_config_dirs_doc",
54
53
  "clear": "npm run clean",
55
- "build": "webpack --config $npm_package_config_webpack",
54
+ "bundle": "npm-run-all build build:**",
55
+ "build": "cross-var webpack --config $npm_package_config_webpack",
56
56
  "build:prod": "cross-env NODE_ENV=production npm run build",
57
57
  "build:index": "cross-env BUILD_MODE=index npm run build",
58
58
  "build:index:prod": "cross-env NODE_ENV=production BUILD_MODE=index npm run build",
59
59
  "build:config": "cross-env BUILD_MODE=config npm run build",
60
60
  "build:config:prod": "cross-env NODE_ENV=production BUILD_MODE=config npm run build",
61
61
  "build:tsdoc": "typedoc",
62
- "build:sassdoc": "sassdoc $npm_package_config_dirs_src/$npm_package_config_dirs_scss -p > $npm_package_config_dirs_doc/sassdoc.json",
63
- "serve": "webpack serve --config $npm_package_config_webpack",
62
+ "build:sassdoc": "cross-var sassdoc $npm_package_config_dirs_src/$npm_package_config_dirs_scss -p > $npm_package_config_dirs_doc/sassdoc.json",
63
+ "serve": "cross-var webpack serve --config $npm_package_config_webpack",
64
64
  "watch": "npm run build -- --watch",
65
- "test": "echo '\nRun tests here!\n'",
66
- "relink": "npm r -g @appartmint/mint && npm link"
65
+ "watch:prod": "cross-env NODE_ENV=production npm run watch",
66
+ "watch:tsdoc": "npm run build:tsdoc -- --watch",
67
+ "test": "echo-cli \"\\nRun tests here!\\n\"",
68
+ "relink": "npm r -g @appartmint/mint && npm link",
69
+ "upgrade:config": "npm up -D @appartmint/config && mint-config"
67
70
  },
68
71
  "devDependencies": {
69
- "@appartmint/config": "^0.6.5",
72
+ "@appartmint/config": "^0.7.0",
70
73
  "@babel/core": "^7.19.6",
71
74
  "@babel/preset-env": "^7.19.4",
72
75
  "babel-loader": "^9.0.1",
73
76
  "copy-webpack-plugin": "^11.0.0",
74
77
  "cross-env": "^7.0.3",
78
+ "cross-var": "^1.1.0",
75
79
  "css-loader": "^6.7.1",
80
+ "echo-cli": "^2.0.0",
76
81
  "jasmine-core": "^4.5.0",
77
82
  "karma": "^6.4.1",
78
83
  "karma-babel-preprocessor": "^8.0.2",
@@ -43,6 +43,7 @@
43
43
  bottom: -100%;
44
44
 
45
45
  &#{class(open)} {
46
+ top: unset;
46
47
  bottom: 0;
47
48
  }
48
49
  }
@@ -158,6 +159,18 @@
158
159
  }
159
160
  }
160
161
  }
162
+
163
+ &#{neg(class(expand))} {
164
+ #{$has-controls + neg(controls(wrapper))} {
165
+ display: none;
166
+
167
+ & + ul {
168
+ display: flex !important;
169
+ height: auto !important;
170
+ margin-bottom: 1rem !important;
171
+ }
172
+ }
173
+ }
161
174
  }
162
175
 
163
176
  &::before {
@@ -209,13 +222,14 @@
209
222
  #{id(navbar)} {
210
223
  display: flex;
211
224
  align-items: center;
212
- flex-direction: row;
225
+ justify-content: space-between;
213
226
  height: 100%;
214
227
  }
215
228
 
216
229
  #{class(logo)} {
217
- text-decoration: none;
230
+ display: flex;
218
231
  width: auto;
232
+ text-decoration: none;
219
233
 
220
234
  img {
221
235
  max-width: css-var(header-height);
@@ -234,6 +248,7 @@
234
248
  z-index: 1000;
235
249
 
236
250
  @include states(hover) {
251
+ background: css-var($header-link-back-hover);
237
252
  #{class(menu-icon)} {
238
253
 
239
254
  &,
@@ -306,7 +321,8 @@
306
321
  }
307
322
 
308
323
  nav {
309
- height: 100%;
324
+ height: calc(100vh - css-var(header-height));
325
+ height: calc(100dvh - css-var(header-height));
310
326
  background: css-var(back);
311
327
  overflow: auto;
312
328
  background-repeat: repeat;
@@ -322,10 +338,14 @@
322
338
  }
323
339
 
324
340
  &>ul {
325
- @include break(xl) {
341
+ height: 100%;
342
+ overflow: auto;
343
+
344
+ @include break(md) {
326
345
  display: flex;
327
346
  flex-direction: row;
328
347
  flex-wrap: wrap;
348
+ align-items: center;
329
349
  justify-content: space-evenly;
330
350
  width: 100%;
331
351
  }
@@ -338,13 +358,19 @@
338
358
  font-size: 3em;
339
359
  padding: 0.5rem;
340
360
  text-align: center;
361
+ border-radius: $header-link-border-radius;
341
362
 
342
363
  @include break(xs) {
343
364
  font-size: 4em;
365
+ padding: 1rem 1.5rem;
366
+
367
+ i {
368
+ font-size: 0.75em;
369
+ }
344
370
  }
345
371
 
346
372
  @include states(hover, focus) {
347
- background-color: css-var(shadow-5);
373
+ background-color: css-var($header-link-back-hover);
348
374
  color: css-var($header-link-fore-hover);
349
375
  }
350
376
 
@@ -369,7 +395,6 @@
369
395
  #{class(buttons)} {
370
396
  flex-wrap: nowrap;
371
397
  justify-content: flex-end;
372
- width: 100%;
373
398
 
374
399
  a,
375
400
  button {
@@ -95,11 +95,11 @@ a {
95
95
 
96
96
  i {
97
97
  &:first-child {
98
- margin-right: 0.25rem;
98
+ margin-right: 0.25em;
99
99
  }
100
100
 
101
101
  &:last-child {
102
- margin-left: 0.25rem;
102
+ margin-left: 0.25em;
103
103
  }
104
104
  }
105
105
  }
@@ -23,6 +23,7 @@
23
23
  background-image: url($texture-bg);
24
24
  background-size: $texture-bg-size;
25
25
  background-position: $texture-bg-position;
26
+ //z-index: 0;
26
27
  @if ($texture-blend) {
27
28
  mix-blend-mode: $texture-blend;
28
29
  }
@@ -85,6 +85,7 @@ $border-radius: 1rem !default;
85
85
  /// Header
86
86
  $header-height: 4rem !default;
87
87
  $header-break: sm !default;
88
+ $header-link-border-radius: $border-radius !default;
88
89
 
89
90
  /// Default Shadows
90
91
  $shadow-color: glow-2 !default;
@@ -164,6 +165,9 @@ $header-back: $header-back-default !default;
164
165
  $header-fore-default: fore;
165
166
  $header-fore: $header-fore-default !default;
166
167
 
168
+ $header-link-back-hover-default: shadow-5;
169
+ $header-link-back-hover: $header-link-back-hover-default !default;
170
+
167
171
  $header-link-fore-default: fore;
168
172
  $header-link-fore: $header-link-fore-default !default;
169
173
 
@@ -180,4 +184,5 @@ $header-link-fore-hover: $header-link-fore-hover-default !default;
180
184
  /// Header
181
185
  $header-back: if($header-back != $header-back-default, $header-back, brand-4);
182
186
  $header-fore: if($header-fore != $header-fore-default, $header-fore, back);
187
+ $header-link-back-hover: if($header-link-back-hover != $header-link-back-hover-default, $header-link-back-hover, glow-5);
183
188
  }