@nativescript/core 9.0.0-alpha.23 → 9.0.0-alpha.25

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (107) hide show
  1. package/application/application.android.d.ts +9 -2
  2. package/application/application.android.js +83 -6
  3. package/application/application.android.js.map +1 -1
  4. package/application/application.d.ts +8 -1
  5. package/application/application.ios.d.ts +13 -1
  6. package/application/application.ios.js +30 -3
  7. package/application/application.ios.js.map +1 -1
  8. package/application/helpers.android.d.ts +0 -9
  9. package/application/helpers.android.js +0 -54
  10. package/application/helpers.android.js.map +1 -1
  11. package/application/helpers.d.ts +0 -10
  12. package/application/helpers.ios.d.ts +0 -19
  13. package/application/helpers.ios.js +0 -38
  14. package/application/helpers.ios.js.map +1 -1
  15. package/connectivity/index.android.js +3 -3
  16. package/connectivity/index.android.js.map +1 -1
  17. package/core-types/index.d.ts +68 -63
  18. package/core-types/index.js.map +1 -1
  19. package/image-source/index.d.ts +2 -2
  20. package/index.js +0 -1
  21. package/index.js.map +1 -1
  22. package/inspector_modules.js +72 -5
  23. package/inspector_modules.js.map +1 -1
  24. package/package.json +1 -1
  25. package/platforms/android/widgets-release.aar +0 -0
  26. package/references.d.ts +1 -1
  27. package/ui/button/index.ios.js.map +1 -1
  28. package/ui/core/view/index.android.d.ts +4 -6
  29. package/ui/core/view/index.android.js +126 -271
  30. package/ui/core/view/index.android.js.map +1 -1
  31. package/ui/core/view/index.d.ts +1 -1
  32. package/ui/core/view/index.ios.d.ts +7 -0
  33. package/ui/core/view/index.ios.js +74 -35
  34. package/ui/core/view/index.ios.js.map +1 -1
  35. package/ui/core/view/view-common.d.ts +37 -5
  36. package/ui/core/view/view-common.js +21 -0
  37. package/ui/core/view/view-common.js.map +1 -1
  38. package/ui/core/view/view-interfaces.d.ts +3 -0
  39. package/ui/frame/index.android.js +55 -2
  40. package/ui/frame/index.android.js.map +1 -1
  41. package/ui/index.d.ts +1 -1
  42. package/ui/layouts/index.d.ts +2 -0
  43. package/ui/layouts/index.js +2 -0
  44. package/ui/layouts/index.js.map +1 -1
  45. package/ui/layouts/liquid-glass/index.android.d.ts +5 -0
  46. package/ui/layouts/liquid-glass/index.android.js +8 -0
  47. package/ui/layouts/liquid-glass/index.android.js.map +1 -0
  48. package/ui/layouts/liquid-glass/index.d.ts +10 -0
  49. package/ui/layouts/liquid-glass/index.ios.d.ts +10 -0
  50. package/ui/layouts/liquid-glass/index.ios.js +59 -0
  51. package/ui/layouts/liquid-glass/index.ios.js.map +1 -0
  52. package/ui/layouts/liquid-glass/liquid-glass-common.d.ts +3 -0
  53. package/ui/layouts/liquid-glass/liquid-glass-common.js +4 -0
  54. package/ui/layouts/liquid-glass/liquid-glass-common.js.map +1 -0
  55. package/ui/layouts/liquid-glass-container/index.android.d.ts +3 -0
  56. package/ui/layouts/liquid-glass-container/index.android.js +4 -0
  57. package/ui/layouts/liquid-glass-container/index.android.js.map +1 -0
  58. package/ui/layouts/liquid-glass-container/index.d.ts +3 -0
  59. package/ui/layouts/liquid-glass-container/index.ios.d.ts +14 -0
  60. package/ui/layouts/liquid-glass-container/index.ios.js +121 -0
  61. package/ui/layouts/liquid-glass-container/index.ios.js.map +1 -0
  62. package/ui/layouts/liquid-glass-container/liquid-glass-container-common.d.ts +4 -0
  63. package/ui/layouts/liquid-glass-container/liquid-glass-container-common.js +5 -0
  64. package/ui/layouts/liquid-glass-container/liquid-glass-container-common.js.map +1 -0
  65. package/ui/list-view/index.android.d.ts +26 -1
  66. package/ui/list-view/index.android.js +701 -23
  67. package/ui/list-view/index.android.js.map +1 -1
  68. package/ui/list-view/index.d.ts +122 -0
  69. package/ui/list-view/index.ios.d.ts +34 -2
  70. package/ui/list-view/index.ios.js +560 -9
  71. package/ui/list-view/index.ios.js.map +1 -1
  72. package/ui/list-view/list-view-common.d.ts +22 -1
  73. package/ui/list-view/list-view-common.js +85 -0
  74. package/ui/list-view/list-view-common.js.map +1 -1
  75. package/ui/styling/background-common.d.ts +4 -4
  76. package/ui/styling/background-common.js +8 -8
  77. package/ui/styling/background-common.js.map +1 -1
  78. package/ui/styling/background.d.ts +0 -3
  79. package/ui/styling/background.ios.d.ts +2 -1
  80. package/ui/styling/background.ios.js +47 -38
  81. package/ui/styling/background.ios.js.map +1 -1
  82. package/ui/styling/css-utils.d.ts +1 -0
  83. package/ui/styling/css-utils.js +15 -4
  84. package/ui/styling/css-utils.js.map +1 -1
  85. package/ui/styling/style/index.d.ts +2 -1
  86. package/ui/styling/style/index.js.map +1 -1
  87. package/ui/styling/style-properties.js +23 -11
  88. package/ui/styling/style-properties.js.map +1 -1
  89. package/ui/tab-view/index.android.js +22 -8
  90. package/ui/tab-view/index.android.js.map +1 -1
  91. package/ui/tab-view/index.ios.d.ts +1 -1
  92. package/ui/tab-view/index.ios.js +28 -9
  93. package/ui/tab-view/index.ios.js.map +1 -1
  94. package/ui/tab-view/tab-view-common.d.ts +2 -0
  95. package/ui/tab-view/tab-view-common.js +5 -0
  96. package/ui/tab-view/tab-view-common.js.map +1 -1
  97. package/utils/common.d.ts +3 -1
  98. package/utils/common.js +9 -3
  99. package/utils/common.js.map +1 -1
  100. package/utils/index.d.ts +6 -0
  101. package/utils/native-helper-for-android.d.ts +14 -3
  102. package/utils/native-helper-for-android.js +57 -54
  103. package/utils/native-helper-for-android.js.map +1 -1
  104. package/utils/native-helper.android.d.ts +3 -3
  105. package/utils/native-helper.android.js +2 -2
  106. package/utils/native-helper.android.js.map +1 -1
  107. package/utils/native-helper.d.ts +22 -5
