@zohodesk/library-platform 1.1.2 → 1.1.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 (147) hide show
  1. package/es/bc/column-chooser/Constants.js +4 -0
  2. package/es/bc/column-chooser/EventHandlers.js +2 -0
  3. package/es/bc/column-chooser/Events.js +59 -0
  4. package/es/bc/column-chooser/Properties.js +18 -0
  5. package/es/bc/keyboard-controls/Constants.js +5 -0
  6. package/es/bc/keyboard-controls/Events.js +51 -0
  7. package/es/bc/keyboard-controls/Properties.js +11 -0
  8. package/es/bc/keyboard-controls/types/KeyboardControlBehaviourState.js +1 -0
  9. package/es/bc/zlist/Properties.js +15 -0
  10. package/es/cc/fields/field/Properties.js +10 -1
  11. package/es/cc/fields/index.js +1 -1
  12. package/es/cc/table-column-chooser/Constants.js +6 -0
  13. package/es/cc/table-column-chooser/Events.js +69 -0
  14. package/es/cc/table-column-chooser/Properties.js +122 -0
  15. package/es/cc/table-column-chooser/index.js +3 -0
  16. package/es/cc/table-connected/Properties.js +16 -0
  17. package/es/cc/table-connected/constants/Events.js +4 -1
  18. package/es/cc/table-list/Properties.js +27 -1
  19. package/es/cc/table-list/data-types/KeyboardControlsConfig.js +1 -0
  20. package/es/cc/table-list/row/Properties.js +18 -0
  21. package/es/desk-frameworks/table-connected/adapters/controllers/ColumnChooserOpenedController.js +36 -0
  22. package/es/desk-frameworks/table-connected/adapters/controllers/ColumnChooserUpdateController.js +25 -0
  23. package/es/desk-frameworks/table-connected/frameworks/EventHandlersFactory.js +8 -2
  24. package/es/desk-frameworks/table-connected/frameworks/TableConnectedFactory.js +5 -2
  25. package/es/desk-frameworks/table-connected/frameworks/TableConnectedView.js +9 -6
  26. package/es/library/behaviours/keyboard-controls/adapters/controllers/AbstractController.js +9 -0
  27. package/es/library/behaviours/keyboard-controls/adapters/controllers/DestructController.js +20 -0
  28. package/es/library/behaviours/keyboard-controls/adapters/controllers/DownArrowPressController.js +20 -0
  29. package/es/library/behaviours/keyboard-controls/adapters/controllers/EnterPressController.js +24 -0
  30. package/es/library/behaviours/keyboard-controls/adapters/controllers/FocusNextController.js +20 -0
  31. package/es/library/behaviours/keyboard-controls/adapters/controllers/FocusPreviousController.js +20 -0
  32. package/es/library/behaviours/keyboard-controls/adapters/controllers/InitializeController.js +20 -0
  33. package/es/library/behaviours/keyboard-controls/adapters/controllers/SpacePressController.js +24 -0
  34. package/es/library/behaviours/keyboard-controls/adapters/controllers/UpArrowPressController.js +20 -0
  35. package/es/library/behaviours/keyboard-controls/adapters/gateways/KeyboardHandler.js +81 -0
  36. package/es/library/behaviours/keyboard-controls/adapters/gateways/Repository.js +47 -0
  37. package/es/library/behaviours/keyboard-controls/adapters/gateways/Service.js +40 -0
  38. package/es/library/behaviours/keyboard-controls/adapters/presenters/Presenter.js +39 -0
  39. package/es/library/behaviours/keyboard-controls/applications/interfaces/UseCase.js +0 -0
  40. package/es/library/behaviours/keyboard-controls/applications/interfaces/UseCaseDependencies.js +1 -0
  41. package/es/library/behaviours/keyboard-controls/applications/interfaces/gateways/IKeyboardHandler.js +1 -0
  42. package/es/library/behaviours/keyboard-controls/applications/interfaces/gateways/IRepository.js +1 -0
  43. package/es/library/behaviours/keyboard-controls/applications/interfaces/gateways/IService.js +1 -0
  44. package/es/library/behaviours/keyboard-controls/applications/interfaces/input/DestructInputModel.js +1 -0
  45. package/es/library/behaviours/keyboard-controls/applications/interfaces/input/DownArrowPressInputModel.js +1 -0
  46. package/es/library/behaviours/keyboard-controls/applications/interfaces/input/EnterPressInputModel.js +1 -0
  47. package/es/library/behaviours/keyboard-controls/applications/interfaces/input/FocusNextInputModel.js +1 -0
  48. package/es/library/behaviours/keyboard-controls/applications/interfaces/input/FocusPreviousInputModel.js +1 -0
  49. package/es/library/behaviours/keyboard-controls/applications/interfaces/input/InitializeInputModel.js +1 -0
  50. package/es/library/behaviours/keyboard-controls/applications/interfaces/input/RowActionInputModel.js +1 -0
  51. package/es/library/behaviours/keyboard-controls/applications/interfaces/input/SelectionInputModel.js +1 -0
  52. package/es/library/behaviours/keyboard-controls/applications/interfaces/input/SpacePressInputModel.js +1 -0
  53. package/es/library/behaviours/keyboard-controls/applications/interfaces/input/UpArrowPressInputModel.js +1 -0
  54. package/es/library/behaviours/keyboard-controls/applications/interfaces/output/IPresenter.js +1 -0
  55. package/es/library/behaviours/keyboard-controls/applications/interfaces/output/OutputModel.js +1 -0
  56. package/es/library/behaviours/keyboard-controls/applications/usecases/AbstractUseCase.js +19 -0
  57. package/es/library/behaviours/keyboard-controls/applications/usecases/DestructUsecase.js +17 -0
  58. package/es/library/behaviours/keyboard-controls/applications/usecases/DownArrowPress.js +16 -0
  59. package/es/library/behaviours/keyboard-controls/applications/usecases/EnterPress.js +19 -0
  60. package/es/library/behaviours/keyboard-controls/applications/usecases/FocusNextUsecase.js +16 -0
  61. package/es/library/behaviours/keyboard-controls/applications/usecases/FocusPreviousUsecase.js +16 -0
  62. package/es/library/behaviours/keyboard-controls/applications/usecases/InitializeUsecase.js +20 -0
  63. package/es/library/behaviours/keyboard-controls/applications/usecases/SpacePress.js +19 -0
  64. package/es/library/behaviours/keyboard-controls/applications/usecases/UpArrowPress.js +16 -0
  65. package/es/library/behaviours/keyboard-controls/domain/entities/KeyboardControls.js +87 -0
  66. package/es/library/behaviours/keyboard-controls/domain/entities/interface/IKeyboardControls.js +1 -0
  67. package/es/library/behaviours/keyboard-controls/domain/entities/interface/KeyboardControlModel.js +1 -0
  68. package/es/library/behaviours/keyboard-controls/frameworks/EventHandlerFactory.js +48 -0
  69. package/es/library/behaviours/keyboard-controls/frameworks/KeyboardControlBehaviourFactory.js +23 -0
  70. package/es/library/custom-component/frameworks/ui/ComponentRegistry.js +8 -0
  71. package/es/library/dot/components/action-location/frameworks/ui/ActionComponentMapping.js +4 -0
  72. package/es/library/dot/components/table-list/adapters/controllers/KeyboardRowClickController.js +36 -0
  73. package/es/library/dot/components/table-list/adapters/controllers/KeyboardRowSelectController.js +31 -0
  74. package/es/library/dot/components/table-list/adapters/controllers/index.js +3 -1
  75. package/es/library/dot/components/table-list/adapters/presenters/TableTranslator.js +5 -3
  76. package/es/library/dot/components/table-list/frameworks/ui/EventHandlersFactory.js +4 -1
  77. package/es/library/dot/components/table-list/frameworks/ui/TableListView.js +10 -3
  78. package/es/library/dot/components/table-list/frameworks/ui/css/TableList.module.css +3 -0
  79. package/es/library/dot/components/table-list/frameworks/ui/sub-components/Header.js +9 -10
  80. package/es/library/dot/components/table-list/frameworks/ui/sub-components/Rows.js +7 -3
  81. package/es/library/dot/components/table-list/frameworks/ui/sub-components/header/HeaderData.js +7 -2
  82. package/es/library/dot/components/table-list/frameworks/ui/sub-components/header/MassAction.js +28 -0
  83. package/es/library/dot/components/table-list/frameworks/ui/sub-components/row/Row.js +5 -0
  84. package/es/library/dot/components/table-list/frameworks/ui/sub-components/row/RowData.js +7 -2
  85. package/es/library/dot/legacy-to-new-arch/table-column-chooser/frameworks/ui/TableColumnChooser.js +11 -0
  86. package/es/library/dot/legacy-to-new-arch/table-column-chooser/frameworks/ui/TableColumnChooserView.js +79 -0
  87. package/es/library/dot/legacy-to-new-arch/table-field-components/lookup-field/frameworks/ui/LookupFieldView.js +6 -8
  88. package/es/platform/client-actions/components/row-actions-renderer/frameworks/ui/RowActionsRenderer.module.css +0 -6
  89. package/es/platform/client-actions/components/row-actions-renderer/frameworks/ui/RowActionsRendererView.js +1 -1
  90. package/es/platform/column-chooser/adapters/controllers/AbstractController.js +10 -0
  91. package/es/platform/column-chooser/adapters/controllers/ColumnChooserCloseController.js +21 -0
  92. package/es/platform/column-chooser/adapters/controllers/ColumnChooserOpenController.js +26 -0
  93. package/es/platform/column-chooser/adapters/controllers/ColumnChooserReorderController.js +26 -0
  94. package/es/platform/column-chooser/adapters/controllers/ColumnChooserSaveController.js +21 -0
  95. package/es/platform/column-chooser/adapters/controllers/ColumnChooserSearchController.js +24 -0
  96. package/es/platform/column-chooser/adapters/controllers/ColumnChooserSelectController.js +26 -0
  97. package/es/platform/column-chooser/adapters/gateways/Repository.js +38 -0
  98. package/es/platform/column-chooser/adapters/gateways/Service.js +34 -0
  99. package/es/platform/column-chooser/adapters/gateways/State.js +1 -0
  100. package/es/platform/column-chooser/adapters/presenters/Presenter.js +25 -0
  101. package/es/platform/column-chooser/applications/interfaces/UsecaseDependencies.js +1 -0
  102. package/es/platform/column-chooser/applications/interfaces/gateways/IRepository.js +1 -0
  103. package/es/platform/column-chooser/applications/interfaces/gateways/IService.js +1 -0
  104. package/es/platform/column-chooser/applications/interfaces/input/ColumnChooserCloseInput.js +1 -0
  105. package/es/platform/column-chooser/applications/interfaces/input/ColumnChooserOpenInput.js +1 -0
  106. package/es/platform/column-chooser/applications/interfaces/input/ColumnChooserReorderInput.js +1 -0
  107. package/es/platform/column-chooser/applications/interfaces/input/ColumnChooserSaveInput.js +1 -0
  108. package/es/platform/column-chooser/applications/interfaces/input/ColumnChooserSearchInput.js +1 -0
  109. package/es/platform/column-chooser/applications/interfaces/input/ColumnChooserSelectInput.js +1 -0
  110. package/es/platform/column-chooser/applications/interfaces/output/BehaviourState.js +1 -0
  111. package/es/platform/column-chooser/applications/interfaces/output/IPresenter.js +1 -0
  112. package/es/platform/column-chooser/applications/usecases/AbstractUseCase.js +18 -0
  113. package/es/platform/column-chooser/applications/usecases/ColumnChooserCloseUseCase.js +34 -0
  114. package/es/platform/column-chooser/applications/usecases/ColumnChooserOpenUseCase.js +20 -0
  115. package/es/platform/column-chooser/applications/usecases/ColumnChooserReorderUseCase.js +20 -0
  116. package/es/platform/column-chooser/applications/usecases/ColumnChooserSaveUseCase.js +31 -0
  117. package/es/platform/column-chooser/applications/usecases/ColumnChooserSearchUseCase.js +19 -0
  118. package/es/platform/column-chooser/applications/usecases/ColumnChooserSelectUseCase.js +26 -0
  119. package/es/platform/column-chooser/domain/entities/ColumnChooserImp.js +95 -0
  120. package/es/platform/column-chooser/domain/entities/ReorderEntityImp.js +35 -0
  121. package/es/platform/column-chooser/domain/entities/SearchEntityImp.js +28 -0
  122. package/es/platform/column-chooser/domain/entities/SelectEntityImp.js +58 -0
  123. package/es/platform/column-chooser/domain/entities/interfaces/ColumnChooser.js +1 -0
  124. package/es/platform/column-chooser/domain/entities/interfaces/ReorderEntity.js +1 -0
  125. package/es/platform/column-chooser/domain/entities/interfaces/SearchEntity.js +1 -0
  126. package/es/platform/column-chooser/domain/entities/interfaces/SelectEntity.js +1 -0
  127. package/es/platform/column-chooser/frameworks/ColumnChooserBehaviourFactory.js +19 -0
  128. package/es/platform/column-chooser/frameworks/EventHandlersFactory.js +30 -0
  129. package/es/platform/data-source/http-template/updateSelectedFields.js +28 -0
  130. package/es/platform/data-source/index.js +2 -0
  131. package/es/platform/zfield/domain/entities/fields-manager/FieldsManager.js +3 -1
  132. package/es/platform/zfield/domain/entities/interfaces/FieldApiName.js +1 -0
  133. package/es/platform/zfield/frameworks/ZFieldBehaviourFactory.js +6 -1
  134. package/es/platform/zlist/adapters/gateways/Repository.js +4 -2
  135. package/es/platform/zlist/adapters/presenters/SelectionTranslator.js +92 -0
  136. package/es/platform/zlist/adapters/presenters/TableTranslator.js +32 -19
  137. package/es/platform/zlist/adapters/presenters/translators/ColumnTranslator.js +63 -4
  138. package/es/platform/zlist/adapters/presenters/translators/Row.js +1 -1
  139. package/es/platform/zlist/adapters/presenters/translators/fields/LookUpFieldTranslator.js +6 -6
  140. package/es/platform/zlist/adapters/presenters/translators/interfaces/State.js +2 -1
  141. package/es/platform/zlist/adapters/presenters/utils/DefaultClientActions.js +78 -6
  142. package/es/platform/zlist/applications/entities-factory/ListFactory.js +3 -2
  143. package/es/platform/zlist/applications/usecases/FetchMoreUseCase.js +4 -1
  144. package/es/platform/zlist/applications/usecases/RecordExecuteFailedUseCase.js +3 -1
  145. package/es/platform/zlist/domain/entities/List.js +14 -2
  146. package/package.json +6 -4
  147. package/es/library/dot/components/table-list/frameworks/ui/sub-components/header/SelectAll.js +0 -26
