index.js 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. "use strict";
  2. var __importDefault = (this && this.__importDefault) || function (mod) {
  3. return (mod && mod.__esModule) ? mod : { "default": mod };
  4. };
  5. Object.defineProperty(exports, "__esModule", { value: true });
  6. exports.hex = exports.dec = exports.codePoint = void 0;
  7. var dingbats_1 = __importDefault(require("./dingbats"));
  8. var dingbatsByCodePoint = {};
  9. var fromCodePoint = String.fromCodePoint ? String.fromCodePoint : fromCodePointPolyfill;
  10. for (var _i = 0, dingbats_2 = dingbats_1.default; _i < dingbats_2.length; _i++) {
  11. var dingbat = dingbats_2[_i];
  12. var codePoint_1 = parseInt(dingbat["Unicode dec"], 10);
  13. var scalarValue = {
  14. codePoint: codePoint_1,
  15. string: fromCodePoint(codePoint_1),
  16. };
  17. dingbatsByCodePoint[dingbat["Typeface name"].toUpperCase() + "_" + dingbat["Dingbat dec"]] = scalarValue;
  18. }
  19. function codePoint(typeface, codePoint) {
  20. return dingbatsByCodePoint[typeface.toUpperCase() + "_" + codePoint];
  21. }
  22. exports.codePoint = codePoint;
  23. function dec(typeface, dec) {
  24. return codePoint(typeface, parseInt(dec, 10));
  25. }
  26. exports.dec = dec;
  27. function hex(typeface, hex) {
  28. return codePoint(typeface, parseInt(hex, 16));
  29. }
  30. exports.hex = hex;
  31. function fromCodePointPolyfill(codePoint) {
  32. if (codePoint <= 0xFFFF) {
  33. // BMP
  34. return String.fromCharCode(codePoint);
  35. }
  36. else {
  37. // Astral
  38. // https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae
  39. var highSurrogate = Math.floor((codePoint - 0x10000) / 0x400) + 0xD800;
  40. var lowSurrogate = (codePoint - 0x10000) % 0x400 + 0xDC00;
  41. return String.fromCharCode(highSurrogate, lowSurrogate);
  42. }
  43. }
  44. ;