@valtimo/dashboard 12.0.0 → 12.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (210) hide show
  1. package/esm2022/lib/components/widget-dashboard/widget-dashboard.component.mjs +7 -7
  2. package/esm2022/lib/components/widget-dashboard-content/widget-dashboard-content.component.mjs +57 -15
  3. package/esm2022/lib/constants/data-features.constants.mjs +2 -1
  4. package/esm2022/lib/data-sources/case-count/case-count.specification.mjs +4 -4
  5. package/esm2022/lib/data-sources/case-count/components/case-count-configuration/case-count-configuration.component.mjs +4 -4
  6. package/esm2022/lib/data-sources/case-count/models/case-count.model.mjs +2 -11
  7. package/esm2022/lib/data-sources/case-counts/case-counts.module.mjs +76 -0
  8. package/esm2022/lib/data-sources/case-counts/case-counts.specification.mjs +77 -0
  9. package/esm2022/lib/data-sources/case-counts/components/case-counts-configuration/case-counts-configuration.component.mjs +202 -0
  10. package/esm2022/lib/data-sources/case-counts/components/case-counts-configuration/index.mjs +17 -0
  11. package/esm2022/lib/data-sources/case-counts/components/index.mjs +17 -0
  12. package/esm2022/lib/data-sources/case-counts/index.mjs +20 -0
  13. package/esm2022/lib/data-sources/case-counts/models/case-counts.model.mjs +17 -0
  14. package/esm2022/lib/data-sources/case-counts/models/index.mjs +17 -0
  15. package/esm2022/lib/data-sources/case-group-by/case-group-by.module.mjs +61 -0
  16. package/esm2022/lib/data-sources/case-group-by/case-group-by.specification.mjs +89 -0
  17. package/esm2022/lib/data-sources/case-group-by/components/case-group-by-configuration/case-group-by-configuration.component.mjs +206 -0
  18. package/esm2022/lib/data-sources/case-group-by/components/case-group-by-configuration/index.mjs +17 -0
  19. package/esm2022/lib/{display-types/bar-chart → data-sources/case-group-by/components}/index.mjs +2 -5
  20. package/esm2022/lib/data-sources/case-group-by/index.mjs +20 -0
  21. package/esm2022/lib/data-sources/case-group-by/models/case-group-by.model.mjs +17 -0
  22. package/esm2022/lib/data-sources/case-group-by/models/index.mjs +17 -0
  23. package/esm2022/lib/data-sources/index.mjs +3 -2
  24. package/esm2022/lib/display-types/big-number/components/big-number-configuration/big-number-configuration.component.mjs +1 -1
  25. package/esm2022/lib/display-types/big-number/components/big-number-display/big-number-display.component.mjs +2 -2
  26. package/esm2022/lib/display-types/donut/components/donut-configuration/donut-configuration.component.mjs +89 -0
  27. package/esm2022/lib/display-types/donut/components/donut-configuration/index.mjs +17 -0
  28. package/esm2022/lib/display-types/donut/components/donut-display/donut-display.component.mjs +72 -0
  29. package/esm2022/lib/display-types/donut/components/donut-display/index.mjs +17 -0
  30. package/esm2022/lib/display-types/donut/components/index.mjs +18 -0
  31. package/esm2022/lib/display-types/donut/donut.module.mjs +68 -0
  32. package/esm2022/lib/display-types/donut/donut.specification.mjs +55 -0
  33. package/esm2022/lib/display-types/donut/index.mjs +20 -0
  34. package/esm2022/lib/display-types/donut/models/donut.model.mjs +17 -0
  35. package/esm2022/lib/display-types/donut/models/index.mjs +17 -0
  36. package/esm2022/lib/display-types/gauge/components/gauge-configuration/gauge-configuration.component.mjs +89 -0
  37. package/esm2022/lib/display-types/gauge/components/gauge-configuration/index.mjs +17 -0
  38. package/esm2022/lib/display-types/gauge/components/gauge-display/gauge-display.component.mjs +86 -0
  39. package/esm2022/lib/display-types/gauge/components/gauge-display/index.mjs +17 -0
  40. package/esm2022/lib/display-types/gauge/components/index.mjs +18 -0
  41. package/esm2022/lib/display-types/gauge/gauge.module.mjs +60 -0
  42. package/esm2022/lib/display-types/gauge/gauge.specification.mjs +55 -0
  43. package/esm2022/lib/display-types/gauge/index.mjs +20 -0
  44. package/esm2022/lib/display-types/gauge/models/gauge.model.mjs +17 -0
  45. package/esm2022/lib/display-types/gauge/models/index.mjs +17 -0
  46. package/esm2022/lib/display-types/index.mjs +3 -2
  47. package/esm2022/lib/display-types/meter/components/index.mjs +2 -1
  48. package/esm2022/lib/display-types/meter/components/meter-configuration/index.mjs +17 -0
  49. package/esm2022/lib/display-types/meter/components/meter-configuration/meter-configuration.component.mjs +83 -0
  50. package/esm2022/lib/display-types/meter/components/meter-display/meter-display.component.mjs +44 -5
  51. package/esm2022/lib/display-types/meter/index.mjs +2 -2
  52. package/esm2022/lib/display-types/meter/meter.module.mjs +38 -6
  53. package/esm2022/lib/display-types/meter/meter.specification.mjs +23 -3
  54. package/esm2022/lib/display-types/meter/models/meter.model.mjs +1 -1
  55. package/esm2022/lib/models/configuration.model.mjs +1 -1
  56. package/esm2022/lib/models/data-source.model.mjs +11 -2
  57. package/esm2022/lib/services/widget-layout.service.mjs +28 -82
  58. package/fesm2022/valtimo-dashboard.mjs +1783 -489
  59. package/fesm2022/valtimo-dashboard.mjs.map +1 -1
  60. package/lib/components/widget-dashboard/widget-dashboard.component.d.ts +1 -0
  61. package/lib/components/widget-dashboard/widget-dashboard.component.d.ts.map +1 -1
  62. package/lib/components/widget-dashboard-content/widget-dashboard-content.component.d.ts +9 -3
  63. package/lib/components/widget-dashboard-content/widget-dashboard-content.component.d.ts.map +1 -1
  64. package/lib/constants/data-features.constants.d.ts +1 -0
  65. package/lib/constants/data-features.constants.d.ts.map +1 -1
  66. package/lib/data-sources/case-count/components/case-count-configuration/case-count-configuration.component.d.ts +1 -1
  67. package/lib/data-sources/case-count/components/case-count-configuration/case-count-configuration.component.d.ts.map +1 -1
  68. package/lib/data-sources/case-count/models/case-count.model.d.ts +3 -15
  69. package/lib/data-sources/case-count/models/case-count.model.d.ts.map +1 -1
  70. package/lib/data-sources/case-counts/case-counts.module.d.ts +13 -0
  71. package/lib/data-sources/case-counts/case-counts.module.d.ts.map +1 -0
  72. package/lib/data-sources/case-counts/case-counts.specification.d.ts +3 -0
  73. package/lib/data-sources/case-counts/case-counts.specification.d.ts.map +1 -0
  74. package/lib/data-sources/case-counts/components/case-counts-configuration/case-counts-configuration.component.d.ts +52 -0
  75. package/lib/data-sources/case-counts/components/case-counts-configuration/case-counts-configuration.component.d.ts.map +1 -0
  76. package/lib/data-sources/case-counts/components/case-counts-configuration/index.d.ts +2 -0
  77. package/lib/data-sources/{test/components/test-configuration → case-counts/components/case-counts-configuration}/index.d.ts.map +1 -1
  78. package/lib/data-sources/case-counts/components/index.d.ts +2 -0
  79. package/lib/data-sources/case-counts/components/index.d.ts.map +1 -0
  80. package/lib/data-sources/case-counts/index.d.ts +5 -0
  81. package/lib/data-sources/case-counts/index.d.ts.map +1 -0
  82. package/lib/data-sources/case-counts/models/case-counts.model.d.ts +16 -0
  83. package/lib/data-sources/case-counts/models/case-counts.model.d.ts.map +1 -0
  84. package/lib/data-sources/case-counts/models/index.d.ts +2 -0
  85. package/lib/data-sources/{test/components → case-counts/models}/index.d.ts.map +1 -1
  86. package/lib/data-sources/case-group-by/case-group-by.module.d.ts +13 -0
  87. package/lib/data-sources/case-group-by/case-group-by.module.d.ts.map +1 -0
  88. package/lib/data-sources/case-group-by/case-group-by.specification.d.ts +3 -0
  89. package/lib/data-sources/case-group-by/case-group-by.specification.d.ts.map +1 -0
  90. package/lib/data-sources/case-group-by/components/case-group-by-configuration/case-group-by-configuration.component.d.ts +54 -0
  91. package/lib/data-sources/case-group-by/components/case-group-by-configuration/case-group-by-configuration.component.d.ts.map +1 -0
  92. package/lib/data-sources/case-group-by/components/case-group-by-configuration/index.d.ts +2 -0
  93. package/lib/data-sources/case-group-by/components/case-group-by-configuration/index.d.ts.map +1 -0
  94. package/lib/data-sources/case-group-by/components/index.d.ts +2 -0
  95. package/lib/data-sources/case-group-by/components/index.d.ts.map +1 -0
  96. package/lib/data-sources/case-group-by/index.d.ts +5 -0
  97. package/lib/data-sources/case-group-by/index.d.ts.map +1 -0
  98. package/lib/data-sources/case-group-by/models/case-group-by.model.d.ts +19 -0
  99. package/lib/data-sources/case-group-by/models/case-group-by.model.d.ts.map +1 -0
  100. package/lib/data-sources/case-group-by/models/index.d.ts +2 -0
  101. package/lib/data-sources/{test → case-group-by}/models/index.d.ts.map +1 -1
  102. package/lib/data-sources/index.d.ts +2 -1
  103. package/lib/data-sources/index.d.ts.map +1 -1
  104. package/lib/display-types/big-number/components/big-number-configuration/big-number-configuration.component.d.ts +10 -10
  105. package/lib/display-types/big-number/components/big-number-configuration/big-number-configuration.component.d.ts.map +1 -1
  106. package/lib/display-types/donut/components/donut-configuration/donut-configuration.component.d.ts +29 -0
  107. package/lib/display-types/donut/components/donut-configuration/donut-configuration.component.d.ts.map +1 -0
  108. package/lib/display-types/donut/components/donut-configuration/index.d.ts +2 -0
  109. package/lib/display-types/{bar-chart/components/bar-chart-display → donut/components/donut-configuration}/index.d.ts.map +1 -1
  110. package/lib/display-types/donut/components/donut-display/donut-display.component.d.ts +19 -0
  111. package/lib/display-types/donut/components/donut-display/donut-display.component.d.ts.map +1 -0
  112. package/lib/display-types/donut/components/donut-display/index.d.ts +2 -0
  113. package/lib/display-types/donut/components/donut-display/index.d.ts.map +1 -0
  114. package/lib/display-types/donut/components/index.d.ts +3 -0
  115. package/lib/display-types/donut/components/index.d.ts.map +1 -0
  116. package/lib/display-types/donut/donut.module.d.ts +16 -0
  117. package/lib/display-types/donut/donut.module.d.ts.map +1 -0
  118. package/lib/display-types/donut/donut.specification.d.ts +3 -0
  119. package/lib/display-types/donut/donut.specification.d.ts.map +1 -0
  120. package/lib/display-types/donut/index.d.ts +5 -0
  121. package/lib/display-types/donut/index.d.ts.map +1 -0
  122. package/lib/display-types/donut/models/donut.model.d.ts +14 -0
  123. package/lib/display-types/donut/models/donut.model.d.ts.map +1 -0
  124. package/lib/display-types/donut/models/index.d.ts +2 -0
  125. package/lib/display-types/{bar-chart → donut}/models/index.d.ts.map +1 -1
  126. package/lib/display-types/gauge/components/gauge-configuration/gauge-configuration.component.d.ts +29 -0
  127. package/lib/display-types/gauge/components/gauge-configuration/gauge-configuration.component.d.ts.map +1 -0
  128. package/lib/display-types/gauge/components/gauge-configuration/index.d.ts +2 -0
  129. package/lib/display-types/gauge/components/gauge-configuration/index.d.ts.map +1 -0
  130. package/lib/display-types/gauge/components/gauge-display/gauge-display.component.d.ts +24 -0
  131. package/lib/display-types/gauge/components/gauge-display/gauge-display.component.d.ts.map +1 -0
  132. package/lib/display-types/gauge/components/gauge-display/index.d.ts +2 -0
  133. package/lib/display-types/gauge/components/gauge-display/index.d.ts.map +1 -0
  134. package/lib/display-types/gauge/components/index.d.ts +3 -0
  135. package/lib/display-types/gauge/components/index.d.ts.map +1 -0
  136. package/lib/display-types/gauge/gauge.module.d.ts +14 -0
  137. package/lib/display-types/gauge/gauge.module.d.ts.map +1 -0
  138. package/lib/display-types/gauge/gauge.specification.d.ts +3 -0
  139. package/lib/display-types/gauge/gauge.specification.d.ts.map +1 -0
  140. package/lib/display-types/gauge/index.d.ts +5 -0
  141. package/lib/display-types/gauge/index.d.ts.map +1 -0
  142. package/lib/display-types/gauge/models/gauge.model.d.ts +11 -0
  143. package/lib/display-types/gauge/models/gauge.model.d.ts.map +1 -0
  144. package/lib/display-types/gauge/models/index.d.ts +2 -0
  145. package/lib/display-types/{bar-chart/components → gauge/models}/index.d.ts.map +1 -1
  146. package/lib/display-types/index.d.ts +2 -1
  147. package/lib/display-types/index.d.ts.map +1 -1
  148. package/lib/display-types/meter/components/index.d.ts +1 -0
  149. package/lib/display-types/meter/components/index.d.ts.map +1 -1
  150. package/lib/display-types/meter/components/meter-configuration/index.d.ts +2 -0
  151. package/lib/display-types/meter/components/meter-configuration/index.d.ts.map +1 -0
  152. package/lib/display-types/meter/components/meter-configuration/meter-configuration.component.d.ts +26 -0
  153. package/lib/display-types/meter/components/meter-configuration/meter-configuration.component.d.ts.map +1 -0
  154. package/lib/display-types/meter/components/meter-display/meter-display.component.d.ts +11 -3
  155. package/lib/display-types/meter/components/meter-display/meter-display.component.d.ts.map +1 -1
  156. package/lib/display-types/meter/index.d.ts +1 -1
  157. package/lib/display-types/meter/index.d.ts.map +1 -1
  158. package/lib/display-types/meter/meter.module.d.ts +9 -2
  159. package/lib/display-types/meter/meter.module.d.ts.map +1 -1
  160. package/lib/display-types/meter/meter.specification.d.ts.map +1 -1
  161. package/lib/display-types/meter/models/meter.model.d.ts +7 -2
  162. package/lib/display-types/meter/models/meter.model.d.ts.map +1 -1
  163. package/lib/models/configuration.model.d.ts +2 -2
  164. package/lib/models/configuration.model.d.ts.map +1 -1
  165. package/lib/models/data-source.model.d.ts +14 -1
  166. package/lib/models/data-source.model.d.ts.map +1 -1
  167. package/lib/services/widget-layout.service.d.ts +13 -18
  168. package/lib/services/widget-layout.service.d.ts.map +1 -1
  169. package/package.json +7 -3
  170. package/esm2022/lib/data-sources/test/components/index.mjs +0 -17
  171. package/esm2022/lib/data-sources/test/components/test-configuration/index.mjs +0 -17
  172. package/esm2022/lib/data-sources/test/components/test-configuration/test-configuration.component.mjs +0 -80
  173. package/esm2022/lib/data-sources/test/index.mjs +0 -20
  174. package/esm2022/lib/data-sources/test/models/index.mjs +0 -17
  175. package/esm2022/lib/data-sources/test/models/test.model.mjs +0 -17
  176. package/esm2022/lib/data-sources/test/test.module.mjs +0 -39
  177. package/esm2022/lib/data-sources/test/test.specification.mjs +0 -44
  178. package/esm2022/lib/display-types/bar-chart/bar-chart.module.mjs +0 -36
  179. package/esm2022/lib/display-types/bar-chart/bar-chart.specification.mjs +0 -35
  180. package/esm2022/lib/display-types/bar-chart/components/bar-chart-display/bar-chart-display.component.mjs +0 -32
  181. package/esm2022/lib/display-types/bar-chart/components/bar-chart-display/index.mjs +0 -17
  182. package/esm2022/lib/display-types/bar-chart/components/index.mjs +0 -17
  183. package/esm2022/lib/display-types/bar-chart/models/bar-chart.model.mjs +0 -17
  184. package/esm2022/lib/display-types/bar-chart/models/index.mjs +0 -17
  185. package/lib/data-sources/test/components/index.d.ts +0 -2
  186. package/lib/data-sources/test/components/test-configuration/index.d.ts +0 -2
  187. package/lib/data-sources/test/components/test-configuration/test-configuration.component.d.ts +0 -26
  188. package/lib/data-sources/test/components/test-configuration/test-configuration.component.d.ts.map +0 -1
  189. package/lib/data-sources/test/index.d.ts +0 -5
  190. package/lib/data-sources/test/index.d.ts.map +0 -1
  191. package/lib/data-sources/test/models/index.d.ts +0 -2
  192. package/lib/data-sources/test/models/test.model.d.ts +0 -6
  193. package/lib/data-sources/test/models/test.model.d.ts.map +0 -1
  194. package/lib/data-sources/test/test.module.d.ts +0 -12
  195. package/lib/data-sources/test/test.module.d.ts.map +0 -1
  196. package/lib/data-sources/test/test.specification.d.ts +0 -3
  197. package/lib/data-sources/test/test.specification.d.ts.map +0 -1
  198. package/lib/display-types/bar-chart/bar-chart.module.d.ts +0 -9
  199. package/lib/display-types/bar-chart/bar-chart.module.d.ts.map +0 -1
  200. package/lib/display-types/bar-chart/bar-chart.specification.d.ts +0 -3
  201. package/lib/display-types/bar-chart/bar-chart.specification.d.ts.map +0 -1
  202. package/lib/display-types/bar-chart/components/bar-chart-display/bar-chart-display.component.d.ts +0 -11
  203. package/lib/display-types/bar-chart/components/bar-chart-display/bar-chart-display.component.d.ts.map +0 -1
  204. package/lib/display-types/bar-chart/components/bar-chart-display/index.d.ts +0 -2
  205. package/lib/display-types/bar-chart/components/index.d.ts +0 -2
  206. package/lib/display-types/bar-chart/index.d.ts +0 -5
  207. package/lib/display-types/bar-chart/index.d.ts.map +0 -1
  208. package/lib/display-types/bar-chart/models/bar-chart.model.d.ts +0 -8
  209. package/lib/display-types/bar-chart/models/bar-chart.model.d.ts.map +0 -1
  210. package/lib/display-types/bar-chart/models/index.d.ts +0 -2
