@zohodesk/library-platform 1.1.10-exp.1 → 1.1.10-exp.3

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 (209) hide show
  1. package/es/.DS_Store +0 -0
  2. package/es/bc/app-context/Properties.js +12 -2
  3. package/es/bc/sdk/ResourceNamesEnum.js +1 -0
  4. package/es/bc/zform/Constants.js +11 -1
  5. package/es/bc/zform/Properties.js +29 -33
  6. package/es/bc/zform/Symbol.js +1 -3
  7. package/es/bc/zlist/Properties.js +0 -51
  8. package/es/bc/zrecord/Constants.js +1 -0
  9. package/es/cc/fields/currency/Properties.js +2 -1
  10. package/es/cc/fields/field/Properties.js +14 -8
  11. package/es/cc/fields/lookup/Properties.js +34 -1
  12. package/es/cc/fields/text/Properties.js +0 -9
  13. package/es/cc/form/Properties.js +8 -0
  14. package/es/cc/form-connected/ExternalConstants.js +3 -0
  15. package/es/cc/form-connected/Properties.js +19 -11
  16. package/es/cc/table-connected/SdkContract.js +14 -0
  17. package/es/cc/table-connected/constants/Events.js +2 -1
  18. package/es/cc/table-list/row/Properties.js +8 -0
  19. package/es/index.js +13 -3
  20. package/es/library/analytics/Analytics.js +36 -0
  21. package/es/library/analytics/AnalyticsContract.js +13 -0
  22. package/es/library/analytics/index.js +2 -0
  23. package/es/library/custom-component/adapters/controllers/Controller.js +9 -0
  24. package/es/library/custom-component/adapters/gateways/event-manager/EventManager.js +4 -0
  25. package/es/library/custom-component/adapters/gateways/service/Service.js +2 -0
  26. package/es/library/custom-component/applications/entities-factory/ComponentFactory.js +12 -9
  27. package/es/library/custom-component/applications/usecases/DispatchUseCase.js +28 -5
  28. package/es/library/custom-component/applications/usecases/InitializeUseCase.js +5 -4
  29. package/es/library/custom-component/applications/usecases/MountUseCase.js +10 -6
  30. package/es/library/custom-component/applications/usecases/UnmountUseCase.js +6 -5
  31. package/es/library/custom-component/applications/usecases/UpdatePropertyUseCase.js +23 -18
  32. package/es/library/custom-component/applications/usecases/UpdateStateUseCase.js +4 -3
  33. package/es/library/custom-component/domain/entities/Behaviour.js +4 -0
  34. package/es/library/custom-component/domain/entities/Component.js +89 -83
  35. package/es/library/custom-component/domain/entities/Properties.js +10 -137
  36. package/es/library/custom-component/domain/entities/Property.js +29 -0
  37. package/es/library/custom-component/frameworks/json-schema-validator/Validator.js +65 -28
  38. package/es/library/custom-component/frameworks/ui/CreateCustomComponent.js +26 -13
  39. package/es/library/custom-component/frameworks/ui/DependencyFactory.js +1 -2
  40. package/es/library/dot/components/action-location/frameworks/ui/ActionComponentMapping.js +2 -1
  41. package/es/library/dot/components/form/adapters/presenter/TransformState.js +3 -1
  42. package/es/library/dot/components/form/frameworks/ui/DefaultComponentRegister.js +10 -2
  43. package/es/library/dot/components/form/frameworks/ui/Form.js +2 -0
  44. package/es/library/dot/components/form/frameworks/ui/FormView.js +8 -4
  45. package/es/library/dot/components/form/frameworks/ui/sub-components/Footer.js +7 -4
  46. package/es/library/dot/components/form/frameworks/ui/sub-components/Header.js +7 -4
  47. package/es/library/dot/components/form-fields/currency/frameworks/ui/Currency.js +3 -3
  48. package/es/library/dot/components/form-fields/lookup/frameworks/ui/Lookup.js +1 -1
  49. package/es/library/dot/components/section/frameworks/ui/SectionView.js +12 -4
  50. package/es/library/dot/components/section/frameworks/ui/css/Section.module.css +3 -0
  51. package/es/library/dot/components/table-list/frameworks/ui/TableListView.js +14 -7
  52. package/es/library/dot/components/table-list/frameworks/ui/sub-components/ErrorState.js +4 -7
  53. package/es/library/dot/components/table-list/frameworks/ui/sub-components/Header.js +9 -6
  54. package/es/library/dot/components/table-list/frameworks/ui/sub-components/Rows.js +6 -4
  55. package/es/library/dot/components/table-list/frameworks/ui/sub-components/header/HeaderData.js +6 -4
  56. package/es/library/dot/components/table-list/frameworks/ui/sub-components/header/Headers.js +4 -2
  57. package/es/library/dot/components/table-list/frameworks/ui/sub-components/header/MassAction.js +6 -4
  58. package/es/library/dot/components/table-list/frameworks/ui/sub-components/row/Columns.js +4 -2
  59. package/es/library/dot/components/table-list/frameworks/ui/sub-components/row/Row.js +14 -7
  60. package/es/library/dot/components/table-list/frameworks/ui/sub-components/row/RowActions.js +5 -4
  61. package/es/library/dot/components/table-list/frameworks/ui/sub-components/row/RowData.js +5 -3
  62. package/es/library/dot/components/table-list/frameworks/ui/sub-components/row/RowSelection.js +32 -7
  63. package/es/library/dot/legacy-to-new-arch/breadcrumb/frameworks/ui/sub-components/BreadcrumbItem.js +1 -1
  64. package/es/library/dot/legacy-to-new-arch/button/frameworks/ui/ButtonView.js +2 -2
  65. package/es/library/dot/legacy-to-new-arch/date/frameworks/ui/DateView.js +4 -4
  66. package/es/library/dot/legacy-to-new-arch/label/frameworks/ui/LabelView.js +2 -2
  67. package/es/library/dot/legacy-to-new-arch/multi-select/frameworks/ui/MultiSelectView.js +2 -2
  68. package/es/library/dot/legacy-to-new-arch/select/frameworks/ui/SelectView.js +2 -2
  69. package/es/library/dot/legacy-to-new-arch/table-field-components/index.js +1 -0
  70. package/es/library/dot/legacy-to-new-arch/text/frameworks/ui/TextView.js +1 -1
  71. package/es/library/dot/legacy-to-new-arch/text-area/frameworks/ui/TextAreaView.js +2 -2
  72. package/es/library/dot/legacy-to-new-arch/textbox/frameworks/ui/TextBoxView.js +2 -2
  73. package/es/platform/.DS_Store +0 -0
  74. package/es/platform/client-actions/behaviour/zclient-actions/applications/usecases/SetClientActionsUseCase.js +6 -1
  75. package/es/platform/client-actions/behaviour/zclient-actions/domain/entities/ClientActionManager.js +58 -19
  76. package/es/platform/client-actions/behaviour/zclient-actions/domain/entities/ClientActions.js +8 -8
  77. package/es/platform/client-actions/behaviour/zclient-actions/domain/entities/interfaces/IClientActionFetchResponse.js +0 -0
  78. package/es/platform/client-actions/cc/action-event-mediator/Properties.js +75 -3
  79. package/es/platform/client-actions/components/action-event-mediator/adapters/controllers/MountController.js +1 -1
  80. package/es/platform/client-actions/components/action-event-mediator/adapters/controllers/PropertiesChangeController.js +2 -2
  81. package/es/platform/client-actions/components/action-event-mediator/adapters/gateway/Repository.js +2 -2
  82. package/es/platform/client-actions/components/action-event-mediator/applications/usecases/InitializeUseCase.js +15 -1
  83. package/es/platform/client-actions/components/action-event-mediator/applications/usecases/PropertiesChangeUseCase.js +3 -3
  84. package/es/platform/client-actions/components/action-event-mediator/domain/entities/ActionEventMediatorEntity.js +41 -24
  85. package/es/platform/client-actions/components/action-event-mediator/frameworks/ui/ActionEventMediator.js +3 -1
  86. package/es/platform/client-actions/components/action-event-mediator/frameworks/ui/ActionEventMediatorView.js +31 -14
  87. package/es/platform/client-actions/components/action-event-mediator/frameworks/ui/ClientActionsAdapter.js +2 -48
  88. package/es/platform/client-actions/components/action-event-mediator/frameworks/ui/EventHandlersFactory.js +3 -11
  89. package/es/platform/client-actions/components/row-actions-renderer/frameworks/ui/AdaptiveRowActions/AdaptiveRowActionsRenderer.js +12 -0
  90. package/es/platform/client-actions/components/row-actions-renderer/frameworks/ui/AdaptiveRowActions/AdaptiveRowActionsRendererView.js +42 -0
  91. package/es/platform/client-actions/components/row-actions-renderer/frameworks/ui/MoreActions/MoreActionsRenderer.js +10 -0
  92. package/es/platform/client-actions/components/row-actions-renderer/frameworks/ui/MoreActions/MoreActionsRendererView.js +79 -0
  93. package/es/platform/client-actions/components/row-actions-renderer/frameworks/ui/RowActions/RowActionsRenderer.js +12 -0
  94. package/es/platform/client-actions/components/row-actions-renderer/frameworks/ui/RowActions/RowActionsRenderer.module.css +19 -0
  95. package/es/platform/client-actions/components/row-actions-renderer/frameworks/ui/RowActions/RowActionsRendererView.js +37 -0
  96. package/es/platform/client-actions/translators/client-actions-translator/index.js +14 -2
  97. package/es/platform/client-actions/translators/condition-resolver/index.js +6 -1
  98. package/es/platform/client-scripts/bc/zclient-scripts-execution/Constants.js +11 -0
  99. package/es/platform/client-scripts/bc/zclient-scripts-execution/EventHandlers.js +1 -0
  100. package/es/platform/client-scripts/bc/zclient-scripts-fetch/Constants.js +11 -0
  101. package/es/platform/client-scripts/bc/zclient-scripts-fetch/EventHandlers.js +1 -0
  102. package/es/platform/{app-context-behaviour → client-scripts/behaviour/zclient-scripts-execution}/adapters/controllers/AbstractController.js +2 -1
  103. package/es/platform/client-scripts/behaviour/zclient-scripts-execution/adapters/controllers/ClientScriptExecutionController.js +10 -0
  104. package/es/platform/client-scripts/behaviour/zclient-scripts-execution/adapters/controllers/SetClientScriptsMappingController.js +10 -0
  105. package/es/platform/client-scripts/behaviour/zclient-scripts-execution/adapters/gateways/Repository.js +24 -0
  106. package/es/platform/client-scripts/behaviour/zclient-scripts-execution/adapters/gateways/Service.js +9 -0
  107. package/es/platform/client-scripts/behaviour/zclient-scripts-execution/adapters/presenters/Presenter.js +21 -0
  108. package/es/platform/client-scripts/behaviour/zclient-scripts-execution/applications/interfaces/gateways/IService.js +0 -0
  109. package/es/platform/client-scripts/behaviour/zclient-scripts-execution/applications/usecases/AbstractUseCase.js +15 -0
  110. package/es/platform/client-scripts/behaviour/zclient-scripts-execution/applications/usecases/ExecuteClientScriptsUseCase.js +23 -0
  111. package/es/platform/client-scripts/behaviour/zclient-scripts-execution/applications/usecases/SetClientScriptsMappingUseCase.js +16 -0
  112. package/es/platform/client-scripts/behaviour/zclient-scripts-execution/domain/entities/ClientScriptExecutor.js +142 -0
  113. package/es/platform/client-scripts/behaviour/zclient-scripts-execution/domain/entities/types/ClientScriptExectionTypeDefintions.js +7 -0
  114. package/es/platform/client-scripts/behaviour/zclient-scripts-execution/frameworks/ClientScriptsExecutionBehaviourFactory.js +12 -0
  115. package/es/platform/client-scripts/behaviour/zclient-scripts-execution/frameworks/ClientScriptsExecutionHandlersFactory.js +30 -0
  116. package/es/platform/client-scripts/behaviour/zclient-scripts-execution/frameworks/ClientScriptsUtils.js +25 -0
  117. package/es/platform/client-scripts/behaviour/zclient-scripts-fetch/adapters/controllers/AbstractController.js +8 -0
  118. package/es/platform/client-scripts/behaviour/zclient-scripts-fetch/adapters/controllers/FetchClientScriptsController.js +27 -0
  119. package/es/platform/client-scripts/behaviour/zclient-scripts-fetch/adapters/controllers/FetchClientScriptsFailureController.js +28 -0
  120. package/es/platform/client-scripts/behaviour/zclient-scripts-fetch/adapters/controllers/FetchClientScriptsNoContentController.js +23 -0
  121. package/es/platform/client-scripts/behaviour/zclient-scripts-fetch/adapters/controllers/FetchClientScriptsStopController.js +21 -0
  122. package/es/platform/client-scripts/behaviour/zclient-scripts-fetch/adapters/controllers/FetchClientScriptsSuccessController.js +28 -0
  123. package/es/platform/client-scripts/behaviour/zclient-scripts-fetch/adapters/controllers/MountController.js +22 -0
  124. package/es/platform/client-scripts/behaviour/zclient-scripts-fetch/adapters/controllers/SetClientScriptsController.js +24 -0
  125. package/es/platform/client-scripts/behaviour/zclient-scripts-fetch/adapters/gateways/Repository.js +22 -0
  126. package/es/platform/client-scripts/behaviour/zclient-scripts-fetch/adapters/gateways/Service.js +19 -0
  127. package/es/platform/client-scripts/behaviour/zclient-scripts-fetch/adapters/presenters/Presenter.js +16 -0
  128. package/es/platform/client-scripts/behaviour/zclient-scripts-fetch/applications/entities-factory/ClientScriptsFactory.js +11 -0
  129. package/es/platform/client-scripts/behaviour/zclient-scripts-fetch/applications/entities-factory/ClientScriptsManagerFactory.js +10 -0
  130. package/es/platform/client-scripts/behaviour/zclient-scripts-fetch/applications/interfaces/gateways/IService.js +0 -0
  131. package/es/platform/client-scripts/behaviour/zclient-scripts-fetch/applications/usecases/AbstractUseCase.js +17 -0
  132. package/es/platform/client-scripts/behaviour/zclient-scripts-fetch/applications/usecases/FetchClientScriptUseCase.js +33 -0
  133. package/es/platform/client-scripts/behaviour/zclient-scripts-fetch/applications/usecases/FetchClientScriptsFailureUseCase.js +22 -0
  134. package/es/platform/client-scripts/behaviour/zclient-scripts-fetch/applications/usecases/FetchClientScriptsNoContentUseCase.js +27 -0
  135. package/es/platform/client-scripts/behaviour/zclient-scripts-fetch/applications/usecases/FetchClientScriptsStopUseCase.js +25 -0
  136. package/es/platform/client-scripts/behaviour/zclient-scripts-fetch/applications/usecases/FetchClientScriptsSuccessUseCase.js +22 -0
  137. package/es/platform/client-scripts/behaviour/zclient-scripts-fetch/applications/usecases/InitializeUseCase.js +17 -0
  138. package/es/platform/client-scripts/behaviour/zclient-scripts-fetch/applications/usecases/SetClientScriptsUseCase.js +21 -0
  139. package/es/platform/client-scripts/behaviour/zclient-scripts-fetch/domain/entities/ClientScript.js +24 -0
  140. package/es/platform/client-scripts/behaviour/zclient-scripts-fetch/domain/entities/ClientScripts.js +41 -0
  141. package/es/platform/client-scripts/behaviour/zclient-scripts-fetch/domain/entities/GetClientScriptsStrategy.js +44 -0
  142. package/es/platform/client-scripts/behaviour/zclient-scripts-fetch/domain/entities/State.js +1 -0
  143. package/es/platform/client-scripts/behaviour/zclient-scripts-fetch/domain/entities/interfaces/ClientScriptEventMappingState.js +1 -0
  144. package/es/platform/client-scripts/behaviour/zclient-scripts-fetch/domain/entities/interfaces/ClientScriptModel.js +1 -0
  145. package/es/platform/client-scripts/behaviour/zclient-scripts-fetch/domain/entities/interfaces/ClientScriptsModel.js +1 -0
  146. package/es/platform/client-scripts/behaviour/zclient-scripts-fetch/domain/entities/interfaces/IClientScript.js +0 -0
  147. package/es/platform/client-scripts/behaviour/zclient-scripts-fetch/domain/entities/interfaces/IClientScripts.js +0 -0
  148. package/es/platform/client-scripts/behaviour/zclient-scripts-fetch/domain/entities/interfaces/IEvent.js +1 -0
  149. package/es/platform/client-scripts/behaviour/zclient-scripts-fetch/frameworks/ClientScriptsBehaviourFactory.js +12 -0
  150. package/es/platform/client-scripts/behaviour/zclient-scripts-fetch/frameworks/ClientScriptsHandlersFactory.js +47 -0
  151. package/es/platform/client-scripts/cc/zclient-scripts-execution/clientScriptsSchema.js +15 -0
  152. package/es/platform/components/app/adapters/resources/AppResource.js +13 -3
  153. package/es/platform/components/form-connected/frameworks/FormConnectedFactory.js +7 -1
  154. package/es/platform/components/form-connected/frameworks/FormConnectedView.js +4 -2
  155. package/es/platform/components/table-connected/adapters/controllers/ColumnChooserUpdateController.js +7 -1
  156. package/es/platform/components/table-connected/adapters/resources/SmartTableResource.js +50 -0
  157. package/es/platform/components/table-connected/frameworks/EventHandlersFactory.js +216 -2
  158. package/es/platform/components/table-connected/frameworks/ListSdkFactory.js +4 -2
  159. package/es/platform/components/table-connected/frameworks/TableConnectedFactory.js +6 -2
  160. package/es/platform/data-source/http-template/getClientScripts.js +23 -0
  161. package/es/platform/data-source/http-template/updateSelectedFields.js +1 -1
  162. package/es/platform/data-source/index.js +14 -11
  163. package/es/platform/data-source/utils/validation-rules/TransFormValidationRules.js +1 -0
  164. package/es/platform/sdk/frameworks/Sdk.js +1 -1
  165. package/es/platform/zdata-source/domain/entities/APITemplate.js +2 -1
  166. package/es/platform/zfield/domain/entities/fields-manager/FieldsManager.js +6 -1
  167. package/es/platform/zform/adapters/controllers/IntializeController.js +4 -2
  168. package/es/platform/zform/adapters/controllers/MyLayoutSuccessController.js +4 -2
  169. package/es/platform/zform/adapters/controllers/SubmitValidationCompletedController.js +5 -1
  170. package/es/platform/zform/adapters/gateway/FormRepository.js +4 -2
  171. package/es/platform/zform/adapters/gateway/Service.js +2 -0
  172. package/es/platform/zform/adapters/presenter/FormTranslator.js +21 -15
  173. package/es/platform/zform/adapters/presenter/translators/SectionTranslator.js +5 -3
  174. package/es/platform/zform/applications/usecases/InitializeUseCase.js +54 -26
  175. package/es/platform/zform/applications/usecases/MyFormSuccessUseCase.js +7 -7
  176. package/es/platform/zform/applications/usecases/MyLayoutSuccessUseCase.js +60 -36
  177. package/es/platform/zform/applications/usecases/SubmitValidationCompletedUseCase.js +12 -8
  178. package/es/platform/zform/domain/ZForm.js +65 -0
  179. package/es/platform/zform/frameworks/ui/EventHandlerFactory.js +11 -2
  180. package/es/platform/zhttp/adapters/controllers/FetchController.js +5 -1
  181. package/es/platform/zlist/adapters/gateways/Repository.js +4 -2
  182. package/es/platform/zlist/adapters/presenters/SelectionTranslator.js +6 -3
  183. package/es/platform/zlist/adapters/presenters/TableTranslator.js +15 -6
  184. package/es/platform/zlist/adapters/presenters/translators/ColumnTranslator.js +30 -19
  185. package/es/platform/zlist/adapters/presenters/translators/Header.js +5 -6
  186. package/es/platform/zlist/adapters/presenters/translators/HeadersTranslator.js +4 -2
  187. package/es/platform/zlist/adapters/presenters/translators/Row.js +5 -3
  188. package/es/platform/zlist/adapters/presenters/translators/RowsTranslator.js +6 -2
  189. package/es/platform/zlist/adapters/presenters/utils/DefaultClientActions.js +1 -1
  190. package/es/platform/zlist/domain/entities/List.js +17 -2
  191. package/package.json +3 -3
  192. package/es/library/custom-component/applications/usecases/MountUseCase copy.js +0 -28
  193. package/es/platform/app-context-behaviour/adapters/controllers/InitializeController.js +0 -19
  194. package/es/platform/app-context-behaviour/adapters/gateways/Service.js +0 -7
  195. package/es/platform/app-context-behaviour/adapters/presenters/Presenter.js +0 -18
  196. package/es/platform/app-context-behaviour/adapters/resources/AppResource.js +0 -25
  197. package/es/platform/app-context-behaviour/applications/AbstractUseCase.js +0 -6
  198. package/es/platform/app-context-behaviour/applications/usecases/InitializeUseCase.js +0 -15
  199. package/es/platform/app-context-behaviour/frameworks/EventHandlerFactory.js +0 -25
  200. package/es/platform/components/form-connected/frameworks/FallbackView.js +0 -23
  201. package/es/platform/components/form-connected/frameworks/FormFallbackView.js +0 -23
  202. /package/es/platform/{app-context-behaviour/applications/interfaces/UsecaseDependencies.js → client-actions/behaviour/zclient-actions/domain/entities/interfaces/ClientActionResponse.js} +0 -0
  203. /package/es/platform/{app-context-behaviour/applications/interfaces/gateways/IService.js → client-scripts/behaviour/zclient-scripts-execution/applications/interfaces/InputDependencies.js} +0 -0
  204. /package/es/platform/{app-context-behaviour/applications/interfaces/input/InitializeUseCaseInputModel.js → client-scripts/behaviour/zclient-scripts-execution/applications/interfaces/gateways/IRepository.js} +0 -0
  205. /package/es/platform/{app-context-behaviour → client-scripts/behaviour/zclient-scripts-execution}/applications/interfaces/output/IPresenter.js +0 -0
  206. /package/es/platform/{app-context-behaviour/applications/interfaces/output/BehaviourState.js → client-scripts/behaviour/zclient-scripts-execution/domain/entities/State.js} +0 -0
  207. /package/es/platform/{app-context-behaviour/applications/interfaces/resources/ApiHeaderContract.js → client-scripts/behaviour/zclient-scripts-fetch/applications/interfaces/InputDependencies.js} +0 -0
  208. /package/es/platform/{app-context-behaviour/applications/interfaces/resources/ContextContract.js → client-scripts/behaviour/zclient-scripts-fetch/applications/interfaces/gateways/IRepository.js} +0 -0
  209. /package/es/platform/{app-context-behaviour/applications/interfaces/resources/IAppResource.js → client-scripts/behaviour/zclient-scripts-fetch/applications/interfaces/output/IPresenter.js} +0 -0
