@colijnit/sharedcomponents 1.0.69 → 253.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (205) hide show
  1. package/bundles/colijnit-sharedcomponents.umd.js +3863 -56
  2. package/bundles/colijnit-sharedcomponents.umd.js.map +1 -1
  3. package/colijnit-sharedcomponents.d.ts +38 -0
  4. package/colijnit-sharedcomponents.metadata.json +1 -1
  5. package/esm2015/colijnit-sharedcomponents.js +39 -1
  6. package/esm2015/lib/components/activity-list-header/activity-list-header.component.js +67 -0
  7. package/esm2015/lib/components/activity-list-header/activity-list-header.module.js +28 -0
  8. package/esm2015/lib/components/activity-list-header/components/period-filter/period-filter-popup.component.js +55 -0
  9. package/esm2015/lib/components/activity-list-header/components/period-filter/period-filter.component.js +103 -0
  10. package/esm2015/lib/components/activity-list-header/components/period-filter/period-filter.module.js +34 -0
  11. package/esm2015/lib/components/activity-overview-component/component-activity-overview.component.js +130 -0
  12. package/esm2015/lib/components/activity-overview-component/component-activity-overview.module.js +26 -0
  13. package/esm2015/lib/components/activity-overview-component/components/base-activity-overview.component.js +278 -0
  14. package/esm2015/lib/components/modify-task-form/components/activity-summary-block/activity-summary-block.component.js +100 -0
  15. package/esm2015/lib/components/modify-task-form/components/activity-summary-block/activity-summary-block.module.js +25 -0
  16. package/esm2015/lib/components/modify-task-form/components/base-activity-summary.component.js +132 -0
  17. package/esm2015/lib/components/modify-task-form/components/creation-summary-block/creation-summary-block.component.js +118 -0
  18. package/esm2015/lib/components/modify-task-form/components/creation-summary-block/creation-summary-block.module.js +27 -0
  19. package/esm2015/lib/components/modify-task-form/components/executive-summary-block/executive-summary-block.component.js +88 -0
  20. package/esm2015/lib/components/modify-task-form/components/executive-summary-block/executive-summary-block.module.js +24 -0
  21. package/esm2015/lib/components/modify-task-form/components/notification-summary-block/notification-summary-block.component.js +77 -0
  22. package/esm2015/lib/components/modify-task-form/components/notification-summary-block/notification-summary-block.module.js +24 -0
  23. package/esm2015/lib/components/modify-task-form/components/status-summary-block/status-summary-block.component.js +74 -0
  24. package/esm2015/lib/components/modify-task-form/components/status-summary-block/status-summary-block.module.js +25 -0
  25. package/esm2015/lib/components/modify-task-form/components/task-details/task-details.component.js +105 -0
  26. package/esm2015/lib/components/modify-task-form/components/task-details/task-details.module.js +25 -0
  27. package/esm2015/lib/components/modify-task-form/modify-task-form.component.js +284 -0
  28. package/esm2015/lib/components/modify-task-form/modify-task-form.module.js +40 -0
  29. package/esm2015/lib/components/open-activity-list/component-activity-list.component.js +278 -0
  30. package/esm2015/lib/components/open-activity-list/component-activity-list.module.js +30 -0
  31. package/esm2015/lib/components/open-activity-list/components/base-open-activity-list.component.js +266 -0
  32. package/esm2015/lib/components/open-activity-list/components/personal-activity-overview/personal-activity-overview.component.js +41 -0
  33. package/esm2015/lib/components/open-activity-list/components/personal-activity-overview/personal-activity-overview.module..js +19 -0
  34. package/esm2015/lib/components/simple-tags/simple-tags.component.js +5 -147
  35. package/esm2015/lib/components/simple-tags/simple-tags.module.js +4 -2
  36. package/esm2015/lib/components/simple-tags-form/simple-tags-form.component.js +196 -0
  37. package/esm2015/lib/components/simple-tags-form/simple-tags-form.module.js +26 -0
  38. package/esm2015/lib/components/stock/components/stock-location/components/stock-location-popup/stock-location-popup.component.js +3 -3
  39. package/esm2015/lib/components/stock/components/stock-location/stock-location.component.js +28 -2
  40. package/esm2015/lib/components/stock/localization/translation.js +3 -1
  41. package/esm2015/lib/components/stock/stock-tabs/stock-tabs.component.js +7 -2
  42. package/esm2015/lib/components/stock/stock-transfer/stock-transfer.component.js +144 -85
  43. package/esm2015/lib/components/stock/stock.component.js +11 -42
  44. package/esm2015/lib/components/stock/stock.module.js +4 -3
  45. package/esm2015/lib/components/task-modifyer/task-modifier.component.js +270 -0
  46. package/esm2015/lib/components/task-modifyer/task-modifyer.module..js +31 -0
  47. package/esm2015/lib/components/workflow-info-tiles/components/workflow-info-tile.component.js +45 -0
  48. package/esm2015/lib/components/workflow-info-tiles/components/workflow-info-tile.module.js +22 -0
  49. package/esm2015/lib/components/workflow-info-tiles/workflow-info-tiles.component.js +55 -0
  50. package/esm2015/lib/components/workflow-info-tiles/workflow-info-tiles.module.js +22 -0
  51. package/esm2015/lib/components/workflow-notification-toggle/workflow-notification-toggle-popup.js +53 -0
  52. package/esm2015/lib/components/workflow-notification-toggle/workflow-notification-toggle.component.js +81 -0
  53. package/esm2015/lib/components/workflow-notification-toggle/workflow-notification-toggle.module.js +34 -0
  54. package/esm2015/lib/directives/absolute-overlay-template.directive.js +29 -0
  55. package/esm2015/lib/directives/align-with.directive.js +174 -0
  56. package/esm2015/lib/directives/click-outside.directive.js +25 -0
  57. package/esm2015/lib/directives/directives.module.js +22 -0
  58. package/esm2015/lib/enum/activity-cfg-name.enum.js +29 -0
  59. package/esm2015/lib/enum/app-button-type.enum.js +11 -0
  60. package/esm2015/lib/enum/icon.enum.js +13 -1
  61. package/esm2015/lib/interface/activities-task-config-names.js +2 -0
  62. package/esm2015/lib/interface/operation-callback-activity.js +5 -0
  63. package/esm2015/lib/interface/operation-callback-function-with-validation.js +5 -0
  64. package/esm2015/lib/model/icon-svg.js +13 -1
  65. package/esm2015/lib/service/app-absolute-overlay-outlet.service.js +20 -0
  66. package/esm2015/lib/service/shared-connector.service.js +213 -1
  67. package/esm2015/lib/service/shared.service.js +93 -1
  68. package/esm2015/lib/utils/browser-utils.js +100 -0
  69. package/esm2015/lib/utils/event-utils.js +59 -0
  70. package/esm2015/lib/utils/string-utils.js +5 -1
  71. package/esm2015/public-api.js +7 -1
  72. package/fesm2015/colijnit-sharedcomponents.js +4044 -228
  73. package/fesm2015/colijnit-sharedcomponents.js.map +1 -1
  74. package/lib/components/activity-list-header/activity-list-header.component.d.ts +25 -0
  75. package/lib/components/activity-list-header/activity-list-header.module.d.ts +2 -0
  76. package/lib/components/activity-list-header/components/period-filter/period-filter-popup.component.d.ts +11 -0
  77. package/lib/components/activity-list-header/components/period-filter/period-filter.component.d.ts +26 -0
  78. package/lib/components/activity-list-header/components/period-filter/period-filter.module.d.ts +2 -0
  79. package/lib/components/activity-list-header/components/period-filter/style/_layout.scss +62 -0
  80. package/lib/components/activity-list-header/components/period-filter/style/_material-definition.scss +1 -0
  81. package/lib/components/activity-list-header/components/period-filter/style/_theme.scss +5 -0
  82. package/lib/components/activity-list-header/components/period-filter/style/material.scss +4 -0
  83. package/lib/components/activity-list-header/style/_layout.scss +84 -0
  84. package/lib/components/activity-list-header/style/_material-definition.scss +1 -0
  85. package/lib/components/activity-list-header/style/_theme.scss +5 -0
  86. package/lib/components/activity-list-header/style/material.scss +4 -0
  87. package/lib/components/activity-overview-component/component-activity-overview.component.d.ts +15 -0
  88. package/lib/components/activity-overview-component/component-activity-overview.module.d.ts +2 -0
  89. package/lib/components/activity-overview-component/components/base-activity-overview.component.d.ts +79 -0
  90. package/lib/components/activity-overview-component/style/_layout.scss +107 -0
  91. package/lib/components/activity-overview-component/style/_material-definition.scss +1 -0
  92. package/lib/components/activity-overview-component/style/_theme.scss +5 -0
  93. package/lib/components/activity-overview-component/style/material.scss +4 -0
  94. package/lib/components/modify-task-form/components/activity-summary-block/activity-summary-block.component.d.ts +31 -0
  95. package/lib/components/modify-task-form/components/activity-summary-block/activity-summary-block.module.d.ts +2 -0
  96. package/lib/components/modify-task-form/components/activity-summary-block/style/_layout.scss +139 -0
  97. package/lib/components/modify-task-form/components/activity-summary-block/style/_material-definition.scss +0 -0
  98. package/lib/components/modify-task-form/components/activity-summary-block/style/_theme.scss +5 -0
  99. package/lib/components/modify-task-form/components/activity-summary-block/style/material.scss +4 -0
  100. package/lib/components/modify-task-form/components/base-activity-summary.component.d.ts +52 -0
  101. package/lib/components/modify-task-form/components/creation-summary-block/creation-summary-block.component.d.ts +28 -0
  102. package/lib/components/modify-task-form/components/creation-summary-block/creation-summary-block.module.d.ts +2 -0
  103. package/lib/components/modify-task-form/components/creation-summary-block/style/_layout.scss +5 -0
  104. package/lib/components/modify-task-form/components/creation-summary-block/style/_material-definition.scss +0 -0
  105. package/lib/components/modify-task-form/components/creation-summary-block/style/_theme.scss +5 -0
  106. package/lib/components/modify-task-form/components/creation-summary-block/style/material.scss +4 -0
  107. package/lib/components/modify-task-form/components/executive-summary-block/executive-summary-block.component.d.ts +24 -0
  108. package/lib/components/modify-task-form/components/executive-summary-block/executive-summary-block.module.d.ts +2 -0
  109. package/lib/components/modify-task-form/components/executive-summary-block/style/_layout.scss +5 -0
  110. package/lib/components/modify-task-form/components/executive-summary-block/style/_material-definition.scss +0 -0
  111. package/lib/components/modify-task-form/components/executive-summary-block/style/_theme.scss +5 -0
  112. package/lib/components/modify-task-form/components/executive-summary-block/style/material.scss +4 -0
  113. package/lib/components/modify-task-form/components/notification-summary-block/notification-summary-block.component.d.ts +23 -0
  114. package/lib/components/modify-task-form/components/notification-summary-block/notification-summary-block.module.d.ts +2 -0
  115. package/lib/components/modify-task-form/components/notification-summary-block/style/_layout.scss +161 -0
  116. package/lib/components/modify-task-form/components/notification-summary-block/style/_material-definition.scss +0 -0
  117. package/lib/components/modify-task-form/components/notification-summary-block/style/_theme.scss +5 -0
  118. package/lib/components/modify-task-form/components/notification-summary-block/style/material.scss +4 -0
  119. package/lib/components/modify-task-form/components/status-summary-block/status-summary-block.component.d.ts +17 -0
  120. package/lib/components/modify-task-form/components/status-summary-block/status-summary-block.module.d.ts +2 -0
  121. package/lib/components/modify-task-form/components/status-summary-block/style/_layout.scss +18 -0
  122. package/lib/components/modify-task-form/components/status-summary-block/style/_material-definition.scss +0 -0
  123. package/lib/components/modify-task-form/components/status-summary-block/style/_theme.scss +5 -0
  124. package/lib/components/modify-task-form/components/status-summary-block/style/material.scss +4 -0
  125. package/lib/components/modify-task-form/components/task-details/style/_layout.scss +142 -0
  126. package/lib/components/modify-task-form/components/task-details/style/_material-definition.scss +0 -0
  127. package/lib/components/modify-task-form/components/task-details/style/_theme.scss +5 -0
  128. package/lib/components/modify-task-form/components/task-details/style/material.scss +4 -0
  129. package/lib/components/modify-task-form/components/task-details/task-details.component.d.ts +23 -0
  130. package/lib/components/modify-task-form/components/task-details/task-details.module.d.ts +2 -0
  131. package/lib/components/modify-task-form/modify-task-form.component.d.ts +54 -0
  132. package/lib/components/modify-task-form/modify-task-form.module.d.ts +2 -0
  133. package/lib/components/modify-task-form/style/_layout.scss +139 -0
  134. package/lib/components/modify-task-form/style/_material-definition.scss +0 -0
  135. package/lib/components/modify-task-form/style/_theme.scss +5 -0
  136. package/lib/components/modify-task-form/style/material.scss +4 -0
  137. package/lib/components/open-activity-list/component-activity-list.component.d.ts +67 -0
  138. package/lib/components/open-activity-list/component-activity-list.module.d.ts +2 -0
  139. package/lib/components/open-activity-list/components/base-open-activity-list.component.d.ts +48 -0
  140. package/lib/components/open-activity-list/components/personal-activity-overview/personal-activity-overview.component.d.ts +4 -0
  141. package/lib/components/open-activity-list/components/personal-activity-overview/personal-activity-overview.module..d.ts +2 -0
  142. package/lib/components/open-activity-list/components/personal-activity-overview/style/_layout.scss +105 -0
  143. package/lib/components/open-activity-list/components/personal-activity-overview/style/_material-definition.scss +0 -0
  144. package/lib/components/open-activity-list/components/personal-activity-overview/style/_theme.scss +4 -0
  145. package/lib/components/open-activity-list/components/personal-activity-overview/style/material.scss +4 -0
  146. package/lib/components/open-activity-list/style/_layout.scss +26 -0
  147. package/lib/components/open-activity-list/style/_material-definition.scss +0 -0
  148. package/lib/components/open-activity-list/style/_theme.scss +4 -0
  149. package/lib/components/open-activity-list/style/material.scss +4 -0
  150. package/lib/components/simple-tags/simple-tags.component.d.ts +1 -8
  151. package/lib/components/simple-tags-form/simple-tags-form.component.d.ts +29 -0
  152. package/lib/components/simple-tags-form/simple-tags-form.module.d.ts +2 -0
  153. package/lib/components/simple-tags-form/style/_layout.scss +257 -0
  154. package/lib/components/simple-tags-form/style/_material-definition.scss +39 -0
  155. package/lib/components/simple-tags-form/style/_theme.scss +4 -0
  156. package/lib/components/simple-tags-form/style/material.scss +4 -0
  157. package/lib/components/stock/components/stock-location/stock-location.component.d.ts +7 -1
  158. package/lib/components/stock/localization/translation.d.ts +2 -0
  159. package/lib/components/stock/stock-tabs/stock-tabs.component.d.ts +2 -0
  160. package/lib/components/stock/stock-transfer/stock-transfer.component.d.ts +19 -6
  161. package/lib/components/stock/stock.component.d.ts +3 -0
  162. package/lib/components/stock/style/_layout.scss +64 -31
  163. package/lib/components/task-modifyer/style/_layout.scss +5 -0
  164. package/lib/components/task-modifyer/style/_material-definition.scss +0 -0
  165. package/lib/components/task-modifyer/style/_theme.scss +4 -0
  166. package/lib/components/task-modifyer/style/material.scss +4 -0
  167. package/lib/components/task-modifyer/task-modifier.component.d.ts +65 -0
  168. package/lib/components/task-modifyer/task-modifyer.module..d.ts +2 -0
  169. package/lib/components/workflow-info-tiles/components/style/_layout.scss +49 -0
  170. package/lib/components/workflow-info-tiles/components/style/_material-definition.scss +0 -0
  171. package/lib/components/workflow-info-tiles/components/style/_theme.scss +4 -0
  172. package/lib/components/workflow-info-tiles/components/style/material.scss +4 -0
  173. package/lib/components/workflow-info-tiles/components/workflow-info-tile.component.d.ts +15 -0
  174. package/lib/components/workflow-info-tiles/components/workflow-info-tile.module.d.ts +2 -0
  175. package/lib/components/workflow-info-tiles/style/_layout.scss +16 -0
  176. package/lib/components/workflow-info-tiles/style/_material-definition.scss +0 -0
  177. package/lib/components/workflow-info-tiles/style/_theme.scss +4 -0
  178. package/lib/components/workflow-info-tiles/style/material.scss +4 -0
  179. package/lib/components/workflow-info-tiles/workflow-info-tiles.component.d.ts +21 -0
  180. package/lib/components/workflow-info-tiles/workflow-info-tiles.module.d.ts +2 -0
  181. package/lib/components/workflow-notification-toggle/style/_layout.scss +59 -0
  182. package/lib/components/workflow-notification-toggle/style/_material-definition.scss +0 -0
  183. package/lib/components/workflow-notification-toggle/style/_theme.scss +4 -0
  184. package/lib/components/workflow-notification-toggle/style/material.scss +4 -0
  185. package/lib/components/workflow-notification-toggle/workflow-notification-toggle-popup.d.ts +15 -0
  186. package/lib/components/workflow-notification-toggle/workflow-notification-toggle.component.d.ts +28 -0
  187. package/lib/components/workflow-notification-toggle/workflow-notification-toggle.module.d.ts +2 -0
  188. package/lib/directives/absolute-overlay-template.directive.d.ts +9 -0
  189. package/lib/directives/align-with.directive.d.ts +35 -0
  190. package/lib/directives/click-outside.directive.d.ts +7 -0
  191. package/lib/directives/directives.module.d.ts +2 -0
  192. package/lib/enum/activity-cfg-name.enum.d.ts +27 -0
  193. package/lib/enum/app-button-type.enum.d.ts +9 -0
  194. package/lib/enum/icon.enum.d.ts +12 -0
  195. package/lib/interface/activities-task-config-names.d.ts +12 -0
  196. package/lib/interface/operation-callback-activity.d.ts +5 -0
  197. package/lib/interface/operation-callback-function-with-validation.d.ts +5 -0
  198. package/lib/service/app-absolute-overlay-outlet.service.d.ts +9 -0
  199. package/lib/service/shared-connector.service.d.ts +28 -0
  200. package/lib/service/shared.service.d.ts +28 -0
  201. package/lib/utils/browser-utils.d.ts +15 -0
  202. package/lib/utils/event-utils.d.ts +12 -0
  203. package/lib/utils/string-utils.d.ts +1 -0
  204. package/package.json +7 -5
  205. package/public-api.d.ts +6 -0