@@ -0,0 +1,4 @@
1
+ export const COLUMN_CHOOSER_BEHAVIOUR_OPENED = 'COLUMN_CHOOSER_BEHAVIOUR#OPENED';
2
+ export const COLUMN_CHOOSER_BEHAVIOUR_UPDATED = 'COLUMN_CHOOSER_BEHAVIOUR#UPDATED';
3
+ export const COLUMN_CHOOSER_BEHAVIOUR_CANCELED = 'COLUMN_CHOOSER_BEHAVIOUR#CANCELED';
4
+ export const DEFAULT_COLUMN_CHOOSE_MAX_COUNT = 15;
@@ -0,0 +1,2 @@
1
+ import { COLUMN_CHOOSER_BEHAVIOUR_OPENED } from "./Constants";
2
+ import { COLUMN_CHOOSER_SELECT_REQUESTED, COLUMN_CHOOSER_REORDER_REQUESTED, COLUMN_CHOOSER_SEARCH_REQUESTED, COLUMN_CHOOSER_SAVE_REQUESTED, COLUMN_CHOOSER_CLOSE_REQUESTED } from "../../cc/table-column-chooser/Constants";
@@ -0,0 +1,59 @@
1
+ import { COLUMN_CHOOSER_BEHAVIOUR_OPENED, COLUMN_CHOOSER_BEHAVIOUR_UPDATED } from "./Constants";
2
+ export default [{
3
+ type: COLUMN_CHOOSER_BEHAVIOUR_OPENED,
4
+ payload: {
5
+ type: 'object',
6
+ properties: {
7
+ order: {
8
+ type: 'array',
9
+ items: {
10
+ type: 'string'
11
+ }
12
+ },
13
+ selectedArray: {
14
+ type: 'array',
15
+ items: {
16
+ type: 'string'
17
+ }
18
+ }
19
+ }
20
+ }
21
+ }, {
22
+ type: COLUMN_CHOOSER_BEHAVIOUR_UPDATED,
23
+ payload: {
24
+ type: 'object',
25
+ properties: {
26
+ order: {
27
+ type: 'array',
28
+ items: {
29
+ type: 'string'
30
+ }
31
+ },
32
+ selectedArray: {
33
+ type: 'array',
34
+ items: {
35
+ type: 'string'
36
+ }
37
+ }
38
+ }
39
+ }
40
+ }, {
41
+ type: COLUMN_CHOOSER_BEHAVIOUR_UPDATED,
42
+ payload: {
43
+ type: 'object',
44
+ properties: {
45
+ order: {
46
+ type: 'array',
47
+ items: {
48
+ type: 'string'
49
+ }
50
+ },
51
+ selectedArray: {
52
+ type: 'array',
53
+ items: {
54
+ type: 'string'
55
+ }
56
+ }
57
+ }
58
+ }
59
+ }];
@@ -0,0 +1,18 @@
1
+ export default {
2
+ columnChooserConfig: {
3
+ required: false,
4
+ defaultValue: {
5
+ isEnabled: false
6
+ },
7
+ typeMetadata: {
8
+ schema: {
9
+ type: 'object',
10
+ properties: {
11
+ isEnabled: {
12
+ type: 'boolean'
13
+ }
14
+ }
15
+ }
16
+ }
17
+ }
18
+ };
@@ -0,0 +1,5 @@
1
+ export const KEYBOARD_CONTROL_UP_ARROW_PRESSED = 'KEYBOARD_CONTROL#UP_ARROW_PRESSED';
2
+ export const KEYBOARD_CONTROL_DOWN_ARROW_PRESSED = 'KEYBOARD_CONTROL#DOWN_ARROW_PRESSED';
3
+ export const KEYBOARD_CONTROL_SPACE_PRESSED = 'KEYBOARD_CONTROL#SPACE_PRESSED';
4
+ export const KEYBOARD_CONTROL_ENTER_PRESSED = 'KEYBOARD_CONTROL#ENTER_PRESSED'; // export const SMART_TABLE_PREVIOUS_FOCUS = 'SMART_TABLE#PREVIOUS_FOCUS';
5
+ // export const SMART_TABLE_NEXT_FOCUS = 'SMART_TABLE#NEXT_FOCUS';
@@ -0,0 +1,51 @@
1
+ import { KEYBOARD_CONTROL_DOWN_ARROW_PRESSED, KEYBOARD_CONTROL_ENTER_PRESSED, KEYBOARD_CONTROL_SPACE_PRESSED, KEYBOARD_CONTROL_UP_ARROW_PRESSED } from "./Constants";
2
+ const Events = [{
3
+ type: KEYBOARD_CONTROL_UP_ARROW_PRESSED,
4
+ payload: {
5
+ event: {
6
+ name: 'event',
7
+ typeMetadata: {
8
+ schema: {
9
+ type: 'object'
10
+ }
11
+ }
12
+ }
13
+ }
14
+ }, {
15
+ type: KEYBOARD_CONTROL_DOWN_ARROW_PRESSED,
16
+ payload: {
17
+ event: {
18
+ name: 'event',
19
+ typeMetadata: {
20
+ schema: {
21
+ type: 'object'
22
+ }
23
+ }
24
+ }
25
+ }
26
+ }, {
27
+ type: KEYBOARD_CONTROL_SPACE_PRESSED,
28
+ payload: {
29
+ event: {
30
+ name: 'event',
31
+ typeMetadata: {
32
+ schema: {
33
+ type: 'object'
34
+ }
35
+ }
36
+ }
37
+ }
38
+ }, {
39
+ type: KEYBOARD_CONTROL_ENTER_PRESSED,
40
+ payload: {
41
+ event: {
42
+ name: 'event',
43
+ typeMetadata: {
44
+ schema: {
45
+ type: 'object'
46
+ }
47
+ }
48
+ }
49
+ }
50
+ }];
51
+ export default Events;
@@ -0,0 +1,11 @@
1
+ export default {
2
+ listItemSelector: {
3
+ required: false,
4
+ typeMetadata: {
5
+ schema: {
6
+ type: 'string'
7
+ }
8
+ },
9
+ defaultValue: 'tbody tr'
10
+ }
11
+ };
@@ -44,6 +44,21 @@ export default {
44
44
  orgName: {
45
45
  type: 'string'
46
46
  },
47
+ modules: {
48
+ type: 'array',
49
+ items: {
50
+ type: 'object',
51
+ properties: {
52
+ apiKey: {
53
+ type: 'string'
54
+ },
55
+ nameField: {
56
+ type: 'string'
57
+ }
58
+ },
59
+ required: ['apiKey', 'nameField']
60
+ }
61
+ },
47
62
  departmentName: {
48
63
  type: 'string'
49
64
  },
@@ -3,7 +3,16 @@ export default {
3
3
  required: true,
4
4
  typeMetadata: {
5
5
  schema: {
6
- type: 'string'
6
+ anyOf: [// {
7
+ // type: 'object',
8
+ // properties: {
9
+ // UIComponentName: { type: 'string' },
10
+ // fieldToUIComponentTranslator: {}
11
+ // }
12
+ // },
13
+ {
14
+ type: 'string'
15
+ }]
7
16
  }
8
17
  }
9
18
  },
@@ -4,7 +4,7 @@ export { default as DateFieldProperties } from "./date/Properties";
4
4
  export { default as DecimalFieldProperties } from "./decimal/Properties";
5
5
  export { default as DateTimeFieldProperties } from "./datetime/Properties";
6
6
  export { default as EmailFieldProperties } from "./email/Properties";
7
- export { default as FieldFieldProperties } from "./field/Properties";
7
+ export { default as FieldProperties } from "./field/Properties";
8
8
  export { default as LookupFieldProperties } from "./lookup/Properties";
9
9
  export { default as MultiLineFieldProperties } from "./multi-line/Properties";
10
10
  export { default as MultiSelectFieldProperties } from "./multi-select/Properties";
@@ -0,0 +1,6 @@
1
+ export const COLUMN_CHOOSER_OPEN_REQUESTED = 'COLUMN_CHOOSER#OPEN_REQUESTED';
2
+ export const COLUMN_CHOOSER_CLOSE_REQUESTED = 'COLUMN_CHOOSER#CLOSE_REQUESTED';
3
+ export const COLUMN_CHOOSER_SELECT_REQUESTED = 'COLUMN_CHOOSER#SELECT_REQUESTED';
4
+ export const COLUMN_CHOOSER_REORDER_REQUESTED = 'COLUMN_CHOOSER#REORDER_REQUESTED';
5
+ export const COLUMN_CHOOSER_SEARCH_REQUESTED = 'COLUMN_CHOOSER#SEARCH_REQUESTED';
6
+ export const COLUMN_CHOOSER_SAVE_REQUESTED = 'COLUMN_CHOOSER#SAVE_REQUESTED';
@@ -0,0 +1,69 @@
1
+ import { COLUMN_CHOOSER_OPEN_REQUESTED, COLUMN_CHOOSER_SELECT_REQUESTED, COLUMN_CHOOSER_REORDER_REQUESTED, COLUMN_CHOOSER_SEARCH_REQUESTED, COLUMN_CHOOSER_SAVE_REQUESTED, COLUMN_CHOOSER_CLOSE_REQUESTED } from "./Constants";
2
+ export default [{
3
+ type: COLUMN_CHOOSER_OPEN_REQUESTED,
4
+ // NOTE: payload will be empty
5
+ payload: {
6
+ type: 'object'
7
+ }
8
+ }, {
9
+ type: COLUMN_CHOOSER_SELECT_REQUESTED,
10
+ payload: {
11
+ type: 'object',
12
+ properties: {
13
+ type: 'object',
14
+ properties: {
15
+ data: {
16
+ type: 'object',
17
+ properties: {
18
+ id: {
19
+ type: 'string'
20
+ },
21
+ isChecked: {
22
+ type: 'boolean'
23
+ }
24
+ }
25
+ }
26
+ }
27
+ }
28
+ }
29
+ }, {
30
+ type: COLUMN_CHOOSER_REORDER_REQUESTED,
31
+ payload: {
32
+ type: 'object',
33
+ properties: {
34
+ reOrderedIndex: {
35
+ type: 'object',
36
+ properties: {
37
+ newIndex: {
38
+ type: 'number'
39
+ },
40
+ oldIndex: {
41
+ type: 'number'
42
+ }
43
+ }
44
+ }
45
+ }
46
+ }
47
+ }, {
48
+ type: COLUMN_CHOOSER_SEARCH_REQUESTED,
49
+ payload: {
50
+ type: 'object',
51
+ properties: {
52
+ searchString: {
53
+ type: 'string'
54
+ }
55
+ }
56
+ }
57
+ }, {
58
+ type: COLUMN_CHOOSER_SAVE_REQUESTED,
59
+ // NOTE: payload will be empty
60
+ payload: {
61
+ type: 'object'
62
+ }
63
+ }, {
64
+ type: COLUMN_CHOOSER_CLOSE_REQUESTED,
65
+ // NOTE: payload will be empty
66
+ payload: {
67
+ type: 'object'
68
+ }
69
+ }];
@@ -0,0 +1,122 @@
1
+ export default {
2
+ options: {
3
+ defaultValue: [],
4
+ required: false,
5
+ typeMetadata: {
6
+ schema: {
7
+ type: 'array',
8
+ items: {
9
+ type: 'object',
10
+ properties: {
11
+ id: {
12
+ type: 'string'
13
+ },
14
+ value: {
15
+ type: 'string'
16
+ },
17
+ checked: {
18
+ type: 'boolean'
19
+ },
20
+ disabled: {
21
+ type: 'boolean'
22
+ },
23
+ locked: {
24
+ type: 'boolean'
25
+ }
26
+ },
27
+ required: ['id', 'value', 'checked']
28
+ }
29
+ }
30
+ }
31
+ },
32
+ hasSearch: {
33
+ defaultValue: false,
34
+ required: false,
35
+ typeMetadata: {
36
+ schema: {
37
+ type: 'boolean'
38
+ }
39
+ }
40
+ },
41
+ errorMessage: {
42
+ defaultValue: '',
43
+ required: false,
44
+ typeMetadata: {
45
+ schema: {
46
+ type: 'string'
47
+ }
48
+ }
49
+ },
50
+ saveLabel: {
51
+ defaultValue: 'Save',
52
+ required: false,
53
+ typeMetadata: {
54
+ schema: {
55
+ type: 'string'
56
+ }
57
+ }
58
+ },
59
+ cancelLabel: {
60
+ defaultValue: 'Cancel',
61
+ required: false,
62
+ typeMetadata: {
63
+ schema: {
64
+ type: 'string'
65
+ }
66
+ }
67
+ },
68
+ tooltip: {
69
+ defaultValue: 'Column Chooser',
70
+ required: false,
71
+ typeMetadata: {
72
+ schema: {
73
+ type: 'string'
74
+ }
75
+ }
76
+ },
77
+ heading: {
78
+ defaultValue: 'Select & Reorder Column',
79
+ required: false,
80
+ typeMetadata: {
81
+ schema: {
82
+ type: 'string'
83
+ }
84
+ }
85
+ },
86
+ infoText: {
87
+ defaultValue: 'Info Content',
88
+ required: false,
89
+ typeMetadata: {
90
+ schema: {
91
+ type: 'string'
92
+ }
93
+ }
94
+ },
95
+ searchString: {
96
+ defaultValue: '',
97
+ required: false,
98
+ typeMetadata: {
99
+ schema: {
100
+ type: 'string'
101
+ }
102
+ }
103
+ },
104
+ searchPlaceholder: {
105
+ defaultValue: 'Search',
106
+ required: false,
107
+ typeMetadata: {
108
+ schema: {
109
+ type: 'string'
110
+ }
111
+ }
112
+ },
113
+ emptyMessage: {
114
+ defaultValue: 'No Results',
115
+ required: false,
116
+ typeMetadata: {
117
+ schema: {
118
+ type: 'string'
119
+ }
120
+ }
121
+ }
122
+ };
@@ -0,0 +1,3 @@
1
+ export { default as TableColumnChooserProperties } from "./Properties";
2
+ import * as _TableColumnChooserConstants from "./Constants";
3
+ export { _TableColumnChooserConstants as TableColumnChooserConstants };
@@ -29,6 +29,22 @@ export default {
29
29
  }
30
30
  },
