notations 0.0.48 → 0.0.51
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/beats.d.ts +36 -71
- package/lib/cjs/beats.js +225 -432
- package/lib/cjs/beats.js.map +1 -1
- package/lib/cjs/beatutils.d.ts +3 -0
- package/lib/cjs/beatutils.js +64 -0
- package/lib/cjs/beatutils.js.map +1 -0
- package/lib/cjs/beatview.d.ts +18 -0
- package/lib/cjs/beatview.js +62 -0
- package/lib/cjs/beatview.js.map +1 -0
- package/lib/cjs/carnatic/LineView.d.ts +2 -7
- package/lib/cjs/carnatic/LineView.js +13 -31
- package/lib/cjs/carnatic/LineView.js.map +1 -1
- package/lib/cjs/carnatic/NotationView.d.ts +9 -7
- package/lib/cjs/carnatic/NotationView.js +90 -153
- package/lib/cjs/carnatic/NotationView.js.map +1 -1
- package/lib/cjs/carnatic/atomviews.js +149 -287
- package/lib/cjs/carnatic/atomviews.js.map +1 -1
- package/lib/cjs/carnatic/beatviews.d.ts +18 -10
- package/lib/cjs/carnatic/beatviews.js +59 -91
- package/lib/cjs/carnatic/beatviews.js.map +1 -1
- package/lib/cjs/carnatic/embelishments.d.ts +1 -1
- package/lib/cjs/carnatic/embelishments.js +189 -283
- package/lib/cjs/carnatic/embelishments.js.map +1 -1
- package/lib/cjs/carnatic/gamakas.js +15 -47
- package/lib/cjs/carnatic/gamakas.js.map +1 -1
- package/lib/cjs/commands.js +111 -271
- package/lib/cjs/commands.js.map +1 -1
- package/lib/cjs/core.d.ts +6 -1
- package/lib/cjs/core.js +288 -493
- package/lib/cjs/core.js.map +1 -1
- package/lib/cjs/cycle.js +175 -367
- package/lib/cjs/cycle.js.map +1 -1
- package/lib/cjs/entity.js +48 -102
- package/lib/cjs/entity.js.map +1 -1
- package/lib/cjs/grids.d.ts +124 -1
- package/lib/cjs/grids.js +546 -6
- package/lib/cjs/grids.js.map +1 -1
- package/lib/cjs/iterators.js +96 -234
- package/lib/cjs/iterators.js.map +1 -1
- package/lib/cjs/layouts.d.ts +1 -1
- package/lib/cjs/layouts.js +62 -98
- package/lib/cjs/layouts.js.map +1 -1
- package/lib/cjs/loader.d.ts +2 -2
- package/lib/cjs/loader.js +23 -123
- package/lib/cjs/loader.js.map +1 -1
- package/lib/cjs/notation.d.ts +0 -3
- package/lib/cjs/notation.js +139 -241
- package/lib/cjs/notation.js.map +1 -1
- package/lib/cjs/parser.d.ts +2 -0
- package/lib/cjs/parser.js +222 -219
- package/lib/cjs/parser.js.map +1 -1
- package/lib/cjs/shapes.js +149 -283
- package/lib/cjs/shapes.js.map +1 -1
- package/lib/cjs/utils.d.ts +8 -0
- package/lib/cjs/utils.js +60 -55
- package/lib/cjs/utils.js.map +1 -1
- package/lib/esm/beats.d.ts +36 -71
- package/lib/esm/beats.js +218 -430
- package/lib/esm/beats.js.map +1 -1
- package/lib/esm/beatutils.d.ts +3 -0
- package/lib/esm/beatutils.js +37 -0
- package/lib/esm/beatutils.js.map +1 -0
- package/lib/esm/beatview.d.ts +18 -0
- package/lib/esm/beatview.js +35 -0
- package/lib/esm/beatview.js.map +1 -0
- package/lib/esm/carnatic/LineView.d.ts +2 -7
- package/lib/esm/carnatic/LineView.js +12 -31
- package/lib/esm/carnatic/LineView.js.map +1 -1
- package/lib/esm/carnatic/NotationView.d.ts +9 -7
- package/lib/esm/carnatic/NotationView.js +88 -152
- package/lib/esm/carnatic/NotationView.js.map +1 -1
- package/lib/esm/carnatic/atomviews.js +144 -284
- package/lib/esm/carnatic/atomviews.js.map +1 -1
- package/lib/esm/carnatic/beatviews.d.ts +18 -10
- package/lib/esm/carnatic/beatviews.js +53 -87
- package/lib/esm/carnatic/beatviews.js.map +1 -1
- package/lib/esm/carnatic/embelishments.d.ts +1 -1
- package/lib/esm/carnatic/embelishments.js +187 -296
- package/lib/esm/carnatic/embelishments.js.map +1 -1
- package/lib/esm/carnatic/gamakas.js +14 -48
- package/lib/esm/carnatic/gamakas.js.map +1 -1
- package/lib/esm/commands.js +100 -271
- package/lib/esm/commands.js.map +1 -1
- package/lib/esm/core.d.ts +6 -1
- package/lib/esm/core.js +286 -502
- package/lib/esm/core.js.map +1 -1
- package/lib/esm/cycle.js +172 -367
- package/lib/esm/cycle.js.map +1 -1
- package/lib/esm/entity.js +48 -104
- package/lib/esm/entity.js.map +1 -1
- package/lib/esm/grids.d.ts +124 -1
- package/lib/esm/grids.js +515 -5
- package/lib/esm/grids.js.map +1 -1
- package/lib/esm/iterators.js +93 -235
- package/lib/esm/iterators.js.map +1 -1
- package/lib/esm/layouts.d.ts +1 -1
- package/lib/esm/layouts.js +60 -97
- package/lib/esm/layouts.js.map +1 -1
- package/lib/esm/loader.d.ts +2 -2
- package/lib/esm/loader.js +20 -120
- package/lib/esm/loader.js.map +1 -1
- package/lib/esm/notation.d.ts +0 -3
- package/lib/esm/notation.js +135 -242
- package/lib/esm/notation.js.map +1 -1
- package/lib/esm/parser.d.ts +2 -0
- package/lib/esm/parser.js +216 -214
- package/lib/esm/parser.js.map +1 -1
- package/lib/esm/shapes.js +148 -288
- package/lib/esm/shapes.js.map +1 -1
- package/lib/esm/utils.d.ts +8 -0
- package/lib/esm/utils.js +55 -51
- package/lib/esm/utils.js.map +1 -1
- package/package.json +2 -1
|
@@ -1,16 +1,24 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
|
|
1
|
+
import { Embelishment } from "../shapes";
|
|
2
|
+
import { GridCell, GridCellView } from "../grids";
|
|
3
|
+
import { ElementShape } from "../shapes";
|
|
4
|
+
import { Marker } from "../core";
|
|
5
|
+
import { Beat } from "../beats";
|
|
6
|
+
import { BeatView as BeatViewBase } from "../beatview";
|
|
7
|
+
export declare class MarkerView extends ElementShape<SVGGElement> implements GridCellView {
|
|
8
|
+
readonly cell: GridCell;
|
|
5
9
|
readonly beat: Beat;
|
|
10
|
+
readonly markers: Marker[];
|
|
11
|
+
readonly isPreMarker: boolean;
|
|
6
12
|
readonly rootElement: SVGGraphicsElement;
|
|
7
|
-
readonly cycle: Cycle;
|
|
8
|
-
private _embelishments;
|
|
9
|
-
atomView: AtomView;
|
|
10
13
|
needsLayout: boolean;
|
|
11
|
-
|
|
14
|
+
rootGroup: SVGGElement;
|
|
15
|
+
textElement: SVGTextElement;
|
|
16
|
+
constructor(cell: GridCell, beat: Beat, markers: Marker[], isPreMarker: boolean, rootElement: SVGGraphicsElement, config?: any);
|
|
17
|
+
refreshLayout(): void;
|
|
18
|
+
protected updateBounds(x: null | number, y: null | number, w: null | number, h: null | number): [number | null, number | null, number | null, number | null];
|
|
19
|
+
}
|
|
20
|
+
export declare class BeatView extends BeatViewBase {
|
|
21
|
+
createAtomView(): import("../shapes").AtomView;
|
|
12
22
|
refreshLayout(): void;
|
|
13
|
-
get embelishments(): Embelishment[];
|
|
14
23
|
protected createEmbelishments(): Embelishment[];
|
|
15
|
-
setStyles(config: any): void;
|
|
16
24
|
}
|
|
@@ -1,19 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __extends = (this && this.__extends) || (function () {
|
|
3
|
-
var extendStatics = function (d, b) {
|
|
4
|
-
extendStatics = Object.setPrototypeOf ||
|
|
5
|
-
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
6
|
-
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
7
|
-
return extendStatics(d, b);
|
|
8
|
-
};
|
|
9
|
-
return function (d, b) {
|
|
10
|
-
if (typeof b !== "function" && b !== null)
|
|
11
|
-
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
12
|
-
extendStatics(d, b);
|
|
13
|
-
function __() { this.constructor = d; }
|
|
14
|
-
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
15
|
-
};
|
|
16
|
-
})();
|
|
17
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
18
3
|
if (k2 === undefined) k2 = k;
|
|
19
4
|
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
@@ -37,107 +22,90 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
37
22
|
__setModuleDefault(result, mod);
|
|
38
23
|
return result;
|
|
39
24
|
};
|
|
40
|
-
var __values = (this && this.__values) || function(o) {
|
|
41
|
-
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
|
|
42
|
-
if (m) return m.call(o);
|
|
43
|
-
if (o && typeof o.length === "number") return {
|
|
44
|
-
next: function () {
|
|
45
|
-
if (o && i >= o.length) o = void 0;
|
|
46
|
-
return { value: o && o[i++], done: !o };
|
|
47
|
-
}
|
|
48
|
-
};
|
|
49
|
-
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
50
|
-
};
|
|
51
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
52
|
-
exports.BeatView = void 0;
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
26
|
+
exports.BeatView = exports.MarkerView = void 0;
|
|
27
|
+
const TSU = __importStar(require("@panyam/tsutils"));
|
|
28
|
+
const shapes_1 = require("../shapes");
|
|
29
|
+
const atomviews_1 = require("./atomviews");
|
|
30
|
+
const beatview_1 = require("../beatview");
|
|
31
|
+
const embelishments_1 = require("./embelishments");
|
|
32
|
+
class MarkerView extends shapes_1.ElementShape {
|
|
33
|
+
constructor(cell, beat, markers, isPreMarker, rootElement, config) {
|
|
34
|
+
const rootGroup = TSU.DOM.createSVGNode("g", {
|
|
61
35
|
parent: rootElement,
|
|
62
36
|
attrs: {
|
|
63
|
-
class: "
|
|
64
|
-
|
|
65
|
-
id: "" + beat.uuid,
|
|
37
|
+
class: "markerView",
|
|
38
|
+
pre: isPreMarker,
|
|
66
39
|
roleName: beat.role.name,
|
|
67
|
-
layoutLine: "" + beat.layoutLine,
|
|
68
|
-
layoutColumn: "" + beat.layoutColumn,
|
|
69
40
|
beatIndex: "" + beat.index,
|
|
41
|
+
gridRow: cell.rowIndex,
|
|
42
|
+
gridCol: cell.colIndex,
|
|
43
|
+
},
|
|
44
|
+
});
|
|
45
|
+
super(rootGroup);
|
|
46
|
+
this.cell = cell;
|
|
47
|
+
this.beat = beat;
|
|
48
|
+
this.markers = markers;
|
|
49
|
+
this.isPreMarker = isPreMarker;
|
|
50
|
+
this.rootElement = rootElement;
|
|
51
|
+
this.needsLayout = true;
|
|
52
|
+
this.rootGroup = rootGroup;
|
|
53
|
+
this.textElement = TSU.DOM.createSVGNode("text", {
|
|
54
|
+
parent: rootGroup,
|
|
55
|
+
attrs: {
|
|
56
|
+
class: "markerText",
|
|
57
|
+
pre: isPreMarker,
|
|
70
58
|
},
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
return
|
|
59
|
+
text: this.markers[0].text,
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
refreshLayout() {
|
|
63
|
+
this.rootGroup.setAttribute("transform", "translate(" + this.x + "," + this.y + ")");
|
|
64
|
+
}
|
|
65
|
+
updateBounds(x, y, w, h) {
|
|
66
|
+
return [x, y, NaN, NaN];
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
exports.MarkerView = MarkerView;
|
|
70
|
+
class BeatView extends beatview_1.BeatView {
|
|
71
|
+
createAtomView() {
|
|
72
|
+
return (0, atomviews_1.createAtomView)(this.element, this.beat.atom, this.beat.role.defaultToNotes);
|
|
79
73
|
}
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
var newY = this.hasY ? this._y : 0;
|
|
74
|
+
refreshLayout() {
|
|
75
|
+
const newX = this.hasX ? this._x : 0;
|
|
76
|
+
const newY = this.hasY ? this._y : 0;
|
|
84
77
|
this.element.setAttribute("transform", "translate(" + newX + "," + newY + ")");
|
|
85
78
|
this.invalidateBounds();
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
var e = _c.value;
|
|
89
|
-
e.refreshLayout();
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
93
|
-
finally {
|
|
94
|
-
try {
|
|
95
|
-
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
96
|
-
}
|
|
97
|
-
finally { if (e_1) throw e_1.error; }
|
|
98
|
-
}
|
|
79
|
+
for (const e of this.embelishments)
|
|
80
|
+
e.refreshLayout();
|
|
99
81
|
this.invalidateBounds();
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
}
|
|
106
|
-
return this._embelishments;
|
|
107
|
-
},
|
|
108
|
-
enumerable: false,
|
|
109
|
-
configurable: true
|
|
110
|
-
});
|
|
111
|
-
BeatView.prototype.createEmbelishments = function () {
|
|
112
|
-
var embelishments = [];
|
|
113
|
-
var beat = this.beat;
|
|
114
|
-
var rootElement = this.rootElement;
|
|
82
|
+
}
|
|
83
|
+
createEmbelishments() {
|
|
84
|
+
let embelishments = [];
|
|
85
|
+
const beat = this.beat;
|
|
86
|
+
const rootElement = this.rootElement;
|
|
115
87
|
if (beat.beatIndex == 0 && beat.barIndex == 0 && beat.instance == 0) {
|
|
116
|
-
|
|
88
|
+
const emb = new embelishments_1.BeatStartLines(this, rootElement);
|
|
117
89
|
embelishments = [emb];
|
|
118
90
|
}
|
|
119
91
|
else {
|
|
120
|
-
|
|
121
|
-
|
|
92
|
+
const cycle = this.cycle;
|
|
93
|
+
const bar = cycle.bars[beat.barIndex];
|
|
122
94
|
if (beat.beatIndex == bar.beatCount - 1) {
|
|
123
95
|
if (beat.instance == bar.instanceCount(beat.beatIndex) - 1) {
|
|
124
96
|
if (beat.barIndex == cycle.bars.length - 1) {
|
|
125
|
-
|
|
97
|
+
const emb = new embelishments_1.BeatEndLines(this, rootElement, 2);
|
|
126
98
|
embelishments = [emb];
|
|
127
99
|
}
|
|
128
100
|
else {
|
|
129
|
-
|
|
101
|
+
const emb = new embelishments_1.BeatEndLines(this, rootElement);
|
|
130
102
|
embelishments = [emb];
|
|
131
103
|
}
|
|
132
104
|
}
|
|
133
105
|
}
|
|
134
106
|
}
|
|
135
107
|
return embelishments;
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
this.needsLayout = true;
|
|
139
|
-
};
|
|
140
|
-
return BeatView;
|
|
141
|
-
}(shapes_1.ElementShape));
|
|
108
|
+
}
|
|
109
|
+
}
|
|
142
110
|
exports.BeatView = BeatView;
|
|
143
111
|
//# sourceMappingURL=beatviews.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"beatviews.js","sourceRoot":"","sources":["../../../src/carnatic/beatviews.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"beatviews.js","sourceRoot":"","sources":["../../../src/carnatic/beatviews.ts"],"names":[],"mappings":"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","sourcesContent":["import * as TSU from \"@panyam/tsutils\";\nimport { Embelishment } from \"../shapes\";\nimport { GridCell, GridCellView } from \"../grids\";\nimport { ElementShape } from \"../shapes\";\nimport { createAtomView } from \"./atomviews\";\nimport { Marker } from \"../core\";\nimport { Beat } from \"../beats\";\nimport { BeatView as BeatViewBase } from \"../beatview\";\nimport { BeatStartLines, BeatEndLines } from \"./embelishments\";\n\nexport class MarkerView extends ElementShape<SVGGElement> implements GridCellView {\n needsLayout = true;\n rootGroup: SVGGElement;\n textElement: SVGTextElement;\n constructor(\n public readonly cell: GridCell,\n public readonly beat: Beat,\n public readonly markers: Marker[],\n public readonly isPreMarker: boolean,\n public readonly rootElement: SVGGraphicsElement,\n config?: any,\n ) {\n const rootGroup = TSU.DOM.createSVGNode(\"g\", {\n parent: rootElement,\n attrs: {\n class: \"markerView\",\n pre: isPreMarker,\n roleName: beat.role.name,\n beatIndex: \"\" + beat.index,\n gridRow: cell.rowIndex,\n gridCol: cell.colIndex,\n },\n });\n super(rootGroup);\n this.rootGroup = rootGroup as SVGGElement;\n this.textElement = TSU.DOM.createSVGNode(\"text\", {\n parent: rootGroup,\n attrs: {\n class: \"markerText\",\n pre: isPreMarker,\n },\n text: this.markers[0].text,\n });\n }\n\n refreshLayout(): void {\n // TODO - move this code out to refreshLayout?\n // set the glyphs Y first so we can layout others\n this.rootGroup.setAttribute(\"transform\", \"translate(\" + this.x + \",\" + this.y + \")\");\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, NaN, NaN];\n }\n}\n\nexport class BeatView extends BeatViewBase {\n createAtomView() {\n return createAtomView(this.element, this.beat.atom, this.beat.role.defaultToNotes);\n }\n\n refreshLayout(): void {\n const newX = this.hasX ? this._x : 0;\n const newY = this.hasY ? this._y : 0;\n this.element.setAttribute(\"transform\", \"translate(\" + newX + \",\" + newY + \")\");\n this.invalidateBounds();\n for (const e of this.embelishments) e.refreshLayout();\n this.invalidateBounds();\n }\n\n protected createEmbelishments(): Embelishment[] {\n let embelishments: Embelishment[] = [];\n const beat = this.beat;\n // TODO - Should this be the group's parent element?\n const rootElement = this.rootElement;\n if (beat.beatIndex == 0 && beat.barIndex == 0 && beat.instance == 0) {\n // first beat in bar - Do a BarStart\n const emb = new BeatStartLines(this, rootElement);\n embelishments = [emb];\n } else {\n const cycle = this.cycle;\n const bar = cycle.bars[beat.barIndex];\n if (beat.beatIndex == bar.beatCount - 1) {\n // It is important that we are not just looking at the last beat of the bar\n // but also in the last \"instance\" of the beat in this bar to account for\n // kalais\n if (beat.instance == bar.instanceCount(beat.beatIndex) - 1) {\n if (beat.barIndex == cycle.bars.length - 1) {\n // last beat in last bar so - do a thalam end (2 lines)\n const emb = new BeatEndLines(this, rootElement, 2);\n embelishments = [emb];\n } else {\n // end of a bar so single line end\n const emb = new BeatEndLines(this, rootElement);\n embelishments = [emb];\n }\n }\n }\n }\n return embelishments;\n }\n}\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as TSU from "@panyam/tsutils";
|
|
2
2
|
import { Note } from "../core";
|
|
3
|
-
import { BeatView } from "../
|
|
3
|
+
import { BeatView } from "../beatview";
|
|
4
4
|
import { Embelishment } from "../shapes";
|
|
5
5
|
import { LeafAtomView } from "./atomviews";
|
|
6
6
|
import { JaaruGamaka } from "./gamakas";
|