@yoobic/yobi 8.5.0-14 → 8.5.0-16

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 (34) hide show
  1. package/dist/cjs/{swiper-7776d549.js → swiper-34d65692.js} +1 -1
  2. package/dist/cjs/yoo-course-summary.cjs.entry.js +2 -1
  3. package/dist/cjs/yoo-form-dynamic.cjs.entry.js +5 -1
  4. package/dist/cjs/yoo-form-text-editor.cjs.entry.js +8 -0
  5. package/dist/cjs/yoo-grid.cjs.entry.js +1 -1
  6. package/dist/cjs/yoo-input-bar.cjs.entry.js +43 -103
  7. package/dist/cjs/{yoo-ion-slides-4129c213.js → yoo-ion-slides-c1807158.js} +240 -418
  8. package/dist/cjs/yoo-ion-slides.cjs.entry.js +1 -1
  9. package/dist/cjs/yoo-toast.cjs.entry.js +1 -1
  10. package/dist/collection/components/2.molecules/slide/slide.css +2 -2
  11. package/dist/collection/components/2.molecules/slides/slides.css +2 -2
  12. package/dist/collection/components/3.organisms/toast/toast.js +1 -1
  13. package/dist/collection/components/form/form-dynamic/form-dynamic.js +5 -1
  14. package/dist/collection/components/grid/grid/grid.js +1 -1
  15. package/dist/collection/feature-learn/learning/course-summary/course-summary.js +2 -1
  16. package/dist/{esm/swiper-d9c20e85.js → design-system/swiper-9f7dac2f.js} +2 -2
  17. package/dist/design-system/yoo-course-summary.entry.js +2 -1
  18. package/dist/design-system/yoo-form-dynamic.entry.js +5 -1
  19. package/dist/design-system/yoo-form-text-editor.entry.js +8 -0
  20. package/dist/design-system/yoo-grid.entry.js +1 -1
  21. package/dist/design-system/yoo-input-bar.entry.js +43 -103
  22. package/dist/{esm/yoo-ion-slides-e6273a8c.js → design-system/yoo-ion-slides-17d250f8.js} +240 -418
  23. package/dist/design-system/yoo-ion-slides.entry.js +1 -1
  24. package/dist/design-system/yoo-toast.entry.js +1 -1
  25. package/dist/{design-system/swiper-d9c20e85.js → esm/swiper-9f7dac2f.js} +2 -2
  26. package/dist/esm/yoo-course-summary.entry.js +2 -1
  27. package/dist/esm/yoo-form-dynamic.entry.js +5 -1
  28. package/dist/esm/yoo-form-text-editor.entry.js +8 -0
  29. package/dist/esm/yoo-grid.entry.js +1 -1
  30. package/dist/esm/yoo-input-bar.entry.js +43 -103
  31. package/dist/{design-system/yoo-ion-slides-e6273a8c.js → esm/yoo-ion-slides-17d250f8.js} +240 -418
  32. package/dist/esm/yoo-ion-slides.entry.js +1 -1
  33. package/dist/esm/yoo-toast.entry.js +1 -1
  34. package/package.json +1 -1
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- const yooIonSlides_entry = require('./yoo-ion-slides-4129c213.js');
3
+ const yooIonSlides_entry = require('./yoo-ion-slides-c1807158.js');
4
4
  require('./index-7319daa9.js');
5
5
  require('./index-bf0c70e5.js');
6
6
  require('./overlays-c17172aa.js');
@@ -41,7 +41,8 @@ const YooCourseSummaryComponent = class {
41
41
  return (Math.round((_a = this.course) === null || _a === void 0 ? void 0 : _a.earnedPoints) || 0);
42
42
  }
43
43
  get image() {
44
- return new overlays.Cloudinary(this.actualPlan.background._downloadURL || this.actualPlan.background);
44
+ var _a, _b, _c;
45
+ return new overlays.Cloudinary(((_b = (_a = this.actualPlan) === null || _a === void 0 ? void 0 : _a.background) === null || _b === void 0 ? void 0 : _b._downloadURL) || ((_c = this.actualPlan) === null || _c === void 0 ? void 0 : _c.background));
45
46
  }
