UNPKG

fabric

Version:

Object model for HTML5 canvas, and SVG-to-canvas parser. Backed by jsdom and node-canvas.

1 lines 2.92 kB
{"version":3,"file":"loadSVGFromURL.min.mjs","sources":["../../../src/parser/loadSVGFromURL.ts"],"sourcesContent":["import { createEmptyResponse } from './parseSVGDocument';\nimport { loadSVGFromString } from './loadSVGFromString';\nimport type { SVGParsingOutput, TSvgReviverCallback } from './typedefs';\nimport type { LoadImageOptions } from '../util/misc/objectEnlive';\nimport { FabricError } from '../util/internals/console';\n\n/**\n * Takes url corresponding to an SVG document, and parses it into a set of fabric objects.\n * Note that SVG is fetched via fetch API, so it needs to conform to SOP (Same Origin Policy)\n * @param {string} url where the SVG is\n * @param {TSvgParsedCallback} callback Invoked when the parsing is done, with null if parsing wasn't possible with the list of svg nodes.\n * {@link TSvgParsedCallback} also receives `allElements` array as the last argument. This is the full list of svg nodes available in the document.\n * You may want to use it if you are trying to regroup the objects as they were originally grouped in the SVG. ( This was the reason why it was added )\n * @param {TSvgReviverCallback} [reviver] Extra callback for further parsing of SVG elements, called after each fabric object has been created.\n * Takes as input the original svg element and the generated `FabricObject` as arguments. Used to inspect extra properties not parsed by fabric,\n * or extra custom manipulation\n * @param {Object} [options] Object containing options for parsing\n * @param {String} [options.crossOrigin] crossOrigin setting to use for external resources\n * @param {AbortSignal} [options.signal] handle aborting, see https://developer.mozilla.org/en-US/docs/Web/API/AbortController/signal\n */\nexport function loadSVGFromURL(\n url: string,\n reviver?: TSvgReviverCallback,\n options: LoadImageOptions = {},\n): Promise<SVGParsingOutput> {\n return fetch(url.replace(/^\\n\\s*/, '').trim(), {\n signal: options.signal,\n })\n .then((response) => {\n if (!response.ok) {\n throw new FabricError(`HTTP error! status: ${response.status}`);\n }\n return response.text();\n })\n .then((svgText) => {\n return loadSVGFromString(svgText, reviver, options);\n })\n .catch(() => {\n // this is an unhappy path, we dont care about speed\n return createEmptyResponse();\n });\n}\n"],"names":["loadSVGFromURL","url","reviver","options","arguments","length","undefined","fetch","replace","trim","signal","then","response","ok","FabricError","status","text","svgText","loadSVGFromString","catch","createEmptyResponse"],"mappings":"iMAoBO,SAASA,EACdC,EACAC,GAE2B,IAD3BC,EAAyBC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAE5B,OAAOG,MAAMN,EAAIO,QAAQ,SAAU,IAAIC,OAAQ,CAC7CC,OAAQP,EAAQO,SAEfC,KAAMC,IACL,IAAKA,EAASC,GACZ,MAAM,IAAIC,EAAY,uBAAuBF,EAASG,UAExD,OAAOH,EAASI,SAEjBL,KAAMM,GACEC,EAAkBD,EAASf,EAASC,IAE5CgB,MAAM,IAEEC,IAEb"}