@omegagrid/core 0.2.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 (233) hide show
  1. package/dist/common/actions.d.ts +16 -0
  2. package/dist/common/actions.d.ts.map +1 -0
  3. package/dist/common/actions.js +19 -0
  4. package/dist/common/actions.js.map +1 -0
  5. package/dist/common/colors.d.ts +25 -0
  6. package/dist/common/colors.d.ts.map +1 -0
  7. package/dist/common/colors.js +54 -0
  8. package/dist/common/colors.js.map +1 -0
  9. package/dist/common/csv.d.ts +23 -0
  10. package/dist/common/csv.d.ts.map +1 -0
  11. package/dist/common/csv.js +99 -0
  12. package/dist/common/csv.js.map +1 -0
  13. package/dist/common/dates.d.ts +13 -0
  14. package/dist/common/dates.d.ts.map +1 -0
  15. package/dist/common/dates.js +118 -0
  16. package/dist/common/dates.js.map +1 -0
  17. package/dist/common/dom.d.ts +79 -0
  18. package/dist/common/dom.d.ts.map +1 -0
  19. package/dist/common/dom.js +242 -0
  20. package/dist/common/dom.js.map +1 -0
  21. package/dist/common/html.d.ts +3 -0
  22. package/dist/common/html.d.ts.map +1 -0
  23. package/dist/common/html.js +33 -0
  24. package/dist/common/html.js.map +1 -0
  25. package/dist/common/index.d.ts +14 -0
  26. package/dist/common/index.d.ts.map +1 -0
  27. package/dist/common/index.js +43 -0
  28. package/dist/common/index.js.map +1 -0
  29. package/dist/common/linkedList.d.ts +24 -0
  30. package/dist/common/linkedList.d.ts.map +1 -0
  31. package/dist/common/linkedList.js +70 -0
  32. package/dist/common/linkedList.js.map +1 -0
  33. package/dist/common/logger.d.ts +23 -0
  34. package/dist/common/logger.d.ts.map +1 -0
  35. package/dist/common/logger.js +58 -0
  36. package/dist/common/logger.js.map +1 -0
  37. package/dist/common/matrix.d.ts +6 -0
  38. package/dist/common/matrix.d.ts.map +1 -0
  39. package/dist/common/matrix.js +24 -0
  40. package/dist/common/matrix.js.map +1 -0
  41. package/dist/common/mixin.d.ts +4 -0
  42. package/dist/common/mixin.d.ts.map +1 -0
  43. package/dist/common/mixin.js +3 -0
  44. package/dist/common/mixin.js.map +1 -0
  45. package/dist/common/numbers.d.ts +18 -0
  46. package/dist/common/numbers.d.ts.map +1 -0
  47. package/dist/common/numbers.js +209 -0
  48. package/dist/common/numbers.js.map +1 -0
  49. package/dist/common/options.d.ts +10 -0
  50. package/dist/common/options.d.ts.map +1 -0
  51. package/dist/common/options.js +22 -0
  52. package/dist/common/options.js.map +1 -0
  53. package/dist/common/tree.d.ts +68 -0
  54. package/dist/common/tree.d.ts.map +1 -0
  55. package/dist/common/tree.js +190 -0
  56. package/dist/common/tree.js.map +1 -0
  57. package/dist/common/utils.d.ts +15 -0
  58. package/dist/common/utils.d.ts.map +1 -0
  59. package/dist/common/utils.js +92 -0
  60. package/dist/common/utils.js.map +1 -0
  61. package/dist/constants.d.ts +45 -0
  62. package/dist/constants.d.ts.map +1 -0
  63. package/dist/constants.js +29 -0
  64. package/dist/constants.js.map +1 -0
  65. package/dist/index.d.ts +8 -0
  66. package/dist/index.d.ts.map +1 -0
  67. package/dist/index.js +37 -0
  68. package/dist/index.js.map +1 -0
  69. package/dist/model/adapter.d.ts +8 -0
  70. package/dist/model/adapter.d.ts.map +1 -0
  71. package/dist/model/adapter.js +17 -0
  72. package/dist/model/adapter.js.map +1 -0
  73. package/dist/model/componentStore.d.ts +11 -0
  74. package/dist/model/componentStore.d.ts.map +1 -0
  75. package/dist/model/componentStore.js +26 -0
  76. package/dist/model/componentStore.js.map +1 -0
  77. package/dist/model/index.d.ts +5 -0
  78. package/dist/model/index.d.ts.map +1 -0
  79. package/dist/model/index.js +21 -0
  80. package/dist/model/index.js.map +1 -0
  81. package/dist/model/plugins.d.ts +13 -0
  82. package/dist/model/plugins.d.ts.map +1 -0
  83. package/dist/model/plugins.js +29 -0
  84. package/dist/model/plugins.js.map +1 -0
  85. package/dist/model/ui.d.ts +19 -0
  86. package/dist/model/ui.d.ts.map +1 -0
  87. package/dist/model/ui.js +16 -0
  88. package/dist/model/ui.js.map +1 -0
  89. package/dist/styling/index.d.ts +3 -0
  90. package/dist/styling/index.d.ts.map +1 -0
  91. package/dist/styling/index.js +10 -0
  92. package/dist/styling/index.js.map +1 -0
  93. package/dist/styling/stylable.d.ts +10 -0
  94. package/dist/styling/stylable.d.ts.map +1 -0
  95. package/dist/styling/stylable.js +43 -0
  96. package/dist/styling/stylable.js.map +1 -0
  97. package/dist/styling/styleManager.d.ts +20 -0
  98. package/dist/styling/styleManager.d.ts.map +1 -0
  99. package/dist/styling/styleManager.js +126 -0
  100. package/dist/styling/styleManager.js.map +1 -0
  101. package/dist/themes.d.ts +7 -0
  102. package/dist/themes.d.ts.map +1 -0
  103. package/dist/themes.js +163 -0
  104. package/dist/themes.js.map +1 -0
  105. package/dist/types.d.ts +48 -0
  106. package/dist/types.d.ts.map +1 -0
  107. package/dist/types.js +14 -0
  108. package/dist/types.js.map +1 -0
  109. package/dist/ui/accordion.d.ts +12 -0
  110. package/dist/ui/accordion.d.ts.map +1 -0
  111. package/dist/ui/accordion.js +94 -0
  112. package/dist/ui/accordion.js.map +1 -0
  113. package/dist/ui/alert.d.ts +15 -0
  114. package/dist/ui/alert.d.ts.map +1 -0
  115. package/dist/ui/alert.js +106 -0
  116. package/dist/ui/alert.js.map +1 -0
  117. package/dist/ui/attributeTable.d.ts +8 -0
  118. package/dist/ui/attributeTable.d.ts.map +1 -0
  119. package/dist/ui/attributeTable.js +39 -0
  120. package/dist/ui/attributeTable.js.map +1 -0
  121. package/dist/ui/baseElement.d.ts +7 -0
  122. package/dist/ui/baseElement.d.ts.map +1 -0
  123. package/dist/ui/baseElement.js +15 -0
  124. package/dist/ui/baseElement.js.map +1 -0
  125. package/dist/ui/button.d.ts +20 -0
  126. package/dist/ui/button.d.ts.map +1 -0
  127. package/dist/ui/button.js +98 -0
  128. package/dist/ui/button.js.map +1 -0
  129. package/dist/ui/button.style.d.ts +2 -0
  130. package/dist/ui/button.style.d.ts.map +1 -0
  131. package/dist/ui/button.style.js +72 -0
  132. package/dist/ui/button.style.js.map +1 -0
  133. package/dist/ui/checkbox.d.ts +14 -0
  134. package/dist/ui/checkbox.d.ts.map +1 -0
  135. package/dist/ui/checkbox.js +59 -0
  136. package/dist/ui/checkbox.js.map +1 -0
  137. package/dist/ui/colorpicker.d.ts +15 -0
  138. package/dist/ui/colorpicker.d.ts.map +1 -0
  139. package/dist/ui/colorpicker.js +160 -0
  140. package/dist/ui/colorpicker.js.map +1 -0
  141. package/dist/ui/container.d.ts +26 -0
  142. package/dist/ui/container.d.ts.map +1 -0
  143. package/dist/ui/container.js +240 -0
  144. package/dist/ui/container.js.map +1 -0
  145. package/dist/ui/dropdown.d.ts +32 -0
  146. package/dist/ui/dropdown.d.ts.map +1 -0
  147. package/dist/ui/dropdown.js +197 -0
  148. package/dist/ui/dropdown.js.map +1 -0
  149. package/dist/ui/dropdownMenu.d.ts +12 -0
  150. package/dist/ui/dropdownMenu.d.ts.map +1 -0
  151. package/dist/ui/dropdownMenu.js +58 -0
  152. package/dist/ui/dropdownMenu.js.map +1 -0
  153. package/dist/ui/expander.d.ts +28 -0
  154. package/dist/ui/expander.d.ts.map +1 -0
  155. package/dist/ui/expander.js +151 -0
  156. package/dist/ui/expander.js.map +1 -0
  157. package/dist/ui/icon.d.ts +24 -0
  158. package/dist/ui/icon.d.ts.map +1 -0
  159. package/dist/ui/icon.js +77 -0
  160. package/dist/ui/icon.js.map +1 -0
  161. package/dist/ui/images.d.ts +2 -0
  162. package/dist/ui/images.d.ts.map +1 -0
  163. package/dist/ui/images.js +17 -0
  164. package/dist/ui/images.js.map +1 -0
  165. package/dist/ui/index.d.ts +25 -0
  166. package/dist/ui/index.d.ts.map +1 -0
  167. package/dist/ui/index.js +41 -0
  168. package/dist/ui/index.js.map +1 -0
  169. package/dist/ui/input.d.ts +11 -0
  170. package/dist/ui/input.d.ts.map +1 -0
  171. package/dist/ui/input.js +67 -0
  172. package/dist/ui/input.js.map +1 -0
  173. package/dist/ui/list.d.ts +67 -0
  174. package/dist/ui/list.d.ts.map +1 -0
  175. package/dist/ui/list.js +362 -0
  176. package/dist/ui/list.js.map +1 -0
  177. package/dist/ui/loader.d.ts +9 -0
  178. package/dist/ui/loader.d.ts.map +1 -0
  179. package/dist/ui/loader.js +40 -0
  180. package/dist/ui/loader.js.map +1 -0
  181. package/dist/ui/menu.d.ts +36 -0
  182. package/dist/ui/menu.d.ts.map +1 -0
  183. package/dist/ui/menu.js +154 -0
  184. package/dist/ui/menu.js.map +1 -0
  185. package/dist/ui/menu.style.d.ts +3 -0
  186. package/dist/ui/menu.style.d.ts.map +1 -0
  187. package/dist/ui/menu.style.js +45 -0
  188. package/dist/ui/menu.style.js.map +1 -0
  189. package/dist/ui/overlay.d.ts +17 -0
  190. package/dist/ui/overlay.d.ts.map +1 -0
  191. package/dist/ui/overlay.js +95 -0
  192. package/dist/ui/overlay.js.map +1 -0
  193. package/dist/ui/overlay.style.d.ts +2 -0
  194. package/dist/ui/overlay.style.d.ts.map +1 -0
  195. package/dist/ui/overlay.style.js +49 -0
  196. package/dist/ui/overlay.style.js.map +1 -0
  197. package/dist/ui/panel.d.ts +24 -0
  198. package/dist/ui/panel.d.ts.map +1 -0
  199. package/dist/ui/panel.js +131 -0
  200. package/dist/ui/panel.js.map +1 -0
  201. package/dist/ui/panel.style.d.ts +2 -0
  202. package/dist/ui/panel.style.d.ts.map +1 -0
  203. package/dist/ui/panel.style.js +66 -0
  204. package/dist/ui/panel.style.js.map +1 -0
  205. package/dist/ui/sizer.d.ts +44 -0
  206. package/dist/ui/sizer.d.ts.map +1 -0
  207. package/dist/ui/sizer.js +216 -0
  208. package/dist/ui/sizer.js.map +1 -0
  209. package/dist/ui/slider.d.ts +41 -0
  210. package/dist/ui/slider.d.ts.map +1 -0
  211. package/dist/ui/slider.js +228 -0
  212. package/dist/ui/slider.js.map +1 -0
  213. package/dist/ui/sortableList.d.ts +33 -0
  214. package/dist/ui/sortableList.d.ts.map +1 -0
  215. package/dist/ui/sortableList.js +159 -0
  216. package/dist/ui/sortableList.js.map +1 -0
  217. package/dist/ui/splitContainer.d.ts +37 -0
  218. package/dist/ui/splitContainer.d.ts.map +1 -0
  219. package/dist/ui/splitContainer.js +201 -0
  220. package/dist/ui/splitContainer.js.map +1 -0
  221. package/dist/ui/splitContainer.style.d.ts +2 -0
  222. package/dist/ui/splitContainer.style.d.ts.map +1 -0
  223. package/dist/ui/splitContainer.style.js +46 -0
  224. package/dist/ui/splitContainer.style.js.map +1 -0
  225. package/dist/ui/tooltip.d.ts +23 -0
  226. package/dist/ui/tooltip.d.ts.map +1 -0
  227. package/dist/ui/tooltip.js +163 -0
  228. package/dist/ui/tooltip.js.map +1 -0
  229. package/dist/ui/tooltip.style.d.ts +2 -0
  230. package/dist/ui/tooltip.style.d.ts.map +1 -0
  231. package/dist/ui/tooltip.style.js +114 -0
  232. package/dist/ui/tooltip.style.js.map +1 -0
  233. package/package.json +60 -0
