@appartmint/mint 5.0.3 → 5.0.4
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.
- package/dist/imports/abstract/attaches-events.cjs.js +1 -0
- package/dist/{js/imports → imports}/abstract/attaches-events.d.ts +0 -4
- package/dist/imports/abstract/attaches-events.esm.js +23 -0
- package/dist/imports/abstract/index.cjs.js +1 -0
- package/dist/{js/imports → imports}/abstract/index.d.ts +0 -1
- package/dist/imports/abstract/index.esm.js +2 -0
- package/dist/imports/components/grid.cjs.js +1 -0
- package/dist/imports/components/grid.d.ts +9 -0
- package/dist/imports/components/grid.esm.js +7 -0
- package/dist/imports/components/header.cjs.js +1 -0
- package/dist/{js/imports → imports}/components/header.d.ts +12 -13
- package/dist/imports/components/header.esm.js +31 -0
- package/dist/imports/components/index.cjs.js +1 -0
- package/dist/{js/imports → imports}/components/index.d.ts +0 -1
- package/dist/imports/components/index.esm.js +5 -0
- package/dist/imports/components/menu.cjs.js +1 -0
- package/dist/{js/imports → imports}/components/menu.d.ts +9 -7
- package/dist/imports/components/menu.esm.js +119 -0
- package/dist/imports/components/panel.cjs.js +1 -0
- package/dist/{js/imports → imports}/components/panel.d.ts +15 -4
- package/dist/imports/components/panel.esm.js +88 -0
- package/dist/imports/enums/index.cjs.js +1 -0
- package/dist/{js/imports → imports}/enums/index.d.ts +0 -1
- package/dist/imports/enums/index.esm.js +2 -0
- package/dist/imports/enums/side.cjs.js +1 -0
- package/dist/{js/imports → imports}/enums/side.d.ts +0 -1
- package/dist/imports/enums/side.esm.js +6 -0
- package/dist/imports/index.cjs.js +1 -0
- package/dist/{js/imports → imports}/index.d.ts +0 -1
- package/dist/imports/index.esm.js +23 -0
- package/dist/imports/models/color.cjs.js +1 -0
- package/dist/{js/imports → imports}/models/color.d.ts +1 -4
- package/dist/imports/models/color.esm.js +48 -0
- package/dist/imports/models/event.cjs.js +1 -0
- package/dist/{js/imports → imports}/models/event.d.ts +0 -1
- package/dist/imports/models/event.esm.js +0 -0
- package/dist/imports/models/file.cjs.js +1 -0
- package/dist/{js/imports → imports}/models/file.d.ts +2 -7
- package/dist/imports/models/file.esm.js +0 -0
- package/dist/imports/models/index.cjs.js +1 -0
- package/dist/{js/imports → imports}/models/index.d.ts +0 -1
- package/dist/imports/models/index.esm.js +3 -0
- package/dist/imports/models/item.cjs.js +1 -0
- package/dist/{js/imports → imports}/models/item.d.ts +5 -14
- package/dist/imports/models/item.esm.js +45 -0
- package/dist/imports/models/minify.cjs.js +1 -0
- package/dist/{js/imports → imports}/models/minify.d.ts +0 -1
- package/dist/imports/models/minify.esm.js +0 -0
- package/dist/imports/models/page.cjs.js +1 -0
- package/dist/{js/imports → imports}/models/page.d.ts +1 -5
- package/dist/imports/models/page.esm.js +0 -0
- package/dist/imports/models/primitive.cjs.js +1 -0
- package/dist/{js/imports → imports}/models/primitive.d.ts +0 -1
- package/dist/imports/models/primitive.esm.js +0 -0
- package/dist/imports/models/recaptcha.cjs.js +1 -0
- package/dist/{js/imports → imports}/models/recaptcha.d.ts +0 -1
- package/dist/imports/models/recaptcha.esm.js +0 -0
- package/dist/imports/util/async.cjs.js +1 -0
- package/dist/imports/util/async.d.ts +10 -0
- package/dist/imports/util/async.esm.js +6 -0
- package/dist/imports/util/display.cjs.js +1 -0
- package/dist/{js/imports → imports}/util/display.d.ts +4 -8
- package/dist/imports/util/display.esm.js +26 -0
- package/dist/imports/util/event.cjs.js +1 -0
- package/dist/{js/imports → imports}/util/event.d.ts +8 -11
- package/dist/imports/util/event.esm.js +31 -0
- package/dist/imports/util/icon.cjs.js +1 -0
- package/dist/imports/util/icon.d.ts +23 -0
- package/dist/imports/util/icon.esm.js +33 -0
- package/dist/imports/util/index.cjs.js +1 -0
- package/dist/{js/imports → imports}/util/index.d.ts +0 -1
- package/dist/imports/util/index.esm.js +13 -0
- package/dist/imports/util/list.cjs.js +1 -0
- package/dist/{js/imports → imports}/util/list.d.ts +5 -6
- package/dist/imports/util/list.esm.js +21 -0
- package/dist/imports/util/math.cjs.js +1 -0
- package/dist/{js/imports → imports}/util/math.d.ts +7 -8
- package/dist/imports/util/math.esm.js +16 -0
- package/dist/imports/util/object.cjs.js +1 -0
- package/dist/{js/imports → imports}/util/object.d.ts +16 -17
- package/dist/imports/util/object.esm.js +115 -0
- package/dist/imports/util/scroll.cjs.js +1 -0
- package/dist/{js/imports → imports}/util/scroll.d.ts +6 -7
- package/dist/imports/util/scroll.esm.js +26 -0
- package/dist/imports/util/selectors.cjs.js +8 -0
- package/dist/{js/imports → imports}/util/selectors.d.ts +26 -69
- package/dist/imports/util/selectors.esm.js +63 -0
- package/dist/imports/util/settings.cjs.js +1 -0
- package/dist/imports/util/settings.d.ts +38 -0
- package/dist/imports/util/settings.esm.js +43 -0
- package/dist/imports/util/text.cjs.js +8 -0
- package/dist/{js/imports → imports}/util/text.d.ts +13 -14
- package/dist/imports/util/text.esm.js +75 -0
- package/dist/imports/util/window.cjs.js +1 -0
- package/dist/{js/imports → imports}/util/window.d.ts +4 -5
- package/dist/imports/util/window.esm.js +13 -0
- package/dist/index.cjs.js +1 -0
- package/dist/{js/index.d.ts → index.d.ts} +0 -1
- package/dist/index.esm.js +22 -0
- package/dist/{css/mint.css → mint.css} +1 -4
- package/dist/mint.css.map +1 -0
- package/dist/mint.min.css +1 -0
- package/dist/mint.min.css.map +1 -0
- package/dist/noscript.css +5 -0
- package/dist/noscript.css.map +1 -0
- package/dist/noscript.min.css +1 -0
- package/dist/noscript.min.css.map +1 -0
- package/package.json +76 -67
- package/src/scss/imports/util/_vars.scss +12 -12
- package/dist/css/mint.css.map +0 -1
- package/dist/css/mint.min.css +0 -3
- package/dist/css/mint.min.css.map +0 -1
- package/dist/css/noscript.css +0 -8
- package/dist/css/noscript.css.map +0 -1
- package/dist/css/noscript.min.css +0 -3
- package/dist/css/noscript.min.css.map +0 -1
- package/dist/js/imports/abstract/attaches-events.d.ts.map +0 -1
- package/dist/js/imports/abstract/index.d.ts.map +0 -1
- package/dist/js/imports/components/grid.d.ts +0 -10
- package/dist/js/imports/components/grid.d.ts.map +0 -1
- package/dist/js/imports/components/header.d.ts.map +0 -1
- package/dist/js/imports/components/index.d.ts.map +0 -1
- package/dist/js/imports/components/menu.d.ts.map +0 -1
- package/dist/js/imports/components/panel.d.ts.map +0 -1
- package/dist/js/imports/enums/index.d.ts.map +0 -1
- package/dist/js/imports/enums/side.d.ts.map +0 -1
- package/dist/js/imports/index.d.ts.map +0 -1
- package/dist/js/imports/models/color.d.ts.map +0 -1
- package/dist/js/imports/models/event.d.ts.map +0 -1
- package/dist/js/imports/models/file.d.ts.map +0 -1
- package/dist/js/imports/models/index.d.ts.map +0 -1
- package/dist/js/imports/models/item.d.ts.map +0 -1
- package/dist/js/imports/models/minify.d.ts.map +0 -1
- package/dist/js/imports/models/page.d.ts.map +0 -1
- package/dist/js/imports/models/primitive.d.ts.map +0 -1
- package/dist/js/imports/models/recaptcha.d.ts.map +0 -1
- package/dist/js/imports/util/async.d.ts +0 -11
- package/dist/js/imports/util/async.d.ts.map +0 -1
- package/dist/js/imports/util/display.d.ts.map +0 -1
- package/dist/js/imports/util/event.d.ts.map +0 -1
- package/dist/js/imports/util/icon.d.ts +0 -29
- package/dist/js/imports/util/icon.d.ts.map +0 -1
- package/dist/js/imports/util/index.d.ts.map +0 -1
- package/dist/js/imports/util/list.d.ts.map +0 -1
- package/dist/js/imports/util/math.d.ts.map +0 -1
- package/dist/js/imports/util/object.d.ts.map +0 -1
- package/dist/js/imports/util/scroll.d.ts.map +0 -1
- package/dist/js/imports/util/selectors.d.ts.map +0 -1
- package/dist/js/imports/util/settings.d.ts +0 -39
- package/dist/js/imports/util/settings.d.ts.map +0 -1
- package/dist/js/imports/util/text.d.ts.map +0 -1
- package/dist/js/imports/util/window.d.ts.map +0 -1
- package/dist/js/index.d.ts.map +0 -1
- package/dist/js/index.js +0 -2455
- package/dist/js/index.js.map +0 -1
- package/dist/js/index.min.js +0 -2
- package/dist/js/index.min.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=class{events=[];attachEvent(e,t,n){if(e){let r=this.events.find(t=>t.el===e);r?(r.handlers.push(n),r.events.push(t)):this.events.push({el:e,handlers:[n],events:[t]}),e.addEventListener(t,n)}}detachEvents(){this.events.forEach(e=>{e.handlers.forEach((t,n)=>{e.el?.removeEventListener(e.events[n],t)})}),this.events=[]}};exports.MintAttachesEvents=e;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
//#region src/ts/imports/abstract/attaches-events.ts
|
|
2
|
+
var e = class {
|
|
3
|
+
events = [];
|
|
4
|
+
attachEvent(e, t, n) {
|
|
5
|
+
if (e) {
|
|
6
|
+
let r = this.events.find((t) => t.el === e);
|
|
7
|
+
r ? (r.handlers.push(n), r.events.push(t)) : this.events.push({
|
|
8
|
+
el: e,
|
|
9
|
+
handlers: [n],
|
|
10
|
+
events: [t]
|
|
11
|
+
}), e.addEventListener(t, n);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
detachEvents() {
|
|
15
|
+
this.events.forEach((e) => {
|
|
16
|
+
e.handlers.forEach((t, n) => {
|
|
17
|
+
e.el?.removeEventListener(e.events[n], t);
|
|
18
|
+
});
|
|
19
|
+
}), this.events = [];
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
//#endregion
|
|
23
|
+
export { e as MintAttachesEvents };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./attaches-events.cjs.js");exports.MintAttachesEvents=e.MintAttachesEvents;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../util/math.cjs.js");var t={gridNum(t){return e.MintMath.clamp(t,1,4)}};exports.MintGrid=t;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./panel.cjs.js"),t=require("./menu.cjs.js");var n=class{settings={id:`mint-menu`,wrapperId:`mint-wrapper`,title:`menu`,fixed:!0};el={};panel;menu;constructor(n){this.settings={...this.settings,...n},this.panel=new e.MintPanel(this.settings),this.menu=new t.MintMenu(this.settings),this.attachElements(),this.addClasses()}detachEvents(){this.panel?.detachEvents(),this.menu?.detachEvents()}attachElements(){this.el.body=document.querySelector(`body`)}addClasses(){this.settings.fixed&&this.el.body?.classList.add(`mint-fixed`)}};exports.MintHeader=n;
|
|
@@ -1,8 +1,14 @@
|
|
|
1
|
+
import { MintPanel } from './panel';
|
|
2
|
+
import { MintMenu } from './menu';
|
|
1
3
|
/**
|
|
2
|
-
*
|
|
4
|
+
* Header settings
|
|
3
5
|
*/
|
|
4
|
-
|
|
5
|
-
|
|
6
|
+
export interface MintHeaderSettings {
|
|
7
|
+
id: string;
|
|
8
|
+
wrapperId: string;
|
|
9
|
+
title: string;
|
|
10
|
+
fixed: boolean;
|
|
11
|
+
}
|
|
6
12
|
/**
|
|
7
13
|
* Main header functionality
|
|
8
14
|
* @public
|
|
@@ -11,15 +17,11 @@ export declare class MintHeader {
|
|
|
11
17
|
/**
|
|
12
18
|
* Navbar settings
|
|
13
19
|
*/
|
|
14
|
-
settings:
|
|
15
|
-
[key: string]: any;
|
|
16
|
-
};
|
|
20
|
+
settings: MintHeaderSettings;
|
|
17
21
|
/**
|
|
18
22
|
* Frequently-referenced elements
|
|
19
23
|
*/
|
|
20
|
-
el:
|
|
21
|
-
[key: string]: HTMLElement | null;
|
|
22
|
-
};
|
|
24
|
+
el: Record<string, HTMLElement | null>;
|
|
23
25
|
/**
|
|
24
26
|
* Navigation functionality
|
|
25
27
|
*/
|
|
@@ -28,9 +30,7 @@ export declare class MintHeader {
|
|
|
28
30
|
/**
|
|
29
31
|
* Initializes and closes the menu
|
|
30
32
|
*/
|
|
31
|
-
constructor(settings?:
|
|
32
|
-
[key: string]: any;
|
|
33
|
-
});
|
|
33
|
+
constructor(settings?: Partial<MintHeaderSettings>);
|
|
34
34
|
/**
|
|
35
35
|
* Detach events
|
|
36
36
|
*/
|
|
@@ -44,4 +44,3 @@ export declare class MintHeader {
|
|
|
44
44
|
*/
|
|
45
45
|
addClasses(): void;
|
|
46
46
|
}
|
|
47
|
-
//# sourceMappingURL=header.d.ts.map
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { MintPanel as e } from "./panel.esm.js";
|
|
2
|
+
import { MintMenu as t } from "./menu.esm.js";
|
|
3
|
+
//#region src/ts/imports/components/header.ts
|
|
4
|
+
var n = class {
|
|
5
|
+
settings = {
|
|
6
|
+
id: "mint-menu",
|
|
7
|
+
wrapperId: "mint-wrapper",
|
|
8
|
+
title: "menu",
|
|
9
|
+
fixed: !0
|
|
10
|
+
};
|
|
11
|
+
el = {};
|
|
12
|
+
panel;
|
|
13
|
+
menu;
|
|
14
|
+
constructor(n) {
|
|
15
|
+
this.settings = {
|
|
16
|
+
...this.settings,
|
|
17
|
+
...n
|
|
18
|
+
}, this.panel = new e(this.settings), this.menu = new t(this.settings), this.attachElements(), this.addClasses();
|
|
19
|
+
}
|
|
20
|
+
detachEvents() {
|
|
21
|
+
this.panel?.detachEvents(), this.menu?.detachEvents();
|
|
22
|
+
}
|
|
23
|
+
attachElements() {
|
|
24
|
+
this.el.body = document.querySelector("body");
|
|
25
|
+
}
|
|
26
|
+
addClasses() {
|
|
27
|
+
this.settings.fixed && this.el.body?.classList.add("mint-fixed");
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
//#endregion
|
|
31
|
+
export { n as MintHeader };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./grid.cjs.js"),t=require("./panel.cjs.js"),n=require("./menu.cjs.js"),r=require("./header.cjs.js");exports.MintGrid=e.MintGrid,exports.MintHeader=r.MintHeader,exports.MintMenu=n.MintMenu,exports.MintPanel=t.MintPanel;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { MintGrid as e } from "./grid.esm.js";
|
|
2
|
+
import { MintPanel as t } from "./panel.esm.js";
|
|
3
|
+
import { MintMenu as n } from "./menu.esm.js";
|
|
4
|
+
import { MintHeader as r } from "./header.esm.js";
|
|
5
|
+
export { e as MintGrid, r as MintHeader, n as MintMenu, t as MintPanel };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../abstract/attaches-events.cjs.js"),t=require("../util/settings.cjs.js"),n=require("../util/display.cjs.js"),r=require("../util/event.cjs.js"),i=require("../util/selectors.cjs.js");require("../util/index.cjs.js");var a=class extends e.MintAttachesEvents{settings={};el={};constructor(e){if(super(),this.settings={...this.settings,...e},!this.settings.wrapperId)throw Error(`Wrapper ID is required`);this.attachElements(),this.attachEvents(),requestAnimationFrame(()=>{this.closeAllMenus()})}attachElements(){let{wrapperId:e}=this.settings;this.el.wrapper=e?document.getElementById(e):null}attachEvents(){this.attachEvent(window,`scroll`,r.MintEvent.throttleEvent(this.eHandleScroll.bind(this),t.MintSettings.delay.default,{trailing:!1})),(this.el.wrapper?.querySelectorAll(i.MintSelectors.focusable))?.forEach(e=>{this.attachEvent(e,`keydown`,r.MintEvent.throttleEvent(this.eHandleKeypress.bind(this)))}),(this.el.wrapper?.querySelectorAll(i.MintSelectors.controls()))?.forEach(e=>{this.attachEvent(e,`click`,r.MintEvent.throttleEvent(this.eToggleMenu.bind(this),t.MintSettings.delay.slow,{trailing:!1}))})}setMenu(e,t=!1){let r=t?`true`:`false`,i=e?.nextElementSibling;e&&i&&(e.setAttribute(`aria-expanded`,r),t?n.MintDisplay.show(i):(n.MintDisplay.hide(i),this.closeSubMenus(e)))}toggleMenu(e){this.setMenu(e,e?.getAttribute(`aria-expanded`)?.toLowerCase()!==`true`)}closeSubMenus(e){let t=e?.nextElementSibling;t&&t.querySelectorAll(i.MintSelectors.subMenuButtons).forEach(e=>{e.parentElement?.parentElement===t&&this.setMenu(e)})}closeSiblingMenus(e){((e?.parentElement)?.parentElement?.querySelectorAll(i.MintSelectors.subMenuButtons))?.forEach(t=>{t!==e&&this.setMenu(t)})}closeAllMenus(){(this.el.wrapper?.querySelectorAll(i.MintSelectors.subMenuButtons))?.forEach(e=>{this.setMenu(e)})}openClosestMenu(){let e=document.activeElement,t=e?.nextElementSibling,n=e?.getAttribute(`aria-expanded`)?.toLowerCase()===`true`;e?.getAttribute(`aria-controls`)===this.settings.wrapperId&&(t=this.el.wrapper),e?.getAttribute(`aria-controls`)&&t&&!n&&(e.click(),t.querySelector(i.MintSelectors.focusable)?.focus())}closeClosestMenu(){let e=document.activeElement,t=e?.closest(i.MintSelectors.subMenu)?.previousElementSibling;e?.getAttribute(`aria-controls`)&&e.getAttribute(`aria-expanded`)?.toLowerCase()===`true`&&(t=e),t?.getAttribute(`aria-expanded`)?.toLowerCase()===`true`&&(t.click(),t.focus())}toggleClosestMenu(){document.activeElement?.getAttribute(`aria-expanded`)?.toLowerCase()===`true`?this.closeClosestMenu():this.openClosestMenu()}eHandleScroll(){this.closeAllMenus()}eHandleButtonKeypress(e){let t=e.target,n=t?.closest(`li`);switch(e.key.toLowerCase()){case`escape`:n?.classList.contains(`mint-open`)&&this.setMenu(n);break;case`arrowleft`:this.closeClosestMenu();break;case`arrowright`:this.openClosestMenu();break;case`enter`:case`space`:t?.click();break}}eHandleLinkKeypress(e){let t=e.target;switch(e.key.toLowerCase()){case`escape`:case`arrowleft`:this.closeClosestMenu();break;case`arrowright`:this.openClosestMenu();break;case`enter`:case`space`:t?.click();break}}eHandleKeypress(e){if(e instanceof KeyboardEvent)switch(e.key.toLowerCase()!==`tab`&&e.preventDefault(),e.target?.tagName.toLowerCase()){case`a`:this.eHandleLinkKeypress(e);break;case`button`:this.eHandleButtonKeypress(e);break}}eToggleMenu(e){if(!(e instanceof MouseEvent))return;let t=e.target;this.closeSiblingMenus(t),this.toggleMenu(t)}};exports.MintMenu=a;
|
|
@@ -1,7 +1,10 @@
|
|
|
1
|
+
import { MintAttachesEvents } from '../abstract';
|
|
1
2
|
/**
|
|
2
|
-
*
|
|
3
|
+
* Menu settings
|
|
3
4
|
*/
|
|
4
|
-
|
|
5
|
+
export interface MintMenuSettings {
|
|
6
|
+
wrapperId: string;
|
|
7
|
+
}
|
|
5
8
|
/**
|
|
6
9
|
* Menu (dropdown) functionality
|
|
7
10
|
* @public
|
|
@@ -10,7 +13,7 @@ export declare class MintMenu extends MintAttachesEvents {
|
|
|
10
13
|
/**
|
|
11
14
|
* Tray settings
|
|
12
15
|
*/
|
|
13
|
-
settings:
|
|
16
|
+
settings: Partial<MintMenuSettings>;
|
|
14
17
|
/**
|
|
15
18
|
* Frequently-referenced elements
|
|
16
19
|
*/
|
|
@@ -18,7 +21,7 @@ export declare class MintMenu extends MintAttachesEvents {
|
|
|
18
21
|
/**
|
|
19
22
|
* Initializes and closes the tray
|
|
20
23
|
*/
|
|
21
|
-
constructor(settings?:
|
|
24
|
+
constructor(settings?: Partial<MintMenuSettings>);
|
|
22
25
|
/**
|
|
23
26
|
* Adds elements to {@link el | `this.el`}
|
|
24
27
|
*/
|
|
@@ -82,11 +85,10 @@ export declare class MintMenu extends MintAttachesEvents {
|
|
|
82
85
|
* Handles keypresses on the menu
|
|
83
86
|
* @param e - Keyboard event
|
|
84
87
|
*/
|
|
85
|
-
eHandleKeypress(e:
|
|
88
|
+
eHandleKeypress(e: Event): void;
|
|
86
89
|
/**
|
|
87
90
|
* Toggles the clicked submenu
|
|
88
91
|
* @param e - Mouse event
|
|
89
92
|
*/
|
|
90
|
-
eToggleMenu(e:
|
|
93
|
+
eToggleMenu(e: Event): void;
|
|
91
94
|
}
|
|
92
|
-
//# sourceMappingURL=menu.d.ts.map
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import { MintAttachesEvents as e } from "../abstract/attaches-events.esm.js";
|
|
2
|
+
import { MintSettings as t } from "../util/settings.esm.js";
|
|
3
|
+
import { MintDisplay as n } from "../util/display.esm.js";
|
|
4
|
+
import { MintEvent as r } from "../util/event.esm.js";
|
|
5
|
+
import { MintSelectors as i } from "../util/selectors.esm.js";
|
|
6
|
+
import "../util/index.esm.js";
|
|
7
|
+
//#region src/ts/imports/components/menu.ts
|
|
8
|
+
var a = class extends e {
|
|
9
|
+
settings = {};
|
|
10
|
+
el = {};
|
|
11
|
+
constructor(e) {
|
|
12
|
+
if (super(), this.settings = {
|
|
13
|
+
...this.settings,
|
|
14
|
+
...e
|
|
15
|
+
}, !this.settings.wrapperId) throw Error("Wrapper ID is required");
|
|
16
|
+
this.attachElements(), this.attachEvents(), requestAnimationFrame(() => {
|
|
17
|
+
this.closeAllMenus();
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
attachElements() {
|
|
21
|
+
let { wrapperId: e } = this.settings;
|
|
22
|
+
this.el.wrapper = e ? document.getElementById(e) : null;
|
|
23
|
+
}
|
|
24
|
+
attachEvents() {
|
|
25
|
+
this.attachEvent(window, "scroll", r.throttleEvent(this.eHandleScroll.bind(this), t.delay.default, { trailing: !1 })), (this.el.wrapper?.querySelectorAll(i.focusable))?.forEach((e) => {
|
|
26
|
+
this.attachEvent(e, "keydown", r.throttleEvent(this.eHandleKeypress.bind(this)));
|
|
27
|
+
}), (this.el.wrapper?.querySelectorAll(i.controls()))?.forEach((e) => {
|
|
28
|
+
this.attachEvent(e, "click", r.throttleEvent(this.eToggleMenu.bind(this), t.delay.slow, { trailing: !1 }));
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
setMenu(e, t = !1) {
|
|
32
|
+
let r = t ? "true" : "false", i = e?.nextElementSibling;
|
|
33
|
+
e && i && (e.setAttribute("aria-expanded", r), t ? n.show(i) : (n.hide(i), this.closeSubMenus(e)));
|
|
34
|
+
}
|
|
35
|
+
toggleMenu(e) {
|
|
36
|
+
this.setMenu(e, e?.getAttribute("aria-expanded")?.toLowerCase() !== "true");
|
|
37
|
+
}
|
|
38
|
+
closeSubMenus(e) {
|
|
39
|
+
let t = e?.nextElementSibling;
|
|
40
|
+
t && t.querySelectorAll(i.subMenuButtons).forEach((e) => {
|
|
41
|
+
e.parentElement?.parentElement === t && this.setMenu(e);
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
closeSiblingMenus(e) {
|
|
45
|
+
((e?.parentElement)?.parentElement?.querySelectorAll(i.subMenuButtons))?.forEach((t) => {
|
|
46
|
+
t !== e && this.setMenu(t);
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
closeAllMenus() {
|
|
50
|
+
(this.el.wrapper?.querySelectorAll(i.subMenuButtons))?.forEach((e) => {
|
|
51
|
+
this.setMenu(e);
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
openClosestMenu() {
|
|
55
|
+
let e = document.activeElement, t = e?.nextElementSibling, n = e?.getAttribute("aria-expanded")?.toLowerCase() === "true";
|
|
56
|
+
e?.getAttribute("aria-controls") === this.settings.wrapperId && (t = this.el.wrapper), e?.getAttribute("aria-controls") && t && !n && (e.click(), t.querySelector(i.focusable)?.focus());
|
|
57
|
+
}
|
|
58
|
+
closeClosestMenu() {
|
|
59
|
+
let e = document.activeElement, t = e?.closest(i.subMenu)?.previousElementSibling;
|
|
60
|
+
e?.getAttribute("aria-controls") && e.getAttribute("aria-expanded")?.toLowerCase() === "true" && (t = e), t?.getAttribute("aria-expanded")?.toLowerCase() === "true" && (t.click(), t.focus());
|
|
61
|
+
}
|
|
62
|
+
toggleClosestMenu() {
|
|
63
|
+
document.activeElement?.getAttribute("aria-expanded")?.toLowerCase() === "true" ? this.closeClosestMenu() : this.openClosestMenu();
|
|
64
|
+
}
|
|
65
|
+
eHandleScroll() {
|
|
66
|
+
this.closeAllMenus();
|
|
67
|
+
}
|
|
68
|
+
eHandleButtonKeypress(e) {
|
|
69
|
+
let t = e.target, n = t?.closest("li");
|
|
70
|
+
switch (e.key.toLowerCase()) {
|
|
71
|
+
case "escape":
|
|
72
|
+
n?.classList.contains("mint-open") && this.setMenu(n);
|
|
73
|
+
break;
|
|
74
|
+
case "arrowleft":
|
|
75
|
+
this.closeClosestMenu();
|
|
76
|
+
break;
|
|
77
|
+
case "arrowright":
|
|
78
|
+
this.openClosestMenu();
|
|
79
|
+
break;
|
|
80
|
+
case "enter":
|
|
81
|
+
case "space":
|
|
82
|
+
t?.click();
|
|
83
|
+
break;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
eHandleLinkKeypress(e) {
|
|
87
|
+
let t = e.target;
|
|
88
|
+
switch (e.key.toLowerCase()) {
|
|
89
|
+
case "escape":
|
|
90
|
+
case "arrowleft":
|
|
91
|
+
this.closeClosestMenu();
|
|
92
|
+
break;
|
|
93
|
+
case "arrowright":
|
|
94
|
+
this.openClosestMenu();
|
|
95
|
+
break;
|
|
96
|
+
case "enter":
|
|
97
|
+
case "space":
|
|
98
|
+
t?.click();
|
|
99
|
+
break;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
eHandleKeypress(e) {
|
|
103
|
+
if (e instanceof KeyboardEvent) switch (e.key.toLowerCase() !== "tab" && e.preventDefault(), e.target?.tagName.toLowerCase()) {
|
|
104
|
+
case "a":
|
|
105
|
+
this.eHandleLinkKeypress(e);
|
|
106
|
+
break;
|
|
107
|
+
case "button":
|
|
108
|
+
this.eHandleButtonKeypress(e);
|
|
109
|
+
break;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
eToggleMenu(e) {
|
|
113
|
+
if (!(e instanceof MouseEvent)) return;
|
|
114
|
+
let t = e.target;
|
|
115
|
+
this.closeSiblingMenus(t), this.toggleMenu(t);
|
|
116
|
+
}
|
|
117
|
+
};
|
|
118
|
+
//#endregion
|
|
119
|
+
export { a as MintMenu };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../abstract/attaches-events.cjs.js"),t=require("../enums/side.cjs.js"),n=require("../util/settings.cjs.js"),r=require("../util/event.cjs.js"),i=require("../util/selectors.cjs.js"),a=require("../util/window.cjs.js");require("../util/index.cjs.js");var o=class extends e.MintAttachesEvents{settings={id:``,wrapperId:``,title:`panel`,from:t.EMintSide.Top,fixed:!0};el={};constructor(e){if(super(),this.settings={...this.settings,...e},!this.settings.id||!this.settings.wrapperId)throw Error(`Panel ID and wrapper ID are required`);this.attachElements(),this.attachEvents(),this.addClasses(),requestAnimationFrame(()=>{this.setPanel()})}attachElements(){this.el.html=document.querySelector(`html`),this.el.main=document.querySelector(`main`),this.el.panel=document.getElementById(this.settings.id),this.el.wrapper=document.getElementById(this.settings.wrapperId),this.el.toggleButton=this.el.panel?.querySelector(i.MintSelectors.controls(this.settings.wrapperId))??null}attachEvents(){this.attachEvent(window,`resize`,r.MintEvent.throttleEvent(this.eHandleResize.bind(this),n.MintSettings.delay.default)),this.attachEvent(this.el.main,`click`,r.MintEvent.throttleEvent(this.eClose.bind(this),n.MintSettings.delay.default,{trailing:!1})),this.attachEvent(this.el.wrapper,`transitionend`,this.eTransitionEnd.bind(this)),i.MintSelectors.getFocusables(this.el.panel).forEach(e=>{this.attachEvent(e,`keydown`,r.MintEvent.throttleEvent(this.eWrapTab.bind(this)))}),(this.el.panel?.querySelectorAll(i.MintSelectors.controls(this.settings.wrapperId)))?.forEach(e=>{this.attachEvent(e,`click`,r.MintEvent.throttleEvent(this.eToggle.bind(this),n.MintSettings.delay.slow,{trailing:!1}))})}addClasses(){this.el.panel?.classList.add(`mint-panel`),this.el.wrapper?.classList.add(`mint-panel-wrapper`),this.el.toggleButton?.classList.add(`mint-panel-toggle`),this.el.panel?.classList.remove(`mint-top`,`mint-right`,`mint-bottom`,`mint-left`),this.el.panel?.classList.add(`mint-${t.EMintSide[this.settings.from].toLowerCase()}`),this.settings.tray&&this.el.panel?.classList.add(`mint-tray`)}setPanel(e=!1){let r=e?`true`:`false`,i=e?`close ${this.settings.title}`:`open ${this.settings.title}`;this.el.toggleButton?.setAttribute(`aria-expanded`,r),setTimeout(()=>{this.el.toggleButton?.setAttribute(`aria-label`,i)},n.MintSettings.delay.fast),e?(this.closeOtherPanels(),this.settings.fixed||window.scroll({top:0,left:0,behavior:`smooth`}),setTimeout(()=>{if(this.el.html){let e=a.MintWindow.width()<=n.MintSettings.break.sm,t=`auto`;this.settings.tray?e&&(t=`hidden`):t=`hidden`,this.el.html.style.overflow=t}},this.settings.from===t.EMintSide.Left?n.MintSettings.delay.default:n.MintSettings.delay.instant),this.el.wrapper&&(this.el.wrapper.style.display=`flex`),requestAnimationFrame(()=>{this.el.wrapper?.classList.add(`mint-open`)})):(this.el.html&&(this.el.html.style.overflow=`auto`),requestAnimationFrame(()=>{this.el.wrapper?.classList.remove(`mint-open`)}))}togglePanel(){this.setPanel(this.el.toggleButton?.getAttribute(`aria-expanded`)?.toLowerCase()===`false`)}closeOtherPanels(){let e=`.mint-panel-toggle[aria-expanded="true"]:not([aria-controls="${this.settings.wrapperId}"])`;document.querySelector(e)?.click()}eHandleResize(){let e=a.MintWindow.width()<=n.MintSettings.break.sm,t=!0;this.el.panel?.classList.contains(`mint-tray`)?t=!1:this.el.panel?.classList.contains(`mint-expand`)||(t=!1),!e&&t&&this.setPanel(!1);let r=this.el.toggleButton?.getAttribute(`aria-expanded`)?.toLowerCase()===`true`,i=`auto`;r&&(this.settings.tray?e&&(i=`hidden`):i=`hidden`),this.el.html&&(this.el.html.style.overflow=i)}eWrapTab(e){if(!(e instanceof KeyboardEvent))return;let t=i.MintSelectors.getFocusables(this.el.panel),n=t[t.length-1],r=t.length>1&&document.activeElement===n;e.key.toLowerCase()===`tab`&&!e.shiftKey&&r&&(this.el.toggleButton?.focus(),document.activeElement===this.el.toggleButton&&e.preventDefault())}eToggle(){this.togglePanel()}eClose(){this.setPanel(!1)}eTransitionEnd(){this.el.wrapper?.classList.contains(`mint-open`)===!1&&(this.el.wrapper.style.display=`none`)}};exports.MintPanel=o;
|
|
@@ -1,4 +1,16 @@
|
|
|
1
|
+
import { EMintSide } from '../enums/side';
|
|
1
2
|
import { MintAttachesEvents } from '../abstract';
|
|
3
|
+
/**
|
|
4
|
+
* Panel settings
|
|
5
|
+
*/
|
|
6
|
+
export interface MintPanelSettings {
|
|
7
|
+
id: string;
|
|
8
|
+
wrapperId: string;
|
|
9
|
+
title: string;
|
|
10
|
+
from: EMintSide;
|
|
11
|
+
fixed: boolean;
|
|
12
|
+
tray?: boolean;
|
|
13
|
+
}
|
|
2
14
|
/**
|
|
3
15
|
* Panel (sidebar) functionality
|
|
4
16
|
* @public
|
|
@@ -7,7 +19,7 @@ export declare class MintPanel extends MintAttachesEvents {
|
|
|
7
19
|
/**
|
|
8
20
|
* Panel settings
|
|
9
21
|
*/
|
|
10
|
-
settings:
|
|
22
|
+
settings: MintPanelSettings;
|
|
11
23
|
/**
|
|
12
24
|
* Frequently-referenced elements
|
|
13
25
|
*/
|
|
@@ -15,7 +27,7 @@ export declare class MintPanel extends MintAttachesEvents {
|
|
|
15
27
|
/**
|
|
16
28
|
* Initializes and closes the panel
|
|
17
29
|
*/
|
|
18
|
-
constructor(settings?:
|
|
30
|
+
constructor(settings?: Partial<MintPanelSettings>);
|
|
19
31
|
/**
|
|
20
32
|
* Adds elements to {@link el | `this.el`}
|
|
21
33
|
*/
|
|
@@ -49,7 +61,7 @@ export declare class MintPanel extends MintAttachesEvents {
|
|
|
49
61
|
* Sends the focus to the toggle button after tabbing past the last focusable element
|
|
50
62
|
* @param e - Keyboard event
|
|
51
63
|
*/
|
|
52
|
-
eWrapTab(e:
|
|
64
|
+
eWrapTab(e: Event): void;
|
|
53
65
|
/**
|
|
54
66
|
* Toggles the panel
|
|
55
67
|
*/
|
|
@@ -63,4 +75,3 @@ export declare class MintPanel extends MintAttachesEvents {
|
|
|
63
75
|
*/
|
|
64
76
|
eTransitionEnd(): void;
|
|
65
77
|
}
|
|
66
|
-
//# sourceMappingURL=panel.d.ts.map
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { MintAttachesEvents as e } from "../abstract/attaches-events.esm.js";
|
|
2
|
+
import { EMintSide as t } from "../enums/side.esm.js";
|
|
3
|
+
import { MintSettings as n } from "../util/settings.esm.js";
|
|
4
|
+
import { MintEvent as r } from "../util/event.esm.js";
|
|
5
|
+
import { MintSelectors as i } from "../util/selectors.esm.js";
|
|
6
|
+
import { MintWindow as a } from "../util/window.esm.js";
|
|
7
|
+
import "../util/index.esm.js";
|
|
8
|
+
//#region src/ts/imports/components/panel.ts
|
|
9
|
+
var o = class extends e {
|
|
10
|
+
settings = {
|
|
11
|
+
id: "",
|
|
12
|
+
wrapperId: "",
|
|
13
|
+
title: "panel",
|
|
14
|
+
from: t.Top,
|
|
15
|
+
fixed: !0
|
|
16
|
+
};
|
|
17
|
+
el = {};
|
|
18
|
+
constructor(e) {
|
|
19
|
+
if (super(), this.settings = {
|
|
20
|
+
...this.settings,
|
|
21
|
+
...e
|
|
22
|
+
}, !this.settings.id || !this.settings.wrapperId) throw Error("Panel ID and wrapper ID are required");
|
|
23
|
+
this.attachElements(), this.attachEvents(), this.addClasses(), requestAnimationFrame(() => {
|
|
24
|
+
this.setPanel();
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
attachElements() {
|
|
28
|
+
this.el.html = document.querySelector("html"), this.el.main = document.querySelector("main"), this.el.panel = document.getElementById(this.settings.id), this.el.wrapper = document.getElementById(this.settings.wrapperId), this.el.toggleButton = this.el.panel?.querySelector(i.controls(this.settings.wrapperId)) ?? null;
|
|
29
|
+
}
|
|
30
|
+
attachEvents() {
|
|
31
|
+
this.attachEvent(window, "resize", r.throttleEvent(this.eHandleResize.bind(this), n.delay.default)), this.attachEvent(this.el.main, "click", r.throttleEvent(this.eClose.bind(this), n.delay.default, { trailing: !1 })), this.attachEvent(this.el.wrapper, "transitionend", this.eTransitionEnd.bind(this)), i.getFocusables(this.el.panel).forEach((e) => {
|
|
32
|
+
this.attachEvent(e, "keydown", r.throttleEvent(this.eWrapTab.bind(this)));
|
|
33
|
+
}), (this.el.panel?.querySelectorAll(i.controls(this.settings.wrapperId)))?.forEach((e) => {
|
|
34
|
+
this.attachEvent(e, "click", r.throttleEvent(this.eToggle.bind(this), n.delay.slow, { trailing: !1 }));
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
addClasses() {
|
|
38
|
+
this.el.panel?.classList.add("mint-panel"), this.el.wrapper?.classList.add("mint-panel-wrapper"), this.el.toggleButton?.classList.add("mint-panel-toggle"), this.el.panel?.classList.remove("mint-top", "mint-right", "mint-bottom", "mint-left"), this.el.panel?.classList.add(`mint-${t[this.settings.from].toLowerCase()}`), this.settings.tray && this.el.panel?.classList.add("mint-tray");
|
|
39
|
+
}
|
|
40
|
+
setPanel(e = !1) {
|
|
41
|
+
let r = e ? "true" : "false", i = e ? `close ${this.settings.title}` : `open ${this.settings.title}`;
|
|
42
|
+
this.el.toggleButton?.setAttribute("aria-expanded", r), setTimeout(() => {
|
|
43
|
+
this.el.toggleButton?.setAttribute("aria-label", i);
|
|
44
|
+
}, n.delay.fast), e ? (this.closeOtherPanels(), this.settings.fixed || window.scroll({
|
|
45
|
+
top: 0,
|
|
46
|
+
left: 0,
|
|
47
|
+
behavior: "smooth"
|
|
48
|
+
}), setTimeout(() => {
|
|
49
|
+
if (this.el.html) {
|
|
50
|
+
let e = a.width() <= n.break.sm, t = "auto";
|
|
51
|
+
this.settings.tray ? e && (t = "hidden") : t = "hidden", this.el.html.style.overflow = t;
|
|
52
|
+
}
|
|
53
|
+
}, this.settings.from === t.Left ? n.delay.default : n.delay.instant), this.el.wrapper && (this.el.wrapper.style.display = "flex"), requestAnimationFrame(() => {
|
|
54
|
+
this.el.wrapper?.classList.add("mint-open");
|
|
55
|
+
})) : (this.el.html && (this.el.html.style.overflow = "auto"), requestAnimationFrame(() => {
|
|
56
|
+
this.el.wrapper?.classList.remove("mint-open");
|
|
57
|
+
}));
|
|
58
|
+
}
|
|
59
|
+
togglePanel() {
|
|
60
|
+
this.setPanel(this.el.toggleButton?.getAttribute("aria-expanded")?.toLowerCase() === "false");
|
|
61
|
+
}
|
|
62
|
+
closeOtherPanels() {
|
|
63
|
+
let e = `.mint-panel-toggle[aria-expanded="true"]:not([aria-controls="${this.settings.wrapperId}"])`;
|
|
64
|
+
document.querySelector(e)?.click();
|
|
65
|
+
}
|
|
66
|
+
eHandleResize() {
|
|
67
|
+
let e = a.width() <= n.break.sm, t = !0;
|
|
68
|
+
this.el.panel?.classList.contains("mint-tray") ? t = !1 : this.el.panel?.classList.contains("mint-expand") || (t = !1), !e && t && this.setPanel(!1);
|
|
69
|
+
let r = this.el.toggleButton?.getAttribute("aria-expanded")?.toLowerCase() === "true", i = "auto";
|
|
70
|
+
r && (this.settings.tray ? e && (i = "hidden") : i = "hidden"), this.el.html && (this.el.html.style.overflow = i);
|
|
71
|
+
}
|
|
72
|
+
eWrapTab(e) {
|
|
73
|
+
if (!(e instanceof KeyboardEvent)) return;
|
|
74
|
+
let t = i.getFocusables(this.el.panel), n = t[t.length - 1], r = t.length > 1 && document.activeElement === n;
|
|
75
|
+
e.key.toLowerCase() === "tab" && !e.shiftKey && r && (this.el.toggleButton?.focus(), document.activeElement === this.el.toggleButton && e.preventDefault());
|
|
76
|
+
}
|
|
77
|
+
eToggle() {
|
|
78
|
+
this.togglePanel();
|
|
79
|
+
}
|
|
80
|
+
eClose() {
|
|
81
|
+
this.setPanel(!1);
|
|
82
|
+
}
|
|
83
|
+
eTransitionEnd() {
|
|
84
|
+
this.el.wrapper?.classList.contains("mint-open") === !1 && (this.el.wrapper.style.display = "none");
|
|
85
|
+
}
|
|
86
|
+
};
|
|
87
|
+
//#endregion
|
|
88
|
+
export { o as MintPanel };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./side.cjs.js");exports.EMintSide=e.EMintSide;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=function(e){return e[e.Top=0]=`Top`,e[e.Right=1]=`Right`,e[e.Bottom=2]=`Bottom`,e[e.Left=3]=`Left`,e}({});exports.EMintSide=e;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./abstract/attaches-events.cjs.js"),t=require("./util/math.cjs.js"),n=require("./components/grid.cjs.js"),r=require("./enums/side.cjs.js"),i=require("./util/async.cjs.js"),a=require("./util/settings.cjs.js"),o=require("./util/display.cjs.js"),s=require("./util/event.cjs.js"),c=require("./util/icon.cjs.js"),l=require("./util/list.cjs.js"),u=require("./util/object.cjs.js"),d=require("./util/scroll.cjs.js"),f=require("./util/selectors.cjs.js"),p=require("./util/text.cjs.js"),m=require("./util/window.cjs.js");require("./util/index.cjs.js");const h=require("./components/panel.cjs.js"),g=require("./components/menu.cjs.js"),_=require("./components/header.cjs.js");require("./components/index.cjs.js");const v=require("./models/color.cjs.js"),y=require("./models/item.cjs.js");exports.EMintSide=r.EMintSide,exports.MintAsync=i.MintAsync,exports.MintAttachesEvents=e.MintAttachesEvents,exports.MintDisplay=o.MintDisplay,exports.MintEvent=s.MintEvent,exports.MintGrid=n.MintGrid,exports.MintHeader=_.MintHeader,exports.MintIcon=c.MintIcon,exports.MintItem=y.MintItem,exports.MintList=l.MintList,exports.MintMath=t.MintMath,exports.MintMenu=g.MintMenu,exports.MintObject=u.MintObject,exports.MintPanel=h.MintPanel,exports.MintScroll=d.MintScroll,exports.MintSelectors=f.MintSelectors,exports.MintSettings=a.MintSettings,exports.MintText=p.MintText,exports.MintWindow=m.MintWindow,exports.mintColor=v.mintColor;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { MintAttachesEvents as e } from "./abstract/attaches-events.esm.js";
|
|
2
|
+
import { MintMath as t } from "./util/math.esm.js";
|
|
3
|
+
import { MintGrid as n } from "./components/grid.esm.js";
|
|
4
|
+
import { EMintSide as r } from "./enums/side.esm.js";
|
|
5
|
+
import { MintAsync as i } from "./util/async.esm.js";
|
|
6
|
+
import { MintSettings as a } from "./util/settings.esm.js";
|
|
7
|
+
import { MintDisplay as o } from "./util/display.esm.js";
|
|
8
|
+
import { MintEvent as s } from "./util/event.esm.js";
|
|
9
|
+
import { MintIcon as c } from "./util/icon.esm.js";
|
|
10
|
+
import { MintList as l } from "./util/list.esm.js";
|
|
11
|
+
import { MintObject as u } from "./util/object.esm.js";
|
|
12
|
+
import { MintScroll as d } from "./util/scroll.esm.js";
|
|
13
|
+
import { MintSelectors as f } from "./util/selectors.esm.js";
|
|
14
|
+
import { MintText as p } from "./util/text.esm.js";
|
|
15
|
+
import { MintWindow as m } from "./util/window.esm.js";
|
|
16
|
+
import "./util/index.esm.js";
|
|
17
|
+
import { MintPanel as h } from "./components/panel.esm.js";
|
|
18
|
+
import { MintMenu as g } from "./components/menu.esm.js";
|
|
19
|
+
import { MintHeader as _ } from "./components/header.esm.js";
|
|
20
|
+
import "./components/index.esm.js";
|
|
21
|
+
import { mintColor as v } from "./models/color.esm.js";
|
|
22
|
+
import { MintItem as y } from "./models/item.esm.js";
|
|
23
|
+
export { r as EMintSide, i as MintAsync, e as MintAttachesEvents, o as MintDisplay, s as MintEvent, n as MintGrid, _ as MintHeader, c as MintIcon, y as MintItem, l as MintList, t as MintMath, g as MintMenu, u as MintObject, h as MintPanel, d as MintScroll, f as MintSelectors, a as MintSettings, p as MintText, m as MintWindow, v as mintColor };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=class e{static hexBase=16;static hexMax=`FF`;r;g;b;a;constructor(t){this.r=typeof t.r==`number`?Math.max(Math.min(t.r,e.hexBase**2-1),0):0,this.g=typeof t.g==`number`?Math.max(Math.min(t.g,e.hexBase**2-1),0):0,this.b=typeof t.b==`number`?Math.max(Math.min(t.b,e.hexBase**2-1),0):0,this.a=typeof t.a==`number`?Math.max(Math.min(t.a,1),0):1,typeof t.color==`string`&&this.stringConstructor(t.color)}stringConstructor(e){e.startsWith(`#`)?this.hexConstructor(e):(~e.indexOf(`linear-gradient`)&&(e=e.substring(e.indexOf(`linear-gradient`),e.length)),this.rgbConstructor(e))}hexConstructor(t){switch(t.length){case 1:case 5:case 6:return;case 2:t=`#`+t[1]+t[1]+t[1]+t[1]+t[1]+t[1]+e.hexMax;break;case 3:t=`#`+t[1]+t[1]+t[1]+t[2]+t[2]+t[2]+e.hexMax;break;case 4:t=`#`+t[1]+t[1]+t[2]+t[2]+t[3]+t[3]+e.hexMax;break;case 7:t+=e.hexMax;break;case 8:t+=t[t.length-1];break;default:t=t.substring(0,9)}this.r=parseInt(t.substring(1,3),e.hexBase),this.g=parseInt(t.substring(3,5),e.hexBase),this.b=parseInt(t.substring(5,7),e.hexBase),this.a=parseInt(t.substring(7,9),e.hexBase)/e.hexBase**2}rgbConstructor(e){let t=/rgba?\((\d{1,3}), ?(\d{1,3}), ?(\d{1,3})\)?(?:, ?(\d(?:\.\d*)?)\))?/.exec(e);t&&(this.r=parseInt(t[1]),this.g=parseInt(t[2]),this.b=parseInt(t[3]),this.a=parseFloat(t[4]))}getBrightness(){return this.a===0?262:!isNaN(this.r)&&!isNaN(this.g)&&!isNaN(this.b)?Math.round((this.r*299+this.g*587+this.b*144)/1e3):-1}};exports.mintColor=e;
|
|
@@ -5,12 +5,9 @@ export declare class mintColor {
|
|
|
5
5
|
g: number;
|
|
6
6
|
b: number;
|
|
7
7
|
a: number;
|
|
8
|
-
constructor(args:
|
|
9
|
-
[key: string]: number | string;
|
|
10
|
-
});
|
|
8
|
+
constructor(args: Record<string, number | string>);
|
|
11
9
|
protected stringConstructor(str: string): void;
|
|
12
10
|
protected hexConstructor(hex: string): void;
|
|
13
11
|
protected rgbConstructor(rgb: string): void;
|
|
14
12
|
getBrightness(): number;
|
|
15
13
|
}
|
|
16
|
-
//# sourceMappingURL=color.d.ts.map
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
//#region src/ts/imports/models/color.ts
|
|
2
|
+
var e = class e {
|
|
3
|
+
static hexBase = 16;
|
|
4
|
+
static hexMax = "FF";
|
|
5
|
+
r;
|
|
6
|
+
g;
|
|
7
|
+
b;
|
|
8
|
+
a;
|
|
9
|
+
constructor(t) {
|
|
10
|
+
this.r = typeof t.r == "number" ? Math.max(Math.min(t.r, e.hexBase ** 2 - 1), 0) : 0, this.g = typeof t.g == "number" ? Math.max(Math.min(t.g, e.hexBase ** 2 - 1), 0) : 0, this.b = typeof t.b == "number" ? Math.max(Math.min(t.b, e.hexBase ** 2 - 1), 0) : 0, this.a = typeof t.a == "number" ? Math.max(Math.min(t.a, 1), 0) : 1, typeof t.color == "string" && this.stringConstructor(t.color);
|
|
11
|
+
}
|
|
12
|
+
stringConstructor(e) {
|
|
13
|
+
e.startsWith("#") ? this.hexConstructor(e) : (~e.indexOf("linear-gradient") && (e = e.substring(e.indexOf("linear-gradient"), e.length)), this.rgbConstructor(e));
|
|
14
|
+
}
|
|
15
|
+
hexConstructor(t) {
|
|
16
|
+
switch (t.length) {
|
|
17
|
+
case 1:
|
|
18
|
+
case 5:
|
|
19
|
+
case 6: return;
|
|
20
|
+
case 2:
|
|
21
|
+
t = "#" + t[1] + t[1] + t[1] + t[1] + t[1] + t[1] + e.hexMax;
|
|
22
|
+
break;
|
|
23
|
+
case 3:
|
|
24
|
+
t = "#" + t[1] + t[1] + t[1] + t[2] + t[2] + t[2] + e.hexMax;
|
|
25
|
+
break;
|
|
26
|
+
case 4:
|
|
27
|
+
t = "#" + t[1] + t[1] + t[2] + t[2] + t[3] + t[3] + e.hexMax;
|
|
28
|
+
break;
|
|
29
|
+
case 7:
|
|
30
|
+
t += e.hexMax;
|
|
31
|
+
break;
|
|
32
|
+
case 8:
|
|
33
|
+
t += t[t.length - 1];
|
|
34
|
+
break;
|
|
35
|
+
default: t = t.substring(0, 9);
|
|
36
|
+
}
|
|
37
|
+
this.r = parseInt(t.substring(1, 3), e.hexBase), this.g = parseInt(t.substring(3, 5), e.hexBase), this.b = parseInt(t.substring(5, 7), e.hexBase), this.a = parseInt(t.substring(7, 9), e.hexBase) / e.hexBase ** 2;
|
|
38
|
+
}
|
|
39
|
+
rgbConstructor(e) {
|
|
40
|
+
let t = /rgba?\((\d{1,3}), ?(\d{1,3}), ?(\d{1,3})\)?(?:, ?(\d(?:\.\d*)?)\))?/.exec(e);
|
|
41
|
+
t && (this.r = parseInt(t[1]), this.g = parseInt(t[2]), this.b = parseInt(t[3]), this.a = parseFloat(t[4]));
|
|
42
|
+
}
|
|
43
|
+
getBrightness() {
|
|
44
|
+
return this.a === 0 ? 262 : !isNaN(this.r) && !isNaN(this.g) && !isNaN(this.b) ? Math.round((this.r * 299 + this.g * 587 + this.b * 144) / 1e3) : -1;
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
//#endregion
|
|
48
|
+
export { e as mintColor };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});
|