@strapi/plugin-users-permissions 5.0.0-beta.1 → 5.0.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/admin/src/pages/AdvancedSettings/index.jsx +4 -4
- package/admin/src/pages/EmailTemplates/index.jsx +3 -4
- package/admin/src/pages/Providers/index.jsx +3 -4
- package/admin/src/pages/Roles/pages/CreatePage.jsx +3 -4
- package/admin/src/pages/Roles/pages/EditPage.jsx +3 -4
- package/admin/src/pages/Roles/pages/ListPage/index.jsx +3 -4
- package/dist/_chunks/{index-JO4fO3Yj.js → index-EzbUy3No.js} +9 -9
- package/dist/_chunks/{index-JO4fO3Yj.js.map → index-EzbUy3No.js.map} +1 -1
- package/dist/_chunks/{index-Vg50EMBp.mjs → index-LsKlxP6S.mjs} +14 -30
- package/dist/_chunks/index-LsKlxP6S.mjs.map +1 -0
- package/dist/_chunks/{index-46oU0LRy.js → index-NoTh1v48.js} +11 -17
- package/dist/_chunks/index-NoTh1v48.js.map +1 -0
- package/dist/_chunks/index-PCKQWB49-i9LmKIQp.mjs +10311 -0
- package/dist/_chunks/index-PCKQWB49-i9LmKIQp.mjs.map +1 -0
- package/dist/_chunks/index-PCKQWB49-mqonSm6K.js +10335 -0
- package/dist/_chunks/index-PCKQWB49-mqonSm6K.js.map +1 -0
- package/dist/_chunks/{index-gw-9XoIT.js → index-T3jMrI6s.js} +16 -22
- package/dist/_chunks/index-T3jMrI6s.js.map +1 -0
- package/dist/_chunks/{index-DtWla9tx.mjs → index-a65O1P4_.mjs} +9 -15
- package/dist/_chunks/index-a65O1P4_.mjs.map +1 -0
- package/dist/_chunks/{index-_UNneVIg.js → index-joJkJUWj.js} +21 -37
- package/dist/_chunks/index-joJkJUWj.js.map +1 -0
- package/dist/_chunks/{index-oUZpvYqS.mjs → index-roTH2zy3.mjs} +10 -16
- package/dist/_chunks/index-roTH2zy3.mjs.map +1 -0
- package/dist/_chunks/{index-UxzhJuP2.js → index-se17lxmu.js} +13 -19
- package/dist/_chunks/index-se17lxmu.js.map +1 -0
- package/dist/_chunks/{index-G9pZniMC.mjs → index-wRXHhHPH.mjs} +10 -16
- package/dist/_chunks/index-wRXHhHPH.mjs.map +1 -0
- package/dist/_chunks/{index-PTS42_em.mjs → index-yRndCUAV.mjs} +9 -9
- package/dist/_chunks/{index-PTS42_em.mjs.map → index-yRndCUAV.mjs.map} +1 -1
- package/dist/admin/index.js +1 -1
- package/dist/admin/index.mjs +1 -1
- package/package.json +5 -5
- package/server/services/users-permissions.js +3 -3
- package/dist/_chunks/EditViewPage-BJdNfzBZ-XIkFGBc4.mjs +0 -84380
- package/dist/_chunks/EditViewPage-BJdNfzBZ-XIkFGBc4.mjs.map +0 -1
- package/dist/_chunks/EditViewPage-BJdNfzBZ-eKwHxgPQ.js +0 -84408
- package/dist/_chunks/EditViewPage-BJdNfzBZ-eKwHxgPQ.js.map +0 -1
- package/dist/_chunks/Helmet-En-SEnNC.mjs +0 -1008
- package/dist/_chunks/Helmet-En-SEnNC.mjs.map +0 -1
- package/dist/_chunks/Helmet-d9JljxUo.js +0 -1010
- package/dist/_chunks/Helmet-d9JljxUo.js.map +0 -1
- package/dist/_chunks/ListViewPage-FE12IpwT-Wq63ge4-.js +0 -1595
- package/dist/_chunks/ListViewPage-FE12IpwT-Wq63ge4-.js.map +0 -1
- package/dist/_chunks/ListViewPage-FE12IpwT-qmEuoG2g.mjs +0 -1571
- package/dist/_chunks/ListViewPage-FE12IpwT-qmEuoG2g.mjs.map +0 -1
- package/dist/_chunks/ReviewWorkflowsColumn-NUu47oVz-8gQO_Y5x.mjs +0 -33
- package/dist/_chunks/ReviewWorkflowsColumn-NUu47oVz-8gQO_Y5x.mjs.map +0 -1
- package/dist/_chunks/ReviewWorkflowsColumn-NUu47oVz-ARD7iQQF.js +0 -33
- package/dist/_chunks/ReviewWorkflowsColumn-NUu47oVz-ARD7iQQF.js.map +0 -1
- package/dist/_chunks/constants-D6NLEhwu-4IL8biHd.js +0 -209
- package/dist/_chunks/constants-D6NLEhwu-4IL8biHd.js.map +0 -1
- package/dist/_chunks/constants-D6NLEhwu-gRKBHArd.mjs +0 -190
- package/dist/_chunks/constants-D6NLEhwu-gRKBHArd.mjs.map +0 -1
- package/dist/_chunks/index-1NFAbkxM-Km1zKLTh.mjs +0 -16568
- package/dist/_chunks/index-1NFAbkxM-Km1zKLTh.mjs.map +0 -1
- package/dist/_chunks/index-1NFAbkxM-c8HdvwSA.js +0 -16593
- package/dist/_chunks/index-1NFAbkxM-c8HdvwSA.js.map +0 -1
- package/dist/_chunks/index-46oU0LRy.js.map +0 -1
- package/dist/_chunks/index-DtWla9tx.mjs.map +0 -1
- package/dist/_chunks/index-G9pZniMC.mjs.map +0 -1
- package/dist/_chunks/index-UxzhJuP2.js.map +0 -1
- package/dist/_chunks/index-Vg50EMBp.mjs.map +0 -1
- package/dist/_chunks/index-_UNneVIg.js.map +0 -1
- package/dist/_chunks/index-gw-9XoIT.js.map +0 -1
- package/dist/_chunks/index-oUZpvYqS.mjs.map +0 -1
- package/dist/_chunks/useSyncRbac-LNOzRXJ5-5S0qhFuZ.js +0 -63
- package/dist/_chunks/useSyncRbac-LNOzRXJ5-5S0qhFuZ.js.map +0 -1
- package/dist/_chunks/useSyncRbac-LNOzRXJ5-PZzFwA1X.mjs +0 -45
- package/dist/_chunks/useSyncRbac-LNOzRXJ5-PZzFwA1X.mjs.map +0 -1
- package/dist/style.css +0 -84
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ListViewPage-FE12IpwT-qmEuoG2g.mjs","sources":["../../../../../node_modules/date-fns/esm/parseISO/index.js","../../../../core/admin/dist/admin/Filters-hYfcsahl.mjs","../../../../core/admin/dist/admin/ListViewPage-FE12IpwT.mjs"],"sourcesContent":["import { millisecondsInHour, millisecondsInMinute } from \"../constants/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\n/**\n * @name parseISO\n * @category Common Helpers\n * @summary Parse ISO string\n *\n * @description\n * Parse the given string in ISO 8601 format and return an instance of Date.\n *\n * Function accepts complete ISO 8601 formats as well as partial implementations.\n * ISO 8601: http://en.wikipedia.org/wiki/ISO_8601\n *\n * If the argument isn't a string, the function cannot parse the string or\n * the values are invalid, it returns Invalid Date.\n *\n * @param {String} argument - the value to convert\n * @param {Object} [options] - an object with options.\n * @param {0|1|2} [options.additionalDigits=2] - the additional number of digits in the extended year format\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.additionalDigits` must be 0, 1 or 2\n *\n * @example\n * // Convert string '2014-02-11T11:30:30' to date:\n * const result = parseISO('2014-02-11T11:30:30')\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert string '+02014101' to date,\n * // if the additional number of digits in the extended year format is 1:\n * const result = parseISO('+02014101', { additionalDigits: 1 })\n * //=> Fri Apr 11 2014 00:00:00\n */\nexport default function parseISO(argument, options) {\n var _options$additionalDi;\n requiredArgs(1, arguments);\n var additionalDigits = toInteger((_options$additionalDi = options === null || options === void 0 ? void 0 : options.additionalDigits) !== null && _options$additionalDi !== void 0 ? _options$additionalDi : 2);\n if (additionalDigits !== 2 && additionalDigits !== 1 && additionalDigits !== 0) {\n throw new RangeError('additionalDigits must be 0, 1 or 2');\n }\n if (!(typeof argument === 'string' || Object.prototype.toString.call(argument) === '[object String]')) {\n return new Date(NaN);\n }\n var dateStrings = splitDateString(argument);\n var date;\n if (dateStrings.date) {\n var parseYearResult = parseYear(dateStrings.date, additionalDigits);\n date = parseDate(parseYearResult.restDateString, parseYearResult.year);\n }\n if (!date || isNaN(date.getTime())) {\n return new Date(NaN);\n }\n var timestamp = date.getTime();\n var time = 0;\n var offset;\n if (dateStrings.time) {\n time = parseTime(dateStrings.time);\n if (isNaN(time)) {\n return new Date(NaN);\n }\n }\n if (dateStrings.timezone) {\n offset = parseTimezone(dateStrings.timezone);\n if (isNaN(offset)) {\n return new Date(NaN);\n }\n } else {\n var dirtyDate = new Date(timestamp + time);\n // js parsed string assuming it's in UTC timezone\n // but we need it to be parsed in our timezone\n // so we use utc values to build date in our timezone.\n // Year values from 0 to 99 map to the years 1900 to 1999\n // so set year explicitly with setFullYear.\n var result = new Date(0);\n result.setFullYear(dirtyDate.getUTCFullYear(), dirtyDate.getUTCMonth(), dirtyDate.getUTCDate());\n result.setHours(dirtyDate.getUTCHours(), dirtyDate.getUTCMinutes(), dirtyDate.getUTCSeconds(), dirtyDate.getUTCMilliseconds());\n return result;\n }\n return new Date(timestamp + time + offset);\n}\nvar patterns = {\n dateTimeDelimiter: /[T ]/,\n timeZoneDelimiter: /[Z ]/i,\n timezone: /([Z+-].*)$/\n};\nvar dateRegex = /^-?(?:(\\d{3})|(\\d{2})(?:-?(\\d{2}))?|W(\\d{2})(?:-?(\\d{1}))?|)$/;\nvar timeRegex = /^(\\d{2}(?:[.,]\\d*)?)(?::?(\\d{2}(?:[.,]\\d*)?))?(?::?(\\d{2}(?:[.,]\\d*)?))?$/;\nvar timezoneRegex = /^([+-])(\\d{2})(?::?(\\d{2}))?$/;\nfunction splitDateString(dateString) {\n var dateStrings = {};\n var array = dateString.split(patterns.dateTimeDelimiter);\n var timeString;\n\n // The regex match should only return at maximum two array elements.\n // [date], [time], or [date, time].\n if (array.length > 2) {\n return dateStrings;\n }\n if (/:/.test(array[0])) {\n timeString = array[0];\n } else {\n dateStrings.date = array[0];\n timeString = array[1];\n if (patterns.timeZoneDelimiter.test(dateStrings.date)) {\n dateStrings.date = dateString.split(patterns.timeZoneDelimiter)[0];\n timeString = dateString.substr(dateStrings.date.length, dateString.length);\n }\n }\n if (timeString) {\n var token = patterns.timezone.exec(timeString);\n if (token) {\n dateStrings.time = timeString.replace(token[1], '');\n dateStrings.timezone = token[1];\n } else {\n dateStrings.time = timeString;\n }\n }\n return dateStrings;\n}\nfunction parseYear(dateString, additionalDigits) {\n var regex = new RegExp('^(?:(\\\\d{4}|[+-]\\\\d{' + (4 + additionalDigits) + '})|(\\\\d{2}|[+-]\\\\d{' + (2 + additionalDigits) + '})$)');\n var captures = dateString.match(regex);\n // Invalid ISO-formatted year\n if (!captures) return {\n year: NaN,\n restDateString: ''\n };\n var year = captures[1] ? parseInt(captures[1]) : null;\n var century = captures[2] ? parseInt(captures[2]) : null;\n\n // either year or century is null, not both\n return {\n year: century === null ? year : century * 100,\n restDateString: dateString.slice((captures[1] || captures[2]).length)\n };\n}\nfunction parseDate(dateString, year) {\n // Invalid ISO-formatted year\n if (year === null) return new Date(NaN);\n var captures = dateString.match(dateRegex);\n // Invalid ISO-formatted string\n if (!captures) return new Date(NaN);\n var isWeekDate = !!captures[4];\n var dayOfYear = parseDateUnit(captures[1]);\n var month = parseDateUnit(captures[2]) - 1;\n var day = parseDateUnit(captures[3]);\n var week = parseDateUnit(captures[4]);\n var dayOfWeek = parseDateUnit(captures[5]) - 1;\n if (isWeekDate) {\n if (!validateWeekDate(year, week, dayOfWeek)) {\n return new Date(NaN);\n }\n return dayOfISOWeekYear(year, week, dayOfWeek);\n } else {\n var date = new Date(0);\n if (!validateDate(year, month, day) || !validateDayOfYearDate(year, dayOfYear)) {\n return new Date(NaN);\n }\n date.setUTCFullYear(year, month, Math.max(dayOfYear, day));\n return date;\n }\n}\nfunction parseDateUnit(value) {\n return value ? parseInt(value) : 1;\n}\nfunction parseTime(timeString) {\n var captures = timeString.match(timeRegex);\n if (!captures) return NaN; // Invalid ISO-formatted time\n\n var hours = parseTimeUnit(captures[1]);\n var minutes = parseTimeUnit(captures[2]);\n var seconds = parseTimeUnit(captures[3]);\n if (!validateTime(hours, minutes, seconds)) {\n return NaN;\n }\n return hours * millisecondsInHour + minutes * millisecondsInMinute + seconds * 1000;\n}\nfunction parseTimeUnit(value) {\n return value && parseFloat(value.replace(',', '.')) || 0;\n}\nfunction parseTimezone(timezoneString) {\n if (timezoneString === 'Z') return 0;\n var captures = timezoneString.match(timezoneRegex);\n if (!captures) return 0;\n var sign = captures[1] === '+' ? -1 : 1;\n var hours = parseInt(captures[2]);\n var minutes = captures[3] && parseInt(captures[3]) || 0;\n if (!validateTimezone(hours, minutes)) {\n return NaN;\n }\n return sign * (hours * millisecondsInHour + minutes * millisecondsInMinute);\n}\nfunction dayOfISOWeekYear(isoWeekYear, week, day) {\n var date = new Date(0);\n date.setUTCFullYear(isoWeekYear, 0, 4);\n var fourthOfJanuaryDay = date.getUTCDay() || 7;\n var diff = (week - 1) * 7 + day + 1 - fourthOfJanuaryDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n}\n\n// Validation functions\n\n// February is null to handle the leap year (using ||)\nvar daysInMonths = [31, null, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nfunction isLeapYearIndex(year) {\n return year % 400 === 0 || year % 4 === 0 && year % 100 !== 0;\n}\nfunction validateDate(year, month, date) {\n return month >= 0 && month <= 11 && date >= 1 && date <= (daysInMonths[month] || (isLeapYearIndex(year) ? 29 : 28));\n}\nfunction validateDayOfYearDate(year, dayOfYear) {\n return dayOfYear >= 1 && dayOfYear <= (isLeapYearIndex(year) ? 366 : 365);\n}\nfunction validateWeekDate(_year, week, day) {\n return week >= 1 && week <= 53 && day >= 0 && day <= 6;\n}\nfunction validateTime(hours, minutes, seconds) {\n if (hours === 24) {\n return minutes === 0 && seconds === 0;\n }\n return seconds >= 0 && seconds < 60 && minutes >= 0 && minutes < 60 && hours >= 0 && hours < 25;\n}\nfunction validateTimezone(_hours, minutes) {\n return minutes >= 0 && minutes <= 59;\n}","import { jsx, jsxs, Fragment } from 'react/jsx-runtime';\nimport * as React from 'react';\nimport { useComposedRefs, Button, PopoverPrimitives, Flex, Tag } from '@strapi/design-system';\nimport { Filter, Plus, Cross } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { e as useControllableState } from './index-1NFAbkxM.mjs';\nimport { c as createContext, n as useQueryParams, a0 as Form } from './reducers-IQWvK_9L.mjs';\nimport { I as InputRenderer } from './useDocumentLayout-4trWL6Jz.mjs';\n\nconst BASE_FILTERS = [\n {\n label: { id: \"components.FilterOptions.FILTER_TYPES.$eq\", defaultMessage: \"is\" },\n value: \"$eq\"\n },\n {\n label: { id: \"components.FilterOptions.FILTER_TYPES.$ne\", defaultMessage: \"is not\" },\n value: \"$ne\"\n },\n {\n label: {\n id: \"components.FilterOptions.FILTER_TYPES.$null\",\n defaultMessage: \"is null\"\n },\n value: \"$null\"\n },\n {\n label: {\n id: \"components.FilterOptions.FILTER_TYPES.$notNull\",\n defaultMessage: \"is not null\"\n },\n value: \"$notNull\"\n }\n];\nconst NUMERIC_FILTERS = [\n {\n label: {\n id: \"components.FilterOptions.FILTER_TYPES.$gt\",\n defaultMessage: \"is greater than\"\n },\n value: \"$gt\"\n },\n {\n label: {\n id: \"components.FilterOptions.FILTER_TYPES.$gte\",\n defaultMessage: \"is greater than or equal to\"\n },\n value: \"$gte\"\n },\n {\n label: {\n id: \"components.FilterOptions.FILTER_TYPES.$lt\",\n defaultMessage: \"is less than\"\n },\n value: \"$lt\"\n },\n {\n label: {\n id: \"components.FilterOptions.FILTER_TYPES.$lte\",\n defaultMessage: \"is less than or equal to\"\n },\n value: \"$lte\"\n }\n];\nconst IS_SENSITIVE_FILTERS = [\n {\n label: {\n id: \"components.FilterOptions.FILTER_TYPES.$eqi\",\n defaultMessage: \"is (case insensitive)\"\n },\n value: \"$eqi\"\n },\n {\n label: {\n id: \"components.FilterOptions.FILTER_TYPES.$nei\",\n defaultMessage: \"is not (case insensitive)\"\n },\n value: \"$nei\"\n }\n];\nconst CONTAINS_FILTERS = [\n {\n label: {\n id: \"components.FilterOptions.FILTER_TYPES.$contains\",\n defaultMessage: \"contains\"\n },\n value: \"$contains\"\n },\n {\n label: {\n id: \"components.FilterOptions.FILTER_TYPES.$containsi\",\n defaultMessage: \"contains (case insensitive)\"\n },\n value: \"$containsi\"\n },\n {\n label: {\n id: \"components.FilterOptions.FILTER_TYPES.$notContains\",\n defaultMessage: \"not contains\"\n },\n value: \"$notContains\"\n },\n {\n label: {\n id: \"components.FilterOptions.FILTER_TYPES.$notContainsi\",\n defaultMessage: \"not contains (case insensitive)\"\n },\n value: \"$notContainsi\"\n }\n];\nconst STRING_PARSE_FILTERS = [\n {\n label: {\n id: \"components.FilterOptions.FILTER_TYPES.$startsWith\",\n defaultMessage: \"starts with\"\n },\n value: \"$startsWith\"\n },\n {\n label: {\n id: \"components.FilterOptions.FILTER_TYPES.$startsWithi\",\n defaultMessage: \"starts with (case insensitive)\"\n },\n value: \"$startsWithi\"\n },\n {\n label: {\n id: \"components.FilterOptions.FILTER_TYPES.$endsWith\",\n defaultMessage: \"ends with\"\n },\n value: \"$endsWith\"\n },\n {\n label: {\n id: \"components.FilterOptions.FILTER_TYPES.$endsWithi\",\n defaultMessage: \"ends with (case insensitive)\"\n },\n value: \"$endsWithi\"\n }\n];\n\nconst [FiltersProvider, useFilters] = createContext(\"Filters\");\nconst Root = ({\n children,\n disabled = false,\n onChange,\n onOpenChange,\n open: openProp,\n defaultOpen,\n options = []\n}) => {\n const [triggerNode, setTriggerNode] = React.useState(null);\n const [open = false, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen,\n onChange: onOpenChange\n });\n const handleChange = (data) => {\n if (onChange) {\n onChange(data);\n }\n };\n return /* @__PURE__ */ jsx(\n FiltersProvider,\n {\n disabled,\n onChange: handleChange,\n open,\n options,\n setOpen,\n setTriggerNode,\n triggerNode,\n children\n }\n );\n};\nconst Trigger = React.forwardRef(\n ({ label }, forwardedRef) => {\n const { formatMessage } = useIntl();\n const { setTriggerNode, setOpen } = useFilters(\"Trigger\", ({ setTriggerNode: setTriggerNode2, setOpen: setOpen2 }) => ({\n setTriggerNode: setTriggerNode2,\n setOpen: setOpen2\n }));\n const disabled = useFilters(\"Trigger\", ({ disabled: disabled2 }) => disabled2);\n const open = useFilters(\"Trigger\", ({ open: open2 }) => open2);\n const composedRefs = useComposedRefs(forwardedRef, setTriggerNode);\n const handleClick = () => setOpen(!open);\n return /* @__PURE__ */ jsx(\n Button,\n {\n variant: \"tertiary\",\n ref: composedRefs,\n startIcon: /* @__PURE__ */ jsx(Filter, {}),\n onClick: handleClick,\n size: \"S\",\n disabled,\n children: label || formatMessage({ id: \"app.utils.filters\", defaultMessage: \"Filters\" })\n }\n );\n }\n);\nconst PopoverImpl = () => {\n const [{ query }, setQuery] = useQueryParams();\n const { formatMessage } = useIntl();\n const open = useFilters(\"Popover\", ({ open: open2 }) => open2);\n const options = useFilters(\"Popover\", ({ options: options2 }) => options2);\n const triggerNode = useFilters(\"Popover\", ({ triggerNode: triggerNode2 }) => triggerNode2);\n const setOpen = useFilters(\"Popover\", ({ setOpen: setOpen2 }) => setOpen2);\n const onChange = useFilters(\"Popover\", ({ onChange: onChange2 }) => onChange2);\n if (!open || options.length === 0 || !triggerNode) {\n return null;\n }\n const handleSubmit = (data) => {\n if (!data.value) {\n return;\n }\n if (onChange) {\n onChange(data);\n }\n const filterType = options.find((filter) => filter.name === data.name).type;\n const operatorValuePairing = {\n [data.filter]: data.value\n };\n const newFilterQuery = {\n ...query.filters,\n $and: [\n ...query.filters?.$and ?? [],\n {\n [data.name]: filterType === \"relation\" ? {\n id: operatorValuePairing\n } : operatorValuePairing\n }\n ]\n };\n setQuery({ filters: newFilterQuery, page: 1 });\n setOpen(false);\n };\n return /* @__PURE__ */ jsx(\n PopoverPrimitives.Content,\n {\n source: { current: triggerNode },\n onDismiss: () => setOpen(false),\n padding: 3,\n spacing: 4,\n maxHeight: \"unset\",\n children: /* @__PURE__ */ jsx(\n Form,\n {\n method: \"POST\",\n initialValues: {\n name: options[0]?.name,\n filter: BASE_FILTERS[0].value\n },\n onSubmit: handleSubmit,\n children: ({ values: formValues, modified, isSubmitting }) => {\n const filter = options.find((filter2) => filter2.name === formValues.name);\n const Input = filter?.input || InputRenderer;\n return /* @__PURE__ */ jsxs(Flex, { direction: \"column\", alignItems: \"stretch\", gap: 2, style: { minWidth: 184 }, children: [\n [\n {\n [\"aria-label\"]: formatMessage({\n id: \"app.utils.select-field\",\n defaultMessage: \"Select field\"\n }),\n name: \"name\",\n options: options.map((filter2) => ({\n label: filter2.label,\n value: filter2.name\n })),\n placholder: formatMessage({\n id: \"app.utils.select-field\",\n defaultMessage: \"Select field\"\n }),\n type: \"enumeration\"\n },\n {\n [\"aria-label\"]: formatMessage({\n id: \"app.utils.select-filter\",\n defaultMessage: \"Select filter\"\n }),\n name: \"filter\",\n options: filter?.operators || getFilterList(filter).map((opt) => ({\n label: formatMessage(opt.label),\n value: opt.value\n })),\n placeholder: formatMessage({\n id: \"app.utils.select-filter\",\n defaultMessage: \"Select filter\"\n }),\n type: \"enumeration\"\n }\n ].map((field) => /* @__PURE__ */ jsx(InputRenderer, { ...field }, field.name)),\n filter && formValues.filter && formValues.filter !== \"$null\" && formValues.filter !== \"$notNull\" ? /* @__PURE__ */ jsx(\n Input,\n {\n ...filter,\n label: null,\n \"aria-label\": filter.label,\n name: \"value\",\n type: filter.mainField?.type ?? filter.type\n }\n ) : null,\n /* @__PURE__ */ jsx(\n Button,\n {\n disabled: !modified || isSubmitting,\n size: \"L\",\n variant: \"secondary\",\n startIcon: /* @__PURE__ */ jsx(Plus, {}),\n type: \"submit\",\n fullWidth: true,\n children: formatMessage({ id: \"app.utils.add-filter\", defaultMessage: \"Add filter\" })\n }\n )\n ] });\n }\n }\n )\n }\n );\n};\nconst getFilterList = (filter) => {\n if (!filter) {\n return [];\n }\n const type = filter.mainField?.type ? filter.mainField.type : filter.type;\n switch (type) {\n case \"email\":\n case \"text\":\n case \"enumeration\":\n case \"string\": {\n return [\n ...BASE_FILTERS,\n ...IS_SENSITIVE_FILTERS,\n ...CONTAINS_FILTERS,\n ...STRING_PARSE_FILTERS\n ];\n }\n case \"float\":\n case \"integer\":\n case \"biginteger\":\n case \"decimal\": {\n return [...BASE_FILTERS, ...NUMERIC_FILTERS];\n }\n case \"time\":\n case \"date\": {\n return [...BASE_FILTERS, ...NUMERIC_FILTERS, ...CONTAINS_FILTERS];\n }\n case \"datetime\": {\n return [...BASE_FILTERS, ...NUMERIC_FILTERS];\n }\n default:\n return [...BASE_FILTERS, ...IS_SENSITIVE_FILTERS];\n }\n};\nconst List = () => {\n const [{ query }, setQuery] = useQueryParams();\n const options = useFilters(\"List\", ({ options: options2 }) => options2);\n const handleClick = (data) => {\n const nextFilters = (query?.filters?.$and ?? []).filter((filter) => {\n const [attributeName] = Object.keys(filter);\n if (attributeName !== data.name) {\n return true;\n }\n const { type, mainField } = options.find(({ name }) => name === attributeName);\n if (type === \"relation\") {\n const filterObj = filter[attributeName][mainField?.name ?? \"id\"];\n if (typeof filterObj === \"object\") {\n const [operator] = Object.keys(filterObj);\n const value = filterObj[operator];\n return !(operator === data.filter && value === data.value);\n }\n return true;\n } else {\n const filterObj = filter[attributeName];\n const [operator] = Object.keys(filterObj);\n const value = filterObj[operator];\n return !(operator === data.filter && value === data.value);\n }\n });\n setQuery({ filters: { $and: nextFilters }, page: 1 });\n };\n if (!query?.filters?.$and?.length) {\n return null;\n }\n return /* @__PURE__ */ jsx(Fragment, { children: query?.filters?.$and?.map((queryFilter) => {\n const [attributeName] = Object.keys(queryFilter);\n const filter = options.find(({ name }) => name === attributeName);\n const filterObj = queryFilter[attributeName];\n if (!filter || typeof filterObj !== \"object\" || filterObj === null) {\n return null;\n }\n if (filter.type === \"relation\") {\n const modelFilter = filterObj[filter.mainField?.name ?? \"id\"];\n if (typeof modelFilter === \"object\") {\n const [operator] = Object.keys(modelFilter);\n const value = modelFilter[operator];\n return /* @__PURE__ */ jsx(\n AttributeTag,\n {\n ...filter,\n onClick: handleClick,\n operator,\n value\n },\n `${attributeName}-${operator}-${value}`\n );\n }\n return null;\n } else {\n const [operator] = Object.keys(filterObj);\n const value = filterObj[operator];\n if (typeof value === \"object\") {\n return null;\n }\n return /* @__PURE__ */ jsx(\n AttributeTag,\n {\n ...filter,\n onClick: handleClick,\n operator,\n value\n },\n `${attributeName}-${operator}-${value}`\n );\n }\n }) });\n};\nconst AttributeTag = ({\n input,\n label,\n mainField,\n name,\n onClick,\n operator,\n options,\n value,\n ...filter\n}) => {\n const { formatMessage, formatDate, formatTime, formatNumber } = useIntl();\n const handleClick = () => {\n onClick({ name, value, filter: operator });\n };\n const type = mainField?.type ? mainField.type : filter.type;\n let formattedValue = value;\n switch (type) {\n case \"date\":\n formattedValue = formatDate(value, { dateStyle: \"full\" });\n break;\n case \"datetime\":\n formattedValue = formatDate(value, { dateStyle: \"full\", timeStyle: \"short\" });\n break;\n case \"time\":\n const [hour, minute] = value.split(\":\");\n const date = /* @__PURE__ */ new Date();\n date.setHours(Number(hour));\n date.setMinutes(Number(minute));\n formattedValue = formatTime(date, {\n hour: \"numeric\",\n minute: \"numeric\"\n });\n break;\n case \"float\":\n case \"integer\":\n case \"biginteger\":\n case \"decimal\":\n formattedValue = formatNumber(Number(value));\n break;\n }\n if (input && options) {\n const selectedOption = options.find((option) => {\n return (typeof option === \"string\" ? option : option.value) === value;\n });\n formattedValue = selectedOption ? typeof selectedOption === \"string\" ? selectedOption : selectedOption.label ?? selectedOption.value : value;\n }\n const content = `${label} ${formatMessage({\n id: `components.FilterOptions.FILTER_TYPES.${operator}`,\n defaultMessage: operator\n })} ${operator !== \"$null\" && operator !== \"$notNull\" ? formattedValue : \"\"}`;\n return /* @__PURE__ */ jsx(Tag, { padding: 1, onClick: handleClick, icon: /* @__PURE__ */ jsx(Cross, {}), children: content });\n};\nconst Filters = {\n List,\n Popover: PopoverImpl,\n Root,\n Trigger\n};\n\nexport { Filters as F };\n//# sourceMappingURL=Filters-hYfcsahl.mjs.map\n","import { jsxs, jsx, Fragment } from 'react/jsx-runtime';\nimport * as React from 'react';\nimport { useCollator, Combobox, ComboboxOption, Typography, Tooltip, Badge, Avatar, Flex, AvatarGroup, useNotifyAT, Loader, IconButton, Popover, TextButton, BaseCheckbox, HeaderLayout, ActionLayout, ContentLayout, lightTheme, Button } from '@strapi/design-system';\nimport { Cog, Layer, Plus } from '@strapi/icons';\nimport isEqual from 'lodash/isEqual';\nimport { stringify } from 'qs';\nimport { Helmet } from 'react-helmet';\nimport { useIntl } from 'react-intl';\nimport { NavLink, useNavigate, Link } from 'react-router-dom';\nimport styled from 'styled-components';\nimport { d as useAdminUsers, b as useEnterprise, B as BackButton, M as InjectionZone, O as SearchInput, T as Table, Q as TableActions, P as Pagination } from './index-1NFAbkxM.mjs';\nimport { o as useTracking, $ as useAuth, n as useQueryParams, aj as useContentTypeSchema, ak as useGetContentTypeConfigurationQuery, aI as CREATOR_FIELDS, l as useField, ay as prefixFileUrlWithBackendUrl, aJ as getRelationLabel, g as useDoc, aK as useGetRelationsQuery, q as getTranslation, h as useTypedSelector, k as useRBAC, j as useNotification, i as useAPIErrorHandler, aL as usePrev, D as buildValidParams, aM as useGetAllDocumentsQuery, u as useStrapiApp, P as Page, I as DocumentStatus, ab as HOOKS } from './reducers-IQWvK_9L.mjs';\nimport { c as getMainField, g as getDisplayName, a as useDocumentLayout, d as checkIfAttributeIsDisplayable, u as useDocumentRBAC, D as DocumentRBAC, e as convertListLayoutToFieldLayouts } from './useDocumentLayout-4trWL6Jz.mjs';\nimport { u as useSyncRbac } from './useSyncRbac-LNOzRXJ5.mjs';\nimport { F as Filters } from './Filters-hYfcsahl.mjs';\nimport isEmpty from 'lodash/isEmpty';\nimport parseISO from 'date-fns/parseISO';\nimport toString from 'lodash/toString';\nimport { Menu, LinkButton } from '@strapi/design-system/v2';\n\nconst REVIEW_WORKFLOW_FILTER_CE = [];\nconst NOT_ALLOWED_FILTERS = [\n \"json\",\n \"component\",\n \"media\",\n \"richtext\",\n \"dynamiczone\",\n \"password\",\n \"blocks\"\n];\nconst DEFAULT_ALLOWED_FILTERS = [\"createdAt\", \"updatedAt\"];\nconst USER_FILTER_ATTRIBUTES = [...CREATOR_FIELDS, \"strapi_assignee\"];\nconst FiltersImpl = ({ disabled, schema }) => {\n const { attributes, uid: model, options } = schema;\n const { formatMessage, locale } = useIntl();\n const { trackUsage } = useTracking();\n const allPermissions = useAuth(\"FiltersImpl\", (state) => state.permissions);\n const [{ query }] = useQueryParams();\n const { schemas } = useContentTypeSchema();\n const canReadAdminUsers = React.useMemo(\n () => allPermissions.filter(\n (permission) => permission.action === \"admin::users.read\" && permission.subject === null\n ).length > 0,\n [allPermissions]\n );\n const selectedUserIds = (query?.filters?.$and ?? []).reduce((acc, filter) => {\n const [key, value] = Object.entries(filter)[0];\n if (typeof value.id !== \"object\") {\n return acc;\n }\n const id = value.id.$eq || value.id.$ne;\n if (id && USER_FILTER_ATTRIBUTES.includes(key) && !acc.includes(id)) {\n acc.push(id);\n }\n return acc;\n }, []);\n const { data: userData, isLoading: isLoadingAdminUsers } = useAdminUsers(\n { filters: { id: { $in: selectedUserIds } } },\n {\n // fetch the list of admin users only if the filter contains users and the\n // current user has permissions to display users\n skip: selectedUserIds.length === 0 || !canReadAdminUsers\n }\n );\n const { users = [] } = userData ?? {};\n const { metadata } = useGetContentTypeConfigurationQuery(model, {\n selectFromResult: ({ data }) => ({ metadata: data?.contentType.metadatas ?? {} })\n });\n const formatter = useCollator(locale, {\n sensitivity: \"base\"\n });\n const displayedAttributeFilters = React.useMemo(() => {\n const [{ properties: { fields = [] } = { fields: [] } }] = allPermissions.filter(\n (permission) => permission.action === \"plugin::content-manager.explorer.read\" && permission.subject === model\n );\n const allowedFields = fields.filter((field) => {\n const attribute = attributes[field] ?? {};\n return attribute.type && !NOT_ALLOWED_FILTERS.includes(attribute.type);\n });\n return [\n \"id\",\n ...allowedFields,\n ...DEFAULT_ALLOWED_FILTERS,\n ...canReadAdminUsers ? CREATOR_FIELDS : []\n ].map((name) => {\n const attribute = attributes[name];\n if (NOT_ALLOWED_FILTERS.includes(attribute.type)) {\n return null;\n }\n const { mainField: mainFieldName = \"\", label } = metadata[name].list;\n let filter = {\n name,\n label: label ?? \"\",\n mainField: getMainField(attribute, mainFieldName, { schemas, components: {} }),\n // @ts-expect-error – TODO: this is filtered out above in the `allowedFields` call but TS complains, is there a better way to solve this?\n type: attribute.type\n };\n if (attribute.type === \"relation\" && \"target\" in attribute && attribute.target === \"admin::user\") {\n filter = {\n ...filter,\n input: AdminUsersFilter,\n options: users.map((user) => ({\n label: getDisplayName(user, formatMessage),\n value: user.id.toString()\n })),\n operators: [\n {\n label: formatMessage({\n id: \"components.FilterOptions.FILTER_TYPES.$eq\",\n defaultMessage: \"is\"\n }),\n value: \"$eq\"\n },\n {\n label: formatMessage({\n id: \"components.FilterOptions.FILTER_TYPES.$ne\",\n defaultMessage: \"is not\"\n }),\n value: \"$ne\"\n }\n ],\n mainField: {\n name: \"id\",\n type: \"integer\"\n }\n };\n }\n return filter;\n }).filter(Boolean);\n }, [\n allPermissions,\n model,\n canReadAdminUsers,\n attributes,\n metadata,\n schemas,\n users,\n formatMessage\n ]);\n const reviewWorkflowFilter = useEnterprise(\n REVIEW_WORKFLOW_FILTER_CE,\n async () => (await import('./constants-D6NLEhwu.mjs')).REVIEW_WORKFLOW_FILTERS,\n {\n combine(ceFilters, eeFilters) {\n return [\n ...ceFilters,\n ...eeFilters.filter((eeFilter) => {\n if (eeFilter.name === \"strapi_assignee\") {\n return canReadAdminUsers;\n }\n return true;\n }).map((eeFilter) => ({\n ...eeFilter,\n \"aria-label\": formatMessage(eeFilter.label),\n options: (\n // TODO: strapi_assignee should not be in here and rather defined\n // in the ee directory.\n eeFilter.name === \"strapi_assignee\" ? users.map((user) => ({\n label: getDisplayName(user, formatMessage),\n value: user.id.toString()\n })) : void 0\n )\n }))\n ];\n },\n defaultValue: [],\n // we have to wait for admin users to be fully loaded, because otherwise\n // combine is called to early and does not contain the latest state of\n // the users array\n enabled: !!options?.reviewWorkflows && !isLoadingAdminUsers\n }\n /**\n * this is cast because the data returns MessageDescriptor\n * as `metadatas.label` _then_ we turn it to a string.\n */\n );\n const onOpenChange = (isOpen) => {\n if (isOpen) {\n trackUsage(\"willFilterEntries\");\n }\n };\n const displayedFilters = [...displayedAttributeFilters, ...reviewWorkflowFilter].sort(\n (a, b) => formatter.compare(a.label, b.label)\n );\n const handleFilterChange = (data) => {\n const attribute = attributes[data.name];\n if (attribute) {\n trackUsage(\"didFilterEntries\", {\n useRelation: attribute.type === \"relation\"\n });\n }\n };\n return /* @__PURE__ */ jsxs(\n Filters.Root,\n {\n disabled,\n options: displayedFilters,\n onOpenChange,\n onChange: handleFilterChange,\n children: [\n /* @__PURE__ */ jsx(Filters.Trigger, {}),\n /* @__PURE__ */ jsx(Filters.Popover, {}),\n /* @__PURE__ */ jsx(Filters.List, {})\n ]\n }\n );\n};\nconst AdminUsersFilter = ({ name }) => {\n const [page, setPage] = React.useState(1);\n const { formatMessage } = useIntl();\n const { data, isLoading } = useAdminUsers({\n page\n });\n const field = useField(name);\n const handleOpenChange = (isOpen) => {\n if (!isOpen) {\n setPage(1);\n }\n };\n const users = data?.users || [];\n return /* @__PURE__ */ jsx(\n Combobox,\n {\n value: field.value,\n \"aria-label\": formatMessage({\n id: \"content-manager.components.Filters.usersSelect.label\",\n defaultMessage: \"Search and select a user to filter\"\n }),\n onOpenChange: handleOpenChange,\n onChange: (value) => field.onChange(name, value),\n loading: isLoading,\n onLoadMore: () => setPage((prev) => prev + 1),\n children: users.map((user) => {\n return /* @__PURE__ */ jsx(ComboboxOption, { value: user.id.toString(), children: getDisplayName(user, formatMessage) }, user.id);\n })\n }\n );\n};\n\nconst CellValue = ({ type, value }) => {\n const { formatDate, formatTime, formatNumber } = useIntl();\n let formattedValue = value;\n if (type === \"date\") {\n formattedValue = formatDate(parseISO(value), { dateStyle: \"full\" });\n }\n if (type === \"datetime\") {\n formattedValue = formatDate(value, { dateStyle: \"full\", timeStyle: \"short\" });\n }\n if (type === \"time\") {\n const [hour, minute, second] = value.split(\":\");\n const date = /* @__PURE__ */ new Date();\n date.setHours(hour);\n date.setMinutes(minute);\n date.setSeconds(second);\n formattedValue = formatTime(date, {\n timeStyle: \"short\"\n });\n }\n if ([\"float\", \"decimal\"].includes(type)) {\n formattedValue = formatNumber(value, {\n // Should be kept in sync with the corresponding value\n // in the design-system/NumberInput: https://github.com/strapi/design-system/blob/main/packages/strapi-design-system/src/NumberInput/NumberInput.js#L53\n maximumFractionDigits: 20\n });\n }\n if ([\"integer\", \"biginteger\"].includes(type)) {\n formattedValue = formatNumber(value, { maximumFractionDigits: 0 });\n }\n return toString(formattedValue);\n};\n\nconst SingleComponent = ({ content, mainField }) => {\n if (!mainField) {\n return null;\n }\n return /* @__PURE__ */ jsx(Tooltip, { label: content[mainField.name], children: /* @__PURE__ */ jsx(SingleComponentTypography, { textColor: \"neutral800\", ellipsis: true, children: /* @__PURE__ */ jsx(CellValue, { type: mainField.type, value: content[mainField.name] }) }) });\n};\nconst SingleComponentTypography = styled(Typography)`\n max-width: 250px;\n`;\nconst RepeatableComponent = ({ content, mainField }) => {\n const { formatMessage } = useIntl();\n if (!mainField) {\n return null;\n }\n return /* @__PURE__ */ jsxs(Menu.Root, { children: [\n /* @__PURE__ */ jsxs(MenuTrigger$1, { onClick: (e) => e.stopPropagation(), children: [\n /* @__PURE__ */ jsx(Badge, { children: content.length }),\n \" \",\n formatMessage(\n {\n id: \"content-manager.containers.list.items\",\n defaultMessage: \"{number, plural, =0 {items} one {item} other {items}}\"\n },\n { number: content.length }\n )\n ] }),\n /* @__PURE__ */ jsx(Menu.Content, { children: content.map((item) => /* @__PURE__ */ jsx(Menu.Item, { disabled: true, children: /* @__PURE__ */ jsx(RepeatableComponentTypography, { ellipsis: true, children: /* @__PURE__ */ jsx(CellValue, { type: mainField.type, value: item[mainField.name] }) }) }, item.id)) })\n ] });\n};\nconst RepeatableComponentTypography = styled(Typography)`\n max-width: 500px;\n`;\nconst MenuTrigger$1 = styled(Menu.Trigger)`\n svg {\n width: ${6 / 16}rem;\n height: ${4 / 16}rem;\n }\n`;\n\nconst getFileExtension = (ext) => ext && ext[0] === \".\" ? ext.substring(1) : ext;\nconst MediaSingle = ({ url, mime, alternativeText, name, ext, formats }) => {\n const fileURL = prefixFileUrlWithBackendUrl(url);\n if (mime.includes(\"image\")) {\n const thumbnail = formats?.thumbnail?.url;\n const mediaURL = prefixFileUrlWithBackendUrl(thumbnail) || fileURL;\n return /* @__PURE__ */ jsx(Avatar, { src: mediaURL, alt: alternativeText || name, preview: true });\n }\n const fileExtension = getFileExtension(ext);\n const fileName = name.length > 100 ? `${name.substring(0, 100)}...` : name;\n return /* @__PURE__ */ jsx(Tooltip, { description: fileName, children: /* @__PURE__ */ jsx(FileWrapper, { children: fileExtension }) });\n};\nconst FileWrapper = ({ children }) => {\n return /* @__PURE__ */ jsx(\n Flex,\n {\n as: \"span\",\n position: \"relative\",\n borderRadius: \"50%\",\n width: \"26px\",\n height: \"26px\",\n borderColor: \"neutral200\",\n background: \"neutral150\",\n paddingLeft: \"1px\",\n justifyContent: \"center\",\n alignItems: \"center\",\n children: /* @__PURE__ */ jsx(FileTypography, { variant: \"sigma\", textColor: \"neutral600\", children })\n }\n );\n};\nconst FileTypography = styled(Typography)`\n font-size: 0.6rem;\n line-height: 0.6rem;\n`;\nconst MediaMultiple = ({ content }) => {\n return /* @__PURE__ */ jsx(AvatarGroup, { children: content.map((file, index) => {\n const key = `${file.id}${index}`;\n if (index === 3) {\n const remainingFiles = `+${content.length - 3}`;\n return /* @__PURE__ */ jsx(FileWrapper, { children: remainingFiles }, key);\n }\n if (index > 3) {\n return null;\n }\n return /* @__PURE__ */ jsx(MediaSingle, { ...file }, key);\n }) });\n};\n\nconst RelationSingle = ({ mainField, content }) => {\n return /* @__PURE__ */ jsx(TypographyMaxWidth$1, { textColor: \"neutral800\", ellipsis: true, children: getRelationLabel(content, mainField) });\n};\nconst TypographyMaxWidth$1 = styled(Typography)`\n max-width: 500px;\n`;\nconst RelationMultiple = ({ mainField, content, rowId, name }) => {\n const { model } = useDoc();\n const { formatMessage } = useIntl();\n const { notifyStatus } = useNotifyAT();\n const [isOpen, setIsOpen] = React.useState(false);\n const [targetField] = name.split(\".\");\n const { data, isLoading } = useGetRelationsQuery(\n {\n model,\n id: rowId,\n targetField\n },\n {\n skip: !isOpen,\n refetchOnMountOrArgChange: true\n }\n );\n React.useEffect(() => {\n if (data) {\n notifyStatus(\n formatMessage({\n id: getTranslation(\"DynamicTable.relation-loaded\"),\n defaultMessage: \"Relations have been loaded\"\n })\n );\n }\n }, [data, formatMessage, notifyStatus]);\n return /* @__PURE__ */ jsxs(Menu.Root, { onOpenChange: (isOpen2) => setIsOpen(isOpen2), children: [\n /* @__PURE__ */ jsx(MenuTrigger, { onClick: (e) => e.stopPropagation(), children: /* @__PURE__ */ jsxs(Flex, { gap: 1, wrap: \"nowrap\", children: [\n /* @__PURE__ */ jsx(Badge, { children: content.count }),\n formatMessage(\n {\n id: \"content-manager.containers.list.items\",\n defaultMessage: \"{number, plural, =0 {items} one {item} other {items}}\"\n },\n { number: content.count }\n )\n ] }) }),\n /* @__PURE__ */ jsxs(Menu.Content, { children: [\n isLoading && /* @__PURE__ */ jsx(Menu.Item, { disabled: true, children: /* @__PURE__ */ jsx(Loader, { small: true, children: formatMessage({\n id: getTranslation(\"ListViewTable.relation-loading\"),\n defaultMessage: \"Relations are loading\"\n }) }) }),\n data?.results && /* @__PURE__ */ jsxs(Fragment, { children: [\n data.results.map((entry) => /* @__PURE__ */ jsx(Menu.Item, { disabled: true, children: /* @__PURE__ */ jsx(TypographyMaxWidth$1, { ellipsis: true, children: getRelationLabel(entry, mainField) }) }, entry.documentId)),\n data?.pagination && data?.pagination.total > 10 && /* @__PURE__ */ jsx(\n Menu.Item,\n {\n \"aria-disabled\": true,\n \"aria-label\": formatMessage({\n id: getTranslation(\"ListViewTable.relation-more\"),\n defaultMessage: \"This relation contains more entities than displayed\"\n }),\n children: /* @__PURE__ */ jsx(Typography, { children: \"…\" })\n }\n )\n ] })\n ] })\n ] });\n};\nconst MenuTrigger = styled(Menu.Trigger)`\n svg {\n width: ${6 / 16}rem;\n height: ${4 / 16}rem;\n }\n`;\n\nconst CellContent = ({ content, mainField, attribute, rowId, name }) => {\n if (!hasContent(content, mainField, attribute)) {\n return /* @__PURE__ */ jsx(Typography, { textColor: \"neutral800\", children: \"-\" });\n }\n switch (attribute.type) {\n case \"media\":\n if (!attribute.multiple) {\n return /* @__PURE__ */ jsx(MediaSingle, { ...content });\n }\n return /* @__PURE__ */ jsx(MediaMultiple, { content });\n case \"relation\": {\n if (isSingleRelation(attribute.relation)) {\n return /* @__PURE__ */ jsx(RelationSingle, { mainField, content });\n }\n return /* @__PURE__ */ jsx(RelationMultiple, { rowId, mainField, content, name });\n }\n case \"component\":\n if (attribute.repeatable) {\n return /* @__PURE__ */ jsx(RepeatableComponent, { mainField, content });\n }\n return /* @__PURE__ */ jsx(SingleComponent, { mainField, content });\n case \"string\":\n return /* @__PURE__ */ jsx(Tooltip, { description: content, children: /* @__PURE__ */ jsx(TypographyMaxWidth, { ellipsis: true, textColor: \"neutral800\", children: /* @__PURE__ */ jsx(CellValue, { type: attribute.type, value: content }) }) });\n default:\n return /* @__PURE__ */ jsx(TypographyMaxWidth, { ellipsis: true, textColor: \"neutral800\", children: /* @__PURE__ */ jsx(CellValue, { type: attribute.type, value: content }) });\n }\n};\nconst TypographyMaxWidth = styled(Typography)`\n max-width: 300px;\n`;\nconst hasContent = (content, mainField, attribute) => {\n if (attribute.type === \"component\") {\n if (attribute.repeatable || !mainField) {\n return content?.length > 0;\n }\n const value = content?.[mainField.name];\n if (mainField.name === \"id\" && ![void 0, null].includes(value)) {\n return true;\n }\n return !isEmpty(value);\n }\n if (attribute.type === \"relation\") {\n if (isSingleRelation(attribute.relation)) {\n return !isEmpty(content);\n }\n return content?.count > 0;\n }\n if ([\"integer\", \"decimal\", \"float\", \"number\"].includes(attribute.type)) {\n return typeof content === \"number\";\n }\n if (attribute.type === \"boolean\") {\n return content !== null;\n }\n return !isEmpty(content);\n};\nconst isSingleRelation = (type) => [\"oneToOne\", \"manyToOne\", \"oneToOneMorph\"].includes(type);\n\nconst ViewSettingsMenu = (props) => {\n const [isVisible, setIsVisible] = React.useState(false);\n const cogButtonRef = React.useRef(null);\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.contentManager?.collectionTypesConfigurations ?? []\n );\n const [{ query }] = useQueryParams();\n const { formatMessage } = useIntl();\n const {\n allowedActions: { canViewConfiguration }\n } = useRBAC({\n viewConfiguration: permissions\n });\n const handleToggle = () => {\n setIsVisible((prev) => !prev);\n };\n return /* @__PURE__ */ jsxs(Fragment, { children: [\n /* @__PURE__ */ jsx(\n IconButton,\n {\n icon: /* @__PURE__ */ jsx(Cog, {}),\n label: formatMessage({\n id: \"components.ViewSettings.tooltip\",\n defaultMessage: \"View Settings\"\n }),\n ref: cogButtonRef,\n onClick: handleToggle\n }\n ),\n isVisible && /* @__PURE__ */ jsx(\n Popover,\n {\n placement: \"bottom-end\",\n source: cogButtonRef,\n onDismiss: handleToggle,\n spacing: 4,\n padding: 3,\n children: /* @__PURE__ */ jsxs(Flex, { alignItems: \"stretch\", direction: \"column\", gap: 3, children: [\n canViewConfiguration ? /* @__PURE__ */ jsx(\n LinkButton,\n {\n size: \"S\",\n startIcon: /* @__PURE__ */ jsx(Layer, {}),\n variant: \"secondary\",\n as: NavLink,\n to: {\n pathname: \"configurations/list\",\n search: query.plugins ? stringify({ plugins: query.plugins }, { encode: false }) : \"\"\n },\n children: formatMessage({\n id: \"app.links.configure-view\",\n defaultMessage: \"Configure the view\"\n })\n }\n ) : null,\n /* @__PURE__ */ jsx(FieldPicker, { ...props })\n ] })\n }\n )\n ] });\n};\nconst FieldPicker = ({ headers = [], resetHeaders, setHeaders }) => {\n const { trackUsage } = useTracking();\n const { formatMessage, locale } = useIntl();\n const { schema, model } = useDoc();\n const { list } = useDocumentLayout(model);\n const formatter = useCollator(locale, {\n sensitivity: \"base\"\n });\n const attributes = schema?.attributes ?? {};\n const columns = Object.keys(attributes).filter((name) => checkIfAttributeIsDisplayable(attributes[name])).map((name) => ({\n name,\n label: list.metadatas[name]?.label ?? \"\"\n })).sort((a, b) => formatter.compare(a.label, b.label));\n const handleChange = (name) => {\n trackUsage(\"didChangeDisplayedFields\");\n const newHeaders = headers.includes(name) ? headers.filter((header) => header !== name) : [...headers, name];\n setHeaders(newHeaders);\n };\n const handleReset = () => {\n resetHeaders();\n };\n return /* @__PURE__ */ jsxs(Flex, { as: \"fieldset\", direction: \"column\", alignItems: \"stretch\", gap: 3, children: [\n /* @__PURE__ */ jsxs(Flex, { justifyContent: \"space-between\", children: [\n /* @__PURE__ */ jsx(Typography, { as: \"legend\", variant: \"pi\", fontWeight: \"bold\", children: formatMessage({\n id: \"containers.list.displayedFields\",\n defaultMessage: \"Displayed fields\"\n }) }),\n /* @__PURE__ */ jsx(TextButton, { onClick: handleReset, children: formatMessage({\n id: \"app.components.Button.reset\",\n defaultMessage: \"Reset\"\n }) })\n ] }),\n /* @__PURE__ */ jsx(Flex, { direction: \"column\", alignItems: \"stretch\", children: columns.map((header) => {\n const isActive = headers.includes(header.name);\n return /* @__PURE__ */ jsxs(\n ChackboxWrapper,\n {\n wrap: \"wrap\",\n gap: 2,\n as: \"label\",\n background: isActive ? \"primary100\" : \"transparent\",\n hasRadius: true,\n padding: 2,\n children: [\n /* @__PURE__ */ jsx(\n BaseCheckbox,\n {\n onChange: () => handleChange(header.name),\n value: isActive,\n name: header.name\n }\n ),\n /* @__PURE__ */ jsx(Typography, { fontSize: 1, children: header.label })\n ]\n },\n header.name\n );\n }) })\n ] });\n};\nconst ChackboxWrapper = styled(Flex)`\n :hover {\n background-color: ${(props) => props.theme.colors.primary100};\n }\n`;\n\nconst { INJECT_COLUMN_IN_TABLE } = HOOKS;\nconst REVIEW_WORKFLOW_COLUMNS_CE = null;\nconst REVIEW_WORKFLOW_COLUMNS_CELL_CE = {\n ReviewWorkflowsStageEE: () => null,\n ReviewWorkflowsAssigneeEE: () => null\n};\nconst ListViewPage = () => {\n const { trackUsage } = useTracking();\n const navigate = useNavigate();\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler(getTranslation);\n const { collectionType, model, schema } = useDoc();\n const { list } = useDocumentLayout(model);\n const [displayedHeaders, setDisplayedHeaders] = React.useState([]);\n const listLayout = usePrev(list.layout);\n React.useEffect(() => {\n if (!isEqual(listLayout, list.layout)) {\n setDisplayedHeaders(list.layout);\n }\n }, [list.layout, listLayout]);\n const handleSetHeaders = (headers) => {\n setDisplayedHeaders(\n convertListLayoutToFieldLayouts(headers, schema.attributes, list.metadatas)\n );\n };\n const [{ query }] = useQueryParams({\n page: \"1\",\n pageSize: list.settings.pageSize.toString(),\n sort: list.settings.defaultSortBy ? `${list.settings.defaultSortBy}:${list.settings.defaultSortOrder}` : \"\"\n });\n const params = React.useMemo(() => buildValidParams(query), [query]);\n const { data, error, isLoading } = useGetAllDocumentsQuery({\n model,\n params\n });\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: \"danger\",\n message: formatAPIError(error)\n });\n }\n }, [error, formatAPIError, toggleNotification]);\n const { results = [], pagination } = data ?? {};\n React.useEffect(() => {\n if (pagination && pagination.pageCount > 0 && pagination.page > pagination.pageCount) {\n navigate(\n {\n search: stringify({\n ...query,\n page: pagination.pageCount\n })\n },\n { replace: true }\n );\n }\n }, [pagination, formatMessage, query, navigate]);\n const { canCreate } = useDocumentRBAC(\"ListViewPage\", ({ canCreate: canCreate2 }) => ({\n canCreate: canCreate2\n }));\n const reviewWorkflowColumns = useEnterprise(\n REVIEW_WORKFLOW_COLUMNS_CE,\n async () => (await import('./constants-D6NLEhwu.mjs')).REVIEW_WORKFLOW_COLUMNS_EE,\n {\n enabled: !!schema?.options?.reviewWorkflows\n }\n );\n const ReviewWorkflowsColumns = useEnterprise(\n REVIEW_WORKFLOW_COLUMNS_CELL_CE,\n async () => {\n const { ReviewWorkflowsStageEE, ReviewWorkflowsAssigneeEE } = await import('./ReviewWorkflowsColumn-NUu47oVz.mjs');\n return { ReviewWorkflowsStageEE, ReviewWorkflowsAssigneeEE };\n },\n {\n enabled: !!schema?.options?.reviewWorkflows\n }\n );\n const runHookWaterfall = useStrapiApp(\"ListViewPage\", ({ runHookWaterfall: runHookWaterfall2 }) => runHookWaterfall2);\n const tableHeaders = React.useMemo(() => {\n const headers = runHookWaterfall(INJECT_COLUMN_IN_TABLE, {\n displayedHeaders,\n layout: list\n });\n const formattedHeaders = headers.displayedHeaders.map((header) => {\n return {\n ...header,\n label: typeof header.label === \"string\" ? header.label : formatMessage(header.label),\n name: `${header.name}${header.mainField ? `.${header.mainField}` : \"\"}`\n };\n });\n if (schema?.options?.draftAndPublish) {\n formattedHeaders.push({\n attribute: {\n type: \"custom\"\n },\n name: \"status\",\n label: formatMessage({\n id: getTranslation(`containers.list.table-headers.status`),\n defaultMessage: \"status\"\n }),\n searchable: false,\n sortable: false\n });\n }\n if (reviewWorkflowColumns) {\n formattedHeaders.push(\n ...reviewWorkflowColumns.map((column) => ({\n ...column,\n label: formatMessage(column.label)\n }))\n );\n }\n return formattedHeaders;\n }, [\n displayedHeaders,\n formatMessage,\n list,\n reviewWorkflowColumns,\n runHookWaterfall,\n schema?.options?.draftAndPublish\n ]);\n if (isLoading) {\n return /* @__PURE__ */ jsx(Page.Loading, {});\n }\n if (error) {\n return /* @__PURE__ */ jsx(Page.Error, {});\n }\n const contentTypeTitle = schema?.info.displayName ?? \"Untitled\";\n const handleRowClick = (id) => () => {\n trackUsage(\"willEditEntryFromList\");\n navigate({\n pathname: id.toString(),\n search: stringify({ plugins: query.plugins })\n });\n };\n return /* @__PURE__ */ jsxs(Page.Main, { children: [\n /* @__PURE__ */ jsx(Helmet, { title: `${contentTypeTitle} | Strapi` }),\n /* @__PURE__ */ jsx(\n HeaderLayout,\n {\n primaryAction: canCreate ? /* @__PURE__ */ jsx(CreateButton, {}) : null,\n subtitle: formatMessage(\n {\n id: getTranslation(\"pages.ListView.header-subtitle\"),\n defaultMessage: \"{number, plural, =0 {# entries} one {# entry} other {# entries}} found\"\n },\n { number: pagination?.total }\n ),\n title: contentTypeTitle,\n navigationAction: /* @__PURE__ */ jsx(BackButton, {})\n }\n ),\n /* @__PURE__ */ jsx(\n ActionLayout,\n {\n endActions: /* @__PURE__ */ jsxs(Fragment, { children: [\n /* @__PURE__ */ jsx(InjectionZone, { area: \"contentManager.listView.actions\" }),\n /* @__PURE__ */ jsx(\n ViewSettingsMenu,\n {\n setHeaders: handleSetHeaders,\n resetHeaders: () => setDisplayedHeaders(list.layout),\n headers: displayedHeaders.map((header) => header.name)\n }\n )\n ] }),\n startActions: /* @__PURE__ */ jsxs(Fragment, { children: [\n list.settings.searchable && /* @__PURE__ */ jsx(\n SearchInput,\n {\n disabled: results.length === 0,\n label: formatMessage(\n { id: \"app.component.search.label\", defaultMessage: \"Search for {target}\" },\n { target: contentTypeTitle }\n ),\n placeholder: formatMessage({\n id: \"global.search\",\n defaultMessage: \"Search\"\n }),\n trackedEvent: \"didSearch\"\n }\n ),\n list.settings.filterable && schema ? /* @__PURE__ */ jsx(FiltersImpl, { disabled: results.length === 0, schema }) : null\n ] })\n }\n ),\n /* @__PURE__ */ jsx(ContentLayout, { children: /* @__PURE__ */ jsxs(Flex, { gap: 4, direction: \"column\", alignItems: \"stretch\", children: [\n /* @__PURE__ */ jsxs(Table.Root, { rows: results, headers: tableHeaders, isLoading, children: [\n /* @__PURE__ */ jsx(Table.ActionBar, {}),\n /* @__PURE__ */ jsxs(Table.Content, { children: [\n /* @__PURE__ */ jsxs(Table.Head, { children: [\n /* @__PURE__ */ jsx(Table.HeaderCheckboxCell, {}),\n tableHeaders.map((header) => /* @__PURE__ */ jsx(Table.HeaderCell, { ...header }, header.name))\n ] }),\n /* @__PURE__ */ jsx(Table.Loading, {}),\n /* @__PURE__ */ jsx(Table.Empty, { action: canCreate ? /* @__PURE__ */ jsx(CreateButton, { variant: \"secondary\" }) : null }),\n /* @__PURE__ */ jsx(Table.Body, { children: results.map((row) => {\n return /* @__PURE__ */ jsxs(\n Table.Row,\n {\n cursor: \"pointer\",\n onClick: handleRowClick(row.documentId),\n children: [\n /* @__PURE__ */ jsx(Table.CheckboxCell, { id: row.id }),\n tableHeaders.map(({ cellFormatter, ...header }) => {\n if (header.name === \"status\") {\n const { status } = row;\n return /* @__PURE__ */ jsx(Table.Cell, { children: /* @__PURE__ */ jsx(DocumentStatus, { status, maxWidth: \"min-content\" }) }, header.name);\n }\n if (schema?.options?.reviewWorkflows) {\n if (header.name === \"strapi_stage\") {\n return /* @__PURE__ */ jsx(Table.Cell, { children: row.strapi_stage ? /* @__PURE__ */ jsx(\n ReviewWorkflowsColumns.ReviewWorkflowsStageEE,\n {\n color: row.strapi_stage.color ?? lightTheme.colors.primary600,\n name: row.strapi_stage.name\n }\n ) : /* @__PURE__ */ jsx(Typography, { textColor: \"neutral800\", children: \"-\" }) }, header.name);\n }\n if (header.name === \"strapi_assignee\") {\n return /* @__PURE__ */ jsx(Table.Cell, { children: row.strapi_assignee ? /* @__PURE__ */ jsx(\n ReviewWorkflowsColumns.ReviewWorkflowsAssigneeEE,\n {\n user: row.strapi_assignee\n }\n ) : /* @__PURE__ */ jsx(Typography, { textColor: \"neutral800\", children: \"-\" }) }, header.name);\n }\n }\n if ([\"createdBy\", \"updatedBy\"].includes(header.name.split(\".\")[0])) {\n return /* @__PURE__ */ jsx(Table.Cell, { children: /* @__PURE__ */ jsx(Typography, { textColor: \"neutral800\", children: row[header.name.split(\".\")[0]] ? getDisplayName(row[header.name.split(\".\")[0]], formatMessage) : \"-\" }) }, header.name);\n }\n if (typeof cellFormatter === \"function\") {\n return /* @__PURE__ */ jsx(Table.Cell, { children: cellFormatter(row, header, { collectionType, model }) }, header.name);\n }\n return /* @__PURE__ */ jsx(Table.Cell, { children: /* @__PURE__ */ jsx(\n CellContent,\n {\n content: row[header.name.split(\".\")[0]],\n rowId: row.documentId,\n ...header\n }\n ) }, header.name);\n }),\n /* @__PURE__ */ jsx(ActionsCell, { onClick: (e) => e.stopPropagation(), children: /* @__PURE__ */ jsx(TableActions, { document: row }) })\n ]\n },\n row.id\n );\n }) })\n ] })\n ] }),\n /* @__PURE__ */ jsxs(\n Pagination.Root,\n {\n ...pagination,\n onPageSizeChange: () => trackUsage(\"willChangeNumberOfEntriesPerPage\"),\n children: [\n /* @__PURE__ */ jsx(Pagination.PageSize, {}),\n /* @__PURE__ */ jsx(Pagination.Links, {})\n ]\n }\n )\n ] }) })\n ] });\n};\nconst ActionsCell = styled(Table.Cell)`\n display: flex;\n justify-content: flex-end;\n`;\nconst CreateButton = ({ variant }) => {\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n const [{ query }] = useQueryParams();\n return /* @__PURE__ */ jsx(\n Button,\n {\n variant,\n forwardedAs: Link,\n onClick: () => {\n trackUsage(\"willCreateEntry\", { status: \"draft\" });\n },\n startIcon: /* @__PURE__ */ jsx(Plus, {}),\n style: { textDecoration: \"none\" },\n to: {\n pathname: \"create\",\n search: stringify({ plugins: query.plugins })\n },\n children: formatMessage({\n id: getTranslation(\"HeaderLayout.button.label-add-entry\"),\n defaultMessage: \"Create new entry\"\n })\n }\n );\n};\nconst ProtectedListViewPage = () => {\n const { model } = useDoc();\n const [{ query }] = useQueryParams();\n const { permissions = [], isLoading, isError } = useSyncRbac(model, query, \"editView\");\n if (isLoading) {\n return /* @__PURE__ */ jsx(Page.Loading, {});\n }\n if (isError) {\n return /* @__PURE__ */ jsx(Page.Error, {});\n }\n return /* @__PURE__ */ jsx(Page.Protect, { permissions, children: ({ permissions: permissions2 }) => /* @__PURE__ */ jsx(DocumentRBAC, { permissions: permissions2, children: /* @__PURE__ */ jsx(ListViewPage, {}) }) });\n};\n\nexport { ListViewPage, ProtectedListViewPage };\n//# sourceMappingURL=ListViewPage-FE12IpwT.mjs.map\n"],"names":["stringify","Helmet"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { jsxs, jsx } from "react/jsx-runtime";
|
|
2
|
-
import { Flex, Box, Typography } from "@strapi/design-system";
|
|
3
|
-
import { ap as getStageColorByHex, aq as STAGE_COLOR_DEFAULT, a0 as getDisplayName } from "./index-1NFAbkxM-Km1zKLTh.mjs";
|
|
4
|
-
import { useIntl } from "react-intl";
|
|
5
|
-
const ReviewWorkflowsStageEE = ({
|
|
6
|
-
color = STAGE_COLOR_DEFAULT,
|
|
7
|
-
name
|
|
8
|
-
}) => {
|
|
9
|
-
const { themeColorName } = getStageColorByHex(color) ?? {};
|
|
10
|
-
return /* @__PURE__ */ jsxs(Flex, { alignItems: "center", gap: 2, maxWidth: `${300 / 16}rem`, children: [
|
|
11
|
-
/* @__PURE__ */ jsx(
|
|
12
|
-
Box,
|
|
13
|
-
{
|
|
14
|
-
height: 2,
|
|
15
|
-
background: color,
|
|
16
|
-
borderColor: themeColorName === "neutral0" ? "neutral150" : void 0,
|
|
17
|
-
hasRadius: true,
|
|
18
|
-
shrink: 0,
|
|
19
|
-
width: 2
|
|
20
|
-
}
|
|
21
|
-
),
|
|
22
|
-
/* @__PURE__ */ jsx(Typography, { fontWeight: "regular", textColor: "neutral700", ellipsis: true, children: name })
|
|
23
|
-
] });
|
|
24
|
-
};
|
|
25
|
-
const ReviewWorkflowsAssigneeEE = ({ user }) => {
|
|
26
|
-
const { formatMessage } = useIntl();
|
|
27
|
-
return /* @__PURE__ */ jsx(Typography, { textColor: "neutral800", children: getDisplayName(user, formatMessage) });
|
|
28
|
-
};
|
|
29
|
-
export {
|
|
30
|
-
ReviewWorkflowsAssigneeEE,
|
|
31
|
-
ReviewWorkflowsStageEE
|
|
32
|
-
};
|
|
33
|
-
//# sourceMappingURL=ReviewWorkflowsColumn-NUu47oVz-8gQO_Y5x.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ReviewWorkflowsColumn-NUu47oVz-8gQO_Y5x.mjs","sources":["../../../../core/admin/dist/admin/ReviewWorkflowsColumn-NUu47oVz.mjs"],"sourcesContent":["import { jsxs, jsx } from 'react/jsx-runtime';\nimport { Flex, Box, Typography } from '@strapi/design-system';\nimport { I as getStageColorByHex, G as STAGE_COLOR_DEFAULT } from './index-1NFAbkxM.mjs';\nimport { useIntl } from 'react-intl';\nimport { g as getDisplayName } from './useDocumentLayout-4trWL6Jz.mjs';\n\nconst ReviewWorkflowsStageEE = ({\n color = STAGE_COLOR_DEFAULT,\n name\n}) => {\n const { themeColorName } = getStageColorByHex(color) ?? {};\n return /* @__PURE__ */ jsxs(Flex, { alignItems: \"center\", gap: 2, maxWidth: `${300 / 16}rem`, children: [\n /* @__PURE__ */ jsx(\n Box,\n {\n height: 2,\n background: color,\n borderColor: themeColorName === \"neutral0\" ? \"neutral150\" : void 0,\n hasRadius: true,\n shrink: 0,\n width: 2\n }\n ),\n /* @__PURE__ */ jsx(Typography, { fontWeight: \"regular\", textColor: \"neutral700\", ellipsis: true, children: name })\n ] });\n};\n\nconst ReviewWorkflowsAssigneeEE = ({ user }) => {\n const { formatMessage } = useIntl();\n return /* @__PURE__ */ jsx(Typography, { textColor: \"neutral800\", children: getDisplayName(user, formatMessage) });\n};\n\nexport { ReviewWorkflowsAssigneeEE, ReviewWorkflowsStageEE };\n//# sourceMappingURL=ReviewWorkflowsColumn-NUu47oVz.mjs.map\n"],"names":[],"mappings":";;;;AAMK,MAAC,yBAAyB,CAAC;AAAA,EAC9B,QAAQ;AAAA,EACR;AACF,MAAM;AACJ,QAAM,EAAE,eAAgB,IAAG,mBAAmB,KAAK,KAAK,CAAA;AACxD,SAAuB,qBAAK,MAAM,EAAE,YAAY,UAAU,KAAK,GAAG,UAAU,GAAG,MAAM,EAAE,OAAO,UAAU;AAAA,IACtF;AAAA,MACd;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,YAAY;AAAA,QACZ,aAAa,mBAAmB,aAAa,eAAe;AAAA,QAC5D,WAAW;AAAA,QACX,QAAQ;AAAA,QACR,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACe,oBAAI,YAAY,EAAE,YAAY,WAAW,WAAW,cAAc,UAAU,MAAM,UAAU,KAAI,CAAE;AAAA,EACnH,EAAA,CAAE;AACL;AAEK,MAAC,4BAA4B,CAAC,EAAE,WAAW;AAC9C,QAAM,EAAE,kBAAkB;AAC1B,SAAuB,oBAAI,YAAY,EAAE,WAAW,cAAc,UAAU,eAAe,MAAM,aAAa,EAAC,CAAE;AACnH;"}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
-
const jsxRuntime = require("react/jsx-runtime");
|
|
4
|
-
const designSystem = require("@strapi/design-system");
|
|
5
|
-
const index1NFAbkxM = require("./index-1NFAbkxM-c8HdvwSA.js");
|
|
6
|
-
const reactIntl = require("react-intl");
|
|
7
|
-
const ReviewWorkflowsStageEE = ({
|
|
8
|
-
color = index1NFAbkxM.STAGE_COLOR_DEFAULT,
|
|
9
|
-
name
|
|
10
|
-
}) => {
|
|
11
|
-
const { themeColorName } = index1NFAbkxM.getStageColorByHex(color) ?? {};
|
|
12
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { alignItems: "center", gap: 2, maxWidth: `${300 / 16}rem`, children: [
|
|
13
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
14
|
-
designSystem.Box,
|
|
15
|
-
{
|
|
16
|
-
height: 2,
|
|
17
|
-
background: color,
|
|
18
|
-
borderColor: themeColorName === "neutral0" ? "neutral150" : void 0,
|
|
19
|
-
hasRadius: true,
|
|
20
|
-
shrink: 0,
|
|
21
|
-
width: 2
|
|
22
|
-
}
|
|
23
|
-
),
|
|
24
|
-
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { fontWeight: "regular", textColor: "neutral700", ellipsis: true, children: name })
|
|
25
|
-
] });
|
|
26
|
-
};
|
|
27
|
-
const ReviewWorkflowsAssigneeEE = ({ user }) => {
|
|
28
|
-
const { formatMessage } = reactIntl.useIntl();
|
|
29
|
-
return /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { textColor: "neutral800", children: index1NFAbkxM.getDisplayName(user, formatMessage) });
|
|
30
|
-
};
|
|
31
|
-
exports.ReviewWorkflowsAssigneeEE = ReviewWorkflowsAssigneeEE;
|
|
32
|
-
exports.ReviewWorkflowsStageEE = ReviewWorkflowsStageEE;
|
|
33
|
-
//# sourceMappingURL=ReviewWorkflowsColumn-NUu47oVz-ARD7iQQF.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ReviewWorkflowsColumn-NUu47oVz-ARD7iQQF.js","sources":["../../../../core/admin/dist/admin/ReviewWorkflowsColumn-NUu47oVz.mjs"],"sourcesContent":["import { jsxs, jsx } from 'react/jsx-runtime';\nimport { Flex, Box, Typography } from '@strapi/design-system';\nimport { I as getStageColorByHex, G as STAGE_COLOR_DEFAULT } from './index-1NFAbkxM.mjs';\nimport { useIntl } from 'react-intl';\nimport { g as getDisplayName } from './useDocumentLayout-4trWL6Jz.mjs';\n\nconst ReviewWorkflowsStageEE = ({\n color = STAGE_COLOR_DEFAULT,\n name\n}) => {\n const { themeColorName } = getStageColorByHex(color) ?? {};\n return /* @__PURE__ */ jsxs(Flex, { alignItems: \"center\", gap: 2, maxWidth: `${300 / 16}rem`, children: [\n /* @__PURE__ */ jsx(\n Box,\n {\n height: 2,\n background: color,\n borderColor: themeColorName === \"neutral0\" ? \"neutral150\" : void 0,\n hasRadius: true,\n shrink: 0,\n width: 2\n }\n ),\n /* @__PURE__ */ jsx(Typography, { fontWeight: \"regular\", textColor: \"neutral700\", ellipsis: true, children: name })\n ] });\n};\n\nconst ReviewWorkflowsAssigneeEE = ({ user }) => {\n const { formatMessage } = useIntl();\n return /* @__PURE__ */ jsx(Typography, { textColor: \"neutral800\", children: getDisplayName(user, formatMessage) });\n};\n\nexport { ReviewWorkflowsAssigneeEE, ReviewWorkflowsStageEE };\n//# sourceMappingURL=ReviewWorkflowsColumn-NUu47oVz.mjs.map\n"],"names":["STAGE_COLOR_DEFAULT","getStageColorByHex","jsxs","Flex","jsx","Box","Typography","useIntl","getDisplayName"],"mappings":";;;;;;AAMK,MAAC,yBAAyB,CAAC;AAAA,EAC9B,QAAQA,cAAmB;AAAA,EAC3B;AACF,MAAM;AACJ,QAAM,EAAE,eAAgB,IAAGC,cAAkB,mBAAC,KAAK,KAAK,CAAA;AACxD,SAAuBC,2BAAI,KAACC,aAAI,MAAE,EAAE,YAAY,UAAU,KAAK,GAAG,UAAU,GAAG,MAAM,EAAE,OAAO,UAAU;AAAA,IACtFC,2BAAG;AAAA,MACjBC,aAAG;AAAA,MACH;AAAA,QACE,QAAQ;AAAA,QACR,YAAY;AAAA,QACZ,aAAa,mBAAmB,aAAa,eAAe;AAAA,QAC5D,WAAW;AAAA,QACX,QAAQ;AAAA,QACR,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACeD,2BAAAA,IAAIE,aAAU,YAAE,EAAE,YAAY,WAAW,WAAW,cAAc,UAAU,MAAM,UAAU,KAAI,CAAE;AAAA,EACnH,EAAA,CAAE;AACL;AAEK,MAAC,4BAA4B,CAAC,EAAE,WAAW;AAC9C,QAAM,EAAE,kBAAkBC,UAAAA;AAC1B,SAAuBH,+BAAIE,aAAAA,YAAY,EAAE,WAAW,cAAc,UAAUE,cAAAA,eAAe,MAAM,aAAa,EAAC,CAAE;AACnH;;;"}
|
|
@@ -1,209 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
-
const index1NFAbkxM = require("./index-1NFAbkxM-c8HdvwSA.js");
|
|
4
|
-
const jsxRuntime = require("react/jsx-runtime");
|
|
5
|
-
const React = require("react");
|
|
6
|
-
const designSystem = require("@strapi/design-system");
|
|
7
|
-
const reactIntl = require("react-intl");
|
|
8
|
-
function _interopNamespace(e) {
|
|
9
|
-
if (e && e.__esModule)
|
|
10
|
-
return e;
|
|
11
|
-
const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
|
|
12
|
-
if (e) {
|
|
13
|
-
for (const k in e) {
|
|
14
|
-
if (k !== "default") {
|
|
15
|
-
const d = Object.getOwnPropertyDescriptor(e, k);
|
|
16
|
-
Object.defineProperty(n, k, d.get ? d : {
|
|
17
|
-
enumerable: true,
|
|
18
|
-
get: () => e[k]
|
|
19
|
-
});
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
n.default = e;
|
|
24
|
-
return Object.freeze(n);
|
|
25
|
-
}
|
|
26
|
-
const React__namespace = /* @__PURE__ */ _interopNamespace(React);
|
|
27
|
-
function useReviewWorkflows(params = {}) {
|
|
28
|
-
const { id = "", ...queryParams } = params;
|
|
29
|
-
const { data, isLoading } = index1NFAbkxM.useGetWorkflowsQuery({
|
|
30
|
-
id,
|
|
31
|
-
populate: "stages",
|
|
32
|
-
...queryParams
|
|
33
|
-
});
|
|
34
|
-
const [createWorkflow] = index1NFAbkxM.useCreateWorkflowMutation();
|
|
35
|
-
const [updateWorkflow] = index1NFAbkxM.useUpdateWorkflowMutation();
|
|
36
|
-
const [deleteWorkflow] = index1NFAbkxM.useDeleteWorkflowMutation();
|
|
37
|
-
const { workflows, meta } = data ?? {};
|
|
38
|
-
return {
|
|
39
|
-
// meta contains e.g. the total of all workflows. we can not use
|
|
40
|
-
// the pagination object here, because the list is not paginated.
|
|
41
|
-
meta,
|
|
42
|
-
workflows,
|
|
43
|
-
isLoading,
|
|
44
|
-
createWorkflow,
|
|
45
|
-
updateWorkflow,
|
|
46
|
-
deleteWorkflow
|
|
47
|
-
};
|
|
48
|
-
}
|
|
49
|
-
const AssigneeFilter = ({ name }) => {
|
|
50
|
-
const [page, setPage] = React__namespace.useState(1);
|
|
51
|
-
const { formatMessage } = reactIntl.useIntl();
|
|
52
|
-
const { data, isLoading } = index1NFAbkxM.useAdminUsers({
|
|
53
|
-
page
|
|
54
|
-
});
|
|
55
|
-
const users = data?.users || [];
|
|
56
|
-
const field = index1NFAbkxM.useField(name);
|
|
57
|
-
const handleChange = (value) => {
|
|
58
|
-
setPage(1);
|
|
59
|
-
field.onChange(name, value);
|
|
60
|
-
};
|
|
61
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
62
|
-
designSystem.Combobox,
|
|
63
|
-
{
|
|
64
|
-
value: field.value,
|
|
65
|
-
"aria-label": formatMessage({
|
|
66
|
-
id: "content-manager.components.Filters.usersSelect.label",
|
|
67
|
-
defaultMessage: "Search and select an user to filter"
|
|
68
|
-
}),
|
|
69
|
-
onChange: handleChange,
|
|
70
|
-
loading: isLoading,
|
|
71
|
-
onLoadMore: () => setPage((prev) => prev + 1),
|
|
72
|
-
children: users.map((user) => {
|
|
73
|
-
return /* @__PURE__ */ jsxRuntime.jsx(designSystem.ComboboxOption, { value: user.id.toString(), children: index1NFAbkxM.getDisplayName(user, formatMessage) }, user.id);
|
|
74
|
-
})
|
|
75
|
-
}
|
|
76
|
-
);
|
|
77
|
-
};
|
|
78
|
-
const StageFilter = (props) => {
|
|
79
|
-
const { model } = index1NFAbkxM.useDoc();
|
|
80
|
-
const { formatMessage } = reactIntl.useIntl();
|
|
81
|
-
const { workflows, isLoading } = useReviewWorkflows({ filters: { contentTypes: model } });
|
|
82
|
-
const field = index1NFAbkxM.useField(props.name);
|
|
83
|
-
const [workflow] = workflows ?? [];
|
|
84
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
85
|
-
designSystem.SingleSelect,
|
|
86
|
-
{
|
|
87
|
-
"aria-label": formatMessage({
|
|
88
|
-
id: "content-manager.components.Filters.reviewWorkflows.label",
|
|
89
|
-
defaultMessage: "Search and select an workflow stage to filter"
|
|
90
|
-
}),
|
|
91
|
-
value: field.value,
|
|
92
|
-
onChange: (value) => {
|
|
93
|
-
field.onChange(props.name, value);
|
|
94
|
-
},
|
|
95
|
-
loading: isLoading,
|
|
96
|
-
customizeContent: () => /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { as: "span", justifyContent: "space-between", alignItems: "center", width: "100%", children: [
|
|
97
|
-
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { textColor: "neutral800", ellipsis: true, children: field.value }),
|
|
98
|
-
isLoading ? /* @__PURE__ */ jsxRuntime.jsx(designSystem.Loader, { small: true, style: { display: "flex" } }) : null
|
|
99
|
-
] }),
|
|
100
|
-
children: (workflow?.stages ?? []).map(({ id, color, name }) => {
|
|
101
|
-
const { themeColorName } = index1NFAbkxM.getStageColorByHex(color) ?? {};
|
|
102
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
103
|
-
designSystem.SingleSelectOption,
|
|
104
|
-
{
|
|
105
|
-
startIcon: /* @__PURE__ */ jsxRuntime.jsx(
|
|
106
|
-
designSystem.Flex,
|
|
107
|
-
{
|
|
108
|
-
height: 2,
|
|
109
|
-
background: color,
|
|
110
|
-
borderColor: themeColorName === "neutral0" ? "neutral150" : void 0,
|
|
111
|
-
hasRadius: true,
|
|
112
|
-
shrink: 0,
|
|
113
|
-
width: 2
|
|
114
|
-
}
|
|
115
|
-
),
|
|
116
|
-
value: name,
|
|
117
|
-
children: name
|
|
118
|
-
},
|
|
119
|
-
id
|
|
120
|
-
);
|
|
121
|
-
})
|
|
122
|
-
}
|
|
123
|
-
);
|
|
124
|
-
};
|
|
125
|
-
const REVIEW_WORKFLOW_COLUMNS_EE = [
|
|
126
|
-
{
|
|
127
|
-
name: index1NFAbkxM.STAGE_ATTRIBUTE_NAME,
|
|
128
|
-
attribute: {
|
|
129
|
-
type: "relation",
|
|
130
|
-
relation: "oneToMany",
|
|
131
|
-
target: "admin::review-workflow-stage"
|
|
132
|
-
},
|
|
133
|
-
label: {
|
|
134
|
-
id: index1NFAbkxM.getTranslation(`containers.list.table-headers.reviewWorkflows.stage`),
|
|
135
|
-
defaultMessage: "Review stage"
|
|
136
|
-
},
|
|
137
|
-
searchable: false,
|
|
138
|
-
sortable: true,
|
|
139
|
-
mainField: {
|
|
140
|
-
name: "name",
|
|
141
|
-
type: "string"
|
|
142
|
-
}
|
|
143
|
-
},
|
|
144
|
-
{
|
|
145
|
-
name: index1NFAbkxM.ASSIGNEE_ATTRIBUTE_NAME,
|
|
146
|
-
attribute: {
|
|
147
|
-
type: "relation",
|
|
148
|
-
target: "admin::user",
|
|
149
|
-
relation: "oneToMany"
|
|
150
|
-
},
|
|
151
|
-
label: {
|
|
152
|
-
id: index1NFAbkxM.getTranslation(`containers.list.table-headers.reviewWorkflows.assignee`),
|
|
153
|
-
defaultMessage: "Assignee"
|
|
154
|
-
},
|
|
155
|
-
searchable: false,
|
|
156
|
-
sortable: true,
|
|
157
|
-
mainField: {
|
|
158
|
-
name: "firstname",
|
|
159
|
-
type: "string"
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
];
|
|
163
|
-
const REVIEW_WORKFLOW_FILTERS = [
|
|
164
|
-
{
|
|
165
|
-
mainField: {
|
|
166
|
-
name: "name",
|
|
167
|
-
type: "string"
|
|
168
|
-
},
|
|
169
|
-
input: StageFilter,
|
|
170
|
-
label: {
|
|
171
|
-
id: index1NFAbkxM.getTranslation(`containers.list.table-headers.reviewWorkflows.stage`),
|
|
172
|
-
defaultMessage: "Review stage"
|
|
173
|
-
},
|
|
174
|
-
name: "strapi_stage",
|
|
175
|
-
type: "relation"
|
|
176
|
-
},
|
|
177
|
-
{
|
|
178
|
-
type: "relation",
|
|
179
|
-
mainField: {
|
|
180
|
-
name: "id",
|
|
181
|
-
type: "integer"
|
|
182
|
-
},
|
|
183
|
-
input: AssigneeFilter,
|
|
184
|
-
operators: [
|
|
185
|
-
{
|
|
186
|
-
label: {
|
|
187
|
-
id: "components.FilterOptions.FILTER_TYPES.$eq",
|
|
188
|
-
defaultMessage: "is"
|
|
189
|
-
},
|
|
190
|
-
value: "$eq"
|
|
191
|
-
},
|
|
192
|
-
{
|
|
193
|
-
label: {
|
|
194
|
-
id: "components.FilterOptions.FILTER_TYPES.$ne",
|
|
195
|
-
defaultMessage: "is not"
|
|
196
|
-
},
|
|
197
|
-
value: "$ne"
|
|
198
|
-
}
|
|
199
|
-
],
|
|
200
|
-
label: {
|
|
201
|
-
id: index1NFAbkxM.getTranslation(`containers.list.table-headers.reviewWorkflows.assignee.label`),
|
|
202
|
-
defaultMessage: "Assignee"
|
|
203
|
-
},
|
|
204
|
-
name: "strapi_assignee"
|
|
205
|
-
}
|
|
206
|
-
];
|
|
207
|
-
exports.REVIEW_WORKFLOW_COLUMNS_EE = REVIEW_WORKFLOW_COLUMNS_EE;
|
|
208
|
-
exports.REVIEW_WORKFLOW_FILTERS = REVIEW_WORKFLOW_FILTERS;
|
|
209
|
-
//# sourceMappingURL=constants-D6NLEhwu-4IL8biHd.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"constants-D6NLEhwu-4IL8biHd.js","sources":["../../../../core/admin/dist/admin/useReviewWorkflows-HwyFyit7.mjs","../../../../core/admin/dist/admin/constants-D6NLEhwu.mjs"],"sourcesContent":["import { i as useGetWorkflowsQuery, j as useCreateWorkflowMutation, k as useUpdateWorkflowMutation, l as useDeleteWorkflowMutation } from './index-1NFAbkxM.mjs';\n\nfunction useReviewWorkflows(params = {}) {\n const { id = \"\", ...queryParams } = params;\n const { data, isLoading } = useGetWorkflowsQuery({\n id,\n populate: \"stages\",\n ...queryParams\n });\n const [createWorkflow] = useCreateWorkflowMutation();\n const [updateWorkflow] = useUpdateWorkflowMutation();\n const [deleteWorkflow] = useDeleteWorkflowMutation();\n const { workflows, meta } = data ?? {};\n return {\n // meta contains e.g. the total of all workflows. we can not use\n // the pagination object here, because the list is not paginated.\n meta,\n workflows,\n isLoading,\n createWorkflow,\n updateWorkflow,\n deleteWorkflow\n };\n}\n\nexport { useReviewWorkflows as u };\n//# sourceMappingURL=useReviewWorkflows-HwyFyit7.mjs.map\n","import { l as useField, g as useDoc, q as getTranslation } from './reducers-IQWvK_9L.mjs';\nimport { d as useAdminUsers, I as getStageColorByHex, a5 as STAGE_ATTRIBUTE_NAME, a6 as ASSIGNEE_ATTRIBUTE_NAME } from './index-1NFAbkxM.mjs';\nimport { jsx, jsxs } from 'react/jsx-runtime';\nimport * as React from 'react';\nimport { Combobox, ComboboxOption, SingleSelect, Flex, Typography, Loader, SingleSelectOption } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { g as getDisplayName } from './useDocumentLayout-4trWL6Jz.mjs';\nimport { u as useReviewWorkflows } from './useReviewWorkflows-HwyFyit7.mjs';\n\nconst AssigneeFilter = ({ name }) => {\n const [page, setPage] = React.useState(1);\n const { formatMessage } = useIntl();\n const { data, isLoading } = useAdminUsers({\n page\n });\n const users = data?.users || [];\n const field = useField(name);\n const handleChange = (value) => {\n setPage(1);\n field.onChange(name, value);\n };\n return /* @__PURE__ */ jsx(\n Combobox,\n {\n value: field.value,\n \"aria-label\": formatMessage({\n id: \"content-manager.components.Filters.usersSelect.label\",\n defaultMessage: \"Search and select an user to filter\"\n }),\n onChange: handleChange,\n loading: isLoading,\n onLoadMore: () => setPage((prev) => prev + 1),\n children: users.map((user) => {\n return /* @__PURE__ */ jsx(ComboboxOption, { value: user.id.toString(), children: getDisplayName(user, formatMessage) }, user.id);\n })\n }\n );\n};\n\nconst StageFilter = (props) => {\n const { model } = useDoc();\n const { formatMessage } = useIntl();\n const { workflows, isLoading } = useReviewWorkflows({ filters: { contentTypes: model } });\n const field = useField(props.name);\n const [workflow] = workflows ?? [];\n return /* @__PURE__ */ jsx(\n SingleSelect,\n {\n \"aria-label\": formatMessage({\n id: \"content-manager.components.Filters.reviewWorkflows.label\",\n defaultMessage: \"Search and select an workflow stage to filter\"\n }),\n value: field.value,\n onChange: (value) => {\n field.onChange(props.name, value);\n },\n loading: isLoading,\n customizeContent: () => /* @__PURE__ */ jsxs(Flex, { as: \"span\", justifyContent: \"space-between\", alignItems: \"center\", width: \"100%\", children: [\n /* @__PURE__ */ jsx(Typography, { textColor: \"neutral800\", ellipsis: true, children: field.value }),\n isLoading ? /* @__PURE__ */ jsx(Loader, { small: true, style: { display: \"flex\" } }) : null\n ] }),\n children: (workflow?.stages ?? []).map(({ id, color, name }) => {\n const { themeColorName } = getStageColorByHex(color) ?? {};\n return /* @__PURE__ */ jsx(\n SingleSelectOption,\n {\n startIcon: /* @__PURE__ */ jsx(\n Flex,\n {\n height: 2,\n background: color,\n borderColor: themeColorName === \"neutral0\" ? \"neutral150\" : void 0,\n hasRadius: true,\n shrink: 0,\n width: 2\n }\n ),\n value: name,\n children: name\n },\n id\n );\n })\n }\n );\n};\n\nconst REVIEW_WORKFLOW_COLUMNS_EE = [\n {\n name: STAGE_ATTRIBUTE_NAME,\n attribute: {\n type: \"relation\",\n relation: \"oneToMany\",\n target: \"admin::review-workflow-stage\"\n },\n label: {\n id: getTranslation(`containers.list.table-headers.reviewWorkflows.stage`),\n defaultMessage: \"Review stage\"\n },\n searchable: false,\n sortable: true,\n mainField: {\n name: \"name\",\n type: \"string\"\n }\n },\n {\n name: ASSIGNEE_ATTRIBUTE_NAME,\n attribute: {\n type: \"relation\",\n target: \"admin::user\",\n relation: \"oneToMany\"\n },\n label: {\n id: getTranslation(`containers.list.table-headers.reviewWorkflows.assignee`),\n defaultMessage: \"Assignee\"\n },\n searchable: false,\n sortable: true,\n mainField: {\n name: \"firstname\",\n type: \"string\"\n }\n }\n];\nconst REVIEW_WORKFLOW_FILTERS = [\n {\n mainField: {\n name: \"name\",\n type: \"string\"\n },\n input: StageFilter,\n label: {\n id: getTranslation(`containers.list.table-headers.reviewWorkflows.stage`),\n defaultMessage: \"Review stage\"\n },\n name: \"strapi_stage\",\n type: \"relation\"\n },\n {\n type: \"relation\",\n mainField: {\n name: \"id\",\n type: \"integer\"\n },\n input: AssigneeFilter,\n operators: [\n {\n label: {\n id: \"components.FilterOptions.FILTER_TYPES.$eq\",\n defaultMessage: \"is\"\n },\n value: \"$eq\"\n },\n {\n label: {\n id: \"components.FilterOptions.FILTER_TYPES.$ne\",\n defaultMessage: \"is not\"\n },\n value: \"$ne\"\n }\n ],\n label: {\n id: getTranslation(`containers.list.table-headers.reviewWorkflows.assignee.label`),\n defaultMessage: \"Assignee\"\n },\n name: \"strapi_assignee\"\n }\n];\n\nexport { REVIEW_WORKFLOW_COLUMNS_EE, REVIEW_WORKFLOW_FILTERS };\n//# sourceMappingURL=constants-D6NLEhwu.mjs.map\n"],"names":["useGetWorkflowsQuery","useCreateWorkflowMutation","useUpdateWorkflowMutation","useDeleteWorkflowMutation","React","useIntl","useAdminUsers","useField","jsx","Combobox","ComboboxOption","getDisplayName","useDoc","SingleSelect","jsxs","Flex","Typography","Loader","getStageColorByHex","SingleSelectOption","STAGE_ATTRIBUTE_NAME","getTranslation","ASSIGNEE_ATTRIBUTE_NAME"],"mappings":"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"}
|