@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,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Inmutable Array Item deletion
|
|
3
|
-
* @param {Array} array
|
|
4
|
-
* @param {Number} index position of item to delete
|
|
5
|
-
* @
|
|
3
|
+
* @param {Array} array a collection of items to delete
|
|
4
|
+
* @param {Number} index the position of the item to delete
|
|
5
|
+
* @returns a new Array or the given parameter when is empty or not an array
|
|
6
6
|
*/
|
|
7
|
-
export declare function ArrayDelete
|
|
7
|
+
export declare function ArrayDelete<T = Array<any>>(arr: T[], index: number): T[];
|
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ArrayDelete = void 0;
|
|
4
|
+
const mix_1 = require("../mix");
|
|
4
5
|
/**
|
|
5
6
|
* Inmutable Array Item deletion
|
|
6
|
-
* @param {Array} array
|
|
7
|
-
* @param {Number} index position of item to delete
|
|
8
|
-
* @
|
|
7
|
+
* @param {Array} array a collection of items to delete
|
|
8
|
+
* @param {Number} index the position of the item to delete
|
|
9
|
+
* @returns a new Array or the given parameter when is empty or not an array
|
|
9
10
|
*/
|
|
10
|
-
function ArrayDelete(
|
|
11
|
-
|
|
11
|
+
function ArrayDelete(arr, index) {
|
|
12
|
+
if (mix_1.isEmpty(index) || mix_1.isEmpty(arr) || !Array.isArray(arr))
|
|
13
|
+
return arr;
|
|
14
|
+
return arr.slice(0, index).concat(arr.slice(index + 1));
|
|
12
15
|
}
|
|
13
16
|
exports.ArrayDelete = ArrayDelete;
|
|
14
|
-
;
|
|
@@ -10,7 +10,7 @@ const cloneDeep_1 = require("../object/cloneDeep");
|
|
|
10
10
|
* @param condition function callback that determines if the filter is applied on the last child node of the nested tree
|
|
11
11
|
* @returns array filtered
|
|
12
12
|
*/
|
|
13
|
-
function filterNestedTree(arr
|
|
13
|
+
function filterNestedTree(arr, childArrKey, condition) {
|
|
14
14
|
if (mix_1.isEmpty(arr))
|
|
15
15
|
return [];
|
|
16
16
|
return cloneDeep_1.cloneDeep(arr).filter(obj => {
|
|
@@ -6,7 +6,9 @@ exports.flattenDeep = void 0;
|
|
|
6
6
|
* @param arr Array to flat deeply
|
|
7
7
|
* @returns flatten array
|
|
8
8
|
*/
|
|
9
|
-
function flattenDeep(arr) {
|
|
10
|
-
|
|
9
|
+
function flattenDeep(arr = []) {
|
|
10
|
+
if (Array.isArray(arr))
|
|
11
|
+
return arr.reduce((acc, val) => Array.isArray(val) ? acc.concat(flattenDeep(val)) : acc.concat(val), []);
|
|
12
|
+
return undefined;
|
|
11
13
|
}
|
|
12
14
|
exports.flattenDeep = flattenDeep;
|
|
@@ -4,4 +4,4 @@
|
|
|
4
4
|
* @param callback function callback
|
|
5
5
|
* @returns the first index of the array. -1 when the condition is not satisfied
|
|
6
6
|
*/
|
|
7
|
-
export declare function getFirstIndexFromArray(array
|
|
7
|
+
export declare function getFirstIndexFromArray(array?: any[], callback?: (item: any) => boolean): number;
|
|
@@ -9,11 +9,13 @@ exports.getFirstIndexFromArray = void 0;
|
|
|
9
9
|
*/
|
|
10
10
|
function getFirstIndexFromArray(array = [], callback) {
|
|
11
11
|
let firstArrayIndex = -1;
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
12
|
+
if (Array.isArray(array) && callback instanceof Function) {
|
|
13
|
+
for (let i = 0; i < array.length; i++) {
|
|
14
|
+
const condition = callback(array[i]);
|
|
15
|
+
if (condition) {
|
|
16
|
+
firstArrayIndex = i;
|
|
17
|
+
break;
|
|
18
|
+
}
|
|
17
19
|
}
|
|
18
20
|
}
|
|
19
21
|
return firstArrayIndex;
|
|
@@ -4,4 +4,4 @@
|
|
|
4
4
|
* @param callback function callback
|
|
5
5
|
* @returns the last index of the array. -1 when the condition is not satisfied
|
|
6
6
|
*/
|
|
7
|
-
export declare function getLastIndexFromArray(array
|
|
7
|
+
export declare function getLastIndexFromArray(array?: any[], callback?: (item: any) => boolean): number;
|
|
@@ -9,10 +9,12 @@ exports.getLastIndexFromArray = void 0;
|
|
|
9
9
|
*/
|
|
10
10
|
function getLastIndexFromArray(array = [], callback) {
|
|
11
11
|
let lastArrayIndex = -1;
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
12
|
+
if (Array.isArray(array) && callback instanceof Function) {
|
|
13
|
+
for (let i = 0; i < array.length; i++) {
|
|
14
|
+
const condition = callback(array[i]);
|
|
15
|
+
if (condition) {
|
|
16
|
+
lastArrayIndex = i;
|
|
17
|
+
}
|
|
16
18
|
}
|
|
17
19
|
}
|
|
18
20
|
return lastArrayIndex;
|
|
@@ -44,7 +44,7 @@ export declare function importScripts(scripts: TScriptItem[]): any;
|
|
|
44
44
|
export declare function loadScript(url: string, type?: TScriptType, noModule?: boolean): Promise<void>;
|
|
45
45
|
export interface IScriptItem {
|
|
46
46
|
url: string;
|
|
47
|
-
namespace?: string |
|
|
47
|
+
namespace?: string | any;
|
|
48
48
|
dependencies?: IScriptItem[];
|
|
49
49
|
noModule?: boolean;
|
|
50
50
|
type?: string;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
* @param
|
|
4
|
-
* @
|
|
2
|
+
* Validates if the given argument is empty
|
|
3
|
+
* @param variable the given variable
|
|
4
|
+
* @param includeFalsy flag to determine include the falsy variables into the validation
|
|
5
|
+
* @returns true: the given argument is empty; false: is not.
|
|
5
6
|
*/
|
|
6
|
-
export declare function isEmpty(
|
|
7
|
+
export declare function isEmpty<T = any>(variable: T, includeFalsy?: boolean): boolean;
|
|
@@ -1,13 +1,19 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.isEmpty = void 0;
|
|
4
|
-
const size_1 = require("./size");
|
|
5
4
|
/**
|
|
6
|
-
*
|
|
7
|
-
* @param
|
|
8
|
-
* @
|
|
5
|
+
* Validates if the given argument is empty
|
|
6
|
+
* @param variable the given variable
|
|
7
|
+
* @param includeFalsy flag to determine include the falsy variables into the validation
|
|
8
|
+
* @returns true: the given argument is empty; false: is not.
|
|
9
9
|
*/
|
|
10
|
-
function isEmpty(
|
|
11
|
-
return
|
|
10
|
+
function isEmpty(variable, includeFalsy = false) {
|
|
11
|
+
return typeof variable == 'undefined'
|
|
12
|
+
|| variable == null
|
|
13
|
+
|| (typeof variable == 'number' && includeFalsy && (Number(variable) === 0 || Object.is(variable, -0) || isNaN(variable)))
|
|
14
|
+
|| (typeof variable == 'string' && variable === "")
|
|
15
|
+
|| (typeof variable == 'boolean' && includeFalsy && variable === false)
|
|
16
|
+
|| (Array.isArray(variable) && variable.length === 0)
|
|
17
|
+
|| (variable.constructor === Object && Object.entries(variable).length === 0);
|
|
12
18
|
}
|
|
13
19
|
exports.isEmpty = isEmpty;
|
|
@@ -6,7 +6,7 @@ exports.randomId = void 0;
|
|
|
6
6
|
* @param {Number} length size of the generated string. Default 8
|
|
7
7
|
* @return {String}
|
|
8
8
|
*/
|
|
9
|
-
function randomId(
|
|
9
|
+
function randomId(_length = 8) {
|
|
10
10
|
const charSet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_';
|
|
11
11
|
let id = '';
|
|
12
12
|
for (let i = 0; i < 8; i++) {
|
|
@@ -16,4 +16,3 @@ function randomId(length = 8) {
|
|
|
16
16
|
return id;
|
|
17
17
|
}
|
|
18
18
|
exports.randomId = randomId;
|
|
19
|
-
;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* A
|
|
3
|
-
*
|
|
2
|
+
* A simple Deep Cloning function. Valid only for primivite values and object with primitive values.
|
|
3
|
+
* Not to use this function with inner objects and functions
|
|
4
4
|
* @param obj The object
|
|
5
|
-
* @returns The new reference object
|
|
5
|
+
* @returns The new reference object or the given object if the parsing is incorrect or empty
|
|
6
6
|
*/
|
|
7
|
-
export declare
|
|
7
|
+
export declare function cloneDeep<T = any>(obj: T): T;
|
|
@@ -1,13 +1,21 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.cloneDeep = void 0;
|
|
4
|
+
const mix_1 = require("../mix");
|
|
4
5
|
/**
|
|
5
|
-
* A
|
|
6
|
-
*
|
|
6
|
+
* A simple Deep Cloning function. Valid only for primivite values and object with primitive values.
|
|
7
|
+
* Not to use this function with inner objects and functions
|
|
7
8
|
* @param obj The object
|
|
8
|
-
* @returns The new reference object
|
|
9
|
+
* @returns The new reference object or the given object if the parsing is incorrect or empty
|
|
9
10
|
*/
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
function cloneDeep(obj) {
|
|
12
|
+
if (mix_1.isEmpty(obj))
|
|
13
|
+
return obj;
|
|
14
|
+
const stringObject = JSON.stringify(obj);
|
|
15
|
+
if (!mix_1.isEmpty(stringObject)) {
|
|
16
|
+
const parsedObject = JSON.parse(stringObject);
|
|
17
|
+
return !mix_1.isEmpty(parsedObject) ? parsedObject : obj;
|
|
18
|
+
}
|
|
19
|
+
return obj;
|
|
20
|
+
}
|
|
13
21
|
exports.cloneDeep = cloneDeep;
|
|
@@ -1,17 +1,49 @@
|
|
|
1
1
|
/**
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
2
|
+
* Like lodash _.get.
|
|
3
|
+
* Gets the value at path of object. If the resolved value is undefined, the defaultValue is returned in its place.
|
|
4
|
+
*
|
|
5
|
+
* Empty arrays and empty objects are returned but the defaultValue is not
|
|
6
|
+
* Undefined and null values will return the defaultValue.
|
|
7
|
+
*
|
|
8
|
+
* @param baseObject The object to query
|
|
9
|
+
* @param path The string path or collection of string paths of the property to get.
|
|
10
|
+
* @param defaultValue The value returned for undefined resolved values.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* // returns 'Hello'
|
|
14
|
+
* _get({ item1: 'Hello', item2: 'World' }, 'item1')
|
|
15
|
+
* @example
|
|
16
|
+
* // returns 'A simple Hello'
|
|
17
|
+
* _get({ item1: 'Hello', item2: 'World' }, 'item3', 'A simple Hello')
|
|
18
|
+
* @example
|
|
19
|
+
* // returns 'Hello Again'
|
|
20
|
+
* _get({ item1: { item11: 'Hello Again' }, item2: {} }, 'item1.item11')
|
|
21
|
+
* @example
|
|
22
|
+
* // returns 'Hello 2'
|
|
23
|
+
* _get({ item1: ['Hello 1', 'Hello 2' }, item2: [] }, 'item1[1]')
|
|
24
|
+
* @example
|
|
25
|
+
* // returns 'Hello Again'
|
|
26
|
+
* _get({ item1: { item11: 'Hello Again' }, item2: {} }, ['item1', 'item11'])
|
|
27
|
+
* @returns the resolved value.
|
|
28
|
+
*/
|
|
29
|
+
export declare function _get(baseObject: any, path: string | string[], defaultValue?: any): any;
|
|
14
30
|
/**
|
|
15
|
-
*
|
|
16
|
-
|
|
17
|
-
|
|
31
|
+
*
|
|
32
|
+
* /**
|
|
33
|
+
* Like lodash _.get.
|
|
34
|
+
* Gets the value at path of object. If the resolved value is undefined, the defaultValue is returned in its place.
|
|
35
|
+
* @param baseObject The object to query
|
|
36
|
+
* @param path The path of the property to get.
|
|
37
|
+
* @param defaultValue The value returned for undefined resolved values.
|
|
38
|
+
* @returns the resolved value.
|
|
39
|
+
export function get(baseObject: any, path: string, defaultValue?: any): any {
|
|
40
|
+
function fn() {
|
|
41
|
+
try {
|
|
42
|
+
const value = eval(`this.${path}`.replace('.[', '['));
|
|
43
|
+
return typeof value !== 'undefined' ? value : defaultValue;
|
|
44
|
+
} catch (e) { return defaultValue; }
|
|
45
|
+
}
|
|
46
|
+
return fn.apply(baseObject, null);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
*/
|
|
@@ -1,43 +1,67 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports._get =
|
|
3
|
+
exports._get = void 0;
|
|
4
4
|
/**
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
5
|
+
* Like lodash _.get.
|
|
6
|
+
* Gets the value at path of object. If the resolved value is undefined, the defaultValue is returned in its place.
|
|
7
|
+
*
|
|
8
|
+
* Empty arrays and empty objects are returned but the defaultValue is not
|
|
9
|
+
* Undefined and null values will return the defaultValue.
|
|
10
|
+
*
|
|
11
|
+
* @param baseObject The object to query
|
|
12
|
+
* @param path The string path or collection of string paths of the property to get.
|
|
13
|
+
* @param defaultValue The value returned for undefined resolved values.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* // returns 'Hello'
|
|
17
|
+
* _get({ item1: 'Hello', item2: 'World' }, 'item1')
|
|
18
|
+
* @example
|
|
19
|
+
* // returns 'A simple Hello'
|
|
20
|
+
* _get({ item1: 'Hello', item2: 'World' }, 'item3', 'A simple Hello')
|
|
21
|
+
* @example
|
|
22
|
+
* // returns 'Hello Again'
|
|
23
|
+
* _get({ item1: { item11: 'Hello Again' }, item2: {} }, 'item1.item11')
|
|
24
|
+
* @example
|
|
25
|
+
* // returns 'Hello 2'
|
|
26
|
+
* _get({ item1: ['Hello 1', 'Hello 2' }, item2: [] }, 'item1[1]')
|
|
27
|
+
* @example
|
|
28
|
+
* // returns 'Hello Again'
|
|
29
|
+
* _get({ item1: { item11: 'Hello Again' }, item2: {} }, ['item1', 'item11'])
|
|
30
|
+
* @returns the resolved value.
|
|
31
|
+
*/
|
|
32
|
+
function _get(baseObject, path, defaultValue) {
|
|
33
|
+
if (validateToReturnDefaultValue(baseObject, path))
|
|
34
|
+
return defaultValue;
|
|
35
|
+
const keys = Array.isArray(path) ? path : path.replace(/(\[(\d)\])/g, '.$2').split('.').filter(k => k.length);
|
|
36
|
+
baseObject = baseObject[keys[0]];
|
|
37
|
+
if (baseObject !== undefined && keys.length > 1) {
|
|
38
|
+
return _get(baseObject, keys.slice(1), defaultValue);
|
|
23
39
|
}
|
|
24
|
-
return
|
|
40
|
+
return baseObject === undefined ? defaultValue : baseObject;
|
|
25
41
|
}
|
|
26
|
-
exports.get = get;
|
|
27
|
-
/**
|
|
28
|
-
* Like lodash _.get
|
|
29
|
-
*/
|
|
30
|
-
const _get = (baseObject, key, fallback) => {
|
|
31
|
-
function fn() {
|
|
32
|
-
try {
|
|
33
|
-
// tslint:disable-next-line:no-eval
|
|
34
|
-
const value = eval(`this.${key}`.replace('.[', '['));
|
|
35
|
-
return typeof value !== 'undefined' ? value : fallback;
|
|
36
|
-
}
|
|
37
|
-
catch (e) {
|
|
38
|
-
return fallback;
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
return fn.apply(baseObject, null);
|
|
42
|
-
};
|
|
43
42
|
exports._get = _get;
|
|
43
|
+
function validateToReturnDefaultValue(baseObject, path) {
|
|
44
|
+
return baseObject == null ||
|
|
45
|
+
path == null ||
|
|
46
|
+
(typeof path !== 'string' && !Array.isArray(path));
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
*
|
|
50
|
+
* /**
|
|
51
|
+
* Like lodash _.get.
|
|
52
|
+
* Gets the value at path of object. If the resolved value is undefined, the defaultValue is returned in its place.
|
|
53
|
+
* @param baseObject The object to query
|
|
54
|
+
* @param path The path of the property to get.
|
|
55
|
+
* @param defaultValue The value returned for undefined resolved values.
|
|
56
|
+
* @returns the resolved value.
|
|
57
|
+
export function get(baseObject: any, path: string, defaultValue?: any): any {
|
|
58
|
+
function fn() {
|
|
59
|
+
try {
|
|
60
|
+
const value = eval(`this.${path}`.replace('.[', '['));
|
|
61
|
+
return typeof value !== 'undefined' ? value : defaultValue;
|
|
62
|
+
} catch (e) { return defaultValue; }
|
|
63
|
+
}
|
|
64
|
+
return fn.apply(baseObject, null);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
*/
|
|
@@ -7,4 +7,4 @@
|
|
|
7
7
|
* @example
|
|
8
8
|
* getAttribute(obj, 'snake_case') //it search for: obj.snake_case || obj.snakeCase || obj.SnakeCase || obj.snakecase || obj.SNAKECASE
|
|
9
9
|
*/
|
|
10
|
-
export declare function getAttribute(obj:
|
|
10
|
+
export declare function getAttribute(obj: any, key: string): any;
|