text:
[Bug]: After pull the latest update, the app getting crashed while selecting the plant list tab and onClick Add plant button.

Is there an existing issue for this?

[X] I have searched the existing issues

Is there a StackOverflow question about this issue?

[X] I have searched StackOverflow

Is this an issue related to the sample app?

[X] Yes, this is a specific issue related to this samples repo.

What happened?
A crash happened!
Relevant logcat output
FATAL EXCEPTION: main
                                                                                Process: com.google.samples.apps.sunflower, PID: 30138
                                                                                java.lang.NoSuchMethodError: No virtual method at(Ljava/lang/Object;I)Landroidx/compose/animation/core/KeyframesSpec$KeyframeEntity; in class Landroidx/compose/animation/core/KeyframesSpec$KeyframesSpecConfig; or its super classes (declaration of 'androidx.compose.animation.core.KeyframesSpec$KeyframesSpecConfig' appears in /data/app/com.google.samples.apps.sunflower-V9I6cMwjK1-GXl0BK6_54Q==/base.apk)
                                                                                at androidx.compose.material3.ProgressIndicatorKt$CircularProgressIndicator$endAngle$1.invoke(ProgressIndicator.kt:371)
                                                                                at androidx.compose.material3.ProgressIndicatorKt$CircularProgressIndicator$endAngle$1.invoke(ProgressIndicator.kt:369)
                                                                                at androidx.compose.animation.core.AnimationSpecKt.keyframes(AnimationSpec.kt:649)
                                                                                at androidx.compose.material3.ProgressIndicatorKt.CircularProgressIndicator-LxG7B9w(ProgressIndicator.kt:369)
                                                                                at com.google.samples.apps.sunflower.compose.utils.SunflowerImageKt$SunflowerImage$3.invoke(SunflowerImage.kt:70)
                                                                                at com.google.samples.apps.sunflower.compose.utils.SunflowerImageKt$SunflowerImage$3.invoke(SunflowerImage.kt:68)
                                                                                at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:109)
                                                                                at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:35)
                                                                                at com.bumptech.glide.integration.compose.GlideImageKt.SizedGlideImage$boxed(GlideImage.kt:305)
                                                                                at com.bumptech.glide.integration.compose.GlideImageKt.SizedGlideImage(GlideImage.kt:313)
                                                                                at com.bumptech.glide.integration.compose.GlideImageKt.GlideImage(GlideImage.kt:124)
                                                                                at com.google.samples.apps.sunflower.compose.utils.SunflowerImageKt.SunflowerImage(SunflowerImage.kt:59)
                                                                                at com.google.samples.apps.sunflower.compose.plantlist.PlantListItemViewKt$ImageListItem$1.invoke(PlantListItemView.kt:62)
                                                                                at com.google.samples.apps.sunflower.compose.plantlist.PlantListItemViewKt$ImageListItem$1.invoke(PlantListItemView.kt:60)
                                                                                at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:118)
                                                                                at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:35)
                                                                                at androidx.compose.material3.CardKt$Card$4.invoke(Card.kt:806)
                                                                                at androidx.compose.material3.CardKt$Card$4.invoke(Card.kt:154)
                                                                                at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:109)
                                                                                at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:35)
                                                                                at androidx.compose.material3.SurfaceKt$Surface$3.invoke(Surface.kt:240)
                                                                                at androidx.compose.material3.SurfaceKt$Surface$3.invoke(Surface.kt:219)
                                                                                at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:109)
                                                                                at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:35)
                                                                                at androidx.compose.runtime.CompositionLocalKt.CompositionLocalProvider(CompositionLocal.kt:228)
                                                                                at androidx.compose.material3.SurfaceKt.Surface-o_FOJdg(Surface.kt:216)
                                                                                at androidx.compose.material3.CardKt.Card(Card.kt:143)
                                                                                at com.google.samples.apps.sunflower.compose.plantlist.PlantListItemViewKt.ImageListItem(PlantListItemView.kt:54)
                                                                                at com.google.samples.apps.sunflower.compose.plantlist.PlantListItemViewKt.PlantListItem(PlantListItemView.kt:43)
                                                                                at com.google.samples.apps.sunflower.compose.plantlist.PlantListScreenKt$PlantListScreen$3$invoke$$inlined$items$default$5.invoke(LazyGridDsl.kt:564)
                                                                                at com.google.samples.apps.sunflower.compose.plantlist.PlantListScreenKt$PlantListScreen$3$invoke$$inlined$items$default$5.invoke(LazyGridDsl.kt:461)
                                                                                at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:139)
                                                                                at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:35)
                                                                                at androidx.compose.foundation.lazy.grid.LazyGridItemProviderImpl$Item$1.invoke(LazyGridItemProvider.kt:78)
                                                                                at androidx.compose.foundation.lazy.grid.LazyGridItemProviderImpl$Item$1.invoke(LazyGridItemProvider.kt:76)
2023-12-22 11:14:00.252 30138-30138 AndroidRuntime          com.google.samples.apps.sunflower    E  	at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:109)
                                                                                at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:35)
                                                                                at androidx.compose.runtime.CompositionLocalKt.CompositionLocalProvider(CompositionLocal.kt:248)
                                                                                at androidx.compose.foundation.lazy.layout.LazyLayoutPinnableItemKt.LazyLayoutPinnableItem(LazyLayoutPinnableItem.kt:58)
                                                                                at androidx.compose.foundation.lazy.grid.LazyGridItemProviderImpl.Item(LazyGridItemProvider.kt:76)
                                                                                at androidx.compose.foundation.lazy.layout.LazyLayoutItemContentFactoryKt$SkippableItem$1.invoke(LazyLayoutItemContentFactory.kt:135)
                                                                                at androidx.compose.foundation.lazy.layout.LazyLayoutItemContentFactoryKt$SkippableItem$1.invoke(LazyLayoutItemContentFactory.kt:134)
                                                                                at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:109)
                                                                                at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:35)
                                                                                at androidx.compose.runtime.CompositionLocalKt.CompositionLocalProvider(CompositionLocal.kt:248)
                                                                                at androidx.compose.runtime.saveable.SaveableStateHolderImpl.SaveableStateProvider(SaveableStateHolder.kt:84)
                                                                                at androidx.compose.foundation.lazy.layout.LazySaveableStateHolder.SaveableStateProvider(LazySaveableStateHolder.kt:85)
                                                                                at androidx.compose.foundation.lazy.layout.LazyLayoutItemContentFactoryKt.SkippableItem-JVlU9Rs(LazyLayoutItemContentFactory.kt:134)
                                                                                at androidx.compose.foundation.lazy.layout.LazyLayoutItemContentFactoryKt.access$SkippableItem-JVlU9Rs(LazyLayoutItemContentFactory.kt:1)
                                                                                at androidx.compose.foundation.lazy.layout.LazyLayoutItemContentFactory$CachedItemContent$createContentLambda$1.invoke(LazyLayoutItemContentFactory.kt:101)
                                                                                at androidx.compose.foundation.lazy.layout.LazyLayoutItemContentFactory$CachedItemContent$createContentLambda$1.invoke(LazyLayoutItemContentFactory.kt:91)
                                                                                at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:109)
                                                                                at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:35)
                                                                                at androidx.compose.ui.layout.LayoutNodeSubcompositionsState$subcompose$3$1$1.invoke(SubcomposeLayout.kt:989)
                                                                                at androidx.compose.ui.layout.LayoutNodeSubcompositionsState$subcompose$3$1$1.invoke(SubcomposeLayout.kt:476)
                                                                                at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:109)
                                                                                at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:35)
                                                                                at androidx.compose.runtime.ActualJvm_jvmKt.invokeComposable(ActualJvm.jvm.kt:90)
                                                                                at androidx.compose.runtime.ComposerImpl.doCompose(Composer.kt:3302)
                                                                                at androidx.compose.runtime.ComposerImpl.composeContent$runtime_release(Composer.kt:3235)
                                                                                at androidx.compose.runtime.CompositionImpl.composeContent(Composition.kt:723)
                                                                                at androidx.compose.runtime.Recomposer.composeInitial$runtime_release(Recomposer.kt:1071)
                                                                                at androidx.compose.runtime.ComposerImpl$CompositionContextImpl.composeInitial$runtime_release(Composer.kt:3599)
                                                                                at androidx.compose.runtime.ComposerImpl$CompositionContextImpl.composeInitial$runtime_release(Composer.kt:3599)
                                                                                at androidx.compose.runtime.ComposerImpl$CompositionContextImpl.composeInitial$runtime_release(Composer.kt:3599)
                                                                                at androidx.compose.runtime.CompositionImpl.composeInitial(Composition.kt:631)
                                                                                at androidx.compose.runtime.CompositionImpl.setContent(Composition.kt:617)
                                                                                at androidx.compose.ui.layout.LayoutNodeSubcompositionsState.subcomposeInto(SubcomposeLayout.kt:499)
                                                                                at androidx.compose.ui.layout.LayoutNodeSubcompositionsState.subcompose(SubcomposeLayout.kt:471)
                                                                                at androidx.compose.ui.layout.LayoutNodeSubcompositionsState.subcompose(SubcomposeLayout.kt:462)
                                                                                at androidx.compose.ui.layout.LayoutNodeSubcompositionsState.subcompose(SubcomposeLayout.kt:446)
                                                                                at androidx.compose.ui.layout.LayoutNodeSubcompositionsState$Scope.subcompose(SubcomposeLayout.kt:871)
                                                                                at androidx.compose.foundation.lazy.layout.LazyLayoutMeasureScopeImpl.measure-0kLqBqw(LazyLayoutMeasureScope.kt:125)
