@breakside/jskit 2021.42.0 → 2021.43.0
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/Frameworks/DOM.jsframework/Info.json +2 -2
- package/Frameworks/DOM.jsframework/io.breakside.JSKit.DOM-bundle.js +2 -2
- package/Frameworks/FontKit.jsframework/Info.json +2 -2
- package/Frameworks/FontKit.jsframework/io.breakside.JSKit.FontKit-bundle.js +2 -2
- package/Frameworks/Foundation.jsframework/Info.json +2 -2
- package/Frameworks/Foundation.jsframework/JS/JSClass.js +8 -5
- package/Frameworks/Foundation.jsframework/JS/JSImage.js +1 -0
- package/Frameworks/Foundation.jsframework/JS/JSTimeZone.js +6 -2
- package/Frameworks/Foundation.jsframework/io.breakside.JSKit.Foundation-bundle.js +2 -2
- package/Frameworks/SecurityKit.jsframework/Info.json +2 -2
- package/Frameworks/SecurityKit.jsframework/io.breakside.JSKit.SecurityKit-bundle.js +2 -2
- package/Info.json +2 -2
- package/Node/io.breakside.jskit-bundle.js +2 -2
- package/Root/Frameworks/APIKit/Info.yaml +1 -1
- package/Root/Frameworks/APIKitTesting/Info.yaml +1 -1
- package/Root/Frameworks/AuthKit/Info.yaml +1 -1
- package/Root/Frameworks/CSSOM/Info.yaml +1 -1
- package/Root/Frameworks/ChartKit/Info.yaml +1 -1
- package/Root/Frameworks/ConferenceKit/Info.yaml +1 -1
- package/Root/Frameworks/DBKit/Info.yaml +1 -1
- package/Root/Frameworks/DOM/Info.yaml +1 -1
- package/Root/Frameworks/Dispatch/Info.yaml +1 -1
- package/Root/Frameworks/FontKit/Info.yaml +1 -1
- package/Root/Frameworks/Foundation/Info.yaml +1 -1
- package/Root/Frameworks/Foundation/JSClass.js +8 -5
- package/Root/Frameworks/Foundation/JSImage.js +1 -0
- package/Root/Frameworks/Foundation/JSTimeZone.js +6 -2
- package/Root/Frameworks/ImageKit/Info.yaml +1 -1
- package/Root/Frameworks/MediaKit/Info.yaml +1 -1
- package/Root/Frameworks/MediaKitUI/Info.yaml +1 -1
- package/Root/Frameworks/NotificationKit/Info.yaml +1 -1
- package/Root/Frameworks/PDFKit/Info.yaml +1 -1
- package/Root/Frameworks/QRKit/Info.yaml +1 -1
- package/Root/Frameworks/SearchKit/Info.yaml +1 -1
- package/Root/Frameworks/SecurityKit/Info.yaml +1 -1
- package/Root/Frameworks/ServerKit/Info.yaml +1 -1
- package/Root/Frameworks/ServerKitTesting/Info.yaml +1 -1
- package/Root/Frameworks/TestKit/Info.yaml +1 -1
- package/Root/Frameworks/UIKit/Info.yaml +1 -1
- package/Root/Frameworks/UIKit/UILayer.js +17 -0
- package/Root/Frameworks/UIKit/UIListView.js +8 -5
- package/Root/Frameworks/UIKit/UIView.js +1 -0
- package/Root/Frameworks/UIKit/UIWindow.js +37 -3
- package/Root/Frameworks/UIKitTesting/Info.yaml +1 -1
- package/package.json +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"JSBundleType": "framework",
|
|
3
3
|
"JSBundleIdentifier": "io.breakside.JSKit.DOM",
|
|
4
|
-
"JSBundleVersion": "2021.
|
|
4
|
+
"JSBundleVersion": "2021.43.0",
|
|
5
5
|
"JSDevelopmentLanguage": "en",
|
|
6
6
|
"JSCopyright": "Copyright © 2020 Breakside Inc.",
|
|
7
7
|
"JSBundleEnvironments": {
|
|
@@ -9,5 +9,5 @@
|
|
|
9
9
|
"node": "DOM+Node.js"
|
|
10
10
|
},
|
|
11
11
|
"JSLicenseNotice": "Licensed under the Breakside Public License, Version 1.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nIf a copy of the License was not distributed with this file, you may\nobtain a copy at\n\n http://breakside.io/licenses/LICENSE-1.0.txt\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n",
|
|
12
|
-
"GitRevision": "
|
|
12
|
+
"GitRevision": "0773c815878b130f1dc25e6912bd72f788582577"
|
|
13
13
|
}
|
|
@@ -3,7 +3,7 @@ JSBundle.bundles['io.breakside.JSKit.DOM'] = {
|
|
|
3
3
|
"Info": {
|
|
4
4
|
"JSBundleType": "framework",
|
|
5
5
|
"JSBundleIdentifier": "io.breakside.JSKit.DOM",
|
|
6
|
-
"JSBundleVersion": "2021.
|
|
6
|
+
"JSBundleVersion": "2021.43.0",
|
|
7
7
|
"JSDevelopmentLanguage": "en",
|
|
8
8
|
"JSCopyright": "Copyright © 2020 Breakside Inc.",
|
|
9
9
|
"JSBundleEnvironments": {
|
|
@@ -11,7 +11,7 @@ JSBundle.bundles['io.breakside.JSKit.DOM'] = {
|
|
|
11
11
|
"node": "DOM+Node.js"
|
|
12
12
|
},
|
|
13
13
|
"JSLicenseNotice": "Licensed under the Breakside Public License, Version 1.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nIf a copy of the License was not distributed with this file, you may\nobtain a copy at\n\n http://breakside.io/licenses/LICENSE-1.0.txt\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n",
|
|
14
|
-
"GitRevision": "
|
|
14
|
+
"GitRevision": "0773c815878b130f1dc25e6912bd72f788582577"
|
|
15
15
|
},
|
|
16
16
|
"Resources": [],
|
|
17
17
|
"ResourceLookup": {
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"JSBundleType": "framework",
|
|
3
3
|
"JSBundleIdentifier": "io.breakside.JSKit.FontKit",
|
|
4
|
-
"JSBundleVersion": "2021.
|
|
4
|
+
"JSBundleVersion": "2021.43.0",
|
|
5
5
|
"JSDevelopmentLanguage": "en",
|
|
6
6
|
"JSCopyright": "Copyright © 2020 Breakside Inc.",
|
|
7
7
|
"JSBundleEnvironments": {
|
|
8
8
|
"html": "FontKit+HTML.js"
|
|
9
9
|
},
|
|
10
10
|
"JSLicenseNotice": "Licensed under the Breakside Public License, Version 1.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nIf a copy of the License was not distributed with this file, you may\nobtain a copy at\n\n http://breakside.io/licenses/LICENSE-1.0.txt\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n",
|
|
11
|
-
"GitRevision": "
|
|
11
|
+
"GitRevision": "0773c815878b130f1dc25e6912bd72f788582577"
|
|
12
12
|
}
|
|
@@ -3,14 +3,14 @@ JSBundle.bundles['io.breakside.JSKit.FontKit'] = {
|
|
|
3
3
|
"Info": {
|
|
4
4
|
"JSBundleType": "framework",
|
|
5
5
|
"JSBundleIdentifier": "io.breakside.JSKit.FontKit",
|
|
6
|
-
"JSBundleVersion": "2021.
|
|
6
|
+
"JSBundleVersion": "2021.43.0",
|
|
7
7
|
"JSDevelopmentLanguage": "en",
|
|
8
8
|
"JSCopyright": "Copyright © 2020 Breakside Inc.",
|
|
9
9
|
"JSBundleEnvironments": {
|
|
10
10
|
"html": "FontKit+HTML.js"
|
|
11
11
|
},
|
|
12
12
|
"JSLicenseNotice": "Licensed under the Breakside Public License, Version 1.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nIf a copy of the License was not distributed with this file, you may\nobtain a copy at\n\n http://breakside.io/licenses/LICENSE-1.0.txt\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n",
|
|
13
|
-
"GitRevision": "
|
|
13
|
+
"GitRevision": "0773c815878b130f1dc25e6912bd72f788582577"
|
|
14
14
|
},
|
|
15
15
|
"Resources": [],
|
|
16
16
|
"ResourceLookup": {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"JSBundleType": "framework",
|
|
3
3
|
"JSBundleIdentifier": "io.breakside.JSKit.Foundation",
|
|
4
|
-
"JSBundleVersion": "2021.
|
|
4
|
+
"JSBundleVersion": "2021.43.0",
|
|
5
5
|
"JSDevelopmentLanguage": "en",
|
|
6
6
|
"JSCopyright": "Copyright © 2020 Breakside Inc.",
|
|
7
7
|
"JSBundleEnvironments": {
|
|
@@ -9,5 +9,5 @@
|
|
|
9
9
|
"node": "Foundation+Node.js"
|
|
10
10
|
},
|
|
11
11
|
"JSLicenseNotice": "Licensed under the Breakside Public License, Version 1.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nIf a copy of the License was not distributed with this file, you may\nobtain a copy at\n\n http://breakside.io/licenses/LICENSE-1.0.txt\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n",
|
|
12
|
-
"GitRevision": "
|
|
12
|
+
"GitRevision": "0773c815878b130f1dc25e6912bd72f788582577"
|
|
13
13
|
}
|
|
@@ -354,11 +354,11 @@ JSReadOnlyProperty.prototype.define = function(C, publicKey, extensions){
|
|
|
354
354
|
});
|
|
355
355
|
};
|
|
356
356
|
|
|
357
|
-
JSGlobalObject.JSLazyInitProperty = function(
|
|
357
|
+
JSGlobalObject.JSLazyInitProperty = function(propertyInitMethod, privateKey){
|
|
358
358
|
if (this === undefined){
|
|
359
|
-
return new JSLazyInitProperty(
|
|
359
|
+
return new JSLazyInitProperty(propertyInitMethod, privateKey);
|
|
360
360
|
}else{
|
|
361
|
-
this.
|
|
361
|
+
this.propertyInitMethod = propertyInitMethod;
|
|
362
362
|
this.privateKey = privateKey;
|
|
363
363
|
}
|
|
364
364
|
};
|
|
@@ -366,7 +366,7 @@ JSGlobalObject.JSLazyInitProperty = function(propertyInitMethodName, privateKey)
|
|
|
366
366
|
JSLazyInitProperty.prototype = Object.create(JSCustomProperty.prototype);
|
|
367
367
|
|
|
368
368
|
JSLazyInitProperty.prototype.define = function(C, key, extensions){
|
|
369
|
-
var
|
|
369
|
+
var propertyInitMethod = this.propertyInitMethod;
|
|
370
370
|
var privateKey = this.privateKey;
|
|
371
371
|
if (privateKey){
|
|
372
372
|
Object.defineProperty(C.prototype, privateKey, {configurable: true, writable: true, value: null});
|
|
@@ -375,7 +375,10 @@ JSLazyInitProperty.prototype.define = function(C, key, extensions){
|
|
|
375
375
|
configurable: true,
|
|
376
376
|
enumerable: false,
|
|
377
377
|
get: function(){
|
|
378
|
-
|
|
378
|
+
if (typeof(propertyInitMethod) != "function"){
|
|
379
|
+
propertyInitMethod = this[propertyInitMethod];
|
|
380
|
+
}
|
|
381
|
+
var x = propertyInitMethod.call(this);
|
|
379
382
|
Object.defineProperty(this, key, {
|
|
380
383
|
configurable: true,
|
|
381
384
|
enumerable: false,
|
|
@@ -536,7 +536,11 @@ var defaultLocalProperty = {
|
|
|
536
536
|
get: function JSTimeZone_getLocal(){
|
|
537
537
|
var timezone = null;
|
|
538
538
|
if (localIdentifier !== null){
|
|
539
|
-
|
|
539
|
+
if (localIdentifier === "UTC"){
|
|
540
|
+
timezone = JSTimeZone.utc;
|
|
541
|
+
}else{
|
|
542
|
+
timezone = JSTimeZone.initWithIdentifier(localIdentifier);
|
|
543
|
+
}
|
|
540
544
|
}
|
|
541
545
|
Object.defineProperty(JSTimeZone, 'local', {configurable: true, value: timezone});
|
|
542
546
|
return timezone;
|
|
@@ -557,7 +561,7 @@ Object.defineProperties(JSTimeZone, {
|
|
|
557
561
|
systemTimeZoneIdentifier: {
|
|
558
562
|
get: function JSTimeZone_getSystemTimeZoneIdentifier(){
|
|
559
563
|
// FIXME: if no identifier, try to guess based on offset?
|
|
560
|
-
return Intl.DateTimeFormat().resolvedOptions().timeZone ||
|
|
564
|
+
return Intl.DateTimeFormat().resolvedOptions().timeZone || "UTC";
|
|
561
565
|
}
|
|
562
566
|
},
|
|
563
567
|
|
|
@@ -3,7 +3,7 @@ JSBundle.bundles['io.breakside.JSKit.Foundation'] = {
|
|
|
3
3
|
"Info": {
|
|
4
4
|
"JSBundleType": "framework",
|
|
5
5
|
"JSBundleIdentifier": "io.breakside.JSKit.Foundation",
|
|
6
|
-
"JSBundleVersion": "2021.
|
|
6
|
+
"JSBundleVersion": "2021.43.0",
|
|
7
7
|
"JSDevelopmentLanguage": "en",
|
|
8
8
|
"JSCopyright": "Copyright © 2020 Breakside Inc.",
|
|
9
9
|
"JSBundleEnvironments": {
|
|
@@ -11,7 +11,7 @@ JSBundle.bundles['io.breakside.JSKit.Foundation'] = {
|
|
|
11
11
|
"node": "Foundation+Node.js"
|
|
12
12
|
},
|
|
13
13
|
"JSLicenseNotice": "Licensed under the Breakside Public License, Version 1.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nIf a copy of the License was not distributed with this file, you may\nobtain a copy at\n\n http://breakside.io/licenses/LICENSE-1.0.txt\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n",
|
|
14
|
-
"GitRevision": "
|
|
14
|
+
"GitRevision": "0773c815878b130f1dc25e6912bd72f788582577"
|
|
15
15
|
},
|
|
16
16
|
"Resources": [
|
|
17
17
|
{
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"JSBundleType": "framework",
|
|
3
3
|
"JSBundleIdentifier": "io.breakside.JSKit.SecurityKit",
|
|
4
|
-
"JSBundleVersion": "2021.
|
|
4
|
+
"JSBundleVersion": "2021.43.0",
|
|
5
5
|
"JSDevelopmentLanguage": "en",
|
|
6
6
|
"JSCopyright": "Copyright © 2020 Breakside Inc.",
|
|
7
7
|
"JSBundleEnvironments": {
|
|
@@ -9,5 +9,5 @@
|
|
|
9
9
|
"node": "SecurityKit+Node.js"
|
|
10
10
|
},
|
|
11
11
|
"JSLicenseNotice": "Licensed under the Breakside Public License, Version 1.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nIf a copy of the License was not distributed with this file, you may\nobtain a copy at\n\n http://breakside.io/licenses/LICENSE-1.0.txt\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n",
|
|
12
|
-
"GitRevision": "
|
|
12
|
+
"GitRevision": "0773c815878b130f1dc25e6912bd72f788582577"
|
|
13
13
|
}
|
|
@@ -3,7 +3,7 @@ JSBundle.bundles['io.breakside.JSKit.SecurityKit'] = {
|
|
|
3
3
|
"Info": {
|
|
4
4
|
"JSBundleType": "framework",
|
|
5
5
|
"JSBundleIdentifier": "io.breakside.JSKit.SecurityKit",
|
|
6
|
-
"JSBundleVersion": "2021.
|
|
6
|
+
"JSBundleVersion": "2021.43.0",
|
|
7
7
|
"JSDevelopmentLanguage": "en",
|
|
8
8
|
"JSCopyright": "Copyright © 2020 Breakside Inc.",
|
|
9
9
|
"JSBundleEnvironments": {
|
|
@@ -11,7 +11,7 @@ JSBundle.bundles['io.breakside.JSKit.SecurityKit'] = {
|
|
|
11
11
|
"node": "SecurityKit+Node.js"
|
|
12
12
|
},
|
|
13
13
|
"JSLicenseNotice": "Licensed under the Breakside Public License, Version 1.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nIf a copy of the License was not distributed with this file, you may\nobtain a copy at\n\n http://breakside.io/licenses/LICENSE-1.0.txt\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n",
|
|
14
|
-
"GitRevision": "
|
|
14
|
+
"GitRevision": "0773c815878b130f1dc25e6912bd72f788582577"
|
|
15
15
|
},
|
|
16
16
|
"Resources": [],
|
|
17
17
|
"ResourceLookup": {
|
package/Info.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"JSBundleType": "node",
|
|
3
3
|
"JSBundleIdentifier": "io.breakside.jskit",
|
|
4
|
-
"JSBundleVersion": "2021.
|
|
4
|
+
"JSBundleVersion": "2021.43.0",
|
|
5
5
|
"JSExecutableName": "jskit",
|
|
6
6
|
"NPMOrganization": "breakside",
|
|
7
7
|
"JSResources": [
|
|
8
8
|
"Tests/HTMLTestRunner.js",
|
|
9
9
|
"Tests/NodeTestRunner.js"
|
|
10
10
|
],
|
|
11
|
-
"GitRevision": "
|
|
11
|
+
"GitRevision": "0773c815878b130f1dc25e6912bd72f788582577"
|
|
12
12
|
}
|
|
@@ -3,14 +3,14 @@ JSBundle.bundles['io.breakside.jskit'] = {
|
|
|
3
3
|
"Info": {
|
|
4
4
|
"JSBundleType": "node",
|
|
5
5
|
"JSBundleIdentifier": "io.breakside.jskit",
|
|
6
|
-
"JSBundleVersion": "2021.
|
|
6
|
+
"JSBundleVersion": "2021.43.0",
|
|
7
7
|
"JSExecutableName": "jskit",
|
|
8
8
|
"NPMOrganization": "breakside",
|
|
9
9
|
"JSResources": [
|
|
10
10
|
"Tests/HTMLTestRunner.js",
|
|
11
11
|
"Tests/NodeTestRunner.js"
|
|
12
12
|
],
|
|
13
|
-
"GitRevision": "
|
|
13
|
+
"GitRevision": "0773c815878b130f1dc25e6912bd72f788582577"
|
|
14
14
|
},
|
|
15
15
|
"Resources": [
|
|
16
16
|
{
|
|
@@ -354,11 +354,11 @@ JSReadOnlyProperty.prototype.define = function(C, publicKey, extensions){
|
|
|
354
354
|
});
|
|
355
355
|
};
|
|
356
356
|
|
|
357
|
-
JSGlobalObject.JSLazyInitProperty = function(
|
|
357
|
+
JSGlobalObject.JSLazyInitProperty = function(propertyInitMethod, privateKey){
|
|
358
358
|
if (this === undefined){
|
|
359
|
-
return new JSLazyInitProperty(
|
|
359
|
+
return new JSLazyInitProperty(propertyInitMethod, privateKey);
|
|
360
360
|
}else{
|
|
361
|
-
this.
|
|
361
|
+
this.propertyInitMethod = propertyInitMethod;
|
|
362
362
|
this.privateKey = privateKey;
|
|
363
363
|
}
|
|
364
364
|
};
|
|
@@ -366,7 +366,7 @@ JSGlobalObject.JSLazyInitProperty = function(propertyInitMethodName, privateKey)
|
|
|
366
366
|
JSLazyInitProperty.prototype = Object.create(JSCustomProperty.prototype);
|
|
367
367
|
|
|
368
368
|
JSLazyInitProperty.prototype.define = function(C, key, extensions){
|
|
369
|
-
var
|
|
369
|
+
var propertyInitMethod = this.propertyInitMethod;
|
|
370
370
|
var privateKey = this.privateKey;
|
|
371
371
|
if (privateKey){
|
|
372
372
|
Object.defineProperty(C.prototype, privateKey, {configurable: true, writable: true, value: null});
|
|
@@ -375,7 +375,10 @@ JSLazyInitProperty.prototype.define = function(C, key, extensions){
|
|
|
375
375
|
configurable: true,
|
|
376
376
|
enumerable: false,
|
|
377
377
|
get: function(){
|
|
378
|
-
|
|
378
|
+
if (typeof(propertyInitMethod) != "function"){
|
|
379
|
+
propertyInitMethod = this[propertyInitMethod];
|
|
380
|
+
}
|
|
381
|
+
var x = propertyInitMethod.call(this);
|
|
379
382
|
Object.defineProperty(this, key, {
|
|
380
383
|
configurable: true,
|
|
381
384
|
enumerable: false,
|
|
@@ -536,7 +536,11 @@ var defaultLocalProperty = {
|
|
|
536
536
|
get: function JSTimeZone_getLocal(){
|
|
537
537
|
var timezone = null;
|
|
538
538
|
if (localIdentifier !== null){
|
|
539
|
-
|
|
539
|
+
if (localIdentifier === "UTC"){
|
|
540
|
+
timezone = JSTimeZone.utc;
|
|
541
|
+
}else{
|
|
542
|
+
timezone = JSTimeZone.initWithIdentifier(localIdentifier);
|
|
543
|
+
}
|
|
540
544
|
}
|
|
541
545
|
Object.defineProperty(JSTimeZone, 'local', {configurable: true, value: timezone});
|
|
542
546
|
return timezone;
|
|
@@ -557,7 +561,7 @@ Object.defineProperties(JSTimeZone, {
|
|
|
557
561
|
systemTimeZoneIdentifier: {
|
|
558
562
|
get: function JSTimeZone_getSystemTimeZoneIdentifier(){
|
|
559
563
|
// FIXME: if no identifier, try to guess based on offset?
|
|
560
|
-
return Intl.DateTimeFormat().resolvedOptions().timeZone ||
|
|
564
|
+
return Intl.DateTimeFormat().resolvedOptions().timeZone || "UTC";
|
|
561
565
|
}
|
|
562
566
|
},
|
|
563
567
|
|
|
@@ -145,6 +145,23 @@ JSClass("UILayer", JSObject, {
|
|
|
145
145
|
this.didChangeProperty('position');
|
|
146
146
|
},
|
|
147
147
|
|
|
148
|
+
untransformedFrame: JSDynamicProperty(),
|
|
149
|
+
|
|
150
|
+
getUntransformedFrame: function(){
|
|
151
|
+
var bounds = this.model.bounds;
|
|
152
|
+
var anchorPoint = this.model.anchorPoint;
|
|
153
|
+
var offset = JSPoint(anchorPoint.x * bounds.size.width, anchorPoint.y * bounds.size.height);
|
|
154
|
+
return JSRect(this.model.position.subtracting(offset), bounds.size);
|
|
155
|
+
},
|
|
156
|
+
|
|
157
|
+
setUntransformedFrame: function(frame){
|
|
158
|
+
var bounds = this.model.bounds;
|
|
159
|
+
var anchorPoint = this.model.anchorPoint;
|
|
160
|
+
var offset = JSPoint(anchorPoint.x * frame.size.width, anchorPoint.y * frame.size.height);
|
|
161
|
+
this.bounds = JSRect(bounds.origin, frame.size);
|
|
162
|
+
this.position = frame.origin.adding(offset);
|
|
163
|
+
},
|
|
164
|
+
|
|
148
165
|
setBounds: function(bounds){
|
|
149
166
|
// When the bounds origin changes, it's like a scrolling view, and we need to update the sublayers
|
|
150
167
|
// When the bounds change size, the position and frame both need to be recalculated accordingly
|
|
@@ -142,6 +142,12 @@ JSClass("UIListView", UIScrollView, {
|
|
|
142
142
|
if (spec.containsKey("showsFocusRing")){
|
|
143
143
|
this._showsFocusRing = spec.valueForKey("showsFocusRing");
|
|
144
144
|
}
|
|
145
|
+
if (spec.containsKey("listHeaderView")){
|
|
146
|
+
this.listHeaderView = spec.valueForKey("listHeaderView", UIView);
|
|
147
|
+
}
|
|
148
|
+
if (spec.containsKey("listFooterView")){
|
|
149
|
+
this.listFooterView = spec.valueForKey("listFooterView", UIView);
|
|
150
|
+
}
|
|
145
151
|
},
|
|
146
152
|
|
|
147
153
|
_commonListInit: function(){
|
|
@@ -1553,8 +1559,7 @@ JSClass("UIListView", UIScrollView, {
|
|
|
1553
1559
|
cell.position = JSPoint(rect.origin.x + cell.bounds.size.width * cell.anchorPoint.x, rect.origin.y + cell.bounds.size.height * cell.anchorPoint.y);
|
|
1554
1560
|
cell.active = false;
|
|
1555
1561
|
this._updateCellState(cell);
|
|
1556
|
-
|
|
1557
|
-
styler.updateCell(cell, indexPath);
|
|
1562
|
+
cell.update();
|
|
1558
1563
|
cell.setNeedsLayout();
|
|
1559
1564
|
return cell;
|
|
1560
1565
|
},
|
|
@@ -1961,12 +1966,10 @@ JSClass("UIListView", UIScrollView, {
|
|
|
1961
1966
|
|
|
1962
1967
|
_updateVisibleCellStyles: function(){
|
|
1963
1968
|
var item;
|
|
1964
|
-
var styler;
|
|
1965
1969
|
for (var i = 0, l = this._visibleItems.length; i < l; ++i){
|
|
1966
1970
|
item = this._visibleItems[i];
|
|
1967
1971
|
if (item.kind === VisibleItem.Kind.cell){
|
|
1968
|
-
|
|
1969
|
-
styler.updateCell(item.view, item.view.indexPath);
|
|
1972
|
+
item.view.update();
|
|
1970
1973
|
}
|
|
1971
1974
|
}
|
|
1972
1975
|
},
|
|
@@ -1431,7 +1431,7 @@ JSClass("UIWindowTitlelessStyler", UIWindowStyler, {
|
|
|
1431
1431
|
closeButtonImages: null,
|
|
1432
1432
|
|
|
1433
1433
|
init: function(){
|
|
1434
|
-
|
|
1434
|
+
UIWindowTitlelessStyler.$super.init.call(this);
|
|
1435
1435
|
this.shadowColor = JSColor.windowShadow;
|
|
1436
1436
|
this.backgroundColor = JSColor.window;
|
|
1437
1437
|
this.closeButtonImages = {
|
|
@@ -1443,8 +1443,42 @@ JSClass("UIWindowTitlelessStyler", UIWindowStyler, {
|
|
|
1443
1443
|
this.toolbarTitleColor = JSColor.toolbarTitle;
|
|
1444
1444
|
},
|
|
1445
1445
|
|
|
1446
|
+
initWithSpec: function(spec){
|
|
1447
|
+
UIWindowTitlelessStyler.$super.initWithSpec.call(this, spec);
|
|
1448
|
+
if (spec.containsKey("backgroundColor")){
|
|
1449
|
+
this.backgroundColor = spec.valueForKey("backgroundColor", JSColor);
|
|
1450
|
+
}else{
|
|
1451
|
+
this.backgroundColor = JSColor.window;
|
|
1452
|
+
}
|
|
1453
|
+
if (spec.containsKey("shadowColor")){
|
|
1454
|
+
this.shadowColor = spec.valueForKey("shadowColor", JSColor);
|
|
1455
|
+
}else{
|
|
1456
|
+
this.shadowColor = JSColor.windowShadow;
|
|
1457
|
+
}
|
|
1458
|
+
if (spec.containsKey("shadowRadius")){
|
|
1459
|
+
this.shadowRadius = spec.valueForKey("shadowRadius");
|
|
1460
|
+
}
|
|
1461
|
+
if (spec.containsKey("inactiveShadowRadius")){
|
|
1462
|
+
this.inactiveShadowRadius = spec.valueForKey("inactiveShadowRadius");
|
|
1463
|
+
}
|
|
1464
|
+
if (spec.containsKey("cornerRadius")){
|
|
1465
|
+
this.cornerRadius = spec.valueForKey("cornerRadius");
|
|
1466
|
+
}
|
|
1467
|
+
if (spec.containsKey("toolbarTitleColor")){
|
|
1468
|
+
this.toolbarTitleColor = spec.valueForKey("toolbarTitleColor", JSColor);
|
|
1469
|
+
}else{
|
|
1470
|
+
this.toolbarTitleColor = JSColor.toolbarTitle;
|
|
1471
|
+
}
|
|
1472
|
+
this.closeButtonImages = {
|
|
1473
|
+
inactive: images.closeInactive,
|
|
1474
|
+
normal: images.closeNormal,
|
|
1475
|
+
over: images.closeOver,
|
|
1476
|
+
active: images.closeActive
|
|
1477
|
+
};
|
|
1478
|
+
},
|
|
1479
|
+
|
|
1446
1480
|
initializeWindow: function(window){
|
|
1447
|
-
|
|
1481
|
+
UIWindowTitlelessStyler.$super.initializeWindow.call(this, window);
|
|
1448
1482
|
var closeButton = UIButton.initWithStyler(UIButton.Styler.custom);
|
|
1449
1483
|
closeButton.setImageForState(this.closeButtonImages.normal, UIControl.State.normal);
|
|
1450
1484
|
closeButton.setImageForState(this.closeButtonImages.over, UIControl.State.over);
|
|
@@ -1468,7 +1502,7 @@ JSClass("UIWindowTitlelessStyler", UIWindowStyler, {
|
|
|
1468
1502
|
},
|
|
1469
1503
|
|
|
1470
1504
|
layoutWindow: function(window){
|
|
1471
|
-
|
|
1505
|
+
UIWindowTitlelessStyler.$super.layoutWindow.call(this, window);
|
|
1472
1506
|
var controlsView = window.stylerProperties.controlsView;
|
|
1473
1507
|
var closeButton = window.stylerProperties.closeButton;
|
|
1474
1508
|
var toolbar = window.stylerProperties.toolbar;
|