@@ -1,9 +1,75 @@
1
1
  import { ActionViewGap } from "../../components/interfaces/ActionViewModel";
2
- import { actionSchema } from "../dynamic-action-component/Properties";
2
+ import { clientScriptsSchema } from "../../../client-scripts/cc/zclient-scripts-execution/clientScriptsSchema";
3
+ export const actionSchema = {
4
+ type: 'object',
5
+ properties: {
6
+ component: {
7
+ type: 'string'
8
+ },
9
+ id: {
10
+ type: 'string'
11
+ },
12
+ properties: {
13
+ type: 'object'
14
+ },
15
+ eventMappings: {
16
+ type: 'array',
17
+ minItems: 0,
18
+ items: {
19
+ type: 'object',
20
+ properties: {
21
+ action: {
22
+ type: 'object',
23
+ properties: {
24
+ event: {
25
+ type: 'string'
26
+ },
27
+ payload: {
28
+ type: 'object'
29
+ }
30
+ },
31
+ required: ['event', 'payload']
32
+ },
33
+ id: {
34
+ type: 'string'
35
+ },
36
+ sourceEvent: {
37
+ type: 'string'
38
+ }
39
+ },
40
+ required: ['id']
41
+ }
42
+ }
43
+ },
44
+ required: ['component', 'properties']
45
+ };
3
46
  export const actionsSchema = {
4
47
  type: 'array',
5
- minItems: 0,
6
- items: actionSchema
48
+ minItems: 0
49
+ };
50
+ export const ActionEventMediatorProperties = {
51
+ action: {
52
+ required: true,
53
+ typeMetadata: {
54
+ schema: actionSchema
55
+ }
56
+ },
57
+ clientScripts: {
58
+ required: false,
59
+ defaultValue: [],
60
+ typeMetadata: {
61
+ schema: clientScriptsSchema
62
+ }
63
+ },
64
+ instanceName: {
65
+ required: false,
66
+ defaultValue: 'non-module',
67
+ typeMetadata: {
68
+ schema: {
69
+ type: 'string'
70
+ }
71
+ }
72
+ }
7
73
  };