@@ -13,14 +13,5 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- var Operator;
17
- (function (Operator) {
18
- Operator["NOT_EQUAL_TO"] = "!=";
19
- Operator["EQUAL_TO"] = "==";
20
- Operator["GREATER_THAN"] = ">";
21
- Operator["GREATER_THAN_OR_EQUAL_TO"] = ">=";
22
- Operator["LESS_THAN"] = "<";
23
- Operator["LESS_THAN_OR_EQUAL_TO"] = "<=";
24
- })(Operator || (Operator = {}));
25
- export { Operator };
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS1jb3VudC5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vZGFzaGJvYXJkL3NyYy9saWIvZGF0YS1zb3VyY2VzL2Nhc2UtY291bnQvbW9kZWxzL2Nhc2UtY291bnQubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFhSCxJQUFLLFFBT0o7QUFQRCxXQUFLLFFBQVE7SUFDWCwrQkFBbUIsQ0FBQTtJQUNuQiwyQkFBZSxDQUFBO0lBQ2YsOEJBQWtCLENBQUE7SUFDbEIsMkNBQStCLENBQUE7SUFDL0IsMkJBQWUsQ0FBQTtJQUNmLHdDQUE0QixDQUFBO0FBQzlCLENBQUMsRUFQSSxRQUFRLEtBQVIsUUFBUSxRQU9aO0FBRUQsT0FBTyxFQUF5QyxRQUFRLEVBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmludGVyZmFjZSBRdWVyeUNvbmRpdGlvbiB7XG4gIHF1ZXJ5UGF0aDogc3RyaW5nO1xuICBxdWVyeU9wZXJhdG9yOiBzdHJpbmc7XG4gIHF1ZXJ5VmFsdWU6IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIENhc2VDb3VudENvbmZpZ3VyYXRpb24ge1xuICBkb2N1bWVudERlZmluaXRpb246IHN0cmluZztcbiAgcXVlcnlDb25kaXRpb25zOiBBcnJheTxRdWVyeUNvbmRpdGlvbj47XG59XG5cbmVudW0gT3BlcmF0b3Ige1xuICBOT1RfRVFVQUxfVE8gPSAnIT0nLFxuICBFUVVBTF9UTyA9ICc9PScsXG4gIEdSRUFURVJfVEhBTiA9ICc+JyxcbiAgR1JFQVRFUl9USEFOX09SX0VRVUFMX1RPID0gJz49JyxcbiAgTEVTU19USEFOID0gJzwnLFxuICBMRVNTX1RIQU5fT1JfRVFVQUxfVE8gPSAnPD0nLFxufVxuXG5leHBvcnQge0Nhc2VDb3VudENvbmZpZ3VyYXRpb24sIFF1ZXJ5Q29uZGl0aW9uLCBPcGVyYXRvcn07XG4iXX0=
16
+ export {};
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS1jb3VudC5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vZGFzaGJvYXJkL3NyYy9saWIvZGF0YS1zb3VyY2VzL2Nhc2UtY291bnQvbW9kZWxzL2Nhc2UtY291bnQubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0ciLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQge1F1ZXJ5Q29uZGl0aW9ufSBmcm9tICcuLi8uLi8uLi9tb2RlbHMnO1xuXG5pbnRlcmZhY2UgQ2FzZUNvdW50Q29uZmlndXJhdGlvbiB7XG4gIGRvY3VtZW50RGVmaW5pdGlvbjogc3RyaW5nO1xuICBxdWVyeUNvbmRpdGlvbnM6IFF1ZXJ5Q29uZGl0aW9uW107XG59XG5cbmV4cG9ydCB7Q2FzZUNvdW50Q29uZmlndXJhdGlvbn07XG4iXX0=
@@ -0,0 +1,76 @@
1
+ /*
2
+ * Copyright 2015-2024 Ritense BV, the Netherlands.
3
+ *
4
+ * Licensed under EUPL, Version 1.2 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" basis,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ import { NgModule } from '@angular/core';
17
+ import { CommonModule } from '@angular/common';
18
+ import { DATA_SOURCE_TOKEN } from '../../constants';
19
+ import { CaseCountsConfigurationComponent } from './components';
20
+ import { ReactiveFormsModule } from '@angular/forms';
21
+ import { WidgetTranslatePipeModule } from '../../pipes';
22
+ import { ButtonModule, DropdownModule, IconModule, LayerModule, TilesModule, } from 'carbon-components-angular';
23
+ import { CarbonMultiInputModule, InputModule } from '@valtimo/components';
24
+ import { caseCountsDataSourceSpecification } from './case-counts.specification';
25
+ import * as i0 from "@angular/core";
26
+ export class CaseCountsDataSourceModule {
27
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: CaseCountsDataSourceModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
28
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.3", ngImport: i0, type: CaseCountsDataSourceModule, declarations: [CaseCountsConfigurationComponent], imports: [CommonModule,
29
+ ReactiveFormsModule,
30
+ WidgetTranslatePipeModule,
31
+ InputModule,
32
+ DropdownModule,
33
+ CarbonMultiInputModule,
34
+ InputModule,
35
+ ButtonModule,
36
+ TilesModule,
37
+ LayerModule,
38
+ IconModule], exports: [CaseCountsConfigurationComponent] }); }
39
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: CaseCountsDataSourceModule, providers: [
40
+ { provide: DATA_SOURCE_TOKEN, useValue: caseCountsDataSourceSpecification, multi: true },
41
+ ], imports: [CommonModule,
42
+ ReactiveFormsModule,
43
+ WidgetTranslatePipeModule,
44
+ InputModule,
45
+ DropdownModule,
46
+ CarbonMultiInputModule,
47
+ InputModule,
48
+ ButtonModule,
49
+ TilesModule,
50
+ LayerModule,
51
+ IconModule] }); }
52
+ }
53
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: CaseCountsDataSourceModule, decorators: [{
54
+ type: NgModule,
55
+ args: [{
56
+ declarations: [CaseCountsConfigurationComponent],
57
+ imports: [
58
+ CommonModule,
59
+ ReactiveFormsModule,
60
+ WidgetTranslatePipeModule,
61
+ InputModule,
62
+ DropdownModule,
63
+ CarbonMultiInputModule,
64
+ InputModule,
65
+ ButtonModule,
66
+ TilesModule,
67
+ LayerModule,
68
+ IconModule,
69
+ ],
70
+ exports: [CaseCountsConfigurationComponent],
71
+ providers: [
72
+ { provide: DATA_SOURCE_TOKEN, useValue: caseCountsDataSourceSpecification, multi: true },
73
+ ],
74
+ }]
75
+ }] });
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS1jb3VudHMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9kYXNoYm9hcmQvc3JjL2xpYi9kYXRhLXNvdXJjZXMvY2FzZS1jb3VudHMvY2FzZS1jb3VudHMubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDbEQsT0FBTyxFQUFDLGdDQUFnQyxFQUFDLE1BQU0sY0FBYyxDQUFDO0FBQzlELE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ25ELE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLGFBQWEsQ0FBQztBQUN0RCxPQUFPLEVBQ0wsWUFBWSxFQUNaLGNBQWMsRUFDZCxVQUFVLEVBQ1YsV0FBVyxFQUNYLFdBQVcsR0FDWixNQUFNLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFBQyxzQkFBc0IsRUFBRSxXQUFXLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RSxPQUFPLEVBQUMsaUNBQWlDLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQzs7QUFzQjlFLE1BQU0sT0FBTywwQkFBMEI7OEdBQTFCLDBCQUEwQjsrR0FBMUIsMEJBQTBCLGlCQW5CdEIsZ0NBQWdDLGFBRTdDLFlBQVk7WUFDWixtQkFBbUI7WUFDbkIseUJBQXlCO1lBQ3pCLFdBQVc7WUFDWCxjQUFjO1lBQ2Qsc0JBQXNCO1lBQ3RCLFdBQVc7WUFDWCxZQUFZO1lBQ1osV0FBVztZQUNYLFdBQVc7WUFDWCxVQUFVLGFBRUYsZ0NBQWdDOytHQUsvQiwwQkFBMEIsYUFKMUI7WUFDVCxFQUFDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxRQUFRLEVBQUUsaUNBQWlDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBQztTQUN2RixZQWZDLFlBQVk7WUFDWixtQkFBbUI7WUFDbkIseUJBQXlCO1lBQ3pCLFdBQVc7WUFDWCxjQUFjO1lBQ2Qsc0JBQXNCO1lBQ3RCLFdBQVc7WUFDWCxZQUFZO1lBQ1osV0FBVztZQUNYLFdBQVc7WUFDWCxVQUFVOzsyRkFPRCwwQkFBMEI7a0JBcEJ0QyxRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLGdDQUFnQyxDQUFDO29CQUNoRCxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixtQkFBbUI7d0JBQ25CLHlCQUF5Qjt3QkFDekIsV0FBVzt3QkFDWCxjQUFjO3dCQUNkLHNCQUFzQjt3QkFDdEIsV0FBVzt3QkFDWCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsV0FBVzt3QkFDWCxVQUFVO3FCQUNYO29CQUNELE9BQU8sRUFBRSxDQUFDLGdDQUFnQyxDQUFDO29CQUMzQyxTQUFTLEVBQUU7d0JBQ1QsRUFBQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLGlDQUFpQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUM7cUJBQ3ZGO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7REFUQV9TT1VSQ0VfVE9LRU59IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQge0Nhc2VDb3VudHNDb25maWd1cmF0aW9uQ29tcG9uZW50fSBmcm9tICcuL2NvbXBvbmVudHMnO1xuaW1wb3J0IHtSZWFjdGl2ZUZvcm1zTW9kdWxlfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1dpZGdldFRyYW5zbGF0ZVBpcGVNb2R1bGV9IGZyb20gJy4uLy4uL3BpcGVzJztcbmltcG9ydCB7XG4gIEJ1dHRvbk1vZHVsZSxcbiAgRHJvcGRvd25Nb2R1bGUsXG4gIEljb25Nb2R1bGUsXG4gIExheWVyTW9kdWxlLFxuICBUaWxlc01vZHVsZSxcbn0gZnJvbSAnY2FyYm9uLWNvbXBvbmVudHMtYW5ndWxhcic7XG5pbXBvcnQge0NhcmJvbk11bHRpSW5wdXRNb2R1bGUsIElucHV0TW9kdWxlfSBmcm9tICdAdmFsdGltby9jb21wb25lbnRzJztcbmltcG9ydCB7Y2FzZUNvdW50c0RhdGFTb3VyY2VTcGVjaWZpY2F0aW9ufSBmcm9tICcuL2Nhc2UtY291bnRzLnNwZWNpZmljYXRpb24nO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtDYXNlQ291bnRzQ29uZmlndXJhdGlvbkNvbXBvbmVudF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBXaWRnZXRUcmFuc2xhdGVQaXBlTW9kdWxlLFxuICAgIElucHV0TW9kdWxlLFxuICAgIERyb3Bkb3duTW9kdWxlLFxuICAgIENhcmJvbk11bHRpSW5wdXRNb2R1bGUsXG4gICAgSW5wdXRNb2R1bGUsXG4gICAgQnV0dG9uTW9kdWxlLFxuICAgIFRpbGVzTW9kdWxlLFxuICAgIExheWVyTW9kdWxlLFxuICAgIEljb25Nb2R1bGUsXG4gIF0sXG4gIGV4cG9ydHM6IFtDYXNlQ291bnRzQ29uZmlndXJhdGlvbkNvbXBvbmVudF0sXG4gIHByb3ZpZGVyczogW1xuICAgIHtwcm92aWRlOiBEQVRBX1NPVVJDRV9UT0tFTiwgdXNlVmFsdWU6IGNhc2VDb3VudHNEYXRhU291cmNlU3BlY2lmaWNhdGlvbiwgbXVsdGk6IHRydWV9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBDYXNlQ291bnRzRGF0YVNvdXJjZU1vZHVsZSB7fVxuIl19
@@ -0,0 +1,77 @@
1
+ /*
2
+ * Copyright 2015-2024 Ritense BV, the Netherlands.
3
+ *
4
+ * Licensed under EUPL, Version 1.2 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" basis,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ import { CaseCountsConfigurationComponent } from './components';
17
+ export const caseCountsDataSourceSpecification = {
18
+ dataSourceKey: 'case-counts',
19
+ configurationComponent: CaseCountsConfigurationComponent,
20
+ translations: {
21
+ de: {
22
+ title: 'Mehrere Fallanzahllen',
23
+ documentDefinition: 'Falltyp (erforderlich)',
24
+ documentDefinitionHelperText: 'Der Falltyp, für den die Anzahllen abgeruft wirden',
25
+ '!=': 'Nicht gleichzusetzen mit',
26
+ '==': 'Gleich',
27
+ '>': 'Größer als',
28
+ '>=': 'Größer als oder gleich wie',
29
+ '<': 'Weniger als',
30
+ '<=': 'Gleich oder kleiner als',
31
+ path: 'Pfad',
32
+ operator: 'Operator',
33
+ value: 'Wert',
34
+ counts: 'Anzahllen',
35
+ countsHelperText: "Geben Sie eine oder mehrere Bedingungen für mindestens zwei Anzahllen an. Zum Beispiel: 'case:createdBy', 'Gleich', 'test@test.com'. Zum Vergleichen mit leeren Werten kann als Wert '${null}' eingegeben werden. Zum Vergleichen mit dem aktuellen Datum kann als Wert '${localDateTimeNow}' eingegeben werden. Damit wird beispielsweise auch folgende Logik unterstützt: '${localDateTimeNow.minusWeeks(2)}'.",
36
+ addCondition: 'Bedingung hinzufügen',
37
+ countTitle: 'Anzahltitel',
38
+ },
39
+ en: {
40
+ title: 'Multiple case counts',
41
+ documentDefinition: 'Case type (required)',
42
+ documentDefinitionHelperText: 'The case type for which the counts are retrieved',
43
+ '!=': 'Not equal to',
44
+ '==': 'Equal to',
45
+ '>': 'Greater than',
46
+ '>=': 'Greater than or equal to',
47
+ '<': 'Less than',
48
+ '<=': 'Less than or equal to',
49
+ path: 'Path (required)',
50
+ operator: 'Operator',
51
+ value: 'Value',
52
+ counts: 'Counts',
53
+ countsHelperText: "Specify one or more conditions for each count that should be displayed. For example: 'case:createdBy', 'Equal to', 'test@test.com'. Configure at least two counts and at least one condition per count.",
54
+ addCondition: 'Add condition',
55
+ countTitle: 'Count title',
56
+ },
57
+ nl: {
58
+ title: 'Meerdere dossieraantallen',
59
+ documentDefinition: 'Dossiertype (vereist)',
60
+ documentDefinitionHelperText: 'Het dossiertype waarvoor de aantallen worden opgehaald',
61
+ '!=': 'Niet gelijk aan',
62
+ '==': 'Gelijk aan',
63
+ '>': 'Groter dan',
64
+ '>=': 'Groter dan of gelijk aan',
65
+ '<': 'Minder dan',
66
+ '<=': 'Minder dan of gelijk aan',
67
+ path: 'Pad',
68
+ operator: 'Operator',
69
+ value: 'Waarde',
70
+ counts: 'Aantallen',
71
+ countsHelperText: "Geef een of meer condities op voor een minimum van twee aantallen. Bijvoorbeeld: 'case:createdBy', 'Gelijk aan', 'test@test.com'. Voor het vergelijken met lege waardes kan '${null}' ingevuld worden als waarde. Voor het vergelijken met de huidige datum kan '${localDateTimeNow}' ingevuld worden als waarde. Deze ondersteunt ook bijvoorbeeld de volgende logica: '${localDateTimeNow.minusWeeks(2)}'.",
72
+ addCondition: 'Conditie toevoegen',
73
+ countTitle: 'Aantaltitel',
74
+ },
75
+ },
76
+ };
77
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS1jb3VudHMuc3BlY2lmaWNhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vZGFzaGJvYXJkL3NyYy9saWIvZGF0YS1zb3VyY2VzL2Nhc2UtY291bnRzL2Nhc2UtY291bnRzLnNwZWNpZmljYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFHSCxPQUFPLEVBQUMsZ0NBQWdDLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFFOUQsTUFBTSxDQUFDLE1BQU0saUNBQWlDLEdBQTRCO0lBQ3hFLGFBQWEsRUFBRSxhQUFhO0lBQzVCLHNCQUFzQixFQUFFLGdDQUFnQztJQUN4RCxZQUFZLEVBQUU7UUFDWixFQUFFLEVBQUU7WUFDRixLQUFLLEVBQUUsdUJBQXVCO1lBQzlCLGtCQUFrQixFQUFFLHdCQUF3QjtZQUM1Qyw0QkFBNEIsRUFBRSxvREFBb0Q7WUFDbEYsSUFBSSxFQUFFLDBCQUEwQjtZQUNoQyxJQUFJLEVBQUUsUUFBUTtZQUNkLEdBQUcsRUFBRSxZQUFZO1lBQ2pCLElBQUksRUFBRSw0QkFBNEI7WUFDbEMsR0FBRyxFQUFFLGFBQWE7WUFDbEIsSUFBSSxFQUFFLHlCQUF5QjtZQUMvQixJQUFJLEVBQUUsTUFBTTtZQUNaLFFBQVEsRUFBRSxVQUFVO1lBQ3BCLEtBQUssRUFBRSxNQUFNO1lBQ2IsTUFBTSxFQUFFLFdBQVc7WUFDbkIsZ0JBQWdCLEVBQ2Qsa1pBQWtaO1lBQ3BaLFlBQVksRUFBRSxzQkFBc0I7WUFDcEMsVUFBVSxFQUFFLGFBQWE7U0FDMUI7UUFDRCxFQUFFLEVBQUU7WUFDRixLQUFLLEVBQUUsc0JBQXNCO1lBQzdCLGtCQUFrQixFQUFFLHNCQUFzQjtZQUMxQyw0QkFBNEIsRUFBRSxrREFBa0Q7WUFDaEYsSUFBSSxFQUFFLGNBQWM7WUFDcEIsSUFBSSxFQUFFLFVBQVU7WUFDaEIsR0FBRyxFQUFFLGNBQWM7WUFDbkIsSUFBSSxFQUFFLDBCQUEwQjtZQUNoQyxHQUFHLEVBQUUsV0FBVztZQUNoQixJQUFJLEVBQUUsdUJBQXVCO1lBQzdCLElBQUksRUFBRSxpQkFBaUI7WUFDdkIsUUFBUSxFQUFFLFVBQVU7WUFDcEIsS0FBSyxFQUFFLE9BQU87WUFDZCxNQUFNLEVBQUUsUUFBUTtZQUNoQixnQkFBZ0IsRUFDZCx5TUFBeU07WUFDM00sWUFBWSxFQUFFLGVBQWU7WUFDN0IsVUFBVSxFQUFFLGFBQWE7U0FDMUI7UUFDRCxFQUFFLEVBQUU7WUFDRixLQUFLLEVBQUUsMkJBQTJCO1lBQ2xDLGtCQUFrQixFQUFFLHVCQUF1QjtZQUMzQyw0QkFBNEIsRUFBRSx3REFBd0Q7WUFDdEYsSUFBSSxFQUFFLGlCQUFpQjtZQUN2QixJQUFJLEVBQUUsWUFBWTtZQUNsQixHQUFHLEVBQUUsWUFBWTtZQUNqQixJQUFJLEVBQUUsMEJBQTBCO1lBQ2hDLEdBQUcsRUFBRSxZQUFZO1lBQ2pCLElBQUksRUFBRSwwQkFBMEI7WUFDaEMsSUFBSSxFQUFFLEtBQUs7WUFDWCxRQUFRLEVBQUUsVUFBVTtZQUNwQixLQUFLLEVBQUUsUUFBUTtZQUNmLE1BQU0sRUFBRSxXQUFXO1lBQ25CLGdCQUFnQixFQUNkLDhZQUE4WTtZQUNoWixZQUFZLEVBQUUsb0JBQW9CO1lBQ2xDLFVBQVUsRUFBRSxhQUFhO1NBQzFCO0tBQ0Y7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtEYXRhU291cmNlU3BlY2lmaWNhdGlvbn0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7Q2FzZUNvdW50c0NvbmZpZ3VyYXRpb25Db21wb25lbnR9IGZyb20gJy4vY29tcG9uZW50cyc7XG5cbmV4cG9ydCBjb25zdCBjYXNlQ291bnRzRGF0YVNvdXJjZVNwZWNpZmljYXRpb246IERhdGFTb3VyY2VTcGVjaWZpY2F0aW9uID0ge1xuICBkYXRhU291cmNlS2V5OiAnY2FzZS1jb3VudHMnLFxuICBjb25maWd1cmF0aW9uQ29tcG9uZW50OiBDYXNlQ291bnRzQ29uZmlndXJhdGlvbkNvbXBvbmVudCxcbiAgdHJhbnNsYXRpb25zOiB7XG4gICAgZGU6IHtcbiAgICAgIHRpdGxlOiAnTWVocmVyZSBGYWxsYW56YWhsbGVuJyxcbiAgICAgIGRvY3VtZW50RGVmaW5pdGlvbjogJ0ZhbGx0eXAgKGVyZm9yZGVybGljaCknLFxuICAgICAgZG9jdW1lbnREZWZpbml0aW9uSGVscGVyVGV4dDogJ0RlciBGYWxsdHlwLCBmw7xyIGRlbiBkaWUgQW56YWhsbGVuIGFiZ2VydWZ0IHdpcmRlbicsXG4gICAgICAnIT0nOiAnTmljaHQgZ2xlaWNoenVzZXR6ZW4gbWl0JyxcbiAgICAgICc9PSc6ICdHbGVpY2gnLFxuICAgICAgJz4nOiAnR3LDtsOfZXIgYWxzJyxcbiAgICAgICc+PSc6ICdHcsO2w59lciBhbHMgb2RlciBnbGVpY2ggd2llJyxcbiAgICAgICc8JzogJ1dlbmlnZXIgYWxzJyxcbiAgICAgICc8PSc6ICdHbGVpY2ggb2RlciBrbGVpbmVyIGFscycsXG4gICAgICBwYXRoOiAnUGZhZCcsXG4gICAgICBvcGVyYXRvcjogJ09wZXJhdG9yJyxcbiAgICAgIHZhbHVlOiAnV2VydCcsXG4gICAgICBjb3VudHM6ICdBbnphaGxsZW4nLFxuICAgICAgY291bnRzSGVscGVyVGV4dDpcbiAgICAgICAgXCJHZWJlbiBTaWUgZWluZSBvZGVyIG1laHJlcmUgQmVkaW5ndW5nZW4gZsO8ciBtaW5kZXN0ZW5zIHp3ZWkgQW56YWhsbGVuIGFuLiBadW0gQmVpc3BpZWw6ICdjYXNlOmNyZWF0ZWRCeScsICdHbGVpY2gnLCAndGVzdEB0ZXN0LmNvbScuIFp1bSBWZXJnbGVpY2hlbiBtaXQgbGVlcmVuIFdlcnRlbiBrYW5uIGFscyBXZXJ0ICcke251bGx9JyBlaW5nZWdlYmVuIHdlcmRlbi4gWnVtIFZlcmdsZWljaGVuIG1pdCBkZW0gYWt0dWVsbGVuIERhdHVtIGthbm4gYWxzIFdlcnQgJyR7bG9jYWxEYXRlVGltZU5vd30nIGVpbmdlZ2ViZW4gd2VyZGVuLiBEYW1pdCB3aXJkIGJlaXNwaWVsc3dlaXNlIGF1Y2ggZm9sZ2VuZGUgTG9naWsgdW50ZXJzdMO8dHp0OiAnJHtsb2NhbERhdGVUaW1lTm93Lm1pbnVzV2Vla3MoMil9Jy5cIixcbiAgICAgIGFkZENvbmRpdGlvbjogJ0JlZGluZ3VuZyBoaW56dWbDvGdlbicsXG4gICAgICBjb3VudFRpdGxlOiAnQW56YWhsdGl0ZWwnLFxuICAgIH0sXG4gICAgZW46IHtcbiAgICAgIHRpdGxlOiAnTXVsdGlwbGUgY2FzZSBjb3VudHMnLFxuICAgICAgZG9jdW1lbnREZWZpbml0aW9uOiAnQ2FzZSB0eXBlIChyZXF1aXJlZCknLFxuICAgICAgZG9jdW1lbnREZWZpbml0aW9uSGVscGVyVGV4dDogJ1RoZSBjYXNlIHR5cGUgZm9yIHdoaWNoIHRoZSBjb3VudHMgYXJlIHJldHJpZXZlZCcsXG4gICAgICAnIT0nOiAnTm90IGVxdWFsIHRvJyxcbiAgICAgICc9PSc6ICdFcXVhbCB0bycsXG4gICAgICAnPic6ICdHcmVhdGVyIHRoYW4nLFxuICAgICAgJz49JzogJ0dyZWF0ZXIgdGhhbiBvciBlcXVhbCB0bycsXG4gICAgICAnPCc6ICdMZXNzIHRoYW4nLFxuICAgICAgJzw9JzogJ0xlc3MgdGhhbiBvciBlcXVhbCB0bycsXG4gICAgICBwYXRoOiAnUGF0aCAocmVxdWlyZWQpJyxcbiAgICAgIG9wZXJhdG9yOiAnT3BlcmF0b3InLFxuICAgICAgdmFsdWU6ICdWYWx1ZScsXG4gICAgICBjb3VudHM6ICdDb3VudHMnLFxuICAgICAgY291bnRzSGVscGVyVGV4dDpcbiAgICAgICAgXCJTcGVjaWZ5IG9uZSBvciBtb3JlIGNvbmRpdGlvbnMgZm9yIGVhY2ggY291bnQgdGhhdCBzaG91bGQgYmUgZGlzcGxheWVkLiBGb3IgZXhhbXBsZTogJ2Nhc2U6Y3JlYXRlZEJ5JywgJ0VxdWFsIHRvJywgJ3Rlc3RAdGVzdC5jb20nLiBDb25maWd1cmUgYXQgbGVhc3QgdHdvIGNvdW50cyBhbmQgYXQgbGVhc3Qgb25lIGNvbmRpdGlvbiBwZXIgY291bnQuXCIsXG4gICAgICBhZGRDb25kaXRpb246ICdBZGQgY29uZGl0aW9uJyxcbiAgICAgIGNvdW50VGl0bGU6ICdDb3VudCB0aXRsZScsXG4gICAgfSxcbiAgICBubDoge1xuICAgICAgdGl0bGU6ICdNZWVyZGVyZSBkb3NzaWVyYWFudGFsbGVuJyxcbiAgICAgIGRvY3VtZW50RGVmaW5pdGlvbjogJ0Rvc3NpZXJ0eXBlICh2ZXJlaXN0KScsXG4gICAgICBkb2N1bWVudERlZmluaXRpb25IZWxwZXJUZXh0OiAnSGV0IGRvc3NpZXJ0eXBlIHdhYXJ2b29yIGRlIGFhbnRhbGxlbiB3b3JkZW4gb3BnZWhhYWxkJyxcbiAgICAgICchPSc6ICdOaWV0IGdlbGlqayBhYW4nLFxuICAgICAgJz09JzogJ0dlbGlqayBhYW4nLFxuICAgICAgJz4nOiAnR3JvdGVyIGRhbicsXG4gICAgICAnPj0nOiAnR3JvdGVyIGRhbiBvZiBnZWxpamsgYWFuJyxcbiAgICAgICc8JzogJ01pbmRlciBkYW4nLFxuICAgICAgJzw9JzogJ01pbmRlciBkYW4gb2YgZ2VsaWprIGFhbicsXG4gICAgICBwYXRoOiAnUGFkJyxcbiAgICAgIG9wZXJhdG9yOiAnT3BlcmF0b3InLFxuICAgICAgdmFsdWU6ICdXYWFyZGUnLFxuICAgICAgY291bnRzOiAnQWFudGFsbGVuJyxcbiAgICAgIGNvdW50c0hlbHBlclRleHQ6XG4gICAgICAgIFwiR2VlZiBlZW4gb2YgbWVlciBjb25kaXRpZXMgb3Agdm9vciBlZW4gbWluaW11bSB2YW4gdHdlZSBhYW50YWxsZW4uIEJpanZvb3JiZWVsZDogJ2Nhc2U6Y3JlYXRlZEJ5JywgJ0dlbGlqayBhYW4nLCAndGVzdEB0ZXN0LmNvbScuIFZvb3IgaGV0IHZlcmdlbGlqa2VuIG1ldCBsZWdlIHdhYXJkZXMga2FuICcke251bGx9JyBpbmdldnVsZCB3b3JkZW4gYWxzIHdhYXJkZS4gVm9vciBoZXQgdmVyZ2VsaWprZW4gbWV0IGRlIGh1aWRpZ2UgZGF0dW0ga2FuICcke2xvY2FsRGF0ZVRpbWVOb3d9JyBpbmdldnVsZCB3b3JkZW4gYWxzIHdhYXJkZS4gRGV6ZSBvbmRlcnN0ZXVudCBvb2sgYmlqdm9vcmJlZWxkIGRlIHZvbGdlbmRlIGxvZ2ljYTogJyR7bG9jYWxEYXRlVGltZU5vdy5taW51c1dlZWtzKDIpfScuXCIsXG4gICAgICBhZGRDb25kaXRpb246ICdDb25kaXRpZSB0b2V2b2VnZW4nLFxuICAgICAgY291bnRUaXRsZTogJ0FhbnRhbHRpdGVsJyxcbiAgICB9LFxuICB9LFxufTtcbiJdfQ==
@@ -0,0 +1,202 @@
1
+ /*
2
+ * Copyright 2015-2024 Ritense BV, the Netherlands.
3
+ *
4
+ * Licensed under EUPL, Version 1.2 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" basis,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, } from '@angular/core';
17
+ import { Operator } from '../../../../models';
18
+ import { BehaviorSubject, combineLatest, distinctUntilChanged, map, startWith, Subscription, } from 'rxjs';
19
+ import { Validators, } from '@angular/forms';
20
+ import { isEqual } from 'lodash';
21
+ import { Add16, TrashCan16 } from '@carbon/icons';
22
+ import * as i0 from "@angular/core";
23
+ import * as i1 from "@angular/forms";
24
+ import * as i2 from "@valtimo/document";
25
+ import * as i3 from "@ngx-translate/core";
26
+ import * as i4 from "../../../../services";
27
+ import * as i5 from "carbon-components-angular";
28
+ import * as i6 from "@angular/common";
29
+ import * as i7 from "@valtimo/components";
30
+ import * as i8 from "../../../../pipes/widget-translate/widget-translate.pipe";
31
+ export class CaseCountsConfigurationComponent {
32
+ set disabled(disabledValue) {
33
+ if (disabledValue) {
34
+ this.form.disable();
35
+ }
36
+ else {
37
+ this.form.enable();
38
+ }
39
+ }
40
+ get queryItems() {
41
+ return this.form.get('queryItems');
42
+ }
43
+ get queryItemsValue$() {
44
+ return this.queryItems.valueChanges.pipe(startWith(this.queryItems.value || []));
45
+ }
46
+ get queryItemsList$() {
47
+ return this.queryItemsValue$.pipe(map(queryItemsValue => queryItemsValue.map(() => null)), distinctUntilChanged((previous, current) => isEqual(previous, current)));
48
+ }
49
+ get documentDefinition() {
50
+ return this.form.get('documentDefinition');
51
+ }
52
+ get formDisabled() {
53
+ return this.form.disabled;
54
+ }
55
+ set prefillConfiguration(configurationValue) {
56
+ if (!configurationValue)
57
+ return;
58
+ this.documentDefinitionSelected({
59
+ item: {
60
+ content: configurationValue.documentDefinition,
61
+ },
62
+ });
63
+ this.documentDefinition.patchValue(configurationValue.documentDefinition);
64
+ this.queryItems.patchValue(this.queryItemsToMultiInputValues(configurationValue.queryItems));
65
+ }
66
+ constructor(fb, documentService, translateService, widgetTranslationService, iconService) {
67
+ this.fb = fb;
68
+ this.documentService = documentService;
69
+ this.translateService = translateService;
70
+ this.widgetTranslationService = widgetTranslationService;
71
+ this.iconService = iconService;
72
+ this._EMPTY_QUERY_ITEM_VALUE = {
73
+ label: '',
74
+ queryConditions: [{ key: '', value: '', dropdown: '' }],
75
+ };
76
+ this.form = this.fb.group({
77
+ documentDefinition: this.fb.control(null, [Validators.required]),
78
+ queryItems: this.fb.control([this._EMPTY_QUERY_ITEM_VALUE, this._EMPTY_QUERY_ITEM_VALUE], [this.queryItemsValidator()]),
79
+ });
80
+ this.configurationEvent = new EventEmitter();
81
+ this._selectedDocumentDefinition$ = new BehaviorSubject('');
82
+ this.documentItems$ = combineLatest([
83
+ this.documentService.getAllDefinitions(),
84
+ this._selectedDocumentDefinition$,
85
+ ]).pipe(map(([documentDefinitions, selectedDocumentDefintion]) => documentDefinitions.content.map(definition => ({
86
+ content: definition.id.name,
87
+ selected: definition.id.name === selectedDocumentDefintion,
88
+ }))));
89
+ this._OPERATORS = [
90
+ Operator.NOT_EQUAL_TO,
91
+ Operator.EQUAL_TO,
92
+ Operator.GREATER_THAN,
93
+ Operator.GREATER_THAN_OR_EQUAL_TO,
94
+ Operator.LESS_THAN,
95
+ Operator.LESS_THAN_OR_EQUAL_TO,
96
+ ];
97
+ this.operatorItems$ = this.translateService
98
+ .stream('key')
99
+ .pipe(map(() => this._OPERATORS.map(operator => ({
100
+ id: operator,
101
+ content: this.widgetTranslationService.instant(operator, this.dataSourceKey),
102
+ selected: false,
103
+ }))));
104
+ this._subscriptions = new Subscription();
105
+ this.iconService.registerAll([Add16, TrashCan16]);
106
+ }
107
+ ngOnInit() {
108
+ this.openFormSubscription();
109
+ }
110
+ ngOnDestroy() {
111
+ this._subscriptions.unsubscribe();
112
+ }
113
+ documentDefinitionSelected(documentDefinitionItem) {
114
+ if (!documentDefinitionItem) {
115
+ return;
116
+ }
117
+ this._selectedDocumentDefinition$.next(documentDefinitionItem?.item?.content);
118
+ }
119
+ conditionsValueChange(index, values) {
120
+ const currentQueryItemsValues = this.queryItems.value;
121
+ if (isEqual(currentQueryItemsValues[index].queryConditions, values))
122
+ return;
123
+ this.queryItems.patchValue(currentQueryItemsValues.map((item, itemIndex) => itemIndex === index ? { ...item, queryConditions: values } : item));
124
+ }
125
+ labelValueChange(index, value) {
126
+ const currentQueryItemsValues = this.queryItems.value;
127
+ if (currentQueryItemsValues[index].label === value)
128
+ return;
129
+ this.queryItems.patchValue(currentQueryItemsValues.map((item, itemIndex) => itemIndex === index ? { ...item, label: value } : item));
130
+ }
131
+ addQueryItem() {
132
+ const currentQueryItems = this.queryItems.value;
133
+ this.queryItems.patchValue([...currentQueryItems, this._EMPTY_QUERY_ITEM_VALUE]);
134
+ }
135
+ deleteCount(i) {
136
+ const currentQueryItems = this.queryItems.value;
137
+ this.queryItems.patchValue(currentQueryItems.filter((_, index) => index !== i));
138
+ }
139
+ openFormSubscription() {
140
+ this._subscriptions.add(this.form.valueChanges.pipe(startWith(this.form.value)).subscribe(formValue => {
141
+ this.configurationEvent.emit({
142
+ valid: this.form.valid,
143
+ data: {
144
+ ...formValue,
145
+ queryItems: this.multiInputValuesToQueryItems(formValue.queryItems),
146
+ },
147
+ });
148
+ }));
149
+ }
150
+ queryItemsToMultiInputValues(queryItems) {
151
+ return queryItems.map(queryItem => ({
152
+ ...queryItem,
153
+ queryConditions: queryItem.queryConditions.map(condition => ({
154
+ key: condition.queryPath,
155
+ dropdown: condition.queryOperator,
156
+ value: condition.queryValue,
157
+ })),
158
+ }));
159
+ }
160
+ multiInputValuesToQueryItems(multiInputValues) {
161
+ return multiInputValues.map(queryItem => ({
162
+ ...queryItem,
163
+ queryConditions: queryItem.queryConditions.map(condition => ({
164
+ queryPath: condition.key,
165
+ queryOperator: condition.dropdown,
166
+ queryValue: condition.value,
167
+ })),
168
+ }));
169
+ }
170
+ queryItemsValidator() {
171
+ return (control) => {
172
+ const queryItems = control.value;
173
+ const validQueryItems = queryItems.filter(item => {
174
+ const validLabel = !!item.label;
175
+ const validConditions = item.queryConditions.filter(condition => !!condition.value && !!condition.key && !!condition.dropdown);
176
+ return (validLabel &&
177
+ validConditions.length > 0 &&
178
+ item.queryConditions.length === validConditions.length);
179
+ });
180
+ return validQueryItems.length > 1 && validQueryItems.length === queryItems.length
181
+ ? null
182
+ : {
183
+ invalidQueryItems: 'invalid',
184
+ };
185
+ };
186
+ }
187
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: CaseCountsConfigurationComponent, deps: [{ token: i1.FormBuilder }, { token: i2.DocumentService }, { token: i3.TranslateService }, { token: i4.WidgetTranslationService }, { token: i5.IconService }], target: i0.ɵɵFactoryTarget.Component }); }
188
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.3", type: CaseCountsConfigurationComponent, selector: "ng-component", inputs: { dataSourceKey: "dataSourceKey", disabled: "disabled", prefillConfiguration: "prefillConfiguration" }, outputs: { configurationEvent: "configurationEvent" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<form\n class=\"case-counts-configuration-form\"\n *ngIf=\"{\n documentItems: documentItems$ | async,\n operatorItems: operatorItems$,\n queryItemsValue: queryItemsValue$ | async\n } as obs\"\n [formGroup]=\"form\"\n>\n <div class=\"form__element\">\n <cds-dropdown\n [appendInline]=\"true\"\n formControlName=\"documentDefinition\"\n [helperText]=\"'documentDefinitionHelperText' | widgetTranslate: dataSourceKey | async\"\n [invalidText]=\"'documentDefinitionHelperText' | widgetTranslate: dataSourceKey | async\"\n [invalid]=\"documentDefinition.dirty && documentDefinition.invalid\"\n [label]=\"'documentDefinition' | widgetTranslate: dataSourceKey | async\"\n (selected)=\"documentDefinitionSelected($event)\"\n >\n <cds-dropdown-list [items]=\"obs?.documentItems || []\" type=\"multi\"></cds-dropdown-list>\n </cds-dropdown>\n </div>\n\n <cds-label class=\"conditions__label\">{{\n 'counts' | widgetTranslate: dataSourceKey | async\n }}</cds-label>\n\n <p class=\"conditions__helper-text cds--form__helper-text\">\n {{ 'countsHelperText' | widgetTranslate: dataSourceKey | async }}\n </p>\n\n @for (_ of queryItemsList$ | async; track $index; let i = $index) {\n <cds-tile class=\"count-tile\" cdsLayer=\"1\">\n <div class=\"count-tile__input\">\n <v-input\n [title]=\"'countTitle' | widgetTranslate: dataSourceKey | async\"\n [margin]=\"true\"\n [defaultValue]=\"obs.queryItemsValue[i]?.label\"\n [disabled]=\"formDisabled\"\n [required]=\"true\"\n [fullWidth]=\"true\"\n (valueChange)=\"labelValueChange(i, $event)\"\n >\n </v-input>\n\n <valtimo-carbon-multi-input\n [disabled]=\"formDisabled\"\n [addRowText]=\"'addCondition' | widgetTranslate: dataSourceKey | async\"\n [defaultValues]=\"obs.queryItemsValue[i]?.queryConditions\"\n [dropdownColumnTitle]=\"'operator' | widgetTranslate: dataSourceKey | async\"\n [dropdownItems]=\"operatorItems$ | async\"\n [fullWidth]=\"true\"\n [initialAmountOfRows]=\"1\"\n [keyColumnTitle]=\"'path' | widgetTranslate: dataSourceKey | async\"\n [minimumAmountOfRows]=\"1\"\n [valueColumnTitle]=\"'value' | widgetTranslate: dataSourceKey | async\"\n type=\"keyDropdownValue\"\n (valueChange)=\"conditionsValueChange(i, $event)\"\n ></valtimo-carbon-multi-input>\n </div>\n\n <div class=\"count-tile__delete-button\">\n <cds-icon-button\n [disabled]=\"formDisabled || i < 2\"\n (click)=\"deleteCount(i)\"\n kind=\"danger\"\n size=\"sm\"\n >\n <svg class=\"cds--btn__icon\" cdsIcon=\"trash-can\" size=\"16\"></svg>\n </cds-icon-button>\n </div>\n </cds-tile>\n }\n\n <button\n class=\"add-count-button\"\n cdsButton=\"primary\"\n [disabled]=\"formDisabled\"\n (click)=\"addQueryItem()\"\n >\n {{ 'Aantal toevoegen' }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n</form>\n", styles: ["::ng-deep .case-counts-configuration-form .conditions__label{display:flex;margin-bottom:8px}::ng-deep .case-counts-configuration-form .conditions__helper-text{font-style:italic;display:flex;margin-bottom:16px}::ng-deep .case-counts-configuration-form .count-tile{display:flex;flex-direction:row;gap:32px;justify-content:space-between;margin-bottom:16px}::ng-deep .case-counts-configuration-form .count-tile__input{width:100%}::ng-deep .case-counts-configuration-form .add-count-button{margin-bottom:16px}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i7.InputComponent, selector: "v-input", inputs: ["name", "type", "title", "titleTranslationKey", "defaultValue", "widthPx", "fullWidth", "margin", "smallMargin", "disabled", "step", "min", "maxLength", "tooltip", "required", "hideNumberSpinBox", "smallLabel", "rows", "clear$", "carbonTheme", "placeholder"], outputs: ["valueChange"] }, { kind: "component", type: i5.Dropdown, selector: "cds-dropdown, ibm-dropdown", inputs: ["id", "label", "helperText", "placeholder", "displayValue", "clearText", "size", "type", "theme", "disabled", "skeleton", "inline", "disableArrowKeys", "invalid", "invalidText", "warn", "warnText", "appendInline", "scrollableContainer", "itemValueKey", "selectionFeedback", "menuButtonLabel", "selectedLabel", "dropUp"], outputs: ["selected", "onClose", "close"] }, { kind: "component", type: i5.DropdownList, selector: "cds-dropdown-list, ibm-dropdown-list", inputs: ["ariaLabel", "items", "listTpl", "type", "showTitles"], outputs: ["select", "scroll", "blurIntent"] }, { kind: "component", type: i7.CarbonMultiInputComponent, selector: "valtimo-carbon-multi-input", inputs: ["name", "title", "titleTranslationKey", "type", "arbitraryValueAmount", "arbitraryAmountTitles", "initialAmountOfRows", "minimumAmountOfRows", "maxRows", "addRowText", "addRowTranslationKey", "deleteRowText", "deleteRowTranslationKey", "disabled", "defaultValues", "margin", "tooltip", "required", "keyColumnTitle", "valueColumnTitle", "dropdownColumnTitle", "hideDeleteButton", "hideAddButton", "dropdownItems", "dropdownWidth", "fullWidth", "carbonTheme"], outputs: ["valueChange", "allValuesValidEvent"] }, { kind: "directive", type: i5.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "component", type: i5.IconButton, selector: "cds-icon-button, ibm-icon-button", inputs: ["buttonNgClass", "buttonAttributes", "buttonId", "kind", "size", "type", "isExpressive", "disabled", "description"], outputs: ["click", "focus", "blur", "tooltipClick"] }, { kind: "component", type: i5.Tile, selector: "cds-tile, ibm-tile", inputs: ["theme"] }, { kind: "directive", type: i5.LayerDirective, selector: "[cdsLayer], [ibmLayer]", inputs: ["ibmLayer", "cdsLayer"], exportAs: ["layer"] }, { kind: "directive", type: i5.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i8.WidgetTranslatePipe, name: "widgetTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
189
+ }
190
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: CaseCountsConfigurationComponent, decorators: [{
191
+ type: Component,
192
+ args: [{ changeDetection: ChangeDetectionStrategy.OnPush, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<form\n class=\"case-counts-configuration-form\"\n *ngIf=\"{\n documentItems: documentItems$ | async,\n operatorItems: operatorItems$,\n queryItemsValue: queryItemsValue$ | async\n } as obs\"\n [formGroup]=\"form\"\n>\n <div class=\"form__element\">\n <cds-dropdown\n [appendInline]=\"true\"\n formControlName=\"documentDefinition\"\n [helperText]=\"'documentDefinitionHelperText' | widgetTranslate: dataSourceKey | async\"\n [invalidText]=\"'documentDefinitionHelperText' | widgetTranslate: dataSourceKey | async\"\n [invalid]=\"documentDefinition.dirty && documentDefinition.invalid\"\n [label]=\"'documentDefinition' | widgetTranslate: dataSourceKey | async\"\n (selected)=\"documentDefinitionSelected($event)\"\n >\n <cds-dropdown-list [items]=\"obs?.documentItems || []\" type=\"multi\"></cds-dropdown-list>\n </cds-dropdown>\n </div>\n\n <cds-label class=\"conditions__label\">{{\n 'counts' | widgetTranslate: dataSourceKey | async\n }}</cds-label>\n\n <p class=\"conditions__helper-text cds--form__helper-text\">\n {{ 'countsHelperText' | widgetTranslate: dataSourceKey | async }}\n </p>\n\n @for (_ of queryItemsList$ | async; track $index; let i = $index) {\n <cds-tile class=\"count-tile\" cdsLayer=\"1\">\n <div class=\"count-tile__input\">\n <v-input\n [title]=\"'countTitle' | widgetTranslate: dataSourceKey | async\"\n [margin]=\"true\"\n [defaultValue]=\"obs.queryItemsValue[i]?.label\"\n [disabled]=\"formDisabled\"\n [required]=\"true\"\n [fullWidth]=\"true\"\n (valueChange)=\"labelValueChange(i, $event)\"\n >\n </v-input>\n\n <valtimo-carbon-multi-input\n [disabled]=\"formDisabled\"\n [addRowText]=\"'addCondition' | widgetTranslate: dataSourceKey | async\"\n [defaultValues]=\"obs.queryItemsValue[i]?.queryConditions\"\n [dropdownColumnTitle]=\"'operator' | widgetTranslate: dataSourceKey | async\"\n [dropdownItems]=\"operatorItems$ | async\"\n [fullWidth]=\"true\"\n [initialAmountOfRows]=\"1\"\n [keyColumnTitle]=\"'path' | widgetTranslate: dataSourceKey | async\"\n [minimumAmountOfRows]=\"1\"\n [valueColumnTitle]=\"'value' | widgetTranslate: dataSourceKey | async\"\n type=\"keyDropdownValue\"\n (valueChange)=\"conditionsValueChange(i, $event)\"\n ></valtimo-carbon-multi-input>\n </div>\n\n <div class=\"count-tile__delete-button\">\n <cds-icon-button\n [disabled]=\"formDisabled || i < 2\"\n (click)=\"deleteCount(i)\"\n kind=\"danger\"\n size=\"sm\"\n >\n <svg class=\"cds--btn__icon\" cdsIcon=\"trash-can\" size=\"16\"></svg>\n </cds-icon-button>\n </div>\n </cds-tile>\n }\n\n <button\n class=\"add-count-button\"\n cdsButton=\"primary\"\n [disabled]=\"formDisabled\"\n (click)=\"addQueryItem()\"\n >\n {{ 'Aantal toevoegen' }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n</form>\n", styles: ["::ng-deep .case-counts-configuration-form .conditions__label{display:flex;margin-bottom:8px}::ng-deep .case-counts-configuration-form .conditions__helper-text{font-style:italic;display:flex;margin-bottom:16px}::ng-deep .case-counts-configuration-form .count-tile{display:flex;flex-direction:row;gap:32px;justify-content:space-between;margin-bottom:16px}::ng-deep .case-counts-configuration-form .count-tile__input{width:100%}::ng-deep .case-counts-configuration-form .add-count-button{margin-bottom:16px}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"] }]
193
+ }], ctorParameters: () => [{ type: i1.FormBuilder }, { type: i2.DocumentService }, { type: i3.TranslateService }, { type: i4.WidgetTranslationService }, { type: i5.IconService }], propDecorators: { dataSourceKey: [{
194
+ type: Input
195
+ }], disabled: [{
196
+ type: Input
197
+ }], prefillConfiguration: [{
198
+ type: Input
199
+ }], configurationEvent: [{
200
+ type: Output
201
+ }] } });
202
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS1jb3VudHMtY29uZmlndXJhdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL2Rhc2hib2FyZC9zcmMvbGliL2RhdGEtc291cmNlcy9jYXNlLWNvdW50cy9jb21wb25lbnRzL2Nhc2UtY291bnRzLWNvbmZpZ3VyYXRpb24vY2FzZS1jb3VudHMtY29uZmlndXJhdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL2Rhc2hib2FyZC9zcmMvbGliL2RhdGEtc291cmNlcy9jYXNlLWNvdW50cy9jb21wb25lbnRzL2Nhc2UtY291bnRzLWNvbmZpZ3VyYXRpb24vY2FzZS1jb3VudHMtY29uZmlndXJhdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUVILE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0QsUUFBUSxFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFDbkcsT0FBTyxFQUNMLGVBQWUsRUFDZixhQUFhLEVBQ2Isb0JBQW9CLEVBQ3BCLEdBQUcsRUFFSCxTQUFTLEVBQ1QsWUFBWSxHQUNiLE1BQU0sTUFBTSxDQUFDO0FBQ2QsT0FBTyxFQUtMLFVBQVUsR0FDWCxNQUFNLGdCQUFnQixDQUFDO0FBT3hCLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxRQUFRLENBQUM7QUFDL0IsT0FBTyxFQUFDLEtBQUssRUFBRSxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7Ozs7QUFPaEQsTUFBTSxPQUFPLGdDQUFnQztJQWtCM0MsSUFBb0IsUUFBUSxDQUFDLGFBQXNCO1FBQ2pELElBQUksYUFBYSxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUN0QixDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDckIsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFXLFVBQVU7UUFDbkIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsSUFBVyxnQkFBZ0I7UUFDekIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDbkYsQ0FBQztJQUVELElBQVcsZUFBZTtRQUN4QixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQy9CLEdBQUcsQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsRUFDdkQsb0JBQW9CLENBQUMsQ0FBQyxRQUFRLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQ3hFLENBQUM7SUFDSixDQUFDO0lBRUQsSUFBVyxrQkFBa0I7UUFDM0IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxJQUFXLFlBQVk7UUFDckIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFBYSxvQkFBb0IsQ0FBQyxrQkFBMkM7UUFDM0UsSUFBSSxDQUFDLGtCQUFrQjtZQUFFLE9BQU87UUFFaEMsSUFBSSxDQUFDLDBCQUEwQixDQUFDO1lBQzlCLElBQUksRUFBRTtnQkFDSixPQUFPLEVBQUUsa0JBQWtCLENBQUMsa0JBQWtCO2FBQy9DO1NBQ0ssQ0FBQyxDQUFDO1FBQ1YsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBRTFFLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO0lBQy9GLENBQUM7SUEyQ0QsWUFDbUIsRUFBZSxFQUNmLGVBQWdDLEVBQ2hDLGdCQUFrQyxFQUNsQyx3QkFBa0QsRUFDbEQsV0FBd0I7UUFKeEIsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQUNmLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBMEI7UUFDbEQsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUF2RzFCLDRCQUF1QixHQUE0QjtZQUNsRSxLQUFLLEVBQUUsRUFBRTtZQUNULGVBQWUsRUFBRSxDQUFDLEVBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUMsQ0FBQztTQUN0RCxDQUFDO1FBRWMsU0FBSSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDO1lBQ25DLGtCQUFrQixFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNoRSxVQUFVLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQ3pCLENBQUMsSUFBSSxDQUFDLHVCQUF1QixFQUFFLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxFQUM1RCxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLENBQzdCO1NBQ0YsQ0FBQyxDQUFDO1FBOENjLHVCQUFrQixHQUFHLElBQUksWUFBWSxFQUVuRCxDQUFDO1FBRWEsaUNBQTRCLEdBQUcsSUFBSSxlQUFlLENBQVMsRUFBRSxDQUFDLENBQUM7UUFFaEUsbUJBQWMsR0FBZ0MsYUFBYSxDQUFDO1lBQzFFLElBQUksQ0FBQyxlQUFlLENBQUMsaUJBQWlCLEVBQUU7WUFDeEMsSUFBSSxDQUFDLDRCQUE0QjtTQUNsQyxDQUFDLENBQUMsSUFBSSxDQUNMLEdBQUcsQ0FBQyxDQUFDLENBQUMsbUJBQW1CLEVBQUUseUJBQXlCLENBQUMsRUFBRSxFQUFFLENBQ3ZELG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzdDLE9BQU8sRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDLElBQUk7WUFDM0IsUUFBUSxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUMsSUFBSSxLQUFLLHlCQUF5QjtTQUMzRCxDQUFDLENBQUMsQ0FDSixDQUNGLENBQUM7UUFFZSxlQUFVLEdBQW9CO1lBQzdDLFFBQVEsQ0FBQyxZQUFZO1lBQ3JCLFFBQVEsQ0FBQyxRQUFRO1lBQ2pCLFFBQVEsQ0FBQyxZQUFZO1lBQ3JCLFFBQVEsQ0FBQyx3QkFBd0I7WUFDakMsUUFBUSxDQUFDLFNBQVM7WUFDbEIsUUFBUSxDQUFDLHFCQUFxQjtTQUMvQixDQUFDO1FBRWMsbUJBQWMsR0FBc0MsSUFBSSxDQUFDLGdCQUFnQjthQUN0RixNQUFNLENBQUMsS0FBSyxDQUFDO2FBQ2IsSUFBSSxDQUNILEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FDUCxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDL0IsRUFBRSxFQUFFLFFBQVE7WUFDWixPQUFPLEVBQUUsSUFBSSxDQUFDLHdCQUF3QixDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQztZQUM1RSxRQUFRLEVBQUUsS0FBSztTQUNoQixDQUFDLENBQUMsQ0FDSixDQUNGLENBQUM7UUFFSSxtQkFBYyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFTMUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRU0sUUFBUTtRQUNiLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVNLDBCQUEwQixDQUFDLHNCQUFnQztRQUNoRSxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztZQUM1QixPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ2hGLENBQUM7SUFFTSxxQkFBcUIsQ0FBQyxLQUFhLEVBQUUsTUFBd0I7UUFDbEUsTUFBTSx1QkFBdUIsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQztRQUV0RCxJQUFJLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxlQUFlLEVBQUUsTUFBTSxDQUFDO1lBQUUsT0FBTztRQUU1RSxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FDeEIsdUJBQXVCLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxFQUFFLENBQzlDLFNBQVMsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUMsR0FBRyxJQUFJLEVBQUUsZUFBZSxFQUFFLE1BQU0sRUFBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQ2hFLENBQ0YsQ0FBQztJQUNKLENBQUM7SUFFTSxnQkFBZ0IsQ0FBQyxLQUFhLEVBQUUsS0FBYTtRQUNsRCxNQUFNLHVCQUF1QixHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDO1FBRXRELElBQUksdUJBQXVCLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxLQUFLLEtBQUs7WUFBRSxPQUFPO1FBRTNELElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUN4Qix1QkFBdUIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLEVBQUUsQ0FDOUMsU0FBUyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBQyxHQUFHLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDckQsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVNLFlBQVk7UUFDakIsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQztRQUNoRCxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEdBQUcsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLHVCQUF1QixDQUFDLENBQUMsQ0FBQztJQUNuRixDQUFDO0lBRU0sV0FBVyxDQUFDLENBQVM7UUFDMUIsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQztRQUNoRCxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNsRixDQUFDO0lBRU8sb0JBQW9CO1FBQzFCLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUNyQixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDNUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQztnQkFDM0IsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSztnQkFDdEIsSUFBSSxFQUFFO29CQUNKLEdBQUcsU0FBUztvQkFDWixVQUFVLEVBQUUsSUFBSSxDQUFDLDRCQUE0QixDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUM7aUJBQ3pDO2FBQzdCLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRU8sNEJBQTRCLENBQ2xDLFVBQWlDO1FBRWpDLE9BQU8sVUFBVSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDbEMsR0FBRyxTQUFTO1lBQ1osZUFBZSxFQUFFLFNBQVMsQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDM0QsR0FBRyxFQUFFLFNBQVMsQ0FBQyxTQUFTO2dCQUN4QixRQUFRLEVBQUUsU0FBUyxDQUFDLGFBQWE7Z0JBQ2pDLEtBQUssRUFBRSxTQUFTLENBQUMsVUFBVTthQUM1QixDQUFDLENBQUM7U0FDSixDQUFDLENBQUMsQ0FBQztJQUNOLENBQUM7SUFFTyw0QkFBNEIsQ0FDbEMsZ0JBQTJDO1FBRTNDLE9BQU8sZ0JBQWdCLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUN4QyxHQUFHLFNBQVM7WUFDWixlQUFlLEVBQUUsU0FBUyxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUMzRCxTQUFTLEVBQUUsU0FBUyxDQUFDLEdBQUc7Z0JBQ3hCLGFBQWEsRUFBRSxTQUFTLENBQUMsUUFBUTtnQkFDakMsVUFBVSxFQUFFLFNBQVMsQ0FBQyxLQUFLO2FBQzVCLENBQUMsQ0FBQztTQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ04sQ0FBQztJQUVPLG1CQUFtQjtRQUN6QixPQUFPLENBQUMsT0FBbUQsRUFBMkIsRUFBRTtZQUN0RixNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDO1lBQ2pDLE1BQU0sZUFBZSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQy9DLE1BQU0sVUFBVSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO2dCQUNoQyxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FDakQsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FDMUUsQ0FBQztnQkFFRixPQUFPLENBQ0wsVUFBVTtvQkFDVixlQUFlLENBQUMsTUFBTSxHQUFHLENBQUM7b0JBQzFCLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxLQUFLLGVBQWUsQ0FBQyxNQUFNLENBQ3ZELENBQUM7WUFDSixDQUFDLENBQUMsQ0FBQztZQUVILE9BQU8sZUFBZSxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksZUFBZSxDQUFDLE1BQU0sS0FBSyxVQUFVLENBQUMsTUFBTTtnQkFDL0UsQ0FBQyxDQUFDLElBQUk7Z0JBQ04sQ0FBQyxDQUFDO29CQUNFLGlCQUFpQixFQUFFLFNBQVM7aUJBQzdCLENBQUM7UUFDUixDQUFDLENBQUM7SUFDSixDQUFDOzhHQWpPVSxnQ0FBZ0M7a0dBQWhDLGdDQUFnQywyTkN4RDdDLDh0SEFxR0E7OzJGRDdDYSxnQ0FBZ0M7a0JBTDVDLFNBQVM7c0NBRVMsdUJBQXVCLENBQUMsTUFBTTs4TUFNL0IsYUFBYTtzQkFBNUIsS0FBSztnQkFlYyxRQUFRO3NCQUEzQixLQUFLO2dCQStCTyxvQkFBb0I7c0JBQWhDLEtBQUs7Z0JBYVcsa0JBQWtCO3NCQUFsQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NvbmZpZ3VyYXRpb25PdXRwdXQsIERhdGFTb3VyY2VDb25maWd1cmF0aW9uQ29tcG9uZW50LCBPcGVyYXRvcn0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7XG4gIEJlaGF2aW9yU3ViamVjdCxcbiAgY29tYmluZUxhdGVzdCxcbiAgZGlzdGluY3RVbnRpbENoYW5nZWQsXG4gIG1hcCxcbiAgT2JzZXJ2YWJsZSxcbiAgc3RhcnRXaXRoLFxuICBTdWJzY3JpcHRpb24sXG59IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgQWJzdHJhY3RDb250cm9sLFxuICBGb3JtQnVpbGRlcixcbiAgVmFsaWRhdGlvbkVycm9ycyxcbiAgVmFsaWRhdG9yRm4sXG4gIFZhbGlkYXRvcnMsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7Q2FzZUNvdW50c0NvbmZpZ3VyYXRpb24sIENhc2VDb3VudHNRdWVyeUl0ZW0sIENhc2VDb3VudHNRdWVyeUl0ZW1Gb3JtfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHtEb2N1bWVudFNlcnZpY2V9IGZyb20gJ0B2YWx0aW1vL2RvY3VtZW50JztcbmltcG9ydCB7SWNvblNlcnZpY2UsIExpc3RJdGVtfSBmcm9tICdjYXJib24tY29tcG9uZW50cy1hbmd1bGFyJztcbmltcG9ydCB7TGlzdEl0ZW1XaXRoSWQsIE11bHRpSW5wdXRWYWx1ZXN9IGZyb20gJ0B2YWx0aW1vL2NvbXBvbmVudHMnO1xuaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7V2lkZ2V0VHJhbnNsYXRpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQge2lzRXF1YWx9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQge0FkZDE2LCBUcmFzaENhbjE2fSBmcm9tICdAY2FyYm9uL2ljb25zJztcblxuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlVXJsOiAnLi9jYXNlLWNvdW50cy1jb25maWd1cmF0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0eWxlVXJsczogWycuL2Nhc2UtY291bnRzLWNvbmZpZ3VyYXRpb24uY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgQ2FzZUNvdW50c0NvbmZpZ3VyYXRpb25Db21wb25lbnRcbiAgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgRGF0YVNvdXJjZUNvbmZpZ3VyYXRpb25Db21wb25lbnRcbntcbiAgQElucHV0KCkgcHVibGljIGRhdGFTb3VyY2VLZXk6IHN0cmluZztcblxuICBwcml2YXRlIHJlYWRvbmx5IF9FTVBUWV9RVUVSWV9JVEVNX1ZBTFVFOiBDYXNlQ291bnRzUXVlcnlJdGVtRm9ybSA9IHtcbiAgICBsYWJlbDogJycsXG4gICAgcXVlcnlDb25kaXRpb25zOiBbe2tleTogJycsIHZhbHVlOiAnJywgZHJvcGRvd246ICcnfV0sXG4gIH07XG5cbiAgcHVibGljIHJlYWRvbmx5IGZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICBkb2N1bWVudERlZmluaXRpb246IHRoaXMuZmIuY29udHJvbChudWxsLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxuICAgIHF1ZXJ5SXRlbXM6IHRoaXMuZmIuY29udHJvbChcbiAgICAgIFt0aGlzLl9FTVBUWV9RVUVSWV9JVEVNX1ZBTFVFLCB0aGlzLl9FTVBUWV9RVUVSWV9JVEVNX1ZBTFVFXSxcbiAgICAgIFt0aGlzLnF1ZXJ5SXRlbXNWYWxpZGF0b3IoKV1cbiAgICApLFxuICB9KTtcblxuICBASW5wdXQoKSBwdWJsaWMgc2V0IGRpc2FibGVkKGRpc2FibGVkVmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoZGlzYWJsZWRWYWx1ZSkge1xuICAgICAgdGhpcy5mb3JtLmRpc2FibGUoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5mb3JtLmVuYWJsZSgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgcXVlcnlJdGVtcygpOiBBYnN0cmFjdENvbnRyb2w8Q2FzZUNvdW50c1F1ZXJ5SXRlbUZvcm1bXT4ge1xuICAgIHJldHVybiB0aGlzLmZvcm0uZ2V0KCdxdWVyeUl0ZW1zJyk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHF1ZXJ5SXRlbXNWYWx1ZSQoKTogT2JzZXJ2YWJsZTxDYXNlQ291bnRzUXVlcnlJdGVtRm9ybVtdPiB7XG4gICAgcmV0dXJuIHRoaXMucXVlcnlJdGVtcy52YWx1ZUNoYW5nZXMucGlwZShzdGFydFdpdGgodGhpcy5xdWVyeUl0ZW1zLnZhbHVlIHx8IFtdKSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHF1ZXJ5SXRlbXNMaXN0JCgpOiBPYnNlcnZhYmxlPG51bGxbXT4ge1xuICAgIHJldHVybiB0aGlzLnF1ZXJ5SXRlbXNWYWx1ZSQucGlwZShcbiAgICAgIG1hcChxdWVyeUl0ZW1zVmFsdWUgPT4gcXVlcnlJdGVtc1ZhbHVlLm1hcCgoKSA9PiBudWxsKSksXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgocHJldmlvdXMsIGN1cnJlbnQpID0+IGlzRXF1YWwocHJldmlvdXMsIGN1cnJlbnQpKVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGRvY3VtZW50RGVmaW5pdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtLmdldCgnZG9jdW1lbnREZWZpbml0aW9uJyk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGZvcm1EaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtLmRpc2FibGVkO1xuICB9XG5cbiAgQElucHV0KCkgc2V0IHByZWZpbGxDb25maWd1cmF0aW9uKGNvbmZpZ3VyYXRpb25WYWx1ZTogQ2FzZUNvdW50c0NvbmZpZ3VyYXRpb24pIHtcbiAgICBpZiAoIWNvbmZpZ3VyYXRpb25WYWx1ZSkgcmV0dXJuO1xuXG4gICAgdGhpcy5kb2N1bWVudERlZmluaXRpb25TZWxlY3RlZCh7XG4gICAgICBpdGVtOiB7XG4gICAgICAgIGNvbnRlbnQ6IGNvbmZpZ3VyYXRpb25WYWx1ZS5kb2N1bWVudERlZmluaXRpb24sXG4gICAgICB9LFxuICAgIH0gYXMgYW55KTtcbiAgICB0aGlzLmRvY3VtZW50RGVmaW5pdGlvbi5wYXRjaFZhbHVlKGNvbmZpZ3VyYXRpb25WYWx1ZS5kb2N1bWVudERlZmluaXRpb24pO1xuXG4gICAgdGhpcy5xdWVyeUl0ZW1zLnBhdGNoVmFsdWUodGhpcy5xdWVyeUl0ZW1zVG9NdWx0aUlucHV0VmFsdWVzKGNvbmZpZ3VyYXRpb25WYWx1ZS5xdWVyeUl0ZW1zKSk7XG4gIH1cblxuICBAT3V0cHV0KCkgcHVibGljIGNvbmZpZ3VyYXRpb25FdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8XG4gICAgQ29uZmlndXJhdGlvbk91dHB1dDxDYXNlQ291bnRzQ29uZmlndXJhdGlvbj5cbiAgPigpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3NlbGVjdGVkRG9jdW1lbnREZWZpbml0aW9uJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignJyk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGRvY3VtZW50SXRlbXMkOiBPYnNlcnZhYmxlPEFycmF5PExpc3RJdGVtPj4gPSBjb21iaW5lTGF0ZXN0KFtcbiAgICB0aGlzLmRvY3VtZW50U2VydmljZS5nZXRBbGxEZWZpbml0aW9ucygpLFxuICAgIHRoaXMuX3NlbGVjdGVkRG9jdW1lbnREZWZpbml0aW9uJCxcbiAgXSkucGlwZShcbiAgICBtYXAoKFtkb2N1bWVudERlZmluaXRpb25zLCBzZWxlY3RlZERvY3VtZW50RGVmaW50aW9uXSkgPT5cbiAgICAgIGRvY3VtZW50RGVmaW5pdGlvbnMuY29udGVudC5tYXAoZGVmaW5pdGlvbiA9PiAoe1xuICAgICAgICBjb250ZW50OiBkZWZpbml0aW9uLmlkLm5hbWUsXG4gICAgICAgIHNlbGVjdGVkOiBkZWZpbml0aW9uLmlkLm5hbWUgPT09IHNlbGVjdGVkRG9jdW1lbnREZWZpbnRpb24sXG4gICAgICB9KSlcbiAgICApXG4gICk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfT1BFUkFUT1JTOiBBcnJheTxPcGVyYXRvcj4gPSBbXG4gICAgT3BlcmF0b3IuTk9UX0VRVUFMX1RPLFxuICAgIE9wZXJhdG9yLkVRVUFMX1RPLFxuICAgIE9wZXJhdG9yLkdSRUFURVJfVEhBTixcbiAgICBPcGVyYXRvci5HUkVBVEVSX1RIQU5fT1JfRVFVQUxfVE8sXG4gICAgT3BlcmF0b3IuTEVTU19USEFOLFxuICAgIE9wZXJhdG9yLkxFU1NfVEhBTl9PUl9FUVVBTF9UTyxcbiAgXTtcblxuICBwdWJsaWMgcmVhZG9ubHkgb3BlcmF0b3JJdGVtcyQ6IE9ic2VydmFibGU8QXJyYXk8TGlzdEl0ZW1XaXRoSWQ+PiA9IHRoaXMudHJhbnNsYXRlU2VydmljZVxuICAgIC5zdHJlYW0oJ2tleScpXG4gICAgLnBpcGUoXG4gICAgICBtYXAoKCkgPT5cbiAgICAgICAgdGhpcy5fT1BFUkFUT1JTLm1hcChvcGVyYXRvciA9PiAoe1xuICAgICAgICAgIGlkOiBvcGVyYXRvcixcbiAgICAgICAgICBjb250ZW50OiB0aGlzLndpZGdldFRyYW5zbGF0aW9uU2VydmljZS5pbnN0YW50KG9wZXJhdG9yLCB0aGlzLmRhdGFTb3VyY2VLZXkpLFxuICAgICAgICAgIHNlbGVjdGVkOiBmYWxzZSxcbiAgICAgICAgfSkpXG4gICAgICApXG4gICAgKTtcblxuICBwcml2YXRlIF9zdWJzY3JpcHRpb25zID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZmI6IEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZG9jdW1lbnRTZXJ2aWNlOiBEb2N1bWVudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgd2lkZ2V0VHJhbnNsYXRpb25TZXJ2aWNlOiBXaWRnZXRUcmFuc2xhdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBpY29uU2VydmljZTogSWNvblNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5pY29uU2VydmljZS5yZWdpc3RlckFsbChbQWRkMTYsIFRyYXNoQ2FuMTZdKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLm9wZW5Gb3JtU3Vic2NyaXB0aW9uKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHVibGljIGRvY3VtZW50RGVmaW5pdGlvblNlbGVjdGVkKGRvY3VtZW50RGVmaW5pdGlvbkl0ZW06IExpc3RJdGVtKTogdm9pZCB7XG4gICAgaWYgKCFkb2N1bWVudERlZmluaXRpb25JdGVtKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fc2VsZWN0ZWREb2N1bWVudERlZmluaXRpb24kLm5leHQoZG9jdW1lbnREZWZpbml0aW9uSXRlbT8uaXRlbT8uY29udGVudCk7XG4gIH1cblxuICBwdWJsaWMgY29uZGl0aW9uc1ZhbHVlQ2hhbmdlKGluZGV4OiBudW1iZXIsIHZhbHVlczogTXVsdGlJbnB1dFZhbHVlcyk6IHZvaWQge1xuICAgIGNvbnN0IGN1cnJlbnRRdWVyeUl0ZW1zVmFsdWVzID0gdGhpcy5xdWVyeUl0ZW1zLnZhbHVlO1xuXG4gICAgaWYgKGlzRXF1YWwoY3VycmVudFF1ZXJ5SXRlbXNWYWx1ZXNbaW5kZXhdLnF1ZXJ5Q29uZGl0aW9ucywgdmFsdWVzKSkgcmV0dXJuO1xuXG4gICAgdGhpcy5xdWVyeUl0ZW1zLnBhdGNoVmFsdWUoXG4gICAgICBjdXJyZW50UXVlcnlJdGVtc1ZhbHVlcy5tYXAoKGl0ZW0sIGl0ZW1JbmRleCkgPT5cbiAgICAgICAgaXRlbUluZGV4ID09PSBpbmRleCA/IHsuLi5pdGVtLCBxdWVyeUNvbmRpdGlvbnM6IHZhbHVlc30gOiBpdGVtXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBsYWJlbFZhbHVlQ2hhbmdlKGluZGV4OiBudW1iZXIsIHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBjdXJyZW50UXVlcnlJdGVtc1ZhbHVlcyA9IHRoaXMucXVlcnlJdGVtcy52YWx1ZTtcblxuICAgIGlmIChjdXJyZW50UXVlcnlJdGVtc1ZhbHVlc1tpbmRleF0ubGFiZWwgPT09IHZhbHVlKSByZXR1cm47XG5cbiAgICB0aGlzLnF1ZXJ5SXRlbXMucGF0Y2hWYWx1ZShcbiAgICAgIGN1cnJlbnRRdWVyeUl0ZW1zVmFsdWVzLm1hcCgoaXRlbSwgaXRlbUluZGV4KSA9PlxuICAgICAgICBpdGVtSW5kZXggPT09IGluZGV4ID8gey4uLml0ZW0sIGxhYmVsOiB2YWx1ZX0gOiBpdGVtXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBhZGRRdWVyeUl0ZW0oKTogdm9pZCB7XG4gICAgY29uc3QgY3VycmVudFF1ZXJ5SXRlbXMgPSB0aGlzLnF1ZXJ5SXRlbXMudmFsdWU7XG4gICAgdGhpcy5xdWVyeUl0ZW1zLnBhdGNoVmFsdWUoWy4uLmN1cnJlbnRRdWVyeUl0ZW1zLCB0aGlzLl9FTVBUWV9RVUVSWV9JVEVNX1ZBTFVFXSk7XG4gIH1cblxuICBwdWJsaWMgZGVsZXRlQ291bnQoaTogbnVtYmVyKTogdm9pZCB7XG4gICAgY29uc3QgY3VycmVudFF1ZXJ5SXRlbXMgPSB0aGlzLnF1ZXJ5SXRlbXMudmFsdWU7XG4gICAgdGhpcy5xdWVyeUl0ZW1zLnBhdGNoVmFsdWUoY3VycmVudFF1ZXJ5SXRlbXMuZmlsdGVyKChfLCBpbmRleCkgPT4gaW5kZXggIT09IGkpKTtcbiAgfVxuXG4gIHByaXZhdGUgb3BlbkZvcm1TdWJzY3JpcHRpb24oKTogdm9pZCB7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICB0aGlzLmZvcm0udmFsdWVDaGFuZ2VzLnBpcGUoc3RhcnRXaXRoKHRoaXMuZm9ybS52YWx1ZSkpLnN1YnNjcmliZShmb3JtVmFsdWUgPT4ge1xuICAgICAgICB0aGlzLmNvbmZpZ3VyYXRpb25FdmVudC5lbWl0KHtcbiAgICAgICAgICB2YWxpZDogdGhpcy5mb3JtLnZhbGlkLFxuICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIC4uLmZvcm1WYWx1ZSxcbiAgICAgICAgICAgIHF1ZXJ5SXRlbXM6IHRoaXMubXVsdGlJbnB1dFZhbHVlc1RvUXVlcnlJdGVtcyhmb3JtVmFsdWUucXVlcnlJdGVtcyksXG4gICAgICAgICAgfSBhcyBDYXNlQ291bnRzQ29uZmlndXJhdGlvbixcbiAgICAgICAgfSk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIHF1ZXJ5SXRlbXNUb011bHRpSW5wdXRWYWx1ZXMoXG4gICAgcXVlcnlJdGVtczogQ2FzZUNvdW50c1F1ZXJ5SXRlbVtdXG4gICk6IENhc2VDb3VudHNRdWVyeUl0ZW1Gb3JtW10ge1xuICAgIHJldHVybiBxdWVyeUl0ZW1zLm1hcChxdWVyeUl0ZW0gPT4gKHtcbiAgICAgIC4uLnF1ZXJ5SXRlbSxcbiAgICAgIHF1ZXJ5Q29uZGl0aW9uczogcXVlcnlJdGVtLnF1ZXJ5Q29uZGl0aW9ucy5tYXAoY29uZGl0aW9uID0+ICh7XG4gICAgICAgIGtleTogY29uZGl0aW9uLnF1ZXJ5UGF0aCxcbiAgICAgICAgZHJvcGRvd246IGNvbmRpdGlvbi5xdWVyeU9wZXJhdG9yLFxuICAgICAgICB2YWx1ZTogY29uZGl0aW9uLnF1ZXJ5VmFsdWUsXG4gICAgICB9KSksXG4gICAgfSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBtdWx0aUlucHV0VmFsdWVzVG9RdWVyeUl0ZW1zKFxuICAgIG11bHRpSW5wdXRWYWx1ZXM6IENhc2VDb3VudHNRdWVyeUl0ZW1Gb3JtW11cbiAgKTogQ2FzZUNvdW50c1F1ZXJ5SXRlbVtdIHtcbiAgICByZXR1cm4gbXVsdGlJbnB1dFZhbHVlcy5tYXAocXVlcnlJdGVtID0+ICh7XG4gICAgICAuLi5xdWVyeUl0ZW0sXG4gICAgICBxdWVyeUNvbmRpdGlvbnM6IHF1ZXJ5SXRlbS5xdWVyeUNvbmRpdGlvbnMubWFwKGNvbmRpdGlvbiA9PiAoe1xuICAgICAgICBxdWVyeVBhdGg6IGNvbmRpdGlvbi5rZXksXG4gICAgICAgIHF1ZXJ5T3BlcmF0b3I6IGNvbmRpdGlvbi5kcm9wZG93bixcbiAgICAgICAgcXVlcnlWYWx1ZTogY29uZGl0aW9uLnZhbHVlLFxuICAgICAgfSkpLFxuICAgIH0pKTtcbiAgfVxuXG4gIHByaXZhdGUgcXVlcnlJdGVtc1ZhbGlkYXRvcigpOiBWYWxpZGF0b3JGbiB7XG4gICAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2w8Q2FzZUNvdW50c1F1ZXJ5SXRlbUZvcm1bXT4pOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PiB7XG4gICAgICBjb25zdCBxdWVyeUl0ZW1zID0gY29udHJvbC52YWx1ZTtcbiAgICAgIGNvbnN0IHZhbGlkUXVlcnlJdGVtcyA9IHF1ZXJ5SXRlbXMuZmlsdGVyKGl0ZW0gPT4ge1xuICAgICAgICBjb25zdCB2YWxpZExhYmVsID0gISFpdGVtLmxhYmVsO1xuICAgICAgICBjb25zdCB2YWxpZENvbmRpdGlvbnMgPSBpdGVtLnF1ZXJ5Q29uZGl0aW9ucy5maWx0ZXIoXG4gICAgICAgICAgY29uZGl0aW9uID0+ICEhY29uZGl0aW9uLnZhbHVlICYmICEhY29uZGl0aW9uLmtleSAmJiAhIWNvbmRpdGlvbi5kcm9wZG93blxuICAgICAgICApO1xuXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgdmFsaWRMYWJlbCAmJlxuICAgICAgICAgIHZhbGlkQ29uZGl0aW9ucy5sZW5ndGggPiAwICYmXG4gICAgICAgICAgaXRlbS5xdWVyeUNvbmRpdGlvbnMubGVuZ3RoID09PSB2YWxpZENvbmRpdGlvbnMubGVuZ3RoXG4gICAgICAgICk7XG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuIHZhbGlkUXVlcnlJdGVtcy5sZW5ndGggPiAxICYmIHZhbGlkUXVlcnlJdGVtcy5sZW5ndGggPT09IHF1ZXJ5SXRlbXMubGVuZ3RoXG4gICAgICAgID8gbnVsbFxuICAgICAgICA6IHtcbiAgICAgICAgICAgIGludmFsaWRRdWVyeUl0ZW1zOiAnaW52YWxpZCcsXG4gICAgICAgICAgfTtcbiAgICB9O1xuICB9XG59XG4iLCI8IS0tXG4gIH4gQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gIH5cbiAgfiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAgfiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gIH4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gIH5cbiAgfiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gIH5cbiAgfiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gIH4gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICB+IFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICB+IFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgfiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAgLS0+XG5cbjxmb3JtXG4gIGNsYXNzPVwiY2FzZS1jb3VudHMtY29uZmlndXJhdGlvbi1mb3JtXCJcbiAgKm5nSWY9XCJ7XG4gICAgZG9jdW1lbnRJdGVtczogZG9jdW1lbnRJdGVtcyQgfCBhc3luYyxcbiAgICBvcGVyYXRvckl0ZW1zOiBvcGVyYXRvckl0ZW1zJCxcbiAgICBxdWVyeUl0ZW1zVmFsdWU6IHF1ZXJ5SXRlbXNWYWx1ZSQgfCBhc3luY1xuICB9IGFzIG9ic1wiXG4gIFtmb3JtR3JvdXBdPVwiZm9ybVwiXG4+XG4gIDxkaXYgY2xhc3M9XCJmb3JtX19lbGVtZW50XCI+XG4gICAgPGNkcy1kcm9wZG93blxuICAgICAgW2FwcGVuZElubGluZV09XCJ0cnVlXCJcbiAgICAgIGZvcm1Db250cm9sTmFtZT1cImRvY3VtZW50RGVmaW5pdGlvblwiXG4gICAgICBbaGVscGVyVGV4dF09XCInZG9jdW1lbnREZWZpbml0aW9uSGVscGVyVGV4dCcgfCB3aWRnZXRUcmFuc2xhdGU6IGRhdGFTb3VyY2VLZXkgfCBhc3luY1wiXG4gICAgICBbaW52YWxpZFRleHRdPVwiJ2RvY3VtZW50RGVmaW5pdGlvbkhlbHBlclRleHQnIHwgd2lkZ2V0VHJhbnNsYXRlOiBkYXRhU291cmNlS2V5IHwgYXN5bmNcIlxuICAgICAgW2ludmFsaWRdPVwiZG9jdW1lbnREZWZpbml0aW9uLmRpcnR5ICYmIGRvY3VtZW50RGVmaW5pdGlvbi5pbnZhbGlkXCJcbiAgICAgIFtsYWJlbF09XCInZG9jdW1lbnREZWZpbml0aW9uJyB8IHdpZGdldFRyYW5zbGF0ZTogZGF0YVNvdXJjZUtleSB8IGFzeW5jXCJcbiAgICAgIChzZWxlY3RlZCk9XCJkb2N1bWVudERlZmluaXRpb25TZWxlY3RlZCgkZXZlbnQpXCJcbiAgICA+XG4gICAgICA8Y2RzLWRyb3Bkb3duLWxpc3QgW2l0ZW1zXT1cIm9icz8uZG9jdW1lbnRJdGVtcyB8fCBbXVwiIHR5cGU9XCJtdWx0aVwiPjwvY2RzLWRyb3Bkb3duLWxpc3Q+XG4gICAgPC9jZHMtZHJvcGRvd24+XG4gIDwvZGl2PlxuXG4gIDxjZHMtbGFiZWwgY2xhc3M9XCJjb25kaXRpb25zX19sYWJlbFwiPnt7XG4gICAgJ2NvdW50cycgfCB3aWRnZXRUcmFuc2xhdGU6IGRhdGFTb3VyY2VLZXkgfCBhc3luY1xuICB9fTwvY2RzLWxhYmVsPlxuXG4gIDxwIGNsYXNzPVwiY29uZGl0aW9uc19faGVscGVyLXRleHQgY2RzLS1mb3JtX19oZWxwZXItdGV4dFwiPlxuICAgIHt7ICdjb3VudHNIZWxwZXJUZXh0JyB8IHdpZGdldFRyYW5zbGF0ZTogZGF0YVNvdXJjZUtleSB8IGFzeW5jIH19XG4gIDwvcD5cblxuICBAZm9yIChfIG9mIHF1ZXJ5SXRlbXNMaXN0JCB8IGFzeW5jOyB0cmFjayAkaW5kZXg7IGxldCBpID0gJGluZGV4KSB7XG4gICAgPGNkcy10aWxlIGNsYXNzPVwiY291bnQtdGlsZVwiIGNkc0xheWVyPVwiMVwiPlxuICAgICAgPGRpdiBjbGFzcz1cImNvdW50LXRpbGVfX2lucHV0XCI+XG4gICAgICAgIDx2LWlucHV0XG4gICAgICAgICAgW3RpdGxlXT1cIidjb3VudFRpdGxlJyB8IHdpZGdldFRyYW5zbGF0ZTogZGF0YVNvdXJjZUtleSB8IGFzeW5jXCJcbiAgICAgICAgICBbbWFyZ2luXT1cInRydWVcIlxuICAgICAgICAgIFtkZWZhdWx0VmFsdWVdPVwib2JzLnF1ZXJ5SXRlbXNWYWx1ZVtpXT8ubGFiZWxcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJmb3JtRGlzYWJsZWRcIlxuICAgICAgICAgIFtyZXF1aXJlZF09XCJ0cnVlXCJcbiAgICAgICAgICBbZnVsbFdpZHRoXT1cInRydWVcIlxuICAgICAgICAgICh2YWx1ZUNoYW5nZSk9XCJsYWJlbFZhbHVlQ2hhbmdlKGksICRldmVudClcIlxuICAgICAgICA+XG4gICAgICAgIDwvdi1pbnB1dD5cblxuICAgICAgICA8dmFsdGltby1jYXJib24tbXVsdGktaW5wdXRcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiZm9ybURpc2FibGVkXCJcbiAgICAgICAgICBbYWRkUm93VGV4dF09XCInYWRkQ29uZGl0aW9uJyB8IHdpZGdldFRyYW5zbGF0ZTogZGF0YVNvdXJjZUtleSB8IGFzeW5jXCJcbiAgICAgICAgICBbZGVmYXVsdFZhbHVlc109XCJvYnMucXVlcnlJdGVtc1ZhbHVlW2ldPy5xdWVyeUNvbmRpdGlvbnNcIlxuICAgICAgICAgIFtkcm9wZG93bkNvbHVtblRpdGxlXT1cIidvcGVyYXRvcicgfCB3aWRnZXRUcmFuc2xhdGU6IGRhdGFTb3VyY2VLZXkgfCBhc3luY1wiXG4gICAgICAgICAgW2Ryb3Bkb3duSXRlbXNdPVwib3BlcmF0b3JJdGVtcyQgfCBhc3luY1wiXG4gICAgICAgICAgW2Z1bGxXaWR0aF09XCJ0cnVlXCJcbiAgICAgICAgICBbaW5pdGlhbEFtb3VudE9mUm93c109XCIxXCJcbiAgICAgICAgICBba2V5Q29sdW1uVGl0bGVdPVwiJ3BhdGgnIHwgd2lkZ2V0VHJhbnNsYXRlOiBkYXRhU291cmNlS2V5IHwgYXN5bmNcIlxuICAgICAgICAgIFttaW5pbXVtQW1vdW50T2ZSb3dzXT1cIjFcIlxuICAgICAgICAgIFt2YWx1ZUNvbHVtblRpdGxlXT1cIid2YWx1ZScgfCB3aWRnZXRUcmFuc2xhdGU6IGRhdGFTb3VyY2VLZXkgfCBhc3luY1wiXG4gICAgICAgICAgdHlwZT1cImtleURyb3Bkb3duVmFsdWVcIlxuICAgICAgICAgICh2YWx1ZUNoYW5nZSk9XCJjb25kaXRpb25zVmFsdWVDaGFuZ2UoaSwgJGV2ZW50KVwiXG4gICAgICAgID48L3ZhbHRpbW8tY2FyYm9uLW11bHRpLWlucHV0PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb3VudC10aWxlX19kZWxldGUtYnV0dG9uXCI+XG4gICAgICAgIDxjZHMtaWNvbi1idXR0b25cbiAgICAgICAgICBbZGlzYWJsZWRdPVwiZm9ybURpc2FibGVkIHx8IGkgPCAyXCJcbiAgICAgICAgICAoY2xpY2spPVwiZGVsZXRlQ291bnQoaSlcIlxuICAgICAgICAgIGtpbmQ9XCJkYW5nZXJcIlxuICAgICAgICAgIHNpemU9XCJzbVwiXG4gICAgICAgID5cbiAgICAgICAgICA8c3ZnIGNsYXNzPVwiY2RzLS1idG5fX2ljb25cIiBjZHNJY29uPVwidHJhc2gtY2FuXCIgc2l6ZT1cIjE2XCI+PC9zdmc+XG4gICAgICAgIDwvY2RzLWljb24tYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9jZHMtdGlsZT5cbiAgfVxuXG4gIDxidXR0b25cbiAgICBjbGFzcz1cImFkZC1jb3VudC1idXR0b25cIlxuICAgIGNkc0J1dHRvbj1cInByaW1hcnlcIlxuICAgIFtkaXNhYmxlZF09XCJmb3JtRGlzYWJsZWRcIlxuICAgIChjbGljayk9XCJhZGRRdWVyeUl0ZW0oKVwiXG4gID5cbiAgICB7eyAnQWFudGFsIHRvZXZvZWdlbicgfX1cblxuICAgIDxzdmcgY2xhc3M9XCJjZHMtLWJ0bl9faWNvblwiIGNkc0ljb249XCJhZGRcIiBzaXplPVwiMTZcIj48L3N2Zz5cbiAgPC9idXR0b24+XG48L2Zvcm0+XG4iXX0=
@@ -0,0 +1,17 @@
1
+ /*
2
+ * Copyright 2015-2024 Ritense BV, the Netherlands.
3
+ *
4
+ * Licensed under EUPL, Version 1.2 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" basis,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ export * from './case-counts-configuration.component';
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL2Rhc2hib2FyZC9zcmMvbGliL2RhdGEtc291cmNlcy9jYXNlLWNvdW50cy9jb21wb25lbnRzL2Nhc2UtY291bnRzLWNvbmZpZ3VyYXRpb24vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFFSCxjQUFjLHVDQUF1QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9jYXNlLWNvdW50cy1jb25maWd1cmF0aW9uLmNvbXBvbmVudCc7XG4iXX0=
@@ -0,0 +1,17 @@
1
+ /*
2
+ * Copyright 2015-2024 Ritense BV, the Netherlands.
3
+ *
4
+ * Licensed under EUPL, Version 1.2 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" basis,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ export * from './case-counts-configuration';
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL2Rhc2hib2FyZC9zcmMvbGliL2RhdGEtc291cmNlcy9jYXNlLWNvdW50cy9jb21wb25lbnRzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsY0FBYyw2QkFBNkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vY2FzZS1jb3VudHMtY29uZmlndXJhdGlvbic7XG4iXX0=
@@ -0,0 +1,20 @@
1
+ /*
2
+ * Copyright 2015-2024 Ritense BV, the Netherlands.
3
+ *
4
+ * Licensed under EUPL, Version 1.2 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" basis,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ export * from './components';
17
+ export * from './models';
18
+ export * from './case-counts.module';
19
+ export * from './case-counts.specification';
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL2Rhc2hib2FyZC9zcmMvbGliL2RhdGEtc291cmNlcy9jYXNlLWNvdW50cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUVILGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyw2QkFBNkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cyc7XG5leHBvcnQgKiBmcm9tICcuL21vZGVscyc7XG5leHBvcnQgKiBmcm9tICcuL2Nhc2UtY291bnRzLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2Nhc2UtY291bnRzLnNwZWNpZmljYXRpb24nO1xuIl19
@@ -0,0 +1,17 @@
1
+ /*
2
+ * Copyright 2015-2024 Ritense BV, the Netherlands.
3
+ *
4
+ * Licensed under EUPL, Version 1.2 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" basis,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ export {};
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS1jb3VudHMubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL2Rhc2hib2FyZC9zcmMvbGliL2RhdGEtc291cmNlcy9jYXNlLWNvdW50cy9tb2RlbHMvY2FzZS1jb3VudHMubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0ciLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQge1F1ZXJ5Q29uZGl0aW9ufSBmcm9tICcuLi8uLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHtNdWx0aUlucHV0VmFsdWVzfSBmcm9tICdAdmFsdGltby9jb21wb25lbnRzJztcblxuaW50ZXJmYWNlIENhc2VDb3VudHNRdWVyeUl0ZW0ge1xuICBsYWJlbDogc3RyaW5nO1xuICBxdWVyeUNvbmRpdGlvbnM6IFF1ZXJ5Q29uZGl0aW9uW107XG59XG5cbmludGVyZmFjZSBDYXNlQ291bnRzQ29uZmlndXJhdGlvbiB7XG4gIGRvY3VtZW50RGVmaW5pdGlvbjogc3RyaW5nO1xuICBxdWVyeUl0ZW1zOiBDYXNlQ291bnRzUXVlcnlJdGVtW107XG59XG5cbmludGVyZmFjZSBDYXNlQ291bnRzUXVlcnlJdGVtRm9ybSB7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIHF1ZXJ5Q29uZGl0aW9uczogTXVsdGlJbnB1dFZhbHVlcztcbn1cblxuZXhwb3J0IHtDYXNlQ291bnRzQ29uZmlndXJhdGlvbiwgQ2FzZUNvdW50c1F1ZXJ5SXRlbUZvcm0sIENhc2VDb3VudHNRdWVyeUl0ZW19O1xuIl19
@@ -0,0 +1,17 @@
1
+ /*
2
+ * Copyright 2015-2024 Ritense BV, the Netherlands.
3
+ *
4
+ * Licensed under EUPL, Version 1.2 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" basis,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ export * from './case-counts.model';
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL2Rhc2hib2FyZC9zcmMvbGliL2RhdGEtc291cmNlcy9jYXNlLWNvdW50cy9tb2RlbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFFSCxjQUFjLHFCQUFxQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9jYXNlLWNvdW50cy5tb2RlbCc7XG4iXX0=