UNPKG

truly-ui

Version:

Web Components for Desktop Applications.

82 lines 12.3 kB
import { EventEmitter, Injectable } from '@angular/core'; import * as i0 from "@angular/core"; export class WorkScaleService { constructor() { this.currentDate = new Date(); this.workScaleInMileseconds = []; this.updateScale = new EventEmitter(); } reload(workScale) { this.setWorkScale(workScale); this.createWorkScaleMileseconds(); this.generateTimes(); } exitsWorkScale(workScale) { return workScale && (workScale.hasOwnProperty('interval') || workScale.length > 0); } setWorkScale(workScale) { if (!this.exitsWorkScale(workScale)) { return this.workScale = []; } if (workScale.hasOwnProperty('interval')) { return this.workScale = new Array(1).fill(workScale); } if (workScale.length > 0) { this.workScale = workScale; } } createWorkScaleMileseconds() { this.workScaleInMileseconds = []; if (this.workScale.length > 0) { this.workScale.forEach((value, index, array) => { if (array.length > 0) { this.workScaleInMileseconds.push({ start: this.transformHourToMileseconds(value.start), end: this.transformHourToMileseconds(value.end), interval: value.interval }); } }); } } transformHourToMileseconds(fullHour, currentDate = this.currentDate) { const hourSplited = fullHour.split(':'); const hours = Number(hourSplited[0]); const minutes = Number(hourSplited[1]); const year = currentDate.getFullYear(); const month = currentDate.getMonth(); const date = currentDate.getDate(); return new Date(year, month, date, hours, minutes).getTime(); } transformMilesecondsToHour(fullHour) { const fullHourMS = new Date(fullHour); const hours = String(fullHourMS.getHours()).padStart(2, '0'); const minutes = String(fullHourMS.getMinutes()).padStart(2, '0'); return `${hours}:${minutes}`; } generateTimes() { const MIN_TO_MILLESECOND = 60000; this.timesCollection = new Array(this.workScaleInMileseconds.length).fill([]); if (this.workScaleInMileseconds.length > 0) { this.workScaleInMileseconds.forEach((value, index, array) => { let currentHour_ms = value.start; let nextHourBreak_ms = value.start; while (currentHour_ms < value.end) { if (currentHour_ms === nextHourBreak_ms) { this.timesCollection[index] = [...this.timesCollection[index], new Date(nextHourBreak_ms)]; nextHourBreak_ms = nextHourBreak_ms + (value.interval * MIN_TO_MILLESECOND); } currentHour_ms++; } }); } this.updateScale.emit(this.timesCollection); } } /** @nocollapse */ WorkScaleService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: WorkScaleService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); /** @nocollapse */ WorkScaleService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: WorkScaleService }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: WorkScaleService, decorators: [{ type: Injectable }], ctorParameters: function () { return []; } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29yay1zY2FsZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJ1bHktdWkvc3JjL2NvbXBvbmVudHMvc2NoZWR1bGUvc2VydmljZXMvd29yay1zY2FsZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUl6RCxNQUFNLE9BQU8sZ0JBQWdCO0lBWTNCO1FBUk8sZ0JBQVcsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1FBSXpCLDJCQUFzQixHQUFHLEVBQUUsQ0FBQztRQUU1QixnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7SUFFN0IsQ0FBQztJQUVqQixNQUFNLENBQUUsU0FBMEM7UUFDaEQsSUFBSSxDQUFDLFlBQVksQ0FBRSxTQUFTLENBQUUsQ0FBQztRQUMvQixJQUFJLENBQUMsMEJBQTBCLEVBQUUsQ0FBQztRQUNsQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVELGNBQWMsQ0FBRyxTQUFTO1FBQ3hCLE9BQU8sU0FBUyxJQUFJLENBQ2hCLFNBQTRCLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQztZQUN2RCxTQUFtQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQ2pELENBQUM7SUFDSixDQUFDO0lBRU8sWUFBWSxDQUFFLFNBQTBDO1FBRTlELElBQUssQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFFLFNBQVMsQ0FBRSxFQUFHO1lBQ3hDLE9BQU8sSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7U0FDM0I7UUFFRCxJQUFPLFNBQTRCLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxFQUFJO1lBQ2hFLE9BQU8sSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLEtBQUssQ0FBZ0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFFLFNBQTBCLENBQUMsQ0FBQztT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STt3QkFDMUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsRUFBRSxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFFLENBQUU7d0JBQzdGLGdCQUFnQixHQUFJLGdCQUFnQixHQUFHLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxrQkFBa0IsQ0FBQyxDQUFDO3FCQUM5RTtvQkFDRCxjQUFjLEVBQUUsQ0FBQztpQkFDbEI7WUFDSCxDQUFDLENBQUMsQ0FBQztTQUNKO1FBRUQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBRSxDQUFDO0lBQ2hELENBQUM7O2lJQXhHVSxnQkFBZ0I7cUlBQWhCLGdCQUFnQjs0RkFBaEIsZ0JBQWdCO2tCQUQ1QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXZlbnRFbWl0dGVyLCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBXb3JrU2NhbGVUeXBlIH0gZnJvbSAnLi4vdHlwZXMvd29yay1zY2FsZS50eXBlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFdvcmtTY2FsZVNlcnZpY2Uge1xuXG4gIHB1YmxpYyB3b3JrU2NhbGU6IFdvcmtTY2FsZVR5cGVbXTtcblxuICBwdWJsaWMgY3VycmVudERhdGUgPSBuZXcgRGF0ZSgpO1xuXG4gIHB1YmxpYyB0aW1lc0NvbGxlY3Rpb246IEFycmF5PEFycmF5PERhdGU+PjtcblxuICBwdWJsaWMgd29ya1NjYWxlSW5NaWxlc2Vjb25kcyA9IFtdO1xuXG4gIHB1YmxpYyB1cGRhdGVTY2FsZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIGNvbnN0cnVjdG9yKCApIHt9XG5cbiAgcmVsb2FkKCB3b3JrU2NhbGU6IFdvcmtTY2FsZVR5cGUgfCBXb3JrU2NhbGVUeXBlW10gKSB7XG4gICAgdGhpcy5zZXRXb3JrU2NhbGUoIHdvcmtTY2FsZSApO1xuICAgIHRoaXMuY3JlYXRlV29ya1NjYWxlTWlsZXNlY29uZHMoKTtcbiAgICB0aGlzLmdlbmVyYXRlVGltZXMoKTtcbiAgfVxuXG4gIGV4aXRzV29ya1NjYWxlICggd29ya1NjYWxlICkge1xuICAgIHJldHVybiB3b3JrU2NhbGUgJiYgKFxuICAgICAgKCB3b3JrU2NhbGUgYXMgV29ya1NjYWxlVHlwZSApLmhhc093blByb3BlcnR5KCdpbnRlcnZhbCcpIHx8XG4gICAgICAoIHdvcmtTY2FsZSBhcyBBcnJheTxXb3JrU2NhbGVUeXBlPiApLmxlbmd0aCA+IDBcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRXb3JrU2NhbGUoIHdvcmtTY2FsZTogV29ya1NjYWxlVHlwZSB8IFdvcmtTY2FsZVR5cGVbXSApIHtcblxuICAgIGlmICggIXRoaXMuZXhpdHNXb3JrU2NhbGUoIHdvcmtTY2FsZSApICkge1xuICAgICByZXR1cm4gdGhpcy53b3JrU2NhbGUgPSBbXTtcbiAgICB9XG5cbiAgICBpZiAoICggd29ya1NjYWxlIGFzIFdvcmtTY2FsZVR5cGUgKS5oYXNPd25Qcm9wZXJ0eSgnaW50ZXJ2YWwnKSAgKSB7XG4gICAgICByZXR1cm4gdGhpcy53b3JrU2NhbGUgPSBuZXcgQXJyYXk8V29ya1NjYWxlVHlwZT4oMSkuZmlsbCggd29ya1NjYWxlIGFzIFdvcmtTY2FsZVR5cGUpO1xuICAgIH1cblxuICAgIGlmICggKCB3b3JrU2NhbGUgYXMgQXJyYXk8V29ya1NjYWxlVHlwZT4gKS5sZW5ndGggPiAwICkge1xuICAgICAgdGhpcy53b3JrU2NhbGUgPSB3b3JrU2NhbGUgYXMgV29ya1NjYWxlVHlwZVtdO1xuICAgIH1cblxuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVXb3JrU2NhbGVNaWxlc2Vjb25kcygpIHtcblxuICAgIHRoaXMud29ya1NjYWxlSW5NaWxlc2Vjb25kcyA9IFtdO1xuXG4gICAgaWYgKCAodGhpcy53b3JrU2NhbGUgYXMgQXJyYXk8V29ya1NjYWxlVHlwZT4pLmxlbmd0aCA+IDAgKSB7XG4gICAgICAodGhpcy53b3JrU2NhbGUgYXMgQXJyYXk8V29ya1NjYWxlVHlwZT4pLmZvckVhY2goKCB2YWx1ZTogV29ya1NjYWxlVHlwZSwgaW5kZXgsIGFycmF5KSA9PiB7XG4gICAgICAgIGlmICggYXJyYXkubGVuZ3RoID4gMCApIHtcbiAgICAgICAgICB0aGlzLndvcmtTY2FsZUluTWlsZXNlY29uZHMucHVzaCh7XG4gICAgICAgICAgICBzdGFydDogdGhpcy50cmFuc2Zvcm1Ib3VyVG9NaWxlc2Vjb25kcyggdmFsdWUuc3RhcnQgKSxcbiAgICAgICAgICAgIGVuZDogdGhpcy50cmFuc2Zvcm1Ib3VyVG9NaWxlc2Vjb25kcyggdmFsdWUuZW5kICksXG4gICAgICAgICAgICBpbnRlcnZhbDogdmFsdWUuaW50ZXJ2YWxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gIH1cblxuXG4gIHRyYW5zZm9ybUhvdXJUb01pbGVzZWNvbmRzKCBmdWxsSG91cjogc3RyaW5nLCBjdXJyZW50RGF0ZSA9IHRoaXMuY3VycmVudERhdGUgKSB7XG4gICAgY29uc3QgaG91clNwbGl0ZWQgPSBmdWxsSG91ci5zcGxpdCgnOicpO1xuXG4gICAgY29uc3QgaG91cnMgPSBOdW1iZXIoaG91clNwbGl0ZWRbMF0pO1xuICAgIGNvbnN0IG1pbnV0ZXMgPSBOdW1iZXIoaG91clNwbGl0ZWRbMV0pO1xuICAgIGNvbnN0IHllYXIgPSBjdXJyZW50RGF0ZS5nZXRGdWxsWWVhcigpO1xuICAgIGNvbnN0IG1vbnRoID0gY3VycmVudERhdGUuZ2V0TW9udGgoKTtcbiAgICBjb25zdCBkYXRlID0gY3VycmVudERhdGUuZ2V0RGF0ZSgpO1xuXG4gICAgcmV0dXJuIG5ldyBEYXRlKHllYXIsIG1vbnRoLCBkYXRlLCBob3VycywgbWludXRlcykuZ2V0VGltZSgpO1xuICB9XG5cbiAgdHJhbnNmb3JtTWlsZXNlY29uZHNUb0hvdXIoIGZ1bGxIb3VyOiBudW1iZXIgKSB7XG4gICAgY29uc3QgZnVsbEhvdXJNUyA9IG5ldyBEYXRlKGZ1bGxIb3VyKTtcblxuICAgIGNvbnN0IGhvdXJzID0gU3RyaW5nKGZ1bGxIb3VyTVMuZ2V0SG91cnMoKSkucGFkU3RhcnQoMiwgJzAnKTtcbiAgICBjb25zdCBtaW51dGVzID0gU3RyaW5nKGZ1bGxIb3VyTVMuZ2V0TWludXRlcygpKS5wYWRTdGFydCgyLCAnMCcpO1xuXG4gICAgcmV0dXJuIGAke2hvdXJzfToke21pbnV0ZXN9YDtcbiAgfVxuXG5cbiAgcHJpdmF0ZSBnZW5lcmF0ZVRpbWVzKCkge1xuICAgIGNvbnN0IE1JTl9UT19NSUxMRVNFQ09ORCA9IDYwMDAwO1xuICAgIHRoaXMudGltZXNDb2xsZWN0aW9uID0gbmV3IEFycmF5PEFycmF5PERhdGU+PiggKHRoaXMud29ya1NjYWxlSW5NaWxlc2Vjb25kcyBhcyBBcnJheTxhbnk+KS5sZW5ndGggKS5maWxsKFtdKTtcblxuICAgIGlmICggKHRoaXMud29ya1NjYWxlSW5NaWxlc2Vjb25kcyBhcyBBcnJheTxhbnk+KS5sZW5ndGggPiAwICkge1xuICAgICAgKHRoaXMud29ya1NjYWxlSW5NaWxlc2Vjb25kcyBhcyBBcnJheTxhbnk+KS5mb3JFYWNoKCggdmFsdWUgLCBpbmRleCwgYXJyYXkpID0+IHtcbiAgICAgICAgbGV0IGN1cnJlbnRIb3VyX21zID0gIHZhbHVlLnN0YXJ0O1xuICAgICAgICBsZXQgbmV4dEhvdXJCcmVha19tcyA9IHZhbHVlLnN0YXJ0O1xuXG4gICAgICAgIHdoaWxlICggY3VycmVudEhvdXJfbXMgPCB2YWx1ZS5lbmQgKSB7XG4gICAgICAgICAgaWYgKCBjdXJyZW50SG91cl9tcyA9PT0gbmV4dEhvdXJCcmVha19tcyAgKSB7XG4gICAgICAgICAgICB0aGlzLnRpbWVzQ29sbGVjdGlvbltpbmRleF0gPSBbLi4udGhpcy50aW1lc0NvbGxlY3Rpb25baW5kZXhdLCBuZXcgRGF0ZShuZXh0SG91ckJyZWFrX21zKSBdIDtcbiAgICAgICAgICAgIG5leHRIb3VyQnJlYWtfbXMgPSAgbmV4dEhvdXJCcmVha19tcyArICh2YWx1ZS5pbnRlcnZhbCAqIE1JTl9UT19NSUxMRVNFQ09ORCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGN1cnJlbnRIb3VyX21zKys7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHRoaXMudXBkYXRlU2NhbGUuZW1pdCggdGhpcy50aW1lc0NvbGxlY3Rpb24gKTtcbiAgfVxufVxuIl19