@ynput/ayon-frontend-shared 0.1.0
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/EmptyPlaceholderFlex.styled-C3tjIk5V.mjs +121 -0
- package/dist/EmptyPlaceholderFlex.styled-C3tjIk5V.mjs.map +1 -0
- package/dist/EmptyPlaceholderFlex.styled-D_9k5mMH.js +78 -0
- package/dist/EmptyPlaceholderFlex.styled-D_9k5mMH.js.map +1 -0
- package/dist/ThumbnailSimple-DbSmXCNa.js +34 -0
- package/dist/ThumbnailSimple-DbSmXCNa.js.map +1 -0
- package/dist/ThumbnailSimple-DotCInch.mjs +78 -0
- package/dist/ThumbnailSimple-DotCInch.mjs.map +1 -0
- package/dist/ayon-frontend-shared.css +1 -0
- package/dist/confirmDelete-BSaFL2RH.mjs +6279 -0
- package/dist/confirmDelete-BSaFL2RH.mjs.map +1 -0
- package/dist/confirmDelete-BoRH88hw.js +43 -0
- package/dist/confirmDelete-BoRH88hw.js.map +1 -0
- package/dist/csstransition.esm-CzUZfsIt.mjs +3101 -0
- package/dist/csstransition.esm-CzUZfsIt.mjs.map +1 -0
- package/dist/csstransition.esm-Riwtyc4r.js +32 -0
- package/dist/csstransition.esm-Riwtyc4r.js.map +1 -0
- package/dist/format-DUCu0Y-3.mjs +1289 -0
- package/dist/format-DUCu0Y-3.mjs.map +1 -0
- package/dist/format-v4Hpvya-.js +2 -0
- package/dist/format-v4Hpvya-.js.map +1 -0
- package/dist/getEntityTypeIcon-BvwosBHR.js +2 -0
- package/dist/getEntityTypeIcon-BvwosBHR.js.map +1 -0
- package/dist/getEntityTypeIcon-BxTCKGSi.mjs +50 -0
- package/dist/getEntityTypeIcon-BxTCKGSi.mjs.map +1 -0
- package/dist/index.cjs.js +2 -0
- package/dist/index.cjs.js.map +1 -0
- package/dist/index.cjs2.js +2 -0
- package/dist/index.cjs2.js.map +1 -0
- package/dist/index.cjs3.js +2 -0
- package/dist/index.cjs3.js.map +1 -0
- package/dist/index.cjs4.js +2 -0
- package/dist/index.cjs4.js.map +1 -0
- package/dist/index.cjs5.js +2 -0
- package/dist/index.cjs5.js.map +1 -0
- package/dist/index.cjs6.js +2 -0
- package/dist/index.cjs6.js.map +1 -0
- package/dist/index.cjs7.js +29 -0
- package/dist/index.cjs7.js.map +1 -0
- package/dist/index.cjs8.js +549 -0
- package/dist/index.cjs8.js.map +1 -0
- package/dist/index.cjs9.js +1753 -0
- package/dist/index.cjs9.js.map +1 -0
- package/dist/index.es.js +8 -0
- package/dist/index.es.js.map +1 -0
- package/dist/index.es2.js +11 -0
- package/dist/index.es2.js.map +1 -0
- package/dist/index.es3.js +12 -0
- package/dist/index.es3.js.map +1 -0
- package/dist/index.es4.js +5 -0
- package/dist/index.es4.js.map +1 -0
- package/dist/index.es5.js +5 -0
- package/dist/index.es5.js.map +1 -0
- package/dist/index.es6.js +37 -0
- package/dist/index.es6.js.map +1 -0
- package/dist/index.es7.js +361 -0
- package/dist/index.es7.js.map +1 -0
- package/dist/index.es8.js +4340 -0
- package/dist/index.es8.js.map +1 -0
- package/dist/index.es9.js +56950 -0
- package/dist/index.es9.js.map +1 -0
- package/dist/jsx-runtime-Drh4NO5G.mjs +634 -0
- package/dist/jsx-runtime-Drh4NO5G.mjs.map +1 -0
- package/dist/jsx-runtime-qcKc-DpB.js +31 -0
- package/dist/jsx-runtime-qcKc-DpB.js.map +1 -0
- package/dist/platform-C5rgawOb.js +2 -0
- package/dist/platform-C5rgawOb.js.map +1 -0
- package/dist/platform-DNAvZtra.mjs +36 -0
- package/dist/platform-DNAvZtra.mjs.map +1 -0
- package/dist/types/ContextMenu.d.ts +1 -0
- package/dist/types/Feed.d.ts +1 -0
- package/dist/types/ProjectTreeTable.d.ts +1 -0
- package/dist/types/Slicer.d.ts +1 -0
- package/dist/types/api/activities/index.d.ts +1 -0
- package/dist/types/api/activities/transformations.d.ts +0 -0
- package/dist/types/api/activities/types.d.ts +10 -0
- package/dist/types/api/graphql.d.ts +2096 -0
- package/dist/types/api/index.d.ts +2 -0
- package/dist/types/api.d.ts +1 -0
- package/dist/types/components/EmptyPlaceholder/EmptyPlaceholder.d.ts +11 -0
- package/dist/types/components/EmptyPlaceholder/EmptyPlaceholderFlex.styled.d.ts +2 -0
- package/dist/types/components/EmptyPlaceholder/index.d.ts +4 -0
- package/dist/types/components/ThumbnailSimple/ThumbnailSimple.d.ts +15 -0
- package/dist/types/components/ThumbnailSimple/index.d.ts +3 -0
- package/dist/types/components/UserImage/UserImage.d.ts +11 -0
- package/dist/types/components/UserImage/index.d.ts +3 -0
- package/dist/types/components/index.d.ts +3 -0
- package/dist/types/components.d.ts +1 -0
- package/dist/types/containers/ContextMenu/ContextMenuContext.d.ts +21 -0
- package/dist/types/containers/ContextMenu/ContextMenuItem.d.ts +27 -0
- package/dist/types/containers/ContextMenu/GlobalContextMenu.d.ts +1 -0
- package/dist/types/containers/ContextMenu/index.d.ts +4 -0
- package/dist/types/containers/ContextMenu/useCreateContextMenu.d.ts +17 -0
- package/dist/types/containers/Feed/Feed.d.ts +10 -0
- package/dist/types/containers/Feed/Feed.styled.d.ts +5 -0
- package/dist/types/containers/Feed/components/ActivityAssigneeChange/ActivityAssigneeChange.d.ts +15 -0
- package/dist/types/containers/Feed/components/ActivityAssigneeChange/ActivityAssigneeChange.styled.d.ts +3 -0
- package/dist/types/containers/Feed/components/ActivityAssigneeChange/index.d.ts +3 -0
- package/dist/types/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.d.ts +6 -0
- package/dist/types/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.styled.d.ts +1 -0
- package/dist/types/containers/Feed/components/ActivityCheckbox/index.d.ts +3 -0
- package/dist/types/containers/Feed/components/ActivityComment/ActivityComment.d.ts +24 -0
- package/dist/types/containers/Feed/components/ActivityComment/ActivityComment.styled.d.ts +14 -0
- package/dist/types/containers/Feed/components/ActivityComment/ActivityMarkdownComponents.d.ts +43 -0
- package/dist/types/containers/Feed/components/ActivityComment/CommentWrapper.d.ts +5 -0
- package/dist/types/containers/Feed/components/ActivityComment/mappers.d.ts +9 -0
- package/dist/types/containers/Feed/components/ActivityDate.d.ts +7 -0
- package/dist/types/containers/Feed/components/ActivityGroup/ActivityGroup.d.ts +9 -0
- package/dist/types/containers/Feed/components/ActivityGroup/ActivityGroup.styled.d.ts +2 -0
- package/dist/types/containers/Feed/components/ActivityHeader/ActivityHeader.d.ts +40 -0
- package/dist/types/containers/Feed/components/ActivityHeader/ActivityHeader.styled.d.ts +4 -0
- package/dist/types/containers/Feed/components/ActivityItem.d.ts +27 -0
- package/dist/types/containers/Feed/components/ActivityReference/ActivityReference.d.ts +14 -0
- package/dist/types/containers/Feed/components/ActivityReference/ActivityReference.styled.d.ts +3 -0
- package/dist/types/containers/Feed/components/ActivityReferenceTooltip/ActivityReferenceTooltip.d.ts +4 -0
- package/dist/types/containers/Feed/components/ActivityReferenceTooltip/index.d.ts +2 -0
- package/dist/types/containers/Feed/components/ActivityStatus/ActivityStatus.d.ts +9 -0
- package/dist/types/containers/Feed/components/ActivityStatusChange/ActivityStatusChange.d.ts +18 -0
- package/dist/types/containers/Feed/components/ActivityStatusChange/ActivityStatusChange.styled.d.ts +3 -0
- package/dist/types/containers/Feed/components/ActivityStatusChange/hooks/getContextParents.d.ts +2 -0
- package/dist/types/containers/Feed/components/ActivityVersions/ActivityVersions.d.ts +24 -0
- package/dist/types/containers/Feed/components/ActivityVersions/ActivityVersions.styled.d.ts +6 -0
- package/dist/types/containers/Feed/components/CommentInput/CommentInput.d.ts +26 -0
- package/dist/types/containers/Feed/components/CommentInput/CommentInput.styled.d.ts +7 -0
- package/dist/types/containers/Feed/components/CommentInput/InputMarkdownConvert.d.ts +11 -0
- package/dist/types/containers/Feed/components/CommentInput/helpers.d.ts +4 -0
- package/dist/types/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.d.ts +14 -0
- package/dist/types/containers/Feed/components/CommentInput/hooks/useAnnotationsUpload.d.ts +6 -0
- package/dist/types/containers/Feed/components/CommentInput/hooks/useInitialValue.d.ts +11 -0
- package/dist/types/containers/Feed/components/CommentInput/hooks/useMentionLink.d.ts +7 -0
- package/dist/types/containers/Feed/components/CommentInput/hooks/useSetCursorEnd.d.ts +7 -0
- package/dist/types/containers/Feed/components/CommentInput/index.d.ts +0 -0
- package/dist/types/containers/Feed/components/CommentInput/modules/ImageUploader.d.ts +8 -0
- package/dist/types/containers/Feed/components/CommentInput/modules/index.d.ts +12 -0
- package/dist/types/containers/Feed/components/CommentInput/quillToMarkdown.d.ts +5 -0
- package/dist/types/containers/Feed/components/CommentMentionSelect/CommentMentionSelect.d.ts +28 -0
- package/dist/types/containers/Feed/components/CommentMentionSelect/CommentMentionSelect.styled.d.ts +6 -0
- package/dist/types/containers/Feed/components/FileUploadCard/FileUploadCard.d.ts +14 -0
- package/dist/types/containers/Feed/components/FileUploadCard/FileUploadCard.styled.d.ts +4 -0
- package/dist/types/containers/Feed/components/FileUploadCard/index.d.ts +3 -0
- package/dist/types/containers/Feed/components/FileUploadPreview/FileUploadPreview.d.ts +22 -0
- package/dist/types/containers/Feed/components/FileUploadPreview/FileUploadPreview.styled.d.ts +4 -0
- package/dist/types/containers/Feed/components/FileUploadPreview/Mimes/ImageMime.d.ts +9 -0
- package/dist/types/containers/Feed/components/FileUploadPreview/Mimes/TextMime.d.ts +10 -0
- package/dist/types/containers/Feed/components/FileUploadPreview/hooks/useAttachmentNavigation.d.ts +19 -0
- package/dist/types/containers/Feed/components/FileUploadPreview/index.d.ts +3 -0
- package/dist/types/containers/Feed/components/FilesGrid/FilesGrid.d.ts +17 -0
- package/dist/types/containers/Feed/components/FilesGrid/FilesGrid.styled.d.ts +1 -0
- package/dist/types/containers/Feed/components/FilesGrid/index.d.ts +3 -0
- package/dist/types/containers/Feed/components/ReactionContainer/ExistingReactions.d.ts +7 -0
- package/dist/types/containers/Feed/components/ReactionContainer/Reaction.d.ts +10 -0
- package/dist/types/containers/Feed/components/ReactionContainer/ReactionPanelOpener.d.ts +7 -0
- package/dist/types/containers/Feed/components/ReactionContainer/Reactions.d.ts +8 -0
- package/dist/types/containers/Feed/components/ReactionContainer/Reactions.styled.d.ts +7 -0
- package/dist/types/containers/Feed/components/ReactionContainer/helpers.d.ts +11 -0
- package/dist/types/containers/Feed/components/ReactionContainer/types.d.ts +8 -0
- package/dist/types/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.d.ts +12 -0
- package/dist/types/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.styled.d.ts +3 -0
- package/dist/types/containers/Feed/components/Tooltips/UserTooltip/UserTooltip.d.ts +10 -0
- package/dist/types/containers/Feed/components/Tooltips/UserTooltip/UserTooltip.styled.d.ts +2 -0
- package/dist/types/containers/Feed/context/FeedContext.d.ts +58 -0
- package/dist/types/containers/Feed/feedHelpers.d.ts +1 -0
- package/dist/types/containers/Feed/helpers/groupActivityVersions.d.ts +2 -0
- package/dist/types/containers/Feed/helpers/groupMinorActivities.d.ts +2 -0
- package/dist/types/containers/Feed/helpers/mergeSimilarActivities.d.ts +2 -0
- package/dist/types/containers/Feed/hooks/useCommentMutations.d.ts +30 -0
- package/dist/types/containers/Feed/hooks/useReferenceTooltip.d.ts +3 -0
- package/dist/types/containers/Feed/hooks/useSaveScrollPos.d.ts +13 -0
- package/dist/types/containers/Feed/hooks/useScrollOnInputOpen.d.ts +8 -0
- package/dist/types/containers/Feed/hooks/useScrollToHighlighted.d.ts +10 -0
- package/dist/types/containers/Feed/hooks/useTableKeyboardNavigation.d.ts +22 -0
- package/dist/types/containers/Feed/hooks/useTransformActivities.d.ts +4 -0
- package/dist/types/containers/Feed/index.d.ts +7 -0
- package/dist/types/containers/Feed/mentionHelpers/getMentionOptions.d.ts +2 -0
- package/dist/types/containers/Feed/mentionHelpers/getMentionTasks.d.ts +10 -0
- package/dist/types/containers/Feed/mentionHelpers/getMentionUsers.d.ts +8 -0
- package/dist/types/containers/Feed/mentionHelpers/getMentionVersions.d.ts +12 -0
- package/dist/types/containers/ProjectTreeTable/ProjectTreeTable.d.ts +15 -0
- package/dist/types/containers/ProjectTreeTable/ProjectTreeTable.styled.d.ts +14 -0
- package/dist/types/containers/ProjectTreeTable/ProjectTreeTableColumns.d.ts +16 -0
- package/dist/types/containers/ProjectTreeTable/components/HeaderActionButton.d.ts +6 -0
- package/dist/types/containers/ProjectTreeTable/components/RowSelectionHeader.d.ts +3 -0
- package/dist/types/containers/ProjectTreeTable/components/SelectionCell.d.ts +5 -0
- package/dist/types/containers/ProjectTreeTable/context/CellEditingContext.d.ts +18 -0
- package/dist/types/containers/ProjectTreeTable/context/ClipboardContext.d.ts +4 -0
- package/dist/types/containers/ProjectTreeTable/context/ColumnSettingsContext.d.ts +30 -0
- package/dist/types/containers/ProjectTreeTable/context/ProjectTableContext.d.ts +76 -0
- package/dist/types/containers/ProjectTreeTable/context/ProjectTableQueriesContext.d.ts +21 -0
- package/dist/types/containers/ProjectTreeTable/context/SelectedRowsContext.d.ts +15 -0
- package/dist/types/containers/ProjectTreeTable/context/SelectionContext.d.ts +35 -0
- package/dist/types/containers/ProjectTreeTable/context/clipboard/clipboardTypes.d.ts +27 -0
- package/dist/types/containers/ProjectTreeTable/context/clipboard/clipboardUtils.d.ts +6 -0
- package/dist/types/containers/ProjectTreeTable/context/clipboard/clipboardValidation.d.ts +12 -0
- package/dist/types/containers/ProjectTreeTable/context/clipboard/index.d.ts +3 -0
- package/dist/types/containers/ProjectTreeTable/context/index.d.ts +8 -0
- package/dist/types/containers/ProjectTreeTable/hooks/useCellContextMenu.d.ts +10 -0
- package/dist/types/containers/ProjectTreeTable/hooks/useColumnVirtualization.d.ts +17 -0
- package/dist/types/containers/ProjectTreeTable/hooks/useCustomColumnWidthVars.d.ts +6 -0
- package/dist/types/containers/ProjectTreeTable/hooks/useDeleteEntities.d.ts +5 -0
- package/dist/types/containers/ProjectTreeTable/hooks/useFolderRelationships.d.ts +29 -0
- package/dist/types/containers/ProjectTreeTable/hooks/useHistory.d.ts +17 -0
- package/dist/types/containers/ProjectTreeTable/hooks/useKeyboardNavigation.d.ts +10 -0
- package/dist/types/containers/ProjectTreeTable/hooks/useOverviewTable.d.ts +32 -0
- package/dist/types/containers/ProjectTreeTable/hooks/usePrefetchFolderTasks.d.ts +4 -0
- package/dist/types/containers/ProjectTreeTable/hooks/useUpdateOverview.d.ts +30 -0
- package/dist/types/containers/ProjectTreeTable/hooks/useValidateUpdates.d.ts +3 -0
- package/dist/types/containers/ProjectTreeTable/index.d.ts +14 -0
- package/dist/types/containers/ProjectTreeTable/types/folders.d.ts +14 -0
- package/dist/types/containers/ProjectTreeTable/types/index.d.ts +62 -0
- package/dist/types/containers/ProjectTreeTable/types/operations.d.ts +99 -0
- package/dist/types/containers/ProjectTreeTable/types/project.d.ts +223 -0
- package/dist/types/containers/ProjectTreeTable/types/table.d.ts +83 -0
- package/dist/types/containers/ProjectTreeTable/utils/cellUtils.d.ts +42 -0
- package/dist/types/containers/ProjectTreeTable/utils/clientFilterToQueryFilter.d.ts +4 -0
- package/dist/types/containers/ProjectTreeTable/utils/index.d.ts +3 -0
- package/dist/types/containers/ProjectTreeTable/utils/loadingUtils.d.ts +36 -0
- package/dist/types/containers/ProjectTreeTable/widgets/BooleanWidget.d.ts +7 -0
- package/dist/types/containers/ProjectTreeTable/widgets/CellWidget.d.ts +24 -0
- package/dist/types/containers/ProjectTreeTable/widgets/CollapsedWidget.d.ts +5 -0
- package/dist/types/containers/ProjectTreeTable/widgets/DateWidget.d.ts +8 -0
- package/dist/types/containers/ProjectTreeTable/widgets/DateWidgetInput.d.ts +8 -0
- package/dist/types/containers/ProjectTreeTable/widgets/EntityNameWidget.d.ts +14 -0
- package/dist/types/containers/ProjectTreeTable/widgets/EnumWidget.d.ts +28 -0
- package/dist/types/containers/ProjectTreeTable/widgets/TextWidget.d.ts +10 -0
- package/dist/types/containers/ProjectTreeTable/widgets/TextWidgetInput.d.ts +9 -0
- package/dist/types/containers/ProjectTreeTable/widgets/index.d.ts +7 -0
- package/dist/types/containers/Slicer/createFilterFromSlicer.d.ts +6 -0
- package/dist/types/containers/Slicer/index.d.ts +2 -0
- package/dist/types/containers/Slicer/types.d.ts +18 -0
- package/dist/types/hooks/index.d.ts +1 -0
- package/dist/types/hooks/useLocalStorage.d.ts +1 -0
- package/dist/types/hooks.d.ts +1 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/types/util/confirmDelete.d.ts +13 -0
- package/dist/types/util/getEntityTypeIcon.d.ts +1 -0
- package/dist/types/util/index.d.ts +5 -0
- package/dist/types/util/platform.d.ts +8 -0
- package/dist/types/util/productTypes.d.ts +8 -0
- package/dist/types/util.d.ts +1 -0
- package/dist/useCreateContextMenu-CDRv1ybg.js +2 -0
- package/dist/useCreateContextMenu-CDRv1ybg.js.map +1 -0
- package/dist/useCreateContextMenu-DvOhPycB.mjs +118 -0
- package/dist/useCreateContextMenu-DvOhPycB.mjs.map +1 -0
- package/dist/useLocalStorage-BQSzWJ4Q.mjs +39 -0
- package/dist/useLocalStorage-BQSzWJ4Q.mjs.map +1 -0
- package/dist/useLocalStorage-BRHTBlxR.js +2 -0
- package/dist/useLocalStorage-BRHTBlxR.js.map +1 -0
- package/package.json +91 -0
|
@@ -0,0 +1,549 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const j=require("./jsx-runtime-qcKc-DpB.js"),E=require("react"),Ve=require("react-dom"),Q=require("@tanstack/react-table"),B=require("./EmptyPlaceholderFlex.styled-D_9k5mMH.js"),N=require("styled-components"),Z=require("./format-v4Hpvya-.js"),J=require("@ynput/ayon-react-components"),X=require("./confirmDelete-BoRH88hw.js"),at=require("./useLocalStorage-BRHTBlxR.js"),ct=require("./useCreateContextMenu-CDRv1ybg.js"),de=require("./platform-C5rgawOb.js");function dt(e){const n=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const t in e)if(t!=="default"){const s=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(n,t,s.get?s:{enumerable:!0,get:()=>e[t]})}}return n.default=e,Object.freeze(n)}const ye=dt(E);function Me(e,n){const t=()=>Z.constructFrom(n==null?void 0:n.in,NaN),o=mt(e);let i;if(o.date){const b=gt(o.date,2);i=pt(b.restDateString,b.year)}if(!i||isNaN(+i))return t();const r=+i;let l=0,h;if(o.time&&(l=xt(o.time),isNaN(l)))return t();if(o.timezone){if(h=yt(o.timezone),isNaN(h))return t()}else{const b=new Date(r+l),c=Z.toDate(0,n==null?void 0:n.in);return c.setFullYear(b.getUTCFullYear(),b.getUTCMonth(),b.getUTCDate()),c.setHours(b.getUTCHours(),b.getUTCMinutes(),b.getUTCSeconds(),b.getUTCMilliseconds()),c}return Z.toDate(r+l+h,n==null?void 0:n.in)}const xe={dateTimeDelimiter:/[T ]/,timeZoneDelimiter:/[Z ]/i,timezone:/([Z+-].*)$/},ut=/^-?(?:(\d{3})|(\d{2})(?:-?(\d{2}))?|W(\d{2})(?:-?(\d{1}))?|)$/,ft=/^(\d{2}(?:[.,]\d*)?)(?::?(\d{2}(?:[.,]\d*)?))?(?::?(\d{2}(?:[.,]\d*)?))?$/,ht=/^([+-])(\d{2})(?::?(\d{2}))?$/;function mt(e){const n={},t=e.split(xe.dateTimeDelimiter);let s;if(t.length>2)return n;if(/:/.test(t[0])?s=t[0]:(n.date=t[0],s=t[1],xe.timeZoneDelimiter.test(n.date)&&(n.date=e.split(xe.timeZoneDelimiter)[0],s=e.substr(n.date.length,e.length))),s){const o=xe.timezone.exec(s);o?(n.time=s.replace(o[1],""),n.timezone=o[1]):n.time=s}return n}function gt(e,n){const t=new RegExp("^(?:(\\d{4}|[+-]\\d{"+(4+n)+"})|(\\d{2}|[+-]\\d{"+(2+n)+"})$)"),s=e.match(t);if(!s)return{year:NaN,restDateString:""};const o=s[1]?parseInt(s[1]):null,i=s[2]?parseInt(s[2]):null;return{year:i===null?o:i*100,restDateString:e.slice((s[1]||s[2]).length)}}function pt(e,n){if(n===null)return new Date(NaN);const t=e.match(ut);if(!t)return new Date(NaN);const s=!!t[4],o=me(t[1]),i=me(t[2])-1,r=me(t[3]),l=me(t[4]),h=me(t[5])-1;if(s)return vt(n,l,h)?wt(n,l,h):new Date(NaN);{const b=new Date(0);return!It(n,i,r)||!Ct(n,o)?new Date(NaN):(b.setUTCFullYear(n,i,Math.max(o,r)),b)}}function me(e){return e?parseInt(e):1}function xt(e){const n=e.match(ft);if(!n)return NaN;const t=Ce(n[1]),s=Ce(n[2]),o=Ce(n[3]);return Et(t,s,o)?t*Z.millisecondsInHour+s*Z.millisecondsInMinute+o*1e3:NaN}function Ce(e){return e&&parseFloat(e.replace(",","."))||0}function yt(e){if(e==="Z")return 0;const n=e.match(ht);if(!n)return 0;const t=n[1]==="+"?-1:1,s=parseInt(n[2]),o=n[3]&&parseInt(n[3])||0;return Tt(s,o)?t*(s*Z.millisecondsInHour+o*Z.millisecondsInMinute):NaN}function wt(e,n,t){const s=new Date(0);s.setUTCFullYear(e,0,4);const o=s.getUTCDay()||7,i=(n-1)*7+t+1-o;return s.setUTCDate(s.getUTCDate()+i),s}const bt=[31,null,31,30,31,30,31,31,30,31,30,31];function Le(e){return e%400===0||e%4===0&&e%100!==0}function It(e,n,t){return n>=0&&n<=11&&t>=1&&t<=(bt[n]||(Le(e)?29:28))}function Ct(e,n){return n>=1&&n<=(Le(e)?366:365)}function vt(e,n,t){return n>=1&&n<=53&&t>=0&&t<=6}function Et(e,n,t){return e===24?n===0&&t===0:t>=0&&t<60&&n>=0&&n<60&&e>=0&&e<25}function Tt(e,n){return n>=0&&n<=59}function ue(e,n,t){let s=t.initialDeps??[],o;function i(){var r,l,h,b;let c;t.key&&((r=t.debug)!=null&&r.call(t))&&(c=Date.now());const C=e();if(!(C.length!==s.length||C.some((a,f)=>s[f]!==a)))return o;s=C;let m;if(t.key&&((l=t.debug)!=null&&l.call(t))&&(m=Date.now()),o=n(...C),t.key&&((h=t.debug)!=null&&h.call(t))){const a=Math.round((Date.now()-c)*100)/100,f=Math.round((Date.now()-m)*100)/100,d=f/16,x=(p,y)=>{for(p=String(p);p.length<y;)p=" "+p;return p};console.info(`%c⏱ ${x(f,5)} /${x(a,5)} ms`,`
|
|
2
|
+
font-size: .6rem;
|
|
3
|
+
font-weight: bold;
|
|
4
|
+
color: hsl(${Math.max(0,Math.min(120-120*d,120))}deg 100% 31%);`,t==null?void 0:t.key)}return(b=t==null?void 0:t.onChange)==null||b.call(t,o),o}return i.updateDeps=r=>{s=r},i}function ve(e,n){if(e===void 0)throw new Error("Unexpected undefined");return e}const St=(e,n)=>Math.abs(e-n)<1,Rt=(e,n,t)=>{let s;return function(...o){e.clearTimeout(s),s=e.setTimeout(()=>n.apply(this,o),t)}},jt=e=>e,kt=e=>{const n=Math.max(e.startIndex-e.overscan,0),t=Math.min(e.endIndex+e.overscan,e.count-1),s=[];for(let o=n;o<=t;o++)s.push(o);return s},At=(e,n)=>{const t=e.scrollElement;if(!t)return;const s=e.targetWindow;if(!s)return;const o=r=>{const{width:l,height:h}=r;n({width:Math.round(l),height:Math.round(h)})};if(o(t.getBoundingClientRect()),!s.ResizeObserver)return()=>{};const i=new s.ResizeObserver(r=>{const l=()=>{const h=r[0];if(h!=null&&h.borderBoxSize){const b=h.borderBoxSize[0];if(b){o({width:b.inlineSize,height:b.blockSize});return}}o(t.getBoundingClientRect())};e.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(l):l()});return i.observe(t,{box:"border-box"}),()=>{i.unobserve(t)}},Oe={passive:!0},ze=typeof window>"u"?!0:"onscrollend"in window,Dt=(e,n)=>{const t=e.scrollElement;if(!t)return;const s=e.targetWindow;if(!s)return;let o=0;const i=e.options.useScrollendEvent&&ze?()=>{}:Rt(s,()=>{n(o,!1)},e.options.isScrollingResetDelay),r=c=>()=>{const{horizontal:C,isRtl:u}=e.options;o=C?t.scrollLeft*(u&&-1||1):t.scrollTop,i(),n(o,c)},l=r(!0),h=r(!1);h(),t.addEventListener("scroll",l,Oe);const b=e.options.useScrollendEvent&&ze;return b&&t.addEventListener("scrollend",h,Oe),()=>{t.removeEventListener("scroll",l),b&&t.removeEventListener("scrollend",h)}},Mt=(e,n,t)=>{if(n!=null&&n.borderBoxSize){const s=n.borderBoxSize[0];if(s)return Math.round(s[t.options.horizontal?"inlineSize":"blockSize"])}return Math.round(e.getBoundingClientRect()[t.options.horizontal?"width":"height"])},Ot=(e,{adjustments:n=0,behavior:t},s)=>{var o,i;const r=e+n;(i=(o=s.scrollElement)==null?void 0:o.scrollTo)==null||i.call(o,{[s.options.horizontal?"left":"top"]:r,behavior:t})};class zt{constructor(n){this.unsubs=[],this.scrollElement=null,this.targetWindow=null,this.isScrolling=!1,this.scrollToIndexTimeoutId=null,this.measurementsCache=[],this.itemSizeCache=new Map,this.pendingMeasuredCacheIndexes=[],this.scrollRect=null,this.scrollOffset=null,this.scrollDirection=null,this.scrollAdjustments=0,this.elementsCache=new Map,this.observer=(()=>{let t=null;const s=()=>t||(!this.targetWindow||!this.targetWindow.ResizeObserver?null:t=new this.targetWindow.ResizeObserver(o=>{o.forEach(i=>{const r=()=>{this._measureElement(i.target,i)};this.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(r):r()})}));return{disconnect:()=>{var o;(o=s())==null||o.disconnect(),t=null},observe:o=>{var i;return(i=s())==null?void 0:i.observe(o,{box:"border-box"})},unobserve:o=>{var i;return(i=s())==null?void 0:i.unobserve(o)}}})(),this.range=null,this.setOptions=t=>{Object.entries(t).forEach(([s,o])=>{typeof o>"u"&&delete t[s]}),this.options={debug:!1,initialOffset:0,overscan:1,paddingStart:0,paddingEnd:0,scrollPaddingStart:0,scrollPaddingEnd:0,horizontal:!1,getItemKey:jt,rangeExtractor:kt,onChange:()=>{},measureElement:Mt,initialRect:{width:0,height:0},scrollMargin:0,gap:0,indexAttribute:"data-index",initialMeasurementsCache:[],lanes:1,isScrollingResetDelay:150,enabled:!0,isRtl:!1,useScrollendEvent:!1,useAnimationFrameWithResizeObserver:!1,...t}},this.notify=t=>{var s,o;(o=(s=this.options).onChange)==null||o.call(s,this,t)},this.maybeNotify=ue(()=>(this.calculateRange(),[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]),t=>{this.notify(t)},{key:process.env.NODE_ENV!=="production"&&"maybeNotify",debug:()=>this.options.debug,initialDeps:[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]}),this.cleanup=()=>{this.unsubs.filter(Boolean).forEach(t=>t()),this.unsubs=[],this.observer.disconnect(),this.scrollElement=null,this.targetWindow=null},this._didMount=()=>()=>{this.cleanup()},this._willUpdate=()=>{var t;const s=this.options.enabled?this.options.getScrollElement():null;if(this.scrollElement!==s){if(this.cleanup(),!s){this.maybeNotify();return}this.scrollElement=s,this.scrollElement&&"ownerDocument"in this.scrollElement?this.targetWindow=this.scrollElement.ownerDocument.defaultView:this.targetWindow=((t=this.scrollElement)==null?void 0:t.window)??null,this.elementsCache.forEach(o=>{this.observer.observe(o)}),this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0}),this.unsubs.push(this.options.observeElementRect(this,o=>{this.scrollRect=o,this.maybeNotify()})),this.unsubs.push(this.options.observeElementOffset(this,(o,i)=>{this.scrollAdjustments=0,this.scrollDirection=i?this.getScrollOffset()<o?"forward":"backward":null,this.scrollOffset=o,this.isScrolling=i,this.maybeNotify()}))}},this.getSize=()=>this.options.enabled?(this.scrollRect=this.scrollRect??this.options.initialRect,this.scrollRect[this.options.horizontal?"width":"height"]):(this.scrollRect=null,0),this.getScrollOffset=()=>this.options.enabled?(this.scrollOffset=this.scrollOffset??(typeof this.options.initialOffset=="function"?this.options.initialOffset():this.options.initialOffset),this.scrollOffset):(this.scrollOffset=null,0),this.getFurthestMeasurement=(t,s)=>{const o=new Map,i=new Map;for(let r=s-1;r>=0;r--){const l=t[r];if(o.has(l.lane))continue;const h=i.get(l.lane);if(h==null||l.end>h.end?i.set(l.lane,l):l.end<h.end&&o.set(l.lane,!0),o.size===this.options.lanes)break}return i.size===this.options.lanes?Array.from(i.values()).sort((r,l)=>r.end===l.end?r.index-l.index:r.end-l.end)[0]:void 0},this.getMeasurementOptions=ue(()=>[this.options.count,this.options.paddingStart,this.options.scrollMargin,this.options.getItemKey,this.options.enabled],(t,s,o,i,r)=>(this.pendingMeasuredCacheIndexes=[],{count:t,paddingStart:s,scrollMargin:o,getItemKey:i,enabled:r}),{key:!1}),this.getMeasurements=ue(()=>[this.getMeasurementOptions(),this.itemSizeCache],({count:t,paddingStart:s,scrollMargin:o,getItemKey:i,enabled:r},l)=>{if(!r)return this.measurementsCache=[],this.itemSizeCache.clear(),[];this.measurementsCache.length===0&&(this.measurementsCache=this.options.initialMeasurementsCache,this.measurementsCache.forEach(c=>{this.itemSizeCache.set(c.key,c.size)}));const h=this.pendingMeasuredCacheIndexes.length>0?Math.min(...this.pendingMeasuredCacheIndexes):0;this.pendingMeasuredCacheIndexes=[];const b=this.measurementsCache.slice(0,h);for(let c=h;c<t;c++){const C=i(c),u=this.options.lanes===1?b[c-1]:this.getFurthestMeasurement(b,c),m=u?u.end+this.options.gap:s+o,a=l.get(C),f=typeof a=="number"?a:this.options.estimateSize(c),d=m+f,x=u?u.lane:c%this.options.lanes;b[c]={index:c,start:m,size:f,end:d,key:C,lane:x}}return this.measurementsCache=b,b},{key:process.env.NODE_ENV!=="production"&&"getMeasurements",debug:()=>this.options.debug}),this.calculateRange=ue(()=>[this.getMeasurements(),this.getSize(),this.getScrollOffset(),this.options.lanes],(t,s,o,i)=>this.range=t.length>0&&s>0?_t({measurements:t,outerSize:s,scrollOffset:o,lanes:i}):null,{key:process.env.NODE_ENV!=="production"&&"calculateRange",debug:()=>this.options.debug}),this.getVirtualIndexes=ue(()=>{let t=null,s=null;const o=this.calculateRange();return o&&(t=o.startIndex,s=o.endIndex),this.maybeNotify.updateDeps([this.isScrolling,t,s]),[this.options.rangeExtractor,this.options.overscan,this.options.count,t,s]},(t,s,o,i,r)=>i===null||r===null?[]:t({startIndex:i,endIndex:r,overscan:s,count:o}),{key:process.env.NODE_ENV!=="production"&&"getVirtualIndexes",debug:()=>this.options.debug}),this.indexFromElement=t=>{const s=this.options.indexAttribute,o=t.getAttribute(s);return o?parseInt(o,10):(console.warn(`Missing attribute name '${s}={index}' on measured element.`),-1)},this._measureElement=(t,s)=>{const o=this.indexFromElement(t),i=this.measurementsCache[o];if(!i)return;const r=i.key,l=this.elementsCache.get(r);l!==t&&(l&&this.observer.unobserve(l),this.observer.observe(t),this.elementsCache.set(r,t)),t.isConnected&&this.resizeItem(o,this.options.measureElement(t,s,this))},this.resizeItem=(t,s)=>{const o=this.measurementsCache[t];if(!o)return;const i=this.itemSizeCache.get(o.key)??o.size,r=s-i;r!==0&&((this.shouldAdjustScrollPositionOnItemSizeChange!==void 0?this.shouldAdjustScrollPositionOnItemSizeChange(o,r,this):o.start<this.getScrollOffset()+this.scrollAdjustments)&&(process.env.NODE_ENV!=="production"&&this.options.debug&&console.info("correction",r),this._scrollToOffset(this.getScrollOffset(),{adjustments:this.scrollAdjustments+=r,behavior:void 0})),this.pendingMeasuredCacheIndexes.push(o.index),this.itemSizeCache=new Map(this.itemSizeCache.set(o.key,s)),this.notify(!1))},this.measureElement=t=>{if(!t){this.elementsCache.forEach((s,o)=>{s.isConnected||(this.observer.unobserve(s),this.elementsCache.delete(o))});return}this._measureElement(t,void 0)},this.getVirtualItems=ue(()=>[this.getVirtualIndexes(),this.getMeasurements()],(t,s)=>{const o=[];for(let i=0,r=t.length;i<r;i++){const l=t[i],h=s[l];o.push(h)}return o},{key:process.env.NODE_ENV!=="production"&&"getVirtualItems",debug:()=>this.options.debug}),this.getVirtualItemForOffset=t=>{const s=this.getMeasurements();if(s.length!==0)return ve(s[Ue(0,s.length-1,o=>ve(s[o]).start,t)])},this.getOffsetForAlignment=(t,s,o=0)=>{const i=this.getSize(),r=this.getScrollOffset();s==="auto"&&(s=t>=r+i?"end":"start"),s==="center"?t+=(o-i)/2:s==="end"&&(t-=i);const l=this.options.horizontal?"scrollWidth":"scrollHeight",b=(this.scrollElement?"document"in this.scrollElement?this.scrollElement.document.documentElement[l]:this.scrollElement[l]:0)-i;return Math.max(Math.min(b,t),0)},this.getOffsetForIndex=(t,s="auto")=>{t=Math.max(0,Math.min(t,this.options.count-1));const o=this.measurementsCache[t];if(!o)return;const i=this.getSize(),r=this.getScrollOffset();if(s==="auto")if(o.end>=r+i-this.options.scrollPaddingEnd)s="end";else if(o.start<=r+this.options.scrollPaddingStart)s="start";else return[r,s];const l=s==="end"?o.end+this.options.scrollPaddingEnd:o.start-this.options.scrollPaddingStart;return[this.getOffsetForAlignment(l,s,o.size),s]},this.isDynamicMode=()=>this.elementsCache.size>0,this.cancelScrollToIndex=()=>{this.scrollToIndexTimeoutId!==null&&this.targetWindow&&(this.targetWindow.clearTimeout(this.scrollToIndexTimeoutId),this.scrollToIndexTimeoutId=null)},this.scrollToOffset=(t,{align:s="start",behavior:o}={})=>{this.cancelScrollToIndex(),o==="smooth"&&this.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size."),this._scrollToOffset(this.getOffsetForAlignment(t,s),{adjustments:void 0,behavior:o})},this.scrollToIndex=(t,{align:s="auto",behavior:o}={})=>{t=Math.max(0,Math.min(t,this.options.count-1)),this.cancelScrollToIndex(),o==="smooth"&&this.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size.");const i=this.getOffsetForIndex(t,s);if(!i)return;const[r,l]=i;this._scrollToOffset(r,{adjustments:void 0,behavior:o}),o!=="smooth"&&this.isDynamicMode()&&this.targetWindow&&(this.scrollToIndexTimeoutId=this.targetWindow.setTimeout(()=>{if(this.scrollToIndexTimeoutId=null,this.elementsCache.has(this.options.getItemKey(t))){const[b]=ve(this.getOffsetForIndex(t,l));St(b,this.getScrollOffset())||this.scrollToIndex(t,{align:l,behavior:o})}else this.scrollToIndex(t,{align:l,behavior:o})}))},this.scrollBy=(t,{behavior:s}={})=>{this.cancelScrollToIndex(),s==="smooth"&&this.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size."),this._scrollToOffset(this.getScrollOffset()+t,{adjustments:void 0,behavior:s})},this.getTotalSize=()=>{var t;const s=this.getMeasurements();let o;if(s.length===0)o=this.options.paddingStart;else if(this.options.lanes===1)o=((t=s[s.length-1])==null?void 0:t.end)??0;else{const i=Array(this.options.lanes).fill(null);let r=s.length-1;for(;r>=0&&i.some(l=>l===null);){const l=s[r];i[l.lane]===null&&(i[l.lane]=l.end),r--}o=Math.max(...i.filter(l=>l!==null))}return Math.max(o-this.options.scrollMargin+this.options.paddingEnd,0)},this._scrollToOffset=(t,{adjustments:s,behavior:o})=>{this.options.scrollToFn(t,{behavior:o,adjustments:s},this)},this.measure=()=>{this.itemSizeCache=new Map,this.notify(!1)},this.setOptions(n)}}const Ue=(e,n,t,s)=>{for(;e<=n;){const o=(e+n)/2|0,i=t(o);if(i<s)e=o+1;else if(i>s)n=o-1;else return o}return e>0?e-1:0};function _t({measurements:e,outerSize:n,scrollOffset:t,lanes:s}){const o=e.length-1,i=h=>e[h].start;if(e.length<=s)return{startIndex:0,endIndex:o};let r=Ue(0,o,i,t),l=r;if(s===1)for(;l<o&&e[l].end<t+n;)l++;else if(s>1){const h=Array(s).fill(0);for(;l<o&&h.some(c=>c<t+n);){const c=e[l];h[c.lane]=c.end,l++}const b=Array(s).fill(t+n);for(;r>=0&&b.some(c=>c>=t);){const c=e[r];b[c.lane]=c.start,r--}r=Math.max(0,r-r%s),l=Math.min(o,l+(s-1-l%s))}return{startIndex:r,endIndex:l}}const _e=typeof document<"u"?ye.useLayoutEffect:ye.useEffect;function $t(e){const n=ye.useReducer(()=>({}),{})[1],t={...e,onChange:(o,i)=>{var r;i?Ve.flushSync(n):n(),(r=e.onChange)==null||r.call(e,o,i)}},[s]=ye.useState(()=>new zt(t));return s.setOptions(t),_e(()=>s._didMount(),[]),_e(()=>s._willUpdate()),s}function We(e){return $t({observeElementRect:At,observeElementOffset:Dt,scrollToFn:Ot,...e})}const Nt=N.div`
|
|
5
|
+
width: 8px;
|
|
6
|
+
height: 8px;
|
|
7
|
+
border-radius: 50%;
|
|
8
|
+
background-color: #ffffff;
|
|
9
|
+
|
|
10
|
+
position: absolute;
|
|
11
|
+
top: 50%;
|
|
12
|
+
left: 50%;
|
|
13
|
+
transform: translate(-50%, -50%);
|
|
14
|
+
`,Ft=E.forwardRef(({color:e,...n},t)=>j.jsxRuntimeExports.jsx(Nt,{style:{backgroundColor:e},...n,ref:t})),Pt=N.input`
|
|
15
|
+
z-index: 10;
|
|
16
|
+
border: none;
|
|
17
|
+
outline: none;
|
|
18
|
+
padding: 0;
|
|
19
|
+
padding-left: 1px;
|
|
20
|
+
margin: 0;
|
|
21
|
+
cursor: text;
|
|
22
|
+
font-size: inherit;
|
|
23
|
+
font-family: inherit;
|
|
24
|
+
font-weight: inherit;
|
|
25
|
+
background-color: transparent;
|
|
26
|
+
width: 100%;
|
|
27
|
+
box-sizing: border-box;
|
|
28
|
+
`,Vt=E.forwardRef(({value:e,onChange:n,onCancel:t,autoFocus:s=!0,...o},i)=>{const[r,l]=E.useState(()=>{if(e){const m=Me(e);if(Z.isValid(m))return Z.format(m,"yyyy-MM-dd")}return""});E.useEffect(()=>{if(e){const m=Me(e);Z.isValid(m)?l(Z.format(m,"yyyy-MM-dd")):l("")}},[e]);const h=E.useRef(null);E.useEffect(()=>{s&&h.current&&(h.current.focus(),setTimeout(()=>{var m;try{(m=h.current)==null||m.showPicker()}catch(a){console.debug("Date picker could not be shown automatically:",a)}},100))},[s]);const b=m=>{var a;m.preventDefault();try{(a=h.current)==null||a.showPicker()}catch(f){console.debug("Date picker could not be shown on click:",f)}},c=m=>{if(r){const a=Date.parse(r);if(Z.isValid(a)){const f=new Date(a);return f.setUTCHours(0,0,0,0),n(f.toISOString(),m),!0}}return!1},C=()=>{c("Click")||t==null||t()},u=m=>{var a;m.key==="Enter"?(m.preventDefault(),c("Enter"),(a=h.current)==null||a.blur()):m.key==="Escape"&&(m.preventDefault(),t==null||t())};return j.jsxRuntimeExports.jsx(Pt,{...o,ref:h,type:"date",value:r,onChange:m=>l(m.target.value),onBlur:C,onKeyDown:u,onClick:b})}),Lt=E.forwardRef(({value:e,isEditing:n,isReadOnly:t,isInherited:s,onChange:o,onCancelEdit:i,...r},l)=>{let h="";try{h=Z.format(new Date(e),"dd-MM-yyyy")}catch{console.error("Invalid date value:",e),h="Invalid Date"}return n?j.jsxRuntimeExports.jsx(Vt,{value:e,onChange:o,onCancel:i,readOnly:t,disabled:t,...r}):j.jsxRuntimeExports.jsx("span",{...r,ref:l,children:h})}),Ut=N.div`
|
|
29
|
+
display: flex;
|
|
30
|
+
gap: var(--base-gap-small);
|
|
31
|
+
align-items: center;
|
|
32
|
+
width: 100%;
|
|
33
|
+
height: 100%;
|
|
34
|
+
overflow: hidden;
|
|
35
|
+
border-radius: var(--border-radius-m);
|
|
36
|
+
padding: 0 2px;
|
|
37
|
+
cursor: pointer;
|
|
38
|
+
|
|
39
|
+
&:hover {
|
|
40
|
+
background-color: var(--md-sys-color-surface-container-high-hover);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
&.item {
|
|
44
|
+
padding: 4px 2px;
|
|
45
|
+
border-radius: 0;
|
|
46
|
+
|
|
47
|
+
&:hover {
|
|
48
|
+
background-color: var(--md-sys-color-surface-container-hover);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
&.selected {
|
|
53
|
+
background-color: var(--md-sys-color-primary-container);
|
|
54
|
+
|
|
55
|
+
&:hover {
|
|
56
|
+
background-color: var(--md-sys-color-primary-container-hover);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
`,Wt=N.div`
|
|
60
|
+
display: flex;
|
|
61
|
+
gap: var(--base-gap-small);
|
|
62
|
+
align-items: center;
|
|
63
|
+
overflow: hidden;
|
|
64
|
+
border-radius: var(--border-radius-m);
|
|
65
|
+
`,Kt=N.div`
|
|
66
|
+
display: flex;
|
|
67
|
+
gap: var(--base-gap-small);
|
|
68
|
+
align-items: center;
|
|
69
|
+
|
|
70
|
+
overflow: hidden;
|
|
71
|
+
max-width: 100%;
|
|
72
|
+
min-width: 20px;
|
|
73
|
+
`,Bt=N.span`
|
|
74
|
+
/* push expand icon to the end */
|
|
75
|
+
flex: 1;
|
|
76
|
+
overflow: hidden;
|
|
77
|
+
white-space: nowrap;
|
|
78
|
+
width: 100%;
|
|
79
|
+
text-overflow: ellipsis;
|
|
80
|
+
text-align: left;
|
|
81
|
+
border-radius: var(--border-radius-m);
|
|
82
|
+
padding: 0px 2px;
|
|
83
|
+
text-align: center;
|
|
84
|
+
|
|
85
|
+
&.placeholder {
|
|
86
|
+
color: var(--md-sys-color-outline);
|
|
87
|
+
}
|
|
88
|
+
`,Ht=N.img`
|
|
89
|
+
width: 20px;
|
|
90
|
+
height: 20px;
|
|
91
|
+
object-fit: cover;
|
|
92
|
+
|
|
93
|
+
&.avatar {
|
|
94
|
+
border-radius: 50%;
|
|
95
|
+
}
|
|
96
|
+
`,qt=N(J.Icon)`
|
|
97
|
+
margin-left: auto;
|
|
98
|
+
transition: rotate 0.2s;
|
|
99
|
+
`,Yt=N(J.Dropdown)`
|
|
100
|
+
height: 100%;
|
|
101
|
+
width: 100%;
|
|
102
|
+
`,Qt=(e="")=>e.startsWith("/")||e.startsWith("./")||e.startsWith("../")||e.startsWith("http://")||e.startsWith("https://"),Zt=e=>e.includes("avatar"),Jt=E.forwardRef(({value:e,isEditing:n,options:t,type:s,autoOpen:o=!0,isReadOnly:i,enableCustomValues:r,onOpen:l,onChange:h,onCancelEdit:b,onNext:c,pt:C,...u},m)=>{var D;const a=e.map(w=>w==null?void 0:w.toString()).filter(w=>!!w);let f=t.filter(w=>a.includes(w.value.toString()));a.forEach(w=>{t.find(I=>I.value===w)||(f=[...f,{label:w,value:w,color:r?"var(--md-sys-color-surface-container)":"var(--md-sys-color-error)",icon:r?void 0:"warning"}])});const d=f.length>1,x=E.useRef(null),p=w=>{w.target instanceof HTMLElement&&w.target.closest(".expand")&&l&&!i&&(l(),w.stopPropagation())},[y,g]=E.useState(!1);E.useEffect(()=>{var w;n&&x.current&&o?(!x.current.isOpen&&((w=x.current)==null||w.open()),g(!0)):g(!1)},[n,x.current,o]),E.useEffect(()=>{var w;if(y){const I=(w=x.current)==null?void 0:w.getOptions(),v=I==null?void 0:I.querySelector("li");v&&(v.focus(),v.style.outline="none")}},[y]);const R=!!(s!=null&&s.includes("list")),A=w=>{const I=r?w:w.filter(v=>t.find(S=>S.value===v));s!=null&&s.includes("list")?h(I,"Click"):h(I[0],"Click")};return n?j.jsxRuntimeExports.jsx(Yt,{options:t,value:a,ref:x,valueTemplate:(w,I,v)=>{var S;return j.jsxRuntimeExports.jsx(Ee,{selectedOptions:f,hasMultipleValues:I.length>1,isOpen:v,isReadOnly:i,isMultiSelect:R,...C==null?void 0:C.template,placeholder:u.placeholder,className:B.clsx("enum-dropdown-value",(S=C==null?void 0:C.template)==null?void 0:S.className)})},itemTemplate:(w,I,v)=>{var S;return j.jsxRuntimeExports.jsx(Ee,{selectedOptions:[w],hasMultipleValues:!1,isOpen:!1,isItem:!0,isSelected:v,...C==null?void 0:C.template,className:B.clsx("enum-dropdown-item",(S=C==null?void 0:C.template)==null?void 0:S.className)})},widthExpand:!0,multiSelect:R,disableOpen:i,disabled:i,sortBySelected:!0,...u,onChange:A,onClose:b}):j.jsxRuntimeExports.jsx(Ee,{selectedOptions:f,hasMultipleValues:d,onClick:p,isMultiSelect:R,isReadOnly:i,...C==null?void 0:C.template,placeholder:u.placeholder,className:B.clsx("enum-value",(D=C==null?void 0:C.template)==null?void 0:D.className,u.className)})}),Ee=({selectedOptions:e,placeholder:n,hasMultipleValues:t,isMultiSelect:s,isOpen:o,isItem:i,isSelected:r,isReadOnly:l,className:h,...b})=>{const c=e.every(a=>a.icon),C=!t||!c,u=!c&&s&&!i,m=!e.length&&n;return m&&(e=[{label:n,value:""}]),j.jsxRuntimeExports.jsxs(Ut,{className:B.clsx(h,{selected:r,item:i}),...b,children:[j.jsxRuntimeExports.jsx(Wt,{children:e.map((a,f)=>j.jsxRuntimeExports.jsxs(Kt,{children:[a.icon&&Qt(a.icon)?j.jsxRuntimeExports.jsx(Ht,{src:a.icon,className:B.clsx({avatar:Zt(a.icon)})}):a.icon?j.jsxRuntimeExports.jsx(J.Icon,{icon:a.icon,style:{color:a.color}}):null,(C||!a.icon)&&j.jsxRuntimeExports.jsx(Bt,{style:{color:u?"inherit":a.color,backgroundColor:u?a.color||"var(--md-sys-color-surface-container)":"transparent"},className:B.clsx({placeholder:m}),children:a.label})]},a.value.toString()+f))}),!i&&!l&&j.jsxRuntimeExports.jsx(qt,{className:"expand",icon:"expand_more",style:{rotate:o?"180deg":"0"}})]})},Gt=N.input`
|
|
103
|
+
z-index: 10;
|
|
104
|
+
border: none;
|
|
105
|
+
outline: none;
|
|
106
|
+
padding: 0;
|
|
107
|
+
padding-left: 1px;
|
|
108
|
+
margin: 0;
|
|
109
|
+
cursor: text;
|
|
110
|
+
font-size: inherit;
|
|
111
|
+
font-family: inherit;
|
|
112
|
+
font-weight: inherit;
|
|
113
|
+
background-color: transparent;
|
|
114
|
+
width: 100%;
|
|
115
|
+
box-sizing: border-box;
|
|
116
|
+
`,Xt=E.forwardRef(({value:e,onChange:n,onCancel:t,autoFocus:s=!0,...o},i)=>{const[r,l]=E.useState(e),h=E.useRef(null),b=E.useRef(!1);E.useEffect(()=>{s&&h&&h.current&&(h.current.focus(),h.current.select())},[s]);const c=u=>{u.key==="Enter"?(u.preventDefault(),n(r,"Enter")):u.key==="Escape"&&(u.preventDefault(),u.stopPropagation(),b.current=!0,t==null||t())},C=u=>{var m;((m=u.relatedTarget)==null?void 0:m.tagName)!=="INPUT"&&(b.current||n(r,"Click"),b.current=!1)};return j.jsxRuntimeExports.jsx(Gt,{...o,ref:h,value:r,onChange:u=>l(u.target.value),onKeyDown:c,onBlur:C})}),en=N.span`
|
|
117
|
+
overflow: hidden;
|
|
118
|
+
text-overflow: ellipsis;
|
|
119
|
+
white-space: nowrap;
|
|
120
|
+
`,$e=E.forwardRef(({value:e,isEditing:n,isInherited:t,onChange:s,onCancelEdit:o,...i},r)=>n?j.jsxRuntimeExports.jsx(Xt,{value:e,onChange:s,onCancel:o,type:"text"}):j.jsxRuntimeExports.jsx(en,{...i,ref:r,children:e})),tn=N.input`
|
|
121
|
+
margin: auto;
|
|
122
|
+
z-index: 1;
|
|
123
|
+
cursor: pointer;
|
|
124
|
+
|
|
125
|
+
width: 16px;
|
|
126
|
+
height: 16px;
|
|
127
|
+
background-color: transparent;
|
|
128
|
+
border: 1px solid var(--md-sys-color-outline);
|
|
129
|
+
appearance: none;
|
|
130
|
+
border-radius: 2px;
|
|
131
|
+
|
|
132
|
+
&:hover {
|
|
133
|
+
border-color: hsl(212.31deg 16.83% 74.65%);
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
&:checked {
|
|
137
|
+
background-color: var(--md-sys-color-primary);
|
|
138
|
+
border-color: var(--md-sys-color-primary);
|
|
139
|
+
appearance: auto;
|
|
140
|
+
}
|
|
141
|
+
`,nn=E.forwardRef(({value:e,onChange:n,isReadOnly:t,isEditing:s,onCancelEdit:o,...i},r)=>j.jsxRuntimeExports.jsx(tn,{...i,checked:e,onChange:l=>n(l.target.checked),ref:r,type:"checkbox",disabled:t,readOnly:t})),Ke=E.createContext(void 0),sn=({children:e,updateEntities:n,getFoldersTasks:t})=>j.jsxRuntimeExports.jsx(Ke.Provider,{value:{updateEntities:n,getFoldersTasks:t},children:e}),Ie=()=>{const e=E.useContext(Ke);if(!e)throw new Error("useProjectTableQueriesContext must be used within a ProjectTableQueriesProvider");return e},we=(e,n=50,{type:t="folder",parentId:s}={})=>new Array(n).fill(0).map((o,i)=>({id:`loading-${t}-${i}-${s}`,name:"Loading...",parentId:s,isLoading:!0,label:"Loading...",color:null,icon:null,img:null,entityType:t,ownAttrib:[],tags:[],subRows:[],path:"",attrib:e.reduce((r,l)=>(r[l.name]=null,r),{})})),Be=(e=10)=>Array(e).fill(null).map((n,t)=>({name:`loading-attribute${t}`,scope:["folder","task"],data:{type:"string"},position:t})),on=({expandedFoldersTasks:e,expandedParentIds:n,foldersMap:t})=>{var h;const s=e.map(b=>b.folderId),o=n.filter(b=>{var c;return(c=t.get(b))==null?void 0:c.hasTasks}),i=new Set(s),r=new Set;for(const b of o)i.has(b)||r.add(b);const l={};for(const b of r){const c=t.get(b);c&&(l[b]=((h=c.taskNames)==null?void 0:h.length)||0)}return l},rn=100;function ln({foldersMap:e,tasksMap:n,tasksByFolderMap:t,expanded:s,folderTypes:o=[],taskTypes:i=[],showHierarchy:r,loadingTasks:l={},isLoadingMore:h=!1}){const b=E.useMemo(()=>{const d=new Map;for(const x of o)d.set(x.name,x);return d},[o]),c=E.useMemo(()=>{const d=new Map;for(const x of i)d.set(x.name,x);return d},[i]),C=E.useMemo(()=>JSON.stringify(s),[s]),u=E.useMemo(()=>new Set(Object.entries(s).filter(([d,x])=>x).map(([d])=>d)),[C]),{childToParentMap:m,parentToChildrenMap:a}=E.useMemo(()=>{const d=new Map,x=new Map;for(const p of e.values()){if(!p.id)continue;const y=p.parentId;if(y){d.set(p.id,y);let g=x.get(y);g||(g=new Set,x.set(y,g)),g.add(p.id)}}return{childToParentMap:d,parentToChildrenMap:x}},[e]),f=E.useMemo(()=>{const d=new Set,x=[];for(const p of e.values())p.id&&(!p.parentId||!e.has(p.parentId))&&(d.add(p.id),x.push(p.id));for(;x.length>0;){const p=x.shift();if(!u.has(p))continue;const g=a.get(p);if(g)for(const R of g)d.has(R)||(d.add(R),x.push(R))}return d},[e,a,u]);return E.useMemo(()=>{var y,g,R,A,D,w,I;const d=(v,S)=>{var O,T;return{id:v.id,entityType:"task",parentId:S||v.folderId,name:v.name||"",label:v.label||v.name||"",icon:((O=c.get(v.taskType))==null?void 0:O.icon)||null,color:((T=c.get(v.taskType))==null?void 0:T.color)||null,status:v.status,assignees:v.assignees,tags:v.tags,img:null,subRows:[],subType:v.taskType||null,attrib:v.attrib,ownAttrib:v.ownAttrib,path:v.folder.path}};if(!r){const v=[];for(const S of n.values())S.id&&v.push(d(S));if(v.length>1&&v.sort((S,O)=>S.name<O.name?-1:S.name>O.name?1:0),h){const S=((R=(g=(y=n.entries().next())==null?void 0:y.value)==null?void 0:g[1])==null?void 0:R.attrib)||{},O=Object.keys(S).map(M=>({name:M})),T=rn;{const M=we(O,T,{type:"task"});v.push(...M)}}return v}const x=new Map,p=[];for(const v of f){const S=e.get(v);if(!S)continue;const O={id:v,entityType:"folder",parentId:S.parentId||void 0,name:S.name||"",label:S.label||S.name||"",icon:((A=b.get(S.folderType))==null?void 0:A.icon)||null,color:null,img:null,subRows:[],status:S.status,tags:S.tags||[],subType:S.folderType||null,ownAttrib:S.ownAttrib||[],path:S.path,attrib:S.attrib||{},childOnlyMatch:S.childOnlyMatch||!1};if(x.set(v,O),(!S.parentId||!e.has(S.parentId))&&p.push(O),u.has(v)){const M=(t.get(v)||[]).flatMap(k=>n.get(k)||[]);if(M.length||l[v]){const k=new Array(M.length);for(let z=0;z<M.length;z++)k[z]=d(M[z],v);if(l[v]){const z=((I=(w=(D=n.entries().next())==null?void 0:D.value)==null?void 0:w[1])==null?void 0:I.attrib)||{},_=Object.keys(z).map($=>({name:$})),F=l[v];if(F>0){const $=we(_,F,{type:"task",parentId:v});k.push(...$)}}k.length>1&&k.sort((z,_)=>z.name<_.name?-1:z.name>_.name?1:0),O.subRows=k}}}for(const v of f){const S=m.get(v);if(!S||!u.has(S))continue;const O=x.get(v),T=x.get(S);!O||!T||T.subRows.push(O)}for(const v of u){const S=x.get(v);if(!S||S.subRows.length<=1)continue;S.subRows.some(T=>T.entityType==="task")&&S.subRows.some(T=>T.entityType==="folder")&&S.subRows.sort((T,M)=>{const k=T.entityType==="task"?0:1,z=M.entityType==="task"?0:1;return k!==z?k-z:T.name<M.name?-1:T.name>M.name?1:0})}return p.length>1&&p.sort((v,S)=>v.name<S.name?-1:v.name>S.name?1:0),p},[e,n,f,m,u,r,c,l,h])}function an({foldersMap:e,tasksMap:n,tasksByFolderMap:t,getEntityById:s,projectAttrib:o,attribFields:i}){const r=E.useMemo(()=>{const m=new Map;for(const a of e.values()){const f=a.parentId;f&&(m.has(f)||m.set(f,[]),m.get(f).push(a.id))}return m},[e]),l=E.useCallback(m=>{const a=[],f=[m],d=new Set;for(;f.length>0;){const x=f.shift();if(d.has(x))continue;if(d.add(x),x!==m){const g=e.get(x);g&&a.push({...g,entityType:"folder"})}const p=t.get(x);if(p!=null&&p.length)for(const g of p){const R=n.get(g);R&&a.push({...R,entityType:"task"})}const y=r.get(x);y!=null&&y.length&&f.push(...y)}return a},[e,t,n,r]),h=E.useCallback(m=>{const a=[];let f=m;for(;;){const d=e.get(f);if(!d||!d.parentId)break;a.push(d.parentId),f=d.parentId}return a},[e]),b=E.useCallback(m=>{const a=n.get(m);if(!a||!a.folderId)return[];const f=[a.folderId],d=h(a.folderId);return f.push(...d),f},[n,h]),c=E.useCallback((m,a)=>{var p;if(!a.length)return{};const f={},d=new Set(a);let x=m;for(;d.size>0;){const y=s(x);if(!y||!x){for(const g of d)o&&g in o&&(f[g]=o[g],d.delete(g));break}for(const g of Array.from(d))(p=y.ownAttrib)!=null&&p.includes(g)&&y.attrib&&g in y.attrib&&(f[g]=y.attrib[g],d.delete(g));x=y.parentId}for(const y of d)f[y]=null;return f},[s]),C=E.useCallback(m=>{if(!m.length)return[];const a=[],f=new Map;for(const d of m){if(d.entityType!=="folder")continue;const x=Object.entries(d.attrib);if(!x.length)continue;const y=l(d.entityId).filter(g=>!m.find(R=>R.entityId===g.id));if(y.length)for(const g of y){const R=x.filter(([w])=>{var I,v,S;return!((I=g.ownAttrib)!=null&&I.includes(w))&&((S=(v=i==null?void 0:i.find(O=>O.name===w))==null?void 0:v.data)==null?void 0:S.inherit)}),A=x.filter(([w])=>{var I;return(I=g.ownAttrib)==null?void 0:I.includes(w)});A.length&&(f.has(g.id)||f.set(g.id,new Set),A.forEach(([w])=>{f.get(g.id).add(w)}));const D=R.filter(([w])=>{const I=g.entityType==="task"?b(g.id):h(g.id);for(const v of I)if(f.has(v)&&f.get(v).has(w))return!1;return!0});if(D.length){const w=a.findIndex(I=>I.entityId===g.id);w!==-1?a[w].attrib={...a[w].attrib,...Object.fromEntries(D)}:a.push({entityId:g.id,entityType:g.entityType||("parentId"in g?"folder":"task"),attrib:Object.fromEntries(D)})}}}return a},[l,n,b,h]),u=E.useCallback((m,a,f)=>{var p;const d=s(m);if(!d)return null;let x=a==="task"?d.folderId:d.parentId;for(;x;){const y=s(x);if(!y)break;if((p=y.ownAttrib)!=null&&p.includes(f)&&y.attrib&&f in y.attrib)return y.attrib[f];x=y.parentId}return null},[s]);return{folderChildrenMap:r,getChildrenEntities:l,getInheritedDependents:C,findInheritedValueFromAncestors:u,findNonInheritedValues:c,getAncestorsOf:h}}const He=E.createContext(void 0),cn=({children:e,foldersMap:n,tasksMap:t,tasksByFolderMap:s,expanded:o,projectInfo:i,showHierarchy:r,loadingTasks:l,isLoadingMore:h,isLoading:b,isInitialized:c,projectName:C,users:u,attribFields:m,filters:a,setFilters:f,queryFilters:d,updateShowHierarchy:x,toggleExpanded:p,updateExpanded:y,sorting:g,updateSorting:R,fetchNextPage:A,reloadTableData:D,setExpanded:w})=>{const{folderTypes:I,taskTypes:v}=i||{},S=ln({foldersMap:n,tasksMap:t,tasksByFolderMap:s,expanded:o,folderTypes:I,taskTypes:v,showHierarchy:r,loadingTasks:l,isLoadingMore:h}),O=E.useCallback($=>{if(n.has($))return{...n.get($),entityType:"folder"};if(t.has($))return{...t.get($),entityType:"task"}},[n,t]),{getInheritedDependents:T,getChildrenEntities:M,findInheritedValueFromAncestors:k,findNonInheritedValues:z,getAncestorsOf:_}=an({foldersMap:n,tasksMap:t,tasksByFolderMap:s,getEntityById:O,projectAttrib:i==null?void 0:i.attrib,attribFields:m}),F=E.useCallback(($,K)=>{const L=typeof o=="object"?o:{},U={...L};$.forEach(P=>{const te=M(P).map(q=>q.id),ee=L[P]||!1;(K!==void 0?!K:ee)?(U[P]=!1,te.forEach(q=>{U[q]=!1})):(U[P]=!0,te.forEach(q=>{U[q]=!0}))}),w(U)},[o,M,w]);return j.jsxRuntimeExports.jsx(He.Provider,{value:{tableData:S,isInitialized:c,isLoading:b,projectInfo:i,attribFields:m,users:u,projectName:C,tasksMap:t,foldersMap:n,fetchNextPage:A,reloadTableData:D,filters:a,setFilters:f,queryFilters:d,showHierarchy:r,updateShowHierarchy:x,expanded:o,toggleExpanded:p,updateExpanded:y,toggleExpandAll:F,sorting:g,updateSorting:R,getEntityById:O,getInheritedDependents:T,findInheritedValueFromAncestors:k,findNonInheritedValues:z,getAncestorsOf:_},children:e})},re=()=>{const e=E.useContext(He);if(!e)throw new Error("useProjectTableContext must be used within a ProjectTableProvider");return e},dn=e=>{const{pushHistory:n}=e||{},{getEntityById:t,projectName:s,getInheritedDependents:o,findInheritedValueFromAncestors:i,findNonInheritedValues:r}=re(),{updateEntities:l}=Ie(),h=E.useCallback(async(c=[],C=!0)=>{var x;if(!c.length||!s)return;if(n&&C){const p=c.map(({id:g,type:R,field:A,isAttrib:D})=>{var O;const w=t(g),I=D?((O=w.attrib)==null?void 0:O[A])??null:w[A]??null,v=(w==null?void 0:w.ownAttrib)||[],S=D&&!v.includes(A);return{id:g,type:R,field:A,value:I,isAttrib:D,wasInherited:S,ownAttrib:v,folderId:w==null?void 0:w.folderId}}),y=c.flatMap(({id:g,type:R,field:A,value:D,isAttrib:w})=>{const I=t(g);return I?{id:g,type:R,field:A,value:D,isAttrib:w,ownAttrib:(I==null?void 0:I.ownAttrib)||[],folderId:"folderId"in I?I.folderId:I==null?void 0:I.parentId}:[]});n(p,y)}const u=["task","folder"];let m=[];for(const p of c){let{id:y,type:g,field:R,value:A,isAttrib:D}=p,w=g;if(!u.includes(w))continue;const I=D?{attrib:{[R]:A}}:{[R]:A};if(D){const S=t(y),O=[...(S==null?void 0:S.ownAttrib)||[]];O.includes(R)||O.push(R),I.ownAttrib=O}const v=m.findIndex(S=>S.entityId===p.id&&S.entityType===w);if(v!==-1){const S=m[v];let O={...S.data,...I};(x=S.data)!=null&&x.attrib&&I.attrib&&(O={...O,attrib:{...S.data.attrib,...I.attrib}}),m[v]={...S,data:O}}else m.push({entityType:w,entityId:p.id,type:"update",data:I})}const a=m.filter(p=>!!p.entityId&&p.type==="update"&&p.data&&"attrib"in p.data).map(p=>{var y;return{entityId:p.entityId,entityType:p.entityType,attrib:p.data&&"attrib"in p.data?(y=p.data)==null?void 0:y.attrib:{}}}),d=o(a).map(p=>({entityId:p.entityId,entityType:p.entityType,data:{attrib:p.attrib}}));try{await l({operations:m,patchOperations:d})}catch{X.y.error("Failed to update entities")}},[s,l,t,o,n]),b=E.useCallback(async(c,C=!0)=>{var d,x;if(!c.length||!s)return;if(C&&n){const p=[];for(const g of c){const R=t(g.entityId);for(const A of g.attribs)R!=null&&R.attrib&&A in R.attrib&&p.push({id:g.entityId,type:g.entityType,field:A,value:R.attrib[A],isAttrib:!0,wasInherited:!1,ownAttrib:(R==null?void 0:R.ownAttrib)||[],folderId:R==null?void 0:R.folderId})}const y=c.flatMap(g=>g.attribs.map(R=>({id:g.entityId,type:g.entityType,field:R,value:null,isAttrib:!0,wasInherited:!0,ownAttrib:g.ownAttrib,folderId:g.folderId})));p.length>0&&n(p,y)}const u=["task","folder"],m=[],a=[];for(const p of c){let y=p.entityType;if(!u.includes(y))continue;y=y;const g={};p.attribs.forEach(v=>{g[v]=null}),m.push({entityType:y,entityId:p.entityId,type:"update",data:{attrib:g}});const A=(()=>{const v=p.folderId,S=[];let O=v,T=c.find(k=>k.entityId===O);for(;T;)S.push(T),O=T.folderId,T=c.find(k=>k.entityId===O);return S.length>0?S[S.length-1]:null})(),D=(A==null?void 0:A.attribs)||[],w=p.attribs.filter(v=>D.includes(v)),I=p.attribs.filter(v=>!D.includes(v));I.length>0&&a.push({...p,attribs:I}),A&&w.length>0&&a.push({...p,attribs:w,folderId:A.folderId})}const f=[];for(const p of a){const y=p.entityType,g=[...p.ownAttrib||[]].filter(I=>!p.attribs.includes(I)),R=r(p.folderId,p.attribs),A={entityId:p.entityId,entityType:y,data:{attrib:R,ownAttrib:g}};f.push(A);const w=o([{entityId:p.entityId,entityType:y,attrib:R}]).map(I=>({entityId:I.entityId,entityType:I.entityType,data:{attrib:I.attrib}}));for(const I of w){const v=f.findIndex(S=>S.entityId===I.entityId);if(v!==-1){const S=f[v];let O={...((d=S.data)==null?void 0:d.attrib)||{},...((x=I.data)==null?void 0:x.attrib)||{}};f[v]={...S,data:{attrib:O}}}else f.push({entityId:I.entityId,entityType:I.entityType,data:I.data})}}try{await l({operations:m,patchOperations:f})}catch{X.y.error("Failed to update entities")}},[s,l,o,i,n]);return{updateEntities:h,inheritFromParent:b}},qe={status:"statuses",folderType:"folderTypes",taskType:"taskTypes"},G=e=>X.y.error(e),Ye=e=>{const n=e.trim().split(`
|
|
142
|
+
`),t=[],s=[];return n.forEach(o=>{const i=o.split(" ");t.push({values:i,colIds:s})}),t},Re=(e,n,t,s)=>{const o=n?t.get(e):s.get(e);if(!o)return"";const i=o.name||"",r=o.folderId||o.parentId;if(!r)return i;const l=Re(r,!0,t,s);return l?`${l} / ${i}`:i},Qe=(e,n)=>{if(n==="array")try{try{const t=JSON.parse(e);return Array.isArray(t)?t:[t]}catch{return e.includes(",")?e.split(",").map(t=>t.trim()):[e]}}catch{return[e]}else{if(n==="number")return Number(e)||0;if(n==="boolean")return e.toLowerCase()==="true"||e==="1"||e.toLowerCase()==="yes"}return e},Ze=e=>{const{colId:n,isFolder:t,pasteValue:s,parsedData:o,columnEnums:i,columnReadOnly:r,rowIndex:l,colIndex:h,isSingleCellValue:b}=e;if(!s)return!0;if(n.startsWith("attrib_")&&r.includes(n.replace("attrib_","")))return G(`This column is read-only: "${n}". Paste operation cancelled.`),!1;if(n==="assignees"){const a=s.split(",").map(x=>x.trim()),f=i.assignees||[],d=a.filter(x=>f.some(p=>p.value===x||p.label===x));if(b)o[0].values[0]=d.join(", ");else{const x=l%o.length,p=h%o[x].values.length;o[x].values[p]=d.join(", ")}return!0}let c=n==="subType"?t?"folderType":"taskType":n;if(c=qe[c]||c,!(c in i))return!0;const C=i[c];return!Array.isArray(C)||C.length===0||s.split(",").map(a=>a.trim()).every(a=>C.some(f=>f.value===a||f.label===a))?!0:(G(`Invalid ${c==="folderType"||c==="taskType"?`${t?"folder":"task"} type`:c} value: "${s}". Paste operation cancelled.`),!1)};var he=(e=>(e[e.None=0]="None",e[e.Top=1]="Top",e[e.Right=2]="Right",e[e.Bottom=4]="Bottom",e[e.Left=8]="Left",e[e.All=15]="All",e))(he||{});const H=(e,n)=>`cell-${e}-${n}`,V=e=>{const n=e.match(/^cell-(.+)-(.+)$/);return n?{rowId:n[1],colId:n[2]}:null},be=(e,n)=>{if(!e||!n)return;const t=n.split("_");let s=e;for(const o of t)if(s&&typeof s=="object"&&o in s)s=s[o];else return;return s},un=e=>{const n=[];return e&1&&n.push("shadow-top"),e&2&&n.push("shadow-right"),e&4&&n.push("shadow-bottom"),e&8&&n.push("shadow-left"),n},W="__row_selection__",Je=E.createContext(void 0),fn=({children:e})=>{const[n,t]=E.useState(new Set),[s,o]=E.useState(null),[i,r]=E.useState(!1),[l,h]=E.useState(null),[b,c]=E.useState({rowIdToIndex:new Map,colIdToIndex:new Map,indexToRowId:new Map,indexToColId:new Map}),C=T=>JSON.stringify(Array.from(T.entries())),u=E.useMemo(()=>b,[C(b.rowIdToIndex),C(b.colIdToIndex),C(b.indexToRowId),C(b.indexToColId)]),m=E.useRef(!1),a=E.useMemo(()=>Array.from(n).filter(T=>{var M,k;return((M=V(T))==null?void 0:M.colId)===W&&((k=V(T))==null?void 0:k.rowId)}).map(T=>{var M;return(M=V(T))==null?void 0:M.rowId}),[n]),f=E.useCallback((T,M)=>{const k=new Map,z=new Map,_=new Map,F=new Map;T.forEach(($,K)=>{k.set($,K),_.set(K,$)}),M.forEach(($,K)=>{z.set($,K),F.set(K,$)}),c({rowIdToIndex:k,colIdToIndex:z,indexToRowId:_,indexToColId:F})},[]),d=E.useCallback((T,M)=>{t(k=>{let z=new Set(T);if(M.colId!==W){const _=Array.from(k).filter(F=>{var $;return(($=V(F))==null?void 0:$.colId)===W});_.length&&(z=new Set([...z,..._]))}return z})},[]),x=E.useCallback((T,M,k)=>{k||d(new Set,T);const z=u.rowIdToIndex.get(T.rowId)??0,_=u.colIdToIndex.get(T.colId)??0,F=u.rowIdToIndex.get(M.rowId)??0,$=u.colIdToIndex.get(M.colId)??0,K=Math.min(z,F),L=Math.max(z,F),U=Math.min(_,$),P=Math.max(_,$),te=new Set(k?n:[]);for(let ee=K;ee<=L;ee++){const q=u.indexToRowId.get(ee);if(q)for(let ce=U;ce<=P;ce++){const pe=u.indexToColId.get(ce);pe&&te.add(H(q,pe))}}return te},[u,n]),p=E.useCallback((T,M)=>{const k=V(T);k&&(r(!0),m.current=n.has(T),M?t(z=>{const _=new Set(z);return _.has(T)?(_.delete(T),s===T&&(_.size>0?o(Array.from(_)[Array.from(_).length-1]):o(null))):(_.add(T),o(T),h(k)),_}):n.size===1&&n.has(T)&&[W,"name"].includes(k.colId)?(t(new Set),h(null),o(null)):(d(new Set([T]),k),h(k),o(T)))},[n,s]),y=E.useCallback((T,M)=>{if(!i||!l)return;const k=V(T);if(k)if(M)t(z=>{const _=new Set(z);return V(T)&&(m.current?_.delete(T):_.add(T)),_});else{const z=x(l,k,!1);d(z,k)}},[i,l,x]),g=E.useCallback(()=>{r(!1)},[]),R=E.useCallback((T,M,k)=>{const z=V(T);if(z)if(k&&l){const _=x(l,z,M);d(_,z)}else M?t(_=>{const F=new Set(_);return F.has(T)?F.delete(T):F.add(T),F}):(d(new Set([T]),z),h(z))},[l,x]),A=E.useCallback(T=>{o(T)},[]),D=E.useCallback(()=>{t(new Set),h(null)},[]),w=E.useCallback(T=>n.has(T),[n]),I=E.useCallback(T=>T===s,[s]),v=E.useCallback(T=>V(T),[]),S=E.useCallback(T=>{if(!w(T))return[];const M=V(T);if(!M)return[];const k=u.rowIdToIndex.get(M.rowId),z=u.colIdToIndex.get(M.colId);if(k===void 0||z===void 0)return[];const _=u.indexToRowId.get(k-1),F=u.indexToColId.get(z+1),$=u.indexToRowId.get(k+1),K=u.indexToColId.get(z-1);let L=he.None;return(!_||!n.has(H(_,M.colId)))&&(L|=he.Top),(!F||!n.has(H(M.rowId,F)))&&(L|=he.Right),(!$||!n.has(H($,M.colId)))&&(L|=he.Bottom),(!K||!n.has(H(M.rowId,K)))&&(L|=he.Left),un(L)},[n,u,w]),O=E.useMemo(()=>({selectedCells:n,selectedRows:a,focusedCellId:s,selectionInProgress:i,anchorCell:l,gridMap:u,setSelectedCells:t,setFocusedCellId:o,setAnchorCell:h,registerGrid:f,selectCell:R,startSelection:p,extendSelection:y,endSelection:g,focusCell:A,clearSelection:D,isCellSelected:w,isCellFocused:I,getCellPositionFromId:v,getCellBorderClasses:S}),[n,a,s,i,l,u]);return j.jsxRuntimeExports.jsx(Je.Provider,{value:O,children:e})},le=()=>{const e=E.useContext(Je);if(e===void 0)throw new Error("useSelectionContext must be used within a SelectionProvider");return e},Ge=E.createContext(void 0),Xe=({children:e,foldersMap:n,tasksMap:t,columnEnums:s,columnReadOnly:o})=>{const{selectedCells:i,gridMap:r,focusedCellId:l}=le(),{updateEntities:h}=ae(),b=E.useCallback(async(a,f)=>{const{headers:d,fullRow:x}=f||{};try{const p=new Map;a.forEach(D=>{var S;const w=V(D);if(!w)return;const{rowId:I,colId:v}=w;v!==W&&(p.has(I)||p.set(I,new Set),(S=p.get(I))==null||S.add(v))}),x&&a.filter(w=>{var I,v;return((I=V(w))==null?void 0:I.rowId)&&((v=V(w))==null?void 0:v.colId)===W}).map(w=>{var I;return(I=V(w))==null?void 0:I.rowId}).forEach(w=>{p.has(w)||p.set(w,new Set),Array.from(r.colIdToIndex.keys()).forEach(v=>{var S;(S=p.get(w))==null||S.add(v)})});const y=Array.from(p.keys()).sort((D,w)=>{const I=r.rowIdToIndex.get(D)??1/0,v=r.rowIdToIndex.get(w)??1/0;return I-v});let g="";const R=y[0];if(!R)return"";const A=Array.from(p.get(R)||[]).sort((D,w)=>{const I=r.colIdToIndex.get(D)??1/0,v=r.colIdToIndex.get(w)??1/0;return I-v});if(d&&A.length>0){const D=[];for(const w of A){const I=w;D.push(`${I.replace(/"/g,'""')}`)}g+=D.join(" ")+`
|
|
143
|
+
`}for(const D of y){const w=n.has(D),I=w?n.get(D):t.get(D);if(!I)continue;const S=Array.from(p.get(D)||[]).sort((T,M)=>{const k=r.colIdToIndex.get(T)??1/0,z=r.colIdToIndex.get(M)??1/0;return k-z}).filter(T=>T!==W),O=[];for(const T of S){let M="";const k=be(I,T);M=k!=null?String(k):"",T==="name"&&(M=Re(D,w,n,t)),T==="subType"&&(M=I[w?"folderType":"taskType"]||""),O.push(`${M.replace(/"/g,'""')}`)}g+=O.join(" ")+`
|
|
144
|
+
`}return g}catch(p){console.error("Failed to copy to clipboard:",p)}},[i,l,r,n,t]),c=E.useCallback(async(a,f)=>{if(a=a||Array.from(i),!a.length)return;const d=await b(a,{fullRow:f});if(d){if(!navigator.clipboard){G("Clipboard API not supported in this browser.");return}if(!window.isSecureContext){G("Clipboard operations require a secure HTTPS context.");return}try{await navigator.clipboard.writeText(d),console.log("Copied to clipboard successfully",d)}catch(x){G(`Failed to copy to clipboard: ${x.message}`)}}},[i,n,t,r]),C=E.useCallback(async(a,f,d)=>{if(a=a||Array.from(i),!!a.length)try{const x=await b(a,{headers:!0,fullRow:d});if(!x)return;const p=new Blob([x],{type:"text/csv"}),y=URL.createObjectURL(p),g=document.createElement("a");g.href=y;const R=a.length;g.download=`${f}-export-${R}_cells-${new Date().toISOString().slice(0,10)}.csv`,g.click(),URL.revokeObjectURL(y)}catch(x){console.error("Failed to copy to clipboard:",x)}},[i,n,t,r,b]),u=E.useCallback(async a=>{if(a=a||Array.from(i),!a.length)return;if(!navigator.clipboard){G("Clipboard API not supported in this browser.");return}if(!window.isSecureContext){G("Clipboard operations require a secure HTTPS context.");return}let f;try{f=await navigator.clipboard.readText()}catch(w){G(`Failed to read from clipboard: ${w.message}`);return}if(!f.trim())return;const d=Ye(f);if(!d.length)return;const x=d.length===1&&d[0].values.length===1,p=new Map;Array.from(a).forEach(w=>{var O;const I=V(w);if(!I)return;const{rowId:v,colId:S}=I;p.has(v)||p.set(v,new Set),(O=p.get(v))==null||O.add(S)});const y=Array.from(p.keys()).sort((w,I)=>{const v=r.rowIdToIndex.get(w)??1/0,S=r.rowIdToIndex.get(I)??1/0;return v-S}),g=y[0],R=Array.from(p.get(g)||[]).sort((w,I)=>{const v=r.colIdToIndex.get(w)??1/0,S=r.colIdToIndex.get(I)??1/0;return v-S});for(let w=0;w<R.length;w++){const I=R[w];for(let v=0;v<y.length;v++){const S=y[v],O=n.has(S);let T;if(x)T=d[0].values[0];else{const k=v%d.length,z=w%d[k].values.length;T=d[k].values[z]}if(!Ze({colId:I,isFolder:O,pasteValue:T,parsedData:d,columnEnums:s,columnReadOnly:o,rowIndex:v,colIndex:w,isSingleCellValue:x}))return}}const A=new Map;for(let w=0;w<R.length;w++){const I=R[w];if(I==="name")continue;let v=!1,S="string";if(y.length>0){const O=y[0],M=n.has(O)?n.get(O):t.get(O);if(M){v=I.startsWith("attrib_");const k=be(M,I);Array.isArray(k)?S="array":typeof k=="number"?S="number":typeof k=="boolean"&&(S="boolean"),I==="subType"&&(v=!1)}}for(let O=0;O<y.length;O++){const T=y[O],M=n.has(T),k=M?"folder":"task";let z;if(x)z=d[0].values[0];else{const L=O%d.length,U=w%d[L].values.length;z=d[L].values[U]}let _=I.split("_").pop()||I;if(I==="subType"&&(_=M?"folderType":"taskType",v=!1,!z))continue;const F=Qe(z,S),$=`${T}-${k}`;A.has($)||A.set($,{id:T,type:k,fields:{},attrib:{}});const K=A.get($);v?K.attrib[_]=F:K.fields[_]=F}}const D=[];if(A.forEach(w=>{Object.entries(w.fields).forEach(([I,v])=>{D.push({id:w.id,type:w.type,field:I,value:v})}),Object.entries(w.attrib).forEach(([I,v])=>{D.push({id:w.id,type:w.type,field:I,value:v,isAttrib:!0})})}),D.length>0)try{await h(D)}catch(w){console.error("Error updating entities:",w),G(`Failed to update: ${w instanceof Error?w.message:"Unknown error"}`)}},[i,r,n,t,h,s]);E.useEffect(()=>{const a=f=>{(f.ctrlKey||f.metaKey)&&f.key==="c"&&c(),(f.ctrlKey||f.metaKey)&&f.key==="v"&&u()};return window.addEventListener("keydown",a),()=>{window.removeEventListener("keydown",a)}},[c,u]);const m=E.useMemo(()=>({copyToClipboard:c,pasteFromClipboard:u,exportCSV:C}),[c,u]);return j.jsxRuntimeExports.jsx(Ge.Provider,{value:m,children:e})},et=()=>{const e=E.useContext(Ge);if(e===void 0)throw new Error("useClipboard must be used within a ClipboardProvider");return e},tt=E.createContext(void 0),hn=({children:e,config:n,onChange:t})=>{const s=n,{columnOrder:o=[],columnPinning:i={},columnVisibility:r={}}=s,l=y=>{t({...s,columnVisibility:y})},h=y=>{t({...s,columnOrder:y})},b=y=>{t({...s,columnPinning:y})},c=y=>{const g={...i},R=g.left||[],A=Object.keys(y).filter(w=>y[w]===!1),D=R.filter(w=>!A.includes(w));return{...g,left:D}},C=y=>{const g={...i},R=g.left||[],A=y.filter(D=>R.includes(D));return{...g,left:A}},u=y=>[...o].sort((g,R)=>{var w,I;const A=(w=y.left)!=null&&w.includes(g)?1:0;return((I=y.left)!=null&&I.includes(R)?1:0)-A}),m=y=>{const g=c(y);t({...s,columnVisibility:y,columnPinning:g})},a=y=>{const g=C(y);t({...s,columnOrder:y,columnPinning:g})},f=y=>{const g=u(y);t({...s,columnOrder:g,columnPinning:y})},d=y=>{const g=Q.functionalUpdate(y,r);m(g)},x=y=>{const g=Q.functionalUpdate(y,o);a(g)},p=y=>{const g=Q.functionalUpdate(y,i);f(g)};return j.jsxRuntimeExports.jsx(tt.Provider,{value:{columnVisibility:r,setColumnVisibility:l,updateColumnVisibility:m,columnVisibilityUpdater:d,columnPinning:i,setColumnPinning:b,updateColumnPinning:f,columnPinningUpdater:p,columnOrder:o,setColumnOrder:h,updateColumnOrder:a,columnOrderUpdater:x,setColumnsConfig:t},children:e})},nt=()=>{const e=E.useContext(tt);if(!e)throw new Error("useColumnSettings must be used within a ColumnSettingsProvider");return e},st=E.createContext(void 0),mn=({children:e})=>{const{selectedCells:n,gridMap:t,setSelectedCells:s,setFocusedCellId:o,setAnchorCell:i}=le(),r=E.useRef([]),l=E.useMemo(()=>Array.from(n).filter(f=>{var d,x;return((d=V(f))==null?void 0:d.colId)===W&&((x=V(f))==null?void 0:x.rowId)}).map(f=>{var d;return(d=V(f))==null?void 0:d.rowId}),[n]),h=E.useMemo(()=>{const f=[...l].sort(),d=[...r.current].sort();return f.length!==d.length||f.some((p,y)=>p!==d[y])?(r.current=l,l):r.current},[l]),b=E.useCallback(()=>{const f=Array.from(t.rowIdToIndex.keys()),d=new Set;if(f.forEach(x=>{d.add(H(x,W))}),s(d),f.length>0){const x=H(f[0],W);o(x),i(V(x))}},[t]),c=E.useCallback(()=>{s(f=>{const d=new Set(f);return Array.from(d).forEach(x=>{var p;((p=V(x))==null?void 0:p.colId)===W&&d.delete(x)}),d})},[s]),C=E.useCallback(f=>h.includes(f),[h]),u=E.useCallback(()=>{const f=t.rowIdToIndex.size;return f>0&&h.length===f},[t,h]),m=E.useCallback(()=>h.length>0&&!u(),[h,u]),a=E.useMemo(()=>({selectedRows:h,selectAllRows:b,clearRowsSelection:c,isRowSelected:C,areAllRowsSelected:u,areSomeRowsSelected:m}),[h,b,u,m,c]);return j.jsxRuntimeExports.jsx(st.Provider,{value:a,children:e})},je=()=>{const e=E.useContext(st);if(!e)throw new Error("useSelectedRowsContext must be used within a SelectedRowsProvider");return e},gn=()=>{const{attribFields:e}=re();return(t=[])=>{for(const{isAttrib:s,value:o,field:i}of t){if(!s)continue;const r=e.find(g=>g.name===i);if(!r)continue;let l=o;const{type:h}=r.data;if(h==="integer"||h==="float"){if(typeof o=="string"){if(o.trim()===""||isNaN(Number(o)))throw new Error(`“${i}” must be a valid number`);l=h==="integer"?parseInt(o,10):parseFloat(o)}else if(typeof o!="number")throw new Error(`“${i}” must be a valid number`)}const b=["ge","gt","le","lt","minLength","maxLength","minItems","maxItems"],c=Object.entries(r.data).reduce((g,[R,A])=>(b.includes(R)&&(g[R]=A),g),{}),{ge:C,gt:u,le:m,lt:a,minLength:f,maxLength:d,minItems:x,maxItems:p}=c,y=r.data.regex;if(typeof l=="number"){if(C!=null&&l<C)throw new Error(`“${i}” must be ≥ ${C}`);if(u!=null&&l<=u)throw new Error(`“${i}” must be > ${u}`);if(m!=null&&l>m)throw new Error(`“${i}” must be ≤ ${m}`);if(a!=null&&l>=a)throw new Error(`“${i}” must be < ${a}`)}else if(typeof l=="string"){if(f!=null&&l.length<f)throw new Error(`“${i}” length must be ≥ ${f}`);if(d!=null&&l.length>d)throw new Error(`“${i}” length must be ≤ ${d}`);if(y&&!new RegExp(y).test(l))throw new Error(`“${i}” must match pattern ${y}`)}else if(Array.isArray(l)){if(x!=null&&l.length<x)throw new Error(`“${i}” items must be ≥ ${x}`);if(p!=null&&l.length>p)throw new Error(`“${i}” items must be ≤ ${p}`)}}}},pn=(e=50)=>{const[n,t]=E.useState([]),[s,o]=E.useState([]),i=E.useCallback((c,C)=>{c.length&&(t(u=>{const m=[...u,{undo:c,redo:C,timestamp:Date.now()}];return m.length>e?m.slice(m.length-e):m}),o([]))},[e]),r=c=>c.reduce((C,u)=>(u.wasInherited&&u.folderId?C[1].push({entityId:u.id,entityType:u.type,folderId:u.folderId,attribs:[u.field],ownAttrib:u.ownAttrib}):C[0].push(u),C),[[],[]]),l=E.useCallback(()=>{if(n.length===0)return null;const c=[...n],C=c.pop();return t(c),o(u=>[...u,C]),r(C.undo)},[n]),h=E.useCallback(()=>{if(s.length===0)return null;const c=[...s],C=c.pop();return o(c),t(u=>[...u,C]),r(C.redo)},[s]),b=E.useCallback(()=>{t([]),o([])},[]);return{pushHistory:i,undo:l,redo:h,canUndo:n.length>0,canRedo:s.length>0,clearHistory:b}},ot=E.createContext(void 0),xn=({children:e})=>{const[n,t]=E.useState(null),s=E.useCallback(d=>d===n,[n]),{pushHistory:o,undo:i,redo:r,canUndo:l,canRedo:h}=pn(),{updateEntities:b,inheritFromParent:c}=dn({pushHistory:o}),C=gn(),u=async(d=[],x=!0)=>{try{return C(d),await b(d,x)}catch(p){return X.y.error(p.message),Promise.reject(p)}},m=async()=>{const[d,x]=i()||[];if(d&&d.length>0)try{await u(d,!1)}catch{X.y.error("Failed to undo changes")}if(x&&x.length>0)try{await c(x,!1)}catch{X.y.error("Failed to inherit changes")}},a=async()=>{const[d,x]=r()||[];if(d&&d.length>0)try{await u(d,!1)}catch{X.y.error("Failed to redo changes")}if(x&&x.length>0)try{await c(x,!1)}catch{X.y.error("Failed to inherit changes")}},f=E.useMemo(()=>({editingCellId:n,setEditingCellId:t,isEditing:s,updateEntities:u,inheritFromParent:c,undo:m,redo:a,canUndo:l,canRedo:h}),[n,s,u,c,m,a,l,h]);return E.useEffect(()=>{const d=x=>{const p=x.target;if(p.tagName==="INPUT"||p.tagName==="TEXTAREA"||p.isContentEditable||p.getAttribute("role")==="textbox"||p.tagName==="LI")return;const g=typeof navigator<"u"&&(navigator.userAgentData&&navigator.userAgentData.platform.toUpperCase().includes("MAC")||navigator.userAgent.toUpperCase().includes("MAC"))?x.metaKey:x.ctrlKey;g&&x.key==="z"&&(x.preventDefault(),l&&m()),(g&&x.key==="y"||g&&x.shiftKey&&x.key==="z"||g&&x.key==="Z")&&(x.preventDefault(),h&&a())};return document.addEventListener("keydown",d),()=>document.removeEventListener("keydown",d)},[l,h,m,a]),j.jsxRuntimeExports.jsx(ot.Provider,{value:f,children:e})},ae=()=>{const e=E.useContext(ot);if(e===void 0)throw new Error("useCellEditing must be used within a CellEditingProvider");return e},yn=N.div`
|
|
145
|
+
position: absolute;
|
|
146
|
+
inset: 0;
|
|
147
|
+
padding: 4px 8px;
|
|
148
|
+
display: flex;
|
|
149
|
+
align-items: center;
|
|
150
|
+
|
|
151
|
+
&:focus-visible {
|
|
152
|
+
outline: none;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
&.inherited {
|
|
156
|
+
opacity: 0.6;
|
|
157
|
+
font-style: italic;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
&.loading {
|
|
161
|
+
inset: 4px;
|
|
162
|
+
border-radius: 4px;
|
|
163
|
+
opacity: 1;
|
|
164
|
+
}
|
|
165
|
+
`,wn=({rowId:e,columnId:n,value:t,attributeData:s,options:o=[],isCollapsed:i,isInherited:r,isPlaceholder:l,isReadOnly:h,enableCustomValues:b,onChange:c,...C})=>{const u=E.useRef(null),m=s==null?void 0:s.type,{isEditing:a,setEditingCellId:f}=ae(),{isCellFocused:d,gridMap:x,selectCell:p,focusCell:y}=le(),g=H(e,n),R=a(g),A=d(g),D=E.useCallback(()=>{l||h||f(g)},[g,f,l]),w=()=>{R||f(null)},I=()=>{const T=x.rowIdToIndex.get(e);if(T===void 0)return;const M=x.indexToRowId.get(T+1);if(M){const k=H(M,n);p(k,!1,!1),y(k),f(k)}},v=(T,M)=>{f(null),!h&&(M==="Enter"&&I(),(T!==t||M==="Enter")&&(c==null||c(T,M)))},S=()=>{f(null)},O=E.useMemo(()=>{const T={onChange:v,onCancelEdit:S,isEditing:R},M=["string","integer","float"];switch(!0){case i:{const k=m!=null&&m.includes("list")?o.find(_=>Array.isArray(t)?t.includes(_.value):t===_.value):void 0,z=k==null?void 0:k.color;return j.jsxRuntimeExports.jsx(Ft,{color:z})}case!!o.length:{const k=Array.isArray(t)?t:[t];return j.jsxRuntimeExports.jsx(Jt,{value:k,options:o,type:m,onOpen:()=>!h&&f(g),enableCustomValues:b,...T})}case M.includes(m):return j.jsxRuntimeExports.jsx($e,{value:t,isInherited:r,...T});case(m==="datetime"&&t!==null&&t!==void 0):return j.jsxRuntimeExports.jsx(Lt,{value:t,isInherited:r,...T});case m==="boolean":return j.jsxRuntimeExports.jsx(nn,{value:t,...T});case l:return null;default:return j.jsxRuntimeExports.jsx($e,{value:t,...T})}},[g,t,m,R,o,i]);return j.jsxRuntimeExports.jsx(yn,{...C,className:B.clsx(C.className,{inherited:r&&!R}),ref:u,onDoubleClick:D,onClick:w,id:g,"data-tooltip":r&&!R&&A?"Inherited":void 0,"data-tooltip-delay":200,children:O})};function bn(e,n){var t,s,o,i,r,l;return e.rowId===n.rowId&&e.columnId===n.columnId&&e.isCollapsed===n.isCollapsed&&JSON.stringify(e.value)===JSON.stringify(n.value)&&((t=e==null?void 0:e.attributeData)==null?void 0:t.type)===((s=n==null?void 0:n.attributeData)==null?void 0:s.type)&&(!((o=e==null?void 0:e.attributeData)!=null&&o.type.includes("list"))&&!((i=n==null?void 0:n.attributeData)!=null&&i.type.includes("list"))||((r=e.options)==null?void 0:r.length)===((l=n.options)==null?void 0:l.length))&&e.isInherited===n.isInherited&&e.enableCustomValues===n.enableCustomValues&&e.isReadOnly===n.isReadOnly&&e.isPlaceholder===n.isPlaceholder&&e.isFocused===n.isFocused&&e.isCollapsed===n.isCollapsed}const fe=E.memo(wn,bn),In=N(J.Button)`
|
|
166
|
+
background-color: unset;
|
|
167
|
+
padding: 2px !important;
|
|
168
|
+
cursor: pointer;
|
|
169
|
+
`,Cn=N.div`
|
|
170
|
+
position: relative;
|
|
171
|
+
display: flex;
|
|
172
|
+
align-items: center;
|
|
173
|
+
gap: var(--base-gap-small);
|
|
174
|
+
height: 100%;
|
|
175
|
+
width: 100%;
|
|
176
|
+
padding-right: 8px;
|
|
177
|
+
`,vn=N.div`
|
|
178
|
+
width: 100%;
|
|
179
|
+
height: 24px;
|
|
180
|
+
overflow: hidden;
|
|
181
|
+
position: relative;
|
|
182
|
+
`,En=N.div`
|
|
183
|
+
position: absolute;
|
|
184
|
+
inset: 0;
|
|
185
|
+
`,Tn=N.div`
|
|
186
|
+
display: flex;
|
|
187
|
+
align-items: center;
|
|
188
|
+
gap: var(--base-gap-large);
|
|
189
|
+
padding: 2px 4px;
|
|
190
|
+
border-radius: var(--border-radius-m);
|
|
191
|
+
cursor: pointer;
|
|
192
|
+
overflow: hidden;
|
|
193
|
+
width: fit-content;
|
|
194
|
+
max-width: 100%;
|
|
195
|
+
height: 100%;
|
|
196
|
+
|
|
197
|
+
/* &:hover {
|
|
198
|
+
&,
|
|
199
|
+
.icon,
|
|
200
|
+
.path {
|
|
201
|
+
color: var(--md-sys-color-primary);
|
|
202
|
+
}
|
|
203
|
+
} */
|
|
204
|
+
`,Sn=N.div`
|
|
205
|
+
display: flex;
|
|
206
|
+
flex-direction: column;
|
|
207
|
+
overflow: hidden;
|
|
208
|
+
|
|
209
|
+
.path {
|
|
210
|
+
${J.theme.labelSmall}
|
|
211
|
+
margin-bottom: -4px;
|
|
212
|
+
color: var(--md-sys-color-outline);
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
span {
|
|
216
|
+
overflow: hidden;
|
|
217
|
+
white-space: nowrap;
|
|
218
|
+
text-overflow: ellipsis;
|
|
219
|
+
}
|
|
220
|
+
`,Rn=({id:e,label:n,name:t,path:s,showHierarchy:o,icon:i,type:r,isExpanded:l,toggleExpandAll:h,toggleExpanded:b})=>j.jsxRuntimeExports.jsxs(Cn,{children:[o?r==="folder"?j.jsxRuntimeExports.jsx(In,{onClick:c=>{c.stopPropagation(),c.altKey?h(e):b()},className:"expander",icon:l?"expand_more":"chevron_right"}):j.jsxRuntimeExports.jsx("div",{style:{display:"inline-block",minWidth:24}}):null,j.jsxRuntimeExports.jsx(vn,{style:{height:s?32:24},children:j.jsxRuntimeExports.jsx(En,{children:j.jsxRuntimeExports.jsxs(Tn,{children:[i&&j.jsxRuntimeExports.jsx(J.Icon,{icon:i}),j.jsxRuntimeExports.jsxs(Sn,{children:[s&&j.jsxRuntimeExports.jsx("span",{className:"path",children:s}),j.jsxRuntimeExports.jsx("span",{className:"label",children:n||t})]})]})})})]}),ne="inset 0 1px 0 0 var(--md-sys-color-primary)",se="inset -1px 0 0 0 var(--md-sys-color-primary)",oe="inset 0 -1px 0 0 var(--md-sys-color-primary)",ie="inset 1px 0 0 0 var(--md-sys-color-primary)",Y=e=>e?"inset -2px -1px 0 0 var(--md-sys-color-surface-container), inset 1px 0 0 0 var(--md-sys-color-surface-container)":"inset 1px -1px 0 0 var(--md-sys-color-surface-container)",jn=N.tr`
|
|
221
|
+
display: flex;
|
|
222
|
+
position: absolute;
|
|
223
|
+
width: 100%;
|
|
224
|
+
`,ke=50,it=N.div`
|
|
225
|
+
display: flex;
|
|
226
|
+
align-items: center;
|
|
227
|
+
gap: var(--base-gap-small);
|
|
228
|
+
height: 100%;
|
|
229
|
+
width: 100%;
|
|
230
|
+
padding: 0px 8px;
|
|
231
|
+
border-radius: var(--border-radius-m);
|
|
232
|
+
user-select: none;
|
|
233
|
+
padding-right: 0;
|
|
234
|
+
|
|
235
|
+
min-width: ${ke}px;
|
|
236
|
+
&.bold {
|
|
237
|
+
font-weight: 600;
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
&.loading {
|
|
241
|
+
margin: 0px 5px;
|
|
242
|
+
padding: 0 !important;
|
|
243
|
+
width: calc(100% - 10px);
|
|
244
|
+
height: 28px;
|
|
245
|
+
margin-top: 3px;
|
|
246
|
+
|
|
247
|
+
&:not(.hierarchy) {
|
|
248
|
+
height: 32px;
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
&:focus-visible {
|
|
253
|
+
outline: none;
|
|
254
|
+
}
|
|
255
|
+
`,kn=N.div`
|
|
256
|
+
position: absolute;
|
|
257
|
+
right: -1px;
|
|
258
|
+
top: 0;
|
|
259
|
+
bottom: 0;
|
|
260
|
+
width: 6px;
|
|
261
|
+
cursor: col-resize;
|
|
262
|
+
background-color: var(--md-sys-color-surface-container-high);
|
|
263
|
+
|
|
264
|
+
opacity: 0;
|
|
265
|
+
|
|
266
|
+
&.resizing {
|
|
267
|
+
background-color: var(--md-sys-color-primary);
|
|
268
|
+
opacity: 1;
|
|
269
|
+
}
|
|
270
|
+
`,An=N.tr`
|
|
271
|
+
background-color: var(--md-sys-color-surface-container-low);
|
|
272
|
+
`,Dn=N.th`
|
|
273
|
+
position: relative;
|
|
274
|
+
background-color: var(--md-sys-color-surface-container-lowest);
|
|
275
|
+
box-shadow: inset 1px -1px 0 0 var(--md-sys-color-surface-container);
|
|
276
|
+
display: flex;
|
|
277
|
+
align-items: center;
|
|
278
|
+
min-height: fit-content;
|
|
279
|
+
min-width: ${ke}px;
|
|
280
|
+
&.large {
|
|
281
|
+
min-width: 300px;
|
|
282
|
+
}
|
|
283
|
+
&:hover {
|
|
284
|
+
.resize-handle {
|
|
285
|
+
opacity: 1;
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
/* show action button */
|
|
290
|
+
&:hover {
|
|
291
|
+
.action {
|
|
292
|
+
display: flex;
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
/* Styling for the last pinned left column */
|
|
297
|
+
&.last-pinned-left {
|
|
298
|
+
box-shadow: inset 1px -1px 0 0 var(--md-sys-color-surface-container),
|
|
299
|
+
inset -2px 0 0 0 var(--md-sys-color-surface-container);
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
/* special styles for the left selection column */
|
|
303
|
+
&.__row_selection__ {
|
|
304
|
+
min-width: unset;
|
|
305
|
+
width: 20px !important;
|
|
306
|
+
|
|
307
|
+
.actions {
|
|
308
|
+
display: none;
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
`,Mn=N.div`
|
|
312
|
+
display: flex;
|
|
313
|
+
gap: var(--base-gap-small);
|
|
314
|
+
|
|
315
|
+
position: absolute;
|
|
316
|
+
z-index: 10;
|
|
317
|
+
right: 8px;
|
|
318
|
+
top: 50%;
|
|
319
|
+
transform: translateY(-50%);
|
|
320
|
+
`,On=N.td`
|
|
321
|
+
position: relative;
|
|
322
|
+
box-shadow: ${Y(!1)};
|
|
323
|
+
min-width: ${ke}px;
|
|
324
|
+
background-color: var(--md-sys-color-surface-container-low);
|
|
325
|
+
|
|
326
|
+
&.task {
|
|
327
|
+
background-color: hsl(216 15% 11.5% / 1);
|
|
328
|
+
}
|
|
329
|
+
|
|
330
|
+
&.selected-row {
|
|
331
|
+
background-color: var(--md-sys-color-surface-container-high);
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
&.selected {
|
|
335
|
+
background-color: var(--md-sys-color-secondary-container);
|
|
336
|
+
position: relative;
|
|
337
|
+
z-index: 1;
|
|
338
|
+
}
|
|
339
|
+
|
|
340
|
+
/* remove default focus style */
|
|
341
|
+
&:focus-visible {
|
|
342
|
+
outline: none;
|
|
343
|
+
}
|
|
344
|
+
|
|
345
|
+
/* Styling for the last pinned left column */
|
|
346
|
+
/* extra border on the right */
|
|
347
|
+
&.last-pinned-left {
|
|
348
|
+
box-shadow: inset 1px -1px 0 0 var(--md-sys-color-surface-container),
|
|
349
|
+
inset -2px 0 0 0 var(--md-sys-color-surface-container);
|
|
350
|
+
}
|
|
351
|
+
|
|
352
|
+
/* Shadow combinations - single side */
|
|
353
|
+
&.shadow-top:not(.shadow-right):not(.shadow-bottom):not(.shadow-left) {
|
|
354
|
+
box-shadow: ${ne}, ${({$isLastPinned:e})=>Y(e||!1)};
|
|
355
|
+
}
|
|
356
|
+
|
|
357
|
+
&.shadow-right:not(.shadow-top):not(.shadow-bottom):not(.shadow-left) {
|
|
358
|
+
box-shadow: ${se}, ${({$isLastPinned:e})=>Y(e||!1)};
|
|
359
|
+
}
|
|
360
|
+
|
|
361
|
+
&.shadow-bottom:not(.shadow-top):not(.shadow-right):not(.shadow-left) {
|
|
362
|
+
box-shadow: ${oe}, ${({$isLastPinned:e})=>Y(e||!1)};
|
|
363
|
+
}
|
|
364
|
+
|
|
365
|
+
&.shadow-left:not(.shadow-top):not(.shadow-right):not(.shadow-bottom) {
|
|
366
|
+
box-shadow: ${ie}, ${({$isLastPinned:e})=>Y(e||!1)};
|
|
367
|
+
}
|
|
368
|
+
|
|
369
|
+
/* Two sides */
|
|
370
|
+
&.shadow-top.shadow-right:not(.shadow-bottom):not(.shadow-left) {
|
|
371
|
+
box-shadow: ${ne}, ${se},
|
|
372
|
+
${({$isLastPinned:e})=>Y(e||!1)};
|
|
373
|
+
}
|
|
374
|
+
|
|
375
|
+
&.shadow-top.shadow-bottom:not(.shadow-right):not(.shadow-left) {
|
|
376
|
+
box-shadow: ${ne}, ${oe},
|
|
377
|
+
${({$isLastPinned:e})=>Y(e||!1)};
|
|
378
|
+
}
|
|
379
|
+
|
|
380
|
+
&.shadow-top.shadow-left:not(.shadow-right):not(.shadow-bottom) {
|
|
381
|
+
box-shadow: ${ne}, ${ie},
|
|
382
|
+
${({$isLastPinned:e})=>Y(e||!1)};
|
|
383
|
+
}
|
|
384
|
+
|
|
385
|
+
&.shadow-right.shadow-bottom:not(.shadow-top):not(.shadow-left) {
|
|
386
|
+
box-shadow: ${se}, ${oe},
|
|
387
|
+
${({$isLastPinned:e})=>Y(e||!1)};
|
|
388
|
+
}
|
|
389
|
+
|
|
390
|
+
&.shadow-right.shadow-left:not(.shadow-top):not(.shadow-bottom) {
|
|
391
|
+
box-shadow: ${se}, ${ie},
|
|
392
|
+
${({$isLastPinned:e})=>Y(e||!1)};
|
|
393
|
+
}
|
|
394
|
+
|
|
395
|
+
&.shadow-bottom.shadow-left:not(.shadow-top):not(.shadow-right) {
|
|
396
|
+
box-shadow: ${oe}, ${ie},
|
|
397
|
+
${({$isLastPinned:e})=>Y(e||!1)};
|
|
398
|
+
}
|
|
399
|
+
|
|
400
|
+
/* Three sides */
|
|
401
|
+
&.shadow-top.shadow-right.shadow-bottom:not(.shadow-left) {
|
|
402
|
+
box-shadow: ${ne}, ${se}, ${oe},
|
|
403
|
+
${({$isLastPinned:e})=>Y(e||!1)};
|
|
404
|
+
}
|
|
405
|
+
|
|
406
|
+
&.shadow-top.shadow-right.shadow-left:not(.shadow-bottom) {
|
|
407
|
+
box-shadow: ${ne}, ${se}, ${ie},
|
|
408
|
+
${({$isLastPinned:e})=>Y(e||!1)};
|
|
409
|
+
}
|
|
410
|
+
|
|
411
|
+
&.shadow-top.shadow-bottom.shadow-left:not(.shadow-right) {
|
|
412
|
+
box-shadow: ${ne}, ${oe}, ${ie},
|
|
413
|
+
${({$isLastPinned:e})=>Y(e||!1)};
|
|
414
|
+
}
|
|
415
|
+
|
|
416
|
+
&.shadow-right.shadow-bottom.shadow-left:not(.shadow-top) {
|
|
417
|
+
box-shadow: ${se}, ${oe}, ${ie},
|
|
418
|
+
${({$isLastPinned:e})=>Y(e||!1)};
|
|
419
|
+
}
|
|
420
|
+
|
|
421
|
+
/* All four sides */
|
|
422
|
+
&.shadow-top.shadow-right.shadow-bottom.shadow-left {
|
|
423
|
+
box-shadow: ${ne}, ${se}, ${oe}, ${ie},
|
|
424
|
+
${({$isLastPinned:e})=>Y(e||!1)};
|
|
425
|
+
}
|
|
426
|
+
|
|
427
|
+
/* Focus styling */
|
|
428
|
+
&.focused {
|
|
429
|
+
position: relative;
|
|
430
|
+
z-index: 2;
|
|
431
|
+
}
|
|
432
|
+
|
|
433
|
+
/* Use pseudo-element for focused outline to avoid box-shadow conflicts */
|
|
434
|
+
&.focused::after {
|
|
435
|
+
content: '';
|
|
436
|
+
position: absolute;
|
|
437
|
+
top: 0;
|
|
438
|
+
left: 0;
|
|
439
|
+
right: 0;
|
|
440
|
+
bottom: 0;
|
|
441
|
+
border: 2px solid var(--md-sys-color-primary);
|
|
442
|
+
pointer-events: none;
|
|
443
|
+
}
|
|
444
|
+
|
|
445
|
+
&.editing {
|
|
446
|
+
z-index: 10 !important;
|
|
447
|
+
/* light border around the outside */
|
|
448
|
+
&::before {
|
|
449
|
+
content: '';
|
|
450
|
+
position: absolute;
|
|
451
|
+
inset: 2px;
|
|
452
|
+
border: 2px solid var(--md-sys-color-surface-container-low);
|
|
453
|
+
}
|
|
454
|
+
}
|
|
455
|
+
|
|
456
|
+
/* special styles for selection bar cells */
|
|
457
|
+
&.__row_selection__ {
|
|
458
|
+
width: 20px !important;
|
|
459
|
+
min-width: unset;
|
|
460
|
+
|
|
461
|
+
&.selected {
|
|
462
|
+
background-color: var(--md-sys-color-primary-container) !important;
|
|
463
|
+
box-shadow: none !important;
|
|
464
|
+
/* reveal the check mark */
|
|
465
|
+
[icon='check'] {
|
|
466
|
+
display: block;
|
|
467
|
+
}
|
|
468
|
+
}
|
|
469
|
+
}
|
|
470
|
+
`,zn=N.thead`
|
|
471
|
+
display: grid !important;
|
|
472
|
+
position: sticky;
|
|
473
|
+
top: 0;
|
|
474
|
+
min-height: 34px;
|
|
475
|
+
z-index: 10;
|
|
476
|
+
background-color: var(--md-sys-color-surface-container-lowest);
|
|
477
|
+
`,_n=N.div`
|
|
478
|
+
overflow: hidden;
|
|
479
|
+
position: absolute;
|
|
480
|
+
inset: 0;
|
|
481
|
+
border-radius: var(--border-radius-m);
|
|
482
|
+
|
|
483
|
+
background-color: var(--md-sys-color-surface-container-low);
|
|
484
|
+
`,$n=N.div`
|
|
485
|
+
display: flex;
|
|
486
|
+
|
|
487
|
+
height: 100%;
|
|
488
|
+
width: 100%;
|
|
489
|
+
overflow: auto;
|
|
490
|
+
padding: 4px;
|
|
491
|
+
padding-top: 0;
|
|
492
|
+
|
|
493
|
+
&.isLoading {
|
|
494
|
+
overflow: hidden;
|
|
495
|
+
}
|
|
496
|
+
|
|
497
|
+
table {
|
|
498
|
+
height: fit-content;
|
|
499
|
+
width: 100%;
|
|
500
|
+
display: grid;
|
|
501
|
+
}
|
|
502
|
+
|
|
503
|
+
thead {
|
|
504
|
+
display: none;
|
|
505
|
+
}
|
|
506
|
+
|
|
507
|
+
tbody {
|
|
508
|
+
position: relative;
|
|
509
|
+
display: grid;
|
|
510
|
+
}
|
|
511
|
+
|
|
512
|
+
td {
|
|
513
|
+
height: 34px;
|
|
514
|
+
padding: 1px 0px;
|
|
515
|
+
width: 100%;
|
|
516
|
+
}
|
|
517
|
+
`,Nn=N.div`
|
|
518
|
+
display: flex;
|
|
519
|
+
align-items: center;
|
|
520
|
+
justify-content: center;
|
|
521
|
+
/* This is super important as it prevents onMouseOver incorrectly firing when Icon is added/removed */
|
|
522
|
+
pointer-events: none;
|
|
523
|
+
height: 100%;
|
|
524
|
+
|
|
525
|
+
/* default hidden. Shown with styles in ProjectTreeTable.styled */
|
|
526
|
+
[icon='check'] {
|
|
527
|
+
display: none;
|
|
528
|
+
}
|
|
529
|
+
`,Fn=E.forwardRef(({isSelected:e,...n},t)=>j.jsxRuntimeExports.jsx(Nn,{...n,ref:t,children:j.jsxRuntimeExports.jsx(J.Icon,{icon:"check"})})),Pn=N.div`
|
|
530
|
+
position: absolute;
|
|
531
|
+
inset: 0;
|
|
532
|
+
display: flex;
|
|
533
|
+
align-items: center;
|
|
534
|
+
justify-content: center;
|
|
535
|
+
cursor: pointer;
|
|
536
|
+
|
|
537
|
+
&:hover {
|
|
538
|
+
background-color: var(--md-sys-color-surface-container-high);
|
|
539
|
+
}
|
|
540
|
+
`,Vn=()=>{const{areAllRowsSelected:e,areSomeRowsSelected:n,selectAllRows:t,clearRowsSelection:s}=je(),o=e(),i=n(),r=()=>{o||i?s():t()};return j.jsxRuntimeExports.jsx(Pn,{onClick:r,children:o?j.jsxRuntimeExports.jsx(J.Icon,{icon:"done_all"}):i?j.jsxRuntimeExports.jsx(J.Icon,{icon:"remove"}):null})},Ln=E.memo(Vn),Te=e=>(n,t,...s)=>n.original.isLoading!==t.original.isLoading?n.original.isLoading?1:-1:e(n,t,...s),Un=(e,n)=>{const t=e.original.label||e.original.name,s=n.original.label||n.original.name;return t.localeCompare(s)},Wn=(e,n)=>{const t=e.original.path||e.original.name,s=n.original.path||n.original.name;return t.localeCompare(s)},Ne=(e,n,t,s)=>{const o=be(e.original,t),i=be(n.original,t);if(s&&s.enum){const r=s.enum.findIndex(h=>h.value===o),l=s.enum.findIndex(h=>h.value===i);return r-l<0?1:-1}else return(s==null?void 0:s.type)==="datetime"?Q.sortingFns.datetime(e,n,t):(s==null?void 0:s.type)==="boolean"?(o===!0?1:0)-(i===!0?1:0):Q.sortingFns.alphanumeric(e,n,t)},Kn=({tableData:e,attribs:n,columnSizing:t={},showHierarchy:s,isLoading:o,sliceId:i,options:r,toggleExpandAll:l,toggleExpanded:h})=>{const{updateEntities:b}=ae();return E.useMemo(()=>{const c=[{id:W,header:()=>j.jsxRuntimeExports.jsx(Ln,{}),cell:()=>j.jsxRuntimeExports.jsx(Fn,{}),size:20},{accessorKey:"name",header:()=>"Folder / Task",sortingFn:Te(s?Un:Wn),cell:({row:u,column:m})=>{const a=H(u.id,m.id);return j.jsxRuntimeExports.jsx(it,{id:a,className:B.clsx("large",u.original.entityType,{loading:u.original.isLoading,hierarchy:s}),style:{paddingLeft:`calc(${u.depth*1}rem + 8px)`},tabIndex:0,children:j.jsxRuntimeExports.jsx(Rn,{id:u.id,label:u.original.label,name:u.original.name,path:s?void 0:u.original.path,showHierarchy:s,icon:u.original.icon,type:u.original.entityType,isExpanded:u.getIsExpanded(),toggleExpandAll:l,toggleExpanded:()=>h(u.id)})})}},{accessorKey:"status",header:()=>"Status",sortingFn:Te((u,m,a)=>Ne(u,m,a,{enum:r.statuses,type:"string"})),sortDescFirst:!0,size:t.status||150,cell:({row:u,column:m})=>{const{value:a,id:f,type:d}=ge(u,m.id);return j.jsxRuntimeExports.jsx(fe,{rowId:f,className:B.clsx("status",{loading:u.original.isLoading}),columnId:m.id,value:a,attributeData:{type:"string"},options:r.statuses.filter(x=>{var p;return(p=x.scope)==null?void 0:p.includes(d)}),isCollapsed:!!u.original.childOnlyMatch,onChange:x=>b([{field:m.id,value:x,id:f,type:d}])})}},{accessorKey:"subType",header:()=>"Type",size:t.type||150,cell:({row:u,column:m})=>{const{value:a,id:f,type:d}=ge(u,m.id),x=d==="folder"?"folderType":"taskType";return j.jsxRuntimeExports.jsx(fe,{rowId:f,className:B.clsx("subType",{loading:u.original.isLoading}),columnId:m.id,value:a,attributeData:{type:"string"},options:d==="folder"?r.folderTypes:r.taskTypes,isCollapsed:!!u.original.childOnlyMatch,onChange:p=>b([{field:x,value:p,id:f,type:d}])})}},{accessorKey:"assignees",header:()=>"Assignees",size:t.assignees||150,cell:({row:u,column:m})=>{const{value:a,id:f,type:d}=ge(u,m.id);return d==="folder"?j.jsxRuntimeExports.jsx(fe,{rowId:f,className:B.clsx("assignees",{loading:u.original.isLoading}),columnId:m.id,value:"",isPlaceholder:!0}):j.jsxRuntimeExports.jsx(fe,{rowId:f,className:B.clsx("assignees",{loading:u.original.isLoading}),columnId:m.id,value:a,attributeData:{type:"list_of_strings"},options:r.assignees,isCollapsed:!!u.original.childOnlyMatch,onChange:x=>b([{field:m.id,value:x,id:f,type:d}])})}},{accessorKey:"tags",header:()=>"Tags",size:t.tags||150,cell:({row:u,column:m})=>{const{value:a,id:f,type:d}=ge(u,m.id);return j.jsxRuntimeExports.jsx(fe,{rowId:f,className:B.clsx("tags",{loading:u.original.isLoading}),columnId:m.id,value:a,attributeData:{type:"list_of_strings"},options:r.tags,isCollapsed:!!u.original.childOnlyMatch,onChange:x=>b([{field:m.id,value:x,id:f,type:d}]),enableCustomValues:!0})}}],C=n.map(u=>({accessorKey:"attrib."+u.name,header:()=>u.data.title||u.name,filterFn:"fuzzy",sortingFn:Te((a,f,d)=>Ne(a,f,d,u.data)),cell:({row:a,column:f})=>{const d=f.id.replace("attrib_",""),{value:x,id:p,type:y}=ge(a,d,"attrib"),g=!a.original.ownAttrib.includes(d);return j.jsxRuntimeExports.jsx(fe,{rowId:p,className:B.clsx("attrib",{loading:a.original.isLoading}),columnId:f.id,value:x,attributeData:{type:u.data.type||"string"},options:u.data.enum||[],isCollapsed:!!a.original.childOnlyMatch,isInherited:g,isReadOnly:u.readOnly,onChange:R=>b([{field:d,value:R,id:p,type:y,isAttrib:!0}])})}}));return[...c,...C]},[o,i,e,r,n,s,b])},ge=(e,n,t)=>{var s;return{value:t?(s=e.original[t])==null?void 0:s[n]:e.original[n],id:e.id,type:e.original.entityType}},Bn=N(J.Button)`
|
|
541
|
+
padding: 0px !important;
|
|
542
|
+
display: none;
|
|
543
|
+
background-color: var(--md-sys-color-surface-container-lowest);
|
|
544
|
+
|
|
545
|
+
&.selected {
|
|
546
|
+
display: flex;
|
|
547
|
+
}
|
|
548
|
+
`,Se=({selected:e,style:n,...t})=>j.jsxRuntimeExports.jsx(Bn,{...t,selected:e,className:B.clsx(t.className,"action",{selected:e}),variant:"text",style:{...n}}),Hn=(e,n)=>{const t=e.getFlatHeaders(),s=e.getState().columnSizingInfo;return E.useMemo(()=>{const i={};for(let r=0;r<t.length;r++){const l=t[r];i[`--header-${l.id}-size`]=l.getSize(),i[`--col-${l.column.id}-size`]=l.column.getSize()}return i},[s,n,t])},qn=()=>{const{getFoldersTasks:e}=Ie(),[n,t]=E.useState([]),{projectName:s,queryFilters:o}=re();return{handlePreFetchTasks:r=>{const l=r.target,h=l.closest("td");if(!l.closest(".expander")||!h)return;const b=h.firstElementChild,c=b==null?void 0:b.id;if(!c)return;const{colId:C,rowId:u}=V(c)||{};C!=="name"||!u||!b.className.includes("folder")||n.includes(u)||(t(a=>[...a,u]),e({parentIds:[u],filter:o.filterString,search:o.search},!0))}}},Yn=({onSuccess:e})=>{const{updateEntities:n}=Ie(),{getEntityById:t}=re();return E.useCallback(async o=>{if(!o||o.length===0)return;const i=o.map(l=>{var h;return t(((h=V(l))==null?void 0:h.rowId)||"")}).filter(Boolean);if(i.length===0)return;const r=async(l=!1)=>{const h=[];for(const b of i)b&&h.push({entityType:"folderId"in b?"task":"folder",type:"delete",entityId:b.id,force:l});try{await(n==null?void 0:n({operations:h})),e&&e()}catch(b){const c=(b==null?void 0:b.error)||"Failed to delete entities";throw console.error("Failed to delete entities:",b),{message:c,...b}}};X.confirmDelete({label:"folders and tasks",message:`Are you sure you want to delete ${o.length} entities? This action cannot be undone.`,accept:r,onError:l=>{var b;(b=l==null?void 0:l.errorCodes)!=null&&b.includes("delete-folder-with-children")&&X.confirmDelete({label:"folders and tasks",message:`This folder has child tasks or products that will also be deleted. Are you sure you want to delete ${o.length} entities and all of it's dependencies?`,accept:()=>r(!0),deleteLabel:"Delete all (dangerous)"})},deleteLabel:"Delete forever"})},[t,n,e])},Qn=({attribs:e,onOpenNew:n})=>{const{projectName:t,showHierarchy:s,getEntityById:o,toggleExpandAll:i}=re(),{copyToClipboard:r,exportCSV:l,pasteFromClipboard:h}=et(),{isCellSelected:b,selectedCells:c,clearSelection:C,selectCell:u}=le(),{inheritFromParent:m}=ae(),a=Yn({}),[f]=ct.useCreateContextMenu(),d=(y,g,R)=>{const{rowId:A,colId:D}=V(g)||{},w=e.find(L=>L.name===(D==null?void 0:D.replace("attrib_","")));if(!A)return[{label:"Copy",icon:"content_copy",shortcut:de.getPlatformShortcutKey("c",[de.KeyMode.Ctrl]),command:()=>r(R),shouldShow:!0}];const I=D==="name",v=R.length===1,S=x(R),O=new Set,T=new Set;for(const L of R){const U=V(L);U&&(U.rowId&&O.add(U.rowId),U.colId&&T.add(U.colId))}const M=Array.from(O),k=Array.from(c).filter(L=>{var U;return((U=V(L))==null?void 0:U.colId)===W}),z=O.size>1,_=T.size>1,F=z&&_,$=S.length>0&&s&&!F;return[{label:"Copy",icon:"content_copy",shortcut:de.getPlatformShortcutKey("c",[de.KeyMode.Ctrl]),command:()=>r(R),shouldShow:!0},{label:`Copy row${k.length>1?"s":""}`,icon:"content_copy",command:()=>r(k,!0),shouldShow:I&&k.some(L=>{var U,P;return((U=V(L))==null?void 0:U.rowId)===((P=V(g))==null?void 0:P.rowId)})},{label:"Paste",icon:"content_paste",shortcut:de.getPlatformShortcutKey("v",[de.KeyMode.Ctrl]),command:()=>h(R),shouldShow:!I,disabled:w==null?void 0:w.readOnly},{label:"Show details",icon:"dock_to_left",shortcut:"Double click",command:()=>{const L=H(A,W);u(L,!1,!1)},shouldShow:I&&v},{label:"Expand all",icon:"expand_all",shortcut:"Alt + click",command:()=>i(M,!0),shouldShow:I},{label:"Collapse all",icon:"collapse_all",shortcut:"Alt + click",command:()=>i(M,!1),shouldShow:I},{label:"Inherit from parent",icon:"disabled_by_default",command:()=>m(S),shouldShow:$},{label:"Export selection",icon:"download",command:()=>l(R,t),shouldShow:!0},{label:"Create folder",icon:"create_new_folder",command:()=>n==null?void 0:n("folder"),shouldShow:I&&s&&!!n},{label:"Create root folder",icon:"create_new_folder",command:()=>{C(),n==null||n("folder")},shouldShow:I&&s&&!!n},{label:"Create task",icon:"add_task",command:()=>n==null?void 0:n("task"),shouldShow:I&&s&&!!n},{label:"Delete",icon:"delete",danger:!0,command:()=>a(R),shouldShow:I}].filter(L=>L.shouldShow).map(({shouldShow:L,...U})=>U)},x=y=>y.reduce((g,R)=>{var O;const{rowId:A,colId:D}=V(R)||{};if(!A||!D||!D.startsWith("attrib_"))return g;const w=o(A);if(!w)return g;const I=D.replace("attrib_",""),v=e.find(T=>T.name===I),S=v==null?void 0:v.data.inherit;if((O=w.ownAttrib)!=null&&O.includes(I)&&S){const T=g.findIndex(M=>M.entityId===A);T>=0?g[T].attribs.includes(I)||g[T].attribs.push(I):g.push({entityId:A,entityType:"folderId"in w?"task":"folder",attribs:[I],ownAttrib:w.ownAttrib||[],folderId:w.parentId??w.folderId})}return g},[]);return{handleTableBodyContextMenu:y=>{var D;const R=y.target.closest("td"),A=(D=R==null?void 0:R.firstElementChild)==null?void 0:D.id;if(A){let w=Array.from(c);b(A)||(w=[A]),f(y,d(y,A,w))}}}},Zn=({visibleColumns:e,tableContainerRef:n,columnPinning:t})=>{var b;const s=E.useMemo(()=>e.filter(c=>c.getIsPinned()==="left").map(c=>c.getIndex()),[e,t]),o=[];if(s.length>0){const c=Math.max(...s);for(let C=0;C<=c;C++)o.push(C)}const i=We({count:e.length,estimateSize:c=>e[c].getSize(),getScrollElement:()=>n.current,horizontal:!0,overscan:0,rangeExtractor:c=>{const C=c.startIndex,u=c.endIndex,m=c.overscan,a=[];for(let d=C-m;d<=u+m;d++)d>=0&&d<e.length&&a.push(d);const f=new Set([...o,...a]);return Array.from(f).sort((d,x)=>d-x)}}),r=i.getVirtualItems();let l,h;if(i&&r.length){const c=i.getTotalSize(),C=r.findIndex(m=>!o.includes(m.index));if(C!==-1){const m=r[C].start,a=o.reduce((f,d)=>{const x=e[d];return f+x.getSize()},0);l=Math.max(0,m-a)}else l=0;const u=((b=r[r.length-1])==null?void 0:b.end)??0;h=Math.max(0,c-u)}return{columnVirtualizer:i,virtualPaddingLeft:l,virtualPaddingRight:h}};function Jn(){const{attribFields:e}=re(),{focusedCellId:n,gridMap:t,selectCell:s,focusCell:o,clearSelection:i,setFocusedCellId:r}=le(),{setEditingCellId:l,editingCellId:h}=ae(),b=E.useCallback(c=>{var p;const C=c.target;if(!(C!=null&&C.closest("table"))||C.tagName==="INPUT"||C.tagName==="TEXTAREA"||C.isContentEditable||C.getAttribute("role")==="textbox"||C.tagName==="LI"||h||!n)return;const u=V(n);if(!u)return;const{rowId:m,colId:a}=u,f=t.rowIdToIndex.get(m),d=t.colIdToIndex.get(a);if(f===void 0||d===void 0)return;const x=a.startsWith("attrib_")&&((p=e.find(y=>y.name===a.replace("attrib_","")))==null?void 0:p.readOnly);switch(c.key){case"ArrowUp":{if(c.preventDefault(),f>0){const y=t.indexToRowId.get(f-1);if(y){const g=H(y,a);s(g,c.shiftKey,c.shiftKey),o(g)}}break}case"ArrowDown":{c.preventDefault();const y=t.indexToRowId.get(f+1);if(y){const g=H(y,a);s(g,c.shiftKey,c.shiftKey),o(g)}break}case"ArrowLeft":{if(c.preventDefault(),d>0){const y=t.indexToColId.get(d-1);if(y){const g=H(m,y);s(g,c.shiftKey,c.shiftKey),o(g)}}break}case"ArrowRight":{c.preventDefault();const y=t.indexToColId.get(d+1);if(y){const g=H(m,y);s(g,c.shiftKey,c.shiftKey),o(g)}break}case"Enter":{if(c.preventDefault(),x)return;l(n);break}case"Escape":{c.preventDefault(),i(),l(null),r(null);break}case"Tab":{c.preventDefault();const y=c.shiftKey?d-1:d+1,g=t.indexToColId.get(y);if(g){const R=H(m,g);s(R,!1,!1),o(R)}else if(!c.shiftKey&&f<t.rowIdToIndex.size-1){const R=t.indexToRowId.get(f+1),A=t.indexToColId.get(0);if(R&&A){const D=H(R,A);s(D,!1,!1),o(D)}}else if(c.shiftKey&&f>0){const R=t.indexToRowId.get(f-1),A=t.indexToColId.get(t.colIdToIndex.size-1);if(R&&A){const D=H(R,A);s(D,!1,!1),o(D)}}break}}},[n,t,s,o,i,l,h]);return E.useEffect(()=>(document.addEventListener("keydown",b),()=>{document.removeEventListener("keydown",b)}),[b,n,t,s,o,i,l,h]),{handleKeyDown:b,focusedCellId:n,gridMap:t,selectCell:s,focusCell:o,clearSelection:i,setEditingCellId:l,editingCellId:h}}const rt=e=>{const n=e.getIsPinned();return{left:n==="left"?`${e.getStart("left")}px`:void 0,right:n==="right"?`${e.getAfter("right")}px`:void 0,position:n?"sticky":"relative",width:e.getSize(),zIndex:n?100:0}},Gn=e=>{const n=E.useMemo(()=>e.attribs.reduce((t,s)=>{var o,i,r;return(i=(o=s.data)==null?void 0:o.enum)!=null&&i.length&&(t[s.name]=(r=s.data)==null?void 0:r.enum),t},{}),[e.attribs]);return j.jsxRuntimeExports.jsx(Xe,{foldersMap:e.foldersMap,tasksMap:e.tasksMap,columnEnums:{...e.options,...n},columnReadOnly:e.attribs.filter(t=>t.readOnly).map(t=>t.name),children:j.jsxRuntimeExports.jsx(Xn,{...e})})},Xn=({scope:e,attribs:n,options:t,sliceId:s,fetchMoreOnBottomReached:o,onOpenNew:i})=>{const{columnVisibility:r,columnVisibilityUpdater:l,columnPinning:h,columnPinningUpdater:b,columnOrder:c,columnOrderUpdater:C}=nt(),{tableData:u,isLoading:m,isInitialized:a,expanded:f,updateExpanded:d,toggleExpandAll:x,toggleExpanded:p,sorting:y,updateSorting:g,showHierarchy:R}=re(),A=E.useRef(null),{registerGrid:D}=le(),[w,I]=at.useLocalStorage(`column-widths-${e}`,{}),v=P=>{I(Q.functionalUpdate(P,w))};E.useEffect(()=>{o(A.current)},[o]);const{loadingAttrib:S,loadingRows:O}=E.useMemo(()=>{var q;const P=((q=A.current)==null?void 0:q.querySelectorAll("tbody tr").length)||0,te=Be(),ee=we(n,R&&u.length>0?Math.min(P,50):50);return{loadingAttrib:te,loadingRows:ee}},[n,u,R,A.current]),T=!a||m,M=Kn({tableData:T?O:u,columnSizing:w,attribs:a?n:S,isLoading:!a,showHierarchy:R,sliceId:s,options:t,toggleExpandAll:P=>x([P]),toggleExpanded:P=>p(P)}),k=Q.useReactTable({data:T?O:u,columns:M,enableRowSelection:!0,getRowId:P=>P.id,enableSubRowSelection:!1,getSubRows:P=>P.subRows,getRowCanExpand:()=>!0,getCoreRowModel:Q.getCoreRowModel(),getFilteredRowModel:Q.getFilteredRowModel(),getExpandedRowModel:Q.getExpandedRowModel(),filterFromLeafRows:!0,onExpandedChange:d,getSortedRowModel:Q.getSortedRowModel(),onSortingChange:g,columnResizeMode:"onChange",onColumnPinningChange:b,onColumnSizingChange:v,onColumnVisibilityChange:l,onColumnOrderChange:C,filterFns:Q.filterFns,state:{expanded:f,sorting:y,columnPinning:{left:[W,...h.left||[]],right:h.right},columnSizing:w,columnVisibility:r,columnOrder:c},enableSorting:!0}),{rows:z}=k.getRowModel();E.useEffect(()=>{const P=z.map(q=>q.id),ee=[...k.getAllLeafColumns().map(q=>q.id)].sort((q,ce)=>{var Ae,De;if(W===ce)return 1;const pe=(Ae=h.left)!=null&&Ae.includes(q)?0:1,lt=(De=h.left)!=null&&De.includes(ce)?0:1;return pe-lt});D(P,ee)},[z,k.getAllLeafColumns(),h,W,D]);const _=k.getVisibleLeafColumns(),{columnVirtualizer:F,virtualPaddingLeft:$,virtualPaddingRight:K}=Zn({visibleColumns:_,tableContainerRef:A,columnPinning:h}),L=Hn(k,w),U=E.useMemo(()=>n.filter(P=>P.readOnly).map(P=>"attrib_"+P.name),[n]);return j.jsxRuntimeExports.jsx(_n,{children:j.jsxRuntimeExports.jsx($n,{ref:A,style:{height:"100%",padding:0},onScroll:P=>o(P.currentTarget),className:"table-container",children:j.jsxRuntimeExports.jsxs("table",{style:{display:"grid",borderCollapse:"collapse",userSelect:"none",...L,width:k.getTotalSize()},children:[j.jsxRuntimeExports.jsx(es,{columnVirtualizer:F,table:k,virtualPaddingLeft:$,virtualPaddingRight:K,isLoading:m,readOnlyColumns:U}),j.jsxRuntimeExports.jsx(ss,{columnVirtualizer:F,table:k,tableContainerRef:A,virtualPaddingLeft:$,virtualPaddingRight:K,showHierarchy:R,attribs:n,onOpenNew:i})]})})})},es=({columnVirtualizer:e,table:n,virtualPaddingLeft:t,virtualPaddingRight:s,isLoading:o,readOnlyColumns:i})=>j.jsxRuntimeExports.jsx(zn,{children:n.getHeaderGroups().map(r=>j.jsxRuntimeExports.jsx(ts,{columnVirtualizer:e,headerGroup:r,virtualPaddingLeft:t,virtualPaddingRight:s,isLoading:o,readOnlyColumns:i},r.id))}),ts=({columnVirtualizer:e,headerGroup:n,virtualPaddingLeft:t,virtualPaddingRight:s,isLoading:o,readOnlyColumns:i})=>{const r=e.getVirtualItems();return j.jsxRuntimeExports.jsxs(An,{style:{display:"flex"},children:[t?j.jsxRuntimeExports.jsx("th",{style:{display:"flex",width:t}}):null,r.map(l=>{const h=n.headers[l.index];return j.jsxRuntimeExports.jsx(ns,{header:h,isLoading:o,isReadOnly:i==null?void 0:i.includes(h.id)},h.id)}),s?j.jsxRuntimeExports.jsx("th",{style:{display:"flex",width:s}}):null]},n.id)},ns=({header:e,isLoading:n,isReadOnly:t})=>{const{column:s}=e,o=s.id===W;return j.jsxRuntimeExports.jsx(Dn,{className:B.clsx(e.id,"shimmer-dark",{loading:n,large:s.id==="folderType","last-pinned-left":s.getIsPinned()==="left"&&s.getIsLastColumn("left")}),style:{...rt(s),width:`calc(var(--header-${e==null?void 0:e.id}-size) * 1px)`},children:e.isPlaceholder?null:j.jsxRuntimeExports.jsxs(it,{className:B.clsx("bold",{large:s.id==="folderType"}),children:[Q.flexRender(s.columnDef.header,e.getContext()),t&&j.jsxRuntimeExports.jsx(J.Icon,{icon:"lock","data-tooltip":"You only have permission to read this column."}),j.jsxRuntimeExports.jsxs(Mn,{className:"actions",children:[j.jsxRuntimeExports.jsx(Se,{icon:"visibility_off",selected:!s.getIsVisible(),onClick:s.getToggleVisibilityHandler()}),j.jsxRuntimeExports.jsx(Se,{icon:"push_pin",selected:e.column.getIsPinned()==="left",onClick:()=>{e.column.getIsPinned()==="left"?e.column.pin(!1):e.column.pin("left")}}),j.jsxRuntimeExports.jsx(Se,{icon:"sort",style:{transform:s.getIsSorted()==="asc"?"scaleY(-1)":void 0},onClick:s.getToggleSortingHandler(),selected:!!s.getIsSorted()})]}),!o&&j.jsxRuntimeExports.jsx(kn,{onDoubleClick:()=>s.resetSize(),onMouseDown:e.getResizeHandler(),onTouchStart:e.getResizeHandler(),className:B.clsx("resize-handle",{resizing:s.getIsResizing()})})]})},e.id)},ss=({columnVirtualizer:e,table:n,tableContainerRef:t,showHierarchy:s,virtualPaddingLeft:o,virtualPaddingRight:i,attribs:r,onOpenNew:l})=>{const{handleTableBodyContextMenu:h}=Qn({attribs:r,onOpenNew:l}),{handlePreFetchTasks:b}=qn(),{rows:c}=n.getRowModel(),C=We({count:c.length,estimateSize:()=>s?36:40,getScrollElement:()=>t.current,measureElement:typeof window<"u"&&navigator.userAgent.indexOf("Firefox")===-1?m=>m==null?void 0:m.getBoundingClientRect().height:void 0,overscan:5}),u=C.getVirtualItems();return Jn(),u.length?j.jsxRuntimeExports.jsx("tbody",{style:{height:`${C.getTotalSize()}px`,position:"relative",display:"grid"},onContextMenu:h,onMouseOver:m=>{b(m)},children:u.map(m=>{const a=c[m.index];return j.jsxRuntimeExports.jsx(os,{columnVirtualizer:e,row:a,rowVirtualizer:C,virtualPaddingLeft:o,virtualPaddingRight:i,virtualRow:m,showHierarchy:s},a.id)})}):t.current&&Ve.createPortal(j.jsxRuntimeExports.jsx(B.EmptyPlaceholder,{message:"No folders or tasks found"}),t.current)},os=({columnVirtualizer:e,row:n,rowVirtualizer:t,virtualPaddingLeft:s,virtualPaddingRight:o,virtualRow:i,showHierarchy:r})=>{const l=n.getVisibleCells(),h=e.getVirtualItems();return j.jsxRuntimeExports.jsxs(jn,{"data-index":i.index,ref:b=>t.measureElement(b),style:{transform:`translateY(${i.start}px)`},children:[s?j.jsxRuntimeExports.jsx("td",{style:{display:"flex",width:s}}):null,h.map(b=>{const c=l[b.index],C=H(n.id,c.column.id);return j.jsxRuntimeExports.jsx(rs,{cell:c,cellId:C,rowId:n.id,showHierarchy:r},c.id)}),o?j.jsxRuntimeExports.jsx("td",{style:{display:"flex",width:o}}):null]},n.id)},is=({cell:e,rowId:n,cellId:t,className:s,showHierarchy:o,...i})=>{const{isCellSelected:r,isCellFocused:l,startSelection:h,extendSelection:b,endSelection:c,selectCell:C,getCellBorderClasses:u}=le(),{isRowSelected:m}=je(),{isEditing:a}=ae(),f=u(t),x=e.column.getIsPinned()==="left"&&e.column.getIsLastColumn("left"),p=e.column.id===W;return E.createElement(On,{...i,tabIndex:0,key:e.id,$isLastPinned:x,className:B.clsx(e.column.id,e.column.id==="folderType"?"large":"",{selected:r(t),focused:l(t),editing:a(t),"last-pinned-left":x,"selected-row":m(n),task:e.row.original.entityType==="task"},s,...f),style:{...rt(e.column),width:`calc(var(--col-${e.column.id}-size) * 1px)`,height:o?36:40},onMouseDown:y=>{if(y.button!==0||y.target.closest(".expander"))return;const g=y.metaKey||y.ctrlKey||p;y.shiftKey?C(t,g,!0):h(t,g)},onMouseOver:y=>{y.buttons===1&&b(t,p)},onMouseUp:()=>{c(t)},onDoubleClick:y=>{if(e.column.id==="name"){const g=H(e.row.id,W);if(!r(g)){const R=y.metaKey||y.ctrlKey;C(g,R,!1)}}},onContextMenu:y=>{y.preventDefault(),r(t)||C(t,!1,!1)}},Q.flexRender(e.column.columnDef.cell,e.getContext()))},rs=E.memo(is),Fe="no_date",ls=e=>{if(!e||e.length===0)return{};const n=e.filter(t=>{var s;return!!((s=t.values)!=null&&s.length)}).filter(t=>!t.id.includes("text")).filter(t=>t.id!=="hierarchy").flatMap(t=>as(t));return console.log(n),{conditions:n,operator:"and"}},as=e=>{var h,b,c;const n=e.id.split("_")[0];let t;const s=Array.isArray(e.values)&&((h=e.values.map(C=>C.id))==null?void 0:h.includes("hasValue")),o=Array.isArray(e.values)&&((b=e.values.map(C=>C.id))==null?void 0:b.includes("noValue"));e.values&&e.values.length>0&&(e.singleSelect?t=Pe(e.values[0].id,e.type):t=e.values.map(C=>Pe(C.id,e.type)));const i=((c=e.type)==null?void 0:c.startsWith("list_of_"))||n.includes("tags")||n.includes("assignees"),r=e.type==="datetime";let l="eq";if(t===void 0)return l=e.inverted?"notnull":"isnull",{key:n,operator:l};if(s)t=i?[]:void 0,l=i?e.inverted?"eq":"ne":e.inverted?"isnull":"notnull";else if(o)t=i?[]:void 0,l=i?e.inverted?"ne":"eq":e.inverted?"notnull":"isnull";else if(i)e.inverted?l=e.operator==="AND"?"excludesall":"excludesany":l=e.operator==="AND"?"includesall":"includesany";else if(r){if(e.values&&e.values.length>0){const C=e.values.flatMap(u=>{const m=[],a=u.values;return(a==null?void 0:a[0])!==void 0&&(a==null?void 0:a[0].id)!==Fe&&m.push({key:n,operator:e.inverted?"lte":"gte",value:a[0].id}),(a==null?void 0:a[1])!==void 0&&(a==null?void 0:a[1].id)!==Fe&&m.push({key:n,operator:e.inverted?"gte":"lte",value:a[1].id}),m});if(C.length>0)return{conditions:C,operator:e.inverted?"or":"and"}}l=e.inverted?"ne":"eq"}else l=e.inverted?"notin":"in";return{key:n,value:t,operator:l}},Pe=(e,n)=>{if(!n)return e;switch(n){case"integer":return parseInt(e,10);case"float":return parseFloat(e);case"boolean":return e.toLowerCase()==="true";default:return e}};exports.CellEditingProvider=xn;exports.ClipboardProvider=Xe;exports.ColumnSettingsProvider=hn;exports.ProjectTableProvider=cn;exports.ProjectTableQueriesProvider=sn;exports.ProjectTreeTable=Gn;exports.ROW_SELECTION_COLUMN_ID=W;exports.SelectedRowsProvider=mn;exports.SelectionProvider=fn;exports.builtInFieldMappings=qe;exports.clientFilterToQueryFilter=ls;exports.clipboardError=G;exports.determineLoadingTaskFolders=on;exports.generateDummyAttributes=Be;exports.generateLoadingRows=we;exports.getEntityPath=Re;exports.parseClipboardText=Ye;exports.processFieldValue=Qe;exports.useCellEditing=ae;exports.useClipboard=et;exports.useColumnSettings=nt;exports.useProjectTableContext=re;exports.useProjectTableQueriesContext=Ie;exports.useSelectedRowsContext=je;exports.useSelectionContext=le;exports.validateClipboardData=Ze;
|
|
549
|
+
//# sourceMappingURL=index.cjs8.js.map
|