UNPKG

cspace-ui

Version:
106 lines (83 loc) 1.93 MB
/* * ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development"). * This devtool is neither made for production nor for readable output files. * It uses "eval()" calls to create a separate source file in the browser devtools. * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) * or disable the default devtool with "devtool: false". * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). */ (function webpackUniversalModuleDefinition(root, factory) { if(typeof exports === 'object' && typeof module === 'object') module.exports = factory(); else if(typeof define === 'function' && define.amd) define([], factory); else if(typeof exports === 'object') exports["cspaceUI"] = factory(); else root["cspaceUI"] = factory(); })(self, () => { return /******/ (() => { // webpackBootstrap /******/ var __webpack_modules__ = ({ /***/ "./src/components/pages/service/PasswordResetPage.jsx": /*!************************************************************!*\ !*** ./src/components/pages/service/PasswordResetPage.jsx ***! \************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var react_helmet__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-helmet */ \"./node_modules/react-helmet/es/Helmet.js\");\n/* harmony import */ var react_intl__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-intl */ \"./node_modules/react-intl/lib/index.es.js\");\n/* harmony import */ var _helpers_passwordHelpers__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../helpers/passwordHelpers */ \"./src/helpers/passwordHelpers.js\");\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n/* global window, btoa, FormData */\n\n\n\n\n\n\nconst messages = (0,react_intl__WEBPACK_IMPORTED_MODULE_2__.defineMessages)({\n title: {\n \"id\": \"passwordResetPage.title\",\n \"defaultMessage\": \"Reset Password\"\n },\n prompt: {\n \"id\": \"passwordResetPage.prompt\",\n \"defaultMessage\": \"Enter the new password for this account.\"\n },\n password: {\n \"id\": \"passwordResetPage.password\",\n \"defaultMessage\": \"Password\"\n },\n confirmPassword: {\n \"id\": \"passwordResetPage.confirmPassword\",\n \"defaultMessage\": \"Confirm password\"\n },\n submit: {\n \"id\": \"passwordResetPage.submit\",\n \"defaultMessage\": \"Submit\"\n },\n errorMissingPassword: {\n \"id\": \"passwordResetPage.errorMissingPassword\",\n \"defaultMessage\": \"Please enter a new password.\"\n },\n errorNotConfirmed: {\n \"id\": \"passwordResetPage.errorNotConfirmed\",\n \"defaultMessage\": \"The password was not correctly confirmed. Please re-enter the new password in the confirm password field.\"\n },\n errorInvalidPassword: {\n \"id\": \"passwordResetPage.errorInvalidPassword\",\n \"defaultMessage\": \"The password must be between 8 and 24 characters.\"\n },\n success: {\n \"id\": \"passwordResetPage.success\",\n \"defaultMessage\": \"Your password has been reset. {loginLink} to continue.\"\n },\n loginLink: {\n \"id\": \"passwordResetPage.loginLink\",\n \"defaultMessage\": \"Sign in\"\n },\n newRequestLink: {\n \"id\": \"passwordResetPage.newRequestLink\",\n \"defaultMessage\": \"make a new request\"\n },\n error: {\n \"id\": \"passwordResetPage.error\",\n \"defaultMessage\": \"An error occurred while attempting to reset the password: {detail}\"\n },\n errorTokenExpired: {\n \"id\": \"passwordResetPage.errorTokenExpired\",\n \"defaultMessage\": \"The password reset request has expired. Please {newRequestLink} to reset your password.\"\n },\n errorTokenInvalid: {\n \"id\": \"passwordResetPage.errorTokenInvalid\",\n \"defaultMessage\": \"The password reset request could not be validated. Please {newRequestLink} to reset your password.\"\n }\n});\nconst propTypes = {\n csrf: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().object),\n intl: react_intl__WEBPACK_IMPORTED_MODULE_2__.intlShape.isRequired,\n tenantId: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().string),\n tenantLoginUrl: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().string),\n token: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().string).isRequired\n};\nconst defaultProps = {\n csrf: null,\n tenantId: null,\n // If we don't receive a tenant-specific login URL, default to the services login page.\n tenantLoginUrl: '/cspace-services/login'\n};\nfunction PasswordResetPage(props) {\n const {\n csrf,\n intl,\n tenantId,\n tenantLoginUrl,\n token\n } = props;\n const [error, setError] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)();\n const [isPending, setPending] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)();\n const [success, setSuccess] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)();\n if (success) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"p\", {\n className: \"status success\"\n }, success);\n }\n const handleSubmit = event => {\n event.preventDefault();\n const form = event.target;\n const formData = new FormData(form);\n const password = formData.get('password');\n const confirmPassword = formData.get('confirmPassword');\n if (!password) {\n setError( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react_intl__WEBPACK_IMPORTED_MODULE_2__.FormattedMessage, messages.errorMissingPassword));\n return;\n }\n if (!(0,_helpers_passwordHelpers__WEBPACK_IMPORTED_MODULE_3__.isValidPassword)(password)) {\n setError( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react_intl__WEBPACK_IMPORTED_MODULE_2__.FormattedMessage, messages.errorInvalidPassword));\n return;\n }\n if (password !== confirmPassword) {\n setError( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react_intl__WEBPACK_IMPORTED_MODULE_2__.FormattedMessage, messages.errorNotConfirmed));\n return;\n }\n const url = new URL(form.action);\n const params = url.searchParams;\n params.delete('token');\n if (csrf) {\n params.set(csrf.parameterName, csrf.token);\n }\n const payload = {\n 'ns2:passwordreset': {\n '@xmlns:ns2': 'http://collectionspace.org/services/authentication',\n token,\n password: btoa(password)\n }\n };\n setError(null);\n setPending(true);\n window.fetch(url, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify(payload)\n }).then(response => Promise.all([response, response.text()])).then(([response, text]) => {\n if (response.ok) {\n setError(null);\n const loginLink = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"a\", {\n href: tenantLoginUrl\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react_intl__WEBPACK_IMPORTED_MODULE_2__.FormattedMessage, messages.loginLink));\n setSuccess( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react_intl__WEBPACK_IMPORTED_MODULE_2__.FormattedMessage, _extends({}, messages.success, {\n values: {\n loginLink\n }\n })));\n } else {\n setSuccess(null);\n const {\n status\n } = response;\n const tidParam = tenantId ? `?tid=${tenantId}` : '';\n const values = {\n detail: text,\n newRequestLink: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"a\", {\n href: `./requestpasswordreset${tidParam}`\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react_intl__WEBPACK_IMPORTED_MODULE_2__.FormattedMessage, messages.newRequestLink))\n };\n let message = null;\n if (status === 400 || status === 500) {\n if (/token .* not valid/.test(text)) {\n message = messages.errorTokenInvalid;\n } else if (/token .* expired/.test(text)) {\n message = messages.errorTokenExpired;\n }\n }\n if (!message) {\n message = messages.error;\n }\n setError( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react_intl__WEBPACK_IMPORTED_MODULE_2__.FormattedMessage, _extends({}, message, {\n values: values\n })));\n }\n }).catch(err => {\n setError( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react_intl__WEBPACK_IMPORTED_MODULE_2__.FormattedMessage, _extends({}, messages.error, {\n values: {\n detail: err.message\n }\n })));\n }).finally(() => {\n setPending(false);\n });\n };\n const errorMessage = error ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"p\", {\n className: \"status error\"\n }, error) : undefined;\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react_helmet__WEBPACK_IMPORTED_MODULE_1__.Helmet, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"title\", null, intl.formatMessage(messages.title))), errorMessage, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"main\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"p\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react_intl__WEBPACK_IMPORTED_MODULE_2__.FormattedMessage, messages.prompt)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"form\", {\n method: \"POST\",\n onSubmit: handleSubmit\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"label\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react_intl__WEBPACK_IMPORTED_MODULE_2__.FormattedMessage, messages.password), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"input\", {\n autoComplete: \"new-password\",\n name: \"password\",\n type: \"password\"\n }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"label\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react_intl__WEBPACK_IMPORTED_MODULE_2__.FormattedMessage, messages.confirmPassword), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"input\", {\n autoComplete: \"new-password\",\n name: \"confirmPassword\",\n type: \"password\"\n }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"button\", {\n className: \"reset\",\n disabled: isPending,\n type: \"submit\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react_intl__WEBPACK_IMPORTED_MODULE_2__.FormattedMessage, messages.submit))))));\n}\nPasswordResetPage.propTypes = propTypes;\nPasswordResetPage.defaultProps = defaultProps;\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,react_intl__WEBPACK_IMPORTED_MODULE_2__.injectIntl)(PasswordResetPage));\n\n//# sourceURL=webpack://cspaceUI/./src/components/pages/service/PasswordResetPage.jsx?"); /***/ }), /***/ "./src/components/pages/service/PasswordResetRequestPage.jsx": /*!*******************************************************************!*\ !*** ./src/components/pages/service/PasswordResetRequestPage.jsx ***! \*******************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var react_helmet__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-helmet */ \"./node_modules/react-helmet/es/Helmet.js\");\n/* harmony import */ var react_intl__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-intl */ \"./node_modules/react-intl/lib/index.es.js\");\n/* harmony import */ var _helpers_validationHelpers__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../helpers/validationHelpers */ \"./src/helpers/validationHelpers.js\");\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n/* global window, FormData */\n\n\n\n\n\n\nconst messages = (0,react_intl__WEBPACK_IMPORTED_MODULE_2__.defineMessages)({\n title: {\n \"id\": \"passwordResetRequestPage.title\",\n \"defaultMessage\": \"Reset Password\"\n },\n prompt: {\n \"id\": \"passwordResetRequestPage.prompt\",\n \"defaultMessage\": \"Please enter your email address to request a password reset.\"\n },\n email: {\n \"id\": \"passwordResetRequestPage.email\",\n \"defaultMessage\": \"Email\"\n },\n submit: {\n \"id\": \"passwordResetRequestPage.submit\",\n \"defaultMessage\": \"Submit\"\n },\n success: {\n \"id\": \"passwordResetRequestPage.success\",\n \"defaultMessage\": \"An email has been sent to {email}. Follow the instructions in the email to finish resetting your password.\"\n },\n error: {\n \"id\": \"passwordResetRequestPage.error\",\n \"defaultMessage\": \"An error occurred while attempting to request the password reset: {detail}\"\n },\n errorNotFound: {\n \"id\": \"passwordResetRequestPage.errorNotFound\",\n \"defaultMessage\": \"Could not find an account with the email {email}.\"\n },\n errorMissingEmail: {\n \"id\": \"passwordResetRequestPage.errorMissingEmail\",\n \"defaultMessage\": \"Please enter an email address.\"\n },\n errorInvalidEmail: {\n \"id\": \"passwordResetRequestPage.errorInvalidEmail\",\n \"defaultMessage\": \"{email} is not a valid email address.\"\n },\n errorSSORequired: {\n \"id\": \"passwordResetRequestPage.errorSSORequired\",\n \"defaultMessage\": \"{email} is required to sign in using a single sign-on provider. The CollectionSpace account password cannot be reset.\"\n }\n});\nconst propTypes = {\n csrf: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().object),\n tenantId: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().string),\n intl: react_intl__WEBPACK_IMPORTED_MODULE_2__.intlShape.isRequired\n};\nconst defaultProps = {\n csrf: null,\n tenantId: null\n};\nfunction PasswordResetRequestPage(props) {\n const {\n csrf,\n intl,\n tenantId\n } = props;\n const [error, setError] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)();\n const [isPending, setPending] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)();\n const [success, setSuccess] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)();\n if (success) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"p\", {\n className: \"status success\"\n }, success);\n }\n const handleSubmit = event => {\n event.preventDefault();\n const form = event.target;\n const formData = new FormData(form);\n const email = formData.get('email');\n if (!email) {\n setError( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react_intl__WEBPACK_IMPORTED_MODULE_2__.FormattedMessage, messages.errorMissingEmail));\n return;\n }\n if (!(0,_helpers_validationHelpers__WEBPACK_IMPORTED_MODULE_3__.isValidEmail)(email)) {\n setError( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react_intl__WEBPACK_IMPORTED_MODULE_2__.FormattedMessage, _extends({}, messages.errorInvalidEmail, {\n values: {\n email\n }\n })));\n return;\n }\n const url = new URL(form.action);\n const params = url.searchParams;\n if (tenantId) {\n params.set('tid', tenantId);\n }\n params.set('email', email);\n if (csrf) {\n params.set(csrf.parameterName, csrf.token);\n }\n setError(null);\n setPending(true);\n window.fetch(url, {\n method: 'POST'\n }).then(response => Promise.all([response, response.text()])).then(([response, text]) => {\n if (response.ok) {\n setSuccess( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react_intl__WEBPACK_IMPORTED_MODULE_2__.FormattedMessage, _extends({}, messages.success, {\n values: {\n email: text\n }\n })));\n setError(null);\n } else {\n setSuccess(null);\n if (response.status === 404) {\n setError( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react_intl__WEBPACK_IMPORTED_MODULE_2__.FormattedMessage, _extends({}, messages.errorNotFound, {\n values: {\n email\n }\n })));\n } else if (/requires single sign-on/.test(text)) {\n setError( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react_intl__WEBPACK_IMPORTED_MODULE_2__.FormattedMessage, _extends({}, messages.errorSSORequired, {\n values: {\n email\n }\n })));\n } else {\n setError( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react_intl__WEBPACK_IMPORTED_MODULE_2__.FormattedMessage, _extends({}, messages.error, {\n values: {\n detail: text\n }\n })));\n }\n }\n }).catch(err => {\n setError( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react_intl__WEBPACK_IMPORTED_MODULE_2__.FormattedMessage, _extends({}, messages.error, {\n values: {\n detail: err.message\n }\n })));\n }).finally(() => {\n setPending(false);\n });\n };\n const errorMessage = error ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"p\", {\n className: \"status error\"\n }, error) : undefined;\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react_helmet__WEBPACK_IMPORTED_MODULE_1__.Helmet, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"title\", null, intl.formatMessage(messages.title))), errorMessage, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"main\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"p\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react_intl__WEBPACK_IMPORTED_MODULE_2__.FormattedMessage, messages.prompt)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"form\", {\n method: \"POST\",\n onSubmit: handleSubmit\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"label\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react_intl__WEBPACK_IMPORTED_MODULE_2__.FormattedMessage, messages.email), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"input\", {\n autoComplete: \"email\",\n name: \"email\",\n type: \"text\"\n }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"button\", {\n className: \"send\",\n disabled: isPending,\n type: \"submit\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react_intl__WEBPACK_IMPORTED_MODULE_2__.FormattedMessage, messages.submit))))));\n}\nPasswordResetRequestPage.propTypes = propTypes;\nPasswordResetRequestPage.defaultProps = defaultProps;\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,react_intl__WEBPACK_IMPORTED_MODULE_2__.injectIntl)(PasswordResetRequestPage));\n\n//# sourceURL=webpack://cspaceUI/./src/components/pages/service/PasswordResetRequestPage.jsx?"); /***/ }), /***/ "./src/components/pages/service/ServiceLoginPage.jsx": /*!***********************************************************!*\ !*** ./src/components/pages/service/ServiceLoginPage.jsx ***! \***********************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var react_helmet__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-helmet */ \"./node_modules/react-helmet/es/Helmet.js\");\n/* harmony import */ var react_intl__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-intl */ \"./node_modules/react-intl/lib/index.es.js\");\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\n\n\n\nconst propTypes = {\n csrf: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().object),\n error: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),\n isLogoutSuccess: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool),\n intl: react_intl__WEBPACK_IMPORTED_MODULE_2__.intlShape.isRequired,\n locale: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),\n sso: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().object),\n tenantId: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string)\n};\nconst defaultProps = {\n csrf: null,\n error: null,\n isLogoutSuccess: false,\n locale: 'en-US',\n sso: {},\n tenantId: null\n};\nconst messages = (0,react_intl__WEBPACK_IMPORTED_MODULE_2__.defineMessages)({\n title: {\n \"id\": \"serviceLoginPage.title\",\n \"defaultMessage\": \"Sign in\"\n },\n prompt: {\n \"id\": \"serviceLoginPage.prompt\",\n \"defaultMessage\": \"Please sign in to continue.\"\n },\n username: {\n \"id\": \"serviceLoginPage.username\",\n \"defaultMessage\": \"Email\"\n },\n password: {\n \"id\": \"serviceLoginPage.password\",\n \"defaultMessage\": \"Password\"\n },\n forgotPassword: {\n \"id\": \"serviceLoginPage.forgotPassword\",\n \"defaultMessage\": \"Forgot password\"\n },\n ssoLink: {\n \"id\": \"serviceLoginPage.ssoLink\",\n \"defaultMessage\": \"Continue with {name}\"\n },\n localLogin: {\n \"id\": \"serviceLoginPage.localLogin\",\n \"defaultMessage\": \"Continue with email and password\"\n },\n logoutSuccess: {\n \"id\": \"serviceLoginPage.logoutSuccess\",\n \"defaultMessage\": \"Sign out complete.\"\n },\n errorBadCredentials: {\n \"id\": \"serviceLoginPage.errorBadCredentials\",\n \"defaultMessage\": \"Sign in failed. Incorrect username/password.\"\n }\n});\nfunction ServiceLoginPage(props) {\n const {\n csrf,\n error,\n isLogoutSuccess,\n intl,\n locale,\n sso,\n tenantId\n } = props;\n const ssoLinks = Object.entries(sso).sort((a, b) => a[1].name.localeCompare(b[1].name, locale, {\n sensitivity: 'base'\n })).map(([url, config]) => {\n const {\n icon\n } = config;\n const style = icon ? {\n backgroundImage: `url(${icon})`\n } : undefined;\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"a\", {\n className: \"login\",\n href: url,\n style: style\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react_intl__WEBPACK_IMPORTED_MODULE_2__.FormattedMessage, _extends({}, messages.ssoLink, {\n values: config\n })));\n });\n const ssoPanel = ssoLinks.length > 0 ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", {\n className: \"sso\"\n }, ssoLinks) : undefined;\n const csrfInput = csrf ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"input\", {\n type: \"hidden\",\n name: csrf.parameterName,\n value: csrf.token\n }) : undefined;\n const successMessage = isLogoutSuccess ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"p\", {\n className: \"status success\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react_intl__WEBPACK_IMPORTED_MODULE_2__.FormattedMessage, messages.logoutSuccess)) : undefined;\n let formattedError;\n if (/bad credentials/i.test(error)) {\n formattedError = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react_intl__WEBPACK_IMPORTED_MODULE_2__.FormattedMessage, messages.errorBadCredentials);\n } else {\n formattedError = error;\n }\n const errorMessage = formattedError ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"p\", {\n className: \"status error\"\n }, formattedError) : undefined;\n const tidParam = tenantId ? `?tid=${tenantId}` : '';\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react_helmet__WEBPACK_IMPORTED_MODULE_1__.Helmet, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"title\", null, intl.formatMessage(messages.title))), successMessage, errorMessage, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"main\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"p\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react_intl__WEBPACK_IMPORTED_MODULE_2__.FormattedMessage, messages.prompt)), ssoPanel, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"form\", {\n method: \"POST\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"label\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react_intl__WEBPACK_IMPORTED_MODULE_2__.FormattedMessage, messages.username), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"input\", {\n autoComplete: \"username email\",\n name: \"username\",\n type: \"text\"\n }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"label\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react_intl__WEBPACK_IMPORTED_MODULE_2__.FormattedMessage, messages.password), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"input\", {\n autoComplete: \"current-password\",\n name: \"password\",\n type: \"password\"\n }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", null, csrfInput, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"button\", {\n className: \"login\",\n type: \"submit\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react_intl__WEBPACK_IMPORTED_MODULE_2__.FormattedMessage, messages.localLogin))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"a\", {\n href: `./accounts/requestpasswordreset${tidParam}`\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react_intl__WEBPACK_IMPORTED_MODULE_2__.FormattedMessage, messages.forgotPassword))))));\n}\nServiceLoginPage.propTypes = propTypes;\nServiceLoginPage.defaultProps = defaultProps;\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,react_intl__WEBPACK_IMPORTED_MODULE_2__.injectIntl)(ServiceLoginPage));\n\n//# sourceURL=webpack://cspaceUI/./src/components/pages/service/ServiceLoginPage.jsx?"); /***/ }), /***/ "./src/components/pages/service/ServiceLogoutPage.jsx": /*!************************************************************!*\ !*** ./src/components/pages/service/ServiceLogoutPage.jsx ***! \************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var react_helmet__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-helmet */ \"./node_modules/react-helmet/es/Helmet.js\");\n/* harmony import */ var react_intl__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-intl */ \"./node_modules/react-intl/lib/index.es.js\");\n\n\n\n\nconst propTypes = {\n csrf: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().object),\n intl: react_intl__WEBPACK_IMPORTED_MODULE_2__.intlShape.isRequired\n};\nconst defaultProps = {\n csrf: null\n};\nconst messages = (0,react_intl__WEBPACK_IMPORTED_MODULE_2__.defineMessages)({\n title: {\n \"id\": \"serviceLoginPage.title\",\n \"defaultMessage\": \"Sign out\"\n },\n logout: {\n \"id\": \"serviceLogoutPage.logout\",\n \"defaultMessage\": \"Sign out\"\n }\n});\nfunction ServiceLogoutPage(props) {\n const {\n csrf,\n intl\n } = props;\n const csrfInput = csrf ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"input\", {\n type: \"hidden\",\n name: csrf.parameterName,\n value: csrf.token\n }) : undefined;\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"main\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react_helmet__WEBPACK_IMPORTED_MODULE_1__.Helmet, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"title\", null, intl.formatMessage(messages.title))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"form\", {\n method: \"POST\"\n }, csrfInput, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"button\", {\n className: \"logout\",\n type: \"submit\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react_intl__WEBPACK_IMPORTED_MODULE_2__.FormattedMessage, messages.logout))));\n}\nServiceLogoutPage.propTypes = propTypes;\nServiceLogoutPage.defaultProps = defaultProps;\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,react_intl__WEBPACK_IMPORTED_MODULE_2__.injectIntl)(ServiceLogoutPage));\n\n//# sourceURL=webpack://cspaceUI/./src/components/pages/service/ServiceLogoutPage.jsx?"); /***/ }), /***/ "./src/constants/dataTypes.js": /*!************************************!*\ !*** ./src/constants/dataTypes.js ***! \************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ DATA_TYPE_BOOL: () => (/* binding */ DATA_TYPE_BOOL),\n/* harmony export */ DATA_TYPE_DATE: () => (/* binding */ DATA_TYPE_DATE),\n/* harmony export */ DATA_TYPE_DATETIME: () => (/* binding */ DATA_TYPE_DATETIME),\n/* harmony export */ DATA_TYPE_FLOAT: () => (/* binding */ DATA_TYPE_FLOAT),\n/* harmony export */ DATA_TYPE_INT: () => (/* binding */ DATA_TYPE_INT),\n/* harmony export */ DATA_TYPE_MAP: () => (/* binding */ DATA_TYPE_MAP),\n/* harmony export */ DATA_TYPE_STRING: () => (/* binding */ DATA_TYPE_STRING),\n/* harmony export */ DATA_TYPE_STRUCTURED_DATE: () => (/* binding */ DATA_TYPE_STRUCTURED_DATE)\n/* harmony export */ });\nconst DATA_TYPE_MAP = 'DATA_TYPE_MAP';\nconst DATA_TYPE_STRING = 'DATA_TYPE_STRING';\nconst DATA_TYPE_INT = 'DATA_TYPE_INT';\nconst DATA_TYPE_FLOAT = 'DATA_TYPE_FLOAT';\nconst DATA_TYPE_BOOL = 'DATA_TYPE_BOOL';\nconst DATA_TYPE_DATE = 'DATA_TYPE_DATE';\nconst DATA_TYPE_DATETIME = 'DATA_TYPE_DATETIME';\nconst DATA_TYPE_STRUCTURED_DATE = 'DATA_TYPE_STRUCTURED_DATE';\n\n//# sourceURL=webpack://cspaceUI/./src/constants/dataTypes.js?"); /***/ }), /***/ "./src/constants/errorCodes.js": /*!*************************************!*\ !*** ./src/constants/errorCodes.js ***! \*************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ERR_ACCOUNT_INACTIVE: () => (/* binding */ ERR_ACCOUNT_INACTIVE),\n/* harmony export */ ERR_ACCOUNT_INVALID: () => (/* binding */ ERR_ACCOUNT_INVALID),\n/* harmony export */ ERR_ACCOUNT_NOT_FOUND: () => (/* binding */ ERR_ACCOUNT_NOT_FOUND),\n/* harmony export */ ERR_API: () => (/* binding */ ERR_API),\n/* harmony export */ ERR_AUTH_CODE_REQUEST_NOT_FOUND: () => (/* binding */ ERR_AUTH_CODE_REQUEST_NOT_FOUND),\n/* harmony export */ ERR_COMPUTE: () => (/* binding */ ERR_COMPUTE),\n/* harmony export */ ERR_DATA_TYPE: () => (/* binding */ ERR_DATA_TYPE),\n/* harmony export */ ERR_INVALID_CREDENTIALS: () => (/* binding */ ERR_INVALID_CREDENTIALS),\n/* harmony export */ ERR_INVALID_CSID: () => (/* binding */ ERR_INVALID_CSID),\n/* harmony export */ ERR_INVALID_EMAIL: () => (/* binding */ ERR_INVALID_EMAIL),\n/* harmony export */ ERR_INVALID_PW: () => (/* binding */ ERR_INVALID_PW),\n/* harmony export */ ERR_INVALID_RELATED_TYPE: () => (/* binding */ ERR_INVALID_RELATED_TYPE),\n/* harmony export */ ERR_INVALID_SORT: () => (/* binding */ ERR_INVALID_SORT),\n/* harmony export */ ERR_MISSING_EMAIL: () => (/* binding */ ERR_MISSING_EMAIL),\n/* harmony export */ ERR_MISSING_PW: () => (/* binding */ ERR_MISSING_PW),\n/* harmony export */ ERR_MISSING_PW_CONFIRM: () => (/* binding */ ERR_MISSING_PW_CONFIRM),\n/* harmony export */ ERR_MISSING_REQ_FIELD: () => (/* binding */ ERR_MISSING_REQ_FIELD),\n/* harmony export */ ERR_MISSING_VOCABULARY: () => (/* binding */ ERR_MISSING_VOCABULARY),\n/* harmony export */ ERR_NETWORK: () => (/* binding */ ERR_NETWORK),\n/* harmony export */ ERR_NOT_ALLOWED: () => (/* binding */ ERR_NOT_ALLOWED),\n/* harmony export */ ERR_NOT_FOUND: () => (/* binding */ ERR_NOT_FOUND),\n/* harmony export */ ERR_PW_NOT_CONFIRMED: () => (/* binding */ ERR_PW_NOT_CONFIRMED),\n/* harmony export */ ERR_UNABLE_TO_VALIDATE: () => (/* binding */ ERR_UNABLE_TO_VALIDATE),\n/* harmony export */ ERR_UNKNOWN_RECORD_TYPE: () => (/* binding */ ERR_UNKNOWN_RECORD_TYPE),\n/* harmony export */ ERR_UNKNOWN_SUBRESOURCE: () => (/* binding */ ERR_UNKNOWN_SUBRESOURCE),\n/* harmony export */ ERR_UNKNOWN_VOCABULARY: () => (/* binding */ ERR_UNKNOWN_VOCABULARY),\n/* harmony export */ ERR_VALIDATION: () => (/* binding */ ERR_VALIDATION),\n/* harmony export */ ERR_WRONG_TENANT: () => (/* binding */ ERR_WRONG_TENANT)\n/* harmony export */ });\nconst ERR_NOT_FOUND = 'ERR_NOT_FOUND';\nconst ERR_NOT_ALLOWED = 'ERR_NOT_ALLOWED';\nconst ERR_UNKNOWN_RECORD_TYPE = 'ERR_UNKNOWN_RECORD_TYPE';\nconst ERR_UNKNOWN_VOCABULARY = 'ERR_UNKNOWN_VOCABULARY';\nconst ERR_MISSING_VOCABULARY = 'ERR_MISSING_VOCABULARY';\nconst ERR_UNKNOWN_SUBRESOURCE = 'ERR_UNKNOWN_SUBRESOURCE';\nconst ERR_INVALID_CSID = 'ERR_INVALID_CSID';\nconst ERR_INVALID_RELATED_TYPE = 'ERR_INVALID_RELATED_TYPE';\nconst ERR_INVALID_SORT = 'ERR_INVALID_SORT';\nconst ERR_COMPUTE = 'ERR_COMPUTE';\nconst ERR_API = 'ERR_API';\n\n/*\n * Validation errors\n */\n\n// Generic validation error. A field value is invalid, for an unspecified reason.\nconst ERR_VALIDATION = 'ERR_VALIDATION';\n\n// An unexpected error occurred while trying to validate.\nconst ERR_UNABLE_TO_VALIDATE = 'ERR_UNABLE_TO_VALIDATE';\n\n// A required field does not have a value.\nconst ERR_MISSING_REQ_FIELD = 'ERR_MISSING_REQ_FIELD';\n\n// A field's value does not have the expected data type.\nconst ERR_DATA_TYPE = 'ERR_DATA_TYPE';\n\n/*\n * Password reset errors\n */\n\nconst ERR_MISSING_EMAIL = 'ERR_MISSING_EMAIL';\nconst ERR_INVALID_EMAIL = 'ERR_INVALID_EMAIL';\nconst ERR_MISSING_PW = 'ERR_MISSING_PW';\nconst ERR_MISSING_PW_CONFIRM = 'ERR_MISSING_PW_CONFIRM';\nconst ERR_INVALID_PW = 'ERR_INVALID_PW';\nconst ERR_PW_NOT_CONFIRMED = 'ERR_PW_NOT_CONFIRMED';\n\n/*\n * Login errors\n */\n\nconst ERR_ACCOUNT_INACTIVE = 'ERR_ACCOUNT_INACTIVE';\nconst ERR_ACCOUNT_INVALID = 'ERR_ACCOUNT_INVALID';\nconst ERR_ACCOUNT_NOT_FOUND = 'ERR_ACCOUNT_NOT_FOUND';\nconst ERR_INVALID_CREDENTIALS = 'ERR_INVALID_CREDENTIALS';\nconst ERR_NETWORK = 'ERR_NETWORK';\nconst ERR_WRONG_TENANT = 'ERR_WRONG_TENANT';\nconst ERR_AUTH_CODE_REQUEST_NOT_FOUND = 'ERR_AUTH_CODE_REQUEST_NOT_FOUND';\n\n//# sourceURL=webpack://cspaceUI/./src/constants/errorCodes.js?"); /***/ }), /***/ "./src/constants/xmlNames.js": /*!***********************************!*\ !*** ./src/constants/xmlNames.js ***! \***********************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ DOCUMENT_PROPERTY_NAME: () => (/* binding */ DOCUMENT_PROPERTY_NAME),\n/* harmony export */ NS_PREFIX: () => (/* binding */ NS_PREFIX)\n/* harmony export */ });\nconst NS_PREFIX = 'ns2';\nconst DOCUMENT_PROPERTY_NAME = 'document';\n\n//# sourceURL=webpack://cspaceUI/./src/constants/xmlNames.js?"); /***/ }), /***/ "./src/helpers/configHelpers.js": /*!**************************************!*\ !*** ./src/helpers/configHelpers.js ***! \**************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ applyPlugin: () => (/* binding */ applyPlugin),\n/* harmony export */ applyPlugins: () => (/* binding */ applyPlugins),\n/* harmony export */ configKey: () => (/* binding */ configKey),\n/* harmony export */ dataPathToFieldDescriptorPath: () => (/* binding */ dataPathToFieldDescriptorPath),\n/* harmony export */ evaluatePlugin: () => (/* binding */ evaluatePlugin),\n/* harmony export */ finalizeRecordTypes: () => (/* binding */ finalizeRecordTypes),\n/* harmony export */ findField: () => (/* binding */ findField),\n/* harmony export */ findFieldConfigInPart: () => (/* binding */ findFieldConfigInPart),\n/* harmony export */ findVocabularyUses: () => (/* binding */ findVocabularyUses),\n/* harmony export */ getDefaultSearchRecordType: () => (/* binding */ getDefaultSearchRecordType),\n/* harmony export */ getDefaultSearchVocabulary: () => (/* binding */ getDefaultSearchVocabulary),\n/* harmony export */ getDefaultValue: () => (/* binding */ getDefaultValue),\n/* harmony export */ getDefaults: () => (/* binding */ getDefaults),\n/* harmony export */ getFieldComputer: () => (/* binding */ getFieldComputer),\n/* harmony export */ getFieldCustomValidator: () => (/* binding */ getFieldCustomValidator),\n/* harmony export */ getFieldDataType: () => (/* binding */ getFieldDataType),\n/* harmony export */ getFirstColumnName: () => (/* binding */ getFirstColumnName),\n/* harmony export */ getRecordFieldOptionListName: () => (/* binding */ getRecordFieldOptionListName),\n/* harmony export */ getRecordGroupOptionListName: () => (/* binding */ getRecordGroupOptionListName),\n/* harmony export */ getRecordTypeConfigByServiceDocumentName: () => (/* binding */ getRecordTypeConfigByServiceDocumentName),\n/* harmony export */ getRecordTypeConfigByServiceObjectName: () => (/* binding */ getRecordTypeConfigByServiceObjectName),\n/* harmony export */ getRecordTypeConfigByServicePath: () => (/* binding */ getRecordTypeConfigByServicePath),\n/* harmony export */ getRecordTypeConfigByUri: () => (/* binding */ getRecordTypeConfigByUri),\n/* harmony export */ getRecordTypeNameByServiceObjectName: () => (/* binding */ getRecordTypeNameByServiceObjectName),\n/* harmony export */ getRecordTypeNameByUri: () => (/* binding */ getRecordTypeNameByUri),\n/* harmony export */ getRequiredMessage: () => (/* binding */ getRequiredMessage),\n/* harmony export */ getStickyFields: () => (/* binding */ getStickyFields),\n/* harmony export */ getVocabularyConfigByServicePath: () => (/* binding */ getVocabularyConfigByServicePath),\n/* harmony export */ getVocabularyConfigByShortID: () => (/* binding */ getVocabularyConfigByShortID),\n/* harmony export */ initConfig: () => (/* binding */ initConfig),\n/* harmony export */ initializeExtensionFieldParents: () => (/* binding */ initializeExtensionFieldParents),\n/* harmony export */ initializeExtensions: () => (/* binding */ initializeExtensions),\n/* harmony export */ initializeRecordTypes: () => (/* binding */ initializeRecordTypes),\n/* harmony export */ isAuthority: () => (/* binding */ isAuthority),\n/* harmony export */ isAutocompleteField: () => (/* binding */ isAutocompleteField),\n/* harmony export */ isFieldCloneable: () => (/* binding */ isFieldCloneable),\n/* harmony export */ isFieldRepeating: () => (/* binding */ isFieldRepeating),\n/* harmony export */ isFieldRequired: () => (/* binding */ isFieldRequired),\n/* harmony export */ isFieldViewReadOnly: () => (/* binding */ isFieldViewReadOnly),\n/* harmony export */ isUtility: () => (/* binding */ isUtility),\n/* harmony export */ mergeConfig: () => (/* binding */ mergeConfig),\n/* harmony export */ mergeKey: () => (/* binding */ mergeKey),\n/* harmony export */ mergeStrategy: () => (/* binding */ mergeStrategy),\n/* harmony export */ validateLocation: () => (/* binding */ validateLocation)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var immutable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! immutable */ \"./node_modules/immutable/dist/immutable.js\");\n/* harmony import */ var immutable__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(immutable__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var lodash_mergeWith__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lodash/mergeWith */ \"./node_modules/lodash/mergeWith.js\");\n/* harmony import */ var lodash_mergeWith__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lodash_mergeWith__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var lodash_flatMap__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! lodash/flatMap */ \"./node_modules/lodash/flatMap.js\");\n/* harmony import */ var lodash_flatMap__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(lodash_flatMap__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var lodash_get__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! lodash/get */ \"./node_modules/lodash/get.js\");\n/* harmony import */ var lodash_get__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(lodash_get__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var lodash_set__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! lodash/set */ \"./node_modules/lodash/set.js\");\n/* harmony import */ var lodash_set__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(lodash_set__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var warning__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! warning */ \"./node_modules/warning/warning.js\");\n/* harmony import */ var warning__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(warning__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var _constants_errorCodes__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../constants/errorCodes */ \"./src/constants/errorCodes.js\");\n/* harmony import */ var _constants_dataTypes__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../constants/dataTypes */ \"./src/constants/dataTypes.js\");\n/* harmony import */ var _constants_xmlNames__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../constants/xmlNames */ \"./src/constants/xmlNames.js\");\n/* harmony import */ var _csidHelpers__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./csidHelpers */ \"./src/helpers/csidHelpers.js\");\n\n\n\n\n\n\n\n\n\n\n\nconst onlyDigitsPattern = /^\\d+$/;\nconst isNotNumeric = string => !onlyDigitsPattern.test(string);\nconst configKey = '[config]';\nconst mergeKey = '[merge]';\nconst dataPathToFieldDescriptorPath = dataPath => dataPath.filter(isNotNumeric);\nconst initializeExtensionFieldParents = fieldDescriptor => {\n if (fieldDescriptor) {\n Object.keys(fieldDescriptor).filter(key => key !== configKey).forEach(key => {\n const childFieldDescriptor = fieldDescriptor[key];\n const isExtensionField = lodash_get__WEBPACK_IMPORTED_MODULE_4___default()(childFieldDescriptor, [configKey, 'extensionName']);\n if (isExtensionField) {\n // Make a copy of this field descriptor and its configuration, so that different\n // configuration can be applied to each use of the extension (really wishing I'd made the\n // config an Immutable, so explicit copy wouldn't be necessary).\n\n // Set the extension parent config in the extension field's config.\n\n const childFieldDescriptorCopy = {\n ...childFieldDescriptor,\n [configKey]: {\n ...childFieldDescriptor[configKey],\n extensionParentConfig: fieldDescriptor[configKey]\n }\n };\n\n // eslint-disable-next-line no-param-reassign\n fieldDescriptor[key] = childFieldDescriptorCopy;\n } else {\n initializeExtensionFieldParents(childFieldDescriptor);\n }\n });\n }\n};\n\n/*\n * Initialize the extension configurations in a configuration object. This function mutates the\n * argument configuration.\n *\n * - Set the extensionName property of each top level field in the extension to the extension name\n */\nconst initializeExtensions = config => {\n const {\n extensions\n } = config;\n if (extensions) {\n Object.keys(extensions).forEach(extensionName => {\n const extension = extensions[extensionName];\n const {\n fields\n } = extension;\n if (fields) {\n Object.values(fields).forEach(fieldDescriptor => {\n lodash_set__WEBPACK_IMPORTED_MODULE_5___default()(fieldDescriptor, [configKey, 'extensionName'], extensionName);\n initializeExtensionFieldParents(fieldDescriptor);\n });\n }\n });\n }\n return config;\n};\n\n/*\n * Initialize the record type configurations in a configuration object. This function mutates the\n * argument configuration.\n *\n * - Set the name property of each recordTypes entry to its key\n * - Set the name property of each vocabularies entry to its key\n * - Set the parent property of any extension fields\n */\nconst initializeRecordTypes = config => {\n const keys = ['recordTypes', ['invocables', 'report'], ['invocables', 'batch']];\n keys.forEach(key => {\n const recordTypesConfig = lodash_get__WEBPACK_IMPORTED_MODULE_4___default()(config, key);\n if (recordTypesConfig) {\n Object.keys(recordTypesConfig).forEach(recordTypeName => {\n const recordType = recordTypesConfig[recordTypeName];\n recordType.name =