2023-12-22 11:14:00.254 30138-30138 AndroidRuntime          com.google.samples.apps.sunflower    E  	at androidx.compose.foundation.lazy.grid.LazyGridMeasuredItemProvider.getAndMeasure-3p2s80s(LazyGridMeasuredItemProvider.kt:45)
                                                                                at androidx.compose.foundation.lazy.grid.LazyGridMeasuredLineProvider.getAndMeasure(LazyGridMeasuredLineProvider.kt:78)
                                                                                at androidx.compose.foundation.lazy.grid.LazyGridMeasureKt.measureLazyGrid-W2FL7xs(LazyGridMeasure.kt:170)
                                                                                at androidx.compose.foundation.lazy.grid.LazyGridKt$rememberLazyGridMeasurePolicy$1$1.invoke-0kLqBqw(LazyGrid.kt:341)
                                                                                at androidx.compose.foundation.lazy.grid.LazyGridKt$rememberLazyGridMeasurePolicy$1$1.invoke(LazyGrid.kt:177)
                                                                                at androidx.compose.foundation.lazy.layout.LazyLayoutKt$LazyLayout$3$2$1.invoke-0kLqBqw(LazyLayout.kt:107)
                                                                                at androidx.compose.foundation.lazy.layout.LazyLayoutKt$LazyLayout$3$2$1.invoke(LazyLayout.kt:100)
                                                                                at androidx.compose.ui.layout.LayoutNodeSubcompositionsState$createMeasurePolicy$1.measure-3p2s80s(SubcomposeLayout.kt:708)
                                                                                at androidx.compose.ui.node.InnerNodeCoordinator.measure-BRTryo0(InnerNodeCoordinator.kt:126)
                                                                                at androidx.compose.ui.graphics.SimpleGraphicsLayerModifier.measure-3p2s80s(GraphicsLayerModifier.kt:646)
                                                                                at androidx.compose.ui.node.LayoutModifierNodeCoordinator.measure-BRTryo0(LayoutModifierNodeCoordinator.kt:116)
                                                                                at androidx.compose.foundation.layout.InsetsPaddingModifier.measure-3p2s80s(WindowInsetsPadding.kt:155)
                                                                                at androidx.compose.ui.node.BackwardsCompatNode.measure-3p2s80s(BackwardsCompatNode.kt:311)
                                                                                at androidx.compose.ui.node.LayoutModifierNodeCoordinator.measure-BRTryo0(LayoutModifierNodeCoordinator.kt:116)
                                                                                at androidx.compose.foundation.layout.FillNode.measure-3p2s80s(Size.kt:699)
                                                                                at androidx.compose.ui.node.LayoutModifierNodeCoordinator.measure-BRTryo0(LayoutModifierNodeCoordinator.kt:116)
                                                                                at androidx.compose.ui.node.LayoutNodeLayoutDelegate$performMeasureBlock$1.invoke(LayoutNodeLayoutDelegate.kt:252)
                                                                                at androidx.compose.ui.node.LayoutNodeLayoutDelegate$performMeasureBlock$1.invoke(LayoutNodeLayoutDelegate.kt:251)
                                                                                at androidx.compose.runtime.snapshots.Snapshot$Companion.observe(Snapshot.kt:2303)
                                                                                at androidx.compose.runtime.snapshots.SnapshotStateObserver$ObservedScopeMap.observe(SnapshotStateObserver.kt:500)
                                                                                at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStateObserver.kt:256)
                                                                                at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapshotObserver.kt:133)
                                                                                at androidx.compose.ui.node.OwnerSnapshotObserver.observeMeasureSnapshotReads$ui_release(OwnerSnapshotObserver.kt:113)
                                                                                at androidx.compose.ui.node.LayoutNodeLayoutDelegate.performMeasure-BRTryo0(LayoutNodeLayoutDelegate.kt:1613)
                                                                                at androidx.compose.ui.node.LayoutNodeLayoutDelegate.access$performMeasure-BRTryo0(LayoutNodeLayoutDelegate.kt:36)
                                                                                at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.remeasure-BRTryo0(LayoutNodeLayoutDelegate.kt:620)
                                                                                at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.measure-BRTryo0(LayoutNodeLayoutDelegate.kt:596)
                                                                                at androidx.compose.foundation.lazy.layout.LazyLayoutMeasureScopeImpl.measure-0kLqBqw(LazyLayoutMeasureScope.kt:127)
                                                                                at androidx.compose.foundation.pager.PagerMeasureKt.getAndMeasure-SGf7dI0(PagerMeasure.kt:522)
                                                                                at androidx.compose.foundation.pager.PagerMeasureKt.measurePager-_JDW0YA(PagerMeasure.kt:203)
                                                                                at androidx.compose.foundation.pager.PagerMeasurePolicyKt$rememberPagerMeasurePolicy$1$1.invoke-0kLqBqw(PagerMeasurePolicy.kt:159)
                                                                                at androidx.compose.foundation.pager.PagerMeasurePolicyKt$rememberPagerMeasurePolicy$1$1.invoke(PagerMeasurePolicy.kt:69)
                                                                                at androidx.compose.foundation.lazy.layout.LazyLayoutKt$LazyLayout$3$2$1.invoke-0kLqBqw(LazyLayout.kt:107)
                                                                                at androidx.compose.foundation.lazy.layout.LazyLayoutKt$LazyLayout$3$2$1.invoke(LazyLayout.kt:100)
                                                                                at androidx.compose.ui.layout.LayoutNodeSubcompositionsState$createMeasurePolicy$1.measure-3p2s80s(SubcomposeLayout.kt:708)
                                                                                at androidx.compose.ui.node.InnerNodeCoordinator.measure-BRTryo0(InnerNodeCoordinator.kt:126)
2023-12-22 11:14:00.255 30138-30138 AndroidRuntime          com.google.samples.apps.sunflower    E  	at androidx.compose.ui.graphics.SimpleGraphicsLayerModifier.measure-3p2s80s(GraphicsLayerModifier.kt:646)
                                                                                at androidx.compose.ui.node.LayoutModifierNodeCoordinator.measure-BRTryo0(LayoutModifierNodeCoordinator.kt:116)
                                                                                at androidx.compose.ui.node.LayoutNodeLayoutDelegate$performMeasureBlock$1.invoke(LayoutNodeLayoutDelegate.kt:252)
                                                                                at androidx.compose.ui.node.LayoutNodeLayoutDelegate$performMeasureBlock$1.invoke(LayoutNodeLayoutDelegate.kt:251)
                                                                                at androidx.compose.runtime.snapshots.Snapshot$Companion.observe(Snapshot.kt:2303)
                                                                                at androidx.compose.runtime.snapshots.SnapshotStateObserver$ObservedScopeMap.observe(SnapshotStateObserver.kt:500)
                                                                                at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStateObserver.kt:256)
                                                                                at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapshotObserver.kt:133)
                                                                                at androidx.compose.ui.node.OwnerSnapshotObserver.observeMeasureSnapshotReads$ui_release(OwnerSnapshotObserver.kt:113)
                                                                                at androidx.compose.ui.node.LayoutNodeLayoutDelegate.performMeasure-BRTryo0(LayoutNodeLayoutDelegate.kt:1613)
                                                                                at androidx.compose.ui.node.LayoutNodeLayoutDelegate.access$performMeasure-BRTryo0(LayoutNodeLayoutDelegate.kt:36)
                                                                                at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.remeasure-BRTryo0(LayoutNodeLayoutDelegate.kt:620)
                                                                                at androidx.compose.ui.node.LayoutNode.remeasure-_Sx5XlM$ui_release(LayoutNode.kt:1144)
                                                                                at androidx.compose.ui.node.MeasureAndLayoutDelegate.doRemeasure-sdFAvZA(MeasureAndLayoutDelegate.kt:354)
                                                                                at androidx.compose.ui.node.MeasureAndLayoutDelegate.measureAndLayout-0kLqBqw(MeasureAndLayoutDelegate.kt:434)
                                                                                at androidx.compose.ui.platform.AndroidComposeView.measureAndLayout-0kLqBqw(AndroidComposeView.android.kt:982)
                                                                                at androidx.compose.ui.node.LayoutNode.forceRemeasure(LayoutNode.kt:1218)
                                                                                at androidx.compose.foundation.pager.PagerState.performScroll(PagerState.kt:222)
                                                                                at androidx.compose.foundation.pager.PagerState.access$performScroll(PagerState.kt:131)
                                                                                at androidx.compose.foundation.pager.PagerState$scrollableState$1.invoke(PagerState.kt:184)
                                                                                at androidx.compose.foundation.pager.PagerState$scrollableState$1.invoke(PagerState.kt:184)
                                                                                at androidx.compose.foundation.gestures.DefaultScrollableState$scrollScope$1.scrollBy(ScrollableState.kt:166)
                                                                                at androidx.compose.foundation.pager.PagerState$animateScrollToPage$3$1$3.invoke(PagerState.kt:554)
                                                                                at androidx.compose.foundation.pager.PagerState$animateScrollToPage$3$1$3.invoke(PagerState.kt:552)
                                                                                at androidx.compose.animation.core.SuspendAnimationKt$animate$3.invoke(SuspendAnimation.kt:117)
                                                                                at androidx.compose.animation.core.SuspendAnimationKt$animate$3.invoke(SuspendAnimation.kt:116)
                                                                                at androidx.compose.animation.core.SuspendAnimationKt.doAnimationFrame(SuspendAnimation.kt:361)
                                                                                at androidx.compose.animation.core.SuspendAnimationKt.doAnimationFrameWithScale(SuspendAnimation.kt:339)
                                                                                at androidx.compose.animation.core.SuspendAnimationKt.access$doAnimationFrameWithScale(SuspendAnimation.kt:1)
                                                                                at androidx.compose.animation.core.SuspendAnimationKt$animate$9.invoke(SuspendAnimation.kt:279)
                                                                                at androidx.compose.animation.core.SuspendAnimationKt$animate$9.invoke(SuspendAnimation.kt:278)
                                                                                at androidx.compose.animation.core.SuspendAnimationKt$callWithFrameNanos$2.invoke(SuspendAnimation.kt:304)
                                                                                at androidx.compose.animation.core.SuspendAnimationKt$callWithFrameNanos$2.invoke(SuspendAnimation.kt:303)
                                                                                at androidx.compose.runtime.BroadcastFrameClock$FrameAwaiter.resume(BroadcastFrameClock.kt:42)
                                                                                at androidx.compose.runtime.BroadcastFrameClock.sendFrame(BroadcastFrameClock.kt:71)
                                                                                at androidx.compose.runtime.Recomposer$runRecomposeAndApplyChanges$2$1.invoke(Recomposer.kt:558)
                                                                                at androidx.compose.runtime.Recomposer$runRecomposeAndApplyChanges$2$1.invoke(Recomposer.kt:551)
                                                                                at androidx.compose.ui.platform.AndroidUiFrameClock$withFrameNanos$2$callback$1.doFrame(AndroidUiFrameClock.android.kt:41)
2023-12-22 11:14:00.256 30138-30138 AndroidRuntime          com.google.samples.apps.sunflower    E  	at androidx.compose.ui.platform.AndroidUiDispatcher.performFrameDispatch(AndroidUiDispatcher.android.kt:109)
                                                                                at androidx.compose.ui.platform.AndroidUiDispatcher.access$performFrameDispatch(AndroidUiDispatcher.android.kt:41)
                                                                                at androidx.compose.ui.platform.AndroidUiDispatcher$dispatchCallback$1.doFrame(AndroidUiDispatcher.android.kt:69)
                                                                                at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1063)
                                                                                at android.view.Choreographer.doCallbacks(Choreographer.java:889)
                                                                                at android.view.Choreographer.doFrame(Choreographer.java:812)
                                                                                at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1050)
                                                                                at android.os.Handler.handleCallback(Handler.java:883)
                                                                                at android.os.Handler.dispatchMessage(Handler.java:100)
                                                                                at android.os.Looper.loop(Looper.java:237)
                                                                                at android.app.ActivityThread.main(ActivityThread.java:7830)
                                                                                at java.lang.reflect.Method.invoke(Native Method)
                                                                                at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
                                                                                at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1040)
                                                                                Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [androidx.compose.ui.platform.MotionDurationScaleImpl@ccd7235, androidx.compose.runtime.BroadcastFrameClock@643f6ca, StandaloneCoroutine{Cancelling}@a5dd03b, AndroidUiDispatcher@805d358]
