@zohodesk/library-platform 1.1.2 → 1.1.3-exp.2

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 (273) hide show
  1. package/README.md +3 -3
  2. package/es/bc/column-chooser/Constants.js +4 -0
  3. package/es/bc/column-chooser/EventHandlers.js +2 -0
  4. package/es/bc/column-chooser/Events.js +59 -0
  5. package/es/bc/column-chooser/Properties.js +18 -0
  6. package/es/bc/keyboard-controls/Constants.js +5 -0
  7. package/es/bc/keyboard-controls/Events.js +51 -0
  8. package/es/bc/keyboard-controls/Properties.js +11 -0
  9. package/es/bc/keyboard-controls/types/KeyboardControlBehaviourState.js +1 -0
  10. package/es/bc/sdk/EventHandlers.js +1 -0
  11. package/es/bc/sdk/Properties.js +10 -0
  12. package/es/bc/sdk/ResourceNamesEnum.js +6 -0
  13. package/es/bc/zlist/Constants.js +3 -1
  14. package/es/bc/zlist/Properties.js +15 -0
  15. package/es/bc/zrecord/Constants.js +3 -1
  16. package/es/cc/action-location/Constants.js +5 -3
  17. package/es/cc/architecture/LifeCycleActionEnum.js +2 -8
  18. package/es/cc/component/LifeCycleEventsEnum.js +9 -0
  19. package/es/cc/fields/field/Properties.js +10 -1
  20. package/es/cc/fields/index.js +1 -1
  21. package/es/cc/table-column-chooser/Constants.js +6 -0
  22. package/es/cc/table-column-chooser/Events.js +69 -0
  23. package/es/cc/table-column-chooser/Properties.js +122 -0
  24. package/es/cc/table-column-chooser/index.js +3 -0
  25. package/es/cc/table-connected/Properties.js +32 -0
  26. package/es/cc/table-connected/constants/Events.js +4 -1
  27. package/es/cc/table-list/Constants.js +4 -0
  28. package/es/cc/table-list/Properties.js +43 -1
  29. package/es/cc/table-list/data-types/KeyboardControlsConfig.js +1 -0
  30. package/es/cc/table-list/row/Properties.js +53 -0
  31. package/es/index.js +5 -2
  32. package/es/library/behaviours/keyboard-controls/adapters/controllers/AbstractController.js +9 -0
  33. package/es/library/behaviours/keyboard-controls/adapters/controllers/DestructController.js +20 -0
  34. package/es/library/behaviours/keyboard-controls/adapters/controllers/DownArrowPressController.js +20 -0
  35. package/es/library/behaviours/keyboard-controls/adapters/controllers/EnterPressController.js +24 -0
  36. package/es/library/behaviours/keyboard-controls/adapters/controllers/FocusNextController.js +20 -0
  37. package/es/library/behaviours/keyboard-controls/adapters/controllers/FocusPreviousController.js +20 -0
  38. package/es/library/behaviours/keyboard-controls/adapters/controllers/InitializeController.js +20 -0
  39. package/es/library/behaviours/keyboard-controls/adapters/controllers/SpacePressController.js +24 -0
  40. package/es/library/behaviours/keyboard-controls/adapters/controllers/UpArrowPressController.js +20 -0
  41. package/es/library/behaviours/keyboard-controls/adapters/gateways/KeyboardHandler.js +81 -0
  42. package/es/library/behaviours/keyboard-controls/adapters/gateways/Repository.js +47 -0
  43. package/es/library/behaviours/keyboard-controls/adapters/gateways/Service.js +40 -0
  44. package/es/library/behaviours/keyboard-controls/adapters/presenters/Presenter.js +39 -0
  45. package/es/library/behaviours/keyboard-controls/applications/interfaces/UseCase.js +0 -0
  46. package/es/library/behaviours/keyboard-controls/applications/interfaces/UseCaseDependencies.js +1 -0
  47. package/es/library/behaviours/keyboard-controls/applications/interfaces/gateways/IKeyboardHandler.js +1 -0
  48. package/es/library/behaviours/keyboard-controls/applications/interfaces/gateways/IRepository.js +1 -0
  49. package/es/library/behaviours/keyboard-controls/applications/interfaces/gateways/IService.js +1 -0
  50. package/es/library/behaviours/keyboard-controls/applications/interfaces/input/DestructInputModel.js +1 -0
  51. package/es/library/behaviours/keyboard-controls/applications/interfaces/input/DownArrowPressInputModel.js +1 -0
  52. package/es/library/behaviours/keyboard-controls/applications/interfaces/input/EnterPressInputModel.js +1 -0
  53. package/es/library/behaviours/keyboard-controls/applications/interfaces/input/FocusNextInputModel.js +1 -0
  54. package/es/library/behaviours/keyboard-controls/applications/interfaces/input/FocusPreviousInputModel.js +1 -0
  55. package/es/library/behaviours/keyboard-controls/applications/interfaces/input/InitializeInputModel.js +1 -0
  56. package/es/library/behaviours/keyboard-controls/applications/interfaces/input/RowActionInputModel.js +1 -0
  57. package/es/library/behaviours/keyboard-controls/applications/interfaces/input/SelectionInputModel.js +1 -0
  58. package/es/library/behaviours/keyboard-controls/applications/interfaces/input/SpacePressInputModel.js +1 -0
  59. package/es/library/behaviours/keyboard-controls/applications/interfaces/input/UpArrowPressInputModel.js +1 -0
  60. package/es/library/behaviours/keyboard-controls/applications/interfaces/output/IPresenter.js +1 -0
  61. package/es/library/behaviours/keyboard-controls/applications/interfaces/output/OutputModel.js +1 -0
  62. package/es/library/behaviours/keyboard-controls/applications/usecases/AbstractUseCase.js +19 -0
  63. package/es/library/behaviours/keyboard-controls/applications/usecases/DestructUsecase.js +20 -0
  64. package/es/library/behaviours/keyboard-controls/applications/usecases/DownArrowPress.js +16 -0
  65. package/es/library/behaviours/keyboard-controls/applications/usecases/EnterPress.js +19 -0
  66. package/es/library/behaviours/keyboard-controls/applications/usecases/FocusNextUsecase.js +16 -0
  67. package/es/library/behaviours/keyboard-controls/applications/usecases/FocusPreviousUsecase.js +16 -0
  68. package/es/library/behaviours/keyboard-controls/applications/usecases/InitializeUsecase.js +20 -0
  69. package/es/library/behaviours/keyboard-controls/applications/usecases/SpacePress.js +19 -0
  70. package/es/library/behaviours/keyboard-controls/applications/usecases/UpArrowPress.js +16 -0
  71. package/es/library/behaviours/keyboard-controls/domain/entities/KeyboardControls.js +87 -0
  72. package/es/library/behaviours/keyboard-controls/domain/entities/interface/IKeyboardControls.js +1 -0
  73. package/es/library/behaviours/keyboard-controls/domain/entities/interface/KeyboardControlModel.js +1 -0
  74. package/es/library/behaviours/keyboard-controls/frameworks/EventHandlerFactory.js +48 -0
  75. package/es/library/behaviours/keyboard-controls/frameworks/KeyboardControlBehaviourFactory.js +23 -0
  76. package/es/library/behaviours/list-selection/frameworks/ActionHandlerFactory.js +4 -3
  77. package/es/library/custom-component/applications/entities-factory/BehavioursFactory.js +18 -16
  78. package/es/library/custom-component/applications/usecases/UpdatePropertyUseCase.js +3 -0
  79. package/es/library/custom-component/applications/usecases/UpdateStateUseCase.js +5 -1
  80. package/es/library/custom-component/domain/entities/Component.js +4 -0
  81. package/es/library/custom-component/domain/entities/LifeCycleAction.js +14 -3
  82. package/es/library/custom-component/frameworks/ui/ComponentRegistry.js +8 -0
  83. package/es/library/dot/components/action-location/frameworks/ui/ActionComponentMapping.js +4 -0
  84. package/es/library/dot/components/action-location/frameworks/ui/EventHandlersFactory.js +1 -1
  85. package/es/library/dot/components/table-list/adapters/controllers/KeyboardRowClickController.js +36 -0
  86. package/es/library/dot/components/table-list/adapters/controllers/KeyboardRowSelectController.js +31 -0
  87. package/es/library/dot/components/table-list/adapters/controllers/index.js +3 -1
  88. package/es/library/dot/components/table-list/adapters/presenters/TableTranslator.js +5 -3
  89. package/es/library/dot/components/table-list/frameworks/hooks/useDropIndicator.js +8 -0
  90. package/es/library/dot/components/table-list/frameworks/hooks/useRowData.js +8 -0
  91. package/es/library/dot/components/table-list/frameworks/hooks/useTableRowReorder.js +93 -0
  92. package/es/library/dot/components/table-list/frameworks/ui/EventHandlersFactory.js +4 -1
  93. package/es/library/dot/components/table-list/frameworks/ui/TableListView.js +76 -8
  94. package/es/library/dot/components/table-list/frameworks/ui/css/TableList.module.css +147 -1
  95. package/es/library/dot/components/table-list/frameworks/ui/sub-components/Header.js +28 -11
  96. package/es/library/dot/components/table-list/frameworks/ui/sub-components/Rows.js +26 -9
  97. package/es/library/dot/components/table-list/frameworks/ui/sub-components/header/HeaderData.js +7 -2
  98. package/es/library/dot/components/table-list/frameworks/ui/sub-components/header/MassAction.js +45 -0
  99. package/es/library/dot/components/table-list/frameworks/ui/sub-components/row/Row.js +60 -10
  100. package/es/library/dot/components/table-list/frameworks/ui/sub-components/row/RowData.js +7 -2
  101. package/es/library/dot/components/table-list/frameworks/ui/sub-components/row/RowSelection.js +11 -0
  102. package/es/library/dot/components/table-list/frameworks/utils/reOrder.js +76 -0
  103. package/es/library/dot/legacy-to-new-arch/table-column-chooser/frameworks/ui/TableColumnChooser.js +11 -0
  104. package/es/library/dot/legacy-to-new-arch/table-column-chooser/frameworks/ui/TableColumnChooserView.js +79 -0
  105. package/es/library/dot/legacy-to-new-arch/table-column-filter/frameworks/ui/TableColumnFilterView.js +8 -4
  106. package/es/library/dot/legacy-to-new-arch/table-field-components/lookup-field/frameworks/ui/LookupFieldView.js +6 -8
  107. package/es/platform/client-actions/components/action-event-mediator/frameworks/ui/EventHandlersFactory.js +4 -3
  108. package/es/platform/client-actions/components/row-actions-renderer/frameworks/ui/RowActionsRenderer.module.css +0 -6
  109. package/es/platform/client-actions/components/row-actions-renderer/frameworks/ui/RowActionsRendererView.js +1 -1
  110. package/es/platform/client-actions/translators/client-actions-translator/index.js +5 -2
  111. package/es/platform/client-actions/translators/condition-resolver/field-evaluators/GetResolvedContextFieldValue.js +3 -2
  112. package/es/platform/client-actions/translators/context-resolver/index.js +1 -4
  113. package/es/platform/column-chooser/adapters/controllers/AbstractController.js +10 -0
  114. package/es/platform/column-chooser/adapters/controllers/ColumnChooserCloseController.js +21 -0
  115. package/es/platform/column-chooser/adapters/controllers/ColumnChooserOpenController.js +26 -0
  116. package/es/platform/column-chooser/adapters/controllers/ColumnChooserReorderController.js +26 -0
  117. package/es/platform/column-chooser/adapters/controllers/ColumnChooserSaveController.js +21 -0
  118. package/es/platform/column-chooser/adapters/controllers/ColumnChooserSearchController.js +24 -0
  119. package/es/platform/column-chooser/adapters/controllers/ColumnChooserSelectController.js +26 -0
  120. package/es/platform/column-chooser/adapters/gateways/Repository.js +38 -0
  121. package/es/platform/column-chooser/adapters/gateways/Service.js +34 -0
  122. package/es/platform/column-chooser/adapters/gateways/State.js +1 -0
  123. package/es/platform/column-chooser/adapters/presenters/Presenter.js +25 -0
  124. package/es/platform/column-chooser/applications/interfaces/UsecaseDependencies.js +1 -0
  125. package/es/platform/column-chooser/applications/interfaces/gateways/IRepository.js +1 -0
  126. package/es/platform/column-chooser/applications/interfaces/gateways/IService.js +1 -0
  127. package/es/platform/column-chooser/applications/interfaces/input/ColumnChooserCloseInput.js +1 -0
  128. package/es/platform/column-chooser/applications/interfaces/input/ColumnChooserOpenInput.js +1 -0
  129. package/es/platform/column-chooser/applications/interfaces/input/ColumnChooserReorderInput.js +1 -0
  130. package/es/platform/column-chooser/applications/interfaces/input/ColumnChooserSaveInput.js +1 -0
  131. package/es/platform/column-chooser/applications/interfaces/input/ColumnChooserSearchInput.js +1 -0
  132. package/es/platform/column-chooser/applications/interfaces/input/ColumnChooserSelectInput.js +1 -0
  133. package/es/platform/column-chooser/applications/interfaces/output/BehaviourState.js +1 -0
  134. package/es/platform/column-chooser/applications/interfaces/output/IPresenter.js +1 -0
  135. package/es/platform/column-chooser/applications/usecases/AbstractUseCase.js +18 -0
  136. package/es/platform/column-chooser/applications/usecases/ColumnChooserCloseUseCase.js +34 -0
  137. package/es/platform/column-chooser/applications/usecases/ColumnChooserOpenUseCase.js +20 -0
  138. package/es/platform/column-chooser/applications/usecases/ColumnChooserReorderUseCase.js +20 -0
  139. package/es/platform/column-chooser/applications/usecases/ColumnChooserSaveUseCase.js +31 -0
  140. package/es/platform/column-chooser/applications/usecases/ColumnChooserSearchUseCase.js +19 -0
  141. package/es/platform/column-chooser/applications/usecases/ColumnChooserSelectUseCase.js +26 -0
  142. package/es/platform/column-chooser/domain/entities/ColumnChooserImp.js +95 -0
  143. package/es/platform/column-chooser/domain/entities/ReorderEntityImp.js +35 -0
  144. package/es/platform/column-chooser/domain/entities/SearchEntityImp.js +28 -0
  145. package/es/platform/column-chooser/domain/entities/SelectEntityImp.js +58 -0
  146. package/es/platform/column-chooser/domain/entities/interfaces/ColumnChooser.js +1 -0
  147. package/es/platform/column-chooser/domain/entities/interfaces/ReorderEntity.js +1 -0
  148. package/es/platform/column-chooser/domain/entities/interfaces/SearchEntity.js +1 -0
  149. package/es/platform/column-chooser/domain/entities/interfaces/SelectEntity.js +1 -0
  150. package/es/platform/column-chooser/frameworks/ColumnChooserBehaviourFactory.js +19 -0
  151. package/es/platform/column-chooser/frameworks/EventHandlersFactory.js +30 -0
  152. package/es/platform/components/form-connected/frameworks/FormConnectedFactory.js +33 -0
  153. package/es/{desk-frameworks → platform/components}/form-connected/frameworks/FormConnectedView.js +1 -1
  154. package/es/{desk-frameworks → platform/components}/form-connected/frameworks/FormSdkFactory.js +3 -14
  155. package/es/platform/components/table-connected/adapters/controllers/ColumnChooserOpenedController.js +28 -0
  156. package/es/platform/components/table-connected/adapters/controllers/ColumnChooserUpdateController.js +25 -0
  157. package/es/platform/components/table-connected/adapters/controllers/ReOrderFinishController.js +21 -0
  158. package/es/{desk-frameworks → platform/components}/table-connected/adapters/controllers/ResizeByMouseController.js +1 -1
  159. package/es/{desk-frameworks → platform/components}/table-connected/adapters/controllers/ResizeEndController.js +1 -1
  160. package/es/{desk-frameworks → platform/components}/table-connected/adapters/controllers/ResizeFinishController.js +1 -1
  161. package/es/{desk-frameworks → platform/components}/table-connected/adapters/controllers/ResizeStartController.js +2 -2
  162. package/es/{desk-frameworks → platform/components}/table-connected/adapters/controllers/ScrollController.js +1 -1
  163. package/es/platform/components/table-connected/adapters/resources/SmartTableResource.js +251 -0
  164. package/es/platform/components/table-connected/application/interfaces/ISmartTableResource.js +1 -0
  165. package/es/{desk-frameworks → platform/components}/table-connected/frameworks/EventHandlersFactory.js +29 -15
  166. package/es/platform/components/table-connected/frameworks/ListSdkFactory.js +57 -0
  167. package/es/platform/components/table-connected/frameworks/TableConnectedFactory.js +76 -0
  168. package/es/{desk-frameworks → platform/components}/table-connected/frameworks/TableConnectedView.js +13 -8
  169. package/es/platform/data-source/http-template/reOrderRecord.js +44 -0
  170. package/es/platform/data-source/http-template/updateSelectedFields.js +28 -0
  171. package/es/platform/data-source/index.js +4 -0
  172. package/es/platform/sdk/adapters/gateways/Repository.js +31 -0
  173. package/es/platform/sdk/adapters/gateways/Service.js +27 -0
  174. package/es/platform/sdk/adapters/presenters/Presenter.js +16 -0
  175. package/es/platform/sdk/application/interfaces/UsecaseDependencies.js +1 -0
  176. package/es/platform/sdk/application/interfaces/gateways/AbstractResource.js +13 -0
  177. package/es/platform/sdk/application/interfaces/gateways/IRepository.js +1 -0
  178. package/es/platform/sdk/application/interfaces/gateways/ISdkManager.js +1 -0
  179. package/es/platform/sdk/application/interfaces/gateways/IService.js +1 -0
  180. package/es/platform/sdk/application/interfaces/input/CreateResourceInstanceUseCaseInputModel.js +1 -0
  181. package/es/platform/sdk/application/interfaces/input/DestructResourceInstanceUseCaseInputModel.js +1 -0
  182. package/es/platform/sdk/application/interfaces/input/GetResourceInstanceUseCaseInputModel.js +1 -0
  183. package/es/platform/sdk/application/interfaces/input/RegisterResourceInputModel.js +1 -0
  184. package/es/platform/sdk/application/interfaces/input/SyncStateWithResourceInputModel.js +1 -0
  185. package/es/platform/sdk/application/interfaces/output/ISdkPresenter.js +3 -0
  186. package/es/platform/sdk/application/usecases/AbstractUseCase.js +16 -0
  187. package/es/platform/sdk/application/usecases/CreateResourceInstanceUseCase.js +16 -0
  188. package/es/platform/sdk/application/usecases/DestructResourceInstanceUseCase.js +16 -0
  189. package/es/platform/sdk/application/usecases/GetResourceInstanceUseCase.js +17 -0
  190. package/es/platform/sdk/application/usecases/RegisterResourceUseCase.js +16 -0
  191. package/es/platform/sdk/application/usecases/SyncStateWithResourceUseCase.js +25 -0
  192. package/es/platform/sdk/domain/entities/ResourceManager.js +95 -0
  193. package/es/platform/sdk/domain/entities/interfaces/IResourceManager.js +1 -0
  194. package/es/platform/sdk/domain/entities/interfaces/ResourceManagerRestoreModel.js +1 -0
  195. package/es/platform/sdk/domain/entities/interfaces/SdkResource.js +1 -0
  196. package/es/platform/sdk/domain/entities/interfaces/SdkResourceDependencies.js +1 -0
  197. package/es/platform/sdk/domain/entities/interfaces/StateInterface.js +1 -0
  198. package/es/platform/sdk/frameworks/Sdk.js +11 -0
  199. package/es/platform/sdk/frameworks/SdkRegistry.js +72 -0
  200. package/es/platform/sdk-behaviour/adapters/controllers/AbstractController.js +11 -0
  201. package/es/platform/sdk-behaviour/adapters/controllers/DestructController.js +19 -0
  202. package/es/platform/sdk-behaviour/adapters/controllers/InitializeController.js +19 -0
  203. package/es/platform/sdk-behaviour/adapters/controllers/SyncStateWithResourceController.js +24 -0
  204. package/es/platform/sdk-behaviour/adapters/gateways/Repository.js +25 -0
  205. package/es/platform/sdk-behaviour/adapters/gateways/ResourceManagerGateWay.js +43 -0
  206. package/es/platform/sdk-behaviour/adapters/gateways/Service.js +19 -0
  207. package/es/platform/sdk-behaviour/applications/AbstractUseCase.js +6 -0
  208. package/es/platform/sdk-behaviour/applications/interfaces/UsecaseDependencies.js +1 -0
  209. package/es/platform/sdk-behaviour/applications/interfaces/gateways/IRepository.js +1 -0
  210. package/es/platform/sdk-behaviour/applications/interfaces/gateways/IResourceManagerGateWay.js +3 -0
  211. package/es/platform/sdk-behaviour/applications/interfaces/gateways/IService.js +1 -0
  212. package/es/platform/sdk-behaviour/applications/interfaces/input/CreateResourceInstanceUseCaseInputModel.js +1 -0
  213. package/es/platform/sdk-behaviour/applications/interfaces/input/DestructResourceInstanceUseCaseInputModel.js +1 -0
  214. package/es/platform/sdk-behaviour/applications/interfaces/input/SyncStateWithResourceUseCaseInputModel.js +1 -0
  215. package/es/platform/sdk-behaviour/applications/usecases/CreateResourceInstanceUseCase.js +14 -0
  216. package/es/platform/sdk-behaviour/applications/usecases/DestructResourceInstanceUseCase.js +14 -0
  217. package/es/platform/sdk-behaviour/applications/usecases/SyncStateWithResourceUseCase.js +22 -0
  218. package/es/platform/sdk-behaviour/domain/entities/BehaviourResourceConnector.js +49 -0
  219. package/es/platform/sdk-behaviour/domain/entities/interfaces/IBehaviourResourceConnector.js +1 -0
  220. package/es/platform/sdk-behaviour/domain/entities/interfaces/IResourceManagerProxy.js +2 -0
  221. package/es/platform/sdk-behaviour/frameworks/EventHandlerFactory.js +29 -0
  222. package/es/platform/sdk-behaviour/frameworks/SdkBehaviourFactory.js +16 -0
  223. package/es/platform/zfield/domain/entities/fields-manager/FieldsManager.js +3 -1
  224. package/es/platform/zfield/domain/entities/interfaces/FieldApiName.js +1 -0
  225. package/es/platform/zfield/frameworks/ZFieldBehaviourFactory.js +6 -1
  226. package/es/platform/zform/frameworks/ui/EventHandlerFactory.js +2 -2
  227. package/es/platform/zlist/adapters/controllers/ReOrderController.js +25 -0
  228. package/es/platform/zlist/adapters/controllers/ReOrderFailedController.js +26 -0
  229. package/es/platform/zlist/adapters/gateways/Repository.js +11 -2
  230. package/es/platform/zlist/adapters/gateways/Service.js +8 -0
  231. package/es/platform/zlist/adapters/presenters/SelectionTranslator.js +94 -0
  232. package/es/platform/zlist/adapters/presenters/TableTranslator.js +40 -20
  233. package/es/platform/zlist/adapters/presenters/translators/ColumnTranslator.js +63 -5
  234. package/es/platform/zlist/adapters/presenters/translators/Header.js +5 -2
  235. package/es/platform/zlist/adapters/presenters/translators/ResizerStateTranslator.js +7 -3
  236. package/es/platform/zlist/adapters/presenters/translators/Row.js +1 -1
  237. package/es/platform/zlist/adapters/presenters/translators/fields/LookUpFieldTranslator.js +6 -6
  238. package/es/platform/zlist/adapters/presenters/translators/interfaces/State.js +2 -1
  239. package/es/platform/zlist/adapters/presenters/utils/DefaultClientActions.js +79 -7
  240. package/es/platform/zlist/applications/entities-factory/ListFactory.js +3 -2
  241. package/es/platform/zlist/applications/interfaces/input/GetContextUseCaseInput.js +1 -0
  242. package/es/platform/zlist/applications/interfaces/input/ReOrderRecordUseCaseInput.js +1 -0
  243. package/es/platform/zlist/applications/interfaces/input/UpdateMultipleRecordUseCaseInput.js +1 -0
  244. package/es/platform/zlist/applications/usecases/DeleteMultipleRecordUseCase.js +23 -2
  245. package/es/platform/zlist/applications/usecases/DeleteSingleRecordUseCase.js +9 -0
  246. package/es/platform/zlist/applications/usecases/FetchMoreUseCase.js +4 -1
  247. package/es/platform/zlist/applications/usecases/GetContextUseCase.js +18 -0
  248. package/es/platform/zlist/applications/usecases/ReOrderFailedUseCase.js +22 -0
  249. package/es/platform/zlist/applications/usecases/ReOrderUseCase.js +25 -0
  250. package/es/platform/zlist/applications/usecases/RecordExecuteFailedUseCase.js +3 -1
  251. package/es/platform/zlist/applications/usecases/RecordSuccessCallbackUsecase.js +24 -3
  252. package/es/platform/zlist/applications/usecases/RecordUpdateUseCase.js +9 -0
  253. package/es/platform/zlist/applications/usecases/UpdateMultipleRecordUseCase.js +34 -0
  254. package/es/platform/zlist/domain/entities/List.js +91 -3
  255. package/es/platform/zlist/frameworks/EventHandlersFactory.js +10 -6
  256. package/es/platform/zlist/frameworks/ZListBehaviourFactory.js +2 -1
  257. package/es/platform/zrecord/applications/interfaces/input/GetMultipleRecordUsecaseInputModel.js +1 -0
  258. package/es/platform/zrecord/applications/interfaces/input/GetSingleRecordUseCaseInputModel.js +1 -0
  259. package/es/platform/zrecord/applications/usecases/GetMultipleRecordUseCase.js +16 -0
  260. package/es/platform/zrecord/applications/usecases/GetSingleRecordUseCase.js +17 -0
  261. package/es/platform/zrecord/domain/entities/GetReOrderRecordsStrategy.js +40 -0
  262. package/es/platform/zrecord/domain/entities/Records.js +9 -4
  263. package/es/platform/zrecord/domain/entities/RecordsManager.js +11 -1
  264. package/package.json +12 -8
  265. package/es/desk-frameworks/form-connected/frameworks/FormConnectedFactory.js +0 -33
  266. package/es/desk-frameworks/table-connected/frameworks/ListSdkFactory.js +0 -172
  267. package/es/desk-frameworks/table-connected/frameworks/TableConnectedFactory.js +0 -53
  268. package/es/library/dot/components/table-list/frameworks/ui/sub-components/header/SelectAll.js +0 -26
  269. /package/es/{desk-frameworks → platform/components}/form-connected/frameworks/EventHandlersFactory.js +0 -0
  270. /package/es/{desk-frameworks → platform/components}/form-connected/frameworks/FormConnected.js +0 -0
  271. /package/es/{desk-frameworks → platform/components}/index.js +0 -0
  272. /package/es/{desk-frameworks → platform/components}/table-connected/adapters/controllers/AbstractController.js +0 -0
  273. /package/es/{desk-frameworks → platform/components}/table-connected/frameworks/TableConnected.js +0 -0