@@ -0,0 +1,59 @@
1
+ import { supportsGlass } from '../../../utils/constants';
2
+ import { iosGlassEffectProperty } from '../../core/view';
3
+ import { LiquidGlassCommon } from './liquid-glass-common';
4
+ export class LiquidGlass extends LiquidGlassCommon {
5
+ createNativeView() {
6
+ // Use UIVisualEffectView as the root so interactive effects can track touches
7
+ const effect = UIGlassEffect.effectWithStyle(1 /* UIGlassEffectStyle.Clear */);
8
+ effect.interactive = true;
9
+ const effectView = UIVisualEffectView.alloc().initWithEffect(effect);
10
+ effectView.frame = CGRectMake(0, 0, 0, 0);
11
+ effectView.autoresizingMask = 2 /* UIViewAutoresizing.FlexibleWidth */ | 16 /* UIViewAutoresizing.FlexibleHeight */;
12
+ effectView.clipsToBounds = true;
13
+ // Host for all children so parent layout works as usual
14
+ const host = UIView.new();
15
+ host.frame = effectView.bounds;
16
+ host.autoresizingMask = 2 /* UIViewAutoresizing.FlexibleWidth */ | 16 /* UIViewAutoresizing.FlexibleHeight */;
17
+ host.userInteractionEnabled = true;
18
+ effectView.contentView.addSubview(host);
19
+ this._contentHost = host;
20
+ return effectView;
21
+ }
22
+ _addViewToNativeVisualTree(child, atIndex) {
23
+ const parentNativeView = this._contentHost;
24
+ const childNativeView = child.nativeViewProtected;
25
+ if (parentNativeView && childNativeView) {
26
+ if (typeof atIndex !== 'number' || atIndex >= parentNativeView.subviews.count) {
27
+ parentNativeView.addSubview(childNativeView);
28
+ }
29
+ else {
30
+ parentNativeView.insertSubviewAtIndex(childNativeView, atIndex);
31
+ }
32
+ // If the child has an outer shadow layer, ensure it is attached under the child's layer
33
+ if (childNativeView.outerShadowContainerLayer && !childNativeView.outerShadowContainerLayer.superlayer) {
34
+ this.nativeViewProtected.layer.insertSublayerBelow(childNativeView.outerShadowContainerLayer, childNativeView.layer);
35
+ }
36
+ return true;
37
+ }
38
+ return false;
39
+ }
40
+ [iosGlassEffectProperty.setNative](value) {
41
+ this._applyGlassEffect(value, {
42
+ effectType: 'glass',
43
+ targetView: this.nativeViewProtected,
44
+ toGlassStyleFn: toUIGlassStyle,
45
+ });
46
+ }
47
+ }
48
+ export function toUIGlassStyle(value) {
49
+ if (supportsGlass()) {
50
+ switch (value) {
51
+ case 'regular':
52
+ return 0 /* UIGlassEffectStyle?.Regular */ ?? 0;
53
+ case 'clear':
54
+ return 1 /* UIGlassEffectStyle?.Clear */ ?? 1;
55
+ }
56
+ }
57
+ return 1;
58
+ }
59
+ //# sourceMappingURL=index.ios.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.ios.js","sourceRoot":"","sources":["../../../../../../packages/core/ui/layouts/liquid-glass/index.ios.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAiD,sBAAsB,EAAQ,MAAM,iBAAiB,CAAC;AAC9G,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D,MAAM,OAAO,WAAY,SAAQ,iBAAiB;IAIjD,gBAAgB;QACf,8EAA8E;QAC9E,MAAM,MAAM,GAAG,aAAa,CAAC,eAAe,kCAA0B,CAAC;QACvE,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC;QAC1B,MAAM,UAAU,GAAG,kBAAkB,CAAC,KAAK,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QACrE,UAAU,CAAC,KAAK,GAAG,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC1C,UAAU,CAAC,gBAAgB,GAAG,qFAAoE,CAAC;QACnG,UAAU,CAAC,aAAa,GAAG,IAAI,CAAC;QAEhC,wDAAwD;QACxD,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC;QAC1B,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC;QAC/B,IAAI,CAAC,gBAAgB,GAAG,qFAAoE,CAAC;QAC7F,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;QACnC,UAAU,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QAEzB,OAAO,UAAU,CAAC;IACnB,CAAC;IAEM,0BAA0B,CAAC,KAAW,EAAE,OAAe;QAC7D,MAAM,gBAAgB,GAAG,IAAI,CAAC,YAAY,CAAC;QAC3C,MAAM,eAAe,GAA2C,KAAK,CAAC,mBAAmB,CAAC;QAE1F,IAAI,gBAAgB,IAAI,eAAe,EAAE,CAAC;YACzC,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,IAAI,gBAAgB,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;gBAC/E,gBAAgB,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;YAC9C,CAAC;iBAAM,CAAC;gBACP,gBAAgB,CAAC,oBAAoB,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;YACjE,CAAC;YAED,wFAAwF;YACxF,IAAI,eAAe,CAAC,yBAAyB,IAAI,CAAC,eAAe,CAAC,yBAAyB,CAAC,UAAU,EAAE,CAAC;gBACxG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,mBAAmB,CAAC,eAAe,CAAC,yBAAyB,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC;YACtH,CAAC;YAED,OAAO,IAAI,CAAC;QACb,CAAC;QAED,OAAO,KAAK,CAAC;IACd,CAAC;IAED,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC,KAAsB;QACxD,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE;YAC7B,UAAU,EAAE,OAAO;YACnB,UAAU,EAAE,IAAI,CAAC,mBAAmB;YACpC,cAAc,EAAE,cAAc;SAC9B,CAAC,CAAC;IACJ,CAAC;CACD;AAED,MAAM,UAAU,cAAc,CAAC,KAA0B;IACxD,IAAI,aAAa,EAAE,EAAE,CAAC;QACrB,QAAQ,KAAK,EAAE,CAAC;YACf,KAAK,SAAS;gBACb,OAAO,uCAA+B,CAAC,CAAC;YACzC,KAAK,OAAO;gBACX,OAAO,qCAA6B,CAAC,CAAC;QACxC,CAAC;IACF,CAAC;IACD,OAAO,CAAC,CAAC;AACV,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { GridLayout } from '../grid-layout';
2
+ export declare class LiquidGlassCommon extends GridLayout {
3
+ }
@@ -0,0 +1,4 @@
1
+ import { GridLayout } from '../grid-layout';
2
+ export class LiquidGlassCommon extends GridLayout {
3
+ }
4
+ //# sourceMappingURL=liquid-glass-common.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"liquid-glass-common.js","sourceRoot":"","sources":["../../../../../../packages/core/ui/layouts/liquid-glass/liquid-glass-common.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,MAAM,OAAO,iBAAkB,SAAQ,UAAU;CAAG"}
@@ -0,0 +1,3 @@
1
+ import { LiquidGlassContainerCommon } from './liquid-glass-container-common';
2
+ export declare class LiquidGlassContainer extends LiquidGlassContainerCommon {
3
+ }
@@ -0,0 +1,4 @@
1
+ import { LiquidGlassContainerCommon } from './liquid-glass-container-common';
2
+ export class LiquidGlassContainer extends LiquidGlassContainerCommon {
3
+ }
4
+ //# sourceMappingURL=index.android.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.android.js","sourceRoot":"","sources":["../../../../../../packages/core/ui/layouts/liquid-glass-container/index.android.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAE7E,MAAM,OAAO,oBAAqB,SAAQ,0BAA0B;CAAG"}
@@ -0,0 +1,3 @@
1
+ import { LiquidGlassContainerCommon } from './liquid-glass-container-common';
2
+
3
+ export class LiquidGlassContainer extends LiquidGlassContainerCommon {}
@@ -0,0 +1,14 @@
1
+ import { GlassEffectType, iosGlassEffectProperty, View } from '../../core/view';
2
+ import { LiquidGlassContainerCommon } from './liquid-glass-container-common';
3
+ export declare class LiquidGlassContainer extends LiquidGlassContainerCommon {
4
+ [iosGlassEffectProperty.setNative]: (value: GlassEffectType) => void;
5
+ nativeViewProtected: UIVisualEffectView;
6
+ private _contentHost;
7
+ private _normalizing;
8
+ createNativeView(): UIVisualEffectView;
9
+ _addViewToNativeVisualTree(child: View, atIndex: number): boolean;
10
+ onLayout(left: number, top: number, right: number, bottom: number): void;
11
+ stabilizeLayout(): void;
12
+ private _scheduleNormalize;
13
+ private _normalizeChildrenTransforms;
14
+ }
@@ -0,0 +1,121 @@
1
+ import { iosGlassEffectProperty } from '../../core/view';
2
+ import { LiquidGlassContainerCommon } from './liquid-glass-container-common';
3
+ import { toUIGlassStyle } from '../liquid-glass';
4
+ export class LiquidGlassContainer extends LiquidGlassContainerCommon {
5
+ constructor() {
6
+ super(...arguments);
7
+ this._normalizing = false;
8
+ }
9
+ createNativeView() {
10
+ // Keep UIVisualEffectView as the root to preserve interactive container effect
11
+ const effect = UIGlassContainerEffect.alloc().init();
12
+ effect.spacing = 8;
13
+ const effectView = UIVisualEffectView.alloc().initWithEffect(effect);
14
+ effectView.overrideUserInterfaceStyle = 2 /* UIUserInterfaceStyle.Dark */;
15
+ effectView.clipsToBounds = true;
16
+ effectView.autoresizingMask = 2 /* UIViewAutoresizing.FlexibleWidth */ | 16 /* UIViewAutoresizing.FlexibleHeight */;
17
+ // Add a host view for children so parent can lay them out normally
18
+ const host = UIView.new();
19
+ host.frame = effectView.bounds;
20
+ host.autoresizingMask = 2 /* UIViewAutoresizing.FlexibleWidth */ | 16 /* UIViewAutoresizing.FlexibleHeight */;
21
+ host.userInteractionEnabled = true;
22
+ effectView.contentView.addSubview(host);
23
+ this._contentHost = host;
24
+ return effectView;
25
+ }
26
+ _addViewToNativeVisualTree(child, atIndex) {
27
+ const parentNativeView = this._contentHost;
28
+ const childNativeView = child.nativeViewProtected;
29
+ if (parentNativeView && childNativeView) {
30
+ if (typeof atIndex !== 'number' || atIndex >= parentNativeView.subviews.count) {
31
+ parentNativeView.addSubview(childNativeView);
32
+ }
33
+ else {
34
+ parentNativeView.insertSubviewAtIndex(childNativeView, atIndex);
35
+ }
36
+ // Add outer shadow layer manually as it belongs to parent layer tree (this is needed for reusable views)
37
+ if (childNativeView.outerShadowContainerLayer && !childNativeView.outerShadowContainerLayer.superlayer) {
38
+ this.nativeViewProtected.layer.insertSublayerBelow(childNativeView.outerShadowContainerLayer, childNativeView.layer);
39
+ }
40
+ // Normalize in case the child comes in with a residual translate from a previous state
41
+ this._scheduleNormalize();
42
+ return true;
43
+ }
44
+ return false;
45
+ }
46
+ // When children animate with translate (layer transform), UIVisualEffectView-based
47
+ // container effects may recompute based on the underlying frames (not transforms),
48
+ // which can cause jumps. Normalize any residual translation into the
49
+ // child's frame so the effect uses the final visual positions.
50
+ onLayout(left, top, right, bottom) {
51
+ super.onLayout(left, top, right, bottom);
52
+ // Try to fold any pending translates into frames on each layout pass
53
+ this._normalizeChildrenTransforms();
54
+ }
55
+ // Allow callers to stabilize layout after custom animations
56
+ stabilizeLayout() {
57
+ this._normalizeChildrenTransforms(true);
58
+ }
59
+ _scheduleNormalize() {
60
+ if (this._normalizing)
61
+ return;
62
+ this._normalizing = true;
63
+ // Next tick to allow any pending frame/transform updates to settle
64
+ setTimeout(() => {
65
+ try {
66
+ this._normalizeChildrenTransforms();
67
+ }
68
+ finally {
69
+ this._normalizing = false;
70
+ }
71
+ });
72
+ }
73
+ _normalizeChildrenTransforms(force = false) {
74
+ let changed = false;
75
+ const count = this.getChildrenCount?.() ?? 0;
76
+ for (let i = 0; i < count; i++) {
77
+ const child = this.getChildAt(i);
78
+ if (!child)
79
+ continue;
80
+ const tx = child.translateX || 0;
81
+ const ty = child.translateY || 0;
82
+ if (!tx && !ty)
83
+ continue;
84
+ const native = child.nativeViewProtected;
85
+ if (!native)
86
+ continue;
87
+ // Skip if the child is still animating (unless forced)
88
+ if (!force) {
89
+ const keys = native.layer.animationKeys ? native.layer.animationKeys() : null;
90
+ const hasAnimations = !!(keys && keys.count > 0);
91
+ if (hasAnimations)
92
+ continue;
93
+ }
94
+ const frame = native.frame;
95
+ native.transform = CGAffineTransformIdentity;
96
+ native.frame = CGRectMake(frame.origin.x + tx, frame.origin.y + ty, frame.size.width, frame.size.height);
97
+ child.translateX = 0;
98
+ child.translateY = 0;
99
+ changed = true;
100
+ }
101
+ if (changed) {
102
+ // Ask the effect view to re-evaluate its internal state using updated frames
103
+ const nv = this.nativeViewProtected;
104
+ if (nv) {
105
+ nv.setNeedsLayout();
106
+ nv.layoutIfNeeded();
107
+ // Also request layout on contentView in case the effect inspects it directly
108
+ nv.contentView?.setNeedsLayout?.();
109
+ nv.contentView?.layoutIfNeeded?.();
110
+ }
111
+ }
112
+ }
113
+ [iosGlassEffectProperty.setNative](value) {
114
+ this._applyGlassEffect(value, {
115
+ effectType: 'container',
116
+ targetView: this.nativeViewProtected,
117
+ toGlassStyleFn: toUIGlassStyle,
118
+ });
119
+ }
120
+ }
121
+ //# sourceMappingURL=index.ios.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.ios.js","sourceRoot":"","sources":["../../../../../../packages/core/ui/layouts/liquid-glass-container/index.ios.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { AbsoluteLayout } from '../absolute-layout';
2
+ export declare class LiquidGlassContainerCommon extends AbsoluteLayout {
3
+ stabilizeLayout(): void;
4
+ }
@@ -0,0 +1,5 @@
1
+ import { AbsoluteLayout } from '../absolute-layout';
2
+ export class LiquidGlassContainerCommon extends AbsoluteLayout {
3
+ stabilizeLayout() { }
4
+ }
5
+ //# sourceMappingURL=liquid-glass-container-common.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"liquid-glass-container-common.js","sourceRoot":"","sources":["../../../../../../packages/core/ui/layouts/liquid-glass-container/liquid-glass-container-common.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,MAAM,OAAO,0BAA2B,SAAQ,cAAc;IAC7D,eAAe,KAAI,CAAC;CACpB"}
@@ -1,4 +1,4 @@
1
- import { ListViewBase, separatorColorProperty, itemTemplatesProperty } from './list-view-common';
1
+ import { ListViewBase, separatorColorProperty, itemTemplatesProperty, stickyHeaderProperty, stickyHeaderTemplateProperty, sectionedProperty, showSearchProperty } from './list-view-common';
2
2
  import { View, KeyedTemplate } from '../core/view';
