@ynput/ayon-frontend-shared 0.3.1 → 0.3.2

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 (320) hide show
  1. package/dist/_virtual/index.cjs10.js +1 -1
  2. package/dist/_virtual/index.cjs11.js +1 -1
  3. package/dist/_virtual/index.cjs12.js +1 -1
  4. package/dist/_virtual/index.es10.js +3 -3
  5. package/dist/_virtual/index.es11.js +5 -5
  6. package/dist/_virtual/index.es12.js +5 -5
  7. package/dist/node_modules/rehype/node_modules/unified/lib/index.cjs.js +1 -1
  8. package/dist/node_modules/rehype/node_modules/unified/lib/index.es.js +2 -2
  9. package/dist/node_modules/rehype/node_modules/vfile/lib/index.cjs.js +1 -1
  10. package/dist/node_modules/rehype/node_modules/vfile/lib/index.es.js +1 -1
  11. package/dist/node_modules/rehype-parse/lib/index.cjs.js +1 -1
  12. package/dist/node_modules/rehype-parse/lib/index.es.js +1 -1
  13. package/dist/node_modules/web-namespaces/index.cjs.js +1 -1
  14. package/dist/node_modules/web-namespaces/index.cjs.js.map +1 -1
  15. package/dist/node_modules/web-namespaces/index.es.js +3 -8
  16. package/dist/node_modules/web-namespaces/index.es.js.map +1 -1
  17. package/dist/shared/src/api/generated/graphql.cjs.js +12 -8
  18. package/dist/shared/src/api/generated/graphql.cjs.js.map +1 -1
  19. package/dist/shared/src/api/generated/graphql.es.js +11 -7
  20. package/dist/shared/src/api/generated/graphql.es.js.map +1 -1
  21. package/dist/shared/src/api/generated/graphqlLinks.cjs.js.map +1 -1
  22. package/dist/shared/src/api/generated/graphqlLinks.es.js.map +1 -1
  23. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.cjs.js +2 -2
  24. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.cjs.js.map +1 -1
  25. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.es.js +66 -61
  26. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.es.js.map +1 -1
  27. package/dist/shared/src/containers/Feed/hooks/useTransformActivities.cjs.js +1 -1
  28. package/dist/shared/src/containers/Feed/hooks/useTransformActivities.cjs.js.map +1 -1
  29. package/dist/shared/src/containers/Feed/hooks/useTransformActivities.es.js +6 -6
  30. package/dist/shared/src/containers/Feed/hooks/useTransformActivities.es.js.map +1 -1
  31. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.cjs.js +2 -2
  32. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.cjs.js.map +1 -1
  33. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.es.js +10 -10
  34. package/dist/shared/src/hooks/useLoadModules.cjs.js +1 -1
  35. package/dist/shared/src/hooks/useLoadModules.cjs.js.map +1 -1
  36. package/dist/shared/src/hooks/useLoadModules.es.js +86 -80
  37. package/dist/shared/src/hooks/useLoadModules.es.js.map +1 -1
  38. package/dist/types/api/generated/graphql.d.ts +2 -1
  39. package/dist/types/api/generated/graphqlLinks.d.ts +1 -0
  40. package/package.json +2 -1
  41. package/dist/node_modules/@ungap/structured-clone/esm/deserialize.cjs.js +0 -2
  42. package/dist/node_modules/@ungap/structured-clone/esm/deserialize.cjs.js.map +0 -1
  43. package/dist/node_modules/@ungap/structured-clone/esm/deserialize.es.js +0 -63
  44. package/dist/node_modules/@ungap/structured-clone/esm/deserialize.es.js.map +0 -1
  45. package/dist/node_modules/@ungap/structured-clone/esm/index.cjs.js +0 -2
  46. package/dist/node_modules/@ungap/structured-clone/esm/index.cjs.js.map +0 -1
  47. package/dist/node_modules/@ungap/structured-clone/esm/index.es.js +0 -12
  48. package/dist/node_modules/@ungap/structured-clone/esm/index.es.js.map +0 -1
  49. package/dist/node_modules/@ungap/structured-clone/esm/serialize.cjs.js +0 -2
  50. package/dist/node_modules/@ungap/structured-clone/esm/serialize.cjs.js.map +0 -1
  51. package/dist/node_modules/@ungap/structured-clone/esm/serialize.es.js +0 -107
  52. package/dist/node_modules/@ungap/structured-clone/esm/serialize.es.js.map +0 -1
  53. package/dist/node_modules/@ungap/structured-clone/esm/types.cjs.js +0 -2
  54. package/dist/node_modules/@ungap/structured-clone/esm/types.cjs.js.map +0 -1
  55. package/dist/node_modules/@ungap/structured-clone/esm/types.es.js +0 -14
  56. package/dist/node_modules/@ungap/structured-clone/esm/types.es.js.map +0 -1
  57. package/dist/node_modules/devlop/lib/default.cjs.js +0 -2
  58. package/dist/node_modules/devlop/lib/default.cjs.js.map +0 -1
  59. package/dist/node_modules/devlop/lib/default.es.js +0 -6
  60. package/dist/node_modules/devlop/lib/default.es.js.map +0 -1
  61. package/dist/node_modules/entities/dist/esm/decode-codepoint.cjs.js +0 -2
  62. package/dist/node_modules/entities/dist/esm/decode-codepoint.cjs.js.map +0 -1
  63. package/dist/node_modules/entities/dist/esm/decode-codepoint.es.js +0 -39
  64. package/dist/node_modules/entities/dist/esm/decode-codepoint.es.js.map +0 -1
  65. package/dist/node_modules/entities/dist/esm/decode.cjs.js +0 -2
  66. package/dist/node_modules/entities/dist/esm/decode.cjs.js.map +0 -1
  67. package/dist/node_modules/entities/dist/esm/decode.es.js +0 -246
  68. package/dist/node_modules/entities/dist/esm/decode.es.js.map +0 -1
  69. package/dist/node_modules/entities/dist/esm/generated/decode-data-html.cjs.js +0 -2
  70. package/dist/node_modules/entities/dist/esm/generated/decode-data-html.cjs.js.map +0 -1
  71. package/dist/node_modules/entities/dist/esm/generated/decode-data-html.es.js +0 -8
  72. package/dist/node_modules/entities/dist/esm/generated/decode-data-html.es.js.map +0 -1
  73. package/dist/node_modules/hast-util-raw/lib/index.cjs.js +0 -2
  74. package/dist/node_modules/hast-util-raw/lib/index.cjs.js.map +0 -1
  75. package/dist/node_modules/hast-util-raw/lib/index.es.js +0 -218
  76. package/dist/node_modules/hast-util-raw/lib/index.es.js.map +0 -1
  77. package/dist/node_modules/hast-util-raw/node_modules/hast-util-from-parse5/lib/index.cjs.js +0 -2
  78. package/dist/node_modules/hast-util-raw/node_modules/hast-util-from-parse5/lib/index.cjs.js.map +0 -1
  79. package/dist/node_modules/hast-util-raw/node_modules/hast-util-from-parse5/lib/index.es.js +0 -146
  80. package/dist/node_modules/hast-util-raw/node_modules/hast-util-from-parse5/lib/index.es.js.map +0 -1
  81. package/dist/node_modules/hast-util-raw/node_modules/hast-util-parse-selector/lib/index.cjs.js +0 -2
  82. package/dist/node_modules/hast-util-raw/node_modules/hast-util-parse-selector/lib/index.cjs.js.map +0 -1
  83. package/dist/node_modules/hast-util-raw/node_modules/hast-util-parse-selector/lib/index.es.js +0 -21
  84. package/dist/node_modules/hast-util-raw/node_modules/hast-util-parse-selector/lib/index.es.js.map +0 -1
  85. package/dist/node_modules/hast-util-raw/node_modules/hastscript/lib/create-h.cjs.js +0 -2
  86. package/dist/node_modules/hast-util-raw/node_modules/hastscript/lib/create-h.cjs.js.map +0 -1
  87. package/dist/node_modules/hast-util-raw/node_modules/hastscript/lib/create-h.es.js +0 -113
  88. package/dist/node_modules/hast-util-raw/node_modules/hastscript/lib/create-h.es.js.map +0 -1
  89. package/dist/node_modules/hast-util-raw/node_modules/hastscript/lib/index.cjs.js +0 -2
  90. package/dist/node_modules/hast-util-raw/node_modules/hastscript/lib/index.cjs.js.map +0 -1
  91. package/dist/node_modules/hast-util-raw/node_modules/hastscript/lib/index.es.js +0 -9
  92. package/dist/node_modules/hast-util-raw/node_modules/hastscript/lib/index.es.js.map +0 -1
  93. package/dist/node_modules/hast-util-raw/node_modules/hastscript/lib/svg-case-sensitive-tag-names.cjs.js +0 -2
  94. package/dist/node_modules/hast-util-raw/node_modules/hastscript/lib/svg-case-sensitive-tag-names.cjs.js.map +0 -1
  95. package/dist/node_modules/hast-util-raw/node_modules/hastscript/lib/svg-case-sensitive-tag-names.es.js +0 -45
  96. package/dist/node_modules/hast-util-raw/node_modules/hastscript/lib/svg-case-sensitive-tag-names.es.js.map +0 -1
  97. package/dist/node_modules/hast-util-raw/node_modules/html-void-elements/index.cjs.js +0 -2
  98. package/dist/node_modules/hast-util-raw/node_modules/html-void-elements/index.cjs.js.map +0 -1
  99. package/dist/node_modules/hast-util-raw/node_modules/html-void-elements/index.es.js +0 -26
  100. package/dist/node_modules/hast-util-raw/node_modules/html-void-elements/index.es.js.map +0 -1
  101. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/doctype.cjs.js +0 -2
  102. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/doctype.cjs.js.map +0 -1
  103. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/doctype.es.js +0 -99
  104. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/doctype.es.js.map +0 -1
  105. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/error-codes.cjs.js +0 -2
  106. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/error-codes.cjs.js.map +0 -1
  107. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/error-codes.es.js +0 -8
  108. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/error-codes.es.js.map +0 -1
  109. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/foreign-content.cjs.js +0 -2
  110. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/foreign-content.cjs.js.map +0 -1
  111. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/foreign-content.es.js +0 -211
  112. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/foreign-content.es.js.map +0 -1
  113. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/html.cjs.js +0 -2
  114. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/html.cjs.js.map +0 -1
  115. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/html.es.js +0 -251
  116. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/html.es.js.map +0 -1
  117. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/token.cjs.js +0 -2
  118. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/token.cjs.js.map +0 -1
  119. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/token.es.js +0 -15
  120. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/token.es.js.map +0 -1
  121. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/unicode.cjs.js +0 -2
  122. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/unicode.cjs.js.map +0 -1
  123. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/unicode.es.js +0 -74
  124. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/unicode.es.js.map +0 -1
  125. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/parser/formatting-element-list.cjs.js +0 -2
  126. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/parser/formatting-element-list.cjs.js.map +0 -1
  127. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/parser/formatting-element-list.es.js +0 -85
  128. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/parser/formatting-element-list.es.js.map +0 -1
  129. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/parser/index.cjs.js +0 -2
  130. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/parser/index.cjs.js.map +0 -1
  131. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/parser/index.es.js +0 -2272
  132. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/parser/index.es.js.map +0 -1
  133. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/parser/open-element-stack.cjs.js +0 -2
  134. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/parser/open-element-stack.cjs.js.map +0 -1
  135. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/parser/open-element-stack.es.js +0 -241
  136. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/parser/open-element-stack.es.js.map +0 -1
  137. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/serializer/index.cjs.js +0 -2
  138. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/serializer/index.cjs.js.map +0 -1
  139. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/serializer/index.es.js +0 -3
  140. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/serializer/index.es.js.map +0 -1
  141. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/tokenizer/index.cjs.js +0 -2
  142. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/tokenizer/index.cjs.js.map +0 -1
  143. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/tokenizer/index.es.js +0 -1941
  144. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/tokenizer/index.es.js.map +0 -1
  145. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/tokenizer/preprocessor.cjs.js +0 -2
  146. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/tokenizer/preprocessor.cjs.js.map +0 -1
  147. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/tokenizer/preprocessor.es.js +0 -89
  148. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/tokenizer/preprocessor.es.js.map +0 -1
  149. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/tree-adapters/default.cjs.js +0 -2
  150. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/tree-adapters/default.cjs.js.map +0 -1
  151. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/tree-adapters/default.es.js +0 -163
  152. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/tree-adapters/default.es.js.map +0 -1
  153. package/dist/node_modules/hast-util-raw/node_modules/property-information/index.cjs.js +0 -2
  154. package/dist/node_modules/hast-util-raw/node_modules/property-information/index.cjs.js.map +0 -1
  155. package/dist/node_modules/hast-util-raw/node_modules/property-information/index.es.js +0 -13
  156. package/dist/node_modules/hast-util-raw/node_modules/property-information/index.es.js.map +0 -1
  157. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/aria.cjs.js +0 -2
  158. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/aria.cjs.js.map +0 -1
  159. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/aria.es.js +0 -62
  160. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/aria.es.js.map +0 -1
  161. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/find.cjs.js +0 -2
  162. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/find.cjs.js.map +0 -1
  163. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/find.es.js +0 -34
  164. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/find.es.js.map +0 -1
  165. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/html.cjs.js +0 -2
  166. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/html.cjs.js.map +0 -1
  167. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/html.es.js +0 -369
  168. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/html.es.js.map +0 -1
  169. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/normalize.cjs.js +0 -2
  170. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/normalize.cjs.js.map +0 -1
  171. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/normalize.es.js +0 -7
  172. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/normalize.es.js.map +0 -1
  173. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/svg.cjs.js +0 -2
  174. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/svg.cjs.js.map +0 -1
  175. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/svg.es.js +0 -567
  176. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/svg.es.js.map +0 -1
  177. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/case-insensitive-transform.cjs.js +0 -2
  178. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/case-insensitive-transform.cjs.js.map +0 -1
  179. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/case-insensitive-transform.es.js +0 -8
  180. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/case-insensitive-transform.es.js.map +0 -1
  181. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/case-sensitive-transform.cjs.js +0 -2
  182. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/case-sensitive-transform.cjs.js.map +0 -1
  183. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/case-sensitive-transform.es.js +0 -7
  184. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/case-sensitive-transform.es.js.map +0 -1
  185. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/create.cjs.js +0 -2
  186. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/create.cjs.js.map +0 -1
  187. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/create.es.js +0 -20
  188. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/create.es.js.map +0 -1
  189. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/defined-info.cjs.js +0 -2
  190. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/defined-info.cjs.js.map +0 -1
  191. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/defined-info.es.js +0 -37
  192. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/defined-info.es.js.map +0 -1
  193. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/info.cjs.js +0 -2
  194. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/info.cjs.js.map +0 -1
  195. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/info.es.js +0 -29
  196. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/info.es.js.map +0 -1
  197. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/merge.cjs.js +0 -2
  198. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/merge.cjs.js.map +0 -1
  199. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/merge.es.js +0 -11
  200. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/merge.es.js.map +0 -1
  201. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/schema.cjs.js +0 -2
  202. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/schema.cjs.js.map +0 -1
  203. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/schema.es.js +0 -22
  204. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/schema.es.js.map +0 -1
  205. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/types.cjs.js +0 -2
  206. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/types.cjs.js.map +0 -1
  207. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/types.es.js +0 -15
  208. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/types.es.js.map +0 -1
  209. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/xlink.cjs.js +0 -2
  210. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/xlink.cjs.js.map +0 -1
  211. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/xlink.es.js +0 -20
  212. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/xlink.es.js.map +0 -1
  213. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/xml.cjs.js +0 -2
  214. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/xml.cjs.js.map +0 -1
  215. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/xml.es.js +0 -12
  216. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/xml.es.js.map +0 -1
  217. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/xmlns.cjs.js +0 -2
  218. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/xmlns.cjs.js.map +0 -1
  219. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/xmlns.es.js +0 -12
  220. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/xmlns.es.js.map +0 -1
  221. package/dist/node_modules/hast-util-raw/node_modules/vfile-location/lib/index.cjs.js +0 -3
  222. package/dist/node_modules/hast-util-raw/node_modules/vfile-location/lib/index.cjs.js.map +0 -1
  223. package/dist/node_modules/hast-util-raw/node_modules/vfile-location/lib/index.es.js +0 -43
  224. package/dist/node_modules/hast-util-raw/node_modules/vfile-location/lib/index.es.js.map +0 -1
  225. package/dist/node_modules/hast-util-to-parse5/lib/index.cjs.js +0 -2
  226. package/dist/node_modules/hast-util-to-parse5/lib/index.cjs.js.map +0 -1
  227. package/dist/node_modules/hast-util-to-parse5/lib/index.es.js +0 -119
  228. package/dist/node_modules/hast-util-to-parse5/lib/index.es.js.map +0 -1
  229. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/index.cjs.js +0 -2
  230. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/index.cjs.js.map +0 -1
  231. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/index.es.js +0 -13
  232. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/index.es.js.map +0 -1
  233. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/aria.cjs.js +0 -2
  234. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/aria.cjs.js.map +0 -1
  235. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/aria.es.js +0 -62
  236. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/aria.es.js.map +0 -1
  237. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/find.cjs.js +0 -2
  238. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/find.cjs.js.map +0 -1
  239. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/find.es.js +0 -34
  240. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/find.es.js.map +0 -1
  241. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/html.cjs.js +0 -2
  242. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/html.cjs.js.map +0 -1
  243. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/html.es.js +0 -369
  244. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/html.es.js.map +0 -1
  245. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/normalize.cjs.js +0 -2
  246. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/normalize.cjs.js.map +0 -1
  247. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/normalize.es.js +0 -7
  248. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/normalize.es.js.map +0 -1
  249. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/svg.cjs.js +0 -2
  250. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/svg.cjs.js.map +0 -1
  251. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/svg.es.js +0 -567
  252. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/svg.es.js.map +0 -1
  253. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/case-insensitive-transform.cjs.js +0 -2
  254. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/case-insensitive-transform.cjs.js.map +0 -1
  255. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/case-insensitive-transform.es.js +0 -8
  256. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/case-insensitive-transform.es.js.map +0 -1
  257. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/case-sensitive-transform.cjs.js +0 -2
  258. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/case-sensitive-transform.cjs.js.map +0 -1
  259. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/case-sensitive-transform.es.js +0 -7
  260. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/case-sensitive-transform.es.js.map +0 -1
  261. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/create.cjs.js +0 -2
  262. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/create.cjs.js.map +0 -1
  263. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/create.es.js +0 -20
  264. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/create.es.js.map +0 -1
  265. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/defined-info.cjs.js +0 -2
  266. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/defined-info.cjs.js.map +0 -1
  267. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/defined-info.es.js +0 -37
  268. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/defined-info.es.js.map +0 -1
  269. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/info.cjs.js +0 -2
  270. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/info.cjs.js.map +0 -1
  271. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/info.es.js +0 -29
  272. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/info.es.js.map +0 -1
  273. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/merge.cjs.js +0 -2
  274. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/merge.cjs.js.map +0 -1
  275. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/merge.es.js +0 -11
  276. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/merge.es.js.map +0 -1
  277. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/schema.cjs.js +0 -2
  278. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/schema.cjs.js.map +0 -1
  279. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/schema.es.js +0 -22
  280. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/schema.es.js.map +0 -1
  281. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/types.cjs.js +0 -2
  282. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/types.cjs.js.map +0 -1
  283. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/types.es.js +0 -15
  284. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/types.es.js.map +0 -1
  285. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/xlink.cjs.js +0 -2
  286. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/xlink.cjs.js.map +0 -1
  287. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/xlink.es.js +0 -20
  288. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/xlink.es.js.map +0 -1
  289. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/xml.cjs.js +0 -2
  290. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/xml.cjs.js.map +0 -1
  291. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/xml.es.js +0 -12
  292. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/xml.es.js.map +0 -1
  293. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/xmlns.cjs.js +0 -2
  294. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/xmlns.cjs.js.map +0 -1
  295. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/xmlns.es.js +0 -12
  296. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/xmlns.es.js.map +0 -1
  297. package/dist/node_modules/rehype-raw/lib/index.cjs.js +0 -2
  298. package/dist/node_modules/rehype-raw/lib/index.cjs.js.map +0 -1
  299. package/dist/node_modules/rehype-raw/lib/index.es.js +0 -13
  300. package/dist/node_modules/rehype-raw/lib/index.es.js.map +0 -1
  301. package/dist/node_modules/unist-util-is/lib/index.cjs.js +0 -2
  302. package/dist/node_modules/unist-util-is/lib/index.cjs.js.map +0 -1
  303. package/dist/node_modules/unist-util-is/lib/index.es.js +0 -92
  304. package/dist/node_modules/unist-util-is/lib/index.es.js.map +0 -1
  305. package/dist/node_modules/unist-util-position/lib/index.cjs.js +0 -2
  306. package/dist/node_modules/unist-util-position/lib/index.cjs.js.map +0 -1
  307. package/dist/node_modules/unist-util-position/lib/index.es.js +0 -18
  308. package/dist/node_modules/unist-util-position/lib/index.es.js.map +0 -1
  309. package/dist/node_modules/unist-util-visit/lib/index.cjs.js +0 -2
  310. package/dist/node_modules/unist-util-visit/lib/index.cjs.js.map +0 -1
  311. package/dist/node_modules/unist-util-visit/lib/index.es.js +0 -17
  312. package/dist/node_modules/unist-util-visit/lib/index.es.js.map +0 -1
  313. package/dist/node_modules/unist-util-visit-parents/lib/color.cjs.js +0 -2
  314. package/dist/node_modules/unist-util-visit-parents/lib/color.cjs.js.map +0 -1
  315. package/dist/node_modules/unist-util-visit-parents/lib/color.es.js +0 -7
  316. package/dist/node_modules/unist-util-visit-parents/lib/color.es.js.map +0 -1
  317. package/dist/node_modules/unist-util-visit-parents/lib/index.cjs.js +0 -2
  318. package/dist/node_modules/unist-util-visit-parents/lib/index.cjs.js.map +0 -1
  319. package/dist/node_modules/unist-util-visit-parents/lib/index.es.js +0 -57
  320. package/dist/node_modules/unist-util-visit-parents/lib/index.es.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ColumnsSettings.cjs.js","sources":["../../../../../src/components/ProjectTableSettings/ColumnsSettings.tsx"],"sourcesContent":["// React and Styling imports\nimport { FC, useEffect, useMemo, useRef, useState } from 'react'\nimport styled from 'styled-components'\nimport * as Styled from './TableSettings.styled'\n\n// Context and Components imports\nimport {\n ColumnsConfig,\n useColumnSettingsContext,\n} from '@shared/containers/ProjectTreeTable/context/ColumnSettingsContext'\nimport ColumnItem from './ColumnItem'\nimport SortableColumnItem from './SortableColumnItem'\n\n// DND (Drag and Drop) imports\nimport {\n DndContext,\n closestCenter,\n DragEndEvent,\n DragStartEvent,\n useSensor,\n useSensors,\n PointerSensor,\n DragOverlay,\n DragOverEvent,\n} from '@dnd-kit/core'\nimport { SortableContext, verticalListSortingStrategy, arrayMove } from '@dnd-kit/sortable'\n\n// Notification imports\nimport { toast } from 'react-toastify'\nimport { SettingsPanelItem } from '../SettingsPanel/SettingsPanelItemTemplate'\nimport { SettingHighlightedId } from '@shared/context'\n\ninterface ColumnsSettingsProps {\n columns: SettingsPanelItem[]\n highlighted?: SettingHighlightedId\n}\n\nconst ColumnsSettings: FC<ColumnsSettingsProps> = ({ columns, highlighted }) => {\n const {\n columnVisibility,\n updateColumnVisibility,\n columnPinning,\n updateColumnPinning,\n columnOrder,\n setColumnsConfig,\n columnSizing,\n groupBy,\n } = useColumnSettingsContext()\n\n // State for the currently dragged column\n const [activeId, setActiveId] = useState<string | null>(null)\n const [isHiddenOverVisible, setIsHiddenOverVisible] = useState(false)\n const [isDraggingOverPinned, setIsDraggingOverPinned] = useState(false)\n const [isDraggingFromPinned, setIsDraggingFromPinned] = useState(false)\n // Add a new state to track if we're hovering over the visible section\n const [isHoveringVisibleSection, setIsHoveringVisibleSection] = useState(false)\n // Add state to track if dragging over the hidden section\n const [isDraggingOverHidden, setIsDraggingOverHidden] = useState(false)\n\n // Setup sensors for dnd-kit\n const sensors = useSensors(\n useSensor(PointerSensor, {\n activationConstraint: {\n distance: 5,\n },\n }),\n )\n\n const menuRef = useRef<HTMLUListElement | null>(null)\n\n // if highlighted is set, scroll to the highlighted column\n useEffect(() => {\n if (menuRef.current && highlighted) {\n const highlightedElement = menuRef.current.querySelector(`#column-settings-${highlighted}`)\n if (highlightedElement) {\n highlightedElement.scrollIntoView({\n behavior: 'smooth',\n block: 'center',\n })\n }\n }\n }, [highlighted])\n\n // Separate columns into visible, hidden, and pinned\n const { visibleColumns, hiddenColumns, pinnedColumns } = useMemo(() => {\n // First filter columns by visibility\n const visible = columns.filter((col) => columnVisibility[col.value] !== false)\n const hidden = columns.filter((col) => columnVisibility[col.value] === false)\n\n // Then separate out pinned columns from visible\n const pinned = visible.filter((col) => columnPinning.left?.includes(col.value))\n const unpinnedVisible = visible.filter((col) => !columnPinning.left?.includes(col.value))\n\n return {\n visibleColumns: unpinnedVisible,\n hiddenColumns: hidden,\n pinnedColumns: pinned,\n }\n }, [columns, columnVisibility, columnPinning])\n\n // Sort columns based on columnOrder\n const sortedVisibleColumns = useMemo(() => {\n // Create a copy of visible columns\n const visibleCopy = [...visibleColumns]\n\n // If we have a column order, use it to sort\n if (columnOrder.length > 0) {\n visibleCopy.sort((a, b) => {\n const indexA = columnOrder.indexOf(a.value)\n const indexB = columnOrder.indexOf(b.value)\n\n // If column is not in order array, place at end\n if (indexA === -1) return 1\n if (indexB === -1) return -1\n\n return indexA - indexB\n })\n }\n\n return visibleCopy\n }, [visibleColumns, columnOrder])\n\n // Sort pinned columns based on columnOrder\n const sortedPinnedColumns = useMemo(() => {\n // Create a copy of pinned columns\n const pinnedCopy = [...pinnedColumns]\n\n // If we have a column order, use it to sort\n if (columnOrder.length > 0) {\n pinnedCopy.sort((a, b) => {\n const indexA = columnOrder.indexOf(a.value)\n const indexB = columnOrder.indexOf(b.value)\n\n // If column is not in order array, place at end\n if (indexA === -1) return 1\n if (indexB === -1) return -1\n\n return indexA - indexB\n })\n }\n\n return pinnedCopy\n }, [pinnedColumns, columnOrder])\n\n const sortedVisibleColumnsIds = useMemo(\n () => sortedVisibleColumns.map((col) => col.value),\n [sortedVisibleColumns],\n )\n\n const sortedPinnedColumnsIds = useMemo(\n () => sortedPinnedColumns.map((col) => col.value),\n [sortedPinnedColumns],\n )\n\n // Toggle column visibility\n const toggleVisibility = (columnId: string) => {\n const newState = { ...columnVisibility }\n // If column is currently visible, hide it\n if (newState[columnId] !== false) {\n newState[columnId] = false\n } else {\n // If column is currently hidden, show it\n newState[columnId] = true\n }\n updateColumnVisibility(newState)\n }\n\n // Toggle column pinning\n const togglePinning = (columnId: string) => {\n const newState = { ...columnPinning }\n const newVisibility = { ...columnVisibility }\n\n // If column is currently pinned, unpin it\n if (newState.left?.includes(columnId)) {\n newState.left = newState.left.filter((id) => id !== columnId)\n } else {\n // If column is currently unpinned, pin it\n newState.left = [...(newState.left || []), columnId]\n // If column is hidden, show it\n if (newVisibility[columnId] === false) {\n newVisibility[columnId] = true\n updateColumnVisibility(newVisibility)\n }\n }\n updateColumnPinning(newState)\n }\n\n // When drag starts\n const handleDragStart = (event: DragStartEvent) => {\n const id = event.active.id as string\n setActiveId(id)\n setIsDraggingFromPinned(columnPinning.left?.includes(id) || false)\n }\n\n // Track when dragging over different sections\n const handleDragOver = (event: DragOverEvent) => {\n const { active, over } = event\n\n if (over && active.id !== over.id) {\n // Check if we're dragging a hidden column over a visible column\n const isActiveHidden = columnVisibility[active.id as string] === false\n const isOverVisible = columnVisibility[over.id as string] !== false\n const isOverPinned = columnPinning.left?.includes(over.id as string) || false\n const isOverHidden = columnVisibility[over.id as string] === false\n\n setIsHiddenOverVisible(isActiveHidden && isOverVisible && !isOverPinned)\n setIsDraggingOverPinned(isOverVisible && isOverPinned)\n setIsDraggingOverHidden(isOverHidden)\n\n // Set if we're hovering over the visible (unpinned) section\n setIsHoveringVisibleSection(isOverVisible && !isOverPinned)\n } else {\n // Reset when not over any column\n setIsHoveringVisibleSection(false)\n setIsDraggingOverHidden(false)\n }\n }\n\n // When drag ends, reset all states\n const handleDragEnd = (event: DragEndEvent) => {\n // Reset states\n setIsHiddenOverVisible(false)\n setIsDraggingOverPinned(false)\n setIsDraggingFromPinned(false)\n setIsHoveringVisibleSection(false)\n setIsDraggingOverHidden(false)\n\n const { active, over } = event\n\n if (over && active.id !== over.id) {\n // Find the dragged column and target column\n const activeColumn = [...visibleColumns, ...hiddenColumns, ...pinnedColumns].find(\n (col) => col.value === active.id,\n )\n const overColumn = [...visibleColumns, ...hiddenColumns, ...pinnedColumns].find(\n (col) => col.value === over.id,\n )\n\n if (activeColumn && overColumn) {\n const activeId = active.id as string\n const overId = over.id as string\n const isActiveVisible = columnVisibility[activeId] !== false\n const isOverVisible = columnVisibility[overId] !== false\n const isActivePinned = columnPinning.left?.includes(activeId) || false\n const isOverPinned = columnPinning.left?.includes(overId) || false\n const isOverHidden = columnVisibility[overId] === false\n\n // Create a new config object that we'll update and apply at the end\n const newConfig: ColumnsConfig = {\n columnVisibility: { ...columnVisibility },\n columnOrder: [...columnOrder],\n columnPinning: { ...columnPinning },\n columnSizing: { ...columnSizing },\n }\n\n // If we're moving a column between visible columns (including pinned)\n if (isActiveVisible && isOverVisible) {\n let newPinningLeft = [...(newConfig.columnPinning.left || [])]\n\n // Handle pinning/unpinning based on target section\n if (isActivePinned !== isOverPinned) {\n if (isActivePinned && !isOverPinned) {\n // Moving from pinned to unpinned section\n newPinningLeft = newPinningLeft.filter((id) => id !== activeId)\n } else if (!isActivePinned && isOverPinned) {\n // Moving from unpinned to pinned section\n newPinningLeft = [...newPinningLeft, activeId]\n }\n }\n\n // Update order within the appropriate section\n const allVisibleIds = [...sortedPinnedColumnsIds, ...sortedVisibleColumnsIds]\n const oldIndex = allVisibleIds.indexOf(activeId)\n const newIndex = allVisibleIds.indexOf(overId)\n\n if (oldIndex === -1 || newIndex === -1) {\n console.error('Invalid column order state')\n toast.error('Invalid column order state')\n return\n }\n\n const newOrder = arrayMove(allVisibleIds, oldIndex, newIndex)\n\n // new pinning left should be ordered by the new order\n const newPinningLeftOrdered = newOrder.filter((id) => newPinningLeft.includes(id))\n\n // Update config object\n newConfig.columnOrder = newOrder\n newConfig.columnPinning = {\n ...newConfig.columnPinning,\n left: newPinningLeftOrdered,\n }\n\n // Apply all changes at once\n setColumnsConfig(newConfig)\n }\n\n // If we're dragging from hidden to visible\n else if (!isActiveVisible && isOverVisible) {\n // Make the column visible\n newConfig.columnVisibility[activeId] = true\n\n // If dropping into pinned section, also pin the column\n if (isOverPinned) {\n const newPinningLeft = [...(newConfig.columnPinning.left || []), activeId]\n newConfig.columnPinning.left = newPinningLeft\n }\n\n // Update order to place it near the over column\n const allVisibleIds = [...sortedPinnedColumnsIds, ...sortedVisibleColumnsIds]\n\n // Add the column to order if not already there\n if (!allVisibleIds.includes(activeId)) {\n const overIndex = allVisibleIds.indexOf(overId)\n allVisibleIds.splice(overIndex, 0, activeId)\n }\n\n newConfig.columnOrder = allVisibleIds\n\n // Apply all changes at once\n setColumnsConfig(newConfig)\n }\n\n // If we're dragging from visible to hidden\n else if (isActiveVisible && isOverHidden) {\n // Make the active column hidden\n newConfig.columnVisibility[activeId] = false\n\n // If the column was pinned, remove it from pinned\n if (isActivePinned) {\n const newPinningLeft = (newConfig.columnPinning.left || []).filter(\n (id) => id !== activeId,\n )\n newConfig.columnPinning.left = newPinningLeft\n }\n\n // Apply all changes at once\n setColumnsConfig(newConfig)\n }\n }\n }\n\n setActiveId(null)\n }\n\n // Find the active column for the drag overlay\n const activeColumn = activeId\n ? [...visibleColumns, ...hiddenColumns, ...pinnedColumns].find((col) => col.value === activeId)\n : null\n\n return (\n <DndContext\n sensors={sensors}\n collisionDetection={closestCenter}\n onDragStart={handleDragStart}\n onDragOver={handleDragOver}\n onDragEnd={handleDragEnd}\n >\n <ColumnsContainer>\n {/* Pinned Columns Section */}\n {pinnedColumns.length > 0 && (\n <Section className={isDraggingOverPinned && !isDraggingFromPinned ? 'drop-target' : ''}>\n <SectionTitle>Pinned Columns</SectionTitle>\n <SortableContext\n items={sortedPinnedColumns.map((col) => col.value)}\n strategy={verticalListSortingStrategy}\n >\n <Styled.Menu>\n {sortedPinnedColumns.map((column) => (\n <SortableColumnItem\n key={column.value}\n id={column.value}\n column={column}\n isPinned={true}\n isHidden={false}\n isDisabled={!!groupBy && column.value === 'name'} // Disable 'name' column if grouping is enabled\n isHighlighted={highlighted === column.value}\n onTogglePinning={togglePinning}\n onToggleVisibility={toggleVisibility}\n />\n ))}\n </Styled.Menu>\n </SortableContext>\n </Section>\n )}\n\n {/* Visible Columns Section */}\n <Section\n className={\n isHiddenOverVisible || (isDraggingFromPinned && isHoveringVisibleSection)\n ? 'drop-target'\n : ''\n }\n >\n <SectionTitle>Visible Columns</SectionTitle>\n <SortableContext\n items={sortedVisibleColumns.map((col) => col.value)}\n strategy={verticalListSortingStrategy}\n >\n <Styled.Menu>\n {sortedVisibleColumns.map((column) => (\n <SortableColumnItem\n key={column.value}\n id={column.value}\n column={column}\n isPinned={false}\n isHidden={false}\n isHighlighted={highlighted === column.value}\n isDisabled={!!groupBy && column.value === 'name'} // Disable 'name' column if grouping is enabled\n onTogglePinning={togglePinning}\n onToggleVisibility={toggleVisibility}\n />\n ))}\n </Styled.Menu>\n </SortableContext>\n </Section>\n\n {/* Hidden Columns Section */}\n {hiddenColumns.length > 0 && (\n <Section className={isDraggingOverHidden ? 'drop-target' : ''}>\n <SectionTitle>Hidden Columns</SectionTitle>\n <Styled.Menu ref={menuRef}>\n {hiddenColumns.map((column) => (\n <SortableColumnItem\n key={column.value}\n id={column.value}\n column={column}\n isPinned={columnPinning.left?.includes(column.value) || false}\n isHidden={true}\n isHighlighted={highlighted === column.value}\n isDisabled={!!groupBy && column.value === 'name'} // Disable 'name' column if grouping is enabled\n onTogglePinning={togglePinning}\n onToggleVisibility={toggleVisibility}\n />\n ))}\n </Styled.Menu>\n </Section>\n )}\n\n {/* Drag Overlay */}\n <DragOverlay>\n {activeColumn && (\n <ColumnItem\n column={activeColumn}\n isPinned={columnPinning.left?.includes(activeColumn.value) || false}\n isHidden={columnVisibility[activeColumn.value] === false}\n isHighlighted={highlighted === activeColumn.value}\n dragOverlay={true}\n />\n )}\n </DragOverlay>\n </ColumnsContainer>\n </DndContext>\n )\n}\n\n// Styled components\nconst ColumnsContainer = styled.div`\n display: flex;\n flex-direction: column;\n gap: var(--base-gap-large);\n`\n\nconst Section = styled.section`\n position: relative;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n transition: background-color 0.2s ease;\n border-radius: 4px;\n\n &.drop-target {\n background-color: var(--md-sys-color-surface-container);\n box-shadow: 0 0 0 1px var(--md-sys-color-outline);\n }\n`\n\nconst SectionTitle = styled.div`\n font-weight: 500;\n color: var(--md-sys-color-outline);\n padding: 4px 0;\n`\n\nexport default ColumnsSettings\n"],"names":["ColumnsSettings","columns","highlighted","columnVisibility","updateColumnVisibility","columnPinning","updateColumnPinning","columnOrder","setColumnsConfig","columnSizing","groupBy","useColumnSettingsContext","activeId","setActiveId","useState","isHiddenOverVisible","setIsHiddenOverVisible","isDraggingOverPinned","setIsDraggingOverPinned","isDraggingFromPinned","setIsDraggingFromPinned","isHoveringVisibleSection","setIsHoveringVisibleSection","isDraggingOverHidden","setIsDraggingOverHidden","sensors","useSensors","useSensor","PointerSensor","menuRef","useRef","useEffect","highlightedElement","visibleColumns","hiddenColumns","pinnedColumns","useMemo","visible","col","hidden","pinned","sortedVisibleColumns","visibleCopy","a","b","indexA","indexB","sortedPinnedColumns","pinnedCopy","sortedVisibleColumnsIds","sortedPinnedColumnsIds","toggleVisibility","columnId","newState","togglePinning","newVisibility","id","handleDragStart","event","handleDragOver","active","over","isActiveHidden","isOverVisible","isOverPinned","isOverHidden","handleDragEnd","activeColumn","overColumn","overId","isActiveVisible","isActivePinned","newConfig","newPinningLeft","allVisibleIds","oldIndex","newIndex","toast","newOrder","arrayMove","newPinningLeftOrdered","overIndex","jsx","DndContext","closestCenter","ColumnsContainer","jsxs","Section","SectionTitle","SortableContext","verticalListSortingStrategy","Styled.Menu","column","SortableColumnItem","DragOverlay","ColumnItem","styled"],"mappings":"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"}
