tool-shack 0.0.1 → 0.0.5

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 (71) hide show
  1. package/dist/browser/index.d.ts +3 -0
  2. package/dist/browser/index.js +4 -0
  3. package/dist/browser/index.js.map +1 -0
  4. package/dist/browser/isTabFocused.d.ts +1 -0
  5. package/dist/browser/isTabFocused.js +2 -0
  6. package/dist/browser/isTabFocused.js.map +1 -0
  7. package/dist/browser/preferColorScheme.d.ts +3 -0
  8. package/dist/browser/preferColorScheme.js +4 -0
  9. package/dist/browser/preferColorScheme.js.map +1 -0
  10. package/dist/browser/tabFocusListener.d.ts +1 -0
  11. package/dist/browser/tabFocusListener.js +12 -0
  12. package/dist/browser/tabFocusListener.js.map +1 -0
  13. package/dist/dateTime/dateAsIso.d.ts +1 -0
  14. package/dist/dateTime/dateAsIso.js +10 -0
  15. package/dist/dateTime/dateAsIso.js.map +1 -0
  16. package/dist/dateTime/index.d.ts +2 -0
  17. package/dist/dateTime/index.js +3 -0
  18. package/dist/dateTime/index.js.map +1 -0
  19. package/dist/dateTime/interfaces/parseDuration.d.ts +7 -0
  20. package/dist/dateTime/interfaces/parseDuration.js +2 -0
  21. package/dist/dateTime/interfaces/parseDuration.js.map +1 -0
  22. package/dist/dateTime/parseDuration.d.ts +2 -0
  23. package/dist/dateTime/parseDuration.js +11 -0
  24. package/dist/dateTime/parseDuration.js.map +1 -0
  25. package/dist/dom/appendAfter.d.ts +1 -0
  26. package/dist/dom/appendAfter.js +2 -0
  27. package/dist/dom/appendAfter.js.map +1 -0
  28. package/dist/dom/appendBefore.d.ts +1 -0
  29. package/dist/dom/appendBefore.js +2 -0
  30. package/dist/dom/appendBefore.js.map +1 -0
  31. package/dist/dom/createElement.d.ts +1 -1
  32. package/dist/dom/createElement.js +11 -2
  33. package/dist/dom/createElement.js.map +1 -1
  34. package/dist/dom/fireEvent.d.ts +1 -0
  35. package/dist/dom/fireEvent.js +2 -0
  36. package/dist/dom/fireEvent.js.map +1 -0
  37. package/dist/dom/index.d.ts +3 -0
  38. package/dist/dom/index.js +3 -0
  39. package/dist/dom/index.js.map +1 -1
  40. package/dist/dom/interfaces/createElement.d.ts +3 -0
  41. package/dist/index.d.ts +3 -0
  42. package/dist/index.js +3 -0
  43. package/dist/index.js.map +1 -1
  44. package/dist/string/escapeHTML.d.ts +1 -0
  45. package/dist/string/escapeHTML.js +6 -0
  46. package/dist/string/escapeHTML.js.map +1 -0
  47. package/dist/string/index.d.ts +1 -0
  48. package/dist/string/index.js +2 -0
  49. package/dist/string/index.js.map +1 -0
  50. package/dist/var/www/imeteo.local/public_html/resources/assets/ts/components/regioweather.d.ts +14 -0
  51. package/dist/var/www/imeteo.local/public_html/resources/assets/ts/pages/forecast.d.ts +1 -0
  52. package/dist/var/www/imeteo.local/public_html/resources/assets/ts/pages/homepage.d.ts +1 -0
  53. package/dist/var/www/imeteo.local/public_html/resources/assets/ts/pages/regioweather.d.ts +1 -0
  54. package/package.json +4 -4
  55. package/src/browser/index.ts +3 -0
  56. package/src/browser/isTabFocused.ts +1 -0
  57. package/src/browser/preferColorScheme.ts +5 -0
  58. package/src/browser/tabFocusListener.ts +11 -0
  59. package/src/dateTime/dateAsIso.ts +12 -0
  60. package/src/dateTime/index.ts +2 -0
  61. package/src/dateTime/interfaces/parseDuration.ts +7 -0
  62. package/src/dateTime/parseDuration.ts +13 -0
  63. package/src/dom/appendAfter.ts +2 -0
  64. package/src/dom/appendBefore.ts +2 -0
  65. package/src/dom/createElement.ts +12 -4
  66. package/src/dom/fireEvent.ts +1 -0
  67. package/src/dom/index.ts +3 -0
  68. package/src/dom/interfaces/createElement.ts +6 -0
  69. package/src/index.ts +3 -0
  70. package/src/string/escapeHTML.ts +6 -0
  71. package/src/string/index.ts +1 -0