2023-12-22 11:14:00.275 30138-30138 Process                 com.google.samples.apps.sunflower    I  Sending signal. PID: 30138 SIG: 9
2023-12-22 11:14:00.305  1489-1618  InputDispatcher         pid-1489                             E  channel '130d857 com.google.samples.apps.sunflower/com.google.samples.apps.sunflower.GardenActivity (server)' ~ Channel is unrecoverably broken and will be disposed!

Code of Conduct

[X] I agree to follow this project's Code of Conduct

i also face same problem,
java.lang.NoSuchMethodError: No virtual method at(Ljava/lang/Object;I)Landroidx/compose/animation/core/KeyframesSpec$KeyframeEntity; in class Landroidx/compose/animation/core/KeyframesSpec$KeyframesSpecConfig; or its super classes (declaration of 'androidx.compose.animation.core.KeyframesSpec$KeyframesSpecConfig' appears in /data/app/com.google.samples.apps.sunflower-f41fCRxZfm2KvT7chj4ARw==/base.apk)

implementation("androidx.compose.material3:material3-android:1.2.0-alpha10")
above solution work for me

update gradle version androidx.compose.material3:material3-android:
from 1.0.1 to 1.2.0-alpha10 will solve this issue
implementation("androidx.compose.material3:material3-android:1.2.0-alpha10")

Fixed in #941

authors: WaqasHazel arriolac hsumyatyehtet mobilelocalteam xswapsx

repo: android/sunflower


text:
Suppprt lazy add xml attribute

ViewStub is useful but inconvenient.

It required a separate xml which is not good for manage and read.
id and inflatedId needs to be same if you use ViewBinding.

So I suggest a new attribute which indicates a lazy add. app:layout_constraintLazy="true".
It is different from ViewStub because it is inflated
and where to added is set, except it is not in view tree.
If you want to add the view, call  ConstrainLayout.addView(lazyViewId) (or maybe new method needed.)
I'm not sure this attribute makes sense. maybe virtual helper(like Guideline, Barrier) style is more suitable.
But this lazy add will lighten your viewtree which is the goal of ConstraintLayout.

If it is inflated and location is set.
What is the difference from visibility="gone"?
The "heavy" part is inflation.
If it was not part of the tree. It is inaccessible and should be garbage collected.

You are right. I misunderstood.
I thought whether attached or not can make difference.
I'll close the issue.

source: gharchive/issue

repo: androidx/constraintlayout

license_type: permissive

license_source: bigquery


text:
Two tracks are getting downloaded by Exoplayer and IMA SDK

Version
ExoPlayer 2.16.1
More version details
No response
Devices that reproduce the issue
All Android devices
Devices that do not reproduce the issue
No response
Reproducible in the demo app?
Yes
Reproduction steps
We are using IMA SDK for playing video ads.
We have tried with Single player and using Concatenating media source to have Ads and content media concatenated. But due to this issue https://github.com/google/ExoPlayer/issues/3693, we have to switch to two players
One player used for content playback and another is for Ads playback.
Content Player
val renderersFactory = DefaultRenderersFactory(context.applicationContext).setEnableDecoderFallback(true)

        val builder = ExoPlayer.Builder(context, renderersFactory, decoderBehaviour)
                .setLoadControl(loadControl)
                .setOverrideDecoderBehavior(decoderBehaviour)
                .setSeekParameters(SeekParameters.CLOSEST_SYNC)
        trackSelector?.let { builder.setTrackSelector(it) }
        player = builder.build()
player?.apply {
                currentMediaSource?.let {
                    setMediaSources(
                        listOf(it),  /* startWindowIndex= */
                        if (resetPosition) 0 else C.INDEX_UNSET,  /* startPositionMs= */
                        C.TIME_UNSET
                    )
                }
                prepare()
            }

Ads Player
val dataSourceFactory: DataSource.Factory = DefaultDataSourceFactory(context)
        val mediaSourceFactory: MediaSourceFactory = DefaultMediaSourceFactory(dataSourceFactory)
            .setAdsLoaderProvider { adsLoader }
            .setAdViewProvider(imaVideoAdsView?.getAdUiContainer())

        val renderersFactory = DefaultRenderersFactory(context.applicationContext).setEnableDecoderFallback(true)
imaAdsPlayer = ExoPlayer.Builder(context, renderersFactory, overrideDecoderBehavior)
            .setMediaSourceFactory(mediaSourceFactory)
            .setOverrideDecoderBehavior(overrideDecoderBehavior)
            .setSeekParameters(SeekParameters.CLOSEST_SYNC)
            .build()
        imaVideoAdsView?.getAdUiContainer()?.player = imaAdsPlayer
        adsLoader?.setPlayer(imaAdsPlayer)
val contentUri = Uri.parse(playbackItem.contentUrl)
        val adTagUri = Uri.parse(playbackItem.adsMeta?.meta?.url)
        val adsConfig = MediaItem.AdsConfiguration.Builder(adTagUri).build()
        val mediaItem: MediaItem = MediaItem.Builder()
            .setUri(contentUri)
            .setAdsConfiguration(adsConfig)
            .build()

        // Prepare the content and ad to be played with the SimpleExoPlayer.
        imaAdsPlayer?.setMediaItem(mediaItem)
        imaAdsPlayer?.prepare()

Ima Ads player needs two media items - content and ad tag url
Since there are two players, two tracks are getting downloaded for content playback.
One track in the quality user has selected to play and another that is with Adsplayer.
Do we have a fix for the issue which i mentioned https://github.com/google/ExoPlayer/issues/3693
So that we can move to single player.
Expected result
Below Exception should not come when i use ConcatenatingMediaSource with Ads and content url .
01-11 14:46:43.654 2793-2793/com.intigral.splive W/System.err: java.lang.IllegalArgumentException
01-11 14:46:43.654 2793-2793/com.intigral.splive W/System.err: at com.google.android.exoplayer2.util.Assertions.checkArgument(Assertions.java:37)
01-11 14:46:43.654 2793-2793/com.intigral.splive W/System.err: at com.google.android.exoplayer2.ext.ima.ImaAdsLoader.onTimelineChanged(ImaAdsLoader.java:671)
01-11 14:46:43.654 2793-2793/com.intigral.splive W/System.err: at com.google.android.exoplayer2.ExoPlayerImpl.updatePlaybackInfo(ExoPlayerImpl.java:588)
01-11 14:46:43.654 2793-2793/com.intigral.splive W/System.err: at com.google.android.exoplayer2.ExoPlayerImpl.handlePlaybackInfo(ExoPlayerImpl.java:541)
01-11 14:46:43.654 2793-2793/com.intigral.splive W/System.err: at com.google.android.exoplayer2.ExoPlayerImpl.handleEvent(ExoPlayerImpl.java:483)
01-11 14:46:43.654 2793-2793/com.intigral.splive W/System.err: at com.google.android.exoplayer2.ExoPlayerImpl$1.handleMessage(ExoPlayerImpl.java:100)
01-11 14:46:43.654 2793-2793/com.intigral.splive W/System.err: at android.os.Handler.dispatchMessage(Handler.java:102)
01-11 14:46:43.654 2793-2793/com.intigral.splive W/System.err: at android.os.Looper.loop(Looper.java:154)
01-11 14:46:43.655 2793-2793/com.intigral.splive W/System.err: at android.app.ActivityThread.main(ActivityThread.java:6077)
01-11 14:46:43.655 2793-2793/com.intigral.splive W/System.err: at java.lang.reflect.Method.invoke(Native Method)
01-11 14:46:43.655 2793-2793/com.intigral.splive W/System.err: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865)
01-11 14:46:43.655 2793-2793/com.intigral.splive W/System.err: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)

Actual result
Above exception is coming
Media
Not applicable
Bug Report

[ ] You will email the zip file produced by adb bugreport to android-media-github@google.com after filing this issue.

I think this is essentially a duplicate of https://github.com/google/ExoPlayer/issues/3693.
For your workaround case: Do you need to play the same content with your 'ads' player? What about playing some 'fake' local content, since I believe you will only actually be using this player when it's playing ads - that should avoid you downloading the content twice.

@icbaker @tonihei The video, we are giving to ads player should be of same duration, how would it be possible to play a fake video?
Every video can of different duration, where would i get the fake video

where would i get the fake video

You can use a SilenceMediaSource and then configure the player with an AdsMediaSource directly instead of using MediaItem.  It should look roughly like this:
player.addMediaSource(
    new AdsMediaSource(
        new SilenceMediaSource(/* durationUs= */ [value >= last ad group time]),
        new DataSpec(adTagUri),
        /* adsId= */ "ads",
        new DefaultMediaSourceFactory(context),
        adsLoader,
        adViewProvider));

authors: icbaker nikky12 tonihei

repo: androidx/media

license_source: github-api


text:
Round split final (and wrap, merge, unwrap, etc)

Fixed some history issues with the previous pull request. Contains a working implementation of r_split, r_wrap, r_unwrap, r_merge tested with microbenchmarks.  Also contains some log parsing, testing, and plotting utilities used in benchmarking and comparison to normal auto-split.

Depends on #161

