{"version":3,"file":"react-on-rails-DyW5fD-W.js","sources":["../../../node_modules/react-on-rails/node_package/lib/isServerRenderResult.js","../../../node_modules/react-on-rails/node_package/lib/createReactOutput.js","../../../node_modules/react-on-rails/node_package/lib/clientStartup.js","../../../node_modules/react-on-rails/node_package/lib/handleError.js","../../../node_modules/react-on-rails/node_package/lib/isRenderFunction.js","../../../node_modules/react-on-rails/node_package/lib/ComponentRegistry.js","../../../node_modules/react-on-rails/node_package/lib/StoreRegistry.js","../../../node_modules/react-on-rails/node_package/lib/RenderUtils.js","../../../node_modules/react-on-rails/node_package/lib/scriptSanitizedVal.js","../../../node_modules/react-on-rails/node_package/lib/buildConsoleReplay.js","../../../node_modules/react-on-rails/node_package/lib/serverRenderReactComponent.js","../../../node_modules/react-on-rails/node_package/lib/Authenticity.js","../../../node_modules/react-on-rails/node_package/lib/context.js","../../../node_modules/react-on-rails/node_package/lib/ReactOnRails.js"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isPromise = exports.isServerRenderHash = void 0;\nfunction isServerRenderHash(testValue) {\n return !!(testValue.renderedHtml ||\n testValue.redirectLocation ||\n testValue.routeError ||\n testValue.error);\n}\nexports.isServerRenderHash = isServerRenderHash;\nfunction isPromise(testValue) {\n return !!(testValue.then);\n}\nexports.isPromise = isPromise;\n","\"use strict\";\n/* eslint-disable react/prop-types */\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar react_1 = __importDefault(require(\"react\"));\nvar isServerRenderResult_1 = require(\"./isServerRenderResult\");\n/**\n * Logic to either call the renderFunction or call React.createElement to get the\n * React.Component\n * @param options\n * @param options.componentObj\n * @param options.props\n * @param options.domNodeId\n * @param options.trace\n * @param options.location\n * @returns {ReactElement}\n */\nfunction createReactOutput(_a) {\n var componentObj = _a.componentObj, props = _a.props, railsContext = _a.railsContext, domNodeId = _a.domNodeId, trace = _a.trace, shouldHydrate = _a.shouldHydrate;\n var name = componentObj.name, component = componentObj.component, renderFunction = componentObj.renderFunction;\n if (trace) {\n if (railsContext && railsContext.serverSide) {\n console.log(\"RENDERED \" + name + \" to dom node with id: \" + domNodeId);\n }\n else if (shouldHydrate) {\n console.log(\"HYDRATED \" + name + \" in dom node with id: \" + domNodeId + \" using props, railsContext:\", props, railsContext);\n }\n else {\n console.log(\"RENDERED \" + name + \" to dom node with id: \" + domNodeId + \" with props, railsContext:\", props, railsContext);\n }\n }\n if (renderFunction) {\n // Let's invoke the function to get the result\n if (trace) {\n console.log(name + \" is a renderFunction\");\n }\n var renderFunctionResult = component(props, railsContext);\n if (isServerRenderResult_1.isServerRenderHash(renderFunctionResult)) {\n // We just return at this point, because calling function knows how to handle this case and\n // we can't call React.createElement with this type of Object.\n return renderFunctionResult;\n }\n if (isServerRenderResult_1.isPromise(renderFunctionResult)) {\n // We just return at this point, because calling function knows how to handle this case and\n // we can't call React.createElement with this type of Object.\n return renderFunctionResult;\n }\n if (react_1.default.isValidElement(renderFunctionResult)) {\n // If already a ReactElement, then just return it.\n console.error(\"Warning: ReactOnRails: Your registered render-function (ReactOnRails.register) for \" + name + \"\\nincorrectly returned a React Element (JSX). Instead, return a React Function Component by\\nwrapping your JSX in a function. ReactOnRails v13 will throw error on this, as React Hooks do not\\nwork if you return JSX. Update by wrapping the result JSX of \" + name + \" in a fat arrow function.\");\n return renderFunctionResult;\n }\n // If a component, then wrap in an element\n var reactComponent = renderFunctionResult;\n return react_1.default.createElement(reactComponent, props);\n }\n // else\n return react_1.default.createElement(component, props);\n}\nexports.default = createReactOutput;\n","\"use strict\";\nvar __spreadArray = (this && this.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.clientStartup = exports.reactOnRailsPageLoaded = void 0;\nvar react_dom_1 = __importDefault(require(\"react-dom\"));\nvar createReactOutput_1 = __importDefault(require(\"./createReactOutput\"));\nvar isServerRenderResult_1 = require(\"./isServerRenderResult\");\nvar REACT_ON_RAILS_STORE_ATTRIBUTE = 'data-js-react-on-rails-store';\nfunction findContext() {\n if (typeof window.ReactOnRails !== 'undefined') {\n return window;\n }\n else if (typeof ReactOnRails !== 'undefined') {\n return global;\n }\n throw new Error(\"ReactOnRails is undefined in both global and window namespaces.\\n \");\n}\nfunction debugTurbolinks() {\n var msg = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n msg[_i] = arguments[_i];\n }\n if (!window) {\n return;\n }\n var context = findContext();\n if (context.ReactOnRails && context.ReactOnRails.option('traceTurbolinks')) {\n console.log.apply(console, __spreadArray(['TURBO:'], msg));\n }\n}\nfunction turbolinksInstalled() {\n return (typeof Turbolinks !== 'undefined');\n}\nfunction turboInstalled() {\n var context = findContext();\n if (context.ReactOnRails) {\n return context.ReactOnRails.option('turbo') === true;\n }\n return false;\n}\nfunction reactOnRailsHtmlElements() {\n return document.getElementsByClassName('js-react-on-rails-component');\n}\nfunction forEachReactOnRailsComponentInitialize(fn, railsContext) {\n var els = reactOnRailsHtmlElements();\n for (var i = 0; i < els.length; i += 1) {\n fn(els[i], railsContext);\n }\n}\nfunction initializeStore(el, railsContext) {\n var context = findContext();\n var name = el.getAttribute(REACT_ON_RAILS_STORE_ATTRIBUTE) || \"\";\n var props = (el.textContent !== null) ? JSON.parse(el.textContent) : {};\n var storeGenerator = context.ReactOnRails.getStoreGenerator(name);\n var store = storeGenerator(props, railsContext);\n context.ReactOnRails.setStore(name, store);\n}\nfunction forEachStore(railsContext) {\n var els = document.querySelectorAll(\"[\" + REACT_ON_RAILS_STORE_ATTRIBUTE + \"]\");\n for (var i = 0; i < els.length; i += 1) {\n initializeStore(els[i], railsContext);\n }\n}\nfunction turbolinksVersion5() {\n return (typeof Turbolinks.controller !== 'undefined');\n}\nfunction turbolinksSupported() {\n return Turbolinks.supported;\n}\nfunction delegateToRenderer(componentObj, props, railsContext, domNodeId, trace) {\n var name = componentObj.name, component = componentObj.component, isRenderer = componentObj.isRenderer;\n if (isRenderer) {\n if (trace) {\n console.log(\"DELEGATING TO RENDERER \" + name + \" for dom node with id: \" + domNodeId + \" with props, railsContext:\", props, railsContext);\n }\n component(props, railsContext, domNodeId);\n return true;\n }\n return false;\n}\nfunction domNodeIdForEl(el) {\n return el.getAttribute('data-dom-id') || \"\";\n}\n/**\n * Used for client rendering by ReactOnRails. Either calls ReactDOM.hydrate, ReactDOM.render, or\n * delegates to a renderer registered by the user.\n * @param el\n */\nfunction render(el, railsContext) {\n var context = findContext();\n // This must match lib/react_on_rails/helper.rb\n var name = el.getAttribute('data-component-name') || \"\";\n var domNodeId = domNodeIdForEl(el);\n var props = (el.textContent !== null) ? JSON.parse(el.textContent) : {};\n var trace = el.getAttribute('data-trace') === \"true\";\n try {\n var domNode = document.getElementById(domNodeId);\n if (domNode) {\n var componentObj = context.ReactOnRails.getComponent(name);\n if (delegateToRenderer(componentObj, props, railsContext, domNodeId, trace)) {\n return;\n }\n // Hydrate if available and was server rendered\n var shouldHydrate = !!react_dom_1.default.hydrate && !!domNode.innerHTML;\n var reactElementOrRouterResult = createReactOutput_1.default({\n componentObj: componentObj,\n props: props,\n domNodeId: domNodeId,\n trace: trace,\n railsContext: railsContext,\n shouldHydrate: shouldHydrate,\n });\n if (isServerRenderResult_1.isServerRenderHash(reactElementOrRouterResult)) {\n throw new Error(\"You returned a server side type of react-router error: \" + JSON.stringify(reactElementOrRouterResult) + \"\\nYou should return a React.Component always for the client side entry point.\");\n }\n else if (shouldHydrate) {\n react_dom_1.default.hydrate(reactElementOrRouterResult, domNode);\n }\n else {\n react_dom_1.default.render(reactElementOrRouterResult, domNode);\n }\n }\n }\n catch (e) {\n e.message = \"ReactOnRails encountered an error while rendering component: \" + name + \".\\n\" +\n (\"Original message: \" + e.message);\n throw e;\n }\n}\nfunction parseRailsContext() {\n var el = document.getElementById('js-react-on-rails-context');\n if (!el) {\n // The HTML page will not have an element with ID 'js-react-on-rails-context' if there are no\n // react on rails components\n return null;\n }\n if (!el.textContent) {\n throw new Error(\"The HTML element with ID 'js-react-on-rails-context' has no textContent\");\n }\n return JSON.parse(el.textContent);\n}\nfunction reactOnRailsPageLoaded() {\n debugTurbolinks('reactOnRailsPageLoaded');\n var railsContext = parseRailsContext();\n // If no react on rails components\n if (!railsContext)\n return;\n forEachStore(railsContext);\n forEachReactOnRailsComponentInitialize(render, railsContext);\n}\nexports.reactOnRailsPageLoaded = reactOnRailsPageLoaded;\nfunction unmount(el) {\n var domNodeId = domNodeIdForEl(el);\n var domNode = document.getElementById(domNodeId);\n if (domNode === null) {\n return;\n }\n try {\n react_dom_1.default.unmountComponentAtNode(domNode);\n }\n catch (e) {\n console.info(\"Caught error calling unmountComponentAtNode: \" + e.message + \" for domNode\", domNode, e);\n }\n}\nfunction reactOnRailsPageUnloaded() {\n debugTurbolinks('reactOnRailsPageUnloaded');\n var els = reactOnRailsHtmlElements();\n for (var i = 0; i < els.length; i += 1) {\n unmount(els[i]);\n }\n}\nfunction renderInit() {\n // Install listeners when running on the client (browser).\n // We must do this check for turbolinks AFTER the document is loaded because we load the\n // Webpack bundles first.\n if ((!turbolinksInstalled() || !turbolinksSupported()) && !turboInstalled()) {\n debugTurbolinks('NOT USING TURBOLINKS: calling reactOnRailsPageLoaded');\n reactOnRailsPageLoaded();\n return;\n }\n if (turboInstalled()) {\n debugTurbolinks('USING TURBO: document added event listeners ' +\n 'turbo:before-render and turbo:render.');\n document.addEventListener('turbo:before-render', reactOnRailsPageUnloaded);\n document.addEventListener('turbo:render', reactOnRailsPageLoaded);\n reactOnRailsPageLoaded();\n }\n else if (turbolinksVersion5()) {\n debugTurbolinks('USING TURBOLINKS 5: document added event listeners ' +\n 'turbolinks:before-render and turbolinks:render.');\n document.addEventListener('turbolinks:before-render', reactOnRailsPageUnloaded);\n document.addEventListener('turbolinks:render', reactOnRailsPageLoaded);\n reactOnRailsPageLoaded();\n }\n else {\n debugTurbolinks('USING TURBOLINKS 2: document added event listeners page:before-unload and ' +\n 'page:change.');\n document.addEventListener('page:before-unload', reactOnRailsPageUnloaded);\n document.addEventListener('page:change', reactOnRailsPageLoaded);\n }\n}\nfunction isWindow(context) {\n return context.document !== undefined;\n}\nfunction clientStartup(context) {\n // Check if server rendering\n if (!isWindow(context)) {\n return;\n }\n var document = context.document;\n // Tried with a file local variable, but the install handler gets called twice.\n // eslint-disable-next-line no-underscore-dangle\n if (context.__REACT_ON_RAILS_EVENT_HANDLERS_RAN_ONCE__) {\n return;\n }\n // eslint-disable-next-line no-underscore-dangle, no-param-reassign\n context.__REACT_ON_RAILS_EVENT_HANDLERS_RAN_ONCE__ = true;\n debugTurbolinks('Adding DOMContentLoaded event to install event listeners.');\n // So long as the document is not loading, we can assume:\n // The document has finished loading and the document has been parsed\n // but sub-resources such as images, stylesheets and frames are still loading.\n // If lazy asynch loading is used, such as with loadable-components, then the init\n // function will install some handler that will properly know when to do hyrdation.\n if (document.readyState !== 'loading') {\n window.setTimeout(renderInit);\n }\n else {\n document.addEventListener('DOMContentLoaded', renderInit);\n }\n}\nexports.clientStartup = clientStartup;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar react_1 = __importDefault(require(\"react\"));\nvar server_1 = __importDefault(require(\"react-dom/server\"));\nfunction handleRenderFunctionIssue(options) {\n var e = options.e, name = options.name;\n var msg = '';\n if (name) {\n var lastLine = 'A Render-Function takes a single arg of props (and the location for react-router) ' +\n 'and returns a ReactElement.';\n var shouldBeRenderFunctionError = \"ERROR: ReactOnRails is incorrectly detecting Render-Function to be false. The React\\ncomponent '\" + name + \"' seems to be a Render-Function.\\n\" + lastLine;\n var reMatchShouldBeGeneratorError = /Can't add property context, object is not extensible/;\n if (reMatchShouldBeGeneratorError.test(e.message)) {\n msg += shouldBeRenderFunctionError + \"\\n\\n\";\n console.error(shouldBeRenderFunctionError);\n }\n shouldBeRenderFunctionError =\n \"ERROR: ReactOnRails is incorrectly detecting renderFunction to be true, but the React\\ncomponent '\" + name + \"' is not a Render-Function.\\n\" + lastLine;\n var reMatchShouldNotBeGeneratorError = /Cannot call a class as a function/;\n if (reMatchShouldNotBeGeneratorError.test(e.message)) {\n msg += shouldBeRenderFunctionError + \"\\n\\n\";\n console.error(shouldBeRenderFunctionError);\n }\n }\n return msg;\n}\nvar handleError = function (options) {\n var e = options.e, jsCode = options.jsCode, serverSide = options.serverSide;\n console.error('Exception in rendering!');\n var msg = handleRenderFunctionIssue(options);\n if (jsCode) {\n console.error(\"JS code was: \" + jsCode);\n }\n if (e.fileName) {\n console.error(\"location: \" + e.fileName + \":\" + e.lineNumber);\n }\n console.error(\"message: \" + e.message);\n console.error(\"stack: \" + e.stack);\n if (serverSide) {\n msg += \"Exception in rendering!\\n\" + (e.fileName ? \"\\nlocation: \" + e.fileName + \":\" + e.lineNumber : '') + \"\\nMessage: \" + e.message + \"\\n\\n\" + e.stack;\n var reactElement = react_1.default.createElement('pre', null, msg);\n return server_1.default.renderToString(reactElement);\n }\n return \"undefined\";\n};\nexports.default = handleError;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * Used to determine we'll call be calling React.createElement on the component of if this is a\n * Render-Function used return a function that takes props to return a React element\n * @param component\n * @returns {boolean}\n */\nfunction isRenderFunction(component) {\n // No for es5 or es6 React Component\n if (component.prototype &&\n component.prototype.isReactComponent) {\n return false;\n }\n if (component.renderFunction) {\n return true;\n }\n // If zero or one args, then we know that this is a regular function that will\n // return a React component\n if (component.length >= 2) {\n return true;\n }\n return false;\n}\nexports.default = isRenderFunction;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar isRenderFunction_1 = __importDefault(require(\"./isRenderFunction\"));\nvar registeredComponents = new Map();\nexports.default = {\n /**\n * @param components { component1: component1, component2: component2, etc. }\n */\n register: function (components) {\n Object.keys(components).forEach(function (name) {\n if (registeredComponents.has(name)) {\n console.warn('Called register for component that is already registered', name);\n }\n var component = components[name];\n if (!component) {\n throw new Error(\"Called register with null component named \" + name);\n }\n var renderFunction = isRenderFunction_1.default(component);\n var isRenderer = renderFunction && component.length === 3;\n registeredComponents.set(name, {\n name: name,\n component: component,\n renderFunction: renderFunction,\n isRenderer: isRenderer,\n });\n });\n },\n /**\n * @param name\n * @returns { name, component, isRenderFunction, isRenderer }\n */\n get: function (name) {\n if (registeredComponents.has(name)) {\n return registeredComponents.get(name);\n }\n var keys = Array.from(registeredComponents.keys()).join(', ');\n throw new Error(\"Could not find component registered with name \" + name + \". Registered component names include [ \" + keys + \" ]. Maybe you forgot to register the component?\");\n },\n /**\n * Get a Map containing all registered components. Useful for debugging.\n * @returns Map where key is the component name and values are the\n * { name, component, renderFunction, isRenderer}\n */\n components: function () {\n return registeredComponents;\n },\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar registeredStoreGenerators = new Map();\nvar hydratedStores = new Map();\nexports.default = {\n /**\n * Register a store generator, a function that takes props and returns a store.\n * @param storeGenerators { name1: storeGenerator1, name2: storeGenerator2 }\n */\n register: function (storeGenerators) {\n Object.keys(storeGenerators).forEach(function (name) {\n if (registeredStoreGenerators.has(name)) {\n console.warn('Called registerStore for store that is already registered', name);\n }\n var store = storeGenerators[name];\n if (!store) {\n throw new Error('Called ReactOnRails.registerStores with a null or undefined as a value ' +\n (\"for the store generator with key \" + name + \".\"));\n }\n registeredStoreGenerators.set(name, store);\n });\n },\n /**\n * Used by components to get the hydrated store which contains props.\n * @param name\n * @param throwIfMissing Defaults to true. Set to false to have this call return undefined if\n * there is no store with the given name.\n * @returns Redux Store, possibly hydrated\n */\n getStore: function (name, throwIfMissing) {\n if (throwIfMissing === void 0) { throwIfMissing = true; }\n if (hydratedStores.has(name)) {\n return hydratedStores.get(name);\n }\n var storeKeys = Array.from(hydratedStores.keys()).join(', ');\n if (storeKeys.length === 0) {\n var msg = \"There are no stores hydrated and you are requesting the store \" + name + \".\\nThis can happen if you are server rendering and either:\\n1. You do not call redux_store near the top of your controller action's view (not the layout)\\n and before any call to react_component.\\n2. You do not render redux_store_hydration_data anywhere on your page.\";\n throw new Error(msg);\n }\n if (throwIfMissing) {\n console.log('storeKeys', storeKeys);\n throw new Error(\"Could not find hydrated store with name '\" + name + \"'. \" +\n (\"Hydrated store names include [\" + storeKeys + \"].\"));\n }\n return undefined;\n },\n /**\n * Internally used function to get the store creator that was passed to `register`.\n * @param name\n * @returns storeCreator with given name\n */\n getStoreGenerator: function (name) {\n if (registeredStoreGenerators.has(name)) {\n return registeredStoreGenerators.get(name);\n }\n var storeKeys = Array.from(registeredStoreGenerators.keys()).join(', ');\n throw new Error(\"Could not find store registered with name '\" + name + \"'. Registered store \" +\n (\"names include [ \" + storeKeys + \" ]. Maybe you forgot to register the store?\"));\n },\n /**\n * Internally used function to set the hydrated store after a Rails page is loaded.\n * @param name\n * @param store (not the storeGenerator, but the hydrated store)\n */\n setStore: function (name, store) {\n hydratedStores.set(name, store);\n },\n /**\n * Internally used function to completely clear hydratedStores Map.\n */\n clearHydratedStores: function () {\n hydratedStores.clear();\n },\n /**\n * Get a Map containing all registered store generators. Useful for debugging.\n * @returns Map where key is the component name and values are the store generators.\n */\n storeGenerators: function () {\n return registeredStoreGenerators;\n },\n /**\n * Get a Map containing all hydrated stores. Useful for debugging.\n * @returns Map where key is the component name and values are the hydrated stores.\n */\n stores: function () {\n return hydratedStores;\n },\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = {\n wrapInScriptTags: function (scriptId, scriptBody) {\n if (!scriptBody) {\n return '';\n }\n return \"\\n\";\n },\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = (function (val) {\n // Replace closing\n var re = /<\\/\\W*script/gi;\n return val.replace(re, '(/script');\n});\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.consoleReplay = void 0;\nvar RenderUtils_1 = __importDefault(require(\"./RenderUtils\"));\nvar scriptSanitizedVal_1 = __importDefault(require(\"./scriptSanitizedVal\"));\nfunction consoleReplay() {\n // console.history is a global polyfill used in server rendering.\n // $FlowFixMe\n if (!(console.history instanceof Array)) {\n return '';\n }\n var lines = console.history.map(function (msg) {\n var stringifiedList = msg.arguments.map(function (arg) {\n var val;\n try {\n val = (typeof arg === 'string' || arg instanceof String) ? arg : JSON.stringify(arg);\n if (val === undefined) {\n val = 'undefined';\n }\n }\n catch (e) {\n val = e.message + \": \" + arg;\n }\n return scriptSanitizedVal_1.default(val);\n });\n return \"console.\" + msg.level + \".apply(console, \" + JSON.stringify(stringifiedList) + \");\";\n });\n return lines.join('\\n');\n}\nexports.consoleReplay = consoleReplay;\nfunction buildConsoleReplay() {\n return RenderUtils_1.default.wrapInScriptTags('consoleReplayLog', consoleReplay());\n}\nexports.default = buildConsoleReplay;\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar server_1 = __importDefault(require(\"react-dom/server\"));\nvar ComponentRegistry_1 = __importDefault(require(\"./ComponentRegistry\"));\nvar createReactOutput_1 = __importDefault(require(\"./createReactOutput\"));\nvar isServerRenderResult_1 = require(\"./isServerRenderResult\");\nvar buildConsoleReplay_1 = __importDefault(require(\"./buildConsoleReplay\"));\nvar handleError_1 = __importDefault(require(\"./handleError\"));\nfunction serverRenderReactComponent(options) {\n var _this = this;\n var name = options.name, domNodeId = options.domNodeId, trace = options.trace, props = options.props, railsContext = options.railsContext, renderingReturnsPromises = options.renderingReturnsPromises, throwJsErrors = options.throwJsErrors;\n var renderResult = null;\n var hasErrors = false;\n var renderingError = null;\n try {\n var componentObj = ComponentRegistry_1.default.get(name);\n if (componentObj.isRenderer) {\n throw new Error(\"Detected a renderer while server rendering component '\" + name + \"'. See https://github.com/shakacode/react_on_rails#renderer-functions\");\n }\n var reactRenderingResult_1 = createReactOutput_1.default({\n componentObj: componentObj,\n domNodeId: domNodeId,\n trace: trace,\n props: props,\n railsContext: railsContext,\n });\n var processServerRenderHash = function () {\n // We let the client side handle any redirect\n // Set hasErrors in case we want to throw a Rails exception\n hasErrors = !!reactRenderingResult_1.routeError;\n if (hasErrors) {\n console.error(\"React Router ERROR: \" + JSON.stringify(reactRenderingResult_1.routeError));\n }\n if (reactRenderingResult_1.redirectLocation) {\n if (trace) {\n var redirectLocation = reactRenderingResult_1.redirectLocation;\n var redirectPath = redirectLocation.pathname + redirectLocation.search;\n console.log(\" ROUTER REDIRECT: \" + name + \" to dom node with id: \" + domNodeId + \", redirect to \" + redirectPath);\n }\n // For redirects on server rendering, we can't stop Rails from returning the same result.\n // Possibly, someday, we could have the rails server redirect.\n return '';\n }\n return reactRenderingResult_1.renderedHtml;\n };\n var processPromise = function () {\n if (!renderingReturnsPromises) {\n console.error('Your render function returned a Promise, which is only supported by a node renderer, not ExecJS.');\n }\n return reactRenderingResult_1;\n };\n var processReactElement = function () {\n try {\n return server_1.default.renderToString(reactRenderingResult_1);\n }\n catch (error) {\n console.error(\"Invalid call to renderToString. Possibly you have a renderFunction, a function that already\\ncalls renderToString, that takes one parameter. You need to add an extra unused parameter to identify this function\\nas a renderFunction and not a simple React Function Component.\");\n throw error;\n }\n };\n if (isServerRenderResult_1.isServerRenderHash(reactRenderingResult_1)) {\n renderResult = processServerRenderHash();\n }\n else if (isServerRenderResult_1.isPromise(reactRenderingResult_1)) {\n renderResult = processPromise();\n }\n else {\n renderResult = processReactElement();\n }\n }\n catch (e) {\n if (throwJsErrors) {\n throw e;\n }\n hasErrors = true;\n renderResult = handleError_1.default({\n e: e,\n name: name,\n serverSide: true,\n });\n renderingError = e;\n }\n var consoleReplayScript = buildConsoleReplay_1.default();\n var addRenderingErrors = function (resultObject, renderError) {\n resultObject.renderingError = {\n message: renderError.message,\n stack: renderError.stack,\n };\n };\n if (renderingReturnsPromises) {\n var resolveRenderResult = function () { return __awaiter(_this, void 0, void 0, function () {\n var promiseResult, e_1;\n var _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _b.trys.push([0, 2, , 3]);\n _a = {};\n return [4 /*yield*/, renderResult];\n case 1:\n promiseResult = (_a.html = _b.sent(),\n _a.consoleReplayScript = consoleReplayScript,\n _a.hasErrors = hasErrors,\n _a);\n return [3 /*break*/, 3];\n case 2:\n e_1 = _b.sent();\n if (throwJsErrors) {\n throw e_1;\n }\n promiseResult = {\n html: handleError_1.default({\n e: e_1,\n name: name,\n serverSide: true,\n }),\n consoleReplayScript: consoleReplayScript,\n hasErrors: true,\n };\n renderingError = e_1;\n return [3 /*break*/, 3];\n case 3:\n if (renderingError !== null) {\n addRenderingErrors(promiseResult, renderingError);\n }\n return [2 /*return*/, promiseResult];\n }\n });\n }); };\n return resolveRenderResult();\n }\n var result = {\n html: renderResult,\n consoleReplayScript: consoleReplayScript,\n hasErrors: hasErrors,\n };\n if (renderingError) {\n addRenderingErrors(result, renderingError);\n }\n return JSON.stringify(result);\n}\nexports.default = serverRenderReactComponent;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = {\n authenticityToken: function () {\n var token = document.querySelector('meta[name=\"csrf-token\"]');\n if (token && (token instanceof window.HTMLMetaElement)) {\n return token.content;\n }\n return null;\n },\n authenticityHeaders: function (otherHeaders) {\n if (otherHeaders === void 0) { otherHeaders = {}; }\n return Object.assign(otherHeaders, {\n 'X-CSRF-Token': this.authenticityToken(),\n 'X-Requested-With': 'XMLHttpRequest',\n });\n },\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * Get the context, be it window or global\n * @returns {boolean|Window|*|context}\n */\nfunction context() {\n return ((typeof window !== 'undefined') && window) ||\n ((typeof global !== 'undefined') && global) ||\n this;\n}\nexports.default = context;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar react_dom_1 = __importDefault(require(\"react-dom\"));\nvar ClientStartup = __importStar(require(\"./clientStartup\"));\nvar handleError_1 = __importDefault(require(\"./handleError\"));\nvar ComponentRegistry_1 = __importDefault(require(\"./ComponentRegistry\"));\nvar StoreRegistry_1 = __importDefault(require(\"./StoreRegistry\"));\nvar serverRenderReactComponent_1 = __importDefault(require(\"./serverRenderReactComponent\"));\nvar buildConsoleReplay_1 = __importDefault(require(\"./buildConsoleReplay\"));\nvar createReactOutput_1 = __importDefault(require(\"./createReactOutput\"));\nvar Authenticity_1 = __importDefault(require(\"./Authenticity\"));\nvar context_1 = __importDefault(require(\"./context\"));\nvar ctx = context_1.default();\nif (ctx === undefined) {\n throw new Error(\"The context (usually Window or NodeJS's Global) is undefined.\");\n}\nvar DEFAULT_OPTIONS = {\n traceTurbolinks: false,\n turbo: false,\n};\nctx.ReactOnRails = {\n options: {},\n /**\n * Main entry point to using the react-on-rails npm package. This is how Rails will be able to\n * find you components for rendering.\n * @param components (key is component name, value is component)\n */\n register: function (components) {\n ComponentRegistry_1.default.register(components);\n },\n /**\n * Allows registration of store generators to be used by multiple react components on one Rails\n * view. store generators are functions that take one arg, props, and return a store. Note that\n * the setStore API is different in that it's the actual store hydrated with props.\n * @param stores (keys are store names, values are the store generators)\n */\n registerStore: function (stores) {\n if (!stores) {\n throw new Error('Called ReactOnRails.registerStores with a null or undefined, rather than ' +\n 'an Object with keys being the store names and the values are the store generators.');\n }\n StoreRegistry_1.default.register(stores);\n },\n /**\n * Allows retrieval of the store by name. This store will be hydrated by any Rails form props.\n * Pass optional param throwIfMissing = false if you want to use this call to get back null if the\n * store with name is not registered.\n * @param name\n * @param throwIfMissing Defaults to true. Set to false to have this call return undefined if\n * there is no store with the given name.\n * @returns Redux Store, possibly hydrated\n */\n getStore: function (name, throwIfMissing) {\n if (throwIfMissing === void 0) { throwIfMissing = true; }\n return StoreRegistry_1.default.getStore(name, throwIfMissing);\n },\n /**\n * Set options for ReactOnRails, typically before you call ReactOnRails.register\n * Available Options:\n * `traceTurbolinks: true|false Gives you debugging messages on Turbolinks events\n * `turbo: true|false Turbo (the follower of Turbolinks) events will be registered, if set to true.\n */\n setOptions: function (newOptions) {\n if (typeof newOptions.traceTurbolinks !== 'undefined') {\n this.options.traceTurbolinks = newOptions.traceTurbolinks;\n // eslint-disable-next-line no-param-reassign\n delete newOptions.traceTurbolinks;\n }\n if (typeof newOptions.turbo !== 'undefined') {\n this.options.turbo = newOptions.turbo;\n // eslint-disable-next-line no-param-reassign\n delete newOptions.turbo;\n }\n if (Object.keys(newOptions).length > 0) {\n throw new Error(\"Invalid options passed to ReactOnRails.options: \" + JSON.stringify(newOptions));\n }\n },\n /**\n * Allow directly calling the page loaded script in case the default events that trigger react\n * rendering are not sufficient, such as when loading JavaScript asynchronously with TurboLinks:\n * More details can be found here:\n * https://github.com/shakacode/react_on_rails/blob/master/docs/additional-reading/turbolinks.md\n */\n reactOnRailsPageLoaded: function () {\n ClientStartup.reactOnRailsPageLoaded();\n },\n /**\n * Returns CSRF authenticity token inserted by Rails csrf_meta_tags\n * @returns String or null\n */\n authenticityToken: function () {\n return Authenticity_1.default.authenticityToken();\n },\n /**\n * Returns header with csrf authenticity token and XMLHttpRequest\n * @param {*} other headers\n * @returns {*} header\n */\n authenticityHeaders: function (otherHeaders) {\n if (otherHeaders === void 0) { otherHeaders = {}; }\n return Authenticity_1.default.authenticityHeaders(otherHeaders);\n },\n // /////////////////////////////////////////////////////////////////////////////\n // INTERNALLY USED APIs\n // /////////////////////////////////////////////////////////////////////////////\n /**\n * Retrieve an option by key.\n * @param key\n * @returns option value\n */\n option: function (key) {\n return this.options[key];\n },\n /**\n * Allows retrieval of the store generator by name. This is used internally by ReactOnRails after\n * a rails form loads to prepare stores.\n * @param name\n * @returns Redux Store generator function\n */\n getStoreGenerator: function (name) {\n return StoreRegistry_1.default.getStoreGenerator(name);\n },\n /**\n * Allows saving the store populated by Rails form props. Used internally by ReactOnRails.\n * @param name\n * @returns Redux Store, possibly hydrated\n */\n setStore: function (name, store) {\n return StoreRegistry_1.default.setStore(name, store);\n },\n /**\n * Clears hydratedStores to avoid accidental usage of wrong store hydrated in previous/parallel\n * request.\n */\n clearHydratedStores: function () {\n StoreRegistry_1.default.clearHydratedStores();\n },\n /**\n * ReactOnRails.render(\"HelloWorldApp\", {name: \"Stranger\"}, 'app');\n *\n * Does this:\n * ReactDOM.render(React.createElement(HelloWorldApp, {name: \"Stranger\"}),\n * document.getElementById('app'))\n *\n * @param name Name of your registered component\n * @param props Props to pass to your component\n * @param domNodeId\n * @param hydrate Pass truthy to update server rendered html. Default is falsy\n * @returns {virtualDomElement} Reference to your component's backing instance\n */\n render: function (name, props, domNodeId, hydrate) {\n var componentObj = ComponentRegistry_1.default.get(name);\n var reactElement = createReactOutput_1.default({ componentObj: componentObj, props: props, domNodeId: domNodeId });\n var render = hydrate ? react_dom_1.default.hydrate : react_dom_1.default.render;\n // eslint-disable-next-line react/no-render-return-value\n return render(reactElement, document.getElementById(domNodeId));\n },\n /**\n * Get the component that you registered\n * @param name\n * @returns {name, component, renderFunction, isRenderer}\n */\n getComponent: function (name) {\n return ComponentRegistry_1.default.get(name);\n },\n /**\n * Used by server rendering by Rails\n * @param options\n */\n serverRenderReactComponent: function (options) {\n return serverRenderReactComponent_1.default(options);\n },\n /**\n * Used by Rails to catch errors in rendering\n * @param options\n */\n handleError: function (options) {\n return handleError_1.default(options);\n },\n /**\n * Used by Rails server rendering to replay console messages.\n */\n buildConsoleReplay: function () {\n return buildConsoleReplay_1.default();\n },\n /**\n * Get an Object containing all registered components. Useful for debugging.\n * @returns {*}\n */\n registeredComponents: function () {\n return ComponentRegistry_1.default.components();\n },\n /**\n * Get an Object containing all registered store generators. Useful for debugging.\n * @returns {*}\n */\n storeGenerators: function () {\n return StoreRegistry_1.default.storeGenerators();\n },\n /**\n * Get an Object containing all hydrated stores. Useful for debugging.\n * @returns {*}\n */\n stores: function () {\n return StoreRegistry_1.default.stores();\n },\n resetOptions: function () {\n this.options = Object.assign({}, DEFAULT_OPTIONS);\n },\n};\nctx.ReactOnRails.resetOptions();\nClientStartup.clientStartup(ctx);\nexports.default = ctx.ReactOnRails;\n"],"names":["isServerRenderResult","isServerRenderHash","testValue","isPromise","__importDefault","this","mod","createReactOutput_1","react_1","require$$0","isServerRenderResult_1","require$$1","createReactOutput","_a","componentObj","props","railsContext","domNodeId","trace","shouldHydrate","name","component","renderFunction","renderFunctionResult","reactComponent","__spreadArray","to","from","i","il","j","clientStartup_1","react_dom_1","require$$2","REACT_ON_RAILS_STORE_ATTRIBUTE","findContext","global","debugTurbolinks","msg","_i","context","turbolinksInstalled","turboInstalled","reactOnRailsHtmlElements","forEachReactOnRailsComponentInitialize","fn","els","initializeStore","el","storeGenerator","store","forEachStore","turbolinksVersion5","turbolinksSupported","delegateToRenderer","isRenderer","domNodeIdForEl","render","domNode","reactElementOrRouterResult","e","parseRailsContext","reactOnRailsPageLoaded","unmount","reactOnRailsPageUnloaded","renderInit","isWindow","clientStartup","document","handleError_1","server_1","handleRenderFunctionIssue","options","lastLine","shouldBeRenderFunctionError","reMatchShouldBeGeneratorError","reMatchShouldNotBeGeneratorError","handleError","jsCode","serverSide","reactElement","isRenderFunction_1","isRenderFunction","ComponentRegistry","registeredComponents","components","keys","StoreRegistry","registeredStoreGenerators","hydratedStores","storeGenerators","throwIfMissing","storeKeys","RenderUtils","scriptId","scriptBody","scriptSanitizedVal","val","re","buildConsoleReplay_1","RenderUtils_1","scriptSanitizedVal_1","consoleReplay","lines","stringifiedList","arg","buildConsoleReplay","__awaiter","thisArg","_arguments","P","generator","adopt","value","resolve","reject","fulfilled","step","rejected","result","__generator","body","_","t","f","y","g","verb","n","v","op","serverRenderReactComponent_1","ComponentRegistry_1","require$$3","require$$4","require$$5","serverRenderReactComponent","_this","renderingReturnsPromises","throwJsErrors","renderResult","hasErrors","renderingError","reactRenderingResult_1","processServerRenderHash","redirectLocation","redirectPath","processPromise","processReactElement","error","consoleReplayScript","addRenderingErrors","resultObject","renderError","resolveRenderResult","promiseResult","e_1","_b","Authenticity","token","otherHeaders","context_1","__createBinding","o","m","k","k2","__setModuleDefault","__importStar","ReactOnRails","ClientStartup","StoreRegistry_1","require$$6","require$$7","Authenticity_1","require$$8","require$$9","ctx","DEFAULT_OPTIONS","stores","newOptions","key","hydrate","_default"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13]}