ember-source 6.3.0-alpha.2 → 6.3.0-alpha.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (28) hide show
  1. package/build-metadata.json +3 -3
  2. package/dist/ember-template-compiler.js +2 -2
  3. package/dist/ember-testing.js +1 -1
  4. package/dist/ember.debug.js +305 -71
  5. package/dist/ember.prod.js +258 -69
  6. package/dist/packages/@ember/-internals/glimmer/index.js +2 -2
  7. package/dist/packages/@ember/application/index.js +2 -2
  8. package/dist/packages/@ember/application/instance.js +1 -1
  9. package/dist/packages/@ember/component/helper.js +1 -1
  10. package/dist/packages/@ember/component/index.js +1 -1
  11. package/dist/packages/@ember/engine/index.js +2 -2
  12. package/dist/packages/@ember/helper/index.js +1 -1
  13. package/dist/packages/@ember/modifier/index.js +1 -1
  14. package/dist/packages/@ember/renderer/index.js +1 -1
  15. package/dist/packages/@ember/routing/index.js +1 -1
  16. package/dist/packages/@ember/routing/route.js +46 -4
  17. package/dist/packages/@ember/template/index.js +1 -1
  18. package/dist/packages/ember/barrel.js +1 -1
  19. package/dist/packages/ember/version.js +1 -1
  20. package/dist/packages/ember-testing/lib/initializers.js +1 -1
  21. package/dist/packages/shared-chunks/{index-C7oKNWrX.js → index-4KqgXTKl.js} +256 -64
  22. package/dist/packages/shared-chunks/{setup-registry-CFRLjlg1.js → setup-registry-ziuiqoKc.js} +1 -1
  23. package/docs/data.json +94 -76
  24. package/package.json +2 -2
  25. package/types/stable/@ember/-internals/glimmer/lib/component-managers/outlet.d.ts +14 -21
  26. package/types/stable/@ember/-internals/glimmer/lib/component-managers/route-template.d.ts +78 -0
  27. package/types/stable/@ember/-internals/glimmer/lib/utils/outlet.d.ts +3 -2
  28. package/types/stable/index.d.ts +1 -0
@@ -5,7 +5,7 @@
5
5
  * Portions Copyright 2008-2011 Apple Inc. All rights reserved.
6
6
  * @license Licensed under MIT license
7
7
  * See https://raw.github.com/emberjs/ember.js/master/LICENSE
8
- * @version 6.3.0-alpha.2
8
+ * @version 6.3.0-alpha.3
9
9
  */
10
10
  /* eslint-disable no-var */
11
11
  /* globals global globalThis self */
@@ -2620,7 +2620,7 @@ var define, require;
2620
2620
  }, Symbol.toStringTag, { value: 'Module' });
2621
2621
 
2622
2622
  // this file gets replaced with the real value during the build
2623
- const Version = '6.3.0-alpha.2';
2623
+ const Version = '6.3.0-alpha.3';
2624
2624
 
2625
2625
  const emberVersion = /*#__PURE__*/Object.defineProperty({
2626
2626
  __proto__: null,
@@ -4327,7 +4327,7 @@ var define, require;
4327
4327
  function hasInternalModifierManager(definition) {
4328
4328
  return void 0 !== getManager(MODIFIER_MANAGERS, definition);
4329
4329
  }
4330
- const CAPABILITIES$4 = {
4330
+ const CAPABILITIES$5 = {
4331
4331
  dynamicLayout: !1,
4332
4332
  dynamicTag: !1,
4333
4333
  prepareArgs: !1,
@@ -4461,7 +4461,7 @@ var define, require;
4461
4461
  return null;
4462
4462
  }
4463
4463
  getCapabilities() {
4464
- return CAPABILITIES$4;
4464
+ return CAPABILITIES$5;
4465
4465
  }
4466
4466
  }
4467
4467
 
@@ -18300,7 +18300,7 @@ var define, require;
18300
18300
  let item = vm.stack.peek().next();
18301
18301
  null !== item ? vm.registerItem(vm.enterItem(item)) : vm.goto(breaks);
18302
18302
  });
