@claspo/common 7.3.1-dev.3 → 7.3.1-dev.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (221) hide show
  1. package/coverage/lcov-report/block-navigation.js +87 -0
  2. package/coverage/lcov-report/prettify.js +2 -0
  3. package/coverage/lcov-report/sorter.js +196 -0
  4. package/jest.config.ts +204 -0
  5. package/out/package.json +50 -0
  6. package/package.json +1 -1
  7. package/src/DefaultEventEmitter.test.ts +84 -0
  8. package/src/DefaultEventEmitter.ts +96 -0
  9. package/src/HttpAbortableLoader.ts +35 -0
  10. package/src/InAppLayoutType.ts +6 -0
  11. package/src/LayoutType.ts +18 -0
  12. package/src/PrizePool.interface.ts +32 -0
  13. package/src/RenderMode.ts +10 -0
  14. package/src/UuidGenerator.ts +16 -0
  15. package/src/WidgetInitConfig.interface.ts +163 -0
  16. package/src/WidgetType.ts +18 -0
  17. package/src/action/type.ts +7 -0
  18. package/src/async/createAsyncIterator.ts +33 -0
  19. package/src/async/debounce.ts +28 -0
  20. package/src/async/timeout.ts +3 -0
  21. package/src/component-manifest/ComponentManifest.interface.ts +160 -0
  22. package/src/component-manifest/ContextMenuManifest.interface.ts +52 -0
  23. package/src/component-manifest/DisplayCondition.interface.ts +65 -0
  24. package/src/component-manifest/FloatingControlManifest.interface.ts +89 -0
  25. package/src/component-manifest/PropPathCondition.interface.ts +4 -0
  26. package/src/component-manifest/PropertyPaneManifest.interface.ts +614 -0
  27. package/src/converter/time/TimeConverter.spec.ts +11 -0
  28. package/src/converter/time/TimeUnit.spec.ts +12 -0
  29. package/src/converter/time/TimeUnit.ts +34 -0
  30. package/src/converter/time/TimerConverter.ts +29 -0
  31. package/src/document/ComponentInsertType.ts +6 -0
  32. package/src/document/Document.interface.ts +625 -0
  33. package/src/document/DocumentCssVarsReplace.test.ts +2947 -0
  34. package/src/document/DocumentCssVarsReplace.ts +31 -0
  35. package/src/document/DocumentUtils.test.ts +595 -0
  36. package/src/document/DocumentUtils.ts +194 -0
  37. package/src/document/hidden-fields.interface.ts +54 -0
  38. package/src/dom/ViewportSize.ts +61 -0
  39. package/src/dom/copyToClipboard.ts +17 -0
  40. package/src/dom/getMostNestedNode.ts +9 -0
  41. package/src/dom/insertHtmlIntoElement.ts +36 -0
  42. package/src/dom/sanitizeHTML.test.ts +59 -0
  43. package/src/dom/sanitizeHTML.ts +78 -0
  44. package/src/element/BaseElementInViewportHandler.ts +41 -0
  45. package/src/element/CssVarsOperations.ts +37 -0
  46. package/src/element/ThemeCssVars.ts +28 -0
  47. package/src/element/recursiveFindParentNodeByAttribute.test.ts +63 -0
  48. package/src/element/recursiveFindParentNodeByAttribute.ts +25 -0
  49. package/src/flat.ts +16 -0
  50. package/src/handler/HandlerTypes.ts +4 -0
  51. package/src/math/RandomDistributor.test.ts +35 -0
  52. package/src/math/RandomDistributor.ts +58 -0
  53. package/src/math/sum.ts +3 -0
  54. package/src/network/HttpClient.ts +28 -0
  55. package/src/network/HttpStatus.ts +4 -0
  56. package/src/object/isDictionary.test.ts +24 -0
  57. package/src/object/isDictionary.ts +13 -0
  58. package/src/object/omitKeys.test.ts +19 -0
  59. package/src/object/omitKeys.ts +20 -0
  60. package/src/storage/BaseCachingStorage.test.ts +70 -0
  61. package/src/storage/BaseCachingStorage.ts +37 -0
  62. package/src/storage/CachingCookieStorage.test.ts +75 -0
  63. package/src/storage/CachingCookieStorage.ts +36 -0
  64. package/src/storage/CachingLocalStorage.test.ts +59 -0
  65. package/src/storage/CachingLocalStorage.ts +34 -0
  66. package/src/storage/getCookie.test.ts +53 -0
  67. package/src/storage/getCookie.ts +10 -0
  68. package/src/storage/setCookie.test.ts +97 -0
  69. package/src/storage/setCookie.ts +49 -0
  70. package/src/theme/theme.utils.ts +50 -0
  71. package/src/url/sanitizeUrl.test.ts +62 -0
  72. package/src/url/sanitizeUrl.ts +51 -0
  73. package/src/utils/CaseTransformer.test.ts +16 -0
  74. package/src/utils/CaseTransformer.ts +10 -0
  75. package/src/utils/NullishCoalescingOperator.ts +3 -0
  76. package/src/utils/NumericDecline.ts +25 -0
  77. package/src/utils/addEventListener.ts +23 -0
  78. package/src/utils/allSettled.ts +6 -0
  79. package/src/utils/checkTimeZone.spec.ts +18 -0
  80. package/src/utils/checkTimeZone.ts +6 -0
  81. package/src/utils/deviceUtils.ts +12 -0
  82. package/src/utils/flatMap.test.ts +21 -0
  83. package/src/utils/flatMap.ts +3 -0
  84. package/src/utils/fromEntries.ts +6 -0
  85. package/src/utils/generateRandomNumber.test.ts +23 -0
  86. package/src/utils/generateRandomNumber.ts +3 -0
  87. package/src/utils/objectSort.ts +41 -0
  88. package/src/utils/orientationUtils.ts +18 -0
  89. package/src/velocity/SysVelocityContext.spec.ts +88 -0
  90. package/src/velocity/SysVelocityContext.ts +129 -0
  91. package/src/velocity/SysVelocityRenderer.spec.ts +36 -0
  92. package/src/velocity/SysVelocityRenderer.ts +11 -0
  93. package/test/__mocks/jestGlobalMocks.js +1887 -0
  94. /package/{DefaultEventEmitter.d.ts → out/DefaultEventEmitter.d.ts} +0 -0
  95. /package/{DefaultEventEmitter.js → out/DefaultEventEmitter.js} +0 -0
  96. /package/{HttpAbortableLoader.d.ts → out/HttpAbortableLoader.d.ts} +0 -0
  97. /package/{HttpAbortableLoader.js → out/HttpAbortableLoader.js} +0 -0
  98. /package/{InAppLayoutType.d.ts → out/InAppLayoutType.d.ts} +0 -0
  99. /package/{InAppLayoutType.js → out/InAppLayoutType.js} +0 -0
  100. /package/{LayoutType.d.ts → out/LayoutType.d.ts} +0 -0
  101. /package/{LayoutType.js → out/LayoutType.js} +0 -0
  102. /package/{PrizePool.interface.d.ts → out/PrizePool.interface.d.ts} +0 -0
  103. /package/{PrizePool.interface.js → out/PrizePool.interface.js} +0 -0
  104. /package/{RenderMode.d.ts → out/RenderMode.d.ts} +0 -0
  105. /package/{RenderMode.js → out/RenderMode.js} +0 -0
  106. /package/{UuidGenerator.d.ts → out/UuidGenerator.d.ts} +0 -0
  107. /package/{UuidGenerator.js → out/UuidGenerator.js} +0 -0
  108. /package/{WidgetInitConfig.interface.d.ts → out/WidgetInitConfig.interface.d.ts} +0 -0
  109. /package/{WidgetInitConfig.interface.js → out/WidgetInitConfig.interface.js} +0 -0
  110. /package/{WidgetType.d.ts → out/WidgetType.d.ts} +0 -0
  111. /package/{WidgetType.js → out/WidgetType.js} +0 -0
  112. /package/{action → out/action}/type.d.ts +0 -0
  113. /package/{action → out/action}/type.js +0 -0
  114. /package/{async → out/async}/createAsyncIterator.d.ts +0 -0
  115. /package/{async → out/async}/createAsyncIterator.js +0 -0
  116. /package/{async → out/async}/debounce.d.ts +0 -0
  117. /package/{async → out/async}/debounce.js +0 -0
  118. /package/{async → out/async}/timeout.d.ts +0 -0
  119. /package/{async → out/async}/timeout.js +0 -0
  120. /package/{component-manifest → out/component-manifest}/ComponentManifest.interface.d.ts +0 -0
  121. /package/{component-manifest → out/component-manifest}/ComponentManifest.interface.js +0 -0
  122. /package/{component-manifest → out/component-manifest}/ContextMenuManifest.interface.d.ts +0 -0
  123. /package/{component-manifest → out/component-manifest}/ContextMenuManifest.interface.js +0 -0
  124. /package/{component-manifest → out/component-manifest}/DisplayCondition.interface.d.ts +0 -0
  125. /package/{component-manifest → out/component-manifest}/DisplayCondition.interface.js +0 -0
  126. /package/{component-manifest → out/component-manifest}/FloatingControlManifest.interface.d.ts +0 -0
  127. /package/{component-manifest → out/component-manifest}/FloatingControlManifest.interface.js +0 -0
  128. /package/{component-manifest → out/component-manifest}/PropPathCondition.interface.d.ts +0 -0
  129. /package/{component-manifest → out/component-manifest}/PropPathCondition.interface.js +0 -0
  130. /package/{component-manifest → out/component-manifest}/PropertyPaneManifest.interface.d.ts +0 -0
  131. /package/{component-manifest → out/component-manifest}/PropertyPaneManifest.interface.js +0 -0
  132. /package/{converter → out/converter}/time/TimeUnit.d.ts +0 -0
  133. /package/{converter → out/converter}/time/TimeUnit.js +0 -0
  134. /package/{converter → out/converter}/time/TimerConverter.d.ts +0 -0
  135. /package/{converter → out/converter}/time/TimerConverter.js +0 -0
  136. /package/{document → out/document}/ComponentInsertType.d.ts +0 -0
  137. /package/{document → out/document}/ComponentInsertType.js +0 -0
  138. /package/{document → out/document}/Document.interface.d.ts +0 -0
  139. /package/{document → out/document}/Document.interface.js +0 -0
  140. /package/{document → out/document}/DocumentCssVarsReplace.d.ts +0 -0
  141. /package/{document → out/document}/DocumentCssVarsReplace.js +0 -0
  142. /package/{document → out/document}/DocumentUtils.d.ts +0 -0
  143. /package/{document → out/document}/DocumentUtils.js +0 -0
  144. /package/{document → out/document}/hidden-fields.interface.d.ts +0 -0
  145. /package/{document → out/document}/hidden-fields.interface.js +0 -0
  146. /package/{dom → out/dom}/ViewportSize.d.ts +0 -0
  147. /package/{dom → out/dom}/ViewportSize.js +0 -0
  148. /package/{dom → out/dom}/copyToClipboard.d.ts +0 -0
  149. /package/{dom → out/dom}/copyToClipboard.js +0 -0
  150. /package/{dom → out/dom}/getMostNestedNode.d.ts +0 -0
  151. /package/{dom → out/dom}/getMostNestedNode.js +0 -0
  152. /package/{dom → out/dom}/insertHtmlIntoElement.d.ts +0 -0
  153. /package/{dom → out/dom}/insertHtmlIntoElement.js +0 -0
  154. /package/{dom → out/dom}/sanitizeHTML.d.ts +0 -0
  155. /package/{dom → out/dom}/sanitizeHTML.js +0 -0
  156. /package/{element → out/element}/BaseElementInViewportHandler.d.ts +0 -0
  157. /package/{element → out/element}/BaseElementInViewportHandler.js +0 -0
  158. /package/{element → out/element}/CssVarsOperations.d.ts +0 -0
  159. /package/{element → out/element}/CssVarsOperations.js +0 -0
  160. /package/{element → out/element}/ThemeCssVars.d.ts +0 -0
  161. /package/{element → out/element}/ThemeCssVars.js +0 -0
  162. /package/{element → out/element}/recursiveFindParentNodeByAttribute.d.ts +0 -0
  163. /package/{element → out/element}/recursiveFindParentNodeByAttribute.js +0 -0
  164. /package/{flat.d.ts → out/flat.d.ts} +0 -0
  165. /package/{flat.js → out/flat.js} +0 -0
  166. /package/{handler → out/handler}/HandlerTypes.d.ts +0 -0
  167. /package/{handler → out/handler}/HandlerTypes.js +0 -0
  168. /package/{math → out/math}/RandomDistributor.d.ts +0 -0
  169. /package/{math → out/math}/RandomDistributor.js +0 -0
  170. /package/{math → out/math}/sum.d.ts +0 -0
  171. /package/{math → out/math}/sum.js +0 -0
  172. /package/{network → out/network}/HttpClient.d.ts +0 -0
  173. /package/{network → out/network}/HttpClient.js +0 -0
  174. /package/{network → out/network}/HttpStatus.d.ts +0 -0
  175. /package/{network → out/network}/HttpStatus.js +0 -0
  176. /package/{object → out/object}/isDictionary.d.ts +0 -0
  177. /package/{object → out/object}/isDictionary.js +0 -0
  178. /package/{object → out/object}/omitKeys.d.ts +0 -0
  179. /package/{object → out/object}/omitKeys.js +0 -0
  180. /package/{storage → out/storage}/BaseCachingStorage.d.ts +0 -0
  181. /package/{storage → out/storage}/BaseCachingStorage.js +0 -0
  182. /package/{storage → out/storage}/CachingCookieStorage.d.ts +0 -0
  183. /package/{storage → out/storage}/CachingCookieStorage.js +0 -0
  184. /package/{storage → out/storage}/CachingLocalStorage.d.ts +0 -0
  185. /package/{storage → out/storage}/CachingLocalStorage.js +0 -0
  186. /package/{storage → out/storage}/getCookie.d.ts +0 -0
  187. /package/{storage → out/storage}/getCookie.js +0 -0
  188. /package/{storage → out/storage}/setCookie.d.ts +0 -0
  189. /package/{storage → out/storage}/setCookie.js +0 -0
  190. /package/{theme → out/theme}/theme.utils.d.ts +0 -0
  191. /package/{theme → out/theme}/theme.utils.js +0 -0
  192. /package/{url → out/url}/sanitizeUrl.d.ts +0 -0
  193. /package/{url → out/url}/sanitizeUrl.js +0 -0
  194. /package/{utils → out/utils}/CaseTransformer.d.ts +0 -0
  195. /package/{utils → out/utils}/CaseTransformer.js +0 -0
  196. /package/{utils → out/utils}/NullishCoalescingOperator.d.ts +0 -0
  197. /package/{utils → out/utils}/NullishCoalescingOperator.js +0 -0
  198. /package/{utils → out/utils}/NumericDecline.d.ts +0 -0
  199. /package/{utils → out/utils}/NumericDecline.js +0 -0
  200. /package/{utils → out/utils}/addEventListener.d.ts +0 -0
  201. /package/{utils → out/utils}/addEventListener.js +0 -0
  202. /package/{utils → out/utils}/allSettled.d.ts +0 -0
  203. /package/{utils → out/utils}/allSettled.js +0 -0
  204. /package/{utils → out/utils}/checkTimeZone.d.ts +0 -0
  205. /package/{utils → out/utils}/checkTimeZone.js +0 -0
  206. /package/{utils → out/utils}/deviceUtils.d.ts +0 -0
  207. /package/{utils → out/utils}/deviceUtils.js +0 -0
  208. /package/{utils → out/utils}/flatMap.d.ts +0 -0
  209. /package/{utils → out/utils}/flatMap.js +0 -0
  210. /package/{utils → out/utils}/fromEntries.d.ts +0 -0
  211. /package/{utils → out/utils}/fromEntries.js +0 -0
  212. /package/{utils → out/utils}/generateRandomNumber.d.ts +0 -0
  213. /package/{utils → out/utils}/generateRandomNumber.js +0 -0
  214. /package/{utils → out/utils}/objectSort.d.ts +0 -0
  215. /package/{utils → out/utils}/objectSort.js +0 -0
  216. /package/{utils → out/utils}/orientationUtils.d.ts +0 -0
  217. /package/{utils → out/utils}/orientationUtils.js +0 -0
  218. /package/{velocity → out/velocity}/SysVelocityContext.d.ts +0 -0
  219. /package/{velocity → out/velocity}/SysVelocityContext.js +0 -0
  220. /package/{velocity → out/velocity}/SysVelocityRenderer.d.ts +0 -0
  221. /package/{velocity → out/velocity}/SysVelocityRenderer.js +0 -0
