@payloadcms/ui 3.1.1-canary.c40ff01 → 3.1.2-canary.eb1a61e
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/elements/AnimateHeight/index.d.ts +10 -0
- package/dist/elements/AnimateHeight/index.d.ts.map +1 -0
- package/dist/elements/AnimateHeight/index.js +75 -0
- package/dist/elements/AnimateHeight/index.js.map +1 -0
- package/dist/elements/AnimateHeight/index.scss +8 -0
- package/dist/elements/AnimateHeight/usePatchAnimateHeight.d.ts +8 -0
- package/dist/elements/AnimateHeight/usePatchAnimateHeight.d.ts.map +1 -0
- package/dist/elements/AnimateHeight/usePatchAnimateHeight.js +49 -0
- package/dist/elements/AnimateHeight/usePatchAnimateHeight.js.map +1 -0
- package/dist/elements/AppHeader/index.scss +7 -8
- package/dist/elements/BulkUpload/FileSidebar/index.d.ts.map +1 -1
- package/dist/elements/BulkUpload/FileSidebar/index.js +2 -4
- package/dist/elements/BulkUpload/FileSidebar/index.js.map +1 -1
- package/dist/elements/Collapsible/index.d.ts.map +1 -1
- package/dist/elements/Collapsible/index.js +1 -3
- package/dist/elements/Collapsible/index.js.map +1 -1
- package/dist/elements/DatePicker/DatePicker.d.ts.map +1 -1
- package/dist/elements/DatePicker/DatePicker.js +44 -27
- package/dist/elements/DatePicker/DatePicker.js.map +1 -1
- package/dist/elements/DatePicker/index.scss +1 -1
- package/dist/elements/ListControls/index.d.ts.map +1 -1
- package/dist/elements/ListControls/index.js +2 -3
- package/dist/elements/ListControls/index.js.map +1 -1
- package/dist/elements/NavGroup/index.d.ts.map +1 -1
- package/dist/elements/NavGroup/index.js +1 -2
- package/dist/elements/NavGroup/index.js.map +1 -1
- package/dist/elements/ReactSelect/index.d.ts.map +1 -1
- package/dist/elements/ReactSelect/index.js +11 -0
- package/dist/elements/ReactSelect/index.js.map +1 -1
- package/dist/elements/ReactSelect/index.scss +0 -3
- package/dist/elements/RelationshipTable/index.d.ts.map +1 -1
- package/dist/elements/RelationshipTable/index.js +3 -4
- package/dist/elements/RelationshipTable/index.js.map +1 -1
- package/dist/elements/TableColumns/index.d.ts.map +1 -1
- package/dist/elements/TableColumns/index.js +1 -1
- package/dist/elements/TableColumns/index.js.map +1 -1
- package/dist/exports/client/{DatePicker-23XPGPYP.js → DatePicker-QST7QHAX.js} +2 -2
- package/dist/exports/client/{chunk-PELL3UMP.js → chunk-5LUHGAPX.js} +3 -3
- package/dist/exports/client/{chunk-PELL3UMP.js.map → chunk-5LUHGAPX.js.map} +3 -3
- package/dist/exports/client/index.js +21 -21
- package/dist/exports/client/index.js.map +4 -4
- package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts +2 -1
- package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts.map +1 -1
- package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js +10 -0
- package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js.map +1 -1
- package/dist/forms/fieldSchemasToFormState/index.d.ts +7 -1
- package/dist/forms/fieldSchemasToFormState/index.d.ts.map +1 -1
- package/dist/forms/fieldSchemasToFormState/index.js +5 -0
- package/dist/forms/fieldSchemasToFormState/index.js.map +1 -1
- package/dist/forms/fieldSchemasToFormState/iterateFields.d.ts +3 -2
- package/dist/forms/fieldSchemasToFormState/iterateFields.d.ts.map +1 -1
- package/dist/forms/fieldSchemasToFormState/iterateFields.js +2 -0
- package/dist/forms/fieldSchemasToFormState/iterateFields.js.map +1 -1
- package/dist/forms/fieldSchemasToFormState/renderField.d.ts.map +1 -1
- package/dist/forms/fieldSchemasToFormState/renderField.js +3 -1
- package/dist/forms/fieldSchemasToFormState/renderField.js.map +1 -1
- package/dist/forms/fieldSchemasToFormState/types.d.ts +2 -1
- package/dist/forms/fieldSchemasToFormState/types.d.ts.map +1 -1
- package/dist/forms/fieldSchemasToFormState/types.js.map +1 -1
- package/dist/providers/ListQuery/index.d.ts.map +1 -1
- package/dist/providers/ListQuery/index.js +1 -1
- package/dist/providers/ListQuery/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/utilities/buildClientFieldSchemaMap/index.d.ts +16 -0
- package/dist/utilities/buildClientFieldSchemaMap/index.d.ts.map +1 -0
- package/dist/utilities/buildClientFieldSchemaMap/index.js +70 -0
- package/dist/utilities/buildClientFieldSchemaMap/index.js.map +1 -0
- package/dist/utilities/buildClientFieldSchemaMap/traverseFields.d.ts +15 -0
- package/dist/utilities/buildClientFieldSchemaMap/traverseFields.d.ts.map +1 -0
- package/dist/utilities/buildClientFieldSchemaMap/traverseFields.js +129 -0
- package/dist/utilities/buildClientFieldSchemaMap/traverseFields.js.map +1 -0
- package/dist/utilities/buildFieldSchemaMap/index.d.ts.map +1 -1
- package/dist/utilities/buildFieldSchemaMap/index.js +13 -14
- package/dist/utilities/buildFieldSchemaMap/index.js.map +1 -1
- package/dist/utilities/buildFieldSchemaMap/traverseFields.d.ts.map +1 -1
- package/dist/utilities/buildFieldSchemaMap/traverseFields.js.map +1 -1
- package/dist/utilities/buildFormState.d.ts +1 -8
- package/dist/utilities/buildFormState.d.ts.map +1 -1
- package/dist/utilities/buildFormState.js +19 -41
- package/dist/utilities/buildFormState.js.map +1 -1
- package/dist/utilities/buildTableState.d.ts.map +1 -1
- package/dist/utilities/buildTableState.js +5 -6
- package/dist/utilities/buildTableState.js.map +1 -1
- package/dist/utilities/getClientSchemaMap.d.ts +11 -0
- package/dist/utilities/getClientSchemaMap.d.ts.map +1 -0
- package/dist/utilities/getClientSchemaMap.js +39 -0
- package/dist/utilities/getClientSchemaMap.js.map +1 -0
- package/dist/utilities/getSchemaMap.d.ts +9 -0
- package/dist/utilities/getSchemaMap.d.ts.map +1 -0
- package/dist/utilities/getSchemaMap.js +35 -0
- package/dist/utilities/getSchemaMap.js.map +1 -0
- package/package.json +5 -6
- /package/dist/exports/client/{DatePicker-23XPGPYP.js.map → DatePicker-QST7QHAX.js.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/ListControls/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAI5D,OAAO,KAAgD,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/ListControls/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAI5D,OAAO,KAAgD,MAAM,OAAO,CAAA;AAiBpE,OAAO,cAAc,CAAA;AAKrB,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,CAAA;IAC1C,QAAQ,CAAC,gBAAgB,EAAE,sBAAsB,CAAA;IACjD,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAA;IACpC,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAA;IAClC,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAA;IAChC,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;IAC7B,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;IACtD,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAClD,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAA;IACnD,QAAQ,CAAC,eAAe,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,CAAA;CACxD,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CA8LpD,CAAA"}
|
|
@@ -4,13 +4,12 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
4
4
|
import { useWindowInfo } from '@faceless-ui/window-info';
|
|
5
5
|
import { getTranslation } from '@payloadcms/translations';
|
|
6
6
|
import React, { Fragment, useEffect, useRef, useState } from 'react';
|
|
7
|
-
import AnimateHeightImport from 'react-animate-height';
|
|
8
|
-
const AnimateHeight = AnimateHeightImport.default || AnimateHeightImport;
|
|
9
7
|
import { useUseTitleField } from '../../hooks/useUseAsTitle.js';
|
|
10
8
|
import { ChevronIcon } from '../../icons/Chevron/index.js';
|
|
11
9
|
import { SearchIcon } from '../../icons/Search/index.js';
|
|
12
10
|
import { useListQuery } from '../../providers/ListQuery/index.js';
|
|
13
11
|
import { useTranslation } from '../../providers/Translation/index.js';
|
|
12
|
+
import { AnimateHeight } from '../AnimateHeight/index.js';
|
|
14
13
|
import { ColumnSelector } from '../ColumnSelector/index.js';
|
|
15
14
|
import { DeleteMany } from '../DeleteMany/index.js';
|
|
16
15
|
import { EditMany } from '../EditMany/index.js';
|
|
@@ -20,8 +19,8 @@ import { SearchFilter } from '../SearchFilter/index.js';
|
|
|
20
19
|
import { UnpublishMany } from '../UnpublishMany/index.js';
|
|
21
20
|
import { WhereBuilder } from '../WhereBuilder/index.js';
|
|
22
21
|
import validateWhereQuery from '../WhereBuilder/validateWhereQuery.js';
|
|
23
|
-
import { getTextFieldsToBeSearched } from './getTextFieldsToBeSearched.js';
|
|
24
22
|
import './index.scss';
|
|
23
|
+
import { getTextFieldsToBeSearched } from './getTextFieldsToBeSearched.js';
|
|
25
24
|
const baseClass = 'list-controls';
|
|
26
25
|
/**
|
|
27
26
|
* The ListControls component is used to render the controls (search, filter, where)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["useWindowInfo","getTranslation","React","Fragment","useEffect","useRef","useState","AnimateHeightImport","AnimateHeight","default","useUseTitleField","ChevronIcon","SearchIcon","useListQuery","useTranslation","ColumnSelector","DeleteMany","EditMany","Pill","PublishMany","SearchFilter","UnpublishMany","WhereBuilder","validateWhereQuery","getTextFieldsToBeSearched","baseClass","ListControls","props","beforeActions","collectionConfig","collectionSlug","disableBulkDelete","disableBulkEdit","enableColumns","enableSort","renderedFilters","handleSearchChange","query","titleField","i18n","t","breakpoints","s","smallBreak","searchLabel","label","name","listSearchableFields","admin","fields","searchLabelTranslated","hasWhereParam","Boolean","where","shouldInitializeWhereOpened","visibleDrawer","setVisibleDrawer","undefined","current","length","reduce","placeholderText","field","i","_jsxs","className","_jsx","fieldName","handleChange","search","initialParams","collection","icon","direction","onClick","pillStyle","height","id","slug","collectionPluralLabel","labels","plural","String"],"sources":["../../../src/elements/ListControls/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig, Where } from 'payload'\n\nimport { useWindowInfo } from '@faceless-ui/window-info'\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { Fragment, useEffect, useRef, useState } from 'react'\nimport AnimateHeightImport from 'react-animate-height'\n\nconst AnimateHeight = (AnimateHeightImport.default ||\n AnimateHeightImport) as typeof AnimateHeightImport.default\n\nimport { useUseTitleField } from '../../hooks/useUseAsTitle.js'\nimport { ChevronIcon } from '../../icons/Chevron/index.js'\nimport { SearchIcon } from '../../icons/Search/index.js'\nimport { useListQuery } from '../../providers/ListQuery/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { ColumnSelector } from '../ColumnSelector/index.js'\nimport { DeleteMany } from '../DeleteMany/index.js'\nimport { EditMany } from '../EditMany/index.js'\nimport { Pill } from '../Pill/index.js'\nimport { PublishMany } from '../PublishMany/index.js'\nimport { SearchFilter } from '../SearchFilter/index.js'\nimport { UnpublishMany } from '../UnpublishMany/index.js'\nimport { WhereBuilder } from '../WhereBuilder/index.js'\nimport validateWhereQuery from '../WhereBuilder/validateWhereQuery.js'\nimport { getTextFieldsToBeSearched } from './getTextFieldsToBeSearched.js'\nimport './index.scss'\n\nconst baseClass = 'list-controls'\n\nexport type ListControlsProps = {\n readonly beforeActions?: React.ReactNode[]\n readonly collectionConfig: ClientCollectionConfig\n readonly collectionSlug: string\n readonly disableBulkDelete?: boolean\n readonly disableBulkEdit?: boolean\n readonly enableColumns?: boolean\n readonly enableSort?: boolean\n readonly handleSearchChange?: (search: string) => void\n readonly handleSortChange?: (sort: string) => void\n readonly handleWhereChange?: (where: Where) => void\n readonly renderedFilters?: Map<string, React.ReactNode>\n}\n\n/**\n * The ListControls component is used to render the controls (search, filter, where)\n * for a collection's list view. You can find those directly above the table which lists\n * the collection's documents.\n */\nexport const ListControls: React.FC<ListControlsProps> = (props) => {\n const {\n beforeActions,\n collectionConfig,\n collectionSlug,\n disableBulkDelete,\n disableBulkEdit,\n enableColumns = true,\n enableSort = false,\n renderedFilters,\n } = props\n\n const { handleSearchChange, query } = useListQuery()\n const titleField = useUseTitleField(collectionConfig)\n const { i18n, t } = useTranslation()\n const {\n breakpoints: { s: smallBreak },\n } = useWindowInfo()\n\n const searchLabel =\n (titleField &&\n getTranslation(\n 'label' in titleField && typeof titleField.label === 'string'\n ? titleField.label\n : 'name' in titleField\n ? titleField.name\n : null,\n i18n,\n )) ??\n 'ID'\n\n const listSearchableFields = getTextFieldsToBeSearched(\n collectionConfig.admin.listSearchableFields,\n collectionConfig.fields,\n )\n\n const searchLabelTranslated = useRef(\n t('general:searchBy', { label: getTranslation(searchLabel, i18n) }),\n )\n\n const hasWhereParam = useRef(Boolean(query?.where))\n\n const shouldInitializeWhereOpened = validateWhereQuery(query?.where)\n const [visibleDrawer, setVisibleDrawer] = useState<'columns' | 'sort' | 'where'>(\n shouldInitializeWhereOpened ? 'where' : undefined,\n )\n\n useEffect(() => {\n if (hasWhereParam.current && !query?.where) {\n setVisibleDrawer(undefined)\n hasWhereParam.current = false\n } else if (query?.where) {\n hasWhereParam.current = true\n }\n }, [setVisibleDrawer, query?.where])\n\n useEffect(() => {\n if (listSearchableFields?.length > 0) {\n searchLabelTranslated.current = listSearchableFields.reduce(\n (placeholderText: string, field, i: number) => {\n const label =\n 'label' in field && field.label ? field.label : 'name' in field ? field.name : null\n\n if (i === 0) {\n return `${t('general:searchBy', {\n label: getTranslation(label, i18n),\n })}`\n }\n\n if (i === listSearchableFields.length - 1) {\n return `${placeholderText} ${t('general:or')} ${getTranslation(label, i18n)}`\n }\n\n return `${placeholderText}, ${getTranslation(label, i18n)}`\n },\n '',\n )\n } else {\n searchLabelTranslated.current = t('general:searchBy', {\n label: getTranslation(searchLabel, i18n),\n })\n }\n }, [t, listSearchableFields, i18n, searchLabel])\n\n return (\n <div className={baseClass}>\n <div className={`${baseClass}__wrap`}>\n <SearchIcon />\n <SearchFilter\n fieldName={titleField && 'name' in titleField ? titleField?.name : null}\n handleChange={(search) => {\n return void handleSearchChange(search)\n }}\n // @ts-expect-error @todo: fix types\n initialParams={query}\n key={collectionSlug}\n label={searchLabelTranslated.current}\n />\n <div className={`${baseClass}__buttons`}>\n <div className={`${baseClass}__buttons-wrap`}>\n {!smallBreak && (\n <React.Fragment>\n {beforeActions && beforeActions}\n {!disableBulkEdit && (\n <Fragment>\n <EditMany collection={collectionConfig} />\n <PublishMany collection={collectionConfig} />\n <UnpublishMany collection={collectionConfig} />\n </Fragment>\n )}\n {!disableBulkDelete && <DeleteMany collection={collectionConfig} />}\n </React.Fragment>\n )}\n {enableColumns && (\n <Pill\n aria-controls={`${baseClass}-columns`}\n aria-expanded={visibleDrawer === 'columns'}\n className={`${baseClass}__toggle-columns`}\n icon={<ChevronIcon direction={visibleDrawer === 'columns' ? 'up' : 'down'} />}\n onClick={() =>\n setVisibleDrawer(visibleDrawer !== 'columns' ? 'columns' : undefined)\n }\n pillStyle=\"light\"\n >\n {t('general:columns')}\n </Pill>\n )}\n <Pill\n aria-controls={`${baseClass}-where`}\n aria-expanded={visibleDrawer === 'where'}\n className={`${baseClass}__toggle-where`}\n icon={<ChevronIcon direction={visibleDrawer === 'where' ? 'up' : 'down'} />}\n onClick={() => setVisibleDrawer(visibleDrawer !== 'where' ? 'where' : undefined)}\n pillStyle=\"light\"\n >\n {t('general:filters')}\n </Pill>\n {enableSort && (\n <Pill\n aria-controls={`${baseClass}-sort`}\n aria-expanded={visibleDrawer === 'sort'}\n className={`${baseClass}__toggle-sort`}\n icon={<ChevronIcon />}\n onClick={() => setVisibleDrawer(visibleDrawer !== 'sort' ? 'sort' : undefined)}\n pillStyle=\"light\"\n >\n {t('general:sort')}\n </Pill>\n )}\n </div>\n </div>\n </div>\n {enableColumns && (\n <AnimateHeight\n className={`${baseClass}__columns`}\n height={visibleDrawer === 'columns' ? 'auto' : 0}\n id={`${baseClass}-columns`}\n >\n <ColumnSelector collectionSlug={collectionConfig.slug} />\n </AnimateHeight>\n )}\n <AnimateHeight\n className={`${baseClass}__where`}\n height={visibleDrawer === 'where' ? 'auto' : 0}\n id={`${baseClass}-where`}\n >\n <WhereBuilder\n collectionPluralLabel={collectionConfig?.labels?.plural}\n collectionSlug={collectionConfig.slug}\n fields={collectionConfig?.fields}\n key={String(hasWhereParam.current && !query?.where)}\n renderedFilters={renderedFilters}\n />\n </AnimateHeight>\n {enableSort && (\n <AnimateHeight\n className={`${baseClass}__sort`}\n height={visibleDrawer === 'sort' ? 'auto' : 0}\n id={`${baseClass}-sort`}\n >\n <p>Sort Complex</p>\n {/* <SortComplex\n collection={collection}\n handleChange={handleSortChange}\n modifySearchQuery={modifySearchQuery}\n /> */}\n </AnimateHeight>\n )}\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["useWindowInfo","getTranslation","React","Fragment","useEffect","useRef","useState","useUseTitleField","ChevronIcon","SearchIcon","useListQuery","useTranslation","AnimateHeight","ColumnSelector","DeleteMany","EditMany","Pill","PublishMany","SearchFilter","UnpublishMany","WhereBuilder","validateWhereQuery","getTextFieldsToBeSearched","baseClass","ListControls","props","beforeActions","collectionConfig","collectionSlug","disableBulkDelete","disableBulkEdit","enableColumns","enableSort","renderedFilters","handleSearchChange","query","titleField","i18n","t","breakpoints","s","smallBreak","searchLabel","label","name","listSearchableFields","admin","fields","searchLabelTranslated","hasWhereParam","Boolean","where","shouldInitializeWhereOpened","visibleDrawer","setVisibleDrawer","undefined","current","length","reduce","placeholderText","field","i","_jsxs","className","_jsx","fieldName","handleChange","search","initialParams","collection","icon","direction","onClick","pillStyle","height","id","slug","collectionPluralLabel","labels","plural","String"],"sources":["../../../src/elements/ListControls/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig, Where } from 'payload'\n\nimport { useWindowInfo } from '@faceless-ui/window-info'\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { Fragment, useEffect, useRef, useState } from 'react'\n\nimport { useUseTitleField } from '../../hooks/useUseAsTitle.js'\nimport { ChevronIcon } from '../../icons/Chevron/index.js'\nimport { SearchIcon } from '../../icons/Search/index.js'\nimport { useListQuery } from '../../providers/ListQuery/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { AnimateHeight } from '../AnimateHeight/index.js'\nimport { ColumnSelector } from '../ColumnSelector/index.js'\nimport { DeleteMany } from '../DeleteMany/index.js'\nimport { EditMany } from '../EditMany/index.js'\nimport { Pill } from '../Pill/index.js'\nimport { PublishMany } from '../PublishMany/index.js'\nimport { SearchFilter } from '../SearchFilter/index.js'\nimport { UnpublishMany } from '../UnpublishMany/index.js'\nimport { WhereBuilder } from '../WhereBuilder/index.js'\nimport validateWhereQuery from '../WhereBuilder/validateWhereQuery.js'\nimport './index.scss'\nimport { getTextFieldsToBeSearched } from './getTextFieldsToBeSearched.js'\n\nconst baseClass = 'list-controls'\n\nexport type ListControlsProps = {\n readonly beforeActions?: React.ReactNode[]\n readonly collectionConfig: ClientCollectionConfig\n readonly collectionSlug: string\n readonly disableBulkDelete?: boolean\n readonly disableBulkEdit?: boolean\n readonly enableColumns?: boolean\n readonly enableSort?: boolean\n readonly handleSearchChange?: (search: string) => void\n readonly handleSortChange?: (sort: string) => void\n readonly handleWhereChange?: (where: Where) => void\n readonly renderedFilters?: Map<string, React.ReactNode>\n}\n\n/**\n * The ListControls component is used to render the controls (search, filter, where)\n * for a collection's list view. You can find those directly above the table which lists\n * the collection's documents.\n */\nexport const ListControls: React.FC<ListControlsProps> = (props) => {\n const {\n beforeActions,\n collectionConfig,\n collectionSlug,\n disableBulkDelete,\n disableBulkEdit,\n enableColumns = true,\n enableSort = false,\n renderedFilters,\n } = props\n\n const { handleSearchChange, query } = useListQuery()\n const titleField = useUseTitleField(collectionConfig)\n const { i18n, t } = useTranslation()\n const {\n breakpoints: { s: smallBreak },\n } = useWindowInfo()\n\n const searchLabel =\n (titleField &&\n getTranslation(\n 'label' in titleField && typeof titleField.label === 'string'\n ? titleField.label\n : 'name' in titleField\n ? titleField.name\n : null,\n i18n,\n )) ??\n 'ID'\n\n const listSearchableFields = getTextFieldsToBeSearched(\n collectionConfig.admin.listSearchableFields,\n collectionConfig.fields,\n )\n\n const searchLabelTranslated = useRef(\n t('general:searchBy', { label: getTranslation(searchLabel, i18n) }),\n )\n\n const hasWhereParam = useRef(Boolean(query?.where))\n\n const shouldInitializeWhereOpened = validateWhereQuery(query?.where)\n const [visibleDrawer, setVisibleDrawer] = useState<'columns' | 'sort' | 'where'>(\n shouldInitializeWhereOpened ? 'where' : undefined,\n )\n\n useEffect(() => {\n if (hasWhereParam.current && !query?.where) {\n setVisibleDrawer(undefined)\n hasWhereParam.current = false\n } else if (query?.where) {\n hasWhereParam.current = true\n }\n }, [setVisibleDrawer, query?.where])\n\n useEffect(() => {\n if (listSearchableFields?.length > 0) {\n searchLabelTranslated.current = listSearchableFields.reduce(\n (placeholderText: string, field, i: number) => {\n const label =\n 'label' in field && field.label ? field.label : 'name' in field ? field.name : null\n\n if (i === 0) {\n return `${t('general:searchBy', {\n label: getTranslation(label, i18n),\n })}`\n }\n\n if (i === listSearchableFields.length - 1) {\n return `${placeholderText} ${t('general:or')} ${getTranslation(label, i18n)}`\n }\n\n return `${placeholderText}, ${getTranslation(label, i18n)}`\n },\n '',\n )\n } else {\n searchLabelTranslated.current = t('general:searchBy', {\n label: getTranslation(searchLabel, i18n),\n })\n }\n }, [t, listSearchableFields, i18n, searchLabel])\n\n return (\n <div className={baseClass}>\n <div className={`${baseClass}__wrap`}>\n <SearchIcon />\n <SearchFilter\n fieldName={titleField && 'name' in titleField ? titleField?.name : null}\n handleChange={(search) => {\n return void handleSearchChange(search)\n }}\n // @ts-expect-error @todo: fix types\n initialParams={query}\n key={collectionSlug}\n label={searchLabelTranslated.current}\n />\n <div className={`${baseClass}__buttons`}>\n <div className={`${baseClass}__buttons-wrap`}>\n {!smallBreak && (\n <React.Fragment>\n {beforeActions && beforeActions}\n {!disableBulkEdit && (\n <Fragment>\n <EditMany collection={collectionConfig} />\n <PublishMany collection={collectionConfig} />\n <UnpublishMany collection={collectionConfig} />\n </Fragment>\n )}\n {!disableBulkDelete && <DeleteMany collection={collectionConfig} />}\n </React.Fragment>\n )}\n {enableColumns && (\n <Pill\n aria-controls={`${baseClass}-columns`}\n aria-expanded={visibleDrawer === 'columns'}\n className={`${baseClass}__toggle-columns`}\n icon={<ChevronIcon direction={visibleDrawer === 'columns' ? 'up' : 'down'} />}\n onClick={() =>\n setVisibleDrawer(visibleDrawer !== 'columns' ? 'columns' : undefined)\n }\n pillStyle=\"light\"\n >\n {t('general:columns')}\n </Pill>\n )}\n <Pill\n aria-controls={`${baseClass}-where`}\n aria-expanded={visibleDrawer === 'where'}\n className={`${baseClass}__toggle-where`}\n icon={<ChevronIcon direction={visibleDrawer === 'where' ? 'up' : 'down'} />}\n onClick={() => setVisibleDrawer(visibleDrawer !== 'where' ? 'where' : undefined)}\n pillStyle=\"light\"\n >\n {t('general:filters')}\n </Pill>\n {enableSort && (\n <Pill\n aria-controls={`${baseClass}-sort`}\n aria-expanded={visibleDrawer === 'sort'}\n className={`${baseClass}__toggle-sort`}\n icon={<ChevronIcon />}\n onClick={() => setVisibleDrawer(visibleDrawer !== 'sort' ? 'sort' : undefined)}\n pillStyle=\"light\"\n >\n {t('general:sort')}\n </Pill>\n )}\n </div>\n </div>\n </div>\n {enableColumns && (\n <AnimateHeight\n className={`${baseClass}__columns`}\n height={visibleDrawer === 'columns' ? 'auto' : 0}\n id={`${baseClass}-columns`}\n >\n <ColumnSelector collectionSlug={collectionConfig.slug} />\n </AnimateHeight>\n )}\n <AnimateHeight\n className={`${baseClass}__where`}\n height={visibleDrawer === 'where' ? 'auto' : 0}\n id={`${baseClass}-where`}\n >\n <WhereBuilder\n collectionPluralLabel={collectionConfig?.labels?.plural}\n collectionSlug={collectionConfig.slug}\n fields={collectionConfig?.fields}\n key={String(hasWhereParam.current && !query?.where)}\n renderedFilters={renderedFilters}\n />\n </AnimateHeight>\n {enableSort && (\n <AnimateHeight\n className={`${baseClass}__sort`}\n height={visibleDrawer === 'sort' ? 'auto' : 0}\n id={`${baseClass}-sort`}\n >\n <p>Sort Complex</p>\n {/* <SortComplex\n collection={collection}\n handleChange={handleSortChange}\n modifySearchQuery={modifySearchQuery}\n /> */}\n </AnimateHeight>\n )}\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/NavGroup/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAmB,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/NavGroup/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAmB,MAAM,OAAO,CAAA;AAIvC,OAAO,cAAc,CAAA;AAMrB,KAAK,KAAK,GAAG;IACX,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAID,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CA0DpC,CAAA"}
|
|
@@ -3,12 +3,11 @@
|
|
|
3
3
|
import { c as _c } from "react/compiler-runtime";
|
|
4
4
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
5
5
|
import React, { useState } from 'react';
|
|
6
|
-
import AnimateHeightImport from 'react-animate-height';
|
|
7
6
|
import { ChevronIcon } from '../../icons/Chevron/index.js';
|
|
8
7
|
import { usePreferences } from '../../providers/Preferences/index.js';
|
|
9
8
|
import './index.scss';
|
|
9
|
+
import { AnimateHeight } from '../AnimateHeight/index.js';
|
|
10
10
|
import { useNav } from '../Nav/context.js';
|
|
11
|
-
const AnimateHeight = AnimateHeightImport.default || AnimateHeightImport;
|
|
12
11
|
const baseClass = 'nav-group';
|
|
13
12
|
const preferencesKey = 'nav';
|
|
14
13
|
export const NavGroup = t0 => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["c","_c","React","useState","
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","React","useState","ChevronIcon","usePreferences","AnimateHeight","useNav","baseClass","preferencesKey","NavGroup","t0","$","children","isOpen","isOpenFromProps","label","collapsed","setCollapsed","animate","setAnimate","setPreference","navOpen","t1","newGroupPrefs","open","Boolean","groups","toggleCollapsed","t2","t3","t4","filter","t5","join","t6","t7","t8","t9","t10","t11","_jsxs","className","id","onClick","tabIndex","type","_jsx","direction","undefined","duration","height","Fragment"],"sources":["../../../src/elements/NavGroup/index.tsx"],"sourcesContent":["'use client'\nimport type { NavPreferences } from 'payload'\n\nimport React, { useState } from 'react'\n\nimport { ChevronIcon } from '../../icons/Chevron/index.js'\nimport { usePreferences } from '../../providers/Preferences/index.js'\nimport './index.scss'\nimport { AnimateHeight } from '../AnimateHeight/index.js'\nimport { useNav } from '../Nav/context.js'\n\nconst baseClass = 'nav-group'\n\ntype Props = {\n children: React.ReactNode\n isOpen?: boolean\n label: string\n}\n\nconst preferencesKey = 'nav'\n\nexport const NavGroup: React.FC<Props> = ({ children, isOpen: isOpenFromProps, label }) => {\n const [collapsed, setCollapsed] = useState(\n typeof isOpenFromProps !== 'undefined' ? !isOpenFromProps : false,\n )\n\n const [animate, setAnimate] = useState(false)\n const { setPreference } = usePreferences()\n const { navOpen } = useNav()\n\n if (label) {\n const toggleCollapsed = () => {\n setAnimate(true)\n const newGroupPrefs: NavPreferences['groups'] = {}\n\n if (!newGroupPrefs?.[label]) {\n newGroupPrefs[label] = { open: Boolean(collapsed) }\n } else {\n newGroupPrefs[label].open = Boolean(collapsed)\n }\n\n void setPreference(preferencesKey, { groups: newGroupPrefs }, true)\n setCollapsed(!collapsed)\n }\n\n return (\n <div\n className={[`${baseClass}`, `${label}`, collapsed && `${baseClass}--collapsed`]\n .filter(Boolean)\n .join(' ')}\n id={`nav-group-${label}`}\n >\n <button\n className={[\n `${baseClass}__toggle`,\n `${baseClass}__toggle--${collapsed ? 'collapsed' : 'open'}`,\n ]\n .filter(Boolean)\n .join(' ')}\n onClick={toggleCollapsed}\n tabIndex={!navOpen ? -1 : 0}\n type=\"button\"\n >\n <div className={`${baseClass}__label`}>{label}</div>\n <div className={`${baseClass}__indicator`}>\n <ChevronIcon\n className={`${baseClass}__indicator`}\n direction={!collapsed ? 'up' : undefined}\n />\n </div>\n </button>\n <AnimateHeight duration={animate ? 200 : 0} height={collapsed ? 0 : 'auto'}>\n <div className={`${baseClass}__content`}>{children}</div>\n </AnimateHeight>\n </div>\n )\n }\n\n return <React.Fragment>{children}</React.Fragment>\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/ReactSelect/index.tsx"],"names":[],"mappings":"AAKA,OAAO,KAA2B,MAAM,OAAO,CAAA;AAI/C,OAAO,KAAK,EAAU,uBAAuB,EAAE,MAAM,YAAY,CAAA;AACjE,YAAY,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAQxC,OAAO,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/ReactSelect/index.tsx"],"names":[],"mappings":"AAKA,OAAO,KAA2B,MAAM,OAAO,CAAA;AAI/C,OAAO,KAAK,EAAU,uBAAuB,EAAE,MAAM,YAAY,CAAA;AACjE,YAAY,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAQxC,OAAO,cAAc,CAAA;AAiNrB,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAQzD,CAAA"}
|
|
@@ -58,6 +58,15 @@ const SelectAdapter = props => {
|
|
|
58
58
|
} = props;
|
|
59
59
|
const loadingMessage = () => t('general:loading') + '...';
|
|
60
60
|
const classes = [className, 'react-select', showError && 'react-select--error'].filter(Boolean).join(' ');
|
|
61
|
+
const styles = {
|
|
62
|
+
// Remove the default react-select z-index from the menu so that our custom
|
|
63
|
+
// z-index in the "payload-default" css layer can take effect, in such a way
|
|
64
|
+
// that end users can easily override it as with other styles.
|
|
65
|
+
menu: rsStyles => ({
|
|
66
|
+
...rsStyles,
|
|
67
|
+
zIndex: undefined
|
|
68
|
+
})
|
|
69
|
+
};
|
|
61
70
|
if (!hasMounted) {
|
|
62
71
|
return /*#__PURE__*/_jsx(ShimmerEffect, {
|
|
63
72
|
height: "calc(var(--base) * 2 + 2px)"
|
|
@@ -97,6 +106,7 @@ const SelectAdapter = props => {
|
|
|
97
106
|
onMenuClose: onMenuClose,
|
|
98
107
|
onMenuOpen: onMenuOpen,
|
|
99
108
|
options: options,
|
|
109
|
+
styles: styles,
|
|
100
110
|
unstyled: true,
|
|
101
111
|
value: value
|
|
102
112
|
});
|
|
@@ -162,6 +172,7 @@ const SelectAdapter = props => {
|
|
|
162
172
|
onMenuClose: onMenuClose,
|
|
163
173
|
onMenuOpen: onMenuOpen,
|
|
164
174
|
options: options,
|
|
175
|
+
styles: styles,
|
|
165
176
|
unstyled: true,
|
|
166
177
|
value: value
|
|
167
178
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["arrayMove","getTranslation","React","useEffect","useId","Select","CreatableSelect","useTranslation","DraggableSortable","ShimmerEffect","ClearIndicator","Control","DropdownIndicator","Input","generateMultiValueDraggableID","MultiValue","MultiValueLabel","MultiValueRemove","SingleValue","ValueContainer","createOption","label","value","SelectAdapter","props","i18n","t","inputValue","setInputValue","useState","uuid","hasMounted","setHasMounted","className","components","customProps","disabled","filterOption","undefined","getOptionValue","isClearable","isCreatable","isLoading","isSearchable","noOptionsMessage","numberOnly","onChange","onMenuClose","onMenuOpen","options","placeholder","showError","loadingMessage","classes","filter","Boolean","join","_jsx","height","captureMenuScroll","classNamePrefix","instanceId","isDisabled","menuPlacement","unstyled","handleKeyDown","event","acceptableKeys","isNumber","test","key","isActionKey","includes","preventDefault","trim","onInputChange","newValue","onKeyDown","SortableSelect","draggableIDs","Array","isArray","map","optionValue","ids","onDragEnd","moveFromIndex","moveToIndex","sorted","ReactSelect","isMulti","isSortable"],"sources":["../../../src/elements/ReactSelect/index.tsx"],"sourcesContent":["'use client'\nimport type { KeyboardEventHandler } from 'react'\n\nimport { arrayMove } from '@dnd-kit/sortable'\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { useEffect, useId } from 'react'\nimport Select from 'react-select'\nimport CreatableSelect from 'react-select/creatable'\n\nimport type { Option, ReactSelectAdapterProps } from './types.js'\nexport type { Option } from './types.js'\n\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { DraggableSortable } from '../DraggableSortable/index.js'\nimport { ShimmerEffect } from '../ShimmerEffect/index.js'\nimport { ClearIndicator } from './ClearIndicator/index.js'\nimport { Control } from './Control/index.js'\nimport { DropdownIndicator } from './DropdownIndicator/index.js'\nimport './index.scss'\nimport { Input } from './Input/index.js'\nimport { generateMultiValueDraggableID, MultiValue } from './MultiValue/index.js'\nimport { MultiValueLabel } from './MultiValueLabel/index.js'\nimport { MultiValueRemove } from './MultiValueRemove/index.js'\nimport { SingleValue } from './SingleValue/index.js'\nimport { ValueContainer } from './ValueContainer/index.js'\n\nconst createOption = (label: string) => ({\n label,\n value: label,\n})\n\nconst SelectAdapter: React.FC<ReactSelectAdapterProps> = (props) => {\n const { i18n, t } = useTranslation()\n const [inputValue, setInputValue] = React.useState('') // for creatable select\n const uuid = useId()\n const [hasMounted, setHasMounted] = React.useState(false)\n\n useEffect(() => {\n setHasMounted(true)\n }, [])\n\n const {\n className,\n components,\n customProps,\n disabled = false,\n filterOption = undefined,\n getOptionValue,\n isClearable = true,\n isCreatable,\n isLoading,\n isSearchable = true,\n noOptionsMessage = () => t('general:noOptions'),\n numberOnly = false,\n onChange,\n onMenuClose,\n onMenuOpen,\n options,\n placeholder = t('general:selectValue'),\n showError,\n value,\n } = props\n\n const loadingMessage = () => t('general:loading') + '...'\n\n const classes = [className, 'react-select', showError && 'react-select--error']\n .filter(Boolean)\n .join(' ')\n\n if (!hasMounted) {\n return <ShimmerEffect height=\"calc(var(--base) * 2 + 2px)\" />\n }\n\n if (!isCreatable) {\n return (\n <Select\n captureMenuScroll\n customProps={customProps}\n isLoading={isLoading}\n placeholder={getTranslation(placeholder, i18n)}\n {...props}\n className={classes}\n classNamePrefix=\"rs\"\n components={{\n ClearIndicator,\n Control,\n DropdownIndicator,\n Input,\n MultiValue,\n MultiValueLabel,\n MultiValueRemove,\n SingleValue,\n ValueContainer,\n ...components,\n }}\n filterOption={filterOption}\n getOptionValue={getOptionValue}\n instanceId={uuid}\n isClearable={isClearable}\n isDisabled={disabled}\n isSearchable={isSearchable}\n loadingMessage={loadingMessage}\n menuPlacement=\"auto\"\n noOptionsMessage={noOptionsMessage}\n onChange={onChange}\n onMenuClose={onMenuClose}\n onMenuOpen={onMenuOpen}\n options={options}\n unstyled={true}\n value={value}\n />\n )\n }\n const handleKeyDown: KeyboardEventHandler = (event) => {\n if (numberOnly === true) {\n const acceptableKeys = [\n 'Tab',\n 'Escape',\n 'Backspace',\n 'Enter',\n 'ArrowRight',\n 'ArrowLeft',\n 'ArrowUp',\n 'ArrowDown',\n ]\n const isNumber = !/\\D/.test(event.key)\n const isActionKey = acceptableKeys.includes(event.key)\n if (!isNumber && !isActionKey) {\n event.preventDefault()\n return\n }\n }\n if (!value || !inputValue || inputValue.trim() === '') {\n return\n }\n if (filterOption && !filterOption(null, inputValue)) {\n return\n }\n switch (event.key) {\n case 'Enter':\n case 'Tab':\n onChange([...(value as Option[]), createOption(inputValue)])\n setInputValue('')\n event.preventDefault()\n break\n default:\n break\n }\n }\n\n return (\n <CreatableSelect\n captureMenuScroll\n isLoading={isLoading}\n placeholder={getTranslation(placeholder, i18n)}\n {...props}\n className={classes}\n classNamePrefix=\"rs\"\n components={{\n ClearIndicator,\n Control,\n DropdownIndicator,\n Input,\n MultiValue,\n MultiValueLabel,\n MultiValueRemove,\n SingleValue,\n ValueContainer,\n ...components,\n }}\n filterOption={filterOption}\n inputValue={inputValue}\n instanceId={uuid}\n isClearable={isClearable}\n isDisabled={disabled}\n isSearchable={isSearchable}\n loadingMessage={loadingMessage}\n menuPlacement=\"auto\"\n noOptionsMessage={noOptionsMessage}\n onChange={onChange}\n onInputChange={(newValue) => setInputValue(newValue)}\n onKeyDown={handleKeyDown}\n onMenuClose={onMenuClose}\n onMenuOpen={onMenuOpen}\n options={options}\n unstyled={true}\n value={value}\n />\n )\n}\n\nconst SortableSelect: React.FC<ReactSelectAdapterProps> = (props) => {\n const { getOptionValue, onChange, value } = props\n\n let draggableIDs: string[] = []\n if (value) {\n draggableIDs = (Array.isArray(value) ? value : [value]).map((optionValue) => {\n return generateMultiValueDraggableID(optionValue, getOptionValue)\n })\n }\n\n return (\n <DraggableSortable\n className=\"react-select-container\"\n ids={draggableIDs}\n onDragEnd={({ moveFromIndex, moveToIndex }) => {\n let sorted = value\n if (value && Array.isArray(value)) {\n sorted = arrayMove(value, moveFromIndex, moveToIndex)\n }\n onChange(sorted)\n }}\n >\n <SelectAdapter {...props} />\n </DraggableSortable>\n )\n}\n\nexport const ReactSelect: React.FC<ReactSelectAdapterProps> = (props) => {\n const { isMulti, isSortable } = props\n\n if (isMulti && isSortable) {\n return <SortableSelect {...props} />\n }\n\n return <SelectAdapter {...props} />\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["arrayMove","getTranslation","React","useEffect","useId","Select","CreatableSelect","useTranslation","DraggableSortable","ShimmerEffect","ClearIndicator","Control","DropdownIndicator","Input","generateMultiValueDraggableID","MultiValue","MultiValueLabel","MultiValueRemove","SingleValue","ValueContainer","createOption","label","value","SelectAdapter","props","i18n","t","inputValue","setInputValue","useState","uuid","hasMounted","setHasMounted","className","components","customProps","disabled","filterOption","undefined","getOptionValue","isClearable","isCreatable","isLoading","isSearchable","noOptionsMessage","numberOnly","onChange","onMenuClose","onMenuOpen","options","placeholder","showError","loadingMessage","classes","filter","Boolean","join","styles","menu","rsStyles","zIndex","_jsx","height","captureMenuScroll","classNamePrefix","instanceId","isDisabled","menuPlacement","unstyled","handleKeyDown","event","acceptableKeys","isNumber","test","key","isActionKey","includes","preventDefault","trim","onInputChange","newValue","onKeyDown","SortableSelect","draggableIDs","Array","isArray","map","optionValue","ids","onDragEnd","moveFromIndex","moveToIndex","sorted","ReactSelect","isMulti","isSortable"],"sources":["../../../src/elements/ReactSelect/index.tsx"],"sourcesContent":["'use client'\nimport type { CSSProperties, KeyboardEventHandler } from 'react'\n\nimport { arrayMove } from '@dnd-kit/sortable'\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { useEffect, useId } from 'react'\nimport Select from 'react-select'\nimport CreatableSelect from 'react-select/creatable'\n\nimport type { Option, ReactSelectAdapterProps } from './types.js'\nexport type { Option } from './types.js'\n\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { DraggableSortable } from '../DraggableSortable/index.js'\nimport { ShimmerEffect } from '../ShimmerEffect/index.js'\nimport { ClearIndicator } from './ClearIndicator/index.js'\nimport { Control } from './Control/index.js'\nimport { DropdownIndicator } from './DropdownIndicator/index.js'\nimport './index.scss'\nimport { Input } from './Input/index.js'\nimport { generateMultiValueDraggableID, MultiValue } from './MultiValue/index.js'\nimport { MultiValueLabel } from './MultiValueLabel/index.js'\nimport { MultiValueRemove } from './MultiValueRemove/index.js'\nimport { SingleValue } from './SingleValue/index.js'\nimport { ValueContainer } from './ValueContainer/index.js'\n\nconst createOption = (label: string) => ({\n label,\n value: label,\n})\n\nconst SelectAdapter: React.FC<ReactSelectAdapterProps> = (props) => {\n const { i18n, t } = useTranslation()\n const [inputValue, setInputValue] = React.useState('') // for creatable select\n const uuid = useId()\n const [hasMounted, setHasMounted] = React.useState(false)\n\n useEffect(() => {\n setHasMounted(true)\n }, [])\n\n const {\n className,\n components,\n customProps,\n disabled = false,\n filterOption = undefined,\n getOptionValue,\n isClearable = true,\n isCreatable,\n isLoading,\n isSearchable = true,\n noOptionsMessage = () => t('general:noOptions'),\n numberOnly = false,\n onChange,\n onMenuClose,\n onMenuOpen,\n options,\n placeholder = t('general:selectValue'),\n showError,\n value,\n } = props\n\n const loadingMessage = () => t('general:loading') + '...'\n\n const classes = [className, 'react-select', showError && 'react-select--error']\n .filter(Boolean)\n .join(' ')\n\n const styles = {\n // Remove the default react-select z-index from the menu so that our custom\n // z-index in the \"payload-default\" css layer can take effect, in such a way\n // that end users can easily override it as with other styles.\n menu: (rsStyles: CSSProperties): CSSProperties => ({ ...rsStyles, zIndex: undefined }),\n }\n\n if (!hasMounted) {\n return <ShimmerEffect height=\"calc(var(--base) * 2 + 2px)\" />\n }\n\n if (!isCreatable) {\n return (\n <Select\n captureMenuScroll\n customProps={customProps}\n isLoading={isLoading}\n placeholder={getTranslation(placeholder, i18n)}\n {...props}\n className={classes}\n classNamePrefix=\"rs\"\n components={{\n ClearIndicator,\n Control,\n DropdownIndicator,\n Input,\n MultiValue,\n MultiValueLabel,\n MultiValueRemove,\n SingleValue,\n ValueContainer,\n ...components,\n }}\n filterOption={filterOption}\n getOptionValue={getOptionValue}\n instanceId={uuid}\n isClearable={isClearable}\n isDisabled={disabled}\n isSearchable={isSearchable}\n loadingMessage={loadingMessage}\n menuPlacement=\"auto\"\n noOptionsMessage={noOptionsMessage}\n onChange={onChange}\n onMenuClose={onMenuClose}\n onMenuOpen={onMenuOpen}\n options={options}\n styles={styles}\n unstyled={true}\n value={value}\n />\n )\n }\n const handleKeyDown: KeyboardEventHandler = (event) => {\n if (numberOnly === true) {\n const acceptableKeys = [\n 'Tab',\n 'Escape',\n 'Backspace',\n 'Enter',\n 'ArrowRight',\n 'ArrowLeft',\n 'ArrowUp',\n 'ArrowDown',\n ]\n const isNumber = !/\\D/.test(event.key)\n const isActionKey = acceptableKeys.includes(event.key)\n if (!isNumber && !isActionKey) {\n event.preventDefault()\n return\n }\n }\n if (!value || !inputValue || inputValue.trim() === '') {\n return\n }\n if (filterOption && !filterOption(null, inputValue)) {\n return\n }\n switch (event.key) {\n case 'Enter':\n case 'Tab':\n onChange([...(value as Option[]), createOption(inputValue)])\n setInputValue('')\n event.preventDefault()\n break\n default:\n break\n }\n }\n\n return (\n <CreatableSelect\n captureMenuScroll\n isLoading={isLoading}\n placeholder={getTranslation(placeholder, i18n)}\n {...props}\n className={classes}\n classNamePrefix=\"rs\"\n components={{\n ClearIndicator,\n Control,\n DropdownIndicator,\n Input,\n MultiValue,\n MultiValueLabel,\n MultiValueRemove,\n SingleValue,\n ValueContainer,\n ...components,\n }}\n filterOption={filterOption}\n inputValue={inputValue}\n instanceId={uuid}\n isClearable={isClearable}\n isDisabled={disabled}\n isSearchable={isSearchable}\n loadingMessage={loadingMessage}\n menuPlacement=\"auto\"\n noOptionsMessage={noOptionsMessage}\n onChange={onChange}\n onInputChange={(newValue) => setInputValue(newValue)}\n onKeyDown={handleKeyDown}\n onMenuClose={onMenuClose}\n onMenuOpen={onMenuOpen}\n options={options}\n styles={styles}\n unstyled={true}\n value={value}\n />\n )\n}\n\nconst SortableSelect: React.FC<ReactSelectAdapterProps> = (props) => {\n const { getOptionValue, onChange, value } = props\n\n let draggableIDs: string[] = []\n if (value) {\n draggableIDs = (Array.isArray(value) ? value : [value]).map((optionValue) => {\n return generateMultiValueDraggableID(optionValue, getOptionValue)\n })\n }\n\n return (\n <DraggableSortable\n className=\"react-select-container\"\n ids={draggableIDs}\n onDragEnd={({ moveFromIndex, moveToIndex }) => {\n let sorted = value\n if (value && Array.isArray(value)) {\n sorted = arrayMove(value, moveFromIndex, moveToIndex)\n }\n onChange(sorted)\n }}\n >\n <SelectAdapter {...props} />\n </DraggableSortable>\n )\n}\n\nexport const ReactSelect: React.FC<ReactSelectAdapterProps> = (props) => {\n const { isMulti, isSortable } = props\n\n if (isMulti && isSortable) {\n return <SortableSelect {...props} />\n }\n\n return <SelectAdapter {...props} />\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/RelationshipTable/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,eAAe,EAEf,aAAa,EACb,KAAK,EACN,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/RelationshipTable/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,eAAe,EAEf,aAAa,EACb,KAAK,EACN,MAAM,SAAS,CAAA;AAGhB,OAAO,KAA0C,MAAM,OAAO,CAAA;AAE9D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAkBrE,OAAO,cAAc,CAAA;AAMrB,KAAK,+BAA+B,GAAG;IACrC,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAA;IAC9B,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAA;IAC/B,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAA;IAC/B,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,CAAA;IAC9B,QAAQ,CAAC,WAAW,CAAC,EAAE,aAAa,CAAA;IACpC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,mBAAmB,CAAC,aAAa,CAAC,CAAA;IAC/D,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAChC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;CAC5B,CAAA;AAED,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,+BAA+B,CAmNvE,CAAA"}
|
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
3
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
4
|
-
import React, { Fragment, useCallback, useState } from 'react';
|
|
5
|
-
import AnimateHeightImport from 'react-animate-height';
|
|
6
|
-
const AnimateHeight = AnimateHeightImport.default || AnimateHeightImport;
|
|
7
4
|
import { getTranslation } from '@payloadcms/translations';
|
|
5
|
+
import React, { Fragment, useCallback, useState } from 'react';
|
|
8
6
|
import { Button } from '../../elements/Button/index.js';
|
|
9
7
|
import { Pill } from '../../elements/Pill/index.js';
|
|
10
8
|
import { useIgnoredEffect } from '../../hooks/useIgnoredEffect.js';
|
|
@@ -15,12 +13,13 @@ import { ListQueryProvider } from '../../providers/ListQuery/index.js';
|
|
|
15
13
|
import { useServerFunctions } from '../../providers/ServerFunctions/index.js';
|
|
16
14
|
import { useTranslation } from '../../providers/Translation/index.js';
|
|
17
15
|
import { hoistQueryParamsToAnd } from '../../utilities/mergeListSearchAndWhere.js';
|
|
16
|
+
import { AnimateHeight } from '../AnimateHeight/index.js';
|
|
18
17
|
import { ColumnSelector } from '../ColumnSelector/index.js';
|
|
19
18
|
import { useDocumentDrawer } from '../DocumentDrawer/index.js';
|
|
20
19
|
import { RelationshipProvider } from '../Table/RelationshipProvider/index.js';
|
|
21
20
|
import { TableColumnsProvider } from '../TableColumns/index.js';
|
|
22
|
-
import { DrawerLink } from './cells/DrawerLink/index.js';
|
|
23
21
|
import './index.scss';
|
|
22
|
+
import { DrawerLink } from './cells/DrawerLink/index.js';
|
|
24
23
|
import { RelationshipTablePagination } from './Pagination.js';
|
|
25
24
|
const baseClass = 'relationship-table';
|
|
26
25
|
export const RelationshipTable = props => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["React","Fragment","useCallback","useState","AnimateHeightImport","AnimateHeight","default","getTranslation","Button","Pill","useIgnoredEffect","ChevronIcon","useAuth","useConfig","ListQueryProvider","useServerFunctions","useTranslation","hoistQueryParamsToAnd","ColumnSelector","useDocumentDrawer","RelationshipProvider","TableColumnsProvider","DrawerLink","RelationshipTablePagination","baseClass","RelationshipTable","props","allowCreate","disableTable","filterOptions","initialData","initialDataFromProps","initialDrawerData","Label","relationTo","Table","setTable","getEntityConfig","permissions","docs","Array","isArray","reduce","acc","doc","id","i18n","t","query","setQuery","openColumnSelector","setOpenColumnSelector","collectionConfig","collectionSlug","isLoadingTable","setIsLoadingTable","data","setData","columnState","setColumnState","getTableState","renderTable","newQuery","where","newData","state","newColumnState","NewTable","enableRowSelections","renderRowTypes","tableAppearance","DocumentDrawer","DocumentDrawerToggler","closeDrawer","openDrawer","onDrawerSave","args","foundDocIndex","findIndex","withNewOrUpdatedDoc","undefined","newDocs","onDrawerCreate","preferenceKey","canCreate","collections","create","_jsxs","className","_jsx","icon","direction","onClick","pillStyle","length","label","labels","plural","singular","defaultLimit","admin","pagination","modifySearchParams","onQueryChange","LinkedCellOverride","sortColumnProps","appearance","height","slug","onSave"],"sources":["../../../src/elements/RelationshipTable/index.tsx"],"sourcesContent":["'use client'\nimport type {\n ClientCollectionConfig,\n JoinFieldClient,\n ListQuery,\n PaginatedDocs,\n Where,\n} from 'payload'\n\nimport React, { Fragment, useCallback, useState } from 'react'\nimport AnimateHeightImport from 'react-animate-height'\n\nconst AnimateHeight = AnimateHeightImport.default || AnimateHeightImport\n\nimport { getTranslation } from '@payloadcms/translations'\n\nimport type { DocumentDrawerProps } from '../DocumentDrawer/types.js'\nimport type { Column } from '../Table/index.js'\n\nimport { Button } from '../../elements/Button/index.js'\nimport { Pill } from '../../elements/Pill/index.js'\nimport { useIgnoredEffect } from '../../hooks/useIgnoredEffect.js'\nimport { ChevronIcon } from '../../icons/Chevron/index.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { ListQueryProvider } from '../../providers/ListQuery/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { hoistQueryParamsToAnd } from '../../utilities/mergeListSearchAndWhere.js'\nimport { ColumnSelector } from '../ColumnSelector/index.js'\nimport { useDocumentDrawer } from '../DocumentDrawer/index.js'\nimport { RelationshipProvider } from '../Table/RelationshipProvider/index.js'\nimport { TableColumnsProvider } from '../TableColumns/index.js'\nimport { DrawerLink } from './cells/DrawerLink/index.js'\nimport './index.scss'\nimport { RelationshipTablePagination } from './Pagination.js'\n\nconst baseClass = 'relationship-table'\n\ntype RelationshipTableComponentProps = {\n readonly allowCreate?: boolean\n readonly disableTable?: boolean\n readonly field: JoinFieldClient\n readonly filterOptions?: Where\n readonly initialData?: PaginatedDocs\n readonly initialDrawerData?: DocumentDrawerProps['initialData']\n readonly Label?: React.ReactNode\n readonly relationTo: string\n}\n\nexport const RelationshipTable: React.FC<RelationshipTableComponentProps> = (props) => {\n const {\n allowCreate = true,\n disableTable = false,\n filterOptions,\n initialData: initialDataFromProps,\n initialDrawerData,\n Label,\n relationTo,\n } = props\n const [Table, setTable] = useState<React.ReactNode>(null)\n\n const { getEntityConfig } = useConfig()\n\n const { permissions } = useAuth()\n\n const [initialData] = useState<PaginatedDocs>(() => {\n if (initialDataFromProps) {\n return {\n ...initialDataFromProps,\n docs: Array.isArray(initialDataFromProps.docs)\n ? initialDataFromProps.docs.reduce((acc, doc) => {\n if (typeof doc === 'string') {\n return [\n ...acc,\n {\n id: doc,\n },\n ]\n }\n return [...acc, doc]\n }, [])\n : [],\n }\n }\n })\n\n const { i18n, t } = useTranslation()\n\n const [query, setQuery] = useState<ListQuery>()\n const [openColumnSelector, setOpenColumnSelector] = useState(false)\n\n const [collectionConfig] = useState(\n () => getEntityConfig({ collectionSlug: relationTo }) as ClientCollectionConfig,\n )\n\n const [isLoadingTable, setIsLoadingTable] = useState(true)\n const [data, setData] = useState<PaginatedDocs>(initialData)\n const [columnState, setColumnState] = useState<Column[]>()\n\n const { getTableState } = useServerFunctions()\n\n const renderTable = useCallback(\n async (docs?: PaginatedDocs['docs']) => {\n const newQuery: ListQuery = {\n ...(query || {}),\n where: { ...(query?.where || {}) },\n }\n\n if (filterOptions) {\n newQuery.where = hoistQueryParamsToAnd(newQuery.where, filterOptions)\n }\n\n const {\n data: newData,\n state: newColumnState,\n Table: NewTable,\n } = await getTableState({\n collectionSlug: relationTo,\n docs,\n enableRowSelections: false,\n query: newQuery,\n renderRowTypes: true,\n tableAppearance: 'condensed',\n })\n\n setData(newData)\n setTable(NewTable)\n setColumnState(newColumnState)\n setIsLoadingTable(false)\n },\n [getTableState, relationTo, filterOptions, query],\n )\n\n useIgnoredEffect(\n () => {\n if (!disableTable && (!Table || query)) {\n void renderTable()\n }\n },\n [query, disableTable],\n [Table, renderTable],\n )\n\n const [DocumentDrawer, DocumentDrawerToggler, { closeDrawer, openDrawer }] = useDocumentDrawer({\n collectionSlug: relationTo,\n })\n\n const onDrawerSave = useCallback<DocumentDrawerProps['onSave']>(\n (args) => {\n const foundDocIndex = data?.docs?.findIndex((doc) => doc.id === args.doc.id)\n let withNewOrUpdatedDoc: PaginatedDocs['docs'] = undefined\n\n if (foundDocIndex !== -1) {\n const newDocs = [...data.docs]\n newDocs[foundDocIndex] = args.doc\n withNewOrUpdatedDoc = newDocs\n } else {\n withNewOrUpdatedDoc = [args.doc, ...data.docs]\n }\n\n void renderTable(withNewOrUpdatedDoc)\n },\n [data.docs, renderTable],\n )\n\n const onDrawerCreate = useCallback<DocumentDrawerProps['onSave']>(\n (args) => {\n closeDrawer()\n void onDrawerSave(args)\n },\n [closeDrawer, onDrawerSave],\n )\n\n const preferenceKey = `${relationTo}-list`\n\n const canCreate = allowCreate !== false && permissions?.collections?.[relationTo]?.create\n\n return (\n <div className={baseClass}>\n <div className={`${baseClass}__header`}>\n {Label}\n <div className={`${baseClass}__actions`}>\n {canCreate && <DocumentDrawerToggler>{i18n.t('fields:addNew')}</DocumentDrawerToggler>}\n <Pill\n aria-controls={`${baseClass}-columns`}\n aria-expanded={openColumnSelector}\n className={`${baseClass}__toggle-columns ${\n openColumnSelector ? `${baseClass}__buttons-active` : ''\n }`}\n icon={<ChevronIcon direction={openColumnSelector ? 'up' : 'down'} />}\n onClick={() => setOpenColumnSelector(!openColumnSelector)}\n pillStyle=\"light\"\n >\n {t('general:columns')}\n </Pill>\n </div>\n </div>\n {isLoadingTable ? (\n <p>{t('general:loading')}</p>\n ) : (\n <Fragment>\n {data.docs && data.docs.length === 0 && (\n <div className={`${baseClass}__no-results`}>\n <p>\n {i18n.t('general:noResults', {\n label: getTranslation(collectionConfig?.labels?.plural, i18n),\n })}\n </p>\n {canCreate && (\n <Button onClick={openDrawer}>\n {i18n.t('general:createNewLabel', {\n label: getTranslation(collectionConfig?.labels?.singular, i18n),\n })}\n </Button>\n )}\n </div>\n )}\n {data.docs && data.docs.length > 0 && (\n <RelationshipProvider>\n <ListQueryProvider\n collectionSlug={relationTo}\n data={data}\n defaultLimit={collectionConfig?.admin?.pagination?.defaultLimit}\n modifySearchParams={false}\n onQueryChange={setQuery}\n preferenceKey={preferenceKey}\n >\n <TableColumnsProvider\n collectionSlug={relationTo}\n columnState={columnState}\n docs={data.docs}\n LinkedCellOverride={<DrawerLink onDrawerSave={onDrawerSave} />}\n preferenceKey={preferenceKey}\n renderRowTypes\n setTable={setTable}\n sortColumnProps={{\n appearance: 'condensed',\n }}\n tableAppearance=\"condensed\"\n >\n {/* @ts-expect-error TODO: get this CJS import to work, eslint keeps removing the type assertion */}\n <AnimateHeight\n className={`${baseClass}__columns`}\n height={openColumnSelector ? 'auto' : 0}\n id={`${baseClass}-columns`}\n >\n <div className={`${baseClass}__columns-inner`}>\n <ColumnSelector collectionSlug={collectionConfig.slug} />\n </div>\n </AnimateHeight>\n {Table}\n <RelationshipTablePagination />\n </TableColumnsProvider>\n </ListQueryProvider>\n </RelationshipProvider>\n )}\n </Fragment>\n )}\n <DocumentDrawer initialData={initialDrawerData} onSave={onDrawerCreate} />\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["getTranslation","React","Fragment","useCallback","useState","Button","Pill","useIgnoredEffect","ChevronIcon","useAuth","useConfig","ListQueryProvider","useServerFunctions","useTranslation","hoistQueryParamsToAnd","AnimateHeight","ColumnSelector","useDocumentDrawer","RelationshipProvider","TableColumnsProvider","DrawerLink","RelationshipTablePagination","baseClass","RelationshipTable","props","allowCreate","disableTable","filterOptions","initialData","initialDataFromProps","initialDrawerData","Label","relationTo","Table","setTable","getEntityConfig","permissions","docs","Array","isArray","reduce","acc","doc","id","i18n","t","query","setQuery","openColumnSelector","setOpenColumnSelector","collectionConfig","collectionSlug","isLoadingTable","setIsLoadingTable","data","setData","columnState","setColumnState","getTableState","renderTable","newQuery","where","newData","state","newColumnState","NewTable","enableRowSelections","renderRowTypes","tableAppearance","DocumentDrawer","DocumentDrawerToggler","closeDrawer","openDrawer","onDrawerSave","args","foundDocIndex","findIndex","withNewOrUpdatedDoc","undefined","newDocs","onDrawerCreate","preferenceKey","canCreate","collections","create","_jsxs","className","_jsx","icon","direction","onClick","pillStyle","length","label","labels","plural","singular","defaultLimit","admin","pagination","modifySearchParams","onQueryChange","LinkedCellOverride","sortColumnProps","appearance","height","slug","onSave"],"sources":["../../../src/elements/RelationshipTable/index.tsx"],"sourcesContent":["'use client'\nimport type {\n ClientCollectionConfig,\n JoinFieldClient,\n ListQuery,\n PaginatedDocs,\n Where,\n} from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { Fragment, useCallback, useState } from 'react'\n\nimport type { DocumentDrawerProps } from '../DocumentDrawer/types.js'\nimport type { Column } from '../Table/index.js'\n\nimport { Button } from '../../elements/Button/index.js'\nimport { Pill } from '../../elements/Pill/index.js'\nimport { useIgnoredEffect } from '../../hooks/useIgnoredEffect.js'\nimport { ChevronIcon } from '../../icons/Chevron/index.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { ListQueryProvider } from '../../providers/ListQuery/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { hoistQueryParamsToAnd } from '../../utilities/mergeListSearchAndWhere.js'\nimport { AnimateHeight } from '../AnimateHeight/index.js'\nimport { ColumnSelector } from '../ColumnSelector/index.js'\nimport { useDocumentDrawer } from '../DocumentDrawer/index.js'\nimport { RelationshipProvider } from '../Table/RelationshipProvider/index.js'\nimport { TableColumnsProvider } from '../TableColumns/index.js'\nimport './index.scss'\nimport { DrawerLink } from './cells/DrawerLink/index.js'\nimport { RelationshipTablePagination } from './Pagination.js'\n\nconst baseClass = 'relationship-table'\n\ntype RelationshipTableComponentProps = {\n readonly allowCreate?: boolean\n readonly disableTable?: boolean\n readonly field: JoinFieldClient\n readonly filterOptions?: Where\n readonly initialData?: PaginatedDocs\n readonly initialDrawerData?: DocumentDrawerProps['initialData']\n readonly Label?: React.ReactNode\n readonly relationTo: string\n}\n\nexport const RelationshipTable: React.FC<RelationshipTableComponentProps> = (props) => {\n const {\n allowCreate = true,\n disableTable = false,\n filterOptions,\n initialData: initialDataFromProps,\n initialDrawerData,\n Label,\n relationTo,\n } = props\n const [Table, setTable] = useState<React.ReactNode>(null)\n\n const { getEntityConfig } = useConfig()\n\n const { permissions } = useAuth()\n\n const [initialData] = useState<PaginatedDocs>(() => {\n if (initialDataFromProps) {\n return {\n ...initialDataFromProps,\n docs: Array.isArray(initialDataFromProps.docs)\n ? initialDataFromProps.docs.reduce((acc, doc) => {\n if (typeof doc === 'string') {\n return [\n ...acc,\n {\n id: doc,\n },\n ]\n }\n return [...acc, doc]\n }, [])\n : [],\n }\n }\n })\n\n const { i18n, t } = useTranslation()\n\n const [query, setQuery] = useState<ListQuery>()\n const [openColumnSelector, setOpenColumnSelector] = useState(false)\n\n const [collectionConfig] = useState(\n () => getEntityConfig({ collectionSlug: relationTo }) as ClientCollectionConfig,\n )\n\n const [isLoadingTable, setIsLoadingTable] = useState(true)\n const [data, setData] = useState<PaginatedDocs>(initialData)\n const [columnState, setColumnState] = useState<Column[]>()\n\n const { getTableState } = useServerFunctions()\n\n const renderTable = useCallback(\n async (docs?: PaginatedDocs['docs']) => {\n const newQuery: ListQuery = {\n ...(query || {}),\n where: { ...(query?.where || {}) },\n }\n\n if (filterOptions) {\n newQuery.where = hoistQueryParamsToAnd(newQuery.where, filterOptions)\n }\n\n const {\n data: newData,\n state: newColumnState,\n Table: NewTable,\n } = await getTableState({\n collectionSlug: relationTo,\n docs,\n enableRowSelections: false,\n query: newQuery,\n renderRowTypes: true,\n tableAppearance: 'condensed',\n })\n\n setData(newData)\n setTable(NewTable)\n setColumnState(newColumnState)\n setIsLoadingTable(false)\n },\n [getTableState, relationTo, filterOptions, query],\n )\n\n useIgnoredEffect(\n () => {\n if (!disableTable && (!Table || query)) {\n void renderTable()\n }\n },\n [query, disableTable],\n [Table, renderTable],\n )\n\n const [DocumentDrawer, DocumentDrawerToggler, { closeDrawer, openDrawer }] = useDocumentDrawer({\n collectionSlug: relationTo,\n })\n\n const onDrawerSave = useCallback<DocumentDrawerProps['onSave']>(\n (args) => {\n const foundDocIndex = data?.docs?.findIndex((doc) => doc.id === args.doc.id)\n let withNewOrUpdatedDoc: PaginatedDocs['docs'] = undefined\n\n if (foundDocIndex !== -1) {\n const newDocs = [...data.docs]\n newDocs[foundDocIndex] = args.doc\n withNewOrUpdatedDoc = newDocs\n } else {\n withNewOrUpdatedDoc = [args.doc, ...data.docs]\n }\n\n void renderTable(withNewOrUpdatedDoc)\n },\n [data.docs, renderTable],\n )\n\n const onDrawerCreate = useCallback<DocumentDrawerProps['onSave']>(\n (args) => {\n closeDrawer()\n void onDrawerSave(args)\n },\n [closeDrawer, onDrawerSave],\n )\n\n const preferenceKey = `${relationTo}-list`\n\n const canCreate = allowCreate !== false && permissions?.collections?.[relationTo]?.create\n\n return (\n <div className={baseClass}>\n <div className={`${baseClass}__header`}>\n {Label}\n <div className={`${baseClass}__actions`}>\n {canCreate && <DocumentDrawerToggler>{i18n.t('fields:addNew')}</DocumentDrawerToggler>}\n <Pill\n aria-controls={`${baseClass}-columns`}\n aria-expanded={openColumnSelector}\n className={`${baseClass}__toggle-columns ${\n openColumnSelector ? `${baseClass}__buttons-active` : ''\n }`}\n icon={<ChevronIcon direction={openColumnSelector ? 'up' : 'down'} />}\n onClick={() => setOpenColumnSelector(!openColumnSelector)}\n pillStyle=\"light\"\n >\n {t('general:columns')}\n </Pill>\n </div>\n </div>\n {isLoadingTable ? (\n <p>{t('general:loading')}</p>\n ) : (\n <Fragment>\n {data.docs && data.docs.length === 0 && (\n <div className={`${baseClass}__no-results`}>\n <p>\n {i18n.t('general:noResults', {\n label: getTranslation(collectionConfig?.labels?.plural, i18n),\n })}\n </p>\n {canCreate && (\n <Button onClick={openDrawer}>\n {i18n.t('general:createNewLabel', {\n label: getTranslation(collectionConfig?.labels?.singular, i18n),\n })}\n </Button>\n )}\n </div>\n )}\n {data.docs && data.docs.length > 0 && (\n <RelationshipProvider>\n <ListQueryProvider\n collectionSlug={relationTo}\n data={data}\n defaultLimit={collectionConfig?.admin?.pagination?.defaultLimit}\n modifySearchParams={false}\n onQueryChange={setQuery}\n preferenceKey={preferenceKey}\n >\n <TableColumnsProvider\n collectionSlug={relationTo}\n columnState={columnState}\n docs={data.docs}\n LinkedCellOverride={<DrawerLink onDrawerSave={onDrawerSave} />}\n preferenceKey={preferenceKey}\n renderRowTypes\n setTable={setTable}\n sortColumnProps={{\n appearance: 'condensed',\n }}\n tableAppearance=\"condensed\"\n >\n <AnimateHeight\n className={`${baseClass}__columns`}\n height={openColumnSelector ? 'auto' : 0}\n id={`${baseClass}-columns`}\n >\n <div className={`${baseClass}__columns-inner`}>\n <ColumnSelector collectionSlug={collectionConfig.slug} />\n </div>\n </AnimateHeight>\n {Table}\n <RelationshipTablePagination />\n </TableColumnsProvider>\n </ListQueryProvider>\n </RelationshipProvider>\n )}\n </Fragment>\n )}\n <DocumentDrawer initialData={initialDrawerData} onSave={onDrawerCreate} />\n </div>\n )\n}\n"],"mappings":"AAAA;;;AASA,SAASA,cAAc,QAAQ;AAC/B,OAAOC,KAAA,IAASC,QAAQ,EAAEC,WAAW,EAAEC,QAAQ,QAAQ;AAKvD,SAASC,MAAM,QAAQ;AACvB,SAASC,IAAI,QAAQ;AACrB,SAASC,gBAAgB,QAAQ;AACjC,SAASC,WAAW,QAAQ;AAC5B,SAASC,OAAO,QAAQ;AACxB,SAASC,SAAS,QAAQ;AAC1B,SAASC,iBAAiB,QAAQ;AAClC,SAASC,kBAAkB,QAAQ;AACnC,SAASC,cAAc,QAAQ;AAC/B,SAASC,qBAAqB,QAAQ;AACtC,SAASC,aAAa,QAAQ;AAC9B,SAASC,cAAc,QAAQ;AAC/B,SAASC,iBAAiB,QAAQ;AAClC,SAASC,oBAAoB,QAAQ;AACrC,SAASC,oBAAoB,QAAQ;AACrC,OAAO;AACP,SAASC,UAAU,QAAQ;AAC3B,SAASC,2BAA2B,QAAQ;AAE5C,MAAMC,SAAA,GAAY;AAalB,OAAO,MAAMC,iBAAA,GAAgEC,KAAA;EAC3E,MAAM;IACJC,WAAA,GAAc,IAAI;IAClBC,YAAA,GAAe,KAAK;IACpBC,aAAa;IACbC,WAAA,EAAaC,oBAAoB;IACjCC,iBAAiB;IACjBC,KAAK;IACLC;EAAU,CACX,GAAGR,KAAA;EACJ,MAAM,CAACS,KAAA,EAAOC,QAAA,CAAS,GAAG9B,QAAA,CAA0B;EAEpD,MAAM;IAAE+B;EAAe,CAAE,GAAGzB,SAAA;EAE5B,MAAM;IAAE0B;EAAW,CAAE,GAAG3B,OAAA;EAExB,MAAM,CAACmB,WAAA,CAAY,GAAGxB,QAAA,CAAwB;IAC5C,IAAIyB,oBAAA,EAAsB;MACxB,OAAO;QACL,GAAGA,oBAAoB;QACvBQ,IAAA,EAAMC,KAAA,CAAMC,OAAO,CAACV,oBAAA,CAAqBQ,IAAI,IACzCR,oBAAA,CAAqBQ,IAAI,CAACG,MAAM,CAAC,CAACC,GAAA,EAAKC,GAAA;UACrC,IAAI,OAAOA,GAAA,KAAQ,UAAU;YAC3B,OAAO,C,GACFD,GAAA,EACH;cACEE,EAAA,EAAID;YACN,EACD;UACH;UACA,OAAO,C,GAAID,GAAA,EAAKC,GAAA,CAAI;QACtB,GAAG,EAAE,IACL;MACN;IACF;EACF;EAEA,MAAM;IAAEE,IAAI;IAAEC;EAAC,CAAE,GAAGhC,cAAA;EAEpB,MAAM,CAACiC,KAAA,EAAOC,QAAA,CAAS,GAAG3C,QAAA;EAC1B,MAAM,CAAC4C,kBAAA,EAAoBC,qBAAA,CAAsB,GAAG7C,QAAA,CAAS;EAE7D,MAAM,CAAC8C,gBAAA,CAAiB,GAAG9C,QAAA,CACzB,MAAM+B,eAAA,CAAgB;IAAEgB,cAAA,EAAgBnB;EAAW;EAGrD,MAAM,CAACoB,cAAA,EAAgBC,iBAAA,CAAkB,GAAGjD,QAAA,CAAS;EACrD,MAAM,CAACkD,IAAA,EAAMC,OAAA,CAAQ,GAAGnD,QAAA,CAAwBwB,WAAA;EAChD,MAAM,CAAC4B,WAAA,EAAaC,cAAA,CAAe,GAAGrD,QAAA;EAEtC,MAAM;IAAEsD;EAAa,CAAE,GAAG9C,kBAAA;EAE1B,MAAM+C,WAAA,GAAcxD,WAAA,CAClB,MAAOkC,IAAA;IACL,MAAMuB,QAAA,GAAsB;MAC1B,IAAId,KAAA,IAAS,CAAC,CAAC;MACfe,KAAA,EAAO;QAAE,IAAIf,KAAA,EAAOe,KAAA,IAAS,CAAC,CAAC;MAAE;IACnC;IAEA,IAAIlC,aAAA,EAAe;MACjBiC,QAAA,CAASC,KAAK,GAAG/C,qBAAA,CAAsB8C,QAAA,CAASC,KAAK,EAAElC,aAAA;IACzD;IAEA,MAAM;MACJ2B,IAAA,EAAMQ,OAAO;MACbC,KAAA,EAAOC,cAAc;MACrB/B,KAAA,EAAOgC;IAAQ,CAChB,GAAG,MAAMP,aAAA,CAAc;MACtBP,cAAA,EAAgBnB,UAAA;MAChBK,IAAA;MACA6B,mBAAA,EAAqB;MACrBpB,KAAA,EAAOc,QAAA;MACPO,cAAA,EAAgB;MAChBC,eAAA,EAAiB;IACnB;IAEAb,OAAA,CAAQO,OAAA;IACR5B,QAAA,CAAS+B,QAAA;IACTR,cAAA,CAAeO,cAAA;IACfX,iBAAA,CAAkB;EACpB,GACA,CAACK,aAAA,EAAe1B,UAAA,EAAYL,aAAA,EAAemB,KAAA,CAAM;EAGnDvC,gBAAA,CACE;IACE,IAAI,CAACmB,YAAA,KAAiB,CAACO,KAAA,IAASa,KAAI,GAAI;MACtC,KAAKa,WAAA;IACP;EACF,GACA,CAACb,KAAA,EAAOpB,YAAA,CAAa,EACrB,CAACO,KAAA,EAAO0B,WAAA,CAAY;EAGtB,MAAM,CAACU,cAAA,EAAgBC,qBAAA,EAAuB;IAAEC,WAAW;IAAEC;EAAU,CAAE,CAAC,GAAGvD,iBAAA,CAAkB;IAC7FkC,cAAA,EAAgBnB;EAClB;EAEA,MAAMyC,YAAA,GAAetE,WAAA,CAClBuE,IAAA;IACC,MAAMC,aAAA,GAAgBrB,IAAA,EAAMjB,IAAA,EAAMuC,SAAA,CAAWlC,KAAA,IAAQA,KAAA,CAAIC,EAAE,KAAK+B,IAAA,CAAKhC,GAAG,CAACC,EAAE;IAC3E,IAAIkC,mBAAA,GAA6CC,SAAA;IAEjD,IAAIH,aAAA,KAAkB,CAAC,GAAG;MACxB,MAAMI,OAAA,GAAU,C,GAAIzB,IAAA,CAAKjB,IAAI,CAAC;MAC9B0C,OAAO,CAACJ,aAAA,CAAc,GAAGD,IAAA,CAAKhC,GAAG;MACjCmC,mBAAA,GAAsBE,OAAA;IACxB,OAAO;MACLF,mBAAA,GAAsB,CAACH,IAAA,CAAKhC,GAAG,E,GAAKY,IAAA,CAAKjB,IAAI,CAAC;IAChD;IAEA,KAAKsB,WAAA,CAAYkB,mBAAA;EACnB,GACA,CAACvB,IAAA,CAAKjB,IAAI,EAAEsB,WAAA,CAAY;EAG1B,MAAMqB,cAAA,GAAiB7E,WAAA,CACpBuE,MAAA;IACCH,WAAA;IACA,KAAKE,YAAA,CAAaC,MAAA;EACpB,GACA,CAACH,WAAA,EAAaE,YAAA,CAAa;EAG7B,MAAMQ,aAAA,GAAgB,GAAGjD,UAAA,OAAiB;EAE1C,MAAMkD,SAAA,GAAYzD,WAAA,KAAgB,SAASW,WAAA,EAAa+C,WAAA,GAAcnD,UAAA,CAAW,EAAEoD,MAAA;EAEnF,oBACEC,KAAA,CAAC;IAAIC,SAAA,EAAWhE,SAAA;4BACd+D,KAAA,CAAC;MAAIC,SAAA,EAAW,GAAGhE,SAAA,UAAmB;iBACnCS,KAAA,E,aACDsD,KAAA,CAAC;QAAIC,SAAA,EAAW,GAAGhE,SAAA,WAAoB;mBACpC4D,SAAA,iBAAaK,IAAA,CAACjB,qBAAA;oBAAuB1B,IAAA,CAAKC,CAAC,CAAC;yBAC7C0C,IAAA,CAACjF,IAAA;UACC,iBAAe,GAAGgB,SAAA,UAAmB;UACrC,iBAAe0B,kBAAA;UACfsC,SAAA,EAAW,GAAGhE,SAAA,oBACZ0B,kBAAA,GAAqB,GAAG1B,SAAA,kBAA2B,GAAG,IACtD;UACFkE,IAAA,eAAMD,IAAA,CAAC/E,WAAA;YAAYiF,SAAA,EAAWzC,kBAAA,GAAqB,OAAO;;UAC1D0C,OAAA,EAASA,CAAA,KAAMzC,qBAAA,CAAsB,CAACD,kBAAA;UACtC2C,SAAA,EAAU;oBAET9C,CAAA,CAAE;;;QAIRO,cAAA,gBACCmC,IAAA,CAAC;gBAAG1C,CAAA,CAAE;sBAENwC,KAAA,CAACnF,QAAA;iBACEoD,IAAA,CAAKjB,IAAI,IAAIiB,IAAA,CAAKjB,IAAI,CAACuD,MAAM,KAAK,kBACjCP,KAAA,CAAC;QAAIC,SAAA,EAAW,GAAGhE,SAAA,cAAuB;gCACxCiE,IAAA,CAAC;oBACE3C,IAAA,CAAKC,CAAC,CAAC,qBAAqB;YAC3BgD,KAAA,EAAO7F,cAAA,CAAekD,gBAAA,EAAkB4C,MAAA,EAAQC,MAAA,EAAQnD,IAAA;UAC1D;YAEDsC,SAAA,iBACCK,IAAA,CAAClF,MAAA;UAAOqF,OAAA,EAASlB,UAAA;oBACd5B,IAAA,CAAKC,CAAC,CAAC,0BAA0B;YAChCgD,KAAA,EAAO7F,cAAA,CAAekD,gBAAA,EAAkB4C,MAAA,EAAQE,QAAA,EAAUpD,IAAA;UAC5D;;UAKPU,IAAA,CAAKjB,IAAI,IAAIiB,IAAA,CAAKjB,IAAI,CAACuD,MAAM,GAAG,kBAC/BL,IAAA,CAACrE,oBAAA;kBACC,aAAAqE,IAAA,CAAC5E,iBAAA;UACCwC,cAAA,EAAgBnB,UAAA;UAChBsB,IAAA,EAAMA,IAAA;UACN2C,YAAA,EAAc/C,gBAAA,EAAkBgD,KAAA,EAAOC,UAAA,EAAYF,YAAA;UACnDG,kBAAA,EAAoB;UACpBC,aAAA,EAAetD,QAAA;UACfkC,aAAA,EAAeA,aAAA;oBAEf,aAAAI,KAAA,CAAClE,oBAAA;YACCgC,cAAA,EAAgBnB,UAAA;YAChBwB,WAAA,EAAaA,WAAA;YACbnB,IAAA,EAAMiB,IAAA,CAAKjB,IAAI;YACfiE,kBAAA,eAAoBf,IAAA,CAACnE,UAAA;cAAWqD,YAAA,EAAcA;;YAC9CQ,aAAA,EAAeA,aAAA;YACfd,cAAc;YACdjC,QAAA,EAAUA,QAAA;YACVqE,eAAA,EAAiB;cACfC,UAAA,EAAY;YACd;YACApC,eAAA,EAAgB;oCAEhBmB,IAAA,CAACxE,aAAA;cACCuE,SAAA,EAAW,GAAGhE,SAAA,WAAoB;cAClCmF,MAAA,EAAQzD,kBAAA,GAAqB,SAAS;cACtCL,EAAA,EAAI,GAAGrB,SAAA,UAAmB;wBAE1B,aAAAiE,IAAA,CAAC;gBAAID,SAAA,EAAW,GAAGhE,SAAA,iBAA0B;0BAC3C,aAAAiE,IAAA,CAACvE,cAAA;kBAAemC,cAAA,EAAgBD,gBAAA,CAAiBwD;;;gBAGpDzE,KAAA,E,aACDsD,IAAA,CAAClE,2BAAA;;;;qBAObkE,IAAA,CAAClB,cAAA;MAAezC,WAAA,EAAaE,iBAAA;MAAmB6E,MAAA,EAAQ3B;;;AAG9D","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/TableColumns/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAiD,MAAM,OAAO,CAAA;AAErE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAA;AAC3E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAO/C,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,kBAAkB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACpC,UAAU,EAAE,CAAC,IAAI,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC3E,iBAAiB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IACtC,gBAAgB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACtD,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CAChD;AAED,eAAO,MAAM,kBAAkB,8BAAoD,CAAA;AAEnF,eAAO,MAAM,eAAe,QAAO,aAA+C,CAAA;AAElF,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,EAAE,iBAAiB,CAAA;CAC3B,CAAA;AAED,KAAK,KAAK,GAAG;IACX,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IAClC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,CAAA;IAC9B,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,CAAA;IACpB,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAA;IACtC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC7C,QAAQ,CAAC,eAAe,CAAC,EAAE,eAAe,CAAA;IAC1C,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAA;IACjC,QAAQ,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,SAAS,KAAK,IAAI,CAAA;IACnD,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;IACnD,QAAQ,CAAC,eAAe,CAAC,EAAE,WAAW,GAAG,SAAS,CAAA;CACnD,CAAA;AAUD,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/TableColumns/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAiD,MAAM,OAAO,CAAA;AAErE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAA;AAC3E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAO/C,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,kBAAkB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACpC,UAAU,EAAE,CAAC,IAAI,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC3E,iBAAiB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IACtC,gBAAgB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACtD,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CAChD;AAED,eAAO,MAAM,kBAAkB,8BAAoD,CAAA;AAEnF,eAAO,MAAM,eAAe,QAAO,aAA+C,CAAA;AAElF,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,EAAE,iBAAiB,CAAA;CAC3B,CAAA;AAED,KAAK,KAAK,GAAG;IACX,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IAClC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,CAAA;IAC9B,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,CAAA;IACpB,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAA;IACtC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC7C,QAAQ,CAAC,eAAe,CAAC,EAAE,eAAe,CAAA;IAC1C,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAA;IACjC,QAAQ,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,SAAS,KAAK,IAAI,CAAA;IACnD,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;IACnD,QAAQ,CAAC,eAAe,CAAC,EAAE,WAAW,GAAG,SAAS,CAAA;CACnD,CAAA;AAUD,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAmPhD,CAAA"}
|
|
@@ -133,7 +133,7 @@ export const TableColumnsProvider = ({
|
|
|
133
133
|
accessor: col_0.accessor,
|
|
134
134
|
active: activeColumnAccessors.includes(col_0.accessor)
|
|
135
135
|
};
|
|
136
|
-
}).
|
|
136
|
+
}).sort((first, second) => {
|
|
137
137
|
const indexOfFirst = activeColumnAccessors.indexOf(first.accessor);
|
|
138
138
|
const indexOfSecond = activeColumnAccessors.indexOf(second.accessor);
|
|
139
139
|
if (indexOfFirst === -1 || indexOfSecond === -1) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["React","createContext","useCallback","useContext","useConfig","usePreferences","useServerFunctions","abortAndIgnore","TableColumnContext","useTableColumns","sanitizeColumns","columns","map","accessor","active","TableColumnsProvider","children","collectionSlug","columnState","docs","enableRowSelections","LinkedCellOverride","listPreferences","preferenceKey","renderRowTypes","setTable","sortColumnProps","tableAppearance","getEntityConfig","getTableState","admin","defaultColumns","useAsTitle","fields","prevCollection","useRef","getPreference","setPreference","tableColumns","setTableColumns","useState","tableStateControllerRef","moveColumn","args","current","fromIndex","toIndex","withMovedColumn","columnToMove","splice","controller","AbortController","result","signal","state","Table","toggleColumn","column","newColumnState","toggledColumns","reduce","acc","col","push","setActiveColumns","activeColumnAccessors","activeColumns","includes","toSorted","first","second","indexOfFirst","indexOf","indexOfSecond","resetColumnsState","useEffect","sync","collectionHasChanged","currentPreferences","_jsx","Provider","value"],"sources":["../../../src/elements/TableColumns/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig, SanitizedCollectionConfig } from 'payload'\n\nimport React, { createContext, useCallback, useContext } from 'react'\n\nimport type { ColumnPreferences } from '../../providers/ListQuery/index.js'\nimport type { SortColumnProps } from '../SortColumn/index.js'\nimport type { Column } from '../Table/index.js'\n\nimport { useConfig } from '../../providers/Config/index.js'\nimport { usePreferences } from '../../providers/Preferences/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { abortAndIgnore } from '../../utilities/abortAndIgnore.js'\n\nexport interface ITableColumns {\n columns: Column[]\n LinkedCellOverride?: React.ReactNode\n moveColumn: (args: { fromIndex: number; toIndex: number }) => Promise<void>\n resetColumnsState: () => Promise<void>\n setActiveColumns: (columns: string[]) => Promise<void>\n toggleColumn: (column: string) => Promise<void>\n}\n\nexport const TableColumnContext = createContext<ITableColumns>({} as ITableColumns)\n\nexport const useTableColumns = (): ITableColumns => useContext(TableColumnContext)\n\nexport type ListPreferences = {\n columns: ColumnPreferences\n}\n\ntype Props = {\n readonly children: React.ReactNode\n readonly collectionSlug: string\n readonly columnState: Column[]\n readonly docs: any[]\n readonly enableRowSelections?: boolean\n readonly LinkedCellOverride?: React.ReactNode\n readonly listPreferences?: ListPreferences\n readonly preferenceKey: string\n readonly renderRowTypes?: boolean\n readonly setTable: (Table: React.ReactNode) => void\n readonly sortColumnProps?: Partial<SortColumnProps>\n readonly tableAppearance?: 'condensed' | 'default'\n}\n\n// strip out Heading, Label, and renderedCells properties, they cannot be sent to the server\nconst sanitizeColumns = (columns: Column[]) => {\n return columns.map(({ accessor, active }) => ({\n accessor,\n active,\n }))\n}\n\nexport const TableColumnsProvider: React.FC<Props> = ({\n children,\n collectionSlug,\n columnState,\n docs,\n enableRowSelections,\n LinkedCellOverride,\n listPreferences,\n preferenceKey,\n renderRowTypes,\n setTable,\n sortColumnProps,\n tableAppearance,\n}) => {\n const { getEntityConfig } = useConfig()\n\n const { getTableState } = useServerFunctions()\n\n const { admin: { defaultColumns, useAsTitle } = {}, fields } = getEntityConfig({\n collectionSlug,\n }) as ClientCollectionConfig\n\n const prevCollection = React.useRef<SanitizedCollectionConfig['slug']>(collectionSlug)\n const { getPreference, setPreference } = usePreferences()\n\n const [tableColumns, setTableColumns] = React.useState(columnState)\n const tableStateControllerRef = React.useRef<AbortController>(null)\n\n const moveColumn = useCallback(\n async (args: { fromIndex: number; toIndex: number }) => {\n abortAndIgnore(tableStateControllerRef.current)\n\n const { fromIndex, toIndex } = args\n const withMovedColumn = [...tableColumns]\n const [columnToMove] = withMovedColumn.splice(fromIndex, 1)\n withMovedColumn.splice(toIndex, 0, columnToMove)\n\n setTableColumns(withMovedColumn)\n\n const controller = new AbortController()\n tableStateControllerRef.current = controller\n\n const result = await getTableState({\n collectionSlug,\n columns: sanitizeColumns(withMovedColumn),\n docs,\n enableRowSelections,\n renderRowTypes,\n signal: controller.signal,\n tableAppearance,\n })\n\n if (result) {\n setTableColumns(result.state)\n setTable(result.Table)\n }\n },\n [\n tableColumns,\n collectionSlug,\n docs,\n getTableState,\n setTable,\n enableRowSelections,\n renderRowTypes,\n tableAppearance,\n ],\n )\n\n const toggleColumn = useCallback(\n async (column: string) => {\n abortAndIgnore(tableStateControllerRef.current)\n\n const { newColumnState, toggledColumns } = tableColumns.reduce<{\n newColumnState: Column[]\n toggledColumns: Pick<Column, 'accessor' | 'active'>[]\n }>(\n (acc, col) => {\n if (col.accessor === column) {\n acc.newColumnState.push({\n ...col,\n accessor: col.accessor,\n active: !col.active,\n })\n acc.toggledColumns.push({\n accessor: col.accessor,\n active: !col.active,\n })\n } else {\n acc.newColumnState.push(col)\n acc.toggledColumns.push({\n accessor: col.accessor,\n active: col.active,\n })\n }\n\n return acc\n },\n { newColumnState: [], toggledColumns: [] },\n )\n\n setTableColumns(newColumnState)\n\n const controller = new AbortController()\n tableStateControllerRef.current = controller\n\n const result = await getTableState({\n collectionSlug,\n columns: toggledColumns,\n docs,\n enableRowSelections,\n renderRowTypes,\n signal: controller.signal,\n tableAppearance,\n })\n\n if (result) {\n setTableColumns(result.state)\n setTable(result.Table)\n }\n },\n [\n tableColumns,\n getTableState,\n setTable,\n collectionSlug,\n docs,\n enableRowSelections,\n renderRowTypes,\n tableAppearance,\n ],\n )\n\n const setActiveColumns = React.useCallback(\n async (activeColumnAccessors: string[]) => {\n const activeColumns: Pick<Column, 'accessor' | 'active'>[] = tableColumns\n .map((col) => {\n return {\n accessor: col.accessor,\n active: activeColumnAccessors.includes(col.accessor),\n }\n })\n .toSorted((first, second) => {\n const indexOfFirst = activeColumnAccessors.indexOf(first.accessor)\n const indexOfSecond = activeColumnAccessors.indexOf(second.accessor)\n\n if (indexOfFirst === -1 || indexOfSecond === -1) {\n return 0\n }\n\n return indexOfFirst > indexOfSecond ? 1 : -1\n })\n\n const { state: columnState, Table } = await getTableState({\n collectionSlug,\n columns: activeColumns,\n docs,\n enableRowSelections,\n renderRowTypes,\n tableAppearance,\n })\n\n setTableColumns(columnState)\n setTable(Table)\n },\n [\n tableColumns,\n getTableState,\n setTable,\n collectionSlug,\n docs,\n enableRowSelections,\n renderRowTypes,\n tableAppearance,\n ],\n )\n\n const resetColumnsState = React.useCallback(async () => {\n await setActiveColumns(defaultColumns)\n }, [defaultColumns, setActiveColumns])\n\n // //////////////////////////////////////////////\n // Get preferences on collection change (drawers)\n // //////////////////////////////////////////////\n\n React.useEffect(() => {\n const sync = async () => {\n const collectionHasChanged = prevCollection.current !== collectionSlug\n\n if (collectionHasChanged || !listPreferences) {\n const currentPreferences = await getPreference<{\n columns: ColumnPreferences\n }>(preferenceKey)\n\n prevCollection.current = collectionSlug\n\n if (currentPreferences?.columns) {\n // setTableColumns()\n // buildColumnState({\n // beforeRows,\n // columnPreferences: currentPreferences?.columns,\n // columns: initialColumns,\n // enableRowSelections,\n // fields,\n // sortColumnProps,\n // useAsTitle,\n // }),\n }\n }\n }\n\n void sync()\n }, [\n preferenceKey,\n getPreference,\n collectionSlug,\n fields,\n defaultColumns,\n useAsTitle,\n listPreferences,\n enableRowSelections,\n sortColumnProps,\n ])\n\n React.useEffect(() => {\n return () => {\n abortAndIgnore(tableStateControllerRef.current)\n }\n }, [])\n\n return (\n <TableColumnContext.Provider\n value={{\n columns: tableColumns,\n LinkedCellOverride,\n moveColumn,\n resetColumnsState,\n setActiveColumns,\n toggleColumn,\n }}\n >\n {children}\n </TableColumnContext.Provider>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["React","createContext","useCallback","useContext","useConfig","usePreferences","useServerFunctions","abortAndIgnore","TableColumnContext","useTableColumns","sanitizeColumns","columns","map","accessor","active","TableColumnsProvider","children","collectionSlug","columnState","docs","enableRowSelections","LinkedCellOverride","listPreferences","preferenceKey","renderRowTypes","setTable","sortColumnProps","tableAppearance","getEntityConfig","getTableState","admin","defaultColumns","useAsTitle","fields","prevCollection","useRef","getPreference","setPreference","tableColumns","setTableColumns","useState","tableStateControllerRef","moveColumn","args","current","fromIndex","toIndex","withMovedColumn","columnToMove","splice","controller","AbortController","result","signal","state","Table","toggleColumn","column","newColumnState","toggledColumns","reduce","acc","col","push","setActiveColumns","activeColumnAccessors","activeColumns","includes","sort","first","second","indexOfFirst","indexOf","indexOfSecond","resetColumnsState","useEffect","sync","collectionHasChanged","currentPreferences","_jsx","Provider","value"],"sources":["../../../src/elements/TableColumns/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig, SanitizedCollectionConfig } from 'payload'\n\nimport React, { createContext, useCallback, useContext } from 'react'\n\nimport type { ColumnPreferences } from '../../providers/ListQuery/index.js'\nimport type { SortColumnProps } from '../SortColumn/index.js'\nimport type { Column } from '../Table/index.js'\n\nimport { useConfig } from '../../providers/Config/index.js'\nimport { usePreferences } from '../../providers/Preferences/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { abortAndIgnore } from '../../utilities/abortAndIgnore.js'\n\nexport interface ITableColumns {\n columns: Column[]\n LinkedCellOverride?: React.ReactNode\n moveColumn: (args: { fromIndex: number; toIndex: number }) => Promise<void>\n resetColumnsState: () => Promise<void>\n setActiveColumns: (columns: string[]) => Promise<void>\n toggleColumn: (column: string) => Promise<void>\n}\n\nexport const TableColumnContext = createContext<ITableColumns>({} as ITableColumns)\n\nexport const useTableColumns = (): ITableColumns => useContext(TableColumnContext)\n\nexport type ListPreferences = {\n columns: ColumnPreferences\n}\n\ntype Props = {\n readonly children: React.ReactNode\n readonly collectionSlug: string\n readonly columnState: Column[]\n readonly docs: any[]\n readonly enableRowSelections?: boolean\n readonly LinkedCellOverride?: React.ReactNode\n readonly listPreferences?: ListPreferences\n readonly preferenceKey: string\n readonly renderRowTypes?: boolean\n readonly setTable: (Table: React.ReactNode) => void\n readonly sortColumnProps?: Partial<SortColumnProps>\n readonly tableAppearance?: 'condensed' | 'default'\n}\n\n// strip out Heading, Label, and renderedCells properties, they cannot be sent to the server\nconst sanitizeColumns = (columns: Column[]) => {\n return columns.map(({ accessor, active }) => ({\n accessor,\n active,\n }))\n}\n\nexport const TableColumnsProvider: React.FC<Props> = ({\n children,\n collectionSlug,\n columnState,\n docs,\n enableRowSelections,\n LinkedCellOverride,\n listPreferences,\n preferenceKey,\n renderRowTypes,\n setTable,\n sortColumnProps,\n tableAppearance,\n}) => {\n const { getEntityConfig } = useConfig()\n\n const { getTableState } = useServerFunctions()\n\n const { admin: { defaultColumns, useAsTitle } = {}, fields } = getEntityConfig({\n collectionSlug,\n }) as ClientCollectionConfig\n\n const prevCollection = React.useRef<SanitizedCollectionConfig['slug']>(collectionSlug)\n const { getPreference, setPreference } = usePreferences()\n\n const [tableColumns, setTableColumns] = React.useState(columnState)\n const tableStateControllerRef = React.useRef<AbortController>(null)\n\n const moveColumn = useCallback(\n async (args: { fromIndex: number; toIndex: number }) => {\n abortAndIgnore(tableStateControllerRef.current)\n\n const { fromIndex, toIndex } = args\n const withMovedColumn = [...tableColumns]\n const [columnToMove] = withMovedColumn.splice(fromIndex, 1)\n withMovedColumn.splice(toIndex, 0, columnToMove)\n\n setTableColumns(withMovedColumn)\n\n const controller = new AbortController()\n tableStateControllerRef.current = controller\n\n const result = await getTableState({\n collectionSlug,\n columns: sanitizeColumns(withMovedColumn),\n docs,\n enableRowSelections,\n renderRowTypes,\n signal: controller.signal,\n tableAppearance,\n })\n\n if (result) {\n setTableColumns(result.state)\n setTable(result.Table)\n }\n },\n [\n tableColumns,\n collectionSlug,\n docs,\n getTableState,\n setTable,\n enableRowSelections,\n renderRowTypes,\n tableAppearance,\n ],\n )\n\n const toggleColumn = useCallback(\n async (column: string) => {\n abortAndIgnore(tableStateControllerRef.current)\n\n const { newColumnState, toggledColumns } = tableColumns.reduce<{\n newColumnState: Column[]\n toggledColumns: Pick<Column, 'accessor' | 'active'>[]\n }>(\n (acc, col) => {\n if (col.accessor === column) {\n acc.newColumnState.push({\n ...col,\n accessor: col.accessor,\n active: !col.active,\n })\n acc.toggledColumns.push({\n accessor: col.accessor,\n active: !col.active,\n })\n } else {\n acc.newColumnState.push(col)\n acc.toggledColumns.push({\n accessor: col.accessor,\n active: col.active,\n })\n }\n\n return acc\n },\n { newColumnState: [], toggledColumns: [] },\n )\n\n setTableColumns(newColumnState)\n\n const controller = new AbortController()\n tableStateControllerRef.current = controller\n\n const result = await getTableState({\n collectionSlug,\n columns: toggledColumns,\n docs,\n enableRowSelections,\n renderRowTypes,\n signal: controller.signal,\n tableAppearance,\n })\n\n if (result) {\n setTableColumns(result.state)\n setTable(result.Table)\n }\n },\n [\n tableColumns,\n getTableState,\n setTable,\n collectionSlug,\n docs,\n enableRowSelections,\n renderRowTypes,\n tableAppearance,\n ],\n )\n\n const setActiveColumns = React.useCallback(\n async (activeColumnAccessors: string[]) => {\n const activeColumns: Pick<Column, 'accessor' | 'active'>[] = tableColumns\n .map((col) => {\n return {\n accessor: col.accessor,\n active: activeColumnAccessors.includes(col.accessor),\n }\n })\n .sort((first, second) => {\n const indexOfFirst = activeColumnAccessors.indexOf(first.accessor)\n const indexOfSecond = activeColumnAccessors.indexOf(second.accessor)\n\n if (indexOfFirst === -1 || indexOfSecond === -1) {\n return 0\n }\n\n return indexOfFirst > indexOfSecond ? 1 : -1\n })\n const { state: columnState, Table } = await getTableState({\n collectionSlug,\n columns: activeColumns,\n docs,\n enableRowSelections,\n renderRowTypes,\n tableAppearance,\n })\n\n setTableColumns(columnState)\n setTable(Table)\n },\n [\n tableColumns,\n getTableState,\n setTable,\n collectionSlug,\n docs,\n enableRowSelections,\n renderRowTypes,\n tableAppearance,\n ],\n )\n\n const resetColumnsState = React.useCallback(async () => {\n await setActiveColumns(defaultColumns)\n }, [defaultColumns, setActiveColumns])\n\n // //////////////////////////////////////////////\n // Get preferences on collection change (drawers)\n // //////////////////////////////////////////////\n\n React.useEffect(() => {\n const sync = async () => {\n const collectionHasChanged = prevCollection.current !== collectionSlug\n\n if (collectionHasChanged || !listPreferences) {\n const currentPreferences = await getPreference<{\n columns: ColumnPreferences\n }>(preferenceKey)\n\n prevCollection.current = collectionSlug\n\n if (currentPreferences?.columns) {\n // setTableColumns()\n // buildColumnState({\n // beforeRows,\n // columnPreferences: currentPreferences?.columns,\n // columns: initialColumns,\n // enableRowSelections,\n // fields,\n // sortColumnProps,\n // useAsTitle,\n // }),\n }\n }\n }\n\n void sync()\n }, [\n preferenceKey,\n getPreference,\n collectionSlug,\n fields,\n defaultColumns,\n useAsTitle,\n listPreferences,\n enableRowSelections,\n sortColumnProps,\n ])\n\n React.useEffect(() => {\n return () => {\n abortAndIgnore(tableStateControllerRef.current)\n }\n }, [])\n\n return (\n <TableColumnContext.Provider\n value={{\n columns: tableColumns,\n LinkedCellOverride,\n moveColumn,\n resetColumnsState,\n setActiveColumns,\n toggleColumn,\n }}\n >\n {children}\n </TableColumnContext.Provider>\n )\n}\n"],"mappings":"AAAA;;;AAGA,OAAOA,KAAA,IAASC,aAAa,EAAEC,WAAW,EAAEC,UAAU,QAAQ;AAM9D,SAASC,SAAS,QAAQ;AAC1B,SAASC,cAAc,QAAQ;AAC/B,SAASC,kBAAkB,QAAQ;AACnC,SAASC,cAAc,QAAQ;AAW/B,OAAO,MAAMC,kBAAA,gBAAqBP,aAAA,CAA6B,CAAC;AAEhE,OAAO,MAAMQ,eAAA,GAAkBA,CAAA;EAAA,OAAqBN,UAAA,CAAAK,kBAAW;AAAA;AAqB/D;AACA,MAAME,eAAA,GAAmBC,OAAA;EACvB,OAAOA,OAAA,CAAQC,GAAG,CAAC,CAAC;IAAEC,QAAQ;IAAEC;EAAM,CAAE,MAAM;IAC5CD,QAAA;IACAC;EACF;AACF;AAEA,OAAO,MAAMC,oBAAA,GAAwCA,CAAC;EACpDC,QAAQ;EACRC,cAAc;EACdC,WAAW;EACXC,IAAI;EACJC,mBAAmB;EACnBC,kBAAkB;EAClBC,eAAe;EACfC,aAAa;EACbC,cAAc;EACdC,QAAQ;EACRC,eAAe;EACfC;AAAe,CAChB;EACC,MAAM;IAAEC;EAAe,CAAE,GAAGxB,SAAA;EAE5B,MAAM;IAAEyB;EAAa,CAAE,GAAGvB,kBAAA;EAE1B,MAAM;IAAEwB,KAAA,EAAO;MAAEC,cAAc;MAAEC;IAAU,CAAE,GAAG,CAAC,CAAC;IAAEC;EAAM,CAAE,GAAGL,eAAA,CAAgB;IAC7EX;EACF;EAEA,MAAMiB,cAAA,GAAiBlC,KAAA,CAAMmC,MAAM,CAAoClB,cAAA;EACvE,MAAM;IAAEmB,aAAa;IAAEC;EAAa,CAAE,GAAGhC,cAAA;EAEzC,MAAM,CAACiC,YAAA,EAAcC,eAAA,CAAgB,GAAGvC,KAAA,CAAMwC,QAAQ,CAACtB,WAAA;EACvD,MAAMuB,uBAAA,GAA0BzC,KAAA,CAAMmC,MAAM,CAAkB;EAE9D,MAAMO,UAAA,GAAaxC,WAAA,CACjB,MAAOyC,IAAA;IACLpC,cAAA,CAAekC,uBAAA,CAAwBG,OAAO;IAE9C,MAAM;MAAEC,SAAS;MAAEC;IAAO,CAAE,GAAGH,IAAA;IAC/B,MAAMI,eAAA,GAAkB,C,GAAIT,YAAA,CAAa;IACzC,MAAM,CAACU,YAAA,CAAa,GAAGD,eAAA,CAAgBE,MAAM,CAACJ,SAAA,EAAW;IACzDE,eAAA,CAAgBE,MAAM,CAACH,OAAA,EAAS,GAAGE,YAAA;IAEnCT,eAAA,CAAgBQ,eAAA;IAEhB,MAAMG,UAAA,GAAa,IAAIC,eAAA;IACvBV,uBAAA,CAAwBG,OAAO,GAAGM,UAAA;IAElC,MAAME,MAAA,GAAS,MAAMvB,aAAA,CAAc;MACjCZ,cAAA;MACAN,OAAA,EAASD,eAAA,CAAgBqC,eAAA;MACzB5B,IAAA;MACAC,mBAAA;MACAI,cAAA;MACA6B,MAAA,EAAQH,UAAA,CAAWG,MAAM;MACzB1B;IACF;IAEA,IAAIyB,MAAA,EAAQ;MACVb,eAAA,CAAgBa,MAAA,CAAOE,KAAK;MAC5B7B,QAAA,CAAS2B,MAAA,CAAOG,KAAK;IACvB;EACF,GACA,CACEjB,YAAA,EACArB,cAAA,EACAE,IAAA,EACAU,aAAA,EACAJ,QAAA,EACAL,mBAAA,EACAI,cAAA,EACAG,eAAA,CACD;EAGH,MAAM6B,YAAA,GAAetD,WAAA,CACnB,MAAOuD,MAAA;IACLlD,cAAA,CAAekC,uBAAA,CAAwBG,OAAO;IAE9C,MAAM;MAAEc,cAAc;MAAEC;IAAc,CAAE,GAAGrB,YAAA,CAAasB,MAAM,CAI5D,CAACC,GAAA,EAAKC,GAAA;MACJ,IAAIA,GAAA,CAAIjD,QAAQ,KAAK4C,MAAA,EAAQ;QAC3BI,GAAA,CAAIH,cAAc,CAACK,IAAI,CAAC;UACtB,GAAGD,GAAG;UACNjD,QAAA,EAAUiD,GAAA,CAAIjD,QAAQ;UACtBC,MAAA,EAAQ,CAACgD,GAAA,CAAIhD;QACf;QACA+C,GAAA,CAAIF,cAAc,CAACI,IAAI,CAAC;UACtBlD,QAAA,EAAUiD,GAAA,CAAIjD,QAAQ;UACtBC,MAAA,EAAQ,CAACgD,GAAA,CAAIhD;QACf;MACF,OAAO;QACL+C,GAAA,CAAIH,cAAc,CAACK,IAAI,CAACD,GAAA;QACxBD,GAAA,CAAIF,cAAc,CAACI,IAAI,CAAC;UACtBlD,QAAA,EAAUiD,GAAA,CAAIjD,QAAQ;UACtBC,MAAA,EAAQgD,GAAA,CAAIhD;QACd;MACF;MAEA,OAAO+C,GAAA;IACT,GACA;MAAEH,cAAA,EAAgB,EAAE;MAAEC,cAAA,EAAgB;IAAG;IAG3CpB,eAAA,CAAgBmB,cAAA;IAEhB,MAAMR,YAAA,GAAa,IAAIC,eAAA;IACvBV,uBAAA,CAAwBG,OAAO,GAAGM,YAAA;IAElC,MAAME,QAAA,GAAS,MAAMvB,aAAA,CAAc;MACjCZ,cAAA;MACAN,OAAA,EAASgD,cAAA;MACTxC,IAAA;MACAC,mBAAA;MACAI,cAAA;MACA6B,MAAA,EAAQH,YAAA,CAAWG,MAAM;MACzB1B;IACF;IAEA,IAAIyB,QAAA,EAAQ;MACVb,eAAA,CAAgBa,QAAA,CAAOE,KAAK;MAC5B7B,QAAA,CAAS2B,QAAA,CAAOG,KAAK;IACvB;EACF,GACA,CACEjB,YAAA,EACAT,aAAA,EACAJ,QAAA,EACAR,cAAA,EACAE,IAAA,EACAC,mBAAA,EACAI,cAAA,EACAG,eAAA,CACD;EAGH,MAAMqC,gBAAA,GAAmBhE,KAAA,CAAME,WAAW,CACxC,MAAO+D,qBAAA;IACL,MAAMC,aAAA,GAAuD5B,YAAA,CAC1D1B,GAAG,CAAEkD,KAAA;MACJ,OAAO;QACLjD,QAAA,EAAUiD,KAAA,CAAIjD,QAAQ;QACtBC,MAAA,EAAQmD,qBAAA,CAAsBE,QAAQ,CAACL,KAAA,CAAIjD,QAAQ;MACrD;IACF,GACCuD,IAAI,CAAC,CAACC,KAAA,EAAOC,MAAA;MACZ,MAAMC,YAAA,GAAeN,qBAAA,CAAsBO,OAAO,CAACH,KAAA,CAAMxD,QAAQ;MACjE,MAAM4D,aAAA,GAAgBR,qBAAA,CAAsBO,OAAO,CAACF,MAAA,CAAOzD,QAAQ;MAEnE,IAAI0D,YAAA,KAAiB,CAAC,KAAKE,aAAA,KAAkB,CAAC,GAAG;QAC/C,OAAO;MACT;MAEA,OAAOF,YAAA,GAAeE,aAAA,GAAgB,IAAI,CAAC;IAC7C;IACF,MAAM;MAAEnB,KAAA,EAAOpC,aAAW;MAAEqC;IAAK,CAAE,GAAG,MAAM1B,aAAA,CAAc;MACxDZ,cAAA;MACAN,OAAA,EAASuD,aAAA;MACT/C,IAAA;MACAC,mBAAA;MACAI,cAAA;MACAG;IACF;IAEAY,eAAA,CAAgBrB,aAAA;IAChBO,QAAA,CAAS8B,KAAA;EACX,GACA,CACEjB,YAAA,EACAT,aAAA,EACAJ,QAAA,EACAR,cAAA,EACAE,IAAA,EACAC,mBAAA,EACAI,cAAA,EACAG,eAAA,CACD;EAGH,MAAM+C,iBAAA,GAAoB1E,KAAA,CAAME,WAAW,CAAC;IAC1C,MAAM8D,gBAAA,CAAiBjC,cAAA;EACzB,GAAG,CAACA,cAAA,EAAgBiC,gBAAA,CAAiB;EAErC;EACA;EACA;EAEAhE,KAAA,CAAM2E,SAAS,CAAC;IACd,MAAMC,IAAA,GAAO,MAAAA,CAAA;MACX,MAAMC,oBAAA,GAAuB3C,cAAA,CAAeU,OAAO,KAAK3B,cAAA;MAExD,IAAI4D,oBAAA,IAAwB,CAACvD,eAAA,EAAiB;QAC5C,MAAMwD,kBAAA,GAAqB,MAAM1C,aAAA,CAE9Bb,aAAA;QAEHW,cAAA,CAAeU,OAAO,GAAG3B,cAAA;QAEzB,IAAI6D,kBAAA,EAAoBnE,OAAA,EAAS;UAC/B;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;QAAA;MAEJ;IACF;IAEA,KAAKiE,IAAA;EACP,GAAG,CACDrD,aAAA,EACAa,aAAA,EACAnB,cAAA,EACAgB,MAAA,EACAF,cAAA,EACAC,UAAA,EACAV,eAAA,EACAF,mBAAA,EACAM,eAAA,CACD;EAED1B,KAAA,CAAM2E,SAAS,CAAC;IACd,OAAO;MACLpE,cAAA,CAAekC,uBAAA,CAAwBG,OAAO;IAChD;EACF,GAAG,EAAE;EAEL,oBACEmC,IAAA,CAACvE,kBAAA,CAAmBwE,QAAQ;IAC1BC,KAAA,EAAO;MACLtE,OAAA,EAAS2B,YAAA;MACTjB,kBAAA;MACAqB,UAAA;MACAgC,iBAAA;MACAV,gBAAA;MACAR;IACF;cAECxC;;AAGP","ignoreList":[]}
|
|
@@ -10,5 +10,5 @@ function require(m) {
|
|
|
10
10
|
}
|
|
11
11
|
// Workaround end
|
|
12
12
|
|
|
13
|
-
import{n as a}from"./chunk-
|
|
14
|
-
//# sourceMappingURL=DatePicker-
|
|
13
|
+
import{n as a}from"./chunk-5LUHGAPX.js";import"./chunk-5LKBKI4T.js";export{a as default};
|
|
14
|
+
//# sourceMappingURL=DatePicker-QST7QHAX.js.map
|