@yoobic/yobi 8.5.0-14 → 8.5.0-15
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.
- package/dist/cjs/{swiper-7776d549.js → swiper-df08fc10.js} +1 -1
- package/dist/cjs/yoo-course-summary.cjs.entry.js +2 -1
- package/dist/cjs/yoo-form-dynamic.cjs.entry.js +5 -1
- package/dist/cjs/yoo-grid.cjs.entry.js +1 -1
- package/dist/cjs/yoo-input-bar.cjs.entry.js +43 -103
- package/dist/cjs/{yoo-ion-slides-4129c213.js → yoo-ion-slides-97f83153.js} +239 -417
- package/dist/cjs/yoo-ion-slides.cjs.entry.js +1 -1
- package/dist/collection/components/2.molecules/slide/slide.css +2 -2
- package/dist/collection/components/2.molecules/slides/slides.css +2 -2
- package/dist/collection/components/form/form-dynamic/form-dynamic.js +5 -1
- package/dist/collection/components/grid/grid/grid.js +1 -1
- package/dist/collection/feature-learn/learning/course-summary/course-summary.js +2 -1
- package/dist/{esm/swiper-d9c20e85.js → design-system/swiper-0214777e.js} +2 -2
- package/dist/design-system/yoo-course-summary.entry.js +2 -1
- package/dist/design-system/yoo-form-dynamic.entry.js +5 -1
- package/dist/design-system/yoo-grid.entry.js +1 -1
- package/dist/design-system/yoo-input-bar.entry.js +43 -103
- package/dist/{esm/yoo-ion-slides-e6273a8c.js → design-system/yoo-ion-slides-1fac0410.js} +239 -417
- package/dist/design-system/yoo-ion-slides.entry.js +1 -1
- package/dist/{design-system/swiper-d9c20e85.js → esm/swiper-0214777e.js} +2 -2
- package/dist/esm/yoo-course-summary.entry.js +2 -1
- package/dist/esm/yoo-form-dynamic.entry.js +5 -1
- package/dist/esm/yoo-grid.entry.js +1 -1
- package/dist/esm/yoo-input-bar.entry.js +43 -103
- package/dist/{design-system/yoo-ion-slides-e6273a8c.js → esm/yoo-ion-slides-1fac0410.js} +239 -417
- package/dist/esm/yoo-ion-slides.entry.js +1 -1
- package/package.json +1 -1
@@ -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
|
-
|
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
|
-
|
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
|
}
|
@@ -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.
|
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,
|
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.
|
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', '
|
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
|
8372
|
-
*
|
8373
|
-
*
|
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], '
|
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
|
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 =
|
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
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
*
|
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,
|
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 =
|
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,
|
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,
|
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
|
-
|
14055
|
-
|
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 ? [
|
21837
|
+
return lView !== null ? [getRootContext(lView)] : [];
|
21898
21838
|
}
|
21899
21839
|
/**
|
21900
21840
|
* Retrieves an `Injector` associated with an element, component or directive instance.
|