danholibraryjs 1.11.0 → 2.0.1

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 (210) hide show
  1. package/README.md +0 -1
  2. package/_package.github-release.json +6 -0
  3. package/_package.npm-release.json +6 -0
  4. package/dist/Classes/DanhoLogger.d.ts +23 -0
  5. package/dist/Classes/DanhoLogger.js +65 -0
  6. package/dist/Classes/Events/Event.d.ts +66 -66
  7. package/dist/Classes/Events/Event.js +114 -114
  8. package/dist/Classes/Events/EventCollection.d.ts +57 -57
  9. package/dist/Classes/Events/EventCollection.js +109 -109
  10. package/dist/Classes/Events/EventEmitter.d.ts +74 -74
  11. package/dist/Classes/Events/EventEmitter.js +97 -97
  12. package/dist/Classes/Events/index.d.ts +3 -3
  13. package/dist/Classes/Events/index.js +19 -19
  14. package/dist/Classes/Time/Date.d.ts +148 -147
  15. package/dist/Classes/Time/Date.js +241 -238
  16. package/dist/Classes/Time/Time.d.ts +66 -65
  17. package/dist/Classes/Time/Time.js +120 -117
  18. package/dist/Classes/Time/TimeProperties.d.ts +3 -3
  19. package/dist/Classes/Time/TimeProperties.js +2 -2
  20. package/dist/Classes/Time/TimeSpan.d.ts +123 -123
  21. package/dist/Classes/Time/TimeSpan.js +179 -179
  22. package/dist/Classes/Time/index.d.ts +4 -4
  23. package/dist/Classes/Time/index.js +20 -20
  24. package/dist/Classes/index.d.ts +4 -3
  25. package/dist/Classes/index.js +20 -19
  26. package/dist/Classes/store.d.ts +75 -75
  27. package/dist/Classes/store.js +84 -84
  28. package/dist/Extensions/Array/array.extension.d.ts +42 -0
  29. package/dist/Extensions/Array/array.extension.js +57 -0
  30. package/dist/Extensions/Array/crud.extension.d.ts +24 -0
  31. package/dist/Extensions/Array/crud.extension.js +28 -0
  32. package/dist/Extensions/Array/index.d.ts +6 -0
  33. package/dist/Extensions/Array/index.js +22 -0
  34. package/dist/Extensions/Array/loop.extension.d.ts +18 -0
  35. package/dist/Extensions/Array/loop.extension.js +23 -0
  36. package/dist/Extensions/Array/random.extension.d.ts +23 -0
  37. package/dist/Extensions/Array/random.extension.js +35 -0
  38. package/dist/Extensions/Array/sort.extension.d.ts +27 -0
  39. package/dist/Extensions/Array/sort.extension.js +31 -0
  40. package/dist/Extensions/Array/string.extension.d.ts +13 -0
  41. package/dist/Extensions/Array/string.extension.js +14 -0
  42. package/dist/Extensions/Function.d.ts +29 -14
  43. package/dist/Extensions/Function.js +23 -10
  44. package/dist/Extensions/Map.d.ts +54 -54
  45. package/dist/Extensions/Map.js +42 -42
  46. package/dist/Extensions/Number.d.ts +13 -0
  47. package/dist/Extensions/Number.js +40 -0
  48. package/dist/Extensions/Object/arrays.extension.d.ts +17 -0
  49. package/dist/Extensions/Object/arrays.extension.js +13 -0
  50. package/dist/Extensions/Object/booleans.extension.d.ts +18 -0
  51. package/dist/Extensions/Object/booleans.extension.js +37 -0
  52. package/dist/Extensions/Object/extracts.extension.d.ts +38 -0
  53. package/dist/Extensions/Object/extracts.extension.js +72 -0
  54. package/dist/Extensions/Object/index.d.ts +4 -49
  55. package/dist/Extensions/Object/index.js +20 -38
  56. package/dist/Extensions/Object/properties.d.ts +28 -28
  57. package/dist/Extensions/Object/properties.extension.d.ts +33 -0
  58. package/dist/Extensions/Object/properties.extension.js +21 -0
  59. package/dist/Extensions/Object/properties.js +20 -20
  60. package/dist/Extensions/String/case.extension.d.ts +12 -0
  61. package/dist/Extensions/String/case.extension.js +55 -0
  62. package/dist/Extensions/String/index.d.ts +1 -0
  63. package/dist/{Functions → Extensions/String}/index.js +17 -21
  64. package/dist/Extensions/index.d.ts +6 -17
  65. package/dist/Extensions/index.js +22 -30
  66. package/dist/Interfaces/ElementOptions.d.ts +15 -15
  67. package/dist/Interfaces/ElementOptions.js +2 -2
  68. package/dist/Interfaces/IReplacement.d.ts +12 -12
  69. package/dist/Interfaces/IReplacement.js +2 -2
  70. package/dist/Interfaces/index.d.ts +2 -2
  71. package/dist/Interfaces/index.js +18 -18
  72. package/dist/Types/Able.d.ts +16 -0
  73. package/dist/Types/Able.js +2 -0
  74. package/dist/Types/Array.d.ts +6 -0
  75. package/dist/Types/Array.js +2 -0
  76. package/dist/Types/BetterTypes.d.ts +9 -9
  77. package/dist/Types/BetterTypes.js +2 -2
  78. package/dist/Types/C#.d.ts +8 -0
  79. package/dist/Types/C#.js +2 -0
  80. package/dist/Types/Date.d.ts +6 -6
  81. package/dist/Types/Date.js +2 -2
  82. package/dist/Types/Events.d.ts +10 -10
  83. package/dist/Types/Events.js +2 -2
  84. package/dist/Types/Function.d.ts +5 -0
  85. package/dist/Types/Function.js +2 -0
  86. package/dist/Types/Object.d.ts +4 -0
  87. package/dist/Types/Object.js +2 -0
  88. package/dist/Types/PropertiesWith.d.ts +34 -13
  89. package/dist/Types/PropertiesWith.js +2 -2
  90. package/dist/Types/String.d.ts +1 -0
  91. package/dist/Types/String.js +2 -0
  92. package/dist/Types/TransformTypes.d.ts +22 -16
  93. package/dist/Types/TransformTypes.js +2 -2
  94. package/dist/Types/index.d.ts +24 -65
  95. package/dist/Types/index.js +27 -21
  96. package/dist/Utils/{ApiUtil → ApiUtils}/ApiTypes.d.ts +15 -15
  97. package/dist/Utils/{ApiUtil → ApiUtils}/ApiTypes.js +15 -15
  98. package/dist/Utils/{ApiUtil → ApiUtils}/RequestUtil.d.ts +19 -19
  99. package/dist/Utils/{ApiUtil → ApiUtils}/RequestUtil.js +73 -73
  100. package/dist/Utils/{ApiUtil → ApiUtils}/index.d.ts +20 -20
  101. package/dist/Utils/{ApiUtil → ApiUtils}/index.js +33 -33
  102. package/dist/Utils/ColorUtils.d.ts +11 -0
  103. package/dist/Utils/ColorUtils.js +93 -0
  104. package/dist/Utils/{FormUtil.d.ts → FormUtils.d.ts} +6 -6
  105. package/dist/Utils/{FormUtil.js → FormUtils.js} +35 -35
  106. package/dist/Utils/NumberUtils.d.ts +1 -0
  107. package/dist/Utils/NumberUtils.js +7 -0
  108. package/dist/Utils/PatcherUtils.d.ts +6 -0
  109. package/dist/Utils/PatcherUtils.js +80 -0
  110. package/dist/Utils/StringUtils.d.ts +3 -0
  111. package/dist/Utils/StringUtils.js +47 -0
  112. package/dist/Utils/TimeUtils/debounce.util.d.ts +22 -0
  113. package/dist/Utils/TimeUtils/debounce.util.js +78 -0
  114. package/dist/Utils/TimeUtils/functions.util.d.ts +4 -0
  115. package/dist/Utils/TimeUtils/functions.util.js +21 -0
  116. package/dist/Utils/TimeUtils/index.d.ts +15 -0
  117. package/dist/Utils/TimeUtils/index.js +34 -0
  118. package/dist/Utils/TimeUtils/throttle.util.d.ts +15 -0
  119. package/dist/Utils/TimeUtils/throttle.util.js +43 -0
  120. package/dist/Utils/index.d.ts +7 -2
  121. package/dist/Utils/index.js +23 -18
  122. package/dist/index.d.ts +4 -5
  123. package/dist/index.js +20 -21
  124. package/docs/Classes.md +78 -3
  125. package/docs/Extensions.md +219 -78
  126. package/docs/Types.md +202 -58
  127. package/docs/index.md +0 -1
  128. package/package.json +4 -2
  129. package/src/Classes/DanhoLogger.ts +78 -0
  130. package/src/Classes/Events/Event.ts +96 -96
  131. package/src/Classes/Events/EventCollection.ts +90 -90
  132. package/src/Classes/Events/EventEmitter.ts +68 -68
  133. package/src/Classes/Time/Date.ts +219 -216
  134. package/src/Classes/Time/Time.ts +109 -104
  135. package/src/Classes/Time/TimeSpan.ts +171 -171
  136. package/src/Classes/index.ts +1 -0
  137. package/src/Classes/store.ts +22 -22
  138. package/src/Extensions/Array/array.extension.ts +103 -0
  139. package/src/Extensions/Array/crud.extension.ts +46 -0
  140. package/src/Extensions/Array/index.ts +6 -0
  141. package/src/Extensions/Array/loop.extension.ts +38 -0
  142. package/src/Extensions/Array/random.extension.ts +56 -0
  143. package/src/Extensions/Array/sort.extension.ts +52 -0
  144. package/src/Extensions/Array/string.extension.ts +22 -0
  145. package/src/Extensions/Function.ts +37 -10
  146. package/src/Extensions/Map.ts +56 -56
  147. package/src/Extensions/Number.ts +50 -0
  148. package/src/Extensions/Object/arrays.extension.ts +27 -0
  149. package/src/Extensions/Object/booleans.extension.ts +46 -0
  150. package/src/Extensions/Object/extracts.extension.ts +102 -0
  151. package/src/Extensions/Object/index.ts +4 -82
  152. package/src/Extensions/Object/properties.extension.ts +59 -0
  153. package/src/Extensions/Object/properties.ts +36 -36
  154. package/src/Extensions/String/case.extension.ts +95 -0
  155. package/src/Extensions/String/index.ts +1 -0
  156. package/src/Extensions/index.ts +3 -21
  157. package/src/Interfaces/ElementOptions.ts +7 -7
  158. package/src/Interfaces/IReplacement.ts +2 -2
  159. package/src/Types/Able.ts +22 -0
  160. package/src/Types/Array.ts +7 -0
  161. package/src/Types/C#.ts +9 -0
  162. package/src/Types/Date.ts +1 -1
  163. package/src/Types/Events.ts +12 -12
  164. package/src/Types/Function.ts +10 -0
  165. package/src/Types/Object.ts +4 -0
  166. package/src/Types/PropertiesWith.ts +35 -4
  167. package/src/Types/String.ts +1 -0
  168. package/src/Types/TransformTypes.ts +21 -13
  169. package/src/Types/index.ts +7 -69
  170. package/src/Utils/{ApiUtil → ApiUtils}/ApiTypes.ts +2 -1
  171. package/src/Utils/{ApiUtil → ApiUtils}/index.ts +1 -1
  172. package/src/Utils/ColorUtils.ts +102 -0
  173. package/src/Utils/{FormUtil.ts → FormUtils.ts} +2 -2
  174. package/src/Utils/NumberUtils.ts +3 -0
  175. package/src/Utils/PatcherUtils.ts +111 -0
  176. package/src/Utils/StringUtils.ts +44 -0
  177. package/src/Utils/TimeUtils/debounce.util.ts +85 -0
  178. package/src/Utils/TimeUtils/functions.util.ts +18 -0
  179. package/src/Utils/TimeUtils/index.ts +9 -0
  180. package/src/Utils/TimeUtils/throttle.util.ts +44 -0
  181. package/src/Utils/index.ts +8 -2
  182. package/src/index.ts +0 -1
  183. package/dist/Extensions/Array.d.ts +0 -52
  184. package/dist/Extensions/Array.js +0 -51
  185. package/dist/Extensions/Document.d.ts +0 -27
  186. package/dist/Extensions/Document.js +0 -32
  187. package/dist/Extensions/String.d.ts +0 -36
  188. package/dist/Extensions/String.js +0 -25
  189. package/dist/Functions/CopyToClipboard.d.ts +0 -7
  190. package/dist/Functions/CopyToClipboard.js +0 -15
  191. package/dist/Functions/GetCSSProperty.d.ts +0 -15
  192. package/dist/Functions/GetCSSProperty.js +0 -26
  193. package/dist/Functions/GetNestedProperty.d.ts +0 -9
  194. package/dist/Functions/GetNestedProperty.js +0 -23
  195. package/dist/Functions/HTMLEvent.d.ts +0 -11
  196. package/dist/Functions/HTMLEvent.js +0 -14
  197. package/dist/Functions/SetNavigationSelected.d.ts +0 -9
  198. package/dist/Functions/SetNavigationSelected.js +0 -25
  199. package/dist/Functions/index.d.ts +0 -5
  200. package/docs/Functions.md +0 -61
  201. package/src/Extensions/Array.ts +0 -95
  202. package/src/Extensions/Document.ts +0 -58
  203. package/src/Extensions/String.ts +0 -54
  204. package/src/Functions/CopyToClipboard.ts +0 -10
  205. package/src/Functions/GetCSSProperty.ts +0 -27
  206. package/src/Functions/GetNestedProperty.ts +0 -29
  207. package/src/Functions/HTMLEvent.ts +0 -13
  208. package/src/Functions/SetNavigationSelected.ts +0 -19
  209. package/src/Functions/index.ts +0 -5
  210. /package/src/Utils/{ApiUtil → ApiUtils}/RequestUtil.ts +0 -0
