177 lines
6.1 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var MDNav = /** @class */ (function () {
function MDNav(root, pos) {
if (pos === void 0) { pos = 0; }
this.root = root;
this.pos = pos;
}
MDNav.prototype.find = function (test, index) {
if (test === void 0) { test = function () { return true; }; }
if (index === void 0) { index = 0; }
if (!this.root || !this.root.children) {
return new MDNav(null);
}
var currIndex = 0;
for (var i = this.pos; i < this.root.children.length; i++) {
var child = this.root.children[i];
if (test(child)) {
if (currIndex === index) {
return new MDNav(this.root, i);
}
else {
currIndex++;
}
}
}
return new MDNav(this.root, this.root.children.length);
};
MDNav.prototype.findAll = function (test, index) {
if (test === void 0) { test = function () { return true; }; }
if (index === void 0) { index = 0; }
if (!this.root || !this.root.children) {
return [];
}
var result = [];
var currIndex = 0;
for (var i = this.pos; i < this.root.children.length; i++) {
var child = this.root.children[i];
if (test(child)) {
if (currIndex === index) {
result.push(new MDNav(this.root, i));
}
else {
currIndex++;
}
}
}
return result;
};
MDNav.prototype.emph = function (test, index) {
if (test === void 0) { test = function () { return true; }; }
if (index === void 0) { index = 0; }
return this.find(function (h) {
return h.type === "emphasis" && test(h);
}, index);
};
MDNav.prototype.heading = function (test, index) {
if (test === void 0) { test = function () { return true; }; }
if (index === void 0) { index = 0; }
return this.find(function (h) {
return h.type === "heading" && test(h);
}, index);
};
MDNav.prototype.html = function (test, index) {
if (test === void 0) { test = function () { return true; }; }
if (index === void 0) { index = 0; }
return this.find(function (h) {
return h.type === "html" && test(h);
}, index);
};
MDNav.prototype.list = function (test, index) {
if (test === void 0) { test = function () { return true; }; }
if (index === void 0) { index = 0; }
return this.find(function (h) {
return h.type === "list" && test(h);
}, index);
};
MDNav.prototype.listItem = function (test, index) {
if (test === void 0) { test = function () { return true; }; }
if (index === void 0) { index = 0; }
return this.find(function (h) {
return h.type === "listItem" && test(h);
}, index);
};
MDNav.prototype.listItems = function (test, index) {
if (test === void 0) { test = function () { return true; }; }
if (index === void 0) { index = 0; }
return this.findAll(function (h) {
return h.type === "listItem" && test(h);
}, index);
};
MDNav.prototype.paragraph = function (test, index) {
if (test === void 0) { test = function () { return true; }; }
if (index === void 0) { index = 0; }
return this.find(function (h) {
return h.type === "paragraph" && test(h);
}, index);
};
MDNav.prototype.strong = function (test, index) {
if (test === void 0) { test = function () { return true; }; }
if (index === void 0) { index = 0; }
return this.find(function (h) {
return h.type === "strong" && test(h);
}, index);
};
MDNav.prototype.table = function (test, index) {
if (test === void 0) { test = function () { return true; }; }
if (index === void 0) { index = 0; }
return this.find(function (h) {
return h.type === "table" && test(h);
}, index);
};
MDNav.prototype.tableRow = function (test, index) {
if (test === void 0) { test = function () { return true; }; }
if (index === void 0) { index = 0; }
return this.find(function (h) {
return h.type === "tableRow" && test(h);
}, index);
};
MDNav.prototype.tableCell = function (test, index) {
if (test === void 0) { test = function () { return true; }; }
if (index === void 0) { index = 0; }
return this.find(function (h) {
return h.type === "tableCell" && test(h);
}, index);
};
MDNav.prototype.text = function (test, index) {
if (test === void 0) { test = function () { return true; }; }
if (index === void 0) { index = 0; }
return this.find(function (h) {
return h.type === "text" && test(h);
}, index);
};
Object.defineProperty(MDNav.prototype, "item", {
get: function () {
if (!this.root || !this.root.children) {
return undefined;
}
else {
return this.root.children[this.pos];
}
},
enumerable: true,
configurable: true
});
Object.defineProperty(MDNav.prototype, "empty", {
get: function () {
return !this.root ||
!this.root.children ||
(this.pos >= this.root.children.length);
},
enumerable: true,
configurable: true
});
Object.defineProperty(MDNav.prototype, "childNav", {
get: function () {
return new MDNav(this.item);
},
enumerable: true,
configurable: true
});
Object.defineProperty(MDNav.prototype, "value", {
get: function () {
if (this.item && this.item["value"]) {
return this.item.value;
}
else {
return "";
}
},
enumerable: true,
configurable: true
});
return MDNav;
}());
exports.MDNav = MDNav;