3
3
  import { Color } from '../../color';
4
4
  export * from './list-view-common';
@@ -13,6 +13,10 @@ export declare class ListView extends ListViewBase {
13
13
  }) => void;
14
14
  [itemTemplatesProperty.getDefault]: () => KeyedTemplate[];
15
15
  [itemTemplatesProperty.setNative]: (value: KeyedTemplate[]) => void;
16
+ [stickyHeaderProperty.setNative]: (value: boolean) => void;
17
+ [stickyHeaderTemplateProperty.setNative]: (value: string) => void;
18
+ [sectionedProperty.setNative]: (value: boolean) => void;
19
+ [showSearchProperty.setNative]: (value: boolean) => void;
16
20
  nativeViewProtected: android.widget.ListView;
17
21
  private _androidViewId;
18
22
  _realizedItems: Map<globalAndroid.view.View, {
@@ -21,6 +25,13 @@ export declare class ListView extends ListViewBase {
21
25
  }>;
22
26
  _availableViews: Map<string, Set<globalAndroid.view.View>>;
23
27
  _realizedTemplates: Map<string, Map<globalAndroid.view.View, View>>;
28
+ private _stickyHeaderView;
29
+ private _stickyHeaderHeight;
30
+ private _scrollListener;
31
+ _hiddenHeaderPositions: Set<number>;
32
+ private _searchView;
33
+ private _searchListener;
34
+ get hasSearchView(): boolean;
24
35
  private _ensureAvailableViews;
25
36
  _registerViewToTemplate(templateKey: string, nativeView: android.view.View, view: View): void;
26
37
  _markViewUsed(nativeView: android.view.View): void;
@@ -31,6 +42,7 @@ export declare class ListView extends ListViewBase {
31
42
  createNativeView(): globalAndroid.widget.ListView;
32
43
  initNativeView(): void;
33
44
  disposeNativeView(): void;
45
+ private _cleanupStickyHeader;
34
46
  onLoaded(): void;
35
47
  refresh(): void;
36
48
  scrollToIndex(index: number): void;
@@ -40,4 +52,17 @@ export declare class ListView extends ListViewBase {
40
52
  _dumpRealizedTemplates(): void;
41
53
  private clearRealizedCells;
42
54
  isItemAtIndexVisible(index: number): boolean;
55
+ private _setupStickyHeader;
56
+ private _createStickyHeaderView;
57
+ private _addStickyHeaderToParent;
58
+ private _addListViewPadding;
59
+ private _setupScrollListener;
60
+ private _getCurrentSection;
61
+ private _updateStickyHeader;
62
+ private _updateHiddenHeaders;
63
+ private _setupSearchView;
64
+ private _addSearchPadding;
65
+ private _addSearchToParent;
66
+ private _cleanupSearchView;
67
+ private _repositionStickyHeader;
43
68
  }