mirror of
https://github.com/NativeScript/NativeScript.git
synced 2025-11-05 13:26:48 +08:00
Merge remote-tracking branch 'origin/master' into merge-6.2.1-release-in-master
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -16,6 +16,7 @@ package-lock.json
|
|||||||
.DS_Store
|
.DS_Store
|
||||||
.nsbuildinfo
|
.nsbuildinfo
|
||||||
tsdoc-metadata.json
|
tsdoc-metadata.json
|
||||||
|
thumbs.db
|
||||||
|
|
||||||
# IDEs and editors
|
# IDEs and editors
|
||||||
/.idea
|
/.idea
|
||||||
|
|||||||
@@ -7,6 +7,9 @@ script:
|
|||||||
- npm run setup
|
- npm run setup
|
||||||
- npm run unit-test
|
- npm run unit-test
|
||||||
|
|
||||||
|
# public API changes check
|
||||||
|
- npm run api-extractor-ci
|
||||||
|
|
||||||
# circular references check
|
# circular references check
|
||||||
- cd tests && npm i
|
- cd tests && npm i
|
||||||
- node_modules/.bin/webpack --env.android
|
- node_modules/.bin/webpack --env.android
|
||||||
|
|||||||
@@ -69,6 +69,7 @@ git checkout -b <my-fix-branch> master
|
|||||||
- Rebase your changes to the latest master: `git pull --rebase upstream master`.
|
- Rebase your changes to the latest master: `git pull --rebase upstream master`.
|
||||||
- Ensure all unit test are green for Android and iOS. Check [running unit tests](DevelopmentWorkflow.md#running-unit-tests).
|
- Ensure all unit test are green for Android and iOS. Check [running unit tests](DevelopmentWorkflow.md#running-unit-tests).
|
||||||
- Ensure your changes pass tslint validation. (run `npm run tslint` in the root of the repo).
|
- Ensure your changes pass tslint validation. (run `npm run tslint` in the root of the repo).
|
||||||
|
- If you've made changes to a public API, make sure you update and add the `api-reports/NativeScript.api.md` file to the PR. (run `npm run api-extractor` to update the api-report and definitions).
|
||||||
|
|
||||||
6. Push your fork. If you have rebased you might have to use force-push your branch:
|
6. Push your fork. If you have rebased you might have to use force-push your branch:
|
||||||
```
|
```
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ Check out the links below to get started:
|
|||||||
|
|
||||||
## For CTOs
|
## For CTOs
|
||||||
|
|
||||||
Making the right technology choices is key to success. Our [CTO’s guide to NativeScript](https://www.nativescript.org/ctos-guide) helps you understand why NativeScript is the right choice for your next mobile project.
|
Making the right technology choices is the key to success. Our [CTO’s guide to NativeScript](https://www.nativescript.org/ctos-guide) helps you understand why NativeScript is the right choice for your next mobile project.
|
||||||
|
|
||||||
## Getting Started and Installation
|
## Getting Started and Installation
|
||||||
|
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ extract_snippets() {
|
|||||||
|
|
||||||
npm install markdown-snippet-injector
|
npm install markdown-snippet-injector
|
||||||
|
|
||||||
for SNIPPET_DIR in {tests/app,apps/app,tns-core-modules} ; do
|
for SNIPPET_DIR in {tests/app,apps/app,nativescript-core} ; do
|
||||||
echo "Extracting snippets from: $SNIPPET_DIR"
|
echo "Extracting snippets from: $SNIPPET_DIR"
|
||||||
node "$BIN" --root="$SNIPPET_DIR" --target="$TARGET_DIR" \
|
node "$BIN" --root="$SNIPPET_DIR" --target="$TARGET_DIR" \
|
||||||
--sourceext=".js|.ts|.xml|.html|.css"
|
--sourceext=".js|.ts|.xml|.html|.css"
|
||||||
|
|||||||
@@ -1,4 +1,7 @@
|
|||||||
{
|
{
|
||||||
|
"rulesDirectory": [
|
||||||
|
"@nativescript/tslint-rules"
|
||||||
|
],
|
||||||
"rules": {
|
"rules": {
|
||||||
"arrow-return-shorthand": true,
|
"arrow-return-shorthand": true,
|
||||||
"class-name": true,
|
"class-name": true,
|
||||||
@@ -9,6 +12,7 @@
|
|||||||
"jsdoc-format": false,
|
"jsdoc-format": false,
|
||||||
"max-line-length": [false, 120],
|
"max-line-length": [false, 120],
|
||||||
"newline-before-return": true,
|
"newline-before-return": true,
|
||||||
|
"no-android-resources": true,
|
||||||
"no-arg": true,
|
"no-arg": true,
|
||||||
"no-bitwise": false,
|
"no-bitwise": false,
|
||||||
"no-consecutive-blank-lines": true,
|
"no-consecutive-blank-lines": true,
|
||||||
|
|||||||
@@ -247,14 +247,3 @@ export class NetworkDomainDebugger implements inspectorCommandTypes.NetworkDomai
|
|||||||
return resourceData;
|
return resourceData;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@inspectorCommands.DomainDispatcher("Runtime")
|
|
||||||
export class RuntimeDomainDebugger {
|
|
||||||
constructor() {
|
|
||||||
__inspectorSendEvent(`{"method":"Runtime.executionContextCreated","params":{"context":{"id":1,"origin":"http://main.xml","name":"","auxData":{"isDefault":true,"frameId":"${frameId}"}}}}`);
|
|
||||||
}
|
|
||||||
|
|
||||||
compileScript(): { scriptId?: string, exceptionDetails?: Object } {
|
|
||||||
return {};
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
"main": "index",
|
"main": "index",
|
||||||
"types": "index.d.ts",
|
"types": "index.d.ts",
|
||||||
"description": "Telerik NativeScript Core Modules",
|
"description": "Telerik NativeScript Core Modules",
|
||||||
"version": "6.2.1",
|
"version": "6.3.0",
|
||||||
"homepage": "https://www.nativescript.org",
|
"homepage": "https://www.nativescript.org",
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
|
|||||||
@@ -58,19 +58,16 @@ export function _getStyleProperties(): CssProperty<any, any>[] {
|
|||||||
return getPropertiesFromMap(cssSymbolPropertyMap) as CssProperty<any, any>[];
|
return getPropertiesFromMap(cssSymbolPropertyMap) as CssProperty<any, any>[];
|
||||||
}
|
}
|
||||||
|
|
||||||
const cssVariableExpressionRegexp = /\bvar\(\s*(--[^,\s]+?)(?:\s*,\s*(.+))?\s*\)/;
|
|
||||||
const cssVariableAllExpressionsRegexp = /\bvar\(\s*(--[^,\s]+?)(?:\s*,\s*(.+))?\s*\)/g;
|
|
||||||
|
|
||||||
export function isCssVariable(property: string) {
|
export function isCssVariable(property: string) {
|
||||||
return /^--[^,\s]+?$/.test(property);
|
return /^--[^,\s]+?$/.test(property);
|
||||||
}
|
}
|
||||||
|
|
||||||
export function isCssCalcExpression(value: string) {
|
export function isCssCalcExpression(value: string) {
|
||||||
return /\bcalc\(/.test(value);
|
return value.includes("calc(");
|
||||||
}
|
}
|
||||||
|
|
||||||
export function isCssVariableExpression(value: string) {
|
export function isCssVariableExpression(value: string) {
|
||||||
return cssVariableExpressionRegexp.test(value);
|
return value.includes("var(--");
|
||||||
}
|
}
|
||||||
|
|
||||||
export function _evaluateCssVariableExpression(view: ViewBase, cssName: string, value: string): string {
|
export function _evaluateCssVariableExpression(view: ViewBase, cssName: string, value: string): string {
|
||||||
@@ -90,26 +87,28 @@ export function _evaluateCssVariableExpression(view: ViewBase, cssName: string,
|
|||||||
while (lastValue !== output) {
|
while (lastValue !== output) {
|
||||||
lastValue = output;
|
lastValue = output;
|
||||||
|
|
||||||
output = output.replace(cssVariableAllExpressionsRegexp, (matchStr, cssVariableName: string, fallbackStr: string) => {
|
const idx = output.lastIndexOf("var(");
|
||||||
const cssVariableValue = view.style.getCssVariable(cssVariableName);
|
if (idx === -1) {
|
||||||
if (cssVariableValue !== null) {
|
continue;
|
||||||
return cssVariableValue;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fallbackStr) {
|
const endIdx = output.indexOf(")", idx);
|
||||||
// css-variable not found, using fallback-string.
|
if (endIdx === -1) {
|
||||||
const fallbackOutput = _evaluateCssVariableExpression(view, cssName, fallbackStr);
|
continue;
|
||||||
if (fallbackOutput) {
|
|
||||||
// If the fallback have multiple values, return the first of them.
|
|
||||||
return fallbackOutput.split(",")[0];
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Couldn't find a value for the css-variable or the fallback, return "unset"
|
const matched = output.substring(idx + 4, endIdx).split(",").map((v) => v.trim()).filter((v) => !!v);
|
||||||
traceWrite(`Failed to get value for css-variable "${cssVariableName}" used in "${cssName}"=[${value}] to ${view}`, traceCategories.Style, traceMessageType.error);
|
const cssVariableName = matched.shift();
|
||||||
|
let cssVariableValue = view.style.getCssVariable(cssVariableName);
|
||||||
|
if (cssVariableValue === null && matched.length) {
|
||||||
|
cssVariableValue = _evaluateCssVariableExpression(view, cssName, matched.join(", ")).split(",")[0];
|
||||||
|
}
|
||||||
|
|
||||||
return "unset";
|
if (!cssVariableValue) {
|
||||||
});
|
cssVariableValue = "unset";
|
||||||
|
}
|
||||||
|
|
||||||
|
output = `${output.substring(0, idx)}${cssVariableValue}${output.substring(endIdx + 1)}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
return output;
|
return output;
|
||||||
|
|||||||
@@ -9,6 +9,7 @@
|
|||||||
"license": "Apache-2.0",
|
"license": "Apache-2.0",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@microsoft/api-extractor": "^7.5.0",
|
"@microsoft/api-extractor": "^7.5.0",
|
||||||
|
"@nativescript/tslint-rules": "0.0.5",
|
||||||
"@types/chai": "^4.0.4",
|
"@types/chai": "^4.0.4",
|
||||||
"@types/mocha": "^2.2.42",
|
"@types/mocha": "^2.2.42",
|
||||||
"@types/node": "~10.12.18",
|
"@types/node": "~10.12.18",
|
||||||
@@ -47,6 +48,7 @@
|
|||||||
"unit-test-watch": "mocha-typescript-watch -p unit-tests/tsconfig.json --opts unit-tests/mocha.opts",
|
"unit-test-watch": "mocha-typescript-watch -p unit-tests/tsconfig.json --opts unit-tests/mocha.opts",
|
||||||
"dev-link-tns-core-modules-widgets": "(cd tns-core-modules-widgets/dist/package && npm link) && (cd nativescript-core && npm i ../tns-core-modules-widgets/dist/package --save)",
|
"dev-link-tns-core-modules-widgets": "(cd tns-core-modules-widgets/dist/package && npm link) && (cd nativescript-core && npm i ../tns-core-modules-widgets/dist/package --save)",
|
||||||
"api-extractor": "api-extractor run --local --verbose && (cd nativescript-core && cat nativescript-core.header nativescript-core.d.ts > tmp_file && mv tmp_file nativescript-core.d.ts)",
|
"api-extractor": "api-extractor run --local --verbose && (cd nativescript-core && cat nativescript-core.header nativescript-core.d.ts > tmp_file && mv tmp_file nativescript-core.d.ts)",
|
||||||
|
"api-extractor-ci": "api-extractor run --verbose",
|
||||||
"typedoc": "npm run api-extractor && typedoc --tsconfig tsconfig.typedoc.json",
|
"typedoc": "npm run api-extractor && typedoc --tsconfig tsconfig.typedoc.json",
|
||||||
"typedoc-dev": "npm run typedoc && cd bin/dist/apiref && npx http-server",
|
"typedoc-dev": "npm run typedoc && cd bin/dist/apiref && npx http-server",
|
||||||
"build-core": "sh ./build/build-core.sh",
|
"build-core": "sh ./build/build-core.sh",
|
||||||
|
|||||||
@@ -1789,6 +1789,7 @@ export function test_nested_css_calc_and_variables() {
|
|||||||
|
|
||||||
const cssVarName = `--my-width-factor-base-${Date.now()}`;
|
const cssVarName = `--my-width-factor-base-${Date.now()}`;
|
||||||
const cssVarName2 = `--my-width-factor-${Date.now()}`;
|
const cssVarName2 = `--my-width-factor-${Date.now()}`;
|
||||||
|
const undefinedCssVarName = `--my-undefined-variable-${Date.now()}`;
|
||||||
|
|
||||||
const stack = new stackModule.StackLayout();
|
const stack = new stackModule.StackLayout();
|
||||||
stack.css = `
|
stack.css = `
|
||||||
@@ -1809,6 +1810,10 @@ export function test_nested_css_calc_and_variables() {
|
|||||||
StackLayout.nested {
|
StackLayout.nested {
|
||||||
${cssVarName2}: calc(var(${cssVarName}) * 2);
|
${cssVarName2}: calc(var(${cssVarName}) * 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
StackLayout.nested-fallback {
|
||||||
|
width: calc(calc(var(${undefinedCssVarName}, 16) / 2) * 2));
|
||||||
|
}
|
||||||
`;
|
`;
|
||||||
|
|
||||||
const label = new labelModule.Label();
|
const label = new labelModule.Label();
|
||||||
@@ -1841,6 +1846,9 @@ export function test_nested_css_calc_and_variables() {
|
|||||||
|
|
||||||
stack.className = "nested";
|
stack.className = "nested";
|
||||||
TKUnit.assertDeepEqual(stack.width, { unit: "%", value: 1 }, "Stack - width === 100%");
|
TKUnit.assertDeepEqual(stack.width, { unit: "%", value: 1 }, "Stack - width === 100%");
|
||||||
|
|
||||||
|
stack.className = "nested-fallback";
|
||||||
|
TKUnit.assertDeepEqual(stack.width, 16, "Stack - width === 16");
|
||||||
}
|
}
|
||||||
|
|
||||||
export function test_css_variable_is_applied_to_normal_properties() {
|
export function test_css_variable_is_applied_to_normal_properties() {
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
"main": "index",
|
"main": "index",
|
||||||
"types": "index.d.ts",
|
"types": "index.d.ts",
|
||||||
"description": "Telerik NativeScript Core Modules",
|
"description": "Telerik NativeScript Core Modules",
|
||||||
"version": "6.2.1",
|
"version": "6.3.0",
|
||||||
"homepage": "https://www.nativescript.org",
|
"homepage": "https://www.nativescript.org",
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
|
|||||||
@@ -1 +1,2 @@
|
|||||||
// Not needed. Only added for back-compatibility as some apps refer to this file. d
|
// Not needed. Only added for back-compatibility as some apps refer to this file.
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "tns-core-modules-widgets",
|
"name": "tns-core-modules-widgets",
|
||||||
"version": "6.2.1",
|
"version": "6.3.0",
|
||||||
"description": "Native widgets used in the NativeScript framework.",
|
"description": "Native widgets used in the NativeScript framework.",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"test": "echo \"Error: no test specified\" && exit 1"
|
"test": "echo \"Error: no test specified\" && exit 1"
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "tns-platform-declarations",
|
"name": "tns-platform-declarations",
|
||||||
"version": "6.2.1",
|
"version": "6.3.0",
|
||||||
"description": "Platform-specific TypeScript declarations for NativeScript for accessing native objects",
|
"description": "Platform-specific TypeScript declarations for NativeScript for accessing native objects",
|
||||||
"main": "",
|
"main": "",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|||||||
Reference in New Issue
Block a user