@qrvey/utils 1.1.0-9 → 1.1.2-1
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/.eslintignore +5 -0
- package/.eslintrc.json +37 -0
- package/README.md +474 -285
- package/bitbucket-pipelines.yml +25 -0
- package/dist/cjs/constants/COLUMN.js +0 -1
- package/dist/cjs/constants/COLUMN_PROPERTY.d.ts +6 -0
- package/dist/cjs/constants/COLUMN_PROPERTY.js +0 -1
- package/dist/cjs/constants/COLUMN_PROPERTY_VALUE.js +4 -1
- package/dist/cjs/date/constants/DATE_DAY_HOURS.d.ts +1 -0
- package/dist/cjs/date/constants/DATE_DAY_HOURS.js +29 -0
- package/dist/cjs/date/constants/DATE_HOUR_MINUTES.d.ts +1 -0
- package/dist/cjs/date/constants/DATE_HOUR_MINUTES.js +65 -0
- package/dist/cjs/date/constants/DATE_MINUTE_SECONDS.d.ts +1 -0
- package/dist/cjs/date/constants/DATE_MINUTE_SECONDS.js +5 -0
- package/dist/cjs/date/constants/DATE_MONTH_DAYS.d.ts +1 -0
- package/dist/cjs/date/constants/DATE_MONTH_DAYS.js +36 -0
- package/dist/cjs/date/constants/DATE_PROPERTY.js +0 -1
- package/dist/cjs/date/constants/DATE_PROPERTY_VALUE.d.ts +8 -0
- package/dist/cjs/date/constants/DATE_PROPERTY_VALUE.js +17 -0
- package/dist/cjs/date/constants/DATE_P_PROPERTIES.d.ts +2 -0
- package/dist/cjs/date/constants/DATE_P_PROPERTIES.js +11 -0
- package/dist/cjs/date/constants/DATE_P_VALUES.d.ts +6 -0
- package/dist/cjs/date/constants/DATE_P_VALUES.js +8 -0
- package/dist/cjs/date/constants/DATE_TIME_P_VALUES.d.ts +6 -0
- package/dist/cjs/date/constants/DATE_TIME_P_VALUES.js +8 -0
- package/dist/cjs/date/constants/DATE_TIME_VALUES.js +1 -1
- package/dist/cjs/date/constants/DATE_WEEK_DAYS.d.ts +1 -0
- package/dist/cjs/date/constants/DATE_WEEK_DAYS.js +6 -0
- package/dist/cjs/date/constants/DATE_YEAR_DAYS.d.ts +1 -0
- package/dist/cjs/date/constants/DATE_YEAR_DAYS.js +370 -0
- package/dist/cjs/date/constants/DATE_YEAR_MONTHS.d.ts +1 -0
- package/dist/cjs/date/constants/DATE_YEAR_MONTHS.js +4 -0
- package/dist/cjs/date/constants/DATE_YEAR_QUARTERS.d.ts +1 -0
- package/dist/cjs/date/constants/DATE_YEAR_QUARTERS.js +4 -0
- package/dist/cjs/date/constants/index.d.ts +12 -0
- package/dist/cjs/date/constants/index.js +12 -0
- package/dist/cjs/date/range/getDateRange.js +26 -21
- package/dist/cjs/date/relative/Adapter.js +1 -1
- package/dist/cjs/date/relative/constants/DATE_FORMATS.d.ts +1 -1
- package/dist/cjs/date/relative/constants/DATE_FORMATS.js +3 -3
- package/dist/cjs/date/relative/helpers/formatStatement.js +6 -6
- package/dist/cjs/filters/adapters/FDToFlatUI.js +5 -12
- package/dist/cjs/filters/adapters/FDToUI.js +2 -3
- package/dist/cjs/filters/adapters/UIToFlatUI.js +5 -12
- package/dist/cjs/filters/adapters/UIToOldLogic.js +9 -1
- package/dist/cjs/filters/adapters/adaptFilterData.js +1 -1
- package/dist/cjs/filters/adapters/flatUIToFD.js +3 -7
- package/dist/cjs/filters/adapters/flatUIToOldLogic.js +41 -62
- package/dist/cjs/filters/adapters/flatUIToUI.js +2 -7
- package/dist/cjs/filters/adapters/logicToFlatUI.js +89 -74
- package/dist/cjs/filters/adapters/transformFilters.d.ts +1 -1
- package/dist/cjs/filters/adapters/transformFilters.js +18 -25
- package/dist/cjs/filters/constants/backend/FILTER_BACKEND_VALIDATOR.js +0 -1
- package/dist/cjs/filters/constants/common/FILTER_GROUPED_COLUMN_OPERATOR.d.ts +2 -0
- package/dist/cjs/filters/constants/common/FILTER_GROUPED_COLUMN_OPERATOR.js +4 -0
- package/dist/cjs/filters/constants/common/FILTER_OPERATOR.js +0 -1
- package/dist/cjs/filters/constants/common/FILTER_VALIDATOR.js +0 -1
- package/dist/cjs/filters/constants/common/index.d.ts +1 -0
- package/dist/cjs/filters/constants/common/index.js +1 -0
- package/dist/cjs/filters/helpers/backend/buildExpression.d.ts +6 -0
- package/dist/cjs/filters/helpers/backend/buildExpression.js +9 -2
- package/dist/cjs/filters/helpers/backend/getBackendGroupValue.js +2 -1
- package/dist/cjs/filters/helpers/backend/getBackendProperty.js +7 -2
- package/dist/cjs/filters/helpers/backend/getBackendValues.js +34 -18
- package/dist/cjs/filters/helpers/common/arePropertiesDateP.d.ts +8 -0
- package/dist/cjs/filters/helpers/common/arePropertiesDateP.js +16 -0
- package/dist/cjs/filters/helpers/common/getFilterColumnLabel.js +1 -1
- package/dist/cjs/filters/helpers/common/getFilterid.js +1 -1
- package/dist/cjs/filters/helpers/common/getFiltersByParams.js +5 -5
- package/dist/cjs/filters/helpers/common/getFiltersByVisibility.js +1 -1
- package/dist/cjs/filters/helpers/common/getMergeFiltersSettings.d.ts +7 -0
- package/dist/cjs/filters/helpers/common/getMergeFiltersSettings.js +16 -0
- package/dist/cjs/filters/helpers/common/getParamsToGetFilterSettings.d.ts +5 -0
- package/dist/cjs/filters/helpers/common/getParamsToGetFilterSettings.js +11 -1
- package/dist/cjs/filters/helpers/common/index.d.ts +2 -0
- package/dist/cjs/filters/helpers/common/index.js +2 -0
- package/dist/cjs/filters/helpers/common/mergeFilters.d.ts +2 -1
- package/dist/cjs/filters/helpers/common/mergeFilters.js +27 -10
- package/dist/cjs/filters/helpers/common/resolveDatasetConditions.js +1 -1
- package/dist/cjs/filters/helpers/common/resolveFilterConditions.js +2 -3
- package/dist/cjs/filters/helpers/common/resolveScopeConditions.js +1 -1
- package/dist/cjs/filters/helpers/getAggFiltersFromFilterData.d.ts +1 -1
- package/dist/cjs/filters/helpers/getAggFiltersFromFilterData.js +18 -19
- package/dist/cjs/filters/helpers/getScopesByHierarchy.js +2 -2
- package/dist/cjs/filters/helpers/ui/excludeUIFlatFiltersByScopes.d.ts +1 -1
- package/dist/cjs/filters/helpers/ui/excludeUIFlatFiltersByScopes.js +1 -1
- package/dist/cjs/filters/helpers/ui/getUIFlatFilterByParams.d.ts +1 -1
- package/dist/cjs/filters/helpers/ui/getUIFlatFilterByParams.js +1 -1
- package/dist/cjs/filters/helpers/ui/getUIFlatFiltersByParams.d.ts +1 -1
- package/dist/cjs/filters/helpers/ui/getUIFlatFiltersByParams.js +1 -1
- package/dist/cjs/filters/helpers/ui/getUIFlatFiltersByScopes.d.ts +1 -1
- package/dist/cjs/filters/helpers/ui/getUIFlatFiltersByScopes.js +1 -1
- package/dist/cjs/filters/helpers/ui/getUIValues.js +6 -5
- package/dist/cjs/filters/interfaces/OLD_IFilterDetail.d.ts +3 -0
- package/dist/cjs/filters/interfaces/common/IFSFilterExtras.d.ts +3 -0
- package/dist/cjs/filters/interfaces/common/IFSFilterExtrasInfo.d.ts +4 -0
- package/dist/cjs/filters/interfaces/common/IFSFilterExtrasInfo.js +2 -0
- package/dist/cjs/filters/interfaces/common/IFSMergeFiltersSettings.d.ts +7 -0
- package/dist/cjs/filters/interfaces/common/IFSMergeFiltersSettings.js +2 -0
- package/dist/cjs/filters/interfaces/common/IFSParamsToGetFilter.d.ts +2 -1
- package/dist/cjs/filters/interfaces/common/IFSParamsToGetFilterEnableds.d.ts +9 -0
- package/dist/cjs/filters/interfaces/common/IFSParamsToGetFilterEnableds.js +2 -0
- package/dist/cjs/filters/interfaces/common/IFSParamsToGetFilterSettings.d.ts +5 -0
- package/dist/cjs/filters/interfaces/common/index.d.ts +3 -0
- package/dist/cjs/filters/interfaces/common/index.js +3 -0
- package/dist/cjs/filters/interfaces/panel/IFPSettingsFilterPanelBodyScopeScope.d.ts +1 -0
- package/dist/cjs/filters/interfaces/panel/IFPSettingsFilterPanelHeader.d.ts +1 -0
- package/dist/cjs/filters/interfaces/panel/IFPSettingsFilterPanelSettings.d.ts +4 -0
- package/dist/cjs/filters/interfaces/panel/IFPSettingsFilterPanelSettingsScope.d.ts +7 -0
- package/dist/cjs/filters/interfaces/panel/IFPSettingsFilterPanelSettingsScope.js +2 -0
- package/dist/cjs/filters/interfaces/panel/index.d.ts +1 -0
- package/dist/cjs/filters/interfaces/panel/index.js +1 -0
- package/dist/cjs/format/definition.d.ts +3 -2
- package/dist/cjs/format/format.d.ts +1 -1
- package/dist/cjs/format/format.js +25 -26
- package/dist/cjs/general/array/delete.d.ts +4 -4
- package/dist/cjs/general/array/delete.js +8 -6
- package/dist/cjs/general/array/filterNestedTree.js +1 -1
- package/dist/cjs/general/array/flattenDeep.d.ts +1 -1
- package/dist/cjs/general/array/flattenDeep.js +4 -2
- package/dist/cjs/general/array/getFirstIndexFromArray.d.ts +1 -1
- package/dist/cjs/general/array/getFirstIndexFromArray.js +7 -5
- package/dist/cjs/general/array/getLastIndexFromArray.d.ts +1 -1
- package/dist/cjs/general/array/getLastIndexFromArray.js +6 -4
- package/dist/cjs/general/function/debounce.d.ts +1 -1
- package/dist/cjs/general/function/throttled.d.ts +1 -1
- package/dist/cjs/general/function/throttled.js +1 -1
- package/dist/cjs/general/mix/importScripts.d.ts +1 -1
- package/dist/cjs/general/mix/isEmpty.d.ts +5 -4
- package/dist/cjs/general/mix/isEmpty.js +12 -6
- package/dist/cjs/general/mix/randomId.d.ts +1 -1
- package/dist/cjs/general/mix/randomId.js +1 -2
- package/dist/cjs/general/mix/size.d.ts +1 -1
- package/dist/cjs/general/object/cloneDeep.d.ts +4 -4
- package/dist/cjs/general/object/cloneDeep.js +14 -6
- package/dist/cjs/general/object/get.d.ts +47 -15
- package/dist/cjs/general/object/get.js +61 -37
- package/dist/cjs/general/object/getAttribute.d.ts +1 -1
- package/dist/cjs/general/object/hasProperty.d.ts +1 -1
- package/dist/cjs/general/object/hasProperty.js +1 -1
- package/dist/cjs/general/object/index.d.ts +1 -0
- package/dist/cjs/general/object/index.js +1 -0
- package/dist/cjs/general/object/isObject.d.ts +6 -0
- package/dist/cjs/general/object/isObject.js +12 -0
- package/dist/cjs/general/object/mapValues.d.ts +1 -1
- package/dist/cjs/general/object/mapValues.js +0 -1
- package/dist/cjs/general/object/omit.js +1 -1
- package/dist/cjs/general/object/pick.js +0 -1
- package/dist/cjs/index.d.ts +2 -0
- package/dist/cjs/index.js +2 -0
- package/dist/cjs/qrvey/getColumnsLabel.js +4 -4
- package/dist/cjs/qrvey/index.d.ts +3 -0
- package/dist/cjs/qrvey/index.js +15 -0
- package/dist/cjs/tokens/index.d.ts +1 -0
- package/dist/cjs/tokens/index.js +13 -0
- package/dist/cjs/tokens/isTokenLabel.d.ts +6 -0
- package/dist/cjs/tokens/isTokenLabel.js +16 -0
- package/dist/constants/COLUMN.js +0 -1
- package/dist/constants/COLUMN_PROPERTY.d.ts +6 -0
- package/dist/constants/COLUMN_PROPERTY.js +0 -1
- package/dist/constants/COLUMN_PROPERTY_VALUE.js +4 -1
- package/dist/date/constants/DATE_DAY_HOURS.d.ts +1 -0
- package/dist/date/constants/DATE_DAY_HOURS.js +26 -0
- package/dist/date/constants/DATE_HOUR_MINUTES.d.ts +1 -0
- package/dist/date/constants/DATE_HOUR_MINUTES.js +62 -0
- package/dist/date/constants/DATE_MINUTE_SECONDS.d.ts +1 -0
- package/dist/date/constants/DATE_MINUTE_SECONDS.js +2 -0
- package/dist/date/constants/DATE_MONTH_DAYS.d.ts +1 -0
- package/dist/date/constants/DATE_MONTH_DAYS.js +33 -0
- package/dist/date/constants/DATE_PROPERTY.js +0 -1
- package/dist/date/constants/DATE_PROPERTY_VALUE.d.ts +8 -0
- package/dist/date/constants/DATE_PROPERTY_VALUE.js +14 -0
- package/dist/date/constants/DATE_P_PROPERTIES.d.ts +2 -0
- package/dist/date/constants/DATE_P_PROPERTIES.js +8 -0
- package/dist/date/constants/DATE_P_VALUES.d.ts +6 -0
- package/dist/date/constants/DATE_P_VALUES.js +5 -0
- package/dist/date/constants/DATE_TIME_P_VALUES.d.ts +6 -0
- package/dist/date/constants/DATE_TIME_P_VALUES.js +5 -0
- package/dist/date/constants/DATE_TIME_VALUES.js +1 -1
- package/dist/date/constants/DATE_WEEK_DAYS.d.ts +1 -0
- package/dist/date/constants/DATE_WEEK_DAYS.js +3 -0
- package/dist/date/constants/DATE_YEAR_DAYS.d.ts +1 -0
- package/dist/date/constants/DATE_YEAR_DAYS.js +367 -0
- package/dist/date/constants/DATE_YEAR_MONTHS.d.ts +1 -0
- package/dist/date/constants/DATE_YEAR_MONTHS.js +1 -0
- package/dist/date/constants/DATE_YEAR_QUARTERS.d.ts +1 -0
- package/dist/date/constants/DATE_YEAR_QUARTERS.js +1 -0
- package/dist/date/constants/index.d.ts +12 -0
- package/dist/date/constants/index.js +12 -0
- package/dist/date/range/getDateRange.js +26 -21
- package/dist/date/relative/Adapter.js +2 -2
- package/dist/date/relative/constants/DATE_FORMATS.d.ts +1 -1
- package/dist/date/relative/constants/DATE_FORMATS.js +3 -3
- package/dist/date/relative/helpers/formatStatement.js +7 -7
- package/dist/filters/adapters/FDToFlatUI.js +5 -12
- package/dist/filters/adapters/FDToUI.js +2 -3
- package/dist/filters/adapters/UIToFlatUI.js +5 -12
- package/dist/filters/adapters/UIToOldLogic.js +9 -1
- package/dist/filters/adapters/adaptFilterData.js +1 -1
- package/dist/filters/adapters/flatUIToFD.js +3 -7
- package/dist/filters/adapters/flatUIToOldLogic.js +42 -63
- package/dist/filters/adapters/flatUIToUI.js +3 -8
- package/dist/filters/adapters/logicToFlatUI.js +91 -76
- package/dist/filters/adapters/transformFilters.d.ts +1 -1
- package/dist/filters/adapters/transformFilters.js +19 -26
- package/dist/filters/constants/backend/FILTER_BACKEND_VALIDATOR.js +0 -1
- package/dist/filters/constants/common/FILTER_GROUPED_COLUMN_OPERATOR.d.ts +2 -0
- package/dist/filters/constants/common/FILTER_GROUPED_COLUMN_OPERATOR.js +1 -0
- package/dist/filters/constants/common/FILTER_OPERATOR.js +0 -1
- package/dist/filters/constants/common/FILTER_VALIDATOR.js +0 -1
- package/dist/filters/constants/common/index.d.ts +1 -0
- package/dist/filters/constants/common/index.js +1 -0
- package/dist/filters/helpers/backend/buildExpression.d.ts +6 -0
- package/dist/filters/helpers/backend/buildExpression.js +9 -2
- package/dist/filters/helpers/backend/getBackendGroupValue.js +2 -1
- package/dist/filters/helpers/backend/getBackendProperty.js +8 -3
- package/dist/filters/helpers/backend/getBackendValues.js +34 -18
- package/dist/filters/helpers/common/arePropertiesDateP.d.ts +8 -0
- package/dist/filters/helpers/common/arePropertiesDateP.js +12 -0
- package/dist/filters/helpers/common/getFilterColumnLabel.js +1 -1
- package/dist/filters/helpers/common/getFilterid.js +1 -1
- package/dist/filters/helpers/common/getFiltersByParams.js +6 -6
- package/dist/filters/helpers/common/getFiltersByVisibility.js +1 -1
- package/dist/filters/helpers/common/getMergeFiltersSettings.d.ts +7 -0
- package/dist/filters/helpers/common/getMergeFiltersSettings.js +12 -0
- package/dist/filters/helpers/common/getParamsToGetFilterSettings.d.ts +5 -0
- package/dist/filters/helpers/common/getParamsToGetFilterSettings.js +11 -1
- package/dist/filters/helpers/common/index.d.ts +2 -0
- package/dist/filters/helpers/common/index.js +2 -0
- package/dist/filters/helpers/common/mergeFilters.d.ts +2 -1
- package/dist/filters/helpers/common/mergeFilters.js +27 -10
- package/dist/filters/helpers/common/resolveDatasetConditions.js +1 -1
- package/dist/filters/helpers/common/resolveFilterConditions.js +2 -3
- package/dist/filters/helpers/common/resolveScopeConditions.js +1 -1
- package/dist/filters/helpers/getAggFiltersFromFilterData.d.ts +1 -1
- package/dist/filters/helpers/getAggFiltersFromFilterData.js +18 -19
- package/dist/filters/helpers/getScopesByHierarchy.js +2 -2
- package/dist/filters/helpers/ui/excludeUIFlatFiltersByScopes.d.ts +1 -1
- package/dist/filters/helpers/ui/excludeUIFlatFiltersByScopes.js +1 -1
- package/dist/filters/helpers/ui/getUIFlatFilterByParams.d.ts +1 -1
- package/dist/filters/helpers/ui/getUIFlatFilterByParams.js +1 -1
- package/dist/filters/helpers/ui/getUIFlatFiltersByParams.d.ts +1 -1
- package/dist/filters/helpers/ui/getUIFlatFiltersByParams.js +1 -1
- package/dist/filters/helpers/ui/getUIFlatFiltersByScopes.d.ts +1 -1
- package/dist/filters/helpers/ui/getUIFlatFiltersByScopes.js +1 -1
- package/dist/filters/helpers/ui/getUIValues.js +6 -5
- package/dist/filters/interfaces/OLD_IFilterDetail.d.ts +3 -0
- package/dist/filters/interfaces/common/IFSFilterExtras.d.ts +3 -0
- package/dist/filters/interfaces/common/IFSFilterExtrasInfo.d.ts +4 -0
- package/dist/filters/interfaces/common/IFSFilterExtrasInfo.js +1 -0
- package/dist/filters/interfaces/common/IFSMergeFiltersSettings.d.ts +7 -0
- package/dist/filters/interfaces/common/IFSMergeFiltersSettings.js +1 -0
- package/dist/filters/interfaces/common/IFSParamsToGetFilter.d.ts +2 -1
- package/dist/filters/interfaces/common/IFSParamsToGetFilterEnableds.d.ts +9 -0
- package/dist/filters/interfaces/common/IFSParamsToGetFilterEnableds.js +1 -0
- package/dist/filters/interfaces/common/IFSParamsToGetFilterSettings.d.ts +5 -0
- package/dist/filters/interfaces/common/index.d.ts +3 -0
- package/dist/filters/interfaces/common/index.js +3 -0
- package/dist/filters/interfaces/panel/IFPSettingsFilterPanelBodyScopeScope.d.ts +1 -0
- package/dist/filters/interfaces/panel/IFPSettingsFilterPanelHeader.d.ts +1 -0
- package/dist/filters/interfaces/panel/IFPSettingsFilterPanelSettings.d.ts +4 -0
- package/dist/filters/interfaces/panel/IFPSettingsFilterPanelSettingsScope.d.ts +7 -0
- package/dist/filters/interfaces/panel/IFPSettingsFilterPanelSettingsScope.js +1 -0
- package/dist/filters/interfaces/panel/index.d.ts +1 -0
- package/dist/filters/interfaces/panel/index.js +1 -0
- package/dist/format/definition.d.ts +3 -2
- package/dist/format/format.d.ts +1 -1
- package/dist/format/format.js +12 -13
- package/dist/general/array/delete.d.ts +4 -4
- package/dist/general/array/delete.js +8 -6
- package/dist/general/array/filterNestedTree.js +1 -1
- package/dist/general/array/flattenDeep.d.ts +1 -1
- package/dist/general/array/flattenDeep.js +4 -2
- package/dist/general/array/getFirstIndexFromArray.d.ts +1 -1
- package/dist/general/array/getFirstIndexFromArray.js +7 -5
- package/dist/general/array/getLastIndexFromArray.d.ts +1 -1
- package/dist/general/array/getLastIndexFromArray.js +6 -4
- package/dist/general/function/debounce.d.ts +1 -1
- package/dist/general/function/throttled.d.ts +1 -1
- package/dist/general/function/throttled.js +1 -1
- package/dist/general/mix/importScripts.d.ts +1 -1
- package/dist/general/mix/isEmpty.d.ts +5 -4
- package/dist/general/mix/isEmpty.js +12 -6
- package/dist/general/mix/randomId.d.ts +1 -1
- package/dist/general/mix/randomId.js +1 -2
- package/dist/general/mix/size.d.ts +1 -1
- package/dist/general/object/cloneDeep.d.ts +4 -4
- package/dist/general/object/cloneDeep.js +14 -6
- package/dist/general/object/get.d.ts +47 -15
- package/dist/general/object/get.js +59 -34
- package/dist/general/object/getAttribute.d.ts +1 -1
- package/dist/general/object/hasProperty.d.ts +1 -1
- package/dist/general/object/hasProperty.js +1 -1
- package/dist/general/object/index.d.ts +1 -0
- package/dist/general/object/index.js +1 -0
- package/dist/general/object/isObject.d.ts +6 -0
- package/dist/general/object/isObject.js +8 -0
- package/dist/general/object/mapValues.d.ts +1 -1
- package/dist/general/object/mapValues.js +0 -1
- package/dist/general/object/omit.js +1 -1
- package/dist/general/object/pick.js +0 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.js +2 -0
- package/dist/qrvey/getColumnsLabel.js +5 -5
- package/dist/qrvey/index.d.ts +3 -0
- package/dist/qrvey/index.js +3 -0
- package/dist/tokens/index.d.ts +1 -0
- package/dist/tokens/index.js +1 -0
- package/dist/tokens/isTokenLabel.d.ts +6 -0
- package/dist/tokens/isTokenLabel.js +12 -0
- package/package.json +17 -10
- package/prepareToPublish.js +52 -0
- package/src/constants/COLUMN.ts +1 -1
- package/src/constants/COLUMN_PROPERTY.ts +13 -2
- package/src/constants/COLUMN_PROPERTY_VALUE.ts +6 -1
- package/src/date/constants/DATE_DAY_HOURS.ts +27 -0
- package/src/date/constants/DATE_HOUR_MINUTES.ts +63 -0
- package/src/date/constants/DATE_MINUTE_SECONDS.ts +3 -0
- package/src/date/constants/DATE_MONTH_DAYS.ts +34 -0
- package/src/date/constants/DATE_PROPERTY.ts +1 -1
- package/src/date/constants/DATE_PROPERTY_VALUE.ts +16 -0
- package/src/date/constants/DATE_P_PROPERTIES.ts +10 -0
- package/src/date/constants/DATE_P_VALUES.ts +7 -0
- package/src/date/constants/DATE_TIME_PROPERTIES.ts +0 -1
- package/src/date/constants/DATE_TIME_P_VALUES.ts +7 -0
- package/src/date/constants/DATE_TIME_VALUES.ts +1 -1
- package/src/date/constants/DATE_WEEK_DAYS.ts +4 -0
- package/src/date/constants/DATE_YEAR_DAYS.ts +368 -0
- package/src/date/constants/DATE_YEAR_MONTHS.ts +2 -0
- package/src/date/constants/DATE_YEAR_QUARTERS.ts +1 -0
- package/src/date/constants/index.ts +12 -0
- package/src/date/range/getDateRange.ts +46 -42
- package/src/date/relative/Adapter.ts +2 -2
- package/src/date/relative/constants/DATE_FORMATS.ts +3 -4
- package/src/date/relative/constants/RELATIVE_CURSOR_VALUE.ts +1 -1
- package/src/date/relative/helpers/formatStatement.ts +8 -8
- package/src/date/relative/index.ts +1 -1
- package/src/filters/adapters/FDToFlatUI.ts +7 -3
- package/src/filters/adapters/FDToUI.ts +5 -6
- package/src/filters/adapters/UIToFD.ts +1 -1
- package/src/filters/adapters/UIToFlatUI.ts +9 -5
- package/src/filters/adapters/UIToOldLogic.ts +11 -3
- package/src/filters/adapters/adaptFilterData.ts +1 -1
- package/src/filters/adapters/flatUIToFD.ts +5 -1
- package/src/filters/adapters/flatUIToOldLogic.ts +57 -71
- package/src/filters/adapters/flatUIToUI.ts +4 -1
- package/src/filters/adapters/logicToFlatUI.ts +101 -77
- package/src/filters/adapters/transformFilters.ts +22 -30
- package/src/filters/constants/backend/FILTER_BACKEND_VALIDATOR.ts +1 -1
- package/src/filters/constants/common/FILTER_GROUPED_COLUMN_OPERATOR.ts +3 -0
- package/src/filters/constants/common/FILTER_OPERATOR.ts +1 -1
- package/src/filters/constants/common/FILTER_VALIDATOR.ts +1 -1
- package/src/filters/constants/common/index.ts +1 -0
- package/src/filters/helpers/backend/buildExpression.ts +11 -3
- package/src/filters/helpers/backend/buildFilters.ts +2 -2
- package/src/filters/helpers/backend/getBackendGroupValue.ts +2 -1
- package/src/filters/helpers/backend/getBackendProperty.ts +6 -3
- package/src/filters/helpers/backend/getBackendValues.ts +27 -23
- package/src/filters/helpers/builder/getFilterBuilderGeneralConfig.ts +1 -1
- package/src/filters/helpers/common/areFiltersEquals.ts +1 -1
- package/src/filters/helpers/common/arePropertiesDateP.ts +14 -0
- package/src/filters/helpers/common/excludeFiltersByParams.ts +1 -1
- package/src/filters/helpers/common/getFilterColumnLabel.ts +1 -1
- package/src/filters/helpers/common/getFilterLabel.ts +1 -1
- package/src/filters/helpers/common/getFilterid.ts +1 -1
- package/src/filters/helpers/common/getFiltersByAggregateColumn.ts +1 -1
- package/src/filters/helpers/common/getFiltersByParams.ts +6 -7
- package/src/filters/helpers/common/getFiltersByVisibility.ts +1 -1
- package/src/filters/helpers/common/getMergeFiltersSettings.ts +13 -0
- package/src/filters/helpers/common/getParamsToGetFilterSettings.ts +11 -1
- package/src/filters/helpers/common/index.ts +2 -0
- package/src/filters/helpers/common/isInValidator.ts +1 -1
- package/src/filters/helpers/common/mergeFilters.ts +30 -17
- package/src/filters/helpers/common/resolveDatasetConditions.ts +1 -1
- package/src/filters/helpers/common/resolveFilterConditions.ts +2 -3
- package/src/filters/helpers/common/resolveScopeConditions.ts +1 -1
- package/src/filters/helpers/getAggFiltersFromFilterData.ts +20 -23
- package/src/filters/helpers/getAvailableScopesIDsByConfig.ts +1 -1
- package/src/filters/helpers/getScopesByHierarchy.ts +2 -2
- package/src/filters/helpers/ui/excludeUIFlatFiltersByScopes.ts +2 -2
- package/src/filters/helpers/ui/getUIFlatFilterByParams.ts +1 -1
- package/src/filters/helpers/ui/getUIFlatFiltersByParams.ts +1 -1
- package/src/filters/helpers/ui/getUIFlatFiltersByScopes.ts +1 -1
- package/src/filters/helpers/ui/getUIValues.ts +9 -9
- package/src/filters/helpers/ui/resolveUIFlatFiltersByParams.ts +1 -1
- package/src/filters/interfaces/OLD_IFilterDetail.ts +4 -0
- package/src/filters/interfaces/backend/IFBExpression.ts +1 -1
- package/src/filters/interfaces/common/IFSFilterExtras.ts +4 -0
- package/src/filters/interfaces/common/IFSFilterExtrasInfo.ts +5 -0
- package/src/filters/interfaces/common/IFSMergeFiltersSettings.ts +8 -0
- package/src/filters/interfaces/common/IFSParamsToGetFilter.ts +2 -1
- package/src/filters/interfaces/common/IFSParamsToGetFilterEnableds.ts +9 -0
- package/src/filters/interfaces/common/IFSParamsToGetFilterSettings.ts +5 -0
- package/src/filters/interfaces/common/index.ts +3 -0
- package/src/filters/interfaces/panel/IFPSettingsFilterPanelBodyScopeScope.ts +1 -0
- package/src/filters/interfaces/panel/IFPSettingsFilterPanelHeader.ts +1 -0
- package/src/filters/interfaces/panel/IFPSettingsFilterPanelSettings.ts +4 -0
- package/src/filters/interfaces/panel/IFPSettingsFilterPanelSettingsScope.ts +7 -0
- package/src/filters/interfaces/panel/IFilterPanelConfig.ts +0 -2
- package/src/filters/interfaces/panel/index.ts +1 -0
- package/src/filters/interfaces/ui/IFUFilterExtras.ts +1 -1
- package/src/format/definition.ts +7 -8
- package/src/format/format.ts +19 -22
- package/src/general/array/delete.ts +10 -6
- package/src/general/array/filterNestedTree.ts +1 -1
- package/src/general/array/flattenDeep.ts +3 -2
- package/src/general/array/getFirstIndexFromArray.ts +8 -6
- package/src/general/array/getLastIndexFromArray.ts +7 -5
- package/src/general/function/debounce.ts +2 -2
- package/src/general/function/throttled.ts +3 -3
- package/src/general/mix/importScripts.ts +1 -1
- package/src/general/mix/isEmpty.ts +12 -7
- package/src/general/mix/isNull.ts +2 -2
- package/src/general/mix/randomId.ts +2 -2
- package/src/general/mix/size.ts +1 -1
- package/src/general/object/cloneDeep.ts +15 -6
- package/src/general/object/get.ts +59 -31
- package/src/general/object/getAttribute.ts +1 -1
- package/src/general/object/hasProperty.ts +1 -1
- package/src/general/object/index.ts +3 -2
- package/src/general/object/isObject.ts +8 -0
- package/src/general/object/mapValues.ts +2 -2
- package/src/general/object/omit.ts +2 -2
- package/src/general/object/pick.ts +1 -1
- package/src/general/string/capitalize.ts +1 -1
- package/src/index.ts +3 -1
- package/src/qrvey/getColumnsLabel.ts +5 -5
- package/src/qrvey/index.ts +3 -0
- package/src/qrvey/isComplexColumn.ts +1 -1
- package/src/qrvey/isDateColumn.ts +1 -1
- package/src/stencil/decorators/Config.ts +2 -2
- package/src/tokens/index.ts +1 -0
- package/src/tokens/isTokenLabel.ts +13 -0
- package/src/typescript/decorators/Debounce.ts +2 -2
- package/src/typescript/decorators/Throttled.ts +2 -2
- package/test/format.test.js +97 -5
- package/test/general/array/delete.test.js +64 -0
- package/test/general/array/flattenDeep.test.js +44 -0
- package/test/general/array/getFirstIndexFromArray.test.js +56 -0
- package/test/general/array/getLastIndexFromArray.test.js +56 -0
- package/test/general/mix/isEmpty.test.js +144 -0
- package/test/general/object/cloneDeep.test.js +152 -0
- package/test/general/object/get.test.js +247 -0
- package/test/relative.test.js +24 -24
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
// FROM Logic structure = Old logic structure (v2.0)
|
|
2
2
|
// TO Logic structure = Cleaner logic structure
|
|
3
3
|
import { COLUMN } from "../../constants";
|
|
4
|
-
import { isEmpty, _get } from "../../general";
|
|
5
|
-
import {
|
|
4
|
+
import { isEmpty, _get, _hasProperty } from "../../general";
|
|
5
|
+
import { FILTER_VALIDATOR_VALUE } from "../constants";
|
|
6
|
+
import { getFilterid, getUIValues, isNullValidator, } from "../helpers";
|
|
6
7
|
/**
|
|
7
8
|
* Adapts the Old logic structure (v2.0) to the flattened UI filter Structure.
|
|
8
9
|
* @param logics The old logic structure (v2.0)
|
|
@@ -11,86 +12,100 @@ import { getFilterid, getUIValues } from "../helpers";
|
|
|
11
12
|
export function logicToFlatUI(logics = []) {
|
|
12
13
|
if (isEmpty(logics))
|
|
13
14
|
return [];
|
|
14
|
-
|
|
15
|
+
const uFilters = [];
|
|
15
16
|
logics.forEach(scopeItem => {
|
|
16
17
|
if (scopeItem.filters.length > 0) {
|
|
17
18
|
scopeItem.filters.forEach(filterItem => {
|
|
18
|
-
filterItem.expressions
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
if (index === -1 && (!uiExtras.nullValues || expression.validationType !== "IS_EMPTY" /* IS_NULL */)) {
|
|
23
|
-
const scopeid = scopeItem.scope !== "GLOBAL" /* GLOBAL */ ? _get(scopeItem, 'uiExtras.scopeid') : undefined;
|
|
24
|
-
const uFilter = {
|
|
25
|
-
collapsed: uiExtras.collapsed,
|
|
26
|
-
column: {
|
|
27
|
-
id: (_a = uiExtras.column) === null || _a === void 0 ? void 0 : _a.id,
|
|
28
|
-
formulaType: (_b = uiExtras.column) === null || _b === void 0 ? void 0 : _b.formulaType,
|
|
29
|
-
linkid: (_c = uiExtras.column) === null || _c === void 0 ? void 0 : _c.linkid,
|
|
30
|
-
linked: (_d = uiExtras.column) === null || _d === void 0 ? void 0 : _d.linked,
|
|
31
|
-
qrveyid: (_e = uiExtras.column) === null || _e === void 0 ? void 0 : _e.qrveyid,
|
|
32
|
-
aggregate: (_g = (_f = uiExtras.column) === null || _f === void 0 ? void 0 : _f.aggregate) === null || _g === void 0 ? void 0 : _g.label,
|
|
33
|
-
calculation: (_j = (_h = uiExtras.column) === null || _h === void 0 ? void 0 : _h.calculation) === null || _j === void 0 ? void 0 : _j.value,
|
|
34
|
-
label: (_k = uiExtras.column) === null || _k === void 0 ? void 0 : _k.text,
|
|
35
|
-
property: uiExtras.column.property,
|
|
36
|
-
sorting: uiExtras.column.sorting,
|
|
37
|
-
outputFormat: (_l = uiExtras.column) === null || _l === void 0 ? void 0 : _l.outputFormat,
|
|
38
|
-
type: (_m = uiExtras.column) === null || _m === void 0 ? void 0 : _m.type,
|
|
39
|
-
},
|
|
40
|
-
dateSection: uiExtras.dateSection,
|
|
41
|
-
displayed: true,
|
|
42
|
-
enabled: expression.enabled,
|
|
43
|
-
extras: {
|
|
44
|
-
panelid: uiExtras.panelid,
|
|
45
|
-
filterLabel: uiExtras.panelName,
|
|
46
|
-
scopeid,
|
|
47
|
-
scope: scopeItem.scope,
|
|
48
|
-
section: uiExtras.section,
|
|
49
|
-
scopeInfo: {
|
|
50
|
-
collapsed: false,
|
|
51
|
-
enabled: scopeItem.enabled,
|
|
52
|
-
displayed: true,
|
|
53
|
-
scope: scopeItem.scope,
|
|
54
|
-
scopeid,
|
|
55
|
-
},
|
|
56
|
-
dataset: {
|
|
57
|
-
collapsed: false,
|
|
58
|
-
enabled: true,
|
|
59
|
-
displayed: true,
|
|
60
|
-
qrveyid: (_o = uiExtras.column) === null || _o === void 0 ? void 0 : _o.qrveyid,
|
|
61
|
-
label: (_q = (_p = uiExtras.column) === null || _p === void 0 ? void 0 : _p.dataset) === null || _q === void 0 ? void 0 : _q.name,
|
|
62
|
-
linkid: (_r = uiExtras.column) === null || _r === void 0 ? void 0 : _r.linkid,
|
|
63
|
-
},
|
|
64
|
-
},
|
|
65
|
-
filterid: undefined,
|
|
66
|
-
lookupDisplayIndex: uiExtras.lookupDisplayIndex,
|
|
67
|
-
nullValues: uiExtras.nullValues,
|
|
68
|
-
operator: uiExtras.operator,
|
|
69
|
-
property: uiExtras.property,
|
|
70
|
-
uiValues: getUIValues(uiExtras),
|
|
71
|
-
validator: uiExtras.validator,
|
|
72
|
-
values: uiExtras.column.type !== COLUMN.RANKING || !isEmpty(uiExtras.column.aggregate)
|
|
73
|
-
? (uiExtras.values || []).map((v, i) => (Object.assign(Object.assign({}, v), { enabled: uiExtras.uiValue[i].enabled != null ? uiExtras.uiValue[i].enabled : true }))) : [],
|
|
74
|
-
};
|
|
75
|
-
uFilter.filterid = getFilterid(uFilter);
|
|
76
|
-
uFilters.push(uFilter);
|
|
77
|
-
}
|
|
78
|
-
if (uiExtras.column.type === COLUMN.RANKING && isEmpty(uiExtras.column.aggregate)) {
|
|
79
|
-
// Restore uiExtras.values array into single IFilterDetail object values array
|
|
80
|
-
if (index > -1)
|
|
81
|
-
uFilters[index].values.push(uiExtras.values[0]);
|
|
82
|
-
const refinedRankingValues = refineRankingValues((index > -1 ? uFilters[index].values : uiExtras.values), uiExtras.uiValue);
|
|
83
|
-
if (index > -1)
|
|
84
|
-
uFilters[index].values = refinedRankingValues;
|
|
85
|
-
else
|
|
86
|
-
uFilters[uFilters.length - 1].values = refinedRankingValues;
|
|
87
|
-
}
|
|
19
|
+
filterItem.expressions.forEach((expression1) => {
|
|
20
|
+
_hasProperty(expression1, 'expressions') ? expression1.expressions.forEach((expression2) => {
|
|
21
|
+
buildFilterByExpression(expression2, scopeItem, uFilters);
|
|
22
|
+
}) : buildFilterByExpression(expression1, scopeItem, uFilters);
|
|
88
23
|
});
|
|
24
|
+
// (filterItem.expressions[0].expressions as OLD_IFilterExpression[]).forEach((expression: OLD_IFilterExpression) => {
|
|
25
|
+
// buildFilterByExpression(expression, scopeItem, uFilters);
|
|
26
|
+
// });
|
|
89
27
|
});
|
|
90
28
|
}
|
|
91
29
|
});
|
|
92
30
|
return uFilters;
|
|
93
31
|
}
|
|
32
|
+
function buildFilterByExpression(expression, scopeItem, uFilters) {
|
|
33
|
+
const uiExtras = expression.uiExtras;
|
|
34
|
+
const index = uiExtras.column.type === COLUMN.RANKING ? getFilter(uFilters, expression.uiExtras, true) : -1;
|
|
35
|
+
if (index === -1 && (!uiExtras.nullValues || expression.validationType !== "IS_EMPTY" /* IS_NULL */)) {
|
|
36
|
+
const uFilter = getFilterByExpression(expression, scopeItem);
|
|
37
|
+
uFilter.filterid = getFilterid(uFilter);
|
|
38
|
+
uFilters.push(uFilter);
|
|
39
|
+
}
|
|
40
|
+
if (uiExtras.column.type === COLUMN.RANKING && isEmpty(uiExtras.column.aggregate)) {
|
|
41
|
+
// Restore uiExtras.values array into single IFilterDetail object values array
|
|
42
|
+
if (index > -1)
|
|
43
|
+
uFilters[index].values.push(uiExtras.values[0]);
|
|
44
|
+
const refinedRankingValues = refineRankingValues((index > -1 ? uFilters[index].values : uiExtras.values), uiExtras.uiValue);
|
|
45
|
+
if (index > -1)
|
|
46
|
+
uFilters[index].values = refinedRankingValues;
|
|
47
|
+
else
|
|
48
|
+
uFilters[uFilters.length - 1].values = refinedRankingValues;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
function getFilterByExpression(expression, scopeItem) {
|
|
52
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s;
|
|
53
|
+
const uiExtras = expression.uiExtras;
|
|
54
|
+
const scopeid = scopeItem.scope !== "GLOBAL" /* GLOBAL */ ? _get(scopeItem, 'uiExtras.scopeid') : undefined;
|
|
55
|
+
const info = !isEmpty(uiExtras.info) ? { icon: uiExtras.info.icon, label: uiExtras.info.label } : undefined;
|
|
56
|
+
return {
|
|
57
|
+
collapsed: uiExtras.collapsed,
|
|
58
|
+
column: {
|
|
59
|
+
id: (_a = uiExtras.column) === null || _a === void 0 ? void 0 : _a.id,
|
|
60
|
+
formulaType: (_b = uiExtras.column) === null || _b === void 0 ? void 0 : _b.formulaType,
|
|
61
|
+
linkid: (_c = uiExtras.column) === null || _c === void 0 ? void 0 : _c.linkid,
|
|
62
|
+
linked: (_d = uiExtras.column) === null || _d === void 0 ? void 0 : _d.linked,
|
|
63
|
+
qrveyid: (_e = uiExtras.column) === null || _e === void 0 ? void 0 : _e.qrveyid,
|
|
64
|
+
aggregate: (_g = (_f = uiExtras.column) === null || _f === void 0 ? void 0 : _f.aggregate) === null || _g === void 0 ? void 0 : _g.label,
|
|
65
|
+
calculation: (_j = (_h = uiExtras.column) === null || _h === void 0 ? void 0 : _h.calculation) === null || _j === void 0 ? void 0 : _j.value,
|
|
66
|
+
label: (_k = uiExtras.column) === null || _k === void 0 ? void 0 : _k.text,
|
|
67
|
+
property: uiExtras.column.property,
|
|
68
|
+
sorting: uiExtras.column.sorting,
|
|
69
|
+
outputFormat: (_l = uiExtras.column) === null || _l === void 0 ? void 0 : _l.outputFormat,
|
|
70
|
+
type: (_m = uiExtras.column) === null || _m === void 0 ? void 0 : _m.type,
|
|
71
|
+
},
|
|
72
|
+
dateSection: uiExtras.dateSection,
|
|
73
|
+
displayed: true,
|
|
74
|
+
enabled: expression.enabled,
|
|
75
|
+
extras: Object.assign(Object.assign({}, uiExtras.extras), { panelid: uiExtras.panelid, filterLabel: uiExtras.panelName, info,
|
|
76
|
+
scopeid, scope: scopeItem.scope, section: uiExtras.section, scopeInfo: {
|
|
77
|
+
collapsed: (_o = scopeItem.uiExtras) === null || _o === void 0 ? void 0 : _o.collapsed,
|
|
78
|
+
enabled: scopeItem.enabled,
|
|
79
|
+
displayed: true,
|
|
80
|
+
scope: scopeItem.scope,
|
|
81
|
+
scopeid,
|
|
82
|
+
}, dataset: {
|
|
83
|
+
collapsed: false,
|
|
84
|
+
enabled: true,
|
|
85
|
+
displayed: true,
|
|
86
|
+
qrveyid: (_p = uiExtras.column) === null || _p === void 0 ? void 0 : _p.qrveyid,
|
|
87
|
+
label: (_r = (_q = uiExtras.column) === null || _q === void 0 ? void 0 : _q.dataset) === null || _r === void 0 ? void 0 : _r.name,
|
|
88
|
+
linkid: (_s = uiExtras.column) === null || _s === void 0 ? void 0 : _s.linkid,
|
|
89
|
+
} }),
|
|
90
|
+
filterid: undefined,
|
|
91
|
+
lookupDisplayIndex: uiExtras.lookupDisplayIndex,
|
|
92
|
+
nullValues: uiExtras.nullValues,
|
|
93
|
+
operator: uiExtras.operator,
|
|
94
|
+
property: uiExtras.property,
|
|
95
|
+
uiValues: getUIValues(uiExtras),
|
|
96
|
+
validator: uiExtras.validator,
|
|
97
|
+
values: getValues(uiExtras),
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
function getValues(uiExtras) {
|
|
101
|
+
if (isNullValidator(uiExtras.validator) && isEmpty(uiExtras.values)) {
|
|
102
|
+
return [{ value: FILTER_VALIDATOR_VALUE[uiExtras.validator].label, enabled: uiExtras.uiValue[0].enabled != null ? uiExtras.uiValue[0].enabled : true }];
|
|
103
|
+
}
|
|
104
|
+
if (uiExtras.column.type !== COLUMN.RANKING || !isEmpty(uiExtras.column.aggregate)) {
|
|
105
|
+
return uiExtras.values;
|
|
106
|
+
}
|
|
107
|
+
return [];
|
|
108
|
+
}
|
|
94
109
|
/**
|
|
95
110
|
* Get the filter or the index of the given array, validating an old filter structure.
|
|
96
111
|
* @param filters The array of UI filters
|
|
@@ -99,7 +114,7 @@ export function logicToFlatUI(logics = []) {
|
|
|
99
114
|
* @returns the index or the UI filter object
|
|
100
115
|
*/
|
|
101
116
|
function getFilter(filters, filter, getIndex = false) {
|
|
102
|
-
const validator = (f) =>
|
|
117
|
+
const validator = (f) => f.validator === filter.validator &&
|
|
103
118
|
f.column.id === filter.column.id &&
|
|
104
119
|
f.column.qrveyid === filter.column.qrveyid &&
|
|
105
120
|
f.column.linkid === filter.column.linkid &&
|
|
@@ -107,7 +122,7 @@ function getFilter(filters, filter, getIndex = false) {
|
|
|
107
122
|
f.extras.scope === filter.scope &&
|
|
108
123
|
f.extras.scopeid === filter.scopeid &&
|
|
109
124
|
f.property === filter.property &&
|
|
110
|
-
f.extras.panelid === filter.panelid
|
|
125
|
+
f.extras.panelid === filter.panelid;
|
|
111
126
|
return getIndex ? filters.findIndex(validator) : filters.find(validator);
|
|
112
127
|
}
|
|
113
128
|
/**
|
|
@@ -116,7 +131,7 @@ function getFilter(filters, filter, getIndex = false) {
|
|
|
116
131
|
* @param uiValues Object with additional info about the values of the filter.
|
|
117
132
|
* @returns the array of Ranking values
|
|
118
133
|
*/
|
|
119
|
-
function refineRankingValues(values = [], uiValues) {
|
|
134
|
+
function refineRankingValues(values = [], uiValues = []) {
|
|
120
135
|
return values.map(valueGroup => {
|
|
121
136
|
return [
|
|
122
137
|
...valueGroup.map(value => {
|
|
@@ -53,7 +53,7 @@
|
|
|
53
53
|
*
|
|
54
54
|
* const filterData = transformFilters(oldPreferenceFilters, 'ANALYZE');
|
|
55
55
|
*/
|
|
56
|
-
export declare function transformFilters(oldFiltersObj?:
|
|
56
|
+
export declare function transformFilters(oldFiltersObj?: {}, section?: string): {
|
|
57
57
|
enabled: boolean;
|
|
58
58
|
logic: any[];
|
|
59
59
|
section: string;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { capitalize } from '../../general/index';
|
|
2
|
-
import {
|
|
1
|
+
import { capitalize, _get } from '../../general/index';
|
|
2
|
+
import { isTokenLabel } from '../../tokens/isTokenLabel';
|
|
3
3
|
/**
|
|
4
4
|
* Transform the old filters structure into the new one
|
|
5
5
|
*
|
|
@@ -214,14 +214,14 @@ function getValidator(oldValidation) {
|
|
|
214
214
|
function getProperty(filterObjItem, validationKey) {
|
|
215
215
|
if (filterObjItem.type === 'IMAGE')
|
|
216
216
|
return 'answer_id';
|
|
217
|
-
const value =
|
|
217
|
+
const value = _get(filterObjItem, `values[0]['${validationKey}'][0]`, {});
|
|
218
218
|
const property = filterObjItem.property || value.property || value.targetFilter;
|
|
219
219
|
return property && property.toUpperCase();
|
|
220
220
|
}
|
|
221
221
|
function getDateProperty(validationKey, columnType, formulaType) {
|
|
222
222
|
if (![columnType, formulaType].includes('DATE'))
|
|
223
223
|
return;
|
|
224
|
-
return
|
|
224
|
+
return ['MONTH_YEAR', 'YEAR', 'QUARTER', 'WEEK', 'HOUR', 'MINUTE', 'SECOND'].includes(validationKey) ? validationKey.split('_')[0].toLowerCase() : 'day';
|
|
225
225
|
}
|
|
226
226
|
function getFilterRangeValue(range, minProp = 'min', maxProp = 'max', extras = {}) {
|
|
227
227
|
return Object.assign({ [minProp]: range.from || range.gte, [maxProp]: range.to || range.lte }, extras);
|
|
@@ -252,45 +252,47 @@ function getValues(values, columnType, oldValidation = 'EQUAL', destination = 'v
|
|
|
252
252
|
case 'BETWEEN':
|
|
253
253
|
case 'YEAR':
|
|
254
254
|
case 'MONTH_YEAR':
|
|
255
|
-
return
|
|
255
|
+
return destination === 'value'
|
|
256
256
|
? values.map(val => getFilterRangeValue(val.value.range || val.value, 'gte', 'lte'))
|
|
257
|
-
:
|
|
257
|
+
: destination === 'uiValue'
|
|
258
258
|
? values.map(val => getFilterRangeValue(val.value.range || val.value, 'min', 'max', { enabled: val.enabled, value: getUiRangeValue(val.value), validationLabel: oldValidation }))
|
|
259
259
|
: ['YEAR', 'MONTH_YEAR', 'QUARTER'].includes(oldValidation)
|
|
260
260
|
? values.map(item => ({ value: getUiRangeValue(item.value) }))
|
|
261
261
|
: values.map(val => getFilterRangeValue(val.value.range || val.value));
|
|
262
262
|
case 'LESS_THAN':
|
|
263
|
-
case 'GREATER_THAN':
|
|
263
|
+
case 'GREATER_THAN': {
|
|
264
264
|
const prop = oldValidation === 'LESS_THAN' ? 'lte' : 'gte';
|
|
265
|
-
return
|
|
265
|
+
return destination === 'value'
|
|
266
266
|
? values.map(val => getFilterRangeValue({ [prop]: val.value }, 'gte', 'lte'))
|
|
267
|
-
:
|
|
267
|
+
: destination === 'uiValue'
|
|
268
268
|
? values.map(val => getFilterRangeValue({ [prop]: val.value }, 'min', 'max', { enabled: val.enabled, value: val.value }))
|
|
269
269
|
: values.map(val => getFilterRangeValue({ [prop]: val.value }));
|
|
270
|
+
}
|
|
270
271
|
case 'IS_EMPTY':
|
|
271
|
-
case 'IS_NOT_EMPTY':
|
|
272
|
+
case 'IS_NOT_EMPTY': {
|
|
272
273
|
const valueClean = getValidator(oldValidation).toLowerCase().split('_').map(v => capitalize(v)).join(' ');
|
|
273
|
-
return
|
|
274
|
+
return destination === 'value'
|
|
274
275
|
? [valueClean]
|
|
275
|
-
:
|
|
276
|
+
: destination === 'uiValue'
|
|
276
277
|
? values.map(val => ({ value: valueClean, enabled: val.enabled }))
|
|
277
278
|
: [];
|
|
279
|
+
}
|
|
278
280
|
default:
|
|
279
281
|
return getFilterEqualValues(values, columnType, destination, formulaType);
|
|
280
282
|
}
|
|
281
283
|
}
|
|
282
284
|
function getFilterEqualValues(values, columnType, destination = 'value', formulaType) {
|
|
283
285
|
if (columnType === 'RANKING') {
|
|
284
|
-
return
|
|
286
|
+
return destination === 'value'
|
|
285
287
|
? values.map(item => ({ position: +item.position, value: item.value }))
|
|
286
|
-
:
|
|
288
|
+
: destination === 'uiValue'
|
|
287
289
|
? values.map(item => ({ value: getUiRangeValue({ from: item.value, to: +item.position + 1 }), enabled: true }))
|
|
288
290
|
: getRankingFBvalues(values);
|
|
289
291
|
}
|
|
290
|
-
const formattedValues =
|
|
292
|
+
const formattedValues = destination === 'value'
|
|
291
293
|
? values.map(item => {
|
|
292
294
|
let value = item.value;
|
|
293
|
-
if ([columnType, formulaType].includes('DATE') && !
|
|
295
|
+
if ([columnType, formulaType].includes('DATE') && !isTokenLabel(value)) {
|
|
294
296
|
value = getFilterRangeValue(item.value.range || item.value, 'gte', 'lte');
|
|
295
297
|
}
|
|
296
298
|
else if (columnType === 'YES_NO') {
|
|
@@ -304,7 +306,7 @@ function getFilterEqualValues(values, columnType, destination = 'value', formula
|
|
|
304
306
|
}
|
|
305
307
|
return value;
|
|
306
308
|
})
|
|
307
|
-
: values.map(item => ({ value: columnType === 'YES_NO' ? item.value.toLowerCase() :
|
|
309
|
+
: values.map(item => ({ value: columnType === 'YES_NO' ? item.value.toLowerCase() : [columnType, formulaType].includes('DATE') ? item.value.label || item.value : String(item.value), valueid: columnType === 'EXPRESSION' ? undefined : item.id || item.answerid, enabled: item.enabled || true }));
|
|
308
310
|
return formattedValues;
|
|
309
311
|
}
|
|
310
312
|
function getFormulaType(oldFiltersItem) {
|
|
@@ -362,12 +364,3 @@ function getExpressions(oldFiltersItem, validations, scopeLabel, scopeid, sectio
|
|
|
362
364
|
});
|
|
363
365
|
return expressions;
|
|
364
366
|
}
|
|
365
|
-
/**
|
|
366
|
-
* Get a text and evaluate if it matchs with a token box label.
|
|
367
|
-
* @param label string to evaluate
|
|
368
|
-
* @return True is label matchs; otherwise false
|
|
369
|
-
*/
|
|
370
|
-
function isTokenBoxLabel(label) {
|
|
371
|
-
const regex = new RegExp('^(\{\{)([^{}]+)(\}\})$', 'gi');
|
|
372
|
-
return regex.test(label);
|
|
373
|
-
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const FILTER_GROUPED_COLUMN_OPERATOR = "OR" /* OR */;
|
|
@@ -1,2 +1,8 @@
|
|
|
1
1
|
import { IFBExpression, IFSFilter } from "../../interfaces";
|
|
2
|
+
/**
|
|
3
|
+
* Builds filter expression by the filter data.
|
|
4
|
+
* - If the resulting value array is empty the enabled property will be false.
|
|
5
|
+
* @param filter The filter to transform
|
|
6
|
+
* @returns a filter expression
|
|
7
|
+
*/
|
|
2
8
|
export declare function buildExpression(filter: IFSFilter): IFBExpression;
|
|
@@ -2,9 +2,14 @@ import { getBackendGroupValue } from "./getBackendGroupValue";
|
|
|
2
2
|
import { getBackendProperty } from "./getBackendProperty";
|
|
3
3
|
import { getBackendValidator } from "./getBackendValidator";
|
|
4
4
|
import { getBackendValues } from "./getBackendValues";
|
|
5
|
+
/**
|
|
6
|
+
* Builds filter expression by the filter data.
|
|
7
|
+
* - If the resulting value array is empty the enabled property will be false.
|
|
8
|
+
* @param filter The filter to transform
|
|
9
|
+
* @returns a filter expression
|
|
10
|
+
*/
|
|
5
11
|
export function buildExpression(filter) {
|
|
6
|
-
|
|
7
|
-
enabled: filter.enabled,
|
|
12
|
+
const expression = {
|
|
8
13
|
groupValue: getBackendGroupValue(filter),
|
|
9
14
|
questionid: filter.column.id,
|
|
10
15
|
questionType: filter.column.type,
|
|
@@ -12,4 +17,6 @@ export function buildExpression(filter) {
|
|
|
12
17
|
validationType: getBackendValidator(filter.validator),
|
|
13
18
|
value: getBackendValues(filter),
|
|
14
19
|
};
|
|
20
|
+
expression['enabled'] = expression.value.length > 0 ? filter.enabled : false;
|
|
21
|
+
return expression;
|
|
15
22
|
}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { isEmpty } from "../../../general";
|
|
2
2
|
import { isDateColumn } from "../../../qrvey/isDateColumn";
|
|
3
|
+
import { arePropertiesDateP } from "../common";
|
|
3
4
|
/**
|
|
4
5
|
* Gets a group value for the backend logic structure
|
|
5
6
|
* @param filter The filter
|
|
6
7
|
* @returns a property
|
|
7
8
|
*/
|
|
8
9
|
export function getBackendGroupValue(filter) {
|
|
9
|
-
if (isEmpty(filter.column.aggregate) && isDateColumn(filter.column) && filter.property != null) {
|
|
10
|
+
if (!arePropertiesDateP(filter.column, filter.property) && isEmpty(filter.column.aggregate) && isDateColumn(filter.column) && filter.property != null) {
|
|
10
11
|
return filter.property;
|
|
11
12
|
}
|
|
12
13
|
}
|
|
@@ -1,17 +1,22 @@
|
|
|
1
1
|
import { COLUMN } from "../../../constants";
|
|
2
2
|
import { isEmpty } from "../../../general";
|
|
3
3
|
import { isDateColumn } from "../../../qrvey/isDateColumn";
|
|
4
|
-
import { isNullValidator } from "../common";
|
|
4
|
+
import { arePropertiesDateP, isNullValidator } from "../common";
|
|
5
5
|
/**
|
|
6
6
|
* Gets a property for the logic structure
|
|
7
7
|
* @param filter The filter
|
|
8
8
|
* @returns a property
|
|
9
9
|
*/
|
|
10
10
|
export function getBackendProperty(filter) {
|
|
11
|
+
var _a;
|
|
11
12
|
if (isEmpty(filter.column.aggregate)) {
|
|
12
|
-
if (
|
|
13
|
+
if (isNullValidator(filter.validator)) {
|
|
13
14
|
return undefined;
|
|
14
|
-
|
|
15
|
+
}
|
|
16
|
+
else if (isDateColumn(filter.column)) {
|
|
17
|
+
return arePropertiesDateP(filter.column, filter.property) ? (_a = filter.property) === null || _a === void 0 ? void 0 : _a.split('p&')[1] : undefined;
|
|
18
|
+
}
|
|
19
|
+
else if (filter.column.type === COLUMN.EXPRESSION && filter.property != null) {
|
|
15
20
|
return undefined;
|
|
16
21
|
}
|
|
17
22
|
else if (filter.column.type === COLUMN.LOOKUP && filter.property === "display" /* LOOKUP_DISPLAY */ && filter.lookupDisplayIndex != null) {
|
|
@@ -19,28 +19,42 @@ export function getBackendValues(filter) {
|
|
|
19
19
|
case "NOT_START_WITH" /* NOT_START_WITH */:
|
|
20
20
|
case "ENDS_WITH" /* ENDS_WITH */:
|
|
21
21
|
case "NOT_END_WITH" /* NOT_END_WITH */:
|
|
22
|
-
return filter.values.map(value => value.value);
|
|
22
|
+
return filter.values.map(value => value.enabled ? value.value : undefined);
|
|
23
23
|
case "BETWEEN_INCLUSIVE" /* BETWEEN_INCLUSIVE */:
|
|
24
|
-
return filter.values.map(value =>
|
|
24
|
+
return filter.values.map(value => value.enabled ?
|
|
25
|
+
{ lte: value.max, gte: value.min }
|
|
26
|
+
: undefined).filter(Boolean);
|
|
25
27
|
case "BETWEEN_EXCLUSIVE" /* BETWEEN_EXCLUSIVE */:
|
|
26
|
-
return filter.values.map(value =>
|
|
28
|
+
return filter.values.map(value => value.enabled ?
|
|
29
|
+
{ lt: value.max, gt: value.min }
|
|
30
|
+
: undefined).filter(Boolean);
|
|
27
31
|
case "BEFORE" /* BEFORE */:
|
|
28
32
|
case "LESS_THAN" /* LESS_THAN */:
|
|
29
|
-
return filter.values.map(value =>
|
|
33
|
+
return filter.values.map(value => value.enabled ?
|
|
34
|
+
{ lt: value.max }
|
|
35
|
+
: undefined).filter(Boolean);
|
|
30
36
|
case "BEFORE_ON" /* BEFORE_ON */:
|
|
31
37
|
case "LESS_THAN_EQUAL" /* LESS_THAN_EQUAL */:
|
|
32
|
-
return filter.values.map(value =>
|
|
38
|
+
return filter.values.map(value => value.enabled ?
|
|
39
|
+
{ lte: value.max }
|
|
40
|
+
: undefined).filter(Boolean);
|
|
33
41
|
case "AFTER" /* AFTER */:
|
|
34
42
|
case "GREATER_THAN" /* GREATER_THAN */:
|
|
35
|
-
return filter.values.map(value =>
|
|
43
|
+
return filter.values.map(value => value.enabled ?
|
|
44
|
+
{ gt: value.min }
|
|
45
|
+
: undefined).filter(Boolean);
|
|
36
46
|
case "AFTER_ON" /* AFTER_ON */:
|
|
37
47
|
case "GREATER_THAN_EQUAL" /* GREATER_THAN_EQUAL */:
|
|
38
|
-
return filter.values.map(value =>
|
|
48
|
+
return filter.values.map(value => value.enabled ?
|
|
49
|
+
{ gte: value.min }
|
|
50
|
+
: undefined).filter(Boolean);
|
|
39
51
|
case "IS_NULL" /* IS_NULL */:
|
|
40
|
-
case "IS_NOT_NULL" /* IS_NOT_NULL */:
|
|
41
|
-
|
|
52
|
+
case "IS_NOT_NULL" /* IS_NOT_NULL */: {
|
|
53
|
+
const addValue = filter.values.length > 0 && filter.values.every(value => value.enabled);
|
|
54
|
+
return addValue ? [FILTER_VALIDATOR_VALUE[filter.validator].label] : [];
|
|
55
|
+
}
|
|
42
56
|
case "IN" /* IN */:
|
|
43
|
-
return filter.values;
|
|
57
|
+
return filter.values.map(value => value.enabled ? value : undefined).filter(Boolean);
|
|
44
58
|
default:
|
|
45
59
|
return [];
|
|
46
60
|
}
|
|
@@ -53,13 +67,15 @@ export function getBackendValues(filter) {
|
|
|
53
67
|
*/
|
|
54
68
|
function getResultValues(values, filter) {
|
|
55
69
|
return values.map((value) => {
|
|
56
|
-
if (
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
70
|
+
if (value.enabled) {
|
|
71
|
+
if (filter.column.type === COLUMN.IMAGE) {
|
|
72
|
+
return value.valueid;
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
return value.value;
|
|
76
|
+
}
|
|
61
77
|
}
|
|
62
|
-
}).filter(
|
|
78
|
+
}).filter(Boolean);
|
|
63
79
|
}
|
|
64
80
|
/**
|
|
65
81
|
* Gets the Ranking values.
|
|
@@ -69,8 +85,8 @@ function getResultValues(values, filter) {
|
|
|
69
85
|
*/
|
|
70
86
|
function getRankingValues(values, rankingGroupIndex) {
|
|
71
87
|
const flattenValues = rankingGroupIndex == null ? flattenDeep(values) : values[rankingGroupIndex];
|
|
72
|
-
return flattenValues.map(rankingValue =>
|
|
88
|
+
return flattenValues.map(rankingValue => rankingValue.enabled ? {
|
|
73
89
|
position: rankingValue.position - 1,
|
|
74
90
|
value: rankingValue.value.value
|
|
75
|
-
}));
|
|
91
|
+
} : undefined).filter(Boolean);
|
|
76
92
|
}
|