@breakside/jskit 2022.26.1 → 2022.32.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.
Files changed (63) hide show
  1. package/Frameworks/DOM.jsframework/Info.json +2 -2
  2. package/Frameworks/DOM.jsframework/io.breakside.JSKit.DOM-bundle.js +2 -2
  3. package/Frameworks/FontKit.jsframework/Info.json +2 -2
  4. package/Frameworks/FontKit.jsframework/io.breakside.JSKit.FontKit-bundle.js +2 -2
  5. package/Frameworks/Foundation.jsframework/Info.json +2 -2
  6. package/Frameworks/Foundation.jsframework/JS/JSFileManager+HTML.js +29 -19
  7. package/Frameworks/Foundation.jsframework/JS/JSTextTypesetter.js +2 -3
  8. package/Frameworks/Foundation.jsframework/JS/JSTimeZone.js +11 -4
  9. package/Frameworks/Foundation.jsframework/JS/JSUserDefaults.js +2 -2
  10. package/Frameworks/Foundation.jsframework/JS/String+JS.js +367 -0
  11. package/Frameworks/Foundation.jsframework/JS/UnicodeChar.js +283 -1
  12. package/Frameworks/Foundation.jsframework/JS/UnicodeProperties.js +12 -0
  13. package/Frameworks/Foundation.jsframework/io.breakside.JSKit.Foundation-bundle.js +2 -2
  14. package/Frameworks/SecurityKit.jsframework/Info.json +2 -2
  15. package/Frameworks/SecurityKit.jsframework/io.breakside.JSKit.SecurityKit-bundle.js +2 -2
  16. package/Info.json +2 -2
  17. package/Node/HTMLBuilder.js +1 -1
  18. package/Node/io.breakside.jskit-bundle.js +2 -2
  19. package/Root/Frameworks/APIKit/Info.yaml +1 -1
  20. package/Root/Frameworks/APIKitTesting/Info.yaml +1 -1
  21. package/Root/Frameworks/AuthKit/Info.yaml +1 -1
  22. package/Root/Frameworks/CSSOM/Info.yaml +1 -1
  23. package/Root/Frameworks/ChartKit/Info.yaml +1 -1
  24. package/Root/Frameworks/ConferenceKit/Info.yaml +1 -1
  25. package/Root/Frameworks/DBKit/Info.yaml +1 -1
  26. package/Root/Frameworks/DOM/Info.yaml +1 -1
  27. package/Root/Frameworks/Dispatch/Info.yaml +1 -1
  28. package/Root/Frameworks/FontKit/Info.yaml +1 -1
  29. package/Root/Frameworks/Foundation/Info.yaml +1 -1
  30. package/Root/Frameworks/Foundation/JSFileManager+HTML.js +29 -19
  31. package/Root/Frameworks/Foundation/JSTextTypesetter.js +2 -3
  32. package/Root/Frameworks/Foundation/JSTimeZone.js +11 -4
  33. package/Root/Frameworks/Foundation/JSUserDefaults.js +2 -2
  34. package/Root/Frameworks/Foundation/String+JS.js +367 -0
  35. package/Root/Frameworks/Foundation/UnicodeChar.js +283 -1
  36. package/Root/Frameworks/Foundation/UnicodeProperties.js +12 -0
  37. package/Root/Frameworks/ImageKit/Info.yaml +1 -1
  38. package/Root/Frameworks/MediaKit/Info.yaml +1 -1
  39. package/Root/Frameworks/MediaKitUI/Info.yaml +1 -1
  40. package/Root/Frameworks/NotificationKit/Info.yaml +1 -1
  41. package/Root/Frameworks/PDFKit/Info.yaml +1 -1
  42. package/Root/Frameworks/QRKit/Info.yaml +1 -1
  43. package/Root/Frameworks/SearchKit/Info.yaml +1 -1
  44. package/Root/Frameworks/SecurityKit/Info.yaml +1 -1
  45. package/Root/Frameworks/ServerKit/Info.yaml +1 -1
  46. package/Root/Frameworks/ServerKitTesting/Info.yaml +1 -1
  47. package/Root/Frameworks/TestKit/Info.yaml +1 -1
  48. package/Root/Frameworks/UIKit/Info.yaml +1 -1
  49. package/Root/Frameworks/UIKit/UIApplication.js +33 -15
  50. package/Root/Frameworks/UIKit/UICheckbox.js +15 -8
  51. package/Root/Frameworks/UIKit/UICollectionView.js +2 -2
  52. package/Root/Frameworks/UIKit/UIDisplayServer.js +51 -10
  53. package/Root/Frameworks/UIKit/UIHTMLTextTypesetter.js +2 -2
  54. package/Root/Frameworks/UIKit/UILayer.js +3 -0
  55. package/Root/Frameworks/UIKit/UIListView.js +10 -6
  56. package/Root/Frameworks/UIKit/UIMenuView.js +77 -18
  57. package/Root/Frameworks/UIKit/UINavigationBar.js +45 -22
  58. package/Root/Frameworks/UIKit/UIScrollView.js +26 -6
  59. package/Root/Frameworks/UIKit/UISlider.js +1 -1
  60. package/Root/Frameworks/UIKit/UITextField.js +8 -1
  61. package/Root/Frameworks/UIKit/UIView.js +11 -0
  62. package/Root/Frameworks/UIKitTesting/Info.yaml +1 -1
  63. package/package.json +1 -1
