@nativescript/core 9.0.12-next.2 → 9.0.12-next.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nativescript/core",
3
- "version": "9.0.12-next.2",
3
+ "version": "9.0.12-next.3",
4
4
  "description": "A JavaScript library providing an easy to use api for interacting with iOS and Android platform APIs.",
5
5
  "type": "module",
6
6
  "main": "index",
@@ -29,4 +29,5 @@ export declare class Slider extends SliderBase {
29
29
  * without handling the native value changed callback.
30
30
  */
31
31
  private setNativeValuesSilently;
32
+ private _applyGradientToTrack;
32
33
  }
@@ -2,6 +2,7 @@ import { SliderBase, valueProperty, minValueProperty, maxValueProperty } from '.
2
2
  import { colorProperty, backgroundColorProperty, backgroundInternalProperty } from '../styling/style-properties';
3
3
  import { Color } from '../../color';
4
4
  import { AndroidHelper } from '../core/view';
5
+ import { LinearGradient } from '../styling/linear-gradient';
5
6
  export * from './slider-common';
6
7
  let SeekBar;
7
8
  let SeekBarChangeListener;
@@ -117,7 +118,75 @@ export class Slider extends SliderBase {
117
118
  return null;
118
119
  }
119
120
  [backgroundInternalProperty.setNative](value) {
120
- //
121
+ if (value && value.image instanceof LinearGradient) {
122
+ this._applyGradientToTrack(value.image);
123
+ }
124
+ }
125
+ _applyGradientToTrack(gradient) {
126
+ const nativeView = this.nativeViewProtected;
127
+ if (!nativeView) {
128
+ return;
129
+ }
130
+ // Get dimensions
131
+ const density = nativeView.getContext().getResources().getDisplayMetrics().density;
132
+ const width = nativeView.getWidth() || 1000;
133
+ const trackHeight = Math.round(3 * density); // 3dp track height to match iOS
134
+ const cornerRadius = trackHeight / 2;
135
+ // Create colors array from gradient stops
136
+ const colors = Array.create('int', gradient.colorStops.length);
137
+ gradient.colorStops.forEach((stop, index) => {
138
+ colors[index] = stop.color.android;
139
+ });
140
+ // Create semi-transparent colors for background
141
+ const bgColors = Array.create('int', gradient.colorStops.length);
142
+ gradient.colorStops.forEach((stop, index) => {
143
+ const color = stop.color;
144
+ const alpha = Math.round(color.a * 0.3);
145
+ bgColors[index] = android.graphics.Color.argb(alpha, color.r, color.g, color.b);
146
+ });
147
+ // Create rounded corner radii
148
+ const radii = Array.create('float', 8);
149
+ for (let i = 0; i < 8; i++) {
150
+ radii[i] = cornerRadius;
151
+ }
152
+ // Background track - use GradientDrawable for proper sizing
153
+ const bgDrawable = new android.graphics.drawable.GradientDrawable();
154
+ bgDrawable.setOrientation(android.graphics.drawable.GradientDrawable.Orientation.LEFT_RIGHT);
155
+ bgDrawable.setColors(bgColors);
156
+ bgDrawable.setCornerRadius(cornerRadius);
157
+ bgDrawable.setShape(android.graphics.drawable.GradientDrawable.RECTANGLE);
158
+ // Progress track - use GradientDrawable
159
+ const progressDrawable = new android.graphics.drawable.GradientDrawable();
160
+ progressDrawable.setOrientation(android.graphics.drawable.GradientDrawable.Orientation.LEFT_RIGHT);
161
+ progressDrawable.setColors(colors);
162
+ progressDrawable.setCornerRadius(cornerRadius);
163
+ progressDrawable.setShape(android.graphics.drawable.GradientDrawable.RECTANGLE);
164
+ // Wrap progress in ClipDrawable for clipping based on progress
165
+ const progressClip = new android.graphics.drawable.ClipDrawable(progressDrawable, android.view.Gravity.LEFT, android.graphics.drawable.ClipDrawable.HORIZONTAL);
166
+ // Create LayerDrawable with both layers
167
+ const layers = Array.create(android.graphics.drawable.Drawable, 2);
168
+ layers[0] = bgDrawable;
169
+ layers[1] = progressClip;
170
+ const layerDrawable = new android.graphics.drawable.LayerDrawable(layers);
171
+ layerDrawable.setId(0, android.R.id.background);
172
+ layerDrawable.setId(1, android.R.id.progress);
173
+ // Set layer height using setLayerSize (API 23+) or setLayerInset
174
+ // Use setLayerHeight to constrain the actual drawable height
175
+ const thumbHeight = Math.round(20 * density); // Approximate thumb size
176
+ const verticalInset = Math.round((thumbHeight - trackHeight) / 2);
177
+ layerDrawable.setLayerInset(0, 0, verticalInset, 0, verticalInset);
178
+ layerDrawable.setLayerInset(1, 0, verticalInset, 0, verticalInset);
179
+ // Apply to slider
180
+ nativeView.setProgressDrawable(layerDrawable);
181
+ // Disable split track to remove the gap behind thumb
182
+ nativeView.setSplitTrack(false);
183
+ // Set max height to constrain the SeekBar
184
+ nativeView.setMaxHeight(thumbHeight);
185
+ nativeView.setMinHeight(thumbHeight);
186
+ // Force refresh progress
187
+ const currentProgress = nativeView.getProgress();
188
+ nativeView.setProgress(0);
189
+ nativeView.setProgress(currentProgress);
121
190
  }
