@breakside/jskit 2022.50.0 → 2022.52.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/Error+JS.js +6 -1
- package/Frameworks/Foundation.jsframework/JS/JSTextFramesetter.js +1 -1
- package/Frameworks/Foundation.jsframework/io.breakside.JSKit.Foundation-bundle.js +2 -2
- package/Frameworks/SecurityKit.jsframework/Info.json +2 -2
- package/Frameworks/SecurityKit.jsframework/JS/SECSign+Node.js +1 -1
- package/Frameworks/SecurityKit.jsframework/io.breakside.JSKit.SecurityKit-bundle.js +2 -2
- package/Info.json +2 -2
- package/Node/KeyCommand.js +1 -1
- package/Node/KeypairCommand.js +73 -0
- package/Node/io.breakside.jskit-bundle.js +2 -2
- package/Node/jskit +1 -0
- package/Node/main.js +1 -0
- 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/CHBarChart.js +1 -1
- package/Root/Frameworks/ChartKit/CHStackedAreaChart.js +0 -2
- package/Root/Frameworks/ChartKit/CHStackedBarChart.js +0 -2
- 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/Error+JS.js +6 -1
- package/Root/Frameworks/Foundation/Info.yaml +1 -1
- package/Root/Frameworks/Foundation/JSTextFramesetter.js +1 -1
- 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/NotificationKit/NKHTMLUserNotificationCenter.js +2 -2
- 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/SecurityKit/SECSign+Node.js +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/UIDevice+HTML.js +29 -18
- package/Root/Frameworks/UIKit/UIDevice.js +15 -1
- package/Root/Frameworks/UIKit/UIHTMLApplication.js +36 -21
- package/Root/Frameworks/UIKit/UIListView.js +20 -2
- package/Root/Frameworks/UIKit/UIMenuView.js +1 -0
- package/Root/Frameworks/UIKit/UIScrollGestureRecognizer.js +184 -0
- package/Root/Frameworks/UIKit/UIStackView.js +4 -0
- package/Root/Frameworks/UIKit/UIWindow.js +3 -0
- package/Root/Frameworks/UIKitTesting/Info.yaml +1 -1
- package/Root/Templates/html/${PROJECT_NAME}/MainWindow.spec.yaml +2 -4
- package/Root/Templates/html/${PROJECT_NAME}/www/HTMLAppBootstrapper.js +24 -9
- package/Root/Templates/html/${PROJECT_NAME}/www/index.html +45 -30
- package/Root/Templates/html/${PROJECT_NAME}/www/service-worker.js +3 -2
- package/package.json +1 -1
|
@@ -7,13 +7,7 @@
|
|
|
7
7
|
<meta name="theme-color" media="(prefers-color-scheme: dark)" content="rgb(38,38,38)">
|
|
8
8
|
<title></title>
|
|
9
9
|
<base href="/">
|
|
10
|
-
<style
|
|
11
|
-
@import url('https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,600&display=swap');
|
|
12
|
-
* {
|
|
13
|
-
cursor: default;
|
|
14
|
-
user-select: none;
|
|
15
|
-
-webkit-user-select: none;
|
|
16
|
-
}
|
|
10
|
+
<style type="text/css">
|
|
17
11
|
#splash {
|
|
18
12
|
position: fixed;
|
|
19
13
|
top: 0;
|
|
@@ -21,8 +15,9 @@
|
|
|
21
15
|
right: 0;
|
|
22
16
|
bottom: 0;
|
|
23
17
|
background-color: rgb(255,255,255);
|
|
18
|
+
z-index: 100;
|
|
24
19
|
}
|
|
25
|
-
#status {
|
|
20
|
+
#splash-status {
|
|
26
21
|
position: absolute;
|
|
27
22
|
opacity: 0;
|
|
28
23
|
top: 50%;
|
|
@@ -31,14 +26,17 @@
|
|
|
31
26
|
white-space: nowrap;
|
|
32
27
|
overflow: hidden;
|
|
33
28
|
text-overflow: ellipsis;
|
|
34
|
-
font: 300 16px/24px "
|
|
29
|
+
font: 300 16px/24px "Helvetica", sans-serif;
|
|
35
30
|
height: 24px;
|
|
36
31
|
text-align: center;
|
|
37
32
|
transition-property: opacity, color, margin-top;
|
|
38
33
|
transition-duration: .25s;
|
|
39
34
|
color: rgb(164,164,164);
|
|
35
|
+
cursor: default;
|
|
36
|
+
user-select: none;
|
|
37
|
+
-webkit-user-select: none;
|
|
40
38
|
}
|
|
41
|
-
#details {
|
|
39
|
+
#splash-details {
|
|
42
40
|
position: absolute;
|
|
43
41
|
opacity: 0;
|
|
44
42
|
top: 50%;
|
|
@@ -47,13 +45,16 @@
|
|
|
47
45
|
left: 40px;
|
|
48
46
|
overflow: hidden;
|
|
49
47
|
text-overflow: ellipsis;
|
|
50
|
-
font: 300 16px/20px "
|
|
48
|
+
font: 300 16px/20px "Helvetica", sans-serif;
|
|
51
49
|
text-align: center;
|
|
52
50
|
transition: opacity linear .5s .5s;
|
|
53
51
|
opacity: 0;
|
|
54
52
|
color: rgb(192,192,192);
|
|
53
|
+
cursor: default;
|
|
54
|
+
user-select: none;
|
|
55
|
+
-webkit-user-select: none;
|
|
55
56
|
}
|
|
56
|
-
#progress {
|
|
57
|
+
#splash-progress {
|
|
57
58
|
opacity: 0;
|
|
58
59
|
position: absolute;
|
|
59
60
|
box-sizing: border-box;
|
|
@@ -69,33 +70,36 @@
|
|
|
69
70
|
transition-duration: .25s;
|
|
70
71
|
background-color: rgba(245,245,245);
|
|
71
72
|
box-shadow: inset 0 0 2px rgba(0,0,0,0.15);
|
|
73
|
+
cursor: default;
|
|
74
|
+
user-select: none;
|
|
75
|
+
-webkit-user-select: none;
|
|
72
76
|
}
|
|
73
|
-
#progress-bar {
|
|
77
|
+
#splash-progress-bar {
|
|
74
78
|
height: 100%;
|
|
75
79
|
width: 0%;
|
|
76
80
|
background-color: rgb(224,224,224);
|
|
77
81
|
}
|
|
78
|
-
#splash.error #status {
|
|
82
|
+
#splash.error #splash-status {
|
|
79
83
|
font-weight: 600;
|
|
80
84
|
}
|
|
81
|
-
#splash.error #details {
|
|
85
|
+
#splash.error #splash-details {
|
|
82
86
|
opacity: 1;
|
|
83
87
|
}
|
|
84
88
|
@media (prefers-color-scheme: dark) {
|
|
85
89
|
#splash {
|
|
86
90
|
background-color: rgb(38,38,38);
|
|
87
91
|
}
|
|
88
|
-
#status {
|
|
92
|
+
#splash-status {
|
|
89
93
|
color: rgb(128,128,128);
|
|
90
94
|
}
|
|
91
|
-
#details {
|
|
95
|
+
#splash-details {
|
|
92
96
|
color: rgb(102,102,102);
|
|
93
97
|
}
|
|
94
|
-
#progress {
|
|
98
|
+
#splash-progress {
|
|
95
99
|
background-color: rgba(26,26,26);
|
|
96
100
|
box-shadow: inset 0 0 2px rgba(0,0,0,0.15);
|
|
97
101
|
}
|
|
98
|
-
#progress-bar {
|
|
102
|
+
#splash-progress-bar {
|
|
99
103
|
background-color: rgb(80,80,80);
|
|
100
104
|
}
|
|
101
105
|
}
|
|
@@ -103,9 +107,9 @@
|
|
|
103
107
|
</head>
|
|
104
108
|
<body>
|
|
105
109
|
<div id="splash" role="none presentation">
|
|
106
|
-
<div id="status"></div>
|
|
107
|
-
<div id="progress" role="progressbar" aria-label="Application loading progress" aria-valuemin="0" aria-valuemax="100" aria-valuenow="0" aria-hidden="true"><div id="progress-bar"></div></div>
|
|
108
|
-
<div id="details"></div>
|
|
110
|
+
<div id="splash-status"></div>
|
|
111
|
+
<div id="splash-progress" role="progressbar" aria-label="Application loading progress" aria-valuemin="0" aria-valuemax="100" aria-valuenow="0" aria-hidden="true"><div id="splash-progress-bar"></div></div>
|
|
112
|
+
<div id="splash-details"></div>
|
|
109
113
|
</div>
|
|
110
114
|
<script type="text/javascript" src="HTMLAppBootstrapper.js"></script>
|
|
111
115
|
<script type="text/javascript" jskit>
|
|
@@ -115,11 +119,10 @@
|
|
|
115
119
|
(function(){
|
|
116
120
|
var app = {TEMPLATE: "JSKIT_APP"};
|
|
117
121
|
var splash = document.getElementById('splash');
|
|
118
|
-
var statusLabel = document.getElementById('status');
|
|
119
|
-
var detailsLabel = document.getElementById('details');
|
|
120
|
-
var
|
|
121
|
-
var
|
|
122
|
-
var progressBar = document.getElementById('progress-bar');
|
|
122
|
+
var statusLabel = document.getElementById('splash-status');
|
|
123
|
+
var detailsLabel = document.getElementById('splash-details');
|
|
124
|
+
var progress = document.getElementById('splash-progress');
|
|
125
|
+
var progressBar = document.getElementById('splash-progress-bar');
|
|
123
126
|
var bootstrapper = HTMLAppBootstrapper(document.body, app);
|
|
124
127
|
var downListener = null;
|
|
125
128
|
bootstrapper.onstatus = function index_boostrapper_status(){
|
|
@@ -165,9 +168,9 @@
|
|
|
165
168
|
progress.style.opacity = 0;
|
|
166
169
|
progress.setAttribute("aria-hidden", "true");
|
|
167
170
|
splash.className = 'error';
|
|
168
|
-
statusLabel.innerHTML = "
|
|
171
|
+
statusLabel.innerHTML = "Unable to Start Application";
|
|
169
172
|
detailsLabel.style.opacity = 1;
|
|
170
|
-
detailsLabel.innerHTML = "Don't worry, it wasn't anything you did, and it isn't something we expect to happen under normal usage.<br>We've notified our engineers of the problem, and the best thing you can do is try again soon.";
|
|
173
|
+
detailsLabel.innerHTML = "Apologies, but we couldn't start the application. Don't worry, it wasn't anything you did, and it isn't something we expect to happen under normal usage.<br>We've notified our engineers of the problem, and the best thing you can do is try again soon.";
|
|
171
174
|
reportError(bootstrapper.error, bootstrapper.getLogs());
|
|
172
175
|
break;
|
|
173
176
|
case S.appRequiresNoOtherInstances:
|
|
@@ -183,8 +186,20 @@
|
|
|
183
186
|
break;
|
|
184
187
|
case S.appLaunched:
|
|
185
188
|
window.requestAnimationFrame(function(){
|
|
189
|
+
progress.style.opacity = 0;
|
|
190
|
+
progress.setAttribute("aria-hidden", "true");
|
|
191
|
+
statusLabel.style.opacity = 0;
|
|
186
192
|
splash.parentNode.removeChild(splash);
|
|
187
|
-
|
|
193
|
+
});
|
|
194
|
+
break;
|
|
195
|
+
case S.appCrashed:
|
|
196
|
+
document.body.appendChild(splash);
|
|
197
|
+
statusLabel.innerHTML = "Application Error";
|
|
198
|
+
detailsLabel.innerHTML = "Apologies, but the application needs to restart. We've notified our engineers of the problem.<br><br><button onclick='location.reload()'>Restart</button>";
|
|
199
|
+
window.requestAnimationFrame(function(){
|
|
200
|
+
splash.className = 'error';
|
|
201
|
+
statusLabel.style.opacity = 1;
|
|
202
|
+
detailsLabel.style.opacity = 1;
|
|
188
203
|
});
|
|
189
204
|
break;
|
|
190
205
|
}
|
|
@@ -18,12 +18,13 @@ function install(){
|
|
|
18
18
|
var loaded = 0;
|
|
19
19
|
var total = required.length;
|
|
20
20
|
return clients.matchAll({includeUncontrolled: true}).then(function(clients){
|
|
21
|
-
var client = clients[0];
|
|
22
21
|
return caches.open(cacheKey).then(function(cache){
|
|
23
22
|
return Promise.all(required.map(function(resource){
|
|
24
23
|
return cache.add(new Request(resource.path, {cache: resource.cache || "default"})).then(function(){
|
|
25
24
|
++loaded;
|
|
26
|
-
|
|
25
|
+
for (let client of clients){
|
|
26
|
+
client.postMessage({type: 'progress', loaded: loaded, total: total});
|
|
27
|
+
}
|
|
27
28
|
});
|
|
28
29
|
}));
|
|
29
30
|
});
|