@eqproject/eqp-dynamic-module 2.8.8 → 3.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (293) hide show
  1. package/{esm2020 → esm2022}/eqproject-eqp-dynamic-module.mjs +4 -4
  2. package/esm2022/lib/components/exported/eqp-dynamic-module/eqp-dynamic-module.component.mjs +531 -0
  3. package/esm2022/lib/components/exported/eqp-dynamic-module-configurator/eqp-dynamic-module-configurator.component.mjs +1245 -0
  4. package/esm2022/lib/components/private/add-form-field/add-form-field.component.mjs +1264 -0
  5. package/esm2022/lib/components/private/add-formula-field/add-formula-field.component.mjs +200 -0
  6. package/esm2022/lib/components/private/dbgetter/dbgetter.component.mjs +233 -0
  7. package/esm2022/lib/components/private/dynamic-module-field-fix/dynamic-module-field.component.mjs +280 -0
  8. package/esm2022/lib/components/private/field-templates/attachment-field-template/attachment-field-template.component.mjs +143 -0
  9. package/esm2022/lib/components/private/field-templates/boolean-field-template/boolean-field-template.component.mjs +75 -0
  10. package/esm2022/lib/components/private/field-templates/date-field-template/date-field-template.component.mjs +106 -0
  11. package/esm2022/lib/components/private/field-templates/image-field-selector-template/image-field-selector-template.component.mjs +107 -0
  12. package/esm2022/lib/components/private/field-templates/image-field-template/image-field-template.component.mjs +265 -0
  13. package/esm2022/lib/components/private/field-templates/image-with-markers-field-template/image-with-markers-field-template.component.mjs +261 -0
  14. package/esm2022/lib/components/private/field-templates/label-field-template/label-field-template.component.mjs +82 -0
  15. package/esm2022/lib/components/private/field-templates/list-value-field-template/list-value-field-template.component.mjs +176 -0
  16. package/esm2022/lib/components/private/field-templates/numeric-field-template/numeric-field-template.component.mjs +129 -0
  17. package/esm2022/lib/components/private/field-templates/text-field-template/text-field-template.component.mjs +103 -0
  18. package/esm2022/lib/components/private/field-templates/textarea-field-template/textarea-field-template.component.mjs +78 -0
  19. package/esm2022/lib/components/private/form-records/add-form-record/add-form-record.component.mjs +837 -0
  20. package/esm2022/lib/components/private/form-records/list-form-record/list-form-record.component.mjs +408 -0
  21. package/esm2022/lib/components/private/form-records/list-view-form-record/list-view-form-record.component.mjs +651 -0
  22. package/esm2022/lib/components/private/form-records/list-view-form-record/single-record/single-record.component.mjs +82 -0
  23. package/esm2022/lib/components/private/form-records/repair-form-fields/repair-form-fields.component.mjs +59 -0
  24. package/esm2022/lib/components/private/form-records/view-form-record/view-form-record.component.mjs +131 -0
  25. package/esm2022/lib/components/private/form-statistics/dynamic-module-filter-fix/dynamic-module-filter-fix.component.mjs +89 -0
  26. package/esm2022/lib/components/private/form-statistics/filter-form-statistic/filter-form-statistic.component.mjs +460 -0
  27. package/esm2022/lib/components/private/form-statistics/filter-templates/attachment-filter-template/attachment-filter-template.component.mjs +58 -0
  28. package/esm2022/lib/components/private/form-statistics/filter-templates/boolean-filter-template/boolean-filter-template.component.mjs +110 -0
  29. package/esm2022/lib/components/private/form-statistics/filter-templates/date-filter-template/date-filter-template.component.mjs +108 -0
  30. package/esm2022/lib/components/private/form-statistics/filter-templates/image-filter-template/image-filter-template.component.mjs +58 -0
  31. package/esm2022/lib/components/private/form-statistics/filter-templates/image-selector-filter-template/image-selector-filter-template.component.mjs +135 -0
  32. package/esm2022/lib/components/private/form-statistics/filter-templates/list-form-record-filter-template/list-form-record-filter-template.component.mjs +58 -0
  33. package/esm2022/lib/components/private/form-statistics/filter-templates/list-value-filter-template/list-value-filter-template.component.mjs +141 -0
  34. package/esm2022/lib/components/private/form-statistics/filter-templates/numeric-filter-template/numeric-filter-template.component.mjs +126 -0
  35. package/esm2022/lib/components/private/form-statistics/filter-templates/text-filter-template/text-filter-template.component.mjs +111 -0
  36. package/esm2022/lib/components/private/form-statistics/filter-templates/textarea-filter-template/textarea-filter-template.component.mjs +111 -0
  37. package/esm2022/lib/components/private/graphs/graph/graph.component.mjs +186 -0
  38. package/esm2022/lib/components/private/graphs/graphs.component.mjs +175 -0
  39. package/esm2022/lib/components/private/spinner/spinner.component.mjs +21 -0
  40. package/{esm2020 → esm2022}/lib/components/private/tmw-image-drawer/i18n.mjs +62 -62
  41. package/esm2022/lib/components/private/tmw-image-drawer/tmw-image-drawer.component.mjs +413 -0
  42. package/esm2022/lib/components/private/tmw-image-marker/tmw-image-marker.component.mjs +348 -0
  43. package/esm2022/lib/components/private/trigger-creator/dynamic-module-trigger-fix/dynamic-module-trigger-fix.component.mjs +81 -0
  44. package/esm2022/lib/components/private/trigger-creator/trigger-creator.component.mjs +199 -0
  45. package/esm2022/lib/components/private/trigger-creator/trigger-templates/boolean-trigger-template/boolean-trigger-template.component.mjs +91 -0
  46. package/esm2022/lib/components/private/trigger-creator/trigger-templates/date-trigger-template/date-trigger-template.component.mjs +88 -0
  47. package/esm2022/lib/components/private/trigger-creator/trigger-templates/list-form-record-trigger-template/list-form-record-trigger-template.component.mjs +61 -0
  48. package/esm2022/lib/components/private/trigger-creator/trigger-templates/list-value-trigger-template/list-value-trigger-template.component.mjs +69 -0
  49. package/esm2022/lib/components/private/trigger-creator/trigger-templates/numeric-trigger-template/numeric-trigger-template.component.mjs +107 -0
  50. package/esm2022/lib/components/private/trigger-creator/trigger-templates/text-trigger-template/text-trigger-template.component.mjs +92 -0
  51. package/esm2022/lib/components/private/trigger-creator/trigger-templates/textarea-trigger-template/textarea-trigger-template.component.mjs +92 -0
  52. package/esm2022/lib/directives/dynamic-loader/dynamic-loader.directive.mjs +63 -0
  53. package/esm2022/lib/directives/speech-to-text/speech-to-text.directive.mjs +192 -0
  54. package/esm2022/lib/eqp-dynamic-module.module.mjs +253 -0
  55. package/{esm2020 → esm2022}/lib/interfaces/iBaseFieldComponent.interface.mjs +1 -1
  56. package/{esm2020 → esm2022}/lib/interfaces/iRootObject.interface.mjs +1 -1
  57. package/esm2022/lib/models/baseField.model.mjs +133 -0
  58. package/esm2022/lib/models/baseObj.model.mjs +10 -0
  59. package/{esm2020 → esm2022}/lib/models/context.model.mjs +10 -8
  60. package/esm2022/lib/models/dynAttachment.mjs +52 -0
  61. package/esm2022/lib/models/dynamicModuleCompileConfig.model.mjs +45 -0
  62. package/esm2022/lib/models/dynamicModuleConfig.model.mjs +13 -0
  63. package/esm2022/lib/models/dynamicModuleConfiguratorConfig.model.mjs +11 -0
  64. package/esm2022/lib/models/dynamicModuleConfiguratorSpecificConfig.model.mjs +16 -0
  65. package/{esm2020 → esm2022}/lib/models/dynamicModuleFilterResultViewModeEnum.model.mjs +6 -6
  66. package/esm2022/lib/models/dynamicModuleGeneralConfig.model.mjs +36 -0
  67. package/esm2022/lib/models/dynamicModuleListConfig.model.mjs +48 -0
  68. package/esm2022/lib/models/dynamicModuleListFormRecordActionsDefault.mjs +35 -0
  69. package/{esm2020 → esm2022}/lib/models/dynamicModuleRepairConfig.model.mjs +10 -10
  70. package/{esm2020 → esm2022}/lib/models/dynamicModuleViewModeEnum.mjs +11 -11
  71. package/esm2022/lib/models/endPointConfiguration.model.mjs +211 -0
  72. package/{esm2020 → esm2022}/lib/models/entity.model.mjs +10 -7
  73. package/esm2022/lib/models/fields/attachmentField.model.mjs +28 -0
  74. package/esm2022/lib/models/fields/booleanField.model.mjs +15 -0
  75. package/esm2022/lib/models/fields/dateField.model.mjs +15 -0
  76. package/esm2022/lib/models/fields/imageField.model.mjs +14 -0
  77. package/esm2022/lib/models/fields/imageSelectorField.model.mjs +10 -0
  78. package/esm2022/lib/models/fields/imageWithMarkersField.model.mjs +7 -0
  79. package/{esm2020 → esm2022}/lib/models/fields/labelField.model.mjs +5 -4
  80. package/esm2022/lib/models/fields/listValueField.model.mjs +24 -0
  81. package/esm2022/lib/models/fields/lookupField.model.mjs +11 -0
  82. package/esm2022/lib/models/fields/numericField.model.mjs +13 -0
  83. package/esm2022/lib/models/fields/textField.model.mjs +18 -0
  84. package/esm2022/lib/models/fields/textareaField.model.mjs +9 -0
  85. package/esm2022/lib/models/form.model.mjs +63 -0
  86. package/esm2022/lib/models/getter.model.mjs +6 -0
  87. package/esm2022/lib/models/graph.model.mjs +19 -0
  88. package/{esm2020 → esm2022}/lib/models/logicOperator.model.mjs +55 -55
  89. package/esm2022/lib/models/record.model.mjs +39 -0
  90. package/esm2022/lib/models/statistic.model.mjs +12 -0
  91. package/esm2022/lib/models/trigger.model.mjs +63 -0
  92. package/esm2022/lib/modules/formula.model.mjs +266 -0
  93. package/{esm2020 → esm2022}/lib/modules/material.module.mjs +231 -231
  94. package/{esm2020 → esm2022}/lib/services/custom-form-validators.service.mjs +18 -18
  95. package/esm2022/lib/services/db-date.service.mjs +178 -0
  96. package/esm2022/lib/services/eqp-dynamic-module-dialog.service.mjs +114 -0
  97. package/esm2022/lib/services/global.service.mjs +43 -0
  98. package/esm2022/lib/services/spinner.service.mjs +41 -0
  99. package/esm2022/lib/services/utilityHelper.services.mjs +601 -0
  100. package/{esm2020 → esm2022}/public-api.mjs +56 -56
  101. package/fesm2022/eqproject-eqp-dynamic-module.mjs +13507 -0
  102. package/fesm2022/eqproject-eqp-dynamic-module.mjs.map +1 -0
  103. package/index.d.ts +5 -5
  104. package/lib/components/exported/eqp-dynamic-module/eqp-dynamic-module.component.d.ts +162 -162
  105. package/lib/components/exported/eqp-dynamic-module-configurator/eqp-dynamic-module-configurator.component.d.ts +308 -308
  106. package/lib/components/private/add-form-field/add-form-field.component.d.ts +263 -263
  107. package/lib/components/private/add-formula-field/add-formula-field.component.d.ts +45 -45
  108. package/lib/components/private/dbgetter/dbgetter.component.d.ts +51 -51
  109. package/lib/components/private/dynamic-module-field-fix/dynamic-module-field.component.d.ts +84 -84
  110. package/lib/components/private/field-templates/attachment-field-template/attachment-field-template.component.d.ts +57 -57
  111. package/lib/components/private/field-templates/boolean-field-template/boolean-field-template.component.d.ts +27 -27
  112. package/lib/components/private/field-templates/date-field-template/date-field-template.component.d.ts +36 -36
  113. package/lib/components/private/field-templates/image-field-selector-template/image-field-selector-template.component.d.ts +33 -33
  114. package/lib/components/private/field-templates/image-field-template/image-field-template.component.d.ts +80 -80
  115. package/lib/components/private/field-templates/image-with-markers-field-template/image-with-markers-field-template.component.d.ts +78 -78
  116. package/lib/components/private/field-templates/label-field-template/label-field-template.component.d.ts +33 -33
  117. package/lib/components/private/field-templates/list-value-field-template/list-value-field-template.component.d.ts +59 -59
  118. package/lib/components/private/field-templates/numeric-field-template/numeric-field-template.component.d.ts +40 -40
  119. package/lib/components/private/field-templates/text-field-template/text-field-template.component.d.ts +35 -35
  120. package/lib/components/private/field-templates/textarea-field-template/textarea-field-template.component.d.ts +31 -31
  121. package/lib/components/private/form-records/add-form-record/add-form-record.component.d.ts +104 -104
  122. package/lib/components/private/form-records/list-form-record/list-form-record.component.d.ts +83 -83
  123. package/lib/components/private/form-records/list-view-form-record/list-view-form-record.component.d.ts +151 -151
  124. package/lib/components/private/form-records/list-view-form-record/single-record/single-record.component.d.ts +39 -39
  125. package/lib/components/private/form-records/repair-form-fields/repair-form-fields.component.d.ts +20 -20
  126. package/lib/components/private/form-records/view-form-record/view-form-record.component.d.ts +36 -36
  127. package/lib/components/private/form-statistics/dynamic-module-filter-fix/dynamic-module-filter-fix.component.d.ts +42 -42
  128. package/lib/components/private/form-statistics/filter-form-statistic/filter-form-statistic.component.d.ts +109 -109
  129. package/lib/components/private/form-statistics/filter-templates/attachment-filter-template/attachment-filter-template.component.d.ts +21 -21
  130. package/lib/components/private/form-statistics/filter-templates/boolean-filter-template/boolean-filter-template.component.d.ts +37 -37
  131. package/lib/components/private/form-statistics/filter-templates/date-filter-template/date-filter-template.component.d.ts +37 -37
  132. package/lib/components/private/form-statistics/filter-templates/image-filter-template/image-filter-template.component.d.ts +21 -21
  133. package/lib/components/private/form-statistics/filter-templates/image-selector-filter-template/image-selector-filter-template.component.d.ts +47 -47
  134. package/lib/components/private/form-statistics/filter-templates/list-form-record-filter-template/list-form-record-filter-template.component.d.ts +21 -21
  135. package/lib/components/private/form-statistics/filter-templates/list-value-filter-template/list-value-filter-template.component.d.ts +47 -47
  136. package/lib/components/private/form-statistics/filter-templates/numeric-filter-template/numeric-filter-template.component.d.ts +40 -40
  137. package/lib/components/private/form-statistics/filter-templates/text-filter-template/text-filter-template.component.d.ts +38 -38
  138. package/lib/components/private/form-statistics/filter-templates/textarea-filter-template/textarea-filter-template.component.d.ts +38 -38
  139. package/lib/components/private/graphs/graph/graph.component.d.ts +25 -25
  140. package/lib/components/private/graphs/graphs.component.d.ts +47 -47
  141. package/lib/components/private/spinner/spinner.component.d.ts +12 -12
  142. package/lib/components/private/tmw-image-drawer/i18n.d.ts +27 -27
  143. package/lib/components/private/tmw-image-drawer/tmw-image-drawer.component.d.ts +70 -70
  144. package/lib/components/private/tmw-image-marker/tmw-image-marker.component.d.ts +62 -62
  145. package/lib/components/private/trigger-creator/dynamic-module-trigger-fix/dynamic-module-trigger-fix.component.d.ts +42 -42
  146. package/lib/components/private/trigger-creator/trigger-creator.component.d.ts +42 -42
  147. package/lib/components/private/trigger-creator/trigger-templates/boolean-trigger-template/boolean-trigger-template.component.d.ts +34 -34
  148. package/lib/components/private/trigger-creator/trigger-templates/date-trigger-template/date-trigger-template.component.d.ts +34 -34
  149. package/lib/components/private/trigger-creator/trigger-templates/list-form-record-trigger-template/list-form-record-trigger-template.component.d.ts +24 -24
  150. package/lib/components/private/trigger-creator/trigger-templates/list-value-trigger-template/list-value-trigger-template.component.d.ts +34 -34
  151. package/lib/components/private/trigger-creator/trigger-templates/numeric-trigger-template/numeric-trigger-template.component.d.ts +37 -37
  152. package/lib/components/private/trigger-creator/trigger-templates/text-trigger-template/text-trigger-template.component.d.ts +36 -36
  153. package/lib/components/private/trigger-creator/trigger-templates/textarea-trigger-template/textarea-trigger-template.component.d.ts +36 -36
  154. package/lib/directives/dynamic-loader/dynamic-loader.directive.d.ts +26 -26
  155. package/lib/directives/speech-to-text/speech-to-text.directive.d.ts +31 -31
  156. package/lib/eqp-dynamic-module.module.d.ts +85 -85
  157. package/lib/interfaces/iBaseFieldComponent.interface.d.ts +8 -8
  158. package/lib/interfaces/iRootObject.interface.d.ts +11 -11
  159. package/lib/models/baseField.model.d.ts +126 -126
  160. package/lib/models/baseObj.model.d.ts +9 -9
  161. package/lib/models/context.model.d.ts +9 -9
  162. package/lib/models/dynAttachment.d.ts +49 -49
  163. package/lib/models/dynamicModuleCompileConfig.model.d.ts +35 -35
  164. package/lib/models/dynamicModuleConfig.model.d.ts +11 -11
  165. package/lib/models/dynamicModuleConfiguratorConfig.model.d.ts +7 -7
  166. package/lib/models/dynamicModuleConfiguratorSpecificConfig.model.d.ts +11 -11
  167. package/lib/models/dynamicModuleFilterResultViewModeEnum.model.d.ts +5 -5
  168. package/lib/models/dynamicModuleGeneralConfig.model.d.ts +29 -29
  169. package/lib/models/dynamicModuleListConfig.model.d.ts +39 -39
  170. package/lib/models/dynamicModuleListFormRecordActionsDefault.d.ts +9 -9
  171. package/lib/models/dynamicModuleRepairConfig.model.d.ts +4 -4
  172. package/lib/models/dynamicModuleViewModeEnum.d.ts +10 -10
  173. package/lib/models/endPointConfiguration.model.d.ts +46 -46
  174. package/lib/models/entity.model.d.ts +11 -11
  175. package/lib/models/fields/attachmentField.model.d.ts +17 -17
  176. package/lib/models/fields/booleanField.model.d.ts +11 -11
  177. package/lib/models/fields/dateField.model.d.ts +13 -13
  178. package/lib/models/fields/imageField.model.d.ts +13 -13
  179. package/lib/models/fields/imageSelectorField.model.d.ts +12 -12
  180. package/lib/models/fields/imageWithMarkersField.model.d.ts +7 -7
  181. package/lib/models/fields/labelField.model.d.ts +4 -4
  182. package/lib/models/fields/listValueField.model.d.ts +24 -24
  183. package/lib/models/fields/lookupField.model.d.ts +10 -10
  184. package/lib/models/fields/numericField.model.d.ts +12 -12
  185. package/lib/models/fields/textField.model.d.ts +16 -16
  186. package/lib/models/fields/textareaField.model.d.ts +8 -8
  187. package/lib/models/form.model.d.ts +61 -61
  188. package/lib/models/getter.model.d.ts +5 -5
  189. package/lib/models/graph.model.d.ts +18 -18
  190. package/lib/models/logicOperator.model.d.ts +48 -48
  191. package/lib/models/record.model.d.ts +41 -41
  192. package/lib/models/statistic.model.d.ts +13 -13
  193. package/lib/models/trigger.model.d.ts +51 -51
  194. package/lib/modules/formula.model.d.ts +32 -32
  195. package/lib/modules/material.module.d.ts +37 -37
  196. package/lib/services/custom-form-validators.service.d.ts +5 -5
  197. package/lib/services/db-date.service.d.ts +24 -24
  198. package/lib/services/eqp-dynamic-module-dialog.service.d.ts +44 -44
  199. package/lib/services/global.service.d.ts +16 -16
  200. package/lib/services/spinner.service.d.ts +18 -18
  201. package/lib/services/utilityHelper.services.d.ts +101 -101
  202. package/package.json +19 -24
  203. package/public-api.d.ts +53 -53
  204. package/esm2020/lib/components/exported/eqp-dynamic-module/eqp-dynamic-module.component.mjs +0 -516
  205. package/esm2020/lib/components/exported/eqp-dynamic-module-configurator/eqp-dynamic-module-configurator.component.mjs +0 -1196
  206. package/esm2020/lib/components/private/add-form-field/add-form-field.component.mjs +0 -1202
  207. package/esm2020/lib/components/private/add-formula-field/add-formula-field.component.mjs +0 -196
  208. package/esm2020/lib/components/private/dbgetter/dbgetter.component.mjs +0 -226
  209. package/esm2020/lib/components/private/dynamic-module-field-fix/dynamic-module-field.component.mjs +0 -263
  210. package/esm2020/lib/components/private/field-templates/attachment-field-template/attachment-field-template.component.mjs +0 -138
  211. package/esm2020/lib/components/private/field-templates/boolean-field-template/boolean-field-template.component.mjs +0 -71
  212. package/esm2020/lib/components/private/field-templates/date-field-template/date-field-template.component.mjs +0 -104
  213. package/esm2020/lib/components/private/field-templates/image-field-selector-template/image-field-selector-template.component.mjs +0 -100
  214. package/esm2020/lib/components/private/field-templates/image-field-template/image-field-template.component.mjs +0 -256
  215. package/esm2020/lib/components/private/field-templates/image-with-markers-field-template/image-with-markers-field-template.component.mjs +0 -252
  216. package/esm2020/lib/components/private/field-templates/label-field-template/label-field-template.component.mjs +0 -74
  217. package/esm2020/lib/components/private/field-templates/list-value-field-template/list-value-field-template.component.mjs +0 -172
  218. package/esm2020/lib/components/private/field-templates/numeric-field-template/numeric-field-template.component.mjs +0 -124
  219. package/esm2020/lib/components/private/field-templates/text-field-template/text-field-template.component.mjs +0 -95
  220. package/esm2020/lib/components/private/field-templates/textarea-field-template/textarea-field-template.component.mjs +0 -71
  221. package/esm2020/lib/components/private/form-records/add-form-record/add-form-record.component.mjs +0 -828
  222. package/esm2020/lib/components/private/form-records/list-form-record/list-form-record.component.mjs +0 -400
  223. package/esm2020/lib/components/private/form-records/list-view-form-record/list-view-form-record.component.mjs +0 -628
  224. package/esm2020/lib/components/private/form-records/list-view-form-record/single-record/single-record.component.mjs +0 -75
  225. package/esm2020/lib/components/private/form-records/repair-form-fields/repair-form-fields.component.mjs +0 -54
  226. package/esm2020/lib/components/private/form-records/view-form-record/view-form-record.component.mjs +0 -125
  227. package/esm2020/lib/components/private/form-statistics/dynamic-module-filter-fix/dynamic-module-filter-fix.component.mjs +0 -76
  228. package/esm2020/lib/components/private/form-statistics/filter-form-statistic/filter-form-statistic.component.mjs +0 -453
  229. package/esm2020/lib/components/private/form-statistics/filter-templates/attachment-filter-template/attachment-filter-template.component.mjs +0 -57
  230. package/esm2020/lib/components/private/form-statistics/filter-templates/boolean-filter-template/boolean-filter-template.component.mjs +0 -104
  231. package/esm2020/lib/components/private/form-statistics/filter-templates/date-filter-template/date-filter-template.component.mjs +0 -105
  232. package/esm2020/lib/components/private/form-statistics/filter-templates/image-filter-template/image-filter-template.component.mjs +0 -57
  233. package/esm2020/lib/components/private/form-statistics/filter-templates/image-selector-filter-template/image-selector-filter-template.component.mjs +0 -128
  234. package/esm2020/lib/components/private/form-statistics/filter-templates/list-form-record-filter-template/list-form-record-filter-template.component.mjs +0 -57
  235. package/esm2020/lib/components/private/form-statistics/filter-templates/list-value-filter-template/list-value-filter-template.component.mjs +0 -135
  236. package/esm2020/lib/components/private/form-statistics/filter-templates/numeric-filter-template/numeric-filter-template.component.mjs +0 -120
  237. package/esm2020/lib/components/private/form-statistics/filter-templates/text-filter-template/text-filter-template.component.mjs +0 -102
  238. package/esm2020/lib/components/private/form-statistics/filter-templates/textarea-filter-template/textarea-filter-template.component.mjs +0 -102
  239. package/esm2020/lib/components/private/graphs/graph/graph.component.mjs +0 -180
  240. package/esm2020/lib/components/private/graphs/graphs.component.mjs +0 -164
  241. package/esm2020/lib/components/private/spinner/spinner.component.mjs +0 -19
  242. package/esm2020/lib/components/private/tmw-image-drawer/tmw-image-drawer.component.mjs +0 -403
  243. package/esm2020/lib/components/private/tmw-image-marker/tmw-image-marker.component.mjs +0 -336
  244. package/esm2020/lib/components/private/trigger-creator/dynamic-module-trigger-fix/dynamic-module-trigger-fix.component.mjs +0 -69
  245. package/esm2020/lib/components/private/trigger-creator/trigger-creator.component.mjs +0 -191
  246. package/esm2020/lib/components/private/trigger-creator/trigger-templates/boolean-trigger-template/boolean-trigger-template.component.mjs +0 -86
  247. package/esm2020/lib/components/private/trigger-creator/trigger-templates/date-trigger-template/date-trigger-template.component.mjs +0 -86
  248. package/esm2020/lib/components/private/trigger-creator/trigger-templates/list-form-record-trigger-template/list-form-record-trigger-template.component.mjs +0 -60
  249. package/esm2020/lib/components/private/trigger-creator/trigger-templates/list-value-trigger-template/list-value-trigger-template.component.mjs +0 -66
  250. package/esm2020/lib/components/private/trigger-creator/trigger-templates/numeric-trigger-template/numeric-trigger-template.component.mjs +0 -102
  251. package/esm2020/lib/components/private/trigger-creator/trigger-templates/text-trigger-template/text-trigger-template.component.mjs +0 -84
  252. package/esm2020/lib/components/private/trigger-creator/trigger-templates/textarea-trigger-template/textarea-trigger-template.component.mjs +0 -84
  253. package/esm2020/lib/directives/dynamic-loader/dynamic-loader.directive.mjs +0 -59
  254. package/esm2020/lib/directives/speech-to-text/speech-to-text.directive.mjs +0 -186
  255. package/esm2020/lib/eqp-dynamic-module.module.mjs +0 -253
  256. package/esm2020/lib/models/baseField.model.mjs +0 -101
  257. package/esm2020/lib/models/baseObj.model.mjs +0 -9
  258. package/esm2020/lib/models/dynAttachment.mjs +0 -21
  259. package/esm2020/lib/models/dynamicModuleCompileConfig.model.mjs +0 -13
  260. package/esm2020/lib/models/dynamicModuleConfig.model.mjs +0 -9
  261. package/esm2020/lib/models/dynamicModuleConfiguratorConfig.model.mjs +0 -9
  262. package/esm2020/lib/models/dynamicModuleConfiguratorSpecificConfig.model.mjs +0 -15
  263. package/esm2020/lib/models/dynamicModuleGeneralConfig.model.mjs +0 -36
  264. package/esm2020/lib/models/dynamicModuleListConfig.model.mjs +0 -30
  265. package/esm2020/lib/models/dynamicModuleListFormRecordActionsDefault.mjs +0 -11
  266. package/esm2020/lib/models/endPointConfiguration.model.mjs +0 -205
  267. package/esm2020/lib/models/fields/attachmentField.model.mjs +0 -22
  268. package/esm2020/lib/models/fields/booleanField.model.mjs +0 -12
  269. package/esm2020/lib/models/fields/dateField.model.mjs +0 -15
  270. package/esm2020/lib/models/fields/imageField.model.mjs +0 -15
  271. package/esm2020/lib/models/fields/imageSelectorField.model.mjs +0 -8
  272. package/esm2020/lib/models/fields/imageWithMarkersField.model.mjs +0 -8
  273. package/esm2020/lib/models/fields/listValueField.model.mjs +0 -11
  274. package/esm2020/lib/models/fields/lookupField.model.mjs +0 -5
  275. package/esm2020/lib/models/fields/numericField.model.mjs +0 -5
  276. package/esm2020/lib/models/fields/textField.model.mjs +0 -14
  277. package/esm2020/lib/models/fields/textareaField.model.mjs +0 -4
  278. package/esm2020/lib/models/form.model.mjs +0 -24
  279. package/esm2020/lib/models/getter.model.mjs +0 -3
  280. package/esm2020/lib/models/graph.model.mjs +0 -15
  281. package/esm2020/lib/models/record.model.mjs +0 -10
  282. package/esm2020/lib/models/statistic.model.mjs +0 -8
  283. package/esm2020/lib/models/trigger.model.mjs +0 -41
  284. package/esm2020/lib/modules/formula.model.mjs +0 -265
  285. package/esm2020/lib/services/db-date.service.mjs +0 -178
  286. package/esm2020/lib/services/eqp-dynamic-module-dialog.service.mjs +0 -114
  287. package/esm2020/lib/services/global.service.mjs +0 -41
  288. package/esm2020/lib/services/spinner.service.mjs +0 -43
  289. package/esm2020/lib/services/utilityHelper.services.mjs +0 -598
  290. package/fesm2015/eqproject-eqp-dynamic-module.mjs +0 -12782
  291. package/fesm2015/eqproject-eqp-dynamic-module.mjs.map +0 -1
  292. package/fesm2020/eqproject-eqp-dynamic-module.mjs +0 -12751
  293. package/fesm2020/eqproject-eqp-dynamic-module.mjs.map +0 -1