@@ -49,6 +49,7 @@ UnicodeChar.GeneralCategoryPropertyMap = {
49
49
 
50
50
  UnicodeChar.LineBreaks = {
51
51
  newLine: 0x000A,
52
+ verticalTab: 0x000B,
52
53
  formFeed: 0x000C,
53
54
  carriageReturn: 0x000D,
54
55
  nextLine: 0x0085,
@@ -56,6 +57,52 @@ UnicodeChar.LineBreaks = {
56
57
  paragraphSeparator: 0x2029
57
58
  };
58
59
 
60
+ UnicodeChar.LineBreakingClass = {
61
+ ambiguous: 0, // AI
62
+ alphabetic: 1, // AL
63
+ breakAfter: 2, // BA
64
+ breakBefore: 3, // BB
65
+ breakOpportunity: 4, // B2
66
+ mandatoryBreak: 5, // BK
67
+ contingentBreak: 6, // CB
68
+ conditionalJapaneseStarter: 7, // CJ
69
+ closePunctuation: 8, // CL
70
+ combiningMark: 9, // CM
71
+ closingParenthesis: 10, // CP
72
+ carriageReturn: 11, // CR
73
+ emojiBase: 12, // EB
74
+ emojiModifier: 13, // EM
75
+ exclamation: 14, // EX
76
+ glue: 15, // GL
77
+ hangulLV: 16, // H2
78
+ hangulLVT: 17, // H3
79
+ hyphen: 18, // HY
80
+ ideographic: 19, // ID
81
+ hebrewLetter: 20, // HL
82
+ inseperable: 21, // IN
83
+ infixNumeric: 22, // IS
84
+ hangulLJambo: 23, // JL
85
+ hangulTJambo: 24, // JT
86
+ hangulVJambo: 25, // JV
87
+ lineFeed: 26, // LF
88
+ nextLine: 27, // NL
89
+ nonstarters: 28, // NS
90
+ numeric: 29, // NU
91
+ openPunctuation: 30, // OP
92
+ postfixNumeric: 31, // PO
93
+ prefixNumeric: 32, // PR
94
+ quotation: 33, // QU
95
+ regionalIndicator: 34, // RI
96
+ complexContentDependent: 35, // SA
97
+ surrogate: 36, // SG
98
+ space: 37, // SP
99
+ symbolsBreakAfter: 38, // SY
100
+ wordJoiner: 39, // WJ
101
+ unknown: 40, // XX
102
+ zeroWidthSpace: 41, // ZW
103
+ zeroWidthJoiner: 42, // ZWJ
104
+ };
105
+
59
106
  UnicodeChar.prototype = Object.create(Object.prototype, {
60
107
 
61
108
  utf16: {
@@ -178,6 +225,241 @@ UnicodeChar.prototype = Object.create(Object.prototype, {
178
225
  }
179
226
  },
180
227
 
228
+ lineBreakingClass: {
229
+ configurable: true,
230
+ get: function UnicodeChar_lazy_lineBreakAmbiguous(){
231
+ // Start with basic ascii (0x00-0x7F)
232
+ if (this.code === 0x0009){
233
+ return UnicodeChar.LineBreakingClass.breakAfter;
234
+ }
235
+ if (this.code === 0x000A){
236
+ return UnicodeChar.LineBreakingClass.lineFeed;
237
+ }
238
+ if (this.code === 0x000B || this.code === 0x000C || this.code === 0x2028 || this.code === 0x2029){
239
+ return UnicodeChar.LineBreakingClass.mandatoryBreak;
240
+ }
241
+ if (this.code === 0x000D){
242
+ return UnicodeChar.LineBreakingClass.carriageReturn;
243
+ }
244
+ if (this.code < 0x0020){
245
+ return UnicodeChar.LineBreakingClass.combiningMark;
246
+ }
247
+ if (this.code === 0x0020){
248
+ return UnicodeChar.LineBreakingClass.space;
249
+ }
250
+ if (this.code === 0x0021){
251
+ return UnicodeChar.LineBreakingClass.exclamation;
252
+ }
253
+ if (this.code === 0x0022 || this.code === 0x0027){
254
+ return UnicodeChar.LineBreakingClass.quotation;
255
+ }
256
+ if (this.code === 0x0023){
257
+ return UnicodeChar.LineBreakingClass.alphabetic;
258
+ }
259
+ if (this.code === 0x0024){
260
+ return UnicodeChar.LineBreakingClass.prefixNumeric;
261
+ }
262
+ if (this.code === 0x0025){
263
+ return UnicodeChar.LineBreakingClass.postfixNumeric;
264
+ }
265
+ if (this.code === 0x0026){
266
+ return UnicodeChar.LineBreakingClass.alphabetic;
267
+ }
268
+ if (this.code === 0x0028){
269
+ return UnicodeChar.LineBreakingClass.openPunctuation;
270
+ }
271
+ if (this.code === 0x0029 || this.code === 0x005D){
272
+ return UnicodeChar.LineBreakingClass.closingParenthesis;
273
+ }
274
+ if (this.code === 0x002A){
275
+ return UnicodeChar.LineBreakingClass.alphabetic;
276
+ }
277
+ if (this.code === 0x002B){
278
+ return UnicodeChar.LineBreakingClass.prefixNumeric;
279
+ }
280
+ if ((this.code === 0x002C) || (this.code === 0x002E)){
281
+ return UnicodeChar.LineBreakingClass.infixNumeric;
282
+ }
283
+ if (this.code === 0x002D){
284
+ return UnicodeChar.LineBreakingClass.hyphen;
285
+ }
286
+ if (this.code === 0x002F){
287
+ return UnicodeChar.LineBreakingClass.symbolsBreakAfter;
288
+ }
289
+ if (this.code <= 0x0039){
290
+ return UnicodeChar.LineBreakingClass.numeric;
291
+ }
292
+ if (this.code <= 0x003B){
293
+ return UnicodeChar.LineBreakingClass.infixNumeric;
294
+ }
295
+ if (this.code <= 0x003E){
296
+ return UnicodeChar.LineBreakingClass.alphabetic;
297
+ }
298
+ if (this.code === 0x003F){
299
+ return UnicodeChar.LineBreakingClass.exclamation;
300
+ }
301
+ if (this.code <= 0x005A){
302
+ return UnicodeChar.LineBreakingClass.alphabetic;
303
+ }
304
+ if (this.code === 0x005B){
305
+ return UnicodeChar.LineBreakingClass.openPunctuation;
306
+ }
307
+ if (this.code === 0x005C){
308
+ return UnicodeChar.LineBreakingClass.prefixNumeric;
309
+ }
310
+ if (this.code === 0x005D){
311
+ return UnicodeChar.LineBreakingClass.closingParenthesis;
312
+ }
313
+ if (this.code <= 0x007A){
314
+ return UnicodeChar.LineBreakingClass.alphabetic;
315
+ }
316
+ if (this.code === 0x007B){
317
+ return UnicodeChar.LineBreakingClass.openPunctuation;
318
+ }
319
+ if (this.code === 0x007C){
320
+ return UnicodeChar.LineBreakingClass.breakAfter;
321
+ }
322
+ if (this.code === 0x007D){
323
+ return UnicodeChar.LineBreakingClass.closePunctuation;
324
+ }
325
+ if (this.code === 0x007E){
326
+ return UnicodeChar.LineBreakingClass.alphabetic;
327
+ }
328
+ if (this.code === 0x007F){
329
+ return UnicodeChar.LineBreakingClass.combiningMark;
330
+ }
331
+
332
+ // Next do simple classes with only one or a few characters
333
+ if (this.code === 0x0085){
334
+ return UnicodeChar.LineBreakingClass.nextLine;
335
+ }
336
+ if (this.code === 0x200B){
337
+ return UnicodeChar.LineBreakingClass.zeroWidthSpace;
338
+ }
339
+ if (this.code === 0x200D){
340
+ return UnicodeChar.LineBreakingClass.zeroWidthJoiner;
341
+ }
342
+ if (this.code === 0x2060 || this.code === 0xFEFF){
343
+ return UnicodeChar.LineBreakingClass.wordJoiner;
344
+ }
345
+ if (this.code === 0x2014 || (this.code >= 0x2E3A && this.code <= 0x2E3B)){
346
+ return UnicodeChar.LineBreakingClass.breakOpportunity;
347
+ }
348
+ if (this.code === 0xFFFC){
349
+ return UnicodeChar.LineBreakingClass.contingentBreak;
350
+ }
351
+ if (this.code >= 0x1F3FB && this.code <= 0x1F3FF){
352
+ return UnicodeChar.LineBreakingClass.emojiModifier;
353
+ }
354
+ if (this.code >= 0x2024 && this.code <= 0x2026){
355
+ return UnicodeChar.LineBreakingClass.inseperable;
356
+ }
357
+ if ((this.code === 0x22EF) || (this.code === 0xFE19) || (this.code === 0x10AF6)){
358
+ return UnicodeChar.LineBreakingClass.inseperable;
359
+ }
360
+ if ((this.code === 0x037E) || (this.code === 0x0589) || (this.code === 0x060C) || (this.code === 0x060D)){
361
+ return UnicodeChar.LineBreakingClass.infixNumeric;
362
+ }
363
+ if ((this.code === 0x07F8) || (this.code === 0x2044) || (this.code === 0xFE10) || (this.code === 0xFE13) || (this.code === 0xFE14)){
364
+ return UnicodeChar.LineBreakingClass.infixNumeric;
365
+ }
366
+ if (this.code >= 0x1F1E6 && this.code <= 0x1F1FF){
367
+ return UnicodeChar.LineBreakingClass.regionalIndicator;
368
+ }
369
+ if (this.code >= 0xD800 && this.code <= 0xDFFF){
370
+ // Surrogate, resolve to alphabetic
371
+ // return UnicodeChar.LineBreakingClass.surrogate;
372
+ return UnicodeChar.LineBreakingClass.alphabetic;
373
+ }
374
+ if ((this.code >= 0xE000 && this.code <= 0xF8FF) || (this.code >= 0xF0000 && this.code <= 0xFFFFD) || this.code > 0x100000){
375
+ // Surrogate, resolve to alphabetic
376
+ // return UnicodeChar.LineBreakingClass.unknown;
377
+ return UnicodeChar.LineBreakingClass.alphabetic;
378
+ }
379
+
380
+ // Next, use properties that search larger ranges of characters
381
+ if (this.lineBreakIsNumeric){
382
+ return UnicodeChar.LineBreakingClass.numeric;
383
+ }
384
+ if (this.lineBreakIsInfixNumeric){
385
+ return UnicodeChar.LineBreakingClass.infixNumeric;
386
+ }
387
+ if (this.lineBreakIsQuotation){
388
+ return UnicodeChar.LineBreakingClass.quotation;
389
+ }
390
+ if (UnicodeProperties.isLineBreak(this.code, 'Emoji_Base')){
391
+ return UnicodeChar.LineBreakingClass.emojiBase;
392
+ }
393
+ if (UnicodeProperties.isLineBreak(this.code, 'Exclamation')){
394
+ return UnicodeChar.LineBreakingClass.exclamation;
395
+ }
396
+ if (UnicodeProperties.isLineBreak(this.code, 'Break_Before')){
397
+ return UnicodeChar.LineBreakingClass.breakBefore;
398
+ }
399
+ if (UnicodeProperties.isLineBreak(this.code, 'Break_After')){
400
+ return UnicodeChar.LineBreakingClass.breakAfter;
401
+ }
402
+ if (UnicodeProperties.isLineBreak(this.code, 'Conditional_Japanese')){
403
+ // maps to nonstarters
404
+ // return UnicodeChar.LineBreakingClass.conditionalJapaneseStarter;
405
+ return UnicodeChar.LineBreakingClass.nonstarters;
406
+ }
407
+ if (UnicodeProperties.isLineBreak(this.code, 'Close_Punctuation')){
408
+ return UnicodeChar.LineBreakingClass.closePunctuation;
409
+ }
410
+ if (UnicodeProperties.isLineBreak(this.code, 'Combining_Mark')){
411
+ return UnicodeChar.LineBreakingClass.combiningMark;
412
+ }
413
+ if (UnicodeProperties.isLineBreak(this.code, 'Glue')){
414
+ return UnicodeChar.LineBreakingClass.glue;
415
+ }
416
+ if (UnicodeProperties.isLineBreak(this.code, 'Nonstarters')){
417
+ return UnicodeChar.LineBreakingClass.nonstarters;
418
+ }
419
+ if (UnicodeProperties.isLineBreak(this.code, 'Open_Punctuation')){
420
+ return UnicodeChar.LineBreakingClass.openPunctuation;
421
+ }
422
+ if (UnicodeProperties.isLineBreak(this.code, 'Postfix_Numeric')){
423
+ return UnicodeChar.LineBreakingClass.postfixNumeric;
424
+ }
425
+ if (UnicodeProperties.isLineBreak(this.code, 'Prefix_Numeric')){
426
+ return UnicodeChar.LineBreakingClass.prefixNumeric;
427
+ }
428
+ if (this.lineBreakIsComplexContext){
429
+ // complex content resolves to combiningMark or alphabetic
430
+ // return UnicodeChar.LineBreakingClass.complexContentDependent;
431
+ if (this.generalCategoryIsSpacingMark){ // FIXME: also include non-spacing-marks
432
+ return UnicodeChar.LineBreakingClass.combiningMark;
433
+ }else{
434
+ return UnicodeChar.LineBreakingClass.alphabetic;
435
+ }
436
+ }
437
+ if (this.hangulSyllableTypeIsL){
438
+ return UnicodeChar.LineBreakingClass.hangulLJambo;
439
+ }
440
+ if (this.hangulSyllableTypeIsT){
441
+ return UnicodeChar.LineBreakingClass.hangulTJambo;
442
+ }
443
+ if (this.hangulSyllableTypeIsV){
444
+ return UnicodeChar.LineBreakingClass.hangulVJambo;
445
+ }
446
+ if (this.hangulSyllableTypeIsLV){
447
+ return UnicodeChar.LineBreakingClass.hangulLV;
448
+ }
449
+ if (this.hangulSyllableTypeIsLVT){
450
+ return UnicodeChar.LineBreakingClass.hangulLVT;
451
+ }
452
+ if (this.ideographic){
453
+ return UnicodeChar.LineBreakingClass.ideographic;
454
+ }
455
+ if (this.wordBreakIsHebrewLetter){
456
+ return UnicodeChar.LineBreakingClass.hebrewLetter;
457
+ }
458
+ // Finally, anything else is considered alphabetic
459
+ return UnicodeChar.LineBreakingClass.alphabetic;
460
+ }
461
+ },
462
+
181
463
  lineBreakIsComplexContext: {
182
464
  configurable: true,
183
465
  get: function UnicodeChar_lazy_lineBreakIsComplexContext(){
@@ -786,6 +1068,6 @@ UnicodeChar.prototype = Object.create(Object.prototype, {
786
1068
  Object.defineProperty(this, 'isParagraphBreak', {value: this.code === UnicodeChar.LineBreaks.newLine || this.code === UnicodeChar.LineBreaks.formFeed || this.code === UnicodeChar.LineBreaks.carriageReturn || this.code === UnicodeChar.LineBreaks.nextLine || this.code === UnicodeChar.LineBreaks.paragraphSeparator});
787
1069
  return this.isParagraphBreak;
788
1070
  }
789
- }
1071
+ },
790
1072
 
791
1073
  });
@@ -48,6 +48,18 @@ JSGlobalObject.UnicodeProperties = {
48
48
  Line_Break_Numeric: [[48, 10], [1632, 10], [1643, 2], [1776, 10], [1984, 10], [2406, 10], [2534, 10], [2662, 10], [2790, 10], [2918, 10], [3046, 10], [3174, 10], [3302, 10], [3430, 10], [3558, 10], [3664, 10], [3792, 10], [3872, 10], [4160, 10], [4240, 10], [6112, 10], [6160, 10], [6470, 10], [6608, 10], [6784, 10], [6800, 10], [6992, 10], [7088, 10], [7232, 10], [7248, 10], [42528, 10], [43216, 10], [43264, 10], [43472, 10], [43504, 10], [43600, 10], [44016, 10], [66720, 10], [69734, 10], [69872, 10], [69942, 10], [70096, 10], [70384, 10], [70864, 10], [71248, 10], [71360, 10], [71472, 10], [71904, 10], [92768, 10], [93008, 10], [120782, 50]],
49
49
  Line_Break_Complex_Context: [[3585, 48], [3633, 1], [3634, 2], [3636, 7], [3648, 6], [3654, 1], [3655, 8], [3713, 2], [3716, 1], [3719, 2], [3722, 1], [3725, 1], [3732, 4], [3737, 7], [3745, 3], [3749, 1], [3751, 1], [3754, 2], [3757, 4], [3761, 1], [3762, 2], [3764, 6], [3771, 2], [3773, 1], [3776, 5], [3782, 1], [3784, 6], [3804, 4], [4096, 43], [4139, 2], [4141, 4], [4145, 1], [4146, 6], [4152, 1], [4153, 2], [4155, 2], [4157, 2], [4159, 1], [4176, 6], [4182, 2], [4184, 2], [4186, 4], [4190, 3], [4193, 1], [4194, 3], [4197, 2], [4199, 7], [4206, 3], [4209, 4], [4213, 13], [4226, 1], [4227, 2], [4229, 2], [4231, 6], [4237, 1], [4238, 1], [4239, 1], [4250, 3], [4253, 1], [4254, 2], [6016, 52], [6068, 2], [6070, 1], [6071, 7], [6078, 8], [6086, 1], [6087, 2], [6089, 11], [6103, 1], [6108, 1], [6109, 1], [6480, 30], [6512, 5], [6528, 44], [6576, 26], [6618, 1], [6622, 2], [6688, 53], [6741, 1], [6742, 1], [6743, 1], [6744, 7], [6752, 1], [6753, 1], [6754, 1], [6755, 2], [6757, 8], [6765, 6], [6771, 10], [6816, 7], [6823, 1], [6824, 6], [43488, 5], [43493, 1], [43494, 1], [43495, 9], [43514, 5], [43616, 16], [43632, 1], [43633, 6], [43639, 3], [43642, 1], [43643, 1], [43644, 1], [43645, 1], [43646, 2], [43648, 48], [43696, 1], [43697, 1], [43698, 3], [43701, 2], [43703, 2], [43705, 5], [43710, 2], [43712, 1], [43713, 1], [43714, 1], [43739, 2], [43741, 1], [43742, 2], [71424, 26], [71453, 3], [71456, 2], [71458, 4], [71462, 1], [71463, 5], [71482, 2], [71487, 1]],
50
50
  Line_Break_Quotation: [[34, 1], [39, 1], [171, 1], [187, 1], [8216, 1], [8217, 1], [8219, 2], [8221, 1], [8223, 1], [8249, 1], [8250, 1], [10075, 6], [11776, 2], [11778, 1], [11779, 1], [11780, 1], [11781, 1], [11782, 3], [11785, 1], [11786, 1], [11787, 1], [11788, 1], [11789, 1], [11804, 1], [11805, 1], [11808, 1], [11809, 1], [128630, 3]],
51
+ Line_Break_Emoji_Base: [[9757,1],[9977,1],[9994,4],[127877,1],[127938,3],[127943,1],[127946,3],[128066,2],[128070,11],[128102,19],[128124,1],[128129,3],[128133,3],[128143,1],[128145,1],[128170,1],[128372,2],[128378,1],[128400,1],[128405,2],[128581,3],[128587,5],[128675,1],[128692,3],[128704,1],[128716,1],[129292,1],[129295,1],[129304,8],[129318,1],[129328,10],[129340,3],[129399,1],[129461,2],[129464,2],[129467,1],[129485,3],[129489,13],[129731,3],[129776,7]],
52
+ Line_Break_Exclamation: [[33,1],[63,1],[1478,1],[1563,1],[1565,3],[1748,1],[2041,1],[3853,5],[3860,1],[6146,2],[6152,2],[6468,2],[10082,2],[11513,1],[11518,1],[11822,1],[11859,2],[42510,1],[43126,2],[65045,2],[65110,2],[65281,1],[65311,1],[71108,2],[72817,1]],
53
+ Line_Break_Break_After: [[9, 1], [124, 1], [173, 1], [1418, 1], [1470, 1], [2404, 2], [3674, 2], [3851, 1], [3892, 1], [3967, 1], [3973, 1], [4030, 2], [4050, 1], [4170, 2], [4961, 1], [5120, 1], [5760, 1], [5867, 3], [5941, 2], [6100, 2], [6104, 1], [6106, 1], [6148, 2], [7002, 2], [7005, 4], [7037, 2], [7227, 5], [7294, 2], [8192, 7], [8200, 3], [8208, 1], [8210, 2], [8231, 1], [8278, 1], [8280, 4], [8285, 2], [8287, 1], [11514, 3], [11519, 1], [11632, 1], [11790, 8], [11799, 1], [11801, 1], [11818, 4], [11824, 2], [11827, 2], [11836, 3], [11840, 1], [11841, 1], [11843, 8], [11852, 1], [11854, 2], [11869, 1], [12288, 1], [42238, 2], [42509, 1], [42511, 1], [42739, 5], [43214, 2], [43310, 2], [43463, 3], [43613, 3], [43760, 2], [44011, 1], [65792, 3], [66463, 1], [66512, 1], [67671, 1], [67871, 1], [68176, 8], [68336, 6], [68409, 7], [69293, 1], [69703, 2], [69822, 4], [69952, 4], [70085, 2], [70088, 1], [70109, 3], [70200, 2], [70203, 2], [70313, 1], [70731, 4], [70746, 2], [71106, 2], [71113, 15], [71233, 2], [71484, 3], [72004, 3], [72257, 4], [72346, 3], [72353, 2], [72769, 5], [73727, 1], [74864, 5], [92782, 2], [92917, 1], [92983, 3], [92996, 1], [93847, 2], [113823, 1], [121479, 4]],
54
+ Line_Break_Break_Before: [[180, 1], [712, 1], [716, 1], [735, 1], [3191, 1], [3204, 1], [3841, 3], [3844, 1], [3846, 2], [3849, 2], [4048, 2], [4051, 1], [6150, 1], [8189, 1], [43124, 2], [43260, 1], [70005, 1], [70107, 1], [71105, 1], [71264, 13], [72162, 1], [72255, 1], [72261, 1], [72350, 3], [72816, 1]],
55
+ Line_Break_Conditional_Japanese: [[12353, 1], [12355, 1], [12357, 1], [12359, 1], [12361, 1], [12387, 1], [12419, 1], [12421, 1], [12423, 1], [12430, 1], [12437, 2], [12449, 1], [12451, 1], [12453, 1], [12455, 1], [12457, 1], [12483, 1], [12515, 1], [12517, 1], [12519, 1], [12526, 1], [12533, 2], [12540, 1], [12784, 16], [65383, 9], [65392, 1], [110928, 3], [110948, 4]],
56
+ Line_Break_Close_Punctuation: [[125, 1], [3899, 1], [3901, 1], [5788, 1], [8262, 1], [8318, 1], [8334, 1], [8969, 1], [8971, 1], [9002, 1], [10089, 1], [10091, 1], [10093, 1], [10095, 1], [10097, 1], [10099, 1], [10101, 1], [10182, 1], [10215, 1], [10217, 1], [10219, 1], [10221, 1], [10223, 1], [10628, 1], [10630, 1], [10632, 1], [10634, 1], [10636, 1], [10638, 1], [10640, 1], [10642, 1], [10644, 1], [10646, 1], [10648, 1], [10713, 1], [10715, 1], [10749, 1], [11811, 1], [11813, 1], [11815, 1], [11817, 1], [11862, 1], [11864, 1], [11866, 1], [11868, 1], [12289, 2], [12297, 1], [12299, 1], [12301, 1], [12303, 1], [12305, 1], [12309, 1], [12311, 1], [12313, 1], [12315, 1], [12318, 2], [64830, 1], [65041, 2], [65048, 1], [65078, 1], [65080, 1], [65082, 1], [65084, 1], [65086, 1], [65088, 1], [65090, 1], [65092, 1], [65096, 1], [65104, 1], [65106, 1], [65114, 1], [65116, 1], [65118, 1], [65289, 1], [65292, 1], [65294, 1], [65341, 1], [65373, 1], [65376, 1], [65377, 1], [65379, 1], [65380, 1], [78427, 3], [78466, 1], [78471, 1], [78473, 1], [78714, 2], [78904, 1], [83407, 1]],
57
+ Line_Break_Combining_Mark: [[0, 9], [14, 18], [127, 1], [128, 5], [134, 26], [768, 79], [848, 12], [867, 13], [1155, 5], [1160, 2], [1425, 45], [1471, 1], [1473, 2], [1476, 2], [1479, 1], [1552, 11], [1564, 1], [1611, 21], [1648, 1], [1750, 7], [1759, 6], [1767, 2], [1770, 4], [1809, 1], [1840, 27], [1958, 11], [2027, 9], [2045, 1], [2070, 4], [2075, 9], [2085, 3], [2089, 5], [2137, 3], [2200, 8], [2250, 24], [2275, 29], [2304, 3], [2307, 1], [2362, 1], [2363, 1], [2364, 1], [2366, 3], [2369, 8], [2377, 4], [2381, 1], [2382, 2], [2385, 7], [2402, 2], [2433, 1], [2434, 2], [2492, 1], [2494, 3], [2497, 4], [2503, 2], [2507, 2], [2509, 1], [2519, 1], [2530, 2], [2558, 1], [2561, 2], [2563, 1], [2620, 1], [2622, 3], [2625, 2], [2631, 2], [2635, 3], [2641, 1], [2672, 2], [2677, 1], [2689, 2], [2691, 1], [2748, 1], [2750, 3], [2753, 5], [2759, 2], [2761, 1], [2763, 2], [2765, 1], [2786, 2], [2810, 6], [2817, 1], [2818, 2], [2876, 1], [2878, 1], [2879, 1], [2880, 1], [2881, 4], [2887, 2], [2891, 2], [2893, 1], [2901, 2], [2903, 1], [2914, 2], [2946, 1], [3006, 2], [3008, 1], [3009, 2], [3014, 3], [3018, 3], [3021, 1], [3031, 1], [3072, 1], [3073, 3], [3076, 1], [3132, 1], [3134, 3], [3137, 4], [3142, 3], [3146, 4], [3157, 2], [3170, 2], [3201, 1], [3202, 2], [3260, 1], [3262, 1], [3263, 1], [3264, 5], [3270, 1], [3271, 2], [3274, 2], [3276, 2], [3285, 2], [3298, 2], [3328, 2], [3330, 2], [3387, 2], [3390, 3], [3393, 4], [3398, 3], [3402, 3], [3405, 1], [3415, 1], [3426, 2], [3457, 1], [3458, 2], [3530, 1], [3535, 3], [3538, 3], [3542, 1], [3544, 8], [3570, 2], [3864, 2], [3893, 1], [3895, 1], [3897, 1], [3902, 2], [3953, 14], [3968, 5], [3974, 2], [3981, 11], [3993, 36], [4038, 1], [4957, 3], [5906, 3], [5909, 1], [5938, 2], [5940, 1], [5970, 2], [6002, 2], [6155, 3], [6159, 1], [6277, 2], [6313, 1], [6432, 3], [6435, 4], [6439, 2], [6441, 3], [6448, 2], [6450, 1], [6451, 6], [6457, 3], [6679, 2], [6681, 2], [6683, 1], [6783, 1], [6832, 14], [6846, 1], [6847, 16], [6912, 4], [6916, 1], [6964, 1], [6965, 1], [6966, 5], [6971, 1], [6972, 1], [6973, 5], [6978, 1], [6979, 2], [7019, 9], [7040, 2], [7042, 1], [7073, 1], [7074, 4], [7078, 2], [7080, 2], [7082, 1], [7083, 3], [7142, 1], [7143, 1], [7144, 2], [7146, 3], [7149, 1], [7150, 1], [7151, 3], [7154, 2], [7204, 8], [7212, 8], [7220, 2], [7222, 2], [7376, 3], [7380, 13], [7393, 1], [7394, 7], [7405, 1], [7412, 1], [7415, 1], [7416, 2], [7616, 64], [8204, 1], [8206, 2], [8234, 5], [8294, 10], [8400, 13], [8413, 4], [8417, 1], [8418, 3], [8421, 12], [11503, 3], [11647, 1], [11744, 32], [12330, 4], [12334, 2], [12341, 1], [12441, 2], [42607, 1], [42608, 3], [42612, 10], [42654, 2], [42736, 2], [43010, 1], [43014, 1], [43019, 1], [43043, 2], [43045, 2], [43047, 1], [43052, 1], [43136, 2], [43188, 16], [43204, 2], [43232, 18], [43263, 1], [43302, 8], [43335, 11], [43346, 2], [43392, 3], [43395, 1], [43443, 1], [43444, 2], [43446, 4], [43450, 2], [43452, 2], [43454, 3], [43561, 6], [43567, 2], [43569, 2], [43571, 2], [43573, 2], [43587, 1], [43596, 1], [43597, 1], [43755, 1], [43756, 2], [43758, 2], [43765, 1], [43766, 1], [44003, 2], [44005, 1], [44006, 2], [44008, 1], [44009, 2], [44012, 1], [44013, 1], [64286, 1], [65024, 16], [65056, 16], [65529, 3], [66045, 1], [66272, 1], [66422, 5], [68097, 3], [68101, 2], [68108, 4], [68152, 3], [68159, 1], [68325, 2], [68900, 4], [69291, 2], [69446, 11], [69506, 4], [69632, 1], [69633, 1], [69634, 1], [69688, 15], [69744, 1], [69747, 2], [69759, 1], [69760, 2], [69762, 1], [69808, 3], [69811, 4], [69815, 2], [69817, 2], [69826, 1], [69888, 3], [69927, 5], [69932, 1], [69933, 8], [69957, 2], [70003, 1], [70016, 2], [70018, 1], [70067, 3], [70070, 9], [70079, 2], [70089, 4], [70094, 1], [70095, 1], [70188, 3], [70191, 3], [70194, 2], [70196, 1], [70197, 1], [70198, 2], [70206, 1], [70367, 1], [70368, 3], [70371, 8], [70400, 2], [70402, 2], [70459, 2], [70462, 2], [70464, 1], [70465, 4], [70471, 2], [70475, 3], [70487, 1], [70498, 2], [70502, 7], [70512, 5], [70709, 3], [70712, 8], [70720, 2], [70722, 3], [70725, 1], [70726, 1], [70750, 1], [70832, 3], [70835, 6], [70841, 1], [70842, 1], [70843, 4], [70847, 2], [70849, 1], [70850, 2], [71087, 3], [71090, 4], [71096, 4], [71100, 2], [71102, 1], [71103, 2], [71132, 2], [71216, 3], [71219, 8], [71227, 2], [71229, 1], [71230, 1], [71231, 2], [71339, 1], [71340, 1], [71341, 1], [71342, 2], [71344, 6], [71350, 1], [71351, 1], [71724, 3], [71727, 9], [71736, 1], [71737, 2], [71984, 6], [71991, 2], [71995, 2], [71997, 1], [71998, 1], [72000, 1], [72002, 1], [72003, 1], [72145, 3], [72148, 4], [72154, 2], [72156, 4], [72160, 1], [72164, 1], [72193, 10], [72243, 6], [72249, 1], [72251, 4], [72263, 1], [72273, 6], [72279, 2], [72281, 3], [72330, 13], [72343, 1], [72344, 2], [72751, 1], [72752, 7], [72760, 6], [72766, 1], [72767, 1], [72850, 22], [72873, 1], [72874, 7], [72881, 1], [72882, 2], [72884, 1], [72885, 2], [73009, 6], [73018, 1], [73020, 2], [73023, 7], [73031, 1], [73098, 5], [73104, 2], [73107, 2], [73109, 1], [73110, 1], [73111, 1], [73459, 2], [73461, 2], [92912, 5], [92976, 7], [94031, 1], [94033, 55], [94095, 4], [94192, 2], [113821, 2], [113824, 4], [118528, 46], [118576, 23], [119141, 2], [119143, 3], [119149, 6], [119155, 8], [119163, 8], [119173, 7], [119210, 4], [119362, 3], [121344, 55], [121403, 50], [121461, 1], [121476, 1], [121499, 5], [121505, 15], [122880, 7], [122888, 17], [122907, 7], [122915, 2], [122918, 5], [123184, 7], [123566, 1], [123628, 4], [125136, 7], [125252, 7], [917505, 1], [917536, 96], [917760, 240]],
58
+ Line_Break_Glue: [[160, 1], [847, 1], [860, 7], [3848, 1], [3852, 1], [3858, 1], [4057, 2], [6158, 1], [8199, 1], [8209, 1], [8239, 1], [78896, 7], [94180, 1]],
59
+ Line_Break_Nonstarters: [[6102, 1], [8252, 2], [8263, 3], [12293, 1], [12316, 1], [12347, 1], [12348, 1], [12443, 2], [12445, 2], [12448, 1], [12539, 1], [12541, 2], [40981, 1], [65108, 2], [65306, 2], [65381, 1], [65438, 2], [94176, 2], [94178, 1], [94179, 1], [128633, 3]],
60
+ Line_Break_Open_Punctuation: [[40, 1], [91, 1], [123, 1], [161, 1], [191, 1], [3898, 1], [3900, 1], [5787, 1], [8218, 1], [8222, 1], [8261, 1], [8317, 1], [8333, 1], [8968, 1], [8970, 1], [9001, 1], [10088, 1], [10090, 1], [10092, 1], [10094, 1], [10096, 1], [10098, 1], [10100, 1], [10181, 1], [10214, 1], [10216, 1], [10218, 1], [10220, 1], [10222, 1], [10627, 1], [10629, 1], [10631, 1], [10633, 1], [10635, 1], [10637, 1], [10639, 1], [10641, 1], [10643, 1], [10645, 1], [10647, 1], [10712, 1], [10714, 1], [10748, 1], [11800, 1], [11810, 1], [11812, 1], [11814, 1], [11816, 1], [11842, 1], [11861, 1], [11863, 1], [11865, 1], [11867, 1], [12296, 1], [12298, 1], [12300, 1], [12302, 1], [12304, 1], [12308, 1], [12310, 1], [12312, 1], [12314, 1], [12317, 1], [64831, 1], [65047, 1], [65077, 1], [65079, 1], [65081, 1], [65083, 1], [65085, 1], [65087, 1], [65089, 1], [65091, 1], [65095, 1], [65113, 1], [65115, 1], [65117, 1], [65288, 1], [65339, 1], [65371, 1], [65375, 1], [65378, 1], [78424, 3], [78470, 1], [78472, 1], [78713, 1], [78903, 1], [83406, 1], [125278, 2]],
61
+ Line_Break_Postfix_Numeric: [[37, 1], [162, 1], [176, 1], [1545, 2], [1547, 1], [1642, 1], [2546, 2], [2553, 1], [3449, 1], [8240, 8], [8359, 1], [8374, 1], [8379, 1], [8382, 1], [8384, 1], [8451, 1], [8457, 1], [43064, 1], [65020, 1], [65130, 1], [65285, 1], [65504, 1], [73693, 4], [126124, 1], [126128, 1]],
62
+ Line_Break_Prefix_Numeric: [[36, 1], [43, 1], [92, 1], [163, 3], [177, 1], [1423, 1], [2046, 2], [2555, 1], [2801, 1], [3065, 1], [3647, 1], [6107, 1], [8352, 7], [8360, 14], [8375, 4], [8380, 2], [8383, 1], [8385, 15], [8470, 1], [8722, 2], [65129, 1], [65284, 1], [65505, 1], [65509, 2], [123647, 1]],
51
63
 
52
64
  Default_Ignorable_Code_Point: [[173, 1], [847, 1], [1564, 1], [4447, 2], [6068, 2], [6155, 3], [6158, 1], [8203, 5], [8234, 5], [8288, 5], [8293, 1], [8294, 10], [12644, 1], [65024, 16], [65279, 1], [65440, 1], [65520, 9], [113824, 4], [119155, 8], [917504, 1], [917505, 1], [917506, 30], [917536, 96], [917632, 128], [917760, 240], [918000, 3600]],
53
65
 
@@ -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": "2022.26.1",
6
+ "JSBundleVersion": "2022.32.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": "9d04712d10f1be8390f8c389202f712f7376865f"
14
+ "GitRevision": "cbb5e59ea56e128f63991d01fbd9275414b8937d"
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": "2022.26.1",
4
+ "JSBundleVersion": "2022.32.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": "9d04712d10f1be8390f8c389202f712f7376865f"
12
+ "GitRevision": "cbb5e59ea56e128f63991d01fbd9275414b8937d"
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": "2022.26.1",
6
+ "JSBundleVersion": "2022.32.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": "9d04712d10f1be8390f8c389202f712f7376865f"
14
+ "GitRevision": "cbb5e59ea56e128f63991d01fbd9275414b8937d"
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": "2022.26.1",
4
+ "JSBundleVersion": "2022.32.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": "9d04712d10f1be8390f8c389202f712f7376865f"
11
+ "GitRevision": "cbb5e59ea56e128f63991d01fbd9275414b8937d"
12
12
  }
@@ -295,7 +295,7 @@ JSClass("HTMLBuilder", Builder, {
295
295
  if (tzif.length >= 44 && tzif[0] == 0x54 && tzif[1] == 0x5A && tzif[2] == 0x69 && tzif[3] == 0x66){
296
296
  tzif = builder._modifiedTzif(tzif);
297
297
  if (tzif.length >= 44 && tzif[0] == 0x54 && tzif[1] == 0x5A && tzif[2] == 0x69 && tzif[3] == 0x66){
298
- let zone = JSTimeZone.initWithData(tzif);
298
+ let zone = JSTimeZone.initWithData(tzif, name);
299
299
  if (zone !== null){
300
300
  chunks.push(tzif);
301
301
  contents.map[name] = [offset, tzif.length];
@@ -3,14 +3,14 @@ JSBundle.bundles['io.breakside.jskit'] = {
3
3
  "Info": {
4
4
  "JSBundleType": "node",
5
5
  "JSBundleIdentifier": "io.breakside.jskit",
6
- "JSBundleVersion": "2022.26.1",
6
+ "JSBundleVersion": "2022.32.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": "9d04712d10f1be8390f8c389202f712f7376865f"
13
+ "GitRevision": "cbb5e59ea56e128f63991d01fbd9275414b8937d"
14
14
  },
15
15
  "Resources": [
16
16
  {
@@ -1,6 +1,6 @@
1
1
  JSBundleType: framework
2
2
  JSBundleIdentifier: io.breakside.JSKit.APIKit
3
- JSBundleVersion: 2022.26.1
3
+ JSBundleVersion: 2022.32.0
4
4
  JSDevelopmentLanguage: en
5
5
  JSCopyright: Copyright © 2020 Breakside Inc.
6
6
  JSIncludeDirectories:
@@ -1,6 +1,6 @@
1
1
  JSBundleType: framework
2
2
  JSBundleIdentifier: io.breakside.JSKit.APIKitTesting
3
- JSBundleVersion: 2022.26.1
3
+ JSBundleVersion: 2022.32.0
4
4
  JSDevelopmentLanguage: en
5
5
  JSCopyright: Copyright © 2020 Breakside Inc.
6
6
  JSLicenseNotice: |
@@ -1,6 +1,6 @@
1
1
  JSBundleType: framework
2
2
  JSBundleIdentifier: io.breakside.JSKit.AuthKit
3
- JSBundleVersion: 2022.26.1
3
+ JSBundleVersion: 2022.32.0
4
4
  JSDevelopmentLanguage: en
5
5
  JSCopyright: Copyright © 2020 Breakside Inc.
6
6
  JSLicenseNotice: |
@@ -1,6 +1,6 @@
1
1
  JSBundleType: framework
2
2
  JSBundleIdentifier: io.breakside.JSKit.CSSOM
3
- JSBundleVersion: 2022.26.1
3
+ JSBundleVersion: 2022.32.0
4
4
  JSDevelopmentLanguage: en
5
5
  JSCopyright: Copyright © 2020 Breakside Inc.
6
6
  JSBundleEnvironments:
@@ -1,6 +1,6 @@
1
1
  JSBundleType: framework
2
2
  JSBundleIdentifier: io.breakside.JSKit.ChartKit
3
- JSBundleVersion: 2022.26.1
3
+ JSBundleVersion: 2022.32.0
4
4
  JSDevelopmentLanguage: en
5
5
  JSCopyright: Copyright © 2021 Breakside Inc.
6
6
  # JSBundleEnvironments:
@@ -1,6 +1,6 @@
1
1
  JSBundleType: framework
2
2
  JSBundleIdentifier: io.breakside.JSKit.ConferenceKit
3
- JSBundleVersion: 2022.26.1
3
+ JSBundleVersion: 2022.32.0
4
4
  JSDevelopmentLanguage: en
5
5
  JSCopyright: Copyright © 2020 Breakside Inc.
6
6
  JSBundleEnvironments:
@@ -1,6 +1,6 @@
1
1
  JSBundleType: framework
2
2
  JSBundleIdentifier: io.breakside.JSKit.DBKit
3
- JSBundleVersion: 2022.26.1
3
+ JSBundleVersion: 2022.32.0
4
4
  JSDevelopmentLanguage: en
5
5
  JSCopyright: Copyright © 2020 Breakside Inc.
6
6
  JSBundleEnvironments:
@@ -1,6 +1,6 @@
1
1
  JSBundleType: framework
2
2
  JSBundleIdentifier: io.breakside.JSKit.DOM
3
- JSBundleVersion: 2022.26.1
3
+ JSBundleVersion: 2022.32.0
4
4
  JSDevelopmentLanguage: en
5
5
  JSCopyright: Copyright © 2020 Breakside Inc.
6
6
  JSBundleEnvironments:
@@ -1,6 +1,6 @@
1
1
  JSBundleType: framework
2
2
  JSBundleIdentifier: io.breakside.JSKit.Dispatch
3
- JSBundleVersion: 2022.26.1
3
+ JSBundleVersion: 2022.32.0
4
4
  JSCopyright: Copyright © 2020 Breakside Inc.
5
5
  JSBundleEnvironments:
6
6
  html: Dispatch+HTML.js
@@ -1,6 +1,6 @@
1
1
  JSBundleType: framework
2
2
  JSBundleIdentifier: io.breakside.JSKit.FontKit
3
- JSBundleVersion: 2022.26.1
3
+ JSBundleVersion: 2022.32.0
4
4
  JSDevelopmentLanguage: en
5
5
  JSCopyright: Copyright © 2020 Breakside Inc.
6
6
  JSBundleEnvironments:
@@ -1,6 +1,6 @@
1
1
  JSBundleType: framework
2
2
  JSBundleIdentifier: io.breakside.JSKit.Foundation
3
- JSBundleVersion: 2022.26.1
3
+ JSBundleVersion: 2022.32.0
4
4
  JSDevelopmentLanguage: en
5
5
  JSCopyright: Copyright © 2020 Breakside Inc.
6
6
  JSBundleEnvironments:
@@ -551,16 +551,22 @@ JSClass("JSHTMLFileManager", JSFileManager, {
551
551
 
552
552
  _copyDirectoryInTransactionAtURL: function(transaction, url, toURL, toParent, metadata){
553
553
  this._copyMetadataInTransactionAtURL(transaction, url, toURL, toParent, metadata);
554
- var index = transaction.metadata.index(JSFileManager.Indexes.metadataPath);
555
- var childRequest = index.openCursor({parent: url.path});
556
- var children = [];
557
- childRequest.onsuccess = function JSFileManager_copyDirectory_onsucess(e){
558
- var cursor = e.target.result;
559
- if (cursor){
560
- var child = cursor.value;
561
- var childURL = url.appendingPathComponent(child.name);
562
- var childToURL = toURL.appendingPathComponent(child.name);
563
- this._copyItemInTransactionAtURL(transaction, childURL, childToURL, toURL, child);
554
+ var index = transaction.metadata.index(JSFileManager.Indexes.metadataParent);
555
+ var lookup = url.path;
556
+ var request = index.getAll(lookup);
557
+ var manager = this;
558
+ request.onsuccess = function JSFileManager_removeDirectory_onsuccess(e){
559
+ var results = e.target.result;
560
+ if (results){
561
+ var child;
562
+ var childURL;
563
+ var childToURL;
564
+ for (var i = 0, l = results.length; i < l; ++i){
565
+ child = results[i];
566
+ childURL = url.appendingPathComponent(child.name, child.itemType == JSFileManager.ItemType.directory);
567
+ childToURL = toURL.appendingPathComponent(child.name, child.itemType == JSFileManager.ItemType.directory);
568
+ manager._copyItemInTransactionAtURL(transaction, childURL, childToURL, toURL, child);
569
+ }
564
570
  }
565
571
  };
566
572
  },
@@ -639,16 +645,20 @@ JSClass("JSHTMLFileManager", JSFileManager, {
639
645
 
640
646
  _removeDirectoryInTransactionAtURL: function(transaction, url, parent, metadata){
641
647
  this._removeMetadataInTransactionAtURL(transaction, url, parent, metadata);
642
- var index = transaction.metadata.index(JSFileManager.Indexes.metadataPath);
643
- var childRequest = index.openCursor([url.path]);
644
- var children = [];
648
+ var index = transaction.metadata.index(JSFileManager.Indexes.metadataParent);
649
+ var lookup = url.path;
650
+ var request = index.getAll(lookup);
645
651
  var manager = this;
646
- childRequest.onsuccess = function JSFileManager_removeDirectory_onsucess(e){
647
- var cursor = e.target.result;
648
- if (cursor){
649
- var child = cursor.value;
650
- var childURL = url.appendingPathComponent(child.name);
651
- manager._removeItemInTransactionAtURL(transaction, childURL, url, child);
652
+ request.onsuccess = function JSFileManager_removeDirectory_onsuccess(e){
653
+ var results = e.target.result;
654
+ if (results){
655
+ var child;
656
+ var childURL;
657
+ for (var i = 0, l = results.length; i < l; ++i){
658
+ child = results[i];
659
+ childURL = url.appendingPathComponent(child.name, child.itemType == JSFileManager.ItemType.directory);
660
+ manager._removeItemInTransactionAtURL(transaction, childURL, url, child);
661
+ }
652
662
  }
653
663
  };
654
664
  },
@@ -247,11 +247,10 @@ JSClass("JSTextTypesetter", JSObject, {
247
247
 
248
248
  if (lineBreakMode == JSLineBreakMode.wordWrap){
249
249
  // word wrapping
250
-
251
250
  iterator.decrement();
252
251
  var characterBreakLocation = iterator.range.location;
253
- // back up to a word boundary
254
- while (iterator.index > range.location && !iterator.isWordBoundary){
252
+ // back up to a line break opportunity
253
+ while (iterator.index > range.location && !iterator.isLineBreakOpportunity){
255
254
  iterator.decrement();
256
255
  }
257
256
  if (iterator.range.location <= range.location){