@design.estate/dees-domtools 2.0.36

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 (42) hide show
  1. package/dist_bundle/bundle.js +14073 -0
  2. package/dist_bundle/bundle.js.map +7 -0
  3. package/dist_ts/00_commitinfo_data.d.ts +8 -0
  4. package/dist_ts/00_commitinfo_data.js +9 -0
  5. package/dist_ts/domtools.classes.domtools.d.ts +72 -0
  6. package/dist_ts/domtools.classes.domtools.js +157 -0
  7. package/dist_ts/domtools.classes.keyboard.d.ts +134 -0
  8. package/dist_ts/domtools.classes.keyboard.js +187 -0
  9. package/dist_ts/domtools.classes.scroller.d.ts +2 -0
  10. package/dist_ts/domtools.classes.scroller.js +4 -0
  11. package/dist_ts/domtools.classes.thememanager.d.ts +22 -0
  12. package/dist_ts/domtools.classes.thememanager.js +45 -0
  13. package/dist_ts/domtools.colors.d.ts +6 -0
  14. package/dist_ts/domtools.colors.js +2 -0
  15. package/dist_ts/domtools.css.basestyles.d.ts +5 -0
  16. package/dist_ts/domtools.css.basestyles.js +39 -0
  17. package/dist_ts/domtools.css.breakpoints.d.ts +12 -0
  18. package/dist_ts/domtools.css.breakpoints.js +58 -0
  19. package/dist_ts/domtools.css.d.ts +1 -0
  20. package/dist_ts/domtools.css.js +8 -0
  21. package/dist_ts/domtools.elementbasic.d.ts +12 -0
  22. package/dist_ts/domtools.elementbasic.js +51 -0
  23. package/dist_ts/domtools.plugins.d.ts +25 -0
  24. package/dist_ts/domtools.plugins.js +31 -0
  25. package/dist_ts/index.d.ts +16 -0
  26. package/dist_ts/index.js +17 -0
  27. package/license +20 -0
  28. package/npmextra.json +18 -0
  29. package/package.json +56 -0
  30. package/readme.md +37 -0
  31. package/ts/00_commitinfo_data.ts +8 -0
  32. package/ts/domtools.classes.domtools.ts +185 -0
  33. package/ts/domtools.classes.keyboard.ts +213 -0
  34. package/ts/domtools.classes.scroller.ts +5 -0
  35. package/ts/domtools.classes.thememanager.ts +54 -0
  36. package/ts/domtools.colors.ts +6 -0
  37. package/ts/domtools.css.basestyles.ts +41 -0
  38. package/ts/domtools.css.breakpoints.ts +66 -0
  39. package/ts/domtools.css.ts +9 -0
  40. package/ts/domtools.elementbasic.ts +59 -0
  41. package/ts/domtools.plugins.ts +50 -0
  42. package/ts/index.ts +20 -0
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tdG9vbHMuY29sb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvZG9tdG9vbHMuY29sb3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ==
@@ -0,0 +1,5 @@
1
+ /**
2
+ * changes scrollbar styles to be consistent across OS borders
3
+ */
4
+ export declare const scrollBarStyles: string;
5
+ export declare const globalBaseStyles: string;
@@ -0,0 +1,39 @@
1
+ import './domtools.classes.domtools.js';
2
+ import { css, unsafeCSS } from 'lit';
3
+ /**
4
+ * changes scrollbar styles to be consistent across OS borders
5
+ */
6
+ export const scrollBarStyles = (() => {
7
+ const returnStylesOld = navigator.userAgent.indexOf('Mac OS X') === -1 ? css ``.cssText : ``;
8
+ const returnStyles = css `
9
+ /* width */
10
+ ::-webkit-scrollbar {
11
+ width: 0px;
12
+ }
13
+ body {
14
+ scrollbar-width: none;
15
+ }
16
+ `.cssText;
17
+ return returnStyles;
18
+ })();
19
+ export const globalBaseStyles = css `
20
+ /*
21
+ @font-face {
22
+ font-family: 'Material Icons';
23
+ font-style: normal;
24
+ font-weight: 400;
25
+ src: url(https://fonts.gstatic.com/s/materialicons/v42/flUhRq6tzZclQEJ-Vdg-IuiaDsNcIhQ8tQ.woff2)
26
+ format('woff2');
27
+ } */
28
+
29
+ /* global body styles */
30
+ body {
31
+ margin: 0px;
32
+ font-family: 'Inter', sans-serif;
33
+ box-sizing: border-box;
34
+ }
35
+
36
+ /* scroll bar styles */
37
+ ${unsafeCSS(scrollBarStyles)}
38
+ `.cssText;
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tdG9vbHMuY3NzLmJhc2VzdHlsZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9kb210b29scy5jc3MuYmFzZXN0eWxlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUF5QixnQ0FBZ0MsQ0FBQztBQUUxRCxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUVyQzs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBVyxDQUFDLEdBQUcsRUFBRTtJQUMzQyxNQUFNLGVBQWUsR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFBLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUM1RixNQUFNLFlBQVksR0FBRyxHQUFHLENBQUE7Ozs7Ozs7O0dBUXZCLENBQUMsT0FBTyxDQUFDO0lBQ1YsT0FBTyxZQUFZLENBQUM7QUFDdEIsQ0FBQyxDQUFDLEVBQUUsQ0FBQztBQUVMLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFXLEdBQUcsQ0FBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lBa0J2QyxTQUFTLENBQUMsZUFBZSxDQUFDO0NBQzdCLENBQUMsT0FBTyxDQUFDIn0=
@@ -0,0 +1,12 @@
1
+ import { CSSResult } from 'lit';
2
+ export declare const desktop = 1600;
3
+ export declare const notebook = 1240;
4
+ export declare const tablet = 1024;
5
+ export declare const phablet = 600;
6
+ export declare const phone = 400;
7
+ export type TViewport = 'native' | 'desktop' | 'tablet' | 'phablet' | 'phone';
8
+ export declare const cssForDesktop: (cssArg: CSSResult) => CSSResult;
9
+ export declare const cssForNotebook: (cssArg: CSSResult) => CSSResult;
10
+ export declare const cssForTablet: (cssArg: CSSResult) => CSSResult;
11
+ export declare const cssForPhablet: (cssArg: CSSResult) => CSSResult;
12
+ export declare const cssForPhone: (cssArg: CSSResult) => CSSResult;
@@ -0,0 +1,58 @@
1
+ import './domtools.classes.domtools.js';
2
+ import { unsafeCSS } from 'lit';
3
+ export const desktop = 1600;
4
+ export const notebook = 1240;
5
+ export const tablet = 1024;
6
+ export const phablet = 600;
7
+ export const phone = 400;
8
+ export const cssForDesktop = (cssArg) => {
9
+ return unsafeCSS(`
10
+ @container wccToolsViewport (min-width: ${desktop}px) {
11
+ ${cssArg.cssText}
12
+ }
13
+ @media (min-width: ${desktop}px) {
14
+ ${cssArg.cssText}
15
+ }
16
+ `);
17
+ };
18
+ export const cssForNotebook = (cssArg) => {
19
+ return unsafeCSS(`
20
+ @container wccToolsViewport (max-width: ${notebook}px) {
21
+ ${cssArg.cssText}
22
+ }
23
+ @media (max-width: ${notebook}px) {
24
+ ${cssArg.cssText}
25
+ }
26
+ `);
27
+ };
28
+ export const cssForTablet = (cssArg) => {
29
+ return unsafeCSS(`
30
+ @container wccToolsViewport (max-width: ${tablet}px) {
31
+ ${cssArg.cssText}
32
+ }
33
+ @media (max-width: ${tablet}px) {
34
+ ${cssArg.cssText}
35
+ }
36
+ `);
37
+ };
38
+ export const cssForPhablet = (cssArg) => {
39
+ return unsafeCSS(`
40
+ @container wccToolsViewport (max-width: ${phablet}px) {
41
+ ${cssArg.cssText}
42
+ }
43
+ @media (max-width: ${phablet}px) {
44
+ ${cssArg.cssText}
45
+ }
46
+ `);
47
+ };
48
+ export const cssForPhone = (cssArg) => {
49
+ return unsafeCSS(`
50
+ @container wccToolsViewport (max-width: ${phone}px) {
51
+ ${cssArg.cssText}
52
+ }
53
+ @media (max-width: ${phone}px) {
54
+ ${cssArg.cssText}
55
+ }
56
+ `);
57
+ };
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tdG9vbHMuY3NzLmJyZWFrcG9pbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvZG9tdG9vbHMuY3NzLmJyZWFrcG9pbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQXlCLGdDQUFnQyxDQUFDO0FBRTFELE9BQU8sRUFBYSxTQUFTLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFFM0MsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQztBQUM1QixNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDO0FBQzdCLE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUM7QUFDM0IsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLEdBQUcsQ0FBQztBQUMzQixNQUFNLENBQUMsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDO0FBSXpCLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxDQUFDLE1BQWlCLEVBQUUsRUFBRTtJQUNqRCxPQUFPLFNBQVMsQ0FBQzs4Q0FDMkIsT0FBTztRQUM3QyxNQUFNLENBQUMsT0FBTzs7eUJBRUcsT0FBTztRQUN4QixNQUFNLENBQUMsT0FBTzs7R0FFbkIsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLENBQUMsTUFBaUIsRUFBRSxFQUFFO0lBQ2xELE9BQU8sU0FBUyxDQUFDOzhDQUMyQixRQUFRO1FBQzlDLE1BQU0sQ0FBQyxPQUFPOzt5QkFFRyxRQUFRO1FBQ3pCLE1BQU0sQ0FBQyxPQUFPOztHQUVuQixDQUFDLENBQUM7QUFDTCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsQ0FBQyxNQUFpQixFQUFFLEVBQUU7SUFDaEQsT0FBTyxTQUFTLENBQUM7OENBQzJCLE1BQU07UUFDNUMsTUFBTSxDQUFDLE9BQU87O3lCQUVHLE1BQU07UUFDdkIsTUFBTSxDQUFDLE9BQU87O0dBRW5CLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxDQUFDLE1BQWlCLEVBQUUsRUFBRTtJQUNqRCxPQUFPLFNBQVMsQ0FBQzs4Q0FDMkIsT0FBTztRQUM3QyxNQUFNLENBQUMsT0FBTzs7eUJBRUcsT0FBTztRQUN4QixNQUFNLENBQUMsT0FBTzs7R0FFbkIsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLENBQUMsTUFBaUIsRUFBRSxFQUFFO0lBQy9DLE9BQU8sU0FBUyxDQUFDOzhDQUMyQixLQUFLO1FBQzNDLE1BQU0sQ0FBQyxPQUFPOzt5QkFFRyxLQUFLO1FBQ3RCLE1BQU0sQ0FBQyxPQUFPOztHQUVuQixDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMifQ==
@@ -0,0 +1 @@
1
+ export declare const cssGridColumns: (amountOfColumnsArg: number, gapSizeArg: number) => string;
@@ -0,0 +1,8 @@
1
+ export const cssGridColumns = (amountOfColumnsArg, gapSizeArg) => {
2
+ let returnString = ``;
3
+ for (let i = 0; i < amountOfColumnsArg; i++) {
4
+ returnString += ` calc((100%/${amountOfColumnsArg}) - (${gapSizeArg * (amountOfColumnsArg - 1)}px/${amountOfColumnsArg}))`;
5
+ }
6
+ return returnString;
7
+ };
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tdG9vbHMuY3NzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvZG9tdG9vbHMuY3NzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxDQUFDLGtCQUEwQixFQUFFLFVBQWtCLEVBQUUsRUFBRTtJQUMvRSxJQUFJLFlBQVksR0FBRyxFQUFFLENBQUM7SUFDdEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLGtCQUFrQixFQUFFLENBQUMsRUFBRSxFQUFFO1FBQzNDLFlBQVksSUFBSSxlQUFlLGtCQUFrQixRQUMvQyxVQUFVLEdBQUcsQ0FBQyxrQkFBa0IsR0FBRyxDQUFDLENBQ3RDLE1BQU0sa0JBQWtCLElBQUksQ0FBQztLQUM5QjtJQUNELE9BQU8sWUFBWSxDQUFDO0FBQ3RCLENBQUMsQ0FBQyJ9
@@ -0,0 +1,12 @@
1
+ import { DomTools, IDomToolsContructorOptions } from './domtools.classes.domtools.js';
2
+ import { LitElement } from 'lit';
3
+ export declare const staticStyles: import("lit").CSSResult;
4
+ /**
5
+ * styles to be included in every webcomponent
6
+ */
7
+ export declare const styles: import("lit-html").TemplateResult<1>;
8
+ /**
9
+ * a basic setup for elements
10
+ * makes sure everything is in check
11
+ */
12
+ export declare const setup: (elementArg?: LitElement, optionsArg?: IDomToolsContructorOptions) => Promise<DomTools>;
@@ -0,0 +1,51 @@
1
+ import './domtools.plugins.js';
2
+ import { DomTools } from './domtools.classes.domtools.js';
3
+ import { scrollBarStyles, globalBaseStyles } from './domtools.css.basestyles.js';
4
+ import { html, css, unsafeCSS } from 'lit';
5
+ export const staticStyles = css `
6
+ * {
7
+ transition: background 0.1s, color 0.1s;
8
+ box-sizing: border-box;
9
+ }
10
+
11
+ :host {
12
+ box-sizing: border-box;
13
+ font-family: 'Inter', sans-serif;
14
+ }
15
+
16
+ ${unsafeCSS(scrollBarStyles)}
17
+ `;
18
+ /**
19
+ * styles to be included in every webcomponent
20
+ */
21
+ export const styles = html `
22
+ <style>
23
+ * {
24
+ transition: background 0.1s, color 0.1s;
25
+ box-sizing: border-box;
26
+ }
27
+
28
+ :host {
29
+ font-family: 'Inter', sans-serif;
30
+ }
31
+
32
+ ${scrollBarStyles}
33
+ </style>
34
+ `;
35
+ /**
36
+ * a basic setup for elements
37
+ * makes sure everything is in check
38
+ */
39
+ export const setup = async (elementArg, optionsArg = {}) => {
40
+ const domTools = await DomTools.setupDomTools(optionsArg);
41
+ if (elementArg) {
42
+ // lets do something with the element
43
+ // not used right now
44
+ }
45
+ domTools.runOnce('elementBasicSetup', async () => {
46
+ // bodyStyles
47
+ domTools.setGlobalStyles(globalBaseStyles);
48
+ });
49
+ return domTools;
50
+ };
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tdG9vbHMuZWxlbWVudGJhc2ljLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvZG9tdG9vbHMuZWxlbWVudGJhc2ljLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQXlCLHVCQUF1QixDQUFDO0FBQ2pELE9BQU8sRUFBRSxRQUFRLEVBQThCLE1BQU0sZ0NBQWdDLENBQUM7QUFDdEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRWpGLE9BQU8sRUFBRSxJQUFJLEVBQWMsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUV2RCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsR0FBRyxDQUFBOzs7Ozs7Ozs7OztJQVczQixTQUFTLENBQUMsZUFBZSxDQUFDO0NBQzdCLENBQUM7QUFFRjs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUE7Ozs7Ozs7Ozs7O01BV3BCLGVBQWU7O0NBRXBCLENBQUM7QUFFRjs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxLQUFLLEdBQUcsS0FBSyxFQUN4QixVQUF1QixFQUN2QixhQUF5QyxFQUFFLEVBQ3hCLEVBQUU7SUFDckIsTUFBTSxRQUFRLEdBQUcsTUFBTSxRQUFRLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBRTFELElBQUksVUFBVSxFQUFFO1FBQ2QscUNBQXFDO1FBQ3JDLHFCQUFxQjtLQUN0QjtJQUVELFFBQVEsQ0FBQyxPQUFPLENBQUMsbUJBQW1CLEVBQUUsS0FBSyxJQUFJLEVBQUU7UUFDL0MsYUFBYTtRQUNiLFFBQVEsQ0FBQyxlQUFlLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUM3QyxDQUFDLENBQUMsQ0FBQztJQUNILE9BQU8sUUFBUSxDQUFDO0FBQ2xCLENBQUMsQ0FBQyJ9
@@ -0,0 +1,25 @@
1
+ import * as deesComms from '@designestate/dees-comms';
2
+ export { deesComms };
3
+ import * as typedrequest from '@apiglobal/typedrequest';
4
+ export { typedrequest };
5
+ import * as smartdelay from '@pushrocks/smartdelay';
6
+ import * as smartjson from '@pushrocks/smartjson';
7
+ import * as smartpromise from '@pushrocks/smartpromise';
8
+ import * as smartrouter from '@pushrocks/smartrouter';
9
+ import * as smartrx from '@pushrocks/smartrx';
10
+ import * as smartstate from '@pushrocks/smartstate';
11
+ import * as smarturl from '@pushrocks/smarturl';
12
+ import * as webrequest from '@pushrocks/webrequest';
13
+ import * as websetup from '@pushrocks/websetup';
14
+ import * as webstore from '@pushrocks/webstore';
15
+ import { ObjectMap } from '@pushrocks/lik/dist_ts/lik.objectmap.js';
16
+ import { Stringmap } from '@pushrocks/lik/dist_ts/lik.stringmap.js';
17
+ import { FastMap } from '@pushrocks/lik/dist_ts/lik.fastmap.js';
18
+ declare const lik: {
19
+ ObjectMap: typeof ObjectMap;
20
+ Stringmap: typeof Stringmap;
21
+ FastMap: typeof FastMap;
22
+ };
23
+ export { lik, smartdelay, smartjson, smartpromise, smartrouter, smartrx, smarturl, smartstate, webrequest, websetup, webstore, };
24
+ import SweetScroll from 'sweet-scroll';
25
+ export { SweetScroll };
@@ -0,0 +1,31 @@
1
+ // designestate scope
2
+ import * as deesComms from '@designestate/dees-comms';
3
+ export { deesComms };
4
+ // apiglobal scope
5
+ import * as typedrequest from '@apiglobal/typedrequest';
6
+ export { typedrequest };
7
+ // pushrocks scope
8
+ import * as smartdelay from '@pushrocks/smartdelay';
9
+ import * as smartjson from '@pushrocks/smartjson';
10
+ import * as smartpromise from '@pushrocks/smartpromise';
11
+ import * as smartrouter from '@pushrocks/smartrouter';
12
+ import * as smartrx from '@pushrocks/smartrx';
13
+ import * as smartstate from '@pushrocks/smartstate';
14
+ import * as smarturl from '@pushrocks/smarturl';
15
+ import * as webrequest from '@pushrocks/webrequest';
16
+ import * as websetup from '@pushrocks/websetup';
17
+ import * as webstore from '@pushrocks/webstore';
18
+ // subscope lik
19
+ import { ObjectMap } from '@pushrocks/lik/dist_ts/lik.objectmap.js';
20
+ import { Stringmap } from '@pushrocks/lik/dist_ts/lik.stringmap.js';
21
+ import { FastMap } from '@pushrocks/lik/dist_ts/lik.fastmap.js';
22
+ const lik = {
23
+ ObjectMap,
24
+ Stringmap,
25
+ FastMap,
26
+ };
27
+ export { lik, smartdelay, smartjson, smartpromise, smartrouter, smartrx, smarturl, smartstate, webrequest, websetup, webstore, };
28
+ // third party scope
29
+ import SweetScroll from 'sweet-scroll';
30
+ export { SweetScroll };
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tdG9vbHMucGx1Z2lucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL2RvbXRvb2xzLnBsdWdpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEscUJBQXFCO0FBQ3JCLE9BQU8sS0FBSyxTQUFTLE1BQU0sMEJBQTBCLENBQUM7QUFFdEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxDQUFDO0FBRXJCLGtCQUFrQjtBQUNsQixPQUFPLEtBQUssWUFBWSxNQUFNLHlCQUF5QixDQUFDO0FBRXhELE9BQU8sRUFBRSxZQUFZLEVBQUUsQ0FBQztBQUV4QixrQkFBa0I7QUFDbEIsT0FBTyxLQUFLLFVBQVUsTUFBTSx1QkFBdUIsQ0FBQztBQUNwRCxPQUFPLEtBQUssU0FBUyxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sS0FBSyxZQUFZLE1BQU0seUJBQXlCLENBQUM7QUFDeEQsT0FBTyxLQUFLLFdBQVcsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RCxPQUFPLEtBQUssT0FBTyxNQUFNLG9CQUFvQixDQUFDO0FBQzlDLE9BQU8sS0FBSyxVQUFVLE1BQU0sdUJBQXVCLENBQUM7QUFDcEQsT0FBTyxLQUFLLFFBQVEsTUFBTSxxQkFBcUIsQ0FBQztBQUNoRCxPQUFPLEtBQUssVUFBVSxNQUFNLHVCQUF1QixDQUFDO0FBQ3BELE9BQU8sS0FBSyxRQUFRLE1BQU0scUJBQXFCLENBQUM7QUFDaEQsT0FBTyxLQUFLLFFBQVEsTUFBTSxxQkFBcUIsQ0FBQztBQUVoRCxlQUFlO0FBQ2YsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNwRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDaEUsTUFBTSxHQUFHLEdBQUc7SUFDVixTQUFTO0lBQ1QsU0FBUztJQUNULE9BQU87Q0FDUixDQUFDO0FBRUYsT0FBTyxFQUNMLEdBQUcsRUFDSCxVQUFVLEVBQ1YsU0FBUyxFQUNULFlBQVksRUFDWixXQUFXLEVBQ1gsT0FBTyxFQUNQLFFBQVEsRUFDUixVQUFVLEVBQ1YsVUFBVSxFQUNWLFFBQVEsRUFDUixRQUFRLEdBQ1QsQ0FBQztBQUVGLG9CQUFvQjtBQUNwQixPQUFPLFdBQVcsTUFBTSxjQUFjLENBQUM7QUFFdkMsT0FBTyxFQUFFLFdBQVcsRUFBRSxDQUFDIn0=
@@ -0,0 +1,16 @@
1
+ export * from './domtools.colors.js';
2
+ import * as elementBasic from './domtools.elementbasic.js';
3
+ import * as breakpoints from './domtools.css.breakpoints.js';
4
+ import * as css from './domtools.css.js';
5
+ export { css, breakpoints, elementBasic };
6
+ export { DomTools, IDomToolsContructorOptions } from './domtools.classes.domtools.js';
7
+ export { TypedRequest } from '@apiglobal/typedrequest';
8
+ export { IWebSetupConstructorOptions } from '@pushrocks/websetup';
9
+ export { rxjs } from '@pushrocks/smartrx';
10
+ import * as allPlugins from './domtools.plugins.js';
11
+ export declare const plugins: {
12
+ smartdelay: typeof allPlugins.smartdelay;
13
+ smartpromise: typeof allPlugins.smartpromise;
14
+ SweetScroll: typeof allPlugins.SweetScroll;
15
+ smartstate: typeof allPlugins.smartstate;
16
+ };
@@ -0,0 +1,17 @@
1
+ export * from './domtools.colors.js';
2
+ import * as elementBasic from './domtools.elementbasic.js';
3
+ import * as breakpoints from './domtools.css.breakpoints.js';
4
+ import * as css from './domtools.css.js';
5
+ export { css, breakpoints, elementBasic };
6
+ export { DomTools } from './domtools.classes.domtools.js';
7
+ export { TypedRequest } from '@apiglobal/typedrequest';
8
+ export {} from '@pushrocks/websetup';
9
+ export { rxjs } from '@pushrocks/smartrx';
10
+ import * as allPlugins from './domtools.plugins.js';
11
+ export const plugins = {
12
+ smartdelay: allPlugins.smartdelay,
13
+ smartpromise: allPlugins.smartpromise,
14
+ SweetScroll: allPlugins.SweetScroll,
15
+ smartstate: allPlugins.smartstate,
16
+ };
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHNCQUFzQixDQUFDO0FBRXJDLE9BQU8sS0FBSyxZQUFZLE1BQU0sNEJBQTRCLENBQUM7QUFDM0QsT0FBTyxLQUFLLFdBQVcsTUFBTSwrQkFBK0IsQ0FBQztBQUM3RCxPQUFPLEtBQUssR0FBRyxNQUFNLG1CQUFtQixDQUFDO0FBRXpDLE9BQU8sRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxRQUFRLEVBQThCLE1BQU0sZ0NBQWdDLENBQUM7QUFDdEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBK0IsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFMUMsT0FBTyxLQUFLLFVBQVUsTUFBTSx1QkFBdUIsQ0FBQztBQUVwRCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUc7SUFDckIsVUFBVSxFQUFFLFVBQVUsQ0FBQyxVQUFVO0lBQ2pDLFlBQVksRUFBRSxVQUFVLENBQUMsWUFBWTtJQUNyQyxXQUFXLEVBQUUsVUFBVSxDQUFDLFdBQVc7SUFDbkMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxVQUFVO0NBQ2xDLENBQUMifQ==
package/license ADDED
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2020 Lossless GmbH (hello@lossless.com)
2
+ Copyright (c) 2017 Nathan Friend (ts-keycode-enum)
3
+
4
+ Permission is hereby granted, free of charge, to any person obtaining a copy
5
+ of this software and associated documentation files (the "Software"), to deal
6
+ in the Software without restriction, including without limitation the rights
7
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8
+ copies of the Software, and to permit persons to whom the Software is
9
+ furnished to do so, subject to the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be included in all
12
+ copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20
+ SOFTWARE.
package/npmextra.json ADDED
@@ -0,0 +1,18 @@
1
+ {
2
+ "gitzone": {
3
+ "projectType": "npm",
4
+ "module": {
5
+ "githost": "gitlab.com",
6
+ "gitscope": "design.estate",
7
+ "gitrepo": "dees-domtools",
8
+ "description": "tools to simplify complex css structures",
9
+ "npmPackagename": "@design.estate/dees-domtools",
10
+ "license": "MIT",
11
+ "projectDomain": "design.estate"
12
+ }
13
+ },
14
+ "npmci": {
15
+ "npmGlobalTools": [],
16
+ "npmAccessLevel": "public"
17
+ }
18
+ }
package/package.json ADDED
@@ -0,0 +1,56 @@
1
+ {
2
+ "name": "@design.estate/dees-domtools",
3
+ "version": "2.0.36",
4
+ "private": false,
5
+ "description": "tools to simplify complex css structures",
6
+ "main": "dist_ts/index.js",
7
+ "typings": "dist_ts/index.d.ts",
8
+ "type": "module",
9
+ "author": "Lossless GmbH",
10
+ "license": "MIT",
11
+ "scripts": {
12
+ "test": "(tstest test/ --web)",
13
+ "build": "(tsbuild --web --allowimplicitany && tsbundle npm)",
14
+ "format": "(gitzone format)",
15
+ "buildDocs": "tsdoc"
16
+ },
17
+ "devDependencies": {
18
+ "@gitzone/tsbuild": "^2.1.63",
19
+ "@gitzone/tsbundle": "^2.0.6",
20
+ "@gitzone/tstest": "^1.0.72",
21
+ "@pushrocks/tapbundle": "^5.0.4",
22
+ "@types/node": "^20.1.0"
23
+ },
24
+ "dependencies": {
25
+ "@apiglobal/typedrequest": "^2.0.8",
26
+ "@designestate/dees-comms": "^1.0.22",
27
+ "@pushrocks/lik": "^6.0.2",
28
+ "@pushrocks/smartdelay": "^3.0.1",
29
+ "@pushrocks/smartjson": "^5.0.5",
30
+ "@pushrocks/smartpromise": "^4.0.2",
31
+ "@pushrocks/smartrouter": "^1.0.16",
32
+ "@pushrocks/smartrx": "^3.0.0",
33
+ "@pushrocks/smartstate": "^2.0.6",
34
+ "@pushrocks/smarturl": "^3.0.6",
35
+ "@pushrocks/webrequest": "^3.0.23",
36
+ "@pushrocks/websetup": "^3.0.19",
37
+ "@pushrocks/webstore": "^2.0.8",
38
+ "lit": "^2.7.4",
39
+ "sweet-scroll": "^4.0.0"
40
+ },
41
+ "files": [
42
+ "ts/**/*",
43
+ "ts_web/**/*",
44
+ "dist/**/*",
45
+ "dist_*/**/*",
46
+ "dist_ts/**/*",
47
+ "dist_ts_web/**/*",
48
+ "assets/**/*",
49
+ "cli.js",
50
+ "npmextra.json",
51
+ "readme.md"
52
+ ],
53
+ "browserslist": [
54
+ "last 1 chrome versions"
55
+ ]
56
+ }
package/readme.md ADDED
@@ -0,0 +1,37 @@
1
+ # @designestate/dees-domtools
2
+ tools to simplify complex css structures
3
+
4
+ ## Availabililty and Links
5
+ * [npmjs.org (npm package)](https://www.npmjs.com/package/@designestate/dees-domtools)
6
+ * [gitlab.com (source)](https://gitlab.com/designestate/dees-domtools)
7
+ * [github.com (source mirror)](https://github.com/designestate/dees-domtools)
8
+ * [docs (typedoc)](https://designestate.gitlab.io/dees-domtools/)
9
+
10
+ ## Status for master
11
+
12
+ Status Category | Status Badge
13
+ -- | --
14
+ GitLab Pipelines | [![pipeline status](https://gitlab.com/designestate/dees-domtools/badges/master/pipeline.svg)](https://lossless.cloud)
15
+ GitLab Pipline Test Coverage | [![coverage report](https://gitlab.com/designestate/dees-domtools/badges/master/coverage.svg)](https://lossless.cloud)
16
+ npm | [![npm downloads per month](https://badgen.net/npm/dy/@designestate/dees-domtools)](https://lossless.cloud)
17
+ Snyk | [![Known Vulnerabilities](https://badgen.net/snyk/designestate/dees-domtools)](https://lossless.cloud)
18
+ TypeScript Support | [![TypeScript](https://badgen.net/badge/TypeScript/>=%203.x/blue?icon=typescript)](https://lossless.cloud)
19
+ node Support | [![node](https://img.shields.io/badge/node->=%2010.x.x-blue.svg)](https://nodejs.org/dist/latest-v10.x/docs/api/)
20
+ Code Style | [![Code Style](https://badgen.net/badge/style/prettier/purple)](https://lossless.cloud)
21
+ PackagePhobia (total standalone install weight) | [![PackagePhobia](https://badgen.net/packagephobia/install/@designestate/dees-domtools)](https://lossless.cloud)
22
+ PackagePhobia (package size on registry) | [![PackagePhobia](https://badgen.net/packagephobia/publish/@designestate/dees-domtools)](https://lossless.cloud)
23
+ BundlePhobia (total size when bundled) | [![BundlePhobia](https://badgen.net/bundlephobia/minzip/@designestate/dees-domtools)](https://lossless.cloud)
24
+
25
+ ## Usage
26
+
27
+ Use TypeScript for best in class intellisense
28
+
29
+ ## Contribution
30
+
31
+ We are always happy for code contributions. If you are not the code contributing type that is ok. Still, maintaining Open Source repositories takes considerable time and thought. If you like the quality of what we do and our modules are useful to you we would appreciate a little monthly contribution: You can [contribute one time](https://lossless.link/contribute-onetime) or [contribute monthly](https://lossless.link/contribute). :)
32
+
33
+ For further information read the linked docs at the top of this readme.
34
+
35
+ ## Legal
36
+ > MIT licensed | **&copy;** [Task Venture Capital GmbH](https://task.vc)
37
+ | By using this npm module you agree to our [privacy policy](https://lossless.gmbH/privacy)
@@ -0,0 +1,8 @@
1
+ /**
2
+ * autocreated commitinfo by @pushrocks/commitinfo
3
+ */
4
+ export const commitinfo = {
5
+ name: '@design.estate/dees-domtools',
6
+ version: '2.0.36',
7
+ description: 'tools to simplify complex css structures'
8
+ }
@@ -0,0 +1,185 @@
1
+ import * as plugins from './domtools.plugins.js';
2
+ import { TViewport } from './domtools.css.breakpoints.js';
3
+ import { Scroller } from './domtools.classes.scroller.js';
4
+ import { WebSetup } from '@pushrocks/websetup';
5
+ import { ThemeManager } from './domtools.classes.thememanager.js';
6
+ import { Keyboard } from './domtools.classes.keyboard.js';
7
+
8
+ export interface IDomToolsState {
9
+ virtualViewport: TViewport;
10
+ jwt: string;
11
+ }
12
+
13
+ export interface IDomToolsContructorOptions {
14
+ ignoreGlobal?: boolean;
15
+ }
16
+
17
+ export class DomTools {
18
+ // ======
19
+ // STATIC
20
+ // ======
21
+ /**
22
+ * setups domtools
23
+ */
24
+ public static async setupDomTools(optionsArg: IDomToolsContructorOptions = {}) {
25
+ let domToolsInstance: DomTools;
26
+ if (!globalThis.deesDomTools && !optionsArg.ignoreGlobal) {
27
+ globalThis.deesDomTools = new DomTools(optionsArg);
28
+ domToolsInstance = globalThis.deesDomTools;
29
+
30
+ // lets make sure the dom is ready
31
+ const readyStateChangedFunc = () => {
32
+ if (document.readyState === 'interactive' || document.readyState === 'complete') {
33
+ domToolsInstance.elements.headElement = document.querySelector('head');
34
+ domToolsInstance.elements.bodyElement = document.querySelector('body');
35
+ domToolsInstance.domReady.resolve();
36
+ }
37
+ };
38
+ document.addEventListener('readystatechange', readyStateChangedFunc);
39
+ domToolsInstance.domToolsReady.resolve();
40
+ } else if (optionsArg.ignoreGlobal) {
41
+ domToolsInstance = new DomTools(optionsArg);
42
+ } else {
43
+ domToolsInstance = globalThis.deesDomTools;
44
+ }
45
+ await domToolsInstance.domToolsReady.promise;
46
+ return domToolsInstance;
47
+ }
48
+
49
+ /**
50
+ * if you can, use the static asysnc .setupDomTools() function instead since it is safer to use.
51
+ */
52
+ public static getGlobalDomToolsSync(): DomTools {
53
+ const globalDomTools: DomTools = globalThis.deesDomTools;
54
+ if (!globalDomTools) {
55
+ throw new Error('You tried to access domtools synchronously too early');
56
+ }
57
+ return globalThis.deesDomTools;
58
+ }
59
+
60
+ // ========
61
+ // INSTANCE
62
+ // ========
63
+ // elements
64
+ public elements: {
65
+ headElement: HTMLElement;
66
+ bodyElement: HTMLElement;
67
+ } = {
68
+ headElement: null,
69
+ bodyElement: null,
70
+ };
71
+
72
+ public websetup: WebSetup = new WebSetup({
73
+ metaObject: {
74
+ title: 'loading...',
75
+ },
76
+ });
77
+
78
+ public smartstate = new plugins.smartstate.Smartstate();
79
+ public domToolsStatePart = this.smartstate.getStatePart<IDomToolsState>('domtools', {
80
+ virtualViewport: 'native',
81
+ jwt: null,
82
+ });
83
+
84
+ public router = new plugins.smartrouter.SmartRouter({
85
+ debug: false,
86
+ });
87
+
88
+ public convenience = {
89
+ typedrequest: plugins.typedrequest,
90
+ smartdelay: plugins.smartdelay,
91
+ smartjson: plugins.smartjson,
92
+ smarturl: plugins.smarturl,
93
+ };
94
+
95
+ public deesComms = new plugins.deesComms.DeesComms();
96
+ public scroller = new plugins.SweetScroll({
97
+ /* some options */
98
+ }); // TODO: switch to scroller class
99
+ public themeManager = new ThemeManager(this);
100
+ public keyboard = new Keyboard(document.body);
101
+
102
+ public domToolsReady = plugins.smartpromise.defer();
103
+ public domReady = plugins.smartpromise.defer();
104
+ public globalStylesReady = plugins.smartpromise.defer();
105
+
106
+ constructor(optionsArg: IDomToolsContructorOptions) {}
107
+
108
+ private runOnceTrackerStringMap = new plugins.lik.Stringmap();
109
+ private runOnceResultMap = new plugins.lik.FastMap();
110
+
111
+ /**
112
+ * run a function once and always get the Promise of the first execution
113
+ * @param identifierArg the indentifier arg identifies functions. functions with the same identifier are considered equal
114
+ * @param funcArg the actual func arg to run
115
+ */
116
+ public async runOnce<T>(identifierArg: string, funcArg: () => Promise<T>) {
117
+ const runningId = `${identifierArg}+runningCheck`;
118
+ if (!this.runOnceTrackerStringMap.checkString(identifierArg)) {
119
+ this.runOnceTrackerStringMap.addString(identifierArg);
120
+ this.runOnceTrackerStringMap.addString(runningId);
121
+ const result = await funcArg();
122
+ this.runOnceResultMap.addToMap(identifierArg, result);
123
+ this.runOnceTrackerStringMap.removeString(runningId);
124
+ }
125
+ return await this.runOnceTrackerStringMap.registerUntilTrue(
126
+ (stringMap) => {
127
+ return !stringMap.includes(runningId);
128
+ },
129
+ () => {
130
+ return this.runOnceResultMap.getByKey(identifierArg);
131
+ }
132
+ );
133
+ }
134
+
135
+ // setStuff
136
+ /**
137
+ * allows to set global styles
138
+ * @param stylesText the css text you want to set
139
+ */
140
+ public async setGlobalStyles(stylesText: string) {
141
+ await this.domReady.promise;
142
+ const styleElement = document.createElement('style');
143
+ styleElement.type = 'text/css';
144
+ styleElement.appendChild(document.createTextNode(stylesText));
145
+ this.elements.headElement.appendChild(styleElement);
146
+ }
147
+
148
+ /**
149
+ * allows to set global styles
150
+ * @param stylesText the css text you want to set
151
+ */
152
+ public async setExternalScript(scriptLinkArg: string) {
153
+ await this.domReady.promise;
154
+ const done = plugins.smartpromise.defer();
155
+ const script = document.createElement('script');
156
+ script.src = scriptLinkArg;
157
+ script.addEventListener('load', function () {
158
+ done.resolve();
159
+ });
160
+ const parentNode = document.head || document.body;
161
+ parentNode.append(script);
162
+ await done.promise;
163
+ }
164
+
165
+ /**
166
+ * allows setting external css files
167
+ * @param cssLinkArg a url to an external stylesheet
168
+ */
169
+ public async setExternalCss(cssLinkArg: string) {
170
+ const cssTag = document.createElement('link');
171
+ cssTag.rel = 'stylesheet';
172
+ cssTag.crossOrigin = 'anonymous';
173
+ cssTag.href = cssLinkArg;
174
+ document.head.append(cssTag);
175
+ }
176
+
177
+ /**
178
+ * allows setting of website infos
179
+ * @param optionsArg the website info
180
+ */
181
+ public async setWebsiteInfo(optionsArg: plugins.websetup.IWebSetupConstructorOptions) {
182
+ await this.websetup.setup(optionsArg);
183
+ await this.websetup.readyPromise;
184
+ }
185
+ }