@anglr/common 19.2.0-beta.20240125053304 → 20.0.0-beta.20240530103148

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 (344) hide show
  1. package/changelog.md +81 -6
  2. package/es2022/date-fns/src/misc/utils.js.map +1 -1
  3. package/es2022/floating-ui/src/services/floatingUiDomPosition.service.js +5 -4
  4. package/es2022/floating-ui/src/services/floatingUiDomPosition.service.js.map +1 -1
  5. package/es2022/forms/src/components/defaultValidationErrors/defaultValidationErrors.component.js +14 -24
  6. package/es2022/forms/src/components/defaultValidationErrors/defaultValidationErrors.component.js.map +1 -1
  7. package/es2022/forms/src/components/defaultValidationErrorsContainer/defaultValidationErrorsContainer.component.js +4 -24
  8. package/es2022/forms/src/components/defaultValidationErrorsContainer/defaultValidationErrorsContainer.component.js.map +1 -1
  9. package/es2022/forms/src/components/reservedSpaceValidationErrorsContainer/reservedSpaceValidationErrorsContainer.component.js +4 -28
  10. package/es2022/forms/src/components/reservedSpaceValidationErrorsContainer/reservedSpaceValidationErrorsContainer.component.js.map +1 -1
  11. package/es2022/forms/src/directives/groupHasError/groupHasError.directive.js +14 -14
  12. package/es2022/forms/src/directives/groupHasError/groupHasError.directive.js.map +1 -1
  13. package/es2022/forms/src/directives/groupHasErrorContainer/groupHasErrorContainer.directive.js +5 -4
  14. package/es2022/forms/src/directives/groupHasErrorContainer/groupHasErrorContainer.directive.js.map +1 -1
  15. package/es2022/forms/src/directives/hasError/hasError.directive.js +72 -111
  16. package/es2022/forms/src/directives/hasError/hasError.directive.js.map +1 -1
  17. package/es2022/forms/src/directives/numberInput/maxValueNumberValidator.directive.js +7 -21
  18. package/es2022/forms/src/directives/numberInput/maxValueNumberValidator.directive.js.map +1 -1
  19. package/es2022/forms/src/directives/numberInput/minValueNumberValidator.directive.js +7 -21
  20. package/es2022/forms/src/directives/numberInput/minValueNumberValidator.directive.js.map +1 -1
  21. package/es2022/forms/src/directives/numberInput/numberInputControlValueAccessor.directive.js +13 -15
  22. package/es2022/forms/src/directives/numberInput/numberInputControlValueAccessor.directive.js.map +1 -1
  23. package/es2022/forms/src/directives/numberInput/numberInputValidator.directive.js +3 -3
  24. package/es2022/forms/src/directives/numberInput/numberInputValidator.directive.js.map +1 -1
  25. package/es2022/forms/src/directives/requiredClass/requiredClass.directive.js +32 -27
  26. package/es2022/forms/src/directives/requiredClass/requiredClass.directive.js.map +1 -1
  27. package/es2022/forms/src/directives/validationErrorsContainer/validationErrorsContainer.directive.js +5 -4
  28. package/es2022/forms/src/directives/validationErrorsContainer/validationErrorsContainer.directive.js.map +1 -1
  29. package/es2022/forms/src/index.js +0 -1
  30. package/es2022/forms/src/index.js.map +1 -1
  31. package/es2022/forms/src/misc/formModel/decorators/formGroupAsyncValidator.decorator.js.map +1 -1
  32. package/es2022/forms/src/misc/formModel/decorators/formGroupValidator.decorator.js.map +1 -1
  33. package/es2022/forms/src/misc/formModel/decorators/invalidateOnChange.decorator.js.map +1 -1
  34. package/es2022/forms/src/misc/formModel/decorators/modelPropertyMetadata.decorator.js.map +1 -1
  35. package/es2022/forms/src/misc/formModel/decorators/requiredIf.decorator.js.map +1 -1
  36. package/es2022/forms/src/misc/formModel/misc/currentValue.js +0 -1
  37. package/es2022/forms/src/misc/formModel/misc/currentValue.js.map +1 -1
  38. package/es2022/forms/src/misc/formModel/misc/utils.js.map +1 -1
  39. package/es2022/forms/src/misc/formModel/misc/validatorFactories.js +0 -4
  40. package/es2022/forms/src/misc/formModel/misc/validatorFactories.js.map +1 -1
  41. package/es2022/forms/src/misc/utils.js.map +1 -1
  42. package/es2022/forms/src/misc/validationErrorsContainerView.js +7 -9
  43. package/es2022/forms/src/misc/validationErrorsContainerView.js.map +1 -1
  44. package/es2022/forms/src/misc/validators.js.map +1 -1
  45. package/es2022/forms/src/modules/errorMessage/components/groupErrors/groupErrors.component.js +7 -29
  46. package/es2022/forms/src/modules/errorMessage/components/groupErrors/groupErrors.component.js.map +1 -1
  47. package/es2022/forms/src/modules/errorMessage/directives/errorMessage/errorMessage.directive.js +8 -20
  48. package/es2022/forms/src/modules/errorMessage/directives/errorMessage/errorMessage.directive.js.map +1 -1
  49. package/es2022/forms/src/modules/errorMessage/directives/groupErrorsTemplate/groupErrorsTemplate.directive.js +3 -4
  50. package/es2022/forms/src/modules/errorMessage/directives/groupErrorsTemplate/groupErrorsTemplate.directive.js.map +1 -1
  51. package/es2022/forms/src/modules/errorMessage/modules/errorMessage.module.js +6 -6
  52. package/es2022/forms/src/modules/errorMessage/modules/errorMessage.module.js.map +1 -1
  53. package/es2022/forms/src/modules/errorMessage/pipes/withErrorMessage/withErrorMessage.pipe.js +3 -4
  54. package/es2022/forms/src/modules/errorMessage/pipes/withErrorMessage/withErrorMessage.pipe.js.map +1 -1
  55. package/es2022/forms/src/modules/formPipes/modules/formPipes.module.js +5 -5
  56. package/es2022/forms/src/modules/formPipes/modules/formPipes.module.js.map +1 -1
  57. package/es2022/forms/src/modules/formPipes/pipes/asFormArray/asFormArray.pipe.js +3 -4
  58. package/es2022/forms/src/modules/formPipes/pipes/asFormArray/asFormArray.pipe.js.map +1 -1
  59. package/es2022/forms/src/modules/formPipes/pipes/asFormControl/asFormControl.pipe.js +3 -4
  60. package/es2022/forms/src/modules/formPipes/pipes/asFormControl/asFormControl.pipe.js.map +1 -1
  61. package/es2022/forms/src/modules/formPipes/pipes/asFormGroup/asFormGroup.pipe.js +3 -4
  62. package/es2022/forms/src/modules/formPipes/pipes/asFormGroup/asFormGroup.pipe.js.map +1 -1
  63. package/es2022/forms/src/modules/formPipes/pipes/getControl/getControl.pipe.js +3 -3
  64. package/es2022/forms/src/modules/formPipes/pipes/getControl/getControl.pipe.js.map +1 -1
  65. package/es2022/forms/src/modules/hasError.module.js +6 -17
  66. package/es2022/forms/src/modules/hasError.module.js.map +1 -1
  67. package/es2022/forms/src/modules/numberInput.module.js +5 -5
  68. package/es2022/forms/src/modules/numberInput.module.js.map +1 -1
  69. package/es2022/forms/src/services/errorMessagesExtractor/errorMessagesExtractor.service.js +3 -10
  70. package/es2022/forms/src/services/errorMessagesExtractor/errorMessagesExtractor.service.js.map +1 -1
  71. package/es2022/forms/src/services/formModelBuilder/formModelBuilder.service.js +3 -4
  72. package/es2022/forms/src/services/formModelBuilder/formModelBuilder.service.js.map +1 -1
  73. package/es2022/forms/src/services/submitted/submitted.service.js +14 -12
  74. package/es2022/forms/src/services/submitted/submitted.service.js.map +1 -1
  75. package/es2022/forms/src/services/validationErrorRenderer/validationErrorRenderer.service.js +3 -24
  76. package/es2022/forms/src/services/validationErrorRenderer/validationErrorRenderer.service.js.map +1 -1
  77. package/es2022/hotkeys/src/components/cheatSheet/cheatSheet.component.js +18 -21
  78. package/es2022/hotkeys/src/components/cheatSheet/cheatSheet.component.js.map +1 -1
  79. package/es2022/hotkeys/src/services/appHotkeys.service.js +20 -26
  80. package/es2022/hotkeys/src/services/appHotkeys.service.js.map +1 -1
  81. package/es2022/material/src/components/confirmationDialog/confirmationDialog.component.js +3 -10
  82. package/es2022/material/src/components/confirmationDialog/confirmationDialog.component.js.map +1 -1
  83. package/es2022/material/src/components/movableTitledDialog/movableTitledDialog.component.js +3 -3
  84. package/es2022/material/src/components/movableTitledDialog/movableTitledDialog.component.js.map +1 -1
  85. package/es2022/material/src/components/titledDialog/titledDialog.component.js +3 -10
  86. package/es2022/material/src/components/titledDialog/titledDialog.component.js.map +1 -1
  87. package/es2022/material/src/directives/confirmationDialog/confirmationDialog.directive.js +37 -38
  88. package/es2022/material/src/directives/confirmationDialog/confirmationDialog.directive.js.map +1 -1
  89. package/es2022/material/src/directives/debugDataCopyClick/debugDataCopyClick.directive.js +12 -17
  90. package/es2022/material/src/directives/debugDataCopyClick/debugDataCopyClick.directive.js.map +1 -1
  91. package/es2022/material/src/modules/confirmationDialog.module.js +6 -6
  92. package/es2022/material/src/modules/confirmationDialog.module.js.map +1 -1
  93. package/es2022/material/src/modules/debugDataCopyClick.module.js +11 -10
  94. package/es2022/material/src/modules/debugDataCopyClick.module.js.map +1 -1
  95. package/es2022/material/src/modules/movableTitledDialog.module.js +6 -6
  96. package/es2022/material/src/modules/movableTitledDialog.module.js.map +1 -1
  97. package/es2022/material/src/modules/titledDialog.module.js +6 -6
  98. package/es2022/material/src/modules/titledDialog.module.js.map +1 -1
  99. package/es2022/material/src/services/titledDialog/titledDialog.service.js +3 -5
  100. package/es2022/material/src/services/titledDialog/titledDialog.service.js.map +1 -1
  101. package/es2022/material/src/services/titledDialog/titledDialogService.options.js +5 -5
  102. package/es2022/material/src/services/titledDialog/titledDialogService.options.js.map +1 -1
  103. package/es2022/moment/src/misc/utils.js.map +1 -1
  104. package/es2022/moment/src/modules/moment.module.js +5 -5
  105. package/es2022/moment/src/modules/moment.module.js.map +1 -1
  106. package/es2022/moment/src/pipes/momentConvert/momentConvert.pipe.js +3 -3
  107. package/es2022/moment/src/pipes/momentConvert/momentConvert.pipe.js.map +1 -1
  108. package/es2022/moment/src/pipes/momentFormat/momentFormat.pipe.js +3 -3
  109. package/es2022/moment/src/pipes/momentFormat/momentFormat.pipe.js.map +1 -1
  110. package/es2022/router/src/decorators/componentRedirectRoute.decorator.js.map +1 -1
  111. package/es2022/router/src/decorators/componentRoute.decorator.js.map +1 -1
  112. package/es2022/router/src/decorators/moduleRoutes.decorator.js.map +1 -1
  113. package/es2022/router/src/misc/utils.js.map +1 -1
  114. package/es2022/router/src/services/routing/dataRouter.js +16 -17
  115. package/es2022/router/src/services/routing/dataRouter.js.map +1 -1
  116. package/es2022/router/src/services/routing/dataRouterData.js +3 -8
  117. package/es2022/router/src/services/routing/dataRouterData.js.map +1 -1
  118. package/es2022/src/components/collapsibleIcon/collapsibleIcon.component.js +20 -22
  119. package/es2022/src/components/collapsibleIcon/collapsibleIcon.component.js.map +1 -1
  120. package/es2022/src/components/collapsibleTitle/collapsibleTitle.component.js +18 -20
  121. package/es2022/src/components/collapsibleTitle/collapsibleTitle.component.js.map +1 -1
  122. package/es2022/src/decorators/asSignal/asSignal.decorator.js.map +1 -1
  123. package/es2022/src/decorators/componentHostStyle/componentHostStyle.decorator.js.map +1 -1
  124. package/es2022/src/decorators/typeProvider/typeProvider.decorator.js.map +1 -1
  125. package/es2022/src/directives/bodyRender/bodyRender.directive.js +4 -23
  126. package/es2022/src/directives/bodyRender/bodyRender.directive.js.map +1 -1
  127. package/es2022/src/directives/clickOutside/clickOutside.directive.js +27 -39
  128. package/es2022/src/directives/clickOutside/clickOutside.directive.js.map +1 -1
  129. package/es2022/src/directives/ellipsisTooltip/ellipsisTooltip.directive.js +38 -49
  130. package/es2022/src/directives/ellipsisTooltip/ellipsisTooltip.directive.js.map +1 -1
  131. package/es2022/src/directives/goBack/goBack.directive.js +4 -5
  132. package/es2022/src/directives/goBack/goBack.directive.js.map +1 -1
  133. package/es2022/src/directives/ngComponentOutletEx/ngComponentOutletEx.directive.js +13 -27
  134. package/es2022/src/directives/ngComponentOutletEx/ngComponentOutletEx.directive.js.map +1 -1
  135. package/es2022/src/directives/positionTo/positionTo.directive.js +20 -45
  136. package/es2022/src/directives/positionTo/positionTo.directive.js.map +1 -1
  137. package/es2022/src/modules/castPipes/modules/castPipes.module.js +5 -5
  138. package/es2022/src/modules/castPipes/modules/castPipes.module.js.map +1 -1
  139. package/es2022/src/modules/castPipes/pipes/asHtmlElement/asHtmlElement.pipe.js +3 -3
  140. package/es2022/src/modules/castPipes/pipes/asHtmlElement/asHtmlElement.pipe.js.map +1 -1
  141. package/es2022/src/modules/castPipes/pipes/asNgClassRequired/asNgClassRequired.pipe.js +3 -3
  142. package/es2022/src/modules/castPipes/pipes/asNgClassRequired/asNgClassRequired.pipe.js.map +1 -1
  143. package/es2022/src/modules/castPipes/pipes/asRequired/asRequired.pipe.js +3 -3
  144. package/es2022/src/modules/castPipes/pipes/asRequired/asRequired.pipe.js.map +1 -1
  145. package/es2022/src/modules/castPipes/pipes/castType/castType.pipe.js +8 -9
  146. package/es2022/src/modules/castPipes/pipes/castType/castType.pipe.js.map +1 -1
  147. package/es2022/src/modules/commonDynamic.module.js +4 -4
  148. package/es2022/src/modules/commonDynamic.module.js.map +1 -1
  149. package/es2022/src/modules/commonLocalize.module.js +4 -4
  150. package/es2022/src/modules/commonLocalize.module.js.map +1 -1
  151. package/es2022/src/modules/commonUtils.module.js +23 -19
  152. package/es2022/src/modules/commonUtils.module.js.map +1 -1
  153. package/es2022/src/modules/debugData/components/debugData/debugData.component.js +9 -46
  154. package/es2022/src/modules/debugData/components/debugData/debugData.component.js.map +1 -1
  155. package/es2022/src/modules/debugData/modules/debugData.module.js +6 -10
  156. package/es2022/src/modules/debugData/modules/debugData.module.js.map +1 -1
  157. package/es2022/src/modules/debugData/services/debugDataEnabled/debugDataEnabled.service.js +13 -26
  158. package/es2022/src/modules/debugData/services/debugDataEnabled/debugDataEnabled.service.js.map +1 -1
  159. package/es2022/src/modules/logger/components/console/console.component.js +16 -23
  160. package/es2022/src/modules/logger/components/console/console.component.js.map +1 -1
  161. package/es2022/src/modules/logger/decorators/loggerSink.decorator.js.map +1 -1
  162. package/es2022/src/modules/logger/misc/utils.js.map +1 -1
  163. package/es2022/src/modules/logger/services/console/consoleComponent.service.js +18 -16
  164. package/es2022/src/modules/logger/services/console/consoleComponent.service.js.map +1 -1
  165. package/es2022/src/modules/logger/services/console/consoleComponent.sink.js +7 -5
  166. package/es2022/src/modules/logger/services/console/consoleComponent.sink.js.map +1 -1
  167. package/es2022/src/modules/logger/services/console/consoleComponentService.options.js +8 -8
  168. package/es2022/src/modules/logger/services/console/consoleComponentService.options.js.map +1 -1
  169. package/es2022/src/modules/logger/services/developmentConsoleSink/developmentConsole.sink.js.map +1 -1
  170. package/es2022/src/modules/logger/services/logLevelEnricher/logLevelEnricher.enricher.js.map +1 -1
  171. package/es2022/src/modules/logger/services/logger/logger.service.js +3 -4
  172. package/es2022/src/modules/logger/services/logger/logger.service.js.map +1 -1
  173. package/es2022/src/modules/logger/services/rest/rest.sink.js +17 -21
  174. package/es2022/src/modules/logger/services/rest/rest.sink.js.map +1 -1
  175. package/es2022/src/modules/logger/services/rest/restSink.options.js +16 -16
  176. package/es2022/src/modules/logger/services/rest/restSink.options.js.map +1 -1
  177. package/es2022/src/modules/logger/services/subLoggerSink/subLogger.sink.js +0 -1
  178. package/es2022/src/modules/logger/services/subLoggerSink/subLogger.sink.js.map +1 -1
  179. package/es2022/src/modules/logger/types/loggerConfiguration.js +8 -17
  180. package/es2022/src/modules/logger/types/loggerConfiguration.js.map +1 -1
  181. package/es2022/src/modules/logger/types/loggerOptions.js +30 -28
  182. package/es2022/src/modules/logger/types/loggerOptions.js.map +1 -1
  183. package/es2022/src/modules/logger/types/messageLog.js +5 -18
  184. package/es2022/src/modules/logger/types/messageLog.js.map +1 -1
  185. package/es2022/src/modules/multiButton/components/multiButton/multiButton.component.js +33 -46
  186. package/es2022/src/modules/multiButton/components/multiButton/multiButton.component.js.map +1 -1
  187. package/es2022/src/modules/multiButton/modules/multiButton.module.js +4 -4
  188. package/es2022/src/modules/multiButton/modules/multiButton.module.js.map +1 -1
  189. package/es2022/src/modules/progressIndicator/components/progressIndicator/progressIndicator.component.js +9 -21
  190. package/es2022/src/modules/progressIndicator/components/progressIndicator/progressIndicator.component.js.map +1 -1
  191. package/es2022/src/modules/progressIndicator/directives/progressOverlay/progressOverlay.directive.js +7 -45
  192. package/es2022/src/modules/progressIndicator/directives/progressOverlay/progressOverlay.directive.js.map +1 -1
  193. package/es2022/src/modules/progressIndicator/interceptors/progressInterceptor.js +3 -4
  194. package/es2022/src/modules/progressIndicator/interceptors/progressInterceptor.js.map +1 -1
  195. package/es2022/src/modules/progressIndicator/modules/progressIndicator.module.js +6 -6
  196. package/es2022/src/modules/progressIndicator/modules/progressIndicator.module.js.map +1 -1
  197. package/es2022/src/modules/progressIndicator/services/progressIndicator.service.js +29 -30
  198. package/es2022/src/modules/progressIndicator/services/progressIndicator.service.js.map +1 -1
  199. package/es2022/src/modules/progressIndicator/services/progressIndicatorOptions.js +9 -9
  200. package/es2022/src/modules/progressIndicator/services/progressIndicatorOptions.js.map +1 -1
  201. package/es2022/src/modules/tooltip/components/tooltip/tooltip.component.js +16 -31
  202. package/es2022/src/modules/tooltip/components/tooltip/tooltip.component.js.map +1 -1
  203. package/es2022/src/modules/tooltip/directives/tooltip/tooltip.directive.js +29 -81
  204. package/es2022/src/modules/tooltip/directives/tooltip/tooltip.directive.js.map +1 -1
  205. package/es2022/src/modules/tooltip/directives/tooltipTemplate/tooltipTemplate.directive.js +3 -4
  206. package/es2022/src/modules/tooltip/directives/tooltipTemplate/tooltipTemplate.directive.js.map +1 -1
  207. package/es2022/src/modules/tooltip/modules/tooltip.module.js +5 -5
  208. package/es2022/src/modules/tooltip/modules/tooltip.module.js.map +1 -1
  209. package/es2022/src/pipes/displayProperties/displayProperties.pipe.js +4 -4
  210. package/es2022/src/pipes/displayProperties/displayProperties.pipe.js.map +1 -1
  211. package/es2022/src/pipes/firstUppercase/firstUppercase.pipe.js +3 -3
  212. package/es2022/src/pipes/firstUppercase/firstUppercase.pipe.js.map +1 -1
  213. package/es2022/src/pipes/firstUppercaseLocalize/firstUppercaseLocalize.pipe.js +3 -18
  214. package/es2022/src/pipes/firstUppercaseLocalize/firstUppercaseLocalize.pipe.js.map +1 -1
  215. package/es2022/src/pipes/index.js +2 -0
  216. package/es2022/src/pipes/index.js.map +1 -1
  217. package/es2022/src/pipes/isNaN/isNaN.pipe.js +4 -4
  218. package/es2022/src/pipes/isNaN/isNaN.pipe.js.map +1 -1
  219. package/es2022/src/pipes/isPresent/isPresent.pipe.js +4 -4
  220. package/es2022/src/pipes/isPresent/isPresent.pipe.js.map +1 -1
  221. package/es2022/src/pipes/keys/keys.pipe.js +4 -4
  222. package/es2022/src/pipes/keys/keys.pipe.js.map +1 -1
  223. package/es2022/src/pipes/localize/localize.pipe.js +3 -10
  224. package/es2022/src/pipes/localize/localize.pipe.js.map +1 -1
  225. package/es2022/src/pipes/mergeCssClasses/mergeCssClasses.pipe.js +3 -3
  226. package/es2022/src/pipes/mergeCssClasses/mergeCssClasses.pipe.js.map +1 -1
  227. package/es2022/{numeral/src/pipes → src/pipes/numeral}/numeral.pipe.js +8 -15
  228. package/es2022/src/pipes/numeral/numeral.pipe.js.map +1 -0
  229. package/es2022/src/pipes/trimText/trimText.pipe.js +29 -0
  230. package/es2022/src/pipes/trimText/trimText.pipe.js.map +1 -0
  231. package/es2022/src/pipes/urlEncode/urlEncode.pipe.js +4 -4
  232. package/es2022/src/pipes/urlEncode/urlEncode.pipe.js.map +1 -1
  233. package/es2022/src/services/cookies/cookies.service.js +8 -9
  234. package/es2022/src/services/cookies/cookies.service.js.map +1 -1
  235. package/es2022/src/services/notifications/defaultNotifications.service.js +24 -25
  236. package/es2022/src/services/notifications/defaultNotifications.service.js.map +1 -1
  237. package/es2022/src/services/notifications/notifications.interface.js +0 -3
  238. package/es2022/src/services/notifications/notifications.interface.js.map +1 -1
  239. package/es2022/src/services/notifications/notificationsOptions.js +5 -5
  240. package/es2022/src/services/notifications/notificationsOptions.js.map +1 -1
  241. package/es2022/src/services/permanentStorage/cookiePermanentStorage.service.js +3 -4
  242. package/es2022/src/services/permanentStorage/cookiePermanentStorage.service.js.map +1 -1
  243. package/es2022/src/services/position/position.interface.js.map +1 -1
  244. package/es2022/src/services/statusCode/statusCode.service.js +3 -8
  245. package/es2022/src/services/statusCode/statusCode.service.js.map +1 -1
  246. package/es2022/src/services/stringLocalization/noStringLocalization.service.js +10 -8
  247. package/es2022/src/services/stringLocalization/noStringLocalization.service.js.map +1 -1
  248. package/es2022/src/services/temporaryStorage/memoryTemporaryStorage.service.js +10 -8
  249. package/es2022/src/services/temporaryStorage/memoryTemporaryStorage.service.js.map +1 -1
  250. package/es2022/src/utils/index.js.map +1 -1
  251. package/es2022/store/src/services/permanentStorage/localPermanentStorage.service.js +3 -3
  252. package/es2022/store/src/services/permanentStorage/localPermanentStorage.service.js.map +1 -1
  253. package/es2022/store/src/services/temporaryStorage/sessionTemporaryStorage.service.js +3 -3
  254. package/es2022/store/src/services/temporaryStorage/sessionTemporaryStorage.service.js.map +1 -1
  255. package/floating-ui/src/services/floatingUiDomPosition.service.d.ts +5 -5
  256. package/floating-ui/src/services/floatingUiDomPosition.service.d.ts.map +1 -1
  257. package/forms/src/components/defaultValidationErrors/defaultValidationErrors.component.d.ts +1 -1
  258. package/forms/src/components/defaultValidationErrors/defaultValidationErrors.component.d.ts.map +1 -1
  259. package/forms/src/components/defaultValidationErrors/defaultValidationErrors.component.html +9 -3
  260. package/forms/src/components/defaultValidationErrorsContainer/defaultValidationErrorsContainer.component.d.ts +1 -1
  261. package/forms/src/components/defaultValidationErrorsContainer/defaultValidationErrorsContainer.component.d.ts.map +1 -1
  262. package/forms/src/components/reservedSpaceValidationErrorsContainer/reservedSpaceValidationErrorsContainer.component.d.ts +1 -1
  263. package/forms/src/components/reservedSpaceValidationErrorsContainer/reservedSpaceValidationErrorsContainer.component.d.ts.map +1 -1
  264. package/forms/src/directives/groupHasError/groupHasError.directive.d.ts +1 -1
  265. package/forms/src/directives/groupHasError/groupHasError.directive.d.ts.map +1 -1
  266. package/forms/src/directives/groupHasErrorContainer/groupHasErrorContainer.directive.d.ts +1 -1
  267. package/forms/src/directives/groupHasErrorContainer/groupHasErrorContainer.directive.d.ts.map +1 -1
  268. package/forms/src/directives/hasError/hasError.directive.d.ts +24 -32
  269. package/forms/src/directives/hasError/hasError.directive.d.ts.map +1 -1
  270. package/forms/src/directives/requiredClass/requiredClass.directive.d.ts +14 -12
  271. package/forms/src/directives/requiredClass/requiredClass.directive.d.ts.map +1 -1
  272. package/forms/src/directives/validationErrorsContainer/validationErrorsContainer.directive.d.ts +1 -1
  273. package/forms/src/directives/validationErrorsContainer/validationErrorsContainer.directive.d.ts.map +1 -1
  274. package/forms/src/index.d.ts +0 -1
  275. package/forms/src/index.d.ts.map +1 -1
  276. package/forms/src/modules/hasError.module.d.ts +1 -5
  277. package/forms/src/modules/hasError.module.d.ts.map +1 -1
  278. package/hotkeys/src/components/cheatSheet/cheatSheet.component.d.ts +3 -3
  279. package/hotkeys/src/components/cheatSheet/cheatSheet.component.d.ts.map +1 -1
  280. package/hotkeys/src/components/cheatSheet/cheatSheet.component.html +13 -7
  281. package/lerna.json +4 -0
  282. package/material/src/directives/debugDataCopyClick/debugDataCopyClick.directive.d.ts +2 -2
  283. package/material/src/directives/debugDataCopyClick/debugDataCopyClick.directive.d.ts.map +1 -1
  284. package/material/src/modules/debugDataCopyClick.module.d.ts +3 -3
  285. package/material/src/modules/debugDataCopyClick.module.d.ts.map +1 -1
  286. package/package.json +54 -57
  287. package/readme.md +0 -1
  288. package/router/src/decorators/moduleRoutes.decorator.d.ts.map +1 -1
  289. package/src/components/collapsibleIcon/collapsibleIcon.component.d.ts +3 -3
  290. package/src/components/collapsibleIcon/collapsibleIcon.component.d.ts.map +1 -1
  291. package/src/components/collapsibleTitle/collapsibleTitle.component.d.ts +3 -3
  292. package/src/components/collapsibleTitle/collapsibleTitle.component.d.ts.map +1 -1
  293. package/src/directives/bodyRender/bodyRender.directive.d.ts +3 -3
  294. package/src/directives/bodyRender/bodyRender.directive.d.ts.map +1 -1
  295. package/src/directives/ellipsisTooltip/ellipsisTooltip.directive.d.ts +3 -3
  296. package/src/directives/ellipsisTooltip/ellipsisTooltip.directive.d.ts.map +1 -1
  297. package/src/directives/goBack/goBack.directive.d.ts +3 -3
  298. package/src/directives/goBack/goBack.directive.d.ts.map +1 -1
  299. package/src/directives/positionTo/positionTo.directive.d.ts +2 -2
  300. package/src/directives/positionTo/positionTo.directive.d.ts.map +1 -1
  301. package/src/modules/commonUtils.module.d.ts +2 -1
  302. package/src/modules/commonUtils.module.d.ts.map +1 -1
  303. package/src/modules/debugData/components/debugData/debugData.component.css +1 -0
  304. package/src/modules/debugData/components/debugData/debugData.component.d.ts +4 -24
  305. package/src/modules/debugData/components/debugData/debugData.component.d.ts.map +1 -1
  306. package/src/modules/debugData/components/debugData/debugData.component.html +4 -3
  307. package/src/modules/debugData/modules/debugData.module.d.ts +1 -2
  308. package/src/modules/debugData/modules/debugData.module.d.ts.map +1 -1
  309. package/src/modules/debugData/services/debugDataEnabled/debugDataEnabled.service.d.ts +2 -10
  310. package/src/modules/debugData/services/debugDataEnabled/debugDataEnabled.service.d.ts.map +1 -1
  311. package/src/modules/tooltip/directives/tooltip/tooltip.directive.d.ts +7 -8
  312. package/src/modules/tooltip/directives/tooltip/tooltip.directive.d.ts.map +1 -1
  313. package/src/pipes/displayProperties/displayProperties.pipe.d.ts +3 -3
  314. package/src/pipes/displayProperties/displayProperties.pipe.d.ts.map +1 -1
  315. package/src/pipes/index.d.ts +2 -0
  316. package/src/pipes/index.d.ts.map +1 -1
  317. package/src/pipes/isNaN/isNaN.pipe.d.ts +3 -3
  318. package/src/pipes/isNaN/isNaN.pipe.d.ts.map +1 -1
  319. package/src/pipes/isPresent/isPresent.pipe.d.ts +3 -3
  320. package/src/pipes/isPresent/isPresent.pipe.d.ts.map +1 -1
  321. package/src/pipes/keys/keys.pipe.d.ts +3 -3
  322. package/src/pipes/keys/keys.pipe.d.ts.map +1 -1
  323. package/{numeral/src/pipes → src/pipes/numeral}/numeral.pipe.d.ts +4 -4
  324. package/{numeral/src/pipes → src/pipes/numeral}/numeral.pipe.d.ts.map +1 -1
  325. package/src/pipes/trimText/trimText.pipe.d.ts +17 -0
  326. package/src/pipes/trimText/trimText.pipe.d.ts.map +1 -0
  327. package/src/pipes/urlEncode/urlEncode.pipe.d.ts +3 -3
  328. package/src/pipes/urlEncode/urlEncode.pipe.d.ts.map +1 -1
  329. package/src/services/position/position.interface.d.ts +10 -10
  330. package/src/services/position/position.interface.d.ts.map +1 -1
  331. package/styles/core/_mixins.scss +14 -0
  332. package/styles/core/_theme.scss +4 -0
  333. package/version.bak +1 -1
  334. package/es2022/forms/src/modules/requiredClass.module.js +0 -19
  335. package/es2022/forms/src/modules/requiredClass.module.js.map +0 -1
  336. package/es2022/numeral/src/index.js +0 -2
  337. package/es2022/numeral/src/index.js.map +0 -1
  338. package/es2022/numeral/src/pipes/numeral.pipe.js.map +0 -1
  339. package/forms/src/modules/requiredClass.module.d.ts +0 -11
  340. package/forms/src/modules/requiredClass.module.d.ts.map +0 -1
  341. package/numeral/package.json +0 -8
  342. package/numeral/src/index.d.ts +0 -2
  343. package/numeral/src/index.d.ts.map +0 -1
  344. package/src/style.scss +0 -87
