Files
pole-book/server/node_modules/.strapi/vite/deps/App-H27Y6V6P.js

11162 lines
380 KiB
JavaScript
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import {
require_arrayIncludesWith
} from "./chunk-WJHEGEPQ.js";
import {
AttributeIcon,
COMPONENT_ICONS,
DataManagerContext,
FormModalNavigationContext,
getTrad,
useDataManager,
useFormModalNavigation
} from "./chunk-6EDW4YHC.js";
import {
require_sortBy
} from "./chunk-FSHORG2W.js";
import "./chunk-T2YF43GM.js";
import {
require_groupBy
} from "./chunk-MUOUY6GG.js";
import "./chunk-NE3KAGU6.js";
import {
AutoReloadOverlayBlockerProvider,
MAX_COMPONENT_DEPTH,
PERMISSIONS,
actions,
actions2,
createComponentUid,
createUid,
getRelationType,
initialState,
initialState2,
makeUnique,
nameToSlug,
require_slugify,
retrieveComponentsFromSchema,
useAutoReloadOverlayBlocker
} from "./chunk-7HX4OIS5.js";
import "./chunk-6LY4MOO2.js";
import {
pluginId
} from "./chunk-SQLDXQZE.js";
import "./chunk-QF6GPHA4.js";
import "./chunk-JRLAXHTE.js";
import "./chunk-E4IFZ6ZT.js";
import {
require_pluralize
} from "./chunk-XNACAI67.js";
import "./chunk-QLEKUQKW.js";
import "./chunk-4J3VOWQV.js";
import {
useGuidedTour
} from "./chunk-PFI4R5WA.js";
import "./chunk-B3BGMYGX.js";
import "./chunk-W6ICJ5TB.js";
import "./chunk-IHYIPMY2.js";
import "./chunk-UWHSN2C7.js";
import "./chunk-ERK7O2GM.js";
import {
useFetchClient
} from "./chunk-FCIM6RNO.js";
import "./chunk-J33IXKN4.js";
import {
ConfirmDialog
} from "./chunk-NP53ZCXD.js";
import {
formatISO
} from "./chunk-ED4XR3VQ.js";
import "./chunk-MBK4V2X7.js";
import {
require_omit
} from "./chunk-5ESYXDTN.js";
import "./chunk-K65KIEAL.js";
import "./chunk-B7ZLODDO.js";
import "./chunk-PW7XKCYO.js";
import {
require_set
} from "./chunk-RMBEU7DO.js";
import "./chunk-RI2W2UZ6.js";
import "./chunk-IY256CNP.js";
import {
errorsTrads
} from "./chunk-IFOFBKTA.js";
import {
create3 as create,
create4 as create2,
create5 as create3,
create6 as create4,
create7 as create5,
create8 as create6,
require_camelCase,
require_has,
require_upperFirst
} from "./chunk-XLSIZGJF.js";
import "./chunk-EGNP2T5O.js";
import {
useAppInfo,
useTracking
} from "./chunk-GSN7U3BK.js";
import "./chunk-T3B5F2LV.js";
import {
require_castSlice,
require_hasUnicode,
require_stringToArray
} from "./chunk-YXDCVYVT.js";
import "./chunk-QIJGNK42.js";
import "./chunk-7PUJSL55.js";
import "./chunk-C2ZJTFO7.js";
import "./chunk-C75BZXCZ.js";
import "./chunk-APGTER6B.js";
import "./chunk-ZM6TT53G.js";
import "./chunk-6AXVGFVQ.js";
import "./chunk-BFLP6DBI.js";
import "./chunk-CMLQV3Z2.js";
import "./chunk-MMOBCIZG.js";
import "./chunk-IGCTEXRF.js";
import {
Layouts
} from "./chunk-TIVRAWTC.js";
import "./chunk-PQINNV4N.js";
import {
require_isEqual
} from "./chunk-VYSYYPOB.js";
import {
ForwardRef$J as ForwardRef$J2,
Page
} from "./chunk-5CAWUBTQ.js";
import {
useAuth,
useStrapiApp
} from "./chunk-W2TBR6J3.js";
import "./chunk-QEGMJR7H.js";
import {
require_arrayIncludes,
require_baseConvert,
require_baseProperty,
require_get,
require_lib,
require_noop,
require_toInteger,
require_toNumber
} from "./chunk-LCL5TIBZ.js";
import {
createSelector,
shallowEqual,
useDispatch,
useSelector
} from "./chunk-WOQNBAGN.js";
import "./chunk-BHLYCXQ7.js";
import "./chunk-76QM3EFM.js";
import {
require_Set,
require_SetCache,
require_baseGetTag,
require_baseKeys,
require_baseToString,
require_baseUnary,
require_cacheHas,
require_getTag,
require_isArray,
require_isArrayLike,
require_isObject,
require_isObjectLike,
require_nodeUtil,
require_setToArray,
require_toString
} from "./chunk-CE4VABH2.js";
import "./chunk-5VODLFKF.js";
import {
useNotification
} from "./chunk-N55RVBRV.js";
import {
Box,
Breadcrumbs,
Button,
CheckboxImpl,
Combobox,
Crumb,
DatePicker$1,
DateTimePicker,
Dialog,
Divider,
Field,
Flex,
Grid,
IconButton,
JSONInput,
KeyboardNavigable,
Link as Link2,
LinkButton,
Menu,
Modal,
MultiSelectNested,
NumberInput,
Option,
Searchbar,
SingleSelect,
SingleSelectOption,
SubNav,
SubNavHeader,
SubNavLink,
SubNavLinkSection,
SubNavSection,
SubNavSections,
Tabs,
TextButton,
TextInput,
Textarea,
TimePicker$1,
Toggle,
TooltipImpl,
Typography,
VisuallyHidden,
inputFocusStyle,
useCollator,
useFilter,
useIntl
} from "./chunk-7XB6XSWQ.js";
import "./chunk-5ZC4PE57.js";
import {
Link,
NavLink,
Navigate,
Route,
Routes,
useLocation,
useMatch,
useNavigate
} from "./chunk-TUXTO2Z5.js";
import "./chunk-FOD4ENRR.js";
import {
ForwardRef$1J,
ForwardRef$1L,
ForwardRef$1N,
ForwardRef$1h,
ForwardRef$27,
ForwardRef$29,
ForwardRef$2b,
ForwardRef$3B,
ForwardRef$3D,
ForwardRef$5j,
ForwardRef$J,
ForwardRef$X,
ForwardRef$j
} from "./chunk-WRD5KPDH.js";
import {
require_jsx_runtime
} from "./chunk-NIAJZ5MX.js";
import {
dt
} from "./chunk-ACIMPXWY.js";
import {
require_react
} from "./chunk-MADUDGYZ.js";
import {
__commonJS,
__toESM
} from "./chunk-PLDDJCW6.js";
// node_modules/lodash/isString.js
var require_isString = __commonJS({
"node_modules/lodash/isString.js"(exports, module) {
var baseGetTag = require_baseGetTag();
var isArray = require_isArray();
var isObjectLike = require_isObjectLike();
var stringTag = "[object String]";
function isString(value) {
return typeof value == "string" || !isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag;
}
module.exports = isString;
}
});
// node_modules/lodash/_asciiSize.js
var require_asciiSize = __commonJS({
"node_modules/lodash/_asciiSize.js"(exports, module) {
var baseProperty = require_baseProperty();
var asciiSize = baseProperty("length");
module.exports = asciiSize;
}
});
// node_modules/lodash/_unicodeSize.js
var require_unicodeSize = __commonJS({
"node_modules/lodash/_unicodeSize.js"(exports, module) {
var rsAstralRange = "\\ud800-\\udfff";
var rsComboMarksRange = "\\u0300-\\u036f";
var reComboHalfMarksRange = "\\ufe20-\\ufe2f";
var rsComboSymbolsRange = "\\u20d0-\\u20ff";
var rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange;
var rsVarRange = "\\ufe0e\\ufe0f";
var rsAstral = "[" + rsAstralRange + "]";
var rsCombo = "[" + rsComboRange + "]";
var rsFitz = "\\ud83c[\\udffb-\\udfff]";
var rsModifier = "(?:" + rsCombo + "|" + rsFitz + ")";
var rsNonAstral = "[^" + rsAstralRange + "]";
var rsRegional = "(?:\\ud83c[\\udde6-\\uddff]){2}";
var rsSurrPair = "[\\ud800-\\udbff][\\udc00-\\udfff]";
var rsZWJ = "\\u200d";
var reOptMod = rsModifier + "?";
var rsOptVar = "[" + rsVarRange + "]?";
var rsOptJoin = "(?:" + rsZWJ + "(?:" + [rsNonAstral, rsRegional, rsSurrPair].join("|") + ")" + rsOptVar + reOptMod + ")*";
var rsSeq = rsOptVar + reOptMod + rsOptJoin;
var rsSymbol = "(?:" + [rsNonAstral + rsCombo + "?", rsCombo, rsRegional, rsSurrPair, rsAstral].join("|") + ")";
var reUnicode = RegExp(rsFitz + "(?=" + rsFitz + ")|" + rsSymbol + rsSeq, "g");
function unicodeSize(string) {
var result = reUnicode.lastIndex = 0;
while (reUnicode.test(string)) {
++result;
}
return result;
}
module.exports = unicodeSize;
}
});
// node_modules/lodash/_stringSize.js
var require_stringSize = __commonJS({
"node_modules/lodash/_stringSize.js"(exports, module) {
var asciiSize = require_asciiSize();
var hasUnicode = require_hasUnicode();
var unicodeSize = require_unicodeSize();
function stringSize(string) {
return hasUnicode(string) ? unicodeSize(string) : asciiSize(string);
}
module.exports = stringSize;
}
});
// node_modules/lodash/size.js
var require_size = __commonJS({
"node_modules/lodash/size.js"(exports, module) {
var baseKeys = require_baseKeys();
var getTag = require_getTag();
var isArrayLike = require_isArrayLike();
var isString = require_isString();
var stringSize = require_stringSize();
var mapTag = "[object Map]";
var setTag = "[object Set]";
function size2(collection) {
if (collection == null) {
return 0;
}
if (isArrayLike(collection)) {
return isString(collection) ? stringSize(collection) : collection.length;
}
var tag = getTag(collection);
if (tag == mapTag || tag == setTag) {
return collection.size;
}
return baseKeys(collection).length;
}
module.exports = size2;
}
});
// node_modules/lodash/toLower.js
var require_toLower = __commonJS({
"node_modules/lodash/toLower.js"(exports, module) {
var toString = require_toString();
function toLower2(value) {
return toString(value).toLowerCase();
}
module.exports = toLower2;
}
});
// node_modules/lodash/_baseIsRegExp.js
var require_baseIsRegExp = __commonJS({
"node_modules/lodash/_baseIsRegExp.js"(exports, module) {
var baseGetTag = require_baseGetTag();
var isObjectLike = require_isObjectLike();
var regexpTag = "[object RegExp]";
function baseIsRegExp(value) {
return isObjectLike(value) && baseGetTag(value) == regexpTag;
}
module.exports = baseIsRegExp;
}
});
// node_modules/lodash/isRegExp.js
var require_isRegExp = __commonJS({
"node_modules/lodash/isRegExp.js"(exports, module) {
var baseIsRegExp = require_baseIsRegExp();
var baseUnary = require_baseUnary();
var nodeUtil = require_nodeUtil();
var nodeIsRegExp = nodeUtil && nodeUtil.isRegExp;
var isRegExp = nodeIsRegExp ? baseUnary(nodeIsRegExp) : baseIsRegExp;
module.exports = isRegExp;
}
});
// node_modules/lodash/truncate.js
var require_truncate = __commonJS({
"node_modules/lodash/truncate.js"(exports, module) {
var baseToString = require_baseToString();
var castSlice = require_castSlice();
var hasUnicode = require_hasUnicode();
var isObject = require_isObject();
var isRegExp = require_isRegExp();
var stringSize = require_stringSize();
var stringToArray = require_stringToArray();
var toInteger = require_toInteger();
var toString = require_toString();
var DEFAULT_TRUNC_LENGTH = 30;
var DEFAULT_TRUNC_OMISSION = "...";
var reFlags = /\w*$/;
function truncate2(string, options2) {
var length = DEFAULT_TRUNC_LENGTH, omission = DEFAULT_TRUNC_OMISSION;
if (isObject(options2)) {
var separator = "separator" in options2 ? options2.separator : separator;
length = "length" in options2 ? toInteger(options2.length) : length;
omission = "omission" in options2 ? baseToString(options2.omission) : omission;
}
string = toString(string);
var strLength = string.length;
if (hasUnicode(string)) {
var strSymbols = stringToArray(string);
strLength = strSymbols.length;
}
if (length >= strLength) {
return string;
}
var end = length - stringSize(omission);
if (end < 1) {
return omission;
}
var result = strSymbols ? castSlice(strSymbols, 0, end).join("") : string.slice(0, end);
if (separator === void 0) {
return result + omission;
}
if (strSymbols) {
end += result.length - end;
}
if (isRegExp(separator)) {
if (string.slice(end).search(separator)) {
var match, substring = result;
if (!separator.global) {
separator = RegExp(separator.source, toString(reFlags.exec(separator)) + "g");
}
separator.lastIndex = 0;
while (match = separator.exec(substring)) {
var newEnd = match.index;
}
result = result.slice(0, newEnd === void 0 ? end : newEnd);
}
} else if (string.indexOf(baseToString(separator), end) != end) {
var index = result.lastIndexOf(separator);
if (index > -1) {
result = result.slice(0, index);
}
}
return result + omission;
}
module.exports = truncate2;
}
});
// node_modules/lodash/_createSet.js
var require_createSet = __commonJS({
"node_modules/lodash/_createSet.js"(exports, module) {
var Set2 = require_Set();
var noop = require_noop();
var setToArray = require_setToArray();
var INFINITY = 1 / 0;
var createSet = !(Set2 && 1 / setToArray(new Set2([, -0]))[1] == INFINITY) ? noop : function(values) {
return new Set2(values);
};
module.exports = createSet;
}
});
// node_modules/lodash/_baseUniq.js
var require_baseUniq = __commonJS({
"node_modules/lodash/_baseUniq.js"(exports, module) {
var SetCache = require_SetCache();
var arrayIncludes = require_arrayIncludes();
var arrayIncludesWith = require_arrayIncludesWith();
var cacheHas = require_cacheHas();
var createSet = require_createSet();
var setToArray = require_setToArray();
var LARGE_ARRAY_SIZE = 200;
function baseUniq(array, iteratee, comparator) {
var index = -1, includes = arrayIncludes, length = array.length, isCommon = true, result = [], seen = result;
if (comparator) {
isCommon = false;
includes = arrayIncludesWith;
} else if (length >= LARGE_ARRAY_SIZE) {
var set3 = iteratee ? null : createSet(array);
if (set3) {
return setToArray(set3);
}
isCommon = false;
includes = cacheHas;
seen = new SetCache();
} else {
seen = iteratee ? [] : result;
}
outer:
while (++index < length) {
var value = array[index], computed = iteratee ? iteratee(value) : value;
value = comparator || value !== 0 ? value : 0;
if (isCommon && computed === computed) {
var seenIndex = seen.length;
while (seenIndex--) {
if (seen[seenIndex] === computed) {
continue outer;
}
}
if (iteratee) {
seen.push(computed);
}
result.push(value);
} else if (!includes(seen, computed, comparator)) {
if (seen !== result) {
seen.push(computed);
}
result.push(value);
}
}
return result;
}
module.exports = baseUniq;
}
});
// node_modules/lodash/uniq.js
var require_uniq = __commonJS({
"node_modules/lodash/uniq.js"(exports, module) {
var baseUniq = require_baseUniq();
function uniq2(array) {
return array && array.length ? baseUniq(array) : [];
}
module.exports = uniq2;
}
});
// node_modules/lodash/lodash.min.js
var require_lodash_min = __commonJS({
"node_modules/lodash/lodash.min.js"(exports, module) {
(function() {
function n(n2, t2, r2) {
switch (r2.length) {
case 0:
return n2.call(t2);
case 1:
return n2.call(t2, r2[0]);
case 2:
return n2.call(t2, r2[0], r2[1]);
case 3:
return n2.call(t2, r2[0], r2[1], r2[2]);
}
return n2.apply(t2, r2);
}
function t(n2, t2, r2, e2) {
for (var u2 = -1, i2 = null == n2 ? 0 : n2.length; ++u2 < i2; ) {
var o2 = n2[u2];
t2(e2, o2, r2(o2), n2);
}
return e2;
}
function r(n2, t2) {
for (var r2 = -1, e2 = null == n2 ? 0 : n2.length; ++r2 < e2 && t2(n2[r2], r2, n2) !== false; ) ;
return n2;
}
function e(n2, t2) {
for (var r2 = null == n2 ? 0 : n2.length; r2-- && t2(n2[r2], r2, n2) !== false; ) ;
return n2;
}
function u(n2, t2) {
for (var r2 = -1, e2 = null == n2 ? 0 : n2.length; ++r2 < e2; ) if (!t2(n2[r2], r2, n2)) return false;
return true;
}
function i(n2, t2) {
for (var r2 = -1, e2 = null == n2 ? 0 : n2.length, u2 = 0, i2 = []; ++r2 < e2; ) {
var o2 = n2[r2];
t2(o2, r2, n2) && (i2[u2++] = o2);
}
return i2;
}
function o(n2, t2) {
return !!(null == n2 ? 0 : n2.length) && y(n2, t2, 0) > -1;
}
function f(n2, t2, r2) {
for (var e2 = -1, u2 = null == n2 ? 0 : n2.length; ++e2 < u2; ) if (r2(t2, n2[e2])) return true;
return false;
}
function c(n2, t2) {
for (var r2 = -1, e2 = null == n2 ? 0 : n2.length, u2 = Array(e2); ++r2 < e2; ) u2[r2] = t2(n2[r2], r2, n2);
return u2;
}
function a(n2, t2) {
for (var r2 = -1, e2 = t2.length, u2 = n2.length; ++r2 < e2; ) n2[u2 + r2] = t2[r2];
return n2;
}
function l(n2, t2, r2, e2) {
var u2 = -1, i2 = null == n2 ? 0 : n2.length;
for (e2 && i2 && (r2 = n2[++u2]); ++u2 < i2; ) r2 = t2(r2, n2[u2], u2, n2);
return r2;
}
function s(n2, t2, r2, e2) {
var u2 = null == n2 ? 0 : n2.length;
for (e2 && u2 && (r2 = n2[--u2]); u2--; ) r2 = t2(r2, n2[u2], u2, n2);
return r2;
}
function h(n2, t2) {
for (var r2 = -1, e2 = null == n2 ? 0 : n2.length; ++r2 < e2; ) if (t2(n2[r2], r2, n2)) return true;
return false;
}
function p(n2) {
return n2.split("");
}
function _(n2) {
return n2.match($t) || [];
}
function v(n2, t2, r2) {
var e2;
return r2(n2, function(n3, r3, u2) {
if (t2(n3, r3, u2)) return e2 = r3, false;
}), e2;
}
function g(n2, t2, r2, e2) {
for (var u2 = n2.length, i2 = r2 + (e2 ? 1 : -1); e2 ? i2-- : ++i2 < u2; ) if (t2(n2[i2], i2, n2)) return i2;
return -1;
}
function y(n2, t2, r2) {
return t2 === t2 ? Z(n2, t2, r2) : g(n2, b, r2);
}
function d(n2, t2, r2, e2) {
for (var u2 = r2 - 1, i2 = n2.length; ++u2 < i2; ) if (e2(n2[u2], t2)) return u2;
return -1;
}
function b(n2) {
return n2 !== n2;
}
function w(n2, t2) {
var r2 = null == n2 ? 0 : n2.length;
return r2 ? k(n2, t2) / r2 : Cn;
}
function m(n2) {
return function(t2) {
return null == t2 ? X : t2[n2];
};
}
function x(n2) {
return function(t2) {
return null == n2 ? X : n2[t2];
};
}
function j(n2, t2, r2, e2, u2) {
return u2(n2, function(n3, u3, i2) {
r2 = e2 ? (e2 = false, n3) : t2(r2, n3, u3, i2);
}), r2;
}
function A(n2, t2) {
var r2 = n2.length;
for (n2.sort(t2); r2--; ) n2[r2] = n2[r2].value;
return n2;
}
function k(n2, t2) {
for (var r2, e2 = -1, u2 = n2.length; ++e2 < u2; ) {
var i2 = t2(n2[e2]);
i2 !== X && (r2 = r2 === X ? i2 : r2 + i2);
}
return r2;
}
function O(n2, t2) {
for (var r2 = -1, e2 = Array(n2); ++r2 < n2; ) e2[r2] = t2(r2);
return e2;
}
function I(n2, t2) {
return c(t2, function(t3) {
return [t3, n2[t3]];
});
}
function R(n2) {
return n2 ? n2.slice(0, H(n2) + 1).replace(Lt, "") : n2;
}
function z(n2) {
return function(t2) {
return n2(t2);
};
}
function E(n2, t2) {
return c(t2, function(t3) {
return n2[t3];
});
}
function S(n2, t2) {
return n2.has(t2);
}
function W(n2, t2) {
for (var r2 = -1, e2 = n2.length; ++r2 < e2 && y(t2, n2[r2], 0) > -1; ) ;
return r2;
}
function L(n2, t2) {
for (var r2 = n2.length; r2-- && y(t2, n2[r2], 0) > -1; ) ;
return r2;
}
function C(n2, t2) {
for (var r2 = n2.length, e2 = 0; r2--; ) n2[r2] === t2 && ++e2;
return e2;
}
function U(n2) {
return "\\" + Yr[n2];
}
function B(n2, t2) {
return null == n2 ? X : n2[t2];
}
function T(n2) {
return Nr.test(n2);
}
function $(n2) {
return Pr.test(n2);
}
function D(n2) {
for (var t2, r2 = []; !(t2 = n2.next()).done; ) r2.push(t2.value);
return r2;
}
function M(n2) {
var t2 = -1, r2 = Array(n2.size);
return n2.forEach(function(n3, e2) {
r2[++t2] = [e2, n3];
}), r2;
}
function F(n2, t2) {
return function(r2) {
return n2(t2(r2));
};
}
function N(n2, t2) {
for (var r2 = -1, e2 = n2.length, u2 = 0, i2 = []; ++r2 < e2; ) {
var o2 = n2[r2];
o2 !== t2 && o2 !== cn || (n2[r2] = cn, i2[u2++] = r2);
}
return i2;
}
function P(n2) {
var t2 = -1, r2 = Array(n2.size);
return n2.forEach(function(n3) {
r2[++t2] = n3;
}), r2;
}
function q(n2) {
var t2 = -1, r2 = Array(n2.size);
return n2.forEach(function(n3) {
r2[++t2] = [n3, n3];
}), r2;
}
function Z(n2, t2, r2) {
for (var e2 = r2 - 1, u2 = n2.length; ++e2 < u2; ) if (n2[e2] === t2) return e2;
return -1;
}
function K(n2, t2, r2) {
for (var e2 = r2 + 1; e2--; ) if (n2[e2] === t2) return e2;
return e2;
}
function V(n2) {
return T(n2) ? J(n2) : _e(n2);
}
function G(n2) {
return T(n2) ? Y(n2) : p(n2);
}
function H(n2) {
for (var t2 = n2.length; t2-- && Ct.test(n2.charAt(t2)); ) ;
return t2;
}
function J(n2) {
for (var t2 = Mr.lastIndex = 0; Mr.test(n2); ) ++t2;
return t2;
}
function Y(n2) {
return n2.match(Mr) || [];
}
function Q(n2) {
return n2.match(Fr) || [];
}
var X, nn = "4.17.21", tn = 200, rn = "Unsupported core-js use. Try https://npms.io/search?q=ponyfill.", en = "Expected a function", un = "Invalid `variable` option passed into `_.template`", on = "__lodash_hash_undefined__", fn = 500, cn = "__lodash_placeholder__", an = 1, ln = 2, sn = 4, hn = 1, pn = 2, _n = 1, vn = 2, gn = 4, yn = 8, dn = 16, bn = 32, wn = 64, mn = 128, xn = 256, jn = 512, An = 30, kn = "...", On = 800, In = 16, Rn = 1, zn = 2, En = 3, Sn = 1 / 0, Wn = 9007199254740991, Ln = 17976931348623157e292, Cn = NaN, Un = 4294967295, Bn = Un - 1, Tn = Un >>> 1, $n = [["ary", mn], ["bind", _n], ["bindKey", vn], ["curry", yn], ["curryRight", dn], ["flip", jn], ["partial", bn], ["partialRight", wn], ["rearg", xn]], Dn = "[object Arguments]", Mn = "[object Array]", Fn = "[object AsyncFunction]", Nn = "[object Boolean]", Pn = "[object Date]", qn = "[object DOMException]", Zn = "[object Error]", Kn = "[object Function]", Vn = "[object GeneratorFunction]", Gn = "[object Map]", Hn = "[object Number]", Jn = "[object Null]", Yn = "[object Object]", Qn = "[object Promise]", Xn = "[object Proxy]", nt = "[object RegExp]", tt = "[object Set]", rt = "[object String]", et = "[object Symbol]", ut = "[object Undefined]", it = "[object WeakMap]", ot = "[object WeakSet]", ft = "[object ArrayBuffer]", ct = "[object DataView]", at = "[object Float32Array]", lt = "[object Float64Array]", st = "[object Int8Array]", ht = "[object Int16Array]", pt = "[object Int32Array]", _t = "[object Uint8Array]", vt = "[object Uint8ClampedArray]", gt = "[object Uint16Array]", yt = "[object Uint32Array]", dt2 = /\b__p \+= '';/g, bt = /\b(__p \+=) '' \+/g, wt = /(__e\(.*?\)|\b__t\)) \+\n'';/g, mt = /&(?:amp|lt|gt|quot|#39);/g, xt = /[&<>"']/g, jt = RegExp(mt.source), At = RegExp(xt.source), kt = /<%-([\s\S]+?)%>/g, Ot = /<%([\s\S]+?)%>/g, It = /<%=([\s\S]+?)%>/g, Rt = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, zt = /^\w*$/, Et = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g, St = /[\\^$.*+?()[\]{}|]/g, Wt = RegExp(St.source), Lt = /^\s+/, Ct = /\s/, Ut = /\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/, Bt = /\{\n\/\* \[wrapped with (.+)\] \*/, Tt = /,? & /, $t = /[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g, Dt = /[()=,{}\[\]\/\s]/, Mt = /\\(\\)?/g, Ft = /\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g, Nt = /\w*$/, Pt = /^[-+]0x[0-9a-f]+$/i, qt = /^0b[01]+$/i, Zt = /^\[object .+?Constructor\]$/, Kt = /^0o[0-7]+$/i, Vt = /^(?:0|[1-9]\d*)$/, Gt = /[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g, Ht = /($^)/, Jt = /['\n\r\u2028\u2029\\]/g, Yt = "\\ud800-\\udfff", Qt = "\\u0300-\\u036f", Xt = "\\ufe20-\\ufe2f", nr = "\\u20d0-\\u20ff", tr = Qt + Xt + nr, rr = "\\u2700-\\u27bf", er = "a-z\\xdf-\\xf6\\xf8-\\xff", ur = "\\xac\\xb1\\xd7\\xf7", ir = "\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf", or = "\\u2000-\\u206f", fr = " \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000", cr = "A-Z\\xc0-\\xd6\\xd8-\\xde", ar = "\\ufe0e\\ufe0f", lr = ur + ir + or + fr, sr = "[']", hr = "[" + Yt + "]", pr = "[" + lr + "]", _r = "[" + tr + "]", vr = "\\d+", gr = "[" + rr + "]", yr = "[" + er + "]", dr = "[^" + Yt + lr + vr + rr + er + cr + "]", br = "\\ud83c[\\udffb-\\udfff]", wr = "(?:" + _r + "|" + br + ")", mr = "[^" + Yt + "]", xr = "(?:\\ud83c[\\udde6-\\uddff]){2}", jr = "[\\ud800-\\udbff][\\udc00-\\udfff]", Ar = "[" + cr + "]", kr = "\\u200d", Or = "(?:" + yr + "|" + dr + ")", Ir = "(?:" + Ar + "|" + dr + ")", Rr = "(?:" + sr + "(?:d|ll|m|re|s|t|ve))?", zr = "(?:" + sr + "(?:D|LL|M|RE|S|T|VE))?", Er = wr + "?", Sr = "[" + ar + "]?", Wr = "(?:" + kr + "(?:" + [mr, xr, jr].join("|") + ")" + Sr + Er + ")*", Lr = "\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])", Cr = "\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])", Ur = Sr + Er + Wr, Br = "(?:" + [gr, xr, jr].join("|") + ")" + Ur, Tr = "(?:" + [mr + _r + "?", _r, xr, jr, hr].join("|") + ")", $r = RegExp(sr, "g"), Dr = RegExp(_r, "g"), Mr = RegExp(br + "(?=" + br + ")|" + Tr + Ur, "g"), Fr = RegExp([Ar + "?" + yr + "+" + Rr + "(?=" + [pr, Ar, "$"].join("|") + ")", Ir + "+" + zr + "(?=" + [pr, Ar + Or, "$"].join("|") + ")", Ar + "?" + Or + "+" + Rr, Ar + "+" + zr, Cr, Lr, vr, Br].join("|"), "g"), Nr = RegExp("[" + kr + Yt + tr + ar + "]"), Pr = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/, qr = ["Array", "Buffer", "DataView", "Date", "Error", "Float32Array", "Float64Array", "Function", "Int8Array", "Int16Array", "Int32Array", "Map", "Math", "Object", "Promise", "RegExp", "Set", "String", "Symbol", "TypeError", "Uint8Array", "Uint8ClampedArray", "Uint16Array", "Uint32Array", "WeakMap", "_", "clearTimeout", "isFinite", "parseInt", "setTimeout"], Zr = -1, Kr = {};
Kr[at] = Kr[lt] = Kr[st] = Kr[ht] = Kr[pt] = Kr[_t] = Kr[vt] = Kr[gt] = Kr[yt] = true, Kr[Dn] = Kr[Mn] = Kr[ft] = Kr[Nn] = Kr[ct] = Kr[Pn] = Kr[Zn] = Kr[Kn] = Kr[Gn] = Kr[Hn] = Kr[Yn] = Kr[nt] = Kr[tt] = Kr[rt] = Kr[it] = false;
var Vr = {};
Vr[Dn] = Vr[Mn] = Vr[ft] = Vr[ct] = Vr[Nn] = Vr[Pn] = Vr[at] = Vr[lt] = Vr[st] = Vr[ht] = Vr[pt] = Vr[Gn] = Vr[Hn] = Vr[Yn] = Vr[nt] = Vr[tt] = Vr[rt] = Vr[et] = Vr[_t] = Vr[vt] = Vr[gt] = Vr[yt] = true, Vr[Zn] = Vr[Kn] = Vr[it] = false;
var Gr = {
"À": "A",
"Á": "A",
"Â": "A",
"Ã": "A",
"Ä": "A",
"Å": "A",
"à": "a",
"á": "a",
"â": "a",
"ã": "a",
"ä": "a",
"å": "a",
"Ç": "C",
"ç": "c",
"Ð": "D",
"ð": "d",
"È": "E",
"É": "E",
"Ê": "E",
"Ë": "E",
"è": "e",
"é": "e",
"ê": "e",
"ë": "e",
"Ì": "I",
"Í": "I",
"Î": "I",
"Ï": "I",
"ì": "i",
"í": "i",
"î": "i",
"ï": "i",
"Ñ": "N",
"ñ": "n",
"Ò": "O",
"Ó": "O",
"Ô": "O",
"Õ": "O",
"Ö": "O",
"Ø": "O",
"ò": "o",
"ó": "o",
"ô": "o",
"õ": "o",
"ö": "o",
"ø": "o",
"Ù": "U",
"Ú": "U",
"Û": "U",
"Ü": "U",
"ù": "u",
"ú": "u",
"û": "u",
"ü": "u",
"Ý": "Y",
"ý": "y",
"ÿ": "y",
"Æ": "Ae",
"æ": "ae",
"Þ": "Th",
"þ": "th",
"ß": "ss",
"Ā": "A",
"Ă": "A",
"Ą": "A",
"ā": "a",
"ă": "a",
"ą": "a",
"Ć": "C",
"Ĉ": "C",
"Ċ": "C",
"Č": "C",
"ć": "c",
"ĉ": "c",
"ċ": "c",
"č": "c",
"Ď": "D",
"Đ": "D",
"ď": "d",
"đ": "d",
"Ē": "E",
"Ĕ": "E",
"Ė": "E",
"Ę": "E",
"Ě": "E",
"ē": "e",
"ĕ": "e",
"ė": "e",
"ę": "e",
"ě": "e",
"Ĝ": "G",
"Ğ": "G",
"Ġ": "G",
"Ģ": "G",
"ĝ": "g",
"ğ": "g",
"ġ": "g",
"ģ": "g",
"Ĥ": "H",
"Ħ": "H",
"ĥ": "h",
"ħ": "h",
"Ĩ": "I",
"Ī": "I",
"Ĭ": "I",
"Į": "I",
"İ": "I",
"ĩ": "i",
"ī": "i",
"ĭ": "i",
"į": "i",
"ı": "i",
"Ĵ": "J",
"ĵ": "j",
"Ķ": "K",
"ķ": "k",
"ĸ": "k",
"Ĺ": "L",
"Ļ": "L",
"Ľ": "L",
"Ŀ": "L",
"Ł": "L",
"ĺ": "l",
"ļ": "l",
"ľ": "l",
"ŀ": "l",
"ł": "l",
"Ń": "N",
"Ņ": "N",
"Ň": "N",
"Ŋ": "N",
"ń": "n",
"ņ": "n",
"ň": "n",
"ŋ": "n",
"Ō": "O",
"Ŏ": "O",
"Ő": "O",
"ō": "o",
"ŏ": "o",
"ő": "o",
"Ŕ": "R",
"Ŗ": "R",
"Ř": "R",
"ŕ": "r",
"ŗ": "r",
"ř": "r",
"Ś": "S",
"Ŝ": "S",
"Ş": "S",
"Š": "S",
"ś": "s",
"ŝ": "s",
"ş": "s",
"š": "s",
"Ţ": "T",
"Ť": "T",
"Ŧ": "T",
"ţ": "t",
"ť": "t",
"ŧ": "t",
"Ũ": "U",
"Ū": "U",
"Ŭ": "U",
"Ů": "U",
"Ű": "U",
"Ų": "U",
"ũ": "u",
"ū": "u",
"ŭ": "u",
"ů": "u",
"ű": "u",
"ų": "u",
"Ŵ": "W",
"ŵ": "w",
"Ŷ": "Y",
"ŷ": "y",
"Ÿ": "Y",
"Ź": "Z",
"Ż": "Z",
"Ž": "Z",
"ź": "z",
"ż": "z",
"ž": "z",
"IJ": "IJ",
"ij": "ij",
"Œ": "Oe",
"œ": "oe",
"ʼn": "'n",
"ſ": "s"
}, Hr = { "&": "&amp;", "<": "&lt;", ">": "&gt;", '"': "&quot;", "'": "&#39;" }, Jr = { "&amp;": "&", "&lt;": "<", "&gt;": ">", "&quot;": '"', "&#39;": "'" }, Yr = { "\\": "\\", "'": "'", "\n": "n", "\r": "r", "\u2028": "u2028", "\u2029": "u2029" }, Qr = parseFloat, Xr = parseInt, ne = "object" == typeof global && global && global.Object === Object && global, te = "object" == typeof self && self && self.Object === Object && self, re = ne || te || Function("return this")(), ee = "object" == typeof exports && exports && !exports.nodeType && exports, ue = ee && "object" == typeof module && module && !module.nodeType && module, ie = ue && ue.exports === ee, oe = ie && ne.process, fe = function() {
try {
var n2 = ue && ue.require && ue.require("util").types;
return n2 ? n2 : oe && oe.binding && oe.binding("util");
} catch (n3) {
}
}(), ce = fe && fe.isArrayBuffer, ae = fe && fe.isDate, le = fe && fe.isMap, se = fe && fe.isRegExp, he = fe && fe.isSet, pe = fe && fe.isTypedArray, _e = m("length"), ve = x(Gr), ge = x(Hr), ye = x(Jr), de = function p2(x2) {
function Z2(n2) {
if (cc(n2) && !bh(n2) && !(n2 instanceof Ct2)) {
if (n2 instanceof Y2) return n2;
if (bl.call(n2, "__wrapped__")) return eo(n2);
}
return new Y2(n2);
}
function J2() {
}
function Y2(n2, t2) {
this.__wrapped__ = n2, this.__actions__ = [], this.__chain__ = !!t2, this.__index__ = 0, this.__values__ = X;
}
function Ct2(n2) {
this.__wrapped__ = n2, this.__actions__ = [], this.__dir__ = 1, this.__filtered__ = false, this.__iteratees__ = [], this.__takeCount__ = Un, this.__views__ = [];
}
function $t2() {
var n2 = new Ct2(this.__wrapped__);
return n2.__actions__ = Tu(this.__actions__), n2.__dir__ = this.__dir__, n2.__filtered__ = this.__filtered__, n2.__iteratees__ = Tu(this.__iteratees__), n2.__takeCount__ = this.__takeCount__, n2.__views__ = Tu(this.__views__), n2;
}
function Yt2() {
if (this.__filtered__) {
var n2 = new Ct2(this);
n2.__dir__ = -1, n2.__filtered__ = true;
} else n2 = this.clone(), n2.__dir__ *= -1;
return n2;
}
function Qt2() {
var n2 = this.__wrapped__.value(), t2 = this.__dir__, r2 = bh(n2), e2 = t2 < 0, u2 = r2 ? n2.length : 0, i2 = Oi(0, u2, this.__views__), o2 = i2.start, f2 = i2.end, c2 = f2 - o2, a2 = e2 ? f2 : o2 - 1, l2 = this.__iteratees__, s2 = l2.length, h2 = 0, p3 = Hl(c2, this.__takeCount__);
if (!r2 || !e2 && u2 == c2 && p3 == c2) return wu(n2, this.__actions__);
var _2 = [];
n: for (; c2-- && h2 < p3; ) {
a2 += t2;
for (var v2 = -1, g2 = n2[a2]; ++v2 < s2; ) {
var y2 = l2[v2], d2 = y2.iteratee, b2 = y2.type, w2 = d2(g2);
if (b2 == zn) g2 = w2;
else if (!w2) {
if (b2 == Rn) continue n;
break n;
}
}
_2[h2++] = g2;
}
return _2;
}
function Xt2(n2) {
var t2 = -1, r2 = null == n2 ? 0 : n2.length;
for (this.clear(); ++t2 < r2; ) {
var e2 = n2[t2];
this.set(e2[0], e2[1]);
}
}
function nr2() {
this.__data__ = is ? is(null) : {}, this.size = 0;
}
function tr2(n2) {
var t2 = this.has(n2) && delete this.__data__[n2];
return this.size -= t2 ? 1 : 0, t2;
}
function rr2(n2) {
var t2 = this.__data__;
if (is) {
var r2 = t2[n2];
return r2 === on ? X : r2;
}
return bl.call(t2, n2) ? t2[n2] : X;
}
function er2(n2) {
var t2 = this.__data__;
return is ? t2[n2] !== X : bl.call(t2, n2);
}
function ur2(n2, t2) {
var r2 = this.__data__;
return this.size += this.has(n2) ? 0 : 1, r2[n2] = is && t2 === X ? on : t2, this;
}
function ir2(n2) {
var t2 = -1, r2 = null == n2 ? 0 : n2.length;
for (this.clear(); ++t2 < r2; ) {
var e2 = n2[t2];
this.set(e2[0], e2[1]);
}
}
function or2() {
this.__data__ = [], this.size = 0;
}
function fr2(n2) {
var t2 = this.__data__, r2 = Wr2(t2, n2);
return !(r2 < 0) && (r2 == t2.length - 1 ? t2.pop() : Ll.call(t2, r2, 1), --this.size, true);
}
function cr2(n2) {
var t2 = this.__data__, r2 = Wr2(t2, n2);
return r2 < 0 ? X : t2[r2][1];
}
function ar2(n2) {
return Wr2(this.__data__, n2) > -1;
}
function lr2(n2, t2) {
var r2 = this.__data__, e2 = Wr2(r2, n2);
return e2 < 0 ? (++this.size, r2.push([n2, t2])) : r2[e2][1] = t2, this;
}
function sr2(n2) {
var t2 = -1, r2 = null == n2 ? 0 : n2.length;
for (this.clear(); ++t2 < r2; ) {
var e2 = n2[t2];
this.set(e2[0], e2[1]);
}
}
function hr2() {
this.size = 0, this.__data__ = { hash: new Xt2(), map: new (ts || ir2)(), string: new Xt2() };
}
function pr2(n2) {
var t2 = xi(this, n2).delete(n2);
return this.size -= t2 ? 1 : 0, t2;
}
function _r2(n2) {
return xi(this, n2).get(n2);
}
function vr2(n2) {
return xi(this, n2).has(n2);
}
function gr2(n2, t2) {
var r2 = xi(this, n2), e2 = r2.size;
return r2.set(n2, t2), this.size += r2.size == e2 ? 0 : 1, this;
}
function yr2(n2) {
var t2 = -1, r2 = null == n2 ? 0 : n2.length;
for (this.__data__ = new sr2(); ++t2 < r2; ) this.add(n2[t2]);
}
function dr2(n2) {
return this.__data__.set(n2, on), this;
}
function br2(n2) {
return this.__data__.has(n2);
}
function wr2(n2) {
this.size = (this.__data__ = new ir2(n2)).size;
}
function mr2() {
this.__data__ = new ir2(), this.size = 0;
}
function xr2(n2) {
var t2 = this.__data__, r2 = t2.delete(n2);
return this.size = t2.size, r2;
}
function jr2(n2) {
return this.__data__.get(n2);
}
function Ar2(n2) {
return this.__data__.has(n2);
}
function kr2(n2, t2) {
var r2 = this.__data__;
if (r2 instanceof ir2) {
var e2 = r2.__data__;
if (!ts || e2.length < tn - 1) return e2.push([n2, t2]), this.size = ++r2.size, this;
r2 = this.__data__ = new sr2(e2);
}
return r2.set(n2, t2), this.size = r2.size, this;
}
function Or2(n2, t2) {
var r2 = bh(n2), e2 = !r2 && dh(n2), u2 = !r2 && !e2 && mh(n2), i2 = !r2 && !e2 && !u2 && Oh(n2), o2 = r2 || e2 || u2 || i2, f2 = o2 ? O(n2.length, hl) : [], c2 = f2.length;
for (var a2 in n2) !t2 && !bl.call(n2, a2) || o2 && ("length" == a2 || u2 && ("offset" == a2 || "parent" == a2) || i2 && ("buffer" == a2 || "byteLength" == a2 || "byteOffset" == a2) || Ci(a2, c2)) || f2.push(a2);
return f2;
}
function Ir2(n2) {
var t2 = n2.length;
return t2 ? n2[tu(0, t2 - 1)] : X;
}
function Rr2(n2, t2) {
return Xi(Tu(n2), Mr2(t2, 0, n2.length));
}
function zr2(n2) {
return Xi(Tu(n2));
}
function Er2(n2, t2, r2) {
(r2 === X || Gf(n2[t2], r2)) && (r2 !== X || t2 in n2) || Br2(n2, t2, r2);
}
function Sr2(n2, t2, r2) {
var e2 = n2[t2];
bl.call(n2, t2) && Gf(e2, r2) && (r2 !== X || t2 in n2) || Br2(n2, t2, r2);
}
function Wr2(n2, t2) {
for (var r2 = n2.length; r2--; ) if (Gf(n2[r2][0], t2)) return r2;
return -1;
}
function Lr2(n2, t2, r2, e2) {
return ys(n2, function(n3, u2, i2) {
t2(e2, n3, r2(n3), i2);
}), e2;
}
function Cr2(n2, t2) {
return n2 && $u(t2, Pc(t2), n2);
}
function Ur2(n2, t2) {
return n2 && $u(t2, qc(t2), n2);
}
function Br2(n2, t2, r2) {
"__proto__" == t2 && Tl ? Tl(n2, t2, { configurable: true, enumerable: true, value: r2, writable: true }) : n2[t2] = r2;
}
function Tr2(n2, t2) {
for (var r2 = -1, e2 = t2.length, u2 = il(e2), i2 = null == n2; ++r2 < e2; ) u2[r2] = i2 ? X : Mc(n2, t2[r2]);
return u2;
}
function Mr2(n2, t2, r2) {
return n2 === n2 && (r2 !== X && (n2 = n2 <= r2 ? n2 : r2), t2 !== X && (n2 = n2 >= t2 ? n2 : t2)), n2;
}
function Fr2(n2, t2, e2, u2, i2, o2) {
var f2, c2 = t2 & an, a2 = t2 & ln, l2 = t2 & sn;
if (e2 && (f2 = i2 ? e2(n2, u2, i2, o2) : e2(n2)), f2 !== X) return f2;
if (!fc(n2)) return n2;
var s2 = bh(n2);
if (s2) {
if (f2 = zi(n2), !c2) return Tu(n2, f2);
} else {
var h2 = zs(n2), p3 = h2 == Kn || h2 == Vn;
if (mh(n2)) return Iu(n2, c2);
if (h2 == Yn || h2 == Dn || p3 && !i2) {
if (f2 = a2 || p3 ? {} : Ei(n2), !c2) return a2 ? Mu(n2, Ur2(f2, n2)) : Du(n2, Cr2(f2, n2));
} else {
if (!Vr[h2]) return i2 ? n2 : {};
f2 = Si(n2, h2, c2);
}
}
o2 || (o2 = new wr2());
var _2 = o2.get(n2);
if (_2) return _2;
o2.set(n2, f2), kh(n2) ? n2.forEach(function(r2) {
f2.add(Fr2(r2, t2, e2, r2, n2, o2));
}) : jh(n2) && n2.forEach(function(r2, u3) {
f2.set(u3, Fr2(r2, t2, e2, u3, n2, o2));
});
var v2 = l2 ? a2 ? di : yi : a2 ? qc : Pc, g2 = s2 ? X : v2(n2);
return r(g2 || n2, function(r2, u3) {
g2 && (u3 = r2, r2 = n2[u3]), Sr2(f2, u3, Fr2(r2, t2, e2, u3, n2, o2));
}), f2;
}
function Nr2(n2) {
var t2 = Pc(n2);
return function(r2) {
return Pr2(r2, n2, t2);
};
}
function Pr2(n2, t2, r2) {
var e2 = r2.length;
if (null == n2) return !e2;
for (n2 = ll(n2); e2--; ) {
var u2 = r2[e2], i2 = t2[u2], o2 = n2[u2];
if (o2 === X && !(u2 in n2) || !i2(o2)) return false;
}
return true;
}
function Gr2(n2, t2, r2) {
if ("function" != typeof n2) throw new pl(en);
return Ws(function() {
n2.apply(X, r2);
}, t2);
}
function Hr2(n2, t2, r2, e2) {
var u2 = -1, i2 = o, a2 = true, l2 = n2.length, s2 = [], h2 = t2.length;
if (!l2) return s2;
r2 && (t2 = c(t2, z(r2))), e2 ? (i2 = f, a2 = false) : t2.length >= tn && (i2 = S, a2 = false, t2 = new yr2(t2));
n: for (; ++u2 < l2; ) {
var p3 = n2[u2], _2 = null == r2 ? p3 : r2(p3);
if (p3 = e2 || 0 !== p3 ? p3 : 0, a2 && _2 === _2) {
for (var v2 = h2; v2--; ) if (t2[v2] === _2) continue n;
s2.push(p3);
} else i2(t2, _2, e2) || s2.push(p3);
}
return s2;
}
function Jr2(n2, t2) {
var r2 = true;
return ys(n2, function(n3, e2, u2) {
return r2 = !!t2(n3, e2, u2);
}), r2;
}
function Yr2(n2, t2, r2) {
for (var e2 = -1, u2 = n2.length; ++e2 < u2; ) {
var i2 = n2[e2], o2 = t2(i2);
if (null != o2 && (f2 === X ? o2 === o2 && !bc(o2) : r2(o2, f2))) var f2 = o2, c2 = i2;
}
return c2;
}
function ne2(n2, t2, r2, e2) {
var u2 = n2.length;
for (r2 = kc(r2), r2 < 0 && (r2 = -r2 > u2 ? 0 : u2 + r2), e2 = e2 === X || e2 > u2 ? u2 : kc(e2), e2 < 0 && (e2 += u2), e2 = r2 > e2 ? 0 : Oc(e2); r2 < e2; ) n2[r2++] = t2;
return n2;
}
function te2(n2, t2) {
var r2 = [];
return ys(n2, function(n3, e2, u2) {
t2(n3, e2, u2) && r2.push(n3);
}), r2;
}
function ee2(n2, t2, r2, e2, u2) {
var i2 = -1, o2 = n2.length;
for (r2 || (r2 = Li), u2 || (u2 = []); ++i2 < o2; ) {
var f2 = n2[i2];
t2 > 0 && r2(f2) ? t2 > 1 ? ee2(f2, t2 - 1, r2, e2, u2) : a(u2, f2) : e2 || (u2[u2.length] = f2);
}
return u2;
}
function ue2(n2, t2) {
return n2 && bs(n2, t2, Pc);
}
function oe2(n2, t2) {
return n2 && ws(n2, t2, Pc);
}
function fe2(n2, t2) {
return i(t2, function(t3) {
return uc(n2[t3]);
});
}
function _e2(n2, t2) {
t2 = ku(t2, n2);
for (var r2 = 0, e2 = t2.length; null != n2 && r2 < e2; ) n2 = n2[no(t2[r2++])];
return r2 && r2 == e2 ? n2 : X;
}
function de2(n2, t2, r2) {
var e2 = t2(n2);
return bh(n2) ? e2 : a(e2, r2(n2));
}
function we(n2) {
return null == n2 ? n2 === X ? ut : Jn : Bl && Bl in ll(n2) ? ki(n2) : Ki(n2);
}
function me(n2, t2) {
return n2 > t2;
}
function xe(n2, t2) {
return null != n2 && bl.call(n2, t2);
}
function je(n2, t2) {
return null != n2 && t2 in ll(n2);
}
function Ae(n2, t2, r2) {
return n2 >= Hl(t2, r2) && n2 < Gl(t2, r2);
}
function ke(n2, t2, r2) {
for (var e2 = r2 ? f : o, u2 = n2[0].length, i2 = n2.length, a2 = i2, l2 = il(i2), s2 = 1 / 0, h2 = []; a2--; ) {
var p3 = n2[a2];
a2 && t2 && (p3 = c(p3, z(t2))), s2 = Hl(p3.length, s2), l2[a2] = !r2 && (t2 || u2 >= 120 && p3.length >= 120) ? new yr2(a2 && p3) : X;
}
p3 = n2[0];
var _2 = -1, v2 = l2[0];
n: for (; ++_2 < u2 && h2.length < s2; ) {
var g2 = p3[_2], y2 = t2 ? t2(g2) : g2;
if (g2 = r2 || 0 !== g2 ? g2 : 0, !(v2 ? S(v2, y2) : e2(h2, y2, r2))) {
for (a2 = i2; --a2; ) {
var d2 = l2[a2];
if (!(d2 ? S(d2, y2) : e2(n2[a2], y2, r2))) continue n;
}
v2 && v2.push(y2), h2.push(g2);
}
}
return h2;
}
function Oe(n2, t2, r2, e2) {
return ue2(n2, function(n3, u2, i2) {
t2(e2, r2(n3), u2, i2);
}), e2;
}
function Ie(t2, r2, e2) {
r2 = ku(r2, t2), t2 = Gi(t2, r2);
var u2 = null == t2 ? t2 : t2[no(jo(r2))];
return null == u2 ? X : n(u2, t2, e2);
}
function Re(n2) {
return cc(n2) && we(n2) == Dn;
}
function ze(n2) {
return cc(n2) && we(n2) == ft;
}
function Ee(n2) {
return cc(n2) && we(n2) == Pn;
}
function Se(n2, t2, r2, e2, u2) {
return n2 === t2 || (null == n2 || null == t2 || !cc(n2) && !cc(t2) ? n2 !== n2 && t2 !== t2 : We(n2, t2, r2, e2, Se, u2));
}
function We(n2, t2, r2, e2, u2, i2) {
var o2 = bh(n2), f2 = bh(t2), c2 = o2 ? Mn : zs(n2), a2 = f2 ? Mn : zs(t2);
c2 = c2 == Dn ? Yn : c2, a2 = a2 == Dn ? Yn : a2;
var l2 = c2 == Yn, s2 = a2 == Yn, h2 = c2 == a2;
if (h2 && mh(n2)) {
if (!mh(t2)) return false;
o2 = true, l2 = false;
}
if (h2 && !l2) return i2 || (i2 = new wr2()), o2 || Oh(n2) ? pi(n2, t2, r2, e2, u2, i2) : _i(n2, t2, c2, r2, e2, u2, i2);
if (!(r2 & hn)) {
var p3 = l2 && bl.call(n2, "__wrapped__"), _2 = s2 && bl.call(t2, "__wrapped__");
if (p3 || _2) {
var v2 = p3 ? n2.value() : n2, g2 = _2 ? t2.value() : t2;
return i2 || (i2 = new wr2()), u2(v2, g2, r2, e2, i2);
}
}
return !!h2 && (i2 || (i2 = new wr2()), vi(n2, t2, r2, e2, u2, i2));
}
function Le(n2) {
return cc(n2) && zs(n2) == Gn;
}
function Ce(n2, t2, r2, e2) {
var u2 = r2.length, i2 = u2, o2 = !e2;
if (null == n2) return !i2;
for (n2 = ll(n2); u2--; ) {
var f2 = r2[u2];
if (o2 && f2[2] ? f2[1] !== n2[f2[0]] : !(f2[0] in n2)) return false;
}
for (; ++u2 < i2; ) {
f2 = r2[u2];
var c2 = f2[0], a2 = n2[c2], l2 = f2[1];
if (o2 && f2[2]) {
if (a2 === X && !(c2 in n2)) return false;
} else {
var s2 = new wr2();
if (e2) var h2 = e2(a2, l2, c2, n2, t2, s2);
if (!(h2 === X ? Se(l2, a2, hn | pn, e2, s2) : h2)) return false;
}
}
return true;
}
function Ue(n2) {
return !(!fc(n2) || Di(n2)) && (uc(n2) ? kl : Zt).test(to(n2));
}
function Be(n2) {
return cc(n2) && we(n2) == nt;
}
function Te(n2) {
return cc(n2) && zs(n2) == tt;
}
function $e(n2) {
return cc(n2) && oc(n2.length) && !!Kr[we(n2)];
}
function De(n2) {
return "function" == typeof n2 ? n2 : null == n2 ? La : "object" == typeof n2 ? bh(n2) ? Ze(n2[0], n2[1]) : qe(n2) : Fa(n2);
}
function Me(n2) {
if (!Mi(n2)) return Vl(n2);
var t2 = [];
for (var r2 in ll(n2)) bl.call(n2, r2) && "constructor" != r2 && t2.push(r2);
return t2;
}
function Fe(n2) {
if (!fc(n2)) return Zi(n2);
var t2 = Mi(n2), r2 = [];
for (var e2 in n2) ("constructor" != e2 || !t2 && bl.call(n2, e2)) && r2.push(e2);
return r2;
}
function Ne(n2, t2) {
return n2 < t2;
}
function Pe(n2, t2) {
var r2 = -1, e2 = Hf(n2) ? il(n2.length) : [];
return ys(n2, function(n3, u2, i2) {
e2[++r2] = t2(n3, u2, i2);
}), e2;
}
function qe(n2) {
var t2 = ji(n2);
return 1 == t2.length && t2[0][2] ? Ni(t2[0][0], t2[0][1]) : function(r2) {
return r2 === n2 || Ce(r2, n2, t2);
};
}
function Ze(n2, t2) {
return Bi(n2) && Fi(t2) ? Ni(no(n2), t2) : function(r2) {
var e2 = Mc(r2, n2);
return e2 === X && e2 === t2 ? Nc(r2, n2) : Se(t2, e2, hn | pn);
};
}
function Ke(n2, t2, r2, e2, u2) {
n2 !== t2 && bs(t2, function(i2, o2) {
if (u2 || (u2 = new wr2()), fc(i2)) Ve(n2, t2, o2, r2, Ke, e2, u2);
else {
var f2 = e2 ? e2(Ji(n2, o2), i2, o2 + "", n2, t2, u2) : X;
f2 === X && (f2 = i2), Er2(n2, o2, f2);
}
}, qc);
}
function Ve(n2, t2, r2, e2, u2, i2, o2) {
var f2 = Ji(n2, r2), c2 = Ji(t2, r2), a2 = o2.get(c2);
if (a2) return Er2(n2, r2, a2), X;
var l2 = i2 ? i2(f2, c2, r2 + "", n2, t2, o2) : X, s2 = l2 === X;
if (s2) {
var h2 = bh(c2), p3 = !h2 && mh(c2), _2 = !h2 && !p3 && Oh(c2);
l2 = c2, h2 || p3 || _2 ? bh(f2) ? l2 = f2 : Jf(f2) ? l2 = Tu(f2) : p3 ? (s2 = false, l2 = Iu(c2, true)) : _2 ? (s2 = false, l2 = Wu(c2, true)) : l2 = [] : gc(c2) || dh(c2) ? (l2 = f2, dh(f2) ? l2 = Rc(f2) : fc(f2) && !uc(f2) || (l2 = Ei(c2))) : s2 = false;
}
s2 && (o2.set(c2, l2), u2(l2, c2, e2, i2, o2), o2.delete(c2)), Er2(n2, r2, l2);
}
function Ge(n2, t2) {
var r2 = n2.length;
if (r2) return t2 += t2 < 0 ? r2 : 0, Ci(t2, r2) ? n2[t2] : X;
}
function He(n2, t2, r2) {
t2 = t2.length ? c(t2, function(n3) {
return bh(n3) ? function(t3) {
return _e2(t3, 1 === n3.length ? n3[0] : n3);
} : n3;
}) : [La];
var e2 = -1;
return t2 = c(t2, z(mi())), A(Pe(n2, function(n3, r3, u2) {
return { criteria: c(t2, function(t3) {
return t3(n3);
}), index: ++e2, value: n3 };
}), function(n3, t3) {
return Cu(n3, t3, r2);
});
}
function Je(n2, t2) {
return Ye(n2, t2, function(t3, r2) {
return Nc(n2, r2);
});
}
function Ye(n2, t2, r2) {
for (var e2 = -1, u2 = t2.length, i2 = {}; ++e2 < u2; ) {
var o2 = t2[e2], f2 = _e2(n2, o2);
r2(f2, o2) && fu(i2, ku(o2, n2), f2);
}
return i2;
}
function Qe(n2) {
return function(t2) {
return _e2(t2, n2);
};
}
function Xe(n2, t2, r2, e2) {
var u2 = e2 ? d : y, i2 = -1, o2 = t2.length, f2 = n2;
for (n2 === t2 && (t2 = Tu(t2)), r2 && (f2 = c(n2, z(r2))); ++i2 < o2; ) for (var a2 = 0, l2 = t2[i2], s2 = r2 ? r2(l2) : l2; (a2 = u2(f2, s2, a2, e2)) > -1; ) f2 !== n2 && Ll.call(f2, a2, 1), Ll.call(n2, a2, 1);
return n2;
}
function nu(n2, t2) {
for (var r2 = n2 ? t2.length : 0, e2 = r2 - 1; r2--; ) {
var u2 = t2[r2];
if (r2 == e2 || u2 !== i2) {
var i2 = u2;
Ci(u2) ? Ll.call(n2, u2, 1) : yu(n2, u2);
}
}
return n2;
}
function tu(n2, t2) {
return n2 + Nl(Ql() * (t2 - n2 + 1));
}
function ru(n2, t2, r2, e2) {
for (var u2 = -1, i2 = Gl(Fl((t2 - n2) / (r2 || 1)), 0), o2 = il(i2); i2--; ) o2[e2 ? i2 : ++u2] = n2, n2 += r2;
return o2;
}
function eu(n2, t2) {
var r2 = "";
if (!n2 || t2 < 1 || t2 > Wn) return r2;
do
t2 % 2 && (r2 += n2), t2 = Nl(t2 / 2), t2 && (n2 += n2);
while (t2);
return r2;
}
function uu(n2, t2) {
return Ls(Vi(n2, t2, La), n2 + "");
}
function iu(n2) {
return Ir2(ra(n2));
}
function ou(n2, t2) {
var r2 = ra(n2);
return Xi(r2, Mr2(t2, 0, r2.length));
}
function fu(n2, t2, r2, e2) {
if (!fc(n2)) return n2;
t2 = ku(t2, n2);
for (var u2 = -1, i2 = t2.length, o2 = i2 - 1, f2 = n2; null != f2 && ++u2 < i2; ) {
var c2 = no(t2[u2]), a2 = r2;
if ("__proto__" === c2 || "constructor" === c2 || "prototype" === c2) return n2;
if (u2 != o2) {
var l2 = f2[c2];
a2 = e2 ? e2(l2, c2, f2) : X, a2 === X && (a2 = fc(l2) ? l2 : Ci(t2[u2 + 1]) ? [] : {});
}
Sr2(f2, c2, a2), f2 = f2[c2];
}
return n2;
}
function cu(n2) {
return Xi(ra(n2));
}
function au(n2, t2, r2) {
var e2 = -1, u2 = n2.length;
t2 < 0 && (t2 = -t2 > u2 ? 0 : u2 + t2), r2 = r2 > u2 ? u2 : r2, r2 < 0 && (r2 += u2), u2 = t2 > r2 ? 0 : r2 - t2 >>> 0, t2 >>>= 0;
for (var i2 = il(u2); ++e2 < u2; ) i2[e2] = n2[e2 + t2];
return i2;
}
function lu(n2, t2) {
var r2;
return ys(n2, function(n3, e2, u2) {
return r2 = t2(n3, e2, u2), !r2;
}), !!r2;
}
function su(n2, t2, r2) {
var e2 = 0, u2 = null == n2 ? e2 : n2.length;
if ("number" == typeof t2 && t2 === t2 && u2 <= Tn) {
for (; e2 < u2; ) {
var i2 = e2 + u2 >>> 1, o2 = n2[i2];
null !== o2 && !bc(o2) && (r2 ? o2 <= t2 : o2 < t2) ? e2 = i2 + 1 : u2 = i2;
}
return u2;
}
return hu(n2, t2, La, r2);
}
function hu(n2, t2, r2, e2) {
var u2 = 0, i2 = null == n2 ? 0 : n2.length;
if (0 === i2) return 0;
t2 = r2(t2);
for (var o2 = t2 !== t2, f2 = null === t2, c2 = bc(t2), a2 = t2 === X; u2 < i2; ) {
var l2 = Nl((u2 + i2) / 2), s2 = r2(n2[l2]), h2 = s2 !== X, p3 = null === s2, _2 = s2 === s2, v2 = bc(s2);
if (o2) var g2 = e2 || _2;
else g2 = a2 ? _2 && (e2 || h2) : f2 ? _2 && h2 && (e2 || !p3) : c2 ? _2 && h2 && !p3 && (e2 || !v2) : !p3 && !v2 && (e2 ? s2 <= t2 : s2 < t2);
g2 ? u2 = l2 + 1 : i2 = l2;
}
return Hl(i2, Bn);
}
function pu(n2, t2) {
for (var r2 = -1, e2 = n2.length, u2 = 0, i2 = []; ++r2 < e2; ) {
var o2 = n2[r2], f2 = t2 ? t2(o2) : o2;
if (!r2 || !Gf(f2, c2)) {
var c2 = f2;
i2[u2++] = 0 === o2 ? 0 : o2;
}
}
return i2;
}
function _u(n2) {
return "number" == typeof n2 ? n2 : bc(n2) ? Cn : +n2;
}
function vu(n2) {
if ("string" == typeof n2) return n2;
if (bh(n2)) return c(n2, vu) + "";
if (bc(n2)) return vs ? vs.call(n2) : "";
var t2 = n2 + "";
return "0" == t2 && 1 / n2 == -Sn ? "-0" : t2;
}
function gu(n2, t2, r2) {
var e2 = -1, u2 = o, i2 = n2.length, c2 = true, a2 = [], l2 = a2;
if (r2) c2 = false, u2 = f;
else if (i2 >= tn) {
var s2 = t2 ? null : ks(n2);
if (s2) return P(s2);
c2 = false, u2 = S, l2 = new yr2();
} else l2 = t2 ? [] : a2;
n: for (; ++e2 < i2; ) {
var h2 = n2[e2], p3 = t2 ? t2(h2) : h2;
if (h2 = r2 || 0 !== h2 ? h2 : 0, c2 && p3 === p3) {
for (var _2 = l2.length; _2--; ) if (l2[_2] === p3) continue n;
t2 && l2.push(p3), a2.push(h2);
} else u2(l2, p3, r2) || (l2 !== a2 && l2.push(p3), a2.push(h2));
}
return a2;
}
function yu(n2, t2) {
return t2 = ku(t2, n2), n2 = Gi(n2, t2), null == n2 || delete n2[no(jo(t2))];
}
function du(n2, t2, r2, e2) {
return fu(n2, t2, r2(_e2(n2, t2)), e2);
}
function bu(n2, t2, r2, e2) {
for (var u2 = n2.length, i2 = e2 ? u2 : -1; (e2 ? i2-- : ++i2 < u2) && t2(n2[i2], i2, n2); ) ;
return r2 ? au(n2, e2 ? 0 : i2, e2 ? i2 + 1 : u2) : au(n2, e2 ? i2 + 1 : 0, e2 ? u2 : i2);
}
function wu(n2, t2) {
var r2 = n2;
return r2 instanceof Ct2 && (r2 = r2.value()), l(t2, function(n3, t3) {
return t3.func.apply(t3.thisArg, a([n3], t3.args));
}, r2);
}
function mu(n2, t2, r2) {
var e2 = n2.length;
if (e2 < 2) return e2 ? gu(n2[0]) : [];
for (var u2 = -1, i2 = il(e2); ++u2 < e2; ) for (var o2 = n2[u2], f2 = -1; ++f2 < e2; ) f2 != u2 && (i2[u2] = Hr2(i2[u2] || o2, n2[f2], t2, r2));
return gu(ee2(i2, 1), t2, r2);
}
function xu(n2, t2, r2) {
for (var e2 = -1, u2 = n2.length, i2 = t2.length, o2 = {}; ++e2 < u2; ) {
r2(o2, n2[e2], e2 < i2 ? t2[e2] : X);
}
return o2;
}
function ju(n2) {
return Jf(n2) ? n2 : [];
}
function Au(n2) {
return "function" == typeof n2 ? n2 : La;
}
function ku(n2, t2) {
return bh(n2) ? n2 : Bi(n2, t2) ? [n2] : Cs(Ec(n2));
}
function Ou(n2, t2, r2) {
var e2 = n2.length;
return r2 = r2 === X ? e2 : r2, !t2 && r2 >= e2 ? n2 : au(n2, t2, r2);
}
function Iu(n2, t2) {
if (t2) return n2.slice();
var r2 = n2.length, e2 = zl ? zl(r2) : new n2.constructor(r2);
return n2.copy(e2), e2;
}
function Ru(n2) {
var t2 = new n2.constructor(n2.byteLength);
return new Rl(t2).set(new Rl(n2)), t2;
}
function zu(n2, t2) {
return new n2.constructor(t2 ? Ru(n2.buffer) : n2.buffer, n2.byteOffset, n2.byteLength);
}
function Eu(n2) {
var t2 = new n2.constructor(n2.source, Nt.exec(n2));
return t2.lastIndex = n2.lastIndex, t2;
}
function Su(n2) {
return _s ? ll(_s.call(n2)) : {};
}
function Wu(n2, t2) {
return new n2.constructor(t2 ? Ru(n2.buffer) : n2.buffer, n2.byteOffset, n2.length);
}
function Lu(n2, t2) {
if (n2 !== t2) {
var r2 = n2 !== X, e2 = null === n2, u2 = n2 === n2, i2 = bc(n2), o2 = t2 !== X, f2 = null === t2, c2 = t2 === t2, a2 = bc(t2);
if (!f2 && !a2 && !i2 && n2 > t2 || i2 && o2 && c2 && !f2 && !a2 || e2 && o2 && c2 || !r2 && c2 || !u2) return 1;
if (!e2 && !i2 && !a2 && n2 < t2 || a2 && r2 && u2 && !e2 && !i2 || f2 && r2 && u2 || !o2 && u2 || !c2) return -1;
}
return 0;
}
function Cu(n2, t2, r2) {
for (var e2 = -1, u2 = n2.criteria, i2 = t2.criteria, o2 = u2.length, f2 = r2.length; ++e2 < o2; ) {
var c2 = Lu(u2[e2], i2[e2]);
if (c2) {
if (e2 >= f2) return c2;
return c2 * ("desc" == r2[e2] ? -1 : 1);
}
}
return n2.index - t2.index;
}
function Uu(n2, t2, r2, e2) {
for (var u2 = -1, i2 = n2.length, o2 = r2.length, f2 = -1, c2 = t2.length, a2 = Gl(i2 - o2, 0), l2 = il(c2 + a2), s2 = !e2; ++f2 < c2; ) l2[f2] = t2[f2];
for (; ++u2 < o2; ) (s2 || u2 < i2) && (l2[r2[u2]] = n2[u2]);
for (; a2--; ) l2[f2++] = n2[u2++];
return l2;
}
function Bu(n2, t2, r2, e2) {
for (var u2 = -1, i2 = n2.length, o2 = -1, f2 = r2.length, c2 = -1, a2 = t2.length, l2 = Gl(i2 - f2, 0), s2 = il(l2 + a2), h2 = !e2; ++u2 < l2; ) s2[u2] = n2[u2];
for (var p3 = u2; ++c2 < a2; ) s2[p3 + c2] = t2[c2];
for (; ++o2 < f2; ) (h2 || u2 < i2) && (s2[p3 + r2[o2]] = n2[u2++]);
return s2;
}
function Tu(n2, t2) {
var r2 = -1, e2 = n2.length;
for (t2 || (t2 = il(e2)); ++r2 < e2; ) t2[r2] = n2[r2];
return t2;
}
function $u(n2, t2, r2, e2) {
var u2 = !r2;
r2 || (r2 = {});
for (var i2 = -1, o2 = t2.length; ++i2 < o2; ) {
var f2 = t2[i2], c2 = e2 ? e2(r2[f2], n2[f2], f2, r2, n2) : X;
c2 === X && (c2 = n2[f2]), u2 ? Br2(r2, f2, c2) : Sr2(r2, f2, c2);
}
return r2;
}
function Du(n2, t2) {
return $u(n2, Is(n2), t2);
}
function Mu(n2, t2) {
return $u(n2, Rs(n2), t2);
}
function Fu(n2, r2) {
return function(e2, u2) {
var i2 = bh(e2) ? t : Lr2, o2 = r2 ? r2() : {};
return i2(e2, n2, mi(u2, 2), o2);
};
}
function Nu(n2) {
return uu(function(t2, r2) {
var e2 = -1, u2 = r2.length, i2 = u2 > 1 ? r2[u2 - 1] : X, o2 = u2 > 2 ? r2[2] : X;
for (i2 = n2.length > 3 && "function" == typeof i2 ? (u2--, i2) : X, o2 && Ui(r2[0], r2[1], o2) && (i2 = u2 < 3 ? X : i2, u2 = 1), t2 = ll(t2); ++e2 < u2; ) {
var f2 = r2[e2];
f2 && n2(t2, f2, e2, i2);
}
return t2;
});
}
function Pu(n2, t2) {
return function(r2, e2) {
if (null == r2) return r2;
if (!Hf(r2)) return n2(r2, e2);
for (var u2 = r2.length, i2 = t2 ? u2 : -1, o2 = ll(r2); (t2 ? i2-- : ++i2 < u2) && e2(o2[i2], i2, o2) !== false; ) ;
return r2;
};
}
function qu(n2) {
return function(t2, r2, e2) {
for (var u2 = -1, i2 = ll(t2), o2 = e2(t2), f2 = o2.length; f2--; ) {
var c2 = o2[n2 ? f2 : ++u2];
if (r2(i2[c2], c2, i2) === false) break;
}
return t2;
};
}
function Zu(n2, t2, r2) {
function e2() {
return (this && this !== re && this instanceof e2 ? i2 : n2).apply(u2 ? r2 : this, arguments);
}
var u2 = t2 & _n, i2 = Gu(n2);
return e2;
}
function Ku(n2) {
return function(t2) {
t2 = Ec(t2);
var r2 = T(t2) ? G(t2) : X, e2 = r2 ? r2[0] : t2.charAt(0), u2 = r2 ? Ou(r2, 1).join("") : t2.slice(1);
return e2[n2]() + u2;
};
}
function Vu(n2) {
return function(t2) {
return l(Ra(ca(t2).replace($r, "")), n2, "");
};
}
function Gu(n2) {
return function() {
var t2 = arguments;
switch (t2.length) {
case 0:
return new n2();
case 1:
return new n2(t2[0]);
case 2:
return new n2(t2[0], t2[1]);
case 3:
return new n2(t2[0], t2[1], t2[2]);
case 4:
return new n2(t2[0], t2[1], t2[2], t2[3]);
case 5:
return new n2(t2[0], t2[1], t2[2], t2[3], t2[4]);
case 6:
return new n2(t2[0], t2[1], t2[2], t2[3], t2[4], t2[5]);
case 7:
return new n2(t2[0], t2[1], t2[2], t2[3], t2[4], t2[5], t2[6]);
}
var r2 = gs(n2.prototype), e2 = n2.apply(r2, t2);
return fc(e2) ? e2 : r2;
};
}
function Hu(t2, r2, e2) {
function u2() {
for (var o2 = arguments.length, f2 = il(o2), c2 = o2, a2 = wi(u2); c2--; ) f2[c2] = arguments[c2];
var l2 = o2 < 3 && f2[0] !== a2 && f2[o2 - 1] !== a2 ? [] : N(f2, a2);
return o2 -= l2.length, o2 < e2 ? oi(t2, r2, Qu, u2.placeholder, X, f2, l2, X, X, e2 - o2) : n(this && this !== re && this instanceof u2 ? i2 : t2, this, f2);
}
var i2 = Gu(t2);
return u2;
}
function Ju(n2) {
return function(t2, r2, e2) {
var u2 = ll(t2);
if (!Hf(t2)) {
var i2 = mi(r2, 3);
t2 = Pc(t2), r2 = function(n3) {
return i2(u2[n3], n3, u2);
};
}
var o2 = n2(t2, r2, e2);
return o2 > -1 ? u2[i2 ? t2[o2] : o2] : X;
};
}
function Yu(n2) {
return gi(function(t2) {
var r2 = t2.length, e2 = r2, u2 = Y2.prototype.thru;
for (n2 && t2.reverse(); e2--; ) {
var i2 = t2[e2];
if ("function" != typeof i2) throw new pl(en);
if (u2 && !o2 && "wrapper" == bi(i2)) var o2 = new Y2([], true);
}
for (e2 = o2 ? e2 : r2; ++e2 < r2; ) {
i2 = t2[e2];
var f2 = bi(i2), c2 = "wrapper" == f2 ? Os(i2) : X;
o2 = c2 && $i(c2[0]) && c2[1] == (mn | yn | bn | xn) && !c2[4].length && 1 == c2[9] ? o2[bi(c2[0])].apply(o2, c2[3]) : 1 == i2.length && $i(i2) ? o2[f2]() : o2.thru(i2);
}
return function() {
var n3 = arguments, e3 = n3[0];
if (o2 && 1 == n3.length && bh(e3)) return o2.plant(e3).value();
for (var u3 = 0, i3 = r2 ? t2[u3].apply(this, n3) : e3; ++u3 < r2; ) i3 = t2[u3].call(this, i3);
return i3;
};
});
}
function Qu(n2, t2, r2, e2, u2, i2, o2, f2, c2, a2) {
function l2() {
for (var y2 = arguments.length, d2 = il(y2), b2 = y2; b2--; ) d2[b2] = arguments[b2];
if (_2) var w2 = wi(l2), m2 = C(d2, w2);
if (e2 && (d2 = Uu(d2, e2, u2, _2)), i2 && (d2 = Bu(d2, i2, o2, _2)), y2 -= m2, _2 && y2 < a2) {
return oi(n2, t2, Qu, l2.placeholder, r2, d2, N(d2, w2), f2, c2, a2 - y2);
}
var x3 = h2 ? r2 : this, j2 = p3 ? x3[n2] : n2;
return y2 = d2.length, f2 ? d2 = Hi(d2, f2) : v2 && y2 > 1 && d2.reverse(), s2 && c2 < y2 && (d2.length = c2), this && this !== re && this instanceof l2 && (j2 = g2 || Gu(j2)), j2.apply(x3, d2);
}
var s2 = t2 & mn, h2 = t2 & _n, p3 = t2 & vn, _2 = t2 & (yn | dn), v2 = t2 & jn, g2 = p3 ? X : Gu(n2);
return l2;
}
function Xu(n2, t2) {
return function(r2, e2) {
return Oe(r2, n2, t2(e2), {});
};
}
function ni(n2, t2) {
return function(r2, e2) {
var u2;
if (r2 === X && e2 === X) return t2;
if (r2 !== X && (u2 = r2), e2 !== X) {
if (u2 === X) return e2;
"string" == typeof r2 || "string" == typeof e2 ? (r2 = vu(r2), e2 = vu(e2)) : (r2 = _u(r2), e2 = _u(e2)), u2 = n2(r2, e2);
}
return u2;
};
}
function ti(t2) {
return gi(function(r2) {
return r2 = c(r2, z(mi())), uu(function(e2) {
var u2 = this;
return t2(r2, function(t3) {
return n(t3, u2, e2);
});
});
});
}
function ri(n2, t2) {
t2 = t2 === X ? " " : vu(t2);
var r2 = t2.length;
if (r2 < 2) return r2 ? eu(t2, n2) : t2;
var e2 = eu(t2, Fl(n2 / V(t2)));
return T(t2) ? Ou(G(e2), 0, n2).join("") : e2.slice(0, n2);
}
function ei(t2, r2, e2, u2) {
function i2() {
for (var r3 = -1, c2 = arguments.length, a2 = -1, l2 = u2.length, s2 = il(l2 + c2), h2 = this && this !== re && this instanceof i2 ? f2 : t2; ++a2 < l2; ) s2[a2] = u2[a2];
for (; c2--; ) s2[a2++] = arguments[++r3];
return n(h2, o2 ? e2 : this, s2);
}
var o2 = r2 & _n, f2 = Gu(t2);
return i2;
}
function ui(n2) {
return function(t2, r2, e2) {
return e2 && "number" != typeof e2 && Ui(t2, r2, e2) && (r2 = e2 = X), t2 = Ac(t2), r2 === X ? (r2 = t2, t2 = 0) : r2 = Ac(r2), e2 = e2 === X ? t2 < r2 ? 1 : -1 : Ac(e2), ru(t2, r2, e2, n2);
};
}
function ii(n2) {
return function(t2, r2) {
return "string" == typeof t2 && "string" == typeof r2 || (t2 = Ic(t2), r2 = Ic(r2)), n2(t2, r2);
};
}
function oi(n2, t2, r2, e2, u2, i2, o2, f2, c2, a2) {
var l2 = t2 & yn, s2 = l2 ? o2 : X, h2 = l2 ? X : o2, p3 = l2 ? i2 : X, _2 = l2 ? X : i2;
t2 |= l2 ? bn : wn, t2 &= ~(l2 ? wn : bn), t2 & gn || (t2 &= ~(_n | vn));
var v2 = [n2, t2, u2, p3, s2, _2, h2, f2, c2, a2], g2 = r2.apply(X, v2);
return $i(n2) && Ss(g2, v2), g2.placeholder = e2, Yi(g2, n2, t2);
}
function fi(n2) {
var t2 = al[n2];
return function(n3, r2) {
if (n3 = Ic(n3), r2 = null == r2 ? 0 : Hl(kc(r2), 292), r2 && Zl(n3)) {
var e2 = (Ec(n3) + "e").split("e");
return e2 = (Ec(t2(e2[0] + "e" + (+e2[1] + r2))) + "e").split("e"), +(e2[0] + "e" + (+e2[1] - r2));
}
return t2(n3);
};
}
function ci(n2) {
return function(t2) {
var r2 = zs(t2);
return r2 == Gn ? M(t2) : r2 == tt ? q(t2) : I(t2, n2(t2));
};
}
function ai(n2, t2, r2, e2, u2, i2, o2, f2) {
var c2 = t2 & vn;
if (!c2 && "function" != typeof n2) throw new pl(en);
var a2 = e2 ? e2.length : 0;
if (a2 || (t2 &= ~(bn | wn), e2 = u2 = X), o2 = o2 === X ? o2 : Gl(kc(o2), 0), f2 = f2 === X ? f2 : kc(f2), a2 -= u2 ? u2.length : 0, t2 & wn) {
var l2 = e2, s2 = u2;
e2 = u2 = X;
}
var h2 = c2 ? X : Os(n2), p3 = [n2, t2, r2, e2, u2, l2, s2, i2, o2, f2];
if (h2 && qi(p3, h2), n2 = p3[0], t2 = p3[1], r2 = p3[2], e2 = p3[3], u2 = p3[4], f2 = p3[9] = p3[9] === X ? c2 ? 0 : n2.length : Gl(p3[9] - a2, 0), !f2 && t2 & (yn | dn) && (t2 &= ~(yn | dn)), t2 && t2 != _n) _2 = t2 == yn || t2 == dn ? Hu(n2, t2, f2) : t2 != bn && t2 != (_n | bn) || u2.length ? Qu.apply(X, p3) : ei(n2, t2, r2, e2);
else var _2 = Zu(n2, t2, r2);
return Yi((h2 ? ms : Ss)(_2, p3), n2, t2);
}
function li(n2, t2, r2, e2) {
return n2 === X || Gf(n2, gl[r2]) && !bl.call(e2, r2) ? t2 : n2;
}
function si(n2, t2, r2, e2, u2, i2) {
return fc(n2) && fc(t2) && (i2.set(t2, n2), Ke(n2, t2, X, si, i2), i2.delete(t2)), n2;
}
function hi(n2) {
return gc(n2) ? X : n2;
}
function pi(n2, t2, r2, e2, u2, i2) {
var o2 = r2 & hn, f2 = n2.length, c2 = t2.length;
if (f2 != c2 && !(o2 && c2 > f2)) return false;
var a2 = i2.get(n2), l2 = i2.get(t2);
if (a2 && l2) return a2 == t2 && l2 == n2;
var s2 = -1, p3 = true, _2 = r2 & pn ? new yr2() : X;
for (i2.set(n2, t2), i2.set(t2, n2); ++s2 < f2; ) {
var v2 = n2[s2], g2 = t2[s2];
if (e2) var y2 = o2 ? e2(g2, v2, s2, t2, n2, i2) : e2(v2, g2, s2, n2, t2, i2);
if (y2 !== X) {
if (y2) continue;
p3 = false;
break;
}
if (_2) {
if (!h(t2, function(n3, t3) {
if (!S(_2, t3) && (v2 === n3 || u2(v2, n3, r2, e2, i2))) return _2.push(t3);
})) {
p3 = false;
break;
}
} else if (v2 !== g2 && !u2(v2, g2, r2, e2, i2)) {
p3 = false;
break;
}
}
return i2.delete(n2), i2.delete(t2), p3;
}
function _i(n2, t2, r2, e2, u2, i2, o2) {
switch (r2) {
case ct:
if (n2.byteLength != t2.byteLength || n2.byteOffset != t2.byteOffset) return false;
n2 = n2.buffer, t2 = t2.buffer;
case ft:
return !(n2.byteLength != t2.byteLength || !i2(new Rl(n2), new Rl(t2)));
case Nn:
case Pn:
case Hn:
return Gf(+n2, +t2);
case Zn:
return n2.name == t2.name && n2.message == t2.message;
case nt:
case rt:
return n2 == t2 + "";
case Gn:
var f2 = M;
case tt:
var c2 = e2 & hn;
if (f2 || (f2 = P), n2.size != t2.size && !c2) return false;
var a2 = o2.get(n2);
if (a2) return a2 == t2;
e2 |= pn, o2.set(n2, t2);
var l2 = pi(f2(n2), f2(t2), e2, u2, i2, o2);
return o2.delete(n2), l2;
case et:
if (_s) return _s.call(n2) == _s.call(t2);
}
return false;
}
function vi(n2, t2, r2, e2, u2, i2) {
var o2 = r2 & hn, f2 = yi(n2), c2 = f2.length;
if (c2 != yi(t2).length && !o2) return false;
for (var a2 = c2; a2--; ) {
var l2 = f2[a2];
if (!(o2 ? l2 in t2 : bl.call(t2, l2))) return false;
}
var s2 = i2.get(n2), h2 = i2.get(t2);
if (s2 && h2) return s2 == t2 && h2 == n2;
var p3 = true;
i2.set(n2, t2), i2.set(t2, n2);
for (var _2 = o2; ++a2 < c2; ) {
l2 = f2[a2];
var v2 = n2[l2], g2 = t2[l2];
if (e2) var y2 = o2 ? e2(g2, v2, l2, t2, n2, i2) : e2(v2, g2, l2, n2, t2, i2);
if (!(y2 === X ? v2 === g2 || u2(v2, g2, r2, e2, i2) : y2)) {
p3 = false;
break;
}
_2 || (_2 = "constructor" == l2);
}
if (p3 && !_2) {
var d2 = n2.constructor, b2 = t2.constructor;
d2 != b2 && "constructor" in n2 && "constructor" in t2 && !("function" == typeof d2 && d2 instanceof d2 && "function" == typeof b2 && b2 instanceof b2) && (p3 = false);
}
return i2.delete(n2), i2.delete(t2), p3;
}
function gi(n2) {
return Ls(Vi(n2, X, _o), n2 + "");
}
function yi(n2) {
return de2(n2, Pc, Is);
}
function di(n2) {
return de2(n2, qc, Rs);
}
function bi(n2) {
for (var t2 = n2.name + "", r2 = fs[t2], e2 = bl.call(fs, t2) ? r2.length : 0; e2--; ) {
var u2 = r2[e2], i2 = u2.func;
if (null == i2 || i2 == n2) return u2.name;
}
return t2;
}
function wi(n2) {
return (bl.call(Z2, "placeholder") ? Z2 : n2).placeholder;
}
function mi() {
var n2 = Z2.iteratee || Ca;
return n2 = n2 === Ca ? De : n2, arguments.length ? n2(arguments[0], arguments[1]) : n2;
}
function xi(n2, t2) {
var r2 = n2.__data__;
return Ti(t2) ? r2["string" == typeof t2 ? "string" : "hash"] : r2.map;
}
function ji(n2) {
for (var t2 = Pc(n2), r2 = t2.length; r2--; ) {
var e2 = t2[r2], u2 = n2[e2];
t2[r2] = [e2, u2, Fi(u2)];
}
return t2;
}
function Ai(n2, t2) {
var r2 = B(n2, t2);
return Ue(r2) ? r2 : X;
}
function ki(n2) {
var t2 = bl.call(n2, Bl), r2 = n2[Bl];
try {
n2[Bl] = X;
var e2 = true;
} catch (n3) {
}
var u2 = xl.call(n2);
return e2 && (t2 ? n2[Bl] = r2 : delete n2[Bl]), u2;
}
function Oi(n2, t2, r2) {
for (var e2 = -1, u2 = r2.length; ++e2 < u2; ) {
var i2 = r2[e2], o2 = i2.size;
switch (i2.type) {
case "drop":
n2 += o2;
break;
case "dropRight":
t2 -= o2;
break;
case "take":
t2 = Hl(t2, n2 + o2);
break;
case "takeRight":
n2 = Gl(n2, t2 - o2);
}
}
return { start: n2, end: t2 };
}
function Ii(n2) {
var t2 = n2.match(Bt);
return t2 ? t2[1].split(Tt) : [];
}
function Ri(n2, t2, r2) {
t2 = ku(t2, n2);
for (var e2 = -1, u2 = t2.length, i2 = false; ++e2 < u2; ) {
var o2 = no(t2[e2]);
if (!(i2 = null != n2 && r2(n2, o2))) break;
n2 = n2[o2];
}
return i2 || ++e2 != u2 ? i2 : (u2 = null == n2 ? 0 : n2.length, !!u2 && oc(u2) && Ci(o2, u2) && (bh(n2) || dh(n2)));
}
function zi(n2) {
var t2 = n2.length, r2 = new n2.constructor(t2);
return t2 && "string" == typeof n2[0] && bl.call(n2, "index") && (r2.index = n2.index, r2.input = n2.input), r2;
}
function Ei(n2) {
return "function" != typeof n2.constructor || Mi(n2) ? {} : gs(El(n2));
}
function Si(n2, t2, r2) {
var e2 = n2.constructor;
switch (t2) {
case ft:
return Ru(n2);
case Nn:
case Pn:
return new e2(+n2);
case ct:
return zu(n2, r2);
case at:
case lt:
case st:
case ht:
case pt:
case _t:
case vt:
case gt:
case yt:
return Wu(n2, r2);
case Gn:
return new e2();
case Hn:
case rt:
return new e2(n2);
case nt:
return Eu(n2);
case tt:
return new e2();
case et:
return Su(n2);
}
}
function Wi(n2, t2) {
var r2 = t2.length;
if (!r2) return n2;
var e2 = r2 - 1;
return t2[e2] = (r2 > 1 ? "& " : "") + t2[e2], t2 = t2.join(r2 > 2 ? ", " : " "), n2.replace(Ut, "{\n/* [wrapped with " + t2 + "] */\n");
}
function Li(n2) {
return bh(n2) || dh(n2) || !!(Cl && n2 && n2[Cl]);
}
function Ci(n2, t2) {
var r2 = typeof n2;
return t2 = null == t2 ? Wn : t2, !!t2 && ("number" == r2 || "symbol" != r2 && Vt.test(n2)) && n2 > -1 && n2 % 1 == 0 && n2 < t2;
}
function Ui(n2, t2, r2) {
if (!fc(r2)) return false;
var e2 = typeof t2;
return !!("number" == e2 ? Hf(r2) && Ci(t2, r2.length) : "string" == e2 && t2 in r2) && Gf(r2[t2], n2);
}
function Bi(n2, t2) {
if (bh(n2)) return false;
var r2 = typeof n2;
return !("number" != r2 && "symbol" != r2 && "boolean" != r2 && null != n2 && !bc(n2)) || (zt.test(n2) || !Rt.test(n2) || null != t2 && n2 in ll(t2));
}
function Ti(n2) {
var t2 = typeof n2;
return "string" == t2 || "number" == t2 || "symbol" == t2 || "boolean" == t2 ? "__proto__" !== n2 : null === n2;
}
function $i(n2) {
var t2 = bi(n2), r2 = Z2[t2];
if ("function" != typeof r2 || !(t2 in Ct2.prototype)) return false;
if (n2 === r2) return true;
var e2 = Os(r2);
return !!e2 && n2 === e2[0];
}
function Di(n2) {
return !!ml && ml in n2;
}
function Mi(n2) {
var t2 = n2 && n2.constructor;
return n2 === ("function" == typeof t2 && t2.prototype || gl);
}
function Fi(n2) {
return n2 === n2 && !fc(n2);
}
function Ni(n2, t2) {
return function(r2) {
return null != r2 && (r2[n2] === t2 && (t2 !== X || n2 in ll(r2)));
};
}
function Pi(n2) {
var t2 = Cf(n2, function(n3) {
return r2.size === fn && r2.clear(), n3;
}), r2 = t2.cache;
return t2;
}
function qi(n2, t2) {
var r2 = n2[1], e2 = t2[1], u2 = r2 | e2, i2 = u2 < (_n | vn | mn), o2 = e2 == mn && r2 == yn || e2 == mn && r2 == xn && n2[7].length <= t2[8] || e2 == (mn | xn) && t2[7].length <= t2[8] && r2 == yn;
if (!i2 && !o2) return n2;
e2 & _n && (n2[2] = t2[2], u2 |= r2 & _n ? 0 : gn);
var f2 = t2[3];
if (f2) {
var c2 = n2[3];
n2[3] = c2 ? Uu(c2, f2, t2[4]) : f2, n2[4] = c2 ? N(n2[3], cn) : t2[4];
}
return f2 = t2[5], f2 && (c2 = n2[5], n2[5] = c2 ? Bu(c2, f2, t2[6]) : f2, n2[6] = c2 ? N(n2[5], cn) : t2[6]), f2 = t2[7], f2 && (n2[7] = f2), e2 & mn && (n2[8] = null == n2[8] ? t2[8] : Hl(n2[8], t2[8])), null == n2[9] && (n2[9] = t2[9]), n2[0] = t2[0], n2[1] = u2, n2;
}
function Zi(n2) {
var t2 = [];
if (null != n2) for (var r2 in ll(n2)) t2.push(r2);
return t2;
}
function Ki(n2) {
return xl.call(n2);
}
function Vi(t2, r2, e2) {
return r2 = Gl(r2 === X ? t2.length - 1 : r2, 0), function() {
for (var u2 = arguments, i2 = -1, o2 = Gl(u2.length - r2, 0), f2 = il(o2); ++i2 < o2; ) f2[i2] = u2[r2 + i2];
i2 = -1;
for (var c2 = il(r2 + 1); ++i2 < r2; ) c2[i2] = u2[i2];
return c2[r2] = e2(f2), n(t2, this, c2);
};
}
function Gi(n2, t2) {
return t2.length < 2 ? n2 : _e2(n2, au(t2, 0, -1));
}
function Hi(n2, t2) {
for (var r2 = n2.length, e2 = Hl(t2.length, r2), u2 = Tu(n2); e2--; ) {
var i2 = t2[e2];
n2[e2] = Ci(i2, r2) ? u2[i2] : X;
}
return n2;
}
function Ji(n2, t2) {
if (("constructor" !== t2 || "function" != typeof n2[t2]) && "__proto__" != t2) return n2[t2];
}
function Yi(n2, t2, r2) {
var e2 = t2 + "";
return Ls(n2, Wi(e2, ro(Ii(e2), r2)));
}
function Qi(n2) {
var t2 = 0, r2 = 0;
return function() {
var e2 = Jl(), u2 = In - (e2 - r2);
if (r2 = e2, u2 > 0) {
if (++t2 >= On) return arguments[0];
} else t2 = 0;
return n2.apply(X, arguments);
};
}
function Xi(n2, t2) {
var r2 = -1, e2 = n2.length, u2 = e2 - 1;
for (t2 = t2 === X ? e2 : t2; ++r2 < t2; ) {
var i2 = tu(r2, u2), o2 = n2[i2];
n2[i2] = n2[r2], n2[r2] = o2;
}
return n2.length = t2, n2;
}
function no(n2) {
if ("string" == typeof n2 || bc(n2)) return n2;
var t2 = n2 + "";
return "0" == t2 && 1 / n2 == -Sn ? "-0" : t2;
}
function to(n2) {
if (null != n2) {
try {
return dl.call(n2);
} catch (n3) {
}
try {
return n2 + "";
} catch (n3) {
}
}
return "";
}
function ro(n2, t2) {
return r($n, function(r2) {
var e2 = "_." + r2[0];
t2 & r2[1] && !o(n2, e2) && n2.push(e2);
}), n2.sort();
}
function eo(n2) {
if (n2 instanceof Ct2) return n2.clone();
var t2 = new Y2(n2.__wrapped__, n2.__chain__);
return t2.__actions__ = Tu(n2.__actions__), t2.__index__ = n2.__index__, t2.__values__ = n2.__values__, t2;
}
function uo(n2, t2, r2) {
t2 = (r2 ? Ui(n2, t2, r2) : t2 === X) ? 1 : Gl(kc(t2), 0);
var e2 = null == n2 ? 0 : n2.length;
if (!e2 || t2 < 1) return [];
for (var u2 = 0, i2 = 0, o2 = il(Fl(e2 / t2)); u2 < e2; ) o2[i2++] = au(n2, u2, u2 += t2);
return o2;
}
function io(n2) {
for (var t2 = -1, r2 = null == n2 ? 0 : n2.length, e2 = 0, u2 = []; ++t2 < r2; ) {
var i2 = n2[t2];
i2 && (u2[e2++] = i2);
}
return u2;
}
function oo() {
var n2 = arguments.length;
if (!n2) return [];
for (var t2 = il(n2 - 1), r2 = arguments[0], e2 = n2; e2--; ) t2[e2 - 1] = arguments[e2];
return a(bh(r2) ? Tu(r2) : [r2], ee2(t2, 1));
}
function fo(n2, t2, r2) {
var e2 = null == n2 ? 0 : n2.length;
return e2 ? (t2 = r2 || t2 === X ? 1 : kc(t2), au(n2, t2 < 0 ? 0 : t2, e2)) : [];
}
function co(n2, t2, r2) {
var e2 = null == n2 ? 0 : n2.length;
return e2 ? (t2 = r2 || t2 === X ? 1 : kc(t2), t2 = e2 - t2, au(n2, 0, t2 < 0 ? 0 : t2)) : [];
}
function ao(n2, t2) {
return n2 && n2.length ? bu(n2, mi(t2, 3), true, true) : [];
}
function lo(n2, t2) {
return n2 && n2.length ? bu(n2, mi(t2, 3), true) : [];
}
function so(n2, t2, r2, e2) {
var u2 = null == n2 ? 0 : n2.length;
return u2 ? (r2 && "number" != typeof r2 && Ui(n2, t2, r2) && (r2 = 0, e2 = u2), ne2(n2, t2, r2, e2)) : [];
}
function ho(n2, t2, r2) {
var e2 = null == n2 ? 0 : n2.length;
if (!e2) return -1;
var u2 = null == r2 ? 0 : kc(r2);
return u2 < 0 && (u2 = Gl(e2 + u2, 0)), g(n2, mi(t2, 3), u2);
}
function po(n2, t2, r2) {
var e2 = null == n2 ? 0 : n2.length;
if (!e2) return -1;
var u2 = e2 - 1;
return r2 !== X && (u2 = kc(r2), u2 = r2 < 0 ? Gl(e2 + u2, 0) : Hl(u2, e2 - 1)), g(n2, mi(t2, 3), u2, true);
}
function _o(n2) {
return (null == n2 ? 0 : n2.length) ? ee2(n2, 1) : [];
}
function vo(n2) {
return (null == n2 ? 0 : n2.length) ? ee2(n2, Sn) : [];
}
function go(n2, t2) {
return (null == n2 ? 0 : n2.length) ? (t2 = t2 === X ? 1 : kc(t2), ee2(n2, t2)) : [];
}
function yo(n2) {
for (var t2 = -1, r2 = null == n2 ? 0 : n2.length, e2 = {}; ++t2 < r2; ) {
var u2 = n2[t2];
e2[u2[0]] = u2[1];
}
return e2;
}
function bo(n2) {
return n2 && n2.length ? n2[0] : X;
}
function wo(n2, t2, r2) {
var e2 = null == n2 ? 0 : n2.length;
if (!e2) return -1;
var u2 = null == r2 ? 0 : kc(r2);
return u2 < 0 && (u2 = Gl(e2 + u2, 0)), y(n2, t2, u2);
}
function mo(n2) {
return (null == n2 ? 0 : n2.length) ? au(n2, 0, -1) : [];
}
function xo(n2, t2) {
return null == n2 ? "" : Kl.call(n2, t2);
}
function jo(n2) {
var t2 = null == n2 ? 0 : n2.length;
return t2 ? n2[t2 - 1] : X;
}
function Ao(n2, t2, r2) {
var e2 = null == n2 ? 0 : n2.length;
if (!e2) return -1;
var u2 = e2;
return r2 !== X && (u2 = kc(r2), u2 = u2 < 0 ? Gl(e2 + u2, 0) : Hl(u2, e2 - 1)), t2 === t2 ? K(n2, t2, u2) : g(n2, b, u2, true);
}
function ko(n2, t2) {
return n2 && n2.length ? Ge(n2, kc(t2)) : X;
}
function Oo(n2, t2) {
return n2 && n2.length && t2 && t2.length ? Xe(n2, t2) : n2;
}
function Io(n2, t2, r2) {
return n2 && n2.length && t2 && t2.length ? Xe(n2, t2, mi(r2, 2)) : n2;
}
function Ro(n2, t2, r2) {
return n2 && n2.length && t2 && t2.length ? Xe(n2, t2, X, r2) : n2;
}
function zo(n2, t2) {
var r2 = [];
if (!n2 || !n2.length) return r2;
var e2 = -1, u2 = [], i2 = n2.length;
for (t2 = mi(t2, 3); ++e2 < i2; ) {
var o2 = n2[e2];
t2(o2, e2, n2) && (r2.push(o2), u2.push(e2));
}
return nu(n2, u2), r2;
}
function Eo(n2) {
return null == n2 ? n2 : Xl.call(n2);
}
function So(n2, t2, r2) {
var e2 = null == n2 ? 0 : n2.length;
return e2 ? (r2 && "number" != typeof r2 && Ui(n2, t2, r2) ? (t2 = 0, r2 = e2) : (t2 = null == t2 ? 0 : kc(t2), r2 = r2 === X ? e2 : kc(r2)), au(n2, t2, r2)) : [];
}
function Wo(n2, t2) {
return su(n2, t2);
}
function Lo(n2, t2, r2) {
return hu(n2, t2, mi(r2, 2));
}
function Co(n2, t2) {
var r2 = null == n2 ? 0 : n2.length;
if (r2) {
var e2 = su(n2, t2);
if (e2 < r2 && Gf(n2[e2], t2)) return e2;
}
return -1;
}
function Uo(n2, t2) {
return su(n2, t2, true);
}
function Bo(n2, t2, r2) {
return hu(n2, t2, mi(r2, 2), true);
}
function To(n2, t2) {
if (null == n2 ? 0 : n2.length) {
var r2 = su(n2, t2, true) - 1;
if (Gf(n2[r2], t2)) return r2;
}
return -1;
}
function $o(n2) {
return n2 && n2.length ? pu(n2) : [];
}
function Do(n2, t2) {
return n2 && n2.length ? pu(n2, mi(t2, 2)) : [];
}
function Mo(n2) {
var t2 = null == n2 ? 0 : n2.length;
return t2 ? au(n2, 1, t2) : [];
}
function Fo(n2, t2, r2) {
return n2 && n2.length ? (t2 = r2 || t2 === X ? 1 : kc(t2), au(n2, 0, t2 < 0 ? 0 : t2)) : [];
}
function No(n2, t2, r2) {
var e2 = null == n2 ? 0 : n2.length;
return e2 ? (t2 = r2 || t2 === X ? 1 : kc(t2), t2 = e2 - t2, au(n2, t2 < 0 ? 0 : t2, e2)) : [];
}
function Po(n2, t2) {
return n2 && n2.length ? bu(n2, mi(t2, 3), false, true) : [];
}
function qo(n2, t2) {
return n2 && n2.length ? bu(n2, mi(t2, 3)) : [];
}
function Zo(n2) {
return n2 && n2.length ? gu(n2) : [];
}
function Ko(n2, t2) {
return n2 && n2.length ? gu(n2, mi(t2, 2)) : [];
}
function Vo(n2, t2) {
return t2 = "function" == typeof t2 ? t2 : X, n2 && n2.length ? gu(n2, X, t2) : [];
}
function Go(n2) {
if (!n2 || !n2.length) return [];
var t2 = 0;
return n2 = i(n2, function(n3) {
if (Jf(n3)) return t2 = Gl(n3.length, t2), true;
}), O(t2, function(t3) {
return c(n2, m(t3));
});
}
function Ho(t2, r2) {
if (!t2 || !t2.length) return [];
var e2 = Go(t2);
return null == r2 ? e2 : c(e2, function(t3) {
return n(r2, X, t3);
});
}
function Jo(n2, t2) {
return xu(n2 || [], t2 || [], Sr2);
}
function Yo(n2, t2) {
return xu(n2 || [], t2 || [], fu);
}
function Qo(n2) {
var t2 = Z2(n2);
return t2.__chain__ = true, t2;
}
function Xo(n2, t2) {
return t2(n2), n2;
}
function nf(n2, t2) {
return t2(n2);
}
function tf() {
return Qo(this);
}
function rf() {
return new Y2(this.value(), this.__chain__);
}
function ef() {
this.__values__ === X && (this.__values__ = jc(this.value()));
var n2 = this.__index__ >= this.__values__.length;
return { done: n2, value: n2 ? X : this.__values__[this.__index__++] };
}
function uf() {
return this;
}
function of(n2) {
for (var t2, r2 = this; r2 instanceof J2; ) {
var e2 = eo(r2);
e2.__index__ = 0, e2.__values__ = X, t2 ? u2.__wrapped__ = e2 : t2 = e2;
var u2 = e2;
r2 = r2.__wrapped__;
}
return u2.__wrapped__ = n2, t2;
}
function ff() {
var n2 = this.__wrapped__;
if (n2 instanceof Ct2) {
var t2 = n2;
return this.__actions__.length && (t2 = new Ct2(this)), t2 = t2.reverse(), t2.__actions__.push({ func: nf, args: [Eo], thisArg: X }), new Y2(t2, this.__chain__);
}
return this.thru(Eo);
}
function cf() {
return wu(this.__wrapped__, this.__actions__);
}
function af(n2, t2, r2) {
var e2 = bh(n2) ? u : Jr2;
return r2 && Ui(n2, t2, r2) && (t2 = X), e2(n2, mi(t2, 3));
}
function lf(n2, t2) {
return (bh(n2) ? i : te2)(n2, mi(t2, 3));
}
function sf(n2, t2) {
return ee2(yf(n2, t2), 1);
}
function hf(n2, t2) {
return ee2(yf(n2, t2), Sn);
}
function pf(n2, t2, r2) {
return r2 = r2 === X ? 1 : kc(r2), ee2(yf(n2, t2), r2);
}
function _f(n2, t2) {
return (bh(n2) ? r : ys)(n2, mi(t2, 3));
}
function vf(n2, t2) {
return (bh(n2) ? e : ds)(n2, mi(t2, 3));
}
function gf(n2, t2, r2, e2) {
n2 = Hf(n2) ? n2 : ra(n2), r2 = r2 && !e2 ? kc(r2) : 0;
var u2 = n2.length;
return r2 < 0 && (r2 = Gl(u2 + r2, 0)), dc(n2) ? r2 <= u2 && n2.indexOf(t2, r2) > -1 : !!u2 && y(n2, t2, r2) > -1;
}
function yf(n2, t2) {
return (bh(n2) ? c : Pe)(n2, mi(t2, 3));
}
function df(n2, t2, r2, e2) {
return null == n2 ? [] : (bh(t2) || (t2 = null == t2 ? [] : [t2]), r2 = e2 ? X : r2, bh(r2) || (r2 = null == r2 ? [] : [r2]), He(n2, t2, r2));
}
function bf(n2, t2, r2) {
var e2 = bh(n2) ? l : j, u2 = arguments.length < 3;
return e2(n2, mi(t2, 4), r2, u2, ys);
}
function wf(n2, t2, r2) {
var e2 = bh(n2) ? s : j, u2 = arguments.length < 3;
return e2(n2, mi(t2, 4), r2, u2, ds);
}
function mf(n2, t2) {
return (bh(n2) ? i : te2)(n2, Uf(mi(t2, 3)));
}
function xf(n2) {
return (bh(n2) ? Ir2 : iu)(n2);
}
function jf(n2, t2, r2) {
return t2 = (r2 ? Ui(n2, t2, r2) : t2 === X) ? 1 : kc(t2), (bh(n2) ? Rr2 : ou)(n2, t2);
}
function Af(n2) {
return (bh(n2) ? zr2 : cu)(n2);
}
function kf(n2) {
if (null == n2) return 0;
if (Hf(n2)) return dc(n2) ? V(n2) : n2.length;
var t2 = zs(n2);
return t2 == Gn || t2 == tt ? n2.size : Me(n2).length;
}
function Of(n2, t2, r2) {
var e2 = bh(n2) ? h : lu;
return r2 && Ui(n2, t2, r2) && (t2 = X), e2(n2, mi(t2, 3));
}
function If(n2, t2) {
if ("function" != typeof t2) throw new pl(en);
return n2 = kc(n2), function() {
if (--n2 < 1) return t2.apply(this, arguments);
};
}
function Rf(n2, t2, r2) {
return t2 = r2 ? X : t2, t2 = n2 && null == t2 ? n2.length : t2, ai(n2, mn, X, X, X, X, t2);
}
function zf(n2, t2) {
var r2;
if ("function" != typeof t2) throw new pl(en);
return n2 = kc(n2), function() {
return --n2 > 0 && (r2 = t2.apply(this, arguments)), n2 <= 1 && (t2 = X), r2;
};
}
function Ef(n2, t2, r2) {
t2 = r2 ? X : t2;
var e2 = ai(n2, yn, X, X, X, X, X, t2);
return e2.placeholder = Ef.placeholder, e2;
}
function Sf(n2, t2, r2) {
t2 = r2 ? X : t2;
var e2 = ai(n2, dn, X, X, X, X, X, t2);
return e2.placeholder = Sf.placeholder, e2;
}
function Wf(n2, t2, r2) {
function e2(t3) {
var r3 = h2, e3 = p3;
return h2 = p3 = X, d2 = t3, v2 = n2.apply(e3, r3);
}
function u2(n3) {
return d2 = n3, g2 = Ws(f2, t2), b2 ? e2(n3) : v2;
}
function i2(n3) {
var r3 = n3 - y2, e3 = n3 - d2, u3 = t2 - r3;
return w2 ? Hl(u3, _2 - e3) : u3;
}
function o2(n3) {
var r3 = n3 - y2, e3 = n3 - d2;
return y2 === X || r3 >= t2 || r3 < 0 || w2 && e3 >= _2;
}
function f2() {
var n3 = fh();
return o2(n3) ? c2(n3) : (g2 = Ws(f2, i2(n3)), X);
}
function c2(n3) {
return g2 = X, m2 && h2 ? e2(n3) : (h2 = p3 = X, v2);
}
function a2() {
g2 !== X && As(g2), d2 = 0, h2 = y2 = p3 = g2 = X;
}
function l2() {
return g2 === X ? v2 : c2(fh());
}
function s2() {
var n3 = fh(), r3 = o2(n3);
if (h2 = arguments, p3 = this, y2 = n3, r3) {
if (g2 === X) return u2(y2);
if (w2) return As(g2), g2 = Ws(f2, t2), e2(y2);
}
return g2 === X && (g2 = Ws(f2, t2)), v2;
}
var h2, p3, _2, v2, g2, y2, d2 = 0, b2 = false, w2 = false, m2 = true;
if ("function" != typeof n2) throw new pl(en);
return t2 = Ic(t2) || 0, fc(r2) && (b2 = !!r2.leading, w2 = "maxWait" in r2, _2 = w2 ? Gl(Ic(r2.maxWait) || 0, t2) : _2, m2 = "trailing" in r2 ? !!r2.trailing : m2), s2.cancel = a2, s2.flush = l2, s2;
}
function Lf(n2) {
return ai(n2, jn);
}
function Cf(n2, t2) {
if ("function" != typeof n2 || null != t2 && "function" != typeof t2) throw new pl(en);
var r2 = function() {
var e2 = arguments, u2 = t2 ? t2.apply(this, e2) : e2[0], i2 = r2.cache;
if (i2.has(u2)) return i2.get(u2);
var o2 = n2.apply(this, e2);
return r2.cache = i2.set(u2, o2) || i2, o2;
};
return r2.cache = new (Cf.Cache || sr2)(), r2;
}
function Uf(n2) {
if ("function" != typeof n2) throw new pl(en);
return function() {
var t2 = arguments;
switch (t2.length) {
case 0:
return !n2.call(this);
case 1:
return !n2.call(this, t2[0]);
case 2:
return !n2.call(this, t2[0], t2[1]);
case 3:
return !n2.call(this, t2[0], t2[1], t2[2]);
}
return !n2.apply(this, t2);
};
}
function Bf(n2) {
return zf(2, n2);
}
function Tf(n2, t2) {
if ("function" != typeof n2) throw new pl(en);
return t2 = t2 === X ? t2 : kc(t2), uu(n2, t2);
}
function $f(t2, r2) {
if ("function" != typeof t2) throw new pl(en);
return r2 = null == r2 ? 0 : Gl(kc(r2), 0), uu(function(e2) {
var u2 = e2[r2], i2 = Ou(e2, 0, r2);
return u2 && a(i2, u2), n(t2, this, i2);
});
}
function Df(n2, t2, r2) {
var e2 = true, u2 = true;
if ("function" != typeof n2) throw new pl(en);
return fc(r2) && (e2 = "leading" in r2 ? !!r2.leading : e2, u2 = "trailing" in r2 ? !!r2.trailing : u2), Wf(n2, t2, { leading: e2, maxWait: t2, trailing: u2 });
}
function Mf(n2) {
return Rf(n2, 1);
}
function Ff(n2, t2) {
return ph(Au(t2), n2);
}
function Nf() {
if (!arguments.length) return [];
var n2 = arguments[0];
return bh(n2) ? n2 : [n2];
}
function Pf(n2) {
return Fr2(n2, sn);
}
function qf(n2, t2) {
return t2 = "function" == typeof t2 ? t2 : X, Fr2(n2, sn, t2);
}
function Zf(n2) {
return Fr2(n2, an | sn);
}
function Kf(n2, t2) {
return t2 = "function" == typeof t2 ? t2 : X, Fr2(n2, an | sn, t2);
}
function Vf(n2, t2) {
return null == t2 || Pr2(n2, t2, Pc(t2));
}
function Gf(n2, t2) {
return n2 === t2 || n2 !== n2 && t2 !== t2;
}
function Hf(n2) {
return null != n2 && oc(n2.length) && !uc(n2);
}
function Jf(n2) {
return cc(n2) && Hf(n2);
}
function Yf(n2) {
return n2 === true || n2 === false || cc(n2) && we(n2) == Nn;
}
function Qf(n2) {
return cc(n2) && 1 === n2.nodeType && !gc(n2);
}
function Xf(n2) {
if (null == n2) return true;
if (Hf(n2) && (bh(n2) || "string" == typeof n2 || "function" == typeof n2.splice || mh(n2) || Oh(n2) || dh(n2))) return !n2.length;
var t2 = zs(n2);
if (t2 == Gn || t2 == tt) return !n2.size;
if (Mi(n2)) return !Me(n2).length;
for (var r2 in n2) if (bl.call(n2, r2)) return false;
return true;
}
function nc(n2, t2) {
return Se(n2, t2);
}
function tc(n2, t2, r2) {
r2 = "function" == typeof r2 ? r2 : X;
var e2 = r2 ? r2(n2, t2) : X;
return e2 === X ? Se(n2, t2, X, r2) : !!e2;
}
function rc(n2) {
if (!cc(n2)) return false;
var t2 = we(n2);
return t2 == Zn || t2 == qn || "string" == typeof n2.message && "string" == typeof n2.name && !gc(n2);
}
function ec(n2) {
return "number" == typeof n2 && Zl(n2);
}
function uc(n2) {
if (!fc(n2)) return false;
var t2 = we(n2);
return t2 == Kn || t2 == Vn || t2 == Fn || t2 == Xn;
}
function ic(n2) {
return "number" == typeof n2 && n2 == kc(n2);
}
function oc(n2) {
return "number" == typeof n2 && n2 > -1 && n2 % 1 == 0 && n2 <= Wn;
}
function fc(n2) {
var t2 = typeof n2;
return null != n2 && ("object" == t2 || "function" == t2);
}
function cc(n2) {
return null != n2 && "object" == typeof n2;
}
function ac(n2, t2) {
return n2 === t2 || Ce(n2, t2, ji(t2));
}
function lc(n2, t2, r2) {
return r2 = "function" == typeof r2 ? r2 : X, Ce(n2, t2, ji(t2), r2);
}
function sc(n2) {
return vc(n2) && n2 != +n2;
}
function hc(n2) {
if (Es(n2)) throw new fl(rn);
return Ue(n2);
}
function pc(n2) {
return null === n2;
}
function _c(n2) {
return null == n2;
}
function vc(n2) {
return "number" == typeof n2 || cc(n2) && we(n2) == Hn;
}
function gc(n2) {
if (!cc(n2) || we(n2) != Yn) return false;
var t2 = El(n2);
if (null === t2) return true;
var r2 = bl.call(t2, "constructor") && t2.constructor;
return "function" == typeof r2 && r2 instanceof r2 && dl.call(r2) == jl;
}
function yc(n2) {
return ic(n2) && n2 >= -Wn && n2 <= Wn;
}
function dc(n2) {
return "string" == typeof n2 || !bh(n2) && cc(n2) && we(n2) == rt;
}
function bc(n2) {
return "symbol" == typeof n2 || cc(n2) && we(n2) == et;
}
function wc(n2) {
return n2 === X;
}
function mc(n2) {
return cc(n2) && zs(n2) == it;
}
function xc(n2) {
return cc(n2) && we(n2) == ot;
}
function jc(n2) {
if (!n2) return [];
if (Hf(n2)) return dc(n2) ? G(n2) : Tu(n2);
if (Ul && n2[Ul]) return D(n2[Ul]());
var t2 = zs(n2);
return (t2 == Gn ? M : t2 == tt ? P : ra)(n2);
}
function Ac(n2) {
if (!n2) return 0 === n2 ? n2 : 0;
if (n2 = Ic(n2), n2 === Sn || n2 === -Sn) {
return (n2 < 0 ? -1 : 1) * Ln;
}
return n2 === n2 ? n2 : 0;
}
function kc(n2) {
var t2 = Ac(n2), r2 = t2 % 1;
return t2 === t2 ? r2 ? t2 - r2 : t2 : 0;
}
function Oc(n2) {
return n2 ? Mr2(kc(n2), 0, Un) : 0;
}
function Ic(n2) {
if ("number" == typeof n2) return n2;
if (bc(n2)) return Cn;
if (fc(n2)) {
var t2 = "function" == typeof n2.valueOf ? n2.valueOf() : n2;
n2 = fc(t2) ? t2 + "" : t2;
}
if ("string" != typeof n2) return 0 === n2 ? n2 : +n2;
n2 = R(n2);
var r2 = qt.test(n2);
return r2 || Kt.test(n2) ? Xr(n2.slice(2), r2 ? 2 : 8) : Pt.test(n2) ? Cn : +n2;
}
function Rc(n2) {
return $u(n2, qc(n2));
}
function zc(n2) {
return n2 ? Mr2(kc(n2), -Wn, Wn) : 0 === n2 ? n2 : 0;
}
function Ec(n2) {
return null == n2 ? "" : vu(n2);
}
function Sc(n2, t2) {
var r2 = gs(n2);
return null == t2 ? r2 : Cr2(r2, t2);
}
function Wc(n2, t2) {
return v(n2, mi(t2, 3), ue2);
}
function Lc(n2, t2) {
return v(n2, mi(t2, 3), oe2);
}
function Cc(n2, t2) {
return null == n2 ? n2 : bs(n2, mi(t2, 3), qc);
}
function Uc(n2, t2) {
return null == n2 ? n2 : ws(n2, mi(t2, 3), qc);
}
function Bc(n2, t2) {
return n2 && ue2(n2, mi(t2, 3));
}
function Tc(n2, t2) {
return n2 && oe2(n2, mi(t2, 3));
}
function $c(n2) {
return null == n2 ? [] : fe2(n2, Pc(n2));
}
function Dc(n2) {
return null == n2 ? [] : fe2(n2, qc(n2));
}
function Mc(n2, t2, r2) {
var e2 = null == n2 ? X : _e2(n2, t2);
return e2 === X ? r2 : e2;
}
function Fc(n2, t2) {
return null != n2 && Ri(n2, t2, xe);
}
function Nc(n2, t2) {
return null != n2 && Ri(n2, t2, je);
}
function Pc(n2) {
return Hf(n2) ? Or2(n2) : Me(n2);
}
function qc(n2) {
return Hf(n2) ? Or2(n2, true) : Fe(n2);
}
function Zc(n2, t2) {
var r2 = {};
return t2 = mi(t2, 3), ue2(n2, function(n3, e2, u2) {
Br2(r2, t2(n3, e2, u2), n3);
}), r2;
}
function Kc(n2, t2) {
var r2 = {};
return t2 = mi(t2, 3), ue2(n2, function(n3, e2, u2) {
Br2(r2, e2, t2(n3, e2, u2));
}), r2;
}
function Vc(n2, t2) {
return Gc(n2, Uf(mi(t2)));
}
function Gc(n2, t2) {
if (null == n2) return {};
var r2 = c(di(n2), function(n3) {
return [n3];
});
return t2 = mi(t2), Ye(n2, r2, function(n3, r3) {
return t2(n3, r3[0]);
});
}
function Hc(n2, t2, r2) {
t2 = ku(t2, n2);
var e2 = -1, u2 = t2.length;
for (u2 || (u2 = 1, n2 = X); ++e2 < u2; ) {
var i2 = null == n2 ? X : n2[no(t2[e2])];
i2 === X && (e2 = u2, i2 = r2), n2 = uc(i2) ? i2.call(n2) : i2;
}
return n2;
}
function Jc(n2, t2, r2) {
return null == n2 ? n2 : fu(n2, t2, r2);
}
function Yc(n2, t2, r2, e2) {
return e2 = "function" == typeof e2 ? e2 : X, null == n2 ? n2 : fu(n2, t2, r2, e2);
}
function Qc(n2, t2, e2) {
var u2 = bh(n2), i2 = u2 || mh(n2) || Oh(n2);
if (t2 = mi(t2, 4), null == e2) {
var o2 = n2 && n2.constructor;
e2 = i2 ? u2 ? new o2() : [] : fc(n2) && uc(o2) ? gs(El(n2)) : {};
}
return (i2 ? r : ue2)(n2, function(n3, r2, u3) {
return t2(e2, n3, r2, u3);
}), e2;
}
function Xc(n2, t2) {
return null == n2 || yu(n2, t2);
}
function na(n2, t2, r2) {
return null == n2 ? n2 : du(n2, t2, Au(r2));
}
function ta(n2, t2, r2, e2) {
return e2 = "function" == typeof e2 ? e2 : X, null == n2 ? n2 : du(n2, t2, Au(r2), e2);
}
function ra(n2) {
return null == n2 ? [] : E(n2, Pc(n2));
}
function ea(n2) {
return null == n2 ? [] : E(n2, qc(n2));
}
function ua(n2, t2, r2) {
return r2 === X && (r2 = t2, t2 = X), r2 !== X && (r2 = Ic(r2), r2 = r2 === r2 ? r2 : 0), t2 !== X && (t2 = Ic(t2), t2 = t2 === t2 ? t2 : 0), Mr2(Ic(n2), t2, r2);
}
function ia(n2, t2, r2) {
return t2 = Ac(t2), r2 === X ? (r2 = t2, t2 = 0) : r2 = Ac(r2), n2 = Ic(n2), Ae(n2, t2, r2);
}
function oa(n2, t2, r2) {
if (r2 && "boolean" != typeof r2 && Ui(n2, t2, r2) && (t2 = r2 = X), r2 === X && ("boolean" == typeof t2 ? (r2 = t2, t2 = X) : "boolean" == typeof n2 && (r2 = n2, n2 = X)), n2 === X && t2 === X ? (n2 = 0, t2 = 1) : (n2 = Ac(n2), t2 === X ? (t2 = n2, n2 = 0) : t2 = Ac(t2)), n2 > t2) {
var e2 = n2;
n2 = t2, t2 = e2;
}
if (r2 || n2 % 1 || t2 % 1) {
var u2 = Ql();
return Hl(n2 + u2 * (t2 - n2 + Qr("1e-" + ((u2 + "").length - 1))), t2);
}
return tu(n2, t2);
}
function fa(n2) {
return Qh(Ec(n2).toLowerCase());
}
function ca(n2) {
return n2 = Ec(n2), n2 && n2.replace(Gt, ve).replace(Dr, "");
}
function aa(n2, t2, r2) {
n2 = Ec(n2), t2 = vu(t2);
var e2 = n2.length;
r2 = r2 === X ? e2 : Mr2(kc(r2), 0, e2);
var u2 = r2;
return r2 -= t2.length, r2 >= 0 && n2.slice(r2, u2) == t2;
}
function la(n2) {
return n2 = Ec(n2), n2 && At.test(n2) ? n2.replace(xt, ge) : n2;
}
function sa(n2) {
return n2 = Ec(n2), n2 && Wt.test(n2) ? n2.replace(St, "\\$&") : n2;
}
function ha(n2, t2, r2) {
n2 = Ec(n2), t2 = kc(t2);
var e2 = t2 ? V(n2) : 0;
if (!t2 || e2 >= t2) return n2;
var u2 = (t2 - e2) / 2;
return ri(Nl(u2), r2) + n2 + ri(Fl(u2), r2);
}
function pa(n2, t2, r2) {
n2 = Ec(n2), t2 = kc(t2);
var e2 = t2 ? V(n2) : 0;
return t2 && e2 < t2 ? n2 + ri(t2 - e2, r2) : n2;
}
function _a(n2, t2, r2) {
n2 = Ec(n2), t2 = kc(t2);
var e2 = t2 ? V(n2) : 0;
return t2 && e2 < t2 ? ri(t2 - e2, r2) + n2 : n2;
}
function va(n2, t2, r2) {
return r2 || null == t2 ? t2 = 0 : t2 && (t2 = +t2), Yl(Ec(n2).replace(Lt, ""), t2 || 0);
}
function ga(n2, t2, r2) {
return t2 = (r2 ? Ui(n2, t2, r2) : t2 === X) ? 1 : kc(t2), eu(Ec(n2), t2);
}
function ya() {
var n2 = arguments, t2 = Ec(n2[0]);
return n2.length < 3 ? t2 : t2.replace(n2[1], n2[2]);
}
function da(n2, t2, r2) {
return r2 && "number" != typeof r2 && Ui(n2, t2, r2) && (t2 = r2 = X), (r2 = r2 === X ? Un : r2 >>> 0) ? (n2 = Ec(n2), n2 && ("string" == typeof t2 || null != t2 && !Ah(t2)) && (t2 = vu(t2), !t2 && T(n2)) ? Ou(G(n2), 0, r2) : n2.split(t2, r2)) : [];
}
function ba(n2, t2, r2) {
return n2 = Ec(n2), r2 = null == r2 ? 0 : Mr2(kc(r2), 0, n2.length), t2 = vu(t2), n2.slice(r2, r2 + t2.length) == t2;
}
function wa(n2, t2, r2) {
var e2 = Z2.templateSettings;
r2 && Ui(n2, t2, r2) && (t2 = X), n2 = Ec(n2), t2 = Sh({}, t2, e2, li);
var u2, i2, o2 = Sh({}, t2.imports, e2.imports, li), f2 = Pc(o2), c2 = E(o2, f2), a2 = 0, l2 = t2.interpolate || Ht, s2 = "__p += '", h2 = sl((t2.escape || Ht).source + "|" + l2.source + "|" + (l2 === It ? Ft : Ht).source + "|" + (t2.evaluate || Ht).source + "|$", "g"), p3 = "//# sourceURL=" + (bl.call(t2, "sourceURL") ? (t2.sourceURL + "").replace(/\s/g, " ") : "lodash.templateSources[" + ++Zr + "]") + "\n";
n2.replace(h2, function(t3, r3, e3, o3, f3, c3) {
return e3 || (e3 = o3), s2 += n2.slice(a2, c3).replace(Jt, U), r3 && (u2 = true, s2 += "' +\n__e(" + r3 + ") +\n'"), f3 && (i2 = true, s2 += "';\n" + f3 + ";\n__p += '"), e3 && (s2 += "' +\n((__t = (" + e3 + ")) == null ? '' : __t) +\n'"), a2 = c3 + t3.length, t3;
}), s2 += "';\n";
var _2 = bl.call(t2, "variable") && t2.variable;
if (_2) {
if (Dt.test(_2)) throw new fl(un);
} else s2 = "with (obj) {\n" + s2 + "\n}\n";
s2 = (i2 ? s2.replace(dt2, "") : s2).replace(bt, "$1").replace(wt, "$1;"), s2 = "function(" + (_2 || "obj") + ") {\n" + (_2 ? "" : "obj || (obj = {});\n") + "var __t, __p = ''" + (u2 ? ", __e = _.escape" : "") + (i2 ? ", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n" : ";\n") + s2 + "return __p\n}";
var v2 = Xh(function() {
return cl(f2, p3 + "return " + s2).apply(X, c2);
});
if (v2.source = s2, rc(v2)) throw v2;
return v2;
}
function ma(n2) {
return Ec(n2).toLowerCase();
}
function xa(n2) {
return Ec(n2).toUpperCase();
}
function ja(n2, t2, r2) {
if (n2 = Ec(n2), n2 && (r2 || t2 === X)) return R(n2);
if (!n2 || !(t2 = vu(t2))) return n2;
var e2 = G(n2), u2 = G(t2);
return Ou(e2, W(e2, u2), L(e2, u2) + 1).join("");
}
function Aa(n2, t2, r2) {
if (n2 = Ec(n2), n2 && (r2 || t2 === X)) return n2.slice(0, H(n2) + 1);
if (!n2 || !(t2 = vu(t2))) return n2;
var e2 = G(n2);
return Ou(e2, 0, L(e2, G(t2)) + 1).join("");
}
function ka(n2, t2, r2) {
if (n2 = Ec(n2), n2 && (r2 || t2 === X)) return n2.replace(Lt, "");
if (!n2 || !(t2 = vu(t2))) return n2;
var e2 = G(n2);
return Ou(e2, W(e2, G(t2))).join("");
}
function Oa(n2, t2) {
var r2 = An, e2 = kn;
if (fc(t2)) {
var u2 = "separator" in t2 ? t2.separator : u2;
r2 = "length" in t2 ? kc(t2.length) : r2, e2 = "omission" in t2 ? vu(t2.omission) : e2;
}
n2 = Ec(n2);
var i2 = n2.length;
if (T(n2)) {
var o2 = G(n2);
i2 = o2.length;
}
if (r2 >= i2) return n2;
var f2 = r2 - V(e2);
if (f2 < 1) return e2;
var c2 = o2 ? Ou(o2, 0, f2).join("") : n2.slice(0, f2);
if (u2 === X) return c2 + e2;
if (o2 && (f2 += c2.length - f2), Ah(u2)) {
if (n2.slice(f2).search(u2)) {
var a2, l2 = c2;
for (u2.global || (u2 = sl(u2.source, Ec(Nt.exec(u2)) + "g")), u2.lastIndex = 0; a2 = u2.exec(l2); ) var s2 = a2.index;
c2 = c2.slice(0, s2 === X ? f2 : s2);
}
} else if (n2.indexOf(vu(u2), f2) != f2) {
var h2 = c2.lastIndexOf(u2);
h2 > -1 && (c2 = c2.slice(0, h2));
}
return c2 + e2;
}
function Ia(n2) {
return n2 = Ec(n2), n2 && jt.test(n2) ? n2.replace(mt, ye) : n2;
}
function Ra(n2, t2, r2) {
return n2 = Ec(n2), t2 = r2 ? X : t2, t2 === X ? $(n2) ? Q(n2) : _(n2) : n2.match(t2) || [];
}
function za(t2) {
var r2 = null == t2 ? 0 : t2.length, e2 = mi();
return t2 = r2 ? c(t2, function(n2) {
if ("function" != typeof n2[1]) throw new pl(en);
return [e2(n2[0]), n2[1]];
}) : [], uu(function(e3) {
for (var u2 = -1; ++u2 < r2; ) {
var i2 = t2[u2];
if (n(i2[0], this, e3)) return n(i2[1], this, e3);
}
});
}
function Ea(n2) {
return Nr2(Fr2(n2, an));
}
function Sa(n2) {
return function() {
return n2;
};
}
function Wa(n2, t2) {
return null == n2 || n2 !== n2 ? t2 : n2;
}
function La(n2) {
return n2;
}
function Ca(n2) {
return De("function" == typeof n2 ? n2 : Fr2(n2, an));
}
function Ua(n2) {
return qe(Fr2(n2, an));
}
function Ba(n2, t2) {
return Ze(n2, Fr2(t2, an));
}
function Ta(n2, t2, e2) {
var u2 = Pc(t2), i2 = fe2(t2, u2);
null != e2 || fc(t2) && (i2.length || !u2.length) || (e2 = t2, t2 = n2, n2 = this, i2 = fe2(t2, Pc(t2)));
var o2 = !(fc(e2) && "chain" in e2 && !e2.chain), f2 = uc(n2);
return r(i2, function(r2) {
var e3 = t2[r2];
n2[r2] = e3, f2 && (n2.prototype[r2] = function() {
var t3 = this.__chain__;
if (o2 || t3) {
var r3 = n2(this.__wrapped__);
return (r3.__actions__ = Tu(this.__actions__)).push({ func: e3, args: arguments, thisArg: n2 }), r3.__chain__ = t3, r3;
}
return e3.apply(n2, a([this.value()], arguments));
});
}), n2;
}
function $a() {
return re._ === this && (re._ = Al), this;
}
function Da() {
}
function Ma(n2) {
return n2 = kc(n2), uu(function(t2) {
return Ge(t2, n2);
});
}
function Fa(n2) {
return Bi(n2) ? m(no(n2)) : Qe(n2);
}
function Na(n2) {
return function(t2) {
return null == n2 ? X : _e2(n2, t2);
};
}
function Pa() {
return [];
}
function qa() {
return false;
}
function Za() {
return {};
}
function Ka() {
return "";
}
function Va() {
return true;
}
function Ga(n2, t2) {
if (n2 = kc(n2), n2 < 1 || n2 > Wn) return [];
var r2 = Un, e2 = Hl(n2, Un);
t2 = mi(t2), n2 -= Un;
for (var u2 = O(e2, t2); ++r2 < n2; ) t2(r2);
return u2;
}
function Ha(n2) {
return bh(n2) ? c(n2, no) : bc(n2) ? [n2] : Tu(Cs(Ec(n2)));
}
function Ja(n2) {
var t2 = ++wl;
return Ec(n2) + t2;
}
function Ya(n2) {
return n2 && n2.length ? Yr2(n2, La, me) : X;
}
function Qa(n2, t2) {
return n2 && n2.length ? Yr2(n2, mi(t2, 2), me) : X;
}
function Xa(n2) {
return w(n2, La);
}
function nl(n2, t2) {
return w(n2, mi(t2, 2));
}
function tl(n2) {
return n2 && n2.length ? Yr2(n2, La, Ne) : X;
}
function rl(n2, t2) {
return n2 && n2.length ? Yr2(n2, mi(t2, 2), Ne) : X;
}
function el(n2) {
return n2 && n2.length ? k(n2, La) : 0;
}
function ul(n2, t2) {
return n2 && n2.length ? k(n2, mi(t2, 2)) : 0;
}
x2 = null == x2 ? re : be.defaults(re.Object(), x2, be.pick(re, qr));
var il = x2.Array, ol = x2.Date, fl = x2.Error, cl = x2.Function, al = x2.Math, ll = x2.Object, sl = x2.RegExp, hl = x2.String, pl = x2.TypeError, _l = il.prototype, vl = cl.prototype, gl = ll.prototype, yl = x2["__core-js_shared__"], dl = vl.toString, bl = gl.hasOwnProperty, wl = 0, ml = function() {
var n2 = /[^.]+$/.exec(yl && yl.keys && yl.keys.IE_PROTO || "");
return n2 ? "Symbol(src)_1." + n2 : "";
}(), xl = gl.toString, jl = dl.call(ll), Al = re._, kl = sl("^" + dl.call(bl).replace(St, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$"), Ol = ie ? x2.Buffer : X, Il = x2.Symbol, Rl = x2.Uint8Array, zl = Ol ? Ol.allocUnsafe : X, El = F(ll.getPrototypeOf, ll), Sl = ll.create, Wl = gl.propertyIsEnumerable, Ll = _l.splice, Cl = Il ? Il.isConcatSpreadable : X, Ul = Il ? Il.iterator : X, Bl = Il ? Il.toStringTag : X, Tl = function() {
try {
var n2 = Ai(ll, "defineProperty");
return n2({}, "", {}), n2;
} catch (n3) {
}
}(), $l = x2.clearTimeout !== re.clearTimeout && x2.clearTimeout, Dl = ol && ol.now !== re.Date.now && ol.now, Ml = x2.setTimeout !== re.setTimeout && x2.setTimeout, Fl = al.ceil, Nl = al.floor, Pl = ll.getOwnPropertySymbols, ql = Ol ? Ol.isBuffer : X, Zl = x2.isFinite, Kl = _l.join, Vl = F(ll.keys, ll), Gl = al.max, Hl = al.min, Jl = ol.now, Yl = x2.parseInt, Ql = al.random, Xl = _l.reverse, ns = Ai(x2, "DataView"), ts = Ai(x2, "Map"), rs = Ai(x2, "Promise"), es = Ai(x2, "Set"), us = Ai(x2, "WeakMap"), is = Ai(ll, "create"), os = us && new us(), fs = {}, cs = to(ns), as = to(ts), ls = to(rs), ss = to(es), hs = to(us), ps = Il ? Il.prototype : X, _s = ps ? ps.valueOf : X, vs = ps ? ps.toString : X, gs = /* @__PURE__ */ function() {
function n2() {
}
return function(t2) {
if (!fc(t2)) return {};
if (Sl) return Sl(t2);
n2.prototype = t2;
var r2 = new n2();
return n2.prototype = X, r2;
};
}();
Z2.templateSettings = { escape: kt, evaluate: Ot, interpolate: It, variable: "", imports: { _: Z2 } }, Z2.prototype = J2.prototype, Z2.prototype.constructor = Z2, Y2.prototype = gs(J2.prototype), Y2.prototype.constructor = Y2, Ct2.prototype = gs(J2.prototype), Ct2.prototype.constructor = Ct2, Xt2.prototype.clear = nr2, Xt2.prototype.delete = tr2, Xt2.prototype.get = rr2, Xt2.prototype.has = er2, Xt2.prototype.set = ur2, ir2.prototype.clear = or2, ir2.prototype.delete = fr2, ir2.prototype.get = cr2, ir2.prototype.has = ar2, ir2.prototype.set = lr2, sr2.prototype.clear = hr2, sr2.prototype.delete = pr2, sr2.prototype.get = _r2, sr2.prototype.has = vr2, sr2.prototype.set = gr2, yr2.prototype.add = yr2.prototype.push = dr2, yr2.prototype.has = br2, wr2.prototype.clear = mr2, wr2.prototype.delete = xr2, wr2.prototype.get = jr2, wr2.prototype.has = Ar2, wr2.prototype.set = kr2;
var ys = Pu(ue2), ds = Pu(oe2, true), bs = qu(), ws = qu(true), ms = os ? function(n2, t2) {
return os.set(n2, t2), n2;
} : La, xs = Tl ? function(n2, t2) {
return Tl(n2, "toString", {
configurable: true,
enumerable: false,
value: Sa(t2),
writable: true
});
} : La, js = uu, As = $l || function(n2) {
return re.clearTimeout(n2);
}, ks = es && 1 / P(new es([, -0]))[1] == Sn ? function(n2) {
return new es(n2);
} : Da, Os = os ? function(n2) {
return os.get(n2);
} : Da, Is = Pl ? function(n2) {
return null == n2 ? [] : (n2 = ll(n2), i(Pl(n2), function(t2) {
return Wl.call(n2, t2);
}));
} : Pa, Rs = Pl ? function(n2) {
for (var t2 = []; n2; ) a(t2, Is(n2)), n2 = El(n2);
return t2;
} : Pa, zs = we;
(ns && zs(new ns(new ArrayBuffer(1))) != ct || ts && zs(new ts()) != Gn || rs && zs(rs.resolve()) != Qn || es && zs(new es()) != tt || us && zs(new us()) != it) && (zs = function(n2) {
var t2 = we(n2), r2 = t2 == Yn ? n2.constructor : X, e2 = r2 ? to(r2) : "";
if (e2) switch (e2) {
case cs:
return ct;
case as:
return Gn;
case ls:
return Qn;
case ss:
return tt;
case hs:
return it;
}
return t2;
});
var Es = yl ? uc : qa, Ss = Qi(ms), Ws = Ml || function(n2, t2) {
return re.setTimeout(n2, t2);
}, Ls = Qi(xs), Cs = Pi(function(n2) {
var t2 = [];
return 46 === n2.charCodeAt(0) && t2.push(""), n2.replace(Et, function(n3, r2, e2, u2) {
t2.push(e2 ? u2.replace(Mt, "$1") : r2 || n3);
}), t2;
}), Us = uu(function(n2, t2) {
return Jf(n2) ? Hr2(n2, ee2(t2, 1, Jf, true)) : [];
}), Bs = uu(function(n2, t2) {
var r2 = jo(t2);
return Jf(r2) && (r2 = X), Jf(n2) ? Hr2(n2, ee2(t2, 1, Jf, true), mi(r2, 2)) : [];
}), Ts = uu(function(n2, t2) {
var r2 = jo(t2);
return Jf(r2) && (r2 = X), Jf(n2) ? Hr2(n2, ee2(t2, 1, Jf, true), X, r2) : [];
}), $s = uu(function(n2) {
var t2 = c(n2, ju);
return t2.length && t2[0] === n2[0] ? ke(t2) : [];
}), Ds = uu(function(n2) {
var t2 = jo(n2), r2 = c(n2, ju);
return t2 === jo(r2) ? t2 = X : r2.pop(), r2.length && r2[0] === n2[0] ? ke(r2, mi(t2, 2)) : [];
}), Ms = uu(function(n2) {
var t2 = jo(n2), r2 = c(n2, ju);
return t2 = "function" == typeof t2 ? t2 : X, t2 && r2.pop(), r2.length && r2[0] === n2[0] ? ke(r2, X, t2) : [];
}), Fs = uu(Oo), Ns = gi(function(n2, t2) {
var r2 = null == n2 ? 0 : n2.length, e2 = Tr2(n2, t2);
return nu(n2, c(t2, function(n3) {
return Ci(n3, r2) ? +n3 : n3;
}).sort(Lu)), e2;
}), Ps = uu(function(n2) {
return gu(ee2(n2, 1, Jf, true));
}), qs2 = uu(function(n2) {
var t2 = jo(n2);
return Jf(t2) && (t2 = X), gu(ee2(n2, 1, Jf, true), mi(t2, 2));
}), Zs = uu(function(n2) {
var t2 = jo(n2);
return t2 = "function" == typeof t2 ? t2 : X, gu(ee2(n2, 1, Jf, true), X, t2);
}), Ks = uu(function(n2, t2) {
return Jf(n2) ? Hr2(n2, t2) : [];
}), Vs = uu(function(n2) {
return mu(i(n2, Jf));
}), Gs = uu(function(n2) {
var t2 = jo(n2);
return Jf(t2) && (t2 = X), mu(i(n2, Jf), mi(t2, 2));
}), Hs = uu(function(n2) {
var t2 = jo(n2);
return t2 = "function" == typeof t2 ? t2 : X, mu(i(n2, Jf), X, t2);
}), Js = uu(Go), Ys = uu(function(n2) {
var t2 = n2.length, r2 = t2 > 1 ? n2[t2 - 1] : X;
return r2 = "function" == typeof r2 ? (n2.pop(), r2) : X, Ho(n2, r2);
}), Qs = gi(function(n2) {
var t2 = n2.length, r2 = t2 ? n2[0] : 0, e2 = this.__wrapped__, u2 = function(t3) {
return Tr2(t3, n2);
};
return !(t2 > 1 || this.__actions__.length) && e2 instanceof Ct2 && Ci(r2) ? (e2 = e2.slice(r2, +r2 + (t2 ? 1 : 0)), e2.__actions__.push({ func: nf, args: [u2], thisArg: X }), new Y2(e2, this.__chain__).thru(function(n3) {
return t2 && !n3.length && n3.push(X), n3;
})) : this.thru(u2);
}), Xs = Fu(function(n2, t2, r2) {
bl.call(n2, r2) ? ++n2[r2] : Br2(n2, r2, 1);
}), nh = Ju(ho), th = Ju(po), rh = Fu(function(n2, t2, r2) {
bl.call(n2, r2) ? n2[r2].push(t2) : Br2(n2, r2, [t2]);
}), eh = uu(function(t2, r2, e2) {
var u2 = -1, i2 = "function" == typeof r2, o2 = Hf(t2) ? il(t2.length) : [];
return ys(t2, function(t3) {
o2[++u2] = i2 ? n(r2, t3, e2) : Ie(t3, r2, e2);
}), o2;
}), uh = Fu(function(n2, t2, r2) {
Br2(n2, r2, t2);
}), ih = Fu(function(n2, t2, r2) {
n2[r2 ? 0 : 1].push(t2);
}, function() {
return [[], []];
}), oh = uu(function(n2, t2) {
if (null == n2) return [];
var r2 = t2.length;
return r2 > 1 && Ui(n2, t2[0], t2[1]) ? t2 = [] : r2 > 2 && Ui(t2[0], t2[1], t2[2]) && (t2 = [t2[0]]), He(n2, ee2(t2, 1), []);
}), fh = Dl || function() {
return re.Date.now();
}, ch = uu(function(n2, t2, r2) {
var e2 = _n;
if (r2.length) {
var u2 = N(r2, wi(ch));
e2 |= bn;
}
return ai(n2, e2, t2, r2, u2);
}), ah = uu(function(n2, t2, r2) {
var e2 = _n | vn;
if (r2.length) {
var u2 = N(r2, wi(ah));
e2 |= bn;
}
return ai(t2, e2, n2, r2, u2);
}), lh = uu(function(n2, t2) {
return Gr2(n2, 1, t2);
}), sh = uu(function(n2, t2, r2) {
return Gr2(n2, Ic(t2) || 0, r2);
});
Cf.Cache = sr2;
var hh = js(function(t2, r2) {
r2 = 1 == r2.length && bh(r2[0]) ? c(r2[0], z(mi())) : c(ee2(r2, 1), z(mi()));
var e2 = r2.length;
return uu(function(u2) {
for (var i2 = -1, o2 = Hl(u2.length, e2); ++i2 < o2; ) u2[i2] = r2[i2].call(this, u2[i2]);
return n(t2, this, u2);
});
}), ph = uu(function(n2, t2) {
return ai(n2, bn, X, t2, N(t2, wi(ph)));
}), _h = uu(function(n2, t2) {
return ai(n2, wn, X, t2, N(t2, wi(_h)));
}), vh = gi(function(n2, t2) {
return ai(n2, xn, X, X, X, t2);
}), gh = ii(me), yh = ii(function(n2, t2) {
return n2 >= t2;
}), dh = Re(/* @__PURE__ */ function() {
return arguments;
}()) ? Re : function(n2) {
return cc(n2) && bl.call(n2, "callee") && !Wl.call(n2, "callee");
}, bh = il.isArray, wh = ce ? z(ce) : ze, mh = ql || qa, xh = ae ? z(ae) : Ee, jh = le ? z(le) : Le, Ah = se ? z(se) : Be, kh = he ? z(he) : Te, Oh = pe ? z(pe) : $e, Ih = ii(Ne), Rh = ii(function(n2, t2) {
return n2 <= t2;
}), zh = Nu(function(n2, t2) {
if (Mi(t2) || Hf(t2)) return $u(t2, Pc(t2), n2), X;
for (var r2 in t2) bl.call(t2, r2) && Sr2(n2, r2, t2[r2]);
}), Eh = Nu(function(n2, t2) {
$u(t2, qc(t2), n2);
}), Sh = Nu(function(n2, t2, r2, e2) {
$u(t2, qc(t2), n2, e2);
}), Wh = Nu(function(n2, t2, r2, e2) {
$u(t2, Pc(t2), n2, e2);
}), Lh = gi(Tr2), Ch = uu(function(n2, t2) {
n2 = ll(n2);
var r2 = -1, e2 = t2.length, u2 = e2 > 2 ? t2[2] : X;
for (u2 && Ui(t2[0], t2[1], u2) && (e2 = 1); ++r2 < e2; ) for (var i2 = t2[r2], o2 = qc(i2), f2 = -1, c2 = o2.length; ++f2 < c2; ) {
var a2 = o2[f2], l2 = n2[a2];
(l2 === X || Gf(l2, gl[a2]) && !bl.call(n2, a2)) && (n2[a2] = i2[a2]);
}
return n2;
}), Uh = uu(function(t2) {
return t2.push(X, si), n(Mh, X, t2);
}), Bh = Xu(function(n2, t2, r2) {
null != t2 && "function" != typeof t2.toString && (t2 = xl.call(t2)), n2[t2] = r2;
}, Sa(La)), Th = Xu(function(n2, t2, r2) {
null != t2 && "function" != typeof t2.toString && (t2 = xl.call(t2)), bl.call(n2, t2) ? n2[t2].push(r2) : n2[t2] = [r2];
}, mi), $h = uu(Ie), Dh = Nu(function(n2, t2, r2) {
Ke(n2, t2, r2);
}), Mh = Nu(function(n2, t2, r2, e2) {
Ke(n2, t2, r2, e2);
}), Fh = gi(function(n2, t2) {
var r2 = {};
if (null == n2) return r2;
var e2 = false;
t2 = c(t2, function(t3) {
return t3 = ku(t3, n2), e2 || (e2 = t3.length > 1), t3;
}), $u(n2, di(n2), r2), e2 && (r2 = Fr2(r2, an | ln | sn, hi));
for (var u2 = t2.length; u2--; ) yu(r2, t2[u2]);
return r2;
}), Nh = gi(function(n2, t2) {
return null == n2 ? {} : Je(n2, t2);
}), Ph = ci(Pc), qh = ci(qc), Zh = Vu(function(n2, t2, r2) {
return t2 = t2.toLowerCase(), n2 + (r2 ? fa(t2) : t2);
}), Kh = Vu(function(n2, t2, r2) {
return n2 + (r2 ? "-" : "") + t2.toLowerCase();
}), Vh = Vu(function(n2, t2, r2) {
return n2 + (r2 ? " " : "") + t2.toLowerCase();
}), Gh = Ku("toLowerCase"), Hh = Vu(function(n2, t2, r2) {
return n2 + (r2 ? "_" : "") + t2.toLowerCase();
}), Jh = Vu(function(n2, t2, r2) {
return n2 + (r2 ? " " : "") + Qh(t2);
}), Yh = Vu(function(n2, t2, r2) {
return n2 + (r2 ? " " : "") + t2.toUpperCase();
}), Qh = Ku("toUpperCase"), Xh = uu(function(t2, r2) {
try {
return n(t2, X, r2);
} catch (n2) {
return rc(n2) ? n2 : new fl(n2);
}
}), np = gi(function(n2, t2) {
return r(t2, function(t3) {
t3 = no(t3), Br2(n2, t3, ch(n2[t3], n2));
}), n2;
}), tp = Yu(), rp = Yu(true), ep = uu(function(n2, t2) {
return function(r2) {
return Ie(r2, n2, t2);
};
}), up = uu(function(n2, t2) {
return function(r2) {
return Ie(n2, r2, t2);
};
}), ip = ti(c), op = ti(u), fp = ti(h), cp = ui(), ap = ui(true), lp = ni(function(n2, t2) {
return n2 + t2;
}, 0), sp = fi("ceil"), hp = ni(function(n2, t2) {
return n2 / t2;
}, 1), pp = fi("floor"), _p = ni(function(n2, t2) {
return n2 * t2;
}, 1), vp = fi("round"), gp = ni(function(n2, t2) {
return n2 - t2;
}, 0);
return Z2.after = If, Z2.ary = Rf, Z2.assign = zh, Z2.assignIn = Eh, Z2.assignInWith = Sh, Z2.assignWith = Wh, Z2.at = Lh, Z2.before = zf, Z2.bind = ch, Z2.bindAll = np, Z2.bindKey = ah, Z2.castArray = Nf, Z2.chain = Qo, Z2.chunk = uo, Z2.compact = io, Z2.concat = oo, Z2.cond = za, Z2.conforms = Ea, Z2.constant = Sa, Z2.countBy = Xs, Z2.create = Sc, Z2.curry = Ef, Z2.curryRight = Sf, Z2.debounce = Wf, Z2.defaults = Ch, Z2.defaultsDeep = Uh, Z2.defer = lh, Z2.delay = sh, Z2.difference = Us, Z2.differenceBy = Bs, Z2.differenceWith = Ts, Z2.drop = fo, Z2.dropRight = co, Z2.dropRightWhile = ao, Z2.dropWhile = lo, Z2.fill = so, Z2.filter = lf, Z2.flatMap = sf, Z2.flatMapDeep = hf, Z2.flatMapDepth = pf, Z2.flatten = _o, Z2.flattenDeep = vo, Z2.flattenDepth = go, Z2.flip = Lf, Z2.flow = tp, Z2.flowRight = rp, Z2.fromPairs = yo, Z2.functions = $c, Z2.functionsIn = Dc, Z2.groupBy = rh, Z2.initial = mo, Z2.intersection = $s, Z2.intersectionBy = Ds, Z2.intersectionWith = Ms, Z2.invert = Bh, Z2.invertBy = Th, Z2.invokeMap = eh, Z2.iteratee = Ca, Z2.keyBy = uh, Z2.keys = Pc, Z2.keysIn = qc, Z2.map = yf, Z2.mapKeys = Zc, Z2.mapValues = Kc, Z2.matches = Ua, Z2.matchesProperty = Ba, Z2.memoize = Cf, Z2.merge = Dh, Z2.mergeWith = Mh, Z2.method = ep, Z2.methodOf = up, Z2.mixin = Ta, Z2.negate = Uf, Z2.nthArg = Ma, Z2.omit = Fh, Z2.omitBy = Vc, Z2.once = Bf, Z2.orderBy = df, Z2.over = ip, Z2.overArgs = hh, Z2.overEvery = op, Z2.overSome = fp, Z2.partial = ph, Z2.partialRight = _h, Z2.partition = ih, Z2.pick = Nh, Z2.pickBy = Gc, Z2.property = Fa, Z2.propertyOf = Na, Z2.pull = Fs, Z2.pullAll = Oo, Z2.pullAllBy = Io, Z2.pullAllWith = Ro, Z2.pullAt = Ns, Z2.range = cp, Z2.rangeRight = ap, Z2.rearg = vh, Z2.reject = mf, Z2.remove = zo, Z2.rest = Tf, Z2.reverse = Eo, Z2.sampleSize = jf, Z2.set = Jc, Z2.setWith = Yc, Z2.shuffle = Af, Z2.slice = So, Z2.sortBy = oh, Z2.sortedUniq = $o, Z2.sortedUniqBy = Do, Z2.split = da, Z2.spread = $f, Z2.tail = Mo, Z2.take = Fo, Z2.takeRight = No, Z2.takeRightWhile = Po, Z2.takeWhile = qo, Z2.tap = Xo, Z2.throttle = Df, Z2.thru = nf, Z2.toArray = jc, Z2.toPairs = Ph, Z2.toPairsIn = qh, Z2.toPath = Ha, Z2.toPlainObject = Rc, Z2.transform = Qc, Z2.unary = Mf, Z2.union = Ps, Z2.unionBy = qs2, Z2.unionWith = Zs, Z2.uniq = Zo, Z2.uniqBy = Ko, Z2.uniqWith = Vo, Z2.unset = Xc, Z2.unzip = Go, Z2.unzipWith = Ho, Z2.update = na, Z2.updateWith = ta, Z2.values = ra, Z2.valuesIn = ea, Z2.without = Ks, Z2.words = Ra, Z2.wrap = Ff, Z2.xor = Vs, Z2.xorBy = Gs, Z2.xorWith = Hs, Z2.zip = Js, Z2.zipObject = Jo, Z2.zipObjectDeep = Yo, Z2.zipWith = Ys, Z2.entries = Ph, Z2.entriesIn = qh, Z2.extend = Eh, Z2.extendWith = Sh, Ta(Z2, Z2), Z2.add = lp, Z2.attempt = Xh, Z2.camelCase = Zh, Z2.capitalize = fa, Z2.ceil = sp, Z2.clamp = ua, Z2.clone = Pf, Z2.cloneDeep = Zf, Z2.cloneDeepWith = Kf, Z2.cloneWith = qf, Z2.conformsTo = Vf, Z2.deburr = ca, Z2.defaultTo = Wa, Z2.divide = hp, Z2.endsWith = aa, Z2.eq = Gf, Z2.escape = la, Z2.escapeRegExp = sa, Z2.every = af, Z2.find = nh, Z2.findIndex = ho, Z2.findKey = Wc, Z2.findLast = th, Z2.findLastIndex = po, Z2.findLastKey = Lc, Z2.floor = pp, Z2.forEach = _f, Z2.forEachRight = vf, Z2.forIn = Cc, Z2.forInRight = Uc, Z2.forOwn = Bc, Z2.forOwnRight = Tc, Z2.get = Mc, Z2.gt = gh, Z2.gte = yh, Z2.has = Fc, Z2.hasIn = Nc, Z2.head = bo, Z2.identity = La, Z2.includes = gf, Z2.indexOf = wo, Z2.inRange = ia, Z2.invoke = $h, Z2.isArguments = dh, Z2.isArray = bh, Z2.isArrayBuffer = wh, Z2.isArrayLike = Hf, Z2.isArrayLikeObject = Jf, Z2.isBoolean = Yf, Z2.isBuffer = mh, Z2.isDate = xh, Z2.isElement = Qf, Z2.isEmpty = Xf, Z2.isEqual = nc, Z2.isEqualWith = tc, Z2.isError = rc, Z2.isFinite = ec, Z2.isFunction = uc, Z2.isInteger = ic, Z2.isLength = oc, Z2.isMap = jh, Z2.isMatch = ac, Z2.isMatchWith = lc, Z2.isNaN = sc, Z2.isNative = hc, Z2.isNil = _c, Z2.isNull = pc, Z2.isNumber = vc, Z2.isObject = fc, Z2.isObjectLike = cc, Z2.isPlainObject = gc, Z2.isRegExp = Ah, Z2.isSafeInteger = yc, Z2.isSet = kh, Z2.isString = dc, Z2.isSymbol = bc, Z2.isTypedArray = Oh, Z2.isUndefined = wc, Z2.isWeakMap = mc, Z2.isWeakSet = xc, Z2.join = xo, Z2.kebabCase = Kh, Z2.last = jo, Z2.lastIndexOf = Ao, Z2.lowerCase = Vh, Z2.lowerFirst = Gh, Z2.lt = Ih, Z2.lte = Rh, Z2.max = Ya, Z2.maxBy = Qa, Z2.mean = Xa, Z2.meanBy = nl, Z2.min = tl, Z2.minBy = rl, Z2.stubArray = Pa, Z2.stubFalse = qa, Z2.stubObject = Za, Z2.stubString = Ka, Z2.stubTrue = Va, Z2.multiply = _p, Z2.nth = ko, Z2.noConflict = $a, Z2.noop = Da, Z2.now = fh, Z2.pad = ha, Z2.padEnd = pa, Z2.padStart = _a, Z2.parseInt = va, Z2.random = oa, Z2.reduce = bf, Z2.reduceRight = wf, Z2.repeat = ga, Z2.replace = ya, Z2.result = Hc, Z2.round = vp, Z2.runInContext = p2, Z2.sample = xf, Z2.size = kf, Z2.snakeCase = Hh, Z2.some = Of, Z2.sortedIndex = Wo, Z2.sortedIndexBy = Lo, Z2.sortedIndexOf = Co, Z2.sortedLastIndex = Uo, Z2.sortedLastIndexBy = Bo, Z2.sortedLastIndexOf = To, Z2.startCase = Jh, Z2.startsWith = ba, Z2.subtract = gp, Z2.sum = el, Z2.sumBy = ul, Z2.template = wa, Z2.times = Ga, Z2.toFinite = Ac, Z2.toInteger = kc, Z2.toLength = Oc, Z2.toLower = ma, Z2.toNumber = Ic, Z2.toSafeInteger = zc, Z2.toString = Ec, Z2.toUpper = xa, Z2.trim = ja, Z2.trimEnd = Aa, Z2.trimStart = ka, Z2.truncate = Oa, Z2.unescape = Ia, Z2.uniqueId = Ja, Z2.upperCase = Yh, Z2.upperFirst = Qh, Z2.each = _f, Z2.eachRight = vf, Z2.first = bo, Ta(Z2, function() {
var n2 = {};
return ue2(Z2, function(t2, r2) {
bl.call(Z2.prototype, r2) || (n2[r2] = t2);
}), n2;
}(), { chain: false }), Z2.VERSION = nn, r(["bind", "bindKey", "curry", "curryRight", "partial", "partialRight"], function(n2) {
Z2[n2].placeholder = Z2;
}), r(["drop", "take"], function(n2, t2) {
Ct2.prototype[n2] = function(r2) {
r2 = r2 === X ? 1 : Gl(kc(r2), 0);
var e2 = this.__filtered__ && !t2 ? new Ct2(this) : this.clone();
return e2.__filtered__ ? e2.__takeCount__ = Hl(r2, e2.__takeCount__) : e2.__views__.push({ size: Hl(r2, Un), type: n2 + (e2.__dir__ < 0 ? "Right" : "") }), e2;
}, Ct2.prototype[n2 + "Right"] = function(t3) {
return this.reverse()[n2](t3).reverse();
};
}), r(["filter", "map", "takeWhile"], function(n2, t2) {
var r2 = t2 + 1, e2 = r2 == Rn || r2 == En;
Ct2.prototype[n2] = function(n3) {
var t3 = this.clone();
return t3.__iteratees__.push({ iteratee: mi(n3, 3), type: r2 }), t3.__filtered__ = t3.__filtered__ || e2, t3;
};
}), r(["head", "last"], function(n2, t2) {
var r2 = "take" + (t2 ? "Right" : "");
Ct2.prototype[n2] = function() {
return this[r2](1).value()[0];
};
}), r(["initial", "tail"], function(n2, t2) {
var r2 = "drop" + (t2 ? "" : "Right");
Ct2.prototype[n2] = function() {
return this.__filtered__ ? new Ct2(this) : this[r2](1);
};
}), Ct2.prototype.compact = function() {
return this.filter(La);
}, Ct2.prototype.find = function(n2) {
return this.filter(n2).head();
}, Ct2.prototype.findLast = function(n2) {
return this.reverse().find(n2);
}, Ct2.prototype.invokeMap = uu(function(n2, t2) {
return "function" == typeof n2 ? new Ct2(this) : this.map(function(r2) {
return Ie(r2, n2, t2);
});
}), Ct2.prototype.reject = function(n2) {
return this.filter(Uf(mi(n2)));
}, Ct2.prototype.slice = function(n2, t2) {
n2 = kc(n2);
var r2 = this;
return r2.__filtered__ && (n2 > 0 || t2 < 0) ? new Ct2(r2) : (n2 < 0 ? r2 = r2.takeRight(-n2) : n2 && (r2 = r2.drop(n2)), t2 !== X && (t2 = kc(t2), r2 = t2 < 0 ? r2.dropRight(-t2) : r2.take(t2 - n2)), r2);
}, Ct2.prototype.takeRightWhile = function(n2) {
return this.reverse().takeWhile(n2).reverse();
}, Ct2.prototype.toArray = function() {
return this.take(Un);
}, ue2(Ct2.prototype, function(n2, t2) {
var r2 = /^(?:filter|find|map|reject)|While$/.test(t2), e2 = /^(?:head|last)$/.test(t2), u2 = Z2[e2 ? "take" + ("last" == t2 ? "Right" : "") : t2], i2 = e2 || /^find/.test(t2);
u2 && (Z2.prototype[t2] = function() {
var t3 = this.__wrapped__, o2 = e2 ? [1] : arguments, f2 = t3 instanceof Ct2, c2 = o2[0], l2 = f2 || bh(t3), s2 = function(n3) {
var t4 = u2.apply(Z2, a([n3], o2));
return e2 && h2 ? t4[0] : t4;
};
l2 && r2 && "function" == typeof c2 && 1 != c2.length && (f2 = l2 = false);
var h2 = this.__chain__, p3 = !!this.__actions__.length, _2 = i2 && !h2, v2 = f2 && !p3;
if (!i2 && l2) {
t3 = v2 ? t3 : new Ct2(this);
var g2 = n2.apply(t3, o2);
return g2.__actions__.push({ func: nf, args: [s2], thisArg: X }), new Y2(g2, h2);
}
return _2 && v2 ? n2.apply(this, o2) : (g2 = this.thru(s2), _2 ? e2 ? g2.value()[0] : g2.value() : g2);
});
}), r(["pop", "push", "shift", "sort", "splice", "unshift"], function(n2) {
var t2 = _l[n2], r2 = /^(?:push|sort|unshift)$/.test(n2) ? "tap" : "thru", e2 = /^(?:pop|shift)$/.test(n2);
Z2.prototype[n2] = function() {
var n3 = arguments;
if (e2 && !this.__chain__) {
var u2 = this.value();
return t2.apply(bh(u2) ? u2 : [], n3);
}
return this[r2](function(r3) {
return t2.apply(bh(r3) ? r3 : [], n3);
});
};
}), ue2(Ct2.prototype, function(n2, t2) {
var r2 = Z2[t2];
if (r2) {
var e2 = r2.name + "";
bl.call(fs, e2) || (fs[e2] = []), fs[e2].push({ name: t2, func: r2 });
}
}), fs[Qu(X, vn).name] = [{ name: "wrapper", func: X }], Ct2.prototype.clone = $t2, Ct2.prototype.reverse = Yt2, Ct2.prototype.value = Qt2, Z2.prototype.at = Qs, Z2.prototype.chain = tf, Z2.prototype.commit = rf, Z2.prototype.next = ef, Z2.prototype.plant = of, Z2.prototype.reverse = ff, Z2.prototype.toJSON = Z2.prototype.valueOf = Z2.prototype.value = cf, Z2.prototype.first = Z2.prototype.head, Ul && (Z2.prototype[Ul] = uf), Z2;
}, be = de();
"function" == typeof define && "object" == typeof define.amd && define.amd ? (re._ = be, define(function() {
return be;
})) : ue ? ((ue.exports = be)._ = be, ee._ = be) : re._ = be;
}).call(exports);
}
});
// node_modules/lodash/fp.js
var require_fp = __commonJS({
"node_modules/lodash/fp.js"(exports, module) {
var _ = require_lodash_min().runInContext();
module.exports = require_baseConvert()(_, _);
}
});
// node_modules/@strapi/content-type-builder/dist/admin/pages/App/index.mjs
var import_jsx_runtime36 = __toESM(require_jsx_runtime(), 1);
var import_react11 = __toESM(require_react(), 1);
// node_modules/@strapi/content-type-builder/dist/admin/components/ContentTypeBuilderNav/ContentTypeBuilderNav.mjs
var import_jsx_runtime = __toESM(require_jsx_runtime(), 1);
var import_react2 = __toESM(require_react(), 1);
var import_upperFirst = __toESM(require_upperFirst(), 1);
// node_modules/@strapi/content-type-builder/dist/admin/components/ContentTypeBuilderNav/useContentTypeBuilderMenu.mjs
var import_react = __toESM(require_react(), 1);
var import_isEqual = __toESM(require_isEqual(), 1);
var useContentTypeBuilderMenu = () => {
const { components, componentsGroupedByCategory, contentTypes, isInDevelopmentMode, sortedContentTypesList, modifiedData, initialData } = useDataManager();
const { toggleNotification } = useNotification();
const { formatMessage } = useIntl();
const { trackUsage } = useTracking();
const [searchValue, setSearchValue] = (0, import_react.useState)("");
const { onOpenModalCreateSchema, onOpenModalEditCategory } = useFormModalNavigation();
const { locale } = useIntl();
const { startsWith } = useFilter(locale, {
sensitivity: "base"
});
const formatter = useCollator(locale, {
sensitivity: "base"
});
const canOpenModalCreateCTorComponent = !Object.keys(contentTypes).some((ct) => contentTypes[ct].isTemporary === true) && !Object.keys(components).some((component) => components[component].isTemporary === true) && (0, import_isEqual.default)(modifiedData, initialData);
const handleClickOpenModalCreateCollectionType = () => {
if (canOpenModalCreateCTorComponent) {
trackUsage(`willCreateContentType`);
const nextState = {
modalType: "contentType",
kind: "collectionType",
actionType: "create",
forTarget: "contentType"
};
onOpenModalCreateSchema(nextState);
} else {
toggleNotificationCannotCreateSchema();
}
};
const handleClickOpenModalCreateSingleType = () => {
if (canOpenModalCreateCTorComponent) {
trackUsage(`willCreateSingleType`);
const nextState = {
modalType: "contentType",
kind: "singleType",
actionType: "create",
forTarget: "contentType"
};
onOpenModalCreateSchema(nextState);
} else {
toggleNotificationCannotCreateSchema();
}
};
const handleClickOpenModalCreateComponent = () => {
if (canOpenModalCreateCTorComponent) {
trackUsage("willCreateComponent");
const nextState = {
modalType: "component",
kind: null,
actionType: "create",
forTarget: "component"
};
onOpenModalCreateSchema(nextState);
} else {
toggleNotificationCannotCreateSchema();
}
};
const toggleNotificationCannotCreateSchema = () => {
toggleNotification({
type: "info",
message: formatMessage({
id: getTrad("notification.info.creating.notSaved"),
defaultMessage: "Please save your work before creating a new collection type or component"
})
});
};
const componentsData = Object.entries(componentsGroupedByCategory).map(([category, components2]) => ({
name: category,
title: category,
isEditable: isInDevelopmentMode,
// TODO: re-add functionality to edit category name
onClickEdit(e, data2) {
e.stopPropagation();
if (canOpenModalCreateCTorComponent) {
onOpenModalEditCategory(data2.name);
} else {
toggleNotificationCannotCreateSchema();
}
},
links: components2.map((component) => ({
name: component.uid,
to: `/plugins/${pluginId}/component-categories/${category}/${component.uid}`,
title: component.schema.displayName
})).sort((a, b) => formatter.compare(a.title, b.title))
})).sort((a, b) => formatter.compare(a.title, b.title));
const displayedContentTypes = sortedContentTypesList.filter((obj) => obj.visible);
const data = [
{
name: "models",
title: {
id: `${getTrad("menu.section.models.name")}`,
defaultMessage: "Collection Types"
},
customLink: isInDevelopmentMode && {
id: `${getTrad("button.model.create")}`,
defaultMessage: "Create new collection type",
onClick: handleClickOpenModalCreateCollectionType
},
links: displayedContentTypes.filter((contentType) => contentType.kind === "collectionType")
},
{
name: "singleTypes",
title: {
id: `${getTrad("menu.section.single-types.name")}`,
defaultMessage: "Single Types"
},
customLink: isInDevelopmentMode && {
id: `${getTrad("button.single-types.create")}`,
defaultMessage: "Create new single type",
onClick: handleClickOpenModalCreateSingleType
},
links: displayedContentTypes.filter((singleType) => singleType.kind === "singleType")
},
{
name: "components",
title: {
id: `${getTrad("menu.section.components.name")}`,
defaultMessage: "Components"
},
customLink: isInDevelopmentMode && {
id: `${getTrad("button.component.create")}`,
defaultMessage: "Create a new component",
onClick: handleClickOpenModalCreateComponent
},
links: componentsData
}
].map((section) => {
const hasChild = section.links.some((l) => Array.isArray(l.links));
if (hasChild) {
let filteredLinksCount = 0;
return {
...section,
links: section.links.map((link) => {
const filteredLinks2 = link.links.filter((link2) => startsWith(link2.title, searchValue));
if (filteredLinks2.length === 0) {
return null;
}
filteredLinksCount += filteredLinks2.length;
return {
...link,
links: filteredLinks2.sort((a, b) => formatter.compare(a.title, b.title))
};
}).filter(Boolean),
linksCount: filteredLinksCount
};
}
const filteredLinks = section.links.filter((link) => startsWith(link.title, searchValue)).sort((a, b) => formatter.compare(a.title, b.title));
return {
...section,
links: filteredLinks,
linksCount: filteredLinks.length
};
});
return {
menu: data,
search: {
value: searchValue,
onChange: setSearchValue,
clear: () => setSearchValue("")
}
};
};
// node_modules/@strapi/content-type-builder/dist/admin/components/ContentTypeBuilderNav/ContentTypeBuilderNav.mjs
var SubNavLinkCustom = dt(SubNavLink)`
div {
width: inherit;
span:nth-child(2) {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
width: inherit;
}
}
`;
var ContentTypeBuilderNav = () => {
const { menu, search } = useContentTypeBuilderMenu();
const { formatMessage } = useIntl();
const pluginName = formatMessage({
id: getTrad("plugin.name"),
defaultMessage: "Content-Type Builder"
});
return (0, import_jsx_runtime.jsxs)(SubNav, {
"aria-label": pluginName,
children: [
(0, import_jsx_runtime.jsx)(SubNavHeader, {
searchable: true,
value: search.value,
onClear: () => search.clear(),
onChange: (e) => search.onChange(e.target.value),
label: pluginName,
searchLabel: formatMessage({
id: "global.search",
defaultMessage: "Search"
})
}),
(0, import_jsx_runtime.jsx)(SubNavSections, {
children: menu.map((section) => (0, import_jsx_runtime.jsxs)(import_react2.Fragment, {
children: [
(0, import_jsx_runtime.jsx)(SubNavSection, {
label: formatMessage({
id: section.title.id,
defaultMessage: section.title.defaultMessage
}),
collapsable: true,
badgeLabel: section.linksCount.toString(),
children: section.links.map((link) => {
if (link.links) {
return (0, import_jsx_runtime.jsx)(SubNavLinkSection, {
label: (0, import_upperFirst.default)(link.title),
children: link.links.map((subLink) => (0, import_jsx_runtime.jsx)(SubNavLink, {
tag: NavLink,
to: subLink.to,
active: subLink.active,
isSubSectionChild: true,
children: (0, import_upperFirst.default)(formatMessage({
id: subLink.name,
defaultMessage: subLink.title
}))
}, subLink.name))
}, link.name);
}
return (0, import_jsx_runtime.jsx)(SubNavLinkCustom, {
tag: NavLink,
to: link.to,
active: link.active,
width: "100%",
children: (0, import_upperFirst.default)(formatMessage({
id: link.name,
defaultMessage: link.title
}))
}, link.name);
})
}),
section.customLink && (0, import_jsx_runtime.jsx)(Box, {
paddingLeft: 7,
children: (0, import_jsx_runtime.jsx)(TextButton, {
onClick: section.customLink.onClick,
startIcon: (0, import_jsx_runtime.jsx)(ForwardRef$1h, {
width: "0.8rem",
height: "0.8rem"
}),
marginTop: 2,
cursor: "pointer",
children: formatMessage({
id: section.customLink.id,
defaultMessage: section.customLink.defaultMessage
})
})
})
]
}, section.name))
})
]
});
};
// node_modules/@strapi/content-type-builder/dist/admin/components/DataManagerProvider/DataManagerProvider.mjs
var import_jsx_runtime34 = __toESM(require_jsx_runtime(), 1);
var import_react10 = __toESM(require_react(), 1);
var import_get9 = __toESM(require_get(), 1);
var import_groupBy = __toESM(require_groupBy(), 1);
var import_set2 = __toESM(require_set(), 1);
var import_size = __toESM(require_size(), 1);
// node_modules/@strapi/content-type-builder/dist/admin/components/FormModal/FormModal.mjs
var import_jsx_runtime33 = __toESM(require_jsx_runtime(), 1);
var React2 = __toESM(require_react(), 1);
var import_get4 = __toESM(require_get(), 1);
var import_has = __toESM(require_has(), 1);
var import_isEqual3 = __toESM(require_isEqual(), 1);
var import_set = __toESM(require_set(), 1);
var import_toLower = __toESM(require_toLower(), 1);
// node_modules/@strapi/content-type-builder/dist/admin/utils/isAllowedContentTypesForRelations.mjs
var isAllowedContentTypesForRelations = (contentType) => {
return contentType.kind === "collectionType" && (contentType.restrictRelationsTo === null || Array.isArray(contentType.restrictRelationsTo) && contentType.restrictRelationsTo.length > 0);
};
// node_modules/@strapi/content-type-builder/dist/admin/utils/findAttribute.mjs
var findAttribute = (attributes, attributeToFind) => {
return attributes.find(({ name }) => name === attributeToFind);
};
// node_modules/@strapi/content-type-builder/dist/admin/utils/getYupInnerErrors.mjs
var extractValuesFromYupError = (errorType, errorParams) => {
if (!errorType || !errorParams) {
return {};
}
return {
[errorType]: errorParams[errorType]
};
};
var getYupInnerErrors = (error) => ((error == null ? void 0 : error.inner) || []).reduce((acc, currentError) => {
if (currentError.path) {
acc[currentError.path.split("[").join(".").split("]").join("")] = {
id: currentError.message,
defaultMessage: currentError.message,
values: extractValuesFromYupError(currentError == null ? void 0 : currentError.type, currentError == null ? void 0 : currentError.params)
};
}
return acc;
}, {});
// node_modules/@strapi/content-type-builder/dist/admin/components/AllowedTypesSelect.mjs
var import_jsx_runtime2 = __toESM(require_jsx_runtime(), 1);
var import_upperFirst2 = __toESM(require_upperFirst(), 1);
var options = [
{
label: "All",
children: [
{
label: "images (JPEG, PNG, GIF, SVG, TIFF, ICO, DVU)",
value: "images"
},
{
label: "videos (MPEG, MP4, Quicktime, WMV, AVI, FLV)",
value: "videos"
},
{
label: "audios (MP3, WAV, OGG)",
value: "audios"
},
{
label: "files (CSV, ZIP, PDF, Excel, JSON, ...)",
value: "files"
}
]
}
];
var AllowedTypesSelect = ({ intlLabel, name, onChange, value = null }) => {
const { formatMessage } = useIntl();
const displayedValue = value === null || (value == null ? void 0 : value.length) === 0 ? formatMessage({
id: "global.none",
defaultMessage: "None"
}) : [
...value
].sort().map((v) => (0, import_upperFirst2.default)(v)).join(", ");
const label = intlLabel.id ? formatMessage({
id: intlLabel.id,
defaultMessage: intlLabel.defaultMessage
}) : name;
return (0, import_jsx_runtime2.jsxs)(Field.Root, {
name,
children: [
(0, import_jsx_runtime2.jsx)(Field.Label, {
children: label
}),
(0, import_jsx_runtime2.jsx)(MultiSelectNested, {
customizeContent: () => displayedValue,
onChange: (values) => {
if (values.length > 0) {
onChange({
target: {
name,
value: values,
type: "allowed-types-select"
}
});
} else {
onChange({
target: {
name,
value: null,
type: "allowed-types-select"
}
});
}
},
options,
value: value || []
})
]
});
};
// node_modules/@strapi/content-type-builder/dist/admin/components/AttributeOptions/AttributeOptions.mjs
var import_jsx_runtime8 = __toESM(require_jsx_runtime(), 1);
// node_modules/@strapi/content-type-builder/dist/admin/components/AttributeOptions/AttributeList.mjs
var import_jsx_runtime4 = __toESM(require_jsx_runtime(), 1);
// node_modules/@strapi/content-type-builder/dist/admin/components/AttributeOptions/AttributeOption.mjs
var import_jsx_runtime3 = __toESM(require_jsx_runtime(), 1);
// node_modules/@strapi/content-type-builder/dist/admin/components/AttributeOptions/OptionBoxWrapper.mjs
var OptionBoxWrapper = dt(Box)`
width: 100%;
height: 100%;
border: 1px solid ${({ theme }) => theme.colors.neutral200};
text-align: left;
&:hover {
cursor: pointer;
background: ${({ theme }) => theme.colors.primary100};
border: 1px solid ${({ theme }) => theme.colors.primary200};
}
`;
// node_modules/@strapi/content-type-builder/dist/admin/components/AttributeOptions/AttributeOption.mjs
var newAttributes = [];
var NewBadge = () => (0, import_jsx_runtime3.jsx)(Flex, {
grow: 1,
justifyContent: "flex-end",
children: (0, import_jsx_runtime3.jsxs)(Flex, {
gap: 1,
hasRadius: true,
background: "alternative100",
padding: `0.2rem 0.4rem`,
children: [
(0, import_jsx_runtime3.jsx)(ForwardRef$J, {
width: `1rem`,
height: `1rem`,
fill: "alternative600"
}),
(0, import_jsx_runtime3.jsx)(Typography, {
textColor: "alternative600",
variant: "sigma",
children: "New"
})
]
})
});
var AttributeOption = ({ type = "text" }) => {
const { formatMessage } = useIntl();
const { onClickSelectField } = useFormModalNavigation();
const handleClick = () => {
const step = type === "component" ? "1" : null;
onClickSelectField({
attributeType: type,
step
});
};
return (0, import_jsx_runtime3.jsx)(OptionBoxWrapper, {
padding: 4,
tag: "button",
hasRadius: true,
type: "button",
onClick: handleClick,
children: (0, import_jsx_runtime3.jsxs)(Flex, {
children: [
(0, import_jsx_runtime3.jsx)(AttributeIcon, {
type
}),
(0, import_jsx_runtime3.jsxs)(Box, {
paddingLeft: 4,
width: "100%",
children: [
(0, import_jsx_runtime3.jsxs)(Flex, {
justifyContent: "space-between",
children: [
(0, import_jsx_runtime3.jsx)(Typography, {
fontWeight: "bold",
textColor: "neutral800",
children: formatMessage({
id: getTrad(`attribute.${type}`),
defaultMessage: type
})
}),
newAttributes.includes(type) && (0, import_jsx_runtime3.jsx)(NewBadge, {})
]
}),
(0, import_jsx_runtime3.jsx)(Flex, {
children: (0, import_jsx_runtime3.jsx)(Typography, {
variant: "pi",
textColor: "neutral600",
children: formatMessage({
id: getTrad(`attribute.${type}.description`),
defaultMessage: "A type for modeling data"
})
})
})
]
})
]
})
});
};
// node_modules/@strapi/content-type-builder/dist/admin/components/AttributeOptions/AttributeList.mjs
var AttributeList = ({ attributes }) => (0, import_jsx_runtime4.jsx)(KeyboardNavigable, {
tagName: "button",
children: (0, import_jsx_runtime4.jsx)(Flex, {
direction: "column",
alignItems: "stretch",
gap: 8,
children: attributes.map((attributeRow, index) => {
return (
// eslint-disable-next-line react/no-array-index-key
(0, import_jsx_runtime4.jsx)(Grid.Root, {
gap: 3,
children: attributeRow.map((attribute) => (0, import_jsx_runtime4.jsx)(Grid.Item, {
col: 6,
direction: "column",
alignItems: "stretch",
children: (0, import_jsx_runtime4.jsx)(AttributeOption, {
type: attribute
})
}, attribute))
}, index)
);
})
})
});
// node_modules/@strapi/content-type-builder/dist/admin/components/AttributeOptions/CustomFieldsList.mjs
var import_jsx_runtime7 = __toESM(require_jsx_runtime(), 1);
// node_modules/@strapi/content-type-builder/dist/admin/components/AttributeOptions/CustomFieldOption.mjs
var import_jsx_runtime5 = __toESM(require_jsx_runtime(), 1);
var import_react3 = __toESM(require_react(), 1);
var CustomFieldOption = ({ customFieldUid, customField }) => {
const { type, intlLabel, intlDescription } = customField;
const { formatMessage } = useIntl();
const { onClickSelectCustomField } = useFormModalNavigation();
const handleClick = () => {
onClickSelectCustomField({
attributeType: type,
customFieldUid
});
};
return (0, import_jsx_runtime5.jsx)(OptionBoxWrapper, {
padding: 4,
tag: "button",
hasRadius: true,
type: "button",
onClick: handleClick,
children: (0, import_jsx_runtime5.jsxs)(Flex, {
children: [
(0, import_jsx_runtime5.jsx)(AttributeIcon, {
type,
customField: customFieldUid
}),
(0, import_jsx_runtime5.jsxs)(Box, {
paddingLeft: 4,
children: [
(0, import_jsx_runtime5.jsx)(Flex, {
children: (0, import_jsx_runtime5.jsx)(Typography, {
fontWeight: "bold",
textColor: "neutral800",
children: formatMessage(intlLabel)
})
}),
(0, import_jsx_runtime5.jsx)(Flex, {
children: (0, import_jsx_runtime5.jsx)(Typography, {
variant: "pi",
textColor: "neutral600",
children: formatMessage(intlDescription)
})
})
]
})
]
})
});
};
// node_modules/@strapi/content-type-builder/dist/admin/components/AttributeOptions/EmptyAttributes.mjs
var import_jsx_runtime6 = __toESM(require_jsx_runtime(), 1);
var qs = __toESM(require_lib(), 1);
var EmptyCard = dt(Box)`
background: ${({ theme }) => `linear-gradient(180deg, rgba(234, 234, 239, 0) 0%, ${theme.colors.neutral150} 100%)`};
opacity: 0.33;
`;
var EmptyCardGrid = () => {
return (0, import_jsx_runtime6.jsx)(Flex, {
wrap: "wrap",
gap: 4,
children: [
...Array(4)
].map((_, idx) => {
return (0, import_jsx_runtime6.jsx)(EmptyCard, {
height: "138px",
width: "375px",
hasRadius: true
}, `empty-card-${idx}`);
})
});
};
var EmptyAttributes = () => {
const { formatMessage } = useIntl();
return (0, import_jsx_runtime6.jsxs)(Box, {
position: "relative",
children: [
(0, import_jsx_runtime6.jsx)(EmptyCardGrid, {}),
(0, import_jsx_runtime6.jsx)(Box, {
position: "absolute",
top: 6,
width: "100%",
children: (0, import_jsx_runtime6.jsxs)(Flex, {
alignItems: "center",
justifyContent: "center",
direction: "column",
children: [
(0, import_jsx_runtime6.jsx)(ForwardRef$J2, {
width: "160px",
height: "88px"
}),
(0, import_jsx_runtime6.jsx)(Box, {
paddingTop: 6,
paddingBottom: 4,
children: (0, import_jsx_runtime6.jsxs)(Box, {
textAlign: "center",
children: [
(0, import_jsx_runtime6.jsx)(Typography, {
variant: "delta",
tag: "p",
textColor: "neutral600",
children: formatMessage({
id: getTrad("modalForm.empty.heading"),
defaultMessage: "Nothing in here yet."
})
}),
(0, import_jsx_runtime6.jsx)(Box, {
paddingTop: 4,
children: (0, import_jsx_runtime6.jsx)(Typography, {
variant: "delta",
tag: "p",
textColor: "neutral600",
children: formatMessage({
id: getTrad("modalForm.empty.sub-heading"),
defaultMessage: "Find what you are looking for through a wide range of extensions."
})
})
})
]
})
}),
(0, import_jsx_runtime6.jsx)(LinkButton, {
tag: Link,
to: `/marketplace?${qs.stringify({
categories: [
"Custom fields"
]
})}`,
variant: "secondary",
startIcon: (0, import_jsx_runtime6.jsx)(ForwardRef$1h, {}),
children: formatMessage({
id: getTrad("modalForm.empty.button"),
defaultMessage: "Add custom fields"
})
})
]
})
})
]
});
};
// node_modules/@strapi/content-type-builder/dist/admin/components/AttributeOptions/CustomFieldsList.mjs
var CustomFieldsList = () => {
const { formatMessage } = useIntl();
const getAllCustomFields = useStrapiApp("CustomFieldsList", (state) => state.customFields.getAll);
const registeredCustomFields = Object.entries(getAllCustomFields());
if (!registeredCustomFields.length) {
return (0, import_jsx_runtime7.jsx)(EmptyAttributes, {});
}
const sortedCustomFields = registeredCustomFields.sort((a, b) => a[1].name > b[1].name ? 1 : -1);
return (0, import_jsx_runtime7.jsx)(KeyboardNavigable, {
tagName: "button",
children: (0, import_jsx_runtime7.jsxs)(Flex, {
direction: "column",
alignItems: "stretch",
gap: 3,
children: [
(0, import_jsx_runtime7.jsx)(Grid.Root, {
gap: 3,
children: sortedCustomFields.map(([uid, customField]) => (0, import_jsx_runtime7.jsx)(Grid.Item, {
col: 6,
direction: "column",
alignItems: "stretch",
children: (0, import_jsx_runtime7.jsx)(CustomFieldOption, {
customFieldUid: uid,
customField
}, uid)
}, uid))
}),
(0, import_jsx_runtime7.jsx)(Link2, {
href: "https://docs.strapi.io/developer-docs/latest/development/custom-fields.html",
isExternal: true,
children: formatMessage({
id: getTrad("modalForm.tabs.custom.howToLink"),
defaultMessage: "How to add custom fields"
})
})
]
})
});
};
// node_modules/@strapi/content-type-builder/dist/admin/components/AttributeOptions/AttributeOptions.mjs
var AttributeOptions = ({ attributes, forTarget, kind }) => {
const { formatMessage } = useIntl();
const defaultTabId = getTrad("modalForm.tabs.default");
const customTabId = getTrad("modalForm.tabs.custom");
const titleIdSuffix = forTarget.includes("component") ? "component" : kind;
const titleId = getTrad(`modalForm.sub-header.chooseAttribute.${titleIdSuffix}`);
return (0, import_jsx_runtime8.jsx)(Modal.Body, {
children: (0, import_jsx_runtime8.jsxs)(Tabs.Root, {
variant: "simple",
defaultValue: "default",
children: [
(0, import_jsx_runtime8.jsxs)(Flex, {
justifyContent: "space-between",
children: [
(0, import_jsx_runtime8.jsx)(Typography, {
variant: "beta",
tag: "h2",
children: formatMessage({
id: titleId,
defaultMessage: "Select a field"
})
}),
(0, import_jsx_runtime8.jsxs)(Tabs.List, {
children: [
(0, import_jsx_runtime8.jsx)(Tabs.Trigger, {
value: "default",
children: formatMessage({
id: defaultTabId,
defaultMessage: "Default"
})
}),
(0, import_jsx_runtime8.jsx)(Tabs.Trigger, {
value: "custom",
children: formatMessage({
id: customTabId,
defaultMessage: "Custom"
})
})
]
})
]
}),
(0, import_jsx_runtime8.jsx)(Divider, {
marginBottom: 6
}),
(0, import_jsx_runtime8.jsx)(Tabs.Content, {
value: "default",
children: (0, import_jsx_runtime8.jsx)(AttributeList, {
attributes
})
}),
(0, import_jsx_runtime8.jsx)(Tabs.Content, {
value: "custom",
children: (0, import_jsx_runtime8.jsx)(CustomFieldsList, {})
})
]
})
});
};
// node_modules/@strapi/content-type-builder/dist/admin/components/BooleanDefaultValueSelect.mjs
var import_jsx_runtime9 = __toESM(require_jsx_runtime(), 1);
var BooleanDefaultValueSelect = ({ intlLabel, name, options: options2, onChange, value = null }) => {
const { formatMessage } = useIntl();
const label = intlLabel.id ? formatMessage({
id: intlLabel.id,
defaultMessage: intlLabel.defaultMessage
}, {
...intlLabel.values
}) : name;
const handleChange = (value2) => {
let nextValue = "";
if (value2 === "true") {
nextValue = true;
}
if (value2 === "false") {
nextValue = false;
}
onChange({
target: {
name,
value: nextValue,
type: "select-default-boolean"
}
});
};
return (0, import_jsx_runtime9.jsxs)(Field.Root, {
name,
children: [
(0, import_jsx_runtime9.jsx)(Field.Label, {
children: label
}),
(0, import_jsx_runtime9.jsx)(SingleSelect, {
onChange: handleChange,
value: (value === null ? "" : value).toString(),
children: options2.map(({ metadatas: { intlLabel: intlLabel2, disabled, hidden }, key, value: value2 }) => {
return (0, import_jsx_runtime9.jsx)(SingleSelectOption, {
value: value2,
disabled,
hidden,
children: intlLabel2.defaultMessage
}, key);
})
})
]
});
};
// node_modules/@strapi/content-type-builder/dist/admin/components/BooleanRadioGroup.mjs
var import_jsx_runtime11 = __toESM(require_jsx_runtime(), 1);
var import_react4 = __toESM(require_react(), 1);
// node_modules/@strapi/content-type-builder/dist/admin/components/CustomRadioGroup/CustomRadioGroup.mjs
var import_jsx_runtime10 = __toESM(require_jsx_runtime(), 1);
// node_modules/@strapi/content-type-builder/dist/admin/components/CustomRadioGroup/Styles.mjs
var Wrapper = dt(Flex)`
position: relative;
align-items: stretch;
label {
border-radius: 4px;
max-width: 50%;
cursor: pointer;
user-select: none;
flex: 1;
border-radius: 4px;
border: 1px solid ${({ theme }) => theme.colors.neutral200};
${inputFocusStyle()}
}
input {
position: absolute;
opacity: 0;
}
.option {
height: 100%;
border-radius: 4px;
will-change: transform, opacity;
background: ${({ theme }) => theme.colors.neutral0};
.checkmark {
position: relative;
display: block;
will-change: transform;
background: ${({ theme }) => theme.colors.neutral0};
width: ${({ theme }) => theme.spaces[5]};
height: ${({ theme }) => theme.spaces[5]};
border: solid 1px ${({ theme }) => theme.colors.neutral300};
border-radius: 50%;
&:before,
&:after {
content: '';
display: block;
border-radius: 50%;
width: ${({ theme }) => theme.spaces[3]};
height: ${({ theme }) => theme.spaces[3]};
position: absolute;
top: 3px;
left: 3px;
}
&:after {
transform: scale(0);
transition: inherit;
will-change: transform;
}
}
}
.container input:checked ~ div {
background: ${({ theme }) => theme.colors.primary100};
color: ${({ theme }) => theme.colors.primary600};
.checkmark {
border: solid 1px ${({ theme }) => theme.colors.primary600};
&::after {
background: ${({ theme }) => theme.colors.primary600};
transform: scale(1);
}
}
}
`;
// node_modules/@strapi/content-type-builder/dist/admin/components/CustomRadioGroup/CustomRadioGroup.mjs
var CustomRadioGroup = ({ intlLabel, name, onChange, radios = [], value }) => {
const { formatMessage } = useIntl();
return (0, import_jsx_runtime10.jsxs)(Flex, {
direction: "column",
alignItems: "stretch",
gap: 2,
children: [
(0, import_jsx_runtime10.jsx)(Typography, {
variant: "pi",
fontWeight: "bold",
textColor: "neutral800",
htmlFor: name,
tag: "label",
children: formatMessage(intlLabel)
}),
(0, import_jsx_runtime10.jsx)(Wrapper, {
gap: 4,
alignItems: "stretch",
children: radios.map((radio) => {
return (0, import_jsx_runtime10.jsxs)("label", {
htmlFor: radio.value.toString(),
className: "container",
children: [
(0, import_jsx_runtime10.jsx)("input", {
id: radio.value.toString(),
name,
className: "option-input",
checked: radio.value === value,
value: radio.value,
onChange,
type: "radio"
}, radio.value),
(0, import_jsx_runtime10.jsx)(Box, {
className: "option",
padding: 4,
children: (0, import_jsx_runtime10.jsxs)(Flex, {
children: [
(0, import_jsx_runtime10.jsx)(Box, {
paddingRight: 4,
children: (0, import_jsx_runtime10.jsx)("span", {
className: "checkmark"
})
}),
(0, import_jsx_runtime10.jsxs)(Flex, {
direction: "column",
alignItems: "stretch",
gap: 2,
children: [
(0, import_jsx_runtime10.jsx)(Typography, {
fontWeight: "bold",
children: formatMessage(radio.title)
}),
(0, import_jsx_runtime10.jsx)(Typography, {
variant: "pi",
textColor: "neutral600",
children: formatMessage(radio.description)
})
]
})
]
})
})
]
}, radio.value);
})
})
]
});
};
// node_modules/@strapi/content-type-builder/dist/admin/components/BooleanRadioGroup.mjs
var BooleanRadioGroup = ({ onChange, name, intlLabel, ...rest }) => {
const handleChange = (e) => {
const checked = e.target.value !== "false";
onChange({
target: {
name,
value: checked,
type: "boolean-radio-group"
}
});
};
return (0, import_jsx_runtime11.jsx)(CustomRadioGroup, {
...rest,
name,
onChange: handleChange,
intlLabel
});
};
// node_modules/@strapi/content-type-builder/dist/admin/components/CheckboxWithNumberField.mjs
var import_jsx_runtime12 = __toESM(require_jsx_runtime(), 1);
var CheckboxWithNumberField = ({ error, intlLabel, modifiedData, name, onChange, value = null }) => {
const { formatMessage } = useIntl();
const label = intlLabel.id ? formatMessage({
id: intlLabel.id,
defaultMessage: intlLabel.defaultMessage
}, {
...intlLabel.values
}) : name;
const type = modifiedData.type === "biginteger" ? "text" : "number";
const disabled = !modifiedData.type;
const errorMessage = error ? formatMessage({
id: error,
defaultMessage: error
}) : "";
return (0, import_jsx_runtime12.jsxs)(Flex, {
direction: "column",
alignItems: "stretch",
gap: 2,
children: [
(0, import_jsx_runtime12.jsx)(CheckboxImpl, {
id: name,
name,
onCheckedChange: (value2) => {
const initValue = type === "text" ? "0" : 0;
const nextValue = value2 ? initValue : null;
onChange({
target: {
name,
value: nextValue
}
});
},
checked: value !== null,
children: label
}),
value !== null && (0, import_jsx_runtime12.jsx)(Box, {
paddingLeft: 6,
style: {
maxWidth: "200px"
},
children: type === "text" ? (0, import_jsx_runtime12.jsxs)(Field.Root, {
error: errorMessage,
name,
children: [
(0, import_jsx_runtime12.jsx)(TextInput, {
"aria-label": label,
disabled,
onChange,
value: value === null ? "" : value
}),
(0, import_jsx_runtime12.jsx)(Field.Error, {})
]
}) : (0, import_jsx_runtime12.jsxs)(Field.Root, {
error: errorMessage,
name,
children: [
(0, import_jsx_runtime12.jsx)(NumberInput, {
"aria-label": label,
disabled,
onValueChange: (value2) => {
onChange({
target: {
name,
value: value2 ?? 0,
type
}
});
},
value: value || 0
}),
(0, import_jsx_runtime12.jsx)(Field.Error, {})
]
})
})
]
});
};
// node_modules/@strapi/content-type-builder/dist/admin/components/ContentTypeRadioGroup.mjs
var import_jsx_runtime13 = __toESM(require_jsx_runtime(), 1);
var ContentTypeRadioGroup = ({ onChange, ...rest }) => {
const { formatMessage } = useIntl();
const { toggleNotification } = useNotification();
const handleChange = (e) => {
toggleNotification({
type: "info",
message: formatMessage({
id: getTrad("contentType.kind.change.warning"),
defaultMessage: "You just changed the kind of a content type: API will be reset (routes, controllers, and services will be overwritten)."
})
});
onChange(e);
};
return (0, import_jsx_runtime13.jsx)(CustomRadioGroup, {
...rest,
onChange: handleChange
});
};
// node_modules/@strapi/content-type-builder/dist/admin/components/DraftAndPublishToggle.mjs
var import_jsx_runtime14 = __toESM(require_jsx_runtime(), 1);
var import_react5 = __toESM(require_react(), 1);
var DraftAndPublishToggle = ({ description, disabled = false, intlLabel, isCreating, name, onChange, value = false }) => {
const { formatMessage } = useIntl();
const [showWarning, setShowWarning] = (0, import_react5.useState)(false);
const label = intlLabel.id ? formatMessage({
id: intlLabel.id,
defaultMessage: intlLabel.defaultMessage
}, {
...intlLabel.values
}) : name;
const hint = description ? formatMessage({
id: description.id,
defaultMessage: description.defaultMessage
}, {
...description.values
}) : "";
const handleConfirm = () => {
onChange({
target: {
name,
value: false
}
});
setShowWarning(false);
};
const handleChange = (checked) => {
if (!checked && !isCreating) {
setShowWarning(true);
return;
}
onChange({
target: {
name,
value: !!checked
}
});
};
return (0, import_jsx_runtime14.jsxs)(import_jsx_runtime14.Fragment, {
children: [
(0, import_jsx_runtime14.jsxs)(Field.Root, {
hint,
name,
children: [
(0, import_jsx_runtime14.jsx)(CheckboxImpl, {
checked: value,
disabled,
onCheckedChange: handleChange,
children: label
}),
(0, import_jsx_runtime14.jsx)(Field.Hint, {})
]
}),
(0, import_jsx_runtime14.jsx)(Dialog.Root, {
open: showWarning,
onOpenChange: (isOpen) => setShowWarning(isOpen),
children: (0, import_jsx_runtime14.jsx)(ConfirmDialog, {
endAction: (0, import_jsx_runtime14.jsx)(Button, {
onClick: handleConfirm,
variant: "danger",
width: "100%",
justifyContent: "center",
children: formatMessage({
id: getTrad("popUpWarning.draft-publish.button.confirm"),
defaultMessage: "Yes, disable"
})
}),
children: formatMessage({
id: getTrad("popUpWarning.draft-publish.message"),
defaultMessage: "If you disable the draft & publish, your drafts will be deleted."
})
})
})
]
});
};
// node_modules/@strapi/content-type-builder/dist/admin/components/FormModalEndActions.mjs
var import_jsx_runtime15 = __toESM(require_jsx_runtime(), 1);
var FormModalEndActions = ({ categoryName, deleteCategory, deleteComponent, deleteContentType, isAttributeModal, isCustomFieldModal, isComponentAttribute, isComponentToDzModal, isContentTypeModal, isCreatingComponent, isCreatingComponentAttribute, isCreatingComponentInDz, isCreatingComponentWhileAddingAField, isCreatingContentType, isCreatingDz, isComponentModal, isDzAttribute, isEditingAttribute, isEditingCategory, isInFirstComponentStep, onSubmitAddComponentAttribute, onSubmitAddComponentToDz, onSubmitCreateContentType, onSubmitCreateComponent, onSubmitCreateDz, onSubmitEditAttribute, onSubmitEditCategory, onSubmitEditComponent, onSubmitEditContentType, onSubmitEditCustomFieldAttribute, onSubmitEditDz, onClickFinish }) => {
const { formatMessage } = useIntl();
if (isComponentToDzModal) {
if (isCreatingComponentInDz) {
return (0, import_jsx_runtime15.jsx)(Button, {
variant: "secondary",
type: "submit",
onClick: (e) => {
e.preventDefault();
onSubmitAddComponentToDz(e, true);
},
startIcon: (0, import_jsx_runtime15.jsx)(ForwardRef$1h, {}),
children: formatMessage({
id: getTrad("form.button.add-first-field-to-created-component"),
defaultMessage: "Add first field to the component"
})
});
}
return (0, import_jsx_runtime15.jsx)(Button, {
variant: "default",
type: "submit",
onClick: (e) => {
e.preventDefault();
onSubmitAddComponentToDz(e, false);
},
children: formatMessage({
id: "global.finish",
defaultMessage: "Finish"
})
});
}
if (isAttributeModal && isDzAttribute && !isCreatingDz) {
return (0, import_jsx_runtime15.jsx)(Button, {
variant: "default",
type: "submit",
onClick: (e) => {
e.preventDefault();
onClickFinish();
onSubmitEditDz(e, false);
},
children: formatMessage({
id: "global.finish",
defaultMessage: "Finish"
})
});
}
if (isAttributeModal && isDzAttribute && isCreatingDz) {
return (0, import_jsx_runtime15.jsx)(import_jsx_runtime15.Fragment, {
children: (0, import_jsx_runtime15.jsx)(Button, {
variant: "secondary",
type: "submit",
onClick: (e) => {
e.preventDefault();
onSubmitCreateDz(e, true);
},
startIcon: (0, import_jsx_runtime15.jsx)(ForwardRef$1h, {}),
children: formatMessage({
id: getTrad("form.button.add-components-to-dynamiczone"),
defaultMessage: "Add components to the zone"
})
})
});
}
if (isAttributeModal && isComponentAttribute) {
if (isInFirstComponentStep) {
return (0, import_jsx_runtime15.jsx)(Button, {
variant: "secondary",
type: "submit",
onClick: (e) => {
e.preventDefault();
onSubmitAddComponentAttribute(e, true);
},
children: isCreatingComponentAttribute ? formatMessage({
id: getTrad("form.button.configure-component"),
defaultMessage: "Configure the component"
}) : formatMessage({
id: getTrad("form.button.select-component"),
defaultMessage: "Configure the component"
})
});
}
return (0, import_jsx_runtime15.jsxs)(Flex, {
gap: 2,
children: [
(0, import_jsx_runtime15.jsx)(Button, {
variant: "secondary",
type: "submit",
onClick: (e) => {
e.preventDefault();
onSubmitAddComponentAttribute(e, true);
},
startIcon: (0, import_jsx_runtime15.jsx)(ForwardRef$1h, {}),
children: isCreatingComponentWhileAddingAField ? formatMessage({
id: getTrad("form.button.add-first-field-to-created-component"),
defaultMessage: "Add first field to the component"
}) : formatMessage({
id: getTrad("form.button.add-field"),
defaultMessage: "Add another field"
})
}),
(0, import_jsx_runtime15.jsx)(Button, {
variant: "default",
type: "button",
onClick: (e) => {
e.preventDefault();
onClickFinish();
onSubmitAddComponentAttribute(e, false);
},
children: formatMessage({
id: "global.finish",
defaultMessage: "Finish"
})
})
]
});
}
if (isAttributeModal && !isComponentAttribute && !isDzAttribute) {
return (0, import_jsx_runtime15.jsxs)(Flex, {
gap: 2,
children: [
(0, import_jsx_runtime15.jsx)(Button, {
type: isEditingAttribute ? "button" : "submit",
variant: "secondary",
onClick: (e) => {
e.preventDefault();
onSubmitEditAttribute(e, true);
},
startIcon: (0, import_jsx_runtime15.jsx)(ForwardRef$1h, {}),
children: formatMessage({
id: getTrad("form.button.add-field"),
defaultMessage: "Add another field"
})
}),
(0, import_jsx_runtime15.jsx)(Button, {
type: isEditingAttribute ? "submit" : "button",
variant: "default",
onClick: (e) => {
e.preventDefault();
onClickFinish();
onSubmitEditAttribute(e, false);
},
children: formatMessage({
id: "global.finish",
defaultMessage: "Finish"
})
})
]
});
}
if (isContentTypeModal) {
return (0, import_jsx_runtime15.jsxs)(Flex, {
gap: 2,
children: [
!isCreatingContentType && (0, import_jsx_runtime15.jsxs)(import_jsx_runtime15.Fragment, {
children: [
(0, import_jsx_runtime15.jsx)(Button, {
type: "button",
variant: "danger",
onClick: (e) => {
e.preventDefault();
deleteContentType();
},
children: formatMessage({
id: "global.delete",
defaultMessage: "Delete"
})
}),
(0, import_jsx_runtime15.jsx)(Button, {
type: "submit",
variant: "default",
onClick: (e) => {
e.preventDefault();
onSubmitEditContentType(e, false);
},
children: formatMessage({
id: "global.finish",
defaultMessage: "Finish"
})
})
]
}),
isCreatingContentType && (0, import_jsx_runtime15.jsx)(Button, {
type: "submit",
variant: "secondary",
onClick: (e) => {
e.preventDefault();
onSubmitCreateContentType(e, true);
},
children: formatMessage({
id: "global.continue",
defaultMessage: "Continue"
})
})
]
});
}
if (isComponentModal) {
return (0, import_jsx_runtime15.jsxs)(Flex, {
gap: 2,
children: [
!isCreatingComponent && (0, import_jsx_runtime15.jsxs)(import_jsx_runtime15.Fragment, {
children: [
(0, import_jsx_runtime15.jsx)(Button, {
type: "button",
variant: "danger",
onClick: (e) => {
e.preventDefault();
deleteComponent();
},
children: formatMessage({
id: "global.delete",
defaultMessage: "Delete"
})
}),
(0, import_jsx_runtime15.jsx)(Button, {
type: "submit",
variant: "default",
onClick: (e) => {
e.preventDefault();
onSubmitEditComponent(e, false);
},
children: formatMessage({
id: "global.finish",
defaultMessage: "Finish"
})
})
]
}),
isCreatingComponent && (0, import_jsx_runtime15.jsx)(Button, {
type: "submit",
variant: "secondary",
onClick: (e) => {
e.preventDefault();
onSubmitCreateComponent(e, true);
},
children: formatMessage({
id: "global.continue",
defaultMessage: "Continue"
})
})
]
});
}
if (isEditingCategory) {
return (0, import_jsx_runtime15.jsxs)(Flex, {
gap: 2,
children: [
(0, import_jsx_runtime15.jsx)(Button, {
type: "button",
variant: "danger",
onClick: (e) => {
e.preventDefault();
if (categoryName) {
deleteCategory(categoryName);
}
},
children: formatMessage({
id: "global.delete",
defaultMessage: "Delete"
})
}),
(0, import_jsx_runtime15.jsx)(Button, {
type: "submit",
variant: "default",
onClick: (e) => {
e.preventDefault();
onSubmitEditCategory(e);
},
children: formatMessage({
id: "global.finish",
defaultMessage: "finish"
})
})
]
});
}
if (isCustomFieldModal) {
return (0, import_jsx_runtime15.jsxs)(Flex, {
gap: 2,
children: [
(0, import_jsx_runtime15.jsx)(Button, {
type: isEditingAttribute ? "button" : "submit",
variant: "secondary",
onClick: (e) => {
e.preventDefault();
onSubmitEditCustomFieldAttribute(e, true);
},
startIcon: (0, import_jsx_runtime15.jsx)(ForwardRef$1h, {}),
children: formatMessage({
id: getTrad("form.button.add-field"),
defaultMessage: "Add another field"
})
}),
(0, import_jsx_runtime15.jsx)(Button, {
type: isEditingAttribute ? "submit" : "button",
variant: "default",
onClick: (e) => {
e.preventDefault();
onClickFinish();
onSubmitEditCustomFieldAttribute(e, false);
},
children: formatMessage({
id: "global.finish",
defaultMessage: "Finish"
})
})
]
});
}
return null;
};
// node_modules/@strapi/content-type-builder/dist/admin/components/FormModalHeader.mjs
var import_jsx_runtime16 = __toESM(require_jsx_runtime(), 1);
var import_upperFirst3 = __toESM(require_upperFirst(), 1);
var FormModalHeader = ({ actionType = null, attributeName, attributeType, categoryName, contentTypeKind, dynamicZoneTarget, forTarget, modalType = null, targetUid, customFieldUid = null, showBackLink = false }) => {
var _a;
const { formatMessage } = useIntl();
const { modifiedData } = useDataManager();
const { onOpenModalAddField } = useFormModalNavigation();
let icon = "component";
let headers = [];
const schema = ((_a = modifiedData == null ? void 0 : modifiedData[forTarget]) == null ? void 0 : _a[targetUid]) || (modifiedData == null ? void 0 : modifiedData[forTarget]) || null;
const displayName = schema == null ? void 0 : schema.schema.displayName;
if (modalType === "contentType") {
icon = contentTypeKind;
}
if ([
"component",
"editCategory"
].includes(modalType || "")) {
icon = "component";
}
const isCreatingMainSchema = [
"component",
"contentType"
].includes(modalType || "");
if (isCreatingMainSchema) {
let headerId = getTrad(`modalForm.component.header-${actionType}`);
if (modalType === "contentType") {
headerId = getTrad(`modalForm.${contentTypeKind}.header-create`);
}
if (actionType === "edit") {
headerId = getTrad(`modalForm.header-edit`);
}
return (0, import_jsx_runtime16.jsx)(Modal.Header, {
children: (0, import_jsx_runtime16.jsxs)(Flex, {
children: [
(0, import_jsx_runtime16.jsx)(Box, {
children: (0, import_jsx_runtime16.jsx)(AttributeIcon, {
type: icon
})
}),
(0, import_jsx_runtime16.jsx)(Box, {
paddingLeft: 3,
children: (0, import_jsx_runtime16.jsx)(Modal.Title, {
children: formatMessage({
id: headerId
}, {
name: displayName
})
})
})
]
})
});
}
headers = [
{
label: displayName,
info: {
category: (schema == null ? void 0 : schema.category) || null,
name: schema == null ? void 0 : schema.schema.displayName
}
}
];
if (modalType === "chooseAttribute") {
icon = [
"component",
"components"
].includes(forTarget) ? "component" : schema.schema.kind;
}
if (modalType === "addComponentToDynamicZone") {
icon = "dynamiczone";
headers.push({
label: dynamicZoneTarget
});
}
if (modalType === "attribute" || modalType === "customField") {
icon = attributeType;
headers.push({
label: attributeName
});
}
if (modalType === "editCategory") {
const label = formatMessage({
id: getTrad("modalForm.header.categories"),
defaultMessage: "Categories"
});
headers = [
{
label
},
{
label: categoryName
}
];
}
return (0, import_jsx_runtime16.jsx)(Modal.Header, {
children: (0, import_jsx_runtime16.jsxs)(Flex, {
gap: 3,
children: [
showBackLink && // This is a workaround and should use the LinkButton with a variant that currently doesn't exist
(0, import_jsx_runtime16.jsx)(Link2, {
"aria-label": formatMessage({
id: getTrad("modalForm.header.back"),
defaultMessage: "Back"
}),
startIcon: (0, import_jsx_runtime16.jsx)(ForwardRef$5j, {}),
onClick: () => onOpenModalAddField({
forTarget,
targetUid
}),
href: "#back",
isExternal: false
}),
(0, import_jsx_runtime16.jsx)(AttributeIcon, {
type: icon,
customField: customFieldUid
}),
(0, import_jsx_runtime16.jsx)(Breadcrumbs, {
label: headers.map(({ label }) => label).join(","),
children: headers.map(({ label, info }, index, arr) => {
label = (0, import_upperFirst3.default)(label);
if (!label) {
return null;
}
const key = `${label}.${index}`;
if (info == null ? void 0 : info.category) {
label = `${label} (${(0, import_upperFirst3.default)(info.category)} - ${(0, import_upperFirst3.default)(info.name)})`;
}
return (0, import_jsx_runtime16.jsx)(Crumb, {
isCurrent: index === arr.length - 1,
children: label
}, key);
})
})
]
})
});
};
// node_modules/@strapi/content-type-builder/dist/admin/components/FormModalSubHeader.mjs
var import_jsx_runtime17 = __toESM(require_jsx_runtime(), 1);
var import_upperFirst4 = __toESM(require_upperFirst(), 1);
var getModalTitleSubHeader = ({ modalType, forTarget, kind, actionType, step }) => {
switch (modalType) {
case "chooseAttribute":
return getTrad(`modalForm.sub-header.chooseAttribute.${(forTarget == null ? void 0 : forTarget.includes("component")) ? "component" : kind || "collectionType"}`);
case "attribute": {
return getTrad(`modalForm.sub-header.attribute.${actionType}${step !== "null" && step !== null && actionType !== "edit" ? ".step" : ""}`);
}
case "customField": {
return getTrad(`modalForm.sub-header.attribute.${actionType}`);
}
case "addComponentToDynamicZone":
return getTrad("modalForm.sub-header.addComponentToDynamicZone");
default:
return getTrad("configurations");
}
};
var FormModalSubHeader = ({ actionType, modalType, forTarget, kind, step, attributeType, attributeName, customField }) => {
const { formatMessage } = useIntl();
const intlLabel = modalType === "customField" ? customField == null ? void 0 : customField.intlLabel : {
id: getTrad(`attribute.${attributeType}`)
};
return (0, import_jsx_runtime17.jsxs)(Flex, {
direction: "column",
alignItems: "flex-start",
paddingBottom: 1,
gap: 1,
children: [
(0, import_jsx_runtime17.jsx)(Typography, {
tag: "h2",
variant: "beta",
children: formatMessage({
id: getModalTitleSubHeader({
actionType,
forTarget,
kind,
step,
modalType
}),
defaultMessage: "Add new field"
}, {
type: intlLabel ? (0, import_upperFirst4.default)(formatMessage(intlLabel)) : "",
name: (0, import_upperFirst4.default)(attributeName),
step
})
}),
(0, import_jsx_runtime17.jsx)(Typography, {
variant: "pi",
textColor: "neutral600",
children: formatMessage({
id: getTrad(`attribute.${attributeType}.description`),
defaultMessage: "A type for modeling data"
})
})
]
});
};
// node_modules/@strapi/content-type-builder/dist/admin/components/IconPicker/IconPicker.mjs
var import_jsx_runtime18 = __toESM(require_jsx_runtime(), 1);
var import_react6 = __toESM(require_react(), 1);
var IconPickerWrapper = dt(Flex)`
label {
${inputFocusStyle()}
border-radius: ${({ theme }) => theme.borderRadius};
border: 1px solid ${({ theme }) => theme.colors.neutral100};
}
`;
var IconPick = ({ iconKey, name, onChange, isSelected, ariaLabel }) => {
const Icon = COMPONENT_ICONS[iconKey];
return (0, import_jsx_runtime18.jsx)(Field.Root, {
name,
required: false,
children: (0, import_jsx_runtime18.jsxs)(Field.Label, {
children: [
(0, import_jsx_runtime18.jsxs)(VisuallyHidden, {
children: [
ariaLabel,
(0, import_jsx_runtime18.jsx)(Field.Input, {
type: "radio",
checked: isSelected,
onChange,
value: iconKey,
"aria-checked": isSelected
})
]
}),
(0, import_jsx_runtime18.jsx)(TooltipImpl, {
label: iconKey,
children: (0, import_jsx_runtime18.jsx)(Flex, {
padding: 2,
cursor: "pointer",
hasRadius: true,
background: isSelected ? "primary200" : void 0,
children: (0, import_jsx_runtime18.jsx)(Icon, {
width: "2rem",
height: "2rem",
fill: isSelected ? "primary600" : "neutral300"
})
})
})
]
})
});
};
var IconPicker = ({ intlLabel, name, onChange, value = "" }) => {
const { formatMessage } = useIntl();
const [showSearch, setShowSearch] = (0, import_react6.useState)(false);
const [search, setSearch] = (0, import_react6.useState)("");
const allIcons = Object.keys(COMPONENT_ICONS);
const [icons, setIcons] = (0, import_react6.useState)(allIcons);
const searchIconRef = (0, import_react6.useRef)(null);
const searchBarRef = (0, import_react6.useRef)(null);
const toggleSearch = () => {
setShowSearch(!showSearch);
};
const onChangeSearch = ({ target: { value: value2 } }) => {
setSearch(value2);
setIcons(() => allIcons.filter((icon) => icon.toLowerCase().includes(value2.toLowerCase())));
};
const onClearSearch = () => {
toggleSearch();
setSearch("");
setIcons(allIcons);
};
const removeIconSelected = () => {
onChange({
target: {
name,
value: ""
}
});
};
(0, import_react6.useEffect)(() => {
var _a;
if (showSearch) {
(_a = searchBarRef.current) == null ? void 0 : _a.focus();
}
}, [
showSearch
]);
return (0, import_jsx_runtime18.jsxs)(import_jsx_runtime18.Fragment, {
children: [
(0, import_jsx_runtime18.jsxs)(Flex, {
justifyContent: "space-between",
paddingBottom: 2,
children: [
(0, import_jsx_runtime18.jsx)(Typography, {
variant: "pi",
fontWeight: "bold",
textColor: "neutral800",
tag: "label",
children: formatMessage(intlLabel)
}),
(0, import_jsx_runtime18.jsxs)(Flex, {
gap: 1,
children: [
showSearch ? (0, import_jsx_runtime18.jsx)(Searchbar, {
ref: searchBarRef,
name: "searchbar",
placeholder: formatMessage({
id: getTrad("ComponentIconPicker.search.placeholder"),
defaultMessage: "Search for an icon"
}),
onBlur: () => {
if (!search) {
toggleSearch();
}
},
onChange: onChangeSearch,
value: search,
onClear: onClearSearch,
clearLabel: formatMessage({
id: getTrad("IconPicker.search.clear.label"),
defaultMessage: "Clear the icon search"
}),
children: formatMessage({
id: getTrad("IconPicker.search.placeholder.label"),
defaultMessage: "Search for an icon"
})
}) : (0, import_jsx_runtime18.jsx)(IconButton, {
ref: searchIconRef,
onClick: toggleSearch,
withTooltip: false,
label: formatMessage({
id: getTrad("IconPicker.search.button.label"),
defaultMessage: "Search icon button"
}),
variant: "ghost",
children: (0, import_jsx_runtime18.jsx)(ForwardRef$X, {})
}),
value && (0, import_jsx_runtime18.jsx)(TooltipImpl, {
label: formatMessage({
id: getTrad("IconPicker.remove.tooltip"),
defaultMessage: "Remove the selected icon"
}),
children: (0, import_jsx_runtime18.jsx)(IconButton, {
onClick: removeIconSelected,
withTooltip: false,
label: formatMessage({
id: getTrad("IconPicker.remove.button"),
defaultMessage: "Remove the selected icon"
}),
variant: "ghost",
children: (0, import_jsx_runtime18.jsx)(ForwardRef$j, {})
})
})
]
})
]
}),
(0, import_jsx_runtime18.jsx)(IconPickerWrapper, {
position: "relative",
padding: 1,
background: "neutral100",
hasRadius: true,
wrap: "wrap",
gap: 2,
maxHeight: "126px",
overflow: "auto",
textAlign: "center",
children: icons.length > 0 ? icons.map((iconKey) => (0, import_jsx_runtime18.jsx)(IconPick, {
iconKey,
name,
onChange,
isSelected: iconKey === value,
ariaLabel: formatMessage({
id: getTrad("IconPicker.icon.label"),
defaultMessage: "Select {icon} icon"
}, {
icon: iconKey
})
}, iconKey)) : (0, import_jsx_runtime18.jsx)(Box, {
padding: 4,
grow: 2,
children: (0, import_jsx_runtime18.jsx)(Typography, {
variant: "delta",
textColor: "neutral600",
textAlign: "center",
children: formatMessage({
id: getTrad("IconPicker.emptyState.label"),
defaultMessage: "No icon found"
})
})
})
})
]
});
};
// node_modules/@strapi/content-type-builder/dist/admin/components/PluralName.mjs
var import_jsx_runtime19 = __toESM(require_jsx_runtime(), 1);
var import_react7 = __toESM(require_react(), 1);
var import_pluralize = __toESM(require_pluralize(), 1);
var PluralName = ({ description, error, intlLabel, modifiedData, name, onChange, value }) => {
const { formatMessage } = useIntl();
const onChangeRef = (0, import_react7.useRef)(onChange);
const displayName = (modifiedData == null ? void 0 : modifiedData.displayName) || "";
(0, import_react7.useEffect)(() => {
if (displayName) {
const value2 = nameToSlug(displayName);
try {
const plural = (0, import_pluralize.default)(value2, 2);
onChangeRef.current({
target: {
name,
value: plural
}
});
} catch (err) {
onChangeRef.current({
target: {
name,
value: value2
}
});
}
} else {
onChangeRef.current({
target: {
name,
value: ""
}
});
}
}, [
displayName,
name
]);
const errorMessage = error ? formatMessage({
id: error,
defaultMessage: error
}) : "";
const hint = description ? formatMessage({
id: description.id,
defaultMessage: description.defaultMessage
}, {
...description.values
}) : "";
const label = formatMessage(intlLabel);
return (0, import_jsx_runtime19.jsxs)(Field.Root, {
error: errorMessage,
hint,
name,
children: [
(0, import_jsx_runtime19.jsx)(Field.Label, {
children: label
}),
(0, import_jsx_runtime19.jsx)(TextInput, {
onChange,
value: value || ""
}),
(0, import_jsx_runtime19.jsx)(Field.Error, {})
]
});
};
// node_modules/@strapi/content-type-builder/dist/admin/components/Relation/Relation.mjs
var import_jsx_runtime24 = __toESM(require_jsx_runtime(), 1);
// node_modules/@strapi/content-type-builder/dist/admin/components/Relation/RelationField/RelationField.mjs
var import_jsx_runtime22 = __toESM(require_jsx_runtime(), 1);
// node_modules/@strapi/content-type-builder/dist/admin/components/GenericInputs.mjs
var import_jsx_runtime20 = __toESM(require_jsx_runtime(), 1);
var React = __toESM(require_react(), 1);
var import_isEqual2 = __toESM(require_isEqual(), 1);
// node_modules/@strapi/content-type-builder/dist/admin/utils/parseDateValue.mjs
var parseDateValue = (value) => {
if (value instanceof Date && isValidDate(value)) {
return value;
}
if (typeof value === "string" || typeof value === "number") {
const date = new Date(value);
if (isValidDate(date)) {
return date;
}
}
};
var isValidDate = (date) => !isNaN(date.getTime());
// node_modules/@strapi/content-type-builder/dist/admin/utils/timeFormat.mjs
var removeSeconds = (time) => {
const [hours, minutes] = time.split(":");
return `${hours}:${minutes}`;
};
var addSecondsAndMilliseconds = (time) => {
return time.split(":").length === 2 ? `${time}:00.000` : time;
};
var formatTimeForInput = (value) => {
if (!value) return;
return value.split(":").length > 2 ? removeSeconds(value) : value;
};
var formatTimeForOutput = (value) => {
if (!value) return void 0;
return addSecondsAndMilliseconds(value);
};
var handleTimeChange = ({ value }) => {
const formattedInputTime = formatTimeForInput(value);
return formattedInputTime;
};
var handleTimeChangeEvent = (onChange, name, type, time) => {
const formattedOutputTime = formatTimeForOutput(time);
onChange({
target: {
name,
value: formattedOutputTime,
type
}
});
};
// node_modules/@strapi/content-type-builder/dist/admin/components/GenericInputs.mjs
var GenericInput = ({ autoComplete, customInputs, description, disabled, intlLabel, labelAction, error, name, onChange, options: options2 = [], placeholder, required, step, type, value: defaultValue, isNullable, attribute, ...rest }) => {
const { formatMessage } = useIntl();
const getFieldHintValue = (attribute2, key) => {
if (!attribute2) return;
if (key === "minLength" && key in attribute2) {
return attribute2[key];
}
if (key === "maxLength" && key in attribute2) {
return attribute2[key];
}
if (key === "max" && key in attribute2) {
return attribute2[key];
}
if (key === "min" && key in attribute2) {
return attribute2[key];
}
};
const { hint } = useFieldHint({
description,
fieldSchema: {
minLength: getFieldHintValue(attribute, "minLength"),
maxLength: getFieldHintValue(attribute, "maxLength"),
max: getFieldHintValue(attribute, "max"),
min: getFieldHintValue(attribute, "min")
},
type: (attribute == null ? void 0 : attribute.type) || type
});
const [showPassword, setShowPassword] = React.useState(false);
const CustomInput = customInputs ? customInputs[type] : null;
const value = defaultValue ?? void 0;
const valueWithEmptyStringFallback = value ?? "";
function getErrorMessage(error2) {
if (!error2) {
return null;
}
if (typeof error2 === "string") {
return formatMessage({
id: error2,
defaultMessage: error2
});
}
const values = {
...error2.values
};
return formatMessage({
id: error2.id,
defaultMessage: (error2 == null ? void 0 : error2.defaultMessage) ?? error2.id
}, values);
}
const errorMessage = getErrorMessage(error) ?? void 0;
if (CustomInput) {
return (0, import_jsx_runtime20.jsx)(CustomInput, {
...rest,
attribute,
description,
hint,
disabled,
intlLabel,
labelAction,
error: errorMessage || "",
name,
onChange,
options: options2,
required,
placeholder,
type,
value
});
}
const label = intlLabel.id ? formatMessage({
id: intlLabel.id,
defaultMessage: intlLabel.defaultMessage
}, {
...intlLabel.values
}) : name;
const formattedPlaceholder = placeholder ? formatMessage({
id: placeholder.id,
defaultMessage: placeholder.defaultMessage
}, {
...placeholder.values
}) : "";
const getComponent = () => {
switch (type) {
case "json": {
return (0, import_jsx_runtime20.jsx)(JSONInput, {
value,
disabled,
onChange: (json) => {
const value2 = attribute && "required" in attribute && !(attribute == null ? void 0 : attribute.required) && !json.length ? null : json;
onChange({
target: {
name,
value: value2
}
}, false);
},
minHeight: "25.2rem",
maxHeight: "50.4rem"
});
}
case "bool": {
return (0, import_jsx_runtime20.jsx)(Toggle, {
checked: defaultValue === null ? null : defaultValue || false,
disabled,
offLabel: formatMessage({
id: "app.components.ToggleCheckbox.off-label",
defaultMessage: "False"
}),
onLabel: formatMessage({
id: "app.components.ToggleCheckbox.on-label",
defaultMessage: "True"
}),
onChange: (e) => {
onChange({
target: {
name,
value: e.target.checked
}
});
}
});
}
case "checkbox": {
return (0, import_jsx_runtime20.jsx)(CheckboxImpl, {
disabled,
onCheckedChange: (value2) => {
onChange({
target: {
name,
value: value2
}
});
},
checked: Boolean(value),
children: label
});
}
case "datetime": {
const dateValue = parseDateValue(value);
return (0, import_jsx_runtime20.jsx)(DateTimePicker, {
clearLabel: formatMessage({
id: "clearLabel",
defaultMessage: "Clear"
}),
disabled,
onChange: (date) => {
const formattedDate = date ? date.toISOString() : null;
onChange({
target: {
name,
value: formattedDate,
type
}
});
},
onClear: () => onChange({
target: {
name,
value: null,
type
}
}),
placeholder: formattedPlaceholder,
value: dateValue
});
}
case "date": {
const dateValue = parseDateValue(value);
return (0, import_jsx_runtime20.jsx)(DatePicker$1, {
clearLabel: formatMessage({
id: "clearLabel",
defaultMessage: "Clear"
}),
disabled,
onChange: (date) => {
onChange({
target: {
name,
value: date ? formatISO(date, {
representation: "date"
}) : null,
type
}
});
},
onClear: () => onChange({
target: {
name,
value: null,
type
}
}),
placeholder: formattedPlaceholder,
value: dateValue
});
}
case "number": {
return (0, import_jsx_runtime20.jsx)(NumberInput, {
disabled,
onValueChange: (value2) => {
onChange({
target: {
name,
value: value2,
type
}
});
},
placeholder: formattedPlaceholder,
step,
value
});
}
case "email": {
return (0, import_jsx_runtime20.jsx)(TextInput, {
autoComplete,
disabled,
onChange: (e) => {
onChange({
target: {
name,
value: e.target.value,
type
}
});
},
placeholder: formattedPlaceholder,
type: "email",
value: valueWithEmptyStringFallback
});
}
case "timestamp":
case "text":
case "string": {
return (0, import_jsx_runtime20.jsx)(TextInput, {
autoComplete,
disabled,
onChange: (e) => {
onChange({
target: {
name,
value: e.target.value,
type
}
});
},
placeholder: formattedPlaceholder,
type: "text",
value: valueWithEmptyStringFallback
});
}
case "password": {
return (0, import_jsx_runtime20.jsx)(TextInput, {
autoComplete,
disabled,
endAction: (0, import_jsx_runtime20.jsx)("button", {
"aria-label": formatMessage({
id: "Auth.form.password.show-password",
defaultMessage: "Show password"
}),
onClick: () => {
setShowPassword((prev) => !prev);
},
style: {
border: "none",
padding: 0,
background: "transparent"
},
type: "button",
children: showPassword ? (0, import_jsx_runtime20.jsx)(ForwardRef$3D, {
fill: "neutral500"
}) : (0, import_jsx_runtime20.jsx)(ForwardRef$3B, {
fill: "neutral500"
})
}),
onChange: (e) => {
onChange({
target: {
name,
value: e.target.value,
type
}
});
},
placeholder: formattedPlaceholder,
type: showPassword ? "text" : "password",
value: valueWithEmptyStringFallback
});
}
case "select": {
return (0, import_jsx_runtime20.jsx)(SingleSelect, {
disabled,
onChange: (value2) => {
onChange({
target: {
name,
value: value2,
type: "select"
}
});
},
placeholder: formattedPlaceholder,
value,
children: options2.map(({ metadatas: { intlLabel: intlLabel2, disabled: disabled2, hidden }, key, value: value2 }) => {
return (0, import_jsx_runtime20.jsx)(SingleSelectOption, {
value: value2,
disabled: disabled2,
hidden,
children: formatMessage(intlLabel2)
}, key);
})
});
}
case "textarea": {
return (0, import_jsx_runtime20.jsx)(Textarea, {
disabled,
onChange: (event) => onChange({
target: {
name,
value: event.target.value,
type
}
}),
placeholder: formattedPlaceholder,
value: valueWithEmptyStringFallback
});
}
case "time": {
const formattedValue = handleTimeChange({
value,
onChange,
name,
type
});
return (0, import_jsx_runtime20.jsx)(TimePicker$1, {
clearLabel: formatMessage({
id: "clearLabel",
defaultMessage: "Clear"
}),
disabled,
onChange: (time) => handleTimeChangeEvent(onChange, name, type, time),
onClear: () => handleTimeChangeEvent(onChange, name, type, void 0),
value: formattedValue
});
}
default: {
return (0, import_jsx_runtime20.jsx)(TextInput, {
disabled: true,
placeholder: "Not supported",
type: "text",
value: ""
});
}
}
};
return (0, import_jsx_runtime20.jsxs)(Field.Root, {
error: errorMessage,
name,
hint,
required,
children: [
type !== "checkbox" ? (0, import_jsx_runtime20.jsx)(Field.Label, {
action: labelAction,
children: label
}) : null,
getComponent(),
(0, import_jsx_runtime20.jsx)(Field.Error, {}),
(0, import_jsx_runtime20.jsx)(Field.Hint, {})
]
});
};
var useFieldHint = ({ description, fieldSchema, type }) => {
const { formatMessage } = useIntl();
const buildDescription = () => (description == null ? void 0 : description.id) ? formatMessage({
id: description.id,
defaultMessage: description.defaultMessage
}, {
...description.values
}) : "";
const buildHint = () => {
const { maximum, minimum } = getMinMax(fieldSchema);
const units = getFieldUnits({
type,
minimum,
maximum
});
const minIsNumber = typeof minimum === "number";
const maxIsNumber = typeof maximum === "number";
const hasMinAndMax = maxIsNumber && minIsNumber;
const hasMinOrMax = maxIsNumber || minIsNumber;
if (!(description == null ? void 0 : description.id) && !hasMinOrMax) {
return "";
}
return formatMessage({
id: "content-manager.form.Input.hint.text",
defaultMessage: "{min, select, undefined {} other {min. {min}}}{divider}{max, select, undefined {} other {max. {max}}}{unit}{br}{description}"
}, {
min: minimum,
max: maximum,
description: buildDescription(),
unit: (units == null ? void 0 : units.message) && hasMinOrMax ? formatMessage(units.message, units.values) : null,
divider: hasMinAndMax ? formatMessage({
id: "content-manager.form.Input.hint.minMaxDivider",
defaultMessage: " / "
}) : null,
br: hasMinOrMax ? (0, import_jsx_runtime20.jsx)("br", {}) : null
});
};
return {
hint: buildHint()
};
};
var getFieldUnits = ({ type, minimum, maximum }) => {
if (type && [
"biginteger",
"integer",
"number"
].includes(type)) {
return {};
}
const maxValue = Math.max(minimum || 0, maximum || 0);
return {
message: {
id: "content-manager.form.Input.hint.character.unit",
defaultMessage: "{maxValue, plural, one { character} other { characters}}"
},
values: {
maxValue
}
};
};
var getMinMax = (fieldSchema) => {
if (!fieldSchema) {
return {
maximum: void 0,
minimum: void 0
};
}
const { minLength, maxLength, max, min } = fieldSchema;
let minimum;
let maximum;
const parsedMin = Number(min);
const parsedMinLength = Number(minLength);
if (!Number.isNaN(parsedMin)) {
minimum = parsedMin;
} else if (!Number.isNaN(parsedMinLength)) {
minimum = parsedMinLength;
}
const parsedMax = Number(max);
const parsedMaxLength = Number(maxLength);
if (!Number.isNaN(parsedMax)) {
maximum = parsedMax;
} else if (!Number.isNaN(parsedMaxLength)) {
maximum = parsedMaxLength;
}
return {
maximum,
minimum
};
};
var MemoizedGenericInput = React.memo(GenericInput, import_isEqual2.default);
// node_modules/@strapi/content-type-builder/dist/admin/components/Relation/RelationField/RelationTargetPicker/RelationTargetPicker.mjs
var import_jsx_runtime21 = __toESM(require_jsx_runtime(), 1);
var RelationTargetPicker = ({ oneThatIsCreatingARelationWithAnother, target }) => {
const { contentTypes, sortedContentTypesList } = useDataManager();
const dispatch = useDispatch();
const allowedContentTypesForRelation = sortedContentTypesList.filter(isAllowedContentTypesForRelations);
const { plugin = null, schema: { displayName } = {
displayName: "error"
} } = (contentTypes == null ? void 0 : contentTypes[target]) ?? {};
const handleSelect = ({ uid, plugin: plugin2, title, restrictRelationsTo }) => () => {
const selectedContentTypeFriendlyName = plugin2 ? `${plugin2}_${title}` : title;
dispatch(actions2.onChangeRelationTarget({
target: {
value: uid,
oneThatIsCreatingARelationWithAnother,
selectedContentTypeFriendlyName,
targetContentTypeAllowedRelations: restrictRelationsTo
}
}));
};
return (0, import_jsx_runtime21.jsxs)(Menu.Root, {
children: [
(0, import_jsx_runtime21.jsx)(MenuTrigger, {
children: `${displayName} ${plugin ? `(from: ${plugin})` : ""}`
}),
(0, import_jsx_runtime21.jsx)(Menu.Content, {
zIndex: "popover",
children: allowedContentTypesForRelation.map(({ uid, title, restrictRelationsTo, plugin: plugin2 }) => (0, import_jsx_runtime21.jsxs)(Menu.Item, {
onSelect: handleSelect({
uid,
plugin: plugin2,
title,
restrictRelationsTo
}),
children: [
title,
" ",
plugin2 && (0, import_jsx_runtime21.jsxs)(import_jsx_runtime21.Fragment, {
children: [
"(from: ",
plugin2,
")"
]
})
]
}, uid))
})
]
});
};
var MenuTrigger = dt(Menu.Trigger)`
max-width: 16.8rem;
span {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
`;
// node_modules/@strapi/content-type-builder/dist/admin/components/Relation/RelationField/RelationField.mjs
var RelationFormBox = ({ disabled = false, error, header, isMain = false, name, onChange, oneThatIsCreatingARelationWithAnother = "", target = "", value = "" }) => {
return (0, import_jsx_runtime22.jsxs)(Box, {
background: "neutral100",
hasRadius: true,
borderColor: "neutral200",
children: [
(0, import_jsx_runtime22.jsx)(Flex, {
paddingTop: isMain ? 4 : 1,
paddingBottom: isMain ? 3 : 1,
justifyContent: "center",
children: isMain ? (0, import_jsx_runtime22.jsx)(Typography, {
variant: "pi",
fontWeight: "bold",
textColor: "neutral800",
children: header
}) : (0, import_jsx_runtime22.jsx)(RelationTargetPicker, {
target,
oneThatIsCreatingARelationWithAnother
})
}),
(0, import_jsx_runtime22.jsx)(Divider, {
background: "neutral200"
}),
(0, import_jsx_runtime22.jsx)(Box, {
padding: 4,
children: (0, import_jsx_runtime22.jsx)(MemoizedGenericInput, {
disabled,
error: (error == null ? void 0 : error.id) || null,
intlLabel: {
id: getTrad("form.attribute.item.defineRelation.fieldName"),
defaultMessage: "Field name"
},
name,
onChange,
type: "text",
value
})
})
]
});
};
// node_modules/@strapi/content-type-builder/dist/admin/components/Relation/RelationNaturePicker/RelationNaturePicker.mjs
var import_jsx_runtime23 = __toESM(require_jsx_runtime(), 1);
var import_get = __toESM(require_get(), 1);
var import_truncate = __toESM(require_truncate(), 1);
var import_pluralize2 = __toESM(require_pluralize(), 1);
// node_modules/@strapi/content-type-builder/dist/admin/components/Relation/RelationNaturePicker/Components.mjs
var Wrapper2 = dt(Box)`
position: relative;
width: 100%;
&::before {
content: '';
position: absolute;
top: calc(50% - 0px);
height: 2px;
width: 100%;
background-color: ${({ theme }) => theme.colors.primary600};
z-index: 0;
}
`;
var IconWrapper = dt(Box)`
background: ${({ theme, $isSelected }) => theme.colors[$isSelected ? "primary100" : "neutral0"]};
border: 1px solid
${({ theme, $isSelected }) => theme.colors[$isSelected ? "primary700" : "neutral200"]};
border-radius: ${({ theme }) => theme.borderRadius};
z-index: 1;
flex: 0 0 2.4rem;
svg {
width: 2.4rem;
height: 2.4rem;
max-width: unset;
path {
fill: ${({ theme, $isSelected }) => theme.colors[$isSelected ? "primary700" : "neutral500"]};
}
}
cursor: pointer;
&:disabled {
cursor: not-allowed;
}
display: flex;
justify-content: center;
align-items: center;
`;
var InfosWrapper = dt(Flex)`
position: absolute;
bottom: 0;
left: 0;
right: 0;
`;
// node_modules/@strapi/content-type-builder/dist/admin/components/Relation/RelationNaturePicker/RelationNaturePicker.mjs
var relations = {
oneWay: ForwardRef$1J,
oneToOne: ForwardRef$1L,
oneToMany: ForwardRef$1N,
manyToOne: ForwardRef$29,
manyToMany: ForwardRef$2b,
manyWay: ForwardRef$27
};
var RelationNaturePicker = ({ naturePickerType, oneThatIsCreatingARelationWithAnother, relationType, target }) => {
const dispatch = useDispatch();
const { formatMessage } = useIntl();
const { contentTypes, modifiedData } = useDataManager();
const ctRelations = [
"oneWay",
"oneToOne",
"oneToMany",
"manyToOne",
"manyToMany",
"manyWay"
];
const componentRelations = [
"oneWay",
"manyWay"
];
const dataType = naturePickerType === "contentType" ? (0, import_get.default)(modifiedData, [
naturePickerType,
"schema",
"kind"
], "") : naturePickerType;
const relationsType = dataType === "collectionType" ? ctRelations : componentRelations;
const areDisplayedNamesInverted = relationType === "manyToOne";
const targetLabel = (0, import_get.default)(contentTypes, [
target,
"schema",
"displayName"
], "unknown");
const leftTarget = areDisplayedNamesInverted ? targetLabel : oneThatIsCreatingARelationWithAnother;
const rightTarget = areDisplayedNamesInverted ? oneThatIsCreatingARelationWithAnother : targetLabel;
const leftDisplayedValue = (0, import_pluralize2.default)(leftTarget, relationType === "manyToMany" ? 2 : 1);
const restrictedRelations = (0, import_get.default)(contentTypes, [
target,
"schema",
"restrictRelationsTo"
], null);
const rightDisplayedValue = (0, import_pluralize2.default)(rightTarget, [
"manyToMany",
"oneToMany",
"manyToOne",
"manyWay"
].includes(relationType) ? 2 : 1);
if (!relationType) {
return null;
}
return (0, import_jsx_runtime23.jsxs)(Flex, {
style: {
flex: 1
},
children: [
(0, import_jsx_runtime23.jsx)(Wrapper2, {
children: (0, import_jsx_runtime23.jsx)(Flex, {
paddingLeft: 9,
paddingRight: 9,
paddingTop: 1,
justifyContent: "center",
children: (0, import_jsx_runtime23.jsx)(KeyboardNavigable, {
tagName: "button",
children: (0, import_jsx_runtime23.jsx)(Flex, {
gap: 3,
children: relationsType.map((relation) => {
const Asset = relations[relation];
const isEnabled = restrictedRelations === null || restrictedRelations.includes(relation);
return (0, import_jsx_runtime23.jsx)(IconWrapper, {
tag: "button",
$isSelected: relationType === relation,
disabled: !isEnabled,
onClick: () => {
if (isEnabled) {
dispatch(actions2.onChangeRelationType({
target: {
oneThatIsCreatingARelationWithAnother,
value: relation
}
}));
}
},
padding: 2,
type: "button",
"aria-label": formatMessage({
id: getTrad(`relation.${relation}`)
}),
"aria-pressed": relationType === relation,
"data-relation-type": relation,
children: (0, import_jsx_runtime23.jsx)(Asset, {
"aria-hidden": "true"
}, relation)
}, relation);
})
})
})
})
}),
(0, import_jsx_runtime23.jsxs)(InfosWrapper, {
justifyContent: "center",
children: [
(0, import_jsx_runtime23.jsxs)(Typography, {
children: [
(0, import_truncate.default)(leftDisplayedValue, {
length: 24
}),
" "
]
}),
(0, import_jsx_runtime23.jsxs)(Typography, {
textColor: "primary600",
children: [
formatMessage({
id: getTrad(`relation.${relationType}`)
}),
" "
]
}),
(0, import_jsx_runtime23.jsx)(Typography, {
children: (0, import_truncate.default)(rightDisplayedValue, {
length: 24
})
})
]
})
]
});
};
// node_modules/@strapi/content-type-builder/dist/admin/components/Relation/Relation.mjs
var Relation = ({ formErrors, mainBoxHeader, modifiedData, naturePickerType, onChange }) => {
const relationType = getRelationType(modifiedData.relation, modifiedData.targetAttribute);
return (0, import_jsx_runtime24.jsxs)(Flex, {
style: {
position: "relative"
},
children: [
(0, import_jsx_runtime24.jsx)(RelationFormBox, {
isMain: true,
header: mainBoxHeader,
error: (formErrors == null ? void 0 : formErrors.name) || null,
name: "name",
onChange,
value: (modifiedData == null ? void 0 : modifiedData.name) || ""
}),
(0, import_jsx_runtime24.jsx)(RelationNaturePicker, {
naturePickerType,
oneThatIsCreatingARelationWithAnother: mainBoxHeader,
relationType,
target: modifiedData.target
}),
(0, import_jsx_runtime24.jsx)(RelationFormBox, {
disabled: [
"oneWay",
"manyWay"
].includes(relationType),
error: (formErrors == null ? void 0 : formErrors.targetAttribute) || null,
name: "targetAttribute",
onChange,
oneThatIsCreatingARelationWithAnother: mainBoxHeader,
target: modifiedData.target,
value: (modifiedData == null ? void 0 : modifiedData.targetAttribute) || ""
})
]
});
};
// node_modules/@strapi/content-type-builder/dist/admin/components/SelectCategory.mjs
var import_jsx_runtime25 = __toESM(require_jsx_runtime(), 1);
var import_react8 = __toESM(require_react(), 1);
var SelectCategory = ({ error = null, intlLabel, name, onChange, value = void 0, isCreating, dynamicZoneTarget }) => {
const { formatMessage } = useIntl();
const { allComponentsCategories } = useDataManager();
const [categories, setCategories] = (0, import_react8.useState)(allComponentsCategories);
const errorMessage = error ? formatMessage({
id: error,
defaultMessage: error
}) : "";
const label = formatMessage(intlLabel);
const handleChange = (value2) => {
onChange({
target: {
name,
value: value2,
type: "select-category"
}
});
};
const handleCreateOption = (value2) => {
setCategories((prev) => [
...prev,
value2
]);
handleChange(value2);
};
return (0, import_jsx_runtime25.jsxs)(Field.Root, {
error: errorMessage,
name,
children: [
(0, import_jsx_runtime25.jsx)(Field.Label, {
children: label
}),
(0, import_jsx_runtime25.jsx)(Combobox, {
// TODO: re-enable category edits, renaming categories of already existing components currently breaks other functionality
// See https://github.com/strapi/strapi/issues/20356
disabled: !isCreating && !dynamicZoneTarget,
onChange: handleChange,
onCreateOption: handleCreateOption,
value,
creatable: true,
children: categories.map((category) => (0, import_jsx_runtime25.jsx)(Option, {
value: category,
children: category
}, category))
}),
(0, import_jsx_runtime25.jsx)(Field.Error, {})
]
});
};
// node_modules/@strapi/content-type-builder/dist/admin/components/SelectComponent.mjs
var import_jsx_runtime26 = __toESM(require_jsx_runtime(), 1);
// node_modules/@strapi/content-type-builder/dist/admin/utils/getMaxDepth.mjs
var findComponent = (componentUid, components) => {
return components.find((c) => c.component === componentUid);
};
var getChildrenMaxDepth = (componentUid, components, currentDepth = 0) => {
const component = findComponent(componentUid, components);
if (!component || !component.childComponents || component.childComponents.length === 0) {
return currentDepth;
}
let maxDepth = currentDepth;
component.childComponents.forEach((child) => {
const depth = getChildrenMaxDepth(child.component, components, currentDepth + 1);
if (depth > maxDepth) {
maxDepth = depth;
}
});
return maxDepth;
};
var getComponentDepth = (component, components) => {
const getDepth = (currentComponent, currentLevel) => {
const levels = [];
levels.push(currentLevel);
if (!currentComponent.uidsOfAllParents) {
return levels;
}
for (const parentUid of currentComponent.uidsOfAllParents) {
const parentComponent = findComponent(parentUid, components);
if (parentComponent) {
levels.push(...getDepth(parentComponent, currentLevel + 1));
}
}
return levels;
};
const nestedCompo = findComponent(component, components);
if (!nestedCompo) {
return 0;
}
const compoDepth = Math.max(...getDepth(nestedCompo, 1));
return compoDepth;
};
// node_modules/@strapi/content-type-builder/dist/admin/components/SelectComponent.mjs
var SelectComponent = ({ error = null, intlLabel, isAddingAComponentToAnotherComponent, isCreating, isCreatingComponentWhileAddingAField, componentToCreate, name, onChange, targetUid, forTarget, value }) => {
const { formatMessage } = useIntl();
const errorMessage = error ? formatMessage({
id: error,
defaultMessage: error
}) : "";
const label = formatMessage(intlLabel);
const { componentsGroupedByCategory, componentsThatHaveOtherComponentInTheirAttributes, nestedComponents } = useDataManager();
const isTargetAComponent = [
"component",
"components"
].includes(forTarget);
let options2 = Object.entries(componentsGroupedByCategory).reduce((acc, current) => {
const [categoryName, components] = current;
const compos = components.map((component) => {
return {
uid: component.uid,
label: component.schema.displayName,
categoryName
};
});
return [
...acc,
...compos
];
}, []);
if (isAddingAComponentToAnotherComponent) {
options2 = options2.filter(({ uid }) => {
const maxDepth = getChildrenMaxDepth(uid, componentsThatHaveOtherComponentInTheirAttributes);
const componentDepth = getComponentDepth(targetUid, nestedComponents);
const totalDepth = maxDepth + componentDepth;
return totalDepth <= MAX_COMPONENT_DEPTH;
});
}
if (isTargetAComponent) {
options2 = options2.filter((option) => {
return option.uid !== targetUid;
});
}
if (isCreatingComponentWhileAddingAField) {
options2 = [
{
uid: value,
label: componentToCreate == null ? void 0 : componentToCreate.displayName,
categoryName: componentToCreate == null ? void 0 : componentToCreate.category
}
];
}
return (0, import_jsx_runtime26.jsxs)(Field.Root, {
error: errorMessage,
name,
children: [
(0, import_jsx_runtime26.jsx)(Field.Label, {
children: label
}),
(0, import_jsx_runtime26.jsx)(SingleSelect, {
disabled: isCreatingComponentWhileAddingAField || !isCreating,
onChange: (value2) => {
onChange({
target: {
name,
value: value2,
type: "select-category"
}
});
},
value: value || "",
children: options2.map((option) => {
return (0, import_jsx_runtime26.jsx)(SingleSelectOption, {
value: option.uid,
children: `${option.categoryName} - ${option.label}`
}, option.uid);
})
}),
(0, import_jsx_runtime26.jsx)(Field.Error, {})
]
});
};
// node_modules/@strapi/content-type-builder/dist/admin/components/SelectComponents.mjs
var import_jsx_runtime27 = __toESM(require_jsx_runtime(), 1);
var SelectComponents = ({ dynamicZoneTarget, intlLabel, name, onChange, value }) => {
const { formatMessage } = useIntl();
const { componentsGroupedByCategory, modifiedData } = useDataManager();
const dzSchema = findAttribute(modifiedData.contentType.schema.attributes, dynamicZoneTarget);
const alreadyUsedComponents = (dzSchema == null ? void 0 : dzSchema.components) || [];
const filteredComponentsGroupedByCategory = Object.keys(componentsGroupedByCategory).reduce((acc, current) => {
const filteredComponents = componentsGroupedByCategory[current].filter(({ uid }) => {
return !alreadyUsedComponents.includes(uid);
});
if (filteredComponents.length > 0) {
acc[current] = filteredComponents;
}
return acc;
}, {});
const options2 = Object.entries(filteredComponentsGroupedByCategory).reduce((acc, current) => {
const [categoryName, components] = current;
const section = {
label: categoryName,
children: components.map(({ uid, schema: { displayName } }) => {
return {
label: displayName,
value: uid
};
})
};
acc.push(section);
return acc;
}, []);
const displayedValue = formatMessage({
id: getTrad("components.SelectComponents.displayed-value"),
defaultMessage: "{number, plural, =0 {# components} one {# component} other {# components}} selected"
}, {
number: (value == null ? void 0 : value.length) ?? 0
});
return (0, import_jsx_runtime27.jsxs)(Field.Root, {
name,
children: [
(0, import_jsx_runtime27.jsx)(Field.Label, {
children: formatMessage(intlLabel)
}),
(0, import_jsx_runtime27.jsx)(MultiSelectNested, {
id: "select1",
customizeContent: () => displayedValue,
onChange: (values) => {
onChange({
target: {
name,
value: values,
type: "select-components"
}
});
},
options: options2,
value: value || []
})
]
});
};
// node_modules/@strapi/content-type-builder/dist/admin/components/SelectDateType.mjs
var import_jsx_runtime28 = __toESM(require_jsx_runtime(), 1);
var SelectDateType = ({ intlLabel, error = void 0, modifiedData, name, onChange, options: options2, value = "" }) => {
const { formatMessage } = useIntl();
const label = formatMessage(intlLabel);
const errorMessage = error ? formatMessage({
id: error,
defaultMessage: error
}) : "";
const handleChange = (nextValue) => {
onChange({
target: {
name,
value: nextValue,
type: "select"
}
});
if (!value) {
return;
}
if (modifiedData.default !== void 0 && modifiedData.default !== null) {
onChange({
target: {
name: "default",
value: null
}
});
}
};
return (0, import_jsx_runtime28.jsxs)(Field.Root, {
error: errorMessage,
name,
children: [
(0, import_jsx_runtime28.jsx)(Field.Label, {
children: label
}),
(0, import_jsx_runtime28.jsx)(SingleSelect, {
onChange: handleChange,
value: value || "",
children: options2.map(({ metadatas: { intlLabel: intlLabel2, disabled, hidden }, key, value: value2 }) => {
return (0, import_jsx_runtime28.jsx)(SingleSelectOption, {
value: value2,
disabled,
hidden,
children: formatMessage({
id: intlLabel2.id,
defaultMessage: intlLabel2.defaultMessage
}, intlLabel2.values)
}, key);
})
}),
(0, import_jsx_runtime28.jsx)(Field.Error, {})
]
});
};
// node_modules/@strapi/content-type-builder/dist/admin/components/SelectNumber.mjs
var import_jsx_runtime29 = __toESM(require_jsx_runtime(), 1);
var SelectNumber = ({ intlLabel, error = void 0, modifiedData, name, onChange, options: options2, value = "" }) => {
const { formatMessage } = useIntl();
const label = formatMessage(intlLabel);
const errorMessage = error ? formatMessage({
id: error,
defaultMessage: error
}) : "";
const handleChange = (nextValue) => {
onChange({
target: {
name,
value: nextValue,
type: "select"
}
});
if (!value) {
return;
}
if (nextValue === "biginteger" && value !== "biginteger") {
if (modifiedData.default !== void 0 && modifiedData.default !== null) {
onChange({
target: {
name: "default",
value: null
}
});
}
if (modifiedData.max !== void 0 && modifiedData.max !== null) {
onChange({
target: {
name: "max",
value: null
}
});
}
if (modifiedData.min !== void 0 && modifiedData.min !== null) {
onChange({
target: {
name: "min",
value: null
}
});
}
}
if (typeof nextValue === "string" && [
"decimal",
"float",
"integer"
].includes(nextValue) && value === "biginteger") {
if (modifiedData.default !== void 0 && modifiedData.default !== null) {
onChange({
target: {
name: "default",
value: null
}
});
}
if (modifiedData.max !== void 0 && modifiedData.max !== null) {
onChange({
target: {
name: "max",
value: null
}
});
}
if (modifiedData.min !== void 0 && modifiedData.min !== null) {
onChange({
target: {
name: "min",
value: null
}
});
}
}
};
return (0, import_jsx_runtime29.jsxs)(Field.Root, {
error: errorMessage,
name,
children: [
(0, import_jsx_runtime29.jsx)(Field.Label, {
children: label
}),
(0, import_jsx_runtime29.jsx)(SingleSelect, {
onChange: handleChange,
value: value || "",
children: options2.map(({ metadatas: { intlLabel: intlLabel2, disabled, hidden }, key, value: value2 }) => {
return (0, import_jsx_runtime29.jsx)(SingleSelectOption, {
value: value2,
disabled,
hidden,
children: formatMessage(intlLabel2)
}, key);
})
}),
(0, import_jsx_runtime29.jsx)(Field.Error, {})
]
});
};
SelectNumber.defaultProps = {
error: void 0,
value: ""
};
// node_modules/@strapi/content-type-builder/dist/admin/components/SingularName.mjs
var import_jsx_runtime30 = __toESM(require_jsx_runtime(), 1);
var import_react9 = __toESM(require_react(), 1);
var SingularName = ({ description = null, error = null, intlLabel, modifiedData, name, onChange, value = null }) => {
const { formatMessage } = useIntl();
const onChangeRef = (0, import_react9.useRef)(onChange);
const displayName = (modifiedData == null ? void 0 : modifiedData.displayName) || "";
(0, import_react9.useEffect)(() => {
if (displayName) {
onChangeRef.current({
target: {
name,
value: nameToSlug(displayName)
}
});
} else {
onChangeRef.current({
target: {
name,
value: ""
}
});
}
}, [
displayName,
name
]);
const errorMessage = error ? formatMessage({
id: error,
defaultMessage: error
}) : "";
const hint = description ? formatMessage({
id: description.id,
defaultMessage: description.defaultMessage
}, {
...description.values
}) : "";
const label = formatMessage(intlLabel);
return (0, import_jsx_runtime30.jsxs)(Field.Root, {
error: errorMessage,
hint,
name,
children: [
(0, import_jsx_runtime30.jsx)(Field.Label, {
children: label
}),
(0, import_jsx_runtime30.jsx)(TextInput, {
onChange,
value: value || ""
}),
(0, import_jsx_runtime30.jsx)(Field.Error, {}),
(0, import_jsx_runtime30.jsx)(Field.Hint, {})
]
});
};
// node_modules/@strapi/content-type-builder/dist/admin/components/TabForm.mjs
var import_jsx_runtime31 = __toESM(require_jsx_runtime(), 1);
var import_get2 = __toESM(require_get(), 1);
var TabForm = ({ form, formErrors, genericInputProps, modifiedData, onChange }) => {
const { formatMessage } = useIntl();
return (0, import_jsx_runtime31.jsx)(import_jsx_runtime31.Fragment, {
children: form.map((section, sectionIndex) => {
if (section.items.length === 0) {
return null;
}
return (0, import_jsx_runtime31.jsxs)(Box, {
children: [
section.sectionTitle && (0, import_jsx_runtime31.jsx)(Box, {
paddingBottom: 4,
children: (0, import_jsx_runtime31.jsx)(Typography, {
variant: "delta",
tag: "h3",
children: formatMessage(section.sectionTitle)
})
}),
(0, import_jsx_runtime31.jsx)(Grid.Root, {
gap: 4,
children: section.items.map((input, i) => {
const key = `${sectionIndex}.${i}`;
const value = (0, import_get2.default)(modifiedData, input.name, void 0);
const pluginOptionError = Object.keys(formErrors).find((key2) => key2 === input.name);
const errorId = pluginOptionError ? formErrors[pluginOptionError].id : (0, import_get2.default)(formErrors, [
...input.name.split(".").filter((key2) => key2 !== "componentToCreate"),
"id"
], null);
if (input.type === "pushRight") {
return (0, import_jsx_runtime31.jsx)(Grid.Item, {
col: input.size || 6,
direction: "column",
alignItems: "stretch",
children: (0, import_jsx_runtime31.jsx)("div", {})
}, input.name || key);
}
return (0, import_jsx_runtime31.jsx)(Grid.Item, {
col: input.size || 6,
direction: "column",
alignItems: "stretch",
children: (0, import_jsx_runtime31.jsx)(MemoizedGenericInput, {
...input,
...genericInputProps,
error: errorId,
onChange,
value
})
}, input.name || key);
})
})
]
}, sectionIndex);
})
});
};
// node_modules/@strapi/content-type-builder/dist/admin/components/TextareaEnum.mjs
var import_jsx_runtime32 = __toESM(require_jsx_runtime(), 1);
var TextareaEnum = ({ description = null, disabled = false, error = "", intlLabel, labelAction, name, onChange, placeholder = null, value = "" }) => {
const { formatMessage } = useIntl();
const errorMessage = error ? formatMessage({
id: error,
defaultMessage: error
}) : "";
const hint = description ? formatMessage({
id: description.id,
defaultMessage: description.defaultMessage
}, {
...description.values
}) : "";
const label = formatMessage(intlLabel);
const formattedPlaceholder = placeholder ? formatMessage({
id: placeholder.id,
defaultMessage: placeholder.defaultMessage
}, {
...placeholder.values
}) : "";
const inputValue = Array.isArray(value) ? value.join("\n") : "";
const handleChange = (e) => {
const arrayValue = e.target.value.split("\n");
onChange({
target: {
name,
value: arrayValue
}
});
};
return (0, import_jsx_runtime32.jsxs)(Field.Root, {
error: errorMessage,
hint,
name,
children: [
(0, import_jsx_runtime32.jsx)(Field.Label, {
action: labelAction,
children: label
}),
(0, import_jsx_runtime32.jsx)(Textarea, {
disabled,
onChange: handleChange,
placeholder: formattedPlaceholder,
value: inputValue
}),
(0, import_jsx_runtime32.jsx)(Field.Error, {}),
(0, import_jsx_runtime32.jsx)(Field.Hint, {})
]
});
};
// node_modules/@strapi/content-type-builder/dist/admin/components/FormModal/attributes/nameField.mjs
var nameField = {
name: "name",
type: "text",
intlLabel: {
id: "global.name",
defaultMessage: "Name"
},
description: {
id: getTrad("modalForm.attribute.form.base.name.description"),
defaultMessage: "No space is allowed for the name of the attribute"
}
};
// node_modules/@strapi/content-type-builder/dist/admin/components/FormModal/attributes/commonBaseForm.mjs
var commonBaseForm = {
sections: [
{
sectionTitle: null,
items: [
nameField
]
}
]
};
// node_modules/@strapi/content-type-builder/dist/admin/components/FormModal/component/componentForm.mjs
var componentForm = {
base(prefix = "") {
const sections = [
{
sectionTitle: null,
items: [
{
name: `${prefix}displayName`,
type: "text",
intlLabel: {
id: getTrad("contentType.displayName.label"),
defaultMessage: "Display Name"
}
},
{
name: `${prefix}category`,
type: "select-category",
intlLabel: {
id: getTrad("modalForm.components.create-component.category.label"),
defaultMessage: "Select a category or enter a name to create a new one"
}
}
]
},
{
sectionTitle: null,
items: [
{
name: `${prefix}icon`,
type: "icon-picker",
size: 12,
intlLabel: {
id: getTrad("modalForm.components.icon.label"),
defaultMessage: "Icon"
}
}
]
}
];
return sections;
},
advanced() {
const sections = [];
return sections;
}
};
// node_modules/@strapi/content-type-builder/dist/admin/components/FormModal/attributes/attributeOptions.mjs
var attributeOptions = {
default: {
name: "default",
type: "text",
intlLabel: {
id: getTrad("form.attribute.settings.default"),
defaultMessage: "Default value"
}
},
max: {
name: "max",
type: "checkbox-with-number-field",
intlLabel: {
id: getTrad("form.attribute.item.maximum"),
defaultMessage: "Maximum value"
}
},
maxLength: {
name: "maxLength",
type: "checkbox-with-number-field",
intlLabel: {
id: getTrad("form.attribute.item.maximumLength"),
defaultMessage: "Maximum length"
}
},
min: {
name: "min",
type: "checkbox-with-number-field",
intlLabel: {
id: getTrad("form.attribute.item.minimum"),
defaultMessage: "Minimum value"
}
},
minLength: {
name: "minLength",
type: "checkbox-with-number-field",
intlLabel: {
id: getTrad("form.attribute.item.minimumLength"),
defaultMessage: "Minimum length"
}
},
private: {
name: "private",
type: "checkbox",
intlLabel: {
id: getTrad("form.attribute.item.privateField"),
defaultMessage: "Private field"
},
description: {
id: getTrad("form.attribute.item.privateField.description"),
defaultMessage: "This field will not show up in the API response"
}
},
regex: {
intlLabel: {
id: getTrad("form.attribute.item.text.regex"),
defaultMessage: "RegExp pattern"
},
name: "regex",
type: "text",
description: {
id: getTrad("form.attribute.item.text.regex.description"),
defaultMessage: "The text of the regular expression"
}
},
required: {
name: "required",
type: "checkbox",
intlLabel: {
id: getTrad("form.attribute.item.requiredField"),
defaultMessage: "Required field"
},
description: {
id: getTrad("form.attribute.item.requiredField.description"),
defaultMessage: "You won't be able to create an entry if this field is empty"
}
},
unique: {
name: "unique",
type: "checkbox",
intlLabel: {
id: getTrad("form.attribute.item.uniqueField"),
defaultMessage: "Unique field"
},
description: {
id: getTrad("form.attribute.item.uniqueField.description"),
defaultMessage: "You won't be able to create an entry if there is an existing entry with identical content"
}
}
};
// node_modules/@strapi/content-type-builder/dist/admin/components/FormModal/attributes/advancedForm.mjs
var advancedForm = {
blocks() {
return {
sections: [
{
sectionTitle: {
id: "global.settings",
defaultMessage: "Settings"
},
items: [
attributeOptions.required,
attributeOptions.private
]
}
]
};
},
boolean() {
return {
sections: [
{
sectionTitle: null,
items: [
{
autoFocus: true,
type: "select-default-boolean",
intlLabel: {
id: getTrad("form.attribute.settings.default"),
defaultMessage: "Default value"
},
name: "default",
options: [
{
value: "true",
key: "true",
metadatas: {
intlLabel: {
id: "true",
defaultMessage: "true"
}
}
},
{
value: "",
key: "null",
metadatas: {
intlLabel: {
id: "null",
defaultMessage: "null"
}
}
},
{
value: "false",
key: "false",
metadatas: {
intlLabel: {
id: "false",
defaultMessage: "false"
}
}
}
]
}
]
},
{
sectionTitle: {
id: "global.settings",
defaultMessage: "Settings"
},
items: [
attributeOptions.required,
attributeOptions.private
]
}
]
};
},
component({ repeatable }, step) {
if (step === "1") {
return {
sections: componentForm.advanced()
};
}
if (repeatable) {
return {
sections: [
{
sectionTitle: {
id: "global.settings",
defaultMessage: "Settings"
},
items: [
attributeOptions.required,
attributeOptions.private,
attributeOptions.max,
attributeOptions.min
]
}
]
};
}
return {
sections: [
{
sectionTitle: {
id: "global.settings",
defaultMessage: "Settings"
},
items: [
attributeOptions.required,
attributeOptions.private
]
}
]
};
},
date({ type }) {
return {
sections: [
{
sectionTitle: null,
items: [
{
...attributeOptions.default,
type: type || "date",
value: null,
withDefaultValue: false,
disabled: !type,
autoFocus: false
}
]
},
{
sectionTitle: {
id: "global.settings",
defaultMessage: "Settings"
},
items: [
attributeOptions.required,
attributeOptions.unique,
attributeOptions.private
]
}
]
};
},
dynamiczone() {
return {
sections: [
{
sectionTitle: {
id: "global.settings",
defaultMessage: "Settings"
},
items: [
attributeOptions.required,
attributeOptions.max,
attributeOptions.min
]
}
]
};
},
email() {
return {
sections: [
{
sectionTitle: null,
items: [
{
...attributeOptions.default,
type: "email"
}
]
},
{
sectionTitle: {
id: "global.settings",
defaultMessage: "Settings"
},
items: [
attributeOptions.required,
attributeOptions.unique,
attributeOptions.maxLength,
attributeOptions.minLength,
attributeOptions.private
]
}
]
};
},
enumeration(data) {
return {
sections: [
{
sectionTitle: null,
items: [
{
name: "default",
type: "select",
intlLabel: {
id: getTrad("form.attribute.settings.default"),
defaultMessage: "Default value"
},
validations: {},
options: [
{
key: "__null_reset_value__",
value: "",
metadatas: {
intlLabel: {
id: "components.InputSelect.option.placeholder",
defaultMessage: "Choose here"
}
}
},
...(data.enum || []).filter((value, index) => data.enum.indexOf(value) === index && value).map((value) => {
return {
key: value,
value,
metadatas: {
intlLabel: {
id: `${value}.no-override`,
defaultMessage: value
}
}
};
})
]
},
{
intlLabel: {
id: getTrad("form.attribute.item.enumeration.graphql"),
defaultMessage: "Name override for GraphQL"
},
name: "enumName",
type: "text",
validations: {},
description: {
id: getTrad("form.attribute.item.enumeration.graphql.description"),
defaultMessage: "Allows you to override the default generated name for GraphQL"
}
}
]
},
{
sectionTitle: {
id: "global.settings",
defaultMessage: "Settings"
},
items: [
attributeOptions.required,
attributeOptions.private
]
}
]
};
},
json() {
return {
sections: [
{
sectionTitle: {
id: "global.settings",
defaultMessage: "Settings"
},
items: [
attributeOptions.required,
attributeOptions.private
]
}
]
};
},
media() {
return {
sections: [
{
sectionTitle: null,
items: [
{
intlLabel: {
id: getTrad("form.attribute.media.allowed-types"),
defaultMessage: "Select allowed types of media"
},
name: "allowedTypes",
type: "allowed-types-select",
size: 7,
value: "",
validations: {}
}
]
},
{
sectionTitle: {
id: "global.settings",
defaultMessage: "Settings"
},
items: [
attributeOptions.required,
attributeOptions.private
]
}
]
};
},
number(data) {
const inputStep = data.type === "decimal" || data.type === "float" ? "any" : 1;
return {
sections: [
{
sectionTitle: null,
items: [
{
autoFocus: true,
name: "default",
type: data.type === "biginteger" ? "text" : "number",
step: inputStep,
intlLabel: {
id: getTrad("form.attribute.settings.default"),
defaultMessage: "Default value"
},
validations: {}
}
]
},
{
sectionTitle: {
id: "global.settings",
defaultMessage: "Settings"
},
items: [
attributeOptions.required,
attributeOptions.unique,
attributeOptions.max,
attributeOptions.min,
attributeOptions.private
]
}
]
};
},
password() {
return {
sections: [
{
sectionTitle: null,
items: [
attributeOptions.default
]
},
{
sectionTitle: {
id: "global.settings",
defaultMessage: "Settings"
},
items: [
attributeOptions.required,
attributeOptions.maxLength,
attributeOptions.minLength,
attributeOptions.private
]
}
]
};
},
relation() {
return {
sections: [
{
sectionTitle: {
id: "global.settings",
defaultMessage: "Settings"
},
items: [
attributeOptions.private
]
}
]
};
},
richtext() {
return {
sections: [
{
sectionTitle: null,
items: [
attributeOptions.default
]
},
{
sectionTitle: {
id: "global.settings",
defaultMessage: "Settings"
},
items: [
attributeOptions.required,
attributeOptions.maxLength,
attributeOptions.minLength,
attributeOptions.private
]
}
]
};
},
text() {
return {
sections: [
{
sectionTitle: null,
items: [
attributeOptions.default,
attributeOptions.regex
]
},
{
sectionTitle: {
id: "global.settings",
defaultMessage: "Settings"
},
items: [
attributeOptions.required,
attributeOptions.unique,
attributeOptions.maxLength,
attributeOptions.minLength,
attributeOptions.private
]
}
]
};
},
uid(data) {
return {
sections: [
{
sectionTitle: null,
items: [
{
...attributeOptions.default,
disabled: Boolean(data.targetField),
type: "text"
}
]
},
{
sectionTitle: {
id: "global.settings",
defaultMessage: "Settings"
},
items: [
attributeOptions.required,
attributeOptions.maxLength,
attributeOptions.minLength,
attributeOptions.private
]
}
]
};
}
};
// node_modules/@strapi/content-type-builder/dist/admin/components/FormModal/component/componentField.mjs
var componentField = {
intlLabel: {
id: "global.type",
defaultMessage: "Type"
},
name: "createComponent",
type: "boolean-radio-group",
size: 12,
radios: [
{
title: {
id: getTrad("form.attribute.component.option.create"),
defaultMessage: "Create a new component"
},
description: {
id: getTrad("form.attribute.component.option.create.description"),
defaultMessage: "A component is shared across types and components, it will be available and accessible everywhere."
},
value: true
},
{
title: {
id: getTrad("form.attribute.component.option.reuse-existing"),
defaultMessage: "Use an existing component"
},
description: {
id: getTrad("form.attribute.component.option.reuse-existing.description"),
defaultMessage: "Reuse a component already created to keep your data consistent across content-types."
},
value: false
}
]
};
// node_modules/@strapi/content-type-builder/dist/admin/components/FormModal/attributes/baseForm.mjs
var baseForm = {
component(data, step) {
if (step === "1") {
const itemsToConcat = data.createComponent === true ? componentForm.base("componentToCreate.") : [];
return {
sections: [
{
sectionTitle: null,
items: [
componentField
]
},
...itemsToConcat
]
};
}
return {
sections: [
{
sectionTitle: null,
items: [
nameField,
{
name: "component",
type: "select-component",
intlLabel: {
id: getTrad("modalForm.attributes.select-component"),
defaultMessage: "Select a component"
},
isMultiple: false
}
]
},
{
sectionTitle: null,
items: [
{
intlLabel: {
id: "global.type",
defaultMessage: "Type"
},
name: "repeatable",
type: "boolean-radio-group",
size: 12,
radios: [
{
title: {
id: getTrad("form.attribute.component.option.repeatable"),
defaultMessage: "Repeatable component"
},
description: {
id: getTrad("form.attribute.component.option.repeatable.description"),
defaultMessage: "Best for multiple instances (array) of ingredients, meta tags, etc.."
},
value: true
},
{
title: {
id: getTrad("form.attribute.component.option.single"),
defaultMessage: "Single component"
},
description: {
id: getTrad("form.attribute.component.option.single.description"),
defaultMessage: "Best for grouping fields like full address, main information, etc..."
},
value: false
}
]
}
]
}
]
};
},
date() {
return {
sections: [
{
sectionTitle: null,
items: [
nameField,
{
intlLabel: {
id: "global.type",
defaultMessage: "Type"
},
name: "type",
type: "select-date",
options: [
{
key: "__null_reset_value__",
value: "",
metadatas: {
intlLabel: {
id: "components.InputSelect.option.placeholder",
defaultMessage: "Choose here"
},
hidden: true
}
},
{
key: "date",
value: "date",
metadatas: {
intlLabel: {
id: getTrad("form.attribute.item.date.type.date"),
defaultMessage: "date (ex: 01/01/{currentYear})",
values: {
currentYear: (/* @__PURE__ */ new Date()).getFullYear()
}
}
}
},
{
key: "datetime",
value: "datetime",
metadatas: {
intlLabel: {
id: getTrad("form.attribute.item.date.type.datetime"),
defaultMessage: "datetime (ex: 01/01/{currentYear} 00:00 AM)",
values: {
currentYear: (/* @__PURE__ */ new Date()).getFullYear()
}
}
}
},
{
key: "time",
value: "time",
metadatas: {
intlLabel: {
id: getTrad("form.attribute.item.date.type.time"),
defaultMessage: "time (ex: 00:00 AM)"
}
}
}
]
}
]
}
]
};
},
enumeration() {
return {
sections: [
{
sectionTitle: null,
items: [
nameField
]
},
{
sectionTitle: null,
items: [
{
name: "enum",
type: "textarea-enum",
size: 6,
intlLabel: {
id: getTrad("form.attribute.item.enumeration.rules"),
defaultMessage: "Values (one line per value)"
},
placeholder: {
id: getTrad("form.attribute.item.enumeration.placeholder"),
defaultMessage: "Ex:\nmorning\nnoon\nevening"
},
validations: {
required: true
}
}
]
}
]
};
},
media() {
return {
sections: [
{
sectionTitle: null,
items: [
nameField
]
},
{
sectionTitle: null,
items: [
{
intlLabel: {
id: "global.type",
defaultMessage: "Type"
},
name: "multiple",
size: 12,
type: "boolean-radio-group",
radios: [
{
title: {
id: getTrad("form.attribute.media.option.multiple"),
defaultMessage: "Multiple media"
},
description: {
id: getTrad("form.attribute.media.option.multiple.description"),
defaultMessage: "Best for sliders, carousels or multiple files download"
},
value: true
},
{
title: {
id: getTrad("form.attribute.media.option.single"),
defaultMessage: "Single media"
},
description: {
id: getTrad("form.attribute.media.option.single.description"),
defaultMessage: "Best for avatar, profile picture or cover"
},
value: false
}
]
}
]
}
]
};
},
number() {
return {
sections: [
{
sectionTitle: null,
items: [
nameField,
{
intlLabel: {
id: getTrad("form.attribute.item.number.type"),
defaultMessage: "Number format"
},
name: "type",
type: "select-number",
options: [
{
key: "__null_reset_value__",
value: "",
metadatas: {
intlLabel: {
id: "components.InputSelect.option.placeholder",
defaultMessage: "Choose here"
},
hidden: true
}
},
{
key: "integer",
value: "integer",
metadatas: {
intlLabel: {
id: getTrad("form.attribute.item.number.type.integer"),
defaultMessage: "integer (ex: 10)"
}
}
},
{
key: "biginteger",
value: "biginteger",
metadatas: {
intlLabel: {
id: getTrad("form.attribute.item.number.type.biginteger"),
defaultMessage: "biginteger (ex: 123456789)"
}
}
},
{
key: "decimal",
value: "decimal",
metadatas: {
intlLabel: {
id: getTrad("form.attribute.item.number.type.decimal"),
defaultMessage: "decimal (ex: 2.22)"
}
}
},
{
key: "float",
value: "float",
metadatas: {
intlLabel: {
id: getTrad("form.attribute.item.number.type.float"),
defaultMessage: "decimal (ex: 3.3333333)"
}
}
}
]
}
]
}
]
};
},
relation() {
return {
sections: [
{
sectionTitle: null,
items: [
{
intlLabel: {
id: "FIXME",
defaultMessage: "FIXME"
},
name: "relation",
size: 12,
type: "relation"
}
]
}
]
};
},
string() {
return {
sections: [
{
sectionTitle: null,
items: [
nameField
]
},
{
sectionTitle: null,
items: [
{
intlLabel: {
id: "global.type",
defaultMessage: "Type"
},
name: "type",
size: 12,
type: "radio-group",
radios: [
{
title: {
id: getTrad("form.attribute.text.option.short-text"),
defaultMessage: "Sort text"
},
description: {
id: getTrad("form.attribute.text.option.short-text.description"),
defaultMessage: "Best for titles, names, links (URL). It also enables exact search on the field."
},
value: "string"
},
{
title: {
id: getTrad("form.attribute.text.option.long-text"),
defaultMessage: "Long text"
},
description: {
id: getTrad("form.attribute.text.option.long-text.description"),
defaultMessage: "Best for descriptions, biography. Exact search is disabled."
},
value: "text"
}
]
}
]
}
]
};
},
text() {
return {
sections: [
{
sectionTitle: null,
items: [
nameField
]
},
{
sectionTitle: null,
items: [
{
intlLabel: {
id: "global.type",
defaultMessage: "Type"
},
name: "type",
size: 12,
type: "radio-group",
radios: [
{
title: {
id: getTrad("form.attribute.text.option.short-text"),
defaultMessage: "Sort text"
},
description: {
id: getTrad("form.attribute.text.option.short-text.description"),
defaultMessage: "Best for titles, names, links (URL). It also enables exact search on the field."
},
value: "string"
},
{
title: {
id: getTrad("form.attribute.text.option.long-text"),
defaultMessage: "Long text"
},
description: {
id: getTrad("form.attribute.text.option.long-text.description"),
defaultMessage: "Best for descriptions, biography. Exact search is disabled."
},
value: "text"
}
]
}
]
}
]
};
},
uid(_data, step, attributes) {
const options2 = attributes.filter(({ type }) => [
"string",
"text"
].includes(type)).map(({ name }) => ({
key: name,
value: name,
metadatas: {
intlLabel: {
id: `${name}.no-override`,
defaultMessage: name
}
}
}));
return {
sections: [
{
sectionTitle: null,
items: [
{
...nameField,
placeholder: {
id: getTrad("modalForm.attribute.form.base.name.placeholder"),
defaultMessage: "e.g. slug, seoUrl, canonicalUrl"
}
},
{
intlLabel: {
id: getTrad("modalForm.attribute.target-field"),
defaultMessage: "Attached field"
},
name: "targetField",
type: "select",
options: [
{
key: "__null_reset_value__",
value: "",
metadatas: {
intlLabel: {
id: "global.none",
defaultMessage: "None"
}
}
},
...options2
]
}
]
}
]
};
}
};
// node_modules/@strapi/content-type-builder/dist/admin/components/FormModal/attributes/form.mjs
var attributesForm = {
advanced: advancedForm,
base: baseForm
};
// node_modules/@strapi/content-type-builder/dist/admin/components/FormModal/attributes/types.mjs
var import_uniq = __toESM(require_uniq(), 1);
// node_modules/@strapi/content-type-builder/dist/admin/utils/toRegressedEnumValue.mjs
var import_slugify = __toESM(require_slugify(), 1);
var toRegressedEnumValue = (value) => {
if (!value) {
return "";
}
return (0, import_slugify.default)(value, {
decamelize: false,
lowercase: false,
separator: "_"
});
};
// node_modules/@strapi/content-type-builder/dist/admin/components/FormModal/attributes/validation/common.mjs
var import_fp = __toESM(require_fp(), 1);
var import_toNumber = __toESM(require_toNumber(), 1);
var NAME_REGEX = /^[A-Za-z][_0-9A-Za-z]*$/;
var alreadyUsedAttributeNames = (usedNames) => {
return {
name: "attributeNameAlreadyUsed",
message: errorsTrads.unique.id,
test(value) {
if (!value) {
return false;
}
const snakeCaseKey = (0, import_fp.snakeCase)(value);
return !usedNames.some((existingKey) => {
return (0, import_fp.snakeCase)(existingKey) === snakeCaseKey;
});
}
};
};
var isNameAllowed = (reservedNames) => {
return {
name: "forbiddenAttributeName",
message: getTrad("error.attributeName.reserved-name"),
test(value) {
if (!value) {
return false;
}
const snakeCaseKey = (0, import_fp.snakeCase)(value);
return !reservedNames.some((existingKey) => {
return (0, import_fp.snakeCase)(existingKey) === snakeCaseKey;
});
}
};
};
var validators = {
default: () => create2().nullable(),
max: () => create3().integer().nullable(),
min: () => create3().integer().when("max", (max, schema) => {
if (max) {
return schema.max(max, getTrad("error.validation.minSupMax"));
}
return schema;
}).nullable(),
maxLength: () => create3().integer().positive(getTrad("error.validation.positive")).nullable(),
minLength: () => create3().integer().min(1).when("maxLength", (maxLength, schema) => {
if (maxLength) {
return schema.max(maxLength, getTrad("error.validation.minSupMax"));
}
return schema;
}).nullable(),
name(usedNames, reservedNames) {
return create2().test(alreadyUsedAttributeNames(usedNames)).test(isNameAllowed(reservedNames)).matches(NAME_REGEX, errorsTrads.regex.id).required(errorsTrads.required.id);
},
required: () => create(),
type: () => create2().required(errorsTrads.required.id),
unique: () => create().nullable()
};
var createTextShape = (usedAttributeNames, reservedNames) => {
const shape = {
name: validators.name(usedAttributeNames, reservedNames),
type: validators.type(),
default: validators.default(),
unique: validators.unique(),
required: validators.required(),
maxLength: validators.maxLength(),
minLength: validators.minLength(),
regex: create2().test({
name: "isValidRegExpPattern",
message: getTrad("error.validation.regex"),
test(value) {
try {
return new RegExp(value || "") !== null;
} catch (e) {
return false;
}
}
}).nullable()
};
return shape;
};
var isMinSuperiorThanMax = () => ({
name: "isMinSuperiorThanMax",
message: getTrad("error.validation.minSupMax"),
test(min) {
if (!min) {
return true;
}
const { max } = this.parent;
if (!max) {
return true;
}
if (Number.isNaN((0, import_toNumber.default)(min))) {
return true;
}
return (0, import_toNumber.default)(max) >= (0, import_toNumber.default)(min);
}
});
// node_modules/@strapi/content-type-builder/dist/admin/components/FormModal/attributes/types.mjs
var attributeTypes = {
date(usedAttributeNames, reservedNames) {
const shape = {
name: validators.name(usedAttributeNames, reservedNames),
type: validators.type()
};
return create4(shape);
},
datetime(usedAttributeNames, reservedNames) {
const shape = {
name: validators.name(usedAttributeNames, reservedNames),
type: validators.type()
};
return create4(shape);
},
time(usedAttributeNames, reservedNames) {
const shape = {
name: validators.name(usedAttributeNames, reservedNames),
type: validators.type()
};
return create4(shape);
},
default(usedAttributeNames, reservedNames) {
const shape = {
name: validators.name(usedAttributeNames, reservedNames),
type: validators.type()
};
return create4(shape);
},
biginteger(usedAttributeNames, reservedNames) {
const shape = {
name: validators.name(usedAttributeNames, reservedNames),
type: validators.type(),
default: create2().nullable().matches(/^-?\d*$/),
unique: validators.unique(),
required: validators.required(),
max: create2().nullable().matches(/^-?\d*$/, errorsTrads.regex.id),
min: create2().nullable().test(isMinSuperiorThanMax()).matches(/^-?\d*$/, errorsTrads.regex.id)
};
return create4(shape);
},
boolean(usedAttributeNames, reservedNames) {
const shape = {
name: validators.name(usedAttributeNames, reservedNames),
default: create().nullable(),
required: validators.required(),
unique: validators.unique()
};
return create4(shape);
},
component(usedAttributeNames, reservedNames) {
const shape = {
name: validators.name(usedAttributeNames, reservedNames),
type: validators.type(),
required: validators.required(),
max: validators.max(),
min: validators.min(),
component: create2().required(errorsTrads.required.id)
};
return create4(shape);
},
decimal(usedAttributeNames, reservedNames) {
const shape = {
name: validators.name(usedAttributeNames, reservedNames),
type: validators.type(),
default: create3(),
required: validators.required(),
max: create3(),
min: create3().test(isMinSuperiorThanMax())
};
return create4(shape);
},
dynamiczone(usedAttributeNames, reservedNames) {
const shape = {
name: validators.name(usedAttributeNames, reservedNames),
type: validators.type(),
required: validators.required(),
max: validators.max(),
min: validators.min()
};
return create4(shape);
},
email(usedAttributeNames, reservedNames) {
const shape = {
name: validators.name(usedAttributeNames, reservedNames),
type: validators.type(),
default: create2().email().nullable(),
unique: validators.unique(),
required: validators.required(),
maxLength: validators.maxLength(),
minLength: validators.minLength()
};
return create4(shape);
},
enumeration(usedAttributeNames, reservedNames) {
const GRAPHQL_ENUM_REGEX = /^[_A-Za-z][_0-9A-Za-z]*$/;
const shape = {
name: create2().test(alreadyUsedAttributeNames(usedAttributeNames)).test(isNameAllowed(reservedNames)).matches(GRAPHQL_ENUM_REGEX, errorsTrads.regex.id).required(errorsTrads.required.id),
type: validators.type(),
default: validators.default(),
unique: validators.unique(),
required: validators.required(),
enum: create5().of(create2()).min(1, errorsTrads.min.id).test({
name: "areEnumValuesUnique",
message: getTrad("error.validation.enum-duplicate"),
test(values) {
if (!values) {
return false;
}
const duplicates = (0, import_uniq.default)(values.map(toRegressedEnumValue).filter((value, index, values2) => values2.indexOf(value) !== index));
return !duplicates.length;
}
}).test({
name: "doesNotHaveEmptyValues",
message: getTrad("error.validation.enum-empty-string"),
test: (values) => {
if (!values) {
return false;
}
return !values.map(toRegressedEnumValue).some((val) => val === "");
}
}).test({
name: "doesMatchRegex",
message: getTrad("error.validation.enum-regex"),
test: (values) => {
if (!values) {
return false;
}
return values.map(toRegressedEnumValue).every((value) => GRAPHQL_ENUM_REGEX.test(value));
}
}),
enumName: create2().nullable()
};
return create4(shape);
},
float(usedAttributeNames, reservedNames) {
const shape = {
name: validators.name(usedAttributeNames, reservedNames),
type: validators.type(),
required: validators.required(),
default: create3(),
max: create3(),
min: create3().test(isMinSuperiorThanMax())
};
return create4(shape);
},
integer(usedAttributeNames, reservedNames) {
const shape = {
name: validators.name(usedAttributeNames, reservedNames),
type: validators.type(),
default: create3().integer(),
unique: validators.unique(),
required: validators.required(),
max: validators.max(),
min: validators.min()
};
return create4(shape);
},
json(usedAttributeNames, reservedNames) {
const shape = {
name: validators.name(usedAttributeNames, reservedNames),
type: validators.type(),
required: validators.required(),
unique: validators.unique()
};
return create4(shape);
},
media(usedAttributeNames, reservedNames) {
const shape = {
name: validators.name(usedAttributeNames, reservedNames),
type: validators.type(),
multiple: create(),
required: validators.required(),
allowedTypes: create5().of(create2().oneOf([
"images",
"videos",
"files",
"audios"
])).min(1).nullable()
};
return create4(shape);
},
password(usedAttributeNames, reservedNames) {
const shape = {
name: validators.name(usedAttributeNames, reservedNames),
type: validators.type(),
default: validators.default(),
unique: validators.unique(),
required: validators.required(),
maxLength: validators.maxLength(),
minLength: validators.minLength()
};
return create4(shape);
},
relation(usedAttributeNames, reservedNames, alreadyTakenTargetAttributes, { initialData, modifiedData }) {
const shape = {
name: validators.name(usedAttributeNames, reservedNames),
target: create2().required(errorsTrads.required.id),
relation: create2().required(),
type: create2().required(),
targetAttribute: create6(() => {
const relationType = getRelationType(modifiedData.relation, modifiedData.targetAttribute);
if (relationType === "oneWay" || relationType === "manyWay") {
return create2().nullable();
}
const schema = create2().test(isNameAllowed(reservedNames));
const initialForbiddenName = [
...alreadyTakenTargetAttributes.map(({ name }) => name),
modifiedData.name
];
const forbiddenTargetAttributeName = initialForbiddenName.filter((val) => val !== initialData.targetAttribute);
return schema.matches(NAME_REGEX, errorsTrads.regex.id).test({
name: "forbiddenTargetAttributeName",
message: getTrad("error.validation.relation.targetAttribute-taken"),
test(value) {
if (!value) {
return false;
}
return !forbiddenTargetAttributeName.includes(value);
}
}).required(errorsTrads.required.id);
})
};
return create4(shape);
},
richtext(usedAttributeNames, reservedNames) {
const shape = {
name: validators.name(usedAttributeNames, reservedNames),
type: validators.type(),
default: validators.default(),
unique: validators.unique(),
required: validators.required(),
maxLength: validators.maxLength(),
minLength: validators.minLength()
};
return create4(shape);
},
blocks(usedAttributeNames, reservedNames) {
const shape = {
name: validators.name(usedAttributeNames, reservedNames),
type: validators.type(),
default: validators.default(),
unique: validators.unique(),
required: validators.required(),
maxLength: validators.maxLength(),
minLength: validators.minLength()
};
return create4(shape);
},
string(usedAttributeNames, reservedNames) {
const shape = createTextShape(usedAttributeNames, reservedNames);
return create4(shape);
},
text(usedAttributeNames, reservedNames) {
const shape = createTextShape(usedAttributeNames, reservedNames);
return create4(shape);
},
uid(usedAttributeNames, reservedNames) {
const shape = createTextShape(usedAttributeNames, reservedNames);
return create4(shape);
}
};
// node_modules/@strapi/content-type-builder/dist/admin/components/FormModal/category/regex.mjs
var CATEGORY_NAME_REGEX = /^[A-Za-z][-_0-9A-Za-z]*$/;
// node_modules/@strapi/content-type-builder/dist/admin/components/FormModal/category/createCategorySchema.mjs
var createCategorySchema = (usedCategoryNames) => {
const shape = {
name: create2().matches(CATEGORY_NAME_REGEX, errorsTrads.regex.id).test({
name: "nameNotAllowed",
message: errorsTrads.unique.id,
test(value) {
if (!value) {
return false;
}
return !usedCategoryNames.includes(value == null ? void 0 : value.toLowerCase());
}
}).required(errorsTrads.required.id)
};
return create4(shape);
};
// node_modules/@strapi/content-type-builder/dist/admin/components/FormModal/category/form.mjs
var categoryForm = {
base: {
sections: [
{
sectionTitle: null,
items: [
{
autoFocus: true,
name: "name",
type: "text",
intlLabel: {
id: "global.name",
defaultMessage: "Name"
},
// validations: {
// required: true,
// },
description: {
id: getTrad("modalForm.editCategory.base.name.description"),
defaultMessage: "No space is allowed for the name of the category"
}
}
]
}
]
}
};
// node_modules/@strapi/content-type-builder/dist/admin/components/FormModal/component/createComponentSchema.mjs
var import_fp2 = __toESM(require_fp(), 1);
var createComponentSchema = (usedComponentNames, reservedNames, category, takenCollectionNames, currentCollectionName) => {
const shape = {
displayName: create2().test({
name: "nameAlreadyUsed",
message: errorsTrads.unique.id,
test(value) {
if (!value) {
return false;
}
const name = createComponentUid(value, category);
const snakeCaseKey = (0, import_fp2.snakeCase)(name);
const snakeCaseCollectionName = (0, import_fp2.snakeCase)(currentCollectionName);
return usedComponentNames.every((reserved) => {
return (0, import_fp2.snakeCase)(reserved) !== snakeCaseKey;
}) && takenCollectionNames.every((collectionName) => (0, import_fp2.snakeCase)(collectionName) !== snakeCaseCollectionName);
}
}).test({
name: "nameNotAllowed",
message: getTrad("error.contentTypeName.reserved-name"),
test(value) {
if (!value) {
return false;
}
const snakeCaseKey = (0, import_fp2.snakeCase)(value);
return reservedNames.every((reserved) => {
return (0, import_fp2.snakeCase)(reserved) !== snakeCaseKey;
});
}
}).required(errorsTrads.required.id),
category: create2().matches(CATEGORY_NAME_REGEX, errorsTrads.regex.id).required(errorsTrads.required.id),
icon: create2()
};
return create4(shape);
};
// node_modules/@strapi/content-type-builder/dist/admin/components/FormModal/contentType/contentTypeForm.mjs
var nameField2 = {
name: "displayName",
type: "text",
intlLabel: {
id: getTrad("contentType.displayName.label"),
defaultMessage: "Display name"
}
};
var contentTypeForm = {
advanced: {
default() {
return {
sections: [
{
items: [
{
intlLabel: {
id: getTrad("contentType.draftAndPublish.label"),
defaultMessage: "Draft & publish"
},
description: {
id: getTrad("contentType.draftAndPublish.description"),
defaultMessage: "Allows writing a draft version of an entry, before it is published"
},
name: "draftAndPublish",
type: "toggle-draft-publish",
validations: {}
}
]
}
]
};
}
},
base: {
create() {
return {
sections: [
{
sectionTitle: null,
items: [
nameField2,
{
description: {
id: getTrad("contentType.apiId-singular.description"),
defaultMessage: "Used to generate the API routes and databases tables/collections"
},
intlLabel: {
id: getTrad("contentType.apiId-singular.label"),
defaultMessage: "API ID (Singular)"
},
name: "singularName",
type: "text-singular"
},
{
type: "pushRight",
size: 6,
intlLabel: {
id: "",
defaultMessage: ""
},
name: "pushRight"
},
{
description: {
id: getTrad("contentType.apiId-plural.description"),
defaultMessage: "Pluralized API ID"
},
intlLabel: {
id: getTrad("contentType.apiId-plural.label"),
defaultMessage: "API ID (Plural)"
},
name: "pluralName",
type: "text-plural"
}
]
}
]
};
},
edit() {
return {
sections: [
{
sectionTitle: null,
items: [
nameField2,
{
disabled: true,
description: {
id: getTrad("contentType.apiId-singular.description"),
defaultMessage: "Used to generate the API routes and databases tables/collections"
},
intlLabel: {
id: getTrad("contentType.apiId-singular.label"),
defaultMessage: "API ID (Singular)"
},
name: "singularName",
type: "text"
},
{
type: "pushRight",
size: 6,
intlLabel: {
id: "",
defaultMessage: ""
},
name: "pushRight"
},
{
disabled: true,
description: {
id: getTrad("contentType.apiId-plural.description"),
defaultMessage: "Pluralized API ID"
},
intlLabel: {
id: getTrad("contentType.apiId-plural.label"),
defaultMessage: "API ID (Plural)"
},
name: "pluralName",
type: "text"
},
{
intlLabel: {
id: "global.type",
defaultMessage: "Type"
},
name: "kind",
type: "content-type-radio-group",
size: 12,
radios: [
{
title: {
id: getTrad("form.button.collection-type.name"),
defaultMessage: "Collection Type"
},
description: {
id: getTrad("form.button.collection-type.description"),
defaultMessage: "Best for multiple instances like articles, products, comments, etc."
},
value: "collectionType"
},
{
title: {
id: getTrad("form.button.single-type.name"),
defaultMessage: "Single Type"
},
description: {
id: getTrad("form.button.single-type.description"),
defaultMessage: "Best for single instance like about us, homepage, etc."
},
value: "singleType"
}
]
}
]
}
]
};
}
}
};
// node_modules/@strapi/content-type-builder/dist/admin/components/FormModal/contentType/createContentTypeSchema.mjs
var import_fp3 = __toESM(require_fp(), 1);
var createContentTypeSchema = ({ usedContentTypeNames = [], reservedModels = [], singularNames = [], pluralNames = [], collectionNames = [] }) => {
const shape = {
displayName: create2().test({
name: "nameAlreadyUsed",
message: errorsTrads.unique.id,
test(value) {
if (!value) {
return false;
}
const name = createUid(value);
const snakeCaseKey = (0, import_fp3.snakeCase)(name);
return !usedContentTypeNames.some((value2) => {
return (0, import_fp3.snakeCase)(value2) === snakeCaseKey;
});
}
}).test({
name: "nameNotAllowed",
message: getTrad("error.contentTypeName.reserved-name"),
test(value) {
if (!value) {
return false;
}
const snakeCaseKey = (0, import_fp3.snakeCase)(value);
return !reservedModels.some((key) => {
return (0, import_fp3.snakeCase)(key) === snakeCaseKey;
});
}
}).required(errorsTrads.required.id),
pluralName: create2().test({
name: "pluralNameAlreadyUsed",
message: errorsTrads.unique.id,
test(value) {
if (!value) {
return false;
}
const snakeCaseKey = (0, import_fp3.snakeCase)(value);
return !pluralNames.some((key) => {
return (0, import_fp3.snakeCase)(key) === snakeCaseKey;
});
}
}).test({
name: "pluralNameAlreadyUsedAsSingular",
message: getTrad("error.contentType.pluralName-equals-singularName"),
test(value) {
if (!value) {
return false;
}
const snakeCaseKey = (0, import_fp3.snakeCase)(value);
return !singularNames.some((key) => {
return (0, import_fp3.snakeCase)(key) === snakeCaseKey;
});
}
}).test({
name: "pluralAndSingularAreUnique",
message: getTrad("error.contentType.pluralName-used"),
test(value, context) {
if (!value) {
return false;
}
return (0, import_fp3.snakeCase)(context.parent.singularName) !== (0, import_fp3.snakeCase)(value);
}
}).test({
name: "pluralNameNotAllowed",
message: getTrad("error.contentTypeName.reserved-name"),
test(value) {
if (!value) {
return false;
}
const snakeCaseKey = (0, import_fp3.snakeCase)(value);
return !reservedModels.some((key) => {
return (0, import_fp3.snakeCase)(key) === snakeCaseKey;
});
}
}).test({
name: "pluralNameNotAlreadyUsedInCollectionName",
message: getTrad("error.contentType.pluralName-equals-collectionName"),
test(value) {
if (!value) {
return false;
}
const snakeCaseKey = (0, import_fp3.snakeCase)(value);
return !collectionNames.some((key) => {
return (0, import_fp3.snakeCase)(key) === snakeCaseKey;
});
}
}).required(errorsTrads.required.id),
singularName: create2().test({
name: "singularNameAlreadyUsed",
message: errorsTrads.unique.id,
test(value) {
if (!value) {
return false;
}
const snakeCaseKey = (0, import_fp3.snakeCase)(value);
return !singularNames.some((key) => {
return (0, import_fp3.snakeCase)(key) === snakeCaseKey;
});
}
}).test({
name: "singularNameAlreadyUsedAsPlural",
message: getTrad("error.contentType.singularName-equals-pluralName"),
test(value) {
if (!value) {
return false;
}
const snakeCaseKey = (0, import_fp3.snakeCase)(value);
return !pluralNames.some((key) => {
return (0, import_fp3.snakeCase)(key) === snakeCaseKey;
});
}
}).test({
name: "pluralAndSingularAreUnique",
message: getTrad("error.contentType.singularName-used"),
test(value, context) {
if (!value) {
return false;
}
return (0, import_fp3.snakeCase)(context.parent.pluralName) !== (0, import_fp3.snakeCase)(value);
}
}).test({
name: "singularNameNotAllowed",
message: getTrad("error.contentTypeName.reserved-name"),
test(value) {
if (!value) {
return false;
}
const snakeCaseKey = (0, import_fp3.snakeCase)(value);
return !reservedModels.some((key) => {
return (0, import_fp3.snakeCase)(key) === snakeCaseKey;
});
}
}).required(errorsTrads.required.id),
draftAndPublish: create(),
kind: create2().oneOf([
"singleType",
"collectionType"
])
};
return create4(shape);
};
// node_modules/@strapi/content-type-builder/dist/admin/components/FormModal/dynamiczoneForm.mjs
var dynamiczoneForm = {
advanced: {
default() {
return {
sections: componentForm.advanced()
};
}
},
base: {
createComponent() {
return {
sections: [
{
sectionTitle: null,
items: [
componentField
]
},
...componentForm.base("componentToCreate.")
]
};
},
default() {
return {
sections: [
{
sectionTitle: null,
items: [
componentField
]
},
{
sectionTitle: null,
items: [
{
type: "pushRight",
size: 6,
intlLabel: {
id: "",
defaultMessage: ""
},
name: "pushRight"
},
{
name: "components",
type: "select-components",
intlLabel: {
id: getTrad("modalForm.attributes.select-components"),
defaultMessage: "Select the components"
},
isMultiple: true
}
]
}
]
};
}
}
};
// node_modules/@strapi/content-type-builder/dist/admin/components/FormModal/forms/utils/addItemsToFormSection.mjs
var addItemsToFormSection = (formTypeOptions, sections) => {
formTypeOptions.forEach((item) => {
var _a;
if (!("sectionTitle" in item)) {
(_a = sections[0].items) == null ? void 0 : _a.push(item);
return;
}
sections.push(item);
});
};
// node_modules/@strapi/content-type-builder/dist/admin/components/FormModal/forms/utils/createCollectionName.mjs
var import_fp4 = __toESM(require_fp(), 1);
var import_pluralize3 = __toESM(require_pluralize(), 1);
var createComponentCollectionName = (name, category) => {
return `components_${(0, import_fp4.snakeCase)(category)}_${(0, import_pluralize3.default)((0, import_fp4.snakeCase)(name))}`;
};
// node_modules/@strapi/content-type-builder/dist/admin/components/FormModal/forms/utils/getUsedAttributeNames.mjs
var getUsedAttributeNames = (attributes, schemaData) => {
return attributes.filter(({ name }) => {
return name !== schemaData.initialData.name;
}).map(({ name }) => name);
};
// node_modules/@strapi/content-type-builder/dist/admin/components/FormModal/forms/forms.mjs
var forms = {
customField: {
schema({ schemaAttributes, attributeType, customFieldValidator, reservedNames, schemaData, ctbFormsAPI }) {
const usedAttributeNames = getUsedAttributeNames(schemaAttributes, schemaData);
let attributeShape;
if (attributeType === "relation") {
attributeShape = attributeTypes[attributeType](usedAttributeNames, reservedNames.attributes, [], {
initialData: {},
modifiedData: {}
});
} else {
attributeShape = attributeTypes[attributeType](usedAttributeNames, reservedNames.attributes);
}
return ctbFormsAPI.makeCustomFieldValidator(attributeShape, customFieldValidator, usedAttributeNames, reservedNames.attributes, schemaData);
},
form: {
base({ customField }) {
var _a;
const sections = [
{
sectionTitle: null,
items: [
nameField
]
}
];
if ((_a = customField.options) == null ? void 0 : _a.base) {
addItemsToFormSection(customField.options.base, sections);
}
return {
sections
};
},
advanced({ customField, data, step, extensions, ...rest }) {
var _a;
const sections = [
{
sectionTitle: null,
items: []
}
];
const injectedInputs = extensions.getAdvancedForm([
"attribute",
customField.type
], {
data,
type: customField.type,
step,
...rest
});
if ((_a = customField.options) == null ? void 0 : _a.advanced) {
addItemsToFormSection(customField.options.advanced, sections);
}
if (injectedInputs) {
const extendedSettings = {
sectionTitle: {
id: getTrad("modalForm.custom-fields.advanced.settings.extended"),
defaultMessage: "Extended settings"
},
items: injectedInputs
};
sections.push(extendedSettings);
}
return {
sections
};
}
}
},
attribute: {
schema(currentSchema, attributeType, reservedNames, alreadyTakenTargetContentTypeAttributes, options2, extensions) {
var _a;
const attributes = ((_a = currentSchema == null ? void 0 : currentSchema.schema) == null ? void 0 : _a.attributes) ?? [];
const usedAttributeNames = getUsedAttributeNames(attributes, options2);
try {
const attributeShape = attributeTypes[attributeType](usedAttributeNames, reservedNames.attributes, alreadyTakenTargetContentTypeAttributes, options2);
return extensions.makeValidator([
"attribute",
attributeType
], attributeShape, usedAttributeNames, reservedNames.attributes, alreadyTakenTargetContentTypeAttributes, options2);
} catch (err) {
console.error("Error yup build schema", err);
return attributeTypes.default(usedAttributeNames, reservedNames.attributes);
}
},
form: {
advanced({ data, type, step, extensions, ...rest }) {
try {
const baseForm2 = attributesForm.advanced[type](data, step).sections;
const itemsToAdd = extensions.getAdvancedForm([
"attribute",
type
], {
data,
type,
step,
...rest
});
const sections = baseForm2.reduce((acc, current) => {
if (current.sectionTitle === null) {
acc.push(current);
} else {
acc.push({
...current,
items: [
...current.items,
...itemsToAdd
]
});
}
return acc;
}, []);
return {
sections
};
} catch (err) {
console.error(err);
return {
sections: []
};
}
},
base({ data, type, step, attributes }) {
try {
return attributesForm.base[type](data, step, attributes);
} catch (err) {
return commonBaseForm;
}
}
}
},
contentType: {
schema(alreadyTakenNames, isEditing, ctUid, reservedNames, extensions, contentTypes) {
const singularNames = Object.values(contentTypes).map((contentType) => {
return contentType.schema.singularName;
});
const pluralNames = Object.values(contentTypes).map((contentType) => {
var _a;
return ((_a = contentType == null ? void 0 : contentType.schema) == null ? void 0 : _a.pluralName) ?? "";
});
const takenNames = isEditing ? alreadyTakenNames.filter((uid) => uid !== ctUid) : alreadyTakenNames;
const takenSingularNames = isEditing ? singularNames.filter((singName) => {
const { schema } = contentTypes[ctUid];
return schema.singularName !== singName;
}) : singularNames;
const takenPluralNames = isEditing ? pluralNames.filter((pluralName) => {
const { schema } = contentTypes[ctUid];
return schema.pluralName !== pluralName;
}) : pluralNames;
const collectionNames = Object.values(contentTypes).map((contentType) => {
var _a;
return ((_a = contentType == null ? void 0 : contentType.schema) == null ? void 0 : _a.collectionName) ?? "";
});
const takenCollectionNames = isEditing ? collectionNames.filter((collectionName) => {
const { schema } = contentTypes[ctUid];
const currentCollectionName = schema.collectionName;
return collectionName !== currentCollectionName;
}) : collectionNames;
const contentTypeShape = createContentTypeSchema({
usedContentTypeNames: takenNames,
reservedModels: reservedNames.models,
singularNames: takenSingularNames,
pluralNames: takenPluralNames,
collectionNames: takenCollectionNames
});
return extensions.makeValidator([
"contentType"
], contentTypeShape, takenNames, reservedNames.models, takenSingularNames, takenPluralNames);
},
form: {
base({ actionType }) {
if (actionType === "create") {
return contentTypeForm.base.create();
}
return contentTypeForm.base.edit();
},
advanced({ extensions }) {
const baseForm2 = contentTypeForm.advanced.default().sections.map((section) => section.items).flat();
const itemsToAdd = extensions.getAdvancedForm([
"contentType"
]);
return {
sections: [
{
items: [
...baseForm2,
...itemsToAdd
]
}
]
};
}
}
},
component: {
schema(alreadyTakenAttributes, componentCategory, reservedNames, isEditing = false, components, componentDisplayName, compoUid = null) {
const takenNames = isEditing ? alreadyTakenAttributes.filter((uid) => uid !== compoUid) : alreadyTakenAttributes;
const collectionNames = Object.values(components).map((component) => {
var _a;
return (_a = component == null ? void 0 : component.schema) == null ? void 0 : _a.collectionName;
});
const currentCollectionName = createComponentCollectionName(componentDisplayName, componentCategory);
const takenCollectionNames = isEditing ? collectionNames.filter((collectionName) => collectionName !== currentCollectionName) : collectionNames;
return createComponentSchema(takenNames, reservedNames.models, componentCategory, takenCollectionNames, currentCollectionName);
},
form: {
advanced() {
return {
sections: componentForm.advanced()
};
},
base() {
return {
sections: componentForm.base()
};
}
}
},
addComponentToDynamicZone: {
form: {
advanced() {
return dynamiczoneForm.advanced.default();
},
base({ data }) {
const isCreatingComponent = (data == null ? void 0 : data.createComponent) ?? false;
if (isCreatingComponent) {
return dynamiczoneForm.base.createComponent();
}
return dynamiczoneForm.base.default();
}
}
},
editCategory: {
schema(allCategories, initialData) {
const allowedCategories = allCategories.filter((cat) => cat !== initialData.name).map((cat) => cat.toLowerCase());
return createCategorySchema(allowedCategories);
},
form: {
advanced: () => ({
sections: []
}),
base() {
return categoryForm.base;
}
}
}
};
// node_modules/@strapi/content-type-builder/dist/admin/components/FormModal/selectors.mjs
var formModalDomain = () => (state) => state[`${pluginId}_formModal`] || initialState2;
var makeSelectFormModal = () => createSelector(formModalDomain(), (substate) => {
return substate;
});
// node_modules/@strapi/content-type-builder/dist/admin/components/FormModal/utils/canEditContentType.mjs
var import_get3 = __toESM(require_get(), 1);
var canEditContentType = (data, modifiedData) => {
const kind = (0, import_get3.default)(data, [
"contentType",
"schema",
"kind"
], "");
if (kind === "singleType" || kind === modifiedData.kind) {
return true;
}
const contentTypeAttributes = (0, import_get3.default)(data, [
"contentType",
"schema",
"attributes"
], []);
const relationAttributes = contentTypeAttributes.filter(({ relation, type, targetAttribute }) => {
const relationType = getRelationType(relation, targetAttribute);
return type === "relation" && ![
"oneWay",
"manyWay"
].includes(relationType || "");
});
return relationAttributes.length === 0;
};
// node_modules/@strapi/content-type-builder/dist/admin/components/FormModal/utils/getAttributesToDisplay.mjs
var getAttributesToDisplay = (dataTarget = "", targetUid, nestedComponents) => {
const defaultAttributes = [
"text",
"boolean",
"blocks",
"json",
"number",
"email",
"date",
"password",
"media",
"enumeration",
"relation",
"richtext"
];
const isPickingAttributeForAContentType = dataTarget === "contentType";
if (isPickingAttributeForAContentType) {
return [
// Insert UID before the last item (richtext)
[
...defaultAttributes.slice(0, -1),
"uid",
...defaultAttributes.slice(-1)
],
[
"component",
"dynamiczone"
]
];
}
if (dataTarget) {
const componentDepth = getComponentDepth(targetUid, nestedComponents);
const isNestedInAnotherComponent = componentDepth >= MAX_COMPONENT_DEPTH;
const canAddComponentInAnotherComponent = !isPickingAttributeForAContentType && !isNestedInAnotherComponent;
if (canAddComponentInAnotherComponent) {
return [
defaultAttributes,
[
"component"
]
];
}
}
return [
defaultAttributes
];
};
// node_modules/@strapi/content-type-builder/dist/admin/components/FormModal/utils/getFormInputNames.mjs
var getFormInputNames = (form) => form.reduce((acc, current) => {
const names = current.items.reduce((acc2, current2) => {
if (current2.name) {
acc2.push(current2.name);
}
return acc2;
}, []);
return [
...acc,
...names
];
}, []);
// node_modules/@strapi/content-type-builder/dist/admin/components/FormModal/FormModal.mjs
var FormComponent = dt.form`
overflow: auto;
`;
var FormModal = () => {
const { onCloseModal, onNavigateToChooseAttributeModal, onNavigateToAddCompoToDZModal, onNavigateToCreateComponentStep2, actionType, attributeName, attributeType, customFieldUid, categoryName, dynamicZoneTarget, forTarget, modalType, isOpen, kind, step, targetUid, showBackLink, activeTab, setActiveTab } = useFormModalNavigation();
const getPlugin = useStrapiApp("FormModal", (state) => state.getPlugin);
const getCustomField = useStrapiApp("FormModal", (state) => state.customFields.get);
const customField = getCustomField(customFieldUid);
const formModalSelector = React2.useMemo(makeSelectFormModal, []);
const dispatch = useDispatch();
const { toggleNotification } = useNotification();
const reducerState = useSelector((state) => formModalSelector(state), shallowEqual);
const navigate = useNavigate();
const { trackUsage } = useTracking();
const { formatMessage } = useIntl();
const ctbPlugin = getPlugin(pluginId);
const ctbFormsAPI = ctbPlugin == null ? void 0 : ctbPlugin.apis.forms;
const inputsFromPlugins = ctbFormsAPI.components.inputs;
const { addAttribute, addCustomFieldAttribute, addCreatedComponentToDynamicZone, allComponentsCategories, changeDynamicZoneComponents, contentTypes, components, createSchema, deleteCategory, deleteData, editCategory, editCustomFieldAttribute, submitData, modifiedData: allDataSchema, nestedComponents, setModifiedData, sortedContentTypesList, updateSchema, reservedNames } = useDataManager();
const { componentToCreate, formErrors, initialData, isCreatingComponentWhileAddingAField, modifiedData } = reducerState;
const pathToSchema = forTarget === "contentType" || forTarget === "component" ? [
forTarget
] : [
forTarget,
targetUid
];
React2.useEffect(() => {
if (isOpen) {
const collectionTypesForRelation = sortedContentTypesList.filter(isAllowedContentTypesForRelations);
if (modalType === "editCategory") {
setModifiedData();
}
if (actionType === "edit" && modalType === "attribute" && forTarget === "contentType") {
trackUsage("willEditFieldOfContentType");
}
const pathToAttributes = [
...pathToSchema,
"schema",
"attributes"
];
const foundDynamicZoneTarget = findAttribute((0, import_get4.default)(allDataSchema, pathToAttributes, []), dynamicZoneTarget) || null;
if (modalType === "editCategory" && actionType === "edit") {
dispatch(actions2.setDataToEdit({
data: {
name: categoryName
}
}));
}
if (modalType === "contentType" && actionType === "create") {
dispatch(actions2.setDataToEdit({
data: {
draftAndPublish: true
}
}));
}
if (modalType === "contentType" && actionType === "edit") {
const { displayName, draftAndPublish, kind: kind2, pluginOptions, pluralName, singularName } = (0, import_get4.default)(allDataSchema, [
...pathToSchema,
"schema"
], {
displayName: null,
pluginOptions: {},
singularName: null,
pluralName: null
});
dispatch(actions2.setDataToEdit({
data: {
displayName,
draftAndPublish,
kind: kind2,
pluginOptions,
pluralName,
singularName
}
}));
}
if (modalType === "component" && actionType === "edit") {
const data = (0, import_get4.default)(allDataSchema, pathToSchema, {});
dispatch(actions2.setDataToEdit({
data: {
displayName: data.schema.displayName,
category: data.category,
icon: data.schema.icon
}
}));
}
if (modalType === "addComponentToDynamicZone" && actionType === "edit") {
const attributeToEdit = {
...foundDynamicZoneTarget,
// We filter the available components
// Because this modal is only used for adding components
components: [],
name: dynamicZoneTarget,
createComponent: false,
componentToCreate: {
type: "component"
}
};
dispatch(actions2.setDynamicZoneDataSchema({
attributeToEdit
}));
}
if (attributeType) {
const attributeToEditNotFormatted = findAttribute((0, import_get4.default)(allDataSchema, pathToAttributes, []), attributeName);
const attributeToEdit = {
...attributeToEditNotFormatted,
name: attributeName
};
if (attributeType === "component" && actionType === "edit") {
if (!attributeToEdit.repeatable) {
(0, import_set.default)(attributeToEdit, "repeatable", false);
}
}
if (modalType === "customField") {
if (actionType === "edit") {
dispatch(actions2.setCustomFieldDataSchema({
isEditing: true,
modifiedDataToSetForEditing: attributeToEdit
}));
} else {
dispatch(actions2.setCustomFieldDataSchema({
customField,
isEditing: false,
modifiedDataToSetForEditing: attributeToEdit
}));
}
} else {
dispatch(actions2.setAttributeDataSchema({
attributeType,
nameToSetForRelation: (0, import_get4.default)(collectionTypesForRelation, [
"0",
"title"
], "error"),
targetUid: (0, import_get4.default)(collectionTypesForRelation, [
"0",
"uid"
], "error"),
isEditing: actionType === "edit",
modifiedDataToSetForEditing: attributeToEdit,
step
}));
}
}
} else {
dispatch(actions2.resetProps());
}
}, [
actionType,
attributeName,
attributeType,
categoryName,
dynamicZoneTarget,
forTarget,
isOpen,
modalType
]);
const isCreatingContentType = modalType === "contentType";
const isCreatingComponent = modalType === "component";
const isCreatingAttribute = modalType === "attribute";
const isCreatingCustomFieldAttribute = modalType === "customField";
const isComponentAttribute = attributeType === "component" && isCreatingAttribute;
const isCreating = actionType === "create";
const isCreatingComponentFromAView = (0, import_get4.default)(modifiedData, "createComponent", false) || isCreatingComponentWhileAddingAField;
const isInFirstComponentStep = step === "1";
const isEditingCategory = modalType === "editCategory";
const isPickingAttribute = modalType === "chooseAttribute";
const uid = createUid(modifiedData.displayName || "");
const attributes = (0, import_get4.default)(allDataSchema, [
...pathToSchema,
"schema",
"attributes"
], null);
const checkFormValidity = async () => {
var _a;
let schema;
const dataToValidate = isCreatingComponentFromAView && step === "1" ? (0, import_get4.default)(modifiedData, "componentToCreate", {}) : modifiedData;
if (isCreatingContentType) {
schema = forms.contentType.schema(
Object.keys(contentTypes),
actionType === "edit",
// currentUID
(0, import_get4.default)(allDataSchema, [
...pathToSchema,
"uid"
], null),
reservedNames,
ctbFormsAPI,
contentTypes
);
} else if (isCreatingComponent) {
schema = forms.component.schema(Object.keys(components), modifiedData.category || "", reservedNames, actionType === "edit", components, modifiedData.displayName || "", (0, import_get4.default)(allDataSchema, [
...pathToSchema,
"uid"
], null));
} else if (isCreatingCustomFieldAttribute) {
schema = forms.customField.schema({
schemaAttributes: (0, import_get4.default)(allDataSchema, [
...pathToSchema,
"schema",
"attributes"
], []),
attributeType: customField.type,
reservedNames,
schemaData: {
modifiedData,
initialData
},
ctbFormsAPI,
customFieldValidator: (_a = customField.options) == null ? void 0 : _a.validator
});
} else if (isComponentAttribute && isCreatingComponentFromAView && isInFirstComponentStep) {
schema = forms.component.schema(Object.keys(components), (0, import_get4.default)(modifiedData, "componentToCreate.category", ""), reservedNames, actionType === "edit", components, modifiedData.componentToCreate.displayName || "");
} else if (isCreatingAttribute && !isInFirstComponentStep) {
const type = attributeType === "relation" ? "relation" : modifiedData.type;
let alreadyTakenTargetContentTypeAttributes = [];
if (type === "relation") {
const targetContentTypeUID = (0, import_get4.default)(modifiedData, [
"target"
], null);
const targetContentTypeAttributes = (0, import_get4.default)(contentTypes, [
targetContentTypeUID,
"schema",
"attributes"
], []);
alreadyTakenTargetContentTypeAttributes = targetContentTypeAttributes.filter(({ name: attrName }) => {
if (actionType !== "edit") {
return true;
}
return attrName !== initialData.targetAttribute;
});
}
schema = forms.attribute.schema((0, import_get4.default)(allDataSchema, pathToSchema, {}), type, reservedNames, alreadyTakenTargetContentTypeAttributes, {
modifiedData,
initialData
}, ctbFormsAPI);
} else if (isEditingCategory) {
schema = forms.editCategory.schema(allComponentsCategories, initialData);
} else {
if (isInFirstComponentStep && isCreatingComponentFromAView) {
schema = forms.component.schema(Object.keys(components), (0, import_get4.default)(modifiedData, "componentToCreate.category", ""), reservedNames, actionType === "edit", components, modifiedData.componentToCreate.displayName || "");
} else {
return;
}
}
await schema.validate(dataToValidate, {
abortEarly: false
});
};
const handleChange = React2.useCallback(({ target: { name, value, type, ...rest } }) => {
const namesThatCanResetToNullValue = [
"enumName",
"max",
"min",
"maxLength",
"minLength",
"regex",
"default"
];
let val;
if (namesThatCanResetToNullValue.includes(name) && value === "") {
val = null;
} else {
val = value;
}
const clonedErrors = Object.assign({}, formErrors);
if (name === "max") {
delete clonedErrors.min;
}
if (name === "maxLength") {
delete clonedErrors.minLength;
}
delete clonedErrors[name];
dispatch(actions2.setErrors({
errors: clonedErrors
}));
dispatch(actions2.onChange({
keys: name.split("."),
value: val
}));
}, [
dispatch,
formErrors
]);
const handleSubmit = async (e, shouldContinue = isCreating) => {
e.preventDefault();
try {
await checkFormValidity();
sendButtonAddMoreFieldEvent(shouldContinue);
const ctTargetUid = forTarget === "components" ? targetUid : uid;
if (isCreatingContentType) {
if (isCreating) {
createSchema({
...modifiedData,
kind
}, modalType, uid);
navigate({
pathname: `/plugins/${pluginId}/content-types/${uid}`
});
onNavigateToChooseAttributeModal({
forTarget,
targetUid: ctTargetUid
});
} else {
if (canEditContentType(allDataSchema, modifiedData)) {
onCloseModal();
await submitData(modifiedData);
} else {
toggleNotification({
type: "danger",
message: formatMessage({
id: "notification.contentType.relations.conflict"
})
});
}
return;
}
} else if (modalType === "component") {
if (isCreating) {
const componentUid = createComponentUid(modifiedData.displayName, modifiedData.category);
const { category, ...rest } = modifiedData;
createSchema(rest, "component", componentUid, category);
navigate({
pathname: `/plugins/${pluginId}/component-categories/${category}/${componentUid}`
});
onNavigateToChooseAttributeModal({
forTarget,
targetUid: componentUid
});
} else {
updateSchema(modifiedData, modalType, targetUid);
onCloseModal();
return;
}
} else if (isEditingCategory) {
if ((0, import_toLower.default)(initialData.name) === (0, import_toLower.default)(modifiedData.name)) {
onCloseModal();
return;
}
editCategory(initialData.name, modifiedData);
return;
} else if (isCreatingCustomFieldAttribute) {
const customFieldAttributeUpdate = {
attributeToSet: {
...modifiedData,
customField: customFieldUid
},
forTarget,
targetUid,
initialAttribute: initialData
};
if (actionType === "edit") {
editCustomFieldAttribute(customFieldAttributeUpdate);
} else {
addCustomFieldAttribute(customFieldAttributeUpdate);
}
if (shouldContinue) {
onNavigateToChooseAttributeModal({
forTarget,
targetUid: ctTargetUid
});
} else {
onCloseModal();
}
return;
} else if (isCreatingAttribute && !isCreatingComponentFromAView) {
const isDynamicZoneAttribute = attributeType === "dynamiczone";
if (isDynamicZoneAttribute) {
addAttribute(modifiedData, forTarget, targetUid, actionType === "edit", initialData);
if (isCreating) {
dispatch(actions2.resetPropsAndSetTheFormForAddingACompoToADz());
setActiveTab("basic");
onNavigateToAddCompoToDZModal({
dynamicZoneTarget: modifiedData.name
});
} else {
onCloseModal();
}
return;
}
if (!isComponentAttribute) {
addAttribute(modifiedData, forTarget, targetUid, actionType === "edit", initialData);
if (shouldContinue) {
onNavigateToChooseAttributeModal({
forTarget,
targetUid: ctTargetUid
});
} else {
onCloseModal();
}
return;
}
if (isInFirstComponentStep) {
onNavigateToCreateComponentStep2();
dispatch(actions2.resetPropsAndSetFormForAddingAnExistingCompo({}));
return;
}
addAttribute(
modifiedData,
forTarget,
targetUid,
// This change the dispatched type
// either 'editAttribute' or 'addAttribute' in the DataManagerProvider
actionType === "edit",
// This is for the edit part
initialData,
// Passing true will add the component to the components object
// This way we can add fields to the added component (if it wasn't there already)
true
);
if (shouldContinue) {
onNavigateToChooseAttributeModal({
forTarget,
targetUid
});
} else {
onCloseModal();
}
} else if (isCreatingAttribute && isCreatingComponentFromAView) {
if (isInFirstComponentStep) {
trackUsage("willCreateComponentFromAttributesModal");
dispatch(actions2.resetPropsAndSaveCurrentData({}));
onNavigateToCreateComponentStep2();
return;
}
const { category, type, ...rest } = componentToCreate;
const componentUid = createComponentUid(componentToCreate.displayName, category);
createSchema(
// Component data
rest,
// Type will always be component
// It will dispatch the CREATE_COMPONENT_SCHEMA action
// So the component will be added in the main components object
// This might not be needed if we don't allow navigation between entries while editing
type,
componentUid,
category,
// This will add the created component in the datamanager modifiedData components key
// Like explained above we will be able to modify the created component structure
isCreatingComponentFromAView
);
addAttribute(modifiedData, forTarget, targetUid, false);
dispatch(actions2.resetProps());
if (shouldContinue) {
onNavigateToChooseAttributeModal({
forTarget: "components",
targetUid: componentUid
});
} else {
onCloseModal();
}
return;
} else {
if (isInFirstComponentStep) {
if (isCreatingComponentFromAView) {
const { category, type, ...rest } = modifiedData.componentToCreate;
const componentUid = createComponentUid(modifiedData.componentToCreate.displayName, category);
createSchema(
// Component data
rest,
// Type will always be component
// It will dispatch the CREATE_COMPONENT_SCHEMA action
// So the component will be added in the main components object
// This might not be needed if we don't allow navigation between entries while editing
type,
componentUid,
category,
// This will add the created component in the datamanager modifiedData components key
// Like explained above we will be able to modify the created component structure
isCreatingComponentFromAView
);
addCreatedComponentToDynamicZone(dynamicZoneTarget, [
componentUid
]);
onNavigateToChooseAttributeModal({
forTarget: "components",
targetUid: componentUid
});
} else {
changeDynamicZoneComponents(dynamicZoneTarget, modifiedData.components);
onCloseModal();
}
} else {
console.error("This case is not handled");
}
return;
}
dispatch(actions2.resetProps());
} catch (err) {
const errors = getYupInnerErrors(err);
dispatch(actions2.setErrors({
errors
}));
}
};
const handleConfirmClose = () => {
const confirm = window.confirm(formatMessage({
id: "window.confirm.close-modal.file",
defaultMessage: "Are you sure? Your changes will be lost."
}));
if (confirm) {
onCloseModal();
dispatch(actions2.resetProps());
}
};
const handleClosed = () => {
if (!(0, import_isEqual3.default)(modifiedData, initialData)) {
handleConfirmClose();
} else {
onCloseModal();
dispatch(actions2.resetProps());
}
};
const sendAdvancedTabEvent = (tab) => {
if (tab !== "advanced") {
return;
}
if (isCreatingContentType) {
trackUsage("didSelectContentTypeSettings");
return;
}
if (forTarget === "contentType") {
trackUsage("didSelectContentTypeFieldSettings");
}
};
const sendButtonAddMoreFieldEvent = (shouldContinue) => {
if (modalType === "attribute" && forTarget === "contentType" && attributeType !== "dynamiczone" && shouldContinue) {
trackUsage("willAddMoreFieldToContentType");
}
};
const shouldDisableAdvancedTab = () => {
if (modalType === "editCategory") {
return true;
}
if (modalType === "component") {
return true;
}
if ((0, import_has.default)(modifiedData, "createComponent")) {
return true;
}
return false;
};
const displayedAttributes = getAttributesToDisplay(
forTarget,
targetUid,
// We need the nested components so we know when to remove the component option
nestedComponents
);
if (!modalType) {
return null;
}
const formToDisplay = (0, import_get4.default)(forms, [
modalType,
"form"
], {
advanced: () => ({
sections: []
}),
base: () => ({
sections: []
})
});
const isAddingAComponentToAnotherComponent = forTarget === "components" || forTarget === "component";
const genericInputProps = {
customInputs: {
"allowed-types-select": AllowedTypesSelect,
"boolean-radio-group": BooleanRadioGroup,
"checkbox-with-number-field": CheckboxWithNumberField,
"icon-picker": IconPicker,
"content-type-radio-group": ContentTypeRadioGroup,
"radio-group": CustomRadioGroup,
relation: Relation,
"select-category": SelectCategory,
"select-component": SelectComponent,
"select-components": SelectComponents,
"select-default-boolean": BooleanDefaultValueSelect,
"select-number": SelectNumber,
"select-date": SelectDateType,
"toggle-draft-publish": DraftAndPublishToggle,
"text-plural": PluralName,
"text-singular": SingularName,
"textarea-enum": TextareaEnum,
...inputsFromPlugins
},
componentToCreate,
dynamicZoneTarget,
formErrors,
isAddingAComponentToAnotherComponent,
isCreatingComponentWhileAddingAField,
mainBoxHeader: (0, import_get4.default)(allDataSchema, [
...pathToSchema,
"schema",
"displayName"
], ""),
modifiedData,
naturePickerType: forTarget,
isCreating,
targetUid,
forTarget
};
const advancedForm2 = formToDisplay.advanced({
data: modifiedData,
type: attributeType,
step,
actionType,
attributes,
extensions: ctbFormsAPI,
forTarget,
contentTypeSchema: allDataSchema.contentType || {},
customField
}).sections;
const baseForm2 = formToDisplay.base({
data: modifiedData,
type: attributeType,
step,
actionType,
attributes,
extensions: ctbFormsAPI,
forTarget,
contentTypeSchema: allDataSchema.contentType || {},
customField
}).sections;
const baseFormInputNames = getFormInputNames(baseForm2);
const advancedFormInputNames = getFormInputNames(advancedForm2);
const doesBaseFormHasError = Object.keys(formErrors).some((key) => baseFormInputNames.includes(key));
const doesAdvancedFormHasError = Object.keys(formErrors).some((key) => advancedFormInputNames.includes(key));
const schemaKind = (0, import_get4.default)(contentTypes, [
targetUid,
"schema",
"kind"
]);
const checkIsEditingFieldName = () => actionType === "edit" && attributes.every(({ name }) => name !== (modifiedData == null ? void 0 : modifiedData.name));
const handleClickFinish = () => {
if (checkIsEditingFieldName()) {
trackUsage("didEditFieldNameOnContentType");
}
};
return (0, import_jsx_runtime33.jsx)(Modal.Root, {
open: isOpen,
onOpenChange: handleClosed,
children: (0, import_jsx_runtime33.jsxs)(Modal.Content, {
children: [
(0, import_jsx_runtime33.jsx)(FormModalHeader, {
actionType,
attributeName,
categoryName,
contentTypeKind: kind,
dynamicZoneTarget,
modalType,
forTarget,
targetUid,
attributeType,
customFieldUid,
showBackLink
}),
isPickingAttribute && (0, import_jsx_runtime33.jsx)(AttributeOptions, {
attributes: displayedAttributes,
forTarget,
kind: schemaKind || "collectionType"
}),
!isPickingAttribute && (0, import_jsx_runtime33.jsxs)(FormComponent, {
onSubmit: handleSubmit,
children: [
(0, import_jsx_runtime33.jsx)(Modal.Body, {
children: (0, import_jsx_runtime33.jsxs)(Tabs.Root, {
variant: "simple",
value: activeTab,
onValueChange: (value) => {
setActiveTab(value);
sendAdvancedTabEvent(value);
},
hasError: doesBaseFormHasError ? "basic" : doesAdvancedFormHasError ? "advanced" : void 0,
children: [
(0, import_jsx_runtime33.jsxs)(Flex, {
justifyContent: "space-between",
children: [
(0, import_jsx_runtime33.jsx)(FormModalSubHeader, {
actionType,
forTarget,
kind,
step,
modalType,
attributeType,
attributeName,
customField
}),
(0, import_jsx_runtime33.jsxs)(Tabs.List, {
children: [
(0, import_jsx_runtime33.jsx)(Tabs.Trigger, {
value: "basic",
children: formatMessage({
id: getTrad("popUpForm.navContainer.base"),
defaultMessage: "Basic settings"
})
}),
(0, import_jsx_runtime33.jsx)(Tabs.Trigger, {
value: "advanced",
disabled: shouldDisableAdvancedTab(),
children: formatMessage({
id: getTrad("popUpForm.navContainer.advanced"),
defaultMessage: "Advanced settings"
})
})
]
})
]
}),
(0, import_jsx_runtime33.jsx)(Divider, {
marginBottom: 6
}),
(0, import_jsx_runtime33.jsx)(Tabs.Content, {
value: "basic",
children: (0, import_jsx_runtime33.jsx)(Flex, {
direction: "column",
alignItems: "stretch",
gap: 6,
children: (0, import_jsx_runtime33.jsx)(TabForm, {
form: baseForm2,
formErrors,
genericInputProps,
modifiedData,
onChange: handleChange
})
})
}),
(0, import_jsx_runtime33.jsx)(Tabs.Content, {
value: "advanced",
children: (0, import_jsx_runtime33.jsx)(Flex, {
direction: "column",
alignItems: "stretch",
gap: 6,
children: (0, import_jsx_runtime33.jsx)(TabForm, {
form: advancedForm2,
formErrors,
genericInputProps,
modifiedData,
onChange: handleChange
})
})
})
]
})
}),
(0, import_jsx_runtime33.jsxs)(Modal.Footer, {
children: [
(0, import_jsx_runtime33.jsx)(Button, {
variant: "tertiary",
onClick: handleClosed,
children: formatMessage({
id: "app.components.Button.cancel",
defaultMessage: "Cancel"
})
}),
(0, import_jsx_runtime33.jsx)(FormModalEndActions, {
deleteCategory,
deleteContentType: deleteData,
deleteComponent: deleteData,
categoryName: initialData.name,
isAttributeModal: modalType === "attribute",
isCustomFieldModal: modalType === "customField",
isComponentToDzModal: modalType === "addComponentToDynamicZone",
isComponentAttribute: attributeType === "component",
isComponentModal: modalType === "component",
isContentTypeModal: modalType === "contentType",
isCreatingComponent: actionType === "create",
isCreatingDz: actionType === "create",
isCreatingComponentAttribute: modifiedData.createComponent || false,
isCreatingComponentInDz: modifiedData.createComponent || false,
isCreatingComponentWhileAddingAField,
isCreatingContentType: actionType === "create",
isEditingAttribute: actionType === "edit",
isDzAttribute: attributeType === "dynamiczone",
isEditingCategory: modalType === "editCategory",
isInFirstComponentStep: step === "1",
onSubmitAddComponentAttribute: handleSubmit,
onSubmitAddComponentToDz: handleSubmit,
onSubmitCreateComponent: handleSubmit,
onSubmitCreateContentType: handleSubmit,
onSubmitCreateDz: handleSubmit,
onSubmitEditAttribute: handleSubmit,
onSubmitEditCategory: handleSubmit,
onSubmitEditComponent: handleSubmit,
onSubmitEditContentType: handleSubmit,
onSubmitEditCustomFieldAttribute: handleSubmit,
onSubmitEditDz: handleSubmit,
onClickFinish: handleClickFinish
})
]
})
]
})
]
})
});
};
// node_modules/@strapi/content-type-builder/dist/admin/components/DataManagerProvider/selectors.mjs
var dataManagerProviderDomain = () => (state) => state[`${pluginId}_dataManagerProvider`] || initialState;
var makeSelectDataManagerProvider = () => createSelector(dataManagerProviderDomain(), (substate) => {
return substate;
});
// node_modules/@strapi/content-type-builder/dist/admin/components/DataManagerProvider/utils/cleanData.mjs
var import_camelCase = __toESM(require_camelCase(), 1);
var import_get5 = __toESM(require_get(), 1);
var import_isEqual4 = __toESM(require_isEqual(), 1);
var import_omit = __toESM(require_omit(), 1);
var import_sortBy = __toESM(require_sortBy(), 1);
var getCreatedAndModifiedComponents = (allComponents, initialComponents) => {
const componentUIDsToReturn = Object.keys(allComponents).filter((compoUid) => {
const currentCompo = (0, import_get5.default)(allComponents, compoUid, {});
const initialCompo = (0, import_get5.default)(initialComponents, compoUid, {});
const hasComponentBeenCreated = (0, import_get5.default)(currentCompo, [
"isTemporary"
], false);
const hasComponentBeenModified = !(0, import_isEqual4.default)(currentCompo, initialCompo);
return hasComponentBeenCreated || hasComponentBeenModified;
});
return makeUnique(componentUIDsToReturn);
};
var formatComponent = (component, mainDataUID) => {
const formattedAttributes = formatAttributes((0, import_get5.default)(component, "schema.attributes", []), mainDataUID);
const compoUID = (0, import_get5.default)(component, "isTemporary", false) ? {
tmpUID: component.uid
} : {
uid: component.uid
};
const formattedComponent = Object.assign(
{},
compoUID,
{
category: component.category
},
// Omit the attributes since we want to format them
(0, import_omit.default)(component.schema, "attributes"),
// Add the formatted attributes
{
attributes: formattedAttributes
}
);
return formattedComponent;
};
var formatMainDataType = (data, isComponent = false) => {
const mainDataUID = (0, import_get5.default)(data, "uid", null);
const formattedAttributes = formatAttributes((0, import_get5.default)(data, "schema.attributes", []), mainDataUID);
const initObj = isComponent ? {
category: (0, import_get5.default)(data, "category", "")
} : {};
const formattedContentType = Object.assign(initObj, (0, import_omit.default)(data.schema, "attributes"), {
attributes: formattedAttributes
});
delete formattedContentType.uid;
delete formattedContentType.isTemporary;
delete formattedContentType.visible;
delete formattedContentType.restrictRelationsTo;
return formattedContentType;
};
var formatAttributes = (attributes, mainDataUID) => {
return attributes.reduce((acc, { name, ...rest }) => {
const currentAttribute = rest;
const hasARelationWithMainDataUID = currentAttribute.target === mainDataUID;
const isRelationType = currentAttribute.type === "relation";
const currentTargetAttribute = (0, import_get5.default)(currentAttribute, "targetAttribute", null);
if (!hasARelationWithMainDataUID) {
if (isRelationType) {
const relationAttr = Object.assign({}, currentAttribute, {
targetAttribute: formatRelationTargetAttribute(currentTargetAttribute)
});
acc[name] = removeNullKeys(relationAttr);
} else {
acc[name] = removeNullKeys(currentAttribute);
}
}
if (hasARelationWithMainDataUID) {
const target = currentAttribute.target;
const formattedRelationAttribute = Object.assign({}, currentAttribute, {
target,
targetAttribute: formatRelationTargetAttribute(currentTargetAttribute)
});
acc[name] = removeNullKeys(formattedRelationAttribute);
}
if (currentAttribute.customField) {
const customFieldAttribute = {
...currentAttribute,
type: "customField"
};
acc[name] = removeNullKeys(customFieldAttribute);
}
return acc;
}, {});
};
var formatRelationTargetAttribute = (targetAttribute) => targetAttribute === "-" ? null : targetAttribute;
var removeNullKeys = (obj) => Object.keys(obj).reduce((acc, current) => {
if (obj[current] !== null && current !== "plugin") {
acc[current] = obj[current];
}
return acc;
}, {});
var getComponentsToPost = (allComponents, initialComponents, mainDataUID) => {
const componentsToFormat = getCreatedAndModifiedComponents(allComponents, initialComponents);
const formattedComponents = componentsToFormat.map((compoUID) => {
const currentCompo = (0, import_get5.default)(allComponents, compoUID, {});
const formattedComponent = formatComponent(currentCompo, mainDataUID);
return formattedComponent;
});
return formattedComponents;
};
var sortContentType = (types) => (0, import_sortBy.default)(Object.keys(types).map((uid) => ({
visible: types[uid].schema.visible,
name: uid,
title: types[uid].schema.displayName,
plugin: types[uid].plugin || null,
uid,
to: `/plugins/${pluginId}/content-types/${uid}`,
kind: types[uid].schema.kind,
restrictRelationsTo: types[uid].schema.restrictRelationsTo
})).filter((obj) => obj !== null), (obj) => (0, import_camelCase.default)(obj.title));
// node_modules/@strapi/content-type-builder/dist/admin/components/DataManagerProvider/utils/createDataObject.mjs
var createDataObject = (arr) => arr.reduce((acc, current) => {
acc[current.uid] = current;
return acc;
}, {});
// node_modules/@strapi/content-type-builder/dist/admin/components/DataManagerProvider/utils/createModifiedDataSchema.mjs
var import_get6 = __toESM(require_get(), 1);
var createModifiedDataSchema = (contentTypeSchema, retrievedComponents, allComponentsSchema, isInContentTypeView) => {
const componentsAssociatedToContentType = retrievedComponents.reduce((acc, current) => {
const componentSchema = (0, import_get6.default)(allComponentsSchema, current, {});
acc[current] = componentSchema;
return acc;
}, {});
const keyName = isInContentTypeView ? "contentType" : "component";
const schema = {
[keyName]: contentTypeSchema,
components: componentsAssociatedToContentType
};
return schema;
};
// node_modules/@strapi/content-type-builder/dist/admin/components/DataManagerProvider/utils/formatSchemas.mjs
var formatSchemas = (schemas) => {
return Object.keys(schemas).reduce((acc, current) => {
const schema = schemas[current].schema;
acc[current] = {
...schemas[current],
schema: {
...schema,
attributes: toAttributesArray(schema.attributes)
}
};
return acc;
}, {});
};
var toAttributesArray = (attributes) => {
return Object.keys(attributes).reduce((acc, current) => {
acc.push({
...attributes[current],
name: current
});
return acc;
}, []);
};
// node_modules/@strapi/content-type-builder/dist/admin/components/DataManagerProvider/utils/retrieveComponentsThatHaveComponents.mjs
var import_get7 = __toESM(require_get(), 1);
var retrieveComponentsThatHaveComponents = (allComponents) => {
const componentsThatHaveNestedComponents = Object.keys(allComponents).reduce((acc, current) => {
const currentComponent = (0, import_get7.default)(allComponents, [
current
]);
const compoWithChildren = getComponentWithChildComponents(currentComponent);
if (compoWithChildren.childComponents.length > 0) {
acc.push(compoWithChildren);
}
return acc;
}, []);
return componentsThatHaveNestedComponents;
};
var getComponentWithChildComponents = (component) => {
const attributes = (0, import_get7.default)(component, [
"schema",
"attributes"
], []);
return {
component: component.uid,
childComponents: attributes.filter((attribute) => {
const { type } = attribute;
return type === "component";
}).map((attribute) => {
return {
component: attribute.component
};
})
};
};
// node_modules/@strapi/content-type-builder/dist/admin/components/DataManagerProvider/utils/retrieveNestedComponents.mjs
var retrieveNestedComponents = (appComponents) => {
const nestedComponents = Object.keys(appComponents).reduce((acc, current) => {
var _a, _b;
const componentAttributes = ((_b = (_a = appComponents == null ? void 0 : appComponents[current]) == null ? void 0 : _a.schema) == null ? void 0 : _b.attributes) ?? [];
const currentComponentNestedCompos = getComponentsNestedWithinComponent(componentAttributes, current);
return [
...acc,
...currentComponentNestedCompos
];
}, []);
return mergeComponents(nestedComponents);
};
var getComponentsNestedWithinComponent = (componentAttributes, parentCompoUid) => {
return componentAttributes.reduce((acc, current) => {
const { type, component } = current;
if (type === "component") {
acc.push({
component,
parentCompoUid
});
}
return acc;
}, []);
};
var mergeComponents = (originalComponents) => {
const componentMap = /* @__PURE__ */ new Map();
originalComponents.forEach(({ component, parentCompoUid }) => {
if (!componentMap.has(component)) {
componentMap.set(component, /* @__PURE__ */ new Set());
}
componentMap.get(component).add(parentCompoUid);
});
const transformedComponents = Array.from(componentMap.entries()).map(([component, parentCompoUidSet]) => ({
component,
uidsOfAllParents: Array.from(parentCompoUidSet)
}));
return transformedComponents;
};
// node_modules/@strapi/content-type-builder/dist/admin/components/DataManagerProvider/utils/retrieveSpecificInfoFromComponents.mjs
var import_get8 = __toESM(require_get(), 1);
var retrieveSpecificInfoFromComponents = (allComponents, keysToRetrieve) => {
const allData = Object.keys(allComponents).map((compo) => {
return (0, import_get8.default)(allComponents, [
compo,
...keysToRetrieve
], "");
});
return makeUnique(allData);
};
// node_modules/@strapi/content-type-builder/dist/admin/components/DataManagerProvider/utils/serverRestartWatcher.mjs
var SERVER_HAS_NOT_BEEN_KILLED_MESSAGE = "did-not-kill-server";
var SERVER_HAS_BEEN_KILLED_MESSAGE = "server is down";
function serverRestartWatcher(response, didShutDownServer) {
return new Promise((resolve) => {
fetch(`${window.strapi.backendURL}/_health`, {
method: "HEAD",
mode: "no-cors",
headers: {
"Content-Type": "application/json",
"Keep-Alive": "false"
}
}).then((res) => {
if (res.status >= 400) {
throw new Error(SERVER_HAS_BEEN_KILLED_MESSAGE);
}
if (!didShutDownServer) {
throw new Error(SERVER_HAS_NOT_BEEN_KILLED_MESSAGE);
}
resolve(response);
}).catch((err) => {
setTimeout(() => {
return serverRestartWatcher(response, err.message !== SERVER_HAS_NOT_BEEN_KILLED_MESSAGE).then(resolve);
}, 100);
});
});
}
// node_modules/@strapi/content-type-builder/dist/admin/components/DataManagerProvider/utils/validateSchema.mjs
var validateSchema = (schema) => {
const dynamicZoneAttributes = Object.values(schema.attributes).filter((attribute) => attribute.type === "dynamiczone");
return dynamicZoneAttributes.every((attribute) => Array.isArray(attribute.components) && attribute.components.length > 0);
};
// node_modules/@strapi/content-type-builder/dist/admin/components/DataManagerProvider/DataManagerProvider.mjs
var DataManagerProvider = ({ children }) => {
const dispatch = useDispatch();
const { components, contentTypes, isLoading, initialData, modifiedData, reservedNames } = useSelector(makeSelectDataManagerProvider());
const { toggleNotification } = useNotification();
const { lockAppWithAutoreload, unlockAppWithAutoreload } = useAutoReloadOverlayBlocker();
const { setCurrentStep, setStepState } = useGuidedTour("DataManagerProvider", (state) => state);
const getPlugin = useStrapiApp("DataManagerProvider", (state) => state.getPlugin);
const plugin = getPlugin(pluginId);
const autoReload = useAppInfo("DataManagerProvider", (state) => state.autoReload);
const { formatMessage } = useIntl();
const { trackUsage } = useTracking();
const refetchPermissions = useAuth("DataManagerProvider", (state) => state.refetchPermissions);
const { pathname } = useLocation();
const { onCloseModal } = useFormModalNavigation();
const contentTypeMatch = useMatch(`/plugins/${pluginId}/content-types/:uid`);
const componentMatch = useMatch(`/plugins/${pluginId}/component-categories/:categoryUid/:componentUid`);
const fetchClient = useFetchClient();
const { put, post, del } = fetchClient;
const isInDevelopmentMode = autoReload;
const isInContentTypeView = contentTypeMatch !== null;
const firstKeyToMainSchema = isInContentTypeView ? "contentType" : "component";
const currentUid = isInContentTypeView ? (0, import_get9.default)(contentTypeMatch, "params.uid", null) : (0, import_get9.default)(componentMatch, "params.componentUid", null);
const getDataRef = (0, import_react10.useRef)();
const endPoint = isInContentTypeView ? "content-types" : "components";
getDataRef.current = async () => {
try {
const [componentsResponse, contentTypesResponse, reservedNamesResponse] = await Promise.all([
fetchClient.get(`/content-type-builder/components`),
fetchClient.get(`/content-type-builder/content-types`),
fetchClient.get(`/content-type-builder/reserved-names`)
]);
const components2 = createDataObject(componentsResponse.data.data);
const formattedComponents = formatSchemas(components2);
const contentTypes2 = createDataObject(contentTypesResponse.data.data);
const formattedContentTypes = formatSchemas(contentTypes2);
dispatch(actions.init({
components: formattedComponents,
contentTypes: formattedContentTypes,
reservedNames: reservedNamesResponse.data
}));
} catch (err) {
console.error({
err
});
toggleNotification({
type: "danger",
message: formatMessage({
id: "notification.error",
defaultMessage: "An error occurred"
})
});
}
};
(0, import_react10.useEffect)(() => {
getDataRef.current();
return () => {
dispatch(actions.reloadPlugin());
};
}, []);
(0, import_react10.useEffect)(() => {
if (!isLoading && currentUid) {
setModifiedData();
}
}, [
isLoading,
pathname,
currentUid
]);
(0, import_react10.useEffect)(() => {
if (!autoReload) {
toggleNotification({
type: "info",
message: formatMessage({
id: getTrad("notification.info.autoreaload-disable")
})
});
}
}, [
autoReload,
toggleNotification,
formatMessage
]);
const addAttribute = (attributeToSet, forTarget, targetUid, isEditing = false, initialAttribute, shouldAddComponentToData = false) => {
if (isEditing) {
const payload = {
attributeToSet,
forTarget,
targetUid,
// NOTE: using ! here to avoid changing the code logic before bigger refactorings
initialAttribute,
shouldAddComponentToData
};
dispatch(actions.editAttribute(payload));
} else {
const payload = {
attributeToSet,
forTarget,
targetUid,
shouldAddComponentToData
};
dispatch(actions.addAttribute(payload));
}
};
const addCustomFieldAttribute = ({ attributeToSet, forTarget, targetUid }) => {
dispatch(actions.addCustomFieldAttribute({
attributeToSet,
forTarget,
targetUid
}));
};
const editCustomFieldAttribute = ({ attributeToSet, forTarget, targetUid, initialAttribute }) => {
dispatch(actions.editCustomFieldAttribute({
attributeToSet,
forTarget,
targetUid,
initialAttribute
}));
};
const addCreatedComponentToDynamicZone = (dynamicZoneTarget, componentsToAdd) => {
dispatch(actions.addCreatedComponentToDynamicZone({
dynamicZoneTarget,
componentsToAdd
}));
};
const createSchema = (data, schemaType, uid, componentCategory, shouldAddComponentToData = false) => {
if (schemaType === "contentType") {
const payload = {
data,
uid
};
dispatch(actions.createSchema(payload));
} else {
const payload = {
data,
uid,
componentCategory,
shouldAddComponentToData
};
dispatch(actions.createComponentSchema(payload));
}
};
const changeDynamicZoneComponents = (dynamicZoneTarget, newComponents) => {
dispatch(actions.changeDynamicZoneComponents({
dynamicZoneTarget,
newComponents
}));
};
const removeAttribute = (mainDataKey, attributeToRemoveName, componentUid = "") => {
if (mainDataKey === "components") {
dispatch(actions.removeFieldFromDisplayedComponent({
attributeToRemoveName,
componentUid
}));
} else {
if (mainDataKey === "contentType") {
trackUsage("willDeleteFieldOfContentType");
}
dispatch(actions.removeField({
mainDataKey,
attributeToRemoveName
}));
}
};
const deleteCategory = async (categoryUid) => {
try {
const requestURL = `/${pluginId}/component-categories/${categoryUid}`;
const userConfirm = window.confirm(formatMessage({
id: getTrad("popUpWarning.bodyMessage.category.delete")
}));
onCloseModal();
if (userConfirm) {
lockAppWithAutoreload == null ? void 0 : lockAppWithAutoreload();
await del(requestURL);
await serverRestartWatcher(true);
unlockAppWithAutoreload == null ? void 0 : unlockAppWithAutoreload();
await updatePermissions();
}
} catch (err) {
console.error({
err
});
toggleNotification({
type: "danger",
message: formatMessage({
id: "notification.error",
defaultMessage: "An error occurred"
})
});
} finally {
unlockAppWithAutoreload == null ? void 0 : unlockAppWithAutoreload();
}
};
const deleteData = async () => {
try {
const requestURL = `/${pluginId}/${endPoint}/${currentUid}`;
const isTemporary = (0, import_get9.default)(modifiedData, [
firstKeyToMainSchema,
"isTemporary"
], false);
const userConfirm = window.confirm(formatMessage({
id: getTrad(`popUpWarning.bodyMessage.${isInContentTypeView ? "contentType" : "component"}.delete`)
}));
onCloseModal();
if (userConfirm) {
if (isTemporary) {
dispatch(actions.deleteNotSavedType());
return;
}
lockAppWithAutoreload == null ? void 0 : lockAppWithAutoreload();
await del(requestURL);
await serverRestartWatcher(true);
await (unlockAppWithAutoreload == null ? void 0 : unlockAppWithAutoreload());
await getDataRef.current();
await updatePermissions();
}
} catch (err) {
console.error({
err
});
toggleNotification({
type: "danger",
message: formatMessage({
id: "notification.error",
defaultMessage: "An error occurred"
})
});
} finally {
unlockAppWithAutoreload == null ? void 0 : unlockAppWithAutoreload();
}
};
const editCategory = async (categoryUid, body) => {
try {
const requestURL = `/${pluginId}/component-categories/${categoryUid}`;
onCloseModal();
lockAppWithAutoreload == null ? void 0 : lockAppWithAutoreload();
await put(requestURL, body);
await serverRestartWatcher(true);
await (unlockAppWithAutoreload == null ? void 0 : unlockAppWithAutoreload());
await updatePermissions();
} catch (err) {
console.error({
err
});
toggleNotification({
type: "danger",
message: formatMessage({
id: "notification.error",
defaultMessage: "An error occurred"
})
});
} finally {
unlockAppWithAutoreload == null ? void 0 : unlockAppWithAutoreload();
}
};
const getAllComponentsThatHaveAComponentInTheirAttributes = () => {
const allCompos = Object.assign({}, components, modifiedData.components);
if (!isInContentTypeView) {
const currentEditedCompo = (0, import_get9.default)(modifiedData, "component", {});
(0, import_set2.default)(allCompos, (0, import_get9.default)(currentEditedCompo, [
"uid"
], ""), currentEditedCompo);
}
const composWithCompos = retrieveComponentsThatHaveComponents(allCompos);
return composWithCompos;
};
const getAllNestedComponents = () => {
const appNestedCompo = retrieveNestedComponents(components);
return appNestedCompo;
};
const removeComponentFromDynamicZone = (dzName, componentToRemoveIndex) => {
dispatch(actions.removeComponentFromDynamicZone({
dzName,
componentToRemoveIndex
}));
};
const setModifiedData = () => {
const currentSchemas = isInContentTypeView ? contentTypes : components;
const schemaToSet = (0, import_get9.default)(currentSchemas, currentUid ?? "", {
schema: {
attributes: []
}
});
const retrievedComponents = retrieveComponentsFromSchema(schemaToSet.schema.attributes, components);
const newSchemaToSet = createModifiedDataSchema(schemaToSet, retrievedComponents, components, isInContentTypeView);
const hasJustCreatedSchema = (0, import_get9.default)(schemaToSet, "isTemporary", false) && (0, import_size.default)((0, import_get9.default)(schemaToSet, "schema.attributes", [])) === 0;
dispatch(actions.setModifiedData({
schemaToSet: newSchemaToSet,
hasJustCreatedSchema
}));
};
const shouldRedirect = (0, import_react10.useMemo)(() => {
const dataSet = isInContentTypeView ? contentTypes : components;
if (currentUid === "create-content-type") {
return false;
}
return !Object.keys(dataSet).includes(currentUid || "") && !isLoading;
}, [
components,
contentTypes,
currentUid,
isInContentTypeView,
isLoading
]);
const redirectEndpoint = (0, import_react10.useMemo)(() => {
const allowedEndpoints = Object.keys(contentTypes).filter((uid) => (0, import_get9.default)(contentTypes, [
uid,
"schema",
"visible"
], true)).sort();
return (0, import_get9.default)(allowedEndpoints, "0", "create-content-type");
}, [
contentTypes
]);
if (shouldRedirect) {
return (0, import_jsx_runtime34.jsx)(Navigate, {
to: `/plugins/${pluginId}/content-types/${redirectEndpoint}`
});
}
const submitData = async (additionalContentTypeData) => {
var _a, _b, _c;
try {
const isCreating = (0, import_get9.default)(modifiedData, [
firstKeyToMainSchema,
"isTemporary"
], false);
const body = {
components: getComponentsToPost(modifiedData.components, components, currentUid)
};
if (isInContentTypeView) {
const PluginForms = (_a = plugin == null ? void 0 : plugin.apis) == null ? void 0 : _a.forms;
const contentType = PluginForms.mutateContentTypeSchema({
...formatMainDataType(modifiedData.contentType),
...additionalContentTypeData
}, initialData.contentType);
const isValidSchema = validateSchema(contentType);
if (!isValidSchema) {
toggleNotification({
type: "danger",
message: formatMessage({
id: getTrad("notification.error.dynamiczone-min.validation"),
defaultMessage: "At least one component is required in a dynamic zone to be able to save a content type"
})
});
return;
}
body.contentType = contentType;
trackUsage("willSaveContentType");
} else {
body.component = formatMainDataType(modifiedData.component, true);
trackUsage("willSaveComponent");
}
lockAppWithAutoreload == null ? void 0 : lockAppWithAutoreload();
const baseURL = `/${pluginId}/${endPoint}`;
const requestURL = isCreating ? baseURL : `${baseURL}/${currentUid}`;
if (isCreating) {
await post(requestURL, body);
} else {
await put(requestURL, body);
}
if (isCreating && (((_b = initialData.contentType) == null ? void 0 : _b.schema.kind) === "collectionType" || ((_c = initialData.contentType) == null ? void 0 : _c.schema.kind) === "singleType")) {
setStepState("contentTypeBuilder.success", true);
trackUsage("didCreateGuidedTourCollectionType");
setCurrentStep(null);
}
if (isInContentTypeView) {
trackUsage("didSaveContentType");
const oldName = (0, import_get9.default)(body, [
"contentType",
"schema",
"name"
], "");
const newName = (0, import_get9.default)(initialData, [
"contentType",
"schema",
"name"
], "");
if (!isCreating && oldName !== newName) {
trackUsage("didEditNameOfContentType");
}
} else {
trackUsage("didSaveComponent");
}
await serverRestartWatcher(true);
unlockAppWithAutoreload == null ? void 0 : unlockAppWithAutoreload();
await getDataRef.current();
await updatePermissions();
} catch (err) {
if (!isInContentTypeView) {
trackUsage("didNotSaveComponent");
}
console.error({
err: err.response
});
toggleNotification({
type: "danger",
message: formatMessage({
id: "notification.error",
defaultMessage: "An error occurred"
})
});
} finally {
unlockAppWithAutoreload == null ? void 0 : unlockAppWithAutoreload();
}
};
const updatePermissions = async () => {
await refetchPermissions();
};
const updateSchema = (data, schemaType, componentUID) => {
dispatch(actions.updateSchema({
data,
schemaType,
uid: componentUID
}));
};
return (0, import_jsx_runtime34.jsxs)(DataManagerContext.Provider, {
value: {
addAttribute,
addCustomFieldAttribute,
addCreatedComponentToDynamicZone,
allComponentsCategories: retrieveSpecificInfoFromComponents(components, [
"category"
]),
changeDynamicZoneComponents,
components,
componentsGroupedByCategory: (0, import_groupBy.default)(components, "category"),
componentsThatHaveOtherComponentInTheirAttributes: getAllComponentsThatHaveAComponentInTheirAttributes(),
contentTypes,
createSchema,
deleteCategory,
deleteData,
editCategory,
editCustomFieldAttribute,
isInDevelopmentMode,
initialData,
isInContentTypeView,
modifiedData,
nestedComponents: getAllNestedComponents(),
removeAttribute,
removeComponentFromDynamicZone,
reservedNames,
setModifiedData,
sortedContentTypesList: sortContentType(contentTypes),
submitData,
updateSchema
},
children: [
children,
isInDevelopmentMode && (0, import_jsx_runtime34.jsx)(FormModal, {})
]
});
};
var DataManagerProvider$1 = (0, import_react10.memo)(DataManagerProvider);
// node_modules/@strapi/content-type-builder/dist/admin/components/FormModalNavigationProvider/FormModalNavigationProvider.mjs
var import_jsx_runtime35 = __toESM(require_jsx_runtime(), 1);
var React3 = __toESM(require_react(), 1);
// node_modules/@strapi/content-type-builder/dist/admin/components/FormModalNavigationProvider/constants.mjs
var INITIAL_STATE_DATA = {
actionType: null,
attributeName: null,
attributeType: null,
categoryName: null,
dynamicZoneTarget: null,
forTarget: null,
modalType: null,
isOpen: false,
showBackLink: false,
kind: null,
step: null,
targetUid: null,
customFieldUid: null,
activeTab: "basic"
};
// node_modules/@strapi/content-type-builder/dist/admin/components/FormModalNavigationProvider/FormModalNavigationProvider.mjs
var FormModalNavigationProvider = ({ children }) => {
const [state, setFormModalNavigationState] = React3.useState(INITIAL_STATE_DATA);
const { trackUsage } = useTracking();
const onClickSelectCustomField = ({ attributeType, customFieldUid }) => {
setFormModalNavigationState((prevState) => {
return {
...prevState,
actionType: "create",
modalType: "customField",
attributeType,
customFieldUid,
activeTab: "basic"
};
});
};
const onClickSelectField = ({ attributeType, step }) => {
if (state.forTarget === "contentType") {
trackUsage("didSelectContentTypeFieldType", {
type: attributeType
});
}
setFormModalNavigationState((prevState) => {
return {
...prevState,
actionType: "create",
modalType: "attribute",
step,
attributeType,
showBackLink: true,
activeTab: "basic"
};
});
};
const onOpenModalAddComponentsToDZ = ({ dynamicZoneTarget, targetUid }) => {
setFormModalNavigationState((prevState) => {
return {
...prevState,
dynamicZoneTarget,
targetUid,
modalType: "addComponentToDynamicZone",
forTarget: "contentType",
step: "1",
actionType: "edit",
isOpen: true
};
});
};
const onOpenModalAddField = ({ forTarget, targetUid }) => {
setFormModalNavigationState((prevState) => {
return {
...prevState,
actionType: "create",
forTarget,
targetUid,
modalType: "chooseAttribute",
isOpen: true,
showBackLink: false,
activeTab: "basic"
};
});
};
const onOpenModalCreateSchema = (nextState) => {
setFormModalNavigationState((prevState) => {
return {
...prevState,
...nextState,
isOpen: true,
activeTab: "basic"
};
});
};
const onOpenModalEditCategory = (categoryName) => {
setFormModalNavigationState((prevState) => {
return {
...prevState,
categoryName,
actionType: "edit",
modalType: "editCategory",
isOpen: true,
activeTab: "basic"
};
});
};
const onOpenModalEditCustomField = ({ forTarget, targetUid, attributeName, attributeType, customFieldUid }) => {
setFormModalNavigationState((prevState) => {
return {
...prevState,
modalType: "customField",
customFieldUid,
actionType: "edit",
forTarget,
targetUid,
attributeName,
attributeType,
isOpen: true,
activeTab: "basic"
};
});
};
const onOpenModalEditField = ({ forTarget, targetUid, attributeName, attributeType, step }) => {
setFormModalNavigationState((prevState) => {
return {
...prevState,
modalType: "attribute",
actionType: "edit",
forTarget,
targetUid,
attributeName,
attributeType,
step,
isOpen: true
};
});
};
const onOpenModalEditSchema = ({ modalType, forTarget, targetUid, kind }) => {
setFormModalNavigationState((prevState) => {
return {
...prevState,
modalType,
actionType: "edit",
forTarget,
targetUid,
kind,
isOpen: true,
activeTab: "basic"
};
});
};
const onCloseModal = () => {
setFormModalNavigationState(INITIAL_STATE_DATA);
};
const onNavigateToChooseAttributeModal = ({ forTarget, targetUid }) => {
setFormModalNavigationState((prev) => {
return {
...prev,
forTarget,
targetUid,
modalType: "chooseAttribute",
activeTab: "basic"
};
});
};
const onNavigateToCreateComponentStep2 = () => {
setFormModalNavigationState((prev) => {
return {
...prev,
attributeType: "component",
modalType: "attribute",
step: "2",
activeTab: "basic"
};
});
};
const onNavigateToAddCompoToDZModal = ({ dynamicZoneTarget }) => {
setFormModalNavigationState((prev) => {
return {
...prev,
dynamicZoneTarget,
modalType: "addComponentToDynamicZone",
actionType: "create",
step: "1",
attributeType: null,
attributeName: null,
activeTab: "basic"
};
});
};
const setActiveTab = (value) => {
setFormModalNavigationState((prev) => {
return {
...prev,
activeTab: value
};
});
};
return (0, import_jsx_runtime35.jsx)(FormModalNavigationContext.Provider, {
value: {
...state,
onClickSelectField,
onClickSelectCustomField,
onCloseModal,
onNavigateToChooseAttributeModal,
onNavigateToAddCompoToDZModal,
onOpenModalAddComponentsToDZ,
onNavigateToCreateComponentStep2,
onOpenModalAddField,
onOpenModalCreateSchema,
onOpenModalEditCategory,
onOpenModalEditField,
onOpenModalEditCustomField,
onOpenModalEditSchema,
setFormModalNavigationState,
setActiveTab
},
children
});
};
// node_modules/@strapi/content-type-builder/dist/admin/pages/App/index.mjs
var ListView = (0, import_react11.lazy)(() => import("./ListView-M4MMRMSH.js"));
var App = () => {
const { formatMessage } = useIntl();
const title = formatMessage({
id: `${pluginId}.plugin.name`,
defaultMessage: "Content Types Builder"
});
const startSection = useGuidedTour("App", (state) => state.startSection);
const startSectionRef = (0, import_react11.useRef)(startSection);
(0, import_react11.useEffect)(() => {
if (startSectionRef.current) {
startSectionRef.current("contentTypeBuilder");
}
}, []);
return (0, import_jsx_runtime36.jsxs)(Page.Protect, {
permissions: PERMISSIONS.main,
children: [
(0, import_jsx_runtime36.jsx)(Page.Title, {
children: title
}),
(0, import_jsx_runtime36.jsx)(AutoReloadOverlayBlockerProvider, {
children: (0, import_jsx_runtime36.jsx)(FormModalNavigationProvider, {
children: (0, import_jsx_runtime36.jsx)(DataManagerProvider$1, {
children: (0, import_jsx_runtime36.jsx)(Layouts.Root, {
sideNav: (0, import_jsx_runtime36.jsx)(ContentTypeBuilderNav, {}),
children: (0, import_jsx_runtime36.jsx)(import_react11.Suspense, {
fallback: (0, import_jsx_runtime36.jsx)(Page.Loading, {}),
children: (0, import_jsx_runtime36.jsxs)(Routes, {
children: [
(0, import_jsx_runtime36.jsx)(Route, {
path: "content-types/:uid",
element: (0, import_jsx_runtime36.jsx)(ListView, {})
}),
(0, import_jsx_runtime36.jsx)(Route, {
path: `component-categories/:categoryUid/:componentUid`,
element: (0, import_jsx_runtime36.jsx)(ListView, {})
})
]
})
})
})
})
})
})
]
});
};
export {
App as default
};
/*! Bundled license information:
lodash/lodash.min.js:
(**
* @license
* Lodash <https://lodash.com/>
* Copyright OpenJS Foundation and other contributors <https://openjsf.org/>
* Released under MIT license <https://lodash.com/license>
* Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
* Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
*)
*/
//# sourceMappingURL=App-H27Y6V6P.js.map