@nativescript/core 9.0.12-next.1 → 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
|
@@ -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":"AACA,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAChG,OAAO,EAAE,aAAa,EAAE,uBAAuB,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AACjH,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"index.android.js","sourceRoot":"","sources":["../../../../../packages/core/ui/slider/index.android.ts"],"names":[],"mappings":"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"}
|
package/ui/slider/index.ios.d.ts
CHANGED
|
@@ -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;
|
package/ui/slider/index.ios.js
CHANGED
|
@@ -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":"AAEA,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAChG,OAAO,EAAE,aAAa,EAAE,uBAAuB,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AACjH,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.ios.js","sourceRoot":"","sources":["../../../../../packages/core/ui/slider/index.ios.ts"],"names":[],"mappings":"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"}
|