@pega/lists-core 9.0.0-build.1.0 → 9.0.0-build.10.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.
Files changed (112) hide show
  1. package/lib/index.d.ts +2 -2
  2. package/lib/index.d.ts.map +1 -1
  3. package/lib/index.js +2 -2
  4. package/lib/index.js.map +1 -1
  5. package/lib/src/core/RsStore.d.ts +13 -1
  6. package/lib/src/core/RsStore.d.ts.map +1 -1
  7. package/lib/src/core/RsStore.js +15 -1
  8. package/lib/src/core/RsStore.js.map +1 -1
  9. package/lib/src/core/StateResolver.d.ts.map +1 -1
  10. package/lib/src/core/StateResolver.js +2 -1
  11. package/lib/src/core/StateResolver.js.map +1 -1
  12. package/lib/src/core/constants.d.ts +11 -101
  13. package/lib/src/core/constants.d.ts.map +1 -1
  14. package/lib/src/core/constants.js +6 -6
  15. package/lib/src/core/constants.js.map +1 -1
  16. package/lib/src/core/defaultTranslations.d.ts +12 -0
  17. package/lib/src/core/defaultTranslations.d.ts.map +1 -0
  18. package/lib/src/core/defaultTranslations.js +11 -0
  19. package/lib/src/core/defaultTranslations.js.map +1 -0
  20. package/lib/src/core/features/featureFactory.d.ts.map +1 -1
  21. package/lib/src/core/features/featureFactory.js +0 -1
  22. package/lib/src/core/features/featureFactory.js.map +1 -1
  23. package/lib/src/core/features/uIFeatures/afterRender/columnSizing/autoSize.d.ts.map +1 -1
  24. package/lib/src/core/features/uIFeatures/afterRender/columnSizing/autoSize.js +12 -5
  25. package/lib/src/core/features/uIFeatures/afterRender/columnSizing/autoSize.js.map +1 -1
  26. package/lib/src/core/features/uIFeatures/afterRender/columnSizing/index.d.ts.map +1 -1
  27. package/lib/src/core/features/uIFeatures/afterRender/columnSizing/index.js +13 -1
  28. package/lib/src/core/features/uIFeatures/afterRender/columnSizing/index.js.map +1 -1
  29. package/lib/src/core/features/uIFeatures/beforeRender/aggregation.d.ts +1 -0
  30. package/lib/src/core/features/uIFeatures/beforeRender/aggregation.d.ts.map +1 -1
  31. package/lib/src/core/features/uIFeatures/beforeRender/aggregation.js +3 -1
  32. package/lib/src/core/features/uIFeatures/beforeRender/aggregation.js.map +1 -1
  33. package/lib/src/core/features/uIFeatures/beforeRender/busyIndicator.d.ts +1 -0
  34. package/lib/src/core/features/uIFeatures/beforeRender/busyIndicator.d.ts.map +1 -1
  35. package/lib/src/core/features/uIFeatures/beforeRender/busyIndicator.js +3 -1
  36. package/lib/src/core/features/uIFeatures/beforeRender/busyIndicator.js.map +1 -1
  37. package/lib/src/core/features/uIFeatures/beforeRender/columnReOrder.d.ts.map +1 -1
  38. package/lib/src/core/features/uIFeatures/beforeRender/columnReOrder.js +2 -3
  39. package/lib/src/core/features/uIFeatures/beforeRender/columnReOrder.js.map +1 -1
  40. package/lib/src/core/features/uIFeatures/beforeRender/grouping.d.ts.map +1 -1
  41. package/lib/src/core/features/uIFeatures/beforeRender/grouping.js +6 -7
  42. package/lib/src/core/features/uIFeatures/beforeRender/grouping.js.map +1 -1
  43. package/lib/src/core/features/uIFeatures/beforeRender/personalization.d.ts.map +1 -1
  44. package/lib/src/core/features/uIFeatures/beforeRender/personalization.js +19 -11
  45. package/lib/src/core/features/uIFeatures/beforeRender/personalization.js.map +1 -1
  46. package/lib/src/core/features/uIFeatures/beforeRender/rowDragDrop.d.ts.map +1 -1
  47. package/lib/src/core/features/uIFeatures/beforeRender/rowDragDrop.js +11 -3
  48. package/lib/src/core/features/uIFeatures/beforeRender/rowDragDrop.js.map +1 -1
  49. package/lib/src/core/features/uIFeatures/beforeRender/rowHeight.d.ts.map +1 -1
  50. package/lib/src/core/features/uIFeatures/beforeRender/rowHeight.js +4 -0
  51. package/lib/src/core/features/uIFeatures/beforeRender/rowHeight.js.map +1 -1
  52. package/lib/src/core/features/uIFeatures/beforeRender/stateHydration.d.ts.map +1 -1
  53. package/lib/src/core/features/uIFeatures/beforeRender/stateHydration.js +2 -1
  54. package/lib/src/core/features/uIFeatures/beforeRender/stateHydration.js.map +1 -1
  55. package/lib/src/core/features/uIFeatures/beforeRender/stateSanitization.d.ts.map +1 -1
  56. package/lib/src/core/features/uIFeatures/beforeRender/stateSanitization.js +19 -0
  57. package/lib/src/core/features/uIFeatures/beforeRender/stateSanitization.js.map +1 -1
  58. package/lib/src/core/features/uIFeatures/index.d.ts +0 -2
  59. package/lib/src/core/features/uIFeatures/index.d.ts.map +1 -1
  60. package/lib/src/core/features/uIFeatures/index.js +0 -2
  61. package/lib/src/core/features/uIFeatures/index.js.map +1 -1
  62. package/lib/src/core/generators/ColumnGenerator.d.ts +1 -1
  63. package/lib/src/core/generators/ColumnGenerator.d.ts.map +1 -1
  64. package/lib/src/core/generators/ColumnGenerator.js +2 -1
  65. package/lib/src/core/generators/ColumnGenerator.js.map +1 -1
  66. package/lib/src/core/generators/ColumnGenerator.types.d.ts +1 -1
  67. package/lib/src/core/generators/ColumnGenerator.types.d.ts.map +1 -1
  68. package/lib/src/core/generators/ColumnGenerator.types.js.map +1 -1
  69. package/lib/src/core/generators/GroupGenerator.d.ts +4 -1
  70. package/lib/src/core/generators/GroupGenerator.d.ts.map +1 -1
  71. package/lib/src/core/generators/GroupGenerator.js +4 -1
  72. package/lib/src/core/generators/GroupGenerator.js.map +1 -1
  73. package/lib/src/core/generators/ViewGenerator.d.ts.map +1 -1
  74. package/lib/src/core/generators/ViewGenerator.js +9 -6
  75. package/lib/src/core/generators/ViewGenerator.js.map +1 -1
  76. package/lib/src/core/generators/viewUtilityMethods.js +3 -3
  77. package/lib/src/core/generators/viewUtilityMethods.js.map +1 -1
  78. package/lib/src/core/index.d.ts.map +1 -1
  79. package/lib/src/core/index.js +2 -2
  80. package/lib/src/core/index.js.map +1 -1
  81. package/lib/src/core/reducers/error.d.ts.map +1 -1
  82. package/lib/src/core/reducers/index.d.ts.map +1 -1
  83. package/lib/src/core/test/junitMocks.d.ts.map +1 -1
  84. package/lib/src/core/test/junitMocks.js +3 -1
  85. package/lib/src/core/test/junitMocks.js.map +1 -1
  86. package/lib/src/core/utils/condition-utils.js +1 -1
  87. package/lib/src/core/utils/condition-utils.js.map +1 -1
  88. package/lib/src/core/utils/util.d.ts +1 -0
  89. package/lib/src/core/utils/util.d.ts.map +1 -1
  90. package/lib/src/core/utils/util.js +7 -1
  91. package/lib/src/core/utils/util.js.map +1 -1
  92. package/lib/types/ApiContext.types.d.ts +32 -3
  93. package/lib/types/ApiContext.types.d.ts.map +1 -1
  94. package/lib/types/ApiContext.types.js.map +1 -1
  95. package/lib/types/Meta.types.d.ts +36 -4
  96. package/lib/types/Meta.types.d.ts.map +1 -1
  97. package/lib/types/Meta.types.js +3 -0
  98. package/lib/types/Meta.types.js.map +1 -1
  99. package/lib/types/RsCoreBootArgs.types.d.ts +3 -2
  100. package/lib/types/RsCoreBootArgs.types.d.ts.map +1 -1
  101. package/lib/types/RsCoreBootArgs.types.js.map +1 -1
  102. package/lib/types/State.types.d.ts +21 -2
  103. package/lib/types/State.types.d.ts.map +1 -1
  104. package/lib/types/State.types.js.map +1 -1
  105. package/lib/types.d.ts +4 -1
  106. package/lib/types.d.ts.map +1 -1
  107. package/lib/types.js.map +1 -1
  108. package/package.json +3 -4
  109. package/lib/src/core/features/uIFeatures/beforeRender/resizeGroupedDragDropColumn.d.ts +0 -7
  110. package/lib/src/core/features/uIFeatures/beforeRender/resizeGroupedDragDropColumn.d.ts.map +0 -1
  111. package/lib/src/core/features/uIFeatures/beforeRender/resizeGroupedDragDropColumn.js +0 -24
  112. package/lib/src/core/features/uIFeatures/beforeRender/resizeGroupedDragDropColumn.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"grouping.js","sourceRoot":"","sources":["../../../../../../src/core/features/uIFeatures/beforeRender/grouping.ts"],"names":[],"mappings":"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","sourcesContent":["import type { OmitStrict } from '@pega/cosmos-react-core';\n\nimport {\n getGroupKey,\n getGroupFromKey,\n withMemoization,\n compareArray,\n dateFunctionLabels,\n deepCopy,\n isEmpty\n} from '../../../utils/util';\nimport { actionGroupingExpandCollapseAll } from '../../../actions/actions';\nimport { AFTER_FETCH } from '../../../pubSub/events';\nimport type RsInternal from '../../../RsInternal';\nimport type { BeforeRenderFeatureProps } from '../../featureFactory';\nimport type { MemoizedFunction } from '../../../utils/util.types';\nimport type { Group, GroupFilter, GroupToggle, State } from '../../../../../types/State.types';\nimport type { HierarchicalInfo } from '../../../../../types/Meta.types';\nimport GroupGenerator from '../../../generators/GroupGenerator';\nimport type View from '../../../generators/ViewGenerator';\nimport type RsStore from '../../../RsStore';\nimport type {\n GroupedInfo,\n HierarchicalGroupedInfo,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n ApiContext\n} from '../../../../../types/ApiContext.types';\n\nexport interface CommonGroupingInfo {\n /** Id of the field on which grouping is applied. */\n groupBy: string;\n /** Current group level, starts with 0 for 1st level of grouping. */\n level: number;\n /** Path of the grouped column value. */\n hierarchy: (string | number | boolean | Date)[];\n visibleRow?: boolean;\n showHierarchicalFooter?: boolean;\n groupFrom?: number;\n groupTo?: number;\n isHierarchical?: boolean;\n}\n\nexport type GroupingInfo = OmitStrict<GroupedInfo, 'children'> &\n CommonGroupingInfo & {\n children?: GroupingInfo[];\n };\n\nexport type HierarchicalGroupingInfo = OmitStrict<HierarchicalGroupedInfo, 'children'> &\n CommonGroupingInfo & {\n children?: HierarchicalGroupingInfo[];\n parentId?: string;\n targetId?: string;\n name?: null | string | number | boolean | Date;\n };\n\nfunction isNodeExpanded(\n groupToggle: GroupToggle | undefined,\n node: GroupingInfo | HierarchicalGroupingInfo,\n defaultState: boolean | undefined\n): boolean {\n /** Groups with 0 count should not be expandable. */\n if (node.count === 0) {\n return false;\n }\n\n const index = groupToggle?.[node.groupBy!]?.findIndex(gct => compareArray(gct, node.hierarchy!));\n const childToggleState = index! >= 0 ? !defaultState : !!defaultState;\n return childToggleState === true;\n}\n\nconst getLabel = (view: View, groupBy: string, getState: BeforeRenderFeatureProps['getState']) => {\n const { columnId, dateFunction } = getGroupFromKey(groupBy, getState().groups)!;\n let { label } = view.columns!.find(column => column.field.id.toString() === columnId.toString())!;\n if (dateFunction) {\n // @ts-expect-error dateFunction cannot be used to index dateFunctionLabels. Check this.\n label += ` (${dateFunctionLabels[dateFunction]})`;\n }\n return label;\n};\n\n// This function checks if hierarchy exist or not.\n// which will decide whether start and end Index would be there on leaf node or on hierarchical node.\nconst doesExistInViewInfo = (\n viewInfo: GroupFilter[],\n hierarchy: (string | number | boolean | Date)[] = [],\n isHierarchical = false\n) => {\n return viewInfo.some(v => {\n const filters = Object.values(v.filters);\n\n if (isHierarchical) {\n return filters.every(value => value === [...hierarchy].pop());\n }\n\n if (filters.length === hierarchy.length) {\n const tempHierarchy = [...hierarchy];\n // eslint-disable-next-line @typescript-eslint/require-array-sort-compare\n tempHierarchy.sort();\n // eslint-disable-next-line @typescript-eslint/require-array-sort-compare\n return filters.sort().every((value, index) => value === tempHierarchy[index]);\n }\n return false;\n });\n};\n\nconst prepareGroupHeaders = (\n props: [\n groupingInfo: RsStore['groupingInfo'],\n groupFilters: RsStore['groupFilters'],\n rsInternal: RsInternal,\n groupToggle?: State['groupToggle'],\n allGroupsExpanded?: boolean\n ]\n) => {\n const [groupingInfo = [], viewInfo = [], rsInternal, groupToggle = {}, allGroupsExpanded] = props;\n\n // If group and viewInfo are empty, prerape group header for top level leaf node.\n // This is for easing on UI , one contract whether grouping is in place/not.\n // TODO: support for enabling feature on view.\n const view = rsInternal.getView();\n const { getState } = rsInternal.getRsStateResolver();\n if (groupingInfo.length === 0) {\n // construct view header object.\n\n const viewHeader = new GroupGenerator(\n {\n isVisible: false,\n isLeafNode: true,\n isExpanded: true,\n name: '',\n groupBy: '',\n level: 0,\n label: '',\n hierarchy: [],\n count: view.rows!.length\n },\n rsInternal\n );\n viewHeader.startIndex = 0;\n viewHeader.endIndex = view.rows ? view.rows.length : 0;\n view.setProp('groupHeaders', [viewHeader]);\n return;\n }\n // Creating flat objects from view group info using DFT.\n const result = [];\n let counter = 0;\n\n const stack = groupingInfo.map(v => ({ ...v }));\n let leafNodeCountInView = 0;\n let lastDataIndex = 0;\n while (stack.length) {\n const child = stack.shift();\n if (child) {\n const isExpanded = isNodeExpanded(groupToggle, child, allGroupsExpanded);\n const isSubGroupPresent = child.children && child.children.length;\n const label = child.isHierarchical ? '' : getLabel(view, child.groupBy!, getState);\n // construct view header object.\n const viewHeader = new GroupGenerator(\n {\n isVisible: !!child.visibleRow,\n isLeafNode: !isSubGroupPresent,\n isExpanded,\n name: child.name!,\n groupBy: child.groupBy,\n level: child.level,\n label: label!,\n hierarchy: child.hierarchy,\n count: child.count,\n aggregation: child.agg,\n showHierarchicalFooter: child.showHierarchicalFooter,\n isHierarchical: child.isHierarchical,\n info: (child as HierarchicalGroupingInfo).info,\n data: (child as GroupingInfo).data\n },\n rsInternal\n );\n // If header node is a leaf node then , add start index and endIndex to resolve data.\n if (\n (viewHeader.isLeafNode || viewHeader.isHierarchical) &&\n viewHeader.isExpanded &&\n doesExistInViewInfo(viewInfo, viewHeader.hierarchy, viewHeader.isHierarchical)\n ) {\n const { groupFrom, groupTo } = viewInfo[leafNodeCountInView] || {};\n if (groupFrom >= 0 && groupTo >= 0) {\n viewHeader.startIndex = lastDataIndex;\n viewHeader.endIndex = viewHeader.startIndex + groupTo - groupFrom;\n lastDataIndex = viewHeader.endIndex;\n leafNodeCountInView += 1;\n }\n }\n // BUG-775861 - Adding index to visible groupHeaders so that this can be used to set the z-index for groupHeaders\n if (viewHeader.isVisible) {\n viewHeader.index = counter;\n counter += 1;\n }\n result.push(viewHeader);\n if (isExpanded && isSubGroupPresent) {\n stack.unshift(...child.children!);\n }\n }\n }\n view.setProp('groupHeaders', result);\n};\n\nfunction includeGroup(\n group: GroupingInfo | HierarchicalGroupingInfo,\n groupFrom: number,\n groupTo: number,\n parentGroups: Record<string, any>,\n groupFilters: GroupFilter[]\n) {\n group.groupFrom = groupFrom;\n group.groupTo = groupTo;\n groupFilters.push({ groupFrom, groupTo, filters: parentGroups });\n}\n\nfunction getRecordsCount(\n group: NonNullable<RsStore['groupingInfo']>,\n count: number,\n includedRowCount: number,\n parentGroup: Record<string, any>,\n from: number,\n to: number,\n groupFilters: GroupFilter[],\n groupToggle: GroupToggle | undefined,\n allGroupsExpanded: boolean | undefined,\n state: State,\n getView: BeforeRenderFeatureProps['getView']\n): [count: number, includedRowCount: number] {\n const { aggregationInfo } = state;\n\n for (let i = 0; i < group.length; i += 1) {\n const parentGroups = { ...parentGroup };\n if ((group[i] as HierarchicalGroupingInfo).isHierarchical) {\n const currentGroup = group[i] as HierarchicalGroupingInfo;\n parentGroups[currentGroup.parentId!] = currentGroup.info![currentGroup.targetId!];\n } else {\n const currentGroup = group![i] as GroupingInfo;\n parentGroups[currentGroup.groupBy!] = currentGroup.name;\n }\n count += 1;\n // group has subgroups and group is expanded\n const isExpanded = isNodeExpanded(groupToggle, group[i], allGroupsExpanded);\n let includeThisGroup = false;\n if (count > from && count - 1 <= to) {\n includeThisGroup = true;\n includedRowCount += 1;\n }\n group[i].visibleRow = includeThisGroup;\n // Footer should be shown only if node expands.\n // groupToggle will effect footer visibility so reset footer flag.\n group[i].showHierarchicalFooter = false;\n\n if (group[i].children && isExpanded) {\n [count, includedRowCount] = getRecordsCount(\n group[i].children!,\n count,\n includedRowCount,\n parentGroups,\n from,\n to,\n groupFilters,\n groupToggle,\n allGroupsExpanded,\n state,\n getView\n );\n group[i].visibleRow =\n group[i].visibleRow ||\n !!group[i].children!.find(\n g => g.visibleRow && ((g as HierarchicalGroupingInfo).isHierarchical || !g.children)\n );\n } else if (!group[i].children && isExpanded) {\n // group doesn't have subgroups and group is expanded\n const innerCount = count + group[i].count;\n if (count <= to) {\n let groupFrom = 0;\n let groupTo = 0;\n if (innerCount >= from) {\n groupFrom = Math.max(from - count, 0);\n if (innerCount <= to + 1) {\n groupTo = group[i].count;\n } else {\n groupTo = groupFrom + (to + 1 - from - includedRowCount);\n }\n group[i].visibleRow = true;\n let updatedGroupFrom = groupFrom;\n // Sticky group header logic\n if (!includeThisGroup && groupTo > groupFrom + 2) {\n if (group[i].level! >= 1) {\n updatedGroupFrom = groupFrom + 2;\n } else {\n updatedGroupFrom = groupFrom + 1;\n }\n }\n includeGroup(group[i], updatedGroupFrom, groupTo, parentGroups, groupFilters);\n }\n includedRowCount += groupTo - groupFrom;\n }\n count = innerCount;\n }\n\n if (\n (group[i] as HierarchicalGroupingInfo).isHierarchical &&\n aggregationInfo &&\n aggregationInfo.length > 0 &&\n isExpanded\n ) {\n count += 1;\n group[i].showHierarchicalFooter = true;\n\n if (group[i].visibleRow && includedRowCount <= to) {\n includedRowCount += 1;\n }\n }\n }\n return [count, includedRowCount];\n}\n\nconst constructGroupingPagination = (\n groupingInfo: NonNullable<RsStore['groupingInfo']>,\n groupToggle: GroupToggle | undefined,\n paginationOptions: NonNullable<State['paginationOptions']>[keyof NonNullable<\n State['paginationOptions']\n >],\n allGroupsExpanded: boolean | undefined,\n state: State,\n getView: BeforeRenderFeatureProps['getView']\n) => {\n const groupFilters = [] as GroupFilter[];\n getRecordsCount(\n groupingInfo,\n 0,\n 0,\n {},\n paginationOptions.startIndex,\n paginationOptions.endIndex,\n groupFilters,\n groupToggle,\n allGroupsExpanded,\n state,\n getView\n );\n return groupFilters;\n};\n\n// This is basically used to update count on non leaf node.\n// which is sum of count of leaf node children in their hierarchy.\nfunction updateCountOnNonLeafNode(groupingInfo: GroupedInfo[]) {\n const updateCount = (child: GroupedInfo) => {\n if (child.count !== undefined) return child.count;\n child.count = child.children!.reduce((acc, c) => {\n acc += updateCount(c)!;\n return acc;\n }, 0);\n };\n groupingInfo.forEach(g => updateCount(g));\n}\n\nfunction updateGroupInfo(groupingInfo: GroupedInfo[], groups: Group[]): GroupingInfo[] {\n // iterate groupingInfo using BFS and update basic information.\n const queue = [...groupingInfo] as GroupingInfo[];\n while (queue.length) {\n const child = queue.pop();\n if (child) {\n if (!child.hierarchy) child.hierarchy = [child.name!];\n child.level = child.level || 0;\n const matchingGroup = groups.find(g => g.level === child.level);\n child.groupBy = getGroupKey(matchingGroup!);\n\n if (child.children) {\n // update level before pushing children to queue.\n child.children.forEach(c => {\n c.level = child.level + 1;\n c.hierarchy = [...child.hierarchy];\n c.hierarchy.push(c.name!);\n });\n queue.push(...child.children);\n }\n }\n }\n return groupingInfo as GroupingInfo[];\n}\n\nfunction updateCountFromGroupingInfo(\n getView: BeforeRenderFeatureProps['getView'],\n getRsStore: BeforeRenderFeatureProps['getRsStore']\n) {\n if (getView().countGeneratedInternally || isEmpty(getView().resultsCount)) {\n const countFromGroupingInfo = getRsStore().groupingInfo?.reduce(\n (acc, group) => (group.count ? acc + group.count : acc),\n 0\n );\n\n const countPayload = { count: countFromGroupingInfo, _countGeneratedInternally: true };\n getView().type.setRecordCount(countPayload);\n }\n}\n\nasync function onGroupsChange([{ getRsProps, getRsStore, getView, getState }]: [\n featureProps: BeforeRenderFeatureProps\n]) {\n const rsStore = getRsStore();\n const rsProps = getRsProps();\n const state = getState();\n const { groups } = state;\n\n if (groups?.length! > 0 && getView().meta.grouping) {\n try {\n const groupingInfo =\n (await rsProps.apiContext.fetchGroupedInfo?.(deepCopy(state), getView().meta, {\n ...(getRsStore().refreshInProgress && {\n invalidateCache: true,\n invalidateCacheToken: getRsStore().refreshToken\n })\n })) || [];\n // Here update group info with basic properties like level, group by, expand state etc.\n // to make calculation easy.\n // TODO: FIXME - Check if count on non leaf node is required\n updateCountOnNonLeafNode(groupingInfo);\n rsStore.groupingInfo = updateGroupInfo(groupingInfo, groups!);\n\n // FIXME: once infinite virtualizer supports the grouping, we need not compute the count from grouping\n // Prepare the count from the groups count until the actual count returns\n updateCountFromGroupingInfo(getView, getRsStore);\n } catch (err) {\n // eslint-disable-next-line no-console\n console.error('API call failed', err);\n }\n } else rsStore.groupingInfo = [];\n\n getView().columns!.forEach(column => {\n const grouped = groups?.findIndex(group => group.columnId === column.field.id)! >= 0;\n column = column.setProp('grouped', grouped);\n });\n}\n\nfunction autoExpandGroups([{ dispatch, getState }]: [featureProps: BeforeRenderFeatureProps]) {\n const { allGroupsExpanded = true } = getState();\n dispatch(actionGroupingExpandCollapseAll(allGroupsExpanded));\n}\n\nfunction updateHierarchicalGroupInfo(\n groupingInfo: HierarchicalGroupedInfo[],\n hierarchicalGroup: HierarchicalInfo\n) {\n const queue = [...groupingInfo] as HierarchicalGroupingInfo[];\n\n while (queue.length) {\n const child = queue.pop();\n const node = child!.info;\n\n if (child) {\n child.level = child.level || 0;\n child.isHierarchical = true;\n child.parentId = hierarchicalGroup.parentId;\n child.targetId = hierarchicalGroup.targetId;\n child.groupBy = (hierarchicalGroup.sortById || hierarchicalGroup.targetId)!;\n\n if (node) {\n child.name = node[(hierarchicalGroup.sortById || hierarchicalGroup.targetId)!] as string;\n child.hierarchy = [node[hierarchicalGroup.targetId!] as string];\n }\n\n if (child.children) {\n // update level before pushing children to queue.\n child.children.forEach(c => {\n c.level = child.level! + 1;\n });\n queue.push(...child.children);\n }\n }\n }\n}\n\nasync function onHierarchicalGroupChange([{ getState, getRsProps, getRsStore, getView }]: [\n featureProps: BeforeRenderFeatureProps\n]) {\n const { hierarchicalGroup } = getState();\n const rsProps = getRsProps();\n const rsStore = getRsStore();\n if (hierarchicalGroup && hierarchicalGroup.parentId) {\n try {\n const groupingInfo =\n (await rsProps.apiContext.fetchHierarchicalGroupedInfo?.(\n deepCopy(getState()),\n getView().meta,\n {\n ...(getRsStore().refreshInProgress && {\n invalidateCache: true,\n invalidateCacheToken: getRsStore().refreshToken\n })\n }\n )) || [];\n\n getView().setProp('hierarchicalGroupEnabled', true);\n\n updateHierarchicalGroupInfo(groupingInfo, hierarchicalGroup);\n rsStore.groupingInfo = groupingInfo as HierarchicalGroupingInfo[];\n } catch (err) {\n // eslint-disable-next-line no-console\n console.error('API call failed', err);\n }\n } else {\n getView().setProp('hierarchicalGroupEnabled', false);\n }\n}\n\nconst getTotalItemCount = (\n getView: BeforeRenderFeatureProps['getView'],\n state: State,\n groupingInfo: NonNullable<RsStore['groupingInfo']>\n) => {\n // Calculate total group count and update instance.\n // and datanode count based on group expand state.\n let totalItemCount = 0;\n const stack = [...groupingInfo];\n const { groupToggle, allGroupsExpanded } = state;\n\n while (stack.length) {\n const child = stack.shift();\n // We are considering header count whether if it is of hierarchical node or\n // a normal group node and it has data associated with it in its hierarchy.\n if (child) {\n totalItemCount += 1;\n const isSubGroupPresent = child.children && child.children.length;\n const isExpanded = isNodeExpanded(groupToggle, child, allGroupsExpanded);\n if (isExpanded && isSubGroupPresent) {\n stack.unshift(...child.children!);\n } else if (isExpanded && !isSubGroupPresent) {\n totalItemCount += child.count;\n }\n\n if (child.showHierarchicalFooter) {\n totalItemCount += 1;\n }\n }\n }\n return totalItemCount;\n};\n\nconst updateGroupFilters = ([{ getState, getRsStore, getView }]: [\n featureProps: BeforeRenderFeatureProps\n]) => {\n const { paginationOptions, groupToggle, allGroupsExpanded } = getState();\n const rsStore = getRsStore();\n const { groupingInfo } = rsStore;\n // group info is expected to be [] when there are no groups.\n if (groupingInfo) {\n if (!groupingInfo.length && rsStore.groupFilters && !rsStore.groupFilters.length) return;\n rsStore.groupFilters = constructGroupingPagination(\n groupingInfo,\n groupToggle,\n paginationOptions!.rootVirtualiser,\n allGroupsExpanded,\n getState(),\n getView\n );\n }\n};\n\nfunction postFetch(\n rsInternal: RsInternal,\n memoizedPrepareGroupHeaders: MemoizedFunction<\n [\n groupingInfo: RsStore['groupingInfo'],\n groupFilters: RsStore['groupFilters'],\n rsInternal: RsInternal,\n groupToggle?: State['groupToggle'],\n allGroupsExpanded?: State['allGroupsExpanded']\n ],\n ReturnType<typeof prepareGroupHeaders>\n >\n) {\n const { getRsStore, getView, getRsStateResolver } = rsInternal;\n const rsStore = getRsStore();\n const { getState } = getRsStateResolver();\n if (!rsStore.groupingInfo || !rsStore.groupingInfo.length) {\n // As we are giving ways to always use header though grouping is not in place\n // update total item count given by API.\n getView().setProp('totalItemCount', getView().resultsCount);\n memoizedPrepareGroupHeaders([[], [], rsInternal], [getView().rows!.length]);\n } else {\n // As our group headers are representing data in UI , so\n // like data after every fetch group headers should also change so that\n // UI get to know about latest group.\n getView().setProp(\n 'totalItemCount',\n getTotalItemCount(getView, getState(), rsStore.groupingInfo)\n );\n memoizedPrepareGroupHeaders([\n rsStore.groupingInfo,\n rsStore.groupFilters,\n rsInternal,\n getState().groupToggle,\n getState().allGroupsExpanded\n ]);\n }\n}\n\n// TODO: Need to make changes in grouping to support 0 based indexing inclusive start and end index.\n/**\n * Handles the grouping feature for repeating structures.\n *\n * This method performs the following tasks:\n * - Fetches the grouping information, either via {@link ApiContext.fetchGroupedInfo} or {@link ApiContext.fetchHierarchicalGroupedInfo}, and stores the result in {@link RsStore.groupingInfo}.\n * - Prepares group filters based on the grouping information, then sets these filters in {@link RsStore.groupFilters}.\n * - Manages the automatic expansion of groups.\n * - Prepares group headers from the fetched grouping information and sets them in {@link View.groupHeaders}.\n */\nexport default (rsInternal: RsInternal) => {\n const memoizedOnGroupsChange = withMemoization(onGroupsChange);\n const memorizeOnHierarchicalGroupChange = withMemoization(onHierarchicalGroupChange);\n const memoizedUpdateGroupFilters = withMemoization(updateGroupFilters);\n const memoizedAutoExpandGroups = withMemoization(autoExpandGroups);\n\n // Prepare group header even though groups are not present to have one flow.\n // depend on after fetch event as , it depends on data when no grouping is there.\n rsInternal\n .getPubSubUtils()\n .subscribe(AFTER_FETCH, () => postFetch(rsInternal, withMemoization(prepareGroupHeaders)));\n\n async function execute(featureProps: BeforeRenderFeatureProps) {\n const { getState, getRsStore } = featureProps;\n const state = getState();\n // TOdo: Fixme ISSUE-76344... try to not rely on state.personalization?.active\n await memoizedOnGroupsChange(\n [featureProps],\n [\n state.groups,\n state.filterExpression,\n state.search?.query,\n state.personalization?.active,\n state.refresh,\n state.aggregationInfo\n ]\n );\n\n memoizedAutoExpandGroups([featureProps], [state.personalization?.active]);\n\n await memorizeOnHierarchicalGroupChange(\n [featureProps],\n [\n state.hierarchicalGroup,\n state.filterExpression,\n state.search?.query,\n state.aggregationInfo,\n state.personalization?.active\n ]\n );\n // In new grouping, update group info in state.\n // Action dispatched for group info will prepare group headers.\n if (state.paginationOptions) {\n // TODO: use this comarator for optimization but isVisible calculated prop on grouping info needs to be handled.ISSUE-80012\n // const comparator =(prev, next) => {\n // if (prev[1] !== next[1] || prev[3] !== next[3]) return false;\n // return compareArray(prev[2], next[2], ['children', 'count', 'name']);\n // };\n memoizedUpdateGroupFilters(\n [featureProps],\n [\n state.paginationOptions[Object.keys(state.paginationOptions || {})[0]],\n getRsStore().groupingInfo,\n state.groupToggle,\n state.allGroupsExpanded\n ]\n );\n }\n }\n\n // As we are generating one flow, this is required. TODO: Need to take decision\n // conditional block on UI or feature push though not enabled.\n if (rsInternal.getView().meta.grouping) {\n return execute;\n }\n\n return undefined;\n};\n"]}
