You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							80 lines
						
					
					
						
							2.5 KiB
						
					
					
				
			
		
		
	
	
							80 lines
						
					
					
						
							2.5 KiB
						
					
					
				| "use strict";
 | |
| 
 | |
| Object.defineProperty(exports, "__esModule", {
 | |
|   value: true
 | |
| });
 | |
| exports.default = void 0;
 | |
| 
 | |
| var _designSystem = require("@adminjs/design-system");
 | |
| 
 | |
| var _viewHelpers = _interopRequireDefault(require("../backend/utils/view-helpers/view-helpers"));
 | |
| 
 | |
| var _store = require("./store");
 | |
| 
 | |
| var _optionsParser = require("../backend/utils/options-parser/options-parser");
 | |
| 
 | |
| function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
 | |
| 
 | |
| /* eslint-disable @typescript-eslint/no-unused-vars */
 | |
| 
 | |
| /**
 | |
|  * Renders (SSR) html for given location
 | |
|  *
 | |
|  * @param {AdminJS} admin
 | |
|  * @param {Object} [currentAdmin]
 | |
|  * @param {String} currentAdmin.email
 | |
|  * @param {String} location='/'
 | |
|  *
 | |
|  * @private
 | |
|  */
 | |
| const html = async (admin, currentAdmin, location = '/') => {
 | |
|   const h = new _viewHelpers.default({
 | |
|     options: admin.options
 | |
|   });
 | |
|   const store = await (0, _store.initializeStore)(admin, currentAdmin);
 | |
|   const reduxState = store.getState();
 | |
|   const {
 | |
|     branding,
 | |
|     assets
 | |
|   } = reduxState;
 | |
|   const scripts = (assets && assets.scripts || []).map(s => `<script src="${s}"></script>`);
 | |
|   const styles = (assets && assets.styles || []).map(l => `<link rel="stylesheet" type="text/css" href="${l}">`);
 | |
|   const theme = (0, _designSystem.combineStyles)(branding.theme || {});
 | |
|   const faviconTag = (0, _optionsParser.getFaviconFromBranding)(branding);
 | |
|   return `
 | |
|     <!DOCTYPE html>
 | |
|     <html>
 | |
|     <head>
 | |
|       <script>
 | |
|         window.REDUX_STATE = ${JSON.stringify(reduxState)};
 | |
|         window.THEME = ${JSON.stringify(theme)};
 | |
|         window.AdminJS = { Components: {} };
 | |
|       </script>
 | |
|       <meta charset="utf-8">
 | |
|       <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
 | |
|       <title>${branding.companyName}</title>
 | |
|       ${faviconTag}
 | |
| 
 | |
|       <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,400,700" type="text/css">
 | |
| 
 | |
|       <script src="${h.assetPath('global.bundle.js', assets)}"></script>
 | |
|       <script src="${h.assetPath('design-system.bundle.js', assets)}"></script>
 | |
|       <script src="${h.assetPath('app.bundle.js', assets)}"></script>
 | |
|       <script src="${h.assetPath('components.bundle.js', assets)}"></script>
 | |
|       ${styles.join('\n')}
 | |
|     </head>
 | |
|     <body>
 | |
|       <div id="app" />
 | |
|       <script>
 | |
|         var app = document.getElementById('app');
 | |
|         var root = createRoot(app)
 | |
|         root.render(AdminJS.Application);
 | |
|       </script>
 | |
|       ${scripts.join('\n')}
 | |
|     </body>
 | |
|     </html>
 | |
|   `;
 | |
| };
 | |
| 
 | |
| var _default = html;
 | |
| exports.default = _default; |