notations 0.0.30 → 0.0.34
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cjs/carnatic/atomviews.d.ts +4 -6
- package/lib/cjs/carnatic/atomviews.js +68 -61
- package/lib/cjs/carnatic/atomviews.js.map +1 -1
- package/lib/cjs/carnatic/beatviews.d.ts +3 -7
- package/lib/cjs/carnatic/beatviews.js +23 -53
- package/lib/cjs/carnatic/beatviews.js.map +1 -1
- package/lib/cjs/carnatic/embelishments.d.ts +13 -9
- package/lib/cjs/carnatic/embelishments.js +94 -49
- package/lib/cjs/carnatic/embelishments.js.map +1 -1
- package/lib/cjs/carnatic/gamakas.js.map +1 -1
- package/lib/cjs/carnatic/index.js.map +1 -1
- package/lib/cjs/commands.js.map +1 -1
- package/lib/cjs/core.d.ts +0 -9
- package/lib/cjs/core.js +1 -48
- package/lib/cjs/core.js.map +1 -1
- package/lib/cjs/index.js.map +1 -1
- package/lib/cjs/iterators.js.map +1 -1
- package/lib/cjs/layouts.js +8 -2
- package/lib/cjs/layouts.js.map +1 -1
- package/lib/cjs/loader.js.map +1 -1
- package/lib/cjs/notation.js.map +1 -1
- package/lib/cjs/parser.js.map +1 -1
- package/lib/cjs/shapes.d.ts +34 -19
- package/lib/cjs/shapes.js +164 -67
- package/lib/cjs/shapes.js.map +1 -1
- package/lib/cjs/utils.js.map +1 -1
- package/lib/esm/carnatic/atomviews.d.ts +4 -6
- package/lib/esm/carnatic/atomviews.js +68 -61
- package/lib/esm/carnatic/atomviews.js.map +1 -1
- package/lib/esm/carnatic/beatviews.d.ts +3 -7
- package/lib/esm/carnatic/beatviews.js +23 -53
- package/lib/esm/carnatic/beatviews.js.map +1 -1
- package/lib/esm/carnatic/embelishments.d.ts +13 -9
- package/lib/esm/carnatic/embelishments.js +94 -49
- package/lib/esm/carnatic/embelishments.js.map +1 -1
- package/lib/esm/carnatic/gamakas.js.map +1 -1
- package/lib/esm/carnatic/index.js.map +1 -1
- package/lib/esm/commands.js.map +1 -1
- package/lib/esm/core.d.ts +0 -9
- package/lib/esm/core.js +0 -47
- package/lib/esm/core.js.map +1 -1
- package/lib/esm/index.js.map +1 -1
- package/lib/esm/iterators.js.map +1 -1
- package/lib/esm/layouts.js +8 -2
- package/lib/esm/layouts.js.map +1 -1
- package/lib/esm/loader.js.map +1 -1
- package/lib/esm/notation.js.map +1 -1
- package/lib/esm/parser.js.map +1 -1
- package/lib/esm/shapes.d.ts +34 -19
- package/lib/esm/shapes.js +164 -67
- package/lib/esm/shapes.js.map +1 -1
- package/lib/esm/utils.js.map +1 -1
- package/package.json +7 -4
package/lib/esm/parser.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/parser.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/parser.ts"],"names":[],"mappings":"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","sourcesContent":["import * as TSU from \"@panyam/tsutils\";\nimport * as G from \"galore\";\nimport * as TLEX from \"tlex\";\nimport { Literal, AtomType, Note, Atom, Rest, Space, Syllable, Group } from \"./core\";\nimport { Command, CmdParam } from \"./notation\";\nimport {\n RawEmbedding,\n ApplyLayout,\n AddAtoms,\n SetCycle,\n SetBeatDuration,\n SetBreaks,\n ActivateRole,\n CreateRole,\n CreateLine,\n MetaData,\n} from \"./commands\";\n\n// TODO - Make this plugable from the client instead of hard coded\nimport * as carnatic from \"./carnatic\";\n\nconst ONE = TSU.Num.Fraction.ONE;\nconst TWO = ONE.timesNum(2);\n\n/**\n * V4 of our parser builds on V3 and has the following improvements:\n *\n * 1. Embedding Headings to demarcate sections so users dont have to use\n * explicit MD for headings.\n * 2. Unlike V3 here users break out *of* song instead instead break out \"into\"\n * song. So users spend more time writing notation and less worrying about\n * other things like headings etc.\n */\nconst [parser, itemGraph] = G.newParser(\n String.raw`\n %define IdentChar /[^%!@&\\^|\\[\\]={}()+\\-,;~: \\t\\f\\r\\n\\v\\\\\\.]/\n\n %token BSLASH \"\\\\\"\n %token OPEN_SQ \"[\"\n %token CLOSE_SQ \"]\"\n %token EQUALS \"=\"\n %token OPEN_PAREN \"(\"\n %token CLOSE_PAREN \")\"\n %token OPEN_BRACE \"{\"\n %token CLOSE_BRACE \"}\"\n %token SLASH \"/\"\n %token STAR \"*\"\n %token CARET \"^\"\n // %skip \"-\"\n %token COMMA \",\"\n %token SEMI_COLON \";\"\n %token COLON \":\"\n\n %token SINGLE_LINE_RAW_STRING />(.*)$/m { toSingleLineRawString }\n %token MULTI_LINE_RAW_STRING /r(#{0,})\"/ { toMultiLineRawString }\n\n %token EMBELISHMENT /~[^\\s]*/ { toEmbelishment }\n %token NUMBER /-?\\d+/ { toNumber }\n %token BOOLEAN /true|false/ { toBoolean }\n %token STRING /\"([^\"\\\\\\n]|\\\\.|\\\\\\n)*\"/ { toString }\n %token STRING /'([^'\\\\\\n]|\\\\.|\\\\\\n)*'/ { toString }\n %token DOTS_IDENT /(\\.+)({IdentChar}+)/ { toOctavedNote }\n %token IDENT_DOTS /({IdentChar}+)(\\.+)/ { toOctavedNote }\n %token IDENT_COLON /{IdentChar}+:/ { toRoleSelector }\n %token IDENT /{IdentChar}+/\n %token BSLASH_IDENT /\\\\{IDENT}/ { toCommandName }\n %token BSLASH_NUMBER /\\\\{NUMBER}/\n %token HYPHEN /-/\n %skip /[ \\t\\n\\f\\r]+/\n %skip_flex \"//.*$\"\n %skip /\\/\\*.*?\\*\\//\n\n Elements -> Elements Command Atoms { appendCommand } \n | Elements RoleSelector Atoms { appendRoleSelector } \n | Elements Embedding Atoms { insertEmbedding }\n | Atoms { appendAtoms }\n ;\n\n Embedding -> SINGLE_LINE_RAW_STRING | MULTI_LINE_RAW_STRING ;\n\n Command -> BSLASH_IDENT CommandParams ? { newCommand } ;\n CommandParams -> OPEN_PAREN ParamList ? CLOSE_PAREN { $2 } ;\n\n ParamList -> ParamList COMMA Param { concatParamList } ;\n ParamList -> Param { newParamList };\n Param -> ParamValue { newParam } ;\n Param -> ParamKey EQUALS ParamValue { newParam } ;\n ParamKey -> IDENT ;\n ParamValue -> ( STRING | Fraction | NUMBER | BOOLEAN ) ;\n\n RoleSelector -> IDENT_COLON ;\n\n Atoms -> Atoms Atom { concatAtoms } ;\n Atoms -> { newArray } ;\n\n Atom -> Leaf ;\n Atom -> Duration Leaf { applyDuration } ;\n Leaf -> Space | Lit | Group | Rest ;\n Rest -> HYPHEN { newRest };\n\n Space -> COMMA { newSpace } \n | SEMI_COLON { newDoubleSpace } \n | UNDER_SCORE { newSilentSpace } \n ;\n\n /*\n Lit -> DOTS_IDENT { litToAtom } \n | IDENT { litToAtom } \n | IDENT_DOTS { litToAtom } \n | STRING { litToAtom }\n | PRE_EMB Lit { litWithPreEmb }\n // | Lit POST_EMB { litWithPostEmb }\n ;\n */\n\n /* - An alternative representation to support both pre and post embelishment operators. */\n Lit -> Lit POST_EMB { litWithPostEmb }\n | PreEmbLit\n ;\n\n PreEmbLit -> LitToken \n | LitToken CARET NUMBER { litWithCaret }\n | LitToken CARET STAR { litWithCaret }\n | PRE_EMB PreEmbLit { litWithPreEmb }\n ;\n \n LitToken -> DOTS_IDENT { litToAtom }\n | IDENT { litToAtom }\n | IDENT_DOTS { litToAtom }\n | STRING { litToAtom }\n ;\n\n Group -> OPEN_SQ Atoms CLOSE_SQ { newGroup };\n\n Duration -> Fraction | NUMBER;\n Fraction -> NUMBER SLASH NUMBER { newFraction } ;\n `,\n {\n allowLeftRecursion: true,\n debug: \"\",\n type: \"lalr\",\n tokenHandlers: {\n toEmbelishment: (token: TLEX.Token, tape: TLEX.Tape, owner: Parser) => {\n const [emb, pre] = owner.parseEmbelishment(token.value);\n if (emb == null) {\n console.log(\"Skipping Embelishment: \", token.value);\n return null;\n }\n token.value = emb;\n token.tag = pre ? \"PRE_EMB\" : \"POST_EMB\";\n return token;\n },\n toCommandName: (token: TLEX.Token, tape: TLEX.Tape, owner: any) => {\n token.value = token.value.substring(1);\n return token;\n },\n toBoolean: (token: TLEX.Token, tape: TLEX.Tape, owner: any) => {\n token.value = token.value == \"true\";\n return token;\n },\n toNumber: (token: TLEX.Token, tape: TLEX.Tape, owner: any) => {\n token.value = parseInt(token.value);\n return token;\n },\n toString: (token: TLEX.Token, tape: TLEX.Tape, owner: any) => {\n token.value = token.value.substring(1, token.value.length - 1);\n return token;\n },\n toOctavedNote: (token: TLEX.Token, tape: TLEX.Tape, owner: any) => {\n if (token.tag == \"DOTS_IDENT\") {\n const octave = token.positions[1][1] - token.positions[1][0];\n const note = token.value.substring(octave);\n token.value = new Note(note, ONE, -octave);\n } else if (token.tag == \"IDENT_DOTS\") {\n const octave = token.positions[2][1] - token.positions[2][0];\n const note = token.value.substring(0, token.value.length - octave);\n token.value = new Note(note, ONE, octave);\n } else {\n throw new Error(\"Invalid token for converting to note: \" + token.tag);\n }\n return token;\n },\n toRoleSelector: (token: TLEX.Token, tape: TLEX.Tape, owner: any) => {\n token.value = token.value.substring(0, token.value.length - 1);\n return token;\n },\n toLineAnnotation: (token: TLEX.Token, tape: TLEX.Tape, owner: any) => {\n // skip the initial \"!\"\n token.value = token.value.substring(1);\n return token;\n },\n toSingleLineRawString: (token: TLEX.Token, tape: TLEX.Tape, owner: any) => {\n // skip the initial \">\"\n token.value = token.value.substring(1);\n return token;\n },\n toMultiLineRawString: (token: TLEX.Token, tape: TLEX.Tape, owner: any) => {\n // consume everything until \"#<N times> as start\n const hashes = tape.substring(token.positions[1][0], token.positions[1][1]);\n const endPat = '\"' + hashes;\n const startPos = tape.index;\n const endPos = TLEX.TapeHelper.advanceAfter(tape, endPat) - endPat.length;\n if (endPos < 0) {\n throw new Error(\"EOF expected while finding end of Raw String Literal: '\" + endPat + \"'\");\n }\n token.value = tape.substring(startPos, endPos);\n return token;\n },\n },\n },\n);\n\n/**\n * A notation doc is a list of lines that are found in a single document.\n *\n * Since our document (md or html etc) can contain multiple snippets\n * all these snippets are related\n */\nexport class Parser {\n readonly commands: Command[] = [];\n // readonly notation: Notation = new Notation();\n private runCommandFound = false;\n // readonly parseTree = new PTNodeList(\"Snippet\", null);\n\n protected ruleHandlers = {\n newFraction: (rule: G.Rule, parent: G.PTNode, ...children: G.PTNode[]) => {\n if (children.length == 1) {\n return new TSU.Num.Fraction(children[0].value);\n } else {\n return new TSU.Num.Fraction(children[0].value, children[2].value);\n }\n },\n newGroup: (rule: G.Rule, parent: G.PTNode, ...children: G.PTNode[]) => {\n const out = new Group(TWO, ...children[1].value);\n out.durationIsMultiplier = true;\n return out;\n },\n litWithCaret: (rule: G.Rule, parent: G.PTNode, ...children: G.PTNode[]) => {\n const lit = Note.fromLit(children[0].value as Literal);\n const opnode = children[2];\n const shiftValue = opnode.sym.label == \"STAR\" ? true : opnode.value;\n lit.shift = shiftValue;\n return lit;\n },\n litWithPreEmb: (rule: G.Rule, parent: G.PTNode, ...children: G.PTNode[]) => {\n const emb = children[0];\n const lit = children[1].value as Literal;\n lit.embelishments.splice(0, 0, emb.value);\n return lit;\n },\n litWithPostEmb: (rule: G.Rule, parent: G.PTNode, ...children: G.PTNode[]) => {\n const lit = children[0].value as Literal;\n const emb = children[1];\n lit.embelishments.push(emb);\n return lit;\n },\n litToAtom: (rule: G.Rule, parent: G.PTNode, ...children: G.PTNode[]) => {\n const lit = children[0];\n if (lit.sym.label == \"DOTS_IDENT\" || lit.sym.label == \"IDENT_DOTS\") {\n return lit.value;\n } else if (lit.sym.label == \"IDENT\") {\n // Mark this as a Literal to be processed later\n return new Literal(lit.value);\n // return role.notesOnly ? new Note(lit.value) : new Syllable(lit.value);\n } else if (lit.sym.label == \"STRING\") {\n // const role = this.snippet.currRole;\n // if (role.notesOnly) throw new Error(\"Strings cannot appear in notes only mode\");\n return new Syllable(lit.value);\n } else {\n throw new Error(\"Invalid lit: \" + lit);\n }\n },\n newSpace: (rule: G.Rule, parent: G.PTNode, ...children: G.PTNode[]) => {\n return new Space();\n },\n newRest: (rule: G.Rule, parent: G.PTNode, ...children: G.PTNode[]) => {\n return new Rest();\n },\n newDoubleSpace: (rule: G.Rule, parent: G.PTNode, ...children: G.PTNode[]) => {\n return new Space(ONE.timesNum(2));\n },\n newSilentSpace: (rule: G.Rule, parent: G.PTNode, ...children: G.PTNode[]) => {\n return new Space(ONE, true);\n },\n applyDuration: (rule: G.Rule, parent: G.PTNode, ...children: G.PTNode[]) => {\n let dur = children[0].value as TSU.Num.Fraction | number;\n const leaf = children[1].value as Atom;\n if (typeof dur === \"number\") {\n dur = ONE.timesNum(dur);\n }\n leaf.duration = dur;\n if (leaf.type == AtomType.GROUP) {\n (leaf as Group).durationIsMultiplier = true;\n }\n return leaf;\n },\n newArray: (rule: G.Rule, parent: G.PTNode, ...children: G.PTNode[]) => {\n // create an array of values from all the values of child nodes\n return children.map((c) => c.value);\n },\n concatAtoms: (rule: G.Rule, parent: G.PTNode, ...children: G.PTNode[]) => {\n const atoms = children[0].value;\n const atom = children[1].value;\n atoms.push(atom);\n return atoms;\n },\n newParam: (rule: G.Rule, parent: G.PTNode, ...children: G.PTNode[]) => {\n if (children.length == 1) {\n return { key: null, value: children[0].value };\n } else {\n return { key: children[0].value, value: children[2].value };\n }\n },\n newParamList: (rule: G.Rule, parent: G.PTNode, ...children: G.PTNode[]) => {\n return [children[0].value];\n },\n concatParamList: (rule: G.Rule, parent: G.PTNode, ...children: G.PTNode[]) => {\n const params = children[0].value;\n const newParam = children[2].value;\n params.push(newParam);\n return params;\n },\n newCommand: (rule: G.Rule, parent: G.PTNode, ...children: G.PTNode[]) => {\n return this.createCommand(children[0].value, children[1].value);\n },\n appendAtoms: (rule: G.Rule, parent: G.PTNode, ...children: G.PTNode[]) => {\n const atoms = children[0].value as Atom[];\n if (atoms.length > 0) {\n this.addCommand(new AddAtoms(...atoms));\n }\n return null;\n },\n appendCommand: (rule: G.Rule, parent: G.PTNode, ...children: G.PTNode[]) => {\n const command = children[1].value as Command;\n this.addCommand(command);\n\n const atoms = children[2].value as Atom[];\n if (atoms.length > 0) {\n this.addCommand(new AddAtoms(...atoms));\n }\n return null;\n },\n appendRoleSelector: (rule: G.Rule, parent: G.PTNode, ...children: G.PTNode[]) => {\n const roleName = children[1].value;\n const lName = roleName.toLowerCase().trim();\n this.addCommand(new ActivateRole([{ key: null, value: lName }]));\n\n const atoms = children[2].value as Atom[];\n if (atoms.length > 0) {\n this.addCommand(new AddAtoms(...atoms));\n }\n return null;\n },\n insertEmbedding: (rule: G.Rule, parent: G.PTNode, ...children: G.PTNode[]) => {\n // How to handle embeddings - these are just blocks\n // to escape out of song (most likely for some rendering of html/md etc)\n const rawVal = children[1].value;\n this.addCommand(new RawEmbedding([{ key: null, value: rawVal }]));\n const atoms = children[2].value as Atom[];\n if (atoms.length > 0) {\n this.addCommand(new AddAtoms(...atoms));\n }\n return null;\n },\n };\n\n constructor(config?: any) {\n config = config || {};\n }\n\n createCommand(name: string, params: CmdParam[]): Command {\n const lName = name.trim().toLowerCase();\n params = params || [];\n if (lName == \"line\") {\n return new CreateLine(params);\n } else if (lName == \"meta\") {\n return new MetaData(params);\n } else if (lName == \"role\") {\n return new CreateRole(params);\n } else if (lName == \"layout\") {\n return new ApplyLayout(params);\n } else if (lName == \"beatduration\") {\n return new SetBeatDuration(params);\n } else if (lName == \"breaks\") {\n return new SetBreaks(params);\n } else if (lName == \"cycle\") {\n return new SetCycle(params);\n } else {\n // Try to set this as the current role\n throw new Error(\"Invalid command: \" + lName);\n }\n }\n\n addCommand(cmd: Command): void {\n cmd.index = this.commands.length;\n this.commands.push(cmd);\n }\n\n parse(input: string): any {\n const ptree = parser.parse(input, {\n tokenizerContext: this,\n ruleHandlers: this.ruleHandlers,\n });\n return ptree;\n }\n\n parseEmbelishment(value: string): [any, boolean] {\n return carnatic.parseEmbelishment(value);\n }\n}\n"]}
|
package/lib/esm/shapes.d.ts
CHANGED
|
@@ -3,44 +3,59 @@ import { FlatAtom } from "./iterators";
|
|
|
3
3
|
export declare abstract class Shape {
|
|
4
4
|
private static idCounter;
|
|
5
5
|
readonly shapeId: number;
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
protected
|
|
11
|
-
protected
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
6
|
+
protected _x: number | null;
|
|
7
|
+
protected _y: number | null;
|
|
8
|
+
protected _width: number | null;
|
|
9
|
+
protected _height: number | null;
|
|
10
|
+
protected _minSize: TSU.Geom.Size;
|
|
11
|
+
protected parentShape: Shape | null;
|
|
12
|
+
children: Shape[];
|
|
13
|
+
get minSize(): TSU.Geom.Size;
|
|
14
|
+
addShape(child: Shape, index?: number): void;
|
|
15
|
+
removeShape(child: Shape): void;
|
|
16
|
+
removeFromParent(): void;
|
|
17
|
+
protected abstract refreshMinSize(): TSU.Geom.Size;
|
|
18
|
+
protected abstract updateBounds(x: null | number, y: null | number, w: null | number, h: null | number): [number | null, number | null, number | null, number | null];
|
|
19
|
+
resetMinSize(): void;
|
|
20
|
+
setBounds(x: number | null, y: number | null, w: number | null, h: number | null, applyLayout?: boolean): [number | null, number | null, number | null, number | null];
|
|
21
|
+
get hasX(): boolean;
|
|
22
|
+
get hasY(): boolean;
|
|
23
|
+
get hasWidth(): boolean;
|
|
24
|
+
get hasHeight(): boolean;
|
|
17
25
|
get x(): number;
|
|
18
|
-
set x(x: number);
|
|
26
|
+
set x(x: number | null);
|
|
19
27
|
get y(): number;
|
|
20
|
-
set y(y: number);
|
|
28
|
+
set y(y: number | null);
|
|
21
29
|
get width(): number;
|
|
30
|
+
set width(w: number | null);
|
|
22
31
|
get height(): number;
|
|
32
|
+
set height(h: number | null);
|
|
33
|
+
refreshLayout(): void;
|
|
23
34
|
}
|
|
24
35
|
export declare abstract class Embelishment extends Shape {
|
|
25
|
-
refreshLayout(): void;
|
|
26
36
|
}
|
|
27
37
|
export declare class ElementShape extends Shape {
|
|
28
38
|
readonly element: SVGGraphicsElement;
|
|
29
39
|
constructor(element: SVGGraphicsElement);
|
|
30
|
-
protected
|
|
31
|
-
protected
|
|
40
|
+
protected refreshMinSize(): TSU.Geom.Size;
|
|
41
|
+
protected updateBounds(x: null | number, y: null | number, w: null | number, h: null | number): [number | null, number | null, number | null, number | null];
|
|
42
|
+
refreshLayout(): void;
|
|
32
43
|
}
|
|
33
44
|
export declare abstract class AtomView extends Shape {
|
|
34
45
|
flatAtom: FlatAtom;
|
|
35
46
|
glyph: ElementShape;
|
|
36
47
|
depth: number;
|
|
37
48
|
roleIndex: number;
|
|
49
|
+
baseline: number;
|
|
50
|
+
ascent: number;
|
|
51
|
+
descent: number;
|
|
52
|
+
capHeight: number;
|
|
53
|
+
leading: number;
|
|
38
54
|
constructor(flatAtom: FlatAtom);
|
|
39
|
-
abstract get minSize(): TSU.Geom.Size;
|
|
40
|
-
protected refreshBBox(): TSU.Geom.Rect;
|
|
41
|
-
protected updatePosition(x: null | number, y: null | number): [number | null, number | null];
|
|
42
55
|
abstract createElements(parent: SVGGraphicsElement): void;
|
|
43
56
|
abstract refreshLayout(): void;
|
|
57
|
+
protected refreshMinSize(): TSU.Geom.Size;
|
|
58
|
+
protected updateBounds(x: null | number, y: null | number, w: null | number, h: null | number): [number | null, number | null, number | null, number | null];
|
|
44
59
|
get viewId(): number;
|
|
45
60
|
embRoot(): SVGGraphicsElement;
|
|
46
61
|
}
|
package/lib/esm/shapes.js
CHANGED
|
@@ -33,84 +33,196 @@ import * as TSU from "@panyam/tsutils";
|
|
|
33
33
|
var Shape = (function () {
|
|
34
34
|
function Shape() {
|
|
35
35
|
this.shapeId = Shape.idCounter++;
|
|
36
|
-
this.
|
|
37
|
-
this.
|
|
38
|
-
this.
|
|
39
|
-
this.
|
|
36
|
+
this._x = null;
|
|
37
|
+
this._y = null;
|
|
38
|
+
this._width = null;
|
|
39
|
+
this._height = null;
|
|
40
|
+
this.parentShape = null;
|
|
41
|
+
this.children = [];
|
|
40
42
|
}
|
|
41
|
-
Shape.prototype
|
|
42
|
-
this.xChanged = true;
|
|
43
|
-
this.yChanged = true;
|
|
44
|
-
this.widthChanged = true;
|
|
45
|
-
this.heightChanged = true;
|
|
46
|
-
this._bbox = null;
|
|
47
|
-
};
|
|
48
|
-
Shape.prototype.moveTo = function (x, y) {
|
|
49
|
-
var _a;
|
|
50
|
-
_a = __read(this.updatePosition(x, y), 2), x = _a[0], y = _a[1];
|
|
51
|
-
if (x != null)
|
|
52
|
-
this.bbox.x = x;
|
|
53
|
-
if (y != null)
|
|
54
|
-
this.bbox.y = y;
|
|
55
|
-
return [x, y];
|
|
56
|
-
};
|
|
57
|
-
Object.defineProperty(Shape.prototype, "bbox", {
|
|
43
|
+
Object.defineProperty(Shape.prototype, "minSize", {
|
|
58
44
|
get: function () {
|
|
59
|
-
if (!this.
|
|
60
|
-
this.
|
|
61
|
-
this.xChanged = this.yChanged = this.widthChanged = this.heightChanged = false;
|
|
45
|
+
if (!this._minSize) {
|
|
46
|
+
this._minSize = this.refreshMinSize();
|
|
62
47
|
}
|
|
63
|
-
return this.
|
|
48
|
+
return this._minSize;
|
|
64
49
|
},
|
|
65
50
|
enumerable: false,
|
|
66
51
|
configurable: true
|
|
67
52
|
});
|
|
68
|
-
Shape.prototype.
|
|
53
|
+
Shape.prototype.addShape = function (child, index) {
|
|
54
|
+
if (index === void 0) { index = -1; }
|
|
55
|
+
child.removeFromParent();
|
|
56
|
+
if (index >= 0) {
|
|
57
|
+
this.children.splice(index, 0, child);
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
this.children.push(child);
|
|
61
|
+
}
|
|
62
|
+
child.parentShape = this;
|
|
63
|
+
};
|
|
64
|
+
Shape.prototype.removeShape = function (child) {
|
|
65
|
+
var index = this.children.indexOf(child);
|
|
66
|
+
if (index >= 0) {
|
|
67
|
+
this.children.splice(index, 1);
|
|
68
|
+
}
|
|
69
|
+
child.parentShape = null;
|
|
70
|
+
};
|
|
71
|
+
Shape.prototype.removeFromParent = function () {
|
|
72
|
+
if (this.parentShape) {
|
|
73
|
+
this.parentShape.removeShape(this);
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
Shape.prototype.resetMinSize = function () {
|
|
77
|
+
this._minSize = null;
|
|
78
|
+
};
|
|
79
|
+
Shape.prototype.setBounds = function (x, y, w, h, applyLayout) {
|
|
80
|
+
if (applyLayout === void 0) { applyLayout = false; }
|
|
69
81
|
if (x != null) {
|
|
70
|
-
|
|
71
|
-
|
|
82
|
+
if (isNaN(x)) {
|
|
83
|
+
this._x = null;
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
this._x = x;
|
|
87
|
+
}
|
|
72
88
|
}
|
|
73
89
|
if (y != null) {
|
|
74
|
-
|
|
75
|
-
|
|
90
|
+
if (isNaN(y)) {
|
|
91
|
+
this._y = null;
|
|
92
|
+
}
|
|
93
|
+
else {
|
|
94
|
+
this._y = y;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
if (w != null) {
|
|
98
|
+
if (isNaN(w)) {
|
|
99
|
+
this._width = null;
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
this._width = w;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
if (h != null) {
|
|
106
|
+
if (isNaN(h)) {
|
|
107
|
+
this._height = null;
|
|
108
|
+
}
|
|
109
|
+
else {
|
|
110
|
+
this._height = h;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
var _a = __read(this.updateBounds(x, y, w, h), 4), nx = _a[0], ny = _a[1], nw = _a[2], nh = _a[3];
|
|
114
|
+
if (nx != null) {
|
|
115
|
+
if (isNaN(nx)) {
|
|
116
|
+
this._x = null;
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
this._x = nx;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
if (ny != null) {
|
|
123
|
+
if (isNaN(ny)) {
|
|
124
|
+
this._y = null;
|
|
125
|
+
}
|
|
126
|
+
else {
|
|
127
|
+
this._y = ny;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
if (nw != null) {
|
|
131
|
+
if (isNaN(nw)) {
|
|
132
|
+
this._width = null;
|
|
133
|
+
}
|
|
134
|
+
else {
|
|
135
|
+
this._width = nw;
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
if (nh != null) {
|
|
139
|
+
if (isNaN(nh)) {
|
|
140
|
+
this._height = null;
|
|
141
|
+
}
|
|
142
|
+
else {
|
|
143
|
+
this._height = nh;
|
|
144
|
+
}
|
|
76
145
|
}
|
|
146
|
+
if (applyLayout)
|
|
147
|
+
this.refreshLayout();
|
|
148
|
+
return [nx, ny, nw, nh];
|
|
77
149
|
};
|
|
150
|
+
Object.defineProperty(Shape.prototype, "hasX", {
|
|
151
|
+
get: function () {
|
|
152
|
+
return this._x != null && !isNaN(this._x);
|
|
153
|
+
},
|
|
154
|
+
enumerable: false,
|
|
155
|
+
configurable: true
|
|
156
|
+
});
|
|
157
|
+
Object.defineProperty(Shape.prototype, "hasY", {
|
|
158
|
+
get: function () {
|
|
159
|
+
return this._y != null && !isNaN(this._y);
|
|
160
|
+
},
|
|
161
|
+
enumerable: false,
|
|
162
|
+
configurable: true
|
|
163
|
+
});
|
|
164
|
+
Object.defineProperty(Shape.prototype, "hasWidth", {
|
|
165
|
+
get: function () {
|
|
166
|
+
return this._width != null && !isNaN(this._width);
|
|
167
|
+
},
|
|
168
|
+
enumerable: false,
|
|
169
|
+
configurable: true
|
|
170
|
+
});
|
|
171
|
+
Object.defineProperty(Shape.prototype, "hasHeight", {
|
|
172
|
+
get: function () {
|
|
173
|
+
return this._height != null && !isNaN(this._height);
|
|
174
|
+
},
|
|
175
|
+
enumerable: false,
|
|
176
|
+
configurable: true
|
|
177
|
+
});
|
|
78
178
|
Object.defineProperty(Shape.prototype, "x", {
|
|
79
179
|
get: function () {
|
|
80
|
-
return this.
|
|
180
|
+
return this._x || 0;
|
|
81
181
|
},
|
|
82
182
|
set: function (x) {
|
|
83
|
-
|
|
84
|
-
this.xyUpdated(nx, ny);
|
|
183
|
+
this.setBounds(x == null ? NaN : x, null, null, null);
|
|
85
184
|
},
|
|
86
185
|
enumerable: false,
|
|
87
186
|
configurable: true
|
|
88
187
|
});
|
|
89
188
|
Object.defineProperty(Shape.prototype, "y", {
|
|
90
189
|
get: function () {
|
|
91
|
-
|
|
190
|
+
if (this._y != null)
|
|
191
|
+
return this._y;
|
|
192
|
+
return 0;
|
|
92
193
|
},
|
|
93
194
|
set: function (y) {
|
|
94
|
-
|
|
95
|
-
this.xyUpdated(nx, ny);
|
|
195
|
+
this.setBounds(null, y == null ? NaN : y, null, null);
|
|
96
196
|
},
|
|
97
197
|
enumerable: false,
|
|
98
198
|
configurable: true
|
|
99
199
|
});
|
|
100
200
|
Object.defineProperty(Shape.prototype, "width", {
|
|
101
201
|
get: function () {
|
|
102
|
-
|
|
202
|
+
if (this._width != null)
|
|
203
|
+
return this._width;
|
|
204
|
+
return 0;
|
|
205
|
+
},
|
|
206
|
+
set: function (w) {
|
|
207
|
+
this.setBounds(null, null, w == null ? NaN : w, null);
|
|
103
208
|
},
|
|
104
209
|
enumerable: false,
|
|
105
210
|
configurable: true
|
|
106
211
|
});
|
|
107
212
|
Object.defineProperty(Shape.prototype, "height", {
|
|
108
213
|
get: function () {
|
|
109
|
-
|
|
214
|
+
if (this._height != null)
|
|
215
|
+
return this._height;
|
|
216
|
+
return 0;
|
|
217
|
+
},
|
|
218
|
+
set: function (h) {
|
|
219
|
+
this.setBounds(null, null, null, h == null ? NaN : h);
|
|
110
220
|
},
|
|
111
221
|
enumerable: false,
|
|
112
222
|
configurable: true
|
|
113
223
|
});
|
|
224
|
+
Shape.prototype.refreshLayout = function () {
|
|
225
|
+
};
|
|
114
226
|
Shape.idCounter = 0;
|
|
115
227
|
return Shape;
|
|
116
228
|
}());
|
|
@@ -120,8 +232,6 @@ var Embelishment = (function (_super) {
|
|
|
120
232
|
function Embelishment() {
|
|
121
233
|
return _super !== null && _super.apply(this, arguments) || this;
|
|
122
234
|
}
|
|
123
|
-
Embelishment.prototype.refreshLayout = function () {
|
|
124
|
-
};
|
|
125
235
|
return Embelishment;
|
|
126
236
|
}(Shape));
|
|
127
237
|
export { Embelishment };
|
|
@@ -132,30 +242,17 @@ var ElementShape = (function (_super) {
|
|
|
132
242
|
_this.element = element;
|
|
133
243
|
return _this;
|
|
134
244
|
}
|
|
135
|
-
ElementShape.prototype.
|
|
136
|
-
|
|
137
|
-
var bbox = TSU.Geom.Rect.from(this.element.getBBox());
|
|
138
|
-
if (TSU.Browser.IS_SAFARI()) {
|
|
139
|
-
var clientRect = this.element.getClientRects()[0];
|
|
140
|
-
if (clientRect) {
|
|
141
|
-
var parentClientRect = (_a = this.element.parentElement) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect();
|
|
142
|
-
bbox.x = bbox.x + clientRect.x - ((parentClientRect === null || parentClientRect === void 0 ? void 0 : parentClientRect.x) || 0);
|
|
143
|
-
bbox.width = clientRect.width;
|
|
144
|
-
bbox.height = clientRect.height;
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
return bbox;
|
|
245
|
+
ElementShape.prototype.refreshMinSize = function () {
|
|
246
|
+
return TSU.DOM.svgBBox(this.element);
|
|
148
247
|
};
|
|
149
|
-
ElementShape.prototype.
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
this.element.setAttribute("y", "" +
|
|
157
|
-
}
|
|
158
|
-
return [x, y];
|
|
248
|
+
ElementShape.prototype.updateBounds = function (x, y, w, h) {
|
|
249
|
+
return [x, y, w, h];
|
|
250
|
+
};
|
|
251
|
+
ElementShape.prototype.refreshLayout = function () {
|
|
252
|
+
if (this.hasX)
|
|
253
|
+
this.element.setAttribute("x", "" + this._x);
|
|
254
|
+
if (this.hasY)
|
|
255
|
+
this.element.setAttribute("y", "" + this._y);
|
|
159
256
|
};
|
|
160
257
|
return ElementShape;
|
|
161
258
|
}(Shape));
|
|
@@ -169,11 +266,11 @@ var AtomView = (function (_super) {
|
|
|
169
266
|
_this.roleIndex = 0;
|
|
170
267
|
return _this;
|
|
171
268
|
}
|
|
172
|
-
AtomView.prototype.
|
|
173
|
-
return this.glyph.
|
|
269
|
+
AtomView.prototype.refreshMinSize = function () {
|
|
270
|
+
return this.glyph.minSize;
|
|
174
271
|
};
|
|
175
|
-
AtomView.prototype.
|
|
176
|
-
return this.glyph.
|
|
272
|
+
AtomView.prototype.updateBounds = function (x, y, w, h) {
|
|
273
|
+
return this.glyph.setBounds(x, y, w, h);
|
|
177
274
|
};
|
|
178
275
|
Object.defineProperty(AtomView.prototype, "viewId", {
|
|
179
276
|
get: function () {
|
package/lib/esm/shapes.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shapes.js","sourceRoot":"","sources":["../../src/shapes.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"shapes.js","sourceRoot":"","sources":["../../src/shapes.ts"],"names":[],"mappings":"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","sourcesContent":["import * as TSU from \"@panyam/tsutils\";\nimport { FlatAtom } from \"./iterators\";\n\n/**\n * Base class of all renderable objects for caching things like bounding boxes etc.\n * We do this since a lot of the property setters dont change bounding boxes but\n * bounding box reads are a bit slow in general.\n */\nexport abstract class Shape {\n private static idCounter = 0;\n readonly shapeId: number = Shape.idCounter++;\n /**\n * Note that x and y coordinates are not always the x and y coordinates of the bounding box.\n * Eg a circle's x and y coordinates are its center point and not the top left corner\n * These \"main\" coordinates are referred as control coordinates.\n */\n protected _x: number | null = null;\n protected _y: number | null = null;\n protected _width: number | null = null;\n protected _height: number | null = null;\n // protected _bbox: TSU.Geom.Rect;\n protected _minSize: TSU.Geom.Size;\n protected parentShape: Shape | null = null;\n children: Shape[] = [];\n\n /**\n * Sizes can have a minimum size.\n * This is usually the size of the bounding box.\n */\n get minSize(): TSU.Geom.Size {\n if (!this._minSize) {\n this._minSize = this.refreshMinSize();\n // this.xChanged = this.yChanged = this.widthChanged = this.heightChanged = false;\n }\n return this._minSize;\n }\n\n /**\n * Add a child shape.\n */\n addShape(child: Shape, index = -1): void {\n // Orphan it first\n child.removeFromParent();\n\n // Then add it\n if (index >= 0) {\n this.children.splice(index, 0, child);\n } else {\n this.children.push(child);\n }\n child.parentShape = this;\n }\n\n /**\n * Remove a child from our children list if it exists.\n */\n removeShape(child: Shape): void {\n const index = this.children.indexOf(child);\n if (index >= 0) {\n this.children.splice(index, 1);\n }\n child.parentShape = null;\n }\n\n /**\n * Remove ourselves from our parent.\n */\n removeFromParent(): void {\n if (this.parentShape) {\n this.parentShape.removeShape(this);\n }\n }\n\n /**\n * Returns the unioned bounding box of all child shapes.\n */\n /*\n protected childrenBBox(): TSU.Geom.Rect | null {\n let bbox: TSU.Geom.Rect | null = null;\n for (let i = this.children.length - 1; i >= 0; i--) {\n if (bbox == null) bbox = TSU.Geom.Rect.from(this.children[i].bbox);\n else bbox = bbox.union(this.children[i].bbox);\n }\n return bbox;\n }\n */\n\n /**\n * refreshBBox is called by the Shape when it knows the bbox it is tracking\n * cannot be trusted and has to be refreshed by calling native methods.\n */\n protected abstract refreshMinSize(): TSU.Geom.Size;\n // protected abstract refreshBBox(): TSU.Geom.Rect;\n protected abstract updateBounds(\n x: null | number,\n y: null | number,\n w: null | number,\n h: null | number,\n ): [number | null, number | null, number | null, number | null];\n\n resetMinSize(): void {\n this._minSize = null as unknown as TSU.Geom.Size;\n }\n /*\n resetBBox(): void {\n this._bbox = null as unknown as TSU.Geom.Rect;\n }\n */\n\n /**\n * Sets the x or y coordinate of this shape in coordinate system within its\n * parent.\n *\n * Note that null and NaN are valid values and mean the following:\n * null - Dont change the value. Passed to \"ignore\" effects.\n * NaN - Ensure the value is set to null so that the bounding box specific coord is used going forward.\n */\n setBounds(\n x: number | null,\n y: number | null,\n w: number | null,\n h: number | null,\n applyLayout = false,\n ): [number | null, number | null, number | null, number | null] {\n if (x != null) {\n if (isNaN(x)) {\n this._x = null;\n } else {\n this._x = x;\n }\n }\n if (y != null) {\n if (isNaN(y)) {\n this._y = null;\n } else {\n this._y = y;\n }\n }\n if (w != null) {\n if (isNaN(w)) {\n this._width = null;\n } else {\n this._width = w;\n }\n }\n if (h != null) {\n if (isNaN(h)) {\n this._height = null;\n } else {\n this._height = h;\n }\n }\n const [nx, ny, nw, nh] = this.updateBounds(x, y, w, h);\n if (nx != null) {\n if (isNaN(nx)) {\n this._x = null;\n } else {\n this._x = nx;\n }\n }\n if (ny != null) {\n if (isNaN(ny)) {\n this._y = null;\n } else {\n this._y = ny;\n }\n }\n if (nw != null) {\n if (isNaN(nw)) {\n this._width = null;\n } else {\n this._width = nw;\n }\n }\n if (nh != null) {\n if (isNaN(nh)) {\n this._height = null;\n } else {\n this._height = nh;\n }\n }\n if (applyLayout) this.refreshLayout();\n // this.resetBBox();\n return [nx, ny, nw, nh];\n }\n\n /**\n * Gets the bounding box of this shape in the coordinate system within\n * the parent.\n */\n /*\n protected get bbox2(): TSU.Geom.Rect {\n if (!this._bbox) {\n this._bbox = this.refreshBBox().union(this.childrenBBox());\n // this.xChanged = this.yChanged = this.widthChanged = this.heightChanged = false;\n }\n return this._bbox;\n }\n */\n\n get hasX(): boolean {\n return this._x != null && !isNaN(this._x);\n }\n\n get hasY(): boolean {\n return this._y != null && !isNaN(this._y);\n }\n\n get hasWidth(): boolean {\n return this._width != null && !isNaN(this._width);\n }\n\n get hasHeight(): boolean {\n return this._height != null && !isNaN(this._height);\n }\n\n /**\n * Gets the x coordinate within the parent's coordinate system.\n */\n get x(): number {\n return this._x || 0;\n }\n\n /**\n * Sets the x coordinate within the parent's coordinate system.\n */\n set x(x: number | null) {\n // Here a manual x is being set - how does this interfere with the bounding box?\n // We should _x to the new value to indicate a manual value was set.\n // and reset bbox so that based on this x a new bbox may need to be calculated\n this.setBounds(x == null ? NaN : x, null, null, null);\n }\n\n /**\n * Gets the y coordinate within the parent's coordinate system.\n */\n get y(): number {\n if (this._y != null) return this._y;\n return 0; // this.bbox.y;\n }\n\n /**\n * Sets the y coordinate within the parent's coordinate system.\n */\n set y(y: number | null) {\n this.setBounds(null, y == null ? NaN : y, null, null);\n }\n\n get width(): number {\n if (this._width != null) return this._width;\n return 0; // this.bbox.width;\n }\n\n set width(w: number | null) {\n this.setBounds(null, null, w == null ? NaN : w, null);\n }\n\n get height(): number {\n if (this._height != null) return this._height;\n return 0; // this.bbox.height;\n }\n\n set height(h: number | null) {\n this.setBounds(null, null, null, h == null ? NaN : h);\n }\n\n /**\n * This is called when bounds or other properties of a shape have changed to\n * give the shape an opportunity to layout the children. For shapes\n * with no children this is a no-op. It is expected the Shape will keep track\n * of all changes so it can apply them all in in one go in this method - A\n * form of \"commit\"ing the layout transaction.\n */\n refreshLayout(): void {\n // throw new Error(\"Implement this\");\n }\n}\n\nexport abstract class Embelishment extends Shape {}\n\nexport class ElementShape extends Shape {\n constructor(public readonly element: SVGGraphicsElement) {\n super();\n }\n\n protected refreshMinSize(): TSU.Geom.Size {\n return TSU.DOM.svgBBox(this.element);\n }\n\n protected updateBounds(\n x: null | number,\n y: null | number,\n w: null | number,\n h: null | number,\n ): [number | null, number | null, number | null, number | null] {\n return [x, y, w, h];\n }\n\n refreshLayout(): void {\n if (this.hasX) this.element.setAttribute(\"x\", \"\" + this._x);\n if (this.hasY) this.element.setAttribute(\"y\", \"\" + this._y);\n }\n}\n\nexport abstract class AtomView extends Shape {\n glyph: ElementShape;\n depth = 0;\n roleIndex = 0;\n\n // LayoutMetrics for the AtomView so all atomviews laid out on the\n // same baseline will show up aligned vertically\n baseline: number;\n ascent: number;\n descent: number;\n capHeight: number;\n leading: number;\n\n constructor(public flatAtom: FlatAtom) {\n super();\n }\n\n /**\n * Creates views needed for this AtomView.\n */\n abstract createElements(parent: SVGGraphicsElement): void;\n abstract refreshLayout(): void;\n\n /**\n * By default the glyph's bbox is our bbox.\n */\n protected refreshMinSize(): TSU.Geom.Size {\n return this.glyph.minSize;\n }\n\n protected updateBounds(\n x: null | number,\n y: null | number,\n w: null | number,\n h: null | number,\n ): [number | null, number | null, number | null, number | null] {\n return this.glyph.setBounds(x, y, w, h);\n }\n\n get viewId(): number {\n return this.flatAtom.uuid;\n }\n\n embRoot(): SVGGraphicsElement {\n let rootElem = this.glyph.element.parentElement as any as SVGGraphicsElement;\n while (rootElem && (rootElem.tagName == \"tspan\" || rootElem.tagName == \"text\")) {\n rootElem = rootElem.parentElement as any as SVGGraphicsElement;\n }\n return rootElem;\n }\n}\n"]}
|
package/lib/esm/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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","sourcesContent":["import * as TSU from \"@panyam/tsutils\";\nimport { Cycle, Bar, Atom, Space, Group, Syllable } from \"./core\";\nconst ONE = TSU.Num.Fraction.ONE;\n\n/**\n * Convert a cycle given as a string into the bars representing\n * each of its cycle bars.\n */\nexport function cycleStrToBarsStrs(cycleStr: string): string[] {\n return cycleStr\n .replace(/\\|+/g, \"|\")\n .split(\"|\")\n .map((x) => x.trim())\n .filter((x) => x.length > 0);\n}\n\n/**\n * Parse a tala pattern string.\n */\nexport function parseCycle(cycleStr: string): Cycle {\n return new Cycle({\n bars: cycleStrToBarsStrs(cycleStr).map(parseBar),\n });\n}\n\n/**\n * Parse a cycle part string into beat lengths.\n */\nexport function parseBar(barStr: string): Bar {\n const bars = barStr.replace(/\\s+/g, \" \").split(\" \");\n const cp = new Bar();\n if (bars.length == 1) {\n for (let i = 0; i < barStr.length; i++) {\n let count = 0;\n const ch = barStr[i];\n if (ch == \",\") {\n count = 1;\n } else {\n const num = parseInt(ch);\n if (num) {\n count = num;\n }\n }\n while (count > 0) {\n cp.beatLengths.push(ONE);\n count--;\n }\n }\n } else {\n for (let i = 0; i < bars.length; i++) {\n if (/^,+$/.test(bars[i])) {\n cp.beatLengths.push(TSU.Num.Frac(bars[i].length));\n } else {\n const num = parseInt(bars[i]);\n if (num) cp.beatLengths.push(TSU.Num.Frac(num));\n }\n }\n }\n return cp;\n}\n\nexport function parseSyllable(value: string): Atom {\n const notes = [] as Atom[];\n // Only \"_\" make a difference here\n for (let i = 0; i < value.length; ) {\n let ch = value[i];\n if (ch == \"_\") {\n notes.push(new Space(ONE, true));\n i++;\n } else if (ch == \",\") {\n notes.push(new Space(ONE, false));\n i++;\n } else {\n let syll = \"\";\n while (i < value.length && ch != \",\" && ch != \"_\") {\n syll += ch;\n i++;\n ch = value[i];\n }\n notes.push(new Syllable(syll));\n }\n }\n if (notes.length == 1) return notes[0];\n return new Group(ONE, ...notes);\n}\n\nexport function parseProperty(line: string): [string, string] {\n const bars = line.split(\"=\").map((x) => x.trim());\n if (bars.length < 2) {\n throw new Error(\"Properties must be of type <key> = <value>\");\n }\n const key = bars[0];\n const value = bars[1];\n return [key, value];\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "notations",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.34",
|
|
4
4
|
"author": "Sriram Panyam",
|
|
5
5
|
"description": "A package for modelling, parsing, laying out carnatic musical notation",
|
|
6
6
|
"homepage": "https://github.com/panyam/notations#readme",
|
|
7
7
|
"license": "ISC",
|
|
8
|
-
"types": "lib/cjs/index.d.ts",
|
|
9
8
|
"main": "./lib/cjs/index.js",
|
|
10
9
|
"module": "./lib/esm/index.js",
|
|
10
|
+
"types": "lib/cjs/index.d.ts",
|
|
11
11
|
"files": [
|
|
12
12
|
"lib/"
|
|
13
13
|
],
|
|
@@ -58,7 +58,9 @@
|
|
|
58
58
|
"prettier": "^2.3.2",
|
|
59
59
|
"ts-jest": "^27.0.5",
|
|
60
60
|
"typescript": "^4.4.2",
|
|
61
|
-
"typescript-tslint-plugin": "^1.0.1"
|
|
61
|
+
"typescript-tslint-plugin": "^1.0.1",
|
|
62
|
+
"webpack": "^5.53.0",
|
|
63
|
+
"webpack-cli": "^4.8.0"
|
|
62
64
|
},
|
|
63
65
|
"pre-commit": [
|
|
64
66
|
"precommit-msg",
|
|
@@ -69,7 +71,8 @@
|
|
|
69
71
|
],
|
|
70
72
|
"scripts": {
|
|
71
73
|
"clean": "rm -Rf lib && jest --clearCache && rm -rf static/lib",
|
|
72
|
-
"
|
|
74
|
+
"buildumd": "npm run clean && tsc -p tsconfig.json && tsc -p tsconfig-cjs.json && webpack --mode=development",
|
|
75
|
+
"build": "npm run clean && tsc -p tsconfig.json && tsc -p tsconfig-cjs.json",
|
|
73
76
|
"test": "jest --coverage --runInBand",
|
|
74
77
|
"lint": "eslint './src' --quiet --ext .ts --resolve-plugins-relative-to .",
|
|
75
78
|
"lintfix": "eslint 'src/**/*.ts' --quiet --fix --resolve-plugins-relative-to .",
|