Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Internationalization support for Calendar (#1804)
Also fixes a bug in ListLayout: When an item moved from one section to another, cached nodes and layout infos were not updated properly.
- Loading branch information
1 parent
74040b7
commit d705916
Showing
46 changed files
with
3,034 additions
and
128 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
# @internationalized/date | ||
|
||
This package is part of [react-spectrum](https://github.com/adobe/react-spectrum). See the repo for more details. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
/* | ||
* Copyright 2020 Adobe. All rights reserved. | ||
* This file is licensed to you under the Apache License, Version 2.0 (the "License"); | ||
* you may not use this file except in compliance with the License. You may obtain a copy | ||
* of the License at http://www.apache.org/licenses/LICENSE-2.0 | ||
* | ||
* Unless required by applicable law or agreed to in writing, software distributed under | ||
* the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS | ||
* OF ANY KIND, either express or implied. See the License for the specific language | ||
* governing permissions and limitations under the License. | ||
*/ | ||
|
||
export * from './src'; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
{ | ||
"name": "@internationalized/date", | ||
"version": "3.0.0-alpha.1", | ||
"description": "Internationalized calendar and date manipulation utilities", | ||
"license": "Apache-2.0", | ||
"private": true, | ||
"main": "dist/main.js", | ||
"module": "dist/module.js", | ||
"types": "dist/types.d.ts", | ||
"source": "src/index.ts", | ||
"files": ["dist"], | ||
"sideEffects": false, | ||
"repository": { | ||
"type": "git", | ||
"url": "https://github.com/adobe/react-spectrum" | ||
}, | ||
"dependencies": { | ||
"@babel/runtime": "^7.6.2" | ||
}, | ||
"publishConfig": { | ||
"access": "public" | ||
} | ||
} |
169 changes: 169 additions & 0 deletions
169
packages/@internationalized/date/scripts/generate-umalqura.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,169 @@ | ||
/* | ||
* Copyright 2020 Adobe. All rights reserved. | ||
* This file is licensed to you under the Apache License, Version 2.0 (the "License"); | ||
* you may not use this file except in compliance with the License. You may obtain a copy | ||
* of the License at http://www.apache.org/licenses/LICENSE-2.0 | ||
* | ||
* Unless required by applicable law or agreed to in writing, software distributed under | ||
* the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS | ||
* OF ANY KIND, either express or implied. See the License for the specific language | ||
* governing permissions and limitations under the License. | ||
*/ | ||
|
||
// Copied from ICU's IslamicCalendar.java | ||
// Original licensing can be found in the NOTICE file in the root directory of this source tree. | ||
|
||
const UMALQURA_MONTHLENGTH = [ | ||
//* 1300 -1302 */ | ||
// "1010 1010 1010", "1101 0101 0100", "1110 1100 1001", | ||
0x0AAA, 0x0D54, 0x0EC9, | ||
//* 1303 -1307 */ | ||
// "0110 1101 0100", "0110 1110 1010", "0011 0110 1100", "1010 1010 1101", "0101 0101 0101", | ||
0x06D4, 0x06EA, 0x036C, 0x0AAD, 0x0555, | ||
//* 1308 -1312 */ | ||
// "0110 1010 1001", "0111 1001 0010", "1011 1010 1001", "0101 1101 0100", "1010 1101 1010", | ||
0x06A9, 0x0792, 0x0BA9, 0x05D4, 0x0ADA, | ||
//* 1313 -1317 */ | ||
// "0101 0101 1100", "1101 0010 1101", "0110 1001 0101", "0111 0100 1010", "1011 0101 0100", | ||
0x055C, 0x0D2D, 0x0695, 0x074A, 0x0B54, | ||
//* 1318 -1322 */ | ||
// "1011 0110 1010", "0101 1010 1101", "0100 1010 1110", "1010 0100 1111", "0101 0001 0111", | ||
0x0B6A, 0x05AD, 0x04AE, 0x0A4F, 0x0517, | ||
//* 1323 -1327 */ | ||
// "0110 1000 1011", "0110 1010 0101", "1010 1101 0101", "0010 1101 0110", "1001 0101 1011", | ||
0x068B, 0x06A5, 0x0AD5, 0x02D6, 0x095B, | ||
//* 1328 -1332 */ | ||
// "0100 1001 1101", "1010 0100 1101", "1101 0010 0110", "1101 1001 0101", "0101 1010 1100", | ||
0x049D, 0x0A4D, 0x0D26, 0x0D95, 0x05AC, | ||
//* 1333 -1337 */ | ||
// "1001 1011 0110", "0010 1011 1010", "1010 0101 1011", "0101 0010 1011", "1010 1001 0101", | ||
0x09B6, 0x02BA, 0x0A5B, 0x052B, 0x0A95, | ||
//* 1338 -1342 */ | ||
// "0110 1100 1010", "1010 1110 1001", "0010 1111 0100", "1001 0111 0110", "0010 1011 0110", | ||
0x06CA, 0x0AE9, 0x02F4, 0x0976, 0x02B6, | ||
//* 1343 -1347 */ | ||
// "1001 0101 0110", "1010 1100 1010", "1011 1010 0100", "1011 1101 0010", "0101 1101 1001", | ||
0x0956, 0x0ACA, 0x0BA4, 0x0BD2, 0x05D9, | ||
//* 1348 -1352 */ | ||
// "0010 1101 1100", "1001 0110 1101", "0101 0100 1101", "1010 1010 0101", "1011 0101 0010", | ||
0x02DC, 0x096D, 0x054D, 0x0AA5, 0x0B52, | ||
//* 1353 -1357 */ | ||
// "1011 1010 0101", "0101 1011 0100", "1001 1011 0110", "0101 0101 0111", "0010 1001 0111", | ||
0x0BA5, 0x05B4, 0x09B6, 0x0557, 0x0297, | ||
//* 1358 -1362 */ | ||
// "0101 0100 1011", "0110 1010 0011", "0111 0101 0010", "1011 0110 0101", "0101 0110 1010", | ||
0x054B, 0x06A3, 0x0752, 0x0B65, 0x056A, | ||
//* 1363 -1367 */ | ||
// "1010 1010 1011", "0101 0010 1011", "1100 1001 0101", "1101 0100 1010", "1101 1010 0101", | ||
0x0AAB, 0x052B, 0x0C95, 0x0D4A, 0x0DA5, | ||
//* 1368 -1372 */ | ||
// "0101 1100 1010", "1010 1101 0110", "1001 0101 0111", "0100 1010 1011", "1001 0100 1011", | ||
0x05CA, 0x0AD6, 0x0957, 0x04AB, 0x094B, | ||
//* 1373 -1377 */ | ||
// "1010 1010 0101", "1011 0101 0010", "1011 0110 1010", "0101 0111 0101", "0010 0111 0110", | ||
0x0AA5, 0x0B52, 0x0B6A, 0x0575, 0x0276, | ||
//* 1378 -1382 */ | ||
// "1000 1011 0111", "0100 0101 1011", "0101 0101 0101", "0101 1010 1001", "0101 1011 0100", | ||
0x08B7, 0x045B, 0x0555, 0x05A9, 0x05B4, | ||
//* 1383 -1387 */ | ||
// "1001 1101 1010", "0100 1101 1101", "0010 0110 1110", "1001 0011 0110", "1010 1010 1010", | ||
0x09DA, 0x04DD, 0x026E, 0x0936, 0x0AAA, | ||
//* 1388 -1392 */ | ||
// "1101 0101 0100", "1101 1011 0010", "0101 1101 0101", "0010 1101 1010", "1001 0101 1011", | ||
0x0D54, 0x0DB2, 0x05D5, 0x02DA, 0x095B, | ||
//* 1393 -1397 */ | ||
// "0100 1010 1011", "1010 0101 0101", "1011 0100 1001", "1011 0110 0100", "1011 0111 0001", | ||
0x04AB, 0x0A55, 0x0B49, 0x0B64, 0x0B71, | ||
//* 1398 -1402 */ | ||
// "0101 1011 0100", "1010 1011 0101", "1010 0101 0101", "1101 0010 0101", "1110 1001 0010", | ||
0x05B4, 0x0AB5, 0x0A55, 0x0D25, 0x0E92, | ||
//* 1403 -1407 */ | ||
// "1110 1100 1001", "0110 1101 0100", "1010 1110 1001", "1001 0110 1011", "0100 1010 1011", | ||
0x0EC9, 0x06D4, 0x0AE9, 0x096B, 0x04AB, | ||
//* 1408 -1412 */ | ||
// "1010 1001 0011", "1101 0100 1001", "1101 1010 0100", "1101 1011 0010", "1010 1011 1001", | ||
0x0A93, 0x0D49, 0x0DA4, 0x0DB2, 0x0AB9, | ||
//* 1413 -1417 */ | ||
// "0100 1011 1010", "1010 0101 1011", "0101 0010 1011", "1010 1001 0101", "1011 0010 1010", | ||
0x04BA, 0x0A5B, 0x052B, 0x0A95, 0x0B2A, | ||
//* 1418 -1422 */ | ||
// "1011 0101 0101", "0101 0101 1100", "0100 1011 1101", "0010 0011 1101", "1001 0001 1101", | ||
0x0B55, 0x055C, 0x04BD, 0x023D, 0x091D, | ||
//* 1423 -1427 */ | ||
// "1010 1001 0101", "1011 0100 1010", "1011 0101 1010", "0101 0110 1101", "0010 1011 0110", | ||
0x0A95, 0x0B4A, 0x0B5A, 0x056D, 0x02B6, | ||
//* 1428 -1432 */ | ||
// "1001 0011 1011", "0100 1001 1011", "0110 0101 0101", "0110 1010 1001", "0111 0101 0100", | ||
0x093B, 0x049B, 0x0655, 0x06A9, 0x0754, | ||
//* 1433 -1437 */ | ||
// "1011 0110 1010", "0101 0110 1100", "1010 1010 1101", "0101 0101 0101", "1011 0010 1001", | ||
0x0B6A, 0x056C, 0x0AAD, 0x0555, 0x0B29, | ||
//* 1438 -1442 */ | ||
// "1011 1001 0010", "1011 1010 1001", "0101 1101 0100", "1010 1101 1010", "0101 0101 1010", | ||
0x0B92, 0x0BA9, 0x05D4, 0x0ADA, 0x055A, | ||
//* 1443 -1447 */ | ||
// "1010 1010 1011", "0101 1001 0101", "0111 0100 1001", "0111 0110 0100", "1011 1010 1010", | ||
0x0AAB, 0x0595, 0x0749, 0x0764, 0x0BAA, | ||
//* 1448 -1452 */ | ||
// "0101 1011 0101", "0010 1011 0110", "1010 0101 0110", "1110 0100 1101", "1011 0010 0101", | ||
0x05B5, 0x02B6, 0x0A56, 0x0E4D, 0x0B25, | ||
//* 1453 -1457 */ | ||
// "1011 0101 0010", "1011 0110 1010", "0101 1010 1101", "0010 1010 1110", "1001 0010 1111", | ||
0x0B52, 0x0B6A, 0x05AD, 0x02AE, 0x092F, | ||
//* 1458 -1462 */ | ||
// "0100 1001 0111", "0110 0100 1011", "0110 1010 0101", "0110 1010 1100", "1010 1101 0110", | ||
0x0497, 0x064B, 0x06A5, 0x06AC, 0x0AD6, | ||
//* 1463 -1467 */ | ||
// "0101 0101 1101", "0100 1001 1101", "1010 0100 1101", "1101 0001 0110", "1101 1001 0101", | ||
0x055D, 0x049D, 0x0A4D, 0x0D16, 0x0D95, | ||
//* 1468 -1472 */ | ||
// "0101 1010 1010", "0101 1011 0101", "0010 1101 1010", "1001 0101 1011", "0100 1010 1101", | ||
0x05AA, 0x05B5, 0x02DA, 0x095B, 0x04AD, | ||
//* 1473 -1477 */ | ||
// "0101 1001 0101", "0110 1100 1010", "0110 1110 0100", "1010 1110 1010", "0100 1111 0101", | ||
0x0595, 0x06CA, 0x06E4, 0x0AEA, 0x04F5, | ||
//* 1478 -1482 */ | ||
// "0010 1011 0110", "1001 0101 0110", "1010 1010 1010", "1011 0101 0100", "1011 1101 0010", | ||
0x02B6, 0x0956, 0x0AAA, 0x0B54, 0x0BD2, | ||
//* 1483 -1487 */ | ||
// "0101 1101 1001", "0010 1110 1010", "1001 0110 1101", "0100 1010 1101", "1010 1001 0101", | ||
0x05D9, 0x02EA, 0x096D, 0x04AD, 0x0A95, | ||
//* 1488 -1492 */ | ||
// "1011 0100 1010", "1011 1010 0101", "0101 1011 0010", "1001 1011 0101", "0100 1101 0110", | ||
0x0B4A, 0x0BA5, 0x05B2, 0x09B5, 0x04D6, | ||
//* 1493 -1497 */ | ||
// "1010 1001 0111", "0101 0100 0111", "0110 1001 0011", "0111 0100 1001", "1011 0101 0101", | ||
0x0A97, 0x0547, 0x0693, 0x0749, 0x0B55, | ||
//* 1498 -1508 */ | ||
// "0101 0110 1010", "1010 0110 1011", "0101 0010 1011", "1010 1000 1011", "1101 0100 0110", "1101 1010 0011", "0101 1100 1010", "1010 1101 0110", "0100 1101 1011", "0010 0110 1011", "1001 0100 1011", | ||
0x056A, 0x0A6B, 0x052B, 0x0A8B, 0x0D46, 0x0DA3, 0x05CA, 0x0AD6, 0x04DB, 0x026B, 0x094B, | ||
//* 1509 -1519 */ | ||
// "1010 1010 0101", "1011 0101 0010", "1011 0110 1001", "0101 0111 0101", "0001 0111 0110", "1000 1011 0111", "0010 0101 1011", "0101 0010 1011", "0101 0110 0101", "0101 1011 0100", "1001 1101 1010", | ||
0x0AA5, 0x0B52, 0x0B69, 0x0575, 0x0176, 0x08B7, 0x025B, 0x052B, 0x0565, 0x05B4, 0x09DA, | ||
//* 1520 -1530 */ | ||
// "0100 1110 1101", "0001 0110 1101", "1000 1011 0110", "1010 1010 0110", "1101 0101 0010", "1101 1010 1001", "0101 1101 0100", "1010 1101 1010", "1001 0101 1011", "0100 1010 1011", "0110 0101 0011", | ||
0x04ED, 0x016D, 0x08B6, 0x0AA6, 0x0D52, 0x0DA9, 0x05D4, 0x0ADA, 0x095B, 0x04AB, 0x0653, | ||
//* 1531 -1541 */ | ||
// "0111 0010 1001", "0111 0110 0010", "1011 1010 1001", "0101 1011 0010", "1010 1011 0101", "0101 0101 0101", "1011 0010 0101", "1101 1001 0010", "1110 1100 1001", "0110 1101 0010", "1010 1110 1001", | ||
0x0729, 0x0762, 0x0BA9, 0x05B2, 0x0AB5, 0x0555, 0x0B25, 0x0D92, 0x0EC9, 0x06D2, 0x0AE9, | ||
//* 1542 -1552 */ | ||
// "0101 0110 1011", "0100 1010 1011", "1010 0101 0101", "1101 0010 1001", "1101 0101 0100", "1101 1010 1010", "1001 1011 0101", "0100 1011 1010", "1010 0011 1011", "0100 1001 1011", "1010 0100 1101", | ||
0x056B, 0x04AB, 0x0A55, 0x0D29, 0x0D54, 0x0DAA, 0x09B5, 0x04BA, 0x0A3B, 0x049B, 0x0A4D, | ||
//* 1553 -1563 */ | ||
// "1010 1010 1010", "1010 1101 0101", "0010 1101 1010", "1001 0101 1101", "0100 0101 1110", "1010 0010 1110", "1100 1001 1010", "1101 0101 0101", "0110 1011 0010", "0110 1011 1001", "0100 1011 1010", | ||
0x0AAA, 0x0AD5, 0x02DA, 0x095D, 0x045E, 0x0A2E, 0x0C9A, 0x0D55, 0x06B2, 0x06B9, 0x04BA, | ||
//* 1564 -1574 */ | ||
// "1010 0101 1101", "0101 0010 1101", "1010 1001 0101", "1011 0101 0010", "1011 1010 1000", "1011 1011 0100", "0101 1011 1001", "0010 1101 1010", "1001 0101 1010", "1011 0100 1010", "1101 1010 0100", | ||
0x0A5D, 0x052D, 0x0A95, 0x0B52, 0x0BA8, 0x0BB4, 0x05B9, 0x02DA, 0x095A, 0x0B4A, 0x0DA4, | ||
//* 1575 -1585 */ | ||
// "1110 1101 0001", "0110 1110 1000", "1011 0110 1010", "0101 0110 1101", "0101 0011 0101", "0110 1001 0101", "1101 0100 1010", "1101 1010 1000", "1101 1101 0100", "0110 1101 1010", "0101 0101 1011", | ||
0x0ED1, 0x06E8, 0x0B6A, 0x056D, 0x0535, 0x0695, 0x0D4A, 0x0DA8, 0x0DD4, 0x06DA, 0x055B, | ||
//* 1586 -1596 */ | ||
// "0010 1001 1101", "0110 0010 1011", "1011 0001 0101", "1011 0100 1010", "1011 1001 0101", "0101 1010 1010", "1010 1010 1110", "1001 0010 1110", "1100 1000 1111", "0101 0010 0111", "0110 1001 0101", | ||
0x029D, 0x062B, 0x0B15, 0x0B4A, 0x0B95, 0x05AA, 0x0AAE, 0x092E, 0x0C8F, 0x0527, 0x0695, | ||
//* 1597 -1600 */ | ||
// "0110 1010 1010", "1010 1101 0110", "0101 0101 1101", "0010 1001 1101", }; | ||
0x06AA, 0x0AD6, 0x055D, 0x029D | ||
]; | ||
|
||
console.log(Buffer.from(new Uint16Array(UMALQURA_MONTHLENGTH).buffer).toString('base64')); |
Oops, something went wrong.