UNPKG

fabric

Version:

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

1 lines 5.55 kB
{"version":3,"file":"constants.mjs","sources":["../../../../src/shapes/Text/constants.ts"],"sourcesContent":["import { FILL, LEFT, STROKE, reNewline } from '../../constants';\nimport type { TClassProperties } from '../../typedefs';\nimport type { FabricText } from './Text';\n\nexport const TEXT_DECORATION_THICKNESS = 'textDecorationThickness';\n\nconst fontProperties = [\n 'fontSize',\n 'fontWeight',\n 'fontFamily',\n 'fontStyle',\n] as const;\n\nexport const textDecorationProperties = [\n 'underline',\n 'overline',\n 'linethrough',\n] as const;\n\nexport const textLayoutProperties: string[] = [\n ...fontProperties,\n 'lineHeight',\n 'text',\n 'charSpacing',\n 'textAlign',\n 'styles',\n 'path',\n 'pathStartOffset',\n 'pathSide',\n 'pathAlign',\n];\n\nexport const additionalProps = [\n ...textLayoutProperties,\n ...textDecorationProperties,\n 'textBackgroundColor',\n 'direction',\n TEXT_DECORATION_THICKNESS,\n] as const;\n\nexport type StylePropertiesType =\n | 'fill'\n | 'stroke'\n | 'strokeWidth'\n | 'fontSize'\n | 'fontFamily'\n | 'fontWeight'\n | 'fontStyle'\n | 'textBackgroundColor'\n | 'deltaY'\n | 'overline'\n | 'underline'\n | 'linethrough'\n | typeof TEXT_DECORATION_THICKNESS;\n\nexport const styleProperties: Readonly<StylePropertiesType[]> = [\n ...fontProperties,\n ...textDecorationProperties,\n STROKE,\n 'strokeWidth',\n FILL,\n 'deltaY',\n 'textBackgroundColor',\n TEXT_DECORATION_THICKNESS,\n] as const;\n\n// @TODO: Many things here are configuration related and shouldn't be on the class nor prototype\n// regexes, list of properties that are not suppose to change by instances, magic consts.\n// this will be a separated effort\nexport const textDefaultValues: Partial<TClassProperties<FabricText>> = {\n _reNewline: reNewline,\n _reSpacesAndTabs: /[ \\t\\r]/g,\n _reSpaceAndTab: /[ \\t\\r]/,\n _reWords: /\\S+/g,\n fontSize: 40,\n fontWeight: 'normal',\n fontFamily: 'Times New Roman',\n underline: false,\n overline: false,\n linethrough: false,\n textAlign: LEFT,\n fontStyle: 'normal',\n lineHeight: 1.16,\n textBackgroundColor: '',\n stroke: null,\n shadow: null,\n path: undefined,\n pathStartOffset: 0,\n pathSide: LEFT,\n pathAlign: 'baseline',\n charSpacing: 0,\n deltaY: 0,\n direction: 'ltr',\n CACHE_FONT_SIZE: 400,\n MIN_TEXT_WIDTH: 2,\n // Text magic numbers\n superscript: {\n size: 0.6, // fontSize factor\n baseline: -0.35, // baseline-shift factor (upwards)\n },\n subscript: {\n size: 0.6, // fontSize factor\n baseline: 0.11, // baseline-shift factor (downwards)\n },\n _fontSizeFraction: 0.222,\n offsets: {\n underline: 0.1,\n linethrough: -0.28167, // added 1/30 to original number\n overline: -0.81333, // added 1/15 to original number\n },\n _fontSizeMult: 1.13,\n [TEXT_DECORATION_THICKNESS]: 66.667, // before implementation was 1/15\n};\n\nexport const JUSTIFY = 'justify';\nexport const JUSTIFY_LEFT = 'justify-left';\nexport const JUSTIFY_RIGHT = 'justify-right';\nexport const JUSTIFY_CENTER = 'justify-center';\n"],"names":["TEXT_DECORATION_THICKNESS","fontProperties","textDecorationProperties","textLayoutProperties","additionalProps","styleProperties","STROKE","FILL","textDefaultValues","_reNewline","reNewline","_reSpacesAndTabs","_reSpaceAndTab","_reWords","fontSize","fontWeight","fontFamily","underline","overline","linethrough","textAlign","LEFT","fontStyle","lineHeight","textBackgroundColor","stroke","shadow","path","undefined","pathStartOffset","pathSide","pathAlign","charSpacing","deltaY","direction","CACHE_FONT_SIZE","MIN_TEXT_WIDTH","superscript","size","baseline","subscript","_fontSizeFraction","offsets","_fontSizeMult","JUSTIFY","JUSTIFY_LEFT","JUSTIFY_RIGHT","JUSTIFY_CENTER"],"mappings":";;AAIO,MAAMA,yBAAyB,GAAG,0BAAyB;AAElE,MAAMC,cAAc,GAAG,CACrB,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,WAAW,CACH,CAAA;AAEH,MAAMC,wBAAwB,GAAG,CACtC,WAAW,EACX,UAAU,EACV,aAAa,EACL;AAEH,MAAMC,oBAA8B,GAAG,CAC5C,GAAGF,cAAc,EACjB,YAAY,EACZ,MAAM,EACN,aAAa,EACb,WAAW,EACX,QAAQ,EACR,MAAM,EACN,iBAAiB,EACjB,UAAU,EACV,WAAW,EACZ;AAEYG,MAAAA,eAAe,GAAG,CAC7B,GAAGD,oBAAoB,EACvB,GAAGD,wBAAwB,EAC3B,qBAAqB,EACrB,WAAW,EACXF,yBAAyB,EACjB;AAiBH,MAAMK,eAAgD,GAAG,CAC9D,GAAGJ,cAAc,EACjB,GAAGC,wBAAwB,EAC3BI,MAAM,EACN,aAAa,EACbC,IAAI,EACJ,QAAQ,EACR,qBAAqB,EACrBP,yBAAyB,EACjB;;AAEV;AACA;AACA;AACO,MAAMQ,iBAAwD,GAAG;AACtEC,EAAAA,UAAU,EAAEC,SAAS;AACrBC,EAAAA,gBAAgB,EAAE,UAAU;AAC5BC,EAAAA,cAAc,EAAE,SAAS;AACzBC,EAAAA,QAAQ,EAAE,MAAM;AAChBC,EAAAA,QAAQ,EAAE,EAAE;AACZC,EAAAA,UAAU,EAAE,QAAQ;AACpBC,EAAAA,UAAU,EAAE,iBAAiB;AAC7BC,EAAAA,SAAS,EAAE,KAAK;AAChBC,EAAAA,QAAQ,EAAE,KAAK;AACfC,EAAAA,WAAW,EAAE,KAAK;AAClBC,EAAAA,SAAS,EAAEC,IAAI;AACfC,EAAAA,SAAS,EAAE,QAAQ;AACnBC,EAAAA,UAAU,EAAE,IAAI;AAChBC,EAAAA,mBAAmB,EAAE,EAAE;AACvBC,EAAAA,MAAM,EAAE,IAAI;AACZC,EAAAA,MAAM,EAAE,IAAI;AACZC,EAAAA,IAAI,EAAEC,SAAS;AACfC,EAAAA,eAAe,EAAE,CAAC;AAClBC,EAAAA,QAAQ,EAAET,IAAI;AACdU,EAAAA,SAAS,EAAE,UAAU;AACrBC,EAAAA,WAAW,EAAE,CAAC;AACdC,EAAAA,MAAM,EAAE,CAAC;AACTC,EAAAA,SAAS,EAAE,KAAK;AAChBC,EAAAA,eAAe,EAAE,GAAG;AACpBC,EAAAA,cAAc,EAAE,CAAC;AACjB;AACAC,EAAAA,WAAW,EAAE;AACXC,IAAAA,IAAI,EAAE,GAAG;AAAE;IACXC,QAAQ,EAAE,CAAC,IAAI;GAChB;AACDC,EAAAA,SAAS,EAAE;AACTF,IAAAA,IAAI,EAAE,GAAG;AAAE;IACXC,QAAQ,EAAE,IAAI;GACf;AACDE,EAAAA,iBAAiB,EAAE,KAAK;AACxBC,EAAAA,OAAO,EAAE;AACPzB,IAAAA,SAAS,EAAE,GAAG;IACdE,WAAW,EAAE,CAAC,OAAO;AAAE;IACvBD,QAAQ,EAAE,CAAC,OAAO;GACnB;AACDyB,EAAAA,aAAa,EAAE,IAAI;EACnB,CAAC3C,yBAAyB,GAAG,MAAM;AACrC,EAAC;AAEM,MAAM4C,OAAO,GAAG,UAAS;AACzB,MAAMC,YAAY,GAAG,eAAc;AACnC,MAAMC,aAAa,GAAG,gBAAe;AACrC,MAAMC,cAAc,GAAG;;;;"}