@@ -0,0 +1,100 @@
1
+ export class BrowserUtils {
2
+ static ScrollToTop(nativeElement, milliSeconds = 200) {
3
+ return BrowserUtils._ScrollTo("scrollTop", nativeElement, milliSeconds, 0);
4
+ }
5
+ static DownloadFile(encodedUri, fileType) {
6
+ const link = document.createElement("a");
7
+ const date = new Date().toDateString();
8
+ link.href = encodedUri;
9
+ link.target = "_blank";
10
+ link.download = "export_" + date + fileType;
11
+ document.body.appendChild(link);
12
+ link.click();
13
+ document.body.removeChild(link);
14
+ }
15
+ static CopyToClipboard(data) {
16
+ const textArea = document.createElement("TEXTAREA");
17
+ const textNode = document.createTextNode(data);
18
+ textArea.appendChild(textNode);
19
+ document.body.appendChild(textArea); // Required for FF
20
+ textArea.select();
21
+ document.execCommand("copy");
22
+ document.body.removeChild(textArea);
23
+ }
24
+ static TabFocusNextElement() {
25
+ const nextTabStop = BrowserUtils._FindNextTabStop(document.activeElement);
26
+ if (nextTabStop) {
27
+ nextTabStop.focus();
28
+ }
29
+ }
30
+ static AreDimensionsInView(dimensions, view) {
31
+ const vp = BrowserUtils.GetDimensions(view);
32
+ return dimensions.top >= vp.top && dimensions.left >= vp.left && dimensions.bottom <= vp.bottom && dimensions.right <= vp.right;
33
+ }
34
+ static HorizontalFitInView(dimensions, view) {
35
+ const vp = BrowserUtils.GetDimensions(view);
36
+ return dimensions.left >= vp.left && dimensions.right <= vp.right;
37
+ }
38
+ static VerticalFitInView(dimensions, view) {
39
+ const vp = BrowserUtils.GetDimensions(view);
40
+ return dimensions.top >= vp.top && dimensions.bottom <= vp.bottom;
41
+ }
42
+ static GetViewport() {
43
+ let viewPortWidth;
44
+ let viewPortHeight;
45
+ // the more standards compliant browsers (mozilla/netscape/opera/IE7) use window.innerWidth and window.innerHeight
46
+ if (typeof window.innerWidth !== "undefined") {
47
+ viewPortWidth = window.innerWidth;
48
+ viewPortHeight = window.innerHeight;
49
+ }
50
+ else if (typeof document.documentElement !== "undefined" &&
51
+ typeof document.documentElement.clientWidth !== "undefined" &&
52
+ document.documentElement.clientWidth !== 0) {
53
+ viewPortWidth = document.documentElement.clientWidth;
54
+ viewPortHeight = document.documentElement.clientHeight;
55
+ }
56
+ else {
57
+ viewPortWidth = document.getElementsByTagName("body")[0].clientWidth;
58
+ viewPortHeight = document.getElementsByTagName("body")[0].clientHeight;
59
+ }
60
+ return { left: 0, top: 0, right: viewPortWidth, bottom: viewPortHeight };
61
+ }
62
+ static GetDimensions(view) {
63
+ if (!view) {
64
+ return this.GetViewport();
65
+ }
66
+ else {
67
+ const elem = view instanceof HTMLElement ? view : view.nativeElement;
68
+ const cr = elem.getBoundingClientRect();
69
+ return { left: cr.left, top: cr.top, right: cr.right, bottom: cr.bottom };
70
+ }
71
+ }
72
+ // Recursive.
73
+ static _ScrollTo(elementScrollProp, element, milliSeconds, toScrollEnd) {
74
+ if (!element || milliSeconds <= 0) {
75
+ return;
76
+ }
77
+ const difference = toScrollEnd - element[elementScrollProp];
78
+ const scrollPerTick = difference / milliSeconds * 10;
79
+ setTimeout(() => {
80
+ element[elementScrollProp] = element[elementScrollProp] + scrollPerTick;
81
+ if (element[elementScrollProp] === toScrollEnd) {
82
+ return;
83
+ }
84
+ BrowserUtils._ScrollTo(elementScrollProp, element, milliSeconds - 10, toScrollEnd);
85
+ }, 10);
86
+ }
87
+ static _FindNextTabStop(element) {
88
+ const tabStopElements = document.querySelectorAll("a[href], area[href], input:not(.hidden):not(.disabled):not(.readonly):not(.read-only), select:not(.hidden):not(.disabled):not(.readonly):not(.read-only), textarea:not(.hidden):not(.disabled):not(.readonly):not(.read-only), button:not(.hidden):not(.disabled):not(.readonly):not(.read-only), iframe, object, embed, *[tabindex]:not(.hidden):not(.disabled):not(.readonly):not(.read-only), *[contenteditable]:not(.hidden):not(.disabled):not(.readonly):not(.read-only)");
89
+ const actualStopEls = [];
90
+ for (let i = 0, len = tabStopElements.length; i < len; i++) {
91
+ const tabEl = tabStopElements[i];
92
+ if (tabEl.tabIndex >= 0) {
93
+ actualStopEls.push(tabEl);
94
+ }
95
+ }
96
+ const elIdx = actualStopEls.indexOf(element);
97
+ return actualStopEls[elIdx + 1] || undefined;
98
+ }
99
+ }
100
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJvd3Nlci11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZGNvbXBvbmVudHMvc3JjL2xpYi91dGlscy9icm93c2VyLXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE1BQU0sT0FBTyxZQUFZO0lBQ2QsTUFBTSxDQUFDLFdBQVcsQ0FBQyxhQUFrQixFQUFFLGVBQXVCLEdBQUc7UUFDcEUsT0FBTyxZQUFZLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQy9FLENBQUM7SUFFTSxNQUFNLENBQUMsWUFBWSxDQUFDLFVBQWtCLEVBQUUsUUFBZ0I7UUFDM0QsTUFBTSxJQUFJLEdBQXNCLFFBQVEsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDNUQsTUFBTSxJQUFJLEdBQVcsSUFBSSxJQUFJLEVBQUUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUUvQyxJQUFJLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQztRQUN2QixJQUFJLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQztRQUN2QixJQUFJLENBQUMsUUFBUSxHQUFHLFNBQVMsR0FBRyxJQUFJLEdBQUcsUUFBUSxDQUFDO1FBRTVDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNiLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFTSxNQUFNLENBQUMsZUFBZSxDQUFDLElBQVk7UUFFdEMsTUFBTSxRQUFRLEdBQVEsUUFBUSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN6RCxNQUFNLFFBQVEsR0FBUSxRQUFRLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXBELFFBQVEsQ0FB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QUFDO0lBRU8sTUFBTSxDQUFDLGdCQUFnQixDQUFDLE9BQWdCO1FBQzVDLE1BQU0sZUFBZSxHQUF3QixRQUFRLENBQUMsZ0JBQWdCLENBQ2xFLGdkQUFnZCxDQUNuZCxDQUFDO1FBQ0YsTUFBTSxhQUFhLEdBQWMsRUFBRSxDQUFDO1FBQ3BDLEtBQUssSUFBSSxDQUFDLEdBQVcsQ0FBQyxFQUFFLEdBQUcsR0FBVyxlQUFlLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDeEUsTUFBTSxLQUFLLEdBQVEsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3RDLElBQUksS0FBSyxDQUFDLFFBQVEsSUFBSSxDQUFDLEVBQUU7Z0JBQ3JCLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDN0I7U0FDSjtRQUNELE1BQU0sS0FBSyxHQUFXLGFBQWEsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDckQsT0FBTyxhQUFhLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxJQUFJLFNBQVMsQ0FBQztJQUNqRCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuaW1wb3J0IHtFbGVtZW50UmVmfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge0VsZW1lbnRQb3NpdGlvbn0gZnJvbSBcIkBjb2xpam5pdC9jb3JlY29tcG9uZW50c192MTIvbGliL2NvcmUvbW9kZWwvZWxlbWVudC1wb3NpdGlvblwiO1xyXG5cclxuZXhwb3J0IGNsYXNzIEJyb3dzZXJVdGlscyB7XHJcbiAgICBwdWJsaWMgc3RhdGljIFNjcm9sbFRvVG9wKG5hdGl2ZUVsZW1lbnQ6IGFueSwgbWlsbGlTZWNvbmRzOiBudW1iZXIgPSAyMDApOiB2b2lkIHtcclxuICAgICAgICByZXR1cm4gQnJvd3NlclV0aWxzLl9TY3JvbGxUbyhcInNjcm9sbFRvcFwiLCBuYXRpdmVFbGVtZW50LCBtaWxsaVNlY29uZHMsIDApO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgRG93bmxvYWRGaWxlKGVuY29kZWRVcmk6IHN0cmluZywgZmlsZVR5cGU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IGxpbms6IEhUTUxBbmNob3JFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImFcIik7XHJcbiAgICAgICAgY29uc3QgZGF0ZTogc3RyaW5nID0gbmV3IERhdGUoKS50b0RhdGVTdHJpbmcoKTtcclxuXHJcbiAgICAgICAgbGluay5ocmVmID0gZW5jb2RlZFVyaTtcclxuICAgICAgICBsaW5rLnRhcmdldCA9IFwiX2JsYW5rXCI7XHJcbiAgICAgICAgbGluay5kb3dubG9hZCA9IFwiZXhwb3J0X1wiICsgZGF0ZSArIGZpbGVUeXBlO1xyXG5cclxuICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGxpbmspO1xyXG4gICAgICAgIGxpbmsuY2xpY2soKTtcclxuICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGxpbmspO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgQ29weVRvQ2xpcGJvYXJkKGRhdGE6IHN0cmluZyk6IHZvaWQge1xyXG5cclxuICAgICAgICBjb25zdCB0ZXh0QXJlYTogYW55ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcIlRFWFRBUkVBXCIpO1xyXG4gICAgICAgIGNvbnN0IHRleHROb2RlOiBhbnkgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShkYXRhKTtcclxuXHJcbiAgICAgICAgdGV4dEFyZWEuYXBwZW5kQ2hpbGQodGV4dE5vZGUpO1xyXG4gICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodGV4dEFyZWEpOyAvLyBSZXF1aXJlZCBmb3IgRkZcclxuICAgICAgICB0ZXh0QXJlYS5zZWxlY3QoKTtcclxuICAgICAgICBkb2N1bWVudC5leGVjQ29tbWFuZChcImNvcHlcIik7XHJcbiAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCh0ZXh0QXJlYSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHN0YXRpYyBUYWJGb2N1c05leHRFbGVtZW50KCk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IG5leHRUYWJTdG9wOiBhbnkgPSBCcm93c2VyVXRpbHMuX0ZpbmROZXh0VGFiU3RvcChkb2N1bWVudC5hY3RpdmVFbGVtZW50KTtcclxuICAgICAgICBpZiAobmV4dFRhYlN0b3ApIHtcclxuICAgICAgICAgICAgbmV4dFRhYlN0b3AuZm9jdXMoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHN0YXRpYyBBcmVEaW1lbnNpb25zSW5WaWV3KGRpbWVuc2lvbnM6IEVsZW1lbnRQb3NpdGlvbiwgdmlldz86IEVsZW1lbnRSZWYpOiBib29sZWFuIHtcclxuICAgICAgICBjb25zdCB2cDogRWxlbWVudFBvc2l0aW9uID0gQnJvd3NlclV0aWxzLkdldERpbWVuc2lvbnModmlldyk7XHJcblxyXG4gICAgICAgIHJldHVybiBkaW1lbnNpb25zLnRvcCA+PSB2cC50b3AgJiYgZGltZW5zaW9ucy5sZWZ0ID49IHZwLmxlZnQgJiYgZGltZW5zaW9ucy5ib3R0b20gPD0gdnAuYm90dG9tICYmIGRpbWVuc2lvbnMucmlnaHQgPD0gdnAucmlnaHQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHN0YXRpYyBIb3Jpem9udGFsRml0SW5WaWV3KGRpbWVuc2lvbnM6IEVsZW1lbnRQb3NpdGlvbiwgdmlldz86IEVsZW1lbnRSZWYpOiBib29sZWFuIHtcclxuICAgICAgICBjb25zdCB2cDogRWxlbWVudFBvc2l0aW9uID0gQnJvd3NlclV0aWxzLkdldERpbWVuc2lvbnModmlldyk7XHJcblxyXG4gICAgICAgIHJldHVybiBkaW1lbnNpb25zLmxlZnQgPj0gdnAubGVmdCAmJiBkaW1lbnNpb25zLnJpZ2h0IDw9IHZwLnJpZ2h0O1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgVmVydGljYWxGaXRJblZpZXcoZGltZW5zaW9uczogRWxlbWVudFBvc2l0aW9uLCB2aWV3PzogRWxlbWVudFJlZik6IGJvb2xlYW4ge1xyXG4gICAgICAgIGNvbnN0IHZwOiBFbGVtZW50UG9zaXRpb24gPSBCcm93c2VyVXRpbHMuR2V0RGltZW5zaW9ucyh2aWV3KTtcclxuXHJcbiAgICAgICAgcmV0dXJuIGRpbWVuc2lvbnMudG9wID49IHZwLnRvcCAmJiBkaW1lbnNpb25zLmJvdHRvbSA8PSB2cC5ib3R0b207XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHN0YXRpYyBHZXRWaWV3cG9ydCgpOiBFbGVtZW50UG9zaXRpb24ge1xyXG5cclxuICAgICAgICBsZXQgdmlld1BvcnRXaWR0aDogbnVtYmVyO1xyXG4gICAgICAgIGxldCB2aWV3UG9ydEhlaWdodDogbnVtYmVyO1xyXG5cclxuICAgICAgICAvLyB0aGUgbW9yZSBzdGFuZGFyZHMgY29tcGxpYW50IGJyb3dzZXJzIChtb3ppbGxhL25ldHNjYXBlL29wZXJhL0lFNykgdXNlIHdpbmRvdy5pbm5lcldpZHRoIGFuZCB3aW5kb3cuaW5uZXJIZWlnaHRcclxuICAgICAgICBpZiAodHlwZW9mIHdpbmRvdy5pbm5lcldpZHRoICE9PSBcInVuZGVmaW5lZFwiKSB7XHJcbiAgICAgICAgICAgIHZpZXdQb3J0V2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aDtcclxuICAgICAgICAgICAgdmlld1BvcnRIZWlnaHQgPSB3aW5kb3cuaW5uZXJIZWlnaHQ7XHJcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50ICE9PSBcInVuZGVmaW5lZFwiICYmXHJcbiAgICAgICAgICAgIHR5cGVvZiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGggIT09IFwidW5kZWZpbmVkXCIgJiZcclxuICAgICAgICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoICE9PSAwKSB7XHJcbiAgICAgICAgICAgIHZpZXdQb3J0V2lkdGggPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGg7XHJcbiAgICAgICAgICAgIHZpZXdQb3J0SGVpZ2h0ID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB2aWV3UG9ydFdpZHRoID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoXCJib2R5XCIpWzBdLmNsaWVudFdpZHRoO1xyXG4gICAgICAgICAgICB2aWV3UG9ydEhlaWdodCA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKFwiYm9keVwiKVswXS5jbGllbnRIZWlnaHQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4ge2xlZnQ6IDAsIHRvcDogMCwgcmlnaHQ6IHZpZXdQb3J0V2lkdGgsIGJvdHRvbTogdmlld1BvcnRIZWlnaHR9O1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgR2V0RGltZW5zaW9ucyh2aWV3PzogRWxlbWVudFJlZik6IEVsZW1lbnRQb3NpdGlvbiB7XHJcbiAgICAgICAgaWYgKCF2aWV3KSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLkdldFZpZXdwb3J0KCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgY29uc3QgZWxlbTogSFRNTEVsZW1lbnQgPSB2aWV3IGluc3RhbmNlb2YgSFRNTEVsZW1lbnQgPyB2aWV3IDogdmlldy5uYXRpdmVFbGVtZW50O1xyXG4gICAgICAgICAgICBjb25zdCBjcjogQ2xpZW50UmVjdCA9IGVsZW0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICAgICAgICAgIHJldHVybiB7bGVmdDogY3IubGVmdCwgdG9wOiBjci50b3AsIHJpZ2h0OiBjci5yaWdodCwgYm90dG9tOiBjci5ib3R0b219O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyBSZWN1cnNpdmUuXHJcbiAgICBwcml2YXRlIHN0YXRpYyBfU2Nyb2xsVG8oZWxlbWVudFNjcm9sbFByb3A6IHN0cmluZywgZWxlbWVudDogYW55LCBtaWxsaVNlY29uZHM6IG51bWJlciwgdG9TY3JvbGxFbmQ6IG51bWJlcik6IHZvaWQge1xyXG4gICAgICAgIGlmICghZWxlbWVudCB8fCBtaWxsaVNlY29uZHMgPD0gMCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBkaWZmZXJlbmNlOiBudW1iZXIgPSB0b1Njcm9sbEVuZCAtIGVsZW1lbnRbZWxlbWVudFNjcm9sbFByb3BdO1xyXG4gICAgICAgIGNvbnN0IHNjcm9sbFBlclRpY2s6IG51bWJlciA9IGRpZmZlcmVuY2UgLyBtaWxsaVNlY29uZHMgKiAxMDtcclxuXHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIGVsZW1lbnRbZWxlbWVudFNjcm9sbFByb3BdID0gZWxlbWVudFtlbGVtZW50U2Nyb2xsUHJvcF0gKyBzY3JvbGxQZXJUaWNrO1xyXG4gICAgICAgICAgICBpZiAoZWxlbWVudFtlbGVtZW50U2Nyb2xsUHJvcF0gPT09IHRvU2Nyb2xsRW5kKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgQnJvd3NlclV0aWxzLl9TY3JvbGxUbyhlbGVtZW50U2Nyb2xsUHJvcCwgZWxlbWVudCwgbWlsbGlTZWNvbmRzIC0gMTAsIHRvU2Nyb2xsRW5kKTtcclxuICAgICAgICB9LCAxMCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBzdGF0aWMgX0ZpbmROZXh0VGFiU3RvcChlbGVtZW50OiBFbGVtZW50KTogRWxlbWVudCB7XHJcbiAgICAgICAgY29uc3QgdGFiU3RvcEVsZW1lbnRzOiBOb2RlTGlzdE9mPEVsZW1lbnQ+ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcclxuICAgICAgICAgICAgXCJhW2hyZWZdLCBhcmVhW2hyZWZdLCBpbnB1dDpub3QoLmhpZGRlbik6bm90KC5kaXNhYmxlZCk6bm90KC5yZWFkb25seSk6bm90KC5yZWFkLW9ubHkpLCBzZWxlY3Q6bm90KC5oaWRkZW4pOm5vdCguZGlzYWJsZWQpOm5vdCgucmVhZG9ubHkpOm5vdCgucmVhZC1vbmx5KSwgdGV4dGFyZWE6bm90KC5oaWRkZW4pOm5vdCguZGlzYWJsZWQpOm5vdCgucmVhZG9ubHkpOm5vdCgucmVhZC1vbmx5KSwgYnV0dG9uOm5vdCguaGlkZGVuKTpub3QoLmRpc2FibGVkKTpub3QoLnJlYWRvbmx5KTpub3QoLnJlYWQtb25seSksIGlmcmFtZSwgb2JqZWN0LCBlbWJlZCwgKlt0YWJpbmRleF06bm90KC5oaWRkZW4pOm5vdCguZGlzYWJsZWQpOm5vdCgucmVhZG9ubHkpOm5vdCgucmVhZC1vbmx5KSwgKltjb250ZW50ZWRpdGFibGVdOm5vdCguaGlkZGVuKTpub3QoLmRpc2FibGVkKTpub3QoLnJlYWRvbmx5KTpub3QoLnJlYWQtb25seSlcIlxyXG4gICAgICAgICk7XHJcbiAgICAgICAgY29uc3QgYWN0dWFsU3RvcEVsczogRWxlbWVudFtdID0gW107XHJcbiAgICAgICAgZm9yIChsZXQgaTogbnVtYmVyID0gMCwgbGVuOiBudW1iZXIgPSB0YWJTdG9wRWxlbWVudHMubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcclxuICAgICAgICAgICAgY29uc3QgdGFiRWw6IGFueSA9IHRhYlN0b3BFbGVtZW50c1tpXTtcclxuICAgICAgICAgICAgaWYgKHRhYkVsLnRhYkluZGV4ID49IDApIHtcclxuICAgICAgICAgICAgICAgIGFjdHVhbFN0b3BFbHMucHVzaCh0YWJFbCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgZWxJZHg6IG51bWJlciA9IGFjdHVhbFN0b3BFbHMuaW5kZXhPZihlbGVtZW50KTtcclxuICAgICAgICByZXR1cm4gYWN0dWFsU3RvcEVsc1tlbElkeCArIDFdIHx8IHVuZGVmaW5lZDtcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,59 @@
1
+ import { isNill } from "./is-nill.function";
2
+ // @dynamic
3
+ export class EventUtils {
4
+ static get passiveSupported() {
5
+ if (isNill(EventUtils._passiveSupported)) {
6
+ EventUtils._CheckPassiveSupported();
7
+ }
8
+ return EventUtils._passiveSupported;
9
+ }
10
+ static get passiveBubble() {
11
+ if (isNill(EventUtils._passiveBubble)) {
12
+ EventUtils._passiveBubble = EventUtils.passiveSupported ? { passive: true, capture: false } : false;
13
+ }
14
+ return EventUtils._passiveBubble;
15
+ }
16
+ static get passiveCapture() {
17
+ if (isNill(EventUtils._passiveCapture)) {
18
+ EventUtils._passiveCapture = EventUtils.passiveSupported ? { passive: true, capture: true } : true;
19
+ }
20
+ return EventUtils._passiveCapture;
21
+ }
22
+ static GetMouseEventOrTouch(originalEvent) {
23
+ return originalEvent instanceof MouseEvent ? originalEvent : originalEvent.touches[0];
24
+ }
25
+ static StopEvent(event) {
26
+ if (!event) {
27
+ return;
28
+ }
29
+ event.preventDefault();
30
+ event.stopPropagation();
31
+ event.stopImmediatePropagation();
32
+ }
33
+ static KillEvent(event) {
34
+ this.StopEvent(event);
35
+ if (event) {
36
+ event.stopPropagation();
37
+ }
38
+ }
39
+ static _CheckPassiveSupported() {
40
+ let passiveSupported = false;
41
+ try {
42
+ const options = Object.defineProperty({}, "passive", {
43
+ get: function () {
44
+ passiveSupported = true;
45
+ }
46
+ });
47
+ window.addEventListener("test", null, options);
48
+ // Q; what is this? do we have to window.removeEventListener it?
49
+ // A: no, because it will certainly fail, but before it does it might have set the passiveSupported variable :)
50
+ }
51
+ catch (e) {
52
+ }
53
+ this._passiveSupported = passiveSupported;
54
+ }
55
+ }
56
+ EventUtils._passiveSupported = null;
57
+ EventUtils._passiveCapture = null;
58
+ EventUtils._passiveBubble = null;
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtdXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWRjb21wb25lbnRzL3NyYy9saWIvdXRpbHMvZXZlbnQtdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBRTFDLFdBQVc7QUFDWCxNQUFNLE9BQU8sVUFBVTtJQUVaLE1BQU0sS0FBSyxnQkFBZ0I7UUFDOUIsSUFBSSxNQUFNLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLEVBQUU7WUFDdEMsVUFBVSxDQUFDLHNCQUFzQixFQUFFLENBQUM7U0FDdkM7UUFDRCxPQUFPLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQztJQUN4QyxDQUFDO0lBRU0sTUFBTSxLQUFLLGFBQWE7UUFDM0IsSUFBSSxNQUFNLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxFQUFFO1lBQ25DLFVBQVUsQ0FBQyxjQUFjLEdBQUcsVUFBVSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxFQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7U0FDckc7UUFDRCxPQUFPLFVBQVUsQ0FBQyxjQUFjLENBQUM7SUFDckMsQ0FBQztJQUVNLE1BQU0sS0FBSyxjQUFjO1FBQzVCLElBQUksTUFBTSxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUMsRUFBRTtZQUNwQyxVQUFVLENBQUMsZUFBZSxHQUFHLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsRUFBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1NBQ3BHO1FBQ0QsT0FBTyxVQUFVLENBQUMsZUFBZSxDQUFDO0lBQ3RDLENBQUM7SUFFTSxNQUFNLENBQUMsb0JBQW9CLENBQUMsYUFBc0M7UUFDckUsT0FBTyxhQUFhLFlBQVksVUFBVSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDMUYsQ0FBQztJQVFNLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBWTtRQUNoQyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1IsT0FBTztTQUNWO1FBRUQsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixLQUFLLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBRU0sTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFZO1FBQ2hDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEIsSUFBSSxLQUFLLEVBQUU7WUFDUCxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7U0FDM0I7SUFDTCxDQUFDO0lBR08sTUFBTSxDQUFDLHNCQUFzQjtRQUNqQyxJQUFJLGdCQUFnQixHQUFZLEtBQUssQ0FBQztRQUN0QyxJQUFJO1lBQ0EsTUFBTSxPQUFPLEdBQVEsTUFBTSxDQUFDLGNBQWMsQ0FBQyxFQUFFLEVBQUUsU0FBUyxFQUFFO2dCQUN0RCxHQUFHLEVBQUU7b0JBQ0QsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO2dCQUM1QixDQUFDO2FBQ0osQ0FBQyxDQUFDO1lBQ0gsTUFBTSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDL0MsZ0VBQWdFO1lBQ2hFLCtHQUErRztTQUNsSDtRQUFDLE9BQU8sQ0FBQyxFQUFFO1NBQ1g7UUFDRCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsZ0JBQWdCLENBQUM7SUFDOUMsQ0FBQzs7QUF0Q2MsNEJBQWlCLEdBQVksSUFBSSxDQUFDO0FBRWxDLDBCQUFlLEdBQVEsSUFBSSxDQUFDO0FBRTVCLHlCQUFjLEdBQVMsSUFBSSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtpc05pbGx9IGZyb20gXCIuL2lzLW5pbGwuZnVuY3Rpb25cIjtcclxuXHJcbi8vIEBkeW5hbWljXHJcbmV4cG9ydCBjbGFzcyBFdmVudFV0aWxzIHtcclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIGdldCBwYXNzaXZlU3VwcG9ydGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGlmIChpc05pbGwoRXZlbnRVdGlscy5fcGFzc2l2ZVN1cHBvcnRlZCkpIHtcclxuICAgICAgICAgICAgRXZlbnRVdGlscy5fQ2hlY2tQYXNzaXZlU3VwcG9ydGVkKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBFdmVudFV0aWxzLl9wYXNzaXZlU3VwcG9ydGVkO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgZ2V0IHBhc3NpdmVCdWJibGUoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKGlzTmlsbChFdmVudFV0aWxzLl9wYXNzaXZlQnViYmxlKSkge1xyXG4gICAgICAgICAgICBFdmVudFV0aWxzLl9wYXNzaXZlQnViYmxlID0gRXZlbnRVdGlscy5wYXNzaXZlU3VwcG9ydGVkID8ge3Bhc3NpdmU6IHRydWUsIGNhcHR1cmU6IGZhbHNlfSA6IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gRXZlbnRVdGlscy5fcGFzc2l2ZUJ1YmJsZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIGdldCBwYXNzaXZlQ2FwdHVyZSgpOiBib29sZWFuIHtcclxuICAgICAgICBpZiAoaXNOaWxsKEV2ZW50VXRpbHMuX3Bhc3NpdmVDYXB0dXJlKSkge1xyXG4gICAgICAgICAgICBFdmVudFV0aWxzLl9wYXNzaXZlQ2FwdHVyZSA9IEV2ZW50VXRpbHMucGFzc2l2ZVN1cHBvcnRlZCA/IHtwYXNzaXZlOiB0cnVlLCBjYXB0dXJlOiB0cnVlfSA6IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBFdmVudFV0aWxzLl9wYXNzaXZlQ2FwdHVyZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIEdldE1vdXNlRXZlbnRPclRvdWNoKG9yaWdpbmFsRXZlbnQ6IE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50KTogTW91c2VFdmVudCB8IFRvdWNoIHtcclxuICAgICAgICByZXR1cm4gb3JpZ2luYWxFdmVudCBpbnN0YW5jZW9mIE1vdXNlRXZlbnQgPyBvcmlnaW5hbEV2ZW50IDogb3JpZ2luYWxFdmVudC50b3VjaGVzWzBdO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc3RhdGljIF9wYXNzaXZlU3VwcG9ydGVkOiBib29sZWFuID0gbnVsbDtcclxuXHJcbiAgICBwcml2YXRlIHN0YXRpYyBfcGFzc2l2ZUNhcHR1cmU6IGFueSA9IG51bGw7XHJcblxyXG4gICAgcHJpdmF0ZSBzdGF0aWMgX3Bhc3NpdmVCdWJibGU6IGFueSAgPSBudWxsO1xyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgU3RvcEV2ZW50KGV2ZW50OiBFdmVudCk6IHZvaWQge1xyXG4gICAgICAgIGlmICghZXZlbnQpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIEtpbGxFdmVudChldmVudDogRXZlbnQpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLlN0b3BFdmVudChldmVudCk7XHJcbiAgICAgICAgaWYgKGV2ZW50KSB7XHJcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG4gICAgcHJpdmF0ZSBzdGF0aWMgX0NoZWNrUGFzc2l2ZVN1cHBvcnRlZCgpOiB2b2lkIHtcclxuICAgICAgICBsZXQgcGFzc2l2ZVN1cHBvcnRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIGNvbnN0IG9wdGlvbnM6IGFueSA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwgXCJwYXNzaXZlXCIsIHtcclxuICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCk6IHZvaWQge1xyXG4gICAgICAgICAgICAgICAgICAgIHBhc3NpdmVTdXBwb3J0ZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJ0ZXN0XCIsIG51bGwsIG9wdGlvbnMpO1xyXG4gICAgICAgICAgICAvLyBROyB3aGF0IGlzIHRoaXM/IGRvIHdlIGhhdmUgdG8gd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIgaXQ/XHJcbiAgICAgICAgICAgIC8vIEE6IG5vLCBiZWNhdXNlIGl0IHdpbGwgY2VydGFpbmx5IGZhaWwsIGJ1dCBiZWZvcmUgaXQgZG9lcyBpdCBtaWdodCBoYXZlIHNldCB0aGUgcGFzc2l2ZVN1cHBvcnRlZCB2YXJpYWJsZSA6KVxyXG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5fcGFzc2l2ZVN1cHBvcnRlZCA9IHBhc3NpdmVTdXBwb3J0ZWQ7XHJcbiAgICB9XHJcbn1cclxuIl19
@@ -89,5 +89,9 @@ export class StringUtils {
89
89
  static _escapeRegExp(str) {
90
90
  return str; // .replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^$\|]/g, "\\$&");
91
91
  }
92
+ static IsValidEmail(str) {
93
+ const emailRegex = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
94
+ return !!emailRegex.test(str);
95
+ }
92
96
  }