@@ -0,0 +1,16 @@
1
+ export type Action = {
2
+ key: string;
3
+ value?: unknown;
4
+ type?: string;
5
+ icon?: string;
6
+ };
7
+ export declare class ActionEvent<TArgs = null> extends Event {
8
+ readonly scope: string;
9
+ readonly action: Action;
10
+ readonly args: TArgs;
11
+ constructor(scope: string, action: Action, args?: TArgs, init?: EventInit & {
12
+ common?: boolean;
13
+ });
14
+ }
15
+ export declare function dispatchActionEvent<TArgs>(target: EventTarget, scope: string, action: Action, args?: TArgs, init?: EventInit): void;
16
+ //# sourceMappingURL=actions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../src/common/actions.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,MAAM,GAAG;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAA;CACb,CAAA;AAED,qBAAa,WAAW,CAAC,KAAK,GAAG,IAAI,CAAE,SAAQ,KAAK;aAElC,KAAK,EAAE,MAAM;aACb,MAAM,EAAE,MAAM;aACd,IAAI,EAAE,KAAK;gBAFX,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,IAAI,GAAE,KAAY,EAClC,IAAI,GAAE,SAAS,GAAG;QAAC,MAAM,CAAC,EAAE,OAAO,CAAA;KAAM;CAK1C;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,GAAE,KAAY,EAAE,IAAI,GAAE,SAAgB,QAGxI"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.dispatchActionEvent = exports.ActionEvent = void 0;
4
+ class ActionEvent extends Event {
5
+ constructor(scope, action, args = null, init = {}) {
6
+ init = Object.assign({ common: true, composed: true, bubbles: true }, init);
7
+ super(`${scope}.action${init.common ? `` : `.${action.key}`}`, init);
8
+ this.scope = scope;
9
+ this.action = action;
10
+ this.args = args;
11
+ }
12
+ }
13
+ exports.ActionEvent = ActionEvent;
14
+ function dispatchActionEvent(target, scope, action, args = null, init = null) {
15
+ target.dispatchEvent(new ActionEvent(scope, action, args, Object.assign({ common: false }, init)));
16
+ target.dispatchEvent(new ActionEvent(scope, action, args, Object.assign({ common: true }, init)));
17
+ }
18
+ exports.dispatchActionEvent = dispatchActionEvent;
19
+ //# sourceMappingURL=actions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actions.js","sourceRoot":"","sources":["../../src/common/actions.ts"],"names":[],"mappings":";;;AAOA,MAAa,WAA0B,SAAQ,KAAK;IACnD,YACiB,KAAa,EACb,MAAc,EACd,OAAc,IAAI,EAClC,OAAuC,EAAE;QAEzC,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,EAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAC,EAAE,IAAI,CAAC,CAAC;QAC1E,KAAK,CAAC,GAAG,KAAK,UAAU,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;QANrD,UAAK,GAAL,KAAK,CAAQ;QACb,WAAM,GAAN,MAAM,CAAQ;QACd,SAAI,GAAJ,IAAI,CAAc;IAKnC,CAAC;CACD;AAVD,kCAUC;AAED,SAAgB,mBAAmB,CAAQ,MAAmB,EAAE,KAAa,EAAE,MAAc,EAAE,OAAc,IAAI,EAAE,OAAkB,IAAI;IACxI,MAAM,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,EAAC,MAAM,EAAE,KAAK,EAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IACjG,MAAM,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,EAAC,MAAM,EAAE,IAAI,EAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;AACjG,CAAC;AAHD,kDAGC"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * @param color Color string based of color-string library (https://github.com/Qix-/color-string#readme)
3
+ * @param amount
4
+ * @returns Color hex string
5
+ */
6
+ export declare function lighten(color: string, amount?: number): string;
7
+ /**
8
+ * @param color Color string based of color-string library (https://github.com/Qix-/color-string#readme)
9
+ * @param amount
10
+ * @returns Color hex string
11
+ */
12
+ export declare function darken(color: string, amount?: number): string;
13
+ /**
14
+ * @param color Color string based of color-string library (https://github.com/Qix-/color-string#readme)
15
+ * @param amount
16
+ * @returns Color hex string
17
+ */
18
+ export declare function alpha(color: string, amount?: number): string;
19
+ export declare function registerAccentColor(color: string, elm?: HTMLElement, id?: string): void;
20
+ /**
21
+ * @param color Color string based of color-string library (https://github.com/Qix-/color-string#readme)
22
+ * @returns Color hex string
23
+ */
24
+ export declare function getComplmentaryColor(strColor: string): string;
25
+ //# sourceMappingURL=colors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"colors.d.ts","sourceRoot":"","sources":["../../src/common/colors.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,SAAO,GAAI,MAAM,CAE7D;AAED;;;;GAIG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,SAAO,GAAI,MAAM,CAE5D;AAED;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,SAAO,GAAI,MAAM,CAE3D;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,GAAE,WAA2B,EAAE,EAAE,GAAE,MAAa,QAOrG;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,UAGpD"}
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.getComplmentaryColor = exports.registerAccentColor = exports.alpha = exports.darken = exports.lighten = void 0;
7
+ const color_1 = __importDefault(require("color"));
8
+ const dom_1 = require("./dom");
9
+ /**
10
+ * @param color Color string based of color-string library (https://github.com/Qix-/color-string#readme)
11
+ * @param amount
12
+ * @returns Color hex string
13
+ */
14
+ function lighten(color, amount = 0.15) {
15
+ return (0, color_1.default)(color).lighten(amount).hex().toString();
16
+ }
17
+ exports.lighten = lighten;
18
+ /**
19
+ * @param color Color string based of color-string library (https://github.com/Qix-/color-string#readme)
20
+ * @param amount
21
+ * @returns Color hex string
22
+ */
23
+ function darken(color, amount = 0.15) {
24
+ return (0, color_1.default)(color).darken(amount).hex().toString();
25
+ }
26
+ exports.darken = darken;
27
+ /**
28
+ * @param color Color string based of color-string library (https://github.com/Qix-/color-string#readme)
29
+ * @param amount
30
+ * @returns Color hex string
31
+ */
32
+ function alpha(color, amount = 0.15) {
33
+ return (0, color_1.default)(color).alpha(amount).hexa().toString();
34
+ }
35
+ exports.alpha = alpha;
36
+ function registerAccentColor(color, elm = document.head, id = null) {
37
+ (0, dom_1.appendStyle)(elm, `.${id} {
38
+ --accent-color: ${color};
39
+ --accent-color-alpha: ${alpha(color)};
40
+ --accent-color-1: ${lighten(color)};
41
+ --accent-color-2: ${darken(color)};
42
+ }`, id);
43
+ }
44
+ exports.registerAccentColor = registerAccentColor;
45
+ /**
46
+ * @param color Color string based of color-string library (https://github.com/Qix-/color-string#readme)
47
+ * @returns Color hex string
48
+ */
49
+ function getComplmentaryColor(strColor) {
50
+ const color = (0, color_1.default)(strColor);
51
+ return color.red(255 - color.red()).green(255 - color.green()).blue(255 - color.red()).hex().toString();
52
+ }
53
+ exports.getComplmentaryColor = getComplmentaryColor;
54
+ //# sourceMappingURL=colors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"colors.js","sourceRoot":"","sources":["../../src/common/colors.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,+BAAoC;AAEpC;;;;GAIG;AACH,SAAgB,OAAO,CAAC,KAAa,EAAE,MAAM,GAAG,IAAI;IACnD,OAAO,IAAA,eAAK,EAAC,KAAK,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;AACtD,CAAC;AAFD,0BAEC;AAED;;;;GAIG;AACH,SAAgB,MAAM,CAAC,KAAa,EAAE,MAAM,GAAG,IAAI;IAClD,OAAO,IAAA,eAAK,EAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;AACrD,CAAC;AAFD,wBAEC;AAED;;;;GAIG;AACH,SAAgB,KAAK,CAAC,KAAa,EAAE,MAAM,GAAG,IAAI;IACjD,OAAO,IAAA,eAAK,EAAC,KAAK,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC;AACrD,CAAC;AAFD,sBAEC;AAED,SAAgB,mBAAmB,CAAC,KAAa,EAAE,MAAmB,QAAQ,CAAC,IAAI,EAAE,KAAa,IAAI;IACrG,IAAA,iBAAW,EAAC,GAAG,EAAE,IAAI,EAAE;oBACJ,KAAK;0BACC,KAAK,CAAC,KAAK,CAAC;sBAChB,OAAO,CAAC,KAAK,CAAC;sBACd,MAAM,CAAC,KAAK,CAAC;GAChC,EAAE,EAAE,CAAC,CAAC;AACT,CAAC;AAPD,kDAOC;AAED;;;GAGG;AACH,SAAgB,oBAAoB,CAAC,QAAgB;IACpD,MAAM,KAAK,GAAG,IAAA,eAAK,EAAC,QAAQ,CAAC,CAAC;IAC9B,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;AACzG,CAAC;AAHD,oDAGC"}
@@ -0,0 +1,23 @@
1
+ import { Matrix } from "../types";
2
+ export type CsvDelimiter = ',' | ';' | '\t' | '|';
3
+ export type CsvQuote = '' | '"' | '\'';
4
+ export type CsvDescription = {
5
+ delimiter: CsvDelimiter;
6
+ quote: CsvQuote;
7
+ encoding: string;
8
+ decimalSeparator: '.' | ',';
9
+ header: boolean;
10
+ };
11
+ export declare const DEFAULT_CSV_DESCRIPTION: CsvDescription;
12
+ export declare class CsvReader {
13
+ private csv;
14
+ private offset;
15
+ private length;
16
+ private description;
17
+ constructor(csv: string, description: Partial<CsvDescription>);
18
+ get eof(): boolean;
19
+ readLine(): string[];
20
+ }
21
+ export declare function arrayToCsv(data: Matrix, csvDescription?: Partial<CsvDescription>): string;
22
+ export declare function csvToArray(csv: string, csvDescription?: Partial<CsvDescription>): Matrix<string>;
23
+ //# sourceMappingURL=csv.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"csv.d.ts","sourceRoot":"","sources":["../../src/common/csv.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGlC,MAAM,MAAM,YAAY,GAAG,GAAG,GAAC,GAAG,GAAC,IAAI,GAAC,GAAG,CAAC;AAC5C,MAAM,MAAM,QAAQ,GAAG,EAAE,GAAC,GAAG,GAAC,IAAI,CAAC;AAEnC,MAAM,MAAM,cAAc,GAAG;IAC5B,SAAS,EAAE,YAAY,CAAC;IACxB,KAAK,EAAE,QAAQ,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,GAAG,GAAC,GAAG,CAAC;IAC1B,MAAM,EAAE,OAAO,CAAA;CACf,CAAA;AAED,eAAO,MAAM,uBAAuB,EAAE,cAMrC,CAAC;AAEF,qBAAa,SAAS;IAOpB,OAAO,CAAC,GAAG;IALZ,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,WAAW,CAAiB;gBAG3B,GAAG,EAAE,MAAM,EACnB,WAAW,EAAE,OAAO,CAAC,cAAc,CAAC;IAMrC,IAAI,GAAG,YAAwC;IAE/C,QAAQ;CA6CR;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,GAAI,MAAM,CAe1F;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAWhG"}
@@ -0,0 +1,99 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.csvToArray = exports.arrayToCsv = exports.CsvReader = exports.DEFAULT_CSV_DESCRIPTION = void 0;
4
+ const utils_1 = require("./utils");
5
+ exports.DEFAULT_CSV_DESCRIPTION = {
6
+ delimiter: '\t',
7
+ quote: '',
8
+ encoding: 'utf-8',
9
+ decimalSeparator: '.',
10
+ header: false,
11
+ };
12
+ class CsvReader {
13
+ constructor(csv, description) {
14
+ this.csv = csv;
15
+ this.offset = 0;
16
+ this.length = csv.length;
17
+ this.description = Object.assign({}, exports.DEFAULT_CSV_DESCRIPTION, description);
18
+ }
19
+ get eof() { return this.offset >= this.length; }
20
+ readLine() {
21
+ if (this.eof)
22
+ return null;
23
+ const values = [];
24
+ let char, value = '', insideQuotedString = false;
25
+ while (this.offset < this.length) {
26
+ char = this.csv.charAt(this.offset++);
27
+ if (char === '\n') {
28
+ if (insideQuotedString) {
29
+ continue;
30
+ }
31
+ else {
32
+ values.push(value);
33
+ value = null;
34
+ break;
35
+ }
36
+ }
37
+ if (char === '\r')
38
+ continue;
39
+ if (insideQuotedString) {
40
+ if (char === this.description.quote) {
41
+ value = (0, utils_1.trim)(value, this.description.quote);
42
+ insideQuotedString = false;
43
+ }
44
+ else {
45
+ value += char;
46
+ }
47
+ }
48
+ else {
49
+ if (char == this.description.delimiter) {
50
+ values.push(value);
51
+ value = '';
52
+ }
53
+ else if (value == '' && char == this.description.quote) {
54
+ insideQuotedString = true;
55
+ value = '';
56
+ }
57
+ else {
58
+ value += char;
59
+ }
60
+ }
61
+ }
62
+ if (value != null)
63
+ values.push(value);
64
+ return values;
65
+ }
66
+ }
67
+ exports.CsvReader = CsvReader;
68
+ function arrayToCsv(data, csvDescription) {
69
+ csvDescription = Object.assign({}, exports.DEFAULT_CSV_DESCRIPTION, csvDescription);
70
+ let csv = '';
71
+ for (let r = 0; r < data.length; r++) {
72
+ csv += data[r].map((v) => {
73
+ if (v == null)
74
+ return '';
75
+ else if (isNaN(v))
76
+ return (v !== null && v !== void 0 ? v : "").toString().replace(csvDescription.delimiter, " ");
77
+ else if (csvDescription.decimalSeparator != '.')
78
+ return v.toString().replace('.', csvDescription.decimalSeparator);
79
+ else
80
+ return v.toString();
81
+ }).join(csvDescription.delimiter) + "\n";
82
+ }
83
+ return csv;
84
+ }
85
+ exports.arrayToCsv = arrayToCsv;
86
+ function csvToArray(csv, csvDescription) {
87
+ const data = [];
88
+ let line;
89
+ const reader = new CsvReader(csv, csvDescription);
90
+ while (!reader.eof) {
91
+ line = reader.readLine();
92
+ if (line && line.length > 0) {
93
+ data.push(line);
94
+ }
95
+ }
96
+ return data;
97
+ }
98
+ exports.csvToArray = csvToArray;
99
+ //# sourceMappingURL=csv.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"csv.js","sourceRoot":"","sources":["../../src/common/csv.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ export type DateFormatString = string;
2
+ export type DateFormatterFunction = (date: number | string | Date, format?: string) => string;
3
+ export declare function getDateFormatter(locale: string, format?: DateFormatString): DateFormatterFunction;
4
+ export declare function createDateFormatter(localeCode: string, defaultFormat?: DateFormatString): DateFormatterFunction;
5
+ export declare function getFiscalYear(date: Date, monthOffset: number): number;
6
+ export declare function getFiscalQuarter(date: Date, monthOffset: number): number;
7
+ export declare function stripTime(date: Date): Date;
8
+ export declare function getFiscalYearBounds(date: Date, monthOffset: number): [Date, Date];
9
+ export declare function getFiscalISOWeek(date: Date, monthOffset?: number, firstDayOfWeek?: number): [number, number];
10
+ export declare function dateToSerialDate(date: Date): number;
11
+ export declare function serialDateToDate(sn: number): Date;
12
+ export declare function workday(sn: number, count: number, holidays?: number[]): number;
13
+ //# sourceMappingURL=dates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dates.d.ts","sourceRoot":"","sources":["../../src/common/dates.ts"],"names":[],"mappings":"AAgBA,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC;AACtC,MAAM,MAAM,qBAAqB,GAAG,CAAC,IAAI,EAAE,MAAM,GAAC,MAAM,GAAC,IAAI,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;AAI1F,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,GAAE,gBAAqB,GAAI,qBAAqB,CAItG;AAGD,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,aAAa,GAAE,gBAAqB,GAAI,qBAAqB,CAOpH;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,UAM5D;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,UAG/D;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,IAAI,QAMnC;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAIjF;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,WAAW,SAAI,EAAE,cAAc,SAAI,GAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CA2BnG;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,IAAI,UAE1C;AAID,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,QAM1C;AAED,wBAAgB,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,UAarE"}
@@ -0,0 +1,118 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.workday = exports.serialDateToDate = exports.dateToSerialDate = exports.getFiscalISOWeek = exports.getFiscalYearBounds = exports.stripTime = exports.getFiscalQuarter = exports.getFiscalYear = exports.createDateFormatter = exports.getDateFormatter = void 0;
4
+ const date_fns_1 = require("date-fns");
5
+ const parseISO_1 = require("date-fns/parseISO");
6
+ const numbers_1 = require("./numbers");
7
+ const utils_1 = require("./utils");
8
+ const locale_1 = require("date-fns/locale");
9
+ const localeMap = new Map([
10
+ ['cs', locale_1.cs],
11
+ ['cs-CZ', locale_1.cs],
12
+ ['en', locale_1.enUS],
13
+ ['en-US', locale_1.enUS]
14
+ ]);
15
+ const formatterMap = new Map();
16
+ function getDateFormatter(locale, format = '') {
17
+ const map = formatterMap.has(locale) ? formatterMap.get(locale) : formatterMap.set(locale, new Map()).get(locale);
18
+ if (!map.has(format))
19
+ map.set(format, createDateFormatter(locale, format));
20
+ return map.get(format);
21
+ }
22
+ exports.getDateFormatter = getDateFormatter;
23
+ // https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table
24
+ function createDateFormatter(localeCode, defaultFormat = '') {
25
+ return (date, strFormat) => {
26
+ if ((0, utils_1.isString)(date))
27
+ date = (0, parseISO_1.parseISO)(date);
28
+ else if (!(date instanceof Date) && !isNaN(date))
29
+ date = serialDateToDate(date);
30
+ else if (date == null)
31
+ return '';
32
+ return (0, date_fns_1.format)(date, strFormat || defaultFormat, { locale: localeMap.get(localeCode) });
33
+ };
34
+ }
35
+ exports.createDateFormatter = createDateFormatter;
36
+ function getFiscalYear(date, monthOffset) {
37
+ const y = date.getFullYear();
38
+ const m = date.getMonth() + 1;
39
+ return monthOffset >= 0
40
+ ? y - Math.floor((12 - m + monthOffset) / 12)
41
+ : y + Math.floor((m - monthOffset - 1) / 12);
42
+ }
43
+ exports.getFiscalYear = getFiscalYear;
44
+ function getFiscalQuarter(date, monthOffset) {
45
+ const m = (0, numbers_1.mod)(date.getMonth() - monthOffset, 12);
46
+ return Math.floor(m / 3) + 1;
47
+ }
48
+ exports.getFiscalQuarter = getFiscalQuarter;
49
+ function stripTime(date) {
50
+ date.setHours(0);
51
+ date.setMinutes(0);
52
+ date.setSeconds(0);
53
+ date.setMilliseconds(0);
54
+ return date;
55
+ }
56
+ exports.stripTime = stripTime;
57
+ function getFiscalYearBounds(date, monthOffset) {
58
+ let min = new Date(date.getFullYear(), (0, numbers_1.mod)(monthOffset, 12), 1);
59
+ if ((0, date_fns_1.compareAsc)(date, min) < 0)
60
+ min = (0, date_fns_1.subYears)(min, 1);
61
+ return [min, stripTime((0, date_fns_1.endOfMonth)((0, date_fns_1.addMonths)(new Date(min), 11)))];
62
+ }
63
+ exports.getFiscalYearBounds = getFiscalYearBounds;
64
+ function getFiscalISOWeek(date, monthOffset = 0, firstDayOfWeek = 1) {
65
+ const [fyMin, fyMax] = getFiscalYearBounds(date, monthOffset);
66
+ const doy = (0, date_fns_1.differenceInDays)(date, fyMin) + 1;
67
+ const dow = (((0, date_fns_1.getISODay)(date) + firstDayOfWeek - 2) % 7) + 1;
68
+ let fy = getFiscalYear(date, monthOffset);
69
+ // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_the_week_number_from_an_ordinal_date
70
+ let w = Math.floor((10 + doy - dow) / 7);
71
+ // https://en.wikipedia.org/wiki/ISO_week_date#Weeks_per_year
72
+ if (w == 0) {
73
+ const lastWeekDay = (0, date_fns_1.subDays)(fyMin, 4);
74
+ const doyLastWeekDay = (0, date_fns_1.differenceInDays)(lastWeekDay, (0, date_fns_1.subMonths)(fyMin, 12)) + 1;
75
+ const dowLastWeekDay = ((0, date_fns_1.getISODay)(lastWeekDay) + firstDayOfWeek - 1) % 7;
76
+ w = Math.floor((10 + doyLastWeekDay - dowLastWeekDay) / 7);
77
+ --fy;
78
+ }
79
+ else if (w > 52) {
80
+ const lastWeekDay = (0, date_fns_1.subDays)(fyMax, 3);
81
+ const doyLastWeekDay = (0, date_fns_1.differenceInDays)(lastWeekDay, fyMin) + 1;
82
+ const dowLastWeekDay = ((0, date_fns_1.getISODay)(lastWeekDay) + firstDayOfWeek - 1) % 7;
83
+ if (w > Math.floor((10 + doyLastWeekDay - dowLastWeekDay) / 7)) {
84
+ w = 1;
85
+ ++fy;
86
+ }
87
+ }
88
+ return [w, fy];
89
+ }
90
+ exports.getFiscalISOWeek = getFiscalISOWeek;
91
+ function dateToSerialDate(date) {
92
+ return 25569.0 + ((date.getTime() - (date.getTimezoneOffset() * 60 * 1000)) / (1000 * 60 * 60 * 24));
93
+ }
94
+ exports.dateToSerialDate = dateToSerialDate;
95
+ // https://stackoverflow.com/a/67130235
96
+ function serialDateToDate(sn) {
97
+ // for dates > 1900-02-28
98
+ return new Date(Date.UTC(0, 0, sn - 1));
99
+ // for dates <= 1900-02-28
100
+ // return new Date(Date.UTC(0, 0, excelSerialDate));
101
+ }
102
+ exports.serialDateToDate = serialDateToDate;
103
+ function workday(sn, count, holidays) {
104
+ const date = serialDateToDate(sn);
105
+ let wd = date.getDay();
106
+ let holidayMap;
107
+ if (holidays && holidays.length > 0)
108
+ holidays.forEach(h => holidayMap.set(h, h));
109
+ while (count > 0) {
110
+ ++sn;
111
+ wd = (++wd > 7 ? 1 : wd);
112
+ if (wd < 6 && (!holidayMap || !holidayMap.has(sn)))
113
+ --count;
114
+ }
115
+ return sn;
116
+ }
117
+ exports.workday = workday;
118
+ //# sourceMappingURL=dates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dates.js","sourceRoot":"","sources":["../../src/common/dates.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,79 @@
1
+ import { Options } from 'ts-debounce';
2
+ export declare function createName(name: string, prefix?: string): string;
3
+ export declare function register(name: string, c: CustomElementConstructor, ext?: string, prefix?: string): void;
4
+ export declare function createElement<T extends HTMLElement>(elmName: string, appendTo?: Node): T;
5
+ export declare function appendElement(parent: HTMLElement | DocumentFragment, child: HTMLElement): HTMLElement;
6
+ export declare function showElement(elm: HTMLElement, defaultDisplayStyle?: string): HTMLElement;
7
+ export declare function hideElement(elm: HTMLElement): HTMLElement;
8
+ export declare function isHidden(elm: HTMLElement): boolean;
9
+ export declare function showCell(cell: HTMLTableCellElement): void;
10
+ export declare function hideCell(cell: HTMLTableCellElement): void;
11
+ export declare function empty(elm: HTMLElement | ShadowRoot): HTMLElement | ShadowRoot;
12
+ export declare function remove(elm: HTMLElement): void;
13
+ type OnCallbackFunction<T extends Event> = (e: T, elm: HTMLElement) => void;
14
+ export declare function on<T extends Event>(elm: HTMLElement, event: string, selector: string, matchCallback: OnCallbackFunction<T>, notMatchCallback?: OnCallbackFunction<T>): HTMLElement;
15
+ export declare function debounceOn<T extends Event>(elm: HTMLElement, event: string, selector: string, callback: OnCallbackFunction<T>, options?: {
16
+ wait?: number;
17
+ noMatchCallback?: OnCallbackFunction<T>;
18
+ } & Options<void>): HTMLElement;
19
+ export declare function setClasses(elm: HTMLElement, classes?: string[]): HTMLElement;
20
+ export declare function getElementOffset(elm: HTMLElement, offsetElm: HTMLElement): {
21
+ top: number;
22
+ left: number;
23
+ };
24
+ export declare function appendStyle(node: Node, style: string, id?: string): Node;
25
+ export declare function numToPixels(n: number): string;
26
+ export declare function setSize(elm: HTMLElement, size: {
27
+ w?: number | string;
28
+ h?: number | string;
29
+ }, minSize?: boolean): HTMLElement;
30
+ export declare function setMaxSize(elm: HTMLElement, size: {
31
+ w?: number | string;
32
+ h?: number | string;
33
+ }): HTMLElement;
34
+ export declare function setMinSize(elm: HTMLElement, size: {
35
+ w?: number | string;
36
+ h?: number | string;
37
+ }): HTMLElement;
38
+ export declare function setPosition(elm: HTMLElement | SVGElement, position: {
39
+ r?: number;
40
+ b?: number;
41
+ l?: number;
42
+ t?: number;
43
+ }): void;
44
+ export declare function fixElementPosition(elm: HTMLElement, offsetElement?: HTMLElement): void;
45
+ export declare function setZIndex(elm: HTMLElement, zIndex: number): void;
46
+ export declare function setMargin(elm: HTMLElement, margin: {
47
+ r?: number;
48
+ b?: number;
49
+ l?: number;
50
+ t?: number;
51
+ }): void;
52
+ export declare function setPadding(elm: HTMLElement, padding: {
53
+ r?: number;
54
+ b?: number;
55
+ l?: number;
56
+ t?: number;
57
+ }): void;
58
+ export declare function setCenterPosition(elm: HTMLElement, parent: HTMLElement, options?: {
59
+ vertical: boolean;
60
+ horizontal: boolean;
61
+ }): void;
62
+ export declare function setBorderWidth(elm: HTMLElement, widths: {
63
+ r?: number;
64
+ b?: number;
65
+ l?: number;
66
+ t?: number;
67
+ }): void;
68
+ export declare function fixPosition(pos: {
69
+ x: number;
70
+ y: number;
71
+ w: number;
72
+ h: number;
73
+ }, container: HTMLElement): {
74
+ x: number;
75
+ y: number;
76
+ };
77
+ export declare function zoomElement(elm: HTMLElement, zoom: number): void;
78
+ export {};
79
+ //# sourceMappingURL=dom.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dom.d.ts","sourceRoot":"","sources":["../../src/common/dom.ts"],"names":[],"mappings":"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"}