46
47
  get badges() {
47
48
  if (this.lessons && this.lessons.length > 0) {
@@ -1367,7 +1367,11 @@ const YooFormDynamicComponent = class {
1367
1367
  }
1368
1368
  onFieldChanged(ev, field) {
1369
1369
  ev === null || ev === void 0 ? void 0 : ev.stopPropagation();
1370
- formHelpers.setFieldData(field, ev.detail, this.currentData, this.suffix);
1370
+ let value = ev.detail;
1371
+ if (field.type === index.FormFieldType.podcast && this.isLivePreview()) {
1372
+ value = null;
1373
+ }
1374
+ formHelpers.setFieldData(field, value, this.currentData, this.suffix);
1371
1375
  if (lodash.isFunction(field.onChange)) {
1372
1376
  field.onChange(ev.detail, this.currentData, field, this.slides, this);
1373
1377
  }
@@ -21121,6 +21121,14 @@ function sanitizeHtml(html, options, _recursing) {
21121
21121
  // Do not crash on bad markup
21122
21122
  return;
21123
21123
  }
21124
+
21125
+ if (frame.tag !== name) {
21126
+ // Another case of bad markup.
21127
+ // Push to stack, so that it will be used in future closing tags.
21128
+ stack.push(frame);
21129
+ return;
21130
+ }
21131
+
21124
21132
  skipText = options.enforceHtmlBoundary ? name === 'html' : false;
21125
21133
  depth--;
21126
21134
  const skip = skipMap[depth];
@@ -2958,7 +2958,7 @@ const YooGridComponent = class {
2958
2958
  }
2959
2959
  renderEntity(item, isLast = false, index$1) {
2960
2960
  var _a, _b, _c, _d;
2961
- const content = (index.h("div", { class: {
2961
+ const content = (index.h("div", { key: this.displayType === 'card-media' ? item[this.idAttributeName || '_id'] : undefined, class: {
2962
2962
  'entity-inner-container': true,
2963
2963
  'sortable': this.sortable,
2964
2964
  [this.displayType]: true,
@@ -20,7 +20,7 @@ function race(...args) {
20
20
  }
21
21
 
22
22
  /**
23
- * @license Angular v14.2.1
23
+ * @license Angular v14.2.2
24
24
  * (c) 2010-2022 Google LLC. https://angular.io/
25
25
  * License: MIT
26
26
  */
@@ -3272,7 +3272,7 @@ function injectAttributeImpl(tNode, attrNameToInject) {
3272
3272
  return null;
3273
3273
  }
3274
3274
  function notFoundValueOrThrow(notFoundValue, token, flags) {
3275
- if (flags & InjectFlags.Optional) {
3275
+ if ((flags & InjectFlags.Optional) || notFoundValue !== undefined) {
3276
3276
  return notFoundValue;
3277
3277
  }
3278
3278
  else {
@@ -3289,7 +3289,7 @@ function notFoundValueOrThrow(notFoundValue, token, flags) {
3289
3289
  * @returns the value from the injector or throws an exception
3290
3290
  */
3291
3291
  function lookupTokenUsingModuleInjector(lView, token, flags, notFoundValue) {
3292
- if (flags & InjectFlags.Optional && notFoundValue === undefined) {
3292
+ if ((flags & InjectFlags.Optional) && notFoundValue === undefined) {
3293
3293
  // This must be set or the NullInjector will throw for optional deps
3294
3294
  notFoundValue = null;
3295
3295
  }
@@ -5804,10 +5804,6 @@ function _sanitizeUrl(url) {
5804
5804
  }
5805
5805
  return 'unsafe:' + url;
5806
5806
  }
5807
- function sanitizeSrcset(srcset) {
5808
- srcset = String(srcset);
5809
- return srcset.split(',').map((srcset) => _sanitizeUrl(srcset.trim())).join(', ');
5810
- }
5811
5807
 
5812
5808
  /**
5813
5809
  * @license
@@ -5854,12 +5850,10 @@ const INLINE_ELEMENTS = merge(OPTIONAL_END_TAG_INLINE_ELEMENTS, tagSet('a,abbr,a
5854
5850
  const VALID_ELEMENTS = merge(VOID_ELEMENTS, BLOCK_ELEMENTS, INLINE_ELEMENTS, OPTIONAL_END_TAG_ELEMENTS);
5855
5851
  // Attributes that have href and hence need to be sanitized
5856
5852
  const URI_ATTRS = tagSet('background,cite,href,itemtype,longdesc,poster,src,xlink:href');
5857
- // Attributes that have special href set hence need to be sanitized
5858
- const SRCSET_ATTRS = tagSet('srcset');
5859
5853
  const HTML_ATTRS = tagSet('abbr,accesskey,align,alt,autoplay,axis,bgcolor,border,cellpadding,cellspacing,class,clear,color,cols,colspan,' +
5860
5854
  'compact,controls,coords,datetime,default,dir,download,face,headers,height,hidden,hreflang,hspace,' +
5861
5855
  'ismap,itemscope,itemprop,kind,label,lang,language,loop,media,muted,nohref,nowrap,open,preload,rel,rev,role,rows,rowspan,rules,' +
5862
- 'scope,scrolling,shape,size,sizes,span,srclang,start,summary,tabindex,target,title,translate,type,usemap,' +
5856
+ 'scope,scrolling,shape,size,sizes,span,srclang,srcset,start,summary,tabindex,target,title,translate,type,usemap,' +
5863
5857
  'valign,value,vspace,width');
5864
5858
  // Accessibility attributes as per WAI-ARIA 1.1 (W3C Working Draft 14 December 2018)
5865
5859
  const ARIA_ATTRS = tagSet('aria-activedescendant,aria-atomic,aria-autocomplete,aria-busy,aria-checked,aria-colcount,aria-colindex,' +
@@ -5875,7 +5869,7 @@ const ARIA_ATTRS = tagSet('aria-activedescendant,aria-atomic,aria-autocomplete,a
5875
5869
  // NB: Sanitization does not allow <form> elements or other active elements (<button> etc). Those
5876
5870
  // can be sanitized, but they increase security surface area without a legitimate use case, so they
5877
5871
  // are left out here.
5878
- const VALID_ATTRS = merge(URI_ATTRS, SRCSET_ATTRS, HTML_ATTRS, ARIA_ATTRS);
5872
+ const VALID_ATTRS = merge(URI_ATTRS, HTML_ATTRS, ARIA_ATTRS);
5879
5873
  // Elements whose content should not be traversed/preserved, if the elements themselves are invalid.
5880
5874
  //
5881
5875
  // Typically, `<invalid>Some content</invalid>` would traverse (and in this case preserve)
@@ -5958,8 +5952,6 @@ class SanitizingHtmlSerializer {
5958
5952
  // TODO(martinprobst): Special case image URIs for data:image/...
5959
5953
  if (URI_ATTRS[lower])
5960
5954
  value = _sanitizeUrl(value);
5961
- if (SRCSET_ATTRS[lower])
5962
- value = sanitizeSrcset(value);
5963
5955
  this.buf.push(' ', attrName, '="', encodeEntities(value), '"');
5964
5956
  }
5965
5957
  this.buf.push('>');
@@ -7260,7 +7252,7 @@ class Version {
7260
7252
  /**
7261
7253
  * @publicApi
7262
7254
  */
7263
- const VERSION = new Version('14.2.1');
7255
+ const VERSION = new Version('14.2.2');
7264
7256
 
7265
7257
  /**
7266
7258
  * @license
@@ -7564,7 +7556,7 @@ function getTemplateLocationDetails(lView) {
7564
7556
  * that the `CommonModule` should also be included.
7565
7557
  */
7566
7558
  const KNOWN_CONTROL_FLOW_DIRECTIVES = new Map([
7567
- ['ngIf', 'NgIf'], ['ngFor', 'NgForOf'], ['ngSwitchCase', 'NgSwitchCase'],
7559
+ ['ngIf', 'NgIf'], ['ngFor', 'NgFor'], ['ngSwitchCase', 'NgSwitchCase'],
7568
7560
  ['ngSwitchDefault', 'NgSwitchDefault']
7569
7561
  ]);
7570
7562
  /**
@@ -8368,16 +8360,16 @@ function getRootView(componentOrLView) {
8368
8360
  return lView;
8369
8361
  }
8370
8362
  /**
8371
- * Returns the `RootContext` instance that is associated with
8372
- * the application where the target is situated. It does this by walking the parent views until it
8373
- * gets to the root view, then getting the context off of that.
8363
+ * Returns the context information associated with the application where the target is situated. It
8364
+ * does this by walking the parent views until it gets to the root view, then getting the context
8365
+ * off of that.
8374
8366
  *
8375
8367
  * @param viewOrComponent the `LView` or component to get the root context for.
8376
8368
  */
8377
8369
  function getRootContext(viewOrComponent) {
8378
8370
  const rootView = getRootView(viewOrComponent);
8379
8371
  ngDevMode &&
8380
- assertDefined(rootView[CONTEXT], 'RootView has no context. Perhaps it is disconnected?');
8372
+ assertDefined(rootView[CONTEXT], 'Root view has no context. Perhaps it is disconnected?');
8381
8373
  return rootView[CONTEXT];
8382
8374
  }
8383
8375
  /**
@@ -12082,28 +12074,6 @@ function refreshView(tView, lView, templateFn, context) {
12082
12074
  leaveView();
12083
12075
  }
12084
12076
  }
12085
- function renderComponentOrTemplate(tView, lView, templateFn, context) {
12086
- const rendererFactory = lView[RENDERER_FACTORY];
12087
- // Check no changes mode is a dev only mode used to verify that bindings have not changed
12088
- // since they were assigned. We do not want to invoke renderer factory functions in that mode
12089
- // to avoid any possible side-effects.
12090
- const checkNoChangesMode = !!ngDevMode && isInCheckNoChangesMode();
12091
- const creationModeIsActive = isCreationMode(lView);
12092
- try {
12093
- if (!checkNoChangesMode && !creationModeIsActive && rendererFactory.begin) {
12094
- rendererFactory.begin();
12095
- }
12096
- if (creationModeIsActive) {
12097
- renderView(tView, lView, context);
12098
- }
12099
- refreshView(tView, lView, templateFn, context);
12100
- }
12101
- finally {
12102
- if (!checkNoChangesMode && !creationModeIsActive && rendererFactory.end) {
12103
- rendererFactory.end();
12104
- }
12105
- }
12106
- }
12107
12077
  function executeTemplate(tView, lView, templateFn, rf, context) {
12108
12078
  const prevSelectedIndex = getSelectedIndex();
12109
12079
  const isUpdatePhase = rf & 2 /* RenderFlags.Update */;
@@ -12174,7 +12144,7 @@ function saveResolvedLocalsInData(viewData, tNode, localRefExtractor = getNative
12174
12144
  * @param def ComponentDef
12175
12145
  * @returns TView
12176
12146
  */
12177
- function getOrCreateTComponentView(def) {
12147
+ function getOrCreateComponentTView(def) {
12178
12148
  const tView = def.tView;
12179
12149
  // Create a TView if there isn't one, or recreate it if the first create pass didn't
12180
12150
  // complete successfully since we can't know for sure whether it's in a usable shape.
@@ -12883,7 +12853,7 @@ function configureViewWithDirective(tView, tNode, lView, directiveIndex, def) {
12883
12853
  }
12884
12854
  function addComponentLogic(lView, hostTNode, def) {
12885
12855
  const native = getNativeByTNode(hostTNode, lView);
12886
- const tView = getOrCreateTComponentView(def);
12856
+ const tView = getOrCreateComponentTView(def);
12887
12857
  // Only component views should be added to the view tree directly. Embedded views are
12888
12858
  // accessed through their containers because they may be removed / re-added later.
12889
12859
  const rendererFactory = lView[RENDERER_FACTORY];
@@ -13210,63 +13180,32 @@ function markViewDirty(lView) {
13210
13180
  }
13211
13181
  return null;
13212
13182
  }
13213
- function tickRootContext(rootContext) {
13214
- for (let i = 0; i < rootContext.components.length; i++) {
13215
- const rootComponent = rootContext.components[i];
13216
- const lView = readPatchedLView(rootComponent);
13217
- // We might not have an `LView` if the component was destroyed.
13218
- if (lView !== null) {
13219
- const tView = lView[TVIEW];
13220
- renderComponentOrTemplate(tView, lView, tView.template, rootComponent);
13221
- }
13222
- }
13223
- }
13224
- function detectChangesInternal(tView, lView, context) {
13183
+ function detectChangesInternal(tView, lView, context, notifyErrorHandler = true) {
13225
13184
  const rendererFactory = lView[RENDERER_FACTORY];
13226
- if (rendererFactory.begin)
13185
+ // Check no changes mode is a dev only mode used to verify that bindings have not changed
13186
+ // since they were assigned. We do not want to invoke renderer factory functions in that mode
13187
+ // to avoid any possible side-effects.
13188
+ const checkNoChangesMode = !!ngDevMode && isInCheckNoChangesMode();
13189
+ if (!checkNoChangesMode && rendererFactory.begin)
13227
13190
  rendererFactory.begin();
13228
13191
  try {
13229
13192
  refreshView(tView, lView, tView.template, context);
13230
13193
  }
13231
13194
  catch (error) {
13232
- handleError(lView, error);
13195
+ if (notifyErrorHandler) {
13196
+ handleError(lView, error);
13197
+ }
13233
13198
  throw error;
13234
13199
  }
13235
13200
  finally {
13236
- if (rendererFactory.end)
13201
+ if (!checkNoChangesMode && rendererFactory.end)
13237
13202
  rendererFactory.end();
13238
13203
  }
13239
13204
  }
13240
- /**
13241
- * Synchronously perform change detection on a root view and its components.
13242
- *
13243
- * @param lView The view which the change detection should be performed on.
13244
- */
13245
- function detectChangesInRootView(lView) {
13246
- tickRootContext(lView[CONTEXT]);
13247
- }
13248
- function checkNoChangesInternal(tView, view, context) {
13249
- setIsInCheckNoChangesMode(true);
13250
- try {
13251
- detectChangesInternal(tView, view, context);
13252
- }
13253
- finally {
13254
- setIsInCheckNoChangesMode(false);
13255
- }
13256
- }
13257
- /**
13258
- * Checks the change detector on a root view and its components, and throws if any changes are
13259
- * detected.
13260
- *
13261
- * This is used in development mode to verify that running change detection doesn't
13262
- * introduce other changes.
13263
- *
13264
- * @param lView The view which the change detection should be checked on.
13265
- */
13266
- function checkNoChangesInRootView(lView) {
13205
+ function checkNoChangesInternal(tView, lView, context, notifyErrorHandler = true) {
13267
13206
  setIsInCheckNoChangesMode(true);
13268
13207
  try {
13269
- detectChangesInRootView(lView);
13208
+ detectChangesInternal(tView, lView, context, notifyErrorHandler);
13270
13209
  }
13271
13210
  finally {
13272
13211
  setIsInCheckNoChangesMode(false);
@@ -13759,11 +13698,17 @@ class RootViewRef extends ViewRef$1 {
13759
13698
  this._view = _view;
13760
13699
  }
13761
13700
  detectChanges() {
13762
- detectChangesInRootView(this._view);
13701
+ const lView = this._view;
13702
+ const tView = lView[TVIEW];
13703
+ const context = lView[CONTEXT];
13704
+ detectChangesInternal(tView, lView, context, false);
13763
13705
  }
13764
13706
  checkNoChanges() {
13765
13707
  if (ngDevMode) {
13766
- checkNoChangesInRootView(this._view);
13708
+ const lView = this._view;
13709
+ const tView = lView[TVIEW];
13710
+ const context = lView[CONTEXT];
13711
+ checkNoChangesInternal(tView, lView, context, false);
13767
13712
  }
13768
13713
  }
13769
13714
  get context() {
@@ -13830,7 +13775,7 @@ class ChainedInjector {
13830
13775
  }
13831
13776
  }
13832
13777
  /**
13833
- * Render3 implementation of {@link viewEngine_ComponentFactory}.
13778
+ * ComponentFactory interface implementation.
13834
13779
  */
13835
13780
  class ComponentFactory extends ComponentFactory$1 {
13836
13781
  /**
@@ -13880,10 +13825,9 @@ class ComponentFactory extends ComponentFactory$1 {
13880
13825
  createElementNode(rendererFactory.createRenderer(null, this.componentDef), elementName, getNamespace(elementName));
13881
13826
  const rootFlags = this.componentDef.onPush ? 32 /* LViewFlags.Dirty */ | 256 /* LViewFlags.IsRoot */ :
13882
13827
  16 /* LViewFlags.CheckAlways */ | 256 /* LViewFlags.IsRoot */;
13883
- const rootContext = createRootContext();
13884
13828
  // Create the root view. Uses empty TView and ContentTemplate.
13885
13829
  const rootTView = createTView(0 /* TViewType.Root */, null, null, 1, 0, null, null, null, null, null);
13886
- const rootLView = createLView(null, rootTView, rootContext, rootFlags, null, null, rendererFactory, hostRenderer, sanitizer, rootViewInjector, null);
13830
+ const rootLView = createLView(null, rootTView, null, rootFlags, null, null, rendererFactory, hostRenderer, sanitizer, rootViewInjector, null);
13887
13831
  // rootView is the parent when bootstrapping
13888
13832
  // TODO(misko): it looks like we are entering view here but we don't really need to as
13889
13833
  // `renderView` does that. However as the code is written it is needed because
@@ -13927,7 +13871,8 @@ class ComponentFactory extends ComponentFactory$1 {
13927
13871
  // TODO: should LifecycleHooksFeature and other host features be generated by the compiler and
13928
13872
  // executed here?
13929
13873
  // Angular 5 reference: https://stackblitz.com/edit/lifecycle-hooks-vcref
13930
- component = createRootComponent(componentView, this.componentDef, rootLView, rootContext, [LifecycleHooksFeature]);
13874
+ component =
13875
+ createRootComponent(componentView, this.componentDef, rootLView, [LifecycleHooksFeature]);
13931
13876
  renderView(rootTView, rootLView, null);
13932
13877
  }
13933
13878
  finally {
@@ -14033,7 +13978,7 @@ function createRootComponentView(rNode, def, rootView, rendererFactory, hostRend
14033
13978
  }
14034
13979
  }
14035
13980
  const viewRenderer = rendererFactory.createRenderer(rNode, def);
14036
- const componentView = createLView(rootView, getOrCreateTComponentView(def), null, def.onPush ? 32 /* LViewFlags.Dirty */ : 16 /* LViewFlags.CheckAlways */, rootView[index], tNode, rendererFactory, viewRenderer, sanitizer || null, null, null);
13981
+ const componentView = createLView(rootView, getOrCreateComponentTView(def), null, def.onPush ? 32 /* LViewFlags.Dirty */ : 16 /* LViewFlags.CheckAlways */, rootView[index], tNode, rendererFactory, viewRenderer, sanitizer || null, null, null);
14037
13982
  if (tView.firstCreatePass) {
14038
13983
  diPublicInInjector(getOrCreateNodeInjectorForNode(tNode, rootView), tView, def.type);
14039
13984
  markAsComponentHost(tView, tNode);
@@ -14047,12 +13992,13 @@ function createRootComponentView(rNode, def, rootView, rendererFactory, hostRend
14047
13992
  * Creates a root component and sets it up with features and host bindings.Shared by
14048
13993
  * renderComponent() and ViewContainerRef.createComponent().
14049
13994
  */
14050
- function createRootComponent(componentView, componentDef, rootLView, rootContext, hostFeatures) {
13995
+ function createRootComponent(componentView, componentDef, rootLView, hostFeatures) {
14051
13996
  const tView = rootLView[TVIEW];
14052
13997
  // Create directive instance with factory() and store at next index in viewData
14053
13998
  const component = instantiateRootComponent(tView, rootLView, componentDef);
14054
- rootContext.components.push(component);
14055
- componentView[CONTEXT] = component;
13999
+ // Root view only contains an instance of this component,
14000
+ // so we use a reference to that component instance as a context.
14001
+ componentView[CONTEXT] = rootLView[CONTEXT] = component;
14056
14002
  if (hostFeatures !== null) {
14057
14003
  for (const feature of hostFeatures) {
14058
14004
  feature(component, componentDef);
@@ -14076,9 +14022,6 @@ function createRootComponent(componentView, componentDef, rootLView, rootContext
14076
14022
  }
14077
14023
  return component;
14078
14024
  }
14079
- function createRootContext() {
14080
- return { components: [] };
14081
- }
14082
14025
  /**
14083
14026
  * Used to enable lifecycle hooks on the root component.
14084
14027
  *
@@ -20923,9 +20866,6 @@ function walkIcuTree(tView, tIcu, lView, sharedUpdateOpCodes, create, remove, up
20923
20866
  if (URI_ATTRS[lowerAttrName]) {
20924
20867
  generateBindingUpdateOpCodes(update, attr.value, newIndex, attr.name, 0, _sanitizeUrl);
20925
20868
  }
20926
- else if (SRCSET_ATTRS[lowerAttrName]) {
20927
- generateBindingUpdateOpCodes(update, attr.value, newIndex, attr.name, 0, sanitizeSrcset);
20928
- }
20929
20869
  else {
20930
20870
  generateBindingUpdateOpCodes(update, attr.value, newIndex, attr.name, 0, null);
20931
20871
  }
@@ -21894,7 +21834,7 @@ function getOwningComponent(elementOrDir) {
21894
21834
  */
21895
21835
  function getRootComponents(elementOrDir) {
21896
21836
  const lView = readPatchedLView(elementOrDir);
21897
- return lView !== null ? [...getRootContext(lView).components] : [];
21837
+ return lView !== null ? [getRootContext(lView)] : [];
21898
21838
  }
21899
21839
  /**
21900
21840
  * Retrieves an `Injector` associated with an element, component or directive instance.