31
31
  ...SelectionConfigSchema,
32
+ keyboardControlsConfig: {
33
+ required: false,
34
+ defaultValue: {
35
+ isEnabled: true
36
+ },
37
+ typeMetadata: {
38
+ schema: {
39
+ type: 'object',
40
+ properties: {
41
+ isEnabled: {
42
+ type: 'boolean'
43
+ }
44
+ }
45
+ }
46
+ }
47
+ },
32
48
  componentMapping: {
33
49
  required: false,
34
50
  defaultValue: {
@@ -5,5 +5,8 @@ export default {
5
5
  SORTED: 'SMART_TABLE#SORTED',
6
6
  RECORDS_SELECTED: 'SMART_TABLE#RECORDS_SELECTED',
7
7
  RECORDS_DESELECTED: 'SMART_TABLE#RECORDS_DESELECTED',
8
+ SMART_TABLE_ROW_ACTION_TRIGGERED: 'SMART_TABLE#ROW_ACTION_TRIGGERED',
8
9
  SELECTION_LIMIT_EXCEEDED: 'SMART_TABLE#SELECTION_LIMIT_EXCEEDED'
9
- };
10
+ };
11
+ export const SMART_TABLE_SELECTION_TOGGLED = 'SMART_TABLE#SELECTION_TOGGLED';
12
+ export const SMART_TABLE_ACTION_TRIGGERED = 'SMART_TABLE#ACTION_TRIGGERED';
@@ -36,6 +36,15 @@ const TableListProperties = {
36
36
  },
37
37
  defaultValue: false
38
38
  },