18303
- const CAPABILITIES$3 = {
18303
+ const CAPABILITIES$4 = {
18304
18304
  dynamicLayout: !1,
18305
18305
  dynamicTag: !1,
18306
18306
  prepareArgs: !1,
@@ -18317,7 +18317,7 @@ var define, require;
18317
18317
  };
18318
18318
  class TemplateOnlyComponentManager {
18319
18319
  getCapabilities() {
18320
- return CAPABILITIES$3;
18320
+ return CAPABILITIES$4;
18321
18321
  }
18322
18322
  getDebugName({
18323
18323
  name: name
@@ -20339,7 +20339,7 @@ var define, require;
20339
20339
  let constructor = OPAQUE_CONSTRUCTOR_MAP.get(opaque);
20340
20340
  return constructor;
20341
20341
  }
20342
- const CAPABILITIES$2 = {
20342
+ const CAPABILITIES$3 = {
20343
20343
  dynamicLayout: false,
20344
20344
  dynamicTag: false,
20345
20345
  prepareArgs: false,
@@ -20356,7 +20356,7 @@ var define, require;
20356
20356
  };
20357
20357
  class InternalManager {
20358
20358
  getCapabilities() {
20359
- return CAPABILITIES$2;
20359
+ return CAPABILITIES$3;
20360
20360
  }
20361
20361
  create(owner, definition, args, _env, _dynamicScope, caller) {
20362
20362
  let ComponentClass = deopaquify(definition);
@@ -25579,7 +25579,7 @@ var define, require;
25579
25579
  object: `${def.name}:main`
25580
25580
  };
25581
25581
  }
25582
- const CAPABILITIES$1 = {
25582
+ const CAPABILITIES$2 = {
25583
25583
  dynamicLayout: false,
25584
25584
  dynamicTag: false,
25585
25585
  prepareArgs: false,
@@ -25594,26 +25594,33 @@ var define, require;
25594
25594
  willDestroy: false,
25595
25595
  hasSubOwner: false
25596
25596
  };
25597
+ const CAPABILITIES_MASK$1 = capabilityFlagsFrom(CAPABILITIES$2);
25597
25598
  class OutletComponentManager {
25598
25599
  create(_owner, definition, _args, env, dynamicScope) {
25599
25600
  let parentStateRef = dynamicScope.get('outletState');
25600
25601
  let currentStateRef = definition.ref;
25602
+
25603
+ // This is the actual primary responsibility of the outlet component –
25604
+ // it represents the switching from one route component/template into
25605
+ // the next. The rest only exists to support the debug render tree and
25606
+ // the old-school (and unreliable) instrumentation.
25601
25607
  dynamicScope.set('outletState', currentStateRef);
25602
25608
  let state = {
25603
- self: createConstRef(definition.controller),
25604
25609
  finalize: _instrumentStart('render.outlet', instrumentationPayload$1, definition)
25605
25610
  };
25606
25611
  if (env.debugRenderTree !== undefined) {
25607
- state.outletBucket = {};
25608
25612
  let parentState = valueForRef(parentStateRef);
25609
- let parentOwner = parentState && parentState.render && parentState.render.owner;
25610
- let currentOwner = valueForRef(currentStateRef).render.owner;
25613
+ let parentOwner = parentState?.render?.owner;
25614
+ let currentState = valueForRef(currentStateRef);
25615
+ let currentOwner = currentState?.render?.owner;
25611
25616
  if (parentOwner && parentOwner !== currentOwner) {
25612
- let mountPoint = currentOwner.mountPoint;
25613
- state.engine = currentOwner;
25617
+ let {
25618
+ mountPoint
25619
+ } = currentOwner;
25614
25620
  if (mountPoint) {
25615
- state.engineBucket = {
25616
- mountPoint
25621
+ state.engine = {
25622
+ mountPoint,
25623
+ instance: currentOwner
25617
25624
  };
25618
25625
  }
25619
25626
  }
@@ -25623,12 +25630,12 @@ var define, require;
25623
25630
  getDebugName({
25624
25631
  name
25625
25632
  }) {
25626
- return name;
25633
+ return `{{outlet}} for ${name}`;
25627
25634
  }
25628
- getDebugCustomRenderTree(definition, state, args) {
25635
+ getDebugCustomRenderTree(_definition, state) {
25629
25636
  let nodes = [];
25630
25637
  nodes.push({
25631
- bucket: state.outletBucket,
25638
+ bucket: state,
25632
25639
  type: 'outlet',
25633
25640
  // "main" used to be the outlet name, keeping it around for compatibility
25634
25641
  name: 'main',
@@ -25636,33 +25643,23 @@ var define, require;
25636
25643
  instance: undefined,
25637
25644
  template: undefined
25638
25645
  });
25639
- if (state.engineBucket) {
25646
+ if (state.engine) {
25640
25647
  nodes.push({
25641
- bucket: state.engineBucket,
25648
+ bucket: state.engine,
25642
25649
  type: 'engine',
25643
- name: state.engineBucket.mountPoint,
25650
+ name: state.engine.mountPoint,
25644
25651
  args: EMPTY_ARGS,
25645
- instance: state.engine,
25652
+ instance: state.engine.instance,
25646
25653
  template: undefined
25647
25654
  });
25648
25655
  }
25649
- nodes.push({
25650
- bucket: state,
25651
- type: 'route-template',
25652
- name: definition.name,
25653
- args: args,
25654
- instance: definition.controller,
25655
- template: unwrapTemplate(definition.template).moduleName
25656
- });
25657
25656
  return nodes;
25658
25657
  }
25659
25658
  getCapabilities() {
25660
- return CAPABILITIES$1;
25659
+ return CAPABILITIES$2;
25661
25660
  }
25662
- getSelf({
25663
- self
25664
- }) {
25665
- return self;
25661
+ getSelf() {
25662
+ return UNDEFINED_REFERENCE;
25666
25663
  }
25667
25664
  didCreate() {}
25668
25665
  didUpdate() {}
@@ -25675,23 +25672,30 @@ var define, require;
25675
25672
  }
25676
25673
  }
25677
25674
  const OUTLET_MANAGER = new OutletComponentManager();
25678
- class OutletComponentDefinition {
25675
+ const OUTLET_COMPONENT_TEMPLATE = templateFactory(
25676
+ /*
25677
+ <@Component @controller={{@controller}} @model={{@model}} />
25678
+ */
25679
+ {
25680
+ "id": "tiv/fOHO",
25681
+ "block": "[[[8,[30,1],null,[[\"@controller\",\"@model\"],[[30,2],[30,3]]],null]],[\"@Component\",\"@controller\",\"@model\"],false,[]]",
25682
+ "moduleName": "/home/runner/work/ember.js/ember.js/packages/@ember/-internals/glimmer/lib/component-managers/outlet.ts",
25683
+ "isStrictMode": true
25684
+ });
25685
+ class OutletComponent {
25679
25686
  // handle is not used by this custom definition
25680
25687
  handle = -1;
25681
- resolvedName;
25688
+ resolvedName = null;
25689
+ manager = OUTLET_MANAGER;
25690
+ capabilities = CAPABILITIES_MASK$1;
25682
25691
  compilable;
25683
- capabilities;
25684
- constructor(state, manager = OUTLET_MANAGER) {
25692
+ constructor(owner, state) {
25685
25693
  this.state = state;
25686
- this.manager = manager;
25687
- let capabilities = manager.getCapabilities();
25688
- this.capabilities = capabilityFlagsFrom(capabilities);
25689
- this.compilable = capabilities.wrapped ? unwrapTemplate(state.template).asWrappedLayout() : unwrapTemplate(state.template).asLayout();
25690
- this.resolvedName = state.name;
25694
+ this.compilable = unwrapTemplate(OUTLET_COMPONENT_TEMPLATE(owner)).asLayout();
25691
25695
  }
25692
25696
  }
25693
25697
  function createRootOutlet(outletView) {
25694
- return new OutletComponentDefinition(outletView.state);
25698
+ return new OutletComponent(outletView.owner, outletView.state);
25695
25699
  }
25696
25700
 
25697
25701
  class RootComponentManager extends CurlyComponentManager {
@@ -34969,13 +34973,40 @@ var define, require;
34969
34973
  let name = route.routeName;
34970
34974
  let controller = owner.lookup(`controller:${route.controllerName || name}`);
34971
34975
  let model = route.currentModel;
34972
- let template = owner.lookup(`template:${route.templateName || name}`);
34976
+ let templateFactoryOrComponent = owner.lookup(`template:${route.templateName || name}`);
34977
+
34978
+ // Now we support either a component or a template to be returned by this
34979
+ // resolver call, but if it's a `TemplateFactory`, we need to instantiate
34980
+ // it into a `Template`, since that's what `RenderState` wants. We can't
34981
+ // easily change it, it's intimate API used by @ember/test-helpers and the
34982
+ // like. We could compatibly allow `Template` | `TemplateFactory`, and that's
34983
+ // what it used to do but we _just_ went through deprecations to get that
34984
+ // removed. It's also not ideal since once you mix the two types, they are
34985
+ // not exactly easy to tell apart.
34986
+ //
34987
+ // It may also be tempting to just normalize `Template` into `RouteTemplate`
34988
+ // here, and we could. However, this is not the only entrypoint where this
34989
+ // `RenderState` is made – @ember/test-helpers punches through an impressive
34990
+ // amount of private API to set it directly, and this feature would also be
34991
+ // useful for them. So, even if we had normalized here, we'd still have to
34992
+ // check and do that again during render anyway.
34993
+ let template;
34994
+ if (templateFactoryOrComponent) {
34995
+ if (hasInternalComponentManager(templateFactoryOrComponent)) {
34996
+ template = templateFactoryOrComponent;
34997
+ } else {
34998
+ template = templateFactoryOrComponent(owner);
34999
+ }
35000
+ } else {
35001
+ // default `{{outlet}}`
35002
+ template = route._topLevelViewTemplate(owner);
35003
+ }
34973
35004
  let render = {
34974
35005
  owner,
34975
35006
  name,
34976
35007
  controller,
34977
35008
  model,
34978
- template: template?.(owner) ?? route._topLevelViewTemplate(owner)
35009
+ template
34979
35010
  };
34980
35011
  return render;
34981
35012
  }
@@ -37340,7 +37371,7 @@ var define, require;
37340
37371
  prefixRouteNameArg
37341
37372
  }, Symbol.toStringTag, { value: 'Module' });
37342
37373
 
37343
- const CAPABILITIES = {
37374
+ const CAPABILITIES$1 = {
37344
37375
  dynamicLayout: true,
37345
37376
  dynamicTag: false,
37346
37377
  prepareArgs: false,
@@ -37361,7 +37392,7 @@ var define, require;
37361
37392
  return unwrapTemplate(templateFactory(state.engine)).asLayout();
37362
37393
  }
37363
37394
  getCapabilities() {
37364
- return CAPABILITIES;
37395
+ return CAPABILITIES$1;
37365
37396
  }
37366
37397
  getOwner(state) {
37367
37398
  return state.engine;
@@ -37457,7 +37488,7 @@ var define, require;
37457
37488
  state;
37458
37489
  manager = MOUNT_MANAGER;
37459
37490
  compilable = null;
37460
- capabilities = capabilityFlagsFrom(CAPABILITIES);
37491
+ capabilities = capabilityFlagsFrom(CAPABILITIES$1);
37461
37492
  constructor(resolvedName) {
37462
37493
  this.resolvedName = resolvedName;
37463
37494
  this.state = {
@@ -37533,6 +37564,107 @@ var define, require;
37533
37564
  });
37534
37565
  });
37535
37566
 
37567
+ const CAPABILITIES = {
37568
+ dynamicLayout: false,
37569
+ dynamicTag: false,
37570
+ prepareArgs: false,
37571
+ createArgs: true,
37572
+ attributeHook: false,
37573
+ elementHook: false,
37574
+ createCaller: false,
37575
+ dynamicScope: false,
37576
+ updateHook: false,
37577
+ createInstance: true,
37578
+ wrapped: false,
37579
+ willDestroy: false,
37580
+ hasSubOwner: false
37581
+ };
37582
+ const CAPABILITIES_MASK = capabilityFlagsFrom(CAPABILITIES);
37583
+ class RouteTemplateManager {
37584
+ create(_owner, _definition, args) {
37585
+ let self = args.named.get('controller');
37586
+ let controller = valueForRef(self);
37587
+ return {
37588
+ self,
37589
+ controller
37590
+ };
37591
+ }
37592
+ getSelf({
37593
+ self
37594
+ }) {
37595
+ return self;
37596
+ }
37597
+ getDebugName({
37598
+ name
37599
+ }) {
37600
+ return `route-template (${name})`;
37601
+ }
37602
+ getDebugCustomRenderTree({
37603
+ name,
37604
+ templateName
37605
+ }, state, args) {
37606
+ return [{
37607
+ bucket: state,
37608
+ type: 'route-template',
37609
+ name,
37610
+ args,
37611
+ instance: state.controller,
37612
+ template: templateName
37613
+ }];
37614
+ }
37615
+ getCapabilities() {
37616
+ return CAPABILITIES;
37617
+ }
37618
+ didRenderLayout() {}
37619
+ didUpdateLayout() {}
37620
+ didCreate() {}
37621
+ didUpdate() {}
37622
+ getDestroyable() {
37623
+ return null;
37624
+ }
37625
+ }
37626
+ const ROUTE_TEMPLATE_MANAGER = new RouteTemplateManager();
37627
+
37628
+ /**
37629
+ * This "upgrades" a route template into a invocable component. Conceptually
37630
+ * it can be 1:1 for each unique `Template`, but it's also cheap to construct,
37631
+ * so unless the stability is desirable for other reasons, it's probably not
37632
+ * worth caching this.
37633
+ */
37634
+ class RouteTemplate {
37635
+ // handle is not used by this custom definition
37636
+ handle = -1;
37637
+ resolvedName;
37638
+ state;
37639
+ manager = ROUTE_TEMPLATE_MANAGER;
37640
+ capabilities = CAPABILITIES_MASK;
37641
+ compilable;
37642
+ constructor(name, template) {
37643
+ let unwrapped = unwrapTemplate(template);
37644
+ // TODO This actually seems inaccurate – it ultimately came from the
37645
+ // outlet's name. Also, setting this overrides `getDebugName()` in that
37646
+ // message. Is that desirable?
37647
+ this.resolvedName = name;
37648
+ this.state = {
37649
+ name,
37650
+ templateName: unwrapped.moduleName
37651
+ };
37652
+ this.compilable = unwrapped.asLayout();
37653
+ }
37654
+ }
37655
+
37656
+ // TODO a lot these fields are copied from the adjacent existing components
37657
+ // implementation, haven't looked into who cares about `ComponentDefinition`
37658
+ // and if it is appropriate here. It seems like this version is intended to
37659
+ // be used with `curry` which probably isn't necessary here. It could be the
37660
+ // case that we just want to do something more similar to `InternalComponent`
37661
+ // (the one we used to implement `Input` and `LinkTo`). For now it follows
37662
+ // the same pattern to get things going.
37663
+ function makeRouteTemplate(owner, name, template) {
37664
+ let routeTemplate = new RouteTemplate(name, template);
37665
+ return curry(CurriedTypes.Component, routeTemplate, owner, null, true);
37666
+ }
37667
+
37536
37668
  /**
37537
37669
  The `{{outlet}}` helper lets you specify where a child route will render in
37538
37670
  your template. An important use of the `{{outlet}}` helper is in your
@@ -37563,15 +37695,49 @@ var define, require;
37563
37695
  return state?.outlets?.main;
37564
37696
  });
37565
37697
  let lastState = null;
37566
- let definition = null;
37698
+ let outlet = null;
37567
37699
  return createComputeRef(() => {
37568
37700
  let outletState = valueForRef(outletRef);
37569
37701
  let state = stateFor(outletRef, outletState);
37570
- if (!validate(state, lastState)) {
37702
+
37703
+ // This code is deliberately using the behavior in glimmer-vm where in
37704
+ // <@Component />, the component is considered stabled via `===`, and
37705
+ // will continue to re-render in-place as long as the `===` holds, but
37706
+ // when it changes to a different object, it teardown the old component
37707
+ // (running destructors, etc), and render the component in its place (or
37708
+ // nothing if the new value is nullish. Here we are carefully exploiting
37709
+ // that fact, and returns the same stable object so long as it is the
37710
+ // same route, but return a different one when the route changes. On the
37711
+ // other hand, changing the model only intentionally do not teardown the
37712
+ // component and instead re-render in-place.
37713
+ if (!isStable(state, lastState)) {
37571
37714
  lastState = state;
37572
37715
  if (state !== null) {
37716
+ // If we are crossing an engine mount point, this is how the owner
37717
+ // gets switched.
37718
+ let outletOwner = outletState?.render?.owner ?? owner;
37573
37719
  let named = dict();
37574
37720
 
37721
+ // Here we either have a raw template that needs to be normalized,
37722
+ // or a component that we can render as-is. `RouteTemplate` upgrades
37723
+ // the template into a component so we can have a unified code path.
37724
+ // We still store the original `template` value, because we rely on
37725
+ // its identity for the stability check, and the `RouteTemplate`
37726
+ // wrapper doesn't dedup for us.
37727
+ let template = state.template;
37728
+ let component;
37729
+ if (hasInternalComponentManager(template)) {
37730
+ component = template;
37731
+ } else {
37732
+ component = makeRouteTemplate(outletOwner, state.name, template);
37733
+ }
37734
+
37735
+ // Component is stable for the lifetime of the outlet
37736
+ named['Component'] = createConstRef(component);
37737
+
37738
+ // Controller is stable for the lifetime of the outlet
37739
+ named['controller'] = createConstRef(state.controller);
37740
+
37575
37741
  // Create a ref for the model
37576
37742
  let modelRef = childRefFromParts(outletRef, ['render', 'model']);
37577
37743
 
@@ -37591,12 +37757,14 @@ var define, require;
37591
37757
  return model;
37592
37758
  });
37593
37759
  let args = createCapturedArgs(named, EMPTY_POSITIONAL);
37594
- definition = curry(CurriedTypes.Component, new OutletComponentDefinition(state), outletState?.render?.owner ?? owner, args, true);
37760
+
37761
+ // Package up everything
37762
+ outlet = curry(CurriedTypes.Component, new OutletComponent(owner, state), outletOwner, args, true);
37595
37763
  } else {
37596
- definition = null;
37764
+ outlet = null;
37597
37765
  }
37598
37766
  }
37599
- return definition;
37767
+ return outlet;
37600
37768
  });
37601
37769
  });
37602
37770
  function stateFor(ref, outlet) {
@@ -37604,20 +37772,19 @@ var define, require;
37604
37772
  let render = outlet.render;
37605
37773
  if (render === undefined) return null;
37606
37774
  let template = render.template;
37607
- if (template === undefined) return null;
37775
+ // The type doesn't actually allow for `null`, but if we make it past this
37776
+ // point it is really important that we have _something_ to render. We could
37777
+ // assert, but that is probably overly strict for very little to gain.
37778
+ if (template === undefined || template === null) return null;
37608
37779
  return {
37609
37780
  ref,
37610
37781
  name: render.name,
37611
37782
  template,
37612
- controller: render.controller,
37613
- model: render.model
37783
+ controller: render.controller
37614
37784
  };
37615
37785
  }
37616
- function validate(state, lastState) {
37617
- if (state === null) {
37618
- return lastState === null;
37619
- }
37620
- if (lastState === null) {
37786
+ function isStable(state, lastState) {
37787
+ if (state === null || lastState === null) {
37621
37788
  return false;
37622
37789
  }
37623
37790
  return state.template === lastState.template && state.controller === lastState.controller;
@@ -37856,8 +38023,7 @@ var define, require;
37856
38023
  ref,
37857
38024
  name: TOP_LEVEL_NAME,
37858
38025
  template,
37859
- controller: undefined,
37860
- model: undefined
38026
+ controller: undefined
37861
38027
  };
37862
38028
  }
37863
38029
  appendTo(selector) {
@@ -38084,8 +38250,31 @@ var define, require;
38084
38250
  // renderer HOOKS
38085
38251
 
38086
38252
  appendOutletView(view, target) {
38087
- let definition = createRootOutlet(view);
38088
- this._appendDefinition(view, curry(CurriedTypes.Component, definition, view.owner, null, true), target);
38253
+ // TODO: This bypasses the {{outlet}} syntax so logically duplicates
38254
+ // some of the set up code. Since this is all internal (or is it?),
38255
+ // we can refactor this to do something more direct/less convoluted
38256
+ // and with less setup, but get it working first
38257
+ let outlet = createRootOutlet(view);
38258
+ let {
38259
+ name,
38260
+ /* controller, */template
38261
+ } = view.state;
38262
+ let named = dict();
38263
+ named['Component'] = createConstRef(makeRouteTemplate(view.owner, name, template));
38264
+
38265
+ // TODO: is this guaranteed to be undefined? It seems to be the
38266
+ // case in the `OutletView` class. Investigate how much that class
38267
+ // exists as an internal implementation detail only, or if it was
38268
+ // used outside of core. As far as I can tell, test-helpers uses
38269
+ // it but only for `setOutletState`.
38270
+ // named['controller'] = createConstRef(controller, '@controller');
38271
+ // Update: at least according to the debug render tree tests, we
38272
+ // appear to always expect this to be undefined. Not a definitive
38273
+ // source by any means, but is useful evidence
38274
+ named['controller'] = UNDEFINED_REFERENCE;
38275
+ named['model'] = UNDEFINED_REFERENCE;
38276
+ let args = createCapturedArgs(named, EMPTY_POSITIONAL);
38277
+ this._appendDefinition(view, curry(CurriedTypes.Component, outlet, view.owner, args, true), target);
38089
38278
  }
38090
38279
  appendTo(view, target) {
38091
38280
  let definition = new RootComponentDefinition(view);
@@ -1,7 +1,7 @@
1
1
  export { templateFactory as template, templateCacheCounters } from '../../../@glimmer/opcode-compiler/index.js';
2
- export { C as Component, H as Helper, I as Input, L as LinkTo, O as OutletView, b as Renderer, R as RootTemplate, S as SafeString, T as Textarea, _ as _resetRenderers, e as escapeExpression, h as helper, a as htmlSafe, i as isHTMLSafe, r as renderSettled, u as uniqueId } from '../../../shared-chunks/index-C7oKNWrX.js';
2
+ export { C as Component, H as Helper, I as Input, L as LinkTo, O as OutletView, b as Renderer, R as RootTemplate, S as SafeString, T as Textarea, _ as _resetRenderers, e as escapeExpression, h as helper, a as htmlSafe, i as isHTMLSafe, r as renderSettled, u as uniqueId } from '../../../shared-chunks/index-4KqgXTKl.js';
3
3
  export { g as getTemplate, a as getTemplates, h as hasTemplate, s as setTemplate, b as setTemplates } from '../../../shared-chunks/template_registry-DigcUg9m.js';
4
- export { a as setupApplicationRegistry, s as setupEngineRegistry } from '../../../shared-chunks/setup-registry-CFRLjlg1.js';
4
+ export { a as setupApplicationRegistry, s as setupEngineRegistry } from '../../../shared-chunks/setup-registry-ziuiqoKc.js';
5
5
  export { DOMChanges, DOMTreeConstruction, isSerializationFirstNode } from '../../../@glimmer/runtime/index.js';
6
6
  export { NodeDOMTreeConstruction } from '../../../@glimmer/node/index.js';
7
7
  export { s as setComponentManager } from '../../../shared-chunks/managers-CbMgnSoo.js';
@@ -47,8 +47,8 @@ import ApplicationInstance from './instance.js';
47
47
  import Engine, { buildInitializerMethod } from '../engine/index.js';
48
48
  import { p as privatize } from '../../shared-chunks/registry-B8WARvkP.js';
49
49
  import '../../@glimmer/opcode-compiler/index.js';
50
- import '../../shared-chunks/index-C7oKNWrX.js';
51
- import { a as setupApplicationRegistry } from '../../shared-chunks/setup-registry-CFRLjlg1.js';
50
+ import '../../shared-chunks/index-4KqgXTKl.js';
51
+ import { a as setupApplicationRegistry } from '../../shared-chunks/setup-registry-ziuiqoKc.js';
52
52
  import '../../@glimmer/runtime/index.js';
53
53
  import '../../@glimmer/reference/index.js';
54
54
  import RouterService from '../routing/router-service.js';
@@ -2,7 +2,7 @@ import '../object/index.js';
2
2
  import { h as hasDOM, e as environment } from '../../shared-chunks/index-BGP1rw3B.js';
3
3
  import EngineInstance from '../engine/instance.js';
4
4
  import '../../@glimmer/opcode-compiler/index.js';
5
- import { r as renderSettled } from '../../shared-chunks/index-C7oKNWrX.js';
5
+ import { r as renderSettled } from '../../shared-chunks/index-4KqgXTKl.js';
6
6
  import '../../shared-chunks/registry-B8WARvkP.js';
7
7
  import '../debug/index.js';
8
8
  import '../../@glimmer/runtime/index.js';
@@ -1,5 +1,5 @@
1
1
  import '../../@glimmer/opcode-compiler/index.js';
2
- export { H as default, h as helper } from '../../shared-chunks/index-C7oKNWrX.js';
2
+ export { H as default, h as helper } from '../../shared-chunks/index-4KqgXTKl.js';
3
3
  import '../../shared-chunks/registry-B8WARvkP.js';
4
4
  import '../debug/index.js';
5
5
  import '../../@glimmer/runtime/index.js';
@@ -1,6 +1,6 @@
1
1
  export { componentCapabilities as capabilities, getComponentTemplate, setComponentTemplate } from '../../@glimmer/manager/index.js';
2
2
  import '../../@glimmer/opcode-compiler/index.js';
3
- export { I as Input, T as Textarea, C as default } from '../../shared-chunks/index-C7oKNWrX.js';
3
+ export { I as Input, T as Textarea, C as default } from '../../shared-chunks/index-4KqgXTKl.js';
4
4
  import '../../shared-chunks/registry-B8WARvkP.js';
5
5
  import '../debug/index.js';
6
6
  import '../../@glimmer/runtime/index.js';
@@ -30,8 +30,8 @@ import '../-internals/views/lib/mixins/view_state_support.js';
30
30
  import '../-internals/views/lib/mixins/view_support.js';
31
31
  import '../-internals/views/lib/mixins/action_support.js';
32
32
  import '../../@glimmer/opcode-compiler/index.js';
33
- import '../../shared-chunks/index-C7oKNWrX.js';
34
- import { s as setupEngineRegistry } from '../../shared-chunks/setup-registry-CFRLjlg1.js';
33
+ import '../../shared-chunks/index-4KqgXTKl.js';
34
+ import { s as setupEngineRegistry } from '../../shared-chunks/setup-registry-ziuiqoKc.js';
35
35
  import '../../@glimmer/runtime/index.js';
36
36
  import '../runloop/index.js';
37
37
  import '../../@glimmer/reference/index.js';
@@ -1,7 +1,7 @@
1
1
  import { helperCapabilities, setHelperManager as setHelperManager$1 } from '../../@glimmer/manager/index.js';
2
2
  import { invokeHelper as invokeHelper$1, hash as hash$1, array as array$1, concat as concat$1, get as get$1, fn as fn$1 } from '../../@glimmer/runtime/index.js';
3
3
  import '../../@glimmer/opcode-compiler/index.js';
4
- import { u as uniqueId$1 } from '../../shared-chunks/index-C7oKNWrX.js';
4
+ import { u as uniqueId$1 } from '../../shared-chunks/index-4KqgXTKl.js';
5
5
  import '../../shared-chunks/registry-B8WARvkP.js';
6
6
  import '../debug/index.js';
7
7
  import '../runloop/index.js';
@@ -2,7 +2,7 @@ import { setModifierManager as setModifierManager$1 } from '../../@glimmer/manag
2
2
  export { modifierCapabilities as capabilities } from '../../@glimmer/manager/index.js';
3
3
  export { on } from './on.js';
4
4
  import '../../@glimmer/opcode-compiler/index.js';
5
- import '../../shared-chunks/index-C7oKNWrX.js';
5
+ import '../../shared-chunks/index-4KqgXTKl.js';
6
6
  import '../../shared-chunks/registry-B8WARvkP.js';
7
7
  import '../debug/index.js';
8
8
  import '../../@glimmer/runtime/index.js';
@@ -1,5 +1,5 @@
1
1
  import '../../@glimmer/opcode-compiler/index.js';
2
- export { r as renderSettled } from '../../shared-chunks/index-C7oKNWrX.js';
2
+ export { r as renderSettled } from '../../shared-chunks/index-4KqgXTKl.js';
3
3
  import '../../shared-chunks/registry-B8WARvkP.js';
4
4
  import '../debug/index.js';
5
5
  import '../../@glimmer/runtime/index.js';
@@ -1,5 +1,5 @@
1
1
  import '../../@glimmer/opcode-compiler/index.js';
2
- export { L as LinkTo } from '../../shared-chunks/index-C7oKNWrX.js';
2
+ export { L as LinkTo } from '../../shared-chunks/index-4KqgXTKl.js';
3
3
  import '../../shared-chunks/registry-B8WARvkP.js';
4
4
  import '../debug/index.js';
5
5
  import '../../@glimmer/runtime/index.js';