This repository was archived by the owner on Apr 5, 2019. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 44
/
Copy pathangular-clock.min.js.map
1 lines (1 loc) · 10.4 KB
/
angular-clock.min.js.map
1
{"version":3,"sources":["angular-clock.min.js"],"names":["clock","$interval","$filter","restrict","scope","gmtOffset","digitalFormat","showDigital","showAnalog","startTime","theme","majorsTotal","template","link","element","attrs","stopTime","o","undefined","showGmtInfo","parseInt","themeClass","gmtInfo","date","getDate","digital","analog","majors","Array","minors","tick","isNaN","timeText","$watch","value","getGMTbase100","getGMTText","old","on","cancel","offset","parseFloat","f","Math","floor","ceil","s","round","lpad","rpad","substring","num","now","Date","utc","getTime","getTimezoneOffset","offsetNow","hrs","getHours","mins","getMinutes","secs","getSeconds","d","format","angular","module","directive"],"mappings":"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","file":"angular-clock.min.js","sourcesContent":["(function() {\n 'use strict';\n\n /**\n * Usage pattern\n * <ds-widget-clock data-gmt-offset=\"0\"></ds-widget-clock>\n */\n var days = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];\n var months = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];\n\n angular.module('ds.clock', [])\n .directive('dsWidgetClock', ['$interval', '$filter',\n function($interval, $filter) {\n return clock($interval, $filter);\n }\n ]);\n\n function clock($interval, $filter) {\n return {\n restrict: 'EA',\n scope: {\n gmtOffset: '=gmtOffset',\n digitalFormat: '=digitalFormat',\n showDigital: '=showDigital',\n showAnalog: '=showAnalog',\n startTime: '=startTime',\n theme: '=theme',\n majorsTotal: '=majorsTotal'\n },\n template: '<div class=\"widget-clock\" ng-class=\"themeClass\" ng-if=\"date\"><div class=\"digital\" ng-if=\"digital\"><span class=\"time\"><span class=\"hours\">{{digital}}</span></span></div><div class=\"analog\" ng-if=\"analog\"><div class=\"square\"><svg viewBox=\"0 0 100 100\"><g transform=\"translate(50,50)\"><circle class=\"clock-face\" r=\"48\" /><line ng-repeat=\"minor in minors track by $index\" class=\"minor\" y1=\"42\" y2=\"45\" ng-attr-transform=\"rotate({{360 * $index / minors.length}})\" /><line ng-repeat=\"major in majors track by $index\" class=\"major\" y1=\"35\" y2=\"46\" ng-attr-transform=\"rotate({{360 * $index / majors.length}})\" /><line class=\"hour\" y1=\"2\" y2=\"-20\" ng-attr-transform=\"rotate({{30 * date.hrs + date.mins / 2}})\" /><line class=\"minute\" y1=\"4\" y2=\"-30\" ng-attr-transform=\"rotate({{6 * date.mins + date.secs / 10}})\" /><g ng-attr-transform=\"rotate({{6 * date.secs}})\"><line class=\"second\" y1=\"10\" y2=\"-38\" /><line class=\"second-counterweight\" y1=\"10\" y2=\"2\" /></g></g></svg></div></div><div ng-if=\"gmtInfo\" class=\"gmt-info\">{{gmtInfo}}</div></div>',\n link: function(scope, element, attrs) {\n var format, // date format\n stopTime; // so that we can cancel the time updates\n var o = {};\n var gmtOffset = scope.gmtOffset;\n var digitalFormat = scope.digitalFormat ? scope.digitalFormat : 'HH:mm:ss';\n o.showDigital = scope.showDigital != null ? scope.showDigital : attrs.showDigital !== undefined ? true : false;\n o.showAnalog = scope.showAnalog != null ? scope.showAnalog : attrs.showAnalog !== undefined ? true : false;\n o.showGmtInfo = attrs.showGmtInfo !== undefined ? true : false;\n o.startTime = parseInt(scope.startTime, 10); // ms\n scope.themeClass = scope.theme ? scope.theme : attrs.theme ? attrs.theme : 'light';\n if (!o.showDigital && !o.showAnalog) {\n o.showAnalog = true;\n o.showDigital = true;\n }\n scope.gmtInfo = false;\n\n scope.date = getDate(o);\n\n scope.digital = o.showDigital ? 'Loading..' : false;\n scope.analog = o.showAnalog;\n scope.majors = attrs.majorsTotal ? new Array(parseInt(attrs.majorsTotal)) : new Array(12);\n scope.minors = new Array(60);\n var date = null;\n var tick = function() {\n if (!isNaN(o.startTime)) {\n o.startTime = o.startTime + 1000;\n }\n date = getDate(o);\n scope.date = date;\n if (o.showDigital) {\n scope.digital = timeText(date, digitalFormat, $filter);\n }\n };\n\n stopTime = $interval(tick, 1000);\n // watch the expression, and update the UI on change.\n scope.$watch('gmtOffset', function(value, old) {\n\n gmtOffset = value;\n o.gmtOffset = (gmtOffset != null) ? getGMTbase100(gmtOffset) : false;\n if (o.showGmtInfo && o.gmtOffset !== false) {\n scope.gmtInfo = getGMTText(o.gmtOffset);\n }\n\n tick();\n });\n scope.$watch('digitalFormat', function(value, old) {\n if(value != old){\n digitalFormat = value;\n }\n });\n scope.$watch('startTime', function(value, old) {\n if(value != old){\n o.startTime = parseInt(value, 10);\n }\n });\n scope.$watch('showDigital', function(value, old) {\n if(value != old){\n o.showDigital = value;\n scope.digital = o.showDigital ? 'Loading..' : false;;\n }\n });\n scope.$watch('showAnalog', function(value, old) {\n if(value != old){\n o.showAnalog = value;\n scope.analog = value;\n }\n });\n scope.$watch('theme', function(value, old) {\n if(value != old){\n scope.themeClass = value ? value : attrs.theme ? attrs.theme : 'light';\n }\n });\n // listen on DOM destroy (removal) event, and cancel the next UI update\n // to prevent updating time after the DOM element was removed.\n element.on('$destroy', function() {\n $interval.cancel(stopTime);\n stopTime = null;\n });\n\n }\n };\n }\n\n function getGMTbase100(offset) {\n offset = parseFloat(offset);\n var f = offset > 0 ? Math.floor(offset) : Math.ceil(offset),\n s = (offset % 1) / 0.6;\n\n return f + s;\n\n }\n\n function getGMTbase60(offset) {\n var f = offset > 0 ? Math.floor(offset) : Math.ceil(offset),\n s = ((offset > 0 ? offset : offset * -1) % 1) * 60;\n return f + s;\n\n }\n\n function getGMTText(offset) {\n\n var f = offset > 0 ? Math.floor(offset) : Math.ceil(offset),\n s = Math.round(((offset > 0 ? offset : offset * -1) % 1) * 60);\n\n return 'GMT' + (offset === 0 ? '' : ((offset > 0 ? ' +' : ' ') + lpad(f) + '.' + rpad(s).substring(0, 2)));\n\n }\n\n function lpad(num) {\n if (num < 0) {\n return (num > -10 ? '-0' : '-') + (num * -1);\n } else {\n return (num < 10 ? '0' : '') + num;\n }\n\n }\n\n function rpad(num) {\n return num + (num < 10 ? '0' : '');\n }\n // Checkfor offset and get correct time\n function getDate(o) {\n var now = (!isNaN(o.startTime)) ? new Date(o.startTime) : new Date();\n if (o.gmtOffset !== null && o.gmtOffset !== false) {\n /*Use GMT + gmtOffset\n convert to msec\n add local time zone offset\n get UTC time in msec*/\n var utc = now.getTime() + (now.getTimezoneOffset() * 60000);\n // create new Date object for different city\n // using supplied offset\n var offsetNow = new Date(utc + (3600000 * o.gmtOffset));\n return {\n hrs: offsetNow.getHours(),\n mins: offsetNow.getMinutes(),\n secs: offsetNow.getSeconds(),\n date: offsetNow\n };\n } else {\n // Use local time\n return {\n hrs: now.getHours(),\n mins: now.getMinutes(),\n secs: now.getSeconds(),\n date: now\n };\n }\n }\n\n function timeText(d, format, $filter) {\n return $filter('date')(d.date, format);\n }\n\n})();\n"]}