@gravity-ui/dashkit 10.4.0 → 10.4.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/build/cjs/package.json +1 -1
- package/build/cjs/shared/modules/helpers.js +22 -19
- package/build/cjs/shared/modules/helpers.js.map +1 -1
- package/build/cjs/shared/modules/state-and-params.js +11 -7
- package/build/cjs/shared/modules/state-and-params.js.map +1 -1
- package/build/esm/package.json +1 -1
- package/build/esm/shared/modules/helpers.js +22 -19
- package/build/esm/shared/modules/helpers.js.map +1 -1
- package/build/esm/shared/modules/state-and-params.js +11 -7
- package/build/esm/shared/modules/state-and-params.js.map +1 -1
- package/package.json +1 -1
package/build/cjs/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":"10.4.
|
|
1
|
+
{"version":"10.4.1","type":"commonjs","sideEffects":["*.scss","*.css"]}
|
|
@@ -143,27 +143,30 @@ function resolveItemInnerId({ item, itemsStateAndParams, }) {
|
|
|
143
143
|
// Тут мы нормализуем к виду Record<itemId: ignoredItemId[]>
|
|
144
144
|
function getMapItemsIgnores({ items, ignores, itemsStateAndParams, isFirstVersion, }) {
|
|
145
145
|
// Record<itemId, innerId (tabId | itemId)>
|
|
146
|
-
const mapIds =
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
146
|
+
const mapIds = {};
|
|
147
|
+
for (const item of items) {
|
|
148
|
+
mapIds[item.id] = isItemWithTabs(item)
|
|
149
|
+
? resolveItemInnerId({ item, itemsStateAndParams })
|
|
150
|
+
: item.id;
|
|
151
|
+
}
|
|
151
152
|
// Record<innerId (tabId | itemId), itemId>
|
|
152
153
|
const invertedMapIds = (0, invert_1.default)(mapIds);
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
154
|
+
const itemsIgnores = {};
|
|
155
|
+
for (const item of items) {
|
|
156
|
+
itemsIgnores[item.id] = ignores
|
|
157
|
+
.filter(({ from, to }) => {
|
|
158
|
+
if (isFirstVersion) {
|
|
159
|
+
// В первой версии был баг - если есть игнор на один таб, то весь виджет игнорит селектор.
|
|
160
|
+
// Повторяем это неправильное поведение,
|
|
161
|
+
// иначе будут прилетать дефолты селекта в табы, которые не игнорят.
|
|
162
|
+
const fromInTabs = isItemWithTabs(item) && item.data.tabs.some(({ id }) => id === from);
|
|
163
|
+
return (from === item.id || fromInTabs) && invertedMapIds[to];
|
|
164
|
+
}
|
|
165
|
+
return from === mapIds[item.id] && invertedMapIds[to];
|
|
166
|
+
})
|
|
167
|
+
.map(({ to }) => invertedMapIds[to]);
|
|
168
|
+
}
|
|
169
|
+
return itemsIgnores;
|
|
167
170
|
}
|
|
168
171
|
function mergeParamsWithAliases({ aliases, namespace, params, actionParams, }) {
|
|
169
172
|
const aliasesByNamespace = (0, get_1.default)(aliases, [namespace], []);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"../../../../src","sources":["shared/modules/helpers.ts"],"names":[],"mappings":"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","sourcesContent":["import get from 'lodash/get';\nimport invert from 'lodash/invert';\nimport isEmpty from 'lodash/isEmpty';\nimport keyBy from 'lodash/keyBy';\nimport pick from 'lodash/pick';\n\nimport {ACTION_PARAM_PREFIX, CURRENT_VERSION, META_KEY} from '../constants';\nimport {\n Config,\n ConfigAliases,\n ConfigConnection,\n ConfigItem,\n ConfigItemGroup,\n ConfigItemWithGroup,\n ConfigItemWithTabs,\n ItemStateAndParams,\n ItemsStateAndParams,\n ItemsStateAndParamsBase,\n PluginBase,\n QueueItem,\n StateAndParamsMetaData,\n StringParams,\n} from '../types';\n\nfunction getNormalizedPlugins(plugins: PluginBase[]) {\n return keyBy(plugins, 'type');\n}\n\nexport function prerenderItems({\n items,\n plugins,\n}: {\n items: ConfigItem[];\n plugins: PluginBase[];\n}): ConfigItem[] {\n const normalizedPlugins = getNormalizedPlugins(plugins);\n return items.map((item) => {\n const {type} = item;\n const plugin = normalizedPlugins[type];\n return typeof plugin.prerenderMiddleware === 'function'\n ? plugin.prerenderMiddleware(item)\n : item;\n });\n}\n\nexport function getItemsStateAndParamsMeta(itemsStateAndParams: ItemsStateAndParams) {\n const meta = itemsStateAndParams?.[META_KEY] as StateAndParamsMetaData | undefined;\n return meta;\n}\n\nexport function getCurrentVersion(itemsStateAndParams: ItemsStateAndParams): number {\n if (isEmpty(itemsStateAndParams)) {\n return CURRENT_VERSION;\n }\n const meta = getItemsStateAndParamsMeta(itemsStateAndParams);\n if (!meta) {\n const withParams = Object.keys(itemsStateAndParams).some((id) => {\n return Boolean((itemsStateAndParams as ItemsStateAndParamsBase)[id].params);\n });\n if (withParams) {\n return 1;\n }\n return CURRENT_VERSION;\n }\n return meta.version;\n}\n\nfunction isConfigData(\n item: Pick<ConfigItem, 'data'> | ConfigItemGroup,\n): item is Pick<ConfigItem, 'data'> {\n return 'data' in item && 'type' in item;\n}\n\nexport function isItemWithTabs(\n item: Pick<ConfigItem, 'data'> | ConfigItemGroup,\n): item is Pick<ConfigItemWithTabs, 'data'> {\n return isConfigData(item) && Array.isArray(item?.data?.tabs);\n}\n\nexport function isItemWithGroup(\n item: Pick<ConfigItem, 'data'>,\n): item is Pick<ConfigItemWithGroup, 'data'> {\n return Array.isArray(item?.data?.group);\n}\n\nexport type FormedQueueData = {\n id: string;\n namespace: string;\n params: StringParams;\n};\n\n// Array of parameters from widgets according to queue\nexport function formQueueData({\n items,\n itemsStateAndParams,\n}: {\n items: ConfigItem[];\n itemsStateAndParams: ItemsStateAndParams;\n}): FormedQueueData[] {\n const queue = getItemsStateAndParamsMeta(itemsStateAndParams)?.queue || [];\n const keyById = keyBy(items, 'id');\n return queue.reduce((queueArray: FormedQueueData[], queueItem: QueueItem) => {\n const {id: queueId, tabId, groupItemId} = queueItem;\n const item = keyById[queueId];\n const isGroup = isItemWithGroup(item);\n if (!item || (isGroup && !groupItemId)) {\n return queueArray;\n }\n\n if (isGroup && groupItemId) {\n const itemQueueParams: Record<string, StringParams> = get(\n itemsStateAndParams,\n [item.id, 'params'],\n {},\n );\n\n const groupItem = item.data.group.find(({id}) => id === groupItemId);\n if (!groupItem) {\n return queueArray;\n }\n const groupItemQueueParams = itemQueueParams[groupItemId];\n const filteredParamsByDefaults = pick(\n groupItemQueueParams,\n Object.keys(groupItem.defaults || {}),\n );\n\n /**\n * merging filtered params and filtered actionParams with prefixes\n */\n const params = {\n ...filteredParamsByDefaults,\n ...(pickActionParamsFromParams(groupItemQueueParams, true) || {}),\n };\n\n queueArray.push({\n id: groupItem.id,\n namespace: groupItem.namespace,\n params,\n });\n\n return queueArray;\n }\n\n const itemQueueParams: StringParams = get(itemsStateAndParams, [item.id, 'params'], {});\n\n let itemDefaultParams: StringParams;\n if (isItemWithTabs(item)) {\n if (!tabId || resolveItemInnerId({item, itemsStateAndParams}) !== tabId) {\n return queueArray;\n }\n itemDefaultParams =\n item.data.tabs.find((tabData) => tabData.id === tabId)?.params || {};\n } else {\n itemDefaultParams = item.defaults || {};\n }\n\n const filteredParamsByDefaults = pick(itemQueueParams, Object.keys(itemDefaultParams));\n\n /**\n * merging filtered params and filtered actionParams with prefixes\n */\n const params = {\n ...filteredParamsByDefaults,\n ...(pickActionParamsFromParams(itemQueueParams, true) || {}),\n };\n\n queueArray.push({\n id: item.id,\n namespace: item.namespace,\n params,\n });\n\n return queueArray;\n }, []);\n}\n\nexport function resolveItemInnerId({\n item,\n itemsStateAndParams,\n}: {\n item: Pick<ConfigItemWithTabs, 'data' | 'id'>;\n itemsStateAndParams?: ItemsStateAndParams;\n}): string {\n const {id} = item;\n const stateTabId: string | undefined = (itemsStateAndParams as ItemsStateAndParamsBase)?.[id]\n ?.state?.tabId;\n\n const {tabs} = (item as ConfigItemWithTabs).data;\n if (stateTabId && tabs.some((tab) => tab.id === stateTabId)) {\n return stateTabId;\n }\n const indexIsDefault = tabs.findIndex(({isDefault}) => isDefault);\n return indexIsDefault === -1 ? tabs[0].id : tabs[indexIsDefault].id;\n}\n\n// В config.connections в from/to может быть как id item'a (item.id), так и id таба (item.data.tabs[].id)\n// Тут мы нормализуем к виду Record<itemId: ignoredItemId[]>\nexport function getMapItemsIgnores({\n items,\n ignores,\n itemsStateAndParams,\n isFirstVersion,\n}: {\n items: (ConfigItem | ConfigItemGroup)[];\n ignores: ConfigConnection[];\n itemsStateAndParams: ItemsStateAndParams;\n isFirstVersion: boolean;\n}): Record<string, string[]> {\n // Record<itemId, innerId (tabId | itemId)>\n const mapIds = items.reduce((acc: Record<string, string>, item) => {\n return {\n ...acc,\n [item.id]: isItemWithTabs(item)\n ? resolveItemInnerId({item, itemsStateAndParams})\n : item.id,\n };\n }, {});\n // Record<innerId (tabId | itemId), itemId>\n const invertedMapIds = invert(mapIds);\n return items.reduce((acc: Record<string, string[]>, item) => {\n return {\n ...acc,\n [item.id]: ignores\n .filter(({from, to}) => {\n if (isFirstVersion) {\n // В первой версии был баг - если есть игнор на один таб, то весь виджет игнорит селектор.\n // Повторяем это неправильное поведение,\n // иначе будут прилетать дефолты селекта в табы, которые не игнорят.\n const fromInTabs =\n isItemWithTabs(item) && item.data.tabs.some(({id}) => id === from);\n return (from === item.id || fromInTabs) && invertedMapIds[to];\n }\n return from === mapIds[item.id] && invertedMapIds[to];\n })\n .map(({to}) => invertedMapIds[to]),\n };\n }, {});\n}\n\nexport function mergeParamsWithAliases({\n aliases,\n namespace,\n params,\n actionParams,\n}: {\n aliases: ConfigAliases;\n namespace: string;\n params: StringParams;\n actionParams?: StringParams;\n}): StringParams {\n const aliasesByNamespace = get(aliases, [namespace], []) as string[][];\n const items = {\n ...(params || {}),\n ...(actionParams || {}),\n };\n return Object.keys(items).reduce((matchedParams: StringParams, paramKey) => {\n const paramValue = items[paramKey];\n const collectAliasesParamsKeys = aliasesByNamespace.reduce(\n (collect, group) => {\n return group.includes(paramKey) ? collect.concat(group) : collect;\n },\n [paramKey],\n );\n return {\n ...matchedParams,\n ...collectAliasesParamsKeys.reduce((acc: StringParams, matchedKey) => {\n return {...acc, [matchedKey]: paramValue};\n }, {}),\n };\n }, {});\n}\n\nexport function getInitialItemsStateAndParamsMeta(): StateAndParamsMetaData {\n return {\n queue: [],\n version: CURRENT_VERSION,\n };\n}\n\ninterface ChangeQueueArg {\n id: string;\n tabId?: string;\n groupItemId?: string;\n config: Config;\n itemsStateAndParams: ItemsStateAndParams;\n}\n\ninterface ChangeQueueGroupArg {\n id: string;\n groupItemIds: string[];\n config: Config;\n itemsStateAndParams: ItemsStateAndParams;\n}\n\nfunction getActualItemsIds(items: ConfigItem[]) {\n return items.reduce((ids: string[], item) => {\n if (isItemWithGroup(item)) {\n item.data.group.forEach((groupItem) => {\n ids.push(groupItem.id);\n });\n }\n\n ids.push(item.id);\n return ids;\n }, []);\n}\n\nexport function addToQueue({\n id,\n tabId,\n config,\n itemsStateAndParams,\n}: ChangeQueueArg): StateAndParamsMetaData {\n const queueItem: QueueItem = {id};\n if (tabId) {\n queueItem.tabId = tabId;\n }\n const meta = getItemsStateAndParamsMeta(itemsStateAndParams);\n if (!meta) {\n return {queue: [queueItem], version: CURRENT_VERSION};\n }\n\n const configItems = getAllConfigItems(config);\n const actualIds = getActualItemsIds(configItems);\n const metaQueue = meta.queue || [];\n const notCurrent = (item: QueueItem) => {\n if (item.groupItemId) {\n return actualIds.includes(item.groupItemId);\n }\n return item.id !== id;\n };\n return {\n queue: metaQueue\n .filter((item) => actualIds.includes(item.id) && notCurrent(item))\n .concat(queueItem),\n version: meta.version || CURRENT_VERSION,\n };\n}\n\nexport function addGroupToQueue({\n id,\n groupItemIds,\n config,\n itemsStateAndParams,\n}: ChangeQueueGroupArg): StateAndParamsMetaData {\n const queueItems: QueueItem[] = groupItemIds.map((groupItemId) => ({\n id,\n groupItemId,\n }));\n const meta = getItemsStateAndParamsMeta(itemsStateAndParams);\n if (!meta) {\n return {queue: queueItems, version: CURRENT_VERSION};\n }\n const configItems = getAllConfigItems(config);\n const actualIds = getActualItemsIds(configItems);\n const metaQueue = meta.queue || [];\n const notCurrent = (item: QueueItem) => {\n if (item.groupItemId) {\n return actualIds.includes(item.groupItemId) && !groupItemIds.includes(item.groupItemId);\n }\n return true;\n };\n return {\n queue: metaQueue\n .filter((item) => actualIds.includes(item.id) && notCurrent(item))\n .concat(queueItems),\n version: meta.version || CURRENT_VERSION,\n };\n}\n\nexport function deleteFromQueue(data: ChangeQueueArg): StateAndParamsMetaData {\n const meta = addToQueue(data);\n return {\n ...meta,\n queue: meta.queue.slice(0, -1),\n };\n}\n\n/**\n * public function for getting only actionParams from object (all fields with keys that contains prefix)\n * @param params - object for pick fields\n * @param returnWithPrefix - format of returning actionParams fields (with actionParams prefix or without them)\n *\n * ex1: pickActionParamsFromParams({City: 'NY', _ap_Year: '2023'}, true) returns {_ap_Year: '2023'}\n * ex2: pickActionParamsFromParams({City: 'NY', _ap_Year: '2023'}) returns {Year: '2023'}\n */\nexport function pickActionParamsFromParams(\n params: ItemStateAndParams['params'],\n returnWithPrefix?: boolean,\n) {\n if (!params || isEmpty(params)) {\n return {};\n }\n\n const actionParams: StringParams = {};\n for (const [key, val] of Object.entries(params)) {\n // starts with actionParams prefix (from'_ap_')\n if (key.startsWith(ACTION_PARAM_PREFIX)) {\n const paramName = returnWithPrefix ? key : key.slice(ACTION_PARAM_PREFIX.length);\n actionParams[paramName] = val;\n }\n }\n return actionParams;\n}\n\n/**\n * public function for getting params from object without actionParams\n * @param params\n */\nexport function pickExceptActionParamsFromParams(params: ItemStateAndParams['params']) {\n if (!params || isEmpty(params)) {\n return {};\n }\n\n const onlyParams: StringParams = {};\n for (const [key, val] of Object.entries(params)) {\n if (!key.startsWith(ACTION_PARAM_PREFIX)) {\n onlyParams[key] = val;\n }\n }\n return onlyParams;\n}\n\n/**\n * public function for transforming object to actionParams format\n * @param params\n */\nexport function transformParamsToActionParams(params: ItemStateAndParams['params']) {\n if (!params || isEmpty(params)) {\n return {};\n }\n\n const actionParams: StringParams = {};\n for (const [key, val] of Object.entries(params)) {\n actionParams[`${ACTION_PARAM_PREFIX}${key}`] = val;\n }\n return actionParams;\n}\n\n/**\n * check if object contains actionParams\n * @param conf\n */\nexport function hasActionParam(conf?: StringParams | Record<string, StringParams>): boolean {\n return Object.keys(conf || {}).some((key) => {\n if (conf && typeof conf[key] === 'object' && !Array.isArray(conf[key])) {\n return Object.keys(conf[key]).some((subkey) => subkey.startsWith(ACTION_PARAM_PREFIX));\n }\n return key.startsWith(ACTION_PARAM_PREFIX);\n });\n}\n\n/**\n * check if ItemStateAndParams object has actionParams in params or state field\n * @param stateAndParams\n */\nexport function hasActionParams(stateAndParams: ItemStateAndParams) {\n if (!stateAndParams || isEmpty(stateAndParams)) {\n return false;\n }\n\n return hasActionParam(stateAndParams.params);\n}\n\n// Combines regular items and global items from config into a single array\n// For global usage across the project\nexport function getAllConfigItems(config: Config): ConfigItem[] {\n return [...config.items, ...(config.globalItems || [])];\n}\n\nexport function isGlobalGroupItemVisible(\n groupItem: ConfigItemGroup,\n parentItem: ConfigItem,\n currentTabId?: string,\n): boolean {\n if (!currentTabId) {\n return true;\n }\n\n const {impactType, impactTabsIds} = groupItem;\n\n if (impactType === 'allTabs') {\n return true;\n }\n\n if (impactType === 'asGroup' || !impactType) {\n const {impactType: parentImpactType, impactTabsIds: parentImpactTabsIds} = parentItem.data;\n\n if ((!parentImpactType && !parentImpactTabsIds) || parentImpactType === 'allTabs') {\n return true;\n }\n\n if (parentImpactTabsIds) {\n return parentImpactTabsIds.includes(currentTabId);\n }\n\n return false;\n }\n\n if (impactTabsIds) {\n return impactTabsIds.includes(currentTabId);\n }\n\n return false;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"../../../../src","sources":["shared/modules/helpers.ts"],"names":[],"mappings":"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","sourcesContent":["import get from 'lodash/get';\nimport invert from 'lodash/invert';\nimport isEmpty from 'lodash/isEmpty';\nimport keyBy from 'lodash/keyBy';\nimport pick from 'lodash/pick';\n\nimport {ACTION_PARAM_PREFIX, CURRENT_VERSION, META_KEY} from '../constants';\nimport {\n Config,\n ConfigAliases,\n ConfigConnection,\n ConfigItem,\n ConfigItemGroup,\n ConfigItemWithGroup,\n ConfigItemWithTabs,\n ItemStateAndParams,\n ItemsStateAndParams,\n ItemsStateAndParamsBase,\n PluginBase,\n QueueItem,\n StateAndParamsMetaData,\n StringParams,\n} from '../types';\n\nfunction getNormalizedPlugins(plugins: PluginBase[]) {\n return keyBy(plugins, 'type');\n}\n\nexport function prerenderItems({\n items,\n plugins,\n}: {\n items: ConfigItem[];\n plugins: PluginBase[];\n}): ConfigItem[] {\n const normalizedPlugins = getNormalizedPlugins(plugins);\n return items.map((item) => {\n const {type} = item;\n const plugin = normalizedPlugins[type];\n return typeof plugin.prerenderMiddleware === 'function'\n ? plugin.prerenderMiddleware(item)\n : item;\n });\n}\n\nexport function getItemsStateAndParamsMeta(itemsStateAndParams: ItemsStateAndParams) {\n const meta = itemsStateAndParams?.[META_KEY] as StateAndParamsMetaData | undefined;\n return meta;\n}\n\nexport function getCurrentVersion(itemsStateAndParams: ItemsStateAndParams): number {\n if (isEmpty(itemsStateAndParams)) {\n return CURRENT_VERSION;\n }\n const meta = getItemsStateAndParamsMeta(itemsStateAndParams);\n if (!meta) {\n const withParams = Object.keys(itemsStateAndParams).some((id) => {\n return Boolean((itemsStateAndParams as ItemsStateAndParamsBase)[id].params);\n });\n if (withParams) {\n return 1;\n }\n return CURRENT_VERSION;\n }\n return meta.version;\n}\n\nfunction isConfigData(\n item: Pick<ConfigItem, 'data'> | ConfigItemGroup,\n): item is Pick<ConfigItem, 'data'> {\n return 'data' in item && 'type' in item;\n}\n\nexport function isItemWithTabs(\n item: Pick<ConfigItem, 'data'> | ConfigItemGroup,\n): item is Pick<ConfigItemWithTabs, 'data'> {\n return isConfigData(item) && Array.isArray(item?.data?.tabs);\n}\n\nexport function isItemWithGroup(\n item: Pick<ConfigItem, 'data'>,\n): item is Pick<ConfigItemWithGroup, 'data'> {\n return Array.isArray(item?.data?.group);\n}\n\nexport type FormedQueueData = {\n id: string;\n namespace: string;\n params: StringParams;\n};\n\n// Array of parameters from widgets according to queue\nexport function formQueueData({\n items,\n itemsStateAndParams,\n}: {\n items: ConfigItem[];\n itemsStateAndParams: ItemsStateAndParams;\n}): FormedQueueData[] {\n const queue = getItemsStateAndParamsMeta(itemsStateAndParams)?.queue || [];\n const keyById = keyBy(items, 'id');\n return queue.reduce((queueArray: FormedQueueData[], queueItem: QueueItem) => {\n const {id: queueId, tabId, groupItemId} = queueItem;\n const item = keyById[queueId];\n const isGroup = isItemWithGroup(item);\n if (!item || (isGroup && !groupItemId)) {\n return queueArray;\n }\n\n if (isGroup && groupItemId) {\n const itemQueueParams: Record<string, StringParams> = get(\n itemsStateAndParams,\n [item.id, 'params'],\n {},\n );\n\n const groupItem = item.data.group.find(({id}) => id === groupItemId);\n if (!groupItem) {\n return queueArray;\n }\n const groupItemQueueParams = itemQueueParams[groupItemId];\n const filteredParamsByDefaults = pick(\n groupItemQueueParams,\n Object.keys(groupItem.defaults || {}),\n );\n\n /**\n * merging filtered params and filtered actionParams with prefixes\n */\n const params = {\n ...filteredParamsByDefaults,\n ...(pickActionParamsFromParams(groupItemQueueParams, true) || {}),\n };\n\n queueArray.push({\n id: groupItem.id,\n namespace: groupItem.namespace,\n params,\n });\n\n return queueArray;\n }\n\n const itemQueueParams: StringParams = get(itemsStateAndParams, [item.id, 'params'], {});\n\n let itemDefaultParams: StringParams;\n if (isItemWithTabs(item)) {\n if (!tabId || resolveItemInnerId({item, itemsStateAndParams}) !== tabId) {\n return queueArray;\n }\n itemDefaultParams =\n item.data.tabs.find((tabData) => tabData.id === tabId)?.params || {};\n } else {\n itemDefaultParams = item.defaults || {};\n }\n\n const filteredParamsByDefaults = pick(itemQueueParams, Object.keys(itemDefaultParams));\n\n /**\n * merging filtered params and filtered actionParams with prefixes\n */\n const params = {\n ...filteredParamsByDefaults,\n ...(pickActionParamsFromParams(itemQueueParams, true) || {}),\n };\n\n queueArray.push({\n id: item.id,\n namespace: item.namespace,\n params,\n });\n\n return queueArray;\n }, []);\n}\n\nexport function resolveItemInnerId({\n item,\n itemsStateAndParams,\n}: {\n item: Pick<ConfigItemWithTabs, 'data' | 'id'>;\n itemsStateAndParams?: ItemsStateAndParams;\n}): string {\n const {id} = item;\n const stateTabId: string | undefined = (itemsStateAndParams as ItemsStateAndParamsBase)?.[id]\n ?.state?.tabId;\n\n const {tabs} = (item as ConfigItemWithTabs).data;\n if (stateTabId && tabs.some((tab) => tab.id === stateTabId)) {\n return stateTabId;\n }\n const indexIsDefault = tabs.findIndex(({isDefault}) => isDefault);\n return indexIsDefault === -1 ? tabs[0].id : tabs[indexIsDefault].id;\n}\n\n// В config.connections в from/to может быть как id item'a (item.id), так и id таба (item.data.tabs[].id)\n// Тут мы нормализуем к виду Record<itemId: ignoredItemId[]>\nexport function getMapItemsIgnores({\n items,\n ignores,\n itemsStateAndParams,\n isFirstVersion,\n}: {\n items: (ConfigItem | ConfigItemGroup)[];\n ignores: ConfigConnection[];\n itemsStateAndParams: ItemsStateAndParams;\n isFirstVersion: boolean;\n}): Record<string, string[]> {\n // Record<itemId, innerId (tabId | itemId)>\n const mapIds: Record<string, string> = {};\n for (const item of items) {\n mapIds[item.id] = isItemWithTabs(item)\n ? resolveItemInnerId({item, itemsStateAndParams})\n : item.id;\n }\n // Record<innerId (tabId | itemId), itemId>\n const invertedMapIds = invert(mapIds);\n\n const itemsIgnores: Record<string, string[]> = {};\n for (const item of items) {\n itemsIgnores[item.id] = ignores\n .filter(({from, to}) => {\n if (isFirstVersion) {\n // В первой версии был баг - если есть игнор на один таб, то весь виджет игнорит селектор.\n // Повторяем это неправильное поведение,\n // иначе будут прилетать дефолты селекта в табы, которые не игнорят.\n const fromInTabs =\n isItemWithTabs(item) && item.data.tabs.some(({id}) => id === from);\n return (from === item.id || fromInTabs) && invertedMapIds[to];\n }\n return from === mapIds[item.id] && invertedMapIds[to];\n })\n .map(({to}) => invertedMapIds[to]);\n }\n return itemsIgnores;\n}\n\nexport function mergeParamsWithAliases({\n aliases,\n namespace,\n params,\n actionParams,\n}: {\n aliases: ConfigAliases;\n namespace: string;\n params: StringParams;\n actionParams?: StringParams;\n}): StringParams {\n const aliasesByNamespace = get(aliases, [namespace], []) as string[][];\n const items = {\n ...(params || {}),\n ...(actionParams || {}),\n };\n return Object.keys(items).reduce((matchedParams: StringParams, paramKey) => {\n const paramValue = items[paramKey];\n const collectAliasesParamsKeys = aliasesByNamespace.reduce(\n (collect, group) => {\n return group.includes(paramKey) ? collect.concat(group) : collect;\n },\n [paramKey],\n );\n return {\n ...matchedParams,\n ...collectAliasesParamsKeys.reduce((acc: StringParams, matchedKey) => {\n return {...acc, [matchedKey]: paramValue};\n }, {}),\n };\n }, {});\n}\n\nexport function getInitialItemsStateAndParamsMeta(): StateAndParamsMetaData {\n return {\n queue: [],\n version: CURRENT_VERSION,\n };\n}\n\ninterface ChangeQueueArg {\n id: string;\n tabId?: string;\n groupItemId?: string;\n config: Config;\n itemsStateAndParams: ItemsStateAndParams;\n}\n\ninterface ChangeQueueGroupArg {\n id: string;\n groupItemIds: string[];\n config: Config;\n itemsStateAndParams: ItemsStateAndParams;\n}\n\nfunction getActualItemsIds(items: ConfigItem[]) {\n return items.reduce((ids: string[], item) => {\n if (isItemWithGroup(item)) {\n item.data.group.forEach((groupItem) => {\n ids.push(groupItem.id);\n });\n }\n\n ids.push(item.id);\n return ids;\n }, []);\n}\n\nexport function addToQueue({\n id,\n tabId,\n config,\n itemsStateAndParams,\n}: ChangeQueueArg): StateAndParamsMetaData {\n const queueItem: QueueItem = {id};\n if (tabId) {\n queueItem.tabId = tabId;\n }\n const meta = getItemsStateAndParamsMeta(itemsStateAndParams);\n if (!meta) {\n return {queue: [queueItem], version: CURRENT_VERSION};\n }\n\n const configItems = getAllConfigItems(config);\n const actualIds = getActualItemsIds(configItems);\n const metaQueue = meta.queue || [];\n const notCurrent = (item: QueueItem) => {\n if (item.groupItemId) {\n return actualIds.includes(item.groupItemId);\n }\n return item.id !== id;\n };\n return {\n queue: metaQueue\n .filter((item) => actualIds.includes(item.id) && notCurrent(item))\n .concat(queueItem),\n version: meta.version || CURRENT_VERSION,\n };\n}\n\nexport function addGroupToQueue({\n id,\n groupItemIds,\n config,\n itemsStateAndParams,\n}: ChangeQueueGroupArg): StateAndParamsMetaData {\n const queueItems: QueueItem[] = groupItemIds.map((groupItemId) => ({\n id,\n groupItemId,\n }));\n const meta = getItemsStateAndParamsMeta(itemsStateAndParams);\n if (!meta) {\n return {queue: queueItems, version: CURRENT_VERSION};\n }\n const configItems = getAllConfigItems(config);\n const actualIds = getActualItemsIds(configItems);\n const metaQueue = meta.queue || [];\n const notCurrent = (item: QueueItem) => {\n if (item.groupItemId) {\n return actualIds.includes(item.groupItemId) && !groupItemIds.includes(item.groupItemId);\n }\n return true;\n };\n return {\n queue: metaQueue\n .filter((item) => actualIds.includes(item.id) && notCurrent(item))\n .concat(queueItems),\n version: meta.version || CURRENT_VERSION,\n };\n}\n\nexport function deleteFromQueue(data: ChangeQueueArg): StateAndParamsMetaData {\n const meta = addToQueue(data);\n return {\n ...meta,\n queue: meta.queue.slice(0, -1),\n };\n}\n\n/**\n * public function for getting only actionParams from object (all fields with keys that contains prefix)\n * @param params - object for pick fields\n * @param returnWithPrefix - format of returning actionParams fields (with actionParams prefix or without them)\n *\n * ex1: pickActionParamsFromParams({City: 'NY', _ap_Year: '2023'}, true) returns {_ap_Year: '2023'}\n * ex2: pickActionParamsFromParams({City: 'NY', _ap_Year: '2023'}) returns {Year: '2023'}\n */\nexport function pickActionParamsFromParams(\n params: ItemStateAndParams['params'],\n returnWithPrefix?: boolean,\n) {\n if (!params || isEmpty(params)) {\n return {};\n }\n\n const actionParams: StringParams = {};\n for (const [key, val] of Object.entries(params)) {\n // starts with actionParams prefix (from'_ap_')\n if (key.startsWith(ACTION_PARAM_PREFIX)) {\n const paramName = returnWithPrefix ? key : key.slice(ACTION_PARAM_PREFIX.length);\n actionParams[paramName] = val;\n }\n }\n return actionParams;\n}\n\n/**\n * public function for getting params from object without actionParams\n * @param params\n */\nexport function pickExceptActionParamsFromParams(params: ItemStateAndParams['params']) {\n if (!params || isEmpty(params)) {\n return {};\n }\n\n const onlyParams: StringParams = {};\n for (const [key, val] of Object.entries(params)) {\n if (!key.startsWith(ACTION_PARAM_PREFIX)) {\n onlyParams[key] = val;\n }\n }\n return onlyParams;\n}\n\n/**\n * public function for transforming object to actionParams format\n * @param params\n */\nexport function transformParamsToActionParams(params: ItemStateAndParams['params']) {\n if (!params || isEmpty(params)) {\n return {};\n }\n\n const actionParams: StringParams = {};\n for (const [key, val] of Object.entries(params)) {\n actionParams[`${ACTION_PARAM_PREFIX}${key}`] = val;\n }\n return actionParams;\n}\n\n/**\n * check if object contains actionParams\n * @param conf\n */\nexport function hasActionParam(conf?: StringParams | Record<string, StringParams>): boolean {\n return Object.keys(conf || {}).some((key) => {\n if (conf && typeof conf[key] === 'object' && !Array.isArray(conf[key])) {\n return Object.keys(conf[key]).some((subkey) => subkey.startsWith(ACTION_PARAM_PREFIX));\n }\n return key.startsWith(ACTION_PARAM_PREFIX);\n });\n}\n\n/**\n * check if ItemStateAndParams object has actionParams in params or state field\n * @param stateAndParams\n */\nexport function hasActionParams(stateAndParams: ItemStateAndParams) {\n if (!stateAndParams || isEmpty(stateAndParams)) {\n return false;\n }\n\n return hasActionParam(stateAndParams.params);\n}\n\n// Combines regular items and global items from config into a single array\n// For global usage across the project\nexport function getAllConfigItems(config: Config): ConfigItem[] {\n return [...config.items, ...(config.globalItems || [])];\n}\n\nexport function isGlobalGroupItemVisible(\n groupItem: ConfigItemGroup,\n parentItem: ConfigItem,\n currentTabId?: string,\n): boolean {\n if (!currentTabId) {\n return true;\n }\n\n const {impactType, impactTabsIds} = groupItem;\n\n if (impactType === 'allTabs') {\n return true;\n }\n\n if (impactType === 'asGroup' || !impactType) {\n const {impactType: parentImpactType, impactTabsIds: parentImpactTabsIds} = parentItem.data;\n\n if ((!parentImpactType && !parentImpactTabsIds) || parentImpactType === 'allTabs') {\n return true;\n }\n\n if (parentImpactTabsIds) {\n return parentImpactTabsIds.includes(currentTabId);\n }\n\n return false;\n }\n\n if (impactTabsIds) {\n return impactTabsIds.includes(currentTabId);\n }\n\n return false;\n}\n"]}
|
|
@@ -108,7 +108,8 @@ function getItemsParams({ defaultGlobalParams = {}, globalParams = {}, config, i
|
|
|
108
108
|
// but make a decision about there's order first
|
|
109
109
|
[namespace]: groupByNamespace[namespace].filter((item) => item.defaults) });
|
|
110
110
|
}, {});
|
|
111
|
-
|
|
111
|
+
const itemsParams = {};
|
|
112
|
+
for (const item of items) {
|
|
112
113
|
const { id, namespace } = item;
|
|
113
114
|
const getMergedParams = (params, actionParams) => (0, helpers_1.mergeParamsWithAliases)({ aliases, namespace, params: params || {}, actionParams });
|
|
114
115
|
const paramsOptions = {
|
|
@@ -130,10 +131,12 @@ function getItemsParams({ defaultGlobalParams = {}, globalParams = {}, config, i
|
|
|
130
131
|
groupItemParams[groupItem.id] = getItemParams(Object.assign({ item: groupItem, parentItemId: item.id }, paramsOptions));
|
|
131
132
|
return groupItemParams;
|
|
132
133
|
}, {});
|
|
133
|
-
|
|
134
|
+
itemsParams[id] = groupParams;
|
|
135
|
+
continue;
|
|
134
136
|
}
|
|
135
|
-
|
|
136
|
-
}
|
|
137
|
+
itemsParams[id] = getItemParams(Object.assign({ item }, paramsOptions));
|
|
138
|
+
}
|
|
139
|
+
return itemsParams;
|
|
137
140
|
}
|
|
138
141
|
function getItemsState({ config, itemsStateAndParams, }) {
|
|
139
142
|
const configItems = (0, helpers_1.getAllConfigItems)(config);
|
|
@@ -153,7 +156,8 @@ function getItemsStateAndParams({ defaultGlobalParams = {}, globalParams = {}, c
|
|
|
153
156
|
});
|
|
154
157
|
const state = getItemsState({ config, itemsStateAndParams });
|
|
155
158
|
const uniqIds = new Set([...Object.keys(params), ...Object.keys(state)]);
|
|
156
|
-
const result =
|
|
159
|
+
const result = {};
|
|
160
|
+
for (const id of uniqIds) {
|
|
157
161
|
const data = {};
|
|
158
162
|
if (id in params) {
|
|
159
163
|
data.params = params[id];
|
|
@@ -161,8 +165,8 @@ function getItemsStateAndParams({ defaultGlobalParams = {}, globalParams = {}, c
|
|
|
161
165
|
if (id in state) {
|
|
162
166
|
data.state = state[id];
|
|
163
167
|
}
|
|
164
|
-
|
|
165
|
-
}
|
|
168
|
+
result[id] = data;
|
|
169
|
+
}
|
|
166
170
|
const version = (0, helpers_1.getCurrentVersion)(itemsStateAndParams);
|
|
167
171
|
if (version === 1) {
|
|
168
172
|
return result;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state-and-params.js","sourceRoot":"../../../../src","sources":["shared/modules/state-and-params.ts"],"names":[],"mappings":"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","sourcesContent":["import groupBy from 'lodash/groupBy';\n\nimport {META_KEY} from '../constants';\nimport {\n Config,\n ConfigItem,\n ConfigItemDataWithTabs,\n ConfigItemGroup,\n GlobalParams,\n ItemState,\n ItemStateAndParams,\n ItemsStateAndParams,\n ItemsStateAndParamsBase,\n PluginBase,\n StateAndParamsMetaData,\n StringParams,\n} from '../types';\n\nimport {\n FormedQueueData,\n formQueueData,\n getAllConfigItems,\n getCurrentVersion,\n getMapItemsIgnores,\n hasActionParam,\n isGlobalGroupItemVisible,\n isItemWithGroup,\n isItemWithTabs,\n mergeParamsWithAliases,\n pickActionParamsFromParams,\n pickExceptActionParamsFromParams,\n prerenderItems,\n resolveItemInnerId,\n} from './helpers';\n\nexport interface GetItemsParamsArg {\n defaultGlobalParams: GlobalParams;\n globalParams: GlobalParams;\n config: Config;\n itemsStateAndParams: ItemsStateAndParams;\n plugins: PluginBase[];\n useStateAsInitial?: boolean;\n}\n\ntype GetItemsParamsReturn = Record<string, StringParams | Record<string, StringParams>>;\n\nconst getParamsFromStateAndParams = ({\n itemsStateAndParams,\n parentItemId,\n item,\n}: {\n item: ConfigItem | ConfigItemGroup;\n itemsStateAndParams: ItemsStateAndParams;\n parentItemId?: string;\n}) => {\n const widgetId = parentItemId || item.id;\n\n if (!(widgetId in itemsStateAndParams)) {\n return {};\n }\n\n const stateAndParams = itemsStateAndParams as ItemsStateAndParamsBase;\n const itemParams = parentItemId\n ? Object.assign(\n {},\n (stateAndParams[widgetId].params as Record<string, StringParams>)[item.id],\n )\n : Object.assign({}, stateAndParams[widgetId].params as StringParams);\n\n return itemParams;\n};\n\nfunction getItemParams({\n item,\n itemsStateAndParams,\n mapItemsIgnores,\n itemsWithDefaultsByNamespace,\n getMergedParams,\n defaultGlobalParams,\n globalParams,\n isFirstVersion,\n queueData,\n parentItemId,\n useStateAsInitial,\n}: {\n item: ConfigItem | ConfigItemGroup;\n itemsStateAndParams: ItemsStateAndParams;\n mapItemsIgnores: Record<string, string[]>;\n itemsWithDefaultsByNamespace: Record<string, (ConfigItem | ConfigItemGroup)[]>;\n getMergedParams: (params: StringParams, actionParams?: StringParams) => StringParams;\n defaultGlobalParams: StringParams;\n globalParams: GlobalParams;\n isFirstVersion: boolean;\n queueData: FormedQueueData[];\n parentItemId?: string;\n useStateAsInitial?: boolean;\n}) {\n const {id, namespace} = item;\n\n let defaultWidgetParams: StringParams | Record<string, StringParams> = {};\n if (isItemWithTabs(item)) {\n const currentWidgetTabId = resolveItemInnerId({item, itemsStateAndParams});\n const itemTabs: ConfigItemDataWithTabs['tabs'] = item.data.tabs;\n defaultWidgetParams =\n itemTabs.find((tabItem) => tabItem?.id === currentWidgetTabId)?.params || {};\n } else {\n defaultWidgetParams = item.defaults || {};\n }\n\n const itemIgnores = mapItemsIgnores[id];\n\n const affectingItemsWithDefaults = itemsWithDefaultsByNamespace[namespace].filter(\n (itemWithDefaults) => !itemIgnores.includes(itemWithDefaults.id),\n );\n\n let itemParams: StringParams = Object.assign(\n {},\n getMergedParams(defaultGlobalParams),\n // default parameters to begin with\n affectingItemsWithDefaults.reduceRight((defaultParams: StringParams, itemWithDefaults) => {\n return {\n ...defaultParams,\n ...getMergedParams(itemWithDefaults.defaults || {}),\n };\n }, {}),\n getMergedParams(globalParams),\n useStateAsInitial\n ? getParamsFromStateAndParams({parentItemId, item, itemsStateAndParams})\n : {},\n );\n\n if (isFirstVersion) {\n itemParams = Object.assign(\n itemParams,\n (itemsStateAndParams as ItemsStateAndParamsBase)?.[id]?.params || {},\n );\n } else {\n // params according to queue of its applying\n let queueDataItemsParams: StringParams = {};\n for (const data of queueData) {\n if (data.namespace !== namespace || itemIgnores.includes(data.id)) {\n continue;\n }\n\n let actionParams;\n let params = data.params;\n const needAliasesForActionParams = data.id !== id && hasActionParam(data.params);\n if (needAliasesForActionParams) {\n actionParams = pickActionParamsFromParams(data.params);\n params = pickExceptActionParamsFromParams(data.params);\n }\n\n const mergedParams = getMergedParams(params, actionParams);\n\n queueDataItemsParams = {\n ...queueDataItemsParams,\n ...mergedParams,\n };\n }\n\n itemParams = Object.assign(itemParams, queueDataItemsParams);\n }\n\n return {...defaultWidgetParams, ...itemParams};\n}\n\nexport function getItemsParams({\n defaultGlobalParams = {},\n globalParams = {},\n config,\n itemsStateAndParams,\n plugins,\n useStateAsInitial,\n}: GetItemsParamsArg): GetItemsParamsReturn {\n const configItems = getAllConfigItems(config);\n const {aliases, connections} = config;\n const items = prerenderItems({\n items: configItems,\n plugins,\n });\n const isFirstVersion = getCurrentVersion(itemsStateAndParams) === 1;\n\n const globalItemIds = new Set((config.globalItems || []).map((item) => item.id));\n const visibleGlobalGroupSubItemIds = new Set<string>();\n\n const allItems = items.reduce((paramsItems: (ConfigItem | ConfigItemGroup)[], item) => {\n if (isItemWithGroup(item)) {\n const isGlobal = globalItemIds.has(item.id);\n\n item.data.group.forEach((groupItem) => {\n if (isGlobal && !isGlobalGroupItemVisible(groupItem, item, config.id)) {\n return;\n }\n\n paramsItems.push(groupItem);\n\n if (isGlobal) {\n visibleGlobalGroupSubItemIds.add(groupItem.id);\n }\n });\n\n return paramsItems;\n }\n\n paramsItems.push(item);\n return paramsItems;\n }, []);\n\n const queueData: FormedQueueData[] = isFirstVersion\n ? []\n : formQueueData({items, itemsStateAndParams});\n\n // to consider other kind types in future (not only ignore)\n const mapItemsIgnores = getMapItemsIgnores({\n items: allItems,\n ignores: connections.filter(({kind}) => kind === 'ignore'),\n itemsStateAndParams,\n isFirstVersion,\n });\n const groupByNamespace = groupBy(allItems, 'namespace');\n const itemsWithDefaultsByNamespace = Object.keys(groupByNamespace).reduce(\n (acc, namespace) => {\n return {\n ...acc,\n // there are defaults only in selectors by now, need to get them from item.data.tabs[].defaults for widgets\n // but make a decision about there's order first\n [namespace]: groupByNamespace[namespace].filter((item) => item.defaults),\n };\n },\n {} as Record<string, (ConfigItem | ConfigItemGroup)[]>,\n );\n\n return items.reduce((itemsParams: GetItemsParamsReturn, item: ConfigItem) => {\n const {id, namespace} = item;\n\n const getMergedParams = (params: StringParams, actionParams?: StringParams) =>\n mergeParamsWithAliases({aliases, namespace, params: params || {}, actionParams});\n\n const paramsOptions = {\n itemsStateAndParams,\n mapItemsIgnores,\n itemsWithDefaultsByNamespace,\n getMergedParams,\n defaultGlobalParams,\n globalParams,\n isFirstVersion,\n queueData,\n useStateAsInitial,\n };\n\n if (isItemWithGroup(item)) {\n const isGlobal = globalItemIds.has(item.id);\n const groupParams = item.data.group\n .filter((groupItem) => !isGlobal || visibleGlobalGroupSubItemIds.has(groupItem.id))\n .reduce((groupItemParams: Record<string, StringParams>, groupItem) => {\n groupItemParams[groupItem.id] = getItemParams({\n item: groupItem,\n parentItemId: item.id,\n ...paramsOptions,\n });\n return groupItemParams;\n }, {});\n\n return {...itemsParams, [id]: groupParams};\n }\n\n return {\n ...itemsParams,\n [id]: getItemParams({\n item,\n ...paramsOptions,\n }),\n };\n }, {});\n}\n\nexport function getItemsState({\n config,\n itemsStateAndParams,\n}: {\n config: Config;\n itemsStateAndParams: ItemsStateAndParams;\n}) {\n const configItems = getAllConfigItems(config);\n return configItems.reduce((acc: Record<string, ItemState>, {id}) => {\n acc[id] = (itemsStateAndParams as ItemsStateAndParamsBase)?.[id]?.state || {};\n return acc;\n }, {});\n}\n\nexport function getItemsStateAndParams({\n defaultGlobalParams = {},\n globalParams = {},\n config,\n itemsStateAndParams,\n plugins,\n}: GetItemsParamsArg): ItemsStateAndParams {\n const params = getItemsParams({\n defaultGlobalParams,\n globalParams,\n config,\n itemsStateAndParams,\n plugins,\n });\n const state = getItemsState({config, itemsStateAndParams});\n const uniqIds = new Set([...Object.keys(params), ...Object.keys(state)]);\n\n const result: ItemsStateAndParams = Array.from(uniqIds).reduce(\n (acc: ItemsStateAndParams, id) => {\n const data = {} as ItemStateAndParams;\n if (id in params) {\n data.params = params[id];\n }\n if (id in state) {\n data.state = state[id];\n }\n return {\n ...acc,\n [id]: data,\n };\n },\n {},\n );\n const version = getCurrentVersion(itemsStateAndParams);\n if (version === 1) {\n return result;\n }\n const meta = {\n [META_KEY]: itemsStateAndParams[META_KEY] as StateAndParamsMetaData,\n };\n return {\n ...meta,\n ...result,\n };\n}\n"]}
|
|
1
|
+
{"version":3,"file":"state-and-params.js","sourceRoot":"../../../../src","sources":["shared/modules/state-and-params.ts"],"names":[],"mappings":"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","sourcesContent":["import groupBy from 'lodash/groupBy';\n\nimport {META_KEY} from '../constants';\nimport {\n Config,\n ConfigItem,\n ConfigItemDataWithTabs,\n ConfigItemGroup,\n GlobalParams,\n ItemState,\n ItemStateAndParams,\n ItemsStateAndParams,\n ItemsStateAndParamsBase,\n PluginBase,\n StateAndParamsMetaData,\n StringParams,\n} from '../types';\n\nimport {\n FormedQueueData,\n formQueueData,\n getAllConfigItems,\n getCurrentVersion,\n getMapItemsIgnores,\n hasActionParam,\n isGlobalGroupItemVisible,\n isItemWithGroup,\n isItemWithTabs,\n mergeParamsWithAliases,\n pickActionParamsFromParams,\n pickExceptActionParamsFromParams,\n prerenderItems,\n resolveItemInnerId,\n} from './helpers';\n\nexport interface GetItemsParamsArg {\n defaultGlobalParams: GlobalParams;\n globalParams: GlobalParams;\n config: Config;\n itemsStateAndParams: ItemsStateAndParams;\n plugins: PluginBase[];\n useStateAsInitial?: boolean;\n}\n\ntype GetItemsParamsReturn = Record<string, StringParams | Record<string, StringParams>>;\n\nconst getParamsFromStateAndParams = ({\n itemsStateAndParams,\n parentItemId,\n item,\n}: {\n item: ConfigItem | ConfigItemGroup;\n itemsStateAndParams: ItemsStateAndParams;\n parentItemId?: string;\n}) => {\n const widgetId = parentItemId || item.id;\n\n if (!(widgetId in itemsStateAndParams)) {\n return {};\n }\n\n const stateAndParams = itemsStateAndParams as ItemsStateAndParamsBase;\n const itemParams = parentItemId\n ? Object.assign(\n {},\n (stateAndParams[widgetId].params as Record<string, StringParams>)[item.id],\n )\n : Object.assign({}, stateAndParams[widgetId].params as StringParams);\n\n return itemParams;\n};\n\nfunction getItemParams({\n item,\n itemsStateAndParams,\n mapItemsIgnores,\n itemsWithDefaultsByNamespace,\n getMergedParams,\n defaultGlobalParams,\n globalParams,\n isFirstVersion,\n queueData,\n parentItemId,\n useStateAsInitial,\n}: {\n item: ConfigItem | ConfigItemGroup;\n itemsStateAndParams: ItemsStateAndParams;\n mapItemsIgnores: Record<string, string[]>;\n itemsWithDefaultsByNamespace: Record<string, (ConfigItem | ConfigItemGroup)[]>;\n getMergedParams: (params: StringParams, actionParams?: StringParams) => StringParams;\n defaultGlobalParams: StringParams;\n globalParams: GlobalParams;\n isFirstVersion: boolean;\n queueData: FormedQueueData[];\n parentItemId?: string;\n useStateAsInitial?: boolean;\n}) {\n const {id, namespace} = item;\n\n let defaultWidgetParams: StringParams | Record<string, StringParams> = {};\n if (isItemWithTabs(item)) {\n const currentWidgetTabId = resolveItemInnerId({item, itemsStateAndParams});\n const itemTabs: ConfigItemDataWithTabs['tabs'] = item.data.tabs;\n defaultWidgetParams =\n itemTabs.find((tabItem) => tabItem?.id === currentWidgetTabId)?.params || {};\n } else {\n defaultWidgetParams = item.defaults || {};\n }\n\n const itemIgnores = mapItemsIgnores[id];\n\n const affectingItemsWithDefaults = itemsWithDefaultsByNamespace[namespace].filter(\n (itemWithDefaults) => !itemIgnores.includes(itemWithDefaults.id),\n );\n\n let itemParams: StringParams = Object.assign(\n {},\n getMergedParams(defaultGlobalParams),\n // default parameters to begin with\n affectingItemsWithDefaults.reduceRight((defaultParams: StringParams, itemWithDefaults) => {\n return {\n ...defaultParams,\n ...getMergedParams(itemWithDefaults.defaults || {}),\n };\n }, {}),\n getMergedParams(globalParams),\n useStateAsInitial\n ? getParamsFromStateAndParams({parentItemId, item, itemsStateAndParams})\n : {},\n );\n\n if (isFirstVersion) {\n itemParams = Object.assign(\n itemParams,\n (itemsStateAndParams as ItemsStateAndParamsBase)?.[id]?.params || {},\n );\n } else {\n // params according to queue of its applying\n let queueDataItemsParams: StringParams = {};\n for (const data of queueData) {\n if (data.namespace !== namespace || itemIgnores.includes(data.id)) {\n continue;\n }\n\n let actionParams;\n let params = data.params;\n const needAliasesForActionParams = data.id !== id && hasActionParam(data.params);\n if (needAliasesForActionParams) {\n actionParams = pickActionParamsFromParams(data.params);\n params = pickExceptActionParamsFromParams(data.params);\n }\n\n const mergedParams = getMergedParams(params, actionParams);\n\n queueDataItemsParams = {\n ...queueDataItemsParams,\n ...mergedParams,\n };\n }\n\n itemParams = Object.assign(itemParams, queueDataItemsParams);\n }\n\n return {...defaultWidgetParams, ...itemParams};\n}\n\nexport function getItemsParams({\n defaultGlobalParams = {},\n globalParams = {},\n config,\n itemsStateAndParams,\n plugins,\n useStateAsInitial,\n}: GetItemsParamsArg): GetItemsParamsReturn {\n const configItems = getAllConfigItems(config);\n const {aliases, connections} = config;\n const items = prerenderItems({\n items: configItems,\n plugins,\n });\n const isFirstVersion = getCurrentVersion(itemsStateAndParams) === 1;\n\n const globalItemIds = new Set((config.globalItems || []).map((item) => item.id));\n const visibleGlobalGroupSubItemIds = new Set<string>();\n\n const allItems = items.reduce((paramsItems: (ConfigItem | ConfigItemGroup)[], item) => {\n if (isItemWithGroup(item)) {\n const isGlobal = globalItemIds.has(item.id);\n\n item.data.group.forEach((groupItem) => {\n if (isGlobal && !isGlobalGroupItemVisible(groupItem, item, config.id)) {\n return;\n }\n\n paramsItems.push(groupItem);\n\n if (isGlobal) {\n visibleGlobalGroupSubItemIds.add(groupItem.id);\n }\n });\n\n return paramsItems;\n }\n\n paramsItems.push(item);\n return paramsItems;\n }, []);\n\n const queueData: FormedQueueData[] = isFirstVersion\n ? []\n : formQueueData({items, itemsStateAndParams});\n\n // to consider other kind types in future (not only ignore)\n const mapItemsIgnores = getMapItemsIgnores({\n items: allItems,\n ignores: connections.filter(({kind}) => kind === 'ignore'),\n itemsStateAndParams,\n isFirstVersion,\n });\n const groupByNamespace = groupBy(allItems, 'namespace');\n const itemsWithDefaultsByNamespace = Object.keys(groupByNamespace).reduce(\n (acc, namespace) => {\n return {\n ...acc,\n // there are defaults only in selectors by now, need to get them from item.data.tabs[].defaults for widgets\n // but make a decision about there's order first\n [namespace]: groupByNamespace[namespace].filter((item) => item.defaults),\n };\n },\n {} as Record<string, (ConfigItem | ConfigItemGroup)[]>,\n );\n\n const itemsParams: GetItemsParamsReturn = {};\n for (const item of items) {\n const {id, namespace} = item;\n\n const getMergedParams = (params: StringParams, actionParams?: StringParams) =>\n mergeParamsWithAliases({aliases, namespace, params: params || {}, actionParams});\n\n const paramsOptions = {\n itemsStateAndParams,\n mapItemsIgnores,\n itemsWithDefaultsByNamespace,\n getMergedParams,\n defaultGlobalParams,\n globalParams,\n isFirstVersion,\n queueData,\n useStateAsInitial,\n };\n\n if (isItemWithGroup(item)) {\n const isGlobal = globalItemIds.has(item.id);\n const groupParams = item.data.group\n .filter((groupItem) => !isGlobal || visibleGlobalGroupSubItemIds.has(groupItem.id))\n .reduce((groupItemParams: Record<string, StringParams>, groupItem) => {\n groupItemParams[groupItem.id] = getItemParams({\n item: groupItem,\n parentItemId: item.id,\n ...paramsOptions,\n });\n return groupItemParams;\n }, {});\n\n itemsParams[id] = groupParams;\n continue;\n }\n\n itemsParams[id] = getItemParams({\n item,\n ...paramsOptions,\n });\n }\n return itemsParams;\n}\n\nexport function getItemsState({\n config,\n itemsStateAndParams,\n}: {\n config: Config;\n itemsStateAndParams: ItemsStateAndParams;\n}) {\n const configItems = getAllConfigItems(config);\n return configItems.reduce((acc: Record<string, ItemState>, {id}) => {\n acc[id] = (itemsStateAndParams as ItemsStateAndParamsBase)?.[id]?.state || {};\n return acc;\n }, {});\n}\n\nexport function getItemsStateAndParams({\n defaultGlobalParams = {},\n globalParams = {},\n config,\n itemsStateAndParams,\n plugins,\n}: GetItemsParamsArg): ItemsStateAndParams {\n const params = getItemsParams({\n defaultGlobalParams,\n globalParams,\n config,\n itemsStateAndParams,\n plugins,\n });\n const state = getItemsState({config, itemsStateAndParams});\n const uniqIds = new Set([...Object.keys(params), ...Object.keys(state)]);\n\n const result: ItemsStateAndParamsBase = {};\n for (const id of uniqIds) {\n const data = {} as ItemStateAndParams;\n if (id in params) {\n data.params = params[id];\n }\n if (id in state) {\n data.state = state[id];\n }\n result[id] = data;\n }\n const version = getCurrentVersion(itemsStateAndParams);\n if (version === 1) {\n return result;\n }\n const meta = {\n [META_KEY]: itemsStateAndParams[META_KEY] as StateAndParamsMetaData,\n };\n return {\n ...meta,\n ...result,\n };\n}\n"]}
|
package/build/esm/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":"10.4.
|
|
1
|
+
{"version":"10.4.1","type":"module","sideEffects":["*.scss","*.css"]}
|
|
@@ -120,27 +120,30 @@ export function resolveItemInnerId({ item, itemsStateAndParams, }) {
|
|
|
120
120
|
// Тут мы нормализуем к виду Record<itemId: ignoredItemId[]>
|
|
121
121
|
export function getMapItemsIgnores({ items, ignores, itemsStateAndParams, isFirstVersion, }) {
|
|
122
122
|
// Record<itemId, innerId (tabId | itemId)>
|
|
123
|
-
const mapIds =
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
123
|
+
const mapIds = {};
|
|
124
|
+
for (const item of items) {
|
|
125
|
+
mapIds[item.id] = isItemWithTabs(item)
|
|
126
|
+
? resolveItemInnerId({ item, itemsStateAndParams })
|
|
127
|
+
: item.id;
|
|
128
|
+
}
|
|
128
129
|
// Record<innerId (tabId | itemId), itemId>
|
|
129
130
|
const invertedMapIds = invert(mapIds);
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
131
|
+
const itemsIgnores = {};
|
|
132
|
+
for (const item of items) {
|
|
133
|
+
itemsIgnores[item.id] = ignores
|
|
134
|
+
.filter(({ from, to }) => {
|
|
135
|
+
if (isFirstVersion) {
|
|
136
|
+
// В первой версии был баг - если есть игнор на один таб, то весь виджет игнорит селектор.
|
|
137
|
+
// Повторяем это неправильное поведение,
|
|
138
|
+
// иначе будут прилетать дефолты селекта в табы, которые не игнорят.
|
|
139
|
+
const fromInTabs = isItemWithTabs(item) && item.data.tabs.some(({ id }) => id === from);
|
|
140
|
+
return (from === item.id || fromInTabs) && invertedMapIds[to];
|
|
141
|
+
}
|
|
142
|
+
return from === mapIds[item.id] && invertedMapIds[to];
|
|
143
|
+
})
|
|
144
|
+
.map(({ to }) => invertedMapIds[to]);
|
|
145
|
+
}
|
|
146
|
+
return itemsIgnores;
|
|
144
147
|
}
|
|
145
148
|
export function mergeParamsWithAliases({ aliases, namespace, params, actionParams, }) {
|
|
146
149
|
const aliasesByNamespace = get(aliases, [namespace], []);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"../../../../src","sources":["shared/modules/helpers.ts"],"names":[],"mappings":"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","sourcesContent":["import get from 'lodash/get';\nimport invert from 'lodash/invert';\nimport isEmpty from 'lodash/isEmpty';\nimport keyBy from 'lodash/keyBy';\nimport pick from 'lodash/pick';\n\nimport {ACTION_PARAM_PREFIX, CURRENT_VERSION, META_KEY} from '../constants';\nimport {\n Config,\n ConfigAliases,\n ConfigConnection,\n ConfigItem,\n ConfigItemGroup,\n ConfigItemWithGroup,\n ConfigItemWithTabs,\n ItemStateAndParams,\n ItemsStateAndParams,\n ItemsStateAndParamsBase,\n PluginBase,\n QueueItem,\n StateAndParamsMetaData,\n StringParams,\n} from '../types';\n\nfunction getNormalizedPlugins(plugins: PluginBase[]) {\n return keyBy(plugins, 'type');\n}\n\nexport function prerenderItems({\n items,\n plugins,\n}: {\n items: ConfigItem[];\n plugins: PluginBase[];\n}): ConfigItem[] {\n const normalizedPlugins = getNormalizedPlugins(plugins);\n return items.map((item) => {\n const {type} = item;\n const plugin = normalizedPlugins[type];\n return typeof plugin.prerenderMiddleware === 'function'\n ? plugin.prerenderMiddleware(item)\n : item;\n });\n}\n\nexport function getItemsStateAndParamsMeta(itemsStateAndParams: ItemsStateAndParams) {\n const meta = itemsStateAndParams?.[META_KEY] as StateAndParamsMetaData | undefined;\n return meta;\n}\n\nexport function getCurrentVersion(itemsStateAndParams: ItemsStateAndParams): number {\n if (isEmpty(itemsStateAndParams)) {\n return CURRENT_VERSION;\n }\n const meta = getItemsStateAndParamsMeta(itemsStateAndParams);\n if (!meta) {\n const withParams = Object.keys(itemsStateAndParams).some((id) => {\n return Boolean((itemsStateAndParams as ItemsStateAndParamsBase)[id].params);\n });\n if (withParams) {\n return 1;\n }\n return CURRENT_VERSION;\n }\n return meta.version;\n}\n\nfunction isConfigData(\n item: Pick<ConfigItem, 'data'> | ConfigItemGroup,\n): item is Pick<ConfigItem, 'data'> {\n return 'data' in item && 'type' in item;\n}\n\nexport function isItemWithTabs(\n item: Pick<ConfigItem, 'data'> | ConfigItemGroup,\n): item is Pick<ConfigItemWithTabs, 'data'> {\n return isConfigData(item) && Array.isArray(item?.data?.tabs);\n}\n\nexport function isItemWithGroup(\n item: Pick<ConfigItem, 'data'>,\n): item is Pick<ConfigItemWithGroup, 'data'> {\n return Array.isArray(item?.data?.group);\n}\n\nexport type FormedQueueData = {\n id: string;\n namespace: string;\n params: StringParams;\n};\n\n// Array of parameters from widgets according to queue\nexport function formQueueData({\n items,\n itemsStateAndParams,\n}: {\n items: ConfigItem[];\n itemsStateAndParams: ItemsStateAndParams;\n}): FormedQueueData[] {\n const queue = getItemsStateAndParamsMeta(itemsStateAndParams)?.queue || [];\n const keyById = keyBy(items, 'id');\n return queue.reduce((queueArray: FormedQueueData[], queueItem: QueueItem) => {\n const {id: queueId, tabId, groupItemId} = queueItem;\n const item = keyById[queueId];\n const isGroup = isItemWithGroup(item);\n if (!item || (isGroup && !groupItemId)) {\n return queueArray;\n }\n\n if (isGroup && groupItemId) {\n const itemQueueParams: Record<string, StringParams> = get(\n itemsStateAndParams,\n [item.id, 'params'],\n {},\n );\n\n const groupItem = item.data.group.find(({id}) => id === groupItemId);\n if (!groupItem) {\n return queueArray;\n }\n const groupItemQueueParams = itemQueueParams[groupItemId];\n const filteredParamsByDefaults = pick(\n groupItemQueueParams,\n Object.keys(groupItem.defaults || {}),\n );\n\n /**\n * merging filtered params and filtered actionParams with prefixes\n */\n const params = {\n ...filteredParamsByDefaults,\n ...(pickActionParamsFromParams(groupItemQueueParams, true) || {}),\n };\n\n queueArray.push({\n id: groupItem.id,\n namespace: groupItem.namespace,\n params,\n });\n\n return queueArray;\n }\n\n const itemQueueParams: StringParams = get(itemsStateAndParams, [item.id, 'params'], {});\n\n let itemDefaultParams: StringParams;\n if (isItemWithTabs(item)) {\n if (!tabId || resolveItemInnerId({item, itemsStateAndParams}) !== tabId) {\n return queueArray;\n }\n itemDefaultParams =\n item.data.tabs.find((tabData) => tabData.id === tabId)?.params || {};\n } else {\n itemDefaultParams = item.defaults || {};\n }\n\n const filteredParamsByDefaults = pick(itemQueueParams, Object.keys(itemDefaultParams));\n\n /**\n * merging filtered params and filtered actionParams with prefixes\n */\n const params = {\n ...filteredParamsByDefaults,\n ...(pickActionParamsFromParams(itemQueueParams, true) || {}),\n };\n\n queueArray.push({\n id: item.id,\n namespace: item.namespace,\n params,\n });\n\n return queueArray;\n }, []);\n}\n\nexport function resolveItemInnerId({\n item,\n itemsStateAndParams,\n}: {\n item: Pick<ConfigItemWithTabs, 'data' | 'id'>;\n itemsStateAndParams?: ItemsStateAndParams;\n}): string {\n const {id} = item;\n const stateTabId: string | undefined = (itemsStateAndParams as ItemsStateAndParamsBase)?.[id]\n ?.state?.tabId;\n\n const {tabs} = (item as ConfigItemWithTabs).data;\n if (stateTabId && tabs.some((tab) => tab.id === stateTabId)) {\n return stateTabId;\n }\n const indexIsDefault = tabs.findIndex(({isDefault}) => isDefault);\n return indexIsDefault === -1 ? tabs[0].id : tabs[indexIsDefault].id;\n}\n\n// В config.connections в from/to может быть как id item'a (item.id), так и id таба (item.data.tabs[].id)\n// Тут мы нормализуем к виду Record<itemId: ignoredItemId[]>\nexport function getMapItemsIgnores({\n items,\n ignores,\n itemsStateAndParams,\n isFirstVersion,\n}: {\n items: (ConfigItem | ConfigItemGroup)[];\n ignores: ConfigConnection[];\n itemsStateAndParams: ItemsStateAndParams;\n isFirstVersion: boolean;\n}): Record<string, string[]> {\n // Record<itemId, innerId (tabId | itemId)>\n const mapIds = items.reduce((acc: Record<string, string>, item) => {\n return {\n ...acc,\n [item.id]: isItemWithTabs(item)\n ? resolveItemInnerId({item, itemsStateAndParams})\n : item.id,\n };\n }, {});\n // Record<innerId (tabId | itemId), itemId>\n const invertedMapIds = invert(mapIds);\n return items.reduce((acc: Record<string, string[]>, item) => {\n return {\n ...acc,\n [item.id]: ignores\n .filter(({from, to}) => {\n if (isFirstVersion) {\n // В первой версии был баг - если есть игнор на один таб, то весь виджет игнорит селектор.\n // Повторяем это неправильное поведение,\n // иначе будут прилетать дефолты селекта в табы, которые не игнорят.\n const fromInTabs =\n isItemWithTabs(item) && item.data.tabs.some(({id}) => id === from);\n return (from === item.id || fromInTabs) && invertedMapIds[to];\n }\n return from === mapIds[item.id] && invertedMapIds[to];\n })\n .map(({to}) => invertedMapIds[to]),\n };\n }, {});\n}\n\nexport function mergeParamsWithAliases({\n aliases,\n namespace,\n params,\n actionParams,\n}: {\n aliases: ConfigAliases;\n namespace: string;\n params: StringParams;\n actionParams?: StringParams;\n}): StringParams {\n const aliasesByNamespace = get(aliases, [namespace], []) as string[][];\n const items = {\n ...(params || {}),\n ...(actionParams || {}),\n };\n return Object.keys(items).reduce((matchedParams: StringParams, paramKey) => {\n const paramValue = items[paramKey];\n const collectAliasesParamsKeys = aliasesByNamespace.reduce(\n (collect, group) => {\n return group.includes(paramKey) ? collect.concat(group) : collect;\n },\n [paramKey],\n );\n return {\n ...matchedParams,\n ...collectAliasesParamsKeys.reduce((acc: StringParams, matchedKey) => {\n return {...acc, [matchedKey]: paramValue};\n }, {}),\n };\n }, {});\n}\n\nexport function getInitialItemsStateAndParamsMeta(): StateAndParamsMetaData {\n return {\n queue: [],\n version: CURRENT_VERSION,\n };\n}\n\ninterface ChangeQueueArg {\n id: string;\n tabId?: string;\n groupItemId?: string;\n config: Config;\n itemsStateAndParams: ItemsStateAndParams;\n}\n\ninterface ChangeQueueGroupArg {\n id: string;\n groupItemIds: string[];\n config: Config;\n itemsStateAndParams: ItemsStateAndParams;\n}\n\nfunction getActualItemsIds(items: ConfigItem[]) {\n return items.reduce((ids: string[], item) => {\n if (isItemWithGroup(item)) {\n item.data.group.forEach((groupItem) => {\n ids.push(groupItem.id);\n });\n }\n\n ids.push(item.id);\n return ids;\n }, []);\n}\n\nexport function addToQueue({\n id,\n tabId,\n config,\n itemsStateAndParams,\n}: ChangeQueueArg): StateAndParamsMetaData {\n const queueItem: QueueItem = {id};\n if (tabId) {\n queueItem.tabId = tabId;\n }\n const meta = getItemsStateAndParamsMeta(itemsStateAndParams);\n if (!meta) {\n return {queue: [queueItem], version: CURRENT_VERSION};\n }\n\n const configItems = getAllConfigItems(config);\n const actualIds = getActualItemsIds(configItems);\n const metaQueue = meta.queue || [];\n const notCurrent = (item: QueueItem) => {\n if (item.groupItemId) {\n return actualIds.includes(item.groupItemId);\n }\n return item.id !== id;\n };\n return {\n queue: metaQueue\n .filter((item) => actualIds.includes(item.id) && notCurrent(item))\n .concat(queueItem),\n version: meta.version || CURRENT_VERSION,\n };\n}\n\nexport function addGroupToQueue({\n id,\n groupItemIds,\n config,\n itemsStateAndParams,\n}: ChangeQueueGroupArg): StateAndParamsMetaData {\n const queueItems: QueueItem[] = groupItemIds.map((groupItemId) => ({\n id,\n groupItemId,\n }));\n const meta = getItemsStateAndParamsMeta(itemsStateAndParams);\n if (!meta) {\n return {queue: queueItems, version: CURRENT_VERSION};\n }\n const configItems = getAllConfigItems(config);\n const actualIds = getActualItemsIds(configItems);\n const metaQueue = meta.queue || [];\n const notCurrent = (item: QueueItem) => {\n if (item.groupItemId) {\n return actualIds.includes(item.groupItemId) && !groupItemIds.includes(item.groupItemId);\n }\n return true;\n };\n return {\n queue: metaQueue\n .filter((item) => actualIds.includes(item.id) && notCurrent(item))\n .concat(queueItems),\n version: meta.version || CURRENT_VERSION,\n };\n}\n\nexport function deleteFromQueue(data: ChangeQueueArg): StateAndParamsMetaData {\n const meta = addToQueue(data);\n return {\n ...meta,\n queue: meta.queue.slice(0, -1),\n };\n}\n\n/**\n * public function for getting only actionParams from object (all fields with keys that contains prefix)\n * @param params - object for pick fields\n * @param returnWithPrefix - format of returning actionParams fields (with actionParams prefix or without them)\n *\n * ex1: pickActionParamsFromParams({City: 'NY', _ap_Year: '2023'}, true) returns {_ap_Year: '2023'}\n * ex2: pickActionParamsFromParams({City: 'NY', _ap_Year: '2023'}) returns {Year: '2023'}\n */\nexport function pickActionParamsFromParams(\n params: ItemStateAndParams['params'],\n returnWithPrefix?: boolean,\n) {\n if (!params || isEmpty(params)) {\n return {};\n }\n\n const actionParams: StringParams = {};\n for (const [key, val] of Object.entries(params)) {\n // starts with actionParams prefix (from'_ap_')\n if (key.startsWith(ACTION_PARAM_PREFIX)) {\n const paramName = returnWithPrefix ? key : key.slice(ACTION_PARAM_PREFIX.length);\n actionParams[paramName] = val;\n }\n }\n return actionParams;\n}\n\n/**\n * public function for getting params from object without actionParams\n * @param params\n */\nexport function pickExceptActionParamsFromParams(params: ItemStateAndParams['params']) {\n if (!params || isEmpty(params)) {\n return {};\n }\n\n const onlyParams: StringParams = {};\n for (const [key, val] of Object.entries(params)) {\n if (!key.startsWith(ACTION_PARAM_PREFIX)) {\n onlyParams[key] = val;\n }\n }\n return onlyParams;\n}\n\n/**\n * public function for transforming object to actionParams format\n * @param params\n */\nexport function transformParamsToActionParams(params: ItemStateAndParams['params']) {\n if (!params || isEmpty(params)) {\n return {};\n }\n\n const actionParams: StringParams = {};\n for (const [key, val] of Object.entries(params)) {\n actionParams[`${ACTION_PARAM_PREFIX}${key}`] = val;\n }\n return actionParams;\n}\n\n/**\n * check if object contains actionParams\n * @param conf\n */\nexport function hasActionParam(conf?: StringParams | Record<string, StringParams>): boolean {\n return Object.keys(conf || {}).some((key) => {\n if (conf && typeof conf[key] === 'object' && !Array.isArray(conf[key])) {\n return Object.keys(conf[key]).some((subkey) => subkey.startsWith(ACTION_PARAM_PREFIX));\n }\n return key.startsWith(ACTION_PARAM_PREFIX);\n });\n}\n\n/**\n * check if ItemStateAndParams object has actionParams in params or state field\n * @param stateAndParams\n */\nexport function hasActionParams(stateAndParams: ItemStateAndParams) {\n if (!stateAndParams || isEmpty(stateAndParams)) {\n return false;\n }\n\n return hasActionParam(stateAndParams.params);\n}\n\n// Combines regular items and global items from config into a single array\n// For global usage across the project\nexport function getAllConfigItems(config: Config): ConfigItem[] {\n return [...config.items, ...(config.globalItems || [])];\n}\n\nexport function isGlobalGroupItemVisible(\n groupItem: ConfigItemGroup,\n parentItem: ConfigItem,\n currentTabId?: string,\n): boolean {\n if (!currentTabId) {\n return true;\n }\n\n const {impactType, impactTabsIds} = groupItem;\n\n if (impactType === 'allTabs') {\n return true;\n }\n\n if (impactType === 'asGroup' || !impactType) {\n const {impactType: parentImpactType, impactTabsIds: parentImpactTabsIds} = parentItem.data;\n\n if ((!parentImpactType && !parentImpactTabsIds) || parentImpactType === 'allTabs') {\n return true;\n }\n\n if (parentImpactTabsIds) {\n return parentImpactTabsIds.includes(currentTabId);\n }\n\n return false;\n }\n\n if (impactTabsIds) {\n return impactTabsIds.includes(currentTabId);\n }\n\n return false;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"../../../../src","sources":["shared/modules/helpers.ts"],"names":[],"mappings":"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","sourcesContent":["import get from 'lodash/get';\nimport invert from 'lodash/invert';\nimport isEmpty from 'lodash/isEmpty';\nimport keyBy from 'lodash/keyBy';\nimport pick from 'lodash/pick';\n\nimport {ACTION_PARAM_PREFIX, CURRENT_VERSION, META_KEY} from '../constants';\nimport {\n Config,\n ConfigAliases,\n ConfigConnection,\n ConfigItem,\n ConfigItemGroup,\n ConfigItemWithGroup,\n ConfigItemWithTabs,\n ItemStateAndParams,\n ItemsStateAndParams,\n ItemsStateAndParamsBase,\n PluginBase,\n QueueItem,\n StateAndParamsMetaData,\n StringParams,\n} from '../types';\n\nfunction getNormalizedPlugins(plugins: PluginBase[]) {\n return keyBy(plugins, 'type');\n}\n\nexport function prerenderItems({\n items,\n plugins,\n}: {\n items: ConfigItem[];\n plugins: PluginBase[];\n}): ConfigItem[] {\n const normalizedPlugins = getNormalizedPlugins(plugins);\n return items.map((item) => {\n const {type} = item;\n const plugin = normalizedPlugins[type];\n return typeof plugin.prerenderMiddleware === 'function'\n ? plugin.prerenderMiddleware(item)\n : item;\n });\n}\n\nexport function getItemsStateAndParamsMeta(itemsStateAndParams: ItemsStateAndParams) {\n const meta = itemsStateAndParams?.[META_KEY] as StateAndParamsMetaData | undefined;\n return meta;\n}\n\nexport function getCurrentVersion(itemsStateAndParams: ItemsStateAndParams): number {\n if (isEmpty(itemsStateAndParams)) {\n return CURRENT_VERSION;\n }\n const meta = getItemsStateAndParamsMeta(itemsStateAndParams);\n if (!meta) {\n const withParams = Object.keys(itemsStateAndParams).some((id) => {\n return Boolean((itemsStateAndParams as ItemsStateAndParamsBase)[id].params);\n });\n if (withParams) {\n return 1;\n }\n return CURRENT_VERSION;\n }\n return meta.version;\n}\n\nfunction isConfigData(\n item: Pick<ConfigItem, 'data'> | ConfigItemGroup,\n): item is Pick<ConfigItem, 'data'> {\n return 'data' in item && 'type' in item;\n}\n\nexport function isItemWithTabs(\n item: Pick<ConfigItem, 'data'> | ConfigItemGroup,\n): item is Pick<ConfigItemWithTabs, 'data'> {\n return isConfigData(item) && Array.isArray(item?.data?.tabs);\n}\n\nexport function isItemWithGroup(\n item: Pick<ConfigItem, 'data'>,\n): item is Pick<ConfigItemWithGroup, 'data'> {\n return Array.isArray(item?.data?.group);\n}\n\nexport type FormedQueueData = {\n id: string;\n namespace: string;\n params: StringParams;\n};\n\n// Array of parameters from widgets according to queue\nexport function formQueueData({\n items,\n itemsStateAndParams,\n}: {\n items: ConfigItem[];\n itemsStateAndParams: ItemsStateAndParams;\n}): FormedQueueData[] {\n const queue = getItemsStateAndParamsMeta(itemsStateAndParams)?.queue || [];\n const keyById = keyBy(items, 'id');\n return queue.reduce((queueArray: FormedQueueData[], queueItem: QueueItem) => {\n const {id: queueId, tabId, groupItemId} = queueItem;\n const item = keyById[queueId];\n const isGroup = isItemWithGroup(item);\n if (!item || (isGroup && !groupItemId)) {\n return queueArray;\n }\n\n if (isGroup && groupItemId) {\n const itemQueueParams: Record<string, StringParams> = get(\n itemsStateAndParams,\n [item.id, 'params'],\n {},\n );\n\n const groupItem = item.data.group.find(({id}) => id === groupItemId);\n if (!groupItem) {\n return queueArray;\n }\n const groupItemQueueParams = itemQueueParams[groupItemId];\n const filteredParamsByDefaults = pick(\n groupItemQueueParams,\n Object.keys(groupItem.defaults || {}),\n );\n\n /**\n * merging filtered params and filtered actionParams with prefixes\n */\n const params = {\n ...filteredParamsByDefaults,\n ...(pickActionParamsFromParams(groupItemQueueParams, true) || {}),\n };\n\n queueArray.push({\n id: groupItem.id,\n namespace: groupItem.namespace,\n params,\n });\n\n return queueArray;\n }\n\n const itemQueueParams: StringParams = get(itemsStateAndParams, [item.id, 'params'], {});\n\n let itemDefaultParams: StringParams;\n if (isItemWithTabs(item)) {\n if (!tabId || resolveItemInnerId({item, itemsStateAndParams}) !== tabId) {\n return queueArray;\n }\n itemDefaultParams =\n item.data.tabs.find((tabData) => tabData.id === tabId)?.params || {};\n } else {\n itemDefaultParams = item.defaults || {};\n }\n\n const filteredParamsByDefaults = pick(itemQueueParams, Object.keys(itemDefaultParams));\n\n /**\n * merging filtered params and filtered actionParams with prefixes\n */\n const params = {\n ...filteredParamsByDefaults,\n ...(pickActionParamsFromParams(itemQueueParams, true) || {}),\n };\n\n queueArray.push({\n id: item.id,\n namespace: item.namespace,\n params,\n });\n\n return queueArray;\n }, []);\n}\n\nexport function resolveItemInnerId({\n item,\n itemsStateAndParams,\n}: {\n item: Pick<ConfigItemWithTabs, 'data' | 'id'>;\n itemsStateAndParams?: ItemsStateAndParams;\n}): string {\n const {id} = item;\n const stateTabId: string | undefined = (itemsStateAndParams as ItemsStateAndParamsBase)?.[id]\n ?.state?.tabId;\n\n const {tabs} = (item as ConfigItemWithTabs).data;\n if (stateTabId && tabs.some((tab) => tab.id === stateTabId)) {\n return stateTabId;\n }\n const indexIsDefault = tabs.findIndex(({isDefault}) => isDefault);\n return indexIsDefault === -1 ? tabs[0].id : tabs[indexIsDefault].id;\n}\n\n// В config.connections в from/to может быть как id item'a (item.id), так и id таба (item.data.tabs[].id)\n// Тут мы нормализуем к виду Record<itemId: ignoredItemId[]>\nexport function getMapItemsIgnores({\n items,\n ignores,\n itemsStateAndParams,\n isFirstVersion,\n}: {\n items: (ConfigItem | ConfigItemGroup)[];\n ignores: ConfigConnection[];\n itemsStateAndParams: ItemsStateAndParams;\n isFirstVersion: boolean;\n}): Record<string, string[]> {\n // Record<itemId, innerId (tabId | itemId)>\n const mapIds: Record<string, string> = {};\n for (const item of items) {\n mapIds[item.id] = isItemWithTabs(item)\n ? resolveItemInnerId({item, itemsStateAndParams})\n : item.id;\n }\n // Record<innerId (tabId | itemId), itemId>\n const invertedMapIds = invert(mapIds);\n\n const itemsIgnores: Record<string, string[]> = {};\n for (const item of items) {\n itemsIgnores[item.id] = ignores\n .filter(({from, to}) => {\n if (isFirstVersion) {\n // В первой версии был баг - если есть игнор на один таб, то весь виджет игнорит селектор.\n // Повторяем это неправильное поведение,\n // иначе будут прилетать дефолты селекта в табы, которые не игнорят.\n const fromInTabs =\n isItemWithTabs(item) && item.data.tabs.some(({id}) => id === from);\n return (from === item.id || fromInTabs) && invertedMapIds[to];\n }\n return from === mapIds[item.id] && invertedMapIds[to];\n })\n .map(({to}) => invertedMapIds[to]);\n }\n return itemsIgnores;\n}\n\nexport function mergeParamsWithAliases({\n aliases,\n namespace,\n params,\n actionParams,\n}: {\n aliases: ConfigAliases;\n namespace: string;\n params: StringParams;\n actionParams?: StringParams;\n}): StringParams {\n const aliasesByNamespace = get(aliases, [namespace], []) as string[][];\n const items = {\n ...(params || {}),\n ...(actionParams || {}),\n };\n return Object.keys(items).reduce((matchedParams: StringParams, paramKey) => {\n const paramValue = items[paramKey];\n const collectAliasesParamsKeys = aliasesByNamespace.reduce(\n (collect, group) => {\n return group.includes(paramKey) ? collect.concat(group) : collect;\n },\n [paramKey],\n );\n return {\n ...matchedParams,\n ...collectAliasesParamsKeys.reduce((acc: StringParams, matchedKey) => {\n return {...acc, [matchedKey]: paramValue};\n }, {}),\n };\n }, {});\n}\n\nexport function getInitialItemsStateAndParamsMeta(): StateAndParamsMetaData {\n return {\n queue: [],\n version: CURRENT_VERSION,\n };\n}\n\ninterface ChangeQueueArg {\n id: string;\n tabId?: string;\n groupItemId?: string;\n config: Config;\n itemsStateAndParams: ItemsStateAndParams;\n}\n\ninterface ChangeQueueGroupArg {\n id: string;\n groupItemIds: string[];\n config: Config;\n itemsStateAndParams: ItemsStateAndParams;\n}\n\nfunction getActualItemsIds(items: ConfigItem[]) {\n return items.reduce((ids: string[], item) => {\n if (isItemWithGroup(item)) {\n item.data.group.forEach((groupItem) => {\n ids.push(groupItem.id);\n });\n }\n\n ids.push(item.id);\n return ids;\n }, []);\n}\n\nexport function addToQueue({\n id,\n tabId,\n config,\n itemsStateAndParams,\n}: ChangeQueueArg): StateAndParamsMetaData {\n const queueItem: QueueItem = {id};\n if (tabId) {\n queueItem.tabId = tabId;\n }\n const meta = getItemsStateAndParamsMeta(itemsStateAndParams);\n if (!meta) {\n return {queue: [queueItem], version: CURRENT_VERSION};\n }\n\n const configItems = getAllConfigItems(config);\n const actualIds = getActualItemsIds(configItems);\n const metaQueue = meta.queue || [];\n const notCurrent = (item: QueueItem) => {\n if (item.groupItemId) {\n return actualIds.includes(item.groupItemId);\n }\n return item.id !== id;\n };\n return {\n queue: metaQueue\n .filter((item) => actualIds.includes(item.id) && notCurrent(item))\n .concat(queueItem),\n version: meta.version || CURRENT_VERSION,\n };\n}\n\nexport function addGroupToQueue({\n id,\n groupItemIds,\n config,\n itemsStateAndParams,\n}: ChangeQueueGroupArg): StateAndParamsMetaData {\n const queueItems: QueueItem[] = groupItemIds.map((groupItemId) => ({\n id,\n groupItemId,\n }));\n const meta = getItemsStateAndParamsMeta(itemsStateAndParams);\n if (!meta) {\n return {queue: queueItems, version: CURRENT_VERSION};\n }\n const configItems = getAllConfigItems(config);\n const actualIds = getActualItemsIds(configItems);\n const metaQueue = meta.queue || [];\n const notCurrent = (item: QueueItem) => {\n if (item.groupItemId) {\n return actualIds.includes(item.groupItemId) && !groupItemIds.includes(item.groupItemId);\n }\n return true;\n };\n return {\n queue: metaQueue\n .filter((item) => actualIds.includes(item.id) && notCurrent(item))\n .concat(queueItems),\n version: meta.version || CURRENT_VERSION,\n };\n}\n\nexport function deleteFromQueue(data: ChangeQueueArg): StateAndParamsMetaData {\n const meta = addToQueue(data);\n return {\n ...meta,\n queue: meta.queue.slice(0, -1),\n };\n}\n\n/**\n * public function for getting only actionParams from object (all fields with keys that contains prefix)\n * @param params - object for pick fields\n * @param returnWithPrefix - format of returning actionParams fields (with actionParams prefix or without them)\n *\n * ex1: pickActionParamsFromParams({City: 'NY', _ap_Year: '2023'}, true) returns {_ap_Year: '2023'}\n * ex2: pickActionParamsFromParams({City: 'NY', _ap_Year: '2023'}) returns {Year: '2023'}\n */\nexport function pickActionParamsFromParams(\n params: ItemStateAndParams['params'],\n returnWithPrefix?: boolean,\n) {\n if (!params || isEmpty(params)) {\n return {};\n }\n\n const actionParams: StringParams = {};\n for (const [key, val] of Object.entries(params)) {\n // starts with actionParams prefix (from'_ap_')\n if (key.startsWith(ACTION_PARAM_PREFIX)) {\n const paramName = returnWithPrefix ? key : key.slice(ACTION_PARAM_PREFIX.length);\n actionParams[paramName] = val;\n }\n }\n return actionParams;\n}\n\n/**\n * public function for getting params from object without actionParams\n * @param params\n */\nexport function pickExceptActionParamsFromParams(params: ItemStateAndParams['params']) {\n if (!params || isEmpty(params)) {\n return {};\n }\n\n const onlyParams: StringParams = {};\n for (const [key, val] of Object.entries(params)) {\n if (!key.startsWith(ACTION_PARAM_PREFIX)) {\n onlyParams[key] = val;\n }\n }\n return onlyParams;\n}\n\n/**\n * public function for transforming object to actionParams format\n * @param params\n */\nexport function transformParamsToActionParams(params: ItemStateAndParams['params']) {\n if (!params || isEmpty(params)) {\n return {};\n }\n\n const actionParams: StringParams = {};\n for (const [key, val] of Object.entries(params)) {\n actionParams[`${ACTION_PARAM_PREFIX}${key}`] = val;\n }\n return actionParams;\n}\n\n/**\n * check if object contains actionParams\n * @param conf\n */\nexport function hasActionParam(conf?: StringParams | Record<string, StringParams>): boolean {\n return Object.keys(conf || {}).some((key) => {\n if (conf && typeof conf[key] === 'object' && !Array.isArray(conf[key])) {\n return Object.keys(conf[key]).some((subkey) => subkey.startsWith(ACTION_PARAM_PREFIX));\n }\n return key.startsWith(ACTION_PARAM_PREFIX);\n });\n}\n\n/**\n * check if ItemStateAndParams object has actionParams in params or state field\n * @param stateAndParams\n */\nexport function hasActionParams(stateAndParams: ItemStateAndParams) {\n if (!stateAndParams || isEmpty(stateAndParams)) {\n return false;\n }\n\n return hasActionParam(stateAndParams.params);\n}\n\n// Combines regular items and global items from config into a single array\n// For global usage across the project\nexport function getAllConfigItems(config: Config): ConfigItem[] {\n return [...config.items, ...(config.globalItems || [])];\n}\n\nexport function isGlobalGroupItemVisible(\n groupItem: ConfigItemGroup,\n parentItem: ConfigItem,\n currentTabId?: string,\n): boolean {\n if (!currentTabId) {\n return true;\n }\n\n const {impactType, impactTabsIds} = groupItem;\n\n if (impactType === 'allTabs') {\n return true;\n }\n\n if (impactType === 'asGroup' || !impactType) {\n const {impactType: parentImpactType, impactTabsIds: parentImpactTabsIds} = parentItem.data;\n\n if ((!parentImpactType && !parentImpactTabsIds) || parentImpactType === 'allTabs') {\n return true;\n }\n\n if (parentImpactTabsIds) {\n return parentImpactTabsIds.includes(currentTabId);\n }\n\n return false;\n }\n\n if (impactTabsIds) {\n return impactTabsIds.includes(currentTabId);\n }\n\n return false;\n}\n"]}
|
|
@@ -102,7 +102,8 @@ export function getItemsParams({ defaultGlobalParams = {}, globalParams = {}, co
|
|
|
102
102
|
// but make a decision about there's order first
|
|
103
103
|
[namespace]: groupByNamespace[namespace].filter((item) => item.defaults) });
|
|
104
104
|
}, {});
|
|
105
|
-
|
|
105
|
+
const itemsParams = {};
|
|
106
|
+
for (const item of items) {
|
|
106
107
|
const { id, namespace } = item;
|
|
107
108
|
const getMergedParams = (params, actionParams) => mergeParamsWithAliases({ aliases, namespace, params: params || {}, actionParams });
|
|
108
109
|
const paramsOptions = {
|
|
@@ -124,10 +125,12 @@ export function getItemsParams({ defaultGlobalParams = {}, globalParams = {}, co
|
|
|
124
125
|
groupItemParams[groupItem.id] = getItemParams(Object.assign({ item: groupItem, parentItemId: item.id }, paramsOptions));
|
|
125
126
|
return groupItemParams;
|
|
126
127
|
}, {});
|
|
127
|
-
|
|
128
|
+
itemsParams[id] = groupParams;
|
|
129
|
+
continue;
|
|
128
130
|
}
|
|
129
|
-
|
|
130
|
-
}
|
|
131
|
+
itemsParams[id] = getItemParams(Object.assign({ item }, paramsOptions));
|
|
132
|
+
}
|
|
133
|
+
return itemsParams;
|
|
131
134
|
}
|
|
132
135
|
export function getItemsState({ config, itemsStateAndParams, }) {
|
|
133
136
|
const configItems = getAllConfigItems(config);
|
|
@@ -147,7 +150,8 @@ export function getItemsStateAndParams({ defaultGlobalParams = {}, globalParams
|
|
|
147
150
|
});
|
|
148
151
|
const state = getItemsState({ config, itemsStateAndParams });
|
|
149
152
|
const uniqIds = new Set([...Object.keys(params), ...Object.keys(state)]);
|
|
150
|
-
const result =
|
|
153
|
+
const result = {};
|
|
154
|
+
for (const id of uniqIds) {
|
|
151
155
|
const data = {};
|
|
152
156
|
if (id in params) {
|
|
153
157
|
data.params = params[id];
|
|
@@ -155,8 +159,8 @@ export function getItemsStateAndParams({ defaultGlobalParams = {}, globalParams
|
|
|
155
159
|
if (id in state) {
|
|
156
160
|
data.state = state[id];
|
|
157
161
|
}
|
|
158
|
-
|
|
159
|
-
}
|
|
162
|
+
result[id] = data;
|
|
163
|
+
}
|
|
160
164
|
const version = getCurrentVersion(itemsStateAndParams);
|
|
161
165
|
if (version === 1) {
|
|
162
166
|
return result;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state-and-params.js","sourceRoot":"../../../../src","sources":["shared/modules/state-and-params.ts"],"names":[],"mappings":"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","sourcesContent":["import groupBy from 'lodash/groupBy';\n\nimport {META_KEY} from '../constants';\nimport {\n Config,\n ConfigItem,\n ConfigItemDataWithTabs,\n ConfigItemGroup,\n GlobalParams,\n ItemState,\n ItemStateAndParams,\n ItemsStateAndParams,\n ItemsStateAndParamsBase,\n PluginBase,\n StateAndParamsMetaData,\n StringParams,\n} from '../types';\n\nimport {\n FormedQueueData,\n formQueueData,\n getAllConfigItems,\n getCurrentVersion,\n getMapItemsIgnores,\n hasActionParam,\n isGlobalGroupItemVisible,\n isItemWithGroup,\n isItemWithTabs,\n mergeParamsWithAliases,\n pickActionParamsFromParams,\n pickExceptActionParamsFromParams,\n prerenderItems,\n resolveItemInnerId,\n} from './helpers';\n\nexport interface GetItemsParamsArg {\n defaultGlobalParams: GlobalParams;\n globalParams: GlobalParams;\n config: Config;\n itemsStateAndParams: ItemsStateAndParams;\n plugins: PluginBase[];\n useStateAsInitial?: boolean;\n}\n\ntype GetItemsParamsReturn = Record<string, StringParams | Record<string, StringParams>>;\n\nconst getParamsFromStateAndParams = ({\n itemsStateAndParams,\n parentItemId,\n item,\n}: {\n item: ConfigItem | ConfigItemGroup;\n itemsStateAndParams: ItemsStateAndParams;\n parentItemId?: string;\n}) => {\n const widgetId = parentItemId || item.id;\n\n if (!(widgetId in itemsStateAndParams)) {\n return {};\n }\n\n const stateAndParams = itemsStateAndParams as ItemsStateAndParamsBase;\n const itemParams = parentItemId\n ? Object.assign(\n {},\n (stateAndParams[widgetId].params as Record<string, StringParams>)[item.id],\n )\n : Object.assign({}, stateAndParams[widgetId].params as StringParams);\n\n return itemParams;\n};\n\nfunction getItemParams({\n item,\n itemsStateAndParams,\n mapItemsIgnores,\n itemsWithDefaultsByNamespace,\n getMergedParams,\n defaultGlobalParams,\n globalParams,\n isFirstVersion,\n queueData,\n parentItemId,\n useStateAsInitial,\n}: {\n item: ConfigItem | ConfigItemGroup;\n itemsStateAndParams: ItemsStateAndParams;\n mapItemsIgnores: Record<string, string[]>;\n itemsWithDefaultsByNamespace: Record<string, (ConfigItem | ConfigItemGroup)[]>;\n getMergedParams: (params: StringParams, actionParams?: StringParams) => StringParams;\n defaultGlobalParams: StringParams;\n globalParams: GlobalParams;\n isFirstVersion: boolean;\n queueData: FormedQueueData[];\n parentItemId?: string;\n useStateAsInitial?: boolean;\n}) {\n const {id, namespace} = item;\n\n let defaultWidgetParams: StringParams | Record<string, StringParams> = {};\n if (isItemWithTabs(item)) {\n const currentWidgetTabId = resolveItemInnerId({item, itemsStateAndParams});\n const itemTabs: ConfigItemDataWithTabs['tabs'] = item.data.tabs;\n defaultWidgetParams =\n itemTabs.find((tabItem) => tabItem?.id === currentWidgetTabId)?.params || {};\n } else {\n defaultWidgetParams = item.defaults || {};\n }\n\n const itemIgnores = mapItemsIgnores[id];\n\n const affectingItemsWithDefaults = itemsWithDefaultsByNamespace[namespace].filter(\n (itemWithDefaults) => !itemIgnores.includes(itemWithDefaults.id),\n );\n\n let itemParams: StringParams = Object.assign(\n {},\n getMergedParams(defaultGlobalParams),\n // default parameters to begin with\n affectingItemsWithDefaults.reduceRight((defaultParams: StringParams, itemWithDefaults) => {\n return {\n ...defaultParams,\n ...getMergedParams(itemWithDefaults.defaults || {}),\n };\n }, {}),\n getMergedParams(globalParams),\n useStateAsInitial\n ? getParamsFromStateAndParams({parentItemId, item, itemsStateAndParams})\n : {},\n );\n\n if (isFirstVersion) {\n itemParams = Object.assign(\n itemParams,\n (itemsStateAndParams as ItemsStateAndParamsBase)?.[id]?.params || {},\n );\n } else {\n // params according to queue of its applying\n let queueDataItemsParams: StringParams = {};\n for (const data of queueData) {\n if (data.namespace !== namespace || itemIgnores.includes(data.id)) {\n continue;\n }\n\n let actionParams;\n let params = data.params;\n const needAliasesForActionParams = data.id !== id && hasActionParam(data.params);\n if (needAliasesForActionParams) {\n actionParams = pickActionParamsFromParams(data.params);\n params = pickExceptActionParamsFromParams(data.params);\n }\n\n const mergedParams = getMergedParams(params, actionParams);\n\n queueDataItemsParams = {\n ...queueDataItemsParams,\n ...mergedParams,\n };\n }\n\n itemParams = Object.assign(itemParams, queueDataItemsParams);\n }\n\n return {...defaultWidgetParams, ...itemParams};\n}\n\nexport function getItemsParams({\n defaultGlobalParams = {},\n globalParams = {},\n config,\n itemsStateAndParams,\n plugins,\n useStateAsInitial,\n}: GetItemsParamsArg): GetItemsParamsReturn {\n const configItems = getAllConfigItems(config);\n const {aliases, connections} = config;\n const items = prerenderItems({\n items: configItems,\n plugins,\n });\n const isFirstVersion = getCurrentVersion(itemsStateAndParams) === 1;\n\n const globalItemIds = new Set((config.globalItems || []).map((item) => item.id));\n const visibleGlobalGroupSubItemIds = new Set<string>();\n\n const allItems = items.reduce((paramsItems: (ConfigItem | ConfigItemGroup)[], item) => {\n if (isItemWithGroup(item)) {\n const isGlobal = globalItemIds.has(item.id);\n\n item.data.group.forEach((groupItem) => {\n if (isGlobal && !isGlobalGroupItemVisible(groupItem, item, config.id)) {\n return;\n }\n\n paramsItems.push(groupItem);\n\n if (isGlobal) {\n visibleGlobalGroupSubItemIds.add(groupItem.id);\n }\n });\n\n return paramsItems;\n }\n\n paramsItems.push(item);\n return paramsItems;\n }, []);\n\n const queueData: FormedQueueData[] = isFirstVersion\n ? []\n : formQueueData({items, itemsStateAndParams});\n\n // to consider other kind types in future (not only ignore)\n const mapItemsIgnores = getMapItemsIgnores({\n items: allItems,\n ignores: connections.filter(({kind}) => kind === 'ignore'),\n itemsStateAndParams,\n isFirstVersion,\n });\n const groupByNamespace = groupBy(allItems, 'namespace');\n const itemsWithDefaultsByNamespace = Object.keys(groupByNamespace).reduce(\n (acc, namespace) => {\n return {\n ...acc,\n // there are defaults only in selectors by now, need to get them from item.data.tabs[].defaults for widgets\n // but make a decision about there's order first\n [namespace]: groupByNamespace[namespace].filter((item) => item.defaults),\n };\n },\n {} as Record<string, (ConfigItem | ConfigItemGroup)[]>,\n );\n\n return items.reduce((itemsParams: GetItemsParamsReturn, item: ConfigItem) => {\n const {id, namespace} = item;\n\n const getMergedParams = (params: StringParams, actionParams?: StringParams) =>\n mergeParamsWithAliases({aliases, namespace, params: params || {}, actionParams});\n\n const paramsOptions = {\n itemsStateAndParams,\n mapItemsIgnores,\n itemsWithDefaultsByNamespace,\n getMergedParams,\n defaultGlobalParams,\n globalParams,\n isFirstVersion,\n queueData,\n useStateAsInitial,\n };\n\n if (isItemWithGroup(item)) {\n const isGlobal = globalItemIds.has(item.id);\n const groupParams = item.data.group\n .filter((groupItem) => !isGlobal || visibleGlobalGroupSubItemIds.has(groupItem.id))\n .reduce((groupItemParams: Record<string, StringParams>, groupItem) => {\n groupItemParams[groupItem.id] = getItemParams({\n item: groupItem,\n parentItemId: item.id,\n ...paramsOptions,\n });\n return groupItemParams;\n }, {});\n\n return {...itemsParams, [id]: groupParams};\n }\n\n return {\n ...itemsParams,\n [id]: getItemParams({\n item,\n ...paramsOptions,\n }),\n };\n }, {});\n}\n\nexport function getItemsState({\n config,\n itemsStateAndParams,\n}: {\n config: Config;\n itemsStateAndParams: ItemsStateAndParams;\n}) {\n const configItems = getAllConfigItems(config);\n return configItems.reduce((acc: Record<string, ItemState>, {id}) => {\n acc[id] = (itemsStateAndParams as ItemsStateAndParamsBase)?.[id]?.state || {};\n return acc;\n }, {});\n}\n\nexport function getItemsStateAndParams({\n defaultGlobalParams = {},\n globalParams = {},\n config,\n itemsStateAndParams,\n plugins,\n}: GetItemsParamsArg): ItemsStateAndParams {\n const params = getItemsParams({\n defaultGlobalParams,\n globalParams,\n config,\n itemsStateAndParams,\n plugins,\n });\n const state = getItemsState({config, itemsStateAndParams});\n const uniqIds = new Set([...Object.keys(params), ...Object.keys(state)]);\n\n const result: ItemsStateAndParams = Array.from(uniqIds).reduce(\n (acc: ItemsStateAndParams, id) => {\n const data = {} as ItemStateAndParams;\n if (id in params) {\n data.params = params[id];\n }\n if (id in state) {\n data.state = state[id];\n }\n return {\n ...acc,\n [id]: data,\n };\n },\n {},\n );\n const version = getCurrentVersion(itemsStateAndParams);\n if (version === 1) {\n return result;\n }\n const meta = {\n [META_KEY]: itemsStateAndParams[META_KEY] as StateAndParamsMetaData,\n };\n return {\n ...meta,\n ...result,\n };\n}\n"]}
|
|
1
|
+
{"version":3,"file":"state-and-params.js","sourceRoot":"../../../../src","sources":["shared/modules/state-and-params.ts"],"names":[],"mappings":"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","sourcesContent":["import groupBy from 'lodash/groupBy';\n\nimport {META_KEY} from '../constants';\nimport {\n Config,\n ConfigItem,\n ConfigItemDataWithTabs,\n ConfigItemGroup,\n GlobalParams,\n ItemState,\n ItemStateAndParams,\n ItemsStateAndParams,\n ItemsStateAndParamsBase,\n PluginBase,\n StateAndParamsMetaData,\n StringParams,\n} from '../types';\n\nimport {\n FormedQueueData,\n formQueueData,\n getAllConfigItems,\n getCurrentVersion,\n getMapItemsIgnores,\n hasActionParam,\n isGlobalGroupItemVisible,\n isItemWithGroup,\n isItemWithTabs,\n mergeParamsWithAliases,\n pickActionParamsFromParams,\n pickExceptActionParamsFromParams,\n prerenderItems,\n resolveItemInnerId,\n} from './helpers';\n\nexport interface GetItemsParamsArg {\n defaultGlobalParams: GlobalParams;\n globalParams: GlobalParams;\n config: Config;\n itemsStateAndParams: ItemsStateAndParams;\n plugins: PluginBase[];\n useStateAsInitial?: boolean;\n}\n\ntype GetItemsParamsReturn = Record<string, StringParams | Record<string, StringParams>>;\n\nconst getParamsFromStateAndParams = ({\n itemsStateAndParams,\n parentItemId,\n item,\n}: {\n item: ConfigItem | ConfigItemGroup;\n itemsStateAndParams: ItemsStateAndParams;\n parentItemId?: string;\n}) => {\n const widgetId = parentItemId || item.id;\n\n if (!(widgetId in itemsStateAndParams)) {\n return {};\n }\n\n const stateAndParams = itemsStateAndParams as ItemsStateAndParamsBase;\n const itemParams = parentItemId\n ? Object.assign(\n {},\n (stateAndParams[widgetId].params as Record<string, StringParams>)[item.id],\n )\n : Object.assign({}, stateAndParams[widgetId].params as StringParams);\n\n return itemParams;\n};\n\nfunction getItemParams({\n item,\n itemsStateAndParams,\n mapItemsIgnores,\n itemsWithDefaultsByNamespace,\n getMergedParams,\n defaultGlobalParams,\n globalParams,\n isFirstVersion,\n queueData,\n parentItemId,\n useStateAsInitial,\n}: {\n item: ConfigItem | ConfigItemGroup;\n itemsStateAndParams: ItemsStateAndParams;\n mapItemsIgnores: Record<string, string[]>;\n itemsWithDefaultsByNamespace: Record<string, (ConfigItem | ConfigItemGroup)[]>;\n getMergedParams: (params: StringParams, actionParams?: StringParams) => StringParams;\n defaultGlobalParams: StringParams;\n globalParams: GlobalParams;\n isFirstVersion: boolean;\n queueData: FormedQueueData[];\n parentItemId?: string;\n useStateAsInitial?: boolean;\n}) {\n const {id, namespace} = item;\n\n let defaultWidgetParams: StringParams | Record<string, StringParams> = {};\n if (isItemWithTabs(item)) {\n const currentWidgetTabId = resolveItemInnerId({item, itemsStateAndParams});\n const itemTabs: ConfigItemDataWithTabs['tabs'] = item.data.tabs;\n defaultWidgetParams =\n itemTabs.find((tabItem) => tabItem?.id === currentWidgetTabId)?.params || {};\n } else {\n defaultWidgetParams = item.defaults || {};\n }\n\n const itemIgnores = mapItemsIgnores[id];\n\n const affectingItemsWithDefaults = itemsWithDefaultsByNamespace[namespace].filter(\n (itemWithDefaults) => !itemIgnores.includes(itemWithDefaults.id),\n );\n\n let itemParams: StringParams = Object.assign(\n {},\n getMergedParams(defaultGlobalParams),\n // default parameters to begin with\n affectingItemsWithDefaults.reduceRight((defaultParams: StringParams, itemWithDefaults) => {\n return {\n ...defaultParams,\n ...getMergedParams(itemWithDefaults.defaults || {}),\n };\n }, {}),\n getMergedParams(globalParams),\n useStateAsInitial\n ? getParamsFromStateAndParams({parentItemId, item, itemsStateAndParams})\n : {},\n );\n\n if (isFirstVersion) {\n itemParams = Object.assign(\n itemParams,\n (itemsStateAndParams as ItemsStateAndParamsBase)?.[id]?.params || {},\n );\n } else {\n // params according to queue of its applying\n let queueDataItemsParams: StringParams = {};\n for (const data of queueData) {\n if (data.namespace !== namespace || itemIgnores.includes(data.id)) {\n continue;\n }\n\n let actionParams;\n let params = data.params;\n const needAliasesForActionParams = data.id !== id && hasActionParam(data.params);\n if (needAliasesForActionParams) {\n actionParams = pickActionParamsFromParams(data.params);\n params = pickExceptActionParamsFromParams(data.params);\n }\n\n const mergedParams = getMergedParams(params, actionParams);\n\n queueDataItemsParams = {\n ...queueDataItemsParams,\n ...mergedParams,\n };\n }\n\n itemParams = Object.assign(itemParams, queueDataItemsParams);\n }\n\n return {...defaultWidgetParams, ...itemParams};\n}\n\nexport function getItemsParams({\n defaultGlobalParams = {},\n globalParams = {},\n config,\n itemsStateAndParams,\n plugins,\n useStateAsInitial,\n}: GetItemsParamsArg): GetItemsParamsReturn {\n const configItems = getAllConfigItems(config);\n const {aliases, connections} = config;\n const items = prerenderItems({\n items: configItems,\n plugins,\n });\n const isFirstVersion = getCurrentVersion(itemsStateAndParams) === 1;\n\n const globalItemIds = new Set((config.globalItems || []).map((item) => item.id));\n const visibleGlobalGroupSubItemIds = new Set<string>();\n\n const allItems = items.reduce((paramsItems: (ConfigItem | ConfigItemGroup)[], item) => {\n if (isItemWithGroup(item)) {\n const isGlobal = globalItemIds.has(item.id);\n\n item.data.group.forEach((groupItem) => {\n if (isGlobal && !isGlobalGroupItemVisible(groupItem, item, config.id)) {\n return;\n }\n\n paramsItems.push(groupItem);\n\n if (isGlobal) {\n visibleGlobalGroupSubItemIds.add(groupItem.id);\n }\n });\n\n return paramsItems;\n }\n\n paramsItems.push(item);\n return paramsItems;\n }, []);\n\n const queueData: FormedQueueData[] = isFirstVersion\n ? []\n : formQueueData({items, itemsStateAndParams});\n\n // to consider other kind types in future (not only ignore)\n const mapItemsIgnores = getMapItemsIgnores({\n items: allItems,\n ignores: connections.filter(({kind}) => kind === 'ignore'),\n itemsStateAndParams,\n isFirstVersion,\n });\n const groupByNamespace = groupBy(allItems, 'namespace');\n const itemsWithDefaultsByNamespace = Object.keys(groupByNamespace).reduce(\n (acc, namespace) => {\n return {\n ...acc,\n // there are defaults only in selectors by now, need to get them from item.data.tabs[].defaults for widgets\n // but make a decision about there's order first\n [namespace]: groupByNamespace[namespace].filter((item) => item.defaults),\n };\n },\n {} as Record<string, (ConfigItem | ConfigItemGroup)[]>,\n );\n\n const itemsParams: GetItemsParamsReturn = {};\n for (const item of items) {\n const {id, namespace} = item;\n\n const getMergedParams = (params: StringParams, actionParams?: StringParams) =>\n mergeParamsWithAliases({aliases, namespace, params: params || {}, actionParams});\n\n const paramsOptions = {\n itemsStateAndParams,\n mapItemsIgnores,\n itemsWithDefaultsByNamespace,\n getMergedParams,\n defaultGlobalParams,\n globalParams,\n isFirstVersion,\n queueData,\n useStateAsInitial,\n };\n\n if (isItemWithGroup(item)) {\n const isGlobal = globalItemIds.has(item.id);\n const groupParams = item.data.group\n .filter((groupItem) => !isGlobal || visibleGlobalGroupSubItemIds.has(groupItem.id))\n .reduce((groupItemParams: Record<string, StringParams>, groupItem) => {\n groupItemParams[groupItem.id] = getItemParams({\n item: groupItem,\n parentItemId: item.id,\n ...paramsOptions,\n });\n return groupItemParams;\n }, {});\n\n itemsParams[id] = groupParams;\n continue;\n }\n\n itemsParams[id] = getItemParams({\n item,\n ...paramsOptions,\n });\n }\n return itemsParams;\n}\n\nexport function getItemsState({\n config,\n itemsStateAndParams,\n}: {\n config: Config;\n itemsStateAndParams: ItemsStateAndParams;\n}) {\n const configItems = getAllConfigItems(config);\n return configItems.reduce((acc: Record<string, ItemState>, {id}) => {\n acc[id] = (itemsStateAndParams as ItemsStateAndParamsBase)?.[id]?.state || {};\n return acc;\n }, {});\n}\n\nexport function getItemsStateAndParams({\n defaultGlobalParams = {},\n globalParams = {},\n config,\n itemsStateAndParams,\n plugins,\n}: GetItemsParamsArg): ItemsStateAndParams {\n const params = getItemsParams({\n defaultGlobalParams,\n globalParams,\n config,\n itemsStateAndParams,\n plugins,\n });\n const state = getItemsState({config, itemsStateAndParams});\n const uniqIds = new Set([...Object.keys(params), ...Object.keys(state)]);\n\n const result: ItemsStateAndParamsBase = {};\n for (const id of uniqIds) {\n const data = {} as ItemStateAndParams;\n if (id in params) {\n data.params = params[id];\n }\n if (id in state) {\n data.state = state[id];\n }\n result[id] = data;\n }\n const version = getCurrentVersion(itemsStateAndParams);\n if (version === 1) {\n return result;\n }\n const meta = {\n [META_KEY]: itemsStateAndParams[META_KEY] as StateAndParamsMetaData,\n };\n return {\n ...meta,\n ...result,\n };\n}\n"]}
|