-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/js/data/locale/ccc.json b/js/data/locale/ccc.json
new file mode 100644
index 0000000000..3d906de917
--- /dev/null
+++ b/js/data/locale/ccc.json
@@ -0,0 +1,828 @@
+{
+ "̀": 230,
+ "́": 230,
+ "̂": 230,
+ "̃": 230,
+ "̄": 230,
+ "̅": 230,
+ "̆": 230,
+ "̇": 230,
+ "̈": 230,
+ "̉": 230,
+ "̊": 230,
+ "̋": 230,
+ "̌": 230,
+ "̍": 230,
+ "̎": 230,
+ "̏": 230,
+ "̐": 230,
+ "̑": 230,
+ "̒": 230,
+ "̓": 230,
+ "̔": 230,
+ "̕": 232,
+ "̖": 220,
+ "̗": 220,
+ "̘": 220,
+ "̙": 220,
+ "̚": 232,
+ "̛": 216,
+ "̜": 220,
+ "̝": 220,
+ "̞": 220,
+ "̟": 220,
+ "̠": 220,
+ "̡": 202,
+ "̢": 202,
+ "̣": 220,
+ "̤": 220,
+ "̥": 220,
+ "̦": 220,
+ "̧": 202,
+ "̨": 202,
+ "̩": 220,
+ "̪": 220,
+ "̫": 220,
+ "̬": 220,
+ "̭": 220,
+ "̮": 220,
+ "̯": 220,
+ "̰": 220,
+ "̱": 220,
+ "̲": 220,
+ "̳": 220,
+ "̴": 1,
+ "̵": 1,
+ "̶": 1,
+ "̷": 1,
+ "̸": 1,
+ "̹": 220,
+ "̺": 220,
+ "̻": 220,
+ "̼": 220,
+ "̽": 230,
+ "̾": 230,
+ "̿": 230,
+ "̀": 230,
+ "́": 230,
+ "͂": 230,
+ "̓": 230,
+ "̈́": 230,
+ "ͅ": 240,
+ "͆": 230,
+ "͇": 220,
+ "͈": 220,
+ "͉": 220,
+ "͊": 230,
+ "͋": 230,
+ "͌": 230,
+ "͍": 220,
+ "͎": 220,
+ "͐": 230,
+ "͑": 230,
+ "͒": 230,
+ "͓": 220,
+ "͔": 220,
+ "͕": 220,
+ "͖": 220,
+ "͗": 230,
+ "͘": 232,
+ "͙": 220,
+ "͚": 220,
+ "͛": 230,
+ "͜": 233,
+ "͝": 234,
+ "͞": 234,
+ "͟": 233,
+ "͠": 234,
+ "͡": 234,
+ "͢": 233,
+ "ͣ": 230,
+ "ͤ": 230,
+ "ͥ": 230,
+ "ͦ": 230,
+ "ͧ": 230,
+ "ͨ": 230,
+ "ͩ": 230,
+ "ͪ": 230,
+ "ͫ": 230,
+ "ͬ": 230,
+ "ͭ": 230,
+ "ͮ": 230,
+ "ͯ": 230,
+ "҃": 230,
+ "҄": 230,
+ "҅": 230,
+ "҆": 230,
+ "҇": 230,
+ "֑": 220,
+ "֒": 230,
+ "֓": 230,
+ "֔": 230,
+ "֕": 230,
+ "֖": 220,
+ "֗": 230,
+ "֘": 230,
+ "֙": 230,
+ "֚": 222,
+ "֛": 220,
+ "֜": 230,
+ "֝": 230,
+ "֞": 230,
+ "֟": 230,
+ "֠": 230,
+ "֡": 230,
+ "֢": 220,
+ "֣": 220,
+ "֤": 220,
+ "֥": 220,
+ "֦": 220,
+ "֧": 220,
+ "֨": 230,
+ "֩": 230,
+ "֪": 220,
+ "֫": 230,
+ "֬": 230,
+ "֭": 222,
+ "֮": 228,
+ "֯": 230,
+ "ְ": 10,
+ "ֱ": 11,
+ "ֲ": 12,
+ "ֳ": 13,
+ "ִ": 14,
+ "ֵ": 15,
+ "ֶ": 16,
+ "ַ": 17,
+ "ָ": 18,
+ "ֹ": 19,
+ "ֺ": 19,
+ "ֻ": 20,
+ "ּ": 21,
+ "ֽ": 22,
+ "ֿ": 23,
+ "ׁ": 24,
+ "ׂ": 25,
+ "ׄ": 230,
+ "ׅ": 220,
+ "ׇ": 18,
+ "ؐ": 230,
+ "ؑ": 230,
+ "ؒ": 230,
+ "ؓ": 230,
+ "ؔ": 230,
+ "ؕ": 230,
+ "ؖ": 230,
+ "ؗ": 230,
+ "ؘ": 30,
+ "ؙ": 31,
+ "ؚ": 32,
+ "ً": 27,
+ "ٌ": 28,
+ "ٍ": 29,
+ "َ": 30,
+ "ُ": 31,
+ "ِ": 32,
+ "ّ": 33,
+ "ْ": 34,
+ "ٓ": 230,
+ "ٔ": 230,
+ "ٕ": 220,
+ "ٖ": 220,
+ "ٗ": 230,
+ "٘": 230,
+ "ٙ": 230,
+ "ٚ": 230,
+ "ٛ": 230,
+ "ٜ": 220,
+ "ٝ": 230,
+ "ٞ": 230,
+ "ٟ": 220,
+ "ٰ": 35,
+ "ۖ": 230,
+ "ۗ": 230,
+ "ۘ": 230,
+ "ۙ": 230,
+ "ۚ": 230,
+ "ۛ": 230,
+ "ۜ": 230,
+ "۟": 230,
+ "۠": 230,
+ "ۡ": 230,
+ "ۢ": 230,
+ "ۣ": 220,
+ "ۤ": 230,
+ "ۧ": 230,
+ "ۨ": 230,
+ "۪": 220,
+ "۫": 230,
+ "۬": 230,
+ "ۭ": 220,
+ "ܑ": 36,
+ "ܰ": 230,
+ "ܱ": 220,
+ "ܲ": 230,
+ "ܳ": 230,
+ "ܴ": 220,
+ "ܵ": 230,
+ "ܶ": 230,
+ "ܷ": 220,
+ "ܸ": 220,
+ "ܹ": 220,
+ "ܺ": 230,
+ "ܻ": 220,
+ "ܼ": 220,
+ "ܽ": 230,
+ "ܾ": 220,
+ "ܿ": 230,
+ "݀": 230,
+ "݁": 230,
+ "݂": 220,
+ "݃": 230,
+ "݄": 220,
+ "݅": 230,
+ "݆": 220,
+ "݇": 230,
+ "݈": 220,
+ "݉": 230,
+ "݊": 230,
+ "߫": 230,
+ "߬": 230,
+ "߭": 230,
+ "߮": 230,
+ "߯": 230,
+ "߰": 230,
+ "߱": 230,
+ "߲": 220,
+ "߳": 230,
+ "ࠖ": 230,
+ "ࠗ": 230,
+ "࠘": 230,
+ "࠙": 230,
+ "ࠛ": 230,
+ "ࠜ": 230,
+ "ࠝ": 230,
+ "ࠞ": 230,
+ "ࠟ": 230,
+ "ࠠ": 230,
+ "ࠡ": 230,
+ "ࠢ": 230,
+ "ࠣ": 230,
+ "ࠥ": 230,
+ "ࠦ": 230,
+ "ࠧ": 230,
+ "ࠩ": 230,
+ "ࠪ": 230,
+ "ࠫ": 230,
+ "ࠬ": 230,
+ "࠭": 230,
+ "࡙": 220,
+ "࡚": 220,
+ "࡛": 220,
+ "ࣔ": 230,
+ "ࣕ": 230,
+ "ࣖ": 230,
+ "ࣗ": 230,
+ "ࣘ": 230,
+ "ࣙ": 230,
+ "ࣚ": 230,
+ "ࣛ": 230,
+ "ࣜ": 230,
+ "ࣝ": 230,
+ "ࣞ": 230,
+ "ࣟ": 230,
+ "࣠": 230,
+ "࣡": 230,
+ "ࣣ": 220,
+ "ࣤ": 230,
+ "ࣥ": 230,
+ "ࣦ": 220,
+ "ࣧ": 230,
+ "ࣨ": 230,
+ "ࣩ": 220,
+ "࣪": 230,
+ "࣫": 230,
+ "࣬": 230,
+ "࣭": 220,
+ "࣮": 220,
+ "࣯": 220,
+ "ࣰ": 27,
+ "ࣱ": 28,
+ "ࣲ": 29,
+ "ࣳ": 230,
+ "ࣴ": 230,
+ "ࣵ": 230,
+ "ࣶ": 220,
+ "ࣷ": 230,
+ "ࣸ": 230,
+ "ࣹ": 220,
+ "ࣺ": 220,
+ "ࣻ": 230,
+ "ࣼ": 230,
+ "ࣽ": 230,
+ "ࣾ": 230,
+ "ࣿ": 230,
+ "़": 7,
+ "्": 9,
+ "॑": 230,
+ "॒": 220,
+ "॓": 230,
+ "॔": 230,
+ "়": 7,
+ "্": 9,
+ "਼": 7,
+ "੍": 9,
+ "઼": 7,
+ "્": 9,
+ "଼": 7,
+ "୍": 9,
+ "்": 9,
+ "్": 9,
+ "ౕ": 84,
+ "ౖ": 91,
+ "಼": 7,
+ "್": 9,
+ "഻": 9,
+ "഼": 9,
+ "്": 9,
+ "්": 9,
+ "ุ": 103,
+ "ู": 103,
+ "ฺ": 9,
+ "่": 107,
+ "้": 107,
+ "๊": 107,
+ "๋": 107,
+ "ຸ": 118,
+ "ູ": 118,
+ "່": 122,
+ "້": 122,
+ "໊": 122,
+ "໋": 122,
+ "༘": 220,
+ "༙": 220,
+ "༵": 220,
+ "༷": 220,
+ "༹": 216,
+ "ཱ": 129,
+ "ི": 130,
+ "ུ": 132,
+ "ེ": 130,
+ "ཻ": 130,
+ "ོ": 130,
+ "ཽ": 130,
+ "ྀ": 130,
+ "ྂ": 230,
+ "ྃ": 230,
+ "྄": 9,
+ "྆": 230,
+ "྇": 230,
+ "࿆": 220,
+ "့": 7,
+ "္": 9,
+ "်": 9,
+ "ႍ": 220,
+ "፝": 230,
+ "፞": 230,
+ "፟": 230,
+ "᜔": 9,
+ "᜴": 9,
+ "្": 9,
+ "៝": 230,
+ "ᢩ": 228,
+ "᤹": 222,
+ "᤺": 230,
+ "᤻": 220,
+ "ᨗ": 230,
+ "ᨘ": 220,
+ "᩠": 9,
+ "᩵": 230,
+ "᩶": 230,
+ "᩷": 230,
+ "᩸": 230,
+ "᩹": 230,
+ "᩺": 230,
+ "᩻": 230,
+ "᩼": 230,
+ "᩿": 220,
+ "᪰": 230,
+ "᪱": 230,
+ "᪲": 230,
+ "᪳": 230,
+ "᪴": 230,
+ "᪵": 220,
+ "᪶": 220,
+ "᪷": 220,
+ "᪸": 220,
+ "᪹": 220,
+ "᪺": 220,
+ "᪻": 230,
+ "᪼": 230,
+ "᪽": 220,
+ "᬴": 7,
+ "᭄": 9,
+ "᭫": 230,
+ "᭬": 220,
+ "᭭": 230,
+ "᭮": 230,
+ "᭯": 230,
+ "᭰": 230,
+ "᭱": 230,
+ "᭲": 230,
+ "᭳": 230,
+ "᮪": 9,
+ "᮫": 9,
+ "᯦": 7,
+ "᯲": 9,
+ "᯳": 9,
+ "᰷": 7,
+ "᳐": 230,
+ "᳑": 230,
+ "᳒": 230,
+ "᳔": 1,
+ "᳕": 220,
+ "᳖": 220,
+ "᳗": 220,
+ "᳘": 220,
+ "᳙": 220,
+ "᳚": 230,
+ "᳛": 230,
+ "᳜": 220,
+ "᳝": 220,
+ "᳞": 220,
+ "᳟": 220,
+ "᳠": 230,
+ "᳢": 1,
+ "᳣": 1,
+ "᳤": 1,
+ "᳥": 1,
+ "᳦": 1,
+ "᳧": 1,
+ "᳨": 1,
+ "᳭": 220,
+ "᳴": 230,
+ "᳸": 230,
+ "᳹": 230,
+ "᷀": 230,
+ "᷁": 230,
+ "᷂": 220,
+ "᷃": 230,
+ "᷄": 230,
+ "᷅": 230,
+ "᷆": 230,
+ "᷇": 230,
+ "᷈": 230,
+ "᷉": 230,
+ "᷊": 220,
+ "᷋": 230,
+ "᷌": 230,
+ "᷍": 234,
+ "᷎": 214,
+ "᷏": 220,
+ "᷐": 202,
+ "᷑": 230,
+ "᷒": 230,
+ "ᷓ": 230,
+ "ᷔ": 230,
+ "ᷕ": 230,
+ "ᷖ": 230,
+ "ᷗ": 230,
+ "ᷘ": 230,
+ "ᷙ": 230,
+ "ᷚ": 230,
+ "ᷛ": 230,
+ "ᷜ": 230,
+ "ᷝ": 230,
+ "ᷞ": 230,
+ "ᷟ": 230,
+ "ᷠ": 230,
+ "ᷡ": 230,
+ "ᷢ": 230,
+ "ᷣ": 230,
+ "ᷤ": 230,
+ "ᷥ": 230,
+ "ᷦ": 230,
+ "ᷧ": 230,
+ "ᷨ": 230,
+ "ᷩ": 230,
+ "ᷪ": 230,
+ "ᷫ": 230,
+ "ᷬ": 230,
+ "ᷭ": 230,
+ "ᷮ": 230,
+ "ᷯ": 230,
+ "ᷰ": 230,
+ "ᷱ": 230,
+ "ᷲ": 230,
+ "ᷳ": 230,
+ "ᷴ": 230,
+ "᷵": 230,
+ "᷶": 232,
+ "᷷": 228,
+ "᷸": 228,
+ "᷹": 220,
+ "᷻": 230,
+ "᷼": 233,
+ "᷽": 220,
+ "᷾": 230,
+ "᷿": 220,
+ "⃐": 230,
+ "⃑": 230,
+ "⃒": 1,
+ "⃓": 1,
+ "⃔": 230,
+ "⃕": 230,
+ "⃖": 230,
+ "⃗": 230,
+ "⃘": 1,
+ "⃙": 1,
+ "⃚": 1,
+ "⃛": 230,
+ "⃜": 230,
+ "⃡": 230,
+ "⃥": 1,
+ "⃦": 1,
+ "⃧": 230,
+ "⃨": 220,
+ "⃩": 230,
+ "⃪": 1,
+ "⃫": 1,
+ "⃬": 220,
+ "⃭": 220,
+ "⃮": 220,
+ "⃯": 220,
+ "⃰": 230,
+ "⳯": 230,
+ "⳰": 230,
+ "⳱": 230,
+ "⵿": 9,
+ "ⷠ": 230,
+ "ⷡ": 230,
+ "ⷢ": 230,
+ "ⷣ": 230,
+ "ⷤ": 230,
+ "ⷥ": 230,
+ "ⷦ": 230,
+ "ⷧ": 230,
+ "ⷨ": 230,
+ "ⷩ": 230,
+ "ⷪ": 230,
+ "ⷫ": 230,
+ "ⷬ": 230,
+ "ⷭ": 230,
+ "ⷮ": 230,
+ "ⷯ": 230,
+ "ⷰ": 230,
+ "ⷱ": 230,
+ "ⷲ": 230,
+ "ⷳ": 230,
+ "ⷴ": 230,
+ "ⷵ": 230,
+ "ⷶ": 230,
+ "ⷷ": 230,
+ "ⷸ": 230,
+ "ⷹ": 230,
+ "ⷺ": 230,
+ "ⷻ": 230,
+ "ⷼ": 230,
+ "ⷽ": 230,
+ "ⷾ": 230,
+ "ⷿ": 230,
+ "〪": 218,
+ "〫": 228,
+ "〬": 232,
+ "〭": 222,
+ "〮": 224,
+ "〯": 224,
+ "゙": 8,
+ "゚": 8,
+ "꙯": 230,
+ "ꙴ": 230,
+ "ꙵ": 230,
+ "ꙶ": 230,
+ "ꙷ": 230,
+ "ꙸ": 230,
+ "ꙹ": 230,
+ "ꙺ": 230,
+ "ꙻ": 230,
+ "꙼": 230,
+ "꙽": 230,
+ "ꚞ": 230,
+ "ꚟ": 230,
+ "꛰": 230,
+ "꛱": 230,
+ "꠆": 9,
+ "꣄": 9,
+ "꣠": 230,
+ "꣡": 230,
+ "꣢": 230,
+ "꣣": 230,
+ "꣤": 230,
+ "꣥": 230,
+ "꣦": 230,
+ "꣧": 230,
+ "꣨": 230,
+ "꣩": 230,
+ "꣪": 230,
+ "꣫": 230,
+ "꣬": 230,
+ "꣭": 230,
+ "꣮": 230,
+ "꣯": 230,
+ "꣰": 230,
+ "꣱": 230,
+ "꤫": 220,
+ "꤬": 220,
+ "꤭": 220,
+ "꥓": 9,
+ "꦳": 7,
+ "꧀": 9,
+ "ꪰ": 230,
+ "ꪲ": 230,
+ "ꪳ": 230,
+ "ꪴ": 220,
+ "ꪷ": 230,
+ "ꪸ": 230,
+ "ꪾ": 230,
+ "꪿": 230,
+ "꫁": 230,
+ "꫶": 9,
+ "꯭": 9,
+ "ﬞ": 26,
+ "︠": 230,
+ "︡": 230,
+ "︢": 230,
+ "︣": 230,
+ "︤": 230,
+ "︥": 230,
+ "︦": 230,
+ "︧": 220,
+ "︨": 220,
+ "︩": 220,
+ "︪": 220,
+ "︫": 220,
+ "︬": 220,
+ "︭": 220,
+ "︮": 230,
+ "︯": 230,
+ "𐇽": 220,
+ "𐋠": 220,
+ "𐍶": 230,
+ "𐍷": 230,
+ "𐍸": 230,
+ "𐍹": 230,
+ "𐍺": 230,
+ "𐨍": 220,
+ "𐨏": 230,
+ "𐨸": 230,
+ "𐨹": 1,
+ "𐨺": 220,
+ "𐨿": 9,
+ "𐫥": 230,
+ "𐫦": 220,
+ "𑁆": 9,
+ "𑁿": 9,
+ "𑂹": 9,
+ "𑂺": 7,
+ "𑄀": 230,
+ "𑄁": 230,
+ "𑄂": 230,
+ "𑄳": 9,
+ "𑄴": 9,
+ "𑅳": 7,
+ "𑇀": 9,
+ "𑇊": 7,
+ "𑈵": 9,
+ "𑈶": 7,
+ "𑋩": 7,
+ "𑋪": 9,
+ "𑌼": 7,
+ "𑍍": 9,
+ "𑍦": 230,
+ "𑍧": 230,
+ "𑍨": 230,
+ "𑍩": 230,
+ "𑍪": 230,
+ "𑍫": 230,
+ "𑍬": 230,
+ "𑍰": 230,
+ "𑍱": 230,
+ "𑍲": 230,
+ "𑍳": 230,
+ "𑍴": 230,
+ "𑑂": 9,
+ "𑑆": 7,
+ "𑓂": 9,
+ "𑓃": 7,
+ "𑖿": 9,
+ "𑗀": 7,
+ "𑘿": 9,
+ "𑚶": 9,
+ "𑚷": 7,
+ "𑜫": 9,
+ "𑨴": 9,
+ "𑩇": 9,
+ "𑪙": 9,
+ "𑰿": 9,
+ "𑵂": 7,
+ "𑵄": 9,
+ "𑵅": 9,
+ "𖫰": 1,
+ "𖫱": 1,
+ "𖫲": 1,
+ "𖫳": 1,
+ "𖫴": 1,
+ "𖬰": 230,
+ "𖬱": 230,
+ "𖬲": 230,
+ "𖬳": 230,
+ "𖬴": 230,
+ "𖬵": 230,
+ "𖬶": 230,
+ "𛲞": 1,
+ "𝅥": 216,
+ "𝅦": 216,
+ "𝅧": 1,
+ "𝅨": 1,
+ "𝅩": 1,
+ "𝅭": 226,
+ "𝅮": 216,
+ "𝅯": 216,
+ "𝅰": 216,
+ "𝅱": 216,
+ "𝅲": 216,
+ "𝅻": 220,
+ "𝅼": 220,
+ "𝅽": 220,
+ "𝅾": 220,
+ "𝅿": 220,
+ "𝆀": 220,
+ "𝆁": 220,
+ "𝆂": 220,
+ "𝆅": 230,
+ "𝆆": 230,
+ "𝆇": 230,
+ "𝆈": 230,
+ "𝆉": 230,
+ "𝆊": 220,
+ "𝆋": 220,
+ "𝆪": 230,
+ "𝆫": 230,
+ "𝆬": 230,
+ "𝆭": 230,
+ "𝉂": 230,
+ "𝉃": 230,
+ "𝉄": 230,
+ "𞀀": 230,
+ "𞀁": 230,
+ "𞀂": 230,
+ "𞀃": 230,
+ "𞀄": 230,
+ "𞀅": 230,
+ "𞀆": 230,
+ "𞀈": 230,
+ "𞀉": 230,
+ "𞀊": 230,
+ "𞀋": 230,
+ "𞀌": 230,
+ "𞀍": 230,
+ "𞀎": 230,
+ "𞀏": 230,
+ "𞀐": 230,
+ "𞀑": 230,
+ "𞀒": 230,
+ "𞀓": 230,
+ "𞀔": 230,
+ "𞀕": 230,
+ "𞀖": 230,
+ "𞀗": 230,
+ "𞀘": 230,
+ "𞀛": 230,
+ "𞀜": 230,
+ "𞀝": 230,
+ "𞀞": 230,
+ "𞀟": 230,
+ "𞀠": 230,
+ "𞀡": 230,
+ "𞀣": 230,
+ "𞀤": 230,
+ "𞀦": 230,
+ "𞀧": 230,
+ "𞀨": 230,
+ "𞀩": 230,
+ "𞀪": 230,
+ "𞣐": 220,
+ "𞣑": 220,
+ "𞣒": 220,
+ "𞣓": 220,
+ "𞣔": 220,
+ "𞣕": 220,
+ "𞣖": 220,
+ "𞥄": 230,
+ "𞥅": 230,
+ "𞥆": 230,
+ "𞥇": 230,
+ "𞥈": 230,
+ "𞥉": 230,
+ "𞥊": 7
+}
\ No newline at end of file
diff --git a/js/data/locale/charset/ANSI_X3.110-1983.json b/js/data/locale/charset/ANSI_X3.110-1983.json
index aa67ca2ed1..b8a53635ec 100644
--- a/js/data/locale/charset/ANSI_X3.110-1983.json
+++ b/js/data/locale/charset/ANSI_X3.110-1983.json
@@ -3,5 +3,6 @@
"min": 1,
"max": 2,
"scripts": ["Latn"],
- "locales": ["en"]
+ "locales": ["en"],
+ "optional": true
}
\ No newline at end of file
diff --git a/js/data/locale/charset/BOCU-1.json b/js/data/locale/charset/BOCU-1.json
index 24404ad014..586f83223f 100644
--- a/js/data/locale/charset/BOCU-1.json
+++ b/js/data/locale/charset/BOCU-1.json
@@ -3,5 +3,6 @@
"min": 1,
"max": 4,
"scripts": ["*"],
- "locales": ["*"]
+ "locales": ["*"],
+ "optional": true
}
\ No newline at end of file
diff --git a/js/data/locale/charset/BS_4730.json b/js/data/locale/charset/BS_4730.json
index cb0b4c5c8d..ac915b4230 100644
--- a/js/data/locale/charset/BS_4730.json
+++ b/js/data/locale/charset/BS_4730.json
@@ -3,5 +3,6 @@
"min": 1,
"max": 1,
"scripts": ["Latn"],
- "locales": ["GB"]
+ "locales": ["GB"],
+ "optional": true
}
\ No newline at end of file
diff --git a/js/data/locale/charset/BS_viewdata.json b/js/data/locale/charset/BS_viewdata.json
index 483418d97f..4d58607758 100644
--- a/js/data/locale/charset/BS_viewdata.json
+++ b/js/data/locale/charset/BS_viewdata.json
@@ -3,5 +3,6 @@
"min": 1,
"max": 1,
"scripts": ["Latn"],
- "locales": ["GB"]
+ "locales": ["GB"],
+ "optional": true
}
\ No newline at end of file
diff --git a/js/data/locale/charset/Big5-HKSCS.json b/js/data/locale/charset/Big5-HKSCS.json
index 75eb95fa08..27608f57cf 100644
--- a/js/data/locale/charset/Big5-HKSCS.json
+++ b/js/data/locale/charset/Big5-HKSCS.json
@@ -3,5 +3,6 @@
"min": 1,
"max": 2,
"scripts": ["Hant", "Hani", "Latn", "Grek", "Cyrl", "Bopo", "Hrkt", "Hira", "Kana", "Jpan"],
- "locales": ["zh-Hant", "HK"]
+ "locales": ["zh-Hant"],
+ "optional": true
}
\ No newline at end of file
diff --git a/js/data/locale/charset/Big5.json b/js/data/locale/charset/Big5.json
index 00247e0de9..25fc150978 100644
--- a/js/data/locale/charset/Big5.json
+++ b/js/data/locale/charset/Big5.json
@@ -3,5 +3,5 @@
"min": 1,
"max": 2,
"scripts": ["Hans", "Hani", "Latn", "Grek", "Cyrl", "Bopo", "Hrkt", "Hira", "Kana", "Jpan"],
- "locales": ["zh-Hant", "TW"]
+ "locales": ["zh-Hant"]
}
\ No newline at end of file
diff --git a/js/data/locale/charset/CESU-8.json b/js/data/locale/charset/CESU-8.json
index 05470de835..938f00f39a 100644
--- a/js/data/locale/charset/CESU-8.json
+++ b/js/data/locale/charset/CESU-8.json
@@ -3,5 +3,6 @@
"min": 1,
"max": 6,
"scripts": ["*"],
- "locales": ["*"]
+ "locales": ["*"],
+ "optional": true
}
\ No newline at end of file
diff --git a/js/data/locale/charset/CP50220.json b/js/data/locale/charset/CP50220.json
index 4cb4711a89..14d27368a5 100644
--- a/js/data/locale/charset/CP50220.json
+++ b/js/data/locale/charset/CP50220.json
@@ -2,5 +2,6 @@
"min": 1,
"max": 2,
"scripts": ["Jpan","Kana","Hira","Latn"],
- "locales": ["ja"]
+ "locales": ["ja"],
+ "optional": true
}
\ No newline at end of file
diff --git a/js/data/locale/charset/CP51932.json b/js/data/locale/charset/CP51932.json
index 4cb4711a89..14d27368a5 100644
--- a/js/data/locale/charset/CP51932.json
+++ b/js/data/locale/charset/CP51932.json
@@ -2,5 +2,6 @@
"min": 1,
"max": 2,
"scripts": ["Jpan","Kana","Hira","Latn"],
- "locales": ["ja"]
+ "locales": ["ja"],
+ "optional": true
}
\ No newline at end of file
diff --git a/js/data/locale/charset/EBCDIC-AT-DE-A.json b/js/data/locale/charset/EBCDIC-AT-DE-A.json
index c2f72a06de..fc21faa51a 100644
--- a/js/data/locale/charset/EBCDIC-AT-DE-A.json
+++ b/js/data/locale/charset/EBCDIC-AT-DE-A.json
@@ -2,5 +2,6 @@
"min": 1,
"max": 1,
"scripts": ["Latn"],
- "locales": ["AT"]
+ "locales": ["AT"],
+ "optional": true
}
\ No newline at end of file
diff --git a/js/data/locale/charset/EBCDIC-AT-DE.json b/js/data/locale/charset/EBCDIC-AT-DE.json
index 2d849546f1..4eeda82867 100644
--- a/js/data/locale/charset/EBCDIC-AT-DE.json
+++ b/js/data/locale/charset/EBCDIC-AT-DE.json
@@ -2,5 +2,6 @@
"min": 1,
"max": 1,
"scripts": ["Latn"],
- "locales": ["DE"]
+ "locales": ["DE"],
+ "optional": true
}
\ No newline at end of file
diff --git a/js/data/locale/charset/EBCDIC-CA-FR.json b/js/data/locale/charset/EBCDIC-CA-FR.json
index 2328ec48d1..f2a5707680 100644
--- a/js/data/locale/charset/EBCDIC-CA-FR.json
+++ b/js/data/locale/charset/EBCDIC-CA-FR.json
@@ -2,5 +2,6 @@
"min": 1,
"max": 1,
"scripts": ["Latn"],
- "locales": ["CA","FR"]
+ "locales": ["CA","FR"],
+ "optional": true
}
\ No newline at end of file
diff --git a/js/data/locale/charset/EBCDIC-DK-NO-A.json b/js/data/locale/charset/EBCDIC-DK-NO-A.json
index 0dd8fecf78..d8673f1430 100644
--- a/js/data/locale/charset/EBCDIC-DK-NO-A.json
+++ b/js/data/locale/charset/EBCDIC-DK-NO-A.json
@@ -2,5 +2,6 @@
"min": 1,
"max": 1,
"scripts": ["Latn"],
- "locales": ["DK","NO"]
+ "locales": ["DK","NO"],
+ "optional": true
}
\ No newline at end of file
diff --git a/js/data/locale/charset/EBCDIC-DK-NO.json b/js/data/locale/charset/EBCDIC-DK-NO.json
index 0dd8fecf78..d8673f1430 100644
--- a/js/data/locale/charset/EBCDIC-DK-NO.json
+++ b/js/data/locale/charset/EBCDIC-DK-NO.json
@@ -2,5 +2,6 @@
"min": 1,
"max": 1,
"scripts": ["Latn"],
- "locales": ["DK","NO"]
+ "locales": ["DK","NO"],
+ "optional": true
}
\ No newline at end of file
diff --git a/js/data/locale/charset/EBCDIC-ES-A.json b/js/data/locale/charset/EBCDIC-ES-A.json
index 81d03361f6..4adfb03f2e 100644
--- a/js/data/locale/charset/EBCDIC-ES-A.json
+++ b/js/data/locale/charset/EBCDIC-ES-A.json
@@ -2,5 +2,6 @@
"min": 1,
"max": 1,
"scripts": ["Latn"],
- "locales": ["ES"]
+ "locales": ["ES"],
+ "optional": true
}
\ No newline at end of file
diff --git a/js/data/locale/charset/EBCDIC-ES-S.json b/js/data/locale/charset/EBCDIC-ES-S.json
index 81d03361f6..4adfb03f2e 100644
--- a/js/data/locale/charset/EBCDIC-ES-S.json
+++ b/js/data/locale/charset/EBCDIC-ES-S.json
@@ -2,5 +2,6 @@
"min": 1,
"max": 1,
"scripts": ["Latn"],
- "locales": ["ES"]
+ "locales": ["ES"],
+ "optional": true
}
\ No newline at end of file
diff --git a/js/data/locale/charset/EBCDIC-ES.json b/js/data/locale/charset/EBCDIC-ES.json
index 81d03361f6..4adfb03f2e 100644
--- a/js/data/locale/charset/EBCDIC-ES.json
+++ b/js/data/locale/charset/EBCDIC-ES.json
@@ -2,5 +2,6 @@
"min": 1,
"max": 1,
"scripts": ["Latn"],
- "locales": ["ES"]
+ "locales": ["ES"],
+ "optional": true
}
\ No newline at end of file
diff --git a/js/data/locale/charset/EBCDIC-FI-SE-A.json b/js/data/locale/charset/EBCDIC-FI-SE-A.json
index 3959b83d1d..c9a973e918 100644
--- a/js/data/locale/charset/EBCDIC-FI-SE-A.json
+++ b/js/data/locale/charset/EBCDIC-FI-SE-A.json
@@ -2,5 +2,6 @@
"min": 1,
"max": 1,
"scripts": ["Latn"],
- "locales": ["FI","SE"]
+ "locales": ["FI","SE"],
+ "optional": true
}
\ No newline at end of file
diff --git a/js/data/locale/charset/EBCDIC-FI-SE.json b/js/data/locale/charset/EBCDIC-FI-SE.json
index 8569a72f03..873d33f677 100644
--- a/js/data/locale/charset/EBCDIC-FI-SE.json
+++ b/js/data/locale/charset/EBCDIC-FI-SE.json
@@ -2,5 +2,6 @@
"min": 1,
"max": 1,
"scripts": ["Latn"],
- "locales": ["FI", "SE"]
+ "locales": ["FI", "SE"],
+ "optional": true
}
\ No newline at end of file
diff --git a/js/data/locale/charset/EBCDIC-FR.json b/js/data/locale/charset/EBCDIC-FR.json
index 6a4cea113f..948cb6cc86 100644
--- a/js/data/locale/charset/EBCDIC-FR.json
+++ b/js/data/locale/charset/EBCDIC-FR.json
@@ -2,5 +2,6 @@
"min": 1,
"max": 1,
"scripts": ["Latn"],
- "locales": ["FR"]
+ "locales": ["FR"],
+ "optional": true
}
\ No newline at end of file
diff --git a/js/data/locale/charset/EBCDIC-IS-FRISS.json b/js/data/locale/charset/EBCDIC-IS-FRISS.json
index 3cd777a0c6..bfd5365ce2 100644
--- a/js/data/locale/charset/EBCDIC-IS-FRISS.json
+++ b/js/data/locale/charset/EBCDIC-IS-FRISS.json
@@ -2,5 +2,6 @@
"min": 1,
"max": 1,
"scripts": ["Latn"],
- "locales": ["IS"]
+ "locales": ["IS"],
+ "optional": true
}
\ No newline at end of file
diff --git a/js/data/locale/charset/EBCDIC-IT.json b/js/data/locale/charset/EBCDIC-IT.json
index d3955621fe..e70d45ddd4 100644
--- a/js/data/locale/charset/EBCDIC-IT.json
+++ b/js/data/locale/charset/EBCDIC-IT.json
@@ -2,5 +2,6 @@
"min": 1,
"max": 1,
"scripts": ["Latn"],
- "locales": ["IT"]
+ "locales": ["IT"],
+ "optional": true
}
\ No newline at end of file
diff --git a/js/data/locale/charset/EBCDIC-PT.json b/js/data/locale/charset/EBCDIC-PT.json
index ff0ddd4078..655147235f 100644
--- a/js/data/locale/charset/EBCDIC-PT.json
+++ b/js/data/locale/charset/EBCDIC-PT.json
@@ -2,5 +2,6 @@
"min": 1,
"max": 1,
"scripts": ["Latn"],
- "locales": ["PT"]
+ "locales": ["PT"],
+ "optional": true
}
\ No newline at end of file
diff --git a/js/data/locale/charset/EBCDIC-UK.json b/js/data/locale/charset/EBCDIC-UK.json
index 71a8135351..357df6d4a1 100644
--- a/js/data/locale/charset/EBCDIC-UK.json
+++ b/js/data/locale/charset/EBCDIC-UK.json
@@ -2,5 +2,6 @@
"min": 1,
"max": 1,
"scripts": ["Latn"],
- "locales": ["GB"]
+ "locales": ["GB"],
+ "optional": true
}
\ No newline at end of file
diff --git a/js/data/locale/charset/EBCDIC-US.json b/js/data/locale/charset/EBCDIC-US.json
index 6350feb95e..c2fc6500ef 100644
--- a/js/data/locale/charset/EBCDIC-US.json
+++ b/js/data/locale/charset/EBCDIC-US.json
@@ -2,5 +2,6 @@
"min": 1,
"max": 1,
"scripts": ["Latn"],
- "locales": ["US"]
+ "locales": ["US"],
+ "optional": true
}
\ No newline at end of file
diff --git a/js/data/locale/charset/ECMA-cyrillic.json b/js/data/locale/charset/ECMA-cyrillic.json
index d1053b1506..b5da943c95 100644
--- a/js/data/locale/charset/ECMA-cyrillic.json
+++ b/js/data/locale/charset/ECMA-cyrillic.json
@@ -2,5 +2,6 @@
"min": 1,
"max": 1,
"scripts": ["Cyrl", "Latn"],
- "locales": ["ru","be","uk","ba","be","bg","cv","kk","mk","mn","os","ro","se","sr","tg","tk","tt","ug","uz"]
+ "locales": ["ru","be","uk","ba","be","bg","cv","kk","mk","mn","os","ro","se","sr","tg","tk","tt","ug","uz"],
+ "optional": true
}
\ No newline at end of file
diff --git a/js/data/locale/charset/ES.json b/js/data/locale/charset/ES.json
index 81d03361f6..4adfb03f2e 100644
--- a/js/data/locale/charset/ES.json
+++ b/js/data/locale/charset/ES.json
@@ -2,5 +2,6 @@
"min": 1,
"max": 1,
"scripts": ["Latn"],
- "locales": ["ES"]
+ "locales": ["ES"],
+ "optional": true
}
\ No newline at end of file
diff --git a/js/data/locale/charset/ES2.json b/js/data/locale/charset/ES2.json
index 81d03361f6..4adfb03f2e 100644
--- a/js/data/locale/charset/ES2.json
+++ b/js/data/locale/charset/ES2.json
@@ -2,5 +2,6 @@
"min": 1,
"max": 1,
"scripts": ["Latn"],
- "locales": ["ES"]
+ "locales": ["ES"],
+ "optional": true
}
\ No newline at end of file
diff --git a/js/data/locale/charset/EUC-JIS_X0213.json b/js/data/locale/charset/EUC-JIS_X0213.json
index ceec3d135b..0c954774c4 100644
--- a/js/data/locale/charset/EUC-JIS_X0213.json
+++ b/js/data/locale/charset/EUC-JIS_X0213.json
@@ -2,5 +2,6 @@
"min": 1,
"max": 3,
"scripts": ["Jpan", "Hani", "Latn", "Hrkt", "Hira", "Kana"],
- "locales": ["ja"]
+ "locales": ["ja"],
+ "optional": true
}
\ No newline at end of file
diff --git a/js/data/locale/charset/EUC-JP-MS.json b/js/data/locale/charset/EUC-JP-MS.json
index ceec3d135b..0c954774c4 100644
--- a/js/data/locale/charset/EUC-JP-MS.json
+++ b/js/data/locale/charset/EUC-JP-MS.json
@@ -2,5 +2,6 @@
"min": 1,
"max": 3,
"scripts": ["Jpan", "Hani", "Latn", "Hrkt", "Hira", "Kana"],
- "locales": ["ja"]
+ "locales": ["ja"],
+ "optional": true
}
\ No newline at end of file
diff --git a/js/data/locale/charset/GB_1988-80.json b/js/data/locale/charset/GB_1988-80.json
index 310dc90b0c..de9d287d86 100644
--- a/js/data/locale/charset/GB_1988-80.json
+++ b/js/data/locale/charset/GB_1988-80.json
@@ -2,5 +2,6 @@
"min": 1,
"max": 2,
"scripts": ["Hans", "Hani", "Latn", "Grek", "Cyrl", "Bopo", "Hrkt", "Hira", "Kana", "Jpan"],
- "locales": ["zh-Hans"]
+ "locales": ["zh-Hans"],
+ "optional": true
}
\ No newline at end of file
diff --git a/js/data/locale/charset/GOST_19768-74.json b/js/data/locale/charset/GOST_19768-74.json
index 4188d80a91..551cd52c80 100644
--- a/js/data/locale/charset/GOST_19768-74.json
+++ b/js/data/locale/charset/GOST_19768-74.json
@@ -2,5 +2,6 @@
"min": 1,
"max": 1,
"scripts": ["Cyrl", "Latn"],
- "locales": ["ru"]
+ "locales": ["ru"],
+ "optional": true
}
\ No newline at end of file
diff --git a/js/data/locale/charset/HZ-GB-2312.json b/js/data/locale/charset/HZ-GB-2312.json
index 310dc90b0c..de9d287d86 100644
--- a/js/data/locale/charset/HZ-GB-2312.json
+++ b/js/data/locale/charset/HZ-GB-2312.json
@@ -2,5 +2,6 @@
"min": 1,
"max": 2,
"scripts": ["Hans", "Hani", "Latn", "Grek", "Cyrl", "Bopo", "Hrkt", "Hira", "Kana", "Jpan"],
- "locales": ["zh-Hans"]
+ "locales": ["zh-Hans"],
+ "optional": true
}
\ No newline at end of file
diff --git a/js/data/locale/charset/IBM-Thai.json b/js/data/locale/charset/IBM-Thai.json
index 79c12e6228..927e09bf08 100644
--- a/js/data/locale/charset/IBM-Thai.json
+++ b/js/data/locale/charset/IBM-Thai.json
@@ -2,5 +2,6 @@
"min": 1,
"max": 1,
"scripts": ["Thai", "Latn"],
- "locales": ["th"]
+ "locales": ["th"],
+ "optional": true
}
\ No newline at end of file
diff --git a/js/data/locale/charset/IBM00858.json b/js/data/locale/charset/IBM00858.json
index 5cf970989e..2db0007eeb 100644
--- a/js/data/locale/charset/IBM00858.json
+++ b/js/data/locale/charset/IBM00858.json
@@ -3,5 +3,5 @@
"min": 1,
"max": 1,
"scripts": ["Latn"],
- "locales": ["en","de","fr","nl","es","it","ga","gl","da","no","nb","nn","sv","fi","ca","eu","pt","rm","roa"]
+ "locales": ["en","de","fr","nl","es","it","ga","gl","da","no","nb","nn","sv","fi","ca","eu","pt","ro","roa"]
}
\ No newline at end of file
diff --git a/js/data/locale/charset/IBM01141.json b/js/data/locale/charset/IBM01141.json
index 532fc877b1..a914736e23 100644
--- a/js/data/locale/charset/IBM01141.json
+++ b/js/data/locale/charset/IBM01141.json
@@ -3,5 +3,6 @@
"min": 1,
"max": 1,
"scripts": ["Latn"],
- "locales": ["DE"]
+ "locales": ["DE"],
+ "optional": true
}
\ No newline at end of file
diff --git a/js/data/locale/charset/IBM01142.json b/js/data/locale/charset/IBM01142.json
index 6aad15370e..57626a5a7e 100644
--- a/js/data/locale/charset/IBM01142.json
+++ b/js/data/locale/charset/IBM01142.json
@@ -3,5 +3,6 @@
"min": 1,
"max": 1,
"scripts": ["Latn"],
- "locales": ["DK","NO"]
+ "locales": ["DK","NO"],
+ "optional": true
}
\ No newline at end of file
diff --git a/js/data/locale/charset/IBM01143.json b/js/data/locale/charset/IBM01143.json
index e922261db3..4a6c04789c 100644
--- a/js/data/locale/charset/IBM01143.json
+++ b/js/data/locale/charset/IBM01143.json
@@ -3,5 +3,6 @@
"min": 1,
"max": 1,
"scripts": ["Latn"],
- "locales": ["FI","SE"]
+ "locales": ["FI","SE"],
+ "optional": true
}
\ No newline at end of file
diff --git a/js/data/locale/charset/IBM01144.json b/js/data/locale/charset/IBM01144.json
index 9b2ccdb72a..6803cab27b 100644
--- a/js/data/locale/charset/IBM01144.json
+++ b/js/data/locale/charset/IBM01144.json
@@ -3,5 +3,6 @@
"min": 1,
"max": 1,
"scripts": ["Latn"],
- "locales": ["IT"]
+ "locales": ["IT"],
+ "optional": true
}
\ No newline at end of file
diff --git a/js/data/locale/charset/IBM01145.json b/js/data/locale/charset/IBM01145.json
index 1067ce198e..894f060df1 100644
--- a/js/data/locale/charset/IBM01145.json
+++ b/js/data/locale/charset/IBM01145.json
@@ -3,5 +3,6 @@
"min": 1,
"max": 1,
"scripts": ["Latn"],
- "locales": ["ES"]
+ "locales": ["ES"],
+ "optional": true
}
\ No newline at end of file
diff --git a/js/data/locale/charset/IBM01146.json b/js/data/locale/charset/IBM01146.json
index 35180953eb..439b3df66a 100644
--- a/js/data/locale/charset/IBM01146.json
+++ b/js/data/locale/charset/IBM01146.json
@@ -3,5 +3,6 @@
"min": 1,
"max": 1,
"scripts": ["Latn"],
- "locales": ["GB"]
+ "locales": ["GB"],
+ "optional": true
}
\ No newline at end of file
diff --git a/js/data/locale/charset/IBM01147.json b/js/data/locale/charset/IBM01147.json
index 4f299a4b0d..0a310e10f6 100644
--- a/js/data/locale/charset/IBM01147.json
+++ b/js/data/locale/charset/IBM01147.json
@@ -3,5 +3,6 @@
"min": 1,
"max": 1,
"scripts": ["Latn"],
- "locales": ["FR"]
+ "locales": ["FR"],
+ "optional": true
}
\ No newline at end of file
diff --git a/js/data/locale/charset/IBM01149.json b/js/data/locale/charset/IBM01149.json
index d86cfc833f..01e7a2f874 100644
--- a/js/data/locale/charset/IBM01149.json
+++ b/js/data/locale/charset/IBM01149.json
@@ -3,5 +3,6 @@
"min": 1,
"max": 1,
"scripts": ["Latn"],
- "locales": ["IS"]
+ "locales": ["IS"],
+ "optional": true
}
\ No newline at end of file
diff --git a/js/data/locale/charset/IBM1026.json b/js/data/locale/charset/IBM1026.json
index f169da63ff..3f892fd66f 100644
--- a/js/data/locale/charset/IBM1026.json
+++ b/js/data/locale/charset/IBM1026.json
@@ -2,5 +2,6 @@
"min": 1,
"max": 1,
"scripts": ["Latn"],
- "locales": ["TR"]
+ "locales": ["TR"],
+ "optional": true
}
\ No newline at end of file
diff --git a/js/data/locale/charset/IBM1124.json b/js/data/locale/charset/IBM1124.json
index 049b45e9e7..60b6abbe89 100644
--- a/js/data/locale/charset/IBM1124.json
+++ b/js/data/locale/charset/IBM1124.json
@@ -2,5 +2,6 @@
"min": 1,
"max": 1,
"scripts": ["Cyrl","Latn"],
- "locales": ["uk"]
+ "locales": ["uk"],
+ "optional": true
}
\ No newline at end of file
diff --git a/js/data/locale/charset/IBM1132.json b/js/data/locale/charset/IBM1132.json
index e0adf1e5ce..5b24b4b3a0 100644
--- a/js/data/locale/charset/IBM1132.json
+++ b/js/data/locale/charset/IBM1132.json
@@ -3,5 +3,6 @@
"min": 1,
"max": 1,
"scripts": ["Laoo", "Latn"],
- "locales": ["lo"]
+ "locales": ["lo"],
+ "optional": true
}
\ No newline at end of file
diff --git a/js/data/locale/charset/IBM1133.json b/js/data/locale/charset/IBM1133.json
index 668d7ea222..9a4bc4b7b5 100644
--- a/js/data/locale/charset/IBM1133.json
+++ b/js/data/locale/charset/IBM1133.json
@@ -3,5 +3,6 @@
"min": 1,
"max": 1,
"scripts": ["Laoo", "Latn"],
- "locales": ["lo"]
+ "locales": ["lo"],
+ "optional": true
}
\ No newline at end of file
diff --git a/js/data/locale/charset/IBM1160.json b/js/data/locale/charset/IBM1160.json
index 040e7a53a4..abfcff0cf8 100644
--- a/js/data/locale/charset/IBM1160.json
+++ b/js/data/locale/charset/IBM1160.json
@@ -3,5 +3,6 @@
"min": 1,
"max": 1,
"scripts": ["Thai", "Latn"],
- "locales": ["th"]
+ "locales": ["th"],
+ "optional": true
}
\ No newline at end of file
diff --git a/js/data/locale/charset/IBM1162.json b/js/data/locale/charset/IBM1162.json
index 79c12e6228..927e09bf08 100644
--- a/js/data/locale/charset/IBM1162.json
+++ b/js/data/locale/charset/IBM1162.json
@@ -2,5 +2,6 @@
"min": 1,
"max": 1,
"scripts": ["Thai", "Latn"],
- "locales": ["th"]
+ "locales": ["th"],
+ "optional": true
}
\ No newline at end of file
diff --git a/js/data/locale/charset/IBM1163.json b/js/data/locale/charset/IBM1163.json
index ce7e4718d9..45fa3f1487 100644
--- a/js/data/locale/charset/IBM1163.json
+++ b/js/data/locale/charset/IBM1163.json
@@ -2,5 +2,6 @@
"min": 1,
"max": 1,
"scripts": ["Latn"],
- "locales": ["vi"]
+ "locales": ["vi"],
+ "optional": true
}
\ No newline at end of file
diff --git a/js/data/locale/charset/IBM1164.json b/js/data/locale/charset/IBM1164.json
index de06bcfd3c..f3879ea560 100644
--- a/js/data/locale/charset/IBM1164.json
+++ b/js/data/locale/charset/IBM1164.json
@@ -3,5 +3,6 @@
"min": 1,
"max": 1,
"scripts": ["Latn"],
- "locales": ["nl"]
+ "locales": ["nl"],
+ "optional": true
}
\ No newline at end of file
diff --git a/js/data/locale/charset/IBM256.json b/js/data/locale/charset/IBM256.json
index 310cd014fb..f2e2c48799 100644
--- a/js/data/locale/charset/IBM256.json
+++ b/js/data/locale/charset/IBM256.json
@@ -3,5 +3,6 @@
"min": 1,
"max": 1,
"scripts": ["Latn"],
- "locales": ["vi"]
+ "locales": ["vi"],
+ "optional": true
}
\ No newline at end of file
diff --git a/js/data/locale/charset/IBM437.json b/js/data/locale/charset/IBM437.json
index 1a00f3bbe4..0bf1cdcff4 100644
--- a/js/data/locale/charset/IBM437.json
+++ b/js/data/locale/charset/IBM437.json
@@ -1,5 +1,6 @@
{
"min": 1,
"max": 1,
- "scripts": ["Latn"]
+ "scripts": ["Latn"],
+ "locales": ["en","de","fr","nl","es","it","ga","gl","da","no","nb","nn","sv","fi","ca","eu","pt","ro","roa"]
}
\ No newline at end of file
diff --git a/js/data/locale/charset/IBM850.json b/js/data/locale/charset/IBM850.json
index a86ac8e73f..6e0e4719e7 100644
--- a/js/data/locale/charset/IBM850.json
+++ b/js/data/locale/charset/IBM850.json
@@ -2,5 +2,5 @@
"min": 1,
"max": 1,
"scripts": ["Latn"],
- "locales": ["en","de","fr","nl","es","it","ga","gl","da","no","nb","nn","sv","fi","ca","eu","pt","rm","roa"]
+ "locales": ["en","de","fr","nl","es","it","ga","gl","da","no","nb","nn","sv","fi","ca","eu","pt","ro","roa"]
}
\ No newline at end of file
diff --git a/js/data/locale/charset/IBM852.json b/js/data/locale/charset/IBM852.json
index 1a00f3bbe4..33c85af08a 100644
--- a/js/data/locale/charset/IBM852.json
+++ b/js/data/locale/charset/IBM852.json
@@ -1,5 +1,6 @@
{
"min": 1,
"max": 1,
- "scripts": ["Latn"]
+ "scripts": ["Latn"],
+ "locales": ["hr", "cz", "et", "hu", "lv", "lt", "pl", "ro", "sk", "sl"]
}
\ No newline at end of file
diff --git a/js/data/locale/charset/IBM860.json b/js/data/locale/charset/IBM860.json
index 1a00f3bbe4..0bf1cdcff4 100644
--- a/js/data/locale/charset/IBM860.json
+++ b/js/data/locale/charset/IBM860.json
@@ -1,5 +1,6 @@
{
"min": 1,
"max": 1,
- "scripts": ["Latn"]
+ "scripts": ["Latn"],
+ "locales": ["en","de","fr","nl","es","it","ga","gl","da","no","nb","nn","sv","fi","ca","eu","pt","ro","roa"]
}
\ No newline at end of file
diff --git a/js/data/locale/charset/IBM864.json b/js/data/locale/charset/IBM864.json
index c2718ea8ce..243120df0c 100644
--- a/js/data/locale/charset/IBM864.json
+++ b/js/data/locale/charset/IBM864.json
@@ -1,5 +1,6 @@
{
"min": 1,
"max": 1,
- "scripts": ["Arab","Latn"]
+ "scripts": ["Arab","Latn"],
+ "locales": ["ar","az","fa","ha","kk","ks","ku","ky","ms","pa","ps","sd","so","tg","tk","ug","ur","uz","wo"]
}
\ No newline at end of file
diff --git a/js/data/locale/charset/IBM869.json b/js/data/locale/charset/IBM869.json
index c8ac6f1149..72edbe907f 100644
--- a/js/data/locale/charset/IBM869.json
+++ b/js/data/locale/charset/IBM869.json
@@ -1,5 +1,6 @@
{
"min": 1,
"max": 1,
- "scripts": ["Grek","Latn"]
+ "scripts": ["Grek","Latn"],
+ "locales": ["el"]
}
\ No newline at end of file
diff --git a/js/data/locale/charset/ISIRI-3342.json b/js/data/locale/charset/ISIRI-3342.json
index 06eb2d0efb..fefafccc10 100644
--- a/js/data/locale/charset/ISIRI-3342.json
+++ b/js/data/locale/charset/ISIRI-3342.json
@@ -2,5 +2,6 @@
"min": 1,
"max": 1,
"scripts": ["Arab","Latn"],
- "locales": ["ar"]
+ "locales": ["ar"],
+ "optional": true
}
\ No newline at end of file
diff --git a/js/data/locale/charset/ISO-2022-CN-EXT.json b/js/data/locale/charset/ISO-2022-CN-EXT.json
index da54164438..7ce2646d2c 100644
--- a/js/data/locale/charset/ISO-2022-CN-EXT.json
+++ b/js/data/locale/charset/ISO-2022-CN-EXT.json
@@ -3,6 +3,7 @@
"max": 2,
"scripts": ["Hans","Hani","Bopo","Latn"],
"locales": ["zh-Hans"],
+ "optional": true,
"escapes": {
"shifts": {
"to": {
diff --git a/js/data/locale/charset/ISO-2022-CN.json b/js/data/locale/charset/ISO-2022-CN.json
index 4a6a2873aa..1a952377b2 100644
--- a/js/data/locale/charset/ISO-2022-CN.json
+++ b/js/data/locale/charset/ISO-2022-CN.json
@@ -3,6 +3,7 @@
"max": 2,
"scripts": ["Hans","Hani","Bopo","Latn"],
"locales": ["zh-Hans"],
+ "optional": true,
"escapes": {
"shifts": {
"to": {
diff --git a/js/data/locale/charset/ISO-2022-JP-1.json b/js/data/locale/charset/ISO-2022-JP-1.json
index ccd969acab..aad822caba 100644
--- a/js/data/locale/charset/ISO-2022-JP-1.json
+++ b/js/data/locale/charset/ISO-2022-JP-1.json
@@ -3,6 +3,7 @@
"max": 2,
"scripts": ["Jpan","Kana","Hira","Latn","Hang","Kore","Grek","Hani"],
"locales": ["ja"],
+ "optional": true,
"escapes": {
"to": {
"US-ASCII": [27, 40, 66],
diff --git a/js/data/locale/charset/ISO-2022-JP-2.json b/js/data/locale/charset/ISO-2022-JP-2.json
index 724c1af46f..77421c7a0b 100644
--- a/js/data/locale/charset/ISO-2022-JP-2.json
+++ b/js/data/locale/charset/ISO-2022-JP-2.json
@@ -3,6 +3,7 @@
"max": 2,
"scripts": ["Jpan","Kana","Hira","Latn","Hang","Kore","Grek","Hani"],
"locales": ["ja"],
+ "optional": true,
"escapes": {
"to": {
"US-ASCII": [27, 40, 66],
diff --git a/js/data/locale/charset/ISO-2022-JP-2004.json b/js/data/locale/charset/ISO-2022-JP-2004.json
index 67e27ab100..84fc98ab8a 100644
--- a/js/data/locale/charset/ISO-2022-JP-2004.json
+++ b/js/data/locale/charset/ISO-2022-JP-2004.json
@@ -3,6 +3,7 @@
"max": 2,
"scripts": ["Jpan","Kana","Hira","Latn","Hang","Kore","Grek","Hani"],
"locales": ["ja"],
+ "optional": true,
"escapes": {
"shifts": {
"to": {
diff --git a/js/data/locale/charset/ISO-2022-JP-3.json b/js/data/locale/charset/ISO-2022-JP-3.json
index 278798c0ce..eada56e3c5 100644
--- a/js/data/locale/charset/ISO-2022-JP-3.json
+++ b/js/data/locale/charset/ISO-2022-JP-3.json
@@ -3,6 +3,7 @@
"max": 2,
"scripts": ["Jpan","Kana","Hira","Latn","Hang","Kore","Grek","Hani"],
"locales": ["ja"],
+ "optional": true,
"escapes": {
"to": {
"US-ASCII": [27, 40, 66],
diff --git a/js/data/locale/charset/ISO-2022-JP.json b/js/data/locale/charset/ISO-2022-JP.json
index 8de239268c..e3e515ca47 100644
--- a/js/data/locale/charset/ISO-2022-JP.json
+++ b/js/data/locale/charset/ISO-2022-JP.json
@@ -3,6 +3,7 @@
"max": 2,
"scripts": ["Jpan","Kana","Hira","Latn","Hani"],
"locales": ["ja"],
+ "optional": true,
"escapes": {
"to": {
"US-ASCII": [27, 40, 66],
diff --git a/js/data/locale/charset/ISO-8859-1.json b/js/data/locale/charset/ISO-8859-1.json
index 1a00f3bbe4..0bf1cdcff4 100644
--- a/js/data/locale/charset/ISO-8859-1.json
+++ b/js/data/locale/charset/ISO-8859-1.json
@@ -1,5 +1,6 @@
{
"min": 1,
"max": 1,
- "scripts": ["Latn"]
+ "scripts": ["Latn"],
+ "locales": ["en","de","fr","nl","es","it","ga","gl","da","no","nb","nn","sv","fi","ca","eu","pt","ro","roa"]
}
\ No newline at end of file
diff --git a/js/data/locale/charset/ISO-8859-13.json b/js/data/locale/charset/ISO-8859-13.json
index 1a00f3bbe4..9d080f3039 100644
--- a/js/data/locale/charset/ISO-8859-13.json
+++ b/js/data/locale/charset/ISO-8859-13.json
@@ -1,5 +1,6 @@
{
"min": 1,
"max": 1,
- "scripts": ["Latn"]
+ "scripts": ["Latn"],
+ "locales": ["et", "lv", "lt"]
}
\ No newline at end of file
diff --git a/js/data/locale/charset/ISO-8859-15.json b/js/data/locale/charset/ISO-8859-15.json
index 1a00f3bbe4..0bf1cdcff4 100644
--- a/js/data/locale/charset/ISO-8859-15.json
+++ b/js/data/locale/charset/ISO-8859-15.json
@@ -1,5 +1,6 @@
{
"min": 1,
"max": 1,
- "scripts": ["Latn"]
+ "scripts": ["Latn"],
+ "locales": ["en","de","fr","nl","es","it","ga","gl","da","no","nb","nn","sv","fi","ca","eu","pt","ro","roa"]
}
\ No newline at end of file
diff --git a/js/data/locale/charset/ISO-8859-2.json b/js/data/locale/charset/ISO-8859-2.json
index 1a00f3bbe4..33c85af08a 100644
--- a/js/data/locale/charset/ISO-8859-2.json
+++ b/js/data/locale/charset/ISO-8859-2.json
@@ -1,5 +1,6 @@
{
"min": 1,
"max": 1,
- "scripts": ["Latn"]
+ "scripts": ["Latn"],
+ "locales": ["hr", "cz", "et", "hu", "lv", "lt", "pl", "ro", "sk", "sl"]
}
\ No newline at end of file
diff --git a/js/data/locale/charset/ISO-8859-4.json b/js/data/locale/charset/ISO-8859-4.json
index 1a00f3bbe4..9d080f3039 100644
--- a/js/data/locale/charset/ISO-8859-4.json
+++ b/js/data/locale/charset/ISO-8859-4.json
@@ -1,5 +1,6 @@
{
"min": 1,
"max": 1,
- "scripts": ["Latn"]
+ "scripts": ["Latn"],
+ "locales": ["et", "lv", "lt"]
}
\ No newline at end of file
diff --git a/js/data/locale/charset/ISO-8859-5.json b/js/data/locale/charset/ISO-8859-5.json
index 3a27e93a7b..0dcc346545 100644
--- a/js/data/locale/charset/ISO-8859-5.json
+++ b/js/data/locale/charset/ISO-8859-5.json
@@ -1,5 +1,6 @@
{
"min": 1,
"max": 1,
- "scripts": ["Cyrl","Latn"]
+ "scripts": ["Cyrl","Latn"],
+ "locales": ["ru","be","uk","ba","be","bg","cv","kk","mk","mn","os","ro","se","sr","tg","tk","tt","ug","uz"]
}
\ No newline at end of file
diff --git a/js/data/locale/charset/ISO-8859-6.json b/js/data/locale/charset/ISO-8859-6.json
index c2718ea8ce..243120df0c 100644
--- a/js/data/locale/charset/ISO-8859-6.json
+++ b/js/data/locale/charset/ISO-8859-6.json
@@ -1,5 +1,6 @@
{
"min": 1,
"max": 1,
- "scripts": ["Arab","Latn"]
+ "scripts": ["Arab","Latn"],
+ "locales": ["ar","az","fa","ha","kk","ks","ku","ky","ms","pa","ps","sd","so","tg","tk","ug","ur","uz","wo"]
}
\ No newline at end of file
diff --git a/js/data/locale/charset/ISO-8859-7.json b/js/data/locale/charset/ISO-8859-7.json
index c8ac6f1149..72edbe907f 100644
--- a/js/data/locale/charset/ISO-8859-7.json
+++ b/js/data/locale/charset/ISO-8859-7.json
@@ -1,5 +1,6 @@
{
"min": 1,
"max": 1,
- "scripts": ["Grek","Latn"]
+ "scripts": ["Grek","Latn"],
+ "locales": ["el"]
}
\ No newline at end of file
diff --git a/js/data/locale/charset/ISO-8859-8.json b/js/data/locale/charset/ISO-8859-8.json
index 0b1689c379..9acb8d975a 100644
--- a/js/data/locale/charset/ISO-8859-8.json
+++ b/js/data/locale/charset/ISO-8859-8.json
@@ -1,5 +1,6 @@
{
"min": 1,
"max": 1,
- "scripts": ["Hebr","Latn"]
+ "scripts": ["Hebr","Latn"],
+ "locales": ["he"]
}
\ No newline at end of file
diff --git a/js/data/locale/charset/ISO-8859-9.json b/js/data/locale/charset/ISO-8859-9.json
index 1a00f3bbe4..2fd60a6d3d 100644
--- a/js/data/locale/charset/ISO-8859-9.json
+++ b/js/data/locale/charset/ISO-8859-9.json
@@ -1,5 +1,6 @@
{
"min": 1,
"max": 1,
- "scripts": ["Latn"]
+ "scripts": ["Latn"],
+ "locales": ["tr"]
}
\ No newline at end of file
diff --git a/js/data/locale/charset/IT.json b/js/data/locale/charset/IT.json
index d3955621fe..e70d45ddd4 100644
--- a/js/data/locale/charset/IT.json
+++ b/js/data/locale/charset/IT.json
@@ -2,5 +2,6 @@
"min": 1,
"max": 1,
"scripts": ["Latn"],
- "locales": ["IT"]
+ "locales": ["IT"],
+ "optional": true
}
\ No newline at end of file
diff --git a/js/data/locale/charset/JIS_C6229-1984-a.json b/js/data/locale/charset/JIS_C6229-1984-a.json
index 978d11c3b4..baf2f45cea 100644
--- a/js/data/locale/charset/JIS_C6229-1984-a.json
+++ b/js/data/locale/charset/JIS_C6229-1984-a.json
@@ -2,5 +2,6 @@
"min": 1,
"max": 1,
"scripts": ["Latn"],
- "locales": ["ja"]
+ "locales": ["ja"],
+ "optional": true
}
\ No newline at end of file
diff --git a/js/data/locale/charset/JIS_C6229-1984-b-add.json b/js/data/locale/charset/JIS_C6229-1984-b-add.json
index 978d11c3b4..baf2f45cea 100644
--- a/js/data/locale/charset/JIS_C6229-1984-b-add.json
+++ b/js/data/locale/charset/JIS_C6229-1984-b-add.json
@@ -2,5 +2,6 @@
"min": 1,
"max": 1,
"scripts": ["Latn"],
- "locales": ["ja"]
+ "locales": ["ja"],
+ "optional": true
}
\ No newline at end of file
diff --git a/js/data/locale/charset/JIS_C6229-1984-b.json b/js/data/locale/charset/JIS_C6229-1984-b.json
index 978d11c3b4..baf2f45cea 100644
--- a/js/data/locale/charset/JIS_C6229-1984-b.json
+++ b/js/data/locale/charset/JIS_C6229-1984-b.json
@@ -2,5 +2,6 @@
"min": 1,
"max": 1,
"scripts": ["Latn"],
- "locales": ["ja"]
+ "locales": ["ja"],
+ "optional": true
}
\ No newline at end of file
diff --git a/js/data/locale/charset/JIS_C6229-1984-hand-add.json b/js/data/locale/charset/JIS_C6229-1984-hand-add.json
index 978d11c3b4..baf2f45cea 100644
--- a/js/data/locale/charset/JIS_C6229-1984-hand-add.json
+++ b/js/data/locale/charset/JIS_C6229-1984-hand-add.json
@@ -2,5 +2,6 @@
"min": 1,
"max": 1,
"scripts": ["Latn"],
- "locales": ["ja"]
+ "locales": ["ja"],
+ "optional": true
}
\ No newline at end of file
diff --git a/js/data/locale/charset/JIS_C6229-1984-hand.json b/js/data/locale/charset/JIS_C6229-1984-hand.json
index 978d11c3b4..baf2f45cea 100644
--- a/js/data/locale/charset/JIS_C6229-1984-hand.json
+++ b/js/data/locale/charset/JIS_C6229-1984-hand.json
@@ -2,5 +2,6 @@
"min": 1,
"max": 1,
"scripts": ["Latn"],
- "locales": ["ja"]
+ "locales": ["ja"],
+ "optional": true
}
\ No newline at end of file
diff --git a/js/data/locale/charset/JIS_C6229-1984-kana.json b/js/data/locale/charset/JIS_C6229-1984-kana.json
index ef0c90dd68..eb75c7105d 100644
--- a/js/data/locale/charset/JIS_C6229-1984-kana.json
+++ b/js/data/locale/charset/JIS_C6229-1984-kana.json
@@ -2,5 +2,6 @@
"min": 1,
"max": 1,
"scripts": ["Kana","Latn"],
- "locales": ["ja"]
+ "locales": ["ja"],
+ "optional": true
}
\ No newline at end of file
diff --git a/js/data/locale/charset/JIS_Encoding.json b/js/data/locale/charset/JIS_Encoding.json
index 3c2ca19044..52597b7198 100644
--- a/js/data/locale/charset/JIS_Encoding.json
+++ b/js/data/locale/charset/JIS_Encoding.json
@@ -2,5 +2,6 @@
"min": 1,
"max": 2,
"scripts": ["Jpan","Kana","Hira","Latn","Hani"],
- "locales": ["ja"]
+ "locales": ["ja"],
+ "optional": true
}
\ No newline at end of file
diff --git a/js/data/locale/charset/JIS_X0201-1969-ro.json b/js/data/locale/charset/JIS_X0201-1969-ro.json
index 978d11c3b4..baf2f45cea 100644
--- a/js/data/locale/charset/JIS_X0201-1969-ro.json
+++ b/js/data/locale/charset/JIS_X0201-1969-ro.json
@@ -2,5 +2,6 @@
"min": 1,
"max": 1,
"scripts": ["Latn"],
- "locales": ["ja"]
+ "locales": ["ja"],
+ "optional": true
}
\ No newline at end of file
diff --git a/js/data/locale/charset/JIS_X0201-1969.json b/js/data/locale/charset/JIS_X0201-1969.json
index 978d11c3b4..baf2f45cea 100644
--- a/js/data/locale/charset/JIS_X0201-1969.json
+++ b/js/data/locale/charset/JIS_X0201-1969.json
@@ -2,5 +2,6 @@
"min": 1,
"max": 1,
"scripts": ["Latn"],
- "locales": ["ja"]
+ "locales": ["ja"],
+ "optional": true
}
\ No newline at end of file
diff --git a/js/data/locale/charset/JIS_X0201.json b/js/data/locale/charset/JIS_X0201.json
index ef0c90dd68..eb75c7105d 100644
--- a/js/data/locale/charset/JIS_X0201.json
+++ b/js/data/locale/charset/JIS_X0201.json
@@ -2,5 +2,6 @@
"min": 1,
"max": 1,
"scripts": ["Kana","Latn"],
- "locales": ["ja"]
+ "locales": ["ja"],
+ "optional": true
}
\ No newline at end of file
diff --git a/js/data/locale/charset/JIS_X0208-1978.json b/js/data/locale/charset/JIS_X0208-1978.json
index b4631392f0..3e601c1d15 100644
--- a/js/data/locale/charset/JIS_X0208-1978.json
+++ b/js/data/locale/charset/JIS_X0208-1978.json
@@ -1,5 +1,6 @@
{
"max": 2,
"scripts": ["Jpan", "Hira", "Kana", "Hrkt", "Hani"],
- "locales": ["ja"]
+ "locales": ["ja"],
+ "optional": true
}
\ No newline at end of file
diff --git a/js/data/locale/charset/JIS_X0208-1983.json b/js/data/locale/charset/JIS_X0208-1983.json
index b4631392f0..3e601c1d15 100644
--- a/js/data/locale/charset/JIS_X0208-1983.json
+++ b/js/data/locale/charset/JIS_X0208-1983.json
@@ -1,5 +1,6 @@
{
"max": 2,
"scripts": ["Jpan", "Hira", "Kana", "Hrkt", "Hani"],
- "locales": ["ja"]
+ "locales": ["ja"],
+ "optional": true
}
\ No newline at end of file
diff --git a/js/data/locale/charset/JIS_X0208-1990.json b/js/data/locale/charset/JIS_X0208-1990.json
index b4631392f0..3e601c1d15 100644
--- a/js/data/locale/charset/JIS_X0208-1990.json
+++ b/js/data/locale/charset/JIS_X0208-1990.json
@@ -1,5 +1,6 @@
{
"max": 2,
"scripts": ["Jpan", "Hira", "Kana", "Hrkt", "Hani"],
- "locales": ["ja"]
+ "locales": ["ja"],
+ "optional": true
}
\ No newline at end of file
diff --git a/js/data/locale/charset/JIS_X0212-1990.json b/js/data/locale/charset/JIS_X0212-1990.json
index 50ac39901a..3ca5122cf9 100644
--- a/js/data/locale/charset/JIS_X0212-1990.json
+++ b/js/data/locale/charset/JIS_X0212-1990.json
@@ -2,5 +2,6 @@
"min": 1,
"max": 2,
"scripts": ["Jpan","Kana","Hira","Grek","Cyrl","Latn","Hani"],
- "locales": ["ja"]
+ "locales": ["ja"],
+ "optional": true
}
\ No newline at end of file
diff --git a/js/data/locale/charset/JIS_X0213-2004.json b/js/data/locale/charset/JIS_X0213-2004.json
index 50ac39901a..3ca5122cf9 100644
--- a/js/data/locale/charset/JIS_X0213-2004.json
+++ b/js/data/locale/charset/JIS_X0213-2004.json
@@ -2,5 +2,6 @@
"min": 1,
"max": 2,
"scripts": ["Jpan","Kana","Hira","Grek","Cyrl","Latn","Hani"],
- "locales": ["ja"]
+ "locales": ["ja"],
+ "optional": true
}
\ No newline at end of file
diff --git a/js/data/locale/charset/Johab.json b/js/data/locale/charset/Johab.json
index bd20197398..2991d3353a 100644
--- a/js/data/locale/charset/Johab.json
+++ b/js/data/locale/charset/Johab.json
@@ -1,5 +1,6 @@
{
"min": 1,
"max": 2,
- "scripts": ["Kore", "Hang", "Latn"]
+ "scripts": ["Kore", "Hang", "Latn"],
+ "locales": ["ko"]
}
\ No newline at end of file
diff --git a/js/data/locale/charset/KOI-8.json b/js/data/locale/charset/KOI-8.json
index 3a27e93a7b..0dcc346545 100644
--- a/js/data/locale/charset/KOI-8.json
+++ b/js/data/locale/charset/KOI-8.json
@@ -1,5 +1,6 @@
{
"min": 1,
"max": 1,
- "scripts": ["Cyrl","Latn"]
+ "scripts": ["Cyrl","Latn"],
+ "locales": ["ru","be","uk","ba","be","bg","cv","kk","mk","mn","os","ro","se","sr","tg","tk","tt","ug","uz"]
}
\ No newline at end of file
diff --git a/js/data/locale/charset/KOI8-R.json b/js/data/locale/charset/KOI8-R.json
index 3a27e93a7b..b5a1db2268 100644
--- a/js/data/locale/charset/KOI8-R.json
+++ b/js/data/locale/charset/KOI8-R.json
@@ -1,5 +1,7 @@
{
"min": 1,
"max": 1,
- "scripts": ["Cyrl","Latn"]
+ "scripts": ["Cyrl","Latn"],
+ "locales": ["bg", "be", "mk", "ru", "sr", "uk"],
+ "optional": true
}
\ No newline at end of file
diff --git a/js/data/locale/charset/KOI8-RU.json b/js/data/locale/charset/KOI8-RU.json
index 3a27e93a7b..b5a1db2268 100644
--- a/js/data/locale/charset/KOI8-RU.json
+++ b/js/data/locale/charset/KOI8-RU.json
@@ -1,5 +1,7 @@
{
"min": 1,
"max": 1,
- "scripts": ["Cyrl","Latn"]
+ "scripts": ["Cyrl","Latn"],
+ "locales": ["bg", "be", "mk", "ru", "sr", "uk"],
+ "optional": true
}
\ No newline at end of file
diff --git a/js/data/locale/charset/KOI8-T.json b/js/data/locale/charset/KOI8-T.json
index 3a27e93a7b..b5a1db2268 100644
--- a/js/data/locale/charset/KOI8-T.json
+++ b/js/data/locale/charset/KOI8-T.json
@@ -1,5 +1,7 @@
{
"min": 1,
"max": 1,
- "scripts": ["Cyrl","Latn"]
+ "scripts": ["Cyrl","Latn"],
+ "locales": ["bg", "be", "mk", "ru", "sr", "uk"],
+ "optional": true
}
\ No newline at end of file
diff --git a/js/data/locale/charset/KOI8-U.json b/js/data/locale/charset/KOI8-U.json
index 3a27e93a7b..b5a1db2268 100644
--- a/js/data/locale/charset/KOI8-U.json
+++ b/js/data/locale/charset/KOI8-U.json
@@ -1,5 +1,7 @@
{
"min": 1,
"max": 1,
- "scripts": ["Cyrl","Latn"]
+ "scripts": ["Cyrl","Latn"],
+ "locales": ["bg", "be", "mk", "ru", "sr", "uk"],
+ "optional": true
}
\ No newline at end of file
diff --git a/js/data/locale/charset/KSC5636.json b/js/data/locale/charset/KSC5636.json
index bd20197398..2991d3353a 100644
--- a/js/data/locale/charset/KSC5636.json
+++ b/js/data/locale/charset/KSC5636.json
@@ -1,5 +1,6 @@
{
"min": 1,
"max": 2,
- "scripts": ["Kore", "Hang", "Latn"]
+ "scripts": ["Kore", "Hang", "Latn"],
+ "locales": ["ko"]
}
\ No newline at end of file
diff --git a/js/data/locale/charset/KS_C_5601-1987.json b/js/data/locale/charset/KS_C_5601-1987.json
index bd20197398..2991d3353a 100644
--- a/js/data/locale/charset/KS_C_5601-1987.json
+++ b/js/data/locale/charset/KS_C_5601-1987.json
@@ -1,5 +1,6 @@
{
"min": 1,
"max": 2,
- "scripts": ["Kore", "Hang", "Latn"]
+ "scripts": ["Kore", "Hang", "Latn"],
+ "locales": ["ko"]
}
\ No newline at end of file
diff --git a/js/data/locale/charset/KZ-1048.json b/js/data/locale/charset/KZ-1048.json
index af0d7df914..43f3280bb6 100644
--- a/js/data/locale/charset/KZ-1048.json
+++ b/js/data/locale/charset/KZ-1048.json
@@ -3,5 +3,6 @@
"min": 1,
"max": 1,
"scripts": ["Cyrl", "Latn"],
- "locales": ["KZ"]
+ "locales": ["KZ"],
+ "optional": true
}
\ No newline at end of file
diff --git a/js/data/locale/charset/Latin-greek-1.json b/js/data/locale/charset/Latin-greek-1.json
index 3701293ccd..032dab8f9b 100644
--- a/js/data/locale/charset/Latin-greek-1.json
+++ b/js/data/locale/charset/Latin-greek-1.json
@@ -2,5 +2,6 @@
"min": 1,
"max": 1,
"scripts": ["Grek", "Latn"],
- "locales": ["GR"]
+ "locales": ["GR"],
+ "optional": true
}
\ No newline at end of file
diff --git a/js/data/locale/charset/Mac-Roman.json b/js/data/locale/charset/Mac-Roman.json
index 1a00f3bbe4..0bf1cdcff4 100644
--- a/js/data/locale/charset/Mac-Roman.json
+++ b/js/data/locale/charset/Mac-Roman.json
@@ -1,5 +1,6 @@
{
"min": 1,
"max": 1,
- "scripts": ["Latn"]
+ "scripts": ["Latn"],
+ "locales": ["en","de","fr","nl","es","it","ga","gl","da","no","nb","nn","sv","fi","ca","eu","pt","ro","roa"]
}
\ No newline at end of file
diff --git a/js/data/locale/charset/PC8-Turkish.json b/js/data/locale/charset/PC8-Turkish.json
index f169da63ff..3f892fd66f 100644
--- a/js/data/locale/charset/PC8-Turkish.json
+++ b/js/data/locale/charset/PC8-Turkish.json
@@ -2,5 +2,6 @@
"min": 1,
"max": 1,
"scripts": ["Latn"],
- "locales": ["TR"]
+ "locales": ["TR"],
+ "optional": true
}
\ No newline at end of file
diff --git a/js/data/locale/charset/PT.json b/js/data/locale/charset/PT.json
index ff0ddd4078..655147235f 100644
--- a/js/data/locale/charset/PT.json
+++ b/js/data/locale/charset/PT.json
@@ -2,5 +2,6 @@
"min": 1,
"max": 1,
"scripts": ["Latn"],
- "locales": ["PT"]
+ "locales": ["PT"],
+ "optional": true
}
\ No newline at end of file
diff --git a/js/data/locale/charset/PT2.json b/js/data/locale/charset/PT2.json
index ff0ddd4078..655147235f 100644
--- a/js/data/locale/charset/PT2.json
+++ b/js/data/locale/charset/PT2.json
@@ -2,5 +2,6 @@
"min": 1,
"max": 1,
"scripts": ["Latn"],
- "locales": ["PT"]
+ "locales": ["PT"],
+ "optional": true
}
\ No newline at end of file
diff --git a/js/data/locale/charset/PTCP154.json b/js/data/locale/charset/PTCP154.json
index 137a56f7a1..e54210c8dc 100644
--- a/js/data/locale/charset/PTCP154.json
+++ b/js/data/locale/charset/PTCP154.json
@@ -3,5 +3,6 @@
"min": 1,
"max": 1,
"scripts": ["Cyrl"],
- "locales": ["MN","KZ","RU","UZ"]
+ "locales": ["MN","KZ","RU","UZ"],
+ "optional": true
}
diff --git a/js/data/locale/charset/SCSU.json b/js/data/locale/charset/SCSU.json
index 063042ae1b..03fbec80aa 100644
--- a/js/data/locale/charset/SCSU.json
+++ b/js/data/locale/charset/SCSU.json
@@ -3,5 +3,6 @@
"min": 1,
"max": 6,
"scripts": ["*"],
- "locales": ["*"]
+ "locales": ["*"],
+ "optional": true
}
\ No newline at end of file
diff --git a/js/data/locale/charset/SEN_850200_B.json b/js/data/locale/charset/SEN_850200_B.json
index e62d189fc4..d0c82eda1d 100644
--- a/js/data/locale/charset/SEN_850200_B.json
+++ b/js/data/locale/charset/SEN_850200_B.json
@@ -2,5 +2,6 @@
"min": 1,
"max": 1,
"scripts": ["Latn"],
- "locales": ["SE"]
+ "locales": ["SE"],
+ "optional": true
}
\ No newline at end of file
diff --git a/js/data/locale/charset/SEN_850200_C.json b/js/data/locale/charset/SEN_850200_C.json
index e62d189fc4..d0c82eda1d 100644
--- a/js/data/locale/charset/SEN_850200_C.json
+++ b/js/data/locale/charset/SEN_850200_C.json
@@ -2,5 +2,6 @@
"min": 1,
"max": 1,
"scripts": ["Latn"],
- "locales": ["SE"]
+ "locales": ["SE"],
+ "optional": true
}
\ No newline at end of file
diff --git a/js/data/locale/charset/Sami-WS2.json b/js/data/locale/charset/Sami-WS2.json
index 3ae954872d..ad3b9e0bb2 100644
--- a/js/data/locale/charset/Sami-WS2.json
+++ b/js/data/locale/charset/Sami-WS2.json
@@ -2,5 +2,6 @@
"min": 1,
"max": 1,
"scripts": ["Latn"],
- "locales": ["se"]
+ "locales": ["se"],
+ "optional": true
}
\ No newline at end of file
diff --git a/js/data/locale/charset/Shift_JIS_X0213.json b/js/data/locale/charset/Shift_JIS_X0213.json
index b4631392f0..3e601c1d15 100644
--- a/js/data/locale/charset/Shift_JIS_X0213.json
+++ b/js/data/locale/charset/Shift_JIS_X0213.json
@@ -1,5 +1,6 @@
{
"max": 2,
"scripts": ["Jpan", "Hira", "Kana", "Hrkt", "Hani"],
- "locales": ["ja"]
+ "locales": ["ja"],
+ "optional": true
}
\ No newline at end of file
diff --git a/js/data/locale/charset/UNICODE-1-1-UTF-7.json b/js/data/locale/charset/UNICODE-1-1-UTF-7.json
index 445f2b2511..570d198a1e 100644
--- a/js/data/locale/charset/UNICODE-1-1-UTF-7.json
+++ b/js/data/locale/charset/UNICODE-1-1-UTF-7.json
@@ -2,5 +2,6 @@
"min": 1,
"max": 6,
"scripts": ["*"],
- "locales": ["*"]
+ "locales": ["*"],
+ "optional": true
}
\ No newline at end of file
diff --git a/js/data/locale/charset/UNICODE-1-1.json b/js/data/locale/charset/UNICODE-1-1.json
index 445f2b2511..570d198a1e 100644
--- a/js/data/locale/charset/UNICODE-1-1.json
+++ b/js/data/locale/charset/UNICODE-1-1.json
@@ -2,5 +2,6 @@
"min": 1,
"max": 6,
"scripts": ["*"],
- "locales": ["*"]
+ "locales": ["*"],
+ "optional": true
}
\ No newline at end of file
diff --git a/js/data/locale/charset/UTF-32.json b/js/data/locale/charset/UTF-32.json
index 815bb56667..5294003013 100644
--- a/js/data/locale/charset/UTF-32.json
+++ b/js/data/locale/charset/UTF-32.json
@@ -2,5 +2,6 @@
"min": 4,
"max": 4,
"scripts": ["*"],
- "locales": ["*"]
+ "locales": ["*"],
+ "optional": true
}
\ No newline at end of file
diff --git a/js/data/locale/charset/UTF-32BE.json b/js/data/locale/charset/UTF-32BE.json
index 815bb56667..5294003013 100644
--- a/js/data/locale/charset/UTF-32BE.json
+++ b/js/data/locale/charset/UTF-32BE.json
@@ -2,5 +2,6 @@
"min": 4,
"max": 4,
"scripts": ["*"],
- "locales": ["*"]
+ "locales": ["*"],
+ "optional": true
}
\ No newline at end of file
diff --git a/js/data/locale/charset/UTF-32LE.json b/js/data/locale/charset/UTF-32LE.json
index cf30435b27..0ee55c09ce 100644
--- a/js/data/locale/charset/UTF-32LE.json
+++ b/js/data/locale/charset/UTF-32LE.json
@@ -3,5 +3,6 @@
"max": 4,
"bigendian": false,
"scripts": ["*"],
- "locales": ["*"]
+ "locales": ["*"],
+ "optional": true
}
\ No newline at end of file
diff --git a/js/data/locale/charset/UTF-7.json b/js/data/locale/charset/UTF-7.json
index 14a1e673b9..ea3c878816 100644
--- a/js/data/locale/charset/UTF-7.json
+++ b/js/data/locale/charset/UTF-7.json
@@ -2,5 +2,6 @@
"min": 1,
"max": 8,
"scripts": ["*"],
- "locales": ["*"]
+ "locales": ["*"],
+ "optional": true
}
\ No newline at end of file
diff --git a/js/data/locale/charset/VIQR.json b/js/data/locale/charset/VIQR.json
index ce7e4718d9..45fa3f1487 100644
--- a/js/data/locale/charset/VIQR.json
+++ b/js/data/locale/charset/VIQR.json
@@ -2,5 +2,6 @@
"min": 1,
"max": 1,
"scripts": ["Latn"],
- "locales": ["vi"]
+ "locales": ["vi"],
+ "optional": true
}
\ No newline at end of file
diff --git a/js/data/locale/charset/greek-ccitt.json b/js/data/locale/charset/greek-ccitt.json
index ecbe944de8..6ba3414b4b 100644
--- a/js/data/locale/charset/greek-ccitt.json
+++ b/js/data/locale/charset/greek-ccitt.json
@@ -2,5 +2,6 @@
"min": 1,
"max": 1,
"scripts": ["Grek","Latn"],
- "locales": ["el"]
+ "locales": ["el"],
+ "optional": true
}
\ No newline at end of file
diff --git a/js/data/locale/charset/greek7-old.json b/js/data/locale/charset/greek7-old.json
index ecbe944de8..6ba3414b4b 100644
--- a/js/data/locale/charset/greek7-old.json
+++ b/js/data/locale/charset/greek7-old.json
@@ -2,5 +2,6 @@
"min": 1,
"max": 1,
"scripts": ["Grek","Latn"],
- "locales": ["el"]
+ "locales": ["el"],
+ "optional": true
}
\ No newline at end of file
diff --git a/js/data/locale/charset/greek7.json b/js/data/locale/charset/greek7.json
index ecbe944de8..6ba3414b4b 100644
--- a/js/data/locale/charset/greek7.json
+++ b/js/data/locale/charset/greek7.json
@@ -2,5 +2,6 @@
"min": 1,
"max": 1,
"scripts": ["Grek","Latn"],
- "locales": ["el"]
+ "locales": ["el"],
+ "optional": true
}
\ No newline at end of file
diff --git a/js/data/locale/charset/hp-thai8.json b/js/data/locale/charset/hp-thai8.json
index 79c12e6228..927e09bf08 100644
--- a/js/data/locale/charset/hp-thai8.json
+++ b/js/data/locale/charset/hp-thai8.json
@@ -2,5 +2,6 @@
"min": 1,
"max": 1,
"scripts": ["Thai", "Latn"],
- "locales": ["th"]
+ "locales": ["th"],
+ "optional": true
}
\ No newline at end of file
diff --git a/js/data/locale/charset/latin-greek.json b/js/data/locale/charset/latin-greek.json
index 3701293ccd..032dab8f9b 100644
--- a/js/data/locale/charset/latin-greek.json
+++ b/js/data/locale/charset/latin-greek.json
@@ -2,5 +2,6 @@
"min": 1,
"max": 1,
"scripts": ["Grek", "Latn"],
- "locales": ["GR"]
+ "locales": ["GR"],
+ "optional": true
}
\ No newline at end of file
diff --git a/js/data/locale/charset/mac-cyrillic.json b/js/data/locale/charset/mac-cyrillic.json
index 08e22c3266..48b27b1eaa 100644
--- a/js/data/locale/charset/mac-cyrillic.json
+++ b/js/data/locale/charset/mac-cyrillic.json
@@ -1,5 +1,6 @@
{
"min": 1,
"max": 1,
- "scripts": ["Cyrl", "Latn"]
+ "scripts": ["Cyrl", "Latn"],
+ "locales": ["bg", "be", "mk", "ru", "sr", "uk"]
}
\ No newline at end of file
diff --git a/js/data/locale/charset/windows-1250.json b/js/data/locale/charset/windows-1250.json
index a86ac8e73f..33c85af08a 100644
--- a/js/data/locale/charset/windows-1250.json
+++ b/js/data/locale/charset/windows-1250.json
@@ -2,5 +2,5 @@
"min": 1,
"max": 1,
"scripts": ["Latn"],
- "locales": ["en","de","fr","nl","es","it","ga","gl","da","no","nb","nn","sv","fi","ca","eu","pt","rm","roa"]
+ "locales": ["hr", "cz", "et", "hu", "lv", "lt", "pl", "ro", "sk", "sl"]
}
\ No newline at end of file
diff --git a/js/data/locale/charset/windows-1252.json b/js/data/locale/charset/windows-1252.json
index a86ac8e73f..a4803553fd 100644
--- a/js/data/locale/charset/windows-1252.json
+++ b/js/data/locale/charset/windows-1252.json
@@ -2,5 +2,5 @@
"min": 1,
"max": 1,
"scripts": ["Latn"],
- "locales": ["en","de","fr","nl","es","it","ga","gl","da","no","nb","nn","sv","fi","ca","eu","pt","rm","roa"]
-}
\ No newline at end of file
+ "locales": ["en","de","fr","nl","es","it","ga","gl","da","no","nb","nn","sv","fi","ca","eu","pt","ro","roa"]
+}
diff --git a/js/data/locale/charset/windows-1254.json b/js/data/locale/charset/windows-1254.json
index 1a00f3bbe4..2fd60a6d3d 100644
--- a/js/data/locale/charset/windows-1254.json
+++ b/js/data/locale/charset/windows-1254.json
@@ -1,5 +1,6 @@
{
"min": 1,
"max": 1,
- "scripts": ["Latn"]
+ "scripts": ["Latn"],
+ "locales": ["tr"]
}
\ No newline at end of file
diff --git a/js/data/locale/charset/windows-1257.json b/js/data/locale/charset/windows-1257.json
index 1a00f3bbe4..9d080f3039 100644
--- a/js/data/locale/charset/windows-1257.json
+++ b/js/data/locale/charset/windows-1257.json
@@ -1,5 +1,6 @@
{
"min": 1,
"max": 1,
- "scripts": ["Latn"]
+ "scripts": ["Latn"],
+ "locales": ["et", "lv", "lt"]
}
\ No newline at end of file
diff --git a/js/data/locale/charset/windows-1258.json b/js/data/locale/charset/windows-1258.json
index 1a00f3bbe4..ca49422c9d 100644
--- a/js/data/locale/charset/windows-1258.json
+++ b/js/data/locale/charset/windows-1258.json
@@ -1,5 +1,6 @@
{
"min": 1,
"max": 1,
- "scripts": ["Latn"]
+ "scripts": ["Latn"],
+ "locales": ["vi"]
}
\ No newline at end of file
diff --git a/js/data/locale/charset/windows-31J.json b/js/data/locale/charset/windows-31J.json
index fefdea40fe..3e601c1d15 100644
--- a/js/data/locale/charset/windows-31J.json
+++ b/js/data/locale/charset/windows-31J.json
@@ -1,5 +1,6 @@
{
"max": 2,
"scripts": ["Jpan", "Hira", "Kana", "Hrkt", "Hani"],
- "locales": ["jp"]
+ "locales": ["ja"],
+ "optional": true
}
\ No newline at end of file
diff --git a/js/data/locale/charset/windows-874.json b/js/data/locale/charset/windows-874.json
index 79c12e6228..927e09bf08 100644
--- a/js/data/locale/charset/windows-874.json
+++ b/js/data/locale/charset/windows-874.json
@@ -2,5 +2,6 @@
"min": 1,
"max": 1,
"scripts": ["Thai", "Latn"],
- "locales": ["th"]
+ "locales": ["th"],
+ "optional": true
}
\ No newline at end of file
diff --git a/js/data/locale/charsetaliases.json b/js/data/locale/charsetaliases.json
index bedcc8d137..3fd940d3be 100644
--- a/js/data/locale/charsetaliases.json
+++ b/js/data/locale/charsetaliases.json
@@ -658,7 +658,6 @@
"ISO115481": "ISO-11548-1",
"ISO2022CNEXT": "ISO-2022-CN-EXT",
"ISO2022CN": "ISO-2022-CN",
- "ISO2022JP2": "ISO-2022-JP-2",
"ISO2022JP": "ISO-2022-JP",
"ISO2022JP1": "ISO-2022-JP-1",
"ISO2022JP2": "ISO-2022-JP-2",
@@ -666,7 +665,6 @@
"ISO2022JP2004": "ISO-2022-JP-2004",
"ISO2022KR": "ISO-2022-KR",
"ISO20331983": "ISO-2033-1983",
- "ISO20331983": "ISO-2033-1983",
"ISO54271981": "ISO-5427_1981",
"ISO5427CYRILLIC1981": "ISO-5427_1981",
"ISO5427EXT": "ISO-5427-EXT",
@@ -705,8 +703,6 @@
"ISO646US": "US-ASCII",
"ISO646YU": "JUS_I.B1.002",
"ISO6937225": "ISO-6937-2-25",
- "ISO6937225": "ISO-6937-2-25",
- "ISO69372ADD": "ISO-6937-2-add",
"ISO69372ADD": "ISO-6937-2-add",
"ISO6937": "ISO-6937",
"ISO8859101992": "ISO-8859-10",
@@ -718,12 +714,10 @@
"ISO885911": "TIS-620",
"ISO8859131998": "ISO-8859-13_1998",
"ISO885913": "ISO-8859-13",
- "ISO8859141998": "ISO-8859-14",
- "ISO8859141998": "ISO-8859-14_1998",
"ISO885914": "ISO-8859-14",
+ "ISO8859141998": "ISO-8859-14_1998",
"ISO8859151999": "ISO-8859-15_1999",
"ISO885915": "ISO-8859-15",
- "ISO8859162001": "ISO-8859-16",
"ISO8859162001": "ISO-8859-16_2001",
"ISO885916": "ISO-8859-16",
"ISO88591": "ISO-8859-1",
@@ -764,7 +758,6 @@
"ISO88599WINDOWSLATIN5": "ISO-8859-9-Windows-Latin-5",
"ISO8859": "ISO-8859-1",
"ISO8859SUPP": "ISO-8859-supp",
- "ISO8859SUPP": "ISO-8859-supp",
"ISO9036": "ASMO_449",
"ISOCELTIC": "ISO-8859-14",
"ISOIR100": "ISO-8859-1",
diff --git a/js/data/locale/lang2charset.json b/js/data/locale/lang2charset.json
new file mode 100644
index 0000000000..5f70969d6f
--- /dev/null
+++ b/js/data/locale/lang2charset.json
@@ -0,0 +1,648 @@
+{
+ "ar": [
+ "ASMO_449",
+ "IBM864",
+ "ISIRI-3342",
+ "ISO-8859-6",
+ "windows-1256"
+ ],
+ "az": [
+ "ASMO_449",
+ "IBM864",
+ "ISO-8859-6",
+ "windows-1256"
+ ],
+ "ba": [
+ "ECMA-cyrillic",
+ "ISO-8859-5",
+ "KOI-8",
+ "windows-1251"
+ ],
+ "be": [
+ "ECMA-cyrillic",
+ "ISO-8859-5",
+ "KOI-8",
+ "KOI8-R",
+ "KOI8-RU",
+ "KOI8-T",
+ "KOI8-U",
+ "mac-cyrillic",
+ "windows-1251"
+ ],
+ "bg": [
+ "ECMA-cyrillic",
+ "ISO-8859-5",
+ "KOI-8",
+ "KOI8-R",
+ "KOI8-RU",
+ "KOI8-T",
+ "KOI8-U",
+ "mac-cyrillic",
+ "windows-1251"
+ ],
+ "ca": [
+ "IBM00858",
+ "IBM437",
+ "IBM850",
+ "IBM860",
+ "ISO-8859-1",
+ "ISO-8859-15",
+ "Mac-Roman",
+ "windows-1252"
+ ],
+ "cv": [
+ "ECMA-cyrillic",
+ "ISO-8859-5",
+ "KOI-8",
+ "windows-1251"
+ ],
+ "cz": [
+ "IBM852",
+ "ISO-8859-2",
+ "windows-1250"
+ ],
+ "da": [
+ "EBCDIC-DK-NO-A",
+ "EBCDIC-DK-NO",
+ "IBM00858",
+ "IBM01142",
+ "IBM437",
+ "IBM850",
+ "IBM860",
+ "ISO-8859-1",
+ "ISO-8859-15",
+ "Mac-Roman",
+ "windows-1252"
+ ],
+ "de": [
+ "EBCDIC-AT-DE-A",
+ "EBCDIC-AT-DE",
+ "IBM00858",
+ "IBM01141",
+ "IBM437",
+ "IBM850",
+ "IBM860",
+ "ISO-8859-1",
+ "ISO-8859-15",
+ "Mac-Roman",
+ "windows-1252"
+ ],
+ "el": [
+ "IBM869",
+ "ISO-8859-7",
+ "Latin-greek-1",
+ "greek-ccitt",
+ "greek7-old",
+ "greek7",
+ "latin-greek",
+ "windows-1253"
+ ],
+ "en": [
+ "ANSI_X3.110-1983",
+ "IBM00858",
+ "IBM437",
+ "IBM850",
+ "IBM860",
+ "ISO-8859-1",
+ "ISO-8859-15",
+ "Mac-Roman",
+ "windows-1252"
+ ],
+ "es": [
+ "EBCDIC-ES-A",
+ "EBCDIC-ES-S",
+ "EBCDIC-ES",
+ "ES",
+ "ES2",
+ "IBM00858",
+ "IBM01145",
+ "IBM437",
+ "IBM850",
+ "IBM860",
+ "ISO-8859-1",
+ "ISO-8859-15",
+ "Mac-Roman",
+ "windows-1252"
+ ],
+ "et": [
+ "IBM852",
+ "IBM922",
+ "ISO-8859-13",
+ "ISO-8859-2",
+ "ISO-8859-4",
+ "windows-1250",
+ "windows-1257"
+ ],
+ "eu": [
+ "IBM00858",
+ "IBM437",
+ "IBM850",
+ "IBM860",
+ "ISO-8859-1",
+ "ISO-8859-15",
+ "Mac-Roman",
+ "windows-1252"
+ ],
+ "fa": [
+ "ASMO_449",
+ "IBM864",
+ "ISO-8859-6",
+ "windows-1256"
+ ],
+ "fi": [
+ "EBCDIC-FI-SE-A",
+ "EBCDIC-FI-SE",
+ "IBM00858",
+ "IBM01143",
+ "IBM437",
+ "IBM850",
+ "IBM860",
+ "ISO-8859-1",
+ "ISO-8859-15",
+ "Mac-Roman",
+ "windows-1252"
+ ],
+ "fr": [
+ "EBCDIC-CA-FR",
+ "EBCDIC-FR",
+ "IBM00858",
+ "IBM01147",
+ "IBM437",
+ "IBM850",
+ "IBM860",
+ "ISO-8859-1",
+ "ISO-8859-15",
+ "Mac-Roman",
+ "windows-1252"
+ ],
+ "ga": [
+ "IBM00858",
+ "IBM437",
+ "IBM850",
+ "IBM860",
+ "ISO-8859-1",
+ "ISO-8859-15",
+ "Mac-Roman",
+ "windows-1252"
+ ],
+ "gl": [
+ "IBM00858",
+ "IBM437",
+ "IBM850",
+ "IBM860",
+ "ISO-8859-1",
+ "ISO-8859-15",
+ "Mac-Roman",
+ "windows-1252"
+ ],
+ "ha": [
+ "ASMO_449",
+ "IBM864",
+ "ISO-8859-6",
+ "windows-1256"
+ ],
+ "he": [
+ "IBM737",
+ "IBM875",
+ "ISO-8859-8",
+ "windows-1255"
+ ],
+ "hr": [
+ "IBM852",
+ "ISO-8859-2",
+ "windows-1250"
+ ],
+ "hu": [
+ "IBM852",
+ "ISO-8859-2",
+ "windows-1250"
+ ],
+ "hy": [
+ "ARMSCII-8"
+ ],
+ "is": [
+ "EBCDIC-IS-FRISS",
+ "IBM01149",
+ "mac-is"
+ ],
+ "it": [
+ "EBCDIC-IT",
+ "IBM00858",
+ "IBM01144",
+ "IBM437",
+ "IBM850",
+ "IBM860",
+ "ISO-8859-1",
+ "ISO-8859-15",
+ "IT",
+ "Mac-Roman",
+ "windows-1252"
+ ],
+ "ja": [
+ "CP50220",
+ "CP51932",
+ "EUC-JIS_X0213",
+ "EUC-JP-MS",
+ "EUC-JP",
+ "Extended_UNIX_Code_Fixed_Width_for_Japanese",
+ "ISO-2022-JP-1",
+ "ISO-2022-JP-2",
+ "ISO-2022-JP-2004",
+ "ISO-2022-JP-3",
+ "ISO-2022-JP",
+ "JIS_C6229-1984-a",
+ "JIS_C6229-1984-b-add",
+ "JIS_C6229-1984-b",
+ "JIS_C6229-1984-hand-add",
+ "JIS_C6229-1984-hand",
+ "JIS_C6229-1984-kana",
+ "JIS_Encoding",
+ "JIS_X0201-1969-ro",
+ "JIS_X0201-1969",
+ "JIS_X0201",
+ "JIS_X0208-1978",
+ "JIS_X0208-1983",
+ "JIS_X0208-1990",
+ "JIS_X0212-1990",
+ "JIS_X0213-2004",
+ "Shift_JIS",
+ "Shift_JIS_X0213",
+ "windows-31J"
+ ],
+ "kk": [
+ "ASMO_449",
+ "ECMA-cyrillic",
+ "IBM864",
+ "ISO-8859-5",
+ "ISO-8859-6",
+ "KOI-8",
+ "windows-1251",
+ "windows-1256"
+ ],
+ "ko": [
+ "EUC-KR",
+ "IBM949",
+ "Johab",
+ "KSC5636",
+ "KS_C_5601-1987"
+ ],
+ "ks": [
+ "ASMO_449",
+ "IBM864",
+ "ISO-8859-6",
+ "windows-1256"
+ ],
+ "ku": [
+ "ASMO_449",
+ "IBM864",
+ "ISO-8859-6",
+ "windows-1256"
+ ],
+ "ky": [
+ "ASMO_449",
+ "IBM864",
+ "ISO-8859-6",
+ "windows-1256"
+ ],
+ "lo": [
+ "IBM1132",
+ "IBM1133"
+ ],
+ "lt": [
+ "IBM852",
+ "ISO-8859-13",
+ "ISO-8859-2",
+ "ISO-8859-4",
+ "windows-1250",
+ "windows-1257"
+ ],
+ "lv": [
+ "IBM852",
+ "ISO-8859-13",
+ "ISO-8859-2",
+ "ISO-8859-4",
+ "windows-1250",
+ "windows-1257"
+ ],
+ "mk": [
+ "ECMA-cyrillic",
+ "ISO-8859-5",
+ "KOI-8",
+ "KOI8-R",
+ "KOI8-RU",
+ "KOI8-T",
+ "KOI8-U",
+ "MIK",
+ "mac-cyrillic",
+ "windows-1251"
+ ],
+ "mn": [
+ "ECMA-cyrillic",
+ "ISO-8859-5",
+ "KOI-8",
+ "PTCP154",
+ "windows-1251"
+ ],
+ "ms": [
+ "ASMO_449",
+ "IBM864",
+ "ISO-8859-6",
+ "windows-1256"
+ ],
+ "nb": [
+ "EBCDIC-DK-NO-A",
+ "EBCDIC-DK-NO",
+ "IBM00858",
+ "IBM01142",
+ "IBM437",
+ "IBM850",
+ "IBM860",
+ "ISO-8859-1",
+ "ISO-8859-15",
+ "Mac-Roman",
+ "windows-1252"
+ ],
+ "nl": [
+ "IBM00858",
+ "IBM1164",
+ "IBM437",
+ "IBM850",
+ "IBM860",
+ "ISO-8859-1",
+ "ISO-8859-15",
+ "Mac-Roman",
+ "windows-1252"
+ ],
+ "nn": [
+ "IBM00858",
+ "IBM437",
+ "IBM850",
+ "IBM860",
+ "ISO-8859-1",
+ "ISO-8859-15",
+ "Mac-Roman",
+ "windows-1252"
+ ],
+ "no": [
+ "IBM00858",
+ "IBM437",
+ "IBM850",
+ "IBM860",
+ "ISO-8859-1",
+ "ISO-8859-15",
+ "Mac-Roman",
+ "windows-1252"
+ ],
+ "os": [
+ "ECMA-cyrillic",
+ "ISO-8859-5",
+ "KOI-8",
+ "windows-1251"
+ ],
+ "pa": [
+ "ASMO_449",
+ "IBM864",
+ "ISO-8859-6",
+ "windows-1256"
+ ],
+ "pl": [
+ "IBM852",
+ "ISO-8859-2",
+ "windows-1250"
+ ],
+ "ps": [
+ "ASMO_449",
+ "IBM864",
+ "ISO-8859-6",
+ "windows-1256"
+ ],
+ "pt": [
+ "EBCDIC-PT",
+ "IBM00858",
+ "IBM437",
+ "IBM850",
+ "IBM860",
+ "ISO-8859-1",
+ "ISO-8859-15",
+ "Mac-Roman",
+ "PT",
+ "PT2",
+ "windows-1252"
+ ],
+ "ro": [
+ "ECMA-cyrillic",
+ "IBM00858",
+ "IBM437",
+ "IBM850",
+ "IBM852",
+ "IBM860",
+ "ISO-8859-1",
+ "ISO-8859-15",
+ "ISO-8859-2",
+ "ISO-8859-5",
+ "KOI-8",
+ "Mac-Roman",
+ "windows-1250",
+ "windows-1251",
+ "windows-1252"
+ ],
+ "roa": [
+ "IBM00858",
+ "IBM437",
+ "IBM850",
+ "IBM860",
+ "ISO-8859-1",
+ "ISO-8859-15",
+ "Mac-Roman",
+ "windows-1252"
+ ],
+ "ru": [
+ "ECMA-cyrillic",
+ "GOST_19768-74",
+ "ISO-8859-5",
+ "KOI-8",
+ "KOI8-R",
+ "KOI8-RU",
+ "KOI8-T",
+ "KOI8-U",
+ "KZ-1048",
+ "PTCP154",
+ "mac-cyrillic",
+ "windows-1251"
+ ],
+ "sd": [
+ "ASMO_449",
+ "IBM864",
+ "ISO-8859-6",
+ "windows-1256"
+ ],
+ "se": [
+ "ECMA-cyrillic",
+ "ISO-8859-5",
+ "KOI-8",
+ "Sami-WS2",
+ "Sami",
+ "mac-sami",
+ "windows-1251"
+ ],
+ "sk": [
+ "IBM852",
+ "ISO-8859-2",
+ "windows-1250"
+ ],
+ "sl": [
+ "IBM852",
+ "ISO-8859-2",
+ "windows-1250"
+ ],
+ "so": [
+ "ASMO_449",
+ "IBM864",
+ "ISO-8859-6",
+ "windows-1256"
+ ],
+ "sr": [
+ "ECMA-cyrillic",
+ "ISO-8859-5",
+ "KOI-8",
+ "KOI8-R",
+ "KOI8-RU",
+ "KOI8-T",
+ "KOI8-U",
+ "mac-cyrillic",
+ "windows-1251"
+ ],
+ "sv": [
+ "EBCDIC-FI-SE-A",
+ "EBCDIC-FI-SE",
+ "IBM00858",
+ "IBM01143",
+ "IBM437",
+ "IBM850",
+ "IBM860",
+ "ISO-8859-1",
+ "ISO-8859-15",
+ "Mac-Roman",
+ "SEN_850200_B",
+ "SEN_850200_C",
+ "windows-1252"
+ ],
+ "ta": [
+ "TSCII"
+ ],
+ "tg": [
+ "ASMO_449",
+ "ECMA-cyrillic",
+ "IBM864",
+ "ISO-8859-5",
+ "ISO-8859-6",
+ "KOI-8",
+ "windows-1251",
+ "windows-1256"
+ ],
+ "th": [
+ "IBM-Thai",
+ "IBM1160",
+ "IBM1162",
+ "IBM874",
+ "TIS-620",
+ "hp-thai8",
+ "windows-874"
+ ],
+ "tk": [
+ "ASMO_449",
+ "ECMA-cyrillic",
+ "IBM864",
+ "ISO-8859-5",
+ "ISO-8859-6",
+ "KOI-8",
+ "windows-1251",
+ "windows-1256"
+ ],
+ "tr": [
+ "IBM1026",
+ "ISO-8859-9",
+ "PC8-Turkish",
+ "windows-1254"
+ ],
+ "tt": [
+ "ECMA-cyrillic",
+ "ISO-8859-5",
+ "KOI-8",
+ "windows-1251"
+ ],
+ "ug": [
+ "ASMO_449",
+ "ECMA-cyrillic",
+ "IBM864",
+ "ISO-8859-5",
+ "ISO-8859-6",
+ "KOI-8",
+ "windows-1251",
+ "windows-1256"
+ ],
+ "uk": [
+ "ECMA-cyrillic",
+ "IBM1124",
+ "ISO-8859-5",
+ "KOI-8",
+ "KOI8-R",
+ "KOI8-RU",
+ "KOI8-T",
+ "KOI8-U",
+ "mac-cyrillic",
+ "mac-uk",
+ "windows-1251"
+ ],
+ "ur": [
+ "ASMO_449",
+ "IBM864",
+ "ISO-8859-6",
+ "windows-1256"
+ ],
+ "uz": [
+ "ASMO_449",
+ "ECMA-cyrillic",
+ "IBM864",
+ "ISO-8859-5",
+ "ISO-8859-6",
+ "KOI-8",
+ "PTCP154",
+ "windows-1251",
+ "windows-1256"
+ ],
+ "vi": [
+ "IBM1163",
+ "IBM256",
+ "TCVN-5712-1",
+ "VIQR",
+ "VISCII",
+ "windows-1258"
+ ],
+ "wo": [
+ "ASMO_449",
+ "IBM864",
+ "ISO-8859-6",
+ "windows-1256"
+ ],
+ "zh-Hans": [
+ "GB18030",
+ "GB2312",
+ "GBK",
+ "GB_1988-80",
+ "GB_2312-80",
+ "HZ-GB-2312",
+ "ISO-2022-CN-EXT",
+ "ISO-2022-CN"
+ ],
+ "zh-Hant": [
+ "Big5-HKSCS",
+ "Big5"
+ ],
+ "*": [
+ "UTF-8",
+ "UTF-16",
+ "UTF-16BE",
+ "UTF-16LE"
+ ]
+}
\ No newline at end of file
diff --git a/js/data/locale/nfc/Arab.json b/js/data/locale/nfc/Arab.json
new file mode 100644
index 0000000000..50b0722c99
--- /dev/null
+++ b/js/data/locale/nfc/Arab.json
@@ -0,0 +1,10 @@
+{
+ "آ": "آ",
+ "أ": "أ",
+ "ؤ": "ؤ",
+ "إ": "إ",
+ "ئ": "ئ",
+ "ۀ": "ۀ",
+ "ۂ": "ۂ",
+ "ۓ": "ۓ"
+}
\ No newline at end of file
diff --git a/js/data/locale/nfc/Bali.json b/js/data/locale/nfc/Bali.json
new file mode 100644
index 0000000000..ebba07d4fa
--- /dev/null
+++ b/js/data/locale/nfc/Bali.json
@@ -0,0 +1,13 @@
+{
+ "ᬆ": "ᬆ",
+ "ᬈ": "ᬈ",
+ "ᬊ": "ᬊ",
+ "ᬌ": "ᬌ",
+ "ᬎ": "ᬎ",
+ "ᬒ": "ᬒ",
+ "ᬻ": "ᬻ",
+ "ᬽ": "ᬽ",
+ "ᭀ": "ᭀ",
+ "ᭁ": "ᭁ",
+ "ᭃ": "ᭃ"
+}
\ No newline at end of file
diff --git a/js/data/locale/nfc/Beng.json b/js/data/locale/nfc/Beng.json
new file mode 100644
index 0000000000..eef149d11c
--- /dev/null
+++ b/js/data/locale/nfc/Beng.json
@@ -0,0 +1,4 @@
+{
+ "ো": "ো",
+ "ৌ": "ৌ"
+}
\ No newline at end of file
diff --git a/js/data/locale/nfc/Cakm.json b/js/data/locale/nfc/Cakm.json
new file mode 100644
index 0000000000..759b3fd6b4
--- /dev/null
+++ b/js/data/locale/nfc/Cakm.json
@@ -0,0 +1,4 @@
+{
+ "𑄮": "𑄮",
+ "𑄯": "𑄯"
+}
\ No newline at end of file
diff --git a/js/data/locale/nfc/Cyrl.json b/js/data/locale/nfc/Cyrl.json
new file mode 100644
index 0000000000..af8e797627
--- /dev/null
+++ b/js/data/locale/nfc/Cyrl.json
@@ -0,0 +1,54 @@
+{
+ "Ѐ": "Ѐ",
+ "Ё": "Ё",
+ "Ѓ": "Ѓ",
+ "Ї": "Ї",
+ "Ќ": "Ќ",
+ "Ѝ": "Ѝ",
+ "Ў": "Ў",
+ "Й": "Й",
+ "й": "й",
+ "ѐ": "ѐ",
+ "ё": "ё",
+ "ѓ": "ѓ",
+ "ї": "ї",
+ "ќ": "ќ",
+ "ѝ": "ѝ",
+ "ў": "ў",
+ "Ѷ": "Ѷ",
+ "ѷ": "ѷ",
+ "Ӂ": "Ӂ",
+ "ӂ": "ӂ",
+ "Ӑ": "Ӑ",
+ "ӑ": "ӑ",
+ "Ӓ": "Ӓ",
+ "ӓ": "ӓ",
+ "Ӗ": "Ӗ",
+ "ӗ": "ӗ",
+ "Ӛ": "Ӛ",
+ "ӛ": "ӛ",
+ "Ӝ": "Ӝ",
+ "ӝ": "ӝ",
+ "Ӟ": "Ӟ",
+ "ӟ": "ӟ",
+ "Ӣ": "Ӣ",
+ "ӣ": "ӣ",
+ "Ӥ": "Ӥ",
+ "ӥ": "ӥ",
+ "Ӧ": "Ӧ",
+ "ӧ": "ӧ",
+ "Ӫ": "Ӫ",
+ "ӫ": "ӫ",
+ "Ӭ": "Ӭ",
+ "ӭ": "ӭ",
+ "Ӯ": "Ӯ",
+ "ӯ": "ӯ",
+ "Ӱ": "Ӱ",
+ "ӱ": "ӱ",
+ "Ӳ": "Ӳ",
+ "ӳ": "ӳ",
+ "Ӵ": "Ӵ",
+ "ӵ": "ӵ",
+ "Ӹ": "Ӹ",
+ "ӹ": "ӹ"
+}
\ No newline at end of file
diff --git a/js/data/locale/nfc/Deva.json b/js/data/locale/nfc/Deva.json
new file mode 100644
index 0000000000..86d0f0b693
--- /dev/null
+++ b/js/data/locale/nfc/Deva.json
@@ -0,0 +1,5 @@
+{
+ "ऩ": "ऩ",
+ "ऱ": "ऱ",
+ "ऴ": "ऴ"
+}
\ No newline at end of file
diff --git a/js/data/locale/nfc/Gran.json b/js/data/locale/nfc/Gran.json
new file mode 100644
index 0000000000..cdaa1eb68e
--- /dev/null
+++ b/js/data/locale/nfc/Gran.json
@@ -0,0 +1,4 @@
+{
+ "𑍋": "𑍋",
+ "𑍌": "𑍌"
+}
\ No newline at end of file
diff --git a/js/data/locale/nfc/Grek.json b/js/data/locale/nfc/Grek.json
new file mode 100644
index 0000000000..29685b2493
--- /dev/null
+++ b/js/data/locale/nfc/Grek.json
@@ -0,0 +1,231 @@
+{
+ "Ά": "Ά",
+ "Έ": "Έ",
+ "Ή": "Ή",
+ "Ί": "Ί",
+ "Ό": "Ό",
+ "Ύ": "Ύ",
+ "Ώ": "Ώ",
+ "ΐ": "ΐ",
+ "Ϊ": "Ϊ",
+ "Ϋ": "Ϋ",
+ "ά": "ά",
+ "έ": "έ",
+ "ή": "ή",
+ "ί": "ί",
+ "ΰ": "ΰ",
+ "ϊ": "ϊ",
+ "ϋ": "ϋ",
+ "ό": "ό",
+ "ύ": "ύ",
+ "ώ": "ώ",
+ "ϓ": "ϓ",
+ "ϔ": "ϔ",
+ "ἀ": "ἀ",
+ "ἁ": "ἁ",
+ "ἂ": "ἂ",
+ "ἃ": "ἃ",
+ "ἄ": "ἄ",
+ "ἅ": "ἅ",
+ "ἆ": "ἆ",
+ "ἇ": "ἇ",
+ "Ἀ": "Ἀ",
+ "Ἁ": "Ἁ",
+ "Ἂ": "Ἂ",
+ "Ἃ": "Ἃ",
+ "Ἄ": "Ἄ",
+ "Ἅ": "Ἅ",
+ "Ἆ": "Ἆ",
+ "Ἇ": "Ἇ",
+ "ἐ": "ἐ",
+ "ἑ": "ἑ",
+ "ἒ": "ἒ",
+ "ἓ": "ἓ",
+ "ἔ": "ἔ",
+ "ἕ": "ἕ",
+ "Ἐ": "Ἐ",
+ "Ἑ": "Ἑ",
+ "Ἒ": "Ἒ",
+ "Ἓ": "Ἓ",
+ "Ἔ": "Ἔ",
+ "Ἕ": "Ἕ",
+ "ἠ": "ἠ",
+ "ἡ": "ἡ",
+ "ἢ": "ἢ",
+ "ἣ": "ἣ",
+ "ἤ": "ἤ",
+ "ἥ": "ἥ",
+ "ἦ": "ἦ",
+ "ἧ": "ἧ",
+ "Ἠ": "Ἠ",
+ "Ἡ": "Ἡ",
+ "Ἢ": "Ἢ",
+ "Ἣ": "Ἣ",
+ "Ἤ": "Ἤ",
+ "Ἥ": "Ἥ",
+ "Ἦ": "Ἦ",
+ "Ἧ": "Ἧ",
+ "ἰ": "ἰ",
+ "ἱ": "ἱ",
+ "ἲ": "ἲ",
+ "ἳ": "ἳ",
+ "ἴ": "ἴ",
+ "ἵ": "ἵ",
+ "ἶ": "ἶ",
+ "ἷ": "ἷ",
+ "Ἰ": "Ἰ",
+ "Ἱ": "Ἱ",
+ "Ἲ": "Ἲ",
+ "Ἳ": "Ἳ",
+ "Ἴ": "Ἴ",
+ "Ἵ": "Ἵ",
+ "Ἶ": "Ἶ",
+ "Ἷ": "Ἷ",
+ "ὀ": "ὀ",
+ "ὁ": "ὁ",
+ "ὂ": "ὂ",
+ "ὃ": "ὃ",
+ "ὄ": "ὄ",
+ "ὅ": "ὅ",
+ "Ὀ": "Ὀ",
+ "Ὁ": "Ὁ",
+ "Ὂ": "Ὂ",
+ "Ὃ": "Ὃ",
+ "Ὄ": "Ὄ",
+ "Ὅ": "Ὅ",
+ "ὐ": "ὐ",
+ "ὑ": "ὑ",
+ "ὒ": "ὒ",
+ "ὓ": "ὓ",
+ "ὔ": "ὔ",
+ "ὕ": "ὕ",
+ "ὖ": "ὖ",
+ "ὗ": "ὗ",
+ "Ὑ": "Ὑ",
+ "Ὓ": "Ὓ",
+ "Ὕ": "Ὕ",
+ "Ὗ": "Ὗ",
+ "ὠ": "ὠ",
+ "ὡ": "ὡ",
+ "ὢ": "ὢ",
+ "ὣ": "ὣ",
+ "ὤ": "ὤ",
+ "ὥ": "ὥ",
+ "ὦ": "ὦ",
+ "ὧ": "ὧ",
+ "Ὠ": "Ὠ",
+ "Ὡ": "Ὡ",
+ "Ὢ": "Ὢ",
+ "Ὣ": "Ὣ",
+ "Ὤ": "Ὤ",
+ "Ὥ": "Ὥ",
+ "Ὦ": "Ὦ",
+ "Ὧ": "Ὧ",
+ "ὰ": "ὰ",
+ "ὲ": "ὲ",
+ "ὴ": "ὴ",
+ "ὶ": "ὶ",
+ "ὸ": "ὸ",
+ "ὺ": "ὺ",
+ "ὼ": "ὼ",
+ "ᾀ": "ᾀ",
+ "ᾁ": "ᾁ",
+ "ᾂ": "ᾂ",
+ "ᾃ": "ᾃ",
+ "ᾄ": "ᾄ",
+ "ᾅ": "ᾅ",
+ "ᾆ": "ᾆ",
+ "ᾇ": "ᾇ",
+ "ᾈ": "ᾈ",
+ "ᾉ": "ᾉ",
+ "ᾊ": "ᾊ",
+ "ᾋ": "ᾋ",
+ "ᾌ": "ᾌ",
+ "ᾍ": "ᾍ",
+ "ᾎ": "ᾎ",
+ "ᾏ": "ᾏ",
+ "ᾐ": "ᾐ",
+ "ᾑ": "ᾑ",
+ "ᾒ": "ᾒ",
+ "ᾓ": "ᾓ",
+ "ᾔ": "ᾔ",
+ "ᾕ": "ᾕ",
+ "ᾖ": "ᾖ",
+ "ᾗ": "ᾗ",
+ "ᾘ": "ᾘ",
+ "ᾙ": "ᾙ",
+ "ᾚ": "ᾚ",
+ "ᾛ": "ᾛ",
+ "ᾜ": "ᾜ",
+ "ᾝ": "ᾝ",
+ "ᾞ": "ᾞ",
+ "ᾟ": "ᾟ",
+ "ᾠ": "ᾠ",
+ "ᾡ": "ᾡ",
+ "ᾢ": "ᾢ",
+ "ᾣ": "ᾣ",
+ "ᾤ": "ᾤ",
+ "ᾥ": "ᾥ",
+ "ᾦ": "ᾦ",
+ "ᾧ": "ᾧ",
+ "ᾨ": "ᾨ",
+ "ᾩ": "ᾩ",
+ "ᾪ": "ᾪ",
+ "ᾫ": "ᾫ",
+ "ᾬ": "ᾬ",
+ "ᾭ": "ᾭ",
+ "ᾮ": "ᾮ",
+ "ᾯ": "ᾯ",
+ "ᾰ": "ᾰ",
+ "ᾱ": "ᾱ",
+ "ᾲ": "ᾲ",
+ "ᾳ": "ᾳ",
+ "ᾴ": "ᾴ",
+ "ᾶ": "ᾶ",
+ "ᾷ": "ᾷ",
+ "Ᾰ": "Ᾰ",
+ "Ᾱ": "Ᾱ",
+ "Ὰ": "Ὰ",
+ "ᾼ": "ᾼ",
+ "ῂ": "ῂ",
+ "ῃ": "ῃ",
+ "ῄ": "ῄ",
+ "ῆ": "ῆ",
+ "ῇ": "ῇ",
+ "Ὲ": "Ὲ",
+ "Ὴ": "Ὴ",
+ "ῌ": "ῌ",
+ "῍": "῍",
+ "῎": "῎",
+ "῏": "῏",
+ "ῐ": "ῐ",
+ "ῑ": "ῑ",
+ "ῒ": "ῒ",
+ "ῖ": "ῖ",
+ "ῗ": "ῗ",
+ "Ῐ": "Ῐ",
+ "Ῑ": "Ῑ",
+ "Ὶ": "Ὶ",
+ "῝": "῝",
+ "῞": "῞",
+ "῟": "῟",
+ "ῠ": "ῠ",
+ "ῡ": "ῡ",
+ "ῢ": "ῢ",
+ "ῤ": "ῤ",
+ "ῥ": "ῥ",
+ "ῦ": "ῦ",
+ "ῧ": "ῧ",
+ "Ῠ": "Ῠ",
+ "Ῡ": "Ῡ",
+ "Ὺ": "Ὺ",
+ "Ῥ": "Ῥ",
+ "ῲ": "ῲ",
+ "ῳ": "ῳ",
+ "ῴ": "ῴ",
+ "ῶ": "ῶ",
+ "ῷ": "ῷ",
+ "Ὸ": "Ὸ",
+ "Ὼ": "Ὼ",
+ "ῼ": "ῼ"
+}
\ No newline at end of file
diff --git a/js/data/locale/nfc/Hira.json b/js/data/locale/nfc/Hira.json
new file mode 100644
index 0000000000..45a00ecdaf
--- /dev/null
+++ b/js/data/locale/nfc/Hira.json
@@ -0,0 +1,29 @@
+{
+ "が": "が",
+ "ぎ": "ぎ",
+ "ぐ": "ぐ",
+ "げ": "げ",
+ "ご": "ご",
+ "ざ": "ざ",
+ "じ": "じ",
+ "ず": "ず",
+ "ぜ": "ぜ",
+ "ぞ": "ぞ",
+ "だ": "だ",
+ "ぢ": "ぢ",
+ "づ": "づ",
+ "で": "で",
+ "ど": "ど",
+ "ば": "ば",
+ "ぱ": "ぱ",
+ "び": "び",
+ "ぴ": "ぴ",
+ "ぶ": "ぶ",
+ "ぷ": "ぷ",
+ "べ": "べ",
+ "ぺ": "ぺ",
+ "ぼ": "ぼ",
+ "ぽ": "ぽ",
+ "ゔ": "ゔ",
+ "ゞ": "ゞ"
+}
\ No newline at end of file
diff --git a/js/data/locale/nfc/Kana.json b/js/data/locale/nfc/Kana.json
new file mode 100644
index 0000000000..bdd853ac6a
--- /dev/null
+++ b/js/data/locale/nfc/Kana.json
@@ -0,0 +1,33 @@
+{
+ "ガ": "ガ",
+ "ギ": "ギ",
+ "グ": "グ",
+ "ゲ": "ゲ",
+ "ゴ": "ゴ",
+ "ザ": "ザ",
+ "ジ": "ジ",
+ "ズ": "ズ",
+ "ゼ": "ゼ",
+ "ゾ": "ゾ",
+ "ダ": "ダ",
+ "ヂ": "ヂ",
+ "ヅ": "ヅ",
+ "デ": "デ",
+ "ド": "ド",
+ "バ": "バ",
+ "パ": "パ",
+ "ビ": "ビ",
+ "ピ": "ピ",
+ "ブ": "ブ",
+ "プ": "プ",
+ "ベ": "ベ",
+ "ペ": "ペ",
+ "ボ": "ボ",
+ "ポ": "ポ",
+ "ヴ": "ヴ",
+ "ヷ": "ヷ",
+ "ヸ": "ヸ",
+ "ヹ": "ヹ",
+ "ヺ": "ヺ",
+ "ヾ": "ヾ"
+}
\ No newline at end of file
diff --git a/js/data/locale/nfc/Knda.json b/js/data/locale/nfc/Knda.json
new file mode 100644
index 0000000000..2d5257e2eb
--- /dev/null
+++ b/js/data/locale/nfc/Knda.json
@@ -0,0 +1,7 @@
+{
+ "ೀ": "ೀ",
+ "ೇ": "ೇ",
+ "ೈ": "ೈ",
+ "ೊ": "ೊ",
+ "ೋ": "ೋ"
+}
\ No newline at end of file
diff --git a/js/data/locale/nfc/Kthi.json b/js/data/locale/nfc/Kthi.json
new file mode 100644
index 0000000000..293efe4c19
--- /dev/null
+++ b/js/data/locale/nfc/Kthi.json
@@ -0,0 +1,5 @@
+{
+ "𑂚": "𑂚",
+ "𑂜": "𑂜",
+ "𑂫": "𑂫"
+}
\ No newline at end of file
diff --git a/js/data/locale/nfc/Latn.json b/js/data/locale/nfc/Latn.json
new file mode 100644
index 0000000000..2215ed6b28
--- /dev/null
+++ b/js/data/locale/nfc/Latn.json
@@ -0,0 +1,499 @@
+{
+ "À": "À",
+ "Á": "Á",
+ "Â": "Â",
+ "Ã": "Ã",
+ "Ä": "Ä",
+ "Å": "Å",
+ "Ç": "Ç",
+ "È": "È",
+ "É": "É",
+ "Ê": "Ê",
+ "Ë": "Ë",
+ "Ì": "Ì",
+ "Í": "Í",
+ "Î": "Î",
+ "Ï": "Ï",
+ "Ñ": "Ñ",
+ "Ò": "Ò",
+ "Ó": "Ó",
+ "Ô": "Ô",
+ "Õ": "Õ",
+ "Ö": "Ö",
+ "Ù": "Ù",
+ "Ú": "Ú",
+ "Û": "Û",
+ "Ü": "Ü",
+ "Ý": "Ý",
+ "à": "à",
+ "á": "á",
+ "â": "â",
+ "ã": "ã",
+ "ä": "ä",
+ "å": "å",
+ "ç": "ç",
+ "è": "è",
+ "é": "é",
+ "ê": "ê",
+ "ë": "ë",
+ "ì": "ì",
+ "í": "í",
+ "î": "î",
+ "ï": "ï",
+ "ñ": "ñ",
+ "ò": "ò",
+ "ó": "ó",
+ "ô": "ô",
+ "õ": "õ",
+ "ö": "ö",
+ "ù": "ù",
+ "ú": "ú",
+ "û": "û",
+ "ü": "ü",
+ "ý": "ý",
+ "ÿ": "ÿ",
+ "Ā": "Ā",
+ "ā": "ā",
+ "Ă": "Ă",
+ "ă": "ă",
+ "Ą": "Ą",
+ "ą": "ą",
+ "Ć": "Ć",
+ "ć": "ć",
+ "Ĉ": "Ĉ",
+ "ĉ": "ĉ",
+ "Ċ": "Ċ",
+ "ċ": "ċ",
+ "Č": "Č",
+ "č": "č",
+ "Ď": "Ď",
+ "ď": "ď",
+ "Ē": "Ē",
+ "ē": "ē",
+ "Ĕ": "Ĕ",
+ "ĕ": "ĕ",
+ "Ė": "Ė",
+ "ė": "ė",
+ "Ę": "Ę",
+ "ę": "ę",
+ "Ě": "Ě",
+ "ě": "ě",
+ "Ĝ": "Ĝ",
+ "ĝ": "ĝ",
+ "Ğ": "Ğ",
+ "ğ": "ğ",
+ "Ġ": "Ġ",
+ "ġ": "ġ",
+ "Ģ": "Ģ",
+ "ģ": "ģ",
+ "Ĥ": "Ĥ",
+ "ĥ": "ĥ",
+ "Ĩ": "Ĩ",
+ "ĩ": "ĩ",
+ "Ī": "Ī",
+ "ī": "ī",
+ "Ĭ": "Ĭ",
+ "ĭ": "ĭ",
+ "Į": "Į",
+ "į": "į",
+ "İ": "İ",
+ "Ĵ": "Ĵ",
+ "ĵ": "ĵ",
+ "Ķ": "Ķ",
+ "ķ": "ķ",
+ "Ĺ": "Ĺ",
+ "ĺ": "ĺ",
+ "Ļ": "Ļ",
+ "ļ": "ļ",
+ "Ľ": "Ľ",
+ "ľ": "ľ",
+ "Ń": "Ń",
+ "ń": "ń",
+ "Ņ": "Ņ",
+ "ņ": "ņ",
+ "Ň": "Ň",
+ "ň": "ň",
+ "Ō": "Ō",
+ "ō": "ō",
+ "Ŏ": "Ŏ",
+ "ŏ": "ŏ",
+ "Ő": "Ő",
+ "ő": "ő",
+ "Ŕ": "Ŕ",
+ "ŕ": "ŕ",
+ "Ŗ": "Ŗ",
+ "ŗ": "ŗ",
+ "Ř": "Ř",
+ "ř": "ř",
+ "Ś": "Ś",
+ "ś": "ś",
+ "Ŝ": "Ŝ",
+ "ŝ": "ŝ",
+ "Ş": "Ş",
+ "ş": "ş",
+ "Š": "Š",
+ "š": "š",
+ "Ţ": "Ţ",
+ "ţ": "ţ",
+ "Ť": "Ť",
+ "ť": "ť",
+ "Ũ": "Ũ",
+ "ũ": "ũ",
+ "Ū": "Ū",
+ "ū": "ū",
+ "Ŭ": "Ŭ",
+ "ŭ": "ŭ",
+ "Ů": "Ů",
+ "ů": "ů",
+ "Ű": "Ű",
+ "ű": "ű",
+ "Ų": "Ų",
+ "ų": "ų",
+ "Ŵ": "Ŵ",
+ "ŵ": "ŵ",
+ "Ŷ": "Ŷ",
+ "ŷ": "ŷ",
+ "Ÿ": "Ÿ",
+ "Ź": "Ź",
+ "ź": "ź",
+ "Ż": "Ż",
+ "ż": "ż",
+ "Ž": "Ž",
+ "ž": "ž",
+ "Ơ": "Ơ",
+ "ơ": "ơ",
+ "Ư": "Ư",
+ "ư": "ư",
+ "Ǎ": "Ǎ",
+ "ǎ": "ǎ",
+ "Ǐ": "Ǐ",
+ "ǐ": "ǐ",
+ "Ǒ": "Ǒ",
+ "ǒ": "ǒ",
+ "Ǔ": "Ǔ",
+ "ǔ": "ǔ",
+ "Ǖ": "Ǖ",
+ "ǖ": "ǖ",
+ "Ǘ": "Ǘ",
+ "ǘ": "ǘ",
+ "Ǚ": "Ǚ",
+ "ǚ": "ǚ",
+ "Ǜ": "Ǜ",
+ "ǜ": "ǜ",
+ "Ǟ": "Ǟ",
+ "ǟ": "ǟ",
+ "Ǡ": "Ǡ",
+ "ǡ": "ǡ",
+ "Ǣ": "Ǣ",
+ "ǣ": "ǣ",
+ "Ǧ": "Ǧ",
+ "ǧ": "ǧ",
+ "Ǩ": "Ǩ",
+ "ǩ": "ǩ",
+ "Ǫ": "Ǫ",
+ "ǫ": "ǫ",
+ "Ǭ": "Ǭ",
+ "ǭ": "ǭ",
+ "Ǯ": "Ǯ",
+ "ǯ": "ǯ",
+ "ǰ": "ǰ",
+ "Ǵ": "Ǵ",
+ "ǵ": "ǵ",
+ "Ǹ": "Ǹ",
+ "ǹ": "ǹ",
+ "Ǻ": "Ǻ",
+ "ǻ": "ǻ",
+ "Ǽ": "Ǽ",
+ "ǽ": "ǽ",
+ "Ǿ": "Ǿ",
+ "ǿ": "ǿ",
+ "Ȁ": "Ȁ",
+ "ȁ": "ȁ",
+ "Ȃ": "Ȃ",
+ "ȃ": "ȃ",
+ "Ȅ": "Ȅ",
+ "ȅ": "ȅ",
+ "Ȇ": "Ȇ",
+ "ȇ": "ȇ",
+ "Ȉ": "Ȉ",
+ "ȉ": "ȉ",
+ "Ȋ": "Ȋ",
+ "ȋ": "ȋ",
+ "Ȍ": "Ȍ",
+ "ȍ": "ȍ",
+ "Ȏ": "Ȏ",
+ "ȏ": "ȏ",
+ "Ȑ": "Ȑ",
+ "ȑ": "ȑ",
+ "Ȓ": "Ȓ",
+ "ȓ": "ȓ",
+ "Ȕ": "Ȕ",
+ "ȕ": "ȕ",
+ "Ȗ": "Ȗ",
+ "ȗ": "ȗ",
+ "Ș": "Ș",
+ "ș": "ș",
+ "Ț": "Ț",
+ "ț": "ț",
+ "Ȟ": "Ȟ",
+ "ȟ": "ȟ",
+ "Ȧ": "Ȧ",
+ "ȧ": "ȧ",
+ "Ȩ": "Ȩ",
+ "ȩ": "ȩ",
+ "Ȫ": "Ȫ",
+ "ȫ": "ȫ",
+ "Ȭ": "Ȭ",
+ "ȭ": "ȭ",
+ "Ȯ": "Ȯ",
+ "ȯ": "ȯ",
+ "Ȱ": "Ȱ",
+ "ȱ": "ȱ",
+ "Ȳ": "Ȳ",
+ "ȳ": "ȳ",
+ "Ḁ": "Ḁ",
+ "ḁ": "ḁ",
+ "Ḃ": "Ḃ",
+ "ḃ": "ḃ",
+ "Ḅ": "Ḅ",
+ "ḅ": "ḅ",
+ "Ḇ": "Ḇ",
+ "ḇ": "ḇ",
+ "Ḉ": "Ḉ",
+ "ḉ": "ḉ",
+ "Ḋ": "Ḋ",
+ "ḋ": "ḋ",
+ "Ḍ": "Ḍ",
+ "ḍ": "ḍ",
+ "Ḏ": "Ḏ",
+ "ḏ": "ḏ",
+ "Ḑ": "Ḑ",
+ "ḑ": "ḑ",
+ "Ḓ": "Ḓ",
+ "ḓ": "ḓ",
+ "Ḕ": "Ḕ",
+ "ḕ": "ḕ",
+ "Ḗ": "Ḗ",
+ "ḗ": "ḗ",
+ "Ḙ": "Ḙ",
+ "ḙ": "ḙ",
+ "Ḛ": "Ḛ",
+ "ḛ": "ḛ",
+ "Ḝ": "Ḝ",
+ "ḝ": "ḝ",
+ "Ḟ": "Ḟ",
+ "ḟ": "ḟ",
+ "Ḡ": "Ḡ",
+ "ḡ": "ḡ",
+ "Ḣ": "Ḣ",
+ "ḣ": "ḣ",
+ "Ḥ": "Ḥ",
+ "ḥ": "ḥ",
+ "Ḧ": "Ḧ",
+ "ḧ": "ḧ",
+ "Ḩ": "Ḩ",
+ "ḩ": "ḩ",
+ "Ḫ": "Ḫ",
+ "ḫ": "ḫ",
+ "Ḭ": "Ḭ",
+ "ḭ": "ḭ",
+ "Ḯ": "Ḯ",
+ "ḯ": "ḯ",
+ "Ḱ": "Ḱ",
+ "ḱ": "ḱ",
+ "Ḳ": "Ḳ",
+ "ḳ": "ḳ",
+ "Ḵ": "Ḵ",
+ "ḵ": "ḵ",
+ "Ḷ": "Ḷ",
+ "ḷ": "ḷ",
+ "Ḹ": "Ḹ",
+ "ḹ": "ḹ",
+ "Ḻ": "Ḻ",
+ "ḻ": "ḻ",
+ "Ḽ": "Ḽ",
+ "ḽ": "ḽ",
+ "Ḿ": "Ḿ",
+ "ḿ": "ḿ",
+ "Ṁ": "Ṁ",
+ "ṁ": "ṁ",
+ "Ṃ": "Ṃ",
+ "ṃ": "ṃ",
+ "Ṅ": "Ṅ",
+ "ṅ": "ṅ",
+ "Ṇ": "Ṇ",
+ "ṇ": "ṇ",
+ "Ṉ": "Ṉ",
+ "ṉ": "ṉ",
+ "Ṋ": "Ṋ",
+ "ṋ": "ṋ",
+ "Ṍ": "Ṍ",
+ "ṍ": "ṍ",
+ "Ṏ": "Ṏ",
+ "ṏ": "ṏ",
+ "Ṑ": "Ṑ",
+ "ṑ": "ṑ",
+ "Ṓ": "Ṓ",
+ "ṓ": "ṓ",
+ "Ṕ": "Ṕ",
+ "ṕ": "ṕ",
+ "Ṗ": "Ṗ",
+ "ṗ": "ṗ",
+ "Ṙ": "Ṙ",
+ "ṙ": "ṙ",
+ "Ṛ": "Ṛ",
+ "ṛ": "ṛ",
+ "Ṝ": "Ṝ",
+ "ṝ": "ṝ",
+ "Ṟ": "Ṟ",
+ "ṟ": "ṟ",
+ "Ṡ": "Ṡ",
+ "ṡ": "ṡ",
+ "Ṣ": "Ṣ",
+ "ṣ": "ṣ",
+ "Ṥ": "Ṥ",
+ "ṥ": "ṥ",
+ "Ṧ": "Ṧ",
+ "ṧ": "ṧ",
+ "Ṩ": "Ṩ",
+ "ṩ": "ṩ",
+ "Ṫ": "Ṫ",
+ "ṫ": "ṫ",
+ "Ṭ": "Ṭ",
+ "ṭ": "ṭ",
+ "Ṯ": "Ṯ",
+ "ṯ": "ṯ",
+ "Ṱ": "Ṱ",
+ "ṱ": "ṱ",
+ "Ṳ": "Ṳ",
+ "ṳ": "ṳ",
+ "Ṵ": "Ṵ",
+ "ṵ": "ṵ",
+ "Ṷ": "Ṷ",
+ "ṷ": "ṷ",
+ "Ṹ": "Ṹ",
+ "ṹ": "ṹ",
+ "Ṻ": "Ṻ",
+ "ṻ": "ṻ",
+ "Ṽ": "Ṽ",
+ "ṽ": "ṽ",
+ "Ṿ": "Ṿ",
+ "ṿ": "ṿ",
+ "Ẁ": "Ẁ",
+ "ẁ": "ẁ",
+ "Ẃ": "Ẃ",
+ "ẃ": "ẃ",
+ "Ẅ": "Ẅ",
+ "ẅ": "ẅ",
+ "Ẇ": "Ẇ",
+ "ẇ": "ẇ",
+ "Ẉ": "Ẉ",
+ "ẉ": "ẉ",
+ "Ẋ": "Ẋ",
+ "ẋ": "ẋ",
+ "Ẍ": "Ẍ",
+ "ẍ": "ẍ",
+ "Ẏ": "Ẏ",
+ "ẏ": "ẏ",
+ "Ẑ": "Ẑ",
+ "ẑ": "ẑ",
+ "Ẓ": "Ẓ",
+ "ẓ": "ẓ",
+ "Ẕ": "Ẕ",
+ "ẕ": "ẕ",
+ "ẖ": "ẖ",
+ "ẗ": "ẗ",
+ "ẘ": "ẘ",
+ "ẙ": "ẙ",
+ "ẛ": "ẛ",
+ "Ạ": "Ạ",
+ "ạ": "ạ",
+ "Ả": "Ả",
+ "ả": "ả",
+ "Ấ": "Ấ",
+ "ấ": "ấ",
+ "Ầ": "Ầ",
+ "ầ": "ầ",
+ "Ẩ": "Ẩ",
+ "ẩ": "ẩ",
+ "Ẫ": "Ẫ",
+ "ẫ": "ẫ",
+ "Ậ": "Ậ",
+ "ậ": "ậ",
+ "Ắ": "Ắ",
+ "ắ": "ắ",
+ "Ằ": "Ằ",
+ "ằ": "ằ",
+ "Ẳ": "Ẳ",
+ "ẳ": "ẳ",
+ "Ẵ": "Ẵ",
+ "ẵ": "ẵ",
+ "Ặ": "Ặ",
+ "ặ": "ặ",
+ "Ẹ": "Ẹ",
+ "ẹ": "ẹ",
+ "Ẻ": "Ẻ",
+ "ẻ": "ẻ",
+ "Ẽ": "Ẽ",
+ "ẽ": "ẽ",
+ "Ế": "Ế",
+ "ế": "ế",
+ "Ề": "Ề",
+ "ề": "ề",
+ "Ể": "Ể",
+ "ể": "ể",
+ "Ễ": "Ễ",
+ "ễ": "ễ",
+ "Ệ": "Ệ",
+ "ệ": "ệ",
+ "Ỉ": "Ỉ",
+ "ỉ": "ỉ",
+ "Ị": "Ị",
+ "ị": "ị",
+ "Ọ": "Ọ",
+ "ọ": "ọ",
+ "Ỏ": "Ỏ",
+ "ỏ": "ỏ",
+ "Ố": "Ố",
+ "ố": "ố",
+ "Ồ": "Ồ",
+ "ồ": "ồ",
+ "Ổ": "Ổ",
+ "ổ": "ổ",
+ "Ỗ": "Ỗ",
+ "ỗ": "ỗ",
+ "Ộ": "Ộ",
+ "ộ": "ộ",
+ "Ớ": "Ớ",
+ "ớ": "ớ",
+ "Ờ": "Ờ",
+ "ờ": "ờ",
+ "Ở": "Ở",
+ "ở": "ở",
+ "Ỡ": "Ỡ",
+ "ỡ": "ỡ",
+ "Ợ": "Ợ",
+ "ợ": "ợ",
+ "Ụ": "Ụ",
+ "ụ": "ụ",
+ "Ủ": "Ủ",
+ "ủ": "ủ",
+ "Ứ": "Ứ",
+ "ứ": "ứ",
+ "Ừ": "Ừ",
+ "ừ": "ừ",
+ "Ử": "Ử",
+ "ử": "ử",
+ "Ữ": "Ữ",
+ "ữ": "ữ",
+ "Ự": "Ự",
+ "ự": "ự",
+ "Ỳ": "Ỳ",
+ "ỳ": "ỳ",
+ "Ỵ": "Ỵ",
+ "ỵ": "ỵ",
+ "Ỷ": "Ỷ",
+ "ỷ": "ỷ",
+ "Ỹ": "Ỹ",
+ "ỹ": "ỹ"
+}
\ No newline at end of file
diff --git a/js/data/locale/nfc/Mlym.json b/js/data/locale/nfc/Mlym.json
new file mode 100644
index 0000000000..941e081db5
--- /dev/null
+++ b/js/data/locale/nfc/Mlym.json
@@ -0,0 +1,5 @@
+{
+ "ൊ": "ൊ",
+ "ോ": "ോ",
+ "ൌ": "ൌ"
+}
\ No newline at end of file
diff --git a/js/data/locale/nfc/Mymr.json b/js/data/locale/nfc/Mymr.json
new file mode 100644
index 0000000000..ba9a82b312
--- /dev/null
+++ b/js/data/locale/nfc/Mymr.json
@@ -0,0 +1,3 @@
+{
+ "ဦ": "ဦ"
+}
\ No newline at end of file
diff --git a/js/data/locale/nfc/Orya.json b/js/data/locale/nfc/Orya.json
new file mode 100644
index 0000000000..55b0bfe4b7
--- /dev/null
+++ b/js/data/locale/nfc/Orya.json
@@ -0,0 +1,5 @@
+{
+ "ୈ": "ୈ",
+ "ୋ": "ୋ",
+ "ୌ": "ୌ"
+}
\ No newline at end of file
diff --git a/js/data/locale/nfc/Sidd.json b/js/data/locale/nfc/Sidd.json
new file mode 100644
index 0000000000..745abbd2a5
--- /dev/null
+++ b/js/data/locale/nfc/Sidd.json
@@ -0,0 +1,4 @@
+{
+ "𑖺": "𑖺",
+ "𑖻": "𑖻"
+}
\ No newline at end of file
diff --git a/js/data/locale/nfc/Sinh.json b/js/data/locale/nfc/Sinh.json
new file mode 100644
index 0000000000..624b4350c9
--- /dev/null
+++ b/js/data/locale/nfc/Sinh.json
@@ -0,0 +1,6 @@
+{
+ "ේ": "ේ",
+ "ො": "ො",
+ "ෝ": "ෝ",
+ "ෞ": "ෞ"
+}
\ No newline at end of file
diff --git a/js/data/locale/nfc/Taml.json b/js/data/locale/nfc/Taml.json
new file mode 100644
index 0000000000..88804e233f
--- /dev/null
+++ b/js/data/locale/nfc/Taml.json
@@ -0,0 +1,6 @@
+{
+ "ஔ": "ஔ",
+ "ொ": "ொ",
+ "ோ": "ோ",
+ "ௌ": "ௌ"
+}
\ No newline at end of file
diff --git a/js/data/locale/nfc/Telu.json b/js/data/locale/nfc/Telu.json
new file mode 100644
index 0000000000..89e22191cd
--- /dev/null
+++ b/js/data/locale/nfc/Telu.json
@@ -0,0 +1,3 @@
+{
+ "ై": "ై"
+}
\ No newline at end of file
diff --git a/js/data/locale/nfc/Tirh.json b/js/data/locale/nfc/Tirh.json
new file mode 100644
index 0000000000..9aeb22d892
--- /dev/null
+++ b/js/data/locale/nfc/Tirh.json
@@ -0,0 +1,5 @@
+{
+ "𑒻": "𑒻",
+ "𑒼": "𑒼",
+ "𑒾": "𑒾"
+}
\ No newline at end of file
diff --git a/js/data/locale/nfc/Zyyy.json b/js/data/locale/nfc/Zyyy.json
new file mode 100644
index 0000000000..ae45419b94
--- /dev/null
+++ b/js/data/locale/nfc/Zyyy.json
@@ -0,0 +1,49 @@
+{
+ "΅": "΅",
+ "῁": "῁",
+ "῭": "῭",
+ "↚": "↚",
+ "↛": "↛",
+ "↮": "↮",
+ "⇍": "⇍",
+ "⇎": "⇎",
+ "⇏": "⇏",
+ "∄": "∄",
+ "∉": "∉",
+ "∌": "∌",
+ "∤": "∤",
+ "∦": "∦",
+ "≁": "≁",
+ "≄": "≄",
+ "≇": "≇",
+ "≉": "≉",
+ "≠": "≠",
+ "≢": "≢",
+ "≭": "≭",
+ "≮": "≮",
+ "≯": "≯",
+ "≰": "≰",
+ "≱": "≱",
+ "≴": "≴",
+ "≵": "≵",
+ "≸": "≸",
+ "≹": "≹",
+ "⊀": "⊀",
+ "⊁": "⊁",
+ "⊄": "⊄",
+ "⊅": "⊅",
+ "⊈": "⊈",
+ "⊉": "⊉",
+ "⊬": "⊬",
+ "⊭": "⊭",
+ "⊮": "⊮",
+ "⊯": "⊯",
+ "⋠": "⋠",
+ "⋡": "⋡",
+ "⋢": "⋢",
+ "⋣": "⋣",
+ "⋪": "⋪",
+ "⋫": "⋫",
+ "⋬": "⋬",
+ "⋭": "⋭"
+}
\ No newline at end of file
diff --git a/js/data/locale/nfc/all.json b/js/data/locale/nfc/all.json
new file mode 100644
index 0000000000..64e353ea01
--- /dev/null
+++ b/js/data/locale/nfc/all.json
@@ -0,0 +1,942 @@
+{
+ "À": "À",
+ "Á": "Á",
+ "Â": "Â",
+ "Ã": "Ã",
+ "Ä": "Ä",
+ "Å": "Å",
+ "Ç": "Ç",
+ "È": "È",
+ "É": "É",
+ "Ê": "Ê",
+ "Ë": "Ë",
+ "Ì": "Ì",
+ "Í": "Í",
+ "Î": "Î",
+ "Ï": "Ï",
+ "Ñ": "Ñ",
+ "Ò": "Ò",
+ "Ó": "Ó",
+ "Ô": "Ô",
+ "Õ": "Õ",
+ "Ö": "Ö",
+ "Ù": "Ù",
+ "Ú": "Ú",
+ "Û": "Û",
+ "Ü": "Ü",
+ "Ý": "Ý",
+ "à": "à",
+ "á": "á",
+ "â": "â",
+ "ã": "ã",
+ "ä": "ä",
+ "å": "å",
+ "ç": "ç",
+ "è": "è",
+ "é": "é",
+ "ê": "ê",
+ "ë": "ë",
+ "ì": "ì",
+ "í": "í",
+ "î": "î",
+ "ï": "ï",
+ "ñ": "ñ",
+ "ò": "ò",
+ "ó": "ó",
+ "ô": "ô",
+ "õ": "õ",
+ "ö": "ö",
+ "ù": "ù",
+ "ú": "ú",
+ "û": "û",
+ "ü": "ü",
+ "ý": "ý",
+ "ÿ": "ÿ",
+ "Ā": "Ā",
+ "ā": "ā",
+ "Ă": "Ă",
+ "ă": "ă",
+ "Ą": "Ą",
+ "ą": "ą",
+ "Ć": "Ć",
+ "ć": "ć",
+ "Ĉ": "Ĉ",
+ "ĉ": "ĉ",
+ "Ċ": "Ċ",
+ "ċ": "ċ",
+ "Č": "Č",
+ "č": "č",
+ "Ď": "Ď",
+ "ď": "ď",
+ "Ē": "Ē",
+ "ē": "ē",
+ "Ĕ": "Ĕ",
+ "ĕ": "ĕ",
+ "Ė": "Ė",
+ "ė": "ė",
+ "Ę": "Ę",
+ "ę": "ę",
+ "Ě": "Ě",
+ "ě": "ě",
+ "Ĝ": "Ĝ",
+ "ĝ": "ĝ",
+ "Ğ": "Ğ",
+ "ğ": "ğ",
+ "Ġ": "Ġ",
+ "ġ": "ġ",
+ "Ģ": "Ģ",
+ "ģ": "ģ",
+ "Ĥ": "Ĥ",
+ "ĥ": "ĥ",
+ "Ĩ": "Ĩ",
+ "ĩ": "ĩ",
+ "Ī": "Ī",
+ "ī": "ī",
+ "Ĭ": "Ĭ",
+ "ĭ": "ĭ",
+ "Į": "Į",
+ "į": "į",
+ "İ": "İ",
+ "Ĵ": "Ĵ",
+ "ĵ": "ĵ",
+ "Ķ": "Ķ",
+ "ķ": "ķ",
+ "Ĺ": "Ĺ",
+ "ĺ": "ĺ",
+ "Ļ": "Ļ",
+ "ļ": "ļ",
+ "Ľ": "Ľ",
+ "ľ": "ľ",
+ "Ń": "Ń",
+ "ń": "ń",
+ "Ņ": "Ņ",
+ "ņ": "ņ",
+ "Ň": "Ň",
+ "ň": "ň",
+ "Ō": "Ō",
+ "ō": "ō",
+ "Ŏ": "Ŏ",
+ "ŏ": "ŏ",
+ "Ő": "Ő",
+ "ő": "ő",
+ "Ŕ": "Ŕ",
+ "ŕ": "ŕ",
+ "Ŗ": "Ŗ",
+ "ŗ": "ŗ",
+ "Ř": "Ř",
+ "ř": "ř",
+ "Ś": "Ś",
+ "ś": "ś",
+ "Ŝ": "Ŝ",
+ "ŝ": "ŝ",
+ "Ş": "Ş",
+ "ş": "ş",
+ "Š": "Š",
+ "š": "š",
+ "Ţ": "Ţ",
+ "ţ": "ţ",
+ "Ť": "Ť",
+ "ť": "ť",
+ "Ũ": "Ũ",
+ "ũ": "ũ",
+ "Ū": "Ū",
+ "ū": "ū",
+ "Ŭ": "Ŭ",
+ "ŭ": "ŭ",
+ "Ů": "Ů",
+ "ů": "ů",
+ "Ű": "Ű",
+ "ű": "ű",
+ "Ų": "Ų",
+ "ų": "ų",
+ "Ŵ": "Ŵ",
+ "ŵ": "ŵ",
+ "Ŷ": "Ŷ",
+ "ŷ": "ŷ",
+ "Ÿ": "Ÿ",
+ "Ź": "Ź",
+ "ź": "ź",
+ "Ż": "Ż",
+ "ż": "ż",
+ "Ž": "Ž",
+ "ž": "ž",
+ "Ơ": "Ơ",
+ "ơ": "ơ",
+ "Ư": "Ư",
+ "ư": "ư",
+ "Ǎ": "Ǎ",
+ "ǎ": "ǎ",
+ "Ǐ": "Ǐ",
+ "ǐ": "ǐ",
+ "Ǒ": "Ǒ",
+ "ǒ": "ǒ",
+ "Ǔ": "Ǔ",
+ "ǔ": "ǔ",
+ "Ǖ": "Ǖ",
+ "ǖ": "ǖ",
+ "Ǘ": "Ǘ",
+ "ǘ": "ǘ",
+ "Ǚ": "Ǚ",
+ "ǚ": "ǚ",
+ "Ǜ": "Ǜ",
+ "ǜ": "ǜ",
+ "Ǟ": "Ǟ",
+ "ǟ": "ǟ",
+ "Ǡ": "Ǡ",
+ "ǡ": "ǡ",
+ "Ǣ": "Ǣ",
+ "ǣ": "ǣ",
+ "Ǧ": "Ǧ",
+ "ǧ": "ǧ",
+ "Ǩ": "Ǩ",
+ "ǩ": "ǩ",
+ "Ǫ": "Ǫ",
+ "ǫ": "ǫ",
+ "Ǭ": "Ǭ",
+ "ǭ": "ǭ",
+ "Ǯ": "Ǯ",
+ "ǯ": "ǯ",
+ "ǰ": "ǰ",
+ "Ǵ": "Ǵ",
+ "ǵ": "ǵ",
+ "Ǹ": "Ǹ",
+ "ǹ": "ǹ",
+ "Ǻ": "Ǻ",
+ "ǻ": "ǻ",
+ "Ǽ": "Ǽ",
+ "ǽ": "ǽ",
+ "Ǿ": "Ǿ",
+ "ǿ": "ǿ",
+ "Ȁ": "Ȁ",
+ "ȁ": "ȁ",
+ "Ȃ": "Ȃ",
+ "ȃ": "ȃ",
+ "Ȅ": "Ȅ",
+ "ȅ": "ȅ",
+ "Ȇ": "Ȇ",
+ "ȇ": "ȇ",
+ "Ȉ": "Ȉ",
+ "ȉ": "ȉ",
+ "Ȋ": "Ȋ",
+ "ȋ": "ȋ",
+ "Ȍ": "Ȍ",
+ "ȍ": "ȍ",
+ "Ȏ": "Ȏ",
+ "ȏ": "ȏ",
+ "Ȑ": "Ȑ",
+ "ȑ": "ȑ",
+ "Ȓ": "Ȓ",
+ "ȓ": "ȓ",
+ "Ȕ": "Ȕ",
+ "ȕ": "ȕ",
+ "Ȗ": "Ȗ",
+ "ȗ": "ȗ",
+ "Ș": "Ș",
+ "ș": "ș",
+ "Ț": "Ț",
+ "ț": "ț",
+ "Ȟ": "Ȟ",
+ "ȟ": "ȟ",
+ "Ȧ": "Ȧ",
+ "ȧ": "ȧ",
+ "Ȩ": "Ȩ",
+ "ȩ": "ȩ",
+ "Ȫ": "Ȫ",
+ "ȫ": "ȫ",
+ "Ȭ": "Ȭ",
+ "ȭ": "ȭ",
+ "Ȯ": "Ȯ",
+ "ȯ": "ȯ",
+ "Ȱ": "Ȱ",
+ "ȱ": "ȱ",
+ "Ȳ": "Ȳ",
+ "ȳ": "ȳ",
+ "΅": "΅",
+ "Ά": "Ά",
+ "Έ": "Έ",
+ "Ή": "Ή",
+ "Ί": "Ί",
+ "Ό": "Ό",
+ "Ύ": "Ύ",
+ "Ώ": "Ώ",
+ "ΐ": "ΐ",
+ "Ϊ": "Ϊ",
+ "Ϋ": "Ϋ",
+ "ά": "ά",
+ "έ": "έ",
+ "ή": "ή",
+ "ί": "ί",
+ "ΰ": "ΰ",
+ "ϊ": "ϊ",
+ "ϋ": "ϋ",
+ "ό": "ό",
+ "ύ": "ύ",
+ "ώ": "ώ",
+ "ϓ": "ϓ",
+ "ϔ": "ϔ",
+ "Ѐ": "Ѐ",
+ "Ё": "Ё",
+ "Ѓ": "Ѓ",
+ "Ї": "Ї",
+ "Ќ": "Ќ",
+ "Ѝ": "Ѝ",
+ "Ў": "Ў",
+ "Й": "Й",
+ "й": "й",
+ "ѐ": "ѐ",
+ "ё": "ё",
+ "ѓ": "ѓ",
+ "ї": "ї",
+ "ќ": "ќ",
+ "ѝ": "ѝ",
+ "ў": "ў",
+ "Ѷ": "Ѷ",
+ "ѷ": "ѷ",
+ "Ӂ": "Ӂ",
+ "ӂ": "ӂ",
+ "Ӑ": "Ӑ",
+ "ӑ": "ӑ",
+ "Ӓ": "Ӓ",
+ "ӓ": "ӓ",
+ "Ӗ": "Ӗ",
+ "ӗ": "ӗ",
+ "Ӛ": "Ӛ",
+ "ӛ": "ӛ",
+ "Ӝ": "Ӝ",
+ "ӝ": "ӝ",
+ "Ӟ": "Ӟ",
+ "ӟ": "ӟ",
+ "Ӣ": "Ӣ",
+ "ӣ": "ӣ",
+ "Ӥ": "Ӥ",
+ "ӥ": "ӥ",
+ "Ӧ": "Ӧ",
+ "ӧ": "ӧ",
+ "Ӫ": "Ӫ",
+ "ӫ": "ӫ",
+ "Ӭ": "Ӭ",
+ "ӭ": "ӭ",
+ "Ӯ": "Ӯ",
+ "ӯ": "ӯ",
+ "Ӱ": "Ӱ",
+ "ӱ": "ӱ",
+ "Ӳ": "Ӳ",
+ "ӳ": "ӳ",
+ "Ӵ": "Ӵ",
+ "ӵ": "ӵ",
+ "Ӹ": "Ӹ",
+ "ӹ": "ӹ",
+ "آ": "آ",
+ "أ": "أ",
+ "ؤ": "ؤ",
+ "إ": "إ",
+ "ئ": "ئ",
+ "ۀ": "ۀ",
+ "ۂ": "ۂ",
+ "ۓ": "ۓ",
+ "ऩ": "ऩ",
+ "ऱ": "ऱ",
+ "ऴ": "ऴ",
+ "ো": "ো",
+ "ৌ": "ৌ",
+ "ୈ": "ୈ",
+ "ୋ": "ୋ",
+ "ୌ": "ୌ",
+ "ஔ": "ஔ",
+ "ொ": "ொ",
+ "ோ": "ோ",
+ "ௌ": "ௌ",
+ "ై": "ై",
+ "ೀ": "ೀ",
+ "ೇ": "ೇ",
+ "ೈ": "ೈ",
+ "ೊ": "ೊ",
+ "ೋ": "ೋ",
+ "ൊ": "ൊ",
+ "ോ": "ോ",
+ "ൌ": "ൌ",
+ "ේ": "ේ",
+ "ො": "ො",
+ "ෝ": "ෝ",
+ "ෞ": "ෞ",
+ "ဦ": "ဦ",
+ "ᬆ": "ᬆ",
+ "ᬈ": "ᬈ",
+ "ᬊ": "ᬊ",
+ "ᬌ": "ᬌ",
+ "ᬎ": "ᬎ",
+ "ᬒ": "ᬒ",
+ "ᬻ": "ᬻ",
+ "ᬽ": "ᬽ",
+ "ᭀ": "ᭀ",
+ "ᭁ": "ᭁ",
+ "ᭃ": "ᭃ",
+ "Ḁ": "Ḁ",
+ "ḁ": "ḁ",
+ "Ḃ": "Ḃ",
+ "ḃ": "ḃ",
+ "Ḅ": "Ḅ",
+ "ḅ": "ḅ",
+ "Ḇ": "Ḇ",
+ "ḇ": "ḇ",
+ "Ḉ": "Ḉ",
+ "ḉ": "ḉ",
+ "Ḋ": "Ḋ",
+ "ḋ": "ḋ",
+ "Ḍ": "Ḍ",
+ "ḍ": "ḍ",
+ "Ḏ": "Ḏ",
+ "ḏ": "ḏ",
+ "Ḑ": "Ḑ",
+ "ḑ": "ḑ",
+ "Ḓ": "Ḓ",
+ "ḓ": "ḓ",
+ "Ḕ": "Ḕ",
+ "ḕ": "ḕ",
+ "Ḗ": "Ḗ",
+ "ḗ": "ḗ",
+ "Ḙ": "Ḙ",
+ "ḙ": "ḙ",
+ "Ḛ": "Ḛ",
+ "ḛ": "ḛ",
+ "Ḝ": "Ḝ",
+ "ḝ": "ḝ",
+ "Ḟ": "Ḟ",
+ "ḟ": "ḟ",
+ "Ḡ": "Ḡ",
+ "ḡ": "ḡ",
+ "Ḣ": "Ḣ",
+ "ḣ": "ḣ",
+ "Ḥ": "Ḥ",
+ "ḥ": "ḥ",
+ "Ḧ": "Ḧ",
+ "ḧ": "ḧ",
+ "Ḩ": "Ḩ",
+ "ḩ": "ḩ",
+ "Ḫ": "Ḫ",
+ "ḫ": "ḫ",
+ "Ḭ": "Ḭ",
+ "ḭ": "ḭ",
+ "Ḯ": "Ḯ",
+ "ḯ": "ḯ",
+ "Ḱ": "Ḱ",
+ "ḱ": "ḱ",
+ "Ḳ": "Ḳ",
+ "ḳ": "ḳ",
+ "Ḵ": "Ḵ",
+ "ḵ": "ḵ",
+ "Ḷ": "Ḷ",
+ "ḷ": "ḷ",
+ "Ḹ": "Ḹ",
+ "ḹ": "ḹ",
+ "Ḻ": "Ḻ",
+ "ḻ": "ḻ",
+ "Ḽ": "Ḽ",
+ "ḽ": "ḽ",
+ "Ḿ": "Ḿ",
+ "ḿ": "ḿ",
+ "Ṁ": "Ṁ",
+ "ṁ": "ṁ",
+ "Ṃ": "Ṃ",
+ "ṃ": "ṃ",
+ "Ṅ": "Ṅ",
+ "ṅ": "ṅ",
+ "Ṇ": "Ṇ",
+ "ṇ": "ṇ",
+ "Ṉ": "Ṉ",
+ "ṉ": "ṉ",
+ "Ṋ": "Ṋ",
+ "ṋ": "ṋ",
+ "Ṍ": "Ṍ",
+ "ṍ": "ṍ",
+ "Ṏ": "Ṏ",
+ "ṏ": "ṏ",
+ "Ṑ": "Ṑ",
+ "ṑ": "ṑ",
+ "Ṓ": "Ṓ",
+ "ṓ": "ṓ",
+ "Ṕ": "Ṕ",
+ "ṕ": "ṕ",
+ "Ṗ": "Ṗ",
+ "ṗ": "ṗ",
+ "Ṙ": "Ṙ",
+ "ṙ": "ṙ",
+ "Ṛ": "Ṛ",
+ "ṛ": "ṛ",
+ "Ṝ": "Ṝ",
+ "ṝ": "ṝ",
+ "Ṟ": "Ṟ",
+ "ṟ": "ṟ",
+ "Ṡ": "Ṡ",
+ "ṡ": "ṡ",
+ "Ṣ": "Ṣ",
+ "ṣ": "ṣ",
+ "Ṥ": "Ṥ",
+ "ṥ": "ṥ",
+ "Ṧ": "Ṧ",
+ "ṧ": "ṧ",
+ "Ṩ": "Ṩ",
+ "ṩ": "ṩ",
+ "Ṫ": "Ṫ",
+ "ṫ": "ṫ",
+ "Ṭ": "Ṭ",
+ "ṭ": "ṭ",
+ "Ṯ": "Ṯ",
+ "ṯ": "ṯ",
+ "Ṱ": "Ṱ",
+ "ṱ": "ṱ",
+ "Ṳ": "Ṳ",
+ "ṳ": "ṳ",
+ "Ṵ": "Ṵ",
+ "ṵ": "ṵ",
+ "Ṷ": "Ṷ",
+ "ṷ": "ṷ",
+ "Ṹ": "Ṹ",
+ "ṹ": "ṹ",
+ "Ṻ": "Ṻ",
+ "ṻ": "ṻ",
+ "Ṽ": "Ṽ",
+ "ṽ": "ṽ",
+ "Ṿ": "Ṿ",
+ "ṿ": "ṿ",
+ "Ẁ": "Ẁ",
+ "ẁ": "ẁ",
+ "Ẃ": "Ẃ",
+ "ẃ": "ẃ",
+ "Ẅ": "Ẅ",
+ "ẅ": "ẅ",
+ "Ẇ": "Ẇ",
+ "ẇ": "ẇ",
+ "Ẉ": "Ẉ",
+ "ẉ": "ẉ",
+ "Ẋ": "Ẋ",
+ "ẋ": "ẋ",
+ "Ẍ": "Ẍ",
+ "ẍ": "ẍ",
+ "Ẏ": "Ẏ",
+ "ẏ": "ẏ",
+ "Ẑ": "Ẑ",
+ "ẑ": "ẑ",
+ "Ẓ": "Ẓ",
+ "ẓ": "ẓ",
+ "Ẕ": "Ẕ",
+ "ẕ": "ẕ",
+ "ẖ": "ẖ",
+ "ẗ": "ẗ",
+ "ẘ": "ẘ",
+ "ẙ": "ẙ",
+ "ẛ": "ẛ",
+ "Ạ": "Ạ",
+ "ạ": "ạ",
+ "Ả": "Ả",
+ "ả": "ả",
+ "Ấ": "Ấ",
+ "ấ": "ấ",
+ "Ầ": "Ầ",
+ "ầ": "ầ",
+ "Ẩ": "Ẩ",
+ "ẩ": "ẩ",
+ "Ẫ": "Ẫ",
+ "ẫ": "ẫ",
+ "Ậ": "Ậ",
+ "ậ": "ậ",
+ "Ắ": "Ắ",
+ "ắ": "ắ",
+ "Ằ": "Ằ",
+ "ằ": "ằ",
+ "Ẳ": "Ẳ",
+ "ẳ": "ẳ",
+ "Ẵ": "Ẵ",
+ "ẵ": "ẵ",
+ "Ặ": "Ặ",
+ "ặ": "ặ",
+ "Ẹ": "Ẹ",
+ "ẹ": "ẹ",
+ "Ẻ": "Ẻ",
+ "ẻ": "ẻ",
+ "Ẽ": "Ẽ",
+ "ẽ": "ẽ",
+ "Ế": "Ế",
+ "ế": "ế",
+ "Ề": "Ề",
+ "ề": "ề",
+ "Ể": "Ể",
+ "ể": "ể",
+ "Ễ": "Ễ",
+ "ễ": "ễ",
+ "Ệ": "Ệ",
+ "ệ": "ệ",
+ "Ỉ": "Ỉ",
+ "ỉ": "ỉ",
+ "Ị": "Ị",
+ "ị": "ị",
+ "Ọ": "Ọ",
+ "ọ": "ọ",
+ "Ỏ": "Ỏ",
+ "ỏ": "ỏ",
+ "Ố": "Ố",
+ "ố": "ố",
+ "Ồ": "Ồ",
+ "ồ": "ồ",
+ "Ổ": "Ổ",
+ "ổ": "ổ",
+ "Ỗ": "Ỗ",
+ "ỗ": "ỗ",
+ "Ộ": "Ộ",
+ "ộ": "ộ",
+ "Ớ": "Ớ",
+ "ớ": "ớ",
+ "Ờ": "Ờ",
+ "ờ": "ờ",
+ "Ở": "Ở",
+ "ở": "ở",
+ "Ỡ": "Ỡ",
+ "ỡ": "ỡ",
+ "Ợ": "Ợ",
+ "ợ": "ợ",
+ "Ụ": "Ụ",
+ "ụ": "ụ",
+ "Ủ": "Ủ",
+ "ủ": "ủ",
+ "Ứ": "Ứ",
+ "ứ": "ứ",
+ "Ừ": "Ừ",
+ "ừ": "ừ",
+ "Ử": "Ử",
+ "ử": "ử",
+ "Ữ": "Ữ",
+ "ữ": "ữ",
+ "Ự": "Ự",
+ "ự": "ự",
+ "Ỳ": "Ỳ",
+ "ỳ": "ỳ",
+ "Ỵ": "Ỵ",
+ "ỵ": "ỵ",
+ "Ỷ": "Ỷ",
+ "ỷ": "ỷ",
+ "Ỹ": "Ỹ",
+ "ỹ": "ỹ",
+ "ἀ": "ἀ",
+ "ἁ": "ἁ",
+ "ἂ": "ἂ",
+ "ἃ": "ἃ",
+ "ἄ": "ἄ",
+ "ἅ": "ἅ",
+ "ἆ": "ἆ",
+ "ἇ": "ἇ",
+ "Ἀ": "Ἀ",
+ "Ἁ": "Ἁ",
+ "Ἂ": "Ἂ",
+ "Ἃ": "Ἃ",
+ "Ἄ": "Ἄ",
+ "Ἅ": "Ἅ",
+ "Ἆ": "Ἆ",
+ "Ἇ": "Ἇ",
+ "ἐ": "ἐ",
+ "ἑ": "ἑ",
+ "ἒ": "ἒ",
+ "ἓ": "ἓ",
+ "ἔ": "ἔ",
+ "ἕ": "ἕ",
+ "Ἐ": "Ἐ",
+ "Ἑ": "Ἑ",
+ "Ἒ": "Ἒ",
+ "Ἓ": "Ἓ",
+ "Ἔ": "Ἔ",
+ "Ἕ": "Ἕ",
+ "ἠ": "ἠ",
+ "ἡ": "ἡ",
+ "ἢ": "ἢ",
+ "ἣ": "ἣ",
+ "ἤ": "ἤ",
+ "ἥ": "ἥ",
+ "ἦ": "ἦ",
+ "ἧ": "ἧ",
+ "Ἠ": "Ἠ",
+ "Ἡ": "Ἡ",
+ "Ἢ": "Ἢ",
+ "Ἣ": "Ἣ",
+ "Ἤ": "Ἤ",
+ "Ἥ": "Ἥ",
+ "Ἦ": "Ἦ",
+ "Ἧ": "Ἧ",
+ "ἰ": "ἰ",
+ "ἱ": "ἱ",
+ "ἲ": "ἲ",
+ "ἳ": "ἳ",
+ "ἴ": "ἴ",
+ "ἵ": "ἵ",
+ "ἶ": "ἶ",
+ "ἷ": "ἷ",
+ "Ἰ": "Ἰ",
+ "Ἱ": "Ἱ",
+ "Ἲ": "Ἲ",
+ "Ἳ": "Ἳ",
+ "Ἴ": "Ἴ",
+ "Ἵ": "Ἵ",
+ "Ἶ": "Ἶ",
+ "Ἷ": "Ἷ",
+ "ὀ": "ὀ",
+ "ὁ": "ὁ",
+ "ὂ": "ὂ",
+ "ὃ": "ὃ",
+ "ὄ": "ὄ",
+ "ὅ": "ὅ",
+ "Ὀ": "Ὀ",
+ "Ὁ": "Ὁ",
+ "Ὂ": "Ὂ",
+ "Ὃ": "Ὃ",
+ "Ὄ": "Ὄ",
+ "Ὅ": "Ὅ",
+ "ὐ": "ὐ",
+ "ὑ": "ὑ",
+ "ὒ": "ὒ",
+ "ὓ": "ὓ",
+ "ὔ": "ὔ",
+ "ὕ": "ὕ",
+ "ὖ": "ὖ",
+ "ὗ": "ὗ",
+ "Ὑ": "Ὑ",
+ "Ὓ": "Ὓ",
+ "Ὕ": "Ὕ",
+ "Ὗ": "Ὗ",
+ "ὠ": "ὠ",
+ "ὡ": "ὡ",
+ "ὢ": "ὢ",
+ "ὣ": "ὣ",
+ "ὤ": "ὤ",
+ "ὥ": "ὥ",
+ "ὦ": "ὦ",
+ "ὧ": "ὧ",
+ "Ὠ": "Ὠ",
+ "Ὡ": "Ὡ",
+ "Ὢ": "Ὢ",
+ "Ὣ": "Ὣ",
+ "Ὤ": "Ὤ",
+ "Ὥ": "Ὥ",
+ "Ὦ": "Ὦ",
+ "Ὧ": "Ὧ",
+ "ὰ": "ὰ",
+ "ὲ": "ὲ",
+ "ὴ": "ὴ",
+ "ὶ": "ὶ",
+ "ὸ": "ὸ",
+ "ὺ": "ὺ",
+ "ὼ": "ὼ",
+ "ᾀ": "ᾀ",
+ "ᾁ": "ᾁ",
+ "ᾂ": "ᾂ",
+ "ᾃ": "ᾃ",
+ "ᾄ": "ᾄ",
+ "ᾅ": "ᾅ",
+ "ᾆ": "ᾆ",
+ "ᾇ": "ᾇ",
+ "ᾈ": "ᾈ",
+ "ᾉ": "ᾉ",
+ "ᾊ": "ᾊ",
+ "ᾋ": "ᾋ",
+ "ᾌ": "ᾌ",
+ "ᾍ": "ᾍ",
+ "ᾎ": "ᾎ",
+ "ᾏ": "ᾏ",
+ "ᾐ": "ᾐ",
+ "ᾑ": "ᾑ",
+ "ᾒ": "ᾒ",
+ "ᾓ": "ᾓ",
+ "ᾔ": "ᾔ",
+ "ᾕ": "ᾕ",
+ "ᾖ": "ᾖ",
+ "ᾗ": "ᾗ",
+ "ᾘ": "ᾘ",
+ "ᾙ": "ᾙ",
+ "ᾚ": "ᾚ",
+ "ᾛ": "ᾛ",
+ "ᾜ": "ᾜ",
+ "ᾝ": "ᾝ",
+ "ᾞ": "ᾞ",
+ "ᾟ": "ᾟ",
+ "ᾠ": "ᾠ",
+ "ᾡ": "ᾡ",
+ "ᾢ": "ᾢ",
+ "ᾣ": "ᾣ",
+ "ᾤ": "ᾤ",
+ "ᾥ": "ᾥ",
+ "ᾦ": "ᾦ",
+ "ᾧ": "ᾧ",
+ "ᾨ": "ᾨ",
+ "ᾩ": "ᾩ",
+ "ᾪ": "ᾪ",
+ "ᾫ": "ᾫ",
+ "ᾬ": "ᾬ",
+ "ᾭ": "ᾭ",
+ "ᾮ": "ᾮ",
+ "ᾯ": "ᾯ",
+ "ᾰ": "ᾰ",
+ "ᾱ": "ᾱ",
+ "ᾲ": "ᾲ",
+ "ᾳ": "ᾳ",
+ "ᾴ": "ᾴ",
+ "ᾶ": "ᾶ",
+ "ᾷ": "ᾷ",
+ "Ᾰ": "Ᾰ",
+ "Ᾱ": "Ᾱ",
+ "Ὰ": "Ὰ",
+ "ᾼ": "ᾼ",
+ "῁": "῁",
+ "ῂ": "ῂ",
+ "ῃ": "ῃ",
+ "ῄ": "ῄ",
+ "ῆ": "ῆ",
+ "ῇ": "ῇ",
+ "Ὲ": "Ὲ",
+ "Ὴ": "Ὴ",
+ "ῌ": "ῌ",
+ "῍": "῍",
+ "῎": "῎",
+ "῏": "῏",
+ "ῐ": "ῐ",
+ "ῑ": "ῑ",
+ "ῒ": "ῒ",
+ "ῖ": "ῖ",
+ "ῗ": "ῗ",
+ "Ῐ": "Ῐ",
+ "Ῑ": "Ῑ",
+ "Ὶ": "Ὶ",
+ "῝": "῝",
+ "῞": "῞",
+ "῟": "῟",
+ "ῠ": "ῠ",
+ "ῡ": "ῡ",
+ "ῢ": "ῢ",
+ "ῤ": "ῤ",
+ "ῥ": "ῥ",
+ "ῦ": "ῦ",
+ "ῧ": "ῧ",
+ "Ῠ": "Ῠ",
+ "Ῡ": "Ῡ",
+ "Ὺ": "Ὺ",
+ "Ῥ": "Ῥ",
+ "῭": "῭",
+ "ῲ": "ῲ",
+ "ῳ": "ῳ",
+ "ῴ": "ῴ",
+ "ῶ": "ῶ",
+ "ῷ": "ῷ",
+ "Ὸ": "Ὸ",
+ "Ὼ": "Ὼ",
+ "ῼ": "ῼ",
+ "↚": "↚",
+ "↛": "↛",
+ "↮": "↮",
+ "⇍": "⇍",
+ "⇎": "⇎",
+ "⇏": "⇏",
+ "∄": "∄",
+ "∉": "∉",
+ "∌": "∌",
+ "∤": "∤",
+ "∦": "∦",
+ "≁": "≁",
+ "≄": "≄",
+ "≇": "≇",
+ "≉": "≉",
+ "≠": "≠",
+ "≢": "≢",
+ "≭": "≭",
+ "≮": "≮",
+ "≯": "≯",
+ "≰": "≰",
+ "≱": "≱",
+ "≴": "≴",
+ "≵": "≵",
+ "≸": "≸",
+ "≹": "≹",
+ "⊀": "⊀",
+ "⊁": "⊁",
+ "⊄": "⊄",
+ "⊅": "⊅",
+ "⊈": "⊈",
+ "⊉": "⊉",
+ "⊬": "⊬",
+ "⊭": "⊭",
+ "⊮": "⊮",
+ "⊯": "⊯",
+ "⋠": "⋠",
+ "⋡": "⋡",
+ "⋢": "⋢",
+ "⋣": "⋣",
+ "⋪": "⋪",
+ "⋫": "⋫",
+ "⋬": "⋬",
+ "⋭": "⋭",
+ "が": "が",
+ "ぎ": "ぎ",
+ "ぐ": "ぐ",
+ "げ": "げ",
+ "ご": "ご",
+ "ざ": "ざ",
+ "じ": "じ",
+ "ず": "ず",
+ "ぜ": "ぜ",
+ "ぞ": "ぞ",
+ "だ": "だ",
+ "ぢ": "ぢ",
+ "づ": "づ",
+ "で": "で",
+ "ど": "ど",
+ "ば": "ば",
+ "ぱ": "ぱ",
+ "び": "び",
+ "ぴ": "ぴ",
+ "ぶ": "ぶ",
+ "ぷ": "ぷ",
+ "べ": "べ",
+ "ぺ": "ぺ",
+ "ぼ": "ぼ",
+ "ぽ": "ぽ",
+ "ゔ": "ゔ",
+ "ゞ": "ゞ",
+ "ガ": "ガ",
+ "ギ": "ギ",
+ "グ": "グ",
+ "ゲ": "ゲ",
+ "ゴ": "ゴ",
+ "ザ": "ザ",
+ "ジ": "ジ",
+ "ズ": "ズ",
+ "ゼ": "ゼ",
+ "ゾ": "ゾ",
+ "ダ": "ダ",
+ "ヂ": "ヂ",
+ "ヅ": "ヅ",
+ "デ": "デ",
+ "ド": "ド",
+ "バ": "バ",
+ "パ": "パ",
+ "ビ": "ビ",
+ "ピ": "ピ",
+ "ブ": "ブ",
+ "プ": "プ",
+ "ベ": "ベ",
+ "ペ": "ペ",
+ "ボ": "ボ",
+ "ポ": "ポ",
+ "ヴ": "ヴ",
+ "ヷ": "ヷ",
+ "ヸ": "ヸ",
+ "ヹ": "ヹ",
+ "ヺ": "ヺ",
+ "ヾ": "ヾ",
+ "𑂚": "𑂚",
+ "𑂜": "𑂜",
+ "𑂫": "𑂫",
+ "𑄮": "𑄮",
+ "𑄯": "𑄯",
+ "𑍋": "𑍋",
+ "𑍌": "𑍌",
+ "𑒻": "𑒻",
+ "𑒼": "𑒼",
+ "𑒾": "𑒾",
+ "𑖺": "𑖺",
+ "𑖻": "𑖻"
+}
\ No newline at end of file
diff --git a/js/data/locale/nfkd/Geok.json b/js/data/locale/nfkd/Geok.json
deleted file mode 100644
index 5719bf0122..0000000000
--- a/js/data/locale/nfkd/Geok.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "ჼ": "ნ"
-}
\ No newline at end of file
diff --git a/js/data/locale/normdata.json b/js/data/locale/normdata.json
deleted file mode 100644
index 47276470c8..0000000000
--- a/js/data/locale/normdata.json
+++ /dev/null
@@ -1,1760 +0,0 @@
-{
- "nfc": {
- "À": "À",
- "Á": "Á",
- "Â": "Â",
- "Ã": "Ã",
- "Ä": "Ä",
- "Å": "Å",
- "Ç": "Ç",
- "È": "È",
- "É": "É",
- "Ê": "Ê",
- "Ë": "Ë",
- "Ì": "Ì",
- "Í": "Í",
- "Î": "Î",
- "Ï": "Ï",
- "Ñ": "Ñ",
- "Ò": "Ò",
- "Ó": "Ó",
- "Ô": "Ô",
- "Õ": "Õ",
- "Ö": "Ö",
- "Ù": "Ù",
- "Ú": "Ú",
- "Û": "Û",
- "Ü": "Ü",
- "Ý": "Ý",
- "à": "à",
- "á": "á",
- "â": "â",
- "ã": "ã",
- "ä": "ä",
- "å": "å",
- "ç": "ç",
- "è": "è",
- "é": "é",
- "ê": "ê",
- "ë": "ë",
- "ì": "ì",
- "í": "í",
- "î": "î",
- "ï": "ï",
- "ñ": "ñ",
- "ò": "ò",
- "ó": "ó",
- "ô": "ô",
- "õ": "õ",
- "ö": "ö",
- "ù": "ù",
- "ú": "ú",
- "û": "û",
- "ü": "ü",
- "ý": "ý",
- "ÿ": "ÿ",
- "Ā": "Ā",
- "ā": "ā",
- "Ă": "Ă",
- "ă": "ă",
- "Ą": "Ą",
- "ą": "ą",
- "Ć": "Ć",
- "ć": "ć",
- "Ĉ": "Ĉ",
- "ĉ": "ĉ",
- "Ċ": "Ċ",
- "ċ": "ċ",
- "Č": "Č",
- "č": "č",
- "Ď": "Ď",
- "ď": "ď",
- "Ē": "Ē",
- "ē": "ē",
- "Ĕ": "Ĕ",
- "ĕ": "ĕ",
- "Ė": "Ė",
- "ė": "ė",
- "Ę": "Ę",
- "ę": "ę",
- "Ě": "Ě",
- "ě": "ě",
- "Ĝ": "Ĝ",
- "ĝ": "ĝ",
- "Ğ": "Ğ",
- "ğ": "ğ",
- "Ġ": "Ġ",
- "ġ": "ġ",
- "Ģ": "Ģ",
- "ģ": "ģ",
- "Ĥ": "Ĥ",
- "ĥ": "ĥ",
- "Ĩ": "Ĩ",
- "ĩ": "ĩ",
- "Ī": "Ī",
- "ī": "ī",
- "Ĭ": "Ĭ",
- "ĭ": "ĭ",
- "Į": "Į",
- "į": "į",
- "İ": "İ",
- "Ĵ": "Ĵ",
- "ĵ": "ĵ",
- "Ķ": "Ķ",
- "ķ": "ķ",
- "Ĺ": "Ĺ",
- "ĺ": "ĺ",
- "Ļ": "Ļ",
- "ļ": "ļ",
- "Ľ": "Ľ",
- "ľ": "ľ",
- "Ń": "Ń",
- "ń": "ń",
- "Ņ": "Ņ",
- "ņ": "ņ",
- "Ň": "Ň",
- "ň": "ň",
- "Ō": "Ō",
- "ō": "ō",
- "Ŏ": "Ŏ",
- "ŏ": "ŏ",
- "Ő": "Ő",
- "ő": "ő",
- "Ŕ": "Ŕ",
- "ŕ": "ŕ",
- "Ŗ": "Ŗ",
- "ŗ": "ŗ",
- "Ř": "Ř",
- "ř": "ř",
- "Ś": "Ś",
- "ś": "ś",
- "Ŝ": "Ŝ",
- "ŝ": "ŝ",
- "Ş": "Ş",
- "ş": "ş",
- "Š": "Š",
- "š": "š",
- "Ţ": "Ţ",
- "ţ": "ţ",
- "Ť": "Ť",
- "ť": "ť",
- "Ũ": "Ũ",
- "ũ": "ũ",
- "Ū": "Ū",
- "ū": "ū",
- "Ŭ": "Ŭ",
- "ŭ": "ŭ",
- "Ů": "Ů",
- "ů": "ů",
- "Ű": "Ű",
- "ű": "ű",
- "Ų": "Ų",
- "ų": "ų",
- "Ŵ": "Ŵ",
- "ŵ": "ŵ",
- "Ŷ": "Ŷ",
- "ŷ": "ŷ",
- "Ÿ": "Ÿ",
- "Ź": "Ź",
- "ź": "ź",
- "Ż": "Ż",
- "ż": "ż",
- "Ž": "Ž",
- "ž": "ž",
- "Ơ": "Ơ",
- "ơ": "ơ",
- "Ư": "Ư",
- "ư": "ư",
- "Ǎ": "Ǎ",
- "ǎ": "ǎ",
- "Ǐ": "Ǐ",
- "ǐ": "ǐ",
- "Ǒ": "Ǒ",
- "ǒ": "ǒ",
- "Ǔ": "Ǔ",
- "ǔ": "ǔ",
- "Ǖ": "Ǖ",
- "ǖ": "ǖ",
- "Ǘ": "Ǘ",
- "ǘ": "ǘ",
- "Ǚ": "Ǚ",
- "ǚ": "ǚ",
- "Ǜ": "Ǜ",
- "ǜ": "ǜ",
- "Ǟ": "Ǟ",
- "ǟ": "ǟ",
- "Ǡ": "Ǡ",
- "ǡ": "ǡ",
- "Ǣ": "Ǣ",
- "ǣ": "ǣ",
- "Ǧ": "Ǧ",
- "ǧ": "ǧ",
- "Ǩ": "Ǩ",
- "ǩ": "ǩ",
- "Ǫ": "Ǫ",
- "ǫ": "ǫ",
- "Ǭ": "Ǭ",
- "ǭ": "ǭ",
- "Ǯ": "Ǯ",
- "ǯ": "ǯ",
- "ǰ": "ǰ",
- "Ǵ": "Ǵ",
- "ǵ": "ǵ",
- "Ǹ": "Ǹ",
- "ǹ": "ǹ",
- "Ǻ": "Ǻ",
- "ǻ": "ǻ",
- "Ǽ": "Ǽ",
- "ǽ": "ǽ",
- "Ǿ": "Ǿ",
- "ǿ": "ǿ",
- "Ȁ": "Ȁ",
- "ȁ": "ȁ",
- "Ȃ": "Ȃ",
- "ȃ": "ȃ",
- "Ȅ": "Ȅ",
- "ȅ": "ȅ",
- "Ȇ": "Ȇ",
- "ȇ": "ȇ",
- "Ȉ": "Ȉ",
- "ȉ": "ȉ",
- "Ȋ": "Ȋ",
- "ȋ": "ȋ",
- "Ȍ": "Ȍ",
- "ȍ": "ȍ",
- "Ȏ": "Ȏ",
- "ȏ": "ȏ",
- "Ȑ": "Ȑ",
- "ȑ": "ȑ",
- "Ȓ": "Ȓ",
- "ȓ": "ȓ",
- "Ȕ": "Ȕ",
- "ȕ": "ȕ",
- "Ȗ": "Ȗ",
- "ȗ": "ȗ",
- "Ș": "Ș",
- "ș": "ș",
- "Ț": "Ț",
- "ț": "ț",
- "Ȟ": "Ȟ",
- "ȟ": "ȟ",
- "Ȧ": "Ȧ",
- "ȧ": "ȧ",
- "Ȩ": "Ȩ",
- "ȩ": "ȩ",
- "Ȫ": "Ȫ",
- "ȫ": "ȫ",
- "Ȭ": "Ȭ",
- "ȭ": "ȭ",
- "Ȯ": "Ȯ",
- "ȯ": "ȯ",
- "Ȱ": "Ȱ",
- "ȱ": "ȱ",
- "Ȳ": "Ȳ",
- "ȳ": "ȳ",
- "΅": "΅",
- "Ά": "Ά",
- "Έ": "Έ",
- "Ή": "Ή",
- "Ί": "Ί",
- "Ό": "Ό",
- "Ύ": "Ύ",
- "Ώ": "Ώ",
- "ΐ": "ΐ",
- "Ϊ": "Ϊ",
- "Ϋ": "Ϋ",
- "ά": "ά",
- "έ": "έ",
- "ή": "ή",
- "ί": "ί",
- "ΰ": "ΰ",
- "ϊ": "ϊ",
- "ϋ": "ϋ",
- "ό": "ό",
- "ύ": "ύ",
- "ώ": "ώ",
- "ϓ": "ϓ",
- "ϔ": "ϔ",
- "Ѐ": "Ѐ",
- "Ё": "Ё",
- "Ѓ": "Ѓ",
- "Ї": "Ї",
- "Ќ": "Ќ",
- "Ѝ": "Ѝ",
- "Ў": "Ў",
- "Й": "Й",
- "й": "й",
- "ѐ": "ѐ",
- "ё": "ё",
- "ѓ": "ѓ",
- "ї": "ї",
- "ќ": "ќ",
- "ѝ": "ѝ",
- "ў": "ў",
- "Ѷ": "Ѷ",
- "ѷ": "ѷ",
- "Ӂ": "Ӂ",
- "ӂ": "ӂ",
- "Ӑ": "Ӑ",
- "ӑ": "ӑ",
- "Ӓ": "Ӓ",
- "ӓ": "ӓ",
- "Ӗ": "Ӗ",
- "ӗ": "ӗ",
- "Ӛ": "Ӛ",
- "ӛ": "ӛ",
- "Ӝ": "Ӝ",
- "ӝ": "ӝ",
- "Ӟ": "Ӟ",
- "ӟ": "ӟ",
- "Ӣ": "Ӣ",
- "ӣ": "ӣ",
- "Ӥ": "Ӥ",
- "ӥ": "ӥ",
- "Ӧ": "Ӧ",
- "ӧ": "ӧ",
- "Ӫ": "Ӫ",
- "ӫ": "ӫ",
- "Ӭ": "Ӭ",
- "ӭ": "ӭ",
- "Ӯ": "Ӯ",
- "ӯ": "ӯ",
- "Ӱ": "Ӱ",
- "ӱ": "ӱ",
- "Ӳ": "Ӳ",
- "ӳ": "ӳ",
- "Ӵ": "Ӵ",
- "ӵ": "ӵ",
- "Ӹ": "Ӹ",
- "ӹ": "ӹ",
- "آ": "آ",
- "أ": "أ",
- "ؤ": "ؤ",
- "إ": "إ",
- "ئ": "ئ",
- "ۀ": "ۀ",
- "ۂ": "ۂ",
- "ۓ": "ۓ",
- "ऩ": "ऩ",
- "ऱ": "ऱ",
- "ऴ": "ऴ",
- "ো": "ো",
- "ৌ": "ৌ",
- "ୈ": "ୈ",
- "ୋ": "ୋ",
- "ୌ": "ୌ",
- "ஔ": "ஔ",
- "ொ": "ொ",
- "ோ": "ோ",
- "ௌ": "ௌ",
- "ై": "ై",
- "ೀ": "ೀ",
- "ೇ": "ೇ",
- "ೈ": "ೈ",
- "ೊ": "ೊ",
- "ೋ": "ೋ",
- "ൊ": "ൊ",
- "ോ": "ോ",
- "ൌ": "ൌ",
- "ේ": "ේ",
- "ො": "ො",
- "ෝ": "ෝ",
- "ෞ": "ෞ",
- "ဦ": "ဦ",
- "ᬆ": "ᬆ",
- "ᬈ": "ᬈ",
- "ᬊ": "ᬊ",
- "ᬌ": "ᬌ",
- "ᬎ": "ᬎ",
- "ᬒ": "ᬒ",
- "ᬻ": "ᬻ",
- "ᬽ": "ᬽ",
- "ᭀ": "ᭀ",
- "ᭁ": "ᭁ",
- "ᭃ": "ᭃ",
- "Ḁ": "Ḁ",
- "ḁ": "ḁ",
- "Ḃ": "Ḃ",
- "ḃ": "ḃ",
- "Ḅ": "Ḅ",
- "ḅ": "ḅ",
- "Ḇ": "Ḇ",
- "ḇ": "ḇ",
- "Ḉ": "Ḉ",
- "ḉ": "ḉ",
- "Ḋ": "Ḋ",
- "ḋ": "ḋ",
- "Ḍ": "Ḍ",
- "ḍ": "ḍ",
- "Ḏ": "Ḏ",
- "ḏ": "ḏ",
- "Ḑ": "Ḑ",
- "ḑ": "ḑ",
- "Ḓ": "Ḓ",
- "ḓ": "ḓ",
- "Ḕ": "Ḕ",
- "ḕ": "ḕ",
- "Ḗ": "Ḗ",
- "ḗ": "ḗ",
- "Ḙ": "Ḙ",
- "ḙ": "ḙ",
- "Ḛ": "Ḛ",
- "ḛ": "ḛ",
- "Ḝ": "Ḝ",
- "ḝ": "ḝ",
- "Ḟ": "Ḟ",
- "ḟ": "ḟ",
- "Ḡ": "Ḡ",
- "ḡ": "ḡ",
- "Ḣ": "Ḣ",
- "ḣ": "ḣ",
- "Ḥ": "Ḥ",
- "ḥ": "ḥ",
- "Ḧ": "Ḧ",
- "ḧ": "ḧ",
- "Ḩ": "Ḩ",
- "ḩ": "ḩ",
- "Ḫ": "Ḫ",
- "ḫ": "ḫ",
- "Ḭ": "Ḭ",
- "ḭ": "ḭ",
- "Ḯ": "Ḯ",
- "ḯ": "ḯ",
- "Ḱ": "Ḱ",
- "ḱ": "ḱ",
- "Ḳ": "Ḳ",
- "ḳ": "ḳ",
- "Ḵ": "Ḵ",
- "ḵ": "ḵ",
- "Ḷ": "Ḷ",
- "ḷ": "ḷ",
- "Ḹ": "Ḹ",
- "ḹ": "ḹ",
- "Ḻ": "Ḻ",
- "ḻ": "ḻ",
- "Ḽ": "Ḽ",
- "ḽ": "ḽ",
- "Ḿ": "Ḿ",
- "ḿ": "ḿ",
- "Ṁ": "Ṁ",
- "ṁ": "ṁ",
- "Ṃ": "Ṃ",
- "ṃ": "ṃ",
- "Ṅ": "Ṅ",
- "ṅ": "ṅ",
- "Ṇ": "Ṇ",
- "ṇ": "ṇ",
- "Ṉ": "Ṉ",
- "ṉ": "ṉ",
- "Ṋ": "Ṋ",
- "ṋ": "ṋ",
- "Ṍ": "Ṍ",
- "ṍ": "ṍ",
- "Ṏ": "Ṏ",
- "ṏ": "ṏ",
- "Ṑ": "Ṑ",
- "ṑ": "ṑ",
- "Ṓ": "Ṓ",
- "ṓ": "ṓ",
- "Ṕ": "Ṕ",
- "ṕ": "ṕ",
- "Ṗ": "Ṗ",
- "ṗ": "ṗ",
- "Ṙ": "Ṙ",
- "ṙ": "ṙ",
- "Ṛ": "Ṛ",
- "ṛ": "ṛ",
- "Ṝ": "Ṝ",
- "ṝ": "ṝ",
- "Ṟ": "Ṟ",
- "ṟ": "ṟ",
- "Ṡ": "Ṡ",
- "ṡ": "ṡ",
- "Ṣ": "Ṣ",
- "ṣ": "ṣ",
- "Ṥ": "Ṥ",
- "ṥ": "ṥ",
- "Ṧ": "Ṧ",
- "ṧ": "ṧ",
- "Ṩ": "Ṩ",
- "ṩ": "ṩ",
- "Ṫ": "Ṫ",
- "ṫ": "ṫ",
- "Ṭ": "Ṭ",
- "ṭ": "ṭ",
- "Ṯ": "Ṯ",
- "ṯ": "ṯ",
- "Ṱ": "Ṱ",
- "ṱ": "ṱ",
- "Ṳ": "Ṳ",
- "ṳ": "ṳ",
- "Ṵ": "Ṵ",
- "ṵ": "ṵ",
- "Ṷ": "Ṷ",
- "ṷ": "ṷ",
- "Ṹ": "Ṹ",
- "ṹ": "ṹ",
- "Ṻ": "Ṻ",
- "ṻ": "ṻ",
- "Ṽ": "Ṽ",
- "ṽ": "ṽ",
- "Ṿ": "Ṿ",
- "ṿ": "ṿ",
- "Ẁ": "Ẁ",
- "ẁ": "ẁ",
- "Ẃ": "Ẃ",
- "ẃ": "ẃ",
- "Ẅ": "Ẅ",
- "ẅ": "ẅ",
- "Ẇ": "Ẇ",
- "ẇ": "ẇ",
- "Ẉ": "Ẉ",
- "ẉ": "ẉ",
- "Ẋ": "Ẋ",
- "ẋ": "ẋ",
- "Ẍ": "Ẍ",
- "ẍ": "ẍ",
- "Ẏ": "Ẏ",
- "ẏ": "ẏ",
- "Ẑ": "Ẑ",
- "ẑ": "ẑ",
- "Ẓ": "Ẓ",
- "ẓ": "ẓ",
- "Ẕ": "Ẕ",
- "ẕ": "ẕ",
- "ẖ": "ẖ",
- "ẗ": "ẗ",
- "ẘ": "ẘ",
- "ẙ": "ẙ",
- "ẛ": "ẛ",
- "Ạ": "Ạ",
- "ạ": "ạ",
- "Ả": "Ả",
- "ả": "ả",
- "Ấ": "Ấ",
- "ấ": "ấ",
- "Ầ": "Ầ",
- "ầ": "ầ",
- "Ẩ": "Ẩ",
- "ẩ": "ẩ",
- "Ẫ": "Ẫ",
- "ẫ": "ẫ",
- "Ậ": "Ậ",
- "ậ": "ậ",
- "Ắ": "Ắ",
- "ắ": "ắ",
- "Ằ": "Ằ",
- "ằ": "ằ",
- "Ẳ": "Ẳ",
- "ẳ": "ẳ",
- "Ẵ": "Ẵ",
- "ẵ": "ẵ",
- "Ặ": "Ặ",
- "ặ": "ặ",
- "Ẹ": "Ẹ",
- "ẹ": "ẹ",
- "Ẻ": "Ẻ",
- "ẻ": "ẻ",
- "Ẽ": "Ẽ",
- "ẽ": "ẽ",
- "Ế": "Ế",
- "ế": "ế",
- "Ề": "Ề",
- "ề": "ề",
- "Ể": "Ể",
- "ể": "ể",
- "Ễ": "Ễ",
- "ễ": "ễ",
- "Ệ": "Ệ",
- "ệ": "ệ",
- "Ỉ": "Ỉ",
- "ỉ": "ỉ",
- "Ị": "Ị",
- "ị": "ị",
- "Ọ": "Ọ",
- "ọ": "ọ",
- "Ỏ": "Ỏ",
- "ỏ": "ỏ",
- "Ố": "Ố",
- "ố": "ố",
- "Ồ": "Ồ",
- "ồ": "ồ",
- "Ổ": "Ổ",
- "ổ": "ổ",
- "Ỗ": "Ỗ",
- "ỗ": "ỗ",
- "Ộ": "Ộ",
- "ộ": "ộ",
- "Ớ": "Ớ",
- "ớ": "ớ",
- "Ờ": "Ờ",
- "ờ": "ờ",
- "Ở": "Ở",
- "ở": "ở",
- "Ỡ": "Ỡ",
- "ỡ": "ỡ",
- "Ợ": "Ợ",
- "ợ": "ợ",
- "Ụ": "Ụ",
- "ụ": "ụ",
- "Ủ": "Ủ",
- "ủ": "ủ",
- "Ứ": "Ứ",
- "ứ": "ứ",
- "Ừ": "Ừ",
- "ừ": "ừ",
- "Ử": "Ử",
- "ử": "ử",
- "Ữ": "Ữ",
- "ữ": "ữ",
- "Ự": "Ự",
- "ự": "ự",
- "Ỳ": "Ỳ",
- "ỳ": "ỳ",
- "Ỵ": "Ỵ",
- "ỵ": "ỵ",
- "Ỷ": "Ỷ",
- "ỷ": "ỷ",
- "Ỹ": "Ỹ",
- "ỹ": "ỹ",
- "ἀ": "ἀ",
- "ἁ": "ἁ",
- "ἂ": "ἂ",
- "ἃ": "ἃ",
- "ἄ": "ἄ",
- "ἅ": "ἅ",
- "ἆ": "ἆ",
- "ἇ": "ἇ",
- "Ἀ": "Ἀ",
- "Ἁ": "Ἁ",
- "Ἂ": "Ἂ",
- "Ἃ": "Ἃ",
- "Ἄ": "Ἄ",
- "Ἅ": "Ἅ",
- "Ἆ": "Ἆ",
- "Ἇ": "Ἇ",
- "ἐ": "ἐ",
- "ἑ": "ἑ",
- "ἒ": "ἒ",
- "ἓ": "ἓ",
- "ἔ": "ἔ",
- "ἕ": "ἕ",
- "Ἐ": "Ἐ",
- "Ἑ": "Ἑ",
- "Ἒ": "Ἒ",
- "Ἓ": "Ἓ",
- "Ἔ": "Ἔ",
- "Ἕ": "Ἕ",
- "ἠ": "ἠ",
- "ἡ": "ἡ",
- "ἢ": "ἢ",
- "ἣ": "ἣ",
- "ἤ": "ἤ",
- "ἥ": "ἥ",
- "ἦ": "ἦ",
- "ἧ": "ἧ",
- "Ἠ": "Ἠ",
- "Ἡ": "Ἡ",
- "Ἢ": "Ἢ",
- "Ἣ": "Ἣ",
- "Ἤ": "Ἤ",
- "Ἥ": "Ἥ",
- "Ἦ": "Ἦ",
- "Ἧ": "Ἧ",
- "ἰ": "ἰ",
- "ἱ": "ἱ",
- "ἲ": "ἲ",
- "ἳ": "ἳ",
- "ἴ": "ἴ",
- "ἵ": "ἵ",
- "ἶ": "ἶ",
- "ἷ": "ἷ",
- "Ἰ": "Ἰ",
- "Ἱ": "Ἱ",
- "Ἲ": "Ἲ",
- "Ἳ": "Ἳ",
- "Ἴ": "Ἴ",
- "Ἵ": "Ἵ",
- "Ἶ": "Ἶ",
- "Ἷ": "Ἷ",
- "ὀ": "ὀ",
- "ὁ": "ὁ",
- "ὂ": "ὂ",
- "ὃ": "ὃ",
- "ὄ": "ὄ",
- "ὅ": "ὅ",
- "Ὀ": "Ὀ",
- "Ὁ": "Ὁ",
- "Ὂ": "Ὂ",
- "Ὃ": "Ὃ",
- "Ὄ": "Ὄ",
- "Ὅ": "Ὅ",
- "ὐ": "ὐ",
- "ὑ": "ὑ",
- "ὒ": "ὒ",
- "ὓ": "ὓ",
- "ὔ": "ὔ",
- "ὕ": "ὕ",
- "ὖ": "ὖ",
- "ὗ": "ὗ",
- "Ὑ": "Ὑ",
- "Ὓ": "Ὓ",
- "Ὕ": "Ὕ",
- "Ὗ": "Ὗ",
- "ὠ": "ὠ",
- "ὡ": "ὡ",
- "ὢ": "ὢ",
- "ὣ": "ὣ",
- "ὤ": "ὤ",
- "ὥ": "ὥ",
- "ὦ": "ὦ",
- "ὧ": "ὧ",
- "Ὠ": "Ὠ",
- "Ὡ": "Ὡ",
- "Ὢ": "Ὢ",
- "Ὣ": "Ὣ",
- "Ὤ": "Ὤ",
- "Ὥ": "Ὥ",
- "Ὦ": "Ὦ",
- "Ὧ": "Ὧ",
- "ὰ": "ὰ",
- "ὲ": "ὲ",
- "ὴ": "ὴ",
- "ὶ": "ὶ",
- "ὸ": "ὸ",
- "ὺ": "ὺ",
- "ὼ": "ὼ",
- "ᾀ": "ᾀ",
- "ᾁ": "ᾁ",
- "ᾂ": "ᾂ",
- "ᾃ": "ᾃ",
- "ᾄ": "ᾄ",
- "ᾅ": "ᾅ",
- "ᾆ": "ᾆ",
- "ᾇ": "ᾇ",
- "ᾈ": "ᾈ",
- "ᾉ": "ᾉ",
- "ᾊ": "ᾊ",
- "ᾋ": "ᾋ",
- "ᾌ": "ᾌ",
- "ᾍ": "ᾍ",
- "ᾎ": "ᾎ",
- "ᾏ": "ᾏ",
- "ᾐ": "ᾐ",
- "ᾑ": "ᾑ",
- "ᾒ": "ᾒ",
- "ᾓ": "ᾓ",
- "ᾔ": "ᾔ",
- "ᾕ": "ᾕ",
- "ᾖ": "ᾖ",
- "ᾗ": "ᾗ",
- "ᾘ": "ᾘ",
- "ᾙ": "ᾙ",
- "ᾚ": "ᾚ",
- "ᾛ": "ᾛ",
- "ᾜ": "ᾜ",
- "ᾝ": "ᾝ",
- "ᾞ": "ᾞ",
- "ᾟ": "ᾟ",
- "ᾠ": "ᾠ",
- "ᾡ": "ᾡ",
- "ᾢ": "ᾢ",
- "ᾣ": "ᾣ",
- "ᾤ": "ᾤ",
- "ᾥ": "ᾥ",
- "ᾦ": "ᾦ",
- "ᾧ": "ᾧ",
- "ᾨ": "ᾨ",
- "ᾩ": "ᾩ",
- "ᾪ": "ᾪ",
- "ᾫ": "ᾫ",
- "ᾬ": "ᾬ",
- "ᾭ": "ᾭ",
- "ᾮ": "ᾮ",
- "ᾯ": "ᾯ",
- "ᾰ": "ᾰ",
- "ᾱ": "ᾱ",
- "ᾲ": "ᾲ",
- "ᾳ": "ᾳ",
- "ᾴ": "ᾴ",
- "ᾶ": "ᾶ",
- "ᾷ": "ᾷ",
- "Ᾰ": "Ᾰ",
- "Ᾱ": "Ᾱ",
- "Ὰ": "Ὰ",
- "ᾼ": "ᾼ",
- "῁": "῁",
- "ῂ": "ῂ",
- "ῃ": "ῃ",
- "ῄ": "ῄ",
- "ῆ": "ῆ",
- "ῇ": "ῇ",
- "Ὲ": "Ὲ",
- "Ὴ": "Ὴ",
- "ῌ": "ῌ",
- "῍": "῍",
- "῎": "῎",
- "῏": "῏",
- "ῐ": "ῐ",
- "ῑ": "ῑ",
- "ῒ": "ῒ",
- "ῖ": "ῖ",
- "ῗ": "ῗ",
- "Ῐ": "Ῐ",
- "Ῑ": "Ῑ",
- "Ὶ": "Ὶ",
- "῝": "῝",
- "῞": "῞",
- "῟": "῟",
- "ῠ": "ῠ",
- "ῡ": "ῡ",
- "ῢ": "ῢ",
- "ῤ": "ῤ",
- "ῥ": "ῥ",
- "ῦ": "ῦ",
- "ῧ": "ῧ",
- "Ῠ": "Ῠ",
- "Ῡ": "Ῡ",
- "Ὺ": "Ὺ",
- "Ῥ": "Ῥ",
- "῭": "῭",
- "ῲ": "ῲ",
- "ῳ": "ῳ",
- "ῴ": "ῴ",
- "ῶ": "ῶ",
- "ῷ": "ῷ",
- "Ὸ": "Ὸ",
- "Ὼ": "Ὼ",
- "ῼ": "ῼ",
- "↚": "↚",
- "↛": "↛",
- "↮": "↮",
- "⇍": "⇍",
- "⇎": "⇎",
- "⇏": "⇏",
- "∄": "∄",
- "∉": "∉",
- "∌": "∌",
- "∤": "∤",
- "∦": "∦",
- "≁": "≁",
- "≄": "≄",
- "≇": "≇",
- "≉": "≉",
- "≠": "≠",
- "≢": "≢",
- "≭": "≭",
- "≮": "≮",
- "≯": "≯",
- "≰": "≰",
- "≱": "≱",
- "≴": "≴",
- "≵": "≵",
- "≸": "≸",
- "≹": "≹",
- "⊀": "⊀",
- "⊁": "⊁",
- "⊄": "⊄",
- "⊅": "⊅",
- "⊈": "⊈",
- "⊉": "⊉",
- "⊬": "⊬",
- "⊭": "⊭",
- "⊮": "⊮",
- "⊯": "⊯",
- "⋠": "⋠",
- "⋡": "⋡",
- "⋢": "⋢",
- "⋣": "⋣",
- "⋪": "⋪",
- "⋫": "⋫",
- "⋬": "⋬",
- "⋭": "⋭",
- "が": "が",
- "ぎ": "ぎ",
- "ぐ": "ぐ",
- "げ": "げ",
- "ご": "ご",
- "ざ": "ざ",
- "じ": "じ",
- "ず": "ず",
- "ぜ": "ぜ",
- "ぞ": "ぞ",
- "だ": "だ",
- "ぢ": "ぢ",
- "づ": "づ",
- "で": "で",
- "ど": "ど",
- "ば": "ば",
- "ぱ": "ぱ",
- "び": "び",
- "ぴ": "ぴ",
- "ぶ": "ぶ",
- "ぷ": "ぷ",
- "べ": "べ",
- "ぺ": "ぺ",
- "ぼ": "ぼ",
- "ぽ": "ぽ",
- "ゔ": "ゔ",
- "ゞ": "ゞ",
- "ガ": "ガ",
- "ギ": "ギ",
- "グ": "グ",
- "ゲ": "ゲ",
- "ゴ": "ゴ",
- "ザ": "ザ",
- "ジ": "ジ",
- "ズ": "ズ",
- "ゼ": "ゼ",
- "ゾ": "ゾ",
- "ダ": "ダ",
- "ヂ": "ヂ",
- "ヅ": "ヅ",
- "デ": "デ",
- "ド": "ド",
- "バ": "バ",
- "パ": "パ",
- "ビ": "ビ",
- "ピ": "ピ",
- "ブ": "ブ",
- "プ": "プ",
- "ベ": "ベ",
- "ペ": "ペ",
- "ボ": "ボ",
- "ポ": "ポ",
- "ヴ": "ヴ",
- "ヷ": "ヷ",
- "ヸ": "ヸ",
- "ヹ": "ヹ",
- "ヺ": "ヺ",
- "ヾ": "ヾ",
- "𑂚": "𑂚",
- "𑂜": "𑂜",
- "𑂫": "𑂫",
- "𑄮": "𑄮",
- "𑄯": "𑄯",
- "𑍋": "𑍋",
- "𑍌": "𑍌",
- "𑒻": "𑒻",
- "𑒼": "𑒼",
- "𑒾": "𑒾",
- "𑖺": "𑖺",
- "𑖻": "𑖻"
- },
- "ccc": {
- "̀": 230,
- "́": 230,
- "̂": 230,
- "̃": 230,
- "̄": 230,
- "̅": 230,
- "̆": 230,
- "̇": 230,
- "̈": 230,
- "̉": 230,
- "̊": 230,
- "̋": 230,
- "̌": 230,
- "̍": 230,
- "̎": 230,
- "̏": 230,
- "̐": 230,
- "̑": 230,
- "̒": 230,
- "̓": 230,
- "̔": 230,
- "̕": 232,
- "̖": 220,
- "̗": 220,
- "̘": 220,
- "̙": 220,
- "̚": 232,
- "̛": 216,
- "̜": 220,
- "̝": 220,
- "̞": 220,
- "̟": 220,
- "̠": 220,
- "̡": 202,
- "̢": 202,
- "̣": 220,
- "̤": 220,
- "̥": 220,
- "̦": 220,
- "̧": 202,
- "̨": 202,
- "̩": 220,
- "̪": 220,
- "̫": 220,
- "̬": 220,
- "̭": 220,
- "̮": 220,
- "̯": 220,
- "̰": 220,
- "̱": 220,
- "̲": 220,
- "̳": 220,
- "̴": 1,
- "̵": 1,
- "̶": 1,
- "̷": 1,
- "̸": 1,
- "̹": 220,
- "̺": 220,
- "̻": 220,
- "̼": 220,
- "̽": 230,
- "̾": 230,
- "̿": 230,
- "̀": 230,
- "́": 230,
- "͂": 230,
- "̓": 230,
- "̈́": 230,
- "ͅ": 240,
- "͆": 230,
- "͇": 220,
- "͈": 220,
- "͉": 220,
- "͊": 230,
- "͋": 230,
- "͌": 230,
- "͍": 220,
- "͎": 220,
- "͐": 230,
- "͑": 230,
- "͒": 230,
- "͓": 220,
- "͔": 220,
- "͕": 220,
- "͖": 220,
- "͗": 230,
- "͘": 232,
- "͙": 220,
- "͚": 220,
- "͛": 230,
- "͜": 233,
- "͝": 234,
- "͞": 234,
- "͟": 233,
- "͠": 234,
- "͡": 234,
- "͢": 233,
- "ͣ": 230,
- "ͤ": 230,
- "ͥ": 230,
- "ͦ": 230,
- "ͧ": 230,
- "ͨ": 230,
- "ͩ": 230,
- "ͪ": 230,
- "ͫ": 230,
- "ͬ": 230,
- "ͭ": 230,
- "ͮ": 230,
- "ͯ": 230,
- "҃": 230,
- "҄": 230,
- "҅": 230,
- "҆": 230,
- "҇": 230,
- "֑": 220,
- "֒": 230,
- "֓": 230,
- "֔": 230,
- "֕": 230,
- "֖": 220,
- "֗": 230,
- "֘": 230,
- "֙": 230,
- "֚": 222,
- "֛": 220,
- "֜": 230,
- "֝": 230,
- "֞": 230,
- "֟": 230,
- "֠": 230,
- "֡": 230,
- "֢": 220,
- "֣": 220,
- "֤": 220,
- "֥": 220,
- "֦": 220,
- "֧": 220,
- "֨": 230,
- "֩": 230,
- "֪": 220,
- "֫": 230,
- "֬": 230,
- "֭": 222,
- "֮": 228,
- "֯": 230,
- "ְ": 10,
- "ֱ": 11,
- "ֲ": 12,
- "ֳ": 13,
- "ִ": 14,
- "ֵ": 15,
- "ֶ": 16,
- "ַ": 17,
- "ָ": 18,
- "ֹ": 19,
- "ֺ": 19,
- "ֻ": 20,
- "ּ": 21,
- "ֽ": 22,
- "ֿ": 23,
- "ׁ": 24,
- "ׂ": 25,
- "ׄ": 230,
- "ׅ": 220,
- "ׇ": 18,
- "ؐ": 230,
- "ؑ": 230,
- "ؒ": 230,
- "ؓ": 230,
- "ؔ": 230,
- "ؕ": 230,
- "ؖ": 230,
- "ؗ": 230,
- "ؘ": 30,
- "ؙ": 31,
- "ؚ": 32,
- "ً": 27,
- "ٌ": 28,
- "ٍ": 29,
- "َ": 30,
- "ُ": 31,
- "ِ": 32,
- "ّ": 33,
- "ْ": 34,
- "ٓ": 230,
- "ٔ": 230,
- "ٕ": 220,
- "ٖ": 220,
- "ٗ": 230,
- "٘": 230,
- "ٙ": 230,
- "ٚ": 230,
- "ٛ": 230,
- "ٜ": 220,
- "ٝ": 230,
- "ٞ": 230,
- "ٟ": 220,
- "ٰ": 35,
- "ۖ": 230,
- "ۗ": 230,
- "ۘ": 230,
- "ۙ": 230,
- "ۚ": 230,
- "ۛ": 230,
- "ۜ": 230,
- "۟": 230,
- "۠": 230,
- "ۡ": 230,
- "ۢ": 230,
- "ۣ": 220,
- "ۤ": 230,
- "ۧ": 230,
- "ۨ": 230,
- "۪": 220,
- "۫": 230,
- "۬": 230,
- "ۭ": 220,
- "ܑ": 36,
- "ܰ": 230,
- "ܱ": 220,
- "ܲ": 230,
- "ܳ": 230,
- "ܴ": 220,
- "ܵ": 230,
- "ܶ": 230,
- "ܷ": 220,
- "ܸ": 220,
- "ܹ": 220,
- "ܺ": 230,
- "ܻ": 220,
- "ܼ": 220,
- "ܽ": 230,
- "ܾ": 220,
- "ܿ": 230,
- "݀": 230,
- "݁": 230,
- "݂": 220,
- "݃": 230,
- "݄": 220,
- "݅": 230,
- "݆": 220,
- "݇": 230,
- "݈": 220,
- "݉": 230,
- "݊": 230,
- "߫": 230,
- "߬": 230,
- "߭": 230,
- "߮": 230,
- "߯": 230,
- "߰": 230,
- "߱": 230,
- "߲": 220,
- "߳": 230,
- "ࠖ": 230,
- "ࠗ": 230,
- "࠘": 230,
- "࠙": 230,
- "ࠛ": 230,
- "ࠜ": 230,
- "ࠝ": 230,
- "ࠞ": 230,
- "ࠟ": 230,
- "ࠠ": 230,
- "ࠡ": 230,
- "ࠢ": 230,
- "ࠣ": 230,
- "ࠥ": 230,
- "ࠦ": 230,
- "ࠧ": 230,
- "ࠩ": 230,
- "ࠪ": 230,
- "ࠫ": 230,
- "ࠬ": 230,
- "࠭": 230,
- "࡙": 220,
- "࡚": 220,
- "࡛": 220,
- "ࣔ": 230,
- "ࣕ": 230,
- "ࣖ": 230,
- "ࣗ": 230,
- "ࣘ": 230,
- "ࣙ": 230,
- "ࣚ": 230,
- "ࣛ": 230,
- "ࣜ": 230,
- "ࣝ": 230,
- "ࣞ": 230,
- "ࣟ": 230,
- "࣠": 230,
- "࣡": 230,
- "ࣣ": 220,
- "ࣤ": 230,
- "ࣥ": 230,
- "ࣦ": 220,
- "ࣧ": 230,
- "ࣨ": 230,
- "ࣩ": 220,
- "࣪": 230,
- "࣫": 230,
- "࣬": 230,
- "࣭": 220,
- "࣮": 220,
- "࣯": 220,
- "ࣰ": 27,
- "ࣱ": 28,
- "ࣲ": 29,
- "ࣳ": 230,
- "ࣴ": 230,
- "ࣵ": 230,
- "ࣶ": 220,
- "ࣷ": 230,
- "ࣸ": 230,
- "ࣹ": 220,
- "ࣺ": 220,
- "ࣻ": 230,
- "ࣼ": 230,
- "ࣽ": 230,
- "ࣾ": 230,
- "ࣿ": 230,
- "़": 7,
- "्": 9,
- "॑": 230,
- "॒": 220,
- "॓": 230,
- "॔": 230,
- "়": 7,
- "্": 9,
- "਼": 7,
- "੍": 9,
- "઼": 7,
- "્": 9,
- "଼": 7,
- "୍": 9,
- "்": 9,
- "్": 9,
- "ౕ": 84,
- "ౖ": 91,
- "಼": 7,
- "್": 9,
- "്": 9,
- "්": 9,
- "ุ": 103,
- "ู": 103,
- "ฺ": 9,
- "่": 107,
- "้": 107,
- "๊": 107,
- "๋": 107,
- "ຸ": 118,
- "ູ": 118,
- "່": 122,
- "້": 122,
- "໊": 122,
- "໋": 122,
- "༘": 220,
- "༙": 220,
- "༵": 220,
- "༷": 220,
- "༹": 216,
- "ཱ": 129,
- "ི": 130,
- "ུ": 132,
- "ེ": 130,
- "ཻ": 130,
- "ོ": 130,
- "ཽ": 130,
- "ྀ": 130,
- "ྂ": 230,
- "ྃ": 230,
- "྄": 9,
- "྆": 230,
- "྇": 230,
- "࿆": 220,
- "့": 7,
- "္": 9,
- "်": 9,
- "ႍ": 220,
- "፝": 230,
- "፞": 230,
- "፟": 230,
- "᜔": 9,
- "᜴": 9,
- "្": 9,
- "៝": 230,
- "ᢩ": 228,
- "᤹": 222,
- "᤺": 230,
- "᤻": 220,
- "ᨗ": 230,
- "ᨘ": 220,
- "᩠": 9,
- "᩵": 230,
- "᩶": 230,
- "᩷": 230,
- "᩸": 230,
- "᩹": 230,
- "᩺": 230,
- "᩻": 230,
- "᩼": 230,
- "᩿": 220,
- "᪰": 230,
- "᪱": 230,
- "᪲": 230,
- "᪳": 230,
- "᪴": 230,
- "᪵": 220,
- "᪶": 220,
- "᪷": 220,
- "᪸": 220,
- "᪹": 220,
- "᪺": 220,
- "᪻": 230,
- "᪼": 230,
- "᪽": 220,
- "᬴": 7,
- "᭄": 9,
- "᭫": 230,
- "᭬": 220,
- "᭭": 230,
- "᭮": 230,
- "᭯": 230,
- "᭰": 230,
- "᭱": 230,
- "᭲": 230,
- "᭳": 230,
- "᮪": 9,
- "᮫": 9,
- "᯦": 7,
- "᯲": 9,
- "᯳": 9,
- "᰷": 7,
- "᳐": 230,
- "᳑": 230,
- "᳒": 230,
- "᳔": 1,
- "᳕": 220,
- "᳖": 220,
- "᳗": 220,
- "᳘": 220,
- "᳙": 220,
- "᳚": 230,
- "᳛": 230,
- "᳜": 220,
- "᳝": 220,
- "᳞": 220,
- "᳟": 220,
- "᳠": 230,
- "᳢": 1,
- "᳣": 1,
- "᳤": 1,
- "᳥": 1,
- "᳦": 1,
- "᳧": 1,
- "᳨": 1,
- "᳭": 220,
- "᳴": 230,
- "᳸": 230,
- "᳹": 230,
- "᷀": 230,
- "᷁": 230,
- "᷂": 220,
- "᷃": 230,
- "᷄": 230,
- "᷅": 230,
- "᷆": 230,
- "᷇": 230,
- "᷈": 230,
- "᷉": 230,
- "᷊": 220,
- "᷋": 230,
- "᷌": 230,
- "᷍": 234,
- "᷎": 214,
- "᷏": 220,
- "᷐": 202,
- "᷑": 230,
- "᷒": 230,
- "ᷓ": 230,
- "ᷔ": 230,
- "ᷕ": 230,
- "ᷖ": 230,
- "ᷗ": 230,
- "ᷘ": 230,
- "ᷙ": 230,
- "ᷚ": 230,
- "ᷛ": 230,
- "ᷜ": 230,
- "ᷝ": 230,
- "ᷞ": 230,
- "ᷟ": 230,
- "ᷠ": 230,
- "ᷡ": 230,
- "ᷢ": 230,
- "ᷣ": 230,
- "ᷤ": 230,
- "ᷥ": 230,
- "ᷦ": 230,
- "ᷧ": 230,
- "ᷨ": 230,
- "ᷩ": 230,
- "ᷪ": 230,
- "ᷫ": 230,
- "ᷬ": 230,
- "ᷭ": 230,
- "ᷮ": 230,
- "ᷯ": 230,
- "ᷰ": 230,
- "ᷱ": 230,
- "ᷲ": 230,
- "ᷳ": 230,
- "ᷴ": 230,
- "᷵": 230,
- "᷻": 230,
- "᷼": 233,
- "᷽": 220,
- "᷾": 230,
- "᷿": 220,
- "⃐": 230,
- "⃑": 230,
- "⃒": 1,
- "⃓": 1,
- "⃔": 230,
- "⃕": 230,
- "⃖": 230,
- "⃗": 230,
- "⃘": 1,
- "⃙": 1,
- "⃚": 1,
- "⃛": 230,
- "⃜": 230,
- "⃡": 230,
- "⃥": 1,
- "⃦": 1,
- "⃧": 230,
- "⃨": 220,
- "⃩": 230,
- "⃪": 1,
- "⃫": 1,
- "⃬": 220,
- "⃭": 220,
- "⃮": 220,
- "⃯": 220,
- "⃰": 230,
- "⳯": 230,
- "⳰": 230,
- "⳱": 230,
- "⵿": 9,
- "ⷠ": 230,
- "ⷡ": 230,
- "ⷢ": 230,
- "ⷣ": 230,
- "ⷤ": 230,
- "ⷥ": 230,
- "ⷦ": 230,
- "ⷧ": 230,
- "ⷨ": 230,
- "ⷩ": 230,
- "ⷪ": 230,
- "ⷫ": 230,
- "ⷬ": 230,
- "ⷭ": 230,
- "ⷮ": 230,
- "ⷯ": 230,
- "ⷰ": 230,
- "ⷱ": 230,
- "ⷲ": 230,
- "ⷳ": 230,
- "ⷴ": 230,
- "ⷵ": 230,
- "ⷶ": 230,
- "ⷷ": 230,
- "ⷸ": 230,
- "ⷹ": 230,
- "ⷺ": 230,
- "ⷻ": 230,
- "ⷼ": 230,
- "ⷽ": 230,
- "ⷾ": 230,
- "ⷿ": 230,
- "〪": 218,
- "〫": 228,
- "〬": 232,
- "〭": 222,
- "〮": 224,
- "〯": 224,
- "゙": 8,
- "゚": 8,
- "꙯": 230,
- "ꙴ": 230,
- "ꙵ": 230,
- "ꙶ": 230,
- "ꙷ": 230,
- "ꙸ": 230,
- "ꙹ": 230,
- "ꙺ": 230,
- "ꙻ": 230,
- "꙼": 230,
- "꙽": 230,
- "ꚞ": 230,
- "ꚟ": 230,
- "꛰": 230,
- "꛱": 230,
- "꠆": 9,
- "꣄": 9,
- "꣠": 230,
- "꣡": 230,
- "꣢": 230,
- "꣣": 230,
- "꣤": 230,
- "꣥": 230,
- "꣦": 230,
- "꣧": 230,
- "꣨": 230,
- "꣩": 230,
- "꣪": 230,
- "꣫": 230,
- "꣬": 230,
- "꣭": 230,
- "꣮": 230,
- "꣯": 230,
- "꣰": 230,
- "꣱": 230,
- "꤫": 220,
- "꤬": 220,
- "꤭": 220,
- "꥓": 9,
- "꦳": 7,
- "꧀": 9,
- "ꪰ": 230,
- "ꪲ": 230,
- "ꪳ": 230,
- "ꪴ": 220,
- "ꪷ": 230,
- "ꪸ": 230,
- "ꪾ": 230,
- "꪿": 230,
- "꫁": 230,
- "꫶": 9,
- "꯭": 9,
- "ﬞ": 26,
- "︠": 230,
- "︡": 230,
- "︢": 230,
- "︣": 230,
- "︤": 230,
- "︥": 230,
- "︦": 230,
- "︧": 220,
- "︨": 220,
- "︩": 220,
- "︪": 220,
- "︫": 220,
- "︬": 220,
- "︭": 220,
- "︮": 230,
- "︯": 230,
- "𐇽": 220,
- "𐋠": 220,
- "𐍶": 230,
- "𐍷": 230,
- "𐍸": 230,
- "𐍹": 230,
- "𐍺": 230,
- "𐨍": 220,
- "𐨏": 230,
- "𐨸": 230,
- "𐨹": 1,
- "𐨺": 220,
- "𐨿": 9,
- "𐫥": 230,
- "𐫦": 220,
- "𑁆": 9,
- "𑁿": 9,
- "𑂹": 9,
- "𑂺": 7,
- "𑄀": 230,
- "𑄁": 230,
- "𑄂": 230,
- "𑄳": 9,
- "𑄴": 9,
- "𑅳": 7,
- "𑇀": 9,
- "𑇊": 7,
- "𑈵": 9,
- "𑈶": 7,
- "𑋩": 7,
- "𑋪": 9,
- "𑌼": 7,
- "𑍍": 9,
- "𑍦": 230,
- "𑍧": 230,
- "𑍨": 230,
- "𑍩": 230,
- "𑍪": 230,
- "𑍫": 230,
- "𑍬": 230,
- "𑍰": 230,
- "𑍱": 230,
- "𑍲": 230,
- "𑍳": 230,
- "𑍴": 230,
- "𑑂": 9,
- "𑑆": 7,
- "𑓂": 9,
- "𑓃": 7,
- "𑖿": 9,
- "𑗀": 7,
- "𑘿": 9,
- "𑚶": 9,
- "𑚷": 7,
- "𑜫": 9,
- "𑰿": 9,
- "𖫰": 1,
- "𖫱": 1,
- "𖫲": 1,
- "𖫳": 1,
- "𖫴": 1,
- "𖬰": 230,
- "𖬱": 230,
- "𖬲": 230,
- "𖬳": 230,
- "𖬴": 230,
- "𖬵": 230,
- "𖬶": 230,
- "𛲞": 1,
- "𝅥": 216,
- "𝅦": 216,
- "𝅧": 1,
- "𝅨": 1,
- "𝅩": 1,
- "𝅭": 226,
- "𝅮": 216,
- "𝅯": 216,
- "𝅰": 216,
- "𝅱": 216,
- "𝅲": 216,
- "𝅻": 220,
- "𝅼": 220,
- "𝅽": 220,
- "𝅾": 220,
- "𝅿": 220,
- "𝆀": 220,
- "𝆁": 220,
- "𝆂": 220,
- "𝆅": 230,
- "𝆆": 230,
- "𝆇": 230,
- "𝆈": 230,
- "𝆉": 230,
- "𝆊": 220,
- "𝆋": 220,
- "𝆪": 230,
- "𝆫": 230,
- "𝆬": 230,
- "𝆭": 230,
- "𝉂": 230,
- "𝉃": 230,
- "𝉄": 230,
- "𞀀": 230,
- "𞀁": 230,
- "𞀂": 230,
- "𞀃": 230,
- "𞀄": 230,
- "𞀅": 230,
- "𞀆": 230,
- "𞀈": 230,
- "𞀉": 230,
- "𞀊": 230,
- "𞀋": 230,
- "𞀌": 230,
- "𞀍": 230,
- "𞀎": 230,
- "𞀏": 230,
- "𞀐": 230,
- "𞀑": 230,
- "𞀒": 230,
- "𞀓": 230,
- "𞀔": 230,
- "𞀕": 230,
- "𞀖": 230,
- "𞀗": 230,
- "𞀘": 230,
- "𞀛": 230,
- "𞀜": 230,
- "𞀝": 230,
- "𞀞": 230,
- "𞀟": 230,
- "𞀠": 230,
- "𞀡": 230,
- "𞀣": 230,
- "𞀤": 230,
- "𞀦": 230,
- "𞀧": 230,
- "𞀨": 230,
- "𞀩": 230,
- "𞀪": 230,
- "𞣐": 220,
- "𞣑": 220,
- "𞣒": 220,
- "𞣓": 220,
- "𞣔": 220,
- "𞣕": 220,
- "𞣖": 220,
- "𞥄": 230,
- "𞥅": 230,
- "𞥆": 230,
- "𞥇": 230,
- "𞥈": 230,
- "𞥉": 230,
- "𞥊": 7
- }
-}
\ No newline at end of file
diff --git a/js/lib/Address.js b/js/lib/Address.js
index 3eda203cfe..4af9de64f4 100644
--- a/js/lib/Address.js
+++ b/js/lib/Address.js
@@ -1,7 +1,7 @@
/*
* Address.js - Represent a mailing address
*
- * Copyright © 2013-2015, JEDLSoft
+ * Copyright © 2013-2015, 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -19,17 +19,6 @@
/*globals console RegExp */
-/* !depends
-ilib.js
-Utils.js
-JSUtils.js
-Locale.js
-isIdeo.js
-isAscii.js
-isDigit.js
-IString.js
-*/
-
// !data address countries nativecountries ctrynames
var ilib = require("./ilib.js");
diff --git a/js/lib/AddressFmt.js b/js/lib/AddressFmt.js
index 9a979042a0..d86331a562 100644
--- a/js/lib/AddressFmt.js
+++ b/js/lib/AddressFmt.js
@@ -1,7 +1,7 @@
/*
* AddressFmt.js - Format an address
*
- * Copyright © 2013-2015, JEDLSoft
+ * Copyright © 2013-2015, 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,15 +17,6 @@
* limitations under the License.
*/
-/* !depends
-ilib.js
-Locale.js
-Address.js
-IString.js
-Utils.js
-JSUtils.js
-*/
-
// !data address addressres regionnames
var ilib = require("./ilib.js");
diff --git a/js/lib/AlphabeticIndex.js b/js/lib/AlphabeticIndex.js
index 6e5c09759e..12ae8b375c 100644
--- a/js/lib/AlphabeticIndex.js
+++ b/js/lib/AlphabeticIndex.js
@@ -17,19 +17,7 @@
* limitations under the License.
*/
-/* !depends
-ilib.js
-Utils.js
-Locale.js
-NormString.js
-CType.js
-IString.js
-isIdeo.js
-isAscii.js
-isDigit.js
-Collator.js
-NormString.js
-*/
+// !data nfc nfkd
var ilib = require("./ilib.js");
var Utils = require("./Utils.js");
@@ -51,10 +39,11 @@ var NormString = require("./NormString.js");
* language. An example would be an index of person names in a contact
* list, organized by the first letter of the family name.
*
- * Example in English:
+ * Example in English:
+ *
* Buckets: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z #
*
- *
+ *
* A
* Adams
* Albers
@@ -64,7 +53,7 @@ var NormString = require("./NormString.js");
* Banerjee
* Brunshteyn
* ...
- *
+ *
*
* This class can give you the sorted list of labels to show in the UI. It can
* also organize a list of string elements into buckets for each
diff --git a/js/lib/AreaUnit.js b/js/lib/AreaUnit.js
index 249e3cdb16..2a0f880620 100644
--- a/js/lib/AreaUnit.js
+++ b/js/lib/AreaUnit.js
@@ -250,4 +250,4 @@ AreaUnit.systems = {
//register with the factory method
Measurement._constructors["area"] = AreaUnit;
-module.exports = AreaUnit;
\ No newline at end of file
+module.exports = AreaUnit;
diff --git a/js/lib/Astro.js b/js/lib/Astro.js
index 7e25871089..69d913b2cc 100644
--- a/js/lib/Astro.js
+++ b/js/lib/Astro.js
@@ -1,7 +1,7 @@
/*
- * astro.js - Static functions to support astronomical calculations
+ * Astro.js - Static functions to support astronomical calculations
*
- * Copyright © 2014-2015, JEDLSoft
+ * Copyright © 2014-2015, 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,15 +17,6 @@
* limitations under the License.
*/
-/* !depends
-ilib.js
-IDate.js
-Utils.js
-SearchUtils.js
-GregorianDate.js
-GregRataDie.js
-*/
-
// !data astro
/*
diff --git a/js/lib/AsyncNodeLoader.js b/js/lib/AsyncNodeLoader.js
index 3cb1489cff..3398a3f3f6 100644
--- a/js/lib/AsyncNodeLoader.js
+++ b/js/lib/AsyncNodeLoader.js
@@ -42,23 +42,23 @@ module.exports = function (ilib) {
this.base = (typeof(module) !== 'undefined' && module.filename) ?
path.join(path.dirname(module.filename), "..") :
- this.root;
+ this.root;
- //console.log("module.filename is " + module.filename + "\n");
- //console.log("base is defined as " + this.base + "\n");
+ //console.log("module.filename is " + module.filename + "\n");
+ //console.log("base is defined as " + this.base + "\n");
- this.includePath.push(path.join(this.root, "resources")); // always check the application's resources dir first
+ this.includePath.push(path.join(this.root, "resources")); // always check the application's resources dir first
- // then a standard locale dir of a built version of ilib from npm
- this._exists(path.join(this.base, "locale"), "localeinfo.json");
+ // then a standard locale dir of a built version of ilib from npm
+ this._exists(path.join(this.base, "locale"), "localeinfo.json");
- // try the standard install directories
- this._exists("/usr/share/javascript/ilib/locale", "localeinfo.json");
+ // try the standard install directories
+ this._exists("/usr/share/javascript/ilib/locale", "localeinfo.json");
- // ... else fall back to see if we're in a check-out dir of ilib
- // this._exists(path.join(this.base, "data", "locale"), "localeinfo.json");
+ // ... else fall back to see if we're in a check-out dir of ilib
+ // this._exists(path.join(this.base, "data", "locale"), "localeinfo.json");
- // console.log("AsyncNodeLoader: include path is now " + JSON.stringify(this.includePath));
+ // console.log("AsyncNodeLoader: include path is now " + JSON.stringify(this.includePath));
};
// make this a subclass of loader
diff --git a/js/lib/CType.js b/js/lib/CType.js
index 36285b971a..f820c04991 100644
--- a/js/lib/CType.js
+++ b/js/lib/CType.js
@@ -1,7 +1,7 @@
/*
* CType.js - Character type definitions
*
- * Copyright © 2012-2015, JEDLSoft
+ * Copyright © 2012-2015, 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,8 +17,6 @@
* limitations under the License.
*/
-// !depends ilib.js SearchUtils.js Utils.js IString.js
-
// !data ctype
var ilib = require("./ilib.js");
diff --git a/js/lib/CalendarFactory.js b/js/lib/CalendarFactory.js
index d8d703ecaa..498ed58f1e 100644
--- a/js/lib/CalendarFactory.js
+++ b/js/lib/CalendarFactory.js
@@ -1,7 +1,7 @@
/*
* CalendarFactory.js - Constructs new instances of the right subclass of Calendar
*
- * Copyright © 2015, JEDLSoft
+ * Copyright © 2015, 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,13 +17,6 @@
* limitations under the License.
*/
-/* !depends
-ilib.js
-Locale.js
-LocaleInfo.js
-Calendar.js
-*/
-
var ilib = require("./ilib.js");
var Locale = require("./Locale.js");
var LocaleInfo = require("./LocaleInfo.js");
@@ -135,15 +128,19 @@ CalendarFactory._dynMap = {
"thaisolar": "ThaiSolar"
};
+function circumventWebPack(x) {
+ return "./" + x + "Cal.js";
+}
+
/**
* Dynamically load the code for a calendar and calendar class if necessary.
* @protected
*/
-CalendarFactory._dynLoadCalendar = function (name) {
+CalendarFactory._dynLoadCalendar = function (name, fnc) {
if (!Calendar._constructors[name]) {
var entry = CalendarFactory._dynMap[name];
if (entry) {
- Calendar._constructors[name] = require("./" + entry + "Cal.js");
+ Calendar._constructors[name] = require(fnc(entry));
}
}
return Calendar._constructors[name];
@@ -154,7 +151,7 @@ CalendarFactory._init = function(type, options) {
var cons;
if (ilib.isDynCode()) {
- CalendarFactory._dynLoadCalendar(type);
+ CalendarFactory._dynLoadCalendar(type, circumventWebPack);
}
cons = Calendar._constructors[type];
@@ -178,7 +175,7 @@ CalendarFactory.getCalendars = function () {
if (ilib.isDynCode()) {
for (c in CalendarFactory._dynMap) {
- CalendarFactory._dynLoadCalendar(c);
+ CalendarFactory._dynLoadCalendar(c, circumventWebPack);
}
}
diff --git a/js/lib/CaseMapper.js b/js/lib/CaseMapper.js
index 76588b31bc..641a38228b 100644
--- a/js/lib/CaseMapper.js
+++ b/js/lib/CaseMapper.js
@@ -1,7 +1,7 @@
/*
- * caseMapper.js - define upper- and lower-case mapper
+ * CaseMapper.js - define upper- and lower-case mapper
*
- * Copyright © 2014-2015, JEDLSoft
+ * Copyright © 2014-2015, 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,8 +17,6 @@
* limitations under the License.
*/
-// !depends Locale.js IString.js
-
var ilib = require("./ilib.js");
var Locale = require("./Locale.js");
diff --git a/js/lib/Charmap.js b/js/lib/Charmap.js
index 01965c078e..ff7040ecce 100644
--- a/js/lib/Charmap.js
+++ b/js/lib/Charmap.js
@@ -1,7 +1,7 @@
/*
* Charmap.js - A character set mapping class
*
- * Copyright © 2014-2015,2018, JEDLSoft
+ * Copyright © 2014-2015, 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,9 +17,7 @@
* limitations under the License.
*/
-// !depends ilib.js JSUtils.js IString.js
-
-// !data charset/US-ASCII charset/ISO-10646-UCS-2 charset/ISO-10646-UCS-4 charset/ISO-10646-Unicode-Latin1
+// !data charmaps charset/US-ASCII charset/ISO-10646-UCS-2 charset/ISO-8859-1 charset/ISO-8859-15 charmaps/ISO-8859-15 charmaps/ISO-8859-1 charset/ISO-8859-1
var ilib = require("./ilib.js");
var JSUtils = require("./JSUtils.js");
@@ -333,4 +331,4 @@ Charmap.prototype = {
}
};
-module.exports = Charmap;
\ No newline at end of file
+module.exports = Charmap;
diff --git a/js/lib/CharmapFactory.js b/js/lib/CharmapFactory.js
index 3ee40e34ea..dfebf81b8d 100644
--- a/js/lib/CharmapFactory.js
+++ b/js/lib/CharmapFactory.js
@@ -2,7 +2,7 @@
* CharmapFactory.js - Factory class to create the right subclasses of a charmap for any
* given chararacter set.
*
- * Copyright © 2015, JEDLSoft
+ * Copyright © 2015, 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -18,15 +18,16 @@
* limitations under the License.
*/
-/* !depends ilib.js JSUtils.js Charmap.js CharmapTable.js */
-// !data charset/ISO-8859-15 charmaps/ISO-8859-15
-
var ilib = require("./ilib.js");
var JSUtils = require("./JSUtils.js");
var Charset = require("./Charset.js");
var Charmap = require("./Charmap.js");
+function circumventWebpackCharmap(x) {
+ return "./" + x + ".js";
+}
+
/**
* Factory method to create a new instance of a character set mapping (charmap)
* subclass that is appropriate for the requested charset. Charmap instances map strings to
@@ -152,7 +153,7 @@ var CharmapFactory = function(options) {
if (!Charmap._algorithms[name] && ilib.isDynCode()) {
// console.log("CharmapFactory: isDynCode. Doing require");
var entry = CharmapFactory._dynMap[name] || "CharmapTable";
- cons = Charmap._algorithms[name] = require("./" + entry + ".js");
+ cons = Charmap._algorithms[name] = require(circumventWebpackCharmap(entry));
}
if (!cons) {
@@ -161,8 +162,9 @@ var CharmapFactory = function(options) {
// console.log("CharmapFactory: cons is "); console.dir(cons);
- // pass the same options through to the constructor so the subclass
- // has the ability to do something with if it needs to
+ // Pass the same options through to the constructor so the subclass
+ // has the ability to do something with if it needs to. It should also call
+ // the onLoad callback when it is done.
instance = cons && new cons(JSUtils.merge(options || {}, {charset: charset}));
}
});
diff --git a/js/lib/CharmapTable.js b/js/lib/CharmapTable.js
index 130751ece9..eec982b492 100644
--- a/js/lib/CharmapTable.js
+++ b/js/lib/CharmapTable.js
@@ -1,7 +1,7 @@
/*
* CharmapTable.js - A character set mapping class that maps using trie table
*
- * Copyright © 2014-2015,2018, JEDLSoft
+ * Copyright © 2014-2015, 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,9 +17,7 @@
* limitations under the License.
*/
-// !depends ilib.js Utils.js Charset.js Charmap.js IString.js
-
-// !data charmaps/ISO-8859-1 charset/ISO-8859-1
+// !data charmaps/ISO-8859-15 charset/ISO-8859-15
var ilib = require("./ilib.js");
var Utils = require("./Utils.js");
diff --git a/js/lib/Charset.js b/js/lib/Charset.js
index 5d2d0189f6..56380c3869 100644
--- a/js/lib/Charset.js
+++ b/js/lib/Charset.js
@@ -1,7 +1,7 @@
/*
* Charset.js - Return information about a particular character set
*
- * Copyright © 2014-2015, JEDLSoft
+ * Copyright © 2014-2015, 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,8 +17,7 @@
* limitations under the License.
*/
-// !depends ilib.js Utils.js
-// !data charsetaliases charset/ISO-8859-1 charset/ISO-8859-15 charset/UTF-8
+// !data charset charsetaliases charset/ISO-8859-1 charset/ISO-8859-15 charset/UTF-8
var ilib = require("./ilib.js");
var Utils = require("./Utils.js");
@@ -64,8 +63,6 @@ var Utils = require("./Utils.js");
* If the onLoad option is not given, this class will only attempt to load any
* missing data synchronously.
*
- * Depends directive: !depends charset.js
- *
* @constructor
* @see {ilib.setLoaderCallback} for information about registering a loader callback instance
* @param {Object=} options options which govern the construction of this instance
diff --git a/js/lib/CodePointSource.js b/js/lib/CodePointSource.js
index 75209e617c..b9525a39e6 100644
--- a/js/lib/CodePointSource.js
+++ b/js/lib/CodePointSource.js
@@ -1,7 +1,7 @@
/*
* CodePointSource.js - Source of code points from a string
*
- * Copyright © 2013-2015, JEDLSoft
+ * Copyright © 2013-2015, 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,8 +17,6 @@
* limitations under the License.
*/
-// !depends isPunct.js NormString.js
-
var isPunct = require("./isPunct.js");
var NormString = require("./NormString.js");
diff --git a/js/lib/Collator.js b/js/lib/Collator.js
index f9e71c65e7..4db19f7c1b 100644
--- a/js/lib/Collator.js
+++ b/js/lib/Collator.js
@@ -1,7 +1,7 @@
/*
* Collator.js - Collation routines
*
- * Copyright © 2013-2015, JEDLSoft
+ * Copyright © 2013-2015, 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,19 +17,6 @@
* limitations under the License.
*/
-/* !depends
-Locale.js
-ilib.js
-INumber.js
-isPunct.js
-NormString.js
-Utils.js
-JSUtils.js
-CodePointSource.js
-ElementIterator.js
-GlyphString.js
-*/
-
// !data collation
var ilib = require("./ilib.js");
@@ -414,13 +401,12 @@ var Collator = function(options) {
object: "Collator",
locale: this.locale,
name: "collation.json",
+ replace: true,
sync: sync,
- loadParams: loadParams,
+ loadParams: loadParams,
callback: ilib.bind(this, function (collation) {
if (!collation) {
collation = ilib.data.collation;
- var spec = this.locale.getSpec().replace(/-/g, '_');
- ilib.data.cache.Collator[spec] = collation;
}
this._initCollation(collation);
if (this.ignorePunctuation) {
diff --git a/js/lib/CopticCal.js b/js/lib/CopticCal.js
index efebdc8411..217cb2c860 100644
--- a/js/lib/CopticCal.js
+++ b/js/lib/CopticCal.js
@@ -17,9 +17,6 @@
* limitations under the License.
*/
-
-/* !depends Calendar.js Utils.js EthiopicCal.js */
-
var Utils = require("./Utils.js");
var Calendar = require("./Calendar.js");
var EthiopicCal = require("./EthiopicCal.js");
diff --git a/js/lib/CopticDate.js b/js/lib/CopticDate.js
index 4c42d94b50..55763533af 100644
--- a/js/lib/CopticDate.js
+++ b/js/lib/CopticDate.js
@@ -1,7 +1,7 @@
/*
* CopticDate.js - Represent a date in the Coptic calendar
*
- * Copyright © 2015, JEDLSoft
+ * Copyright © 2015, 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,16 +17,6 @@
* limitations under the License.
*/
-/* !depends
-ilib.js
-IDate.js
-CopticCal.js
-MathUtils.js
-Locale.js
-EthiopicDate.js
-CopticRataDie.js
-*/
-
var ilib = require("./ilib.js");
var MathUtils = require("./MathUtils.js");
@@ -134,4 +124,4 @@ CopticDate.prototype.getCalendar = function() {
//register with the factory method
IDate._constructors["coptic"] = CopticDate;
-module.exports = CopticDate;
\ No newline at end of file
+module.exports = CopticDate;
diff --git a/js/lib/CopticRataDie.js b/js/lib/CopticRataDie.js
index 403d61f5e5..c851ec4419 100644
--- a/js/lib/CopticRataDie.js
+++ b/js/lib/CopticRataDie.js
@@ -1,7 +1,7 @@
/*
* CopticRataDie.js - Represent an RD date in the Coptic calendar
*
- * Copyright © 2015, JEDLSoft
+ * Copyright © 2015, 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,12 +17,6 @@
* limitations under the License.
*/
-/* !depends
-CopticCal.js
-JSUtils.js
-EthiopicRataDie.js
-*/
-
var JSUtils = require("./JSUtils.js");
var CopticCal = require("./CopticCal.js");
var EthiopicRataDie = require("./EthiopicRataDie.js");
@@ -98,4 +92,4 @@ CopticRataDie.prototype = new EthiopicRataDie();
CopticRataDie.prototype.parent = EthiopicRataDie;
CopticRataDie.prototype.constructor = CopticRataDie;
-module.exports = CopticRataDie;
\ No newline at end of file
+module.exports = CopticRataDie;
diff --git a/js/lib/Country.js b/js/lib/Country.js
index 1d736be4ce..8af951d050 100644
--- a/js/lib/Country.js
+++ b/js/lib/Country.js
@@ -1,7 +1,7 @@
/*
* Country.js - Country class to get country name corresponding to country code in locale assigned
*
- * Copyright © 2017, LGE
+ * Copyright © 2017, 2018, LGE
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,8 +17,6 @@
* limitations under the License.
*/
-// !depends ilib.js Utils.js Locale.js LocaleInfo.js ResBundle.js
-
// !data ctryreverse
var ilib = require("./ilib.js");
@@ -94,7 +92,7 @@ var Country = function (options) {
if (!this.codeToCountry) {
Utils.loadData({
name: "ctryreverse.json",
- object: Country,
+ object: "Country",
locale: locale,
sync: sync,
loadParams: loadParams,
diff --git a/js/lib/Currency.js b/js/lib/Currency.js
index 43367ee0c1..5771c9fb62 100644
--- a/js/lib/Currency.js
+++ b/js/lib/Currency.js
@@ -1,7 +1,7 @@
/*
* Currency.js - Currency definition
*
- * Copyright © 2012-2015, JEDLSoft
+ * Copyright © 2012-2015, 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,8 +17,6 @@
* limitations under the License.
*/
-// !depends ilib.js Utils.js Locale.js LocaleInfo.js
-
// !data currency
var ilib = require("./ilib.js");
diff --git a/js/lib/DateFactory.js b/js/lib/DateFactory.js
index e86a42b781..011ee4b4e5 100644
--- a/js/lib/DateFactory.js
+++ b/js/lib/DateFactory.js
@@ -2,7 +2,7 @@
* DateFactory.js - Factory class to create the right subclasses of a date for any
* calendar or locale.
*
- * Copyright © 2012-2015, JEDLSoft
+ * Copyright © 2012-2015, 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -18,8 +18,6 @@
* limitations under the License.
*/
-/* !depends ilib.js Locale.js LocaleInfo.js JulianDay.js JSUtils.js CalendarFactory.js IDate.js */
-
var ilib = require("./ilib.js");
var JSUtils = require("./JSUtils.js");
@@ -159,15 +157,23 @@ DateFactory._dynMap = {
"thaisolar": "ThaiSolar"
};
+function circumventWebPackDate(x) {
+ return "./" + x + "Date.js";
+}
+
+function circumventWebPackCal(x) {
+ return "./" + x + "Cal.js";
+}
+
/**
* Dynamically load the code for a calendar and calendar class if necessary.
* @protected
*/
-DateFactory._dynLoadDate = function (name) {
+DateFactory._dynLoadDate = function (name, fnc) {
if (!IDate._constructors[name]) {
var entry = DateFactory._dynMap[name];
if (entry) {
- IDate._constructors[name] = require("./" + entry + "Date.js");
+ IDate._constructors[name] = require(fnc(entry));
}
}
return IDate._constructors[name];
@@ -181,8 +187,8 @@ DateFactory._init = function(type, options) {
var cons;
if (ilib.isDynCode()) {
- DateFactory._dynLoadDate(type);
- CalendarFactory._dynLoadCalendar(type);
+ DateFactory._dynLoadDate(type, circumventWebPackDate);
+ CalendarFactory._dynLoadCalendar(type, circumventWebPackCal);
}
cons = IDate._constructors[type];
diff --git a/js/lib/DateFmt.js b/js/lib/DateFmt.js
index cafa4cb633..3f9c0186ed 100644
--- a/js/lib/DateFmt.js
+++ b/js/lib/DateFmt.js
@@ -17,22 +17,6 @@
* limitations under the License.
*/
-/*
-!depends
-ilib.js
-Locale.js
-IDate.js
-DateFactory.js
-ResBundle.js
-CalendarFactory.js
-LocaleInfo.js
-TimeZone.js
-GregorianCal.js
-JSUtils.js
-Utils.js
-ISet.js
-*/
-
// !data dateformats sysres
var ilib = require("./ilib.js");
@@ -631,7 +615,6 @@ DateFmt.prototype = {
var spec = this.locale.getSpec().replace(/-/g, '_');
if (!formats) {
formats = ilib.data.dateformats || DateFmt.defaultFmt;
- ilib.data.cache.DateFmt[spec] = formats;
}
if (typeof(this.clock) === 'undefined') {
diff --git a/js/lib/DateRngFmt.js b/js/lib/DateRngFmt.js
index c2b8dbfa25..af773084b1 100644
--- a/js/lib/DateRngFmt.js
+++ b/js/lib/DateRngFmt.js
@@ -1,7 +1,7 @@
/*
* DateRngFmt.js - Date formatter definition
*
- * Copyright © 2012-2015,2018, JEDLSoft
+ * Copyright © 2012-2015, 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,18 +17,6 @@
* limitations under the License.
*/
-/*
-!depends
-ilib.js
-Locale.js
-IString.js
-CalendarFactory.js
-DateFmt.js
-GregorianCal.js
-JSUtils.js
-DateFactory.js
-*/
-
// !data dateformats sysres
var ilib = require("./ilib.js");
@@ -388,4 +376,4 @@ DateRngFmt.prototype = {
}
};
-module.exports = DateRngFmt;
\ No newline at end of file
+module.exports = DateRngFmt;
diff --git a/js/lib/DigitalStorageUnit.js b/js/lib/DigitalStorageUnit.js
index 955927bdea..aaa5c5186b 100644
--- a/js/lib/DigitalStorageUnit.js
+++ b/js/lib/DigitalStorageUnit.js
@@ -353,4 +353,4 @@ DigitalStorageUnit.getMeasures = function () {
//register with the factory method
Measurement._constructors["digitalStorage"] = DigitalStorageUnit;
-module.exports = DigitalStorageUnit;
\ No newline at end of file
+module.exports = DigitalStorageUnit;
diff --git a/js/lib/DurationFmt.js b/js/lib/DurationFmt.js
index 7cfe3f7021..b08e256e03 100644
--- a/js/lib/DurationFmt.js
+++ b/js/lib/DurationFmt.js
@@ -1,5 +1,5 @@
/*
- * DurFmt.js - Date formatter definition
+ * DurationFmt.js - Date formatter definition
*
* Copyright © 2012-2015, 2018, JEDLSoft
*
@@ -17,20 +17,7 @@
* limitations under the License.
*/
-/*
-!depends
-ilib.js
-Locale.js
-DateFmt.js
-IString.js
-ResBundle.js
-LocaleInfo.js
-JSUtils.js
-ScriptInfo.js
-*/
-
// !data dateformats sysres
-// !resbundle sysres
var ilib = require("./ilib.js");
var JSUtils = require("./JSUtils.js");
diff --git a/js/lib/EnergyUnit.js b/js/lib/EnergyUnit.js
index 7ef28244b6..abacbb66b5 100644
--- a/js/lib/EnergyUnit.js
+++ b/js/lib/EnergyUnit.js
@@ -260,4 +260,4 @@ EnergyUnit.getMeasures = function () {
//register with the factory method
Measurement._constructors["energy"] = EnergyUnit;
-module.exports = EnergyUnit;
\ No newline at end of file
+module.exports = EnergyUnit;
diff --git a/js/lib/EthiopicCal.js b/js/lib/EthiopicCal.js
index 50376a3762..85bec8d7c4 100644
--- a/js/lib/EthiopicCal.js
+++ b/js/lib/EthiopicCal.js
@@ -1,7 +1,7 @@
/*
- * ethiopic.js - Represent a Ethiopic calendar object.
- *
- * Copyright © 2015,2018, JEDLSoft
+ * EthiopicCal.js - Represent a Ethiopic calendar object.
+ *
+ * Copyright © 2015-2017, 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,8 +17,6 @@
* limitations under the License.
*/
-/* !depends Calendar.js MathUtils.js */
-
var MathUtils = require("./MathUtils.js");
var Calendar = require("./Calendar.js");
diff --git a/js/lib/EthiopicDate.js b/js/lib/EthiopicDate.js
index 98429099b4..723fb8234c 100644
--- a/js/lib/EthiopicDate.js
+++ b/js/lib/EthiopicDate.js
@@ -17,17 +17,6 @@
* limitations under the License.
*/
-/* !depends
-ilib.js
-IDate.js
-EthiopicCal.js
-MathUtils.js
-Locale.js
-LocaleInfo.js
-TimeZone.js
-EthiopicRataDie.js
-*/
-
var ilib = require("./ilib.js");
var MathUtils = require("./MathUtils.js");
diff --git a/js/lib/EthiopicRataDie.js b/js/lib/EthiopicRataDie.js
index c841f7ee69..21cf04f0f7 100644
--- a/js/lib/EthiopicRataDie.js
+++ b/js/lib/EthiopicRataDie.js
@@ -1,7 +1,7 @@
/*
* EthiopicRataDie.js - Represent an RD date in the Ethiopic calendar
*
- * Copyright © 2015, JEDLSoft
+ * Copyright © 2015, 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,11 +17,6 @@
* limitations under the License.
*/
-/* !depends
-EthiopicCal.js
-RataDie.js
-*/
-
var EthiopicCal = require("./EthiopicCal.js");
var RataDie = require("./RataDie.js");
diff --git a/js/lib/FuelConsumptionUnit.js b/js/lib/FuelConsumptionUnit.js
index 8cbdd38101..de8fa337ad 100644
--- a/js/lib/FuelConsumptionUnit.js
+++ b/js/lib/FuelConsumptionUnit.js
@@ -289,4 +289,4 @@ FuelConsumptionUnit.getMeasures = function() {
//register with the factory method
Measurement._constructors["fuelconsumption"] = FuelConsumptionUnit;
-module.exports = FuelConsumptionUnit;
\ No newline at end of file
+module.exports = FuelConsumptionUnit;
diff --git a/js/lib/GlyphString.js b/js/lib/GlyphString.js
index 537297d496..3a4c08eabb 100644
--- a/js/lib/GlyphString.js
+++ b/js/lib/GlyphString.js
@@ -18,8 +18,7 @@
* limitations under the License.
*/
-// !depends IString.js CType.js Utils.js JSUtils.js
-// !data normdata ctype_m
+// !data ccc nfc ctype_m
var ilib = require("./ilib.js");
var Utils = require("./Utils.js");
@@ -109,19 +108,36 @@ var GlyphString = function (str, options) {
options = options || {sync: true};
CType._load("ctype_m", options.sync, options.loadParams, ilib.bind(this, function() {
- if (!ilib.data.norm || JSUtils.isEmpty(ilib.data.norm.ccc)) {
+ if (!ilib.data.ccc || JSUtils.isEmpty(ilib.data.ccc)) {
Utils.loadData({
object: "GlyphString",
locale: "-",
- name: "normdata.json",
+ name: "ccc.json",
nonlocale: true,
sync: options.sync,
loadParams: options.loadParams,
callback: ilib.bind(this, function (norm) {
- ilib.extend(ilib.data.norm, norm);
- if (options && typeof(options.onLoad) === 'function') {
- options.onLoad(this);
- }
+ ilib.data.ccc = norm;
+ if (!ilib.data.norm.nfc || JSUtils.isEmpty(ilib.data.norm.nfc)) {
+ Utils.loadData({
+ object: "GlyphString",
+ locale: "-",
+ name: "nfc/all.json",
+ nonlocale: true,
+ sync: options.sync,
+ loadParams: options.loadParams,
+ callback: ilib.bind(this, function (norm) {
+ ilib.data.norm.nfc = norm;
+ if (options && typeof(options.onLoad) === 'function') {
+ options.onLoad(this);
+ }
+ })
+ });
+ } else {
+ if (options && typeof(options.onLoad) === 'function') {
+ options.onLoad(this);
+ }
+ }
})
});
} else {
@@ -316,22 +332,22 @@ GlyphString.prototype.charIterator = function() {
};
this.next = function () {
var ch = this.nextChar || it.next(),
- prevCcc = ilib.data.norm.ccc[ch],
+ prevCcc = ilib.data.ccc[ch],
nextCcc,
composed = ch;
this.nextChar = undefined;
this.spacingCombining = false;
- if (ilib.data.norm.ccc &&
- (typeof(ilib.data.norm.ccc[ch]) === 'undefined' || ilib.data.norm.ccc[ch] === 0)) {
+ if (ilib.data.ccc &&
+ (typeof(ilib.data.ccc[ch]) === 'undefined' || ilib.data.ccc[ch] === 0)) {
// found a starter... find all the non-starters until the next starter. Must include
// the next starter because under some odd circumstances, two starters sometimes recompose
// together to form another character
var notdone = true;
while (it.hasNext() && notdone) {
this.nextChar = it.next();
- nextCcc = ilib.data.norm.ccc[this.nextChar];
+ nextCcc = ilib.data.ccc[this.nextChar];
var codePoint = IString.toCodePoint(this.nextChar, 0);
// Mn characters are Marks that are non-spacing. These do not take more room than an accent, so they should be
// considered part of the on-screen glyph, even if they are non-combining. Mc are marks that are spacing
diff --git a/js/lib/GregRataDie.js b/js/lib/GregRataDie.js
index d2cc97fa9e..8ee497e977 100644
--- a/js/lib/GregRataDie.js
+++ b/js/lib/GregRataDie.js
@@ -1,7 +1,7 @@
/*
* GregRataDie.js - Represent the RD date number in the Gregorian calendar
*
- * Copyright © 2014-2015, JEDLSoft
+ * Copyright © 2014-2015, 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,12 +17,6 @@
* limitations under the License.
*/
-/* !depends
-GregorianCal.js
-RataDie.js
-MathUtils.js
-*/
-
var MathUtils = require("./MathUtils.js");
var GregorianCal = require("./GregorianCal.js");
var RataDie = require("./RataDie.js");
@@ -185,4 +179,4 @@ GregRataDie.prototype._onOrBefore = function(rd, dayOfWeek) {
return rd - MathUtils.mod(Math.floor(rd) - dayOfWeek, 7);
};
-module.exports = GregRataDie;
\ No newline at end of file
+module.exports = GregRataDie;
diff --git a/js/lib/GregorianCal.js b/js/lib/GregorianCal.js
index 92817f94d4..f5c34ba0ad 100644
--- a/js/lib/GregorianCal.js
+++ b/js/lib/GregorianCal.js
@@ -1,7 +1,7 @@
/*
- * gregorian.js - Represent a Gregorian calendar object.
+ * GregorianCal.js - Represent a Gregorian calendar object.
*
- * Copyright © 2012-2015,2018, JEDLSoft
+ * Copyright © 2012-2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -18,8 +18,7 @@
*/
-/* !depends Calendar.js MathUtils.js */
-
+var Utils = require("./Utils.js");
var MathUtils = require("./MathUtils.js");
var Calendar = require("./Calendar.js");
diff --git a/js/lib/GregorianDate.js b/js/lib/GregorianDate.js
index cb3b21bfd1..d6502bcc9d 100644
--- a/js/lib/GregorianDate.js
+++ b/js/lib/GregorianDate.js
@@ -17,18 +17,6 @@
* limitations under the License.
*/
-/* !depends
-ilib.js
-IDate.js
-GregorianCal.js
-SearchUtils.js
-MathUtils.js
-Locale.js
-LocaleInfo.js
-GregRataDie.js
-TimeZone.js
-*/
-
var ilib = require("./ilib.js");
var SearchUtils = require("./SearchUtils.js");
var MathUtils = require("./MathUtils.js");
diff --git a/js/lib/HanCal.js b/js/lib/HanCal.js
index 34131541ff..182a7257c5 100644
--- a/js/lib/HanCal.js
+++ b/js/lib/HanCal.js
@@ -1,7 +1,7 @@
/*
- * han.js - Represent a Han Chinese Lunar calendar object.
+ * HanCal.js - Represent a Han Chinese Lunar calendar object.
*
- * Copyright © 2014-2015, JEDLSoft
+ * Copyright © 2014-2017, 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,16 +17,6 @@
* limitations under the License.
*/
-/* !depends
-ilib.js
-Calendar.js
-MathUtils.js
-Astro.js
-GregorianDate.js
-GregRataDie.js
-RataDie.js
-*/
-
var ilib = require("./ilib.js");
var MathUtils = require("./MathUtils.js");
diff --git a/js/lib/HanDate.js b/js/lib/HanDate.js
index 68b80a4e9f..ed2225c355 100644
--- a/js/lib/HanDate.js
+++ b/js/lib/HanDate.js
@@ -1,7 +1,7 @@
/*
* HanDate.js - Represent a date in the Han algorithmic calendar
*
- * Copyright © 2014-2015, JEDLSoft
+ * Copyright © 2014-2015, 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,21 +17,6 @@
* limitations under the License.
*/
-/* !depends
-ilib.js
-IDate.js
-GregorianDate.js
-HanCal.js
-Astro.js
-JSUtils.js
-MathUtils.js
-LocaleInfo.js
-Locale.js
-TimeZone.js
-HanRataDie.js
-RataDie.js
-*/
-
var ilib = require("./ilib.js");
var JSUtils = require("./JSUtils.js");
var MathUtils = require("./MathUtils.js");
diff --git a/js/lib/HanRataDie.js b/js/lib/HanRataDie.js
index e0c5e6ac9b..53acac9e50 100644
--- a/js/lib/HanRataDie.js
+++ b/js/lib/HanRataDie.js
@@ -17,13 +17,6 @@
* limitations under the License.
*/
-/* !depends
-ilib.js
-HanCal.js
-MathUtils.js
-RataDie.js
-*/
-
var ilib = require("./ilib.js");
var MathUtils = require("./MathUtils.js");
var HanCal = require("./HanCal.js");
diff --git a/js/lib/HebrewCal.js b/js/lib/HebrewCal.js
index f99e33055e..9ade37ab8c 100644
--- a/js/lib/HebrewCal.js
+++ b/js/lib/HebrewCal.js
@@ -1,5 +1,5 @@
/*
- * hebrew.js - Represent a Hebrew calendar object.
+ * HebrewCal.js - Represent a Hebrew calendar object.
*
* Copyright © 2012-2015,2018, JEDLSoft
*
@@ -17,9 +17,6 @@
* limitations under the License.
*/
-
-/* !depends Calendar.js MathUtils.js */
-
var MathUtils = require("./MathUtils.js");
var Calendar = require("./Calendar.js");
diff --git a/js/lib/HebrewDate.js b/js/lib/HebrewDate.js
index 4a9d848bb4..985d60a28b 100644
--- a/js/lib/HebrewDate.js
+++ b/js/lib/HebrewDate.js
@@ -17,17 +17,6 @@
* limitations under the License.
*/
-/* !depends
-ilib.js
-Locale.js
-LocaleInfo.js
-TimeZone.js
-IDate.js
-MathUtils.js
-HebrewCal.js
-HebrewRataDie.js
-*/
-
var ilib = require("./ilib.js");
var MathUtils = require("./MathUtils.js");
diff --git a/js/lib/HebrewRataDie.js b/js/lib/HebrewRataDie.js
index 9b2756b72b..b3a5f3d5c6 100644
--- a/js/lib/HebrewRataDie.js
+++ b/js/lib/HebrewRataDie.js
@@ -1,7 +1,7 @@
/*
* HebrewRataDie.js - Represent an RD date in the Hebrew calendar
*
- * Copyright © 2012-2015, JEDLSoft
+ * Copyright © 2012-2015, 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,12 +17,6 @@
* limitations under the License.
*/
-/* !depends
-MathUtils.js
-HebrewCal.js
-RataDie.js
-*/
-
var HebrewCal = require("./HebrewCal.js");
var MathUtils = require("./MathUtils.js");
var RataDie = require("./RataDie.js");
diff --git a/js/lib/IDate.js b/js/lib/IDate.js
index e7d34dc195..ebd9ea7165 100644
--- a/js/lib/IDate.js
+++ b/js/lib/IDate.js
@@ -2,7 +2,7 @@
* IDate.js - Represent a date in any calendar. This class is subclassed for each
* calendar and includes some shared functionality.
*
- * Copyright © 2012-2015, JEDLSoft
+ * Copyright © 2012-2015, 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -18,8 +18,6 @@
* limitations under the License.
*/
-/* !depends LocaleInfo.js */
-
var LocaleInfo = require("./LocaleInfo.js");
/**
diff --git a/js/lib/INumber.js b/js/lib/INumber.js
index 91d1f169c5..836038b676 100644
--- a/js/lib/INumber.js
+++ b/js/lib/INumber.js
@@ -17,16 +17,6 @@
* limitations under the License.
*/
-/*
-!depends
-ilib.js
-Locale.js
-isDigit.js
-isSpace.js
-LocaleInfo.js
-Currency.js
-*/
-
var ilib = require("./ilib.js");
var Locale = require("./Locale.js");
@@ -305,4 +295,4 @@ INumber.prototype = {
}
};
-module.exports = INumber;
\ No newline at end of file
+module.exports = INumber;
diff --git a/js/lib/ISO2022.js b/js/lib/ISO2022.js
index 27c741b519..cb6f892110 100644
--- a/js/lib/ISO2022.js
+++ b/js/lib/ISO2022.js
@@ -1,7 +1,7 @@
/*
* ISO2022.js - Implement the various ISO-2022 style mappings
*
- * Copyright © 2014-2015, JEDLSoft
+ * Copyright © 2014-2015, 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,8 +17,6 @@
* limitations under the License.
*/
-// !depends ilib.js Charmap.js
-
var Charset = require("./Charset.js");
var Charmap = require("./Charmap.js");
diff --git a/js/lib/ISet.js b/js/lib/ISet.js
index 47ed32085d..0feb9709fa 100644
--- a/js/lib/ISet.js
+++ b/js/lib/ISet.js
@@ -93,6 +93,8 @@ ISet.prototype.contains = function(element) {
return this.elements[element] || false;
};
+ISet.prototype.has = ISet.prototype.contains; // for compatibility with ES6
+
/**
* Returns true if this set contains no elements.
* @return {boolean}
diff --git a/js/lib/IString.js b/js/lib/IString.js
index 3c2a1e89ff..95b49d3e61 100644
--- a/js/lib/IString.js
+++ b/js/lib/IString.js
@@ -17,8 +17,6 @@
* limitations under the License.
*/
-// !depends ilib.js Utils.js Locale.js MathUtils.js
-
// !data plurals
var ilib = require("./ilib.js");
@@ -174,28 +172,19 @@ IString.loadPlurals = function (sync, locale, loadParams, onLoad) {
loc = new Locale(ilib.getLocale());
}
var spec = loc.getLanguage();
- if (!ilib.data["plurals_" + spec]) {
- Utils.loadData({
- name: "plurals.json",
- object: "IString",
- locale: loc,
- sync: sync,
- loadParams: loadParams,
- callback: ilib.bind(this, function(plurals) {
- if (!plurals) {
- ilib.data.cache.IString[spec] = IString.plurals_default;
- }
- ilib.data["plurals_" + spec] = plurals || IString.plurals_default;
- if (onLoad && typeof(onLoad) === 'function') {
- onLoad(ilib.data["plurals_" + spec]);
- }
- })
- });
- } else {
- if (onLoad && typeof(onLoad) === 'function') {
- onLoad(ilib.data["plurals_" + spec]);
- }
- }
+ Utils.loadData({
+ name: "plurals.json",
+ object: "IString",
+ locale: loc,
+ sync: sync,
+ loadParams: loadParams,
+ callback: ilib.bind(this, function(plurals) {
+ plurals = plurals || IString.plurals_default;
+ if (onLoad && typeof(onLoad) === 'function') {
+ onLoad(plurals);
+ }
+ })
+ });
};
/**
@@ -296,8 +285,7 @@ IString._fncs = {
var parts = [];
var numberDigits = {};
var operandSymbol = {};
- var integerPart, decimalPartLength, decimalPart;
-
+
if (numberToString.indexOf('.') !== -1) { //decimal
parts = numberToString.split('.', 2);
numberDigits.integerPart = parseInt(parts[0], 10);
@@ -651,7 +639,7 @@ IString.prototype = {
case "few":
case "many":
// CLDR locale-dependent number classes
- var ruleset = ilib.data["plurals_" + this.locale.getLanguage()];
+ var ruleset = ilib.data["plurals_" + this.locale.getLanguage()]|| IString.plurals_default;
if (ruleset) {
var rule = ruleset[limit];
return IString._fncs.getValue(rule, operandValue);
@@ -830,7 +818,7 @@ IString.prototype = {
var strings = [];
var i;
var parts;
- var arg;
+ var limit;
var result = undefined;
var defaultCase = "";
diff --git a/js/lib/IslamicCal.js b/js/lib/IslamicCal.js
index 71d039a0a1..bab2fe632d 100644
--- a/js/lib/IslamicCal.js
+++ b/js/lib/IslamicCal.js
@@ -1,7 +1,7 @@
/*
- * islamic.js - Represent a Islamic calendar object.
+ * IslamicCal.js - Represent a Islamic calendar object.
*
- * Copyright © 2012-2015,2018, JEDLSoft
+ * Copyright © 2012-2015, 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,12 +17,6 @@
* limitations under the License.
*/
-
-/* !depends
-Calendar.js
-MathUtils.js
-*/
-
var MathUtils = require("./MathUtils.js");
var Calendar = require("./Calendar.js");
diff --git a/js/lib/IslamicDate.js b/js/lib/IslamicDate.js
index 48e30748a3..4d152073bf 100644
--- a/js/lib/IslamicDate.js
+++ b/js/lib/IslamicDate.js
@@ -1,7 +1,7 @@
/*
- * islamicDate.js - Represent a date in the Islamic calendar
+ * IslamicDate.js - Represent a date in the Islamic calendar
*
- * Copyright © 2012-2015, JEDLSoft
+ * Copyright © 2012-2015, 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,18 +17,6 @@
* limitations under the License.
*/
-/* !depends
-ilib.js
-Locale.js
-LocaleInfo.js
-TimeZone.js
-IDate.js
-MathUtils.js
-SearchUtils.js
-IslamicCal.js
-IslamicRataDie.js
-*/
-
var ilib = require("./ilib.js");
var SearchUtils = require("./SearchUtils.js");
var MathUtils = require("./MathUtils.js");
@@ -389,4 +377,4 @@ IslamicDate.prototype.getCalendar = function() {
//register with the factory method
IDate._constructors["islamic"] = IslamicDate;
-module.exports = IslamicDate;
\ No newline at end of file
+module.exports = IslamicDate;
diff --git a/js/lib/IslamicRataDie.js b/js/lib/IslamicRataDie.js
index 68de582c88..5c362552a4 100644
--- a/js/lib/IslamicRataDie.js
+++ b/js/lib/IslamicRataDie.js
@@ -1,7 +1,7 @@
/*
* IslamicRataDie.js - Represent an RD date in the Islamic calendar
*
- * Copyright © 2012-2015, JEDLSoft
+ * Copyright © 2012-2015, 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,11 +17,6 @@
* limitations under the License.
*/
-/* !depends
-IslamicCal.js
-RataDie.js
-*/
-
var RataDie = require("./RataDie.js");
var IslamicCal = require("./IslamicCal.js");
diff --git a/js/lib/JSUtils.js b/js/lib/JSUtils.js
index 5fff70376a..c843fb3e1f 100644
--- a/js/lib/JSUtils.js
+++ b/js/lib/JSUtils.js
@@ -1,7 +1,7 @@
/*
* JSUtils.js - Misc utilities to work around Javascript engine differences
- *
- * Copyright © 2013-2015, JEDLSoft
+ *
+ * Copyright © 2013-2015, 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,18 +17,16 @@
* limitations under the License.
*/
-// !depends ilib.js
-
var ilib = require("./ilib.js");
var JSUtils = {};
/**
- * Perform a shallow copy of the source object to the target object. This only
- * copies the assignments of the source properties to the target properties,
+ * Perform a shallow copy of the source object to the target object. This only
+ * copies the assignments of the source properties to the target properties,
* but not recursively from there.
- *
- *
+ *
+ *
* @static
* @param {Object} source the source object to copy properties from
* @param {Object} target the target object to copy properties into
@@ -46,7 +44,7 @@ JSUtils.shallowCopy = function (source, target) {
/**
* Perform a recursive deep copy from the "from" object to the "deep" object.
- *
+ *
* @static
* @param {Object} from the object to copy from
* @param {Object} to the object to copy to
@@ -72,7 +70,7 @@ JSUtils.deepCopy = function(from, to) {
* Map a string to the given set of alternate characters. If the target set
* does not contain a particular character in the input string, then that
* character will be copied to the output unmapped.
- *
+ *
* @static
* @param {string} str a string to map to an alternate set of characters
* @param {Array.|Object} map a mapping to alternate characters
@@ -83,7 +81,7 @@ JSUtils.mapString = function (str, map) {
if (map && str) {
for (var i = 0; i < str.length; i++) {
var c = str.charAt(i); // TODO use a char iterator?
- mapped += map[c] || c;
+ mapped += map[c] || c;
}
} else {
mapped = str;
@@ -96,7 +94,7 @@ JSUtils.mapString = function (str, map) {
* support indexOf, it is used directly. Otherwise, this function implements it
* itself. The idea is to make sure that you can use the quick indexOf if it is
* available, but use a slower implementation in older engines as well.
- *
+ *
* @static
* @param {Array.} array array to search
* @param {Object|string|number} obj object being sought. This should be of the same type as the
@@ -122,7 +120,7 @@ JSUtils.indexOf = function(array, obj) {
/**
* Pad the str with zeros to the given length of digits.
- *
+ *
* @static
* @param {string|number} str the string or number to pad
* @param {number} length the desired total length of the output string, padded
@@ -138,8 +136,8 @@ JSUtils.pad = function (str, length, right) {
if (str.charAt(0) === '-') {
start++;
}
- return (str.length >= length+start) ? str :
- (right ? str + JSUtils.pad.zeros.substring(0,length-str.length+start) :
+ return (str.length >= length+start) ? str :
+ (right ? str + JSUtils.pad.zeros.substring(0,length-str.length+start) :
str.substring(0, start) + JSUtils.pad.zeros.substring(0,length-str.length+start) + str.substring(start));
};
@@ -149,7 +147,7 @@ JSUtils.pad.zeros = "00000000000000000000000000000000";
/**
* Convert a string into the hexadecimal representation
* of the Unicode characters in that string.
- *
+ *
* @static
* @param {string} string The string to convert
* @param {number=} limit the number of digits to use to represent the character (1 to 8)
@@ -157,10 +155,10 @@ JSUtils.pad.zeros = "00000000000000000000000000000000";
* Unicode characters in the input string
*/
JSUtils.toHexString = function(string, limit) {
- var i,
- result = "",
+ var i,
+ result = "",
lim = (limit && limit < 9) ? limit : 4;
-
+
if (!string) {
return "";
}
@@ -172,8 +170,8 @@ JSUtils.toHexString = function(string, limit) {
};
/**
- * Test whether an object in a Javascript Date.
- *
+ * Test whether an object in a Javascript Date.
+ *
* @static
* @param {Object|null|undefined} object The object to test
* @return {boolean} return true if the object is a Date
@@ -183,19 +181,19 @@ JSUtils.isDate = function(object) {
if (typeof(object) === 'object') {
return Object.prototype.toString.call(object) === '[object Date]';
}
- return false;
+ return false;
};
/**
* Merge the properties of object2 into object1 in a deep manner and return a merged
- * object. If the property exists in both objects, the value in object2 will overwrite
+ * object. If the property exists in both objects, the value in object2 will overwrite
* the value in object1. If a property exists in object1, but not in object2, its value
- * will not be touched. If a property exists in object2, but not in object1, it will be
+ * will not be touched. If a property exists in object2, but not in object1, it will be
* added to the merged result.
- *
+ *
* Name1 and name2 are for creating debug output only. They are not necessary.
- *
- *
+ *
+ *
* @static
* @param {*} object1 the object to merge into
* @param {*} object2 the object to merge
@@ -238,19 +236,19 @@ JSUtils.merge = function (object1, object2, replace, name1, name2) {
/**
* Return true if the given object has no properties.
- *
- *
+ *
+ *
* @static
* @param {Object} obj the object to check
* @return {boolean} true if the given object has no properties, false otherwise
*/
JSUtils.isEmpty = function (obj) {
var prop = undefined;
-
+
if (!obj) {
return true;
}
-
+
for (prop in obj) {
if (prop && typeof(obj[prop]) !== 'undefined') {
return false;
@@ -264,15 +262,15 @@ JSUtils.isEmpty = function (obj) {
*/
JSUtils.hashCode = function(obj) {
var hash = 0;
-
+
function addHash(hash, newValue) {
// co-prime numbers creates a nicely distributed hash
hash *= 65543;
hash += newValue;
- hash %= 2147483647;
+ hash %= 2147483647;
return hash;
}
-
+
function stringHash(str) {
var hash = 0;
for (var i = 0; i < str.length; i++) {
@@ -280,7 +278,7 @@ JSUtils.hashCode = function(obj) {
}
return hash;
}
-
+
switch (typeof(obj)) {
case 'undefined':
hash = 0;
@@ -311,9 +309,34 @@ JSUtils.hashCode = function(obj) {
}
break;
}
-
+
return hash;
};
+/**
+ * Calls the given action function on each element in the given
+ * array arr in order and finally call the given callback when they are
+ * all done. The action function should take the array to
+ * process as its parameter, and a callback function. It should
+ * process the first element in the array and then call its callback
+ * function with the result of processing that element (if any).
+ *
+ * @param {Array.} arr the array to process
+ * @param {Function(Array., Function(*))} action the action
+ * to perform on each element of the array
+ * @param {Function(*)} callback the callback function to call
+ * with the results of processing each element of the array.
+ */
+JSUtils.callAll = function(arr, action, callback, results) {
+ results = results || [];
+ if (arr && arr.length) {
+ action(arr, function(result) {
+ results.push(result);
+ JSUtils.callAll(arr.slice(1), action, callback, results);
+ });
+ } else {
+ callback(results);
+ }
+};
module.exports = JSUtils;
diff --git a/js/lib/JulianCal.js b/js/lib/JulianCal.js
index 35c87bc9a5..f7f6cea6d5 100644
--- a/js/lib/JulianCal.js
+++ b/js/lib/JulianCal.js
@@ -1,7 +1,7 @@
/*
- * julian.js - Represent a Julian calendar object.
+ * JulianCal.js - Represent a Julian calendar object.
*
- * Copyright © 2012-2015,2018, JEDLSoft
+ * Copyright © 2012-2017, 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,9 +17,6 @@
* limitations under the License.
*/
-
-/* !depends Calendar.js MathUtils.js */
-
var MathUtils = require("./MathUtils.js");
var Calendar = require("./Calendar.js");
diff --git a/js/lib/JulianDate.js b/js/lib/JulianDate.js
index f9a406dd3a..cbf3ee922e 100644
--- a/js/lib/JulianDate.js
+++ b/js/lib/JulianDate.js
@@ -1,7 +1,7 @@
/*
* JulianDate.js - Represent a date in the Julian calendar
*
- * Copyright © 2012-2015, JEDLSoft
+ * Copyright © 2012-2015, 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,18 +17,6 @@
* limitations under the License.
*/
-/* !depends
-ilib.js
-Locale.js
-IDate.js
-TimeZone.js
-JulianCal.js
-SearchUtils.js
-MathUtils.js
-LocaleInfo.js
-JulianRataDie.js
-*/
-
var ilib = require("./ilib.js");
var SearchUtils = require("./SearchUtils.js");
var MathUtils = require("./MathUtils.js");
@@ -339,4 +327,4 @@ JulianDate.prototype.getCalendar = function() {
//register with the factory method
IDate._constructors["julian"] = JulianDate;
-module.exports = JulianDate;
\ No newline at end of file
+module.exports = JulianDate;
diff --git a/js/lib/JulianRataDie.js b/js/lib/JulianRataDie.js
index 1e417accf1..15fa76ff7c 100644
--- a/js/lib/JulianRataDie.js
+++ b/js/lib/JulianRataDie.js
@@ -1,7 +1,7 @@
/*
- * julianDate.js - Represent a date in the Julian calendar
+ * JulianDate.js - Represent a date in the Julian calendar
*
- * Copyright © 2012-2015, JEDLSoft
+ * Copyright © 2012-2015, 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,11 +17,6 @@
* limitations under the License.
*/
-/* !depends
-JulianCal.js
-RataDie.js
-*/
-
var RataDie = require("./RataDie.js");
var JulianCal = require("./JulianCal.js");
diff --git a/js/lib/LengthUnit.js b/js/lib/LengthUnit.js
index b3a62d9e3b..196baaab92 100644
--- a/js/lib/LengthUnit.js
+++ b/js/lib/LengthUnit.js
@@ -272,4 +272,4 @@ LengthUnit.getMeasures = function () {
//register with the factory method
Measurement._constructors["length"] = LengthUnit;
-module.exports = LengthUnit;
\ No newline at end of file
+module.exports = LengthUnit;
diff --git a/js/lib/ListFmt.js b/js/lib/ListFmt.js
index 193b6c3fcc..d5159bf12f 100644
--- a/js/lib/ListFmt.js
+++ b/js/lib/ListFmt.js
@@ -1,7 +1,7 @@
/*
* ListFmt.js - Represent a list formatter.
*
- * Copyright © 2017, JEDLSoft
+ * Copyright © 2017-2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,12 +17,6 @@
* limitations under the License.
*/
-/*
-!depends
-ilib.js
-Utils.js
-Locale.js
-*/
// !data list
@@ -108,7 +102,7 @@ var ListFmt = function(options) {
Utils.loadData({
name: "list.json",
- object: ListFmt,
+ object: "ListFmt",
locale: this.locale,
sync: this.sync,
loadParams: this.loadParams,
diff --git a/js/lib/Loader.js b/js/lib/Loader.js
index 3acb9eacba..3ba32dcd64 100644
--- a/js/lib/Loader.js
+++ b/js/lib/Loader.js
@@ -17,8 +17,6 @@
* limitations under the License.
*/
-/* !depends ilib.js Path.js */
-
var Path = require("./Path.js");
var ilib = require("./ilib.js");
@@ -96,18 +94,7 @@ Loader.prototype.loadFiles = function(paths, sync, params, callback) {
//console.log("nothing to load");
return;
}
-
- if (params && params.returnOne) {
- // Only return the most locale-specific data. Do this by searching backwards
- // in the list of paths.
- var pathname;
- var tmp = [];
- while ((pathname = paths.pop()) !== undefined) {
- tmp.push(pathname);
- }
- paths = tmp;
- }
-
+
//console.log("generic loader: attempting to load these files: " + JSON.stringify(paths) + "\n");
if (sync) {
var ret = [];
@@ -118,9 +105,6 @@ Loader.prototype.loadFiles = function(paths, sync, params, callback) {
for (var i = 0; i < paths.length; i++) {
var text = this._loadFileAlongIncludePath(includePath, Path.normalize(paths[i]));
ret.push(typeof(text) === "string" ? JSON.parse(text) : text);
- if (params && params.returnOne && text) {
- break;
- }
};
// only call the callback at the end of the chain of files
@@ -280,4 +264,4 @@ Loader.prototype.isAvailable = function(file, sync, cb) {
}));
};
-module.exports = Loader;
+module.exports = Loader;
\ No newline at end of file
diff --git a/js/lib/Locale.js b/js/lib/Locale.js
index 836b0db3a5..a52726a245 100644
--- a/js/lib/Locale.js
+++ b/js/lib/Locale.js
@@ -1,7 +1,7 @@
/*
* Locale.js - Locale specifier definition
*
- * Copyright © 2012-2015, JEDLSoft
+ * Copyright © 2012-2015, 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,8 +17,6 @@
* limitations under the License.
*/
-// !depends ilib.js JSUtils.js
-
var ilib = require("./ilib.js");
var JSUtils = require("./JSUtils.js");
@@ -854,9 +852,8 @@ Locale.prototype = {
/**
* @private
*/
-Locale.locales = [
- // !macro localelist
-];
+Locale.locales = [];
+// !macro localelist
/**
* Return the list of available locales that this iLib file supports.
diff --git a/js/lib/LocaleInfo.js b/js/lib/LocaleInfo.js
index 7747590a98..f616efe1e4 100644
--- a/js/lib/LocaleInfo.js
+++ b/js/lib/LocaleInfo.js
@@ -1,7 +1,7 @@
/*
* LocaleInfo.js - Encode locale-specific defaults
*
- * Copyright © 2012-2015, JEDLSoft
+ * Copyright © 2012-2015, 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,8 +17,6 @@
* limitations under the License.
*/
-// !depends ilib.js Locale.js Utils.js
-
// !data localeinfo
var ilib = require("./ilib.js");
@@ -129,10 +127,6 @@ var LocaleInfo = function(locale, options) {
}
}
- if (!ilib.data.cache.LocaleInfo) {
- ilib.data.cache.LocaleInfo = {};
- }
-
Utils.loadData({
object: "LocaleInfo",
locale: this.locale,
@@ -140,12 +134,7 @@ var LocaleInfo = function(locale, options) {
sync: sync,
loadParams: loadParams,
callback: ilib.bind(this, function (info) {
- if (!info) {
- info = LocaleInfo.defaultInfo;
- var spec = this.locale.getSpec().replace(/-/g, "_");
- ilib.data.cache.LocaleInfo[spec] = info;
- }
- this.info = info;
+ this.info = info || LocaleInfo.defaultInfo;
if (options && typeof(options.onLoad) === 'function') {
options.onLoad(this);
}
diff --git a/js/lib/LocaleMatcher.js b/js/lib/LocaleMatcher.js
index 4e740a520f..4f2af9a69c 100644
--- a/js/lib/LocaleMatcher.js
+++ b/js/lib/LocaleMatcher.js
@@ -1,7 +1,7 @@
/*
* LocaleMatcher.js - Locale matcher definition
*
- * Copyright © 2013-2015, JEDLSoft
+ * Copyright © 2013-2015, 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,7 +17,6 @@
* limitations under the License.
*/
-// !depends ilib.js Locale.js Utils.js
// !data localematch
var ilib = require("./ilib.js");
@@ -95,8 +94,6 @@ var LocaleMatcher = function(options) {
callback: ilib.bind(this, function (info) {
if (!info) {
info = {};
- var spec = this.locale.getSpec().replace(/-/g, "_");
- ilib.data.cache.LocaleMatcher[spec] = info;
}
/** @type {Object.} */
this.info = info;
diff --git a/js/lib/MassUnit.js b/js/lib/MassUnit.js
index 0c22457eeb..d96cdc20b7 100644
--- a/js/lib/MassUnit.js
+++ b/js/lib/MassUnit.js
@@ -260,4 +260,4 @@ MassUnit.getMeasures = function () {
//register with the factory method
Measurement._constructors["mass"] = MassUnit;
-module.exports = MassUnit;
\ No newline at end of file
+module.exports = MassUnit;
diff --git a/js/lib/MeasurementFactory.js b/js/lib/MeasurementFactory.js
index 88a582e551..fe5c778ea5 100644
--- a/js/lib/MeasurementFactory.js
+++ b/js/lib/MeasurementFactory.js
@@ -2,7 +2,7 @@
* MeasurementFactory.js - Function to instantiate the appropriate subclasses of
* the Measurement class.
*
- * Copyright © 2015, JEDLSoft
+ * Copyright © 2015, 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/js/lib/Name.js b/js/lib/Name.js
index 101072a7cb..d994dc745a 100644
--- a/js/lib/Name.js
+++ b/js/lib/Name.js
@@ -17,18 +17,6 @@
* limitations under the License.
*/
-/* !depends
-ilib.js
-Locale.js
-Utils.js
-isAlpha.js
-isIdeo.js
-isPunct.js
-isSpace.js
-JSUtils.js
-IString.js
-*/
-
// !data name
// notes:
@@ -178,8 +166,6 @@ var Name = function (name, options) {
callback: ilib.bind(this, function (info) {
if (!info) {
info = Name.defaultInfo[this.style || "western"];
- var spec = this.locale.getSpec().replace(/-/g, "_");
- ilib.data.cache.Name[spec] = info;
}
if (typeof (name) === 'object') {
// copy constructor
diff --git a/js/lib/NameFmt.js b/js/lib/NameFmt.js
index 958d839075..6275e67386 100644
--- a/js/lib/NameFmt.js
+++ b/js/lib/NameFmt.js
@@ -1,7 +1,7 @@
/*
* NameFmt.js - Format person names for display
*
- * Copyright © 2013-2015, JEDLSoft
+ * Copyright © 2013-2015, 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,15 +17,6 @@
* limitations under the License.
*/
-/* !depends
-ilib.js
-Locale.js
-IString.js
-Name.js
-isPunct.js
-Utils.js
-*/
-
// !data name
var ilib = require("./ilib.js");
@@ -201,12 +192,7 @@ var NameFmt = function(options) {
sync: sync,
loadParams: this.loadParams,
callback: ilib.bind(this, function (info) {
- if (!info) {
- info = Name.defaultInfo;
- var spec = this.locale.getSpec().replace(/-/g, "_");
- ilib.data.cache.Name[spec] = info;
- }
- this.info = info;
+ this.info = info || Name.defaultInfo;;
this._init();
if (options && typeof(options.onLoad) === 'function') {
options.onLoad(this);
diff --git a/js/lib/NormString.js b/js/lib/NormString.js
index 27f4dcbf87..25f8da1456 100644
--- a/js/lib/NormString.js
+++ b/js/lib/NormString.js
@@ -1,7 +1,7 @@
/*
* NormString.js - ilib normalized string subclass definition
- *
- * Copyright © 2013-2015, JEDLSoft
+ *
+ * Copyright © 2013-2015, 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,7 +17,7 @@
* limitations under the License.
*/
-// !depends IString.js GlyphString.js Utils.js
+// !data ccc nfd nfc nfkd nfkc
var ilib = require("./ilib.js");
var Utils = require("./Utils.js");
@@ -71,7 +71,7 @@ NormString.prototype.constructor = NormString;
/**
* Initialize the normalized string routines statically. This
* is intended to be called in a dynamic-load version of ilib
- * to load the data need to normalize strings before any instances
+ * to load the data needed to normalize strings before any instances
* of NormString are created.
*
* The options parameter may contain any of the following properties:
@@ -114,36 +114,37 @@ NormString.init = function(options) {
var formDependencies = {
"nfd": ["nfd"],
- "nfc": ["nfd"],
+ "nfc": ["nfc", "nfd"],
"nfkd": ["nfkd", "nfd"],
- "nfkc": ["nfkd", "nfd"]
+ "nfkc": ["nfc", "nfkd", "nfd"]
};
- var files = ["normdata.json"];
+ var files = [];
var forms = formDependencies[form];
- for (var f in forms) {
- files.push(forms[f] + "/" + script + ".json");
- }
+ var toLoad = [];
+ forms.forEach(function(f) {
+ if (!ilib.data.norm[f] || JSUtils.isEmpty(ilib.data.norm[f])) {
+ files.push(f + "/" + script + ".json");
+ toLoad.push(f);
+ }
+ });
- if (!ilib.data.norm || JSUtils.isEmpty(ilib.data.norm.ccc)) {
+ if (files.length || !ilib.data.ccc || JSUtils.isEmpty(ilib.data.ccc)) {
Utils.loadData({
object: "NormString",
- name: "normdata.json",
+ name: "ccc.json",
locale: "-",
nonlocale: true,
sync: sync,
loadParams: loadParams,
- callback: ilib.bind(this, function(normdata) {
- if (!normdata) {
- ilib.data.cache.normdata = normdata;
- }
-
- if (JSUtils.isEmpty(ilib.data.norm.ccc) || JSUtils.isEmpty(ilib.data.norm.nfd) || JSUtils.isEmpty(ilib.data.norm.nfkd)) {
+ callback: ilib.bind(this, function(normdata){
+ ilib.data.ccc = normdata;
+
+ if (files.length) {
//console.log("loading files " + JSON.stringify(files));
Utils._callLoadData(files, sync, loadParams, function(arr) {
- ilib.extend(ilib.data.norm, arr[0]);
- for (var i = 1; i < arr.length; i++) {
+ for (var i = 0; i < arr.length; i++) {
if (typeof(arr[i]) !== 'undefined') {
- ilib.extend(ilib.data.norm[forms[i-1]], arr[i]);
+ ilib.extend(ilib.data.norm[toLoad[i]], arr[i]);
}
}
if (options && typeof(options.onLoad) === 'function') {
@@ -305,10 +306,13 @@ NormString._expand = function (ch, canon, compat) {
*
* The normalization data is organized by normalization form and within there
* by script. To include the normalization data for a particular script with
- * a particular normalization form, use the directive:
- *
+ * a particular normalization form, use the following require:
+ *
*
- * !depends <form>/<script>.js
+ * NormString.init({
+ * form: "<form>",
+ * script: "<script>"
+ * });
*
*
* Where <form> is the normalization form ("nfd", "nfc", "nfkd", or "nfkc"), and
@@ -316,7 +320,10 @@ NormString._expand = function (ch, canon, compat) {
* support. Example: to load in the NFC data for Cyrillic, you would use:
*
*
- * !depends nfc/Cyrl.js
+ * NormString.init({
+ * form: "nfc",
+ * script: "Cyrl"
+ * });
*
*
* Note that because certain normalization forms include others in their algorithm,
@@ -343,15 +350,15 @@ NormString._expand = function (ch, canon, compat) {
* that are commonly used in many different scripts. Examples of characters in the
* Common script are the ASCII punctuation characters, or the ASCII Arabic
* numerals "0" through "9".
- *
- * By default, none of the data for normalization is automatically
- * included in the preassembled iliball.js file.
+ *
+ * By default, none of the data for normalization is automatically
+ * included in the preassembled ilib files. (For size "full".)
* If you would like to normalize strings, you must assemble
* your own copy of ilib and explicitly include the normalization data
- * for those scripts as per the instructions above. This normalization method will
- * produce output, even without the normalization data. However, the output will be
- * simply the same thing as its input for all scripts
- * except Korean Hangul and Jamo, which are decomposed and recomposed
+ * for those scripts. This normalization method will
+ * produce output, even without the normalization data. However, the output will be
+ * simply the same thing as its input for all scripts
+ * except Korean Hangul and Jamo, which are decomposed and recomposed
* algorithmically and therefore do not rely on data.
*
* If characters are encountered for which there are no normalization data, they
@@ -409,11 +416,11 @@ NormString.prototype.normalize = function (form) {
// now put the combining marks in a fixed order by
// sorting on the combining class
function compareByCCC(left, right) {
- return ilib.data.norm.ccc[left] - ilib.data.norm.ccc[right];
+ return ilib.data.ccc[left] - ilib.data.ccc[right];
}
function ccc(c) {
- return ilib.data.norm.ccc[c] || 0;
+ return ilib.data.ccc[c] || 0;
}
function sortChars(arr, comp) {
@@ -451,11 +458,11 @@ NormString.prototype.normalize = function (form) {
i = 0;
while (i < cpArray.length) {
- if (typeof(ilib.data.norm.ccc[cpArray[i]]) !== 'undefined' && ccc(cpArray[i]) !== 0) {
+ if (typeof(ilib.data.ccc[cpArray[i]]) !== 'undefined' && ccc(cpArray[i]) !== 0) {
// found a non-starter... rearrange all the non-starters until the next starter
end = i+1;
while (end < cpArray.length &&
- typeof(ilib.data.norm.ccc[cpArray[end]]) !== 'undefined' &&
+ typeof(ilib.data.ccc[cpArray[end]]) !== 'undefined' &&
ccc(cpArray[end]) !== 0) {
end++;
}
@@ -471,17 +478,17 @@ NormString.prototype.normalize = function (form) {
if (nfc) {
i = 0;
while (i < cpArray.length) {
- if (typeof(ilib.data.norm.ccc[cpArray[i]]) === 'undefined' || ilib.data.norm.ccc[cpArray[i]] === 0) {
+ if (typeof(ilib.data.ccc[cpArray[i]]) === 'undefined' || ilib.data.ccc[cpArray[i]] === 0) {
// found a starter... find all the non-starters until the next starter. Must include
// the next starter because under some odd circumstances, two starters sometimes recompose
// together to form another character
end = i+1;
var notdone = true;
while (end < cpArray.length && notdone) {
- if (typeof(ilib.data.norm.ccc[cpArray[end]]) !== 'undefined' &&
- ilib.data.norm.ccc[cpArray[end]] !== 0) {
- if (ccc(cpArray[end-1]) < ccc(cpArray[end])) {
- // not blocked
+ if (typeof(ilib.data.ccc[cpArray[end]]) !== 'undefined' &&
+ ilib.data.ccc[cpArray[end]] !== 0) {
+ if (ccc(cpArray[end-1]) < ccc(cpArray[end])) {
+ // not blocked
testChar = GlyphString._compose(cpArray[i], cpArray[end]);
if (typeof(testChar) !== 'undefined') {
cpArray[i] = testChar;
@@ -559,7 +566,7 @@ NormString.prototype.charIterator = function() {
* @private
*/
var ccc = function(c) {
- return ilib.data.norm.ccc[c] || 0;
+ return ilib.data.ccc[c] || 0;
};
this.index = 0;
@@ -574,8 +581,8 @@ NormString.prototype.charIterator = function() {
this.nextChar = undefined;
- if (ilib.data.norm.ccc &&
- (typeof(ilib.data.norm.ccc[ch]) === 'undefined' || ccc(ch) === 0)) {
+ if (ilib.data.ccc &&
+ (typeof(ilib.data.ccc[ch]) === 'undefined' || ccc(ch) === 0)) {
// found a starter... find all the non-starters until the next starter. Must include
// the next starter because under some odd circumstances, two starters sometimes recompose
// together to form another character
@@ -583,7 +590,7 @@ NormString.prototype.charIterator = function() {
while (it.hasNext() && notdone) {
this.nextChar = it.next();
nextCcc = ccc(this.nextChar);
- if (typeof(ilib.data.norm.ccc[this.nextChar]) !== 'undefined' && nextCcc !== 0) {
+ if (typeof(ilib.data.ccc[this.nextChar]) !== 'undefined' && nextCcc !== 0) {
ch += this.nextChar;
this.nextChar = undefined;
} else {
diff --git a/js/lib/NumFmt.js b/js/lib/NumFmt.js
index d809f59d2a..d91374bbd1 100644
--- a/js/lib/NumFmt.js
+++ b/js/lib/NumFmt.js
@@ -677,4 +677,4 @@ NumFmt.prototype = {
}
};
-module.exports = NumFmt;
\ No newline at end of file
+module.exports = NumFmt;
diff --git a/js/lib/NumberingPlan.js b/js/lib/NumberingPlan.js
index 4a93c1d0f9..99e4602e39 100644
--- a/js/lib/NumberingPlan.js
+++ b/js/lib/NumberingPlan.js
@@ -1,7 +1,7 @@
/*
* NumPlan.js - Represent a phone numbering plan.
*
- * Copyright © 2014-2015, JEDLSoft
+ * Copyright © 2014-2015, 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,13 +17,6 @@
* limitations under the License.
*/
-/*
-!depends
-ilib.js
-Locale.js
-Utils.js
-*/
-
// !data numplan
var ilib = require("./ilib.js");
@@ -240,4 +233,4 @@ NumberingPlan.prototype = {
}
};
-module.exports = NumberingPlan;
\ No newline at end of file
+module.exports = NumberingPlan;
diff --git a/js/lib/Path.js b/js/lib/Path.js
index f66924afc3..81ff6a858c 100644
--- a/js/lib/Path.js
+++ b/js/lib/Path.js
@@ -1,6 +1,6 @@
/*
* Path.js - minimal pure js implementation of the nodejs path module
- *
+ *
* Copyright © 2015, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -18,57 +18,84 @@
*/
var Path = {
- /**
- * Return the parent directory of the given pathname
- * similar to the dirname shell function.
- * @static
- * @param {string} pathname path to check
- * @return {string} the parent dir of the given pathname
- */
- dirname: function(pathname) {
- pathname = pathname.replace(/\\/g, "/");
- var i = pathname.lastIndexOf("/");
- return i !== -1 ? pathname.substring(0,i) : pathname;
- },
-
- /**
- * Return the normalized version of the given pathname. This
- * cleans up things like double directory separators and such.
- * @static
- * @param {string} pathname path to check
- * @return {string} the normalized version of the given pathname
- */
- normalize: function(pathname) {
- if (pathname) {
- pathname = pathname.replace(/\\/g, "/");
- pathname = pathname.replace(/\/\//g, "/");
- pathname = pathname.replace(/\/[^/]*[^\./]\/\.\./g, "/.");
- pathname = pathname.replace(/\/\//g, "/");
- pathname = pathname.replace(/\/\.\//g, "/");
- pathname = pathname.replace(/^\.\//, "");
- pathname = pathname.replace(/\/\//g, "/");
- pathname = pathname.replace(/\/\.$/, "/");
- pathname = pathname.replace(/\/\//g, "/");
- if (pathname.length > 1) pathname = pathname.replace(/\/$/, "");
- if (pathname.length === 0) pathname = '.';
- }
- return pathname;
- },
-
- /**
- * Return a path that is the concatenation of all the of the arguments
- * which each name a path segment.
- * @static
- * @param {...string} var_args
- * @return {string} the concatenated pathname
- */
- join: function(var_args) {
- var arr = [];
- for (var i = 0; i < arguments.length; i++) {
- arr.push(arguments[i] && arguments[i].length > 0 ? arguments[i] : ".");
- }
- return Path.normalize(arr.join("/"));
- }
+ /**
+ * Return the parent directory of the given pathname
+ * similar to the dirname shell function.
+ * @static
+ * @param {string} pathname path to check
+ * @return {string} the parent dir of the given pathname
+ */
+ dirname: function(pathname) {
+ if (!pathname) return pathname;
+ pathname = Path.normalize(pathname);
+ return (pathname === ".") ? ".." : Path.normalize(pathname + "/..");
+ },
+
+ /**
+ * Return the normalized version of the given pathname. This
+ * cleans up things like double directory separators and such.
+ * @static
+ * @param {string} pathname path to check
+ * @return {string} the normalized version of the given pathname
+ */
+ normalize: function(pathname) {
+ if (pathname) {
+ pathname = pathname.replace(/\\/g, "/");
+ pathname = pathname.replace(/\/\//g, "/");
+ pathname = pathname.replace(/\/\//g, "/");
+ pathname = pathname.replace(/\/[^/]*[^\./]\/\.\./g, "/.");
+ pathname = pathname.replace(/^[^/]*[^\./]\/\.\./g, ".");
+ pathname = pathname.replace(/\/\.\//g, "/");
+ pathname = pathname.replace(/^\.\//, "");
+ pathname = pathname.replace(/\/\//g, "/");
+ pathname = pathname.replace(/\/\.$/, "");
+ pathname = pathname.replace(/\/\//g, "/");
+ if (pathname.length > 1) pathname = pathname.replace(/\/$/, "");
+ if (pathname.length === 0) pathname = '.';
+ }
+ return pathname;
+ },
+
+ /**
+ * Return a path that is the concatenation of all the of the arguments
+ * which each name a path segment.
+ * @static
+ * @param {...string} var_args
+ * @return {string} the concatenated pathname
+ */
+ join: function(var_args) {
+ var arr = [];
+ for (var i = 0; i < arguments.length; i++) {
+ arr.push(arguments[i] && arguments[i].length > 0 ? arguments[i] : ".");
+ }
+ return Path.normalize(arr.join("/"));
+ },
+
+ /**
+ * Return the base file name of the path. If the extension is given,
+ * with or without the leading dot, then the extension is removed from
+ * the base name.
+ * @param {string} pathname the path to take the base name of
+ * @param {string|undefined} extension the optional extension to remove
+ * @return {string} the base name of the file without the extension
+ */
+ basename: function(pathname, extension) {
+ var base = pathname;
+ var slash = pathname.lastIndexOf("/");
+ if (slash !== -1) {
+ base = pathname.substring(slash+1);
+ }
+
+ if (extension) {
+ var ext = extension[0] === "." ? extension : "." + extension;
+ var index = base.lastIndexOf(ext);
+ if (index > -1) {
+ base = base.substring(0, index);
+ }
+ }
+
+ return base;
+ }
};
module.exports = Path;
diff --git a/js/lib/PersAlgoRataDie.js b/js/lib/PersAlgoRataDie.js
index 9b07b6968d..ae8dcf1321 100644
--- a/js/lib/PersAlgoRataDie.js
+++ b/js/lib/PersAlgoRataDie.js
@@ -1,7 +1,7 @@
/*
* PersAlsoRataDie.js - Represent an RD date in the Persian algorithmic calendar
*
- * Copyright © 2014-2015, JEDLSoft
+ * Copyright © 2014-2015, 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,12 +17,6 @@
* limitations under the License.
*/
-/* !depends
-PersianAlgoCal.js
-MathUtils.js
-RataDie.js
-*/
-
var MathUtils = require("./MathUtils.js");
var PersianAlgoCal = require("./PersianAlgoCal.js");
var RataDie = require("./RataDie.js");
diff --git a/js/lib/PersRataDie.js b/js/lib/PersRataDie.js
index ad2d09cead..4fa2ce6c67 100644
--- a/js/lib/PersRataDie.js
+++ b/js/lib/PersRataDie.js
@@ -1,7 +1,7 @@
/*
- * persratadie.js - Represent a rata die date in the Persian calendar
+ * PersRataDie.js - Represent a rata die date in the Persian calendar
*
- * Copyright © 2014-2015, JEDLSoft
+ * Copyright © 2014-2015, 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,14 +17,6 @@
* limitations under the License.
*/
-/* !depends
-ilib.js
-MathUtils.js
-RataDie.js
-Astro.js
-GregorianDate.js
-*/
-
var ilib = require("./ilib.js");
var MathUtils = require("./MathUtils.js");
@@ -32,7 +24,6 @@ var Astro = require("./Astro.js");
var RataDie = require("./RataDie.js");
var GregorianDate = require("./GregorianDate.js");
-
/**
* @class
* Construct a new Persian RD date number object. The constructor parameters can
diff --git a/js/lib/PersianAlgoCal.js b/js/lib/PersianAlgoCal.js
index dd7c6321c3..5c7c6c8afd 100644
--- a/js/lib/PersianAlgoCal.js
+++ b/js/lib/PersianAlgoCal.js
@@ -17,9 +17,6 @@
* limitations under the License.
*/
-
-/* !depends Calendar.js MathUtils.js */
-
var MathUtils = require("./MathUtils.js");
var Calendar = require("./Calendar.js");
diff --git a/js/lib/PersianAlgoDate.js b/js/lib/PersianAlgoDate.js
index a9ce06aecd..4f354d42c6 100644
--- a/js/lib/PersianAlgoDate.js
+++ b/js/lib/PersianAlgoDate.js
@@ -1,7 +1,7 @@
/*
* PersianAlgoDate.js - Represent a date in the Persian algorithmic calendar
*
- * Copyright © 2014-2015, JEDLSoft
+ * Copyright © 2014-2015, 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,18 +17,6 @@
* limitations under the License.
*/
-/* !depends
-ilib.js
-Locale.js
-LocaleInfo.js
-TimeZone.js
-IDate.js
-PersianAlgoCal.js
-SearchUtils.js
-MathUtils.js
-PersAlgoRataDie.js
-*/
-
var ilib = require("./ilib.js");
var SearchUtils = require("./SearchUtils.js");
var MathUtils = require("./MathUtils.js");
diff --git a/js/lib/PersianCal.js b/js/lib/PersianCal.js
index 612c2ff5a1..6d98ad24f6 100644
--- a/js/lib/PersianCal.js
+++ b/js/lib/PersianCal.js
@@ -18,11 +18,6 @@
*/
-/* !depends
-Calendar.js
-PersRataDie.js
-*/
-
var Calendar = require("./Calendar.js");
var PersRataDie = require("./PersRataDie.js");
diff --git a/js/lib/PersianDate.js b/js/lib/PersianDate.js
index ff78914130..e179c55796 100644
--- a/js/lib/PersianDate.js
+++ b/js/lib/PersianDate.js
@@ -1,7 +1,7 @@
/*
* PersianDate.js - Represent a date in the Persian astronomical (Hijjri) calendar
*
- * Copyright © 2014-2015, JEDLSoft
+ * Copyright © 2014-2015, 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,22 +17,6 @@
* limitations under the License.
*/
-/* !depends
-ilib.js
-Locale.js
-TimeZone.js
-IDate.js
-PersRataDie.js
-PersianCal.js
-SearchUtils.js
-MathUtils.js
-JSUtils.js
-LocaleInfo.js
-Astro.js
-*/
-
-// !data astro
-
var ilib = require("./ilib.js");
var SearchUtils = require("./SearchUtils.js");
var MathUtils = require("./MathUtils.js");
@@ -422,4 +406,4 @@ PersianDate.prototype.getCalendar = function() {
// register with the factory method
IDate._constructors["persian"] = PersianDate;
-module.exports = PersianDate;
\ No newline at end of file
+module.exports = PersianDate;
diff --git a/js/lib/PhoneFmt.js b/js/lib/PhoneFmt.js
index fd81b1be14..62cfd9d599 100644
--- a/js/lib/PhoneFmt.js
+++ b/js/lib/PhoneFmt.js
@@ -1,7 +1,7 @@
/*
* phonefmt.js - Represent a phone number formatter.
*
- * Copyright © 2014-2015, JEDLSoft
+ * Copyright © 2014-2015, 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,17 +17,6 @@
* limitations under the License.
*/
-/*
-!depends
-ilib.js
-Locale.js
-NumberingPlan.js
-PhoneNumber.js
-PhoneLocale.js
-Utils.js
-JSUtils.js
-*/
-
// !data phonefmt
var ilib = require("./ilib.js");
diff --git a/js/lib/PhoneGeoLocator.js b/js/lib/PhoneGeoLocator.js
index b05d254926..bbf731ba37 100644
--- a/js/lib/PhoneGeoLocator.js
+++ b/js/lib/PhoneGeoLocator.js
@@ -1,7 +1,7 @@
/*
* PhoneGeoLocator.js - Represent a phone number geolocator object.
*
- * Copyright © 2014-2015, 2018 JEDLSoft
+ * Copyright © 2014-2015, 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,17 +17,6 @@
* limitations under the License.
*/
-/*
-!depends
-ilib.js
-NumberingPlan.js
-PhoneLocale.js
-PhoneNumber.js
-Utils.js
-JSUtils.js
-ResBundle.js
-*/
-
// !data iddarea area extarea extstates phoneres
var ilib = require("./ilib.js");
@@ -660,4 +649,4 @@ PhoneGeoLocator.prototype = {
}
};
-module.exports = PhoneGeoLocator;
\ No newline at end of file
+module.exports = PhoneGeoLocator;
diff --git a/js/lib/PhoneHandlerFactory.js b/js/lib/PhoneHandlerFactory.js
index 00bda4146c..516a47ff99 100644
--- a/js/lib/PhoneHandlerFactory.js
+++ b/js/lib/PhoneHandlerFactory.js
@@ -580,7 +580,7 @@ USStateHandler.prototype.vsc = function (number, currentChar, fields, regionSett
* Creates a phone handler instance that is correct for the locale. Phone handlers are
* used to handle parsing of the various fields in a phone number.
*
- * @protected
+ * @private
* @static
* @return {PhoneHandler} the correct phone handler for the locale
*/
diff --git a/js/lib/PhoneLocale.js b/js/lib/PhoneLocale.js
index ebb018730f..57a5ff326f 100644
--- a/js/lib/PhoneLocale.js
+++ b/js/lib/PhoneLocale.js
@@ -1,7 +1,7 @@
/*
* phoneloc.js - Represent a phone locale object.
*
- * Copyright © 2014-2015, JEDLSoft
+ * Copyright © 2014-2015, 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,13 +17,6 @@
* limitations under the License.
*/
-/*
-!depends
-ilib.js
-Locale.js
-Utils.js
-*/
-
// !data phoneloc
var ilib = require("./ilib.js");
diff --git a/js/lib/PhoneNumber.js b/js/lib/PhoneNumber.js
index 7b138d5eb9..a1049e4f35 100644
--- a/js/lib/PhoneNumber.js
+++ b/js/lib/PhoneNumber.js
@@ -1,7 +1,7 @@
/*
- * phonenum.js - Represent a phone number.
+ * PhoneNumber.js - Represent a phone number.
*
- * Copyright © 2014-2015, JEDLSoft
+ * Copyright © 2014-2015, 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,16 +17,6 @@
* limitations under the License.
*/
-/*
-!depends
-ilib.js
-NumberingPlan.js
-PhoneLocale.js
-PhoneHandlerFactory.js
-Utils.js
-JSUtils.js
-*/
-
// !data states idd mnc
var ilib = require("./ilib.js");
diff --git a/js/lib/RataDie.js b/js/lib/RataDie.js
index cf14efffa9..e03b236a1e 100644
--- a/js/lib/RataDie.js
+++ b/js/lib/RataDie.js
@@ -1,7 +1,7 @@
/*
- * ratadie.js - Represent the RD date number in the calendar
+ * RataDie.js - Represent the RD date number in the calendar
*
- * Copyright © 2014-2015, JEDLSoft
+ * Copyright © 2014-2015, 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,12 +17,6 @@
* limitations under the License.
*/
-/* !depends
-JulianDay.js
-MathUtils.js
-JSUtils.js
-*/
-
var MathUtils = require("./MathUtils.js");
var JSUtils = require("./JSUtils.js");
var JulianDay = require("./JulianDay.js");
@@ -311,4 +305,4 @@ RataDie.prototype = {
}
};
-module.exports = RataDie;
\ No newline at end of file
+module.exports = RataDie;
diff --git a/js/lib/ResBundle.js b/js/lib/ResBundle.js
index 54ba3469aa..0e6e20c453 100644
--- a/js/lib/ResBundle.js
+++ b/js/lib/ResBundle.js
@@ -1,7 +1,7 @@
/*
* ResBundle.js - Resource bundle definition
*
- * Copyright © 2012-2016, JEDLSoft
+ * Copyright © 2012-2016, 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,8 +17,6 @@
* limitations under the License.
*/
-// !depends ilib.js Locale.js LocaleInfo.js IString.js Utils.js JSUtils.js
-
// !data pseudomap
var ilib = require("./ilib.js");
@@ -258,10 +256,6 @@ var ResBundle = function (options) {
this.map = {};
- if (!ilib.data.cache.ResBundle) {
- ilib.data.cache.ResBundle = {};
- }
-
lookupLocale = this.locale.isPseudo() ? new Locale("en-US") : this.locale;
var object = "ResBundle-" + this.baseName;
@@ -274,21 +268,11 @@ var ResBundle = function (options) {
callback: ilib.bind(this, function (map) {
if (!map) {
map = ilib.data[this.baseName] || {};
- spec = lookupLocale.getSpec().replace(/-/g, '_');
- ilib.data.cache[object][spec] = map;
}
this.map = map;
if (this.locale.isPseudo()) {
- if (!ilib.data.cache.ResBundle.pseudomap) {
- ilib.data.cache.ResBundle.pseudomap = {};
- }
-
this._loadPseudo(this.locale, options.onLoad);
} else if (this.missing === "pseudo") {
- if (!ilib.data.cache.ResBundle.pseudomap) {
- ilib.data.cache.ResBundle.pseudomap = {};
- }
-
new LocaleInfo(this.locale, {
sync: this.sync,
loadParams: this.loadParams,
@@ -338,12 +322,7 @@ ResBundle.prototype = {
sync: this.sync,
loadParams: this.loadParams,
callback: ilib.bind(this, function (map) {
- if (!map || JSUtils.isEmpty(map)) {
- map = ResBundle.defaultPseudo;
- var spec = pseudoLocale.getSpec().replace(/-/g, '_');
- ilib.data.cache.ResBundle.pseudomap[spec] = map;
- }
- this.pseudomap = map;
+ this.pseudomap = (!map || JSUtils.isEmpty(map)) ? ResBundle.defaultPseudo : map;
if (typeof(onLoad) === 'function') {
onLoad(this);
}
diff --git a/js/lib/ScriptInfo.js b/js/lib/ScriptInfo.js
index c6a68e0f4d..a01080b2c8 100644
--- a/js/lib/ScriptInfo.js
+++ b/js/lib/ScriptInfo.js
@@ -17,8 +17,6 @@
* limitations under the License.
*/
-// !depends ilib.js Utils.js
-
// !data scripts
var ilib = require("./ilib.js");
@@ -75,15 +73,13 @@ var ScriptInfo = function(script, options) {
if (!ilib.data.scripts) {
Utils.loadData({
object: "ScriptInfo",
- locale: "-",
+ nonlocale: true,
name: "scripts.json",
sync: sync,
loadParams: loadParams,
callback: ilib.bind(this, function (info) {
if (!info) {
info = {"Latn":{"nb":215,"nm":"Latin","lid":"Latin","rtl":false,"ime":false,"casing":true}};
- var spec = this.locale.getSpec().replace(/-/g, "_");
- ilib.data.cache.ScriptInfo[spec] = info;
}
ilib.data.scripts = info;
this.info = script && ilib.data.scripts[script];
diff --git a/js/lib/StringMapper.js b/js/lib/StringMapper.js
index ec26026ce1..870490984b 100644
--- a/js/lib/StringMapper.js
+++ b/js/lib/StringMapper.js
@@ -1,7 +1,7 @@
/*
- * Mapper.js - ilib string mapper class definition
+ * StringMapper.js - ilib string mapper class definition
*
- * Copyright © 2014-2015, JEDLSoft
+ * Copyright © 2014-2015, 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,8 +17,6 @@
* limitations under the License.
*/
-// !depends ilib.js IString.js Utils.js Locale.js
-
var ilib = require("./ilib.js");
var Utils = require("./Utils.js");
@@ -108,10 +106,6 @@ var StringMapper = function (options) {
sync: sync,
loadParams: loadParams,
callback: ilib.bind(this, function (map) {
- if (!map) {
- var spec = this.locale.getSpec().replace(/-/g, "_");
- ilib.data.cache.StringMapper[spec] = {};
- }
this.mapData = map || {};
if (options && typeof(options.onLoad) === 'function') {
options.onLoad(this);
diff --git a/js/lib/TemperatureUnit.js b/js/lib/TemperatureUnit.js
index dfc9852e8c..3ec78e9844 100644
--- a/js/lib/TemperatureUnit.js
+++ b/js/lib/TemperatureUnit.js
@@ -222,4 +222,4 @@ TemperatureUnit.getMeasures = function () {
//register with the factory method
Measurement._constructors["temperature"] = TemperatureUnit;
-module.exports = TemperatureUnit;
\ No newline at end of file
+module.exports = TemperatureUnit;
diff --git a/js/lib/ThaiSolarCal.js b/js/lib/ThaiSolarCal.js
index 6709e7015a..9853ba47da 100644
--- a/js/lib/ThaiSolarCal.js
+++ b/js/lib/ThaiSolarCal.js
@@ -1,7 +1,7 @@
/*
* ThaiSolarCal.js - Represent a Thai solar calendar object.
*
- * Copyright © 2013-2015,2018, JEDLSoft
+ * Copyright © 2013-2015, 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,9 +17,6 @@
* limitations under the License.
*/
-
-/* !depends Calendar.js GregorianCal.js MathUtils.js */
-
var MathUtils = require("./MathUtils.js");
var Calendar = require("./Calendar.js");
var GregorianCal = require("./GregorianCal.js");
diff --git a/js/lib/ThaiSolarDate.js b/js/lib/ThaiSolarDate.js
index a2e19a835b..eeb34b1df6 100644
--- a/js/lib/ThaiSolarDate.js
+++ b/js/lib/ThaiSolarDate.js
@@ -1,7 +1,7 @@
/*
* ThaiSolarDate.js - Represent a date in the ThaiSolar calendar
*
- * Copyright © 2013-2015, JEDLSoft
+ * Copyright © 2013-2015, 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,14 +17,6 @@
* limitations under the License.
*/
-/* !depends
-ilib.js
-IDate.js
-JSUtils.js
-GregorianDate.js
-ThaiSolarCal.js
-*/
-
var ilib = require("./ilib.js");
var JSUtils = require("./JSUtils.js");
diff --git a/js/lib/TimeUnit.js b/js/lib/TimeUnit.js
index d84f8e1240..d8f110f672 100644
--- a/js/lib/TimeUnit.js
+++ b/js/lib/TimeUnit.js
@@ -269,4 +269,4 @@ TimeUnit.getMeasures = function () {
//register with the factory method
Measurement._constructors["time"] = TimeUnit;
-module.exports = TimeUnit;
\ No newline at end of file
+module.exports = TimeUnit;
diff --git a/js/lib/TimeZone.js b/js/lib/TimeZone.js
index eedd9c7883..69d98c016b 100644
--- a/js/lib/TimeZone.js
+++ b/js/lib/TimeZone.js
@@ -1,7 +1,7 @@
/*
* TimeZone.js - Definition of a time zone class
*
- * Copyright © 2012-2015, JEDLSoft
+ * Copyright © 2012-2015, 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,19 +17,6 @@
* limitations under the License.
*/
-/*
-!depends
-ilib.js
-Locale.js
-LocaleInfo.js
-Utils.js
-MathUtils.js
-JSUtils.js
-GregRataDie.js
-IString.js
-CalendarFactory.js
-*/
-
// !data localeinfo zoneinfo
var ilib = require("./ilib.js");
diff --git a/js/lib/UTF16BE.js b/js/lib/UTF16BE.js
index 4ca43b25d1..a5051ecbaa 100644
--- a/js/lib/UTF16BE.js
+++ b/js/lib/UTF16BE.js
@@ -18,8 +18,6 @@
* limitations under the License.
*/
-// !depends Charmap.js
-
// !data charset/UTF-16 charset/UTF-16BE
var Charset = require("./Charset.js");
diff --git a/js/lib/UTF16LE.js b/js/lib/UTF16LE.js
index 72de36f83a..a3597ef7e8 100644
--- a/js/lib/UTF16LE.js
+++ b/js/lib/UTF16LE.js
@@ -18,8 +18,6 @@
* limitations under the License.
*/
-// !depends Charmap.js
-
// !data charset/UTF-16 charset/UTF-16LE
var Charset = require("./Charset.js");
diff --git a/js/lib/UTF8.js b/js/lib/UTF8.js
index 5ce95bef69..826488c06f 100644
--- a/js/lib/UTF8.js
+++ b/js/lib/UTF8.js
@@ -17,8 +17,6 @@
* limitations under the License.
*/
-// !depends Charmap.js IString.js
-
// !data charset/UTF-8
var Charset = require("./Charset.js");
diff --git a/js/lib/UnitFmt.js b/js/lib/UnitFmt.js
index b1dc946c09..aef11380c8 100644
--- a/js/lib/UnitFmt.js
+++ b/js/lib/UnitFmt.js
@@ -526,4 +526,4 @@ UnitFmt.prototype = {
}
};
-module.exports = UnitFmt;
\ No newline at end of file
+module.exports = UnitFmt;
diff --git a/js/lib/UnknownUnit.js b/js/lib/UnknownUnit.js
index bf14d31d95..71a895451e 100644
--- a/js/lib/UnknownUnit.js
+++ b/js/lib/UnknownUnit.js
@@ -1,7 +1,7 @@
/*
- * Unknown.js - Dummy unit conversions for unknown types
+ * UnknownUnit.js - Dummy unit conversions for unknown types
*
- * Copyright © 2014-2015, JEDLSoft
+ * Copyright © 2014-2015, 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -167,4 +167,4 @@ UnknownUnit.getMeasures = function () {
return [];
};
-module.exports = UnknownUnit;
\ No newline at end of file
+module.exports = UnknownUnit;
diff --git a/js/lib/Utils.js b/js/lib/Utils.js
index cd071fc2f3..d278ed46c1 100644
--- a/js/lib/Utils.js
+++ b/js/lib/Utils.js
@@ -1,7 +1,7 @@
/*
* Utils.js - Core utility routines
*
- * Copyright © 2012-2015, JEDLSoft
+ * Copyright © 2012-2015, 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,14 +17,144 @@
* limitations under the License.
*/
-// !depends ilib.js Locale.js JSUtils.js
-
var ilib = require("./ilib.js");
var Locale = require("./Locale.js");
var JSUtils = require("./JSUtils.js");
+var Path = require("./Path.js");
+var ISet = require("./ISet.js");
var Utils = {};
+/**
+ * Return an array of locales that represent the sublocales of
+ * the given locale. These sublocales are intended to be used
+ * to load locale data. Each sublocale might be represented
+ * separately by files on disk in order to share them with other
+ * locales that have the same sublocales. The sublocales are
+ * given in the order that they should be loaded, which is
+ * least specific to most specific.
+ *
+ * For example, the locale "en-US" would have the sublocales
+ * "root", "en", "und-US", and "en-US".
+ *
+ *
Variations
+ *
+ * With only language and region specified, the following
+ * sequence of sublocales will be generated:
+ *
+ *
+ * root
+ * language
+ * und-region
+ * language-region
+ *
+ *
+ * With only language and script specified:
+ *
+ *
+ * root
+ * language
+ * language-script
+ *
+ *
+ * With only script and region specified:
+ *
+ *
+ * root
+ * und-region
+ *
+ *
+ * With only region and variant specified:
+ *
+ *
+ * root
+ * und-region
+ * region-variant
+ *
+ *
+ * With only language, script, and region specified:
+ *
+ *
+ * root
+ * language
+ * und-region
+ * language-script
+ * language-region
+ * language-script-region
+ *
+ *
+ * With only language, region, and variant specified:
+ *
+ *
+ * root
+ * language
+ * und-region
+ * language-region
+ * und-region-variant
+ * language-region-variant
+ *
+ *
+ * With all parts specified:
+ *
+ *
+ * root
+ * language
+ * und-region
+ * language-script
+ * language-region
+ * und-region-variant
+ * language-script-region
+ * language-region-variant
+ * language-script-region-variant
+ *
+ *
+ * @static
+ * @param {Locale|String} locale the locale to find the sublocales for
+ * @return {Array.} An array of locale specifiers that
+ * are the sublocales of the given on
+ */
+Utils.getSublocales = function(locale) {
+ var ret = ["root"];
+ var loc = typeof(locale) === "string" ? new Locale(locale) : locale;
+
+ if (loc.getLanguage()) {
+ ret.push(loc.getLanguage());
+ }
+
+ if (loc.getRegion()) {
+ ret.push('und-' + loc.getRegion());
+ }
+
+ if (loc.getLanguage()) {
+ if (loc.getScript()) {
+ ret.push(loc.getLanguage() + '-' + loc.getScript());
+ }
+
+ if (loc.getRegion()) {
+ ret.push(loc.getLanguage() + '-' + loc.getRegion());
+ }
+ }
+
+ if (loc.getRegion() && loc.getVariant()) {
+ ret.push("und-" + loc.getRegion() + '-' + loc.getVariant());
+ }
+
+ if (loc.getLanguage()) {
+ if (loc.getScript() && loc.getRegion()) {
+ ret.push(loc.getLanguage() + '-' + loc.getScript() + '-' + loc.getRegion());
+ }
+
+ if (loc.getRegion() && loc.getVariant()) {
+ ret.push(loc.getLanguage() + '-' + loc.getRegion() + '-' + loc.getVariant());
+ }
+
+ if (loc.getScript() && loc.getRegion() && loc.getVariant()) {
+ ret.push(loc.getLanguage() + '-' + loc.getScript() + '-' + loc.getRegion() + '-' + loc.getVariant());
+ }
+ }
+ return ret;
+};
+
/**
* Find and merge all the locale data for a particular prefix in the given locale
* and return it as a single javascript object. This merges the data in the
@@ -39,9 +169,7 @@ var Utils = {};
*
*
* It is okay for any of the above to be missing. This function will just skip the
- * missing data. However, if everything except the shared data is missing, this
- * function returns undefined, allowing the caller to go and dynamically load the
- * data instead.
+ * missing data.
*
* @static
* @param {string} prefix prefix under ilib.data of the data to merge
@@ -53,95 +181,27 @@ var Utils = {};
* @return {Object?} the merged locale data
*/
Utils.mergeLocData = function (prefix, locale, replaceArrays, returnOne) {
- var data = undefined;
- var loc = locale || new Locale();
- var foundLocaleData = false;
- var property = prefix;
- var mostSpecific;
-
- data = ilib.data[prefix] || {};
-
- mostSpecific = data;
-
- if (loc.getLanguage()) {
- property = prefix + '_' + loc.getLanguage();
- if (ilib.data[property]) {
- foundLocaleData = true;
- data = JSUtils.merge(data, ilib.data[property], replaceArrays);
- mostSpecific = ilib.data[property];
- }
- }
-
- if (loc.getRegion()) {
- property = prefix + '_' + loc.getRegion();
- if (ilib.data[property]) {
- foundLocaleData = true;
- data = JSUtils.merge(data, ilib.data[property], replaceArrays);
- mostSpecific = ilib.data[property];
- }
- }
-
- if (loc.getLanguage()) {
- property = prefix + '_' + loc.getLanguage();
-
- if (loc.getScript()) {
- property = prefix + '_' + loc.getLanguage() + '_' + loc.getScript();
- if (ilib.data[property]) {
- foundLocaleData = true;
- data = JSUtils.merge(data, ilib.data[property], replaceArrays);
- mostSpecific = ilib.data[property];
- }
- }
-
- if (loc.getRegion()) {
- property = prefix + '_' + loc.getLanguage() + '_' + loc.getRegion();
- if (ilib.data[property]) {
- foundLocaleData = true;
- data = JSUtils.merge(data, ilib.data[property], replaceArrays);
- mostSpecific = ilib.data[property];
- }
- }
- }
-
- if (loc.getRegion() && loc.getVariant()) {
- property = prefix + '_' + loc.getLanguage() + '_' + loc.getVariant();
- if (ilib.data[property]) {
- foundLocaleData = true;
- data = JSUtils.merge(data, ilib.data[property], replaceArrays);
- mostSpecific = ilib.data[property];
- }
- }
+ var data = undefined;
+ var loc = locale || new Locale();
+ var mostSpecific;
- if (loc.getLanguage() && loc.getScript() && loc.getRegion()) {
- property = prefix + '_' + loc.getLanguage() + '_' + loc.getScript() + '_' + loc.getRegion();
- if (ilib.data[property]) {
- foundLocaleData = true;
- data = JSUtils.merge(data, ilib.data[property], replaceArrays);
- mostSpecific = ilib.data[property];
- }
- }
+ data = {};
- if (loc.getLanguage() && loc.getRegion() && loc.getVariant()) {
- property = prefix + '_' + loc.getLanguage() + '_' + loc.getRegion() + '_' + loc.getVariant();
- if (ilib.data[property]) {
- foundLocaleData = true;
- data = JSUtils.merge(data, ilib.data[property], replaceArrays);
- mostSpecific = ilib.data[property];
- }
- }
+ mostSpecific = data;
- if (loc.getLanguage() && loc.getScript() && loc.getRegion() && loc.getVariant()) {
- property = prefix + '_' + loc.getLanguage() + '_' + loc.getScript() + '_' + loc.getRegion() + '_' + loc.getVariant();
- if (ilib.data[property]) {
- foundLocaleData = true;
- data = JSUtils.merge(data, ilib.data[property], replaceArrays);
- mostSpecific = ilib.data[property];
- }
- }
-
- return foundLocaleData ? (returnOne ? mostSpecific : data) : undefined;
+ Utils.getSublocales(loc).forEach(function(l) {
+ var property = (l === "root") ? prefix : prefix + '_' + l.replace(/-/g, "_");
+
+ if (ilib.data[property]) {
+ data = JSUtils.merge(data, ilib.data[property], replaceArrays);
+ mostSpecific = ilib.data[property];
+ }
+ });
+
+ return returnOne ? mostSpecific : data;
};
+
/**
* Return an array of relative path names for the
* files that represent the data for the given locale.
@@ -231,60 +291,12 @@ Utils.mergeLocData = function (prefix, locale, replaceArrays, returnOne) {
* for the files that contain the locale data
*/
Utils.getLocFiles = function(locale, name) {
- var dir = "";
- var files = [];
- var filename = name || "resources.json";
- var loc = locale || new Locale();
-
- var language = loc.getLanguage();
- var region = loc.getRegion();
- var script = loc.getScript();
- var variant = loc.getVariant();
-
- files.push(filename); // generic shared file
-
- if (language) {
- dir = language + "/";
- files.push(dir + filename);
- }
-
- if (region) {
- dir = "und/" + region + "/";
- files.push(dir + filename);
- }
-
- if (language) {
- if (script) {
- dir = language + "/" + script + "/";
- files.push(dir + filename);
- }
- if (region) {
- dir = language + "/" + region + "/";
- files.push(dir + filename);
- }
- }
-
- if (region && variant) {
- dir = "und/" + region + "/" + variant + "/";
- files.push(dir + filename);
- }
-
- if (language && script && region) {
- dir = language + "/" + script + "/" + region + "/";
- files.push(dir + filename);
- }
-
- if (language && region && variant) {
- dir = language + "/" + region + "/" + variant + "/";
- files.push(dir + filename);
- }
+ var filename = name || "resources.json";
+ var loc = locale || new Locale();
- if (language && script && region && variant) {
- dir = language + "/" + script + "/" + region + "/" + variant + "/";
- files.push(dir + filename);
- }
-
- return files;
+ return Utils.getSublocales(loc).map(function(l) {
+ return (l === "root") ? filename : Path.join(l.replace(/-/g, "/"), filename);
+ });
};
/**
@@ -306,162 +318,152 @@ Utils._callLoadData = function (files, sync, params, callback) {
return undefined;
};
+/**
+ * Return true if the locale data corresponding to the given pathname is not already loaded
+ * or assembled.
+ *
+ * @private
+ * @param basename
+ * @param locale
+ * @returns
+ */
+function dataNotExists(basename, pathname) {
+ var localeBits = pathname.split("\/").slice(0, -1).join('_');
+ var property = localeBits ? basename + '_' + localeBits : basename;
+
+ return !ilib.data[property];
+}
+
/**
* Find locale data or load it in. If the data with the given name is preassembled, it will
* find the data in ilib.data. If the data is not preassembled but there is a loader function,
* this function will call it to load the data. Otherwise, the callback will be called with
* undefined as the data. This function will create a cache under the given class object.
- * If data was successfully loaded, it will be set into the cache so that future access to
+ * If data was successfully loaded, it will be set into the cache so that future access to
* the same data for the same locale is much quicker.
- *
+ *
* The parameters can specify any of the following properties:
- *
+ *
*
* name - String. The name of the file being loaded. Default: ResBundle.json
* object - String. The name of the class attempting to load data. This is used to differentiate parts of the cache.
* locale - Locale. The locale for which data is loaded. Default is the current locale.
* nonlocale - boolean. If true, the data being loaded is not locale-specific.
- * type - String. Type of file to load. This can be "json" or "other" type. Default: "json"
+ * type - String. Type of file to load. This can be "json" or "other" type. Default: "json"
* replace - boolean. When merging json objects, this parameter controls whether to merge arrays
- * or have arrays replace each other. If true, arrays in child objects replace the arrays in parent
- * objects. When false, the arrays in child objects are concatenated with the arrays in parent objects.
+ * or have arrays replace each other. If true, arrays in child objects replace the arrays in parent
+ * objects. When false, the arrays in child objects are concatenated with the arrays in parent objects.
* loadParams - Object. An object with parameters to pass to the loader function
* sync - boolean. Whether or not to load the data synchronously
* callback - function(?)=. callback Call back function to call when the data is available.
* Data is not returned from this method, so a callback function is mandatory.
*
- *
+ *
* @static
* @param {Object} params Parameters configuring how to load the files (see above)
*/
Utils.loadData = function(params) {
- var name = "resources.json",
- object = "generic",
- locale = new Locale(ilib.getLocale()),
- sync = false,
- type = undefined,
- loadParams = {},
- callback = undefined,
- nonlocale = false,
- replace = false,
- basename;
-
- if (!params || typeof(params.callback) !== 'function') {
- return;
- }
+ var name = "resources.json",
+ locale = new Locale(ilib.getLocale()),
+ sync = false,
+ type = undefined,
+ loadParams = {},
+ callback = undefined,
+ nonlocale = false,
+ replace = false,
+ basename;
- if (params.name) {
- name = params.name;
- }
- if (params.object) {
- object = params.object;
- }
- if (params.locale) {
- locale = (typeof(params.locale) === 'string') ? new Locale(params.locale) : params.locale;
- }
- if (params.type) {
- type = params.type;
- }
- if (params.loadParams) {
- loadParams = params.loadParams;
- }
- if (params.sync) {
- sync = params.sync;
- }
- if (params.nonlocale) {
- nonlocale = !!params.nonlocale;
- }
- if (typeof(params.replace) === 'boolean') {
- replace = params.replace;
- }
-
- callback = params.callback;
-
- if (object && !ilib.data.cache[object]) {
- ilib.data.cache[object] = {};
- }
-
- if (!type) {
- var dot = name.lastIndexOf(".");
- type = (dot !== -1) ? name.substring(dot+1) : "text";
- }
+ if (!params || typeof(params.callback) !== 'function') {
+ throw "Utils.loadData called without a callback. It must have a callback to work.";
+ }
- var spec = ((!nonlocale && locale.getSpec().replace(/-/g, '_')) || "root") + "," + name + "," + String(JSUtils.hashCode(loadParams));
- if (!object || !ilib.data.cache[object] || typeof(ilib.data.cache[object][spec]) === 'undefined') {
- var data, returnOne = (loadParams && loadParams.returnOne);
-
- if (type === "json") {
- // console.log("type is json");
- basename = name.substring(0, name.lastIndexOf("."));
- if (nonlocale) {
- basename = basename.replace(/[\.:\(\)\/\\\+\-]/g, "_");
- data = ilib.data[basename];
- } else {
- data = Utils.mergeLocData(basename, locale, replace, returnOne);
- }
- if (data) {
- // console.log("found assembled data");
- if (object) {
- ilib.data.cache[object][spec] = data;
- }
- callback(data);
- return;
- }
- }
-
- // console.log("ilib._load is " + typeof(ilib._load));
- if (typeof(ilib._load) !== 'undefined') {
- // the data is not preassembled, so attempt to load it dynamically
- var files = nonlocale ? [ name || "resources.json" ] : Utils.getLocFiles(locale, name);
- if (type !== "json") {
- loadParams.returnOne = true;
- }
-
- Utils._callLoadData(files, sync, loadParams, ilib.bind(this, function(arr) {
- if (type === "json") {
- data = ilib.data[basename] || {};
- for (var i = 0; i < arr.length; i++) {
- if (typeof(arr[i]) !== 'undefined') {
- if (loadParams.returnOne) {
- data = arr[i];
- break;
- }
- data = JSUtils.merge(data, arr[i], replace);
- }
- }
-
- if (object) {
- ilib.data.cache[object][spec] = data;
- }
- callback(data);
- } else {
- var i = arr.length-1;
- while (i > -1 && !arr[i]) {
- i--;
- }
- if (i > -1) {
- if (object) {
- ilib.data.cache[object][spec] = arr[i];
- }
- callback(arr[i]);
- } else {
- callback(undefined);
- }
- }
- }));
- } else {
- // no data other than the generic shared data
- if (type === "json") {
- data = ilib.data[basename];
- }
- if (object && data) {
- ilib.data.cache[object][spec] = data;
- }
- callback(data);
- }
- } else {
- callback(ilib.data.cache && ilib.data.cache[object] && ilib.data.cache[object][spec]);
- }
+ if (params.name) {
+ name = params.name;
+ }
+ if (params.locale) {
+ locale = (typeof(params.locale) === 'string') ? new Locale(params.locale) : params.locale;
+ }
+ if (params.type) {
+ type = params.type;
+ }
+ if (params.loadParams) {
+ loadParams = params.loadParams;
+ }
+ if (params.sync) {
+ sync = params.sync;
+ }
+ if (params.nonlocale) {
+ nonlocale = !!params.nonlocale;
+ }
+ if (typeof(params.replace) === 'boolean') {
+ replace = params.replace;
+ }
+
+ callback = params.callback;
+
+ if (!type) {
+ var dot = name.lastIndexOf(".");
+ type = (dot !== -1) ? name.substring(dot+1) : "text";
+ }
+
+ var data, returnOne = ((loadParams && loadParams.returnOne) || type !== "json");
+
+ basename = name.substring(0, name.lastIndexOf(".")).replace(/[\.:\(\)\/\\\+\-]/g, "_");
+
+ if (typeof(ilib._load) !== 'undefined') {
+ // We have a loader, so we can figure out which json files are loaded already and
+ // which are not so that we can load the missing ones.
+ // the data is not preassembled, so attempt to load it dynamically
+ var files = nonlocale ? [ name || "resources.json" ] : Utils.getLocFiles(locale, name);
+
+ if (typeof(ilib.data.cache) === "undefined") {
+ ilib.data.cache = {};
+ }
+ if (typeof(ilib.data.cache.fileSet) === "undefined") {
+ ilib.data.cache.fileSet = new ISet();
+ }
+
+ // find the ones we haven't loaded before
+ files = files.filter(ilib.bind(this, function(file) {
+ return !ilib.data.cache.fileSet.has(file) && dataNotExists(basename, file);
+ }));
+
+ if (files.length) {
+ Utils._callLoadData(files, sync, loadParams, ilib.bind(this, function(arr) {
+ for (var i = 0; i < files.length; i++) {
+ if (arr[i]) {
+ var localeBits = files[i].split("\/").slice(0, -1).join('_');
+ var property = !nonlocale && localeBits ? basename + '_' + localeBits : basename;
+
+ if (!ilib.data[property]) {
+ ilib.data[property] = arr[i];
+ }
+ }
+ ilib.data.cache.fileSet.add(files[i]);
+ }
+
+ if (!nonlocale) {
+ data = Utils.mergeLocData(basename, locale, replace, returnOne);
+ } else {
+ data = ilib.data[basename];
+ }
+
+ callback(data);
+ }));
+
+ return;
+ }
+ // otherwise the code below will return the already-loaded data
+ }
+
+ // No loader, or data already loaded? Then use whatever data we have already in ilib.data
+ if (!nonlocale) {
+ data = Utils.mergeLocData(basename, locale, replace, returnOne);
+ } else {
+ data = ilib.data[basename];
+ }
+
+ callback(data);
};
-module.exports = Utils;
\ No newline at end of file
+module.exports = Utils;
diff --git a/js/lib/VelocityUnit.js b/js/lib/VelocityUnit.js
index 09e0e950c5..fc6088a9ff 100644
--- a/js/lib/VelocityUnit.js
+++ b/js/lib/VelocityUnit.js
@@ -256,4 +256,4 @@ VelocityUnit.getMeasures = function () {
Measurement._constructors["speed"] = VelocityUnit;
Measurement._constructors["velocity"] = VelocityUnit;
-module.exports = VelocityUnit;
\ No newline at end of file
+module.exports = VelocityUnit;
diff --git a/js/lib/WebpackLoader.js b/js/lib/WebpackLoader.js
new file mode 100644
index 0000000000..c46d5cee39
--- /dev/null
+++ b/js/lib/WebpackLoader.js
@@ -0,0 +1,191 @@
+/*
+ * WebpackLoader.js - Loader implementation for webpack'ed ilib on the web
+ *
+ * Copyright © 2018, JEDLSoft
+ *
+ * Licensed 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 CONDITIONS OF ANY KIND, either express or implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+var Loader = require("./Loader.js");
+var Path = require("./Path.js");
+var Locale = require("./Locale.js");
+var ISet = require("./ISet.js");
+var Utils = require("./Utils.js");
+var JSUtils = require("./JSUtils.js");
+
+var alreadyLoaded = new ISet();
+
+function loadLocaleData(ilib, locale, callback) {
+ switch (locale) {
+ // This special macro will get replaced in the ilibdata-webpack-loader with
+ // case statements for each locale js file so that webpack can make separate
+ // bundles for each one of those files when in dynamic load mode. In static
+ // (assembled) mode, this will get replaced with require calls that cause
+ // the data to be put into one giant webpack bundle.
+
+ // !loadLocaleData
+
+ case "dummy":
+ // This is just here to prevent webpack from removing the function contents. Otherwise,
+ // it will think this whole function is "unused" or "dead" code.
+ console.log("Should never happen");
+ callback();
+ break;
+ }
+}
+
+/**
+ * @class
+ * Implementation of Loader for webpack.
+ *
+ * @constructor
+ * @private
+ */
+module.exports = function (ilib) {
+ var WebpackLoader = function (ilib) {
+ // util.print("new common WebpackLoader instance\n");
+
+ this.parent.call(this, ilib);
+ this.ilib = ilib;
+ this.manifests = {};
+
+ this.includePath.push("");
+ };
+
+ // make this a subclass of loader
+ WebpackLoader.prototype = new Loader();
+ WebpackLoader.prototype.parent = Loader;
+ WebpackLoader.prototype.constructor = WebpackLoader;
+
+ WebpackLoader.prototype.name = "WebpackLoader";
+
+ WebpackLoader.prototype.getData = function(dataName, tzName) {
+ return dataName === "zoneinfo" ? this.ilib.data.zoneinfo[tzName] : this.ilib.data[dataName];
+ };
+
+ // used locally with node
+ WebpackLoader.prototype._loadFile = function (pathname, sync, cb) {
+ var dir = Path.dirname(pathname);
+ var base = Path.basename(pathname, "json");
+ var dataName = base;
+ var locale = undefined;
+ var filename;
+ var tzName;
+
+ if (dir) {
+ var locpath = /(^|\/)([a-z][a-z][a-z]?(\/[A-Z][a-z][a-z][a-z])?(\/[A-Z][A-Z](\/[A-Z]+)?)?)$/.exec(dir);
+ if (locpath) {
+ locale = new Locale(locpath[2].replace(/\//g, "-"));
+ }
+ }
+
+ filename = locale && locale.getSpec() || (base === "ilibmanifest" ? "localmanifest" : "root");
+
+ var dataName = base;
+ if (dir) {
+ if (locale) {
+ dataName += "_" + filename;
+ } else if (dir === "charset" || dir === "charmaps") {
+ dataName = dir + "_" + base;
+ } else if (dir.substring(0, 9) === "zoneinfo/") {
+ dataName = "zoneinfo";
+ tzName = pathname.substring(9).substring(0, - 5);
+ }
+ }
+
+ dataName = dataName.replace(/[\.:\(\)\/\\\+\-]/g, "_");
+
+ var data = this.getData(dataName, tzName);
+
+ if (data) {
+ // already loaded
+ if (typeof(cb) === "function") cb(data);
+ } else if (!alreadyLoaded.has(filename)) {
+ console.log("WebpackLoader._loadFile: loading " + pathname + (sync ? " sync" : " async") + " as " + filename + ".js");
+
+ alreadyLoaded.add(filename);
+ loadLocaleData(this.ilib, filename, function(callback, data) {
+ data = (data && typeof(data) === "object" && typeof(data.installLocale) === "function") ? this.getData(dataName, tzName) : data;
+ if (callback && typeof(callback) === "function") {
+ callback(data);
+ }
+ }.bind(this, cb));
+ } else {
+ if (typeof(cb) === "function") cb();
+ }
+
+ // return data;
+ };
+
+ WebpackLoader.prototype._exists = function(dir, file) {
+ return false;
+ };
+
+ // used remotely on a browser
+ WebpackLoader.prototype._loadLocaleFile = function(path, sync, callback) {
+ var base = Path.basename(path, ".js");
+
+ if (alreadyLoaded.has(base)) {
+ callback();
+ } else {
+ console.log("WebpackLoader._loadLocaleFile: loading " + path + (sync ? " sync" : " async"));
+
+ alreadyLoaded.add(base);
+ loadLocaleData(this.ilib, base, function(callback, data) {
+ callback(data);
+ }.bind(this, callback));
+ }
+ };
+
+ /**
+ * @private
+ */
+ WebpackLoader.prototype._ensureManifest = function(locale, dir, callback) {
+ if (this.manifests[dir]) {
+ callback(this.manifests[dir]);
+ } else {
+ this._loadLocaleFile(Path.join(dir, "remotemanifest.js"), false, ilib.bind(this, function(manifest) {
+ if (manifest) {
+ this.manifests[dir] = manifest.files;
+ callback(manifest.files);
+ } else {
+ callback(); // undefined param indicates error
+ }
+ }));
+ }
+ };
+
+ /**
+ * Ensure that the data for a locale is loaded into memory from the given
+ * dir. This will decompose the locale into its constituent parts and
+ * load all the appropriate files based on those parts. Thereafter,
+ * all ilib code can be called synchronously.
+ */
+ WebpackLoader.prototype.ensureLocale = function(locale, dir, callback) {
+ this._ensureManifest(locale, dir, ilib.bind(this, function(manifest) {
+ var filesToLoad = Utils.getSublocales(locale).map(function(sublocale) {
+ return sublocale + ".js";
+ }).filter(function(file) {
+ return !manifest || Loader.indexOf(manifest, file) > -1;
+ });
+ JSUtils.callAll(filesToLoad, ilib.bind(this, function(arr, cb) {
+ this._loadLocaleFile(arr[0], false, cb);
+ }), function(results) {
+ callback(results);
+ });
+ }));
+ };
+
+ return new WebpackLoader(ilib);
+};
diff --git a/js/lib/ilib-enyo.js b/js/lib/ilib-enyo.js
deleted file mode 100644
index 7f1eb55aa9..0000000000
--- a/js/lib/ilib-enyo.js
+++ /dev/null
@@ -1,156 +0,0 @@
-/*
- * ilib-enyo.js - glue code for enyo apps to load local ilib code and data
- *
- * Copyright © 2015, JEDLSoft
- *
- * Licensed 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 CONDITIONS OF ANY KIND, either express or implied.
- *
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-var path = {
- dirname: function(pathname) {
- var i = pathname.lastIndexOf("/");
- return i !== -1 ? pathname.substring(0,i) : pathname;
- },
-
- join: function() {
- var arr = [];
- for (var i = 0; i < arguments.length; i++) {
- arr.push(arguments[i]);
- }
- return arr.join("/");
- },
-
- normalize: function(pathname) {
- if (pathname) {
- var previousLen;
- do {
- previousLen = pathname.length;
- pathname = pathname.replace(/\/\.\//g, "/").replace(/\/[^/]+\/\.\./g, "").replace(/^\.\//, "");
- } while (pathname.length < previousLen && pathname.length > 0);
- }
- return pathname;
- }
-};
-
-var requireClass = function() {
- this.cache = {};
- this.updateRequire = /require\(("[^/][^"+]*")\)/g;
-};
-
-requireClass.prototype.loadFile = function(pathname, sync) {
- var text;
- var ajax = new enyo.Ajax({
- handleAs: "text",
- cacheBust: false,
- sync: true,
- url: "file://" + pathname
- });
- ajax.response(this, function(s, r) {
- text = r;
- });
- ajax.go();
- return text;
-};
-
-requireClass.prototype.setRoot = function() {
- if (!this.root) {
- var pos;
- var scripts = document.getElementsByTagName("script");
-
- this.root = ".";
- for (var i = 0; i < scripts.length; i++) {
- var source = scripts[i].src;
- if (source && (pos = source.search(/enyo\.js$/)) !== -1) {
- this.root = path.normalize(path.join(source.substring(7, pos-1), "../lib/enyo-ilib/ilib/js"));
- break;
- }
- }
- }
-};
-
-requireClass.prototype.cacheObjectForPath = function(pathname, obj) {
- this.setRoot();
- if (pathname.charAt(0) !== '/') {
- pathname = path.join(this.root, pathname);
- }
-
- pathname = path.normalize(pathname);
-
- this.cache[pathname] = obj;
-};
-
-requireClass.prototype.require = function(pathname) {
- this.setRoot();
-
- //console.log("this.root is " + this.root + " and pathname before was " + pathname);
-
- if (pathname.charAt(0) !== '/') {
- pathname = path.join(this.root, pathname);
- }
-
- pathname = path.normalize(pathname);
-
- if (this.cache[pathname]) {
- return this.cache[pathname];
- }
-
- console.log("loading module " + pathname);
-
- var text = this.loadFile(pathname, true);
- var dirname = path.dirname(pathname);
- var match, replacement;
-
- if (text) {
- var tmp = module.filename;
- module.filename = pathname;
- module.exports = null;
-
- while ((match = this.updateRequire.exec(text)) !== null) {
- replacement = '"' + dirname + '/" + ' + match[1];
- text = text.replace(new RegExp(match[1], "g"), replacement);
- this.updateRequire.lastIndex = match.index + replacement.length;
- }
- text = text + "\n//# sourceURL=" + pathname + "\n";
- // console.log("text is " + text);
- try {
- eval(text);
-
- this.cache[pathname] = module.exports;
- } finally {
- this.loading[pathname] = undefined;
- module.filename = tmp;
- }
-
- return module.exports;
- }
-
- return undefined;
-};
-
-var r = new requireClass();
-var require = requireClass.prototype.require.bind(r);
-r.cacheObjectForPath("./ilib.js", ilib);
-
-ilib._dyncode = true; // indicate that we are using dynamically loaded code
-
-if (typeof(window.module) === 'undefined') {
- var module = {
- exports: {}
- };
-}
-
-require("./ilib-stubs-dyn.js");
-
-// now the enyo code should create an enyo loader and set it in to ilib
-// with ilib.setLoaderCallback()
\ No newline at end of file
diff --git a/js/lib/ilib-full-inc.js b/js/lib/ilib-full-inc.js
deleted file mode 100644
index 368898f39d..0000000000
--- a/js/lib/ilib-full-inc.js
+++ /dev/null
@@ -1,115 +0,0 @@
-/**
- * @license
- * Copyright © 2012-2015, JEDLSoft
- *
- * Licensed 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 CONDITIONS OF ANY KIND, either express or implied.
- *
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/*
- * ilib-full-inc.js - metafile that includes all other js files
- */
-
-/* !depends
-ilib.js
-DateRngFmt.js
-IDate.js
-DateFactory.js
-HebrewDate.js
-HebrewCal.js
-IslamicCal.js
-IslamicDate.js
-JulianCal.js
-JulianDate.js
-GregorianCal.js
-GregorianDate.js
-ThaiSolarCal.js
-ThaiSolarDate.js
-PersianCal.js
-PersianDate.js
-PersianAlgoCal.js
-PersianAlgoDate.js
-HanCal.js
-HanDate.js
-EthiopicCal.js
-EthiopicDate.js
-CopticCal.js
-CopticDate.js
-INumber.js
-NumFmt.js
-JulianDay.js
-DateFmt.js
-Calendar.js
-CalendarFactory.js
-Utils.js
-Locale.js
-IString.js
-DurationFmt.js
-ResBundle.js
-CType.js
-LocaleInfo.js
-DateRngFmt.js
-isAlnum.js
-isAlpha.js
-isAscii.js
-isBlank.js
-isCntrl.js
-isDigit.js
-isGraph.js
-isIdeo.js
-isLower.js
-isPrint.js
-isPunct.js
-isSpace.js
-isUpper.js
-isXdigit.js
-isScript.js
-ScriptInfo.js
-Name.js
-NameFmt.js
-Address.js
-AddressFmt.js
-Collator.js
-nfkc/all.js
-LocaleMatcher.js
-NormString.js
-CaseMapper.js
-GlyphString.js
-PhoneFmt.js
-PhoneGeoLocator.js
-PhoneNumber.js
-Measurement.js
-MeasurementFactory.js
-UnitFmt.js
-LengthUnit.js
-VelocityUnit.js
-DigitalStorageUnit.js
-TemperatureUnit.js
-UnknownUnit.js
-TimeUnit.js
-MassUnit.js
-AreaUnit.js
-FuelConsumptionUnit.js
-VolumeUnit.js
-EnergyUnit.js
-Charset.js
-Charmap.js
-CharmapFactory.js
-CharmapTable.js
-UTF8.js
-UTF16BE.js
-UTF16LE.js
-Country.js
-ListFmt.js
-DigitalSpeedUnit.js
-*/
diff --git a/js/lib/ilib-test-dyn.js b/js/lib/ilib-getdata.js
similarity index 58%
rename from js/lib/ilib-test-dyn.js
rename to js/lib/ilib-getdata.js
index cdbb306959..fe7bf518f2 100644
--- a/js/lib/ilib-test-dyn.js
+++ b/js/lib/ilib-getdata.js
@@ -1,9 +1,8 @@
-/* jshint node: true */
-/*
- * ilib-test-dyn.js - glue code for node to load both code
- * and the data dynamically
+/**
+ * ilib-getdata.js - define the locale data for assembled or dynamic
*
- * Copyright © 2015, JEDLSoft
+ * @license
+ * Copyright © 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -19,12 +18,14 @@
* limitations under the License.
*/
-var NodeLoader = require("../lib/NodeLoader.js");
-var ilib = require("../lib/ilib.js");
-ilib.setLoaderCallback(NodeLoader(ilib));
+var ilib = require("./ilib.js");
-ilib._dyncode = true; // indicate that we are using dynamically loaded code
-ilib._dyndata = true;
+// The following will either require and then install the
+// WebpackLoader to dynamically load locale data bundles,
+// or it will statically require all of the locale data that
+// this build needs so that it can be included into this
+// webpack bundle.
-module.exports = ilib;
+// !defineLocaleData
+module.exports = ilib;
diff --git a/js/lib/ilib-node-all.js b/js/lib/ilib-node-all.js
deleted file mode 100644
index 9b80339977..0000000000
--- a/js/lib/ilib-node-all.js
+++ /dev/null
@@ -1,110 +0,0 @@
-/* jshint node: true */
-/*
- * ilib-node-all.js - convenience glue code for node to pre-require()
- * all classes and export them all at the same time
- *
- * Copyright © 2015, JEDLSoft
- *
- * Licensed 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 CONDITIONS OF ANY KIND, either express or implied.
- *
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-var NodeLoader = require("../lib/NodeLoader.js");
-var ilib = require("../lib/ilib.js").ilib;
-ilib.setLoaderCallback(NodeLoader(ilib));
-
-// require everything so that it is available
-ilib.Utils = require("../lib/Utils.js");
-ilib.JSUtils = require("../lib/JSUtils.js");
-ilib.MathUtils = require("../lib/MathUtils.js");
-ilib.SearchUtils = require("../lib/SearchUtils.js");
-
-ilib.Locale = require("../lib/Locale.js");
-ilib.LocaleInfo = require("../lib/LocaleInfo.js");
-ilib.LocaleMatcher = require("../lib/LocaleMatcher.js");
-ilib.CaseMapper = require("../lib/CaseMapper.js");
-ilib.IString = require("../lib/IString.js");
-ilib.ResBundle = require("../lib/ResBundle.js");
-ilib.JulianDay = require("../lib/JulianDay.js");
-ilib.TimeZone = require("../lib/TimeZone.js");
-ilib.DateFactory = require("../lib/DateFactory.js");
-ilib.CalendarFactory = require("../lib/CalendarFactory.js");
-ilib.DateFmt = require("../lib/DateFmt.js");
-ilib.DateRngFmt = require("../lib/DateRngFmt.js");
-ilib.DurationFmt = require("../lib/DurationFmt.js");
-ilib.GregorianCal = require("../lib/GregorianCal.js");
-ilib.GregorianDate = require("../lib/GregorianDate.js");
-ilib.HebrewCal = require("../lib/HebrewCal.js");
-ilib.HebrewDate = require("../lib/HebrewDate.js");
-ilib.IslamicCal = require("../lib/IslamicCal.js");
-ilib.IslamicDate = require("../lib/IslamicDate.js");
-ilib.JulianCal = require("../lib/JulianCal.js");
-ilib.JulianDate = require("../lib/JulianDate.js");
-ilib.ThaiSolarCal = require("../lib/ThaiSolarCal.js");
-ilib.ThaiSolarDate = require("../lib/ThaiSolarDate.js");
-ilib.PersianCal = require("../lib/PersianCal.js");
-ilib.PersianDate = require("../lib/PersianDate.js");
-ilib.PersianAlgoCal = require("../lib/PersianAlgoCal.js");
-ilib.PersianAlgoDate = require("../lib/PersianAlgoDate.js");
-ilib.HanCal = require("../lib/HanCal.js");
-ilib.HanDate = require("../lib/HanDate.js");
-ilib.EthiopicCal = require("../lib/EthiopicCal.js");
-ilib.EthiopicDate = require("../lib/EthiopicDate.js");
-ilib.CopticCal = require("../lib/CopticCal.js");
-ilib.CopticDate = require("../lib/CopticDate.js");
-ilib.Currency = require("../lib/Currency.js");
-ilib.INumber = require("../lib/INumber.js");
-ilib.NumFmt = require("../lib/NumFmt.js");
-ilib.CType = require("../lib/CType.js");
-ilib.isDigit = require("../lib/isDigit.js");
-ilib.isSpace = require("../lib/isSpace.js");
-ilib.isAlpha = require("../lib/isAlpha.js");
-ilib.isAlnum = require("../lib/isAlnum.js");
-ilib.isAscii = require("../lib/isAscii.js");
-ilib.isBlank = require("../lib/isBlank.js");
-ilib.isCntrl = require("../lib/isCntrl.js");
-ilib.isGraph = require("../lib/isGraph.js");
-ilib.isIdeo = require("../lib/isIdeo.js");
-ilib.isLower = require("../lib/isLower.js");
-ilib.isPrint = require("../lib/isPrint.js");
-ilib.isPunct = require("../lib/isPunct.js");
-ilib.isUpper = require("../lib/isUpper.js");
-ilib.isXdigit = require("../lib/isXdigit.js");
-ilib.isScript = require("../lib/isScript.js");
-ilib.ScriptInfo = require("../lib/ScriptInfo.js");
-ilib.Name = require("../lib/Name.js");
-ilib.NameFmt = require("../lib/NameFmt.js");
-ilib.Address = require("../lib/Address.js");
-ilib.AddressFmt = require("../lib/AddressFmt.js");
-ilib.GlyphString = require("../lib/GlyphString.js");
-ilib.NormString = require("../lib/NormString.js");
-ilib.Collator = require("../lib/Collator.js");
-ilib.PhoneNumber = require("../lib/PhoneNumber.js");
-ilib.PhoneFmt = require("../lib/PhoneFmt.js");
-ilib.PhoneGeoLocator = require("../lib/PhoneGeoLocator.js");
-ilib.MeasurementFactory = require("../lib/MeasurementFactory.js");
-ilib.UnknownUnit = require("../lib/UnknownUnit.js");
-ilib.AreaUnit = require("../lib/AreaUnit.js");
-ilib.DigitalStorageUnit = require("../lib/DigitalStorageUnit.js");
-ilib.EnergyUnit = require("../lib/EnergyUnit.js");
-ilib.FuelConsumptionUnit = require("../lib/FuelConsumptionUnit.js");
-ilib.LengthUnit = require("../lib/LengthUnit.js");
-ilib.MassUnit = require("../lib/MassUnit.js");
-ilib.TemperatureUnit = require("../lib/TemperatureUnit.js");
-ilib.TimeUnit = require("../lib/TimeUnit.js");
-ilib.SpeedUnit = require("../lib/VelocityUnit.js");
-ilib.VolumeUnit = require("../lib/VolumeUnit.js");
-ilib.UnitFmt = require("../lib/UnitFmt.js");
-ilib.DigitalSpeedUnit = require("../lib/DigitalSpeedUnit.js");
-
-module.exports = ilib;
diff --git a/js/lib/ilib-qt.js b/js/lib/ilib-qt.js
index 2f92dd02f1..0d023dc1a4 100644
--- a/js/lib/ilib-qt.js
+++ b/js/lib/ilib-qt.js
@@ -62,13 +62,8 @@ requireClass.prototype.normalize = function(pathname) {
requireClass.prototype.require = function(parent, pathname, absolutePath) {
//console.log("------------------------\nrequire: called with " + pathname);
-
- if (pathname === "./runner.js") {
- // special case to redirect to the qt runner instead
- pathname = this.root + "/../../qt/UnitTest/runner.js";
- } else if (pathname === "./TestSuiteModule.js") {
+ if (pathname === "./TestSuiteModule.js") {
// special case to redirect to qt instead
- //pathname = this.root + "/../../qt/UnitTest/TestSuiteModule.js";
pathname = this.root + "/../../qt/NodeunitTest/TestSuiteModule.js";
} else if (pathname === "nodeunit") {
//console.log(" [ilib-qt.js] Loading nodeunit-qml.js ");
diff --git a/js/lib/ilib-standard-inc.js b/js/lib/ilib-standard-inc.js
deleted file mode 100644
index adaf1e8e1d..0000000000
--- a/js/lib/ilib-standard-inc.js
+++ /dev/null
@@ -1,52 +0,0 @@
-/**
- * @license
- * Copyright © 2012-2015, JEDLSoft
- *
- * Licensed 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 CONDITIONS OF ANY KIND, either express or implied.
- *
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/*
- * ilib-standard-inc.js - metafile that includes a reasonable set of other js files
- */
-
-/* !depends
-ilib.js
-DateRngFmt.js
-IDate.js
-DateFactory.js
-GregorianCal.js
-GregorianDate.js
-ThaiSolarCal.js
-ThaiSolarDate.js
-PersianCal.js
-PersianDate.js
-EthiopicCal.js
-EthiopicDate.js
-INumber.js
-NumFmt.js
-JulianDay.js
-DateFmt.js
-Calendar.js
-CalendarFactory.js
-Utils.js
-Locale.js
-IString.js
-DurationFmt.js
-ResBundle.js
-LocaleInfo.js
-DateRngFmt.js
-ScriptInfo.js
-CaseMapper.js
-ListFmt.js
-*/
\ No newline at end of file
diff --git a/js/lib/ilib-stubs-dyn.js b/js/lib/ilib-stubs-dyn.js
deleted file mode 100644
index dd5a08740b..0000000000
--- a/js/lib/ilib-stubs-dyn.js
+++ /dev/null
@@ -1,139 +0,0 @@
-/*
- * ilib-stubs-dyn.js - define the legacy ilib namespace in terms of new modules
- * for use in dynamic code loading
- *
- * Copyright © 2015, JEDLSoft
- *
- * Licensed 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 CONDITIONS OF ANY KIND, either express or implied.
- *
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-// !dependencies: false
-
-var ilib=require("../lib/ilib.js");
-if(!ilib.CType)ilib.CType=require("../lib/CType.js");if(!ilib._roundFnc)ilib._roundFnc={};
-if(!ilib.Date)ilib.Date=require("../lib/DateFactory.js");
-if(!ilib.Cal)ilib.Cal=require("../lib/CalendarFactory.js");
-if(!ilib.Measurement)ilib.Measurement=require("../lib/MeasurementFactory.js");
-if(!ilib.shallowCopy){ilib.shallowCopy=function(source, target){ilib.extend2(ilib, require("../lib/JSUtils.js"));return ilib.shallowCopy(source, target);};ilib.shallowCopy.stub=true;}
-if(!ilib.deepCopy){ilib.deepCopy=function(from, to){ilib.extend2(ilib, require("../lib/JSUtils.js"));return ilib.deepCopy(from, to);};ilib.deepCopy.stub=true;}
-if(!ilib.mapString){ilib.mapString=function(str, map){ilib.extend2(ilib, require("../lib/JSUtils.js"));return ilib.mapString(str, map);};ilib.mapString.stub=true;}
-if(!ilib.indexOf){ilib.indexOf=function(array, obj){ilib.extend2(ilib, require("../lib/JSUtils.js"));return ilib.indexOf(array, obj);};ilib.indexOf.stub=true;}
-if(!ilib.toHexString){ilib.toHexString=function(string, limit){ilib.extend2(ilib, require("../lib/JSUtils.js"));return ilib.toHexString(string, limit);};ilib.toHexString.stub=true;}
-if(!ilib.isDate){ilib.isDate=function(object){ilib.extend2(ilib, require("../lib/JSUtils.js"));return ilib.isDate(object);};ilib.isDate.stub=true;}
-if(!ilib.merge){ilib.merge=function(object1, object2, replace, name1, name2){ilib.extend2(ilib, require("../lib/JSUtils.js"));return ilib.merge(object1, object2, replace, name1, name2);};ilib.merge.stub=true;}
-if(!ilib.isEmpty){ilib.isEmpty=function(obj){ilib.extend2(ilib, require("../lib/JSUtils.js"));return ilib.isEmpty(obj);};ilib.isEmpty.stub=true;}
-if(!ilib.hashCode){ilib.hashCode=function(obj){ilib.extend2(ilib, require("../lib/JSUtils.js"));return ilib.hashCode(obj);};ilib.hashCode.stub=true;}
-if(!ilib.Locale){ilib.Locale=function(language, region, variant, script){ilib.Locale=require("../lib/Locale.js");return new ilib.Locale(language, region, variant, script);};ilib.Locale.stub=true;}
-if(!ilib.mergeLocData){ilib.mergeLocData=function(prefix, locale, replaceArrays, returnOne){ilib.extend2(ilib, require("../lib/Utils.js"));return ilib.mergeLocData(prefix, locale, replaceArrays, returnOne);};ilib.mergeLocData.stub=true;}
-if(!ilib.getLocFiles){ilib.getLocFiles=function(locale, name){ilib.extend2(ilib, require("../lib/Utils.js"));return ilib.getLocFiles(locale, name);};ilib.getLocFiles.stub=true;}
-if(!ilib.loadData){ilib.loadData=function(params){ilib.extend2(ilib, require("../lib/Utils.js"));return ilib.loadData(params);};ilib.loadData.stub=true;}
-if(!ilib.LocaleInfo){ilib.LocaleInfo=function(locale, options){ilib.LocaleInfo=require("../lib/LocaleInfo.js");return new ilib.LocaleInfo(locale, options);};ilib.LocaleInfo.stub=true;}
-if(!ilib.signum){ilib.signum=function(num){ilib.extend2(ilib, require("../lib/MathUtils.js"));return ilib.signum(num);};ilib.signum.stub=true;}
-if(!ilib.mod){ilib.mod=function(dividend, modulus){ilib.extend2(ilib, require("../lib/MathUtils.js"));return ilib.mod(dividend, modulus);};ilib.mod.stub=true;}
-if(!ilib.amod){ilib.amod=function(dividend, modulus){ilib.extend2(ilib, require("../lib/MathUtils.js"));return ilib.amod(dividend, modulus);};ilib.amod.stub=true;}
-if(!ilib.String){ilib.String=function(string){ilib.String=require("../lib/IString.js");return new ilib.String(string);};ilib.String.stub=true;}
-if(!ilib.Cal.newInstance){ilib.Cal.newInstance=function(options){ilib.Cal.newInstance=require("../lib/CalendarFactory.js");return ilib.Cal.newInstance(options);};ilib.Cal.newInstance.stub=true;}
-if(!ilib.Cal.getCalendars){ilib.Cal.getCalendars=function(){ilib.Cal.getCalendars=require("../lib/CalendarFactory.js").getCalendars;return ilib.Cal.getCalendars();};ilib.Cal.getCalendars.stub=true;}
-if(!ilib.Cal.Gregorian){ilib.Cal.Gregorian=function(options){ilib.Cal.Gregorian=require("../lib/GregorianCal.js");return new ilib.Cal.Gregorian(options);};ilib.Cal.Gregorian.stub=true;}
-if(!ilib.JulianDay){ilib.JulianDay=function(num){ilib.JulianDay=require("../lib/JulianDay.js");return new ilib.JulianDay(num);};ilib.JulianDay.stub=true;}
-if(!ilib.Date.RataDie){ilib.Date.RataDie=function(params){ilib.Date.RataDie=require("../lib/RataDie.js");return new ilib.Date.RataDie(params);};ilib.Date.RataDie.stub=true;}
-if(!ilib.Date.GregRataDie){ilib.Date.GregRataDie=function(params){ilib.Date.GregRataDie=require("../lib/GregRataDie.js");return new ilib.Date.GregRataDie(params);};ilib.Date.GregRataDie.stub=true;}
-if(!ilib.TimeZone){ilib.TimeZone=function(options){ilib.TimeZone=require("../lib/TimeZone.js");return new ilib.TimeZone(options);};ilib.TimeZone.stub=true;}
-if(!ilib.TimeZone.getAvailableIds){ilib.TimeZone.getAvailableIds=function(country, sync, onLoad){ilib.TimeZone=require("../lib/TimeZone.js");return ilib.TimeZone.getAvailableIds(country, sync, onLoad);};ilib.TimeZone.getAvailableIds.stub=true;}
-if(!ilib.bsearch){ilib.bsearch=function(target, arr, comparator){ilib.extend2(ilib, require("../lib/SearchUtils.js"));return ilib.bsearch(target, arr, comparator);};ilib.bsearch.stub=true;}
-if(!ilib.bisectionSearch){ilib.bisectionSearch=function(target, low, high, precision, func){ilib.extend2(ilib, require("../lib/SearchUtils.js"));return ilib.bisectionSearch(target, low, high, precision, func);};ilib.bisectionSearch.stub=true;}
-if(!ilib.Date.GregDate){ilib.Date.GregDate=function(params){ilib.Date.GregDate=require("../lib/GregorianDate.js");return new ilib.Date.GregDate(params);};ilib.Date.GregDate.stub=true;}
-if(!ilib.Date.newInstance){ilib.Date.newInstance=function(options){ilib.Date.newInstance=require("../lib/DateFactory.js");return ilib.Date.newInstance(options);};ilib.Date.newInstance.stub=true;}
-if(!ilib.Date._dateToIlib){ilib.Date._dateToIlib=function(dateLike){ilib.Date._dateToIlib=require("../lib/DateFactory.js")._dateToIlib;return ilib.Date._dateToIlib(dateLike);};ilib.Date.newInstance.stub=true;}
-if(!ilib.ResBundle){ilib.ResBundle=function(options){ilib.ResBundle=require("../lib/ResBundle.js");return new ilib.ResBundle(options);};ilib.ResBundle.stub=true;}
-if(!ilib.DateFmt){ilib.DateFmt=function(options){ilib.DateFmt=require("../lib/DateFmt.js");return new ilib.DateFmt(options);};ilib.DateFmt.stub=true;}
-if(!ilib.DateRngFmt){ilib.DateRngFmt=function(options){ilib.DateRngFmt=require("../lib/DateRngFmt.js");return new ilib.DateRngFmt(options);};ilib.DateRngFmt.stub=true;}
-if(!ilib.Cal.Hebrew){ilib.Cal.Hebrew=function(){ilib.Cal.Hebrew=require("../lib/HebrewCal.js");return new ilib.Cal.Hebrew();};ilib.Cal.Hebrew.stub=true;}
-if(!ilib.Date.HebrewDate){ilib.Date.HebrewDate=function(params){ilib.Date.HebrewDate=require("../lib/HebrewDate.js");return new ilib.Date.HebrewDate(params);};ilib.Date.HebrewDate.stub=true;}
-if(!ilib.Cal.Islamic){ilib.Cal.Islamic=function(){ilib.Cal.Islamic=require("../lib/IslamicCal.js");return new ilib.Cal.Islamic();};ilib.Cal.Islamic.stub=true;}
-if(!ilib.Date.IslamicDate){ilib.Date.IslamicDate=function(params){ilib.Date.IslamicDate=require("../lib/IslamicDate.js");return new ilib.Date.IslamicDate(params);};ilib.Date.IslamicDate.stub=true;}
-if(!ilib.Cal.Julian){ilib.Cal.Julian=function(){ilib.Cal.Julian=require("../lib/JulianCal.js");return new ilib.Cal.Julian();};ilib.Cal.Julian.stub=true;}
-if(!ilib.Date.JulDate){ilib.Date.JulDate=function(params){ilib.Date.JulDate=require("../lib/JulianDate.js");return new ilib.Date.JulDate(params);};ilib.Date.JulDate.stub=true;}
-if(!ilib.Cal.ThaiSolar){ilib.Cal.ThaiSolar=function(){ilib.Cal.ThaiSolar=require("../lib/ThaiSolarCal.js");return new ilib.Cal.ThaiSolar();};ilib.Cal.ThaiSolar.stub=true;}
-if(!ilib.Date.ThaiSolarDate){ilib.Date.ThaiSolarDate=function(params){ilib.Date.ThaiSolarDate=require("../lib/ThaiSolarDate.js");return new ilib.Date.ThaiSolarDate(params);};ilib.Date.ThaiSolarDate.stub=true;}
-if(!ilib.Date.initAstro){ilib.Date.initAstro=function(sync, loadParams, callback){ilib.extend2(ilib.Date, require("../lib/Astro.js"));return ilib.Date.initAstro(sync, loadParams, callback);};ilib.Date.initAstro.stub=true;}
-if(!ilib.Date.PersAstroRataDie){ilib.Date.PersAstroRataDie=function(params){ilib.Date.PersAstroRataDie=require("../lib/PersRataDie.js");return new ilib.Date.PersAstroRataDie(params);};ilib.Date.PersAstroRataDie.stub=true;}
-if(!ilib.Cal.Persian){ilib.Cal.Persian=function(){ilib.Cal.Persian=require("../lib/PersianCal.js");return new ilib.Cal.Persian();};ilib.Cal.Persian.stub=true;}
-if(!ilib.Date.PersDate){ilib.Date.PersDate=function(params){ilib.Date.PersDate=require("../lib/PersianDate.js");return new ilib.Date.PersDate(params);};ilib.Date.PersDate.stub=true;}
-if(!ilib.Cal.PersianAlgo){ilib.Cal.PersianAlgo=function(){ilib.Cal.PersianAlgo=require("../lib/PersianAlgoCal.js");return new ilib.Cal.PersianAlgo();};ilib.Cal.PersianAlgo.stub=true;}
-if(!ilib.Date.PersAlgoDate){ilib.Date.PersAlgoDate=function(params){ilib.Date.PersAlgoDate=require("../lib/PersianAlgoDate.js");return new ilib.Date.PersAlgoDate(params);};ilib.Date.PersAlgoDate.stub=true;}
-if(!ilib.Date.PersAlgoRataDie){ilib.Date.PersAlgoRataDie=function(params){ilib.Date.PersAlgoRataDie=require("../lib/PersAlgoRataDie.js");return new ilib.Date.PersAlgoRataDie(params);};ilib.Date.PersAlgoRataDie.stub=true;}
-if(!ilib.Cal.Han){ilib.Cal.Han=function(params){ilib.Cal.Han=require("../lib/HanCal.js");return new ilib.Cal.Han(params);};ilib.Cal.Han.stub=true;}
-if(!ilib.Date.HanDate){ilib.Date.HanDate=function(params){ilib.Date.HanDate=require("../lib/HanDate.js");return new ilib.Date.HanDate(params);};ilib.Date.HanDate.stub=true;}
-if(!ilib.Date.HanRataDie){ilib.Date.HanRataDie=function(params){ilib.Date.HanRataDie=require("../lib/HanRataDie.js");return new ilib.Date.HanRataDie(params);};ilib.Date.HanRataDie.stub=true;}
-if(!ilib.Cal.Ethiopic){ilib.Cal.Ethiopic=function(){ilib.Cal.Ethiopic=require("../lib/EthiopicCal.js");return new ilib.Cal.Ethiopic();};ilib.Cal.Ethiopic.stub=true;}
-if(!ilib.Date.EthiopicDate){ilib.Date.EthiopicDate=function(params){ilib.Date.EthiopicDate=require("../lib/EthiopicDate.js");return new ilib.Date.EthiopicDate(params);};ilib.Date.EthiopicDate.stub=true;}
-if(!ilib.Date.EthiopicRataDie){ilib.Date.EthiopicRataDie=function(params){ilib.Date.EthiopicRataDie=require("../lib/EthiopicRataDie.js");return new ilib.Date.EthiopicRataDie(params);};ilib.Date.EthiopicRataDie.stub=true;}
-if(!ilib.Cal.Coptic){ilib.Cal.Coptic=function(){ilib.Cal.Coptic=require("../lib/CopticCal.js");return new ilib.Cal.Coptic();};ilib.Cal.Coptic.stub=true;}
-if(!ilib.Date.CopticDate){ilib.Date.CopticDate=function(params){ilib.Date.CopticDate=require("../lib/CopticDate.js");return new ilib.Date.CopticDate(params);};ilib.Date.CopticDate.stub=true;}
-if(!ilib.Date.CopticRataDie){ilib.Date.CopticRataDie=function(params){ilib.Date.CopticRataDie=require("../lib/CopticRataDie.js");return new ilib.Date.CopticRataDie(params);};ilib.Date.CopticRataDie.stub=true;}
-if(!ilib.CType.isDigit){ilib.CType.isDigit=function(ch){ilib.CType.isDigit=require("../lib/isDigit.js");return ilib.CType.isDigit(ch);};ilib.CType.isDigit.stub=true;}
-if(!ilib.CType.isSpace){ilib.CType.isSpace=function(ch){ilib.CType.isSpace=require("../lib/isSpace.js");return ilib.CType.isSpace(ch);};ilib.CType.isSpace.stub=true;}
-if(!ilib.Currency){ilib.Currency=function(options){ilib.Currency=require("../lib/Currency.js");return new ilib.Currency(options);};ilib.Currency.stub=true;}
-if(!ilib.Currency.getAvailableCurrencies){ilib.Currency.getAvailableCurrencies=function(){ilib.Currency=require("../lib/Currency.js");return new ilib.Currency.getAvailableCurrencies();};ilib.Currency.getAvailableCurrencies.stub=true;}
-if(!ilib.Number){ilib.Number=function(str, options){ilib.Number=require("../lib/INumber.js");return new ilib.Number(str, options);};ilib.Number.stub=true;}
-if(!ilib.NumFmt){ilib.NumFmt=function(options){ilib.NumFmt=require("../lib/NumFmt.js");return new ilib.NumFmt(options);};ilib.NumFmt.stub=true;}
-if(!ilib.DurFmt){ilib.DurFmt=function(options){ilib.DurFmt=require("../lib/DurationFmt.js");return new ilib.DurFmt(options);};ilib.DurFmt.stub=true;}
-if(!ilib.CType.isAlpha){ilib.CType.isAlpha=function(ch){ilib.CType.isAlpha=require("../lib/isAlpha.js");return ilib.CType.isAlpha(ch);};ilib.CType.isAlpha.stub=true;}
-if(!ilib.CType.isAlnum){ilib.CType.isAlnum=function(ch){ilib.CType.isAlnum=require("../lib/isAlnum.js");return ilib.CType.isAlnum(ch);};ilib.CType.isAlnum.stub=true;}
-if(!ilib.CType.isAscii){ilib.CType.isAscii=function(ch){ilib.CType.isAscii=require("../lib/isAscii.js");return ilib.CType.isAscii(ch);};ilib.CType.isAscii.stub=true;}
-if(!ilib.CType.isBlank){ilib.CType.isBlank=function(ch){ilib.CType.isBlank=require("../lib/isBlank.js");return ilib.CType.isBlank(ch);};ilib.CType.isBlank.stub=true;}
-if(!ilib.CType.isCntrl){ilib.CType.isCntrl=function(ch){ilib.CType.isCntrl=require("../lib/isCntrl.js");return ilib.CType.isCntrl(ch);};ilib.CType.isCntrl.stub=true;}
-if(!ilib.CType.isGraph){ilib.CType.isGraph=function(ch){ilib.CType.isGraph=require("../lib/isGraph.js");return ilib.CType.isGraph(ch);};ilib.CType.isGraph.stub=true;}
-if(!ilib.CType.isIdeo){ilib.CType.isIdeo=function(ch){ilib.CType.isIdeo=require("../lib/isIdeo.js");return ilib.CType.isIdeo(ch);};ilib.CType.isIdeo.stub=true;}
-if(!ilib.CType.isLower){ilib.CType.isLower=function(ch){ilib.CType.isLower=require("../lib/isLower.js");return ilib.CType.isLower(ch);};ilib.CType.isLower.stub=true;}
-if(!ilib.CType.isPrint){ilib.CType.isPrint=function(ch){ilib.CType.isPrint=require("../lib/isPrint.js");return ilib.CType.isPrint(ch);};ilib.CType.isPrint.stub=true;}
-if(!ilib.CType.isPunct){ilib.CType.isPunct=function(ch){ilib.CType.isPunct=require("../lib/isPunct.js");return ilib.CType.isPunct(ch);};ilib.CType.isPunct.stub=true;}
-if(!ilib.CType.isUpper){ilib.CType.isUpper=function(ch){ilib.CType.isUpper=require("../lib/isUpper.js");return ilib.CType.isUpper(ch);};ilib.CType.isUpper.stub=true;}
-if(!ilib.CType.isXdigit){ilib.CType.isXdigit=function(ch){ilib.CType.isXdigit=require("../lib/isXdigit.js");return ilib.CType.isXdigit(ch);};ilib.CType.isXdigit.stub=true;}
-if(!ilib.CType.isScript){ilib.CType.isScript=function(ch, script){ilib.CType.isScript=require("../lib/isScript.js");return ilib.CType.isScript(ch, script);};ilib.CType.isScript.stub=true;}
-if(!ilib.ScriptInfo){ilib.ScriptInfo=function(script, options){ilib.ScriptInfo=require("../lib/ScriptInfo.js");return new ilib.ScriptInfo(script, options);};ilib.ScriptInfo.stub=true;}
-if(!ilib.Name){ilib.Name=function(name, options){ilib.Name=require("../lib/Name.js");return new ilib.Name(name, options);};ilib.Name.stub=true;}
-if(!ilib.NameFmt){ilib.NameFmt=function(options){ilib.NameFmt=require("../lib/NameFmt.js");return new ilib.NameFmt(options);};ilib.NameFmt.stub=true;}
-if(!ilib.Address){ilib.Address=function(freeformAddress, options){ilib.Address=require("../lib/Address.js");return new ilib.Address(freeformAddress, options);};ilib.Address.stub=true;}
-if(!ilib.AddressFmt){ilib.AddressFmt=function(options){ilib.AddressFmt=require("../lib/AddressFmt.js");return new ilib.AddressFmt(options);};ilib.AddressFmt.stub=true;}
-if(!ilib.GlyphString){ilib.GlyphString=function(str, options){ilib.GlyphString=require("../lib/GlyphString.js");return new ilib.GlyphString(str, options);};ilib.GlyphString.stub=true;}
-if(!ilib.NormString){ilib.NormString=function(str){ilib.NormString=require("../lib/NormString.js");return new ilib.NormString(str);};ilib.NormString.stub=true;}
-if(!ilib.CodePointSource){ilib.CodePointSource=function(str, ignorePunctuation){ilib.CodePointSource=require("../lib/CodePointSource.js");return new ilib.CodePointSource(str, ignorePunctuation);};ilib.CodePointSource.stub=true;}
-if(!ilib.ElementIterator){ilib.ElementIterator=function(source, map, keysize){ilib.ElementIterator=require("../lib/ElementIterator.js");return new ilib.ElementIterator(source, map, keysize);};ilib.ElementIterator.stub=true;}
-if(!ilib.Collator){ilib.Collator=function(options){ilib.Collator=require("../lib/Collator.js");return new ilib.Collator(options);};ilib.Collator.stub=true;}
-if(!ilib.LocaleMatcher){ilib.LocaleMatcher=function(options){ilib.LocaleMatcher=require("../lib/LocaleMatcher.js");return new ilib.LocaleMatcher(options);};ilib.LocaleMatcher.stub=true;}
-if(!ilib.CaseMapper){ilib.CaseMapper=function(options){ilib.CaseMapper=require("../lib/CaseMapper.js");return new ilib.CaseMapper(options);};ilib.CaseMapper.stub=true;}
-if(!ilib.NumPlan){ilib.NumPlan=function(options){ilib.NumPlan=require("../lib/NumberingPlan.js");return new ilib.NumPlan(options);};ilib.NumPlan.stub=true;}
-if(!ilib.PhoneLoc){ilib.PhoneLoc=function(options){ilib.PhoneLoc=require("../lib/PhoneLocale.js");return new ilib.PhoneLoc(options);};ilib.PhoneLoc.stub=true;}
-if(!ilib.StateHandler){ilib.StateHandler=function(){ilib.StateHandler=require("../lib/PhoneHandlerFactory.js");return new ilib.StateHandler();};ilib.StateHandler.stub=true;}
-if(!ilib._handlerFactory){ilib._handlerFactory=function(locale, plan){ilib._handlerFactory=require("../lib/PhoneHandlerFactory.js");return ilib._handlerFactory(locale, plan);};ilib._handlerFactory.stub=true;}
-if(!ilib.PhoneNumber){ilib.PhoneNumber=function(number, options){ilib.PhoneNumber=require("../lib/PhoneNumber.js");return new ilib.PhoneNumber(number, options);};ilib.PhoneNumber.stub=true;}
-if(!ilib.PhoneFmt){ilib.PhoneFmt=function(options){ilib.PhoneFmt=require("../lib/PhoneFmt.js");return new ilib.PhoneFmt(options);};ilib.PhoneFmt.stub=true;}
-if(!ilib.GeoLocator){ilib.GeoLocator=function(options){ilib.GeoLocator=require("../lib/PhoneGeoLocator.js");return new ilib.GeoLocator(options);};ilib.GeoLocator.stub=true;}
-if(!ilib.Measurement.Unknown){ilib.Measurement.Unknown=function(options){ilib.Measurement.Unknown=require("../lib/UnknownUnit.js");return new ilib.Measurement.Unknown(options);};ilib.Measurement.Unknown.stub=true;}
-if(!ilib.Measurement.Area){ilib.Measurement.Area=function(options){ilib.Measurement.Area=require("../lib/AreaUnit.js");return new ilib.Measurement.Area(options);};ilib.Measurement.Area.stub=true;}
-if(!ilib.Measurement.DigitalStorage){ilib.Measurement.DigitalStorage=function(options){ilib.Measurement.DigitalStorage=require("../lib/DigitalStorageUnit.js");return new ilib.Measurement.DigitalStorage(options);};ilib.Measurement.DigitalStorage.stub=true;}
-if(!ilib.Measurement.Energy){ilib.Measurement.Energy=function(options){ilib.Measurement.Energy=require("../lib/EnergyUnit.js");return new ilib.Measurement.Energy(options);};ilib.Measurement.Energy.stub=true;}
-if(!ilib.Measurement.FuelConsumption){ilib.Measurement.FuelConsumption=function(options){ilib.Measurement.FuelConsumption=require("../lib/FuelConsumptionUnit.js");return new ilib.Measurement.FuelConsumption(options);};ilib.Measurement.FuelConsumption.stub=true;}
-if(!ilib.Measurement.Length){ilib.Measurement.Length=function(options){ilib.Measurement.Length=require("../lib/LengthUnit.js");return new ilib.Measurement.Length(options);};ilib.Measurement.Length.stub=true;}
-if(!ilib.Measurement.Mass){ilib.Measurement.Mass=function(options){ilib.Measurement.Mass=require("../lib/MassUnit.js");return new ilib.Measurement.Mass(options);};ilib.Measurement.Mass.stub=true;}
-if(!ilib.Measurement.Temperature){ilib.Measurement.Temperature=function(options){ilib.Measurement.Temperature=require("../lib/TemperatureUnit.js");return new ilib.Measurement.Temperature(options);};ilib.Measurement.Temperature.stub=true;}
-if(!ilib.Measurement.Time){ilib.Measurement.Time=function(options){ilib.Measurement.Time=require("../lib/TimeUnit.js");return new ilib.Measurement.Time(options);};ilib.Measurement.Time.stub=true;}
-if(!ilib.Measurement.Speed){ilib.Measurement.Speed=function(options){ilib.Measurement.Speed=require("../lib/VelocityUnit.js");return new ilib.Measurement.Speed(options);};ilib.Measurement.Speed.stub=true;}
-if(!ilib.Measurement.Volume){ilib.Measurement.Volume=function(options){ilib.Measurement.Volume=require("../lib/VolumeUnit.js");return new ilib.Measurement.Volume(options);};ilib.Measurement.Volume.stub=true;}
-if(!ilib.UnitFmt){ilib.UnitFmt=function(options){ilib.UnitFmt=require("../lib/UnitFmt.js");return new ilib.UnitFmt(options);};ilib.UnitFmt.stub=true;}
-if(!ilib.Measurement.DigitalSpeed){ilib.Measurement.DigitalSpeed=function(options){ilib.Measurement.DigitalSpeed=require("../lib/DigitalSpeed.js");return new ilib.Measurement.DigitalSpeed(options);};ilib.Measurement.DigitalSpeed.stub=true;}
-
-module.exports = ilib;
diff --git a/js/lib/ilib-stubs-map.js b/js/lib/ilib-stubs-map.js
deleted file mode 100644
index cc7010cc78..0000000000
--- a/js/lib/ilib-stubs-map.js
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * ilib-stubs-map.js - define a fake require() function so that dynamic
- * code can run properly in an assembled environment
- *
- * Copyright © 2015, JEDLSoft
- *
- * Licensed 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 CONDITIONS OF ANY KIND, either express or implied.
- *
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-// !dependencies: false
-
-
-var oldRequire = require;
-var require = function(pathname) {
- // console.log("new require: looking up pathname " + pathname);
- var i = pathname.lastIndexOf('/');
- var file = i > -1 ? pathname.substring(i+1) : pathname;
- if (file.substring(file.length-3) === ".js") {
- var moduleName = file.substring(0, file.length-3); // strip the ".js" part
- // console.log("new require: module name is " + moduleName);
- // console.log("new require: module is: ");
- var module = ilib._global(moduleName) || this[moduleName];
- // console.dir(module);
- if (module) return module;
- }
- return oldRequire && oldRequire(pathname);
-};
diff --git a/js/lib/ilib-stubs.js b/js/lib/ilib-stubs.js
deleted file mode 100644
index 6baa39c99e..0000000000
--- a/js/lib/ilib-stubs.js
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * ilib-stubs.js - define the legacy ilib namespace in terms of new modules
- *
- * Copyright © 2015, JEDLSoft
- *
- * Licensed 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 CONDITIONS OF ANY KIND, either express or implied.
- *
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-// !dependencies: false
-
-ilib.CType=CType;ilib._roundFnc={};
-ilib.Date=DateFactory;ilib.Cal=CalendarFactory;ilib.Measurement=MeasurementFactory;ilib.extend2(ilib.Date, Astro);
-ilib.shallowCopy=JSUtils.shallowCopy;ilib.deepCopy=JSUtils.deepCopy;ilib.mapString=JSUtils.mapString;ilib.indexOf=JSUtils.indexOf;ilib.toHexString=JSUtils.toHexString;ilib.isDate=JSUtils.isDate;ilib.merge=JSUtils.merge;ilib.isEmpty=JSUtils.isEmpty;ilib.hashCode=JSUtils.hashCode;ilib.Locale=Locale;ilib.mergeLocData=Utils.mergeLocData;ilib.getLocFiles=Utils.getLocFiles;ilib.loadData=Utils.loadData;ilib.LocaleInfo=LocaleInfo;ilib.signum=MathUtils.signum;ilib.mod=MathUtils.mod;ilib.amod=MathUtils.amod;ilib.String=IString;ilib.Cal.newInstance=CalendarFactory;ilib.Cal.getCalendars=CalendarFactory.getCalendars;ilib.Cal.Gregorian=GregorianCal;ilib.JulianDay=JulianDay;ilib.Date.RataDie=RataDie;ilib.Date.GregRataDie=GregRataDie;ilib.TimeZone=TimeZone;ilib.bsearch=SearchUtils.bsearch;ilib.bisectionSearch=SearchUtils.bisectionSearch;ilib.Date.GregDate=GregorianDate;ilib.Date.newInstance=DateFactory;ilib.ResBundle=ResBundle;ilib.DateFmt=DateFmt;ilib.DateRngFmt=DateRngFmt;ilib.Cal.Hebrew=HebrewCal;ilib.Date.HebrewDate=HebrewDate;ilib.Cal.Islamic=IslamicCal;ilib.Date.IslamicDate=IslamicDate;ilib.Cal.Julian=JulianCal;ilib.Date.JulDate=JulianDate;ilib.Date.JulRataDie=JulianRataDie;
-ilib.Cal.ThaiSolar=ThaiSolarCal;ilib.Date.ThaiSolarDate=ThaiSolarDate;ilib.Date.initAstro=Astro.initAstro;ilib.Date.PersAstroRataDie=PersRataDie;ilib.Cal.Persian=PersianCal;ilib.Date.PersDate=PersianDate;ilib.Cal.PersianAlgo=PersianAlgoCal;ilib.Date.PersAlgoDate=PersianAlgoDate;ilib.Date.PersAlgoRataDie=PersAlgoRataDie;ilib.Cal.Han=HanCal;ilib.Date.HanDate=HanDate;ilib.Date.HanRataDie=HanRataDie;
-ilib.Cal.Ethiopic=EthiopicCal;ilib.Date.EthiopicDate=EthiopicDate;ilib.Date.EthiopicRataDie = EthiopicRataDie;
-ilib.Cal.Coptic=CopticCal;ilib.Date.CopticDate=CopticDate;ilib.Date.CopticRataDie=CopticRataDie;
-ilib.CType.isDigit=isDigit;ilib.CType.isSpace=isSpace;ilib.Currency=Currency;ilib.Number=INumber;ilib.NumFmt=NumFmt;ilib.DurFmt=DurationFmt;ilib.CType.isAlpha=isAlpha;ilib.CType.isAlnum=isAlnum;ilib.CType.isAscii=isAscii;ilib.CType.isBlank=isBlank;ilib.CType.isCntrl=isCntrl;ilib.CType.isGraph=isGraph;ilib.CType.isIdeo=isIdeo;ilib.CType.isLower=isLower;ilib.CType.isPrint=isPrint;ilib.CType.isPunct=isPunct;ilib.CType.isUpper=isUpper;ilib.CType.isXdigit=isXdigit;ilib.CType.isScript=isScript;ilib.ScriptInfo=ScriptInfo;ilib.Name=Name;ilib.NameFmt=NameFmt;ilib.Address=Address;ilib.AddressFmt=AddressFmt;ilib.GlyphString=GlyphString;ilib.NormString=NormString;ilib.CodePointSource=CodePointSource;ilib.ElementIterator=ElementIterator;ilib.Collator=Collator;ilib.LocaleMatcher=LocaleMatcher;ilib.CaseMapper=CaseMapper;ilib.NumPlan=NumberingPlan;ilib.PhoneLoc=PhoneLocale;ilib.StateHandler=PhoneHandler;ilib._handlerFactory=PhoneHandlerFactory;ilib.PhoneNumber=PhoneNumber;ilib.PhoneFmt=PhoneFmt;ilib.GeoLocator=PhoneGeoLocator;ilib.Measurement.Unknown=UnknownUnit;ilib.Measurement.Area=AreaUnit;ilib.Measurement.DigitalStorage=DigitalSpeedUnit;ilib.Measurement.DigitalStorage=DigitalSpeedUnit;ilib.Measurement.Energy=EnergyUnit;ilib.Measurement.FuelConsumption=FuelConsumptionUnit;ilib.Measurement.Length=LengthUnit;ilib.Measurement.Mass=MassUnit;ilib.Measurement.Temperature=TemperatureUnit;ilib.Measurement.Time=TimeUnit;ilib.Measurement.Speed=VelocityUnit;ilib.Measurement.Volume=VolumeUnit;ilib.UnitFmt=UnitFmt;
-
diff --git a/js/lib/ilib-test-dyndata.js b/js/lib/ilib-test-dyndata.js
deleted file mode 100644
index bbbbe25590..0000000000
--- a/js/lib/ilib-test-dyndata.js
+++ /dev/null
@@ -1,30 +0,0 @@
-/* jshint node: true */
-/*
- * ilib-test-dyn.js - glue code for node to load both code
- * and the data dynamically
- *
- * Copyright © 2015, JEDLSoft
- *
- * Licensed 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 CONDITIONS OF ANY KIND, either express or implied.
- *
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-var NodeLoader = require("../lib/NodeLoader.js");
-var ilib = require("../lib/ilib.js");
-ilib.setLoaderCallback(NodeLoader(ilib));
-
-ilib._dyncode = false;
-ilib._dyndata = true;
-
-module.exports = ilib;
-
diff --git a/js/lib/ilib-test.js b/js/lib/ilib-test.js
deleted file mode 100644
index bde3503f88..0000000000
--- a/js/lib/ilib-test.js
+++ /dev/null
@@ -1,33 +0,0 @@
-/* jshint node: true */
-/*
- * ilib-test.js - glue code for node to load local assembled ilib code
- * statically and the data dynamically
- *
- * Copyright © 2015, JEDLSoft
- *
- * Licensed 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 CONDITIONS OF ANY KIND, either express or implied.
- *
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-// var NodeLoader = require("../lib/NodeLoader.js");
-// ilib.setLoaderCallback(NodeLoader(ilib));
-
-//initialize some things statically because the constructors do not load
-//the locale-independent data
-CType._init(true);
-NormString.init();
-
-ilib._dyncode = false;
-ilib._dyndata = false;
-
-module.exports = ilib;
diff --git a/js/lib/ilib-unpack.js b/js/lib/ilib-unpack.js
new file mode 100644
index 0000000000..74ac3733a6
--- /dev/null
+++ b/js/lib/ilib-unpack.js
@@ -0,0 +1,157 @@
+/**
+ * ilib-unpack.js - Unpack a set of ilib routines webpacked into a
+ * single file back into the global scope.
+ *
+ * @license
+ * Copyright © 2018, JEDLSoft
+ *
+ * Licensed 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 CONDITIONS OF ANY KIND, either express or implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+// WARNING: this assumes you have already included ilib-*.js into your html
+
+var ilib = require("./ilib.js");
+
+var top = ilib._top();
+
+var exportClassesPublic = [
+ "DateRngFmt",
+ "IDate",
+ "DateFactory",
+ "HebrewDate",
+ "HebrewCal",
+ "IslamicCal",
+ "IslamicDate",
+ "JulianCal",
+ "JulianDate",
+ "GregorianCal",
+ "GregorianDate",
+ "ThaiSolarCal",
+ "ThaiSolarDate",
+ "PersianCal",
+ "PersianDate",
+ "PersianAlgoCal",
+ "PersianAlgoDate",
+ "HanCal",
+ "HanDate",
+ "EthiopicCal",
+ "EthiopicDate",
+ "CopticCal",
+ "CopticDate",
+ "INumber",
+ "NumFmt",
+ "JulianDay",
+ "DateFmt",
+ "Calendar",
+ "CalendarFactory",
+ "Utils",
+ "Locale",
+ "IString",
+ "DurationFmt",
+ "ResBundle",
+ "CType",
+ "LocaleInfo",
+ "DateRngFmt",
+ "isAlnum",
+ "isAlpha",
+ "isAscii",
+ "isBlank",
+ "isCntrl",
+ "isDigit",
+ "isGraph",
+ "isIdeo",
+ "isLower",
+ "isPrint",
+ "isPunct",
+ "isSpace",
+ "isUpper",
+ "isXdigit",
+ "isScript",
+ "ScriptInfo",
+ "Name",
+ "NameFmt",
+ "Address",
+ "AddressFmt",
+ "Collator",
+ "LocaleMatcher",
+ "NormString",
+ "CaseMapper",
+ "GlyphString",
+ "PhoneFmt",
+ "PhoneGeoLocator",
+ "PhoneNumber",
+ "Measurement",
+ "MeasurementFactory",
+ "UnitFmt",
+ "LengthUnit",
+ "VelocityUnit",
+ "DigitalStorageUnit",
+ "TemperatureUnit",
+ "UnknownUnit",
+ "TimeUnit",
+ "MassUnit",
+ "AreaUnit",
+ "FuelConsumptionUnit",
+ "VolumeUnit",
+ "EnergyUnit",
+ "Charset",
+ "Charmap",
+ "CharmapFactory",
+ "CharmapTable",
+ "UTF8",
+ "UTF16BE",
+ "UTF16LE",
+ "Country",
+ "ListFmt",
+ "AlphabeticIndex",
+ "TimeZone",
+ "Currency",
+ "DigitalSpeedUnit"
+];
+
+if (top) {
+ // these are the private classes that the unit tests may need
+ var exportClasses = exportClassesPublic.concat([
+ "ISet",
+ "SearchUtils",
+ "MathUtils",
+ "JSUtils",
+ "Path",
+ "Astro",
+ "Utils",
+ "CodePointSource",
+ "CopticRataDie",
+ "ElementIterator",
+ "EthiopicRataDie",
+ "GregRataDie",
+ "HanRataDie",
+ "NumberingPlan",
+ "PersAlgoRataDie",
+ "PersRataDie",
+ "PhoneHandlerFactory",
+ "PhoneLocale",
+ "RataDie"
+ ]);
+
+ exportClasses.forEach(function(className) {
+ // console.log("Defining " + className);
+ if (typeof(ilib[className]) !== 'undefined') {
+ top[className] = ilib[className];
+ }
+ });
+} else {
+ throw "No global scope on this platform. You cannot use ilib-unpack here to unpack ilib into the global scope because it does not exist.";
+}
+
+module.exports = exportClassesPublic;
diff --git a/js/lib/ilib-ut-inc.js b/js/lib/ilib-ut-inc.js
deleted file mode 100644
index fcd7c32c21..0000000000
--- a/js/lib/ilib-ut-inc.js
+++ /dev/null
@@ -1,137 +0,0 @@
-/**
- * Copyright © 2012-2015, JEDLSoft
- *
- * Licensed 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 CONDITIONS OF ANY KIND, either express or implied.
- *
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * @license
- */
-
-/*
- * ilib.js - metafile that includes all other js files
- */
-
-/* !depends
-ilib.js
-DateRngFmt.js
-IDate.js
-DateFactory.js
-HebrewDate.js
-HebrewCal.js
-IslamicCal.js
-IslamicDate.js
-JulianCal.js
-JulianDate.js
-GregorianCal.js
-GregorianDate.js
-ThaiSolarCal.js
-ThaiSolarDate.js
-PersianAlgoCal.js
-PersianAlgoDate.js
-PersianDate.js
-PersianCal.js
-HanCal.js
-HanDate.js
-EthiopicCal.js
-EthiopicDate.js
-CopticCal.js
-CopticDate.js
-INumber.js
-NumFmt.js
-JulianDay.js
-DateFmt.js
-Calendar.js
-CalendarFactory.js
-Utils.js
-Locale.js
-nfkc/all.js
-IString.js
-DurationFmt.js
-ResBundle.js
-CType.js
-LocaleInfo.js
-DateRngFmt.js
-isAlnum.js
-isAlpha.js
-isAscii.js
-isBlank.js
-isCntrl.js
-isDigit.js
-isGraph.js
-isIdeo.js
-isLower.js
-isPrint.js
-isPunct.js
-isScript.js
-isSpace.js
-isUpper.js
-isXdigit.js
-ScriptInfo.js
-Name.js
-NameFmt.js
-Address.js
-AddressFmt.js
-Collator.js
-LocaleMatcher.js
-NormString.js
-StringMapper.js
-CaseMapper.js
-GlyphString.js
-PhoneNumber.js
-PhoneFmt.js
-PhoneGeoLocator.js
-Measurement.js
-MeasurementFactory.js
-UnitFmt.js
-LengthUnit.js
-VelocityUnit.js
-TemperatureUnit.js
-DigitalStorageUnit.js
-UnknownUnit.js
-TimeUnit.js
-MassUnit.js
-AreaUnit.js
-FuelConsumptionUnit.js
-VolumeUnit.js
-EnergyUnit.js
-Charset.js
-ListFmt.js
-Country.js
-ListFmt.js
-CaseMapper.js
-Charset.js
-Charmap.js
-CharmapFactory.js
-CharmapTable.js
-UTF8.js
-UTF16BE.js
-UTF16LE.js
-charmaps/Jpan.js
-charmaps/Kore.js
-charmaps/Hans.js
-charmaps/Hant.js
-charmaps/general.js
-AlphabeticIndex.js
-DigitalSpeedUnit.js
-*/
-
-/* !data
-charset/ISO-10646-UCS-2
-charset/UTF-16BE
-charset/UTF-16
-charset/UTF-16LE
-charset/UTF-8
-charset/ISO-8859-1
-charset/EUC-JP
-charset/Shift_JIS
-charset/ISO-8859-15
-*/
diff --git a/js/lib/ilib-ut-maps-inc.js b/js/lib/ilib-ut-maps-inc.js
deleted file mode 100644
index 27aaf7491e..0000000000
--- a/js/lib/ilib-ut-maps-inc.js
+++ /dev/null
@@ -1,44 +0,0 @@
-/**
- * Copyright © 2015, JEDLSoft
- *
- * Licensed 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 CONDITIONS OF ANY KIND, either express or implied.
- *
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * @license
- */
-
-/*
- * ilib-ut-maps-inc.js - metafile that includes all other js files
- * for testing only the maps part. This should pull in all the
- * other dependencies automatically. This is separated because
- * the charmaps data is so $#@%#$ huge.
- */
-
-/* !depends
-CType.js
-NormString.js
-CaseMapper.js
-Charset.js
-Charmap.js
-CharmapFactory.js
-CharmapTable.js
-UTF8.js
-UTF16BE.js
-UTF16LE.js
-charmaps/Jpan.js
-charmaps/Kore.js
-charmaps/Hans.js
-charmaps/Hant.js
-charmaps/general.js
-*/
-
-/* The charmaps files are other include files that conveniently allow you to include all the charmaps and charsets need for a particular script. */
\ No newline at end of file
diff --git a/js/lib/ilib-web-async-externs.js b/js/lib/ilib-web-async-externs.js
deleted file mode 100644
index ccaeff405e..0000000000
--- a/js/lib/ilib-web-async-externs.js
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * externs.js - define externs for the google closure compiler
- *
- * Copyright © 2012-2015, JEDLSoft
- *
- * Licensed 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 CONDITIONS OF ANY KIND, either express or implied.
- *
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-// !dependencies: false
-
-console.log = function (str){};
-var PalmSystem, process, require, module, environment, exports, global, Qt, Locale;
diff --git a/js/lib/ilib-web.js b/js/lib/ilib-web.js
deleted file mode 100644
index 95a3336f34..0000000000
--- a/js/lib/ilib-web.js
+++ /dev/null
@@ -1,158 +0,0 @@
-/*
- * ilib-web.js - glue code for web apps to load local ilib code and data
- * using XHR
- *
- * Copyright © 2015, JEDLSoft
- *
- * Licensed 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 CONDITIONS OF ANY KIND, either express or implied.
- *
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-var path = {
- dirname: function(pathname) {
- var i = pathname.lastIndexOf("/");
- return i !== -1 ? pathname.substring(0,i) : pathname;
- },
-
- join: function() {
- var arr = [];
- for (var i = 0; i < arguments.length; i++) {
- arr.push(arguments[i]);
- }
- return arr.join("/");
- },
-
- normalize: function(pathname) {
- if (pathname) {
- var previousLen;
- do {
- previousLen = pathname.length;
- pathname = pathname.replace(/\/\.\//g, "/").replace(/\/[^/]+[^\.]\/\.\./g, "").replace(/^\.\//, "").replace(/\/\//g, "/");
- } while (pathname.length < previousLen);
- }
- return pathname;
- }
-};
-
-
-var requireClass = function() {
- this.cache = {};
- this.loading = {};
- this.updateRequire = /\brequire\s*\(\s*"([^/][^"+]*)"/g;
-
- var pos;
- var scripts = document.getElementsByTagName("script");
-
- this.protocol = "file://";
- this.root = ".";
-
- for (var i = 0; i < scripts.length; i++) {
- var source = scripts[i].src;
- if (source && (pos = source.search(/ilib-web\.js$/)) !== -1) {
- var colon = source.indexOf('://');
- this.protocol = source.substring(0,colon+3);
- this.root = source.substring(colon+3, pos-1);
- break;
- }
- }
-};
-
-requireClass.prototype.loadFile = function(pathname) {
- // special case for IE because it has a @#$%ed up XMLHttpRequest implementation
- var req = (navigator.userAgent.indexOf(" .NET") > -1) ?
- new ActiveXObject("MSXML2.XMLHTTP") :
- new XMLHttpRequest();
-
- req.open("GET", this.protocol + pathname, false);
- req.send();
-
- return req.responseText;
-};
-
-requireClass.prototype.require = function(pathname) {
-
- //console.log("this.root is " + this.root + " and pathname before was " + pathname);
-
- if (pathname.charAt(0) !== '/') {
- // make the current path be relative to the parent's path, otherwise use the root
- pathname = path.join((module && module.filename) ? path.dirname(module.filename) : this.root, pathname);
- }
-
- pathname = path.normalize(pathname);
-
- if (this.cache[pathname]) {
- return this.cache[pathname];
- }
-
- // don't try to load things that are currently in the process of loading
- if (this.loading[pathname]) {
- //console.log("require: already loading...");
- return {};
- }
-
- console.log("loading module " + pathname);
-
- this.loading[pathname] = true;
-
- var text = this.loadFile(pathname);
- var dirname = path.dirname(pathname);
- var match, replacement;
-
- if (text) {
- var tmp = module.filename;
- module.filename = pathname;
- module.exports = null;
- module.require = requireClass.prototype.require.bind(r);
-
- while ((match = this.updateRequire.exec(text)) !== null) {
- replacement = path.normalize(path.join(dirname, match[1]));
- text = text.replace(new RegExp('"' + match[1] + '"', "g"), '"' + replacement + '"');
- this.updateRequire.lastIndex = match.index + replacement.length + 2;
- }
- // for debugging in chrome with nice file names instead of random ids like "VM (2342)"
- text = text + "\n//# sourceURL=" + pathname + "\n";
-
- // console.log("text is " + text);
- try {
- eval(text);
-
- this.cache[pathname] = module.exports;
- } finally {
- this.loading[pathname] = undefined;
- module.filename = tmp;
- }
-
- return module.exports;
- }
-
- return undefined;
-};
-
-if (typeof(window.module) === 'undefined') {
- window.module = {
- exports: {},
- filename: null
- };
-}
-
-var r = new requireClass();
-var require = requireClass.prototype.require.bind(r);
-
-var WebLoader = require("../lib/WebLoader.js");
-
-var ilib = require("../lib/ilib.js");
-ilib.setLoaderCallback(new WebLoader(ilib));
-
-ilib._dyncode = true; // indicate that we are using dynamically loaded code
-ilib._dyndata = true;
-
diff --git a/js/lib/ilib.js b/js/lib/ilib.js
index 7c8e80cd24..b31b707015 100644
--- a/js/lib/ilib.js
+++ b/js/lib/ilib.js
@@ -47,7 +47,7 @@ ilib.getVersion = function () {
// ignore
}
}
- return ilib._ver() || "13.0";
+ return ilib._ver() || "14.0";
};
/**
@@ -138,7 +138,7 @@ ilib._getPlatform = function () {
}
} catch (e) {}
- if (typeof(process) !== 'undefined' && process.versions && process.versions.node && typeof(module) !== 'undefined') {
+ if (typeof(global) !== 'undefined' && global.process && global.process.versions && global.process.versions.node && typeof(module) !== 'undefined') {
ilib._platform = "nodejs";
} else if (typeof(Qt) !== 'undefined') {
ilib._platform = "qt";
@@ -193,6 +193,37 @@ ilib._getBrowser = function () {
return browser;
};
+/**
+ * Return the value of the top object in the system. This could be global
+ * for node, or window for browsers, etc.
+ * @private
+ * @static
+ * @return {Object|undefined} the top variable, or undefined if there is none on this
+ * platform
+ */
+ilib._top = function() {
+ if (typeof(this.top) === 'undefined') {
+ this.top = null;
+ switch (ilib._getPlatform()) {
+ case "rhino":
+ this.top = (function() {
+ return (typeof global === 'object') ? global : this;
+ })();
+ break;
+ case "nodejs":
+ case "trireme":
+ this.top = typeof(global) !== 'undefined' ? global : this;
+ //console.log("ilib._top: top is " + (typeof(global) !== 'undefined' ? "global" : "this"));
+ break;
+ default:
+ this.top = window;
+ break;
+ }
+ }
+
+ return this.top || undefined;
+};
+
/**
* Return the value of a global variable given its name in a way that works
* correctly for the current platform.
@@ -202,23 +233,7 @@ ilib._getBrowser = function () {
* @return {*} the global variable, or undefined if it does not exist
*/
ilib._global = function(name) {
- switch (ilib._getPlatform()) {
- case "rhino":
- var top = (function() {
- return (typeof global === 'object') ? global : this;
- })();
- break;
- case "nodejs":
- case "trireme":
- top = typeof(global) !== 'undefined' ? global : this;
- //console.log("ilib._global: top is " + (typeof(global) !== 'undefined' ? "global" : "this"));
- break;
- case "qt":
- return undefined;
- default:
- top = window;
- break;
- }
+ var top = this._top();
try {
return top[name];
} catch (e) {
@@ -280,10 +295,10 @@ ilib.setLocale = function (spec) {
*/
ilib.getLocale = function () {
if (typeof(ilib.locale) !== 'string') {
- var lang, plat = ilib._getPlatform();
- switch (plat) {
- case 'browser':
- // running in a browser
+ var plat = ilib._getPlatform();
+ switch (plat) {
+ case 'browser':
+ // running in a browser
if(typeof(navigator.language) !== 'undefined') {
ilib.locale = navigator.language.substring(0,3) + navigator.language.substring(3,5).toUpperCase(); // FF/Opera/Chrome/Webkit
}
@@ -291,65 +306,65 @@ ilib.getLocale = function () {
// IE on Windows
lang = typeof(navigator.browserLanguage) !== 'undefined' ?
navigator.browserLanguage :
- (typeof(navigator.userLanguage) !== 'undefined' ?
- navigator.userLanguage :
- (typeof(navigator.systemLanguage) !== 'undefined' ?
- navigator.systemLanguage :
- undefined));
+ (typeof(navigator.userLanguage) !== 'undefined' ?
+ navigator.userLanguage :
+ (typeof(navigator.systemLanguage) !== 'undefined' ?
+ navigator.systemLanguage :
+ undefined));
if (typeof(lang) !== 'undefined' && lang) {
// for some reason, MS uses lower case region tags
ilib.locale = lang.substring(0,3) + lang.substring(3,5).toUpperCase();
}
}
break;
- case 'webos':
+ case 'webos':
// webOS
if (typeof(PalmSystem.locales) !== 'undefined' &&
- typeof(PalmSystem.locales.UI) != 'undefined' &&
- PalmSystem.locales.UI.length > 0) {
+ typeof(PalmSystem.locales.UI) != 'undefined' &&
+ PalmSystem.locales.UI.length > 0) {
ilib.locale = PalmSystem.locales.UI;
} else if (typeof(PalmSystem.locale) !== 'undefined') {
- ilib.locale = PalmSystem.locale;
+ ilib.locale = PalmSystem.locale;
}
- break;
- case 'rhino':
+ break;
+ case 'rhino':
if (typeof(environment) !== 'undefined' && environment.user && typeof(environment.user.language) === 'string' && environment.user.language.length > 0) {
- // running under plain rhino
+ // running under plain rhino
ilib.locale = environment.user.language;
if (typeof(environment.user.country) === 'string' && environment.user.country.length > 0) {
ilib.locale += '-' + environment.user.country;
}
}
break;
- case "trireme":
- // under trireme on rhino emulating nodejs
- lang = process.env.LANG || process.env.LANGUAGE || process.env.LC_ALL;
+ case "trireme":
+ // under trireme on rhino emulating nodejs
+ lang = process.env.LANG || process.env.LANGUAGE || process.env.LC_ALL;
// the LANG variable on unix is in the form "lang_REGION.CHARSET"
// where language and region are the correct ISO codes separated by
// an underscore. This translate it back to the BCP-47 form.
if (lang && typeof(lang) !== 'undefined') {
ilib.locale = lang.substring(0,2).toLowerCase() + '-' + lang.substring(3,5).toUpperCase();
}
- break;
- case 'nodejs':
+ break;
+ case 'nodejs':
// running under nodejs
- lang = process.env.LANG || process.env.LC_ALL;
+ lang = global.process.env.LANG || global.process.env.LC_ALL;
// the LANG variable on unix is in the form "lang_REGION.CHARSET"
// where language and region are the correct ISO codes separated by
// an underscore. This translate it back to the BCP-47 form.
if (lang && typeof(lang) !== 'undefined') {
ilib.locale = lang.substring(0,2).toLowerCase() + '-' + lang.substring(3,5).toUpperCase();
}
- break;
- case 'qt':
- // running in the Javascript engine under Qt/QML
- var locobj = Qt.locale();
- lang = locobj.name && locobj.name.replace("_", "-") || "en-US";
- break;
- }
+ break;
+ case 'qt':
+ // running in the Javascript engine under Qt/QML
+ var locobj = Qt.locale();
+ var lang = locobj.name && locobj.name.replace("_", "-") || "en-US";
+ break;
+ }
ilib.locale = typeof(ilib.locale) === 'string' && ilib.locale ? ilib.locale : 'en-US';
if (ilib.locale === "en") {
- ilib.locale = "en-US"; // hack to get various platforms working correctly
+ ilib.locale = "en-US"; // hack to get various platforms working correctly
}
}
return ilib.locale;
@@ -389,31 +404,33 @@ ilib.getTimeZone = function() {
ilib.tz = ro && ro.timeZone;
}
- if (!ilib.tz) {
- if (typeof(navigator) !== 'undefined' && typeof(navigator.timezone) !== 'undefined') {
+ switch (ilib._getPlatform()) {
+ case 'browser':
// running in a browser
- if (navigator.timezone.length > 0) {
+ if (navigator.timezone && navigator.timezone.length > 0) {
ilib.tz = navigator.timezone;
}
- } else if (typeof(PalmSystem) !== 'undefined' && typeof(PalmSystem.timezone) !== 'undefined') {
+ break;
+ case 'webos':
// running in webkit on webOS
- if (PalmSystem.timezone.length > 0) {
+ if (PalmSystem.timezone && PalmSystem.timezone.length > 0) {
ilib.tz = PalmSystem.timezone;
}
- } else if (typeof(environment) !== 'undefined' && typeof(environment.user) !== 'undefined') {
+ break;
+ case 'rhino':
// running under rhino
if (typeof(environment.user.timezone) !== 'undefined' && environment.user.timezone.length > 0) {
ilib.tz = environment.user.timezone;
}
- } else if (typeof(process) !== 'undefined' && typeof(process.env) !== 'undefined') {
- // running in nodejs
- if (process.env.TZ && typeof(process.env.TZ) !== "undefined") {
- ilib.tz = process.env.TZ;
+ break;
+ case 'nodejs':
+ if (global.process.env && typeof(global.process.env.TZ) !== "undefined") {
+ ilib.tz = global.process.env.TZ;
}
- }
-
- ilib.tz = ilib.tz || "local";
+ break;
}
+
+ ilib.tz = ilib.tz || "local";
}
return ilib.tz;
diff --git a/js/lib/isAlnum.js b/js/lib/isAlnum.js
index de2af81468..6f6254c46e 100644
--- a/js/lib/isAlnum.js
+++ b/js/lib/isAlnum.js
@@ -1,7 +1,7 @@
/*
* isAlnum.js - Character type is alphanumeric
*
- * Copyright © 2012-2015, JEDLSoft
+ * Copyright © 2012-2015, 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,8 +17,6 @@
* limitations under the License.
*/
-// !depends IString.js isAlpha.js isDigit.js
-
var IString = require("./IString.js");
var isAlpha = require("./isAlpha.js");
var isDigit = require("./isDigit.js");
diff --git a/js/lib/isAlpha.js b/js/lib/isAlpha.js
index 67bae1fcf2..85c91ac3f3 100644
--- a/js/lib/isAlpha.js
+++ b/js/lib/isAlpha.js
@@ -1,7 +1,7 @@
/*
* ctype.islpha.js - Character type is alphabetic
*
- * Copyright © 2012-2015, JEDLSoft
+ * Copyright © 2012-2015, 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,8 +17,6 @@
* limitations under the License.
*/
-// !depends CType.js IString.js ilib.js
-
// !data ctype_l
var ilib = require("./ilib.js");
diff --git a/js/lib/isAscii.js b/js/lib/isAscii.js
index f5c271881f..9e62cadab8 100644
--- a/js/lib/isAscii.js
+++ b/js/lib/isAscii.js
@@ -1,7 +1,7 @@
/*
* isAscii.js - Character type is ASCII
*
- * Copyright © 2012-2015, JEDLSoft
+ * Copyright © 2012-2015, 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,8 +17,6 @@
* limitations under the License.
*/
-// !depends CType.js IString.js ilib.js
-
// !data ctype
var ilib = require("./ilib.js");
diff --git a/js/lib/isBlank.js b/js/lib/isBlank.js
index 0adaf6040b..dd79ab7bde 100644
--- a/js/lib/isBlank.js
+++ b/js/lib/isBlank.js
@@ -1,7 +1,7 @@
/*
* isBlank.js - Character type is blank
*
- * Copyright © 2012-2015, JEDLSoft
+ * Copyright © 2012-2015, 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,8 +17,6 @@
* limitations under the License.
*/
-// !depends CType.js IString.js ilib.js
-
// !data ctype
var ilib = require("./ilib.js");
diff --git a/js/lib/isCntrl.js b/js/lib/isCntrl.js
index 3915766ea8..e990745663 100644
--- a/js/lib/isCntrl.js
+++ b/js/lib/isCntrl.js
@@ -1,7 +1,7 @@
/*
* isCntrl.js - Character type is control character
*
- * Copyright © 2012-2015, JEDLSoft
+ * Copyright © 2012-2015, 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,8 +17,6 @@
* limitations under the License.
*/
-// !depends CType.js IString.js ilib.js
-
// !data ctype_c
var ilib = require("./ilib.js");
diff --git a/js/lib/isDigit.js b/js/lib/isDigit.js
index 9d556efdd2..2db7c794dd 100644
--- a/js/lib/isDigit.js
+++ b/js/lib/isDigit.js
@@ -1,7 +1,7 @@
/*
* isDigit.js - Character type is digit
*
- * Copyright © 2012-2015, JEDLSoft
+ * Copyright © 2012-2015, 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,8 +17,6 @@
* limitations under the License.
*/
-// !depends CType.js IString.js ilib.js
-
// !data ctype ctype_n
var ilib = require("./ilib.js");
diff --git a/js/lib/isGraph.js b/js/lib/isGraph.js
index ddfdc5011a..9bb18b165b 100644
--- a/js/lib/isGraph.js
+++ b/js/lib/isGraph.js
@@ -1,7 +1,7 @@
/*
* isGraph.js - Character type is graph char
*
- * Copyright © 2012-2015, JEDLSoft
+ * Copyright © 2012-2015, 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,8 +17,6 @@
* limitations under the License.
*/
-// !depends IString.js isSpace.js isCntrl.js
-
var IString = require("./IString.js");
var isSpace = require("./isSpace.js");
var isCntrl = require("./isCntrl.js");
diff --git a/js/lib/isIdeo.js b/js/lib/isIdeo.js
index 9a64557978..834031e737 100644
--- a/js/lib/isIdeo.js
+++ b/js/lib/isIdeo.js
@@ -1,7 +1,7 @@
/*
- * CType.js - Character type definitions
+ * isIdeo.js - Character type definitions
*
- * Copyright © 2012-2015, JEDLSoft
+ * Copyright © 2012-2015, 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,8 +17,6 @@
* limitations under the License.
*/
-// !depends CType.js IString.js
-
// !data ctype
var ilib = require("./ilib.js");
diff --git a/js/lib/isLower.js b/js/lib/isLower.js
index 6379c414db..06dce77c79 100644
--- a/js/lib/isLower.js
+++ b/js/lib/isLower.js
@@ -1,7 +1,7 @@
/*
* isLower.js - Character type is lower case letter
*
- * Copyright © 2012-2015, JEDLSoft
+ * Copyright © 2012-2015, 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,8 +17,6 @@
* limitations under the License.
*/
-// !depends CType.js IString.js
-
// !data ctype_l
var ilib = require("./ilib.js");
diff --git a/js/lib/isPrint.js b/js/lib/isPrint.js
index f99c528c04..6403968d0e 100644
--- a/js/lib/isPrint.js
+++ b/js/lib/isPrint.js
@@ -1,7 +1,7 @@
/*
* isPrint.js - Character type is printable char
*
- * Copyright © 2012-2015, JEDLSoft
+ * Copyright © 2012-2015, 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,8 +17,6 @@
* limitations under the License.
*/
-// !depends isCntrl.js
-
var isCntrl = require("./isCntrl.js");
/**
@@ -43,4 +41,4 @@ isPrint._init = function (sync, loadParams, onLoad) {
isCntrl._init(sync, loadParams, onLoad);
};
-module.exports = isPrint;
\ No newline at end of file
+module.exports = isPrint;
diff --git a/js/lib/isPunct.js b/js/lib/isPunct.js
index 1ef03fbe0c..8eee9c929d 100644
--- a/js/lib/isPunct.js
+++ b/js/lib/isPunct.js
@@ -1,7 +1,7 @@
/*
* isPunct.js - Character type is punctuation
*
- * Copyright © 2012-2015, JEDLSoft
+ * Copyright © 2012-2015, 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,8 +17,6 @@
* limitations under the License.
*/
-// !depends CType.js IString.js
-
// !data ctype_p
var ilib = require("./ilib.js");
diff --git a/js/lib/isScript.js b/js/lib/isScript.js
index 77080a376b..56b8beaf2c 100644
--- a/js/lib/isScript.js
+++ b/js/lib/isScript.js
@@ -1,7 +1,7 @@
/*
* isScript.js - Character type is script
*
- * Copyright © 2012-2015, JEDLSoft
+ * Copyright © 2012-2015, 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,8 +17,6 @@
* limitations under the License.
*/
-// !depends CType.js IString.js
-
// !data scriptToRange
var ilib = require("./ilib.js");
diff --git a/js/lib/isSpace.js b/js/lib/isSpace.js
index 0379c7332b..807cb39e25 100644
--- a/js/lib/isSpace.js
+++ b/js/lib/isSpace.js
@@ -1,7 +1,7 @@
/*
* isSpace.js - Character type is space char
*
- * Copyright © 2012-2015, JEDLSoft
+ * Copyright © 2012-2015, 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,8 +17,6 @@
* limitations under the License.
*/
-// !depends CType.js IString.js
-
// !data ctype ctype_z
var ilib = require("./ilib.js");
diff --git a/js/lib/isUpper.js b/js/lib/isUpper.js
index 6839d38819..41be4c06df 100644
--- a/js/lib/isUpper.js
+++ b/js/lib/isUpper.js
@@ -1,7 +1,7 @@
/*
* isUpper.js - Character type is upper-case letter
*
- * Copyright © 2012-2015, JEDLSoft
+ * Copyright © 2012-2015, 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,8 +17,6 @@
* limitations under the License.
*/
-// !depends CType.js IString.js
-
// !data ctype_l
var ilib = require("./ilib.js");
diff --git a/js/lib/isXdigit.js b/js/lib/isXdigit.js
index f6e9144f0a..d771d13741 100644
--- a/js/lib/isXdigit.js
+++ b/js/lib/isXdigit.js
@@ -1,7 +1,7 @@
/*
* isXdigit.js - Character type is hex digit
*
- * Copyright © 2012-2015, JEDLSoft
+ * Copyright © 2012-2015, 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,8 +17,6 @@
* limitations under the License.
*/
-// !depends CType.js IString.js
-
// !data ctype
var ilib = require("./ilib.js");
diff --git a/js/lib/ilib-core-inc.js b/js/lib/metafiles/ilib-core-webpack.js
similarity index 53%
rename from js/lib/ilib-core-inc.js
rename to js/lib/metafiles/ilib-core-webpack.js
index 5e900d7f31..737de33a0c 100644
--- a/js/lib/ilib-core-inc.js
+++ b/js/lib/metafiles/ilib-core-webpack.js
@@ -1,6 +1,8 @@
/**
+ * ilib-core-webpack.js - metafile that includes a minimal set of other js files
+ *
* @license
- * Copyright © 2012-2015, JEDLSoft
+ * Copyright © 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,13 +18,17 @@
* limitations under the License.
*/
-/*
- * ilib-core-inc.js - metafile that includes a minimal set of other js files for the minimal build
- */
+var ilib = require("../ilib.js");
+
+ilib.JSUtils = require("../JSUtils.js");
+ilib.IString = require("../IString.js");
+ilib.ResBundle = require("../ResBundle.js");
+ilib.ScriptInfo = require("../ScriptInfo.js");
+
+//This unpacks the above classes to the global scope
+require("../ilib-unpack.js");
+
+// Must be at the end of meta file
+require("../ilib-getdata.js");
-/* !depends
-JSUtils.js
-IString.js
-ResBundle.js
-ScriptInfo.js
-*/
\ No newline at end of file
+module.exports = ilib;
\ No newline at end of file
diff --git a/js/lib/metafiles/ilib-demo-webpack.js b/js/lib/metafiles/ilib-demo-webpack.js
new file mode 100644
index 0000000000..40da19cc1a
--- /dev/null
+++ b/js/lib/metafiles/ilib-demo-webpack.js
@@ -0,0 +1,122 @@
+/**
+ * ilib-demo-webpack.js - metafile that includes all of the other js files
+ * for the demo site
+ *
+ * @license
+ * Copyright © 2018, JEDLSoft
+ *
+ * Licensed 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 CONDITIONS OF ANY KIND, either express or implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+var ilib = require("../ilib.js");
+
+ilib.DateRngFmt = require("../DateRngFmt.js");
+ilib.IDate = require("../IDate.js");
+ilib.DateFactory = require("../DateFactory.js");
+ilib.HebrewDate = require("../HebrewDate.js");
+ilib.HebrewCal = require("../HebrewCal.js");
+ilib.IslamicCal = require("../IslamicCal.js");
+ilib.IslamicDate = require("../IslamicDate.js");
+ilib.JulianCal = require("../JulianCal.js");
+ilib.JulianDate = require("../JulianDate.js");
+ilib.GregorianCal = require("../GregorianCal.js");
+ilib.GregorianDate = require("../GregorianDate.js");
+ilib.ThaiSolarCal = require("../ThaiSolarCal.js");
+ilib.ThaiSolarDate = require("../ThaiSolarDate.js");
+ilib.PersianCal = require("../PersianCal.js");
+ilib.PersianDate = require("../PersianDate.js");
+ilib.PersianAlgoCal = require("../PersianAlgoCal.js");
+ilib.PersianAlgoDate = require("../PersianAlgoDate.js");
+ilib.HanCal = require("../HanCal.js");
+ilib.HanDate = require("../HanDate.js");
+ilib.EthiopicCal = require("../EthiopicCal.js");
+ilib.EthiopicDate = require("../EthiopicDate.js");
+ilib.CopticCal = require("../CopticCal.js");
+ilib.CopticDate = require("../CopticDate.js");
+ilib.INumber = require("../INumber.js");
+ilib.NumFmt = require("../NumFmt.js");
+ilib.JulianDay = require("../JulianDay.js");
+ilib.DateFmt = require("../DateFmt.js");
+ilib.Calendar = require("../Calendar.js");
+ilib.CalendarFactory = require("../CalendarFactory.js");
+ilib.Utils = require("../Utils.js");
+ilib.Locale = require("../Locale.js");
+ilib.IString = require("../IString.js");
+ilib.DurationFmt = require("../DurationFmt.js");
+ilib.ResBundle = require("../ResBundle.js");
+ilib.CType = require("../CType.js");
+ilib.LocaleInfo = require("../LocaleInfo.js");
+ilib.DateRngFmt = require("../DateRngFmt.js");
+ilib.isAlnum = require("../isAlnum.js");
+ilib.isAlpha = require("../isAlpha.js");
+ilib.isAscii = require("../isAscii.js");
+ilib.isBlank = require("../isBlank.js");
+ilib.isCntrl = require("../isCntrl.js");
+ilib.isDigit = require("../isDigit.js");
+ilib.isGraph = require("../isGraph.js");
+ilib.isIdeo = require("../isIdeo.js");
+ilib.isLower = require("../isLower.js");
+ilib.isPrint = require("../isPrint.js");
+ilib.isPunct = require("../isPunct.js");
+ilib.isSpace = require("../isSpace.js");
+ilib.isUpper = require("../isUpper.js");
+ilib.isXdigit = require("../isXdigit.js");
+ilib.isScript = require("../isScript.js");
+ilib.ScriptInfo = require("../ScriptInfo.js");
+ilib.Name = require("../Name.js");
+ilib.NameFmt = require("../NameFmt.js");
+ilib.Address = require("../Address.js");
+ilib.AddressFmt = require("../AddressFmt.js");
+ilib.Collator = require("../Collator.js");
+ilib.data.nfkc = require("../nfkc/all.js");
+ilib.LocaleMatcher = require("../LocaleMatcher.js");
+ilib.NormString = require("../NormString.js");
+ilib.CaseMapper = require("../CaseMapper.js");
+ilib.GlyphString = require("../GlyphString.js");
+ilib.PhoneFmt = require("../PhoneFmt.js");
+ilib.PhoneGeoLocator = require("../PhoneGeoLocator.js");
+ilib.PhoneNumber = require("../PhoneNumber.js");
+ilib.Measurement = require("../Measurement.js");
+ilib.MeasurementFactory = require("../MeasurementFactory.js");
+ilib.UnitFmt = require("../UnitFmt.js");
+ilib.LengthUnit = require("../LengthUnit.js");
+ilib.VelocityUnit = require("../VelocityUnit.js");
+ilib.DigitalStorageUnit = require("../DigitalStorageUnit.js");
+ilib.TemperatureUnit = require("../TemperatureUnit.js");
+ilib.UnknownUnit = require("../UnknownUnit.js");
+ilib.TimeUnit = require("../TimeUnit.js");
+ilib.MassUnit = require("../MassUnit.js");
+ilib.AreaUnit = require("../AreaUnit.js");
+ilib.FuelConsumptionUnit = require("../FuelConsumptionUnit.js");
+ilib.VolumeUnit = require("../VolumeUnit.js");
+ilib.EnergyUnit = require("../EnergyUnit.js");
+ilib.Charset = require("../Charset.js");
+ilib.Charmap = require("../Charmap.js");
+ilib.CharmapFactory = require("../CharmapFactory.js");
+ilib.CharmapTable = require("../CharmapTable.js");
+ilib.UTF8 = require("../UTF8.js");
+ilib.UTF16BE = require("../UTF16BE.js");
+ilib.UTF16LE = require("../UTF16LE.js");
+ilib.Country = require("../Country.js");
+ilib.ListFmt = require("../ListFmt.js");
+ilib.AlphabeticIndex = require("../AlphabeticIndex.js");
+ilib.DigitalSpeedUnit = require("../DigitalSpeedUnit.js");
+
+// This unpacks the above classes to the global scope
+require("../ilib-unpack.js");
+
+// Must be at the end of meta file
+require("../ilib-getdata.js");
+
+module.exports = ilib;
\ No newline at end of file
diff --git a/js/lib/metafiles/ilib-full-webpack.js b/js/lib/metafiles/ilib-full-webpack.js
new file mode 100644
index 0000000000..2179153c70
--- /dev/null
+++ b/js/lib/metafiles/ilib-full-webpack.js
@@ -0,0 +1,122 @@
+/**
+ * ilib-full-webpack.js - metafile that includes all of the other js files
+ *
+ * @license
+ * Copyright © 2018, JEDLSoft
+ *
+ * Licensed 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 CONDITIONS OF ANY KIND, either express or implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+var ilib = require("../ilib.js");
+
+ilib.DateRngFmt = require("../DateRngFmt.js");
+ilib.IDate = require("../IDate.js");
+ilib.DateFactory = require("../DateFactory.js");
+ilib.HebrewDate = require("../HebrewDate.js");
+ilib.HebrewCal = require("../HebrewCal.js");
+ilib.IslamicCal = require("../IslamicCal.js");
+ilib.IslamicDate = require("../IslamicDate.js");
+ilib.JulianCal = require("../JulianCal.js");
+ilib.JulianDate = require("../JulianDate.js");
+ilib.GregorianCal = require("../GregorianCal.js");
+ilib.GregorianDate = require("../GregorianDate.js");
+ilib.ThaiSolarCal = require("../ThaiSolarCal.js");
+ilib.ThaiSolarDate = require("../ThaiSolarDate.js");
+ilib.PersianCal = require("../PersianCal.js");
+ilib.PersianDate = require("../PersianDate.js");
+ilib.PersianAlgoCal = require("../PersianAlgoCal.js");
+ilib.PersianAlgoDate = require("../PersianAlgoDate.js");
+ilib.HanCal = require("../HanCal.js");
+ilib.HanDate = require("../HanDate.js");
+ilib.EthiopicCal = require("../EthiopicCal.js");
+ilib.EthiopicDate = require("../EthiopicDate.js");
+ilib.CopticCal = require("../CopticCal.js");
+ilib.CopticDate = require("../CopticDate.js");
+ilib.INumber = require("../INumber.js");
+ilib.NumFmt = require("../NumFmt.js");
+ilib.JulianDay = require("../JulianDay.js");
+ilib.DateFmt = require("../DateFmt.js");
+ilib.Calendar = require("../Calendar.js");
+ilib.CalendarFactory = require("../CalendarFactory.js");
+ilib.Utils = require("../Utils.js");
+ilib.Locale = require("../Locale.js");
+ilib.IString = require("../IString.js");
+ilib.DurationFmt = require("../DurationFmt.js");
+ilib.ResBundle = require("../ResBundle.js");
+ilib.CType = require("../CType.js");
+ilib.LocaleInfo = require("../LocaleInfo.js");
+ilib.DateRngFmt = require("../DateRngFmt.js");
+ilib.isAlnum = require("../isAlnum.js");
+ilib.isAlpha = require("../isAlpha.js");
+ilib.isAscii = require("../isAscii.js");
+ilib.isBlank = require("../isBlank.js");
+ilib.isCntrl = require("../isCntrl.js");
+ilib.isDigit = require("../isDigit.js");
+ilib.isGraph = require("../isGraph.js");
+ilib.isIdeo = require("../isIdeo.js");
+ilib.isLower = require("../isLower.js");
+ilib.isPrint = require("../isPrint.js");
+ilib.isPunct = require("../isPunct.js");
+ilib.isSpace = require("../isSpace.js");
+ilib.isUpper = require("../isUpper.js");
+ilib.isXdigit = require("../isXdigit.js");
+ilib.isScript = require("../isScript.js");
+ilib.ScriptInfo = require("../ScriptInfo.js");
+ilib.Name = require("../Name.js");
+ilib.NameFmt = require("../NameFmt.js");
+ilib.Address = require("../Address.js");
+ilib.AddressFmt = require("../AddressFmt.js");
+ilib.Collator = require("../Collator.js");
+ilib.LocaleMatcher = require("../LocaleMatcher.js");
+ilib.NormString = require("../NormString.js");
+ilib.CaseMapper = require("../CaseMapper.js");
+ilib.GlyphString = require("../GlyphString.js");
+ilib.PhoneFmt = require("../PhoneFmt.js");
+ilib.PhoneGeoLocator = require("../PhoneGeoLocator.js");
+ilib.PhoneNumber = require("../PhoneNumber.js");
+ilib.Measurement = require("../Measurement.js");
+ilib.MeasurementFactory = require("../MeasurementFactory.js");
+ilib.UnitFmt = require("../UnitFmt.js");
+ilib.LengthUnit = require("../LengthUnit.js");
+ilib.VelocityUnit = require("../VelocityUnit.js");
+ilib.DigitalStorageUnit = require("../DigitalStorageUnit.js");
+ilib.TemperatureUnit = require("../TemperatureUnit.js");
+ilib.UnknownUnit = require("../UnknownUnit.js");
+ilib.TimeUnit = require("../TimeUnit.js");
+ilib.MassUnit = require("../MassUnit.js");
+ilib.AreaUnit = require("../AreaUnit.js");
+ilib.FuelConsumptionUnit = require("../FuelConsumptionUnit.js");
+ilib.VolumeUnit = require("../VolumeUnit.js");
+ilib.EnergyUnit = require("../EnergyUnit.js");
+ilib.Charset = require("../Charset.js");
+ilib.Charmap = require("../Charmap.js");
+ilib.CharmapFactory = require("../CharmapFactory.js");
+ilib.CharmapTable = require("../CharmapTable.js");
+ilib.UTF8 = require("../UTF8.js");
+ilib.UTF16BE = require("../UTF16BE.js");
+ilib.UTF16LE = require("../UTF16LE.js");
+ilib.Country = require("../Country.js");
+ilib.ListFmt = require("../ListFmt.js");
+ilib.AlphabeticIndex = require("../AlphabeticIndex.js");
+ilib.TimeZone = require("../TimeZone.js");
+ilib.Currency = require("../Currency.js");
+ilib.DigitalSpeedUnit = require("../DigitalSpeedUnit.js");
+
+//This unpacks the above classes to the global scope
+require("../ilib-unpack.js");
+
+// Must be at the end of meta file
+require("../ilib-getdata.js");
+
+module.exports = ilib;
\ No newline at end of file
diff --git a/js/lib/metafiles/ilib-standard-webpack.js b/js/lib/metafiles/ilib-standard-webpack.js
new file mode 100644
index 0000000000..1a366fd1eb
--- /dev/null
+++ b/js/lib/metafiles/ilib-standard-webpack.js
@@ -0,0 +1,52 @@
+/**
+ * ilib-standard-webpack.js - metafile that includes a reasonable set of other js files
+ *
+ * @license
+ * Copyright © 2018, JEDLSoft
+ *
+ * Licensed 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 CONDITIONS OF ANY KIND, either express or implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+var ilib = require("../ilib.js");
+
+ilib.DateRngFmt = require("../DateRngFmt.js");
+ilib.IDate = require("../IDate.js");
+ilib.DateFactory = require("../DateFactory.js");
+ilib.GregorianCal = require("../GregorianCal.js");
+ilib.GregorianDate = require("../GregorianDate.js");
+ilib.INumber = require("../INumber.js");
+ilib.NumFmt = require("../NumFmt.js");
+ilib.JulianDay = require("../JulianDay.js");
+ilib.DateFmt = require("../DateFmt.js");
+ilib.Calendar = require("../Calendar.js");
+ilib.CalendarFactory = require("../CalendarFactory.js");
+ilib.Utils = require("../Utils.js");
+ilib.Locale = require("../Locale.js");
+ilib.IString = require("../IString.js");
+ilib.DurationFmt = require("../DurationFmt.js");
+ilib.ResBundle = require("../ResBundle.js");
+ilib.LocaleInfo = require("../LocaleInfo.js");
+ilib.DateRngFmt = require("../DateRngFmt.js");
+ilib.ScriptInfo = require("../ScriptInfo.js");
+ilib.CaseMapper = require("../CaseMapper.js");
+ilib.ListFmt = require("../ListFmt.js");
+ilib.TimeZone = require("../TimeZone.js");
+
+//This unpacks the above classes to the global scope
+require("../ilib-unpack.js");
+
+// Must be at the end of meta file
+require("../ilib-getdata.js");
+
+module.exports = ilib;
\ No newline at end of file
diff --git a/js/lib/metafiles/ilib-ut-webpack.js b/js/lib/metafiles/ilib-ut-webpack.js
new file mode 100644
index 0000000000..09ea71644f
--- /dev/null
+++ b/js/lib/metafiles/ilib-ut-webpack.js
@@ -0,0 +1,156 @@
+/**
+ * ilib-ut-webpack.js - metafile that includes all of the other js files that
+ * the unit tests need
+ *
+ * @license
+ * Copyright © 2018, JEDLSoft
+ *
+ * Licensed 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 CONDITIONS OF ANY KIND, either express or implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+var ilib = require("../ilib.js");
+
+ilib.DateRngFmt = require("../DateRngFmt.js");
+ilib.IDate = require("../IDate.js");
+ilib.DateFactory = require("../DateFactory.js");
+ilib.HebrewDate = require("../HebrewDate.js");
+ilib.HebrewCal = require("../HebrewCal.js");
+ilib.IslamicCal = require("../IslamicCal.js");
+ilib.IslamicDate = require("../IslamicDate.js");
+ilib.JulianCal = require("../JulianCal.js");
+ilib.JulianDate = require("../JulianDate.js");
+ilib.GregorianCal = require("../GregorianCal.js");
+ilib.GregorianDate = require("../GregorianDate.js");
+ilib.ThaiSolarCal = require("../ThaiSolarCal.js");
+ilib.ThaiSolarDate = require("../ThaiSolarDate.js");
+ilib.PersianAlgoCal = require("../PersianAlgoCal.js");
+ilib.PersianAlgoDate = require("../PersianAlgoDate.js");
+ilib.PersianDate = require("../PersianDate.js");
+ilib.PersianCal = require("../PersianCal.js");
+ilib.HanCal = require("../HanCal.js");
+ilib.HanDate = require("../HanDate.js");
+ilib.EthiopicCal = require("../EthiopicCal.js");
+ilib.EthiopicDate = require("../EthiopicDate.js");
+ilib.CopticCal = require("../CopticCal.js");
+ilib.CopticDate = require("../CopticDate.js");
+ilib.INumber = require("../INumber.js");
+ilib.NumFmt = require("../NumFmt.js");
+ilib.JulianDay = require("../JulianDay.js");
+ilib.DateFmt = require("../DateFmt.js");
+ilib.Calendar = require("../Calendar.js");
+ilib.CalendarFactory = require("../CalendarFactory.js");
+ilib.Utils = require("../Utils.js");
+ilib.Locale = require("../Locale.js");
+ilib.nfkc_all = require("../nfkc/all.js");
+ilib.IString = require("../IString.js");
+ilib.DurationFmt = require("../DurationFmt.js");
+ilib.ResBundle = require("../ResBundle.js");
+ilib.CType = require("../CType.js");
+ilib.LocaleInfo = require("../LocaleInfo.js");
+ilib.DateRngFmt = require("../DateRngFmt.js");
+ilib.isAlnum = require("../isAlnum.js");
+ilib.isAlpha = require("../isAlpha.js");
+ilib.isAscii = require("../isAscii.js");
+ilib.isBlank = require("../isBlank.js");
+ilib.isCntrl = require("../isCntrl.js");
+ilib.isDigit = require("../isDigit.js");
+ilib.isGraph = require("../isGraph.js");
+ilib.isIdeo = require("../isIdeo.js");
+ilib.isLower = require("../isLower.js");
+ilib.isPrint = require("../isPrint.js");
+ilib.isPunct = require("../isPunct.js");
+ilib.isScript = require("../isScript.js");
+ilib.isSpace = require("../isSpace.js");
+ilib.isUpper = require("../isUpper.js");
+ilib.isXdigit = require("../isXdigit.js");
+ilib.ScriptInfo = require("../ScriptInfo.js");
+ilib.Name = require("../Name.js");
+ilib.NameFmt = require("../NameFmt.js");
+ilib.Address = require("../Address.js");
+ilib.AddressFmt = require("../AddressFmt.js");
+ilib.Collator = require("../Collator.js");
+ilib.LocaleMatcher = require("../LocaleMatcher.js");
+ilib.NormString = require("../NormString.js");
+ilib.StringMapper = require("../StringMapper.js");
+ilib.CaseMapper = require("../CaseMapper.js");
+ilib.GlyphString = require("../GlyphString.js");
+ilib.PhoneNumber = require("../PhoneNumber.js");
+ilib.PhoneFmt = require("../PhoneFmt.js");
+ilib.PhoneGeoLocator = require("../PhoneGeoLocator.js");
+ilib.Measurement = require("../Measurement.js");
+ilib.MeasurementFactory = require("../MeasurementFactory.js");
+ilib.UnitFmt = require("../UnitFmt.js");
+ilib.LengthUnit = require("../LengthUnit.js");
+ilib.VelocityUnit = require("../VelocityUnit.js");
+ilib.TemperatureUnit = require("../TemperatureUnit.js");
+ilib.DigitalStorageUnit = require("../DigitalStorageUnit.js");
+ilib.UnknownUnit = require("../UnknownUnit.js");
+ilib.TimeUnit = require("../TimeUnit.js");
+ilib.MassUnit = require("../MassUnit.js");
+ilib.AreaUnit = require("../AreaUnit.js");
+ilib.FuelConsumptionUnit = require("../FuelConsumptionUnit.js");
+ilib.VolumeUnit = require("../VolumeUnit.js");
+ilib.EnergyUnit = require("../EnergyUnit.js");
+ilib.Charset = require("../Charset.js");
+ilib.ListFmt = require("../ListFmt.js");
+ilib.Country = require("../Country.js");
+ilib.CaseMapper = require("../CaseMapper.js");
+ilib.Charset = require("../Charset.js");
+ilib.Charmap = require("../Charmap.js");
+ilib.CharmapFactory = require("../CharmapFactory.js");
+ilib.CharmapTable = require("../CharmapTable.js");
+ilib.UTF8 = require("../UTF8.js");
+ilib.UTF16BE = require("../UTF16BE.js");
+ilib.UTF16LE = require("../UTF16LE.js");
+ilib.AlphabeticIndex = require("../AlphabeticIndex.js");
+ilib.TimeZone = require("../TimeZone.js");
+ilib.Currency = require("../Currency.js");
+ilib.DigitalSpeedUnit = require("../DigitalSpeedUnit.js");
+
+/* make sure all the data is loaded that will be tested */
+require("../nfd/all.js");
+require("../nfc/all.js");
+require("../nfkc/all.js");
+require("../nfkd/all.js");
+
+require("../charmaps/Jpan.js");
+
+/* private classes used in the tests */
+ilib.ISet = require("../ISet.js");
+ilib.SearchUtils = require("../SearchUtils.js");
+ilib.MathUtils = require("../MathUtils.js");
+ilib.JSUtils = require("../JSUtils.js");
+ilib.Path = require("../Path.js");
+ilib.Astro = require("../Astro.js");
+ilib.Utils = require("../Utils.js");
+ilib.CodePointSource = require("../CodePointSource.js");
+ilib.CopticRataDie = require("../CopticRataDie.js");
+ilib.ElementIterator = require("../ElementIterator.js");
+ilib.EthiopicRataDie = require("../EthiopicRataDie.js");
+ilib.GregRataDie = require("../GregRataDie.js");
+ilib.HanRataDie = require("../HanRataDie.js");
+ilib.NumberingPlan = require("../NumberingPlan.js");
+ilib.PersAlgoRataDie = require("../PersAlgoRataDie.js");
+ilib.PersRataDie = require("../PersRataDie.js");
+ilib.PhoneHandlerFactory = require("../PhoneHandlerFactory.js");
+ilib.PhoneLocale = require("../PhoneLocale.js");
+ilib.RataDie = require("../RataDie.js");
+
+// This unpacks the above classes to the global scope
+require("../ilib-unpack.js");
+
+// Must be at the end of meta file
+require("../ilib-getdata.js");
+
+module.exports = ilib;
\ No newline at end of file
diff --git a/js/lib/nfc/Arab.js b/js/lib/nfc/Arab.js
index b9158e8816..9b45b22cd8 100644
--- a/js/lib/nfc/Arab.js
+++ b/js/lib/nfc/Arab.js
@@ -1,7 +1,7 @@
/*
* Arab.js - include file for normalization data for a particular script
*
- * Copyright © 2013-2015, JEDLSoft
+ * Copyright © 2013 - 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,8 +17,4 @@
* limitations under the License.
*/
/* WARNING: THIS IS A FILE GENERATED BY gennorm.js. DO NOT EDIT BY HAND. */
-// !depends nfc/Zyyy.js
-// !depends nfd/Arab.js
-// !data norm
-ilib.extend(ilib.data.norm, ilib.data.normdata);
-ilib.data.normdata = undefined;
+// !data nfc/Arab nfd/Arab nfc/Zyyy nfd/Zyyy
diff --git a/js/lib/nfc/Bali.js b/js/lib/nfc/Bali.js
index b8c09e64ac..ec1a88ee5d 100644
--- a/js/lib/nfc/Bali.js
+++ b/js/lib/nfc/Bali.js
@@ -1,7 +1,7 @@
/*
* Bali.js - include file for normalization data for a particular script
*
- * Copyright © 2013-2015, JEDLSoft
+ * Copyright © 2013 - 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,8 +17,4 @@
* limitations under the License.
*/
/* WARNING: THIS IS A FILE GENERATED BY gennorm.js. DO NOT EDIT BY HAND. */
-// !depends nfc/Zyyy.js
-// !depends nfd/Bali.js
-// !data norm
-ilib.extend(ilib.data.norm, ilib.data.normdata);
-ilib.data.normdata = undefined;
+// !data nfc/Bali nfd/Bali nfc/Zyyy nfd/Zyyy
diff --git a/js/lib/nfc/Beng.js b/js/lib/nfc/Beng.js
index 0a19b94e01..4c2af41eef 100644
--- a/js/lib/nfc/Beng.js
+++ b/js/lib/nfc/Beng.js
@@ -1,7 +1,7 @@
/*
* Beng.js - include file for normalization data for a particular script
*
- * Copyright © 2013-2015, JEDLSoft
+ * Copyright © 2013 - 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,8 +17,4 @@
* limitations under the License.
*/
/* WARNING: THIS IS A FILE GENERATED BY gennorm.js. DO NOT EDIT BY HAND. */
-// !depends nfc/Zyyy.js
-// !depends nfd/Beng.js
-// !data norm
-ilib.extend(ilib.data.norm, ilib.data.normdata);
-ilib.data.normdata = undefined;
+// !data nfc/Beng nfd/Beng nfc/Zyyy nfd/Zyyy
diff --git a/js/lib/nfc/Cakm.js b/js/lib/nfc/Cakm.js
index fef3a2effa..abd665269a 100644
--- a/js/lib/nfc/Cakm.js
+++ b/js/lib/nfc/Cakm.js
@@ -1,7 +1,7 @@
/*
* Cakm.js - include file for normalization data for a particular script
*
- * Copyright © 2013-2015, JEDLSoft
+ * Copyright © 2013 - 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,8 +17,4 @@
* limitations under the License.
*/
/* WARNING: THIS IS A FILE GENERATED BY gennorm.js. DO NOT EDIT BY HAND. */
-// !depends nfc/Zyyy.js
-// !depends nfd/Cakm.js
-// !data norm
-ilib.extend(ilib.data.norm, ilib.data.normdata);
-ilib.data.normdata = undefined;
+// !data nfc/Cakm nfd/Cakm nfc/Zyyy nfd/Zyyy
diff --git a/js/lib/nfc/Cyrl.js b/js/lib/nfc/Cyrl.js
index a9441a0e8d..942ccad105 100644
--- a/js/lib/nfc/Cyrl.js
+++ b/js/lib/nfc/Cyrl.js
@@ -1,7 +1,7 @@
/*
* Cyrl.js - include file for normalization data for a particular script
*
- * Copyright © 2013-2015, JEDLSoft
+ * Copyright © 2013 - 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,8 +17,4 @@
* limitations under the License.
*/
/* WARNING: THIS IS A FILE GENERATED BY gennorm.js. DO NOT EDIT BY HAND. */
-// !depends nfc/Zyyy.js
-// !depends nfd/Cyrl.js
-// !data norm
-ilib.extend(ilib.data.norm, ilib.data.normdata);
-ilib.data.normdata = undefined;
+// !data nfc/Cyrl nfd/Cyrl nfc/Zyyy nfd/Zyyy
diff --git a/js/lib/nfc/Deva.js b/js/lib/nfc/Deva.js
index 8679d6b79b..47d4ac9d7b 100644
--- a/js/lib/nfc/Deva.js
+++ b/js/lib/nfc/Deva.js
@@ -1,7 +1,7 @@
/*
* Deva.js - include file for normalization data for a particular script
*
- * Copyright © 2013-2015, JEDLSoft
+ * Copyright © 2013 - 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,8 +17,4 @@
* limitations under the License.
*/
/* WARNING: THIS IS A FILE GENERATED BY gennorm.js. DO NOT EDIT BY HAND. */
-// !depends nfc/Zyyy.js
-// !depends nfd/Deva.js
-// !data norm
-ilib.extend(ilib.data.norm, ilib.data.normdata);
-ilib.data.normdata = undefined;
+// !data nfc/Deva nfd/Deva nfc/Zyyy nfd/Zyyy
diff --git a/js/lib/nfc/Gran.js b/js/lib/nfc/Gran.js
index ef3955e969..8da96f1e9b 100644
--- a/js/lib/nfc/Gran.js
+++ b/js/lib/nfc/Gran.js
@@ -1,7 +1,7 @@
/*
* Gran.js - include file for normalization data for a particular script
*
- * Copyright © 2013-2015, JEDLSoft
+ * Copyright © 2013 - 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,8 +17,4 @@
* limitations under the License.
*/
/* WARNING: THIS IS A FILE GENERATED BY gennorm.js. DO NOT EDIT BY HAND. */
-// !depends nfc/Zyyy.js
-// !depends nfd/Gran.js
-// !data norm
-ilib.extend(ilib.data.norm, ilib.data.normdata);
-ilib.data.normdata = undefined;
+// !data nfc/Gran nfd/Gran nfc/Zyyy nfd/Zyyy
diff --git a/js/lib/nfc/Grek.js b/js/lib/nfc/Grek.js
index 8ce3657067..3d8f0a5bd5 100644
--- a/js/lib/nfc/Grek.js
+++ b/js/lib/nfc/Grek.js
@@ -1,7 +1,7 @@
/*
* Grek.js - include file for normalization data for a particular script
*
- * Copyright © 2013-2015, JEDLSoft
+ * Copyright © 2013 - 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,8 +17,4 @@
* limitations under the License.
*/
/* WARNING: THIS IS A FILE GENERATED BY gennorm.js. DO NOT EDIT BY HAND. */
-// !depends nfc/Zyyy.js
-// !depends nfd/Grek.js
-// !data norm
-ilib.extend(ilib.data.norm, ilib.data.normdata);
-ilib.data.normdata = undefined;
+// !data nfc/Grek nfd/Grek nfc/Zyyy nfd/Zyyy
diff --git a/js/lib/nfc/Hira.js b/js/lib/nfc/Hira.js
index 2015efdf08..e9654d6708 100644
--- a/js/lib/nfc/Hira.js
+++ b/js/lib/nfc/Hira.js
@@ -1,7 +1,7 @@
/*
* Hira.js - include file for normalization data for a particular script
*
- * Copyright © 2013-2015, JEDLSoft
+ * Copyright © 2013 - 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,8 +17,4 @@
* limitations under the License.
*/
/* WARNING: THIS IS A FILE GENERATED BY gennorm.js. DO NOT EDIT BY HAND. */
-// !depends nfc/Zyyy.js
-// !depends nfd/Hira.js
-// !data norm
-ilib.extend(ilib.data.norm, ilib.data.normdata);
-ilib.data.normdata = undefined;
+// !data nfc/Hira nfd/Hira nfc/Zyyy nfd/Zyyy
diff --git a/js/lib/nfc/Kana.js b/js/lib/nfc/Kana.js
index 33a07fc86b..7356346663 100644
--- a/js/lib/nfc/Kana.js
+++ b/js/lib/nfc/Kana.js
@@ -1,7 +1,7 @@
/*
* Kana.js - include file for normalization data for a particular script
*
- * Copyright © 2013-2015, JEDLSoft
+ * Copyright © 2013 - 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,8 +17,4 @@
* limitations under the License.
*/
/* WARNING: THIS IS A FILE GENERATED BY gennorm.js. DO NOT EDIT BY HAND. */
-// !depends nfc/Zyyy.js
-// !depends nfd/Kana.js
-// !data norm
-ilib.extend(ilib.data.norm, ilib.data.normdata);
-ilib.data.normdata = undefined;
+// !data nfc/Kana nfd/Kana nfc/Zyyy nfd/Zyyy
diff --git a/js/lib/nfc/Knda.js b/js/lib/nfc/Knda.js
index 642b67809d..873a489849 100644
--- a/js/lib/nfc/Knda.js
+++ b/js/lib/nfc/Knda.js
@@ -1,7 +1,7 @@
/*
* Knda.js - include file for normalization data for a particular script
*
- * Copyright © 2013-2015, JEDLSoft
+ * Copyright © 2013 - 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,8 +17,4 @@
* limitations under the License.
*/
/* WARNING: THIS IS A FILE GENERATED BY gennorm.js. DO NOT EDIT BY HAND. */
-// !depends nfc/Zyyy.js
-// !depends nfd/Knda.js
-// !data norm
-ilib.extend(ilib.data.norm, ilib.data.normdata);
-ilib.data.normdata = undefined;
+// !data nfc/Knda nfd/Knda nfc/Zyyy nfd/Zyyy
diff --git a/js/lib/nfc/Kthi.js b/js/lib/nfc/Kthi.js
index 4db37bbc9d..317fe33f9f 100644
--- a/js/lib/nfc/Kthi.js
+++ b/js/lib/nfc/Kthi.js
@@ -1,7 +1,7 @@
/*
* Kthi.js - include file for normalization data for a particular script
*
- * Copyright © 2013-2015, JEDLSoft
+ * Copyright © 2013 - 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,8 +17,4 @@
* limitations under the License.
*/
/* WARNING: THIS IS A FILE GENERATED BY gennorm.js. DO NOT EDIT BY HAND. */
-// !depends nfc/Zyyy.js
-// !depends nfd/Kthi.js
-// !data norm
-ilib.extend(ilib.data.norm, ilib.data.normdata);
-ilib.data.normdata = undefined;
+// !data nfc/Kthi nfd/Kthi nfc/Zyyy nfd/Zyyy
diff --git a/js/lib/nfc/Latn.js b/js/lib/nfc/Latn.js
index b43d686c49..b05dc8e522 100644
--- a/js/lib/nfc/Latn.js
+++ b/js/lib/nfc/Latn.js
@@ -1,7 +1,7 @@
/*
* Latn.js - include file for normalization data for a particular script
*
- * Copyright © 2013-2015, JEDLSoft
+ * Copyright © 2013 - 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,8 +17,4 @@
* limitations under the License.
*/
/* WARNING: THIS IS A FILE GENERATED BY gennorm.js. DO NOT EDIT BY HAND. */
-// !depends nfc/Zyyy.js
-// !depends nfd/Latn.js
-// !data norm
-ilib.extend(ilib.data.norm, ilib.data.normdata);
-ilib.data.normdata = undefined;
+// !data nfc/Latn nfd/Latn nfc/Zyyy nfd/Zyyy
diff --git a/js/lib/nfc/Mlym.js b/js/lib/nfc/Mlym.js
index 14303f2764..91e4edc85c 100644
--- a/js/lib/nfc/Mlym.js
+++ b/js/lib/nfc/Mlym.js
@@ -1,7 +1,7 @@
/*
* Mlym.js - include file for normalization data for a particular script
*
- * Copyright © 2013-2015, JEDLSoft
+ * Copyright © 2013 - 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,8 +17,4 @@
* limitations under the License.
*/
/* WARNING: THIS IS A FILE GENERATED BY gennorm.js. DO NOT EDIT BY HAND. */
-// !depends nfc/Zyyy.js
-// !depends nfd/Mlym.js
-// !data norm
-ilib.extend(ilib.data.norm, ilib.data.normdata);
-ilib.data.normdata = undefined;
+// !data nfc/Mlym nfd/Mlym nfc/Zyyy nfd/Zyyy
diff --git a/js/lib/nfc/Mymr.js b/js/lib/nfc/Mymr.js
index aff101cb96..0f52712e64 100644
--- a/js/lib/nfc/Mymr.js
+++ b/js/lib/nfc/Mymr.js
@@ -1,7 +1,7 @@
/*
* Mymr.js - include file for normalization data for a particular script
*
- * Copyright © 2013-2015, JEDLSoft
+ * Copyright © 2013 - 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,8 +17,4 @@
* limitations under the License.
*/
/* WARNING: THIS IS A FILE GENERATED BY gennorm.js. DO NOT EDIT BY HAND. */
-// !depends nfc/Zyyy.js
-// !depends nfd/Mymr.js
-// !data norm
-ilib.extend(ilib.data.norm, ilib.data.normdata);
-ilib.data.normdata = undefined;
+// !data nfc/Mymr nfd/Mymr nfc/Zyyy nfd/Zyyy
diff --git a/js/lib/nfc/Orya.js b/js/lib/nfc/Orya.js
index f1f03cb50c..275913b282 100644
--- a/js/lib/nfc/Orya.js
+++ b/js/lib/nfc/Orya.js
@@ -1,7 +1,7 @@
/*
* Orya.js - include file for normalization data for a particular script
*
- * Copyright © 2013-2015, JEDLSoft
+ * Copyright © 2013 - 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,8 +17,4 @@
* limitations under the License.
*/
/* WARNING: THIS IS A FILE GENERATED BY gennorm.js. DO NOT EDIT BY HAND. */
-// !depends nfc/Zyyy.js
-// !depends nfd/Orya.js
-// !data norm
-ilib.extend(ilib.data.norm, ilib.data.normdata);
-ilib.data.normdata = undefined;
+// !data nfc/Orya nfd/Orya nfc/Zyyy nfd/Zyyy
diff --git a/js/lib/nfc/Sidd.js b/js/lib/nfc/Sidd.js
index 29040e1032..39765a0e3f 100644
--- a/js/lib/nfc/Sidd.js
+++ b/js/lib/nfc/Sidd.js
@@ -1,7 +1,7 @@
/*
* Sidd.js - include file for normalization data for a particular script
*
- * Copyright © 2013-2015, JEDLSoft
+ * Copyright © 2013 - 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,8 +17,4 @@
* limitations under the License.
*/
/* WARNING: THIS IS A FILE GENERATED BY gennorm.js. DO NOT EDIT BY HAND. */
-// !depends nfc/Zyyy.js
-// !depends nfd/Sidd.js
-// !data norm
-ilib.extend(ilib.data.norm, ilib.data.normdata);
-ilib.data.normdata = undefined;
+// !data nfc/Sidd nfd/Sidd nfc/Zyyy nfd/Zyyy
diff --git a/js/lib/nfc/Sinh.js b/js/lib/nfc/Sinh.js
index d36c6f6150..0488f315ce 100644
--- a/js/lib/nfc/Sinh.js
+++ b/js/lib/nfc/Sinh.js
@@ -1,7 +1,7 @@
/*
* Sinh.js - include file for normalization data for a particular script
*
- * Copyright © 2013-2015, JEDLSoft
+ * Copyright © 2013 - 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,8 +17,4 @@
* limitations under the License.
*/
/* WARNING: THIS IS A FILE GENERATED BY gennorm.js. DO NOT EDIT BY HAND. */
-// !depends nfc/Zyyy.js
-// !depends nfd/Sinh.js
-// !data norm
-ilib.extend(ilib.data.norm, ilib.data.normdata);
-ilib.data.normdata = undefined;
+// !data nfc/Sinh nfd/Sinh nfc/Zyyy nfd/Zyyy
diff --git a/js/lib/nfc/Taml.js b/js/lib/nfc/Taml.js
index f29e34b0b0..427b709440 100644
--- a/js/lib/nfc/Taml.js
+++ b/js/lib/nfc/Taml.js
@@ -1,7 +1,7 @@
/*
* Taml.js - include file for normalization data for a particular script
*
- * Copyright © 2013-2015, JEDLSoft
+ * Copyright © 2013 - 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,8 +17,4 @@
* limitations under the License.
*/
/* WARNING: THIS IS A FILE GENERATED BY gennorm.js. DO NOT EDIT BY HAND. */
-// !depends nfc/Zyyy.js
-// !depends nfd/Taml.js
-// !data norm
-ilib.extend(ilib.data.norm, ilib.data.normdata);
-ilib.data.normdata = undefined;
+// !data nfc/Taml nfd/Taml nfc/Zyyy nfd/Zyyy
diff --git a/js/lib/nfc/Telu.js b/js/lib/nfc/Telu.js
index 961e6211c9..e60bc494f5 100644
--- a/js/lib/nfc/Telu.js
+++ b/js/lib/nfc/Telu.js
@@ -1,7 +1,7 @@
/*
* Telu.js - include file for normalization data for a particular script
*
- * Copyright © 2013-2015, JEDLSoft
+ * Copyright © 2013 - 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,8 +17,4 @@
* limitations under the License.
*/
/* WARNING: THIS IS A FILE GENERATED BY gennorm.js. DO NOT EDIT BY HAND. */
-// !depends nfc/Zyyy.js
-// !depends nfd/Telu.js
-// !data norm
-ilib.extend(ilib.data.norm, ilib.data.normdata);
-ilib.data.normdata = undefined;
+// !data nfc/Telu nfd/Telu nfc/Zyyy nfd/Zyyy
diff --git a/js/lib/nfc/Tirh.js b/js/lib/nfc/Tirh.js
index deb6cbac8e..e49e30acb5 100644
--- a/js/lib/nfc/Tirh.js
+++ b/js/lib/nfc/Tirh.js
@@ -1,7 +1,7 @@
/*
* Tirh.js - include file for normalization data for a particular script
*
- * Copyright © 2013-2015, JEDLSoft
+ * Copyright © 2013 - 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,8 +17,4 @@
* limitations under the License.
*/
/* WARNING: THIS IS A FILE GENERATED BY gennorm.js. DO NOT EDIT BY HAND. */
-// !depends nfc/Zyyy.js
-// !depends nfd/Tirh.js
-// !data norm
-ilib.extend(ilib.data.norm, ilib.data.normdata);
-ilib.data.normdata = undefined;
+// !data nfc/Tirh nfd/Tirh nfc/Zyyy nfd/Zyyy
diff --git a/js/lib/nfc/Zyyy.js b/js/lib/nfc/Zyyy.js
index 2b5b975bc4..fbda8b87df 100644
--- a/js/lib/nfc/Zyyy.js
+++ b/js/lib/nfc/Zyyy.js
@@ -1,7 +1,7 @@
/*
* Zyyy.js - include file for normalization data for a particular script
*
- * Copyright © 2013-2015, JEDLSoft
+ * Copyright © 2013 - 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,7 +17,4 @@
* limitations under the License.
*/
/* WARNING: THIS IS A FILE GENERATED BY gennorm.js. DO NOT EDIT BY HAND. */
-// !depends nfd/Zyyy.js
-// !data norm
-ilib.extend(ilib.data.norm, ilib.data.normdata);
-ilib.data.normdata = undefined;
+// !data nfc/Zyyy nfd/Zyyy
diff --git a/js/lib/nfc/all.js b/js/lib/nfc/all.js
index 4591004ef1..ec170265ba 100644
--- a/js/lib/nfc/all.js
+++ b/js/lib/nfc/all.js
@@ -1,7 +1,7 @@
/*
* all.js - include file for normalization data for a particular script
*
- * Copyright © 2013-2015, JEDLSoft
+ * Copyright © 2013 - 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,7 +17,4 @@
* limitations under the License.
*/
/* WARNING: THIS IS A FILE GENERATED BY gennorm.js. DO NOT EDIT BY HAND. */
-// !depends nfd/all.js
-// !data norm
-ilib.extend(ilib.data.norm, ilib.data.normdata);
-ilib.data.normdata = undefined;
+// !data nfc/all nfd/all
diff --git a/js/lib/nfd/Arab.js b/js/lib/nfd/Arab.js
index edff9abf14..7e6b0f7ec6 100644
--- a/js/lib/nfd/Arab.js
+++ b/js/lib/nfd/Arab.js
@@ -1,7 +1,7 @@
/*
* Arab.js - include file for normalization data for a particular script
*
- * Copyright © 2013-2015, JEDLSoft
+ * Copyright © 2013 - 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,9 +17,4 @@
* limitations under the License.
*/
/* WARNING: THIS IS A FILE GENERATED BY gennorm.js. DO NOT EDIT BY HAND. */
-// !depends nfd/Zyyy.js
-// !data normdata nfd/Arab
-ilib.extend(ilib.data.norm, ilib.data.normdata);
-ilib.extend(ilib.data.norm.nfd, ilib.data.nfd_Arab);
-ilib.data.normdata = undefined;
-ilib.data.nfd_Arab = undefined;
\ No newline at end of file
+// !data nfd/Arab nfd/Zyyy
diff --git a/js/lib/nfd/Bali.js b/js/lib/nfd/Bali.js
index febe8cd7eb..e84dce3c38 100644
--- a/js/lib/nfd/Bali.js
+++ b/js/lib/nfd/Bali.js
@@ -1,7 +1,7 @@
/*
* Bali.js - include file for normalization data for a particular script
*
- * Copyright © 2013-2015, JEDLSoft
+ * Copyright © 2013 - 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,9 +17,4 @@
* limitations under the License.
*/
/* WARNING: THIS IS A FILE GENERATED BY gennorm.js. DO NOT EDIT BY HAND. */
-// !depends nfd/Zyyy.js
-// !data normdata nfd/Bali
-ilib.extend(ilib.data.norm, ilib.data.normdata);
-ilib.extend(ilib.data.norm.nfd, ilib.data.nfd_Bali);
-ilib.data.normdata = undefined;
-ilib.data.nfd_Bali = undefined;
\ No newline at end of file
+// !data nfd/Bali nfd/Zyyy
diff --git a/js/lib/nfd/Beng.js b/js/lib/nfd/Beng.js
index 88354afcba..323841021a 100644
--- a/js/lib/nfd/Beng.js
+++ b/js/lib/nfd/Beng.js
@@ -1,7 +1,7 @@
/*
* Beng.js - include file for normalization data for a particular script
*
- * Copyright © 2013-2015, JEDLSoft
+ * Copyright © 2013 - 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,9 +17,4 @@
* limitations under the License.
*/
/* WARNING: THIS IS A FILE GENERATED BY gennorm.js. DO NOT EDIT BY HAND. */
-// !depends nfd/Zyyy.js
-// !data normdata nfd/Beng
-ilib.extend(ilib.data.norm, ilib.data.normdata);
-ilib.extend(ilib.data.norm.nfd, ilib.data.nfd_Beng);
-ilib.data.normdata = undefined;
-ilib.data.nfd_Beng = undefined;
\ No newline at end of file
+// !data nfd/Beng nfd/Zyyy
diff --git a/js/lib/nfd/Cakm.js b/js/lib/nfd/Cakm.js
index 94580708d0..d6a3cbd9cc 100644
--- a/js/lib/nfd/Cakm.js
+++ b/js/lib/nfd/Cakm.js
@@ -1,7 +1,7 @@
/*
* Cakm.js - include file for normalization data for a particular script
*
- * Copyright © 2013-2015, JEDLSoft
+ * Copyright © 2013 - 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,9 +17,4 @@
* limitations under the License.
*/
/* WARNING: THIS IS A FILE GENERATED BY gennorm.js. DO NOT EDIT BY HAND. */
-// !depends nfd/Zyyy.js
-// !data normdata nfd/Cakm
-ilib.extend(ilib.data.norm, ilib.data.normdata);
-ilib.extend(ilib.data.norm.nfd, ilib.data.nfd_Cakm);
-ilib.data.normdata = undefined;
-ilib.data.nfd_Cakm = undefined;
\ No newline at end of file
+// !data nfd/Cakm nfd/Zyyy
diff --git a/js/lib/nfd/Cyrl.js b/js/lib/nfd/Cyrl.js
index b7bde70b28..aaf17aaee5 100644
--- a/js/lib/nfd/Cyrl.js
+++ b/js/lib/nfd/Cyrl.js
@@ -1,7 +1,7 @@
/*
* Cyrl.js - include file for normalization data for a particular script
*
- * Copyright © 2013-2015, JEDLSoft
+ * Copyright © 2013 - 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,9 +17,4 @@
* limitations under the License.
*/
/* WARNING: THIS IS A FILE GENERATED BY gennorm.js. DO NOT EDIT BY HAND. */
-// !depends nfd/Zyyy.js
-// !data normdata nfd/Cyrl
-ilib.extend(ilib.data.norm, ilib.data.normdata);
-ilib.extend(ilib.data.norm.nfd, ilib.data.nfd_Cyrl);
-ilib.data.normdata = undefined;
-ilib.data.nfd_Cyrl = undefined;
\ No newline at end of file
+// !data nfd/Cyrl nfd/Zyyy
diff --git a/js/lib/nfd/Deva.js b/js/lib/nfd/Deva.js
index d995fdff0d..78d8cb5c2a 100644
--- a/js/lib/nfd/Deva.js
+++ b/js/lib/nfd/Deva.js
@@ -1,7 +1,7 @@
/*
* Deva.js - include file for normalization data for a particular script
*
- * Copyright © 2013-2015, JEDLSoft
+ * Copyright © 2013 - 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,9 +17,4 @@
* limitations under the License.
*/
/* WARNING: THIS IS A FILE GENERATED BY gennorm.js. DO NOT EDIT BY HAND. */
-// !depends nfd/Zyyy.js
-// !data normdata nfd/Deva
-ilib.extend(ilib.data.norm, ilib.data.normdata);
-ilib.extend(ilib.data.norm.nfd, ilib.data.nfd_Deva);
-ilib.data.normdata = undefined;
-ilib.data.nfd_Deva = undefined;
\ No newline at end of file
+// !data nfd/Deva nfd/Zyyy
diff --git a/js/lib/nfd/Gran.js b/js/lib/nfd/Gran.js
index f7c74e248d..72515b8e51 100644
--- a/js/lib/nfd/Gran.js
+++ b/js/lib/nfd/Gran.js
@@ -1,7 +1,7 @@
/*
* Gran.js - include file for normalization data for a particular script
*
- * Copyright © 2013-2015, JEDLSoft
+ * Copyright © 2013 - 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,9 +17,4 @@
* limitations under the License.
*/
/* WARNING: THIS IS A FILE GENERATED BY gennorm.js. DO NOT EDIT BY HAND. */
-// !depends nfd/Zyyy.js
-// !data normdata nfd/Gran
-ilib.extend(ilib.data.norm, ilib.data.normdata);
-ilib.extend(ilib.data.norm.nfd, ilib.data.nfd_Gran);
-ilib.data.normdata = undefined;
-ilib.data.nfd_Gran = undefined;
\ No newline at end of file
+// !data nfd/Gran nfd/Zyyy
diff --git a/js/lib/nfd/Grek.js b/js/lib/nfd/Grek.js
index a881af4f80..0a1eb59062 100644
--- a/js/lib/nfd/Grek.js
+++ b/js/lib/nfd/Grek.js
@@ -1,7 +1,7 @@
/*
* Grek.js - include file for normalization data for a particular script
*
- * Copyright © 2013-2015, JEDLSoft
+ * Copyright © 2013 - 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,9 +17,4 @@
* limitations under the License.
*/
/* WARNING: THIS IS A FILE GENERATED BY gennorm.js. DO NOT EDIT BY HAND. */
-// !depends nfd/Zyyy.js
-// !data normdata nfd/Grek
-ilib.extend(ilib.data.norm, ilib.data.normdata);
-ilib.extend(ilib.data.norm.nfd, ilib.data.nfd_Grek);
-ilib.data.normdata = undefined;
-ilib.data.nfd_Grek = undefined;
\ No newline at end of file
+// !data nfd/Grek nfd/Zyyy
diff --git a/js/lib/nfd/Guru.js b/js/lib/nfd/Guru.js
index ee75a35258..7a7c164e67 100644
--- a/js/lib/nfd/Guru.js
+++ b/js/lib/nfd/Guru.js
@@ -1,7 +1,7 @@
/*
* Guru.js - include file for normalization data for a particular script
*
- * Copyright © 2013-2015, JEDLSoft
+ * Copyright © 2013 - 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,9 +17,4 @@
* limitations under the License.
*/
/* WARNING: THIS IS A FILE GENERATED BY gennorm.js. DO NOT EDIT BY HAND. */
-// !depends nfd/Zyyy.js
-// !data normdata nfd/Guru
-ilib.extend(ilib.data.norm, ilib.data.normdata);
-ilib.extend(ilib.data.norm.nfd, ilib.data.nfd_Guru);
-ilib.data.normdata = undefined;
-ilib.data.nfd_Guru = undefined;
\ No newline at end of file
+// !data nfd/Guru nfd/Zyyy
diff --git a/js/lib/nfd/Hani.js b/js/lib/nfd/Hani.js
index 806d0cb598..ff079c0553 100644
--- a/js/lib/nfd/Hani.js
+++ b/js/lib/nfd/Hani.js
@@ -1,7 +1,7 @@
/*
* Hani.js - include file for normalization data for a particular script
*
- * Copyright © 2013-2015, JEDLSoft
+ * Copyright © 2013 - 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,9 +17,4 @@
* limitations under the License.
*/
/* WARNING: THIS IS A FILE GENERATED BY gennorm.js. DO NOT EDIT BY HAND. */
-// !depends nfd/Zyyy.js
-// !data normdata nfd/Hani
-ilib.extend(ilib.data.norm, ilib.data.normdata);
-ilib.extend(ilib.data.norm.nfd, ilib.data.nfd_Hani);
-ilib.data.normdata = undefined;
-ilib.data.nfd_Hani = undefined;
\ No newline at end of file
+// !data nfd/Hani nfd/Zyyy
diff --git a/js/lib/nfd/Hebr.js b/js/lib/nfd/Hebr.js
index ccfad07418..6c950734f5 100644
--- a/js/lib/nfd/Hebr.js
+++ b/js/lib/nfd/Hebr.js
@@ -1,7 +1,7 @@
/*
* Hebr.js - include file for normalization data for a particular script
*
- * Copyright © 2013-2015, JEDLSoft
+ * Copyright © 2013 - 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,9 +17,4 @@
* limitations under the License.
*/
/* WARNING: THIS IS A FILE GENERATED BY gennorm.js. DO NOT EDIT BY HAND. */
-// !depends nfd/Zyyy.js
-// !data normdata nfd/Hebr
-ilib.extend(ilib.data.norm, ilib.data.normdata);
-ilib.extend(ilib.data.norm.nfd, ilib.data.nfd_Hebr);
-ilib.data.normdata = undefined;
-ilib.data.nfd_Hebr = undefined;
\ No newline at end of file
+// !data nfd/Hebr nfd/Zyyy
diff --git a/js/lib/nfd/Hira.js b/js/lib/nfd/Hira.js
index 6262185987..061834aeb7 100644
--- a/js/lib/nfd/Hira.js
+++ b/js/lib/nfd/Hira.js
@@ -1,7 +1,7 @@
/*
* Hira.js - include file for normalization data for a particular script
*
- * Copyright © 2013-2015, JEDLSoft
+ * Copyright © 2013 - 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,9 +17,4 @@
* limitations under the License.
*/
/* WARNING: THIS IS A FILE GENERATED BY gennorm.js. DO NOT EDIT BY HAND. */
-// !depends nfd/Zyyy.js
-// !data normdata nfd/Hira
-ilib.extend(ilib.data.norm, ilib.data.normdata);
-ilib.extend(ilib.data.norm.nfd, ilib.data.nfd_Hira);
-ilib.data.normdata = undefined;
-ilib.data.nfd_Hira = undefined;
\ No newline at end of file
+// !data nfd/Hira nfd/Zyyy
diff --git a/js/lib/nfd/Kana.js b/js/lib/nfd/Kana.js
index 1bd37c5447..8c5a2fa71a 100644
--- a/js/lib/nfd/Kana.js
+++ b/js/lib/nfd/Kana.js
@@ -1,7 +1,7 @@
/*
* Kana.js - include file for normalization data for a particular script
*
- * Copyright © 2013-2015, JEDLSoft
+ * Copyright © 2013 - 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,9 +17,4 @@
* limitations under the License.
*/
/* WARNING: THIS IS A FILE GENERATED BY gennorm.js. DO NOT EDIT BY HAND. */
-// !depends nfd/Zyyy.js
-// !data normdata nfd/Kana
-ilib.extend(ilib.data.norm, ilib.data.normdata);
-ilib.extend(ilib.data.norm.nfd, ilib.data.nfd_Kana);
-ilib.data.normdata = undefined;
-ilib.data.nfd_Kana = undefined;
\ No newline at end of file
+// !data nfd/Kana nfd/Zyyy
diff --git a/js/lib/nfd/Knda.js b/js/lib/nfd/Knda.js
index cc7c146b03..1d8a8089c2 100644
--- a/js/lib/nfd/Knda.js
+++ b/js/lib/nfd/Knda.js
@@ -1,7 +1,7 @@
/*
* Knda.js - include file for normalization data for a particular script
*
- * Copyright © 2013-2015, JEDLSoft
+ * Copyright © 2013 - 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,9 +17,4 @@
* limitations under the License.
*/
/* WARNING: THIS IS A FILE GENERATED BY gennorm.js. DO NOT EDIT BY HAND. */
-// !depends nfd/Zyyy.js
-// !data normdata nfd/Knda
-ilib.extend(ilib.data.norm, ilib.data.normdata);
-ilib.extend(ilib.data.norm.nfd, ilib.data.nfd_Knda);
-ilib.data.normdata = undefined;
-ilib.data.nfd_Knda = undefined;
\ No newline at end of file
+// !data nfd/Knda nfd/Zyyy
diff --git a/js/lib/nfd/Kthi.js b/js/lib/nfd/Kthi.js
index baca2ee150..ccb719ea84 100644
--- a/js/lib/nfd/Kthi.js
+++ b/js/lib/nfd/Kthi.js
@@ -1,7 +1,7 @@
/*
* Kthi.js - include file for normalization data for a particular script
*
- * Copyright © 2013-2015, JEDLSoft
+ * Copyright © 2013 - 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,9 +17,4 @@
* limitations under the License.
*/
/* WARNING: THIS IS A FILE GENERATED BY gennorm.js. DO NOT EDIT BY HAND. */
-// !depends nfd/Zyyy.js
-// !data normdata nfd/Kthi
-ilib.extend(ilib.data.norm, ilib.data.normdata);
-ilib.extend(ilib.data.norm.nfd, ilib.data.nfd_Kthi);
-ilib.data.normdata = undefined;
-ilib.data.nfd_Kthi = undefined;
\ No newline at end of file
+// !data nfd/Kthi nfd/Zyyy
diff --git a/js/lib/nfd/Latn.js b/js/lib/nfd/Latn.js
index d15ef732e6..f35364c229 100644
--- a/js/lib/nfd/Latn.js
+++ b/js/lib/nfd/Latn.js
@@ -1,7 +1,7 @@
/*
* Latn.js - include file for normalization data for a particular script
*
- * Copyright © 2013-2015, JEDLSoft
+ * Copyright © 2013 - 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,9 +17,4 @@
* limitations under the License.
*/
/* WARNING: THIS IS A FILE GENERATED BY gennorm.js. DO NOT EDIT BY HAND. */
-// !depends nfd/Zyyy.js
-// !data normdata nfd/Latn
-ilib.extend(ilib.data.norm, ilib.data.normdata);
-ilib.extend(ilib.data.norm.nfd, ilib.data.nfd_Latn);
-ilib.data.normdata = undefined;
-ilib.data.nfd_Latn = undefined;
\ No newline at end of file
+// !data nfd/Latn nfd/Zyyy
diff --git a/js/lib/nfd/Mlym.js b/js/lib/nfd/Mlym.js
index d5399bb06f..099ece08e2 100644
--- a/js/lib/nfd/Mlym.js
+++ b/js/lib/nfd/Mlym.js
@@ -1,7 +1,7 @@
/*
* Mlym.js - include file for normalization data for a particular script
*
- * Copyright © 2013-2015, JEDLSoft
+ * Copyright © 2013 - 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,9 +17,4 @@
* limitations under the License.
*/
/* WARNING: THIS IS A FILE GENERATED BY gennorm.js. DO NOT EDIT BY HAND. */
-// !depends nfd/Zyyy.js
-// !data normdata nfd/Mlym
-ilib.extend(ilib.data.norm, ilib.data.normdata);
-ilib.extend(ilib.data.norm.nfd, ilib.data.nfd_Mlym);
-ilib.data.normdata = undefined;
-ilib.data.nfd_Mlym = undefined;
\ No newline at end of file
+// !data nfd/Mlym nfd/Zyyy
diff --git a/js/lib/nfd/Mymr.js b/js/lib/nfd/Mymr.js
index 5dbf9765e1..7379cd3c36 100644
--- a/js/lib/nfd/Mymr.js
+++ b/js/lib/nfd/Mymr.js
@@ -1,7 +1,7 @@
/*
* Mymr.js - include file for normalization data for a particular script
*
- * Copyright © 2013-2015, JEDLSoft
+ * Copyright © 2013 - 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,9 +17,4 @@
* limitations under the License.
*/
/* WARNING: THIS IS A FILE GENERATED BY gennorm.js. DO NOT EDIT BY HAND. */
-// !depends nfd/Zyyy.js
-// !data normdata nfd/Mymr
-ilib.extend(ilib.data.norm, ilib.data.normdata);
-ilib.extend(ilib.data.norm.nfd, ilib.data.nfd_Mymr);
-ilib.data.normdata = undefined;
-ilib.data.nfd_Mymr = undefined;
\ No newline at end of file
+// !data nfd/Mymr nfd/Zyyy
diff --git a/js/lib/nfd/Orya.js b/js/lib/nfd/Orya.js
index 2a93ceb1b8..2150439557 100644
--- a/js/lib/nfd/Orya.js
+++ b/js/lib/nfd/Orya.js
@@ -1,7 +1,7 @@
/*
* Orya.js - include file for normalization data for a particular script
*
- * Copyright © 2013-2015, JEDLSoft
+ * Copyright © 2013 - 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,9 +17,4 @@
* limitations under the License.
*/
/* WARNING: THIS IS A FILE GENERATED BY gennorm.js. DO NOT EDIT BY HAND. */
-// !depends nfd/Zyyy.js
-// !data normdata nfd/Orya
-ilib.extend(ilib.data.norm, ilib.data.normdata);
-ilib.extend(ilib.data.norm.nfd, ilib.data.nfd_Orya);
-ilib.data.normdata = undefined;
-ilib.data.nfd_Orya = undefined;
\ No newline at end of file
+// !data nfd/Orya nfd/Zyyy
diff --git a/js/lib/nfd/Sidd.js b/js/lib/nfd/Sidd.js
index 9063d50488..1b9000ef9f 100644
--- a/js/lib/nfd/Sidd.js
+++ b/js/lib/nfd/Sidd.js
@@ -1,7 +1,7 @@
/*
* Sidd.js - include file for normalization data for a particular script
*
- * Copyright © 2013-2015, JEDLSoft
+ * Copyright © 2013 - 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,9 +17,4 @@
* limitations under the License.
*/
/* WARNING: THIS IS A FILE GENERATED BY gennorm.js. DO NOT EDIT BY HAND. */
-// !depends nfd/Zyyy.js
-// !data normdata nfd/Sidd
-ilib.extend(ilib.data.norm, ilib.data.normdata);
-ilib.extend(ilib.data.norm.nfd, ilib.data.nfd_Sidd);
-ilib.data.normdata = undefined;
-ilib.data.nfd_Sidd = undefined;
\ No newline at end of file
+// !data nfd/Sidd nfd/Zyyy
diff --git a/js/lib/nfd/Sinh.js b/js/lib/nfd/Sinh.js
index c9c1ec14ba..1d7045e9c8 100644
--- a/js/lib/nfd/Sinh.js
+++ b/js/lib/nfd/Sinh.js
@@ -1,7 +1,7 @@
/*
* Sinh.js - include file for normalization data for a particular script
*
- * Copyright © 2013-2015, JEDLSoft
+ * Copyright © 2013 - 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,9 +17,4 @@
* limitations under the License.
*/
/* WARNING: THIS IS A FILE GENERATED BY gennorm.js. DO NOT EDIT BY HAND. */
-// !depends nfd/Zyyy.js
-// !data normdata nfd/Sinh
-ilib.extend(ilib.data.norm, ilib.data.normdata);
-ilib.extend(ilib.data.norm.nfd, ilib.data.nfd_Sinh);
-ilib.data.normdata = undefined;
-ilib.data.nfd_Sinh = undefined;
\ No newline at end of file
+// !data nfd/Sinh nfd/Zyyy
diff --git a/js/lib/nfd/Taml.js b/js/lib/nfd/Taml.js
index 0257480397..ac3b70b592 100644
--- a/js/lib/nfd/Taml.js
+++ b/js/lib/nfd/Taml.js
@@ -1,7 +1,7 @@
/*
* Taml.js - include file for normalization data for a particular script
*
- * Copyright © 2013-2015, JEDLSoft
+ * Copyright © 2013 - 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,9 +17,4 @@
* limitations under the License.
*/
/* WARNING: THIS IS A FILE GENERATED BY gennorm.js. DO NOT EDIT BY HAND. */
-// !depends nfd/Zyyy.js
-// !data normdata nfd/Taml
-ilib.extend(ilib.data.norm, ilib.data.normdata);
-ilib.extend(ilib.data.norm.nfd, ilib.data.nfd_Taml);
-ilib.data.normdata = undefined;
-ilib.data.nfd_Taml = undefined;
\ No newline at end of file
+// !data nfd/Taml nfd/Zyyy
diff --git a/js/lib/nfd/Telu.js b/js/lib/nfd/Telu.js
index f0c2bd881d..4a6832ea8b 100644
--- a/js/lib/nfd/Telu.js
+++ b/js/lib/nfd/Telu.js
@@ -1,7 +1,7 @@
/*
* Telu.js - include file for normalization data for a particular script
*
- * Copyright © 2013-2015, JEDLSoft
+ * Copyright © 2013 - 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,9 +17,4 @@
* limitations under the License.
*/
/* WARNING: THIS IS A FILE GENERATED BY gennorm.js. DO NOT EDIT BY HAND. */
-// !depends nfd/Zyyy.js
-// !data normdata nfd/Telu
-ilib.extend(ilib.data.norm, ilib.data.normdata);
-ilib.extend(ilib.data.norm.nfd, ilib.data.nfd_Telu);
-ilib.data.normdata = undefined;
-ilib.data.nfd_Telu = undefined;
\ No newline at end of file
+// !data nfd/Telu nfd/Zyyy
diff --git a/js/lib/nfd/Tibt.js b/js/lib/nfd/Tibt.js
index e16dd31d23..885e3698f5 100644
--- a/js/lib/nfd/Tibt.js
+++ b/js/lib/nfd/Tibt.js
@@ -1,7 +1,7 @@
/*
* Tibt.js - include file for normalization data for a particular script
*
- * Copyright © 2013-2015, JEDLSoft
+ * Copyright © 2013 - 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,9 +17,4 @@
* limitations under the License.
*/
/* WARNING: THIS IS A FILE GENERATED BY gennorm.js. DO NOT EDIT BY HAND. */
-// !depends nfd/Zyyy.js
-// !data normdata nfd/Tibt
-ilib.extend(ilib.data.norm, ilib.data.normdata);
-ilib.extend(ilib.data.norm.nfd, ilib.data.nfd_Tibt);
-ilib.data.normdata = undefined;
-ilib.data.nfd_Tibt = undefined;
\ No newline at end of file
+// !data nfd/Tibt nfd/Zyyy
diff --git a/js/lib/nfd/Tirh.js b/js/lib/nfd/Tirh.js
index f2099c833e..a633b93e3e 100644
--- a/js/lib/nfd/Tirh.js
+++ b/js/lib/nfd/Tirh.js
@@ -1,7 +1,7 @@
/*
* Tirh.js - include file for normalization data for a particular script
*
- * Copyright © 2013-2015, JEDLSoft
+ * Copyright © 2013 - 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,9 +17,4 @@
* limitations under the License.
*/
/* WARNING: THIS IS A FILE GENERATED BY gennorm.js. DO NOT EDIT BY HAND. */
-// !depends nfd/Zyyy.js
-// !data normdata nfd/Tirh
-ilib.extend(ilib.data.norm, ilib.data.normdata);
-ilib.extend(ilib.data.norm.nfd, ilib.data.nfd_Tirh);
-ilib.data.normdata = undefined;
-ilib.data.nfd_Tirh = undefined;
\ No newline at end of file
+// !data nfd/Tirh nfd/Zyyy
diff --git a/js/lib/nfd/Zinh.js b/js/lib/nfd/Zinh.js
index a427a62bf6..5d80305a24 100644
--- a/js/lib/nfd/Zinh.js
+++ b/js/lib/nfd/Zinh.js
@@ -1,7 +1,7 @@
/*
* Zinh.js - include file for normalization data for a particular script
*
- * Copyright © 2013-2015, JEDLSoft
+ * Copyright © 2013 - 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,9 +17,4 @@
* limitations under the License.
*/
/* WARNING: THIS IS A FILE GENERATED BY gennorm.js. DO NOT EDIT BY HAND. */
-// !depends nfd/Zyyy.js
-// !data normdata nfd/Zinh
-ilib.extend(ilib.data.norm, ilib.data.normdata);
-ilib.extend(ilib.data.norm.nfd, ilib.data.nfd_Zinh);
-ilib.data.normdata = undefined;
-ilib.data.nfd_Zinh = undefined;
\ No newline at end of file
+// !data nfd/Zinh nfd/Zyyy
diff --git a/js/lib/nfd/Zyyy.js b/js/lib/nfd/Zyyy.js
index 292f590679..3b84823f7e 100644
--- a/js/lib/nfd/Zyyy.js
+++ b/js/lib/nfd/Zyyy.js
@@ -1,7 +1,7 @@
/*
* Zyyy.js - include file for normalization data for a particular script
*
- * Copyright © 2013-2015, JEDLSoft
+ * Copyright © 2013 - 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,8 +17,4 @@
* limitations under the License.
*/
/* WARNING: THIS IS A FILE GENERATED BY gennorm.js. DO NOT EDIT BY HAND. */
-// !data normdata nfd/Zyyy
-ilib.extend(ilib.data.norm, ilib.data.normdata);
-ilib.extend(ilib.data.norm.nfd, ilib.data.nfd_Zyyy);
-ilib.data.normdata = undefined;
-ilib.data.nfd_Zyyy = undefined;
\ No newline at end of file
+// !data nfd/Zyyy
diff --git a/js/lib/nfd/all.js b/js/lib/nfd/all.js
index 8ac0747ca9..39e56a277e 100644
--- a/js/lib/nfd/all.js
+++ b/js/lib/nfd/all.js
@@ -1,7 +1,7 @@
/*
* all.js - include file for normalization data for a particular script
*
- * Copyright © 2013-2015, JEDLSoft
+ * Copyright © 2013 - 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,8 +17,4 @@
* limitations under the License.
*/
/* WARNING: THIS IS A FILE GENERATED BY gennorm.js. DO NOT EDIT BY HAND. */
-// !data normdata nfd/all
-ilib.extend(ilib.data.norm, ilib.data.normdata);
-ilib.extend(ilib.data.norm.nfd, ilib.data.nfd_all);
-ilib.data.normdata = undefined;
-ilib.data.nfd_all = undefined;
\ No newline at end of file
+// !data nfd/all
diff --git a/js/lib/nfkc/Arab.js b/js/lib/nfkc/Arab.js
index 877eec3c23..507d32dbb4 100644
--- a/js/lib/nfkc/Arab.js
+++ b/js/lib/nfkc/Arab.js
@@ -1,7 +1,7 @@
/*
* Arab.js - include file for normalization data for a particular script
*
- * Copyright © 2013-2015, JEDLSoft
+ * Copyright © 2013 - 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,8 +17,4 @@
* limitations under the License.
*/
/* WARNING: THIS IS A FILE GENERATED BY gennorm.js. DO NOT EDIT BY HAND. */
-// !depends nfkc/Zyyy.js
-// !depends nfd/Arab.js nfkd/Arab.js
-// !data norm
-ilib.extend(ilib.data.norm, ilib.data.normdata);
-ilib.data.normdata = undefined;
+// !data nfc/Arab nfkd/Arab nfd/Arab nfc/Zyyy nfkd/Zyyy nfd/Zyyy
diff --git a/js/lib/nfkc/Armn.js b/js/lib/nfkc/Armn.js
index a85cb64e3c..14b77d4c62 100644
--- a/js/lib/nfkc/Armn.js
+++ b/js/lib/nfkc/Armn.js
@@ -1,7 +1,7 @@
/*
* Armn.js - include file for normalization data for a particular script
*
- * Copyright © 2013-2015, JEDLSoft
+ * Copyright © 2013 - 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,8 +17,4 @@
* limitations under the License.
*/
/* WARNING: THIS IS A FILE GENERATED BY gennorm.js. DO NOT EDIT BY HAND. */
-// !depends nfkc/Zyyy.js
-// !depends nfd/Armn.js nfkd/Armn.js
-// !data norm
-ilib.extend(ilib.data.norm, ilib.data.normdata);
-ilib.data.normdata = undefined;
+// !data nfc/Armn nfkd/Armn nfd/Armn nfc/Zyyy nfkd/Zyyy nfd/Zyyy
diff --git a/js/lib/nfkc/Cyrl.js b/js/lib/nfkc/Cyrl.js
index 6fd3c99776..29cf94b5ba 100644
--- a/js/lib/nfkc/Cyrl.js
+++ b/js/lib/nfkc/Cyrl.js
@@ -1,7 +1,7 @@
/*
* Cyrl.js - include file for normalization data for a particular script
*
- * Copyright © 2013-2015, JEDLSoft
+ * Copyright © 2013 - 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,8 +17,4 @@
* limitations under the License.
*/
/* WARNING: THIS IS A FILE GENERATED BY gennorm.js. DO NOT EDIT BY HAND. */
-// !depends nfkc/Zyyy.js
-// !depends nfd/Cyrl.js nfkd/Cyrl.js
-// !data norm
-ilib.extend(ilib.data.norm, ilib.data.normdata);
-ilib.data.normdata = undefined;
+// !data nfc/Cyrl nfkd/Cyrl nfd/Cyrl nfc/Zyyy nfkd/Zyyy nfd/Zyyy
diff --git a/js/lib/nfkc/Geok.js b/js/lib/nfkc/Geok.js
index 5417d69d8c..5027eef45f 100644
--- a/js/lib/nfkc/Geok.js
+++ b/js/lib/nfkc/Geok.js
@@ -17,8 +17,4 @@
* limitations under the License.
*/
/* WARNING: THIS IS A FILE GENERATED BY gennorm.js. DO NOT EDIT BY HAND. */
-// !depends nfkc/Zyyy.js
-// !depends nfd/Geok.js nfkd/Geok.js
-// !data norm
-ilib.extend(ilib.data.norm, ilib.data.normdata);
-ilib.data.normdata = undefined;
+// !data nfc/Geok nfkd/Geok nfd/Geok nfc/Zyyy nfkd/Zyyy nfd/Zyyy
diff --git a/js/lib/nfkc/Geor.js b/js/lib/nfkc/Geor.js
index 808b9530e7..8115ab3224 100644
--- a/js/lib/nfkc/Geor.js
+++ b/js/lib/nfkc/Geor.js
@@ -1,7 +1,7 @@
/*
* Geor.js - include file for normalization data for a particular script
*
- * Copyright © 2013-2015, JEDLSoft
+ * Copyright © 2013 - 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,8 +17,4 @@
* limitations under the License.
*/
/* WARNING: THIS IS A FILE GENERATED BY gennorm.js. DO NOT EDIT BY HAND. */
-// !depends nfkc/Zyyy.js
-// !depends nfd/Geor.js nfkd/Geor.js
-// !data norm
-ilib.extend(ilib.data.norm, ilib.data.normdata);
-ilib.data.normdata = undefined;
+// !data nfc/Geor nfkd/Geor nfd/Geor nfc/Zyyy nfkd/Zyyy nfd/Zyyy
diff --git a/js/lib/nfkc/Grek.js b/js/lib/nfkc/Grek.js
index 3021cc100a..c3410f30f2 100644
--- a/js/lib/nfkc/Grek.js
+++ b/js/lib/nfkc/Grek.js
@@ -1,7 +1,7 @@
/*
* Grek.js - include file for normalization data for a particular script
*
- * Copyright © 2013-2015, JEDLSoft
+ * Copyright © 2013 - 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,8 +17,4 @@
* limitations under the License.
*/
/* WARNING: THIS IS A FILE GENERATED BY gennorm.js. DO NOT EDIT BY HAND. */
-// !depends nfkc/Zyyy.js
-// !depends nfd/Grek.js nfkd/Grek.js
-// !data norm
-ilib.extend(ilib.data.norm, ilib.data.normdata);
-ilib.data.normdata = undefined;
+// !data nfc/Grek nfkd/Grek nfd/Grek nfc/Zyyy nfkd/Zyyy nfd/Zyyy
diff --git a/js/lib/nfkc/Hang.js b/js/lib/nfkc/Hang.js
index 7f0fcd6e8e..bac3eb9f46 100644
--- a/js/lib/nfkc/Hang.js
+++ b/js/lib/nfkc/Hang.js
@@ -1,7 +1,7 @@
/*
* Hang.js - include file for normalization data for a particular script
*
- * Copyright © 2013-2015, JEDLSoft
+ * Copyright © 2013 - 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,8 +17,4 @@
* limitations under the License.
*/
/* WARNING: THIS IS A FILE GENERATED BY gennorm.js. DO NOT EDIT BY HAND. */
-// !depends nfkc/Zyyy.js
-// !depends nfd/Hang.js nfkd/Hang.js
-// !data norm
-ilib.extend(ilib.data.norm, ilib.data.normdata);
-ilib.data.normdata = undefined;
+// !data nfc/Hang nfkd/Hang nfd/Hang nfc/Zyyy nfkd/Zyyy nfd/Zyyy
diff --git a/js/lib/nfkc/Hani.js b/js/lib/nfkc/Hani.js
index b4454fa75d..5eebb35222 100644
--- a/js/lib/nfkc/Hani.js
+++ b/js/lib/nfkc/Hani.js
@@ -1,7 +1,7 @@
/*
* Hani.js - include file for normalization data for a particular script
*
- * Copyright © 2013-2015, JEDLSoft
+ * Copyright © 2013 - 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,8 +17,4 @@
* limitations under the License.
*/
/* WARNING: THIS IS A FILE GENERATED BY gennorm.js. DO NOT EDIT BY HAND. */
-// !depends nfkc/Zyyy.js
-// !depends nfd/Hani.js nfkd/Hani.js
-// !data norm
-ilib.extend(ilib.data.norm, ilib.data.normdata);
-ilib.data.normdata = undefined;
+// !data nfc/Hani nfkd/Hani nfd/Hani nfc/Zyyy nfkd/Zyyy nfd/Zyyy
diff --git a/js/lib/nfkc/Hebr.js b/js/lib/nfkc/Hebr.js
index bd43a3ebd8..f66729fbbf 100644
--- a/js/lib/nfkc/Hebr.js
+++ b/js/lib/nfkc/Hebr.js
@@ -1,7 +1,7 @@
/*
* Hebr.js - include file for normalization data for a particular script
*
- * Copyright © 2013-2015, JEDLSoft
+ * Copyright © 2013 - 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,8 +17,4 @@
* limitations under the License.
*/
/* WARNING: THIS IS A FILE GENERATED BY gennorm.js. DO NOT EDIT BY HAND. */
-// !depends nfkc/Zyyy.js
-// !depends nfd/Hebr.js nfkd/Hebr.js
-// !data norm
-ilib.extend(ilib.data.norm, ilib.data.normdata);
-ilib.data.normdata = undefined;
+// !data nfc/Hebr nfkd/Hebr nfd/Hebr nfc/Zyyy nfkd/Zyyy nfd/Zyyy
diff --git a/js/lib/nfkc/Hira.js b/js/lib/nfkc/Hira.js
index 87d121a1a9..62e6a54dda 100644
--- a/js/lib/nfkc/Hira.js
+++ b/js/lib/nfkc/Hira.js
@@ -1,7 +1,7 @@
/*
* Hira.js - include file for normalization data for a particular script
*
- * Copyright © 2013-2015, JEDLSoft
+ * Copyright © 2013 - 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,8 +17,4 @@
* limitations under the License.
*/
/* WARNING: THIS IS A FILE GENERATED BY gennorm.js. DO NOT EDIT BY HAND. */
-// !depends nfkc/Zyyy.js
-// !depends nfd/Hira.js nfkd/Hira.js
-// !data norm
-ilib.extend(ilib.data.norm, ilib.data.normdata);
-ilib.data.normdata = undefined;
+// !data nfc/Hira nfkd/Hira nfd/Hira nfc/Zyyy nfkd/Zyyy nfd/Zyyy
diff --git a/js/lib/nfkc/Kana.js b/js/lib/nfkc/Kana.js
index 9240884d8d..beff0aed9b 100644
--- a/js/lib/nfkc/Kana.js
+++ b/js/lib/nfkc/Kana.js
@@ -1,7 +1,7 @@
/*
* Kana.js - include file for normalization data for a particular script
*
- * Copyright © 2013-2015, JEDLSoft
+ * Copyright © 2013 - 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,8 +17,4 @@
* limitations under the License.
*/
/* WARNING: THIS IS A FILE GENERATED BY gennorm.js. DO NOT EDIT BY HAND. */
-// !depends nfkc/Zyyy.js
-// !depends nfd/Kana.js nfkd/Kana.js
-// !data norm
-ilib.extend(ilib.data.norm, ilib.data.normdata);
-ilib.data.normdata = undefined;
+// !data nfc/Kana nfkd/Kana nfd/Kana nfc/Zyyy nfkd/Zyyy nfd/Zyyy
diff --git a/js/lib/nfkc/Laoo.js b/js/lib/nfkc/Laoo.js
index 0897016b0b..2183874fe0 100644
--- a/js/lib/nfkc/Laoo.js
+++ b/js/lib/nfkc/Laoo.js
@@ -1,7 +1,7 @@
/*
* Laoo.js - include file for normalization data for a particular script
*
- * Copyright © 2013-2015, JEDLSoft
+ * Copyright © 2013 - 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,8 +17,4 @@
* limitations under the License.
*/
/* WARNING: THIS IS A FILE GENERATED BY gennorm.js. DO NOT EDIT BY HAND. */
-// !depends nfkc/Zyyy.js
-// !depends nfd/Laoo.js nfkd/Laoo.js
-// !data norm
-ilib.extend(ilib.data.norm, ilib.data.normdata);
-ilib.data.normdata = undefined;
+// !data nfc/Laoo nfkd/Laoo nfd/Laoo nfc/Zyyy nfkd/Zyyy nfd/Zyyy
diff --git a/js/lib/nfkc/Latn.js b/js/lib/nfkc/Latn.js
index f3e0ef5f0f..ad8ea01948 100644
--- a/js/lib/nfkc/Latn.js
+++ b/js/lib/nfkc/Latn.js
@@ -1,7 +1,7 @@
/*
* Latn.js - include file for normalization data for a particular script
*
- * Copyright © 2013-2015, JEDLSoft
+ * Copyright © 2013 - 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,8 +17,4 @@
* limitations under the License.
*/
/* WARNING: THIS IS A FILE GENERATED BY gennorm.js. DO NOT EDIT BY HAND. */
-// !depends nfkc/Zyyy.js
-// !depends nfd/Latn.js nfkd/Latn.js
-// !data norm
-ilib.extend(ilib.data.norm, ilib.data.normdata);
-ilib.data.normdata = undefined;
+// !data nfc/Latn nfkd/Latn nfd/Latn nfc/Zyyy nfkd/Zyyy nfd/Zyyy
diff --git a/js/lib/nfkc/Tfng.js b/js/lib/nfkc/Tfng.js
index f89989abc2..62841d3784 100644
--- a/js/lib/nfkc/Tfng.js
+++ b/js/lib/nfkc/Tfng.js
@@ -1,7 +1,7 @@
/*
* Tfng.js - include file for normalization data for a particular script
*
- * Copyright © 2013-2015, JEDLSoft
+ * Copyright © 2013 - 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,8 +17,4 @@
* limitations under the License.
*/
/* WARNING: THIS IS A FILE GENERATED BY gennorm.js. DO NOT EDIT BY HAND. */
-// !depends nfkc/Zyyy.js
-// !depends nfd/Tfng.js nfkd/Tfng.js
-// !data norm
-ilib.extend(ilib.data.norm, ilib.data.normdata);
-ilib.data.normdata = undefined;
+// !data nfc/Tfng nfkd/Tfng nfd/Tfng nfc/Zyyy nfkd/Zyyy nfd/Zyyy
diff --git a/js/lib/nfkc/Thai.js b/js/lib/nfkc/Thai.js
index 23d24dbbc4..a79b00b52d 100644
--- a/js/lib/nfkc/Thai.js
+++ b/js/lib/nfkc/Thai.js
@@ -1,7 +1,7 @@
/*
* Thai.js - include file for normalization data for a particular script
*
- * Copyright © 2013-2015, JEDLSoft
+ * Copyright © 2013 - 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,8 +17,4 @@
* limitations under the License.
*/
/* WARNING: THIS IS A FILE GENERATED BY gennorm.js. DO NOT EDIT BY HAND. */
-// !depends nfkc/Zyyy.js
-// !depends nfd/Thai.js nfkd/Thai.js
-// !data norm
-ilib.extend(ilib.data.norm, ilib.data.normdata);
-ilib.data.normdata = undefined;
+// !data nfc/Thai nfkd/Thai nfd/Thai nfc/Zyyy nfkd/Zyyy nfd/Zyyy
diff --git a/js/lib/nfkc/Tibt.js b/js/lib/nfkc/Tibt.js
index fa543a61bc..ec0086db6e 100644
--- a/js/lib/nfkc/Tibt.js
+++ b/js/lib/nfkc/Tibt.js
@@ -1,7 +1,7 @@
/*
* Tibt.js - include file for normalization data for a particular script
*
- * Copyright © 2013-2015, JEDLSoft
+ * Copyright © 2013 - 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,8 +17,4 @@
* limitations under the License.
*/
/* WARNING: THIS IS A FILE GENERATED BY gennorm.js. DO NOT EDIT BY HAND. */
-// !depends nfkc/Zyyy.js
-// !depends nfd/Tibt.js nfkd/Tibt.js
-// !data norm
-ilib.extend(ilib.data.norm, ilib.data.normdata);
-ilib.data.normdata = undefined;
+// !data nfc/Tibt nfkd/Tibt nfd/Tibt nfc/Zyyy nfkd/Zyyy nfd/Zyyy
diff --git a/js/lib/nfkc/Zyyy.js b/js/lib/nfkc/Zyyy.js
index eca457a1ba..af6911e5df 100644
--- a/js/lib/nfkc/Zyyy.js
+++ b/js/lib/nfkc/Zyyy.js
@@ -1,7 +1,7 @@
/*
* Zyyy.js - include file for normalization data for a particular script
*
- * Copyright © 2013-2015, JEDLSoft
+ * Copyright © 2013 - 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,7 +17,4 @@
* limitations under the License.
*/
/* WARNING: THIS IS A FILE GENERATED BY gennorm.js. DO NOT EDIT BY HAND. */
-// !depends nfd/Zyyy.js nfkd/Zyyy.js
-// !data norm
-ilib.extend(ilib.data.norm, ilib.data.normdata);
-ilib.data.normdata = undefined;
+// !data nfc/Zyyy nfkd/Zyyy nfd/Zyyy
diff --git a/js/lib/nfkc/all.js b/js/lib/nfkc/all.js
index 5365f71940..4999a6f20c 100644
--- a/js/lib/nfkc/all.js
+++ b/js/lib/nfkc/all.js
@@ -1,7 +1,7 @@
/*
* all.js - include file for normalization data for a particular script
*
- * Copyright © 2013-2015, JEDLSoft
+ * Copyright © 2013 - 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,7 +17,4 @@
* limitations under the License.
*/
/* WARNING: THIS IS A FILE GENERATED BY gennorm.js. DO NOT EDIT BY HAND. */
-// !depends nfd/all.js nfkd/all.js
-// !data norm
-ilib.extend(ilib.data.norm, ilib.data.normdata);
-ilib.data.normdata = undefined;
+// !data nfc/all nfkd/all nfd/all
diff --git a/js/lib/nfkd/Arab.js b/js/lib/nfkd/Arab.js
index acc6651a2e..6066bc8d87 100644
--- a/js/lib/nfkd/Arab.js
+++ b/js/lib/nfkd/Arab.js
@@ -1,7 +1,7 @@
/*
* Arab.js - include file for normalization data for a particular script
*
- * Copyright © 2013-2015, JEDLSoft
+ * Copyright © 2013 - 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,10 +17,4 @@
* limitations under the License.
*/
/* WARNING: THIS IS A FILE GENERATED BY gennorm.js. DO NOT EDIT BY HAND. */
-// !depends nfkd/Zyyy.js
-// !depends nfd/Arab.js
-// !data normdata nfkd/Arab
-ilib.extend(ilib.data.norm, ilib.data.normdata);
-ilib.extend(ilib.data.norm.nfkd, ilib.data.nfkd_Arab);
-ilib.data.normdata = undefined;
-ilib.data.nfkd_Arab = undefined;
\ No newline at end of file
+// !data nfkd/Arab nfd/Arab nfkd/Zyyy nfd/Zyyy
diff --git a/js/lib/nfkd/Armn.js b/js/lib/nfkd/Armn.js
index a687a2c310..a956b559db 100644
--- a/js/lib/nfkd/Armn.js
+++ b/js/lib/nfkd/Armn.js
@@ -1,7 +1,7 @@
/*
* Armn.js - include file for normalization data for a particular script
*
- * Copyright © 2013-2015, JEDLSoft
+ * Copyright © 2013 - 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,10 +17,4 @@
* limitations under the License.
*/
/* WARNING: THIS IS A FILE GENERATED BY gennorm.js. DO NOT EDIT BY HAND. */
-// !depends nfkd/Zyyy.js
-// !depends nfd/Armn.js
-// !data normdata nfkd/Armn
-ilib.extend(ilib.data.norm, ilib.data.normdata);
-ilib.extend(ilib.data.norm.nfkd, ilib.data.nfkd_Armn);
-ilib.data.normdata = undefined;
-ilib.data.nfkd_Armn = undefined;
\ No newline at end of file
+// !data nfkd/Armn nfd/Armn nfkd/Zyyy nfd/Zyyy
diff --git a/js/lib/nfkd/Cyrl.js b/js/lib/nfkd/Cyrl.js
index 729aa051c2..1776603db4 100644
--- a/js/lib/nfkd/Cyrl.js
+++ b/js/lib/nfkd/Cyrl.js
@@ -1,7 +1,7 @@
/*
* Cyrl.js - include file for normalization data for a particular script
*
- * Copyright © 2013-2015, JEDLSoft
+ * Copyright © 2013 - 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,10 +17,4 @@
* limitations under the License.
*/
/* WARNING: THIS IS A FILE GENERATED BY gennorm.js. DO NOT EDIT BY HAND. */
-// !depends nfkd/Zyyy.js
-// !depends nfd/Cyrl.js
-// !data normdata nfkd/Cyrl
-ilib.extend(ilib.data.norm, ilib.data.normdata);
-ilib.extend(ilib.data.norm.nfkd, ilib.data.nfkd_Cyrl);
-ilib.data.normdata = undefined;
-ilib.data.nfkd_Cyrl = undefined;
\ No newline at end of file
+// !data nfkd/Cyrl nfd/Cyrl nfkd/Zyyy nfd/Zyyy
diff --git a/js/lib/nfkd/Geok.js b/js/lib/nfkd/Geok.js
index 2b92c3b0bc..817d558444 100644
--- a/js/lib/nfkd/Geok.js
+++ b/js/lib/nfkd/Geok.js
@@ -17,10 +17,4 @@
* limitations under the License.
*/
/* WARNING: THIS IS A FILE GENERATED BY gennorm.js. DO NOT EDIT BY HAND. */
-// !depends nfkd/Zyyy.js
-// !depends nfd/Geok.js
-// !data normdata nfkd/Geok
-ilib.extend(ilib.data.norm, ilib.data.normdata);
-ilib.extend(ilib.data.norm.nfkd, ilib.data.nfkd_Geok);
-ilib.data.normdata = undefined;
-ilib.data.nfkd_Geok = undefined;
\ No newline at end of file
+// !data nfkd/Geok nfd/Geok nfkd/Zyyy nfd/Zyyy
\ No newline at end of file
diff --git a/js/lib/nfkd/Geor.js b/js/lib/nfkd/Geor.js
index 633e0437a5..b0ece1a861 100644
--- a/js/lib/nfkd/Geor.js
+++ b/js/lib/nfkd/Geor.js
@@ -1,7 +1,7 @@
/*
* Geor.js - include file for normalization data for a particular script
*
- * Copyright © 2013-2015, JEDLSoft
+ * Copyright © 2013 - 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,10 +17,4 @@
* limitations under the License.
*/
/* WARNING: THIS IS A FILE GENERATED BY gennorm.js. DO NOT EDIT BY HAND. */
-// !depends nfkd/Zyyy.js
-// !depends nfd/Geor.js
-// !data normdata nfkd/Geor
-ilib.extend(ilib.data.norm, ilib.data.normdata);
-ilib.extend(ilib.data.norm.nfkd, ilib.data.nfkd_Geor);
-ilib.data.normdata = undefined;
-ilib.data.nfkd_Geor = undefined;
\ No newline at end of file
+// !data nfkd/Geor nfd/Geor nfkd/Zyyy nfd/Zyyy
diff --git a/js/lib/nfkd/Grek.js b/js/lib/nfkd/Grek.js
index a55d27b6d2..a850098537 100644
--- a/js/lib/nfkd/Grek.js
+++ b/js/lib/nfkd/Grek.js
@@ -1,7 +1,7 @@
/*
* Grek.js - include file for normalization data for a particular script
*
- * Copyright © 2013-2015, JEDLSoft
+ * Copyright © 2013 - 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,10 +17,4 @@
* limitations under the License.
*/
/* WARNING: THIS IS A FILE GENERATED BY gennorm.js. DO NOT EDIT BY HAND. */
-// !depends nfkd/Zyyy.js
-// !depends nfd/Grek.js
-// !data normdata nfkd/Grek
-ilib.extend(ilib.data.norm, ilib.data.normdata);
-ilib.extend(ilib.data.norm.nfkd, ilib.data.nfkd_Grek);
-ilib.data.normdata = undefined;
-ilib.data.nfkd_Grek = undefined;
\ No newline at end of file
+// !data nfkd/Grek nfd/Grek nfkd/Zyyy nfd/Zyyy
diff --git a/js/lib/nfkd/Hang.js b/js/lib/nfkd/Hang.js
index 5726363056..0aa348a371 100644
--- a/js/lib/nfkd/Hang.js
+++ b/js/lib/nfkd/Hang.js
@@ -1,7 +1,7 @@
/*
* Hang.js - include file for normalization data for a particular script
*
- * Copyright © 2013-2015, JEDLSoft
+ * Copyright © 2013 - 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,10 +17,4 @@
* limitations under the License.
*/
/* WARNING: THIS IS A FILE GENERATED BY gennorm.js. DO NOT EDIT BY HAND. */
-// !depends nfkd/Zyyy.js
-// !depends nfd/Hang.js
-// !data normdata nfkd/Hang
-ilib.extend(ilib.data.norm, ilib.data.normdata);
-ilib.extend(ilib.data.norm.nfkd, ilib.data.nfkd_Hang);
-ilib.data.normdata = undefined;
-ilib.data.nfkd_Hang = undefined;
\ No newline at end of file
+// !data nfkd/Hang nfd/Hang nfkd/Zyyy nfd/Zyyy
diff --git a/js/lib/nfkd/Hani.js b/js/lib/nfkd/Hani.js
index 81da7de75b..cbfa0aed93 100644
--- a/js/lib/nfkd/Hani.js
+++ b/js/lib/nfkd/Hani.js
@@ -1,7 +1,7 @@
/*
* Hani.js - include file for normalization data for a particular script
*
- * Copyright © 2013-2015, JEDLSoft
+ * Copyright © 2013 - 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,10 +17,4 @@
* limitations under the License.
*/
/* WARNING: THIS IS A FILE GENERATED BY gennorm.js. DO NOT EDIT BY HAND. */
-// !depends nfkd/Zyyy.js
-// !depends nfd/Hani.js
-// !data normdata nfkd/Hani
-ilib.extend(ilib.data.norm, ilib.data.normdata);
-ilib.extend(ilib.data.norm.nfkd, ilib.data.nfkd_Hani);
-ilib.data.normdata = undefined;
-ilib.data.nfkd_Hani = undefined;
\ No newline at end of file
+// !data nfkd/Hani nfd/Hani nfkd/Zyyy nfd/Zyyy
diff --git a/js/lib/nfkd/Hebr.js b/js/lib/nfkd/Hebr.js
index b2a4e70af6..d4d216c38d 100644
--- a/js/lib/nfkd/Hebr.js
+++ b/js/lib/nfkd/Hebr.js
@@ -1,7 +1,7 @@
/*
* Hebr.js - include file for normalization data for a particular script
*
- * Copyright © 2013-2015, JEDLSoft
+ * Copyright © 2013 - 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,10 +17,4 @@
* limitations under the License.
*/
/* WARNING: THIS IS A FILE GENERATED BY gennorm.js. DO NOT EDIT BY HAND. */
-// !depends nfkd/Zyyy.js
-// !depends nfd/Hebr.js
-// !data normdata nfkd/Hebr
-ilib.extend(ilib.data.norm, ilib.data.normdata);
-ilib.extend(ilib.data.norm.nfkd, ilib.data.nfkd_Hebr);
-ilib.data.normdata = undefined;
-ilib.data.nfkd_Hebr = undefined;
\ No newline at end of file
+// !data nfkd/Hebr nfd/Hebr nfkd/Zyyy nfd/Zyyy
diff --git a/js/lib/nfkd/Hira.js b/js/lib/nfkd/Hira.js
index 495127f807..5ace58ad14 100644
--- a/js/lib/nfkd/Hira.js
+++ b/js/lib/nfkd/Hira.js
@@ -1,7 +1,7 @@
/*
* Hira.js - include file for normalization data for a particular script
*
- * Copyright © 2013-2015, JEDLSoft
+ * Copyright © 2013 - 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,10 +17,4 @@
* limitations under the License.
*/
/* WARNING: THIS IS A FILE GENERATED BY gennorm.js. DO NOT EDIT BY HAND. */
-// !depends nfkd/Zyyy.js
-// !depends nfd/Hira.js
-// !data normdata nfkd/Hira
-ilib.extend(ilib.data.norm, ilib.data.normdata);
-ilib.extend(ilib.data.norm.nfkd, ilib.data.nfkd_Hira);
-ilib.data.normdata = undefined;
-ilib.data.nfkd_Hira = undefined;
\ No newline at end of file
+// !data nfkd/Hira nfd/Hira nfkd/Zyyy nfd/Zyyy
diff --git a/js/lib/nfkd/Kana.js b/js/lib/nfkd/Kana.js
index 3e132263cc..d446aec65c 100644
--- a/js/lib/nfkd/Kana.js
+++ b/js/lib/nfkd/Kana.js
@@ -1,7 +1,7 @@
/*
* Kana.js - include file for normalization data for a particular script
*
- * Copyright © 2013-2015, JEDLSoft
+ * Copyright © 2013 - 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,10 +17,4 @@
* limitations under the License.
*/
/* WARNING: THIS IS A FILE GENERATED BY gennorm.js. DO NOT EDIT BY HAND. */
-// !depends nfkd/Zyyy.js
-// !depends nfd/Kana.js
-// !data normdata nfkd/Kana
-ilib.extend(ilib.data.norm, ilib.data.normdata);
-ilib.extend(ilib.data.norm.nfkd, ilib.data.nfkd_Kana);
-ilib.data.normdata = undefined;
-ilib.data.nfkd_Kana = undefined;
\ No newline at end of file
+// !data nfkd/Kana nfd/Kana nfkd/Zyyy nfd/Zyyy
diff --git a/js/lib/nfkd/Laoo.js b/js/lib/nfkd/Laoo.js
index 3a9ac553cc..b606e8305f 100644
--- a/js/lib/nfkd/Laoo.js
+++ b/js/lib/nfkd/Laoo.js
@@ -1,7 +1,7 @@
/*
* Laoo.js - include file for normalization data for a particular script
*
- * Copyright © 2013-2015, JEDLSoft
+ * Copyright © 2013 - 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,10 +17,4 @@
* limitations under the License.
*/
/* WARNING: THIS IS A FILE GENERATED BY gennorm.js. DO NOT EDIT BY HAND. */
-// !depends nfkd/Zyyy.js
-// !depends nfd/Laoo.js
-// !data normdata nfkd/Laoo
-ilib.extend(ilib.data.norm, ilib.data.normdata);
-ilib.extend(ilib.data.norm.nfkd, ilib.data.nfkd_Laoo);
-ilib.data.normdata = undefined;
-ilib.data.nfkd_Laoo = undefined;
\ No newline at end of file
+// !data nfkd/Laoo nfd/Laoo nfkd/Zyyy nfd/Zyyy
diff --git a/js/lib/nfkd/Latn.js b/js/lib/nfkd/Latn.js
index 2be6963be7..65207a0d13 100644
--- a/js/lib/nfkd/Latn.js
+++ b/js/lib/nfkd/Latn.js
@@ -1,7 +1,7 @@
/*
* Latn.js - include file for normalization data for a particular script
*
- * Copyright © 2013-2015, JEDLSoft
+ * Copyright © 2013 - 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,10 +17,4 @@
* limitations under the License.
*/
/* WARNING: THIS IS A FILE GENERATED BY gennorm.js. DO NOT EDIT BY HAND. */
-// !depends nfkd/Zyyy.js
-// !depends nfd/Latn.js
-// !data normdata nfkd/Latn
-ilib.extend(ilib.data.norm, ilib.data.normdata);
-ilib.extend(ilib.data.norm.nfkd, ilib.data.nfkd_Latn);
-ilib.data.normdata = undefined;
-ilib.data.nfkd_Latn = undefined;
\ No newline at end of file
+// !data nfkd/Latn nfd/Latn nfkd/Zyyy nfd/Zyyy
diff --git a/js/lib/nfkd/Tfng.js b/js/lib/nfkd/Tfng.js
index b03b46da05..dc9ad2d1a2 100644
--- a/js/lib/nfkd/Tfng.js
+++ b/js/lib/nfkd/Tfng.js
@@ -1,7 +1,7 @@
/*
* Tfng.js - include file for normalization data for a particular script
*
- * Copyright © 2013-2015, JEDLSoft
+ * Copyright © 2013 - 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,10 +17,4 @@
* limitations under the License.
*/
/* WARNING: THIS IS A FILE GENERATED BY gennorm.js. DO NOT EDIT BY HAND. */
-// !depends nfkd/Zyyy.js
-// !depends nfd/Tfng.js
-// !data normdata nfkd/Tfng
-ilib.extend(ilib.data.norm, ilib.data.normdata);
-ilib.extend(ilib.data.norm.nfkd, ilib.data.nfkd_Tfng);
-ilib.data.normdata = undefined;
-ilib.data.nfkd_Tfng = undefined;
\ No newline at end of file
+// !data nfkd/Tfng nfd/Tfng nfkd/Zyyy nfd/Zyyy
diff --git a/js/lib/nfkd/Thai.js b/js/lib/nfkd/Thai.js
index a4b3adb7d6..27605e1222 100644
--- a/js/lib/nfkd/Thai.js
+++ b/js/lib/nfkd/Thai.js
@@ -1,7 +1,7 @@
/*
* Thai.js - include file for normalization data for a particular script
*
- * Copyright © 2013-2015, JEDLSoft
+ * Copyright © 2013 - 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,10 +17,4 @@
* limitations under the License.
*/
/* WARNING: THIS IS A FILE GENERATED BY gennorm.js. DO NOT EDIT BY HAND. */
-// !depends nfkd/Zyyy.js
-// !depends nfd/Thai.js
-// !data normdata nfkd/Thai
-ilib.extend(ilib.data.norm, ilib.data.normdata);
-ilib.extend(ilib.data.norm.nfkd, ilib.data.nfkd_Thai);
-ilib.data.normdata = undefined;
-ilib.data.nfkd_Thai = undefined;
\ No newline at end of file
+// !data nfkd/Thai nfd/Thai nfkd/Zyyy nfd/Zyyy
diff --git a/js/lib/nfkd/Tibt.js b/js/lib/nfkd/Tibt.js
index eeb6b8b847..c0208123bb 100644
--- a/js/lib/nfkd/Tibt.js
+++ b/js/lib/nfkd/Tibt.js
@@ -1,7 +1,7 @@
/*
* Tibt.js - include file for normalization data for a particular script
*
- * Copyright © 2013-2015, JEDLSoft
+ * Copyright © 2013 - 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,10 +17,4 @@
* limitations under the License.
*/
/* WARNING: THIS IS A FILE GENERATED BY gennorm.js. DO NOT EDIT BY HAND. */
-// !depends nfkd/Zyyy.js
-// !depends nfd/Tibt.js
-// !data normdata nfkd/Tibt
-ilib.extend(ilib.data.norm, ilib.data.normdata);
-ilib.extend(ilib.data.norm.nfkd, ilib.data.nfkd_Tibt);
-ilib.data.normdata = undefined;
-ilib.data.nfkd_Tibt = undefined;
\ No newline at end of file
+// !data nfkd/Tibt nfd/Tibt nfkd/Zyyy nfd/Zyyy
diff --git a/js/lib/nfkd/Zyyy.js b/js/lib/nfkd/Zyyy.js
index 495d27af75..45d9c11385 100644
--- a/js/lib/nfkd/Zyyy.js
+++ b/js/lib/nfkd/Zyyy.js
@@ -1,7 +1,7 @@
/*
* Zyyy.js - include file for normalization data for a particular script
*
- * Copyright © 2013-2015, JEDLSoft
+ * Copyright © 2013 - 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,9 +17,4 @@
* limitations under the License.
*/
/* WARNING: THIS IS A FILE GENERATED BY gennorm.js. DO NOT EDIT BY HAND. */
-// !depends nfd/Zyyy.js
-// !data normdata nfkd/Zyyy
-ilib.extend(ilib.data.norm, ilib.data.normdata);
-ilib.extend(ilib.data.norm.nfkd, ilib.data.nfkd_Zyyy);
-ilib.data.normdata = undefined;
-ilib.data.nfkd_Zyyy = undefined;
\ No newline at end of file
+// !data nfkd/Zyyy nfd/Zyyy
diff --git a/js/lib/nfkd/all.js b/js/lib/nfkd/all.js
index b52c2bc5c9..e328f4e36b 100644
--- a/js/lib/nfkd/all.js
+++ b/js/lib/nfkd/all.js
@@ -1,7 +1,7 @@
/*
* all.js - include file for normalization data for a particular script
*
- * Copyright © 2013-2015, JEDLSoft
+ * Copyright © 2013 - 2018, JEDLSoft
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,9 +17,4 @@
* limitations under the License.
*/
/* WARNING: THIS IS A FILE GENERATED BY gennorm.js. DO NOT EDIT BY HAND. */
-// !depends nfd/all.js
-// !data normdata nfkd/all
-ilib.extend(ilib.data.norm, ilib.data.normdata);
-ilib.extend(ilib.data.norm.nfkd, ilib.data.nfkd_all);
-ilib.data.normdata = undefined;
-ilib.data.nfkd_all = undefined;
\ No newline at end of file
+// !data nfkd/all nfd/all
diff --git a/node_modules/.bin/nodeunit b/js/node_modules/.bin/nodeunit
similarity index 100%
rename from node_modules/.bin/nodeunit
rename to js/node_modules/.bin/nodeunit
diff --git a/node_modules/nodeunit/.travis.yml b/js/node_modules/nodeunit/.travis.yml
similarity index 100%
rename from node_modules/nodeunit/.travis.yml
rename to js/node_modules/nodeunit/.travis.yml
diff --git a/node_modules/nodeunit/CONTRIBUTORS.md b/js/node_modules/nodeunit/CONTRIBUTORS.md
similarity index 100%
rename from node_modules/nodeunit/CONTRIBUTORS.md
rename to js/node_modules/nodeunit/CONTRIBUTORS.md
diff --git a/node_modules/nodeunit/LICENSE b/js/node_modules/nodeunit/LICENSE
similarity index 100%
rename from node_modules/nodeunit/LICENSE
rename to js/node_modules/nodeunit/LICENSE
diff --git a/node_modules/nodeunit/Makefile b/js/node_modules/nodeunit/Makefile
similarity index 100%
rename from node_modules/nodeunit/Makefile
rename to js/node_modules/nodeunit/Makefile
diff --git a/node_modules/nodeunit/README.md b/js/node_modules/nodeunit/README.md
similarity index 100%
rename from node_modules/nodeunit/README.md
rename to js/node_modules/nodeunit/README.md
diff --git a/node_modules/nodeunit/bin/nodeunit b/js/node_modules/nodeunit/bin/nodeunit
similarity index 100%
rename from node_modules/nodeunit/bin/nodeunit
rename to js/node_modules/nodeunit/bin/nodeunit
diff --git a/node_modules/nodeunit/bin/nodeunit.json b/js/node_modules/nodeunit/bin/nodeunit.json
similarity index 100%
rename from node_modules/nodeunit/bin/nodeunit.json
rename to js/node_modules/nodeunit/bin/nodeunit.json
diff --git a/node_modules/nodeunit/deps/async.js b/js/node_modules/nodeunit/deps/async.js
similarity index 100%
rename from node_modules/nodeunit/deps/async.js
rename to js/node_modules/nodeunit/deps/async.js
diff --git a/node_modules/nodeunit/deps/json2.js b/js/node_modules/nodeunit/deps/json2.js
similarity index 100%
rename from node_modules/nodeunit/deps/json2.js
rename to js/node_modules/nodeunit/deps/json2.js
diff --git a/node_modules/nodeunit/doc/nodeunit.md b/js/node_modules/nodeunit/doc/nodeunit.md
similarity index 100%
rename from node_modules/nodeunit/doc/nodeunit.md
rename to js/node_modules/nodeunit/doc/nodeunit.md
diff --git a/node_modules/nodeunit/examples/browser/nodeunit.js b/js/node_modules/nodeunit/examples/browser/nodeunit.js
similarity index 100%
rename from node_modules/nodeunit/examples/browser/nodeunit.js
rename to js/node_modules/nodeunit/examples/browser/nodeunit.js
diff --git a/node_modules/nodeunit/examples/browser/suite1.js b/js/node_modules/nodeunit/examples/browser/suite1.js
similarity index 100%
rename from node_modules/nodeunit/examples/browser/suite1.js
rename to js/node_modules/nodeunit/examples/browser/suite1.js
diff --git a/node_modules/nodeunit/examples/browser/suite2.js b/js/node_modules/nodeunit/examples/browser/suite2.js
similarity index 100%
rename from node_modules/nodeunit/examples/browser/suite2.js
rename to js/node_modules/nodeunit/examples/browser/suite2.js
diff --git a/node_modules/nodeunit/examples/browser/suite3.js b/js/node_modules/nodeunit/examples/browser/suite3.js
similarity index 100%
rename from node_modules/nodeunit/examples/browser/suite3.js
rename to js/node_modules/nodeunit/examples/browser/suite3.js
diff --git a/node_modules/nodeunit/examples/browser/test.html b/js/node_modules/nodeunit/examples/browser/test.html
similarity index 100%
rename from node_modules/nodeunit/examples/browser/test.html
rename to js/node_modules/nodeunit/examples/browser/test.html
diff --git a/node_modules/nodeunit/examples/nested/nested_reporter_test.unit.js b/js/node_modules/nodeunit/examples/nested/nested_reporter_test.unit.js
similarity index 100%
rename from node_modules/nodeunit/examples/nested/nested_reporter_test.unit.js
rename to js/node_modules/nodeunit/examples/nested/nested_reporter_test.unit.js
diff --git a/node_modules/nodeunit/img/example_fail.png b/js/node_modules/nodeunit/img/example_fail.png
similarity index 100%
rename from node_modules/nodeunit/img/example_fail.png
rename to js/node_modules/nodeunit/img/example_fail.png
diff --git a/node_modules/nodeunit/img/example_machineout.png b/js/node_modules/nodeunit/img/example_machineout.png
similarity index 100%
rename from node_modules/nodeunit/img/example_machineout.png
rename to js/node_modules/nodeunit/img/example_machineout.png
diff --git a/node_modules/nodeunit/img/example_pass.png b/js/node_modules/nodeunit/img/example_pass.png
similarity index 100%
rename from node_modules/nodeunit/img/example_pass.png
rename to js/node_modules/nodeunit/img/example_pass.png
diff --git a/node_modules/nodeunit/index.js b/js/node_modules/nodeunit/index.js
similarity index 100%
rename from node_modules/nodeunit/index.js
rename to js/node_modules/nodeunit/index.js
diff --git a/node_modules/nodeunit/lib/assert.js b/js/node_modules/nodeunit/lib/assert.js
similarity index 100%
rename from node_modules/nodeunit/lib/assert.js
rename to js/node_modules/nodeunit/lib/assert.js
diff --git a/node_modules/nodeunit/lib/core.js b/js/node_modules/nodeunit/lib/core.js
similarity index 100%
rename from node_modules/nodeunit/lib/core.js
rename to js/node_modules/nodeunit/lib/core.js
diff --git a/node_modules/nodeunit/lib/nodeunit.js b/js/node_modules/nodeunit/lib/nodeunit.js
similarity index 100%
rename from node_modules/nodeunit/lib/nodeunit.js
rename to js/node_modules/nodeunit/lib/nodeunit.js
diff --git a/node_modules/nodeunit/lib/reporters/browser.js b/js/node_modules/nodeunit/lib/reporters/browser.js
similarity index 100%
rename from node_modules/nodeunit/lib/reporters/browser.js
rename to js/node_modules/nodeunit/lib/reporters/browser.js
diff --git a/node_modules/nodeunit/lib/reporters/default.js b/js/node_modules/nodeunit/lib/reporters/default.js
similarity index 100%
rename from node_modules/nodeunit/lib/reporters/default.js
rename to js/node_modules/nodeunit/lib/reporters/default.js
diff --git a/node_modules/nodeunit/lib/reporters/eclipse.js b/js/node_modules/nodeunit/lib/reporters/eclipse.js
similarity index 100%
rename from node_modules/nodeunit/lib/reporters/eclipse.js
rename to js/node_modules/nodeunit/lib/reporters/eclipse.js
diff --git a/node_modules/nodeunit/lib/reporters/html.js b/js/node_modules/nodeunit/lib/reporters/html.js
similarity index 100%
rename from node_modules/nodeunit/lib/reporters/html.js
rename to js/node_modules/nodeunit/lib/reporters/html.js
diff --git a/node_modules/nodeunit/lib/reporters/index.js b/js/node_modules/nodeunit/lib/reporters/index.js
similarity index 100%
rename from node_modules/nodeunit/lib/reporters/index.js
rename to js/node_modules/nodeunit/lib/reporters/index.js
diff --git a/node_modules/nodeunit/lib/reporters/junit.js b/js/node_modules/nodeunit/lib/reporters/junit.js
similarity index 100%
rename from node_modules/nodeunit/lib/reporters/junit.js
rename to js/node_modules/nodeunit/lib/reporters/junit.js
diff --git a/node_modules/nodeunit/lib/reporters/lcov.js b/js/node_modules/nodeunit/lib/reporters/lcov.js
similarity index 100%
rename from node_modules/nodeunit/lib/reporters/lcov.js
rename to js/node_modules/nodeunit/lib/reporters/lcov.js
diff --git a/node_modules/nodeunit/lib/reporters/machineout.js b/js/node_modules/nodeunit/lib/reporters/machineout.js
similarity index 100%
rename from node_modules/nodeunit/lib/reporters/machineout.js
rename to js/node_modules/nodeunit/lib/reporters/machineout.js
diff --git a/node_modules/nodeunit/lib/reporters/minimal.js b/js/node_modules/nodeunit/lib/reporters/minimal.js
similarity index 100%
rename from node_modules/nodeunit/lib/reporters/minimal.js
rename to js/node_modules/nodeunit/lib/reporters/minimal.js
diff --git a/node_modules/nodeunit/lib/reporters/nested.js b/js/node_modules/nodeunit/lib/reporters/nested.js
similarity index 100%
rename from node_modules/nodeunit/lib/reporters/nested.js
rename to js/node_modules/nodeunit/lib/reporters/nested.js
diff --git a/node_modules/nodeunit/lib/reporters/skip_passed.js b/js/node_modules/nodeunit/lib/reporters/skip_passed.js
similarity index 100%
rename from node_modules/nodeunit/lib/reporters/skip_passed.js
rename to js/node_modules/nodeunit/lib/reporters/skip_passed.js
diff --git a/node_modules/nodeunit/lib/reporters/tap.js b/js/node_modules/nodeunit/lib/reporters/tap.js
similarity index 100%
rename from node_modules/nodeunit/lib/reporters/tap.js
rename to js/node_modules/nodeunit/lib/reporters/tap.js
diff --git a/node_modules/nodeunit/lib/reporters/verbose.js b/js/node_modules/nodeunit/lib/reporters/verbose.js
similarity index 100%
rename from node_modules/nodeunit/lib/reporters/verbose.js
rename to js/node_modules/nodeunit/lib/reporters/verbose.js
diff --git a/node_modules/nodeunit/lib/track.js b/js/node_modules/nodeunit/lib/track.js
similarity index 100%
rename from node_modules/nodeunit/lib/track.js
rename to js/node_modules/nodeunit/lib/track.js
diff --git a/node_modules/nodeunit/lib/types.js b/js/node_modules/nodeunit/lib/types.js
similarity index 100%
rename from node_modules/nodeunit/lib/types.js
rename to js/node_modules/nodeunit/lib/types.js
diff --git a/node_modules/nodeunit/lib/utils.js b/js/node_modules/nodeunit/lib/utils.js
similarity index 100%
rename from node_modules/nodeunit/lib/utils.js
rename to js/node_modules/nodeunit/lib/utils.js
diff --git a/node_modules/nodeunit/man1/nodeunit.1 b/js/node_modules/nodeunit/man1/nodeunit.1
similarity index 100%
rename from node_modules/nodeunit/man1/nodeunit.1
rename to js/node_modules/nodeunit/man1/nodeunit.1
diff --git a/node_modules/nodeunit/nodelint.cfg b/js/node_modules/nodeunit/nodelint.cfg
similarity index 100%
rename from node_modules/nodeunit/nodelint.cfg
rename to js/node_modules/nodeunit/nodelint.cfg
diff --git a/node_modules/nodeunit/package.json b/js/node_modules/nodeunit/package.json
similarity index 100%
rename from node_modules/nodeunit/package.json
rename to js/node_modules/nodeunit/package.json
diff --git a/node_modules/nodeunit/share/junit.xml.ejs b/js/node_modules/nodeunit/share/junit.xml.ejs
similarity index 100%
rename from node_modules/nodeunit/share/junit.xml.ejs
rename to js/node_modules/nodeunit/share/junit.xml.ejs
diff --git a/node_modules/nodeunit/share/license.js b/js/node_modules/nodeunit/share/license.js
similarity index 100%
rename from node_modules/nodeunit/share/license.js
rename to js/node_modules/nodeunit/share/license.js
diff --git a/node_modules/nodeunit/share/nodeunit.css b/js/node_modules/nodeunit/share/nodeunit.css
similarity index 100%
rename from node_modules/nodeunit/share/nodeunit.css
rename to js/node_modules/nodeunit/share/nodeunit.css
diff --git a/node_modules/nodeunit/test/fixtures/coffee/mock_coffee_module.coffee b/js/node_modules/nodeunit/test/fixtures/coffee/mock_coffee_module.coffee
similarity index 100%
rename from node_modules/nodeunit/test/fixtures/coffee/mock_coffee_module.coffee
rename to js/node_modules/nodeunit/test/fixtures/coffee/mock_coffee_module.coffee
diff --git a/node_modules/nodeunit/test/fixtures/dir/example_test_sub.js b/js/node_modules/nodeunit/test/fixtures/dir/example_test_sub.js
similarity index 100%
rename from node_modules/nodeunit/test/fixtures/dir/example_test_sub.js
rename to js/node_modules/nodeunit/test/fixtures/dir/example_test_sub.js
diff --git a/node_modules/nodeunit/test/fixtures/dir/mock_module3.js b/js/node_modules/nodeunit/test/fixtures/dir/mock_module3.js
similarity index 100%
rename from node_modules/nodeunit/test/fixtures/dir/mock_module3.js
rename to js/node_modules/nodeunit/test/fixtures/dir/mock_module3.js
diff --git a/node_modules/nodeunit/test/fixtures/dir/mock_module4.js b/js/node_modules/nodeunit/test/fixtures/dir/mock_module4.js
similarity index 100%
rename from node_modules/nodeunit/test/fixtures/dir/mock_module4.js
rename to js/node_modules/nodeunit/test/fixtures/dir/mock_module4.js
diff --git a/node_modules/nodeunit/test/fixtures/example_test.js b/js/node_modules/nodeunit/test/fixtures/example_test.js
similarity index 100%
rename from node_modules/nodeunit/test/fixtures/example_test.js
rename to js/node_modules/nodeunit/test/fixtures/example_test.js
diff --git a/node_modules/nodeunit/test/fixtures/mock_module1.js b/js/node_modules/nodeunit/test/fixtures/mock_module1.js
similarity index 100%
rename from node_modules/nodeunit/test/fixtures/mock_module1.js
rename to js/node_modules/nodeunit/test/fixtures/mock_module1.js
diff --git a/node_modules/nodeunit/test/fixtures/mock_module2.js b/js/node_modules/nodeunit/test/fixtures/mock_module2.js
similarity index 100%
rename from node_modules/nodeunit/test/fixtures/mock_module2.js
rename to js/node_modules/nodeunit/test/fixtures/mock_module2.js
diff --git a/node_modules/nodeunit/test/fixtures/raw_jscode1.js b/js/node_modules/nodeunit/test/fixtures/raw_jscode1.js
similarity index 100%
rename from node_modules/nodeunit/test/fixtures/raw_jscode1.js
rename to js/node_modules/nodeunit/test/fixtures/raw_jscode1.js
diff --git a/node_modules/nodeunit/test/fixtures/raw_jscode2.js b/js/node_modules/nodeunit/test/fixtures/raw_jscode2.js
similarity index 100%
rename from node_modules/nodeunit/test/fixtures/raw_jscode2.js
rename to js/node_modules/nodeunit/test/fixtures/raw_jscode2.js
diff --git a/node_modules/nodeunit/test/fixtures/raw_jscode3.js b/js/node_modules/nodeunit/test/fixtures/raw_jscode3.js
similarity index 100%
rename from node_modules/nodeunit/test/fixtures/raw_jscode3.js
rename to js/node_modules/nodeunit/test/fixtures/raw_jscode3.js
diff --git a/node_modules/nodeunit/test/test-base.js b/js/node_modules/nodeunit/test/test-base.js
similarity index 100%
rename from node_modules/nodeunit/test/test-base.js
rename to js/node_modules/nodeunit/test/test-base.js
diff --git a/node_modules/nodeunit/test/test-bettererrors.js b/js/node_modules/nodeunit/test/test-bettererrors.js
similarity index 100%
rename from node_modules/nodeunit/test/test-bettererrors.js
rename to js/node_modules/nodeunit/test/test-bettererrors.js
diff --git a/node_modules/nodeunit/test/test-cli.js b/js/node_modules/nodeunit/test/test-cli.js
similarity index 100%
rename from node_modules/nodeunit/test/test-cli.js
rename to js/node_modules/nodeunit/test/test-cli.js
diff --git a/node_modules/nodeunit/test/test-failing-callbacks.js b/js/node_modules/nodeunit/test/test-failing-callbacks.js
similarity index 100%
rename from node_modules/nodeunit/test/test-failing-callbacks.js
rename to js/node_modules/nodeunit/test/test-failing-callbacks.js
diff --git a/node_modules/nodeunit/test/test-httputil.js b/js/node_modules/nodeunit/test/test-httputil.js
similarity index 100%
rename from node_modules/nodeunit/test/test-httputil.js
rename to js/node_modules/nodeunit/test/test-httputil.js
diff --git a/node_modules/nodeunit/test/test-runfiles.js b/js/node_modules/nodeunit/test/test-runfiles.js
similarity index 100%
rename from node_modules/nodeunit/test/test-runfiles.js
rename to js/node_modules/nodeunit/test/test-runfiles.js
diff --git a/node_modules/nodeunit/test/test-runmodule.js b/js/node_modules/nodeunit/test/test-runmodule.js
similarity index 100%
rename from node_modules/nodeunit/test/test-runmodule.js
rename to js/node_modules/nodeunit/test/test-runmodule.js
diff --git a/node_modules/nodeunit/test/test-runtest.js b/js/node_modules/nodeunit/test/test-runtest.js
similarity index 100%
rename from node_modules/nodeunit/test/test-runtest.js
rename to js/node_modules/nodeunit/test/test-runtest.js
diff --git a/node_modules/nodeunit/test/test-sandbox.js b/js/node_modules/nodeunit/test/test-sandbox.js
similarity index 100%
rename from node_modules/nodeunit/test/test-sandbox.js
rename to js/node_modules/nodeunit/test/test-sandbox.js
diff --git a/node_modules/nodeunit/test/test-testcase-legacy.js b/js/node_modules/nodeunit/test/test-testcase-legacy.js
similarity index 100%
rename from node_modules/nodeunit/test/test-testcase-legacy.js
rename to js/node_modules/nodeunit/test/test-testcase-legacy.js
diff --git a/node_modules/nodeunit/test/test-testcase.js b/js/node_modules/nodeunit/test/test-testcase.js
similarity index 100%
rename from node_modules/nodeunit/test/test-testcase.js
rename to js/node_modules/nodeunit/test/test-testcase.js
diff --git a/node_modules/nodeunit/test/test.html b/js/node_modules/nodeunit/test/test.html
similarity index 100%
rename from node_modules/nodeunit/test/test.html
rename to js/node_modules/nodeunit/test/test.html
diff --git a/js/runWebpack.sh b/js/runWebpack.sh
new file mode 100755
index 0000000000..e7924dd6db
--- /dev/null
+++ b/js/runWebpack.sh
@@ -0,0 +1,60 @@
+#!/bin/sh
+
+echo "*** Running Webpack for iLib build ***"
+
+argsCount=$#
+fileName=$0
+assembly=$1
+size=$2
+sizecompilation=$3
+target=$4
+localeOption=$5
+
+case "$localeOption" in
+ "locales_default")
+ echo "locales_default"
+ locales="en-AU,en-CA,en-GB,en-IN,en-NG,en-PH,en-PK,en-SG,en-US,en-ZA,de-DE,fr-CA,fr-FR,es-AR,es-ES,es-MX,id-ID,it-IT,ja-JP,ko-KR,pt-BR,ru-RU,tr-TR,vi-VN,zxx-XX,zh-Hans-CN,zh-Hant-HK,zh-Hant-TW,zh-Hans-SG"
+ ;;
+ "locales_unittest")
+ echo "locale_unittest"
+ locales="aa-DJ,af-NA,agq-CM,ak-GH,am-ET,ar-AE,ar-BH,ar-DJ,ar-DZ,ar-EG,ar-IQ,ar-JO,ar-KW,ar-LB,ar-LY,ar-MA,ar-MR,ar-OM,ar-QA,ar-SA,ar-SD,ar-SY,ar-TN,ar-YE,asa-TZ,as-IN,az-Latn-AZ,bas-CM,be-BY,bem-ZM,bg-BG,bh-IN,bm-ML,bn-IN,br-FR,bs-BS,bs-Cyrl-BA,bs-Latn-BA,bs-ME,ca-FR,cop-EG,cs-CZ,da-DK,de-AT,de-DE,el-GR,en-AM,en-AU,en-CA,en-ET,en-GB,en-GH,en-GM,en-HK,en-IE,en-IN,en-IS,en-KE,en-LK,en-LR,en-MW,en-MY,en-NG,en-NZ,en-PA,en-PH,en-PK,en-PR,en-RW,en-SD,en-SG,en-SL,en-TZ,en-UG,en-US,en-ZA,en-ZM,es-AR,es-BO,es-CL,es-CO,es-CR,es-DO,es-EC,es-ES,es-GQ,es-GT,es-HN,es-MX,es-NI,es-PA,es-PE,es-PR,es-PY,es-SV,es-UY,es-VE,et-EE,fa-AF,fa-IR,ff-SN,fi-FI,fj-FJ,fo-FO,fr-AD,fr-BE,fr-BF,fr-BJ,fr-CA,fr-CD,fr-CF,fr-CG,fr-CH,fr-CI,fr-CM,fr-DJ,fr-DZ,fr-FR,fr-GA,fr-GN,fr-LB,fr-LU,fr-MG,fr-ML,fr-RW,fr-SN,fr-TG,fr-YT,ga-IE,gl-ES,gu-IN,ha-Latn-NG,he-IL,hi-IN,hr-HR,hr-ME,hu-HU,hy-AZ,hy-AM,id-ID,id-MY,it-CH,it-IT,it-SM,ja-JP,ka-IR,kk-Cyrl-KZ,km-KH,kn-IN,ko-KR,ks-Arab-IN,ku-Arab-IQ,ku-Arab-IR,ku-IR,lg-UG,ln-CF,lt-LT,lv-LV,fr-Latn-MA,mi-CK,mk-MK,ml-IN,mm-MM,mn-CN,mn-Cyrl-MN,mr-IN,ms-BN,ms-MY,ne-NP,nl-BE,nl-NL,nb-NO,nn-NO,no-NO,no-SJ,om-ET,or-IN,os-RU,pa-Arab,pa-IN,pa-Arab-PK,pl-PL,ps-AF,pt-AO,pt-BR,pt-CV,pt-GW,pt-GQ,pt-MO,pt-MZ,pt-PT,pt-ST,pt-TL,ro-RO,ro-RS,ru-GE,ru-KG,ru-KZ,ru-RU,ru-TM,shi-Tfng-MA,si-LK,sk-SK,sl-SI,sl-SL,so-ET,so-SO,sq-AL,sq-ME,sq-MK,sr-Cyrl-BA,sr-Latn-BA,sr-Latn-RS,sr-Latn-ME,sr-RS,sr-Latn-RS,ss-ZA,st-LS,sv-FI,sv-SE,sw-KE,sw-UG,ta-IN,ta-LK,ta-MY,ta-SG,te-IN,th-TH,tr-TR,uk-UA,ur-IN,ur-PK,uz-AF,uz-Arab-AF,uz-Cyrl-UZ,uz-Latn-UZ,uz-UZ,vai-Latn-LR,vi-VN,zh-Hans-CN,zh-Hant-HK,zh-Hans-HK,zh-Hans-MY,zh-Hant-TW,zh-Hans-MO,zh-Hant-MO,zh-Hans-SG,zh-Hant-US,zu-ZA,zxx-Cyrl-XX,zxx-Hans-XX,zxx-Hebr-XX,zxx-XX"
+ ;;
+ "locales_demo")
+ echo "locale_demo"
+ locales="aa-DJ,af-NA,af-ZA,agq-CM,ak-GH,am-ET,ar-AE,ar-BH,ar-DJ,ar-DZ,ar-EG,ar-IQ,ar-JO,ar-KW,ar-LB,ar-LY,ar-MA,ar-MR,ar-OM,ar-QA,ar-SA,ar-SD,ar-SY,ar-TN,ar-YE,as-IN,asa-TZ,az-AZ,bas-CM,be-BY,bem-ZM,bg-BG,bh-IN,bm-ML,bn-IN,br-FR,bs-Cyrl-BA,bs-Latn-BA,bs-ME,ca-FR,cop-EG,cs-CZ,da-DK,de-AT,de-CH,de-DE,el-GR,en-AU,en-CA,en-ET,en-GB,en-GH,en-GM,en-HK,en-IE,en-IN,en-KE,en-LK,en-LR,en-MW,en-MY,en-NG,en-NZ,en-PH,en-PK,en-PR,en-RW,en-SG,en-SL,en-TZ,en-UG,en-US,en-ZA,en-ZM,es-AR,es-CO,es-CR,es-DO,es-EC,es-ES,es-GQ,es-GT,es-HN,es-MX,es-SV,es-UY,es-VE,et-EE,fa-AF,fa-IR,ff-SN,fi-FI,fj-FJ,fr-AD,fr-BE,fr-BF,fr-BJ,fr-CA,fr-CD,fr-CF,fr-CG,fr-CH,fr-CI,fr-CM,fr-DJ,fr-DZ,fr-FR,fr-GA,fr-GN,fr-LB,fr-LU,fr-MG,fr-ML,fr-RW,fr-SN,fr-TG,fr-YT,ga-IE,gl-ES,gu-IN,ha-Latn-NG,he-IL,hi-IN,hr-HR,hr-ME,hu-HU,hy-AM,hy-AZ,id-ID,id-MY,it-CH,it-IT,it-SM,ja-JP,ka-IR,kk-Cyrl-KZ,km-KH,kn-IN,ko-KR,ks-Arab-IN,ku-IR,lg-UG,ln-CF,lt-LT,lv-LV,mi-CK,mk-MK,ml-IN,mn-CN,mr-IN,ms-BN,ms-MY,nb-NO,ne-IN,nl-BE,nl-CW,nl-GF,nl-NL,nl-SR,no-BV,no-NO,no-SJ,om-ET,or-IN,os-RU,pa-Arab-PK,pl-PL,pt-AO,pt-BR,pt-CV,pt-GW,pt-MO,pt-MZ,pt-PT,pt-ST,pt-TL,ro-RO,ro-RS,ru-KG,ru-KZ,ru-RU,ru-TM,si-LK,sk-SK,sl-SI,so-ET,so-SO,sq-AL,sq-ME,sq-MK,sr-Cyrl-BA,sr-Latn-BA,sr-Latn-ME,sr-Latn-RS,sr-RS,ss-ZA,st-LS,sv-FI,sv-SE,sw-UG,ta-LK,ta-MY,ta-SG,te-IN,th-TH,tr-TR,uk-UA,ur-IN,ur-PK,uz-AF,uz-Arab-AF,uz-Cyrl-UZ,uz-Latn-UZ,vai-Latn-LR,vi-VN,zh-Hans-CN,zh-Hans-MO,zh-Hans-MY,zh-Hans-SG,zh-Hant-HK,zh-Hant-TW,zh-Hant-US,zu-ZA,zxx-Cyrl-XX,zxx-Hans-XX,zxx-Hebr-XX,zxx-XX"
+ ;;
+esac
+
+cd js;
+
+run_webpack()
+{
+ if [ 4 -eq $argsCount ]
+ then
+ echo "argsCount:$argsCount"
+ echo "fileName:$fileName"
+ echo "assembly:$assembly"
+ echo "size:$size"
+ echo "sizecompilation:$sizecompilation"
+ echo "target:$target"
+
+ webpack --env.assembly=$assembly --env.size=$size --env.compilation=$sizecompilation --env.target=$target
+ fi
+ if [ 5 -eq $argsCount ]
+ then
+ echo "argsCount:$argsCount"
+ echo "fileName:$fileName"
+ echo "assembly:$assembly"
+ echo "size:$size"
+ echo "sizecompilation:$sizecompilation"
+ echo "target:$target"
+ echo "localeOption:$localeOption"
+ echo "locales:$locales"
+ webpack --env.assembly=$assembly --env.size=$size --env.compilation=$sizecompilation --env.target=$target --env.locales=$locales
+ fi
+
+}
+
+run_webpack
+
+exit 0
diff --git a/js/test/address/nodeunit/testSuite.html b/js/test/address/testSuite.html
similarity index 98%
rename from js/test/address/nodeunit/testSuite.html
rename to js/test/address/testSuite.html
index 2c5c5e5480..7483f41bf2 100644
--- a/js/test/address/nodeunit/testSuite.html
+++ b/js/test/address/testSuite.html
@@ -1,7 +1,7 @@
diff --git a/js/test/strings-ext/testSuite.js b/js/test/strings-ext/testSuite.js
new file mode 100644
index 0000000000..4910f1a14a
--- /dev/null
+++ b/js/test/strings-ext/testSuite.js
@@ -0,0 +1,36 @@
+/*
+ * testSuite.js - test suite for this directory
+ *
+ * Copyright © 2017-2018, JEDLSoft
+ *
+ * Licensed 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 CONDITIONS OF ANY KIND, either express or implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+var nodeunit = require("nodeunit");
+var reporter = nodeunit.reporters.minimal;
+var modules = {};
+var suites = require("./testSuiteFiles.js").files;
+
+var ilib = require("../../lib/ilib-node.js");
+
+var ilib = require("../../lib/ilib-node.js");
+
+suites.forEach(function (path) {
+ var test = require("./" + path);
+ for (var suite in test) {
+ modules[suite] = test[suite];
+ }
+});
+
+reporter.run(modules);
\ No newline at end of file
diff --git a/js/test/strings-ext/nodeunit/testSuiteAsync.html b/js/test/strings-ext/testSuiteAsync.html
similarity index 94%
rename from js/test/strings-ext/nodeunit/testSuiteAsync.html
rename to js/test/strings-ext/testSuiteAsync.html
index ee74a80b5f..6a29a0d3b8 100644
--- a/js/test/strings-ext/nodeunit/testSuiteAsync.html
+++ b/js/test/strings-ext/testSuiteAsync.html
@@ -24,7 +24,7 @@
var module = {};
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+