@@ -0,0 +1,129 @@
1
+ type NumberLike = number | string;
2
+
3
+ export interface SysVelocityContextI {
4
+ mathTool: {
5
+ add: (a: NumberLike, b: NumberLike) => number;
6
+ sub: (a: NumberLike, b: NumberLike) => number;
7
+ mul: (a: NumberLike, b: NumberLike) => number;
8
+ div: (a: NumberLike, b: NumberLike) => number;
9
+ };
10
+ stringTool: {
11
+ equalsIgnoreCase: (a: string, b: string) => boolean;
12
+ };
13
+ numberTool: {
14
+ integer: (a: NumberLike) => number;
15
+ format: (f: string | null, v: NumberLike) => string;
16
+ number: (v: NumberLike, separator?: string, precision?: number) => string;
17
+ };
18
+ dateTool: {
19
+ currentDate: (format?: string) => string | number;
20
+ currentTimeStamp: () => number;
21
+ formatDate: (format: string | null, date: Date | string | number) => string | number;
22
+ };
23
+ }
24
+
25
+ export default class SysVelocityContext {
26
+
27
+ create(): SysVelocityContextI {
28
+ return {
29
+ mathTool: {
30
+ add: function(a: NumberLike, b: NumberLike): number {
31
+ return Number(a) + Number(b);
32
+ },
33
+ sub: function(a: NumberLike, b: NumberLike): number {
34
+ return (a as number) - (b as number);
35
+ },
36
+ mul: function(a: NumberLike, b: NumberLike): number {
37
+ return (a as number) * (b as number);
38
+ },
39
+ div: function(a: NumberLike, b: NumberLike): number {
40
+ return (a as number) / (b as number);
41
+ }
42
+ },
43
+ stringTool: {
44
+ equalsIgnoreCase: function(a: string, b: string): boolean {
45
+ return String(a).toLowerCase() === String(b).toLowerCase();
46
+ },
47
+ },
48
+ numberTool: {
49
+ integer: function(a: NumberLike): number {
50
+ return Math.floor(a as number);
51
+ },
52
+ format: function(f: string | null, v: NumberLike): string {
53
+ const precision = (f || '').split('.')[1];
54
+ return Number(v).toFixed((precision || '').length);
55
+ },
56
+ number: function(v: NumberLike, separator: string = ',', precision: number = 3): string {
57
+ return Number(v)
58
+ .toFixed(precision)
59
+ .replace(new RegExp(`[.]0{${precision}}`), '')
60
+ .split('.')
61
+ .map((item: string, i: number) => {
62
+ if (i === 0) {
63
+ return item
64
+ .split('')
65
+ .reverse()
66
+ .join('')
67
+ .split('')
68
+ .map((char: string, i: number) => {
69
+ if (i % 3 === 0 && i !== 0) {
70
+ char += separator;
71
+ return char;
72
+ }
73
+ return char;
74
+ })
75
+ .reverse()
76
+ .join('');
77
+ } else if (i === 1) {
78
+ return item;
79
+ }
80
+ return undefined;
81
+ })
82
+ .join('.');
83
+ }
84
+ },
85
+ dateTool: {
86
+ currentDate: function(format?: string): string | number {
87
+ return this.formatDate(format || 'ISO', new Date());
88
+ },
89
+ currentTimeStamp: function(): number {
90
+ return this.formatDate(null, new Date()) as number;
91
+ },
92
+ formatDate: function(format: string | null, date: Date | string | number): string | number {
93
+ const formatNumberLess10 = (number: number): string => number < 9 ? `0${number}` : `${number}`;
94
+ const dateObject = new Date(date);
95
+ if (dateObject.toString() === 'Invalid Date') {
96
+ return date as string;
97
+ }
98
+ if (format === 'ISO') {
99
+ return dateObject.toISOString();
100
+ }
101
+ if (!format || typeof format !== 'string') {
102
+ return dateObject.getTime();
103
+ }
104
+ const parsedFormat = format.split(' ');
105
+ let result = '';
106
+ parsedFormat.forEach((piece: string) => {
107
+ const upperPiece = piece.toUpperCase();
108
+ result = result.length === 0 ? result : result + ' ';
109
+ if (upperPiece.includes('HH')) {
110
+ result += upperPiece
111
+ .replace('HH', formatNumberLess10(dateObject.getHours()))
112
+ .replace('MM', formatNumberLess10(dateObject.getMinutes()))
113
+ .replace('SS', formatNumberLess10(dateObject.getSeconds()))
114
+ }
115
+ if (upperPiece.includes('YYYY') || upperPiece.includes('DD')) {
116
+ result += upperPiece
117
+ .replace('YYYY', String(dateObject.getFullYear()))
118
+ .replace('DD', formatNumberLess10(dateObject.getDate()))
119
+ .replace('MM', formatNumberLess10(dateObject.getMonth() + 1));
120
+ }
121
+ });
122
+ return result;
123
+ }
124
+ }
125
+ }
126
+
127
+ }
128
+
129
+ }
@@ -0,0 +1,36 @@
1
+ import SysVelocityRenderer from "./SysVelocityRenderer";
2
+ import SysVelocityContext from "./SysVelocityContext";
3
+
4
+ describe('SysVelocityRenderer', function () {
5
+ const baseCtx = new SysVelocityContext().create();
6
+ const instance = new SysVelocityRenderer();
7
+
8
+ const context = {
9
+ "FIRSTNAME": "Kate",
10
+ "nestedObject": {
11
+ "prop1": "value1"
12
+ },
13
+ "array": [
14
+ {
15
+ "el": 1
16
+ },
17
+ {
18
+ "el": 2
19
+ }
20
+ ]
21
+ };
22
+ const render = (template: string) => instance.render(template, {...baseCtx, data: context});
23
+
24
+ it('should support syntax', function () {
25
+
26
+ expect(render('$data.get("FIRSTNAME")')).toEqual("Kate");
27
+ expect(render('$data.get("nestedObject").get("prop1")')).toEqual("value1");
28
+ expect(render('$data.nestedObject.prop1')).toEqual("value1");
29
+ expect(render('#foreach($item in $!data.get(\'array\'))$item.el#end')).toEqual("12");
30
+ });
31
+
32
+ it('should have sys ctx', function () {
33
+
34
+ expect(render('$mathTool.add(1,1)')).toEqual("2");
35
+ });
36
+ });
@@ -0,0 +1,11 @@
1
+ // @ts-ignore
2
+ import * as Velocity from 'velocityjs';
3
+ import SysVelocityContext from "./SysVelocityContext";
4
+
5
+ const sysCtx = new SysVelocityContext().create();
6
+
7
+ export default class SysVelocityRenderer {
8
+ render(template: string, context: Record<string, any>): string {
9
+ return Velocity.render(template, {...sysCtx, ...context});
10
+ }
11
+ }