39
+ focussedRow: {
40
+ required: false,
41
+ typeMetadata: {
42
+ schema: {
43
+ type: "number"
44
+ }
45
+ },
46
+ defaultValue: 0
47
+ },
39
48
  sortBy: {
40
49
  required: false,
41
50
  typeMetadata: {
@@ -274,11 +283,28 @@ const TableListProperties = {
274
283
  type: 'string'
275
284
  }
276
285
  },
286
+ actions: actionsSchema,
277
287
  hasAllSelected: {
278
288
  type: 'boolean'
279
289
  }
280
290
  },
281
- required: ['selected', 'hasAllSelected']
291
+ required: ['selected', 'hasAllSelected', 'actions']
292
+ }
293
+ }
294
+ },
295
+ keyboardControlsConfig: {
296
+ required: false,
297
+ defaultValue: {
298
+ isEnabled: true
299
+ },
300
+ typeMetadata: {
301
+ schema: {
302
+ type: 'object',
303
+ properties: {
304
+ isEnabled: {
305
+ type: 'boolean'
306
+ }
307
+ }
282
308
  }
283
309
  }
284
310
  },
@@ -28,6 +28,24 @@ const TableRowProperties = {
28
28
  }
29
29
  }
30
30
  },
31
+ isKeyboardControlsEnabled: {
32
+ required: false,
33
+ defaultValue: true,
34
+ typeMetadata: {
35
+ schema: {
36
+ type: 'boolean'
37
+ }
38
+ }
39
+ },
40
+ isFocussed: {
41
+ required: false,
42
+ defaultValue: false,
43
+ typeMetadata: {
44
+ schema: {
45
+ type: 'boolean'
46
+ }
47
+ }
48
+ },
31
49
  selectionTooltip: {
32
50
  required: false,
33
51
  defaultValue: '',
@@ -0,0 +1,36 @@
1
+ import AbstractController from "./AbstractController";
2
+ import { COLUMN_CHOOSER_BEHAVIOUR_OPENED } from "../../../../bc/column-chooser/Constants";
3
+ export default class ColumnChooserOpenedController extends AbstractController {
4
+ handle(event) {
5
+ const state = event.state;
6
+ const {
7
+ zfield
8
+ } = state.behaviours;
9
+ const {
10
+ fields: availableFields,
11
+ selectedFields
12
+ } = zfield;
13
+ const columnChooserOptionsOrder = this.getColumnChooserOptionsOrder(availableFields, selectedFields);
14
+ event.dispatch({
15
+ type: COLUMN_CHOOSER_BEHAVIOUR_OPENED,
16
+ payload: {
17
+ order: columnChooserOptionsOrder,
18
+ selectedArray: selectedFields
19
+ }
20
+ });
21
+ }
22
+
23
+ getColumnChooserOptionsOrder() {
24
+ let availableFields = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
25
+ let selectedFields = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
26
+ let searchStr = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';
27
+
28
+ if (availableFields.length === 0 || selectedFields.length === 0) {
29
+ return [];
30
+ }
31
+
32
+ const columnChooserOptions = selectedFields.concat(availableFields.filter(field => !selectedFields.includes(field.name)).map(field => field.name));
33
+ return columnChooserOptions;
34
+ }
35
+
36
+ }
@@ -0,0 +1,25 @@
1
+ import AbstractController from "./AbstractController";
2
+ import { FIELD_EXECUTE } from "../../../../bc/zfield/Constants";
3
+ export default class ColumnChooserUpdateController extends AbstractController {
4
+ handle(event) {
5
+ const {
6
+ state
7
+ } = event;
8
+ const {
9
+ context
10
+ } = state.properties;
11
+ const fields = event.action.payload.selectedArray;
12
+ const action = {
13
+ type: FIELD_EXECUTE,
14
+ payload: {
15
+ actionName: 'updateSelectedFields',
16
+ props: { ...context,
17
+ fields
18
+ },
19
+ apiName: 'updateSelectedFields'
20
+ }
21
+ };
22
+ event.dispatch(action);
23
+ }
24
+
25
+ }
@@ -1,14 +1,18 @@
1
1
  import { LIST_SELECTION_RECORDS_DESELECTED, LIST_SELECTION_RECORDS_SELECTED, LIST_SELECTION_SELECTION_LIMIT_EXCEEDED } from "../../../bc/list-selection/Constants";
2
+ import { RESIZE_FINISHED } from "../../../bc/table-column-resizer/Constants";
3
+ import { ZLIST_SORT } from "../../../bc/zlist/Constants";
4
+ import { COLUMN_CHOOSER_BEHAVIOUR_UPDATED } from "../../../bc/column-chooser/Constants";
5
+ import { COLUMN_CHOOSER_OPEN_REQUESTED } from "../../../cc/table-column-chooser/Constants";
2
6
  import ListSdkFactory from "./ListSdkFactory";
3
7
  import { SmartTableConstants } from "../../../cc/table-connected";
4
8
  import TableListEventConstants from "../../../cc/table-list/Constants";
5
9
  import ResizeStartController from "../adapters/controllers/ResizeStartController";
6
10
  import ResizeByMouseController from "../adapters/controllers/ResizeByMouseController";
7
11
  import ResizeEndController from "../adapters/controllers/ResizeEndController";
8
- import { RESIZE_FINISHED } from "../../../bc/table-column-resizer/Constants";
9
12
  import { ResizeFinishController } from "../adapters/controllers/ResizeFinishController";
10
13
  import ScrollController from "../adapters/controllers/ScrollController";
11
- import { ZLIST_SORT } from "../../../bc/zlist/Constants";
14
+ import ColumnChooserUpdateController from "../adapters/controllers/ColumnChooserUpdateController";
15
+ import ColumnChooserOpenedController from "../adapters/controllers/ColumnChooserOpenedController";
12
16
  const {
13
17
  TABLE_LIST_RESIZE_START_REQUESTED,
14
18
  TABLE_LIST_RESIZE_MOVE_REQUESTED,
@@ -52,6 +56,8 @@ export default class EventHandlersFactory {
52
56
  },
53
57
  [TABLE_LIST_RESIZE_END_REQUESTED]: new ResizeEndController().handle,
54
58
  [TABLE_LIST_SCROLLED]: new ScrollController().handle,
59
+ [COLUMN_CHOOSER_BEHAVIOUR_UPDATED]: new ColumnChooserUpdateController().handle,
60
+ [COLUMN_CHOOSER_OPEN_REQUESTED]: new ColumnChooserOpenedController().handle,
55
61
  [LIST_SELECTION_RECORDS_SELECTED]: _ref2 => {
56
62
  let {
57
63
  action,
@@ -13,6 +13,8 @@ import ClientActionsBehaviourFactory from "../../../platform/client-actions/beha
13
13
  import LocalStorageBehaviourFactory from "../../../library/behaviours/local-storage/frameworks/LocalStorageBehaviourFactory";
14
14
  import TableColumnResizerBehaviorFactory from "../../../library/behaviours/table-column-resizer/frameworks/TableColumnResizerBehaviorFactory";
15
15
  import ListItemSelectionBehaviourFactory from "../../../library/behaviours/list-selection/frameworks/ListItemSelectionBehaviourFactory";
16
+ import ColumnChooserBehaviourFactory from "../../../platform/column-chooser/frameworks/ColumnChooserBehaviourFactory";
17
+ import KeyboardControlBehaviourFactory from "../../../library/behaviours/keyboard-controls/frameworks/KeyboardControlBehaviourFactory";
16
18
  export default class TableConnectedFactory {
17
19
  static create(_ref) {
18
20
  var _dataSource2;
@@ -41,12 +43,13 @@ export default class TableConnectedFactory {
41
43
  properties: Properties,
42
44
  eventHandlers: EventHandlersFactory.create(eventHandlers),
43
45
  transformState: TableTranslator.transformState,
44
- behaviours: [TableColumnResizerBehaviorFactory.create(), LocalStorageBehaviourFactory.create(), ZHttpBehaviourFactory.create(), DataSourceBehaviourFactory.create(), RecordBehaviourFactory.create(_dataSource.httpTemplates), ClientActionsBehaviourFactory.create({
46
+ behaviours: [TableColumnResizerBehaviorFactory.create(), KeyboardControlBehaviourFactory.create(), LocalStorageBehaviourFactory.create(), ZHttpBehaviourFactory.create(), DataSourceBehaviourFactory.create(), RecordBehaviourFactory.create(_dataSource.httpTemplates), ClientActionsBehaviourFactory.create({
45
47
  getClientActions: _dataSource.httpTemplates.getClientActions
46
48
  }), ZFieldBehaviourFactory.create({
47
49
  availableFields: _dataSource.httpTemplates.getAvailableFields,
50
+ updateSelectedFields: _dataSource.httpTemplates.updateSelectedFields,
48
51
  selectedFields: _dataSource.httpTemplates.getSelectedFields
49
- }), ZListBehaviourFactory.create(), ListItemSelectionBehaviourFactory.create()]
52
+ }), ZListBehaviourFactory.create(), ColumnChooserBehaviourFactory.create(), ListItemSelectionBehaviourFactory.create()]
50
53
  });
51
54
  }
52
55
 
@@ -13,16 +13,17 @@ function View(_ref, ref) {
13
13
  rowCursor,
14
14
  sortBy,
15
15
  selection,
16
- properties,
17
- emptyStateUiType
18
- } = state;
16
+ emptyStateUiType,
17
+ focussedRow,
18
+ keyboardControlsConfig
19
+ } = state.viewModel;
19
20
  const {
20
21
  resizerState
21
- } = state;
22
+ } = state.viewModel;
22
23
  const {
23
24
  preferences,
24
25
  selectionConfig
25
- } = properties;
26
+ } = state.properties;
26
27
  const {
27
28
  autoColumnSizing
28
29
  } = preferences || {};
@@ -37,7 +38,9 @@ function View(_ref, ref) {
37
38
  isLoading: isLoading,
38
39
  emptyStateUiType: emptyStateUiType,
39
40
  selection: selection,
40
- selectionConfig: selectionConfig
41
+ selectionConfig: selectionConfig,
42
+ keyboardControlsConfig: keyboardControlsConfig,
43
+ focussedRow: focussedRow
41
44
  });
42
45
  }
43
46