122
191
  }
123
192
  //# sourceMappingURL=index.android.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.android.js","sourceRoot":"","sources":["../../../../../packages/core/ui/slider/index.android.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.android.js","sourceRoot":"","sources":["../../../../../packages/core/ui/slider/index.android.ts"],"names":[],"mappings":"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"}
@@ -28,6 +28,7 @@ export declare class Slider extends SliderBase {
28
28
  initNativeView(): void;
29
29
  disposeNativeView(): void;
30
30
  get ios(): UISlider;
31
+ private _applyGradientToTrack;
31
32
  private getAccessibilityStep;
32
33
  _handlerAccessibilityIncrementEvent(): number;
33
34
  _handlerAccessibilityDecrementEvent(): number;
@@ -1,6 +1,8 @@
1
1
  import { SliderBase, valueProperty, minValueProperty, maxValueProperty } from './slider-common';
2
2
  import { colorProperty, backgroundColorProperty, backgroundInternalProperty } from '../styling/style-properties';
3
3
  import { Color } from '../../color';
4
+ import { LinearGradient } from '../styling/linear-gradient';
5
+ import { Screen } from '../../platform/screen';
4
6
  export * from './slider-common';
5
7
  var TNSSlider = (function (_super) {
6
8
  __extends(TNSSlider, _super);
@@ -115,7 +117,87 @@ export class Slider extends SliderBase {
115
117
  return null;
116
118
  }
117
119
  [backgroundInternalProperty.setNative](value) {
118
- //
120
+ if (value && value.image instanceof LinearGradient) {
121
+ this._applyGradientToTrack(value.image);
122
+ }
123
+ }
124
+ _applyGradientToTrack(gradient) {
125
+ const nativeView = this.nativeViewProtected;
126
+ if (!nativeView) {
127
+ return;
128
+ }
129
+ // Create a gradient layer
130
+ const gradientLayer = CAGradientLayer.new();
131
+ // Set up colors from the gradient stops
132
+ const iosColors = NSMutableArray.alloc().initWithCapacity(gradient.colorStops.length);
133
+ const iosStops = NSMutableArray.alloc().initWithCapacity(gradient.colorStops.length);
134
+ let hasStops = false;
135
+ gradient.colorStops.forEach((stop, index) => {
136
+ iosColors.addObject(stop.color.ios.CGColor);
137
+ if (stop.offset) {
138
+ iosStops.addObject(stop.offset.value);
139
+ hasStops = true;
140
+ }
141
+ else {
142
+ // Default evenly distributed positions
143
+ iosStops.addObject(index / (gradient.colorStops.length - 1));
144
+ }
145
+ });
146
+ gradientLayer.colors = iosColors;
147
+ if (hasStops) {
148
+ gradientLayer.locations = iosStops;
149
+ }
150
+ // Calculate gradient direction based on angle
151
+ const alpha = gradient.angle / (Math.PI * 2);
152
+ const startX = Math.pow(Math.sin(Math.PI * (alpha + 0.75)), 2);
153
+ const startY = Math.pow(Math.sin(Math.PI * (alpha + 0.5)), 2);
154
+ const endX = Math.pow(Math.sin(Math.PI * (alpha + 0.25)), 2);
155
+ const endY = Math.pow(Math.sin(Math.PI * alpha), 2);
156
+ gradientLayer.startPoint = { x: startX, y: startY };
157
+ gradientLayer.endPoint = { x: endX, y: endY };
158
+ // Create track image from gradient
159
+ // Use a reasonable default size for the track
160
+ const trackWidth = 200;
161
+ const trackHeight = 4;
162
+ gradientLayer.frame = CGRectMake(0, 0, trackWidth, trackHeight);
163
+ gradientLayer.cornerRadius = trackHeight / 2;
164
+ // Create renderer format with proper scale
165
+ const format = UIGraphicsImageRendererFormat.defaultFormat();
166
+ format.scale = Screen.mainScreen.scale;
167
+ format.opaque = false;
168
+ const size = CGSizeMake(trackWidth, trackHeight);
169
+ const renderer = UIGraphicsImageRenderer.alloc().initWithSizeFormat(size, format);
170
+ // Render gradient to image
171
+ const gradientImage = renderer.imageWithActions((rendererContext) => {
172
+ gradientLayer.renderInContext(rendererContext.CGContext);
173
+ });
174
+ if (gradientImage) {
175
+ // Create stretchable image for the track
176
+ const capInsets = new UIEdgeInsets({
177
+ top: 0,
178
+ left: trackHeight / 2,
179
+ bottom: 0,
180
+ right: trackHeight / 2,
181
+ });
182
+ const stretchableImage = gradientImage.resizableImageWithCapInsetsResizingMode(capInsets, 1 /* UIImageResizingMode.Stretch */);
183
+ // Set the gradient image for minimum track (filled portion)
184
+ nativeView.setMinimumTrackImageForState(stretchableImage, 0 /* UIControlState.Normal */);
185
+ // For maximum track, create a semi-transparent version
186
+ const maxTrackImage = renderer.imageWithActions((rendererContext) => {
187
+ CGContextSetAlpha(rendererContext.CGContext, 0.3);
188
+ gradientLayer.renderInContext(rendererContext.CGContext);
189
+ });
190
+ if (maxTrackImage) {
191
+ const maxCapInsets = new UIEdgeInsets({
192
+ top: 0,
193
+ left: trackHeight / 2,
194
+ bottom: 0,
195
+ right: trackHeight / 2,
196
+ });
197
+ const maxStretchableImage = maxTrackImage.resizableImageWithCapInsetsResizingMode(maxCapInsets, 1 /* UIImageResizingMode.Stretch */);
198
+ nativeView.setMaximumTrackImageForState(maxStretchableImage, 0 /* UIControlState.Normal */);
199
+ }
200
+ }
119
201
  }
120
202
  getAccessibilityStep() {
121
203
  if (!this.accessibilityStep || this.accessibilityStep <= 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.ios.js","sourceRoot":"","sources":["../../../../../packages/core/ui/slider/index.ios.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.ios.js","sourceRoot":"","sources":["../../../../../packages/core/ui/slider/index.ios.ts"],"names":[],"mappings":"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"}