@@ -0,0 +1,20 @@
1
+ import AbstractUseCase from "./AbstractUseCase";
2
+
3
+ class InitializeUsecase extends AbstractUseCase {
4
+ execute(host) {
5
+ const {
6
+ repository,
7
+ presenter,
8
+ keyboardHandler
9
+ } = this.dependencies;
10
+ const keyboardControls = repository.getKeyboardControls();
11
+
12
+ if (keyboardControls !== null) {
13
+ keyboardHandler.initialize(host);
14
+ presenter.updateKeyboardControls(keyboardControls.toObject());
15
+ }
16
+ }
17
+
18
+ }
19
+
20
+ export default InitializeUsecase;
@@ -0,0 +1,19 @@
1
+ import AbstractUseCase from "./AbstractUseCase";
2
+
3
+ class SpacePress extends AbstractUseCase {
4
+ execute(inputModel) {
5
+ const {
6
+ repository
7
+ } = this.dependencies;
8
+ const keyboardControls = repository.getKeyboardControls();
9
+ const {
10
+ dispatch,
11
+ event
12
+ } = inputModel;
13
+ const data = keyboardControls.getSelectionEvent(event);
14
+ dispatch(data);
15
+ }
16
+
17
+ }
18
+
19
+ export default SpacePress;
@@ -0,0 +1,16 @@
1
+ import AbstractUseCase from "./AbstractUseCase";
2
+
3
+ class UpArrowPress extends AbstractUseCase {
4
+ execute() {
5
+ const {
6
+ repository,
7
+ presenter
8
+ } = this.dependencies;
9
+ const keyboardControls = repository.getKeyboardControls();
10
+ keyboardControls.focusPrevious();
11
+ presenter.updateKeyboardControls(keyboardControls.toObject());
12
+ }
13
+
14
+ }
15
+
16
+ export default UpArrowPress;
@@ -0,0 +1,87 @@
1
+ import { SMART_TABLE_ACTION_TRIGGERED, SMART_TABLE_SELECTION_TOGGLED } from "../../../../../cc/table-connected/constants/Events";
2
+
3
+ class KeyboardControls {
4
+ constructor(focussedIndex, totalLists) {
5
+ this.focussedIndex = focussedIndex;
6
+ this.totalLists = totalLists;
7
+ }
8
+
9
+ setFocussedIndex(index) {
10
+ this.focussedIndex = index;
11
+ }
12
+
13
+ getFocussedIndex() {
14
+ return this.focussedIndex;
15
+ }
16
+
17
+ focusPrevious() {
18
+ if (this.focussedIndex > 0) {
19
+ this.focussedIndex -= 1;
20
+ }
21
+ }
22
+
23
+ focusNext() {
24
+ if (this.totalLists > 1 && this.focussedIndex < this.totalLists - 1) {
25
+ this.focussedIndex += 1;
26
+ }
27
+ } // focusPrevious(): void {
28
+ // if (this.focussedIndex > 0) {
29
+ // this.focussedIndex -= 1;
30
+ // } else if (this.focussedIndex === 0 && this.totalLists > 1) {
31
+ // this.focussedIndex = this.totalLists - 1;
32
+ // }
33
+ // }
34
+ // focusNext(): void {
35
+ // if ((this.totalLists > 1) && (this.focussedIndex <= this.totalLists - 1)) {
36
+ // if (this.focussedIndex >= this.totalLists - 1) {
37
+ // this.focussedIndex = 0;
38
+ // } else {
39
+ // this.focussedIndex += 1;
40
+ // }
41
+ // }
42
+ // }
43
+ // getPreviousFocusEvent(event: KeyboardEvent): EventModel {
44
+ // return {
45
+ // type: SMART_TABLE_PREVIOUS_FOCUS,
46
+ // payload: {
47
+ // event
48
+ // }
49
+ // }
50
+ // }
51
+ // getNextFocusEvent(event: KeyboardEvent): EventModel {
52
+ // return {
53
+ // type: SMART_TABLE_NEXT_FOCUS,
54
+ // payload: {
55
+ // event
56
+ // }
57
+ // }
58
+ // }
59
+
60
+
61
+ getSelectionEvent(event) {
62
+ return {
63
+ type: SMART_TABLE_SELECTION_TOGGLED,
64
+ payload: {
65
+ event
66
+ }
67
+ };
68
+ }
69
+
70
+ getClickActionEvent(event) {
71
+ return {
72
+ type: SMART_TABLE_ACTION_TRIGGERED,
73
+ payload: {
74
+ event
75
+ }
76
+ };
77
+ }
78
+
79
+ toObject() {
80
+ return {
81
+ focussedIndex: this.focussedIndex
82
+ };
83
+ }
84
+
85
+ }
86
+
87
+ export default KeyboardControls;
@@ -0,0 +1,48 @@
1
+ import { KEYBOARD_CONTROL_DOWN_ARROW_PRESSED, KEYBOARD_CONTROL_ENTER_PRESSED, KEYBOARD_CONTROL_SPACE_PRESSED, KEYBOARD_CONTROL_UP_ARROW_PRESSED } from "../../../../bc/keyboard-controls/Constants";
2
+ import UpArrowPressController from "../adapters/controllers/UpArrowPressController";
3
+ import DownArrowPressController from "../adapters/controllers/DownArrowPressController";
4
+ import SpacePressController from "../adapters/controllers/SpacePressController";
5
+ import EnterPressController from "../adapters/controllers/EnterPressController";
6
+ import Service from "../adapters/gateways/Service";
7
+ import Repository from "../adapters/gateways/Repository";
8
+ import Presenter from "../adapters/presenters/Presenter";
9
+ import KeyboardHandler from "../adapters/gateways/KeyboardHandler"; // import FocusPreviousController from "../adapters/controllers/FocusPreviousController";
10
+ // import FocusNextController from "../adapters/controllers/FocusNextController";
11
+
12
+ import LifeCycleAction from "../../../../cc/architecture/LifeCycleActionEnum";
13
+ import InitializeController from "../adapters/controllers/InitializeController";
14
+ import DestructController from "../adapters/controllers/DestructController";
15
+
16
+ class EventHandlerFactory {
17
+ static create() {
18
+ const service = this.createService();
19
+ return this.createHandlers(service);
20
+ }
21
+
22
+ static createService() {
23
+ const repository = new Repository();
24
+ const presenter = new Presenter();
25
+ const keyboardHandler = new KeyboardHandler();
26
+ return new Service({
27
+ repository: repository,
28
+ presenter,
29
+ keyboardHandler
30
+ });
31
+ }
32
+
33
+ static createHandlers(service) {
34
+ return {
35
+ [LifeCycleAction.MOUNT]: new InitializeController(service).handle,
36
+ [LifeCycleAction.UN_MOUNT]: new DestructController(service).handle,
37
+ // [SMART_TABLE_PREVIOUS_FOCUS]: new FocusPreviousController(service).handle,
38
+ // [SMART_TABLE_NEXT_FOCUS]: new FocusNextController(service).handle,
39
+ [KEYBOARD_CONTROL_UP_ARROW_PRESSED]: new UpArrowPressController(service).handle,
40
+ [KEYBOARD_CONTROL_DOWN_ARROW_PRESSED]: new DownArrowPressController(service).handle,
41
+ [KEYBOARD_CONTROL_SPACE_PRESSED]: new SpacePressController(service).handle,
42
+ [KEYBOARD_CONTROL_ENTER_PRESSED]: new EnterPressController(service).handle
43
+ };
44
+ }
45
+
46
+ }
47
+
48
+ export default EventHandlerFactory;
@@ -0,0 +1,23 @@
1
+ import EventHandlerFactory from "./EventHandlerFactory";
2
+ import events from "../../../../bc/keyboard-controls/Events";
3
+ import properties from "../../../../bc/keyboard-controls/Properties";
4
+
5
+ class KeyboardControlBehaviourFactory {
6
+ static create() {
7
+ return {
8
+ name: 'keyboardControls',
9
+ setInitialState: () => {
10
+ return {
11
+ focussedIndex: 0,
12
+ totalLists: 0
13
+ };
14
+ },
15
+ eventHandlers: EventHandlerFactory.create(),
16
+ events,
17
+ properties
18
+ };
19
+ }
20
+
21
+ }
22
+
23
+ export default KeyboardControlBehaviourFactory;
@@ -10,6 +10,7 @@ import UpdateController from "../adapters/controllers/UpdateController";
10
10
  import DestructController from "../adapters/controllers/DestructController";
