ember-material-icons
Version:
Google Material icons for your ember-cli app
88 lines • 7.51 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const handlebars_1 = require("handlebars");
const builders_1 = require("./builders");
const print_1 = require("./generation/print");
const traverse_1 = require("./traversal/traverse");
const walker_1 = require("./traversal/walker");
const simple_html_tokenizer_1 = require("simple-html-tokenizer");
const handlebars_node_visitors_1 = require("./parser/handlebars-node-visitors");
const tokenizer_event_handlers_1 = require("./parser/tokenizer-event-handlers");
exports.syntax = {
parse: preprocess,
builders: builders_1.default,
print: print_1.default,
traverse: traverse_1.default,
Walker: walker_1.default
};
function preprocess(html, options) {
let ast = (typeof html === 'object') ? html : handlebars_1.parse(html);
let combined = new Parser(html, options).acceptNode(ast);
if (options && options.plugins && options.plugins.ast) {
for (let i = 0, l = options.plugins.ast.length; i < l; i++) {
let plugin = new options.plugins.ast[i](options);
plugin.syntax = exports.syntax;
combined = plugin.transform(combined);
}
}
return combined;
}
exports.preprocess = preprocess;
const entityParser = new simple_html_tokenizer_1.EntityParser(simple_html_tokenizer_1.HTML5NamedCharRefs);
class Parser {
constructor(source, options = {}) {
this.elementStack = [];
this.currentAttribute = null;
this.currentNode = null;
this.tokenizer = new simple_html_tokenizer_1.EventedTokenizer(this, entityParser);
this.options = options;
if (typeof source === 'string') {
this.source = source.split(/(?:\r\n?|\n)/g);
}
}
acceptNode(node) {
return this[node.type](node);
}
currentElement() {
return this.elementStack[this.elementStack.length - 1];
}
sourceForMustache(mustache) {
let firstLine = mustache.loc.start.line - 1;
let lastLine = mustache.loc.end.line - 1;
let currentLine = firstLine - 1;
let firstColumn = mustache.loc.start.column + 2;
let lastColumn = mustache.loc.end.column - 2;
let string = [];
let line;
if (!this.source) {
return '{{' + mustache.path.id.original + '}}';
}
while (currentLine < lastLine) {
currentLine++;
line = this.source[currentLine];
if (currentLine === firstLine) {
if (firstLine === lastLine) {
string.push(line.slice(firstColumn, lastColumn));
}
else {
string.push(line.slice(firstColumn));
}
}
else if (currentLine === lastLine) {
string.push(line.slice(0, lastColumn));
}
else {
string.push(line);
}
}
return string.join('\n');
}
}
exports.Parser = Parser;
for (let key in handlebars_node_visitors_1.default) {
Parser.prototype[key] = handlebars_node_visitors_1.default[key];
}
for (let key in tokenizer_event_handlers_1.default) {
Parser.prototype[key] = tokenizer_event_handlers_1.default[key];
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL3BhcnNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDJDQUFtQztBQUNuQyx5Q0FBa0M7QUFDbEMsOENBQXVDO0FBQ3ZDLG1EQUE2RDtBQUU3RCwrQ0FBd0M7QUFDeEMsaUVBSStCO0FBQy9CLGdGQUF1RTtBQUN2RSxnRkFBdUU7QUFHMUQsUUFBQSxNQUFNLEdBQUc7SUFDcEIsS0FBSyxFQUFFLFVBQVU7SUFDakIsUUFBUSxFQUFSLGtCQUFRO0lBQ1IsS0FBSyxFQUFMLGVBQUs7SUFDTCxRQUFRLEVBQVIsa0JBQVE7SUFDUixNQUFNLEVBQU4sZ0JBQU07Q0FDUCxDQUFDO0FBRUYsb0JBQTJCLElBQThCLEVBQUUsT0FBUTtJQUNqRSxJQUFJLEdBQUcsR0FBRyxDQUFDLE9BQU8sSUFBSSxLQUFLLFFBQVEsQ0FBQyxHQUFHLElBQUksR0FBRyxrQkFBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzFELElBQUksUUFBUSxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFekQsRUFBRSxDQUFDLENBQUMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxPQUFPLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3RELEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUMzRCxJQUFJLE1BQU0sR0FBRyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBRWpELE1BQU0sQ0FBQyxNQUFNLEdBQUcsY0FBTSxD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