@zohodesk/library-platform 1.1.3 → 1.1.6
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.
- package/README.md +3 -3
- package/es/bc/sdk/EventHandlers.js +1 -0
- package/es/bc/sdk/Properties.js +10 -0
- package/es/bc/sdk/ResourceNamesEnum.js +6 -0
- package/es/bc/zform/Symbol.js +1 -0
- package/es/bc/zhttp/Errors.js +14 -0
- package/es/bc/zhttp/index.js +3 -1
- package/es/bc/zlist/Constants.js +8 -1
- package/es/bc/zlist/Events.js +140 -0
- package/es/bc/zlist/index.js +2 -1
- package/es/bc/zrecord/Constants.js +3 -1
- package/es/cc/action-icon/Properties.js +19 -1
- package/es/cc/action-location/Constants.js +5 -3
- package/es/cc/architecture/LifeCycleActionEnum.js +2 -8
- package/es/cc/button/Constants.js +7 -0
- package/es/cc/button/Events.js +5 -0
- package/es/cc/button/Properties.js +77 -0
- package/es/cc/button/index.js +3 -0
- package/es/cc/component/FallbackView.js +1 -0
- package/es/cc/component/LifeCycleEventsEnum.js +9 -0
- package/es/cc/fields/currency/Model.js +2 -0
- package/es/cc/fields/field/Properties.js +1 -1
- package/es/cc/fields/formula/Model.js +5 -0
- package/es/cc/form/Constants.js +2 -0
- package/es/cc/form/Events.js +20 -0
- package/es/cc/form-connected/Constants.js +13 -0
- package/es/cc/index.js +3 -0
- package/es/cc/link/Properties.js +0 -1
- package/es/cc/list-item/Constants.js +7 -0
- package/es/cc/list-item/Events.js +14 -0
- package/es/cc/list-item/Properties.js +131 -0
- package/es/cc/list-item/index.js +3 -0
- package/es/cc/more-dropdown/Constants.js +7 -0
- package/es/cc/more-dropdown/Events.js +14 -0
- package/es/cc/more-dropdown/Properties.js +66 -0
- package/es/cc/more-dropdown/index.js +3 -0
- package/es/cc/section/Constants.js +2 -0
- package/es/cc/section/Events.js +20 -0
- package/es/cc/table-connected/ErrorEventType.js +32 -0
- package/es/cc/table-connected/Events.js +96 -0
- package/es/cc/table-connected/Properties.js +16 -0
- package/es/cc/table-connected/SdkContract.js +132 -0
- package/es/cc/table-connected/constants/Events.js +2 -0
- package/es/cc/table-connected/index.js +3 -1
- package/es/cc/table-list/Constants.js +4 -0
- package/es/cc/table-list/Properties.js +25 -0
- package/es/cc/table-list/row/Properties.js +44 -0
- package/es/index.js +6 -2
- package/es/library/behaviours/keyboard-controls/applications/usecases/DestructUsecase.js +5 -2
- package/es/library/behaviours/list-selection/frameworks/ActionHandlerFactory.js +4 -3
- package/es/library/custom-component/adapters/gateways/event-manager/EventManager.js +116 -4
- package/es/library/custom-component/applications/entities-factory/BehavioursFactory.js +18 -16
- package/es/library/custom-component/applications/interfaces/gateways/ISchemaValidator.js +1 -0
- package/es/library/custom-component/applications/usecases/InitializeUseCase.js +3 -2
- package/es/library/custom-component/applications/usecases/UpdatePropertyUseCase.js +6 -2
- package/es/library/custom-component/applications/usecases/UpdateStateUseCase.js +5 -1
- package/es/library/custom-component/domain/entities/Component.js +20 -3
- package/es/library/custom-component/domain/entities/LifeCycleAction.js +14 -3
- package/es/library/custom-component/domain/entities/Properties.js +19 -1
- package/es/library/custom-component/frameworks/json-schema-validator/Validator.js +36 -1
- package/es/library/custom-component/frameworks/ui/CreateCustomComponent.js +23 -11
- package/es/library/custom-component/frameworks/ui/DependencyFactory.js +4 -3
- package/es/library/dot/components/action-location/frameworks/ui/ActionComponentMapping.js +6 -0
- package/es/library/dot/components/action-location/frameworks/ui/EventHandlersFactory.js +1 -1
- package/es/library/dot/components/form/frameworks/ui/EventHandlerFactory.js +23 -3
- package/es/library/dot/components/form/frameworks/ui/FormView.js +6 -3
- package/es/library/dot/components/form/frameworks/ui/css/Form.module.css +4 -0
- package/es/library/dot/components/form-fields/checkbox/frameworks/ui/CheckboxView.js +1 -0
- package/es/library/dot/components/form-fields/currency/frameworks/ui/CurrencyView.js +1 -0
- package/es/library/dot/components/form-fields/date/frameworks/ui/DateView.js +1 -0
- package/es/library/dot/components/form-fields/datetime/frameworks/ui/DateTimeView.js +1 -0
- package/es/library/dot/components/form-fields/decimal/frameworks/ui/DecimalView.js +1 -0
- package/es/library/dot/components/form-fields/email/frameworks/ui/EmailView.js +1 -0
- package/es/library/dot/components/form-fields/multi-select/frameworks/ui/MultiSelectView.js +1 -0
- package/es/library/dot/components/form-fields/number/frameworks/ui/NumberView.js +1 -0
- package/es/library/dot/components/form-fields/percentage/frameworks/ui/PercentageView.js +1 -0
- package/es/library/dot/components/form-fields/phone/frameworks/ui/PhoneView.js +1 -0
- package/es/library/dot/components/form-fields/pick-list/frameworks/ui/PickListView.js +1 -0
- package/es/library/dot/components/form-fields/textarea/frameworks/ui/TextAreaView.js +1 -0
- package/es/library/dot/components/form-fields/textbox/frameworks/ui/TextBoxView.js +1 -0
- package/es/library/dot/components/form-fields/url/frameworks/ui/UrlView.js +1 -0
- package/es/library/dot/components/section/frameworks/ui/EventHandlerFactory.js +26 -3
- package/es/library/dot/components/table-list/frameworks/hooks/useDropIndicator.js +8 -0
- package/es/library/dot/components/table-list/frameworks/hooks/useRowData.js +15 -0
- package/es/library/dot/components/table-list/frameworks/hooks/useTableRowReorder.js +105 -0
- package/es/library/dot/components/table-list/frameworks/ui/TableListView.js +85 -15
- package/es/library/dot/components/table-list/frameworks/ui/css/TableList.module.css +240 -1
- package/es/library/dot/components/table-list/frameworks/ui/sub-components/Header.js +28 -4
- package/es/library/dot/components/table-list/frameworks/ui/sub-components/Rows.js +25 -9
- package/es/library/dot/components/table-list/frameworks/ui/sub-components/header/MassAction.js +11 -2
- package/es/library/dot/components/table-list/frameworks/ui/sub-components/row/Row.js +50 -8
- package/es/library/dot/components/table-list/frameworks/ui/sub-components/row/RowSelection.js +7 -1
- package/es/library/dot/components/table-list/frameworks/utils/getHeaderClasses.js +37 -0
- package/es/library/dot/components/table-list/frameworks/utils/getTableListClassName.js +37 -0
- package/es/library/dot/components/table-list/frameworks/utils/reOrder.js +90 -0
- package/es/library/dot/legacy-to-new-arch/action-icon/frameworks/ui/ActionIconView.js +10 -1
- package/es/library/dot/legacy-to-new-arch/action-icon/frameworks/ui/css/ActionIconView.module.css +3 -0
- package/es/library/dot/legacy-to-new-arch/button/frameworks/ui/Button.js +12 -0
- package/es/library/dot/legacy-to-new-arch/button/frameworks/ui/ButtonView.js +41 -0
- package/es/library/dot/legacy-to-new-arch/list-item/frameworks/ui/ListItem.js +12 -0
- package/es/library/dot/legacy-to-new-arch/list-item/frameworks/ui/ListItemView.js +122 -0
- package/es/library/dot/legacy-to-new-arch/more-dropdown/frameworks/ui/MoreDropdown.js +12 -0
- package/es/library/dot/legacy-to-new-arch/more-dropdown/frameworks/ui/MoreDropdownView.js +43 -0
- package/es/library/dot/legacy-to-new-arch/table-column-filter/frameworks/ui/TableColumnFilterView.js +8 -4
- package/es/library/dot/legacy-to-new-arch/text-area/frameworks/ui/TextAreaView.js +1 -1
- package/es/platform/client-actions/components/action-event-mediator/frameworks/ui/ClientActionsAdapter.js +96 -0
- package/es/platform/client-actions/components/action-event-mediator/frameworks/ui/EventHandlersFactory.js +12 -3
- package/es/platform/client-actions/template-resolver/index.js +1 -0
- package/es/platform/client-actions/translators/client-actions-translator/index.js +5 -2
- package/es/platform/client-actions/translators/condition-resolver/field-evaluators/GetResolvedContextFieldValue.js +3 -2
- package/es/platform/client-actions/translators/context-resolver/index.js +7 -10
- package/es/platform/components/form-connected/frameworks/EventHandlersFactory.js +91 -0
- package/es/platform/components/form-connected/frameworks/FormConnectedFactory.js +33 -0
- package/es/{desk-frameworks → platform/components}/form-connected/frameworks/FormConnectedView.js +1 -1
- package/es/{desk-frameworks → platform/components}/form-connected/frameworks/FormSdkFactory.js +3 -14
- package/es/platform/components/table-connected/adapters/controllers/ColumnChooserOpenedController.js +28 -0
- package/es/{desk-frameworks → platform/components}/table-connected/adapters/controllers/ColumnChooserUpdateController.js +5 -5
- package/es/platform/components/table-connected/adapters/controllers/ReOrderFinishController.js +21 -0
- package/es/{desk-frameworks → platform/components}/table-connected/adapters/controllers/ResizeByMouseController.js +1 -1
- package/es/{desk-frameworks → platform/components}/table-connected/adapters/controllers/ResizeEndController.js +1 -1
- package/es/{desk-frameworks → platform/components}/table-connected/adapters/controllers/ResizeFinishController.js +1 -1
- package/es/{desk-frameworks → platform/components}/table-connected/adapters/controllers/ResizeStartController.js +2 -2
- package/es/{desk-frameworks → platform/components}/table-connected/adapters/controllers/ScrollController.js +1 -1
- package/es/platform/components/table-connected/adapters/resources/ErrorPrinter.js +20 -0
- package/es/platform/components/table-connected/adapters/resources/SmartTableResource.js +326 -0
- package/es/platform/components/table-connected/application/interfaces/ISmartTableResource.js +1 -0
- package/es/platform/components/table-connected/frameworks/ErrorEventHandlersFactory.js +126 -0
- package/es/{desk-frameworks → platform/components}/table-connected/frameworks/EventHandlersFactory.js +58 -17
- package/es/platform/components/table-connected/frameworks/ListSdkFactory.js +57 -0
- package/es/platform/components/table-connected/frameworks/TableConnectedFactory.js +78 -0
- package/es/{desk-frameworks → platform/components}/table-connected/frameworks/TableConnectedView.js +10 -4
- package/es/platform/data-source/http-template/reOrderRecord.js +44 -0
- package/es/platform/data-source/index.js +2 -0
- package/es/platform/sdk/adapters/gateways/Repository.js +31 -0
- package/es/platform/sdk/adapters/gateways/Service.js +27 -0
- package/es/platform/sdk/adapters/presenters/Presenter.js +16 -0
- package/es/platform/sdk/application/interfaces/UsecaseDependencies.js +1 -0
- package/es/platform/sdk/application/interfaces/gateways/AbstractResource.js +13 -0
- package/es/platform/sdk/application/interfaces/gateways/IRepository.js +1 -0
- package/es/platform/sdk/application/interfaces/gateways/ISdkManager.js +1 -0
- package/es/platform/sdk/application/interfaces/gateways/IService.js +1 -0
- package/es/platform/sdk/application/interfaces/input/CreateResourceInstanceUseCaseInputModel.js +1 -0
- package/es/platform/sdk/application/interfaces/input/DestructResourceInstanceUseCaseInputModel.js +1 -0
- package/es/platform/sdk/application/interfaces/input/GetResourceInstanceUseCaseInputModel.js +1 -0
- package/es/platform/sdk/application/interfaces/input/RegisterResourceInputModel.js +1 -0
- package/es/platform/sdk/application/interfaces/input/SyncStateWithResourceInputModel.js +1 -0
- package/es/platform/sdk/application/interfaces/output/ISdkPresenter.js +3 -0
- package/es/platform/sdk/application/usecases/AbstractUseCase.js +16 -0
- package/es/platform/sdk/application/usecases/CreateResourceInstanceUseCase.js +16 -0
- package/es/platform/sdk/application/usecases/DestructResourceInstanceUseCase.js +16 -0
- package/es/platform/sdk/application/usecases/GetResourceInstanceUseCase.js +17 -0
- package/es/platform/sdk/application/usecases/RegisterResourceUseCase.js +16 -0
- package/es/platform/sdk/application/usecases/SyncStateWithResourceUseCase.js +25 -0
- package/es/platform/sdk/domain/entities/ResourceManager.js +95 -0
- package/es/platform/sdk/domain/entities/interfaces/IResourceManager.js +1 -0
- package/es/platform/sdk/domain/entities/interfaces/ResourceManagerRestoreModel.js +1 -0
- package/es/platform/sdk/domain/entities/interfaces/SdkResource.js +1 -0
- package/es/platform/sdk/domain/entities/interfaces/SdkResourceDependencies.js +1 -0
- package/es/platform/sdk/domain/entities/interfaces/StateInterface.js +1 -0
- package/es/platform/sdk/frameworks/Sdk.js +11 -0
- package/es/platform/sdk/frameworks/SdkRegistry.js +72 -0
- package/es/platform/sdk-behaviour/adapters/controllers/AbstractController.js +11 -0
- package/es/platform/sdk-behaviour/adapters/controllers/DestructController.js +19 -0
- package/es/platform/sdk-behaviour/adapters/controllers/InitializeController.js +19 -0
- package/es/platform/sdk-behaviour/adapters/controllers/SyncStateWithResourceController.js +24 -0
- package/es/platform/sdk-behaviour/adapters/gateways/Repository.js +25 -0
- package/es/platform/sdk-behaviour/adapters/gateways/ResourceManagerGateWay.js +43 -0
- package/es/platform/sdk-behaviour/adapters/gateways/Service.js +19 -0
- package/es/platform/sdk-behaviour/applications/AbstractUseCase.js +6 -0
- package/es/platform/sdk-behaviour/applications/interfaces/UsecaseDependencies.js +1 -0
- package/es/platform/sdk-behaviour/applications/interfaces/gateways/IRepository.js +1 -0
- package/es/platform/sdk-behaviour/applications/interfaces/gateways/IResourceManagerGateWay.js +3 -0
- package/es/platform/sdk-behaviour/applications/interfaces/gateways/IService.js +1 -0
- package/es/platform/sdk-behaviour/applications/interfaces/input/CreateResourceInstanceUseCaseInputModel.js +1 -0
- package/es/platform/sdk-behaviour/applications/interfaces/input/DestructResourceInstanceUseCaseInputModel.js +1 -0
- package/es/platform/sdk-behaviour/applications/interfaces/input/SyncStateWithResourceUseCaseInputModel.js +1 -0
- package/es/platform/sdk-behaviour/applications/usecases/CreateResourceInstanceUseCase.js +14 -0
- package/es/platform/sdk-behaviour/applications/usecases/DestructResourceInstanceUseCase.js +14 -0
- package/es/platform/sdk-behaviour/applications/usecases/SyncStateWithResourceUseCase.js +22 -0
- package/es/platform/sdk-behaviour/domain/entities/BehaviourResourceConnector.js +49 -0
- package/es/platform/sdk-behaviour/domain/entities/interfaces/IBehaviourResourceConnector.js +1 -0
- package/es/platform/sdk-behaviour/domain/entities/interfaces/IResourceManagerProxy.js +2 -0
- package/es/platform/sdk-behaviour/frameworks/EventHandlerFactory.js +29 -0
- package/es/platform/sdk-behaviour/frameworks/SdkBehaviourFactory.js +16 -0
- package/es/platform/zdata-source/domain/entities/DataSource.js +18 -12
- package/es/platform/zfield/domain/entities/fields-manager/FieldsManager.js +7 -1
- package/es/platform/zform/adapters/controllers/FieldValueChangeController.js +10 -3
- package/es/platform/zform/adapters/presenter/FormTranslator.js +6 -127
- package/es/platform/zform/adapters/presenter/translators/SectionTranslator.js +32 -0
- package/es/platform/zform/adapters/presenter/translators/fields/BooleanFieldTranslator.js +20 -0
- package/es/platform/zform/adapters/presenter/translators/fields/CurrencyFieldTranslator.js +29 -0
- package/es/platform/zform/adapters/presenter/translators/fields/DateFieldTranslator.js +20 -0
- package/es/platform/zform/adapters/presenter/translators/fields/DateTimeFieldTranslator.js +21 -0
- package/es/platform/zform/adapters/presenter/translators/fields/DecimalFieldTranslator.js +29 -0
- package/es/platform/zform/adapters/presenter/translators/fields/EmailFieldTranslator.js +30 -0
- package/es/platform/zform/adapters/presenter/translators/fields/LookUpFieldTranslator.js +30 -0
- package/es/platform/zform/adapters/presenter/translators/fields/MultiselectFieldTranslator.js +29 -0
- package/es/platform/zform/adapters/presenter/translators/fields/NumberFieldTranslator.js +30 -0
- package/es/platform/zform/adapters/presenter/translators/fields/PercentageFieldTranslator.js +30 -0
- package/es/platform/zform/adapters/presenter/translators/fields/PhoneFieldTranslator.js +29 -0
- package/es/platform/zform/adapters/presenter/translators/fields/PicklistFieldTranslator.js +29 -0
- package/es/platform/zform/adapters/presenter/translators/fields/TextAreaFieldTranslator.js +30 -0
- package/es/platform/zform/adapters/presenter/translators/fields/TextFieldTranslator.js +27 -0
- package/es/platform/zform/adapters/presenter/translators/fields/URLFieldTranslator.js +30 -0
- package/es/platform/zform/adapters/presenter/translators/fields/index.js +15 -0
- package/es/platform/zform/applications/usecases/FieldValueChangeRequestUseCase.js +13 -1
- package/es/platform/zform/applications/usecases/MyFormSuccessUseCase.js +3 -1
- package/es/platform/zform/domain/ZField.js +61 -16
- package/es/platform/zform/domain/ZSection.js +20 -7
- package/es/platform/zform/frameworks/ui/EventHandlerFactory.js +10 -4
- package/es/platform/zhttp/applications/usecases/FetchUseCase.js +111 -66
- package/es/platform/zlist/adapters/controllers/FieldExecuteFailedController.js +25 -0
- package/es/platform/zlist/adapters/controllers/ReOrderController.js +25 -0
- package/es/platform/zlist/adapters/controllers/ReOrderFailedController.js +26 -0
- package/es/platform/zlist/adapters/gateways/Repository.js +12 -2
- package/es/platform/zlist/adapters/gateways/Service.js +8 -0
- package/es/platform/zlist/adapters/presenters/SelectionTranslator.js +3 -1
- package/es/platform/zlist/adapters/presenters/TableTranslator.js +19 -5
- package/es/platform/zlist/adapters/presenters/translators/ColumnTranslator.js +11 -12
- package/es/platform/zlist/adapters/presenters/translators/EmptyViewModel.js +2 -1
- package/es/platform/zlist/adapters/presenters/translators/Header.js +8 -4
- package/es/platform/zlist/adapters/presenters/translators/HeadersTranslator.js +3 -2
- package/es/platform/zlist/adapters/presenters/translators/ResizerStateTranslator.js +7 -3
- package/es/platform/zlist/adapters/presenters/translators/fields/CurrencyFieldTranslator.js +1 -0
- package/es/platform/zlist/adapters/presenters/translators/fields/FormulaFieldTranslator.js +3 -0
- package/es/platform/zlist/adapters/presenters/utils/DefaultClientActions.js +1 -1
- package/es/platform/zlist/applications/entities-factory/ListFactory.js +3 -2
- package/es/platform/zlist/applications/interfaces/input/GetContextUseCaseInput.js +1 -0
- package/es/platform/zlist/applications/interfaces/input/ReOrderRecordUseCaseInput.js +1 -0
- package/es/platform/zlist/applications/interfaces/input/UpdateMultipleRecordUseCaseInput.js +1 -0
- package/es/platform/zlist/applications/usecases/DeleteMultipleRecordUseCase.js +23 -2
- package/es/platform/zlist/applications/usecases/DeleteSingleRecordUseCase.js +9 -0
- package/es/platform/zlist/applications/usecases/FetchMoreUseCase.js +1 -1
- package/es/platform/zlist/applications/usecases/GetContextUseCase.js +18 -0
- package/es/platform/zlist/applications/usecases/ReOrderFailedUseCase.js +22 -0
- package/es/platform/zlist/applications/usecases/ReOrderUseCase.js +25 -0
- package/es/platform/zlist/applications/usecases/RecordExecuteFailedUseCase.js +3 -2
- package/es/platform/zlist/applications/usecases/RecordSuccessCallbackUsecase.js +24 -3
- package/es/platform/zlist/applications/usecases/RecordUpdateUseCase.js +9 -0
- package/es/platform/zlist/applications/usecases/UpdateMultipleRecordUseCase.js +34 -0
- package/es/platform/zlist/domain/entities/List.js +73 -48
- package/es/platform/zlist/domain/entities/ListErrorState.js +167 -0
- package/es/platform/zlist/frameworks/EventHandlersFactory.js +16 -6
- package/es/platform/zlist/frameworks/ZListBehaviourFactory.js +6 -0
- package/es/platform/zrecord/applications/interfaces/input/GetMultipleRecordUsecaseInputModel.js +1 -0
- package/es/platform/zrecord/applications/interfaces/input/GetSingleRecordUseCaseInputModel.js +1 -0
- package/es/platform/zrecord/applications/usecases/GetMultipleRecordUseCase.js +16 -0
- package/es/platform/zrecord/applications/usecases/GetSingleRecordUseCase.js +17 -0
- package/es/platform/zrecord/domain/entities/GetReOrderRecordsStrategy.js +40 -0
- package/es/platform/zrecord/domain/entities/Records.js +9 -4
- package/es/platform/zrecord/domain/entities/RecordsManager.js +11 -1
- package/package.json +10 -8
- package/es/desk-frameworks/form-connected/frameworks/EventHandlersFactory.js +0 -24
- package/es/desk-frameworks/form-connected/frameworks/FormConnectedFactory.js +0 -33
- package/es/desk-frameworks/table-connected/adapters/controllers/ColumnChooserOpenedController.js +0 -36
- package/es/desk-frameworks/table-connected/frameworks/ListSdkFactory.js +0 -172
- package/es/desk-frameworks/table-connected/frameworks/TableConnectedFactory.js +0 -56
- /package/es/{desk-frameworks → platform/components}/form-connected/frameworks/FormConnected.js +0 -0
- /package/es/{desk-frameworks → platform/components}/index.js +0 -0
- /package/es/{desk-frameworks → platform/components}/table-connected/adapters/controllers/AbstractController.js +0 -0
- /package/es/{desk-frameworks → platform/components}/table-connected/frameworks/TableConnected.js +0 -0
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
function reorderImmutableArray(arr, fromIndex, toIndex) {
|
|
2
|
+
const start = fromIndex < 0 ? arr.length + fromIndex : fromIndex;
|
|
3
|
+
|
|
4
|
+
if (start >= 0 && start < arr.length) {
|
|
5
|
+
const end = toIndex < 0 ? arr.length + toIndex : toIndex;
|
|
6
|
+
const [item] = arr.splice(start, 1);
|
|
7
|
+
arr.splice(end, 0, item);
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export function reorderArray(arr, fromIndex, toIndex) {
|
|
12
|
+
const copy = [...arr];
|
|
13
|
+
reorderImmutableArray(copy, fromIndex, toIndex);
|
|
14
|
+
return copy;
|
|
15
|
+
}
|
|
16
|
+
export function parseCssNumberWithUnit(value) {
|
|
17
|
+
if (typeof value !== "string") return null;
|
|
18
|
+
const regex = /^(-?\d+(\.\d+)?)([a-z%]*)$/i;
|
|
19
|
+
const match = value.trim().match(regex);
|
|
20
|
+
if (!match) return null;
|
|
21
|
+
return {
|
|
22
|
+
number: parseFloat(match[1]),
|
|
23
|
+
unit: match[3] || ""
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
export function setTableInteractionClass(ref, className, add) {
|
|
27
|
+
if (ref.current) {
|
|
28
|
+
if (add && !ref.current.classList.contains(className)) {
|
|
29
|
+
ref.current.classList.add(className);
|
|
30
|
+
} else if (!add && ref.current.classList.contains(className)) {
|
|
31
|
+
ref.current.classList.remove(className);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
export function adjustHelperElementPosition(ref, draggingClass) {
|
|
36
|
+
if (ref.current) {
|
|
37
|
+
const TableScrollLeft = ref.current.scrollLeft;
|
|
38
|
+
const helperElement = ref.current.querySelector(`.${draggingClass}`);
|
|
39
|
+
|
|
40
|
+
if (helperElement) {
|
|
41
|
+
const helperLeft = parseCssNumberWithUnit(helperElement.style.left);
|
|
42
|
+
|
|
43
|
+
if (helperLeft && helperLeft.unit === 'px') {
|
|
44
|
+
helperElement.style.left = `${helperLeft.number + TableScrollLeft}px`;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
helperElement.scrollLeft = TableScrollLeft;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
export function getDropIndicator(_ref) {
|
|
52
|
+
let {
|
|
53
|
+
index,
|
|
54
|
+
oldIndex,
|
|
55
|
+
newIndex,
|
|
56
|
+
rowsLength
|
|
57
|
+
} = _ref;
|
|
58
|
+
const isMovingDown = newIndex > oldIndex;
|
|
59
|
+
let dropIndex, normalizedDropIndex, dropPosition;
|
|
60
|
+
|
|
61
|
+
if (index === newIndex && newIndex === 0) {
|
|
62
|
+
normalizedDropIndex = 1;
|
|
63
|
+
dropPosition = 'downward';
|
|
64
|
+
} else if (index === newIndex && newIndex === rowsLength - 1) {
|
|
65
|
+
normalizedDropIndex = rowsLength - 2;
|
|
66
|
+
dropPosition = 'upward';
|
|
67
|
+
} else {
|
|
68
|
+
if (isMovingDown) {
|
|
69
|
+
dropIndex = newIndex < index ? newIndex : newIndex + 1;
|
|
70
|
+
} else {
|
|
71
|
+
dropIndex = newIndex <= index ? newIndex - 1 : newIndex;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
normalizedDropIndex = dropIndex;
|
|
75
|
+
dropPosition = isMovingDown ? 'downward' : 'upward';
|
|
76
|
+
|
|
77
|
+
if (dropIndex < 0) {
|
|
78
|
+
normalizedDropIndex = 0;
|
|
79
|
+
dropPosition = 'downward';
|
|
80
|
+
} else if (dropIndex >= rowsLength) {
|
|
81
|
+
normalizedDropIndex = rowsLength - 1;
|
|
82
|
+
dropPosition = 'upward';
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
return {
|
|
87
|
+
index: normalizedDropIndex,
|
|
88
|
+
position: dropPosition
|
|
89
|
+
};
|
|
90
|
+
}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import ActionIcon from '@zohodesk-private/desk-components/es/ActionIcon/ActionIcon';
|
|
3
|
-
import Constants from "../../../../../../cc/action-icon/Constants";
|
|
3
|
+
import Constants from "../../../../../../cc/action-icon/Constants"; // @ts-ignore
|
|
4
|
+
|
|
5
|
+
import style from "./css/ActionIconView.module.css";
|
|
4
6
|
export default function ActionIconView(_ref, ref) {
|
|
5
7
|
let {
|
|
6
8
|
state,
|
|
@@ -8,6 +10,8 @@ export default function ActionIconView(_ref, ref) {
|
|
|
8
10
|
} = _ref;
|
|
9
11
|
const {
|
|
10
12
|
icon,
|
|
13
|
+
iconSize,
|
|
14
|
+
hasPadding,
|
|
11
15
|
label,
|
|
12
16
|
hoverVariant,
|
|
13
17
|
isDisabled
|
|
@@ -18,9 +22,14 @@ export default function ActionIconView(_ref, ref) {
|
|
|
18
22
|
return /*#__PURE__*/React.createElement(ActionIcon, {
|
|
19
23
|
ref: ref,
|
|
20
24
|
$ui_iconName: icon,
|
|
25
|
+
$ui_size: JSON.stringify(iconSize),
|
|
21
26
|
$ui_hoverVariant: hoverVariant,
|
|
22
27
|
$flag_disabled: isDisabled,
|
|
23
28
|
$i18n_tooltip: label,
|
|
29
|
+
hasPadding: hasPadding,
|
|
30
|
+
customStyle: hoverVariant === 'default' ? {
|
|
31
|
+
icon: style.cursor_default
|
|
32
|
+
} : undefined,
|
|
24
33
|
$event_onClick: !isDisabled ? () => {
|
|
25
34
|
dispatch({
|
|
26
35
|
type: Constants.ACTION_ICON_CLICKED
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { createCustomComponent } from "../../../../../custom-component";
|
|
2
|
+
import ButtonProperties from "../../../../../../cc/button/Properties";
|
|
3
|
+
import ButtonEvents from "../../../../../../cc/button/Events";
|
|
4
|
+
import ButtonView from "./ButtonView";
|
|
5
|
+
let Button = createCustomComponent({
|
|
6
|
+
name: "Button",
|
|
7
|
+
View: ButtonView,
|
|
8
|
+
properties: ButtonProperties,
|
|
9
|
+
events: ButtonEvents,
|
|
10
|
+
eventHandlers: {}
|
|
11
|
+
});
|
|
12
|
+
export default Button;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import Button from '@zohodesk/components/es/Button/Button';
|
|
3
|
+
import ButtonConstants from "../../../../../../cc/button/Constants";
|
|
4
|
+
|
|
5
|
+
function ButtonView(_ref, ref) {
|
|
6
|
+
let {
|
|
7
|
+
state,
|
|
8
|
+
helpers
|
|
9
|
+
} = _ref;
|
|
10
|
+
const {
|
|
11
|
+
dispatch
|
|
12
|
+
} = helpers;
|
|
13
|
+
const {
|
|
14
|
+
text,
|
|
15
|
+
palette,
|
|
16
|
+
size,
|
|
17
|
+
isRounded,
|
|
18
|
+
isDisabled,
|
|
19
|
+
id,
|
|
20
|
+
status,
|
|
21
|
+
tooltip
|
|
22
|
+
} = state.properties;
|
|
23
|
+
return /*#__PURE__*/React.createElement(Button, {
|
|
24
|
+
getRef: ref,
|
|
25
|
+
text: text,
|
|
26
|
+
palette: palette,
|
|
27
|
+
size: size,
|
|
28
|
+
isRounded: isRounded,
|
|
29
|
+
isDisabled: isDisabled,
|
|
30
|
+
id: id,
|
|
31
|
+
status: status,
|
|
32
|
+
tooltip: tooltip,
|
|
33
|
+
onClick: () => {
|
|
34
|
+
dispatch({
|
|
35
|
+
type: ButtonConstants.BUTTON_CLICKED
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
export default ButtonView;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { createCustomComponent } from "../../../../../custom-component";
|
|
2
|
+
import ListItemProperties from "../../../../../../cc/list-item/Properties";
|
|
3
|
+
import ListItemEvents from "../../../../../../cc/list-item/Events";
|
|
4
|
+
import ListItemView from "./ListItemView";
|
|
5
|
+
let ListItem = createCustomComponent({
|
|
6
|
+
name: "ListItem",
|
|
7
|
+
View: ListItemView,
|
|
8
|
+
properties: ListItemProperties,
|
|
9
|
+
events: ListItemEvents,
|
|
10
|
+
eventHandlers: {}
|
|
11
|
+
});
|
|
12
|
+
export default ListItem;
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import DropDownSeparator from '@zohodesk/components/es/DropDown/DropDownSeparator';
|
|
3
|
+
import ListItem from '@zohodesk/components/es/ListItem/ListItem';
|
|
4
|
+
import ListItemWithAvatar from '@zohodesk/components/es/ListItem/ListItemWithAvatar';
|
|
5
|
+
import ListItemWithIcon from '@zohodesk/components/es/ListItem/ListItemWithIcon';
|
|
6
|
+
import ListItemConstants from "../../../../../../cc/list-item/Constants";
|
|
7
|
+
|
|
8
|
+
function ListItemView(_ref, ref) {
|
|
9
|
+
let {
|
|
10
|
+
state,
|
|
11
|
+
helpers
|
|
12
|
+
} = _ref;
|
|
13
|
+
const {
|
|
14
|
+
dispatch
|
|
15
|
+
} = helpers;
|
|
16
|
+
const {
|
|
17
|
+
id,
|
|
18
|
+
isDisabled,
|
|
19
|
+
isActive,
|
|
20
|
+
text,
|
|
21
|
+
secondaryText,
|
|
22
|
+
size,
|
|
23
|
+
tooltip,
|
|
24
|
+
icon,
|
|
25
|
+
iconSize,
|
|
26
|
+
imgSrc,
|
|
27
|
+
imgName,
|
|
28
|
+
href,
|
|
29
|
+
target,
|
|
30
|
+
divider
|
|
31
|
+
} = state.properties;
|
|
32
|
+
const isLink = !!href;
|
|
33
|
+
let listItemElement = null;
|
|
34
|
+
|
|
35
|
+
if (!!imgSrc || !!imgName) {
|
|
36
|
+
listItemElement = /*#__PURE__*/React.createElement(ListItemWithAvatar, {
|
|
37
|
+
getRef: ref,
|
|
38
|
+
id: id,
|
|
39
|
+
isDisabled: isDisabled,
|
|
40
|
+
autoHover: true,
|
|
41
|
+
active: isActive,
|
|
42
|
+
value: text,
|
|
43
|
+
secondaryValue: secondaryText,
|
|
44
|
+
size: size,
|
|
45
|
+
title: tooltip,
|
|
46
|
+
disableTitle: tooltip,
|
|
47
|
+
lhsJustifyContent: "start",
|
|
48
|
+
imgSrc: imgSrc,
|
|
49
|
+
name: imgName,
|
|
50
|
+
onClick: () => {
|
|
51
|
+
dispatch({
|
|
52
|
+
type: ListItemConstants.LISTITEM_CLICKED,
|
|
53
|
+
payload: {
|
|
54
|
+
id
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
},
|
|
58
|
+
customProps: isLink ? {
|
|
59
|
+
ContainerProps: {
|
|
60
|
+
isLink,
|
|
61
|
+
href,
|
|
62
|
+
target
|
|
63
|
+
}
|
|
64
|
+
} : undefined
|
|
65
|
+
});
|
|
66
|
+
} else if (!!icon) {
|
|
67
|
+
listItemElement = /*#__PURE__*/React.createElement(ListItemWithIcon, {
|
|
68
|
+
getRef: ref,
|
|
69
|
+
id: id,
|
|
70
|
+
isDisabled: isDisabled,
|
|
71
|
+
autoHover: true,
|
|
72
|
+
active: isActive,
|
|
73
|
+
value: text,
|
|
74
|
+
secondaryValue: secondaryText,
|
|
75
|
+
size: size,
|
|
76
|
+
title: tooltip,
|
|
77
|
+
disableTitle: tooltip,
|
|
78
|
+
lhsJustifyContent: "start",
|
|
79
|
+
iconName: icon,
|
|
80
|
+
iconSize: JSON.stringify(iconSize),
|
|
81
|
+
isLink: isLink,
|
|
82
|
+
href: href,
|
|
83
|
+
target: target,
|
|
84
|
+
onClick: () => {
|
|
85
|
+
dispatch({
|
|
86
|
+
type: ListItemConstants.LISTITEM_CLICKED,
|
|
87
|
+
payload: {
|
|
88
|
+
id
|
|
89
|
+
}
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
});
|
|
93
|
+
} else {
|
|
94
|
+
listItemElement = /*#__PURE__*/React.createElement(ListItem, {
|
|
95
|
+
getRef: ref,
|
|
96
|
+
id: id,
|
|
97
|
+
isDisabled: isDisabled,
|
|
98
|
+
autoHover: true,
|
|
99
|
+
active: isActive,
|
|
100
|
+
value: text,
|
|
101
|
+
secondaryValue: secondaryText,
|
|
102
|
+
size: size,
|
|
103
|
+
title: tooltip,
|
|
104
|
+
disableTitle: tooltip,
|
|
105
|
+
isLink: isLink,
|
|
106
|
+
href: href,
|
|
107
|
+
target: target,
|
|
108
|
+
onClick: () => {
|
|
109
|
+
dispatch({
|
|
110
|
+
type: ListItemConstants.LISTITEM_CLICKED,
|
|
111
|
+
payload: {
|
|
112
|
+
id
|
|
113
|
+
}
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, divider === 'before' && /*#__PURE__*/React.createElement(DropDownSeparator, null), listItemElement, divider === 'after' && /*#__PURE__*/React.createElement(DropDownSeparator, null));
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
export default ListItemView;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { createCustomComponent } from "../../../../../custom-component";
|
|
2
|
+
import MoreDropdownProperties from "../../../../../../cc/more-dropdown/Properties";
|
|
3
|
+
import MoreDropdownEvents from "../../../../../../cc/more-dropdown/Events";
|
|
4
|
+
import MoreDropdownView from "./MoreDropdownView";
|
|
5
|
+
let MoreDropdown = createCustomComponent({
|
|
6
|
+
name: "MoreDropdown",
|
|
7
|
+
View: MoreDropdownView,
|
|
8
|
+
properties: MoreDropdownProperties,
|
|
9
|
+
events: MoreDropdownEvents,
|
|
10
|
+
eventHandlers: {}
|
|
11
|
+
});
|
|
12
|
+
export default MoreDropdown;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import MoreDropdown from '@zohodesk-private/desk-components/es/MoreAction/MoreAction';
|
|
3
|
+
import MoreDropdownConstants from "../../../../../../cc/more-dropdown/Constants";
|
|
4
|
+
|
|
5
|
+
function MoreDropdownView(_ref, ref) {
|
|
6
|
+
let {
|
|
7
|
+
state,
|
|
8
|
+
helpers
|
|
9
|
+
} = _ref;
|
|
10
|
+
const {
|
|
11
|
+
dispatch
|
|
12
|
+
} = helpers;
|
|
13
|
+
const {
|
|
14
|
+
heading,
|
|
15
|
+
options,
|
|
16
|
+
isDisabled,
|
|
17
|
+
tooltip
|
|
18
|
+
} = state.properties;
|
|
19
|
+
return /*#__PURE__*/React.createElement(MoreDropdown, {
|
|
20
|
+
$customProps_container: {
|
|
21
|
+
title: heading,
|
|
22
|
+
customProps: {
|
|
23
|
+
ToggleDropDownProps: {
|
|
24
|
+
ref
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
$data_options: options,
|
|
29
|
+
$flag_isDisabled: isDisabled // $i18n_heading={heading}
|
|
30
|
+
,
|
|
31
|
+
$i18n_moreIconTooltip: tooltip,
|
|
32
|
+
$event_onClick: id => {
|
|
33
|
+
dispatch({
|
|
34
|
+
type: MoreDropdownConstants.MORE_DROPDOWN_OPTION_CLICKED,
|
|
35
|
+
payload: {
|
|
36
|
+
id
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
export default MoreDropdownView;
|
package/es/library/dot/legacy-to-new-arch/table-column-filter/frameworks/ui/TableColumnFilterView.js
CHANGED
|
@@ -54,9 +54,10 @@ function TableColumnFilterView(_ref, ref) {
|
|
|
54
54
|
searchText
|
|
55
55
|
}
|
|
56
56
|
});
|
|
57
|
-
};
|
|
58
|
-
// For MultiSelectFilter, pass selectedOptions (array)
|
|
57
|
+
};
|
|
59
58
|
|
|
59
|
+
const isFiltered = isMultiSelect ? Array.isArray(selectedOptions) && selectedOptions.length > 0 : selectedOptions && Object.keys(selectedOptions).length > 0; // For SingleSelectFilter, pass selectedOption (object)
|
|
60
|
+
// For MultiSelectFilter, pass selectedOptions (array)
|
|
60
61
|
|
|
61
62
|
const commonProps = {
|
|
62
63
|
customProps: {
|
|
@@ -72,9 +73,12 @@ function TableColumnFilterView(_ref, ref) {
|
|
|
72
73
|
}
|
|
73
74
|
},
|
|
74
75
|
customStyle: {
|
|
75
|
-
container: `${style.container} ${
|
|
76
|
+
container: `${style.container} ${isFiltered ? style.active : ''}`
|
|
76
77
|
}
|
|
77
|
-
}
|
|
78
|
+
},
|
|
79
|
+
iconButtonProps: isFiltered ? {
|
|
80
|
+
isActive: true
|
|
81
|
+
} : undefined
|
|
78
82
|
}
|
|
79
83
|
}
|
|
80
84
|
},
|
|
@@ -0,0 +1,96 @@
|
|
|
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
|
+
import getClientActions from "../../../../../data-source/http-template/getClientActions";
|
|
8
|
+
import ClientActionsTranslator from "../../../../translators/client-actions-translator";
|
|
9
|
+
import FetchGateWay from "../../../../../zhttp/adapters/gateway/FetchGateWay";
|
|
10
|
+
import APITemplate from "../../../../../zdata-source/domain/entities/APITemplate";
|
|
11
|
+
import TemplateHelpers from "../../../../../zdata-source/adapters/gateways/TemplateHelpers";
|
|
12
|
+
;
|
|
13
|
+
const windowWrapper = window;
|
|
14
|
+
const ClientActionsAdapterUtils = {
|
|
15
|
+
getClientActionsAPIDetails(args) {
|
|
16
|
+
const apiTemplate = new APITemplate(getClientActions, new TemplateHelpers());
|
|
17
|
+
args.servicePrefix = 'supportapi/zd';
|
|
18
|
+
args.orgName = windowWrapper.currentOrg.portalName;
|
|
19
|
+
const apiDetails = apiTemplate.getApiDetails(args);
|
|
20
|
+
apiDetails.options = {
|
|
21
|
+
headers: {
|
|
22
|
+
orgId: windowWrapper.currentOrg.id
|
|
23
|
+
},
|
|
24
|
+
method: apiDetails.method
|
|
25
|
+
};
|
|
26
|
+
return apiDetails;
|
|
27
|
+
},
|
|
28
|
+
|
|
29
|
+
transform(input) {
|
|
30
|
+
return ClientActionsTranslator.transform(input, {
|
|
31
|
+
departmentName: windowWrapper.currentDepartment.sanitizedName,
|
|
32
|
+
orgId: windowWrapper.currentOrg.id,
|
|
33
|
+
orgName: windowWrapper.currentOrg.portalName,
|
|
34
|
+
servicePrefix: 'supportapi/zd'
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
};
|
|
39
|
+
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
|
+
fetchClientActions(args) {
|
|
64
|
+
const apiDetails = ClientActionsAdapterUtils.getClientActionsAPIDetails(args);
|
|
65
|
+
const fetchGateway = new FetchGateWay(window.fetch.bind(window));
|
|
66
|
+
return fetchGateway.fetch(apiDetails.url, apiDetails.options).then(response => {
|
|
67
|
+
return response.json();
|
|
68
|
+
}).then(response => {
|
|
69
|
+
if (response.errorCode) {
|
|
70
|
+
return Promise.reject(response);
|
|
71
|
+
} else {
|
|
72
|
+
const actions = ClientActionsAdapterUtils.transform(response);
|
|
73
|
+
return Promise.resolve(actions);
|
|
74
|
+
}
|
|
75
|
+
});
|
|
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
|
+
}
|
|
94
|
+
};
|
|
95
|
+
export const getClientActionsAdapter = ClientActionsAdapter.getClientActionComponent;
|
|
96
|
+
export const fetchClientActions = ClientActionsAdapter.fetchClientActions;
|
|
@@ -6,8 +6,17 @@ import PropertiesChangeUseCase from "../../applications/usecases/PropertiesChang
|
|
|
6
6
|
import MountController from "../../adapters/controllers/MountController";
|
|
7
7
|
import UnmountController from "../../adapters/controllers/UnmountController";
|
|
8
8
|
import PropertiesChangeController from "../../adapters/controllers/PropertiesChangeController";
|
|
9
|
+
import LifeCycleEvents from "../../../../../../cc/component/LifeCycleEventsEnum";
|
|
9
10
|
export default class EventHandlersFactory {
|
|
10
11
|
static create() {
|
|
12
|
+
return EventHandlersFactory.createClientActionsLifeCycleEventHandlers('ActionEventMediator');
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
static createClientActionsAdapterEventHandlers() {
|
|
16
|
+
return EventHandlersFactory.createClientActionsLifeCycleEventHandlers('ClientActionsAdapter');
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
static createClientActionsLifeCycleEventHandlers(componentName) {
|
|
11
20
|
const repository = new Repository();
|
|
12
21
|
const presenter = new Presenter();
|
|
13
22
|
const dependencies = {
|
|
@@ -21,9 +30,9 @@ export default class EventHandlersFactory {
|
|
|
21
30
|
const unmountController = new UnmountController(destroyUseCase);
|
|
22
31
|
const propertiesChangeController = new PropertiesChangeController(propertiesChangeUseCase);
|
|
23
32
|
return {
|
|
24
|
-
[
|
|
25
|
-
[
|
|
26
|
-
[
|
|
33
|
+
[`${componentName}#${LifeCycleEvents.MOUNT}`]: initializeController.handle,
|
|
34
|
+
[`${componentName}#${LifeCycleEvents.UPDATE_PROPERTIES}`]: propertiesChangeController.handle,
|
|
35
|
+
[`${componentName}#${LifeCycleEvents.UN_MOUNT}`]: unmountController.handle
|
|
27
36
|
};
|
|
28
37
|
}
|
|
29
38
|
|
|
@@ -20,8 +20,11 @@ export default class ClientActionsTranslator {
|
|
|
20
20
|
}
|
|
21
21
|
|
|
22
22
|
static transform(actions, context) {
|
|
23
|
-
const
|
|
24
|
-
|
|
23
|
+
const replacementContext = {
|
|
24
|
+
"@context": context
|
|
25
|
+
};
|
|
26
|
+
const resolvedActions = ActionContextResolver.resolveActions(actions, replacementContext);
|
|
27
|
+
const evaluatedActions = resolvedActions.filter(action => ConditionResolver.evaluateCondition(action.conditions, replacementContext, action.id));
|
|
25
28
|
const finalTransformedActions = evaluatedActions.map(action => this.transformToActionViewModel(action));
|
|
26
29
|
return finalTransformedActions;
|
|
27
30
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
import TemplateResolver from "../../../template-resolver";
|
|
1
2
|
export function getResolvedContextFieldValue(context, field) {
|
|
2
|
-
if (field.includes(
|
|
3
|
-
let value =
|
|
3
|
+
if (field.includes('.')) {
|
|
4
|
+
let value = TemplateResolver.replaceContextVariables(field, context);
|
|
4
5
|
return value;
|
|
5
6
|
}
|
|
6
7
|
|
|
@@ -4,7 +4,7 @@ export class ActionContextResolver {
|
|
|
4
4
|
|
|
5
5
|
static resolveContextInEventMappingPayload(eventMapping, context) {
|
|
6
6
|
return { ...eventMapping,
|
|
7
|
-
payloadValueMapping: TemplateResolver.replaceContextVariablesInObject(eventMapping.
|
|
7
|
+
payloadValueMapping: TemplateResolver.replaceContextVariablesInObject(eventMapping.payloadValueMapping, context)
|
|
8
8
|
};
|
|
9
9
|
}
|
|
10
10
|
|
|
@@ -14,9 +14,9 @@ export class ActionContextResolver {
|
|
|
14
14
|
pattern
|
|
15
15
|
} = condition;
|
|
16
16
|
const resolvedFields = fields.map(field => {
|
|
17
|
-
const resolvedValue = TemplateResolver.replaceContextVariables(field.value.join(
|
|
17
|
+
const resolvedValue = TemplateResolver.replaceContextVariables(field.value.join(','), templateContext);
|
|
18
18
|
return { ...field,
|
|
19
|
-
value: resolvedValue.split(
|
|
19
|
+
value: resolvedValue.split(',')
|
|
20
20
|
};
|
|
21
21
|
});
|
|
22
22
|
return { ...condition,
|
|
@@ -31,10 +31,10 @@ export class ActionContextResolver {
|
|
|
31
31
|
|
|
32
32
|
static resolveAction(action, context) {
|
|
33
33
|
const eventMappings = action.uiComponentMapping.eventMappings;
|
|
34
|
-
const conditions = action.
|
|
34
|
+
const conditions = action.conditions;
|
|
35
35
|
const resolvedEventMappings = eventMappings.map(eventMapping => this.resolveContextInEventMappingPayload(eventMapping, context));
|
|
36
|
-
const resolvedProperty = this.resolveContextInProperties(action.uiComponentMapping.
|
|
37
|
-
const resolveConditionValues = this.resolveConditionValueContext(conditions, context);
|
|
36
|
+
const resolvedProperty = this.resolveContextInProperties(action.uiComponentMapping.propertiesValueMapping, context);
|
|
37
|
+
const resolveConditionValues = conditions ? this.resolveConditionValueContext(conditions, context) : conditions;
|
|
38
38
|
return { ...action,
|
|
39
39
|
conditions: resolveConditionValues,
|
|
40
40
|
uiComponentMapping: { ...action.uiComponentMapping,
|
|
@@ -45,10 +45,7 @@ export class ActionContextResolver {
|
|
|
45
45
|
}
|
|
46
46
|
|
|
47
47
|
static resolveActions(actions, context) {
|
|
48
|
-
|
|
49
|
-
"@context": context
|
|
50
|
-
};
|
|
51
|
-
return actions ? actions.map(action => this.resolveAction(action, replacementContext)) : [];
|
|
48
|
+
return actions ? actions.map(action => this.resolveAction(action, context)) : [];
|
|
52
49
|
}
|
|
53
50
|
|
|
54
51
|
}
|