11
11
  import SelectController from "../adapters/controllers/SelectController";
12
12
  import DeselectController from "../adapters/controllers/DeselectController";
13
+ import LifeCycleEvents from "../../../../cc/component/LifeCycleEventsEnum";
13
14
 
14
15
  class ActionHandlerFactory {
15
16
  static create() {
@@ -28,9 +29,9 @@ class ActionHandlerFactory {
28
29
 
29
30
  static createHandlers(service) {
30
31
  return {
31
- ['MOUNT']: new InitializeController(service).handle,
32
- ['UPDATE_PROPERTIES']: new UpdateController(service).handle,
33
- ['UNMOUNT']: new DestructController(service).handle,
32
+ [LifeCycleEvents.MOUNT]: new InitializeController(service).handle,
33
+ [LifeCycleEvents.UPDATE_PROPERTIES]: new UpdateController(service).handle,
34
+ [LifeCycleEvents.UN_MOUNT]: new DestructController(service).handle,
34
35
  [LIST_SELECTION_SELECT_ITEM]: new SelectController(service).handle,
35
36
  [LIST_SELECTION_DESELECT_ITEM]: new DeselectController(service).handle,
36
37
  [LIST_SELECTION_TOGGLE_ITEMS]: new SelectionController(service).handle,
@@ -1,31 +1,18 @@
1
+ import LifeCycleEvents from "../../../../cc/component/LifeCycleEventsEnum";
1
2
  import Behaviour from "../../domain/entities/Behaviour";
2
3
  import EventHandlersFactory from "./EventHandlersFactory";
3
4
  import PropertiesFactory from "./PropertiesFactory";
4
- /* eslint-disable max-lines-per-function, @zohodesk/architecturerules/no-returnStatement-rule */
5
5
 
6
6
  class BehavioursFactory {
7
7
  static create(input) {
8
- /* eslint-disable-next-line @zohodesk/architecturerules/no-defaultProps-rule */
9
- let behaviours = input.behaviours || [];
8
+ const behaviours = input.behaviours ? input.behaviours : [];
10
9
  return behaviours.map(behaviour => {
11
10
  // DEPRECATED: Remove while refactoring actionHandlers
12
11
  if (behaviour.actionHandlers) {
13
12
  behaviour.eventHandlers = behaviour.actionHandlers;
14
13
  }
15
14
 
16
- const {
17
- eventHandlers
18
- } = behaviour;
19
- let newEventHandlers = Object.keys(eventHandlers).reduce((res, next) => {
20
- let key = next;
21
-
22
- if (['MOUNT', 'UN_MOUNT', 'UPDATE_PROPERTIES'].includes(next)) {
23
- key = input.name + '#' + next;
24
- }
25
-
26
- res[key] = eventHandlers[next];
27
- return res;
28
- }, {});
15
+ const newEventHandlers = BehavioursFactory.createNamedEventHandlers(behaviour.eventHandlers, input);
29
16
  return new Behaviour({
30
17
  name: behaviour.name,
31
18
  eventHandlers: EventHandlersFactory(newEventHandlers),
@@ -38,6 +25,21 @@ class BehavioursFactory {
38
25
  });
39
26
  }
40
27
 
28
+ static createNamedEventHandlers(eventHandlers, input) {
29
+ return Object.keys(eventHandlers).reduce((res, key) => {
30
+ // if (['MOUNT', 'UN_MOUNT', 'UPDATE_PROPERTIES'].includes(eventName)) {
31
+ // if ('MOUNT', LifeCycleEvents.UN_MOUNT, LifeCycleEvents.UPDATE_PROPERTIES, LifeCycleEvents.STATE_UPDATED].includes(eventName)) {
32
+ let eventName = key;
33
+
34
+ if (LifeCycleEvents[key]) {
35
+ eventName = `${input.name}#${key}`;
36
+ }
37
+
38
+ res[eventName] = eventHandlers[key];
39
+ return res;
40
+ }, {});
41
+ }
42
+
41
43
  }
42
44
 
43
45
  export default BehavioursFactory;
@@ -21,6 +21,9 @@ class UpdatePropertyUseCase extends AbstractUseCase {
21
21
  previousProperties: properties
22
22
  });
23
23
  eventManager.dispatch(updatePropertyAction);
24
+ eventManager.dispatch(component.getStateUpdatedAction({
25
+ state
26
+ }));
24
27
  }
25
28
  }
26
29
 
@@ -4,7 +4,8 @@ class UpdateStateUseCase extends AbstractUseCase {
4
4
  execute(newState) {
5
5
  let {
6
6
  repository,
7
- presenter
7
+ presenter,
8
+ eventManager
8
9
  } = this.dependencies;
9
10
  let component = repository.getComponent(); // let preState=component.getState();
10
11
  // console.log(`preState ${component.getName()}`,preState)
@@ -13,6 +14,9 @@ class UpdateStateUseCase extends AbstractUseCase {
13
14
  let state = component.getState(); // console.log(`newState ${component.getName()}`,state)
14
15
 
15
16
  presenter.render(state);
17
+ eventManager.dispatch(component.getStateUpdatedAction({
18
+ state
19
+ }));
16
20
  }
17
21
 
18
22
  }
@@ -64,6 +64,10 @@ export default class Component {
64
64
  return this._lifeCycleAction.getUpdatePropertiesAction(payload);
65
65
  }
66
66
 
67
+ getStateUpdatedAction(payload) {
68
+ return this._lifeCycleAction.getStateUpdatedAction(payload);
69
+ }
70
+
67
71
  getState() {
68
72
  let state = this._tranformer(this.mergeStateAndProps());
69
73
 
@@ -1,23 +1,27 @@
1
1
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
2
2
 
3
+ import LifeCycleEvents from "../../../../cc/component/LifeCycleEventsEnum";
3
4
  export default class LifeCycleAction {
4
5
  constructor(name) {
5
6
  _defineProperty(this, "mount", void 0);
6
7
 
7
8
  _defineProperty(this, "unmount", void 0);
8
9
 
10
+ _defineProperty(this, "name", void 0);
11
+
9
12
  _defineProperty(this, "contructUpdatePropertiesAction", void 0);
10
13
 
14
+ this.name = name;
11
15
  this.mount = {
12
- type: `${name}#MOUNT`
16
+ type: `${name}#${LifeCycleEvents.MOUNT}`
13
17
  };
14
18
  this.unmount = {
15
- type: `${name}#UN_MOUNT`
19
+ type: `${name}#${LifeCycleEvents.UN_MOUNT}`
16
20
  };
17
21
 
18
22
  this.contructUpdatePropertiesAction = payload => {
19
23
  return {
20
- type: `${name}#UPDATE_PROPERTIES`,
24
+ type: `${name}#${LifeCycleEvents.UPDATE_PROPERTIES}`,
21
25
  payload
22
26
  };
23
27
  };
@@ -31,6 +35,13 @@ export default class LifeCycleAction {
31
35
  return this.unmount;
32
36
  }
33
37
 
38
+ getStateUpdatedAction(payload) {
39
+ return {
40
+ type: `${this.name}#${LifeCycleEvents.STATE_UPDATED}`,
41
+ payload
42
+ };
43
+ }
44
+
34
45
  getUpdatePropertiesAction(payload) {
35
46
  return this.contructUpdatePropertiesAction(payload);
36
47
  }
@@ -14,6 +14,14 @@ class ComponentRegistry {
14
14
  }
15
15
 
16
16
  register(name, component) {
17
+ if (this.components.has(name)) {
18
+ console.warn(`Component with name "${name}" is already registered. Overwriting the existing component.`);
19
+ }
20
+
21
+ if (this.components.has(name) && this.get(name) !== component) {
22
+ console.warn(`Component with name "${name}" is already registered with a different instance. Overwriting the existing component.`);
23
+ }
24
+
17
25
  this.components.set(name, component);
18
26
  }
19
27
 
@@ -1,9 +1,13 @@
1
1
  import ActionIcon from "../../../../legacy-to-new-arch/action-icon/frameworks/ui/ActionIcon";
2
2
  import TableColumnSort from "../../../../legacy-to-new-arch/table-column-sort/frameworks/ui/TableColumnSort";
3
+ import TableColumnChooser from "../../../../legacy-to-new-arch/table-column-chooser/frameworks/ui/TableColumnChooser";
4
+ import Checkbox from "../../../../legacy-to-new-arch/checkbox/frameworks/ui/Checkbox";
3
5
  import TableColumnFilter from "../../../../legacy-to-new-arch/table-column-filter/frameworks/ui/TableColumnFilter";
4
6
  const ActionComponentMapping = {
5
7
  ['ActionIcon']: ActionIcon,
6
8
  ['TableColumnSort']: TableColumnSort,
9
+ ['TableColumnChooser']: TableColumnChooser,
10
+ ['TableSelectAll']: Checkbox,
7
11
  ['TableColumnFilter']: TableColumnFilter
8
12
  };
9
13
  export default ActionComponentMapping;
@@ -24,7 +24,7 @@ export default class EventHandlersFactory {
24
24
  return {
25
25
  [ActionLocationConstants.MOUNT]: initializeController.handle,
26
26
  [ActionLocationConstants.UPDATE_PROPERTIES]: propertiesChangeController.handle,
27
- [ActionLocationConstants.UNMOUNT]: unmountController.handle
27
+ [ActionLocationConstants.UN_MOUNT]: unmountController.handle
28
28
  };
29
29
  }
30
30
 
@@ -0,0 +1,36 @@
1
+ import SmartTableConstants from "../../../../../../cc/table-connected/constants/Events";
2
+ import AbstractController from "./AbstractController";
3
+
4
+ class KeyboardRowClickController extends AbstractController {
5
+ handle(event) {
6
+ const {
7
+ state,
8
+ dispatch,
9
+ action
10
+ } = event;
11
+ const {
12
+ event: keyboardEvent
13
+ } = action.payload;
14
+ const {
15
+ focussedRow,
16
+ data
17
+ } = state.properties || {};
18
+ const record = data === null || data === void 0 ? void 0 : data.rows[focussedRow];
19
+
20
+ if (!record) {
21
+ return;
22
+ }
23
+
24
+ let id = record.id;
25
+ dispatch({
26
+ type: SmartTableConstants.SMART_TABLE_ROW_ACTION_TRIGGERED,
27
+ payload: {
28
+ id,
29
+ event: keyboardEvent
30
+ }
31
+ });
32
+ }
33
+
34
+ }
35
+
36
+ export default KeyboardRowClickController;
@@ -0,0 +1,31 @@
1
+ import { LIST_SELECTION_TOGGLE_ITEMS } from "../../../../../../bc/list-selection/Constants";
2
+ import AbstractController from "./AbstractController";
3
+
4
+ class KeyboardRowSelectController extends AbstractController {
5
+ handle(event) {
6
+ const {
7
+ state,
8
+ dispatch
9
+ } = event;
10
+ const {
11
+ focussedRow,
12
+ data
13
+ } = state.properties || {};
14
+ const record = data === null || data === void 0 ? void 0 : data.rows[focussedRow];
15
+
16
+ if (!record) {
17
+ return;
18
+ }
19
+
20
+ let id = record.id;
21
+ dispatch({
22
+ type: LIST_SELECTION_TOGGLE_ITEMS,
23
+ payload: {
24
+ selected: [id]
25
+ }
26
+ });
27
+ }
28
+
29
+ }
30
+
31
+ export default KeyboardRowSelectController;
@@ -4,4 +4,6 @@ export { default as ScrollController } from "./ScrollController";
4
4
  export { default as SortByController } from "./SortByController";
5
5
  export { default as SortedController } from "./SortedController";
6
6
  export { default as FieldChangeController } from "./FieldChangeController";
7
- export { default as FieldClickController } from "./FieldClickController";
7
+ export { default as FieldClickController } from "./FieldClickController";
8
+ export { default as KeyboardRowSelectController } from "./KeyboardRowSelectController";
9
+ export { default as KeyboardRowClickController } from "./KeyboardRowClickController";
@@ -4,10 +4,11 @@ class TableTranslator {
4
4
  data,
5
5
  selectionConfig,
6
6
  selection,
7
- sortBy
7
+ sortBy,
8
+ focussedRow
8
9
  } = state.properties;
9
10
  const headers = TableTranslator.translateHeaders(data.headers, sortBy);
10
- const rows = TableTranslator.translateRows(data.rows, selection, selectionConfig);
11
+ const rows = TableTranslator.translateRows(data.rows, selection, selectionConfig, focussedRow);
11
12
  state = { ...state,
12
13
  properties: { ...state.properties,
13
14
  data: { ...data,
@@ -28,13 +29,14 @@ class TableTranslator {
28
29
  });
29
30
  }
30
31
 
31
- static translateRows(rows, selection, selectionConfig) {
32
+ static translateRows(rows, selection, selectionConfig, focussedRow) {
32
33
  const {
33
34
  selected,
34
35
  hasAllSelected
35
36
  } = selection;
36
37
  return rows.map((row, index) => {
37
38
  return { ...row,
39
+ isFocussed: focussedRow === index,
38
40
  isSelected: selected.includes(row.id),
39
41
  isSelectable: selected.includes(row.id) || !hasAllSelected,
40
42
  selectionTooltip: this.getSelectionTooltip(row.id, index, selected, hasAllSelected, selectionConfig)
@@ -0,0 +1,8 @@
1
+ import { useState } from 'react';
2
+ export function useDropIndicator() {
3
+ const [dropIndicator, setDropIndicator] = useState({
4
+ index: null,
5
+ position: ''
6
+ });
7
+ return [dropIndicator, setDropIndicator];
8
+ }
@@ -0,0 +1,8 @@
1
+ import { useState, useEffect } from 'react';
2
+ export function useRowData(rows) {
3
+ const [rowData, setRowData] = useState(rows);
4
+ useEffect(() => {
5
+ setRowData(rows);
6
+ }, [rows]);
7
+ return [rowData, setRowData];
8
+ }
@@ -0,0 +1,93 @@
1
+ import { useCallback } from 'react';
2
+ import TableListEventConstants from "../../../../../../cc/table-list/Constants";
3
+ import { useRowData } from "./useRowData";
4
+ import { useDropIndicator } from "./useDropIndicator";
5
+ import { reorderArray, setTableUserSelect, adjustHelperElementPosition, getDropIndicator } from "../utils/reOrder"; // @ts-ignore
6
+
7
+ import style from "./../ui/css/TableList.module.css";
8
+ export function useTableRowReorder(_ref) {
9
+ let {
10
+ rows,
11
+ TableRef,
12
+ dispatch
13
+ } = _ref;
14
+ const [rowData, setRowData] = useRowData(rows);
15
+ const [dropIndicator, setDropIndicator] = useDropIndicator();
16
+ const {
17
+ TABLE_LIST_ROW_DRAG_START,
18
+ TABLE_LIST_ROW_DRAG_END
19
+ } = TableListEventConstants;
20
+
21
+ const handleSortStart = _ref2 => {
22
+ let {
23
+ index
24
+ } = _ref2;
25
+ setTableUserSelect(TableRef, 'none');
26
+ adjustHelperElementPosition(TableRef, style.dragging);
27
+ dispatch({
28
+ type: TABLE_LIST_ROW_DRAG_START,
29
+ payload: {
30
+ index
31
+ }
32
+ });
33
+ };
34
+
35
+ const handleSortEnd = _ref3 => {
36
+ let {
37
+ oldIndex,
38
+ newIndex
39
+ } = _ref3;
40
+ setTableUserSelect(TableRef, '');
41
+ let arr = reorderArray(rowData, oldIndex, newIndex);
42
+ setRowData(arr);
43
+ setDropIndicator({
44
+ index: null,
45
+ position: ''
46
+ });
47
+ dispatch({
48
+ type: TABLE_LIST_ROW_DRAG_END,
49
+ payload: {
50
+ oldIndex,
51
+ newIndex
52
+ }
53
+ });
54
+ };
55
+
56
+ const handleSortOver = _ref4 => {
57
+ let {
58
+ index,
59
+ oldIndex,
60
+ newIndex
61
+ } = _ref4;
62
+ const dropIndicatorData = getDropIndicator({
63
+ index,
64
+ oldIndex,
65
+ newIndex,
66
+ rowsLength: rows.length
67
+ });
68
+ setDropIndicator({
69
+ index: dropIndicatorData.index,
70
+ position: dropIndicatorData.position
71
+ });
72
+ };
73
+
74
+ const getHelperDimensions = useCallback(_ref5 => {
75
+ let {
76
+ node
77
+ } = _ref5;
78
+ return {
79
+ height: node.offsetHeight,
80
+ width: TableRef.current.offsetWidth
81
+ };
82
+ }, [TableRef]);
83
+ return {
84
+ rowData,
85
+ dropIndicator,
86
+ handleSortStart,
87
+ handleSortEnd,
88
+ handleSortOver,
89
+ getHelperDimensions,
90
+ setRowData,
91
+ setDropIndicator
92
+ };
93
+ }
@@ -1,11 +1,14 @@
1
1
  import { TableListConstants } from "../../../../../../cc/table-list";
2
- import { SelectItemController, SelectAllController, ScrollController, FieldChangeController, FieldClickController, SortByController } from "../../adapters/controllers";
2
+ import { SelectItemController, SelectAllController, ScrollController, FieldChangeController, FieldClickController, SortByController, KeyboardRowSelectController, KeyboardRowClickController } from "../../adapters/controllers";
3
3
  import TableRowConstants from "../../../../../../cc/table-list/row/Constants";
4
4
  import RowClickController from "../../adapters/controllers/RowClickController";
5
+ import { SMART_TABLE_ACTION_TRIGGERED, SMART_TABLE_SELECTION_TOGGLED } from "../../../../../../cc/table-connected/constants/Events";
5
6
 
6
7
  class EventHandlersFactory {
7
8
  static create() {
8
9
  return {
10
+ [SMART_TABLE_SELECTION_TOGGLED]: new KeyboardRowSelectController().handle,
11
+ [SMART_TABLE_ACTION_TRIGGERED]: new KeyboardRowClickController().handle,
9
12
  [TableRowConstants.TABLE_ROW_CLICKED]: new RowClickController().handle,
10
13
  [TableListConstants.TABLE_LIST_TOGGLE_ITEM_SELECTION]: new SelectItemController().handle,
11
14
  [TableListConstants.TABLE_LIST_TOGGLE_ALL_SELECTION]: new SelectAllController().handle,