Merging this might not be easy, due to conflicts. One way around this would be to make PRs smaller and self-contained:-) (nor sure this helps, I know I'm stating the obvious:P)

I don't think there should be many conflicts with future. Merging future to main will be a pain though :(

source: gharchive/pull-request

authors: angelhof nvasilakis tammam1998

repo: andromeda/pash

license: MIT


text:
Plans for dropdowns?

Hi @andybrewer, I was curios if you had plans to add dropdowns to the nav menu?

Oh, also, I've used mvp here, works great, nice and clean, and clean markup.
https://diemendesign.github.io/AussieOwned/

Had a little bit of a play around:
Styling:
/* Dropdown */
  nav ul li:hover ul li {
    display: block;
  }

  nav ul li ul li {
    position: absolute;
    top: 1.2em;
    left: -.75em;
    display: none;
    height: auto;
    background: #fff;
    border: 1px solid var(--color-bg-secondary);
    padding: .5em 2em;
    border-radius: var(--border-radius);
    box-shadow: var(--box-shadow) var(--color-shadow);
  }

Markup:

Link

Link

Dropdown

Good question. The primary goal of MVP.css is a a no-class stylesheet for simple sites. If they can be done simply and without classes I'd be open to including them.

The code above, doesn't use classes to achieve a simple nav dropdown, the "active" class above in the HTML is just a remnant of me playing and isn't used, it doesn't exist in the styles above it.
If your happy with it I'll gladly do a PR.

Awesome! Would you mind including a screenshot in the PR?

PR with Screenshot added, thanks for such a cool project. I am considering adding a theme to my project AuroraCMS as a minimilst theme, and adding some extra classes but concentrating on keep as much without classes as you have done.

Added to v1.3

authors: DiemenDesign andybrewer

repo: andybrewer/mvp


text:
webRTCissues

Uncaught ReferenceError: stream is not defined
at main.js:24

Sorry @plusmaxz, but this is way too little information to tell anything about your issue. Doesn't even look related to this lib, since there is no main.js in threadpool-js.
Btw: threadpool-js has been deprecated: https://github.com/andywer/threadpool-js#threadpooljs---

authors: andywer plusmaxz

repo: andywer/threadpool-js

license: mit


text:
HE_SESSID - Where do I get it?

I like faster, but I don't know what the SESSID even is. Could you explain a little more about it and how to get it?  Thanks, Tom

I think it's the CGISESSID cookie that's created when you log in.

authors: TasMot sdwilsh


text:
DS_Store and Mantis files included in cell table generation

Report
Using a mac to run nimbus.predict_fovs(), I ran into an error that .DS_Store files could not be found, and ran into another error about .mantisDB files not found. I ran a script to remove all .DS_Store files that fixed the issue, and also ran a script to remove all .mantisDB files. After doing so, the cell_table was generated, but if trying to regenerate the cell_table, there is another .DS_Store file still in the directory that I needed to remove again.

Version information
No response

Hi @rdj71,
thanks for raising this issue. I'll fix it ASAP.
Best,
Lorenz

Hi @rdj71,
could it be that your problem can be fixed by just excluding the '.DS_Store' and '.mantisDB' paths from fov_paths after this line in the inference notebook: fov_paths = [os.path.join(tiff_dir, fov_name) for fov_name in fov_names]? If not, can lay out the folder structure? I was assuming something like this, where would the folders causing the problem be in this structure?
|-- base_dir
|   |-- image_data
|   |   |-- fov_1
|   |   |-- fov_2
|   |-- segmentation
|   |   |-- deepcell_output
|   |   |   |-- fov_1_whole_cell.tiff
|   |   |   |-- fov_2_whole_cell.tiff
|   |-- nimbus_output

repo: angelolab/Nimbus-Inference


text:
IllegalArgumentsException: Empty Storage ID

FileFullPath.kt line 115

Fatal Exception: java.lang.IllegalArgumentException: Empty storage ID
       at com.anggrayudi.storage.file.FileFullPath.checkIfStorageIdIsAccessibleInSafSelector(FileFullPath.kt:115)
       at com.anggrayudi.storage.SimpleStorage.requestStorageAccess(SimpleStorage.kt:156)
       at com.anggrayudi.storage.SimpleStorageHelper.requestStorageAccess(SimpleStorageHelper.kt:353)
       at com.anggrayudi.storage.SimpleStorageHelper.requestStorageAccess$default(SimpleStorageHelper.kt:345)
       at com.anggrayudi.storage.SimpleStorageHelper.requestStorageAccess(SimpleStorageHelper.kt:8)

One of the user is getting this crash on Android 9. The Storage is located on SD card.

Probably this is because the user uses : special character in his file/folder. Maybe I need to replace the current logic from substring the SD card ID to regex extraction for more accurate results.

If any additional logging can be helpful, I can ask the user for installing custom apk.

Put logs wherever you construct FileFullPath() object. That will be really helpful.

The issue was empty path being passed to FileFullPath() in a specific case.

repo: anggrayudi/SimpleStorage


text:
fixed comment syncing

Closes #41

added more reliability for info tables if a pull fails

Also, in this PR, added the ground work for detecting different signals from IDA to make popups more robust on different IDA screens, as well as detect when we have changed screens.

repo: angr/binsync


text:
Project still active?

Sorry for this question... but is this project still active?  I only ask because of the lack of any recent commits in the repository.  Has this project migrated into ngrx/store?  I am hoping it is still active because I am no longer able to use ngrx/store due to the bugs and increasing complexity of the product.
Thanks.

I second this question.
It seems like ngrx/store is all the buzz nowadays. The reason I'm not switching to it is the lack of a working equivalent of angular-redux/form.
Is angular-redux/store still alive?

Hey guys, I am really needing these tools and if I show good work with it, I could maybe get a bit of my organization to back it.
If the author is not reactive enough he should add more people to the repo.
If he gives no response, I guess it's open source...

@smatthews1999 @kuhlschrank @MonsieurMan the project is still alive, and I'm using it in a few different production level projects at work.
It hasn't been abandoned - just been a matter of time to try and address issues that have been opened by other people.

Let's make it live again then ! 😄

I've been using in 3 projects by this time, too. Some bits for saying: You are doing an amazing job here.

Same here, been using this in a few different projects. Have seen no issues in Angular 5 so far thanks for providing this amazing tool. If you need any help let me know.

Also use this library in big project.

Thanks for your support, I've been enjoying working on this. Wish I had more time to document things better.
I'd be curious to hear about the types of projects / use cases other developers are using this with, and if there is anything that can be done to make working with it easier, either as part of the core library - or other packages.

Hello there,
I am also using this in my project, and glad to hear that this is still alive :-).
I am about to update my project to angular 5 and all its dependencies, but I am a bit confuse about the versioning strategy used by @angular-redux/store. There are so many versions published in the same time, which are not commented in CHANGELOG.md by the way, or created in a not chronological order (for instance v8.0.0-1 created before the 7 versions, etc...)
So what version of @angular-redux/store do I need to use now in my Angular 5.1.0 package.json please ?
Thank you

@AlainD-  the v8 was an accidental publish. For Angular 5+, use v7 - it only works with Angular 5.
v6 works with 4 or 5, and for the next while where possible will be applying fixes to both where appropriate - I'm using angular-redud/store on a few v4 projects that I can't upgrade yet.
Last few releases in terms of change logs / etc were not clearly handeled on my part, and apologizes for any confusion it has caused.

Thank you @e-shultz for the great work! I understand it is a lot of work for you, and we really appreciate what you do. I usually try to figure things myself, but just that recently on this repo versions released were a bit under documented in the changelog, no offense here, but I guess it was the rush of the new version 5 of Angular + fixes for Angular projects in v4 und so weiter.
Anyway thank you for the info :-) All clear now.

@e-schultz Could you release the latest versions to npmjs.com? The last version there is 6.5.8-0.

@Eymux just did a bump of v7.0.2 - no code changes, just gets it published under the right@latest tag on NPM.
Also updated readme / changelog to hopefully clarify any confusion around the recent releases / versioning. I had answered the question a few times in issues, but I shouldn't expect my users to dig through the issue history to figure out what was going on.
Let me know if you have any further issues / questions.
Your patience is appreciated, thanks!.

authors: AlainD- Eymux MonsieurMan SMHFandA e-schultz kuhlschrank lvidal1 mengel188 smatthews1999

repo: angular-redux/store


text:
Example page fix.

Path of different files corrected and needed to be linked one level above (e.g. for JS files was: source/, now: ../source/)
see #457

Hi, @ilovemygameboy. Thanks for your contribution!
Currently I don't see any issues with the paths of the examples website.
Do you use $ gulp serve?

authors: Voles ilovemygameboy

repo: angular-ui-tree/angular-ui-tree


text:
Setting tab Active with $scope disables other tabs

I am using Angular 1.4.6 and ui-bootstrap 0.13.4.  I have a tab that is disabled.  When the user clicks a button, I want to enable the tab and make it active (I am using $scope.noView = true/false and active = noView).  This works fine, accept that once it becomes Active all other tabs are non-clickable.  The don't show as being disabled, but clicking on them does nothing.  Am I missing something?

https://github.com/angular-ui/bootstrap#found-a-bug

authors: DevQueen RobJacobs

repo: angular-ui/bootstrap


text:
collapse plugin renders a rising scrollbar on bootstrap navbar

Plunker: https://plnkr.co/edit/2H4yZfl6zSM0WmVzaba8?p=preview
Make sure the right panel is wide enough so that the navbar does not collapse and you will see a horizontal scrollbar (on initial load / refresh) that floats upwards starting from the bottom of the navbar.
The scrollbar does not appear if the navbar content is added to the file directly instead of using ng-include.
Removing the navbar-right content makes the scrollbar appear to go away but an element is still floating upward which can be detected as it passes over the 'Left' text.
Found this while upgrading from 0.13.4. It was introduced in 0.14.0.
(Edit: changed plunker URL to go straight to preview)
(Edit: mention that this comment is related to ng-include)

ng-include is an anti-pattern - there is no good use case for it.
Not able to reproduce this - what OS/browser are you seeing this on?

DIdn't know ng-include was an anti-pattern. That's how the angular-fullstack generator sets up the nav bar component.
I am on Win 7 and am able to repro in FF 44.0.2 and Chrome 48.0.2564.109 m
After expanding the right panel in the plunker to show the uncollapsed nav, the preview must be refreshed using the Refresh button in the plunker

I tried it with a directive and the behavior is similar to ng-include. When the directive is in the top-level page, the navbar displays fine but when the navbar directive is in a view, then the issue occurs.
Plunkr with a directive: https://plnkr.co/edit/MnGQHgXW8pod42xexkkp?p=preview
I've reproduced all 3 scenarios in this plunker
v1: The original issue using ng-include
v2: No issue when navbar directive is in index.html
v3: Issue when navbar directive is in a view

+1 - I have got the same problem with the horizontal scrollbar.

+1 - I have got the same problem with the horizontal scrollbar.
https://in-frame.com:8088/angular#/home

im using ng-include too, i thought it was because of collapse. but when i patch the collapse with earlier version the scroll when changing page / refresh doesnt disappear.
im currently already changing to 3 version.
i forgot the first version. but it start with 0.1*.* -> 1.4.0 -> 1.1.0
both collapse scrollbar and navbar scrollbar doesnt disappear.

+1 - Encountering this issue as well

The problem is when navbar open and close at the same moment.
If in first plunker change
$scope.isCollapsed = true;
to
$scope.isCollapsed = false;
result: no rising scrollbar.

