@kushki/ng-suka
Version:
<p align="center"> <h1 align="center">Suka Components Angular</h1> <p align="center"> An Angular implementation of the Suka Design System </p> </p>
83 lines • 5.35 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Component, HostBinding, Input, Output, EventEmitter } from '@angular/core';
export class CalendarDayOverlay {
constructor() {
this.baseClass = true;
this.days = [];
this.daysChange = new EventEmitter();
this.numberOfDays = 31;
}
/**
* @param {?} size
* @param {?=} startAt
* @return {?}
*/
range(size, startAt = 0) {
return [...Array(size).keys()].map((/**
* @param {?} i
* @return {?}
*/
i => i + startAt));
}
/**
* @param {?} day
* @return {?}
*/
toggleDay(day) {
/** @type {?} */
const indexOfDay = this.days.indexOf(day);
if (indexOfDay < 0) {
this.days.push(day);
}
else {
this.days.splice(indexOfDay, 1);
}
this.days.sort((/**
* @param {?} a
* @param {?} b
* @return {?}
*/
(a, b) => {
return a - b;
}));
this.daysChange.emit(this.days);
}
}
CalendarDayOverlay.decorators = [
{ type: Component, args: [{
selector: 'suka-calendar-day-overlay',
template: `
<div
*ngFor="let day of range(numberOfDays,1)"
class="calendar-day"
(click)="toggleDay(day)"
[ngClass]="{
'calendar-day--selected': days.indexOf(day) >= 0
}"
>
<span class="calendar-day__number">
{{day}}
</span>
</div>
`
}] }
];
CalendarDayOverlay.propDecorators = {
baseClass: [{ type: HostBinding, args: ['class.calendar-day-picker__overlay',] }],
days: [{ type: Input }],
daysChange: [{ type: Output }]
};
if (false) {
/** @type {?} */
CalendarDayOverlay.prototype.baseClass;
/** @type {?} */
CalendarDayOverlay.prototype.days;
/** @type {?} */
CalendarDayOverlay.prototype.daysChange;
/** @type {?} */
CalendarDayOverlay.prototype.numberOfDays;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItZGF5LW92ZXJsYXkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGt1c2hraS9uZy1zdWthLyIsInNvdXJjZXMiOlsibGliL2NhbGVuZGFyLWRheS1waWNrZXIvY2FsZW5kYXItZGF5LW92ZXJsYXkuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBVSxNQUFNLGVBQWUsQ0FBQztBQW1CNUYsTUFBTSxPQUFPLGtCQUFrQjtJQWpCL0I7UUFrQnFELGNBQVMsR0FBRyxJQUFJLENBQUM7UUFDM0QsU0FBSSxHQUFhLEVBQUUsQ0FBQztRQUNuQixlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQVksQ0FBQztRQUNwRCxpQkFBWSxHQUFHLEVBQUUsQ0FBQztJQXFCcEIsQ0FBQzs7Ozs7O0lBbkJDLEtBQUssQ0FBQyxJQUFJLEVBQUUsT0FBTyxHQUFHLENBQUM7UUFDckIsT0FBTyxDQUFDLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRzs7OztRQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLE9BQU8sRUFBQyxDQUFDO0lBQ3ZELENBQUM7Ozs7O0lBRUQsU0FBUyxDQUFDLEdBQVc7O2NBQ2IsVUFBVSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQztRQUV6QyxJQUFJLFVBQVUsR0FBRyxDQUFDLEVBQUU7WUFDbEIsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDckI7YUFBTTtZQUNMLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUNqQztRQUVELElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSTs7Ozs7UUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUN0QixPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZixDQUFDLEVBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNsQyxDQUFDOzs7WUF6Q0YsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSwyQkFBMkI7Z0JBQ3JDLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7OztHQWFUO2FBQ0Y7Ozt3QkFFRSxXQUFXLFNBQUMsb0NBQW9DO21CQUNoRCxLQUFLO3lCQUNMLE1BQU07Ozs7SUFGUCx1Q0FBb0U7O0lBQ3BFLGtDQUE2Qjs7SUFDN0Isd0NBQW9EOztJQUNwRCwwQ0FBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdWthLWNhbGVuZGFyLWRheS1vdmVybGF5JyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2XG4gICAgICAqbmdGb3I9XCJsZXQgZGF5IG9mIHJhbmdlKG51bWJlck9mRGF5cywxKVwiXG4gICAgICBjbGFzcz1cImNhbGVuZGFyLWRheVwiXG4gICAgICAoY2xpY2spPVwidG9nZ2xlRGF5KGRheSlcIlxuICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAnY2FsZW5kYXItZGF5LS1zZWxlY3RlZCc6IGRheXMuaW5kZXhPZihkYXkpID49IDBcbiAgICAgIH1cIlxuICAgID5cbiAgICAgIDxzcGFuIGNsYXNzPVwiY2FsZW5kYXItZGF5X19udW1iZXJcIj5cbiAgICAgICAge3tkYXl9fVxuICAgICAgPC9zcGFuPlxuICAgIDwvZGl2PlxuICBgXG59KVxuZXhwb3J0IGNsYXNzIENhbGVuZGFyRGF5T3ZlcmxheSB7XG4gIEBIb3N0QmluZGluZygnY2xhc3MuY2FsZW5kYXItZGF5LXBpY2tlcl9fb3ZlcmxheScpIGJhc2VDbGFzcyA9IHRydWU7XG4gIEBJbnB1dCgpIGRheXM6IG51bWJlcltdID0gW107XG4gIEBPdXRwdXQoKSBkYXlzQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXJbXT4oKTtcbiAgbnVtYmVyT2ZEYXlzID0gMzE7XG5cbiAgcmFuZ2Uoc2l6ZSwgc3RhcnRBdCA9IDApIHtcbiAgICByZXR1cm4gWy4uLkFycmF5KHNpemUpLmtleXMoKV0ubWFwKGkgPT4gaSArIHN0YXJ0QXQpO1xuICB9XG5cbiAgdG9nZ2xlRGF5KGRheTogbnVtYmVyKSB7XG4gICAgY29uc3QgaW5kZXhPZkRheSA9IHRoaXMuZGF5cy5pbmRleE9mKGRheSk7XG5cbiAgICBpZiAoaW5kZXhPZkRheSA8IDApIHtcbiAgICAgIHRoaXMuZGF5cy5wdXNoKGRheSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZGF5cy5zcGxpY2UoaW5kZXhPZkRheSwgMSk7XG4gICAgfVxuXG4gICAgdGhpcy5kYXlzLnNvcnQoKGEsIGIpID0+IHtcbiAgICAgIHJldHVybiBhIC0gYjtcbiAgICB9KTtcblxuICAgIHRoaXMuZGF5c0NoYW5nZS5lbWl0KHRoaXMuZGF5cyk7XG4gIH1cbn1cbiJdfQ==