@@ -1,24 +0,0 @@
1
- import { BaseObj } from "./baseObj.model";
2
- /**
3
- * Classe che rappresenta una Form completa.
4
- * Si tratta dell'oggetto che viene rappresentato a video e con cui l'utente interagisce.
5
- */
6
- export class Form extends BaseObj {
7
- }
8
- export class FormFieldGroup {
9
- }
10
- export class ActionOnRecord {
11
- }
12
- export var FormTypeEnum;
13
- (function (FormTypeEnum) {
14
- FormTypeEnum[FormTypeEnum["SCALAR"] = 1] = "SCALAR";
15
- FormTypeEnum[FormTypeEnum["LIST"] = 2] = "LIST"; /* form di tipo lista che viene rappresentata con molti record */
16
- })(FormTypeEnum || (FormTypeEnum = {}));
17
- export var FormScalarTypeEnum;
18
- (function (FormScalarTypeEnum) {
19
- FormScalarTypeEnum[FormScalarTypeEnum["Semplice"] = 1] = "Semplice";
20
- FormScalarTypeEnum[FormScalarTypeEnum["A step"] = 2] = "A step";
21
- FormScalarTypeEnum[FormScalarTypeEnum["In tab"] = 3] = "In tab";
22
- FormScalarTypeEnum[FormScalarTypeEnum["In accordion"] = 4] = "In accordion"; //GROUPED_BY_ACCORDION
23
- })(FormScalarTypeEnum || (FormScalarTypeEnum = {}));
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VxcC1keW5hbWljLW1vZHVsZS9zcmMvbGliL21vZGVscy9mb3JtLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUsxQzs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sSUFBSyxTQUFRLE9BQU87Q0F5Q2hDO0FBRUQsTUFBTSxPQUFPLGNBQWM7Q0FHMUI7QUFFRCxNQUFNLE9BQU8sY0FBYztDQUsxQjtBQUVELE1BQU0sQ0FBTixJQUFZLFlBR1g7QUFIRCxXQUFZLFlBQVk7SUFDcEIsbURBQVUsQ0FBQTtJQUNWLCtDQUFRLENBQUEsQ0FBUSxpRUFBaUU7QUFDckYsQ0FBQyxFQUhXLFlBQVksS0FBWixZQUFZLFFBR3ZCO0FBRUQsTUFBTSxDQUFOLElBQVksa0JBS1g7QUFMRCxXQUFZLGtCQUFrQjtJQUMxQixtRUFBYyxDQUFBO0lBQ2QsK0RBQVksQ0FBQTtJQUNaLCtEQUFZLENBQUE7SUFDWiwyRUFBa0IsQ0FBQSxDQUFDLHNCQUFzQjtBQUM3QyxDQUFDLEVBTFcsa0JBQWtCLEtBQWxCLGtCQUFrQixRQUs3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VPYmogfSBmcm9tIFwiLi9iYXNlT2JqLm1vZGVsXCI7XHJcbmltcG9ydCB7IElSb290T2JqZWN0IH0gZnJvbSBcIi4uL2ludGVyZmFjZXMvaVJvb3RPYmplY3QuaW50ZXJmYWNlXCI7XHJcbmltcG9ydCB7IEJhc2VGaWVsZCB9IGZyb20gXCIuL2Jhc2VGaWVsZC5tb2RlbFwiO1xyXG5pbXBvcnQgeyBUcmlnZ2VyIH0gZnJvbSBcIi4vdHJpZ2dlci5tb2RlbFwiO1xyXG5cclxuLyoqXHJcbiAqIENsYXNzZSBjaGUgcmFwcHJlc2VudGEgdW5hIEZvcm0gY29tcGxldGEuXHJcbiAqIFNpIHRyYXR0YSBkZWxsJ29nZ2V0dG8gY2hlIHZpZW5lIHJhcHByZXNlbnRhdG8gYSB2aWRlbyBlIGNvbiBjdWkgbCd1dGVudGUgaW50ZXJhZ2lzY2UuXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgRm9ybSBleHRlbmRzIEJhc2VPYmogaW1wbGVtZW50cyBJUm9vdE9iamVjdCB7XHJcbiAgICBDb2RlOiBzdHJpbmc7XHJcbiAgICBOYW1lOiBzdHJpbmc7XHJcbiAgICBEZXNjcmlwdGlvbjogc3RyaW5nO1xyXG4gICAgVmVyc2lvbjogbnVtYmVyO1xyXG4gICAgT3JnYUlEOiBzdHJpbmc7XHJcbiAgICBQcm9qZWN0TmFtZTogc3RyaW5nO1xyXG4gICAgLy8gRm9ybVR5cGU6IEZvcm1UeXBlRW51bTtcclxuICAgIEZvcm1TY2FsYXJUeXBlOiBGb3JtU2NhbGFyVHlwZUVudW07XHJcbiAgICBGb3JtRmllbGRzR3JvdXBzOiBBcnJheTxGb3JtRmllbGRHcm91cD47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBFbGVuY28gZGVpIGNhbXBpIHJhcHByZXNlbnRhdGkgbmVsbGEgZm9ybVxyXG4gICAgICogcG9zc29ubyBhcHBhcnRlbmVyZSBhZCB1bmEgc29sYSBlbnRpdMOgXHJcbiAgICAgKi9cclxuXHJcbiAgICBGaWVsZHM6IEFycmF5PEJhc2VGaWVsZD47XHJcbiAgICBBY3Rpb25zT25SZWNvcmQ6IEFycmF5PEFjdGlvbk9uUmVjb3JkPjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRyaWdnZXJzXHJcbiAgICAgKi9cclxuXHJcbiAgICBUcmlnZ2VyczogQXJyYXk8VHJpZ2dlcj47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBFbGVuY28gZGVsbGUgZm9ybSBjb250ZW51dGUgbmVsbGEgZm9ybSBiYXNlLCBhZCBlc2VtcGlvIHBvc3Nvbm8gZXNzZXJlIGxlIHZhcmllIGZvcm0gZGlcclxuICAgICAqIGRldHRhZ2xpb1xyXG4gICAgICovXHJcblxyXG4gICAgSW5uZXJGb3JtczogQXJyYXk8Rm9ybT47XHJcbiAgICBDcmVhdGlvbkRhdGU6IERhdGU7XHJcbiAgICBDcmVhdGlvblVzZXI6IG51bWJlcjtcclxuICAgIE1vZGlmeURhdGU6IERhdGU7XHJcbiAgICBNb2RpZnlVc2VyOiBudW1iZXI7XHJcbiAgICBSb290RW50aXR5SUQ6IHN0cmluZztcclxuXHJcbiAgICAvLyBQcm9wcmlldMOgIGNsaWVudFxyXG4gICAgT2xkTmFtZT86IHN0cmluZztcclxuICAgIE9iamVjdEZpZWxkczogYW55W107XHJcbiAgICBPYmplY3RUcmlnZ2VyczogYW55O1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgRm9ybUZpZWxkR3JvdXAge1xyXG4gICAgTmFtZTogc3RyaW5nO1xyXG4gICAgT3JkaW5hbFBvc2l0aW9uPzogbnVtYmVyO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQWN0aW9uT25SZWNvcmQge1xyXG4gICAgTmFtZTogc3RyaW5nO1xyXG4gICAgSWNvbjogc3RyaW5nO1xyXG4gICAgQWN0aW9uOiBzdHJpbmc7IC8vQ29kaWNlIGpzXHJcbiAgICBPcmRpbmFsUG9zaXRpb246IG51bWJlcjtcclxufVxyXG5cclxuZXhwb3J0IGVudW0gRm9ybVR5cGVFbnVtIHtcclxuICAgIFNDQUxBUiA9IDEsICAgICAvKiBmb3JtIGRpIHRpcG8gc2NhbGFyZSAqL1xyXG4gICAgTElTVCA9IDIgICAgICAgIC8qIGZvcm0gZGkgdGlwbyBsaXN0YSBjaGUgdmllbmUgcmFwcHJlc2VudGF0YSBjb24gbW9sdGkgcmVjb3JkICovXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIEZvcm1TY2FsYXJUeXBlRW51bSB7XHJcbiAgICBcIlNlbXBsaWNlXCIgPSAxLCAvL0ZMQVRcclxuICAgIFwiQSBzdGVwXCIgPSAyLCAvL1NURVBQRVJcclxuICAgIFwiSW4gdGFiXCIgPSAzLCAvL0dST1VQRURfQllfVEFCXHJcbiAgICBcIkluIGFjY29yZGlvblwiID0gNCAvL0dST1VQRURfQllfQUNDT1JESU9OXHJcbn0iXX0=
@@ -1,3 +0,0 @@
1
- export class Contestualization {
2
- }
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0dGVyLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXFwLWR5bmFtaWMtbW9kdWxlL3NyYy9saWIvbW9kZWxzL2dldHRlci5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8saUJBQWlCO0NBSTdCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIENvbnRlc3R1YWxpemF0aW9uIHtcclxuICAgIGVudGl0eVRhYmxlTmFtZTogc3RyaW5nO1xyXG4gICAgZW50aXR5SUQ6IG51bWJlcjsgICBcclxuICAgIGVudGl0eURNQWRkaXRpb25hbFBhcmFtOiBzdHJpbmc7XHJcbn0iXX0=
@@ -1,15 +0,0 @@
1
- /**
2
- * Classe base che implementa la valorizzazione dell'ID (se null) con una nuova GUID
3
- * in creazione dell'oggetto.
4
- * Per scelta architetturale, visto che non possiamo assumere la persistenza su DB relazionale o su NOSQL, ogni
5
- * oggetto della configurazione viene persistito, e gestito con ID di tipo stringa creato da una GUID.
6
- */
7
- export class GraphField {
8
- constructor() {
9
- this.Coords = new Array();
10
- this.Visible = true;
11
- }
12
- }
13
- export class Coords {
14
- }
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhcGgubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lcXAtZHluYW1pYy1tb2R1bGUvc3JjL2xpYi9tb2RlbHMvZ3JhcGgubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0c7QUFDSCxNQUFNLE9BQU8sVUFBVTtJQUF2QjtRQUdJLFdBQU0sR0FBa0IsSUFBSSxLQUFLLEVBQVUsQ0FBQztRQUM1QyxZQUFPLEdBQVksSUFBSSxDQUFDO0lBQzVCLENBQUM7Q0FBQTtBQUVELE1BQU0sT0FBTyxNQUFNO0NBS2xCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIENsYXNzZSBiYXNlIGNoZSBpbXBsZW1lbnRhIGxhIHZhbG9yaXp6YXppb25lIGRlbGwnSUQgKHNlIG51bGwpIGNvbiB1bmEgbnVvdmEgR1VJRCBcclxuICogaW4gY3JlYXppb25lIGRlbGwnb2dnZXR0by5cclxuICogUGVyIHNjZWx0YSBhcmNoaXRldHR1cmFsZSwgdmlzdG8gY2hlIG5vbiBwb3NzaWFtbyBhc3N1bWVyZSBsYSBwZXJzaXN0ZW56YSBzdSBEQiByZWxhemlvbmFsZSBvIHN1IE5PU1FMLCBvZ25pXHJcbiAqIG9nZ2V0dG8gZGVsbGEgY29uZmlndXJhemlvbmUgdmllbmUgcGVyc2lzdGl0bywgZSBnZXN0aXRvIGNvbiBJRCBkaSB0aXBvIHN0cmluZ2EgY3JlYXRvIGRhIHVuYSBHVUlELlxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIEdyYXBoRmllbGQge1xyXG4gICAgTmFtZTogc3RyaW5nO1xyXG4gICAgRGVzY3JpcHRpb246IHN0cmluZztcclxuICAgIENvb3JkczogQXJyYXk8Q29vcmRzPiA9IG5ldyBBcnJheTxDb29yZHM+KCk7XHJcbiAgICBWaXNpYmxlOiBib29sZWFuID0gdHJ1ZTtcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIENvb3JkcyB7XHJcbiAgICB4OiBEYXRlO1xyXG4gICAgeTogbnVtYmVyO1xyXG4gICAgbGFiZWw6IHN0cmluZztcclxuICAgIG5hbWU6IHN0cmluZztcclxufSJdfQ==
@@ -1,10 +0,0 @@
1
- export class Record {
2
- }
3
- export class DynRecord {
4
- constructor() {
5
- this.Values = {};
6
- }
7
- }
8
- export class RecordButton {
9
- }
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb3JkLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXFwLWR5bmFtaWMtbW9kdWxlL3NyYy9saWIvbW9kZWxzL3JlY29yZC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sTUFBTTtDQWNsQjtBQUVELE1BQU0sT0FBTyxTQUFTO0lBQXRCO1FBS0ksV0FBTSxHQUE0QixFQUFFLENBQUM7SUFXekMsQ0FBQztDQUFBO0FBRUQsTUFBTSxPQUFPLFlBQVk7Q0FNeEIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgUmVjb3JkIHtcclxuICAgIElEOiBzdHJpbmc7XHJcbiAgICBFbnRJRDogc3RyaW5nO1xyXG4gICAgVmVyc2lvbjogbnVtYmVyO1xyXG4gICAgdXNlcklEOiBzdHJpbmc7XHJcbiAgICBBbnN3ZXJEYXRlOiBzdHJpbmc7XHJcbiAgICBIVE1McmVhZGFibGVWYWx1ZXM6IHN0cmluZztcclxuICAgIEFkZGl0aW9uYWxQYXJhbXM6IGFueTtcclxuICAgIEFkZGl0aW9uYWxJbmZvOiBhbnk7XHJcbiAgICBba2V5OiBzdHJpbmddOiBhbnk7XHJcbiAgICBGS19JbnNlcnRVc2VyOiBhbnk7IC8vIGludCBvIHN0cmluZ1xyXG4gICAgSW5zZXJ0RGF0ZTogRGF0ZTtcclxuICAgIEZLX1VwZGF0ZVVzZXI6IGFueTsgLy8gaW50IG8gc3RyaW5nXHJcbiAgICBVcGRhdGVEYXRlOiBEYXRlO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgRHluUmVjb3JkIHtcclxuICAgIElEOiBzdHJpbmc7XHJcbiAgICBFbnRJRDogc3RyaW5nO1xyXG4gICAgVmVyc2lvbjogbnVtYmVyO1xyXG4gICAgdXNlcklEOiBzdHJpbmc7XHJcbiAgICBWYWx1ZXM6IHsgW2tleTogc3RyaW5nXTogYW55OyB9ID0ge307XHJcbiAgICBTZXJpYWxpemVkVmFsdWVzOiBzdHJpbmc7XHJcbiAgICBIVE1McmVhZGFibGVWYWx1ZXM6IHN0cmluZztcclxuICAgIEFuc3dlckRhdGU6IHN0cmluZztcclxuICAgIEFkZGl0aW9uYWxQYXJhbXM6IHN0cmluZztcclxuICAgIEFkZGl0aW9uYWxJbmZvOiBhbnk7XHJcbiAgICBQcmVmaWx0ZXJQYXJhbXM6IHN0cmluZztcclxuICAgIEZLX0luc2VydFVzZXI6IGFueTsgLy8gaW50IG8gc3RyaW5nXHJcbiAgICBJbnNlcnREYXRlOiBEYXRlO1xyXG4gICAgRktfVXBkYXRlVXNlcjogYW55OyAvLyBpbnQgbyBzdHJpbmdcclxuICAgIFVwZGF0ZURhdGU6IERhdGU7XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBSZWNvcmRCdXR0b24ge1xyXG5cdHB1YmxpYyBpY29uOiBzdHJpbmc7XHJcblx0cHVibGljIHRleHQ6IHN0cmluZztcclxuXHRwdWJsaWMgdmlzaWJsZTogYm9vbGVhbjtcclxuXHRwdWJsaWMgZm46IEZ1bmN0aW9uO1xyXG5cdHB1YmxpYyBleHRyYUNsYXNzOiBzdHJpbmc7IFxyXG59Il19
@@ -1,8 +0,0 @@
1
- export class Statistic {
2
- }
3
- export class FilterStatistic {
4
- constructor() {
5
- this.Statistics = new Array();
6
- }
7
- }
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGlzdGljLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXFwLWR5bmFtaWMtbW9kdWxlL3NyYy9saWIvbW9kZWxzL3N0YXRpc3RpYy5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxNQUFNLE9BQU8sU0FBUztDQUtyQjtBQUVELE1BQU0sT0FBTyxlQUFlO0lBQTVCO1FBQ0ksZUFBVSxHQUFxQixJQUFJLEtBQUssRUFBYSxDQUFDO0lBRzFELENBQUM7Q0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZpZWxkVHlwZUVudW0gfSBmcm9tIFwiLi9iYXNlRmllbGQubW9kZWxcIjtcclxuaW1wb3J0IHsgTG9naWNPcGVyYXRvckJvb2xlYW4sIExvZ2ljT3BlcmF0b3JEYXRlLCBMb2dpY09wZXJhdG9ySW1hZ2VTZWxlY3RvciwgTG9naWNPcGVyYXRvckxpc3RWYWx1ZSwgTG9naWNPcGVyYXRvck51bWVyaWMsIExvZ2ljT3BlcmF0b3JUZXh0IH0gZnJvbSBcIi4vbG9naWNPcGVyYXRvci5tb2RlbFwiO1xyXG5cclxuZXhwb3J0IGNsYXNzIFN0YXRpc3RpY3tcclxuICAgIGZpZWxkdHlwZTpGaWVsZFR5cGVFbnVtO1xyXG4gICAga2V5OiBzdHJpbmc7XHJcbiAgICB2YWx1ZTogc3RyaW5nO1xyXG4gICAgbG9naWNvcGVyYXRvcjpMb2dpY09wZXJhdG9yQm9vbGVhbiB8IExvZ2ljT3BlcmF0b3JMaXN0VmFsdWUgfCBMb2dpY09wZXJhdG9yTnVtZXJpYyB8IExvZ2ljT3BlcmF0b3JUZXh0IHwgTG9naWNPcGVyYXRvckRhdGUgfCBMb2dpY09wZXJhdG9ySW1hZ2VTZWxlY3RvclxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgRmlsdGVyU3RhdGlzdGljIHtcclxuICAgIFN0YXRpc3RpY3M6IEFycmF5PFN0YXRpc3RpYz4gPSBuZXcgQXJyYXk8U3RhdGlzdGljPigpO1xyXG4gICAgUHJlZmlsdGVyUGFyYW1zOiBhbnk7XHJcbiAgICBBZGRpdGlvbmFsUGFyYW1zOiBhbnk7XHJcbn0iXX0=
@@ -1,41 +0,0 @@
1
- import { Record } from '../models/record.model';
2
- export class Trigger {
3
- constructor() {
4
- this.formulas = {};
5
- this.CID = 'xxxx-xxxx-xxxx-xxxx'.replace(/[xy]/g, function (c) {
6
- var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);
7
- return v.toString(16);
8
- });
9
- }
10
- }
11
- export class TriggerCondition {
12
- constructor() {
13
- this.record = new Record();
14
- this.CID = 'xxxx-xxxx-xxxx-xxxx'.replace(/[xy]/g, function (c) {
15
- var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);
16
- return v.toString(16);
17
- });
18
- }
19
- }
20
- export class TriggerProperty {
21
- constructor(type) {
22
- this.type = type;
23
- }
24
- }
25
- export var TriggerPropertyTypeEnum;
26
- (function (TriggerPropertyTypeEnum) {
27
- TriggerPropertyTypeEnum[TriggerPropertyTypeEnum["STRING"] = 1] = "STRING";
28
- TriggerPropertyTypeEnum[TriggerPropertyTypeEnum["DMMODULE"] = 2] = "DMMODULE";
29
- })(TriggerPropertyTypeEnum || (TriggerPropertyTypeEnum = {}));
30
- export class Condition {
31
- }
32
- export var BooleanLogicOperatorType;
33
- (function (BooleanLogicOperatorType) {
34
- BooleanLogicOperatorType[BooleanLogicOperatorType["AND"] = 1] = "AND";
35
- BooleanLogicOperatorType[BooleanLogicOperatorType["AND NOT"] = 2] = "AND NOT";
36
- BooleanLogicOperatorType[BooleanLogicOperatorType["OR"] = 3] = "OR";
37
- BooleanLogicOperatorType[BooleanLogicOperatorType["OR NOT"] = 4] = "OR NOT";
38
- })(BooleanLogicOperatorType || (BooleanLogicOperatorType = {}));
39
- export class FireTrigger {
40
- }
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJpZ2dlci5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VxcC1keW5hbWljLW1vZHVsZS9zcmMvbGliL21vZGVscy90cmlnZ2VyLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUdoRCxNQUFNLE9BQU8sT0FBTztJQU9oQjtRQUZBLGFBQVEsR0FBUSxFQUFFLENBQUM7UUFHZixJQUFJLENBQUMsR0FBRyxHQUFHLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDO1lBQ3pELElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUM1QixDQUFDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUM7WUFDckMsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzFCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztDQUNKO0FBRUQsTUFBTSxPQUFPLGdCQUFnQjtJQU96QjtRQUpBLFdBQU0sR0FBVyxJQUFJLE1BQU0sRUFBRSxDQUFDO1FBSzFCLElBQUksQ0FBQyxHQUFHLEdBQUcscUJBQXFCLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUM7WUFDekQsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQzVCLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQztZQUNyQyxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDMUIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0NBQ0o7QUFFRCxNQUFNLE9BQU8sZUFBZTtJQUt4QixZQUFZLElBQUk7UUFDWixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztJQUNyQixDQUFDO0NBQ0o7QUFFRCxNQUFNLENBQU4sSUFBWSx1QkFHWDtBQUhELFdBQVksdUJBQXVCO0lBQy9CLHlFQUFVLENBQUE7SUFDViw2RUFBWSxDQUFBO0FBQ2hCLENBQUMsRUFIVyx1QkFBdUIsS0FBdkIsdUJBQXVCLFFBR2xDO0FBRUQsTUFBTSxPQUFPLFNBQVM7Q0FNckI7QUFFRCxNQUFNLENBQU4sSUFBWSx3QkFLWDtBQUxELFdBQVksd0JBQXdCO0lBQ2hDLHFFQUFTLENBQUE7SUFDVCw2RUFBYSxDQUFBO0lBQ2IsbUVBQVEsQ0FBQTtJQUNSLDJFQUFZLENBQUE7QUFDaEIsQ0FBQyxFQUxXLHdCQUF3QixLQUF4Qix3QkFBd0IsUUFLbkM7QUFFRCxNQUFNLE9BQU8sV0FBVztDQU92QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZpZWxkVHlwZUVudW0sIEJhc2VGaWVsZCB9IGZyb20gJy4vYmFzZUZpZWxkLm1vZGVsJztcclxuaW1wb3J0IHsgTG9naWNPcGVyYXRvckJvb2xlYW4sIExvZ2ljT3BlcmF0b3JMaXN0VmFsdWUsIExvZ2ljT3BlcmF0b3JOdW1lcmljLCBMb2dpY09wZXJhdG9yVGV4dCwgTG9naWNPcGVyYXRvckRhdGUsIExvZ2ljT3BlcmF0b3JJbWFnZVNlbGVjdG9yLCBMb2dpY09wZXJhdG9yIH0gZnJvbSBcIi4vbG9naWNPcGVyYXRvci5tb2RlbFwiO1xyXG5pbXBvcnQgeyBSZWNvcmQgfSBmcm9tICcuLi9tb2RlbHMvcmVjb3JkLm1vZGVsJztcclxuaW1wb3J0IHsgRm9ybSB9IGZyb20gXCIuL2Zvcm0ubW9kZWxcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBUcmlnZ2VyIHtcclxuICAgIENJRDogc3RyaW5nO1xyXG4gICAgZGVzY3JpcHRpb246IHN0cmluZztcclxuICAgIGV4ZWN1dGlvbjogc3RyaW5nO1xyXG4gICAgY29uZGl0aW9uczogQXJyYXk8VHJpZ2dlckNvbmRpdGlvbj47XHJcbiAgICBmb3JtdWxhczogYW55ID0ge307XHJcblxyXG4gICAgY29uc3RydWN0b3IoKXtcclxuICAgICAgICB0aGlzLkNJRCA9ICd4eHh4LXh4eHgteHh4eC14eHh4Jy5yZXBsYWNlKC9beHldL2csIGZ1bmN0aW9uIChjKSB7XHJcbiAgICAgICAgICAgIHZhciByID0gTWF0aC5yYW5kb20oKSAqIDE2IHwgMCxcclxuICAgICAgICAgICAgICB2ID0gYyA9PSAneCcgPyByIDogKHIgJiAweDMgfCAweDgpO1xyXG4gICAgICAgICAgICByZXR1cm4gdi50b1N0cmluZygxNik7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBUcmlnZ2VyQ29uZGl0aW9uIHtcclxuICAgIENJRDogc3RyaW5nO1xyXG4gICAgRmllbGQ6IEJhc2VGaWVsZDtcclxuICAgIHJlY29yZDogUmVjb3JkID0gbmV3IFJlY29yZCgpO1xyXG4gICAgbG9naWNvcGVyYXRvcjpMb2dpY09wZXJhdG9yQm9vbGVhbiB8IExvZ2ljT3BlcmF0b3JMaXN0VmFsdWUgfCBMb2dpY09wZXJhdG9yTnVtZXJpYyB8IExvZ2ljT3BlcmF0b3JUZXh0IHwgTG9naWNPcGVyYXRvckRhdGUgfCBMb2dpY09wZXJhdG9ySW1hZ2VTZWxlY3RvciB8IExvZ2ljT3BlcmF0b3JcclxuICAgIGJvb2xlYW5sb2dpY29wZXJhdG9yOiBCb29sZWFuTG9naWNPcGVyYXRvclR5cGVcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcigpe1xyXG4gICAgICAgIHRoaXMuQ0lEID0gJ3h4eHgteHh4eC14eHh4LXh4eHgnLnJlcGxhY2UoL1t4eV0vZywgZnVuY3Rpb24gKGMpIHtcclxuICAgICAgICAgICAgdmFyIHIgPSBNYXRoLnJhbmRvbSgpICogMTYgfCAwLFxyXG4gICAgICAgICAgICAgIHYgPSBjID09ICd4JyA/IHIgOiAociAmIDB4MyB8IDB4OCk7XHJcbiAgICAgICAgICAgIHJldHVybiB2LnRvU3RyaW5nKDE2KTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFRyaWdnZXJQcm9wZXJ0eSB7XHJcbiAgICB0eXBlOiBUcmlnZ2VyUHJvcGVydHlUeXBlRW51bTtcclxuICAgIHZhbHVlOiBzdHJpbmc7XHJcbiAgICB0b29sdGlwOiBzdHJpbmc7XHJcblxyXG4gICAgY29uc3RydWN0b3IodHlwZSl7XHJcbiAgICAgICAgdGhpcy50eXBlID0gdHlwZTtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGVudW0gVHJpZ2dlclByb3BlcnR5VHlwZUVudW0ge1xyXG4gICAgU1RSSU5HID0gMSxcclxuICAgIERNTU9EVUxFID0gMlxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQ29uZGl0aW9ue1xyXG4gICAgZmllbGRUeXBlOkZpZWxkVHlwZUVudW07XHJcbiAgICBrZXk6IHN0cmluZztcclxuICAgIHZhbHVlOiBzdHJpbmc7XHJcbiAgICBsb2dpY29wZXJhdG9yOkxvZ2ljT3BlcmF0b3JCb29sZWFuIHwgTG9naWNPcGVyYXRvckxpc3RWYWx1ZSB8IExvZ2ljT3BlcmF0b3JOdW1lcmljIHwgTG9naWNPcGVyYXRvclRleHQgfCBMb2dpY09wZXJhdG9yRGF0ZSB8IExvZ2ljT3BlcmF0b3JJbWFnZVNlbGVjdG9yXHJcbiAgICBib29sZWFubG9naWNvcGVyYXRvcjogQm9vbGVhbkxvZ2ljT3BlcmF0b3JUeXBlXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIEJvb2xlYW5Mb2dpY09wZXJhdG9yVHlwZSB7XHJcbiAgICBcIkFORFwiID0gMSxcclxuICAgIFwiQU5EIE5PVFwiID0gMixcclxuICAgIFwiT1JcIiA9IDMsXHJcbiAgICBcIk9SIE5PVFwiID0gNFxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgRmlyZVRyaWdnZXIge1xyXG4gICAgZm9ybTogRm9ybTtcclxuICAgIHRyaWdnZXI6IFRyaWdnZXI7XHJcbiAgICByZWNvcmQ6IFJlY29yZDtcclxuICAgIGZvcm11bGFzOiBhbnk7XHJcbiAgICB1c2VyUGF0aWVudDogc3RyaW5nO1xyXG4gICAgdXNlck1lZGljYWxFeGFtaW5hdGlvbjogbnVtYmVyO1xyXG59Il19
@@ -1,265 +0,0 @@
1
- export class Formula {
2
- constructor(formula = '') {
3
- this.current_number = 0;
4
- this.prev_number = 0;
5
- this.stack = [];
6
- this.start = false;
7
- this.dotted = false; // input number having dot
8
- this.is_operand = false;
9
- this.radians = true;
10
- this.operation = '';
11
- this.memory = 0;
12
- this.in_memory = false;
13
- this.bracket = false;
14
- this.secondScreen = false;
15
- this.formula = formula;
16
- }
17
- get() {
18
- return this.formula;
19
- }
20
- parse(value) {
21
- return parseFloat(value);
22
- }
23
- getCurrentNumber() {
24
- return this.parse(this.formula);
25
- }
26
- setRadians(switcher) {
27
- this.radians = switcher;
28
- return this.radians;
29
- }
30
- clear() {
31
- this.formula = '0';
32
- this.dotted = false;
33
- this.is_operand = false;
34
- this.operation = '';
35
- this.start = false;
36
- this.stack = [];
37
- this.bracket = false;
38
- return this.formula;
39
- }
40
- clearMemory() {
41
- this.memory = 0;
42
- this.in_memory = false;
43
- }
44
- sumToMemory() {
45
- let value = this.getCurrentNumber();
46
- this.memory += value;
47
- this.in_memory = true;
48
- this.start = true;
49
- }
50
- deductToMemory() {
51
- let value = this.getCurrentNumber();
52
- this.memory -= value;
53
- this.in_memory = true;
54
- this.start = true;
55
- }
56
- readMemory() {
57
- this.formula = this.memory.toString();
58
- return this.formula;
59
- }
60
- addBracket(value) {
61
- // brackets can be set only if we have not set them before and we set operand (if we set brackets first - it will not make sense)
62
- if (value == '(' && this.bracket == false && this.is_operand == true) {
63
- this.stack.push(value);
64
- this.bracket = true;
65
- this.is_operand = false;
66
- }
67
- if (value == ')' && this.bracket == true && this.is_operand != true) {
68
- this.bracket = false;
69
- this.stack.push(this.formula);
70
- this.stack.push(')');
71
- this.is_operand = false;
72
- this.start = true;
73
- this.formula = eval(this.stack.join('')).toString();
74
- this.stack = [this.formula];
75
- }
76
- }
77
- setOperation(operand) {
78
- this.operation = operand;
79
- // If operator already set - nothing doing
80
- if (this.is_operand) {
81
- this.operation = operand;
82
- return null;
83
- }
84
- this.is_operand = true;
85
- this.stack.push(this.formula);
86
- this.stack.push(this.operation);
87
- this.start = true;
88
- }
89
- calculate() {
90
- let result;
91
- if (this.stack.length < 3)
92
- return;
93
- this.is_operand = false;
94
- this.current_number = this.parse(this.stack.pop());
95
- this.operation = this.stack.pop();
96
- this.prev_number = this.parse(this.stack.pop());
97
- if (!this.prev_number)
98
- return 0;
99
- switch (this.operation) {
100
- case '+':
101
- result = this.prev_number + this.current_number;
102
- this.show(result);
103
- break;
104
- case '-':
105
- result = this.prev_number - this.current_number;
106
- this.show(result);
107
- break;
108
- case '*':
109
- result = this.prev_number * this.current_number;
110
- this.show(result);
111
- break;
112
- case '/':
113
- result = this.prev_number / this.current_number;
114
- this.show(result);
115
- break;
116
- case 'sqrt':
117
- result = Math.pow(this.prev_number, 1 / this.current_number);
118
- this.show(result);
119
- break;
120
- case 'pow':
121
- result = Math.pow(this.prev_number, this.current_number);
122
- this.show(result);
123
- break;
124
- case 'yx':
125
- result = Math.pow(this.current_number, this.prev_number);
126
- this.show(result);
127
- break;
128
- case 'log':
129
- result = Math.log(this.prev_number) / Math.log(this.current_number);
130
- break;
131
- }
132
- this.current_number = this.parse(this.formula);
133
- this.start = true;
134
- return result;
135
- }
136
- addValue(value, start) {
137
- if (start || this.start || (this.dotted == false && this.formula == '0' && value != '.')) {
138
- this.formula = '';
139
- }
140
- this.start = start;
141
- if (value == '.') {
142
- if (this.dotted == true) {
143
- return this.formula;
144
- }
145
- this.dotted = true;
146
- }
147
- this.formula += value;
148
- this.is_operand = false;
149
- return this.formula;
150
- }
151
- removeSymbol() {
152
- let len = this.formula.length;
153
- let last_symbol = this.formula.substring(len - 1, len);
154
- if (last_symbol == '.') {
155
- this.dotted = false;
156
- }
157
- this.formula = this.formula.slice(0, -1);
158
- }
159
- singleton(operand, data) {
160
- let result = 0;
161
- let rad = 0;
162
- let grad = 180 / Math.PI;
163
- this.current_number = parseFloat(this.formula);
164
- switch (operand) {
165
- case 'invert':
166
- result = this.current_number * data;
167
- break;
168
- case 'sqrt':
169
- result = Math.sqrt(this.current_number);
170
- break;
171
- case 'sqrt3':
172
- result = Math.pow(this.current_number, 1 / 3);
173
- break;
174
- case 'ln':
175
- result = Math.log(this.current_number);
176
- break;
177
- case 'lg':
178
- result = Math.log(this.current_number) / Math.log(data);
179
- break;
180
- case 'pow_base':
181
- let base = data == 'e' ? Math.E : data;
182
- result = Math.pow(base, this.current_number);
183
- break;
184
- case 'pow':
185
- let step = parseFloat(data);
186
- result = Math.pow(this.current_number, step);
187
- break;
188
- case 'div':
189
- result = 1 / this.current_number;
190
- break;
191
- case 'sin':
192
- rad = (this.radians) ? this.current_number : this.current_number / grad;
193
- result = Math.sin(rad);
194
- break;
195
- case 'cos':
196
- rad = (this.radians) ? this.current_number : this.current_number / grad;
197
- result = Math.cos(rad);
198
- break;
199
- case 'tan':
200
- rad = (this.radians) ? this.current_number : this.current_number / grad;
201
- result = Math.tan(rad);
202
- break;
203
- case 'sinh':
204
- rad = (this.radians) ? this.current_number : this.current_number / grad;
205
- result = (Math.exp(rad) - Math.exp(-rad)) / 2;
206
- break;
207
- case 'cosh':
208
- rad = (this.radians) ? this.current_number : this.current_number / grad;
209
- result = (Math.exp(rad) + Math.exp(-rad)) / 2;
210
- break;
211
- case 'tanh':
212
- rad = (this.radians) ? this.current_number : this.current_number / grad;
213
- result = (Math.exp(rad) - Math.exp(-rad)) / (Math.exp(rad) + Math.exp(-rad));
214
- break;
215
- case 'asin':
216
- result = Math.asin(this.current_number);
217
- result = (this.radians) ? result : result * grad;
218
- break;
219
- case 'acos':
220
- result = Math.acos(this.current_number);
221
- result = (this.radians) ? result : result * grad;
222
- break;
223
- case 'atan':
224
- result = Math.atan(this.current_number);
225
- result = (this.radians) ? result : result * grad;
226
- break;
227
- case 'asinh':
228
- result = Math.asinh(this.current_number);
229
- result = (this.radians) ? result : result * grad;
230
- break;
231
- case 'acosh':
232
- result = Math.acosh(this.current_number);
233
- result = (this.radians) ? result : result * grad;
234
- break;
235
- case 'atanh':
236
- result = Math.atanh(this.current_number);
237
- result = (this.radians) ? result : result * grad;
238
- break;
239
- case 'rand':
240
- result = Math.random();
241
- break;
242
- case 'factorial':
243
- let n = Math.ceil(this.current_number);
244
- result = 1;
245
- for (let i = 1; i <= n; i++) {
246
- result *= i;
247
- }
248
- break;
249
- case 'percent':
250
- result = this.current_number / 100;
251
- break;
252
- case 'ee':
253
- this.formula = this.current_number.toExponential();
254
- return 0;
255
- }
256
- this.start = true;
257
- this.show(result);
258
- return result;
259
- }
260
- show(value) {
261
- this.formula = value.toString();
262
- return this.formula;
263
- }
264
- }
265
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybXVsYS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VxcC1keW5hbWljLW1vZHVsZS9zcmMvbGliL21vZHVsZXMvZm9ybXVsYS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sT0FBTztJQWVoQixZQUFZLFVBQWUsRUFBRTtRQWI3QixtQkFBYyxHQUFVLENBQUMsQ0FBQztRQUMxQixnQkFBVyxHQUFVLENBQUMsQ0FBQztRQUN2QixVQUFLLEdBQVksRUFBRSxDQUFDO1FBQ3BCLFVBQUssR0FBVyxLQUFLLENBQUM7UUFDdEIsV0FBTSxHQUFXLEtBQUssQ0FBQyxDQUFDLDBCQUEwQjtRQUNsRCxlQUFVLEdBQVcsS0FBSyxDQUFDO1FBQzNCLFlBQU8sR0FBVyxJQUFJLENBQUM7UUFDdkIsY0FBUyxHQUFVLEVBQUUsQ0FBQztRQUN0QixXQUFNLEdBQVUsQ0FBQyxDQUFDO1FBQ2xCLGNBQVMsR0FBVyxLQUFLLENBQUM7UUFDMUIsWUFBTyxHQUFXLEtBQUssQ0FBQztRQUN4QixpQkFBWSxHQUFXLEtBQUssQ0FBQztRQUd6QixJQUFJLENBQUMsT0FBTyxHQUFDLE9BQU8sQ0FBQztJQUN6QixDQUFDO0lBRUQsR0FBRztRQUNDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN4QixDQUFDO0lBRUQsS0FBSyxDQUFDLEtBQVk7UUFDZCxPQUFPLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsZ0JBQWdCO1FBQ1osT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQsVUFBVSxDQUFDLFFBQWdCO1FBQ3ZCLElBQUksQ0FBQyxPQUFPLEdBQUMsUUFBUSxDQUFDO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN4QixDQUFDO0lBR0QsS0FBSztRQUNELElBQUksQ0FB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TSxHQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDekIsTUFBTTtZQUNOLEtBQUssV0FBVztnQkFDWixJQUFJLENBQUMsR0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztnQkFDckMsTUFBTSxHQUFDLENBQUMsQ0FBQztnQkFDVCxLQUFLLElBQUksQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLElBQUUsQ0FBQyxFQUFDLENBQUMsRUFBRSxFQUFFO29CQUNuQixNQUFNLElBQUUsQ0FBQyxDQUFDO2lCQUNiO2dCQUNMLE1BQU07WUFDTixLQUFLLFNBQVM7Z0JBQ1YsTUFBTSxHQUFDLElBQUksQ0FBQyxjQUFjLEdBQUMsR0FBRyxDQUFDO2dCQUNuQyxNQUFNO1lBQ04sS0FBSyxJQUFJO2dCQUNMLElBQUksQ0FBQyxPQUFPLEdBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLEVBQUUsQ0FBQztnQkFDakQsT0FBTyxDQUFDLENBQUM7U0FDaEI7UUFFRCxJQUFJLENBQUMsS0FBSyxHQUFDLElBQUksQ0FBQztRQUNoQixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2xCLE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7SUFFRCxJQUFJLENBQUMsS0FBWTtRQUNiLElBQUksQ0FBQyxPQUFPLEdBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzlCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN4QixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgRm9ybXVsYSB7XHJcbiAgICBmb3JtdWxhOnN0cmluZztcclxuICAgIGN1cnJlbnRfbnVtYmVyOm51bWJlciA9IDA7XHJcbiAgICBwcmV2X251bWJlcjpudW1iZXIgPSAwO1xyXG4gICAgc3RhY2s6c3RyaW5nW10gPSBbXTtcclxuICAgIHN0YXJ0OmJvb2xlYW4gPSBmYWxzZTsgXHJcbiAgICBkb3R0ZWQ6Ym9vbGVhbiA9IGZhbHNlOyAvLyBpbnB1dCBudW1iZXIgaGF2aW5nIGRvdFxyXG4gICAgaXNfb3BlcmFuZDpib29sZWFuID0gZmFsc2U7XHJcbiAgICByYWRpYW5zOmJvb2xlYW4gPSB0cnVlO1xyXG4gICAgb3BlcmF0aW9uOnN0cmluZyA9ICcnO1xyXG4gICAgbWVtb3J5Om51bWJlciA9IDA7XHJcbiAgICBpbl9tZW1vcnk6Ym9vbGVhbiA9IGZhbHNlO1xyXG4gICAgYnJhY2tldDpib29sZWFuID0gZmFsc2U7XHJcbiAgICBzZWNvbmRTY3JlZW46Ym9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKGZvcm11bGE6c3RyaW5nPScnKSB7XHJcbiAgICAgICAgdGhpcy5mb3JtdWxhPWZvcm11bGE7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0KCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmZvcm11bGE7XHJcbiAgICB9XHJcblxyXG4gICAgcGFyc2UodmFsdWU6c3RyaW5nKTpudW1iZXIge1xyXG4gICAgICAgIHJldHVybiBwYXJzZUZsb2F0KHZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRDdXJyZW50TnVtYmVyKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnBhcnNlKHRoaXMuZm9ybXVsYSk7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0UmFkaWFucyhzd2l0Y2hlcjpib29sZWFuKTpib29sZWFuIHtcclxuICAgICAgICB0aGlzLnJhZGlhbnM9c3dpdGNoZXI7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucmFkaWFucztcclxuICAgIH1cclxuXHJcblxyXG4gICAgY2xlYXIoKTpzdHJpbmcge1xyXG4gICAgICAgIHRoaXMuZm9ybXVsYSA9ICcwJztcclxuXHJcbiAgICAgICAgdGhpcy5kb3R0ZWQgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmlzX29wZXJhbmQgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLm9wZXJhdGlvbiA9ICcnO1xyXG4gICAgICAgIHRoaXMuc3RhcnQgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnN0YWNrID0gW107XHJcbiAgICAgICAgdGhpcy5icmFja2V0ID0gZmFsc2U7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybXVsYTtcclxuICAgIH1cclxuXHJcbiAgICBjbGVhck1lbW9yeSgpIHtcclxuICAgICAgICB0aGlzLm1lbW9yeSA9IDA7XHJcbiAgICAgICAgdGhpcy5pbl9tZW1vcnkgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBzdW1Ub01lbW9yeSgpIHtcclxuICAgICAgICBsZXQgdmFsdWU9dGhpcy5nZXRDdXJyZW50TnVtYmVyKCk7XHJcbiAgICAgICAgdGhpcy5tZW1vcnkgKz0gdmFsdWU7XHJcbiAgICAgICAgdGhpcy5pbl9tZW1vcnkgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuc3RhcnQgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIGRlZHVjdFRvTWVtb3J5KCkge1xyXG4gICAgICAgIGxldCB2YWx1ZT10aGlzLmdldEN1cnJlbnROdW1iZXIoKTtcclxuICAgICAgICB0aGlzLm1lbW9yeSAtPSB2YWx1ZTtcclxuICAgICAgICB0aGlzLmluX21lbW9yeSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5zdGFydCA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcmVhZE1lbW9yeSgpOnN0cmluZyB7XHJcbiAgICAgICAgdGhpcy5mb3JtdWxhPXRoaXMubWVtb3J5LnRvU3RyaW5nKCk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybXVsYTtcclxuICAgIH1cclxuXHJcbiAgICBhZGRCcmFja2V0KHZhbHVlOnN0cmluZyk6dm9pZCB7XHJcbiAgICAgICAgLy8gYnJhY2tldHMgY2FuIGJlIHNldCBvbmx5IGlmIHdlIGhhdmUgbm90IHNldCB0aGVtIGJlZm9yZSBhbmQgd2Ugc2V0IG9wZXJhbmQgKGlmIHdlIHNldCBicmFja2V0cyBmaXJzdCAtIGl0IHdpbGwgbm90IG1ha2Ugc2Vuc2UpXHJcbiAgICAgICAgaWYgKHZhbHVlID09ICcoJyAmJiB0aGlzLmJyYWNrZXQgPT0gZmFsc2UgJiYgdGhpcy5pc19vcGVyYW5kID09IHRydWUpIHtcclxuICAgICAgICAgICAgdGhpcy5zdGFjay5wdXNoKHZhbHVlKTtcclxuICAgICAgICAgICAgdGhpcy5icmFja2V0ID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5pc19vcGVyYW5kID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh2YWx1ZSA9PSAnKScgJiYgdGhpcy5icmFja2V0ID09IHRydWUgJiYgdGhpcy5pc19vcGVyYW5kICE9IHRydWUpIHtcclxuICAgICAgICAgICAgdGhpcy5icmFja2V0ID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMuc3RhY2sucHVzaCh0aGlzLmZvcm11bGEpO1xyXG4gICAgICAgICAgICB0aGlzLnN0YWNrLnB1c2goJyknKTtcclxuICAgICAgICAgICAgdGhpcy5pc19vcGVyYW5kID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMuc3RhcnQgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLmZvcm11bGE9ZXZhbCh0aGlzLnN0YWNrLmpvaW4oJycpKS50b1N0cmluZygpO1xyXG4gICAgICAgICAgICB0aGlzLnN0YWNrPVt0aGlzLmZvcm11bGFdO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBzZXRPcGVyYXRpb24ob3BlcmFuZDpzdHJpbmcpOnZvaWQge1xyXG4gICAgICAgIHRoaXMub3BlcmF0aW9uPW9wZXJhbmQ7XHJcbiAgICAgICAgLy8gSWYgb3BlcmF0b3IgYWxyZWFkeSBzZXQgLSBub3RoaW5nIGRvaW5nXHJcbiAgICAgICAgaWYgKHRoaXMuaXNfb3BlcmFuZCkge1xyXG4gICAgICAgICAgICB0aGlzLm9wZXJhdGlvbiA9IG9wZXJhbmQ7XHJcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmlzX29wZXJhbmQgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuc3RhY2sucHVzaCh0aGlzLmZvcm11bGEpO1xyXG4gICAgICAgIHRoaXMuc3RhY2sucHVzaCh0aGlzLm9wZXJhdGlvbik7XHJcbiAgICAgICAgdGhpcy5zdGFydD10cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIGNhbGN1bGF0ZSgpOm51bWJlciB7XHJcbiAgICAgICAgbGV0IHJlc3VsdDpudW1iZXI7XHJcbiAgICAgICAgaWYgKHRoaXMuc3RhY2subGVuZ3RoPDMpIHJldHVybjtcclxuICAgICAgICB0aGlzLmlzX29wZXJhbmQgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmN1cnJlbnRfbnVtYmVyPXRoaXMucGFyc2UodGhpcy5zdGFjay5wb3AoKSk7XHJcbiAgICAgICAgdGhpcy5vcGVyYXRpb249dGhpcy5zdGFjay5wb3AoKTtcclxuICAgICAgICB0aGlzLnByZXZfbnVtYmVyPXRoaXMucGFyc2UodGhpcy5zdGFjay5wb3AoKSk7XHJcbiAgICAgICAgaWYgKCF0aGlzLnByZXZfbnVtYmVyKSByZXR1cm4gMDtcclxuXHJcbiAgICAgICAgc3dpdGNoICh0aGlzLm9wZXJhdGlvbikge1xyXG4gICAgICAgICAgICBjYXNlICcrJzpcclxuICAgICAgICAgICAgICAgIHJlc3VsdD10aGlzLnByZXZfbnVtYmVyK3RoaXMuY3VycmVudF9udW1iZXI7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNob3cocmVzdWx0KTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICctJzpcclxuICAgICAgICAgICAgICAgIHJlc3VsdD10aGlzLnByZXZfbnVtYmVyLXRoaXMuY3VycmVudF9udW1iZXI7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNob3cocmVzdWx0KTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICcqJzpcclxuICAgICAgICAgICAgICAgIHJlc3VsdD10aGlzLnByZXZfbnVtYmVyKnRoaXMuY3VycmVudF9udW1iZXI7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNob3cocmVzdWx0KTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICcvJzpcclxuICAgICAgICAgICAgICAgIHJlc3VsdD10aGlzLnByZXZfbnVtYmVyL3RoaXMuY3VycmVudF9udW1iZXI7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNob3cocmVzdWx0KTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdzcXJ0JzpcclxuICAgICAgICAgICAgICAgIHJlc3VsdD1NYXRoLnBvdyh0aGlzLnByZXZfbnVtYmVyLDEvdGhpcy5jdXJyZW50X251bWJlcik7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNob3cocmVzdWx0KTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdwb3cnOlxyXG4gICAgICAgICAgICAgICAgcmVzdWx0PU1hdGgucG93KHRoaXMucHJldl9udW1iZXIsdGhpcy5jdXJyZW50X251bWJlcik7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNob3cocmVzdWx0KTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICd5eCc6XHJcbiAgICAgICAgICAgICAgICByZXN1bHQgPSBNYXRoLnBvdyh0aGlzLmN1cnJlbnRfbnVtYmVyLCB0aGlzLnByZXZfbnVtYmVyKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2hvdyhyZXN1bHQpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ2xvZyc6XHJcbiAgICAgICAgICAgICAgICByZXN1bHQgPSBNYXRoLmxvZyh0aGlzLnByZXZfbnVtYmVyKSAvIE1hdGgubG9nKHRoaXMuY3VycmVudF9udW1iZXIpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmN1cnJlbnRfbnVtYmVyPXRoaXMucGFyc2UodGhpcy5mb3JtdWxhKTtcclxuXHJcbiAgICAgICAgdGhpcy5zdGFydD10cnVlO1xyXG4gICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIGFkZFZhbHVlKHZhbHVlOnN0cmluZyxzdGFydDpib29sZWFuKTpzdHJpbmcge1xyXG4gICAgICAgIGlmIChzdGFydCB8fCB0aGlzLnN0YXJ0IHx8ICh0aGlzLmRvdHRlZCA9PSBmYWxzZSAmJiB0aGlzLmZvcm11bGEgPT0gJzAnICYmIHZhbHVlICE9ICcuJykpIHtcclxuICAgICAgICAgICAgdGhpcy5mb3JtdWxhPScnO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnN0YXJ0PXN0YXJ0O1xyXG4gICAgICAgIGlmICh2YWx1ZT09Jy4nKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmRvdHRlZD09dHJ1ZSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZm9ybXVsYTsgICAgXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5kb3R0ZWQ9dHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5mb3JtdWxhKz12YWx1ZTtcclxuICAgICAgICB0aGlzLmlzX29wZXJhbmQgPSBmYWxzZTtcclxuICAgICAgICByZXR1cm4gdGhpcy5mb3JtdWxhO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbW92ZVN5bWJvbCgpOnZvaWQge1xyXG4gICAgICAgIGxldCBsZW49dGhpcy5mb3JtdWxhLmxlbmd0aDtcclxuICAgICAgICBsZXQgbGFzdF9zeW1ib2w9dGhpcy5mb3JtdWxhLnN1YnN0cmluZyhsZW4gLSAxLGxlbik7XHJcbiAgICAgICAgaWYgKGxhc3Rfc3ltYm9sID09ICcuJykge1xyXG4gICAgICAgICAgICB0aGlzLmRvdHRlZD1mYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5mb3JtdWxhPXRoaXMuZm9ybXVsYS5zbGljZSgwLC0xKTtcclxuICAgIH1cclxuXHJcbiAgICBzaW5nbGV0b24ob3BlcmFuZDpzdHJpbmcsZGF0YTphbnkpOm51bWJlciB7XHJcbiAgICAgICAgbGV0IHJlc3VsdDpudW1iZXI9MDtcclxuICAgICAgICBsZXQgcmFkOm51bWJlcj0wO1xyXG4gICAgICAgIGxldCBncmFkPTE4MC9NYXRoLlBJO1xyXG4gICAgICAgIHRoaXMuY3VycmVudF9udW1iZXI9cGFyc2VGbG9hdCh0aGlzLmZvcm11bGEpO1xyXG4gICAgICAgIFxyXG4gICAgICAgIHN3aXRjaCAob3BlcmFuZCkge1xyXG4gICAgICAgICAgICBjYXNlICdpbnZlcnQnOlxyXG4gICAgICAgICAgICAgICAgcmVzdWx0PXRoaXMuY3VycmVudF9udW1iZXIqZGF0YTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ3NxcnQnOlxyXG4gICAgICAgICAgICAgICAgcmVzdWx0PU1hdGguc3FydCh0aGlzLmN1cnJlbnRfbnVtYmVyKTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ3NxcnQzJzpcclxuICAgICAgICAgICAgICAgIHJlc3VsdD1NYXRoLnBvdyh0aGlzLmN1cnJlbnRfbnVtYmVyLDEvMyk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdsbic6XHJcbiAgICAgICAgICAgICAgICByZXN1bHQ9TWF0aC5sb2codGhpcy5jdXJyZW50X251bWJlcik7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdsZyc6XHJcbiAgICAgICAgICAgICAgICByZXN1bHQ9TWF0aC5sb2codGhpcy5jdXJyZW50X251bWJlcikvTWF0aC5sb2coZGF0YSk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdwb3dfYmFzZSc6XHJcbiAgICAgICAgICAgICAgICBsZXQgYmFzZT1kYXRhPT0nZScgPyBNYXRoLkUgOiBkYXRhO1xyXG4gICAgICAgICAgICAgICAgcmVzdWx0PU1hdGgucG93KGJhc2UsdGhpcy5jdXJyZW50X251bWJlcik7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdwb3cnOlxyXG4gICAgICAgICAgICAgICAgbGV0IHN0ZXA9cGFyc2VGbG9hdChkYXRhKTtcclxuICAgICAgICAgICAgICAgIHJlc3VsdD1NYXRoLnBvdyh0aGlzLmN1cnJlbnRfbnVtYmVyLHN0ZXApO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAnZGl2JzpcclxuICAgICAgICAgICAgICAgIHJlc3VsdD0xL3RoaXMuY3VycmVudF9udW1iZXI7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdzaW4nOlxyXG4gICAgICAgICAgICAgICAgcmFkPSh0aGlzLnJhZGlhbnMpID8gdGhpcy5jdXJyZW50X251bWJlciA6IHRoaXMuY3VycmVudF9udW1iZXIvZ3JhZDtcclxuICAgICAgICAgICAgICAgIHJlc3VsdD1NYXRoLnNpbihyYWQpO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAnY29zJzpcclxuICAgICAgICAgICAgICAgIHJhZD0odGhpcy5yYWRpYW5zKSA/IHRoaXMuY3VycmVudF9udW1iZXIgOiB0aGlzLmN1cnJlbnRfbnVtYmVyL2dyYWQ7XHJcbiAgICAgICAgICAgICAgICByZXN1bHQ9TWF0aC5jb3MocmFkKTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ3Rhbic6XHJcbiAgICAgICAgICAgICAgICByYWQ9KHRoaXMucmFkaWFucykgPyB0aGlzLmN1cnJlbnRfbnVtYmVyIDogdGhpcy5jdXJyZW50X251bWJlci9ncmFkO1xyXG4gICAgICAgICAgICAgICAgcmVzdWx0PU1hdGgudGFuKHJhZCk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdzaW5oJzpcclxuICAgICAgICAgICAgICAgIHJhZD0odGhpcy5yYWRpYW5zKSA/IHRoaXMuY3VycmVudF9udW1iZXIgOiB0aGlzLmN1cnJlbnRfbnVtYmVyL2dyYWQ7XHJcbiAgICAgICAgICAgICAgICByZXN1bHQ9KE1hdGguZXhwKHJhZCktTWF0aC5leHAoLXJhZCkpLzI7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdjb3NoJzpcclxuICAgICAgICAgICAgICAgIHJhZD0odGhpcy5yYWRpYW5zKSA/IHRoaXMuY3VycmVudF9udW1iZXIgOiB0aGlzLmN1cnJlbnRfbnVtYmVyL2dyYWQ7XHJcbiAgICAgICAgICAgICAgICByZXN1bHQ9KE1hdGguZXhwKHJhZCkrTWF0aC5leHAoLXJhZCkpLzI7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICd0YW5oJzpcclxuICAgICAgICAgICAgICAgIHJhZD0odGhpcy5yYWRpYW5zKSA/IHRoaXMuY3VycmVudF9udW1iZXIgOiB0aGlzLmN1cnJlbnRfbnVtYmVyL2dyYWQ7XHJcbiAgICAgICAgICAgICAgICByZXN1bHQ9KE1hdGguZXhwKHJhZCktTWF0aC5leHAoLXJhZCkpLyhNYXRoLmV4cChyYWQpK01hdGguZXhwKC1yYWQpKTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ2FzaW4nOlxyXG4gICAgICAgICAgICAgICAgcmVzdWx0PU1hdGguYXNpbih0aGlzLmN1cnJlbnRfbnVtYmVyKTtcclxuICAgICAgICAgICAgICAgIHJlc3VsdD0odGhpcy5yYWRpYW5zKSA/IHJlc3VsdCA6IHJlc3VsdCpncmFkO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAnYWNvcyc6XHJcbiAgICAgICAgICAgICAgICByZXN1bHQ9TWF0aC5hY29zKHRoaXMuY3VycmVudF9udW1iZXIpO1xyXG4gICAgICAgICAgICAgICAgcmVzdWx0PSh0aGlzLnJhZGlhbnMpID8gcmVzdWx0IDogcmVzdWx0KmdyYWQ7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdhdGFuJzpcclxuICAgICAgICAgICAgICAgIHJlc3VsdD1NYXRoLmF0YW4odGhpcy5jdXJyZW50X251bWJlcik7XHJcbiAgICAgICAgICAgICAgICByZXN1bHQ9KHRoaXMucmFkaWFucykgPyByZXN1bHQgOiByZXN1bHQqZ3JhZDtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ2FzaW5oJzpcclxuICAgICAgICAgICAgICAgIHJlc3VsdD1NYXRoLmFzaW5oKHRoaXMuY3VycmVudF9udW1iZXIpO1xyXG4gICAgICAgICAgICAgICAgcmVzdWx0PSh0aGlzLnJhZGlhbnMpID8gcmVzdWx0IDogcmVzdWx0KmdyYWQ7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdhY29zaCc6XHJcbiAgICAgICAgICAgICAgICByZXN1bHQ9TWF0aC5hY29zaCh0aGlzLmN1cnJlbnRfbnVtYmVyKTtcclxuICAgICAgICAgICAgICAgIHJlc3VsdD0odGhpcy5yYWRpYW5zKSA/IHJlc3VsdCA6IHJlc3VsdCpncmFkO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAnYXRhbmgnOlxyXG4gICAgICAgICAgICAgICAgcmVzdWx0PU1hdGguYXRhbmgodGhpcy5jdXJyZW50X251bWJlcik7XHJcbiAgICAgICAgICAgICAgICByZXN1bHQ9KHRoaXMucmFkaWFucykgPyByZXN1bHQgOiByZXN1bHQqZ3JhZDtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ3JhbmQnOlxyXG4gICAgICAgICAgICAgICAgcmVzdWx0PU1hdGgucmFuZG9tKCk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdmYWN0b3JpYWwnOlxyXG4gICAgICAgICAgICAgICAgbGV0IG49TWF0aC5jZWlsKHRoaXMuY3VycmVudF9udW1iZXIpO1xyXG4gICAgICAgICAgICAgICAgcmVzdWx0PTE7XHJcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpPTE7aTw9bjtpKyspIHtcclxuICAgICAgICAgICAgICAgICAgICByZXN1bHQqPWk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdwZXJjZW50JzpcclxuICAgICAgICAgICAgICAgIHJlc3VsdD10aGlzLmN1cnJlbnRfbnVtYmVyLzEwMDtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ2VlJzpcclxuICAgICAgICAgICAgICAgIHRoaXMuZm9ybXVsYT10aGlzLmN1cnJlbnRfbnVtYmVyLnRvRXhwb25lbnRpYWwoKTtcclxuICAgICAgICAgICAgICAgIHJldHVybiAwO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5zdGFydD10cnVlO1xyXG4gICAgICAgIHRoaXMuc2hvdyhyZXN1bHQpO1xyXG4gICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9XHJcblxyXG4gICAgc2hvdyh2YWx1ZTpudW1iZXIpOnN0cmluZyB7XHJcbiAgICAgICAgdGhpcy5mb3JtdWxhPXZhbHVlLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybXVsYTtcclxuICAgIH1cclxufSJdfQ==