@ynput/ayon-frontend-shared 0.3.0 → 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.
- package/dist/_virtual/index.cjs4.js +1 -1
- package/dist/_virtual/index.cjs5.js +1 -1
- package/dist/_virtual/index.es4.js +2 -5
- package/dist/_virtual/index.es4.js.map +1 -1
- package/dist/_virtual/index.es5.js +5 -2
- package/dist/_virtual/index.es5.js.map +1 -1
- package/dist/node_modules/remove-accents/index.cjs.js +1 -1
- package/dist/node_modules/remove-accents/index.es.js +1 -1
- package/dist/node_modules/web-namespaces/index.cjs.js +1 -1
- package/dist/node_modules/web-namespaces/index.cjs.js.map +1 -1
- package/dist/node_modules/web-namespaces/index.es.js +3 -8
- package/dist/node_modules/web-namespaces/index.es.js.map +1 -1
- package/dist/shared/node_modules/react-transition-group/esm/CSSTransition.cjs.js +1 -1
- package/dist/shared/node_modules/react-transition-group/esm/CSSTransition.es.js +1 -1
- package/dist/shared/node_modules/react-transition-group/esm/Transition.cjs.js +1 -1
- package/dist/shared/node_modules/react-transition-group/esm/Transition.es.js +1 -1
- package/dist/shared/node_modules/react-transition-group/esm/utils/PropTypes.cjs.js +1 -1
- package/dist/shared/node_modules/react-transition-group/esm/utils/PropTypes.es.js +1 -1
- package/dist/shared/src/api/generated/graphql.cjs.js +12 -8
- package/dist/shared/src/api/generated/graphql.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/graphql.es.js +11 -7
- package/dist/shared/src/api/generated/graphql.es.js.map +1 -1
- package/dist/shared/src/api/generated/graphqlLinks.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/graphqlLinks.es.js.map +1 -1
- package/dist/shared/src/api/queries/overview/getOverview.cjs.js +1 -1
- package/dist/shared/src/api/queries/overview/getOverview.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/overview/getOverview.es.js +95 -95
- package/dist/shared/src/api/queries/overview/getOverview.es.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.cjs.js +2 -2
- package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.cjs.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.es.js +66 -61
- package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.es.js.map +1 -1
- package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js +1 -1
- package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js.map +1 -1
- package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js +14 -11
- package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js.map +1 -1
- package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js +1 -1
- package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js.map +1 -1
- package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js +42 -41
- package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js +23 -23
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/hooks/useTransformActivities.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/hooks/useTransformActivities.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/hooks/useTransformActivities.es.js +6 -6
- package/dist/shared/src/containers/Feed/hooks/useTransformActivities.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js +65 -64
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js +16 -16
- package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js +3 -3
- package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js +142 -146
- package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js +24 -24
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js +141 -132
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js +35 -28
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.cjs.js +2 -2
- package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.es.js +10 -10
- package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.es.js.map +1 -1
- package/dist/shared/src/context/AddonContext.cjs.js.map +1 -1
- package/dist/shared/src/context/AddonContext.es.js.map +1 -1
- package/dist/shared/src/context/ProjectFoldersContext.cjs.js +1 -1
- package/dist/shared/src/context/ProjectFoldersContext.cjs.js.map +1 -1
- package/dist/shared/src/context/ProjectFoldersContext.es.js +62 -49
- package/dist/shared/src/context/ProjectFoldersContext.es.js.map +1 -1
- package/dist/shared/src/hooks/useLoadModules.cjs.js +1 -1
- package/dist/shared/src/hooks/useLoadModules.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useLoadModules.es.js +86 -80
- package/dist/shared/src/hooks/useLoadModules.es.js.map +1 -1
- package/dist/types/api/generated/graphql.d.ts +2 -1
- package/dist/types/api/generated/graphqlLinks.d.ts +1 -0
- package/dist/types/api/queries/overview/getOverview.d.ts +1 -0
- package/dist/types/components/RemotePage/RemotePageWrapper.d.ts +1 -0
- package/dist/types/components/SearchFilter/useBuildFilterOptions.d.ts +1 -0
- package/dist/types/containers/ProjectTreeTable/hooks/useFetchOverviewData.d.ts +2 -1
- package/dist/types/containers/ProjectTreeTable/hooks/useQueryFilters.d.ts +4 -1
- package/dist/types/context/AddonContext.d.ts +1 -0
- package/dist/types/context/ProjectFoldersContext.d.ts +1 -0
- package/package.json +2 -1
- package/dist/node_modules/@ungap/structured-clone/esm/deserialize.cjs.js +0 -2
- package/dist/node_modules/@ungap/structured-clone/esm/deserialize.cjs.js.map +0 -1
- package/dist/node_modules/@ungap/structured-clone/esm/deserialize.es.js +0 -63
- package/dist/node_modules/@ungap/structured-clone/esm/deserialize.es.js.map +0 -1
- package/dist/node_modules/@ungap/structured-clone/esm/index.cjs.js +0 -2
- package/dist/node_modules/@ungap/structured-clone/esm/index.cjs.js.map +0 -1
- package/dist/node_modules/@ungap/structured-clone/esm/index.es.js +0 -12
- package/dist/node_modules/@ungap/structured-clone/esm/index.es.js.map +0 -1
- package/dist/node_modules/@ungap/structured-clone/esm/serialize.cjs.js +0 -2
- package/dist/node_modules/@ungap/structured-clone/esm/serialize.cjs.js.map +0 -1
- package/dist/node_modules/@ungap/structured-clone/esm/serialize.es.js +0 -107
- package/dist/node_modules/@ungap/structured-clone/esm/serialize.es.js.map +0 -1
- package/dist/node_modules/@ungap/structured-clone/esm/types.cjs.js +0 -2
- package/dist/node_modules/@ungap/structured-clone/esm/types.cjs.js.map +0 -1
- package/dist/node_modules/@ungap/structured-clone/esm/types.es.js +0 -14
- package/dist/node_modules/@ungap/structured-clone/esm/types.es.js.map +0 -1
- package/dist/node_modules/devlop/lib/default.cjs.js +0 -2
- package/dist/node_modules/devlop/lib/default.cjs.js.map +0 -1
- package/dist/node_modules/devlop/lib/default.es.js +0 -6
- package/dist/node_modules/devlop/lib/default.es.js.map +0 -1
- package/dist/node_modules/entities/dist/esm/decode-codepoint.cjs.js +0 -2
- package/dist/node_modules/entities/dist/esm/decode-codepoint.cjs.js.map +0 -1
- package/dist/node_modules/entities/dist/esm/decode-codepoint.es.js +0 -39
- package/dist/node_modules/entities/dist/esm/decode-codepoint.es.js.map +0 -1
- package/dist/node_modules/entities/dist/esm/decode.cjs.js +0 -2
- package/dist/node_modules/entities/dist/esm/decode.cjs.js.map +0 -1
- package/dist/node_modules/entities/dist/esm/decode.es.js +0 -246
- package/dist/node_modules/entities/dist/esm/decode.es.js.map +0 -1
- package/dist/node_modules/entities/dist/esm/generated/decode-data-html.cjs.js +0 -2
- package/dist/node_modules/entities/dist/esm/generated/decode-data-html.cjs.js.map +0 -1
- package/dist/node_modules/entities/dist/esm/generated/decode-data-html.es.js +0 -8
- package/dist/node_modules/entities/dist/esm/generated/decode-data-html.es.js.map +0 -1
- package/dist/node_modules/hast-util-raw/lib/index.cjs.js +0 -2
- package/dist/node_modules/hast-util-raw/lib/index.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-raw/lib/index.es.js +0 -218
- package/dist/node_modules/hast-util-raw/lib/index.es.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/hast-util-from-parse5/lib/index.cjs.js +0 -2
- package/dist/node_modules/hast-util-raw/node_modules/hast-util-from-parse5/lib/index.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/hast-util-from-parse5/lib/index.es.js +0 -146
- package/dist/node_modules/hast-util-raw/node_modules/hast-util-from-parse5/lib/index.es.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/hast-util-parse-selector/lib/index.cjs.js +0 -2
- package/dist/node_modules/hast-util-raw/node_modules/hast-util-parse-selector/lib/index.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/hast-util-parse-selector/lib/index.es.js +0 -21
- package/dist/node_modules/hast-util-raw/node_modules/hast-util-parse-selector/lib/index.es.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/hastscript/lib/create-h.cjs.js +0 -2
- package/dist/node_modules/hast-util-raw/node_modules/hastscript/lib/create-h.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/hastscript/lib/create-h.es.js +0 -113
- package/dist/node_modules/hast-util-raw/node_modules/hastscript/lib/create-h.es.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/hastscript/lib/index.cjs.js +0 -2
- package/dist/node_modules/hast-util-raw/node_modules/hastscript/lib/index.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/hastscript/lib/index.es.js +0 -9
- package/dist/node_modules/hast-util-raw/node_modules/hastscript/lib/index.es.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/hastscript/lib/svg-case-sensitive-tag-names.cjs.js +0 -2
- package/dist/node_modules/hast-util-raw/node_modules/hastscript/lib/svg-case-sensitive-tag-names.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/hastscript/lib/svg-case-sensitive-tag-names.es.js +0 -45
- package/dist/node_modules/hast-util-raw/node_modules/hastscript/lib/svg-case-sensitive-tag-names.es.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/html-void-elements/index.cjs.js +0 -2
- package/dist/node_modules/hast-util-raw/node_modules/html-void-elements/index.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/html-void-elements/index.es.js +0 -26
- package/dist/node_modules/hast-util-raw/node_modules/html-void-elements/index.es.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/doctype.cjs.js +0 -2
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/doctype.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/doctype.es.js +0 -99
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/doctype.es.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/error-codes.cjs.js +0 -2
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/error-codes.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/error-codes.es.js +0 -8
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/error-codes.es.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/foreign-content.cjs.js +0 -2
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/foreign-content.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/foreign-content.es.js +0 -211
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/foreign-content.es.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/html.cjs.js +0 -2
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/html.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/html.es.js +0 -251
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/html.es.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/token.cjs.js +0 -2
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/token.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/token.es.js +0 -15
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/token.es.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/unicode.cjs.js +0 -2
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/unicode.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/unicode.es.js +0 -74
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/unicode.es.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/parser/formatting-element-list.cjs.js +0 -2
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/parser/formatting-element-list.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/parser/formatting-element-list.es.js +0 -85
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/parser/formatting-element-list.es.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/parser/index.cjs.js +0 -2
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/parser/index.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/parser/index.es.js +0 -2272
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/parser/index.es.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/parser/open-element-stack.cjs.js +0 -2
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/parser/open-element-stack.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/parser/open-element-stack.es.js +0 -241
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/parser/open-element-stack.es.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/serializer/index.cjs.js +0 -2
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/serializer/index.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/serializer/index.es.js +0 -3
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/serializer/index.es.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/tokenizer/index.cjs.js +0 -2
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/tokenizer/index.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/tokenizer/index.es.js +0 -1941
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/tokenizer/index.es.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/tokenizer/preprocessor.cjs.js +0 -2
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/tokenizer/preprocessor.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/tokenizer/preprocessor.es.js +0 -89
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/tokenizer/preprocessor.es.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/tree-adapters/default.cjs.js +0 -2
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/tree-adapters/default.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/tree-adapters/default.es.js +0 -163
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/tree-adapters/default.es.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/property-information/index.cjs.js +0 -2
- package/dist/node_modules/hast-util-raw/node_modules/property-information/index.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/property-information/index.es.js +0 -13
- package/dist/node_modules/hast-util-raw/node_modules/property-information/index.es.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/aria.cjs.js +0 -2
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/aria.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/aria.es.js +0 -62
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/aria.es.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/find.cjs.js +0 -2
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/find.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/find.es.js +0 -34
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/find.es.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/html.cjs.js +0 -2
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/html.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/html.es.js +0 -369
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/html.es.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/normalize.cjs.js +0 -2
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/normalize.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/normalize.es.js +0 -7
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/normalize.es.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/svg.cjs.js +0 -2
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/svg.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/svg.es.js +0 -567
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/svg.es.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/case-insensitive-transform.cjs.js +0 -2
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/case-insensitive-transform.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/case-insensitive-transform.es.js +0 -8
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/case-insensitive-transform.es.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/case-sensitive-transform.cjs.js +0 -2
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/case-sensitive-transform.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/case-sensitive-transform.es.js +0 -7
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/case-sensitive-transform.es.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/create.cjs.js +0 -2
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/create.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/create.es.js +0 -20
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/create.es.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/defined-info.cjs.js +0 -2
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/defined-info.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/defined-info.es.js +0 -37
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/defined-info.es.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/info.cjs.js +0 -2
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/info.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/info.es.js +0 -29
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/info.es.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/merge.cjs.js +0 -2
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/merge.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/merge.es.js +0 -11
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/merge.es.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/schema.cjs.js +0 -2
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/schema.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/schema.es.js +0 -22
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/schema.es.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/types.cjs.js +0 -2
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/types.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/types.es.js +0 -15
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/types.es.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/xlink.cjs.js +0 -2
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/xlink.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/xlink.es.js +0 -20
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/xlink.es.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/xml.cjs.js +0 -2
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/xml.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/xml.es.js +0 -12
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/xml.es.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/xmlns.cjs.js +0 -2
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/xmlns.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/xmlns.es.js +0 -12
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/xmlns.es.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/vfile-location/lib/index.cjs.js +0 -3
- package/dist/node_modules/hast-util-raw/node_modules/vfile-location/lib/index.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-raw/node_modules/vfile-location/lib/index.es.js +0 -43
- package/dist/node_modules/hast-util-raw/node_modules/vfile-location/lib/index.es.js.map +0 -1
- package/dist/node_modules/hast-util-to-parse5/lib/index.cjs.js +0 -2
- package/dist/node_modules/hast-util-to-parse5/lib/index.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-to-parse5/lib/index.es.js +0 -119
- package/dist/node_modules/hast-util-to-parse5/lib/index.es.js.map +0 -1
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/index.cjs.js +0 -2
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/index.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/index.es.js +0 -13
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/index.es.js.map +0 -1
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/aria.cjs.js +0 -2
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/aria.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/aria.es.js +0 -62
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/aria.es.js.map +0 -1
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/find.cjs.js +0 -2
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/find.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/find.es.js +0 -34
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/find.es.js.map +0 -1
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/html.cjs.js +0 -2
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/html.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/html.es.js +0 -369
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/html.es.js.map +0 -1
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/normalize.cjs.js +0 -2
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/normalize.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/normalize.es.js +0 -7
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/normalize.es.js.map +0 -1
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/svg.cjs.js +0 -2
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/svg.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/svg.es.js +0 -567
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/svg.es.js.map +0 -1
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/case-insensitive-transform.cjs.js +0 -2
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/case-insensitive-transform.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/case-insensitive-transform.es.js +0 -8
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/case-insensitive-transform.es.js.map +0 -1
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/case-sensitive-transform.cjs.js +0 -2
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/case-sensitive-transform.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/case-sensitive-transform.es.js +0 -7
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/case-sensitive-transform.es.js.map +0 -1
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/create.cjs.js +0 -2
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/create.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/create.es.js +0 -20
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/create.es.js.map +0 -1
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/defined-info.cjs.js +0 -2
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/defined-info.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/defined-info.es.js +0 -37
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/defined-info.es.js.map +0 -1
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/info.cjs.js +0 -2
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/info.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/info.es.js +0 -29
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/info.es.js.map +0 -1
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/merge.cjs.js +0 -2
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/merge.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/merge.es.js +0 -11
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/merge.es.js.map +0 -1
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/schema.cjs.js +0 -2
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/schema.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/schema.es.js +0 -22
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/schema.es.js.map +0 -1
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/types.cjs.js +0 -2
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/types.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/types.es.js +0 -15
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/types.es.js.map +0 -1
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/xlink.cjs.js +0 -2
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/xlink.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/xlink.es.js +0 -20
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/xlink.es.js.map +0 -1
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/xml.cjs.js +0 -2
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/xml.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/xml.es.js +0 -12
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/xml.es.js.map +0 -1
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/xmlns.cjs.js +0 -2
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/xmlns.cjs.js.map +0 -1
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/xmlns.es.js +0 -12
- package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/xmlns.es.js.map +0 -1
- package/dist/node_modules/rehype-raw/lib/index.cjs.js +0 -2
- package/dist/node_modules/rehype-raw/lib/index.cjs.js.map +0 -1
- package/dist/node_modules/rehype-raw/lib/index.es.js +0 -13
- package/dist/node_modules/rehype-raw/lib/index.es.js.map +0 -1
- package/dist/node_modules/unist-util-is/lib/index.cjs.js +0 -2
- package/dist/node_modules/unist-util-is/lib/index.cjs.js.map +0 -1
- package/dist/node_modules/unist-util-is/lib/index.es.js +0 -92
- package/dist/node_modules/unist-util-is/lib/index.es.js.map +0 -1
- package/dist/node_modules/unist-util-position/lib/index.cjs.js +0 -2
- package/dist/node_modules/unist-util-position/lib/index.cjs.js.map +0 -1
- package/dist/node_modules/unist-util-position/lib/index.es.js +0 -18
- package/dist/node_modules/unist-util-position/lib/index.es.js.map +0 -1
- package/dist/node_modules/unist-util-visit/lib/index.cjs.js +0 -2
- package/dist/node_modules/unist-util-visit/lib/index.cjs.js.map +0 -1
- package/dist/node_modules/unist-util-visit/lib/index.es.js +0 -17
- package/dist/node_modules/unist-util-visit/lib/index.es.js.map +0 -1
- package/dist/node_modules/unist-util-visit-parents/lib/color.cjs.js +0 -2
- package/dist/node_modules/unist-util-visit-parents/lib/color.cjs.js.map +0 -1
- package/dist/node_modules/unist-util-visit-parents/lib/color.es.js +0 -7
- package/dist/node_modules/unist-util-visit-parents/lib/color.es.js.map +0 -1
- package/dist/node_modules/unist-util-visit-parents/lib/index.cjs.js +0 -2
- package/dist/node_modules/unist-util-visit-parents/lib/index.cjs.js.map +0 -1
- package/dist/node_modules/unist-util-visit-parents/lib/index.es.js +0 -57
- package/dist/node_modules/unist-util-visit-parents/lib/index.es.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildTreeTableColumns.cjs.js","sources":["../../../../../src/containers/ProjectTreeTable/buildTreeTableColumns.tsx"],"sourcesContent":["import { ColumnDef, FilterFnOption, Row, SortingFn, sortingFns } from '@tanstack/react-table'\nimport { TableRow } from './types/table'\nimport { AttributeData, ProjectTableAttribute, BuiltInFieldOptions } from './types'\nimport {\n CellWidget,\n MetaWidget,\n EntityNameWidget,\n GroupHeaderWidget,\n ThumbnailWidget,\n} from './widgets'\nimport { getCellId, getCellValue } from './utils/cellUtils'\nimport { LinkColumnHeader, TableCellContent } from './ProjectTreeTable.styled'\nimport clsx from 'clsx'\nimport { SelectionCell } from './components/SelectionCell'\nimport RowSelectionHeader from './components/RowSelectionHeader'\nimport { ROW_SELECTION_COLUMN_ID } from './context/SelectionCellsContext'\nimport { TableGroupBy, useCellEditing, useColumnSettingsContext } from './context'\nimport { NEXT_PAGE_ID } from './hooks/useBuildGroupByTableData'\nimport LoadMoreWidget from './widgets/LoadMoreWidget'\nimport { LinkTypeModel } from '@shared/api'\nimport { LinkWidgetData } from './widgets/LinksWidget'\nimport { Icon } from '@ynput/ayon-react-components'\nimport { getEntityTypeIcon } from '@shared/util'\nimport { NameWidgetData } from '@shared/components/RenameForm'\nimport { isEntityRestricted, READ_ONLY } from './utils/restrictedEntity'\nimport { ColumnsConfig, getColumnDisplayConfig } from './types/columnConfig'\nimport { upperFirst } from 'lodash'\n\nexport const isEntityExpandable = (entityType: string) => ['folder', 'product'].includes(entityType)\n\nconst MIN_SIZE = 50\n\n// Wrapper function for sorting that pushes isLoading rows to the bottom\nconst withLoadingStateSort = (sortFn: SortingFn<any>): SortingFn<any> => {\n return (rowA, rowB, ...args) => {\n // If row loading states differ, prioritize non-loading rows\n if (rowA.original.isLoading !== rowB.original.isLoading) {\n return rowA.original.isLoading ? 1 : -1\n }\n // Otherwise, use the original sort function\n return sortFn(rowA, rowB, ...args)\n }\n}\n\nconst pathSort: SortingFn<any> = (rowA, rowB) => {\n const labelA = rowA.original.path || rowA.original.name || ''\n const labelB = rowB.original.path || rowB.original.name || ''\n // sort alphabetically by label\n return labelA.localeCompare(labelB)\n}\n\nconst valueLengthSort: SortingFn<any> = (rowA, rowB, columnId) => {\n const valueA = getCellValue(rowA.original, columnId)\n const valueB = getCellValue(rowB.original, columnId)\n const lengthA = Array.isArray(valueA) ? valueA.length : valueA ? String(valueA).length : 0\n const lengthB = Array.isArray(valueB) ? valueB.length : valueB ? String(valueB).length : 0\n return lengthA - lengthB\n}\n\ntype AttribSortingFn = (rowA: any, rowB: any, columnId: string, attribute?: AttributeData) => number\n// sort by the order of the enum options\nconst attribSort: AttribSortingFn = (rowA, rowB, columnId, attrib) => {\n const valueA = getCellValue(rowA.original, columnId)\n const valueB = getCellValue(rowB.original, columnId)\n // if attrib is defined and has enum options, use them\n if (attrib && attrib.enum) {\n const indexA = attrib.enum.findIndex((o) => o.value === valueA)\n const indexB = attrib.enum.findIndex((o) => o.value === valueB)\n return indexB - indexA < 0 ? 1 : -1\n } else if (attrib?.type === 'datetime') {\n return sortingFns.datetime(rowA, rowB, columnId)\n } else if (attrib?.type === 'boolean') {\n const boolA = valueA === true ? 1 : 0\n const boolB = valueB === true ? 1 : 0\n return boolA - boolB\n } else {\n return sortingFns.alphanumeric(rowA, rowB, columnId)\n }\n}\n\nexport const getLinkLabel = (\n link: Pick<LinkTypeModel, 'linkType'>,\n direction: 'in' | 'out' | string,\n) => `${link.linkType.charAt(0).toUpperCase() + link.linkType.slice(1)} (${direction})`\n\nexport const getLinkKey = (link: Pick<LinkTypeModel, 'name'>, direction: 'in' | 'out' | string) =>\n `${link.name.replaceAll('_', '').replaceAll('-', '').replaceAll('|', '_')}_${direction}`\n\nexport const getLinkColumnId = (\n link: Pick<LinkTypeModel, 'name'>,\n direction: 'in' | 'out' | string,\n) => `link_${getLinkKey(link, direction)}`\n\nexport type DefaultColumns =\n | typeof ROW_SELECTION_COLUMN_ID\n | 'thumbnail'\n | 'name'\n | 'entityType'\n | 'folder'\n | 'status'\n | 'subType'\n | 'assignees'\n | 'tags'\n | 'createdAt'\n | 'updatedAt'\n\nexport type TreeTableExtraColumn = { column: ColumnDef<TableRow>; position?: number }\n\nexport type BuildTreeTableColumnsProps = {\n scopes: string[]\n attribs: ProjectTableAttribute[]\n links: LinkTypeModel[]\n includeLinks?: boolean\n showHierarchy: boolean\n options: BuiltInFieldOptions\n excluded?: (DefaultColumns | string)[]\n excludedSorting?: (DefaultColumns | string)[]\n extraColumns?: TreeTableExtraColumn[]\n groupBy?: TableGroupBy\n nameLabel?: string\n}\n\nconst buildTreeTableColumns = ({\n scopes,\n attribs,\n links = [],\n includeLinks = true,\n showHierarchy,\n options,\n excluded,\n excludedSorting,\n extraColumns,\n groupBy,\n nameLabel = 'Entity',\n}: BuildTreeTableColumnsProps) => {\n const staticColumns: ColumnDef<TableRow>[] = []\n\n // Helper to check if a column should be included\n const isIncluded = (id: DefaultColumns | string) => !excluded?.includes(id)\n const canSort = (id: DefaultColumns | string) => !excludedSorting?.includes(id)\n\n // Conditionally add static columns\n if (isIncluded(ROW_SELECTION_COLUMN_ID)) {\n staticColumns.push({\n id: ROW_SELECTION_COLUMN_ID,\n enableResizing: false,\n enableSorting: false,\n enablePinning: false,\n enableHiding: false,\n\n header: () => <RowSelectionHeader />,\n cell: ({ row }) => {\n if (row.original.entityType === 'group' || row.original.metaType) return null\n return <SelectionCell />\n },\n size: 20,\n })\n }\n\n if (isIncluded('thumbnail')) {\n staticColumns.push({\n id: 'thumbnail',\n header: 'Thumbnail',\n size: 63,\n minSize: 24,\n enableResizing: true,\n enableSorting: false,\n cell: ({ row, column, table }) => {\n if (row.original.entityType === 'group' || row.original.metaType) return null\n const meta = table.options.meta\n if (!meta) return null\n const cellId = getCellId(row.id, column.id)\n let thumbnail = {\n entityId: row.original.entityId || row.id,\n entityType: row.original.entityType,\n updatedAt: row.original.updatedAt,\n }\n // check for thumbnail override\n if (row.original.thumbnail) {\n thumbnail = row.original.thumbnail\n }\n return (\n <ThumbnailWidget\n id={cellId}\n entityId={thumbnail.entityId}\n entityType={thumbnail.entityType}\n updatedAt={thumbnail.updatedAt}\n icon={row.original.icon}\n projectName={meta?.projectName as string}\n className={clsx('thumbnail', {\n loading: row.original.isLoading,\n })}\n isPlayable={row.original.hasReviewables}\n />\n )\n },\n })\n }\n\n if (isIncluded('name')) {\n staticColumns.push({\n id: 'name',\n accessorKey: 'name',\n header: nameLabel,\n minSize: MIN_SIZE,\n sortingFn: withLoadingStateSort(pathSort),\n enableSorting: groupBy ? false : canSort('name'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: groupBy ? false : true,\n cell: ({ row, column, table }) => {\n const { value, id, type } = getValueIdType(row, column.id)\n const meta = table.options.meta\n const { isEditing } = useCellEditing()\n const { rowHeight = 40 } = useColumnSettingsContext()\n const cellId = getCellId(row.id, column.id)\n\n if (row.original.metaType) {\n return (\n <TableCellContent\n id={cellId}\n className={clsx('large', 'readonly', row.original.entityType)}\n style={{\n paddingLeft: `calc(${row.depth * 1}rem + 8px)`,\n pointerEvents: 'none',\n }}\n tabIndex={0}\n >\n <MetaWidget metaType={row.original.metaType} label={row.original.label} />\n </TableCellContent>\n )\n }\n\n if (row.original.entityType === NEXT_PAGE_ID && row.original.group) {\n return (\n <LoadMoreWidget\n id={row.original.group.value}\n onLoadMore={(id) => meta?.loadMoreRows?.(id)}\n />\n )\n }\n\n const isExpandable =\n row.getCanExpand() &&\n !!row.originalSubRows &&\n (isEntityExpandable(row.original.entityType) || !!row.original.group)\n\n return (\n <TableCellContent\n id={cellId}\n className={clsx('large', row.original.entityType, {\n loading: row.original.isLoading,\n hierarchy: showHierarchy,\n })}\n style={{\n paddingLeft: `calc(${row.depth * 1}rem + ${\n isExpandable || !row.getCanExpand() ? 0 : 32\n }px + 8px)`,\n }}\n tabIndex={0}\n >\n {row.original.group ? (\n <GroupHeaderWidget\n id={row.id}\n label={row.original.group.label}\n name={row.original.name}\n icon={row.original.group.icon}\n img={row.original.group.img}\n color={row.original.group.color}\n count={row.original.group.count}\n isExpanded={row.getIsExpanded()}\n isEmpty={row.subRows.length === 0 && !row.original.metaType}\n toggleExpanded={row.getToggleExpandedHandler()}\n />\n ) : (\n <EntityNameWidget\n id={row.id}\n label={row.original.label}\n name={row.original.name}\n path={!showHierarchy ? '/' + row.original.parents?.join('/') : undefined}\n icon={row.original.icon}\n type={row.original.entityType}\n isExpandable={isExpandable}\n isExpanded={row.getIsExpanded()}\n toggleExpandAll={() => meta?.toggleExpandAll?.([row.id])}\n toggleExpanded={row.getToggleExpandedHandler()}\n rowHeight={rowHeight}\n columnDisplayConfig={getColumnDisplayConfig(meta?.columnsConfig, 'name')}\n />\n )}\n {isEditing(cellId) && (\n <CellWidget\n rowId={id}\n className={clsx('name', { loading: row.original.isLoading })}\n columnId={column.id}\n value={value}\n valueData={\n {\n name: row.original.name,\n label: row.original.label,\n meta,\n entityRowId: id,\n columnId: column.id,\n hasVersions: !!row.original.hasVersions,\n } as NameWidgetData\n }\n entityType={type}\n attributeData={{ type: 'name' }}\n isCollapsed={!!row.original.childOnlyMatch}\n isReadOnly={meta?.readOnly?.includes(column.id)}\n />\n )}\n </TableCellContent>\n )\n },\n })\n }\n\n if (isIncluded('status')) {\n staticColumns.push({\n id: 'status',\n accessorKey: 'status',\n minSize: MIN_SIZE,\n header: 'Status',\n sortingFn: withLoadingStateSort((a, b, c) =>\n attribSort(a, b, c, { enum: options.status, type: 'string' }),\n ),\n sortDescFirst: true,\n enableSorting: canSort('status'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n cell: ({ row, column, table }) => {\n const { value, id, type } = getValueIdType(row, column.id)\n const meta = table.options.meta\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n\n return (\n <CellWidget\n rowId={id}\n className={clsx('status', { loading: row.original.isLoading })}\n columnId={column.id}\n value={value}\n attributeData={{ type: 'string' }}\n options={meta?.options?.status.filter((s) => s.scope?.includes(type))}\n isCollapsed={!!row.original.childOnlyMatch}\n onChange={(value) =>\n meta?.updateEntities?.(\n { field: column.id, value, type, rowId: id },\n { selection: meta?.selection },\n )\n }\n isReadOnly={meta?.readOnly?.includes(column.id) || isEntityRestricted(type)}\n pt={{\n enum: {\n pt: {\n template: {\n pt: {\n icon: {\n style: {\n fontVariationSettings: \"'FILL' 1, 'wght' 200, 'GRAD' 200, 'opsz' 20\",\n },\n },\n },\n },\n },\n },\n }}\n />\n )\n },\n })\n }\n\n if (isIncluded('entityType')) {\n staticColumns.push({\n id: 'entityType',\n accessorKey: 'entityType',\n header: 'Entity Type',\n minSize: 20,\n enableSorting: false,\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n sortingFn: withLoadingStateSort(sortingFns.alphanumeric),\n cell: ({ row, column, table }) => {\n const { value, id, type } = getValueIdType(row, column.id)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n const cellId = getCellId(row.id, column.id)\n\n return (\n <TableCellContent\n id={cellId}\n className={clsx('entityType', READ_ONLY, type, { loading: row.original.isLoading })}\n tabIndex={0}\n >\n <Icon icon={getEntityTypeIcon(type)} /> {upperFirst(value)}\n </TableCellContent>\n )\n },\n })\n }\n\n if (isIncluded('subType')) {\n staticColumns.push({\n id: 'subType',\n accessorKey: 'subType',\n header: scopes.includes('product') || scopes.includes('version') ? 'Product type' : 'Type',\n minSize: MIN_SIZE,\n enableSorting: canSort('subType'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n sortingFn: withLoadingStateSort((a, b, c) =>\n attribSort(a, b, c, { enum: [...options.folderType, ...options.taskType], type: 'string' }),\n ),\n cell: ({ row, column, table }) => {\n const { value, id, type } = getValueIdType(row, column.id)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n const fieldId = type === 'folder' ? 'folderType' : 'taskType'\n const meta = table.options.meta\n const folderHasVersions = type === 'folder' && row.original.hasVersions\n return (\n <CellWidget\n rowId={id}\n className={clsx('subType', { loading: row.original.isLoading })}\n columnId={column.id}\n value={value}\n attributeData={{ type: 'string' }}\n options={\n type === 'folder'\n ? meta?.options?.folderType\n : type === 'task'\n ? meta?.options?.taskType\n : []\n }\n isCollapsed={!!row.original.childOnlyMatch}\n onChange={(value) =>\n meta?.updateEntities?.(\n { field: fieldId, value, type, rowId: row.id },\n { selection: meta?.selection },\n )\n }\n isReadOnly={\n meta?.readOnly?.includes(column.id) ||\n meta?.readOnly?.includes(fieldId) ||\n folderHasVersions\n }\n tooltip={\n folderHasVersions\n ? 'Folder type cannot be edited when versions exist within the folder'\n : undefined\n }\n />\n )\n },\n })\n }\n\n if (isIncluded('assignees')) {\n staticColumns.push({\n id: 'assignees',\n accessorKey: 'assignees',\n header: 'Assignees',\n minSize: MIN_SIZE,\n enableSorting: canSort('assignees'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n sortingFn: withLoadingStateSort(valueLengthSort),\n cell: ({ row, column, table }) => {\n const meta = table.options.meta\n const { value, id, type } = getValueIdType(row, column.id)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n\n if (type === 'folder')\n return (\n <CellWidget\n rowId={id}\n className={clsx('assignees', { loading: row.original.isLoading })}\n columnId={column.id}\n value=\"\"\n isPlaceholder\n />\n )\n return (\n <CellWidget\n rowId={id}\n className={clsx('assignees', { loading: row.original.isLoading })}\n columnId={column.id}\n value={value}\n attributeData={{ type: 'list_of_strings' }}\n options={meta?.options?.assignee}\n isCollapsed={!!row.original.childOnlyMatch}\n onChange={(value) =>\n meta?.updateEntities?.(\n { field: column.id, value, type, rowId: row.id },\n { selection: meta?.selection },\n )\n }\n isReadOnly={meta?.readOnly?.includes(column.id) || isEntityRestricted(type)}\n pt={{\n enum: {\n multiSelectClose: value?.length === 0, // close the dropdown on first assignment\n search: true, // enable search at all times\n multipleOverride: false,\n },\n }}\n />\n )\n },\n })\n }\n\n if (isIncluded('folder')) {\n staticColumns.push({\n id: 'folder',\n accessorKey: 'folder',\n header: 'Folder name',\n minSize: MIN_SIZE,\n enableSorting: canSort('folderName'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n cell: ({ row, column, table }) => {\n const { value, id, type } = getValueIdType(row, column.id)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n\n return (\n <CellWidget\n rowId={id}\n className={clsx('folder', { loading: row.original.isLoading })}\n columnId={column.id}\n value={value}\n attributeData={{ type: 'string' }}\n isReadOnly={true}\n />\n )\n },\n })\n }\n\n // only show authors column for products\n if (isIncluded('author') && ['version', 'product'].some((s) => scopes.includes(s))) {\n staticColumns.push({\n id: 'author',\n accessorKey: 'author',\n header: 'Author',\n minSize: MIN_SIZE,\n enableSorting: canSort('author'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n sortingFn: withLoadingStateSort(pathSort),\n cell: ({ row, column, table }) => {\n const meta = table.options.meta\n const { value, id, type } = getValueIdType(row, column.id)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n\n return (\n <CellWidget\n rowId={id}\n className={clsx('author', { loading: row.original.isLoading })}\n columnId={column.id}\n value={[value]}\n attributeData={{ type: 'list_of_strings' }}\n options={meta?.options?.assignee}\n isReadOnly={true}\n isInherited={type === 'product'} // products do not have authors, we just show the featured version's author\n />\n )\n },\n })\n }\n\n // version column for versions\n if (isIncluded('version') && ['version', 'product'].some((s) => scopes.includes(s))) {\n staticColumns.push({\n id: 'version',\n accessorKey: 'version',\n header: 'Version',\n minSize: MIN_SIZE,\n enableSorting: canSort('version'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n sortingFn: withLoadingStateSort(pathSort),\n cell: ({ row, column }) => {\n const { value, id, type } = getValueIdType(row, column.id)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n\n let versionValue = row.original.versionName || value\n if (row.original.entityType === 'product') {\n // show summary of versions for products\n versionValue = `${row.original.versionName} (${row.original.versionsCount || 0} versions)`\n }\n\n return (\n <CellWidget\n rowId={id}\n className={clsx('version', { loading: row.original.isLoading })}\n columnId={column.id}\n value={versionValue}\n attributeData={{ type: 'string' }}\n isReadOnly={true}\n />\n )\n },\n })\n }\n\n // product name column for versions and products\n if (isIncluded('product') && ['version', 'product'].some((s) => scopes.includes(s))) {\n staticColumns.push({\n id: 'product',\n accessorKey: 'product',\n header: 'Product name',\n minSize: MIN_SIZE,\n enableSorting: canSort('product'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n sortingFn: withLoadingStateSort(pathSort),\n cell: ({ row, column }) => {\n const { value, id, type } = getValueIdType(row, column.id)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n\n return (\n <CellWidget\n rowId={id}\n className={clsx('product', { loading: row.original.isLoading })}\n columnId={column.id}\n value={value}\n attributeData={{ type: 'string' }}\n isReadOnly={true}\n />\n )\n },\n })\n }\n\n if (isIncluded('tags')) {\n staticColumns.push({\n id: 'tags',\n accessorKey: 'tags',\n header: 'Tags',\n minSize: MIN_SIZE,\n enableSorting: canSort('tags'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n sortingFn: withLoadingStateSort(valueLengthSort),\n cell: ({ row, column, table }) => {\n const meta = table.options.meta\n const { value, id, type } = getValueIdType(row, column.id)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n return (\n <CellWidget\n rowId={id}\n className={clsx('tags', { loading: row.original.isLoading })}\n columnId={column.id}\n value={value}\n attributeData={{ type: 'list_of_strings' }}\n options={meta?.options?.tag}\n isCollapsed={!!row.original.childOnlyMatch}\n onChange={(value) =>\n meta?.updateEntities?.(\n { field: column.id, value, type, rowId: row.id },\n { selection: meta?.selection },\n )\n }\n isReadOnly={meta?.readOnly?.includes(column.id) || isEntityRestricted(type)}\n enableCustomValues\n />\n )\n },\n })\n }\n\n if (isIncluded('createdAt')) {\n staticColumns.push({\n id: 'createdAt',\n accessorKey: 'createdAt',\n header: 'Created at',\n minSize: MIN_SIZE,\n enableSorting: canSort('createdAt'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n sortingFn: withLoadingStateSort(sortingFns.datetime),\n cell: ({ row, column }) => {\n const { value, id, type } = getValueIdType(row, column.id)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n return (\n <CellWidget\n rowId={id}\n className={clsx('createdAt', { loading: row.original.isLoading })}\n columnId={column.id}\n value={value}\n attributeData={{ type: 'datetime' }}\n isCollapsed={!!row.original.childOnlyMatch}\n isReadOnly={true}\n pt={{ date: { showTime: true } }}\n />\n )\n },\n })\n }\n\n if (isIncluded('updatedAt')) {\n staticColumns.push({\n id: 'updatedAt',\n accessorKey: 'updatedAt',\n header: 'Updated at',\n minSize: MIN_SIZE,\n enableSorting: canSort('updatedAt'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n sortingFn: withLoadingStateSort(sortingFns.datetime),\n cell: ({ row, column }) => {\n const { value, id, type } = getValueIdType(row, column.id)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n return (\n <CellWidget\n rowId={id}\n className={clsx('updatedAt', { loading: row.original.isLoading })}\n columnId={column.id}\n value={value}\n attributeData={{ type: 'datetime' }}\n isCollapsed={!!row.original.childOnlyMatch}\n isReadOnly={true}\n pt={{ date: { showTime: true } }}\n />\n )\n },\n })\n }\n\n const attributeColumns: ColumnDef<TableRow>[] = attribs\n .filter((attrib) => {\n // filter out attributes that are out of scope\n if (attrib.scope && !attrib.scope.some((s) => scopes.includes(s))) return false\n\n const columnId = 'attrib_' + attrib.name\n // Check if the specific attribute column is excluded\n // or if all built-in attributes are excluded and this is a built-in attribute\n if (!isIncluded(columnId)) return false\n if (attrib.builtin && !isIncluded('attrib')) return false\n return true\n })\n .map((attrib) => {\n const attribColumn: ColumnDef<TableRow> = {\n id: 'attrib_' + attrib.name,\n accessorKey: 'attrib.' + attrib.name,\n header: attrib.data.title || attrib.name,\n minSize: MIN_SIZE,\n filterFn: 'fuzzy' as FilterFnOption<TableRow>,\n sortingFn: withLoadingStateSort((a, b, c) => attribSort(a, b, c, attrib.data)),\n enableSorting: canSort(attrib.name) && canSort('attrib'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n cell: ({ row, column, table }) => {\n const meta = table.options.meta\n const columnIdParsed = column.id.replace('attrib_', '')\n const { value, id, type } = getValueIdType(row, columnIdParsed, 'attrib')\n const isInherited = !row.original.ownAttrib?.includes(columnIdParsed)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n const outOfScopeAndNoValue =\n !attrib.scope?.includes(type as (typeof attrib.scope)[number]) &&\n (value === null || value === undefined)\n\n // if the attribute is not in scope, we should nothing\n if (outOfScopeAndNoValue) return null\n\n return (\n <CellWidget\n rowId={id}\n className={clsx('attrib', { loading: row.original.isLoading })}\n columnId={column.id}\n value={value}\n attributeData={{ type: attrib.data.type || 'string' }}\n options={attrib.data.enum || []}\n isCollapsed={!!row.original.childOnlyMatch}\n isInherited={isInherited}\n isReadOnly={\n // check attrib is not read only\n attrib.readOnly ||\n // check if there is any other reason the cell should be read only\n meta?.readOnly?.some(\n (id) => id === columnIdParsed || (id === 'attrib' && attrib.builtin),\n )\n }\n onChange={(value) =>\n meta?.updateEntities?.(\n { field: columnIdParsed, value, type, isAttrib: true, rowId: row.id },\n { selection: !!attrib.data.enum?.length ? meta?.selection : undefined },\n )\n }\n />\n )\n },\n }\n return attribColumn\n })\n\n const linkColumns: ColumnDef<TableRow>[] = !includeLinks\n ? []\n : links\n .filter((link) => {\n // Check if the link type is excluded\n if (!isIncluded(link.linkType) || !isIncluded('link')) return false\n // Check if inputType and outputType are in scopes\n if (!scopes.includes(link.inputType) && !scopes.includes(link.outputType)) return false\n return true\n })\n .flatMap((link) => {\n const createLinkColumn = (direction: 'in' | 'out'): ColumnDef<TableRow> => {\n return {\n id: getLinkColumnId(link, direction),\n accessorKey: `links.${getLinkKey(link, direction)}`,\n header: () => (\n <LinkColumnHeader>\n {getLinkLabel(link, direction)}{' '}\n <Icon\n icon={getEntityTypeIcon(direction === 'in' ? link.inputType : link.outputType)}\n />\n </LinkColumnHeader>\n ),\n minSize: MIN_SIZE,\n enableSorting: false,\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n cell: ({ row, column }) => {\n const columnIdParsed = column.id.replace('link_', '')\n\n const { id, value } = getValueIdType(row, columnIdParsed, 'links')\n const cellValue = value?.map((v: any) => v.label)\n const valueData: LinkWidgetData = {\n links: value,\n direction: direction,\n entityId: row.original.entityId || row.original.id,\n entityType: row.original.entityType,\n link: {\n label: link.linkType,\n linkType: link.name,\n targetEntityType: direction === 'in' ? link.inputType : link.outputType,\n },\n }\n\n return (\n <CellWidget\n rowId={id}\n className={clsx('links', { loading: row.original.isLoading })}\n columnId={column.id}\n value={cellValue}\n valueData={valueData}\n folderId={row.original.folderId}\n attributeData={{ type: 'links' }}\n />\n )\n },\n }\n }\n\n return [createLinkColumn('in'), createLinkColumn('out')]\n })\n\n const allColumns = [...staticColumns, ...attributeColumns, ...linkColumns]\n\n // Add extra columns if provided\n if (extraColumns) {\n extraColumns.forEach(({ column, position = -1 }) => {\n if (position >= 0 && position < allColumns.length) {\n allColumns.splice(position, 0, column)\n } else {\n allColumns.push(column)\n }\n })\n }\n\n return allColumns\n}\n\nexport default buildTreeTableColumns\n\nexport const getValueIdType = (\n row: Row<TableRow>,\n field: string,\n nestedField?: keyof TableRow,\n): {\n value: any\n id: string\n type: string\n} => ({\n value: nestedField\n ? (row.original[nestedField as keyof TableRow] as any)?.[field]\n : (row.original[field as keyof TableRow] as any),\n id: row.id,\n type: row.original.entityType,\n})\n"],"names":["isEntityExpandable","entityType","MIN_SIZE","withLoadingStateSort","sortFn","rowA","rowB","args","pathSort","labelA","labelB","valueLengthSort","columnId","valueA","getCellValue","valueB","lengthA","lengthB","attribSort","attrib","indexA","o","sortingFns","getLinkLabel","link","direction","getLinkKey","getLinkColumnId","buildTreeTableColumns","scopes","attribs","links","includeLinks","showHierarchy","options","excluded","excludedSorting","extraColumns","groupBy","nameLabel","staticColumns","isIncluded","id","canSort","ROW_SELECTION_COLUMN_ID","jsx","RowSelectionHeader","row","SelectionCell","column","table","meta","cellId","getCellId","thumbnail","ThumbnailWidget","clsx","value","type","getValueIdType","isEditing","useCellEditing","rowHeight","useColumnSettingsContext","TableCellContent","MetaWidget","NEXT_PAGE_ID","LoadMoreWidget","isExpandable","jsxs","GroupHeaderWidget","EntityNameWidget","getColumnDisplayConfig","CellWidget","a","b","c","s","isEntityRestricted","READ_ONLY","Icon","getEntityTypeIcon","upperFirst","fieldId","folderHasVersions","versionValue","attributeColumns","columnIdParsed","isInherited","linkColumns","createLinkColumn","LinkColumnHeader","cellValue","v","valueData","allColumns","position","field","nestedField"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"buildTreeTableColumns.cjs.js","sources":["../../../../../src/containers/ProjectTreeTable/buildTreeTableColumns.tsx"],"sourcesContent":["import { ColumnDef, FilterFnOption, Row, SortingFn, sortingFns } from '@tanstack/react-table'\nimport { TableRow } from './types/table'\nimport { AttributeData, ProjectTableAttribute, BuiltInFieldOptions } from './types'\nimport {\n CellWidget,\n MetaWidget,\n EntityNameWidget,\n GroupHeaderWidget,\n ThumbnailWidget,\n} from './widgets'\nimport { getCellId, getCellValue } from './utils/cellUtils'\nimport { LinkColumnHeader, TableCellContent } from './ProjectTreeTable.styled'\nimport clsx from 'clsx'\nimport { SelectionCell } from './components/SelectionCell'\nimport RowSelectionHeader from './components/RowSelectionHeader'\nimport { ROW_SELECTION_COLUMN_ID } from './context/SelectionCellsContext'\nimport { TableGroupBy, useCellEditing, useColumnSettingsContext } from './context'\nimport { NEXT_PAGE_ID } from './hooks/useBuildGroupByTableData'\nimport LoadMoreWidget from './widgets/LoadMoreWidget'\nimport { LinkTypeModel } from '@shared/api'\nimport { LinkWidgetData } from './widgets/LinksWidget'\nimport { Icon } from '@ynput/ayon-react-components'\nimport { getEntityTypeIcon } from '@shared/util'\nimport { NameWidgetData } from '@shared/components/RenameForm'\nimport { isEntityRestricted, READ_ONLY } from './utils/restrictedEntity'\nimport { ColumnsConfig, getColumnDisplayConfig } from './types/columnConfig'\nimport { upperFirst } from 'lodash'\n\nexport const isEntityExpandable = (entityType: string) => ['folder', 'product'].includes(entityType)\n\nconst MIN_SIZE = 50\n\n// Wrapper function for sorting that pushes isLoading rows to the bottom\nconst withLoadingStateSort = (sortFn: SortingFn<any>): SortingFn<any> => {\n return (rowA, rowB, ...args) => {\n // If row loading states differ, prioritize non-loading rows\n if (rowA.original.isLoading !== rowB.original.isLoading) {\n return rowA.original.isLoading ? 1 : -1\n }\n // Otherwise, use the original sort function\n return sortFn(rowA, rowB, ...args)\n }\n}\n\nconst pathSort: SortingFn<any> = (rowA, rowB) => {\n const labelA = rowA.original.path || rowA.original.name || ''\n const labelB = rowB.original.path || rowB.original.name || ''\n // sort alphabetically by label\n return labelA.localeCompare(labelB)\n}\n\nconst valueLengthSort: SortingFn<any> = (rowA, rowB, columnId) => {\n const valueA = getCellValue(rowA.original, columnId)\n const valueB = getCellValue(rowB.original, columnId)\n const lengthA = Array.isArray(valueA) ? valueA.length : valueA ? String(valueA).length : 0\n const lengthB = Array.isArray(valueB) ? valueB.length : valueB ? String(valueB).length : 0\n return lengthA - lengthB\n}\n\ntype AttribSortingFn = (rowA: any, rowB: any, columnId: string, attribute?: AttributeData) => number\n// sort by the order of the enum options\nconst attribSort: AttribSortingFn = (rowA, rowB, columnId, attrib) => {\n const valueA = getCellValue(rowA.original, columnId)\n const valueB = getCellValue(rowB.original, columnId)\n // if attrib is defined and has enum options, use them\n if (attrib && attrib.enum) {\n const indexA = attrib.enum.findIndex((o) => o.value === valueA)\n const indexB = attrib.enum.findIndex((o) => o.value === valueB)\n return indexB - indexA < 0 ? 1 : -1\n } else if (attrib?.type === 'datetime') {\n return sortingFns.datetime(rowA, rowB, columnId)\n } else if (attrib?.type === 'boolean') {\n const boolA = valueA === true ? 1 : 0\n const boolB = valueB === true ? 1 : 0\n return boolA - boolB\n } else {\n return sortingFns.alphanumeric(rowA, rowB, columnId)\n }\n}\n\nexport const getLinkLabel = (\n link: Pick<LinkTypeModel, 'linkType'>,\n direction: 'in' | 'out' | string,\n) => `${link.linkType.charAt(0).toUpperCase() + link.linkType.slice(1)} (${direction})`\n\nexport const getLinkKey = (link: Pick<LinkTypeModel, 'name'>, direction: 'in' | 'out' | string) =>\n `${link.name.replaceAll('_', '').replaceAll('-', '').replaceAll('|', '_')}_${direction}`\n\nexport const getLinkColumnId = (\n link: Pick<LinkTypeModel, 'name'>,\n direction: 'in' | 'out' | string,\n) => `link_${getLinkKey(link, direction)}`\n\nexport type DefaultColumns =\n | typeof ROW_SELECTION_COLUMN_ID\n | 'thumbnail'\n | 'name'\n | 'entityType'\n | 'folder'\n | 'status'\n | 'subType'\n | 'assignees'\n | 'tags'\n | 'createdAt'\n | 'updatedAt'\n\nexport type TreeTableExtraColumn = { column: ColumnDef<TableRow>; position?: number }\n\nexport type BuildTreeTableColumnsProps = {\n scopes: string[]\n attribs: ProjectTableAttribute[]\n links: LinkTypeModel[]\n includeLinks?: boolean\n showHierarchy: boolean\n options: BuiltInFieldOptions\n excluded?: (DefaultColumns | string)[]\n excludedSorting?: (DefaultColumns | string)[]\n extraColumns?: TreeTableExtraColumn[]\n groupBy?: TableGroupBy\n nameLabel?: string\n}\n\nconst buildTreeTableColumns = ({\n scopes,\n attribs,\n links = [],\n includeLinks = true,\n showHierarchy,\n options,\n excluded,\n excludedSorting,\n extraColumns,\n groupBy,\n nameLabel = 'Entity',\n}: BuildTreeTableColumnsProps) => {\n const staticColumns: ColumnDef<TableRow>[] = []\n\n // Helper to check if a column should be included\n const isIncluded = (id: DefaultColumns | string) => !excluded?.includes(id)\n const canSort = (id: DefaultColumns | string) => !excludedSorting?.includes(id)\n\n // Conditionally add static columns\n if (isIncluded(ROW_SELECTION_COLUMN_ID)) {\n staticColumns.push({\n id: ROW_SELECTION_COLUMN_ID,\n enableResizing: false,\n enableSorting: false,\n enablePinning: false,\n enableHiding: false,\n\n header: () => <RowSelectionHeader />,\n cell: ({ row }) => {\n if (row.original.entityType === 'group' || row.original.metaType) return null\n return <SelectionCell />\n },\n size: 20,\n })\n }\n\n if (isIncluded('thumbnail')) {\n staticColumns.push({\n id: 'thumbnail',\n header: 'Thumbnail',\n size: 63,\n minSize: 24,\n enableResizing: true,\n enableSorting: false,\n cell: ({ row, column, table }) => {\n if (row.original.entityType === 'group' || row.original.metaType) return null\n const meta = table.options.meta\n if (!meta) return null\n const cellId = getCellId(row.id, column.id)\n let thumbnail = {\n entityId: row.original.entityId || row.id,\n entityType: row.original.entityType,\n updatedAt: row.original.updatedAt,\n }\n // check for thumbnail override\n if (row.original.thumbnail) {\n thumbnail = row.original.thumbnail\n }\n return (\n <ThumbnailWidget\n id={cellId}\n entityId={thumbnail.entityId}\n entityType={thumbnail.entityType}\n updatedAt={thumbnail.updatedAt}\n icon={row.original.icon}\n projectName={meta?.projectName as string}\n className={clsx('thumbnail', {\n loading: row.original.isLoading,\n })}\n isPlayable={row.original.hasReviewables}\n />\n )\n },\n })\n }\n\n if (isIncluded('name')) {\n staticColumns.push({\n id: 'name',\n accessorKey: 'name',\n header: nameLabel,\n minSize: MIN_SIZE,\n sortingFn: withLoadingStateSort(pathSort),\n enableSorting: groupBy ? false : canSort('name'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: groupBy ? false : true,\n cell: ({ row, column, table }) => {\n const { value, id, type } = getValueIdType(row, column.id)\n const meta = table.options.meta\n const { isEditing } = useCellEditing()\n const { rowHeight = 40 } = useColumnSettingsContext()\n const cellId = getCellId(row.id, column.id)\n\n if (row.original.metaType) {\n return (\n <TableCellContent\n id={cellId}\n className={clsx('large', 'readonly', row.original.entityType)}\n style={{\n paddingLeft: `calc(${row.depth * 1}rem + 8px)`,\n pointerEvents: 'none',\n }}\n tabIndex={0}\n >\n <MetaWidget metaType={row.original.metaType} label={row.original.label} />\n </TableCellContent>\n )\n }\n\n if (row.original.entityType === NEXT_PAGE_ID && row.original.group) {\n return (\n <LoadMoreWidget\n id={row.original.group.value}\n onLoadMore={(id) => meta?.loadMoreRows?.(id)}\n />\n )\n }\n\n const isExpandable =\n row.getCanExpand() &&\n !!row.originalSubRows &&\n (isEntityExpandable(row.original.entityType) || !!row.original.group)\n\n return (\n <TableCellContent\n id={cellId}\n className={clsx('large', row.original.entityType, {\n loading: row.original.isLoading,\n hierarchy: showHierarchy,\n })}\n style={{\n paddingLeft: `calc(${row.depth * 1}rem + ${\n isExpandable || !row.getCanExpand() ? 0 : 32\n }px + 8px)`,\n }}\n tabIndex={0}\n >\n {row.original.group ? (\n <GroupHeaderWidget\n id={row.id}\n label={row.original.group.label}\n name={row.original.name}\n icon={row.original.group.icon}\n img={row.original.group.img}\n color={row.original.group.color}\n count={row.original.group.count}\n isExpanded={row.getIsExpanded()}\n isEmpty={row.original.group.count === 0}\n toggleExpanded={row.getToggleExpandedHandler()}\n />\n ) : (\n <EntityNameWidget\n id={row.id}\n label={row.original.label}\n name={row.original.name}\n path={!showHierarchy ? '/' + row.original.parents?.join('/') : undefined}\n icon={row.original.icon}\n type={row.original.entityType}\n isExpandable={isExpandable}\n isExpanded={row.getIsExpanded()}\n toggleExpandAll={() => meta?.toggleExpandAll?.([row.id])}\n toggleExpanded={row.getToggleExpandedHandler()}\n rowHeight={rowHeight}\n columnDisplayConfig={getColumnDisplayConfig(meta?.columnsConfig, 'name')}\n />\n )}\n {isEditing(cellId) && (\n <CellWidget\n rowId={id}\n className={clsx('name', { loading: row.original.isLoading })}\n columnId={column.id}\n value={value}\n valueData={\n {\n name: row.original.name,\n label: row.original.label,\n meta,\n entityRowId: id,\n columnId: column.id,\n hasVersions: !!row.original.hasVersions,\n } as NameWidgetData\n }\n entityType={type}\n attributeData={{ type: 'name' }}\n isCollapsed={!!row.original.childOnlyMatch}\n isReadOnly={meta?.readOnly?.includes(column.id)}\n />\n )}\n </TableCellContent>\n )\n },\n })\n }\n\n if (isIncluded('status')) {\n staticColumns.push({\n id: 'status',\n accessorKey: 'status',\n minSize: MIN_SIZE,\n header: 'Status',\n sortingFn: withLoadingStateSort((a, b, c) =>\n attribSort(a, b, c, { enum: options.status, type: 'string' }),\n ),\n sortDescFirst: true,\n enableSorting: canSort('status'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n cell: ({ row, column, table }) => {\n const { value, id, type } = getValueIdType(row, column.id)\n const meta = table.options.meta\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n\n return (\n <CellWidget\n rowId={id}\n className={clsx('status', { loading: row.original.isLoading })}\n columnId={column.id}\n value={value}\n attributeData={{ type: 'string' }}\n options={meta?.options?.status.filter((s) => s.scope?.includes(type))}\n isCollapsed={!!row.original.childOnlyMatch}\n onChange={(value) =>\n meta?.updateEntities?.(\n { field: column.id, value, type, rowId: id },\n { selection: meta?.selection },\n )\n }\n isReadOnly={meta?.readOnly?.includes(column.id) || isEntityRestricted(type)}\n pt={{\n enum: {\n pt: {\n template: {\n pt: {\n icon: {\n style: {\n fontVariationSettings: \"'FILL' 1, 'wght' 200, 'GRAD' 200, 'opsz' 20\",\n },\n },\n },\n },\n },\n },\n }}\n />\n )\n },\n })\n }\n\n if (isIncluded('entityType')) {\n staticColumns.push({\n id: 'entityType',\n accessorKey: 'entityType',\n header: 'Entity Type',\n minSize: 20,\n enableSorting: false,\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n sortingFn: withLoadingStateSort(sortingFns.alphanumeric),\n cell: ({ row, column, table }) => {\n const { value, id, type } = getValueIdType(row, column.id)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n const cellId = getCellId(row.id, column.id)\n\n return (\n <TableCellContent\n id={cellId}\n className={clsx('entityType', READ_ONLY, type, { loading: row.original.isLoading })}\n tabIndex={0}\n >\n <Icon icon={getEntityTypeIcon(type)} /> {upperFirst(value)}\n </TableCellContent>\n )\n },\n })\n }\n\n if (isIncluded('subType')) {\n staticColumns.push({\n id: 'subType',\n accessorKey: 'subType',\n header: scopes.includes('product') || scopes.includes('version') ? 'Product type' : 'Type',\n minSize: MIN_SIZE,\n enableSorting: canSort('subType'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n sortingFn: withLoadingStateSort((a, b, c) =>\n attribSort(a, b, c, { enum: [...options.folderType, ...options.taskType], type: 'string' }),\n ),\n cell: ({ row, column, table }) => {\n const { value, id, type } = getValueIdType(row, column.id)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n const fieldId = type === 'folder' ? 'folderType' : 'taskType'\n const meta = table.options.meta\n const folderHasVersions = type === 'folder' && row.original.hasVersions\n return (\n <CellWidget\n rowId={id}\n className={clsx('subType', { loading: row.original.isLoading })}\n columnId={column.id}\n value={value}\n attributeData={{ type: 'string' }}\n options={\n type === 'folder'\n ? meta?.options?.folderType\n : type === 'task'\n ? meta?.options?.taskType\n : []\n }\n isCollapsed={!!row.original.childOnlyMatch}\n onChange={(value) =>\n meta?.updateEntities?.(\n { field: fieldId, value, type, rowId: row.id },\n { selection: meta?.selection },\n )\n }\n isReadOnly={\n meta?.readOnly?.includes(column.id) ||\n meta?.readOnly?.includes(fieldId) ||\n folderHasVersions\n }\n tooltip={\n folderHasVersions\n ? 'Folder type cannot be edited when versions exist within the folder'\n : undefined\n }\n />\n )\n },\n })\n }\n\n if (isIncluded('assignees')) {\n staticColumns.push({\n id: 'assignees',\n accessorKey: 'assignees',\n header: 'Assignees',\n minSize: MIN_SIZE,\n enableSorting: canSort('assignees'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n sortingFn: withLoadingStateSort(valueLengthSort),\n cell: ({ row, column, table }) => {\n const meta = table.options.meta\n const { value, id, type } = getValueIdType(row, column.id)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n\n if (type === 'folder')\n return (\n <CellWidget\n rowId={id}\n className={clsx('assignees', { loading: row.original.isLoading })}\n columnId={column.id}\n value=\"\"\n isPlaceholder\n />\n )\n return (\n <CellWidget\n rowId={id}\n className={clsx('assignees', { loading: row.original.isLoading })}\n columnId={column.id}\n value={value}\n attributeData={{ type: 'list_of_strings' }}\n options={meta?.options?.assignee}\n isCollapsed={!!row.original.childOnlyMatch}\n onChange={(value) =>\n meta?.updateEntities?.(\n { field: column.id, value, type, rowId: row.id },\n { selection: meta?.selection },\n )\n }\n isReadOnly={meta?.readOnly?.includes(column.id) || isEntityRestricted(type)}\n pt={{\n enum: {\n multiSelectClose: value?.length === 0, // close the dropdown on first assignment\n search: true, // enable search at all times\n multipleOverride: false,\n },\n }}\n />\n )\n },\n })\n }\n\n if (isIncluded('folder')) {\n staticColumns.push({\n id: 'folder',\n accessorKey: 'folder',\n header: 'Folder name',\n minSize: MIN_SIZE,\n enableSorting: canSort('folderName'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n cell: ({ row, column, table }) => {\n const { value, id, type } = getValueIdType(row, column.id)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n\n return (\n <CellWidget\n rowId={id}\n className={clsx('folder', { loading: row.original.isLoading })}\n columnId={column.id}\n value={value}\n attributeData={{ type: 'string' }}\n isReadOnly={true}\n />\n )\n },\n })\n }\n\n // only show authors column for products\n if (isIncluded('author') && ['version', 'product'].some((s) => scopes.includes(s))) {\n staticColumns.push({\n id: 'author',\n accessorKey: 'author',\n header: 'Author',\n minSize: MIN_SIZE,\n enableSorting: canSort('author'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n sortingFn: withLoadingStateSort(pathSort),\n cell: ({ row, column, table }) => {\n const meta = table.options.meta\n const { value, id, type } = getValueIdType(row, column.id)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n\n return (\n <CellWidget\n rowId={id}\n className={clsx('author', { loading: row.original.isLoading })}\n columnId={column.id}\n value={[value]}\n attributeData={{ type: 'list_of_strings' }}\n options={meta?.options?.assignee}\n isReadOnly={true}\n isInherited={type === 'product'} // products do not have authors, we just show the featured version's author\n />\n )\n },\n })\n }\n\n // version column for versions\n if (isIncluded('version') && ['version', 'product'].some((s) => scopes.includes(s))) {\n staticColumns.push({\n id: 'version',\n accessorKey: 'version',\n header: 'Version',\n minSize: MIN_SIZE,\n enableSorting: canSort('version'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n sortingFn: withLoadingStateSort(pathSort),\n cell: ({ row, column }) => {\n const { value, id, type } = getValueIdType(row, column.id)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n\n let versionValue = row.original.versionName || value\n if (row.original.entityType === 'product') {\n // show summary of versions for products\n versionValue = `${row.original.versionName} (${row.original.versionsCount || 0} versions)`\n }\n\n return (\n <CellWidget\n rowId={id}\n className={clsx('version', { loading: row.original.isLoading })}\n columnId={column.id}\n value={versionValue}\n attributeData={{ type: 'string' }}\n isReadOnly={true}\n />\n )\n },\n })\n }\n\n // product name column for versions and products\n if (isIncluded('product') && ['version', 'product'].some((s) => scopes.includes(s))) {\n staticColumns.push({\n id: 'product',\n accessorKey: 'product',\n header: 'Product name',\n minSize: MIN_SIZE,\n enableSorting: canSort('product'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n sortingFn: withLoadingStateSort(pathSort),\n cell: ({ row, column }) => {\n const { value, id, type } = getValueIdType(row, column.id)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n\n return (\n <CellWidget\n rowId={id}\n className={clsx('product', { loading: row.original.isLoading })}\n columnId={column.id}\n value={value}\n attributeData={{ type: 'string' }}\n isReadOnly={true}\n />\n )\n },\n })\n }\n\n if (isIncluded('tags')) {\n staticColumns.push({\n id: 'tags',\n accessorKey: 'tags',\n header: 'Tags',\n minSize: MIN_SIZE,\n enableSorting: canSort('tags'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n sortingFn: withLoadingStateSort(valueLengthSort),\n cell: ({ row, column, table }) => {\n const meta = table.options.meta\n const { value, id, type } = getValueIdType(row, column.id)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n return (\n <CellWidget\n rowId={id}\n className={clsx('tags', { loading: row.original.isLoading })}\n columnId={column.id}\n value={value}\n attributeData={{ type: 'list_of_strings' }}\n options={meta?.options?.tag}\n isCollapsed={!!row.original.childOnlyMatch}\n onChange={(value) =>\n meta?.updateEntities?.(\n { field: column.id, value, type, rowId: row.id },\n { selection: meta?.selection },\n )\n }\n isReadOnly={meta?.readOnly?.includes(column.id) || isEntityRestricted(type)}\n enableCustomValues\n />\n )\n },\n })\n }\n\n if (isIncluded('createdAt')) {\n staticColumns.push({\n id: 'createdAt',\n accessorKey: 'createdAt',\n header: 'Created at',\n minSize: MIN_SIZE,\n enableSorting: canSort('createdAt'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n sortingFn: withLoadingStateSort(sortingFns.datetime),\n cell: ({ row, column }) => {\n const { value, id, type } = getValueIdType(row, column.id)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n return (\n <CellWidget\n rowId={id}\n className={clsx('createdAt', { loading: row.original.isLoading })}\n columnId={column.id}\n value={value}\n attributeData={{ type: 'datetime' }}\n isCollapsed={!!row.original.childOnlyMatch}\n isReadOnly={true}\n pt={{ date: { showTime: true } }}\n />\n )\n },\n })\n }\n\n if (isIncluded('updatedAt')) {\n staticColumns.push({\n id: 'updatedAt',\n accessorKey: 'updatedAt',\n header: 'Updated at',\n minSize: MIN_SIZE,\n enableSorting: canSort('updatedAt'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n sortingFn: withLoadingStateSort(sortingFns.datetime),\n cell: ({ row, column }) => {\n const { value, id, type } = getValueIdType(row, column.id)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n return (\n <CellWidget\n rowId={id}\n className={clsx('updatedAt', { loading: row.original.isLoading })}\n columnId={column.id}\n value={value}\n attributeData={{ type: 'datetime' }}\n isCollapsed={!!row.original.childOnlyMatch}\n isReadOnly={true}\n pt={{ date: { showTime: true } }}\n />\n )\n },\n })\n }\n\n const attributeColumns: ColumnDef<TableRow>[] = attribs\n .filter((attrib) => {\n // filter out attributes that are out of scope\n if (attrib.scope && !attrib.scope.some((s) => scopes.includes(s))) return false\n\n const columnId = 'attrib_' + attrib.name\n // Check if the specific attribute column is excluded\n // or if all built-in attributes are excluded and this is a built-in attribute\n if (!isIncluded(columnId)) return false\n if (attrib.builtin && !isIncluded('attrib')) return false\n return true\n })\n .map((attrib) => {\n const attribColumn: ColumnDef<TableRow> = {\n id: 'attrib_' + attrib.name,\n accessorKey: 'attrib.' + attrib.name,\n header: attrib.data.title || attrib.name,\n minSize: MIN_SIZE,\n filterFn: 'fuzzy' as FilterFnOption<TableRow>,\n sortingFn: withLoadingStateSort((a, b, c) => attribSort(a, b, c, attrib.data)),\n enableSorting: canSort(attrib.name) && canSort('attrib'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n cell: ({ row, column, table }) => {\n const meta = table.options.meta\n const columnIdParsed = column.id.replace('attrib_', '')\n const { value, id, type } = getValueIdType(row, columnIdParsed, 'attrib')\n const isInherited = !row.original.ownAttrib?.includes(columnIdParsed)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n const outOfScopeAndNoValue =\n !attrib.scope?.includes(type as (typeof attrib.scope)[number]) &&\n (value === null || value === undefined)\n\n // if the attribute is not in scope, we should nothing\n if (outOfScopeAndNoValue) return null\n\n return (\n <CellWidget\n rowId={id}\n className={clsx('attrib', { loading: row.original.isLoading })}\n columnId={column.id}\n value={value}\n attributeData={{ type: attrib.data.type || 'string' }}\n options={attrib.data.enum || []}\n isCollapsed={!!row.original.childOnlyMatch}\n isInherited={isInherited}\n isReadOnly={\n // check attrib is not read only\n attrib.readOnly ||\n // check if there is any other reason the cell should be read only\n meta?.readOnly?.some(\n (id) => id === columnIdParsed || (id === 'attrib' && attrib.builtin),\n )\n }\n onChange={(value) =>\n meta?.updateEntities?.(\n { field: columnIdParsed, value, type, isAttrib: true, rowId: row.id },\n { selection: !!attrib.data.enum?.length ? meta?.selection : undefined },\n )\n }\n />\n )\n },\n }\n return attribColumn\n })\n\n const linkColumns: ColumnDef<TableRow>[] = !includeLinks\n ? []\n : links\n .filter((link) => {\n // Check if the link type is excluded\n if (!isIncluded(link.linkType) || !isIncluded('link')) return false\n // Check if inputType and outputType are in scopes\n if (!scopes.includes(link.inputType) && !scopes.includes(link.outputType)) return false\n return true\n })\n .flatMap((link) => {\n const createLinkColumn = (direction: 'in' | 'out'): ColumnDef<TableRow> => {\n return {\n id: getLinkColumnId(link, direction),\n accessorKey: `links.${getLinkKey(link, direction)}`,\n header: () => (\n <LinkColumnHeader>\n {getLinkLabel(link, direction)}{' '}\n <Icon\n icon={getEntityTypeIcon(direction === 'in' ? link.inputType : link.outputType)}\n />\n </LinkColumnHeader>\n ),\n minSize: MIN_SIZE,\n enableSorting: false,\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n cell: ({ row, column }) => {\n const columnIdParsed = column.id.replace('link_', '')\n\n const { id, value } = getValueIdType(row, columnIdParsed, 'links')\n const cellValue = value?.map((v: any) => v.label)\n const valueData: LinkWidgetData = {\n links: value,\n direction: direction,\n entityId: row.original.entityId || row.original.id,\n entityType: row.original.entityType,\n link: {\n label: link.linkType,\n linkType: link.name,\n targetEntityType: direction === 'in' ? link.inputType : link.outputType,\n },\n }\n\n return (\n <CellWidget\n rowId={id}\n className={clsx('links', { loading: row.original.isLoading })}\n columnId={column.id}\n value={cellValue}\n valueData={valueData}\n folderId={row.original.folderId}\n attributeData={{ type: 'links' }}\n />\n )\n },\n }\n }\n\n return [createLinkColumn('in'), createLinkColumn('out')]\n })\n\n const allColumns = [...staticColumns, ...attributeColumns, ...linkColumns]\n\n // Add extra columns if provided\n if (extraColumns) {\n extraColumns.forEach(({ column, position = -1 }) => {\n if (position >= 0 && position < allColumns.length) {\n allColumns.splice(position, 0, column)\n } else {\n allColumns.push(column)\n }\n })\n }\n\n return allColumns\n}\n\nexport default buildTreeTableColumns\n\nexport const getValueIdType = (\n row: Row<TableRow>,\n field: string,\n nestedField?: keyof TableRow,\n): {\n value: any\n id: string\n type: string\n} => ({\n value: nestedField\n ? (row.original[nestedField as keyof TableRow] as any)?.[field]\n : (row.original[field as keyof TableRow] as any),\n id: row.id,\n type: row.original.entityType,\n})\n"],"names":["isEntityExpandable","entityType","MIN_SIZE","withLoadingStateSort","sortFn","rowA","rowB","args","pathSort","labelA","labelB","valueLengthSort","columnId","valueA","getCellValue","valueB","lengthA","lengthB","attribSort","attrib","indexA","o","sortingFns","getLinkLabel","link","direction","getLinkKey","getLinkColumnId","buildTreeTableColumns","scopes","attribs","links","includeLinks","showHierarchy","options","excluded","excludedSorting","extraColumns","groupBy","nameLabel","staticColumns","isIncluded","id","canSort","ROW_SELECTION_COLUMN_ID","jsx","RowSelectionHeader","row","SelectionCell","column","table","meta","cellId","getCellId","thumbnail","ThumbnailWidget","clsx","value","type","getValueIdType","isEditing","useCellEditing","rowHeight","useColumnSettingsContext","TableCellContent","MetaWidget","NEXT_PAGE_ID","LoadMoreWidget","isExpandable","jsxs","GroupHeaderWidget","EntityNameWidget","getColumnDisplayConfig","CellWidget","a","b","c","s","isEntityRestricted","READ_ONLY","Icon","getEntityTypeIcon","upperFirst","fieldId","folderHasVersions","versionValue","attributeColumns","columnIdParsed","isInherited","linkColumns","createLinkColumn","LinkColumnHeader","cellValue","v","valueData","allColumns","position","field","nestedField"],"mappings":"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"}
|
|
@@ -262,13 +262,13 @@ const pi = (l) => ["folder", "product"].includes(l), I = 50, x = (l) => (s, g, .
|
|
|
262
262
|
const g = l.original.path || l.original.name || "", c = s.original.path || s.original.name || "";
|
|
263
263
|
return g.localeCompare(c);
|
|
264
264
|
}, B = (l, s, g) => {
|
|
265
|
-
const c = D(l.original, g), S = D(s.original, g), C = Array.isArray(c) ? c.length : c ? String(c).length : 0,
|
|
266
|
-
return C -
|
|
265
|
+
const c = D(l.original, g), S = D(s.original, g), C = Array.isArray(c) ? c.length : c ? String(c).length : 0, R = Array.isArray(S) ? S.length : S ? String(S).length : 0;
|
|
266
|
+
return C - R;
|
|
267
267
|
}, K = (l, s, g, c) => {
|
|
268
268
|
const S = D(l.original, g), C = D(s.original, g);
|
|
269
269
|
if (c && c.enum) {
|
|
270
|
-
const
|
|
271
|
-
return c.enum.findIndex((L) => L.value === C) -
|
|
270
|
+
const R = c.enum.findIndex((L) => L.value === S);
|
|
271
|
+
return c.enum.findIndex((L) => L.value === C) - R < 0 ? 1 : -1;
|
|
272
272
|
} else return c?.type === "datetime" ? A.datetime(l, s, g) : c?.type === "boolean" ? (S === !0 ? 1 : 0) - (C === !0 ? 1 : 0) : A.alphanumeric(l, s, g);
|
|
273
273
|
}, si = (l, s) => `${l.linkType.charAt(0).toUpperCase() + l.linkType.slice(1)} (${s})`, G = (l, s) => `${l.name.replaceAll("_", "").replaceAll("-", "").replaceAll("|", "_")}_${s}`, di = (l, s) => `link_${G(l, s)}`, to = ({
|
|
274
274
|
scopes: l,
|
|
@@ -277,13 +277,13 @@ const pi = (l) => ["folder", "product"].includes(l), I = 50, x = (l) => (s, g, .
|
|
|
277
277
|
includeLinks: c = !0,
|
|
278
278
|
showHierarchy: S,
|
|
279
279
|
options: C,
|
|
280
|
-
excluded:
|
|
280
|
+
excluded: R,
|
|
281
281
|
excludedSorting: P,
|
|
282
282
|
extraColumns: L,
|
|
283
283
|
groupBy: M,
|
|
284
284
|
nameLabel: U = "Entity"
|
|
285
285
|
}) => {
|
|
286
|
-
const y = [], m = (i) => !
|
|
286
|
+
const y = [], m = (i) => !R?.includes(i), h = (i) => !P?.includes(i);
|
|
287
287
|
m(W) && y.push({
|
|
288
288
|
id: W,
|
|
289
289
|
enableResizing: !1,
|
|
@@ -337,7 +337,7 @@ const pi = (l) => ["folder", "product"].includes(l), I = 50, x = (l) => (s, g, .
|
|
|
337
337
|
enablePinning: !0,
|
|
338
338
|
enableHiding: !M,
|
|
339
339
|
cell: ({ row: i, column: e, table: t }) => {
|
|
340
|
-
const { value: n, id: o, type: r } = b(i, e.id), a = t.options.meta, { isEditing: d } = ti(), { rowHeight:
|
|
340
|
+
const { value: n, id: o, type: r } = b(i, e.id), a = t.options.meta, { isEditing: d } = ti(), { rowHeight: E = 40 } = ri(), v = H(i.id, e.id);
|
|
341
341
|
if (i.original.metaType)
|
|
342
342
|
return /* @__PURE__ */ p.jsx(
|
|
343
343
|
_,
|
|
@@ -385,7 +385,7 @@ const pi = (l) => ["folder", "product"].includes(l), I = 50, x = (l) => (s, g, .
|
|
|
385
385
|
color: i.original.group.color,
|
|
386
386
|
count: i.original.group.count,
|
|
387
387
|
isExpanded: i.getIsExpanded(),
|
|
388
|
-
isEmpty: i.
|
|
388
|
+
isEmpty: i.original.group.count === 0,
|
|
389
389
|
toggleExpanded: i.getToggleExpandedHandler()
|
|
390
390
|
}
|
|
391
391
|
) : /* @__PURE__ */ p.jsx(
|
|
@@ -401,7 +401,7 @@ const pi = (l) => ["folder", "product"].includes(l), I = 50, x = (l) => (s, g, .
|
|
|
401
401
|
isExpanded: i.getIsExpanded(),
|
|
402
402
|
toggleExpandAll: () => a?.toggleExpandAll?.([i.id]),
|
|
403
403
|
toggleExpanded: i.getToggleExpandedHandler(),
|
|
404
|
-
rowHeight:
|
|
404
|
+
rowHeight: E,
|
|
405
405
|
columnDisplayConfig: ai(a?.columnsConfig, "name")
|
|
406
406
|
}
|
|
407
407
|
),
|
|
@@ -521,7 +521,7 @@ const pi = (l) => ["folder", "product"].includes(l), I = 50, x = (l) => (s, g, .
|
|
|
521
521
|
cell: ({ row: i, column: e, table: t }) => {
|
|
522
522
|
const { value: n, id: o, type: r } = b(i, e.id);
|
|
523
523
|
if (["group", T].includes(r) || i.original.metaType) return null;
|
|
524
|
-
const a = r === "folder" ? "folderType" : "taskType", d = t.options.meta,
|
|
524
|
+
const a = r === "folder" ? "folderType" : "taskType", d = t.options.meta, E = r === "folder" && i.original.hasVersions;
|
|
525
525
|
return /* @__PURE__ */ p.jsx(
|
|
526
526
|
f,
|
|
527
527
|
{
|
|
@@ -536,8 +536,8 @@ const pi = (l) => ["folder", "product"].includes(l), I = 50, x = (l) => (s, g, .
|
|
|
536
536
|
{ field: a, value: v, type: r, rowId: i.id },
|
|
537
537
|
{ selection: d?.selection }
|
|
538
538
|
),
|
|
539
|
-
isReadOnly: d?.readOnly?.includes(e.id) || d?.readOnly?.includes(a) ||
|
|
540
|
-
tooltip:
|
|
539
|
+
isReadOnly: d?.readOnly?.includes(e.id) || d?.readOnly?.includes(a) || E,
|
|
540
|
+
tooltip: E ? "Folder type cannot be edited when versions exist within the folder" : void 0
|
|
541
541
|
}
|
|
542
542
|
);
|
|
543
543
|
}
|
|
@@ -788,11 +788,11 @@ const pi = (l) => ["folder", "product"].includes(l), I = 50, x = (l) => (s, g, .
|
|
|
788
788
|
enablePinning: !0,
|
|
789
789
|
enableHiding: !0,
|
|
790
790
|
cell: ({ row: t, column: n, table: o }) => {
|
|
791
|
-
const r = o.options.meta, a = n.id.replace("attrib_", ""), { value: d, id:
|
|
791
|
+
const r = o.options.meta, a = n.id.replace("attrib_", ""), { value: d, id: E, type: v } = b(t, a, "attrib"), z = !t.original.ownAttrib?.includes(a);
|
|
792
792
|
return ["group", T].includes(v) || t.original.metaType || !i.scope?.includes(v) && d == null ? null : /* @__PURE__ */ p.jsx(
|
|
793
793
|
f,
|
|
794
794
|
{
|
|
795
|
-
rowId:
|
|
795
|
+
rowId: E,
|
|
796
796
|
className: u("attrib", { loading: t.original.isLoading }),
|
|
797
797
|
columnId: n.id,
|
|
798
798
|
value: d,
|
|
@@ -834,7 +834,7 @@ const pi = (l) => ["folder", "product"].includes(l), I = 50, x = (l) => (s, g, .
|
|
|
834
834
|
enablePinning: !0,
|
|
835
835
|
enableHiding: !0,
|
|
836
836
|
cell: ({ row: n, column: o }) => {
|
|
837
|
-
const r = o.id.replace("link_", ""), { id: a, value: d } = b(n, r, "links"),
|
|
837
|
+
const r = o.id.replace("link_", ""), { id: a, value: d } = b(n, r, "links"), E = d?.map((z) => z.label), v = {
|
|
838
838
|
links: d,
|
|
839
839
|
direction: t,
|
|
840
840
|
entityId: n.original.entityId || n.original.id,
|
|
@@ -851,7 +851,7 @@ const pi = (l) => ["folder", "product"].includes(l), I = 50, x = (l) => (s, g, .
|
|
|
851
851
|
rowId: a,
|
|
852
852
|
className: u("links", { loading: n.original.isLoading }),
|
|
853
853
|
columnId: o.id,
|
|
854
|
-
value:
|
|
854
|
+
value: E,
|
|
855
855
|
valueData: v,
|
|
856
856
|
folderId: n.original.folderId,
|
|
857
857
|
attributeData: { type: "links" }
|