1
+ {"version":3,"file":"ColumnsSettings.cjs.js","sources":["../../../../../src/components/ProjectTableSettings/ColumnsSettings.tsx"],"sourcesContent":["// React and Styling imports\nimport { FC, useEffect, useMemo, useRef, useState } from 'react'\nimport styled from 'styled-components'\nimport * as Styled from './TableSettings.styled'\n\n// Context and Components imports\nimport {\n ColumnsConfig,\n useColumnSettingsContext,\n} from '@shared/containers/ProjectTreeTable/context/ColumnSettingsContext'\nimport ColumnItem from './ColumnItem'\nimport SortableColumnItem from './SortableColumnItem'\n\n// DND (Drag and Drop) imports\nimport {\n DndContext,\n closestCenter,\n DragEndEvent,\n DragStartEvent,\n useSensor,\n useSensors,\n PointerSensor,\n DragOverlay,\n DragOverEvent,\n} from '@dnd-kit/core'\nimport { SortableContext, verticalListSortingStrategy, arrayMove } from '@dnd-kit/sortable'\n\n// Notification imports\nimport { toast } from 'react-toastify'\nimport { SettingsPanelItem } from '../SettingsPanel/SettingsPanelItemTemplate'\nimport { SettingHighlightedId } from '@shared/context'\n\ninterface ColumnsSettingsProps {\n columns: SettingsPanelItem[]\n highlighted?: SettingHighlightedId\n}\n\nconst ColumnsSettings: FC<ColumnsSettingsProps> = ({ columns, highlighted }) => {\n const {\n columnVisibility,\n updateColumnVisibility,\n columnPinning,\n updateColumnPinning,\n columnOrder,\n setColumnsConfig,\n columnSizing,\n groupBy,\n sorting,\n rowHeight,\n } = useColumnSettingsContext()\n\n // State for the currently dragged column\n const [activeId, setActiveId] = useState<string | null>(null)\n const [isHiddenOverVisible, setIsHiddenOverVisible] = useState(false)\n const [isDraggingOverPinned, setIsDraggingOverPinned] = useState(false)\n const [isDraggingFromPinned, setIsDraggingFromPinned] = useState(false)\n // Add a new state to track if we're hovering over the visible section\n const [isHoveringVisibleSection, setIsHoveringVisibleSection] = useState(false)\n // Add state to track if dragging over the hidden section\n const [isDraggingOverHidden, setIsDraggingOverHidden] = useState(false)\n\n // Setup sensors for dnd-kit\n const sensors = useSensors(\n useSensor(PointerSensor, {\n activationConstraint: {\n distance: 5,\n },\n }),\n )\n\n const menuRef = useRef<HTMLUListElement | null>(null)\n\n // if highlighted is set, scroll to the highlighted column\n useEffect(() => {\n if (menuRef.current && highlighted) {\n const highlightedElement = menuRef.current.querySelector(`#column-settings-${highlighted}`)\n if (highlightedElement) {\n highlightedElement.scrollIntoView({\n behavior: 'smooth',\n block: 'center',\n })\n }\n }\n }, [highlighted])\n\n // Separate columns into visible, hidden, and pinned\n const { visibleColumns, hiddenColumns, pinnedColumns } = useMemo(() => {\n // First filter columns by visibility\n const visible = columns.filter((col) => columnVisibility[col.value] !== false)\n const hidden = columns.filter((col) => columnVisibility[col.value] === false)\n\n // Then separate out pinned columns from visible\n const pinned = visible.filter((col) => columnPinning.left?.includes(col.value))\n const unpinnedVisible = visible.filter((col) => !columnPinning.left?.includes(col.value))\n\n return {\n visibleColumns: unpinnedVisible,\n hiddenColumns: hidden,\n pinnedColumns: pinned,\n }\n }, [columns, columnVisibility, columnPinning])\n\n // Sort columns based on columnOrder\n const sortedVisibleColumns = useMemo(() => {\n // Create a copy of visible columns\n const visibleCopy = [...visibleColumns]\n\n // If we have a column order, use it to sort\n if (columnOrder.length > 0) {\n visibleCopy.sort((a, b) => {\n const indexA = columnOrder.indexOf(a.value)\n const indexB = columnOrder.indexOf(b.value)\n\n // If column is not in order array, place at end\n if (indexA === -1) return 1\n if (indexB === -1) return -1\n\n return indexA - indexB\n })\n }\n\n return visibleCopy\n }, [visibleColumns, columnOrder])\n\n // Sort pinned columns based on columnOrder\n const sortedPinnedColumns = useMemo(() => {\n // Create a copy of pinned columns\n const pinnedCopy = [...pinnedColumns]\n\n // If we have a column order, use it to sort\n if (columnOrder.length > 0) {\n pinnedCopy.sort((a, b) => {\n const indexA = columnOrder.indexOf(a.value)\n const indexB = columnOrder.indexOf(b.value)\n\n // If column is not in order array, place at end\n if (indexA === -1) return 1\n if (indexB === -1) return -1\n\n return indexA - indexB\n })\n }\n\n return pinnedCopy\n }, [pinnedColumns, columnOrder])\n\n const sortedVisibleColumnsIds = useMemo(\n () => sortedVisibleColumns.map((col) => col.value),\n [sortedVisibleColumns],\n )\n\n const sortedPinnedColumnsIds = useMemo(\n () => sortedPinnedColumns.map((col) => col.value),\n [sortedPinnedColumns],\n )\n\n // Toggle column visibility\n const toggleVisibility = (columnId: string) => {\n const newState = { ...columnVisibility }\n // If column is currently visible, hide it\n if (newState[columnId] !== false) {\n newState[columnId] = false\n } else {\n // If column is currently hidden, show it\n newState[columnId] = true\n }\n updateColumnVisibility(newState)\n }\n\n // Toggle column pinning\n const togglePinning = (columnId: string) => {\n const newState = { ...columnPinning }\n const newVisibility = { ...columnVisibility }\n\n // If column is currently pinned, unpin it\n if (newState.left?.includes(columnId)) {\n newState.left = newState.left.filter((id) => id !== columnId)\n } else {\n // If column is currently unpinned, pin it\n newState.left = [...(newState.left || []), columnId]\n // If column is hidden, show it\n if (newVisibility[columnId] === false) {\n newVisibility[columnId] = true\n updateColumnVisibility(newVisibility)\n }\n }\n updateColumnPinning(newState)\n }\n\n // When drag starts\n const handleDragStart = (event: DragStartEvent) => {\n const id = event.active.id as string\n setActiveId(id)\n setIsDraggingFromPinned(columnPinning.left?.includes(id) || false)\n }\n\n // Track when dragging over different sections\n const handleDragOver = (event: DragOverEvent) => {\n const { active, over } = event\n\n if (over && active.id !== over.id) {\n // Check if we're dragging a hidden column over a visible column\n const isActiveHidden = columnVisibility[active.id as string] === false\n const isOverVisible = columnVisibility[over.id as string] !== false\n const isOverPinned = columnPinning.left?.includes(over.id as string) || false\n const isOverHidden = columnVisibility[over.id as string] === false\n\n setIsHiddenOverVisible(isActiveHidden && isOverVisible && !isOverPinned)\n setIsDraggingOverPinned(isOverVisible && isOverPinned)\n setIsDraggingOverHidden(isOverHidden)\n\n // Set if we're hovering over the visible (unpinned) section\n setIsHoveringVisibleSection(isOverVisible && !isOverPinned)\n } else {\n // Reset when not over any column\n setIsHoveringVisibleSection(false)\n setIsDraggingOverHidden(false)\n }\n }\n\n // When drag ends, reset all states\n const handleDragEnd = (event: DragEndEvent) => {\n // Reset states\n setIsHiddenOverVisible(false)\n setIsDraggingOverPinned(false)\n setIsDraggingFromPinned(false)\n setIsHoveringVisibleSection(false)\n setIsDraggingOverHidden(false)\n\n const { active, over } = event\n\n if (over && active.id !== over.id) {\n // Find the dragged column and target column\n const activeColumn = [...visibleColumns, ...hiddenColumns, ...pinnedColumns].find(\n (col) => col.value === active.id,\n )\n const overColumn = [...visibleColumns, ...hiddenColumns, ...pinnedColumns].find(\n (col) => col.value === over.id,\n )\n\n if (activeColumn && overColumn) {\n const activeId = active.id as string\n const overId = over.id as string\n const isActiveVisible = columnVisibility[activeId] !== false\n const isOverVisible = columnVisibility[overId] !== false\n const isActivePinned = columnPinning.left?.includes(activeId) || false\n const isOverPinned = columnPinning.left?.includes(overId) || false\n const isOverHidden = columnVisibility[overId] === false\n\n // Create a new config object that we'll update and apply at the end\n const newConfig: ColumnsConfig = {\n columnVisibility: { ...columnVisibility },\n columnOrder: [...columnOrder],\n columnPinning: { ...columnPinning },\n columnSizing: { ...columnSizing },\n groupBy,\n sorting,\n rowHeight,\n }\n\n // If we're moving a column between visible columns (including pinned)\n if (isActiveVisible && isOverVisible) {\n let newPinningLeft = [...(newConfig.columnPinning.left || [])]\n\n // Handle pinning/unpinning based on target section\n if (isActivePinned !== isOverPinned) {\n if (isActivePinned && !isOverPinned) {\n // Moving from pinned to unpinned section\n newPinningLeft = newPinningLeft.filter((id) => id !== activeId)\n } else if (!isActivePinned && isOverPinned) {\n // Moving from unpinned to pinned section\n newPinningLeft = [...newPinningLeft, activeId]\n }\n }\n\n // Update order within the appropriate section\n const allVisibleIds = [...sortedPinnedColumnsIds, ...sortedVisibleColumnsIds]\n const oldIndex = allVisibleIds.indexOf(activeId)\n const newIndex = allVisibleIds.indexOf(overId)\n\n if (oldIndex === -1 || newIndex === -1) {\n console.error('Invalid column order state')\n toast.error('Invalid column order state')\n return\n }\n\n const newOrder = arrayMove(allVisibleIds, oldIndex, newIndex)\n\n // new pinning left should be ordered by the new order\n const newPinningLeftOrdered = newOrder.filter((id) => newPinningLeft.includes(id))\n\n // Update config object\n newConfig.columnOrder = newOrder\n newConfig.columnPinning = {\n ...newConfig.columnPinning,\n left: newPinningLeftOrdered,\n }\n\n // Apply all changes at once\n setColumnsConfig(newConfig)\n }\n\n // If we're dragging from hidden to visible\n else if (!isActiveVisible && isOverVisible) {\n // Make the column visible\n newConfig.columnVisibility[activeId] = true\n\n // If dropping into pinned section, also pin the column\n if (isOverPinned) {\n const newPinningLeft = [...(newConfig.columnPinning.left || []), activeId]\n newConfig.columnPinning.left = newPinningLeft\n }\n\n // Update order to place it near the over column\n const allVisibleIds = [...sortedPinnedColumnsIds, ...sortedVisibleColumnsIds]\n\n // Add the column to order if not already there\n if (!allVisibleIds.includes(activeId)) {\n const overIndex = allVisibleIds.indexOf(overId)\n allVisibleIds.splice(overIndex, 0, activeId)\n }\n\n newConfig.columnOrder = allVisibleIds\n\n // Apply all changes at once\n setColumnsConfig(newConfig)\n }\n\n // If we're dragging from visible to hidden\n else if (isActiveVisible && isOverHidden) {\n // Make the active column hidden\n newConfig.columnVisibility[activeId] = false\n\n // If the column was pinned, remove it from pinned\n if (isActivePinned) {\n const newPinningLeft = (newConfig.columnPinning.left || []).filter(\n (id) => id !== activeId,\n )\n newConfig.columnPinning.left = newPinningLeft\n }\n\n // Apply all changes at once\n setColumnsConfig(newConfig)\n }\n }\n }\n\n setActiveId(null)\n }\n\n // Find the active column for the drag overlay\n const activeColumn = activeId\n ? [...visibleColumns, ...hiddenColumns, ...pinnedColumns].find((col) => col.value === activeId)\n : null\n\n return (\n <DndContext\n sensors={sensors}\n collisionDetection={closestCenter}\n onDragStart={handleDragStart}\n onDragOver={handleDragOver}\n onDragEnd={handleDragEnd}\n >\n <ColumnsContainer>\n {/* Pinned Columns Section */}\n {pinnedColumns.length > 0 && (\n <Section className={isDraggingOverPinned && !isDraggingFromPinned ? 'drop-target' : ''}>\n <SectionTitle>Pinned Columns</SectionTitle>\n <SortableContext\n items={sortedPinnedColumns.map((col) => col.value)}\n strategy={verticalListSortingStrategy}\n >\n <Styled.Menu>\n {sortedPinnedColumns.map((column) => (\n <SortableColumnItem\n key={column.value}\n id={column.value}\n column={column}\n isPinned={true}\n isHidden={false}\n isDisabled={!!groupBy && column.value === 'name'} // Disable 'name' column if grouping is enabled\n isHighlighted={highlighted === column.value}\n onTogglePinning={togglePinning}\n onToggleVisibility={toggleVisibility}\n />\n ))}\n </Styled.Menu>\n </SortableContext>\n </Section>\n )}\n\n {/* Visible Columns Section */}\n <Section\n className={\n isHiddenOverVisible || (isDraggingFromPinned && isHoveringVisibleSection)\n ? 'drop-target'\n : ''\n }\n >\n <SectionTitle>Visible Columns</SectionTitle>\n <SortableContext\n items={sortedVisibleColumns.map((col) => col.value)}\n strategy={verticalListSortingStrategy}\n >\n <Styled.Menu>\n {sortedVisibleColumns.map((column) => (\n <SortableColumnItem\n key={column.value}\n id={column.value}\n column={column}\n isPinned={false}\n isHidden={false}\n isHighlighted={highlighted === column.value}\n isDisabled={!!groupBy && column.value === 'name'} // Disable 'name' column if grouping is enabled\n onTogglePinning={togglePinning}\n onToggleVisibility={toggleVisibility}\n />\n ))}\n </Styled.Menu>\n </SortableContext>\n </Section>\n\n {/* Hidden Columns Section */}\n {hiddenColumns.length > 0 && (\n <Section className={isDraggingOverHidden ? 'drop-target' : ''}>\n <SectionTitle>Hidden Columns</SectionTitle>\n <Styled.Menu ref={menuRef}>\n {hiddenColumns.map((column) => (\n <SortableColumnItem\n key={column.value}\n id={column.value}\n column={column}\n isPinned={columnPinning.left?.includes(column.value) || false}\n isHidden={true}\n isHighlighted={highlighted === column.value}\n isDisabled={!!groupBy && column.value === 'name'} // Disable 'name' column if grouping is enabled\n onTogglePinning={togglePinning}\n onToggleVisibility={toggleVisibility}\n />\n ))}\n </Styled.Menu>\n </Section>\n )}\n\n {/* Drag Overlay */}\n <DragOverlay>\n {activeColumn && (\n <ColumnItem\n column={activeColumn}\n isPinned={columnPinning.left?.includes(activeColumn.value) || false}\n isHidden={columnVisibility[activeColumn.value] === false}\n isHighlighted={highlighted === activeColumn.value}\n dragOverlay={true}\n />\n )}\n </DragOverlay>\n </ColumnsContainer>\n </DndContext>\n )\n}\n\n// Styled components\nconst ColumnsContainer = styled.div`\n display: flex;\n flex-direction: column;\n gap: var(--base-gap-large);\n`\n\nconst Section = styled.section`\n position: relative;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n transition: background-color 0.2s ease;\n border-radius: 4px;\n\n &.drop-target {\n background-color: var(--md-sys-color-surface-container);\n box-shadow: 0 0 0 1px var(--md-sys-color-outline);\n }\n`\n\nconst SectionTitle = styled.div`\n font-weight: 500;\n color: var(--md-sys-color-outline);\n padding: 4px 0;\n`\n\nexport default ColumnsSettings\n"],"names":["ColumnsSettings","columns","highlighted","columnVisibility","updateColumnVisibility","columnPinning","updateColumnPinning","columnOrder","setColumnsConfig","columnSizing","groupBy","sorting","rowHeight","useColumnSettingsContext","activeId","setActiveId","useState","isHiddenOverVisible","setIsHiddenOverVisible","isDraggingOverPinned","setIsDraggingOverPinned","isDraggingFromPinned","setIsDraggingFromPinned","isHoveringVisibleSection","setIsHoveringVisibleSection","isDraggingOverHidden","setIsDraggingOverHidden","sensors","useSensors","useSensor","PointerSensor","menuRef","useRef","useEffect","highlightedElement","visibleColumns","hiddenColumns","pinnedColumns","useMemo","visible","col","hidden","pinned","sortedVisibleColumns","visibleCopy","a","b","indexA","indexB","sortedPinnedColumns","pinnedCopy","sortedVisibleColumnsIds","sortedPinnedColumnsIds","toggleVisibility","columnId","newState","togglePinning","newVisibility","id","handleDragStart","event","handleDragOver","active","over","isActiveHidden","isOverVisible","isOverPinned","isOverHidden","handleDragEnd","activeColumn","overColumn","overId","isActiveVisible","isActivePinned","newConfig","newPinningLeft","allVisibleIds","oldIndex","newIndex","toast","newOrder","arrayMove","newPinningLeftOrdered","overIndex","jsx","DndContext","closestCenter","ColumnsContainer","jsxs","Section","SectionTitle","SortableContext","verticalListSortingStrategy","Styled.Menu","column","SortableColumnItem","DragOverlay","ColumnItem","styled"],"mappings":"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"}
@@ -1,33 +1,35 @@
1
1
  import { j as l } from "../../../../_virtual/jsx-runtime.es.js";
