{"version":3,"sources":["jsdelivr-header.js","/npm/@repage/renderer-react@0.1.0/browser.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,ACNA,MAAM,OAAS,QAAQ,YACjB,aAAe,OACf,gBAAkB,OAClB,SAAW,QAAQ,aACnB,UAAY,QAAQ,yBACpB,kBAAC,kBAAiB,SAAE,SAAQ,UAAE,WAAa,QAAQ,YAezD,eAAe,gBAAe,KAAC,EAAI,iBAAE,EAAgB,MAAE,IACnD,UAAU,YAAY,GAEtB,MAAM,EAAgB,kBAAkB,EAAO,GAIzC,EAFQ,UAAU,CAAC,OAAM,kBAGrB,KAAI,GACC,YAAY,CAAC,kBAI5B,IAAI,MAAM,KAAW,QACX,CAEd,CAEA,SAAS,aAAY,YAAC,IAClB,MAAM,cAAC,EAAa,aAAE,GAAgB,EACtC,gBAAgB,GAChB,gBAAgB,GAEhB,MAAM,EAAY,wBAAwB,GAI1C,OAAO,cAAc,CAAC,gBAAe,YAAW,WAFJ,OAAzB,EAAU,YAGjC,CAEA,SAAS,eAAc,cAAC,EAAa,UAAE,EAAS,WAAE,IAC9C,OAAO,IAAI,SAAQ,KAInB,SAAe,GACP,EACA,SAAS,QAAQ,EAAe,EAAW,GAE3C,SAAS,OAAO,EAAe,EAAW,EAElD,CATI,CAAM,EAAQ,GAUtB,CAEA,SAAS,wBAAwB,GAC7B,IAAI,EAAY,SAAS,KAAK,cAAc,IAAI,GAIhD,OAHM,IACF,EAAY,mBAAmB,CAAC,OAAQ,KAErC,CACX,CAEA,SAAS,oBAAmB,OAAC,IACzB,MAAM,EAAK,SAAS,cAAc,OAClC,EAAG,GAAK,EACR,MAAM,EAAa,SAAS,KAAK,WAMjC,OALM,EAGF,SAAS,KAAK,aAAa,EAAI,GAF/B,SAAS,KAAK,YAAY,GAIvB,CACX,CA3EA,OAAO,QAAU,CACb,KAAM,QAAQ,kBAAkB,KAChC,oBAAoB,EACpB,UAAW,CACP,cAAe,CACX,UAEJ,eAAgB,CACZ","file":"/npm/@repage/renderer-react@0.1.0/browser.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/@repage/renderer-react@0.1.0/browser.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","const assert = require('reassert');\nconst assert_usage = assert;\nconst assert_internal = assert;\nconst ReactDOM = require('react-dom');\nconst HtmlCrust = require('@brillout/html-crust');\nconst {get_initial_props, loadData, get_views} = require('./common');\n\nmodule.exports = {\n    name: require('./package.json').name,\n    isAllowedInBrowser: true,\n    pageMixin: {\n        renderDomLoad: [\n            loadData,\n        ],\n        renderDomApply: [\n            renderDomApply,\n        ],\n    },\n};\n\nasync function renderDomApply({page, renderDomContext, route}) {\n    HtmlCrust.renderToDom(page);\n\n    const initial_props = get_initial_props(route, renderDomContext);\n\n    const views = get_views({page, initial_props});\n\n    const promises = (\n        views.map(view_object => {\n            return render_view({view_object});\n        })\n    );\n\n    for(const promise of promises) {\n        await promise;\n    }\n}\n\nfunction render_view({view_object}) {\n    const {react_element, container_id} = view_object;\n    assert_internal(react_element);\n    assert_internal(container_id);\n\n    const container = get_or_create_container(container_id);\n\n    const do_hydrate = container.firstChild !== null;\n\n    return render_to_dom({react_element, container, do_hydrate});\n}\n\nfunction render_to_dom({react_element, container, do_hydrate}) {\n    return new Promise(resolve => {\n        do_it(resolve);\n    });\n\n    function do_it(resolve) {\n        if( do_hydrate ) {\n            ReactDOM.hydrate(react_element, container, resolve);\n        } else {\n            ReactDOM.render(react_element, container, resolve);\n        }\n    }\n}\n\nfunction get_or_create_container(container_id) {\n    let container = document.body.querySelector('#'+container_id);\n    if( ! container ) {\n        container = create_dom_element({dom_id: container_id});\n    }\n    return container;\n}\n\nfunction create_dom_element({dom_id}) {\n    const el = document.createElement('div');\n    el.id = dom_id;\n    const firstChild = document.body.firstChild;\n    if( ! firstChild ) {\n        document.body.appendChild(el);\n    } else {\n        document.body.insertBefore(el, firstChild);\n    }\n    return el;\n}\n"]}