@angelscmf/front 1.0.29 → 1.0.30

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 (97) hide show
  1. package/dist/AngelsFrontAnimationLibrary.d.ts +1 -1
  2. package/dist/AngelsFrontAnimationLibrary.js +77 -30
  3. package/dist/AngelsFrontAnimationLibrary.js.map +1 -1
  4. package/dist/{AngelsFrontLoader.cjs → AngelsFrontAnimationLibrary.mjs} +53 -61
  5. package/dist/AngelsFrontAnimationLibrary.mjs.map +1 -0
  6. package/dist/AngelsFrontApplication.d.mts +11 -0
  7. package/dist/AngelsFrontApplication.d.ts +3 -2
  8. package/dist/AngelsFrontApplication.js +271 -28
  9. package/dist/AngelsFrontApplication.js.map +1 -1
  10. package/dist/AngelsFrontApplication.mjs +353 -0
  11. package/dist/AngelsFrontApplication.mjs.map +1 -0
  12. package/dist/AngelsFrontDOMLibrary.d.mts +12 -0
  13. package/dist/AngelsFrontDOMLibrary.d.ts +10 -7
  14. package/dist/AngelsFrontDOMLibrary.js +327 -17
  15. package/dist/AngelsFrontDOMLibrary.js.map +1 -1
  16. package/dist/AngelsFrontDOMLibrary.mjs +378 -0
  17. package/dist/AngelsFrontDOMLibrary.mjs.map +1 -0
  18. package/dist/AngelsFrontElement.d.mts +14 -0
  19. package/dist/AngelsFrontElement.d.ts +14 -0
  20. package/dist/{AngelsFrontAnimationLibrary.cjs → AngelsFrontElement.js} +79 -68
  21. package/dist/AngelsFrontElement.js.map +1 -0
  22. package/dist/AngelsFrontElement.mjs +194 -0
  23. package/dist/AngelsFrontElement.mjs.map +1 -0
  24. package/dist/AngelsFrontLoader.js +448 -28
  25. package/dist/AngelsFrontLoader.js.map +1 -1
  26. package/dist/AngelsFrontLoader.mjs +622 -0
  27. package/dist/AngelsFrontLoader.mjs.map +1 -0
  28. package/dist/{AngelsFrontMod.d.cts → AngelsFrontMod.d.mts} +4 -3
  29. package/dist/AngelsFrontMod.d.ts +4 -3
  30. package/dist/AngelsFrontMod.js +40 -17
  31. package/dist/AngelsFrontMod.js.map +1 -1
  32. package/dist/{AngelsFrontComponent.js → AngelsFrontMod.mjs} +18 -37
  33. package/dist/AngelsFrontMod.mjs.map +1 -0
  34. package/dist/AngelsFrontPage.d.mts +11 -0
  35. package/dist/AngelsFrontPage.d.ts +3 -2
  36. package/dist/AngelsFrontPage.js +271 -28
  37. package/dist/AngelsFrontPage.js.map +1 -1
  38. package/dist/AngelsFrontPage.mjs +353 -0
  39. package/dist/AngelsFrontPage.mjs.map +1 -0
  40. package/dist/AngelsFrontWidgetClass.d.mts +15 -0
  41. package/dist/AngelsFrontWidgetClass.d.ts +15 -0
  42. package/dist/AngelsFrontWidgetClass.js +371 -0
  43. package/dist/AngelsFrontWidgetClass.js.map +1 -0
  44. package/dist/AngelsFrontWidgetClass.mjs +349 -0
  45. package/dist/AngelsFrontWidgetClass.mjs.map +1 -0
  46. package/dist/index.js +1 -0
  47. package/dist/index.mjs +1 -0
  48. package/package.json +9 -2
  49. package/sass/_AngelsHTMLElements.scss +244 -244
  50. package/sass/_AngelsPageLayout.scss +0 -4
  51. package/sass/_AngelsTheme.scss +47 -15
  52. package/sass/_AngelsVariables.scss +1 -4
  53. package/sass/angelsMessages/_AngelsAlert.scss +3 -2
  54. package/sass/angelsMessages/_AngelsDebug.scss +3 -2
  55. package/sass/angelsMessages/_AngelsDone.scss +3 -2
  56. package/sass/angelsMessages/_AngelsError.scss +3 -2
  57. package/sass/angelsMessages/_AngelsInfo.scss +3 -2
  58. package/sass/angelsMessages/_AngelsTip.scss +3 -2
  59. package/sass/angelsMessages/_AngelsWarn.scss +3 -2
  60. package/sass/angelsTags/_a-page.scss +13 -4
  61. package/sass/angelsTags/_a-state.scss +2 -1
  62. package/sass/angelsTags/_a-table.scss +9 -35
  63. package/dist/AngelsCore.cjs +0 -246
  64. package/dist/AngelsCore.cjs.map +0 -1
  65. package/dist/AngelsCore.js +0 -245
  66. package/dist/AngelsCore.js.map +0 -1
  67. package/dist/AngelsElement.cjs +0 -67
  68. package/dist/AngelsElement.cjs.map +0 -1
  69. package/dist/AngelsElement.d.cts +0 -11
  70. package/dist/AngelsElement.d.ts +0 -11
  71. package/dist/AngelsElement.js +0 -42
  72. package/dist/AngelsElement.js.map +0 -1
  73. package/dist/AngelsFrontAnimationLibrary.cjs.map +0 -1
  74. package/dist/AngelsFrontApplication.cjs +0 -155
  75. package/dist/AngelsFrontApplication.cjs.map +0 -1
  76. package/dist/AngelsFrontApplication.d.cts +0 -10
  77. package/dist/AngelsFrontComponent.cjs +0 -151
  78. package/dist/AngelsFrontComponent.cjs.map +0 -1
  79. package/dist/AngelsFrontComponent.d.cts +0 -11
  80. package/dist/AngelsFrontComponent.d.ts +0 -11
  81. package/dist/AngelsFrontComponent.js.map +0 -1
  82. package/dist/AngelsFrontDOMLibrary.cjs +0 -130
  83. package/dist/AngelsFrontDOMLibrary.cjs.map +0 -1
  84. package/dist/AngelsFrontDOMLibrary.d.cts +0 -9
  85. package/dist/AngelsFrontLoader.cjs.map +0 -1
  86. package/dist/AngelsFrontLoader.d.cts +0 -2
  87. package/dist/AngelsFrontMod.cjs +0 -128
  88. package/dist/AngelsFrontMod.cjs.map +0 -1
  89. package/dist/AngelsFrontPage.cjs +0 -155
  90. package/dist/AngelsFrontPage.cjs.map +0 -1
  91. package/dist/AngelsFrontPage.d.cts +0 -10
  92. package/dist/index.cjs +0 -2
  93. package/dist/index.d.cts +0 -2
  94. package/dist/{AngelsFrontAnimationLibrary.d.cts → AngelsFrontAnimationLibrary.d.mts} +1 -1
  95. /package/dist/{AngelsCore.d.cts → AngelsFrontLoader.d.mts} +0 -0
  96. /package/dist/{AngelsCore.d.ts → index.d.mts} +0 -0
  97. /package/dist/{index.cjs.map → index.mjs.map} +0 -0