93
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5nLXV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkY29tcG9uZW50cy9zcmMvbGliL3V0aWxzL3N0cmluZy11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxzREFBc0Q7QUFDdEQsTUFBTSxPQUFPLFdBQVc7SUFFdEI7Ozs7Ozs7Ozs7Ozs7O09BY0c7SUFDSSxNQUFNLENBQUMsb0JBQW9CLENBQUMsTUFBYyxFQUFFLFdBQW1CLEVBQUUsR0FBRyxnQkFBMEI7UUFDbkcsbUJBQW1CO1FBQ25CLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ2IsT0FBTyxTQUFTLENBQUM7U0FDbEI7UUFDRCxJQUFJLENBQUMsV0FBVyxJQUFJLGdCQUFnQixDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDakQsT0FBTyxNQUFNLENBQUM7U0FDZjtRQUNELElBQUksU0FBUyxHQUFXLE1BQU0sQ0FBQztRQUMvQiw0Q0FBNEM7UUFDNUMsSUFBSSxnQkFBZ0IsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ2pDLHdDQUF3QztZQUN4QyxTQUFTLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNqRTthQUFNO1lBQ0wsb0dBQW9HO1lBQ3BHLEtBQUssSUFBSSxDQUFDLEdBQVcsQ0FBQyxFQUFFLEdBQUcsR0FBVyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFDM0UsU0FBUyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDakU7U0FDRjtRQUNELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFRCx5SEFBeUg7SUFDbEgsTUFBTSxDQUFDLFdBQVcsQ0FBQyxHQUFRLEVBQUUsZUFBdUIsRUFBRTtRQUMzRCxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUM5QixJQUFJLEdBQUcsSUFBSSxPQUFPLEdBQUcsQ0FBQyxRQUFRLEtBQUssVUFBVSxFQUFFO2dCQUM3QyxHQUFHLEdBQUcsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDO2FBQ3RCO2lCQUFNO2dCQUNMLEdBQUcsR0FBRyxZQUFZLENBQUM7YUFDcEI7U0FDRjtRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVNLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBUTtRQUM3QixPQUFPLE9BQU8sR0FBRyxLQUFLLFFBQVEsQ0FBQztJQUNqQyxDQUFDO0lBRUQsOERBQThEO0lBQ3ZELE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxHQUFXO1FBQzFDLE9BQU8sR0FBRyxJQUFJLFdBQVcsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7O09BYUc7SUFDSSxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQVcsRUFBRSxNQUFhO1FBQzdDLE1BQU0sSUFBSSxHQUFRLEtBQUssQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNyRCxPQUFPLEdBQUcsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLFVBQVUsS0FBVSxFQUFFLE1BQVc7WUFDOUQsT0FBTyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ2hHLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELHNGQUFzRjtJQUMvRSxNQUFNLENBQUMsZUFBZSxDQUFDLEdBQVcsRUFBRSxNQUFjO1FBQ3ZELElBQUksR0FBRyxFQUFFO1lBQ1AsT0FBTyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQztTQUNsQzthQUFNO1lBQ0wsT0FBTyxHQUFHLENBQUM7U0FDWjtJQUNILENBQUM7SUFFRCxrRkFBa0Y7SUFDMUUsTUFBTSxDQUFDLGFBQWEsQ0FBQyxHQUFXO1FBQ3RDLE9BQU8sR0FBRyxDQUFDLENBQUEsMERBQTBEO0lBQ3ZFLENBQUM7Q0FFRiIsInNvdXJjZXNDb250ZW50IjpbIi8vIFN0YXRpYyB1dGlsaXR5IGZ1bmN0aW9ucyBob2xkZXIgcmVsYXRlZCB0byBzdHJpbmdzLlxyXG5leHBvcnQgY2xhc3MgU3RyaW5nVXRpbHMge1xyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIGEgbmV3IHN0cmluZyB3aGVyZSBnaXZlbiBwbGFjZWhvbGRlciBpbiBnaXZlbiBzb3VyY2Ugc3RyaW5nIGFyZSByZXBsYWNlZCBieSBnaXZlbiByZXBsYWNlbWVudCB0ZXh0cy5cclxuICAgKlxyXG4gICAqIEV4YW1wbGUgdXNhZ2U6XHJcbiAgICpcclxuICAgKiBzb3VyY2UgPSBcIkFCQ0RBQkNEXCJcclxuICAgKiBwbGFjZWhvbGRlciA9IFwiQkNcIlxyXG4gICAqIHJlcGxhY2VtZW50VGV4dHMgPSBcIlpcIiwgXCJaXCIgKFJFU1QgYXJndW1lbnRzKVxyXG4gICAqIE9VVFBVVCA9IFwiQVpEQVpEXCJcclxuICAgKlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzb3VyY2VcclxuICAgKiBAcGFyYW0ge3N0cmluZ30gcGxhY2Vob2xkZXJcclxuICAgKiBAcGFyYW0ge3N0cmluZ30gcmVwbGFjZW1lbnRUZXh0cyBJZiBvbmx5IG9uZSBpcyBnaXZlbiwgdGhpcyBmdW5jdGlvbiByZXBsYWNlcyBhbGwgcGxhY2Vob2xkZXJzIHdpdGggdGhhdCBzaW5nbGUgcmVwbGFjZW1lbnRUZXh0LlxyXG4gICAqIElmIG1vcmUgYXJlIGdpdmVuLCBwbGFjZWhvbGRlcnMgd2l0aG91dCBhIGNvcnJlc3BvbmRpbmcgcmVwbGFjZW1lbnRUZXh0IHdpbGwgcmVtYWluIHRoZWlyIG9yaWdpbmFsIHBsYWNlaG9sZGVyIGNoYXJhY3RlcnMuXHJcbiAgICovXHJcbiAgcHVibGljIHN0YXRpYyBSZXBsYWNlT2NjdXJyZW5jZXNJbihzb3VyY2U6IHN0cmluZywgcGxhY2Vob2xkZXI6IHN0cmluZywgLi4ucmVwbGFjZW1lbnRUZXh0czogc3RyaW5nW10pOiBzdHJpbmcge1xyXG4gICAgLy8gcGFyYW1ldGVyIGd1YXJkc1xyXG4gICAgaWYgKCEoc291cmNlKSkge1xyXG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gICAgaWYgKCFwbGFjZWhvbGRlciB8fCByZXBsYWNlbWVudFRleHRzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICByZXR1cm4gc291cmNlO1xyXG4gICAgfVxyXG4gICAgbGV0IG91dFN0cmluZzogc3RyaW5nID0gc291cmNlO1xyXG4gICAgLy8gb25lIHJlcGxhY2VtZW50VGV4dCBtZWFucyByZXBsYWNlIGZvciBhbGxcclxuICAgIGlmIChyZXBsYWNlbWVudFRleHRzLmxlbmd0aCA9PT0gMSkge1xyXG4gICAgICAvLyBcImdcIiBpcyB0aGUgZyBmbGFnIHRvIHJlcGxhY2UgZ2xvYmFsbHlcclxuICAgICAgb3V0U3RyaW5nID0gb3V0U3RyaW5nLnJlcGxhY2UocGxhY2Vob2xkZXIsIHJlcGxhY2VtZW50VGV4dHNbMF0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgLy8gcmVwbGFjZSBvY2N1cmVuY2UgaSBieSByZXBsYWNlbWVudFRleHRzW2ldLCBvbmUgYXQgYSB0aW1lIGluIGxvb3AgKHRoZXJlIG1pZ2h0IGJlIGEgZmFzdGVyIHdheS4uKVxyXG4gICAgICBmb3IgKGxldCBpOiBudW1iZXIgPSAwLCBsZW46IG51bWJlciA9IHJlcGxhY2VtZW50VGV4dHMubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcclxuICAgICAgICBvdXRTdHJpbmcgPSBvdXRTdHJpbmcucmVwbGFjZShwbGFjZWhvbGRlciwgcmVwbGFjZW1lbnRUZXh0c1tpXSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBvdXRTdHJpbmc7XHJcbiAgfVxyXG5cclxuICAvLyBSZXR1cm5zIHRoZSBnaXZlbiBhcmd1bWVudCBhcyBhIHN0cmluZy4gUmV0dXJucyBnaXZlbiBkZWZhdWx0VmFsdWUgaWYgY29udmVyc2lvbiBvZiBhcmd1bWVudCB0byBzdHJpbmcgd2FzIGltcG9zc2libGUuXHJcbiAgcHVibGljIHN0YXRpYyBQYXJzZVN0cmluZyhhcmc6IGFueSwgZGVmYXVsdFZhbHVlOiBzdHJpbmcgPSBcIlwiKTogc3RyaW5nIHtcclxuICAgIGlmICghU3RyaW5nVXRpbHMuSXNTdHJpbmcoYXJnKSkge1xyXG4gICAgICBpZiAoYXJnICYmIHR5cGVvZiBhcmcudG9TdHJpbmcgPT09IFwiZnVuY3Rpb25cIikge1xyXG4gICAgICAgIGFyZyA9IGFyZy50b1N0cmluZygpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGFyZyA9IGRlZmF1bHRWYWx1ZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGFyZztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgSXNTdHJpbmcoc3RyOiBhbnkpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0eXBlb2Ygc3RyID09PSAnc3RyaW5nJztcclxuICB9XHJcblxyXG4gIC8vIFJldHVybnMgd2hldGhlciBnaXZlbiBzdHIgaXMgYSBzdHJpbmcgYW5kIGhhcyBhIGxlbmd0aCA+IDAuXHJcbiAgcHVibGljIHN0YXRpYyBJc1N0cmluZ1dpdGhMZW5ndGgoc3RyOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBzdHIgJiYgU3RyaW5nVXRpbHMuSXNTdHJpbmcoc3RyKSAmJiBzdHIubGVuZ3RoID4gMDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEV4YW1wbGUgdXNhZ2U6XHJcbiAgICogc3RyID0gJ0ZpbGUgaXMgdG8gbGFyZ2UgdG8gdXBsb2FkLiBNYXhpbXVtIGZpbGUgc2l6ZSBpcyB7MH0gTWInXHJcbiAgICogZm9ybWF0ID0gW0ZpbGVVdGlscy5NYXhVcGxvYWRTaXplSW5NYl1cclxuICAgKiBvdXRwdXQgPSBGaWxlIGlzIHRvIGxhcmdlIHRvIHVwbG9hZC4gTWF4aW11bSBmaWxlIHNpemUgaXMgMyBNYlxyXG4gICAqXHJcbiAgICogc3RyID0gJ3swfSBpcyB3YXkgYmV0dGVyIHRoYW4gezF9J1xyXG4gICAqIGZvcm1hdCA9IFsnQW5ndWxhcjInLCdBbmd1bGFyMSddXHJcbiAgICogb3V0cHV0ID0gQW5ndWxhcjIgaXMgd2F5IGJldHRlciB0aGFuIEFuZ3VsYXIxXHJcbiAgICpcclxuICAgKiBAcGFyYW0gc3RyIFRoZSBzdHJpbmcgdGhhdCBjb250YWlucyB7MH0gYW5kIHsxfSBldGMsIGZvciByZXBsYWNlbWVudCBieSBnaXZlbiBmb3JtYXQgZGF0YVxyXG4gICAqIEBwYXJhbSBmb3JtYXQgVGhlIGZvcm1hdCByZXBsYWNlbWVudCBkYXRhXHJcbiAgICogQHJldHVybnMge3N0cmluZ31cclxuICAgKi9cclxuICBwdWJsaWMgc3RhdGljIEZvcm1hdChzdHI6IHN0cmluZywgZm9ybWF0OiBhbnlbXSk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBhcmdzOiBhbnkgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChmb3JtYXQpO1xyXG4gICAgcmV0dXJuIHN0ci5yZXBsYWNlKC97KFxcZCspfS9nLCBmdW5jdGlvbiAobWF0Y2g6IGFueSwgbnVtYmVyOiBhbnkpOiBzdHJpbmcge1xyXG4gICAgICByZXR1cm4gdHlwZW9mIGFyZ3NbbnVtYmVyXSAhPT0gXCJ1bmRlZmluZWRcIiA/IChhcmdzW251bWJlcl0gIT09IG51bGwgPyBhcmdzW251bWJlcl0gOiBcIlwiKSA6IFwiXCI7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8vIFJldHVybnMgYSBuZXcgc3RyaW5nIHN0cmluZyB3aXRoIE4gYW1vdW50IG9mIGNoYXJhY3RlcnMgcmVtb3ZlZCBmcm9tIHRoZSBlbmQgb2YgaXQuXHJcbiAgcHVibGljIHN0YXRpYyBSZW1vdmVMYXN0Q2hhcnMoc3RyOiBzdHJpbmcsIGFtb3VudDogbnVtYmVyKTogc3RyaW5nIHtcclxuICAgIGlmIChzdHIpIHtcclxuICAgICAgcmV0dXJuIHN0ci5zbGljZSgwLCAtMSAqIGFtb3VudCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gc3RyO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gUmV0dXJucyBnaXZlbiBzdHJpbmcsIGVzY2FwZWQgZm9yIHVzZSBhcyBzdHJpbmcgbGl0ZXJhbCBpbiByZWd1bGFyIGV4cHJlc3Npb25zLlxyXG4gIHByaXZhdGUgc3RhdGljIF9lc2NhcGVSZWdFeHAoc3RyOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHN0cjsvLyAucmVwbGFjZSgvW1xcLVxcW1xcXVxcL1xce1xcfVxcKFxcKVxcKlxcK1xcP1xcLlxcXFxcXF4kXFx8XS9nLCBcIlxcXFwkJlwiKTtcclxuICB9XHJcblxyXG59XHJcbiJdfQ==
97
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5nLXV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkY29tcG9uZW50cy9zcmMvbGliL3V0aWxzL3N0cmluZy11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxzREFBc0Q7QUFDdEQsTUFBTSxPQUFPLFdBQVc7SUFFdEI7Ozs7Ozs7Ozs7Ozs7O09BY0c7SUFDSSxNQUFNLENBQUMsb0JBQW9CLENBQUMsTUFBYyxFQUFFLFdBQW1CLEVBQUUsR0FBRyxnQkFBMEI7UUFDbkcsbUJBQW1CO1FBQ25CLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ2IsT0FBTyxTQUFTLENBQUM7U0FDbEI7UUFDRCxJQUFJLENBQUMsV0FBVyxJQUFJLGdCQUFnQixDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDakQsT0FBTyxNQUFNLENBQUM7U0FDZjtRQUNELElBQUksU0FBUyxHQUFXLE1BQU0sQ0FBQztRQUMvQiw0Q0FBNEM7UUFDNUMsSUFBSSxnQkFBZ0IsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ2pDLHdDQUF3QztZQUN4QyxTQUFTLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNqRTthQUFNO1lBQ0wsb0dBQW9HO1lBQ3BHLEtBQUssSUFBSSxDQUFDLEdBQVcsQ0FBQyxFQUFFLEdBQUcsR0FBVyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFDM0UsU0FBUyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDakU7U0FDRjtRQUNELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFRCx5SEFBeUg7SUFDbEgsTUFBTSxDQUFDLFdBQVcsQ0FBQyxHQUFRLEVBQUUsZUFBdUIsRUFBRTtRQUMzRCxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUM5QixJQUFJLEdBQUcsSUFBSSxPQUFPLEdBQUcsQ0FBQyxRQUFRLEtBQUssVUFBVSxFQUFFO2dCQUM3QyxHQUFHLEdBQUcsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDO2FBQ3RCO2lCQUFNO2dCQUNMLEdBQUcsR0FBRyxZQUFZLENBQUM7YUFDcEI7U0FDRjtRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVNLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBUTtRQUM3QixPQUFPLE9BQU8sR0FBRyxLQUFLLFFBQVEsQ0FBQztJQUNqQyxDQUFDO0lBRUQsOERBQThEO0lBQ3ZELE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxHQUFXO1FBQzFDLE9BQU8sR0FBRyxJQUFJLFdBQVcsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7O09BYUc7SUFDSSxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQVcsRUFBRSxNQUFhO1FBQzdDLE1BQU0sSUFBSSxHQUFRLEtBQUssQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNyRCxPQUFPLEdBQUcsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLFVBQVUsS0FBVSxFQUFFLE1BQVc7WUFDOUQsT0FBTyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ2hHLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELHNGQUFzRjtJQUMvRSxNQUFNLENBQUMsZUFBZSxDQUFDLEdBQVcsRUFBRSxNQUFjO1FBQ3ZELElBQUksR0FBRyxFQUFFO1lBQ1AsT0FBTyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQztTQUNsQzthQUFNO1lBQ0wsT0FBTyxHQUFHLENBQUM7U0FDWjtJQUNILENBQUM7SUFFRCxrRkFBa0Y7SUFDMUUsTUFBTSxDQUFDLGFBQWEsQ0FBQyxHQUFXO1FBQ3RDLE9BQU8sR0FBRyxDQUFDLENBQUEsMERBQTBEO0lBQ3ZFLENBQUM7SUFFTSxNQUFNLENBQUMsWUFBWSxDQUFDLEdBQVc7UUFDcEMsTUFBTSxVQUFVLEdBQVEsd0pBQXdKLENBQUM7UUFDakwsT0FBTyxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNoQyxDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTdGF0aWMgdXRpbGl0eSBmdW5jdGlvbnMgaG9sZGVyIHJlbGF0ZWQgdG8gc3RyaW5ncy5cclxuZXhwb3J0IGNsYXNzIFN0cmluZ1V0aWxzIHtcclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyBhIG5ldyBzdHJpbmcgd2hlcmUgZ2l2ZW4gcGxhY2Vob2xkZXIgaW4gZ2l2ZW4gc291cmNlIHN0cmluZyBhcmUgcmVwbGFjZWQgYnkgZ2l2ZW4gcmVwbGFjZW1lbnQgdGV4dHMuXHJcbiAgICpcclxuICAgKiBFeGFtcGxlIHVzYWdlOlxyXG4gICAqXHJcbiAgICogc291cmNlID0gXCJBQkNEQUJDRFwiXHJcbiAgICogcGxhY2Vob2xkZXIgPSBcIkJDXCJcclxuICAgKiByZXBsYWNlbWVudFRleHRzID0gXCJaXCIsIFwiWlwiIChSRVNUIGFyZ3VtZW50cylcclxuICAgKiBPVVRQVVQgPSBcIkFaREFaRFwiXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge3N0cmluZ30gc291cmNlXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IHBsYWNlaG9sZGVyXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IHJlcGxhY2VtZW50VGV4dHMgSWYgb25seSBvbmUgaXMgZ2l2ZW4sIHRoaXMgZnVuY3Rpb24gcmVwbGFjZXMgYWxsIHBsYWNlaG9sZGVycyB3aXRoIHRoYXQgc2luZ2xlIHJlcGxhY2VtZW50VGV4dC5cclxuICAgKiBJZiBtb3JlIGFyZSBnaXZlbiwgcGxhY2Vob2xkZXJzIHdpdGhvdXQgYSBjb3JyZXNwb25kaW5nIHJlcGxhY2VtZW50VGV4dCB3aWxsIHJlbWFpbiB0aGVpciBvcmlnaW5hbCBwbGFjZWhvbGRlciBjaGFyYWN0ZXJzLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBzdGF0aWMgUmVwbGFjZU9jY3VycmVuY2VzSW4oc291cmNlOiBzdHJpbmcsIHBsYWNlaG9sZGVyOiBzdHJpbmcsIC4uLnJlcGxhY2VtZW50VGV4dHM6IHN0cmluZ1tdKTogc3RyaW5nIHtcclxuICAgIC8vIHBhcmFtZXRlciBndWFyZHNcclxuICAgIGlmICghKHNvdXJjZSkpIHtcclxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgIH1cclxuICAgIGlmICghcGxhY2Vob2xkZXIgfHwgcmVwbGFjZW1lbnRUZXh0cy5sZW5ndGggPT09IDApIHtcclxuICAgICAgcmV0dXJuIHNvdXJjZTtcclxuICAgIH1cclxuICAgIGxldCBvdXRTdHJpbmc6IHN0cmluZyA9IHNvdXJjZTtcclxuICAgIC8vIG9uZSByZXBsYWNlbWVudFRleHQgbWVhbnMgcmVwbGFjZSBmb3IgYWxsXHJcbiAgICBpZiAocmVwbGFjZW1lbnRUZXh0cy5sZW5ndGggPT09IDEpIHtcclxuICAgICAgLy8gXCJnXCIgaXMgdGhlIGcgZmxhZyB0byByZXBsYWNlIGdsb2JhbGx5XHJcbiAgICAgIG91dFN0cmluZyA9IG91dFN0cmluZy5yZXBsYWNlKHBsYWNlaG9sZGVyLCByZXBsYWNlbWVudFRleHRzWzBdKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIC8vIHJlcGxhY2Ugb2NjdXJlbmNlIGkgYnkgcmVwbGFjZW1lbnRUZXh0c1tpXSwgb25lIGF0IGEgdGltZSBpbiBsb29wICh0aGVyZSBtaWdodCBiZSBhIGZhc3RlciB3YXkuLilcclxuICAgICAgZm9yIChsZXQgaTogbnVtYmVyID0gMCwgbGVuOiBudW1iZXIgPSByZXBsYWNlbWVudFRleHRzLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XHJcbiAgICAgICAgb3V0U3RyaW5nID0gb3V0U3RyaW5nLnJlcGxhY2UocGxhY2Vob2xkZXIsIHJlcGxhY2VtZW50VGV4dHNbaV0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gb3V0U3RyaW5nO1xyXG4gIH1cclxuXHJcbiAgLy8gUmV0dXJucyB0aGUgZ2l2ZW4gYXJndW1lbnQgYXMgYSBzdHJpbmcuIFJldHVybnMgZ2l2ZW4gZGVmYXVsdFZhbHVlIGlmIGNvbnZlcnNpb24gb2YgYXJndW1lbnQgdG8gc3RyaW5nIHdhcyBpbXBvc3NpYmxlLlxyXG4gIHB1YmxpYyBzdGF0aWMgUGFyc2VTdHJpbmcoYXJnOiBhbnksIGRlZmF1bHRWYWx1ZTogc3RyaW5nID0gXCJcIik6IHN0cmluZyB7XHJcbiAgICBpZiAoIVN0cmluZ1V0aWxzLklzU3RyaW5nKGFyZykpIHtcclxuICAgICAgaWYgKGFyZyAmJiB0eXBlb2YgYXJnLnRvU3RyaW5nID09PSBcImZ1bmN0aW9uXCIpIHtcclxuICAgICAgICBhcmcgPSBhcmcudG9TdHJpbmcoKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBhcmcgPSBkZWZhdWx0VmFsdWU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBhcmc7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIElzU3RyaW5nKHN0cjogYW55KTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdHlwZW9mIHN0ciA9PT0gJ3N0cmluZyc7XHJcbiAgfVxyXG5cclxuICAvLyBSZXR1cm5zIHdoZXRoZXIgZ2l2ZW4gc3RyIGlzIGEgc3RyaW5nIGFuZCBoYXMgYSBsZW5ndGggPiAwLlxyXG4gIHB1YmxpYyBzdGF0aWMgSXNTdHJpbmdXaXRoTGVuZ3RoKHN0cjogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gc3RyICYmIFN0cmluZ1V0aWxzLklzU3RyaW5nKHN0cikgJiYgc3RyLmxlbmd0aCA+IDA7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBFeGFtcGxlIHVzYWdlOlxyXG4gICAqIHN0ciA9ICdGaWxlIGlzIHRvIGxhcmdlIHRvIHVwbG9hZC4gTWF4aW11bSBmaWxlIHNpemUgaXMgezB9IE1iJ1xyXG4gICAqIGZvcm1hdCA9IFtGaWxlVXRpbHMuTWF4VXBsb2FkU2l6ZUluTWJdXHJcbiAgICogb3V0cHV0ID0gRmlsZSBpcyB0byBsYXJnZSB0byB1cGxvYWQuIE1heGltdW0gZmlsZSBzaXplIGlzIDMgTWJcclxuICAgKlxyXG4gICAqIHN0ciA9ICd7MH0gaXMgd2F5IGJldHRlciB0aGFuIHsxfSdcclxuICAgKiBmb3JtYXQgPSBbJ0FuZ3VsYXIyJywnQW5ndWxhcjEnXVxyXG4gICAqIG91dHB1dCA9IEFuZ3VsYXIyIGlzIHdheSBiZXR0ZXIgdGhhbiBBbmd1bGFyMVxyXG4gICAqXHJcbiAgICogQHBhcmFtIHN0ciBUaGUgc3RyaW5nIHRoYXQgY29udGFpbnMgezB9IGFuZCB7MX0gZXRjLCBmb3IgcmVwbGFjZW1lbnQgYnkgZ2l2ZW4gZm9ybWF0IGRhdGFcclxuICAgKiBAcGFyYW0gZm9ybWF0IFRoZSBmb3JtYXQgcmVwbGFjZW1lbnQgZGF0YVxyXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9XHJcbiAgICovXHJcbiAgcHVibGljIHN0YXRpYyBGb3JtYXQoc3RyOiBzdHJpbmcsIGZvcm1hdDogYW55W10pOiBzdHJpbmcge1xyXG4gICAgY29uc3QgYXJnczogYW55ID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoZm9ybWF0KTtcclxuICAgIHJldHVybiBzdHIucmVwbGFjZSgveyhcXGQrKX0vZywgZnVuY3Rpb24gKG1hdGNoOiBhbnksIG51bWJlcjogYW55KTogc3RyaW5nIHtcclxuICAgICAgcmV0dXJuIHR5cGVvZiBhcmdzW251bWJlcl0gIT09IFwidW5kZWZpbmVkXCIgPyAoYXJnc1tudW1iZXJdICE9PSBudWxsID8gYXJnc1tudW1iZXJdIDogXCJcIikgOiBcIlwiO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvLyBSZXR1cm5zIGEgbmV3IHN0cmluZyBzdHJpbmcgd2l0aCBOIGFtb3VudCBvZiBjaGFyYWN0ZXJzIHJlbW92ZWQgZnJvbSB0aGUgZW5kIG9mIGl0LlxyXG4gIHB1YmxpYyBzdGF0aWMgUmVtb3ZlTGFzdENoYXJzKHN0cjogc3RyaW5nLCBhbW91bnQ6IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICBpZiAoc3RyKSB7XHJcbiAgICAgIHJldHVybiBzdHIuc2xpY2UoMCwgLTEgKiBhbW91bnQpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHN0cjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIFJldHVybnMgZ2l2ZW4gc3RyaW5nLCBlc2NhcGVkIGZvciB1c2UgYXMgc3RyaW5nIGxpdGVyYWwgaW4gcmVndWxhciBleHByZXNzaW9ucy5cclxuICBwcml2YXRlIHN0YXRpYyBfZXNjYXBlUmVnRXhwKHN0cjogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBzdHI7Ly8gLnJlcGxhY2UoL1tcXC1cXFtcXF1cXC9cXHtcXH1cXChcXClcXCpcXCtcXD9cXC5cXFxcXFxeJFxcfF0vZywgXCJcXFxcJCZcIik7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIElzVmFsaWRFbWFpbChzdHI6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgZW1haWxSZWdleDogYW55ID0gL14oKFtePD4oKVxcW1xcXVxcXFwuLDs6XFxzQFwiXSsoXFwuW148PigpXFxbXFxdXFxcXC4sOzpcXHNAXCJdKykqKXwoXCIuK1wiKSlAKChcXFtbMC05XXsxLDN9XFwuWzAtOV17MSwzfVxcLlswLTldezEsM31cXC5bMC05XXsxLDN9XSl8KChbYS16QS1aXFwtMC05XStcXC4pK1thLXpBLVpdezIsfSkpJC87XHJcbiAgICByZXR1cm4gISFlbWFpbFJlZ2V4LnRlc3Qoc3RyKTtcclxuICB9XHJcblxyXG59XHJcbiJdfQ==
@@ -20,12 +20,18 @@ export * from './lib/components/date-planning/date-planning.component';
20
20
  export * from './lib/components/date-planning/date-planning.module';
