@ynput/ayon-frontend-shared 0.2.28 → 0.2.30
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/DetailsPanel.cjs.js +1 -1
- package/dist/DetailsPanel.es.js +31 -28
- package/dist/DetailsPanel.es.js.map +1 -1
- package/dist/ProjectTreeTable.cjs.js +1 -1
- package/dist/ProjectTreeTable.es.js +51 -49
- package/dist/ProjectTreeTable.es.js.map +1 -1
- package/dist/Views.cjs.js.map +1 -1
- package/dist/Views.es.js.map +1 -1
- package/dist/api.cjs.js +1 -1
- package/dist/api.es.js +225 -220
- package/dist/api.es.js.map +1 -1
- package/dist/components.cjs.js +1 -1
- package/dist/components.es.js +90 -89
- package/dist/components.es.js.map +1 -1
- package/dist/context.cjs.js +1 -1
- package/dist/context.es.js +23 -19
- package/dist/context.es.js.map +1 -1
- package/dist/hooks.cjs.js +1 -1
- package/dist/hooks.es.js +16 -12
- package/dist/hooks.es.js.map +1 -1
- package/dist/index.cjs.js +1 -1
- package/dist/index.es.js +17 -15
- package/dist/index.es.js.map +1 -1
- package/dist/node_modules/@ungap/structured-clone/esm/deserialize.cjs.js +2 -0
- package/dist/node_modules/@ungap/structured-clone/esm/deserialize.cjs.js.map +1 -0
- package/dist/node_modules/@ungap/structured-clone/esm/deserialize.es.js +63 -0
- package/dist/node_modules/@ungap/structured-clone/esm/deserialize.es.js.map +1 -0
- package/dist/node_modules/@ungap/structured-clone/esm/index.cjs.js +2 -0
- package/dist/node_modules/@ungap/structured-clone/esm/index.cjs.js.map +1 -0
- package/dist/node_modules/@ungap/structured-clone/esm/index.es.js +12 -0
- package/dist/node_modules/@ungap/structured-clone/esm/index.es.js.map +1 -0
- package/dist/node_modules/@ungap/structured-clone/esm/serialize.cjs.js +2 -0
- package/dist/node_modules/@ungap/structured-clone/esm/serialize.cjs.js.map +1 -0
- package/dist/node_modules/@ungap/structured-clone/esm/serialize.es.js +107 -0
- package/dist/node_modules/@ungap/structured-clone/esm/serialize.es.js.map +1 -0
- package/dist/node_modules/@ungap/structured-clone/esm/types.cjs.js +2 -0
- package/dist/node_modules/@ungap/structured-clone/esm/types.cjs.js.map +1 -0
- package/dist/node_modules/@ungap/structured-clone/esm/types.es.js +14 -0
- package/dist/node_modules/@ungap/structured-clone/esm/types.es.js.map +1 -0
- package/dist/node_modules/devlop/lib/default.cjs.js +2 -0
- package/dist/node_modules/devlop/lib/default.cjs.js.map +1 -0
- package/dist/node_modules/devlop/lib/default.es.js +6 -0
- package/dist/node_modules/devlop/lib/default.es.js.map +1 -0
- package/dist/node_modules/entities/dist/esm/decode-codepoint.cjs.js +2 -0
- package/dist/node_modules/entities/dist/esm/decode-codepoint.cjs.js.map +1 -0
- package/dist/node_modules/entities/dist/esm/decode-codepoint.es.js +39 -0
- package/dist/node_modules/entities/dist/esm/decode-codepoint.es.js.map +1 -0
- package/dist/node_modules/entities/dist/esm/decode.cjs.js +2 -0
- package/dist/node_modules/entities/dist/esm/decode.cjs.js.map +1 -0
- package/dist/node_modules/entities/dist/esm/decode.es.js +246 -0
- package/dist/node_modules/entities/dist/esm/decode.es.js.map +1 -0
- package/dist/node_modules/entities/dist/esm/generated/decode-data-html.cjs.js +2 -0
- package/dist/node_modules/entities/dist/esm/generated/decode-data-html.cjs.js.map +1 -0
- package/dist/node_modules/entities/dist/esm/generated/decode-data-html.es.js +8 -0
- package/dist/node_modules/entities/dist/esm/generated/decode-data-html.es.js.map +1 -0
- package/dist/node_modules/hast-util-raw/lib/index.cjs.js +2 -0
- package/dist/node_modules/hast-util-raw/lib/index.cjs.js.map +1 -0
- package/dist/node_modules/hast-util-raw/lib/index.es.js +218 -0
- package/dist/node_modules/hast-util-raw/lib/index.es.js.map +1 -0
- package/dist/node_modules/hast-util-raw/node_modules/hast-util-from-parse5/lib/index.cjs.js +2 -0
- package/dist/node_modules/hast-util-raw/node_modules/hast-util-from-parse5/lib/index.cjs.js.map +1 -0
- package/dist/node_modules/hast-util-raw/node_modules/hast-util-from-parse5/lib/index.es.js +146 -0
- package/dist/node_modules/hast-util-raw/node_modules/hast-util-from-parse5/lib/index.es.js.map +1 -0
- package/dist/node_modules/hast-util-raw/node_modules/hast-util-parse-selector/lib/index.cjs.js +2 -0
- package/dist/node_modules/hast-util-raw/node_modules/hast-util-parse-selector/lib/index.cjs.js.map +1 -0
- package/dist/node_modules/hast-util-raw/node_modules/hast-util-parse-selector/lib/index.es.js +21 -0
- package/dist/node_modules/hast-util-raw/node_modules/hast-util-parse-selector/lib/index.es.js.map +1 -0
- package/dist/node_modules/hast-util-raw/node_modules/hastscript/lib/create-h.cjs.js +2 -0
- package/dist/node_modules/hast-util-raw/node_modules/hastscript/lib/create-h.cjs.js.map +1 -0
- package/dist/node_modules/hast-util-raw/node_modules/hastscript/lib/create-h.es.js +113 -0
- package/dist/node_modules/hast-util-raw/node_modules/hastscript/lib/create-h.es.js.map +1 -0
- package/dist/node_modules/hast-util-raw/node_modules/hastscript/lib/index.cjs.js +2 -0
- package/dist/node_modules/hast-util-raw/node_modules/hastscript/lib/index.cjs.js.map +1 -0
- package/dist/node_modules/hast-util-raw/node_modules/hastscript/lib/index.es.js +9 -0
- package/dist/node_modules/hast-util-raw/node_modules/hastscript/lib/index.es.js.map +1 -0
- package/dist/node_modules/hast-util-raw/node_modules/hastscript/lib/svg-case-sensitive-tag-names.cjs.js +2 -0
- package/dist/node_modules/hast-util-raw/node_modules/hastscript/lib/svg-case-sensitive-tag-names.cjs.js.map +1 -0
- package/dist/node_modules/hast-util-raw/node_modules/hastscript/lib/svg-case-sensitive-tag-names.es.js +45 -0
- package/dist/node_modules/hast-util-raw/node_modules/hastscript/lib/svg-case-sensitive-tag-names.es.js.map +1 -0
- package/dist/node_modules/hast-util-raw/node_modules/html-void-elements/index.cjs.js +2 -0
- package/dist/node_modules/hast-util-raw/node_modules/html-void-elements/index.cjs.js.map +1 -0
- package/dist/node_modules/hast-util-raw/node_modules/html-void-elements/index.es.js +26 -0
- package/dist/node_modules/hast-util-raw/node_modules/html-void-elements/index.es.js.map +1 -0
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/doctype.cjs.js +2 -0
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/doctype.cjs.js.map +1 -0
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/doctype.es.js +99 -0
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/doctype.es.js.map +1 -0
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/error-codes.cjs.js +2 -0
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/error-codes.cjs.js.map +1 -0
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/error-codes.es.js +8 -0
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/error-codes.es.js.map +1 -0
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/foreign-content.cjs.js +2 -0
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/foreign-content.cjs.js.map +1 -0
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/foreign-content.es.js +211 -0
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/foreign-content.es.js.map +1 -0
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/html.cjs.js +2 -0
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/html.cjs.js.map +1 -0
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/html.es.js +251 -0
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/html.es.js.map +1 -0
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/token.cjs.js +2 -0
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/token.cjs.js.map +1 -0
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/token.es.js +15 -0
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/token.es.js.map +1 -0
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/unicode.cjs.js +2 -0
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/unicode.cjs.js.map +1 -0
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/unicode.es.js +74 -0
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/unicode.es.js.map +1 -0
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/parser/formatting-element-list.cjs.js +2 -0
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/parser/formatting-element-list.cjs.js.map +1 -0
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/parser/formatting-element-list.es.js +85 -0
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/parser/formatting-element-list.es.js.map +1 -0
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/parser/index.cjs.js +2 -0
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/parser/index.cjs.js.map +1 -0
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/parser/index.es.js +2272 -0
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/parser/index.es.js.map +1 -0
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/parser/open-element-stack.cjs.js +2 -0
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/parser/open-element-stack.cjs.js.map +1 -0
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/parser/open-element-stack.es.js +241 -0
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/parser/open-element-stack.es.js.map +1 -0
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/serializer/index.cjs.js +2 -0
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/serializer/index.cjs.js.map +1 -0
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/serializer/index.es.js +3 -0
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/serializer/index.es.js.map +1 -0
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/tokenizer/index.cjs.js +2 -0
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/tokenizer/index.cjs.js.map +1 -0
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/tokenizer/index.es.js +1941 -0
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/tokenizer/index.es.js.map +1 -0
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/tokenizer/preprocessor.cjs.js +2 -0
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/tokenizer/preprocessor.cjs.js.map +1 -0
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/tokenizer/preprocessor.es.js +89 -0
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/tokenizer/preprocessor.es.js.map +1 -0
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/tree-adapters/default.cjs.js +2 -0
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/tree-adapters/default.cjs.js.map +1 -0
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/tree-adapters/default.es.js +163 -0
- package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/tree-adapters/default.es.js.map +1 -0
- package/dist/node_modules/hast-util-raw/node_modules/property-information/index.cjs.js +2 -0
- package/dist/node_modules/hast-util-raw/node_modules/property-information/index.cjs.js.map +1 -0
- package/dist/node_modules/hast-util-raw/node_modules/property-information/index.es.js +13 -0
- package/dist/node_modules/hast-util-raw/node_modules/property-information/index.es.js.map +1 -0
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/aria.cjs.js +2 -0
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/aria.cjs.js.map +1 -0
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/aria.es.js +62 -0
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/aria.es.js.map +1 -0
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/find.cjs.js +2 -0
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/find.cjs.js.map +1 -0
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/find.es.js +34 -0
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/find.es.js.map +1 -0
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/html.cjs.js +2 -0
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/html.cjs.js.map +1 -0
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/html.es.js +369 -0
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/html.es.js.map +1 -0
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/normalize.cjs.js +2 -0
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/normalize.cjs.js.map +1 -0
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/normalize.es.js +7 -0
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/normalize.es.js.map +1 -0
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/svg.cjs.js +2 -0
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/svg.cjs.js.map +1 -0
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/svg.es.js +567 -0
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/svg.es.js.map +1 -0
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/case-insensitive-transform.cjs.js +2 -0
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/case-insensitive-transform.cjs.js.map +1 -0
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/case-insensitive-transform.es.js +8 -0
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/case-insensitive-transform.es.js.map +1 -0
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/case-sensitive-transform.cjs.js +2 -0
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/case-sensitive-transform.cjs.js.map +1 -0
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/case-sensitive-transform.es.js +7 -0
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/case-sensitive-transform.es.js.map +1 -0
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/create.cjs.js +2 -0
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/create.cjs.js.map +1 -0
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/create.es.js +20 -0
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/create.es.js.map +1 -0
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/defined-info.cjs.js +2 -0
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/defined-info.cjs.js.map +1 -0
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/defined-info.es.js +37 -0
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/defined-info.es.js.map +1 -0
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/info.cjs.js +2 -0
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/info.cjs.js.map +1 -0
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/info.es.js +29 -0
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/info.es.js.map +1 -0
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/merge.cjs.js +2 -0
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/merge.cjs.js.map +1 -0
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/merge.es.js +11 -0
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/merge.es.js.map +1 -0
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/schema.cjs.js +2 -0
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/schema.cjs.js.map +1 -0
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/schema.es.js +22 -0
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/schema.es.js.map +1 -0
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/types.cjs.js +2 -0
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/types.cjs.js.map +1 -0
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/types.es.js +15 -0
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/types.es.js.map +1 -0
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/xlink.cjs.js +2 -0
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/xlink.cjs.js.map +1 -0
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/xlink.es.js +20 -0
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/xlink.es.js.map +1 -0
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/xml.cjs.js +2 -0
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/xml.cjs.js.map +1 -0
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/xml.es.js +12 -0
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/xml.es.js.map +1 -0
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/xmlns.cjs.js +2 -0
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/xmlns.cjs.js.map +1 -0
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/xmlns.es.js +12 -0
- package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/xmlns.es.js.map +1 -0
- package/dist/node_modules/hast-util-raw/node_modules/vfile-location/lib/index.cjs.js +3 -0
- package/dist/node_modules/hast-util-raw/node_modules/vfile-location/lib/index.cjs.js.map +1 -0
- package/dist/node_modules/hast-util-raw/node_modules/vfile-location/lib/index.es.js +43 -0
- package/dist/node_modules/hast-util-raw/node_modules/vfile-location/lib/index.es.js.map +1 -0
- package/dist/node_modules/hast-util-to-parse5/lib/index.cjs.js +2 -0
- package/dist/node_modules/hast-util-to-parse5/lib/index.cjs.js.map +1 -0
- package/dist/node_modules/hast-util-to-parse5/lib/index.es.js +119 -0
- package/dist/node_modules/hast-util-to-parse5/lib/index.es.js.map +1 -0
- package/dist/node_modules/rehype/node_modules/unified/lib/index.cjs.js +1 -1
- package/dist/node_modules/rehype/node_modules/unified/lib/index.cjs.js.map +1 -1
- package/dist/node_modules/rehype/node_modules/unified/lib/index.es.js +1 -1
- package/dist/node_modules/rehype/node_modules/unist-util-stringify-position/lib/index.cjs.js.map +1 -0
- package/dist/node_modules/{vfile/node_modules/unist-util-stringify-position/lib/index.cjs.js.map → rehype/node_modules/unist-util-stringify-position/lib/index.es.js.map} +1 -1
- package/dist/node_modules/rehype/node_modules/vfile/lib/index.cjs.js +2 -0
- package/dist/node_modules/rehype/node_modules/vfile/lib/index.cjs.js.map +1 -0
- package/dist/node_modules/{vfile → rehype/node_modules/vfile}/lib/index.es.js +2 -2
- package/dist/node_modules/rehype/node_modules/vfile/lib/index.es.js.map +1 -0
- package/dist/node_modules/rehype/node_modules/vfile/lib/minpath.browser.cjs.js.map +1 -0
- package/dist/node_modules/rehype/node_modules/vfile/lib/minpath.browser.es.js.map +1 -0
- package/dist/node_modules/rehype/node_modules/vfile/lib/minproc.browser.cjs.js.map +1 -0
- package/dist/node_modules/rehype/node_modules/vfile/lib/minproc.browser.es.js.map +1 -0
- package/dist/node_modules/rehype/node_modules/vfile/lib/minurl.browser.cjs.js.map +1 -0
- package/dist/node_modules/rehype/node_modules/vfile/lib/minurl.browser.es.js.map +1 -0
- package/dist/node_modules/rehype/node_modules/vfile/lib/minurl.shared.cjs.js.map +1 -0
- package/dist/node_modules/rehype/node_modules/vfile/lib/minurl.shared.es.js.map +1 -0
- package/dist/node_modules/rehype/node_modules/vfile-message/lib/index.cjs.js.map +1 -0
- package/dist/node_modules/{vfile/node_modules/vfile-message/lib/index.cjs.js.map → rehype/node_modules/vfile-message/lib/index.es.js.map} +1 -1
- package/dist/node_modules/rehype-raw/lib/index.cjs.js +2 -0
- package/dist/node_modules/rehype-raw/lib/index.cjs.js.map +1 -0
- package/dist/node_modules/rehype-raw/lib/index.es.js +13 -0
- package/dist/node_modules/rehype-raw/lib/index.es.js.map +1 -0
- package/dist/node_modules/unist-util-is/lib/index.cjs.js +2 -0
- package/dist/node_modules/unist-util-is/lib/index.cjs.js.map +1 -0
- package/dist/node_modules/unist-util-is/lib/index.es.js +85 -0
- package/dist/node_modules/unist-util-is/lib/index.es.js.map +1 -0
- package/dist/node_modules/unist-util-position/lib/index.cjs.js +2 -0
- package/dist/node_modules/unist-util-position/lib/index.cjs.js.map +1 -0
- package/dist/node_modules/unist-util-position/lib/index.es.js +18 -0
- package/dist/node_modules/unist-util-position/lib/index.es.js.map +1 -0
- package/dist/node_modules/unist-util-visit/lib/index.cjs.js +2 -0
- package/dist/node_modules/unist-util-visit/lib/index.cjs.js.map +1 -0
- package/dist/node_modules/unist-util-visit/lib/index.es.js +17 -0
- package/dist/node_modules/unist-util-visit/lib/index.es.js.map +1 -0
- package/dist/node_modules/unist-util-visit-parents/lib/color.cjs.js +2 -0
- package/dist/node_modules/unist-util-visit-parents/lib/color.cjs.js.map +1 -0
- package/dist/node_modules/unist-util-visit-parents/lib/color.es.js +7 -0
- package/dist/node_modules/unist-util-visit-parents/lib/color.es.js.map +1 -0
- package/dist/node_modules/unist-util-visit-parents/lib/index.cjs.js +2 -0
- package/dist/node_modules/unist-util-visit-parents/lib/index.cjs.js.map +1 -0
- package/dist/node_modules/unist-util-visit-parents/lib/index.es.js +57 -0
- package/dist/node_modules/unist-util-visit-parents/lib/index.es.js.map +1 -0
- 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 +8 -3
- package/dist/node_modules/web-namespaces/index.es.js.map +1 -1
- package/dist/shared/src/api/base/client.cjs.js +1 -1
- package/dist/shared/src/api/base/client.cjs.js.map +1 -1
- package/dist/shared/src/api/base/client.es.js +8 -7
- package/dist/shared/src/api/base/client.es.js.map +1 -1
- package/dist/shared/src/api/generated/anatomy.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/anatomy.es.js.map +1 -1
- package/dist/shared/src/api/generated/attributes.cjs.js +1 -1
- package/dist/shared/src/api/generated/attributes.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/attributes.es.js +9 -2
- package/dist/shared/src/api/generated/attributes.es.js.map +1 -1
- package/dist/shared/src/api/generated/entityLists.cjs.js +1 -1
- package/dist/shared/src/api/generated/entityLists.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/entityLists.es.js +46 -0
- package/dist/shared/src/api/generated/entityLists.es.js.map +1 -1
- package/dist/shared/src/api/generated/folders.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/folders.es.js.map +1 -1
- package/dist/shared/src/api/generated/graphql.cjs.js +14 -7
- package/dist/shared/src/api/generated/graphql.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/graphql.es.js +28 -21
- package/dist/shared/src/api/generated/graphql.es.js.map +1 -1
- package/dist/shared/src/api/generated/projects.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/projects.es.js.map +1 -1
- package/dist/shared/src/api/generated/views.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/views.es.js.map +1 -1
- package/dist/shared/src/api/queries/attributes/updateAttributes.cjs.js +1 -1
- package/dist/shared/src/api/queries/attributes/updateAttributes.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/attributes/updateAttributes.es.js +12 -5
- package/dist/shared/src/api/queries/attributes/updateAttributes.es.js.map +1 -1
- package/dist/shared/src/api/queries/entities/transformDetailsPanelData.cjs.js +1 -1
- package/dist/shared/src/api/queries/entities/transformDetailsPanelData.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/entities/transformDetailsPanelData.es.js +4 -3
- package/dist/shared/src/api/queries/entities/transformDetailsPanelData.es.js.map +1 -1
- package/dist/shared/src/api/queries/entities/updateEntity.cjs.js +1 -1
- package/dist/shared/src/api/queries/entities/updateEntity.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/entities/updateEntity.es.js +33 -32
- package/dist/shared/src/api/queries/entities/updateEntity.es.js.map +1 -1
- package/dist/shared/src/api/queries/entityLists/getLists.cjs.js +1 -1
- package/dist/shared/src/api/queries/entityLists/getLists.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/entityLists/getLists.es.js +104 -103
- package/dist/shared/src/api/queries/entityLists/getLists.es.js.map +1 -1
- package/dist/shared/src/api/queries/entityLists/listFolders.cjs.js +2 -0
- package/dist/shared/src/api/queries/entityLists/listFolders.cjs.js.map +1 -0
- package/dist/shared/src/api/queries/entityLists/listFolders.es.js +111 -0
- package/dist/shared/src/api/queries/entityLists/listFolders.es.js.map +1 -0
- package/dist/shared/src/api/queries/entityLists/updateLists.cjs.js +1 -1
- package/dist/shared/src/api/queries/entityLists/updateLists.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/entityLists/updateLists.es.js +46 -45
- package/dist/shared/src/api/queries/entityLists/updateLists.es.js.map +1 -1
- package/dist/shared/src/api/queries/links/getEntityLinks.cjs.js +1 -1
- package/dist/shared/src/api/queries/links/getEntityLinks.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/links/getEntityLinks.es.js +41 -40
- package/dist/shared/src/api/queries/links/getEntityLinks.es.js.map +1 -1
- package/dist/shared/src/api/queries/links/updateLinks.cjs.js +1 -1
- package/dist/shared/src/api/queries/links/updateLinks.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/links/updateLinks.es.js +164 -143
- package/dist/shared/src/api/queries/links/updateLinks.es.js.map +1 -1
- package/dist/shared/src/api/queries/overview/updateOverview.cjs.js +1 -1
- package/dist/shared/src/api/queries/overview/updateOverview.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/overview/updateOverview.es.js +7 -6
- package/dist/shared/src/api/queries/overview/updateOverview.es.js.map +1 -1
- package/dist/shared/src/api/queries/project/getProject.cjs.js +1 -19
- package/dist/shared/src/api/queries/project/getProject.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/project/getProject.es.js +10 -70
- package/dist/shared/src/api/queries/project/getProject.es.js.map +1 -1
- package/dist/shared/src/api/queries/project/updateProject.cjs.js +1 -1
- package/dist/shared/src/api/queries/project/updateProject.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/project/updateProject.es.js +35 -61
- package/dist/shared/src/api/queries/project/updateProject.es.js.map +1 -1
- package/dist/shared/src/api/queries/system/getSystem.cjs.js +1 -1
- package/dist/shared/src/api/queries/system/getSystem.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/system/getSystem.es.js +14 -8
- package/dist/shared/src/api/queries/system/getSystem.es.js.map +1 -1
- package/dist/shared/src/api/queries/userDashboard/getUserDashboard.cjs.js +1 -1
- package/dist/shared/src/api/queries/userDashboard/getUserDashboard.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/userDashboard/getUserDashboard.es.js +23 -23
- package/dist/shared/src/api/queries/users/getUsers.cjs.js +2 -2
- package/dist/shared/src/api/queries/users/getUsers.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/users/getUsers.es.js +34 -37
- package/dist/shared/src/api/queries/users/getUsers.es.js.map +1 -1
- package/dist/shared/src/api/queries/users/updateUsers.cjs.js +1 -1
- package/dist/shared/src/api/queries/users/updateUsers.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/users/updateUsers.es.js +19 -11
- package/dist/shared/src/api/queries/users/updateUsers.es.js.map +1 -1
- package/dist/shared/src/components/AttributeEditor/AttributeEditor.cjs.js +1 -1
- package/dist/shared/src/components/AttributeEditor/AttributeEditor.cjs.js.map +1 -1
- package/dist/shared/src/components/AttributeEditor/AttributeEditor.es.js +30 -29
- package/dist/shared/src/components/AttributeEditor/AttributeEditor.es.js.map +1 -1
- package/dist/shared/src/components/DetailsDialog/DetailsDialog.cjs.js +1 -1
- package/dist/shared/src/components/DetailsDialog/DetailsDialog.cjs.js.map +1 -1
- package/dist/shared/src/components/DetailsDialog/DetailsDialog.es.js +3 -2
- package/dist/shared/src/components/DetailsDialog/DetailsDialog.es.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js +24 -33
- package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.es.js +109 -93
- package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.es.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js +6 -5
- package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js +174 -60
- package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/BorderedSection.cjs.js +47 -0
- package/dist/shared/src/components/DetailsPanelDetails/BorderedSection.cjs.js.map +1 -0
- package/dist/shared/src/components/DetailsPanelDetails/BorderedSection.es.js +92 -0
- package/dist/shared/src/components/DetailsPanelDetails/BorderedSection.es.js.map +1 -0
- package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.cjs.js +2 -0
- package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.cjs.js.map +1 -0
- package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.es.js +219 -0
- package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.es.js.map +1 -0
- package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.styles.cjs.js +456 -0
- package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.styles.cjs.js.map +1 -0
- package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.styles.es.js +472 -0
- package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.styles.es.js.map +1 -0
- package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.cjs.js +11 -0
- package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.cjs.js.map +1 -0
- package/dist/shared/src/components/{LinksManager/LinksManagerDialog.es.js → DetailsPanelDetails/DetailsPanelDetails.es.js} +92 -91
- package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.es.js.map +1 -0
- package/dist/shared/src/components/DetailsPanelDetails/DetailsSection.cjs.js +51 -0
- package/dist/shared/src/components/DetailsPanelDetails/DetailsSection.cjs.js.map +1 -0
- package/dist/shared/src/components/DetailsPanelDetails/DetailsSection.es.js +113 -0
- package/dist/shared/src/components/DetailsPanelDetails/DetailsSection.es.js.map +1 -0
- package/dist/shared/src/components/DetailsPanelDetails/FieldLabel.cjs.js +8 -0
- package/dist/shared/src/components/DetailsPanelDetails/FieldLabel.cjs.js.map +1 -0
- package/dist/shared/src/components/DetailsPanelDetails/FieldLabel.es.js +32 -0
- package/dist/shared/src/components/DetailsPanelDetails/FieldLabel.es.js.map +1 -0
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useDescriptionEditor.cjs.js +2 -0
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useDescriptionEditor.cjs.js.map +1 -0
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useDescriptionEditor.es.js +61 -0
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useDescriptionEditor.es.js.map +1 -0
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityData.cjs.js +2 -0
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityData.cjs.js.map +1 -0
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityData.es.js +96 -0
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityData.es.js.map +1 -0
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.cjs.js +2 -0
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.cjs.js.map +1 -0
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.es.js +110 -0
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.es.js.map +1 -0
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityFields.cjs.js +2 -0
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityFields.cjs.js.map +1 -0
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityFields.es.js +131 -0
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityFields.es.js.map +1 -0
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityFormData.cjs.js +2 -0
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityFormData.cjs.js.map +1 -0
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityFormData.es.js +64 -0
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityFormData.es.js.map +1 -0
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useMentionSystem.cjs.js +2 -0
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useMentionSystem.cjs.js.map +1 -0
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useMentionSystem.es.js +28 -0
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useMentionSystem.es.js.map +1 -0
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useQuillFormats.cjs.js +2 -0
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useQuillFormats.cjs.js.map +1 -0
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useQuillFormats.es.js +6 -0
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useQuillFormats.es.js.map +1 -0
- package/dist/shared/src/components/DetailsPanelDetails/types.cjs.js +2 -0
- package/dist/shared/src/components/DetailsPanelDetails/types.cjs.js.map +1 -0
- package/dist/shared/src/components/DetailsPanelDetails/types.es.js +37 -0
- package/dist/shared/src/components/DetailsPanelDetails/types.es.js.map +1 -0
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js +1 -1
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js.map +1 -1
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js +14 -11
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js.map +1 -1
- package/dist/shared/src/components/EntityPath/SegmentProvider.cjs.js +1 -1
- package/dist/shared/src/components/EntityPath/SegmentProvider.cjs.js.map +1 -1
- package/dist/shared/src/components/EntityPath/SegmentProvider.es.js +3 -2
- package/dist/shared/src/components/EntityPath/SegmentProvider.es.js.map +1 -1
- package/dist/shared/src/components/EnumEditor/DraggableEnumEditorItem.cjs.js +1 -1
- package/dist/shared/src/components/EnumEditor/DraggableEnumEditorItem.cjs.js.map +1 -1
- package/dist/shared/src/components/EnumEditor/DraggableEnumEditorItem.es.js +51 -152
- package/dist/shared/src/components/EnumEditor/DraggableEnumEditorItem.es.js.map +1 -1
- package/dist/shared/src/components/EnumEditor/EnumEditor.styled.cjs.js +3 -1
- package/dist/shared/src/components/EnumEditor/EnumEditor.styled.cjs.js.map +1 -1
- package/dist/shared/src/components/EnumEditor/EnumEditor.styled.es.js +3 -1
- package/dist/shared/src/components/EnumEditor/EnumEditor.styled.es.js.map +1 -1
- package/dist/shared/src/components/EnumEditor/EnumEditorItem.cjs.js +2 -0
- package/dist/shared/src/components/EnumEditor/EnumEditorItem.cjs.js.map +1 -0
- package/dist/shared/src/components/EnumEditor/EnumEditorItem.es.js +141 -0
- package/dist/shared/src/components/EnumEditor/EnumEditorItem.es.js.map +1 -0
- package/dist/shared/src/components/Feedback/FeedbackContext.cjs.js +1 -1
- package/dist/shared/src/components/Feedback/FeedbackContext.cjs.js.map +1 -1
- package/dist/shared/src/components/Feedback/FeedbackContext.es.js +5 -4
- package/dist/shared/src/components/Feedback/FeedbackContext.es.js.map +1 -1
- package/dist/shared/src/components/LinksManager/AddNewLinks.cjs.js +1 -1
- package/dist/shared/src/components/LinksManager/AddNewLinks.cjs.js.map +1 -1
- package/dist/shared/src/components/LinksManager/AddNewLinks.es.js +10 -7
- package/dist/shared/src/components/LinksManager/AddNewLinks.es.js.map +1 -1
- package/dist/shared/src/components/LinksManager/CellEditingDialog.cjs.js +8 -0
- package/dist/shared/src/components/LinksManager/CellEditingDialog.cjs.js.map +1 -0
- package/dist/shared/src/components/LinksManager/CellEditingDialog.es.js +86 -0
- package/dist/shared/src/components/LinksManager/CellEditingDialog.es.js.map +1 -0
- package/dist/shared/src/components/LinksManager/LinkManagerItem.cjs.js +1 -1
- package/dist/shared/src/components/LinksManager/LinkManagerItem.cjs.js.map +1 -1
- package/dist/shared/src/components/LinksManager/LinkManagerItem.es.js +32 -22
- package/dist/shared/src/components/LinksManager/LinkManagerItem.es.js.map +1 -1
- package/dist/shared/src/components/LinksManager/LinksManager.cjs.js +1 -1
- package/dist/shared/src/components/LinksManager/LinksManager.cjs.js.map +1 -1
- package/dist/shared/src/components/LinksManager/LinksManager.es.js +55 -43
- package/dist/shared/src/components/LinksManager/LinksManager.es.js.map +1 -1
- package/dist/shared/src/components/LinksManager/LinksManager.styled.cjs.js +42 -9
- package/dist/shared/src/components/LinksManager/LinksManager.styled.cjs.js.map +1 -1
- package/dist/shared/src/components/LinksManager/LinksManager.styled.es.js +49 -16
- package/dist/shared/src/components/LinksManager/LinksManager.styled.es.js.map +1 -1
- package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js +1 -1
- package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js.map +1 -1
- package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js +14 -11
- package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js.map +1 -1
- package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.cjs.js +1 -1
- package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.cjs.js.map +1 -1
- package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.es.js +52 -80
- package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.es.js.map +1 -1
- package/dist/shared/src/components/ListMetaData/ListMetaData.cjs.js +1 -1
- package/dist/shared/src/components/ListMetaData/ListMetaData.cjs.js.map +1 -1
- package/dist/shared/src/components/ListMetaData/ListMetaData.es.js +19 -13
- package/dist/shared/src/components/ListMetaData/ListMetaData.es.js.map +1 -1
- package/dist/shared/src/components/Powerpack/PowerpackButton.cjs.js +2 -2
- package/dist/shared/src/components/Powerpack/PowerpackButton.cjs.js.map +1 -1
- package/dist/shared/src/components/Powerpack/PowerpackButton.es.js +3 -2
- package/dist/shared/src/components/Powerpack/PowerpackButton.es.js.map +1 -1
- package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js +1 -1
- package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js.map +1 -1
- package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js +48 -37
- package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js.map +1 -1
- package/dist/shared/src/components/Powerpack/PowerpackDialog.styled.cjs.js +12 -2
- package/dist/shared/src/components/Powerpack/PowerpackDialog.styled.cjs.js.map +1 -1
- package/dist/shared/src/components/Powerpack/PowerpackDialog.styled.es.js +15 -4
- package/dist/shared/src/components/Powerpack/PowerpackDialog.styled.es.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js +2 -2
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js +33 -22
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js +1 -1
- package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js +31 -22
- package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js.map +1 -1
- package/dist/shared/src/components/QuillListStyles/QuillListStyles.cjs.js +60 -0
- package/dist/shared/src/components/QuillListStyles/QuillListStyles.cjs.js.map +1 -0
- package/dist/shared/src/components/QuillListStyles/QuillListStyles.es.js +64 -0
- package/dist/shared/src/components/QuillListStyles/QuillListStyles.es.js.map +1 -0
- package/dist/shared/src/components/RenameForm/RenameForm.cjs.js +31 -0
- package/dist/shared/src/components/RenameForm/RenameForm.cjs.js.map +1 -0
- package/dist/shared/src/components/RenameForm/RenameForm.es.js +407 -0
- package/dist/shared/src/components/RenameForm/RenameForm.es.js.map +1 -0
- package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.cjs.js +1 -1
- package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.es.js +3 -2
- package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js +11 -8
- package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js +12 -9
- package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js +1 -1
- package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js +11 -8
- package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.cjs.js +1 -1
- package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.es.js +3 -2
- package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.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 +3 -2
- package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js.map +1 -1
- package/dist/shared/src/components/SettingsPanel/SettingsPanel.cjs.js +3 -3
- package/dist/shared/src/components/SettingsPanel/SettingsPanel.cjs.js.map +1 -1
- package/dist/shared/src/components/SettingsPanel/SettingsPanel.es.js +6 -5
- package/dist/shared/src/components/SettingsPanel/SettingsPanel.es.js.map +1 -1
- package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js +1 -1
- package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js.map +1 -1
- package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js +11 -8
- package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js.map +1 -1
- package/dist/shared/src/components/StyledLink/StyledLink.cjs.js +14 -0
- package/dist/shared/src/components/StyledLink/StyledLink.cjs.js.map +1 -0
- package/dist/shared/src/components/StyledLink/StyledLink.es.js +19 -0
- package/dist/shared/src/components/StyledLink/StyledLink.es.js.map +1 -0
- package/dist/shared/src/components/Thumbnail/StackedThumbnails.cjs.js +1 -1
- package/dist/shared/src/components/Thumbnail/StackedThumbnails.cjs.js.map +1 -1
- package/dist/shared/src/components/Thumbnail/StackedThumbnails.es.js +12 -11
- package/dist/shared/src/components/Thumbnail/StackedThumbnails.es.js.map +1 -1
- package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js +1 -1
- package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js.map +1 -1
- package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js +11 -8
- package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js.map +1 -1
- package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js +1 -1
- package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js.map +1 -1
- package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js +5 -4
- package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js.map +1 -1
- package/dist/shared/src/components/Watchers/Watchers.cjs.js +1 -1
- package/dist/shared/src/components/Watchers/Watchers.cjs.js.map +1 -1
- package/dist/shared/src/components/Watchers/Watchers.es.js +3 -2
- package/dist/shared/src/components/Watchers/Watchers.es.js.map +1 -1
- package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js +1 -1
- package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js.map +1 -1
- package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js +11 -8
- package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js.map +1 -1
- package/dist/shared/src/containers/Actions/Actions.cjs.js +1 -1
- package/dist/shared/src/containers/Actions/Actions.cjs.js.map +1 -1
- package/dist/shared/src/containers/Actions/Actions.es.js +4 -2
- package/dist/shared/src/containers/Actions/Actions.es.js.map +1 -1
- package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js +1 -1
- package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js.map +1 -1
- package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js +11 -8
- package/dist/shared/src/containers/Actions/InteractiveActionDialog.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 +130 -110
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.es.js +11 -8
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.es.js +12 -9
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.es.js +127 -114
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.styled.cjs.js +4 -3
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.styled.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.styled.es.js +1 -0
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.styled.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js +4 -2
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/FeedContextWrapper.cjs.js +2 -0
- package/dist/shared/src/containers/DetailsPanel/FeedContextWrapper.cjs.js.map +1 -0
- package/dist/shared/src/containers/DetailsPanel/FeedContextWrapper.es.js +86 -0
- package/dist/shared/src/containers/DetailsPanel/FeedContextWrapper.es.js.map +1 -0
- package/dist/shared/src/containers/DetailsPanel/FeedFilters/FeedFilters.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/FeedFilters/FeedFilters.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/FeedFilters/FeedFilters.es.js +18 -18
- package/dist/shared/src/containers/DetailsPanel/FeedFilters/FeedFilters.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/FeedWrapper.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/FeedWrapper.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/FeedWrapper.es.js +3 -2
- package/dist/shared/src/containers/DetailsPanel/FeedWrapper.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js +3 -2
- package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js +11 -8
- package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js +11 -8
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js +11 -8
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js +11 -8
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.cjs.js +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.cjs.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.es.js +4 -2
- package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/Feed.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/Feed.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/Feed.es.js +20 -19
- package/dist/shared/src/containers/Feed/Feed.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js +3 -2
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.styled.cjs.js +18 -3
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.styled.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.styled.es.js +24 -9
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.styled.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityDate.cjs.js +8 -3
- package/dist/shared/src/containers/Feed/components/ActivityDate.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityDate.es.js +21 -16
- package/dist/shared/src/containers/Feed/components/ActivityDate.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.es.js +22 -21
- package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.styled.cjs.js +37 -8
- package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.styled.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.styled.es.js +44 -14
- package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.styled.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js +2 -2
- package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js +58 -57
- package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.styled.cjs.js +14 -58
- package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.styled.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.styled.es.js +21 -65
- package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.styled.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.es.js +3 -2
- package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.es.js +3 -2
- package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/modules/index.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/modules/index.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/modules/index.es.js +17 -15
- package/dist/shared/src/containers/Feed/components/CommentInput/modules/index.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/quillToMarkdown.cjs.js +7 -6
- package/dist/shared/src/containers/Feed/components/CommentInput/quillToMarkdown.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/quillToMarkdown.es.js +27 -18
- package/dist/shared/src/containers/Feed/components/CommentInput/quillToMarkdown.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.es.js +3 -2
- package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js +3 -2
- package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/context/FeedContext.es.js +7 -5
- package/dist/shared/src/containers/Feed/context/FeedContext.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.es.js +3 -2
- package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.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 +61 -55
- 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 +304 -223
- package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js +3 -3
- package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js +280 -57
- package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js +11 -8
- package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js +10 -7
- package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.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 +212 -206
- package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js +41 -32
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js +10 -7
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.es.js +130 -33
- package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.es.js +12 -14
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.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 +8 -6
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js +38 -33
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js +127 -113
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js +10 -7
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js +2 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js +239 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js.map +1 -0
- 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 +3 -2
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js +10 -7
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetTaskGroups.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetTaskGroups.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetTaskGroups.es.js +3 -2
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetTaskGroups.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js +105 -78
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js +14 -11
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js +14 -11
- package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useProjectTableModules.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useProjectTableModules.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useProjectTableModules.es.js +4 -2
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useProjectTableModules.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 +10 -7
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js +21 -18
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.es.js +7 -7
- package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js +2 -2
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js +90 -74
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumWidget.cjs.js +2 -2
- package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumWidget.es.js +50 -48
- package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumWidget.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js +61 -61
- package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js +2 -0
- package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js +244 -0
- package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.cjs.js +8 -3
- package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.es.js +82 -32
- package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidgetInput.cjs.js +2 -2
- package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidgetInput.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidgetInput.es.js +79 -24
- package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidgetInput.es.js.map +1 -1
- package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js +1 -1
- package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js.map +1 -1
- package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js +11 -8
- package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js.map +1 -1
- package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js +1 -1
- package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js.map +1 -1
- package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js +145 -136
- package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js.map +1 -1
- package/dist/shared/src/containers/SimpleTable/SimpleTable.styled.cjs.js +7 -0
- package/dist/shared/src/containers/SimpleTable/SimpleTable.styled.cjs.js.map +1 -1
- package/dist/shared/src/containers/SimpleTable/SimpleTable.styled.es.js +11 -4
- package/dist/shared/src/containers/SimpleTable/SimpleTable.styled.es.js.map +1 -1
- package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js +1 -1
- package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js +4 -2
- package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js.map +1 -1
- package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js +2 -2
- package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.es.js +9 -8
- package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.es.js.map +1 -1
- package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js +1 -1
- package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/context/ViewsContext.es.js +6 -4
- package/dist/shared/src/containers/Views/context/ViewsContext.es.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js +1 -1
- package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js +4 -2
- package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.cjs.js +1 -1
- package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.es.js +4 -2
- package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.es.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useSelectedView.cjs.js +1 -1
- package/dist/shared/src/containers/Views/hooks/useSelectedView.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useSelectedView.es.js +3 -2
- package/dist/shared/src/containers/Views/hooks/useSelectedView.es.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useViewsMutations.cjs.js +1 -1
- package/dist/shared/src/containers/Views/hooks/useViewsMutations.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useViewsMutations.es.js +3 -2
- package/dist/shared/src/containers/Views/hooks/useViewsMutations.es.js.map +1 -1
- package/dist/shared/src/containers/Views/utils/viewUpdateHelper.cjs.js +1 -1
- package/dist/shared/src/containers/Views/utils/viewUpdateHelper.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/utils/viewUpdateHelper.es.js +3 -2
- package/dist/shared/src/containers/Views/utils/viewUpdateHelper.es.js.map +1 -1
- package/dist/shared/src/context/AddonProjectContext.cjs.js +1 -1
- package/dist/shared/src/context/AddonProjectContext.cjs.js.map +1 -1
- package/dist/shared/src/context/AddonProjectContext.es.js +13 -12
- package/dist/shared/src/context/AddonProjectContext.es.js.map +1 -1
- package/dist/shared/src/context/DetailsPanelContext.cjs.js +1 -1
- package/dist/shared/src/context/DetailsPanelContext.cjs.js.map +1 -1
- package/dist/shared/src/context/DetailsPanelContext.es.js +6 -4
- package/dist/shared/src/context/DetailsPanelContext.es.js.map +1 -1
- package/dist/shared/src/context/PowerpackContext.cjs.js +1 -1
- package/dist/shared/src/context/PowerpackContext.cjs.js.map +1 -1
- package/dist/shared/src/context/PowerpackContext.es.js +60 -45
- package/dist/shared/src/context/PowerpackContext.es.js.map +1 -1
- package/dist/shared/src/context/RemoteModulesContext.cjs.js +1 -1
- package/dist/shared/src/context/RemoteModulesContext.cjs.js.map +1 -1
- package/dist/shared/src/context/RemoteModulesContext.es.js +5 -4
- package/dist/shared/src/context/RemoteModulesContext.es.js.map +1 -1
- package/dist/shared/src/hooks/useActionTriggers.cjs.js +1 -1
- package/dist/shared/src/hooks/useActionTriggers.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useActionTriggers.es.js +30 -34
- package/dist/shared/src/hooks/useActionTriggers.es.js.map +1 -1
- package/dist/shared/src/hooks/useEntityUpdate.cjs.js +1 -1
- package/dist/shared/src/hooks/useEntityUpdate.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useEntityUpdate.es.js +4 -2
- package/dist/shared/src/hooks/useEntityUpdate.es.js.map +1 -1
- package/dist/shared/src/hooks/useHierarchyTable.cjs.js +1 -1
- package/dist/shared/src/hooks/useHierarchyTable.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useHierarchyTable.es.js +3 -2
- package/dist/shared/src/hooks/useHierarchyTable.es.js.map +1 -1
- package/dist/shared/src/hooks/useQueryArgumentChangeLoading.cjs.js +2 -0
- package/dist/shared/src/hooks/useQueryArgumentChangeLoading.cjs.js.map +1 -0
- package/dist/shared/src/hooks/useQueryArgumentChangeLoading.es.js +12 -0
- package/dist/shared/src/hooks/useQueryArgumentChangeLoading.es.js.map +1 -0
- package/dist/shared/src/hooks/useScopedStatuses.cjs.js +1 -1
- package/dist/shared/src/hooks/useScopedStatuses.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useScopedStatuses.es.js +5 -4
- package/dist/shared/src/hooks/useScopedStatuses.es.js.map +1 -1
- package/dist/shared/src/hooks/useTagStyling.cjs.js +2 -0
- package/dist/shared/src/hooks/useTagStyling.cjs.js.map +1 -0
- package/dist/shared/src/hooks/useTagStyling.es.js +33 -0
- package/dist/shared/src/hooks/useTagStyling.es.js.map +1 -0
- package/dist/shared/src/hooks/useUserProjectConfig.cjs.js +1 -1
- package/dist/shared/src/hooks/useUserProjectConfig.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useUserProjectConfig.es.js +3 -2
- package/dist/shared/src/hooks/useUserProjectConfig.es.js.map +1 -1
- package/dist/shared/src/util/checkName.cjs.js +2 -0
- package/dist/shared/src/util/checkName.cjs.js.map +1 -0
- package/dist/shared/src/util/checkName.es.js +39 -0
- package/dist/shared/src/util/checkName.es.js.map +1 -0
- package/dist/shared/src/util/clipboardUtils.cjs.js +2 -0
- package/dist/shared/src/util/clipboardUtils.cjs.js.map +1 -0
- package/dist/shared/src/util/clipboardUtils.es.js +13 -0
- package/dist/shared/src/util/clipboardUtils.es.js.map +1 -0
- package/dist/shared/src/util/copyToClipboard.cjs.js +1 -1
- package/dist/shared/src/util/copyToClipboard.cjs.js.map +1 -1
- package/dist/shared/src/util/copyToClipboard.es.js +21 -21
- package/dist/shared/src/util/copyToClipboard.es.js.map +1 -1
- package/dist/shared/src/util/humanizeFieldName.cjs.js +2 -0
- package/dist/shared/src/util/humanizeFieldName.cjs.js.map +1 -0
- package/dist/shared/src/util/humanizeFieldName.es.js +15 -0
- package/dist/shared/src/util/humanizeFieldName.es.js.map +1 -0
- package/dist/shared/src/util/parseHtmlToPlainTextWithLinks.cjs.js +7 -0
- package/dist/shared/src/util/parseHtmlToPlainTextWithLinks.cjs.js.map +1 -0
- package/dist/shared/src/util/parseHtmlToPlainTextWithLinks.es.js +64 -0
- package/dist/shared/src/util/parseHtmlToPlainTextWithLinks.es.js.map +1 -0
- package/dist/src/components/Menu/MenuComponents/Menu.cjs.js +1 -1
- package/dist/src/components/Menu/MenuComponents/Menu.cjs.js.map +1 -1
- package/dist/src/components/Menu/MenuComponents/Menu.es.js +59 -35
- package/dist/src/components/Menu/MenuComponents/Menu.es.js.map +1 -1
- package/dist/src/components/Menu/MenuComponents/Menu.styled.cjs.js +13 -0
- package/dist/src/components/Menu/MenuComponents/Menu.styled.cjs.js.map +1 -1
- package/dist/src/components/Menu/MenuComponents/Menu.styled.es.js +13 -0
- package/dist/src/components/Menu/MenuComponents/Menu.styled.es.js.map +1 -1
- package/dist/src/components/Menu/MenuComponents/MenuItem.cjs.js +1 -1
- package/dist/src/components/Menu/MenuComponents/MenuItem.cjs.js.map +1 -1
- package/dist/src/components/Menu/MenuComponents/MenuItem.es.js +52 -36
- package/dist/src/components/Menu/MenuComponents/MenuItem.es.js.map +1 -1
- package/dist/src/components/Menu/MenuComponents/MenuList.cjs.js +1 -1
- package/dist/src/components/Menu/MenuComponents/MenuList.cjs.js.map +1 -1
- package/dist/src/components/Menu/MenuComponents/MenuList.es.js +103 -83
- package/dist/src/components/Menu/MenuComponents/MenuList.es.js.map +1 -1
- package/dist/types/api/generated/anatomy.d.ts +23 -0
- package/dist/types/api/generated/attributes.d.ts +15 -4
- package/dist/types/api/generated/entityLists.d.ts +94 -1
- package/dist/types/api/generated/folders.d.ts +2 -0
- package/dist/types/api/generated/graphql.d.ts +29 -6
- package/dist/types/api/generated/index.d.ts +1 -0
- package/dist/types/api/generated/projects.d.ts +8 -0
- package/dist/types/api/generated/views.d.ts +9 -47
- package/dist/types/api/queries/attributes/getAttributes.d.ts +1 -0
- package/dist/types/api/queries/attributes/updateAttributes.d.ts +162 -0
- package/dist/types/api/queries/entityLists/getLists.d.ts +19 -0
- package/dist/types/api/queries/entityLists/getListsAttributes.d.ts +5 -0
- package/dist/types/api/queries/entityLists/index.d.ts +1 -0
- package/dist/types/api/queries/entityLists/listFolders.d.ts +613 -0
- package/dist/types/api/queries/entityLists/types.d.ts +1 -0
- package/dist/types/api/queries/entityLists/updateLists.d.ts +5 -0
- package/dist/types/api/queries/entityLists/updateListsAttributes.d.ts +5 -0
- package/dist/types/api/queries/permissions/getPermissions.d.ts +22 -22
- package/dist/types/api/queries/project/getProject.d.ts +4 -305
- package/dist/types/api/queries/project/updateProject.d.ts +803 -0
- package/dist/types/api/queries/share/share.d.ts +1 -1
- package/dist/types/api/queries/users/getUsers.d.ts +0 -132
- package/dist/types/api/queries/users/updateUsers.d.ts +163 -3
- package/dist/types/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.d.ts +2 -0
- package/dist/types/components/DetailsPanelAttributes/components/RenderFieldWidget.d.ts +3 -0
- package/dist/types/components/DetailsPanelAttributes/index.d.ts +0 -1
- package/dist/types/components/DetailsPanelDetails/BorderedSection.d.ts +16 -0
- package/dist/types/components/DetailsPanelDetails/DescriptionSection.d.ts +10 -0
- package/dist/types/components/DetailsPanelDetails/DescriptionSection.styles.d.ts +10 -0
- package/dist/types/components/DetailsPanelDetails/DetailsPanelDetails.d.ts +6 -0
- package/dist/types/components/DetailsPanelDetails/DetailsSection.d.ts +4 -3
- package/dist/types/components/DetailsPanelDetails/FieldLabel.d.ts +11 -0
- package/dist/types/components/DetailsPanelDetails/hooks/index.d.ts +7 -0
- package/dist/types/components/DetailsPanelDetails/hooks/useDescriptionEditor.d.ts +17 -0
- package/dist/types/components/DetailsPanelDetails/hooks/useEntityData.d.ts +12 -0
- package/dist/types/components/DetailsPanelDetails/hooks/useEntityEditing.d.ts +10 -0
- package/dist/types/components/DetailsPanelDetails/hooks/useEntityFields.d.ts +16 -0
- package/dist/types/components/DetailsPanelDetails/hooks/useEntityFormData.d.ts +8 -0
- package/dist/types/components/DetailsPanelDetails/hooks/useQuillFormats.d.ts +1 -0
- package/dist/types/components/DetailsPanelDetails/index.d.ts +3 -0
- package/dist/types/components/DetailsPanelDetails/types.d.ts +20 -0
- package/dist/types/components/EnumEditor/EnumEditor.styled.d.ts +1 -1
- package/dist/types/components/EnumEditor/EnumEditorItem.d.ts +13 -0
- package/dist/types/components/EnumEditor/index.d.ts +1 -0
- package/dist/types/components/LinksManager/CellEditingDialog.d.ts +8 -0
- package/dist/types/components/ListAttributeForm/ListAttributeForm.d.ts +2 -4
- package/dist/types/components/Powerpack/PowerpackDialog.styled.d.ts +1 -0
- package/dist/types/components/Powerpack/index.d.ts +0 -1
- package/dist/types/components/QuillListStyles/QuillListStyles.d.ts +5 -0
- package/dist/types/components/QuillListStyles/index.d.ts +1 -0
- package/dist/types/components/RenameForm/RenameForm.d.ts +21 -0
- package/dist/types/components/RenameForm/index.d.ts +1 -0
- package/dist/types/components/StyledLink/StyledLink.d.ts +2 -0
- package/dist/types/components/StyledLink/index.d.ts +1 -0
- package/dist/types/components/index.d.ts +2 -2
- package/dist/types/containers/Actions/ActionsDropdown/ActionsDropdown.styled.d.ts +1 -1
- package/dist/types/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.styled.d.ts +4 -4
- package/dist/types/containers/DetailsPanel/FeedContextWrapper.d.ts +19 -0
- package/dist/types/containers/Feed/components/ActivityVersions/ActivityVersions.styled.d.ts +1 -0
- package/dist/types/containers/Feed/components/CommentInput/modules/index.d.ts +2 -1
- package/dist/types/containers/ProjectTreeTable/buildTreeTableColumns.d.ts +1 -1
- package/dist/types/containers/ProjectTreeTable/context/ProjectDataContext.d.ts +4 -0
- package/dist/types/containers/ProjectTreeTable/context/clipboard/clipboardValidation.d.ts +10 -0
- package/dist/types/containers/ProjectTreeTable/hooks/index.d.ts +1 -0
- package/dist/types/containers/ProjectTreeTable/hooks/useAttributesList.d.ts +6 -6
- package/dist/types/containers/ProjectTreeTable/hooks/useCellContextMenu.d.ts +1 -1
- package/dist/types/containers/ProjectTreeTable/hooks/useColumnGroupBy.d.ts +10 -0
- package/dist/types/containers/ProjectTreeTable/types/table.d.ts +6 -0
- package/dist/types/containers/ProjectTreeTable/widgets/BooleanWidget.d.ts +0 -1
- package/dist/types/containers/ProjectTreeTable/widgets/CellWidget.d.ts +2 -1
- package/dist/types/containers/ProjectTreeTable/widgets/LinksWidget.d.ts +1 -0
- package/dist/types/containers/ProjectTreeTable/widgets/NameWidget.d.ts +10 -0
- package/dist/types/containers/ProjectTreeTable/widgets/TextWidget.d.ts +2 -0
- package/dist/types/containers/ProjectTreeTable/widgets/TextWidgetInput.d.ts +2 -0
- package/dist/types/containers/Views/index.d.ts +1 -4
- package/dist/types/context/AddonProjectContext.d.ts +2 -1
- package/dist/types/context/DetailsPanelContext.d.ts +1 -1
- package/dist/types/context/PowerpackContext.d.ts +4 -2
- package/dist/types/context/index.d.ts +1 -0
- package/dist/types/hooks/index.d.ts +2 -0
- package/dist/types/hooks/useActionTriggers.d.ts +1 -1
- package/dist/types/hooks/useQueryArgumentChangeLoading.d.ts +9 -0
- package/dist/types/hooks/useTagStyling.d.ts +17 -0
- package/dist/types/util/checkName.d.ts +9 -0
- package/dist/types/util/clipboardUtils.d.ts +18 -0
- package/dist/types/util/copyToClipboard.d.ts +1 -1
- package/dist/types/util/humanizeFieldName.d.ts +1 -0
- package/dist/types/util/index.d.ts +3 -0
- package/dist/types/util/parseHtmlToPlainTextWithLinks.d.ts +6 -0
- package/dist/util.cjs.js +1 -1
- package/dist/util.es.js +44 -36
- package/dist/util.es.js.map +1 -1
- package/package.json +1 -1
- package/dist/node_modules/vfile/lib/index.cjs.js +0 -2
- package/dist/node_modules/vfile/lib/index.cjs.js.map +0 -1
- package/dist/node_modules/vfile/lib/index.es.js.map +0 -1
- package/dist/node_modules/vfile/lib/minpath.browser.cjs.js.map +0 -1
- package/dist/node_modules/vfile/lib/minpath.browser.es.js.map +0 -1
- package/dist/node_modules/vfile/lib/minproc.browser.cjs.js.map +0 -1
- package/dist/node_modules/vfile/lib/minproc.browser.es.js.map +0 -1
- package/dist/node_modules/vfile/lib/minurl.browser.cjs.js.map +0 -1
- package/dist/node_modules/vfile/lib/minurl.browser.es.js.map +0 -1
- package/dist/node_modules/vfile/lib/minurl.shared.cjs.js.map +0 -1
- package/dist/node_modules/vfile/lib/minurl.shared.es.js.map +0 -1
- package/dist/node_modules/vfile/node_modules/unist-util-stringify-position/lib/index.es.js.map +0 -1
- package/dist/node_modules/vfile/node_modules/vfile-message/lib/index.es.js.map +0 -1
- package/dist/shared/src/components/AccessUser/AccessUser.cjs.js +0 -2
- package/dist/shared/src/components/AccessUser/AccessUser.cjs.js.map +0 -1
- package/dist/shared/src/components/AccessUser/AccessUser.es.js +0 -33
- package/dist/shared/src/components/AccessUser/AccessUser.es.js.map +0 -1
- package/dist/shared/src/components/AccessUser/AccessUser.styled.cjs.js +0 -42
- package/dist/shared/src/components/AccessUser/AccessUser.styled.cjs.js.map +0 -1
- package/dist/shared/src/components/AccessUser/AccessUser.styled.es.js +0 -46
- package/dist/shared/src/components/AccessUser/AccessUser.styled.es.js.map +0 -1
- package/dist/shared/src/components/DetailsMetaData/DetailsMetaData.cjs.js +0 -34
- package/dist/shared/src/components/DetailsMetaData/DetailsMetaData.cjs.js.map +0 -1
- package/dist/shared/src/components/DetailsMetaData/DetailsMetaData.es.js +0 -46
- package/dist/shared/src/components/DetailsMetaData/DetailsMetaData.es.js.map +0 -1
- package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributes.cjs.js +0 -2
- package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributes.cjs.js.map +0 -1
- package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributes.es.js +0 -287
- package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributes.es.js.map +0 -1
- package/dist/shared/src/components/LinksManager/LinksManagerDialog.cjs.js +0 -8
- package/dist/shared/src/components/LinksManager/LinksManagerDialog.cjs.js.map +0 -1
- package/dist/shared/src/components/LinksManager/LinksManagerDialog.es.js.map +0 -1
- package/dist/shared/src/components/Powerpack/RequiredPowerpackVersion.cjs.js +0 -9
- package/dist/shared/src/components/Powerpack/RequiredPowerpackVersion.cjs.js.map +0 -1
- package/dist/shared/src/components/Powerpack/RequiredPowerpackVersion.es.js +0 -25
- package/dist/shared/src/components/Powerpack/RequiredPowerpackVersion.es.js.map +0 -1
- package/dist/shared/src/components/ShareOptionIcon/ShareOptionIcon.cjs.js +0 -2
- package/dist/shared/src/components/ShareOptionIcon/ShareOptionIcon.cjs.js.map +0 -1
- package/dist/shared/src/components/ShareOptionIcon/ShareOptionIcon.es.js +0 -17
- package/dist/shared/src/components/ShareOptionIcon/ShareOptionIcon.es.js.map +0 -1
- package/dist/shared/src/hooks/useCustomProtocolCheck.cjs.js +0 -2
- package/dist/shared/src/hooks/useCustomProtocolCheck.cjs.js.map +0 -1
- package/dist/shared/src/hooks/useCustomProtocolCheck.es.js +0 -43
- package/dist/shared/src/hooks/useCustomProtocolCheck.es.js.map +0 -1
- package/dist/types/components/AccessUser/AccessUser.d.ts +0 -22
- package/dist/types/components/AccessUser/AccessUser.styled.d.ts +0 -1
- package/dist/types/components/AccessUser/index.d.ts +0 -1
- package/dist/types/components/DetailsMetaData/DetailsMetaData.d.ts +0 -8
- package/dist/types/components/DetailsMetaData/index.d.ts +0 -1
- package/dist/types/components/DetailsPanelAttributes/DetailsPanelAttributes.d.ts +0 -6
- package/dist/types/components/LinksManager/LinksManagerDialog.d.ts +0 -9
- package/dist/types/components/Powerpack/RequiredPowerpackVersion.d.ts +0 -5
- package/dist/types/components/ShareOptionIcon/ShareOptionIcon.d.ts +0 -10
- package/dist/types/components/ShareOptionIcon/index.d.ts +0 -2
- package/dist/types/hooks/useCustomProtocolCheck.d.ts +0 -10
- /package/dist/node_modules/{vfile → rehype}/node_modules/unist-util-stringify-position/lib/index.cjs.js +0 -0
- /package/dist/node_modules/{vfile → rehype}/node_modules/unist-util-stringify-position/lib/index.es.js +0 -0
- /package/dist/node_modules/{vfile → rehype/node_modules/vfile}/lib/minpath.browser.cjs.js +0 -0
- /package/dist/node_modules/{vfile → rehype/node_modules/vfile}/lib/minpath.browser.es.js +0 -0
- /package/dist/node_modules/{vfile → rehype/node_modules/vfile}/lib/minproc.browser.cjs.js +0 -0
- /package/dist/node_modules/{vfile → rehype/node_modules/vfile}/lib/minproc.browser.es.js +0 -0
- /package/dist/node_modules/{vfile → rehype/node_modules/vfile}/lib/minurl.browser.cjs.js +0 -0
- /package/dist/node_modules/{vfile → rehype/node_modules/vfile}/lib/minurl.browser.es.js +0 -0
- /package/dist/node_modules/{vfile → rehype/node_modules/vfile}/lib/minurl.shared.cjs.js +0 -0
- /package/dist/node_modules/{vfile → rehype/node_modules/vfile}/lib/minurl.shared.es.js +0 -0
- /package/dist/node_modules/{vfile → rehype}/node_modules/vfile-message/lib/index.cjs.js +0 -0
- /package/dist/node_modules/{vfile → rehype}/node_modules/vfile-message/lib/index.es.js +0 -0
package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectionCellsProvider.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/context/SelectionCellsProvider.tsx"],"sourcesContent":["import React, { useState, useCallback, useMemo, ReactNode, useRef } from 'react'\nimport {\n CellId,\n RowId,\n ColId,\n CellPosition,\n getCellId,\n parseCellId,\n BorderPosition,\n getBorderClasses,\n} from '../utils/cellUtils'\nimport { DRAG_HANDLE_COLUMN_ID } from '../ProjectTreeTable'\nimport { SelectionCellsContext, GridMap, ROW_SELECTION_COLUMN_ID } from './SelectionCellsContext'\nimport { useCheckSelectedCellsVisible } from '../hooks'\n\nexport const SelectionCellsProvider: React.FC<{ children: ReactNode }> = ({ children }) => {\n const [selectedCells, setSelectedCells] = useState<Set<CellId>>(new Set())\n const [focusedCellId, setFocusedCellId] = useState<CellId | null>(null)\n const [selectionInProgress, setSelectionInProgress] = useState<boolean>(false)\n const [anchorCell, setAnchorCell] = useState<CellPosition | null>(null)\n const [gridMap, setGridMap] = useState<GridMap>({\n rowIdToIndex: new Map(),\n colIdToIndex: new Map(),\n indexToRowId: new Map(),\n indexToColId: new Map(),\n })\n const mapToString = (map: Map<any, any>) => {\n return JSON.stringify(Array.from(map.entries()))\n }\n\n const stableGridMap = useMemo(\n () => gridMap,\n [\n mapToString(gridMap.rowIdToIndex),\n mapToString(gridMap.colIdToIndex),\n mapToString(gridMap.indexToRowId),\n mapToString(gridMap.indexToColId),\n ],\n )\n // Track whether we're selecting or unselecting during drag\n const initialCellSelected = useRef<boolean>(false)\n\n const selectedRows = useMemo(\n () =>\n Array.from(selectedCells)\n .filter(\n (cellId) =>\n parseCellId(cellId)?.colId === ROW_SELECTION_COLUMN_ID && parseCellId(cellId)?.rowId,\n )\n .map((cellId) => parseCellId(cellId)?.rowId) as string[],\n [selectedCells],\n )\n\n useCheckSelectedCellsVisible({\n selectedCells,\n setSelectedCells,\n focusedCellId,\n setFocusedCellId,\n })\n\n // Register grid structure for range selections\n const registerGrid = useCallback((rows: RowId[], columns: ColId[]) => {\n const rowIdToIndex = new Map<RowId, number>()\n const colIdToIndex = new Map<ColId, number>()\n const indexToRowId = new Map<number, RowId>()\n const indexToColId = new Map<number, ColId>()\n\n rows.forEach((rowId, index) => {\n rowIdToIndex.set(rowId, index)\n indexToRowId.set(index, rowId)\n })\n\n columns.forEach((colId, index) => {\n colIdToIndex.set(colId, index)\n indexToColId.set(index, colId)\n })\n\n setGridMap({ rowIdToIndex, colIdToIndex, indexToRowId, indexToColId })\n }, [])\n\n // update the selection whilst properly handling the row-selection column\n const updateSelection = useCallback((selection: Set<CellId>, position: CellPosition) => {\n setSelectedCells((prevSelectedCells) => {\n let newSelection = new Set(selection)\n if (position.colId !== ROW_SELECTION_COLUMN_ID && position.colId !== DRAG_HANDLE_COLUMN_ID) {\n const rowSelection = Array.from(prevSelectedCells).filter(\n (id) => parseCellId(id)?.colId === ROW_SELECTION_COLUMN_ID,\n )\n if (rowSelection.length) {\n newSelection = new Set([...newSelection, ...rowSelection])\n }\n }\n return newSelection\n })\n }, [])\n\n // Select cells between two points in the grid\n const selectCellRange = useCallback(\n (start: CellPosition, end: CellPosition, additive: boolean): Set<CellId> => {\n if (!additive) {\n // Clear existing selection if not additive\n updateSelection(new Set(), start)\n }\n\n const startRowIdx = stableGridMap.rowIdToIndex.get(start.rowId) ?? 0\n const startColIdx = stableGridMap.colIdToIndex.get(start.colId) ?? 0\n const endRowIdx = stableGridMap.rowIdToIndex.get(end.rowId) ?? 0\n const endColIdx = stableGridMap.colIdToIndex.get(end.colId) ?? 0\n\n const minRowIdx = Math.min(startRowIdx, endRowIdx)\n const maxRowIdx = Math.max(startRowIdx, endRowIdx)\n const minColIdx = Math.min(startColIdx, endColIdx)\n const maxColIdx = Math.max(startColIdx, endColIdx)\n\n const newSelection = new Set(additive ? selectedCells : [])\n\n for (let r = minRowIdx; r <= maxRowIdx; r++) {\n const rowId = stableGridMap.indexToRowId.get(r)\n if (!rowId) continue\n\n for (let c = minColIdx; c <= maxColIdx; c++) {\n const colId = stableGridMap.indexToColId.get(c)\n if (!colId) continue\n\n newSelection.add(getCellId(rowId, colId))\n }\n }\n\n return newSelection\n },\n [stableGridMap, selectedCells, updateSelection],\n )\n\n // Start a selection operation\n const startSelection = useCallback(\n (cellId: CellId, additive: boolean) => {\n const position = parseCellId(cellId)\n if (!position) return\n\n setSelectionInProgress(true)\n // Store whether the initial cell was selected to determine drag behavior\n initialCellSelected.current = selectedCells.has(cellId)\n\n if (additive) {\n // Toggle this cell in multi-select mode\n setSelectedCells((prev) => {\n const newSelection = new Set(prev)\n if (newSelection.has(cellId)) {\n newSelection.delete(cellId)\n // If this was the focused cell, set focus to another cell in the selection or null\n if (focusedCellId === cellId) {\n if (newSelection.size > 0) {\n setFocusedCellId(Array.from(newSelection)[Array.from(newSelection).length - 1])\n } else {\n setFocusedCellId(null)\n }\n }\n } else {\n newSelection.add(cellId)\n setFocusedCellId(cellId)\n setAnchorCell(position)\n }\n return newSelection\n })\n } else {\n // Single cell selection\n // If this cell is already the only selected cell, deselect it\n // and it is from name column\n if (\n selectedCells.size === 1 &&\n selectedCells.has(cellId) &&\n [ROW_SELECTION_COLUMN_ID, 'name'].includes(position.colId)\n ) {\n setSelectedCells(new Set())\n setAnchorCell(null)\n setFocusedCellId(null)\n } else {\n updateSelection(new Set([cellId]), position)\n setAnchorCell(position)\n setFocusedCellId(cellId)\n }\n }\n },\n [selectedCells, focusedCellId, updateSelection],\n )\n\n // Extend the current selection during drag\n const extendSelection = useCallback(\n (cellId: CellId, isRowSelectionColumn?: boolean) => {\n if (!selectionInProgress || !anchorCell) return\n\n const currentPosition = parseCellId(cellId)\n if (!currentPosition) return\n\n if (isRowSelectionColumn) {\n // Handle row selection column differently during drag\n setSelectedCells((prev) => {\n const newSelection = new Set(prev)\n const position = parseCellId(cellId)\n\n if (!position) return newSelection\n\n // We're either selecting or unselecting based on the initial cell's state\n if (initialCellSelected.current) {\n // If we started on a selected cell, we're removing cells during drag\n newSelection.delete(cellId)\n } else {\n // If we started on an unselected cell, we're adding cells during drag\n newSelection.add(cellId)\n }\n\n return newSelection\n })\n } else {\n // For normal cells, use the range selection behavior\n const newSelection = selectCellRange(anchorCell, currentPosition, false)\n updateSelection(newSelection, currentPosition)\n }\n },\n [selectionInProgress, anchorCell, selectCellRange, updateSelection],\n )\n\n // End a selection operation\n const endSelection = useCallback(() => {\n setSelectionInProgress(false)\n }, [])\n\n // Select a cell (click or programmatically)\n const selectCell = useCallback(\n (cellId: CellId, additive: boolean, range: boolean) => {\n const position = parseCellId(cellId)\n if (!position) return\n\n if (range && anchorCell) {\n // Shift+click for range selection - select cells between anchor and current\n const newSelection = selectCellRange(anchorCell, position, additive)\n updateSelection(newSelection, position)\n } else if (additive) {\n // Ctrl/Cmd+click for toggling selection\n setSelectedCells((prev) => {\n const newSelection = new Set(prev)\n if (newSelection.has(cellId)) {\n newSelection.delete(cellId)\n } else {\n newSelection.add(cellId)\n }\n return newSelection\n })\n } else {\n // Normal click - select just this cell and set as new anchor\n updateSelection(new Set([cellId]), position)\n setAnchorCell(position)\n }\n },\n [anchorCell, selectCellRange, updateSelection],\n )\n\n // Focus a cell without changing selection\n const focusCell = useCallback((cellId: CellId | null) => {\n setFocusedCellId(cellId)\n }, [])\n\n // Clear all selections\n const clearSelection = useCallback(() => {\n setSelectedCells(new Set())\n setAnchorCell(null)\n setFocusedCellId(null)\n }, [])\n\n // Check if a cell is selected\n const isCellSelected = useCallback((cellId: CellId) => selectedCells.has(cellId), [selectedCells])\n\n // Check if a cell is focused\n const isCellFocused = useCallback((cellId: CellId) => cellId === focusedCellId, [focusedCellId])\n\n // Get position from cell ID - using shared utility\n const getCellPositionFromId = useCallback((cellId: CellId) => parseCellId(cellId), [])\n\n // Get border classes for a cell based on its selection state and neighbors\n const getCellBorderClasses = useCallback(\n (cellId: CellId): string[] => {\n if (!isCellSelected(cellId)) return []\n\n const position = parseCellId(cellId)\n if (!position) return []\n\n const rowIndex = stableGridMap.rowIdToIndex.get(position.rowId)\n const colIndex = stableGridMap.colIdToIndex.get(position.colId)\n\n if (rowIndex === undefined || colIndex === undefined) return []\n\n // Check if the cell's neighbors in all four directions are selected\n const top = stableGridMap.indexToRowId.get(rowIndex - 1)\n const right = stableGridMap.indexToColId.get(colIndex + 1)\n const bottom = stableGridMap.indexToRowId.get(rowIndex + 1)\n const left = stableGridMap.indexToColId.get(colIndex - 1)\n\n // Default to no borders\n let borderPos = BorderPosition.None\n\n // Top edge check: show border if we're at the top of the grid or the cell above is not selected\n if (!top || !selectedCells.has(getCellId(top, position.colId))) {\n borderPos |= BorderPosition.Top\n }\n\n // Right edge check: show border if we're at the right edge of the grid or the cell to the right is not selected\n if (!right || !selectedCells.has(getCellId(position.rowId, right))) {\n borderPos |= BorderPosition.Right\n }\n\n // Bottom edge check: show border if we're at the bottom of the grid or the cell below is not selected\n if (!bottom || !selectedCells.has(getCellId(bottom, position.colId))) {\n borderPos |= BorderPosition.Bottom\n }\n\n // Left edge check: show border if we're at the left edge of the grid or the cell to the left is not selected\n if (!left || !selectedCells.has(getCellId(position.rowId, left))) {\n borderPos |= BorderPosition.Left\n }\n\n return getBorderClasses(borderPos)\n },\n [selectedCells, stableGridMap, isCellSelected],\n )\n\n // Memoize context value to prevent unnecessary re-renders\n const value = useMemo(\n () => ({\n selectedCells,\n selectedRows,\n focusedCellId,\n selectionInProgress,\n anchorCell,\n gridMap: stableGridMap,\n setSelectedCells,\n setFocusedCellId,\n setAnchorCell,\n registerGrid,\n selectCell,\n startSelection,\n extendSelection,\n endSelection,\n focusCell,\n clearSelection,\n isCellSelected,\n isCellFocused,\n getCellPositionFromId,\n getCellBorderClasses,\n }),\n [\n selectedCells,\n selectedRows,\n focusedCellId,\n selectionInProgress,\n anchorCell,\n stableGridMap,\n setSelectedCells,\n setFocusedCellId,\n setAnchorCell,\n registerGrid,\n selectCell,\n startSelection,\n extendSelection,\n endSelection,\n focusCell,\n clearSelection,\n isCellSelected,\n isCellFocused,\n getCellPositionFromId,\n getCellBorderClasses,\n ],\n )\n\n return <SelectionCellsContext.Provider value={value}>{children}</SelectionCellsContext.Provider>\n}\n"],"names":["SelectionCellsProvider","children","selectedCells","setSelectedCells","useState","focusedCellId","setFocusedCellId","selectionInProgress","setSelectionInProgress","anchorCell","setAnchorCell","gridMap","setGridMap","mapToString","map","stableGridMap","useMemo","initialCellSelected","useRef","selectedRows","cellId","parseCellId","ROW_SELECTION_COLUMN_ID","useCheckSelectedCellsVisible","registerGrid","useCallback","rows","columns","rowIdToIndex","colIdToIndex","indexToRowId","indexToColId","rowId","index","colId","updateSelection","selection","position","prevSelectedCells","newSelection","DRAG_HANDLE_COLUMN_ID","rowSelection","id","selectCellRange","start","end","additive","startRowIdx","startColIdx","endRowIdx","endColIdx","minRowIdx","maxRowIdx","minColIdx","maxColIdx","r","c","getCellId","startSelection","prev","extendSelection","isRowSelectionColumn","currentPosition","endSelection","selectCell","range","focusCell","clearSelection","isCellSelected","isCellFocused","getCellPositionFromId","getCellBorderClasses","rowIndex","colIndex","top","right","bottom","left","borderPos","BorderPosition","getBorderClasses","value","jsx","SelectionCellsContext"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SelectionCellsProvider.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/context/SelectionCellsProvider.tsx"],"sourcesContent":["import React, { useState, useCallback, useMemo, ReactNode, useRef } from 'react'\nimport {\n CellId,\n RowId,\n ColId,\n CellPosition,\n getCellId,\n parseCellId,\n BorderPosition,\n getBorderClasses,\n} from '../utils/cellUtils'\nimport { DRAG_HANDLE_COLUMN_ID } from '../ProjectTreeTable'\nimport { SelectionCellsContext, GridMap, ROW_SELECTION_COLUMN_ID } from './SelectionCellsContext'\nimport { useCheckSelectedCellsVisible } from '../hooks'\n\nexport const SelectionCellsProvider: React.FC<{ children: ReactNode }> = ({ children }) => {\n const [selectedCells, setSelectedCells] = useState<Set<CellId>>(new Set())\n const [focusedCellId, setFocusedCellId] = useState<CellId | null>(null)\n const [selectionInProgress, setSelectionInProgress] = useState<boolean>(false)\n const [anchorCell, setAnchorCell] = useState<CellPosition | null>(null)\n const [gridMap, setGridMap] = useState<GridMap>({\n rowIdToIndex: new Map(),\n colIdToIndex: new Map(),\n indexToRowId: new Map(),\n indexToColId: new Map(),\n })\n const mapToString = (map: Map<any, any>) => {\n return JSON.stringify(Array.from(map.entries()))\n }\n\n const stableGridMap = useMemo(\n () => gridMap,\n [\n mapToString(gridMap.rowIdToIndex),\n mapToString(gridMap.colIdToIndex),\n mapToString(gridMap.indexToRowId),\n mapToString(gridMap.indexToColId),\n ],\n )\n // Track whether we're selecting or unselecting during drag\n const initialCellSelected = useRef<boolean>(false)\n\n const selectedRows = useMemo(\n () =>\n Array.from(selectedCells)\n .filter(\n (cellId) =>\n parseCellId(cellId)?.colId === ROW_SELECTION_COLUMN_ID && parseCellId(cellId)?.rowId,\n )\n .map((cellId) => parseCellId(cellId)?.rowId) as string[],\n [selectedCells],\n )\n\n useCheckSelectedCellsVisible({\n selectedCells,\n setSelectedCells,\n focusedCellId,\n setFocusedCellId,\n })\n\n // Register grid structure for range selections\n const registerGrid = useCallback((rows: RowId[], columns: ColId[]) => {\n const rowIdToIndex = new Map<RowId, number>()\n const colIdToIndex = new Map<ColId, number>()\n const indexToRowId = new Map<number, RowId>()\n const indexToColId = new Map<number, ColId>()\n\n rows.forEach((rowId, index) => {\n rowIdToIndex.set(rowId, index)\n indexToRowId.set(index, rowId)\n })\n\n columns.forEach((colId, index) => {\n colIdToIndex.set(colId, index)\n indexToColId.set(index, colId)\n })\n\n setGridMap({ rowIdToIndex, colIdToIndex, indexToRowId, indexToColId })\n }, [])\n\n // update the selection whilst properly handling the row-selection column\n const updateSelection = useCallback((selection: Set<CellId>, position: CellPosition) => {\n setSelectedCells((prevSelectedCells) => {\n let newSelection = new Set(selection)\n if (position.colId !== ROW_SELECTION_COLUMN_ID && position.colId !== DRAG_HANDLE_COLUMN_ID) {\n const rowSelection = Array.from(prevSelectedCells).filter(\n (id) => parseCellId(id)?.colId === ROW_SELECTION_COLUMN_ID,\n )\n if (rowSelection.length) {\n newSelection = new Set([...newSelection, ...rowSelection])\n }\n }\n return newSelection\n })\n }, [])\n\n // Select cells between two points in the grid\n const selectCellRange = useCallback(\n (start: CellPosition, end: CellPosition, additive: boolean): Set<CellId> => {\n if (!additive) {\n // Clear existing selection if not additive\n updateSelection(new Set(), start)\n }\n\n const startRowIdx = stableGridMap.rowIdToIndex.get(start.rowId) ?? 0\n const startColIdx = stableGridMap.colIdToIndex.get(start.colId) ?? 0\n const endRowIdx = stableGridMap.rowIdToIndex.get(end.rowId) ?? 0\n const endColIdx = stableGridMap.colIdToIndex.get(end.colId) ?? 0\n\n const minRowIdx = Math.min(startRowIdx, endRowIdx)\n const maxRowIdx = Math.max(startRowIdx, endRowIdx)\n const minColIdx = Math.min(startColIdx, endColIdx)\n const maxColIdx = Math.max(startColIdx, endColIdx)\n\n const newSelection = new Set(additive ? selectedCells : [])\n\n for (let r = minRowIdx; r <= maxRowIdx; r++) {\n const rowId = stableGridMap.indexToRowId.get(r)\n if (!rowId) continue\n\n for (let c = minColIdx; c <= maxColIdx; c++) {\n const colId = stableGridMap.indexToColId.get(c)\n if (!colId) continue\n\n newSelection.add(getCellId(rowId, colId))\n }\n }\n\n return newSelection\n },\n [stableGridMap, selectedCells, updateSelection],\n )\n\n // Start a selection operation\n const startSelection = useCallback(\n (cellId: CellId, additive: boolean) => {\n const position = parseCellId(cellId)\n if (!position) return\n\n setSelectionInProgress(true)\n // Store whether the initial cell was selected to determine drag behavior\n initialCellSelected.current = selectedCells.has(cellId)\n\n if (additive) {\n // Toggle this cell in multi-select mode\n setSelectedCells((prev) => {\n const newSelection = new Set(prev)\n if (newSelection.has(cellId)) {\n newSelection.delete(cellId)\n // If this was the focused cell, set focus to another cell in the selection or null\n if (focusedCellId === cellId) {\n if (newSelection.size > 0) {\n setFocusedCellId(Array.from(newSelection)[Array.from(newSelection).length - 1])\n } else {\n setFocusedCellId(null)\n }\n }\n } else {\n newSelection.add(cellId)\n setFocusedCellId(cellId)\n setAnchorCell(position)\n }\n return newSelection\n })\n } else {\n // Single cell selection\n // If this cell is already the only selected cell, deselect it\n // and it is from name column\n if (\n selectedCells.size === 1 &&\n selectedCells.has(cellId) &&\n [ROW_SELECTION_COLUMN_ID, 'name'].includes(position.colId)\n ) {\n setSelectedCells(new Set())\n setAnchorCell(null)\n setFocusedCellId(null)\n } else {\n updateSelection(new Set([cellId]), position)\n setAnchorCell(position)\n setFocusedCellId(cellId)\n }\n }\n },\n [selectedCells, focusedCellId, updateSelection],\n )\n\n // Extend the current selection during drag\n const extendSelection = useCallback(\n (cellId: CellId, isRowSelectionColumn?: boolean) => {\n if (!selectionInProgress || !anchorCell) return\n\n const currentPosition = parseCellId(cellId)\n if (!currentPosition) return\n\n if (isRowSelectionColumn) {\n // Handle row selection column differently during drag\n setSelectedCells((prev) => {\n const newSelection = new Set(prev)\n const position = parseCellId(cellId)\n\n if (!position) return newSelection\n\n // We're either selecting or unselecting based on the initial cell's state\n if (initialCellSelected.current) {\n // If we started on a selected cell, we're removing cells during drag\n newSelection.delete(cellId)\n } else {\n // If we started on an unselected cell, we're adding cells during drag\n newSelection.add(cellId)\n }\n\n return newSelection\n })\n } else {\n // For normal cells, use the range selection behavior\n const newSelection = selectCellRange(anchorCell, currentPosition, false)\n updateSelection(newSelection, currentPosition)\n }\n },\n [selectionInProgress, anchorCell, selectCellRange, updateSelection],\n )\n\n // End a selection operation\n const endSelection = useCallback(() => {\n setSelectionInProgress(false)\n }, [])\n\n // Select a cell (click or programmatically)\n const selectCell = useCallback(\n (cellId: CellId, additive: boolean, range: boolean) => {\n const position = parseCellId(cellId)\n if (!position) return\n\n if (range && anchorCell) {\n // Shift+click for range selection - select cells between anchor and current\n const newSelection = selectCellRange(anchorCell, position, additive)\n updateSelection(newSelection, position)\n } else if (additive) {\n // Ctrl/Cmd+click for toggling selection\n setSelectedCells((prev) => {\n const newSelection = new Set(prev)\n if (newSelection.has(cellId)) {\n newSelection.delete(cellId)\n } else {\n newSelection.add(cellId)\n }\n return newSelection\n })\n } else {\n // Normal click - select just this cell and set as new anchor\n updateSelection(new Set([cellId]), position)\n setAnchorCell(position)\n }\n },\n [anchorCell, selectCellRange, updateSelection],\n )\n\n // Focus a cell without changing selection\n const focusCell = useCallback((cellId: CellId | null) => {\n setFocusedCellId(cellId)\n }, [])\n\n // Clear all selections\n const clearSelection = useCallback(() => {\n setSelectedCells(new Set())\n setAnchorCell(null)\n setFocusedCellId(null)\n }, [])\n\n // Check if a cell is selected\n const isCellSelected = useCallback((cellId: CellId) => selectedCells.has(cellId), [selectedCells])\n\n // Check if a cell is focused\n const isCellFocused = useCallback((cellId: CellId) => cellId === focusedCellId, [focusedCellId])\n\n // Get position from cell ID - using shared utility\n const getCellPositionFromId = useCallback((cellId: CellId) => parseCellId(cellId), [])\n\n // Get border classes for a cell based on its selection state and neighbors\n const getCellBorderClasses = useCallback(\n (cellId: CellId): string[] => {\n if (!isCellSelected(cellId)) return []\n\n const position = parseCellId(cellId)\n if (!position) return []\n\n const rowIndex = stableGridMap.rowIdToIndex.get(position.rowId)\n const colIndex = stableGridMap.colIdToIndex.get(position.colId)\n\n if (rowIndex === undefined || colIndex === undefined) return []\n\n // Check if the cell's neighbors in all four directions are selected\n const top = stableGridMap.indexToRowId.get(rowIndex - 1)\n const right = stableGridMap.indexToColId.get(colIndex + 1)\n const bottom = stableGridMap.indexToRowId.get(rowIndex + 1)\n const left = stableGridMap.indexToColId.get(colIndex - 1)\n\n // Default to no borders\n let borderPos = BorderPosition.None\n\n // Top edge check: show border if we're at the top of the grid or the cell above is not selected\n if (!top || !selectedCells.has(getCellId(top, position.colId))) {\n borderPos |= BorderPosition.Top\n }\n\n // Right edge check: show border if we're at the right edge of the grid or the cell to the right is not selected\n if (!right || !selectedCells.has(getCellId(position.rowId, right))) {\n borderPos |= BorderPosition.Right\n }\n\n // Bottom edge check: show border if we're at the bottom of the grid or the cell below is not selected\n if (!bottom || !selectedCells.has(getCellId(bottom, position.colId))) {\n borderPos |= BorderPosition.Bottom\n }\n\n // Left edge check: show border if we're at the left edge of the grid or the cell to the left is not selected\n if (!left || !selectedCells.has(getCellId(position.rowId, left))) {\n borderPos |= BorderPosition.Left\n }\n\n return getBorderClasses(borderPos)\n },\n [selectedCells, stableGridMap, isCellSelected],\n )\n\n // Memoize context value to prevent unnecessary re-renders\n const value = useMemo(\n () => ({\n selectedCells,\n selectedRows,\n focusedCellId,\n selectionInProgress,\n anchorCell,\n gridMap: stableGridMap,\n setSelectedCells,\n setFocusedCellId,\n setAnchorCell,\n registerGrid,\n selectCell,\n startSelection,\n extendSelection,\n endSelection,\n focusCell,\n clearSelection,\n isCellSelected,\n isCellFocused,\n getCellPositionFromId,\n getCellBorderClasses,\n }),\n [\n selectedCells,\n selectedRows,\n focusedCellId,\n selectionInProgress,\n anchorCell,\n stableGridMap,\n setSelectedCells,\n setFocusedCellId,\n setAnchorCell,\n registerGrid,\n selectCell,\n startSelection,\n extendSelection,\n endSelection,\n focusCell,\n clearSelection,\n isCellSelected,\n isCellFocused,\n getCellPositionFromId,\n getCellBorderClasses,\n ],\n )\n\n return <SelectionCellsContext.Provider value={value}>{children}</SelectionCellsContext.Provider>\n}\n"],"names":["SelectionCellsProvider","children","selectedCells","setSelectedCells","useState","focusedCellId","setFocusedCellId","selectionInProgress","setSelectionInProgress","anchorCell","setAnchorCell","gridMap","setGridMap","mapToString","map","stableGridMap","useMemo","initialCellSelected","useRef","selectedRows","cellId","parseCellId","ROW_SELECTION_COLUMN_ID","useCheckSelectedCellsVisible","registerGrid","useCallback","rows","columns","rowIdToIndex","colIdToIndex","indexToRowId","indexToColId","rowId","index","colId","updateSelection","selection","position","prevSelectedCells","newSelection","DRAG_HANDLE_COLUMN_ID","rowSelection","id","selectCellRange","start","end","additive","startRowIdx","startColIdx","endRowIdx","endColIdx","minRowIdx","maxRowIdx","minColIdx","maxColIdx","r","c","getCellId","startSelection","prev","extendSelection","isRowSelectionColumn","currentPosition","endSelection","selectCell","range","focusCell","clearSelection","isCellSelected","isCellFocused","getCellPositionFromId","getCellBorderClasses","rowIndex","colIndex","top","right","bottom","left","borderPos","BorderPosition","getBorderClasses","value","jsx","SelectionCellsContext"],"mappings":"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"}
|
|
@@ -14,6 +14,7 @@ import "@ynput/ayon-react-components";
|
|
|
14
14
|
import "clsx";
|
|
15
15
|
import "../../ContextMenu/ContextMenuContext.es.js";
|
|
16
16
|
import "./ClipboardContext.es.js";
|
|
17
|
+
import "./ProjectDataContext.es.js";
|
|
17
18
|
import "./CellEditingContext.es.js";
|
|
18
19
|
import "@tanstack/react-table";
|
|
19
20
|
import "../widgets/CollapsedWidget.es.js";
|
|
@@ -84,6 +85,7 @@ import "../../../api/queries/entityLists/getLists.es.js";
|
|
|
84
85
|
import "../../../api/queries/entityLists/updateLists.es.js";
|
|
85
86
|
import "../../../api/queries/entityLists/getListsAttributes.es.js";
|
|
86
87
|
import "../../../api/queries/entityLists/updateListsAttributes.es.js";
|
|
88
|
+
import "../../../api/queries/entityLists/listFolders.es.js";
|
|
87
89
|
import "../../../api/queries/folders/getFolders.es.js";
|
|
88
90
|
import "../../../api/queries/grouping/getGrouping.es.js";
|
|
89
91
|
import "../../../api/queries/links/updateLinks.es.js";
|
|
@@ -122,6 +124,7 @@ import "../../../context/AddonProjectContext.es.js";
|
|
|
122
124
|
import "../../../context/AddonContext.es.js";
|
|
123
125
|
import "../../../context/PowerpackContext.es.js";
|
|
124
126
|
import "../../../context/MoveEntityContext.es.js";
|
|
127
|
+
import "../../../context/MenuContext.es.js";
|
|
125
128
|
import "../../../components/ReviewableCard/ReviewableCard.es.js";
|
|
126
129
|
import "../../../components/ReviewableProgressCard/ReviewableProgressCard.styled.es.js";
|
|
127
130
|
import "../../../components/FileThumbnail/FileThumbnail.es.js";
|
|
@@ -158,7 +161,6 @@ import "date-fns";
|
|
|
158
161
|
import "./ColumnSettingsContext.es.js";
|
|
159
162
|
import "./SelectedRowsContext.es.js";
|
|
160
163
|
import "./DetailsPanelEntityContext.es.js";
|
|
161
|
-
import "./ProjectDataContext.es.js";
|
|
162
164
|
import "../components/HeaderActionButton.es.js";
|
|
163
165
|
import "../components/RowSelectionHeader.es.js";
|
|
164
166
|
import "../components/SelectionCell.es.js";
|
|
@@ -186,13 +188,15 @@ import "../../../components/SimpleFormDialog/SimpleFormDialog.es.js";
|
|
|
186
188
|
import "../../../components/EntityPath/EntityPath.styled.es.js";
|
|
187
189
|
import "../../../components/EntityPath/SegmentProvider.es.js";
|
|
188
190
|
import "../../../components/DetailsPanelAttributes/DetailsPanelAttributesEditor.es.js";
|
|
191
|
+
import "../../../components/DetailsPanelDetails/DetailsPanelDetails.es.js";
|
|
192
|
+
import "../../../components/DetailsPanelDetails/DetailsSection.es.js";
|
|
193
|
+
import "../../../components/DetailsPanelDetails/FieldLabel.es.js";
|
|
189
194
|
import "../../../components/Watchers/Watchers.es.js";
|
|
190
195
|
import "../../../components/ProjectTableSettings/ProjectTableSettings.es.js";
|
|
191
196
|
import "../../../components/Powerpack/PowerpackButton.es.js";
|
|
192
197
|
import "../../../components/Powerpack/PricingLink.es.js";
|
|
193
198
|
import "../../../components/Powerpack/PowerpackDialog.styled.es.js";
|
|
194
199
|
import "../../../components/Powerpack/CTAButton.es.js";
|
|
195
|
-
import "../../../components/Powerpack/RequiredPowerpackVersion.es.js";
|
|
196
200
|
import "../../../components/SettingsPanel/SettingsPanel.es.js";
|
|
197
201
|
import "../../../components/SettingsPanel/SettingsPanelItemTemplate.es.js";
|
|
198
202
|
import "../../../components/AttributeEditor/components/MinMaxField.es.js";
|
|
@@ -206,14 +210,13 @@ import "../../../components/Feedback/SupportBubble.es.js";
|
|
|
206
210
|
import "../../../components/Chips/Chips.es.js";
|
|
207
211
|
import "../../../components/LinksManager/LinksManager.styled.es.js";
|
|
208
212
|
import "../../EntityPickerDialog/EntityPickerDialog.es.js";
|
|
209
|
-
import "../../../components/
|
|
210
|
-
import "../../../components/
|
|
211
|
-
import "../../../components/LinksManager/LinksManagerDialog.es.js";
|
|
213
|
+
import "../../../components/StyledLink/StyledLink.es.js";
|
|
214
|
+
import "../../../components/LinksManager/CellEditingDialog.es.js";
|
|
212
215
|
import "../ProjectTreeTable.styled.es.js";
|
|
213
216
|
import "../widgets/LoadMoreWidget.es.js";
|
|
214
217
|
import "../components/GroupSettingsFallback.es.js";
|
|
215
218
|
import { useCheckSelectedCellsVisible as io } from "../hooks/useCheckSelectedCellsVisible.es.js";
|
|
216
|
-
const
|
|
219
|
+
const ne = ({ children: q }) => {
|
|
217
220
|
const [m, I] = g(/* @__PURE__ */ new Set()), [u, c] = g(null), [M, b] = g(!1), [w, x] = g(null), [S, K] = g({
|
|
218
221
|
rowIdToIndex: /* @__PURE__ */ new Map(),
|
|
219
222
|
colIdToIndex: /* @__PURE__ */ new Map(),
|
|
@@ -386,6 +389,6 @@ const ee = ({ children: q }) => {
|
|
|
386
389
|
return /* @__PURE__ */ Z.jsx(ro.Provider, { value: Q, children: q });
|
|
387
390
|
};
|
|
388
391
|
export {
|
|
389
|
-
|
|
392
|
+
ne as SelectionCellsProvider
|
|
390
393
|
};
|
|
391
394
|
//# sourceMappingURL=SelectionCellsProvider.es.js.map
|
package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectionCellsProvider.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/context/SelectionCellsProvider.tsx"],"sourcesContent":["import React, { useState, useCallback, useMemo, ReactNode, useRef } from 'react'\nimport {\n CellId,\n RowId,\n ColId,\n CellPosition,\n getCellId,\n parseCellId,\n BorderPosition,\n getBorderClasses,\n} from '../utils/cellUtils'\nimport { DRAG_HANDLE_COLUMN_ID } from '../ProjectTreeTable'\nimport { SelectionCellsContext, GridMap, ROW_SELECTION_COLUMN_ID } from './SelectionCellsContext'\nimport { useCheckSelectedCellsVisible } from '../hooks'\n\nexport const SelectionCellsProvider: React.FC<{ children: ReactNode }> = ({ children }) => {\n const [selectedCells, setSelectedCells] = useState<Set<CellId>>(new Set())\n const [focusedCellId, setFocusedCellId] = useState<CellId | null>(null)\n const [selectionInProgress, setSelectionInProgress] = useState<boolean>(false)\n const [anchorCell, setAnchorCell] = useState<CellPosition | null>(null)\n const [gridMap, setGridMap] = useState<GridMap>({\n rowIdToIndex: new Map(),\n colIdToIndex: new Map(),\n indexToRowId: new Map(),\n indexToColId: new Map(),\n })\n const mapToString = (map: Map<any, any>) => {\n return JSON.stringify(Array.from(map.entries()))\n }\n\n const stableGridMap = useMemo(\n () => gridMap,\n [\n mapToString(gridMap.rowIdToIndex),\n mapToString(gridMap.colIdToIndex),\n mapToString(gridMap.indexToRowId),\n mapToString(gridMap.indexToColId),\n ],\n )\n // Track whether we're selecting or unselecting during drag\n const initialCellSelected = useRef<boolean>(false)\n\n const selectedRows = useMemo(\n () =>\n Array.from(selectedCells)\n .filter(\n (cellId) =>\n parseCellId(cellId)?.colId === ROW_SELECTION_COLUMN_ID && parseCellId(cellId)?.rowId,\n )\n .map((cellId) => parseCellId(cellId)?.rowId) as string[],\n [selectedCells],\n )\n\n useCheckSelectedCellsVisible({\n selectedCells,\n setSelectedCells,\n focusedCellId,\n setFocusedCellId,\n })\n\n // Register grid structure for range selections\n const registerGrid = useCallback((rows: RowId[], columns: ColId[]) => {\n const rowIdToIndex = new Map<RowId, number>()\n const colIdToIndex = new Map<ColId, number>()\n const indexToRowId = new Map<number, RowId>()\n const indexToColId = new Map<number, ColId>()\n\n rows.forEach((rowId, index) => {\n rowIdToIndex.set(rowId, index)\n indexToRowId.set(index, rowId)\n })\n\n columns.forEach((colId, index) => {\n colIdToIndex.set(colId, index)\n indexToColId.set(index, colId)\n })\n\n setGridMap({ rowIdToIndex, colIdToIndex, indexToRowId, indexToColId })\n }, [])\n\n // update the selection whilst properly handling the row-selection column\n const updateSelection = useCallback((selection: Set<CellId>, position: CellPosition) => {\n setSelectedCells((prevSelectedCells) => {\n let newSelection = new Set(selection)\n if (position.colId !== ROW_SELECTION_COLUMN_ID && position.colId !== DRAG_HANDLE_COLUMN_ID) {\n const rowSelection = Array.from(prevSelectedCells).filter(\n (id) => parseCellId(id)?.colId === ROW_SELECTION_COLUMN_ID,\n )\n if (rowSelection.length) {\n newSelection = new Set([...newSelection, ...rowSelection])\n }\n }\n return newSelection\n })\n }, [])\n\n // Select cells between two points in the grid\n const selectCellRange = useCallback(\n (start: CellPosition, end: CellPosition, additive: boolean): Set<CellId> => {\n if (!additive) {\n // Clear existing selection if not additive\n updateSelection(new Set(), start)\n }\n\n const startRowIdx = stableGridMap.rowIdToIndex.get(start.rowId) ?? 0\n const startColIdx = stableGridMap.colIdToIndex.get(start.colId) ?? 0\n const endRowIdx = stableGridMap.rowIdToIndex.get(end.rowId) ?? 0\n const endColIdx = stableGridMap.colIdToIndex.get(end.colId) ?? 0\n\n const minRowIdx = Math.min(startRowIdx, endRowIdx)\n const maxRowIdx = Math.max(startRowIdx, endRowIdx)\n const minColIdx = Math.min(startColIdx, endColIdx)\n const maxColIdx = Math.max(startColIdx, endColIdx)\n\n const newSelection = new Set(additive ? selectedCells : [])\n\n for (let r = minRowIdx; r <= maxRowIdx; r++) {\n const rowId = stableGridMap.indexToRowId.get(r)\n if (!rowId) continue\n\n for (let c = minColIdx; c <= maxColIdx; c++) {\n const colId = stableGridMap.indexToColId.get(c)\n if (!colId) continue\n\n newSelection.add(getCellId(rowId, colId))\n }\n }\n\n return newSelection\n },\n [stableGridMap, selectedCells, updateSelection],\n )\n\n // Start a selection operation\n const startSelection = useCallback(\n (cellId: CellId, additive: boolean) => {\n const position = parseCellId(cellId)\n if (!position) return\n\n setSelectionInProgress(true)\n // Store whether the initial cell was selected to determine drag behavior\n initialCellSelected.current = selectedCells.has(cellId)\n\n if (additive) {\n // Toggle this cell in multi-select mode\n setSelectedCells((prev) => {\n const newSelection = new Set(prev)\n if (newSelection.has(cellId)) {\n newSelection.delete(cellId)\n // If this was the focused cell, set focus to another cell in the selection or null\n if (focusedCellId === cellId) {\n if (newSelection.size > 0) {\n setFocusedCellId(Array.from(newSelection)[Array.from(newSelection).length - 1])\n } else {\n setFocusedCellId(null)\n }\n }\n } else {\n newSelection.add(cellId)\n setFocusedCellId(cellId)\n setAnchorCell(position)\n }\n return newSelection\n })\n } else {\n // Single cell selection\n // If this cell is already the only selected cell, deselect it\n // and it is from name column\n if (\n selectedCells.size === 1 &&\n selectedCells.has(cellId) &&\n [ROW_SELECTION_COLUMN_ID, 'name'].includes(position.colId)\n ) {\n setSelectedCells(new Set())\n setAnchorCell(null)\n setFocusedCellId(null)\n } else {\n updateSelection(new Set([cellId]), position)\n setAnchorCell(position)\n setFocusedCellId(cellId)\n }\n }\n },\n [selectedCells, focusedCellId, updateSelection],\n )\n\n // Extend the current selection during drag\n const extendSelection = useCallback(\n (cellId: CellId, isRowSelectionColumn?: boolean) => {\n if (!selectionInProgress || !anchorCell) return\n\n const currentPosition = parseCellId(cellId)\n if (!currentPosition) return\n\n if (isRowSelectionColumn) {\n // Handle row selection column differently during drag\n setSelectedCells((prev) => {\n const newSelection = new Set(prev)\n const position = parseCellId(cellId)\n\n if (!position) return newSelection\n\n // We're either selecting or unselecting based on the initial cell's state\n if (initialCellSelected.current) {\n // If we started on a selected cell, we're removing cells during drag\n newSelection.delete(cellId)\n } else {\n // If we started on an unselected cell, we're adding cells during drag\n newSelection.add(cellId)\n }\n\n return newSelection\n })\n } else {\n // For normal cells, use the range selection behavior\n const newSelection = selectCellRange(anchorCell, currentPosition, false)\n updateSelection(newSelection, currentPosition)\n }\n },\n [selectionInProgress, anchorCell, selectCellRange, updateSelection],\n )\n\n // End a selection operation\n const endSelection = useCallback(() => {\n setSelectionInProgress(false)\n }, [])\n\n // Select a cell (click or programmatically)\n const selectCell = useCallback(\n (cellId: CellId, additive: boolean, range: boolean) => {\n const position = parseCellId(cellId)\n if (!position) return\n\n if (range && anchorCell) {\n // Shift+click for range selection - select cells between anchor and current\n const newSelection = selectCellRange(anchorCell, position, additive)\n updateSelection(newSelection, position)\n } else if (additive) {\n // Ctrl/Cmd+click for toggling selection\n setSelectedCells((prev) => {\n const newSelection = new Set(prev)\n if (newSelection.has(cellId)) {\n newSelection.delete(cellId)\n } else {\n newSelection.add(cellId)\n }\n return newSelection\n })\n } else {\n // Normal click - select just this cell and set as new anchor\n updateSelection(new Set([cellId]), position)\n setAnchorCell(position)\n }\n },\n [anchorCell, selectCellRange, updateSelection],\n )\n\n // Focus a cell without changing selection\n const focusCell = useCallback((cellId: CellId | null) => {\n setFocusedCellId(cellId)\n }, [])\n\n // Clear all selections\n const clearSelection = useCallback(() => {\n setSelectedCells(new Set())\n setAnchorCell(null)\n setFocusedCellId(null)\n }, [])\n\n // Check if a cell is selected\n const isCellSelected = useCallback((cellId: CellId) => selectedCells.has(cellId), [selectedCells])\n\n // Check if a cell is focused\n const isCellFocused = useCallback((cellId: CellId) => cellId === focusedCellId, [focusedCellId])\n\n // Get position from cell ID - using shared utility\n const getCellPositionFromId = useCallback((cellId: CellId) => parseCellId(cellId), [])\n\n // Get border classes for a cell based on its selection state and neighbors\n const getCellBorderClasses = useCallback(\n (cellId: CellId): string[] => {\n if (!isCellSelected(cellId)) return []\n\n const position = parseCellId(cellId)\n if (!position) return []\n\n const rowIndex = stableGridMap.rowIdToIndex.get(position.rowId)\n const colIndex = stableGridMap.colIdToIndex.get(position.colId)\n\n if (rowIndex === undefined || colIndex === undefined) return []\n\n // Check if the cell's neighbors in all four directions are selected\n const top = stableGridMap.indexToRowId.get(rowIndex - 1)\n const right = stableGridMap.indexToColId.get(colIndex + 1)\n const bottom = stableGridMap.indexToRowId.get(rowIndex + 1)\n const left = stableGridMap.indexToColId.get(colIndex - 1)\n\n // Default to no borders\n let borderPos = BorderPosition.None\n\n // Top edge check: show border if we're at the top of the grid or the cell above is not selected\n if (!top || !selectedCells.has(getCellId(top, position.colId))) {\n borderPos |= BorderPosition.Top\n }\n\n // Right edge check: show border if we're at the right edge of the grid or the cell to the right is not selected\n if (!right || !selectedCells.has(getCellId(position.rowId, right))) {\n borderPos |= BorderPosition.Right\n }\n\n // Bottom edge check: show border if we're at the bottom of the grid or the cell below is not selected\n if (!bottom || !selectedCells.has(getCellId(bottom, position.colId))) {\n borderPos |= BorderPosition.Bottom\n }\n\n // Left edge check: show border if we're at the left edge of the grid or the cell to the left is not selected\n if (!left || !selectedCells.has(getCellId(position.rowId, left))) {\n borderPos |= BorderPosition.Left\n }\n\n return getBorderClasses(borderPos)\n },\n [selectedCells, stableGridMap, isCellSelected],\n )\n\n // Memoize context value to prevent unnecessary re-renders\n const value = useMemo(\n () => ({\n selectedCells,\n selectedRows,\n focusedCellId,\n selectionInProgress,\n anchorCell,\n gridMap: stableGridMap,\n setSelectedCells,\n setFocusedCellId,\n setAnchorCell,\n registerGrid,\n selectCell,\n startSelection,\n extendSelection,\n endSelection,\n focusCell,\n clearSelection,\n isCellSelected,\n isCellFocused,\n getCellPositionFromId,\n getCellBorderClasses,\n }),\n [\n selectedCells,\n selectedRows,\n focusedCellId,\n selectionInProgress,\n anchorCell,\n stableGridMap,\n setSelectedCells,\n setFocusedCellId,\n setAnchorCell,\n registerGrid,\n selectCell,\n startSelection,\n extendSelection,\n endSelection,\n focusCell,\n clearSelection,\n isCellSelected,\n isCellFocused,\n getCellPositionFromId,\n getCellBorderClasses,\n ],\n )\n\n return <SelectionCellsContext.Provider value={value}>{children}</SelectionCellsContext.Provider>\n}\n"],"names":["SelectionCellsProvider","children","selectedCells","setSelectedCells","useState","focusedCellId","setFocusedCellId","selectionInProgress","setSelectionInProgress","anchorCell","setAnchorCell","gridMap","setGridMap","mapToString","map","stableGridMap","useMemo","initialCellSelected","useRef","selectedRows","cellId","_a","parseCellId","ROW_SELECTION_COLUMN_ID","_b","useCheckSelectedCellsVisible","registerGrid","useCallback","rows","columns","rowIdToIndex","colIdToIndex","indexToRowId","indexToColId","rowId","index","colId","updateSelection","selection","position","prevSelectedCells","newSelection","DRAG_HANDLE_COLUMN_ID","rowSelection","id","selectCellRange","start","end","additive","startRowIdx","startColIdx","endRowIdx","endColIdx","minRowIdx","maxRowIdx","minColIdx","maxColIdx","r","c","getCellId","startSelection","prev","extendSelection","isRowSelectionColumn","currentPosition","endSelection","selectCell","range","focusCell","clearSelection","isCellSelected","isCellFocused","getCellPositionFromId","getCellBorderClasses","rowIndex","colIndex","top","right","bottom","left","borderPos","BorderPosition","getBorderClasses","value","jsx","SelectionCellsContext"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SelectionCellsProvider.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/context/SelectionCellsProvider.tsx"],"sourcesContent":["import React, { useState, useCallback, useMemo, ReactNode, useRef } from 'react'\nimport {\n CellId,\n RowId,\n ColId,\n CellPosition,\n getCellId,\n parseCellId,\n BorderPosition,\n getBorderClasses,\n} from '../utils/cellUtils'\nimport { DRAG_HANDLE_COLUMN_ID } from '../ProjectTreeTable'\nimport { SelectionCellsContext, GridMap, ROW_SELECTION_COLUMN_ID } from './SelectionCellsContext'\nimport { useCheckSelectedCellsVisible } from '../hooks'\n\nexport const SelectionCellsProvider: React.FC<{ children: ReactNode }> = ({ children }) => {\n const [selectedCells, setSelectedCells] = useState<Set<CellId>>(new Set())\n const [focusedCellId, setFocusedCellId] = useState<CellId | null>(null)\n const [selectionInProgress, setSelectionInProgress] = useState<boolean>(false)\n const [anchorCell, setAnchorCell] = useState<CellPosition | null>(null)\n const [gridMap, setGridMap] = useState<GridMap>({\n rowIdToIndex: new Map(),\n colIdToIndex: new Map(),\n indexToRowId: new Map(),\n indexToColId: new Map(),\n })\n const mapToString = (map: Map<any, any>) => {\n return JSON.stringify(Array.from(map.entries()))\n }\n\n const stableGridMap = useMemo(\n () => gridMap,\n [\n mapToString(gridMap.rowIdToIndex),\n mapToString(gridMap.colIdToIndex),\n mapToString(gridMap.indexToRowId),\n mapToString(gridMap.indexToColId),\n ],\n )\n // Track whether we're selecting or unselecting during drag\n const initialCellSelected = useRef<boolean>(false)\n\n const selectedRows = useMemo(\n () =>\n Array.from(selectedCells)\n .filter(\n (cellId) =>\n parseCellId(cellId)?.colId === ROW_SELECTION_COLUMN_ID && parseCellId(cellId)?.rowId,\n )\n .map((cellId) => parseCellId(cellId)?.rowId) as string[],\n [selectedCells],\n )\n\n useCheckSelectedCellsVisible({\n selectedCells,\n setSelectedCells,\n focusedCellId,\n setFocusedCellId,\n })\n\n // Register grid structure for range selections\n const registerGrid = useCallback((rows: RowId[], columns: ColId[]) => {\n const rowIdToIndex = new Map<RowId, number>()\n const colIdToIndex = new Map<ColId, number>()\n const indexToRowId = new Map<number, RowId>()\n const indexToColId = new Map<number, ColId>()\n\n rows.forEach((rowId, index) => {\n rowIdToIndex.set(rowId, index)\n indexToRowId.set(index, rowId)\n })\n\n columns.forEach((colId, index) => {\n colIdToIndex.set(colId, index)\n indexToColId.set(index, colId)\n })\n\n setGridMap({ rowIdToIndex, colIdToIndex, indexToRowId, indexToColId })\n }, [])\n\n // update the selection whilst properly handling the row-selection column\n const updateSelection = useCallback((selection: Set<CellId>, position: CellPosition) => {\n setSelectedCells((prevSelectedCells) => {\n let newSelection = new Set(selection)\n if (position.colId !== ROW_SELECTION_COLUMN_ID && position.colId !== DRAG_HANDLE_COLUMN_ID) {\n const rowSelection = Array.from(prevSelectedCells).filter(\n (id) => parseCellId(id)?.colId === ROW_SELECTION_COLUMN_ID,\n )\n if (rowSelection.length) {\n newSelection = new Set([...newSelection, ...rowSelection])\n }\n }\n return newSelection\n })\n }, [])\n\n // Select cells between two points in the grid\n const selectCellRange = useCallback(\n (start: CellPosition, end: CellPosition, additive: boolean): Set<CellId> => {\n if (!additive) {\n // Clear existing selection if not additive\n updateSelection(new Set(), start)\n }\n\n const startRowIdx = stableGridMap.rowIdToIndex.get(start.rowId) ?? 0\n const startColIdx = stableGridMap.colIdToIndex.get(start.colId) ?? 0\n const endRowIdx = stableGridMap.rowIdToIndex.get(end.rowId) ?? 0\n const endColIdx = stableGridMap.colIdToIndex.get(end.colId) ?? 0\n\n const minRowIdx = Math.min(startRowIdx, endRowIdx)\n const maxRowIdx = Math.max(startRowIdx, endRowIdx)\n const minColIdx = Math.min(startColIdx, endColIdx)\n const maxColIdx = Math.max(startColIdx, endColIdx)\n\n const newSelection = new Set(additive ? selectedCells : [])\n\n for (let r = minRowIdx; r <= maxRowIdx; r++) {\n const rowId = stableGridMap.indexToRowId.get(r)\n if (!rowId) continue\n\n for (let c = minColIdx; c <= maxColIdx; c++) {\n const colId = stableGridMap.indexToColId.get(c)\n if (!colId) continue\n\n newSelection.add(getCellId(rowId, colId))\n }\n }\n\n return newSelection\n },\n [stableGridMap, selectedCells, updateSelection],\n )\n\n // Start a selection operation\n const startSelection = useCallback(\n (cellId: CellId, additive: boolean) => {\n const position = parseCellId(cellId)\n if (!position) return\n\n setSelectionInProgress(true)\n // Store whether the initial cell was selected to determine drag behavior\n initialCellSelected.current = selectedCells.has(cellId)\n\n if (additive) {\n // Toggle this cell in multi-select mode\n setSelectedCells((prev) => {\n const newSelection = new Set(prev)\n if (newSelection.has(cellId)) {\n newSelection.delete(cellId)\n // If this was the focused cell, set focus to another cell in the selection or null\n if (focusedCellId === cellId) {\n if (newSelection.size > 0) {\n setFocusedCellId(Array.from(newSelection)[Array.from(newSelection).length - 1])\n } else {\n setFocusedCellId(null)\n }\n }\n } else {\n newSelection.add(cellId)\n setFocusedCellId(cellId)\n setAnchorCell(position)\n }\n return newSelection\n })\n } else {\n // Single cell selection\n // If this cell is already the only selected cell, deselect it\n // and it is from name column\n if (\n selectedCells.size === 1 &&\n selectedCells.has(cellId) &&\n [ROW_SELECTION_COLUMN_ID, 'name'].includes(position.colId)\n ) {\n setSelectedCells(new Set())\n setAnchorCell(null)\n setFocusedCellId(null)\n } else {\n updateSelection(new Set([cellId]), position)\n setAnchorCell(position)\n setFocusedCellId(cellId)\n }\n }\n },\n [selectedCells, focusedCellId, updateSelection],\n )\n\n // Extend the current selection during drag\n const extendSelection = useCallback(\n (cellId: CellId, isRowSelectionColumn?: boolean) => {\n if (!selectionInProgress || !anchorCell) return\n\n const currentPosition = parseCellId(cellId)\n if (!currentPosition) return\n\n if (isRowSelectionColumn) {\n // Handle row selection column differently during drag\n setSelectedCells((prev) => {\n const newSelection = new Set(prev)\n const position = parseCellId(cellId)\n\n if (!position) return newSelection\n\n // We're either selecting or unselecting based on the initial cell's state\n if (initialCellSelected.current) {\n // If we started on a selected cell, we're removing cells during drag\n newSelection.delete(cellId)\n } else {\n // If we started on an unselected cell, we're adding cells during drag\n newSelection.add(cellId)\n }\n\n return newSelection\n })\n } else {\n // For normal cells, use the range selection behavior\n const newSelection = selectCellRange(anchorCell, currentPosition, false)\n updateSelection(newSelection, currentPosition)\n }\n },\n [selectionInProgress, anchorCell, selectCellRange, updateSelection],\n )\n\n // End a selection operation\n const endSelection = useCallback(() => {\n setSelectionInProgress(false)\n }, [])\n\n // Select a cell (click or programmatically)\n const selectCell = useCallback(\n (cellId: CellId, additive: boolean, range: boolean) => {\n const position = parseCellId(cellId)\n if (!position) return\n\n if (range && anchorCell) {\n // Shift+click for range selection - select cells between anchor and current\n const newSelection = selectCellRange(anchorCell, position, additive)\n updateSelection(newSelection, position)\n } else if (additive) {\n // Ctrl/Cmd+click for toggling selection\n setSelectedCells((prev) => {\n const newSelection = new Set(prev)\n if (newSelection.has(cellId)) {\n newSelection.delete(cellId)\n } else {\n newSelection.add(cellId)\n }\n return newSelection\n })\n } else {\n // Normal click - select just this cell and set as new anchor\n updateSelection(new Set([cellId]), position)\n setAnchorCell(position)\n }\n },\n [anchorCell, selectCellRange, updateSelection],\n )\n\n // Focus a cell without changing selection\n const focusCell = useCallback((cellId: CellId | null) => {\n setFocusedCellId(cellId)\n }, [])\n\n // Clear all selections\n const clearSelection = useCallback(() => {\n setSelectedCells(new Set())\n setAnchorCell(null)\n setFocusedCellId(null)\n }, [])\n\n // Check if a cell is selected\n const isCellSelected = useCallback((cellId: CellId) => selectedCells.has(cellId), [selectedCells])\n\n // Check if a cell is focused\n const isCellFocused = useCallback((cellId: CellId) => cellId === focusedCellId, [focusedCellId])\n\n // Get position from cell ID - using shared utility\n const getCellPositionFromId = useCallback((cellId: CellId) => parseCellId(cellId), [])\n\n // Get border classes for a cell based on its selection state and neighbors\n const getCellBorderClasses = useCallback(\n (cellId: CellId): string[] => {\n if (!isCellSelected(cellId)) return []\n\n const position = parseCellId(cellId)\n if (!position) return []\n\n const rowIndex = stableGridMap.rowIdToIndex.get(position.rowId)\n const colIndex = stableGridMap.colIdToIndex.get(position.colId)\n\n if (rowIndex === undefined || colIndex === undefined) return []\n\n // Check if the cell's neighbors in all four directions are selected\n const top = stableGridMap.indexToRowId.get(rowIndex - 1)\n const right = stableGridMap.indexToColId.get(colIndex + 1)\n const bottom = stableGridMap.indexToRowId.get(rowIndex + 1)\n const left = stableGridMap.indexToColId.get(colIndex - 1)\n\n // Default to no borders\n let borderPos = BorderPosition.None\n\n // Top edge check: show border if we're at the top of the grid or the cell above is not selected\n if (!top || !selectedCells.has(getCellId(top, position.colId))) {\n borderPos |= BorderPosition.Top\n }\n\n // Right edge check: show border if we're at the right edge of the grid or the cell to the right is not selected\n if (!right || !selectedCells.has(getCellId(position.rowId, right))) {\n borderPos |= BorderPosition.Right\n }\n\n // Bottom edge check: show border if we're at the bottom of the grid or the cell below is not selected\n if (!bottom || !selectedCells.has(getCellId(bottom, position.colId))) {\n borderPos |= BorderPosition.Bottom\n }\n\n // Left edge check: show border if we're at the left edge of the grid or the cell to the left is not selected\n if (!left || !selectedCells.has(getCellId(position.rowId, left))) {\n borderPos |= BorderPosition.Left\n }\n\n return getBorderClasses(borderPos)\n },\n [selectedCells, stableGridMap, isCellSelected],\n )\n\n // Memoize context value to prevent unnecessary re-renders\n const value = useMemo(\n () => ({\n selectedCells,\n selectedRows,\n focusedCellId,\n selectionInProgress,\n anchorCell,\n gridMap: stableGridMap,\n setSelectedCells,\n setFocusedCellId,\n setAnchorCell,\n registerGrid,\n selectCell,\n startSelection,\n extendSelection,\n endSelection,\n focusCell,\n clearSelection,\n isCellSelected,\n isCellFocused,\n getCellPositionFromId,\n getCellBorderClasses,\n }),\n [\n selectedCells,\n selectedRows,\n focusedCellId,\n selectionInProgress,\n anchorCell,\n stableGridMap,\n setSelectedCells,\n setFocusedCellId,\n setAnchorCell,\n registerGrid,\n selectCell,\n startSelection,\n extendSelection,\n endSelection,\n focusCell,\n clearSelection,\n isCellSelected,\n isCellFocused,\n getCellPositionFromId,\n getCellBorderClasses,\n ],\n )\n\n return <SelectionCellsContext.Provider value={value}>{children}</SelectionCellsContext.Provider>\n}\n"],"names":["SelectionCellsProvider","children","selectedCells","setSelectedCells","useState","focusedCellId","setFocusedCellId","selectionInProgress","setSelectionInProgress","anchorCell","setAnchorCell","gridMap","setGridMap","mapToString","map","stableGridMap","useMemo","initialCellSelected","useRef","selectedRows","cellId","_a","parseCellId","ROW_SELECTION_COLUMN_ID","_b","useCheckSelectedCellsVisible","registerGrid","useCallback","rows","columns","rowIdToIndex","colIdToIndex","indexToRowId","indexToColId","rowId","index","colId","updateSelection","selection","position","prevSelectedCells","newSelection","DRAG_HANDLE_COLUMN_ID","rowSelection","id","selectCellRange","start","end","additive","startRowIdx","startColIdx","endRowIdx","endColIdx","minRowIdx","maxRowIdx","minColIdx","maxColIdx","r","c","getCellId","startSelection","prev","extendSelection","isRowSelectionColumn","currentPosition","endSelection","selectCell","range","focusCell","clearSelection","isCellSelected","isCellFocused","getCellPositionFromId","getCellBorderClasses","rowIndex","colIndex","top","right","bottom","left","borderPos","BorderPosition","getBorderClasses","value","jsx","SelectionCellsContext"],"mappings":"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"}
|
package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.cjs.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("lodash");require("react-toastify");const
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("lodash");require("react-toastify");const M=require("../../../../util/getEntityId.cjs.js");require("../../../../util/pubsub.cjs.js");const x=require("./clipboardTypes.cjs.js"),f=require("./clipboardUtils.cjs.js"),N=["assignees","status","subType"],P=S=>{const{colId:t,isFolder:g,pasteValue:l,parsedData:u,columnEnums:h,columnReadOnly:w,rowIndex:m,colIndex:I,isSingleCellValue:y,attribFields:$=[]}=S;if(!l)return!0;if(w.includes(t.replace("attrib_","")))return f.clipboardError(`This column is read-only: "${t}". Paste operation cancelled.`),!1;if(t.startsWith("link_"))return l.split(",").map(i=>i.trim()).every(i=>M.validateEntityId(i))?!0:(f.clipboardError(`Invalid link id format: "${l}". Paste operation cancelled.`),!1);if(N.includes(t)){let e=t;t==="assignees"?e="assignee":t==="subType"?e=g?"folderType":"taskType":t==="status"&&(e="status");const a=h[e]||[];if(a.length===0)return!0;const i=l.split(",").map(r=>r.trim()),o=[];for(const r of i){const s=a.find(c=>c.value===r||c.label===r);if(s){o.push(String(s.value));continue}const d=a.find(c=>String(c.value).toLowerCase()===r.toLowerCase()||String(c.label).toLowerCase()===r.toLowerCase());if(d){o.push(String(d.value));continue}if(t!=="assignees"){const c=t==="subType"?`${g?"folder":"task"} type`:t==="status"?"status":t;return f.clipboardError(`Invalid ${c} value: "${l}". Paste operation cancelled.`),!1}}if(t==="assignees"&&o.length===0)return f.clipboardError(`Invalid assignee value: "${l}". No matching assignees found. Paste operation cancelled.`),!1;const n=o.join(", ");if(n!==l)if(y)u[0].values[0]=n;else{const r=m%u.length,s=I%u[r].values.length;u[r].values[s]=n}return!0}if(t.startsWith("attrib_")){const e=t.replace("attrib_",""),a=$.find(i=>i.name===e);if(a){if(a.data.type==="integer"||a.data.type==="float"){const i=l.trim();if(!/^[-+]?(\d+\.?\d*|\.\d+)([eE][-+]?\d+)?$/.test(i)){const n=a.data.type==="integer"?"integer":"number";return f.clipboardError(`Invalid ${n} value: "${l}". Must be a valid ${n}. Paste operation cancelled.`),!1}if(a.data.type==="integer"){const n=parseFloat(i);if(!Number.isInteger(n))return f.clipboardError(`Invalid integer value: "${l}". Must be a whole number. Paste operation cancelled.`),!1}return!0}if(a.data.type==="string"&&a.data.enum&&a.data.enum.length>0){const i=l.split(",").map(s=>s.trim()),{validValues:o,hasInvalidValues:n}=i.reduce((s,d)=>{const c=a.data.enum.find(v=>v.value===d||v.label===d);if(c)return s.validValues.push(String(c.value)),s;const C=a.data.enum.find(v=>String(v.value).toLowerCase()===d.toLowerCase()||String(v.label).toLowerCase()===d.toLowerCase());return C?(s.validValues.push(String(C.value)),s):(s.hasInvalidValues=!0,s.validValues.push(d),s)},{validValues:[],hasInvalidValues:!1});if(n)return f.clipboardError(`Invalid ${e} value: "${l}". Must be one of the available options. Paste operation cancelled.`),!1;const r=o.join(", ");if(r!==l)if(y)u[0].values[0]=r;else{const s=m%u.length,d=I%u[s].values.length;u[s].values[d]=r}return!0}}}let p=t==="subType"?g?"folderType":"taskType":t;if(p=x.builtInFieldMappings[p]||p,!(p in h))return!0;const b=h[p];if(!Array.isArray(b)||b.length===0)return!0;const E=l.split(",").map(e=>e.trim()),{validValues:T,hasInvalidValues:L}=E.reduce((e,a)=>{const i=b.find(n=>n.value===a||n.label===a);if(i)return e.validValues.push(String(i.value)),e;const o=b.find(n=>String(n.value).toLowerCase()===a.toLowerCase()||String(n.label).toLowerCase()===a.toLowerCase());return o?(e.validValues.push(String(o.value)),e):(e.hasInvalidValues=!0,e.validValues.push(a),e)},{validValues:[],hasInvalidValues:!1});if(L){const e=p==="folderType"||p==="taskType"?`${g?"folder":"task"} type`:p;return f.clipboardError(`Invalid ${e} value: "${l}". Paste operation cancelled.`),!1}const V=T.join(", ");if(V!==l)if(y)u[0].values[0]=V;else{const e=m%u.length,a=I%u[e].values.length;u[e].values[a]=V}return!0};exports.validateClipboardData=P;
|
|
2
2
|
//# sourceMappingURL=clipboardValidation.cjs.js.map
|
package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.cjs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clipboardValidation.cjs.js","sources":["../../../../../../../src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.ts"],"sourcesContent":["import { validateEntityId } from '@shared/util'\nimport { ColumnEnums, builtInFieldMappings, ParsedClipboardData } from './clipboardTypes'\nimport { clipboardError } from './clipboardUtils'\n\n// Validate clipboard data for enum fields and handle special cases\nexport const validateClipboardData = (params: {\n colId: string\n isFolder: boolean\n pasteValue: string\n parsedData: ParsedClipboardData[]\n columnEnums: ColumnEnums\n columnReadOnly: string[]\n rowIndex: number\n colIndex: number\n isSingleCellValue: boolean\n}): boolean => {\n const {\n colId,\n isFolder,\n pasteValue,\n parsedData,\n columnEnums,\n columnReadOnly,\n rowIndex,\n colIndex,\n isSingleCellValue,\n } = params\n\n // Skip validation for empty values\n if (!pasteValue) return true\n\n // Check if the column is read-only\n if (columnReadOnly.includes(colId.replace('attrib_', ''))) {\n clipboardError(`This column is read-only: \"${colId}\". Paste operation cancelled.`)\n return false\n }\n\n // special handling for links\n if (colId.startsWith('link_')) {\n // Split entity Ids by comma\n const entityIds = pasteValue.split(',').map((v) => v.trim())\n\n // check every id is valid\n const isValid = entityIds.every((id) => validateEntityId(id))\n if (isValid) return true\n else {\n clipboardError(`Invalid link id format: \"${pasteValue}\". Paste operation cancelled.`)\n return false\n }\n }\n\n // Special handling for assignees - filter out invalid values instead of canceling\n if (colId === 'assignees') {\n // Split assignees by comma\n const assigneeValues = pasteValue.split(',').map((v) => v.trim())\n\n // Get assignee options from columnEnums\n const assigneeOptions = columnEnums['assignee'] || []\n\n // Filter to keep only valid assignees\n const validAssignees = assigneeValues.filter((v) =>\n assigneeOptions.some((opt) => opt.value === v || opt.label === v),\n )\n\n // Update the paste value in the parsed data\n if (isSingleCellValue) {\n parsedData[0].values[0] = validAssignees.join(', ')\n } else {\n const pasteRowIndex = rowIndex % parsedData.length\n const pasteColIndex = colIndex % parsedData[pasteRowIndex].values.length\n parsedData[pasteRowIndex].values[pasteColIndex] = validAssignees.join(', ')\n }\n\n return true\n }\n\n // Map subType to the actual field name\n let fieldId = colId === 'subType' ? (isFolder ? 'folderType' : 'taskType') : colId\n // Check if fieldId has a mapping to plural enum\n fieldId = builtInFieldMappings[fieldId as keyof typeof builtInFieldMappings] || fieldId\n\n // Skip validation for fields that don't have enums\n if (!(fieldId in columnEnums)) return true\n\n // Get the enum values for this field\n const enumOptions = columnEnums[fieldId as keyof typeof columnEnums]\n\n // Skip if no enum options are available\n if (!Array.isArray(enumOptions) || enumOptions.length === 0) return true\n\n // Check if the pasted value exists in the enum options\n const enumValues = pasteValue.split(',').map((v) => v.trim())\n const valueExists = enumValues.every((v) =>\n enumOptions.some((opt) => opt.value === v || opt.label === v),\n )\n\n if (!valueExists) {\n // Get a display name for the field (folderType/taskType → Type)\n const displayName =\n fieldId === 'folderType' || fieldId === 'taskType'\n ? `${isFolder ? 'folder' : 'task'} type`\n : fieldId\n\n clipboardError(`Invalid ${displayName} value: \"${pasteValue}\". Paste operation cancelled.`)\n return false\n }\n\n return true\n}\n"],"names":["validateClipboardData","params","colId","isFolder","pasteValue","parsedData","columnEnums","columnReadOnly","rowIndex","colIndex","isSingleCellValue","clipboardError","v","id","validateEntityId","assigneeValues","assigneeOptions","validAssignees","opt","pasteRowIndex","pasteColIndex","fieldId","builtInFieldMappings","enumOptions","displayName"],"mappings":"6SAKaA,EAAyBC,GAUvB,CACP,KAAA,CACJ,MAAAC,EACA,SAAAC,EACA,WAAAC,EACA,WAAAC,EACA,YAAAC,EACA,eAAAC,EACA,SAAAC,EACA,SAAAC,EACA,kBAAAC,CAAA,EACET,EAGA,GAAA,CAACG,EAAmB,MAAA,GAGxB,GAAIG,EAAe,SAASL,EAAM,QAAQ,UAAW,EAAE,CAAC,EACvCS,OAAAA,EAAAA,eAAA,8BAA8BT,CAAK,+BAA+B,EAC1E,GAIL,GAAAA,EAAM,WAAW,OAAO,EAM1B,OAJkBE,EAAW,MAAM,GAAG,EAAE,IAAKQ,GAAMA,EAAE,MAAM,EAGjC,MAAOC,GAAOC,EAAAA,iBAAiBD,CAAE,CAAC,EACxC,IAEHF,EAAAA,eAAA,4BAA4BP,CAAU,+BAA+B,EAC7E,IAKX,GAAIF,IAAU,YAAa,CAEnB,MAAAa,EAAiBX,EAAW,MAAM,GAAG,EAAE,IAAKQ,GAAMA,EAAE,MAAM,EAG1DI,EAAkBV,EAAY,UAAe,CAAC,EAG9CW,EAAiBF,EAAe,OAAQH,GAC5CI,EAAgB,KAAME,GAAQA,EAAI,QAAUN,GAAKM,EAAI,QAAUN,CAAC,CAClE,EAGA,GAAIF,EACFL,EAAW,CAAC,EAAE,OAAO,CAAC,EAAIY,EAAe,KAAK,IAAI,MAC7C,CACC,MAAAE,EAAgBX,EAAWH,EAAW,OACtCe,EAAgBX,EAAWJ,EAAWc,CAAa,EAAE,OAAO,OAClEd,EAAWc,CAAa,EAAE,OAAOC,CAAa,EAAIH,EAAe,KAAK,IAAI,CAAA,CAGrE,MAAA,EAAA,CAIT,IAAII,EAAUnB,IAAU,UAAaC,EAAW,aAAe,WAAcD,EAKzE,GAHMmB,EAAAC,EAAAA,qBAAqBD,CAA4C,GAAKA,EAG5E,EAAEA,KAAWf,GAAqB,MAAA,GAGhC,MAAAiB,EAAcjB,EAAYe,CAAmC,EAG/D,GAAA,CAAC,MAAM,QAAQE,CAAW,GAAKA,EAAY,SAAW,EAAU,MAAA,GAQpE,GAAI,CALenB,EAAW,MAAM,GAAG,EAAE,IAAKQ,GAAMA,EAAE,MAAM,EAC7B,MAAOA,GACpCW,EAAY,KAAML,GAAQA,EAAI,QAAUN,GAAKM,EAAI,QAAUN,CAAC,CAC9D,EAEkB,CAEV,MAAAY,EACJH,IAAY,cAAgBA,IAAY,WACpC,GAAGlB,EAAW,SAAW,MAAM,QAC/BkB,EAENV,OAAAA,EAAA,eAAe,WAAWa,CAAW,YAAYpB,CAAU,+BAA+B,EACnF,EAAA,CAGF,MAAA,EACT"}
|
|
1
|
+
{"version":3,"file":"clipboardValidation.cjs.js","sources":["../../../../../../../src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.ts"],"sourcesContent":["import { validateEntityId } from '@shared/util'\nimport { ColumnEnums, builtInFieldMappings, ParsedClipboardData } from './clipboardTypes'\nimport { clipboardError } from './clipboardUtils'\n\n// Columns that should have case-insensitive matching and value correction like assignees\nconst CASE_INSENSITIVE_COLUMNS = ['assignees', 'status', 'subType']\n\n// Validate clipboard data for enum fields and handle special cases\nexport const validateClipboardData = (params: {\n colId: string\n isFolder: boolean\n pasteValue: string\n parsedData: ParsedClipboardData[]\n columnEnums: ColumnEnums\n columnReadOnly: string[]\n rowIndex: number\n colIndex: number\n isSingleCellValue: boolean\n attribFields?: Array<{\n name: string\n data: { type: string; enum?: Array<{ value: string | number | boolean; label: string }> }\n }>\n}): boolean => {\n const {\n colId,\n isFolder,\n pasteValue,\n parsedData,\n columnEnums,\n columnReadOnly,\n rowIndex,\n colIndex,\n isSingleCellValue,\n attribFields = [],\n } = params\n\n // Skip validation for empty values\n if (!pasteValue) return true\n\n // Check if the column is read-only\n if (columnReadOnly.includes(colId.replace('attrib_', ''))) {\n clipboardError(`This column is read-only: \"${colId}\". Paste operation cancelled.`)\n return false\n }\n\n // special handling for links\n if (colId.startsWith('link_')) {\n // Split entity Ids by comma\n const entityIds = pasteValue.split(',').map((v) => v.trim())\n\n // check every id is valid\n const isValid = entityIds.every((id) => validateEntityId(id))\n if (isValid) return true\n else {\n clipboardError(`Invalid link id format: \"${pasteValue}\". Paste operation cancelled.`)\n return false\n }\n }\n\n // Special handling for columns that should have case-insensitive matching\n if (CASE_INSENSITIVE_COLUMNS.includes(colId)) {\n // Determine the enum key based on the column\n let enumKey = colId\n if (colId === 'assignees') {\n enumKey = 'assignee' // assignees uses 'assignee' enum key\n } else if (colId === 'subType') {\n enumKey = isFolder ? 'folderType' : 'taskType'\n } else if (colId === 'status') {\n enumKey = 'status'\n }\n\n // Get enum options\n const enumOptions = columnEnums[enumKey as keyof typeof columnEnums] || []\n\n if (enumOptions.length === 0) {\n // If no enum options available, skip validation\n return true\n }\n\n // Split values by comma\n const inputValues = pasteValue.split(',').map((v) => v.trim())\n const validValues: string[] = []\n\n for (const v of inputValues) {\n // First try exact match\n const exactMatch = enumOptions.find((opt) => opt.value === v || opt.label === v)\n if (exactMatch) {\n validValues.push(String(exactMatch.value))\n continue\n }\n\n // Try case-insensitive match\n const caseInsensitiveMatch = enumOptions.find(\n (opt) =>\n String(opt.value).toLowerCase() === v.toLowerCase() ||\n String(opt.label).toLowerCase() === v.toLowerCase(),\n )\n if (caseInsensitiveMatch) {\n validValues.push(String(caseInsensitiveMatch.value))\n continue\n }\n\n // For assignees, skip invalid values instead of failing\n if (colId === 'assignees') {\n // Skip invalid assignees\n } else {\n // For other columns, fail validation\n const displayName = colId === 'subType'\n ? `${isFolder ? 'folder' : 'task'} type`\n : colId === 'status'\n ? 'status'\n : colId\n clipboardError(`Invalid ${displayName} value: \"${pasteValue}\". Paste operation cancelled.`)\n return false\n }\n }\n\n // For assignees, require at least one valid value\n if (colId === 'assignees' && validValues.length === 0) {\n clipboardError(\n `Invalid assignee value: \"${pasteValue}\". No matching assignees found. Paste operation cancelled.`,\n )\n return false\n }\n\n // Update the paste value in the parsed data with corrected case\n const correctedValue = validValues.join(', ')\n\n if (correctedValue !== pasteValue) {\n if (isSingleCellValue) {\n parsedData[0].values[0] = correctedValue\n } else {\n const pasteRowIndex = rowIndex % parsedData.length\n const pasteColIndex = colIndex % parsedData[pasteRowIndex].values.length\n parsedData[pasteRowIndex].values[pasteColIndex] = correctedValue\n }\n }\n\n return true\n }\n\n // Validate attribute fields with specific type validation\n if (colId.startsWith('attrib_')) {\n const attributeName = colId.replace('attrib_', '')\n const attribute = attribFields.find((attr) => attr.name === attributeName)\n\n if (attribute) {\n // Number field validation (integer/float attributes)\n if (attribute.data.type === 'integer' || attribute.data.type === 'float') {\n // Check if the pasted value is a valid number\n const trimmedValue = pasteValue.trim()\n const isValidNumber = /^[-+]?(\\d+\\.?\\d*|\\.\\d+)([eE][-+]?\\d+)?$/.test(trimmedValue)\n\n if (!isValidNumber) {\n const fieldType = attribute.data.type === 'integer' ? 'integer' : 'number'\n clipboardError(\n `Invalid ${fieldType} value: \"${pasteValue}\". Must be a valid ${fieldType}. Paste operation cancelled.`,\n )\n return false\n }\n\n // For integer fields, check that it's actually an integer\n if (attribute.data.type === 'integer') {\n const num = parseFloat(trimmedValue)\n if (!Number.isInteger(num)) {\n clipboardError(\n `Invalid integer value: \"${pasteValue}\". Must be a whole number. Paste operation cancelled.`,\n )\n return false\n }\n }\n\n return true\n }\n\n // String enum validation for attributes with enum options\n if (\n attribute.data.type === 'string' &&\n attribute.data.enum &&\n attribute.data.enum.length > 0\n ) {\n const enumValues = pasteValue.split(',').map((v) => v.trim())\n\n // Try to match each value, with fallback to case-insensitive matching\n const { validValues, hasInvalidValues } = enumValues.reduce(\n (acc, v) => {\n // First try exact match\n const exactMatch = attribute.data.enum!.find(\n (opt) => opt.value === v || opt.label === v,\n )\n if (exactMatch) {\n acc.validValues.push(String(exactMatch.value))\n return acc\n }\n\n // Try case-insensitive match\n const caseInsensitiveMatch = attribute.data.enum!.find(\n (opt) =>\n String(opt.value).toLowerCase() === v.toLowerCase() ||\n String(opt.label).toLowerCase() === v.toLowerCase(),\n )\n if (caseInsensitiveMatch) {\n acc.validValues.push(String(caseInsensitiveMatch.value))\n return acc\n }\n\n // No match found\n acc.hasInvalidValues = true\n acc.validValues.push(v) // Keep original value for error message\n return acc\n },\n { validValues: [] as string[], hasInvalidValues: false },\n )\n\n if (hasInvalidValues) {\n clipboardError(\n `Invalid ${attributeName} value: \"${pasteValue}\". Must be one of the available options. Paste operation cancelled.`,\n )\n return false\n }\n\n // Update the paste value with corrected case if any corrections were made\n const correctedValue = validValues.join(', ')\n if (correctedValue !== pasteValue) {\n if (isSingleCellValue) {\n parsedData[0].values[0] = correctedValue\n } else {\n const pasteRowIndex = rowIndex % parsedData.length\n const pasteColIndex = colIndex % parsedData[pasteRowIndex].values.length\n parsedData[pasteRowIndex].values[pasteColIndex] = correctedValue\n }\n }\n\n return true\n }\n }\n }\n\n // Map subType to the actual field name\n let fieldId = colId === 'subType' ? (isFolder ? 'folderType' : 'taskType') : colId\n // Check if fieldId has a mapping to plural enum\n fieldId = builtInFieldMappings[fieldId as keyof typeof builtInFieldMappings] || fieldId\n\n // Skip validation for fields that don't have enums\n if (!(fieldId in columnEnums)) return true\n\n // Get the enum values for this field\n const enumOptions = columnEnums[fieldId as keyof typeof columnEnums]\n\n // Skip if no enum options are available\n if (!Array.isArray(enumOptions) || enumOptions.length === 0) return true\n\n // Check if the pasted value exists in the enum options with case-insensitive matching\n const enumValues = pasteValue.split(',').map((v) => v.trim())\n\n // Try to match each value, with fallback to case-insensitive matching\n const { validValues, hasInvalidValues } = enumValues.reduce(\n (acc, v) => {\n // First try exact match\n const exactMatch = enumOptions.find((opt) => opt.value === v || opt.label === v)\n if (exactMatch) {\n acc.validValues.push(String(exactMatch.value))\n return acc\n }\n\n // Try case-insensitive match\n const caseInsensitiveMatch = enumOptions.find(\n (opt) =>\n String(opt.value).toLowerCase() === v.toLowerCase() ||\n String(opt.label).toLowerCase() === v.toLowerCase(),\n )\n if (caseInsensitiveMatch) {\n acc.validValues.push(String(caseInsensitiveMatch.value))\n return acc\n }\n\n // No match found\n acc.hasInvalidValues = true\n acc.validValues.push(v) // Keep original value for error message\n return acc\n },\n { validValues: [] as string[], hasInvalidValues: false },\n )\n\n if (hasInvalidValues) {\n // Get a display name for the field (folderType/taskType → Type)\n const displayName =\n fieldId === 'folderType' || fieldId === 'taskType'\n ? `${isFolder ? 'folder' : 'task'} type`\n : fieldId\n\n clipboardError(`Invalid ${displayName} value: \"${pasteValue}\". Paste operation cancelled.`)\n return false\n }\n\n // Update the paste value with corrected case if any corrections were made\n const correctedValue = validValues.join(', ')\n if (correctedValue !== pasteValue) {\n if (isSingleCellValue) {\n parsedData[0].values[0] = correctedValue\n } else {\n const pasteRowIndex = rowIndex % parsedData.length\n const pasteColIndex = colIndex % parsedData[pasteRowIndex].values.length\n parsedData[pasteRowIndex].values[pasteColIndex] = correctedValue\n }\n }\n\n return true\n}\n"],"names":["CASE_INSENSITIVE_COLUMNS","validateClipboardData","params","colId","isFolder","pasteValue","parsedData","columnEnums","columnReadOnly","rowIndex","colIndex","isSingleCellValue","attribFields","clipboardError","v","id","validateEntityId","enumKey","enumOptions","inputValues","validValues","exactMatch","opt","caseInsensitiveMatch","displayName","correctedValue","pasteRowIndex","pasteColIndex","attributeName","attribute","attr","trimmedValue","fieldType","num","enumValues","hasInvalidValues","acc","fieldId","builtInFieldMappings"],"mappings":"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"}
|
package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.es.js
CHANGED
|
@@ -1,46 +1,143 @@
|
|
|
1
1
|
import "lodash";
|
|
2
2
|
import "react-toastify";
|
|
3
|
-
import { validateEntityId as
|
|
3
|
+
import { validateEntityId as N } from "../../../../util/getEntityId.es.js";
|
|
4
4
|
import "../../../../util/pubsub.es.js";
|
|
5
|
-
import { builtInFieldMappings as
|
|
6
|
-
import { clipboardError as
|
|
7
|
-
const
|
|
5
|
+
import { builtInFieldMappings as M } from "./clipboardTypes.es.js";
|
|
6
|
+
import { clipboardError as c } from "./clipboardUtils.es.js";
|
|
7
|
+
const P = ["assignees", "status", "subType"], j = (w) => {
|
|
8
8
|
const {
|
|
9
9
|
colId: a,
|
|
10
|
-
isFolder:
|
|
11
|
-
pasteValue:
|
|
12
|
-
parsedData:
|
|
13
|
-
columnEnums:
|
|
14
|
-
columnReadOnly:
|
|
15
|
-
rowIndex:
|
|
16
|
-
colIndex:
|
|
17
|
-
isSingleCellValue:
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
if (
|
|
21
|
-
|
|
10
|
+
isFolder: m,
|
|
11
|
+
pasteValue: n,
|
|
12
|
+
parsedData: u,
|
|
13
|
+
columnEnums: h,
|
|
14
|
+
columnReadOnly: S,
|
|
15
|
+
rowIndex: I,
|
|
16
|
+
colIndex: V,
|
|
17
|
+
isSingleCellValue: y,
|
|
18
|
+
attribFields: $ = []
|
|
19
|
+
} = w;
|
|
20
|
+
if (!n) return !0;
|
|
21
|
+
if (S.includes(a.replace("attrib_", "")))
|
|
22
|
+
return c(`This column is read-only: "${a}". Paste operation cancelled.`), !1;
|
|
22
23
|
if (a.startsWith("link_"))
|
|
23
|
-
return
|
|
24
|
-
if (a
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
if (
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
24
|
+
return n.split(",").map((i) => i.trim()).every((i) => N(i)) ? !0 : (c(`Invalid link id format: "${n}". Paste operation cancelled.`), !1);
|
|
25
|
+
if (P.includes(a)) {
|
|
26
|
+
let t = a;
|
|
27
|
+
a === "assignees" ? t = "assignee" : a === "subType" ? t = m ? "folderType" : "taskType" : a === "status" && (t = "status");
|
|
28
|
+
const e = h[t] || [];
|
|
29
|
+
if (e.length === 0)
|
|
30
|
+
return !0;
|
|
31
|
+
const i = n.split(",").map((r) => r.trim()), o = [];
|
|
32
|
+
for (const r of i) {
|
|
33
|
+
const s = e.find((f) => f.value === r || f.label === r);
|
|
34
|
+
if (s) {
|
|
35
|
+
o.push(String(s.value));
|
|
36
|
+
continue;
|
|
37
|
+
}
|
|
38
|
+
const d = e.find(
|
|
39
|
+
(f) => String(f.value).toLowerCase() === r.toLowerCase() || String(f.label).toLowerCase() === r.toLowerCase()
|
|
40
|
+
);
|
|
41
|
+
if (d) {
|
|
42
|
+
o.push(String(d.value));
|
|
43
|
+
continue;
|
|
44
|
+
}
|
|
45
|
+
if (a !== "assignees") return c(`Invalid ${a === "subType" ? `${m ? "folder" : "task"} type` : a === "status" ? "status" : a} value: "${n}". Paste operation cancelled.`), !1;
|
|
33
46
|
}
|
|
47
|
+
if (a === "assignees" && o.length === 0)
|
|
48
|
+
return c(
|
|
49
|
+
`Invalid assignee value: "${n}". No matching assignees found. Paste operation cancelled.`
|
|
50
|
+
), !1;
|
|
51
|
+
const l = o.join(", ");
|
|
52
|
+
if (l !== n)
|
|
53
|
+
if (y)
|
|
54
|
+
u[0].values[0] = l;
|
|
55
|
+
else {
|
|
56
|
+
const r = I % u.length, s = V % u[r].values.length;
|
|
57
|
+
u[r].values[s] = l;
|
|
58
|
+
}
|
|
34
59
|
return !0;
|
|
35
60
|
}
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
61
|
+
if (a.startsWith("attrib_")) {
|
|
62
|
+
const t = a.replace("attrib_", ""), e = $.find((i) => i.name === t);
|
|
63
|
+
if (e) {
|
|
64
|
+
if (e.data.type === "integer" || e.data.type === "float") {
|
|
65
|
+
const i = n.trim();
|
|
66
|
+
if (!/^[-+]?(\d+\.?\d*|\.\d+)([eE][-+]?\d+)?$/.test(i)) {
|
|
67
|
+
const l = e.data.type === "integer" ? "integer" : "number";
|
|
68
|
+
return c(
|
|
69
|
+
`Invalid ${l} value: "${n}". Must be a valid ${l}. Paste operation cancelled.`
|
|
70
|
+
), !1;
|
|
71
|
+
}
|
|
72
|
+
if (e.data.type === "integer") {
|
|
73
|
+
const l = parseFloat(i);
|
|
74
|
+
if (!Number.isInteger(l))
|
|
75
|
+
return c(
|
|
76
|
+
`Invalid integer value: "${n}". Must be a whole number. Paste operation cancelled.`
|
|
77
|
+
), !1;
|
|
78
|
+
}
|
|
79
|
+
return !0;
|
|
80
|
+
}
|
|
81
|
+
if (e.data.type === "string" && e.data.enum && e.data.enum.length > 0) {
|
|
82
|
+
const i = n.split(",").map((s) => s.trim()), { validValues: o, hasInvalidValues: l } = i.reduce(
|
|
83
|
+
(s, d) => {
|
|
84
|
+
const f = e.data.enum.find(
|
|
85
|
+
(v) => v.value === d || v.label === d
|
|
86
|
+
);
|
|
87
|
+
if (f)
|
|
88
|
+
return s.validValues.push(String(f.value)), s;
|
|
89
|
+
const C = e.data.enum.find(
|
|
90
|
+
(v) => String(v.value).toLowerCase() === d.toLowerCase() || String(v.label).toLowerCase() === d.toLowerCase()
|
|
91
|
+
);
|
|
92
|
+
return C ? (s.validValues.push(String(C.value)), s) : (s.hasInvalidValues = !0, s.validValues.push(d), s);
|
|
93
|
+
},
|
|
94
|
+
{ validValues: [], hasInvalidValues: !1 }
|
|
95
|
+
);
|
|
96
|
+
if (l)
|
|
97
|
+
return c(
|
|
98
|
+
`Invalid ${t} value: "${n}". Must be one of the available options. Paste operation cancelled.`
|
|
99
|
+
), !1;
|
|
100
|
+
const r = o.join(", ");
|
|
101
|
+
if (r !== n)
|
|
102
|
+
if (y)
|
|
103
|
+
u[0].values[0] = r;
|
|
104
|
+
else {
|
|
105
|
+
const s = I % u.length, d = V % u[s].values.length;
|
|
106
|
+
u[s].values[d] = r;
|
|
107
|
+
}
|
|
108
|
+
return !0;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
let p = a === "subType" ? m ? "folderType" : "taskType" : a;
|
|
113
|
+
if (p = M[p] || p, !(p in h)) return !0;
|
|
114
|
+
const g = h[p];
|
|
115
|
+
if (!Array.isArray(g) || g.length === 0) return !0;
|
|
116
|
+
const L = n.split(",").map((t) => t.trim()), { validValues: T, hasInvalidValues: x } = L.reduce(
|
|
117
|
+
(t, e) => {
|
|
118
|
+
const i = g.find((l) => l.value === e || l.label === e);
|
|
119
|
+
if (i)
|
|
120
|
+
return t.validValues.push(String(i.value)), t;
|
|
121
|
+
const o = g.find(
|
|
122
|
+
(l) => String(l.value).toLowerCase() === e.toLowerCase() || String(l.label).toLowerCase() === e.toLowerCase()
|
|
123
|
+
);
|
|
124
|
+
return o ? (t.validValues.push(String(o.value)), t) : (t.hasInvalidValues = !0, t.validValues.push(e), t);
|
|
125
|
+
},
|
|
126
|
+
{ validValues: [], hasInvalidValues: !1 }
|
|
127
|
+
);
|
|
128
|
+
if (x)
|
|
129
|
+
return c(`Invalid ${p === "folderType" || p === "taskType" ? `${m ? "folder" : "task"} type` : p} value: "${n}". Paste operation cancelled.`), !1;
|
|
130
|
+
const b = T.join(", ");
|
|
131
|
+
if (b !== n)
|
|
132
|
+
if (y)
|
|
133
|
+
u[0].values[0] = b;
|
|
134
|
+
else {
|
|
135
|
+
const t = I % u.length, e = V % u[t].values.length;
|
|
136
|
+
u[t].values[e] = b;
|
|
137
|
+
}
|
|
138
|
+
return !0;
|
|
42
139
|
};
|
|
43
140
|
export {
|
|
44
|
-
|
|
141
|
+
j as validateClipboardData
|
|
45
142
|
};
|
|
46
143
|
//# sourceMappingURL=clipboardValidation.es.js.map
|
package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.es.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clipboardValidation.es.js","sources":["../../../../../../../src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.ts"],"sourcesContent":["import { validateEntityId } from '@shared/util'\nimport { ColumnEnums, builtInFieldMappings, ParsedClipboardData } from './clipboardTypes'\nimport { clipboardError } from './clipboardUtils'\n\n// Validate clipboard data for enum fields and handle special cases\nexport const validateClipboardData = (params: {\n colId: string\n isFolder: boolean\n pasteValue: string\n parsedData: ParsedClipboardData[]\n columnEnums: ColumnEnums\n columnReadOnly: string[]\n rowIndex: number\n colIndex: number\n isSingleCellValue: boolean\n}): boolean => {\n const {\n colId,\n isFolder,\n pasteValue,\n parsedData,\n columnEnums,\n columnReadOnly,\n rowIndex,\n colIndex,\n isSingleCellValue,\n } = params\n\n // Skip validation for empty values\n if (!pasteValue) return true\n\n // Check if the column is read-only\n if (columnReadOnly.includes(colId.replace('attrib_', ''))) {\n clipboardError(`This column is read-only: \"${colId}\". Paste operation cancelled.`)\n return false\n }\n\n // special handling for links\n if (colId.startsWith('link_')) {\n // Split entity Ids by comma\n const entityIds = pasteValue.split(',').map((v) => v.trim())\n\n // check every id is valid\n const isValid = entityIds.every((id) => validateEntityId(id))\n if (isValid) return true\n else {\n clipboardError(`Invalid link id format: \"${pasteValue}\". Paste operation cancelled.`)\n return false\n }\n }\n\n // Special handling for assignees - filter out invalid values instead of canceling\n if (colId === 'assignees') {\n // Split assignees by comma\n const assigneeValues = pasteValue.split(',').map((v) => v.trim())\n\n // Get assignee options from columnEnums\n const assigneeOptions = columnEnums['assignee'] || []\n\n // Filter to keep only valid assignees\n const validAssignees = assigneeValues.filter((v) =>\n assigneeOptions.some((opt) => opt.value === v || opt.label === v),\n )\n\n // Update the paste value in the parsed data\n if (isSingleCellValue) {\n parsedData[0].values[0] = validAssignees.join(', ')\n } else {\n const pasteRowIndex = rowIndex % parsedData.length\n const pasteColIndex = colIndex % parsedData[pasteRowIndex].values.length\n parsedData[pasteRowIndex].values[pasteColIndex] = validAssignees.join(', ')\n }\n\n return true\n }\n\n // Map subType to the actual field name\n let fieldId = colId === 'subType' ? (isFolder ? 'folderType' : 'taskType') : colId\n // Check if fieldId has a mapping to plural enum\n fieldId = builtInFieldMappings[fieldId as keyof typeof builtInFieldMappings] || fieldId\n\n // Skip validation for fields that don't have enums\n if (!(fieldId in columnEnums)) return true\n\n // Get the enum values for this field\n const enumOptions = columnEnums[fieldId as keyof typeof columnEnums]\n\n // Skip if no enum options are available\n if (!Array.isArray(enumOptions) || enumOptions.length === 0) return true\n\n // Check if the pasted value exists in the enum options\n const enumValues = pasteValue.split(',').map((v) => v.trim())\n const valueExists = enumValues.every((v) =>\n enumOptions.some((opt) => opt.value === v || opt.label === v),\n )\n\n if (!valueExists) {\n // Get a display name for the field (folderType/taskType → Type)\n const displayName =\n fieldId === 'folderType' || fieldId === 'taskType'\n ? `${isFolder ? 'folder' : 'task'} type`\n : fieldId\n\n clipboardError(`Invalid ${displayName} value: \"${pasteValue}\". Paste operation cancelled.`)\n return false\n }\n\n return true\n}\n"],"names":["validateClipboardData","params","colId","isFolder","pasteValue","parsedData","columnEnums","columnReadOnly","rowIndex","colIndex","isSingleCellValue","clipboardError","v","id","validateEntityId","assigneeValues","assigneeOptions","validAssignees","opt","pasteRowIndex","pasteColIndex","fieldId","builtInFieldMappings","enumOptions"],"mappings":";;;;;;AAKa,MAAAA,IAAwB,CAACC,MAUvB;AACP,QAAA;AAAA,IACJ,OAAAC;AAAA,IACA,UAAAC;AAAA,IACA,YAAAC;AAAA,IACA,YAAAC;AAAA,IACA,aAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,UAAAC;AAAA,IACA,UAAAC;AAAA,IACA,mBAAAC;AAAA,EAAA,IACET;AAGA,MAAA,CAACG,EAAmB,QAAA;AAGxB,MAAIG,EAAe,SAASL,EAAM,QAAQ,WAAW,EAAE,CAAC;AACvC,WAAAS,EAAA,8BAA8BT,CAAK,+BAA+B,GAC1E;AAIL,MAAAA,EAAM,WAAW,OAAO;AAM1B,WAJkBE,EAAW,MAAM,GAAG,EAAE,IAAI,CAACQ,MAAMA,EAAE,MAAM,EAGjC,MAAM,CAACC,MAAOC,EAAiBD,CAAE,CAAC,IACxC,MAEHF,EAAA,4BAA4BP,CAAU,+BAA+B,GAC7E;AAKX,MAAIF,MAAU,aAAa;AAEnB,UAAAa,IAAiBX,EAAW,MAAM,GAAG,EAAE,IAAI,CAACQ,MAAMA,EAAE,MAAM,GAG1DI,IAAkBV,EAAY,YAAe,CAAC,GAG9CW,IAAiBF,EAAe;AAAA,MAAO,CAACH,MAC5CI,EAAgB,KAAK,CAACE,MAAQA,EAAI,UAAUN,KAAKM,EAAI,UAAUN,CAAC;AAAA,IAClE;AAGA,QAAIF;AACF,MAAAL,EAAW,CAAC,EAAE,OAAO,CAAC,IAAIY,EAAe,KAAK,IAAI;AAAA,SAC7C;AACC,YAAAE,IAAgBX,IAAWH,EAAW,QACtCe,IAAgBX,IAAWJ,EAAWc,CAAa,EAAE,OAAO;AAClE,MAAAd,EAAWc,CAAa,EAAE,OAAOC,CAAa,IAAIH,EAAe,KAAK,IAAI;AAAA,IAAA;AAGrE,WAAA;AAAA,EAAA;AAIT,MAAII,IAAUnB,MAAU,YAAaC,IAAW,eAAe,aAAcD;AAKzE,MAHMmB,IAAAC,EAAqBD,CAA4C,KAAKA,GAG5E,EAAEA,KAAWf,GAAqB,QAAA;AAGhC,QAAAiB,IAAcjB,EAAYe,CAAmC;AAG/D,SAAA,CAAC,MAAM,QAAQE,CAAW,KAAKA,EAAY,WAAW,KAGvCnB,EAAW,MAAM,GAAG,EAAE,IAAI,CAACQ,MAAMA,EAAE,MAAM,EAC7B;AAAA,IAAM,CAACA,MACpCW,EAAY,KAAK,CAACL,MAAQA,EAAI,UAAUN,KAAKM,EAAI,UAAUN,CAAC;AAAA,EAC9D,IANoE,MAelED,EAAe,WAJbU,MAAY,gBAAgBA,MAAY,aACpC,GAAGlB,IAAW,WAAW,MAAM,UAC/BkB,CAE+B,YAAYjB,CAAU,+BAA+B,GACnF;AAIX;"}
|
|
1
|
+
{"version":3,"file":"clipboardValidation.es.js","sources":["../../../../../../../src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.ts"],"sourcesContent":["import { validateEntityId } from '@shared/util'\nimport { ColumnEnums, builtInFieldMappings, ParsedClipboardData } from './clipboardTypes'\nimport { clipboardError } from './clipboardUtils'\n\n// Columns that should have case-insensitive matching and value correction like assignees\nconst CASE_INSENSITIVE_COLUMNS = ['assignees', 'status', 'subType']\n\n// Validate clipboard data for enum fields and handle special cases\nexport const validateClipboardData = (params: {\n colId: string\n isFolder: boolean\n pasteValue: string\n parsedData: ParsedClipboardData[]\n columnEnums: ColumnEnums\n columnReadOnly: string[]\n rowIndex: number\n colIndex: number\n isSingleCellValue: boolean\n attribFields?: Array<{\n name: string\n data: { type: string; enum?: Array<{ value: string | number | boolean; label: string }> }\n }>\n}): boolean => {\n const {\n colId,\n isFolder,\n pasteValue,\n parsedData,\n columnEnums,\n columnReadOnly,\n rowIndex,\n colIndex,\n isSingleCellValue,\n attribFields = [],\n } = params\n\n // Skip validation for empty values\n if (!pasteValue) return true\n\n // Check if the column is read-only\n if (columnReadOnly.includes(colId.replace('attrib_', ''))) {\n clipboardError(`This column is read-only: \"${colId}\". Paste operation cancelled.`)\n return false\n }\n\n // special handling for links\n if (colId.startsWith('link_')) {\n // Split entity Ids by comma\n const entityIds = pasteValue.split(',').map((v) => v.trim())\n\n // check every id is valid\n const isValid = entityIds.every((id) => validateEntityId(id))\n if (isValid) return true\n else {\n clipboardError(`Invalid link id format: \"${pasteValue}\". Paste operation cancelled.`)\n return false\n }\n }\n\n // Special handling for columns that should have case-insensitive matching\n if (CASE_INSENSITIVE_COLUMNS.includes(colId)) {\n // Determine the enum key based on the column\n let enumKey = colId\n if (colId === 'assignees') {\n enumKey = 'assignee' // assignees uses 'assignee' enum key\n } else if (colId === 'subType') {\n enumKey = isFolder ? 'folderType' : 'taskType'\n } else if (colId === 'status') {\n enumKey = 'status'\n }\n\n // Get enum options\n const enumOptions = columnEnums[enumKey as keyof typeof columnEnums] || []\n\n if (enumOptions.length === 0) {\n // If no enum options available, skip validation\n return true\n }\n\n // Split values by comma\n const inputValues = pasteValue.split(',').map((v) => v.trim())\n const validValues: string[] = []\n\n for (const v of inputValues) {\n // First try exact match\n const exactMatch = enumOptions.find((opt) => opt.value === v || opt.label === v)\n if (exactMatch) {\n validValues.push(String(exactMatch.value))\n continue\n }\n\n // Try case-insensitive match\n const caseInsensitiveMatch = enumOptions.find(\n (opt) =>\n String(opt.value).toLowerCase() === v.toLowerCase() ||\n String(opt.label).toLowerCase() === v.toLowerCase(),\n )\n if (caseInsensitiveMatch) {\n validValues.push(String(caseInsensitiveMatch.value))\n continue\n }\n\n // For assignees, skip invalid values instead of failing\n if (colId === 'assignees') {\n // Skip invalid assignees\n } else {\n // For other columns, fail validation\n const displayName = colId === 'subType'\n ? `${isFolder ? 'folder' : 'task'} type`\n : colId === 'status'\n ? 'status'\n : colId\n clipboardError(`Invalid ${displayName} value: \"${pasteValue}\". Paste operation cancelled.`)\n return false\n }\n }\n\n // For assignees, require at least one valid value\n if (colId === 'assignees' && validValues.length === 0) {\n clipboardError(\n `Invalid assignee value: \"${pasteValue}\". No matching assignees found. Paste operation cancelled.`,\n )\n return false\n }\n\n // Update the paste value in the parsed data with corrected case\n const correctedValue = validValues.join(', ')\n\n if (correctedValue !== pasteValue) {\n if (isSingleCellValue) {\n parsedData[0].values[0] = correctedValue\n } else {\n const pasteRowIndex = rowIndex % parsedData.length\n const pasteColIndex = colIndex % parsedData[pasteRowIndex].values.length\n parsedData[pasteRowIndex].values[pasteColIndex] = correctedValue\n }\n }\n\n return true\n }\n\n // Validate attribute fields with specific type validation\n if (colId.startsWith('attrib_')) {\n const attributeName = colId.replace('attrib_', '')\n const attribute = attribFields.find((attr) => attr.name === attributeName)\n\n if (attribute) {\n // Number field validation (integer/float attributes)\n if (attribute.data.type === 'integer' || attribute.data.type === 'float') {\n // Check if the pasted value is a valid number\n const trimmedValue = pasteValue.trim()\n const isValidNumber = /^[-+]?(\\d+\\.?\\d*|\\.\\d+)([eE][-+]?\\d+)?$/.test(trimmedValue)\n\n if (!isValidNumber) {\n const fieldType = attribute.data.type === 'integer' ? 'integer' : 'number'\n clipboardError(\n `Invalid ${fieldType} value: \"${pasteValue}\". Must be a valid ${fieldType}. Paste operation cancelled.`,\n )\n return false\n }\n\n // For integer fields, check that it's actually an integer\n if (attribute.data.type === 'integer') {\n const num = parseFloat(trimmedValue)\n if (!Number.isInteger(num)) {\n clipboardError(\n `Invalid integer value: \"${pasteValue}\". Must be a whole number. Paste operation cancelled.`,\n )\n return false\n }\n }\n\n return true\n }\n\n // String enum validation for attributes with enum options\n if (\n attribute.data.type === 'string' &&\n attribute.data.enum &&\n attribute.data.enum.length > 0\n ) {\n const enumValues = pasteValue.split(',').map((v) => v.trim())\n\n // Try to match each value, with fallback to case-insensitive matching\n const { validValues, hasInvalidValues } = enumValues.reduce(\n (acc, v) => {\n // First try exact match\n const exactMatch = attribute.data.enum!.find(\n (opt) => opt.value === v || opt.label === v,\n )\n if (exactMatch) {\n acc.validValues.push(String(exactMatch.value))\n return acc\n }\n\n // Try case-insensitive match\n const caseInsensitiveMatch = attribute.data.enum!.find(\n (opt) =>\n String(opt.value).toLowerCase() === v.toLowerCase() ||\n String(opt.label).toLowerCase() === v.toLowerCase(),\n )\n if (caseInsensitiveMatch) {\n acc.validValues.push(String(caseInsensitiveMatch.value))\n return acc\n }\n\n // No match found\n acc.hasInvalidValues = true\n acc.validValues.push(v) // Keep original value for error message\n return acc\n },\n { validValues: [] as string[], hasInvalidValues: false },\n )\n\n if (hasInvalidValues) {\n clipboardError(\n `Invalid ${attributeName} value: \"${pasteValue}\". Must be one of the available options. Paste operation cancelled.`,\n )\n return false\n }\n\n // Update the paste value with corrected case if any corrections were made\n const correctedValue = validValues.join(', ')\n if (correctedValue !== pasteValue) {\n if (isSingleCellValue) {\n parsedData[0].values[0] = correctedValue\n } else {\n const pasteRowIndex = rowIndex % parsedData.length\n const pasteColIndex = colIndex % parsedData[pasteRowIndex].values.length\n parsedData[pasteRowIndex].values[pasteColIndex] = correctedValue\n }\n }\n\n return true\n }\n }\n }\n\n // Map subType to the actual field name\n let fieldId = colId === 'subType' ? (isFolder ? 'folderType' : 'taskType') : colId\n // Check if fieldId has a mapping to plural enum\n fieldId = builtInFieldMappings[fieldId as keyof typeof builtInFieldMappings] || fieldId\n\n // Skip validation for fields that don't have enums\n if (!(fieldId in columnEnums)) return true\n\n // Get the enum values for this field\n const enumOptions = columnEnums[fieldId as keyof typeof columnEnums]\n\n // Skip if no enum options are available\n if (!Array.isArray(enumOptions) || enumOptions.length === 0) return true\n\n // Check if the pasted value exists in the enum options with case-insensitive matching\n const enumValues = pasteValue.split(',').map((v) => v.trim())\n\n // Try to match each value, with fallback to case-insensitive matching\n const { validValues, hasInvalidValues } = enumValues.reduce(\n (acc, v) => {\n // First try exact match\n const exactMatch = enumOptions.find((opt) => opt.value === v || opt.label === v)\n if (exactMatch) {\n acc.validValues.push(String(exactMatch.value))\n return acc\n }\n\n // Try case-insensitive match\n const caseInsensitiveMatch = enumOptions.find(\n (opt) =>\n String(opt.value).toLowerCase() === v.toLowerCase() ||\n String(opt.label).toLowerCase() === v.toLowerCase(),\n )\n if (caseInsensitiveMatch) {\n acc.validValues.push(String(caseInsensitiveMatch.value))\n return acc\n }\n\n // No match found\n acc.hasInvalidValues = true\n acc.validValues.push(v) // Keep original value for error message\n return acc\n },\n { validValues: [] as string[], hasInvalidValues: false },\n )\n\n if (hasInvalidValues) {\n // Get a display name for the field (folderType/taskType → Type)\n const displayName =\n fieldId === 'folderType' || fieldId === 'taskType'\n ? `${isFolder ? 'folder' : 'task'} type`\n : fieldId\n\n clipboardError(`Invalid ${displayName} value: \"${pasteValue}\". Paste operation cancelled.`)\n return false\n }\n\n // Update the paste value with corrected case if any corrections were made\n const correctedValue = validValues.join(', ')\n if (correctedValue !== pasteValue) {\n if (isSingleCellValue) {\n parsedData[0].values[0] = correctedValue\n } else {\n const pasteRowIndex = rowIndex % parsedData.length\n const pasteColIndex = colIndex % parsedData[pasteRowIndex].values.length\n parsedData[pasteRowIndex].values[pasteColIndex] = correctedValue\n }\n }\n\n return true\n}\n"],"names":["CASE_INSENSITIVE_COLUMNS","validateClipboardData","params","colId","isFolder","pasteValue","parsedData","columnEnums","columnReadOnly","rowIndex","colIndex","isSingleCellValue","attribFields","clipboardError","v","id","validateEntityId","enumKey","enumOptions","inputValues","validValues","exactMatch","opt","caseInsensitiveMatch","correctedValue","pasteRowIndex","pasteColIndex","attributeName","attribute","attr","trimmedValue","fieldType","num","enumValues","hasInvalidValues","acc","fieldId","builtInFieldMappings"],"mappings":";;;;;;AAKA,MAAMA,IAA2B,CAAC,aAAa,UAAU,SAAS,GAGrDC,IAAwB,CAACC,MAcvB;AACP,QAAA;AAAA,IACJ,OAAAC;AAAA,IACA,UAAAC;AAAA,IACA,YAAAC;AAAA,IACA,YAAAC;AAAA,IACA,aAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,UAAAC;AAAA,IACA,UAAAC;AAAA,IACA,mBAAAC;AAAA,IACA,cAAAC,IAAe,CAAA;AAAA,EAAC,IACdV;AAGA,MAAA,CAACG,EAAmB,QAAA;AAGxB,MAAIG,EAAe,SAASL,EAAM,QAAQ,WAAW,EAAE,CAAC;AACvC,WAAAU,EAAA,8BAA8BV,CAAK,+BAA+B,GAC1E;AAIL,MAAAA,EAAM,WAAW,OAAO;AAM1B,WAJkBE,EAAW,MAAM,GAAG,EAAE,IAAI,CAACS,MAAMA,EAAE,MAAM,EAGjC,MAAM,CAACC,MAAOC,EAAiBD,CAAE,CAAC,IACxC,MAEHF,EAAA,4BAA4BR,CAAU,+BAA+B,GAC7E;AAKP,MAAAL,EAAyB,SAASG,CAAK,GAAG;AAE5C,QAAIc,IAAUd;AACd,IAAIA,MAAU,cACFc,IAAA,aACDd,MAAU,YACnBc,IAAUb,IAAW,eAAe,aAC3BD,MAAU,aACTc,IAAA;AAIZ,UAAMC,IAAcX,EAAYU,CAAmC,KAAK,CAAC;AAErEC,QAAAA,EAAY,WAAW;AAElB,aAAA;AAIH,UAAAC,IAAcd,EAAW,MAAM,GAAG,EAAE,IAAI,CAACS,MAAMA,EAAE,MAAM,GACvDM,IAAwB,CAAC;AAE/B,eAAWN,KAAKK,GAAa;AAErB,YAAAE,IAAaH,EAAY,KAAK,CAACI,MAAQA,EAAI,UAAUR,KAAKQ,EAAI,UAAUR,CAAC;AAC/E,UAAIO,GAAY;AACdD,QAAAA,EAAY,KAAK,OAAOC,EAAW,KAAK,CAAC;AACzC;AAAA,MAAA;AAIF,YAAME,IAAuBL,EAAY;AAAA,QACvC,CAACI,MACC,OAAOA,EAAI,KAAK,EAAE,kBAAkBR,EAAE,YAAY,KAClD,OAAOQ,EAAI,KAAK,EAAE,YAAY,MAAMR,EAAE,YAAY;AAAA,MACtD;AACA,UAAIS,GAAsB;AACxBH,QAAAA,EAAY,KAAK,OAAOG,EAAqB,KAAK,CAAC;AACnD;AAAA,MAAA;AAIF,UAAIpB,MAAU,YASZ,QAAAU,EAAe,WALKV,MAAU,YAC1B,GAAGC,IAAW,WAAW,MAAM,UAC/BD,MAAU,WACV,WACAA,CACiC,YAAYE,CAAU,+BAA+B,GACnF;AAAA,IACT;AAIF,QAAIF,MAAU,eAAeiB,EAAY,WAAW;AAClD,aAAAP;AAAA,QACE,4BAA4BR,CAAU;AAAA,MACxC,GACO;AAIHmB,UAAAA,IAAiBJ,EAAY,KAAK,IAAI;AAE5C,QAAII,MAAmBnB;AACrB,UAAIM;AACF,QAAAL,EAAW,CAAC,EAAE,OAAO,CAAC,IAAIkB;AAAAA,WACrB;AACC,cAAAC,IAAgBhB,IAAWH,EAAW,QACtCoB,IAAgBhB,IAAWJ,EAAWmB,CAAa,EAAE,OAAO;AAClE,QAAAnB,EAAWmB,CAAa,EAAE,OAAOC,CAAa,IAAIF;AAAAA,MAAA;AAI/C,WAAA;AAAA,EAAA;AAIL,MAAArB,EAAM,WAAW,SAAS,GAAG;AAC/B,UAAMwB,IAAgBxB,EAAM,QAAQ,WAAW,EAAE,GAC3CyB,IAAYhB,EAAa,KAAK,CAACiB,MAASA,EAAK,SAASF,CAAa;AAEzE,QAAIC,GAAW;AAEb,UAAIA,EAAU,KAAK,SAAS,aAAaA,EAAU,KAAK,SAAS,SAAS;AAElE,cAAAE,IAAezB,EAAW,KAAK;AAGrC,YAAI,CAFkB,0CAA0C,KAAKyB,CAAY,GAE7D;AAClB,gBAAMC,IAAYH,EAAU,KAAK,SAAS,YAAY,YAAY;AAClE,iBAAAf;AAAA,YACE,WAAWkB,CAAS,YAAY1B,CAAU,sBAAsB0B,CAAS;AAAA,UAC3E,GACO;AAAA,QAAA;AAIL,YAAAH,EAAU,KAAK,SAAS,WAAW;AAC/B,gBAAAI,IAAM,WAAWF,CAAY;AACnC,cAAI,CAAC,OAAO,UAAUE,CAAG;AACvB,mBAAAnB;AAAA,cACE,2BAA2BR,CAAU;AAAA,YACvC,GACO;AAAA,QACT;AAGK,eAAA;AAAA,MAAA;AAKP,UAAAuB,EAAU,KAAK,SAAS,YACxBA,EAAU,KAAK,QACfA,EAAU,KAAK,KAAK,SAAS,GAC7B;AACMK,cAAAA,IAAa5B,EAAW,MAAM,GAAG,EAAE,IAAI,CAACS,MAAMA,EAAE,MAAM,GAGtD,EAAE,aAAAM,GAAa,kBAAAc,EAAAA,IAAqBD,EAAW;AAAA,UACnD,CAACE,GAAKrB,MAAM;AAEJ,kBAAAO,IAAaO,EAAU,KAAK,KAAM;AAAA,cACtC,CAACN,MAAQA,EAAI,UAAUR,KAAKQ,EAAI,UAAUR;AAAA,YAC5C;AACA,gBAAIO;AACF,qBAAAc,EAAI,YAAY,KAAK,OAAOd,EAAW,KAAK,CAAC,GACtCc;AAIH,kBAAAZ,IAAuBK,EAAU,KAAK,KAAM;AAAA,cAChD,CAACN,MACC,OAAOA,EAAI,KAAK,EAAE,kBAAkBR,EAAE,YAAY,KAClD,OAAOQ,EAAI,KAAK,EAAE,YAAY,MAAMR,EAAE,YAAY;AAAA,YACtD;AACA,mBAAIS,KACFY,EAAI,YAAY,KAAK,OAAOZ,EAAqB,KAAK,CAAC,GAChDY,MAITA,EAAI,mBAAmB,IACnBA,EAAA,YAAY,KAAKrB,CAAC,GACfqB;AAAA,UACT;AAAA,UACA,EAAE,aAAa,IAAgB,kBAAkB,GAAM;AAAA,QACzD;AAEA,YAAID;AACF,iBAAArB;AAAA,YACE,WAAWc,CAAa,YAAYtB,CAAU;AAAA,UAChD,GACO;AAIHmB,cAAAA,IAAiBJ,EAAY,KAAK,IAAI;AAC5C,YAAII,MAAmBnB;AACrB,cAAIM;AACF,YAAAL,EAAW,CAAC,EAAE,OAAO,CAAC,IAAIkB;AAAAA,eACrB;AACC,kBAAAC,IAAgBhB,IAAWH,EAAW,QACtCoB,IAAgBhB,IAAWJ,EAAWmB,CAAa,EAAE,OAAO;AAClE,YAAAnB,EAAWmB,CAAa,EAAE,OAAOC,CAAa,IAAIF;AAAAA,UAAA;AAI/C,eAAA;AAAA,MAAA;AAAA,IACT;AAAA,EACF;AAIF,MAAIY,IAAUjC,MAAU,YAAaC,IAAW,eAAe,aAAcD;AAKzE,MAHMiC,IAAAC,EAAqBD,CAA4C,KAAKA,GAG5E,EAAEA,KAAW7B,GAAqB,QAAA;AAGhC,QAAAW,IAAcX,EAAY6B,CAAmC;AAG/D,MAAA,CAAC,MAAM,QAAQlB,CAAW,KAAKA,EAAY,WAAW,EAAU,QAAA;AAG9D,QAAAe,IAAa5B,EAAW,MAAM,GAAG,EAAE,IAAI,CAACS,MAAMA,EAAE,MAAM,GAGtD,EAAE,aAAAM,GAAa,kBAAAc,EAAiB,IAAID,EAAW;AAAA,IACnD,CAACE,GAAKrB,MAAM;AAEJ,YAAAO,IAAaH,EAAY,KAAK,CAACI,MAAQA,EAAI,UAAUR,KAAKQ,EAAI,UAAUR,CAAC;AAC/E,UAAIO;AACF,eAAAc,EAAI,YAAY,KAAK,OAAOd,EAAW,KAAK,CAAC,GACtCc;AAIT,YAAMZ,IAAuBL,EAAY;AAAA,QACvC,CAACI,MACC,OAAOA,EAAI,KAAK,EAAE,kBAAkBR,EAAE,YAAY,KAClD,OAAOQ,EAAI,KAAK,EAAE,YAAY,MAAMR,EAAE,YAAY;AAAA,MACtD;AACA,aAAIS,KACFY,EAAI,YAAY,KAAK,OAAOZ,EAAqB,KAAK,CAAC,GAChDY,MAITA,EAAI,mBAAmB,IACnBA,EAAA,YAAY,KAAKrB,CAAC,GACfqB;AAAA,IACT;AAAA,IACA,EAAE,aAAa,IAAgB,kBAAkB,GAAM;AAAA,EACzD;AAEA,MAAID;AAOF,WAAArB,EAAe,WAJbuB,MAAY,gBAAgBA,MAAY,aACpC,GAAGhC,IAAW,WAAW,MAAM,UAC/BgC,CAE+B,YAAY/B,CAAU,+BAA+B,GACnF;AAIH,QAAAmB,IAAiBJ,EAAY,KAAK,IAAI;AAC5C,MAAII,MAAmBnB;AACrB,QAAIM;AACF,MAAAL,EAAW,CAAC,EAAE,OAAO,CAAC,IAAIkB;AAAA,SACrB;AACC,YAAAC,IAAgBhB,IAAWH,EAAW,QACtCoB,IAAgBhB,IAAWJ,EAAWmB,CAAa,EAAE,OAAO;AAClE,MAAAnB,EAAWmB,CAAa,EAAE,OAAOC,CAAa,IAAIF;AAAA,IAAA;AAI/C,SAAA;AACT;"}
|