@@ -1,5 +1,5 @@
1
- declare function aLibEngageElement(originalElement: AngelsSelectorType, switcher?: boolean | undefined): Promise<void>;
2
1
  declare function aLibConcealElement(originalElement: AngelsSelectorType): Promise<void>;
2
+ declare function aLibEngageElement(originalElement: AngelsSelectorType, switcher?: boolean | undefined): Promise<void>;
3
3
  declare function aLibRevealElement(originalElement: AngelsSelectorType): Promise<void>;
4
4
 
5
5
  export { aLibConcealElement, aLibEngageElement, aLibRevealElement };
@@ -1,3 +1,21 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
1
19
  var __async = (__this, __arguments, generator) => {
2
20
  return new Promise((resolve, reject) => {
3
21
  var fulfilled = (value) => {
@@ -19,43 +37,71 @@ var __async = (__this, __arguments, generator) => {
19
37
  });
20
38
  };
21
39
 
22
- // src/AngelsElement.ts
23
- var AngelsElementClass = class {
40
+ // src/AngelsFrontAnimationLibrary.ts
41
+ var AngelsFrontAnimationLibrary_exports = {};
42
+ __export(AngelsFrontAnimationLibrary_exports, {
43
+ aLibConcealElement: () => aLibConcealElement,
44
+ aLibEngageElement: () => aLibEngageElement,
45
+ aLibRevealElement: () => aLibRevealElement
46
+ });
47
+ module.exports = __toCommonJS(AngelsFrontAnimationLibrary_exports);
48
+
49
+ // src/AngelsFrontElement.ts
50
+ var AngelsFrontElementClass = class {
24
51
  constructor(element) {
25
52
  this.originalElement = element;
26
53
  return new Proxy(this, {
27
54
  get(target, prop, receiver) {
28
55
  if (prop in target) {
29
- return target[prop];
56
+ return Reflect.get(target, prop);
57
+ }
58
+ const valueOfProperty = Reflect.get(target.originalElement, prop);
59
+ if (typeof valueOfProperty === "function") {
60
+ return valueOfProperty.bind(target.originalElement);
30
61
  }
31
- return target.originalElement[prop];
62
+ return valueOfProperty;
32
63
  },
33
64
  set(target, prop, newValue, receiver) {
34
- if (prop in target) {
35
- target[prop] = newValue;
36
- } else {
65
+ if (prop in target.originalElement) {
37
66
  target.originalElement[prop] = newValue;
67
+ } else {
68
+ target[prop] = newValue;
38
69
  }
39
70
  return true;
40
71
  }
41
72
  });
42
73
  }
74
+ aConcealElement() {
75
+ aLibConcealElement(this.originalElement);
76
+ return this;
77
+ }
78
+ aEngageElement(switcher = void 0) {
79
+ aLibEngageElement(this.originalElement, switcher);
80
+ return this;
81
+ }
43
82
  aHideElement() {
44
83
  this.originalElement.hidden = true;
45
84
  return this;
46
85
  }
86
+ aRevealElement() {
87
+ aLibRevealElement(this.originalElement);
88
+ return this;
89
+ }
47
90
  aShowElement() {
48
91
  this.originalElement.hidden = false;
49
92
  return this;
50
93
  }
51
- aTextContent(content = void 0) {
52
- var _a;
53
- if (content === void 0) {
54
- return (_a = this.originalElement.textContent) != null ? _a : ``;
55
- }
56
- this.originalElement.textContent = content.toString();
94
+ aSetTextContent(content) {
95
+ const contentToSet = content.toString();
96
+ this.originalElement.textContent = contentToSet;
57
97
  return this;
58
98
  }
99
+ aTextContent() {
100
+ if (this.originalElement.textContent === null) {
101
+ return ``;
102
+ }
103
+ return this.originalElement.textContent;
104
+ }
59
105
  };
60
106
 
61
107
  // src/AngelsFrontDOMLibrary.ts
@@ -75,12 +121,12 @@ function aLibFindElement(selector) {
75
121
  element = selector;
76
122
  } else if (selector instanceof Element) {
77
123
  element = selector;
78
- } else if (selector instanceof AngelsElementClass) {
124
+ } else if (selector instanceof AngelsFrontElementClass) {
79
125
  return selector;
80
126
  } else {
81
127
  element = selector;
82
128
  }
83
- return new AngelsElementClass(element);
129
+ return new AngelsFrontElementClass(element);
84
130
  }
85
131
  function aLibRequireElement(selector) {
86
132
  const element = aLibFindElement(selector);
@@ -91,19 +137,6 @@ function aLibRequireElement(selector) {
91
137
  }
92
138
 
93
139
  // src/AngelsFrontAnimationLibrary.ts
94
- function aLibEngageElement(originalElement, switcher = void 0) {
95
- return __async(this, null, function* () {
96
- const innerElement = aLibRequireElement(originalElement);
97
- if (switcher === void 0) {
98
- switcher = !innerElement.hidden;
99
- }
100
- if (switcher) {
101
- return yield aLibRevealElement(innerElement);
102
- } else {
103
- return yield aLibConcealElement(innerElement);
104
- }
105
- });
106
- }
107
140
  function aLibConcealElement(originalElement) {
108
141
  return __async(this, null, function* () {
109
142
  const innerElement = aLibRequireElement(originalElement);
@@ -139,6 +172,19 @@ function aLibConcealElement(originalElement) {
139
172
  return promise;
140
173
  });
141
174
  }
175
+ function aLibEngageElement(originalElement, switcher = void 0) {
176
+ return __async(this, null, function* () {
177
+ const innerElement = aLibRequireElement(originalElement);
178
+ if (switcher === void 0) {
179
+ switcher = innerElement.hidden;
180
+ }
181
+ if (switcher) {
182
+ return yield aLibRevealElement(innerElement);
183
+ } else {
184
+ return yield aLibConcealElement(innerElement);
185
+ }
186
+ });
187
+ }
142
188
  function aLibRevealElement(originalElement) {
143
189
  return __async(this, null, function* () {
144
190
  const innerElement = aLibRequireElement(originalElement);
@@ -169,9 +215,10 @@ function aLibRevealElement(originalElement) {
169
215
  return promise;
170
216
  });
171
217
  }
172
- export {
218
+ // Annotate the CommonJS export names for ESM import in node:
219
+ 0 && (module.exports = {
173
220
  aLibConcealElement,
174
221
  aLibEngageElement,
175
222
  aLibRevealElement
176
- };
223
+ });
177
224
  //# sourceMappingURL=AngelsFrontAnimationLibrary.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/AngelsElement.ts","../src/AngelsFrontDOMLibrary.ts","../src/AngelsFrontAnimationLibrary.ts"],"sourcesContent":["export type AngelsElement<TElement extends HTMLElement = HTMLElement> = AngelsElementClass<TElement> & TElement;\n\nexport class AngelsElementClass<TElement extends HTMLElement = HTMLElement> {\n\n protected originalElement: TElement;\n\n constructor(element: TElement) {\n\n this.originalElement = element;\n\n return new Proxy(this, {\n get(target: any, prop: string | symbol, receiver: any) {\n if (prop in target) {\n return target[prop];\n }\n return target.originalElement[prop];\n },\n\n set(target: any, prop: string | symbol, newValue: any, receiver: any) {\n if (prop in target) {\n target[prop] = newValue;\n } else {\n target.originalElement[prop] = newValue;\n }\n return true;\n }\n });\n }\n\n aHideElement(): this {\n this.originalElement.hidden = true;\n return this;\n }\n\n aShowElement(): this {\n this.originalElement.hidden = false;\n return this;\n }\n\n aTextContent(): string;\n aTextContent(content: string): this;\n aTextContent(content: string | undefined = undefined): this | string {\n if (content === undefined) {\n return this.originalElement.textContent ?? ``;\n }\n this.originalElement.textContent = content.toString();\n return this;\n }\n}\n","import { AngelsElement, AngelsElementClass } from \"./AngelsElement\";\n\nexport function aLibFindElement<THTMLElement extends HTMLElement>(selector: AngelsSelectorType<THTMLElement>): AngelsElement<THTMLElement> | null {\n\n let element: THTMLElement;\n if (typeof selector === 'undefined') {\n return null;\n } else if (selector === null) {\n return null;\n } else if (typeof selector === 'string') {\n const findElement = document.querySelector<THTMLElement>(selector);\n if (!findElement) {\n return null;\n }\n element = findElement;\n } else if (selector instanceof HTMLElement) {\n element = selector as THTMLElement;\n } else if (selector instanceof Element) {\n element = selector as THTMLElement;\n } else if (selector instanceof AngelsElementClass) {\n return selector as AngelsElement<THTMLElement>;\n } else {\n element = selector;\n }\n return new AngelsElementClass(element) as AngelsElement<THTMLElement>;\n}\n\nexport function aLibRequireElement<THTMLElement extends HTMLElement>(selector: AngelsSelectorType): AngelsElement<THTMLElement> {\n const element = aLibFindElement<THTMLElement>(selector);\n if (element) {\n return element;\n }\n throw Error(`Element not found by '${selector}' selector.`);\n}\n\nexport function aLibHideElement<THTMLElement extends HTMLElement>(selector: AngelsSelectorType): AngelsElement<THTMLElement> {\n const element = aLibRequireElement<THTMLElement>(selector);\n element.hidden = true;\n return element;\n}\n\nexport function aLibShowElement<THTMLElement extends HTMLElement>(selector: AngelsSelectorType): AngelsElement<THTMLElement> {\n const element = aLibRequireElement<THTMLElement>(selector);\n element.hidden = false;\n return element;\n}\n\nexport function aLibToggleElement(originalElement: AngelsSelectorType, switcher: boolean | undefined = undefined) {\n const innerElement = aLibRequireElement(originalElement);\n if (switcher === undefined) {\n switcher = !innerElement.hidden;\n }\n if (switcher) {\n return aLibShowElement(innerElement);\n } else {\n return aLibHideElement(innerElement);\n }\n}\n","import { aLibRequireElement } from \"./AngelsFrontDOMLibrary\";\n\nexport async function aLibEngageElement(originalElement: AngelsSelectorType, switcher: boolean | undefined = undefined) {\n const innerElement = aLibRequireElement(originalElement);\n if (switcher === undefined) {\n switcher = !innerElement.hidden;\n }\n if (switcher) {\n return await aLibRevealElement(innerElement);\n } else {\n return await aLibConcealElement(innerElement);\n }\n}\n\nexport async function aLibConcealElement(originalElement: AngelsSelectorType) {\n const innerElement = aLibRequireElement(originalElement);\n const promise = new Promise<void>((resolve) => {\n\n if (innerElement.hidden) {\n resolve();\n return;\n }\n\n let timeout: NodeJS.Timeout | undefined;\n\n const animationHandler = () => {\n clearTimeout(timeout);\n innerElement.removeEventListener('animationend', animationHandler);\n innerElement.hidden = true;\n innerElement.classList.remove('a-out-animation');\n resolve();\n }\n\n innerElement.classList.add('a-out-animation');\n\n const animations = innerElement.getAnimations();\n if (animations.length > 0) {\n timeout = setTimeout(() => {\n innerElement.removeEventListener('animationend', animationHandler);\n innerElement.hidden = true;\n innerElement.classList.remove('a-out-animation');\n console.warn('Animation timeout');\n resolve();\n }, 5000); // 5 seconds timeout\n innerElement.addEventListener('animationend', animationHandler);\n } else {\n innerElement.hidden = true;\n resolve();\n }\n });\n\n return promise;\n}\n\nexport async function aLibRevealElement(originalElement: AngelsSelectorType) {\n const innerElement = aLibRequireElement(originalElement);\n const promise = new Promise<void>((resolve) => {\n\n if (!innerElement.hidden) {\n resolve();\n return;\n }\n\n let timeout: NodeJS.Timeout | undefined;\n\n const animationHandler = () => {\n clearTimeout(timeout);\n innerElement.removeEventListener('animationend', animationHandler);\n resolve();\n }\n\n innerElement.hidden = false;\n\n const animations = innerElement.getAnimations();\n if (animations.length > 0) {\n timeout = setTimeout(() => {\n innerElement.removeEventListener('animationend', animationHandler);\n console.warn('Animation timeout');\n resolve();\n }, 5000); // 5 seconds timeout\n innerElement.addEventListener('animationend', animationHandler);\n } else {\n resolve();\n }\n });\n\n return promise;\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/AngelsFrontAnimationLibrary.ts","../src/AngelsFrontElement.ts","../src/AngelsFrontDOMLibrary.ts"],"sourcesContent":["import { aLibRequireElement } from \"./AngelsFrontDOMLibrary\";\n\nexport async function aLibConcealElement(originalElement: AngelsSelectorType) {\n const innerElement = aLibRequireElement(originalElement);\n const promise = new Promise<void>((resolve) => {\n\n if (innerElement.hidden) {\n resolve();\n return;\n }\n\n let timeout: NodeJS.Timeout | undefined;\n\n const animationHandler = () => {\n clearTimeout(timeout);\n innerElement.removeEventListener('animationend', animationHandler);\n innerElement.hidden = true;\n innerElement.classList.remove('a-out-animation');\n resolve();\n }\n\n innerElement.classList.add('a-out-animation');\n\n const animations = innerElement.getAnimations();\n if (animations.length > 0) {\n timeout = setTimeout(() => {\n innerElement.removeEventListener('animationend', animationHandler);\n innerElement.hidden = true;\n innerElement.classList.remove('a-out-animation');\n console.warn('Animation timeout');\n resolve();\n }, 5000); // 5 seconds timeout\n innerElement.addEventListener('animationend', animationHandler);\n } else {\n innerElement.hidden = true;\n resolve();\n }\n });\n\n return promise;\n}\n\nexport async function aLibEngageElement(originalElement: AngelsSelectorType, switcher: boolean | undefined = undefined) {\n const innerElement = aLibRequireElement(originalElement);\n if (switcher === undefined) {\n switcher = innerElement.hidden;\n }\n\n if (switcher) {\n return await aLibRevealElement(innerElement);\n } else {\n return await aLibConcealElement(innerElement);\n }\n}\n\nexport async function aLibRevealElement(originalElement: AngelsSelectorType) {\n const innerElement = aLibRequireElement(originalElement);\n const promise = new Promise<void>((resolve) => {\n\n if (!innerElement.hidden) {\n resolve();\n return;\n }\n\n let timeout: NodeJS.Timeout | undefined;\n\n const animationHandler = () => {\n clearTimeout(timeout);\n innerElement.removeEventListener('animationend', animationHandler);\n resolve();\n }\n\n innerElement.hidden = false;\n\n const animations = innerElement.getAnimations();\n if (animations.length > 0) {\n timeout = setTimeout(() => {\n innerElement.removeEventListener('animationend', animationHandler);\n console.warn('Animation timeout');\n resolve();\n }, 5000); // 5 seconds timeout\n innerElement.addEventListener('animationend', animationHandler);\n } else {\n resolve();\n }\n });\n\n return promise;\n}\n","import { aLibConcealElement, aLibEngageElement, aLibRevealElement } from \"./AngelsFrontAnimationLibrary\";\n\nexport type AngelsFrontElement<THTMLElement extends HTMLElement = HTMLElement> = AngelsFrontElementClass<THTMLElement> & THTMLElement;\n\nexport default class AngelsFrontElementClass<THTMLElement extends HTMLElement = HTMLElement> {\n\n public originalElement: THTMLElement;\n\n constructor(element: THTMLElement) {\n\n this.originalElement = element;\n\n return new Proxy(this, {\n\n get(target: any, prop: string | symbol, receiver: any) {\n if (prop in target) {\n // @test AngelsFrontElementClass proxies methods to the original element\n return Reflect.get(target, prop);\n }\n // @test AngelsFrontElementClass uses methods of the main object\n const valueOfProperty = Reflect.get(target.originalElement, prop);\n if (typeof valueOfProperty === 'function') {\n return valueOfProperty.bind(target.originalElement);\n }\n return valueOfProperty;\n },\n\n set(target: any, prop: string | symbol, newValue: any, receiver: any) {\n if (prop in target.originalElement) {\n // @test AngelsFrontElementClass sets properties on the original element\n target.originalElement[prop] = newValue;\n } else {\n // @test AngelsFrontElementClass sets properties on the main object\n target[prop] = newValue;\n }\n return true;\n }\n }) as unknown as AngelsFrontElement<THTMLElement>;\n }\n\n aConcealElement(): this {\n\n // @test aConcealElement() calls aLibConcealElement() with the original element\n aLibConcealElement(this.originalElement);\n\n // @test aConcealElement() returns this\n return this;\n }\n\n aEngageElement(switcher: boolean | undefined = undefined): this {\n\n // @test aEngageElement() calls aLibEngageElement() with the original element and the same switcher\n aLibEngageElement(this.originalElement, switcher);\n\n // @test aEngageElement() returns this\n return this;\n }\n\n aHideElement(): this {\n\n // @test aHideElement() sets the hidden property of the element to true\n this.originalElement.hidden = true;\n\n // @test aHideElement() returns this\n return this;\n }\n\n aRevealElement(): this {\n\n // @test aRevealElement() calls aLibRevealElement() with the original element\n aLibRevealElement(this.originalElement);\n\n // @test aRevealElement() returns this\n return this;\n }\n\n aShowElement(): this {\n\n // @test aShowElement() sets the hidden property of the element to false\n this.originalElement.hidden = false;\n\n // @test aShowElement() returns this\n return this;\n }\n\n aSetTextContent(content: string): this {\n\n // @test aSetTextContent() converts non-string content to string before setting\n const contentToSet = content.toString();\n\n // @test aSetTextContent() sets originalElement.textContent\n this.originalElement.textContent = contentToSet;\n\n // @test aSetTextContent() returns this for chaining\n return this;\n }\n\n aTextContent(): string {\n if (this.originalElement.textContent === null) {\n // @test aTextContent() returns empty string if originalElement.textContent is null\n return ``;\n }\n\n // @test aTextContent() returns textContent of originalElement\n return this.originalElement.textContent;\n }\n}\n","import AngelsFrontElementClass, { AngelsFrontElement } from \"./AngelsFrontElement\";\nimport { AngelsFrontWidget } from \"./AngelsFrontWidgetClass\";\nimport AngelsFrontWidgetClass from \"./AngelsFrontWidgetClass\";\n\nexport function aLibCreateWidget<THTMLElement extends HTMLElement = HTMLElement>(element: THTMLElement): AngelsFrontWidget<THTMLElement> {\n return (new AngelsFrontWidgetClass<THTMLElement>(element)) as AngelsFrontWidget<THTMLElement>;\n}\n\nexport function aLibFindElement<THTMLElement extends HTMLElement>(selector: AngelsSelectorType<THTMLElement>): AngelsFrontElement<THTMLElement> | null {\n\n let element: THTMLElement;\n if (typeof selector === 'undefined') {\n return null;\n } else if (selector === null) {\n return null;\n } else if (typeof selector === 'string') {\n const findElement = document.querySelector<THTMLElement>(selector);\n if (!findElement) {\n return null;\n }\n element = findElement;\n } else if (selector instanceof HTMLElement) {\n element = selector as THTMLElement;\n } else if (selector instanceof Element) {\n element = selector as THTMLElement;\n } else if (selector instanceof AngelsFrontElementClass) {\n return selector as AngelsFrontElement<THTMLElement>;\n } else {\n element = selector;\n }\n return new AngelsFrontElementClass(element) as AngelsFrontElement<THTMLElement>;\n}\n\nexport function aLibRequireElement<THTMLElement extends HTMLElement>(selector: AngelsSelectorType): AngelsFrontElement<THTMLElement> {\n const element = aLibFindElement<THTMLElement>(selector);\n if (element) {\n return element;\n }\n throw Error(`Element not found by '${selector}' selector.`);\n}\n\nexport function aLibHideElement<THTMLElement extends HTMLElement>(selector: AngelsSelectorType): AngelsFrontElement<THTMLElement> {\n const element = aLibRequireElement<THTMLElement>(selector);\n element.hidden = true;\n return element;\n}\n\nexport function aLibShowElement<THTMLElement extends HTMLElement>(selector: AngelsSelectorType): AngelsFrontElement<THTMLElement> {\n const element = aLibRequireElement<THTMLElement>(selector);\n element.hidden = false;\n return element;\n}\n\nexport function aLibToggleElement(originalElement: AngelsSelectorType, switcher: boolean | undefined = undefined) {\n const innerElement = aLibRequireElement(originalElement);\n if (switcher === undefined) {\n switcher = !innerElement.hidden;\n }\n if (switcher) {\n return aLibShowElement(innerElement);\n } else {\n return aLibHideElement(innerElement);\n }\n}\n"],"mappings":"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","names":[]}
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  var __async = (__this, __arguments, generator) => {
3
2
  return new Promise((resolve, reject) => {
4
3
  var fulfilled = (value) => {
@@ -20,43 +19,62 @@ var __async = (__this, __arguments, generator) => {
20
19
  });
21
20
  };
22
21
 
23
- // src/AngelsElement.ts
24
- var AngelsElementClass = class {
22
+ // src/AngelsFrontElement.ts
23
+ var AngelsFrontElementClass = class {
25
24
  constructor(element) {
26
25
  this.originalElement = element;
27
26
  return new Proxy(this, {
28
27
  get(target, prop, receiver) {
29
28
  if (prop in target) {
30
- return target[prop];
29
+ return Reflect.get(target, prop);
31
30
  }
32
- return target.originalElement[prop];
31
+ const valueOfProperty = Reflect.get(target.originalElement, prop);
32
+ if (typeof valueOfProperty === "function") {
33
+ return valueOfProperty.bind(target.originalElement);
34
+ }
35
+ return valueOfProperty;
33
36
  },
34
37
  set(target, prop, newValue, receiver) {
35
- if (prop in target) {
36
- target[prop] = newValue;
37
- } else {
38
+ if (prop in target.originalElement) {
38
39
  target.originalElement[prop] = newValue;
40
+ } else {
41
+ target[prop] = newValue;
39
42
  }
40
43
  return true;
41
44
  }
42
45
  });
43
46
  }
47
+ aConcealElement() {
48
+ aLibConcealElement(this.originalElement);
49
+ return this;
50
+ }
51
+ aEngageElement(switcher = void 0) {
52
+ aLibEngageElement(this.originalElement, switcher);
53
+ return this;
54
+ }
44
55
  aHideElement() {
45
56
  this.originalElement.hidden = true;
46
57
  return this;
47
58
  }
59
+ aRevealElement() {
60
+ aLibRevealElement(this.originalElement);
61
+ return this;
62
+ }
48
63
  aShowElement() {
49
64
  this.originalElement.hidden = false;
50
65
  return this;
51
66
  }
52
- aTextContent(content = void 0) {
53
- var _a;
54
- if (content === void 0) {
55
- return (_a = this.originalElement.textContent) != null ? _a : ``;
56
- }
57
- this.originalElement.textContent = content.toString();
67
+ aSetTextContent(content) {
68
+ const contentToSet = content.toString();
69
+ this.originalElement.textContent = contentToSet;
58
70
  return this;
59
71
  }
72
+ aTextContent() {
73
+ if (this.originalElement.textContent === null) {
74
+ return ``;
75
+ }
76
+ return this.originalElement.textContent;
77
+ }
60
78
  };
61
79
 
62
80
  // src/AngelsFrontDOMLibrary.ts
@@ -76,12 +94,12 @@ function aLibFindElement(selector) {
76
94
  element = selector;
77
95
  } else if (selector instanceof Element) {
78
96
  element = selector;
79
- } else if (selector instanceof AngelsElementClass) {
97
+ } else if (selector instanceof AngelsFrontElementClass) {
80
98
  return selector;
81
99
  } else {
82
100
  element = selector;
83
101
  }
84
- return new AngelsElementClass(element);
102
+ return new AngelsFrontElementClass(element);
85
103
  }
86
104
  function aLibRequireElement(selector) {
87
105
  const element = aLibFindElement(selector);
@@ -90,42 +108,8 @@ function aLibRequireElement(selector) {
90
108
  }
91
109
  throw Error(`Element not found by '${selector}' selector.`);
92
110
  }
93
- function aLibHideElement(selector) {
94
- const element = aLibRequireElement(selector);
95
- element.hidden = true;
96
- return element;
97
- }
98
- function aLibShowElement(selector) {
99
- const element = aLibRequireElement(selector);
100
- element.hidden = false;
101
- return element;
102
- }
103
- function aLibToggleElement(originalElement, switcher = void 0) {
104
- const innerElement = aLibRequireElement(originalElement);
105
- if (switcher === void 0) {
106
- switcher = !innerElement.hidden;
107
- }
108
- if (switcher) {
109
- return aLibShowElement(innerElement);
110
- } else {
111
- return aLibHideElement(innerElement);
112
- }
113
- }
114
111
 
115
112
  // src/AngelsFrontAnimationLibrary.ts
116
- function aLibEngageElement(originalElement, switcher = void 0) {
117
- return __async(this, null, function* () {
118
- const innerElement = aLibRequireElement(originalElement);
119
- if (switcher === void 0) {
120
- switcher = !innerElement.hidden;
121
- }
122
- if (switcher) {
123
- return yield aLibRevealElement(innerElement);
124
- } else {
125
- return yield aLibConcealElement(innerElement);
126
- }
127
- });
128
- }
129
113
  function aLibConcealElement(originalElement) {
130
114
  return __async(this, null, function* () {
131
115
  const innerElement = aLibRequireElement(originalElement);
@@ -161,6 +145,19 @@ function aLibConcealElement(originalElement) {
161
145
  return promise;
162
146
  });
163
147
  }
148
+ function aLibEngageElement(originalElement, switcher = void 0) {
149
+ return __async(this, null, function* () {
150
+ const innerElement = aLibRequireElement(originalElement);
151
+ if (switcher === void 0) {
152
+ switcher = innerElement.hidden;
153
+ }
154
+ if (switcher) {
155
+ return yield aLibRevealElement(innerElement);
156
+ } else {
157
+ return yield aLibConcealElement(innerElement);
158
+ }
159
+ });
160
+ }
164
161
  function aLibRevealElement(originalElement) {
165
162
  return __async(this, null, function* () {
166
163
  const innerElement = aLibRequireElement(originalElement);
@@ -191,14 +188,9 @@ function aLibRevealElement(originalElement) {
191
188
  return promise;
192
189
  });
193
190
  }
194
-
195
- // src/AngelsFrontLoader.ts
196
- window.aEngageElement = aLibEngageElement;
197
- window.aConcealElement = aLibConcealElement;
198
- window.aRevealElement = aLibRevealElement;
199
- window.aFindElement = aLibFindElement;
200
- window.aHideElement = aLibHideElement;
201
- window.aRequireElement = aLibRequireElement;
202
- window.aShowElement = aLibShowElement;
203
- window.aToggleElement = aLibToggleElement;
204
- //# sourceMappingURL=AngelsFrontLoader.cjs.map
191
+ export {
192
+ aLibConcealElement,
193
+ aLibEngageElement,
194
+ aLibRevealElement
195
+ };
196
+ //# sourceMappingURL=AngelsFrontAnimationLibrary.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/AngelsFrontElement.ts","../src/AngelsFrontDOMLibrary.ts","../src/AngelsFrontAnimationLibrary.ts"],"sourcesContent":["import { aLibConcealElement, aLibEngageElement, aLibRevealElement } from \"./AngelsFrontAnimationLibrary\";\n\nexport type AngelsFrontElement<THTMLElement extends HTMLElement = HTMLElement> = AngelsFrontElementClass<THTMLElement> & THTMLElement;\n\nexport default class AngelsFrontElementClass<THTMLElement extends HTMLElement = HTMLElement> {\n\n public originalElement: THTMLElement;\n\n constructor(element: THTMLElement) {\n\n this.originalElement = element;\n\n return new Proxy(this, {\n\n get(target: any, prop: string | symbol, receiver: any) {\n if (prop in target) {\n // @test AngelsFrontElementClass proxies methods to the original element\n return Reflect.get(target, prop);\n }\n // @test AngelsFrontElementClass uses methods of the main object\n const valueOfProperty = Reflect.get(target.originalElement, prop);\n if (typeof valueOfProperty === 'function') {\n return valueOfProperty.bind(target.originalElement);\n }\n return valueOfProperty;\n },\n\n set(target: any, prop: string | symbol, newValue: any, receiver: any) {\n if (prop in target.originalElement) {\n // @test AngelsFrontElementClass sets properties on the original element\n target.originalElement[prop] = newValue;\n } else {\n // @test AngelsFrontElementClass sets properties on the main object\n target[prop] = newValue;\n }\n return true;\n }\n }) as unknown as AngelsFrontElement<THTMLElement>;\n }\n\n aConcealElement(): this {\n\n // @test aConcealElement() calls aLibConcealElement() with the original element\n aLibConcealElement(this.originalElement);\n\n // @test aConcealElement() returns this\n return this;\n }\n\n aEngageElement(switcher: boolean | undefined = undefined): this {\n\n // @test aEngageElement() calls aLibEngageElement() with the original element and the same switcher\n aLibEngageElement(this.originalElement, switcher);\n\n // @test aEngageElement() returns this\n return this;\n }\n\n aHideElement(): this {\n\n // @test aHideElement() sets the hidden property of the element to true\n this.originalElement.hidden = true;\n\n // @test aHideElement() returns this\n return this;\n }\n\n aRevealElement(): this {\n\n // @test aRevealElement() calls aLibRevealElement() with the original element\n aLibRevealElement(this.originalElement);\n\n // @test aRevealElement() returns this\n return this;\n }\n\n aShowElement(): this {\n\n // @test aShowElement() sets the hidden property of the element to false\n this.originalElement.hidden = false;\n\n // @test aShowElement() returns this\n return this;\n }\n\n aSetTextContent(content: string): this {\n\n // @test aSetTextContent() converts non-string content to string before setting\n const contentToSet = content.toString();\n\n // @test aSetTextContent() sets originalElement.textContent\n this.originalElement.textContent = contentToSet;\n\n // @test aSetTextContent() returns this for chaining\n return this;\n }\n\n aTextContent(): string {\n if (this.originalElement.textContent === null) {\n // @test aTextContent() returns empty string if originalElement.textContent is null\n return ``;\n }\n\n // @test aTextContent() returns textContent of originalElement\n return this.originalElement.textContent;\n }\n}\n","import AngelsFrontElementClass, { AngelsFrontElement } from \"./AngelsFrontElement\";\nimport { AngelsFrontWidget } from \"./AngelsFrontWidgetClass\";\nimport AngelsFrontWidgetClass from \"./AngelsFrontWidgetClass\";\n\nexport function aLibCreateWidget<THTMLElement extends HTMLElement = HTMLElement>(element: THTMLElement): AngelsFrontWidget<THTMLElement> {\n return (new AngelsFrontWidgetClass<THTMLElement>(element)) as AngelsFrontWidget<THTMLElement>;\n}\n\nexport function aLibFindElement<THTMLElement extends HTMLElement>(selector: AngelsSelectorType<THTMLElement>): AngelsFrontElement<THTMLElement> | null {\n\n let element: THTMLElement;\n if (typeof selector === 'undefined') {\n return null;\n } else if (selector === null) {\n return null;\n } else if (typeof selector === 'string') {\n const findElement = document.querySelector<THTMLElement>(selector);\n if (!findElement) {\n return null;\n }\n element = findElement;\n } else if (selector instanceof HTMLElement) {\n element = selector as THTMLElement;\n } else if (selector instanceof Element) {\n element = selector as THTMLElement;\n } else if (selector instanceof AngelsFrontElementClass) {\n return selector as AngelsFrontElement<THTMLElement>;\n } else {\n element = selector;\n }\n return new AngelsFrontElementClass(element) as AngelsFrontElement<THTMLElement>;\n}\n\nexport function aLibRequireElement<THTMLElement extends HTMLElement>(selector: AngelsSelectorType): AngelsFrontElement<THTMLElement> {\n const element = aLibFindElement<THTMLElement>(selector);\n if (element) {\n return element;\n }\n throw Error(`Element not found by '${selector}' selector.`);\n}\n\nexport function aLibHideElement<THTMLElement extends HTMLElement>(selector: AngelsSelectorType): AngelsFrontElement<THTMLElement> {\n const element = aLibRequireElement<THTMLElement>(selector);\n element.hidden = true;\n return element;\n}\n\nexport function aLibShowElement<THTMLElement extends HTMLElement>(selector: AngelsSelectorType): AngelsFrontElement<THTMLElement> {\n const element = aLibRequireElement<THTMLElement>(selector);\n element.hidden = false;\n return element;\n}\n\nexport function aLibToggleElement(originalElement: AngelsSelectorType, switcher: boolean | undefined = undefined) {\n const innerElement = aLibRequireElement(originalElement);\n if (switcher === undefined) {\n switcher = !innerElement.hidden;\n }\n if (switcher) {\n return aLibShowElement(innerElement);\n } else {\n return aLibHideElement(innerElement);\n }\n}\n","import { aLibRequireElement } from \"./AngelsFrontDOMLibrary\";\n\nexport async function aLibConcealElement(originalElement: AngelsSelectorType) {\n const innerElement = aLibRequireElement(originalElement);\n const promise = new Promise<void>((resolve) => {\n\n if (innerElement.hidden) {\n resolve();\n return;\n }\n\n let timeout: NodeJS.Timeout | undefined;\n\n const animationHandler = () => {\n clearTimeout(timeout);\n innerElement.removeEventListener('animationend', animationHandler);\n innerElement.hidden = true;\n innerElement.classList.remove('a-out-animation');\n resolve();\n }\n\n innerElement.classList.add('a-out-animation');\n\n const animations = innerElement.getAnimations();\n if (animations.length > 0) {\n timeout = setTimeout(() => {\n innerElement.removeEventListener('animationend', animationHandler);\n innerElement.hidden = true;\n innerElement.classList.remove('a-out-animation');\n console.warn('Animation timeout');\n resolve();\n }, 5000); // 5 seconds timeout\n innerElement.addEventListener('animationend', animationHandler);\n } else {\n innerElement.hidden = true;\n resolve();\n }\n });\n\n return promise;\n}\n\nexport async function aLibEngageElement(originalElement: AngelsSelectorType, switcher: boolean | undefined = undefined) {\n const innerElement = aLibRequireElement(originalElement);\n if (switcher === undefined) {\n switcher = innerElement.hidden;\n }\n\n if (switcher) {\n return await aLibRevealElement(innerElement);\n } else {\n return await aLibConcealElement(innerElement);\n }\n}\n\nexport async function aLibRevealElement(originalElement: AngelsSelectorType) {\n const innerElement = aLibRequireElement(originalElement);\n const promise = new Promise<void>((resolve) => {\n\n if (!innerElement.hidden) {\n resolve();\n return;\n }\n\n let timeout: NodeJS.Timeout | undefined;\n\n const animationHandler = () => {\n clearTimeout(timeout);\n innerElement.removeEventListener('animationend', animationHandler);\n resolve();\n }\n\n innerElement.hidden = false;\n\n const animations = innerElement.getAnimations();\n if (animations.length > 0) {\n timeout = setTimeout(() => {\n innerElement.removeEventListener('animationend', animationHandler);\n console.warn('Animation timeout');\n resolve();\n }, 5000); // 5 seconds timeout\n innerElement.addEventListener('animationend', animationHandler);\n } else {\n resolve();\n }\n });\n\n return promise;\n}\n"],"mappings":"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","names":[]}
@@ -0,0 +1,11 @@
1
+ import AngelsFrontWidgetClass from './AngelsFrontWidgetClass.mjs';
2
+ import './AngelsFrontElement.mjs';
3
+ import './AngelsFrontMod.mjs';
4
+
5
+ /**
6
+ * @example new AngelsFrontApplication(document.body)
7
+ */
8
+ declare class AngelsFrontApplication extends AngelsFrontWidgetClass {
9
+ }
10
+
11
+ export { AngelsFrontApplication as default };
@@ -1,10 +1,11 @@
1
- import AngelsFrontComponent from './AngelsFrontComponent.js';
1
+ import AngelsFrontWidgetClass from './AngelsFrontWidgetClass.js';
2
+ import './AngelsFrontElement.js';
2
3
  import './AngelsFrontMod.js';
3
4
 
4
5
  /**
5
6
  * @example new AngelsFrontApplication(document.body)
6
7
  */
7
- declare class AngelsFrontApplication extends AngelsFrontComponent {
8
+ declare class AngelsFrontApplication extends AngelsFrontWidgetClass {
8
9
  }
9
10
 
10
11
  export { AngelsFrontApplication as default };