unicode-input-toolconverter 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (123) hide show
  1. package/.babelrc.json +3 -0
  2. package/.editorconfig +16 -0
  3. package/.nojekyll +0 -0
  4. package/.nyc_output/out.json +173804 -0
  5. package/.nyc_output/processinfo/index.json +1 -0
  6. package/CHANGES.md +11 -0
  7. package/COPYING.LESSER.txt +180 -0
  8. package/COPYING.txt +687 -0
  9. package/README.md +65 -0
  10. package/_locales/en-US/messages.json +3126 -0
  11. package/_locales/hu-HU/messages.json +3126 -0
  12. package/_locales/pt-BR/messages.json +3126 -0
  13. package/_locales/sv-SE/messages.json +3126 -0
  14. package/babel.config.json +5 -0
  15. package/browser_action/characterSelection.js +91 -0
  16. package/browser_action/charrefConverters.js +389 -0
  17. package/browser_action/chartBuild.js +155 -0
  18. package/browser_action/encodingBehaviors.js +72 -0
  19. package/browser_action/encodings.js +97 -0
  20. package/browser_action/entities.js +12 -0
  21. package/browser_action/entityBehaviors.js +96 -0
  22. package/browser_action/index-es.html +15 -0
  23. package/browser_action/index-instrumented.html +16 -0
  24. package/browser_action/index-pages.html +16 -0
  25. package/browser_action/index.html +16 -0
  26. package/browser_action/index.iife.min.js +2 -0
  27. package/browser_action/index.iife.min.js.map +1 -0
  28. package/browser_action/index.instrumented.iife.min.js +2 -0
  29. package/browser_action/index.instrumented.iife.min.js.map +1 -0
  30. package/browser_action/index.js +95 -0
  31. package/browser_action/preferences/prefDefaults.js +52 -0
  32. package/browser_action/service-worker/sw-activateCallback.js +53 -0
  33. package/browser_action/service-worker/sw-locales.json +6 -0
  34. package/browser_action/service-worker/sw-resources.json +73 -0
  35. package/browser_action/service-worker/sw-unicode-data.json +3 -0
  36. package/browser_action/styles/unicode-dialog.css +391 -0
  37. package/browser_action/templateUtils/elements.js +12 -0
  38. package/browser_action/templateUtils/fill.js +3 -0
  39. package/browser_action/templateUtils/validation.js +6 -0
  40. package/browser_action/templates/chartBuild.js +185 -0
  41. package/browser_action/templates/index.js +1304 -0
  42. package/browser_action/templatesElementCustomization/widgets.js +56 -0
  43. package/browser_action/unicode/UnicodeConverter.js +793 -0
  44. package/browser_action/unicode/charrefunicodeDb.js +258 -0
  45. package/browser_action/unicode/getScriptInfoForCodePoint.js +646 -0
  46. package/browser_action/unicode/hangul.js +253 -0
  47. package/browser_action/unicode/lastScriptNames.json +5 -0
  48. package/browser_action/unicode/parseUnihanFromTextFileStrings.js +56 -0
  49. package/browser_action/unicode/unicodeFieldInfo.js +120 -0
  50. package/browser_action/unicode/unicodeScripts.js +4912 -0
  51. package/browser_action/unicode/unihan.js +129 -0
  52. package/browser_action/unicode/unihanDbPopulate.js +26 -0
  53. package/browser_action/unicodecharref.js +1480 -0
  54. package/browser_action/utils/DOMUtils.js +122 -0
  55. package/browser_action/utils/FetchUtils.js +19 -0
  56. package/browser_action/utils/TextUtils.js +28 -0
  57. package/browser_action/utils/TypedArrayUtils.js +21 -0
  58. package/browser_action/utils/semicolonSeparatedToArray.js +12 -0
  59. package/browser_action/utils/setupServiceWorker.js +193 -0
  60. package/cypress.config.js +21 -0
  61. package/download/entities/copyright-software-20021231.html +70 -0
  62. package/download/entities/html5-uppercase.ent +54 -0
  63. package/download/entities/htmlmathml-f.ent +2164 -0
  64. package/download/entities/isoamsa.ent +201 -0
  65. package/download/entities/isoamsb.ent +177 -0
  66. package/download/entities/isoamsc.ent +77 -0
  67. package/download/entities/isoamsn.ent +148 -0
  68. package/download/entities/isoamso.ent +107 -0
  69. package/download/entities/isoamsr.ent +238 -0
  70. package/download/entities/isobox.ent +95 -0
  71. package/download/entities/isocyr1.ent +122 -0
  72. package/download/entities/isocyr2.ent +81 -0
  73. package/download/entities/isodia.ent +69 -0
  74. package/download/entities/isogrk1.ent +104 -0
  75. package/download/entities/isogrk2.ent +75 -0
  76. package/download/entities/isogrk3.ent +98 -0
  77. package/download/entities/isogrk4.ent +98 -0
  78. package/download/entities/isolat1.ent +117 -0
  79. package/download/entities/isolat2.ent +176 -0
  80. package/download/entities/isomfrk.ent +107 -0
  81. package/download/entities/isomopf.ent +81 -0
  82. package/download/entities/isomscr.ent +107 -0
  83. package/download/entities/isonum.ent +131 -0
  84. package/download/entities/isopub.ent +140 -0
  85. package/download/entities/isotech.ent +216 -0
  86. package/download/entities/mmlalias.ent +598 -0
  87. package/download/entities/mmlextra.ent +154 -0
  88. package/download/entities/predefined.ent +52 -0
  89. package/download/entities/w3centities-f.ent +2276 -0
  90. package/download/entities/xhtml1-lat1.ent +143 -0
  91. package/download/entities/xhtml1-special.ent +78 -0
  92. package/download/entities/xhtml1-symbol.ent +171 -0
  93. package/eslint.config.js +66 -0
  94. package/icons/openWindow16.png +0 -0
  95. package/icons/openWindow24.png +0 -0
  96. package/lgtm.yml +5 -0
  97. package/lib/background.html +11 -0
  98. package/lib/background.js +13 -0
  99. package/lib/overlay.css +6 -0
  100. package/manifest.json +37 -0
  101. package/package.json +121 -0
  102. package/polyfills/browser-polyfill.min.js +8 -0
  103. package/polyfills/browser-polyfill.min.js.map +1 -0
  104. package/server.js +61 -0
  105. package/sw.js +259 -0
  106. package/tools/entities-import.js +62 -0
  107. package/tools/findEsResources.js +30 -0
  108. package/tools/list-locales.js +17 -0
  109. package/tools/parseUnicodeCharts.js +428 -0
  110. package/tools/ucd-import.js +24 -0
  111. package/tools/unicode-charts.html +596 -0
  112. package/tools/unihan-import.js +72 -0
  113. package/unicode_copyright.txt +46 -0
  114. package/vendor/camelcase/index.js +110 -0
  115. package/vendor/fflate/esm/browser.js +2665 -0
  116. package/vendor/intl-dom/dist/index.esm.js +2962 -0
  117. package/vendor/jamilih/dist/jml-es.js +2359 -0
  118. package/vendor/jquery/dist/jquery.js +10716 -0
  119. package/vendor/json-6/dist/index.mjs +1783 -0
  120. package/vendor/miller-columns/dist/index-es.min.js +1 -0
  121. package/vendor/miller-columns/miller-columns.css +75 -0
  122. package/vendor/simple-prefs/dist/index.esm.js +286 -0
  123. package/web-ext-config.cjs +13 -0
