Expose `HmrContext` interface.
Apply changes in `app.css` instantly.
Avoid navigation on livesync when changes in `app.css` have been made.
Apply changes in `app.css` on back navigation.
We want webpack's uglification to mangle function and class names
but that's what the current implementation of the CSS in {N} relys on
to get the CSS type for each view when targeted by CSS type selectors.
The implementation is changed a little so now the CSS type can be set
directly on the prototype of each View class or for TS, through decorator.
BREAKING CHANGES:
Extending classes requires marking the derived class with @CSSType
The root classes are not marked with CSSType and classes derived from ViewBase and View
will continue to work as expected. More concrete view classes (Button, Label, etc.) are
marked with @CSSType now and store their cssType on the prototype suppressing the previous
implementation that looked up the class function name. So clien classes that derive from one of
our @CSSType decorated classes will now have to be marked with @CSSType.
Fix image-source test for API 27
setupAsRootView now makes the component styleScope
set css, addCss & addCssFile makes view to be styleScopeHost which cannot be overriden later from parent
Android modals now call setupAsRootView
Small fixes on ios layouts
launch event fired in andriod too
Moved some requestLayout calls to ios files where they belongs
iOS layout positioning now respects native properties like automaticallyAdjustsScrollViewInsets, edgesForExtendedLayout, extendedLayoutIncludesOpaqueBars, navigationBar.translucent, tabBar.translucent
Removed frame-tests.ios.ts - those tests are now invalid
Added new layout tests inside page-tests.ios.ts
Commented few asserts in scroll-view-tests
View now expose ios namespace with layoutView method and UILayoutViewController used by page, tab-view and application module
ViewBase now expose viewController property that should be set from all widgets that are using viewcontrollers internally (like Page, Frame, TabView)
ViewBase now sets ios property to either the view returned from createNativeView or to nativeViewProptected
fragment.transitions now use animation/transition start to add fragments to waitingQueue. Before we did it manually in navigate/goBack. This way we can reuse the fragment.transition when calling showDialog. Also when animation/transition ends we check the animation/transition to see if this fragment should be set as current.
Frame expose new loadViewFromEntry method (to load a view from URI)
Frame navigation happens once frame is loaded
Frame now supports Page as a child in XML
Fixed GridLayout row, rowSpan, column, columnSpan properties type
Fixed bug in GridLayout where add/remove of columns/rows won't update the internal state of the grid (backport from android when GridLayout is recycled)
ListView will no longer invalidate layout when cell is removed
Fixed bug in ScrollView ios where effectiveMinWidth/Height was multiplied to density (it is already on device pixels so no need to multiply)
TabView android now calls loaded only on the selected child (not all)
Core refactoring
* Move the applyStyleFromScope to onLoaded, when the views are created and id or className properties are set the CSS selectors are queried and applied multiple times
* Condense the changes when applying properties
* cache page on forward navigation
Still some failing navigation tests
* Current page is kept alive when navigating forward
Refactoring code and removing all hacks and flags
Remove one module circular reference
* Disable Page recycling because when there is transition between pages the nativeView stays animated (e.g. when transition is Fade the hidden page nativeView stays with Alpha 0)
Disable recycling if there is native anitmation
* Fix failing tests on ios & android API17
Fix wrong urls in http tests
Made some timer tests async
* Animations are not stored in BackstackEntry instead of Fragment because fragments could die (activity die) and recreated and we lose animations.
* Fix android crash when activity is recreated.
Refactoring transitionListener.
* enable recycling of nativeView
* backgroundInternal is reset if setting new value leads to background.isEmpty() == true.
* android background.getDefault always return copy of the background. Now all controls that mutate the background can be reset to initial state (e.g. Button & ActionBar)
passing resources to copied background so it respect density.
fix properties initNativeView
* reset padding when backgroundInternal is reset.
* Fix text reset
Fix padding reset
* fix tsc errors
* fix ugly text rendering.
* Add unit tests for recycling native views
Fix several issues that came from the above tests
Fix maxLength property missing a converter callback
Remove old files
* Remove old files
* Revert backgroundInternal setter
* change the order of tests so that appium can work again
* Remove suggestion on every TextView & TextField init (strangely it is enabled after view is recycled....)
* Fix function to get parent layout if specified
* Button stateListAnimator restored when button is recycled
zIndex defaultValue is now undefined instead of NaN
* revert zIndex.setNative to always clear stateListAnimator because it was breaking one UI test (setting value=0 was returning the previous stateListAnimator)
* fix search-bar backgound-color recycling
* Fix alignments setters
* Fix imageView recycling
Fix button recycling
Fix edit-text recycling
resetNativeView is called only if recycleNativeView flag is true
* Fix incorrect merge
* Fix text-view & text-field textTransform
* Fix EditText text reset
* Fix runtime crash on ARM emulator API 21
* Fix text-base minHeight. maxHeight reset
Fix reset of isUserInteractionEnabled
Call native setters once when a page is instantiated.
Fix background not being reset, Label's background is now set to background, not layer
Make the nativeView field instead of property for performance reasons
* implement get/set for selectedBackgroundColor property
* list-view separator color exposed through style
* Style androidStatusBarBackground exposed on Page
* Fix action-bar systemIcon
Fix CSS applying
* refactoring
* fix console
* remove StyleScope import - it is private and cannot be imported in public .d.ts
Split type.class from CssTypeSelector to CssCompositeSelector, probably support type#id.class selectors
Apply review comments, refactor css-selectors internally
Applied refactoring, all tests pass, button does not notify changes
Add tests for the css selectors parser.
Added tests for css-selectors
Added basic implementation of mayMatch and changeMap for css match state
Implemented TKUnit.assertDeepEqual to check key and key/values in Map and Set
Watch for property and pseudoClass changes
Add one child group test
Add typings for animations
Added mechanism to enable/disable listeners for pseudo classes
Count listeners instead of checking handlers, reverse subscription and unsubscription