2
- import { useState as x, useRef as ge, useEffect as ve, useMemo as P } from "react";
2
+ import { useState as x, useRef as me, useEffect as xe, useMemo as P } from "react";
3
3
  import R from "styled-components";
4
4
  import { Menu as k } from "./TableSettings.styled.es.js";
5
- import { useColumnSettingsContext as me } from "../../containers/ProjectTreeTable/context/ColumnSettingsContext.es.js";
6
- import xe from "./ColumnItem.es.js";
5
+ import { useColumnSettingsContext as pe } from "../../containers/ProjectTreeTable/context/ColumnSettingsContext.es.js";
6
+ import be from "./ColumnItem.es.js";
7
7
  import B from "./SortableColumnItem.es.js";
8
- import { useSensors as pe, useSensor as be, PointerSensor as Ce, DndContext as Pe, closestCenter as Oe, DragOverlay as ye } from "@dnd-kit/core";
9
- import { SortableContext as _, verticalListSortingStrategy as ee, arrayMove as Ve } from "@dnd-kit/sortable";
10
- import { toast as he } from "react-toastify";
11
- const Be = ({ columns: S, highlighted: g }) => {
8
+ import { useSensors as Ce, useSensor as Pe, PointerSensor as Oe, DndContext as ye, closestCenter as Ve, DragOverlay as he } from "@dnd-kit/core";
9
+ import { SortableContext as _, verticalListSortingStrategy as ee, arrayMove as Se } from "@dnd-kit/sortable";
10
+ import { toast as je } from "react-toastify";
11
+ const Ne = ({ columns: j, highlighted: g }) => {
12
12
  const {
13
13
  columnVisibility: r,
14
14
  updateColumnVisibility: z,
15
15
  columnPinning: c,
16
16
  updateColumnPinning: ne,
17
17
  columnOrder: f,
18
- setColumnsConfig: j,
18
+ setColumnsConfig: H,
19
19
  columnSizing: ie,
20
- groupBy: D
21
- } = me(), [F, q] = x(null), [se, $] = x(!1), [te, G] = x(!1), [J, K] = x(!1), [le, H] = x(!1), [oe, I] = x(!1), re = pe(
22
- be(Ce, {
20
+ groupBy: O,
21
+ sorting: se,
22
+ rowHeight: te
23
+ } = pe(), [F, q] = x(null), [le, $] = x(!1), [oe, G] = x(!1), [J, K] = x(!1), [re, D] = x(!1), [ae, w] = x(!1), de = Ce(
24
+ Pe(Oe, {
23
25
  activationConstraint: {
24
26
  distance: 5
25
27
  }
26
28
  })
27
- ), w = ge(null);
28
- ve(() => {
29
- if (w.current && g) {
30
- const e = w.current.querySelector(`#column-settings-${g}`);
29
+ ), I = me(null);
30
+ xe(() => {
31
+ if (I.current && g) {
32
+ const e = I.current.querySelector(`#column-settings-${g}`);
31
33
  e && e.scrollIntoView({
32
34
  behavior: "smooth",
33
35
  block: "center"
@@ -35,48 +37,48 @@ const Be = ({ columns: S, highlighted: g }) => {
35
37
  }
36
38
  }, [g]);
37
39
  const { visibleColumns: p, hiddenColumns: b, pinnedColumns: m } = P(() => {
38
- const e = S.filter((s) => r[s.value] !== !1), n = S.filter((s) => r[s.value] === !1), i = e.filter((s) => c.left?.includes(s.value));
40
+ const e = j.filter((s) => r[s.value] !== !1), n = j.filter((s) => r[s.value] === !1), i = e.filter((s) => c.left?.includes(s.value));
39
41
  return {
40
42
  visibleColumns: e.filter((s) => !c.left?.includes(s.value)),
41
43
  hiddenColumns: n,
42
44
  pinnedColumns: i
43
45
  };
44
- }, [S, r, c]), O = P(() => {
46
+ }, [j, r, c]), y = P(() => {
45
47
  const e = [...p];
46
48
  return f.length > 0 && e.sort((n, i) => {
47
49
  const a = f.indexOf(n.value), s = f.indexOf(i.value);
48
50
  return a === -1 ? 1 : s === -1 ? -1 : a - s;
49
51
  }), e;
50
- }, [p, f]), y = P(() => {
52
+ }, [p, f]), V = P(() => {
51
53
  const e = [...m];
52
54
  return f.length > 0 && e.sort((n, i) => {
53
55
  const a = f.indexOf(n.value), s = f.indexOf(i.value);
54
56
  return a === -1 ? 1 : s === -1 ? -1 : a - s;
55
57
  }), e;
56
58
  }, [m, f]), Q = P(
57
- () => O.map((e) => e.value),
58
- [O]
59
- ), U = P(
60
59
  () => y.map((e) => e.value),
61
60
  [y]
61
+ ), U = P(
62
+ () => V.map((e) => e.value),
63
+ [V]
62
64
  ), T = (e) => {
63
65
  const n = { ...r };
64
66
  n[e] !== !1 ? n[e] = !1 : n[e] = !0, z(n);
65
67
  }, A = (e) => {
66
68
  const n = { ...c }, i = { ...r };
67
69
  n.left?.includes(e) ? n.left = n.left.filter((a) => a !== e) : (n.left = [...n.left || [], e], i[e] === !1 && (i[e] = !0, z(i))), ne(n);
68
- }, ae = (e) => {
70
+ }, ce = (e) => {
69
71
  const n = e.active.id;
70
72
  q(n), K(c.left?.includes(n) || !1);
71
- }, de = (e) => {
73
+ }, fe = (e) => {
72
74
  const { active: n, over: i } = e;
73
75
  if (i && n.id !== i.id) {
74
76
  const a = r[n.id] === !1, s = r[i.id] !== !1, t = c.left?.includes(i.id) || !1, v = r[i.id] === !1;
75
- $(a && s && !t), G(s && t), I(v), H(s && !t);
77
+ $(a && s && !t), G(s && t), w(v), D(s && !t);
76
78
  } else
77
- H(!1), I(!1);
78
- }, ce = (e) => {
79
- $(!1), G(!1), K(!1), H(!1), I(!1);
79
+ D(!1), w(!1);
80
+ }, ue = (e) => {
81
+ $(!1), G(!1), K(!1), D(!1), w(!1);
80
82
  const { active: n, over: i } = e;
81
83
  if (i && n.id !== i.id) {
82
84
  const a = [...p, ...b, ...m].find(
@@ -85,27 +87,30 @@ const Be = ({ columns: S, highlighted: g }) => {
85
87
  (t) => t.value === i.id
86
88
  );
87
89
  if (a && s) {
88
- const t = n.id, v = i.id, E = r[t] !== !1, W = r[v] !== !1, V = c.left?.includes(t) || !1, h = c.left?.includes(v) || !1, fe = r[v] === !1, o = {
90
+ const t = n.id, v = i.id, E = r[t] !== !1, W = r[v] !== !1, h = c.left?.includes(t) || !1, S = c.left?.includes(v) || !1, ge = r[v] === !1, o = {
89
91
  columnVisibility: { ...r },
90
92
  columnOrder: [...f],
91
93
  columnPinning: { ...c },
92
- columnSizing: { ...ie }
94
+ columnSizing: { ...ie },
95
+ groupBy: O,
96
+ sorting: se,
97
+ rowHeight: te
93
98
  };
94
99
  if (E && W) {
95
100
  let d = [...o.columnPinning.left || []];
96
- V !== h && (V && !h ? d = d.filter((L) => L !== t) : !V && h && (d = [...d, t]));
101
+ h !== S && (h && !S ? d = d.filter((L) => L !== t) : !h && S && (d = [...d, t]));
97
102
  const u = [...U, ...Q], X = u.indexOf(t), Y = u.indexOf(v);
98
103
  if (X === -1 || Y === -1) {
99
- console.error("Invalid column order state"), he.error("Invalid column order state");
104
+ console.error("Invalid column order state"), je.error("Invalid column order state");
100
105
  return;
101
106
  }
102
- const Z = Ve(u, X, Y), ue = Z.filter((L) => d.includes(L));
107
+ const Z = Se(u, X, Y), ve = Z.filter((L) => d.includes(L));
103
108
  o.columnOrder = Z, o.columnPinning = {
104
109
  ...o.columnPinning,
105
- left: ue
106
- }, j(o);
110
+ left: ve
111
+ }, H(o);
107
112
  } else if (!E && W) {
108
- if (o.columnVisibility[t] = !0, h) {
113
+ if (o.columnVisibility[t] = !0, S) {
109
114
  const u = [...o.columnPinning.left || [], t];
110
115
  o.columnPinning.left = u;
111
116
  }
@@ -114,44 +119,44 @@ const Be = ({ columns: S, highlighted: g }) => {
114
119
  const u = d.indexOf(v);
115
120
  d.splice(u, 0, t);
116
121
  }
117
- o.columnOrder = d, j(o);
118
- } else if (E && fe) {
119
- if (o.columnVisibility[t] = !1, V) {
122
+ o.columnOrder = d, H(o);
123
+ } else if (E && ge) {
124
+ if (o.columnVisibility[t] = !1, h) {
120
125
  const d = (o.columnPinning.left || []).filter(
121
126
  (u) => u !== t
122
127
  );
123
128
  o.columnPinning.left = d;
124
129
  }
125
- j(o);
130
+ H(o);
126
131
  }
127
132
  }
128
133
  }
129
134
  q(null);
130
135
  }, C = F ? [...p, ...b, ...m].find((e) => e.value === F) : null;
131
136
  return /* @__PURE__ */ l.jsx(
132
- Pe,
137
+ ye,
133
138
  {
134
- sensors: re,
135
- collisionDetection: Oe,
136
- onDragStart: ae,
137
- onDragOver: de,
138
- onDragEnd: ce,
139
- children: /* @__PURE__ */ l.jsxs(Se, { children: [
140
- m.length > 0 && /* @__PURE__ */ l.jsxs(M, { className: te && !J ? "drop-target" : "", children: [
139
+ sensors: de,
140
+ collisionDetection: Ve,
141
+ onDragStart: ce,
142
+ onDragOver: fe,
143
+ onDragEnd: ue,
144
+ children: /* @__PURE__ */ l.jsxs(He, { children: [
145
+ m.length > 0 && /* @__PURE__ */ l.jsxs(M, { className: oe && !J ? "drop-target" : "", children: [
141
146
  /* @__PURE__ */ l.jsx(N, { children: "Pinned Columns" }),
142
147
  /* @__PURE__ */ l.jsx(
143
148
  _,
144
149
  {
145
- items: y.map((e) => e.value),
150
+ items: V.map((e) => e.value),
146
151
  strategy: ee,
147
- children: /* @__PURE__ */ l.jsx(k, { children: y.map((e) => /* @__PURE__ */ l.jsx(
152
+ children: /* @__PURE__ */ l.jsx(k, { children: V.map((e) => /* @__PURE__ */ l.jsx(
148
153
  B,
149
154
  {
150
155
  id: e.value,
151
156
  column: e,
152
157
  isPinned: !0,
153
158
  isHidden: !1,
154
- isDisabled: !!D && e.value === "name",
159
+ isDisabled: !!O && e.value === "name",
155
160
  isHighlighted: g === e.value,
156
161
  onTogglePinning: A,
157
162
  onToggleVisibility: T
@@ -164,15 +169,15 @@ const Be = ({ columns: S, highlighted: g }) => {
164
169
  /* @__PURE__ */ l.jsxs(
165
170
  M,
166
171
  {
167
- className: se || J && le ? "drop-target" : "",
172
+ className: le || J && re ? "drop-target" : "",
168
173
  children: [
169
174
  /* @__PURE__ */ l.jsx(N, { children: "Visible Columns" }),
170
175
  /* @__PURE__ */ l.jsx(
171
176
  _,
172
177
  {
173
- items: O.map((e) => e.value),
178
+ items: y.map((e) => e.value),
174
179
  strategy: ee,
175
- children: /* @__PURE__ */ l.jsx(k, { children: O.map((e) => /* @__PURE__ */ l.jsx(
180
+ children: /* @__PURE__ */ l.jsx(k, { children: y.map((e) => /* @__PURE__ */ l.jsx(
176
181
  B,
177
182
  {
178
183
  id: e.value,
@@ -180,7 +185,7 @@ const Be = ({ columns: S, highlighted: g }) => {
180
185
  isPinned: !1,
181
186
  isHidden: !1,
182
187
  isHighlighted: g === e.value,
183
- isDisabled: !!D && e.value === "name",
188
+ isDisabled: !!O && e.value === "name",
184
189
  onTogglePinning: A,
185
190
  onToggleVisibility: T
186
191
  },
@@ -191,9 +196,9 @@ const Be = ({ columns: S, highlighted: g }) => {
191
196
  ]
192
197
  }
193
198
  ),
194
- b.length > 0 && /* @__PURE__ */ l.jsxs(M, { className: oe ? "drop-target" : "", children: [
199
+ b.length > 0 && /* @__PURE__ */ l.jsxs(M, { className: ae ? "drop-target" : "", children: [
195
200
  /* @__PURE__ */ l.jsx(N, { children: "Hidden Columns" }),
196
- /* @__PURE__ */ l.jsx(k, { ref: w, children: b.map((e) => /* @__PURE__ */ l.jsx(
201
+ /* @__PURE__ */ l.jsx(k, { ref: I, children: b.map((e) => /* @__PURE__ */ l.jsx(
197
202
  B,
198
203
  {
199
204
  id: e.value,
@@ -201,15 +206,15 @@ const Be = ({ columns: S, highlighted: g }) => {
201
206
  isPinned: c.left?.includes(e.value) || !1,
202
207
  isHidden: !0,
203
208
  isHighlighted: g === e.value,
204
- isDisabled: !!D && e.value === "name",
209
+ isDisabled: !!O && e.value === "name",
205
210
  onTogglePinning: A,
206
211
  onToggleVisibility: T
207
212
  },
208
213
  e.value
209
214
  )) })
210
215
  ] }),
211
- /* @__PURE__ */ l.jsx(ye, { children: C && /* @__PURE__ */ l.jsx(
212
- xe,
216
+ /* @__PURE__ */ l.jsx(he, { children: C && /* @__PURE__ */ l.jsx(
217
+ be,
213
218
  {
214
219
  column: C,
215
220
  isPinned: c.left?.includes(C.value) || !1,
@@ -221,7 +226,7 @@ const Be = ({ columns: S, highlighted: g }) => {
221
226
  ] })
222
227
  }
223
228
  );
224
- }, Se = R.div`
229
+ }, He = R.div`
225
230
  display: flex;
226
231
  flex-direction: column;
227
232
  gap: var(--base-gap-large);
@@ -243,6 +248,6 @@ const Be = ({ columns: S, highlighted: g }) => {
243
248
  padding: 4px 0;
244
249
  `;
245
250
  export {
246
- Be as default
251
+ Ne as default
247
252
  };
248
253
  //# sourceMappingURL=ColumnsSettings.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ColumnsSettings.es.js","sources":["../../../../../src/components/ProjectTableSettings/ColumnsSettings.tsx"],"sourcesContent":["// React and Styling imports\nimport { FC, useEffect, useMemo, useRef, useState } from 'react'\nimport styled from 'styled-components'\nimport * as Styled from './TableSettings.styled'\n\n// Context and Components imports\nimport {\n ColumnsConfig,\n useColumnSettingsContext,\n} from '@shared/containers/ProjectTreeTable/context/ColumnSettingsContext'\nimport ColumnItem from './ColumnItem'\nimport SortableColumnItem from './SortableColumnItem'\n\n// DND (Drag and Drop) imports\nimport {\n DndContext,\n closestCenter,\n DragEndEvent,\n DragStartEvent,\n useSensor,\n useSensors,\n PointerSensor,\n DragOverlay,\n DragOverEvent,\n} from '@dnd-kit/core'\nimport { SortableContext, verticalListSortingStrategy, arrayMove } from '@dnd-kit/sortable'\n\n// Notification imports\nimport { toast } from 'react-toastify'\nimport { SettingsPanelItem } from '../SettingsPanel/SettingsPanelItemTemplate'\nimport { SettingHighlightedId } from '@shared/context'\n\ninterface ColumnsSettingsProps {\n columns: SettingsPanelItem[]\n highlighted?: SettingHighlightedId\n}\n\nconst ColumnsSettings: FC<ColumnsSettingsProps> = ({ columns, highlighted }) => {\n const {\n columnVisibility,\n updateColumnVisibility,\n columnPinning,\n updateColumnPinning,\n columnOrder,\n setColumnsConfig,\n columnSizing,\n groupBy,\n } = useColumnSettingsContext()\n\n // State for the currently dragged column\n const [activeId, setActiveId] = useState<string | null>(null)\n const [isHiddenOverVisible, setIsHiddenOverVisible] = useState(false)\n const [isDraggingOverPinned, setIsDraggingOverPinned] = useState(false)\n const [isDraggingFromPinned, setIsDraggingFromPinned] = useState(false)\n // Add a new state to track if we're hovering over the visible section\n const [isHoveringVisibleSection, setIsHoveringVisibleSection] = useState(false)\n // Add state to track if dragging over the hidden section\n const [isDraggingOverHidden, setIsDraggingOverHidden] = useState(false)\n\n // Setup sensors for dnd-kit\n const sensors = useSensors(\n useSensor(PointerSensor, {\n activationConstraint: {\n distance: 5,\n },\n }),\n )\n\n const menuRef = useRef<HTMLUListElement | null>(null)\n\n // if highlighted is set, scroll to the highlighted column\n useEffect(() => {\n if (menuRef.current && highlighted) {\n const highlightedElement = menuRef.current.querySelector(`#column-settings-${highlighted}`)\n if (highlightedElement) {\n highlightedElement.scrollIntoView({\n behavior: 'smooth',\n block: 'center',\n })\n }\n }\n }, [highlighted])\n\n // Separate columns into visible, hidden, and pinned\n const { visibleColumns, hiddenColumns, pinnedColumns } = useMemo(() => {\n // First filter columns by visibility\n const visible = columns.filter((col) => columnVisibility[col.value] !== false)\n const hidden = columns.filter((col) => columnVisibility[col.value] === false)\n\n // Then separate out pinned columns from visible\n const pinned = visible.filter((col) => columnPinning.left?.includes(col.value))\n const unpinnedVisible = visible.filter((col) => !columnPinning.left?.includes(col.value))\n\n return {\n visibleColumns: unpinnedVisible,\n hiddenColumns: hidden,\n pinnedColumns: pinned,\n }\n }, [columns, columnVisibility, columnPinning])\n\n // Sort columns based on columnOrder\n const sortedVisibleColumns = useMemo(() => {\n // Create a copy of visible columns\n const visibleCopy = [...visibleColumns]\n\n // If we have a column order, use it to sort\n if (columnOrder.length > 0) {\n visibleCopy.sort((a, b) => {\n const indexA = columnOrder.indexOf(a.value)\n const indexB = columnOrder.indexOf(b.value)\n\n // If column is not in order array, place at end\n if (indexA === -1) return 1\n if (indexB === -1) return -1\n\n return indexA - indexB\n })\n }\n\n return visibleCopy\n }, [visibleColumns, columnOrder])\n\n // Sort pinned columns based on columnOrder\n const sortedPinnedColumns = useMemo(() => {\n // Create a copy of pinned columns\n const pinnedCopy = [...pinnedColumns]\n\n // If we have a column order, use it to sort\n if (columnOrder.length > 0) {\n pinnedCopy.sort((a, b) => {\n const indexA = columnOrder.indexOf(a.value)\n const indexB = columnOrder.indexOf(b.value)\n\n // If column is not in order array, place at end\n if (indexA === -1) return 1\n if (indexB === -1) return -1\n\n return indexA - indexB\n })\n }\n\n return pinnedCopy\n }, [pinnedColumns, columnOrder])\n\n const sortedVisibleColumnsIds = useMemo(\n () => sortedVisibleColumns.map((col) => col.value),\n [sortedVisibleColumns],\n )\n\n const sortedPinnedColumnsIds = useMemo(\n () => sortedPinnedColumns.map((col) => col.value),\n [sortedPinnedColumns],\n )\n\n // Toggle column visibility\n const toggleVisibility = (columnId: string) => {\n const newState = { ...columnVisibility }\n // If column is currently visible, hide it\n if (newState[columnId] !== false) {\n newState[columnId] = false\n } else {\n // If column is currently hidden, show it\n newState[columnId] = true\n }\n updateColumnVisibility(newState)\n }\n\n // Toggle column pinning\n const togglePinning = (columnId: string) => {\n const newState = { ...columnPinning }\n const newVisibility = { ...columnVisibility }\n\n // If column is currently pinned, unpin it\n if (newState.left?.includes(columnId)) {\n newState.left = newState.left.filter((id) => id !== columnId)\n } else {\n // If column is currently unpinned, pin it\n newState.left = [...(newState.left || []), columnId]\n // If column is hidden, show it\n if (newVisibility[columnId] === false) {\n newVisibility[columnId] = true\n updateColumnVisibility(newVisibility)\n }\n }\n updateColumnPinning(newState)\n }\n\n // When drag starts\n const handleDragStart = (event: DragStartEvent) => {\n const id = event.active.id as string\n setActiveId(id)\n setIsDraggingFromPinned(columnPinning.left?.includes(id) || false)\n }\n\n // Track when dragging over different sections\n const handleDragOver = (event: DragOverEvent) => {\n const { active, over } = event\n\n if (over && active.id !== over.id) {\n // Check if we're dragging a hidden column over a visible column\n const isActiveHidden = columnVisibility[active.id as string] === false\n const isOverVisible = columnVisibility[over.id as string] !== false\n const isOverPinned = columnPinning.left?.includes(over.id as string) || false\n const isOverHidden = columnVisibility[over.id as string] === false\n\n setIsHiddenOverVisible(isActiveHidden && isOverVisible && !isOverPinned)\n setIsDraggingOverPinned(isOverVisible && isOverPinned)\n setIsDraggingOverHidden(isOverHidden)\n\n // Set if we're hovering over the visible (unpinned) section\n setIsHoveringVisibleSection(isOverVisible && !isOverPinned)\n } else {\n // Reset when not over any column\n setIsHoveringVisibleSection(false)\n setIsDraggingOverHidden(false)\n }\n }\n\n // When drag ends, reset all states\n const handleDragEnd = (event: DragEndEvent) => {\n // Reset states\n setIsHiddenOverVisible(false)\n setIsDraggingOverPinned(false)\n setIsDraggingFromPinned(false)\n setIsHoveringVisibleSection(false)\n setIsDraggingOverHidden(false)\n\n const { active, over } = event\n\n if (over && active.id !== over.id) {\n // Find the dragged column and target column\n const activeColumn = [...visibleColumns, ...hiddenColumns, ...pinnedColumns].find(\n (col) => col.value === active.id,\n )\n const overColumn = [...visibleColumns, ...hiddenColumns, ...pinnedColumns].find(\n (col) => col.value === over.id,\n )\n\n if (activeColumn && overColumn) {\n const activeId = active.id as string\n const overId = over.id as string\n const isActiveVisible = columnVisibility[activeId] !== false\n const isOverVisible = columnVisibility[overId] !== false\n const isActivePinned = columnPinning.left?.includes(activeId) || false\n const isOverPinned = columnPinning.left?.includes(overId) || false\n const isOverHidden = columnVisibility[overId] === false\n\n // Create a new config object that we'll update and apply at the end\n const newConfig: ColumnsConfig = {\n columnVisibility: { ...columnVisibility },\n columnOrder: [...columnOrder],\n columnPinning: { ...columnPinning },\n columnSizing: { ...columnSizing },\n }\n\n // If we're moving a column between visible columns (including pinned)\n if (isActiveVisible && isOverVisible) {\n let newPinningLeft = [...(newConfig.columnPinning.left || [])]\n\n // Handle pinning/unpinning based on target section\n if (isActivePinned !== isOverPinned) {\n if (isActivePinned && !isOverPinned) {\n // Moving from pinned to unpinned section\n newPinningLeft = newPinningLeft.filter((id) => id !== activeId)\n } else if (!isActivePinned && isOverPinned) {\n // Moving from unpinned to pinned section\n newPinningLeft = [...newPinningLeft, activeId]\n }\n }\n\n // Update order within the appropriate section\n const allVisibleIds = [...sortedPinnedColumnsIds, ...sortedVisibleColumnsIds]\n const oldIndex = allVisibleIds.indexOf(activeId)\n const newIndex = allVisibleIds.indexOf(overId)\n\n if (oldIndex === -1 || newIndex === -1) {\n console.error('Invalid column order state')\n toast.error('Invalid column order state')\n return\n }\n\n const newOrder = arrayMove(allVisibleIds, oldIndex, newIndex)\n\n // new pinning left should be ordered by the new order\n const newPinningLeftOrdered = newOrder.filter((id) => newPinningLeft.includes(id))\n\n // Update config object\n newConfig.columnOrder = newOrder\n newConfig.columnPinning = {\n ...newConfig.columnPinning,\n left: newPinningLeftOrdered,\n }\n\n // Apply all changes at once\n setColumnsConfig(newConfig)\n }\n\n // If we're dragging from hidden to visible\n else if (!isActiveVisible && isOverVisible) {\n // Make the column visible\n newConfig.columnVisibility[activeId] = true\n\n // If dropping into pinned section, also pin the column\n if (isOverPinned) {\n const newPinningLeft = [...(newConfig.columnPinning.left || []), activeId]\n newConfig.columnPinning.left = newPinningLeft\n }\n\n // Update order to place it near the over column\n const allVisibleIds = [...sortedPinnedColumnsIds, ...sortedVisibleColumnsIds]\n\n // Add the column to order if not already there\n if (!allVisibleIds.includes(activeId)) {\n const overIndex = allVisibleIds.indexOf(overId)\n allVisibleIds.splice(overIndex, 0, activeId)\n }\n\n newConfig.columnOrder = allVisibleIds\n\n // Apply all changes at once\n setColumnsConfig(newConfig)\n }\n\n // If we're dragging from visible to hidden\n else if (isActiveVisible && isOverHidden) {\n // Make the active column hidden\n newConfig.columnVisibility[activeId] = false\n\n // If the column was pinned, remove it from pinned\n if (isActivePinned) {\n const newPinningLeft = (newConfig.columnPinning.left || []).filter(\n (id) => id !== activeId,\n )\n newConfig.columnPinning.left = newPinningLeft\n }\n\n // Apply all changes at once\n setColumnsConfig(newConfig)\n }\n }\n }\n\n setActiveId(null)\n }\n\n // Find the active column for the drag overlay\n const activeColumn = activeId\n ? [...visibleColumns, ...hiddenColumns, ...pinnedColumns].find((col) => col.value === activeId)\n : null\n\n return (\n <DndContext\n sensors={sensors}\n collisionDetection={closestCenter}\n onDragStart={handleDragStart}\n onDragOver={handleDragOver}\n onDragEnd={handleDragEnd}\n >\n <ColumnsContainer>\n {/* Pinned Columns Section */}\n {pinnedColumns.length > 0 && (\n <Section className={isDraggingOverPinned && !isDraggingFromPinned ? 'drop-target' : ''}>\n <SectionTitle>Pinned Columns</SectionTitle>\n <SortableContext\n items={sortedPinnedColumns.map((col) => col.value)}\n strategy={verticalListSortingStrategy}\n >\n <Styled.Menu>\n {sortedPinnedColumns.map((column) => (\n <SortableColumnItem\n key={column.value}\n id={column.value}\n column={column}\n isPinned={true}\n isHidden={false}\n isDisabled={!!groupBy && column.value === 'name'} // Disable 'name' column if grouping is enabled\n isHighlighted={highlighted === column.value}\n onTogglePinning={togglePinning}\n onToggleVisibility={toggleVisibility}\n />\n ))}\n </Styled.Menu>\n </SortableContext>\n </Section>\n )}\n\n {/* Visible Columns Section */}\n <Section\n className={\n isHiddenOverVisible || (isDraggingFromPinned && isHoveringVisibleSection)\n ? 'drop-target'\n : ''\n }\n >\n <SectionTitle>Visible Columns</SectionTitle>\n <SortableContext\n items={sortedVisibleColumns.map((col) => col.value)}\n strategy={verticalListSortingStrategy}\n >\n <Styled.Menu>\n {sortedVisibleColumns.map((column) => (\n <SortableColumnItem\n key={column.value}\n id={column.value}\n column={column}\n isPinned={false}\n isHidden={false}\n isHighlighted={highlighted === column.value}\n isDisabled={!!groupBy && column.value === 'name'} // Disable 'name' column if grouping is enabled\n onTogglePinning={togglePinning}\n onToggleVisibility={toggleVisibility}\n />\n ))}\n </Styled.Menu>\n </SortableContext>\n </Section>\n\n {/* Hidden Columns Section */}\n {hiddenColumns.length > 0 && (\n <Section className={isDraggingOverHidden ? 'drop-target' : ''}>\n <SectionTitle>Hidden Columns</SectionTitle>\n <Styled.Menu ref={menuRef}>\n {hiddenColumns.map((column) => (\n <SortableColumnItem\n key={column.value}\n id={column.value}\n column={column}\n isPinned={columnPinning.left?.includes(column.value) || false}\n isHidden={true}\n isHighlighted={highlighted === column.value}\n isDisabled={!!groupBy && column.value === 'name'} // Disable 'name' column if grouping is enabled\n onTogglePinning={togglePinning}\n onToggleVisibility={toggleVisibility}\n />\n ))}\n </Styled.Menu>\n </Section>\n )}\n\n {/* Drag Overlay */}\n <DragOverlay>\n {activeColumn && (\n <ColumnItem\n column={activeColumn}\n isPinned={columnPinning.left?.includes(activeColumn.value) || false}\n isHidden={columnVisibility[activeColumn.value] === false}\n isHighlighted={highlighted === activeColumn.value}\n dragOverlay={true}\n />\n )}\n </DragOverlay>\n </ColumnsContainer>\n </DndContext>\n )\n}\n\n// Styled components\nconst ColumnsContainer = styled.div`\n display: flex;\n flex-direction: column;\n gap: var(--base-gap-large);\n`\n\nconst Section = styled.section`\n position: relative;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n transition: background-color 0.2s ease;\n border-radius: 4px;\n\n &.drop-target {\n background-color: var(--md-sys-color-surface-container);\n box-shadow: 0 0 0 1px var(--md-sys-color-outline);\n }\n`\n\nconst SectionTitle = styled.div`\n font-weight: 500;\n color: var(--md-sys-color-outline);\n padding: 4px 0;\n`\n\nexport default ColumnsSettings\n"],"names":["ColumnsSettings","columns","highlighted","columnVisibility","updateColumnVisibility","columnPinning","updateColumnPinning","columnOrder","setColumnsConfig","columnSizing","groupBy","useColumnSettingsContext","activeId","setActiveId","useState","isHiddenOverVisible","setIsHiddenOverVisible","isDraggingOverPinned","setIsDraggingOverPinned","isDraggingFromPinned","setIsDraggingFromPinned","isHoveringVisibleSection","setIsHoveringVisibleSection","isDraggingOverHidden","setIsDraggingOverHidden","sensors","useSensors","useSensor","PointerSensor","menuRef","useRef","useEffect","highlightedElement","visibleColumns","hiddenColumns","pinnedColumns","useMemo","visible","col","hidden","pinned","sortedVisibleColumns","visibleCopy","a","b","indexA","indexB","sortedPinnedColumns","pinnedCopy","sortedVisibleColumnsIds","sortedPinnedColumnsIds","toggleVisibility","columnId","newState","togglePinning","newVisibility","id","handleDragStart","event","handleDragOver","active","over","isActiveHidden","isOverVisible","isOverPinned","isOverHidden","handleDragEnd","activeColumn","overColumn","overId","isActiveVisible","isActivePinned","newConfig","newPinningLeft","allVisibleIds","oldIndex","newIndex","toast","newOrder","arrayMove","newPinningLeftOrdered","overIndex","jsx","DndContext","closestCenter","ColumnsContainer","jsxs","Section","SectionTitle","SortableContext","verticalListSortingStrategy","Styled.Menu","column","SortableColumnItem","DragOverlay","ColumnItem","styled"],"mappings":"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"}
1
+ {"version":3,"file":"ColumnsSettings.es.js","sources":["../../../../../src/components/ProjectTableSettings/ColumnsSettings.tsx"],"sourcesContent":["// React and Styling imports\nimport { FC, useEffect, useMemo, useRef, useState } from 'react'\nimport styled from 'styled-components'\nimport * as Styled from './TableSettings.styled'\n\n// Context and Components imports\nimport {\n ColumnsConfig,\n useColumnSettingsContext,\n} from '@shared/containers/ProjectTreeTable/context/ColumnSettingsContext'\nimport ColumnItem from './ColumnItem'\nimport SortableColumnItem from './SortableColumnItem'\n\n// DND (Drag and Drop) imports\nimport {\n DndContext,\n closestCenter,\n DragEndEvent,\n DragStartEvent,\n useSensor,\n useSensors,\n PointerSensor,\n DragOverlay,\n DragOverEvent,\n} from '@dnd-kit/core'\nimport { SortableContext, verticalListSortingStrategy, arrayMove } from '@dnd-kit/sortable'\n\n// Notification imports\nimport { toast } from 'react-toastify'\nimport { SettingsPanelItem } from '../SettingsPanel/SettingsPanelItemTemplate'\nimport { SettingHighlightedId } from '@shared/context'\n\ninterface ColumnsSettingsProps {\n columns: SettingsPanelItem[]\n highlighted?: SettingHighlightedId\n}\n\nconst ColumnsSettings: FC<ColumnsSettingsProps> = ({ columns, highlighted }) => {\n const {\n columnVisibility,\n updateColumnVisibility,\n columnPinning,\n updateColumnPinning,\n columnOrder,\n setColumnsConfig,\n columnSizing,\n groupBy,\n sorting,\n rowHeight,\n } = useColumnSettingsContext()\n\n // State for the currently dragged column\n const [activeId, setActiveId] = useState<string | null>(null)\n const [isHiddenOverVisible, setIsHiddenOverVisible] = useState(false)\n const [isDraggingOverPinned, setIsDraggingOverPinned] = useState(false)\n const [isDraggingFromPinned, setIsDraggingFromPinned] = useState(false)\n // Add a new state to track if we're hovering over the visible section\n const [isHoveringVisibleSection, setIsHoveringVisibleSection] = useState(false)\n // Add state to track if dragging over the hidden section\n const [isDraggingOverHidden, setIsDraggingOverHidden] = useState(false)\n\n // Setup sensors for dnd-kit\n const sensors = useSensors(\n useSensor(PointerSensor, {\n activationConstraint: {\n distance: 5,\n },\n }),\n )\n\n const menuRef = useRef<HTMLUListElement | null>(null)\n\n // if highlighted is set, scroll to the highlighted column\n useEffect(() => {\n if (menuRef.current && highlighted) {\n const highlightedElement = menuRef.current.querySelector(`#column-settings-${highlighted}`)\n if (highlightedElement) {\n highlightedElement.scrollIntoView({\n behavior: 'smooth',\n block: 'center',\n })\n }\n }\n }, [highlighted])\n\n // Separate columns into visible, hidden, and pinned\n const { visibleColumns, hiddenColumns, pinnedColumns } = useMemo(() => {\n // First filter columns by visibility\n const visible = columns.filter((col) => columnVisibility[col.value] !== false)\n const hidden = columns.filter((col) => columnVisibility[col.value] === false)\n\n // Then separate out pinned columns from visible\n const pinned = visible.filter((col) => columnPinning.left?.includes(col.value))\n const unpinnedVisible = visible.filter((col) => !columnPinning.left?.includes(col.value))\n\n return {\n visibleColumns: unpinnedVisible,\n hiddenColumns: hidden,\n pinnedColumns: pinned,\n }\n }, [columns, columnVisibility, columnPinning])\n\n // Sort columns based on columnOrder\n const sortedVisibleColumns = useMemo(() => {\n // Create a copy of visible columns\n const visibleCopy = [...visibleColumns]\n\n // If we have a column order, use it to sort\n if (columnOrder.length > 0) {\n visibleCopy.sort((a, b) => {\n const indexA = columnOrder.indexOf(a.value)\n const indexB = columnOrder.indexOf(b.value)\n\n // If column is not in order array, place at end\n if (indexA === -1) return 1\n if (indexB === -1) return -1\n\n return indexA - indexB\n })\n }\n\n return visibleCopy\n }, [visibleColumns, columnOrder])\n\n // Sort pinned columns based on columnOrder\n const sortedPinnedColumns = useMemo(() => {\n // Create a copy of pinned columns\n const pinnedCopy = [...pinnedColumns]\n\n // If we have a column order, use it to sort\n if (columnOrder.length > 0) {\n pinnedCopy.sort((a, b) => {\n const indexA = columnOrder.indexOf(a.value)\n const indexB = columnOrder.indexOf(b.value)\n\n // If column is not in order array, place at end\n if (indexA === -1) return 1\n if (indexB === -1) return -1\n\n return indexA - indexB\n })\n }\n\n return pinnedCopy\n }, [pinnedColumns, columnOrder])\n\n const sortedVisibleColumnsIds = useMemo(\n () => sortedVisibleColumns.map((col) => col.value),\n [sortedVisibleColumns],\n )\n\n const sortedPinnedColumnsIds = useMemo(\n () => sortedPinnedColumns.map((col) => col.value),\n [sortedPinnedColumns],\n )\n\n // Toggle column visibility\n const toggleVisibility = (columnId: string) => {\n const newState = { ...columnVisibility }\n // If column is currently visible, hide it\n if (newState[columnId] !== false) {\n newState[columnId] = false\n } else {\n // If column is currently hidden, show it\n newState[columnId] = true\n }\n updateColumnVisibility(newState)\n }\n\n // Toggle column pinning\n const togglePinning = (columnId: string) => {\n const newState = { ...columnPinning }\n const newVisibility = { ...columnVisibility }\n\n // If column is currently pinned, unpin it\n if (newState.left?.includes(columnId)) {\n newState.left = newState.left.filter((id) => id !== columnId)\n } else {\n // If column is currently unpinned, pin it\n newState.left = [...(newState.left || []), columnId]\n // If column is hidden, show it\n if (newVisibility[columnId] === false) {\n newVisibility[columnId] = true\n updateColumnVisibility(newVisibility)\n }\n }\n updateColumnPinning(newState)\n }\n\n // When drag starts\n const handleDragStart = (event: DragStartEvent) => {\n const id = event.active.id as string\n setActiveId(id)\n setIsDraggingFromPinned(columnPinning.left?.includes(id) || false)\n }\n\n // Track when dragging over different sections\n const handleDragOver = (event: DragOverEvent) => {\n const { active, over } = event\n\n if (over && active.id !== over.id) {\n // Check if we're dragging a hidden column over a visible column\n const isActiveHidden = columnVisibility[active.id as string] === false\n const isOverVisible = columnVisibility[over.id as string] !== false\n const isOverPinned = columnPinning.left?.includes(over.id as string) || false\n const isOverHidden = columnVisibility[over.id as string] === false\n\n setIsHiddenOverVisible(isActiveHidden && isOverVisible && !isOverPinned)\n setIsDraggingOverPinned(isOverVisible && isOverPinned)\n setIsDraggingOverHidden(isOverHidden)\n\n // Set if we're hovering over the visible (unpinned) section\n setIsHoveringVisibleSection(isOverVisible && !isOverPinned)\n } else {\n // Reset when not over any column\n setIsHoveringVisibleSection(false)\n setIsDraggingOverHidden(false)\n }\n }\n\n // When drag ends, reset all states\n const handleDragEnd = (event: DragEndEvent) => {\n // Reset states\n setIsHiddenOverVisible(false)\n setIsDraggingOverPinned(false)\n setIsDraggingFromPinned(false)\n setIsHoveringVisibleSection(false)\n setIsDraggingOverHidden(false)\n\n const { active, over } = event\n\n if (over && active.id !== over.id) {\n // Find the dragged column and target column\n const activeColumn = [...visibleColumns, ...hiddenColumns, ...pinnedColumns].find(\n (col) => col.value === active.id,\n )\n const overColumn = [...visibleColumns, ...hiddenColumns, ...pinnedColumns].find(\n (col) => col.value === over.id,\n )\n\n if (activeColumn && overColumn) {\n const activeId = active.id as string\n const overId = over.id as string\n const isActiveVisible = columnVisibility[activeId] !== false\n const isOverVisible = columnVisibility[overId] !== false\n const isActivePinned = columnPinning.left?.includes(activeId) || false\n const isOverPinned = columnPinning.left?.includes(overId) || false\n const isOverHidden = columnVisibility[overId] === false\n\n // Create a new config object that we'll update and apply at the end\n const newConfig: ColumnsConfig = {\n columnVisibility: { ...columnVisibility },\n columnOrder: [...columnOrder],\n columnPinning: { ...columnPinning },\n columnSizing: { ...columnSizing },\n groupBy,\n sorting,\n rowHeight,\n }\n\n // If we're moving a column between visible columns (including pinned)\n if (isActiveVisible && isOverVisible) {\n let newPinningLeft = [...(newConfig.columnPinning.left || [])]\n\n // Handle pinning/unpinning based on target section\n if (isActivePinned !== isOverPinned) {\n if (isActivePinned && !isOverPinned) {\n // Moving from pinned to unpinned section\n newPinningLeft = newPinningLeft.filter((id) => id !== activeId)\n } else if (!isActivePinned && isOverPinned) {\n // Moving from unpinned to pinned section\n newPinningLeft = [...newPinningLeft, activeId]\n }\n }\n\n // Update order within the appropriate section\n const allVisibleIds = [...sortedPinnedColumnsIds, ...sortedVisibleColumnsIds]\n const oldIndex = allVisibleIds.indexOf(activeId)\n const newIndex = allVisibleIds.indexOf(overId)\n\n if (oldIndex === -1 || newIndex === -1) {\n console.error('Invalid column order state')\n toast.error('Invalid column order state')\n return\n }\n\n const newOrder = arrayMove(allVisibleIds, oldIndex, newIndex)\n\n // new pinning left should be ordered by the new order\n const newPinningLeftOrdered = newOrder.filter((id) => newPinningLeft.includes(id))\n\n // Update config object\n newConfig.columnOrder = newOrder\n newConfig.columnPinning = {\n ...newConfig.columnPinning,\n left: newPinningLeftOrdered,\n }\n\n // Apply all changes at once\n setColumnsConfig(newConfig)\n }\n\n // If we're dragging from hidden to visible\n else if (!isActiveVisible && isOverVisible) {\n // Make the column visible\n newConfig.columnVisibility[activeId] = true\n\n // If dropping into pinned section, also pin the column\n if (isOverPinned) {\n const newPinningLeft = [...(newConfig.columnPinning.left || []), activeId]\n newConfig.columnPinning.left = newPinningLeft\n }\n\n // Update order to place it near the over column\n const allVisibleIds = [...sortedPinnedColumnsIds, ...sortedVisibleColumnsIds]\n\n // Add the column to order if not already there\n if (!allVisibleIds.includes(activeId)) {\n const overIndex = allVisibleIds.indexOf(overId)\n allVisibleIds.splice(overIndex, 0, activeId)\n }\n\n newConfig.columnOrder = allVisibleIds\n\n // Apply all changes at once\n setColumnsConfig(newConfig)\n }\n\n // If we're dragging from visible to hidden\n else if (isActiveVisible && isOverHidden) {\n // Make the active column hidden\n newConfig.columnVisibility[activeId] = false\n\n // If the column was pinned, remove it from pinned\n if (isActivePinned) {\n const newPinningLeft = (newConfig.columnPinning.left || []).filter(\n (id) => id !== activeId,\n )\n newConfig.columnPinning.left = newPinningLeft\n }\n\n // Apply all changes at once\n setColumnsConfig(newConfig)\n }\n }\n }\n\n setActiveId(null)\n }\n\n // Find the active column for the drag overlay\n const activeColumn = activeId\n ? [...visibleColumns, ...hiddenColumns, ...pinnedColumns].find((col) => col.value === activeId)\n : null\n\n return (\n <DndContext\n sensors={sensors}\n collisionDetection={closestCenter}\n onDragStart={handleDragStart}\n onDragOver={handleDragOver}\n onDragEnd={handleDragEnd}\n >\n <ColumnsContainer>\n {/* Pinned Columns Section */}\n {pinnedColumns.length > 0 && (\n <Section className={isDraggingOverPinned && !isDraggingFromPinned ? 'drop-target' : ''}>\n <SectionTitle>Pinned Columns</SectionTitle>\n <SortableContext\n items={sortedPinnedColumns.map((col) => col.value)}\n strategy={verticalListSortingStrategy}\n >\n <Styled.Menu>\n {sortedPinnedColumns.map((column) => (\n <SortableColumnItem\n key={column.value}\n id={column.value}\n column={column}\n isPinned={true}\n isHidden={false}\n isDisabled={!!groupBy && column.value === 'name'} // Disable 'name' column if grouping is enabled\n isHighlighted={highlighted === column.value}\n onTogglePinning={togglePinning}\n onToggleVisibility={toggleVisibility}\n />\n ))}\n </Styled.Menu>\n </SortableContext>\n </Section>\n )}\n\n {/* Visible Columns Section */}\n <Section\n className={\n isHiddenOverVisible || (isDraggingFromPinned && isHoveringVisibleSection)\n ? 'drop-target'\n : ''\n }\n >\n <SectionTitle>Visible Columns</SectionTitle>\n <SortableContext\n items={sortedVisibleColumns.map((col) => col.value)}\n strategy={verticalListSortingStrategy}\n >\n <Styled.Menu>\n {sortedVisibleColumns.map((column) => (\n <SortableColumnItem\n key={column.value}\n id={column.value}\n column={column}\n isPinned={false}\n isHidden={false}\n isHighlighted={highlighted === column.value}\n isDisabled={!!groupBy && column.value === 'name'} // Disable 'name' column if grouping is enabled\n onTogglePinning={togglePinning}\n onToggleVisibility={toggleVisibility}\n />\n ))}\n </Styled.Menu>\n </SortableContext>\n </Section>\n\n {/* Hidden Columns Section */}\n {hiddenColumns.length > 0 && (\n <Section className={isDraggingOverHidden ? 'drop-target' : ''}>\n <SectionTitle>Hidden Columns</SectionTitle>\n <Styled.Menu ref={menuRef}>\n {hiddenColumns.map((column) => (\n <SortableColumnItem\n key={column.value}\n id={column.value}\n column={column}\n isPinned={columnPinning.left?.includes(column.value) || false}\n isHidden={true}\n isHighlighted={highlighted === column.value}\n isDisabled={!!groupBy && column.value === 'name'} // Disable 'name' column if grouping is enabled\n onTogglePinning={togglePinning}\n onToggleVisibility={toggleVisibility}\n />\n ))}\n </Styled.Menu>\n </Section>\n )}\n\n {/* Drag Overlay */}\n <DragOverlay>\n {activeColumn && (\n <ColumnItem\n column={activeColumn}\n isPinned={columnPinning.left?.includes(activeColumn.value) || false}\n isHidden={columnVisibility[activeColumn.value] === false}\n isHighlighted={highlighted === activeColumn.value}\n dragOverlay={true}\n />\n )}\n </DragOverlay>\n </ColumnsContainer>\n </DndContext>\n )\n}\n\n// Styled components\nconst ColumnsContainer = styled.div`\n display: flex;\n flex-direction: column;\n gap: var(--base-gap-large);\n`\n\nconst Section = styled.section`\n position: relative;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n transition: background-color 0.2s ease;\n border-radius: 4px;\n\n &.drop-target {\n background-color: var(--md-sys-color-surface-container);\n box-shadow: 0 0 0 1px var(--md-sys-color-outline);\n }\n`\n\nconst SectionTitle = styled.div`\n font-weight: 500;\n color: var(--md-sys-color-outline);\n padding: 4px 0;\n`\n\nexport default ColumnsSettings\n"],"names":["ColumnsSettings","columns","highlighted","columnVisibility","updateColumnVisibility","columnPinning","updateColumnPinning","columnOrder","setColumnsConfig","columnSizing","groupBy","sorting","rowHeight","useColumnSettingsContext","activeId","setActiveId","useState","isHiddenOverVisible","setIsHiddenOverVisible","isDraggingOverPinned","setIsDraggingOverPinned","isDraggingFromPinned","setIsDraggingFromPinned","isHoveringVisibleSection","setIsHoveringVisibleSection","isDraggingOverHidden","setIsDraggingOverHidden","sensors","useSensors","useSensor","PointerSensor","menuRef","useRef","useEffect","highlightedElement","visibleColumns","hiddenColumns","pinnedColumns","useMemo","visible","col","hidden","pinned","sortedVisibleColumns","visibleCopy","a","b","indexA","indexB","sortedPinnedColumns","pinnedCopy","sortedVisibleColumnsIds","sortedPinnedColumnsIds","toggleVisibility","columnId","newState","togglePinning","newVisibility","id","handleDragStart","event","handleDragOver","active","over","isActiveHidden","isOverVisible","isOverPinned","isOverHidden","handleDragEnd","activeColumn","overColumn","overId","isActiveVisible","isActivePinned","newConfig","newPinningLeft","allVisibleIds","oldIndex","newIndex","toast","newOrder","arrayMove","newPinningLeftOrdered","overIndex","jsx","DndContext","closestCenter","ColumnsContainer","jsxs","Section","SectionTitle","SortableContext","verticalListSortingStrategy","Styled.Menu","column","SortableColumnItem","DragOverlay","ColumnItem","styled"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const l=require("date-fns"),s=require("react"),S=require("../helpers/groupActivityVersions.cjs.js"),D=require("../helpers/groupMinorActivities.cjs.js"),h=require("../helpers/mergeSimilarActivities.cjs.js"),q=["status.change","assignee.add","assignee.remove"],T=(n=[],e={})=>n.map(a=>{const t={...a,origin:{...a.origin}};if(t.activityType==="status.change"){if(!e)return t;const o=t.activityData?.oldValue,c=t.activityData?.newValue,u=e.statuses?.find(r=>r.name===o),d=e.statuses?.find(r=>r.name===c);t.oldStatus={...u,name:o},t.newStatus={...d,name:c}}return t}),V=(n=[],e=[],a)=>e.includes(a)?n.filter(t=>t.referenceType!=="relation"):n,O=(n=[],e=[],a={},t,o)=>{const c=s.useMemo(()=>T(n,a),[n]),u=s.useMemo(()=>c.map(v=>({...v,isOwner:o===v.authorName})),[c,o]),d=s.useMemo(()=>V(u,["version"],t),[u,a]),r=s.useMemo(()=>[...d].sort((i,w)=>{const y=new Date(i.createdAt),M=new Date(w.createdAt),p=l.isValid(y),f=l.isValid(M);if(!p&&!f)return 0;if(p){if(!f)return-1}else return 1;return l.compareAsc(M,y)}),[d]),m=s.useMemo(()=>h(r,"status.change","oldStatus"),[r]),A=s.useMemo(()=>D(m,e),[m,e]),g=s.useMemo(()=>S(A),[A]);return s.useMemo(()=>[...new Map(g.filter(i=>i&&i.activityId).map(i=>[i.activityId,i])).values()],[g])};exports.default=O;exports.minorActivityTypes=q;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const l=require("date-fns"),s=require("react"),S=require("../helpers/groupActivityVersions.cjs.js"),D=require("../helpers/groupMinorActivities.cjs.js"),h=require("../helpers/mergeSimilarActivities.cjs.js"),q=["status.change","assignee.add","assignee.remove"],V=(n=[],e={})=>n.map(a=>{const t={...a,origin:{...a.origin}};if(t.activityType==="status.change"){if(!e)return t;const o=t.activityData?.oldValue,c=t.activityData?.newValue,u=e.statuses?.find(r=>r.name===o),d=e.statuses?.find(r=>r.name===c);t.oldStatus={...u,name:o},t.newStatus={...d,name:c}}return t}),T=(n=[],e=[],a)=>e.includes(a)?n.filter(t=>t.referenceType!=="relation"):n,O=(n=[],e=[],a={},t,o)=>{const c=s.useMemo(()=>V(n,a),[n,a]),u=s.useMemo(()=>c.map(v=>({...v,isOwner:o===v.authorName})),[c,o]),d=s.useMemo(()=>T(u,["version"],t),[u,t]),r=s.useMemo(()=>[...d].sort((i,w)=>{const M=new Date(i.createdAt),y=new Date(w.createdAt),p=l.isValid(M),f=l.isValid(y);if(!p&&!f)return 0;if(p){if(!f)return-1}else return 1;return l.compareAsc(y,M)}),[d]),m=s.useMemo(()=>h(r,"status.change","oldStatus"),[r]),A=s.useMemo(()=>D(m,e),[m,e]),g=s.useMemo(()=>S(A),[A]);return s.useMemo(()=>[...new Map(g.filter(i=>i&&i.activityId).map(i=>[i.activityId,i])).values()],[g])};exports.default=O;exports.minorActivityTypes=q;
2
2
  //# sourceMappingURL=useTransformActivities.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useTransformActivities.cjs.js","sources":["../../../../../../src/containers/Feed/hooks/useTransformActivities.ts"],"sourcesContent":["// @ts-nocheck\n\nimport { compareAsc, isValid } from 'date-fns'\nimport { useMemo } from 'react'\nimport groupActivityVersions from '../helpers/groupActivityVersions'\nimport groupMinorActivities, { ActivityUser } from '../helpers/groupMinorActivities'\nimport mergeSimilarActivities from '../helpers/mergeSimilarActivities'\n\n// Define the types of activities that are considered minor\nconst minorActivityTypes = ['status.change', 'assignee.add', 'assignee.remove']\n\nconst getStatusActivityIcon = (activities = [], projectInfo = {}) => {\n return activities.map((activity) => {\n const newActivity = { ...activity, origin: { ...activity.origin } }\n\n // find status icon and data for status change activities\n if (newActivity.activityType === 'status.change') {\n if (!projectInfo) return newActivity\n const oldStatusName = newActivity.activityData?.oldValue\n const newStatusName = newActivity.activityData?.newValue\n\n const oldStatus = projectInfo.statuses?.find((status) => status.name === oldStatusName)\n const newStatus = projectInfo.statuses?.find((status) => status.name === newStatusName)\n\n newActivity.oldStatus = { ...oldStatus, name: oldStatusName }\n newActivity.newStatus = { ...newStatus, name: newStatusName }\n }\n\n return newActivity\n })\n}\n\nconst filterOutRelations = (activities = [], entityTypes = [], entityType) => {\n return !entityTypes.includes(entityType)\n ? activities\n : activities.filter((activity) => activity.referenceType !== 'relation')\n}\n\nconst useTransformActivities = (\n activities = [],\n users: ActivityUser[] = [],\n projectInfo = {},\n entityType,\n userName,\n) => {\n // 1. add status icons and data for status change activities\n const activitiesWithIcons = useMemo(\n () => getStatusActivityIcon(activities, projectInfo),\n [activities],\n )\n\n // 1,5. add any extra meta data to the activities\n const activitiesWithMeta = useMemo(() => {\n return activitiesWithIcons.map((activity) => {\n const newActivity = { ...activity, isOwner: userName === activity.authorName }\n return newActivity\n })\n }, [activitiesWithIcons, userName])\n\n // 2. versions should not have relations shown (comments posted on parent task)\n const activitiesWithoutRelations = useMemo(\n () => filterOutRelations(activitiesWithMeta, ['version'], entityType),\n [activitiesWithMeta, projectInfo],\n )\n\n // 3. sort createdAt oldest first (because we are using flex: column-reverse)\n const reversedActivitiesData = useMemo(() => {\n const sortedActivities = [...activitiesWithoutRelations].sort((a, b) => {\n const dateA = new Date(a.createdAt)\n const dateB = new Date(b.createdAt)\n const validA = isValid(dateA)\n const validB = isValid(dateB)\n\n if (!validA && !validB) {\n return 0 // Both dates are invalid, keep original order\n } else if (!validA) {\n return 1 // Only dateA is invalid, it comes first\n } else if (!validB) {\n return -1 // Only dateB is invalid, dateA comes first\n }\n\n // If both dates are valid, compare them normally\n return compareAsc(dateB, dateA)\n })\n\n return sortedActivities\n }, [activitiesWithoutRelations])\n\n // 4. for status change activities that are together, merge them into one activity\n const mergedActivitiesData = useMemo(\n () => mergeSimilarActivities(reversedActivitiesData, 'status.change', 'oldStatus'),\n [reversedActivitiesData],\n )\n\n // 5. group minor activities together\n const groupedActivitiesData = useMemo(\n () => groupMinorActivities(mergedActivitiesData, users),\n [mergedActivitiesData, users],\n )\n\n // 6. group version activities together\n const groupedVersionsData = useMemo(\n () => groupActivityVersions(groupedActivitiesData),\n [groupedActivitiesData],\n )\n\n // 7. ensure there are no duplicate activities\n const uniqueActivitiesData = useMemo(() => {\n // Filter out invalid activities and create a Map to ensure uniqueness\n const activityMap = new Map(\n groupedVersionsData\n .filter((activity) => activity && activity.activityId)\n .map((activity) => [activity.activityId, activity]),\n )\n\n // Convert the Map values to an array\n return [...activityMap.values()]\n }, [groupedVersionsData])\n\n return uniqueActivitiesData\n}\n\nexport { minorActivityTypes }\nexport default useTransformActivities\n"],"names":["minorActivityTypes","getStatusActivityIcon","activities","projectInfo","activity","newActivity","oldStatusName","newStatusName","oldStatus","status","newStatus","filterOutRelations","entityTypes","entityType","useTransformActivities","users","userName","activitiesWithIcons","useMemo","activitiesWithMeta","activitiesWithoutRelations","reversedActivitiesData","a","b","dateA","dateB","validA","isValid","validB","compareAsc","mergedActivitiesData","mergeSimilarActivities","groupedActivitiesData","groupMinorActivities","groupedVersionsData","groupActivityVersions"],"mappings":"0TASMA,EAAqB,CAAC,gBAAiB,eAAgB,iBAAiB,EAExEC,EAAwB,CAACC,EAAa,GAAIC,EAAc,CAAA,IACrDD,EAAW,IAAKE,GAAa,CAClC,MAAMC,EAAc,CAAE,GAAGD,EAAU,OAAQ,CAAE,GAAGA,EAAS,OAAO,EAGhE,GAAIC,EAAY,eAAiB,gBAAiB,CAChD,GAAI,CAACF,EAAa,OAAOE,EACzB,MAAMC,EAAgBD,EAAY,cAAc,SAC1CE,EAAgBF,EAAY,cAAc,SAE1CG,EAAYL,EAAY,UAAU,KAAMM,GAAWA,EAAO,OAASH,CAAa,EAChFI,EAAYP,EAAY,UAAU,KAAMM,GAAWA,EAAO,OAASF,CAAa,EAEtFF,EAAY,UAAY,CAAE,GAAGG,EAAW,KAAMF,CAAA,EAC9CD,EAAY,UAAY,CAAE,GAAGK,EAAW,KAAMH,CAAA,CAChD,CAEA,OAAOF,CACT,CAAC,EAGGM,EAAqB,CAACT,EAAa,CAAA,EAAIU,EAAc,CAAA,EAAIC,IACrDD,EAAY,SAASC,CAAU,EAEnCX,EAAW,OAAQE,GAAaA,EAAS,gBAAkB,UAAU,EADrEF,EAIAY,EAAyB,CAC7BZ,EAAa,CAAA,EACba,EAAwB,CAAA,EACxBZ,EAAc,CAAA,EACdU,EACAG,IACG,CAEH,MAAMC,EAAsBC,EAAAA,QAC1B,IAAMjB,EAAsBC,EAAYC,CAAW,EACnD,CAACD,CAAU,CAAA,EAIPiB,EAAqBD,EAAAA,QAAQ,IAC1BD,EAAoB,IAAKb,IACV,CAAE,GAAGA,EAAU,QAASY,IAAaZ,EAAS,UAAA,EAEnE,EACA,CAACa,EAAqBD,CAAQ,CAAC,EAG5BI,EAA6BF,EAAAA,QACjC,IAAMP,EAAmBQ,EAAoB,CAAC,SAAS,EAAGN,CAAU,EACpE,CAACM,EAAoBhB,CAAW,CAAA,EAI5BkB,EAAyBH,EAAAA,QAAQ,IACZ,CAAC,GAAGE,CAA0B,EAAE,KAAK,CAACE,EAAGC,IAAM,CACtE,MAAMC,EAAQ,IAAI,KAAKF,EAAE,SAAS,EAC5BG,EAAQ,IAAI,KAAKF,EAAE,SAAS,EAC5BG,EAASC,EAAAA,QAAQH,CAAK,EACtBI,EAASD,EAAAA,QAAQF,CAAK,EAE5B,GAAI,CAACC,GAAU,CAACE,EACd,MAAO,GACT,GAAYF,GAEZ,GAAW,CAACE,EACV,MAAO,OAFP,OAAO,GAMT,OAAOC,EAAAA,WAAWJ,EAAOD,CAAK,CAChC,CAAC,EAGA,CAACJ,CAA0B,CAAC,EAGzBU,EAAuBZ,EAAAA,QAC3B,IAAMa,EAAuBV,EAAwB,gBAAiB,WAAW,EACjF,CAACA,CAAsB,CAAA,EAInBW,EAAwBd,EAAAA,QAC5B,IAAMe,EAAqBH,EAAsBf,CAAK,EACtD,CAACe,EAAsBf,CAAK,CAAA,EAIxBmB,EAAsBhB,EAAAA,QAC1B,IAAMiB,EAAsBH,CAAqB,EACjD,CAACA,CAAqB,CAAA,EAgBxB,OAZ6Bd,EAAAA,QAAQ,IAS5B,CAAC,GAPY,IAAI,IACtBgB,EACG,OAAQ9B,GAAaA,GAAYA,EAAS,UAAU,EACpD,IAAKA,GAAa,CAACA,EAAS,WAAYA,CAAQ,CAAC,CAAA,EAI/B,QAAQ,EAC9B,CAAC8B,CAAmB,CAAC,CAG1B"}
1
+ {"version":3,"file":"useTransformActivities.cjs.js","sources":["../../../../../../src/containers/Feed/hooks/useTransformActivities.ts"],"sourcesContent":["// @ts-nocheck\n\nimport { compareAsc, isValid } from 'date-fns'\nimport { useMemo } from 'react'\nimport groupActivityVersions from '../helpers/groupActivityVersions'\nimport groupMinorActivities, { ActivityUser } from '../helpers/groupMinorActivities'\nimport mergeSimilarActivities from '../helpers/mergeSimilarActivities'\n\n// Define the types of activities that are considered minor\nconst minorActivityTypes = ['status.change', 'assignee.add', 'assignee.remove']\n\nconst getStatusActivityIcon = (activities = [], projectInfo = {}) => {\n return activities.map((activity) => {\n const newActivity = { ...activity, origin: { ...activity.origin } }\n\n // find status icon and data for status change activities\n if (newActivity.activityType === 'status.change') {\n if (!projectInfo) return newActivity\n const oldStatusName = newActivity.activityData?.oldValue\n const newStatusName = newActivity.activityData?.newValue\n\n const oldStatus = projectInfo.statuses?.find((status) => status.name === oldStatusName)\n const newStatus = projectInfo.statuses?.find((status) => status.name === newStatusName)\n\n newActivity.oldStatus = { ...oldStatus, name: oldStatusName }\n newActivity.newStatus = { ...newStatus, name: newStatusName }\n }\n\n return newActivity\n })\n}\n\nconst filterOutRelations = (activities = [], entityTypes = [], entityType) => {\n return !entityTypes.includes(entityType)\n ? activities\n : activities.filter((activity) => activity.referenceType !== 'relation')\n}\n\nconst useTransformActivities = (\n activities = [],\n users: ActivityUser[] = [],\n projectInfo = {},\n entityType,\n userName,\n) => {\n // 1. add status icons and data for status change activities\n const activitiesWithIcons = useMemo(\n () => getStatusActivityIcon(activities, projectInfo),\n [activities, projectInfo],\n )\n\n // 1,5. add any extra meta data to the activities\n const activitiesWithMeta = useMemo(() => {\n return activitiesWithIcons.map((activity) => {\n const newActivity = { ...activity, isOwner: userName === activity.authorName }\n return newActivity\n })\n }, [activitiesWithIcons, userName])\n\n // 2. versions should not have relations shown (comments posted on parent task)\n const activitiesWithoutRelations = useMemo(\n () => filterOutRelations(activitiesWithMeta, ['version'], entityType),\n [activitiesWithMeta, entityType],\n )\n\n // 3. sort createdAt oldest first (because we are using flex: column-reverse)\n const reversedActivitiesData = useMemo(() => {\n const sortedActivities = [...activitiesWithoutRelations].sort((a, b) => {\n const dateA = new Date(a.createdAt)\n const dateB = new Date(b.createdAt)\n const validA = isValid(dateA)\n const validB = isValid(dateB)\n\n if (!validA && !validB) {\n return 0 // Both dates are invalid, keep original order\n } else if (!validA) {\n return 1 // Only dateA is invalid, it comes first\n } else if (!validB) {\n return -1 // Only dateB is invalid, dateA comes first\n }\n\n // If both dates are valid, compare them normally\n return compareAsc(dateB, dateA)\n })\n\n return sortedActivities\n }, [activitiesWithoutRelations])\n\n // 4. for status change activities that are together, merge them into one activity\n const mergedActivitiesData = useMemo(\n () => mergeSimilarActivities(reversedActivitiesData, 'status.change', 'oldStatus'),\n [reversedActivitiesData],\n )\n\n // 5. group minor activities together\n const groupedActivitiesData = useMemo(\n () => groupMinorActivities(mergedActivitiesData, users),\n [mergedActivitiesData, users],\n )\n\n // 6. group version activities together\n const groupedVersionsData = useMemo(\n () => groupActivityVersions(groupedActivitiesData),\n [groupedActivitiesData],\n )\n\n // 7. ensure there are no duplicate activities\n const uniqueActivitiesData = useMemo(() => {\n // Filter out invalid activities and create a Map to ensure uniqueness\n const activityMap = new Map(\n groupedVersionsData\n .filter((activity) => activity && activity.activityId)\n .map((activity) => [activity.activityId, activity]),\n )\n\n // Convert the Map values to an array\n return [...activityMap.values()]\n }, [groupedVersionsData])\n\n return uniqueActivitiesData\n}\n\nexport { minorActivityTypes }\nexport default useTransformActivities\n"],"names":["minorActivityTypes","getStatusActivityIcon","activities","projectInfo","activity","newActivity","oldStatusName","newStatusName","oldStatus","status","newStatus","filterOutRelations","entityTypes","entityType","useTransformActivities","users","userName","activitiesWithIcons","useMemo","activitiesWithMeta","activitiesWithoutRelations","reversedActivitiesData","a","b","dateA","dateB","validA","isValid","validB","compareAsc","mergedActivitiesData","mergeSimilarActivities","groupedActivitiesData","groupMinorActivities","groupedVersionsData","groupActivityVersions"],"mappings":"0TASMA,EAAqB,CAAC,gBAAiB,eAAgB,iBAAiB,EAExEC,EAAwB,CAACC,EAAa,GAAIC,EAAc,CAAA,IACrDD,EAAW,IAAKE,GAAa,CAClC,MAAMC,EAAc,CAAE,GAAGD,EAAU,OAAQ,CAAE,GAAGA,EAAS,OAAO,EAGhE,GAAIC,EAAY,eAAiB,gBAAiB,CAChD,GAAI,CAACF,EAAa,OAAOE,EACzB,MAAMC,EAAgBD,EAAY,cAAc,SAC1CE,EAAgBF,EAAY,cAAc,SAE1CG,EAAYL,EAAY,UAAU,KAAMM,GAAWA,EAAO,OAASH,CAAa,EAChFI,EAAYP,EAAY,UAAU,KAAMM,GAAWA,EAAO,OAASF,CAAa,EAEtFF,EAAY,UAAY,CAAE,GAAGG,EAAW,KAAMF,CAAA,EAC9CD,EAAY,UAAY,CAAE,GAAGK,EAAW,KAAMH,CAAA,CAChD,CAEA,OAAOF,CACT,CAAC,EAGGM,EAAqB,CAACT,EAAa,CAAA,EAAIU,EAAc,CAAA,EAAIC,IACrDD,EAAY,SAASC,CAAU,EAEnCX,EAAW,OAAQE,GAAaA,EAAS,gBAAkB,UAAU,EADrEF,EAIAY,EAAyB,CAC7BZ,EAAa,CAAA,EACba,EAAwB,CAAA,EACxBZ,EAAc,CAAA,EACdU,EACAG,IACG,CAEH,MAAMC,EAAsBC,EAAAA,QAC1B,IAAMjB,EAAsBC,EAAYC,CAAW,EACnD,CAACD,EAAYC,CAAW,CAAA,EAIpBgB,EAAqBD,EAAAA,QAAQ,IAC1BD,EAAoB,IAAKb,IACV,CAAE,GAAGA,EAAU,QAASY,IAAaZ,EAAS,UAAA,EAEnE,EACA,CAACa,EAAqBD,CAAQ,CAAC,EAG5BI,EAA6BF,EAAAA,QACjC,IAAMP,EAAmBQ,EAAoB,CAAC,SAAS,EAAGN,CAAU,EACpE,CAACM,EAAoBN,CAAU,CAAA,EAI3BQ,EAAyBH,EAAAA,QAAQ,IACZ,CAAC,GAAGE,CAA0B,EAAE,KAAK,CAACE,EAAGC,IAAM,CACtE,MAAMC,EAAQ,IAAI,KAAKF,EAAE,SAAS,EAC5BG,EAAQ,IAAI,KAAKF,EAAE,SAAS,EAC5BG,EAASC,EAAAA,QAAQH,CAAK,EACtBI,EAASD,EAAAA,QAAQF,CAAK,EAE5B,GAAI,CAACC,GAAU,CAACE,EACd,MAAO,GACT,GAAYF,GAEZ,GAAW,CAACE,EACV,MAAO,OAFP,OAAO,GAMT,OAAOC,EAAAA,WAAWJ,EAAOD,CAAK,CAChC,CAAC,EAGA,CAACJ,CAA0B,CAAC,EAGzBU,EAAuBZ,EAAAA,QAC3B,IAAMa,EAAuBV,EAAwB,gBAAiB,WAAW,EACjF,CAACA,CAAsB,CAAA,EAInBW,EAAwBd,EAAAA,QAC5B,IAAMe,EAAqBH,EAAsBf,CAAK,EACtD,CAACe,EAAsBf,CAAK,CAAA,EAIxBmB,EAAsBhB,EAAAA,QAC1B,IAAMiB,EAAsBH,CAAqB,EACjD,CAACA,CAAqB,CAAA,EAgBxB,OAZ6Bd,EAAAA,QAAQ,IAS5B,CAAC,GAPY,IAAI,IACtBgB,EACG,OAAQ9B,GAAaA,GAAYA,EAAS,UAAU,EACpD,IAAKA,GAAa,CAACA,EAAS,WAAYA,CAAQ,CAAC,CAAA,EAI/B,QAAQ,EAC9B,CAAC8B,CAAmB,CAAC,CAG1B"}