@zohodesk/library-platform 1.1.8 → 1.1.9

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 (246) hide show
  1. package/es/bc/zfield/FieldApiTypes.js +20 -0
  2. package/es/bc/zform/Properties.js +9 -0
  3. package/es/bc/zform/Symbol.js +5 -0
  4. package/es/bc/zlist/Properties.js +3 -0
  5. package/es/bc/zrecord/Constants.js +2 -0
  6. package/es/cc/date/Properties.js +9 -0
  7. package/es/cc/fields/field/Properties.js +63 -0
  8. package/es/cc/fields/multi-select/Properties.js +9 -0
  9. package/es/cc/fields/pick-list/Properties.js +9 -0
  10. package/es/cc/form/Properties.js +17 -0
  11. package/es/cc/form-connected/Properties.js +35 -0
  12. package/es/cc/form-connected/SdkContract.js +61 -0
  13. package/es/cc/form-connected/index.js +2 -0
  14. package/es/cc/highlighted-value/Properties.js +10 -0
  15. package/es/cc/index.js +1 -1
  16. package/es/cc/multi-select/Properties.js +9 -0
  17. package/es/cc/select/Properties.js +12 -0
  18. package/es/cc/textbox/Properties.js +11 -0
  19. package/es/index.js +2 -1
  20. package/es/library/behaviours/field-focus/frameworks/ui/EventHandlersFactory.js +26 -0
  21. package/es/library/behaviours/field-focus/frameworks/ui/FocusFieldBehaviourFactory.js +20 -0
  22. package/es/library/dot/components/action-location/frameworks/ui/ActionComponentMapping.js +3 -1
  23. package/es/library/dot/components/form/adapters/presenter/TransformState.js +5 -58
  24. package/es/library/dot/components/form/frameworks/ui/DefaultComponentRegister.js +0 -4
  25. package/es/library/dot/components/form/frameworks/ui/FormView.js +18 -42
  26. package/es/library/dot/components/form/frameworks/ui/css/Form.module.css +29 -1
  27. package/es/library/dot/components/form/frameworks/ui/sub-components/Footer.js +27 -0
  28. package/es/library/dot/components/form/frameworks/ui/sub-components/Header.js +24 -0
  29. package/es/library/dot/components/form/frameworks/ui/sub-components/MiddleSection.js +24 -0
  30. package/es/library/dot/components/form/frameworks/ui/sub-components/Sections.js +7 -2
  31. package/es/library/dot/components/form/frameworks/ui/sub-components/SectionsLayout.js +20 -0
  32. package/es/library/dot/components/form/frameworks/ui/sub-components/SectionsWithRightPanelLayout.js +42 -0
  33. package/es/library/dot/components/form-fields/checkbox/frameworks/ui/Checkbox.js +4 -3
  34. package/es/library/dot/components/form-fields/checkbox/frameworks/ui/CheckboxView.js +18 -14
  35. package/es/library/dot/components/form-fields/currency/frameworks/ui/Currency.js +3 -3
  36. package/es/library/dot/components/form-fields/currency/frameworks/ui/CurrencyView.js +20 -17
  37. package/es/library/dot/components/form-fields/date/frameworks/ui/Date.js +2 -3
  38. package/es/library/dot/components/form-fields/date/frameworks/ui/DateView.js +22 -19
  39. package/es/library/dot/components/form-fields/datetime/frameworks/ui/DateTime.js +2 -3
  40. package/es/library/dot/components/form-fields/datetime/frameworks/ui/DateTimeView.js +21 -18
  41. package/es/library/dot/components/form-fields/decimal/frameworks/ui/Decimal.js +2 -3
  42. package/es/library/dot/components/form-fields/decimal/frameworks/ui/DecimalView.js +22 -19
  43. package/es/library/dot/components/form-fields/email/frameworks/ui/Email.js +2 -3
  44. package/es/library/dot/components/form-fields/email/frameworks/ui/EmailView.js +22 -19
  45. package/es/library/dot/components/form-fields/field/FieldItem.js +36 -0
  46. package/es/library/dot/components/form-fields/field/css/FieldItem.module.css +13 -0
  47. package/es/library/dot/components/form-fields/multi-select/frameworks/ui/MultiSelect.js +2 -3
  48. package/es/library/dot/components/form-fields/multi-select/frameworks/ui/MultiSelectView.js +21 -18
  49. package/es/library/dot/components/form-fields/number/frameworks/ui/Number.js +2 -3
  50. package/es/library/dot/components/form-fields/number/frameworks/ui/NumberView.js +22 -19
  51. package/es/library/dot/components/form-fields/percentage/frameworks/ui/Percentage.js +2 -3
  52. package/es/library/dot/components/form-fields/percentage/frameworks/ui/PercentageView.js +22 -19
  53. package/es/library/dot/components/form-fields/phone/frameworks/ui/Phone.js +2 -3
  54. package/es/library/dot/components/form-fields/phone/frameworks/ui/PhoneView.js +22 -19
  55. package/es/library/dot/components/form-fields/pick-list/frameworks/ui/PickList.js +2 -3
  56. package/es/library/dot/components/form-fields/pick-list/frameworks/ui/PickListView.js +21 -18
  57. package/es/library/dot/components/form-fields/textarea/frameworks/ui/TextArea.js +4 -3
  58. package/es/library/dot/components/form-fields/textarea/frameworks/ui/TextAreaView.js +18 -17
  59. package/es/library/dot/components/form-fields/textbox/frameworks/ui/TextBox.js +2 -3
  60. package/es/library/dot/components/form-fields/textbox/frameworks/ui/TextBoxView.js +21 -18
  61. package/es/library/dot/components/form-fields/url/frameworks/ui/Url.js +2 -3
  62. package/es/library/dot/components/form-fields/url/frameworks/ui/UrlView.js +22 -19
  63. package/es/library/dot/components/table-list/frameworks/ui/sub-components/ErrorState.js +3 -3
  64. package/es/library/dot/legacy-to-new-arch/action-icon/frameworks/ui/ActionIconView.js +1 -1
  65. package/es/library/dot/legacy-to-new-arch/date/frameworks/ui/DateView.js +13 -1
  66. package/es/library/dot/legacy-to-new-arch/highlighted-value/frameworks/ui/HighlightedValueView.js +6 -1
  67. package/es/library/dot/{components/form-fields/ephi-tag/frameworks/ui/css/EPHITag.module.css → legacy-to-new-arch/highlighted-value/frameworks/ui/css/HighlightedValue.module.css} +1 -1
  68. package/es/library/dot/legacy-to-new-arch/label/frameworks/ui/LabelView.js +13 -7
  69. package/es/library/dot/legacy-to-new-arch/multi-select/frameworks/ui/MultiSelectView.js +12 -2
  70. package/es/library/dot/legacy-to-new-arch/select/frameworks/ui/SelectView.js +16 -4
  71. package/es/library/dot/legacy-to-new-arch/text-area/frameworks/ui/TextAreaView.js +1 -1
  72. package/es/library/dot/legacy-to-new-arch/textbox/frameworks/ui/TextBoxView.js +13 -3
  73. package/es/platform/client-actions/cc/dynamic-action-component/Properties.js +1 -1
  74. package/es/platform/components/form-connected/adapters/resources/SmartFormResources.js +88 -6
  75. package/es/platform/components/form-connected/frameworks/EventHandlersFactory.js +28 -56
  76. package/es/platform/components/form-connected/frameworks/FormConnectedFactory.js +1 -5
  77. package/es/platform/components/form-connected/frameworks/FormConnectedView.js +3 -1
  78. package/es/platform/data-source/http-template/deleteRecords.js +1 -1
  79. package/es/platform/data-source/http-template/fetchValidationRules.js +2 -1
  80. package/es/platform/data-source/http-template/moveToTrash.js +28 -0
  81. package/es/platform/data-source/index.js +2 -0
  82. package/es/platform/data-source/utils/validation-rules/FieldConditions.js +167 -0
  83. package/es/platform/data-source/utils/validation-rules/TransFormValidationRules.js +93 -0
  84. package/es/platform/zdata-source/applications/usecases/SuccessUseCase.js +1 -1
  85. package/es/platform/zform/adapters/controllers/FieldBlurController.js +26 -0
  86. package/es/platform/zform/adapters/controllers/MyFromSuccessController.js +8 -2
  87. package/es/platform/zform/adapters/controllers/SubmitValidationCompletedController.js +21 -0
  88. package/es/platform/zform/adapters/controllers/ValidateFieldRequestController.js +10 -5
  89. package/es/platform/zform/adapters/controllers/ValidationRulesExecutionResultController.js +23 -0
  90. package/es/platform/zform/adapters/controllers/ValidationRulesRequestController.js +2 -4
  91. package/es/platform/zform/adapters/controllers/ValidationRulesSuccessController.js +2 -4
  92. package/es/platform/zform/adapters/gateway/Service.js +15 -7
  93. package/es/platform/zform/adapters/presenter/FormTranslator.js +28 -3
  94. package/es/platform/zform/adapters/presenter/translators/SectionTranslator.js +54 -3
  95. package/es/platform/zform/adapters/presenter/translators/fields/BooleanFieldTranslator.js +7 -3
  96. package/es/platform/zform/adapters/presenter/translators/fields/CurrencyFieldTranslator.js +5 -9
  97. package/es/platform/zform/adapters/presenter/translators/fields/DateFieldTranslator.js +7 -3
  98. package/es/platform/zform/adapters/presenter/translators/fields/DateTimeFieldTranslator.js +7 -3
  99. package/es/platform/zform/adapters/presenter/translators/fields/DecimalFieldTranslator.js +6 -9
  100. package/es/platform/zform/adapters/presenter/translators/fields/EmailFieldTranslator.js +6 -9
  101. package/es/platform/zform/adapters/presenter/translators/fields/LookUpFieldTranslator.js +5 -9
  102. package/es/platform/zform/adapters/presenter/translators/fields/MultiselectFieldTranslator.js +6 -3
  103. package/es/platform/zform/adapters/presenter/translators/fields/NumberFieldTranslator.js +6 -9
  104. package/es/platform/zform/adapters/presenter/translators/fields/PercentageFieldTranslator.js +6 -9
  105. package/es/platform/zform/adapters/presenter/translators/fields/PhoneFieldTranslator.js +6 -9
  106. package/es/platform/zform/adapters/presenter/translators/fields/PicklistFieldTranslator.js +6 -3
  107. package/es/platform/zform/adapters/presenter/translators/fields/TextAreaFieldTranslator.js +5 -9
  108. package/es/platform/zform/adapters/presenter/translators/fields/TextFieldTranslator.js +8 -8
  109. package/es/platform/zform/adapters/presenter/translators/fields/URLFieldTranslator.js +6 -9
  110. package/es/platform/zform/adapters/presenter/utils/DefaultClientActions.js +92 -22
  111. package/es/platform/zform/applications/usecases/AbstractUseCase.js +3 -1
  112. package/es/platform/zform/applications/usecases/FieldBlurUseCase.js +39 -0
  113. package/es/platform/zform/applications/usecases/FieldValueChangeRequestUseCase.js +9 -13
  114. package/es/platform/zform/applications/usecases/FocusFieldUseCase.js +19 -0
  115. package/es/platform/zform/applications/usecases/FormSubmitUseCase.js +19 -38
  116. package/es/platform/zform/applications/usecases/GetFieldErrorMessageUseCase.js +16 -0
  117. package/es/platform/zform/applications/usecases/InsertValidationRuleSuccessUseCase.js +22 -0
  118. package/es/platform/zform/applications/usecases/MyFormSuccessUseCase.js +63 -13
  119. package/es/platform/zform/applications/usecases/MyLayoutSuccessUseCase.js +4 -33
  120. package/es/platform/zform/applications/usecases/SetFieldErrorMessageUseCase.js +4 -4
  121. package/es/platform/zform/applications/usecases/SetFieldValueUseCase.js +4 -21
  122. package/es/platform/zform/applications/usecases/SetFieldsValuesUseCase.js +4 -26
  123. package/es/platform/zform/applications/usecases/SubmitValidationCompletedUseCase.js +62 -0
  124. package/es/platform/zform/applications/usecases/ValidateFieldUseCase.js +33 -0
  125. package/es/platform/zform/applications/usecases/ValidationRulesExecutionResultUseCase.js +23 -0
  126. package/es/platform/zform/domain/ZField.js +20 -1
  127. package/es/platform/zform/domain/ZForm.js +114 -45
  128. package/es/platform/zform/domain/interfaces/IZForm.js +5 -1
  129. package/es/platform/zform/domain/interfaces/ValidationConditions.js +142 -0
  130. package/es/platform/zform/frameworks/ui/EventHandlerFactory.js +22 -143
  131. package/es/platform/zform/frameworks/ui/ZFormBehaviourFactory.js +4 -9
  132. package/es/platform/zform/frameworks/validation-rules/DefaultCustomValidators.js +340 -0
  133. package/es/platform/zform/frameworks/validation-rules/Validator.js +98 -16
  134. package/es/platform/zform/frameworks/validation-rules/formUtils.js +7 -0
  135. package/es/platform/zform/frameworks/validation-rules/localization_utils.js +15 -0
  136. package/es/platform/zform/frameworks/validation-rules/utils.js +402 -351
  137. package/es/platform/zform/frameworks/validation-rules/validationRules.js +80 -79
  138. package/es/platform/zlist/domain/entities/List.js +2 -1
  139. package/package.json +4 -4
  140. package/es/bc/field-validation/Constants.js +0 -4
  141. package/es/bc/field-validation/EventHandlers.js +0 -1
  142. package/es/bc/field-validation/Events.js +0 -106
  143. package/es/bc/field-validation/FieldTypes.js +0 -20
  144. package/es/bc/field-validation/Properties.js +0 -11
  145. package/es/bc/field-validation/index.js +0 -5
  146. package/es/cc/ephi-tag/Properties.js +0 -1
  147. package/es/cc/ephi-tag/index.js +0 -1
  148. package/es/cc/info-icon/Properties.js +0 -10
  149. package/es/cc/info-icon/index.js +0 -1
  150. package/es/library/behaviours/field-validation/adapters/controllers/AbstractController.js +0 -9
  151. package/es/library/behaviours/field-validation/adapters/controllers/ValidateFieldController.js +0 -32
  152. package/es/library/behaviours/field-validation/adapters/controllers/ValidateFieldsController.js +0 -31
  153. package/es/library/behaviours/field-validation/adapters/gateway/Repository.js +0 -23
  154. package/es/library/behaviours/field-validation/adapters/gateway/Service.js +0 -18
  155. package/es/library/behaviours/field-validation/applications/interfaces/input/FieldData.js +0 -17
  156. package/es/library/behaviours/field-validation/applications/usecases/AbstractUseCase.js +0 -15
  157. package/es/library/behaviours/field-validation/applications/usecases/ValidateField.js +0 -29
  158. package/es/library/behaviours/field-validation/applications/usecases/ValidateFields.js +0 -28
  159. package/es/library/behaviours/field-validation/domain/FieldValidation.js +0 -94
  160. package/es/library/behaviours/field-validation/domain/field-vise-validations/BooleanValidation.js +0 -28
  161. package/es/library/behaviours/field-validation/domain/field-vise-validations/CurrencyValidation.js +0 -49
  162. package/es/library/behaviours/field-validation/domain/field-vise-validations/DateTimeValidation.js +0 -24
  163. package/es/library/behaviours/field-validation/domain/field-vise-validations/DateValidation.js +0 -24
  164. package/es/library/behaviours/field-validation/domain/field-vise-validations/DecimalValidation.js +0 -49
  165. package/es/library/behaviours/field-validation/domain/field-vise-validations/EmailValidation.js +0 -28
  166. package/es/library/behaviours/field-validation/domain/field-vise-validations/IntegerValidation.js +0 -39
  167. package/es/library/behaviours/field-validation/domain/field-vise-validations/LookUpValidation.js +0 -24
  168. package/es/library/behaviours/field-validation/domain/field-vise-validations/MultiSelectValidation.js +0 -26
  169. package/es/library/behaviours/field-validation/domain/field-vise-validations/PercentValidation.js +0 -28
  170. package/es/library/behaviours/field-validation/domain/field-vise-validations/PhoneValidation.js +0 -39
  171. package/es/library/behaviours/field-validation/domain/field-vise-validations/PicklistValidation.js +0 -24
  172. package/es/library/behaviours/field-validation/domain/field-vise-validations/TextAreaValidation.js +0 -39
  173. package/es/library/behaviours/field-validation/domain/field-vise-validations/TextBoxValidation.js +0 -39
  174. package/es/library/behaviours/field-validation/domain/field-vise-validations/URLValidation.js +0 -28
  175. package/es/library/behaviours/field-validation/domain/interfaces/FieldTypes.js +0 -20
  176. package/es/library/behaviours/field-validation/domain/interfaces/IFieldValidation.js +0 -1
  177. package/es/library/behaviours/field-validation/domain/interfaces/IFieldViseValidation.js +0 -1
  178. package/es/library/behaviours/field-validation/domain/interfaces/ValidationResult.js +0 -1
  179. package/es/library/behaviours/field-validation/domain/interfaces/ValidationsArray.js +0 -1
  180. package/es/library/behaviours/field-validation/domain/interfaces/ValidationsEnum.js +0 -22
  181. package/es/library/behaviours/field-validation/domain/interfaces/ValidationsMap.js +0 -1
  182. package/es/library/behaviours/field-validation/domain/interfaces/fields/IBooleanField.js +0 -0
  183. package/es/library/behaviours/field-validation/domain/interfaces/fields/ICurrencyField.js +0 -0
  184. package/es/library/behaviours/field-validation/domain/interfaces/fields/IDateField.js +0 -0
  185. package/es/library/behaviours/field-validation/domain/interfaces/fields/IDateTimeField.js +0 -0
  186. package/es/library/behaviours/field-validation/domain/interfaces/fields/IDecimalField.js +0 -0
  187. package/es/library/behaviours/field-validation/domain/interfaces/fields/IEmailField.js +0 -0
  188. package/es/library/behaviours/field-validation/domain/interfaces/fields/IIntegerField.js +0 -0
  189. package/es/library/behaviours/field-validation/domain/interfaces/fields/ILookUpField.js +0 -0
  190. package/es/library/behaviours/field-validation/domain/interfaces/fields/IMultiSelectField.js +0 -0
  191. package/es/library/behaviours/field-validation/domain/interfaces/fields/IPercentField.js +0 -0
  192. package/es/library/behaviours/field-validation/domain/interfaces/fields/IPhoneField.js +0 -0
  193. package/es/library/behaviours/field-validation/domain/interfaces/fields/IPicklistField.js +0 -0
  194. package/es/library/behaviours/field-validation/domain/interfaces/fields/ITextAreaField.js +0 -0
  195. package/es/library/behaviours/field-validation/domain/interfaces/fields/ITextBoxField.js +0 -0
  196. package/es/library/behaviours/field-validation/domain/interfaces/fields/IURLField.js +0 -0
  197. package/es/library/behaviours/field-validation/frameworks/ui/EventHandlerFactory.js +0 -23
  198. package/es/library/behaviours/field-validation/frameworks/ui/FieldValidationBehaviourFactory.js +0 -27
  199. package/es/library/behaviours/field-validation/frameworks/ui/__tests__/BooleanFieldValidation.test.js +0 -137
  200. package/es/library/behaviours/field-validation/frameworks/ui/__tests__/CurrencyFieldValidation.test.js +0 -228
  201. package/es/library/behaviours/field-validation/frameworks/ui/__tests__/DateFieldValidation.test.js +0 -108
  202. package/es/library/behaviours/field-validation/frameworks/ui/__tests__/DateTimeFieldValidation.test.js +0 -108
  203. package/es/library/behaviours/field-validation/frameworks/ui/__tests__/DecimalFieldValidation.test.js +0 -257
  204. package/es/library/behaviours/field-validation/frameworks/ui/__tests__/EmailFieldValidation.test.js +0 -139
  205. package/es/library/behaviours/field-validation/frameworks/ui/__tests__/FieldValidationBehaviour.test.js +0 -171
  206. package/es/library/behaviours/field-validation/frameworks/ui/__tests__/IntegerFieldValidation.test.js +0 -168
  207. package/es/library/behaviours/field-validation/frameworks/ui/__tests__/LookUpFieldValidation.test.js +0 -108
  208. package/es/library/behaviours/field-validation/frameworks/ui/__tests__/MultiSelectFieldValidation.test.js +0 -79
  209. package/es/library/behaviours/field-validation/frameworks/ui/__tests__/PercentFieldValidation.test.js +0 -108
  210. package/es/library/behaviours/field-validation/frameworks/ui/__tests__/PhoneFieldValidation.test.js +0 -168
  211. package/es/library/behaviours/field-validation/frameworks/ui/__tests__/PicklistFieldValidation.test.js +0 -79
  212. package/es/library/behaviours/field-validation/frameworks/ui/__tests__/TextAreaFieldValidation.test.js +0 -170
  213. package/es/library/behaviours/field-validation/frameworks/ui/__tests__/TextBoxFieldValidation.test.js +0 -170
  214. package/es/library/behaviours/field-validation/frameworks/ui/__tests__/URLFieldValidation.test.js +0 -108
  215. package/es/library/behaviours/field-validation/frameworks/utils/FormBasicValidationAdaptor.js +0 -228
  216. package/es/library/behaviours/field-validation/frameworks/utils/__tests__/formValidate.test.js +0 -284
  217. package/es/library/behaviours/field-validation/frameworks/utils/formValidate.js +0 -334
  218. package/es/library/dot/components/form-fields/checkbox/adapters/presenter/TransformState.js +0 -22
  219. package/es/library/dot/components/form-fields/currency/adapters/presenter/TransformState.js +0 -81
  220. package/es/library/dot/components/form-fields/date/adapters/presenter/TransformState.js +0 -22
  221. package/es/library/dot/components/form-fields/datetime/adapters/presenter/TransformState.js +0 -22
  222. package/es/library/dot/components/form-fields/decimal/adapters/presenter/TransformState.js +0 -31
  223. package/es/library/dot/components/form-fields/email/adapters/presenter/TransformState.js +0 -23
  224. package/es/library/dot/components/form-fields/ephi-tag/frameworks/ui/EPHITag.js +0 -10
  225. package/es/library/dot/components/form-fields/ephi-tag/frameworks/ui/EPHITagView.js +0 -21
  226. package/es/library/dot/components/form-fields/info-icon/frameworks/ui/InfoIcon.js +0 -10
  227. package/es/library/dot/components/form-fields/info-icon/frameworks/ui/InfoIconView.js +0 -21
  228. package/es/library/dot/components/form-fields/info-icon/frameworks/ui/css/InfoIcon.module.css +0 -3
  229. package/es/library/dot/components/form-fields/multi-select/adapters/presenter/TransformState.js +0 -31
  230. package/es/library/dot/components/form-fields/number/adapters/presenter/TransformState.js +0 -31
  231. package/es/library/dot/components/form-fields/percentage/adapters/presenter/TransformState.js +0 -31
  232. package/es/library/dot/components/form-fields/phone/adapters/presenter/TransformState.js +0 -31
  233. package/es/library/dot/components/form-fields/pick-list/adapters/presenter/TransformState.js +0 -23
  234. package/es/library/dot/components/form-fields/textarea/adapters/presenter/TransformState.js +0 -23
  235. package/es/library/dot/components/form-fields/textbox/adapters/presenter/TransformState.js +0 -32
  236. package/es/library/dot/components/form-fields/url/adapters/presenter/TransformState.js +0 -31
  237. package/es/platform/zform/adapters/controllers/ValidateErrorMessageController.js +0 -22
  238. package/es/platform/zform/applications/interfaces/input/ValidateErrorMessageInputModel.js +0 -1
  239. package/es/platform/zform/applications/usecases/ValidateErrorMessageUseCase.js +0 -33
  240. package/es/platform/zform/applications/usecases/ValidateFieldRequestUseCase.js +0 -56
  241. /package/es/{library/behaviours/field-validation/applications/interfaces/UseCaseDependencies.js → platform/zform/applications/interfaces/input/FieldBlurUsecaseInputModel.js} +0 -0
  242. /package/es/{library/behaviours/field-validation/applications/interfaces/gateways/IRepository.js → platform/zform/applications/interfaces/input/FocusFieldUseCaseInputModel.js} +0 -0
  243. /package/es/{library/behaviours/field-validation/applications/interfaces/gateways/IService.js → platform/zform/applications/interfaces/input/GetFieldErrorMessageInputModel.js} +0 -0
  244. /package/es/{library/behaviours/field-validation/applications/interfaces/input/FieldValidationInputModel.js → platform/zform/applications/interfaces/input/InsertValidationRuleInputModel.js} +0 -0
  245. /package/es/{library/behaviours/field-validation/domain/interfaces/IField.js → platform/zform/applications/interfaces/input/SubmitValidationCompletedUsecaseInputModel.js} +0 -0
  246. /package/es/{library/behaviours/field-validation/applications/interfaces/input/ValidateFieldsInputModel.js → platform/zform/applications/interfaces/input/ValidateFieldUseCaseInputModel.js} +0 -0
