@triniwiz/nativescript-masonkit 1.0.0-beta.108 → 1.0.0-beta.109
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/box-shadow.d.ts +10 -0
- package/box-shadow.js +49 -0
- package/box-shadow.js.map +1 -0
- package/button/index.windows.js +0 -2
- package/button/index.windows.js.map +1 -1
- package/common.d.ts +31 -7
- package/common.js +625 -184
- package/common.js.map +1 -1
- package/css-filter.d.ts +17 -0
- package/css-filter.js +141 -0
- package/css-filter.js.map +1 -0
- package/css-transform.d.ts +6 -0
- package/css-transform.js +101 -0
- package/css-transform.js.map +1 -0
- package/html-windows.d.ts +1 -0
- package/html-windows.js +163 -0
- package/html-windows.js.map +1 -0
- package/html.d.ts +8 -0
- package/html.js +134 -0
- package/html.js.map +1 -0
- package/index.d.ts +6 -4
- package/index.windows.d.ts +2 -0
- package/index.windows.js +2 -0
- package/index.windows.js.map +1 -1
- package/input/common.d.ts +16 -0
- package/input/common.js +45 -3
- package/input/common.js.map +1 -1
- package/input/index.android.d.ts +8 -3
- package/input/index.android.js +24 -7
- package/input/index.android.js.map +1 -1
- package/input/index.ios.d.ts +7 -3
- package/input/index.ios.js +18 -7
- package/input/index.ios.js.map +1 -1
- package/input/index.windows.d.ts +14 -2
- package/input/index.windows.js +143 -4
- package/input/index.windows.js.map +1 -1
- package/li/index.windows.js +4 -2
- package/li/index.windows.js.map +1 -1
- package/list/index.windows.d.ts +5 -2
- package/list/index.windows.js +26 -4
- package/list/index.windows.js.map +1 -1
- package/package.json +1 -1
- package/platforms/android/masonkit-release.aar +0 -0
- package/platforms/ios/Mason.xcframework/Info.plist +11 -11
- package/platforms/ios/Mason.xcframework/ios-arm64/Mason.framework/Headers/Mason-Swift.h +14 -1
- package/platforms/ios/Mason.xcframework/ios-arm64/Mason.framework/Mason +0 -0
- package/platforms/ios/Mason.xcframework/ios-arm64/Mason.framework/Modules/Mason.swiftmodule/Project/arm64-apple-ios.swiftsourceinfo +0 -0
- package/platforms/ios/Mason.xcframework/ios-arm64/Mason.framework/Modules/Mason.swiftmodule/arm64-apple-ios.abi.json +5091 -13148
- package/platforms/ios/Mason.xcframework/ios-arm64/Mason.framework/Modules/Mason.swiftmodule/arm64-apple-ios.private.swiftinterface +28 -0
- package/platforms/ios/Mason.xcframework/ios-arm64/Mason.framework/Modules/Mason.swiftmodule/arm64-apple-ios.swiftdoc +0 -0
- package/platforms/ios/Mason.xcframework/ios-arm64/Mason.framework/Modules/Mason.swiftmodule/arm64-apple-ios.swiftinterface +28 -0
- package/platforms/ios/Mason.xcframework/ios-arm64/dSYMs/Mason.framework.dSYM/Contents/Resources/DWARF/Mason +0 -0
- package/platforms/ios/Mason.xcframework/ios-arm64/dSYMs/Mason.framework.dSYM/Contents/Resources/Relocations/aarch64/Mason.yml +8874 -8713
- package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/Headers/Mason-Swift.h +28 -2
- package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/Mason +0 -0
- package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/Modules/Mason.swiftmodule/Project/arm64-apple-ios-simulator.swiftsourceinfo +0 -0
- package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/Modules/Mason.swiftmodule/Project/x86_64-apple-ios-simulator.swiftsourceinfo +0 -0
- package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/Modules/Mason.swiftmodule/arm64-apple-ios-simulator.abi.json +5091 -13148
- package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/Modules/Mason.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface +28 -0
- package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/Modules/Mason.swiftmodule/arm64-apple-ios-simulator.swiftdoc +0 -0
- package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/Modules/Mason.swiftmodule/arm64-apple-ios-simulator.swiftinterface +28 -0
- package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/Modules/Mason.swiftmodule/x86_64-apple-ios-simulator.abi.json +5091 -13148
- package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/Modules/Mason.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface +28 -0
- package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/Modules/Mason.swiftmodule/x86_64-apple-ios-simulator.swiftdoc +0 -0
- package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/Modules/Mason.swiftmodule/x86_64-apple-ios-simulator.swiftinterface +28 -0
- package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/_CodeSignature/CodeResources +26 -26
- package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/dSYMs/Mason.framework.dSYM/Contents/Resources/DWARF/Mason +0 -0
- package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/dSYMs/Mason.framework.dSYM/Contents/Resources/Relocations/aarch64/Mason.yml +8868 -8708
- package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/dSYMs/Mason.framework.dSYM/Contents/Resources/Relocations/x86_64/Mason.yml +8467 -8310
- package/platforms/ios/Mason.xcframework/xros-arm64/Mason.framework/Headers/Mason-Swift.h +14 -1
- package/platforms/ios/Mason.xcframework/xros-arm64/Mason.framework/Mason +0 -0
- package/platforms/ios/Mason.xcframework/xros-arm64/Mason.framework/Modules/Mason.swiftmodule/Project/arm64-apple-xros.swiftsourceinfo +0 -0
- package/platforms/ios/Mason.xcframework/xros-arm64/Mason.framework/Modules/Mason.swiftmodule/arm64-apple-xros.abi.json +5091 -13148
- package/platforms/ios/Mason.xcframework/xros-arm64/Mason.framework/Modules/Mason.swiftmodule/arm64-apple-xros.private.swiftinterface +28 -0
- package/platforms/ios/Mason.xcframework/xros-arm64/Mason.framework/Modules/Mason.swiftmodule/arm64-apple-xros.swiftdoc +0 -0
- package/platforms/ios/Mason.xcframework/xros-arm64/Mason.framework/Modules/Mason.swiftmodule/arm64-apple-xros.swiftinterface +28 -0
- package/platforms/ios/Mason.xcframework/xros-arm64/dSYMs/Mason.framework.dSYM/Contents/Resources/DWARF/Mason +0 -0
- package/platforms/ios/Mason.xcframework/xros-arm64/dSYMs/Mason.framework.dSYM/Contents/Resources/Relocations/aarch64/Mason.yml +8366 -8204
- package/platforms/ios/Mason.xcframework/xros-arm64-simulator/Mason.framework/Headers/Mason-Swift.h +14 -1
- package/platforms/ios/Mason.xcframework/xros-arm64-simulator/Mason.framework/Mason +0 -0
- package/platforms/ios/Mason.xcframework/xros-arm64-simulator/Mason.framework/Modules/Mason.swiftmodule/Project/arm64-apple-xros-simulator.swiftsourceinfo +0 -0
- package/platforms/ios/Mason.xcframework/xros-arm64-simulator/Mason.framework/Modules/Mason.swiftmodule/arm64-apple-xros-simulator.abi.json +5091 -13148
- package/platforms/ios/Mason.xcframework/xros-arm64-simulator/Mason.framework/Modules/Mason.swiftmodule/arm64-apple-xros-simulator.private.swiftinterface +28 -0
- package/platforms/ios/Mason.xcframework/xros-arm64-simulator/Mason.framework/Modules/Mason.swiftmodule/arm64-apple-xros-simulator.swiftdoc +0 -0
- package/platforms/ios/Mason.xcframework/xros-arm64-simulator/Mason.framework/Modules/Mason.swiftmodule/arm64-apple-xros-simulator.swiftinterface +28 -0
- package/platforms/ios/Mason.xcframework/xros-arm64-simulator/Mason.framework/_CodeSignature/CodeResources +14 -14
- package/platforms/ios/Mason.xcframework/xros-arm64-simulator/dSYMs/Mason.framework.dSYM/Contents/Resources/DWARF/Mason +0 -0
- package/platforms/ios/Mason.xcframework/xros-arm64-simulator/dSYMs/Mason.framework.dSYM/Contents/Resources/Relocations/aarch64/Mason.yml +8365 -8204
- package/platforms/windows/arm64/NativeScript.Mason.dll +0 -0
- package/platforms/windows/arm64/NativeScript.Mason.winmd +0 -0
- package/platforms/windows/x64/NativeScript.Mason.dll +0 -0
- package/platforms/windows/x64/NativeScript.Mason.winmd +0 -0
- package/properties.js +1 -1
- package/properties.js.map +1 -1
- package/scroll/index.windows.js +4 -2
- package/scroll/index.windows.js.map +1 -1
- package/style.d.ts +28 -2
- package/style.js +291 -69
- package/style.js.map +1 -1
- package/symbols.d.ts +4 -0
- package/symbols.js +6 -2
- package/symbols.js.map +1 -1
- package/text/index.windows.d.ts +3 -0
- package/text/index.windows.js +39 -10
- package/text/index.windows.js.map +1 -1
- package/textarea/index.windows.d.ts +2 -0
- package/textarea/index.windows.js +5 -1
- package/textarea/index.windows.js.map +1 -1
- package/typings/android.d.ts +3 -0
- package/typings/objc!Mason.d.ts +4 -0
- package/typings/windows.d.ts +29 -1
- package/view/index.windows.js +4 -2
- package/view/index.windows.js.map +1 -1
- package/vue/src/element-registry.d.ts.map +1 -1
- package/vue/src/element-registry.js +4 -1
- package/vue/src/element-registry.js.map +1 -1
- package/vue/src/v-model.d.ts +27 -0
- package/vue/src/v-model.d.ts.map +1 -0
- package/vue/src/v-model.js +70 -0
- package/vue/src/v-model.js.map +1 -0
package/style.js
CHANGED
|
@@ -3,7 +3,9 @@ import { cssUnits } from './units';
|
|
|
3
3
|
import { masonEngine } from './windows-panel-helpers';
|
|
4
4
|
import { reportCssDiagnostic } from './diagnostics';
|
|
5
5
|
import { expandColorStops, resolveStopPositions } from './gradient-stops';
|
|
6
|
-
import {
|
|
6
|
+
import { encodeBoxShadows, parseBoxShadows } from './box-shadow';
|
|
7
|
+
import { encodeCssFilter, parseCssFilter } from './css-filter';
|
|
8
|
+
import { Color, Length as CoreLength, PercentLength as CorePercentLength, Screen, knownFolders } from '@nativescript/core';
|
|
7
9
|
// The Windows shell lays out in XAML DIPs, so its style buffer holds DIPs. Core's Windows density
|
|
8
10
|
// is 1 until the window has a XamlRoot, so converting stored early styles unscaled and later ones scaled.
|
|
9
11
|
const layout = __WINDOWS__ ? { ...coreLayout, getDisplayDensity: () => 1, toDevicePixels: (value) => value, toDeviceIndependentPixels: (value) => value } : coreLayout;
|
|
@@ -257,7 +259,7 @@ function windowsSetGrid(nativeView, field, value) {
|
|
|
257
259
|
// UpdateGrid doesn't mark the node dirty / invalidate XAML measure on its own;
|
|
258
260
|
// SyncStyle does, so a grid item's placement change re-runs the container layout.
|
|
259
261
|
try {
|
|
260
|
-
nativeView.SyncStyle(
|
|
262
|
+
nativeView.SyncStyle(-1, -1, -1, -1);
|
|
261
263
|
}
|
|
262
264
|
catch (_) { }
|
|
263
265
|
}
|
|
@@ -610,6 +612,8 @@ StateKeys.CARET_COLOR = StateKeys.flag(76);
|
|
|
610
612
|
StateKeys.WORD_SPACING = StateKeys.flag(77);
|
|
611
613
|
StateKeys.FONT_STRETCH = StateKeys.flag(78);
|
|
612
614
|
StateKeys.DISPLAY_AND_MODE = StateKeys.DISPLAY.or(StateKeys.DISPLAY_MODE);
|
|
615
|
+
StateKeys.FLOW_TYPE = StateKeys.DISPLAY.or(StateKeys.DISPLAY_MODE).or(StateKeys.POSITION).or(StateKeys.FLOAT);
|
|
616
|
+
StateKeys.WINDOWS_TEXT = [49, 50, 51, 52, 53, 54, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 73, 74, 75, 77, 78].reduce((mask, n) => mask.or(StateKeys.flag(n)), StateKeys.NONE);
|
|
613
617
|
function wordsToBigInt(w0, w1, w2, w3) {
|
|
614
618
|
return BigInt(w0 >>> 0) | (BigInt(w1 >>> 0) << 32n) | (BigInt(w2 >>> 0) << 64n) | (BigInt(w3 >>> 0) << 96n);
|
|
615
619
|
}
|
|
@@ -745,6 +749,102 @@ export function parseLinearGradientCss(value) {
|
|
|
745
749
|
return null;
|
|
746
750
|
return { angle, offsets: resolveStopPositions(positions), colors, interpolation };
|
|
747
751
|
}
|
|
752
|
+
const RADIAL_GRADIENT_ARGS = /radial-gradient\s*\(([\s\S]*)\)\s*$/i;
|
|
753
|
+
function positionFraction(token, axis) {
|
|
754
|
+
if (token == null)
|
|
755
|
+
return null;
|
|
756
|
+
const t = token.trim().toLowerCase();
|
|
757
|
+
if (t === 'center')
|
|
758
|
+
return 0.5;
|
|
759
|
+
if (t === (axis === 'x' ? 'left' : 'top'))
|
|
760
|
+
return 0;
|
|
761
|
+
if (t === (axis === 'x' ? 'right' : 'bottom'))
|
|
762
|
+
return 1;
|
|
763
|
+
if (t.endsWith('%')) {
|
|
764
|
+
const n = parseFloat(t);
|
|
765
|
+
return Number.isFinite(n) ? n / 100 : null;
|
|
766
|
+
}
|
|
767
|
+
return null;
|
|
768
|
+
}
|
|
769
|
+
export function parseBoxPosition(value, fallback = 0.5) {
|
|
770
|
+
const parts = value.trim().toLowerCase().split(/\s+/).filter(Boolean);
|
|
771
|
+
let x = null;
|
|
772
|
+
let y = null;
|
|
773
|
+
for (const part of parts) {
|
|
774
|
+
if ((part === 'top' || part === 'bottom') && y == null)
|
|
775
|
+
y = positionFraction(part, 'y');
|
|
776
|
+
else if ((part === 'left' || part === 'right') && x == null)
|
|
777
|
+
x = positionFraction(part, 'x');
|
|
778
|
+
else if (x == null)
|
|
779
|
+
x = positionFraction(part, 'x');
|
|
780
|
+
else if (y == null)
|
|
781
|
+
y = positionFraction(part, 'y');
|
|
782
|
+
}
|
|
783
|
+
if (x != null || y != null)
|
|
784
|
+
return { x: x ?? 0.5, y: y ?? 0.5 };
|
|
785
|
+
return { x: fallback, y: fallback };
|
|
786
|
+
}
|
|
787
|
+
export function parseRadialGradientCss(value) {
|
|
788
|
+
const m = RADIAL_GRADIENT_ARGS.exec(value.trim());
|
|
789
|
+
if (!m)
|
|
790
|
+
return null;
|
|
791
|
+
const parts = splitTopLevelCommas(m[1])
|
|
792
|
+
.map((p) => p.trim())
|
|
793
|
+
.filter(Boolean);
|
|
794
|
+
if (parts.length < 2)
|
|
795
|
+
return null;
|
|
796
|
+
let start = 0;
|
|
797
|
+
let cx = 0.5;
|
|
798
|
+
let cy = 0.5;
|
|
799
|
+
let size = 'farthest-corner';
|
|
800
|
+
let interpolation = '';
|
|
801
|
+
let head = parts[0];
|
|
802
|
+
const method = INTERPOLATION_METHOD.exec(head);
|
|
803
|
+
if (method) {
|
|
804
|
+
interpolation = method[1].toLowerCase().replace(/\s+/g, ' ');
|
|
805
|
+
head = (head.slice(0, method.index) + head.slice(method.index + method[0].length)).trim();
|
|
806
|
+
start = 1;
|
|
807
|
+
}
|
|
808
|
+
if (/\b(circle|ellipse|closest-side|farthest-side|closest-corner|farthest-corner|at)\b/i.test(head)) {
|
|
809
|
+
start = 1;
|
|
810
|
+
const at = /\bat\s+(.+)$/i.exec(head);
|
|
811
|
+
if (at) {
|
|
812
|
+
const p = parseBoxPosition(at[1]);
|
|
813
|
+
cx = p.x;
|
|
814
|
+
cy = p.y;
|
|
815
|
+
}
|
|
816
|
+
const sizeKeyword = /(closest-side|farthest-side|closest-corner|farthest-corner)/i.exec(head);
|
|
817
|
+
if (sizeKeyword)
|
|
818
|
+
size = sizeKeyword[1].toLowerCase();
|
|
819
|
+
}
|
|
820
|
+
const sideX = size.startsWith('closest') ? Math.min(cx, 1 - cx) : Math.max(cx, 1 - cx);
|
|
821
|
+
const sideY = size.startsWith('closest') ? Math.min(cy, 1 - cy) : Math.max(cy, 1 - cy);
|
|
822
|
+
const corner = size.endsWith('corner') ? Math.SQRT2 : 1;
|
|
823
|
+
const colors = [];
|
|
824
|
+
const positions = [];
|
|
825
|
+
for (const stop of expandColorStops(parts.slice(start))) {
|
|
826
|
+
const pos = /\s+(-?[\d.]+)(%|[a-z]+)\s*$/i.exec(stop);
|
|
827
|
+
const colorStr = pos ? stop.slice(0, pos.index).trim() : stop;
|
|
828
|
+
const argb = normalizeColorValue(colorStr);
|
|
829
|
+
if (argb == null)
|
|
830
|
+
continue;
|
|
831
|
+
colors.push(argb >>> 0);
|
|
832
|
+
positions.push(pos && pos[2] === '%' ? parseFloat(pos[1]) / 100 : null);
|
|
833
|
+
}
|
|
834
|
+
if (colors.length < 1)
|
|
835
|
+
return null;
|
|
836
|
+
return { cx, cy, rx: Math.max(sideX * corner, 0.001), ry: Math.max(sideY * corner, 0.001), offsets: resolveStopPositions(positions), colors, interpolation };
|
|
837
|
+
}
|
|
838
|
+
export function backgroundFit(size) {
|
|
839
|
+
const t = (size ?? '').trim().toLowerCase();
|
|
840
|
+
if (t === 'cover')
|
|
841
|
+
return 3;
|
|
842
|
+
if (t === 'contain')
|
|
843
|
+
return 2;
|
|
844
|
+
if (t === '100%' || t === '100% 100%')
|
|
845
|
+
return 1;
|
|
846
|
+
return 0;
|
|
847
|
+
}
|
|
748
848
|
const SIDE_TOKEN = /^(auto|[+-]?(\d+\.?\d*|\.\d+)(e[+-]?\d+)?(px|dip|dppx|rem|em|pt|vw|vh|vmin|vmax|%)?|[a-z-]+\(.*\))$/i;
|
|
749
849
|
/** 1-4 lengths, percentages or `auto`. Anything else makes the whole declaration invalid, which CSS ignores. */
|
|
750
850
|
export function isSideList(value) {
|
|
@@ -1199,6 +1299,7 @@ export class Style {
|
|
|
1199
1299
|
// `false` means a write happened without a snapshot, so always sync.
|
|
1200
1300
|
this._turnSnapshot = undefined;
|
|
1201
1301
|
this._synced = false;
|
|
1302
|
+
this._windowsCss = new Map();
|
|
1202
1303
|
}
|
|
1203
1304
|
static fromView(view, nativeView) {
|
|
1204
1305
|
const ret = new Style();
|
|
@@ -1399,34 +1500,91 @@ export class Style {
|
|
|
1399
1500
|
}
|
|
1400
1501
|
if (__WINDOWS__) {
|
|
1401
1502
|
// Android and iOS parse these natively; Windows parses them here into the style buffer.
|
|
1503
|
+
if (!this._pseudo)
|
|
1504
|
+
this._windowsCss.set(name, value);
|
|
1402
1505
|
this.applyWindowsCssString(name, value);
|
|
1403
1506
|
}
|
|
1404
1507
|
}
|
|
1508
|
+
applyWindowsBackground(shorthand) {
|
|
1509
|
+
const v = (this._windowsBackground ?? '').trim();
|
|
1510
|
+
const layer = splitTopLevelCommas(v)[0]?.trim() ?? '';
|
|
1511
|
+
const stopsOf = (g) => g.offsets.map((o, i) => o + ':' + (g.colors[i] >>> 0)).join(',');
|
|
1512
|
+
try {
|
|
1513
|
+
if (/^radial-gradient/i.test(layer)) {
|
|
1514
|
+
const g = parseRadialGradientCss(layer);
|
|
1515
|
+
if (g)
|
|
1516
|
+
NativeScript.Mason.Css.ApplyRadialGradientAt(this.nativeView, g.cx, g.cy, g.rx, g.ry, stopsOf(g), g.interpolation);
|
|
1517
|
+
return;
|
|
1518
|
+
}
|
|
1519
|
+
if (/^linear-gradient/i.test(layer)) {
|
|
1520
|
+
const g = parseLinearGradientCss(layer);
|
|
1521
|
+
if (g && g.colors.length)
|
|
1522
|
+
NativeScript.Mason.Css.ApplyLinearGradient(this.nativeView, g.angle, stopsOf(g), g.interpolation);
|
|
1523
|
+
return;
|
|
1524
|
+
}
|
|
1525
|
+
const url = /url\(\s*(['"]?)(.*?)\1\s*\)/i.exec(layer);
|
|
1526
|
+
if (url) {
|
|
1527
|
+
let source = url[2];
|
|
1528
|
+
if (source.startsWith('~/'))
|
|
1529
|
+
source = source.replace('~/', knownFolders.currentApp().path + '/');
|
|
1530
|
+
const rest = layer.slice(url.index + url[0].length).trim();
|
|
1531
|
+
const keywords = /\b(no-repeat|repeat-x|repeat-y|repeat|space|round|scroll|fixed|local|border-box|padding-box|content-box)\b/gi;
|
|
1532
|
+
const [positionPart, sizePart] = rest.split('/').map((p) => p.replace(keywords, '').trim());
|
|
1533
|
+
const size = shorthand && sizePart ? sizePart.split(/\s+/).slice(0, 2).join(' ') : this._windowsBackgroundSize;
|
|
1534
|
+
const position = parseBoxPosition(shorthand && positionPart ? positionPart : (this._windowsBackgroundPosition ?? '0% 0%'), 0);
|
|
1535
|
+
const align = (f) => (f <= 0.25 ? 0 : f >= 0.75 ? 2 : 1);
|
|
1536
|
+
NativeScript.Mason.Css.ApplyBackgroundImage(this.nativeView, source, backgroundFit(size), align(position.x), align(position.y));
|
|
1537
|
+
return;
|
|
1538
|
+
}
|
|
1539
|
+
if (!ANY_GRADIENT.test(layer)) {
|
|
1540
|
+
NativeScript.Mason.Css.ClearBackground(this.nativeView);
|
|
1541
|
+
if (shorthand && v.length && v.toLowerCase() !== 'none')
|
|
1542
|
+
this.backgroundColor = v;
|
|
1543
|
+
}
|
|
1544
|
+
}
|
|
1545
|
+
catch (_) { }
|
|
1546
|
+
}
|
|
1405
1547
|
applyWindowsCssString(name, value) {
|
|
1406
1548
|
// A gradient is a Panel brush from Css that VisualApply leaves over BACKGROUND_COLOR; clearing
|
|
1407
1549
|
// it lets VisualApply repaint the color.
|
|
1408
1550
|
if (name === 'background' || name === 'background-image') {
|
|
1409
|
-
|
|
1410
|
-
|
|
1411
|
-
|
|
1412
|
-
|
|
1413
|
-
|
|
1414
|
-
|
|
1415
|
-
|
|
1416
|
-
|
|
1417
|
-
|
|
1418
|
-
|
|
1419
|
-
|
|
1420
|
-
|
|
1421
|
-
|
|
1422
|
-
|
|
1423
|
-
|
|
1424
|
-
|
|
1425
|
-
|
|
1426
|
-
|
|
1427
|
-
|
|
1428
|
-
|
|
1429
|
-
|
|
1551
|
+
this._windowsBackground = typeof value === 'string' ? value : String(value ?? '');
|
|
1552
|
+
this.applyWindowsBackground(name === 'background');
|
|
1553
|
+
return;
|
|
1554
|
+
}
|
|
1555
|
+
if (name === 'background-size' || name === 'background-position') {
|
|
1556
|
+
if (name === 'background-size')
|
|
1557
|
+
this._windowsBackgroundSize = String(value ?? '');
|
|
1558
|
+
else
|
|
1559
|
+
this._windowsBackgroundPosition = String(value ?? '');
|
|
1560
|
+
if (/url\(/i.test(this._windowsBackground ?? ''))
|
|
1561
|
+
this.applyWindowsBackground(false);
|
|
1562
|
+
return;
|
|
1563
|
+
}
|
|
1564
|
+
if (name === 'filter' || name === 'backdrop-filter') {
|
|
1565
|
+
const view = this.nativeView;
|
|
1566
|
+
if (!view)
|
|
1567
|
+
return;
|
|
1568
|
+
const current = this.color >>> 0 || 0xff000000;
|
|
1569
|
+
const spec = encodeCssFilter(parseCssFilter(typeof value === 'string' ? value : '', (token) => cssLengthToDip(token, this.emBasis())), (color) => (color && color.toLowerCase() !== 'currentcolor' ? (normalizeColorValue(color) ?? current) : current));
|
|
1570
|
+
if (name === 'filter')
|
|
1571
|
+
NativeScript.Mason.Css.SetFilter(view, spec);
|
|
1572
|
+
else
|
|
1573
|
+
NativeScript.Mason.Css.SetBackdropFilter(view, spec);
|
|
1574
|
+
return;
|
|
1575
|
+
}
|
|
1576
|
+
if (name === 'font-feature-settings') {
|
|
1577
|
+
const view = this.nativeView;
|
|
1578
|
+
if (view && typeof view.SetFontFeatureSettings === 'function')
|
|
1579
|
+
view.SetFontFeatureSettings(typeof value === 'string' ? value : '');
|
|
1580
|
+
return;
|
|
1581
|
+
}
|
|
1582
|
+
if (name === 'text-shadow') {
|
|
1583
|
+
const view = this.nativeView;
|
|
1584
|
+
if (view && typeof view.SetTextShadow === 'function') {
|
|
1585
|
+
const current = this.color >>> 0 || 0xff000000;
|
|
1586
|
+
const shadows = parseBoxShadows(typeof value === 'string' ? value : '', (token) => cssLengthToDip(token, this.emBasis()));
|
|
1587
|
+
view.SetTextShadow(encodeBoxShadows(shadows, (color) => (color && color.toLowerCase() !== 'currentcolor' ? (normalizeColorValue(color) ?? current) : current)));
|
|
1430
1588
|
}
|
|
1431
1589
|
return;
|
|
1432
1590
|
}
|
|
@@ -1524,6 +1682,9 @@ export class Style {
|
|
|
1524
1682
|
case 'text-decoration-color':
|
|
1525
1683
|
color = parseTextDecorationColor(value);
|
|
1526
1684
|
break;
|
|
1685
|
+
case 'text-decoration-thickness':
|
|
1686
|
+
thickness = cssLengthToDip(value, this.emBasis()) ?? null;
|
|
1687
|
+
break;
|
|
1527
1688
|
}
|
|
1528
1689
|
if (line == null && style == null && color == null && thickness == null)
|
|
1529
1690
|
return;
|
|
@@ -1597,22 +1758,38 @@ export class Style {
|
|
|
1597
1758
|
view.mason_syncStyleParts(this._d0, this._d1, this._d2, this._d3);
|
|
1598
1759
|
}
|
|
1599
1760
|
else if (__WINDOWS__) {
|
|
1600
|
-
// The Windows elements re-read the whole buffer, so the dirty bits aren't passed.
|
|
1601
1761
|
// @ts-ignore
|
|
1602
1762
|
const view = this.view?.windows ?? this.view._view;
|
|
1603
|
-
|
|
1604
|
-
this.
|
|
1763
|
+
const all = !this._hasDirty;
|
|
1764
|
+
const d0 = all ? -1 : this._d0;
|
|
1765
|
+
const d1 = all ? -1 : this._d1;
|
|
1766
|
+
const d2 = all ? -1 : this._d2;
|
|
1767
|
+
const d3 = all ? -1 : this._d3;
|
|
1768
|
+
view.SyncStyle(d0, d1, d2, d3);
|
|
1769
|
+
const text = StateKeys.WINDOWS_TEXT;
|
|
1770
|
+
if ((d0 & text.w0) | (d1 & text.w1) | (d2 & text.w2) | (d3 & text.w3)) {
|
|
1771
|
+
this.view?._windowsSyncAnonymousText?.(d0, d1, d2, d3);
|
|
1772
|
+
}
|
|
1773
|
+
const flow = StateKeys.FLOW_TYPE;
|
|
1774
|
+
if (!this._pseudo && (d0 & flow.w0) | (d1 & flow.w1) | (d2 & flow.w2) | (d3 & flow.w3)) {
|
|
1775
|
+
this.view?._windowsFlowTypeChanged?.();
|
|
1776
|
+
}
|
|
1605
1777
|
}
|
|
1606
1778
|
}
|
|
1607
1779
|
/** The anonymous Windows Text holding a container's own runs inherits the container's text styles. */
|
|
1608
|
-
copyTextStyleTo(text) {
|
|
1780
|
+
copyTextStyleTo(text, d0 = -1, d1 = -1, d2 = -1, d3 = -1, block = false) {
|
|
1609
1781
|
if (!__WINDOWS__ || !this.u8View)
|
|
1610
1782
|
return;
|
|
1611
1783
|
//@ts-ignore
|
|
1612
1784
|
const target = new Uint8Array(NSWinRT.interop.arrayBufferFromBuffer(masonEngine().StyleValues(text)));
|
|
1613
1785
|
target.set(this.u8View.subarray(StyleKeys.FONT_COLOR, StyleKeys.BACKGROUND_COLOR), StyleKeys.FONT_COLOR);
|
|
1614
1786
|
target.set(this.u8View.subarray(StyleKeys.DECORATION_LINE, StyleKeys.PSEUDO_SET_MASK_LOW), StyleKeys.DECORATION_LINE);
|
|
1615
|
-
|
|
1787
|
+
target.set(this.u8View.subarray(StyleKeys.HYPHENS, StyleKeys.FONT_STRETCH_STATE + 1), StyleKeys.HYPHENS);
|
|
1788
|
+
if (block) {
|
|
1789
|
+
target[StyleKeys.DISPLAY] = 3;
|
|
1790
|
+
target[StyleKeys.DISPLAY_MODE] = 0 /* DisplayMode.None */;
|
|
1791
|
+
}
|
|
1792
|
+
text.SyncStyle(d0, d1, d2, d3);
|
|
1616
1793
|
}
|
|
1617
1794
|
setOrAppendState(value) {
|
|
1618
1795
|
if (this._turnSnapshot === undefined) {
|
|
@@ -1703,6 +1880,24 @@ export class Style {
|
|
|
1703
1880
|
this.commitState(StateKeys.BOX_SIZING);
|
|
1704
1881
|
}
|
|
1705
1882
|
}
|
|
1883
|
+
get direction() {
|
|
1884
|
+
switch (getUint8(this.style_view, StyleKeys.DIRECTION)) {
|
|
1885
|
+
case 1:
|
|
1886
|
+
return 'ltr';
|
|
1887
|
+
case 2:
|
|
1888
|
+
return 'rtl';
|
|
1889
|
+
default:
|
|
1890
|
+
return 'inherit';
|
|
1891
|
+
}
|
|
1892
|
+
}
|
|
1893
|
+
set direction(value) {
|
|
1894
|
+
const direction = value === 'ltr' ? 1 : value === 'rtl' ? 2 : 0;
|
|
1895
|
+
if (getUint8(this.style_view, StyleKeys.DIRECTION) === direction)
|
|
1896
|
+
return;
|
|
1897
|
+
this.prepareMut();
|
|
1898
|
+
setUint8(this.style_view, StyleKeys.DIRECTION, direction);
|
|
1899
|
+
this.commitState(StateKeys.DIRECTION);
|
|
1900
|
+
}
|
|
1706
1901
|
get listStyleType() {
|
|
1707
1902
|
switch (getUint8(this.style_view, StyleKeys.LIST_STYLE_TYPE)) {
|
|
1708
1903
|
case 1:
|
|
@@ -1732,6 +1927,18 @@ export class Style {
|
|
|
1732
1927
|
setInt8(this.style_view, StyleKeys.LIST_STYLE_TYPE_STATE, 1);
|
|
1733
1928
|
this.commitState(StateKeys.LIST_STYLE_TYPE);
|
|
1734
1929
|
}
|
|
1930
|
+
get listStylePosition() {
|
|
1931
|
+
return getUint8(this.style_view, StyleKeys.LIST_STYLE_POSITION) === 1 ? 'inside' : 'outside';
|
|
1932
|
+
}
|
|
1933
|
+
set listStylePosition(value) {
|
|
1934
|
+
if (value !== 'outside' && value !== 'inside') {
|
|
1935
|
+
return;
|
|
1936
|
+
}
|
|
1937
|
+
this.prepareMut();
|
|
1938
|
+
setUint8(this.style_view, StyleKeys.LIST_STYLE_POSITION, value === 'inside' ? 1 : 0);
|
|
1939
|
+
setInt8(this.style_view, StyleKeys.LIST_STYLE_POSITION_STATE, 1);
|
|
1940
|
+
this.commitState(StateKeys.LIST_STYLE_POSITION);
|
|
1941
|
+
}
|
|
1735
1942
|
get fontSize() {
|
|
1736
1943
|
if (!this.style_view) {
|
|
1737
1944
|
// BLACK ?
|
|
@@ -1926,6 +2133,12 @@ export class Style {
|
|
|
1926
2133
|
}
|
|
1927
2134
|
const normalized = normalizeColorValue(value);
|
|
1928
2135
|
if (normalized == null) {
|
|
2136
|
+
// Leaving :active on Windows resets an unset color, which then inherits again.
|
|
2137
|
+
if (__WINDOWS__ && getInt8(this.style_view, StyleKeys.FONT_COLOR_STATE)) {
|
|
2138
|
+
this.prepareMut();
|
|
2139
|
+
setInt8(this.style_view, StyleKeys.FONT_COLOR_STATE, 0);
|
|
2140
|
+
this.commitState(StateKeys.FONT_COLOR);
|
|
2141
|
+
}
|
|
1929
2142
|
return;
|
|
1930
2143
|
}
|
|
1931
2144
|
this.prepareMut();
|
|
@@ -1996,6 +2209,15 @@ export class Style {
|
|
|
1996
2209
|
get styleView() {
|
|
1997
2210
|
return this.style_view;
|
|
1998
2211
|
}
|
|
2212
|
+
get hasBoxStyle() {
|
|
2213
|
+
const view = this.style_view;
|
|
2214
|
+
if (!view)
|
|
2215
|
+
return false;
|
|
2216
|
+
if (getInt8(view, StyleKeys.WIDTH_TYPE) !== 0 || getInt8(view, StyleKeys.HEIGHT_TYPE) !== 0)
|
|
2217
|
+
return true;
|
|
2218
|
+
const sides = [StyleKeys.PADDING_LEFT_VALUE, StyleKeys.PADDING_RIGHT_VALUE, StyleKeys.PADDING_TOP_VALUE, StyleKeys.PADDING_BOTTOM_VALUE, StyleKeys.BORDER_LEFT_VALUE, StyleKeys.BORDER_RIGHT_VALUE, StyleKeys.BORDER_TOP_VALUE, StyleKeys.BORDER_BOTTOM_VALUE];
|
|
2219
|
+
return sides.some((offset) => getFloat32(view, offset) > 0);
|
|
2220
|
+
}
|
|
1999
2221
|
get display() {
|
|
2000
2222
|
const mode = getInt8(this.style_view, StyleKeys.DISPLAY_MODE);
|
|
2001
2223
|
if (mode === 1 /* DisplayMode.Inline */) {
|
|
@@ -3762,7 +3984,7 @@ export class Style {
|
|
|
3762
3984
|
if (__APPLE__) {
|
|
3763
3985
|
return this.appleStyle.gridAutoRows;
|
|
3764
3986
|
}
|
|
3765
|
-
return '';
|
|
3987
|
+
return __WINDOWS__ ? (this.nativeView?.Style?.GridAutoRowsCss ?? '') : '';
|
|
3766
3988
|
}
|
|
3767
3989
|
set gridAutoRows(value) {
|
|
3768
3990
|
if (!this.nativeView) {
|
|
@@ -3790,7 +4012,7 @@ export class Style {
|
|
|
3790
4012
|
if (__APPLE__) {
|
|
3791
4013
|
return this.appleStyle.gridAutoColumns;
|
|
3792
4014
|
}
|
|
3793
|
-
return '';
|
|
4015
|
+
return __WINDOWS__ ? (this.nativeView?.Style?.GridAutoColumnsCss ?? '') : '';
|
|
3794
4016
|
}
|
|
3795
4017
|
set gridAutoColumns(value) {
|
|
3796
4018
|
if (!this.nativeView) {
|
|
@@ -3866,7 +4088,7 @@ export class Style {
|
|
|
3866
4088
|
if (__APPLE__) {
|
|
3867
4089
|
return this.appleStyle.gridColumn;
|
|
3868
4090
|
}
|
|
3869
|
-
return '';
|
|
4091
|
+
return __WINDOWS__ ? (this.nativeView?.Style?.GridColumnCss ?? '') : '';
|
|
3870
4092
|
}
|
|
3871
4093
|
get gridColumnStart() {
|
|
3872
4094
|
if (!this.nativeView) {
|
|
@@ -3878,7 +4100,7 @@ export class Style {
|
|
|
3878
4100
|
if (__APPLE__) {
|
|
3879
4101
|
return this.appleStyle.gridColumnStart;
|
|
3880
4102
|
}
|
|
3881
|
-
return '';
|
|
4103
|
+
return __WINDOWS__ ? (this.nativeView?.Style?.GridColumnStartCss ?? '') : '';
|
|
3882
4104
|
}
|
|
3883
4105
|
set gridColumnStart(value) {
|
|
3884
4106
|
if (!this.nativeView) {
|
|
@@ -3906,7 +4128,7 @@ export class Style {
|
|
|
3906
4128
|
if (__APPLE__) {
|
|
3907
4129
|
return this.appleStyle.gridColumnEnd;
|
|
3908
4130
|
}
|
|
3909
|
-
return '';
|
|
4131
|
+
return __WINDOWS__ ? (this.nativeView?.Style?.GridColumnEndCss ?? '') : '';
|
|
3910
4132
|
}
|
|
3911
4133
|
set gridColumnEnd(value) {
|
|
3912
4134
|
if (!this.nativeView) {
|
|
@@ -3950,7 +4172,7 @@ export class Style {
|
|
|
3950
4172
|
if (__APPLE__) {
|
|
3951
4173
|
return this.appleStyle.gridRow;
|
|
3952
4174
|
}
|
|
3953
|
-
return '';
|
|
4175
|
+
return __WINDOWS__ ? (this.nativeView?.Style?.GridRowCss ?? '') : '';
|
|
3954
4176
|
}
|
|
3955
4177
|
get gridRowStart() {
|
|
3956
4178
|
if (!this.nativeView) {
|
|
@@ -3962,7 +4184,7 @@ export class Style {
|
|
|
3962
4184
|
if (__APPLE__) {
|
|
3963
4185
|
return this.appleStyle.gridRowStart;
|
|
3964
4186
|
}
|
|
3965
|
-
return '';
|
|
4187
|
+
return __WINDOWS__ ? (this.nativeView?.Style?.GridRowStartCss ?? '') : '';
|
|
3966
4188
|
}
|
|
3967
4189
|
set gridRowStart(value) {
|
|
3968
4190
|
if (!this.nativeView) {
|
|
@@ -3990,7 +4212,7 @@ export class Style {
|
|
|
3990
4212
|
if (__APPLE__) {
|
|
3991
4213
|
return this.appleStyle.gridRowEnd;
|
|
3992
4214
|
}
|
|
3993
|
-
return '';
|
|
4215
|
+
return __WINDOWS__ ? (this.nativeView?.Style?.GridRowEndCss ?? '') : '';
|
|
3994
4216
|
}
|
|
3995
4217
|
set gridRowEnd(value) {
|
|
3996
4218
|
if (!this.nativeView) {
|
|
@@ -4034,7 +4256,7 @@ export class Style {
|
|
|
4034
4256
|
if (__APPLE__) {
|
|
4035
4257
|
return this.appleStyle.gridArea;
|
|
4036
4258
|
}
|
|
4037
|
-
return '';
|
|
4259
|
+
return __WINDOWS__ ? (this.nativeView?.Style?.GridAreaCss ?? '') : '';
|
|
4038
4260
|
}
|
|
4039
4261
|
set gridTemplateRows(value) {
|
|
4040
4262
|
if (!this.nativeView) {
|
|
@@ -4062,7 +4284,7 @@ export class Style {
|
|
|
4062
4284
|
if (__APPLE__) {
|
|
4063
4285
|
return this.appleStyle.gridTemplateRows;
|
|
4064
4286
|
}
|
|
4065
|
-
return '';
|
|
4287
|
+
return __WINDOWS__ ? (this.nativeView?.Style?.GridTemplateRowsCss ?? '') : '';
|
|
4066
4288
|
}
|
|
4067
4289
|
get gridTemplateColumns() {
|
|
4068
4290
|
if (!this.nativeView) {
|
|
@@ -4074,7 +4296,7 @@ export class Style {
|
|
|
4074
4296
|
if (__APPLE__) {
|
|
4075
4297
|
return this.appleStyle.gridTemplateColumns;
|
|
4076
4298
|
}
|
|
4077
|
-
return '';
|
|
4299
|
+
return __WINDOWS__ ? (this.nativeView?.Style?.GridTemplateColumnsCss ?? '') : '';
|
|
4078
4300
|
}
|
|
4079
4301
|
set gridTemplateColumns(value) {
|
|
4080
4302
|
if (!this.nativeView) {
|
|
@@ -4102,7 +4324,7 @@ export class Style {
|
|
|
4102
4324
|
if (__APPLE__) {
|
|
4103
4325
|
return this.appleStyle.gridTemplateAreas;
|
|
4104
4326
|
}
|
|
4105
|
-
return '';
|
|
4327
|
+
return __WINDOWS__ ? (this.nativeView?.Style?.GridTemplateAreasCss ?? '') : '';
|
|
4106
4328
|
}
|
|
4107
4329
|
set gridTemplateAreas(value) {
|
|
4108
4330
|
if (!this.nativeView) {
|
|
@@ -4469,7 +4691,7 @@ export class Style {
|
|
|
4469
4691
|
if (__APPLE__) {
|
|
4470
4692
|
return this.appleStyle.background;
|
|
4471
4693
|
}
|
|
4472
|
-
return '';
|
|
4694
|
+
return __WINDOWS__ ? (this._windowsCss.get('background') ?? '') : '';
|
|
4473
4695
|
}
|
|
4474
4696
|
set background(value) {
|
|
4475
4697
|
value = this.coerceCssStringValue(value);
|
|
@@ -4485,7 +4707,7 @@ export class Style {
|
|
|
4485
4707
|
if (__APPLE__) {
|
|
4486
4708
|
return this.appleStyle.backgroundImage;
|
|
4487
4709
|
}
|
|
4488
|
-
return '';
|
|
4710
|
+
return __WINDOWS__ ? (this._windowsCss.get('background-image') ?? '') : '';
|
|
4489
4711
|
}
|
|
4490
4712
|
set backgroundImage(value) {
|
|
4491
4713
|
value = this.coerceCssStringValue(value);
|
|
@@ -4501,7 +4723,7 @@ export class Style {
|
|
|
4501
4723
|
if (__APPLE__) {
|
|
4502
4724
|
return this.appleStyle.backgroundRepeat;
|
|
4503
4725
|
}
|
|
4504
|
-
return '';
|
|
4726
|
+
return __WINDOWS__ ? (this._windowsCss.get('background-repeat') ?? '') : '';
|
|
4505
4727
|
}
|
|
4506
4728
|
set backgroundRepeat(value) {
|
|
4507
4729
|
value = this.coerceCssStringValue(value);
|
|
@@ -4517,7 +4739,7 @@ export class Style {
|
|
|
4517
4739
|
if (__APPLE__) {
|
|
4518
4740
|
return this.appleStyle.backgroundPosition;
|
|
4519
4741
|
}
|
|
4520
|
-
return '';
|
|
4742
|
+
return __WINDOWS__ ? (this._windowsCss.get('background-position') ?? '') : '';
|
|
4521
4743
|
}
|
|
4522
4744
|
set backgroundPosition(value) {
|
|
4523
4745
|
value = this.coerceCssStringValue(value);
|
|
@@ -4533,7 +4755,7 @@ export class Style {
|
|
|
4533
4755
|
if (__APPLE__) {
|
|
4534
4756
|
return this.appleStyle.backgroundSize;
|
|
4535
4757
|
}
|
|
4536
|
-
return '';
|
|
4758
|
+
return __WINDOWS__ ? (this._windowsCss.get('background-size') ?? '') : '';
|
|
4537
4759
|
}
|
|
4538
4760
|
set backgroundSize(value) {
|
|
4539
4761
|
value = this.coerceCssStringValue(value);
|
|
@@ -4549,7 +4771,7 @@ export class Style {
|
|
|
4549
4771
|
if (__APPLE__) {
|
|
4550
4772
|
return this.appleStyle.backgroundClip;
|
|
4551
4773
|
}
|
|
4552
|
-
return '';
|
|
4774
|
+
return __WINDOWS__ ? (this._windowsCss.get('background-clip') ?? '') : '';
|
|
4553
4775
|
}
|
|
4554
4776
|
set backgroundClip(value) {
|
|
4555
4777
|
value = this.coerceCssStringValue(value);
|
|
@@ -4565,7 +4787,7 @@ export class Style {
|
|
|
4565
4787
|
if (__APPLE__) {
|
|
4566
4788
|
return this.appleStyle.backgroundPositionX;
|
|
4567
4789
|
}
|
|
4568
|
-
return '';
|
|
4790
|
+
return __WINDOWS__ ? (this._windowsCss.get('background-position-x') ?? '') : '';
|
|
4569
4791
|
}
|
|
4570
4792
|
set backgroundPositionX(value) {
|
|
4571
4793
|
value = cssInitialIfReset(this.coerceCssStringValue(value), '0%');
|
|
@@ -4581,7 +4803,7 @@ export class Style {
|
|
|
4581
4803
|
if (__APPLE__) {
|
|
4582
4804
|
return this.appleStyle.backgroundPositionY;
|
|
4583
4805
|
}
|
|
4584
|
-
return '';
|
|
4806
|
+
return __WINDOWS__ ? (this._windowsCss.get('background-position-y') ?? '') : '';
|
|
4585
4807
|
}
|
|
4586
4808
|
set backgroundPositionY(value) {
|
|
4587
4809
|
value = cssInitialIfReset(this.coerceCssStringValue(value), '0%');
|
|
@@ -4597,7 +4819,7 @@ export class Style {
|
|
|
4597
4819
|
if (__APPLE__) {
|
|
4598
4820
|
return this.appleStyle.backgroundOrigin;
|
|
4599
4821
|
}
|
|
4600
|
-
return '';
|
|
4822
|
+
return __WINDOWS__ ? (this._windowsCss.get('background-origin') ?? '') : '';
|
|
4601
4823
|
}
|
|
4602
4824
|
set backgroundOrigin(value) {
|
|
4603
4825
|
value = cssInitialIfReset(this.coerceCssStringValue(value), 'padding-box');
|
|
@@ -4613,7 +4835,7 @@ export class Style {
|
|
|
4613
4835
|
if (__APPLE__) {
|
|
4614
4836
|
return this.appleStyle.backgroundAttachment;
|
|
4615
4837
|
}
|
|
4616
|
-
return '';
|
|
4838
|
+
return __WINDOWS__ ? (this._windowsCss.get('background-attachment') ?? '') : '';
|
|
4617
4839
|
}
|
|
4618
4840
|
set backgroundAttachment(value) {
|
|
4619
4841
|
value = cssInitialIfReset(this.coerceCssStringValue(value), 'scroll');
|
|
@@ -4629,7 +4851,7 @@ export class Style {
|
|
|
4629
4851
|
if (__APPLE__) {
|
|
4630
4852
|
return this.appleStyle.backgroundBlendMode;
|
|
4631
4853
|
}
|
|
4632
|
-
return '';
|
|
4854
|
+
return __WINDOWS__ ? (this._windowsCss.get('background-blend-mode') ?? '') : '';
|
|
4633
4855
|
}
|
|
4634
4856
|
set backgroundBlendMode(value) {
|
|
4635
4857
|
value = cssInitialIfReset(this.coerceCssStringValue(value), 'normal');
|
|
@@ -4735,7 +4957,7 @@ export class Style {
|
|
|
4735
4957
|
}
|
|
4736
4958
|
get objectFit() {
|
|
4737
4959
|
const map = ['contain', 'cover', 'fill', 'none', 'scale-down'];
|
|
4738
|
-
return map[getUint8(this.style_view, StyleKeys.OBJECT_FIT)] ?? '
|
|
4960
|
+
return map[getUint8(this.style_view, StyleKeys.OBJECT_FIT)] ?? 'fill';
|
|
4739
4961
|
}
|
|
4740
4962
|
/** Read by `Img`; previously reachable only through the native HTML parser. */
|
|
4741
4963
|
set objectFit(value) {
|
|
@@ -4784,7 +5006,7 @@ export class Style {
|
|
|
4784
5006
|
if (__APPLE__) {
|
|
4785
5007
|
return this.appleStyle.fontFamily;
|
|
4786
5008
|
}
|
|
4787
|
-
return '';
|
|
5009
|
+
return __WINDOWS__ ? (this._windowsCss.get('font-family') ?? '') : '';
|
|
4788
5010
|
}
|
|
4789
5011
|
// `font-family` is a native Style property (builds a FontFace), not a
|
|
4790
5012
|
// style-buffer field, so it can't be written through the shared buffer.
|
|
@@ -4864,7 +5086,7 @@ export class Style {
|
|
|
4864
5086
|
if (__APPLE__) {
|
|
4865
5087
|
return this.appleStyle.border;
|
|
4866
5088
|
}
|
|
4867
|
-
return '';
|
|
5089
|
+
return __WINDOWS__ ? (this._windowsCss.get('border') ?? '') : '';
|
|
4868
5090
|
}
|
|
4869
5091
|
set border(value) {
|
|
4870
5092
|
value = this.coerceCssStringValue(value);
|
|
@@ -4879,7 +5101,7 @@ export class Style {
|
|
|
4879
5101
|
if (__APPLE__) {
|
|
4880
5102
|
return this.appleStyle.paddingCss;
|
|
4881
5103
|
}
|
|
4882
|
-
return '';
|
|
5104
|
+
return __WINDOWS__ ? (this._windowsCss.get('padding') ?? '') : '';
|
|
4883
5105
|
}
|
|
4884
5106
|
set paddingCss(value) {
|
|
4885
5107
|
// a bare number is dip, matching other numeric setters; Android's
|
|
@@ -4896,7 +5118,7 @@ export class Style {
|
|
|
4896
5118
|
if (__APPLE__) {
|
|
4897
5119
|
return this.appleStyle.marginCss;
|
|
4898
5120
|
}
|
|
4899
|
-
return '';
|
|
5121
|
+
return __WINDOWS__ ? (this._windowsCss.get('margin') ?? '') : '';
|
|
4900
5122
|
}
|
|
4901
5123
|
set marginCss(value) {
|
|
4902
5124
|
// See the comment on `paddingCss` above — same dip-vs-px mislabeling fix.
|
|
@@ -4912,7 +5134,7 @@ export class Style {
|
|
|
4912
5134
|
if (__APPLE__) {
|
|
4913
5135
|
return this.appleStyle.insetCss;
|
|
4914
5136
|
}
|
|
4915
|
-
return '';
|
|
5137
|
+
return __WINDOWS__ ? (this._windowsCss.get('inset') ?? '') : '';
|
|
4916
5138
|
}
|
|
4917
5139
|
set insetCss(value) {
|
|
4918
5140
|
// See the comment on `paddingCss` above — same dip-vs-px mislabeling fix.
|
|
@@ -4957,7 +5179,7 @@ export class Style {
|
|
|
4957
5179
|
if (__APPLE__) {
|
|
4958
5180
|
return this.appleStyle.filter;
|
|
4959
5181
|
}
|
|
4960
|
-
return '';
|
|
5182
|
+
return __WINDOWS__ ? (this._windowsCss.get('filter') ?? '') : '';
|
|
4961
5183
|
}
|
|
4962
5184
|
set filter(value) {
|
|
4963
5185
|
value = this.coerceCssStringValue(value);
|
|
@@ -4973,7 +5195,7 @@ export class Style {
|
|
|
4973
5195
|
if (__APPLE__) {
|
|
4974
5196
|
return this.appleStyle.boxShadow;
|
|
4975
5197
|
}
|
|
4976
|
-
return '';
|
|
5198
|
+
return __WINDOWS__ ? (this._windowsCss.get('box-shadow') ?? '') : '';
|
|
4977
5199
|
}
|
|
4978
5200
|
set 'box-shadow'(value) {
|
|
4979
5201
|
this.boxShadow = value;
|
|
@@ -4995,7 +5217,7 @@ export class Style {
|
|
|
4995
5217
|
if (__APPLE__) {
|
|
4996
5218
|
return this.appleStyle.transform;
|
|
4997
5219
|
}
|
|
4998
|
-
return '';
|
|
5220
|
+
return __WINDOWS__ ? (this._windowsCss.get('transform') ?? '') : '';
|
|
4999
5221
|
}
|
|
5000
5222
|
set transform(value) {
|
|
5001
5223
|
value = this.coerceCssStringValue(value);
|
|
@@ -5159,7 +5381,7 @@ export class Style {
|
|
|
5159
5381
|
if (__APPLE__) {
|
|
5160
5382
|
return this.appleStyle.textShadow;
|
|
5161
5383
|
}
|
|
5162
|
-
return '';
|
|
5384
|
+
return __WINDOWS__ ? (this._windowsCss.get('text-shadow') ?? '') : '';
|
|
5163
5385
|
}
|
|
5164
5386
|
set textShadow(value) {
|
|
5165
5387
|
value = this.coerceCssStringValue(value);
|
|
@@ -5257,7 +5479,7 @@ export class Style {
|
|
|
5257
5479
|
if (__APPLE__) {
|
|
5258
5480
|
return this.appleStyle.cornerShape;
|
|
5259
5481
|
}
|
|
5260
|
-
return '';
|
|
5482
|
+
return __WINDOWS__ ? (this._windowsCss.get('corner-shape') ?? '') : '';
|
|
5261
5483
|
}
|
|
5262
5484
|
get cornerShapeTopLeft() {
|
|
5263
5485
|
if (!this.nativeView)
|
|
@@ -5268,7 +5490,7 @@ export class Style {
|
|
|
5268
5490
|
if (__APPLE__) {
|
|
5269
5491
|
return this.appleStyle.cornerShapeTopLeft;
|
|
5270
5492
|
}
|
|
5271
|
-
return '';
|
|
5493
|
+
return __WINDOWS__ ? (this._windowsCss.get('corner-shape-top-left') ?? '') : '';
|
|
5272
5494
|
}
|
|
5273
5495
|
set cornerShapeTopLeft(value) {
|
|
5274
5496
|
value = this.coerceCssStringValue(value);
|
|
@@ -5283,7 +5505,7 @@ export class Style {
|
|
|
5283
5505
|
if (__APPLE__) {
|
|
5284
5506
|
return this.appleStyle.cornerShapeTopRight;
|
|
5285
5507
|
}
|
|
5286
|
-
return '';
|
|
5508
|
+
return __WINDOWS__ ? (this._windowsCss.get('corner-shape-top-right') ?? '') : '';
|
|
5287
5509
|
}
|
|
5288
5510
|
set cornerShapeTopRight(value) {
|
|
5289
5511
|
value = this.coerceCssStringValue(value);
|
|
@@ -5298,7 +5520,7 @@ export class Style {
|
|
|
5298
5520
|
if (__APPLE__) {
|
|
5299
5521
|
return this.appleStyle.cornerShapeBottomRight;
|
|
5300
5522
|
}
|
|
5301
|
-
return '';
|
|
5523
|
+
return __WINDOWS__ ? (this._windowsCss.get('corner-shape-bottom-right') ?? '') : '';
|
|
5302
5524
|
}
|
|
5303
5525
|
set cornerShapeBottomRight(value) {
|
|
5304
5526
|
value = this.coerceCssStringValue(value);
|
|
@@ -5313,7 +5535,7 @@ export class Style {
|
|
|
5313
5535
|
if (__APPLE__) {
|
|
5314
5536
|
return this.appleStyle.cornerShapeBottomLeft;
|
|
5315
5537
|
}
|
|
5316
|
-
return '';
|
|
5538
|
+
return __WINDOWS__ ? (this._windowsCss.get('corner-shape-bottom-left') ?? '') : '';
|
|
5317
5539
|
}
|
|
5318
5540
|
set cornerShapeBottomLeft(value) {
|
|
5319
5541
|
value = this.coerceCssStringValue(value);
|
|
@@ -5461,7 +5683,7 @@ export class Style {
|
|
|
5461
5683
|
if (__APPLE__) {
|
|
5462
5684
|
return this.appleStyle.borderImage;
|
|
5463
5685
|
}
|
|
5464
|
-
return '';
|
|
5686
|
+
return __WINDOWS__ ? (this._windowsCss.get('border-image') ?? '') : '';
|
|
5465
5687
|
}
|
|
5466
5688
|
set borderImage(value) {
|
|
5467
5689
|
value = this.coerceCssStringValue(value);
|
|
@@ -5508,7 +5730,7 @@ export class Style {
|
|
|
5508
5730
|
if (__APPLE__) {
|
|
5509
5731
|
return this.appleStyle.fontFeatureSettings;
|
|
5510
5732
|
}
|
|
5511
|
-
return 'normal';
|
|
5733
|
+
return __WINDOWS__ ? this._windowsCss.get('font-feature-settings') || 'normal' : 'normal';
|
|
5512
5734
|
}
|
|
5513
5735
|
set fontFeatureSettings(value) {
|
|
5514
5736
|
value = this.coerceCssStringValue(value);
|
|
@@ -5614,7 +5836,7 @@ export class Style {
|
|
|
5614
5836
|
if (__APPLE__) {
|
|
5615
5837
|
return this.appleStyle.backdropFilter;
|
|
5616
5838
|
}
|
|
5617
|
-
return '';
|
|
5839
|
+
return __WINDOWS__ ? (this._windowsCss.get('backdrop-filter') ?? '') : '';
|
|
5618
5840
|
}
|
|
5619
5841
|
set backdropFilter(value) {
|
|
5620
5842
|
value = this.coerceCssStringValue(value);
|