????

Your IP : 18.219.151.249


Current Path : C:/inetpub/vhost/invest.gdtsolutions.vn/api/node_modules/@jimp/plugin-print/es/
Upload File :
Current File : C:/inetpub/vhost/invest.gdtsolutions.vn/api/node_modules/@jimp/plugin-print/es/index.js.map

{"version":3,"file":"index.js","names":["Path","bMFont","isNodePattern","throwError","measureText","measureTextHeight","splitLines","xOffsetBasedOnAlignment","constants","font","line","maxWidth","alignment","HORIZONTAL_ALIGN_LEFT","HORIZONTAL_ALIGN_CENTER","drawCharacter","image","x","y","char","width","height","characterPage","pages","page","blit","xoffset","yoffset","printText","text","defaultCharWidth","i","length","chars","test","fontChar","fontKerning","kernings","kerning","xadvance","loadPages","Jimp","dir","newPages","map","read","Promise","all","process","env","DIRNAME","__dirname","FONT_SANS_8_BLACK","join","FONT_SANS_10_BLACK","FONT_SANS_12_BLACK","FONT_SANS_14_BLACK","FONT_SANS_16_BLACK","FONT_SANS_32_BLACK","FONT_SANS_64_BLACK","FONT_SANS_128_BLACK","FONT_SANS_8_WHITE","FONT_SANS_16_WHITE","FONT_SANS_32_WHITE","FONT_SANS_64_WHITE","FONT_SANS_128_WHITE","loadFont","file","cb","call","resolve","reject","err","String","fromCharCode","id","firstString","first","second","amount","dirname","then","common","info","class","print","maxHeight","Infinity","alignmentX","alignmentY","undefined","constructor","VERTICAL_ALIGN_TOP","toString","VERTICAL_ALIGN_BOTTOM","VERTICAL_ALIGN_MIDDLE","Object","entries","lines","longestLine","forEach","lineString","alignmentWidth","lineHeight"],"sources":["../src/index.js"],"sourcesContent":["import Path from \"path\";\nimport bMFont from \"load-bmfont\";\nimport { isNodePattern, throwError } from \"@jimp/utils\";\nimport { measureText, measureTextHeight, splitLines } from \"./measure-text\";\n\nfunction xOffsetBasedOnAlignment(constants, font, line, maxWidth, alignment) {\n  if (alignment === constants.HORIZONTAL_ALIGN_LEFT) {\n    return 0;\n  }\n\n  if (alignment === constants.HORIZONTAL_ALIGN_CENTER) {\n    return (maxWidth - measureText(font, line)) / 2;\n  }\n\n  return maxWidth - measureText(font, line);\n}\n\nfunction drawCharacter(image, font, x, y, char) {\n  if (char.width > 0 && char.height > 0) {\n    const characterPage = font.pages[char.page];\n\n    image.blit(\n      characterPage,\n      x + char.xoffset,\n      y + char.yoffset,\n      char.x,\n      char.y,\n      char.width,\n      char.height\n    );\n  }\n\n  return image;\n}\n\nfunction printText(font, x, y, text, defaultCharWidth) {\n  for (let i = 0; i < text.length; i++) {\n    let char;\n\n    if (font.chars[text[i]]) {\n      char = text[i];\n    } else if (/\\s/.test(text[i])) {\n      char = \"\";\n    } else {\n      char = \"?\";\n    }\n\n    const fontChar = font.chars[char] || {};\n    const fontKerning = font.kernings[char];\n\n    drawCharacter(this, font, x, y, fontChar || {});\n\n    const kerning =\n      fontKerning && fontKerning[text[i + 1]] ? fontKerning[text[i + 1]] : 0;\n\n    x += kerning + (fontChar.xadvance || defaultCharWidth);\n  }\n}\n\nfunction loadPages(Jimp, dir, pages) {\n  const newPages = pages.map((page) => {\n    return Jimp.read(dir + \"/\" + page);\n  });\n\n  return Promise.all(newPages);\n}\n\nconst dir = process.env.DIRNAME || `${__dirname}/../`;\n\nexport default () => ({\n  constants: {\n    measureText,\n    measureTextHeight,\n    FONT_SANS_8_BLACK: Path.join(\n      dir,\n      \"fonts/open-sans/open-sans-8-black/open-sans-8-black.fnt\"\n    ),\n    FONT_SANS_10_BLACK: Path.join(\n      dir,\n      \"fonts/open-sans/open-sans-10-black/open-sans-10-black.fnt\"\n    ),\n    FONT_SANS_12_BLACK: Path.join(\n      dir,\n      \"fonts/open-sans/open-sans-12-black/open-sans-12-black.fnt\"\n    ),\n    FONT_SANS_14_BLACK: Path.join(\n      dir,\n      \"fonts/open-sans/open-sans-14-black/open-sans-14-black.fnt\"\n    ),\n    FONT_SANS_16_BLACK: Path.join(\n      dir,\n      \"fonts/open-sans/open-sans-16-black/open-sans-16-black.fnt\"\n    ),\n    FONT_SANS_32_BLACK: Path.join(\n      dir,\n      \"fonts/open-sans/open-sans-32-black/open-sans-32-black.fnt\"\n    ),\n    FONT_SANS_64_BLACK: Path.join(\n      dir,\n      \"fonts/open-sans/open-sans-64-black/open-sans-64-black.fnt\"\n    ),\n    FONT_SANS_128_BLACK: Path.join(\n      dir,\n      \"fonts/open-sans/open-sans-128-black/open-sans-128-black.fnt\"\n    ),\n\n    FONT_SANS_8_WHITE: Path.join(\n      dir,\n      \"fonts/open-sans/open-sans-8-white/open-sans-8-white.fnt\"\n    ),\n    FONT_SANS_16_WHITE: Path.join(\n      dir,\n      \"fonts/open-sans/open-sans-16-white/open-sans-16-white.fnt\"\n    ),\n    FONT_SANS_32_WHITE: Path.join(\n      dir,\n      \"fonts/open-sans/open-sans-32-white/open-sans-32-white.fnt\"\n    ),\n    FONT_SANS_64_WHITE: Path.join(\n      dir,\n      \"fonts/open-sans/open-sans-64-white/open-sans-64-white.fnt\"\n    ),\n    FONT_SANS_128_WHITE: Path.join(\n      dir,\n      \"fonts/open-sans/open-sans-128-white/open-sans-128-white.fnt\"\n    ),\n\n    /**\n     * Loads a bitmap font from a file\n     * @param {string} file the file path of a .fnt file\n     * @param {function(Error, Jimp)} cb (optional) a function to call when the font is loaded\n     * @returns {Promise} a promise\n     */\n    loadFont(file, cb) {\n      if (typeof file !== \"string\")\n        return throwError.call(this, \"file must be a string\", cb);\n\n      return new Promise((resolve, reject) => {\n        cb =\n          cb ||\n          function (err, font) {\n            if (err) reject(err);\n            else resolve(font);\n          };\n\n        bMFont(file, (err, font) => {\n          const chars = {};\n          const kernings = {};\n\n          if (err) {\n            return throwError.call(this, err, cb);\n          }\n\n          for (let i = 0; i < font.chars.length; i++) {\n            chars[String.fromCharCode(font.chars[i].id)] = font.chars[i];\n          }\n\n          for (let i = 0; i < font.kernings.length; i++) {\n            const firstString = String.fromCharCode(font.kernings[i].first);\n            kernings[firstString] = kernings[firstString] || {};\n            kernings[firstString][\n              String.fromCharCode(font.kernings[i].second)\n            ] = font.kernings[i].amount;\n          }\n\n          loadPages(this, Path.dirname(file), font.pages).then((pages) => {\n            cb(null, {\n              chars,\n              kernings,\n              pages,\n              common: font.common,\n              info: font.info,\n            });\n          });\n        });\n      });\n    },\n  },\n\n  class: {\n    /**\n     * Draws a text on a image on a given boundary\n     * @param {Jimp} font a bitmap font loaded from `Jimp.loadFont` command\n     * @param {number} x the x position to start drawing the text\n     * @param {number} y the y position to start drawing the text\n     * @param {any} text the text to draw (string or object with `text`, `alignmentX`, and/or `alignmentY`)\n     * @param {number} maxWidth (optional) the boundary width to draw in\n     * @param {number} maxHeight (optional) the boundary height to draw in\n     * @param {function(Error, Jimp)} cb (optional) a function to call when the text is written\n     * @returns {Jimp} this for chaining of methods\n     */\n    print(font, x, y, text, maxWidth, maxHeight, cb) {\n      if (typeof maxWidth === \"function\" && typeof cb === \"undefined\") {\n        cb = maxWidth;\n        maxWidth = Infinity;\n      }\n\n      if (typeof maxWidth === \"undefined\") {\n        maxWidth = Infinity;\n      }\n\n      if (typeof maxHeight === \"function\" && typeof cb === \"undefined\") {\n        cb = maxHeight;\n        maxHeight = Infinity;\n      }\n\n      if (typeof maxHeight === \"undefined\") {\n        maxHeight = Infinity;\n      }\n\n      if (typeof font !== \"object\") {\n        return throwError.call(this, \"font must be a Jimp loadFont\", cb);\n      }\n\n      if (\n        typeof x !== \"number\" ||\n        typeof y !== \"number\" ||\n        typeof maxWidth !== \"number\"\n      ) {\n        return throwError.call(this, \"x, y and maxWidth must be numbers\", cb);\n      }\n\n      if (typeof maxWidth !== \"number\") {\n        return throwError.call(this, \"maxWidth must be a number\", cb);\n      }\n\n      if (typeof maxHeight !== \"number\") {\n        return throwError.call(this, \"maxHeight must be a number\", cb);\n      }\n\n      let alignmentX;\n      let alignmentY;\n\n      if (\n        typeof text === \"object\" &&\n        text.text !== null &&\n        text.text !== undefined\n      ) {\n        alignmentX = text.alignmentX || this.constructor.HORIZONTAL_ALIGN_LEFT;\n        alignmentY = text.alignmentY || this.constructor.VERTICAL_ALIGN_TOP;\n        ({ text } = text);\n      } else {\n        alignmentX = this.constructor.HORIZONTAL_ALIGN_LEFT;\n        alignmentY = this.constructor.VERTICAL_ALIGN_TOP;\n        text = text.toString();\n      }\n\n      if (\n        maxHeight !== Infinity &&\n        alignmentY === this.constructor.VERTICAL_ALIGN_BOTTOM\n      ) {\n        y += maxHeight - measureTextHeight(font, text, maxWidth);\n      } else if (\n        maxHeight !== Infinity &&\n        alignmentY === this.constructor.VERTICAL_ALIGN_MIDDLE\n      ) {\n        y += maxHeight / 2 - measureTextHeight(font, text, maxWidth) / 2;\n      }\n\n      const defaultCharWidth = Object.entries(font.chars)[0][1].xadvance;\n      const { lines, longestLine } = splitLines(font, text, maxWidth);\n\n      lines.forEach((line) => {\n        const lineString = line.join(\" \");\n        const alignmentWidth = xOffsetBasedOnAlignment(\n          this.constructor,\n          font,\n          lineString,\n          maxWidth,\n          alignmentX\n        );\n\n        printText.call(\n          this,\n          font,\n          x + alignmentWidth,\n          y,\n          lineString,\n          defaultCharWidth\n        );\n\n        y += font.common.lineHeight;\n      });\n\n      if (isNodePattern(cb)) {\n        cb.call(this, null, this, { x: x + longestLine, y });\n      }\n\n      return this;\n    },\n  },\n});\n"],"mappings":"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"}