lddatetimepicker 0.0.9 → 0.0.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/README.md +3 -0
- package/index.css +12 -0
- package/index.js +11 -2
- package/index.min.css +1 -1
- package/index.min.js +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
package/README.md
CHANGED
|
@@ -29,6 +29,7 @@ Constructor options:
|
|
|
29
29
|
|
|
30
30
|
- `host`: host element ( should be an input element, if provided )
|
|
31
31
|
- `time`: default true. hide and disable time picker if false.
|
|
32
|
+
- `suppress`: default false. suppress popup when clicking host if true.
|
|
32
33
|
- `fixed`: (deprecated) default false. true to enabled fixed mode.
|
|
33
34
|
- `mode`: either `in-place`, `out-place` or `fixed`.
|
|
34
35
|
- `fixed`:
|
|
@@ -58,6 +59,8 @@ Constructor options:
|
|
|
58
59
|
- `on(n, cb)`
|
|
59
60
|
- `update()`
|
|
60
61
|
- `value()`
|
|
62
|
+
- `config(opt)`: update configuration. following options are supported:
|
|
63
|
+
- `suppress`: see constructor option for this option.
|
|
61
64
|
|
|
62
65
|
|
|
63
66
|
## License
|
package/index.css
CHANGED
|
@@ -131,3 +131,15 @@
|
|
|
131
131
|
outline: 0;
|
|
132
132
|
text-align: center;
|
|
133
133
|
}
|
|
134
|
+
.lddtp-c {
|
|
135
|
+
text-align: center;
|
|
136
|
+
padding: 0.5em;
|
|
137
|
+
font-weight: bold;
|
|
138
|
+
font-size: 0.75em;
|
|
139
|
+
background: #f7f8f9;
|
|
140
|
+
border-radius: 0.25em;
|
|
141
|
+
}
|
|
142
|
+
.lddtp-c:before {
|
|
143
|
+
content: "OK";
|
|
144
|
+
display: block;
|
|
145
|
+
}
|
package/index.js
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
(function(){
|
|
2
2
|
var html, lddatetimepicker;
|
|
3
|
-
html = '<div class="lddtp"><div>\n <div class="lddtp-h">\n <div class="lddtp-a" data-action="-"></div>\n <div class="lddtp-f"><select class="lddtp-month-sel"></select></div>\n <div class="lddtp-f"><input class="lddtp-year-sel" type="number"/></div>\n <div class="lddtp-a" data-action="+"></div>\n </div>\n <div class="lddtp-ds">\n </div>\n <div class="lddtp-t">\n <div class="lddtp-f"><select class="lddtp-hour-sel"></select></div>\n <div><b>:</b></div>\n <div class="lddtp-f"><select class="lddtp-minute-sel"></select></div>\n </div>\n</div></div>';
|
|
3
|
+
html = '<div class="lddtp"><div>\n <div class="lddtp-h">\n <div class="lddtp-a" data-action="-"></div>\n <div class="lddtp-f"><select class="lddtp-month-sel"></select></div>\n <div class="lddtp-f"><input class="lddtp-year-sel" type="number"/></div>\n <div class="lddtp-a" data-action="+"></div>\n </div>\n <div class="lddtp-ds">\n </div>\n <div class="lddtp-t">\n <div class="lddtp-f"><select class="lddtp-hour-sel"></select></div>\n <div><b>:</b></div>\n <div class="lddtp-f"><select class="lddtp-minute-sel"></select></div>\n </div>\n <div class="lddtp-c"></div>\n</div></div>';
|
|
4
4
|
lddatetimepicker = function(opt){
|
|
5
5
|
var ref$, _c, div, r, x$, _handler, e, this$ = this;
|
|
6
6
|
opt == null && (opt = {});
|
|
7
7
|
this.opt = opt;
|
|
8
|
+
this._suppress = opt.suppress;
|
|
8
9
|
this._enabled = {
|
|
9
10
|
time: !(opt.time != null) || opt.time
|
|
10
11
|
};
|
|
@@ -67,7 +68,9 @@
|
|
|
67
68
|
? document.querySelector(opt.host)
|
|
68
69
|
: opt.host;
|
|
69
70
|
this.host.addEventListener('mouseup', function(evt){
|
|
70
|
-
|
|
71
|
+
if (!this$._suppress) {
|
|
72
|
+
return this$.toggle();
|
|
73
|
+
}
|
|
71
74
|
});
|
|
72
75
|
}
|
|
73
76
|
div.innerHTML = html;
|
|
@@ -138,6 +141,8 @@
|
|
|
138
141
|
} else if (n.getAttribute('data-action') === '+') {
|
|
139
142
|
this$.cur = this$.cur.add(1, "month");
|
|
140
143
|
return this$.update(this$.cur);
|
|
144
|
+
} else if (n.classList.contains('lddtp-c')) {
|
|
145
|
+
return this$.toggle(false);
|
|
141
146
|
}
|
|
142
147
|
});
|
|
143
148
|
this.n.sel.minute.addEventListener('change', function(evt){
|
|
@@ -382,6 +387,10 @@
|
|
|
382
387
|
this._last = this.cur;
|
|
383
388
|
this.sel = this.cur = v;
|
|
384
389
|
return this.update();
|
|
390
|
+
},
|
|
391
|
+
config: function(cfg){
|
|
392
|
+
cfg == null && (cfg = {});
|
|
393
|
+
return this._suppress = cfg.suppress;
|
|
385
394
|
}
|
|
386
395
|
});
|
|
387
396
|
if (typeof module != 'undefined' && module !== null) {
|
package/index.min.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.lddtp-h{display:grid;grid-template-columns:1fr 2.5fr 2.5fr 1fr;padding:.33em 0}.lddtp-h div{border-radius:.25em;display:flex;align-items:center;justify-content:center;margin:1px}.lddtp-h .info{flex:1 0 auto;text-align:center}.lddtp-a:before,.lddtp-a:after{display:block}.lddtp-a:first-child:before{content:"\25c0"}.lddtp-a:last-child:before{content:"\25ba"}.lddtp{position:absolute;z-index:100;display:none}.lddtp div{user-select:none}.lddtp,.lddtp.active.fixed>div{width:300px;border:1px solid #d6d7d8;border-radius:.25em;background:#fff;box-shadow:0 3px 5px rgba(0,0,0,0.1);cursor:pointer}.lddtp.bare{border:0;box-shadow:none;border-radius:0}.lddtp.static{position:relative;display:block}.lddtp.active{display:block}.lddtp.active.fixed{position:fixed;top:0;left:0;right:0;bottom:0;width:auto;z-index:2000;border:0;box-shadow:none;border-radius:0;background:rgba(0,0,0,0.75)}.lddtp.active.fixed>div{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.lddtp-ds{height:250px;display:grid;grid-template:.8fr repeat(6,1fr) / repeat(7,1fr);border-bottom:1px solid #e7e8e9;border-top:1px solid #e7e8e9}.lddtp-ds div{margin:1px;overflow:hidden;display:flex;position:relative;align-items:center;justify-content:center}.lddtp-ds .dim{color:#ccc;background:#f7f8f9}.lddtp-ds .today:before{display:block;content:" ";border-radius:50%;width:6px;height:6px;position:absolute;top:4px;left:4px;background:#0f0}.lddtp-w{font-size:.8em;font-weight:700}.lddtp-d.selected{background:#00f;color:#fff;border-radius:.25em;font-weight:700}.lddtp-t{display:grid;grid-template-columns:1fr 5px 1fr}.lddtp-t div{height:2.5em;display:flex;align-items:center}.lddtp-t .lddtp-f input,.lddtp-h .lddtp-f input,.lddtp-t .lddtp-f select,.lddtp-h .lddtp-f select{height:100%;width:100%;border:0;outline:0;text-align:center}
|
|
1
|
+
.lddtp-h{display:grid;grid-template-columns:1fr 2.5fr 2.5fr 1fr;padding:.33em 0}.lddtp-h div{border-radius:.25em;display:flex;align-items:center;justify-content:center;margin:1px}.lddtp-h .info{flex:1 0 auto;text-align:center}.lddtp-a:before,.lddtp-a:after{display:block}.lddtp-a:first-child:before{content:"\25c0"}.lddtp-a:last-child:before{content:"\25ba"}.lddtp{position:absolute;z-index:100;display:none}.lddtp div{user-select:none}.lddtp,.lddtp.active.fixed>div{width:300px;border:1px solid #d6d7d8;border-radius:.25em;background:#fff;box-shadow:0 3px 5px rgba(0,0,0,0.1);cursor:pointer}.lddtp.bare{border:0;box-shadow:none;border-radius:0}.lddtp.static{position:relative;display:block}.lddtp.active{display:block}.lddtp.active.fixed{position:fixed;top:0;left:0;right:0;bottom:0;width:auto;z-index:2000;border:0;box-shadow:none;border-radius:0;background:rgba(0,0,0,0.75)}.lddtp.active.fixed>div{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.lddtp-ds{height:250px;display:grid;grid-template:.8fr repeat(6,1fr) / repeat(7,1fr);border-bottom:1px solid #e7e8e9;border-top:1px solid #e7e8e9}.lddtp-ds div{margin:1px;overflow:hidden;display:flex;position:relative;align-items:center;justify-content:center}.lddtp-ds .dim{color:#ccc;background:#f7f8f9}.lddtp-ds .today:before{display:block;content:" ";border-radius:50%;width:6px;height:6px;position:absolute;top:4px;left:4px;background:#0f0}.lddtp-w{font-size:.8em;font-weight:700}.lddtp-d.selected{background:#00f;color:#fff;border-radius:.25em;font-weight:700}.lddtp-t{display:grid;grid-template-columns:1fr 5px 1fr}.lddtp-t div{height:2.5em;display:flex;align-items:center}.lddtp-t .lddtp-f input,.lddtp-h .lddtp-f input,.lddtp-t .lddtp-f select,.lddtp-h .lddtp-f select{height:100%;width:100%;border:0;outline:0;text-align:center}.lddtp-c{text-align:center;padding:.5em;font-weight:bold;font-size:.75em;background:#f7f8f9;border-radius:.25em}.lddtp-c:before{content:"OK";display:block}
|
package/index.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(){var t;(t=function(t){var e,n,
|
|
1
|
+
!function(){var t;(t=function(t){var e,s,n,i=this;if(this.opt=t=null==t?{}:t,this._suppress=t.suppress,this._enabled={time:!(null!=t.time)||t.time},this._zmgr=t.zmgr||null,this._mode="in-place"===(e=t.mode)||"out-place"===e||"fixed"===e?t.mode:t.fixed?"fixed":t.container?"out-place":"in-place",this.evthdr={},n=t.container){if(!("object"==typeof n&&n.isOn&&n.toggle&&n.node))throw new Error("[lddatetimepicker] `isOn`, `toggle` and `node` are all required within `container` option.");this._toggle=n.toggle,this.isOn=n.isOn,this._container=n.node,this._pos=n.position}if(this.hdr={mouseup:function(t){if(t.target!==i.host)return i._toggle(!1),document.removeEventListener("mouseup",i.hdr.mouseup),document.removeEventListener("keydown",i.hdr.keydown)},keydown:function(t){var e;if(i.isOn()&&(13===(e=t.keyCode)||27===e||37===e||38===e||39===e||40===e)&&i.sel)return 13===e||27===e?i.toggle(!1):(t.stopPropagation(),t.preventDefault(),i.sel=37===e?i.sel.subtract(1,"day"):39===e?i.sel.add(1,"day"):38===e?i.sel.subtract(7,"day"):40===e?i.sel.add(7,"day"):void 0,i.cur=i.sel,i.update())}},n=document.createElement("div"),t.host&&(this.host="string"==typeof t.host?document.querySelector(t.host):t.host,this.host.addEventListener("mouseup",function(t){if(!i._suppress)return i.toggle()})),n.innerHTML='<div class="lddtp"><div>\n <div class="lddtp-h">\n <div class="lddtp-a" data-action="-"></div>\n <div class="lddtp-f"><select class="lddtp-month-sel"></select></div>\n <div class="lddtp-f"><input class="lddtp-year-sel" type="number"/></div>\n <div class="lddtp-a" data-action="+"></div>\n </div>\n <div class="lddtp-ds">\n </div>\n <div class="lddtp-t">\n <div class="lddtp-f"><select class="lddtp-hour-sel"></select></div>\n <div><b>:</b></div>\n <div class="lddtp-f"><select class="lddtp-minute-sel"></select></div>\n </div>\n <div class="lddtp-c"></div>\n</div></div>',this.root=s=n.querySelector(".lddtp"),this._container?(this._container.appendChild(n),this.root.classList.add("static","bare")):"out-place"===this._mode?document.body.appendChild(n):"fixed"!==this._mode&&this.host?this.host&&this.host.parentNode.insertBefore(n,t.host.nextSibling):(document.body.appendChild(n),this.root.classList.toggle("fixed")),this.root.addEventListener("mouseup",function(t){return t.stopPropagation()}),this.n={ds:s.querySelector(".lddtp-ds"),t:s.querySelector(".lddtp-t"),sel:{year:s.querySelector(".lddtp-year-sel"),month:s.querySelector(".lddtp-month-sel"),hour:s.querySelector(".lddtp-hour-sel"),minute:s.querySelector(".lddtp-minute-sel")}},this.n.t.style.display=this._enabled.time?"":"none",this.months=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],this.wdays=["SUN","MON","TUE","WED","THR","FRI","SAT"],this.n.ds.innerHTML=[0,1,2,3,4,5,6].map(function(t){return'<div class="lddtp-w">'+i.wdays[t]+"</div>"}).join("")+[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41].map(function(t){return'<div class="lddtp-d"></div>'}).join(""),(e=this.n).dh=Array.from(s.querySelectorAll(".lddtp-w")),e.dc=Array.from(s.querySelectorAll(".lddtp-d")),e=[0,1,2].map(function(){return dayjs()}),this.cur=e[0],this.today=e[1],this.sel=e[2],this.n.sel.month.innerHTML=this.months.map(function(t){return'<option value="'+t+'">'+t+"</option>"}).join(""),(t=this.n.sel.year).setAttribute("min",1900),t.setAttribute("max",2300),t.setAttribute("value",this.today.year()),this.n.sel.hour.innerHTML=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23].map(function(t){return'<option value="'+t+'">'+(""+t).padStart(2,"0")+"</option>"}).join(""),this.n.sel.minute.innerHTML=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59].map(function(t){return'<option value="'+t+'">'+(""+t).padStart(2,"0")+"</option>"}).join(""),this.root.addEventListener("click",function(t){return"fixed"===i._mode&&t.target.classList.contains("fixed")?i.toggle(!1):(t=t.target).classList.contains("lddtp-d")?(i.sel=dayjs(new Date(t.date.year,t.date.month,t.date.date,i.sel.hour(),i.sel.minute())),i.update(i.cur)):"-"===t.getAttribute("data-action")?(i.cur=i.cur.subtract(1,"month"),i.update(i.cur)):"+"===t.getAttribute("data-action")?(i.cur=i.cur.add(1,"month"),i.update(i.cur)):t.classList.contains("lddtp-c")?i.toggle(!1):void 0}),this.n.sel.minute.addEventListener("change",function(t){return i.sel=i.sel.minute(t.target.value),i.update()}),this.n.sel.hour.addEventListener("change",function(t){return i.sel=i.sel.hour(t.target.value),i.update()}),this.n.sel.year.addEventListener("change",function(t){return i.cur=dayjs(new Date(i.n.sel.year.value,i.months.indexOf(i.n.sel.month.value),1)),i.update(i.cur)}),this.n.sel.month.addEventListener("change",function(t){return i.cur=dayjs(new Date(i.n.sel.year.value,i.months.indexOf(i.n.sel.month.value),1)),i.update(i.cur)}),this.host&&(n=debounce(function(){var t;try{return t=dayjs(i.host.value).format("YYYY-MM-DDTHH:mm:ssZ"),i.host.value=t,i.value(i.host.value)}catch(t){return t}}),this.host.addEventListener("change",n),this.host.addEventListener("input",n)),this.host&&this.host.value)try{this.host.value=dayjs(this.host.value).format("YYYY-MM-DDTHH:mm:ssZ"),this.value(this.host.value)}catch(t){0}else this.update();return this}).prototype=function(t,e){var s,n={}.hasOwnProperty;for(s in e)n.call(e,s)&&(t[s]=e[s]);return t}(Object.create(Object.prototype),{on:function(t,s){var n=this;return(Array.isArray(t)?t:[t]).map(function(t){var e;return((e=n.evthdr)[t]||(e[t]=[])).push(s)})},fire:function(t){for(var e,s,n,i,o=[],d=[],r=1,l=arguments.length;r<l;++r)d.push(arguments[r]);for(e=d,r=0,n=(s=this.evthdr[t]||[]).length;r<n;++r)i=s[r],o.push(i.apply(this,e));return o},isOn:function(){return this.root.classList.contains("active")},_toggle:function(t){t=t||!(null!=t)&&!this.isOn();return this._zmgr&&(t?this.root.style.zIndex=this._zmgr.add():this._zmgr.remove(this.root.style.zIndex)),this.root.classList.toggle("active",t)},toggle:function(t){var e,s,n,i,o,d,r,l,a,h,u,c,p,m,v,y,f;if(!(t=0===arguments.length?!this.isOn():t))return this._toggle(!1),document.removeEventListener("mouseup",this.hdr.mouseup),void document.removeEventListener("keydown",this.hdr.keydown);if(this.isOn()||(document.addEventListener("mouseup",this.hdr.mouseup),document.addEventListener("keydown",this.hdr.keydown)),this._toggle(!0),"fixed"!==this._mode){for(e=this.root,s=(n=this.host).parentNode,n=n.getBoundingClientRect(),i=e.getBoundingClientRect(),d=(o=[0,0])[0],r=o[1],l=(o=[null,null])[0],a=o[1],h=!0;s&&s.getAttribute&&(u=getComputedStyle(s),"BODY"===s.nodeName&&(l=l||document.scrollingElement),["overflow","overflow-y","overflow-x"].filter(g).length&&(l=l||s),"BODY"!==s.nodeName&&"static"===u.position||a||(a=s,l||(h=!1)),!l||!a);)s=s.parentNode;return(c=a.getBoundingClientRect(),f=l.getBoundingClientRect(),p={left:l.scrollLeft,top:l.scrollTop},y="fixed"===this._mode?{left:0,top:0}:{left:document.scrollingElement.scrollLeft,top:document.scrollingElement.scrollTop},v=this._container?this._container.getBoundingClientRect():i,m=n.y+n.height+v.height>window.innerHeight+y.top?n.y-v.height+y.top-2:n.y+n.height+y.top+2,v=n.x+v.width>window.innerWidth+y.left?n.x+n.width-+y.left+v.width:n.x+y.left,y=n.y+n.height+i.height>f.y+f.height+p.top?n.y-c.y-i.height+(h?p.top:0)-2:n.y-c.y+n.height+(h?p.top:0)+2,f=n.x+i.width>f.x+f.width+p.left?n.x-c.x+n.width-i.width+(h?p.left:0):n.x-c.x+(h?p.left:0),this._pos)?this._pos({x:v,y:m,vx:v,vy:m,ix:f,iy:y}):(d=(o="out-place"===this._mode?(d=(o=[v,m])[0],r=o[1],o):[f,y])[0],r=o[1],e.style.transform="translate("+d+"px, "+r+"px)",(o=e.style).top=0,o.left=0,o)}function g(t){return"visible"!==u[t]}},update:function(t){s=[(t=t||this.cur).year(),t.month()];var o,e,d,r,l,a,h,u,s,n,c=s[1];if(t=dayjs(new Date(t.year(),t.month(),1)),o=t.subtract(t.day(),"day"),t=(s=[t.year(),t.month(),t.date()])[0],e=s[1],s=[this.today.year(),this.today.month(),this.today.date()],d=s[0],r=s[1],l=s[2],s=this.sel?[this.sel.year(),this.sel.month(),this.sel.date()]:[null,null,null],a=s[0],h=s[1],u=s[2],this.n.sel.month.value=this.months[e],this.n.sel.year.value=t,this.n.sel.minute.value=this.sel.minute(),this.n.sel.hour.value=this.sel.hour(),this.n.dc.map(function(t,e){var e=o.add(e,"day"),s=[e.year(),e.month(),e.date()],n=s[0],i=s[1],s=s[2];return t.date={year:n,month:i,date:s},t.innerText=e.date(),t.classList.toggle("dim",e.month()!==c),t.classList.toggle("today",d===n&&r===i&&l===s),t.classList.toggle("selected",a===n&&h===i&&u===s)}),this.host&&(s=this.host.value,n=this.value(),s!==(this.host.value=n)))return this.fire("change",n)},value:function(t){return arguments.length?((t=dayjs(t)).isValid()||(t=this._last||dayjs()),this._last=this.cur,this.sel=this.cur=t,this.update()):this._enabled.time?dayjs(new Date(this.sel.year(),this.sel.month(),this.sel.date(),this.sel.hour(),this.sel.minute())).format("YYYY-MM-DDTHH:mm:ssZ"):dayjs(new Date(this.sel.year(),this.sel.month(),this.sel.date())).format("YYYY-MM-DD")},config:function(t){return this._suppress=(t=null==t?{}:t).suppress}}),"undefined"!=typeof module&&null!==module?module.exports=t:"undefined"!=typeof window&&null!==window&&(window.lddatetimepicker=t)}.call(this);
|
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"lddatetimepicker","version":"0.0.
|
|
1
|
+
{"name":"lddatetimepicker","version":"0.0.11","description":"vanilla date/time picker","browser":"index.min.js","main":"index.js","scripts":{"start":"npx server -r web -o true"},"homepage":"https://github.com/loadingio/lddatetimepicker","repository":{"type":"git","url":"https://github.com/loadingio/lddatetimepicker"},"keywords":["date","time","datetime","datepicker","datetimepicker"],"author":"zbryikt","license":"MIT","devDependencies":{"@loadingio/bootstrap.ext":"^0.0.12","@loadingio/debounce.js":"^1.0.1","@zbryikt/template":"^2.3.46","bootstrap":"^4.6.1","dayjs":"^1.11.0","fedep":"^1.3.0","ldcover":"^3.5.4","ldview":"^1.5.0","livescript":"^1.6.0","proxise":"^1.0.1","stylus":"^0.57.0","uglify-js":"^3.15.3","uglifycss":"^0.0.29","zmgr":"^2.2.3"},"frontendDependencies":{"root":"web/static/assets/lib","modules":["@loadingio/bootstrap.ext","@loadingio/debounce.js","@loadingio/ldquery","dayjs","bootstrap","ldcover","ldview","zmgr","proxise"]},"dependencies":{"@loadingio/ldquery":"^3.0.6"}}
|