fabric
Version:
Object model for HTML5 canvas, and SVG-to-canvas parser. Backed by jsdom and node-canvas.
1 lines • 4.12 kB
Source Map (JSON)
{"version":3,"file":"Triangle.mjs","sources":["../../../src/shapes/Triangle.ts"],"sourcesContent":["import { classRegistry } from '../ClassRegistry';\nimport { FabricObject } from './Object/FabricObject';\nimport type { FabricObjectProps, SerializedObjectProps } from './Object/types';\nimport type { TClassProperties, TOptions } from '../typedefs';\nimport type { ObjectEvents } from '../EventTypeDefs';\n\nexport const triangleDefaultValues: Partial<TClassProperties<Triangle>> = {\n width: 100,\n height: 100,\n};\n\nexport class Triangle<\n Props extends TOptions<FabricObjectProps> = Partial<FabricObjectProps>,\n SProps extends SerializedObjectProps = SerializedObjectProps,\n EventSpec extends ObjectEvents = ObjectEvents,\n >\n extends FabricObject<Props, SProps, EventSpec>\n implements FabricObjectProps\n{\n static type = 'Triangle';\n\n static ownDefaults = triangleDefaultValues;\n\n static getDefaults(): Record<string, any> {\n return { ...super.getDefaults(), ...Triangle.ownDefaults };\n }\n\n /**\n * Constructor\n * @param {Object} [options] Options object\n */\n constructor(options?: Props) {\n super();\n Object.assign(this, Triangle.ownDefaults);\n this.setOptions(options);\n }\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n _render(ctx: CanvasRenderingContext2D) {\n const widthBy2 = this.width / 2,\n heightBy2 = this.height / 2;\n\n ctx.beginPath();\n ctx.moveTo(-widthBy2, heightBy2);\n ctx.lineTo(0, -heightBy2);\n ctx.lineTo(widthBy2, heightBy2);\n ctx.closePath();\n\n this._renderPaintInOrder(ctx);\n }\n\n /**\n * Returns svg representation of an instance\n * @return {Array} an array of strings with the specific svg representation\n * of the instance\n */\n _toSVG() {\n const widthBy2 = this.width / 2,\n heightBy2 = this.height / 2,\n points = `${-widthBy2} ${heightBy2},0 ${-heightBy2},${widthBy2} ${heightBy2}`;\n return ['<polygon ', 'COMMON_PARTS', 'points=\"', points, '\" />'];\n }\n}\n\nclassRegistry.setClass(Triangle);\nclassRegistry.setSVGClass(Triangle);\n"],"names":["triangleDefaultValues","width","height","Triangle","FabricObject","getDefaults","_objectSpread","ownDefaults","constructor","options","Object","assign","setOptions","_render","ctx","widthBy2","heightBy2","beginPath","moveTo","lineTo","closePath","_renderPaintInOrder","_toSVG","points","concat","_defineProperty","classRegistry","setClass","setSVGClass"],"mappings":";;;;AAMO,MAAMA,qBAA0D,GAAG;AACxEC,EAAAA,KAAK,EAAE,GAAG;AACVC,EAAAA,MAAM,EAAE,GAAA;AACV,EAAC;AAEM,MAAMC,QAAQ,SAKXC,YAAY,CAEtB;EAKE,OAAOC,WAAWA,GAAwB;AACxC,IAAA,OAAAC,cAAA,CAAAA,cAAA,CAAA,EAAA,EAAY,KAAK,CAACD,WAAW,EAAE,CAAA,EAAKF,QAAQ,CAACI,WAAW,CAAA,CAAA;AAC1D,GAAA;;AAEA;AACF;AACA;AACA;EACEC,WAAWA,CAACC,OAAe,EAAE;AAC3B,IAAA,KAAK,EAAE,CAAA;IACPC,MAAM,CAACC,MAAM,CAAC,IAAI,EAAER,QAAQ,CAACI,WAAW,CAAC,CAAA;AACzC,IAAA,IAAI,CAACK,UAAU,CAACH,OAAO,CAAC,CAAA;AAC1B,GAAA;;AAEA;AACF;AACA;AACA;EACEI,OAAOA,CAACC,GAA6B,EAAE;AACrC,IAAA,MAAMC,QAAQ,GAAG,IAAI,CAACd,KAAK,GAAG,CAAC;AAC7Be,MAAAA,SAAS,GAAG,IAAI,CAACd,MAAM,GAAG,CAAC,CAAA;IAE7BY,GAAG,CAACG,SAAS,EAAE,CAAA;AACfH,IAAAA,GAAG,CAACI,MAAM,CAAC,CAACH,QAAQ,EAAEC,SAAS,CAAC,CAAA;AAChCF,IAAAA,GAAG,CAACK,MAAM,CAAC,CAAC,EAAE,CAACH,SAAS,CAAC,CAAA;AACzBF,IAAAA,GAAG,CAACK,MAAM,CAACJ,QAAQ,EAAEC,SAAS,CAAC,CAAA;IAC/BF,GAAG,CAACM,SAAS,EAAE,CAAA;AAEf,IAAA,IAAI,CAACC,mBAAmB,CAACP,GAAG,CAAC,CAAA;AAC/B,GAAA;;AAEA;AACF;AACA;AACA;AACA;AACEQ,EAAAA,MAAMA,GAAG;AACP,IAAA,MAAMP,QAAQ,GAAG,IAAI,CAACd,KAAK,GAAG,CAAC;AAC7Be,MAAAA,SAAS,GAAG,IAAI,CAACd,MAAM,GAAG,CAAC;MAC3BqB,MAAM,GAAA,EAAA,CAAAC,MAAA,CAAM,CAACT,QAAQ,EAAAS,GAAAA,CAAAA,CAAAA,MAAA,CAAIR,SAAS,EAAAQ,KAAAA,CAAAA,CAAAA,MAAA,CAAM,CAACR,SAAS,OAAAQ,MAAA,CAAIT,QAAQ,EAAAS,GAAAA,CAAAA,CAAAA,MAAA,CAAIR,SAAS,CAAE,CAAA;IAC/E,OAAO,CAAC,WAAW,EAAE,cAAc,EAAE,UAAU,EAAEO,MAAM,EAAE,MAAM,CAAC,CAAA;AAClE,GAAA;AACF,CAAA;AAACE,eAAA,CAtDYtB,QAAQ,EAAA,MAAA,EAQL,UAAU,CAAA,CAAA;AAAAsB,eAAA,CARbtB,QAAQ,EAAA,aAAA,EAUEH,qBAAqB,CAAA,CAAA;AA8C5C0B,aAAa,CAACC,QAAQ,CAACxB,QAAQ,CAAC,CAAA;AAChCuB,aAAa,CAACE,WAAW,CAACzB,QAAQ,CAAC;;;;"}