UNPKG

ngx-bit

Version:

A flexible NG-ZORRO helper library

40 lines 4.99 kB
import { Component, Input, TemplateRef, ViewChild } from '@angular/core'; export class BitPrintComponent { constructor() { this.values = []; this.varsMap = new Map(); } ngOnChanges(changes) { if (changes.hasOwnProperty('vars')) { if (changes.vars.currentValue) { this.varsMap = new Map(); changes.vars.currentValue.forEach((value, index) => { this.varsMap.set('$' + index, value); }); } } if (changes.hasOwnProperty('text')) { if (changes.text.currentValue) { const semi = changes.text.currentValue.replace(/\$[0-9]+/g, '**$&**'); this.values = semi.split('**').map(v => { return this.varsMap.has(v) ? this.varsMap.get(v) : v; }); } } } is(value) { return value instanceof TemplateRef; } } BitPrintComponent.decorators = [ { type: Component, args: [{ selector: 'bit-print', template: "<ng-template #ref>\r\n <ng-container *ngFor=\"let value of values\">\r\n <ng-container *ngIf=\"!is(value);else template\">\r\n {{value}}\r\n </ng-container>\r\n <ng-template #template>\r\n <ng-container *ngTemplateOutlet=\"value\"></ng-container>\r\n </ng-template>\r\n </ng-container>\r\n</ng-template>\r\n" },] } ]; BitPrintComponent.propDecorators = { ref: [{ type: ViewChild, args: ['ref', { static: true },] }], text: [{ type: Input }], vars: [{ type: Input }] }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYml0LXByaW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1iaXQvY29tcG9uZW50L2JpdC1wcmludC9iaXQtcHJpbnQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUE0QixXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBTW5HLE1BQU0sT0FBTyxpQkFBaUI7SUFKOUI7UUFTRSxXQUFNLEdBQVUsRUFBRSxDQUFDO1FBQ1gsWUFBTyxHQUFHLElBQUksR0FBRyxFQUFZLENBQUM7SUF3QnhDLENBQUM7SUF0QkMsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksT0FBTyxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNsQyxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFO2dCQUM3QixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksR0FBRyxFQUFZLENBQUM7Z0JBQ25DLE9BQU8sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRTtvQkFDakQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztnQkFDdkMsQ0FBQyxDQUFDLENBQUM7YUFDSjtTQUNGO1FBQ0QsSUFBSSxPQUFPLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ2xDLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUU7Z0JBQzdCLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsUUFBUSxDQUFDLENBQUM7Z0JBQ3RFLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7b0JBQ3JDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3ZELENBQUMsQ0FBQyxDQUFDO2FBQ0o7U0FDRjtJQUNILENBQUM7SUFFRCxFQUFFLENBQUMsS0FBVTtRQUNYLE9BQU8sS0FBSyxZQUFZLFdBQVcsQ0FBQztJQUN0QyxDQUFDOzs7WUFqQ0YsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxXQUFXO2dCQUNyQix1VkFBeUM7YUFDMUM7OztrQkFFRSxTQUFTLFNBQUMsS0FBSyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTttQkFDakMsS0FBSzttQkFDTCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzLCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JpdC1wcmludCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9iaXQtcHJpbnQuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIEJpdFByaW50Q29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgQFZpZXdDaGlsZCgncmVmJywgeyBzdGF0aWM6IHRydWUgfSkgcmVmOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBASW5wdXQoKSB0ZXh0OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHZhcnM6IGFueVtdO1xuXG4gIHZhbHVlczogYW55W10gPSBbXTtcbiAgcHJpdmF0ZSB2YXJzTWFwID0gbmV3IE1hcDxhbnksIGFueT4oKTtcblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXMuaGFzT3duUHJvcGVydHkoJ3ZhcnMnKSkge1xuICAgICAgaWYgKGNoYW5nZXMudmFycy5jdXJyZW50VmFsdWUpIHtcbiAgICAgICAgdGhpcy52YXJzTWFwID0gbmV3IE1hcDxhbnksIGFueT4oKTtcbiAgICAgICAgY2hhbmdlcy52YXJzLmN1cnJlbnRWYWx1ZS5mb3JFYWNoKCh2YWx1ZSwgaW5kZXgpID0+IHtcbiAgICAgICAgICB0aGlzLnZhcnNNYXAuc2V0KCckJyArIGluZGV4LCB2YWx1ZSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoY2hhbmdlcy5oYXNPd25Qcm9wZXJ0eSgndGV4dCcpKSB7XG4gICAgICBpZiAoY2hhbmdlcy50ZXh0LmN1cnJlbnRWYWx1ZSkge1xuICAgICAgICBjb25zdCBzZW1pID0gY2hhbmdlcy50ZXh0LmN1cnJlbnRWYWx1ZS5yZXBsYWNlKC9cXCRbMC05XSsvZywgJyoqJCYqKicpO1xuICAgICAgICB0aGlzLnZhbHVlcyA9IHNlbWkuc3BsaXQoJyoqJykubWFwKHYgPT4ge1xuICAgICAgICAgIHJldHVybiB0aGlzLnZhcnNNYXAuaGFzKHYpID8gdGhpcy52YXJzTWFwLmdldCh2KSA6IHY7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGlzKHZhbHVlOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBUZW1wbGF0ZVJlZjtcbiAgfVxufVxuIl19