@@ -0,0 +1,3 @@
1
+ export * from './isTabFocused';
2
+ export * from './preferColorScheme';
3
+ export * from './tabFocusListener';
@@ -0,0 +1,4 @@
1
+ export * from './isTabFocused';
2
+ export * from './preferColorScheme';
3
+ export * from './tabFocusListener';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/browser/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC"}
@@ -0,0 +1 @@
1
+ export declare const isTabFocused: () => boolean;
@@ -0,0 +1,2 @@
1
+ export const isTabFocused = () => !document.hidden;
2
+ //# sourceMappingURL=isTabFocused.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isTabFocused.js","sourceRoot":"","sources":["../../src/browser/isTabFocused.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,YAAY,GAAG,GAAY,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare const preferLightColorScheme: () => boolean;
2
+ export declare const preferDarkColorScheme: () => boolean;
3
+ export declare const preferColorScheme: () => 'light' | 'dark';
@@ -0,0 +1,4 @@
1
+ export const preferLightColorScheme = () => !!(window.matchMedia('(prefers-color-scheme: light)').matches);
2
+ export const preferDarkColorScheme = () => !!(window.matchMedia('(prefers-color-scheme: dark)').matches);
3
+ export const preferColorScheme = () => preferLightColorScheme() ? 'light' : 'dark';
4
+ //# sourceMappingURL=preferColorScheme.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preferColorScheme.js","sourceRoot":"","sources":["../../src/browser/preferColorScheme.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAY,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,+BAA+B,CAAC,CAAC,OAAO,CAAC,CAAC;AAEpH,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAY,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,8BAA8B,CAAC,CAAC,OAAO,CAAC,CAAC;AAElH,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAmB,EAAE,CAAC,sBAAsB,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC"}
@@ -0,0 +1 @@
1
+ export declare const tabFocusListener: (focusCallback: () => void, blurCallback: () => void) => void;
@@ -0,0 +1,12 @@
1
+ import { isTabFocused } from './isTabFocused';
2
+ export const tabFocusListener = (focusCallback, blurCallback) => {
3
+ document.addEventListener('visibilitychange', () => {
4
+ if (isTabFocused()) {
5
+ focusCallback.call(this);
6
+ }
7
+ else {
8
+ blurCallback.call(this);
9
+ }
10
+ });
11
+ };
12
+ //# sourceMappingURL=tabFocusListener.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tabFocusListener.js","sourceRoot":"","sources":["../../src/browser/tabFocusListener.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,aAAyB,EAAE,YAAwB,EAAQ,EAAE;IAC5F,QAAQ,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,GAAG,EAAE;QACjD,IAAI,YAAY,EAAE,EAAE;YAClB,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC1B;aAAM;YACL,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACzB;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAA"}
@@ -0,0 +1 @@
1
+ export declare const dateAsIso: (date: Date) => string;
@@ -0,0 +1,10 @@
1
+ export const dateAsIso = (date) => {
2
+ const timezoneOffset = date.getTimezoneOffset();
3
+ let isoFormat = '';
4
+ isoFormat += `${date.getFullYear()}-${padNumber(date.getMonth() + 1)}-${padNumber(date.getDate())}`;
5
+ isoFormat += `T${padNumber(date.getHours())}:${padNumber(date.getMinutes())}:${padNumber(date.getSeconds())}`;
6
+ isoFormat += `${timezoneOffset <= 0 ? '+' : '-'}${padNumber(Math.floor(Math.abs(timezoneOffset) / 60))}:${padNumber(Math.abs(timezoneOffset) % 60)}`;
7
+ return isoFormat;
8
+ };
9
+ const padNumber = (number) => `${number}`.padStart(2, '0');
10
+ //# sourceMappingURL=dateAsIso.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dateAsIso.js","sourceRoot":"","sources":["../../src/dateTime/dateAsIso.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,IAAU,EAAE,EAAE;IACtC,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAEhD,IAAI,SAAS,GAAG,EAAE,CAAC;IACnB,SAAS,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;IACpG,SAAS,IAAI,IAAI,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC;IAC9G,SAAS,IAAI,GAAG,cAAc,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC;IAErJ,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEF,MAAM,SAAS,GAAG,CAAC,MAAc,EAAU,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './dateAsIso';
2
+ export * from './parseDuration';
@@ -0,0 +1,3 @@
1
+ export * from './dateAsIso';
2
+ export * from './parseDuration';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/dateTime/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1,7 @@
1
+ export interface IDuration {
2
+ day: number;
3
+ hour: number;
4
+ minute: number;
5
+ second: number;
6
+ millisecond: number;
7
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=parseDuration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parseDuration.js","sourceRoot":"","sources":["../../../src/dateTime/interfaces/parseDuration.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ import { IDuration } from './interfaces/parseDuration';
2
+ export declare const parseDuration: (durationInMs: number) => IDuration;
@@ -0,0 +1,11 @@
1
+ export const parseDuration = (durationInMs) => {
2
+ durationInMs = Math.abs(durationInMs);
3
+ return {
4
+ day: Math.floor(durationInMs / (24 * 60 * 60 * 1000)),
5
+ hour: Math.floor(durationInMs / (60 * 60 * 1000)) % 24,
6
+ minute: Math.floor(durationInMs / (60 * 1000)) % 60,
7
+ second: Math.floor(durationInMs / 1000) % 60,
8
+ millisecond: Math.floor(durationInMs) % 1000,
9
+ };
10
+ };
11
+ //# sourceMappingURL=parseDuration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parseDuration.js","sourceRoot":"","sources":["../../src/dateTime/parseDuration.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,YAAoB,EAAa,EAAE;IAC/D,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAEtC,OAAO;QACL,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QACrD,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,EAAE;QACtD,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,EAAE;QACnD,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE;QAC5C,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,IAAI;KAC7C,CAAC;AACJ,CAAC,CAAA"}
@@ -0,0 +1 @@
1
+ export declare const appendAfter: (newNode: HTMLElement, referenceNode: HTMLElement) => boolean;
@@ -0,0 +1,2 @@
1
+ export const appendAfter = (newNode, referenceNode) => { var _a; return !!((_a = referenceNode.parentElement) === null || _a === void 0 ? void 0 : _a.insertBefore(newNode, referenceNode.nextSibling)); };
2
+ //# sourceMappingURL=appendAfter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"appendAfter.js","sourceRoot":"","sources":["../../src/dom/appendAfter.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,OAAoB,EAAE,aAA0B,EAAW,EAAE,WACvF,OAAA,CAAC,CAAC,CAAA,MAAA,aAAa,CAAC,aAAa,0CAAE,YAAY,CAAC,OAAO,EAAE,aAAa,CAAC,WAAW,CAAC,CAAA,CAAA,EAAA,CAAC"}
@@ -0,0 +1 @@
1
+ export declare const appendBefore: (newNode: HTMLElement, referenceNode: HTMLElement) => boolean;
@@ -0,0 +1,2 @@
1
+ export const appendBefore = (newNode, referenceNode) => { var _a; return !!((_a = referenceNode.parentElement) === null || _a === void 0 ? void 0 : _a.insertBefore(newNode, referenceNode)); };
2
+ //# sourceMappingURL=appendBefore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"appendBefore.js","sourceRoot":"","sources":["../../src/dom/appendBefore.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,OAAoB,EAAE,aAA0B,EAAW,EAAE,WACxF,OAAA,CAAC,CAAC,CAAA,MAAA,aAAa,CAAC,aAAa,0CAAE,YAAY,CAAC,OAAO,EAAE,aAAa,CAAC,CAAA,CAAA,EAAA,CAAC"}
@@ -1,2 +1,2 @@
1
1
  import { IExtendingElementProps } from './interfaces/createElement';
2
- export declare const createElement: <T = HTMLElement>(tagName: string, props?: (Partial<T> & IExtendingElementProps) | undefined) => T;
2
+ export declare const createElement: <T = HTMLElement>(tagName: string, props?: (Partial<Omit<T, "children">> & IExtendingElementProps) | undefined) => T;
@@ -2,7 +2,16 @@ export const createElement = (tagName, props) => {
2
2
  const element = document.createElement(tagName);
3
3
  if (props) {
4
4
  for (let key in props) {
5
- if (key === 'children') {
5
+ const value = props[key];
6
+ if (key === 'role') {
7
+ element.setAttribute(key, value);
8
+ }
9
+ else if (key === 'aria') {
10
+ for (let ariaKey in props.aria) {
11
+ element.setAttribute(`aria-${ariaKey}`, value[ariaKey]);
12
+ }
13
+ }
14
+ else if (key === 'children') {
6
15
  props.children.forEach((child) => element.appendChild(child));
7
16
  }
8
17
  else if (key === 'listeners') {
@@ -12,7 +21,7 @@ export const createElement = (tagName, props) => {
12
21
  }
13
22
  }
14
23
  else {
15
- element[key] = props[key];
24
+ element[key] = value;
16
25
  }
17
26
  }
18
27
  }
@@ -1 +1 @@
1
- {"version":3,"file":"createElement.js","sourceRoot":"","sources":["../../src/dom/createElement.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,aAAa,GAAG,CAAmB,OAAe,EAAE,KAA2C,EAAK,EAAE;IACjH,MAAM,OAAO,GAAgB,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAE7D,IAAI,KAAK,EAAE;QACT,KAAK,IAAI,GAAG,IAAI,KAAK,EAAE;YACrB,IAAI,GAAG,KAAG,UAAU,EAAE;gBACpB,KAAK,CAAC,QAAS,CAAC,OAAO,CAAC,CAAC,KAAkB,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;aAC7E;iBAAM,IAAI,GAAG,KAAG,WAAW,EAAE;gBAC5B,KAAK,IAAI,SAAS,IAAI,KAAK,CAAC,SAAU,EAAE;oBACtC,MAAM,YAAY,GAAG,CACnB,KAAK,CAAC,SAAU,CAAC,SAAS,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,SAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAU,CAAC,SAAS,CAAC,CAAC,CACnE,CAAC;oBAE1C,YAAY,CAAC,OAAO,CAAC,CAAC,EAAsC,EAAE,EAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;iBAC3G;aACF;iBAAM;gBACJ,OAAe,CAAC,GAAG,CAAC,GAAI,KAAa,CAAC,GAAG,CAAC,CAAC;aAC7C;SACF;KACF;IAED,OAAO,OAAuB,CAAC;AACjC,CAAC,CAAC"}
1
+ {"version":3,"file":"createElement.js","sourceRoot":"","sources":["../../src/dom/createElement.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,aAAa,GAAG,CAAmB,OAAe,EAAE,KAA6D,EAAK,EAAE;IACnI,MAAM,OAAO,GAAgB,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAE7D,IAAI,KAAK,EAAE;QACT,KAAK,IAAI,GAAG,IAAI,KAAK,EAAE;YACrB,MAAM,KAAK,GAAI,KAAa,CAAC,GAAG,CAAC,CAAC;YAElC,IAAI,GAAG,KAAK,MAAM,EAAE;gBAClB,OAAO,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;aAClC;iBAAM,IAAI,GAAG,KAAK,MAAM,EAAE;gBACzB,KAAK,IAAI,OAAO,IAAI,KAAK,CAAC,IAAK,EAAE;oBAC/B,OAAO,CAAC,YAAY,CAAC,QAAQ,OAAO,EAAE,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;iBACzD;aACF;iBAAM,IAAI,GAAG,KAAK,UAAU,EAAE;gBAC7B,KAAK,CAAC,QAAS,CAAC,OAAO,CAAC,CAAC,KAAkB,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;aAC7E;iBAAM,IAAI,GAAG,KAAK,WAAW,EAAE;gBAC9B,KAAK,IAAI,SAAS,IAAI,KAAK,CAAC,SAAU,EAAE;oBACtC,MAAM,YAAY,GAAG,CACnB,KAAK,CAAC,SAAU,CAAC,SAAS,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,SAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAU,CAAC,SAAS,CAAC,CAAC,CACnE,CAAC;oBAE1C,YAAY,CAAC,OAAO,CAAC,CAAC,EAAsC,EAAE,EAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;iBAC3G;aACF;iBAAM;gBACJ,OAAe,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;aAC/B;SACF;KACF;IAED,OAAO,OAAuB,CAAC;AACjC,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ export declare const fireEvent: (element: HTMLElement, eventType: string) => boolean;
@@ -0,0 +1,2 @@
1
+ export const fireEvent = (element, eventType) => element.dispatchEvent(new Event(eventType));
2
+ //# sourceMappingURL=fireEvent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fireEvent.js","sourceRoot":"","sources":["../../src/dom/fireEvent.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,OAAoB,EAAE,SAAiB,EAAW,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC"}
@@ -1,3 +1,6 @@
1
1
  export * from './addAsyncEventListener';
2
2
  export * from './addEventListener';
3
+ export * from './appendAfter';
4
+ export * from './appendBefore';
3
5
  export * from './createElement';
6
+ export * from './fireEvent';
package/dist/dom/index.js CHANGED
@@ -1,4 +1,7 @@
1
1
  export * from './addAsyncEventListener';
2
2
  export * from './addEventListener';
3
+ export * from './appendAfter';
4
+ export * from './appendBefore';
3
5
  export * from './createElement';
6
+ export * from './fireEvent';
4
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/dom/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/dom/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC"}
@@ -1,4 +1,7 @@
1
+ export declare type TAriaLabelKey = 'atomic' | 'busy' | 'controls' | 'current' | 'describedby' | 'details' | 'disables' | 'dropeffect' | 'errormessage' | 'expanded' | 'flowto' | 'grabbed' | 'haspopup' | 'hidden' | 'invalid' | 'keyshortcuts' | 'label' | 'labelledby' | 'live' | 'modal' | 'owns' | 'relevant' | 'roledescription';
1
2
  export interface IExtendingElementProps {
2
3
  children?: HTMLElement[];
3
4
  listeners?: Record<string, EventListenerOrEventListenerObject | EventListenerOrEventListenerObject[]>;
5
+ role?: string;
6
+ aria?: Partial<Record<TAriaLabelKey, string>>;
4
7
  }
package/dist/index.d.ts CHANGED
@@ -1,2 +1,5 @@
1
+ export * from './browser';
2
+ export * from './dateTime';
1
3
  export * from './dom';
2
4
  export * from './schedule';
5
+ export * from './string';
package/dist/index.js CHANGED
@@ -1,3 +1,6 @@
1
+ export * from './browser';
2
+ export * from './dateTime';
1
3
  export * from './dom';
2
4
  export * from './schedule';
5
+ export * from './string';
3
6
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAC;AACtB,cAAc,YAAY,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,OAAO,CAAC;AACtB,cAAc,YAAY,CAAA;AAC1B,cAAc,UAAU,CAAA"}
@@ -0,0 +1 @@
1
+ export declare const escapeHTML: (html: string) => string;
@@ -0,0 +1,6 @@
1
+ export const escapeHTML = (html) => {
2
+ const tempDiv = document.createElement('div');
3
+ tempDiv.innerText = html;
4
+ return tempDiv.innerHTML;
5
+ };
6
+ //# sourceMappingURL=escapeHTML.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"escapeHTML.js","sourceRoot":"","sources":["../../src/string/escapeHTML.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,IAAY,EAAU,EAAE;IACjD,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC9C,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IAEzB,OAAO,OAAO,CAAC,SAAS,CAAC;AAC3B,CAAC,CAAA"}
@@ -0,0 +1 @@
1
+ export * from './escapeHTML';
@@ -0,0 +1,2 @@
1
+ export * from './escapeHTML';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/string/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC"}
@@ -0,0 +1,14 @@
1
+ export declare class regioweatherClass {
2
+ private readonly input;
3
+ private readonly container;
4
+ private readonly trigger;
5
+ private places;
6
+ private geoSearchObject;
7
+ private customListFetched;
8
+ constructor();
9
+ private setUpListeners;
10
+ private renderPlaces;
11
+ private setUpSearch;
12
+ private fetchCustomList;
13
+ private setPreferences;
14
+ }
package/package.json CHANGED
@@ -1,17 +1,17 @@
1
1
  {
2
2
  "name": "tool-shack",
3
- "version": "0.0.1",
3
+ "version": "0.0.5",
4
4
  "description": "Collection of usefull functions to ease work",
5
5
  "main": "src",
6
6
  "author": "David Myška",
7
7
  "license": "MIT",
8
8
  "bugs": {
9
- "url": "https://www.davidmyska.com/tool-shack/issues"
9
+ "url": "https://github.com/miskith/tool-shack/issues"
10
10
  },
11
- "homepage": "https://www.davidmyska.com/tool-shack#readme",
11
+ "homepage": "https://github.com/miskith/tool-shack#readme",
12
12
  "repository": {
13
13
  "type": "git",
14
- "url": "git+https://www.davidmyska.com/tool-shack.git"
14
+ "url": "git+https://github.com/miskith/tool-shack.git"
15
15
  },
16
16
  "scripts": {
17
17
  "build": "tsc -p ."
@@ -0,0 +1,3 @@
1
+ export * from './isTabFocused';
2
+ export * from './preferColorScheme';
3
+ export * from './tabFocusListener';
@@ -0,0 +1 @@
1
+ export const isTabFocused = (): boolean => !document.hidden;
@@ -0,0 +1,5 @@
1
+ export const preferLightColorScheme = (): boolean => !!(window.matchMedia('(prefers-color-scheme: light)').matches);
2
+
3
+ export const preferDarkColorScheme = (): boolean => !!(window.matchMedia('(prefers-color-scheme: dark)').matches);
4
+
5
+ export const preferColorScheme = (): 'light'|'dark' => preferLightColorScheme() ? 'light' : 'dark';
@@ -0,0 +1,11 @@
1
+ import { isTabFocused } from './isTabFocused';
2
+
3
+ export const tabFocusListener = (focusCallback: () => void, blurCallback: () => void): void => {
4
+ document.addEventListener('visibilitychange', () => {
5
+ if (isTabFocused()) {
6
+ focusCallback.call(this);
7
+ } else {
8
+ blurCallback.call(this);
9
+ }
10
+ });
11
+ }
@@ -0,0 +1,12 @@
1
+ export const dateAsIso = (date: Date) => {
2
+ const timezoneOffset = date.getTimezoneOffset();
3
+
4
+ let isoFormat = '';
5
+ isoFormat += `${date.getFullYear()}-${padNumber(date.getMonth() + 1)}-${padNumber(date.getDate())}`;
6
+ isoFormat += `T${padNumber(date.getHours())}:${padNumber(date.getMinutes())}:${padNumber(date.getSeconds())}`;
7
+ isoFormat += `${timezoneOffset <= 0 ? '+' : '-'}${padNumber(Math.floor(Math.abs(timezoneOffset) / 60))}:${padNumber(Math.abs(timezoneOffset) % 60)}`;
8
+
9
+ return isoFormat;
10
+ };
11
+
12
+ const padNumber = (number: number): string => `${number}`.padStart(2, '0');
@@ -0,0 +1,2 @@
1
+ export * from './dateAsIso';
2
+ export * from './parseDuration';
@@ -0,0 +1,7 @@
1
+ export interface IDuration {
2
+ day: number;
3
+ hour: number;
4
+ minute: number;
5
+ second: number;
6
+ millisecond: number;
7
+ }
@@ -0,0 +1,13 @@
1
+ import { IDuration } from './interfaces/parseDuration';
2
+
3
+ export const parseDuration = (durationInMs: number): IDuration => {
4
+ durationInMs = Math.abs(durationInMs);
5
+
6
+ return {
7
+ day: Math.floor(durationInMs / (24 * 60 * 60 * 1000)),
8
+ hour: Math.floor(durationInMs / (60 * 60 * 1000)) % 24,
9
+ minute: Math.floor(durationInMs / (60 * 1000)) % 60,
10
+ second: Math.floor(durationInMs / 1000) % 60,
11
+ millisecond: Math.floor(durationInMs) % 1000,
12
+ };
13
+ }
@@ -0,0 +1,2 @@
1
+ export const appendAfter = (newNode: HTMLElement, referenceNode: HTMLElement): boolean =>
2
+ !!referenceNode.parentElement?.insertBefore(newNode, referenceNode.nextSibling);
@@ -0,0 +1,2 @@
1
+ export const appendBefore = (newNode: HTMLElement, referenceNode: HTMLElement): boolean =>
2
+ !!referenceNode.parentElement?.insertBefore(newNode, referenceNode);
@@ -1,13 +1,21 @@
1
1
  import { IExtendingElementProps } from './interfaces/createElement';
2
2
 
3
- export const createElement = <T = HTMLElement> (tagName: string, props?: Partial<T> & IExtendingElementProps): T => {
3
+ export const createElement = <T = HTMLElement> (tagName: string, props?: Partial<Omit<T, 'children'>> & IExtendingElementProps): T => {
4
4
  const element: HTMLElement = document.createElement(tagName);
5
5
 
6
6
  if (props) {
7
7
  for (let key in props) {
8
- if (key==='children') {
8
+ const value = (props as any)[key];
9
+
10
+ if (key === 'role') {
11
+ element.setAttribute(key, value);
12
+ } else if (key === 'aria') {
13
+ for (let ariaKey in props.aria!) {
14
+ element.setAttribute(`aria-${ariaKey}`, value[ariaKey]);
15
+ }
16
+ } else if (key === 'children') {
9
17
  props.children!.forEach((child: HTMLElement) => element.appendChild(child));
10
- } else if (key==='listeners') {
18
+ } else if (key === 'listeners') {
11
19
  for (let eventName in props.listeners!) {
12
20
  const functionList = (
13
21
  props.listeners![eventName] instanceof Array ? props.listeners![eventName] : [props.listeners![eventName]]
@@ -16,7 +24,7 @@ export const createElement = <T = HTMLElement> (tagName: string, props?: Partial
16
24
  functionList.forEach((fn: EventListenerOrEventListenerObject) => element.addEventListener(eventName, fn));
17
25
  }
18
26
  } else {
19
- (element as any)[key] = (props as any)[key];
27
+ (element as any)[key] = value;
20
28
  }
21
29
  }
22
30
  }
@@ -0,0 +1 @@
1
+ export const fireEvent = (element: HTMLElement, eventType: string): boolean => element.dispatchEvent(new Event(eventType));
package/src/dom/index.ts CHANGED
@@ -1,3 +1,6 @@
1
1
  export * from './addAsyncEventListener';
2
2
  export * from './addEventListener';
3
+ export * from './appendAfter';
4
+ export * from './appendBefore';
3
5
  export * from './createElement';
6
+ export * from './fireEvent';
@@ -1,4 +1,10 @@
1
+ export type TAriaLabelKey = 'atomic' | 'busy' | 'controls' | 'current' | 'describedby' | 'details' | 'disables' |
2
+ 'dropeffect' | 'errormessage' | 'expanded' | 'flowto' | 'grabbed' | 'haspopup' | 'hidden' | 'invalid' |
3
+ 'keyshortcuts' | 'label' | 'labelledby' | 'live' | 'modal' | 'owns' | 'relevant' | 'roledescription';
4
+
1
5
  export interface IExtendingElementProps {
2
6
  children?: HTMLElement[];
3
7
  listeners?: Record<string, EventListenerOrEventListenerObject | EventListenerOrEventListenerObject[]>;
8
+ role?: string;
9
+ aria?: Partial<Record<TAriaLabelKey, string>>;
4
10
  }
package/src/index.ts CHANGED
@@ -1,2 +1,5 @@
1
+ export * from './browser';
2
+ export * from './dateTime';
1
3
  export * from './dom';
2
4
  export * from './schedule'
5
+ export * from './string'
@@ -0,0 +1,6 @@
1
+ export const escapeHTML = (html: string): string => {
2
+ const tempDiv = document.createElement('div');
3
+ tempDiv.innerText = html;
4
+
5
+ return tempDiv.innerHTML;
6
+ }
@@ -0,0 +1 @@
1
+ export * from './escapeHTML';