merge master into develop - CscListRForm.jsp FAQ 아코디언 버그 수정

This commit is contained in:
jilee4unity
2026-05-28 23:34:06 +09:00
7250 changed files with 570509 additions and 25 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
.blocker{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:auto;z-index:1;padding:20px;box-sizing:border-box;background-color:#000;background-color:rgba(0,0,0,0.75);text-align:center}.blocker:before{content:"";display:inline-block;height:100%;vertical-align:middle;margin-right:-0.05em}.blocker.behind{background-color:transparent}.modal{display:none;vertical-align:middle;position:relative;z-index:2;max-width:500px;box-sizing:border-box;width:90%;background:#fff;padding:15px 30px;-webkit-border-radius:8px;-moz-border-radius:8px;-o-border-radius:8px;-ms-border-radius:8px;border-radius:8px;-webkit-box-shadow:0 0 10px #000;-moz-box-shadow:0 0 10px #000;-o-box-shadow:0 0 10px #000;-ms-box-shadow:0 0 10px #000;box-shadow:0 0 10px #000;text-align:left}.modal a.close-modal{position:absolute;top:-12.5px;right:-12.5px;display:block;width:30px;height:30px;text-indent:-9999px;background-size:contain;background-repeat:no-repeat;background-position:center center;background-image:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAYAAAA6/NlyAAAAAXNSR0IArs4c6QAAA3hJREFUaAXlm8+K00Acx7MiCIJH/yw+gA9g25O49SL4AO3Bp1jw5NvktC+wF88qevK4BU97EmzxUBCEolK/n5gp3W6TTJPfpNPNF37MNsl85/vN/DaTmU6PknC4K+pniqeKJ3k8UnkvDxXJzzy+q/yaxxeVHxW/FNHjgRSeKt4rFoplzaAuHHDBGR2eS9G54reirsmienDCTRt7xwsp+KAoEmt9nLaGitZxrBbPFNaGfPloGw2t4JVamSt8xYW6Dg1oCYo3Yv+rCGViV160oMkcd8SYKnYV1Nb1aEOjCe6L5ZOiLfF120EjWhuBu3YIZt1NQmujnk5F4MgOpURzLfAwOBSTmzp3fpDxuI/pabxpqOoz2r2HLAb0GMbZKlNV5/Hg9XJypguryA7lPF5KMdTZQzHjqxNPhWhzIuAruOl1eNqKEx1tSh5rfbxdw7mOxCq4qS68ZTjKS1YVvilu559vWvFHhh4rZrdyZ69Vmpgdj8fJbDZLJpNJ0uv1cnr/gjrUhQMuI+ANjyuwftQ0bbL6Erp0mM/ny8Fg4M3LtdRxgMtKl3jwmIHVxYXChFy94/Rmpa/pTbNUhstKV+4Rr8lLQ9KlUvJKLyG8yvQ2s9SBy1Jb7jV5a0yapfF6apaZLjLLcWtd4sNrmJUMHyM+1xibTjH82Zh01TNlhsrOhdKTe00uAzZQmN6+KW+sDa/JD2PSVQ873m29yf+1Q9VDzfEYlHi1G5LKBBWZbtEsHbFwb1oYDwr1ZiF/2bnCSg1OBE/pfr9/bWx26UxJL3ONPISOLKUvQza0LZUxSKyjpdTGa/vDEr25rddbMM0Q3O6Lx3rqFvU+x6UrRKQY7tyrZecmD9FODy8uLizTmilwNj0kraNcAJhOp5aGVwsAGD5VmJBrWWbJSgWT9zrzWepQF47RaGSiKfeGx6Szi3gzmX/HHbihwBser4B9UJYpFBNX4R6vTn3VQnez0SymnrHQMsRYGTr1dSk34ljRqS/EMd2pLQ8YBp3a1PLfcqCpo8gtHkZFHKkTX6fs3MY0blKnth66rKCnU0VRGu37ONrQaA4eZDFtWAu2fXj9zjFkxTBOo8F7t926gTp/83Kyzzcy2kZD6xiqxTYnHLRFm3vHiRSwNSjkz3hoIzo8lCKWUlg/YtGs7tObunDAZfpDLbfEI15zsEIY3U/x/gHHc/G1zltnAgAAAABJRU5ErkJggg==')}.modal-spinner{display:none;position:fixed;top:50%;left:50%;transform:translateY(-50%) translateX(-50%);padding:12px 16px;border-radius:5px;background-color:#111;height:20px}.modal-spinner>div{border-radius:100px;background-color:#fff;height:20px;width:2px;margin:0 1px;display:inline-block;-webkit-animation:sk-stretchdelay 1.2s infinite ease-in-out;animation:sk-stretchdelay 1.2s infinite ease-in-out}.modal-spinner .rect2{-webkit-animation-delay:-1.1s;animation-delay:-1.1s}.modal-spinner .rect3{-webkit-animation-delay:-1.0s;animation-delay:-1.0s}.modal-spinner .rect4{-webkit-animation-delay:-0.9s;animation-delay:-0.9s}@-webkit-keyframes sk-stretchdelay{0%,40%,100%{-webkit-transform:scaleY(0.5)}20%{-webkit-transform:scaleY(1.0)}}@keyframes sk-stretchdelay{0%,40%,100%{transform:scaleY(0.5);-webkit-transform:scaleY(0.5)}20%{transform:scaleY(1.0);-webkit-transform:scaleY(1.0)}}

View File

@@ -0,0 +1,211 @@
/*
A simple jQuery modal (http://github.com/kylefox/jquery-modal)
Version 0.9.2
*/
!(function (o) {
"object" == typeof module && "object" == typeof module.exports
? o(require("jquery"), window, document)
: o(jQuery, window, document);
})(function (o, t, i, e) {
var s = [],
l = function () {
return s.length ? s[s.length - 1] : null;
},
n = function () {
var o,
t = !1;
for (o = s.length - 1; o >= 0; o--)
s[o].$blocker &&
(s[o].$blocker.toggleClass("current", !t).toggleClass("behind", t), (t = !0));
};
(o.modal = function (t, i) {
var e, n;
if (
((this.$body = o("body")),
(this.options = o.extend({}, o.modal.defaults, i)),
(this.options.doFade = !isNaN(parseInt(this.options.fadeDuration, 10))),
(this.$blocker = null),
this.options.closeExisting)
)
for (; o.modal.isActive(); ) o.modal.close();
if ((s.push(this), t.is("a")))
if (((n = t.attr("href")), (this.anchor = t), /^#/.test(n))) {
if (((this.$elm = o(n)), 1 !== this.$elm.length)) return null;
this.$body.append(this.$elm), this.open();
} else
(this.$elm = o("<div>")),
this.$body.append(this.$elm),
(e = function (o, t) {
t.elm.remove();
}),
this.showSpinner(),
t.trigger(o.modal.AJAX_SEND),
o
.get(n)
.done(function (i) {
if (o.modal.isActive()) {
t.trigger(o.modal.AJAX_SUCCESS);
var s = l();
s.$elm.empty().append(i).on(o.modal.CLOSE, e),
s.hideSpinner(),
s.open(),
t.trigger(o.modal.AJAX_COMPLETE);
}
})
.fail(function () {
t.trigger(o.modal.AJAX_FAIL);
var i = l();
i.hideSpinner(), s.pop(), t.trigger(o.modal.AJAX_COMPLETE);
});
else (this.$elm = t), (this.anchor = t), this.$body.append(this.$elm), this.open();
}),
(o.modal.prototype = {
constructor: o.modal,
open: function () {
var t = this;
this.block(),
this.anchor.blur(),
this.options.doFade
? setTimeout(function () {
t.show();
}, this.options.fadeDuration * this.options.fadeDelay)
: this.show(),
o(i)
.off("keydown.modal")
.on("keydown.modal", function (o) {
var t = l();
27 === o.which && t.options.escapeClose && t.close();
}),
this.options.clickClose &&
this.$blocker.click(function (t) {
t.target === this && o.modal.close();
});
},
close: function () {
s.pop(),
this.unblock(),
this.hide(),
o.modal.isActive() || o(i).off("keydown.modal");
},
block: function () {
this.$elm.trigger(o.modal.BEFORE_BLOCK, [this._ctx()]),
this.$body.css("overflow", "hidden"),
(this.$blocker = o(
'<div class="' + this.options.blockerClass + ' blocker current"></div>'
).appendTo(this.$body)),
n(),
this.options.doFade &&
this.$blocker
.css("opacity", 0)
.animate({ opacity: 1 }, this.options.fadeDuration),
this.$elm.trigger(o.modal.BLOCK, [this._ctx()]);
},
unblock: function (t) {
!t && this.options.doFade
? this.$blocker.fadeOut(this.options.fadeDuration, this.unblock.bind(this, !0))
: (this.$blocker.children().appendTo(this.$body),
this.$blocker.remove(),
(this.$blocker = null),
n(),
o.modal.isActive() || this.$body.css("overflow", ""));
},
show: function () {
this.$elm.trigger(o.modal.BEFORE_OPEN, [this._ctx()]),
this.options.showClose &&
((this.closeButton = o(
'<a href="#close-modal" rel="modal:close" class="close-modal ' +
this.options.closeClass +
'">' +
this.options.closeText +
"</a>"
)),
this.$elm.append(this.closeButton)),
this.$elm.addClass(this.options.modalClass).appendTo(this.$blocker),
this.options.doFade
? this.$elm
.css({ opacity: 0, display: "inline-block" })
.animate({ opacity: 1 }, this.options.fadeDuration)
: this.$elm.css("display", "inline-block"),
this.$elm.trigger(o.modal.OPEN, [this._ctx()]);
},
hide: function () {
this.$elm.trigger(o.modal.BEFORE_CLOSE, [this._ctx()]),
this.closeButton && this.closeButton.remove();
var t = this;
this.options.doFade
? this.$elm.fadeOut(this.options.fadeDuration, function () {
t.$elm.trigger(o.modal.AFTER_CLOSE, [t._ctx()]);
})
: this.$elm.hide(0, function () {
t.$elm.trigger(o.modal.AFTER_CLOSE, [t._ctx()]);
}),
this.$elm.trigger(o.modal.CLOSE, [this._ctx()]);
},
showSpinner: function () {
this.options.showSpinner &&
((this.spinner =
this.spinner ||
o('<div class="' + this.options.modalClass + '-spinner"></div>').append(
this.options.spinnerHtml
)),
this.$body.append(this.spinner),
this.spinner.show());
},
hideSpinner: function () {
this.spinner && this.spinner.remove();
},
_ctx: function () {
return {
elm: this.$elm,
$elm: this.$elm,
$blocker: this.$blocker,
options: this.options,
$anchor: this.anchor,
};
},
}),
(o.modal.close = function (t) {
if (o.modal.isActive()) {
t && t.preventDefault();
var i = l();
return i.close(), i.$elm;
}
}),
(o.modal.isActive = function () {
return s.length > 0;
}),
(o.modal.getCurrent = l),
(o.modal.defaults = {
closeExisting: !0,
escapeClose: !0,
clickClose: !0,
closeText: "닫기",
closeClass: "",
modalClass: "modal",
blockerClass: "jquery-modal",
spinnerHtml:
'<div class="rect1"></div><div class="rect2"></div><div class="rect3"></div><div class="rect4"></div>',
showSpinner: !0,
showClose: !0,
fadeDuration: null,
fadeDelay: 1,
}),
(o.modal.BEFORE_BLOCK = "modal:before-block"),
(o.modal.BLOCK = "modal:block"),
(o.modal.BEFORE_OPEN = "modal:before-open"),
(o.modal.OPEN = "modal:open"),
(o.modal.BEFORE_CLOSE = "modal:before-close"),
(o.modal.CLOSE = "modal:close"),
(o.modal.AFTER_CLOSE = "modal:after-close"),
(o.modal.AJAX_SEND = "modal:ajax:send"),
(o.modal.AJAX_SUCCESS = "modal:ajax:success"),
(o.modal.AJAX_FAIL = "modal:ajax:fail"),
(o.modal.AJAX_COMPLETE = "modal:ajax:complete"),
(o.fn.modal = function (t) {
return 1 === this.length && new o.modal(this, t), this;
}),
o(i).on("click.modal", 'a[rel~="modal:close"]', o.modal.close),
o(i).on("click.modal", 'a[rel~="modal:open"]', function (t) {
t.preventDefault(), o(this).modal();
});
});

View File

@@ -0,0 +1,117 @@
/* jQuery Nice Select - v1.0
https://github.com/hernansartorio/jquery-nice-select
Made by Hernán Sartorio */
!(function (e) {
e.fn.niceSelect = function (t) {
function s(t) {
t.after(
e("<div></div>")
.addClass("nice-select")
.addClass(t.attr("class") || "")
.addClass(t.attr("disabled") ? "disabled" : "")
.attr("tabindex", t.attr("disabled") ? null : "0")
.html('<span class="current"></span><ul class="list"></ul>')
);
var s = t.next(),
n = t.find("option"),
i = t.find("option:selected");
s.find(".current").html(i.data("display") || i.text()),
n.each(function (t) {
var n = e(this),
i = n.data("display");
s.find("ul").append(
e("<li></li>")
.attr("data-value", n.val())
.attr("data-display", i || null)
.addClass(
"option" +
(n.is(":selected") ? " selected" : "") +
(n.is(":disabled") ? " disabled" : "")
)
.html(n.text())
);
});
}
if ("string" == typeof t)
return (
"update" == t
? this.each(function () {
var t = e(this),
n = e(this).next(".nice-select"),
i = n.hasClass("open");
n.length && (n.remove(), s(t), i && t.next().trigger("click"));
})
: "destroy" == t
? (this.each(function () {
var t = e(this),
s = e(this).next(".nice-select");
s.length && (s.remove(), t.css("display", ""));
}),
0 == e(".nice-select").length && e(document).off(".nice_select"))
: console.log('Method "' + t + '" does not exist.'),
this
);
this.hide(),
this.each(function () {
var t = e(this);
t.next().hasClass("nice-select") || s(t);
}),
e(document).off(".nice_select"),
e(document).on("click.nice_select", ".nice-select", function (t) {
var s = e(this);
e(".nice-select").not(s).removeClass("open"),
s.toggleClass("open"),
s.hasClass("open")
? (s.find(".option"),
s.find(".focus").removeClass("focus"),
s.find(".selected").addClass("focus"))
: s.focus();
}),
e(document).on("click.nice_select", function (t) {
0 === e(t.target).closest(".nice-select").length &&
e(".nice-select").removeClass("open").find(".option");
}),
e(document).on(
"click.nice_select",
".nice-select .option:not(.disabled)",
function (t) {
var s = e(this),
n = s.closest(".nice-select");
n.find(".selected").removeClass("selected"), s.addClass("selected");
var i = s.data("display") || s.text();
n.find(".current").text(i),
n.prev("select").val(s.data("value")).trigger("change");
}
),
e(document).on("keydown.nice_select", ".nice-select", function (t) {
var s = e(this),
n = e(s.find(".focus") || s.find(".list .option.selected"));
if (32 == t.keyCode || 13 == t.keyCode)
return s.hasClass("open") ? n.trigger("click") : s.trigger("click"), !1;
if (40 == t.keyCode) {
if (s.hasClass("open")) {
var i = n.nextAll(".option:not(.disabled)").first();
i.length > 0 &&
(s.find(".focus").removeClass("focus"), i.addClass("focus"));
} else s.trigger("click");
return !1;
}
if (38 == t.keyCode) {
if (s.hasClass("open")) {
var l = n.prevAll(".option:not(.disabled)").first();
l.length > 0 &&
(s.find(".focus").removeClass("focus"), l.addClass("focus"));
} else s.trigger("click");
return !1;
}
if (27 == t.keyCode) s.hasClass("open") && s.trigger("click");
else if (9 == t.keyCode && s.hasClass("open")) return !1;
});
var n = document.createElement("a").style;
return (
(n.cssText = "pointer-events:auto"),
"auto" !== n.pointerEvents && e("html").addClass("no-csspointerevents"),
this
);
};
})(jQuery);

View File

@@ -0,0 +1,138 @@
.nice-select {
-webkit-tap-highlight-color: transparent;
background-color: #fff;
border-radius: 5px;
border: solid 1px #e8e8e8;
box-sizing: border-box;
clear: both;
cursor: pointer;
display: block;
float: left;
font-family: inherit;
font-size: 14px;
font-weight: normal;
height: 42px;
line-height: 40px;
outline: none;
padding-left: 18px;
padding-right: 30px;
position: relative;
text-align: left !important;
-webkit-transition: all 0.2s ease-in-out;
transition: all 0.2s ease-in-out;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
white-space: nowrap;
width: auto; }
.nice-select:hover {
border-color: #dbdbdb; }
.nice-select:active, .nice-select.open, .nice-select:focus {
border-color: #999; }
.nice-select:after {
border-bottom: 2px solid #999;
border-right: 2px solid #999;
content: '';
display: block;
height: 5px;
margin-top: -4px;
pointer-events: none;
position: absolute;
right: 12px;
top: 50%;
-webkit-transform-origin: 66% 66%;
-ms-transform-origin: 66% 66%;
transform-origin: 66% 66%;
-webkit-transform: rotate(45deg);
-ms-transform: rotate(45deg);
transform: rotate(45deg);
-webkit-transition: all 0.15s ease-in-out;
transition: all 0.15s ease-in-out;
width: 5px; }
.nice-select.open:after {
-webkit-transform: rotate(-135deg);
-ms-transform: rotate(-135deg);
transform: rotate(-135deg); }
.nice-select.open .list {
opacity: 1;
pointer-events: auto;
-webkit-transform: scale(1) translateY(0);
-ms-transform: scale(1) translateY(0);
transform: scale(1) translateY(0); }
.nice-select.disabled {
border-color: #ededed;
color: #999;
pointer-events: none; }
.nice-select.disabled:after {
border-color: #cccccc; }
.nice-select.wide {
width: 100%; }
.nice-select.wide .list {
left: 0 !important;
right: 0 !important; }
.nice-select.right {
float: right; }
.nice-select.right .list {
left: auto;
right: 0; }
.nice-select.small {
font-size: 12px;
height: 36px;
line-height: 34px; }
.nice-select.small:after {
height: 4px;
width: 4px; }
.nice-select.small .option {
line-height: 34px;
min-height: 34px; }
.nice-select .list {
background-color: #fff;
border-radius: 5px;
box-shadow: 0 0 0 1px rgba(68, 68, 68, 0.11);
box-sizing: border-box;
margin-top: 4px;
opacity: 0;
overflow: hidden;
padding: 0;
pointer-events: none;
position: absolute;
top: 100%;
left: 0;
-webkit-transform-origin: 50% 0;
-ms-transform-origin: 50% 0;
transform-origin: 50% 0;
-webkit-transform: scale(0.75) translateY(-21px);
-ms-transform: scale(0.75) translateY(-21px);
transform: scale(0.75) translateY(-21px);
-webkit-transition: all 0.2s cubic-bezier(0.5, 0, 0, 1.25), opacity 0.15s ease-out;
transition: all 0.2s cubic-bezier(0.5, 0, 0, 1.25), opacity 0.15s ease-out;
z-index: 9; }
.nice-select .list:hover .option:not(:hover) {
background-color: transparent !important; }
.nice-select .option {
cursor: pointer;
font-weight: 400;
line-height: 40px;
list-style: none;
min-height: 40px;
outline: none;
padding-left: 18px;
padding-right: 29px;
text-align: left;
-webkit-transition: all 0.2s;
transition: all 0.2s; }
.nice-select .option:hover, .nice-select .option.focus, .nice-select .option.selected.focus {
background-color: #f6f6f6; }
.nice-select .option.selected {
font-weight: bold; }
.nice-select .option.disabled {
background-color: transparent;
color: #999;
cursor: default; }
.no-csspointerevents .nice-select .list {
display: none; }
.no-csspointerevents .nice-select.open .list {
display: block; }

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,271 @@
/*!
* jQuery UI CSS Framework 1.13.2
* http://jqueryui.com
*
* Copyright jQuery Foundation and other contributors
* Released under the MIT license.
* http://jquery.org/license
*
* http://api.jqueryui.com/category/theming/
*/
/* Layout helpers
----------------------------------*/
.ui-helper-hidden {
display: none;
}
.ui-helper-hidden-accessible {
border: 0;
clip: rect(0 0 0 0);
height: 1px;
margin: -1px;
overflow: hidden;
padding: 0;
position: absolute;
width: 1px;
}
.ui-helper-reset {
margin: 0;
padding: 0;
border: 0;
outline: 0;
line-height: 1.3;
text-decoration: none;
font-size: 100%;
list-style: none;
}
.ui-helper-clearfix:before,
.ui-helper-clearfix:after {
content: "";
display: table;
border-collapse: collapse;
}
.ui-helper-clearfix:after {
clear: both;
}
.ui-helper-zfix {
width: 100%;
height: 100%;
top: 0;
left: 0;
position: absolute;
opacity: 0;
-ms-filter: "alpha(opacity=0)"; /* support: IE8 */
}
.ui-front {
z-index: 100;
}
/* Interaction Cues
----------------------------------*/
.ui-state-disabled {
cursor: default !important;
pointer-events: none;
}
/* Icons
----------------------------------*/
.ui-icon {
display: inline-block;
vertical-align: middle;
margin-top: -.25em;
position: relative;
text-indent: -99999px;
overflow: hidden;
background-repeat: no-repeat;
}
.ui-widget-icon-block {
left: 50%;
margin-left: -8px;
display: block;
}
/* Misc visuals
----------------------------------*/
/* Overlays */
.ui-widget-overlay {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
.ui-datepicker {
width: 17em;
padding: .2em .2em 0;
display: none;
}
.ui-datepicker .ui-datepicker-header {
position: relative;
padding: .2em 0;
}
.ui-datepicker .ui-datepicker-prev,
.ui-datepicker .ui-datepicker-next {
position: absolute;
top: 2px;
width: 1.8em;
height: 1.8em;
}
.ui-datepicker .ui-datepicker-prev-hover,
.ui-datepicker .ui-datepicker-next-hover {
top: 1px;
}
.ui-datepicker .ui-datepicker-prev {
left: 2px;
}
.ui-datepicker .ui-datepicker-next {
right: 2px;
}
.ui-datepicker .ui-datepicker-prev-hover {
left: 1px;
}
.ui-datepicker .ui-datepicker-next-hover {
right: 1px;
}
.ui-datepicker .ui-datepicker-prev span,
.ui-datepicker .ui-datepicker-next span {
display: block;
position: absolute;
left: 50%;
margin-left: -8px;
top: 50%;
margin-top: -8px;
}
.ui-datepicker .ui-datepicker-title {
margin: 0 2.3em;
line-height: 1.8em;
text-align: center;
}
.ui-datepicker .ui-datepicker-title select {
font-size: 1em;
margin: 1px 0;
}
.ui-datepicker select.ui-datepicker-month,
.ui-datepicker select.ui-datepicker-year {
width: 45%;
}
.ui-datepicker table {
width: 100%;
font-size: .9em;
border-collapse: collapse;
margin: 0 0 .4em;
}
.ui-datepicker th {
padding: .7em .3em;
text-align: center;
font-weight: bold;
border: 0;
}
.ui-datepicker td {
border: 0;
padding: 1px;
}
.ui-datepicker td span,
.ui-datepicker td a {
display: block;
padding: .2em;
text-align: right;
text-decoration: none;
}
.ui-datepicker .ui-datepicker-buttonpane {
background-image: none;
margin: .7em 0 0 0;
padding: 0 .2em;
border-left: 0;
border-right: 0;
border-bottom: 0;
}
.ui-datepicker .ui-datepicker-buttonpane button {
float: right;
margin: .5em .2em .4em;
cursor: pointer;
padding: .2em .6em .3em .6em;
width: auto;
overflow: visible;
}
.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current {
float: left;
}
/* with multiple calendars */
.ui-datepicker.ui-datepicker-multi {
width: auto;
}
.ui-datepicker-multi .ui-datepicker-group {
float: left;
}
.ui-datepicker-multi .ui-datepicker-group table {
width: 95%;
margin: 0 auto .4em;
}
.ui-datepicker-multi-2 .ui-datepicker-group {
width: 50%;
}
.ui-datepicker-multi-3 .ui-datepicker-group {
width: 33.3%;
}
.ui-datepicker-multi-4 .ui-datepicker-group {
width: 25%;
}
.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,
.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header {
border-left-width: 0;
}
.ui-datepicker-multi .ui-datepicker-buttonpane {
clear: left;
}
.ui-datepicker-row-break {
clear: both;
width: 100%;
font-size: 0;
}
/* RTL support */
.ui-datepicker-rtl {
direction: rtl;
}
.ui-datepicker-rtl .ui-datepicker-prev {
right: 2px;
left: auto;
}
.ui-datepicker-rtl .ui-datepicker-next {
left: 2px;
right: auto;
}
.ui-datepicker-rtl .ui-datepicker-prev:hover {
right: 1px;
left: auto;
}
.ui-datepicker-rtl .ui-datepicker-next:hover {
left: 1px;
right: auto;
}
.ui-datepicker-rtl .ui-datepicker-buttonpane {
clear: right;
}
.ui-datepicker-rtl .ui-datepicker-buttonpane button {
float: left;
}
.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,
.ui-datepicker-rtl .ui-datepicker-group {
float: right;
}
.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,
.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header {
border-right-width: 0;
border-left-width: 1px;
}
/* Icons */
.ui-datepicker .ui-icon {
display: block;
text-indent: -99999px;
overflow: hidden;
background-repeat: no-repeat;
left: .5em;
top: .3em;
}

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,136 @@
.timepicker {
position: absolute;
z-index: 1000;
float: left;
width: 160px;
padding-bottom: 5px;
margin: 2px 0 0 0;
list-style: none;
font-size: 14px;
text-align: center;
background-color: #fff;
border: 1px solid #ccc;
border: 1px solid rgba(0, 0, 0, 0.15);
border-radius: 4px;
-webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
background-clip: padding-box;
}
.timepicker:before,
.timepicker:after {
content: '';
border-top: 0;
display: inline-block;
position: absolute;
}
.timepicker .icon-up {
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAeCAYAAABuUU38AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1MjMyRjZENzU1NjIxMUU3OTkwMjhDMDYyNDEwRUNBQSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1MjMyRjZEODU1NjIxMUU3OTkwMjhDMDYyNDEwRUNBQSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjUyMzJGNkQ1NTU2MjExRTc5OTAyOEMwNjI0MTBFQ0FBIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjUyMzJGNkQ2NTU2MjExRTc5OTAyOEMwNjI0MTBFQ0FBIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+GdMqPQAAAZdJREFUeNrUmMlKxEAQhlsE8eQSFyTxWTx5Vhx1xn3XkydvvoMgCOJV8CUUd8UFL+rFN/AV3B39GybQBDNWdTpJpeCDQKqT+ajqJaNUulEG52Af9KuCxiKogp8a76BSNIkVQ8DkE4wXXcKUmZAusRxppzg+JFdmiSAQlRkruoTZZhVJElVLkbAyucssJJQQsTTPO5IwK1POY7P7Jv7AQ3AnUYbTTlqiGXSDB0abjUqSOAItxlhfigxnThxHJGxkdJuNuJaYY8yJkxiJMALwyKiMM5lZpkQr4ZkBozJvYDhLiVPQxni2z5Qp2UrMgC/ii86YEraVGeK+YDoDCRuZV47MFKOd9Gdsu4N56DNlBikS1EpcAM/hyhi4kuFIXDqqRDR6k8pMMiU8lV74jH3mBQyEA0uCJGzaTMv06UFPxAFXoCPDEzZHRh9O1TNRwlPZB/U4c6+TN/9JugadOX6FUmTWdGIT2ItJuAVdAv4XqCezDRrDRH2xG0m4ESJRb2ne+iuxAazXJs5GSvtE0ugBO+AArJo3fgUYAKf2/v/Eyp9gAAAAAElFTkSuQmCC);
}
.timepicker .icon-down {
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAeCAYAAABuUU38AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo2MzU2NEE0ODU1NjIxMUU3ODcxRUQxRjVDQkRBMzYxNSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo2MzU2NEE0OTU1NjIxMUU3ODcxRUQxRjVDQkRBMzYxNSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjYzNTY0QTQ2NTU2MjExRTc4NzFFRDFGNUNCREEzNjE1IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjYzNTY0QTQ3NTU2MjExRTc4NzFFRDFGNUNCREEzNjE1Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+NuD5CwAAAaNJREFUeNrUmMlKxEAQhlsE8aSOG5LxWTx5Vhx1dNz3kydvvoMgCOJV8CUUd8UFL44X38BXcBl1xr9gGjSYpCtJd2oKPphDpdPfVHV3EqX+xjo4AnugT8mLHNgCx2ATNP2XtANqvyiDfkESPeDON8d90KwT6MeuL0HzBPJCJO4D5ngAWihpIyBBikw3uI2Y4zYlPkYkZSnTCW4M5vei6gunZkDZsUyXoQTxTBcMgFdhMlSJa8M5fYGCvnCIIUNt5gmSmPYPMAzeGJWxsTXnmBIzQQNxZfIpV+IqDYm4Ml5Klbg0vOe3iYSOEYeV6QAXjErMcm9AMu+WZbgSc3H/rQJTxmNKnDPaaT5p/45aqEw7OHMpoWMMfDDOmTCZNqbEQtp7PMlUErYZSZwajlEFi7ZO3XFGZfwyJHHCkFiy/RzElekFrYyHUycSOoqMNntgSNCaWHb9rsCRyXxNRMUEo83EtFOYTCWhxIqULxwk8xlTRIyEjskYlREnoaNkKEPttKqEx5RBm62pBolSiEzDSARtzdUsDru0YhAc1l9jizZv9CPAACzc/v9R+XQaAAAAAElFTkSuQmCC);
}
.timepicker .icon-up,
.timepicker .icon-down {
display: inline-block;
width: 55px;
height: 38px;
background-position: center center;
background-repeat: no-repeat;
background-size: 45%;
opacity: .4;
cursor: pointer;
}
.timepicker .icon-up:hover,
.timepicker .icon-down:hover {
opacity: .7;
}
.timepicker:before {
top: -7px;
left: 6px;
border-left: 7px solid transparent;
border-right: 7px solid transparent;
border-bottom: 7px solid rgba(0, 0, 0, 0.15);
border-bottom-color: rgba(0, 0, 0, 0.2);
}
.timepicker:after {
top: -6px;
left: 7px;
border-left: 6px solid transparent;
border-right: 6px solid transparent;
border-bottom: 6px solid #fff;
}
.timepicker .title {
padding: 10px 0 5px 0;
color: #888;
width: 100%;
cursor: default;
}
.timepicker .cell-2 {
float: left;
width: 20%;
min-height: 14px;
cursor: default;
}
.timepicker .cell-4 {
width: 40%;
float: left;
}
.timepicker .handle,
.timepicker .text {
position: relative;
}
.timepicker .chose-all {
position: relative;
margin: 0 10px 0 10px;
}
.timepicker .chose-all .text {
font: bold 18px/22px arial, sans-serif;
}
.timepicker a {
color: #aaa;
text-decoration: none;
}
.timepicker .text {
color: #666;
}
.timepicker .text a {
color: #444;
}
.timepicker .text a:active,
.timepicker .text a:focus,
.timepicker .text a:hover {
color: #222;
}
.timepicker ul {
list-style: none;
padding: 0;
margin: 0 5px;
}
.timepicker li.cell-2 {
padding: 3px 0;
cursor: pointer;
}
.timepicker li.cell-2:hover {
background: #ccc;
color: #555;
}

View File

@@ -0,0 +1,150 @@
var bstptid = "";
!(function (t, i) {
"function" == typeof define && define.amd
? define(["jquery"], i)
: "object" == typeof exports
? (module.exports = i(require("jquery")))
: (t.$ = i(t.jQuery));
})(this, function (t) {
"use strict";
var i = function (t) {
return t >= 10 ? t + "" : "0" + t;
},
e = /^[0-9]{1,2}:[0-9]{1,2}$/,
s = {},
n = function () {},
o = new Array(24)
.fill(null)
.map(function (t, e) {
var s = i(e);
return '<li class="cell-2 js-hour-cell" data-val="' + s + '">' + s + "</li>";
})
.join(""),
c = new Array(12)
.fill(null)
.map(function (t, e) {
var s = i(5 * e);
return '<li class="cell-2 js-minute-cell" data-val="' + s + '">' + s + "</li>";
})
.join(""),
l = t(
'<div class="timepicker">\t\t<div v-show class="title">시간을 선택하세요</div>\t\t\t<div class="chose-all">\t\t\t\t<div class="handle">\t\t\t\t\t<div class="cell-4"><a class="icon-up js-plus-houer"></a></div>\t\t\t\t\t<div class="cell-2"></div>\t\t\t\t\t<div class="cell-4"><a class="icon-up js-plus-minute"></a></div>\t\t\t\t</div>\t\t\t\t<div class="text">\t\t\t\t\t<div class="cell-4"><a class="js-hour-show"></a></div>\t\t\t\t\t<div class="cell-2">:</div>\t\t\t\t\t<div class="cell-4"><a class="js-minute-show" title="시간을 선택하세요"></a></div>\t\t\t\t</div>\t\t\t\t<div class="handle">\t\t\t\t\t<div class="cell-4"><a class="icon-down js-minus-houer"></a></div>\t\t\t\t\t<div class="cell-2"></div>\t\t\t\t\t<div class="cell-4"><a class="icon-down js-minus-minute"></a></div>\t\t\t\t</div>\t\t\t</div>\t\t\t<div class="chose-hour">\t\t\t\t<ul class="handle">' +
o +
'</ul>\t\t\t</div>\t\t\t<div class="chose-minute">\t\t\t\t<ul class="handle">' +
c +
"</ul>\t\t\t</div>\t\t</div>\t</div>"
);
return (
l.find("a").attr("href", "javascript:void(0);"),
(s.content = l),
(s.title = l.find(".title")),
(s.choseAll = l.find(".chose-all")),
(s.choseMinute = l.find(".chose-minute")),
(s.choseHour = l.find(".chose-hour")),
(s.hourShow = l.find(".js-hour-show")),
(s.minuteShow = l.find(".js-minute-show")),
(s.update = function () {
return (
bstptid.val(i(this.hour) + ":" + i(this.minute)),
this.minuteShow.text(i(this.minute)),
this.hourShow.text(i(this.hour)),
this.inputTarget.$timepickerUpdate(),
this
);
}),
(s.bindEvent = function () {
var t = this;
t.hasBind ||
((t.hasBind = !0),
this.content
.on("click", ".js-minus-minute", function () {
t.minute <= 0 ? (t.minute = 59) : t.minute--, t.update();
})
.on("click", ".js-plus-minute", function () {
t.minute >= 59 ? (t.minute = 0) : t.minute++, t.update();
})
.on("click", ".js-plus-houer", function () {
t.hour >= 23 ? (t.hour = 0) : t.hour++, t.update();
})
.on("click", ".js-minus-houer", function () {
t.hour <= 0 ? (t.hour = 23) : t.hour--, t.update();
})
.on("click", ".js-minute-cell", function () {
(t.minute = +this.getAttribute("data-val")),
t.update(),
t.choseMinute.hide(),
t.choseAll.show(),
t.title.text("시간을 선택하세요");
})
.on("click", ".js-hour-cell", function () {
(t.hour = +this.getAttribute("data-val")),
t.update(),
t.choseHour.hide(),
t.choseAll.show(),
t.title.text("시간을 선택하세요");
})
.on("click", function (t) {
t.stopPropagation();
}),
t.hourShow.on("click", function () {
t.choseAll.hide(), t.choseHour.show(), t.title.text("시간을 선택하세요");
}),
t.minuteShow.on("click", function () {
t.choseAll.hide(), t.choseMinute.show(), t.title.text("시간을 선택하세요");
}));
}),
(t.timepicker = s),
(t.fn.timepicker = function (i) {
var s,
o,
c = this,
l = t.timepicker,
u = t("html");
if (this[0].nodeName && "INPUT" === this[0].nodeName)
return (
(this.$timepickerUpdate = n),
this.off("click").on("click", function (i) {
var n = this.value;
bstptid = $(this);
e.test(n)
? ((n = n.split(":")), (s = +n[0]), (o = +n[1]))
: ((n = new Date()), (s = 0), (o = 0));
if ($(this).closest("table").length > 0) {
var pos = $(this).offset();
var h = pos.left + "px",
a = pos.top + this.offsetHeight + "px";
} else {
var h = this.offsetLeft + "px",
a = this.offsetTop + this.offsetHeight + "px";
}
(l.inputTarget = c),
l.content.appendTo(this.offsetParent).css({
left: h,
top: a,
}),
(l.hour = s),
(l.minute = o),
l.choseAll.show(),
l.choseHour.hide(),
l.choseMinute.hide(),
l.update(),
t.timepicker.bindEvent(),
i.stopPropagation(),
u.one("click", function () {
l.content.off().remove(), (l.hasBind = !1);
});
}),
this.off("keydown").on("keydown", function () {
return !1;
}),
(this.update = function (i) {
t.isFunction(i)
? (this.$timepickerUpdate = i)
: (this.$timepickerUpdate = n);
}),
this
);
}),
t
);
});