@@ -1,284 +0,0 @@
1
- // import { fieldValidate, validator } from '../../utils/fieldValidate';
2
- import { fieldValidate } from "../formValidate";
3
- describe('fieldValidate', () => {
4
- test('Validate empty string', () => {
5
- const fieldDetails = {
6
- type: 'Text',
7
- isMandatory: true
8
- };
9
- const result = fieldValidate('', fieldDetails);
10
- expect(result.isError).toBe(true);
11
- expect(result.message).toBe('crm.field.empty.check');
12
- });
13
- test('Validate non-empty string', () => {
14
- const fieldDetails = {
15
- type: 'Text',
16
- isMandatory: true
17
- };
18
- const result = fieldValidate('test', fieldDetails);
19
- expect(result.isError).toBe(false);
20
- });
21
- test('Validate empty array', () => {
22
- const fieldDetails = {
23
- type: 'Multiselect',
24
- isMandatory: true
25
- };
26
- const result = fieldValidate([], fieldDetails);
27
- expect(result.isError).toBe(true);
28
- expect(result.message).toBe('crm.field.empty.check');
29
- });
30
- test('Validate non-empty array', () => {
31
- const fieldDetails = {
32
- type: 'Multiselect',
33
- isMandatory: true
34
- };
35
- const result = fieldValidate(['item'], fieldDetails);
36
- expect(result.isError).toBe(false);
37
- });
38
- test('Validate empty object', () => {
39
- const fieldDetails = {
40
- type: 'Object',
41
- isMandatory: true
42
- };
43
- const result = fieldValidate({}, fieldDetails);
44
- expect(result.isError).toBe(true);
45
- expect(result.message).toBe('crm.field.empty.check');
46
- });
47
- test('Validate non-empty object', () => {
48
- const fieldDetails = {
49
- type: 'Object',
50
- isMandatory: true
51
- };
52
- const result = fieldValidate({
53
- key: 'value'
54
- }, fieldDetails);
55
- expect(result.isError).toBe(false);
56
- });
57
- test('Validate valid email', () => {
58
- const fieldDetails = {
59
- type: 'Email'
60
- };
61
- const result = fieldValidate('test@example.com', fieldDetails);
62
- expect(result.isError).toBe(false);
63
- });
64
- test('Validate invalid email', () => {
65
- const fieldDetails = {
66
- type: 'Email'
67
- };
68
- const result = fieldValidate('invalid-email', fieldDetails);
69
- expect(result.isError).toBe(true);
70
- expect(result.message).toBe('crm.field.valid.check');
71
- });
72
- test('Validate valid phone number', () => {
73
- const fieldDetails = {
74
- type: 'Phone'
75
- };
76
- const result = fieldValidate('+1234567890', fieldDetails);
77
- expect(result.isError).toBe(false);
78
- });
79
- test('Validate invalid phone number', () => {
80
- const fieldDetails = {
81
- type: 'Phone'
82
- };
83
- const result = fieldValidate('***-***-****', fieldDetails);
84
- expect(result.isError).toBe(true);
85
- expect(result.message).toBe('crm.field.valid.check');
86
- });
87
- test('Validate valid integer', () => {
88
- const fieldDetails = {
89
- type: 'Number'
90
- };
91
- const result = fieldValidate(123, fieldDetails);
92
- expect(result.isError).toBe(false);
93
- });
94
- test('Validate invalid integer', () => {
95
- const fieldDetails = {
96
- type: 'Number'
97
- };
98
- const result = fieldValidate('123.45', fieldDetails);
99
- expect(result.isError).toBe(true);
100
- expect(result.message).toBe('crm.field.valid.check');
101
- });
102
- test('Validate valid decimal', () => {
103
- const fieldDetails = {
104
- type: 'Decimal',
105
- decimalPlaces: 2
106
- }; // NOTE: as per formValidate.js, the decimalPlaces is must for Decimal Field
107
-
108
- const result = fieldValidate(123.45, fieldDetails);
109
- expect(result.isError).toBe(false);
110
- });
111
- test('Validate invalid decimal', () => {
112
- const fieldDetails = {
113
- type: 'Decimal'
114
- };
115
- const result = fieldValidate('invalid-decimal', fieldDetails);
116
- expect(result.isError).toBe(true);
117
- expect(result.message).toBe('crm.field.valid.check');
118
- });
119
- test('Validate valid date', () => {
120
- const fieldDetails = {
121
- type: 'Date'
122
- };
123
- const result = fieldValidate('2025-02-11T00:00:00Z', fieldDetails);
124
- expect(result.isError).toBe(false);
125
- });
126
- test.skip('Validate invalid date', () => {
127
- const fieldDetails = {
128
- type: 'Date'
129
- };
130
- const result = fieldValidate('invalid-date', fieldDetails);
131
- expect(result.isError).toBe(true);
132
- expect(result.message).toBe('crm.field.valid.check');
133
- });
134
- test('Validate mandatory field', () => {
135
- const fieldDetails = {
136
- type: 'Text',
137
- isMandatory: true
138
- };
139
- const result = fieldValidate('', fieldDetails);
140
- expect(result.isError).toBe(true);
141
- expect(result.message).toBe('crm.field.empty.check');
142
- });
143
- test('Validate field with max length', () => {
144
- const fieldDetails = {
145
- type: 'Text',
146
- maxLength: 3
147
- };
148
- const result = fieldValidate('test', fieldDetails);
149
- expect(result.isError).toBe(true);
150
- expect(result.message).toBe('support.form.more.than.max.length');
151
- });
152
- test('Validate field with valid length', () => {
153
- const fieldDetails = {
154
- type: 'Text',
155
- maxLength: 5
156
- };
157
- const result = fieldValidate('test', fieldDetails);
158
- expect(result.isError).toBe(false);
159
- });
160
- test('Validate valid decimal places', () => {
161
- const fieldDetails = {
162
- type: 'Decimal',
163
- decimalPlaces: 2
164
- };
165
- const result = fieldValidate(123.45, fieldDetails);
166
- expect(result.isError).toBe(false);
167
- });
168
- test('Validate invalid decimal places', () => {
169
- const fieldDetails = {
170
- type: 'Decimal',
171
- decimalPlaces: 2
172
- };
173
- const result = fieldValidate(123.456, fieldDetails);
174
- expect(result.isError).toBe(true);
175
- expect(result.message).toBe('support.form.decimal.places.length.error.message');
176
- });
177
- test('Validate empty multi-select', () => {
178
- const fieldDetails = {
179
- type: 'Multiselect',
180
- isMandatory: true
181
- };
182
- const result = fieldValidate([], fieldDetails);
183
- expect(result.isError).toBe(true);
184
- expect(result.message).toBe('crm.field.empty.check');
185
- });
186
- test('Validate non-empty multi-select', () => {
187
- const fieldDetails = {
188
- type: 'Multiselect',
189
- isMandatory: true
190
- };
191
- const result = fieldValidate(['item'], fieldDetails);
192
- expect(result.isError).toBe(false);
193
- });
194
- test('Validate empty multi-select with -None- value', () => {
195
- const fieldDetails = {
196
- type: 'Multiselect',
197
- isMandatory: true
198
- };
199
- const result = fieldValidate(['-None-'], fieldDetails);
200
- expect(result.isError).toBe(true);
201
- expect(result.message).toBe('crm.field.empty.check');
202
- });
203
- test('Validate non-empty multi-select with -None- value', () => {
204
- const fieldDetails = {
205
- type: 'Multiselect',
206
- isMandatory: true
207
- };
208
- const result = fieldValidate(['item', '-None-'], fieldDetails);
209
- expect(result.isError).toBe(false);
210
- });
211
- test('Validate empty picklist', () => {
212
- const fieldDetails = {
213
- type: 'Picklist',
214
- isMandatory: true
215
- };
216
- const result = fieldValidate('', fieldDetails);
217
- expect(result.isError).toBe(true);
218
- expect(result.message).toBe('crm.field.empty.check');
219
- });
220
- test('Validate non-empty picklist', () => {
221
- const fieldDetails = {
222
- type: 'Picklist',
223
- isMandatory: true
224
- };
225
- const result = fieldValidate('item', fieldDetails);
226
- expect(result.isError).toBe(false);
227
- });
228
- test('Validate empty picklist with -None- value', () => {
229
- const fieldDetails = {
230
- type: 'Picklist',
231
- isMandatory: true
232
- };
233
- const result = fieldValidate('-None-', fieldDetails);
234
- expect(result.isError).toBe(true);
235
- expect(result.message).toBe('crm.field.empty.check');
236
- });
237
- test('Validate non-empty picklist with -None- value', () => {
238
- const fieldDetails = {
239
- type: 'Picklist',
240
- isMandatory: true
241
- };
242
- const result = fieldValidate('item', fieldDetails);
243
- expect(result.isError).toBe(false);
244
- });
245
- test('Validate empty boolean field', () => {
246
- const fieldDetails = {
247
- type: 'Boolean',
248
- isMandatory: true
249
- };
250
- const result = fieldValidate(false, fieldDetails);
251
- expect(result.isError).toBe(true);
252
- expect(result.message).toBe('crm.field.empty.check');
253
- });
254
- test('Validate valid website', () => {
255
- const fieldDetails = {
256
- type: 'URL'
257
- };
258
- const result = fieldValidate('htt' + 'p://example.com', fieldDetails);
259
- expect(result.isError).toBe(false);
260
- });
261
- test.skip('Validate invalid website', () => {
262
- const fieldDetails = {
263
- type: 'URL'
264
- };
265
- const result = fieldValidate('invalid-url', fieldDetails);
266
- expect(result.isError).toBe(true);
267
- expect(result.message).toBe('crm.field.valid.check');
268
- });
269
- test('Validate valid URL', () => {
270
- const fieldDetails = {
271
- type: 'URL'
272
- };
273
- const result = fieldValidate('htt' + 'p://example.com', fieldDetails);
274
- expect(result.isError).toBe(false);
275
- });
276
- test.skip('Validate invalid URL', () => {
277
- const fieldDetails = {
278
- type: 'URL'
279
- };
280
- const result = fieldValidate('invalid-url', fieldDetails);
281
- expect(result.isError).toBe(true);
282
- expect(result.message).toBe('crm.field.valid.check');
283
- });
284
- });
@@ -1,334 +0,0 @@
1
- /** Libraries * */
2
- // import { i18NProviderUtils } from '@zohodesk/i18n';
3
- const i18NProviderUtils = {
4
- getI18NValue(key, values) {
5
- return key;
6
- }
7
-
8
- };
9
- /** Methods * */
10
-
11
- const formatWebsiteUrl = url => {
12
- const whitelistedDomains = ['htt' + 'p://', 'htt' + 'ps://', 'ftp://', 'simplehelp://', 'dynamicsnav://'];
13
- const site = url.toLowerCase();
14
- const isValidWebsite = whitelistedDomains.some(domain => site.startsWith(domain));
15
-
16
- if (!isValidWebsite) {
17
- return `htt${''}p://${url}`;
18
- }
19
-
20
- return url;
21
- };
22
-
23
- function getNoneText() {
24
- const valueNoneText = '-None-';
25
- return {
26
- valueNoneText
27
- };
28
- } // let ticketFieldTypes = [
29
- // 'LookUp String',
30
- // 'Picklist String',
31
- // 'Multiselect Array',
32
- // 'Email String',
33
- // 'Text String',
34
- // 'Textarea String',
35
- // 'Date String',
36
- // 'DateTime String',
37
- // 'Boolean boolean',
38
- // 'URL String',
39
- // 'Phone phone',
40
- // 'Number Number',
41
- // 'Percent String',
42
- // 'Decimal String',
43
- // 'Currency String'
44
- // ];
45
-
46
-
47
- export const validator = {
48
- isEmpty(value) {
49
- const valueType = typeof value;
50
-
51
- if (valueType === 'string') {
52
- return this.isEmptyString(value);
53
- }
54
-
55
- if (Array.isArray(value)) {
56
- return this.isEmptyArr(value);
57
- }
58
-
59
- if (valueType === 'object') {
60
- return this.isEmptyObj(value);
61
- }
62
-
63
- if (valueType === 'boolean' || value) {
64
- return false;
65
- }
66
-
67
- return true;
68
- },
69
-
70
- isEmptyString(value) {
71
- if (value && typeof value === 'string' && value.trim()) {
72
- return false;
73
- }
74
-
75
- return true;
76
- },
77
-
78
- isEmptyArr(value) {
79
- if (Array.isArray(value) && value.length > 0) {
80
- return false;
81
- }
82
-
83
- return true;
84
- },
85
-
86
- isEmptyMultiSelect(value) {
87
- if (!this.isEmpty(value) && !(value.length <= 2 && value.every(val => this.isNoneValue(val)))) {
88
- return false;
89
- }
90
-
91
- return true;
92
- },
93
-
94
- isEmptyPicklist(value) {
95
- if (!this.isEmpty(value) && !this.isNoneValue(value)) {
96
- return false;
97
- }
98
-
99
- return true;
100
- },
101
-
102
- isEmptyObj(value) {
103
- for (const key in value) {
104
- if (value.hasOwnProperty(key)) {
105
- return false;
106
- }
107
- }
108
-
109
- return true;
110
- },
111
-
112
- isValidLength(value, length) {
113
- let type = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'max';
114
- const valueType = typeof value;
115
- const inpVal = valueType === 'number' ? value.toString() : value;
116
- const valueLength = (inpVal || '').length;
117
-
118
- if (valueType === 'string' || valueType === 'number' || Array.isArray(value)) {
119
- if (type === 'max' && valueLength > length) {
120
- return true;
121
- }
122
-
123
- if (type === 'min' && valueLength < length) {
124
- return true;
125
- }
126
-
127
- return false;
128
- }
129
-
130
- return false;
131
- },
132
-
133
- isMaxLength(value, argum) {
134
- return this.isValidLength(value, argum, 'max');
135
- },
136
-
137
- isMinLength(value, argum) {
138
- return this.isValidLength(value, argum, 'min');
139
- },
140
-
141
- isValidInteger(value) {
142
- const valueType = typeof value;
143
- const inpVal = valueType === 'number' ? value.toString() : value;
144
-
145
- if (inpVal) {
146
- const re = /(^-?\d\d*$)/;
147
-
148
- if (isNaN(inpVal) || inpVal.indexOf('.') !== -1 || !re.test(inpVal)) {
149
- return false;
150
- }
151
-
152
- return true;
153
- }
154
-
155
- return false;
156
- },
157
-
158
- isValidDecimal(value) {
159
- const valueType = typeof value;
160
- const inpVal = valueType === 'number' ? value.toString() : value;
161
- const restr = '^-?[0-9]\\d*(|\\.\\d[0-9]*)$';
162
- const re = new RegExp(restr);
163
-
164
- if (re.test(inpVal)) {
165
- return true;
166
- }
167
-
168
- return false;
169
- },
170
-
171
- isValidDecimalPlaces(value, decimalPlaces) {
172
- const valueType = typeof value;
173
- const inpVal = valueType === 'number' ? value.toString() : value;
174
- const restr = `^-?\\d*(|\\.\\d[0-9]{0,${decimalPlaces - 1}})$`;
175
- const re = new RegExp(restr);
176
-
177
- if (re.test(inpVal)) {
178
- return true;
179
- }
180
-
181
- return false;
182
- },
183
-
184
- isValidPhone(value) {
185
- // old validation
186
- const phoneRegEx = /^[0-9a-zA-Z_()\+\-\.\$@\?\,\:\'\/\!\s]+/;
187
- const match = value.match(phoneRegEx);
188
-
189
- if (!match || value !== match[0]) {
190
- return false;
191
- }
192
-
193
- return true; // let valueType = typeof value;
194
- // let inpVal = valueType === 'number' ? value.toString() : value;
195
- // let re = new RegExp(/^\+?\d+(-\d+)*$/);
196
- // if (re.test(inpVal)) {
197
- // return true;
198
- // }
199
- // return false;
200
- },
201
-
202
- isValidEmail(value, isReplyValidation) {
203
- const re = isReplyValidation ? /^[\wÀ-ž\+\#]([\wÀ-ž\-\.\+\'\&\/\#\~]*)@([\wÀ-ž\-\.]*)(\.[a-zA-ZÀ-ž]{2,22}(\.[a-zA-ZÀ-ž]{2}){0,2})$/ : /^[\wÀ-ž]([\wÀ-ž\-\.\+\'\&\/]*)@([\wÀ-ž\-\.]*)(\.[a-zA-ZÀ-ž]{2,22}(\.[a-zA-ZÀ-ž]{2}){0,2})$/; // swedish character support
204
- // let re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
205
-
206
- if (re.test(value)) {
207
- return true;
208
- }
209
-
210
- return false;
211
- },
212
-
213
- isValidWebsite(value) {
214
- const newValue = formatWebsiteUrl(value);
215
- const re = /^(ht|f)tp(s?):\/\/[-.\w]*(\/?)([a-zA-Z0-9\-\.\?,:'\/\\\+=&amp;%\$#_@]*)?$/;
216
-
217
- if (re.test(newValue)) {
218
- return true;
219
- }
220
-
221
- return false;
222
- },
223
-
224
- isValidDate(dateObj) {
225
- if (dateObj || dateObj instanceof Date && dateObj.getFullYear() > 1000) {
226
- return true;
227
- }
228
-
229
- return false;
230
- },
231
-
232
- isReminder(value) {
233
- const alerTypes = value.alertTypes || [];
234
- return !!alerTypes.length;
235
- },
236
-
237
- isNoneValue() {
238
- let value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
239
- const inpVal = value.trim && value.trim();
240
- const {
241
- valueNoneText: noneText
242
- } = getNoneText();
243
- const i18nNoneValue = i18NProviderUtils.getI18NValue('-None-');
244
-
245
- if (typeof inpVal === 'string' && (inpVal === noneText || inpVal === i18nNoneValue)) {
246
- return true;
247
- }
248
-
249
- return false;
250
- },
251
-
252
- isValidDuration() {
253
- let value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
254
- const {
255
- hoursSpent,
256
- minutesSpent
257
- } = value;
258
-
259
- if (hoursSpent < 24 && minutesSpent < 60) {
260
- return true;
261
- }
262
-
263
- return false;
264
- }
265
-
266
- };
267
- export function fieldValidate(value, fieldDetails) {
268
- const patternMapping = {
269
- LookUp: '',
270
- Email: 'isValidEmail',
271
- Number: 'isValidInteger',
272
- Text: '',
273
- // No Check
274
- Picklist: '',
275
- // No Check
276
- Textarea: '',
277
- // No Check
278
- DateTime: 'isValidDate',
279
- // valid date check or valid dateTime check
280
- Currency: 'isValidDecimal',
281
- // check only decimal & decimal places, server side convert rouding option
282
- Decimal: 'isValidDecimal',
283
- Percent: 'isValidDecimal',
284
- Boolean: '',
285
- // No Check
286
- Phone: 'isValidPhone',
287
- // URL: 'isValidWebsite',// remove for validation
288
- Date: 'isValidDate',
289
- Radio: '',
290
- // No Check
291
- Duration: '',
292
- // No Check
293
- Multiselect: '' // No Check
294
-
295
- };
296
- const emptyValidateMapping = {
297
- Multiselect: 'isEmptyMultiSelect',
298
- Picklist: 'isEmptyPicklist'
299
- };
300
- const {
301
- isMandatory,
302
- i18NLabel,
303
- type: fieldType,
304
- maxLength,
305
- decimalPlaces,
306
- apiName: fieldName,
307
- localizedValue = ''
308
- } = fieldDetails;
309
- const fieldLabel = localizedValue || i18NLabel;
310
- const validationMethod = patternMapping[fieldType];
311
- let isError = false;
312
- let message = '';
313
- const emptyValidationMethod = emptyValidateMapping[fieldType];
314
- const isEmptyValue = emptyValidationMethod ? validator[emptyValidationMethod](value) : validator.isEmpty(value);
315
-
316
- if (isMandatory && isEmptyValue || isMandatory && fieldType === 'Boolean' && (value === false || value === 'false')) {
317
- isError = true;
318
- message = i18NProviderUtils.getI18NValue('crm.field.empty.check', fieldLabel);
319
- } else if (maxLength && fieldType !== 'Boolean' && fieldType !== 'DateTime' && fieldType !== 'Date' && validator.isMaxLength(value, maxLength)) {
320
- isError = true;
321
- message = i18NProviderUtils.getI18NValue('support.form.more.than.max.length', [fieldLabel, maxLength]);
322
- } else if (!isEmptyValue && validationMethod && !validator[validationMethod](value)) {
323
- isError = true;
324
- message = i18NProviderUtils.getI18NValue('crm.field.valid.check', fieldLabel);
325
- } else if (!isEmptyValue && (fieldType === 'Currency' || fieldType === 'Decimal') && !validator.isValidDecimalPlaces(value, decimalPlaces)) {
326
- isError = true;
327
- message = i18NProviderUtils.getI18NValue('support.form.decimal.places.length.error.message', decimalPlaces);
328
- }
329
-
330
- return {
331
- isError,
332
- message
333
- };
334
- }
@@ -1,22 +0,0 @@
1
- export function TransformState(state) {
2
- const {
3
- tooltip
4
- } = state.properties;
5
- let actions = [];
6
-
7
- if (tooltip) {
8
- actions.push({
9
- type: 'InfoIcon',
10
- eventMappings: [],
11
- properties: {
12
- tooltip
13
- }
14
- });
15
- }
16
-
17
- return { ...state,
18
- viewModel: { ...state.properties,
19
- actions
20
- }
21
- };
22
- }