8
74
  export default {
9
75
  testId: {
@@ -21,6 +87,12 @@ export default {
21
87
  schema: actionsSchema
22
88
  }
23
89
  },
90
+ clientScripts: {
91
+ required: false,
92
+ typeMetadata: {
93
+ schema: clientScriptsSchema
94
+ }
95
+ },
24
96
  renderComponentType: {
25
97
  required: false,
26
98
  typeMetadata: {
@@ -12,7 +12,7 @@ export default class MountController {
12
12
  updateState
13
13
  } = input;
14
14
  this.initializeUseCase.updateDependencies(host, state, dispatch, updateState);
15
- this.initializeUseCase.execute();
15
+ this.initializeUseCase.execute(input);
16
16
  }
17
17
 
18
18
  }
@@ -18,8 +18,8 @@ export default class PropertiesChangeController {
18
18
  } = action.payload;
19
19
  this.propertiesChangeUseCase.updateDependencies(host, state, dispatch, updateState);
20
20
  this.propertiesChangeUseCase.execute({
21
- currentActions: currentProperties.actions,
22
- previousActions: previousProperties.actions
21
+ currentAction: currentProperties.action,
22
+ previousAction: previousProperties.action
23
23
  });
24
24
  }
25
25
 
@@ -16,12 +16,12 @@ export default class Repository {
16
16
 
17
17
  getActionEventMediator() {
18
18
  const {
19
- actions
19
+ action
20
20
  } = this.state.properties;
21
21
  const {
22
22
  handlers
23
23
  } = this.state;
24
- const actionEventMediator = new ActionEventMediatorEntity(handlers, actions, this.element, this.dispatch);
24
+ const actionEventMediator = new ActionEventMediatorEntity(handlers, action, this.element, this.dispatch);
25
25
  return actionEventMediator;
26
26
  }
27
27
 
@@ -1,12 +1,26 @@
1
1
  import { AbstractUseCase } from "./AbstractUseCase";
2
+ import { SET_CLIENT_SCRIPTS } from "../../../../../client-scripts/bc/zclient-scripts-execution/Constants";
2
3
  export default class InitializeUseCase extends AbstractUseCase {
3
- execute() {
4
+ execute(input) {
4
5
  const {
5
6
  repository,
6
7
  presenter
7
8
  } = this.dependencies;
9
+ const {
10
+ dispatch,
11
+ state
12
+ } = input;
13
+ const {
14
+ clientScripts
15
+ } = state.properties;
8
16
  const actionLocation = repository.getActionEventMediator();
9
17
  actionLocation.initialize();
18
+ dispatch({
19
+ type: SET_CLIENT_SCRIPTS,
20
+ payload: {
21
+ clientScripts
22
+ }
23
+ });
10
24
  presenter.updateActionEventMediator(actionLocation.toObject());
11
25
  }
12
26
 
@@ -7,10 +7,10 @@ export default class PropertiesChangeUseCase extends AbstractUseCase {
7
7
  } = this.dependencies;
8
8
  const actionLocation = repository.getActionEventMediator();
9
9
  const {
10
- currentActions,
11
- previousActions
10
+ currentAction,
11
+ previousAction
12
12
  } = input;
13
- actionLocation.processActionsChange(previousActions, currentActions);
13
+ actionLocation.processActionsChange(previousAction, currentAction);
14
14
  presenter.updateActionEventMediator(actionLocation.toObject());
15
15
  }
16
16
 
@@ -1,8 +1,9 @@
1
1
  import TemplateResolver from "../../../../template-resolver";
2
+ import { EXECUTE_CLIENT_SCRIPTS } from "../../../../../client-scripts/bc/zclient-scripts-execution/Constants";
2
3
  export default class ActionEventMediatorEntity {
3
- constructor(handlers, actions, element, dispatch) {
4
+ constructor(handlers, action, element, dispatch) {
4
5
  this.handlers = handlers;
5
- this.actions = actions;
6
+ this.action = action;
6
7
  this.element = element;
7
8
  this.dispatch = dispatch;
8
9
  }
@@ -15,21 +16,32 @@ export default class ActionEventMediatorEntity {
15
16
  actionId,
16
17
  ...payloadItems
17
18
  } = e.detail.payload;
18
- const eventMapping = eventMappings.find(eventMapping => eventMapping.sourceEvent === event);
19
+ const targetEventMappings = eventMappings.filter(eventMapping => eventMapping.sourceEvent === event);
19
20
 
20
- if (!eventMapping) {
21
+ if (!targetEventMappings || targetEventMappings.length === 0) {
21
22
  return;
22
23
  }
23
24
 
24
- const dispatchEvent = eventMapping.targetEvent;
25
- const eventMappingPayload = eventMapping.payload;
26
- const replacementContext = {
27
- "@payload": payloadItems
28
- };
29
- const resolvedPayload = TemplateResolver.replaceContextVariablesInObject(eventMappingPayload, replacementContext);
25
+ const eventsContext = [];
26
+ targetEventMappings.forEach(eventMapping => {
27
+ const {
28
+ targetEvent,
29
+ payload
30
+ } = eventMapping;
31
+ const replacementContext = {
32
+ "@payload": payloadItems
33
+ };
34
+ const resolvedPayload = TemplateResolver.replaceContextVariablesInObject(payload, replacementContext);
35
+ eventsContext.push({
36
+ targetEvent,
37
+ resolvedPayload
38
+ });
39
+ });
30
40
  this.dispatch({
31
- type: dispatchEvent,
32
- payload: resolvedPayload,
41
+ type: EXECUTE_CLIENT_SCRIPTS,
42
+ payload: {
43
+ clientScriptsEventContext: eventsContext
44
+ },
33
45
  metaData: {
34
46
  clientActionId: actionId
35
47
  }
@@ -37,14 +49,19 @@ export default class ActionEventMediatorEntity {
37
49
  };
38
50
  }
39
51
 
40
- getEventNames(actions) {
52
+ getEventNames(action) {
41
53
  const eventNames = [];
42
- actions.forEach(action => {
43
- action.eventMappings.forEach(eventMapping => {
44
- if (!eventNames.includes(eventMapping.sourceEvent)) {
45
- eventNames.push(eventMapping.sourceEvent);
46
- }
47
- });
54
+ const {
55
+ eventMappings
56
+ } = action;
57
+ eventMappings.forEach(eventMapping => {
58
+ const {
59
+ sourceEvent
60
+ } = eventMapping;
61
+
62
+ if (!eventNames.includes(sourceEvent)) {
63
+ eventNames.push(sourceEvent);
64
+ }
48
65
  });
49
66
  return eventNames;
50
67
  }
@@ -66,15 +83,15 @@ export default class ActionEventMediatorEntity {
66
83
  }
67
84
 
68
85
  initialize() {
69
- const eventNames = this.getEventNames(this.actions);
86
+ const eventNames = this.getEventNames(this.action);
70
87
  eventNames.forEach(eventName => {
71
88
  this.listen(eventName);
72
89
  });
73
90
  }
74
91
 
75
- processActionsChange(previousActions, currentActions) {
76
- const previousEventNames = this.getEventNames(previousActions).sort();
77
- const currentEventNames = this.getEventNames(currentActions).sort();
92
+ processActionsChange(previousAction, currentAction) {
93
+ const previousEventNames = this.getEventNames(previousAction).sort();
94
+ const currentEventNames = this.getEventNames(currentAction).sort();
78
95
 
79
96
  if (this.compareEventNames(previousEventNames, currentEventNames)) {
80
97
  return;
@@ -89,7 +106,7 @@ export default class ActionEventMediatorEntity {
89
106
  }
90
107
 
91
108
  destroy() {
92
- const eventNames = this.getEventNames(this.actions);
109
+ const eventNames = this.getEventNames(this.action);
93
110
  eventNames.forEach(eventName => {
94
111
  this.unListen(eventName);
95
112
  });
@@ -1,7 +1,8 @@
1
1
  import { createCustomComponent } from "../../../../../../library/custom-component";
2
- import ActionEventMediatorProperties from "../../../../cc/action-event-mediator/Properties";
2
+ import { ActionEventMediatorProperties } from "../../../../cc/action-event-mediator/Properties";
3
3
  import EventHandlersFactory from "./EventHandlersFactory";
4
4
  import ActionEventMediatorView from "./ActionEventMediatorView";
5
+ import ClientScriptsExecutionBehaviourFactory from "../../../../../client-scripts/behaviour/zclient-scripts-execution/frameworks/ClientScriptsExecutionBehaviourFactory";
5
6
  export default createCustomComponent({
6
7
  name: 'ActionEventMediator',
7
8
  properties: ActionEventMediatorProperties,
@@ -9,5 +10,6 @@ export default createCustomComponent({
9
10
  handlers: {}
10
11
  }),
11
12
  eventHandlers: EventHandlersFactory.create(),
13
+ behaviours: [ClientScriptsExecutionBehaviourFactory.create()],
12
14
  View: ActionEventMediatorView
13
15
  });
@@ -1,21 +1,38 @@
1
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
2
+
1
3
  import React from 'react';
2
- import RowActionsRenderer from "../../../row-actions-renderer/frameworks/ui/RowActionsRenderer";
3
- import { ComponentRegistry } from "../../../../../../library";
4
- export default function ActionEventMediatorView(_ref, ref) {
4
+ import ComponentRegistry from "../../../../../../library/custom-component/frameworks/ui/ComponentRegistry";
5
+ import ActionComponentMapping from "../../../../../../library/dot/components/action-location/frameworks/ui/ActionComponentMapping";
6
+
7
+ function ActionEventMediatorView(_ref, ref) {
5
8
  let {
6
9
  state
7
10
  } = _ref;
8
11
  const {
9
- actions,
10
- renderComponentType,
11
- gap,
12
- testId
12
+ action
13
13
  } = state.properties;
14
- const ActionRenderComponent = ComponentRegistry.get(renderComponentType) || RowActionsRenderer;
15
- return /*#__PURE__*/React.createElement(ActionRenderComponent, {
16
- testId: testId,
17
- actions: actions,
18
- gap: gap,
14
+ const {
15
+ component,
16
+ properties,
17
+ eventMappings,
18
+ id: actionId
19
+ } = action;
20
+ const Component = ComponentRegistry.get(component) || ActionComponentMapping[component];
21
+
22
+ if (!Component) {
23
+ return /*#__PURE__*/React.createElement("div", {
24
+ ref: ref
25
+ }, "Error");
26
+ }
27
+
28
+ return /*#__PURE__*/React.createElement(Component, _extends({
19
29
  getRef: ref
20
- });
21
- }
30
+ }, properties, {
31
+ appendToActionPayload: {
32
+ eventMappings,
33
+ actionId
34
+ }
35
+ }));
36
+ }
37
+
38
+ export default ActionEventMediatorView;
@@ -1,9 +1,3 @@
1
- import { createCustomComponent } from "../../../../../../library/custom-component";
2
- import ActionEventMediatorProperties from "../../../../cc/action-event-mediator/Properties";
3
- import EventHandlersFactory from "./EventHandlersFactory";
4
- import ActionEventMediatorView from "./ActionEventMediatorView"; // import ClientActionsSDKFactory from '../../../../behaviour/zclient-actions/frameworks/sdk/ClientActionsSDKFactory'; TODO: Add support for returning clientActionsSDK factory when client actions SDK is merged to V2
5
-
6
- import ClientActionsBehaviourFactory from "../../../../behaviour/zclient-actions/frameworks/ClientActionsBehaviourFactory";
7
1
  import getClientActions from "../../../../../data-source/http-template/getClientActions";
8
2
  import ClientActionsTranslator from "../../../../translators/client-actions-translator";
9
3
  import FetchGateWay from "../../../../../zhttp/adapters/gateway/FetchGateWay";
@@ -27,7 +21,7 @@ const ClientActionsAdapterUtils = {
27
21
  },
28
22
 
29
23
  transform(input) {
30
- return ClientActionsTranslator.transform(input, {
24
+ return ClientActionsTranslator.transform(input, "Adapter", "Adapter", {
31
25
  departmentName: windowWrapper.currentDepartment.sanitizedName,
32
26
  orgId: windowWrapper.currentOrg.id,
33
27
  orgName: windowWrapper.currentOrg.portalName,
@@ -37,29 +31,6 @@ const ClientActionsAdapterUtils = {
37
31
 
38
32
  };
39
33
  const ClientActionsAdapter = {
40
- createEventHandler(clientScript) {
41
- return event => {
42
- let response = {
43
- event: event,
44
- sdk: {}
45
- }; // response.sdks.clientActions = ClientActionsSDKFactory.create({ TODO: Add support for returning clientActionsSDK factory when client actions SDK is merged to V2
46
- // state: event.state,
47
- // dispatch: event.dispatch
48
- // });
49
-
50
- clientScript(response);
51
- };
52
- },
53
-
54
- createActionToEventHandlers(clientScripts) {
55
- const actionEventHandlers = {};
56
- Object.keys(clientScripts).map(targetEvent => {
57
- const clientScript = clientScripts[targetEvent];
58
- actionEventHandlers[targetEvent] = ClientActionsAdapter.createEventHandler(clientScript);
59
- });
60
- return actionEventHandlers;
61
- },
62
-
63
34
  fetchClientActions(args) {
64
35
  const apiDetails = ClientActionsAdapterUtils.getClientActionsAPIDetails(args);
65
36
  const fetchGateway = new FetchGateWay(window.fetch.bind(window));
@@ -73,24 +44,7 @@ const ClientActionsAdapter = {
73
44
  return Promise.resolve(actions);
74
45
  }
75
46
  });
76
- },
77
-
78
- getClientActionComponent: clientScripts => {
79
- return createCustomComponent({
80
- name: 'ClientActionsAdapter',
81
- properties: ActionEventMediatorProperties,
82
- setInitialState: () => ({
83
- handlers: {}
84
- }),
85
- eventHandlers: { ...EventHandlersFactory.createClientActionsAdapterEventHandlers(),
86
- ...ClientActionsAdapter.createActionToEventHandlers(clientScripts)
87
- },
88
- behaviours: [ClientActionsBehaviourFactory.create({
89
- getClientActions: getClientActions
90
- })],
91
- View: ActionEventMediatorView
92
- });
93
47
  }
48
+
94
49
  };
95
- export const getClientActionsAdapter = ClientActionsAdapter.getClientActionComponent;
96
50
  export const fetchClientActions = ClientActionsAdapter.fetchClientActions;
@@ -9,14 +9,6 @@ import PropertiesChangeController from "../../adapters/controllers/PropertiesCha
9
9
  import LifeCycleEvents from "../../../../../../cc/component/LifeCycleEventsEnum";
10
10
  export default class EventHandlersFactory {
11
11
  static create() {
12
- return EventHandlersFactory.createClientActionsLifeCycleEventHandlers('ActionEventMediator');
13
- }
14
-
15
- static createClientActionsAdapterEventHandlers() {
16
- return EventHandlersFactory.createClientActionsLifeCycleEventHandlers('ClientActionsAdapter');
17
- }
18
-
19
- static createClientActionsLifeCycleEventHandlers(componentName) {
20
12
  const repository = new Repository();
21
13
  const presenter = new Presenter();
22
14
  const dependencies = {
@@ -30,9 +22,9 @@ export default class EventHandlersFactory {
30
22
  const unmountController = new UnmountController(destroyUseCase);
31
23
  const propertiesChangeController = new PropertiesChangeController(propertiesChangeUseCase);
32
24
  return {
33
- [`${componentName}#${LifeCycleEvents.MOUNT}`]: initializeController.handle,
34
- [`${componentName}#${LifeCycleEvents.UPDATE_PROPERTIES}`]: propertiesChangeController.handle,
35
- [`${componentName}#${LifeCycleEvents.UN_MOUNT}`]: unmountController.handle
25
+ [`ActionEventMediator#${LifeCycleEvents.MOUNT}`]: initializeController.handle,
26
+ [`ActionEventMediator#${LifeCycleEvents.UPDATE_PROPERTIES}`]: propertiesChangeController.handle,
27
+ [`ActionEventMediator#${LifeCycleEvents.UN_MOUNT}`]: unmountController.handle
36
28
  };
37
29
  }
38
30
 
@@ -0,0 +1,12 @@
1
+ import { createCustomComponent } from "../../../../../../../library/custom-component";
2
+ import RowActionsRendererProperties from "../../../../../cc/action-event-mediator/Properties";
3
+ import { ComponentRegistry } from "../../../../../../../library";
4
+ import AdaptiveRowActionsRendererView from "./AdaptiveRowActionsRendererView";
5
+ const AdaptiveRowActionsRendererComponent = createCustomComponent({
6
+ name: 'AdaptiveRowActionsRenderer',
7
+ properties: RowActionsRendererProperties,
8
+ eventHandlers: {},
9
+ View: AdaptiveRowActionsRendererView
10
+ });
11
+ ComponentRegistry.register("AdaptiveRowActionsRenderer", AdaptiveRowActionsRendererComponent);
12
+ export default AdaptiveRowActionsRendererComponent;
@@ -0,0 +1,42 @@
1
+ /* eslint-disable react/prop-types */
2
+ import React from 'react';
3
+ import Flex from '@zohodesk/layout/es/Flex/Flex';
4
+ import { ActionViewGap } from "../../../../interfaces/ActionViewModel";
5
+ import ActionEventMediator from "../../../../action-event-mediator/frameworks/ui/ActionEventMediator";
6
+ import MoreActionsRenderer from "../MoreActions/MoreActionsRenderer";
7
+ import { findMappedClientScripts } from "../../../../../../client-scripts/behaviour/zclient-scripts-execution/frameworks/ClientScriptsUtils"; // @ts-ignore
8
+
9
+ import style from "../RowActions/RowActionsRenderer.module.css";
10
+ export default function AdaptiveRowActionsRendererView(_ref, ref) {
11
+ let {
12
+ state,
13
+ helpers
14
+ } = _ref;
15
+ const {
16
+ actions,
17
+ gap,
18
+ testId,
19
+ clientScripts
20
+ } = state.properties;
21
+ const [firstAction, secondAction, ...moreActions] = actions;
22
+ const showMore = actions.length > 3;
23
+ const actionsList = showMore ? [firstAction, secondAction] : actions;
24
+
25
+ const renderAction = action => /*#__PURE__*/React.createElement(ActionEventMediator, {
26
+ key: action.id,
27
+ action: action,
28
+ clientScripts: findMappedClientScripts(action, clientScripts),
29
+ instanceName: action.instanceName
30
+ });
31
+
32
+ return /*#__PURE__*/React.createElement(Flex, {
33
+ ref: ref,
34
+ testId: testId ? testId : '',
35
+ $ui_className: gap !== ActionViewGap.NONE ? style[`gap_${gap}`] : '',
36
+ $ui_displayMode: "inline",
37
+ $ui_alignItems: "center"
38
+ }, showMore ? /*#__PURE__*/React.createElement(React.Fragment, null, actionsList.map(renderAction), /*#__PURE__*/React.createElement(MoreActionsRenderer, {
39
+ actions: moreActions,
40
+ clientScripts: clientScripts
41
+ })) : actionsList.map(renderAction));
42
+ }
@@ -0,0 +1,10 @@
1
+ import { createCustomComponent } from "../../../../../../../library/custom-component";
2
+ import RowActionsRendererProperties from "../../../../../cc/action-event-mediator/Properties";
3
+ import MoreActionsRendererView from "./MoreActionsRendererView";
4
+ const MoreActionsRenderer = createCustomComponent({
5
+ name: "MoreActionsRenderer",
6
+ eventHandlers: {},
7
+ properties: RowActionsRendererProperties,
8
+ View: MoreActionsRendererView
9
+ });
10
+ export default MoreActionsRenderer;
@@ -0,0 +1,79 @@
1
+ import React from 'react';
2
+ import ActionEventMediator from "../../../../action-event-mediator/frameworks/ui/ActionEventMediator";
3
+ import CustomDropdown from '@zohodesk-private/desk-components/es/CustomDropdown/CustomDropdown';
4
+ import ListItemConstants from "../../../../../../../cc/list-item/Constants";
5
+ import IconButton from '@zohodesk/dot/es/IconButton/IconButton';
6
+ import { findMappedClientScripts } from "../../../../../../client-scripts/behaviour/zclient-scripts-execution/frameworks/ClientScriptsUtils";
7
+ export const ListItemConvertor = action => {
8
+ const {
9
+ id,
10
+ properties: {
11
+ icon
12
+ },
13
+ eventMappings,
14
+ instanceName
15
+ } = action;
16
+ const label = action.properties.label ? action.properties.label : action.properties.text;
17
+ const updatedEventMappings = eventMappings.map(eventMapping => {
18
+ return { ...eventMapping,
19
+ sourceEvent: ListItemConstants.LISTITEM_CLICKED
20
+ };
21
+ });
22
+ return {
23
+ component: 'ListItem',
24
+ properties: {
25
+ text: label,
26
+ tooltip: label,
27
+ icon,
28
+ id
29
+ },
30
+ eventMappings: updatedEventMappings,
31
+ id,
32
+ instanceName
33
+ };
34
+ };
35
+
36
+ function MoreActionsRendererView(_ref, ref) {
37
+ let {
38
+ state,
39
+ helpers
40
+ } = _ref;
41
+ const {
42
+ actions,
43
+ clientScripts
44
+ } = state.properties;
45
+ const listItemActions = actions.map(action => {
46
+ return ListItemConvertor(action);
47
+ });
48
+
49
+ const renderTargetElement = _ref2 => {
50
+ let {
51
+ handleTogglePopup,
52
+ isPopupOpen
53
+ } = _ref2;
54
+ return /*#__PURE__*/React.createElement(IconButton, {
55
+ iconName: "ZD-GN-more",
56
+ iconSize: "16",
57
+ isActive: isPopupOpen,
58
+ onClick: handleTogglePopup
59
+ });
60
+ };
61
+
62
+ return /*#__PURE__*/React.createElement(CustomDropdown, {
63
+ $ui_boxSize: "medium",
64
+ $flag_padding: true,
65
+ $render_targetElement: renderTargetElement,
66
+ $method_getRef: ref,
67
+ $customProps_dropbox: {
68
+ onClick: undefined
69
+ }
70
+ }, listItemActions.map(action => /*#__PURE__*/React.createElement(ActionEventMediator, {
71
+ key: action.id,
72
+ action: action,
73
+ clientScripts: findMappedClientScripts(action, clientScripts),
74
+ instanceName: action.instanceName // getRef={ref}
75
+
76
+ })));
77
+ }
78
+
79
+ export default MoreActionsRendererView;
@@ -0,0 +1,12 @@
1
+ import { createCustomComponent } from "../../../../../../../library/custom-component";
2
+ import RowActionsRendererProperties from "../../../../../cc/action-event-mediator/Properties";
3
+ import RowActionsRendererView from "./RowActionsRendererView";
4
+ import { ComponentRegistry } from "../../../../../../../library";
5
+ const RowActionsRendererComponent = createCustomComponent({
6
+ name: 'RowActionsRenderer',
7
+ properties: RowActionsRendererProperties,
8
+ eventHandlers: {},
9
+ View: RowActionsRendererView
10
+ });
11
+ ComponentRegistry.register("RowActionsRenderer", RowActionsRendererComponent);
12
+ export default RowActionsRendererComponent;
@@ -0,0 +1,19 @@
1
+ .wrapper {
2
+ max-width: 100%
3
+ }
4
+
5
+ .gap_small {
6
+ gap: var(--zd_size4)
7
+ }
8
+
9
+ .gap_xmedium {
10
+ gap: var(--zd_size6)
11
+ }
12
+
13
+ .gap_medium {
14
+ gap: var(--zd_size8)
15
+ }
16
+
17
+ .gap_large {
18
+ gap: var(--zd_size10)
19
+ }