ember-source
Version:
A JavaScript framework for creating ambitious web applications
75 lines (70 loc) • 2.6 kB
JavaScript
import { privatize } from '../@ember/-internals/container/index.js';
import { getOwner } from '../@ember/-internals/owner/index.js';
import { I as Input, T as Textarea } from './textarea-Byj32raR.js';
import { LinkTo } from '../@ember/routing/index.js';
import './render-DkJJmoI4.js';
import { c as clientBuilder } from './element-builder-CnlTPNyw.js';
import { r as rehydrationBuilder } from './rehydrate-builder-DJ8k-6fg.js';
import { s as serializeBuilder } from './serialize-builder-R3Ozg0sC.js';
import { o as outletHelper, O as OutletView, R as Renderer } from './index-ClxHbCe9.js';
import { t as templateFactory } from './index-Bj71BDDA.js';
const OutletTemplate = templateFactory(
/*
{{component (outletHelper)}}
*/
{
"id": null,
"block": "[[[46,[28,[32,0],null,null],null,null,null]],[],[\"component\"]]",
"moduleName": "packages/@ember/-internals/glimmer/lib/templates/outlet.hbs",
"scope": () => ({
outletHelper
}),
"isStrictMode": true
});
const RootTemplate = templateFactory(
/*
{{component this}}
*/
{
"id": null,
"block": "[[[46,[30,0],null,null,null]],[],[\"component\"]]",
"moduleName": "packages/@ember/-internals/glimmer/lib/templates/root.hbs",
"isStrictMode": true
});
function setupApplicationRegistry(registry) {
// because we are using injections we can't use instantiate false
// we need to use bind() to copy the function so factory for
// association won't leak
registry.register('service:-dom-builder', {
// Additionally, we *must* constrain this to require `props` on create, else
// we *know* it cannot have an owner.
create(props) {
let owner = getOwner(props);
let env = owner.lookup('-environment:main');
switch (env._renderMode) {
case 'serialize':
return serializeBuilder.bind(null);
case 'rehydrate':
return rehydrationBuilder.bind(null);
default:
return clientBuilder.bind(null);
}
}
});
registry.register(privatize`template:-root`, RootTemplate);
registry.register('renderer:-dom', Renderer);
}
function setupEngineRegistry(registry) {
registry.optionsForType('template', {
instantiate: false
});
registry.register('view:-outlet', OutletView);
registry.register('template:-outlet', OutletTemplate);
registry.optionsForType('helper', {
instantiate: false
});
registry.register('component:input', Input);
registry.register('component:link-to', LinkTo);
registry.register('component:textarea', Textarea);
}
export { RootTemplate as R, setupEngineRegistry as a, setupApplicationRegistry as s };