Socket
Socket
Sign inDemoInstall

clocklet

Package Overview
Dependencies
Maintainers
1
Versions
17
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

clocklet - npm Package Compare versions

Comparing version 0.1.2 to 0.1.3

10

es/clock.js

@@ -27,2 +27,3 @@ import { __assign } from 'tslib';

ClockletClock.prototype.open = function (input, options) {
var _this = this;
var resolvedOptions = __assign(Object.create(this.defaultOptions), options);

@@ -41,3 +42,3 @@ var inputRect = input.getBoundingClientRect();

setClockletData(root, 'append-to', resolvedOptions.appendTo);
root.className = 'clocklet ' + (isTouchDevice ? '' : 'clocklet--hoverable ') + resolvedOptions.className;
root.className = 'clocklet clocklet--showing ' + (isTouchDevice ? '' : 'clocklet--hoverable ') + resolvedOptions.className;
if (resolvedOptions.placement === 'top') {

@@ -75,3 +76,8 @@ root.style.top = '';

this.updateHighlight();
setTimeout(function () { return root.classList.add('clocklet--shown'); });
setTimeout(function () {
root.classList.remove('clocklet--showing');
if (_this.input) {
root.classList.add('clocklet--shown');
}
});
dispatchCustomEvent(input, 'clocklet.opened', true, false, eventDetail);

@@ -78,0 +84,0 @@ };

8

package.json
{
"name": "clocklet",
"version": "0.1.2",
"version": "0.1.3",
"description": "An opinionated clock-style vanilla-js timepicker",

@@ -16,3 +16,3 @@ "repository": "luncheon/clocklet",

"scripts": {
"clean": "rimraf es/ umd/ css/ docs/demo.html",
"clean": "rimraf es/ umd/ css/ .docs/ docs/demo.html",
"start": "concurrently --kill-others \"npm run watch:umd\" \"npm run watch:css\" \"npm run watch:demo\"",

@@ -25,4 +25,4 @@ "build": "npm run build:es && npm run build:umd && npm run build:css && npm run build:demo",

"watch:css": "rimraf css/ && mkdirp css/ && stylus -w -o css/ src/style/",
"build:demo": "rimraf docs/demo.html && pug -o docs/ src/demo/demo.pug",
"watch:demo": "rimraf docs/demo.html && pug -w -o docs/ src/demo/demo.pug"
"build:demo": "rimraf .docs/ docs/demo.html && pug -o .docs/ src/demo/demo.pug -O {cdnBaseUrl:'..'} && pug -o docs/ src/demo/demo.pug -O {cdnBaseUrl:'https://cdn.jsdelivr.net/npm/clocklet@0.1.3'}",
"watch:demo": "rimraf .docs/ docs/demo.html && pug -w -o .docs/ src/demo/demo.pug -O {cdnBaseUrl:'..'}"
},

@@ -29,0 +29,0 @@ "keywords": [

@@ -42,4 +42,4 @@ # <a name="clocklet" href="#clocklet" style="pointer-events:none">![Clocklet](https://luncheon.github.io/clocklet/docs/logo.png)</a>

```html
<link rel="https://cdn.jsdelivr.net/npm/clocklet@0.1.2/css/clocklet.min.css">
<script src="https://cdn.jsdelivr.net/npm/clocklet@0.1.2"></script>
<link rel="https://cdn.jsdelivr.net/npm/clocklet@0.1.3/css/clocklet.min.css">
<script src="https://cdn.jsdelivr.net/npm/clocklet@0.1.3"></script>
<script>/* `window.clocklet` object is available */</script>

@@ -46,0 +46,0 @@ ```

@@ -46,3 +46,3 @@ import { __assign } from 'tslib'

setClockletData(root, 'append-to', resolvedOptions.appendTo)
root.className = 'clocklet ' + (isTouchDevice ? '' : 'clocklet--hoverable ') + resolvedOptions.className
root.className = 'clocklet clocklet--showing ' + (isTouchDevice ? '' : 'clocklet--hoverable ') + resolvedOptions.className
if (resolvedOptions.placement === 'top') {

@@ -78,3 +78,8 @@ root.style.top = ''

this.updateHighlight()
setTimeout(() => root.classList.add('clocklet--shown'))
setTimeout(() => {
root.classList.remove('clocklet--showing')
if (this.input) {
root.classList.add('clocklet--shown')
}
})
dispatchCustomEvent(input, 'clocklet.opened', true, false, eventDetail)

@@ -81,0 +86,0 @@ }

@@ -860,2 +860,3 @@ (function (global, factory) {

ClockletClock.prototype.open = function (input, options) {
var _this = this;
var resolvedOptions = __assign(Object.create(this.defaultOptions), options);

@@ -874,3 +875,3 @@ var inputRect = input.getBoundingClientRect();

setClockletData(root, 'append-to', resolvedOptions.appendTo);
root.className = 'clocklet ' + (isTouchDevice ? '' : 'clocklet--hoverable ') + resolvedOptions.className;
root.className = 'clocklet clocklet--showing ' + (isTouchDevice ? '' : 'clocklet--hoverable ') + resolvedOptions.className;
if (resolvedOptions.placement === 'top') {

@@ -908,3 +909,8 @@ root.style.top = '';

this.updateHighlight();
setTimeout(function () { return root.classList.add('clocklet--shown'); });
setTimeout(function () {
root.classList.remove('clocklet--showing');
if (_this.input) {
root.classList.add('clocklet--shown');
}
});
dispatchCustomEvent(input, 'clocklet.opened', true, false, eventDetail);

@@ -911,0 +917,0 @@ };

@@ -1,1 +0,1 @@

!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):t.clocklet=e()}(this,function(){"use strict";function k(t,e,l){return t=String(t),!e||!isFinite(e)||t.length>=e?t:o(e-t.length,l)+t}function t(t,e,l){return t=String(t),!e||!isFinite(e)||t.length>=e?t:t+o(e-t.length,l)}function o(t,e){for(var l=e=null==e||""===e?" ":String(e);l.length<t;)l+=e;return l.substr(0,t)}function c(){for(var t=0,e=arguments.length;t<e;++t){var l=arguments[t];if("number"==typeof l)return l;if("string"==typeof l){var o=parseFloat(l);if(isFinite(o))return o}}}var n=1e3,i=60*n,a=60*i,e=12*a,r=24*a;function l(){return(Date.now()-(new Date).getTimezoneOffset()*i)%r}function u(t){var e=Math.floor(t)%r;return 0<=e?e:e+r}function s(t){return e<=t?t-e:t}function p(t){return t<e?t+e:t}function f(t,e){switch(t=u(t),e&&String(e)[0].toLowerCase()){case"a":return s(t);case"p":return p(t);default:return t}}function d(t){switch(typeof t){case"number":return u(t);case"string":return function(t){if(!(t=t&&String(t).replace(/[\uff00-\uffef]/g,function(t){return String.fromCharCode(t.charCodeAt(0)-65248)}).replace(/\s/g,"").replace(/(a|p)\.?m?\.?$/i,function(t,e){return e.toLowerCase()})))return 0;if("now"===t.toLowerCase())return l();var e=t.match(/^([+-]?[0-9]{1,2})(?:([0-9]{2})(?:([0-9]{2})([0-9]*))?)?(a|p)?$/i)||t.match(/^([+-]?[0-9]*\.[0-9]*)()()()(a|p)?$/i)||t.match(/^([+-]?[0-9]*\.?[0-9]*):([+-]?[0-9]*\.?[0-9]*)(?::([+-]?[0-9]*\.?[0-9]*))?()(a|p)?$/i);return e?f((e[1]?parseFloat(e[1])*a:0)+(e[2]?parseFloat(e[2])*i:0)+(e[3]?parseFloat(e[3])*n:0)+(e[4]?1e3*parseFloat("0."+e[4]):0),e[5]):NaN}(t);case"object":if(t)return function(t){if("number"==typeof t.totalMilliseconds)return u(t.totalMilliseconds);var e=c(t.h,t.hour,t.hours,0)*a+c(t.m,t.minute,t.minutes,0)*i+c(t.s,t.second,t.seconds,0)*n+c(t.S,t.millisecond,t.milliseconds,0);if(!0===t.am||!1===t.pm)return s(e);if(!0===t.pm||!1===t.am)return p(e);return f(e,t.a)}(t instanceof Array?{h:t[0],m:t[1],s:t[2],S:t[3]}:t)}return NaN}var m={H:h(0,23),HH:h(0,23,2,"0"),_H:h(0,23,2),h:h(1,12),hh:h(1,12,2,"0"),_h:h(1,12,2),k:h(0,11),kk:h(0,11,2,"0"),_k:h(0,23,2),m:h(0,59),mm:h(0,59,2,"0"),_m:h(0,59,2),s:h(0,59),ss:h(0,59,2,"0"),_s:h(0,59,2),S:h(0,9),SS:h(0,99,2,"0"),SSS:h(0,999,3,"0"),a:function(e){return function(t){return"pm"===e?"am":"pm"}},A:function(e){return function(t){return"PM"===e?"AM":"PM"}},aa:function(e){return function(t){return"p.m."===e?"a.m.":"p.m."}},AA:function(e){return function(t){return"P.M."===e?"A.M.":"P.M."}}};function h(a,r,u,s){return void 0===u&&(u=1),function(i){return function(t,e){var l,o,c,n=(l=parseInt(i,10)+t,o=a,c=r,e?(l=(l-o)%(++c-o))<0?l+c:l+o:l<o?o:c<l?c:l);return isNaN(n)?void 0:k(n,u,s)}}}function b(t,e,l){for(var o=v(t),c=0,n=0,i=0;i<o.length;++i){var a=o[i];if(a.literal){var r=e.indexOf(a.property,c);if(-1===r||l<=r){if(0===i)return;var u=e.slice(n,r);return{property:k=o[i-1].property,index:n,value:u,adjust:m[k](u)}}n=c=r+a.property.length}else"_"===a.property[0]&&" "===e[c]&&++c}var s=o[o.length-1];if(s&&!s.literal){var k;u=e.slice(c);return{property:k=s.property,index:c,value:u,adjust:m[k](u)}}}function v(t){for(var e,l=/\\.|HH?|hh?|kk?|mm?|ss?|S{1,3}|AA?|aa?|_H|_h|_k|_m|_s/g,o=[],c=0;e=l.exec(t);){var n=e.index,i=l.lastIndex;c!==n&&o.push({index:c,property:t.slice(c,n),literal:!0}),"\\"===e[0][0]?o.push({index:n,property:e[0].slice(1),literal:!0}):o.push({index:n,property:e[0],literal:!1}),c=i}return c<t.length&&o.push({index:c,property:t.slice(c),literal:!0}),o}var y=function(){function l(t){this._totalMilliseconds=t}return Object.defineProperty(l.prototype,"hour",{get:function(){return Math.floor(this._totalMilliseconds/a)},enumerable:!0,configurable:!0}),Object.defineProperty(l.prototype,"hour12",{get:function(){return(this.hour+11)%12+1},enumerable:!0,configurable:!0}),Object.defineProperty(l.prototype,"minute",{get:function(){return Math.floor(this._totalMilliseconds%a/i)},enumerable:!0,configurable:!0}),Object.defineProperty(l.prototype,"second",{get:function(){return Math.floor(this._totalMilliseconds%i/n)},enumerable:!0,configurable:!0}),Object.defineProperty(l.prototype,"millisecond",{get:function(){return this._totalMilliseconds%n},enumerable:!0,configurable:!0}),Object.defineProperty(l.prototype,"am",{get:function(){return this.hour<12},enumerable:!0,configurable:!0}),Object.defineProperty(l.prototype,"pm",{get:function(){return 12<=this.hour},enumerable:!0,configurable:!0}),Object.defineProperty(l.prototype,"hours",{get:function(){return this.hour},enumerable:!0,configurable:!0}),Object.defineProperty(l.prototype,"hours12",{get:function(){return this.hour12},enumerable:!0,configurable:!0}),Object.defineProperty(l.prototype,"minutes",{get:function(){return this.minute},enumerable:!0,configurable:!0}),Object.defineProperty(l.prototype,"seconds",{get:function(){return this.second},enumerable:!0,configurable:!0}),Object.defineProperty(l.prototype,"milliseconds",{get:function(){return this.millisecond},enumerable:!0,configurable:!0}),Object.defineProperty(l.prototype,"H",{get:function(){return this.invalid?"-":String(this.hour)},enumerable:!0,configurable:!0}),Object.defineProperty(l.prototype,"h",{get:function(){return this.invalid?"-":String(this.hour12)},enumerable:!0,configurable:!0}),Object.defineProperty(l.prototype,"k",{get:function(){return this.invalid?"-":String((this.hour+23)%24+1)},enumerable:!0,configurable:!0}),Object.defineProperty(l.prototype,"m",{get:function(){return this.invalid?"-":String(this.minute)},enumerable:!0,configurable:!0}),Object.defineProperty(l.prototype,"s",{get:function(){return this.invalid?"-":String(this.second)},enumerable:!0,configurable:!0}),Object.defineProperty(l.prototype,"S",{get:function(){return this.invalid?"-":String(Math.floor(this.millisecond/100))},enumerable:!0,configurable:!0}),Object.defineProperty(l.prototype,"SS",{get:function(){return this.invalid?"--":t(Math.floor(this.millisecond/10),2,"0")},enumerable:!0,configurable:!0}),Object.defineProperty(l.prototype,"SSS",{get:function(){return this.invalid?"---":t(this.millisecond,3,"0")},enumerable:!0,configurable:!0}),Object.defineProperty(l.prototype,"a",{get:function(){return this.invalid?"--":this.am?"am":"pm"},enumerable:!0,configurable:!0}),Object.defineProperty(l.prototype,"A",{get:function(){return this.invalid?"--":this.am?"AM":"PM"},enumerable:!0,configurable:!0}),Object.defineProperty(l.prototype,"aa",{get:function(){return this.invalid?"----":this.am?"a.m.":"p.m."},enumerable:!0,configurable:!0}),Object.defineProperty(l.prototype,"AA",{get:function(){return this.invalid?"----":this.am?"A.M.":"P.M."},enumerable:!0,configurable:!0}),Object.defineProperty(l.prototype,"HH",{get:function(){return this.invalid?"--":k(this.H,2,"0")},enumerable:!0,configurable:!0}),Object.defineProperty(l.prototype,"_H",{get:function(){return this.invalid?"--":k(this.H,2," ")},enumerable:!0,configurable:!0}),Object.defineProperty(l.prototype,"hh",{get:function(){return this.invalid?"--":k(this.h,2,"0")},enumerable:!0,configurable:!0}),Object.defineProperty(l.prototype,"_h",{get:function(){return this.invalid?"--":k(this.h,2," ")},enumerable:!0,configurable:!0}),Object.defineProperty(l.prototype,"kk",{get:function(){return this.invalid?"--":k(this.k,2,"0")},enumerable:!0,configurable:!0}),Object.defineProperty(l.prototype,"_k",{get:function(){return this.invalid?"--":k(this.k,2," ")},enumerable:!0,configurable:!0}),Object.defineProperty(l.prototype,"mm",{get:function(){return this.invalid?"--":k(this.m,2,"0")},enumerable:!0,configurable:!0}),Object.defineProperty(l.prototype,"_m",{get:function(){return this.invalid?"--":k(this.m,2," ")},enumerable:!0,configurable:!0}),Object.defineProperty(l.prototype,"ss",{get:function(){return this.invalid?"--":k(this.s,2,"0")},enumerable:!0,configurable:!0}),Object.defineProperty(l.prototype,"_s",{get:function(){return this.invalid?"--":k(this.s,2," ")},enumerable:!0,configurable:!0}),Object.defineProperty(l.prototype,"HHmm",{get:function(){return this.HH+":"+this.mm},enumerable:!0,configurable:!0}),Object.defineProperty(l.prototype,"HHmmss",{get:function(){return this.HHmm+":"+this.ss},enumerable:!0,configurable:!0}),Object.defineProperty(l.prototype,"HHmmssSSS",{get:function(){return this.HHmmss+"."+this.SSS},enumerable:!0,configurable:!0}),Object.defineProperty(l.prototype,"totalMilliseconds",{get:function(){return this._totalMilliseconds},enumerable:!0,configurable:!0}),Object.defineProperty(l.prototype,"totalSeconds",{get:function(){return Math.floor(this._totalMilliseconds/n)},enumerable:!0,configurable:!0}),Object.defineProperty(l.prototype,"totalMinutes",{get:function(){return Math.floor(this._totalMilliseconds/i)},enumerable:!0,configurable:!0}),Object.defineProperty(l.prototype,"valid",{get:function(){return 0<=this._totalMilliseconds&&this._totalMilliseconds<r},enumerable:!0,configurable:!0}),Object.defineProperty(l.prototype,"invalid",{get:function(){return!this.valid},enumerable:!0,configurable:!0}),Object.defineProperty(l.prototype,"startOfHour",{get:function(){return new l(this._totalMilliseconds-this._totalMilliseconds%a)},enumerable:!0,configurable:!0}),Object.defineProperty(l.prototype,"startOfMinute",{get:function(){return new l(this._totalMilliseconds-this._totalMilliseconds%i)},enumerable:!0,configurable:!0}),Object.defineProperty(l.prototype,"startOfSecond",{get:function(){return new l(this._totalMilliseconds-this._totalMilliseconds%n)},enumerable:!0,configurable:!0}),l.prototype.ifInvalid=function(t){return this.valid?this:new l(d(t))},l.prototype.startOf=function(t){switch(t){case"hour":return this.startOfHour;case"minute":return this.startOfMinute;case"second":return this.startOfSecond;default:return this}},l.prototype.toString=function(){return this.HHmmssSSS},l.prototype.format=function(t){return e=this,String(t).replace(/\\.|HH?|hh?|kk?|mm?|ss?|S{1,3}|AA?|aa?|_H|_h|_k|_m|_s/g,function(t){return"\\"===t[0]?t[1]:e[t]});var e},l.prototype.with=function(t){return new l(d({h:c(t.h,t.hour,t.hours,this.hour),m:c(t.m,t.minute,t.minutes,this.minute),s:c(t.s,t.second,t.seconds,this.second),S:c(t.S,t.millisecond,t.milliseconds,this.millisecond),am:!0===t.am||!1===t.pm||"am"===t.a||"pm"!==t.a&&void 0}))},l.prototype.plus=function(t){var e=d(t);return 0===e?this:new l(this._totalMilliseconds+e)},l.prototype.minus=function(t){var e=d(t);return 0===e?this:new l(this._totalMilliseconds-e)},l.prototype.equals=function(t){return 0===this.compareTo(t)},l.prototype.compareTo=function(t){return this._totalMilliseconds-d(t)},l.prototype.isBefore=function(t){return this.compareTo(t)<0},l.prototype.isBeforeOrEqual=function(t){return this.compareTo(t)<=0},l.prototype.isAfter=function(t){return 0<this.compareTo(t)},l.prototype.isAfterOrEqual=function(t){return 0<=this.compareTo(t)},l.prototype.isBetweenExclusive=function(t,e){return this.isAfter(t)&&this.isBefore(e)},l.prototype.isBetweenInclusive=function(t,e){return this.isAfterOrEqual(t)&&this.isBeforeOrEqual(e)},l}(),g=new y(0),O=new y(NaN),S=function(t){if(null==t)return O;if(t instanceof y)return t;var e=d(t);return 0===e?g:isNaN(e)?O:new y(e)};function P(t,e,l){void 0===l&&(l=O);for(var o=l,c=0,n=t.length;c<n;++c){var i=S(t[c]);i.valid&&(o=e(o,i,c,t))}return o}function j(t){var e=document.createEvent("CustomEvent");e.initCustomEvent("input",!0,!1,"complete"),t.dispatchEvent(e)}S.prototype=y.prototype,S.INVALID=O,S.ZERO=g,S.now=function(){return new y(l())},S.min=function(){return P(arguments,function(t,e){return t.invalid||e.isBefore(t)?e:t})},S.max=function(){return P(arguments,function(t,e){return t.invalid||e.isAfter(t)?e:t})};var E=Object.assign||function(t){for(var e,l=1,o=arguments.length;l<o;l++)for(var c in e=arguments[l])Object.prototype.hasOwnProperty.call(e,c)&&(t[c]=e[c]);return t},_=matchMedia("(hover: none)").matches;function M(t,e,l,o,c){var n=document.createEvent("CustomEvent");return n.initCustomEvent(e,l,o,c),n.preventDefault=function(){Object.defineProperty(this,"defaultPrevented",{get:function(){return!0}})},t.dispatchEvent(n),n}function H(t,e){return t.getAttribute("data-clocklet-"+e)}function w(t,e,l){t.setAttribute("data-clocklet-"+e,l)}var x=function(){function t(t,e,l){this.dial=t,this.maxValue=e,this.setValue=l,this.hand=this.dial.getElementsByClassName("clocklet-hand")[0],this.dragging=!1,_?(t.addEventListener("touchstart",this._onDragStart.bind(this)),t.addEventListener("touchmove",this._onDrag.bind(this)),t.addEventListener("touchend",this._onDragEnd.bind(this))):(t.addEventListener("mousedown",this._onDragStart.bind(this)),addEventListener("mousemove",this._onDrag.bind(this),!0),addEventListener("mouseup",this._onDragEnd.bind(this),!0))}return t.prototype.value=function(t){this.hand.style.transform="rotate("+360*t/this.maxValue+"deg)";var e="clocklet-tick--selected",l=this.dial.getElementsByClassName(e)[0],o=this.dial.querySelector('[data-clocklet-tick-value="'+t+'"]');l!==o&&(l&&l.classList.remove(e),o&&o.classList.add(e))},t.prototype._onDragStart=function(t){if(t.touches&&1<t.touches.length)this.dragging=!1;else{this.dragging=!0;var e=H(t.target,"tick-value");e&&this.setValue(e),t.preventDefault(),M(this.dial,"clocklet.dragstart",!0,!1)}},t.prototype._onDrag=function(t){if(this.dragging){var e=t.targetTouches?t.targetTouches[0]:t,l=document.elementFromPoint(e.clientX,e.clientY),o=l&&H(l,"tick-value");if(o&&this.dial.contains(l))this.setValue(o);else{var c=this.dial.getBoundingClientRect(),n=e.clientX-c.left-c.width/2,i=e.clientY-c.top-c.height/2,a=Math.atan2(i,n);this.setValue(Math.round(a*this.maxValue/(2*Math.PI)+this.maxValue/4+this.maxValue)%this.maxValue)}t.preventDefault()}},t.prototype._onDragEnd=function(t){this.dragging=!1,t.preventDefault(),M(this.dial,"clocklet.dragend",!0,!1)},t}(),A={className:"",format:"HH:mm",placement:"bottom",alignment:"left",appendTo:"body",zIndex:"",dispatchesInputEvents:!0};function L(t){if(t){for(var e={},l=0,o=t.split(";");l<o.length;l++){var c=o[l],n=c.indexOf(":");e[c.slice(0,n).trim().replace(/[a-zA-Z0-9_]-[a-z]/g,function(t){return t[0]+t[2].toUpperCase()})]=c.slice(n+1).trim()}return e}}var N='<div class="clocklet"><div class="clocklet-plate"><div class="clocklet-dial clocklet-dial--minute"><div class="clocklet-hand clocklet-hand--minute"></div><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="0" style="left:50%;top:11%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="1" style="left:54.8%;top:4.3%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="2" style="left:59.6%;top:5%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="3" style="left:64.2%;top:6.3%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="4" style="left:68.7%;top:8%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="5" style="left:69.5%;top:16.2%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="6" style="left:77%;top:12.8%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="7" style="left:80.8%;top:15.8%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="8" style="left:84.2%;top:19.2%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="9" style="left:87.2%;top:23%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="10" style="left:83.8%;top:30.5%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="11" style="left:92%;top:31.3%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="12" style="left:93.7%;top:35.8%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="13" style="left:95%;top:40.4%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="14" style="left:95.7%;top:45.2%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="15" style="left:89%;top:50%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="16" style="left:95.7%;top:54.8%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="17" style="left:95%;top:59.6%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="18" style="left:93.7%;top:64.2%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="19" style="left:92%;top:68.7%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="20" style="left:83.8%;top:69.5%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="21" style="left:87.2%;top:77%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="22" style="left:84.2%;top:80.8%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="23" style="left:80.8%;top:84.2%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="24" style="left:77%;top:87.2%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="25" style="left:69.5%;top:83.8%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="26" style="left:68.7%;top:92%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="27" style="left:64.2%;top:93.7%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="28" style="left:59.6%;top:95%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="29" style="left:54.8%;top:95.7%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="30" style="left:50%;top:89%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="31" style="left:45.2%;top:95.7%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="32" style="left:40.4%;top:95%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="33" style="left:35.8%;top:93.7%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="34" style="left:31.3%;top:92%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="35" style="left:30.5%;top:83.8%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="36" style="left:23%;top:87.2%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="37" style="left:19.2%;top:84.2%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="38" style="left:15.8%;top:80.8%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="39" style="left:12.8%;top:77%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="40" style="left:16.2%;top:69.5%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="41" style="left:8%;top:68.7%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="42" style="left:6.3%;top:64.2%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="43" style="left:5%;top:59.6%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="44" style="left:4.3%;top:54.8%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="45" style="left:11%;top:50%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="46" style="left:4.3%;top:45.2%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="47" style="left:5%;top:40.4%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="48" style="left:6.3%;top:35.8%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="49" style="left:8%;top:31.3%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="50" style="left:16.2%;top:30.5%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="51" style="left:12.8%;top:23%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="52" style="left:15.8%;top:19.2%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="53" style="left:19.2%;top:15.8%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="54" style="left:23%;top:12.8%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="55" style="left:30.5%;top:16.2%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="56" style="left:31.3%;top:8%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="57" style="left:35.8%;top:6.3%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="58" style="left:40.4%;top:5%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="59" style="left:45.2%;top:4.3%"></button></div><div class="clocklet-dial clocklet-dial--hour"><div class="clocklet-hand clocklet-hand--hour"></div><button class="clocklet-tick clocklet-tick--hour" data-clocklet-tick-value="0" style="left:50%;top:11%"></button><button class="clocklet-tick clocklet-tick--hour" data-clocklet-tick-value="1" style="left:69.5%;top:16.2%"></button><button class="clocklet-tick clocklet-tick--hour" data-clocklet-tick-value="2" style="left:83.8%;top:30.5%"></button><button class="clocklet-tick clocklet-tick--hour" data-clocklet-tick-value="3" style="left:89%;top:50%"></button><button class="clocklet-tick clocklet-tick--hour" data-clocklet-tick-value="4" style="left:83.8%;top:69.5%"></button><button class="clocklet-tick clocklet-tick--hour" data-clocklet-tick-value="5" style="left:69.5%;top:83.8%"></button><button class="clocklet-tick clocklet-tick--hour" data-clocklet-tick-value="6" style="left:50%;top:89%"></button><button class="clocklet-tick clocklet-tick--hour" data-clocklet-tick-value="7" style="left:30.5%;top:83.8%"></button><button class="clocklet-tick clocklet-tick--hour" data-clocklet-tick-value="8" style="left:16.2%;top:69.5%"></button><button class="clocklet-tick clocklet-tick--hour" data-clocklet-tick-value="9" style="left:11%;top:50%"></button><button class="clocklet-tick clocklet-tick--hour" data-clocklet-tick-value="10" style="left:16.2%;top:30.5%"></button><button class="clocklet-tick clocklet-tick--hour" data-clocklet-tick-value="11" style="left:30.5%;top:16.2%"></button></div><div class="clocklet-ampm"></div><div class="clocklet-hand-origin"></div></div></div>';function C(t,e){return I(t,e,/[Hhk]$/)}function D(t,e){return I(t,e,/a/i)}function I(t,e,l){for(var o=0,c=0,n=v(e);c<n.length;c++){var i=n[c];if(i.literal)o+=i.property.length;else{var a=t[i.property];if(l.test(i.property))return{index:o,value:a};o+=a.length}}}var T=function(){function t(t){var e,l=this;this.container=((e=document.createElement("div")).className="clocklet-container",e.innerHTML=N,e),this.root=this.container.firstElementChild,this.plate=this.root.firstElementChild,this.hour=new x(this.plate.getElementsByClassName("clocklet-dial--hour")[0],12,function(t){return l.value({h:t})}),this.minute=new x(this.plate.getElementsByClassName("clocklet-dial--minute")[0],60,function(t){return l.value({m:t})}),this.ampm=this.plate.getElementsByClassName("clocklet-ampm")[0],this.defaultOptions=E(Object.create(A),t),addEventListener("input",function(t){return t.target===l.input&&l.updateHighlight()},!0),this.root.addEventListener("mousedown",function(t){return t.preventDefault()}),this.ampm.addEventListener("mousedown",function(){return l.value({a:"pm"===H(l.ampm,"ampm")?"am":"pm"})}),this.root.addEventListener("clocklet.dragstart",function(){return l.root.classList.add("clocklet--dragging")}),this.root.addEventListener("clocklet.dragend",function(){return l.root.classList.remove("clocklet--dragging")})}return t.prototype.open=function(t,e){var l=E(Object.create(this.defaultOptions),e),o=t.getBoundingClientRect(),c=this.container,n=this.root,i={options:l};M(t,"clocklet.opening",!0,!0,i).defaultPrevented||(this.input=t,this.dispatchesInputEvents=l.dispatchesInputEvents,w(n,"placement",l.placement),w(n,"alignment",l.alignment),w(n,"format",l.format),w(n,"append-to",l.appendTo),n.className="clocklet "+(_?"":"clocklet--hoverable ")+l.className,"top"===l.placement?(n.style.top="",n.style.bottom="0"):(n.style.top=o.height+"px",n.style.bottom=""),"right"===l.alignment?(n.style.left="",n.style.right="-"+o.width+"px"):(n.style.left="0",n.style.right=""),c.style.zIndex=""!==l.zIndex?l.zIndex:(parseInt(getComputedStyle(t).zIndex,10)||0)+1,"parent"===l.appendTo?(c.style.position="relative",c.style.left="0",c.style.top="0",t.parentElement.insertBefore(c,t)):(c.style.position="absolute",c.style.left=document.documentElement.scrollLeft+document.body.scrollLeft+o.left+"px",c.style.top=document.documentElement.scrollTop+document.body.scrollTop+o.top+"px",c.parentElement!==document.body&&document.body.appendChild(c)),this.updateHighlight(),setTimeout(function(){return n.classList.add("clocklet--shown")}),M(t,"clocklet.opened",!0,!1,i))},t.prototype.close=function(){var t=this.input,e={};t&&(M(t,"clocklet.closing",!0,!0,e).defaultPrevented?t.focus():(this.input=void 0,this.root.classList.remove("clocklet--shown"),M(t,"clocklet.closed",!0,!1,e)))},t.prototype.value=function(t){if(this.input){void 0===t.a&&(t={h:t.h,m:t.m,a:H(this.ampm,"ampm")});var e=this.input.value,l=S(this.input.value).with(void 0!==t.a?t:{h:t.h,m:t.m,a:H(this.ampm,"ampm")}),o=H(this.root,"format");if(this.input.value=l.format(o),"text"===this.input.type){var c=void 0!==t.h?C(l,o):void 0!==t.m?I(l,o,/m$/):void 0!==t.a?D(l,o)||C(l,o):void 0;c&&this.input.setSelectionRange(c.index,c.index+c.value.length)}this.dispatchesInputEvents&&this.input.value!==e&&M(this.input,"input",!0,!1,void 0)}},t.prototype.updateHighlight=function(){if(this.input){var t=this.input.value?S(this.input.value):S.INVALID;t.valid?(w(this.root,"value",t.HHmm),this.hour.value(t.hour%12),this.minute.value(t.minute),w(this.ampm,"ampm",t.a)):(w(this.root,"value",""),this.hour.value(-1),this.minute.value(-1),w(this.ampm,"ampm","am"));var e=D(t.valid?t:S.ZERO,H(this.root,"format"));w(this.ampm,"ampm-formatted",e&&e.value||"")}},t}();var B,V,F,z,R,q,$={dataAttributeName:"clocklet",formatSelector:function(t){var e=L(t.getAttribute("data-clocklet"));return e&&e.format}};return R=(z=$)&&z.dataAttributeName||"lenientime",q=z&&z.formatSelector||function(t){return t.dataset.lenientime},addEventListener("change",function(t){var e=t.target,l=e.value,o=e.dataset;if(l&&R in o){var c=S(l),n=c.valid?c.format(q(e)||"HH:mm"):"";n!==l&&(e.value=n,j(e))}},!0),V=(B=$)&&B.dataAttributeName||"lenientime",F=B&&B.formatSelector||function(t){return t.dataset.lenientime},B&&B.amountSelector,addEventListener("keydown",function(t){var e=t.which;if(!(38!==e&&40!==e||t.altKey||t.ctrlKey||t.metaKey)){var l=t.target,o=l.dataset;if(V in o){t.preventDefault();var c=F(l)||"HH:mm",n=l.value;if(n){var i=l.selectionStart;if(s=null===i?void 0:b(c,n,i)){var a=(38===e?1:-1)*(B&&B.amountSelector&&B.amountSelector(l)||1),r=s.adjust(a,!0);if(void 0!==r){var u=s.index;l.value=n.slice(0,u)+r+n.slice(u+s.value.length),l.setSelectionRange(u,u+r.length),j(l)}}}else{var s;l.value=S.ZERO.format(c),(s=b(c,l.value,0))&&l.setSelectionRange(s.index,s.index+s.value.length),j(l)}}}},!0),function(t){void 0===t&&(t={});var l=new T(t.defaultOptions),e=t.target||"input[data-clocklet]",o=t.optionsSelector||function(t){return L(t.getAttribute("data-clocklet"))},c=l.close.bind(l);if(e instanceof Element)e.addEventListener("focus",function(t){return l.open(t.target,o(t.target))}),e.addEventListener("blur",c);else{var n="function"==typeof e?e:function(t){return(Element.prototype.matches||Element.prototype.msMatchesSelector).call(t,e)};document.body.addEventListener("focus",function(t){var e=t.target;n(e)&&l.open(e,o(e))},!0),document.body.addEventListener("blur",c,!0)}return l}()});
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):t.clocklet=e()}(this,function(){"use strict";function k(t,e,l){return t=String(t),!e||!isFinite(e)||t.length>=e?t:o(e-t.length,l)+t}function t(t,e,l){return t=String(t),!e||!isFinite(e)||t.length>=e?t:t+o(e-t.length,l)}function o(t,e){for(var l=e=null==e||""===e?" ":String(e);l.length<t;)l+=e;return l.substr(0,t)}function c(){for(var t=0,e=arguments.length;t<e;++t){var l=arguments[t];if("number"==typeof l)return l;if("string"==typeof l){var o=parseFloat(l);if(isFinite(o))return o}}}var n=1e3,i=60*n,a=60*i,e=12*a,r=24*a;function l(){return(Date.now()-(new Date).getTimezoneOffset()*i)%r}function u(t){var e=Math.floor(t)%r;return 0<=e?e:e+r}function s(t){return e<=t?t-e:t}function p(t){return t<e?t+e:t}function f(t,e){switch(t=u(t),e&&String(e)[0].toLowerCase()){case"a":return s(t);case"p":return p(t);default:return t}}function d(t){switch(typeof t){case"number":return u(t);case"string":return function(t){if(!(t=t&&String(t).replace(/[\uff00-\uffef]/g,function(t){return String.fromCharCode(t.charCodeAt(0)-65248)}).replace(/\s/g,"").replace(/(a|p)\.?m?\.?$/i,function(t,e){return e.toLowerCase()})))return 0;if("now"===t.toLowerCase())return l();var e=t.match(/^([+-]?[0-9]{1,2})(?:([0-9]{2})(?:([0-9]{2})([0-9]*))?)?(a|p)?$/i)||t.match(/^([+-]?[0-9]*\.[0-9]*)()()()(a|p)?$/i)||t.match(/^([+-]?[0-9]*\.?[0-9]*):([+-]?[0-9]*\.?[0-9]*)(?::([+-]?[0-9]*\.?[0-9]*))?()(a|p)?$/i);return e?f((e[1]?parseFloat(e[1])*a:0)+(e[2]?parseFloat(e[2])*i:0)+(e[3]?parseFloat(e[3])*n:0)+(e[4]?1e3*parseFloat("0."+e[4]):0),e[5]):NaN}(t);case"object":if(t)return function(t){if("number"==typeof t.totalMilliseconds)return u(t.totalMilliseconds);var e=c(t.h,t.hour,t.hours,0)*a+c(t.m,t.minute,t.minutes,0)*i+c(t.s,t.second,t.seconds,0)*n+c(t.S,t.millisecond,t.milliseconds,0);if(!0===t.am||!1===t.pm)return s(e);if(!0===t.pm||!1===t.am)return p(e);return f(e,t.a)}(t instanceof Array?{h:t[0],m:t[1],s:t[2],S:t[3]}:t)}return NaN}var m={H:h(0,23),HH:h(0,23,2,"0"),_H:h(0,23,2),h:h(1,12),hh:h(1,12,2,"0"),_h:h(1,12,2),k:h(0,11),kk:h(0,11,2,"0"),_k:h(0,23,2),m:h(0,59),mm:h(0,59,2,"0"),_m:h(0,59,2),s:h(0,59),ss:h(0,59,2,"0"),_s:h(0,59,2),S:h(0,9),SS:h(0,99,2,"0"),SSS:h(0,999,3,"0"),a:function(e){return function(t){return"pm"===e?"am":"pm"}},A:function(e){return function(t){return"PM"===e?"AM":"PM"}},aa:function(e){return function(t){return"p.m."===e?"a.m.":"p.m."}},AA:function(e){return function(t){return"P.M."===e?"A.M.":"P.M."}}};function h(a,r,u,s){return void 0===u&&(u=1),function(i){return function(t,e){var l,o,c,n=(l=parseInt(i,10)+t,o=a,c=r,e?(l=(l-o)%(++c-o))<0?l+c:l+o:l<o?o:c<l?c:l);return isNaN(n)?void 0:k(n,u,s)}}}function b(t,e,l){for(var o=v(t),c=0,n=0,i=0;i<o.length;++i){var a=o[i];if(a.literal){var r=e.indexOf(a.property,c);if(-1===r||l<=r){if(0===i)return;var u=e.slice(n,r);return{property:k=o[i-1].property,index:n,value:u,adjust:m[k](u)}}n=c=r+a.property.length}else"_"===a.property[0]&&" "===e[c]&&++c}var s=o[o.length-1];if(s&&!s.literal){var k;u=e.slice(c);return{property:k=s.property,index:c,value:u,adjust:m[k](u)}}}function v(t){for(var e,l=/\\.|HH?|hh?|kk?|mm?|ss?|S{1,3}|AA?|aa?|_H|_h|_k|_m|_s/g,o=[],c=0;e=l.exec(t);){var n=e.index,i=l.lastIndex;c!==n&&o.push({index:c,property:t.slice(c,n),literal:!0}),"\\"===e[0][0]?o.push({index:n,property:e[0].slice(1),literal:!0}):o.push({index:n,property:e[0],literal:!1}),c=i}return c<t.length&&o.push({index:c,property:t.slice(c),literal:!0}),o}var y=function(){function l(t){this._totalMilliseconds=t}return Object.defineProperty(l.prototype,"hour",{get:function(){return Math.floor(this._totalMilliseconds/a)},enumerable:!0,configurable:!0}),Object.defineProperty(l.prototype,"hour12",{get:function(){return(this.hour+11)%12+1},enumerable:!0,configurable:!0}),Object.defineProperty(l.prototype,"minute",{get:function(){return Math.floor(this._totalMilliseconds%a/i)},enumerable:!0,configurable:!0}),Object.defineProperty(l.prototype,"second",{get:function(){return Math.floor(this._totalMilliseconds%i/n)},enumerable:!0,configurable:!0}),Object.defineProperty(l.prototype,"millisecond",{get:function(){return this._totalMilliseconds%n},enumerable:!0,configurable:!0}),Object.defineProperty(l.prototype,"am",{get:function(){return this.hour<12},enumerable:!0,configurable:!0}),Object.defineProperty(l.prototype,"pm",{get:function(){return 12<=this.hour},enumerable:!0,configurable:!0}),Object.defineProperty(l.prototype,"hours",{get:function(){return this.hour},enumerable:!0,configurable:!0}),Object.defineProperty(l.prototype,"hours12",{get:function(){return this.hour12},enumerable:!0,configurable:!0}),Object.defineProperty(l.prototype,"minutes",{get:function(){return this.minute},enumerable:!0,configurable:!0}),Object.defineProperty(l.prototype,"seconds",{get:function(){return this.second},enumerable:!0,configurable:!0}),Object.defineProperty(l.prototype,"milliseconds",{get:function(){return this.millisecond},enumerable:!0,configurable:!0}),Object.defineProperty(l.prototype,"H",{get:function(){return this.invalid?"-":String(this.hour)},enumerable:!0,configurable:!0}),Object.defineProperty(l.prototype,"h",{get:function(){return this.invalid?"-":String(this.hour12)},enumerable:!0,configurable:!0}),Object.defineProperty(l.prototype,"k",{get:function(){return this.invalid?"-":String((this.hour+23)%24+1)},enumerable:!0,configurable:!0}),Object.defineProperty(l.prototype,"m",{get:function(){return this.invalid?"-":String(this.minute)},enumerable:!0,configurable:!0}),Object.defineProperty(l.prototype,"s",{get:function(){return this.invalid?"-":String(this.second)},enumerable:!0,configurable:!0}),Object.defineProperty(l.prototype,"S",{get:function(){return this.invalid?"-":String(Math.floor(this.millisecond/100))},enumerable:!0,configurable:!0}),Object.defineProperty(l.prototype,"SS",{get:function(){return this.invalid?"--":t(Math.floor(this.millisecond/10),2,"0")},enumerable:!0,configurable:!0}),Object.defineProperty(l.prototype,"SSS",{get:function(){return this.invalid?"---":t(this.millisecond,3,"0")},enumerable:!0,configurable:!0}),Object.defineProperty(l.prototype,"a",{get:function(){return this.invalid?"--":this.am?"am":"pm"},enumerable:!0,configurable:!0}),Object.defineProperty(l.prototype,"A",{get:function(){return this.invalid?"--":this.am?"AM":"PM"},enumerable:!0,configurable:!0}),Object.defineProperty(l.prototype,"aa",{get:function(){return this.invalid?"----":this.am?"a.m.":"p.m."},enumerable:!0,configurable:!0}),Object.defineProperty(l.prototype,"AA",{get:function(){return this.invalid?"----":this.am?"A.M.":"P.M."},enumerable:!0,configurable:!0}),Object.defineProperty(l.prototype,"HH",{get:function(){return this.invalid?"--":k(this.H,2,"0")},enumerable:!0,configurable:!0}),Object.defineProperty(l.prototype,"_H",{get:function(){return this.invalid?"--":k(this.H,2," ")},enumerable:!0,configurable:!0}),Object.defineProperty(l.prototype,"hh",{get:function(){return this.invalid?"--":k(this.h,2,"0")},enumerable:!0,configurable:!0}),Object.defineProperty(l.prototype,"_h",{get:function(){return this.invalid?"--":k(this.h,2," ")},enumerable:!0,configurable:!0}),Object.defineProperty(l.prototype,"kk",{get:function(){return this.invalid?"--":k(this.k,2,"0")},enumerable:!0,configurable:!0}),Object.defineProperty(l.prototype,"_k",{get:function(){return this.invalid?"--":k(this.k,2," ")},enumerable:!0,configurable:!0}),Object.defineProperty(l.prototype,"mm",{get:function(){return this.invalid?"--":k(this.m,2,"0")},enumerable:!0,configurable:!0}),Object.defineProperty(l.prototype,"_m",{get:function(){return this.invalid?"--":k(this.m,2," ")},enumerable:!0,configurable:!0}),Object.defineProperty(l.prototype,"ss",{get:function(){return this.invalid?"--":k(this.s,2,"0")},enumerable:!0,configurable:!0}),Object.defineProperty(l.prototype,"_s",{get:function(){return this.invalid?"--":k(this.s,2," ")},enumerable:!0,configurable:!0}),Object.defineProperty(l.prototype,"HHmm",{get:function(){return this.HH+":"+this.mm},enumerable:!0,configurable:!0}),Object.defineProperty(l.prototype,"HHmmss",{get:function(){return this.HHmm+":"+this.ss},enumerable:!0,configurable:!0}),Object.defineProperty(l.prototype,"HHmmssSSS",{get:function(){return this.HHmmss+"."+this.SSS},enumerable:!0,configurable:!0}),Object.defineProperty(l.prototype,"totalMilliseconds",{get:function(){return this._totalMilliseconds},enumerable:!0,configurable:!0}),Object.defineProperty(l.prototype,"totalSeconds",{get:function(){return Math.floor(this._totalMilliseconds/n)},enumerable:!0,configurable:!0}),Object.defineProperty(l.prototype,"totalMinutes",{get:function(){return Math.floor(this._totalMilliseconds/i)},enumerable:!0,configurable:!0}),Object.defineProperty(l.prototype,"valid",{get:function(){return 0<=this._totalMilliseconds&&this._totalMilliseconds<r},enumerable:!0,configurable:!0}),Object.defineProperty(l.prototype,"invalid",{get:function(){return!this.valid},enumerable:!0,configurable:!0}),Object.defineProperty(l.prototype,"startOfHour",{get:function(){return new l(this._totalMilliseconds-this._totalMilliseconds%a)},enumerable:!0,configurable:!0}),Object.defineProperty(l.prototype,"startOfMinute",{get:function(){return new l(this._totalMilliseconds-this._totalMilliseconds%i)},enumerable:!0,configurable:!0}),Object.defineProperty(l.prototype,"startOfSecond",{get:function(){return new l(this._totalMilliseconds-this._totalMilliseconds%n)},enumerable:!0,configurable:!0}),l.prototype.ifInvalid=function(t){return this.valid?this:new l(d(t))},l.prototype.startOf=function(t){switch(t){case"hour":return this.startOfHour;case"minute":return this.startOfMinute;case"second":return this.startOfSecond;default:return this}},l.prototype.toString=function(){return this.HHmmssSSS},l.prototype.format=function(t){return e=this,String(t).replace(/\\.|HH?|hh?|kk?|mm?|ss?|S{1,3}|AA?|aa?|_H|_h|_k|_m|_s/g,function(t){return"\\"===t[0]?t[1]:e[t]});var e},l.prototype.with=function(t){return new l(d({h:c(t.h,t.hour,t.hours,this.hour),m:c(t.m,t.minute,t.minutes,this.minute),s:c(t.s,t.second,t.seconds,this.second),S:c(t.S,t.millisecond,t.milliseconds,this.millisecond),am:!0===t.am||!1===t.pm||"am"===t.a||"pm"!==t.a&&void 0}))},l.prototype.plus=function(t){var e=d(t);return 0===e?this:new l(this._totalMilliseconds+e)},l.prototype.minus=function(t){var e=d(t);return 0===e?this:new l(this._totalMilliseconds-e)},l.prototype.equals=function(t){return 0===this.compareTo(t)},l.prototype.compareTo=function(t){return this._totalMilliseconds-d(t)},l.prototype.isBefore=function(t){return this.compareTo(t)<0},l.prototype.isBeforeOrEqual=function(t){return this.compareTo(t)<=0},l.prototype.isAfter=function(t){return 0<this.compareTo(t)},l.prototype.isAfterOrEqual=function(t){return 0<=this.compareTo(t)},l.prototype.isBetweenExclusive=function(t,e){return this.isAfter(t)&&this.isBefore(e)},l.prototype.isBetweenInclusive=function(t,e){return this.isAfterOrEqual(t)&&this.isBeforeOrEqual(e)},l}(),g=new y(0),O=new y(NaN),S=function(t){if(null==t)return O;if(t instanceof y)return t;var e=d(t);return 0===e?g:isNaN(e)?O:new y(e)};function P(t,e,l){void 0===l&&(l=O);for(var o=l,c=0,n=t.length;c<n;++c){var i=S(t[c]);i.valid&&(o=e(o,i,c,t))}return o}function j(t){var e=document.createEvent("CustomEvent");e.initCustomEvent("input",!0,!1,"complete"),t.dispatchEvent(e)}S.prototype=y.prototype,S.INVALID=O,S.ZERO=g,S.now=function(){return new y(l())},S.min=function(){return P(arguments,function(t,e){return t.invalid||e.isBefore(t)?e:t})},S.max=function(){return P(arguments,function(t,e){return t.invalid||e.isAfter(t)?e:t})};var E=Object.assign||function(t){for(var e,l=1,o=arguments.length;l<o;l++)for(var c in e=arguments[l])Object.prototype.hasOwnProperty.call(e,c)&&(t[c]=e[c]);return t},_=matchMedia("(hover: none)").matches;function M(t,e,l,o,c){var n=document.createEvent("CustomEvent");return n.initCustomEvent(e,l,o,c),n.preventDefault=function(){Object.defineProperty(this,"defaultPrevented",{get:function(){return!0}})},t.dispatchEvent(n),n}function H(t,e){return t.getAttribute("data-clocklet-"+e)}function w(t,e,l){t.setAttribute("data-clocklet-"+e,l)}var x=function(){function t(t,e,l){this.dial=t,this.maxValue=e,this.setValue=l,this.hand=this.dial.getElementsByClassName("clocklet-hand")[0],this.dragging=!1,_?(t.addEventListener("touchstart",this._onDragStart.bind(this)),t.addEventListener("touchmove",this._onDrag.bind(this)),t.addEventListener("touchend",this._onDragEnd.bind(this))):(t.addEventListener("mousedown",this._onDragStart.bind(this)),addEventListener("mousemove",this._onDrag.bind(this),!0),addEventListener("mouseup",this._onDragEnd.bind(this),!0))}return t.prototype.value=function(t){this.hand.style.transform="rotate("+360*t/this.maxValue+"deg)";var e="clocklet-tick--selected",l=this.dial.getElementsByClassName(e)[0],o=this.dial.querySelector('[data-clocklet-tick-value="'+t+'"]');l!==o&&(l&&l.classList.remove(e),o&&o.classList.add(e))},t.prototype._onDragStart=function(t){if(t.touches&&1<t.touches.length)this.dragging=!1;else{this.dragging=!0;var e=H(t.target,"tick-value");e&&this.setValue(e),t.preventDefault(),M(this.dial,"clocklet.dragstart",!0,!1)}},t.prototype._onDrag=function(t){if(this.dragging){var e=t.targetTouches?t.targetTouches[0]:t,l=document.elementFromPoint(e.clientX,e.clientY),o=l&&H(l,"tick-value");if(o&&this.dial.contains(l))this.setValue(o);else{var c=this.dial.getBoundingClientRect(),n=e.clientX-c.left-c.width/2,i=e.clientY-c.top-c.height/2,a=Math.atan2(i,n);this.setValue(Math.round(a*this.maxValue/(2*Math.PI)+this.maxValue/4+this.maxValue)%this.maxValue)}t.preventDefault()}},t.prototype._onDragEnd=function(t){this.dragging=!1,t.preventDefault(),M(this.dial,"clocklet.dragend",!0,!1)},t}(),L={className:"",format:"HH:mm",placement:"bottom",alignment:"left",appendTo:"body",zIndex:"",dispatchesInputEvents:!0};function A(t){if(t){for(var e={},l=0,o=t.split(";");l<o.length;l++){var c=o[l],n=c.indexOf(":");e[c.slice(0,n).trim().replace(/[a-zA-Z0-9_]-[a-z]/g,function(t){return t[0]+t[2].toUpperCase()})]=c.slice(n+1).trim()}return e}}var N='<div class="clocklet"><div class="clocklet-plate"><div class="clocklet-dial clocklet-dial--minute"><div class="clocklet-hand clocklet-hand--minute"></div><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="0" style="left:50%;top:11%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="1" style="left:54.8%;top:4.3%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="2" style="left:59.6%;top:5%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="3" style="left:64.2%;top:6.3%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="4" style="left:68.7%;top:8%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="5" style="left:69.5%;top:16.2%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="6" style="left:77%;top:12.8%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="7" style="left:80.8%;top:15.8%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="8" style="left:84.2%;top:19.2%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="9" style="left:87.2%;top:23%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="10" style="left:83.8%;top:30.5%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="11" style="left:92%;top:31.3%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="12" style="left:93.7%;top:35.8%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="13" style="left:95%;top:40.4%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="14" style="left:95.7%;top:45.2%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="15" style="left:89%;top:50%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="16" style="left:95.7%;top:54.8%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="17" style="left:95%;top:59.6%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="18" style="left:93.7%;top:64.2%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="19" style="left:92%;top:68.7%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="20" style="left:83.8%;top:69.5%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="21" style="left:87.2%;top:77%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="22" style="left:84.2%;top:80.8%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="23" style="left:80.8%;top:84.2%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="24" style="left:77%;top:87.2%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="25" style="left:69.5%;top:83.8%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="26" style="left:68.7%;top:92%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="27" style="left:64.2%;top:93.7%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="28" style="left:59.6%;top:95%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="29" style="left:54.8%;top:95.7%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="30" style="left:50%;top:89%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="31" style="left:45.2%;top:95.7%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="32" style="left:40.4%;top:95%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="33" style="left:35.8%;top:93.7%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="34" style="left:31.3%;top:92%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="35" style="left:30.5%;top:83.8%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="36" style="left:23%;top:87.2%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="37" style="left:19.2%;top:84.2%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="38" style="left:15.8%;top:80.8%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="39" style="left:12.8%;top:77%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="40" style="left:16.2%;top:69.5%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="41" style="left:8%;top:68.7%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="42" style="left:6.3%;top:64.2%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="43" style="left:5%;top:59.6%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="44" style="left:4.3%;top:54.8%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="45" style="left:11%;top:50%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="46" style="left:4.3%;top:45.2%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="47" style="left:5%;top:40.4%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="48" style="left:6.3%;top:35.8%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="49" style="left:8%;top:31.3%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="50" style="left:16.2%;top:30.5%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="51" style="left:12.8%;top:23%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="52" style="left:15.8%;top:19.2%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="53" style="left:19.2%;top:15.8%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="54" style="left:23%;top:12.8%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="55" style="left:30.5%;top:16.2%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="56" style="left:31.3%;top:8%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="57" style="left:35.8%;top:6.3%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="58" style="left:40.4%;top:5%"></button><button class="clocklet-tick clocklet-tick--minute" data-clocklet-tick-value="59" style="left:45.2%;top:4.3%"></button></div><div class="clocklet-dial clocklet-dial--hour"><div class="clocklet-hand clocklet-hand--hour"></div><button class="clocklet-tick clocklet-tick--hour" data-clocklet-tick-value="0" style="left:50%;top:11%"></button><button class="clocklet-tick clocklet-tick--hour" data-clocklet-tick-value="1" style="left:69.5%;top:16.2%"></button><button class="clocklet-tick clocklet-tick--hour" data-clocklet-tick-value="2" style="left:83.8%;top:30.5%"></button><button class="clocklet-tick clocklet-tick--hour" data-clocklet-tick-value="3" style="left:89%;top:50%"></button><button class="clocklet-tick clocklet-tick--hour" data-clocklet-tick-value="4" style="left:83.8%;top:69.5%"></button><button class="clocklet-tick clocklet-tick--hour" data-clocklet-tick-value="5" style="left:69.5%;top:83.8%"></button><button class="clocklet-tick clocklet-tick--hour" data-clocklet-tick-value="6" style="left:50%;top:89%"></button><button class="clocklet-tick clocklet-tick--hour" data-clocklet-tick-value="7" style="left:30.5%;top:83.8%"></button><button class="clocklet-tick clocklet-tick--hour" data-clocklet-tick-value="8" style="left:16.2%;top:69.5%"></button><button class="clocklet-tick clocklet-tick--hour" data-clocklet-tick-value="9" style="left:11%;top:50%"></button><button class="clocklet-tick clocklet-tick--hour" data-clocklet-tick-value="10" style="left:16.2%;top:30.5%"></button><button class="clocklet-tick clocklet-tick--hour" data-clocklet-tick-value="11" style="left:30.5%;top:16.2%"></button></div><div class="clocklet-ampm"></div><div class="clocklet-hand-origin"></div></div></div>';function C(t,e){return I(t,e,/[Hhk]$/)}function D(t,e){return I(t,e,/a/i)}function I(t,e,l){for(var o=0,c=0,n=v(e);c<n.length;c++){var i=n[c];if(i.literal)o+=i.property.length;else{var a=t[i.property];if(l.test(i.property))return{index:o,value:a};o+=a.length}}}var T=function(){function t(t){var e,l=this;this.container=((e=document.createElement("div")).className="clocklet-container",e.innerHTML=N,e),this.root=this.container.firstElementChild,this.plate=this.root.firstElementChild,this.hour=new x(this.plate.getElementsByClassName("clocklet-dial--hour")[0],12,function(t){return l.value({h:t})}),this.minute=new x(this.plate.getElementsByClassName("clocklet-dial--minute")[0],60,function(t){return l.value({m:t})}),this.ampm=this.plate.getElementsByClassName("clocklet-ampm")[0],this.defaultOptions=E(Object.create(L),t),addEventListener("input",function(t){return t.target===l.input&&l.updateHighlight()},!0),this.root.addEventListener("mousedown",function(t){return t.preventDefault()}),this.ampm.addEventListener("mousedown",function(){return l.value({a:"pm"===H(l.ampm,"ampm")?"am":"pm"})}),this.root.addEventListener("clocklet.dragstart",function(){return l.root.classList.add("clocklet--dragging")}),this.root.addEventListener("clocklet.dragend",function(){return l.root.classList.remove("clocklet--dragging")})}return t.prototype.open=function(t,e){var l=this,o=E(Object.create(this.defaultOptions),e),c=t.getBoundingClientRect(),n=this.container,i=this.root,a={options:o};M(t,"clocklet.opening",!0,!0,a).defaultPrevented||(this.input=t,this.dispatchesInputEvents=o.dispatchesInputEvents,w(i,"placement",o.placement),w(i,"alignment",o.alignment),w(i,"format",o.format),w(i,"append-to",o.appendTo),i.className="clocklet clocklet--showing "+(_?"":"clocklet--hoverable ")+o.className,"top"===o.placement?(i.style.top="",i.style.bottom="0"):(i.style.top=c.height+"px",i.style.bottom=""),"right"===o.alignment?(i.style.left="",i.style.right="-"+c.width+"px"):(i.style.left="0",i.style.right=""),n.style.zIndex=""!==o.zIndex?o.zIndex:(parseInt(getComputedStyle(t).zIndex,10)||0)+1,"parent"===o.appendTo?(n.style.position="relative",n.style.left="0",n.style.top="0",t.parentElement.insertBefore(n,t)):(n.style.position="absolute",n.style.left=document.documentElement.scrollLeft+document.body.scrollLeft+c.left+"px",n.style.top=document.documentElement.scrollTop+document.body.scrollTop+c.top+"px",n.parentElement!==document.body&&document.body.appendChild(n)),this.updateHighlight(),setTimeout(function(){i.classList.remove("clocklet--showing"),l.input&&i.classList.add("clocklet--shown")}),M(t,"clocklet.opened",!0,!1,a))},t.prototype.close=function(){var t=this.input,e={};t&&(M(t,"clocklet.closing",!0,!0,e).defaultPrevented?t.focus():(this.input=void 0,this.root.classList.remove("clocklet--shown"),M(t,"clocklet.closed",!0,!1,e)))},t.prototype.value=function(t){if(this.input){void 0===t.a&&(t={h:t.h,m:t.m,a:H(this.ampm,"ampm")});var e=this.input.value,l=S(this.input.value).with(void 0!==t.a?t:{h:t.h,m:t.m,a:H(this.ampm,"ampm")}),o=H(this.root,"format");if(this.input.value=l.format(o),"text"===this.input.type){var c=void 0!==t.h?C(l,o):void 0!==t.m?I(l,o,/m$/):void 0!==t.a?D(l,o)||C(l,o):void 0;c&&this.input.setSelectionRange(c.index,c.index+c.value.length)}this.dispatchesInputEvents&&this.input.value!==e&&M(this.input,"input",!0,!1,void 0)}},t.prototype.updateHighlight=function(){if(this.input){var t=this.input.value?S(this.input.value):S.INVALID;t.valid?(w(this.root,"value",t.HHmm),this.hour.value(t.hour%12),this.minute.value(t.minute),w(this.ampm,"ampm",t.a)):(w(this.root,"value",""),this.hour.value(-1),this.minute.value(-1),w(this.ampm,"ampm","am"));var e=D(t.valid?t:S.ZERO,H(this.root,"format"));w(this.ampm,"ampm-formatted",e&&e.value||"")}},t}();var B,V,F,z,R,q,$={dataAttributeName:"clocklet",formatSelector:function(t){var e=A(t.getAttribute("data-clocklet"));return e&&e.format}};return R=(z=$)&&z.dataAttributeName||"lenientime",q=z&&z.formatSelector||function(t){return t.dataset.lenientime},addEventListener("change",function(t){var e=t.target,l=e.value,o=e.dataset;if(l&&R in o){var c=S(l),n=c.valid?c.format(q(e)||"HH:mm"):"";n!==l&&(e.value=n,j(e))}},!0),V=(B=$)&&B.dataAttributeName||"lenientime",F=B&&B.formatSelector||function(t){return t.dataset.lenientime},B&&B.amountSelector,addEventListener("keydown",function(t){var e=t.which;if(!(38!==e&&40!==e||t.altKey||t.ctrlKey||t.metaKey)){var l=t.target,o=l.dataset;if(V in o){t.preventDefault();var c=F(l)||"HH:mm",n=l.value;if(n){var i=l.selectionStart;if(s=null===i?void 0:b(c,n,i)){var a=(38===e?1:-1)*(B&&B.amountSelector&&B.amountSelector(l)||1),r=s.adjust(a,!0);if(void 0!==r){var u=s.index;l.value=n.slice(0,u)+r+n.slice(u+s.value.length),l.setSelectionRange(u,u+r.length),j(l)}}}else{var s;l.value=S.ZERO.format(c),(s=b(c,l.value,0))&&l.setSelectionRange(s.index,s.index+s.value.length),j(l)}}}},!0),function(t){void 0===t&&(t={});var l=new T(t.defaultOptions),e=t.target||"input[data-clocklet]",o=t.optionsSelector||function(t){return A(t.getAttribute("data-clocklet"))},c=l.close.bind(l);if(e instanceof Element)e.addEventListener("focus",function(t){return l.open(t.target,o(t.target))}),e.addEventListener("blur",c);else{var n="function"==typeof e?e:function(t){return(Element.prototype.matches||Element.prototype.msMatchesSelector).call(t,e)};document.body.addEventListener("focus",function(t){var e=t.target;n(e)&&l.open(e,o(e))},!0),document.body.addEventListener("blur",c,!0)}return l}()});

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc