{"version":3,"sources":["components/modals/modal.dateTimePicker.js"],"names":["angular","module","date","$scope","dateTimeObject","close","dateTimeOptionsObject","$translate","xCenterConfig","API","isNextDay","geoCords","opt","moment","undefined","months","pickerTemplate","filter","astroData","localizations","template","a","result","set","seconds","chosenAstroValueDdl","asUTC","utc","astroOffset","DateTime","milliseconds","AstroType","AstroOffset","api","minutes","oldOffset","Datapoint","ReadValues","sunriseSunset","guessAstroTime","Value","allowSave","subtract","GeoCoordinatesMissing","textBeforeDate","getTimes","hours","times","sunrise","sunset","boundSunriseSunset","isBetween","startOf","endOf","add","isBefore","hour","setDateTimeObject","isAfter","geoCordsLoading","geoCordsPromise","then","data","time","Today","Around","format","boundDateTimeObject","activateSunriseSunset","Time_Manual","instant","Time_Sunrise","Time_Sunset","AtNearest","possibleValuesTimeSettings","1","2","astroType","mightyCalendarOnDayClick","newDate","isSame","oldDate","clone","mins","oldMins","includes","DeviceId","var","guid_Empty","DatapointConfigId","datapointsDateTime","Longitude","Latitude","SunCalc","readValuesParams","$promise","loadLocalizations","oldHour","event","charCode","preventDefault","subtractedDate","console","log","timeprogram","defaultEntryTimeFormat","isInteger","fullOffset","valuesTimeSettingsDdlChanged","value","filterKeys","Number","init","merge","m","templateUrl","shouldActivateAstro","hideDate","callback","$watch","factory","ModalService","showModal","controller","inputs"],"mappings":"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","file":"modal.dateTimePicker.js","sourcesContent":["\"use strict\";\r\n\r\nangular.module('app.modals.dateTimePicker', [])\r\n\r\n .controller('dateTimePickerModalCtrl', ['$scope', 'dateTimeObject', 'close', 'dateTimeOptionsObject', '$translate', 'xCenterConfig', 'API',\r\n function($scope, dateTimeObject, close, dateTimeOptionsObject, $translate, xCenterConfig, API) {\r\n var opt = {\r\n date: true,\r\n time: true,\r\n isNextDay: false,\r\n months: 1,\r\n start: moment(),\r\n filter: undefined,\r\n astroData: {},\r\n pickerTemplate: 'views/form/datepicker.html',\r\n template: 'views/form/datepicker.html'\r\n };\r\n var localizations = {};\r\n\r\n $scope.close = function(a) {\r\n if (a == true) {\r\n var result;\r\n\r\n result = moment($scope.dateTimeObject).set({\r\n 'seconds': 0,\r\n 'milliseconds': 0\r\n });\r\n if ($scope.dateTimeOptionsObject.asUTC == true) {\r\n result = moment.utc(result);\r\n }\r\n\r\n if ($scope.dateTimeOptionsObject.astroData.shouldActivateAstro) {\r\n result = {\r\n DateTime: (\r\n $scope.chosenAstroValueDdl === 0\r\n ? result\r\n : $scope.dateTimeObject\r\n .set({\r\n 'milliseconds': 0\r\n })\r\n ),\r\n AstroType: $scope.chosenAstroValueDdl,\r\n AstroOffset: +$scope.dateTimeOptionsObject.astroData.astroOffset || 0\r\n };\r\n }\r\n\r\n close(result);\r\n } else {\r\n close();\r\n }\r\n };\r\n\r\n var geoCords;\r\n var geoCordsLoading = false;\r\n function geoCordsPromise() {\r\n var api = new API();\r\n var readValuesParams = {\r\n 'DatapointValues': [\r\n {\r\n 'DeviceId': xCenterConfig.var.guid_Empty,\r\n 'DatapointConfigId': xCenterConfig.datapointsDateTime.Longitude\r\n },\r\n {\r\n 'DeviceId': xCenterConfig.var.guid_Empty,\r\n 'DatapointConfigId': xCenterConfig.datapointsDateTime.Latitude\r\n }\r\n ],\r\n IgnoreErrors: false\r\n };\r\n\r\n return api.Datapoint.ReadValues(readValuesParams).$promise;\r\n }\r\n\r\n function guessAstroTime() {\r\n if (geoCords[1].Value === 0 && geoCords[0].Value === 0) {\r\n $scope.allowSave = false;\r\n $scope.textBeforeDate = localizations.GeoCoordinatesMissing;\r\n $scope.dateTimeObject = undefined;\r\n return;\r\n }\r\n\r\n // SunCalc is a library for calculating sun/moon positions and phases.\r\n // https://github.com/mourner/suncalc\r\n // (/*Date*/ date, /*Number*/ latitude, /*Number*/ longitude)\r\n // For reference use https://www.esrl.noaa.gov/gmd/grad/solcalc/\r\n let times = SunCalc.getTimes(\r\n /* It is important to set the day to midday. Otherwise the algorithm\r\n tries to find previous sunrise / next sunset from current time. */\r\n moment($scope.dateTimeObject).set({ hours: 12 }),\r\n geoCords[1].Value,\r\n geoCords[0].Value\r\n );\r\n\r\n let sunriseSunset;\r\n if ($scope.chosenAstroValueDdl === 1) {\r\n /* Correction to match time calculated on the server. */\r\n sunriseSunset = moment(times.sunrise).subtract(103, 'seconds');\r\n } else if ($scope.chosenAstroValueDdl === 2) {\r\n /* Correction to match time calculated on the server. */\r\n sunriseSunset = moment(times.sunset).subtract(141, 'seconds');\r\n }\r\n\r\n let boundSunriseSunset;\r\n if (moment(sunriseSunset).add(+$scope.dateTimeOptionsObject.astroData.astroOffset, 'minutes').isBetween(moment(sunriseSunset).startOf('day'), moment(sunriseSunset).endOf('day'), null, [])) {\r\n /* All good, offset is in allowed ranges. */\r\n boundSunriseSunset = moment(sunriseSunset).add(+$scope.dateTimeOptionsObject.astroData.astroOffset, 'minutes');\r\n\r\n } else if (moment(sunriseSunset).add(+$scope.dateTimeOptionsObject.astroData.astroOffset, 'minutes').isBefore(moment(sunriseSunset).startOf('day'))) {\r\n /* To early, set to 00:00 */\r\n boundSunriseSunset = moment(sunriseSunset).set({\r\n hour: 0,\r\n minutes: 0,\r\n seconds: 0,\r\n milliseconds: 0\r\n });\r\n\r\n } else if (moment(sunriseSunset).add(+$scope.dateTimeOptionsObject.astroData.astroOffset, 'minutes').isAfter(moment(sunriseSunset).endOf('day'))) {\r\n /* To early, set to 24:00 */\r\n boundSunriseSunset = moment(sunriseSunset).set({\r\n hour: 24,\r\n minutes: 0,\r\n seconds: 0,\r\n milliseconds: 0\r\n });\r\n\r\n }\r\n\r\n\r\n\r\n $scope.textBeforeDate = '';\r\n if (boundSunriseSunset.isBetween(moment(), moment().endOf('day'), null, [])) {\r\n $scope.textBeforeDate += localizations.Today + ' ' + localizations.Around;\r\n }\r\n else {\r\n $scope.textBeforeDate += localizations.AtNearest + ' ' + boundSunriseSunset.format('dddd') + ' ' + localizations.Around;\r\n }\r\n\r\n $scope.boundDateTimeObject = boundSunriseSunset;\r\n $scope.dateTimeObject = sunriseSunset;\r\n }\r\n\r\n var oldDate;\r\n $scope.setDateTimeObject = function() {\r\n if ([1,2].includes($scope.chosenAstroValueDdl)) {\r\n if (geoCords) {\r\n guessAstroTime();\r\n } else {\r\n if (!geoCordsLoading) {\r\n geoCordsLoading = true;\r\n geoCordsPromise()\r\n .then(function (data) {\r\n geoCordsLoading = false;\r\n geoCords = data;\r\n guessAstroTime();\r\n });\r\n }\r\n }\r\n }\r\n else {\r\n $scope.allowSave = true;\r\n\r\n /* The next day is already set, do nothing. */\r\n if ($scope.time.oldHour === 24 && $scope.time.hour === 24) {\r\n return;\r\n }\r\n\r\n if ($scope.dateTimeOptionsObject.asUTC === true) {\r\n\r\n $scope.dateTimeObject = moment.utc($scope.dateTimeObject).set({\r\n hour: $scope.time.hour,\r\n minutes: $scope.time.mins\r\n });\r\n\r\n } else {\r\n $scope.dateTimeObject = moment($scope.dateTimeObject).set({\r\n hour: $scope.time.hour,\r\n minutes: $scope.time.mins\r\n });\r\n\r\n }\r\n\r\n /* An user set hour from 24 to any, subtract a day. */\r\n if ($scope.time.oldHour === 24 && $scope.time.hour !== 24) {\r\n $scope.dateTimeObject.subtract(1, 'days');\r\n }\r\n\r\n /* An user set hour to 24, it is needed to display -1 day from the current day. */\r\n if ($scope.time.hour === 24) {\r\n $scope.subtractedDate = moment($scope.dateTimeObject).subtract(1, 'days');\r\n } else {\r\n $scope.subtractedDate = moment($scope.dateTimeObject);\r\n }\r\n }\r\n\r\n console.log('time: ' + $scope.dateTimeObject.format(xCenterConfig.timeprogram.defaultEntryTimeFormat));\r\n oldDate = $scope.dateTimeObject.clone();\r\n };\r\n\r\n\r\n var oldOffset;\r\n function activateSunriseSunset(astroData) {\r\n loadLocalizations();\r\n $scope.possibleValuesTimeSettings = {\r\n '0': localizations.Time_Manual,\r\n '1': localizations.Time_Sunrise,\r\n '2': localizations.Time_Sunset,\r\n };\r\n $scope.chosenAstroValueDdl = astroData.astroType || 0;\r\n oldOffset = astroData.astroOffset;\r\n }\r\n\r\n $scope.valuesTimeSettingsDdlChanged = function(result) {\r\n $scope.chosenAstroValueDdl = (+result.value);\r\n $scope.setDateTimeObject();\r\n };\r\n\r\n $scope.filterKeys = (event) => {\r\n if (event.charCode === 8 || event.charCode === 0) {\r\n return null;\r\n }\r\n else if (\r\n (event.charCode >= 48 && event.charCode <= 57)\r\n || event.charCode === 45 // -\r\n ) {\r\n return event.charCode;\r\n }\r\n event.preventDefault();\r\n return null;\r\n };\r\n\r\n\r\n $scope.filterInput = (fullOffset) => {\r\n if (fullOffset === '') {\r\n $scope.dateTimeOptionsObject.astroData.astroOffset = '';\r\n oldOffset = 0;\r\n $scope.setDateTimeObject();\r\n return;\r\n }\r\n else if (fullOffset === '-') {\r\n /* Wait for a next char. */\r\n return;\r\n }\r\n\r\n if (Number.isInteger(+fullOffset)) {\r\n /* Valid input. A number or empty, remember the value. */\r\n $scope.dateTimeOptionsObject.astroData.astroOffset = +fullOffset;\r\n oldOffset = +fullOffset;\r\n }\r\n else {\r\n /* Some unknown invalid input, better to revert to a correct value. */\r\n $scope.dateTimeOptionsObject.astroData.astroOffset = +oldOffset;\r\n }\r\n\r\n\r\n $scope.setDateTimeObject();\r\n };\r\n\r\n $scope.time = {\r\n hour: 0,\r\n mins: 0\r\n };\r\n\r\n /* The logic for this method is to reduce the calendar date 'jumping'.\r\n When an user selects 24:00 in any day, the selected day will 'jump'\r\n to a previous day. To reduce number of jumps, when an user\r\n selects 24:00 and then selects any other day, the time will\r\n be changed to 23:59 and therefore no jump will occur. */\r\n function mightyCalendarOnDayClick(newDate) {\r\n /* An user clicked the same day in the calendar, do nothing. */\r\n if (oldDate.isSame(newDate)) {\r\n return;\r\n }\r\n oldDate = newDate.clone();\r\n\r\n if ($scope.time.hour === 24) {\r\n $scope.time = {\r\n hour: 23,\r\n mins: 59\r\n };\r\n newDate.set({ 'hours': $scope.time.hours, 'minutes': $scope.time.mins });\r\n }\r\n\r\n $scope.dateTimeObject = moment(newDate);\r\n $scope.subtractedDate = newDate.clone();\r\n\r\n $scope.setDateTimeObject();\r\n }\r\n\r\n $scope.init = function() {\r\n // extract hours and seconds\r\n if (dateTimeObject == undefined) {\r\n close();\r\n }\r\n $scope.dateTimeOptionsObject = angular.merge(opt, dateTimeOptionsObject);\r\n //angular.extend(opt, dateTimeOptionsObject);\r\n $scope.dateTimeObject = dateTimeObject;\r\n oldDate = moment($scope.dateTimeObject);\r\n $scope.allowSave = true;\r\n\r\n /* No utc time, an user wants to see time in their pc locale. */\r\n /* Check if it's a utc . In scenes we handy only UTCs. User dont want to see 15 if he set 14 one step before.*/\r\n var m;\r\n\r\n if ($scope.dateTimeOptionsObject.asUTC == true) {\r\n m = moment.utc($scope.dateTimeObject);\r\n //$scope.asLocale = false;\r\n } else {\r\n m = moment($scope.dateTimeObject);\r\n //$scope.asLocale = true;\r\n }\r\n if ($scope.dateTimeOptionsObject.astroData.astroOffset) {\r\n m.subtract(+$scope.dateTimeOptionsObject.astroData.astroOffset, 'minutes');\r\n }\r\n\r\n\r\n console.log('m: ' + m.format(xCenterConfig.timeprogram.defaultEntryTimeFormat));\r\n // O.k. it's a Scene DateTimeObject and we have 24hours\r\n if ($scope.dateTimeOptionsObject.isNextDay) {\r\n $scope.time = {\r\n hour: 24,\r\n mins: 0\r\n };\r\n } else {\r\n $scope.time = {\r\n hour: m.hours(),\r\n mins: m.minutes()\r\n };\r\n }\r\n $scope.time.oldHour = $scope.time.hour;\r\n $scope.time.oldMins = $scope.time.mins;\r\n\r\n if ($scope.dateTimeOptionsObject.astroData.shouldActivateAstro) {\r\n if ($scope.dateTimeOptionsObject.isNextDay) {\r\n $scope.dateTimeObject = $scope.dateTimeObject.subtract(1, 'days');\r\n }\r\n\r\n activateSunriseSunset($scope.dateTimeOptionsObject.astroData);\r\n } else {\r\n $scope.chosenAstroValueDdl = 0;\r\n }\r\n\r\n if (!dateTimeOptionsObject.hideDate) {\r\n $scope.dateTimeOptionsObject.callback = mightyCalendarOnDayClick;\r\n }\r\n\r\n $scope.setDateTimeObject();\r\n };\r\n $scope.init();\r\n\r\n $scope.$watch('time.hour', function(value) {\r\n if (value === 24) {\r\n $scope.time.mins = 0;\r\n $scope.time.oldMins = $scope.time.mins;\r\n }\r\n $scope.setDateTimeObject();\r\n $scope.time.oldHour = $scope.time.hour;\r\n });\r\n\r\n $scope.$watch('time.mins', function(value) {\r\n if ($scope.time.hour !== 24) {\r\n $scope.setDateTimeObject();\r\n }\r\n $scope.time.oldMins = $scope.time.mins;\r\n });\r\n\r\n function loadLocalizations() {\r\n localizations.Time_Manual = $translate.instant('SCENE_Timeprogram');\r\n localizations.Time_Sunrise = $translate.instant('GENERAL_Sunrise');\r\n localizations.Time_Sunset = $translate.instant('GENERAL_Sunset');\r\n\r\n localizations.Around = $translate.instant('SCENE_Timeprogram_Around');\r\n localizations.Today = $translate.instant('SCENE_Timeprogram_Today');\r\n localizations.AtNearest = $translate.instant('SCENE_Timeprogram_AtNearest');\r\n\r\n localizations.GeoCoordinatesMissing = $translate.instant('SCENE_Timeprogram_GeoCoordinatesMissing');\r\n }\r\n }\r\n ])\r\n\r\n .factory('dateTimePickerModal', ['ModalService', function(ModalService) {\r\n return function(dateTimeObject, dateTimeOptionsObject) {\r\n return ModalService.showModal({\r\n templateUrl: \"views/modals/dateTimePicker.html\",\r\n controller: 'dateTimePickerModalCtrl',\r\n inputs: {\r\n dateTimeOptionsObject: dateTimeOptionsObject,\r\n dateTimeObject: dateTimeObject\r\n }\r\n });\r\n };\r\n }]);\r\n"],"sourceRoot":"../../../../app"}