tabris 3.11.0-dev.20260216 → 3.11.0-dev.20260218
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/boot.js +1 -1
- package/boot.min.js +1 -1
- package/package.json +1 -1
- package/tabris.d.ts +41 -13
- package/tabris.js +71 -35
- package/tabris.min.js +1 -1
package/boot.js
CHANGED
package/boot.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(){"use strict";const t=["",".js",".json","/package.json","/index.js","/index.json"],e=["/package.json","/index.js","/index.json"],r="(function (module, exports, require, __filename, __dirname) { ",n="\n});";class o{constructor(t,e,r){this.exports={},this._cache={},this._paths={},this.id=t||"",this.parent=e||null;let n={},o=!1;const i=this.require.bind(this);Object.defineProperty(this,"_cache",{enumerable:!1,writable:!1,value:this.parent?this.parent._cache:this._cache}),Object.defineProperty(this,"_paths",{enumerable:!1,writable:!1,value:this.parent?this.parent._paths:this._paths}),t&&(this._cache[t]=this),Object.defineProperty(this,"exports",{set(t){n=t},get(){return o||(o=!0,"function"==typeof r&&t?r(this,n,i,t.slice(1),l(t).slice(1)):r instanceof Object&&(n=r)),n}}),function(t){if((null
|
|
1
|
+
!function(){"use strict";const t=["",".js",".json","/package.json","/index.js","/index.json"],e=["/package.json","/index.js","/index.json"],r="(function (module, exports, require, __filename, __dirname) { ",n="\n});";class o{constructor(t,e,r){this.exports={},this._cache={},this._paths={},this.id=t||"",this.parent=e||null;let n={},o=!1;const i=this.require.bind(this);Object.defineProperty(this,"_cache",{enumerable:!1,writable:!1,value:this.parent?this.parent._cache:this._cache}),Object.defineProperty(this,"_paths",{enumerable:!1,writable:!1,value:this.parent?this.parent._paths:this._paths}),t&&(this._cache[t]=this),Object.defineProperty(this,"exports",{set(t){n=t},get(){return o||(o=!0,"function"==typeof r&&t?r(this,n,i,t.slice(1),l(t).slice(1)):r instanceof Object&&(n=r)),n}}),function(t){if((null==t?void 0:t.id.endsWith("package.json"))&&t.exports&&"browser"in t.exports){const e=t.id+' has a "browser" field.\nThis module may function better with a file bundler';console.print?console.print("warn",e):console.warn(e)}}(this)}require(t){if("."!==t.slice(0,1)){const e=this._cache[t];if(e)return e.exports;const r=function(t){if(-1!==this.id.indexOf("/node_modules"))return null;let e,r,n=0;for(const o in this._paths){const i=o.indexOf("*");if(-1!==i){const s=o.substr(0,i),a=o.substr(i+1);t.length>=s.length+a.length&&t.startsWith(s)&&t.endsWith(a)&&n<s.length&&(n=s.length,e=o,r=t.substr(s.length,t.length-a.length))}else if(o===t){e=o,r=void 0;break}}if(!e)return null;const o=[];for(const n of this._paths[e]){const e=r?n.replace("*",r):n;o.push(e);const s=i.call(this,e,c(t));if(s)return s}throw new Error(`Cannot find module "${t}" at "${o.join('" or "')}"`)}.call(this,t);return r?r.exports:(this._cache[t]=!1,function(t){let e=l(this.id);const r=c(t),n="/node_modules/"+t;let o;do{o=i.call(this,h(e+n),r),e=h(e+"/.."),e&&"/node_modules"===e.slice(-1*"/node_modules".length)&&(e=h(e+"/.."))}while(!o&&e);if(!o)throw new Error("Cannot find module '"+t+"'");return o}.call(this,t).exports)}return function(t){const e=h(l(this.id)+"/"+t),r=i.call(this,e,c(t));if(!r)throw new Error("Cannot find module '"+t+"'");return r}.call(this,t).exports}static createLoader(t){let e;try{e=tabris._client.loadAndExecute(t,r,n)}catch(e){throw new Error("Could not parse "+t+":"+e)}return e.loadError?null:e.executeResult}static execute(t,e){return tabris._client.execute(t,e).executeResult}static readJSON(t){const e=this.load(t);if(e)try{return JSON.parse(e)}catch(e){throw new Error("Could not parse "+t+": "+(null==e?void 0:e.message))}}static getSourceMap(){return null}static load(t){return tabris._client.load(t)}static createRequire(t){if("string"!=typeof t||"/"!==t[0])throw new Error(`The argument 'path' must be an absolute path string. Received ${t}`);return function(e){return o.root.require(h(l("."+t)+"/"+e))}}static define(t,e){if(2!==arguments.length)throw new Error(`Expected exactly 2 arguments, got ${arguments.length}`);if("string"!=typeof t)throw new Error("Expected argument 1 to be of type string");if("/"!==t.charAt(0))throw new Error('Path needs to start with a "/"');const r="."+t;if(o.root._cache[r])throw new Error(`Module "${t}" is already defined'`);if(!1===o.root._cache[r])throw new Error(`Module "${t}" was accessed before it was defined'`);if(e instanceof o)throw new Error("Expected argument 2 to be module exports, got a module instance");new o("."+t,this.root,t=>t.exports=e)}static addPath(t,e){if(t instanceof Object){!function(t){if(!("paths"in t))throw new Error('Missing option "paths"');if(!(t.paths instanceof Object))throw new Error('Expected option "paths" to be an object');if("baseUrl"in t&&"string"!=typeof t.baseUrl)throw new Error('Expected option "baseUrl" to be a string');if(t.baseUrl&&!t.baseUrl.startsWith("/"))throw new Error('Expected baseUrl to start with "/"')}(t);for(const e in t.paths){const r=t.paths[e];if(!Array.isArray(r)||r.some(t=>"string"!=typeof t))throw new Error(`Expected paths for pattern "${e}" to be array of strings`);this.addPath(e,r.map(e=>t.baseUrl?"./"+h(t.baseUrl+"/"+e):e))}}else{if(arguments.length<=1)throw new Error("Expected argument 1 to be of type object");if(function(t,e){if("string"!=typeof t)throw new Error("Expected argument 1 to be of type string");if(!Array.isArray(e))throw new Error(`Expected paths for pattern "${t}" to be array of strings`);if(e.some(t=>"string"!=typeof t))throw new Error(`Expected paths for pattern "${t}" to be array of strings`);if(""===t)throw new Error("Pattern not be empty string");if(/^[./]./.test(t))throw new Error(`Pattern may not start with "${t.charAt(0)}"`);if(t.split("*").length>2)throw new Error('Pattern may contain only one "*"');if(t.includes(" "))throw new Error("Pattern may not contain spaces");if(0===e.length)throw new Error(`Paths array for pattern "${t}" is empty`);const r=t.includes("*");e.forEach(e=>{if(!e.startsWith("./"))throw new Error(`Expected path "${e}" for pattern "${t}" to start with "./"`);const n=e.split("*").length-1;if(r){if(1!==n)throw new Error(`Expected path "${e}" for pattern "${t}" to contain exactly one "*"`)}else if(0!==n)throw new Error(`Expected path "${e}" for pattern "${t}" to not contain "*"`)})}(t,e),this.root._paths[t])throw new Error(`Pattern "${t}" is already registered`);const r=t.split("*")[0];if(Object.keys(this.root._cache).some(t=>t.startsWith(r)))throw new Error(`Can not add pattern "${t}" since a matching module was already imported'`);this.root._paths[t]=e}}}function i(e,r){if(e)for(const n of r){let r=a.call(this,e+n);if("/package.json"===n)if(s(r)){const n=h(e+"/"+s(r));r=i.call(this,n,t)}else r=null;if(r)return r}return null}function s(t){return t&&t.exports&&t.exports.main}function a(t){if(t in this._cache)return this._cache[t]||null;if(".json"===t.slice(-5)){const e=o.readJSON(t);if(e)return new o(t,this,e)}else{const e=o.createLoader(t);if(e)return new o(t,this,e)}return this._cache[t]=!1,null}function c(r){return"/"===r.slice(-1)?e:t}function l(t){return t&&"."===t.slice(0,1)?t.slice(0,t.lastIndexOf("/")):"./"}function h(t){const e=[],r=t.split("/");for(const t of r)if(".."===t){const t=e.pop();if(!t||"."===t)return""}else("."===t?0===e.length:""!==t)&&e.push(t);return e.join("/")}function u(t,e){console.print?console.print("error",t+(e.stack||e)):console.error(t,e)}o.root=new o,global.window=global.self=global,global.tabris={},tabris._start=function(t){try{tabris._client=t;const e=o.root;global.module=e,global.require=e.require.bind(e),global.exports=e.exports,global.__dirname="./",global.__filename=".";try{e.require("tabris"),tabris._client=t}catch(t){return void u("Could not load tabris module:",t)}tabris.Module=o,tabris._defineModule=function(t,r){return new o(t,e,r)};const r=document.createElement("script");r.src="./cordova.js",document.head.appendChild(r);const n=global.workerScriptPath;delete global.workerScriptPath;const i=void 0!==n;tabris._init&&tabris._init(t,{headless:i});const s=function(){try{global.debugClient&&!i&&global.debugClient.start(e),e.require("./"+(i?n:"")),tabris.flush()}catch(t){u("Could not load "+(i?"worker":"main module")+":",t)}};tabris._entryPoint?(tabris._entryPoint(s),tabris._entryPoint=null):s(),tabris.flush()}catch(t){u("Could not start tabris:",t)}},tabris._notify=function(...t){return tabris._notify.apply(this,t)}}();
|
package/package.json
CHANGED
package/tabris.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Type definitions for Tabris.js 3.11.0-dev.
|
|
1
|
+
// Type definitions for Tabris.js 3.11.0-dev.20260218+0310
|
|
2
2
|
/// <reference path="globals.d.ts" />
|
|
3
3
|
|
|
4
4
|
// General helper types
|
|
@@ -7344,12 +7344,27 @@ export class Widget<TData extends object = any> extends NativeObject {
|
|
|
7344
7344
|
*/
|
|
7345
7345
|
accessibilityHidden: boolean;
|
|
7346
7346
|
|
|
7347
|
+
/**
|
|
7348
|
+
* Provides a hint about what happens when the element is activated.
|
|
7349
|
+
*/
|
|
7350
|
+
accessibilityHint: string;
|
|
7351
|
+
|
|
7347
7352
|
/**
|
|
7348
7353
|
* Provides a textual description of the widget for screen readers, describing its purpose or function
|
|
7349
7354
|
* to visually impaired users.
|
|
7350
7355
|
*/
|
|
7351
7356
|
accessibilityLabel: string;
|
|
7352
7357
|
|
|
7358
|
+
/**
|
|
7359
|
+
* Describes the traits/characteristics of the element, e.g., 'button', 'header', 'link'.
|
|
7360
|
+
*/
|
|
7361
|
+
accessibilityTraits: string[];
|
|
7362
|
+
|
|
7363
|
+
/**
|
|
7364
|
+
* Provides the current value of the element, e.g., for sliders or progress bars.
|
|
7365
|
+
*/
|
|
7366
|
+
accessibilityValue: string;
|
|
7367
|
+
|
|
7353
7368
|
/**
|
|
7354
7369
|
* The background of the widget. If given a plain string it is interpreted first as a gradient, then as
|
|
7355
7370
|
* a color, and finally as an image path, whichever passes first. Use object literals or instances of
|
|
@@ -7457,6 +7472,11 @@ export class Widget<TData extends object = any> extends NativeObject {
|
|
|
7457
7472
|
*/
|
|
7458
7473
|
id: string;
|
|
7459
7474
|
|
|
7475
|
+
/**
|
|
7476
|
+
* If true, this widget is treated as accessibility element by assistive technologies.
|
|
7477
|
+
*/
|
|
7478
|
+
isAccessibilityElement: boolean;
|
|
7479
|
+
|
|
7460
7480
|
/**
|
|
7461
7481
|
* Provides information for a widget to be used by the parent when determining its size and position.
|
|
7462
7482
|
* While this property accepts any valid LayoutData expression (see ${doc:LayoutDataValue}), it will
|
|
@@ -7620,11 +7640,26 @@ export class Widget<TData extends object = any> extends NativeObject {
|
|
|
7620
7640
|
*/
|
|
7621
7641
|
onAccessibilityHiddenChanged: ChangeListeners<this, 'accessibilityHidden'>;
|
|
7622
7642
|
|
|
7643
|
+
/**
|
|
7644
|
+
* Fired when the [*accessibilityHint*](#accessibilityHint) property has changed.
|
|
7645
|
+
*/
|
|
7646
|
+
onAccessibilityHintChanged: ChangeListeners<this, 'accessibilityHint'>;
|
|
7647
|
+
|
|
7623
7648
|
/**
|
|
7624
7649
|
* Fired when the [*accessibilityLabel*](#accessibilityLabel) property has changed.
|
|
7625
7650
|
*/
|
|
7626
7651
|
onAccessibilityLabelChanged: ChangeListeners<this, 'accessibilityLabel'>;
|
|
7627
7652
|
|
|
7653
|
+
/**
|
|
7654
|
+
* Fired when the [*accessibilityTraits*](#accessibilityTraits) property has changed.
|
|
7655
|
+
*/
|
|
7656
|
+
onAccessibilityTraitsChanged: ChangeListeners<this, 'accessibilityTraits'>;
|
|
7657
|
+
|
|
7658
|
+
/**
|
|
7659
|
+
* Fired when the [*accessibilityValue*](#accessibilityValue) property has changed.
|
|
7660
|
+
*/
|
|
7661
|
+
onAccessibilityValueChanged: ChangeListeners<this, 'accessibilityValue'>;
|
|
7662
|
+
|
|
7628
7663
|
/**
|
|
7629
7664
|
* Fired when the [*background*](#background) property has changed.
|
|
7630
7665
|
*/
|
|
@@ -7705,6 +7740,11 @@ export class Widget<TData extends object = any> extends NativeObject {
|
|
|
7705
7740
|
*/
|
|
7706
7741
|
onIdChanged: ChangeListeners<this, 'id'>;
|
|
7707
7742
|
|
|
7743
|
+
/**
|
|
7744
|
+
* Fired when the [*isAccessibilityElement*](#isAccessibilityElement) property has changed.
|
|
7745
|
+
*/
|
|
7746
|
+
onIsAccessibilityElementChanged: ChangeListeners<this, 'isAccessibilityElement'>;
|
|
7747
|
+
|
|
7708
7748
|
/**
|
|
7709
7749
|
* Fired when the [*layoutData*](#layoutData) property has changed.
|
|
7710
7750
|
*/
|
|
@@ -7984,12 +8024,6 @@ export interface AppBackNavigationEvent<Target = App>
|
|
|
7984
8024
|
readonly preventDefault: () => void;
|
|
7985
8025
|
}
|
|
7986
8026
|
|
|
7987
|
-
export interface AppContinueWebActivityEvent<Target = App>
|
|
7988
|
-
extends EventObject<Target>
|
|
7989
|
-
{
|
|
7990
|
-
readonly webpageURL: string;
|
|
7991
|
-
}
|
|
7992
|
-
|
|
7993
8027
|
export interface AppKeyPressEvent<Target = App>
|
|
7994
8028
|
extends EventObject<Target>
|
|
7995
8029
|
{
|
|
@@ -8146,12 +8180,6 @@ export class App extends NativeObject {
|
|
|
8146
8180
|
*/
|
|
8147
8181
|
onBackground: Listeners<EventObject<this>>;
|
|
8148
8182
|
|
|
8149
|
-
/**
|
|
8150
|
-
* Fired when the app is launched via a universal link (iOS) or app link (Android). This event allows
|
|
8151
|
-
* the app to handle universal/app links opened in another app.
|
|
8152
|
-
*/
|
|
8153
|
-
onContinueWebActivity: Listeners<AppContinueWebActivityEvent<this>>;
|
|
8154
|
-
|
|
8155
8183
|
/**
|
|
8156
8184
|
* The event is fired when the app starts or when it returns from the background.
|
|
8157
8185
|
*/
|
package/tabris.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Tabris.js 3.11.0-dev.
|
|
2
|
+
* Tabris.js 3.11.0-dev.20260218+0310
|
|
3
3
|
*
|
|
4
4
|
* Copyright (c) 2014, 2020 EclipseSource Inc.
|
|
5
5
|
* All rights reserved.
|
|
@@ -600,6 +600,7 @@ const jsxFactory = Symbol('jsxFactory');
|
|
|
600
600
|
const jsxType = Symbol('jsxType');
|
|
601
601
|
|
|
602
602
|
var symbols = /*#__PURE__*/Object.freeze({
|
|
603
|
+
__proto__: null,
|
|
603
604
|
equals: equals,
|
|
604
605
|
creationAllowed: creationAllowed,
|
|
605
606
|
bytes: bytes,
|
|
@@ -950,8 +951,8 @@ function getBytes(blob) {
|
|
|
950
951
|
* @param {any} blob
|
|
951
952
|
* @param {ArrayBuffer} bytes
|
|
952
953
|
*/
|
|
953
|
-
function setBytes(blob, bytes
|
|
954
|
-
return blob[bytes] = bytes
|
|
954
|
+
function setBytes(blob, bytes$1) {
|
|
955
|
+
return blob[bytes] = bytes$1;
|
|
955
956
|
}
|
|
956
957
|
/**
|
|
957
958
|
* @template {object} T
|
|
@@ -990,8 +991,8 @@ function allowOnlyValues(value, allowed, valueName = 'Value') {
|
|
|
990
991
|
* @param {object} object
|
|
991
992
|
* @param {{cid: string}} nativeObject
|
|
992
993
|
*/
|
|
993
|
-
function setNativeObject(object, nativeObject
|
|
994
|
-
object[nativeObject] = nativeObject
|
|
994
|
+
function setNativeObject(object, nativeObject$1) {
|
|
995
|
+
object[nativeObject] = nativeObject$1;
|
|
995
996
|
}
|
|
996
997
|
/**
|
|
997
998
|
* @param {object} object
|
|
@@ -1086,14 +1087,14 @@ const urlBaseRegEx = /^[a-z]+:\/\/[^/]+\//;
|
|
|
1086
1087
|
* @param {boolean} errorStyleFormatting
|
|
1087
1088
|
* Prefix trace lines with "at", similarly to how logged errors are formatted in V8.
|
|
1088
1089
|
*/
|
|
1089
|
-
function getStackTrace(error
|
|
1090
|
+
function getStackTrace(error, errorStyleFormatting = false) {
|
|
1090
1091
|
try {
|
|
1091
|
-
return getStackArray(error
|
|
1092
|
+
return getStackArray(error.stack).map(line => errorStyleFormatting ? ' at ' + line : line).join('\n');
|
|
1092
1093
|
}
|
|
1093
1094
|
catch (ex) {
|
|
1094
1095
|
const minimalError = (ex && ex.constructor && ex.message) ? ex.constructor.name + ': ' + ex.message : '';
|
|
1095
1096
|
warn(`Could not process stack trace (${minimalError || ex}), printing original.`);
|
|
1096
|
-
return error
|
|
1097
|
+
return error.stack;
|
|
1097
1098
|
}
|
|
1098
1099
|
}
|
|
1099
1100
|
function patchError(fn) {
|
|
@@ -1101,23 +1102,23 @@ function patchError(fn) {
|
|
|
1101
1102
|
return formatError(this);
|
|
1102
1103
|
};
|
|
1103
1104
|
}
|
|
1104
|
-
function formatError(error
|
|
1105
|
+
function formatError(error) {
|
|
1105
1106
|
let stack;
|
|
1106
1107
|
try {
|
|
1107
|
-
if (!(error
|
|
1108
|
-
return '' + error
|
|
1108
|
+
if (!(error instanceof Object)) {
|
|
1109
|
+
return '' + error;
|
|
1109
1110
|
}
|
|
1110
|
-
if (!(error
|
|
1111
|
-
return error
|
|
1111
|
+
if (!(error instanceof Error)) {
|
|
1112
|
+
return error.constructor.name + ': ' + error.toString();
|
|
1112
1113
|
}
|
|
1113
1114
|
else {
|
|
1114
|
-
stack = getStackArray(error
|
|
1115
|
+
stack = getStackArray(error.stack).map(line => ' at ' + line).join('\n');
|
|
1115
1116
|
}
|
|
1116
1117
|
}
|
|
1117
1118
|
catch (ex) {
|
|
1118
|
-
stack = error
|
|
1119
|
+
stack = error.stack;
|
|
1119
1120
|
}
|
|
1120
|
-
return error
|
|
1121
|
+
return error.constructor.name + ': ' + error.message + '\n' + stack;
|
|
1121
1122
|
}
|
|
1122
1123
|
function formatPromiseRejectionReason(reason) {
|
|
1123
1124
|
let result;
|
|
@@ -1132,9 +1133,9 @@ function formatPromiseRejectionReason(reason) {
|
|
|
1132
1133
|
}
|
|
1133
1134
|
return result;
|
|
1134
1135
|
}
|
|
1135
|
-
function getCurrentLine(error
|
|
1136
|
+
function getCurrentLine(error) {
|
|
1136
1137
|
try {
|
|
1137
|
-
return getStackArray(error
|
|
1138
|
+
return getStackArray(error.stack)[0].trim();
|
|
1138
1139
|
}
|
|
1139
1140
|
catch (ex) {
|
|
1140
1141
|
return '';
|
|
@@ -2965,11 +2966,11 @@ class JsxProcessor {
|
|
|
2965
2966
|
if (attributes && 'children' in attributes) {
|
|
2966
2967
|
throw new Error(`JSX: ${Type.name} can not have children`);
|
|
2967
2968
|
}
|
|
2968
|
-
const _a = attributesWithoutListener(attributes || {}), { data
|
|
2969
|
+
const _a = attributesWithoutListener(attributes || {}), { data } = _a, properties = __rest(_a, ["data"]);
|
|
2969
2970
|
const result = new Type(properties);
|
|
2970
2971
|
registerListenerAttributes(result, attributes);
|
|
2971
|
-
if (data
|
|
2972
|
-
result.data = data
|
|
2972
|
+
if (data) {
|
|
2973
|
+
result.data = data;
|
|
2973
2974
|
}
|
|
2974
2975
|
return result;
|
|
2975
2976
|
}
|
|
@@ -5034,7 +5035,7 @@ class Tabris extends NativeObject {
|
|
|
5034
5035
|
this.$publishProxies();
|
|
5035
5036
|
}
|
|
5036
5037
|
get version() {
|
|
5037
|
-
return '3.11.0-dev.
|
|
5038
|
+
return '3.11.0-dev.20260218+0310';
|
|
5038
5039
|
}
|
|
5039
5040
|
get started() {
|
|
5040
5041
|
return !!this._started;
|
|
@@ -5481,7 +5482,10 @@ function publishDeviceProperties(device, target) {
|
|
|
5481
5482
|
target.devicePixelRatio = device.scaleFactor;
|
|
5482
5483
|
target.device = createDevice(device);
|
|
5483
5484
|
target.screen = createScreen(device);
|
|
5484
|
-
|
|
5485
|
+
// Only override navigator if not in Node.js test environment or if it doesn't exist
|
|
5486
|
+
if (typeof process === 'undefined' || !target.navigator) {
|
|
5487
|
+
target.navigator = createNavigator(device);
|
|
5488
|
+
}
|
|
5485
5489
|
}
|
|
5486
5490
|
function createDevice(device) {
|
|
5487
5491
|
const dev = {};
|
|
@@ -6233,11 +6237,11 @@ class Widget extends NativeObject {
|
|
|
6233
6237
|
return;
|
|
6234
6238
|
}
|
|
6235
6239
|
checkType(value, Object, { name: 'data', nullable: true });
|
|
6236
|
-
let data
|
|
6240
|
+
let data = value;
|
|
6237
6241
|
if ((value === null || value === void 0 ? void 0 : value.constructor) === Object) {
|
|
6238
|
-
data
|
|
6242
|
+
data = ObservableData(data);
|
|
6239
6243
|
}
|
|
6240
|
-
Object.defineProperty(this, '$data', { enumerable: false, writable: true, value: data
|
|
6244
|
+
Object.defineProperty(this, '$data', { enumerable: false, writable: true, value: data });
|
|
6241
6245
|
ObservableData.generateChangeEvents({ target: this, property: 'data' });
|
|
6242
6246
|
}
|
|
6243
6247
|
get data() {
|
|
@@ -6441,11 +6445,40 @@ NativeObject.defineProperties(Widget.prototype, {
|
|
|
6441
6445
|
},
|
|
6442
6446
|
accessibilityHidden: {
|
|
6443
6447
|
type: types.boolean,
|
|
6444
|
-
|
|
6448
|
+
nocache: true
|
|
6445
6449
|
},
|
|
6446
6450
|
accessibilityLabel: {
|
|
6447
6451
|
type: types.string,
|
|
6448
|
-
|
|
6452
|
+
nocache: true
|
|
6453
|
+
},
|
|
6454
|
+
accessibilityHint: {
|
|
6455
|
+
type: types.string,
|
|
6456
|
+
nocache: true
|
|
6457
|
+
},
|
|
6458
|
+
accessibilityValue: {
|
|
6459
|
+
type: types.string,
|
|
6460
|
+
nocache: true
|
|
6461
|
+
},
|
|
6462
|
+
accessibilityTraits: {
|
|
6463
|
+
type: {
|
|
6464
|
+
convert(value) {
|
|
6465
|
+
if (Array.isArray(value)) {
|
|
6466
|
+
return value.map(String);
|
|
6467
|
+
}
|
|
6468
|
+
else if (typeof value === 'string') {
|
|
6469
|
+
return [value];
|
|
6470
|
+
}
|
|
6471
|
+
else if (value == null) {
|
|
6472
|
+
return [];
|
|
6473
|
+
}
|
|
6474
|
+
throw new Error('accessibilityTraits must be a string or array of strings');
|
|
6475
|
+
}
|
|
6476
|
+
},
|
|
6477
|
+
nocache: true
|
|
6478
|
+
},
|
|
6479
|
+
isAccessibilityElement: {
|
|
6480
|
+
type: types.boolean,
|
|
6481
|
+
nocache: true
|
|
6449
6482
|
}
|
|
6450
6483
|
});
|
|
6451
6484
|
layoutDataProps.forEach(prop => {
|
|
@@ -7612,7 +7645,7 @@ function defineProperty(context, name) {
|
|
|
7612
7645
|
context._gc.addOperation(name);
|
|
7613
7646
|
prop.addOperations.call(context, context._state[name]);
|
|
7614
7647
|
}
|
|
7615
|
-
catch (error
|
|
7648
|
+
catch (error) {
|
|
7616
7649
|
hint(context, 'Unsupported value for ' + name + ': ' + value);
|
|
7617
7650
|
}
|
|
7618
7651
|
}
|
|
@@ -8033,8 +8066,7 @@ NativeObject.defineEvents(App.prototype, {
|
|
|
8033
8066
|
terminate: { native: true },
|
|
8034
8067
|
keyPress: { native: true },
|
|
8035
8068
|
backNavigation: { native: true },
|
|
8036
|
-
certificatesReceived: { native: true }
|
|
8037
|
-
continueWebActivity: { native: true }
|
|
8069
|
+
certificatesReceived: { native: true }
|
|
8038
8070
|
});
|
|
8039
8071
|
function create$4() {
|
|
8040
8072
|
return new App(true);
|
|
@@ -8255,12 +8287,12 @@ function create$5() {
|
|
|
8255
8287
|
function createError(err, path) {
|
|
8256
8288
|
const message = `${ERRORS[err] || err}: ${path}`;
|
|
8257
8289
|
const code = err in ERRORS ? err : null;
|
|
8258
|
-
const error
|
|
8259
|
-
Object.defineProperties(error
|
|
8290
|
+
const error = new Error(message);
|
|
8291
|
+
Object.defineProperties(error, {
|
|
8260
8292
|
path: { value: path },
|
|
8261
8293
|
code: { value: code }
|
|
8262
8294
|
});
|
|
8263
|
-
return error
|
|
8295
|
+
return error;
|
|
8264
8296
|
}
|
|
8265
8297
|
function checkPath(path, type) {
|
|
8266
8298
|
try {
|
|
@@ -13691,6 +13723,7 @@ if (global.document) {
|
|
|
13691
13723
|
else {
|
|
13692
13724
|
global.tabris = tabrisMain;
|
|
13693
13725
|
global.tabris.tabris = tabrisMain;
|
|
13726
|
+
global.JSX = tabrisMain.JSX;
|
|
13694
13727
|
Object.assign(global, WHATWG, { $ });
|
|
13695
13728
|
addDOMDocument(global);
|
|
13696
13729
|
addDOMEventTargetMethods(global);
|
|
@@ -13743,7 +13776,10 @@ tabrisMain.on('start', (options) => {
|
|
|
13743
13776
|
// @ts-ignore
|
|
13744
13777
|
global.secureStorage = tabrisMain.secureStorage;
|
|
13745
13778
|
// @ts-ignore
|
|
13746
|
-
|
|
13779
|
+
// Only override crypto if not in Node.js test environment or if it doesn't exist
|
|
13780
|
+
if (typeof process === 'undefined' || !global.crypto) {
|
|
13781
|
+
global.crypto = tabrisMain.crypto;
|
|
13782
|
+
}
|
|
13747
13783
|
// @ts-ignore
|
|
13748
13784
|
global.JSX = tabrisMain.JSX;
|
|
13749
13785
|
if (!global.process) { // Prevent damaging test environment
|