UNPKG

adminjs

Version:
1,354 lines (1,178 loc) 4.61 MB
var AdminJS = (function (styledComponents, React$1, require$$3, reactRouterDom, reactRouter, DesignSystem, require$$1, require$$0$1) { 'use strict'; function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; } function _interopNamespace(e) { if (e && e.__esModule) return e; var n = Object.create(null); if (e) { Object.keys(e).forEach(function (k) { if (k !== 'default') { var d = Object.getOwnPropertyDescriptor(e, k); Object.defineProperty(n, k, d.get ? d : { enumerable: true, get: function () { return e[k]; } }); } }); } n.default = e; return Object.freeze(n); } function _mergeNamespaces(n, m) { m.forEach(function (e) { e && typeof e !== 'string' && !Array.isArray(e) && Object.keys(e).forEach(function (k) { if (k !== 'default' && !(k in n)) { var d = Object.getOwnPropertyDescriptor(e, k); Object.defineProperty(n, k, d.get ? d : { enumerable: true, get: function () { return e[k]; } }); } }); }); return Object.freeze(n); } var React__default$1 = /*#__PURE__*/_interopDefault(React$1); var require$$3__default = /*#__PURE__*/_interopDefault(require$$3); var DesignSystem__namespace = /*#__PURE__*/_interopNamespace(DesignSystem); var require$$1__default = /*#__PURE__*/_interopDefault(require$$1); var require$$0__default = /*#__PURE__*/_interopDefault(require$$0$1); function _typeof$3(obj) { "@babel/helpers - typeof"; return _typeof$3 = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof$3(obj); } function _toPrimitive$1(input, hint) { if (_typeof$3(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof$3(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } function _toPropertyKey$1(arg) { var key = _toPrimitive$1(arg, "string"); return _typeof$3(key) === "symbol" ? key : String(key); } function _defineProperty$2(obj, key, value) { key = _toPropertyKey$1(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; } function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; } var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}; function getDefaultExportFromCjs (x) { return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x; } function getAugmentedNamespace(n) { if (n.__esModule) return n; var f = n.default; if (typeof f == "function") { var a = function a () { if (this instanceof a) { return Reflect.construct(f, arguments, this.constructor); } return f.apply(this, arguments); }; a.prototype = f.prototype; } else a = {}; Object.defineProperty(a, '__esModule', {value: true}); Object.keys(n).forEach(function (k) { var d = Object.getOwnPropertyDescriptor(n, k); Object.defineProperty(a, k, d.get ? d : { enumerable: true, get: function () { return n[k]; } }); }); return a; } /** * This file automatically generated from `pre-publish.js`. * Do not manually edit. */ var voidElements = { "area": true, "base": true, "br": true, "col": true, "embed": true, "hr": true, "img": true, "input": true, "link": true, "meta": true, "param": true, "source": true, "track": true, "wbr": true }; var e,t=(e=voidElements)&&"object"==typeof e&&"default"in e?e.default:e,n=/\s([^'"/\s><]+?)[\s/>]|([^\s=]+)=\s?(".*?"|'.*?')/g;function r(e){var r={type:"tag",name:"",voidElement:!1,attrs:{},children:[]},i=e.match(/<\/?([^\s]+?)[/\s>]/);if(i&&(r.name=i[1],(t[i[1]]||"/"===e.charAt(e.length-2))&&(r.voidElement=!0),r.name.startsWith("!--"))){var s=e.indexOf("--\x3e");return {type:"comment",comment:-1!==s?e.slice(4,s):""}}for(var c=new RegExp(n),a=null;null!==(a=c.exec(e));)if(a[0].trim())if(a[1]){var o=a[1].trim(),u=[o,""];o.indexOf("=")>-1&&(u=o.split("=")),r.attrs[u[0]]=u[1],c.lastIndex--;}else a[2]&&(r.attrs[a[2]]=a[3].trim().substring(1,a[3].length-1));return r}var i$1=/<[a-zA-Z0-9\-\!\/](?:"[^"]*"|'[^']*'|[^'">])*>/g,s=/^\s*$/,c=Object.create(null);function a(e,t){switch(t.type){case"text":return e+t.content;case"tag":return e+="<"+t.name+(t.attrs?function(e){var t=[];for(var n in e)t.push(n+'="'+e[n]+'"');return t.length?" "+t.join(" "):""}(t.attrs):"")+(t.voidElement?"/>":">"),t.voidElement?e:e+t.children.reduce(a,"")+"</"+t.name+">";case"comment":return e+"\x3c!--"+t.comment+"--\x3e"}}var htmlParseStringify={parse:function(e,t){t||(t={}),t.components||(t.components=c);var n,a=[],o=[],u=-1,l=!1;if(0!==e.indexOf("<")){var m=e.indexOf("<");a.push({type:"text",content:-1===m?e:e.substring(0,m)});}return e.replace(i$1,function(i,c){if(l){if(i!=="</"+n.name+">")return;l=!1;}var m,d="/"!==i.charAt(1),f=i.startsWith("\x3c!--"),h=c+i.length,p=e.charAt(h);if(f){var v=r(i);return u<0?(a.push(v),a):((m=o[u]).children.push(v),a)}if(d&&(u++,"tag"===(n=r(i)).type&&t.components[n.name]&&(n.type="component",l=!0),n.voidElement||l||!p||"<"===p||n.children.push({type:"text",content:e.slice(h,e.indexOf("<",h))}),0===u&&a.push(n),(m=o[u-1])&&m.children.push(n),o[u]=n),(!d||n.voidElement)&&(u>-1&&(n.voidElement||n.name===i.slice(2,-1))&&(u--,n=-1===u?a:o[u]),!l&&"<"!==p&&p)){m=-1===u?a:o[u].children;var x=e.indexOf("<",h),g=e.slice(h,-1===x?void 0:x);s.test(g)&&(g=" "),(x>-1&&u+m.length>=0||" "!==g)&&m.push({type:"text",content:g});}}),a},stringify:function(e){return e.reduce(function(e,t){return e+a("",t)},"")}}; var HTML = /*@__PURE__*/getDefaultExportFromCjs(htmlParseStringify); function warn() { if (console && console.warn) { var _console; for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } if (typeof args[0] === 'string') args[0] = "react-i18next:: ".concat(args[0]); (_console = console).warn.apply(_console, args); } } var alreadyWarned = {}; function warnOnce() { for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { args[_key2] = arguments[_key2]; } if (typeof args[0] === 'string' && alreadyWarned[args[0]]) return; if (typeof args[0] === 'string') alreadyWarned[args[0]] = new Date(); warn.apply(void 0, args); } function loadNamespaces(i18n, ns, cb) { i18n.loadNamespaces(ns, function () { if (i18n.isInitialized) { cb(); } else { var initialized = function initialized() { setTimeout(function () { i18n.off('initialized', initialized); }, 0); cb(); }; i18n.on('initialized', initialized); } }); } function oldI18nextHasLoadedNamespace(ns, i18n) { var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; var lng = i18n.languages[0]; var fallbackLng = i18n.options ? i18n.options.fallbackLng : false; var lastLng = i18n.languages[i18n.languages.length - 1]; if (lng.toLowerCase() === 'cimode') return true; var loadNotPending = function loadNotPending(l, n) { var loadState = i18n.services.backendConnector.state["".concat(l, "|").concat(n)]; return loadState === -1 || loadState === 2; }; if (options.bindI18n && options.bindI18n.indexOf('languageChanging') > -1 && i18n.services.backendConnector.backend && i18n.isLanguageChangingTo && !loadNotPending(i18n.isLanguageChangingTo, ns)) return false; if (i18n.hasResourceBundle(lng, ns)) return true; if (!i18n.services.backendConnector.backend || i18n.options.resources && !i18n.options.partialBundledLanguages) return true; if (loadNotPending(lng, ns) && (!fallbackLng || loadNotPending(lastLng, ns))) return true; return false; } function hasLoadedNamespace(ns, i18n) { var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; if (!i18n.languages || !i18n.languages.length) { warnOnce('i18n.languages were undefined or empty', i18n.languages); return true; } var isNewerI18next = i18n.options.ignoreJSONStructure !== undefined; if (!isNewerI18next) { return oldI18nextHasLoadedNamespace(ns, i18n, options); } return i18n.hasLoadedNamespace(ns, { precheck: function precheck(i18nInstance, loadNotPending) { if (options.bindI18n && options.bindI18n.indexOf('languageChanging') > -1 && i18nInstance.services.backendConnector.backend && i18nInstance.isLanguageChangingTo && !loadNotPending(i18nInstance.isLanguageChangingTo, ns)) return false; } }); } var matchHtmlEntity = /&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g; var htmlEntities = { '&amp;': '&', '&#38;': '&', '&lt;': '<', '&#60;': '<', '&gt;': '>', '&#62;': '>', '&apos;': "'", '&#39;': "'", '&quot;': '"', '&#34;': '"', '&nbsp;': ' ', '&#160;': ' ', '&copy;': '©', '&#169;': '©', '&reg;': '®', '&#174;': '®', '&hellip;': '…', '&#8230;': '…', '&#x2F;': '/', '&#47;': '/' }; var unescapeHtmlEntity = function unescapeHtmlEntity(m) { return htmlEntities[m]; }; var unescape$1 = function unescape(text) { return text.replace(matchHtmlEntity, unescapeHtmlEntity); }; function ownKeys$a(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } function _objectSpread$a(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$a(Object(source), true).forEach(function (key) { _defineProperty$2(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$a(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } var defaultOptions = { bindI18n: 'languageChanged', bindI18nStore: '', transEmptyNodeValue: '', transSupportBasicHtmlNodes: true, transWrapTextNodes: '', transKeepBasicHtmlNodesFor: ['br', 'strong', 'i', 'p'], useSuspense: true, unescape: unescape$1 }; function setDefaults() { var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; defaultOptions = _objectSpread$a(_objectSpread$a({}, defaultOptions), options); } function getDefaults$2() { return defaultOptions; } var i18nInstance; function setI18n(instance) { i18nInstance = instance; } function getI18n() { return i18nInstance; } var _excluded$1 = ["format"], _excluded2 = ["children", "count", "parent", "i18nKey", "context", "tOptions", "values", "defaults", "components", "ns", "i18n", "t", "shouldUnescape"]; function ownKeys$9(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } function _objectSpread$9(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$9(Object(source), true).forEach(function (key) { _defineProperty$2(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$9(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } function hasChildren(node, checkLength) { if (!node) return false; var base = node.props ? node.props.children : node.children; if (checkLength) return base.length > 0; return !!base; } function getChildren(node) { if (!node) return []; return node.props ? node.props.children : node.children; } function hasValidReactChildren(children) { if (Object.prototype.toString.call(children) !== '[object Array]') return false; return children.every(function (child) { return React$1.isValidElement(child); }); } function getAsArray(data) { return Array.isArray(data) ? data : [data]; } function mergeProps(source, target) { var newTarget = _objectSpread$9({}, target); newTarget.props = Object.assign(source.props, target.props); return newTarget; } function nodesToString(children, i18nOptions) { if (!children) return ''; var stringNode = ''; var childrenArray = getAsArray(children); var keepArray = i18nOptions.transSupportBasicHtmlNodes && i18nOptions.transKeepBasicHtmlNodesFor ? i18nOptions.transKeepBasicHtmlNodesFor : []; childrenArray.forEach(function (child, childIndex) { if (typeof child === 'string') { stringNode += "".concat(child); } else if (React$1.isValidElement(child)) { var childPropsCount = Object.keys(child.props).length; var shouldKeepChild = keepArray.indexOf(child.type) > -1; var childChildren = child.props.children; if (!childChildren && shouldKeepChild && childPropsCount === 0) { stringNode += "<".concat(child.type, "/>"); } else if (!childChildren && (!shouldKeepChild || childPropsCount !== 0)) { stringNode += "<".concat(childIndex, "></").concat(childIndex, ">"); } else if (child.props.i18nIsDynamicList) { stringNode += "<".concat(childIndex, "></").concat(childIndex, ">"); } else if (shouldKeepChild && childPropsCount === 1 && typeof childChildren === 'string') { stringNode += "<".concat(child.type, ">").concat(childChildren, "</").concat(child.type, ">"); } else { var content = nodesToString(childChildren, i18nOptions); stringNode += "<".concat(childIndex, ">").concat(content, "</").concat(childIndex, ">"); } } else if (child === null) { warn("Trans: the passed in value is invalid - seems you passed in a null child."); } else if (_typeof$3(child) === 'object') { var format = child.format, clone = _objectWithoutProperties(child, _excluded$1); var keys = Object.keys(clone); if (keys.length === 1) { var value = format ? "".concat(keys[0], ", ").concat(format) : keys[0]; stringNode += "{{".concat(value, "}}"); } else { warn("react-i18next: the passed in object contained more than one variable - the object should look like {{ value, format }} where format is optional.", child); } } else { warn("Trans: the passed in value is invalid - seems you passed in a variable like {number} - please pass in variables for interpolation as full objects like {{number}}.", child); } }); return stringNode; } function renderNodes(children, targetString, i18n, i18nOptions, combinedTOpts, shouldUnescape) { if (targetString === '') return []; var keepArray = i18nOptions.transKeepBasicHtmlNodesFor || []; var emptyChildrenButNeedsHandling = targetString && new RegExp(keepArray.join('|')).test(targetString); if (!children && !emptyChildrenButNeedsHandling) return [targetString]; var data = {}; function getData(childs) { var childrenArray = getAsArray(childs); childrenArray.forEach(function (child) { if (typeof child === 'string') return; if (hasChildren(child)) getData(getChildren(child));else if (_typeof$3(child) === 'object' && !React$1.isValidElement(child)) Object.assign(data, child); }); } getData(children); var ast = HTML.parse("<0>".concat(targetString, "</0>")); var opts = _objectSpread$9(_objectSpread$9({}, data), combinedTOpts); function renderInner(child, node, rootReactNode) { var childs = getChildren(child); var mappedChildren = mapAST(childs, node.children, rootReactNode); return hasValidReactChildren(childs) && mappedChildren.length === 0 ? childs : mappedChildren; } function pushTranslatedJSX(child, inner, mem, i, isVoid) { if (child.dummy) child.children = inner; mem.push(React$1.cloneElement(child, _objectSpread$9(_objectSpread$9({}, child.props), {}, { key: i }), isVoid ? undefined : inner)); } function mapAST(reactNode, astNode, rootReactNode) { var reactNodes = getAsArray(reactNode); var astNodes = getAsArray(astNode); return astNodes.reduce(function (mem, node, i) { var translationContent = node.children && node.children[0] && node.children[0].content && i18n.services.interpolator.interpolate(node.children[0].content, opts, i18n.language); if (node.type === 'tag') { var tmp = reactNodes[parseInt(node.name, 10)]; if (!tmp && rootReactNode.length === 1 && rootReactNode[0][node.name]) tmp = rootReactNode[0][node.name]; if (!tmp) tmp = {}; var child = Object.keys(node.attrs).length !== 0 ? mergeProps({ props: node.attrs }, tmp) : tmp; var isElement = React$1.isValidElement(child); var isValidTranslationWithChildren = isElement && hasChildren(node, true) && !node.voidElement; var isEmptyTransWithHTML = emptyChildrenButNeedsHandling && _typeof$3(child) === 'object' && child.dummy && !isElement; var isKnownComponent = _typeof$3(children) === 'object' && children !== null && Object.hasOwnProperty.call(children, node.name); if (typeof child === 'string') { var value = i18n.services.interpolator.interpolate(child, opts, i18n.language); mem.push(value); } else if (hasChildren(child) || isValidTranslationWithChildren) { var inner = renderInner(child, node, rootReactNode); pushTranslatedJSX(child, inner, mem, i); } else if (isEmptyTransWithHTML) { var _inner = mapAST(reactNodes, node.children, rootReactNode); mem.push(React$1.cloneElement(child, _objectSpread$9(_objectSpread$9({}, child.props), {}, { key: i }), _inner)); } else if (Number.isNaN(parseFloat(node.name))) { if (isKnownComponent) { var _inner2 = renderInner(child, node, rootReactNode); pushTranslatedJSX(child, _inner2, mem, i, node.voidElement); } else if (i18nOptions.transSupportBasicHtmlNodes && keepArray.indexOf(node.name) > -1) { if (node.voidElement) { mem.push(React$1.createElement(node.name, { key: "".concat(node.name, "-").concat(i) })); } else { var _inner3 = mapAST(reactNodes, node.children, rootReactNode); mem.push(React$1.createElement(node.name, { key: "".concat(node.name, "-").concat(i) }, _inner3)); } } else if (node.voidElement) { mem.push("<".concat(node.name, " />")); } else { var _inner4 = mapAST(reactNodes, node.children, rootReactNode); mem.push("<".concat(node.name, ">").concat(_inner4, "</").concat(node.name, ">")); } } else if (_typeof$3(child) === 'object' && !isElement) { var content = node.children[0] ? translationContent : null; if (content) mem.push(content); } else if (node.children.length === 1 && translationContent) { mem.push(React$1.cloneElement(child, _objectSpread$9(_objectSpread$9({}, child.props), {}, { key: i }), translationContent)); } else { mem.push(React$1.cloneElement(child, _objectSpread$9(_objectSpread$9({}, child.props), {}, { key: i }))); } } else if (node.type === 'text') { var wrapTextNodes = i18nOptions.transWrapTextNodes; var _content = shouldUnescape ? i18nOptions.unescape(i18n.services.interpolator.interpolate(node.content, opts, i18n.language)) : i18n.services.interpolator.interpolate(node.content, opts, i18n.language); if (wrapTextNodes) { mem.push(React$1.createElement(wrapTextNodes, { key: "".concat(node.name, "-").concat(i) }, _content)); } else { mem.push(_content); } } return mem; }, []); } var result = mapAST([{ dummy: true, children: children || [] }], ast, getAsArray(children || [])); return getChildren(result[0]); } function Trans$1(_ref) { var children = _ref.children, count = _ref.count, parent = _ref.parent, i18nKey = _ref.i18nKey, context = _ref.context, _ref$tOptions = _ref.tOptions, tOptions = _ref$tOptions === void 0 ? {} : _ref$tOptions, values = _ref.values, defaults = _ref.defaults, components = _ref.components, ns = _ref.ns, i18nFromProps = _ref.i18n, tFromProps = _ref.t, shouldUnescape = _ref.shouldUnescape, additionalProps = _objectWithoutProperties(_ref, _excluded2); var i18n = i18nFromProps || getI18n(); if (!i18n) { warnOnce('You will need to pass in an i18next instance by using i18nextReactModule'); return children; } var t = tFromProps || i18n.t.bind(i18n) || function (k) { return k; }; if (context) tOptions.context = context; var reactI18nextOptions = _objectSpread$9(_objectSpread$9({}, getDefaults$2()), i18n.options && i18n.options.react); var namespaces = ns || t.ns || i18n.options && i18n.options.defaultNS; namespaces = typeof namespaces === 'string' ? [namespaces] : namespaces || ['translation']; var defaultValue = defaults || nodesToString(children, reactI18nextOptions) || reactI18nextOptions.transEmptyNodeValue || i18nKey; var hashTransKey = reactI18nextOptions.hashTransKey; var key = i18nKey || (hashTransKey ? hashTransKey(defaultValue) : defaultValue); var interpolationOverride = values ? tOptions.interpolation : { interpolation: _objectSpread$9(_objectSpread$9({}, tOptions.interpolation), {}, { prefix: '#$?', suffix: '?$#' }) }; var combinedTOpts = _objectSpread$9(_objectSpread$9(_objectSpread$9(_objectSpread$9({}, tOptions), {}, { count: count }, values), interpolationOverride), {}, { defaultValue: defaultValue, ns: namespaces }); var translation = key ? t(key, combinedTOpts) : defaultValue; var content = renderNodes(components || children, translation, i18n, reactI18nextOptions, combinedTOpts, shouldUnescape); var useAsParent = parent !== undefined ? parent : reactI18nextOptions.defaultTransParent; return useAsParent ? React$1.createElement(useAsParent, additionalProps, content) : content; } function _classCallCheck$1(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties$1(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey$1(descriptor.key), descriptor); } } function _createClass$1(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties$1(Constructor.prototype, protoProps); if (staticProps) _defineProperties$1(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } var initReactI18next = { type: '3rdParty', init: function init(instance) { setDefaults(instance.options.react); setI18n(instance); } }; var I18nContext = React$1.createContext(); var ReportNamespaces = function () { function ReportNamespaces() { _classCallCheck$1(this, ReportNamespaces); this.usedNamespaces = {}; } _createClass$1(ReportNamespaces, [{ key: "addUsedNamespaces", value: function addUsedNamespaces(namespaces) { var _this = this; namespaces.forEach(function (ns) { if (!_this.usedNamespaces[ns]) _this.usedNamespaces[ns] = true; }); } }, { key: "getUsedNamespaces", value: function getUsedNamespaces() { return Object.keys(this.usedNamespaces); } }]); return ReportNamespaces; }(); var _excluded = ["children", "count", "parent", "i18nKey", "context", "tOptions", "values", "defaults", "components", "ns", "i18n", "t", "shouldUnescape"]; function ownKeys$8(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } function _objectSpread$8(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$8(Object(source), true).forEach(function (key) { _defineProperty$2(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$8(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } function Trans(_ref) { var children = _ref.children, count = _ref.count, parent = _ref.parent, i18nKey = _ref.i18nKey, context = _ref.context, _ref$tOptions = _ref.tOptions, tOptions = _ref$tOptions === void 0 ? {} : _ref$tOptions, values = _ref.values, defaults = _ref.defaults, components = _ref.components, ns = _ref.ns, i18nFromProps = _ref.i18n, tFromProps = _ref.t, shouldUnescape = _ref.shouldUnescape, additionalProps = _objectWithoutProperties(_ref, _excluded); var _ref2 = React$1.useContext(I18nContext) || {}, i18nFromContext = _ref2.i18n, defaultNSFromContext = _ref2.defaultNS; var i18n = i18nFromProps || i18nFromContext || getI18n(); var t = tFromProps || i18n && i18n.t.bind(i18n); return Trans$1(_objectSpread$8({ children: children, count: count, parent: parent, i18nKey: i18nKey, context: context, tOptions: tOptions, values: values, defaults: defaults, components: components, ns: ns || t && t.ns || defaultNSFromContext || i18n && i18n.options && i18n.options.defaultNS, i18n: i18n, t: tFromProps, shouldUnescape: shouldUnescape }, additionalProps)); } function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } function ownKeys$7(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } function _objectSpread$7(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$7(Object(source), true).forEach(function (key) { _defineProperty$2(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$7(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } var usePrevious$1 = function usePrevious(value, ignore) { var ref = React$1.useRef(); React$1.useEffect(function () { ref.current = ignore ? ref.current : value; }, [value, ignore]); return ref.current; }; function useTranslation$1(ns) { var props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; var i18nFromProps = props.i18n; var _ref = React$1.useContext(I18nContext) || {}, i18nFromContext = _ref.i18n, defaultNSFromContext = _ref.defaultNS; var i18n = i18nFromProps || i18nFromContext || getI18n(); if (i18n && !i18n.reportNamespaces) i18n.reportNamespaces = new ReportNamespaces(); if (!i18n) { warnOnce('You will need to pass in an i18next instance by using initReactI18next'); var notReadyT = function notReadyT(k, optsOrDefaultValue) { if (typeof optsOrDefaultValue === 'string') return optsOrDefaultValue; if (optsOrDefaultValue && _typeof$3(optsOrDefaultValue) === 'object' && typeof optsOrDefaultValue.defaultValue === 'string') return optsOrDefaultValue.defaultValue; return Array.isArray(k) ? k[k.length - 1] : k; }; var retNotReady = [notReadyT, {}, false]; retNotReady.t = notReadyT; retNotReady.i18n = {}; retNotReady.ready = false; return retNotReady; } if (i18n.options.react && i18n.options.react.wait !== undefined) warnOnce('It seems you are still using the old wait option, you may migrate to the new useSuspense behaviour.'); var i18nOptions = _objectSpread$7(_objectSpread$7(_objectSpread$7({}, getDefaults$2()), i18n.options.react), props); var useSuspense = i18nOptions.useSuspense, keyPrefix = i18nOptions.keyPrefix; var namespaces = ns || defaultNSFromContext || i18n.options && i18n.options.defaultNS; namespaces = typeof namespaces === 'string' ? [namespaces] : namespaces || ['translation']; if (i18n.reportNamespaces.addUsedNamespaces) i18n.reportNamespaces.addUsedNamespaces(namespaces); var ready = (i18n.isInitialized || i18n.initializedStoreOnce) && namespaces.every(function (n) { return hasLoadedNamespace(n, i18n, i18nOptions); }); function getT() { return i18n.getFixedT(null, i18nOptions.nsMode === 'fallback' ? namespaces : namespaces[0], keyPrefix); } var _useState = React$1.useState(getT), _useState2 = _slicedToArray(_useState, 2), t = _useState2[0], setT = _useState2[1]; var joinedNS = namespaces.join(); var previousJoinedNS = usePrevious$1(joinedNS); var isMounted = React$1.useRef(true); React$1.useEffect(function () { var bindI18n = i18nOptions.bindI18n, bindI18nStore = i18nOptions.bindI18nStore; isMounted.current = true; if (!ready && !useSuspense) { loadNamespaces(i18n, namespaces, function () { if (isMounted.current) setT(getT); }); } if (ready && previousJoinedNS && previousJoinedNS !== joinedNS && isMounted.current) { setT(getT); } function boundReset() { if (isMounted.current) setT(getT); } if (bindI18n && i18n) i18n.on(bindI18n, boundReset); if (bindI18nStore && i18n) i18n.store.on(bindI18nStore, boundReset); return function () { isMounted.current = false; if (bindI18n && i18n) bindI18n.split(' ').forEach(function (e) { return i18n.off(e, boundReset); }); if (bindI18nStore && i18n) bindI18nStore.split(' ').forEach(function (e) { return i18n.store.off(e, boundReset); }); }; }, [i18n, joinedNS]); var isInitial = React$1.useRef(true); React$1.useEffect(function () { if (isMounted.current && !isInitial.current) { setT(getT); } isInitial.current = false; }, [i18n, keyPrefix]); var ret = [t, i18n, ready]; ret.t = t; ret.i18n = i18n; ret.ready = ready; if (ready) return ret; if (!ready && !useSuspense) return ret; throw new Promise(function (resolve) { loadNamespaces(i18n, namespaces, function () { resolve(); }); }); } function I18nextProvider(_ref) { var i18n = _ref.i18n, defaultNS = _ref.defaultNS, children = _ref.children; var value = React$1.useMemo(function () { return { i18n: i18n, defaultNS: defaultNS }; }, [i18n, defaultNS]); return React$1.createElement(I18nContext.Provider, { value: value }, children); } let globalAny$2 = {}; try { globalAny$2 = window; } catch (error) { if (!(error instanceof ReferenceError)) { throw error; } } finally { if (!globalAny$2) { globalAny$2 = {}; } } /** * Base Params for a any function * @alias ActionParams * @memberof ViewHelpers */ /** * Params for a record action * @alias RecordActionParams * @extends ActionParams * @memberof ViewHelpers */ /** * Params for a bulk action * @alias BulkActionParams * @extends ActionParams * @memberof ViewHelpers */ /** * Params for a resource action * @alias ResourceActionParams * @extends ActionParams * @memberof ViewHelpers */ const runDate = new Date(); /** * Collection of helper methods available in the views */ class ViewHelpers { constructor({ options } = {}) { let opts = ViewHelpers.getPaths(options); opts = opts || { rootPath: '/admin' }; // when ViewHelpers are used on the frontend, paths are taken from global Redux State this.options = opts; } static getPaths(options) { return options || globalAny$2.REDUX_STATE?.paths; } /** * To each related path adds rootPath passed by the user, as well as a query string * @private * @param {Array<string>} [paths] list of parts of the url * @return {string} path * @return {query} [search=''] query string which can be fetch * from `location.search` */ urlBuilder(paths = [], search = '') { const separator = '/'; const replace = new RegExp(`${separator}{1,}`, 'g'); let { rootPath } = this.options; if (!rootPath.startsWith(separator)) { rootPath = `${separator}${rootPath}`; } const parts = [rootPath, ...paths]; return `${parts.join(separator).replace(replace, separator)}${search}`; } /** * Returns login URL * @return {string} */ loginUrl() { return this.options.loginPath; } /** * Returns logout URL * @return {string} */ logoutUrl() { return this.options.logoutPath; } /** * Returns URL for the dashboard * @return {string} */ dashboardUrl() { return this.options.rootPath; } /** * Returns URL for given page name * @param {string} pageName page name which is a unique key specified in * {@link AdminJSOptions} * @return {string} */ pageUrl(pageName) { return this.urlBuilder(['pages', pageName]); } /** * Returns url for a `edit` action in given Resource. Uses {@link recordActionUrl} * * @param {string} resourceId id to the resource * @param {string} recordId id to the record * @param {string} [search] optional query string */ editUrl(resourceId, recordId, search) { return this.recordActionUrl({ resourceId, recordId, actionName: 'edit', search }); } /** * Returns url for a `show` action in given Resource. Uses {@link recordActionUrl} * * @param {string} resourceId id to the resource * @param {string} recordId id to the record * @param {string} [search] optional query string */ showUrl(resourceId, recordId, search) { return this.recordActionUrl({ resourceId, recordId, actionName: 'show', search }); } /** * Returns url for a `delete` action in given Resource. Uses {@link recordActionUrl} * * @param {string} resourceId id to the resource * @param {string} recordId id to the record * @param {string} [search] optional query string */ deleteUrl(resourceId, recordId, search) { return this.recordActionUrl({ resourceId, recordId, actionName: 'delete', search }); } /** * Returns url for a `new` action in given Resource. Uses {@link resourceActionUrl} * * @param {string} resourceId id to the resource * @param {string} [search] optional query string */ newUrl(resourceId, search) { return this.resourceActionUrl({ resourceId, actionName: 'new', search }); } /** * Returns url for a `list` action in given Resource. Uses {@link resourceActionUrl} * * @param {string} resourceId id to the resource * @param {string} [search] optional query string */ listUrl(resourceId, search) { return this.resourceActionUrl({ resourceId, actionName: 'list', search }); } /** * Returns url for a `bulkDelete` action in given Resource. Uses {@link bulkActionUrl} * * @param {string} resourceId id to the resource * @param {Array<string>} recordIds separated by comma records * @param {string} [search] optional query string */ bulkDeleteUrl(resourceId, recordIds, search) { return this.bulkActionUrl({ resourceId, recordIds, actionName: 'bulkDelete', search }); } /** * Returns resourceAction url * * @param {ResourceActionParams} options * @param {string} options.resourceId * @param {string} options.actionName * @param {string} [options.search] optional query string * * @return {string} */ resourceActionUrl({ resourceId, actionName, search }) { return this.urlBuilder(['resources', resourceId, 'actions', actionName], search); } resourceUrl({ resourceId, search }) { return this.urlBuilder(['resources', resourceId], search); } /** * Returns recordAction url * * @param {RecordActionParams} options * @param {string} options.resourceId * @param {string} options.recordId * @param {string} options.actionName * * @return {string} */ recordActionUrl({ resourceId, recordId, actionName, search }) { return this.urlBuilder(['resources', resourceId, 'records', recordId, actionName], search); } /** * Returns bulkAction url * * @param {BulkActionParams} options * @param {string} options.resourceId * @param {Array<string>} [options.recordIds] * @param {string} options.actionName * * @return {string} */ bulkActionUrl({ resourceId, recordIds, actionName, search }) { const url = this.urlBuilder(['resources', resourceId, 'bulk', actionName]); if (recordIds && recordIds.length) { const query = new URLSearchParams(search); query.set('recordIds', recordIds.join(',')); return `${url}?${query.toString()}`; } return `${url}${search || ''}`; } /** * Returns absolute path to a given asset. * @private * * @param {string} asset * @param {Assets | undefined} assetsConfig * @return {string} */ assetPath(asset, assetsConfig) { if (this.options.assetsCDN) { const pathname = assetsConfig?.coreScripts?.[asset] ?? asset; const url = new URL(pathname, this.options.assetsCDN).href; // adding timestamp to the href invalidates the CDN cache return `${url}?date=${runDate.getTime()}`; } return this.urlBuilder(['frontend', 'assets', asset]); } } var flat$1 = flatten$2; flatten$2.flatten = flatten$2; flatten$2.unflatten = unflatten; function isBuffer$6 (obj) { return obj && obj.constructor && (typeof obj.constructor.isBuffer === 'function') && obj.constructor.isBuffer(obj) } function keyIdentity (key) { return key } function flatten$2 (target, opts) { opts = opts || {}; const delimiter = opts.delimiter || '.'; const maxDepth = opts.maxDepth; const transformKey = opts.transformKey || keyIdentity; const output = {}; function step (object, prev, currentDepth) { currentDepth = currentDepth || 1; Object.keys(object).forEach(function (key) { const value = object[key]; const isarray = opts.safe && Array.isArray(value); const type = Object.prototype.toString.call(value); const isbuffer = isBuffer$6(value); const isobject = ( type === '[object Object]' || type === '[object Array]' ); const newKey = prev ? prev + delimiter + transformKey(key) : transformKey(key); if (!isarray && !isbuffer && isobject && Object.keys(value).length && (!opts.maxDepth || currentDepth < maxDepth)) { return step(value, newKey, currentDepth + 1) } output[newKey] = value; }); } step(target); return output } function unflatten (target, opts) { opts = opts || {}; const delimiter = opts.delimiter || '.'; const overwrite = opts.overwrite || false; const transformKey = opts.transformKey || keyIdentity; const result = {}; const isbuffer = isBuffer$6(target); if (isbuffer || Object.prototype.toString.call(target) !== '[object Object]') { return target } // safely ensure that the key is // an integer. function getkey (key) { const parsedKey = Number(key); return ( isNaN(parsedKey) || key.indexOf('.') !== -1 || opts.object ) ? key : parsedKey } function addKeys (keyPrefix, recipient, target) { return Object.keys(target).reduce(function (result, key) { result[keyPrefix + delimiter + key] = target[key]; return result }, recipient) } function isEmpty (val) { const type = Object.prototype.toString.call(val); const isArray = type === '[object Array]'; const isObject = type === '[object Object]'; if (!val) { return true } else if (isArray) { return !val.length } else if (isObject) { return !Object.keys(val).length } } target = Object.keys(target).reduce(function (result, key) { const type = Object.prototype.toString.call(target[key]); const isObject = (type === '[object Object]' || type === '[object Array]'); if (!isObject || isEmpty(target[key])) { result[key] = target[key]; return result } else { return addKeys( key, result, flatten$2(target[key], opts) ) } }, {}); Object.keys(target).forEach(function (key) { const split = key.split(delimiter).map(transformKey); let key1 = getkey(split.shift()); let key2 = getkey(split[0]); let recipient = result; while (key2 !== undefined) { if (key1 === '__proto__') { return } const type = Object.prototype.toString.call(recipient[key1]); const isobject = ( type === '[object Object]' || type === '[object Array]' ); // do not write over falsey, non-undefined values if overwrite is false if (!overwrite && !isobject && typeof recipient[key1] !== 'undefined') { return } if ((overwrite && !isobject) || (!overwrite && recipient[key1] == null)) { recipient[key1] = ( typeof key2 === 'number' && !opts.object ? [] : {} ); } recipient = recipient[key1]; if (split.length > 0) { key1 = getkey(split.shift()); key2 = getkey(split[0]); } } // unflatten again for 'messy objects' recipient[key1] = unflatten(target[key], opts); }); return result } var flatModule = /*@__PURE__*/getDefaultExportFromCjs(flat$1); const DELIMITER = '.'; // this is the regex used to find all existing properties starting with a key const propertyKeyRegex = (propertyPath, options) => { const delimiter = new RegExp(`\\${DELIMITER}`, 'g'); const escapedDelimiter = `\\${DELIMITER}`; // but for `nested.1.property.0` it will produce `nested(\.|\.\d+\.)1(\.|\.\d+\.)property.0` // and this is intentional because user can give an one index in property path for with deeply // nested arrays const escapedDelimiterOrIndex = `(${escapedDelimiter}|${escapedDelimiter}\\d+${escapedDelimiter})`; const path = options?.includeAllSiblings ? propertyPath.replace(delimiter, escapedDelimiterOrIndex) : propertyPath.replace(delimiter, escapedDelimiter); return new RegExp(`^${path}($|${escapedDelimiter})`, ''); }; /** * @load ./select-params.doc.md * @memberof module:flat * @param {FlattenParams} params * @param {string | Array<string>} properties * @param {GetOptions} [options] * @returns {FlattenParams} */ const selectParams = (params, properties, options) => { const propertyArray = Array.isArray(properties) ? properties : [properties]; const selected = propertyArray.filter(propertyPath => !!propertyPath).reduce((globalMemo, propertyPath) => { const regex = propertyKeyRegex(propertyPath, options); const filtered = Object.keys(params) // filter all keys which starts with property path .filter(key => key.match(regex)).