UNPKG

@sedeh/into-pipes

Version:

Have you ever wanted to transform data in different parts of your application into interactive objects without writing a single line of code?

124 lines 15.7 kB
import { Component, ViewChild, Output, EventEmitter } from '@angular/core'; import * as i0 from "@angular/core"; import * as i1 from "@angular/common"; export class CheckboxComponent { constructor() { this.displayable = true; this.disabled = false; this.active = true; this.validate = (item, newValue) => true; this.onIntoComponentChange = new EventEmitter(); } keyup(event) { const code = event.which; if (code === 13 && !this.disabled) { event.target.click(); } } click(event, checked) { event.stopPropagation(); event.preventDefault(); const newState = (checked ? this.state1 : this.state2); if (!this.disabled && this.validate(this.data, newState)) { this.displayable = false; this.source = newState; this.onIntoComponentChange.emit({ id: this.id, name: this.name, value: this.source, type: "check", item: this.data }); if (this.useFont) { setTimeout(() => { if (this.check) { this.check.nativeElement.focus(); } if (this.uncheck) { this.uncheck.nativeElement.focus(); } }, 66); } else { setTimeout(() => this.displayable = true, 66); } } } static settingsPatterns() { return ['checkbox:true:false:false:false', 'checkbox:true:false:true:false', 'checkbox:true:false:true:true']; //state1 state2, useFont, onoff } transform(source, data, args) { this.state1 = args && args.length ? String(args[0]) : ""; this.state2 = (args && args.length > 1) ? String(args[1]) : ''; this.useFont = (args && args.length > 2 && args[2].length) ? args[2] === 'true' : false; this.onOff = (args && args.length > 3 && args[3].length) ? args[3] === 'true' : false; this.source = String(source); this.data = data; } } CheckboxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CheckboxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); CheckboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: CheckboxComponent, selector: "checkbox-component", outputs: { onIntoComponentChange: "onIntoComponentChange" }, viewQueries: [{ propertyName: "check", first: true, predicate: ["check"], descendants: true }, { propertyName: "uncheck", first: true, predicate: ["uncheck"], descendants: true }], ngImport: i0, template: ` <span *ngIf="useFont" class="check-font {{disabled ? 'disabled' : ''}}"> <span *ngIf="source === state1" #check tabindex="{{active ? 0 : -1}}" class="fa" [class.fa-toggle-on]="onOff" [class.fa-check]="!onOff" (keyup)="keyup($event)" (click)="click($event, false)"></span> <span *ngIf="source === state2" #uncheck tabindex="{{active ? 0 : -1}}" class="fa" checked [class.fa-toggle-off]="onOff" [class.fa-close]="!onOff" (keyup)="keyup($event)" (click)="click($event, true)"></span> </span> <input *ngIf="!useFont && displayable" type="checkbox" tabindex="{{active ? 0 : -1}}" [disabled]="disabled" [checked]="source===state1" (keyup)="keyup($event)" (click)="click($event, source!==state1)" /> `, isInline: true, styles: [":host .check-font .fa{margin:var(--sedeh-margin, 0 5px)}:host{display:table;float:left;min-height:var(--sedeh-min-height, 25px)}.check-font:hover{opacity:var(--sedeh-hover-opacity, .5)}.check-font .fa:focus{outline:none;zoom:1.1;right:var(--sedeh-shift-right, 0);position:relative;color:var(--sedeh-focus-color, darkblue)}.check-font{cursor:pointer}.check-font.disabled:hover{color:var(--sedeh-disabled-color, #888)}.check-font.disabled{color:var(--sedeh-disabled-color, #888);pointer-events:none}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CheckboxComponent, decorators: [{ type: Component, args: [{ selector: 'checkbox-component', template: ` <span *ngIf="useFont" class="check-font {{disabled ? 'disabled' : ''}}"> <span *ngIf="source === state1" #check tabindex="{{active ? 0 : -1}}" class="fa" [class.fa-toggle-on]="onOff" [class.fa-check]="!onOff" (keyup)="keyup($event)" (click)="click($event, false)"></span> <span *ngIf="source === state2" #uncheck tabindex="{{active ? 0 : -1}}" class="fa" checked [class.fa-toggle-off]="onOff" [class.fa-close]="!onOff" (keyup)="keyup($event)" (click)="click($event, true)"></span> </span> <input *ngIf="!useFont && displayable" type="checkbox" tabindex="{{active ? 0 : -1}}" [disabled]="disabled" [checked]="source===state1" (keyup)="keyup($event)" (click)="click($event, source!==state1)" /> `, styles: [":host .check-font .fa{margin:var(--sedeh-margin, 0 5px)}:host{display:table;float:left;min-height:var(--sedeh-min-height, 25px)}.check-font:hover{opacity:var(--sedeh-hover-opacity, .5)}.check-font .fa:focus{outline:none;zoom:1.1;right:var(--sedeh-shift-right, 0);position:relative;color:var(--sedeh-focus-color, darkblue)}.check-font{cursor:pointer}.check-font.disabled:hover{color:var(--sedeh-disabled-color, #888)}.check-font.disabled{color:var(--sedeh-disabled-color, #888);pointer-events:none}\n"] }] }], propDecorators: { check: [{ type: ViewChild, args: ["check"] }], uncheck: [{ type: ViewChild, args: ["uncheck"] }], onIntoComponentChange: [{ type: Output, args: ["onIntoComponentChange"] }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW50by1waXBlcy9zcmMvbGliL2NoZWNrYm94L2NoZWNrYm94LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUEyQzNFLE1BQU0sT0FBTyxpQkFBaUI7SUF4QzlCO1FBa0RFLGdCQUFXLEdBQUcsSUFBSSxDQUFDO1FBQ25CLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsV0FBTSxHQUFHLElBQUksQ0FBQztRQUNkLGFBQVEsR0FBRyxDQUFDLElBQVMsRUFBRSxRQUFhLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQztRQVM5QywwQkFBcUIsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0tBa0Q1QztJQWhEQyxLQUFLLENBQUMsS0FBVTtRQUNkLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDekIsSUFBSSxJQUFJLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNqQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQ3hCO0lBQ0QsQ0FBQztJQUVELEtBQUssQ0FBQyxLQUFVLEVBQUUsT0FBZ0I7UUFDaEMsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3hCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUV2QixNQUFNLFFBQVEsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3ZELElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksRUFB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cG9ydCB7IENvbXBvbmVudCwgVmlld0NoaWxkLCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBQaXBlQ29tcG9uZW50SW50ZXJmYWNlIH0gZnJvbSAnLi4vY29tbW9uL3BpcGUuY29tcG9uZW50LmludGVyZmFjZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnY2hlY2tib3gtY29tcG9uZW50JyxcclxuICAgIHRlbXBsYXRlOiBgXHJcbiAgICA8c3BhbiAqbmdJZj1cInVzZUZvbnRcIiBjbGFzcz1cImNoZWNrLWZvbnQge3tkaXNhYmxlZCA/ICdkaXNhYmxlZCcgOiAnJ319XCI+XHJcbiAgICAgIDxzcGFuICpuZ0lmPVwic291cmNlID09PSBzdGF0ZTFcIiBcclxuICAgICAgICAgICNjaGVjayB0YWJpbmRleD1cInt7YWN0aXZlID8gMCA6IC0xfX1cIiBcclxuICAgICAgICAgIGNsYXNzPVwiZmFcIiBcclxuICAgICAgICAgIFtjbGFzcy5mYS10b2dnbGUtb25dPVwib25PZmZcIiBcclxuICAgICAgICAgIFtjbGFzcy5mYS1jaGVja109XCIhb25PZmZcIiBcclxuICAgICAgICAgIChrZXl1cCk9XCJrZXl1cCgkZXZlbnQpXCIgXHJcbiAgICAgICAgICAoY2xpY2spPVwiY2xpY2soJGV2ZW50LCBmYWxzZSlcIj48L3NwYW4+XHJcbiAgICAgIDxzcGFuICpuZ0lmPVwic291cmNlID09PSBzdGF0ZTJcIlxyXG4gICAgICAgICAgI3VuY2hlY2sgdGFiaW5kZXg9XCJ7e2FjdGl2ZSA/IDAgOiAtMX19XCIgXHJcbiAgICAgICAgICBjbGFzcz1cImZhXCIgXHJcbiAgICAgICAgICBjaGVja2VkXHJcbiAgICAgICAgICBbY2xhc3MuZmEtdG9nZ2xlLW9mZl09XCJvbk9mZlwiIFxyXG4gICAgICAgICAgW2NsYXNzLmZhLWNsb3NlXT1cIiFvbk9mZlwiIFxyXG4gICAgICAgICAgKGtleXVwKT1cImtleXVwKCRldmVudClcIiBcclxuICAgICAgICAgIChjbGljayk9XCJjbGljaygkZXZlbnQsIHRydWUpXCI+PC9zcGFuPlxyXG4gICAgPC9zcGFuPlxyXG4gICAgPGlucHV0ICpuZ0lmPVwiIXVzZUZvbnQgJiYgZGlzcGxheWFibGVcIiBcclxuICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCIgXHJcbiAgICAgICAgICAgIHRhYmluZGV4PVwie3thY3RpdmUgPyAwIDogLTF9fVwiIFxyXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gICAgICAgICAgICBbY2hlY2tlZF09XCJzb3VyY2U9PT1zdGF0ZTFcIiBcclxuICAgICAgICAgICAgKGtleXVwKT1cImtleXVwKCRldmVudClcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwiY2xpY2soJGV2ZW50LCBzb3VyY2UhPT1zdGF0ZTEpXCIgLz5cclxuICAgIGAsXHJcbiAgICBzdHlsZXM6IFtcclxuICAgICAgYFxyXG4gICAgICA6aG9zdCAuY2hlY2stZm9udCAuZmF7bWFyZ2luOiB2YXIoLS1zZWRlaC1tYXJnaW4sIDAgNXB4KTt9XHJcbiAgICAgIDpob3N0IHtkaXNwbGF5OnRhYmxlO2Zsb2F0OmxlZnQ7bWluLWhlaWdodDogdmFyKC0tc2VkZWgtbWluLWhlaWdodCwgMjVweCk7fVxyXG4gICAgICAuY2hlY2stZm9udDpob3ZlcntvcGFjaXR5OiB2YXIoLS1zZWRlaC1ob3Zlci1vcGFjaXR5LCAwLjUpO31cclxuICAgICAgLmNoZWNrLWZvbnQgLmZhOmZvY3Vze291dGxpbmU6IG5vbmU7em9vbTogMS4xO3JpZ2h0OiB2YXIoLS1zZWRlaC1zaGlmdC1yaWdodCwgMCk7cG9zaXRpb246IHJlbGF0aXZlO2NvbG9yOiB2YXIoLS1zZWRlaC1mb2N1cy1jb2xvciwgZGFya2JsdWUpO31cclxuICAgICAgLmNoZWNrLWZvbnQge2N1cnNvcjogcG9pbnRlcjt9XHJcbiAgICAgIC5jaGVjay1mb250LmRpc2FibGVkOmhvdmVye2NvbG9yOiB2YXIoLS1zZWRlaC1kaXNhYmxlZC1jb2xvciwgIzg4OCk7fVxyXG4gICAgICAuY2hlY2stZm9udC5kaXNhYmxlZCB7Y29sb3I6IHZhcigtLXNlZGVoLWRpc2FibGVkLWNvbG9yLCAjODg4KTsgcG9pbnRlci1ldmVudHM6IG5vbmV9XHJcbiAgICAgIGBcclxuICAgIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIENoZWNrYm94Q29tcG9uZW50IGltcGxlbWVudHMgUGlwZUNvbXBvbmVudEludGVyZmFjZSB7XHJcblxyXG4gIGRhdGE6IGFueTtcclxuICBzb3VyY2UhOiBzdHJpbmc7XHJcbiAgc3RhdGUxITogc3RyaW5nO1xyXG4gIHN0YXRlMiE6IHN0cmluZztcclxuICBpZCE6IHN0cmluZztcclxuICBuYW1lITogc3RyaW5nO1xyXG4gIG9uT2ZmITogYm9vbGVhbjtcclxuICB1c2VGb250ITogYm9vbGVhbjtcclxuICBkaXNwbGF5YWJsZSA9IHRydWU7XHJcbiAgZGlzYWJsZWQgPSBmYWxzZTtcclxuICBhY3RpdmUgPSB0cnVlO1xyXG4gIHZhbGlkYXRlID0gKGl0ZW06IGFueSwgbmV3VmFsdWU6IGFueSkgPT4gdHJ1ZTtcclxuXHJcbiAgQFZpZXdDaGlsZChcImNoZWNrXCIpXHJcbiAgY2hlY2s6IGFueTtcclxuXHJcbiAgQFZpZXdDaGlsZChcInVuY2hlY2tcIilcclxuICB1bmNoZWNrOiBhbnk7XHJcblxyXG4gIEBPdXRwdXQoXCJvbkludG9Db21wb25lbnRDaGFuZ2VcIilcclxuICBvbkludG9Db21wb25lbnRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIGtleXVwKGV2ZW50OiBhbnkpIHtcclxuICAgIGNvbnN0IGNvZGUgPSBldmVudC53aGljaDtcclxuICAgIGlmIChjb2RlID09PSAxMyAmJiAhdGhpcy5kaXNhYmxlZCkge1xyXG4gICAgICBldmVudC50YXJnZXQuY2xpY2soKTtcclxuXHRcdH1cclxuICB9XHJcblxyXG4gIGNsaWNrKGV2ZW50OiBhbnksIGNoZWNrZWQ6IGJvb2xlYW4pIHtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuXHJcbiAgICBjb25zdCBuZXdTdGF0ZSA9IChjaGVja2VkID8gdGhpcy5zdGF0ZTEgOiB0aGlzLnN0YXRlMik7XHJcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQgJiYgdGhpcy52YWxpZGF0ZSh0aGlzLmRhdGEsIG5ld1N0YXRlKSkge1xyXG4gICAgICB0aGlzLmRpc3BsYXlhYmxlID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuc291cmNlID0gbmV3U3RhdGU7XHJcbiAgICAgIHRoaXMub25JbnRvQ29tcG9uZW50Q2hhbmdlLmVtaXQoe1xyXG4gICAgICAgIGlkOiB0aGlzLmlkLFxyXG4gICAgICAgIG5hbWU6IHRoaXMubmFtZSxcclxuICAgICAgICB2YWx1ZTogdGhpcy5zb3VyY2UsXHJcbiAgICAgICAgdHlwZTogXCJjaGVja1wiLFxyXG4gICAgICAgIGl0ZW06IHRoaXMuZGF0YVxyXG4gICAgICB9KTtcclxuICAgICAgaWYgKHRoaXMudXNlRm9udCkge1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgaWYgKHRoaXMuY2hlY2spIHtcclxuICAgICAgICAgICAgdGhpcy5jaGVjay5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAodGhpcy51bmNoZWNrKSB7XHJcbiAgICAgICAgICAgIHRoaXMudW5jaGVjay5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSw2Nik7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKT0+IHRoaXMuZGlzcGxheWFibGUgPSB0cnVlLCA2NilcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc3RhdGljIHNldHRpbmdzUGF0dGVybnMoKSB7XHJcbiAgICByZXR1cm4gWydjaGVja2JveDp0cnVlOmZhbHNlOmZhbHNlOmZhbHNlJywgJ2NoZWNrYm94OnRydWU6ZmFsc2U6dHJ1ZTpmYWxzZScsICdjaGVja2JveDp0cnVlOmZhbHNlOnRydWU6dHJ1ZSddOyAvL3N0YXRlMSBzdGF0ZTIsIHVzZUZvbnQsIG9ub2ZmXHJcbiAgfVxyXG4gIHRyYW5zZm9ybShzb3VyY2U6IGFueSwgZGF0YTogYW55LCBhcmdzOiBhbnlbXSkge1xyXG4gICAgdGhpcy5zdGF0ZTE9IGFyZ3MgJiYgYXJncy5sZW5ndGggPyBTdHJpbmcoYXJnc1swXSkgOiBcIlwiO1xyXG4gICAgdGhpcy5zdGF0ZTI9IChhcmdzICYmIGFyZ3MubGVuZ3RoID4gMSkgPyBTdHJpbmcoYXJnc1sxXSkgIDogJyc7XHJcbiAgICB0aGlzLnVzZUZvbnQ9IChhcmdzICYmIGFyZ3MubGVuZ3RoID4gMiAmJiBhcmdzWzJdLmxlbmd0aCkgPyBhcmdzWzJdID09PSAndHJ1ZScgOiBmYWxzZTtcclxuICAgIHRoaXMub25PZmY9IChhcmdzICYmIGFyZ3MubGVuZ3RoID4gMyAmJiBhcmdzWzNdLmxlbmd0aCkgPyBhcmdzWzNdID09PSAndHJ1ZScgOiBmYWxzZTtcclxuICAgIHRoaXMuc291cmNlPSBTdHJpbmcoc291cmNlKTtcclxuICAgIHRoaXMuZGF0YSA9IGRhdGE7XHJcbiAgfVxyXG59XHJcblxyXG4iXX0=