Best example for new version!)
http://stackoverflow.com/questions/38004168/navbar-dropdown-with-angular-and-ui-router-wont-work

Encountering this as well.
Kolkov's suggestion to initialize the isCollapsed = false works, but it means that on small screens, the hamburger dropdown defaults to open.  On the hamburger menu itself, you get a vertical errant scroll bar, which I was able to disable by setting its overflow to hidden, but this is obviously not optimal.

@kolkov in this link the navbar isn't with angular-animate.

i'm with the same problem, if I add angular-animate the scrollbar appear without angular-animate it desapear.

woooooowww, I think a solution, if I put the css class in my code, working for me
.navbar-collapse.in {
overflow-y: hidden;
}

I've been struggling with this same issue for ages. I can't seem to figure out a working solution.

is there any example of this solution used.

Im still having this problem even after using that css class

@wesleycho The plunker still shows the scrollbar issue after changing the angular-ui-bootstrap version to 2.1.3. Using the second link above: https://plnkr.co/edit/MnGQHgXW8pod42xexkkp?p=preview

it would be best if somebody puts up working example of the solution before closing the issue

I also still see this issue with the latest version of angular bootstrap ui

Please somebody who has solved this issue put up a an updated Plunker example.

@jadir-junior  could you provide example of working example

@wesleycho This issue was introduced by commit 533a9f0 which switched to using $animateCss. I did some tracing and found that the watcher is called twice and therefore collapse() is called twice. The second execution of collapse() is what produces the rising scrollbar.
The Angular docs for $watch have this to say

Be prepared for multiple calls to your watchExpression because it will execute multiple times in a single $digest cycle if a change is detected.
...
After a watcher is registered with the scope, the listener fn is called asynchronously (via $evalAsync) to initialize the watcher. In rare cases, this is undesirable because the listener is called when the result of watchExpression didn't change

@stevebread  did you solve it?