@@ -0,0 +1,129 @@
1
+ import {getHangulName} from './hangul.js';
2
+
3
+ /**
4
+ * @param {PlainObject} cfg
5
+ * @param {string} cfg.khextemp
6
+ * @param {import('intl-dom').I18NCallback} cfg._
7
+ * @returns {{
8
+ * unihanType: boolean, hangul: boolean, cjkText: string,
9
+ * searchValue: string
10
+ * }}
11
+ */
12
+ function getCJKTypeFromHexString ({khextemp, _}) {
13
+ let unihanType = false, hangul = false;
14
+
15
+ const kdectemp = Number.parseInt(khextemp, 16);
16
+
17
+ // \p{UIdeo=y}
18
+ if (
19
+ (kdectemp >= 0x3400 && kdectemp <= 0x4DB5) ||
20
+ (kdectemp >= 0x4E00 && kdectemp <= 0x9FC3) || // 0x9FBB
21
+ (kdectemp >= 0xF900 && kdectemp < 0xFB00) ||
22
+ // Miscategorized unified as compatibility
23
+ [
24
+ 0xFA0E,
25
+ 0xFA0F,
26
+ 0xFA11,
27
+ 0xFA13,
28
+ 0xFA14,
29
+ 0xFA1F,
30
+ 0xFA21,
31
+ 0xFA23,
32
+ 0xFA24,
33
+ 0xFA27,
34
+ 0xFA29
35
+ ].includes(kdectemp) ||
36
+
37
+ // If not using the 39.5MB updated file, these ranges will not be valid:
38
+ // (CJK Ideograph Extension B)
39
+ (kdectemp >= 0x20000 && kdectemp <= 0x2A6D6) ||
40
+ // (CJK Ideograph Extension C)
41
+ (kdectemp >= 0x2A700 && kdectemp <= 0x2B734) ||
42
+ // (CJK Ideograph Extension D)
43
+ (kdectemp >= 0x2B840 && kdectemp <= 0x2B81D) ||
44
+
45
+ // Compatibility
46
+ (kdectemp >= 0x2F800 && kdectemp < 0x2FA1F)
47
+ ) {
48
+ // pattern = new RegExp('^U\\+(' + khextemp + ')\\t(.*)\\t(.*)$', 'mg');
49
+ // file = 'Unihan.txt';
50
+ unihanType = true;
51
+ // $('#pdflink').append(alink);
52
+ } else if (kdectemp >= 0xAC00 && kdectemp <= 0xD7A3) {
53
+ // pattern = new RegExp('^' + khextemp + '\\s*;\\s*(.*)$', 'm');
54
+ // file = 'HangulSyllableType.txt';
55
+ hangul = true;
56
+ // The following are some ranges in UnicodeData.txt which do not
57
+ // have their own description sheets as do the two above
58
+ /*
59
+ if (0xE000 <= kdectemp && kdectemp <= 0xF8FF) {// Private Use
60
+ }
61
+ // Plane 15 Private Use
62
+ else if (0xF0000 <= kdectemp && kdectemp <= 0xFFFFD) {
63
+ }
64
+ // Plane 16 Private Use
65
+ else if (0x100000 <= kdectemp && kdectemp <= 0x10FFFD) {
66
+ }
67
+ */
68
+ }
69
+ // pattern = new RegExp('^' + khextemp + ';([^;]*);', 'm');
70
+ // file = 'UnicodeData.txt';
71
+
72
+ let search = false;
73
+ let cjkText;
74
+
75
+ if (kdectemp >= 0x3400 && kdectemp <= 0x4DB5) {
76
+ search = '3400';
77
+ if (kdectemp !== 0x3400 && kdectemp !== 0x4DB5) {
78
+ cjkText = _('CJK_Ideograph_Extension_A');
79
+ } else if (kdectemp === 0x4DB5) {
80
+ search = '4DB5';
81
+ }
82
+ } else if (kdectemp >= 0x4E00 && kdectemp <= 0x9FC3) {
83
+ search = '4E00';
84
+ if (kdectemp !== 0x4E00 && kdectemp !== 0x9FC3) {
85
+ cjkText = _('CJK_Ideograph');
86
+ } else if (kdectemp === 0x9FC3) {
87
+ search = '9FC3';
88
+ }
89
+ } else if (
90
+ kdectemp >= 0xF900 && kdectemp < 0xFB00
91
+ ) { // Should have individual code point
92
+ search = true;
93
+ } else if (kdectemp >= 0x20000 && kdectemp <= 0x2A6D6) {
94
+ search = '20000';
95
+ if (kdectemp !== 0x20000 && kdectemp !== 0x2A6D6) {
96
+ cjkText = _('CJK_Ideograph_Extension_B');
97
+ } else if (kdectemp === 0x2A6D6) {
98
+ search = '2A6D6';
99
+ }
100
+ } else if (
101
+ kdectemp >= 0x2F800 && kdectemp < 0x2FA1F
102
+ ) { // Should have individual code point
103
+ search = true;
104
+ } else if (hangul) {
105
+ // search = 'AC00';
106
+ // if (kdectemp != 0xAC00 && kdectemp != 0xD7A3) {
107
+ cjkText = _('Hangul_Syllable');
108
+ cjkText += ' ';
109
+
110
+ cjkText += getHangulName(kdectemp);
111
+ /* }
112
+ else if (kdectemp == 0xD7A3) {
113
+ search = 'D7A3';
114
+ } */
115
+ }
116
+ let searchValue;
117
+ if (search) {
118
+ if (search === true) {
119
+ search = khextemp;
120
+ }
121
+ searchValue = search;
122
+ } else {
123
+ searchValue = khextemp;
124
+ }
125
+
126
+ return {unihanType, hangul, cjkText, searchValue};
127
+ }
128
+
129
+ export {getCJKTypeFromHexString};
@@ -0,0 +1,26 @@
1
+ import {UnihanDatabase} from './charrefunicodeDb.js';
2
+
3
+ // import {getText} from '../utils/FetchUtils.js';
4
+ // const unihanPath = `/download/unihan/unihan.json`;
5
+
6
+ /**
7
+ * @param {JSON} updateUnicodeData
8
+ * @returns {Promise<UnihanDatabase>}
9
+ */
10
+ async function unihanDbPopulate (updateUnicodeData) {
11
+ const namespace = 'unicode-input-toolconverter-Unihan';
12
+ await indexedDB.deleteDatabase(namespace);
13
+ const unihanDatabase = new UnihanDatabase({
14
+ name: namespace,
15
+ // We don't peg to package major version as database version may vary
16
+ // independently
17
+ version: 1
18
+ });
19
+ await unihanDatabase.connect({
20
+ updateUnicodeData
21
+ });
22
+
23
+ return unihanDatabase;
24
+ }
25
+
26
+ export default unihanDbPopulate;