first commit
This commit is contained in:
commit
8f45044411
1172 files changed
+329978
No files matched your search
Vendored
+53
@@ -0,0 +1,53 @@
|
||||
|
||||
* {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
/* css3盒子模型 */
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
em,
|
||||
i {
|
||||
font-style: normal
|
||||
}
|
||||
|
||||
|
||||
|
||||
li {
|
||||
list-style: none
|
||||
}
|
||||
|
||||
img {
|
||||
/* border 0 照顾低版本浏览器 如果 图片外面包含了链接会有边框的问题 */
|
||||
border: 0;
|
||||
|
||||
vertical-align: middle
|
||||
}
|
||||
|
||||
button {
|
||||
|
||||
cursor: pointer
|
||||
}
|
||||
|
||||
a {
|
||||
color: #666;
|
||||
text-decoration: none
|
||||
}
|
||||
|
||||
button,
|
||||
input {
|
||||
font-family: Microsoft YaHei, Heiti SC, tahoma, arial, Hiragino Sans GB, "\5B8B\4F53", sans-serif;
|
||||
border: 0;
|
||||
outline: none;
|
||||
}
|
||||
|
||||
body {
|
||||
-webkit-font-smoothing: antialiased;
|
||||
background-color: #fff;
|
||||
font: 14px/1.5 Microsoft YaHei, Heiti SC, tahoma, arial, Hiragino Sans GB, "\5B8B\4F53", sans-serif;
|
||||
}
|
||||
|
||||
.hide,
|
||||
.none {
|
||||
display: none
|
||||
}
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
/*!
|
||||
* Bootswatch v5.1.0
|
||||
* Homepage: https://bootswatch.com
|
||||
* Copyright 2012-2021 Thomas Park
|
||||
* Licensed under MIT
|
||||
* Based on Bootstrap
|
||||
*//*!
|
||||
* Bootstrap v5.1.0 (https://getbootstrap.com/)
|
||||
* Copyright 2011-2021 The Bootstrap Authors
|
||||
* Copyright 2011-2021 Twitter, Inc.
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
||||
*/:root{--bs-blue:#4582ec;--bs-indigo:#6610f2;--bs-purple:#6f42c1;--bs-pink:#e83e8c;--bs-red:#d9534f;--bs-orange:#fd7e14;--bs-yellow:#f0ad4e;--bs-green:#02b875;--bs-teal:#20c997;--bs-cyan:#17a2b8;--bs-white:#fff;--bs-gray:#868e96;--bs-gray-dark:#343a40;--bs-gray-100:#f8f9fa;--bs-gray-200:#e9ecef;--bs-gray-300:#ddd;--bs-gray-400:#ced4da;--bs-gray-500:#adb5bd;--bs-gray-600:#868e96;--bs-gray-700:#495057;--bs-gray-800:#343a40;--bs-gray-900:#212529;--bs-primary:#4582ec;--bs-secondary:#adb5bd;--bs-success:#02b875;--bs-info:#17a2b8;--bs-warning:#f0ad4e;--bs-danger:#d9534f;--bs-light:#f8f9fa;--bs-dark:#343a40;--bs-primary-rgb:69,130,236;--bs-secondary-rgb:173,181,189;--bs-success-rgb:2,184,117;--bs-info-rgb:23,162,184;--bs-warning-rgb:240,173,78;--bs-danger-rgb:217,83,79;--bs-light-rgb:248,249,250;--bs-dark-rgb:52,58,64;--bs-white-rgb:255,255,255;--bs-black-rgb:0,0,0;--bs-body-rgb:52,58,64;--bs-font-sans-serif:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--bs-font-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--bs-gradient:linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));--bs-body-font-family:var(--bs-font-sans-serif);--bs-body-font-size:1.1rem;--bs-body-font-weight:400;--bs-body-line-height:1.5;--bs-body-color:#343a40;--bs-body-bg:#fff}*,::after,::before{box-sizing:border-box}@media (prefers-reduced-motion:no-preference){:root{scroll-behavior:smooth}}body{margin:0;font-family:var(--bs-body-font-family);font-size:var(--bs-body-font-size);font-weight:var(--bs-body-font-weight);line-height:var(--bs-body-line-height);color:var(--bs-body-color);text-align:var(--bs-body-text-align);background-color:var(--bs-body-bg);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}hr{margin:1rem 0;color:inherit;background-color:currentColor;border:0;opacity:.25}hr:not([size]){height:1px}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem;font-weight:700;line-height:1.2}.h1,h1{font-size:calc(1.4rem + 1.8vw)}@media (min-width:1200px){.h1,h1{font-size:2.75rem}}.h2,h2{font-size:calc(1.345rem + 1.14vw)}@media (min-width:1200px){.h2,h2{font-size:2.2rem}}.h3,h3{font-size:calc(1.3175rem + .81vw)}@media (min-width:1200px){.h3,h3{font-size:1.925rem}}.h4,h4{font-size:calc(1.29rem + .48vw)}@media (min-width:1200px){.h4,h4{font-size:1.65rem}}.h5,h5{font-size:calc(1.2625rem + .15vw)}@media (min-width:1200px){.h5,h5{font-size:1.375rem}}.h6,h6{font-size:1.1rem}p{margin-top:0;margin-bottom:1rem}abbr[data-bs-original-title],abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-left:2rem}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}.small,small{font-size:.875em}.mark,mark{padding:.2em;background-color:#fcf8e3}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#4582ec;text-decoration:underline}a:hover{color:#3768bd}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:var(--bs-font-monospace);font-size:1em;direction:ltr;unicode-bidi:bidi-override}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:.875em}pre code{font-size:inherit;color:inherit;word-break:normal}code{font-size:.875em;color:#e83e8c;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:.875em;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:1em;font-weight:700}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:#868e96;text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}tbody,td,tfoot,th,thead,tr{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]::-webkit-calendar-picker-indicator{display:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;font-sizeLine truncated
|
||||
Vendored
+72
@@ -0,0 +1,72 @@
|
||||
@font-face {
|
||||
font-family: 'iconfont';
|
||||
src: url('../fonts/iconfont.woff2?t=1631608872177') format('woff2'),
|
||||
url('../fonts/iconfont.woff?t=1631608872177') format('woff'),
|
||||
url('../fonts/iconfont.ttf?t=1631608872177') format('truetype');
|
||||
}
|
||||
.ali-icon {
|
||||
font-family: "iconfont" !important;
|
||||
font-style: normal;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
}
|
||||
|
||||
.fl {
|
||||
float: left;
|
||||
}
|
||||
.fr {
|
||||
float: right;
|
||||
}
|
||||
|
||||
/* 页面装载 */
|
||||
.page-wrapper {
|
||||
background-color: #fff;
|
||||
}
|
||||
|
||||
.header-top {
|
||||
background-color: #f1f1f1;
|
||||
border-bottom: 1px solid #dadada;
|
||||
-webkit-box-shadow: 0 -1px 3px rgb(0 0 0 / 3%) inset;
|
||||
box-shadow: 0 -1px 3px rgb(0 0 0 / 3%) inset;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.header-top-right-btns {
|
||||
float: right;
|
||||
text-align: center;
|
||||
font-size: 0;
|
||||
}
|
||||
|
||||
.header-top-right-btns .btn-group>button {
|
||||
padding: 8px 10px;
|
||||
margin: 0;
|
||||
text-align: center;
|
||||
color: #999;
|
||||
font-size: 14px;
|
||||
border-right: 1px solid #e3e3e3;
|
||||
border-left: 1px solid transparent;
|
||||
}
|
||||
|
||||
.btn-group>button:hover {
|
||||
color: #e84c3d;
|
||||
background-color: #fafafa;
|
||||
border-right-color: #e3e3e3;
|
||||
}
|
||||
|
||||
.header-top-right-btns .btn-group:last-child>button {
|
||||
border-right-color: transparent;
|
||||
}
|
||||
|
||||
.header {
|
||||
padding: 20px 0;
|
||||
border-bottom: 1px solid #eaeaea;
|
||||
background: #fff;
|
||||
}
|
||||
|
||||
.logo img {
|
||||
height: 52px;
|
||||
}
|
||||
|
||||
.footer {
|
||||
background-color:transparent;
|
||||
}
|
||||
Vendored
+51
@@ -0,0 +1,51 @@
|
||||
.recommend p {
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.category {
|
||||
padding: 40px 0;
|
||||
}
|
||||
|
||||
.separator {
|
||||
display: block;
|
||||
width: 60px;
|
||||
height: 5px;
|
||||
margin: 15px auto 15px;
|
||||
background-color: #cccccc;
|
||||
position: relative;
|
||||
border: 1px solid #cccccc;
|
||||
}
|
||||
|
||||
.separator:after {
|
||||
width: 30px;
|
||||
height: 5px;
|
||||
background: #333333;
|
||||
position: absolute;
|
||||
top: -1px;
|
||||
left: -1px;
|
||||
content: "";
|
||||
}
|
||||
|
||||
.category-menus li {
|
||||
display: inline-block;
|
||||
margin: 4px;
|
||||
}
|
||||
|
||||
.goods-buy {
|
||||
line-height: 40px;
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
|
||||
.goods-introduction-cate {
|
||||
display: -webkit-box;
|
||||
overflow: hidden;
|
||||
-webkit-line-clamp: 2;
|
||||
-webkit-box-orient: vertical;
|
||||
}
|
||||
|
||||
|
||||
|
||||
.buy-form label {
|
||||
font-size: 16px;
|
||||
}
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
+361
@@ -0,0 +1,361 @@
|
||||
/**
|
||||
* Author and copyright: Stefan Haack (https://shaack.com)
|
||||
* Repository: https://github.com/shaack/bootstrap-input-spinner
|
||||
* License: MIT, see file 'LICENSE'
|
||||
*/
|
||||
|
||||
;(function ($) {
|
||||
"use strict"
|
||||
|
||||
// the default editor for parsing and rendering
|
||||
var I18nEditor = function (props, element) {
|
||||
var locale = props.locale || "en-US"
|
||||
|
||||
this.parse = function (customFormat) {
|
||||
var numberFormat = new Intl.NumberFormat(locale)
|
||||
var thousandSeparator = numberFormat.format(11111).replace(/1/g, '') || '.'
|
||||
var decimalSeparator = numberFormat.format(1.1).replace(/1/g, '')
|
||||
return parseFloat(customFormat
|
||||
.replace(new RegExp(' ', 'g'), '')
|
||||
.replace(new RegExp('\\' + thousandSeparator, 'g'), '')
|
||||
.replace(new RegExp('\\' + decimalSeparator), '.')
|
||||
)
|
||||
}
|
||||
|
||||
this.render = function (number) {
|
||||
var decimals = parseInt(element.getAttribute("data-decimals")) || 0
|
||||
var digitGrouping = !(element.getAttribute("data-digit-grouping") === "false")
|
||||
var numberFormat = new Intl.NumberFormat(locale, {
|
||||
minimumFractionDigits: decimals,
|
||||
maximumFractionDigits: decimals,
|
||||
useGrouping: digitGrouping
|
||||
})
|
||||
return numberFormat.format(number)
|
||||
}
|
||||
}
|
||||
|
||||
var triggerKeyPressed = false
|
||||
var originalVal = $.fn.val
|
||||
$.fn.val = function (value) {
|
||||
if (arguments.length >= 1) {
|
||||
for (var i = 0; i < this.length; i++) {
|
||||
if (this[i]["bootstrap-input-spinner"] && this[i].setValue) {
|
||||
this[i].setValue(value)
|
||||
}
|
||||
}
|
||||
}
|
||||
return originalVal.apply(this, arguments)
|
||||
}
|
||||
|
||||
$.fn.inputSpinner = function (methodOrProps) {
|
||||
|
||||
if (methodOrProps === "destroy") {
|
||||
this.each(function () {
|
||||
if (this["bootstrap-input-spinner"]) {
|
||||
this.destroyInputSpinner()
|
||||
} else {
|
||||
console.warn("element", this, "is no bootstrap-input-spinner")
|
||||
}
|
||||
})
|
||||
return this
|
||||
}
|
||||
|
||||
var props = {
|
||||
decrementButton: "<strong>−</strong>", // button text
|
||||
incrementButton: "<strong>+</strong>", // ..
|
||||
groupClass: "", // css class of the resulting input-group
|
||||
buttonsClass: "btn-outline-secondary",
|
||||
buttonsWidth: "2.5rem",
|
||||
textAlign: "center", // alignment of the entered number
|
||||
autoDelay: 500, // ms threshold before auto value change
|
||||
autoInterval: 50, // speed of auto value change
|
||||
buttonsOnly: false, // set this `true` to disable the possibility to enter or paste the number via keyboard
|
||||
keyboardStepping: true, // set this to `false` to disallow the use of the up and down arrow keys to step
|
||||
locale: navigator.language, // the locale, per default detected automatically from the browser
|
||||
editor: I18nEditor, // the editor (parsing and rendering of the input)
|
||||
template: // the template of the input
|
||||
'<div class="input-group ${groupClass}">' +
|
||||
'<button style="min-width: ${buttonsWidth}" class="btn btn-decrement ${buttonsClass} btn-minus" type="button">${decrementButton}</button>' +
|
||||
'<input type="text" inputmode="decimal" style="text-align: ${textAlign}" class="form-control form-control-text-input"/>' +
|
||||
'<button style="min-width: ${buttonsWidth}" class="btn btn-increment ${buttonsClass} btn-plus" type="button">${incrementButton}</button>' +
|
||||
'</div>'
|
||||
}
|
||||
|
||||
for (var option in methodOrProps) {
|
||||
// noinspection JSUnfilteredForInLoop
|
||||
props[option] = methodOrProps[option]
|
||||
}
|
||||
|
||||
var html = props.template
|
||||
.replace(/\${groupClass}/g, props.groupClass)
|
||||
.replace(/\${buttonsWidth}/g, props.buttonsWidth)
|
||||
.replace(/\${buttonsClass}/g, props.buttonsClass)
|
||||
.replace(/\${decrementButton}/g, props.decrementButton)
|
||||
.replace(/\${incrementButton}/g, props.incrementButton)
|
||||
.replace(/\${textAlign}/g, props.textAlign)
|
||||
|
||||
this.each(function () {
|
||||
|
||||
if (this["bootstrap-input-spinner"]) {
|
||||
console.warn("element", this, "is already a bootstrap-input-spinner")
|
||||
} else {
|
||||
|
||||
var $original = $(this)
|
||||
$original[0]["bootstrap-input-spinner"] = true
|
||||
$original.hide()
|
||||
$original[0].inputSpinnerEditor = new props.editor(props, this)
|
||||
|
||||
var autoDelayHandler = null
|
||||
var autoIntervalHandler = null
|
||||
|
||||
var $inputGroup = $(html)
|
||||
var $buttonDecrement = $inputGroup.find(".btn-decrement")
|
||||
var $buttonIncrement = $inputGroup.find(".btn-increment")
|
||||
var $input = $inputGroup.find("input")
|
||||
var $label = $("label[for='" + $original.attr("id") + "']")
|
||||
if (!$label[0]) {
|
||||
$label = $original.closest("label")
|
||||
}
|
||||
|
||||
var min = null
|
||||
var max = null
|
||||
var step = null
|
||||
|
||||
updateAttributes()
|
||||
|
||||
var value = parseFloat($original[0].value)
|
||||
|
||||
var prefix = $original.attr("data-prefix") || ""
|
||||
var suffix = $original.attr("data-suffix") || ""
|
||||
|
||||
if (prefix) {
|
||||
var prefixElement = $('<span class="input-group-text">' + prefix + '</span>')
|
||||
$inputGroup.find("input").before(prefixElement)
|
||||
}
|
||||
if (suffix) {
|
||||
var suffixElement = $('<span class="input-group-text">' + suffix + '</span>')
|
||||
$inputGroup.find("input").after(suffixElement)
|
||||
}
|
||||
|
||||
$original[0].setValue = function (newValue) {
|
||||
setValue(newValue)
|
||||
}
|
||||
$original[0].destroyInputSpinner = function () {
|
||||
destroy()
|
||||
}
|
||||
|
||||
var observer = new MutationObserver(function () {
|
||||
updateAttributes()
|
||||
setValue(value, true)
|
||||
})
|
||||
observer.observe($original[0], {attributes: true})
|
||||
|
||||
$original.after($inputGroup)
|
||||
|
||||
setValue(value)
|
||||
|
||||
$input.on("paste input change focusout", function (event) {
|
||||
var newValue = $input[0].value
|
||||
var focusOut = event.type === "focusout"
|
||||
newValue = $original[0].inputSpinnerEditor.parse(newValue)
|
||||
setValue(newValue, focusOut)
|
||||
dispatchEvent($original, event.type)
|
||||
}).on("keydown", function (event) {
|
||||
if (props.keyboardStepping) {
|
||||
if (event.which === 38) { // up arrow pressed
|
||||
event.preventDefault()
|
||||
if (!$buttonDecrement.prop("disabled")) {
|
||||
stepHandling(step)
|
||||
}
|
||||
} else if (event.which === 40) { // down arrow pressed
|
||||
event.preventDefault()
|
||||
if (!$buttonIncrement.prop("disabled")) {
|
||||
stepHandling(-step)
|
||||
}
|
||||
}
|
||||
}
|
||||
}).on("keyup", function (event) {
|
||||
// up/down arrow released
|
||||
if (props.keyboardStepping && (event.which === 38 || event.which === 40)) {
|
||||
event.preventDefault()
|
||||
resetTimer()
|
||||
}
|
||||
})
|
||||
|
||||
onPointerDown($buttonDecrement[0], function () {
|
||||
if (!$buttonDecrement.prop("disabled")) {
|
||||
stepHandling(-step)
|
||||
}
|
||||
})
|
||||
onPointerDown($buttonIncrement[0], function () {
|
||||
if (!$buttonIncrement.prop("disabled")) {
|
||||
stepHandling(step)
|
||||
}
|
||||
})
|
||||
onPointerUp(document.body, function () {
|
||||
resetTimer()
|
||||
})
|
||||
}
|
||||
|
||||
function setValue(newValue, updateInput) {
|
||||
if (updateInput === undefined) {
|
||||
updateInput = true
|
||||
}
|
||||
if (isNaN(newValue) || newValue === "") {
|
||||
$original[0].value = ""
|
||||
if (updateInput) {
|
||||
$input[0].value = ""
|
||||
}
|
||||
value = NaN
|
||||
} else {
|
||||
newValue = parseFloat(newValue)
|
||||
newValue = Math.min(Math.max(newValue, min), max)
|
||||
// newValue = Math.round(newValue * Math.pow(10, decimals)) / Math.pow(10, decimals)
|
||||
$original[0].value = newValue
|
||||
if (updateInput) {
|
||||
// $input[0].value = numberFormat.format(newValue)
|
||||
$input[0].value = $original[0].inputSpinnerEditor.render(newValue)
|
||||
}
|
||||
value = newValue
|
||||
}
|
||||
}
|
||||
|
||||
function destroy() {
|
||||
$original.prop("required", $input.prop("required"))
|
||||
observer.disconnect()
|
||||
resetTimer()
|
||||
$input.off("paste input change focusout")
|
||||
$inputGroup.remove()
|
||||
$original.show()
|
||||
$original[0]["bootstrap-input-spinner"] = undefined
|
||||
if ($label[0]) {
|
||||
$label.attr("for", $original.attr("id"))
|
||||
}
|
||||
}
|
||||
|
||||
function dispatchEvent($element, type) {
|
||||
if (type) {
|
||||
setTimeout(function () {
|
||||
var event
|
||||
if (typeof (Event) === 'function') {
|
||||
event = new Event(type, {bubbles: true})
|
||||
} else { // IE
|
||||
event = document.createEvent('Event')
|
||||
event.initEvent(type, true, true)
|
||||
}
|
||||
$element[0].dispatchEvent(event)
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
function stepHandling(step) {
|
||||
calcStep(step)
|
||||
resetTimer()
|
||||
autoDelayHandler = setTimeout(function () {
|
||||
autoIntervalHandler = setInterval(function () {
|
||||
calcStep(step)
|
||||
}, props.autoInterval)
|
||||
}, props.autoDelay)
|
||||
}
|
||||
|
||||
function calcStep(step) {
|
||||
if (isNaN(value)) {
|
||||
value = 0
|
||||
}
|
||||
setValue(Math.round(value / step) * step + step)
|
||||
dispatchEvent($original, "input")
|
||||
dispatchEvent($original, "change")
|
||||
}
|
||||
|
||||
function resetTimer() {
|
||||
clearTimeout(autoDelayHandler)
|
||||
clearTimeout(autoIntervalHandler)
|
||||
}
|
||||
|
||||
function updateAttributes() {
|
||||
// copy properties from original to the new input
|
||||
if ($original.prop("required")) {
|
||||
$input.prop("required", $original.prop("required"))
|
||||
$original.removeAttr('required')
|
||||
}
|
||||
$input.prop("placeholder", $original.prop("placeholder"))
|
||||
$input.attr("inputmode", $original.attr("inputmode") || "decimal")
|
||||
var disabled = $original.prop("disabled")
|
||||
var readonly = $original.prop("readonly")
|
||||
$input.prop("disabled", disabled)
|
||||
$input.prop("readonly", readonly || props.buttonsOnly)
|
||||
$buttonIncrement.prop("disabled", disabled || readonly)
|
||||
$buttonDecrement.prop("disabled", disabled || readonly)
|
||||
if (disabled || readonly) {
|
||||
resetTimer()
|
||||
}
|
||||
var originalClass = $original.prop("class")
|
||||
var groupClass = ""
|
||||
// sizing
|
||||
if (/form-control-sm/g.test(originalClass)) {
|
||||
groupClass = "input-group-sm"
|
||||
} else if (/form-control-lg/g.test(originalClass)) {
|
||||
groupClass = "input-group-lg"
|
||||
}
|
||||
var inputClass = originalClass.replace(/form-control(-(sm|lg))?/g, "")
|
||||
$inputGroup.prop("class", "input-group " + groupClass + " " + props.groupClass)
|
||||
$input.prop("class", "form-control " + inputClass)
|
||||
|
||||
// update the main attributes
|
||||
min = isNaN($original.prop("min")) || $original.prop("min") === "" ? -Infinity : parseFloat($original.prop("min"))
|
||||
max = isNaN($original.prop("max")) || $original.prop("max") === "" ? Infinity : parseFloat($original.prop("max"))
|
||||
step = parseFloat($original.prop("step")) || 1
|
||||
if ($original.attr("hidden")) {
|
||||
$inputGroup.attr("hidden", $original.attr("hidden"))
|
||||
} else {
|
||||
$inputGroup.removeAttr("hidden")
|
||||
}
|
||||
if ($original.attr("id")) {
|
||||
$input.attr("id", $original.attr("id") + "_MP_cBdLN29i2")
|
||||
if ($label[0]) {
|
||||
$label.attr("for", $input.attr("id"))
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
return this
|
||||
}
|
||||
|
||||
function onPointerUp(element, callback) {
|
||||
element.addEventListener("mouseup", function (e) {
|
||||
callback(e)
|
||||
})
|
||||
element.addEventListener("touchend", function (e) {
|
||||
callback(e)
|
||||
})
|
||||
element.addEventListener("keyup", function (e) {
|
||||
if ((e.keyCode === 32 || e.keyCode === 13)) {
|
||||
triggerKeyPressed = false
|
||||
callback(e)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
function onPointerDown(element, callback) {
|
||||
element.addEventListener("mousedown", function (e) {
|
||||
if (e.button === 0) {
|
||||
e.preventDefault()
|
||||
callback(e)
|
||||
}
|
||||
})
|
||||
element.addEventListener("touchstart", function (e) {
|
||||
if (e.cancelable) {
|
||||
e.preventDefault()
|
||||
}
|
||||
callback(e)
|
||||
})
|
||||
element.addEventListener("keydown", function (e) {
|
||||
if ((e.keyCode === 32 || e.keyCode === 13) && !triggerKeyPressed) {
|
||||
triggerKeyPressed = true
|
||||
callback(e)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
}(jQuery))
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
/*!
|
||||
* Bootstrap v5.1.0 (https://getbootstrap.com/)
|
||||
* Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
||||
*/
|
||||
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("@popperjs/core")):"function"==typeof define&&define.amd?define(["@popperjs/core"],e):(t="undefined"!=typeof globalThis?globalThis:t||self).bootstrap=e(t.Popper)}(this,(function(t){"use strict";function e(t){if(t&&t.__esModule)return t;var e=Object.create(null);return t&&Object.keys(t).forEach((function(i){if("default"!==i){var s=Object.getOwnPropertyDescriptor(t,i);Object.defineProperty(e,i,s.get?s:{enumerable:!0,get:function(){return t[i]}})}})),e.default=t,Object.freeze(e)}var i=e(t);const s=t=>{let e=t.getAttribute("data-bs-target");if(!e||"#"===e){let i=t.getAttribute("href");if(!i||!i.includes("#")&&!i.startsWith("."))return null;i.includes("#")&&!i.startsWith("#")&&(i="#"+i.split("#")[1]),e=i&&"#"!==i?i.trim():null}return e},n=t=>{const e=s(t);return e&&document.querySelector(e)?e:null},o=t=>{const e=s(t);return e?document.querySelector(e):null},r=t=>{t.dispatchEvent(new Event("transitionend"))},a=t=>!(!t||"object"!=typeof t)&&(void 0!==t.jquery&&(t=t[0]),void 0!==t.nodeType),l=t=>a(t)?t.jquery?t[0]:t:"string"==typeof t&&t.length>0?document.querySelector(t):null,c=(t,e,i)=>{Object.keys(i).forEach(s=>{const n=i[s],o=e[s],r=o&&a(o)?"element":null==(l=o)?""+l:{}.toString.call(l).match(/\s([a-z]+)/i)[1].toLowerCase();var l;if(!new RegExp(n).test(r))throw new TypeError(`${t.toUpperCase()}: Option "${s}" provided type "${r}" but expected type "${n}".`)})},h=t=>!(!a(t)||0===t.getClientRects().length)&&"visible"===getComputedStyle(t).getPropertyValue("visibility"),d=t=>!t||t.nodeType!==Node.ELEMENT_NODE||!!t.classList.contains("disabled")||(void 0!==t.disabled?t.disabled:t.hasAttribute("disabled")&&"false"!==t.getAttribute("disabled")),u=t=>{if(!document.documentElement.attachShadow)return null;if("function"==typeof t.getRootNode){const e=t.getRootNode();return e instanceof ShadowRoot?e:null}return t instanceof ShadowRoot?t:t.parentNode?u(t.parentNode):null},g=()=>{},p=t=>{t.offsetHeight},f=()=>{const{jQuery:t}=window;return t&&!document.body.hasAttribute("data-bs-no-jquery")?t:null},_=[],m=()=>"rtl"===document.documentElement.dir,b=t=>{var e;e=()=>{const e=f();if(e){const i=t.NAME,s=e.fn[i];e.fn[i]=t.jQueryInterface,e.fn[i].Constructor=t,e.fn[i].noConflict=()=>(e.fn[i]=s,t.jQueryInterface)}},"loading"===document.readyState?(_.length||document.addEventListener("DOMContentLoaded",()=>{_.forEach(t=>t())}),_.push(e)):e()},v=t=>{"function"==typeof t&&t()},y=(t,e,i=!0)=>{if(!i)return void v(t);const s=(t=>{if(!t)return 0;let{transitionDuration:e,transitionDelay:i}=window.getComputedStyle(t);const s=Number.parseFloat(e),n=Number.parseFloat(i);return s||n?(e=e.split(",")[0],i=i.split(",")[0],1e3*(Number.parseFloat(e)+Number.parseFloat(i))):0})(e)+5;let n=!1;const o=({target:i})=>{i===e&&(n=!0,e.removeEventListener("transitionend",o),v(t))};e.addEventListener("transitionend",o),setTimeout(()=>{n||r(e)},s)},w=(t,e,i,s)=>{let n=t.indexOf(e);if(-1===n)return t[!i&&s?t.length-1:0];const o=t.length;return n+=i?1:-1,s&&(n=(n+o)%o),t[Math.max(0,Math.min(n,o-1))]},E=/[^.]*(?=\..*)\.|.*/,A=/\..*/,T=/::\d+$/,C={};let k=1;const L={mouseenter:"mouseover",mouseleave:"mouseout"},S=/^(mouseenter|mouseleave)/i,O=new Set(["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"]);function N(t,e){return e&&`${e}::${k++}`||t.uidEvent||k++}function D(t){const e=N(t);return t.uidEvent=e,C[e]=C[e]||{},C[e]}function I(t,e,i=null){const s=Object.keys(t);for(let n=0,o=s.length;n<o;n++){const o=t[s[n]];if(o.originalHandler===e&&o.delegationSelector===i)return o}return null}function x(t,e,i){const s="string"==typeof e,n=s?i:e;let o=j(t);return O.has(o)||(o=t),[s,n,o]}function P(t,e,i,s,n){if("string"!=typeof e||!t)return;if(i||(i=s,s=null),S.test(e)){const t=t=>function(e){if(!e.relatedTarget||e.relatedTarget!==e.delegateTarget&&!e.delegateTarget.contains(e.relatedTarget))return t.call(this,e)};s?s=t(s):i=t(i)}const[o,r,a]=x(e,i,s),l=D(t),c=l[a]||(l[a]={}),h=I(c,r,o?i:null);if(h)return void(h.oneOff=h.oneOff&&n);const d=N(r,e.replace(E,"")),u=o?function(t,e,i){return function s(n){const o=t.querySelectorAll(e);for(let{target:r}=n;r&&r!==this;r=r.parentNode)for(let a=o.length;a--;)if(o[a]===r)return n.delegateTarget=r,s.oneOff&&H.off(t,n.type,e,i),i.apply(r,[n]);return null}}(t,i,s):function(t,e){return function i(s){return s.delegateTarget=t,i.oneOff&&H.off(t,s.type,e),e.apply(t,[s])}}(t,i);u.delegationSelector=o?i:null,u.originalHandler=r,u.oneOff=n,u.uidEvent=d,c[d]=u,t.addLine truncated
|
||||
//# sourceMappingURL=bootstrap.min.js.map
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
/*!
|
||||
* clipboard.js v2.0.8
|
||||
* https://clipboardjs.com/
|
||||
*
|
||||
* Licensed MIT © Zeno Rocha
|
||||
*/
|
||||
!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.ClipboardJS=e():t.ClipboardJS=e()}(this,function(){return n={686:function(t,e,n){"use strict";n.d(e,{default:function(){return o}});var e=n(279),i=n.n(e),e=n(370),u=n.n(e),e=n(817),c=n.n(e);function a(t){try{return document.execCommand(t)}catch(t){return}}var f=function(t){t=c()(t);return a("cut"),t};var l=function(t){var e,n,o,r=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{container:document.body},i="";return"string"==typeof t?(e=t,n="rtl"===document.documentElement.getAttribute("dir"),(o=document.createElement("textarea")).style.fontSize="12pt",o.style.border="0",o.style.padding="0",o.style.margin="0",o.style.position="absolute",o.style[n?"right":"left"]="-9999px",n=window.pageYOffset||document.documentElement.scrollTop,o.style.top="".concat(n,"px"),o.setAttribute("readonly",""),o.value=e,o=o,r.container.appendChild(o),i=c()(o),a("copy"),o.remove()):(i=c()(t),a("copy")),i};function r(t){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}var s=function(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{},e=t.action,n=void 0===e?"copy":e,o=t.container,e=t.target,t=t.text;if("copy"!==n&&"cut"!==n)throw new Error('Invalid "action" value, use either "copy" or "cut"');if(void 0!==e){if(!e||"object"!==r(e)||1!==e.nodeType)throw new Error('Invalid "target" value, use a valid Element');if("copy"===n&&e.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if("cut"===n&&(e.hasAttribute("readonly")||e.hasAttribute("disabled")))throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes')}return t?l(t,{container:o}):e?"cut"===n?f(e):l(e,{container:o}):void 0};function d(t){return(d="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function p(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}function y(t,e){return(y=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function h(n){var o=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch(t){return!1}}();return function(){var t,e=m(n);return t=o?(t=m(this).constructor,Reflect.construct(e,arguments,t)):e.apply(this,arguments),e=this,!(t=t)||"object"!==d(t)&&"function"!=typeof t?function(t){if(void 0!==t)return t;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}(e):t}}function m(t){return(m=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}function v(t,e){t="data-clipboard-".concat(t);if(e.hasAttribute(t))return e.getAttribute(t)}var o=function(){!function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&y(t,e)}(r,i());var t,e,n,o=h(r);function r(t,e){var n;return function(t){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}(this),(n=o.call(this)).resolveOptions(e),n.listenClick(t),n}return t=r,n=[{key:"copy",value:function(t){var e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{container:document.body};return l(t,e)}},{key:"cut",value:function(t){return f(t)}},{key:"isSupported",value:function(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:["copy","cut"],t="string"==typeof t?[t]:t,e=!!document.queryCommandSupported;return t.forEach(function(t){e=e&&!!document.queryCommandSupported(t)}),e}}],(e=[{key:"resolveOptions",value:function(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};this.action="function"==typeof t.action?t.action:this.defaultAction,this.target="function"==typeof t.target?t.target:this.defaultTarget,this.text="function"==typeof t.text?t.text:this.defaultText,this.container="object"===d(t.container)?t.container:document.body}},{key:"listenClick",value:function(t){var e=this;this.listener=u()(t,"click",function(t){return e.onClick(t)})}},{key:"onClick",value:function(t){var e=t.delegateTarget||t.currentTarget,t=s({action:this.action(e),container:this.container,target:this.target(e),text:this.text(e)});this.emit(t?"success":"error",{action:this.action,text:t,trigger:e,clearSelection:function(){e&&e.focus(),documenLine truncated
|
||||
@@ -0,0 +1,2 @@
|
||||
/*! jQuery v3.6.0 | (c) OpenJS Foundation and other contributors | jquery.org/license */
|
||||
!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.6.0",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0<t&&t-1 in e)}S.fn=S.prototype={jquery:f,constructor:S,length:0,toArray:function(){return s.call(this)},get:function(e){return null==e?s.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=S.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return S.each(this,e)},map:function(n){return this.pushStack(S.map(this,function(e,t){return n.call(e,t,e)}))},slice:function(){return this.pushStack(s.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},even:function(){return this.pushStack(S.grep(this,function(e,t){return(t+1)%2}))},odd:function(){return this.pushStack(S.grep(this,function(e,t){return t%2}))},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(0<=n&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:u,sort:t.sort,splice:t.splice},S.extend=S.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||m(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)r=e[t],"__proto__"!==t&&a!==r&&(l&&r&&(S.isPlainObject(r)||(i=Array.isArray(r)))?(n=a[t],o=i&&!Array.isArray(n)?[]:i||S.isPlainObject(n)?n:{},i=!1,a[t]=S.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},S.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==o.call(e))&&(!(t=r(e))||"function"==typeof(n=v.call(t,"constructor")&&t.constructor)&&a.call(n)===l)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e,t,n){b(e,{nonce:t&&t.nonce},n)},each:function(e,t){var n,r=0;if(p(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},makeArray:function(e,t){var n=t||[];return null!=e&&(p(Object(e))?S.merge(n,"string"==typeof e?[e]:e):u.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:i.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,a=!n;i<o;i++)!t(e[i],i)!==a&&r.push(e[i]);return r},map:function(e,t,n){var r,i,o=0,a=[];if(p(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&a.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&a.push(i);return g(a)},guid:1,support:y}),"function"==typeof Symbol&&(S.fn[Symbol.iterator]=t[Symbol.iterator]),S.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){n["[object "+t+"]"]=t.toLowerCase()});var d=function(n){var e,d,b,o,i,h,f,g,w,u,l,T,C,a,E,v,s,c,y,S="sizzle"+1*new Date,p=n.document,k=0,r=0,m=ue(),x=ue(),A=ue(),N=ue(),j=function(e,t){return e===t&&(l=!0),0},D={}.hasOwnProperty,t=[],q=t.pop,L=t.push,H=t.push,O=t.slice,P=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},R="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",I="(?:\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+",W="\\["+M+"*("+I+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+I+"))|)"+M+"*\\]",F=":("+I+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+W+")*)|.*)\\)|)",B=new RegExp(M+"+","g"),$=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),_=new RegExp("^"+M+"*,"+M+"*"),z=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^Line truncated
|
||||
Reference in new issue
Block a user