@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
@@ -0,0 +1,75 @@
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import { BoolPresentantioEnum } from '../../../../models/fields/booleanField.model';
3
+ import { UtilityHelperService } from '../../../../services/utilityHelper.services';
4
+ import { DataGetterTypeEnum } from '../../../../models/baseField.model';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/material/checkbox";
7
+ import * as i2 from "@angular/material/form-field";
8
+ import * as i3 from "@angular/material/radio";
9
+ import * as i4 from "@angular/material/slide-toggle";
10
+ import * as i5 from "@angular/forms";
11
+ import * as i6 from "@angular/common";
12
+ export class BooleanFieldTemplateComponent {
13
+ field;
14
+ record;
15
+ recordChange = new EventEmitter();
16
+ //variabili per gestire il css della label e del field
17
+ FieldstyleObj;
18
+ LabelstyleObj;
19
+ BoolPresentantioEnum = BoolPresentantioEnum;
20
+ constructor() { }
21
+ initStyles() {
22
+ //Funzione per parsare il campo stylecss dell'oggetto field ed applicarlo all'html
23
+ if (this.field.FieldstyleCSS != null || this.field.FieldstyleCSS != undefined)
24
+ this.FieldstyleObj = UtilityHelperService.initStyles(this.field.FieldstyleCSS);
25
+ }
26
+ ngOnInit() {
27
+ if (this.record[this.field.Name] == undefined || this.record[this.field.Name] == null) {
28
+ this.record[this.field.Name] = this.field.IsTristate ? null : false;
29
+ }
30
+ this.updateField();
31
+ this.initStyles();
32
+ }
33
+ ngOnChanges(changes) {
34
+ // Se viene modificato il valore di "ngModelInput" allora aggiorna l'input
35
+ if (changes['record'] != undefined && changes['record'].firstChange == false && JSON.stringify(changes['record'].currentValue) != JSON.stringify(changes['record'].previousValue)) {
36
+ this.record = changes['record'].currentValue;
37
+ this.updateField();
38
+ }
39
+ }
40
+ /**
41
+ * Metodo per aggiornare il valore del campo quando questo è rappresentato da una formula.
42
+ */
43
+ updateField() {
44
+ if ((this.field.DataGetter.DataGetterType == DataGetterTypeEnum.Manuale || this.field.DataGetter.DataGetterType == DataGetterTypeEnum.Formula) && this.field.Formula) {
45
+ this.record[this.field.Name] = UtilityHelperService.EvaluateFieldFormula(this.field.Formula, this.record, null);
46
+ }
47
+ if (this.field.VisibleIf) {
48
+ this.field.InListView = UtilityHelperService.EvaluateFieldFormula(this.field.VisibleIf, this.record, null);
49
+ }
50
+ if (this.field.DataGetter.DataGetterType == DataGetterTypeEnum.Manuale && this.record[this.field.Name] == null) {
51
+ this.record[this.field.Name] = this.field.DataGetter.DataGetterValue;
52
+ }
53
+ }
54
+ /**
55
+ * Metodo per emettere l'evento che il valore del record è cambiato.
56
+ */
57
+ onRecordValueChange() {
58
+ if (!this.field.Formula) {
59
+ this.recordChange.emit(this.record);
60
+ }
61
+ }
62
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BooleanFieldTemplateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
63
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: BooleanFieldTemplateComponent, selector: "boolean-field-template", inputs: { field: "field", record: "record" }, outputs: { recordChange: "recordChange" }, usesOnChanges: true, ngImport: i0, template: "<div [formGroup]=\"field.FormFormGroup\">\r\n\r\n <!-- VISUALIZZAZIONE A TOGGLE -->\r\n <mat-slide-toggle color=\"primary\" *ngIf=\"field.PresetationType == BoolPresentantioEnum.Toggle\"\r\n [formControlName]=\"field.Name\" [disabled]=\"field.FormFormGroup.disabled\" [required]=\"field.Required\"\r\n [(ngModel)]=\"record[field.Name]\" (ngModelChange)=\"onRecordValueChange()\">\r\n {{field.Description + (field.Required ? \" *\" : \"\")}}\r\n </mat-slide-toggle>\r\n\r\n <!-- VISUALIZZAZIONE A RADIOBUTTON -->\r\n <mat-label [ngStyle]=\"LabelstyleObj\" class=\"mr-3\" *ngIf=\"field.PresetationType == BoolPresentantioEnum['Radio button']\">\r\n {{field.Description + (field.Required ? \" *\" : \"\")}}\r\n </mat-label>\r\n <mat-radio-group *ngIf=\"field.PresetationType == BoolPresentantioEnum['Radio button']\"\r\n [formControlName]=\"field.Name\" [disabled]=\"field.FormFormGroup.disabled\" [required]=\"field.Required\"\r\n [(ngModel)]=\"record[field.Name]\" (ngModelChange)=\"onRecordValueChange()\">\r\n <mat-radio-button class=\"mr-2\" [value]=\"true\" color=\"primary\"> Si </mat-radio-button>\r\n <mat-radio-button class=\"mr-2 ps-2\" [value]=\"false\" color=\"primary\"> No </mat-radio-button>\r\n <mat-radio-button class=\"mr-2 ps-2\" [value]=\"null\" color=\"primary\" *ngIf=\"field.IsTristate\"> ND\r\n </mat-radio-button>\r\n </mat-radio-group>\r\n\r\n <!-- VISUALIZZAZIONE A CHECKBOX -->\r\n <mat-checkbox class=\"mr-2\" *ngIf=\"field.PresetationType == BoolPresentantioEnum.Checkbox\"\r\n [disabled]=\"field.FormFormGroup.disabled\" [required]=\"field.Required\" [formControlName]=\"field.Name\"\r\n [(ngModel)]=\"record[field.Name]\" (ngModelChange)=\"onRecordValueChange()\">\r\n {{field.Description + (field.Required ? \" *\" : \"\")}}\r\n </mat-checkbox>\r\n\r\n <!-- TODO: Visualizzazione \"Stringa true o false\" e \"Numerico 0 o 1\" ?? -->\r\n</div>", styles: ["::ng-deep mat-label.mr-3.ng-star-inserted{font-size:larger}::ng-deep mat-radio-group.mat-radio-group.ng-valid.ng-star-inserted{padding-left:10px}\n"], dependencies: [{ kind: "component", type: i1.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "directive", type: i2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.MatRadioGroup, selector: "mat-radio-group", inputs: ["color", "name", "labelPosition", "value", "selected", "disabled", "required"], outputs: ["change"], exportAs: ["matRadioGroup"] }, { kind: "component", type: i3.MatRadioButton, selector: "mat-radio-button", inputs: ["id", "name", "aria-label", "aria-labelledby", "aria-describedby", "disableRipple", "tabIndex", "checked", "value", "labelPosition", "disabled", "required", "color"], outputs: ["change"], exportAs: ["matRadioButton"] }, { kind: "component", type: i4.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] });
64
+ }
65
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BooleanFieldTemplateComponent, decorators: [{
66
+ type: Component,
67
+ args: [{ selector: 'boolean-field-template', template: "<div [formGroup]=\"field.FormFormGroup\">\r\n\r\n <!-- VISUALIZZAZIONE A TOGGLE -->\r\n <mat-slide-toggle color=\"primary\" *ngIf=\"field.PresetationType == BoolPresentantioEnum.Toggle\"\r\n [formControlName]=\"field.Name\" [disabled]=\"field.FormFormGroup.disabled\" [required]=\"field.Required\"\r\n [(ngModel)]=\"record[field.Name]\" (ngModelChange)=\"onRecordValueChange()\">\r\n {{field.Description + (field.Required ? \" *\" : \"\")}}\r\n </mat-slide-toggle>\r\n\r\n <!-- VISUALIZZAZIONE A RADIOBUTTON -->\r\n <mat-label [ngStyle]=\"LabelstyleObj\" class=\"mr-3\" *ngIf=\"field.PresetationType == BoolPresentantioEnum['Radio button']\">\r\n {{field.Description + (field.Required ? \" *\" : \"\")}}\r\n </mat-label>\r\n <mat-radio-group *ngIf=\"field.PresetationType == BoolPresentantioEnum['Radio button']\"\r\n [formControlName]=\"field.Name\" [disabled]=\"field.FormFormGroup.disabled\" [required]=\"field.Required\"\r\n [(ngModel)]=\"record[field.Name]\" (ngModelChange)=\"onRecordValueChange()\">\r\n <mat-radio-button class=\"mr-2\" [value]=\"true\" color=\"primary\"> Si </mat-radio-button>\r\n <mat-radio-button class=\"mr-2 ps-2\" [value]=\"false\" color=\"primary\"> No </mat-radio-button>\r\n <mat-radio-button class=\"mr-2 ps-2\" [value]=\"null\" color=\"primary\" *ngIf=\"field.IsTristate\"> ND\r\n </mat-radio-button>\r\n </mat-radio-group>\r\n\r\n <!-- VISUALIZZAZIONE A CHECKBOX -->\r\n <mat-checkbox class=\"mr-2\" *ngIf=\"field.PresetationType == BoolPresentantioEnum.Checkbox\"\r\n [disabled]=\"field.FormFormGroup.disabled\" [required]=\"field.Required\" [formControlName]=\"field.Name\"\r\n [(ngModel)]=\"record[field.Name]\" (ngModelChange)=\"onRecordValueChange()\">\r\n {{field.Description + (field.Required ? \" *\" : \"\")}}\r\n </mat-checkbox>\r\n\r\n <!-- TODO: Visualizzazione \"Stringa true o false\" e \"Numerico 0 o 1\" ?? -->\r\n</div>", styles: ["::ng-deep mat-label.mr-3.ng-star-inserted{font-size:larger}::ng-deep mat-radio-group.mat-radio-group.ng-valid.ng-star-inserted{padding-left:10px}\n"] }]
68
+ }], ctorParameters: () => [], propDecorators: { field: [{
69
+ type: Input
70
+ }], record: [{
71
+ type: Input
72
+ }], recordChange: [{
73
+ type: Output
74
+ }] } });
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9vbGVhbi1maWVsZC10ZW1wbGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lcXAtZHluYW1pYy1tb2R1bGUvc3JjL2xpYi9jb21wb25lbnRzL3ByaXZhdGUvZmllbGQtdGVtcGxhdGVzL2Jvb2xlYW4tZmllbGQtdGVtcGxhdGUvYm9vbGVhbi1maWVsZC10ZW1wbGF0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lcXAtZHluYW1pYy1tb2R1bGUvc3JjL2xpYi9jb21wb25lbnRzL3ByaXZhdGUvZmllbGQtdGVtcGxhdGVzL2Jvb2xlYW4tZmllbGQtdGVtcGxhdGUvYm9vbGVhbi1maWVsZC10ZW1wbGF0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFFekcsT0FBTyxFQUFnQixvQkFBb0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBRWxHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDOzs7Ozs7OztBQU94RSxNQUFNLE9BQU8sNkJBQTZCO0lBRS9CLEtBQUssQ0FBZTtJQUNwQixNQUFNLENBQVM7SUFDZCxZQUFZLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7SUFDNUUsc0RBQXNEO0lBQ3RELGFBQWEsQ0FBTTtJQUNuQixhQUFhLENBQU07SUFFakIsb0JBQW9CLEdBQUcsb0JBQW9CLENBQUM7SUFFNUMsZ0JBQWdCLENBQUM7SUFFakIsVUFBVTtRQUNSLGtGQUFrRjtRQUNsRixJQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxJQUFJLElBQUksSUFBSSxJQUFJ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Q3RDLENBQUM7SUFDSCxDQUFDO3dHQTFEVSw2QkFBNkI7NEZBQTdCLDZCQUE2Qiw0S0NaMUMsazlEQThCTTs7NEZEbEJPLDZCQUE2QjtrQkFMekMsU0FBUzsrQkFDRSx3QkFBd0I7d0RBTXpCLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0ksWUFBWTtzQkFBckIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSZWNvcmQgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvcmVjb3JkLm1vZGVsJztcclxuaW1wb3J0IHsgQm9vbGVhbkZpZWxkLCBCb29sUHJlc2VudGFudGlvRW51bSB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy9maWVsZHMvYm9vbGVhbkZpZWxkLm1vZGVsJztcclxuaW1wb3J0IHsgSUJhc2VGaWVsZENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uLy4uL2ludGVyZmFjZXMvaUJhc2VGaWVsZENvbXBvbmVudC5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBVdGlsaXR5SGVscGVyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL3V0aWxpdHlIZWxwZXIuc2VydmljZXMnO1xyXG5pbXBvcnQgeyBEYXRhR2V0dGVyVHlwZUVudW0gfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvYmFzZUZpZWxkLm1vZGVsJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYm9vbGVhbi1maWVsZC10ZW1wbGF0ZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2Jvb2xlYW4tZmllbGQtdGVtcGxhdGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2Jvb2xlYW4tZmllbGQtdGVtcGxhdGUuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQm9vbGVhbkZpZWxkVGVtcGxhdGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgSUJhc2VGaWVsZENvbXBvbmVudCB7XHJcblxyXG4gIEBJbnB1dCgpIGZpZWxkOiBCb29sZWFuRmllbGQ7XHJcbiAgQElucHV0KCkgcmVjb3JkOiBSZWNvcmQ7XHJcbiAgQE91dHB1dCgpIHJlY29yZENoYW5nZTogRXZlbnRFbWl0dGVyPFJlY29yZD4gPSBuZXcgRXZlbnRFbWl0dGVyPFJlY29yZD4oKTtcclxuLy92YXJpYWJpbGkgcGVyIGdlc3RpcmUgaWwgY3NzIGRlbGxhIGxhYmVsIGUgZGVsIGZpZWxkXHJcbkZpZWxkc3R5bGVPYmo6IGFueTtcclxuTGFiZWxzdHlsZU9iajogYW55O1xyXG5cclxuICBCb29sUHJlc2VudGFudGlvRW51bSA9IEJvb2xQcmVzZW50YW50aW9FbnVtO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHsgfVxyXG5cclxuICBpbml0U3R5bGVzKCkge1xyXG4gICAgLy9GdW56aW9uZSBwZXIgcGFyc2FyZSBpbCBjYW1wbyBzdHlsZWNzcyBkZWxsJ29nZ2V0dG8gZmllbGQgZWQgYXBwbGljYXJsbyBhbGwnaHRtbFxyXG4gICAgaWYodGhpcy5maWVsZC5GaWVsZHN0eWxlQ1NTICE9IG51bGwgfHwgdGhpcy5maWVsZC5GaWVsZHN0eWxlQ1NTICE9IHVuZGVmaW5lZCkgICBcclxuICAgIHRoaXMuRmllbGRzdHlsZU9iaj0gVXRpbGl0eUhlbHBlclNlcnZpY2UuaW5pdFN0eWxlcyh0aGlzLmZpZWxkLkZpZWxkc3R5bGVDU1MpO1xyXG4gIH1cclxuICBcclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnJlY29yZFt0aGlzLmZpZWxkLk5hbWVdID09IHVuZGVmaW5lZCB8fCB0aGlzLnJlY29yZFt0aGlzLmZpZWxkLk5hbWVdID09IG51bGwpIHtcclxuICAgICAgdGhpcy5yZWNvcmRbdGhpcy5maWVsZC5OYW1lXSA9IHRoaXMuZmllbGQuSXNUcmlzdGF0ZSA/IG51bGwgOiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnVwZGF0ZUZpZWxkKCk7XHJcbiAgICB0aGlzLmluaXRTdHlsZXMoKTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgIC8vIFNlIHZpZW5lIG1vZGlmaWNhdG8gaWwgdmFsb3JlIGRpIFwibmdNb2RlbElucHV0XCIgYWxsb3JhIGFnZ2lvcm5hIGwnaW5wdXRcclxuICAgIGlmIChjaGFuZ2VzWydyZWNvcmQnXSAhPSB1bmRlZmluZWQgJiYgY2hhbmdlc1sncmVjb3JkJ10uZmlyc3RDaGFuZ2UgPT0gZmFsc2UgJiYgSlNPTi5zdHJpbmdpZnkoY2hhbmdlc1sncmVjb3JkJ10uY3VycmVudFZhbHVlKSAhPSBKU09OLnN0cmluZ2lmeShjaGFuZ2VzWydyZWNvcmQnXS5wcmV2aW91c1ZhbHVlKSkge1xyXG4gICAgICB0aGlzLnJlY29yZCA9IGNoYW5nZXNbJ3JlY29yZCddLmN1cnJlbnRWYWx1ZTtcclxuICAgICAgdGhpcy51cGRhdGVGaWVsZCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTWV0b2RvIHBlciBhZ2dpb3JuYXJlIGlsIHZhbG9yZSBkZWwgY2FtcG8gcXVhbmRvIHF1ZXN0byDDqCByYXBwcmVzZW50YXRvIGRhIHVuYSBmb3JtdWxhLlxyXG4gICAqL1xyXG4gIHVwZGF0ZUZpZWxkKCkge1xyXG4gICAgaWYgKCh0aGlzLmZpZWxkLkRhdGFHZXR0ZXIuRGF0YUdldHRlclR5cGUgPT0gRGF0YUdldHRlclR5cGVFbnVtLk1hbnVhbGUgfHwgdGhpcy5maWVsZC5EYXRhR2V0dGVyLkRhdGFHZXR0ZXJUeXBlID09IERhdGFHZXR0ZXJUeXBlRW51bS5Gb3JtdWxhKSAmJiB0aGlzLmZpZWxkLkZvcm11bGEpIHtcclxuICAgICAgdGhpcy5yZWNvcmRbdGhpcy5maWVsZC5OYW1lXSA9IFV0aWxpdHlIZWxwZXJTZXJ2aWNlLkV2YWx1YXRlRmllbGRGb3JtdWxhKHRoaXMuZmllbGQuRm9ybXVsYSwgdGhpcy5yZWNvcmQsIG51bGwpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuZmllbGQuVmlzaWJsZUlmKSB7XHJcbiAgICAgIHRoaXMuZmllbGQuSW5MaXN0VmlldyA9IFV0aWxpdHlIZWxwZXJTZXJ2aWNlLkV2YWx1YXRlRmllbGRGb3JtdWxhKHRoaXMuZmllbGQuVmlzaWJsZUlmLCB0aGlzLnJlY29yZCwgbnVsbCk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5maWVsZC5EYXRhR2V0dGVyLkRhdGFHZXR0ZXJUeXBlID09IERhdGFHZXR0ZXJUeXBlRW51bS5NYW51YWxlICYmIHRoaXMucmVjb3JkW3RoaXMuZmllbGQuTmFtZV0gPT0gbnVsbCkge1xyXG4gICAgICB0aGlzLnJlY29yZFt0aGlzLmZpZWxkLk5hbWVdID0gdGhpcy5maWVsZC5EYXRhR2V0dGVyLkRhdGFHZXR0ZXJWYWx1ZTtcclxuICAgIH0gICAgXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNZXRvZG8gcGVyIGVtZXR0ZXJlIGwnZXZlbnRvIGNoZSBpbCB2YWxvcmUgZGVsIHJlY29yZCDDqCBjYW1iaWF0by5cclxuICAgKi9cclxuICBvblJlY29yZFZhbHVlQ2hhbmdlKCkge1xyXG4gICAgaWYgKCF0aGlzLmZpZWxkLkZvcm11bGEpIHtcclxuICAgICAgdGhpcy5yZWNvcmRDaGFuZ2UuZW1pdCh0aGlzLnJlY29yZCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgW2Zvcm1Hcm91cF09XCJmaWVsZC5Gb3JtRm9ybUdyb3VwXCI+XHJcblxyXG4gICAgPCEtLSBWSVNVQUxJWlpBWklPTkUgQSBUT0dHTEUgLS0+XHJcbiAgICA8bWF0LXNsaWRlLXRvZ2dsZSBjb2xvcj1cInByaW1hcnlcIiAqbmdJZj1cImZpZWxkLlByZXNldGF0aW9uVHlwZSA9PSBCb29sUHJlc2VudGFudGlvRW51bS5Ub2dnbGVcIlxyXG4gICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiZmllbGQuTmFtZVwiIFtkaXNhYmxlZF09XCJmaWVsZC5Gb3JtRm9ybUdyb3VwLmRpc2FibGVkXCIgW3JlcXVpcmVkXT1cImZpZWxkLlJlcXVpcmVkXCJcclxuICAgICAgICBbKG5nTW9kZWwpXT1cInJlY29yZFtmaWVsZC5OYW1lXVwiIChuZ01vZGVsQ2hhbmdlKT1cIm9uUmVjb3JkVmFsdWVDaGFuZ2UoKVwiPlxyXG4gICAgICAgIHt7ZmllbGQuRGVzY3JpcHRpb24gKyAoZmllbGQuUmVxdWlyZWQgPyBcIiAqXCIgOiBcIlwiKX19XHJcbiAgICA8L21hdC1zbGlkZS10b2dnbGU+XHJcblxyXG4gICAgPCEtLSBWSVNVQUxJWlpBWklPTkUgQSBSQURJT0JVVFRPTiAtLT5cclxuICAgIDxtYXQtbGFiZWwgW25nU3R5bGVdPVwiTGFiZWxzdHlsZU9ialwiIGNsYXNzPVwibXItM1wiICpuZ0lmPVwiZmllbGQuUHJlc2V0YXRpb25UeXBlID09IEJvb2xQcmVzZW50YW50aW9FbnVtWydSYWRpbyBidXR0b24nXVwiPlxyXG4gICAgICAgIHt7ZmllbGQuRGVzY3JpcHRpb24gKyAoZmllbGQuUmVxdWlyZWQgPyBcIiAqXCIgOiBcIlwiKX19XHJcbiAgICA8L21hdC1sYWJlbD5cclxuICAgIDxtYXQtcmFkaW8tZ3JvdXAgKm5nSWY9XCJmaWVsZC5QcmVzZXRhdGlvblR5cGUgPT0gQm9vbFByZXNlbnRhbnRpb0VudW1bJ1JhZGlvIGJ1dHRvbiddXCJcclxuICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImZpZWxkLk5hbWVcIiBbZGlzYWJsZWRdPVwiZmllbGQuRm9ybUZvcm1Hcm91cC5kaXNhYmxlZFwiIFtyZXF1aXJlZF09XCJmaWVsZC5SZXF1aXJlZFwiXHJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJyZWNvcmRbZmllbGQuTmFtZV1cIiAobmdNb2RlbENoYW5nZSk9XCJvblJlY29yZFZhbHVlQ2hhbmdlKClcIj5cclxuICAgICAgICA8bWF0LXJhZGlvLWJ1dHRvbiBjbGFzcz1cIm1yLTJcIiBbdmFsdWVdPVwidHJ1ZVwiIGNvbG9yPVwicHJpbWFyeVwiPiBTaSA8L21hdC1yYWRpby1idXR0b24+XHJcbiAgICAgICAgPG1hdC1yYWRpby1idXR0b24gY2xhc3M9XCJtci0yIHBzLTJcIiBbdmFsdWVdPVwiZmFsc2VcIiBjb2xvcj1cInByaW1hcnlcIj4gTm8gPC9tYXQtcmFkaW8tYnV0dG9uPlxyXG4gICAgICAgIDxtYXQtcmFkaW8tYnV0dG9uIGNsYXNzPVwibXItMiBwcy0yXCIgW3ZhbHVlXT1cIm51bGxcIiBjb2xvcj1cInByaW1hcnlcIiAqbmdJZj1cImZpZWxkLklzVHJpc3RhdGVcIj4gTkRcclxuICAgICAgICA8L21hdC1yYWRpby1idXR0b24+XHJcbiAgICA8L21hdC1yYWRpby1ncm91cD5cclxuXHJcbiAgICA8IS0tIFZJU1VBTElaWkFaSU9ORSBBIENIRUNLQk9YIC0tPlxyXG4gICAgPG1hdC1jaGVja2JveCBjbGFzcz1cIm1yLTJcIiAqbmdJZj1cImZpZWxkLlByZXNldGF0aW9uVHlwZSA9PSBCb29sUHJlc2VudGFudGlvRW51bS5DaGVja2JveFwiXHJcbiAgICAgICAgW2Rpc2FibGVkXT1cImZpZWxkLkZvcm1Gb3JtR3JvdXAuZGlzYWJsZWRcIiBbcmVxdWlyZWRdPVwiZmllbGQuUmVxdWlyZWRcIiBbZm9ybUNvbnRyb2xOYW1lXT1cImZpZWxkLk5hbWVcIlxyXG4gICAgICAgIFsobmdNb2RlbCldPVwicmVjb3JkW2ZpZWxkLk5hbWVdXCIgKG5nTW9kZWxDaGFuZ2UpPVwib25SZWNvcmRWYWx1ZUNoYW5nZSgpXCI+XHJcbiAgICAgICAge3tmaWVsZC5EZXNjcmlwdGlvbiArIChmaWVsZC5SZXF1aXJlZCA/IFwiICpcIiA6IFwiXCIpfX1cclxuICAgIDwvbWF0LWNoZWNrYm94PlxyXG5cclxuICAgIDwhLS0gVE9ETzogVmlzdWFsaXp6YXppb25lIFwiU3RyaW5nYSB0cnVlIG8gZmFsc2VcIiBlIFwiTnVtZXJpY28gMCBvIDFcIiA/PyAtLT5cclxuPC9kaXY+Il19
@@ -0,0 +1,106 @@
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import { DateTimeTypeEnum } from '../../../../models/fields/dateField.model';
3
+ import { UtilityHelperService } from '../../../../services/utilityHelper.services';
4
+ import { DataGetterTypeEnum } from '../../../../models/baseField.model';
5
+ import { ModeEnum, TimeTypeEnum } from "tmw-picker";
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "tmw-picker";
8
+ export class DateFieldTemplateComponent {
9
+ field;
10
+ record;
11
+ inConfig = false;
12
+ recordChange = new EventEmitter();
13
+ modes = ModeEnum;
14
+ timeType = TimeTypeEnum;
15
+ mode;
16
+ showSeconds = false;
17
+ outputFormat = null;
18
+ constructor() { }
19
+ ngOnInit() {
20
+ this.setTimeType();
21
+ this.setOutputFormat();
22
+ this.updateField();
23
+ }
24
+ ngOnChanges(changes) {
25
+ // Se viene modificato il valore di "ngModelInput" allora aggiorna l'input
26
+ if (changes['record'] != undefined && changes['record'].firstChange == false && JSON.stringify(changes['record'].currentValue) != JSON.stringify(changes['record'].previousValue)) {
27
+ this.record = changes['record'].currentValue;
28
+ this.updateField();
29
+ }
30
+ }
31
+ /**
32
+ * Metodo per aggiornare il valore del campo quando questo è rappresentato da una formula.
33
+ */
34
+ updateField() {
35
+ if ((this.field.DataGetter.DataGetterType == DataGetterTypeEnum.Manuale || this.field.DataGetter.DataGetterType == DataGetterTypeEnum.Formula) && this.field.Formula) {
36
+ this.record[this.field.Name] = UtilityHelperService.EvaluateFieldFormula(this.field.Formula, this.record, null);
37
+ }
38
+ if (this.field.VisibleIf) {
39
+ this.field.InListView = UtilityHelperService.EvaluateFieldFormula(this.field.VisibleIf, this.record, null);
40
+ }
41
+ if (this.field.DataGetter.DataGetterType == DataGetterTypeEnum.Manuale && this.record[this.field.Name] == null) {
42
+ this.record[this.field.Name] = this.field.DataGetter.DataGetterValue;
43
+ }
44
+ }
45
+ /**
46
+ * Metodo per emettere l'evento che il valore del record è cambiato.
47
+ */
48
+ onRecordValueChange(ev) {
49
+ this.field.FieldValue = ev;
50
+ this.field.FormFormGroup.get([this.field.Name]).setValue(ev);
51
+ if (!this.field.Formula) {
52
+ this.recordChange.emit(this.record);
53
+ }
54
+ }
55
+ setOutputFormat() {
56
+ if (this.field.DateFormat != null) {
57
+ this.outputFormat = this.field.DateFormat;
58
+ }
59
+ else {
60
+ if (this.field.IsOnlyDate == DateTimeTypeEnum['Solo data']) {
61
+ this.outputFormat = 'DD/MM/YYYY';
62
+ }
63
+ if (this.field.IsOnlyDate == DateTimeTypeEnum['Data e ora']) {
64
+ this.outputFormat = 'DD/MM/YYYY HH:mm';
65
+ }
66
+ if (this.field.IsOnlyDate == DateTimeTypeEnum['Solo orario']) {
67
+ this.outputFormat = 'HH:mm';
68
+ }
69
+ }
70
+ if (this.outputFormat.indexOf("ss") != -1) {
71
+ this.showSeconds = true;
72
+ }
73
+ }
74
+ /**
75
+ * In base al formato della data richiesta nel DateField (solo data, solo orario o data e ora)
76
+ * imposta la visualizzazione corretta del componente eqp-datetimepicker.
77
+ */
78
+ setTimeType() {
79
+ switch (this.field.IsOnlyDate) {
80
+ case DateTimeTypeEnum["Solo data"]:
81
+ this.mode = ModeEnum.DATEPICKER;
82
+ break;
83
+ case DateTimeTypeEnum["Solo orario"]:
84
+ this.mode = ModeEnum.TIMEPICKER;
85
+ break;
86
+ case DateTimeTypeEnum["Data e ora"]:
87
+ this.mode = ModeEnum.DATETIMEPICKER;
88
+ break;
89
+ }
90
+ }
91
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DateFieldTemplateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
92
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: DateFieldTemplateComponent, selector: "date-field-template", inputs: { field: "field", record: "record", inConfig: "inConfig" }, outputs: { recordChange: "recordChange" }, usesOnChanges: true, ngImport: i0, template: "<tmw-datetimepicker [placeholder]=\"field.Description\" [label]=\"field.Description\" [pickerMode]=\"mode\"\r\n [minDate]=\"field.MinDate ? field.MinDate : null\" [maxDate]=\"field.MaxDate ? field.MaxDate : null\"\r\n [disabled]=\"field.FormFormGroup.disabled\" [(ngModelInput)]=\"record[field.Name]\"\r\n (ngModelInputChange)=\"onRecordValueChange($event)\" [outputFormat]=\"outputFormat\" [showSeconds]=\"showSeconds\">\r\n</tmw-datetimepicker>", styles: [""], dependencies: [{ kind: "component", type: i1.TmwDateTimePickerComponent, selector: "tmw-datetimepicker", inputs: ["debugMode", "ngModelInput", "formGroupInput", "formControlNameInput", "pickerMode", "timeType", "label", "placeholder", "hint", "minDate", "maxDate", "locale", "inputFormat", "outputFormat", "forSaveLocalOnDB", "disabled", "readonly", "currentDateAsDefault", "showSpinners", "touchUi", "enableMeridian", "hideTime", "stepHour", "showHours", "hourLabel", "stepMinute", "showMinutes", "minuteLabel", "stepSecond", "showSeconds", "secondLabel", "disableMinute", "dayLabel", "monthLabel", "yearLabel", "highLightedDates", "highLightedAriaFormat"], outputs: ["ngModelInputChange"] }] });
93
+ }
94
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DateFieldTemplateComponent, decorators: [{
95
+ type: Component,
96
+ args: [{ selector: 'date-field-template', template: "<tmw-datetimepicker [placeholder]=\"field.Description\" [label]=\"field.Description\" [pickerMode]=\"mode\"\r\n [minDate]=\"field.MinDate ? field.MinDate : null\" [maxDate]=\"field.MaxDate ? field.MaxDate : null\"\r\n [disabled]=\"field.FormFormGroup.disabled\" [(ngModelInput)]=\"record[field.Name]\"\r\n (ngModelInputChange)=\"onRecordValueChange($event)\" [outputFormat]=\"outputFormat\" [showSeconds]=\"showSeconds\">\r\n</tmw-datetimepicker>" }]
97
+ }], ctorParameters: () => [], propDecorators: { field: [{
98
+ type: Input
99
+ }], record: [{
100
+ type: Input
101
+ }], inConfig: [{
102
+ type: Input
103
+ }], recordChange: [{
104
+ type: Output
105
+ }] } });
106
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1maWVsZC10ZW1wbGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lcXAtZHluYW1pYy1tb2R1bGUvc3JjL2xpYi9jb21wb25lbnRzL3ByaXZhdGUvZmllbGQtdGVtcGxhdGVzL2RhdGUtZmllbGQtdGVtcGxhdGUvZGF0ZS1maWVsZC10ZW1wbGF0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lcXAtZHluYW1pYy1tb2R1bGUvc3JjL2xpYi9jb21wb25lbnRzL3ByaXZhdGUvZmllbGQtdGVtcGxhdGVzL2RhdGUtZmllbGQtdGVtcGxhdGUvZGF0ZS1maWVsZC10ZW1wbGF0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFFekcsT0FBTyxFQUFhLGdCQUFnQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFFeEYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDbkYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDeEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsTUFBTSxZQUFZLENBQUM7OztBQU9wRCxNQUFNLE9BQU8sMEJBQTBCO0lBRTVCLEtBQUssQ0FBWTtJQUNqQixNQUFNLENBQVM7SUFDZixRQUFRLEdBQVksS0FBSyxDQUFDO0lBQ3pCLFlBQVksR0FBeUIsSUFBSSxZQUFZLEVBQVUsQ0FBQztJQUUxRSxLQUFLLEdBQUcsUUFBUSxDQUFDO0lBQ2pCLFFBQVEsR0FBRyxZQUFZLENBQUM7SUFDeEIsSUFBSSxDQUFXO0lBRWYsV0FBVyxHQUFZLEtBQUssQ0FBQztJQUM3QixZQUFZLEdBQVcsSUFBSSxD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THRDLFNBQVM7K0JBQ0UscUJBQXFCO3dEQU10QixLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0ksWUFBWTtzQkFBckIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSZWNvcmQgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvcmVjb3JkLm1vZGVsJztcclxuaW1wb3J0IHsgRGF0ZUZpZWxkLCBEYXRlVGltZVR5cGVFbnVtIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL2ZpZWxkcy9kYXRlRmllbGQubW9kZWwnO1xyXG5pbXBvcnQgeyBJQmFzZUZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vaW50ZXJmYWNlcy9pQmFzZUZpZWxkQ29tcG9uZW50LmludGVyZmFjZSc7XHJcbmltcG9ydCB7IFV0aWxpdHlIZWxwZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvdXRpbGl0eUhlbHBlci5zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IERhdGFHZXR0ZXJUeXBlRW51bSB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy9iYXNlRmllbGQubW9kZWwnO1xyXG5pbXBvcnQgeyBNb2RlRW51bSwgVGltZVR5cGVFbnVtIH0gZnJvbSBcInRtdy1waWNrZXJcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZGF0ZS1maWVsZC10ZW1wbGF0ZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGUtZmllbGQtdGVtcGxhdGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2RhdGUtZmllbGQtdGVtcGxhdGUuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGF0ZUZpZWxkVGVtcGxhdGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgSUJhc2VGaWVsZENvbXBvbmVudCB7XHJcblxyXG4gIEBJbnB1dCgpIGZpZWxkOiBEYXRlRmllbGQ7XHJcbiAgQElucHV0KCkgcmVjb3JkOiBSZWNvcmQ7XHJcbiAgQElucHV0KCkgaW5Db25maWc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBAT3V0cHV0KCkgcmVjb3JkQ2hhbmdlOiBFdmVudEVtaXR0ZXI8UmVjb3JkPiA9IG5ldyBFdmVudEVtaXR0ZXI8UmVjb3JkPigpO1xyXG5cclxuICBtb2RlcyA9IE1vZGVFbnVtO1xyXG4gIHRpbWVUeXBlID0gVGltZVR5cGVFbnVtO1xyXG4gIG1vZGU6IE1vZGVFbnVtO1xyXG5cclxuICBzaG93U2Vjb25kczogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIG91dHB1dEZvcm1hdDogc3RyaW5nID0gbnVsbDtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNldFRpbWVUeXBlKCk7XHJcbiAgICB0aGlzLnNldE91dHB1dEZvcm1hdCgpO1xyXG4gICAgdGhpcy51cGRhdGVGaWVsZCgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgLy8gU2UgdmllbmUgbW9kaWZpY2F0byBpbCB2YWxvcmUgZGkgXCJuZ01vZGVsSW5wdXRcIiBhbGxvcmEgYWdnaW9ybmEgbCdpbnB1dFxyXG4gICAgaWYgKGNoYW5nZXNbJ3JlY29yZCddICE9IHVuZGVmaW5lZCAmJiBjaGFuZ2VzWydyZWNvcmQnXS5maXJzdENoYW5nZSA9PSBmYWxzZSAmJiBKU09OLnN0cmluZ2lmeShjaGFuZ2VzWydyZWNvcmQnXS5jdXJyZW50VmFsdWUpICE9IEpTT04uc3RyaW5naWZ5KGNoYW5nZXNbJ3JlY29yZCddLnByZXZpb3VzVmFsdWUpKSB7XHJcbiAgICAgIHRoaXMucmVjb3JkID0gY2hhbmdlc1sncmVjb3JkJ10uY3VycmVudFZhbHVlO1xyXG4gICAgICB0aGlzLnVwZGF0ZUZpZWxkKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNZXRvZG8gcGVyIGFnZ2lvcm5hcmUgaWwgdmFsb3JlIGRlbCBjYW1wbyBxdWFuZG8gcXVlc3RvIMOoIHJhcHByZXNlbnRhdG8gZGEgdW5hIGZvcm11bGEuXHJcbiAgICovXHJcbiAgdXBkYXRlRmllbGQoKSB7XHJcbiAgICBpZiAoKHRoaXMuZmllbGQuRGF0YUdldHRlci5EYXRhR2V0dGVyVHlwZSA9PSBEYXRhR2V0dGVyVHlwZUVudW0uTWFudWFsZSB8fCB0aGlzLmZpZWxkLkRhdGFHZXR0ZXIuRGF0YUdldHRlclR5cGUgPT0gRGF0YUdldHRlclR5cGVFbnVtLkZvcm11bGEpICYmIHRoaXMuZmllbGQuRm9ybXVsYSkge1xyXG4gICAgICB0aGlzLnJlY29yZFt0aGlzLmZpZWxkLk5hbWVdID0gVXRpbGl0eUhlbHBlclNlcnZpY2UuRXZhbHVhdGVGaWVsZEZvcm11bGEodGhpcy5maWVsZC5Gb3JtdWxhLCB0aGlzLnJlY29yZCwgbnVsbCk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5maWVsZC5WaXNpYmxlSWYpIHtcclxuICAgICAgdGhpcy5maWVsZC5Jbkxpc3RWaWV3ID0gVXRpbGl0eUhlbHBlclNlcnZpY2UuRXZhbHVhdGVGaWVsZEZvcm11bGEodGhpcy5maWVsZC5WaXNpYmxlSWYsIHRoaXMucmVjb3JkLCBudWxsKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmZpZWxkLkRhdGFHZXR0ZXIuRGF0YUdldHRlclR5cGUgPT0gRGF0YUdldHRlclR5cGVFbnVtLk1hbnVhbGUgJiYgdGhpcy5yZWNvcmRbdGhpcy5maWVsZC5OYW1lXSA9PSBudWxsKSB7XHJcbiAgICAgIHRoaXMucmVjb3JkW3RoaXMuZmllbGQuTmFtZV0gPSB0aGlzLmZpZWxkLkRhdGFHZXR0ZXIuRGF0YUdldHRlclZhbHVlO1xyXG4gICAgfSAgICAgICBcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1ldG9kbyBwZXIgZW1ldHRlcmUgbCdldmVudG8gY2hlIGlsIHZhbG9yZSBkZWwgcmVjb3JkIMOoIGNhbWJpYXRvLlxyXG4gICAqL1xyXG4gIG9uUmVjb3JkVmFsdWVDaGFuZ2UoZXYpIHtcclxuICAgIHRoaXMuZmllbGQuRmllbGRWYWx1ZT1ldjtcclxuICAgIHRoaXMuZmllbGQuRm9ybUZvcm1Hcm91cC5nZXQoW3RoaXMuZmllbGQuTmFtZV0pLnNldFZhbHVlKGV2KTtcclxuICAgIGlmICghdGhpcy5maWVsZC5Gb3JtdWxhKSB7XHJcbiAgICAgIHRoaXMucmVjb3JkQ2hhbmdlLmVtaXQodGhpcy5yZWNvcmQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0T3V0cHV0Rm9ybWF0KCl7XHJcblxyXG4gICAgaWYgKHRoaXMuZmllbGQuRGF0ZUZvcm1hdCAhPSBudWxsKXtcclxuICAgICAgdGhpcy5vdXRwdXRGb3JtYXQgPSB0aGlzLmZpZWxkLkRhdGVGb3JtYXQgXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAodGhpcy5maWVsZC5Jc09ubHlEYXRlID09IERhdGVUaW1lVHlwZUVudW1bJ1NvbG8gZGF0YSddKXtcclxuICAgICAgICB0aGlzLm91dHB1dEZvcm1hdCA9ICdERC9NTS9ZWVlZJztcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5maWVsZC5Jc09ubHlEYXRlID09IERhdGVUaW1lVHlwZUVudW1bJ0RhdGEgZSBvcmEnXSl7XHJcbiAgICAgICAgdGhpcy5vdXRwdXRGb3JtYXQgPSAnREQvTU0vWVlZWSBISDptbSc7XHJcbiAgICAgIH0gICAgICBcclxuICAgICAgaWYgKHRoaXMuZmllbGQuSXNPbmx5RGF0ZSA9PSBEYXRlVGltZVR5cGVFbnVtWydTb2xvIG9yYXJpbyddKXtcclxuICAgICAgICB0aGlzLm91dHB1dEZvcm1hdCA9ICdISDptbSc7XHJcbiAgICAgIH0gICAgICAgICAgXHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMub3V0cHV0Rm9ybWF0LmluZGV4T2YoXCJzc1wiKSAhPSAtMSl7XHJcbiAgICAgIHRoaXMuc2hvd1NlY29uZHMgPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBJbiBiYXNlIGFsIGZvcm1hdG8gZGVsbGEgZGF0YSByaWNoaWVzdGEgbmVsIERhdGVGaWVsZCAoc29sbyBkYXRhLCBzb2xvIG9yYXJpbyBvIGRhdGEgZSBvcmEpXHJcbiAgICogaW1wb3N0YSBsYSB2aXN1YWxpenphemlvbmUgY29ycmV0dGEgZGVsIGNvbXBvbmVudGUgZXFwLWRhdGV0aW1lcGlja2VyLlxyXG4gICAqL1xyXG4gIHByaXZhdGUgc2V0VGltZVR5cGUoKSB7XHJcbiAgICBzd2l0Y2ggKHRoaXMuZmllbGQuSXNPbmx5RGF0ZSkge1xyXG4gICAgICBjYXNlIERhdGVUaW1lVHlwZUVudW1bXCJTb2xvIGRhdGFcIl06XHJcbiAgICAgICAgdGhpcy5tb2RlID0gTW9kZUVudW0uREFURVBJQ0tFUjtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBEYXRlVGltZVR5cGVFbnVtW1wiU29sbyBvcmFyaW9cIl06XHJcbiAgICAgICAgdGhpcy5tb2RlID0gTW9kZUVudW0uVElNRVBJQ0tFUjtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBEYXRlVGltZVR5cGVFbnVtW1wiRGF0YSBlIG9yYVwiXTpcclxuICAgICAgICB0aGlzLm1vZGUgPSBNb2RlRW51bS5EQVRFVElNRVBJQ0tFUjtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPHRtdy1kYXRldGltZXBpY2tlciBbcGxhY2Vob2xkZXJdPVwiZmllbGQuRGVzY3JpcHRpb25cIiBbbGFiZWxdPVwiZmllbGQuRGVzY3JpcHRpb25cIiAgW3BpY2tlck1vZGVdPVwibW9kZVwiXHJcbiAgICBbbWluRGF0ZV09XCJmaWVsZC5NaW5EYXRlID8gZmllbGQuTWluRGF0ZSA6IG51bGxcIiBbbWF4RGF0ZV09XCJmaWVsZC5NYXhEYXRlID8gZmllbGQuTWF4RGF0ZSA6IG51bGxcIlxyXG4gICAgW2Rpc2FibGVkXT1cImZpZWxkLkZvcm1Gb3JtR3JvdXAuZGlzYWJsZWRcIiBbKG5nTW9kZWxJbnB1dCldPVwicmVjb3JkW2ZpZWxkLk5hbWVdXCJcclxuICAgIChuZ01vZGVsSW5wdXRDaGFuZ2UpPVwib25SZWNvcmRWYWx1ZUNoYW5nZSgkZXZlbnQpXCIgW291dHB1dEZvcm1hdF09XCJvdXRwdXRGb3JtYXRcIiBbc2hvd1NlY29uZHNdPVwic2hvd1NlY29uZHNcIj5cclxuPC90bXctZGF0ZXRpbWVwaWNrZXI+Il19
@@ -0,0 +1,107 @@
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import { UtilityHelperService } from '../../../../services/utilityHelper.services';
3
+ import { DynAttachmentSelectObject } from '../../../../models/dynAttachment';
4
+ import { GlobalService } from '../../../../services/global.service';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/material/dialog";
7
+ import * as i2 from "../../../../services/utilityHelper.services";
8
+ import * as i3 from "@angular/material/form-field";
9
+ import * as i4 from "@angular/material/core";
10
+ import * as i5 from "@angular/material/select";
11
+ import * as i6 from "@angular/forms";
12
+ import * as i7 from "@angular/common";
13
+ export class ImageFieldSelectorTemplateComponent {
14
+ dialog;
15
+ utilityService;
16
+ record;
17
+ field;
18
+ inConfig = false;
19
+ recordChange = new EventEmitter();
20
+ FieldstyleObj;
21
+ LabelstyleObj;
22
+ transformedRecord;
23
+ constructor(dialog, utilityService) {
24
+ this.dialog = dialog;
25
+ this.utilityService = utilityService;
26
+ }
27
+ ngOnInit() {
28
+ GlobalService.debugLog("ImageFieldSelectorTemplateComponent - RECORD ngOnInit() - record", this.record[this.field.Name]);
29
+ GlobalService.debugLog("ImageFieldSelectorTemplateComponent - RECORD ngOnInit() - field", this.field);
30
+ this.initStyles();
31
+ this.initializeAttachments();
32
+ }
33
+ initStyles() {
34
+ //Funzione per parsare il campo stylecss dell'oggetto field ed applicarlo all'html
35
+ if (this.field.FieldstyleCSS != null || this.field.FieldstyleCSS != undefined)
36
+ this.FieldstyleObj = UtilityHelperService.initStyles(this.field.FieldstyleCSS);
37
+ if (this.field.LabelstyleCSS != null || this.field.LabelstyleCSS != undefined)
38
+ this.LabelstyleObj = UtilityHelperService.initStyles(this.field.LabelstyleCSS);
39
+ }
40
+ ToLowerCase(el) {
41
+ return el.toLowerCase();
42
+ }
43
+ ngOnChanges(changes) {
44
+ // Se viene modificato il valore di "ngModelInput" allora aggiorna l'input
45
+ if (changes['record'] != undefined && changes['record'].firstChange == false && JSON.stringify(changes['record'].currentValue) != JSON.stringify(changes['record'].previousValue)) {
46
+ this.record = changes['record'].currentValue;
47
+ this.updateField();
48
+ }
49
+ }
50
+ /**
51
+ * Metodo per aggiornare il valore del campo quando questo è rappresentato da una formula.
52
+ */
53
+ updateField() {
54
+ }
55
+ initializeAttachments() {
56
+ this.field.AttachmentList.forEach((attachment) => {
57
+ attachment.objectToSelect = new DynAttachmentSelectObject();
58
+ attachment.objectToSelect.ID = attachment.ID;
59
+ attachment.objectToSelect.ButtonKey = attachment.ButtonKey;
60
+ attachment.objectToSelect.ButtonValue = attachment.ButtonValue;
61
+ });
62
+ if (this.record[this.field.Name] != null) {
63
+ if (!this.field.IsMultiChoiche) {
64
+ this.transformedRecord = this.record[this.field.Name].ID;
65
+ }
66
+ else {
67
+ this.record[this.field.Name].forEach((element) => {
68
+ this.transformedRecord.push(Number(element.ID));
69
+ });
70
+ }
71
+ }
72
+ }
73
+ /**
74
+ * Metodo per emettere l'evento che il valore del record è cambiato.
75
+ */
76
+ onRecordValueChange(event) {
77
+ this.record[this.field.Name] = new Array();
78
+ if (!this.field.IsMultiChoiche) {
79
+ var dynAttachment = JSON.parse(JSON.stringify(this.field.AttachmentList.find(x => x.ID == event)));
80
+ dynAttachment.FileDataBase64 = null;
81
+ this.record[this.field.Name] = dynAttachment;
82
+ }
83
+ else {
84
+ this.transformedRecord.forEach((element) => {
85
+ var dynAttachment = JSON.parse(JSON.stringify(this.field.AttachmentList.find(x => x.ID == element)));
86
+ dynAttachment.FileDataBase64 = null;
87
+ this.record[this.field.Name].push(dynAttachment);
88
+ });
89
+ }
90
+ this.recordChange.emit(this.record);
91
+ }
92
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ImageFieldSelectorTemplateComponent, deps: [{ token: i1.MatDialog }, { token: i2.UtilityHelperService }], target: i0.ɵɵFactoryTarget.Component });
93
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ImageFieldSelectorTemplateComponent, selector: "image-field-selector-template", inputs: { record: "record", field: "field", inConfig: "inConfig" }, outputs: { recordChange: "recordChange" }, usesOnChanges: true, ngImport: i0, template: "<mat-form-field [formGroup]=\"field.FormFormGroup\" appearance=\"outline\">\r\n <mat-label class=\"pt-1\" [ngStyle]=\"LabelstyleObj\">{{field.Description}}</mat-label>\r\n\r\n <!-- Mat-Select SINGOLA -->\r\n <mat-select *ngIf=\"!field.IsMultiChoiche\" class=\"imageFieldSelectorImages\" [formControlName]=\"field.Name\"\r\n [required]=\"field.Required\" [(ngModel)]=\"transformedRecord\" (ngModelChange)=\"onRecordValueChange($event)\">\r\n <mat-option *ngFor=\"let attachment of field.AttachmentList\" [value]=\"attachment.ID\">\r\n <img src='data:image/{{ToLowerCase(attachment.FileExtension)}};base64,{{attachment.FileDataBase64}}' [height]=\"attachment.ResizedImageHeightPx != null ? attachment.ResizedImageHeightPx : 128\"> \r\n <span>{{ attachment.ButtonKey }}</span>\r\n </mat-option>\r\n </mat-select>\r\n\r\n <!-- Mat-Select MULTIPLA -->\r\n <mat-select *ngIf=\"field.IsMultiChoiche\" class=\"imageFieldSelectorImages\" [formControlName]=\"field.Name\"\r\n [required]=\"field.Required\" [(ngModel)]=\"transformedRecord\" (ngModelChange)=\"onRecordValueChange($event)\" multiple>\r\n <mat-option *ngFor=\"let attachment of field.AttachmentList\" [value]=\"attachment.ID\">\r\n <img src='data:image/{{ToLowerCase(attachment.FileExtension)}};base64,{{attachment.FileDataBase64}}' [height]=\"attachment.ResizedImageHeightPx != null ? attachment.ResizedImageHeightPx : 128\"> \r\n <span>{{ attachment.ButtonKey }}</span>\r\n </mat-option>\r\n </mat-select>\r\n\r\n</mat-form-field>", styles: [".mdc-list-item__primary-text{margin-right:50px}\n"], dependencies: [{ kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "component", type: i4.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i5.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i6.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i7.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i6.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i6.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] });
94
+ }
95
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ImageFieldSelectorTemplateComponent, decorators: [{
96
+ type: Component,
97
+ args: [{ selector: 'image-field-selector-template', template: "<mat-form-field [formGroup]=\"field.FormFormGroup\" appearance=\"outline\">\r\n <mat-label class=\"pt-1\" [ngStyle]=\"LabelstyleObj\">{{field.Description}}</mat-label>\r\n\r\n <!-- Mat-Select SINGOLA -->\r\n <mat-select *ngIf=\"!field.IsMultiChoiche\" class=\"imageFieldSelectorImages\" [formControlName]=\"field.Name\"\r\n [required]=\"field.Required\" [(ngModel)]=\"transformedRecord\" (ngModelChange)=\"onRecordValueChange($event)\">\r\n <mat-option *ngFor=\"let attachment of field.AttachmentList\" [value]=\"attachment.ID\">\r\n <img src='data:image/{{ToLowerCase(attachment.FileExtension)}};base64,{{attachment.FileDataBase64}}' [height]=\"attachment.ResizedImageHeightPx != null ? attachment.ResizedImageHeightPx : 128\"> \r\n <span>{{ attachment.ButtonKey }}</span>\r\n </mat-option>\r\n </mat-select>\r\n\r\n <!-- Mat-Select MULTIPLA -->\r\n <mat-select *ngIf=\"field.IsMultiChoiche\" class=\"imageFieldSelectorImages\" [formControlName]=\"field.Name\"\r\n [required]=\"field.Required\" [(ngModel)]=\"transformedRecord\" (ngModelChange)=\"onRecordValueChange($event)\" multiple>\r\n <mat-option *ngFor=\"let attachment of field.AttachmentList\" [value]=\"attachment.ID\">\r\n <img src='data:image/{{ToLowerCase(attachment.FileExtension)}};base64,{{attachment.FileDataBase64}}' [height]=\"attachment.ResizedImageHeightPx != null ? attachment.ResizedImageHeightPx : 128\"> \r\n <span>{{ attachment.ButtonKey }}</span>\r\n </mat-option>\r\n </mat-select>\r\n\r\n</mat-form-field>", styles: [".mdc-list-item__primary-text{margin-right:50px}\n"] }]
98
+ }], ctorParameters: () => [{ type: i1.MatDialog }, { type: i2.UtilityHelperService }], propDecorators: { record: [{
99
+ type: Input
100
+ }], field: [{
101
+ type: Input
102
+ }], inConfig: [{
103
+ type: Input
104
+ }], recordChange: [{
105
+ type: Output
106
+ }] } });
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtZmllbGQtc2VsZWN0b3ItdGVtcGxhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXFwLWR5bmFtaWMtbW9kdWxlL3NyYy9saWIvY29tcG9uZW50cy9wcml2YXRlL2ZpZWxkLXRlbXBsYXRlcy9pbWFnZS1maWVsZC1zZWxlY3Rvci10ZW1wbGF0ZS9pbWFnZS1maWVsZC1zZWxlY3Rvci10ZW1wbGF0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lcXAtZHluYW1pYy1tb2R1bGUvc3JjL2xpYi9jb21wb25lbnRzL3ByaXZhdGUvZmllbGQtdGVtcGxhdGVzL2ltYWdlLWZpZWxkLXNlbGVjdG9yLXRlbXBsYXRlL2ltYWdlLWZpZWxkLXNlbGVjdG9yLXRlbXBsYXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBSXRGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ25GLE9BQU8sRUFBaUIseUJBQXlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUM1RixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUNBQXFDLENBQUM7Ozs7Ozs7OztBQU9wRSxNQUFNLE9BQU8sbUNBQW1DO0lBWXBDO0lBQ0Q7SUFYQSxNQUFNLENBQVM7SUFDZixLQUFLLENBQXFCO0lBQzFCLFFBQVEsR0FBWSxLQUFLLENBQUM7SUFDekIsWUFBWSxHQUF5QixJQUFJLFlBQVksRUFBVSxDQUFDO0lBRTFFLGFBQWEsQ0FBTTtJQUNuQixhQUFhLENBQU07SUFDbkIsaUJBQWlCLENBQU07SUFFdkIsWUFDVSxNQUFpQixFQUNsQixjQUFvQztRQURuQyxXQUFNLEdBQU4sTUFBTSxD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YUFBYSxDQUFDLENBQUM7WUFDbkQsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO1FBRUQsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3RDLENBQUM7d0dBOUZRLG1DQUFtQzs0RkFBbkMsbUNBQW1DLHlNQ2JoRCx3L0NBcUJpQjs7NEZEUkosbUNBQW1DO2tCQUwvQyxTQUFTOytCQUNFLCtCQUErQjtpSEFNaEMsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNJLFlBQVk7c0JBQXJCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2csIE1hdERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IFJlY29yZCB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy9yZWNvcmQubW9kZWwnO1xyXG5pbXBvcnQgeyBJbWFnZVNlbGVjdG9yRmllbGQgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvZmllbGRzL2ltYWdlU2VsZWN0b3JGaWVsZC5tb2RlbCc7XHJcbmltcG9ydCB7IFV0aWxpdHlIZWxwZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvdXRpbGl0eUhlbHBlci5zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IER5bkF0dGFjaG1lbnQsIER5bkF0dGFjaG1lbnRTZWxlY3RPYmplY3QgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvZHluQXR0YWNobWVudCc7XHJcbmltcG9ydCB7IEdsb2JhbFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy9nbG9iYWwuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2ltYWdlLWZpZWxkLXNlbGVjdG9yLXRlbXBsYXRlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vaW1hZ2UtZmllbGQtc2VsZWN0b3ItdGVtcGxhdGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2ltYWdlLWZpZWxkLXNlbGVjdG9yLXRlbXBsYXRlLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIEltYWdlRmllbGRTZWxlY3RvclRlbXBsYXRlQ29tcG9uZW50IHtcclxuXHJcbiAgQElucHV0KCkgcmVjb3JkOiBSZWNvcmQ7XHJcbiAgQElucHV0KCkgZmllbGQ6IEltYWdlU2VsZWN0b3JGaWVsZDtcclxuICBASW5wdXQoKSBpbkNvbmZpZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBPdXRwdXQoKSByZWNvcmRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxSZWNvcmQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxSZWNvcmQ+KCk7XHJcblxyXG4gIEZpZWxkc3R5bGVPYmo6IGFueTtcclxuICBMYWJlbHN0eWxlT2JqOiBhbnk7XHJcbiAgdHJhbnNmb3JtZWRSZWNvcmQ6IGFueTtcclxuIFxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBkaWFsb2c6IE1hdERpYWxvZyxcclxuICAgIHB1YmxpYyB1dGlsaXR5U2VydmljZTogVXRpbGl0eUhlbHBlclNlcnZpY2VcclxuICApIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuXHJcbiAgICBHbG9iYWxTZXJ2aWNlLmRlYnVnTG9nKFwiSW1hZ2VGaWVsZFNlbGVjdG9yVGVtcGxhdGVDb21wb25lbnQgLSBSRUNPUkQgbmdPbkluaXQoKSAtIHJlY29yZFwiLCB0aGlzLnJlY29yZFt0aGlzLmZpZWxkLk5hbWVdKTtcclxuICAgIEdsb2JhbFNlcnZpY2UuZGVidWdMb2coXCJJbWFnZUZpZWxkU2VsZWN0b3JUZW1wbGF0ZUNvbXBvbmVudCAtIFJFQ09SRCBuZ09uSW5pdCgpIC0gZmllbGRcIiwgdGhpcy5maWVsZCk7XHJcblxyXG4gICAgdGhpcy5pbml0U3R5bGVzKCk7XHJcbiAgICB0aGlzLmluaXRpYWxpemVBdHRhY2htZW50cygpO1xyXG4gICAgXHJcbiAgfVxyXG5cclxuICBpbml0U3R5bGVzKCkge1xyXG4gICAgLy9GdW56aW9uZSBwZXIgcGFyc2FyZSBpbCBjYW1wbyBzdHlsZWNzcyBkZWxsJ29nZ2V0dG8gZmllbGQgZWQgYXBwbGljYXJsbyBhbGwnaHRtbFxyXG4gIGlmKHRoaXMuZmllbGQuRmllbGRzdHlsZUNTUyAhPSBudWxsIHx8IHRoaXMuZmllbGQuRmllbGRzdHlsZUNTUyAhPSB1bmRlZmluZWQpICAgXHJcbiAgICB0aGlzLkZpZWxkc3R5bGVPYmo9IFV0aWxpdHlIZWxwZXJTZXJ2aWNlLmluaXRTdHlsZXModGhpcy5maWVsZC5GaWVsZHN0eWxlQ1NTKTtcclxuICBpZih0aGlzLmZpZWxkLkxhYmVsc3R5bGVDU1MgIT0gbnVsbCB8fCB0aGlzLmZpZWxkLkxhYmVsc3R5bGVDU1MgIT0gdW5kZWZpbmVkKSAgIFxyXG4gICAgdGhpcy5MYWJlbHN0eWxlT2JqID0gVXRpbGl0eUhlbHBlclNlcnZpY2UuaW5pdFN0eWxlcyh0aGlzLmZpZWxkLkxhYmVsc3R5bGVDU1MpO1xyXG59ICBcclxuXHJcbiAgVG9Mb3dlckNhc2UoZWw6c3RyaW5nKXtcclxuICAgIHJldHVybiBlbC50b0xvd2VyQ2FzZSgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgLy8gU2UgdmllbmUgbW9kaWZpY2F0byBpbCB2YWxvcmUgZGkgXCJuZ01vZGVsSW5wdXRcIiBhbGxvcmEgYWdnaW9ybmEgbCdpbnB1dFxyXG4gICAgaWYgKGNoYW5nZXNbJ3JlY29yZCddICE9IHVuZGVmaW5lZCAmJiBjaGFuZ2VzWydyZWNvcmQnXS5maXJzdENoYW5nZSA9PSBmYWxzZSAmJiBKU09OLnN0cmluZ2lmeShjaGFuZ2VzWydyZWNvcmQnXS5jdXJyZW50VmFsdWUpICE9IEpTT04uc3RyaW5naWZ5KGNoYW5nZXNbJ3JlY29yZCddLnByZXZpb3VzVmFsdWUpKSB7XHJcbiAgICAgIHRoaXMucmVjb3JkID0gY2hhbmdlc1sncmVjb3JkJ10uY3VycmVudFZhbHVlO1xyXG4gICAgICB0aGlzLnVwZGF0ZUZpZWxkKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNZXRvZG8gcGVyIGFnZ2lvcm5hcmUgaWwgdmFsb3JlIGRlbCBjYW1wbyBxdWFuZG8gcXVlc3RvIMOoIHJhcHByZXNlbnRhdG8gZGEgdW5hIGZvcm11bGEuXHJcbiAgICovXHJcbiAgdXBkYXRlRmllbGQoKSB7XHJcblxyXG4gIH1cclxuXHJcbiAgaW5pdGlhbGl6ZUF0dGFjaG1lbnRzKCl7XHJcbiAgICB0aGlzLmZpZWxkLkF0dGFjaG1lbnRMaXN0LmZvckVhY2goKGF0dGFjaG1lbnQpID0+IHtcclxuICAgICAgYXR0YWNobWVudC5vYmplY3RUb1NlbGVjdCA9IG5ldyBEeW5BdHRhY2htZW50U2VsZWN0T2JqZWN0KCk7XHJcbiAgICAgIGF0dGFjaG1lbnQub2JqZWN0VG9TZWxlY3QuSUQgPSBhdHRhY2htZW50LklEO1xyXG4gICAgICBhdHRhY2htZW50Lm9iamVjdFRvU2VsZWN0LkJ1dHRvbktleSA9IGF0dGFjaG1lbnQuQnV0dG9uS2V5O1xyXG4gICAgICBhdHRhY2htZW50Lm9iamVjdFRvU2VsZWN0LkJ1dHRvblZhbHVlID0gYXR0YWNobWVudC5CdXR0b25WYWx1ZTtcclxuICAgIH0pO1xyXG5cclxuICAgIGlmICh0aGlzLnJlY29yZFt0aGlzLmZpZWxkLk5hbWVdICE9IG51bGwpe1xyXG4gICAgICBpZiAoIXRoaXMuZmllbGQuSXNNdWx0aUNob2ljaGUpe1xyXG4gICAgICAgIHRoaXMudHJhbnNmb3JtZWRSZWNvcmQgPSB0aGlzLnJlY29yZFt0aGlzLmZpZWxkLk5hbWVdLklEO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgICh0aGlzLnJlY29yZFt0aGlzLmZpZWxkLk5hbWVdIGFzIEFycmF5PER5bkF0dGFjaG1lbnQ+KS5mb3JFYWNoKChlbGVtZW50KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnRyYW5zZm9ybWVkUmVjb3JkLnB1c2goTnVtYmVyKGVsZW1lbnQuSUQpKTtcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgICAvKipcclxuICAgKiBNZXRvZG8gcGVyIGVtZXR0ZXJlIGwnZXZlbnRvIGNoZSBpbCB2YWxvcmUgZGVsIHJlY29yZCDDqCBjYW1iaWF0by5cclxuICAgKi9cclxuICAgIG9uUmVjb3JkVmFsdWVDaGFuZ2UoZXZlbnQ6IG51bWJlcikge1xyXG5cclxuICAgICAgdGhpcy5yZWNvcmRbdGhpcy5maWVsZC5OYW1lXSA9IG5ldyBBcnJheTxEeW5BdHRhY2htZW50PigpO1xyXG5cclxuICAgICAgaWYgKCF0aGlzLmZpZWxkLklzTXVsdGlDaG9pY2hlKXtcclxuXHJcbiAgICAgICAgdmFyIGR5bkF0dGFjaG1lbnQ6IER5bkF0dGFjaG1lbnQgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuZmllbGQuQXR0YWNobWVudExpc3QuZmluZCh4ID0+IHguSUQgPT0gZXZlbnQpKSk7XHJcbiAgICAgICAgZHluQXR0YWNobWVudC5GaWxlRGF0YUJhc2U2NCA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5yZWNvcmRbdGhpcy5maWVsZC5OYW1lXSA9IGR5bkF0dGFjaG1lbnQ7XHJcblxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMudHJhbnNmb3JtZWRSZWNvcmQuZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xyXG4gICAgICAgICAgdmFyIGR5bkF0dGFjaG1lbnQ6IER5bkF0dGFjaG1lbnQgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuZmllbGQuQXR0YWNobWVudExpc3QuZmluZCh4ID0+IHguSUQgPT0gZWxlbWVudCkpKTtcclxuICAgICAgICAgIGR5bkF0dGFjaG1lbnQuRmlsZURhdGFCYXNlNjQgPSBudWxsO1xyXG4gICAgICAgICAgdGhpcy5yZWNvcmRbdGhpcy5maWVsZC5OYW1lXS5wdXNoKGR5bkF0dGFjaG1lbnQpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLnJlY29yZENoYW5nZS5lbWl0KHRoaXMucmVjb3JkKTtcclxuICAgIH1cclxufVxyXG4iLCI8bWF0LWZvcm0tZmllbGQgW2Zvcm1Hcm91cF09XCJmaWVsZC5Gb3JtRm9ybUdyb3VwXCIgYXBwZWFyYW5jZT1cIm91dGxpbmVcIj5cclxuICA8bWF0LWxhYmVsIGNsYXNzPVwicHQtMVwiIFtuZ1N0eWxlXT1cIkxhYmVsc3R5bGVPYmpcIj57e2ZpZWxkLkRlc2NyaXB0aW9ufX08L21hdC1sYWJlbD5cclxuXHJcbiAgPCEtLSBNYXQtU2VsZWN0IFNJTkdPTEEgLS0+XHJcbiAgPG1hdC1zZWxlY3QgKm5nSWY9XCIhZmllbGQuSXNNdWx0aUNob2ljaGVcIiBjbGFzcz1cImltYWdlRmllbGRTZWxlY3RvckltYWdlc1wiIFtmb3JtQ29udHJvbE5hbWVdPVwiZmllbGQuTmFtZVwiXHJcbiAgW3JlcXVpcmVkXT1cImZpZWxkLlJlcXVpcmVkXCIgWyhuZ01vZGVsKV09XCJ0cmFuc2Zvcm1lZFJlY29yZFwiIChuZ01vZGVsQ2hhbmdlKT1cIm9uUmVjb3JkVmFsdWVDaGFuZ2UoJGV2ZW50KVwiPlxyXG4gICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IGF0dGFjaG1lbnQgb2YgZmllbGQuQXR0YWNobWVudExpc3RcIiBbdmFsdWVdPVwiYXR0YWNobWVudC5JRFwiPlxyXG4gICAgICA8aW1nIHNyYz0nZGF0YTppbWFnZS97e1RvTG93ZXJDYXNlKGF0dGFjaG1lbnQuRmlsZUV4dGVuc2lvbil9fTtiYXNlNjQse3thdHRhY2htZW50LkZpbGVEYXRhQmFzZTY0fX0nIFtoZWlnaHRdPVwiYXR0YWNobWVudC5SZXNpemVkSW1hZ2VIZWlnaHRQeCAhPSBudWxsID8gYXR0YWNobWVudC5SZXNpemVkSW1hZ2VIZWlnaHRQeCA6IDEyOFwiPiBcclxuICAgICAgPHNwYW4+e3sgYXR0YWNobWVudC5CdXR0b25LZXkgfX08L3NwYW4+XHJcbiAgICA8L21hdC1vcHRpb24+XHJcbiAgPC9tYXQtc2VsZWN0PlxyXG5cclxuICA8IS0tIE1hdC1TZWxlY3QgTVVMVElQTEEgLS0+XHJcbiAgPG1hdC1zZWxlY3QgKm5nSWY9XCJmaWVsZC5Jc011bHRpQ2hvaWNoZVwiIGNsYXNzPVwiaW1hZ2VGaWVsZFNlbGVjdG9ySW1hZ2VzXCIgW2Zvcm1Db250cm9sTmFtZV09XCJmaWVsZC5OYW1lXCJcclxuICBbcmVxdWlyZWRdPVwiZmllbGQuUmVxdWlyZWRcIiBbKG5nTW9kZWwpXT1cInRyYW5zZm9ybWVkUmVjb3JkXCIgKG5nTW9kZWxDaGFuZ2UpPVwib25SZWNvcmRWYWx1ZUNoYW5nZSgkZXZlbnQpXCIgbXVsdGlwbGU+XHJcbiAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgYXR0YWNobWVudCBvZiBmaWVsZC5BdHRhY2htZW50TGlzdFwiIFt2YWx1ZV09XCJhdHRhY2htZW50LklEXCI+XHJcbiAgICAgIDxpbWcgc3JjPSdkYXRhOmltYWdlL3t7VG9Mb3dlckNhc2UoYXR0YWNobWVudC5GaWxlRXh0ZW5zaW9uKX19O2Jhc2U2NCx7e2F0dGFjaG1lbnQuRmlsZURhdGFCYXNlNjR9fScgW2hlaWdodF09XCJhdHRhY2htZW50LlJlc2l6ZWRJbWFnZUhlaWdodFB4ICE9IG51bGwgPyBhdHRhY2htZW50LlJlc2l6ZWRJbWFnZUhlaWdodFB4IDogMTI4XCI+IFxyXG4gICAgICA8c3Bhbj57eyBhdHRhY2htZW50LkJ1dHRvbktleSB9fTwvc3Bhbj5cclxuICAgIDwvbWF0LW9wdGlvbj5cclxuICA8L21hdC1zZWxlY3Q+XHJcblxyXG48L21hdC1mb3JtLWZpZWxkPiJdfQ==