@@ -1,54 +0,0 @@
1
- import IReplacement from "../Interfaces/IReplacement";
2
-
3
- declare global {
4
- interface String {
5
- /**
6
- * Uppercases first letter of string
7
- */
8
- toPascalCase(): string
9
- /**
10
- * Replaces "replacer" (default: ' ') with "replacement" (default: '_')
11
- * @param replaceOptions This is practically your stereotypical String.replace, if you really want it to be
12
- */
13
- toSnakeCase(replaceOptions?: IReplacement): string
14
- /**
15
- * Replaces "replacer" (default: ' ') with "replacement" (default: '-')
16
- * @param replaceOptions This is practically your stereotypical String.replace, if you really want it to be
17
- */
18
- toKebabCase(replaceOptions?: IReplacement): string,
19
- /**
20
- * String.substring but accepting negative numbers to cut from length
21
- * @param start Start of string. 0 indexed, if negative number, subtracts number from length
22
- * @param end End of string. 0 indexed, if negative number, substracts number from length
23
- */
24
- clip(start: number, end?: number): string
25
- }
26
- }
27
-
28
- function toPascalCase(this: string) {
29
- return this.substring(0, 1).toUpperCase() + this.substring(1);
30
- }
31
- String.prototype.toPascalCase = toPascalCase;
32
-
33
- function spaceReplacer(self: string, replacer: string | RegExp, replacement: string) {
34
- return self.replace(new RegExp(`${typeof replacer == 'string' ? replacer : replacer.source}+`), replacement);
35
- }
36
-
37
- function toSnakeCase(this: string, replaceOptions: IReplacement) {
38
- return spaceReplacer(this, replaceOptions.replacer || ' ', replaceOptions.replacement || '_')
39
- }
40
- String.prototype.toSnakeCase = toSnakeCase;
41
-
42
- function toKebabCase(this: string, replaceOptions: IReplacement) {
43
- return spaceReplacer(this, replaceOptions.replacer || ' ', replaceOptions.replacement || '-');
44
- }
45
- String.prototype.toKebabCase = toKebabCase;
46
-
47
- function clip(this: string, start: number, end?: number) {
48
- return this.substring(start < 0 ? this.length - start : start, end && end < 0 ? this.length + end : end);
49
- }
50
- String.prototype.clip = clip;
51
-
52
- export const StringExtensions = {
53
- toPascalCase, toSnakeCase, toKebabCase, clip
54
- };
@@ -1,10 +0,0 @@
1
- /**
2
- * Copies value to clipboard and alerts a response, if response is defined
3
- * @param value Value to clipboard
4
- * @param response Alerts if response is given
5
- */
6
- export async function CopyToClipboard(value: string, response?: string) {
7
- await navigator.clipboard.writeText(value);
8
- if (response) alert(response);
9
- }
10
- export default CopyToClipboard;
@@ -1,27 +0,0 @@
1
- type CSSReturnTypes = {
2
- string: string,
3
- number: number
4
- }
5
-
6
- /**
7
- * Gets the value of "property" in type "type" from query "query"
8
- * Basically, you can get your --color-primary from :root
9
- *
10
- * @param property Name of the property to get
11
- * @param type Type of the property to parse
12
- * @param query Query to get the element that has the property
13
- * @returns Property value converted to type
14
- */
15
- export function GetCSSProperty<Type extends keyof CSSReturnTypes>(property: string, type: Type, query = ":root"): CSSReturnTypes[Type] {
16
- const rootEl = document.querySelector(query);
17
- if (!rootEl) throw new Error(`${query} does not exist!`);
18
-
19
- const rootStyles = getComputedStyle(rootEl);
20
- const cssProp = rootStyles.getPropertyValue(property);
21
- if (type === 'string') return cssProp as CSSReturnTypes[Type];
22
-
23
- const numberValue = parseInt(cssProp);
24
- if (isNaN(numberValue)) throw new Error(`${property} is not a number!: ${cssProp}`);
25
- return numberValue as CSSReturnTypes[Type];
26
- }
27
-
@@ -1,29 +0,0 @@
1
- export type GetNestedProperty<Parent, Key extends string> =
2
- Key extends keyof Parent
3
- ? Parent[Key]
4
- : Key extends `${infer K}.${infer Rest}`
5
- ? K extends keyof Parent
6
- ? GetNestedProperty<Parent[K], Rest>
7
- : never
8
- : never;
9
-
10
- /**
11
- * Gets a nested property from an object
12
- * @param parent Parent object to search
13
- * @param key Key to search for. Can be nested with dot notation
14
- * @returns Value of key or null if not found
15
- */
16
- export function GetNestedProperty<Parent extends object, Key extends string>(parent: Parent, key: Key): GetNestedProperty<Parent, Key> | null {
17
- if (key in parent) return parent[key as any as keyof Parent] as any;
18
-
19
- for (const prop in parent) {
20
- if (typeof parent[prop] === 'object') {
21
- const result = GetNestedProperty((parent as any)[prop], key);
22
- if (result) return result as any;
23
- }
24
- }
25
-
26
- return null;
27
- }
28
-
29
- export default GetNestedProperty;
@@ -1,13 +0,0 @@
1
- /**
2
- * Create HTMLEvent object from function
3
- * @param name Name of the event
4
- * @param handler Handler for the event
5
- * @returns Parameters as object
6
- */
7
- export function HTMLEvent<
8
- Event extends keyof HTMLElementEventMap,
9
- ReturnType extends any
10
- >(name: Event, handler: (event: HTMLElementEventMap[Event]) => ReturnType) {
11
- return { name, handler };
12
- }
13
- export default HTMLEvent;
@@ -1,19 +0,0 @@
1
- /**
2
- * Appends classes to header's "a" elements, when navigation to "a"'s page is selected
3
- * @param query The query selector for Document.querySelector
4
- * @param currentPageClasses Class(es) to append header's "a" elements
5
- *
6
- * @borrows Document.querySelector
7
- */
8
- export function SetNavigationSelected(query: string, ...currentPageClasses: string[]) {
9
- const header = document.querySelector(query);
10
- if (!header) throw { message: `Couldn't find header from query, ${query}` }
11
- const children = header.children.array().filter(c => c.tagName === 'a') as HTMLAnchorElement[];
12
- const currentPage = document.location.href;
13
-
14
- children.forEach(gc => {
15
- if (gc.href != currentPage) gc.classList.remove(...currentPageClasses);
16
- else gc.classList.add(...currentPageClasses);
17
- })
18
- }
19
- export default SetNavigationSelected;
@@ -1,5 +0,0 @@
1
- export * from './CopyToClipboard';
2
- export * from './GetCSSProperty';
3
- export * from './GetNestedProperty';
4
- export * from './SetNavigationSelected';
5
- export * from './HTMLEvent';
File without changes