@@ -1,59 +1,64 @@
1
- import { Directive, Optional, HostBinding, ChangeDetectorRef } from '@angular/core';
2
- import { FormControlDirective, FormControlName, FormControl } from '@angular/forms';
1
+ import { Directive, Optional, Renderer2, Input, ElementRef } from '@angular/core';
2
+ import { FormControlDirective, FormControlName, Validators } from '@angular/forms';
3
3
  import * as i0 from "@angular/core";
4
4
  import * as i1 from "@angular/forms";
5
- //TODO: reworking using hasValidator
6
5
  /**
7
- * Required class directive adds required class to element
6
+ * Transforms empty class name to default class name 'required'
7
+ */
8
+ function requiredClassTransform(value) {
9
+ return value || 'required';
10
+ }
11
+ /**
12
+ * Required class directive adds required class to element if it has required validator
8
13
  */
9
14
  export class RequiredClassDirective {
10
- _formControl;
11
- _formControlName;
12
- _changeDetector;
13
- //######################### private properties #########################
15
+ //######################### protected properties #########################
14
16
  /**
15
17
  * Gets control which was assigned to this element
16
18
  */
17
19
  get control() {
18
20
  return (this._formControl && this._formControl.control) || (this._formControlName && this._formControlName.control);
19
21
  }
20
- //######################### public properties - host #########################
21
- /**
22
- * Handles css class for required input
23
- */
24
- required = false;
25
22
  //######################### constructor #########################
26
- constructor(_formControl, _formControlName, _changeDetector) {
23
+ constructor(_formControl, _formControlName, _renderer, _element) {
27
24
  this._formControl = _formControl;
28
25
  this._formControlName = _formControlName;
29
- this._changeDetector = _changeDetector;
26
+ this._renderer = _renderer;
27
+ this._element = _element;
28
+ //######################### public properties - inputs #########################
29
+ /**
30
+ * Name of required css class that should be applied
31
+ */
32
+ this.requiredClass = 'required';
30
33
  }
31
34
  //######################### public methods - implementation of AfterViewInit #########################
32
35
  /**
33
36
  * Called when view was initialized
34
37
  */
35
38
  ngAfterViewInit() {
36
- const control = this.control;
37
- if (control && control.validator) {
38
- const validationResult = control.validator(new FormControl(null));
39
- this.required = validationResult && validationResult.required;
40
- this._changeDetector.detectChanges();
39
+ const required = this.control?.hasValidator(Validators.required);
40
+ if (required) {
41
+ this._renderer.addClass(this._element.nativeElement, this.requiredClass);
42
+ }
43
+ else {
44
+ this._renderer.removeClass(this._element.nativeElement, this.requiredClass);
41
45
  }
42
46
  }
43
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: RequiredClassDirective, deps: [{ token: i1.FormControlDirective, optional: true }, { token: i1.FormControlName, optional: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
44
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.5", type: RequiredClassDirective, selector: "[requiredClass]", host: { properties: { "class.required": "this.required" } }, ngImport: i0 });
47
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: RequiredClassDirective, deps: [{ token: i1.FormControlDirective, optional: true }, { token: i1.FormControlName, optional: true }, { token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
48
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.0.1", type: RequiredClassDirective, isStandalone: true, selector: "[requiredClass][formControlName],[requiredClass][formControl]", inputs: { requiredClass: ["requiredClass", "requiredClass", requiredClassTransform] }, ngImport: i0 }); }
45
49
  }
46
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: RequiredClassDirective, decorators: [{
50
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: RequiredClassDirective, decorators: [{
47
51
  type: Directive,
48
52
  args: [{
49
- selector: '[requiredClass]'
53
+ selector: '[requiredClass][formControlName],[requiredClass][formControl]',
54
+ standalone: true,
50
55
  }]
51
56
  }], ctorParameters: () => [{ type: i1.FormControlDirective, decorators: [{
52
57
  type: Optional
53
58
  }] }, { type: i1.FormControlName, decorators: [{
54
59
  type: Optional
55
- }] }, { type: i0.ChangeDetectorRef }], propDecorators: { required: [{
56
- type: HostBinding,
57
- args: ['class.required']
60
+ }] }, { type: i0.Renderer2 }, { type: i0.ElementRef }], propDecorators: { requiredClass: [{
61
+ type: Input,
62
+ args: [{ transform: requiredClassTransform }]
58
63
  }] } });
59
64
  //# sourceMappingURL=requiredClass.directive.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"requiredClass.directive.js","sourceRoot":"","sources":["../../../../../forms/src/directives/requiredClass/requiredClass.directive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAE,QAAQ,EAAiB,WAAW,EAAE,iBAAiB,EAAC,MAAM,eAAe,CAAC;AACjG,OAAO,EAAC,oBAAoB,EAAE,eAAe,EAAE,WAAW,EAAC,MAAM,gBAAgB,CAAC;;;AAElF,oCAAoC;AAEpC;;GAEG;AAKH,MAAM,OAAO,sBAAsB;IAqBC;IACA;IACZ;IArBpB,wEAAwE;IAExE;;OAEG;IACH,IAAY,OAAO;QAEf,OAAO,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACxH,CAAC;IAED,8EAA8E;IAE9E;;OAEG;IAEI,QAAQ,GAAY,KAAK,CAAC;IAEjC,iEAAiE;IACjE,YAAgC,YAAkC,EAClC,gBAAiC,EAC7C,eAAkC;QAFtB,iBAAY,GAAZ,YAAY,CAAsB;QAClC,qBAAgB,GAAhB,gBAAgB,CAAiB;QAC7C,oBAAe,GAAf,eAAe,CAAmB;IAEtD,CAAC;IAED,sGAAsG;IAEtG;;OAEG;IACI,eAAe;QAElB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAE7B,IAAG,OAAO,IAAI,OAAO,CAAC,SAAS,EAC/B;YACI,MAAM,gBAAgB,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;YAClE,IAAI,CAAC,QAAQ,GAAG,gBAAgB,IAAI,gBAAgB,CAAC,QAAQ,CAAC;YAE9D,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE,CAAC;SACxC;IACL,CAAC;uGA3CQ,sBAAsB;2FAAtB,sBAAsB;;2FAAtB,sBAAsB;kBAJlC,SAAS;mBACV;oBACI,QAAQ,EAAE,iBAAiB;iBAC9B;;0BAsBgB,QAAQ;;0BACR,QAAQ;yEAJd,QAAQ;sBADd,WAAW;uBAAC,gBAAgB","sourcesContent":["import {Directive, Optional, AfterViewInit, HostBinding, ChangeDetectorRef} from '@angular/core';\nimport {FormControlDirective, FormControlName, FormControl} from '@angular/forms';\n\n//TODO: reworking using hasValidator\n\n/**\n * Required class directive adds required class to element\n */\n@Directive(\n{\n selector: '[requiredClass]'\n})\nexport class RequiredClassDirective implements AfterViewInit\n{\n //######################### private properties #########################\n\n /**\n * Gets control which was assigned to this element\n */\n private get control(): FormControl\n {\n return (this._formControl && this._formControl.control) || (this._formControlName && this._formControlName.control);\n }\n\n //######################### public properties - host #########################\n\n /**\n * Handles css class for required input\n */\n @HostBinding('class.required')\n public required: boolean = false;\n\n //######################### constructor #########################\n constructor(@Optional() private _formControl: FormControlDirective,\n @Optional() private _formControlName: FormControlName,\n private _changeDetector: ChangeDetectorRef)\n {\n }\n\n //######################### public methods - implementation of AfterViewInit #########################\n \n /**\n * Called when view was initialized\n */\n public ngAfterViewInit(): void\n {\n const control = this.control;\n\n if(control && control.validator)\n {\n const validationResult = control.validator(new FormControl(null));\n this.required = validationResult && validationResult.required;\n\n this._changeDetector.detectChanges();\n }\n }\n}"]}
1
+ {"version":3,"file":"requiredClass.directive.js","sourceRoot":"","sources":["../../../../../forms/src/directives/requiredClass/requiredClass.directive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAE,QAAQ,EAAiB,SAAS,EAAE,KAAK,EAAE,UAAU,EAAC,MAAM,eAAe,CAAC;AAC/F,OAAO,EAAC,oBAAoB,EAAE,eAAe,EAAe,UAAU,EAAC,MAAM,gBAAgB,CAAC;;;AAE9F;;GAEG;AACH,SAAS,sBAAsB,CAAC,KAAa;IAEzC,OAAO,KAAK,IAAI,UAAU,CAAC;AAC/B,CAAC;AAED;;GAEG;AAMH,MAAM,OAAO,sBAAsB;IAE/B,0EAA0E;IAE1E;;OAEG;IACH,IAAc,OAAO;QAEjB,OAAO,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACxH,CAAC;IAUD,iEAAiE;IACjE,YAAkC,YAAkC,EAClC,gBAAiC,EAC7C,SAAoB,EACpB,QAAiC;QAHrB,iBAAY,GAAZ,YAAY,CAAsB;QAClC,qBAAgB,GAAhB,gBAAgB,CAAiB;QAC7C,cAAS,GAAT,SAAS,CAAW;QACpB,aAAQ,GAAR,QAAQ,CAAyB;QAZvD,gFAAgF;QAEhF;;WAEG;QAEI,kBAAa,GAAW,UAAU,CAAC;IAQ1C,CAAC;IAED,sGAAsG;IAEtG;;OAEG;IACI,eAAe;QAElB,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAEjE,IAAG,QAAQ,EACX,CAAC;YACG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QAC7E,CAAC;aAED,CAAC;YACG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QAChF,CAAC;IACL,CAAC;8GA7CQ,sBAAsB;kGAAtB,sBAAsB,6JAb1B,sBAAsB;;2FAalB,sBAAsB;kBALlC,SAAS;mBACV;oBACI,QAAQ,EAAE,+DAA+D;oBACzE,UAAU,EAAE,IAAI;iBACnB;;0BAsBgB,QAAQ;;0BACR,QAAQ;0FAJd,aAAa;sBADnB,KAAK;uBAAC,EAAC,SAAS,EAAE,sBAAsB,EAAC","sourcesContent":["import {Directive, Optional, AfterViewInit, Renderer2, Input, ElementRef} from '@angular/core';\nimport {FormControlDirective, FormControlName, FormControl, Validators} from '@angular/forms';\n\n/**\n * Transforms empty class name to default class name 'required'\n */\nfunction requiredClassTransform(value: string): string\n{\n return value || 'required';\n}\n\n/**\n * Required class directive adds required class to element if it has required validator\n */\n@Directive(\n{\n selector: '[requiredClass][formControlName],[requiredClass][formControl]',\n standalone: true,\n})\nexport class RequiredClassDirective implements AfterViewInit\n{\n //######################### protected properties #########################\n\n /**\n * Gets control which was assigned to this element\n */\n protected get control(): FormControl\n {\n return (this._formControl && this._formControl.control) || (this._formControlName && this._formControlName.control);\n }\n\n //######################### public properties - inputs #########################\n\n /**\n * Name of required css class that should be applied\n */\n @Input({transform: requiredClassTransform})\n public requiredClass: string = 'required';\n\n //######################### constructor #########################\n constructor(@Optional() protected _formControl: FormControlDirective,\n @Optional() protected _formControlName: FormControlName,\n protected _renderer: Renderer2,\n protected _element: ElementRef<HTMLElement>,)\n {\n }\n\n //######################### public methods - implementation of AfterViewInit #########################\n \n /**\n * Called when view was initialized\n */\n public ngAfterViewInit(): void\n {\n const required = this.control?.hasValidator(Validators.required);\n\n if(required)\n {\n this._renderer.addClass(this._element.nativeElement, this.requiredClass);\n }\n else\n {\n this._renderer.removeClass(this._element.nativeElement, this.requiredClass);\n }\n }\n}"]}
@@ -10,13 +10,14 @@ export class ValidationErrorsContainerDirective {
10
10
  constructor(containerView, viewContainer) {
11
11
  containerView.viewContainer = viewContainer;
12
12
  }
13
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: ValidationErrorsContainerDirective, deps: [{ token: i1.ValidationErrorsContainerView, skipSelf: true }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
14
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.5", type: ValidationErrorsContainerDirective, selector: "[validationErrorsContainer]", ngImport: i0 });
13
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ValidationErrorsContainerDirective, deps: [{ token: i1.ValidationErrorsContainerView, skipSelf: true }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive }); }
14
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.1", type: ValidationErrorsContainerDirective, isStandalone: true, selector: "[validationErrorsContainer]", ngImport: i0 }); }
15
15
  }
16
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: ValidationErrorsContainerDirective, decorators: [{
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ValidationErrorsContainerDirective, decorators: [{
17
17
  type: Directive,
18
18
  args: [{
19
- selector: '[validationErrorsContainer]'
19
+ selector: '[validationErrorsContainer]',
20
+ standalone: true,
20
21
  }]
21
22
  }], ctorParameters: () => [{ type: i1.ValidationErrorsContainerView, decorators: [{
22
23
  type: SkipSelf
@@ -1 +1 @@
1
- {"version":3,"file":"validationErrorsContainer.directive.js","sourceRoot":"","sources":["../../../../../forms/src/directives/validationErrorsContainer/validationErrorsContainer.directive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAE,QAAQ,EAAE,gBAAgB,EAAC,MAAM,eAAe,CAAC;AAEpE,OAAO,EAAC,6BAA6B,EAAC,MAAM,0CAA0C,CAAC;;;AAEvF;;GAEG;AAKH,MAAM,OAAO,kCAAkC;IAE3C,iEAAiE;IACjE,YAAwB,aAA4C,EACxD,aAA+B;QAEvC,aAAa,CAAC,aAAa,GAAG,aAAa,CAAC;IAChD,CAAC;uGAPQ,kCAAkC;2FAAlC,kCAAkC;;2FAAlC,kCAAkC;kBAJ9C,SAAS;mBACV;oBACI,QAAQ,EAAE,6BAA6B;iBAC1C;;0BAIgB,QAAQ","sourcesContent":["import {Directive, SkipSelf, ViewContainerRef} from '@angular/core';\n\nimport {ValidationErrorsContainerView} from '../../misc/validationErrorsContainerView';\n\n/**\n * Directive that sets view container for validation errors for current element\n */\n@Directive(\n{\n selector: '[validationErrorsContainer]'\n})\nexport class ValidationErrorsContainerDirective\n{\n //######################### constructor #########################\n constructor(@SkipSelf() containerView: ValidationErrorsContainerView,\n viewContainer: ViewContainerRef,)\n {\n containerView.viewContainer = viewContainer;\n }\n}"]}
1
+ {"version":3,"file":"validationErrorsContainer.directive.js","sourceRoot":"","sources":["../../../../../forms/src/directives/validationErrorsContainer/validationErrorsContainer.directive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAE,QAAQ,EAAE,gBAAgB,EAAC,MAAM,eAAe,CAAC;AAEpE,OAAO,EAAC,6BAA6B,EAAC,MAAM,0CAA0C,CAAC;;;AAEvF;;GAEG;AAMH,MAAM,OAAO,kCAAkC;IAE3C,iEAAiE;IACjE,YAAwB,aAA4C,EACxD,aAA+B;QAEvC,aAAa,CAAC,aAAa,GAAG,aAAa,CAAC;IAChD,CAAC;8GAPQ,kCAAkC;kGAAlC,kCAAkC;;2FAAlC,kCAAkC;kBAL9C,SAAS;mBACV;oBACI,QAAQ,EAAE,6BAA6B;oBACvC,UAAU,EAAE,IAAI;iBACnB;;0BAIgB,QAAQ","sourcesContent":["import {Directive, SkipSelf, ViewContainerRef} from '@angular/core';\n\nimport {ValidationErrorsContainerView} from '../../misc/validationErrorsContainerView';\n\n/**\n * Directive that sets view container for validation errors for current element\n */\n@Directive(\n{\n selector: '[validationErrorsContainer]',\n standalone: true,\n})\nexport class ValidationErrorsContainerDirective\n{\n //######################### constructor #########################\n constructor(@SkipSelf() containerView: ValidationErrorsContainerView,\n viewContainer: ViewContainerRef,)\n {\n containerView.viewContainer = viewContainer;\n }\n}"]}
@@ -20,7 +20,6 @@ export * from './misc/validators';
20
20
  export * from './misc/validationErrorsContainerView';
21
21
  export * from './modules/numberInput.module';
22
22
  export * from './modules/hasError.module';
23
- export * from './modules/requiredClass.module';
24
23
  export * from './modules/formPipes';
25
24
  export * from './modules/errorMessage';
26
25
  export * from './misc/formModel';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../forms/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,4DAA4D,CAAC;AAC3E,cAAc,4DAA4D,CAAC;AAC3E,cAAc,yDAAyD,CAAC;AACxE,cAAc,oEAAoE,CAAC;AACnF,cAAc,0CAA0C,CAAC;AACzD,cAAc,oDAAoD,CAAC;AACnE,cAAc,oDAAoD,CAAC;AACnE,cAAc,oEAAoE,CAAC;AACnF,cAAc,kEAAkE,CAAC;AACjF,cAAc,sDAAsD,CAAC;AACrE,cAAc,wCAAwC,CAAC;AACvD,cAAc,sEAAsE,CAAC;AACrF,cAAc,oEAAoE,CAAC;AACnF,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,sCAAsC,CAAC;AACrD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC","sourcesContent":["export * from './components';\nexport * from './directives';\nexport * from './directives/numberInput/maxValueNumberValidator.directive';\nexport * from './directives/numberInput/minValueNumberValidator.directive';\nexport * from './directives/numberInput/numberInputValidator.directive';\nexport * from './directives/numberInput/numberInputControlValueAccessor.directive';\nexport * from './directives/hasError/hasError.directive';\nexport * from './directives/groupHasError/groupHasError.directive';\nexport * from './directives/requiredClass/requiredClass.directive';\nexport * from './services/errorMessagesExtractor/errorMessagesExtractor.interface';\nexport * from './services/errorMessagesExtractor/errorMessagesExtractor.service';\nexport * from './services/formModelBuilder/formModelBuilder.service';\nexport * from './services/submitted/submitted.service';\nexport * from './services/validationErrorRenderer/validationErrorRenderer.interface';\nexport * from './services/validationErrorRenderer/validationErrorRenderer.service';\nexport * from './misc/tokens';\nexport * from './misc/types';\nexport * from './misc/utils';\nexport * from './misc/validators';\nexport * from './misc/validationErrorsContainerView';\nexport * from './modules/numberInput.module';\nexport * from './modules/hasError.module';\nexport * from './modules/requiredClass.module';\nexport * from './modules/formPipes';\nexport * from './modules/errorMessage';\nexport * from './misc/formModel';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../forms/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,4DAA4D,CAAC;AAC3E,cAAc,4DAA4D,CAAC;AAC3E,cAAc,yDAAyD,CAAC;AACxE,cAAc,oEAAoE,CAAC;AACnF,cAAc,0CAA0C,CAAC;AACzD,cAAc,oDAAoD,CAAC;AACnE,cAAc,oDAAoD,CAAC;AACnE,cAAc,oEAAoE,CAAC;AACnF,cAAc,kEAAkE,CAAC;AACjF,cAAc,sDAAsD,CAAC;AACrE,cAAc,wCAAwC,CAAC;AACvD,cAAc,sEAAsE,CAAC;AACrF,cAAc,oEAAoE,CAAC;AACnF,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,sCAAsC,CAAC;AACrD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC","sourcesContent":["export * from './components';\nexport * from './directives';\nexport * from './directives/numberInput/maxValueNumberValidator.directive';\nexport * from './directives/numberInput/minValueNumberValidator.directive';\nexport * from './directives/numberInput/numberInputValidator.directive';\nexport * from './directives/numberInput/numberInputControlValueAccessor.directive';\nexport * from './directives/hasError/hasError.directive';\nexport * from './directives/groupHasError/groupHasError.directive';\nexport * from './directives/requiredClass/requiredClass.directive';\nexport * from './services/errorMessagesExtractor/errorMessagesExtractor.interface';\nexport * from './services/errorMessagesExtractor/errorMessagesExtractor.service';\nexport * from './services/formModelBuilder/formModelBuilder.service';\nexport * from './services/submitted/submitted.service';\nexport * from './services/validationErrorRenderer/validationErrorRenderer.interface';\nexport * from './services/validationErrorRenderer/validationErrorRenderer.service';\nexport * from './misc/tokens';\nexport * from './misc/types';\nexport * from './misc/utils';\nexport * from './misc/validators';\nexport * from './misc/validationErrorsContainerView';\nexport * from './modules/numberInput.module';\nexport * from './modules/hasError.module';\nexport * from './modules/formPipes';\nexport * from './modules/errorMessage';\nexport * from './misc/formModel';\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"formGroupAsyncValidator.decorator.js","sourceRoot":"","sources":["../../../../../../forms/src/misc/formModel/decorators/formGroupAsyncValidator.decorator.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,MAAM,EAAC,MAAM,gBAAgB,CAAC;AAKtC;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CAAC,SAAmD;IAEvF,wDAAwD;IACxD,OAAO,UAAsC,MAAiB;QAE1D,MAAM,QAAQ,GAA2B,MAAM,CAAC,SAAS,CAAC;QAE1D,IAAG,CAAC,QAAQ,CAAC,gBAAgB,EAC7B;YACI,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAyB,kBAAkB,CAAC,EAClF;gBACI,KAAK,EAAE,EAAE;gBACT,QAAQ,EAAE,KAAK;gBACf,UAAU,EAAE,KAAK;gBACjB,YAAY,EAAE,KAAK;aACtB,CAAC,CAAC;SACN;QAED,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAE1C,OAAO,MAAM,CAAC;IAClB,CAAC,CAAC;AACN,CAAC","sourcesContent":["import {AsyncValidatorFn} from '@angular/forms';\nimport {nameof} from '@jscrpt/common';\n\nimport {ModelDecoratorMetadata} from '../interfaces/modelDecoratorMetadata';\nimport {AsyncValidatorFnFactory} from '../misc/validatorFactories';\n\n/**\n * Registers async validator for whole FormGroup\n * @param validator - Instance of async validator or async validator factory\n */\nexport function FormGroupAsyncValidator(validator: AsyncValidatorFn|AsyncValidatorFnFactory): ClassDecorator\n{\n // eslint-disable-next-line @typescript-eslint/ban-types\n return function<TFunction extends Function> (target: TFunction): TFunction\n {\n const metadata: ModelDecoratorMetadata = target.prototype;\n \n if(!metadata.ɵAsyncValidators)\n {\n Object.defineProperty(metadata, nameof<ModelDecoratorMetadata>('ɵAsyncValidators'),\n {\n value: [],\n writable: false,\n enumerable: false,\n configurable: false\n });\n }\n\n metadata.ɵAsyncValidators.push(validator);\n\n return target;\n };\n}"]}
1
+ {"version":3,"file":"formGroupAsyncValidator.decorator.js","sourceRoot":"","sources":["../../../../../../forms/src/misc/formModel/decorators/formGroupAsyncValidator.decorator.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,MAAM,EAAC,MAAM,gBAAgB,CAAC;AAKtC;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CAAC,SAAmD;IAEvF,wDAAwD;IACxD,OAAO,UAAsC,MAAiB;QAE1D,MAAM,QAAQ,GAA2B,MAAM,CAAC,SAAS,CAAC;QAE1D,IAAG,CAAC,QAAQ,CAAC,gBAAgB,EAC7B,CAAC;YACG,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAyB,kBAAkB,CAAC,EAClF;gBACI,KAAK,EAAE,EAAE;gBACT,QAAQ,EAAE,KAAK;gBACf,UAAU,EAAE,KAAK;gBACjB,YAAY,EAAE,KAAK;aACtB,CAAC,CAAC;QACP,CAAC;QAED,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAE1C,OAAO,MAAM,CAAC;IAClB,CAAC,CAAC;AACN,CAAC","sourcesContent":["import {AsyncValidatorFn} from '@angular/forms';\nimport {nameof} from '@jscrpt/common';\n\nimport {ModelDecoratorMetadata} from '../interfaces/modelDecoratorMetadata';\nimport {AsyncValidatorFnFactory} from '../misc/validatorFactories';\n\n/**\n * Registers async validator for whole FormGroup\n * @param validator - Instance of async validator or async validator factory\n */\nexport function FormGroupAsyncValidator(validator: AsyncValidatorFn|AsyncValidatorFnFactory): ClassDecorator\n{\n // eslint-disable-next-line @typescript-eslint/ban-types\n return function<TFunction extends Function> (target: TFunction): TFunction\n {\n const metadata: ModelDecoratorMetadata = target.prototype;\n \n if(!metadata.ɵAsyncValidators)\n {\n Object.defineProperty(metadata, nameof<ModelDecoratorMetadata>('ɵAsyncValidators'),\n {\n value: [],\n writable: false,\n enumerable: false,\n configurable: false\n });\n }\n\n metadata.ɵAsyncValidators.push(validator);\n\n return target;\n };\n}"]}
@@ -1 +1 @@
1
- {"version":3,"file":"formGroupValidator.decorator.js","sourceRoot":"","sources":["../../../../../../forms/src/misc/formModel/decorators/formGroupValidator.decorator.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,MAAM,EAAC,MAAM,gBAAgB,CAAC;AAKtC;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,SAAyC;IAExE,wDAAwD;IACxD,OAAO,UAAsC,MAAiB;QAE1D,MAAM,QAAQ,GAA2B,MAAM,CAAC,SAAS,CAAC;QAE1D,IAAG,CAAC,QAAQ,CAAC,WAAW,EACxB;YACI,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAyB,aAAa,CAAC,EAC7E;gBACI,KAAK,EAAE,EAAE;gBACT,QAAQ,EAAE,KAAK;gBACf,UAAU,EAAE,KAAK;gBACjB,YAAY,EAAE,KAAK;aACtB,CAAC,CAAC;SACN;QAED,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAErC,OAAO,MAAM,CAAC;IAClB,CAAC,CAAC;AACN,CAAC","sourcesContent":["import {ValidatorFn} from '@angular/forms';\nimport {nameof} from '@jscrpt/common';\n\nimport {ModelDecoratorMetadata} from '../interfaces/modelDecoratorMetadata';\nimport {ValidatorFnFactory} from '../misc/validatorFactories';\n\n/**\n * Registers validator for whole FormGroup\n * @param validator - Instance of validator or validator factory\n */\nexport function FormGroupValidator(validator: ValidatorFn|ValidatorFnFactory): ClassDecorator\n{\n // eslint-disable-next-line @typescript-eslint/ban-types\n return function<TFunction extends Function> (target: TFunction): TFunction\n {\n const metadata: ModelDecoratorMetadata = target.prototype;\n \n if(!metadata.ɵValidators)\n {\n Object.defineProperty(metadata, nameof<ModelDecoratorMetadata>('ɵValidators'),\n {\n value: [],\n writable: false,\n enumerable: false,\n configurable: false\n });\n }\n\n metadata.ɵValidators.push(validator);\n\n return target;\n };\n}"]}
1
+ {"version":3,"file":"formGroupValidator.decorator.js","sourceRoot":"","sources":["../../../../../../forms/src/misc/formModel/decorators/formGroupValidator.decorator.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,MAAM,EAAC,MAAM,gBAAgB,CAAC;AAKtC;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,SAAyC;IAExE,wDAAwD;IACxD,OAAO,UAAsC,MAAiB;QAE1D,MAAM,QAAQ,GAA2B,MAAM,CAAC,SAAS,CAAC;QAE1D,IAAG,CAAC,QAAQ,CAAC,WAAW,EACxB,CAAC;YACG,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAyB,aAAa,CAAC,EAC7E;gBACI,KAAK,EAAE,EAAE;gBACT,QAAQ,EAAE,KAAK;gBACf,UAAU,EAAE,KAAK;gBACjB,YAAY,EAAE,KAAK;aACtB,CAAC,CAAC;QACP,CAAC;QAED,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAErC,OAAO,MAAM,CAAC;IAClB,CAAC,CAAC;AACN,CAAC","sourcesContent":["import {ValidatorFn} from '@angular/forms';\nimport {nameof} from '@jscrpt/common';\n\nimport {ModelDecoratorMetadata} from '../interfaces/modelDecoratorMetadata';\nimport {ValidatorFnFactory} from '../misc/validatorFactories';\n\n/**\n * Registers validator for whole FormGroup\n * @param validator - Instance of validator or validator factory\n */\nexport function FormGroupValidator(validator: ValidatorFn|ValidatorFnFactory): ClassDecorator\n{\n // eslint-disable-next-line @typescript-eslint/ban-types\n return function<TFunction extends Function> (target: TFunction): TFunction\n {\n const metadata: ModelDecoratorMetadata = target.prototype;\n \n if(!metadata.ɵValidators)\n {\n Object.defineProperty(metadata, nameof<ModelDecoratorMetadata>('ɵValidators'),\n {\n value: [],\n writable: false,\n enumerable: false,\n configurable: false\n });\n }\n\n metadata.ɵValidators.push(validator);\n\n return target;\n };\n}"]}
@@ -1 +1 @@
1
- {"version":3,"file":"invalidateOnChange.decorator.js","sourceRoot":"","sources":["../../../../../../forms/src/misc/formModel/decorators/invalidateOnChange.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAC,OAAO,EAAC,MAAM,gBAAgB,CAAC;AAEvC,OAAO,EAAC,SAAS,EAAC,MAAM,uBAAuB,CAAC;AAEhD;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,kBAAkB,CAAe,QAAuE,EACvE,IAAgG;IAE7I,MAAM,SAAS,GAAY,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC;IAChF,MAAM,QAAQ,GAAY,IAAI,EAAE,QAAQ,IAAI,KAAK,CAAC;IAElD,OAAO,SAAS,CAAC,OAAO,CAAC,EAAE;QAEvB,IAAG,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAC3B;YACI,QAAQ,GAAG,CAAC,QAAQ,CAAC,CAAC;SACzB;QAED,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAE9B,IAAG,MAAM,YAAY,SAAS,EAC9B;YACI,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gBAEpB,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,sBAAsB,CAAC,EAAC,SAAS,EAAE,QAAQ,EAAC,CAAC,CAAC;gBAEhE,IAAG,IAAI,EAAE,WAAW,EACpB;oBACI,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC,EAAC,QAAQ,EAAC,CAAC,CAAC;iBAC7C;gBAED,IAAG,IAAI,EAAE,aAAa,EACtB;oBACI,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,aAAa,CAAC,EAAC,QAAQ,EAAC,CAAC,CAAC;iBAC/C;YACL,CAAC,CAAC,CAAC;SACN;QAED,OAAO,IAAI,CAAC;IAChB,CAAC,CAAC,CAAC;AACP,CAAC","sourcesContent":["import {FormGroup} from '@angular/forms';\nimport {isBlank} from '@jscrpt/common';\n\nimport {Validator} from './validator.decorator';\n\n/**\n * Invalidates `FormControl` when current `FormControl` values changes\n * @param property - Name of `TModel` control or array of these properties to be invalidated on change\n * @param opts - Configuration options determine how the control propagates changes and emits events on sibling controls\n * after updates and validity checks are applied.\n * * `onlySelf`: When true, only update this control. When false or not supplied,\n * update all direct ancestors. Default is false.\n * * `emitEvent`: When true or not supplied (the default), both the `statusChanges` and\n * `valueChanges`\n * observables emit events with the latest status and value when the control is updated.\n * When false, no events are emitted.\n * * `markAsTouched` calls also `markAsTouched` on sibling control\n * * `markAsDirty` calls also `markAsDirty` on sibling control\n */\nexport function InvalidateOnChange<TModel = any>(property: Extract<keyof TModel, string>|Extract<keyof TModel, string>[],\n opts?: {onlySelf?: boolean, emitEvent?: boolean, markAsTouched?: boolean, markAsDirty?: boolean}): PropertyDecorator\n{\n const emitEvent: boolean = isBlank(opts?.emitEvent) || opts?.emitEvent === true;\n const onlySelf: boolean = opts?.onlySelf ?? false;\n\n return Validator(control =>\n {\n if(!Array.isArray(property))\n {\n property = [property];\n }\n \n const parent = control.parent;\n\n if(parent instanceof FormGroup)\n {\n property.forEach(prop =>\n {\n parent.get(prop)?.updateValueAndValidity({emitEvent, onlySelf});\n\n if(opts?.markAsDirty)\n {\n parent.get(prop)?.markAsDirty({onlySelf});\n }\n\n if(opts?.markAsTouched)\n {\n parent.get(prop)?.markAsTouched({onlySelf});\n }\n });\n }\n\n return null;\n });\n}"]}
1
+ {"version":3,"file":"invalidateOnChange.decorator.js","sourceRoot":"","sources":["../../../../../../forms/src/misc/formModel/decorators/invalidateOnChange.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAC,OAAO,EAAC,MAAM,gBAAgB,CAAC;AAEvC,OAAO,EAAC,SAAS,EAAC,MAAM,uBAAuB,CAAC;AAEhD;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,kBAAkB,CAAe,QAAuE,EACvE,IAAgG;IAE7I,MAAM,SAAS,GAAY,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC;IAChF,MAAM,QAAQ,GAAY,IAAI,EAAE,QAAQ,IAAI,KAAK,CAAC;IAElD,OAAO,SAAS,CAAC,OAAO,CAAC,EAAE;QAEvB,IAAG,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAC3B,CAAC;YACG,QAAQ,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC1B,CAAC;QAED,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAE9B,IAAG,MAAM,YAAY,SAAS,EAC9B,CAAC;YACG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gBAEpB,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,sBAAsB,CAAC,EAAC,SAAS,EAAE,QAAQ,EAAC,CAAC,CAAC;gBAEhE,IAAG,IAAI,EAAE,WAAW,EACpB,CAAC;oBACG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC,EAAC,QAAQ,EAAC,CAAC,CAAC;gBAC9C,CAAC;gBAED,IAAG,IAAI,EAAE,aAAa,EACtB,CAAC;oBACG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,aAAa,CAAC,EAAC,QAAQ,EAAC,CAAC,CAAC;gBAChD,CAAC;YACL,CAAC,CAAC,CAAC;QACP,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC,CAAC,CAAC;AACP,CAAC","sourcesContent":["import {FormGroup} from '@angular/forms';\nimport {isBlank} from '@jscrpt/common';\n\nimport {Validator} from './validator.decorator';\n\n/**\n * Invalidates `FormControl` when current `FormControl` values changes\n * @param property - Name of `TModel` control or array of these properties to be invalidated on change\n * @param opts - Configuration options determine how the control propagates changes and emits events on sibling controls\n * after updates and validity checks are applied.\n * * `onlySelf`: When true, only update this control. When false or not supplied,\n * update all direct ancestors. Default is false.\n * * `emitEvent`: When true or not supplied (the default), both the `statusChanges` and\n * `valueChanges`\n * observables emit events with the latest status and value when the control is updated.\n * When false, no events are emitted.\n * * `markAsTouched` calls also `markAsTouched` on sibling control\n * * `markAsDirty` calls also `markAsDirty` on sibling control\n */\nexport function InvalidateOnChange<TModel = any>(property: Extract<keyof TModel, string>|Extract<keyof TModel, string>[],\n opts?: {onlySelf?: boolean, emitEvent?: boolean, markAsTouched?: boolean, markAsDirty?: boolean}): PropertyDecorator\n{\n const emitEvent: boolean = isBlank(opts?.emitEvent) || opts?.emitEvent === true;\n const onlySelf: boolean = opts?.onlySelf ?? false;\n\n return Validator(control =>\n {\n if(!Array.isArray(property))\n {\n property = [property];\n }\n \n const parent = control.parent;\n\n if(parent instanceof FormGroup)\n {\n property.forEach(prop =>\n {\n parent.get(prop)?.updateValueAndValidity({emitEvent, onlySelf});\n\n if(opts?.markAsDirty)\n {\n parent.get(prop)?.markAsDirty({onlySelf});\n }\n\n if(opts?.markAsTouched)\n {\n parent.get(prop)?.markAsTouched({onlySelf});\n }\n });\n }\n\n return null;\n });\n}"]}
@@ -1 +1 @@
1
- {"version":3,"file":"modelPropertyMetadata.decorator.js","sourceRoot":"","sources":["../../../../../../forms/src/misc/formModel/decorators/modelPropertyMetadata.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,MAAM,EAAC,MAAM,gBAAgB,CAAC;AAIlD,OAAO,EAAC,wBAAwB,EAAC,MAAM,kBAAkB,CAAC;AAE1D;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CACe,QAA+C;IAE/F,OAAO,UAAS,MAAc,EAAE,WAA0B;QAEtD,MAAM,IAAI,GAAG,MAAwC,CAAC;QAEtD,IAAG,CAAC,IAAI,CAAC,iBAAiB,EAC1B;YACI,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,CAAyB,mBAAmB,CAAC,EAC/E;gBACI,KAAK,EAAE,EAAE;gBACT,QAAQ,EAAE,KAAK;gBACf,UAAU,EAAE,KAAK;gBACjB,YAAY,EAAE,KAAK;aACtB,CAAC,CAAC;SACN;QAED,yBAAyB;QACzB,MAAM,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,CAAC,WAA2B,CAAC,EAAE,UAAU,IAAI,EAAE,CAAC;QAC/F,MAAM,qBAAqB,GAAG,IAAI,CAAC,iBAAiB,CAAC,WAA2B,CAAC,EAAE,eAAe,IAAI,EAAE,CAAC;QAEzG,wBAAwB;QACxB,IAAI,CAAC,iBAAiB,CAAC,WAA2B,CAAC;YACnD;gBACI,GAAG,wBAAwB;gBAC3B,GAAG,IAAI,CAAC,iBAAiB,CAAC,WAA2B,CAAC;gBACtD,GAAG,QAAQ;aACd,CAAC;QAEF,kBAAkB;QAClB,MAAM,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,CAAC,WAA2B,CAAC,CAAC;QAE7E,gBAAgB,CAAC,UAAU;YAC3B;gBACI,GAAG,gBAAgB;gBACnB,GAAG,gBAAgB,CAAC,UAAU;aACjC,CAAC;QAEF,gBAAgB,CAAC,eAAe;YAChC;gBACI,GAAG,qBAAqB;gBACxB,GAAG,gBAAgB,CAAC,eAAe;aACtC,CAAC;IACN,CAAC,CAAC;AACN,CAAC","sourcesContent":["import {Dictionary, nameof} from '@jscrpt/common';\n\nimport {ModelDecoratorMetadata} from '../interfaces/modelDecoratorMetadata';\nimport {ModelPropertyDecoratorMetadata} from '../interfaces/modelPropertyDecoratorMetadata';\nimport {ɵDefaultPropertyMetadata} from '../misc/defaults';\n\n/**\n * Defines metadata for model property\n * @param metadata - Metadata for model property, used for creating form\n */\nexport function ModelPropertyMetadata<TArgs extends Dictionary<any> = any,\n TModel = any>(metadata: ModelPropertyDecoratorMetadata<TArgs>): PropertyDecorator\n{\n return function(target: Object, propertyKey: string|symbol): void\n {\n const trgt = target as ModelDecoratorMetadata<TModel>;\n\n if(!trgt.ɵControlsMetadata)\n {\n Object.defineProperty(trgt, nameof<ModelDecoratorMetadata>('ɵControlsMetadata'),\n {\n value: {},\n writable: false,\n enumerable: false,\n configurable: false\n });\n }\n\n //keep current validators\n const originValidators = trgt.ɵControlsMetadata[propertyKey as keyof TModel]?.validators ?? [];\n const originAsyncValidators = trgt.ɵControlsMetadata[propertyKey as keyof TModel]?.asyncValidators ?? [];\n\n //merge all other values\n trgt.ɵControlsMetadata[propertyKey as keyof TModel] = \n {\n ...ɵDefaultPropertyMetadata,\n ...trgt.ɵControlsMetadata[propertyKey as keyof TModel],\n ...metadata\n };\n\n //merge validators\n const propertyMetadata = trgt.ɵControlsMetadata[propertyKey as keyof TModel];\n\n propertyMetadata.validators =\n [\n ...originValidators,\n ...propertyMetadata.validators,\n ];\n\n propertyMetadata.asyncValidators =\n [\n ...originAsyncValidators,\n ...propertyMetadata.asyncValidators,\n ];\n };\n}"]}
1
+ {"version":3,"file":"modelPropertyMetadata.decorator.js","sourceRoot":"","sources":["../../../../../../forms/src/misc/formModel/decorators/modelPropertyMetadata.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,MAAM,EAAC,MAAM,gBAAgB,CAAC;AAIlD,OAAO,EAAC,wBAAwB,EAAC,MAAM,kBAAkB,CAAC;AAE1D;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CACe,QAA+C;IAE/F,OAAO,UAAS,MAAc,EAAE,WAA0B;QAEtD,MAAM,IAAI,GAAG,MAAwC,CAAC;QAEtD,IAAG,CAAC,IAAI,CAAC,iBAAiB,EAC1B,CAAC;YACG,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,CAAyB,mBAAmB,CAAC,EAC/E;gBACI,KAAK,EAAE,EAAE;gBACT,QAAQ,EAAE,KAAK;gBACf,UAAU,EAAE,KAAK;gBACjB,YAAY,EAAE,KAAK;aACtB,CAAC,CAAC;QACP,CAAC;QAED,yBAAyB;QACzB,MAAM,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,CAAC,WAA2B,CAAC,EAAE,UAAU,IAAI,EAAE,CAAC;QAC/F,MAAM,qBAAqB,GAAG,IAAI,CAAC,iBAAiB,CAAC,WAA2B,CAAC,EAAE,eAAe,IAAI,EAAE,CAAC;QAEzG,wBAAwB;QACxB,IAAI,CAAC,iBAAiB,CAAC,WAA2B,CAAC;YACnD;gBACI,GAAG,wBAAwB;gBAC3B,GAAG,IAAI,CAAC,iBAAiB,CAAC,WAA2B,CAAC;gBACtD,GAAG,QAAQ;aACd,CAAC;QAEF,kBAAkB;QAClB,MAAM,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,CAAC,WAA2B,CAAC,CAAC;QAE7E,gBAAgB,CAAC,UAAU;YAC3B;gBACI,GAAG,gBAAgB;gBACnB,GAAG,gBAAgB,CAAC,UAAU;aACjC,CAAC;QAEF,gBAAgB,CAAC,eAAe;YAChC;gBACI,GAAG,qBAAqB;gBACxB,GAAG,gBAAgB,CAAC,eAAe;aACtC,CAAC;IACN,CAAC,CAAC;AACN,CAAC","sourcesContent":["import {Dictionary, nameof} from '@jscrpt/common';\n\nimport {ModelDecoratorMetadata} from '../interfaces/modelDecoratorMetadata';\nimport {ModelPropertyDecoratorMetadata} from '../interfaces/modelPropertyDecoratorMetadata';\nimport {ɵDefaultPropertyMetadata} from '../misc/defaults';\n\n/**\n * Defines metadata for model property\n * @param metadata - Metadata for model property, used for creating form\n */\nexport function ModelPropertyMetadata<TArgs extends Dictionary<any> = any,\n TModel = any>(metadata: ModelPropertyDecoratorMetadata<TArgs>): PropertyDecorator\n{\n return function(target: Object, propertyKey: string|symbol): void\n {\n const trgt = target as ModelDecoratorMetadata<TModel>;\n\n if(!trgt.ɵControlsMetadata)\n {\n Object.defineProperty(trgt, nameof<ModelDecoratorMetadata>('ɵControlsMetadata'),\n {\n value: {},\n writable: false,\n enumerable: false,\n configurable: false\n });\n }\n\n //keep current validators\n const originValidators = trgt.ɵControlsMetadata[propertyKey as keyof TModel]?.validators ?? [];\n const originAsyncValidators = trgt.ɵControlsMetadata[propertyKey as keyof TModel]?.asyncValidators ?? [];\n\n //merge all other values\n trgt.ɵControlsMetadata[propertyKey as keyof TModel] = \n {\n ...ɵDefaultPropertyMetadata,\n ...trgt.ɵControlsMetadata[propertyKey as keyof TModel],\n ...metadata\n };\n\n //merge validators\n const propertyMetadata = trgt.ɵControlsMetadata[propertyKey as keyof TModel];\n\n propertyMetadata.validators =\n [\n ...originValidators,\n ...propertyMetadata.validators,\n ];\n\n propertyMetadata.asyncValidators =\n [\n ...originAsyncValidators,\n ...propertyMetadata.asyncValidators,\n ];\n };\n}"]}
@@ -1 +1 @@
1
- {"version":3,"file":"requiredIf.decorator.js","sourceRoot":"","sources":["../../../../../../forms/src/misc/formModel/decorators/requiredIf.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,gBAAgB,CAAC;AAE1C,OAAO,EAAC,eAAe,EAAC,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAC,kBAAkB,EAAC,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAC,qBAAqB,EAAC,MAAM,mCAAmC,CAAC;AAExE,2CAA2C;AAE3C;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAc,iBAA8B;IAElE,OAAO,qBAAqB,CAC5B;QACI,UAAU,EACV;YACI,IAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE;gBAE1B,OAAO,OAAO,CAAC,EAAE;oBAEb,IAAG,eAAe,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,EAC3C;wBACI,OAAO,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;qBACvC;oBAED,OAAO,IAAI,CAAC;gBAChB,CAAC,CAAC;YACN,CAAC,CAAC;SACL;KACJ,CAAC,CAAC;AACP,CAAC","sourcesContent":["import {Validators} from '@angular/forms';\n\nimport {getCurrentValue} from '../misc/currentValue';\nimport {ValidatorFnFactory} from '../misc/validatorFactories';\nimport {ModelPropertyMetadata} from './modelPropertyMetadata.decorator';\n\n//TODO try to use infer for property TModel\n\n/**\n * Sets property as required if condition is met (sets validator)\n * @param conditionProperty - Name of property that holds\n */\nexport function RequiredIf<TArgs = any>(conditionProperty: keyof TArgs): PropertyDecorator\n{\n return ModelPropertyMetadata<any, TArgs>(\n {\n validators:\n [\n new ValidatorFnFactory(args =>\n {\n return control =>\n {\n if(getCurrentValue(args[conditionProperty]))\n {\n return Validators.required(control);\n }\n \n return null;\n };\n })\n ]\n });\n}"]}
1
+ {"version":3,"file":"requiredIf.decorator.js","sourceRoot":"","sources":["../../../../../../forms/src/misc/formModel/decorators/requiredIf.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,gBAAgB,CAAC;AAE1C,OAAO,EAAC,eAAe,EAAC,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAC,kBAAkB,EAAC,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAC,qBAAqB,EAAC,MAAM,mCAAmC,CAAC;AAExE,2CAA2C;AAE3C;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAc,iBAA8B;IAElE,OAAO,qBAAqB,CAC5B;QACI,UAAU,EACV;YACI,IAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE;gBAE1B,OAAO,OAAO,CAAC,EAAE;oBAEb,IAAG,eAAe,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,EAC3C,CAAC;wBACG,OAAO,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;oBACxC,CAAC;oBAED,OAAO,IAAI,CAAC;gBAChB,CAAC,CAAC;YACN,CAAC,CAAC;SACL;KACJ,CAAC,CAAC;AACP,CAAC","sourcesContent":["import {Validators} from '@angular/forms';\n\nimport {getCurrentValue} from '../misc/currentValue';\nimport {ValidatorFnFactory} from '../misc/validatorFactories';\nimport {ModelPropertyMetadata} from './modelPropertyMetadata.decorator';\n\n//TODO try to use infer for property TModel\n\n/**\n * Sets property as required if condition is met (sets validator)\n * @param conditionProperty - Name of property that holds\n */\nexport function RequiredIf<TArgs = any>(conditionProperty: keyof TArgs): PropertyDecorator\n{\n return ModelPropertyMetadata<any, TArgs>(\n {\n validators:\n [\n new ValidatorFnFactory(args =>\n {\n return control =>\n {\n if(getCurrentValue(args[conditionProperty]))\n {\n return Validators.required(control);\n }\n \n return null;\n };\n })\n ]\n });\n}"]}
@@ -17,7 +17,6 @@ export function getCurrentValue(value) {
17
17
  * Class used for obtaining current value from owner when needed
18
18
  */
19
19
  export class CurrentValue {
20
- currentValue;
21
20
  //######################### constructor #########################
22
21
  /**
23
22
  * Creates instance of CurrentValue
@@ -1 +1 @@
1
- {"version":3,"file":"currentValue.js","sourceRoot":"","sources":["../../../../../../forms/src/misc/formModel/misc/currentValue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,gBAAgB,CAAC;AAEvC;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAS,KAAkC;IAEtE,IAAG,OAAO,CAAC,KAAK,CAAC,EACjB;QACI,OAAO,IAAI,CAAC;KACf;IAED,IAAG,KAAK,YAAY,YAAY,EAChC;QACI,OAAO,KAAK,CAAC,YAAY,EAAE,CAAC;KAC/B;IAED,OAAO,KAAK,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,MAAM,OAAO,YAAY;IAOF;IALnB,iEAAiE;IACjE;;;OAGG;IACH,YAAmB,YAA0B;QAA1B,iBAAY,GAAZ,YAAY,CAAc;IAE7C,CAAC;CACJ","sourcesContent":["import {isBlank} from '@jscrpt/common';\n\n/**\n * Gets current value from owner object when needed, use this method for obtaining args during customization\n * @param value - Value that is direct static value or instanceof CurrentValue\n * @returns \n */\nexport function getCurrentValue<TValue>(value: CurrentValue<TValue>|TValue): TValue\n{\n if(isBlank(value))\n {\n return null;\n }\n\n if(value instanceof CurrentValue)\n {\n return value.currentValue();\n }\n\n return value;\n}\n\n/**\n * Class used for obtaining current value from owner when needed\n */\nexport class CurrentValue<TValue = any>\n{\n //######################### constructor #########################\n /**\n * Creates instance of CurrentValue\n * @param currentValue - Value function used for obtaining current value\n */\n constructor(public currentValue: () => TValue)\n {\n }\n}"]}
1
+ {"version":3,"file":"currentValue.js","sourceRoot":"","sources":["../../../../../../forms/src/misc/formModel/misc/currentValue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,gBAAgB,CAAC;AAEvC;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAS,KAAkC;IAEtE,IAAG,OAAO,CAAC,KAAK,CAAC,EACjB,CAAC;QACG,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,IAAG,KAAK,YAAY,YAAY,EAChC,CAAC;QACG,OAAO,KAAK,CAAC,YAAY,EAAE,CAAC;IAChC,CAAC;IAED,OAAO,KAAK,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,MAAM,OAAO,YAAY;IAErB,iEAAiE;IACjE;;;OAGG;IACH,YAAmB,YAA0B;QAA1B,iBAAY,GAAZ,YAAY,CAAc;IAE7C,CAAC;CACJ","sourcesContent":["import {isBlank} from '@jscrpt/common';\n\n/**\n * Gets current value from owner object when needed, use this method for obtaining args during customization\n * @param value - Value that is direct static value or instanceof CurrentValue\n * @returns \n */\nexport function getCurrentValue<TValue>(value: CurrentValue<TValue>|TValue): TValue\n{\n if(isBlank(value))\n {\n return null;\n }\n\n if(value instanceof CurrentValue)\n {\n return value.currentValue();\n }\n\n return value;\n}\n\n/**\n * Class used for obtaining current value from owner when needed\n */\nexport class CurrentValue<TValue = any>\n{\n //######################### constructor #########################\n /**\n * Creates instance of CurrentValue\n * @param currentValue - Value function used for obtaining current value\n */\n constructor(public currentValue: () => TValue)\n {\n }\n}"]}
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../../forms/src/misc/formModel/misc/utils.ts"],"names":[],"mappings":"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","sourcesContent":["import {AbstractControl, FormArray, FormControl, FormGroup} from '@angular/forms';\nimport {Dictionary} from '@jscrpt/common';\n\nimport {FormModelGroup} from '../../types';\nimport {FormModelBuilderDefaultArgs} from '../interfaces/formModelBuilder.interface';\nimport {ModelDecoratorMetadata} from '../interfaces/modelDecoratorMetadata';\nimport {ModelPropertyDecoratorMetadata} from '../interfaces/modelPropertyDecoratorMetadata';\nimport {ɵDefaultPropertyMetadata} from './defaults';\nimport {AsyncValidatorFnFactory, ValidatorFnFactory} from './validatorFactories';\n\n/**\n * Builds form group from decorated model\n * @param model - Model that can be decorated for enhancing created form group with validation and so on\n * @param args - Object storing arguments from owning component for customization\n * @returns\n */\nfunction buildFormGroup<TModel, TArgs extends Dictionary<any> = any>(model: ModelDecoratorMetadata<TModel> & Dictionary<any>, args?: TArgs&FormModelBuilderDefaultArgs): FormGroup<FormModelGroup<TModel>>\n{\n if(!model)\n {\n return new FormGroup<FormModelGroup<TModel>>({} as any);\n }\n\n const modelMetadata: Dictionary<any> = model.ɵControlsMetadata ?? {};\n const groupValidators = model.ɵValidators ?? [];\n const groupAsyncValidators = model.ɵAsyncValidators ?? [];\n const groupArgs: Dictionary<any> = model.ɵArgs ?? {};\n const properties = Object.keys(model);\n const formGroup: FormGroup = new FormGroup({},\n {\n validators: groupValidators?.map(validator => validator instanceof ValidatorFnFactory ? validator.valueOf()({...groupArgs, ...args}) : validator).filter(itm => !!itm),\n asyncValidators: groupAsyncValidators?.map(validator => validator instanceof AsyncValidatorFnFactory ? validator.valueOf()({...groupArgs, ...args}) : validator).filter(itm => !!itm)\n });\n\n for(const propertyName of properties)\n {\n const metadata: ModelPropertyDecoratorMetadata = modelMetadata[propertyName] ?? ɵDefaultPropertyMetadata;\n const defaultValue = model[propertyName];\n\n //Skip control creation if value is undefined\n if(defaultValue === undefined)\n {\n continue;\n }\n\n const validators = metadata.validators.map(validator => validator instanceof ValidatorFnFactory ? validator.valueOf()({...metadata.args, ...args}) : validator).filter(itm => !!itm);\n const asyncValidators = metadata.asyncValidators.map(validator => validator instanceof AsyncValidatorFnFactory ? validator.valueOf()({...metadata.args, ...args}) : validator).filter(itm => !!itm);\n\n let control: AbstractControl;\n\n switch(metadata.type)\n {\n case FormGroup:\n {\n control = buildFormGroup(defaultValue, args);\n\n //TODO: think of setting metadata from property to model\n\n break;\n }\n case FormArray:\n {\n //TODO - enhance FormArray child definition and finish it\n control = new FormArray([],\n {\n validators: validators,\n asyncValidators: asyncValidators,\n ...metadata.controlOptions\n });\n\n if(defaultValue && Array.isArray(defaultValue))\n {\n const formArray = control as FormArray;\n\n for(const val of defaultValue)\n {\n switch(metadata.childType)\n {\n case FormGroup:\n {\n formArray.push(buildFormGroup(val, args));\n\n break;\n }\n case FormArray:\n {\n break;\n }\n default:\n //case FormControl:\n {\n formArray.push(new FormControl(val,\n {\n validators: validators,\n asyncValidators: asyncValidators,\n ...metadata.controlOptions\n }));\n\n break;\n }\n }\n }\n }\n\n break;\n }\n default:\n //case FormControl:\n {\n control = new FormControl(defaultValue,\n {\n validators: validators,\n asyncValidators: asyncValidators,\n ...metadata.controlOptions\n });\n\n break;\n }\n }\n\n if(metadata.disabled)\n {\n control.disable();\n }\n\n formGroup.addControl(propertyName, control);\n }\n\n return formGroup;\n}\n\n/**\n * Builds form from decorated model, only for properties with non `undefined` value\n * @param model - Model that can be decorated for enhancing created form group with validation and so on\n * @param args - Object storing arguments from owning component for customization\n * @returns\n */\nexport function buildFormModel<TModel, TArgs extends Dictionary<any> = any>(model: TModel, args?: TArgs&FormModelBuilderDefaultArgs): FormGroup<FormModelGroup<TModel>>\n{\n return buildFormGroup(model as any, args);\n}\n"]}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../../forms/src/misc/formModel/misc/utils.ts"],"names":[],"mappings":"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","sourcesContent":["import {AbstractControl, FormArray, FormControl, FormGroup} from '@angular/forms';\nimport {Dictionary} from '@jscrpt/common';\n\nimport {FormModelGroup} from '../../types';\nimport {FormModelBuilderDefaultArgs} from '../interfaces/formModelBuilder.interface';\nimport {ModelDecoratorMetadata} from '../interfaces/modelDecoratorMetadata';\nimport {ModelPropertyDecoratorMetadata} from '../interfaces/modelPropertyDecoratorMetadata';\nimport {ɵDefaultPropertyMetadata} from './defaults';\nimport {AsyncValidatorFnFactory, ValidatorFnFactory} from './validatorFactories';\n\n/**\n * Builds form group from decorated model\n * @param model - Model that can be decorated for enhancing created form group with validation and so on\n * @param args - Object storing arguments from owning component for customization\n * @returns\n */\nfunction buildFormGroup<TModel, TArgs extends Dictionary<any> = any>(model: ModelDecoratorMetadata<TModel> & Dictionary<any>, args?: TArgs&FormModelBuilderDefaultArgs): FormGroup<FormModelGroup<TModel>>\n{\n if(!model)\n {\n return new FormGroup<FormModelGroup<TModel>>({} as any);\n }\n\n const modelMetadata: Dictionary<any> = model.ɵControlsMetadata ?? {};\n const groupValidators = model.ɵValidators ?? [];\n const groupAsyncValidators = model.ɵAsyncValidators ?? [];\n const groupArgs: Dictionary<any> = model.ɵArgs ?? {};\n const properties = Object.keys(model);\n const formGroup: FormGroup = new FormGroup({},\n {\n validators: groupValidators?.map(validator => validator instanceof ValidatorFnFactory ? validator.valueOf()({...groupArgs, ...args}) : validator).filter(itm => !!itm),\n asyncValidators: groupAsyncValidators?.map(validator => validator instanceof AsyncValidatorFnFactory ? validator.valueOf()({...groupArgs, ...args}) : validator).filter(itm => !!itm)\n });\n\n for(const propertyName of properties)\n {\n const metadata: ModelPropertyDecoratorMetadata = modelMetadata[propertyName] ?? ɵDefaultPropertyMetadata;\n const defaultValue = model[propertyName];\n\n //Skip control creation if value is undefined\n if(defaultValue === undefined)\n {\n continue;\n }\n\n const validators = metadata.validators.map(validator => validator instanceof ValidatorFnFactory ? validator.valueOf()({...metadata.args, ...args}) : validator).filter(itm => !!itm);\n const asyncValidators = metadata.asyncValidators.map(validator => validator instanceof AsyncValidatorFnFactory ? validator.valueOf()({...metadata.args, ...args}) : validator).filter(itm => !!itm);\n\n let control: AbstractControl;\n\n switch(metadata.type)\n {\n case FormGroup:\n {\n control = buildFormGroup(defaultValue, args);\n\n //TODO: think of setting metadata from property to model\n\n break;\n }\n case FormArray:\n {\n //TODO - enhance FormArray child definition and finish it\n control = new FormArray([],\n {\n validators: validators,\n asyncValidators: asyncValidators,\n ...metadata.controlOptions\n });\n\n if(defaultValue && Array.isArray(defaultValue))\n {\n const formArray = control as FormArray;\n\n for(const val of defaultValue)\n {\n switch(metadata.childType)\n {\n case FormGroup:\n {\n formArray.push(buildFormGroup(val, args));\n\n break;\n }\n case FormArray:\n {\n break;\n }\n default:\n //case FormControl:\n {\n formArray.push(new FormControl(val,\n {\n validators: validators,\n asyncValidators: asyncValidators,\n ...metadata.controlOptions\n }));\n\n break;\n }\n }\n }\n }\n\n break;\n }\n default:\n //case FormControl:\n {\n control = new FormControl(defaultValue,\n {\n validators: validators,\n asyncValidators: asyncValidators,\n ...metadata.controlOptions\n });\n\n break;\n }\n }\n\n if(metadata.disabled)\n {\n control.disable();\n }\n\n formGroup.addControl(propertyName, control);\n }\n\n return formGroup;\n}\n\n/**\n * Builds form from decorated model, only for properties with non `undefined` value\n * @param model - Model that can be decorated for enhancing created form group with validation and so on\n * @param args - Object storing arguments from owning component for customization\n * @returns\n */\nexport function buildFormModel<TModel, TArgs extends Dictionary<any> = any>(model: TModel, args?: TArgs&FormModelBuilderDefaultArgs): FormGroup<FormModelGroup<TModel>>\n{\n return buildFormGroup(model as any, args);\n}\n"]}
@@ -2,8 +2,6 @@
2
2
  * Class that represents ValidatorFn factory
3
3
  */
4
4
  export class ValidatorFnFactory {
5
- _factoryFn;
6
- _args;
7
5
  //######################### constructor #########################
8
6
  /**
9
7
  * Creates instance of ValidatorFnFactory
@@ -36,8 +34,6 @@ export class ValidatorFnFactory {
36
34
  * Class that represents AsyncValidatorFn factory
37
35
  */
38
36
  export class AsyncValidatorFnFactory {
39
- _factoryFn;
40
- _args;
41
37
  //######################### constructor #########################
42
38
  /**
43
39
  * Creates instance of AsyncValidatorFnFactory
@@ -1 +1 @@
1
- {"version":3,"file":"validatorFactories.js","sourceRoot":"","sources":["../../../../../../forms/src/misc/formModel/misc/validatorFactories.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,MAAM,OAAO,kBAAkB;IAQP;IACA;IAPpB,iEAAiE;IACjE;;;;OAIG;IACH,YAAoB,UAAuC,EACvC,KAAY;QADZ,eAAU,GAAV,UAAU,CAA6B;QACvC,UAAK,GAAL,KAAK,CAAO;IAEhC,CAAC;IAED,oEAAoE;IAEpE;;OAEG;IACI,OAAO;QAEV,IAAG,IAAI,CAAC,KAAK,EACb;YACI,OAAO,CAAC,IAAU,EAAe,EAAE;gBAE/B,IAAI;oBACJ;wBACI,GAAG,IAAI,CAAC,KAAK;wBACb,IAAI;qBACP,CAAC;gBAEF,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACjC,CAAC,CAAC;SACL;QAED,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;CACJ;AAED;;GAEG;AACH,MAAM,OAAO,uBAAuB;IAQZ;IACA;IAPpB,iEAAiE;IACjE;;;;OAIG;IACH,YAAoB,UAA4C,EAC5C,KAAY;QADZ,eAAU,GAAV,UAAU,CAAkC;QAC5C,UAAK,GAAL,KAAK,CAAO;IAEhC,CAAC;IAED,oEAAoE;IAEpE;;OAEG;IACI,OAAO;QAEV,IAAG,IAAI,CAAC,KAAK,EACb;YACI,OAAO,CAAC,IAAU,EAAoB,EAAE;gBAEpC,IAAI;oBACJ;wBACI,GAAG,IAAI,CAAC,KAAK;wBACb,IAAI;qBACP,CAAC;gBAEF,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACjC,CAAC,CAAC;SACL;QAED,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;CACJ","sourcesContent":["import {AsyncValidatorFn, ValidatorFn} from '@angular/forms';\nimport {Dictionary} from '@jscrpt/common';\n\nimport {AsyncValidatorFnFactoryFn, ValidatorFnFactoryFn} from '../interfaces/validator.interface';\n\n/**\n * Class that represents ValidatorFn factory\n */\nexport class ValidatorFnFactory<TArg extends Dictionary<any> = any>\n{\n //######################### constructor #########################\n /**\n * Creates instance of ValidatorFnFactory\n * @param _factoryFn - Function used for creating ValidatorFn\n * @param _args - Static arguments/parameters that can be passed to validator\n */\n constructor(private _factoryFn?: ValidatorFnFactoryFn<TArg>,\n private _args?: TArg,)\n {\n }\n\n //######################### public methods #########################\n\n /**\n * Gets validator function factory function\n */\n public valueOf(): ValidatorFnFactoryFn<TArg>\n {\n if(this._args)\n {\n return (args: TArg): ValidatorFn =>\n {\n args = \n {\n ...this._args,\n args\n };\n\n return this._factoryFn(args);\n };\n }\n\n return this._factoryFn;\n }\n}\n\n/**\n * Class that represents AsyncValidatorFn factory\n */\nexport class AsyncValidatorFnFactory<TArg extends Dictionary<any> = any>\n{\n //######################### constructor #########################\n /**\n * Creates instance of AsyncValidatorFnFactory\n * @param _factoryFn - Function used for creating AsyncValidatorFn\n * @param _args - Static arguments/parameters that can be passed to validator\n */\n constructor(private _factoryFn?: AsyncValidatorFnFactoryFn<TArg>,\n private _args?: TArg,)\n {\n }\n\n //######################### public methods #########################\n\n /**\n * Gets async validator function factory function\n */\n public valueOf(): AsyncValidatorFnFactoryFn<TArg>\n {\n if(this._args)\n {\n return (args: TArg): AsyncValidatorFn =>\n {\n args = \n {\n ...this._args,\n args\n };\n\n return this._factoryFn(args);\n };\n }\n\n return this._factoryFn;\n }\n}"]}
1
+ {"version":3,"file":"validatorFactories.js","sourceRoot":"","sources":["../../../../../../forms/src/misc/formModel/misc/validatorFactories.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,MAAM,OAAO,kBAAkB;IAE3B,iEAAiE;IACjE;;;;OAIG;IACH,YAAoB,UAAuC,EACvC,KAAY;QADZ,eAAU,GAAV,UAAU,CAA6B;QACvC,UAAK,GAAL,KAAK,CAAO;IAEhC,CAAC;IAED,oEAAoE;IAEpE;;OAEG;IACI,OAAO;QAEV,IAAG,IAAI,CAAC,KAAK,EACb,CAAC;YACG,OAAO,CAAC,IAAU,EAAe,EAAE;gBAE/B,IAAI;oBACJ;wBACI,GAAG,IAAI,CAAC,KAAK;wBACb,IAAI;qBACP,CAAC;gBAEF,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACjC,CAAC,CAAC;QACN,CAAC;QAED,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;CACJ;AAED;;GAEG;AACH,MAAM,OAAO,uBAAuB;IAEhC,iEAAiE;IACjE;;;;OAIG;IACH,YAAoB,UAA4C,EAC5C,KAAY;QADZ,eAAU,GAAV,UAAU,CAAkC;QAC5C,UAAK,GAAL,KAAK,CAAO;IAEhC,CAAC;IAED,oEAAoE;IAEpE;;OAEG;IACI,OAAO;QAEV,IAAG,IAAI,CAAC,KAAK,EACb,CAAC;YACG,OAAO,CAAC,IAAU,EAAoB,EAAE;gBAEpC,IAAI;oBACJ;wBACI,GAAG,IAAI,CAAC,KAAK;wBACb,IAAI;qBACP,CAAC;gBAEF,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACjC,CAAC,CAAC;QACN,CAAC;QAED,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;CACJ","sourcesContent":["import {AsyncValidatorFn, ValidatorFn} from '@angular/forms';\nimport {Dictionary} from '@jscrpt/common';\n\nimport {AsyncValidatorFnFactoryFn, ValidatorFnFactoryFn} from '../interfaces/validator.interface';\n\n/**\n * Class that represents ValidatorFn factory\n */\nexport class ValidatorFnFactory<TArg extends Dictionary<any> = any>\n{\n //######################### constructor #########################\n /**\n * Creates instance of ValidatorFnFactory\n * @param _factoryFn - Function used for creating ValidatorFn\n * @param _args - Static arguments/parameters that can be passed to validator\n */\n constructor(private _factoryFn?: ValidatorFnFactoryFn<TArg>,\n private _args?: TArg,)\n {\n }\n\n //######################### public methods #########################\n\n /**\n * Gets validator function factory function\n */\n public valueOf(): ValidatorFnFactoryFn<TArg>\n {\n if(this._args)\n {\n return (args: TArg): ValidatorFn =>\n {\n args = \n {\n ...this._args,\n args\n };\n\n return this._factoryFn(args);\n };\n }\n\n return this._factoryFn;\n }\n}\n\n/**\n * Class that represents AsyncValidatorFn factory\n */\nexport class AsyncValidatorFnFactory<TArg extends Dictionary<any> = any>\n{\n //######################### constructor #########################\n /**\n * Creates instance of AsyncValidatorFnFactory\n * @param _factoryFn - Function used for creating AsyncValidatorFn\n * @param _args - Static arguments/parameters that can be passed to validator\n */\n constructor(private _factoryFn?: AsyncValidatorFnFactoryFn<TArg>,\n private _args?: TArg,)\n {\n }\n\n //######################### public methods #########################\n\n /**\n * Gets async validator function factory function\n */\n public valueOf(): AsyncValidatorFnFactoryFn<TArg>\n {\n if(this._args)\n {\n return (args: TArg): AsyncValidatorFn =>\n {\n args = \n {\n ...this._args,\n args\n };\n\n return this._factoryFn(args);\n };\n }\n\n return this._factoryFn;\n }\n}"]}
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../forms/src/misc/utils.ts"],"names":[],"mappings":"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","sourcesContent":["import {NgForm, FormGroup} from '@angular/forms';\nimport {deserializeFromUrlQuery, Dictionary, extend, isJsObject} from '@jscrpt/common';\n\n/**\n * Gets indication whether controls have errors, with custom indication of submitted\n * @param form - Form containing controls\n * @param controls - Array of controls names to be checked for errors\n * @param submitted - Indication whether form was submitted\n */\nexport function hasErrorCustom(form: NgForm|FormGroup, controls: string[], submitted: boolean = false): boolean\n{\n let conditionValid = false;\n let conditionChanged = false;\n\n for(let x = 0; x < controls.length; x++)\n {\n if(!form.controls[controls[x]])\n {\n return false;\n }\n\n conditionValid = conditionValid || !form.controls[controls[x]].valid;\n conditionChanged = conditionChanged || form.controls[controls[x]].dirty;\n }\n\n return conditionValid && (conditionChanged || submitted);\n}\n\n/**\n * Gets indication whether hide alerts or not for control, with custom indication of submitted\n * @param form - Form containing controls\n * @param control - Controls name that will be checked\n * @param errors - Array of validation errors to be checked for existance\n * @param submitted - Indication whether form was submitted\n */\nexport function alertHiddenCustom(form: NgForm|FormGroup, control: string, errors: string[] = [], submitted: boolean = false): boolean\n{\n if(!form.controls[control])\n {\n return true;\n }\n\n let requestedErrors = false;\n\n errors.forEach(errorType =>\n {\n requestedErrors = requestedErrors || (!!form.controls[control].errors && !!(<{[key: string]: any}>form.controls[control].errors)[errorType]);\n });\n\n return form.controls[control].valid || !requestedErrors || (!form.controls[control].dirty && !submitted);\n}\n\n/**\n * Gets indication whether controls have errors\n * @param form - Form containing controls\n * @param controls - Array of controls names to be checked for errors\n */\nexport function hasError(form: NgForm, controls: string[]): boolean\n{\n let conditionValid = false;\n let conditionChanged = false;\n\n for(let x = 0; x < controls.length; x++)\n {\n if(!form.controls[controls[x]])\n {\n return false;\n }\n\n conditionValid = conditionValid || !form.controls[controls[x]].valid;\n conditionChanged = conditionChanged || form.controls[controls[x]].dirty;\n }\n\n return conditionValid && (conditionChanged || form.submitted);\n}\n\n/**\n * Gets indication whether hide alerts or not for control\n * @param form - Form containing controls\n * @param control - Controls name that will be checked\n * @param errors - Array of validation errors to be checked for existance\n */\nexport function alertHidden(form: NgForm, control: string, errors: string[] = []): boolean\n{\n if(!form.controls[control])\n {\n return true;\n }\n\n let requestedErrors = false;\n\n errors.forEach(errorType =>\n {\n requestedErrors = requestedErrors || (!!form.controls[control].errors && !!(<{[key: string]: any}>form.controls[control].errors)[errorType]);\n });\n\n return form.controls[control].valid || !requestedErrors || (!form.controls[control].dirty && !form.submitted);\n}\n\n/**\n * Prepares object for form builder, wraps each property in array\n * @param value - Object which properties will be wrapped to array\n */\nexport function prepareForFormBuilder(value: Dictionary<any>): Dictionary\n{\n const result: Dictionary = {};\n\n Object.keys(value).forEach(prop =>\n {\n const val = value[prop];\n\n //recursively wrap nested object properties\n if(isJsObject(val) && !Array.isArray(val))\n {\n result[prop] = prepareForFormBuilder(val);\n }\n else\n {\n result[prop] = [val];\n }\n });\n\n return result;\n}\n\n/**\n * Reads filter value from encoded string\n * @param defaultValue - Default value of filter, which is overriden by values from filterValue\n * @param filterValue - Encoded string containing filter value\n * @param reviver - A function that transforms the results. This function is called for each member of the object.\n */\nexport function readEncodedFilter<TFilter>(defaultValue: TFilter, filterValue: string, reviver?: (this: any, key: string, value: any) => any): TFilter\n{\n try\n {\n return extend(true, defaultValue, deserializeFromUrlQuery(filterValue, reviver));\n }\n catch(e)\n {\n console.warn('Failed to deserialize filter from encoded string! Exc:' + e);\n\n return defaultValue;\n }\n}\n"]}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../forms/src/misc/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,uBAAuB,EAAc,MAAM,EAAE,UAAU,EAAC,MAAM,gBAAgB,CAAC;AAEvF;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,IAAsB,EAAE,QAAkB,EAAE,YAAqB,KAAK;IAEjG,IAAI,cAAc,GAAG,KAAK,CAAC;IAC3B,IAAI,gBAAgB,GAAG,KAAK,CAAC;IAE7B,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EACvC,CAAC;QACG,IAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAC9B,CAAC;YACG,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,cAAc,GAAG,cAAc,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QACrE,gBAAgB,GAAG,gBAAgB,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAC5E,CAAC;IAED,OAAO,cAAc,IAAI,CAAC,gBAAgB,IAAI,SAAS,CAAC,CAAC;AAC7D,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAsB,EAAE,OAAe,EAAE,SAAmB,EAAE,EAAE,YAAqB,KAAK;IAExH,IAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAC1B,CAAC;QACG,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,IAAI,eAAe,GAAG,KAAK,CAAC;IAE5B,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;QAEvB,eAAe,GAAG,eAAe,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,MAAM,IAAI,CAAC,CAAwB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,MAAO,CAAC,SAAS,CAAC,CAAC,CAAC;IACjJ,CAAC,CAAC,CAAC;IAEH,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC;AAC7G,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,QAAQ,CAAC,IAAY,EAAE,QAAkB;IAErD,IAAI,cAAc,GAAG,KAAK,CAAC;IAC3B,IAAI,gBAAgB,GAAG,KAAK,CAAC;IAE7B,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EACvC,CAAC;QACG,IAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAC9B,CAAC;YACG,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,cAAc,GAAG,cAAc,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QACrE,gBAAgB,GAAG,gBAAgB,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAC5E,CAAC;IAED,OAAO,cAAc,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC;AAClE,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,IAAY,EAAE,OAAe,EAAE,SAAmB,EAAE;IAE5E,IAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAC1B,CAAC;QACG,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,IAAI,eAAe,GAAG,KAAK,CAAC;IAE5B,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;QAEvB,eAAe,GAAG,eAAe,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,MAAM,IAAI,CAAC,CAAwB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,MAAO,CAAC,SAAS,CAAC,CAAC,CAAC;IACjJ,CAAC,CAAC,CAAC;IAEH,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAClH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAAsB;IAExD,MAAM,MAAM,GAAe,EAAE,CAAC;IAE9B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QAE9B,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;QAExB,2CAA2C;QAC3C,IAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EACzC,CAAC;YACG,MAAM,CAAC,IAAI,CAAC,GAAG,qBAAqB,CAAC,GAAG,CAAC,CAAC;QAC9C,CAAC;aAED,CAAC;YACG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACzB,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAClB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAU,YAAqB,EAAE,WAAmB,EAAE,OAAqD;IAExI,IACA,CAAC;QACG,OAAO,MAAM,CAAC,IAAI,EAAE,YAAY,EAAE,uBAAuB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;IACrF,CAAC;IACD,OAAM,CAAC,EACP,CAAC;QACG,OAAO,CAAC,IAAI,CAAC,wDAAwD,GAAG,CAAC,CAAC,CAAC;QAE3E,OAAO,YAAY,CAAC;IACxB,CAAC;AACL,CAAC","sourcesContent":["import {NgForm, FormGroup} from '@angular/forms';\nimport {deserializeFromUrlQuery, Dictionary, extend, isJsObject} from '@jscrpt/common';\n\n/**\n * Gets indication whether controls have errors, with custom indication of submitted\n * @param form - Form containing controls\n * @param controls - Array of controls names to be checked for errors\n * @param submitted - Indication whether form was submitted\n */\nexport function hasErrorCustom(form: NgForm|FormGroup, controls: string[], submitted: boolean = false): boolean\n{\n let conditionValid = false;\n let conditionChanged = false;\n\n for(let x = 0; x < controls.length; x++)\n {\n if(!form.controls[controls[x]])\n {\n return false;\n }\n\n conditionValid = conditionValid || !form.controls[controls[x]].valid;\n conditionChanged = conditionChanged || form.controls[controls[x]].dirty;\n }\n\n return conditionValid && (conditionChanged || submitted);\n}\n\n/**\n * Gets indication whether hide alerts or not for control, with custom indication of submitted\n * @param form - Form containing controls\n * @param control - Controls name that will be checked\n * @param errors - Array of validation errors to be checked for existance\n * @param submitted - Indication whether form was submitted\n */\nexport function alertHiddenCustom(form: NgForm|FormGroup, control: string, errors: string[] = [], submitted: boolean = false): boolean\n{\n if(!form.controls[control])\n {\n return true;\n }\n\n let requestedErrors = false;\n\n errors.forEach(errorType =>\n {\n requestedErrors = requestedErrors || (!!form.controls[control].errors && !!(<{[key: string]: any}>form.controls[control].errors)[errorType]);\n });\n\n return form.controls[control].valid || !requestedErrors || (!form.controls[control].dirty && !submitted);\n}\n\n/**\n * Gets indication whether controls have errors\n * @param form - Form containing controls\n * @param controls - Array of controls names to be checked for errors\n */\nexport function hasError(form: NgForm, controls: string[]): boolean\n{\n let conditionValid = false;\n let conditionChanged = false;\n\n for(let x = 0; x < controls.length; x++)\n {\n if(!form.controls[controls[x]])\n {\n return false;\n }\n\n conditionValid = conditionValid || !form.controls[controls[x]].valid;\n conditionChanged = conditionChanged || form.controls[controls[x]].dirty;\n }\n\n return conditionValid && (conditionChanged || form.submitted);\n}\n\n/**\n * Gets indication whether hide alerts or not for control\n * @param form - Form containing controls\n * @param control - Controls name that will be checked\n * @param errors - Array of validation errors to be checked for existance\n */\nexport function alertHidden(form: NgForm, control: string, errors: string[] = []): boolean\n{\n if(!form.controls[control])\n {\n return true;\n }\n\n let requestedErrors = false;\n\n errors.forEach(errorType =>\n {\n requestedErrors = requestedErrors || (!!form.controls[control].errors && !!(<{[key: string]: any}>form.controls[control].errors)[errorType]);\n });\n\n return form.controls[control].valid || !requestedErrors || (!form.controls[control].dirty && !form.submitted);\n}\n\n/**\n * Prepares object for form builder, wraps each property in array\n * @param value - Object which properties will be wrapped to array\n */\nexport function prepareForFormBuilder(value: Dictionary<any>): Dictionary\n{\n const result: Dictionary = {};\n\n Object.keys(value).forEach(prop =>\n {\n const val = value[prop];\n\n //recursively wrap nested object properties\n if(isJsObject(val) && !Array.isArray(val))\n {\n result[prop] = prepareForFormBuilder(val);\n }\n else\n {\n result[prop] = [val];\n }\n });\n\n return result;\n}\n\n/**\n * Reads filter value from encoded string\n * @param defaultValue - Default value of filter, which is overriden by values from filterValue\n * @param filterValue - Encoded string containing filter value\n * @param reviver - A function that transforms the results. This function is called for each member of the object.\n */\nexport function readEncodedFilter<TFilter>(defaultValue: TFilter, filterValue: string, reviver?: (this: any, key: string, value: any) => any): TFilter\n{\n try\n {\n return extend(true, defaultValue, deserializeFromUrlQuery(filterValue, reviver));\n }\n catch(e)\n {\n console.warn('Failed to deserialize filter from encoded string! Exc:' + e);\n\n return defaultValue;\n }\n}\n"]}
@@ -3,15 +3,13 @@ import { Subject } from 'rxjs';
3
3
  * Class that holds validation errors view container
4
4
  */
5
5
  export class ValidationErrorsContainerView {
6
- //######################### private fields #########################
7
- /**
8
- * Current instance of view container
9
- */
10
- _viewContainer;
11
- /**
12
- * Used for emitting viewContainer changes
13
- */
14
- _viewContainerChange = new Subject();
6
+ constructor() {
7
+ //######################### private fields #########################
8
+ /**
9
+ * Used for emitting viewContainer changes
10
+ */
11
+ this._viewContainerChange = new Subject();
12
+ }
15
13
  //######################### public properties #########################
16
14
  /**
17
15
  * Gets or sets current instance of view container
@@ -1 +1 @@
1
- {"version":3,"file":"validationErrorsContainerView.js","sourceRoot":"","sources":["../../../../forms/src/misc/validationErrorsContainerView.ts"],"names":[],"mappings":"AACA,OAAO,EAAa,OAAO,EAAC,MAAM,MAAM,CAAC;AAEzC;;GAEG;AACH,MAAM,OAAO,6BAA6B;IAEtC,oEAAoE;IAEpE;;OAEG;IACK,cAAc,CAAmB;IAEzC;;OAEG;IACK,oBAAoB,GAAkB,IAAI,OAAO,EAAQ,CAAC;IAElE,uEAAuE;IAEvE;;OAEG;IACH,IAAW,aAAa;QAEpB,OAAO,IAAI,CAAC,cAAc,CAAC;IAC/B,CAAC;IACD,IAAW,aAAa,CAAC,KAAuB;QAE5C,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;QAC5B,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC;IACrC,CAAC;IAED;;OAEG;IACH,IAAW,mBAAmB;QAE1B,OAAO,IAAI,CAAC,oBAAoB,CAAC,YAAY,EAAE,CAAC;IACpD,CAAC;CACJ","sourcesContent":["import {ViewContainerRef} from '@angular/core';\nimport {Observable, Subject} from 'rxjs';\n\n/**\n * Class that holds validation errors view container\n */\nexport class ValidationErrorsContainerView\n{\n //######################### private fields #########################\n \n /**\n * Current instance of view container\n */\n private _viewContainer: ViewContainerRef;\n \n /**\n * Used for emitting viewContainer changes\n */\n private _viewContainerChange: Subject<void> = new Subject<void>();\n \n //######################### public properties #########################\n \n /**\n * Gets or sets current instance of view container\n */\n public get viewContainer(): ViewContainerRef\n {\n return this._viewContainer;\n }\n public set viewContainer(value: ViewContainerRef)\n {\n this._viewContainer = value;\n this._viewContainerChange.next();\n }\n\n /**\n * Occurs when view container instance changes\n */\n public get viewContainerChange(): Observable<void>\n {\n return this._viewContainerChange.asObservable();\n }\n}"]}
1
+ {"version":3,"file":"validationErrorsContainerView.js","sourceRoot":"","sources":["../../../../forms/src/misc/validationErrorsContainerView.ts"],"names":[],"mappings":"AACA,OAAO,EAAa,OAAO,EAAC,MAAM,MAAM,CAAC;AAEzC;;GAEG;AACH,MAAM,OAAO,6BAA6B;IAA1C;QAEI,oEAAoE;QAOpE;;WAEG;QACK,yBAAoB,GAAkB,IAAI,OAAO,EAAQ,CAAC;IAwBtE,CAAC;IAtBG,uEAAuE;IAEvE;;OAEG;IACH,IAAW,aAAa;QAEpB,OAAO,IAAI,CAAC,cAAc,CAAC;IAC/B,CAAC;IACD,IAAW,aAAa,CAAC,KAAuB;QAE5C,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;QAC5B,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC;IACrC,CAAC;IAED;;OAEG;IACH,IAAW,mBAAmB;QAE1B,OAAO,IAAI,CAAC,oBAAoB,CAAC,YAAY,EAAE,CAAC;IACpD,CAAC;CACJ","sourcesContent":["import {ViewContainerRef} from '@angular/core';\nimport {Observable, Subject} from 'rxjs';\n\n/**\n * Class that holds validation errors view container\n */\nexport class ValidationErrorsContainerView\n{\n //######################### private fields #########################\n \n /**\n * Current instance of view container\n */\n private _viewContainer: ViewContainerRef;\n \n /**\n * Used for emitting viewContainer changes\n */\n private _viewContainerChange: Subject<void> = new Subject<void>();\n \n //######################### public properties #########################\n \n /**\n * Gets or sets current instance of view container\n */\n public get viewContainer(): ViewContainerRef\n {\n return this._viewContainer;\n }\n public set viewContainer(value: ViewContainerRef)\n {\n this._viewContainer = value;\n this._viewContainerChange.next();\n }\n\n /**\n * Occurs when view container instance changes\n */\n public get viewContainerChange(): Observable<void>\n {\n return this._viewContainerChange.asObservable();\n }\n}"]}
@@ -1 +1 @@
1
- {"version":3,"file":"validators.js","sourceRoot":"","sources":["../../../../forms/src/misc/validators.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,SAAS,EAAC,MAAM,gBAAgB,CAAC;AAEzC;;GAEG;AACH,MAAM,OAAO,UAAU;IAEnB;;;OAGG;IACI,MAAM,CAAC,MAAM,CAAC,OAAwB;QAEzC,IAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EACvB;YACI,OAAO;gBACH,QAAQ,EAAE,IAAI;aACjB,CAAC;SACL;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,GAAG,CAAC,GAAgB;QAE9B,OAAO,CAAC,OAAwB,EAAyB,EAAE;YAEvD,IAAG,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,KAAK,GAAG,GAAG,EAC7F;gBACI,OAAO;oBACH,UAAU,EAAE,GAAG;oBACf,aAAa,EAAE,OAAO,CAAC,KAAK;iBAC/B,CAAC;aACL;YAED,OAAO,IAAI,CAAC;QAChB,CAAC,CAAC;IACN,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,GAAG,CAAC,GAAgB;QAE9B,OAAO,CAAC,OAAwB,EAAyB,EAAE;YAEvD,IAAG,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,KAAK,GAAG,GAAG,EAC7F;gBACI,OAAO;oBACH,UAAU,EAAE,GAAG;oBACf,aAAa,EAAE,OAAO,CAAC,KAAK;iBAC/B,CAAC;aACL;YAED,OAAO,IAAI,CAAC;QAChB,CAAC,CAAC;IACN,CAAC;CACJ","sourcesContent":["import {AbstractControl, ValidationErrors, ValidatorFn} from '@angular/forms';\nimport {isPresent} from '@jscrpt/common';\n\n/**\n * Validations functions\n */\nexport class Validators\n{\n /**\n * Validates control if its value is number\n * @param control - Control which value to be validated\n */\n public static number(control: AbstractControl): ValidationErrors|null\n {\n if(isNaN(control.value))\n {\n return {\n 'number': true\n };\n }\n\n return null;\n }\n\n /**\n * Creates validator function that validates control if its value is higher than max value\n * @param max - Max value that should be validated\n */\n public static max(max: number|null): ValidatorFn\n {\n return (control: AbstractControl): ValidationErrors|null =>\n {\n if(!isNaN(control.value) && isPresent(control.value) && isPresent(max) && control.value > max)\n {\n return {\n 'maxValue': max,\n 'actualValue': control.value\n };\n }\n\n return null;\n };\n }\n\n /**\n * Creates validator function that validates control if its value is lower than min value\n * @param min - Min value that should be validated\n */\n public static min(min: number|null): ValidatorFn\n {\n return (control: AbstractControl): ValidationErrors|null =>\n {\n if(!isNaN(control.value) && isPresent(control.value) && isPresent(min) && control.value < min)\n {\n return {\n 'minValue': min,\n 'actualValue': control.value\n };\n }\n\n return null;\n };\n }\n}"]}
1
+ {"version":3,"file":"validators.js","sourceRoot":"","sources":["../../../../forms/src/misc/validators.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,SAAS,EAAC,MAAM,gBAAgB,CAAC;AAEzC;;GAEG;AACH,MAAM,OAAO,UAAU;IAEnB;;;OAGG;IACI,MAAM,CAAC,MAAM,CAAC,OAAwB;QAEzC,IAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EACvB,CAAC;YACG,OAAO;gBACH,QAAQ,EAAE,IAAI;aACjB,CAAC;QACN,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,GAAG,CAAC,GAAgB;QAE9B,OAAO,CAAC,OAAwB,EAAyB,EAAE;YAEvD,IAAG,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,KAAK,GAAG,GAAG,EAC7F,CAAC;gBACG,OAAO;oBACH,UAAU,EAAE,GAAG;oBACf,aAAa,EAAE,OAAO,CAAC,KAAK;iBAC/B,CAAC;YACN,CAAC;YAED,OAAO,IAAI,CAAC;QAChB,CAAC,CAAC;IACN,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,GAAG,CAAC,GAAgB;QAE9B,OAAO,CAAC,OAAwB,EAAyB,EAAE;YAEvD,IAAG,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,KAAK,GAAG,GAAG,EAC7F,CAAC;gBACG,OAAO;oBACH,UAAU,EAAE,GAAG;oBACf,aAAa,EAAE,OAAO,CAAC,KAAK;iBAC/B,CAAC;YACN,CAAC;YAED,OAAO,IAAI,CAAC;QAChB,CAAC,CAAC;IACN,CAAC;CACJ","sourcesContent":["import {AbstractControl, ValidationErrors, ValidatorFn} from '@angular/forms';\nimport {isPresent} from '@jscrpt/common';\n\n/**\n * Validations functions\n */\nexport class Validators\n{\n /**\n * Validates control if its value is number\n * @param control - Control which value to be validated\n */\n public static number(control: AbstractControl): ValidationErrors|null\n {\n if(isNaN(control.value))\n {\n return {\n 'number': true\n };\n }\n\n return null;\n }\n\n /**\n * Creates validator function that validates control if its value is higher than max value\n * @param max - Max value that should be validated\n */\n public static max(max: number|null): ValidatorFn\n {\n return (control: AbstractControl): ValidationErrors|null =>\n {\n if(!isNaN(control.value) && isPresent(control.value) && isPresent(max) && control.value > max)\n {\n return {\n 'maxValue': max,\n 'actualValue': control.value\n };\n }\n\n return null;\n };\n }\n\n /**\n * Creates validator function that validates control if its value is lower than min value\n * @param min - Min value that should be validated\n */\n public static min(min: number|null): ValidatorFn\n {\n return (control: AbstractControl): ValidationErrors|null =>\n {\n if(!isNaN(control.value) && isPresent(control.value) && isPresent(min) && control.value < min)\n {\n return {\n 'minValue': min,\n 'actualValue': control.value\n };\n }\n\n return null;\n };\n }\n}"]}
@@ -13,22 +13,6 @@ import * as i5 from "../../pipes/withErrorMessage/withErrorMessage.pipe";
13
13
  * Component used for rendering from group errors
14
14
  */
15
15
  export class GroupErrorsComponent {
16
- formGroupDirective;
17
- formGroupName;
18
- _changeDetector;
19
- //######################### protected fields #########################
20
- /**
21
- * Instance of currently used form group
22
- */
23
- _formGroup;
24
- /**
25
- * Subscriptions created during initialization
26
- */
27
- _initSubscriptions = new Subscription();
28
- /**
29
- * Last state of form control
30
- */
31
- _lastState;
32
16
  //######################### public properties - template bindings #########################
33
17
  /**
34
18
  * Gets instance of currently used form group
@@ -37,21 +21,15 @@ export class GroupErrorsComponent {
37
21
  get formGroup() {
38
22
  return (this._formGroup ??= (this.formGroupDirective?.form ?? this.formGroupName?.control));
39
23
  }
40
- //######################### public properties - inputs #########################
41
- /**
42
- * Css classes that are applied to default rendered divs
43
- */
44
- cssClass;
45
- //######################### public properties - children #########################
46
- /**
47
- * Custom template for rendering form group error
48
- */
49
- template;
50
24
  //######################### constructor #########################
51
25
  constructor(formGroupDirective, formGroupName, _changeDetector) {
52
26
  this.formGroupDirective = formGroupDirective;
53
27
  this.formGroupName = formGroupName;
54
28
  this._changeDetector = _changeDetector;
29
+ /**
30
+ * Subscriptions created during initialization
31
+ */
32
+ this._initSubscriptions = new Subscription();
55
33
  if (!this.formGroupDirective && !this.formGroupName) {
56
34
  throw new Error('There is no parent formGroup or formGroupName directive');
57
35
  }
@@ -76,10 +54,10 @@ export class GroupErrorsComponent {
76
54
  this._initSubscriptions?.unsubscribe();
77
55
  this._initSubscriptions = null;
78
56
  }
79
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: GroupErrorsComponent, deps: [{ token: i1.FormGroupDirective, optional: true }, { token: i1.FormGroupName, optional: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
80
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.5", type: GroupErrorsComponent, selector: "form-group-errors", inputs: { cssClass: "cssClass" }, queries: [{ propertyName: "template", first: true, predicate: GroupErrorsTemplateDirective, descendants: true }], ngImport: i0, template: "<ng-template #defaultTemplate let-errorName>\n <div [ngClass]=\"cssClass\" [errorMessage]=\"errorName\" [errors]=\"formGroup.errors\" @slideInOut></div>\n</ng-template>\n\n<ng-container *ngFor=\"let errorName of formGroup.errors | keys | withErrorMessage; let first=first; let last=last; let index=index\">\n <ng-container *ngTemplateOutlet=\"template?.template ?? defaultTemplate; context: {$implicit: errorName, first, last, index, errors: formGroup.errors}\"></ng-container>\n</ng-container>", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.ErrorMessageDirective, selector: "[errorMessage]", inputs: ["errorMessage", "errors"], exportAs: ["errorMessage"] }, { kind: "pipe", type: i4.KeysSAPipe, name: "keys" }, { kind: "pipe", type: i5.WithErrorMessagePipe, name: "withErrorMessage" }], animations: [slideInOutTrigger], changeDetection: i0.ChangeDetectionStrategy.OnPush });
57
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: GroupErrorsComponent, deps: [{ token: i1.FormGroupDirective, optional: true }, { token: i1.FormGroupName, optional: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
58
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.1", type: GroupErrorsComponent, selector: "form-group-errors", inputs: { cssClass: "cssClass" }, queries: [{ propertyName: "template", first: true, predicate: GroupErrorsTemplateDirective, descendants: true }], ngImport: i0, template: "<ng-template #defaultTemplate let-errorName>\n <div [ngClass]=\"cssClass\" [errorMessage]=\"errorName\" [errors]=\"formGroup.errors\" @slideInOut></div>\n</ng-template>\n\n<ng-container *ngFor=\"let errorName of formGroup.errors | keys | withErrorMessage; let first=first; let last=last; let index=index\">\n <ng-container *ngTemplateOutlet=\"template?.template ?? defaultTemplate; context: {$implicit: errorName, first, last, index, errors: formGroup.errors}\"></ng-container>\n</ng-container>", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.ErrorMessageDirective, selector: "[errorMessage]", inputs: ["errorMessage", "errors"], exportAs: ["errorMessage"] }, { kind: "pipe", type: i4.KeysPipe, name: "keys" }, { kind: "pipe", type: i5.WithErrorMessagePipe, name: "withErrorMessage" }], animations: [slideInOutTrigger], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
81
59
  }
82
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: GroupErrorsComponent, decorators: [{
60
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: GroupErrorsComponent, decorators: [{
83
61
  type: Component,
84
62
  args: [{ selector: 'form-group-errors', animations: [slideInOutTrigger], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template #defaultTemplate let-errorName>\n <div [ngClass]=\"cssClass\" [errorMessage]=\"errorName\" [errors]=\"formGroup.errors\" @slideInOut></div>\n</ng-template>\n\n<ng-container *ngFor=\"let errorName of formGroup.errors | keys | withErrorMessage; let first=first; let last=last; let index=index\">\n <ng-container *ngTemplateOutlet=\"template?.template ?? defaultTemplate; context: {$implicit: errorName, first, last, index, errors: formGroup.errors}\"></ng-container>\n</ng-container>" }]
85
63
  }], ctorParameters: () => [{ type: i1.FormGroupDirective, decorators: [{
@@ -1 +1 @@
1
- {"version":3,"file":"groupErrors.component.js","sourceRoot":"","sources":["../../../../../../../forms/src/modules/errorMessage/components/groupErrors/groupErrors.component.ts","../../../../../../../forms/src/modules/errorMessage/components/groupErrors/groupErrors.component.html"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAE,uBAAuB,EAAE,QAAQ,EAAqB,iBAAiB,EAAE,KAAK,EAAE,YAAY,EAAC,MAAM,eAAe,CAAC;AACtI,OAAO,EAA+B,kBAAkB,EAAE,aAAa,EAAC,MAAM,gBAAgB,CAAC;AAC/F,OAAO,EAAC,iBAAiB,EAAC,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAC,YAAY,EAAC,MAAM,MAAM,CAAC;AAElC,OAAO,EAAC,4BAA4B,EAAC,MAAM,kBAAkB,CAAC;;;;;;;AAE9D;;GAEG;AAQH,MAAM,OAAO,oBAAoB;IA+CK;IACA;IACZ;IA/CtB,sEAAsE;IAEtE;;OAEG;IACO,UAAU,CAAa;IAEjC;;OAEG;IACO,kBAAkB,GAAiB,IAAI,YAAY,EAAE,CAAC;IAEhE;;OAEG;IACO,UAAU,CAAqB;IAEzC,2FAA2F;IAE3F;;;OAGG;IACH,IAAW,SAAS;QAEhB,OAAO,CAAC,IAAI,CAAC,UAAU,KAAK,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,IAAI,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,CAAC;IAChG,CAAC;IAED,gFAAgF;IAEhF;;OAEG;IAEI,QAAQ,CAAS;IAExB,kFAAkF;IAElF;;OAEG;IAEI,QAAQ,CAAgC;IAE/C,iEAAiE;IACjE,YAAkC,kBAAsC,EACtC,aAA4B,EACxC,eAAkC;QAFtB,uBAAkB,GAAlB,kBAAkB,CAAoB;QACtC,kBAAa,GAAb,aAAa,CAAe;QACxC,oBAAe,GAAf,eAAe,CAAmB;QAEpD,IAAG,CAAC,IAAI,CAAC,kBAAkB,IAAI,CAAC,IAAI,CAAC,aAAa,EAClD;YACI,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;SAC9E;IACL,CAAC;IAED,+FAA+F;IAE/F;;OAEG;IACI,QAAQ;QAEX,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;YAEvE,IAAG,IAAI,CAAC,UAAU,IAAI,KAAK,IAAI,KAAK,IAAI,SAAS,EACjD;gBACI,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;gBACxB,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE,CAAC;aACxC;QACL,CAAC,CAAC,CAAC,CAAC;IACR,CAAC;IAED,kGAAkG;IAElG;;OAEG;IACI,WAAW;QAEd,IAAI,CAAC,kBAAkB,EAAE,WAAW,EAAE,CAAC;QACvC,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;IACnC,CAAC;uGAnFQ,oBAAoB;2FAApB,oBAAoB,iIA2Cf,4BAA4B,gDC5D9C,sfAMe,mrBDQC,CAAC,iBAAiB,CAAC;;2FAGtB,oBAAoB;kBAPhC,SAAS;+BAEI,mBAAmB,cAEjB,CAAC,iBAAiB,CAAC,mBACd,uBAAuB,CAAC,MAAM;;0BAiDlC,QAAQ;;0BACR,QAAQ;yEAZd,QAAQ;sBADd,KAAK;gBASC,QAAQ;sBADd,YAAY;uBAAC,4BAA4B","sourcesContent":["import {Component, ChangeDetectionStrategy, Optional, OnInit, OnDestroy, ChangeDetectorRef, Input, ContentChild} from '@angular/core';\nimport {FormControlStatus, FormGroup, FormGroupDirective, FormGroupName} from '@angular/forms';\nimport {slideInOutTrigger} from '@anglr/animations';\nimport {Subscription} from 'rxjs';\n\nimport {GroupErrorsTemplateDirective} from '../../directives';\n\n/**\n * Component used for rendering from group errors\n */\n@Component(\n{\n selector: 'form-group-errors',\n templateUrl: 'groupErrors.component.html',\n animations: [slideInOutTrigger],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class GroupErrorsComponent implements OnInit, OnDestroy\n{\n //######################### protected fields #########################\n\n /**\n * Instance of currently used form group\n */\n protected _formGroup?: FormGroup;\n\n /**\n * Subscriptions created during initialization\n */\n protected _initSubscriptions: Subscription = new Subscription();\n\n /**\n * Last state of form control\n */\n protected _lastState?: FormControlStatus;\n\n //######################### public properties - template bindings #########################\n\n /**\n * Gets instance of currently used form group\n * @internal\n */\n public get formGroup(): FormGroup\n {\n return (this._formGroup ??= (this.formGroupDirective?.form ?? this.formGroupName?.control));\n }\n\n //######################### public properties - inputs #########################\n\n /**\n * Css classes that are applied to default rendered divs\n */\n @Input()\n public cssClass: string;\n\n //######################### public properties - children #########################\n\n /**\n * Custom template for rendering form group error\n */\n @ContentChild(GroupErrorsTemplateDirective)\n public template?: GroupErrorsTemplateDirective;\n\n //######################### constructor #########################\n constructor(@Optional() protected formGroupDirective: FormGroupDirective,\n @Optional() protected formGroupName: FormGroupName,\n protected _changeDetector: ChangeDetectorRef,)\n {\n if(!this.formGroupDirective && !this.formGroupName)\n {\n throw new Error('There is no parent formGroup or formGroupName directive');\n }\n }\n\n //######################### public methods - implementation of OnInit #########################\n \n /**\n * Initialize component\n */\n public ngOnInit(): void\n {\n this._initSubscriptions.add(this.formGroup.statusChanges.subscribe(state =>\n {\n if(this._lastState != state || state == 'INVALID')\n {\n this._lastState = state;\n this._changeDetector.detectChanges();\n }\n }));\n }\n\n //######################### public methods - implementation of OnDestroy #########################\n \n /**\n * Called when component is destroyed\n */\n public ngOnDestroy(): void\n {\n this._initSubscriptions?.unsubscribe();\n this._initSubscriptions = null;\n }\n}","<ng-template #defaultTemplate let-errorName>\n <div [ngClass]=\"cssClass\" [errorMessage]=\"errorName\" [errors]=\"formGroup.errors\" @slideInOut></div>\n</ng-template>\n\n<ng-container *ngFor=\"let errorName of formGroup.errors | keys | withErrorMessage; let first=first; let last=last; let index=index\">\n <ng-container *ngTemplateOutlet=\"template?.template ?? defaultTemplate; context: {$implicit: errorName, first, last, index, errors: formGroup.errors}\"></ng-container>\n</ng-container>"]}
1
+ {"version":3,"file":"groupErrors.component.js","sourceRoot":"","sources":["../../../../../../../forms/src/modules/errorMessage/components/groupErrors/groupErrors.component.ts","../../../../../../../forms/src/modules/errorMessage/components/groupErrors/groupErrors.component.html"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAE,uBAAuB,EAAE,QAAQ,EAAqB,iBAAiB,EAAE,KAAK,EAAE,YAAY,EAAC,MAAM,eAAe,CAAC;AACtI,OAAO,EAA+B,kBAAkB,EAAE,aAAa,EAAC,MAAM,gBAAgB,CAAC;AAC/F,OAAO,EAAC,iBAAiB,EAAC,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAC,YAAY,EAAC,MAAM,MAAM,CAAC;AAElC,OAAO,EAAC,4BAA4B,EAAC,MAAM,kBAAkB,CAAC;;;;;;;AAE9D;;GAEG;AAQH,MAAM,OAAO,oBAAoB;IAmB7B,2FAA2F;IAE3F;;;OAGG;IACH,IAAW,SAAS;QAEhB,OAAO,CAAC,IAAI,CAAC,UAAU,KAAK,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,IAAI,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,CAAC;IAChG,CAAC;IAkBD,iEAAiE;IACjE,YAAkC,kBAAsC,EACtC,aAA4B,EACxC,eAAkC;QAFtB,uBAAkB,GAAlB,kBAAkB,CAAoB;QACtC,kBAAa,GAAb,aAAa,CAAe;QACxC,oBAAe,GAAf,eAAe,CAAmB;QAxCxD;;WAEG;QACO,uBAAkB,GAAiB,IAAI,YAAY,EAAE,CAAC;QAuC5D,IAAG,CAAC,IAAI,CAAC,kBAAkB,IAAI,CAAC,IAAI,CAAC,aAAa,EAClD,CAAC;YACG,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;QAC/E,CAAC;IACL,CAAC;IAED,+FAA+F;IAE/F;;OAEG;IACI,QAAQ;QAEX,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;YAEvE,IAAG,IAAI,CAAC,UAAU,IAAI,KAAK,IAAI,KAAK,IAAI,SAAS,EACjD,CAAC;gBACG,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;gBACxB,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE,CAAC;YACzC,CAAC;QACL,CAAC,CAAC,CAAC,CAAC;IACR,CAAC;IAED,kGAAkG;IAElG;;OAEG;IACI,WAAW;QAEd,IAAI,CAAC,kBAAkB,EAAE,WAAW,EAAE,CAAC;QACvC,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;IACnC,CAAC;8GAnFQ,oBAAoB;kGAApB,oBAAoB,iIA2Cf,4BAA4B,gDC5D9C,sfAMe,irBDQC,CAAC,iBAAiB,CAAC;;2FAGtB,oBAAoB;kBAPhC,SAAS;+BAEI,mBAAmB,cAEjB,CAAC,iBAAiB,CAAC,mBACd,uBAAuB,CAAC,MAAM;;0BAiDlC,QAAQ;;0BACR,QAAQ;yEAZd,QAAQ;sBADd,KAAK;gBASC,QAAQ;sBADd,YAAY;uBAAC,4BAA4B","sourcesContent":["import {Component, ChangeDetectionStrategy, Optional, OnInit, OnDestroy, ChangeDetectorRef, Input, ContentChild} from '@angular/core';\nimport {FormControlStatus, FormGroup, FormGroupDirective, FormGroupName} from '@angular/forms';\nimport {slideInOutTrigger} from '@anglr/animations';\nimport {Subscription} from 'rxjs';\n\nimport {GroupErrorsTemplateDirective} from '../../directives';\n\n/**\n * Component used for rendering from group errors\n */\n@Component(\n{\n selector: 'form-group-errors',\n templateUrl: 'groupErrors.component.html',\n animations: [slideInOutTrigger],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class GroupErrorsComponent implements OnInit, OnDestroy\n{\n //######################### protected fields #########################\n\n /**\n * Instance of currently used form group\n */\n protected _formGroup?: FormGroup;\n\n /**\n * Subscriptions created during initialization\n */\n protected _initSubscriptions: Subscription = new Subscription();\n\n /**\n * Last state of form control\n */\n protected _lastState?: FormControlStatus;\n\n //######################### public properties - template bindings #########################\n\n /**\n * Gets instance of currently used form group\n * @internal\n */\n public get formGroup(): FormGroup\n {\n return (this._formGroup ??= (this.formGroupDirective?.form ?? this.formGroupName?.control));\n }\n\n //######################### public properties - inputs #########################\n\n /**\n * Css classes that are applied to default rendered divs\n */\n @Input()\n public cssClass: string;\n\n //######################### public properties - children #########################\n\n /**\n * Custom template for rendering form group error\n */\n @ContentChild(GroupErrorsTemplateDirective)\n public template?: GroupErrorsTemplateDirective;\n\n //######################### constructor #########################\n constructor(@Optional() protected formGroupDirective: FormGroupDirective,\n @Optional() protected formGroupName: FormGroupName,\n protected _changeDetector: ChangeDetectorRef,)\n {\n if(!this.formGroupDirective && !this.formGroupName)\n {\n throw new Error('There is no parent formGroup or formGroupName directive');\n }\n }\n\n //######################### public methods - implementation of OnInit #########################\n \n /**\n * Initialize component\n */\n public ngOnInit(): void\n {\n this._initSubscriptions.add(this.formGroup.statusChanges.subscribe(state =>\n {\n if(this._lastState != state || state == 'INVALID')\n {\n this._lastState = state;\n this._changeDetector.detectChanges();\n }\n }));\n }\n\n //######################### public methods - implementation of OnDestroy #########################\n \n /**\n * Called when component is destroyed\n */\n public ngOnDestroy(): void\n {\n this._initSubscriptions?.unsubscribe();\n this._initSubscriptions = null;\n }\n}","<ng-template #defaultTemplate let-errorName>\n <div [ngClass]=\"cssClass\" [errorMessage]=\"errorName\" [errors]=\"formGroup.errors\" @slideInOut></div>\n</ng-template>\n\n<ng-container *ngFor=\"let errorName of formGroup.errors | keys | withErrorMessage; let first=first; let last=last; let index=index\">\n <ng-container *ngTemplateOutlet=\"template?.template ?? defaultTemplate; context: {$implicit: errorName, first, last, index, errors: formGroup.errors}\"></ng-container>\n</ng-container>"]}