21
21
  export * from './lib/components/simple-tags/simple-tags.component';
22
22
  export * from './lib/components/simple-tags/simple-tags.module';
23
+ export * from './lib/components/simple-tags-form/simple-tags-form.component';
24
+ export * from './lib/components/simple-tags-form/simple-tags-form.module';
23
25
  export * from './lib/components/files-upload/files-upload.component';
24
26
  export * from './lib/components/files-upload/files-upload.module';
25
27
  export * from './lib/components/activity-list/activity-list.component';
26
28
  export * from './lib/components/activity-list/activity-list.module';
29
+ export * from './lib/components/open-activity-list/component-activity-list.component';
30
+ export * from './lib/components/open-activity-list/component-activity-list.module';
31
+ export * from './lib/components/workflow-info-tiles/workflow-info-tiles.component';
32
+ export * from './lib/components/workflow-info-tiles/workflow-info-tiles.module';
27
33
  export * from './lib/service/shared.service';
28
34
  export * from './lib/enum/calendar-view.enum';
29
35
  export * from './lib/model/agenda-event-per-day.model';
30
36
  export * from './lib/model/agenda-event.model';
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZGNvbXBvbmVudHMvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLDRDQUE0QyxDQUFDO0FBQzNELGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsaURBQWlELENBQUM7QUFDaEUsY0FBYyxrRUFBa0UsQ0FBQztBQUNqRixjQUFjLCtEQUErRCxDQUFDO0FBQzlFLGNBQWMsNENBQTRDLENBQUM7QUFDM0QsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLDREQUE0RCxDQUFDO0FBQzNFLGNBQWMseURBQXlELENBQUM7QUFDeEUsY0FBYyx5REFBeUQsQ0FBQztBQUN4RSxjQUFjLHNEQUFzRCxDQUFDO0FBQ3JFLGNBQWMsZ0RBQWdELENBQUM7QUFDL0QsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLHdEQUF3RCxDQUFDO0FBQ3ZFLGNBQWMscURBQXFELENBQUM7QUFDcEUsY0FBYyxvREFBb0QsQ0FBQztBQUNuRSxjQUFjLGlEQUFpRCxDQUFDO0FBQ2hFLGNBQWMsc0RBQXNELENBQUM7QUFDckUsY0FBYyxtREFBbUQsQ0FBQztBQUNsRSxjQUFjLHdEQUF3RCxDQUFDO0FBQ3ZFLGNBQWMscURBQXFELENBQUM7QUFDcEUsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyxnQ0FBZ0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBzaGFyZWRjb21wb25lbnRzXHJcbiAqL1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9kb2NzaWduL2RvY3NpZ24uY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9kb2NzaWduL2RvY3NpZ24ubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9zdG9jay9zdG9jay5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3N0b2NrL3N0b2NrLm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvc3RvY2svbG9jYWxpemF0aW9uL3RyYW5zbGF0aW9uJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9zZW5kLW1ldGhvZC1kaWFsb2cvc2VuZC1tZXRob2QtZGlhbG9nLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvc2VuZC1tZXRob2QtZGlhbG9nL3NlbmQtbWV0aG9kLWRpYWxvZy5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2tleS1wYWQva2V5LXBhZC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2tleS1wYWQva2V5LXBhZC5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2xheW91dC1zd2l0Y2hlci9sYXlvdXQtc3dpdGNoZXIuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9sYXlvdXQtc3dpdGNoZXIvbGF5b3V0LXN3aXRjaGVyLm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbGluZWFyLWdhdWdlL2NvLWxpbmVhci1nYXVnZS5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2xpbmVhci1nYXVnZS9jby1saW5lYXItZ2F1Z2UubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9zdGF0dXNiYXIvc3RhdHVzYmFyLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvc3RhdHVzYmFyL3N0YXR1c2Jhci5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2RhdGUtcGxhbm5pbmcvZGF0ZS1wbGFubmluZy5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2RhdGUtcGxhbm5pbmcvZGF0ZS1wbGFubmluZy5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3NpbXBsZS10YWdzL3NpbXBsZS10YWdzLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvc2ltcGxlLXRhZ3Mvc2ltcGxlLXRhZ3MubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9maWxlcy11cGxvYWQvZmlsZXMtdXBsb2FkLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZmlsZXMtdXBsb2FkL2ZpbGVzLXVwbG9hZC5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2FjdGl2aXR5LWxpc3QvYWN0aXZpdHktbGlzdC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2FjdGl2aXR5LWxpc3QvYWN0aXZpdHktbGlzdC5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlL3NoYXJlZC5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvZW51bS9jYWxlbmRhci12aWV3LmVudW0nO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbC9hZ2VuZGEtZXZlbnQtcGVyLWRheS5tb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVsL2FnZW5kYS1ldmVudC5tb2RlbCc7XHJcbiJdfQ==
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZGNvbXBvbmVudHMvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLDRDQUE0QyxDQUFDO0FBQzNELGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsaURBQWlELENBQUM7QUFDaEUsY0FBYyxrRUFBa0UsQ0FBQztBQUNqRixjQUFjLCtEQUErRCxDQUFDO0FBQzlFLGNBQWMsNENBQTRDLENBQUM7QUFDM0QsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLDREQUE0RCxDQUFDO0FBQzNFLGNBQWMseURBQXlELENBQUM7QUFDeEUsY0FBYyx5REFBeUQsQ0FBQztBQUN4RSxjQUFjLHNEQUFzRCxDQUFDO0FBQ3JFLGNBQWMsZ0RBQWdELENBQUM7QUFDL0QsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLHdEQUF3RCxDQUFDO0FBQ3ZFLGNBQWMscURBQXFELENBQUM7QUFDcEUsY0FBYyxvREFBb0QsQ0FBQztBQUNuRSxjQUFjLGlEQUFpRCxDQUFDO0FBQ2hFLGNBQWMsOERBQThELENBQUM7QUFDN0UsY0FBYywyREFBMkQsQ0FBQztBQUMxRSxjQUFjLHNEQUFzRCxDQUFDO0FBQ3JFLGNBQWMsbURBQW1ELENBQUM7QUFDbEUsY0FBYyx3REFBd0QsQ0FBQztBQUN2RSxjQUFjLHFEQUFxRCxDQUFDO0FBQ3BFLGNBQWMsdUVBQXVFLENBQUM7QUFDdEYsY0FBYyxvRUFBb0UsQ0FBQztBQUNuRixjQUFjLG9FQUFvRSxDQUFDO0FBQ25GLGNBQWMsaUVBQWlFLENBQUM7QUFDaEYsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyxnQ0FBZ0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBzaGFyZWRjb21wb25lbnRzXHJcbiAqL1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9kb2NzaWduL2RvY3NpZ24uY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9kb2NzaWduL2RvY3NpZ24ubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9zdG9jay9zdG9jay5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3N0b2NrL3N0b2NrLm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvc3RvY2svbG9jYWxpemF0aW9uL3RyYW5zbGF0aW9uJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9zZW5kLW1ldGhvZC1kaWFsb2cvc2VuZC1tZXRob2QtZGlhbG9nLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvc2VuZC1tZXRob2QtZGlhbG9nL3NlbmQtbWV0aG9kLWRpYWxvZy5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2tleS1wYWQva2V5LXBhZC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2tleS1wYWQva2V5LXBhZC5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2xheW91dC1zd2l0Y2hlci9sYXlvdXQtc3dpdGNoZXIuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9sYXlvdXQtc3dpdGNoZXIvbGF5b3V0LXN3aXRjaGVyLm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbGluZWFyLWdhdWdlL2NvLWxpbmVhci1nYXVnZS5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2xpbmVhci1nYXVnZS9jby1saW5lYXItZ2F1Z2UubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9zdGF0dXNiYXIvc3RhdHVzYmFyLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvc3RhdHVzYmFyL3N0YXR1c2Jhci5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2RhdGUtcGxhbm5pbmcvZGF0ZS1wbGFubmluZy5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2RhdGUtcGxhbm5pbmcvZGF0ZS1wbGFubmluZy5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3NpbXBsZS10YWdzL3NpbXBsZS10YWdzLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvc2ltcGxlLXRhZ3Mvc2ltcGxlLXRhZ3MubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9zaW1wbGUtdGFncy1mb3JtL3NpbXBsZS10YWdzLWZvcm0uY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9zaW1wbGUtdGFncy1mb3JtL3NpbXBsZS10YWdzLWZvcm0ubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9maWxlcy11cGxvYWQvZmlsZXMtdXBsb2FkLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZmlsZXMtdXBsb2FkL2ZpbGVzLXVwbG9hZC5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2FjdGl2aXR5LWxpc3QvYWN0aXZpdHktbGlzdC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2FjdGl2aXR5LWxpc3QvYWN0aXZpdHktbGlzdC5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL29wZW4tYWN0aXZpdHktbGlzdC9jb21wb25lbnQtYWN0aXZpdHktbGlzdC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL29wZW4tYWN0aXZpdHktbGlzdC9jb21wb25lbnQtYWN0aXZpdHktbGlzdC5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3dvcmtmbG93LWluZm8tdGlsZXMvd29ya2Zsb3ctaW5mby10aWxlcy5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3dvcmtmbG93LWluZm8tdGlsZXMvd29ya2Zsb3ctaW5mby10aWxlcy5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlL3NoYXJlZC5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvZW51bS9jYWxlbmRhci12aWV3LmVudW0nO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbC9hZ2VuZGEtZXZlbnQtcGVyLWRheS5tb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVsL2FnZW5kYS1ldmVudC5tb2RlbCc7XHJcbiJdfQ==