1
+ {"version":3,"file":"grouping.js","sourceRoot":"","sources":["../../../../../../src/core/features/uIFeatures/beforeRender/grouping.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,WAAW,EACX,eAAe,EACf,eAAe,EACf,YAAY,EACZ,kBAAkB,EAClB,QAAQ,EACR,OAAO,EACR,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,+BAA+B,EAAE,MAAM,0BAA0B,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAMrD,OAAO,cAAc,MAAM,oCAAoC,CAAC;AAqChE,SAAS,cAAc,CACrB,WAAoC,EACpC,IAA6C,EAC7C,YAAiC;IAEjC,oDAAoD;IACpD,IAAI,IAAI,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC;QACrB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,KAAK,GAAG,WAAW,EAAE,CAAC,IAAI,CAAC,OAAQ,CAAC,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,SAAU,CAAC,CAAC,CAAC;IACjG,MAAM,gBAAgB,GAAG,KAAM,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;IACtE,OAAO,gBAAgB,KAAK,IAAI,CAAC;AACnC,CAAC;AAED,MAAM,QAAQ,GAAG,CAAC,IAAU,EAAE,OAAe,EAAE,QAA8C,EAAE,EAAE;IAC/F,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,eAAe,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC,MAAM,CAAE,CAAC;IAChF,IAAI,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,OAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,QAAQ,CAAC,QAAQ,EAAE,CAAE,CAAC;IAClG,IAAI,YAAY,EAAE,CAAC;QACjB,wFAAwF;QACxF,KAAK,IAAI,KAAK,kBAAkB,CAAC,YAAY,CAAC,GAAG,CAAC;IACpD,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF,kDAAkD;AAClD,qGAAqG;AACrG,MAAM,mBAAmB,GAAG,CAC1B,QAAuB,EACvB,YAAkD,EAAE,EACpD,cAAc,GAAG,KAAK,EACtB,EAAE;IACF,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;QACvB,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QAEzC,IAAI,cAAc,EAAE,CAAC;YACnB,OAAO,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,KAAK,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;QAChE,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,MAAM,EAAE,CAAC;YACxC,MAAM,aAAa,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC;YACrC,yEAAyE;YACzE,aAAa,CAAC,IAAI,EAAE,CAAC;YACrB,yEAAyE;YACzE,OAAO,OAAO,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;QAChF,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAG,CAC1B,KAMC,EACD,EAAE;IACF,MAAM,CAAC,YAAY,GAAG,EAAE,EAAE,QAAQ,GAAG,EAAE,EAAE,UAAU,EAAE,WAAW,GAAG,EAAE,EAAE,iBAAiB,CAAC,GAAG,KAAK,CAAC;IAElG,iFAAiF;IACjF,4EAA4E;IAC5E,8CAA8C;IAC9C,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC;IAClC,MAAM,EAAE,QAAQ,EAAE,GAAG,UAAU,CAAC,kBAAkB,EAAE,CAAC;IACrD,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,gCAAgC;QAEhC,MAAM,UAAU,GAAG,IAAI,cAAc,CACnC;YACE,SAAS,EAAE,KAAK;YAChB,UAAU,EAAE,IAAI;YAChB,UAAU,EAAE,IAAI;YAChB,IAAI,EAAE,EAAE;YACR,OAAO,EAAE,EAAE;YACX,KAAK,EAAE,CAAC;YACR,KAAK,EAAE,EAAE;YACT,SAAS,EAAE,EAAE;YACb,KAAK,EAAE,IAAI,CAAC,IAAK,CAAC,MAAM;SACzB,EACD,UAAU,CACX,CAAC;QACF,UAAU,CAAC,UAAU,GAAG,CAAC,CAAC;QAC1B,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QACvD,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;QAC3C,OAAO;IACT,CAAC;IACD,wDAAwD;IACxD,MAAM,MAAM,GAAG,EAAE,CAAC;IAClB,IAAI,OAAO,GAAG,CAAC,CAAC;IAEhB,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IAChD,IAAI,mBAAmB,GAAG,CAAC,CAAC;IAC5B,IAAI,aAAa,GAAG,CAAC,CAAC;IACtB,OAAO,KAAK,CAAC,MAAM,EAAE,CAAC;QACpB,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;QAC5B,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,UAAU,GAAG,cAAc,CAAC,WAAW,EAAE,KAAK,EAAE,iBAAiB,CAAC,CAAC;YACzE,MAAM,iBAAiB,GAAG,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;YAClE,MAAM,KAAK,GAAG,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,OAAQ,EAAE,QAAQ,CAAC,CAAC;YACnF,gCAAgC;YAChC,MAAM,UAAU,GAAG,IAAI,cAAc,CACnC;gBACE,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU;gBAC7B,UAAU,EAAE,CAAC,iBAAiB;gBAC9B,UAAU;gBACV,IAAI,EAAE,KAAK,CAAC,IAAK;gBACjB,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,KAAK,EAAE,KAAM;gBACb,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,WAAW,EAAE,KAAK,CAAC,GAAG;gBACtB,sBAAsB,EAAE,KAAK,CAAC,sBAAsB;gBACpD,cAAc,EAAE,KAAK,CAAC,cAAc;gBACpC,IAAI,EAAE,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;gBAC9C,IAAI,EAAE,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;gBAC9C,oBAAoB,EAClB,sBAAsB,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAC,SAAS;aAC3E,EACD,UAAU,CACX,CAAC;YACF,qFAAqF;YACrF,IACE,CAAC,UAAU,CAAC,UAAU,IAAI,UAAU,CAAC,cAAc,CAAC;gBACpD,UAAU,CAAC,UAAU;gBACrB,mBAAmB,CAAC,QAAQ,EAAE,UAAU,CAAC,SAAS,EAAE,UAAU,CAAC,cAAc,CAAC,EAC9E,CAAC;gBACD,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,QAAQ,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC;gBACnE,IAAI,SAAS,IAAI,CAAC,IAAI,OAAO,IAAI,CAAC,EAAE,CAAC;oBACnC,UAAU,CAAC,UAAU,GAAG,aAAa,CAAC;oBACtC,UAAU,CAAC,QAAQ,GAAG,UAAU,CAAC,UAAU,GAAG,OAAO,GAAG,SAAS,CAAC;oBAClE,aAAa,GAAG,UAAU,CAAC,QAAQ,CAAC;oBACpC,mBAAmB,IAAI,CAAC,CAAC;gBAC3B,CAAC;YACH,CAAC;YACD,iHAAiH;YACjH,IAAI,UAAU,CAAC,SAAS,EAAE,CAAC;gBACzB,UAAU,CAAC,KAAK,GAAG,OAAO,CAAC;gBAC3B,OAAO,IAAI,CAAC,CAAC;YACf,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACxB,IAAI,UAAU,IAAI,iBAAiB,EAAE,CAAC;gBACpC,KAAK,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,QAAS,CAAC,CAAC;YACpC,CAAC;QACH,CAAC;IACH,CAAC;IACD,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;AACvC,CAAC,CAAC;AAEF,SAAS,YAAY,CACnB,KAA8C,EAC9C,SAAiB,EACjB,OAAe,EACf,YAAiC,EACjC,YAA2B;IAE3B,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;IAC5B,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;IACxB,YAAY,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC;AACnE,CAAC;AAED,SAAS,eAAe,CACtB,KAA2C,EAC3C,KAAa,EACb,gBAAwB,EACxB,WAAgC,EAChC,IAAY,EACZ,EAAU,EACV,YAA2B,EAC3B,WAAoC,EACpC,iBAAsC,EACtC,KAAY,EACZ,OAA4C;IAE5C,MAAM,EAAE,eAAe,EAAE,GAAG,KAAK,CAAC;IAElC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACzC,MAAM,YAAY,GAAG,EAAE,GAAG,WAAW,EAAE,CAAC;QACxC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC;YAC5B,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,CAA6B,CAAC;YAC1D,YAAY,CAAC,YAAY,CAAC,QAAS,CAAC,GAAG,YAAY,CAAC,IAAK,CAAC,YAAY,CAAC,QAAS,CAAC,CAAC;QACpF,CAAC;aAAM,CAAC;YACN,MAAM,YAAY,GAAG,KAAM,CAAC,CAAC,CAAiB,CAAC;YAC/C,YAAY,CAAC,YAAY,CAAC,OAAQ,CAAC,GAAG,YAAY,CAAC,IAAI,CAAC;QAC1D,CAAC;QACD,KAAK,IAAI,CAAC,CAAC;QACX,4CAA4C;QAC5C,MAAM,UAAU,GAAG,cAAc,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC;QAC5E,IAAI,gBAAgB,GAAG,KAAK,CAAC;QAC7B,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC;YACpC,gBAAgB,GAAG,IAAI,CAAC;YACxB,gBAAgB,IAAI,CAAC,CAAC;QACxB,CAAC;QACD,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,gBAAgB,CAAC;QACvC,+CAA+C;QAC/C,kEAAkE;QAClE,KAAK,CAAC,CAAC,CAAC,CAAC,sBAAsB,GAAG,KAAK,CAAC;QAExC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,UAAU,EAAE,CAAC;YACpC,CAAC,KAAK,EAAE,gBAAgB,CAAC,GAAG,eAAe,CACzC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAS,EAClB,KAAK,EACL,gBAAgB,EAChB,YAAY,EACZ,IAAI,EACJ,EAAE,EACF,YAAY,EACZ,WAAW,EACX,iBAAiB,EACjB,KAAK,EACL,OAAO,CACR,CAAC;YACF,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU;gBACjB,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU;oBACnB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC,cAAc,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;QACtF,CAAC;aAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,UAAU,EAAE,CAAC;YAC5C,qDAAqD;YACrD,MAAM,UAAU,GAAG,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YAC1C,IAAI,KAAK,IAAI,EAAE,EAAE,CAAC;gBAChB,IAAI,SAAS,GAAG,CAAC,CAAC;gBAClB,IAAI,OAAO,GAAG,CAAC,CAAC;gBAChB,IAAI,UAAU,IAAI,IAAI,EAAE,CAAC;oBACvB,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC;oBACtC,IAAI,UAAU,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;wBACzB,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;oBAC3B,CAAC;yBAAM,CAAC;wBACN,OAAO,GAAG,SAAS,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,GAAG,gBAAgB,CAAC,CAAC;oBAC3D,CAAC;oBACD,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC;oBAC3B,IAAI,gBAAgB,GAAG,SAAS,CAAC;oBACjC,4BAA4B;oBAC5B,IAAI,CAAC,gBAAgB,IAAI,OAAO,GAAG,SAAS,GAAG,CAAC,EAAE,CAAC;wBACjD,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,KAAM,IAAI,CAAC,EAAE,CAAC;4BACzB,gBAAgB,GAAG,SAAS,GAAG,CAAC,CAAC;wBACnC,CAAC;6BAAM,CAAC;4BACN,gBAAgB,GAAG,SAAS,GAAG,CAAC,CAAC;wBACnC,CAAC;oBACH,CAAC;oBACD,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;gBAChF,CAAC;gBACD,gBAAgB,IAAI,OAAO,GAAG,SAAS,CAAC;YAC1C,CAAC;YACD,KAAK,GAAG,UAAU,CAAC;QACrB,CAAC;QAED,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,cAAc,IAAI,eAAe,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,IAAI,UAAU,EAAE,CAAC;YAC3F,KAAK,IAAI,CAAC,CAAC;YACX,KAAK,CAAC,CAAC,CAAC,CAAC,sBAAsB,GAAG,IAAI,CAAC;YAEvC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,IAAI,gBAAgB,IAAI,EAAE,EAAE,CAAC;gBAClD,gBAAgB,IAAI,CAAC,CAAC;YACxB,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;AACnC,CAAC;AAED,MAAM,2BAA2B,GAAG,CAClC,YAAkD,EAClD,WAAoC,EACpC,iBAEE,EACF,iBAAsC,EACtC,KAAY,EACZ,OAA4C,EAC5C,EAAE;IACF,MAAM,YAAY,GAAkB,EAAE,CAAC;IACvC,eAAe,CACb,YAAY,EACZ,CAAC,EACD,CAAC,EACD,EAAE,EACF,iBAAiB,CAAC,UAAU,EAC5B,iBAAiB,CAAC,QAAQ,EAC1B,YAAY,EACZ,WAAW,EACX,iBAAiB,EACjB,KAAK,EACL,OAAO,CACR,CAAC;IACF,OAAO,YAAY,CAAC;AACtB,CAAC,CAAC;AAEF,2DAA2D;AAC3D,kEAAkE;AAClE,SAAS,wBAAwB,CAAC,YAA2B;IAC3D,MAAM,WAAW,GAAG,CAAC,KAAkB,EAAE,EAAE;QACzC,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC,KAAK,CAAC;QAClD,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,QAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;YAC9C,GAAG,IAAI,WAAW,CAAC,CAAC,CAAE,CAAC;YACvB,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,CAAC,CAAC,CAAC;IACR,CAAC,CAAC;IACF,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5C,CAAC;AAED,SAAS,eAAe,CAAC,YAA2B,EAAE,MAAe;IACnE,+DAA+D;IAC/D,MAAM,KAAK,GAAG,CAAC,GAAG,YAAY,CAAmB,CAAC;IAClD,OAAO,KAAK,CAAC,MAAM,EAAE,CAAC;QACpB,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;QAC1B,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,CAAC,KAAK,CAAC,SAAS;gBAAE,KAAK,CAAC,SAAS,GAAG,CAAC,KAAK,CAAC,IAAK,CAAC,CAAC;YACtD,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC;YAC/B,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,CAAC,CAAC;YAChE,KAAK,CAAC,OAAO,GAAG,WAAW,CAAC,aAAc,CAAC,CAAC;YAE5C,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;gBACnB,iDAAiD;gBACjD,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBACzB,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;oBAC1B,CAAC,CAAC,SAAS,GAAG,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC;oBACnC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,IAAK,CAAC,CAAC;gBAC5B,CAAC,CAAC,CAAC;gBACH,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;YAChC,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,YAA8B,CAAC;AACxC,CAAC;AAED,SAAS,2BAA2B,CAClC,OAA4C,EAC5C,UAAkD;IAElD,IAAI,OAAO,EAAE,CAAC,wBAAwB,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC;QAC1E,MAAM,qBAAqB,GAAG,UAAU,EAAE,CAAC,YAAY,EAAE,MAAM,CAC7D,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,EACvD,CAAC,CACF,CAAC;QAEF,MAAM,YAAY,GAAG,EAAE,KAAK,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,IAAI,EAAE,CAAC;QACvF,OAAO,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;IAC9C,CAAC;AACH,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,CAE3E;IACC,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAEzB,IAAI,MAAM,EAAE,MAAO,GAAG,CAAC,IAAI,OAAO,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACnD,IAAI,CAAC;YACH,MAAM,YAAY,GAChB,CAAC,MAAM,OAAO,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE;gBAC5E,GAAG,CAAC,UAAU,EAAE,CAAC,iBAAiB,IAAI;oBACpC,eAAe,EAAE,IAAI;oBACrB,oBAAoB,EAAE,UAAU,EAAE,CAAC,YAAY;iBAChD,CAAC;aACH,CAAC,CAAC,IAAI,EAAE,CAAC;YACZ,uFAAuF;YACvF,4BAA4B;YAC5B,4DAA4D;YAC5D,wBAAwB,CAAC,YAAY,CAAC,CAAC;YACvC,OAAO,CAAC,YAAY,GAAG,eAAe,CAAC,YAAY,EAAE,MAAO,CAAC,CAAC;YAE9D,sGAAsG;YACtG,yEAAyE;YACzE,2BAA2B,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QACnD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,sCAAsC;YACtC,OAAO,CAAC,KAAK,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;;QAAM,OAAO,CAAC,YAAY,GAAG,EAAE,CAAC;IAEjC,OAAO,EAAE,CAAC,OAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;QAClC,MAAM,OAAO,GAAG,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,KAAK,MAAM,CAAC,KAAK,CAAC,EAAE,CAAE,IAAI,CAAC,CAAC;QACrF,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,gBAAgB,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAA2C;IAC1F,MAAM,EAAE,iBAAiB,GAAG,IAAI,EAAE,GAAG,QAAQ,EAAE,CAAC;IAChD,QAAQ,CAAC,+BAA+B,CAAC,iBAAiB,CAAC,CAAC,CAAC;AAC/D,CAAC;AAED,SAAS,2BAA2B,CAClC,YAAuC,EACvC,iBAAmC;IAEnC,MAAM,KAAK,GAAG,CAAC,GAAG,YAAY,CAA+B,CAAC;IAE9D,OAAO,KAAK,CAAC,MAAM,EAAE,CAAC;QACpB,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;QAC1B,MAAM,IAAI,GAAG,KAAM,CAAC,IAAI,CAAC;QAEzB,IAAI,KAAK,EAAE,CAAC;YACV,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC;YAC/B,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC;YAC5B,KAAK,CAAC,QAAQ,GAAG,iBAAiB,CAAC,QAAQ,CAAC;YAC5C,KAAK,CAAC,QAAQ,GAAG,iBAAiB,CAAC,QAAQ,CAAC;YAC5C,KAAK,CAAC,OAAO,GAAG,CAAC,iBAAiB,CAAC,QAAQ,IAAI,iBAAiB,CAAC,QAAQ,CAAE,CAAC;YAE5E,IAAI,IAAI,EAAE,CAAC;gBACT,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,iBAAiB,CAAC,QAAQ,IAAI,iBAAiB,CAAC,QAAQ,CAAE,CAAW,CAAC;gBACzF,KAAK,CAAC,SAAS,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,QAAS,CAAW,CAAC,CAAC;YAClE,CAAC;YAED,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;gBACnB,iDAAiD;gBACjD,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBACzB,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC,KAAM,GAAG,CAAC,CAAC;gBAC7B,CAAC,CAAC,CAAC;gBACH,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;YAChC,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED,KAAK,UAAU,yBAAyB,CAAC,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,CAEtF;IACC,MAAM,EAAE,iBAAiB,EAAE,GAAG,QAAQ,EAAE,CAAC;IACzC,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,IAAI,iBAAiB,IAAI,iBAAiB,CAAC,QAAQ,EAAE,CAAC;QACpD,IAAI,CAAC;YACH,MAAM,YAAY,GAChB,CAAC,MAAM,OAAO,CAAC,UAAU,CAAC,4BAA4B,EAAE,CACtD,QAAQ,CAAC,QAAQ,EAAE,CAAC,EACpB,OAAO,EAAE,CAAC,IAAI,EACd;gBACE,GAAG,CAAC,UAAU,EAAE,CAAC,iBAAiB,IAAI;oBACpC,eAAe,EAAE,IAAI;oBACrB,oBAAoB,EAAE,UAAU,EAAE,CAAC,YAAY;iBAChD,CAAC;aACH,CACF,CAAC,IAAI,EAAE,CAAC;YAEX,OAAO,EAAE,CAAC,OAAO,CAAC,0BAA0B,EAAE,IAAI,CAAC,CAAC;YAEpD,2BAA2B,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAC;YAC7D,OAAO,CAAC,YAAY,GAAG,YAA0C,CAAC;QACpE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,sCAAsC;YACtC,OAAO,CAAC,KAAK,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;SAAM,CAAC;QACN,OAAO,EAAE,CAAC,OAAO,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC;IACvD,CAAC;AACH,CAAC;AAED,MAAM,iBAAiB,GAAG,CACxB,OAA4C,EAC5C,KAAY,EACZ,YAAkD,EAClD,EAAE;IACF,mDAAmD;IACnD,kDAAkD;IAClD,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,MAAM,KAAK,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC;IAChC,MAAM,EAAE,WAAW,EAAE,iBAAiB,EAAE,GAAG,KAAK,CAAC;IAEjD,OAAO,KAAK,CAAC,MAAM,EAAE,CAAC;QACpB,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;QAC5B,2EAA2E;QAC3E,2EAA2E;QAC3E,IAAI,KAAK,EAAE,CAAC;YACV,cAAc,IAAI,CAAC,CAAC;YACpB,MAAM,iBAAiB,GAAG,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;YAClE,MAAM,UAAU,GAAG,cAAc,CAAC,WAAW,EAAE,KAAK,EAAE,iBAAiB,CAAC,CAAC;YACzE,IAAI,UAAU,IAAI,iBAAiB,EAAE,CAAC;gBACpC,KAAK,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,QAAS,CAAC,CAAC;YACpC,CAAC;iBAAM,IAAI,UAAU,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBAC5C,cAAc,IAAI,KAAK,CAAC,KAAK,CAAC;YAChC,CAAC;YAED,IAAI,KAAK,CAAC,sBAAsB,EAAE,CAAC;gBACjC,cAAc,IAAI,CAAC,CAAC;YACtB,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,cAAc,CAAC;AACxB,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,CAE7D,EAAE,EAAE;IACH,MAAM,EAAE,iBAAiB,EAAE,WAAW,EAAE,iBAAiB,EAAE,GAAG,QAAQ,EAAE,CAAC;IACzE,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,MAAM,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC;IACjC,4DAA4D;IAC5D,IAAI,YAAY,EAAE,CAAC;QACjB,IAAI,CAAC,YAAY,CAAC,MAAM,IAAI,OAAO,CAAC,YAAY,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM;YAAE,OAAO;QACzF,OAAO,CAAC,YAAY,GAAG,2BAA2B,CAChD,YAAY,EACZ,WAAW,EACX,iBAAkB,CAAC,eAAe,EAClC,iBAAiB,EACjB,QAAQ,EAAE,EACV,OAAO,CACR,CAAC;IACJ,CAAC;AACH,CAAC,CAAC;AAEF,SAAS,SAAS,CAChB,UAAsB,EACtB,2BASC;IAED,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,kBAAkB,EAAE,GAAG,UAAU,CAAC;IAC/D,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,MAAM,EAAE,QAAQ,EAAE,GAAG,kBAAkB,EAAE,CAAC;IAC1C,IAAI,CAAC,OAAO,CAAC,YAAY,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;QAC1D,6EAA6E;QAC7E,wCAAwC;QACxC,OAAO,EAAE,CAAC,OAAO,CAAC,gBAAgB,EAAE,OAAO,EAAE,CAAC,YAAY,CAAC,CAAC;QAC5D,2BAA2B,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IAC9E,CAAC;SAAM,CAAC;QACN,wDAAwD;QACxD,uEAAuE;QACvE,qCAAqC;QACrC,OAAO,EAAE,CAAC,OAAO,CACf,gBAAgB,EAChB,iBAAiB,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,OAAO,CAAC,YAAY,CAAC,CAC7D,CAAC;QACF,2BAA2B,CAAC;YAC1B,OAAO,CAAC,YAAY;YACpB,OAAO,CAAC,YAAY;YACpB,UAAU;YACV,QAAQ,EAAE,CAAC,WAAW;YACtB,QAAQ,EAAE,CAAC,iBAAiB;SAC7B,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,oGAAoG;AACpG;;;;;;;;GAQG;AACH,eAAe,CAAC,UAAsB,EAAE,EAAE;IACxC,MAAM,sBAAsB,GAAG,eAAe,CAAC,cAAc,CAAC,CAAC;IAC/D,MAAM,iCAAiC,GAAG,eAAe,CAAC,yBAAyB,CAAC,CAAC;IACrF,MAAM,0BAA0B,GAAG,eAAe,CAAC,kBAAkB,CAAC,CAAC;IACvE,MAAM,wBAAwB,GAAG,eAAe,CAAC,gBAAgB,CAAC,CAAC;IAEnE,4EAA4E;IAC5E,iFAAiF;IACjF,UAAU;SACP,cAAc,EAAE;SAChB,SAAS,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,eAAe,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC;IAE7F,KAAK,UAAU,OAAO,CAAC,YAAsC;QAC3D,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,YAAY,CAAC;QAC9C,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;QACzB,8EAA8E;QAC9E,MAAM,sBAAsB,CAC1B,CAAC,YAAY,CAAC,EACd;YACE,KAAK,CAAC,MAAM;YACZ,KAAK,CAAC,gBAAgB;YACtB,KAAK,CAAC,MAAM,EAAE,KAAK;YACnB,KAAK,CAAC,eAAe,EAAE,MAAM;YAC7B,KAAK,CAAC,OAAO;YACb,KAAK,CAAC,eAAe;YACrB,KAAK,CAAC,aAAa;SACpB,CACF,CAAC;QAEF,wBAAwB,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,KAAK,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC;QAE1E,MAAM,iCAAiC,CACrC,CAAC,YAAY,CAAC,EACd;YACE,KAAK,CAAC,iBAAiB;YACvB,KAAK,CAAC,gBAAgB;YACtB,KAAK,CAAC,MAAM,EAAE,KAAK;YACnB,KAAK,CAAC,eAAe;YACrB,KAAK,CAAC,eAAe,EAAE,MAAM;SAC9B,CACF,CAAC;QACF,+CAA+C;QAC/C,+DAA+D;QAC/D,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;YAC5B,2HAA2H;YAC3H,sCAAsC;YACtC,kEAAkE;YAClE,0EAA0E;YAC1E,KAAK;YACL,0BAA0B,CACxB,CAAC,YAAY,CAAC,EACd;gBACE,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtE,UAAU,EAAE,CAAC,YAAY;gBACzB,KAAK,CAAC,WAAW;gBACjB,KAAK,CAAC,iBAAiB;aACxB,CACF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,+EAA+E;IAC/E,8DAA8D;IAC9D,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACvC,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC","sourcesContent":["import type { OmitStrict } from '@pega/cosmos-react-core';\n\nimport {\n getGroupKey,\n getGroupFromKey,\n withMemoization,\n compareArray,\n dateFunctionLabels,\n deepCopy,\n isEmpty\n} from '../../../utils/util';\nimport { actionGroupingExpandCollapseAll } from '../../../actions/actions';\nimport { AFTER_FETCH } from '../../../pubSub/events';\nimport type RsInternal from '../../../RsInternal';\nimport type { BeforeRenderFeatureProps } from '../../featureFactory';\nimport type { MemoizedFunction } from '../../../utils/util.types';\nimport type { Group, GroupFilter, GroupToggle, State } from '../../../../../types/State.types';\nimport type { HierarchicalInfo } from '../../../../../types/Meta.types';\nimport GroupGenerator from '../../../generators/GroupGenerator';\nimport type View from '../../../generators/ViewGenerator';\nimport type RsStore from '../../../RsStore';\nimport type {\n GroupedInfo,\n HierarchicalGroupedInfo,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n ApiContext\n} from '../../../../../types/ApiContext.types';\n\nexport interface CommonGroupingInfo {\n /** Id of the field on which grouping is applied. */\n groupBy: string;\n /** Current group level, starts with 0 for 1st level of grouping. */\n level: number;\n /** Path of the grouped column value. */\n hierarchy: (string | number | boolean | Date)[];\n visibleRow?: boolean;\n showHierarchicalFooter?: boolean;\n groupFrom?: number;\n groupTo?: number;\n isHierarchical?: boolean;\n}\n\nexport type GroupingInfo = OmitStrict<GroupedInfo, 'children'> &\n CommonGroupingInfo & {\n children?: GroupingInfo[];\n };\n\nexport type HierarchicalGroupingInfo = OmitStrict<HierarchicalGroupedInfo, 'children'> &\n CommonGroupingInfo & {\n children?: HierarchicalGroupingInfo[];\n parentId?: string;\n targetId?: string;\n name?: null | string | number | boolean | Date;\n };\n\nfunction isNodeExpanded(\n groupToggle: GroupToggle | undefined,\n node: GroupingInfo | HierarchicalGroupingInfo,\n defaultState: boolean | undefined\n): boolean {\n /** Groups with 0 count should not be expandable. */\n if (node.count === 0) {\n return false;\n }\n\n const index = groupToggle?.[node.groupBy!]?.findIndex(gct => compareArray(gct, node.hierarchy!));\n const childToggleState = index! >= 0 ? !defaultState : !!defaultState;\n return childToggleState === true;\n}\n\nconst getLabel = (view: View, groupBy: string, getState: BeforeRenderFeatureProps['getState']) => {\n const { columnId, dateFunction } = getGroupFromKey(groupBy, getState().groups)!;\n let { label } = view.columns!.find(column => column.field.id.toString() === columnId.toString())!;\n if (dateFunction) {\n // @ts-expect-error dateFunction cannot be used to index dateFunctionLabels. Check this.\n label += ` (${dateFunctionLabels[dateFunction]})`;\n }\n return label;\n};\n\n// This function checks if hierarchy exist or not.\n// which will decide whether start and end Index would be there on leaf node or on hierarchical node.\nconst doesExistInViewInfo = (\n viewInfo: GroupFilter[],\n hierarchy: (string | number | boolean | Date)[] = [],\n isHierarchical = false\n) => {\n return viewInfo.some(v => {\n const filters = Object.values(v.filters);\n\n if (isHierarchical) {\n return filters.every(value => value === [...hierarchy].pop());\n }\n\n if (filters.length === hierarchy.length) {\n const tempHierarchy = [...hierarchy];\n // eslint-disable-next-line @typescript-eslint/require-array-sort-compare\n tempHierarchy.sort();\n // eslint-disable-next-line @typescript-eslint/require-array-sort-compare\n return filters.sort().every((value, index) => value === tempHierarchy[index]);\n }\n return false;\n });\n};\n\nconst prepareGroupHeaders = (\n props: [\n groupingInfo: RsStore['groupingInfo'],\n groupFilters: RsStore['groupFilters'],\n rsInternal: RsInternal,\n groupToggle?: State['groupToggle'],\n allGroupsExpanded?: boolean\n ]\n) => {\n const [groupingInfo = [], viewInfo = [], rsInternal, groupToggle = {}, allGroupsExpanded] = props;\n\n // If group and viewInfo are empty, prerape group header for top level leaf node.\n // This is for easing on UI , one contract whether grouping is in place/not.\n // TODO: support for enabling feature on view.\n const view = rsInternal.getView();\n const { getState } = rsInternal.getRsStateResolver();\n if (groupingInfo.length === 0) {\n // construct view header object.\n\n const viewHeader = new GroupGenerator(\n {\n isVisible: false,\n isLeafNode: true,\n isExpanded: true,\n name: '',\n groupBy: '',\n level: 0,\n label: '',\n hierarchy: [],\n count: view.rows!.length\n },\n rsInternal\n );\n viewHeader.startIndex = 0;\n viewHeader.endIndex = view.rows ? view.rows.length : 0;\n view.setProp('groupHeaders', [viewHeader]);\n return;\n }\n // Creating flat objects from view group info using DFT.\n const result = [];\n let counter = 0;\n\n const stack = groupingInfo.map(v => ({ ...v }));\n let leafNodeCountInView = 0;\n let lastDataIndex = 0;\n while (stack.length) {\n const child = stack.shift();\n if (child) {\n const isExpanded = isNodeExpanded(groupToggle, child, allGroupsExpanded);\n const isSubGroupPresent = child.children && child.children.length;\n const label = child.isHierarchical ? '' : getLabel(view, child.groupBy!, getState);\n // construct view header object.\n const viewHeader = new GroupGenerator(\n {\n isVisible: !!child.visibleRow,\n isLeafNode: !isSubGroupPresent,\n isExpanded,\n name: child.name!,\n groupBy: child.groupBy,\n level: child.level,\n label: label!,\n hierarchy: child.hierarchy,\n count: child.count,\n aggregation: child.agg,\n showHierarchicalFooter: child.showHierarchicalFooter,\n isHierarchical: child.isHierarchical,\n info: 'info' in child ? child.info : undefined,\n data: 'data' in child ? child.data : undefined,\n additionalFieldsData:\n 'additionalFieldsData' in child ? child.additionalFieldsData : undefined\n },\n rsInternal\n );\n // If header node is a leaf node then , add start index and endIndex to resolve data.\n if (\n (viewHeader.isLeafNode || viewHeader.isHierarchical) &&\n viewHeader.isExpanded &&\n doesExistInViewInfo(viewInfo, viewHeader.hierarchy, viewHeader.isHierarchical)\n ) {\n const { groupFrom, groupTo } = viewInfo[leafNodeCountInView] || {};\n if (groupFrom >= 0 && groupTo >= 0) {\n viewHeader.startIndex = lastDataIndex;\n viewHeader.endIndex = viewHeader.startIndex + groupTo - groupFrom;\n lastDataIndex = viewHeader.endIndex;\n leafNodeCountInView += 1;\n }\n }\n // BUG-775861 - Adding index to visible groupHeaders so that this can be used to set the z-index for groupHeaders\n if (viewHeader.isVisible) {\n viewHeader.index = counter;\n counter += 1;\n }\n result.push(viewHeader);\n if (isExpanded && isSubGroupPresent) {\n stack.unshift(...child.children!);\n }\n }\n }\n view.setProp('groupHeaders', result);\n};\n\nfunction includeGroup(\n group: GroupingInfo | HierarchicalGroupingInfo,\n groupFrom: number,\n groupTo: number,\n parentGroups: Record<string, any>,\n groupFilters: GroupFilter[]\n) {\n group.groupFrom = groupFrom;\n group.groupTo = groupTo;\n groupFilters.push({ groupFrom, groupTo, filters: parentGroups });\n}\n\nfunction getRecordsCount(\n group: NonNullable<RsStore['groupingInfo']>,\n count: number,\n includedRowCount: number,\n parentGroup: Record<string, any>,\n from: number,\n to: number,\n groupFilters: GroupFilter[],\n groupToggle: GroupToggle | undefined,\n allGroupsExpanded: boolean | undefined,\n state: State,\n getView: BeforeRenderFeatureProps['getView']\n): [count: number, includedRowCount: number] {\n const { aggregationInfo } = state;\n\n for (let i = 0; i < group.length; i += 1) {\n const parentGroups = { ...parentGroup };\n if (group[i].isHierarchical) {\n const currentGroup = group[i] as HierarchicalGroupingInfo;\n parentGroups[currentGroup.parentId!] = currentGroup.info![currentGroup.targetId!];\n } else {\n const currentGroup = group![i] as GroupingInfo;\n parentGroups[currentGroup.groupBy!] = currentGroup.name;\n }\n count += 1;\n // group has subgroups and group is expanded\n const isExpanded = isNodeExpanded(groupToggle, group[i], allGroupsExpanded);\n let includeThisGroup = false;\n if (count > from && count - 1 <= to) {\n includeThisGroup = true;\n includedRowCount += 1;\n }\n group[i].visibleRow = includeThisGroup;\n // Footer should be shown only if node expands.\n // groupToggle will effect footer visibility so reset footer flag.\n group[i].showHierarchicalFooter = false;\n\n if (group[i].children && isExpanded) {\n [count, includedRowCount] = getRecordsCount(\n group[i].children!,\n count,\n includedRowCount,\n parentGroups,\n from,\n to,\n groupFilters,\n groupToggle,\n allGroupsExpanded,\n state,\n getView\n );\n group[i].visibleRow =\n group[i].visibleRow ||\n !!group[i].children!.find(g => g.visibleRow && (g.isHierarchical || !g.children));\n } else if (!group[i].children && isExpanded) {\n // group doesn't have subgroups and group is expanded\n const innerCount = count + group[i].count;\n if (count <= to) {\n let groupFrom = 0;\n let groupTo = 0;\n if (innerCount >= from) {\n groupFrom = Math.max(from - count, 0);\n if (innerCount <= to + 1) {\n groupTo = group[i].count;\n } else {\n groupTo = groupFrom + (to + 1 - from - includedRowCount);\n }\n group[i].visibleRow = true;\n let updatedGroupFrom = groupFrom;\n // Sticky group header logic\n if (!includeThisGroup && groupTo > groupFrom + 2) {\n if (group[i].level! >= 1) {\n updatedGroupFrom = groupFrom + 2;\n } else {\n updatedGroupFrom = groupFrom + 1;\n }\n }\n includeGroup(group[i], updatedGroupFrom, groupTo, parentGroups, groupFilters);\n }\n includedRowCount += groupTo - groupFrom;\n }\n count = innerCount;\n }\n\n if (group[i].isHierarchical && aggregationInfo && aggregationInfo.length > 0 && isExpanded) {\n count += 1;\n group[i].showHierarchicalFooter = true;\n\n if (group[i].visibleRow && includedRowCount <= to) {\n includedRowCount += 1;\n }\n }\n }\n return [count, includedRowCount];\n}\n\nconst constructGroupingPagination = (\n groupingInfo: NonNullable<RsStore['groupingInfo']>,\n groupToggle: GroupToggle | undefined,\n paginationOptions: NonNullable<State['paginationOptions']>[keyof NonNullable<\n State['paginationOptions']\n >],\n allGroupsExpanded: boolean | undefined,\n state: State,\n getView: BeforeRenderFeatureProps['getView']\n) => {\n const groupFilters: GroupFilter[] = [];\n getRecordsCount(\n groupingInfo,\n 0,\n 0,\n {},\n paginationOptions.startIndex,\n paginationOptions.endIndex,\n groupFilters,\n groupToggle,\n allGroupsExpanded,\n state,\n getView\n );\n return groupFilters;\n};\n\n// This is basically used to update count on non leaf node.\n// which is sum of count of leaf node children in their hierarchy.\nfunction updateCountOnNonLeafNode(groupingInfo: GroupedInfo[]) {\n const updateCount = (child: GroupedInfo) => {\n if (child.count !== undefined) return child.count;\n child.count = child.children!.reduce((acc, c) => {\n acc += updateCount(c)!;\n return acc;\n }, 0);\n };\n groupingInfo.forEach(g => updateCount(g));\n}\n\nfunction updateGroupInfo(groupingInfo: GroupedInfo[], groups: Group[]): GroupingInfo[] {\n // iterate groupingInfo using BFS and update basic information.\n const queue = [...groupingInfo] as GroupingInfo[];\n while (queue.length) {\n const child = queue.pop();\n if (child) {\n if (!child.hierarchy) child.hierarchy = [child.name!];\n child.level = child.level || 0;\n const matchingGroup = groups.find(g => g.level === child.level);\n child.groupBy = getGroupKey(matchingGroup!);\n\n if (child.children) {\n // update level before pushing children to queue.\n child.children.forEach(c => {\n c.level = child.level + 1;\n c.hierarchy = [...child.hierarchy];\n c.hierarchy.push(c.name!);\n });\n queue.push(...child.children);\n }\n }\n }\n return groupingInfo as GroupingInfo[];\n}\n\nfunction updateCountFromGroupingInfo(\n getView: BeforeRenderFeatureProps['getView'],\n getRsStore: BeforeRenderFeatureProps['getRsStore']\n) {\n if (getView().countGeneratedInternally || isEmpty(getView().resultsCount)) {\n const countFromGroupingInfo = getRsStore().groupingInfo?.reduce(\n (acc, group) => (group.count ? acc + group.count : acc),\n 0\n );\n\n const countPayload = { count: countFromGroupingInfo, _countGeneratedInternally: true };\n getView().type.setRecordCount(countPayload);\n }\n}\n\nasync function onGroupsChange([{ getRsProps, getRsStore, getView, getState }]: [\n featureProps: BeforeRenderFeatureProps\n]) {\n const rsStore = getRsStore();\n const rsProps = getRsProps();\n const state = getState();\n const { groups } = state;\n\n if (groups?.length! > 0 && getView().meta.grouping) {\n try {\n const groupingInfo =\n (await rsProps.apiContext.fetchGroupedInfo?.(deepCopy(state), getView().meta, {\n ...(getRsStore().refreshInProgress && {\n invalidateCache: true,\n invalidateCacheToken: getRsStore().refreshToken\n })\n })) || [];\n // Here update group info with basic properties like level, group by, expand state etc.\n // to make calculation easy.\n // TODO: FIXME - Check if count on non leaf node is required\n updateCountOnNonLeafNode(groupingInfo);\n rsStore.groupingInfo = updateGroupInfo(groupingInfo, groups!);\n\n // FIXME: once infinite virtualizer supports the grouping, we need not compute the count from grouping\n // Prepare the count from the groups count until the actual count returns\n updateCountFromGroupingInfo(getView, getRsStore);\n } catch (err) {\n // eslint-disable-next-line no-console\n console.error('API call failed', err);\n }\n } else rsStore.groupingInfo = [];\n\n getView().columns!.forEach(column => {\n const grouped = groups?.findIndex(group => group.columnId === column.field.id)! >= 0;\n column = column.setProp('grouped', grouped);\n });\n}\n\nfunction autoExpandGroups([{ dispatch, getState }]: [featureProps: BeforeRenderFeatureProps]) {\n const { allGroupsExpanded = true } = getState();\n dispatch(actionGroupingExpandCollapseAll(allGroupsExpanded));\n}\n\nfunction updateHierarchicalGroupInfo(\n groupingInfo: HierarchicalGroupedInfo[],\n hierarchicalGroup: HierarchicalInfo\n) {\n const queue = [...groupingInfo] as HierarchicalGroupingInfo[];\n\n while (queue.length) {\n const child = queue.pop();\n const node = child!.info;\n\n if (child) {\n child.level = child.level || 0;\n child.isHierarchical = true;\n child.parentId = hierarchicalGroup.parentId;\n child.targetId = hierarchicalGroup.targetId;\n child.groupBy = (hierarchicalGroup.sortById || hierarchicalGroup.targetId)!;\n\n if (node) {\n child.name = node[(hierarchicalGroup.sortById || hierarchicalGroup.targetId)!] as string;\n child.hierarchy = [node[hierarchicalGroup.targetId!] as string];\n }\n\n if (child.children) {\n // update level before pushing children to queue.\n child.children.forEach(c => {\n c.level = child.level! + 1;\n });\n queue.push(...child.children);\n }\n }\n }\n}\n\nasync function onHierarchicalGroupChange([{ getState, getRsProps, getRsStore, getView }]: [\n featureProps: BeforeRenderFeatureProps\n]) {\n const { hierarchicalGroup } = getState();\n const rsProps = getRsProps();\n const rsStore = getRsStore();\n if (hierarchicalGroup && hierarchicalGroup.parentId) {\n try {\n const groupingInfo =\n (await rsProps.apiContext.fetchHierarchicalGroupedInfo?.(\n deepCopy(getState()),\n getView().meta,\n {\n ...(getRsStore().refreshInProgress && {\n invalidateCache: true,\n invalidateCacheToken: getRsStore().refreshToken\n })\n }\n )) || [];\n\n getView().setProp('hierarchicalGroupEnabled', true);\n\n updateHierarchicalGroupInfo(groupingInfo, hierarchicalGroup);\n rsStore.groupingInfo = groupingInfo as HierarchicalGroupingInfo[];\n } catch (err) {\n // eslint-disable-next-line no-console\n console.error('API call failed', err);\n }\n } else {\n getView().setProp('hierarchicalGroupEnabled', false);\n }\n}\n\nconst getTotalItemCount = (\n getView: BeforeRenderFeatureProps['getView'],\n state: State,\n groupingInfo: NonNullable<RsStore['groupingInfo']>\n) => {\n // Calculate total group count and update instance.\n // and datanode count based on group expand state.\n let totalItemCount = 0;\n const stack = [...groupingInfo];\n const { groupToggle, allGroupsExpanded } = state;\n\n while (stack.length) {\n const child = stack.shift();\n // We are considering header count whether if it is of hierarchical node or\n // a normal group node and it has data associated with it in its hierarchy.\n if (child) {\n totalItemCount += 1;\n const isSubGroupPresent = child.children && child.children.length;\n const isExpanded = isNodeExpanded(groupToggle, child, allGroupsExpanded);\n if (isExpanded && isSubGroupPresent) {\n stack.unshift(...child.children!);\n } else if (isExpanded && !isSubGroupPresent) {\n totalItemCount += child.count;\n }\n\n if (child.showHierarchicalFooter) {\n totalItemCount += 1;\n }\n }\n }\n return totalItemCount;\n};\n\nconst updateGroupFilters = ([{ getState, getRsStore, getView }]: [\n featureProps: BeforeRenderFeatureProps\n]) => {\n const { paginationOptions, groupToggle, allGroupsExpanded } = getState();\n const rsStore = getRsStore();\n const { groupingInfo } = rsStore;\n // group info is expected to be [] when there are no groups.\n if (groupingInfo) {\n if (!groupingInfo.length && rsStore.groupFilters && !rsStore.groupFilters.length) return;\n rsStore.groupFilters = constructGroupingPagination(\n groupingInfo,\n groupToggle,\n paginationOptions!.rootVirtualiser,\n allGroupsExpanded,\n getState(),\n getView\n );\n }\n};\n\nfunction postFetch(\n rsInternal: RsInternal,\n memoizedPrepareGroupHeaders: MemoizedFunction<\n [\n groupingInfo: RsStore['groupingInfo'],\n groupFilters: RsStore['groupFilters'],\n rsInternal: RsInternal,\n groupToggle?: State['groupToggle'],\n allGroupsExpanded?: State['allGroupsExpanded']\n ],\n ReturnType<typeof prepareGroupHeaders>\n >\n) {\n const { getRsStore, getView, getRsStateResolver } = rsInternal;\n const rsStore = getRsStore();\n const { getState } = getRsStateResolver();\n if (!rsStore.groupingInfo || !rsStore.groupingInfo.length) {\n // As we are giving ways to always use header though grouping is not in place\n // update total item count given by API.\n getView().setProp('totalItemCount', getView().resultsCount);\n memoizedPrepareGroupHeaders([[], [], rsInternal], [getView().rows!.length]);\n } else {\n // As our group headers are representing data in UI , so\n // like data after every fetch group headers should also change so that\n // UI get to know about latest group.\n getView().setProp(\n 'totalItemCount',\n getTotalItemCount(getView, getState(), rsStore.groupingInfo)\n );\n memoizedPrepareGroupHeaders([\n rsStore.groupingInfo,\n rsStore.groupFilters,\n rsInternal,\n getState().groupToggle,\n getState().allGroupsExpanded\n ]);\n }\n}\n\n// TODO: Need to make changes in grouping to support 0 based indexing inclusive start and end index.\n/**\n * Handles the grouping feature for repeating structures.\n *\n * This method performs the following tasks:\n * - Fetches the grouping information, either via {@link ApiContext.fetchGroupedInfo} or {@link ApiContext.fetchHierarchicalGroupedInfo}, and stores the result in {@link RsStore.groupingInfo}.\n * - Prepares group filters based on the grouping information, then sets these filters in {@link RsStore.groupFilters}.\n * - Manages the automatic expansion of groups.\n * - Prepares group headers from the fetched grouping information and sets them in {@link View.groupHeaders}.\n */\nexport default (rsInternal: RsInternal) => {\n const memoizedOnGroupsChange = withMemoization(onGroupsChange);\n const memorizeOnHierarchicalGroupChange = withMemoization(onHierarchicalGroupChange);\n const memoizedUpdateGroupFilters = withMemoization(updateGroupFilters);\n const memoizedAutoExpandGroups = withMemoization(autoExpandGroups);\n\n // Prepare group header even though groups are not present to have one flow.\n // depend on after fetch event as , it depends on data when no grouping is there.\n rsInternal\n .getPubSubUtils()\n .subscribe(AFTER_FETCH, () => postFetch(rsInternal, withMemoization(prepareGroupHeaders)));\n\n async function execute(featureProps: BeforeRenderFeatureProps) {\n const { getState, getRsStore } = featureProps;\n const state = getState();\n // TOdo: Fixme ISSUE-76344... try to not rely on state.personalization?.active\n await memoizedOnGroupsChange(\n [featureProps],\n [\n state.groups,\n state.filterExpression,\n state.search?.query,\n state.personalization?.active,\n state.refresh,\n state.aggregationInfo,\n state.hiddenColumns\n ]\n );\n\n memoizedAutoExpandGroups([featureProps], [state.personalization?.active]);\n\n await memorizeOnHierarchicalGroupChange(\n [featureProps],\n [\n state.hierarchicalGroup,\n state.filterExpression,\n state.search?.query,\n state.aggregationInfo,\n state.personalization?.active\n ]\n );\n // In new grouping, update group info in state.\n // Action dispatched for group info will prepare group headers.\n if (state.paginationOptions) {\n // TODO: use this comarator for optimization but isVisible calculated prop on grouping info needs to be handled.ISSUE-80012\n // const comparator =(prev, next) => {\n // if (prev[1] !== next[1] || prev[3] !== next[3]) return false;\n // return compareArray(prev[2], next[2], ['children', 'count', 'name']);\n // };\n memoizedUpdateGroupFilters(\n [featureProps],\n [\n state.paginationOptions[Object.keys(state.paginationOptions || {})[0]],\n getRsStore().groupingInfo,\n state.groupToggle,\n state.allGroupsExpanded\n ]\n );\n }\n }\n\n // As we are generating one flow, this is required. TODO: Need to take decision\n // conditional block on UI or feature push though not enabled.\n if (rsInternal.getView().meta.grouping) {\n return execute;\n }\n\n return undefined;\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"personalization.d.ts","sourceRoot":"","sources":["../../../../../../src/core/features/uIFeatures/beforeRender/personalization.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,UAAU,MAAM,qBAAqB,CAAC;AAElD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAkRrE,iBAAS,OAAO,CAAC,YAAY,EAAE,wBAAwB,oCAuJtD;AAED;;;;;;;;;GASG;yBACa,YAAY,UAAU;AAAtC,wBAOE"}
1
+ {"version":3,"file":"personalization.d.ts","sourceRoot":"","sources":["../../../../../../src/core/features/uIFeatures/beforeRender/personalization.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,UAAU,MAAM,qBAAqB,CAAC;AAElD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AA2RrE,iBAAS,OAAO,CAAC,YAAY,EAAE,wBAAwB,oCAuJtD;AAED;;;;;;;;;GASG;yBACa,YAAY,UAAU;AAAtC,wBAOE"}
@@ -3,18 +3,20 @@ import ActionTypes from '../../../actions/actionConstants';
3
3
  import { removeEmptyValuesFromObject } from '../../../utils/util';
4
4
  import { defaultPresetIdIndex } from '../../../constants';
5
5
  import { REPEATING_STRUCTURE_TEMPLATES } from '../../../../../types/Meta.types';
6
- function personalizationUpdate({ getRsProps, dispatch }, payload, personalization) {
6
+ function personalizationUpdate({ getRsProps, getRsStore, dispatch }, payload, personalization) {
7
7
  const rsProps = getRsProps();
8
8
  const { personalizationKey, markAsDefault, markAsAppDefault } = payload;
9
9
  const viewName = personalization.allPersonalizations[personalizationKey].name;
10
+ const { translate } = getRsStore();
10
11
  rsProps.apiContext.updatePersonalization(personalizationKey, {
11
12
  markAsDefault: markAsDefault || personalization.allPersonalizations[personalizationKey].markAsDefault,
12
13
  ...personalization.allPersonalizations[personalizationKey],
13
14
  markAsAppDefault
14
15
  }).then(() => {
15
16
  dispatch(actionNotificationAdd({
16
- // FIXME: Identify how to use translated values inside core library.
17
- content: `'${viewName}' saved with changes${markAsDefault ? ' and marked as default view' : ''}`
17
+ content: markAsDefault
18
+ ? translate('saved_changes_with_default', [viewName])
19
+ : translate('saved_changes', [viewName])
18
20
  }));
19
21
  });
20
22
  }
@@ -23,24 +25,26 @@ function personalizationUpdatePresetId({ getRsProps }, payload, personalization)
23
25
  const rsProps = getRsProps();
24
26
  rsProps.apiContext.updatePersonalization(personalizationKey, personalization.allPersonalizations[personalizationKey]);
25
27
  }
26
- function personalizationSetDefault({ getRsProps, dispatch }, payload, personalization) {
28
+ function personalizationSetDefault({ getRsProps, getRsStore, dispatch }, payload, personalization) {
27
29
  const { personalizationKey } = payload;
28
30
  const rsProps = getRsProps();
29
31
  const { updatePersonalization } = rsProps.apiContext;
32
+ const { translate } = getRsStore();
30
33
  const setDefault = updatePersonalization(personalizationKey, {
31
34
  markAsDefault: true
32
35
  });
33
36
  const viewName = personalization.allPersonalizations[personalizationKey].name;
34
37
  setDefault.then(() => {
35
38
  dispatch(actionNotificationAdd({
36
- content: `'${viewName}' view is marked as Default`
39
+ content: translate('view_marked_default', [viewName])
37
40
  }));
38
41
  });
39
42
  }
40
- function personalizationSetAppDefault({ getRsProps, dispatch }, payload, personalization) {
43
+ function personalizationSetAppDefault({ getRsProps, getRsStore, dispatch }, payload, personalization) {
41
44
  const { personalizationKey, personalizationName } = payload;
42
45
  const rsProps = getRsProps();
43
46
  const { updatePersonalization } = rsProps.apiContext;
47
+ const { translate } = getRsStore();
44
48
  personalization.allPersonalizations[personalizationKey].name = personalizationName;
45
49
  const setAppDefault = updatePersonalization(personalizationKey, {
46
50
  markAsAppDefault: true,
@@ -51,14 +55,15 @@ function personalizationSetAppDefault({ getRsProps, dispatch }, payload, persona
51
55
  const viewName = personalization.allPersonalizations[personalizationKey].name;
52
56
  setAppDefault.then(() => {
53
57
  dispatch(actionNotificationAdd({
54
- content: `'${viewName}' view is marked as App Default`
58
+ content: translate('view_marked_app_default', [viewName])
55
59
  }));
56
60
  });
57
61
  }
58
- function personalizationCreation({ getRsProps, dispatch }, payload, personalization) {
62
+ function personalizationCreation({ getRsProps, getRsStore, dispatch }, payload, personalization) {
59
63
  const { personalizationKey, markAsDefault } = payload;
60
64
  const rsProps = getRsProps();
61
65
  const viewName = personalization.allPersonalizations[personalizationKey].name;
66
+ const { translate } = getRsStore();
62
67
  rsProps.apiContext.createPersonalization(personalizationKey, {
63
68
  markAsDefault,
64
69
  ...personalization.allPersonalizations[personalizationKey]
@@ -68,18 +73,21 @@ function personalizationCreation({ getRsProps, dispatch }, payload, personalizat
68
73
  dispatch(actionPersonalizationUpdateId(personalizationKey, actualPersonalizationKey));
69
74
  }
70
75
  dispatch(actionNotificationAdd({
71
- content: `Created view '${viewName}'${markAsDefault ? ' and marked as default view' : ''}`
76
+ content: markAsDefault
77
+ ? translate('created_view_with_default', [viewName])
78
+ : translate('created_view', [viewName])
72
79
  }));
73
80
  });
74
81
  }
75
- function personalizationDeletion({ getRsProps, dispatch }, payload, personalization) {
82
+ function personalizationDeletion({ getRsProps, getRsStore, dispatch }, payload, personalization) {
76
83
  const { personalizationKey, deletePresetPersonalizations } = payload;
77
84
  const rsProps = getRsProps();
78
85
  const viewName = personalization.lastDeletedPersonalization.name;
86
+ const { translate } = getRsStore();
79
87
  rsProps.apiContext.deletePersonalization(personalizationKey).then(() => {
80
88
  if (!deletePresetPersonalizations) {
81
89
  dispatch(actionNotificationAdd({
82
- content: `Deleted view '${viewName}'`
90
+ content: translate('deleted_view', [viewName])
83
91
  }));
84
92
  }
85
93
  });
@@ -1 +1 @@
1
- {"version":3,"file":"personalization.js","sourceRoot":"","sources":["../../../../../../src/core/features/uIFeatures/beforeRender/personalization.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n actionGetPersonalizations,\n actionNotificationAdd,\n actionPersonalizationUpdateId,\n actionPersonalizationDelete,\n actionPersonalizationUpdatePresetId\n} from '../../../actions/actions';\nimport ActionTypes from '../../../actions/actionConstants';\nimport { removeEmptyValuesFromObject } from '../../../utils/util';\nimport { defaultPresetIdIndex } from '../../../constants';\nimport type RsInternal from '../../../RsInternal';\nimport type { PersonalizationResponse } from '../../../../../types/ApiContext.types';\nimport type { BeforeRenderFeatureProps } from '../../featureFactory';\nimport type { Personalization, PersonalizationInfo } from '../../../../../types/State.types';\nimport type {\n PersonalizationCreateAction,\n PersonalizationDeleteAction,\n PersonalizationEditAction,\n PersonalizationSetAppDefaultAction,\n PersonalizationSetDefaultAction,\n PersonalizationUpdateAction,\n PersonalizationUpdatePresetIdAction\n} from '../../../actions/actions.types';\nimport { REPEATING_STRUCTURE_TEMPLATES } from '../../../../../types/Meta.types';\n\nfunction personalizationUpdate(\n { getRsProps, dispatch }: BeforeRenderFeatureProps,\n payload: PersonalizationUpdateAction['payload'],\n personalization: Personalization\n) {\n const rsProps = getRsProps();\n const { personalizationKey, markAsDefault, markAsAppDefault } = payload;\n const viewName = personalization.allPersonalizations[personalizationKey].name;\n rsProps.apiContext.updatePersonalization!(personalizationKey, {\n markAsDefault:\n markAsDefault || personalization.allPersonalizations[personalizationKey].markAsDefault,\n ...personalization.allPersonalizations[personalizationKey],\n markAsAppDefault\n }).then(() => {\n dispatch(\n actionNotificationAdd({\n // FIXME: Identify how to use translated values inside core library.\n content: `'${viewName}' saved with changes${\n markAsDefault ? ' and marked as default view' : ''\n }`\n })\n );\n });\n}\n\nfunction personalizationUpdatePresetId(\n { getRsProps }: BeforeRenderFeatureProps,\n payload: PersonalizationUpdatePresetIdAction['payload'],\n personalization: Personalization\n) {\n const { personalizationKey } = payload;\n const rsProps = getRsProps();\n rsProps.apiContext.updatePersonalization!(\n personalizationKey,\n personalization.allPersonalizations[personalizationKey]\n );\n}\n\nfunction personalizationSetDefault(\n { getRsProps, dispatch }: BeforeRenderFeatureProps,\n payload: PersonalizationSetDefaultAction['payload'],\n personalization: Personalization\n) {\n const { personalizationKey } = payload;\n const rsProps = getRsProps();\n const { updatePersonalization } = rsProps.apiContext;\n\n const setDefault = updatePersonalization!(personalizationKey, {\n markAsDefault: true\n });\n const viewName = personalization.allPersonalizations[personalizationKey].name;\n\n setDefault.then(() => {\n dispatch(\n actionNotificationAdd({\n content: `'${viewName}' view is marked as Default`\n })\n );\n });\n}\n\nfunction personalizationSetAppDefault(\n { getRsProps, dispatch }: BeforeRenderFeatureProps,\n payload: PersonalizationSetAppDefaultAction['payload'],\n personalization: Personalization\n) {\n const { personalizationKey, personalizationName } = payload;\n const rsProps = getRsProps();\n const { updatePersonalization } = rsProps.apiContext;\n personalization.allPersonalizations[personalizationKey].name = personalizationName;\n\n const setAppDefault = updatePersonalization!(personalizationKey, {\n markAsAppDefault: true,\n // @ts-expect-error name is added twice. Check this.\n name: personalizationName,\n ...personalization.allPersonalizations[personalizationKey]\n });\n const viewName = personalization.allPersonalizations[personalizationKey].name;\n\n setAppDefault.then(() => {\n dispatch(\n actionNotificationAdd({\n content: `'${viewName}' view is marked as App Default`\n })\n );\n });\n}\n\nfunction personalizationCreation(\n { getRsProps, dispatch }: BeforeRenderFeatureProps,\n payload: PersonalizationCreateAction['payload'],\n personalization: Personalization\n) {\n const { personalizationKey, markAsDefault } = payload;\n const rsProps = getRsProps();\n const viewName = personalization.allPersonalizations[personalizationKey].name;\n rsProps.apiContext.createPersonalization!(personalizationKey, {\n markAsDefault,\n ...personalization.allPersonalizations[personalizationKey]\n }).then(response => {\n const actualPersonalizationKey = (response as { data: string }).data || (response as string);\n\n if (actualPersonalizationKey !== personalizationKey) {\n dispatch(actionPersonalizationUpdateId(personalizationKey, actualPersonalizationKey));\n }\n dispatch(\n actionNotificationAdd({\n content: `Created view '${viewName}'${markAsDefault ? ' and marked as default view' : ''}`\n })\n );\n });\n}\n\nfunction personalizationDeletion(\n { getRsProps, dispatch }: BeforeRenderFeatureProps,\n payload: PersonalizationDeleteAction['payload'],\n personalization: Personalization\n) {\n const { personalizationKey, deletePresetPersonalizations } = payload;\n const rsProps = getRsProps();\n const viewName = personalization.lastDeletedPersonalization!.name;\n rsProps.apiContext.deletePersonalization!(personalizationKey).then(() => {\n if (!deletePresetPersonalizations) {\n dispatch(\n actionNotificationAdd({\n content: `Deleted view '${viewName}'`\n })\n );\n }\n });\n}\n\nfunction syncPersonalization(featureProps: BeforeRenderFeatureProps) {\n const { getState, queuedActions } = featureProps;\n const personalizationActions = [\n ActionTypes.PERSONALIZATION_UPDATE,\n ActionTypes.PERSONALIZATION_EDIT,\n ActionTypes.PERSONALIZATION_SET_DEFAULT,\n ActionTypes.PERSONALIZATION_SET_APP_DEFAULT,\n ActionTypes.PERSONALIZATION_CREATE,\n ActionTypes.PERSONALIZATION_DELETE,\n ActionTypes.PERSONALIZATION_UPDATE_PRESET_ID\n ];\n const actionTypes = queuedActions.map(a => a.type);\n const personalizationAction = personalizationActions.find(a => actionTypes.includes(a));\n if (personalizationAction) {\n const actionDispatched = queuedActions.find(a => a.type === personalizationAction)!;\n const { personalization } = getState();\n switch (personalizationAction) {\n case ActionTypes.PERSONALIZATION_EDIT:\n case ActionTypes.PERSONALIZATION_UPDATE:\n personalizationUpdate(\n featureProps,\n (actionDispatched as PersonalizationEditAction | PersonalizationUpdateAction).payload,\n personalization!\n );\n break;\n case ActionTypes.PERSONALIZATION_SET_DEFAULT:\n personalizationSetDefault(\n featureProps,\n (actionDispatched as PersonalizationSetDefaultAction).payload,\n personalization!\n );\n break;\n case ActionTypes.PERSONALIZATION_SET_APP_DEFAULT:\n personalizationSetAppDefault(\n featureProps,\n (actionDispatched as PersonalizationSetAppDefaultAction).payload,\n personalization!\n );\n break;\n case ActionTypes.PERSONALIZATION_CREATE:\n personalizationCreation(\n featureProps,\n (actionDispatched as PersonalizationCreateAction).payload,\n personalization!\n );\n break;\n case ActionTypes.PERSONALIZATION_DELETE:\n personalizationDeletion(\n featureProps,\n (actionDispatched as PersonalizationDeleteAction).payload,\n personalization!\n );\n break;\n case ActionTypes.PERSONALIZATION_UPDATE_PRESET_ID:\n personalizationUpdatePresetId(\n featureProps,\n (actionDispatched as PersonalizationUpdatePresetIdAction).payload,\n personalization!\n );\n break;\n default:\n break;\n }\n }\n}\n\nfunction sanitizingPersonalisations(\n { getRsStore, dispatch }: BeforeRenderFeatureProps,\n { allPersonalizations }: PersonalizationResponse,\n presets: Record<string, PersonalizationInfo>\n) {\n const rsStore = getRsStore();\n if (!allPersonalizations) return;\n Object.keys(allPersonalizations).forEach(key => {\n const { personalizationState } = allPersonalizations[key];\n const defaultPresetId = rsStore.presets[defaultPresetIdIndex].id;\n\n const { template } = presets[defaultPresetId!];\n\n if (!personalizationState.presetId && personalizationState.template === template) {\n // to support existing created personalizations(backward compatibility)\n personalizationState.presetId = defaultPresetId;\n personalizationState.template = REPEATING_STRUCTURE_TEMPLATES.TABLE;\n } else if (\n !presets[personalizationState.presetId!] ||\n personalizationState.template !== presets[personalizationState.presetId!].template\n ) {\n if (personalizationState.presetId === 'nonPersonalizationViewKey') {\n dispatch(\n actionPersonalizationUpdatePresetId(key, 'nonPersonalizationViewKey', defaultPresetId!)\n );\n } else {\n // Remove the personalizations of the deleted presets\n dispatch(actionPersonalizationDelete(key, true));\n }\n }\n });\n}\n\nconst defaultPersonalization = (\n personalizationWithPreset: PersonalizationResponse,\n defaultPresetId: string\n) => {\n if (\n personalizationWithPreset.allPersonalizations[personalizationWithPreset.defaultPersonalization]\n ) {\n return personalizationWithPreset.defaultPersonalization;\n // eslint-disable-next-line no-else-return\n } else if (personalizationWithPreset.allPersonalizations.APP_DEFAULT) {\n return 'APP_DEFAULT';\n } else {\n return defaultPresetId;\n }\n};\n\nfunction getPersonalizationsAction(\n { dispatch }: BeforeRenderFeatureProps,\n personalizationWithPreset: PersonalizationResponse,\n defaultPresetId: string\n) {\n dispatch(\n // @ts-expect-error Check this after full migration. There is incompatibility b/w Personalization response and Personalization state\n actionGetPersonalizations({\n ...personalizationWithPreset,\n defaultPersonalization: defaultPersonalization(personalizationWithPreset, defaultPresetId)\n })\n );\n}\n\nfunction execute(featureProps: BeforeRenderFeatureProps) {\n const { getView, getRsStore, getRsProps, dispatch } = featureProps;\n const rsStore = getRsStore();\n const rsProps = getRsProps();\n if (\n !getView().meta.personalization &&\n (!rsStore.presets || Object.keys(rsStore.presets).length === 0)\n ) {\n // return as personalization is disabled and presets do not exist so no need to fetch to see which preset is default\n return null;\n }\n // i want to get called before mount and also only once\n if (!rsStore.personalizationDone) {\n if (typeof rsProps.apiContext.fetchPersonalizations !== 'function') {\n // eslint-disable-next-line no-console\n console.warn(\n 'Return type of apiContext.fetchPersonalization is',\n JSON.stringify(\n {\n defaultPersonalization: 'b5f5c4f3-fdf8-496c-9f99-9e2e7d296e0a',\n allPersonalizations: {\n 'b5f5c4f3-fdf8-496c-9f99-9e2e7d296e0a': {\n name: 'Personalized state view',\n personalizationState: {\n version: 'v1',\n showHeaderIcons: true,\n columnWidths: { 'Sl.No.': 93 },\n customFields: [],\n sortingOrder: [{ columnId: 'ID', order: 'desc', sequence: 1 }],\n groups: [],\n hiddenColumns: ['Product ID'],\n selectedHeightOption: '1',\n aggregationInfo: [],\n template: REPEATING_STRUCTURE_TEMPLATES.TABLE,\n presetId: 'P_1599825360427'\n }\n }\n }\n },\n null,\n 4\n )\n );\n throw Error(\n 'apiContext.fetchPersonalizations method should be a function which should return personalizations information (check above warning for response structure).'\n );\n }\n // i need the middleware to wait until i finish my job\n return rsProps.apiContext\n .fetchPersonalizations()\n .then(personalization => {\n const personalizationFetched = personalization || {\n defaultPersonalization: rsStore.presets[0].id,\n allPersonalizations: {}\n };\n\n // This is done to remove empty object which got saved while setting preset as default.\n removeEmptyValuesFromObject(personalizationFetched.allPersonalizations);\n\n const defaultPresetId = rsStore.presets[defaultPresetIdIndex].id;\n\n // Creating personalization from preset.\n const presetsPersonalizations =\n rsStore.presets?.reduce<Record<string, PersonalizationInfo>>((acc, p) => {\n acc[p.id] = {\n title: p.title,\n name: p.name,\n template: p.template,\n isPreset: true,\n personalizationState: {},\n isDefaultPreset: defaultPresetId === p.id\n };\n return acc;\n }, {}) || {};\n\n // sanitizing personalisations where there is no preset exists\n sanitizingPersonalisations(featureProps, personalizationFetched, presetsPersonalizations);\n\n const personalizationWithPreset = {\n ...personalizationFetched,\n allPersonalizations: {\n ...presetsPersonalizations,\n ...(getView().meta.personalization ? personalizationFetched.allPersonalizations : {})\n }\n };\n\n // if grouping is not enabled based on some factors, remove grouping programatically from personalizations\n if (!getView().meta.grouping) {\n Object.values(personalizationWithPreset.allPersonalizations).forEach(p => {\n if (p.personalizationState?.groups?.length) {\n p.personalizationState.groups = [];\n }\n });\n }\n\n // dispatch the get personalization action\n getPersonalizationsAction(\n featureProps,\n personalizationWithPreset,\n rsStore.presets[defaultPresetIdIndex].id\n );\n })\n .catch(error => {\n getView().meta.personalization = false;\n rsStore.meta.personalization = false;\n const errMessage = `Error Fetching personalizations ${error}`;\n // eslint-disable-next-line no-console\n console.error(errMessage);\n dispatch(\n actionNotificationAdd({\n content: errMessage\n })\n );\n\n // eslint-disable-next-line no-console\n console.warn(\n 'Return type of apiContext.fetchPersonalization is',\n JSON.stringify(\n {\n defaultPersonalization: 'b5f5c4f3-fdf8-496c-9f99-9e2e7d296e0a',\n allPersonalizations: {\n 'b5f5c4f3-fdf8-496c-9f99-9e2e7d296e0a': {\n name: 'Personalized state view',\n personalizationState: {\n version: 'v1',\n showHeaderIcons: true,\n columnWidths: { 'Sl.No.': 93 },\n customFields: [],\n sortingOrder: [{ columnId: 'ID', order: 'desc', sequence: 1 }],\n groups: [],\n hiddenColumns: ['Product ID'],\n selectedHeightOption: '1',\n aggregationInfo: [],\n template: REPEATING_STRUCTURE_TEMPLATES.TABLE,\n presetId: 'P_1599825360427'\n }\n }\n }\n },\n null,\n 4\n )\n );\n })\n .finally(() => {\n rsStore.personalizationDone = true;\n });\n }\n\n syncPersonalization(featureProps);\n return undefined;\n}\n\n/**\n * Handles the CRUD operations for the personalization feature in RS. It manages the following personalization actions and invokes the corresponding APIs to communicate personalization data:\n * - {@link ActionTypes.PERSONALIZATION_UPDATE}\n * - {@link ActionTypes.PERSONALIZATION_EDIT}\n * - {@link ActionTypes.PERSONALIZATION_SET_DEFAULT}\n * - {@link ActionTypes.PERSONALIZATION_SET_APP_DEFAULT}\n * - {@link ActionTypes.PERSONALIZATION_CREATE}\n * - {@link ActionTypes.PERSONALIZATION_DELETE}\n * - {@link ActionTypes.PERSONALIZATION_UPDATE_PRESET_ID}\n */\nexport default (rsInternal: RsInternal) => {\n if (!rsInternal.getView().meta.personalization) {\n rsInternal.getRsProps().apiContext.fetchPersonalizations = () =>\n Promise.resolve({} as PersonalizationResponse);\n }\n\n return execute;\n};\n"]}
1
+ {"version":3,"file":"personalization.js","sourceRoot":"","sources":["../../../../../../src/core/features/uIFeatures/beforeRender/personalization.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n actionGetPersonalizations,\n actionNotificationAdd,\n actionPersonalizationUpdateId,\n actionPersonalizationDelete,\n actionPersonalizationUpdatePresetId\n} from '../../../actions/actions';\nimport ActionTypes from '../../../actions/actionConstants';\nimport { removeEmptyValuesFromObject } from '../../../utils/util';\nimport { defaultPresetIdIndex } from '../../../constants';\nimport type RsInternal from '../../../RsInternal';\nimport type { PersonalizationResponse } from '../../../../../types/ApiContext.types';\nimport type { BeforeRenderFeatureProps } from '../../featureFactory';\nimport type { Personalization, PersonalizationInfo } from '../../../../../types/State.types';\nimport type {\n PersonalizationCreateAction,\n PersonalizationDeleteAction,\n PersonalizationEditAction,\n PersonalizationSetAppDefaultAction,\n PersonalizationSetDefaultAction,\n PersonalizationUpdateAction,\n PersonalizationUpdatePresetIdAction\n} from '../../../actions/actions.types';\nimport { REPEATING_STRUCTURE_TEMPLATES } from '../../../../../types/Meta.types';\n\nfunction personalizationUpdate(\n { getRsProps, getRsStore, dispatch }: BeforeRenderFeatureProps,\n payload: PersonalizationUpdateAction['payload'],\n personalization: Personalization\n) {\n const rsProps = getRsProps();\n const { personalizationKey, markAsDefault, markAsAppDefault } = payload;\n const viewName = personalization.allPersonalizations[personalizationKey].name;\n const { translate } = getRsStore();\n\n rsProps.apiContext.updatePersonalization!(personalizationKey, {\n markAsDefault:\n markAsDefault || personalization.allPersonalizations[personalizationKey].markAsDefault,\n ...personalization.allPersonalizations[personalizationKey],\n markAsAppDefault\n }).then(() => {\n dispatch(\n actionNotificationAdd({\n content: markAsDefault\n ? translate('saved_changes_with_default', [viewName])\n : translate('saved_changes', [viewName])\n })\n );\n });\n}\n\nfunction personalizationUpdatePresetId(\n { getRsProps }: BeforeRenderFeatureProps,\n payload: PersonalizationUpdatePresetIdAction['payload'],\n personalization: Personalization\n) {\n const { personalizationKey } = payload;\n const rsProps = getRsProps();\n rsProps.apiContext.updatePersonalization!(\n personalizationKey,\n personalization.allPersonalizations[personalizationKey]\n );\n}\n\nfunction personalizationSetDefault(\n { getRsProps, getRsStore, dispatch }: BeforeRenderFeatureProps,\n payload: PersonalizationSetDefaultAction['payload'],\n personalization: Personalization\n) {\n const { personalizationKey } = payload;\n const rsProps = getRsProps();\n const { updatePersonalization } = rsProps.apiContext;\n const { translate } = getRsStore();\n\n const setDefault = updatePersonalization!(personalizationKey, {\n markAsDefault: true\n });\n const viewName = personalization.allPersonalizations[personalizationKey].name;\n\n setDefault.then(() => {\n dispatch(\n actionNotificationAdd({\n content: translate('view_marked_default', [viewName])\n })\n );\n });\n}\n\nfunction personalizationSetAppDefault(\n { getRsProps, getRsStore, dispatch }: BeforeRenderFeatureProps,\n payload: PersonalizationSetAppDefaultAction['payload'],\n personalization: Personalization\n) {\n const { personalizationKey, personalizationName } = payload;\n const rsProps = getRsProps();\n const { updatePersonalization } = rsProps.apiContext;\n const { translate } = getRsStore();\n personalization.allPersonalizations[personalizationKey].name = personalizationName;\n\n const setAppDefault = updatePersonalization!(personalizationKey, {\n markAsAppDefault: true,\n // @ts-expect-error name is added twice. Check this.\n name: personalizationName,\n ...personalization.allPersonalizations[personalizationKey]\n });\n const viewName = personalization.allPersonalizations[personalizationKey].name;\n\n setAppDefault.then(() => {\n dispatch(\n actionNotificationAdd({\n content: translate('view_marked_app_default', [viewName])\n })\n );\n });\n}\n\nfunction personalizationCreation(\n { getRsProps, getRsStore, dispatch }: BeforeRenderFeatureProps,\n payload: PersonalizationCreateAction['payload'],\n personalization: Personalization\n) {\n const { personalizationKey, markAsDefault } = payload;\n const rsProps = getRsProps();\n const viewName = personalization.allPersonalizations[personalizationKey].name;\n const { translate } = getRsStore();\n\n rsProps.apiContext.createPersonalization!(personalizationKey, {\n markAsDefault,\n ...personalization.allPersonalizations[personalizationKey]\n }).then(response => {\n const actualPersonalizationKey = (response as { data: string }).data || (response as string);\n\n if (actualPersonalizationKey !== personalizationKey) {\n dispatch(actionPersonalizationUpdateId(personalizationKey, actualPersonalizationKey));\n }\n dispatch(\n actionNotificationAdd({\n content: markAsDefault\n ? translate('created_view_with_default', [viewName])\n : translate('created_view', [viewName])\n })\n );\n });\n}\n\nfunction personalizationDeletion(\n { getRsProps, getRsStore, dispatch }: BeforeRenderFeatureProps,\n payload: PersonalizationDeleteAction['payload'],\n personalization: Personalization\n) {\n const { personalizationKey, deletePresetPersonalizations } = payload;\n const rsProps = getRsProps();\n const viewName = personalization.lastDeletedPersonalization!.name;\n const { translate } = getRsStore();\n\n rsProps.apiContext.deletePersonalization!(personalizationKey).then(() => {\n if (!deletePresetPersonalizations) {\n dispatch(\n actionNotificationAdd({\n content: translate('deleted_view', [viewName])\n })\n );\n }\n });\n}\n\nfunction syncPersonalization(featureProps: BeforeRenderFeatureProps) {\n const { getState, queuedActions } = featureProps;\n const personalizationActions = [\n ActionTypes.PERSONALIZATION_UPDATE,\n ActionTypes.PERSONALIZATION_EDIT,\n ActionTypes.PERSONALIZATION_SET_DEFAULT,\n ActionTypes.PERSONALIZATION_SET_APP_DEFAULT,\n ActionTypes.PERSONALIZATION_CREATE,\n ActionTypes.PERSONALIZATION_DELETE,\n ActionTypes.PERSONALIZATION_UPDATE_PRESET_ID\n ];\n const actionTypes = queuedActions.map(a => a.type);\n const personalizationAction = personalizationActions.find(a => actionTypes.includes(a));\n if (personalizationAction) {\n const actionDispatched = queuedActions.find(a => a.type === personalizationAction)!;\n const { personalization } = getState();\n switch (personalizationAction) {\n case ActionTypes.PERSONALIZATION_EDIT:\n case ActionTypes.PERSONALIZATION_UPDATE:\n personalizationUpdate(\n featureProps,\n (actionDispatched as PersonalizationEditAction | PersonalizationUpdateAction).payload,\n personalization!\n );\n break;\n case ActionTypes.PERSONALIZATION_SET_DEFAULT:\n personalizationSetDefault(\n featureProps,\n (actionDispatched as PersonalizationSetDefaultAction).payload,\n personalization!\n );\n break;\n case ActionTypes.PERSONALIZATION_SET_APP_DEFAULT:\n personalizationSetAppDefault(\n featureProps,\n (actionDispatched as PersonalizationSetAppDefaultAction).payload,\n personalization!\n );\n break;\n case ActionTypes.PERSONALIZATION_CREATE:\n personalizationCreation(\n featureProps,\n (actionDispatched as PersonalizationCreateAction).payload,\n personalization!\n );\n break;\n case ActionTypes.PERSONALIZATION_DELETE:\n personalizationDeletion(\n featureProps,\n (actionDispatched as PersonalizationDeleteAction).payload,\n personalization!\n );\n break;\n case ActionTypes.PERSONALIZATION_UPDATE_PRESET_ID:\n personalizationUpdatePresetId(\n featureProps,\n (actionDispatched as PersonalizationUpdatePresetIdAction).payload,\n personalization!\n );\n break;\n default:\n break;\n }\n }\n}\n\nfunction sanitizingPersonalisations(\n { getRsStore, dispatch }: BeforeRenderFeatureProps,\n { allPersonalizations }: PersonalizationResponse,\n presets: Record<string, PersonalizationInfo>\n) {\n const rsStore = getRsStore();\n if (!allPersonalizations) return;\n Object.keys(allPersonalizations).forEach(key => {\n const { personalizationState } = allPersonalizations[key];\n const defaultPresetId = rsStore.presets[defaultPresetIdIndex].id;\n\n const { template } = presets[defaultPresetId!];\n\n if (!personalizationState.presetId && personalizationState.template === template) {\n // to support existing created personalizations(backward compatibility)\n personalizationState.presetId = defaultPresetId;\n personalizationState.template = REPEATING_STRUCTURE_TEMPLATES.TABLE;\n } else if (\n !presets[personalizationState.presetId!] ||\n personalizationState.template !== presets[personalizationState.presetId!].template\n ) {\n if (personalizationState.presetId === 'nonPersonalizationViewKey') {\n dispatch(\n actionPersonalizationUpdatePresetId(key, 'nonPersonalizationViewKey', defaultPresetId!)\n );\n } else {\n // Remove the personalizations of the deleted presets\n dispatch(actionPersonalizationDelete(key, true));\n }\n }\n });\n}\n\nconst defaultPersonalization = (\n personalizationWithPreset: PersonalizationResponse,\n defaultPresetId: string\n) => {\n if (\n personalizationWithPreset.allPersonalizations[personalizationWithPreset.defaultPersonalization]\n ) {\n return personalizationWithPreset.defaultPersonalization;\n // eslint-disable-next-line no-else-return\n } else if (personalizationWithPreset.allPersonalizations.APP_DEFAULT) {\n return 'APP_DEFAULT';\n } else {\n return defaultPresetId;\n }\n};\n\nfunction getPersonalizationsAction(\n { dispatch }: BeforeRenderFeatureProps,\n personalizationWithPreset: PersonalizationResponse,\n defaultPresetId: string\n) {\n dispatch(\n // @ts-expect-error Check this after full migration. There is incompatibility b/w Personalization response and Personalization state\n actionGetPersonalizations({\n ...personalizationWithPreset,\n defaultPersonalization: defaultPersonalization(personalizationWithPreset, defaultPresetId)\n })\n );\n}\n\nfunction execute(featureProps: BeforeRenderFeatureProps) {\n const { getView, getRsStore, getRsProps, dispatch } = featureProps;\n const rsStore = getRsStore();\n const rsProps = getRsProps();\n if (\n !getView().meta.personalization &&\n (!rsStore.presets || Object.keys(rsStore.presets).length === 0)\n ) {\n // return as personalization is disabled and presets do not exist so no need to fetch to see which preset is default\n return null;\n }\n // i want to get called before mount and also only once\n if (!rsStore.personalizationDone) {\n if (typeof rsProps.apiContext.fetchPersonalizations !== 'function') {\n // eslint-disable-next-line no-console\n console.warn(\n 'Return type of apiContext.fetchPersonalization is',\n JSON.stringify(\n {\n defaultPersonalization: 'b5f5c4f3-fdf8-496c-9f99-9e2e7d296e0a',\n allPersonalizations: {\n 'b5f5c4f3-fdf8-496c-9f99-9e2e7d296e0a': {\n name: 'Personalized state view',\n personalizationState: {\n version: 'v1',\n showHeaderIcons: true,\n columnWidths: { 'Sl.No.': 93 },\n customFields: [],\n sortingOrder: [{ columnId: 'ID', order: 'desc', sequence: 1 }],\n groups: [],\n hiddenColumns: ['Product ID'],\n selectedHeightOption: '1',\n aggregationInfo: [],\n template: REPEATING_STRUCTURE_TEMPLATES.TABLE,\n presetId: 'P_1599825360427'\n }\n }\n }\n },\n null,\n 4\n )\n );\n throw Error(\n 'apiContext.fetchPersonalizations method should be a function which should return personalizations information (check above warning for response structure).'\n );\n }\n // i need the middleware to wait until i finish my job\n return rsProps.apiContext\n .fetchPersonalizations()\n .then(personalization => {\n const personalizationFetched = personalization || {\n defaultPersonalization: rsStore.presets[0].id,\n allPersonalizations: {}\n };\n\n // This is done to remove empty object which got saved while setting preset as default.\n removeEmptyValuesFromObject(personalizationFetched.allPersonalizations);\n\n const defaultPresetId = rsStore.presets[defaultPresetIdIndex].id;\n\n // Creating personalization from preset.\n const presetsPersonalizations =\n rsStore.presets?.reduce<Record<string, PersonalizationInfo>>((acc, p) => {\n acc[p.id] = {\n title: p.title,\n name: p.name,\n template: p.template,\n isPreset: true,\n personalizationState: {},\n isDefaultPreset: defaultPresetId === p.id\n };\n return acc;\n }, {}) || {};\n\n // sanitizing personalisations where there is no preset exists\n sanitizingPersonalisations(featureProps, personalizationFetched, presetsPersonalizations);\n\n const personalizationWithPreset = {\n ...personalizationFetched,\n allPersonalizations: {\n ...presetsPersonalizations,\n ...(getView().meta.personalization ? personalizationFetched.allPersonalizations : {})\n }\n };\n\n // if grouping is not enabled based on some factors, remove grouping programatically from personalizations\n if (!getView().meta.grouping) {\n Object.values(personalizationWithPreset.allPersonalizations).forEach(p => {\n if (p.personalizationState?.groups?.length) {\n p.personalizationState.groups = [];\n }\n });\n }\n\n // dispatch the get personalization action\n getPersonalizationsAction(\n featureProps,\n personalizationWithPreset,\n rsStore.presets[defaultPresetIdIndex].id\n );\n })\n .catch(error => {\n getView().meta.personalization = false;\n rsStore.meta.personalization = false;\n const errMessage = `Error Fetching personalizations ${error}`;\n // eslint-disable-next-line no-console\n console.error(errMessage);\n dispatch(\n actionNotificationAdd({\n content: errMessage\n })\n );\n\n // eslint-disable-next-line no-console\n console.warn(\n 'Return type of apiContext.fetchPersonalization is',\n JSON.stringify(\n {\n defaultPersonalization: 'b5f5c4f3-fdf8-496c-9f99-9e2e7d296e0a',\n allPersonalizations: {\n 'b5f5c4f3-fdf8-496c-9f99-9e2e7d296e0a': {\n name: 'Personalized state view',\n personalizationState: {\n version: 'v1',\n showHeaderIcons: true,\n columnWidths: { 'Sl.No.': 93 },\n customFields: [],\n sortingOrder: [{ columnId: 'ID', order: 'desc', sequence: 1 }],\n groups: [],\n hiddenColumns: ['Product ID'],\n selectedHeightOption: '1',\n aggregationInfo: [],\n template: REPEATING_STRUCTURE_TEMPLATES.TABLE,\n presetId: 'P_1599825360427'\n }\n }\n }\n },\n null,\n 4\n )\n );\n })\n .finally(() => {\n rsStore.personalizationDone = true;\n });\n }\n\n syncPersonalization(featureProps);\n return undefined;\n}\n\n/**\n * Handles the CRUD operations for the personalization feature in RS. It manages the following personalization actions and invokes the corresponding APIs to communicate personalization data:\n * - {@link ActionTypes.PERSONALIZATION_UPDATE}\n * - {@link ActionTypes.PERSONALIZATION_EDIT}\n * - {@link ActionTypes.PERSONALIZATION_SET_DEFAULT}\n * - {@link ActionTypes.PERSONALIZATION_SET_APP_DEFAULT}\n * - {@link ActionTypes.PERSONALIZATION_CREATE}\n * - {@link ActionTypes.PERSONALIZATION_DELETE}\n * - {@link ActionTypes.PERSONALIZATION_UPDATE_PRESET_ID}\n */\nexport default (rsInternal: RsInternal) => {\n if (!rsInternal.getView().meta.personalization) {\n rsInternal.getRsProps().apiContext.fetchPersonalizations = () =>\n Promise.resolve({} as PersonalizationResponse);\n }\n\n return execute;\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"rowDragDrop.d.ts","sourceRoot":"","sources":["../../../../../../src/core/features/uIFeatures/beforeRender/rowDragDrop.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,UAAU,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAyQrE;;;GAGG;yBACa,YAAY,UAAU,MASZ,cAAc,wBAAwB;AAThE,wBAgBE"}
1
+ {"version":3,"file":"rowDragDrop.d.ts","sourceRoot":"","sources":["../../../../../../src/core/features/uIFeatures/beforeRender/rowDragDrop.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,UAAU,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAkRrE;;;GAGG;yBACa,YAAY,UAAU,MASZ,cAAc,wBAAwB;AAThE,wBAgBE"}
@@ -27,7 +27,9 @@ const setGhostImage = ({ getView }, e) => {
27
27
  dragProxy.style.background = 'rgba(0, 0, 0, 0.21)';
28
28
  dragProxy.style.zIndex = '-1';
29
29
  getView().getDomContainer().appendChild(dragProxy);
30
- e.dataTransfer.setDragImage(dragProxy, 0, 0);
30
+ if (e.dataTransfer) {
31
+ e.dataTransfer.setDragImage(dragProxy, 0, 0);
32
+ }
31
33
  setTimeout(() => {
32
34
  dragProxy.parentNode.removeChild(dragProxy);
33
35
  }, 1000);
@@ -108,7 +110,11 @@ const dragStartCb = (featureProps, ev) => {
108
110
  featureProps.getRsStore().rowDragDropRef.contextDropCb = dropCallBack;
109
111
  featureProps.getRsStore().rowDragDropRef.contextDragOverCb = dragOverCallBack;
110
112
  setGhostImage(featureProps, ev);
111
- ev.dataTransfer.effectAllowed = 'move';
113
+ if (ev.dataTransfer) {
114
+ ev.dataTransfer.effectAllowed = 'move';
115
+ // Setting up some dummy data(dragged row item key) to make drag drop work in firefox. Refer https://medium.com/%40reiberdatschi/common-pitfalls-with-html5-drag-n-drop-api-9f011a09ee6c
116
+ ev.dataTransfer.setData('text/plain', 'RS_Dragged_Row_Item');
117
+ }
112
118
  // fail safe reset drag target.
113
119
  if (featureProps.getRsStore().rowDragDropRef.dragTarget)
114
120
  featureProps.getRsStore().rowDragDropRef.dragTarget = undefined;
@@ -159,7 +165,9 @@ const dragEnterCb = ({ getRsStore }, ev) => {
159
165
  : [];
160
166
  rsStore.rowDragDropRef.dropTarget.push(ev.currentTarget);
161
167
  ev.currentTarget.classList.add('dragEnter');
162
- ev.dataTransfer.dropEffect = 'move';
168
+ if (ev.dataTransfer) {
169
+ ev.dataTransfer.dropEffect = 'move';
170
+ }
163
171
  rsStore.rowDragDropRef.dropTargetCoord = ev.currentTarget.getBoundingClientRect();
164
172
  addDropEffect(ev.currentTarget);
165
173
  if (rsStore.rowDragDropRef.dropTarget.length > 1) {
@@ -1 +1 @@
1
- {"version":3,"file":"rowDragDrop.js","sourceRoot":"","sources":["../../../../../../src/core/features/uIFeatures/beforeRender/rowDragDrop.ts"],"names":[],"mappings":"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","sourcesContent":["import { withMemoization } from '../../../utils/util';\nimport { AFTER_FETCH } from '../../../pubSub/events';\nimport type RsInternal from '../../../RsInternal';\nimport type { BeforeRenderFeatureProps } from '../../featureFactory';\nimport type RsStore from '../../../RsStore';\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport type View from '../../../generators/ViewGenerator';\n\nconst DropSelector = '[data-drop]';\nconst getSelector = (t: HTMLElement): HTMLElement | null => t.closest(DropSelector);\n\nconst addDragEffect = (target: HTMLElement) => {\n const t = getSelector(target);\n const elms = Array.isArray(t) ? t : [t];\n elms.forEach(elm => {\n elm.style.opacity = '0.5';\n });\n};\n\nconst removeDragEffect = (target: HTMLElement) => {\n const t = getSelector(target);\n const elms = Array.isArray(t) ? t : [t];\n elms.forEach(elm => {\n elm.style.opacity = '1';\n });\n};\n\nconst setGhostImage = ({ getView }: BeforeRenderFeatureProps, e: DragEvent) => {\n const dragProxy = document.createElement('div');\n const elem = getSelector(e.currentTarget as HTMLElement)!;\n dragProxy.style.height = `${Math.min(\n elem.offsetHeight,\n getView().getScrollNode()!.offsetHeight\n )}px`;\n dragProxy.style.width = `${Math.min(\n elem.offsetWidth,\n getView().virtualizeElements.rootVirtualiser.getParentContainer().clientWidth\n )}px`;\n dragProxy.style.position = 'absolute';\n dragProxy.style.top = '-1000000px';\n dragProxy.style.left = '-10000000px';\n dragProxy.style.background = 'rgba(0, 0, 0, 0.21)';\n dragProxy.style.zIndex = '-1';\n getView().getDomContainer()!.appendChild(dragProxy);\n e.dataTransfer!.setDragImage(dragProxy, 0, 0);\n\n setTimeout(() => {\n dragProxy.parentNode!.removeChild(dragProxy);\n }, 1000);\n};\n\nconst isColliding = (x: DOMRect['x'], y: DOMRect['y'], coord: DOMRect) => {\n const smallBuffer = 2;\n return !(\n x < coord.left - smallBuffer ||\n x > coord.right + smallBuffer ||\n y > coord.bottom + smallBuffer ||\n y < coord.top - smallBuffer\n );\n};\n\nconst addDropEffect = (target: HTMLElement) => {\n const t = getSelector(target);\n const elms = Array.isArray(t) ? t : [t];\n elms.forEach(elm => {\n // Need to handle this in better way.TODO: need clean up as well.\n elm.style.transition = 'transform 0.25s';\n elm.style.transform = 'translate(20px)';\n });\n};\n\nconst removeDropEffect = (target: HTMLElement) => {\n const t = getSelector(target);\n const elms = Array.isArray(t) ? t : [t];\n elms.forEach(elm => {\n elm.style.transition = null;\n elm.style.transform = null;\n });\n};\n\nconst contextDragOverCb = ({ getRsStore, getView }: BeforeRenderFeatureProps, e: DragEvent) => {\n e.stopPropagation();\n e.preventDefault();\n const rsStore = getRsStore();\n const domContainerCoord = getView().getDomContainer()!.getBoundingClientRect();\n if (\n rsStore.rowDragDropRef.dragLeaveSkipped &&\n rsStore.rowDragDropRef.dropTarget &&\n rsStore.rowDragDropRef.dropTarget[rsStore.rowDragDropRef.dropTarget.length - 1] &&\n (!isColliding(e.clientX, e.clientY, rsStore.rowDragDropRef.dropTargetCoord!) ||\n // Force trigger drag leave on the drop target when the dragged row moves outside the RS DOM container.\n e.clientX > domContainerCoord.right ||\n e.clientX < domContainerCoord.left)\n ) {\n rsStore.rowDragDropRef.forcedDragLeave = true;\n rsStore.rowDragDropRef.dragLeaveSkipped = false;\n const elm = rsStore.rowDragDropRef.dropTarget.shift()!;\n rsStore.rowDragDropRef.dropTarget = [...rsStore.rowDragDropRef.dropTarget];\n elm.dispatchEvent(\n new MouseEvent('dragleave', {\n bubbles: true,\n cancelable: true,\n view: window\n })\n );\n }\n};\n\nconst contextDropCb = ({ getRsStore, getView }: BeforeRenderFeatureProps, ev: DragEvent) => {\n ev.stopPropagation();\n ev.preventDefault();\n const rsStore = getRsStore();\n const elm = rsStore.rowDragDropRef.dropTarget[rsStore.rowDragDropRef.dropTarget.length - 1];\n if (\n rsStore.rowDragDropRef.dropTargetCoord &&\n elm !== rsStore.rowDragDropRef.dragTarget &&\n isColliding(ev.clientX, ev.clientY, rsStore.rowDragDropRef.dropTargetCoord)\n ) {\n removeDropEffect(elm);\n elm.classList.remove('dragEnter');\n const destinationKey = elm.closest('.row')!.getAttribute('data-key')!;\n const sourceKey = rsStore.rowDragDropRef.dragTarget?.closest('.row')!.getAttribute('data-key')!;\n rsStore.rowDragDropRef.dragTarget = undefined;\n rsStore.rowDragDropRef.dropTargetCoord = null;\n rsStore.rowDragDropRef.isDragTargetTypeRow = false;\n rsStore.rowDragDropRef.dropTarget = [];\n getView().type.handleRowReorder(sourceKey, destinationKey);\n }\n};\n\nconst dragStartCb = (featureProps: BeforeRenderFeatureProps, ev: DragEvent) => {\n const dragOverCallBack = contextDragOverCb.bind(null, featureProps);\n document.addEventListener('dragover', dragOverCallBack);\n const dropCallBack = contextDropCb.bind(null, featureProps);\n featureProps.getView().getDomContainer()!.addEventListener('drop', dropCallBack);\n\n // We have to keep event handler in reference so that we can remove right handler when drag ends.\n // Handler might change in between because of deps.\n featureProps.getRsStore().rowDragDropRef.contextDropCb = dropCallBack;\n featureProps.getRsStore().rowDragDropRef.contextDragOverCb = dragOverCallBack;\n\n setGhostImage(featureProps, ev);\n ev.dataTransfer!.effectAllowed = 'move';\n // fail safe reset drag target.\n if (featureProps.getRsStore().rowDragDropRef.dragTarget)\n featureProps.getRsStore().rowDragDropRef.dragTarget = undefined;\n featureProps.getRsStore().rowDragDropRef.isDragTargetTypeRow =\n (ev.currentTarget as HTMLElement).getAttribute('data-drag-type') === 'row';\n featureProps.getRsStore().rowDragDropRef.dragTarget = getSelector(\n ev.currentTarget as HTMLElement\n )!;\n (ev.currentTarget as HTMLElement).classList.add('dragStart');\n addDragEffect(ev.currentTarget as HTMLElement);\n};\n\nconst dragEndCb = ({ getRsStore, getView }: BeforeRenderFeatureProps, ev: DragEvent) => {\n const rsStore = getRsStore();\n document.removeEventListener('dragover', rsStore.rowDragDropRef.contextDragOverCb!);\n getView().getDomContainer()!.removeEventListener('drop', rsStore.rowDragDropRef.contextDropCb!);\n rsStore.rowDragDropRef.dropTarget = [];\n rsStore.rowDragDropRef.dropTargetCoord = null;\n rsStore.rowDragDropRef.forcedDragLeave = false;\n rsStore.rowDragDropRef.dragLeaveSkipped = false;\n rsStore.rowDragDropRef.isDragTargetTypeRow = false;\n (ev.currentTarget as HTMLElement).classList.remove('dragStart');\n removeDragEffect(ev.currentTarget as HTMLElement);\n};\n\nconst isValidDragEnter = (rsStore: RsStore, e: DragEvent) => {\n let isValid = true;\n if (!rsStore.rowDragDropRef.isDragTargetTypeRow) return false;\n if (rsStore.rowDragDropRef.dragTarget === e.currentTarget) isValid = false;\n else if (\n rsStore.rowDragDropRef.dropTarget[rsStore.rowDragDropRef.dropTarget.length - 1] ===\n e.currentTarget\n )\n isValid = false;\n else if (\n rsStore.rowDragDropRef.dropTarget[rsStore.rowDragDropRef.dropTarget.length - 1] &&\n rsStore.rowDragDropRef.dropTarget[rsStore.rowDragDropRef.dropTarget.length - 1] !==\n e.currentTarget\n ) {\n const currentTargetCoord = (e.currentTarget as HTMLElement).getBoundingClientRect();\n const dropTargetCoord =\n rsStore.rowDragDropRef.dropTarget[\n rsStore.rowDragDropRef.dropTarget.length - 1\n ].getBoundingClientRect();\n if (\n !isColliding(e.clientX, e.clientY, currentTargetCoord) &&\n isColliding(e.clientX, e.clientY, dropTargetCoord)\n )\n isValid = false;\n }\n return isValid;\n};\n\nconst dragEnterCb = ({ getRsStore }: BeforeRenderFeatureProps, ev: DragEvent) => {\n ev.stopPropagation();\n const rsStore = getRsStore();\n if (isValidDragEnter(rsStore, ev)) {\n rsStore.rowDragDropRef.dropTarget = rsStore.rowDragDropRef.dropTarget.length\n ? [...rsStore.rowDragDropRef.dropTarget]\n : [];\n rsStore.rowDragDropRef.dropTarget.push(ev.currentTarget as HTMLElement);\n (ev.currentTarget as HTMLElement).classList.add('dragEnter');\n ev.dataTransfer!.dropEffect = 'move';\n rsStore.rowDragDropRef.dropTargetCoord = (\n ev.currentTarget as HTMLElement\n ).getBoundingClientRect();\n addDropEffect(ev.currentTarget as HTMLElement);\n\n if (rsStore.rowDragDropRef.dropTarget.length > 1) {\n const elm = rsStore.rowDragDropRef.dropTarget.shift()!;\n rsStore.rowDragDropRef.dropTarget = [...rsStore.rowDragDropRef.dropTarget];\n rsStore.rowDragDropRef.forcedDragLeave = true;\n elm.dispatchEvent(\n new MouseEvent('dragleave', {\n bubbles: true,\n cancelable: true,\n view: window\n })\n );\n }\n }\n};\n\nconst dragLeaveCb = ({ getRsStore }: BeforeRenderFeatureProps, ev: DragEvent) => {\n ev.stopPropagation();\n const rsStore = getRsStore();\n if (rsStore.rowDragDropRef.forcedDragLeave) {\n rsStore.rowDragDropRef.forcedDragLeave = false;\n (ev.currentTarget as HTMLElement).classList.remove('dragEnter');\n removeDropEffect(ev.currentTarget as HTMLElement);\n } else if (\n !(ev.currentTarget as HTMLElement).contains(ev.relatedTarget as HTMLElement) &&\n rsStore.rowDragDropRef.dragTarget !== ev.currentTarget\n ) {\n rsStore.rowDragDropRef.dragLeaveSkipped = true;\n }\n};\n\nconst dragProps = (featureProps: BeforeRenderFeatureProps) => ({\n 'data-drag-type': 'row',\n draggable: true,\n onDragStart: dragStartCb.bind(null, featureProps),\n onDragEnd: dragEndCb.bind(null, featureProps)\n});\n\nconst dropProps = (featureProps: BeforeRenderFeatureProps) => ({\n onDragEnter: dragEnterCb.bind(null, featureProps),\n onDragLeave: dragLeaveCb.bind(null, featureProps),\n 'data-drop': 'dropzone'\n});\n\nfunction addDragDropBehavior([featureProps]: [featureProps: BeforeRenderFeatureProps]) {\n if (!featureProps.getView().meta.reorderItems) {\n return;\n }\n featureProps.getView().rows!.forEach(r => {\n if (!(r.dragProps && r.dropProps)) {\n r.setProp({\n dragProps: dragProps(featureProps),\n dropProps: dropProps(featureProps)\n });\n }\n });\n}\n\n/**\n * Manages drag drop behavior of rows whenever the {@link View.rows rows} are changed in the view on publish of `AFTER_FETCH` event.\n *\n */\nexport default (rsInternal: RsInternal) => {\n rsInternal.getRsStore().rowDragDropRef = {\n dropTarget: [],\n dragTarget: undefined,\n dropZones: []\n };\n const memoizedAddDragDropBehavior = withMemoization(addDragDropBehavior);\n\n // TODO: Move subscription outside execute function\n return function execute(featureProps: BeforeRenderFeatureProps) {\n rsInternal\n .getPubSubUtils()\n .subscribe(AFTER_FETCH, () =>\n memoizedAddDragDropBehavior([featureProps], [featureProps.getView().rows])\n );\n };\n};\n"]}
1
+ {"version":3,"file":"rowDragDrop.js","sourceRoot":"","sources":["../../../../../../src/core/features/uIFeatures/beforeRender/rowDragDrop.ts"],"names":[],"mappings":"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","sourcesContent":["import { withMemoization } from '../../../utils/util';\nimport { AFTER_FETCH } from '../../../pubSub/events';\nimport type RsInternal from '../../../RsInternal';\nimport type { BeforeRenderFeatureProps } from '../../featureFactory';\nimport type RsStore from '../../../RsStore';\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport type View from '../../../generators/ViewGenerator';\n\nconst DropSelector = '[data-drop]';\nconst getSelector = (t: HTMLElement): HTMLElement | null => t.closest(DropSelector);\n\nconst addDragEffect = (target: HTMLElement) => {\n const t = getSelector(target);\n const elms = Array.isArray(t) ? t : [t];\n elms.forEach(elm => {\n elm.style.opacity = '0.5';\n });\n};\n\nconst removeDragEffect = (target: HTMLElement) => {\n const t = getSelector(target);\n const elms = Array.isArray(t) ? t : [t];\n elms.forEach(elm => {\n elm.style.opacity = '1';\n });\n};\n\nconst setGhostImage = ({ getView }: BeforeRenderFeatureProps, e: DragEvent) => {\n const dragProxy = document.createElement('div');\n const elem = getSelector(e.currentTarget as HTMLElement)!;\n dragProxy.style.height = `${Math.min(\n elem.offsetHeight,\n getView().getScrollNode()!.offsetHeight\n )}px`;\n dragProxy.style.width = `${Math.min(\n elem.offsetWidth,\n getView().virtualizeElements.rootVirtualiser.getParentContainer().clientWidth\n )}px`;\n dragProxy.style.position = 'absolute';\n dragProxy.style.top = '-1000000px';\n dragProxy.style.left = '-10000000px';\n dragProxy.style.background = 'rgba(0, 0, 0, 0.21)';\n dragProxy.style.zIndex = '-1';\n getView().getDomContainer()!.appendChild(dragProxy);\n if (e.dataTransfer) {\n e.dataTransfer.setDragImage(dragProxy, 0, 0);\n }\n\n setTimeout(() => {\n dragProxy.parentNode!.removeChild(dragProxy);\n }, 1000);\n};\n\nconst isColliding = (x: DOMRect['x'], y: DOMRect['y'], coord: DOMRect) => {\n const smallBuffer = 2;\n return !(\n x < coord.left - smallBuffer ||\n x > coord.right + smallBuffer ||\n y > coord.bottom + smallBuffer ||\n y < coord.top - smallBuffer\n );\n};\n\nconst addDropEffect = (target: HTMLElement) => {\n const t = getSelector(target);\n const elms = Array.isArray(t) ? t : [t];\n elms.forEach(elm => {\n // Need to handle this in better way.TODO: need clean up as well.\n elm.style.transition = 'transform 0.25s';\n elm.style.transform = 'translate(20px)';\n });\n};\n\nconst removeDropEffect = (target: HTMLElement) => {\n const t = getSelector(target);\n const elms = Array.isArray(t) ? t : [t];\n elms.forEach(elm => {\n elm.style.transition = null;\n elm.style.transform = null;\n });\n};\n\nconst contextDragOverCb = ({ getRsStore, getView }: BeforeRenderFeatureProps, e: DragEvent) => {\n e.stopPropagation();\n e.preventDefault();\n const rsStore = getRsStore();\n const domContainerCoord = getView().getDomContainer()!.getBoundingClientRect();\n if (\n rsStore.rowDragDropRef.dragLeaveSkipped &&\n rsStore.rowDragDropRef.dropTarget &&\n rsStore.rowDragDropRef.dropTarget[rsStore.rowDragDropRef.dropTarget.length - 1] &&\n (!isColliding(e.clientX, e.clientY, rsStore.rowDragDropRef.dropTargetCoord!) ||\n // Force trigger drag leave on the drop target when the dragged row moves outside the RS DOM container.\n e.clientX > domContainerCoord.right ||\n e.clientX < domContainerCoord.left)\n ) {\n rsStore.rowDragDropRef.forcedDragLeave = true;\n rsStore.rowDragDropRef.dragLeaveSkipped = false;\n const elm = rsStore.rowDragDropRef.dropTarget.shift()!;\n rsStore.rowDragDropRef.dropTarget = [...rsStore.rowDragDropRef.dropTarget];\n elm.dispatchEvent(\n new MouseEvent('dragleave', {\n bubbles: true,\n cancelable: true,\n view: window\n })\n );\n }\n};\n\nconst contextDropCb = ({ getRsStore, getView }: BeforeRenderFeatureProps, ev: DragEvent) => {\n ev.stopPropagation();\n ev.preventDefault();\n const rsStore = getRsStore();\n const elm = rsStore.rowDragDropRef.dropTarget[rsStore.rowDragDropRef.dropTarget.length - 1];\n if (\n rsStore.rowDragDropRef.dropTargetCoord &&\n elm !== rsStore.rowDragDropRef.dragTarget &&\n isColliding(ev.clientX, ev.clientY, rsStore.rowDragDropRef.dropTargetCoord)\n ) {\n removeDropEffect(elm);\n elm.classList.remove('dragEnter');\n const destinationKey = elm.closest('.row')!.getAttribute('data-key')!;\n const sourceKey = rsStore.rowDragDropRef.dragTarget?.closest('.row')!.getAttribute('data-key')!;\n rsStore.rowDragDropRef.dragTarget = undefined;\n rsStore.rowDragDropRef.dropTargetCoord = null;\n rsStore.rowDragDropRef.isDragTargetTypeRow = false;\n rsStore.rowDragDropRef.dropTarget = [];\n getView().type.handleRowReorder(sourceKey, destinationKey);\n }\n};\n\nconst dragStartCb = (featureProps: BeforeRenderFeatureProps, ev: DragEvent) => {\n const dragOverCallBack = contextDragOverCb.bind(null, featureProps);\n document.addEventListener('dragover', dragOverCallBack);\n const dropCallBack = contextDropCb.bind(null, featureProps);\n featureProps.getView().getDomContainer()!.addEventListener('drop', dropCallBack);\n\n // We have to keep event handler in reference so that we can remove right handler when drag ends.\n // Handler might change in between because of deps.\n featureProps.getRsStore().rowDragDropRef.contextDropCb = dropCallBack;\n featureProps.getRsStore().rowDragDropRef.contextDragOverCb = dragOverCallBack;\n\n setGhostImage(featureProps, ev);\n if (ev.dataTransfer) {\n ev.dataTransfer.effectAllowed = 'move';\n // Setting up some dummy data(dragged row item key) to make drag drop work in firefox. Refer https://medium.com/%40reiberdatschi/common-pitfalls-with-html5-drag-n-drop-api-9f011a09ee6c\n ev.dataTransfer.setData('text/plain', 'RS_Dragged_Row_Item');\n }\n\n // fail safe reset drag target.\n if (featureProps.getRsStore().rowDragDropRef.dragTarget)\n featureProps.getRsStore().rowDragDropRef.dragTarget = undefined;\n featureProps.getRsStore().rowDragDropRef.isDragTargetTypeRow =\n (ev.currentTarget as HTMLElement).getAttribute('data-drag-type') === 'row';\n featureProps.getRsStore().rowDragDropRef.dragTarget = getSelector(\n ev.currentTarget as HTMLElement\n )!;\n (ev.currentTarget as HTMLElement).classList.add('dragStart');\n addDragEffect(ev.currentTarget as HTMLElement);\n};\n\nconst dragEndCb = ({ getRsStore, getView }: BeforeRenderFeatureProps, ev: DragEvent) => {\n const rsStore = getRsStore();\n document.removeEventListener('dragover', rsStore.rowDragDropRef.contextDragOverCb!);\n getView().getDomContainer()!.removeEventListener('drop', rsStore.rowDragDropRef.contextDropCb!);\n rsStore.rowDragDropRef.dropTarget = [];\n rsStore.rowDragDropRef.dropTargetCoord = null;\n rsStore.rowDragDropRef.forcedDragLeave = false;\n rsStore.rowDragDropRef.dragLeaveSkipped = false;\n rsStore.rowDragDropRef.isDragTargetTypeRow = false;\n (ev.currentTarget as HTMLElement).classList.remove('dragStart');\n removeDragEffect(ev.currentTarget as HTMLElement);\n};\n\nconst isValidDragEnter = (rsStore: RsStore, e: DragEvent) => {\n let isValid = true;\n if (!rsStore.rowDragDropRef.isDragTargetTypeRow) return false;\n if (rsStore.rowDragDropRef.dragTarget === e.currentTarget) isValid = false;\n else if (\n rsStore.rowDragDropRef.dropTarget[rsStore.rowDragDropRef.dropTarget.length - 1] ===\n e.currentTarget\n )\n isValid = false;\n else if (\n rsStore.rowDragDropRef.dropTarget[rsStore.rowDragDropRef.dropTarget.length - 1] &&\n rsStore.rowDragDropRef.dropTarget[rsStore.rowDragDropRef.dropTarget.length - 1] !==\n e.currentTarget\n ) {\n const currentTargetCoord = (e.currentTarget as HTMLElement).getBoundingClientRect();\n const dropTargetCoord =\n rsStore.rowDragDropRef.dropTarget[\n rsStore.rowDragDropRef.dropTarget.length - 1\n ].getBoundingClientRect();\n if (\n !isColliding(e.clientX, e.clientY, currentTargetCoord) &&\n isColliding(e.clientX, e.clientY, dropTargetCoord)\n )\n isValid = false;\n }\n return isValid;\n};\n\nconst dragEnterCb = ({ getRsStore }: BeforeRenderFeatureProps, ev: DragEvent) => {\n ev.stopPropagation();\n const rsStore = getRsStore();\n if (isValidDragEnter(rsStore, ev)) {\n rsStore.rowDragDropRef.dropTarget = rsStore.rowDragDropRef.dropTarget.length\n ? [...rsStore.rowDragDropRef.dropTarget]\n : [];\n rsStore.rowDragDropRef.dropTarget.push(ev.currentTarget as HTMLElement);\n (ev.currentTarget as HTMLElement).classList.add('dragEnter');\n if (ev.dataTransfer) {\n ev.dataTransfer.dropEffect = 'move';\n }\n rsStore.rowDragDropRef.dropTargetCoord = (\n ev.currentTarget as HTMLElement\n ).getBoundingClientRect();\n addDropEffect(ev.currentTarget as HTMLElement);\n\n if (rsStore.rowDragDropRef.dropTarget.length > 1) {\n const elm = rsStore.rowDragDropRef.dropTarget.shift()!;\n rsStore.rowDragDropRef.dropTarget = [...rsStore.rowDragDropRef.dropTarget];\n rsStore.rowDragDropRef.forcedDragLeave = true;\n elm.dispatchEvent(\n new MouseEvent('dragleave', {\n bubbles: true,\n cancelable: true,\n view: window\n })\n );\n }\n }\n};\n\nconst dragLeaveCb = ({ getRsStore }: BeforeRenderFeatureProps, ev: DragEvent) => {\n ev.stopPropagation();\n const rsStore = getRsStore();\n if (rsStore.rowDragDropRef.forcedDragLeave) {\n rsStore.rowDragDropRef.forcedDragLeave = false;\n (ev.currentTarget as HTMLElement).classList.remove('dragEnter');\n removeDropEffect(ev.currentTarget as HTMLElement);\n } else if (\n !(ev.currentTarget as HTMLElement).contains(ev.relatedTarget as HTMLElement) &&\n rsStore.rowDragDropRef.dragTarget !== ev.currentTarget\n ) {\n rsStore.rowDragDropRef.dragLeaveSkipped = true;\n }\n};\n\nconst dragProps = (featureProps: BeforeRenderFeatureProps) => ({\n 'data-drag-type': 'row',\n draggable: true,\n onDragStart: dragStartCb.bind(null, featureProps),\n onDragEnd: dragEndCb.bind(null, featureProps)\n});\n\nconst dropProps = (featureProps: BeforeRenderFeatureProps) => ({\n onDragEnter: dragEnterCb.bind(null, featureProps),\n onDragLeave: dragLeaveCb.bind(null, featureProps),\n 'data-drop': 'dropzone'\n});\n\nfunction addDragDropBehavior([featureProps]: [featureProps: BeforeRenderFeatureProps]) {\n if (!featureProps.getView().meta.reorderItems) {\n return;\n }\n featureProps.getView().rows!.forEach(r => {\n if (!(r.dragProps && r.dropProps)) {\n r.setProp({\n dragProps: dragProps(featureProps),\n dropProps: dropProps(featureProps)\n });\n }\n });\n}\n\n/**\n * Manages drag drop behavior of rows whenever the {@link View.rows rows} are changed in the view on publish of `AFTER_FETCH` event.\n *\n */\nexport default (rsInternal: RsInternal) => {\n rsInternal.getRsStore().rowDragDropRef = {\n dropTarget: [],\n dragTarget: undefined,\n dropZones: []\n };\n const memoizedAddDragDropBehavior = withMemoization(addDragDropBehavior);\n\n // TODO: Move subscription outside execute function\n return function execute(featureProps: BeforeRenderFeatureProps) {\n rsInternal\n .getPubSubUtils()\n .subscribe(AFTER_FETCH, () =>\n memoizedAddDragDropBehavior([featureProps], [featureProps.getView().rows])\n );\n };\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"rowHeight.d.ts","sourceRoot":"","sources":["../../../../../../src/core/features/uIFeatures/beforeRender/rowHeight.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAcrE;;GAEG;+BAIuB,cAAc,wBAAwB;AAHhE,wBAME"}
1
+ {"version":3,"file":"rowHeight.d.ts","sourceRoot":"","sources":["../../../../../../src/core/features/uIFeatures/beforeRender/rowHeight.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAsBrE;;GAEG;+BAIuB,cAAc,wBAAwB;AAHhE,wBAME"}