@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?
75 lines • 10.1 kB
JavaScript
import { Component, EventEmitter, HostListener } from '@angular/core';
import * as i0 from "@angular/core";
import * as i1 from "@angular/common";
export class RatingComponent {
constructor(el) {
this.el = el;
this.singleStar = false;
this.value = [];
this.disabled = false;
this.active = true;
this.validate = (item, newValue) => true;
this.onIntoComponentChange = new EventEmitter();
el.nativeElement.setAttribute('tabindex', '0');
}
keyup(event) {
const code = event.which;
event.stopPropagation();
event.preventDefault();
if (code === 13) {
event.target.click();
}
}
click() {
this.onIntoComponentChange.emit({
id: this.id,
name: this.name,
value: this.source,
type: 'click',
item: 'rating'
});
}
static settingsPatterns() {
return ['rating:true', 'rating:false']; //single star
}
transform(source, data, args) {
this.float = parseFloat(source);
this.singleStar = (args?.length && args[0].length) ? (args[0] === 'true') : false;
this.source = source;
const size = parseInt(source, 10);
for (let i = 0; i < size; i++) {
this.value.push(i);
}
}
}
RatingComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RatingComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
RatingComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: RatingComponent, selector: "rating-component", host: { listeners: { "keyup": "keyup($event)", "click": "click()" } }, ngImport: i0, template: `
<span class='rating' *ngIf="singleStar">
<span class='fa fa-star' aria-hidden='true'></span>
</span>
<span class='rating' *ngIf="!singleStar">
<span class='fa fa-star' aria-hidden='true' *ngFor="let x of value"></span>
<span class='fa fa-star-half' aria-hidden='true' *ngIf="float != value"></span>
</span>
<span class='rate-value' [textContent]="source"></span>
`, isInline: true, styles: [":host{cursor:defult;display:table;float:left;min-height:var(--sedeh-min-height, 25px)}:host:focus{outline:none}:host:focus .fa{zoom:1.1;right:var(--sedeh-shift-right, 0);position:relative;color:var(--sedeh-focus-color, darkblue)}.rating{display:inline-block}@media print{:host .rating{display:none}}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RatingComponent, decorators: [{
type: Component,
args: [{ selector: 'rating-component', template: `
<span class='rating' *ngIf="singleStar">
<span class='fa fa-star' aria-hidden='true'></span>
</span>
<span class='rating' *ngIf="!singleStar">
<span class='fa fa-star' aria-hidden='true' *ngFor="let x of value"></span>
<span class='fa fa-star-half' aria-hidden='true' *ngIf="float != value"></span>
</span>
<span class='rate-value' [textContent]="source"></span>
`, styles: [":host{cursor:defult;display:table;float:left;min-height:var(--sedeh-min-height, 25px)}:host:focus{outline:none}:host:focus .fa{zoom:1.1;right:var(--sedeh-shift-right, 0);position:relative;color:var(--sedeh-focus-color, darkblue)}.rating{display:inline-block}@media print{:host .rating{display:none}}\n"] }]
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { keyup: [{
type: HostListener,
args: ['keyup', ['$event']]
}], click: [{
type: HostListener,
args: ['click', []]
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmF0aW5nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ludG8tcGlwZXMvc3JjL2xpYi9yYXRpbmcvcmF0aW5nLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBYyxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQStCbEYsTUFBTSxPQUFPLGVBQWU7SUFheEIsWUFBb0IsRUFBYztRQUFkLE9BQUUsR0FBRixFQUFFLENBQVk7UUFUbEMsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNuQixVQUFLLEdBQVUsRUFBRSxDQUFDO1FBRWxCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsV0FBTSxHQUFHLElBQUksQ0FBQztRQUNkLGFBQVEsR0FBRyxDQUFDLElBQVMsRUFBRSxRQUFhLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQztRQUVqRCwwQkFBcUIsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBR3BDLEVBQUUsQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBQyxHQUFHLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBR0QsS0FBSyxDQUFDLEtBQVU7UUFDWixNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQ3pCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFFdkIsSUFBSSxJQUFJLEtBQUssRUFBRSxFQUFFO1lBQ2IsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUN4QjtJQUNMLENBQUM7SUFFRCxLQUFLO1FBQ0QsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQztZQUM1QixFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUU7WUFDWCxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDZixLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU07WUFDbEIsSUFBSSxFQUFFLE9BQU87WUFDYixJQUFJLEVBQUUsUUFBUTtTQUNqQixDQUFDLENBQUE7SUFDTixDQUFDO0lBQ0QsTUFBTSxDQUFDLGdCQUFnQjtRQUNuQixPQUFPLENBQUMsYUFBYSxFQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsYUFBYTtJQUN4RCxDQUFDO0lBQ0QsU0FBUyxDQUFDLE1BQVcsRUFBRSxJQUFTLEVBQUUsSUFBVztRQUN6QyxJQUFJLENBQUMsS0FBSyxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNoQyxJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsSUFBSSxFQUFFLE1BQU0sSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDbEYsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNsQyxLQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQzFCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3RCO0lBQ0wsQ0FBQzs7NkdBaERRLGVBQWU7aUdBQWYsZUFBZSwrSEExQmQ7Ozs7Ozs7OztLQVNUOzRGQWlCUSxlQUFlO2tCQTVCM0IsU0FBUzsrQkFDSSxrQkFBa0IsWUFDbEI7Ozs7Ozs7OztLQVNUO2lHQW1DRCxLQUFLO3NCQURKLFlBQVk7dUJBQUMsT0FBTyxFQUFDLENBQUMsUUFBUSxDQUFDO2dCQVdoQyxLQUFLO3NCQURKLFlBQVk7dUJBQUMsT0FBTyxFQUFDLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFBpcGVDb21wb25lbnRJbnRlcmZhY2UgfSBmcm9tICcuLi9jb21tb24vcGlwZS5jb21wb25lbnQuaW50ZXJmYWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdyYXRpbmctY29tcG9uZW50JyxcclxuICAgIHRlbXBsYXRlOiBgXHJcbiAgICA8c3BhbiBjbGFzcz0ncmF0aW5nJyAqbmdJZj1cInNpbmdsZVN0YXJcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz0nZmEgZmEtc3RhcicgYXJpYS1oaWRkZW49J3RydWUnPjwvc3Bhbj5cclxuICAgIDwvc3Bhbj5cclxuICAgIDxzcGFuIGNsYXNzPSdyYXRpbmcnICpuZ0lmPVwiIXNpbmdsZVN0YXJcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz0nZmEgZmEtc3RhcicgYXJpYS1oaWRkZW49J3RydWUnICpuZ0Zvcj1cImxldCB4IG9mIHZhbHVlXCI+PC9zcGFuPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPSdmYSBmYS1zdGFyLWhhbGYnIGFyaWEtaGlkZGVuPSd0cnVlJyAqbmdJZj1cImZsb2F0ICE9IHZhbHVlXCI+PC9zcGFuPlxyXG4gICAgPC9zcGFuPlxyXG4gICAgPHNwYW4gY2xhc3M9J3JhdGUtdmFsdWUnIFt0ZXh0Q29udGVudF09XCJzb3VyY2VcIj48L3NwYW4+XHJcbiAgICBgLFxyXG4gICAgc3R5bGVzOiBbXHJcbiAgICAgICAgYFxyXG4gICAgICAgIDpob3N0IHtjdXJzb3I6IGRlZnVsdDtkaXNwbGF5OnRhYmxlO2Zsb2F0OmxlZnQ7bWluLWhlaWdodDogdmFyKC0tc2VkZWgtbWluLWhlaWdodCwgMjVweCk7fVxyXG4gICAgICAgIDpob3N0OmZvY3VzIHtvdXRsaW5lOiBub25lO31cclxuICAgICAgICA6aG9zdDpmb2N1cyAuZmF7em9vbTogMS4xO3JpZ2h0OiB2YXIoLS1zZWRlaC1zaGlmdC1yaWdodCwgMCk7cG9zaXRpb246IHJlbGF0aXZlO2NvbG9yOiB2YXIoLS1zZWRlaC1mb2N1cy1jb2xvciwgZGFya2JsdWUpO31cclxuICAgICAgICAucmF0aW5nIHtcclxuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgIH1cclxuICAgICAgICBAbWVkaWEgcHJpbnQge1xyXG4gICAgICAgICAgICA6aG9zdCAucmF0aW5nIHtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgYFxyXG4gICAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmF0aW5nQ29tcG9uZW50IGltcGxlbWVudHMgUGlwZUNvbXBvbmVudEludGVyZmFjZSB7XHJcbiAgICBzb3VyY2UhOiBzdHJpbmc7XHJcblx0aWQhOiBzdHJpbmc7XHJcbiAgICBuYW1lITogc3RyaW5nO1xyXG4gICAgc2luZ2xlU3RhciA9IGZhbHNlO1xyXG4gICAgdmFsdWU6IGFueVtdID0gW107XHJcbiAgICBmbG9hdDogYW55O1xyXG4gICAgZGlzYWJsZWQgPSBmYWxzZTtcclxuICAgIGFjdGl2ZSA9IHRydWU7XHJcbiAgICB2YWxpZGF0ZSA9IChpdGVtOiBhbnksIG5ld1ZhbHVlOiBhbnkpID0+IHRydWU7XHJcblxyXG5cdG9uSW50b0NvbXBvbmVudENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsOiBFbGVtZW50UmVmKXtcclxuICAgICAgICBlbC5uYXRpdmVFbGVtZW50LnNldEF0dHJpYnV0ZSgndGFiaW5kZXgnLCcwJyk7XHJcbiAgICB9XHJcblxyXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5dXAnLFsnJGV2ZW50J10pXHJcbiAgICBrZXl1cChldmVudDogYW55KSB7XHJcbiAgICAgICAgY29uc3QgY29kZSA9IGV2ZW50LndoaWNoO1xyXG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICBcclxuICAgICAgICBpZiAoY29kZSA9PT0gMTMpIHtcclxuICAgICAgICAgICAgZXZlbnQudGFyZ2V0LmNsaWNrKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgQEhvc3RMaXN0ZW5lcignY2xpY2snLFtdKVxyXG4gICAgY2xpY2soKSB7XHJcbiAgICAgICAgdGhpcy5vbkludG9Db21wb25lbnRDaGFuZ2UuZW1pdCh7XHJcbiAgICAgICAgICAgIGlkOiB0aGlzLmlkLFxyXG4gICAgICAgICAgICBuYW1lOiB0aGlzLm5hbWUsXHJcbiAgICAgICAgICAgIHZhbHVlOiB0aGlzLnNvdXJjZSxcclxuICAgICAgICAgICAgdHlwZTogJ2NsaWNrJyxcclxuICAgICAgICAgICAgaXRlbTogJ3JhdGluZydcclxuICAgICAgICB9KVxyXG4gICAgfVxyXG4gICAgc3RhdGljIHNldHRpbmdzUGF0dGVybnMoKSB7XHJcbiAgICAgICAgcmV0dXJuIFsncmF0aW5nOnRydWUnLCdyYXRpbmc6ZmFsc2UnXTsgLy9zaW5nbGUgc3RhclxyXG4gICAgfVxyXG4gICAgdHJhbnNmb3JtKHNvdXJjZTogYW55LCBkYXRhOiBhbnksIGFyZ3M6IGFueVtdKSB7XHJcbiAgICAgICAgdGhpcy5mbG9hdCA9IHBhcnNlRmxvYXQoc291cmNlKTtcclxuICAgICAgICB0aGlzLnNpbmdsZVN0YXIgPSAoYXJncz8ubGVuZ3RoICYmIGFyZ3NbMF0ubGVuZ3RoKSA/IChhcmdzWzBdID09PSAndHJ1ZScpIDogZmFsc2U7XHJcbiAgICAgICAgdGhpcy5zb3VyY2UgPSBzb3VyY2U7XHJcbiAgICAgICAgY29uc3Qgc2l6ZSA9IHBhcnNlSW50KHNvdXJjZSwgMTApO1xyXG4gICAgICAgIGZvcihsZXQgaSA9IDA7IGkgPCBzaXplOyBpKyspIHtcclxuICAgICAgICAgICAgdGhpcy52YWx1ZS5wdXNoKGkpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iXX0=