@Rafi993 I can get it to work by patching collapse.js but I'd rather have an official fix. If you are ok to patch it locally, replace this line in collapse.js (or ui-bootstrap-tpls.js if you are using bower)
scope.$watch(attrs.uibCollapse, function(shouldCollapse) {

with
scope.$watch(attrs.collapse, function(shouldCollapse, shouldCollapseOldValue) {
          if(shouldCollapse === shouldCollapseOldValue) return;

I had to look into this some more because I realized that collapse() is not being called twice, the page I was testing with had a second collapsible component in addition to the menu and that's why I was seeing 2 calls. The above fix still works for the navbar but the second collapsible component displays open even though collapse=true
So what's needed then is that if a component is collapsed by default it should have the correct markup i.e. if collapse attribute is true by default, then the element should have collapse class as well. This is how the bootstrap menu is defined. If you are not already doing this then I recommend doing it because it will avoid unnecessary collapse animations when the page renders and the directive doesn't have to try to handle this case.

Meanwhile this issue is really fixed, this piece of CSS could be a workaround:
.collapsing.in {
  overflow: hidden;
}

then please post a working plunker example @MohsenEkhtiari

Sure,
Plunker: https://plnkr.co/edit/BCLseK8C7MEI2ZQijjcS?p=preview

@MohsenEkhtiari Your fix didn't work for me. I had to use .in-remove-active to fix it:
.collapsing.in-remove-active {
    overflow: hidden;
}

@jonaszuberbuehler I have this scrollbar when navbar is opening not when it is collapsing or collapsed. Could you provide a plunker case which needs your fix?

@MohsenEkhtiari Yes, https://plnkr.co/edit/6TJ4socmsTRicOVoAJUJ?p=preview. I know, ng-include is considered an anti-pattern and should be replaced. But I suppose the code in the plunkr should work.

@MohsenEkhtiari Still can see the horizontal scrollbar (latest Chrome on Ubuntu 15.10)

.fix.navbar-collapse {
  overflow-x: hidden;
}

<div class="collapse fix navbar-collapse" uib-collapse="navCollapsed">

Did the trick for us.

authors: AlexZeitler MetaEvan MohsenEkhtiari Rafi993 Sheparzo davincho jadir-junior jonaszuberbuehler kolkov stephenHartzell stevebread vazh wesleycho


text:
Select element in ui-bootstrap modal body doesn't allow modal-footer to render

When I use Select element in modal body then it doesn't show footer where I have OK and Cancel buttons. If i replace select element with input then it works perfectly fine. I don't know how to handle this issue.
`
div class="form-group">

`
http://jsfiddle.net/cvfz3vwL/10/
Version of Angular, UIBS, and Bootstrap
Angular: 1.5.7
UIBS: 1.3.3
Bootstrap: 3.3.4

Per the issue template, the issues forum is not for support requests.  Please read the link contained therein for how to ask for, and receive, assistance.  Thanks.

I have managed to resolve this problem. I was using inline select which was creating problem in template.
It should be closed with separate statement.

Though it works if I use input tag in inline style and that was confusing me.
Anyways thanks for the help.

authors: icfantv navalsharma


text:
migrate from hashbang mode to html5 pushstate

I currently support a site in angularjs with ui-router. I'd like to switch from hashbang mode to html5mode pushstate. However, I'd need to support existing hashbang links to specific pages from existing sources over which I have no control. I've tried duplicate state/route definition with no success.
I posted on stackoverflow but no one responded. Any advice would be appreciated

Maybe your stackoverflow should be reworded. Still an implementation detail but please do paste the link to the SO question here

http://stackoverflow.com/questions/33040380/migrate-from-hashbang-mode-to-html5-pushstate
Thanks for your help

UPDATE: Sorry if I wasted anyone's time. It works as I initially expected. just add $location.html5Mode(true); in front of $location.hashPrefix('!'); and everything worked fine.
I obviously had not properly configured the test environment initially.
This update has been added to the stackoverflow question.

authors: eddiemonge jlmagee

repo: angular-ui/ui-router


text:
when clearing the selected value or removing the model, activeIndex still exists.

review here:
http://plnkr.co/edit/zmN4f1ALeMwtpZ4jTECz?p=preview
when opening the dropdown for the first time, $select.activeIndex gets a value,
and when removing the model or clearing the value (allow-clear="true"), the following code does not execute:
https://github.com/angular-ui/ui-select/blob/master/src/uiSelectController.js#L59
because ctrl.selected is falsy - there is a highlighted element in the middle of the list instead of the first item in the list.

I am having the same issue. This is causing an issue while testing using Selenium as the testing script assumes the first element would be selected when opened. I am using 0.13.2

If i'm correct you have 2 problems. One is the activeindex (as issue is created for) is not cleared when pressing the clear button.
And the second problem is that you would expect that a error would be trowed as described on line59? (uiSelectMinErr)

@alonn24 Did you already had a fix for this?

@Jefiozie I do not have a fix for that, it is a minor one anyway.

repo: angular-ui/ui-select


text:
Drop over another table row instead of dropping in between rows

Hello,
I would be glad if we could drop over a table row instead of dropping in between table rows.
My code looks as follows:

                    <button type="button" class="btn btn-success btn-xs btn-circle"
                            ng-click="addLineItem($index+1)"></button>

                    <button type="button" class="btn btn-danger btn-xs btn-circle"
                            ng-click="removeLineItem($index)"></button>

                        {{value.text || value}}
                         Leistungen

                        {{data.name}}

Javascript:
$scope.sortableOptions = {
placeholder: 'placeholder',
tolerance: 'pointer',
cursor: 'move',
revert: 'invalid',
dropOnEmpty: true,
revertDuration: 100
};
/*Sorting call for procedure classes */
$scope.sortableOptionsNested = {
placeholder: 'placeholder',
tolerance: 'pointer',
cursor: 'move',
revert: 'invalid',
dropOnEmpty: true,
revertDuration: 100,
connectWith: '.connector'
// stop: $rootScope.$broadcast('orderChanged',{})
};
/*Sorting call for procedures in procedure_classes */
$scope.sortableOptionsProceduresNested = {
placeholder: 'placeholder',
tolerance: 'pointer',
cursor: 'move',
revert: 'invalid',
dropOnEmpty: true,
revertDuration: 100
};
      $scope.dropzoneFields = [];

      $scope.dragging = false;

      /*Sorting call for treatment class  */
      $scope.sortableTreatmentClass = {
          placeholder: 'placeholder',
          tolerance: 'pointer',
          cursor: 'move',
          revert: 'invalid',
          dropOnEmpty: true,
          revertDuration: 100,
          connectWith: '.dropzone, .connectorLines',
          start: function (e, ui) {
              $scope.$apply(function () {
                  $scope.dragging = true
              });
              $('.connectorLines').sortable('refresh');
              $('.dropzone').sortable('refresh');
          },
          update: function (e, ui) {
              if (ui.item.sortable.droptarget[0].classList[0] !== "dropzone" || ui.item.sortable.droptarget[0].classList[0] !== "connectorLines")
                  ui.item.sortable.cancel();
          },
          stop: function (e, ui) {

              if (ui.item.sortable.droptarget == undefined) {
                  $scope.$apply($scope.dragging = false);
                  return;
              } else if (ui.item.sortable.droptarget[0].classList[0] == "dropzone" || ui.item.sortable.droptarget[0].classList[0] == "connectorLines") {
                  // run code when item is dropped in the dropzone
                  $scope.$apply($scope.dragging = false);
              } else {
                  $scope.$apply($scope.dragging = false);
              }

          }
      };
      $scope.dropzone = {};
      $scope.connectorLines = {};

Issue that am facing: When am trying to drag over a table row it always cautions me to drop between table rows but not over a table row. I would be glad if this could be helped out. Thanks a ton in advance,

Since this is a sorting plugin, moving a row would result it to be placed above or below an other row.
Where do you expect the dragged item to be placed?

Firstly, thanks a ton for such fast response.
Moving on, Whenever it is dragged over a row, then I would make an api call that certain row is dragged over a row, If it is moved on top or below the row, then we should be able to add in between a row. That was the prime intention

We support all jquery-ui-sortable callbacks, but I think that this use case is not covered by that API at all. If in the mean you find a workaround to make it work on jquery-ui-sortable then it should almost definitely work with angular-ui-sortable.

Isn't it possible to make an api call when dragged to a specific row by attaching a dropping zone? If yes please let me know thank you

Seems possible but then you might also have to cancel the drops on the row, depending on your use case.

authors: thgreasi thrinay

repo: angular-ui/ui-sortable


text:
Steps indicator is not centered if there's only 1 step

I'm playing with dynamic steps and noticed that if there's only 1 step declared (or every other steps are disabled), the step indicator will stick to the left. Adding &.steps-1  li { width: 100%; } does the trick.

Sounds like custom CSS is the answer to your issue, thanks.

authors: KuroNoDev jacobscarter

repo: angular-wizard/angular-wizard


text:
Angular library doesn't allow component styles (sass) to access node_modules via @import

Bug Report or Feature Request (mark with an x)
- [x] bug report
- [ ] feature request

Area
- [x] library (ng-package)

Versions

node: v8.11.1
npm: 6.1.0
angular-cli: 6.0.8

Repro steps
This is the process for resolving the issue in a regular angular project. However this does not seem to work for a library:

Open angular.js and set the stylePreprocessorOptions like so:

   "styles": ...,
    "stylePreprocessorOptions": {
        "includePaths": [
            "node_modules"
        ]
    },
    "scripts": ...

Create a component and insert the import statement with a tilde:
@import "~@material/button/mdc-button";
This works fine for a standard angular project, but throws errors for my angular library (see below)

The log given by the failure
The structure of the angular.js > library project > architect > build > options doesn't allow me to set stylePreprocessorOptions. It throws the following errors:
Schema validation failed with the following errors:
  Data path "" should NOT have additional properties(stylePreprocessorOptions).

When using @import without setting stylePreprocessorOptions:
...
Rendering Stylesheets

BUILD ERROR
File to import not found or unreadable: @material/ripple/common.
Error: File to import not found or unreadable: @material/ripple/common.
    at options.error (/Users/.../Developement/jr-material-lib/node_modules/node-sass/lib/index.js:291:26)

File to import not found or unreadable: @material/ripple/common.
Error: File to import not found or unreadable: @material/ripple/common.
    at options.error (/Users/.../Developement/jr-material-lib/node_modules/node-sass/lib/index.js:291:26)
...

Desired functionality
I need a way for my library components to utilize scss styles located in node_modules

This seems to have resolved my the error itself:
https://github.com/dherges/ng-packagr/blob/b401c899789aa97d369c2607116f4bcf218319e5/docs/style-include-paths.md
{   "name": "jr-material-lib",   "version": "0.0.1",   "peerDependencies": {     "@angular/common": "^6.0.0-rc.0 || ^6.0.0",     "@angular/core": "^6.0.0-rc.0 || ^6.0.0",     "@material/button": "^0.36.0"   },   "ngPackage": {     "lib": {       "styleIncludePaths": ["../../node_modules"]     }   } }
No errors are thrown now, but no styles are actually applied to the element itself. This may be an unrelated issue so I'll post back if I find a solution.

Ok, I see the issue. The dist directory is being placed in the wrong place when "ngPackage" is used:
 projects > {library-name} > dist

Rather than at the root of the project inside the appropriately named library directory:
dist > {library-name}

Any idea why this occurs?

This seems to be an issue on the ng-packagr end, so I'm going to go ahead and close this for now. I'll move my issue over to their tracker.

repo: angular/angular-cli


text:
Angular Service Worker - Failed to load manifest file

Everything works fine on the local lite-server, as well as on the production server, getting error failed to load manifest file in  production environment:

Closing as it doesn't follow template.


text:
[app-shell] Cannot read property 'initializer' of undefined

I have done this in my existing project
I executed ng add @angular/pwa and it went all good, next I executed ng generate app-shell then I got the following error:
Cannot read property 'initializer' of undefined
Do you know how to resolve this?
Angular CLI: 10.0.0
Node: 14.4.0
OS: win32 x64

Angular: 10.0.1
... animations, common, compiler, compiler-cli, core, forms
... language-service, platform-browser, platform-browser-dynamic
... router
Ivy Workspace: Yes

Do I need to convert my project to an Universal app before executing app-shell?

@IsaacHub, no you don't need to add Universal prior to adding an App-shell. Universal is added automatically when adding the App-Shell.
I tried to replicate the above, but I didn't manage. Can you setup a minimal repro please?
You can read here why this is needed. A good way to make a minimal repro is to create a new app via ng new repro-app and adding the minimum possible code to show the problem. Then you can push this repository to github and link it here.
This might be related to your directory structure so its really important to get an accurate repro to diagnose this.


text:
How to know if the html file added to assets in angular.json file is picked by ng serve?

We have added a.html file to the assets section in angular.json file and ran "ng serve" command
How do I access this a.html file in web browser? How do I know if "ng serve" command recognized that file? How do I know if I used the correct url to access a.html in web browser?
It is better to provide debug feature for the end users for easy debugging instead of asking angular team  for help

Hello, we reviewed this issue and determined that it doesn't fall into the bug report or feature request category. This issue tracker is not suitable for support requests, please repost your issue on StackOverflow using tag angular-cli.
If you are wondering why we don't resolve support issues via the issue tracker, please check out this explanation.


text:
AOT writes wrong scss file to app.component.ngFactory

Please provide us with the following information:

OS?

Windows 7, 8 or 10. Linux (which distribution). Mac OSX (Yosemite? El Capitan?)
OSX El Capitan

Versions.

Please run ng --version. If there's nothing outputted, please run in a Terminal: node --version and paste the result here:

angular-cli: 1.0.0-beta.18
node: 6.3.1
os: darwin x64
Repro steps.

Was this an app that wasn't created using the CLI? What change did you do on your code? etc.
ng build --prod --aot
I'm ending up with
import * as import14 from '../../app/app.component.scss';
in app.module.ngfactory.ts whereas it would seem it should be
import * as import14 from './app.component.scss';

The log given by the failure.

Normally this include a stack trace and some more information.

ERROR in ./src/aot/app/app.component.ngfactory.ts
Module build failed: Error: /Users/simon/code/wp_af2015/wp-content/themes/af2016/afapp/src/aot/app/app.component.ngfactory.ts (21,27): Cannot find module '../../app/app.component.scss'.)
at _transpile (/Users/simon/code/wp_af2015/wp-content/themes/af2016/afapp/node_modules/@ngtools/webpack/src/loader.js:101:19)
at /Users/simon/code/wp_af2015/wp-content/themes/af2016/afapp/node_modules/@ngtools/webpack/src/loader.js:125:26
at process._tickCallback (internal/process/next_tick.js:103:7)
@ ./src/aot/app/app.module.ngfactory.ts 41:0-54
@ ./src/main.ts
@ multi main
Mention any other details that might be useful.

Thanks! We'll be in touch soon.

Can you provide me some repro steps so that I can look into this?

same here.
This is my repo project: https://github.com/daniele-zurico/webpack-aot

It might be worth noting that a (very very) similar behaviour has already been flagged in these two angular issues:

https://github.com/angular/angular/issues/12539
https://github.com/angular/angular/issues/11688

Closing as answered by @BrainCrumbz, thanks for finding the right issues!

authors: BrainCrumbz daniele-zurico filipesilva simonh1000


text:
Template does not get updated on variable change on safari

On Safari Version 9.1.2 If the template (.html) contains a variable in {{ example }} that changes during runtime, the template does not re-render to update the change. Tested the same code and works properly on Chrome and Firefox. Unfortunately it does work properly on Safari. Not sure what causes this and if this is related to angular-cli. Need some help on this one. Thanks in advance.

@nekkon This sounds more like an issue with angular rather then angular/cli. Also, In the future please fill out the issue template when filing an issue.

I'm sorry but I don't see a CLI issue here. This looks like you're looking for assistance in fixing a runtime problem your app has.
The best place to post those general application support questions is Stack Overflow. If you find a bug in the CLI itself please post a fully filled out issue template, including simple repro steps e.g. a simple app that shows just the issue you're experiencing and not your full app.

authors: deebloo filipesilva nekkon


text:
Automatically disable progress indicators in CI environments

It might be nice to automatically suppress progress output when running in a CI environment, like AppVeyor or Travis CI. Sure, one can set --progress=false or similar, but if that automatically happened when a CI environment variable is set that could improve the out-of-the-box CI experience.
With AppVeyor particularly, I've noticed build output having some stuff to scroll through.

Variables set by CI environments vary from one to another. Unfortunately, it would be hard to track.
You'll have to use --progress=false. We could consider adding a silent mode or supporting a default value which would cover your use case pretty neatly. Unfortunately, this is not planned for 1.0, so I'll close this issue.

Would it be possible to reconsider the CI environment variable. Let me explain why.
I recently had to add automatic testing of our Angular CLI application to our Jenkins build server. I had to do some tricky stuff in order for it to work with a headless browser etc, a lot of people will know the pain. That's why I started a small project called korn which I hope will take this pain away. It uses a Docker container under the hood and runs your tests headlessly.
By default, running the npm test command will start the tests in watch mode. This off course doesn't really make sense in a CI environment because you only want to run them once. This is possible with the --single-run flag.
Korn does not target Angular in particular, React or other front-end frameworks should work as well. That's why I don't want to add tool specific flags. I also tested it with create-react-app and noticed in the docs that they use the single-run mode when CI is set.
Maybe we should see the CI (or another env variable) as a set of defaults that are automatically applied without having to do anything else.

CI=true npm test
npm test --single-run --progress=false (maybe some others)

I don't know, just wanted to give my 2 cents and my use case.

authors: SamVerschueren hansl kendaleiv


text:
Unable to set breakpoint on Firefox

Versions
Angular CLI: 1.6.1
Node: 8.9.1
OS: linux x64
Angular: 5.1.1
... animations, common, compiler, compiler-cli, core, forms
... http, language-service, platform-browser
... platform-browser-dynamic, router

@angular/cli: 1.6.1
@angular-devkit/build-optimizer: 0.0.36
@angular-devkit/core: 0.0.22
@angular-devkit/schematics: 0.0.42
@ngtools/json-schema: 1.1.0
@ngtools/webpack: 1.9.1
@schematics/angular: 0.1.11
@schematics/schematics: 0.0.11
typescript: 2.4.2
webpack: 3.10.0

OS : Debian GNU/Linux 9 (stretch)

Repro steps

Use a linux distrib (I have been able to reproduce the issue on a vanilla install of Debian 9 and also Ubuntu 17.10)
Install nodejs (I tested with version 6 and also version 8) and npm
Install last version of angular-cli (tested with 1.6.1). npm install -g @angular/cli@latest
Create a new app ng new test-a
Run the app ng serve
Access the app with Firefox (57.0.2) (http://localhost:4200)
Try to set a breakpoint in the app.component.ts or any other .ts file

All steps are run from a fresh install. No prior versions installed.
I also try with older version of Firefox, the problem is identical.
Observed behavior
In Firefox dev tool, when clicking in the margin of a line of code to set a breakpoint, the breakpoint automatically disappear. Setting breakpoints on .js files works.
Breakpoints work perfectly when using Chrome.
I tried accessing the app from other computers (one with a Debian distrib and another with a Windows 10) using ng serve --host [my public ip] command. Both client use the last Firefox version and the problem is the same. It's impossible to set a breakpoint.
When I run the  ng serve --host [public ip] on a Windows 10 OS and try to access the app from Firefox I'm able to set breakpoints on the ts files. I try accessing the app from a Firefox installed on the Windows 10 local machine and also from a remote Debian computer. Both work fine.
A screen record showing how the breakpoint directly disappear just after I left click in the left margin.

I also tried remote debugging from Intellij Idea. Everything works fine when remote debugging Chrome. When remote debugging Firefox the breakpoints are never triggered.
I also tried typing a debugger; line in the code. The line doesn't stop the debugger on Firefox (it works on Chrome).
Desired behavior
Be able to set a breakpoint on a Linux browser when the ng serve command is ran on Linux OS.

Looks like a problem with old version of the CLI. Let us close the issue for now. If it's still relevant, please open a new ticket with steps to reproduce and a minimal demo. Thanks!


text:
Would ./ as opposed to / make a sensible default for ng build --base-href?

This has bit me so many times when building for things like github pages. I finally realized I could just always use ./ and not have to worry about it.  Is there a particular reason that this is not the current default? Perhaps something that is going to come back to haunt me?

Indeed using ./ would break nested routes example http://localhost/admin/login.


text:
[bug?]compiler.resolvers.normal.plugin is not a function

Hi, angular-cli Team:
when I update my webpack and ngtools-webpack, I meet this problem.
Environment
"webpack": "^4.0.0-beta.1",
"webpack-cli": "^2.0.6",
"@ngtools/webpack": "^1.10.2",

node  v8.9.0
macOS 10.13.3
Bug
myproject/node_modules/webpack-cli/bin/webpack.js:439
throw err;
TypeError: compiler.resolvers.normal.plugin is not a function
at compiler.plugin (myproject/node_modules/@ngtools/webpack/src/plugin.js:336:39)

So I check the file plugin.js, it looks like this:
compiler.plugin('after-resolvers', (compiler) => {
            // Virtual file system.
            // Wait for the plugin to be done when requesting `.ts` files directly (entry points), or
            // when the issuer is a `.ts` file.
            compiler.resolvers.normal.plugin('before-resolve', (request, cb) => {
                if (this.done && (request.request.endsWith('.ts')
                    || (request.context.issuer && request.context.issuer.endsWith('.ts')))) {
                    this.done.then(() => cb(), () => cb());
                }
                else {
                    cb();
                }
            });
        });

I console the resolvers.normal object, and there is plugins as property in  resolvers.normal rather than plugin.
So I fix it as plugins and it runs success.
But it shows warning:
(node:5729) DeprecationWarning: webpack: Using compiler.resolvers.normal is deprecated.
Use compiler.resolverFactory.plugin("resolver normal", resolver => {
  resolver.apply(/* ... */);
}); instead.

I can't find plugin.js in @ngtool-webpack/src. I guess the error maybe in
https://github.com/angular/angular-cli/blob/9c4f9e947b75d59f9140ba1d0b55579529aec9ac/packages/%40ngtools/webpack/src/angular_compiler_plugin.ts#L643-L659
Looking forward to your reply!

The version being used only supports up to webpack 3.x.  If you’d like to try webpack 4, you can try the 6.0 beta of @ngtools/webpack.  Note that 6.0 requires a minimum angular version of 5.

thanks! @clydin
But My project still use angular version of 2.4. Are there other solutions?

@clydin the 6.0 beta of what?

@clydin the 6.0 beta of what?

The only two options are to either stay with Webpack 3.x; or update the project to Angular 5.x (or the upcoming 6.x).  There are numerous performance and feature enhancements in the newer Angular versions.  Those alone may provide justification to migrate the application.

authors: Zaynex clydin mattpennella penmav


text:
请问angular.cn为什么又不支持PWA的安装功能了？

注意：新版本文档位于aio分支下，master分支下是老版本的文档。

对于错别字或明显的语法错误，建议直接发 PR（在content目录下相应的文件上直接编辑，保存时就会自动变成PR）。

出错的URL：只是个建议
错误的内容（请拷贝进来一份精确的出错文本，以便我定位）：null
建议的修改方式（可选）：支持PWA
英雄留名（会出现在鸣谢清单中，默认使用你的github id）：AllinProgram

前面查一个缓存问题时禁用了，现在用另一种方式解决了缓存问题。再访问最新版本试试。

前面查一个缓存问题时禁用了，现在用另一种方式解决了缓存问题。再访问最新版本试试。

感谢解答

authors: allinprogram asnowwolf

repo: angular/angular-cn


text:
Fix typo

simplifies is misspelled in quickstart guide.
This PR fixes that.

Thank you!

authors: thso vikashvverma


text:
404

.l-main-section
h2 404
p Whoops.  Looks like what you're looking for can't be found.
p Maybe. Something is wrong, Please check again.
i change in angular.io/public/404.jade

Closing as this PR is unclear, includes 250+ commits, and would affect 1700+ files.
Please try again.

authors: herizalwijaya wardbell


text:
$cookiesProvider.defaults.domain does not work

Hi,
I am working on a multiple app angularjs project. Basically, I have an app that handles authentication, another app that handles the main part, etc.
The endpoint that handles authentication is as such: localhost:8080/app/auth/#/login
The endpoint of my main app is: localhost:8080/app/#/
After a successful login, I would set a cookie for the token I received. Afterwards, I would redirect the page to localhost:8080/app/#/
My problem is after the browser is redirected to localhost:8080/app/#/, the token cookie that I set before wasn't there. The cookie only stays at localhost:8080/app/auth/#/
So I tried using $cookiesProvider.defaults.domain = "localhost:8080" and "localhost". Both didn't work out.
Edit: The above cookiesProvider configuration is set on the module that contains the service that does the authentication request to the backend. If successful, that service will set the cookie.
Can somebody enlighten me? Thanks in advance!

It's hard to say what the problem might be without a reproduction (or at least the relevant code).
If possible, please post a live demo (e.g. using CodePen, Plnkr etc).

Closing due to inactivity. Feel free to reopen, when you can provide more info.

authors: TeddyHartanto gkalpak


text:
1.5.0 rc1 issues with ng-if

When upgrading to Angular 1.5.0, we're noticing some issues with element directives that use ng-if at the root of their markup throwing exceptions (cannot find property childnodes of undefined). Moving the ng-if lower down into the template seems to fix this.
From my brief debugging of the issue, it seems that the compile function is pointing at a textNode when this occurs.
Is this a regression?

@diegope, would you be able to put together a minimal demo (e.g. using CodePen, Plnkr etc) ?
It's hard to tell what the problem might be, without a reproduction.

@diegope Also, from which version did you update?

We upgraded from 1.4.7 - I'm working on getting you guys an isolated repro of this. A couple additional things to things to note about our app in the meantime we have jQuery 2.2.0 loaded, and are also using the UI router.

Here's a plunker illustrating the pattern I'm referring to:
https://plnkr.co/edit/TwrXsvf26645nZdb11xN?p=preview

And a sample stack trace (these vary on the specific template that triggers the issue, but the "element" that triggers this is always a textNode):
UnhandledAngularException: Failed to execute 'getComputedStyle' on 'Window': parameter 1 is not of type 'Element'. (caused by "                    ")
TypeError: Failed to execute 'getComputedStyle' on 'Window': parameter 1 is not of type 'Element'.
at TypeError (native)
at getStyles (/dependencies.bundle.js:5649:15)
at curCSS (/dependencies.bundle.js:5793:25)
at Function.jQuery.extend.css (/dependencies.bundle.js:6192:10)
at Object.jQuery.cssHooks.(anonymous function).get (/dependencies.bundle.js:6216:38)
at Function.jQuery.extend.css (/dependencies.bundle.js:6187:16)
at /dependencies.bundle.js:9743:13
at access (/dependencies.bundle.js:3638:10)
at jQuery.fn.(anonymous function) [as height] (/dependencies.bundle.js:9716:11)
I'm thinking this could be because we have indenting spaces in some of these templates that are somehow throwing off the compiler in the new version.

Am I correct that the plnkr doesn't show the problem yet?
It could be a problem with the priority of directives. Are you using ngMessages in your app?

Correct, the plnkr just illustrates the pattern, still trying to get a repro outside of the application. And no, we are not currently using ngMessages.

Without a reproduction we can't act on this issue, moving to 1.5.x

Closing due to lack of feedback / reproduction. Please reopen if you can provide more info.

authors: Narretz diegope gkalpak petebacondarwin


text:
Text not justified on iOS Safari when using "ng-bind-html"

bug
When injecting html content using ng-bind-html, the CSS property text-align: justify does not work on Safari (iOS and Mac OSX). The text is align on the left.
To reproduce it, inject a string containing html text embeded in a <p> block, set the text-align CSS attribute to justify, inject this string into the HTML page using ng-bind-html then run the page on safari.
The text should be justified (it is on android and desktop chrome).
This bug occured with Angular 1.4.0 on iOS and Mac OSX Safari explorers.

Can't reproduce in this plnkr: http://plnkr.co/edit/LLPPNngfgfTfvUL51MUQ on ios 9.2 on iPad 2 simulator. Please provide a demo that shows the problem.

Closing due to lack of feedback.


text:
Angular $http.jsonp(url) didn't parse all special character at the URL

Exemple :
url = http://exemple/Objects?callback=JSON_CALLBACK&params={"Report Name":"Test*"}
$http.jsonp(url) should parse this url to:
http://exemple/Objects=JSON_CALLBACK&params={"Report Name":"Test*"%7D
But it didn't convert character "{" and "}"
http://exemple/Objects=JSON_CALLBACK&params={"Report Name":"Test*"}

@anasbenis, could you create a live demo (e.g. using CodePen, Plnkr etc) ?
Have you tried if this happens with "vanilla" XHR as well ?

This seems like a usage problem to me - this doesn't look like Angular's responsibility.
One should probably be doing
$http.jsonp('http://example/Objects?callback=JSON_CALLBACK', {
  params: {
    params: {
      'Report Name': 'Test*'
    }
  }
})

I'm going to close this issue because we haven't got any feedback. Feel free to reopen this issue if you can provide new feedback.
@wesleycho 's post looks like a good starting point.

authors: Narretz anasbenis gkalpak wesleycho


text:
Not able to bind ng-repeat values in my custom directives?

Hi,
I have created custom-directive called displayId. Using ng-repeat rendered custom-directive and bind id from ng-repeat data. Unfortunately not able to get id of element within custom directive.
    app.directive('displayId', function(){
          return {
                  restrict: 'EA',
                    compile: function(element){
  	                      alert(element.attr("id"));  //id displaying as op.id
                     }
         };
        });`

find the issue reproducible plnkr below.
https://plnkr.co/edit/3a8HBApCtbmYlGIfWyzM?p=preview

Hi, your issue reads like a support question. This github repo is only for bug reports and feature requests. Please try one of the listed Support Channels. Thanks!

@Narretz  yes i have tried and i can get id of element but can't view id in my dom element.
  app.directive('displayId', function(){
return {
  restrict: 'EA',
  compile: function(){

    return {
      pre: function ($scope, $elm, $attrs) {

      },
      post: function ($scope, $elm, $attrs, controllers) {
        console.log($elm);
      }
    }

  }
};
 });

i m getting element as like <display-id id="{{op.id}}"> </display-id> but i need like <display-id id="Title1"> </display-id> how to achive this at sample side

authors: AbinayaSubbiah Narretz


text:
docs(tutorial/4 - Directory and File Organization): describe your cha…

What kind of change does this PR introduce? (Bug fix, feature, docs update, ...)
What is the current behavior? (You can also link to an open issue here)
What is the new behavior (if this is a feature change)?
Does this PR introduce a breaking change?
Please check if the PR fulfills these requirements

[ ] The commit message follows our guidelines: https://github.com/angular/angular.js/blob/master/CONTRIBUTING.md#commit-message-format
[ ] Tests for the changes have been added (for bug fixes / features)
[ ] Docs have been added / updated (for bug fixes / features)

Other information:
…nge...

Hi @ZachLamb can you sign the CLA please so that we can merge your PRs?

@petebacondarwin , done. sorry about the delay!

authors: ZachLamb petebacondarwin


text:
refactor($parse): remove unused expression arguments

Not sure if I'm missing some...?

Not sure if you are missing some, but the ones you got lgtm (as long as travis is happy).

authors: gkalpak jbedard


text:
Property 'map' does not exist on type 'AngularFireAuth'

Hi,
I've upgraded to latest Angular 2.0.0 and Angular-cli webpack. But when trying to .map an Observable, TS returns this error Property 'map' does not exist on type 'AngularFireAuth'
Here is the AuthGuard service where I'm trying to return an Observable:
import { Injectable }             from '@angular/core';
import { CanActivate, Router,
         ActivatedRouteSnapshot,
         RouterStateSnapshot }    from '@angular/router';
import { AngularFire } from 'angularfire2';
import { AuthService } from '../services/auth.service';

@Injectable()
export class AuthGuard implements CanActivate {

  constructor(
    private af: AngularFire,
    private router: Router,
    public AuthService: AuthService) {}

  canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {
    return this.af.auth.map((auth) => {
        if (!auth) {
          this.AuthService.loggedIn = false;
          this.router.navigateByUrl('');
          return false;
        }
        this.AuthService.loggedIn = true;
        return true;
    });
  }
}

Any ideas? Thanks!

Try adding at the top
import 'rxjs/add/operator/map'

I also had to add the same line for .take(1) but it worked. Thanks!
Seems like a workaround to me though. Is it a problem with Angular or AngularFire? And if so, is it going to be fixed in the future?

It's not a work-around. I am sure you can find a lot of info on internet, but let me give you my simple theory.
ReactiveX library has lot of functions, which does a variety of magic for you. If you don't want to import specific functions in your app, then you can download this entire library with one single import
"import 'rxjs/Rx'"
The down-side of using this import is, for example: when a user is accessing your app using mobile phone, the entire library will be downloaded on his phone and you may not be even using all of the functions of the library. so Seems like Google guys have come up with a strip-down version of ReactiveX library, which contains standard functions and any other functions like .map, .flatMap etc can be imported on need basis.
Hope this helps.
@katowulf any thoughts ??

I see, great explanation. Thanks!


text:
Extension fails when an "angular" global is not exposed

In January, UMD support was added to Angular core. Without a global, Batarang isn't able to hook in and instrument the framework, which causes app inspection to fail.
Example site: http://zuigo.com/

Related to https://github.com/rev087/ng-inspector/issues/148

False alarm. Exceptions were coming from the site itself, and were unrelated to Batarang. Carry on :)

repo: angular/batarang


text:
ivy: Boolean inputs cause compile errors

Reproduction
(StackBlitz doesn't seem to support ivy)
Steps to reproduce:

npm install -g @angular/cli@next
ng new app
ng add @angular/material
ng update @angular/material --next
Add a basic button example with a boolean input:

<button mat-button disabled>Disabled</button>

Expected Behavior
The build should pass
Actual Behavior
ERROR in src/app/app.component.html:339:22 - error TS2322: Type 'string' is not assignable to type 'boolean'.

339   <button mat-button disabled>Disabled</button>
                         ~~~~~~~~

  src/app/app.component.ts:5:16
    5   templateUrl: './app.component.html',
                     ~~~~~~~~~~~~~~~~~~~~~~
    Error occurs in the template of component AppComponent.

This usage is prevalent in Material and CDK (e.g. cdkTrapFocus), so it's causing a lot of errors for consumers experimenting with ivy. Any input that relies on coerceBooleanProperty() is subject to this problem.
Environment

Angular: 9.0.0-next.13
CDK/Material: 9.0.0-next.0
Browser(s):
Operating System (e.g. Windows, macOS, Ubuntu):

Cf. https://github.com/angular/angular/pull/33299

As workaround you can use  [disabled]="true"

Yes. We are working on this. See https://github.com/angular/components/pull/17483.

It looks like in one of the recent angular pre-releases they've disabled (or broke) the strict template checks by default (presumably here: https://github.com/angular/angular/pull/33365), so this issue doesn't seem to manifest for now.

disabled or disabled="true" now works with rc.0 and strict template checking.
There is still a problem with async pipe:
TS2326: Types of property 'opened' are incompatible.
  Type 'boolean | null' is not assignable to type 'string | boolean | undefined'.

@manklu Thanks for reporting back. I'm actually trying to think about the async pipe case. I'm not sure if this is actually an issue from our side. The input property is typed to support string and boolean.
Mostly to support both scenarios:
<comp disabled></comp>
<comp [disabled]="boolean"></comp>

If the input binding is used with the async pipe, and no value is emitted yet, the async pipe will return null. This is correct, but I think it would make no sense to explicitly add null to the input type. If we'd go down that path, we'd need to make every input explicitly support null.
I think there is a flag called strictNullInputBindings which can help with that issue. Happy to discuss this more. I'm still not entirely sure what we can/should do about this.

@devversion

I'm not sure if this is actually an issue from our side.

What is the alternative? One async pipe per data type which does the coercion? Magic from the compiler?

If we'd go down that path, we'd need to make every input explicitly support null.

At least most of the inputs already support null. The only problem is that the compiler doesn't know it.
If you have a good reason why null makes no sense for a particular input, I'm fine with it. But then it should also be enforced in non-IVY mode.

I think there is a flag called strictNullInputBindings which can help with that issue.

Hiding possible errors, just to be able to use the components with async pipe, can only be an interim solution. And if there is a company policy to enforce strict checks, it's not a solution at all.

What is the alternative? One async pipe per data type which does the coercion? Magic from the compiler?

The alternative is to just ensure that the value assigned to the input is always a boolean (if done through binding). i.e. by using !!(isDisabled$ | async)

If you have a good reason why null makes no sense for a particular input, I'm fine with it. But then > it should also be enforced in non-IVY mode.

Null makes sense from a convenience standpoint, but technically this is a boolean input expecting two states (i.e. true / false). We mostly support an empty string for the DX with empty attributes.
It's not enforced in view engine, because view engine's compiler is not smart enough about these things and doesn't even do proper input type checking. This is a new feature in the Angular Ivy compiler.

Hiding possible errors, just to be able to use the components with async pipe, can only be an interim solution. And if there is a company policy to enforce strict checks, it's not a solution at all.

It definitely is not a good idea to disable it, but with the current state, Ivy's strict template type checking is already hidden behind a flag called strictTemplates (disabled by default).
I'm not making any decision. I've brought this up to the team and we looking into it, but it's good to discuss about this. I definitely see your point, but I'm also afraid that we do too much. The coercion is only intended to work for the two cases shown above. If someone assigns null to a boolean input, then this seems like a general/conceptual issue with how inputs work. This can also happen outside of Angular components. Most of the libraries just have an @Input() x: boolean where no coercion happens at all.

@devversion Just a side note. The problem with asynchronous pipes doesn't just affect boolean values, it affects any input that does not support a null value.

Exactly. And that's why I think it's not an issue from the component side, but rather something general we need to think of. Sounds like it will not only be a problem for angular/components.

This should be resolved as of a few releases ago

authors: Airblader asapach devversion jelbourn manklu

repo: angular/components


text:
bug(tooltip): Closure-compiled code skips toString() in Tooltip.message setter

Background
In
https://github.com/angular/components/blob/e99ca0ac9b0088d20d5d680092cd7ea5624934c0/src/material/tooltip/tooltip.ts#L212, we see:
  set message(value: string) {
    this._ariaDescriber.removeDescription(this._elementRef.nativeElement, this._message);

    // If the message is not a string (e.g. number), convert it to a string and trim it.
    this._message = value != null ? `${value}`.trim() : '';

The intention of the code is to convert non-strings, then trim.
Reproduction
Steps to reproduce:

Compile MatTooltip component with Closure Compiler (Google JS Compiler) with --use_types_for_optimization.
Pass a non-string object to MatTooltip.message's setter. (in the case causing the crash for me, someone was passing an Error object)

Expected Behavior
The input gets coerced to a string, and the .trim() call succeeds.
Actual Behavior
Closure compiler optimises out the stringification, and the .trim() call fails with trim is not a function. Closure compiler outputs this code:
this.mH = null != a ? a.trim() : "";

Closure compiler has optimised out the stringify step.
Environment

Angular: Latest
CDK/Material: Latest
Browser(s): Chrome
Operating System (e.g. Windows, macOS, Ubuntu): macOS

I've asked the Closure Compiler team if they consider this a compiler bug, and they say:

I think that this is intentional, in that there are type-based peephole optimizations that make different choices if the type is known to be a string primitive.
there is also a --use_types_for_optimization flag that can turn off the type-based optimizations if you know that the types in your program can't be fully trusted, although there is usually to be a code-size penalty to doing so.

I think many users of Angular will be using the Closure Compiler with --use_types_for_optimization, and the original authors of the code would be surprised that the stringification is being optimised out.

A very simple fix suggested: change
  set message(value: string) {

to
  set message(value: any) {

Then the type-aware optimisation doesn't happen, and the output instead gets compiled down from something like
export {x};

declare const externalThing:Error;

function x(value: any) {
  return `${value}`.trim();
}

console.log(x(externalThing));

to
console.log((""+externalThing).trim());

Just to link things up, Google-internal bug 169631212 was hit by this.