UNPKG

ack-angular

Version:

Extra special directives, components, providers and pipes to aide in tackling everyday interface development needs in Angular2

38 lines 5.44 kB
export class TemplateReader { constructor(options) { this.types = {}; this.templates = {}; Object.assign(this, options); } readTemplates(templateRefs) { const count = templateRefs['_results'].length; for (let x = count - 1; x >= 0; --x) { let row = templateRefs['_results'][x]; this.applyReferences(row._def.references, row); } if (this.lastTemplateName && (!this.templates[this.lastTemplateName] || !templateRefs.length)) { this.afterReadTemplates(templateRefs); } } //look to apply last template as a specified templates[name] afterReadTemplates(templateRefs) { const index = templateRefs['_results'].length - 1; const lastTemplate = templateRefs['_results'][index]; if (!lastTemplate || !this.lastTemplateName) return; const matched = this.applyReferences(lastTemplate._def.references, lastTemplate); if (!matched) { this.templates[this.lastTemplateName] = lastTemplate; } } applyReferences(refs, row) { for (let x in refs) { if (this.types[x]) { this.templates[this.types[x]] = row; return true; } } return false; } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGVtcGxhdGVSZWFkZXIuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvVGVtcGxhdGVSZWFkZXIuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBbUJBLE1BQU0sT0FBTyxjQUFjO0lBS3pCLFlBQVksT0FBZ0I7UUFKNUIsVUFBSyxHQUFVLEVBQUUsQ0FBQTtRQUNqQixjQUFTLEdBQWMsRUFBRSxDQUFBO1FBSXZCLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFDLE9BQU8sQ0FBQyxDQUFBO0lBQzdCLENBQUM7SUFFRCxhQUFhLENBQUUsWUFBK0I7UUFDNUMsTUFBTSxLQUFLLEdBQUcsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDLE1BQU0sQ0FBQTtRQUM3QyxLQUFJLElBQUksQ0FBQyxHQUFDLEtBQUssR0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBQztZQUM3QixJQUFJLEdBQUcsR0FBRyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7WUFDckMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxHQUFHLENBQUMsQ0FBQTtTQUMvQztRQUVELElBQUksSUFBSSxDQUFDLGdCQUFnQixJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQzdGLElBQUksQ0FBQyxrQkFBa0IsQ0FBRSxZQUFZLENBQUUsQ0FBQTtTQUN4QztJQUNILENBQUM7SUFFRCw0REFBNEQ7SUFDNUQsa0JBQWtCLENBQUUsWUFBK0I7UUFDakQsTUFBTSxLQUFLLEdBQUcsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUE7UUFDL0MsTUFBTSxZQUFZLEdBQUcsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFFLEtBQUssQ0FBRSxDQUFBO1FBRXRELElBQUksQ0FBQyxZQUFZLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCO1lBQUUsT0FBTztRQUVwRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLFlBQVksQ0FBQyxDQUFBO1FBQ2hGLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDWixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLFlBQVksQ0FBQTtTQUNyRDtJQUNILENBQUM7SUFFRCxlQUFlLENBQUMsSUFBUSxFQUFFLEdBQW9CO1FBQzVDLEtBQUksSUFBSSxDQUFDLElBQUksSUFBSSxFQUFDO1lBQ2hCLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDakIsSUFBSSxDQUFDLFNBQVMsQ0FBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFFLEdBQUcsR0FBRyxDQUFBO2dCQUNyQyxPQUFPLElBQUksQ0FBQTthQUNaO1NBQ0Y7UUFFRCxPQUFPLEtBQUssQ0FBQTtJQUNkLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIFRlbXBsYXRlUmVmXG4gIC8vRWxlbWVudFJlZixcbiAgLy9Db250ZW50Q2hpbGRyZW5cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcblxuZXhwb3J0IGludGVyZmFjZSB0eXBlc3tcbiAgW2luZGV4OnN0cmluZ106c3RyaW5nLy8gI3JlZiA6IHRoaXMubmFtZVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIHRlbXBsYXRlc3tcbiAgW2luZGV4OnN0cmluZ106VGVtcGxhdGVSZWY8YW55PlxufVxuXG5leHBvcnQgaW50ZXJmYWNlIG9wdGlvbnN7XG4gIHR5cGVzPzp0eXBlc1xuICBsYXN0VGVtcGxhdGVOYW1lPzpzdHJpbmdcbn1cblxuZXhwb3J0IGNsYXNzIFRlbXBsYXRlUmVhZGVye1xuICB0eXBlczogdHlwZXMgPSB7fVxuICB0ZW1wbGF0ZXM6IHRlbXBsYXRlcyA9IHt9XG4gIGxhc3RUZW1wbGF0ZU5hbWUhOiBzdHJpbmdcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zPzpvcHRpb25zKXtcbiAgICBPYmplY3QuYXNzaWduKHRoaXMsb3B0aW9ucylcbiAgfVxuXG4gIHJlYWRUZW1wbGF0ZXMoIHRlbXBsYXRlUmVmczpUZW1wbGF0ZVJlZjxhbnk+W10gKXtcbiAgICBjb25zdCBjb3VudCA9IHRlbXBsYXRlUmVmc1snX3Jlc3VsdHMnXS5sZW5ndGhcbiAgICBmb3IobGV0IHg9Y291bnQtMTsgeCA+PSAwOyAtLXgpe1xuICAgICAgbGV0IHJvdyA9IHRlbXBsYXRlUmVmc1snX3Jlc3VsdHMnXVt4XVxuICAgICAgdGhpcy5hcHBseVJlZmVyZW5jZXMocm93Ll9kZWYucmVmZXJlbmNlcywgcm93KVxuICAgIH1cblxuICAgIGlmKCB0aGlzLmxhc3RUZW1wbGF0ZU5hbWUgJiYgKCF0aGlzLnRlbXBsYXRlc1t0aGlzLmxhc3RUZW1wbGF0ZU5hbWVdIHx8ICF0ZW1wbGF0ZVJlZnMubGVuZ3RoKSApe1xuICAgICAgdGhpcy5hZnRlclJlYWRUZW1wbGF0ZXMoIHRlbXBsYXRlUmVmcyApXG4gICAgfVxuICB9XG5cbiAgLy9sb29rIHRvIGFwcGx5IGxhc3QgdGVtcGxhdGUgYXMgYSBzcGVjaWZpZWQgdGVtcGxhdGVzW25hbWVdXG4gIGFmdGVyUmVhZFRlbXBsYXRlcyggdGVtcGxhdGVSZWZzOlRlbXBsYXRlUmVmPGFueT5bXSApe1xuICAgIGNvbnN0IGluZGV4ID0gdGVtcGxhdGVSZWZzWydfcmVzdWx0cyddLmxlbmd0aC0xXG4gICAgY29uc3QgbGFzdFRlbXBsYXRlID0gdGVtcGxhdGVSZWZzWydfcmVzdWx0cyddWyBpbmRleCBdXG5cbiAgICBpZiggIWxhc3RUZW1wbGF0ZSB8fCAhdGhpcy5sYXN0VGVtcGxhdGVOYW1lIClyZXR1cm47XG5cbiAgICBjb25zdCBtYXRjaGVkID0gdGhpcy5hcHBseVJlZmVyZW5jZXMobGFzdFRlbXBsYXRlLl9kZWYucmVmZXJlbmNlcywgbGFzdFRlbXBsYXRlKVxuICAgIGlmKCAhbWF0Y2hlZCApe1xuICAgICAgdGhpcy50ZW1wbGF0ZXNbdGhpcy5sYXN0VGVtcGxhdGVOYW1lXSA9IGxhc3RUZW1wbGF0ZVxuICAgIH1cbiAgfVxuXG4gIGFwcGx5UmVmZXJlbmNlcyhyZWZzOmFueSwgcm93OlRlbXBsYXRlUmVmPGFueT4pOmJvb2xlYW57XG4gICAgZm9yKGxldCB4IGluIHJlZnMpe1xuICAgICAgaWYoIHRoaXMudHlwZXNbeF0gKXtcbiAgICAgICAgdGhpcy50ZW1wbGF0ZXNbIHRoaXMudHlwZXNbeF0gXSA9IHJvd1xuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBmYWxzZVxuICB9XG59Il19