ecinc-cloud-yoaemail 9.6.245 → 9.6.246
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/lib/ecyoaemail.common.js +3473 -96
- package/lib/ecyoaemail.umd.js +3473 -96
- package/lib/ecyoaemail.umd.min.js +147 -140
- package/package.json +1 -1
package/lib/ecyoaemail.common.js
CHANGED
|
@@ -2727,7 +2727,7 @@ ___CSS_LOADER_EXPORT___.push([module.id, "[data-v-c807af5e]:export{stdMenuBgcolo
|
|
|
2727
2727
|
|
|
2728
2728
|
/***/ }),
|
|
2729
2729
|
|
|
2730
|
-
/***/
|
|
2730
|
+
/***/ 4301:
|
|
2731
2731
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
2732
2732
|
|
|
2733
2733
|
"use strict";
|
|
@@ -2741,7 +2741,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
2741
2741
|
|
|
2742
2742
|
var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));
|
|
2743
2743
|
// Module
|
|
2744
|
-
___CSS_LOADER_EXPORT___.push([module.id, "[data-v-
|
|
2744
|
+
___CSS_LOADER_EXPORT___.push([module.id, "[data-v-51e875a8] .attachFile .el-input__inner{width:76px;height:20px;text-align:center;line-height:20px;padding:0 5px}[data-v-51e875a8] #busiForm table td{vertical-align:top}.RichtextEditor[data-v-51e875a8] .richtext-container .el-table td div{height:100%}.RichtextEditor[data-v-51e875a8] .richtext-container .cke_inner{height:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.RichtextEditor[data-v-51e875a8] .richtext-container .cke_inner .cke_contents{-webkit-box-flex:1;-ms-flex:auto;flex:auto}.spanLH[data-v-51e875a8]{font-size:var(--portalFontSize13);text-align:center;color:#c9c9c9}.mailWrap[data-v-51e875a8]{-webkit-box-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;padding:9px 0 0 0}.sendMail[data-v-51e875a8]{padding:0 0 0 10px}.sendMail .lineRow[data-v-51e875a8]{margin:0!important;border-bottom:1px solid #eceff5;display:-webkit-box;display:-ms-flexbox;display:flex}.sendMail .lineRow .grid-content[data-v-51e875a8]{height:100%;width:calc(100% - 72px);padding-left:16px}.sendMail .lineRow .grid-content .btnBorder[data-v-51e875a8]{border:none!important}.sendMail .lineRow .grid-content .btnBorder[data-v-51e875a8] .el-input__inner{border:none!important;height:unset;line-height:20px;padding-left:unset}.el-inputLyy__inner[data-v-51e875a8] .el-input__inner{line-height:40px!important}[data-v-51e875a8] input::-webkit-input-placeholder{color:#c9c9c9;font-size:var(--portalFontSize13)}[data-v-51e875a8] input::-moz-input-placeholder{color:#c9c9c9;font-size:var(--portalFontSize13)}[data-v-51e875a8] input::-ms-input-placeholder{color:#c9c9c9;font-size:var(--portalFontSize13)}.linkEmail[data-v-51e875a8]{width:220px;max-height:calc(100vh - 270px);position:absolute;left:4%;z-index:99;top:135px;background-color:#fff;overflow-y:auto;-webkit-box-shadow:0 0 5px rgba(0,0,0,.1)!important;box-shadow:0 0 5px rgba(0,0,0,.1)!important;border-radius:4px}.linkEmail div[data-v-51e875a8]{overflow-x:hidden;padding:10px}.linkEmail div p[data-v-51e875a8]{width:200px;height:26px;overflow:hidden;word-break:break-all;text-overflow:clip;padding:0;margin:0;line-height:30px;font-size:var(--portalFontSize12);cursor:pointer}.linkEmail div p[data-v-51e875a8]:hover{color:#409eff}.linkEmail[data-v-51e875a8]::-webkit-scrollbar{display:none}[data-v-51e875a8] .el-input__suffix{display:none}[data-v-51e875a8] .el-input__inner{text-align:left}.RichtextEditor[data-v-51e875a8] .richtext-container{margin:0;height:100%}.RichtextEditor[data-v-51e875a8] .richtext-container .el-table{height:100%;border:none}.RichtextEditor[data-v-51e875a8] .richtext-container .el-table:before{width:0}.RichtextEditor[data-v-51e875a8] .richtext-container .el-table .el-table__body-wrapper,.RichtextEditor[data-v-51e875a8] .richtext-container .el-table .el-table__body-wrapper .el-table__body{height:100%}[data-v-51e875a8] .cke_top{border-bottom:none}[data-v-51e875a8] .el-table--border:after{width:0}[data-v-51e875a8] #busiForm table,[data-v-51e875a8] #busiForm table td{border:none}.emailAddrStyle[data-v-51e875a8]{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;margin-right:10px;margin-bottom:8px}.emailAddrStyle div[data-v-51e875a8]{font-size:var(--portalFontSize12);border-radius:20px;cursor:pointer;border:1px solid #e0e0e0}.emailAddrStyle div i[data-v-51e875a8]{color:#c0c4cc}.emailAddrStyle div[data-v-51e875a8]:hover{border-color:#aaa}.emailAddrStyle div:hover i[data-v-51e875a8]{border-left-color:#aaa!important;color:#aaa}.emailAddrStyle div span[data-v-51e875a8]{padding:3px 5px 3px 10px;color:#333;cursor:pointer}.emailAddrStyle div i[data-v-51e875a8]:hover{color:red!important}.inputWrap[data-v-51e875a8]{padding-top:10px}.inputWrap[data-v-51e875a8] .el-scrollbar .el-scrollbar__wrap{max-height:150px;overflow-x:hidden}.inputWrap[data-v-51e875a8] .el-scrollbar .el-scrollbar__wrap .el-scrollbar__view{padding-bottom:20px}.inputWrap>div.emailAddrStyle[data-v-51e875a8]:last-child{margin-right:unset}.readyFile[data-v-51e875a8]{margin:0 23px 14px 0;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;width:330px;height:56px;background:#f7f8fa;padding:10px}", ""]);
|
|
2745
2745
|
// Exports
|
|
2746
2746
|
/* harmony default export */ __webpack_exports__["default"] = (___CSS_LOADER_EXPORT___);
|
|
2747
2747
|
|
|
@@ -27150,19 +27150,19 @@ var update = add("76cb9540", content, true, {"sourceMap":false,"shadowMode":fals
|
|
|
27150
27150
|
|
|
27151
27151
|
/***/ }),
|
|
27152
27152
|
|
|
27153
|
-
/***/
|
|
27153
|
+
/***/ 9059:
|
|
27154
27154
|
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
|
27155
27155
|
|
|
27156
27156
|
// style-loader: Adds some css to the DOM by adding a <style> tag
|
|
27157
27157
|
|
|
27158
27158
|
// load the styles
|
|
27159
|
-
var content = __webpack_require__(
|
|
27159
|
+
var content = __webpack_require__(4301);
|
|
27160
27160
|
if(content.__esModule) content = content.default;
|
|
27161
27161
|
if(typeof content === 'string') content = [[module.id, content, '']];
|
|
27162
27162
|
if(content.locals) module.exports = content.locals;
|
|
27163
27163
|
// add the styles to the DOM
|
|
27164
27164
|
var add = (__webpack_require__(9548)/* ["default"] */ .A)
|
|
27165
|
-
var update = add("
|
|
27165
|
+
var update = add("7991f005", content, true, {"sourceMap":false,"shadowMode":false});
|
|
27166
27166
|
|
|
27167
27167
|
/***/ }),
|
|
27168
27168
|
|
|
@@ -36201,8 +36201,8 @@ var list_component = normalizeComponent(
|
|
|
36201
36201
|
)
|
|
36202
36202
|
|
|
36203
36203
|
/* harmony default export */ var list = (list_component.exports);
|
|
36204
|
-
;// CONCATENATED MODULE: ./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./packages/ecyoa/email/src/xieyoujian.vue?vue&type=template&id=
|
|
36205
|
-
var
|
|
36204
|
+
;// CONCATENATED MODULE: ./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./packages/ecyoa/email/src/xieyoujian.vue?vue&type=template&id=51e875a8&scoped=true
|
|
36205
|
+
var xieyoujianvue_type_template_id_51e875a8_scoped_true_render = function render() {
|
|
36206
36206
|
var _vm = this,
|
|
36207
36207
|
_c = _vm._self._c;
|
|
36208
36208
|
return _c('div', {
|
|
@@ -36413,7 +36413,7 @@ var xieyoujianvue_type_template_id_6252c928_scoped_true_render = function render
|
|
|
36413
36413
|
}, [_vm._v("收件人")])]), _c('div', {
|
|
36414
36414
|
staticClass: "grid-content bg-purple-dark"
|
|
36415
36415
|
}, [_c('div', {
|
|
36416
|
-
staticClass: "inputWrap"
|
|
36416
|
+
staticClass: "inputWrap sendList"
|
|
36417
36417
|
}, [_c('el-scrollbar', [_vm.sendList.length > 0 ? _vm._l(_vm.sendList, function (item, index) {
|
|
36418
36418
|
return _c('div', {
|
|
36419
36419
|
key: item,
|
|
@@ -36493,7 +36493,7 @@ var xieyoujianvue_type_template_id_6252c928_scoped_true_render = function render
|
|
|
36493
36493
|
}, [_vm._v("抄送人:")])]), _c('div', {
|
|
36494
36494
|
staticClass: "grid-content bg-purple-dark"
|
|
36495
36495
|
}, [_c('div', {
|
|
36496
|
-
staticClass: "inputWrap"
|
|
36496
|
+
staticClass: "inputWrap copyToList"
|
|
36497
36497
|
}, [_c('el-scrollbar', [_vm.copyToList.length > 0 ? _vm._l(_vm.copyToList, function (item, index) {
|
|
36498
36498
|
return _c('div', {
|
|
36499
36499
|
key: item,
|
|
@@ -36572,7 +36572,7 @@ var xieyoujianvue_type_template_id_6252c928_scoped_true_render = function render
|
|
|
36572
36572
|
}, [_vm._v("密送人:")])]), _c('div', {
|
|
36573
36573
|
staticClass: "grid-content bg-purple-dark"
|
|
36574
36574
|
}, [_c('div', {
|
|
36575
|
-
staticClass: "inputWrap"
|
|
36575
|
+
staticClass: "inputWrap blindCopyToList"
|
|
36576
36576
|
}, [_c('el-scrollbar', [_vm.blindCopyToList.length > 0 ? _vm._l(_vm.blindCopyToList, function (item, index) {
|
|
36577
36577
|
return _c('div', {
|
|
36578
36578
|
key: item,
|
|
@@ -36979,7 +36979,7 @@ var xieyoujianvue_type_template_id_6252c928_scoped_true_render = function render
|
|
|
36979
36979
|
}
|
|
36980
36980
|
})], 1)])]) : _vm._e()])]);
|
|
36981
36981
|
};
|
|
36982
|
-
var
|
|
36982
|
+
var xieyoujianvue_type_template_id_51e875a8_scoped_true_staticRenderFns = [];
|
|
36983
36983
|
|
|
36984
36984
|
;// CONCATENATED MODULE: ./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./packages/ecyoa/email/src/components/txl.vue?vue&type=template&id=0d337f2c&scoped=true
|
|
36985
36985
|
var txlvue_type_template_id_0d337f2c_scoped_true_render = function render() {
|
|
@@ -37922,17 +37922,3371 @@ var txl_component = normalizeComponent(
|
|
|
37922
37922
|
)
|
|
37923
37923
|
|
|
37924
37924
|
/* harmony default export */ var txl = (txl_component.exports);
|
|
37925
|
+
;// CONCATENATED MODULE: ./node_modules/sortablejs/modular/sortable.esm.js
|
|
37926
|
+
/**!
|
|
37927
|
+
* Sortable 1.15.2
|
|
37928
|
+
* @author RubaXa <trash@rubaxa.org>
|
|
37929
|
+
* @author owenm <owen23355@gmail.com>
|
|
37930
|
+
* @license MIT
|
|
37931
|
+
*/
|
|
37932
|
+
function sortable_esm_ownKeys(object, enumerableOnly) {
|
|
37933
|
+
var keys = Object.keys(object);
|
|
37934
|
+
if (Object.getOwnPropertySymbols) {
|
|
37935
|
+
var symbols = Object.getOwnPropertySymbols(object);
|
|
37936
|
+
if (enumerableOnly) {
|
|
37937
|
+
symbols = symbols.filter(function (sym) {
|
|
37938
|
+
return Object.getOwnPropertyDescriptor(object, sym).enumerable;
|
|
37939
|
+
});
|
|
37940
|
+
}
|
|
37941
|
+
keys.push.apply(keys, symbols);
|
|
37942
|
+
}
|
|
37943
|
+
return keys;
|
|
37944
|
+
}
|
|
37945
|
+
function _objectSpread2(target) {
|
|
37946
|
+
for (var i = 1; i < arguments.length; i++) {
|
|
37947
|
+
var source = arguments[i] != null ? arguments[i] : {};
|
|
37948
|
+
if (i % 2) {
|
|
37949
|
+
sortable_esm_ownKeys(Object(source), true).forEach(function (key) {
|
|
37950
|
+
sortable_esm_defineProperty(target, key, source[key]);
|
|
37951
|
+
});
|
|
37952
|
+
} else if (Object.getOwnPropertyDescriptors) {
|
|
37953
|
+
Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
|
|
37954
|
+
} else {
|
|
37955
|
+
sortable_esm_ownKeys(Object(source)).forEach(function (key) {
|
|
37956
|
+
Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
|
|
37957
|
+
});
|
|
37958
|
+
}
|
|
37959
|
+
}
|
|
37960
|
+
return target;
|
|
37961
|
+
}
|
|
37962
|
+
function sortable_esm_typeof(obj) {
|
|
37963
|
+
"@babel/helpers - typeof";
|
|
37964
|
+
|
|
37965
|
+
if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
|
|
37966
|
+
sortable_esm_typeof = function (obj) {
|
|
37967
|
+
return typeof obj;
|
|
37968
|
+
};
|
|
37969
|
+
} else {
|
|
37970
|
+
sortable_esm_typeof = function (obj) {
|
|
37971
|
+
return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
|
|
37972
|
+
};
|
|
37973
|
+
}
|
|
37974
|
+
return sortable_esm_typeof(obj);
|
|
37975
|
+
}
|
|
37976
|
+
function sortable_esm_defineProperty(obj, key, value) {
|
|
37977
|
+
if (key in obj) {
|
|
37978
|
+
Object.defineProperty(obj, key, {
|
|
37979
|
+
value: value,
|
|
37980
|
+
enumerable: true,
|
|
37981
|
+
configurable: true,
|
|
37982
|
+
writable: true
|
|
37983
|
+
});
|
|
37984
|
+
} else {
|
|
37985
|
+
obj[key] = value;
|
|
37986
|
+
}
|
|
37987
|
+
return obj;
|
|
37988
|
+
}
|
|
37989
|
+
function _extends() {
|
|
37990
|
+
_extends = Object.assign || function (target) {
|
|
37991
|
+
for (var i = 1; i < arguments.length; i++) {
|
|
37992
|
+
var source = arguments[i];
|
|
37993
|
+
for (var key in source) {
|
|
37994
|
+
if (Object.prototype.hasOwnProperty.call(source, key)) {
|
|
37995
|
+
target[key] = source[key];
|
|
37996
|
+
}
|
|
37997
|
+
}
|
|
37998
|
+
}
|
|
37999
|
+
return target;
|
|
38000
|
+
};
|
|
38001
|
+
return _extends.apply(this, arguments);
|
|
38002
|
+
}
|
|
38003
|
+
function _objectWithoutPropertiesLoose(source, excluded) {
|
|
38004
|
+
if (source == null) return {};
|
|
38005
|
+
var target = {};
|
|
38006
|
+
var sourceKeys = Object.keys(source);
|
|
38007
|
+
var key, i;
|
|
38008
|
+
for (i = 0; i < sourceKeys.length; i++) {
|
|
38009
|
+
key = sourceKeys[i];
|
|
38010
|
+
if (excluded.indexOf(key) >= 0) continue;
|
|
38011
|
+
target[key] = source[key];
|
|
38012
|
+
}
|
|
38013
|
+
return target;
|
|
38014
|
+
}
|
|
38015
|
+
function _objectWithoutProperties(source, excluded) {
|
|
38016
|
+
if (source == null) return {};
|
|
38017
|
+
var target = _objectWithoutPropertiesLoose(source, excluded);
|
|
38018
|
+
var key, i;
|
|
38019
|
+
if (Object.getOwnPropertySymbols) {
|
|
38020
|
+
var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
|
|
38021
|
+
for (i = 0; i < sourceSymbolKeys.length; i++) {
|
|
38022
|
+
key = sourceSymbolKeys[i];
|
|
38023
|
+
if (excluded.indexOf(key) >= 0) continue;
|
|
38024
|
+
if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
|
|
38025
|
+
target[key] = source[key];
|
|
38026
|
+
}
|
|
38027
|
+
}
|
|
38028
|
+
return target;
|
|
38029
|
+
}
|
|
38030
|
+
function _toConsumableArray(arr) {
|
|
38031
|
+
return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
|
|
38032
|
+
}
|
|
38033
|
+
function _arrayWithoutHoles(arr) {
|
|
38034
|
+
if (Array.isArray(arr)) return _arrayLikeToArray(arr);
|
|
38035
|
+
}
|
|
38036
|
+
function _iterableToArray(iter) {
|
|
38037
|
+
if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
|
|
38038
|
+
}
|
|
38039
|
+
function _unsupportedIterableToArray(o, minLen) {
|
|
38040
|
+
if (!o) return;
|
|
38041
|
+
if (typeof o === "string") return _arrayLikeToArray(o, minLen);
|
|
38042
|
+
var n = Object.prototype.toString.call(o).slice(8, -1);
|
|
38043
|
+
if (n === "Object" && o.constructor) n = o.constructor.name;
|
|
38044
|
+
if (n === "Map" || n === "Set") return Array.from(o);
|
|
38045
|
+
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
|
|
38046
|
+
}
|
|
38047
|
+
function _arrayLikeToArray(arr, len) {
|
|
38048
|
+
if (len == null || len > arr.length) len = arr.length;
|
|
38049
|
+
for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
|
|
38050
|
+
return arr2;
|
|
38051
|
+
}
|
|
38052
|
+
function _nonIterableSpread() {
|
|
38053
|
+
throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
38054
|
+
}
|
|
38055
|
+
|
|
38056
|
+
var version = "1.15.2";
|
|
38057
|
+
|
|
38058
|
+
function userAgent(pattern) {
|
|
38059
|
+
if (typeof window !== 'undefined' && window.navigator) {
|
|
38060
|
+
return !! /*@__PURE__*/navigator.userAgent.match(pattern);
|
|
38061
|
+
}
|
|
38062
|
+
}
|
|
38063
|
+
var IE11OrLess = userAgent(/(?:Trident.*rv[ :]?11\.|msie|iemobile|Windows Phone)/i);
|
|
38064
|
+
var Edge = userAgent(/Edge/i);
|
|
38065
|
+
var FireFox = userAgent(/firefox/i);
|
|
38066
|
+
var Safari = userAgent(/safari/i) && !userAgent(/chrome/i) && !userAgent(/android/i);
|
|
38067
|
+
var IOS = userAgent(/iP(ad|od|hone)/i);
|
|
38068
|
+
var ChromeForAndroid = userAgent(/chrome/i) && userAgent(/android/i);
|
|
38069
|
+
|
|
38070
|
+
var captureMode = {
|
|
38071
|
+
capture: false,
|
|
38072
|
+
passive: false
|
|
38073
|
+
};
|
|
38074
|
+
function on(el, event, fn) {
|
|
38075
|
+
el.addEventListener(event, fn, !IE11OrLess && captureMode);
|
|
38076
|
+
}
|
|
38077
|
+
function off(el, event, fn) {
|
|
38078
|
+
el.removeEventListener(event, fn, !IE11OrLess && captureMode);
|
|
38079
|
+
}
|
|
38080
|
+
function matches( /**HTMLElement*/el, /**String*/selector) {
|
|
38081
|
+
if (!selector) return;
|
|
38082
|
+
selector[0] === '>' && (selector = selector.substring(1));
|
|
38083
|
+
if (el) {
|
|
38084
|
+
try {
|
|
38085
|
+
if (el.matches) {
|
|
38086
|
+
return el.matches(selector);
|
|
38087
|
+
} else if (el.msMatchesSelector) {
|
|
38088
|
+
return el.msMatchesSelector(selector);
|
|
38089
|
+
} else if (el.webkitMatchesSelector) {
|
|
38090
|
+
return el.webkitMatchesSelector(selector);
|
|
38091
|
+
}
|
|
38092
|
+
} catch (_) {
|
|
38093
|
+
return false;
|
|
38094
|
+
}
|
|
38095
|
+
}
|
|
38096
|
+
return false;
|
|
38097
|
+
}
|
|
38098
|
+
function getParentOrHost(el) {
|
|
38099
|
+
return el.host && el !== document && el.host.nodeType ? el.host : el.parentNode;
|
|
38100
|
+
}
|
|
38101
|
+
function closest( /**HTMLElement*/el, /**String*/selector, /**HTMLElement*/ctx, includeCTX) {
|
|
38102
|
+
if (el) {
|
|
38103
|
+
ctx = ctx || document;
|
|
38104
|
+
do {
|
|
38105
|
+
if (selector != null && (selector[0] === '>' ? el.parentNode === ctx && matches(el, selector) : matches(el, selector)) || includeCTX && el === ctx) {
|
|
38106
|
+
return el;
|
|
38107
|
+
}
|
|
38108
|
+
if (el === ctx) break;
|
|
38109
|
+
/* jshint boss:true */
|
|
38110
|
+
} while (el = getParentOrHost(el));
|
|
38111
|
+
}
|
|
38112
|
+
return null;
|
|
38113
|
+
}
|
|
38114
|
+
var R_SPACE = /\s+/g;
|
|
38115
|
+
function toggleClass(el, name, state) {
|
|
38116
|
+
if (el && name) {
|
|
38117
|
+
if (el.classList) {
|
|
38118
|
+
el.classList[state ? 'add' : 'remove'](name);
|
|
38119
|
+
} else {
|
|
38120
|
+
var className = (' ' + el.className + ' ').replace(R_SPACE, ' ').replace(' ' + name + ' ', ' ');
|
|
38121
|
+
el.className = (className + (state ? ' ' + name : '')).replace(R_SPACE, ' ');
|
|
38122
|
+
}
|
|
38123
|
+
}
|
|
38124
|
+
}
|
|
38125
|
+
function css(el, prop, val) {
|
|
38126
|
+
var style = el && el.style;
|
|
38127
|
+
if (style) {
|
|
38128
|
+
if (val === void 0) {
|
|
38129
|
+
if (document.defaultView && document.defaultView.getComputedStyle) {
|
|
38130
|
+
val = document.defaultView.getComputedStyle(el, '');
|
|
38131
|
+
} else if (el.currentStyle) {
|
|
38132
|
+
val = el.currentStyle;
|
|
38133
|
+
}
|
|
38134
|
+
return prop === void 0 ? val : val[prop];
|
|
38135
|
+
} else {
|
|
38136
|
+
if (!(prop in style) && prop.indexOf('webkit') === -1) {
|
|
38137
|
+
prop = '-webkit-' + prop;
|
|
38138
|
+
}
|
|
38139
|
+
style[prop] = val + (typeof val === 'string' ? '' : 'px');
|
|
38140
|
+
}
|
|
38141
|
+
}
|
|
38142
|
+
}
|
|
38143
|
+
function matrix(el, selfOnly) {
|
|
38144
|
+
var appliedTransforms = '';
|
|
38145
|
+
if (typeof el === 'string') {
|
|
38146
|
+
appliedTransforms = el;
|
|
38147
|
+
} else {
|
|
38148
|
+
do {
|
|
38149
|
+
var transform = css(el, 'transform');
|
|
38150
|
+
if (transform && transform !== 'none') {
|
|
38151
|
+
appliedTransforms = transform + ' ' + appliedTransforms;
|
|
38152
|
+
}
|
|
38153
|
+
/* jshint boss:true */
|
|
38154
|
+
} while (!selfOnly && (el = el.parentNode));
|
|
38155
|
+
}
|
|
38156
|
+
var matrixFn = window.DOMMatrix || window.WebKitCSSMatrix || window.CSSMatrix || window.MSCSSMatrix;
|
|
38157
|
+
/*jshint -W056 */
|
|
38158
|
+
return matrixFn && new matrixFn(appliedTransforms);
|
|
38159
|
+
}
|
|
38160
|
+
function sortable_esm_find(ctx, tagName, iterator) {
|
|
38161
|
+
if (ctx) {
|
|
38162
|
+
var list = ctx.getElementsByTagName(tagName),
|
|
38163
|
+
i = 0,
|
|
38164
|
+
n = list.length;
|
|
38165
|
+
if (iterator) {
|
|
38166
|
+
for (; i < n; i++) {
|
|
38167
|
+
iterator(list[i], i);
|
|
38168
|
+
}
|
|
38169
|
+
}
|
|
38170
|
+
return list;
|
|
38171
|
+
}
|
|
38172
|
+
return [];
|
|
38173
|
+
}
|
|
38174
|
+
function getWindowScrollingElement() {
|
|
38175
|
+
var scrollingElement = document.scrollingElement;
|
|
38176
|
+
if (scrollingElement) {
|
|
38177
|
+
return scrollingElement;
|
|
38178
|
+
} else {
|
|
38179
|
+
return document.documentElement;
|
|
38180
|
+
}
|
|
38181
|
+
}
|
|
38182
|
+
|
|
38183
|
+
/**
|
|
38184
|
+
* Returns the "bounding client rect" of given element
|
|
38185
|
+
* @param {HTMLElement} el The element whose boundingClientRect is wanted
|
|
38186
|
+
* @param {[Boolean]} relativeToContainingBlock Whether the rect should be relative to the containing block of (including) the container
|
|
38187
|
+
* @param {[Boolean]} relativeToNonStaticParent Whether the rect should be relative to the relative parent of (including) the contaienr
|
|
38188
|
+
* @param {[Boolean]} undoScale Whether the container's scale() should be undone
|
|
38189
|
+
* @param {[HTMLElement]} container The parent the element will be placed in
|
|
38190
|
+
* @return {Object} The boundingClientRect of el, with specified adjustments
|
|
38191
|
+
*/
|
|
38192
|
+
function getRect(el, relativeToContainingBlock, relativeToNonStaticParent, undoScale, container) {
|
|
38193
|
+
if (!el.getBoundingClientRect && el !== window) return;
|
|
38194
|
+
var elRect, top, left, bottom, right, height, width;
|
|
38195
|
+
if (el !== window && el.parentNode && el !== getWindowScrollingElement()) {
|
|
38196
|
+
elRect = el.getBoundingClientRect();
|
|
38197
|
+
top = elRect.top;
|
|
38198
|
+
left = elRect.left;
|
|
38199
|
+
bottom = elRect.bottom;
|
|
38200
|
+
right = elRect.right;
|
|
38201
|
+
height = elRect.height;
|
|
38202
|
+
width = elRect.width;
|
|
38203
|
+
} else {
|
|
38204
|
+
top = 0;
|
|
38205
|
+
left = 0;
|
|
38206
|
+
bottom = window.innerHeight;
|
|
38207
|
+
right = window.innerWidth;
|
|
38208
|
+
height = window.innerHeight;
|
|
38209
|
+
width = window.innerWidth;
|
|
38210
|
+
}
|
|
38211
|
+
if ((relativeToContainingBlock || relativeToNonStaticParent) && el !== window) {
|
|
38212
|
+
// Adjust for translate()
|
|
38213
|
+
container = container || el.parentNode;
|
|
38214
|
+
|
|
38215
|
+
// solves #1123 (see: https://stackoverflow.com/a/37953806/6088312)
|
|
38216
|
+
// Not needed on <= IE11
|
|
38217
|
+
if (!IE11OrLess) {
|
|
38218
|
+
do {
|
|
38219
|
+
if (container && container.getBoundingClientRect && (css(container, 'transform') !== 'none' || relativeToNonStaticParent && css(container, 'position') !== 'static')) {
|
|
38220
|
+
var containerRect = container.getBoundingClientRect();
|
|
38221
|
+
|
|
38222
|
+
// Set relative to edges of padding box of container
|
|
38223
|
+
top -= containerRect.top + parseInt(css(container, 'border-top-width'));
|
|
38224
|
+
left -= containerRect.left + parseInt(css(container, 'border-left-width'));
|
|
38225
|
+
bottom = top + elRect.height;
|
|
38226
|
+
right = left + elRect.width;
|
|
38227
|
+
break;
|
|
38228
|
+
}
|
|
38229
|
+
/* jshint boss:true */
|
|
38230
|
+
} while (container = container.parentNode);
|
|
38231
|
+
}
|
|
38232
|
+
}
|
|
38233
|
+
if (undoScale && el !== window) {
|
|
38234
|
+
// Adjust for scale()
|
|
38235
|
+
var elMatrix = matrix(container || el),
|
|
38236
|
+
scaleX = elMatrix && elMatrix.a,
|
|
38237
|
+
scaleY = elMatrix && elMatrix.d;
|
|
38238
|
+
if (elMatrix) {
|
|
38239
|
+
top /= scaleY;
|
|
38240
|
+
left /= scaleX;
|
|
38241
|
+
width /= scaleX;
|
|
38242
|
+
height /= scaleY;
|
|
38243
|
+
bottom = top + height;
|
|
38244
|
+
right = left + width;
|
|
38245
|
+
}
|
|
38246
|
+
}
|
|
38247
|
+
return {
|
|
38248
|
+
top: top,
|
|
38249
|
+
left: left,
|
|
38250
|
+
bottom: bottom,
|
|
38251
|
+
right: right,
|
|
38252
|
+
width: width,
|
|
38253
|
+
height: height
|
|
38254
|
+
};
|
|
38255
|
+
}
|
|
38256
|
+
|
|
38257
|
+
/**
|
|
38258
|
+
* Checks if a side of an element is scrolled past a side of its parents
|
|
38259
|
+
* @param {HTMLElement} el The element who's side being scrolled out of view is in question
|
|
38260
|
+
* @param {String} elSide Side of the element in question ('top', 'left', 'right', 'bottom')
|
|
38261
|
+
* @param {String} parentSide Side of the parent in question ('top', 'left', 'right', 'bottom')
|
|
38262
|
+
* @return {HTMLElement} The parent scroll element that the el's side is scrolled past, or null if there is no such element
|
|
38263
|
+
*/
|
|
38264
|
+
function isScrolledPast(el, elSide, parentSide) {
|
|
38265
|
+
var parent = getParentAutoScrollElement(el, true),
|
|
38266
|
+
elSideVal = getRect(el)[elSide];
|
|
38267
|
+
|
|
38268
|
+
/* jshint boss:true */
|
|
38269
|
+
while (parent) {
|
|
38270
|
+
var parentSideVal = getRect(parent)[parentSide],
|
|
38271
|
+
visible = void 0;
|
|
38272
|
+
if (parentSide === 'top' || parentSide === 'left') {
|
|
38273
|
+
visible = elSideVal >= parentSideVal;
|
|
38274
|
+
} else {
|
|
38275
|
+
visible = elSideVal <= parentSideVal;
|
|
38276
|
+
}
|
|
38277
|
+
if (!visible) return parent;
|
|
38278
|
+
if (parent === getWindowScrollingElement()) break;
|
|
38279
|
+
parent = getParentAutoScrollElement(parent, false);
|
|
38280
|
+
}
|
|
38281
|
+
return false;
|
|
38282
|
+
}
|
|
38283
|
+
|
|
38284
|
+
/**
|
|
38285
|
+
* Gets nth child of el, ignoring hidden children, sortable's elements (does not ignore clone if it's visible)
|
|
38286
|
+
* and non-draggable elements
|
|
38287
|
+
* @param {HTMLElement} el The parent element
|
|
38288
|
+
* @param {Number} childNum The index of the child
|
|
38289
|
+
* @param {Object} options Parent Sortable's options
|
|
38290
|
+
* @return {HTMLElement} The child at index childNum, or null if not found
|
|
38291
|
+
*/
|
|
38292
|
+
function getChild(el, childNum, options, includeDragEl) {
|
|
38293
|
+
var currentChild = 0,
|
|
38294
|
+
i = 0,
|
|
38295
|
+
children = el.children;
|
|
38296
|
+
while (i < children.length) {
|
|
38297
|
+
if (children[i].style.display !== 'none' && children[i] !== Sortable.ghost && (includeDragEl || children[i] !== Sortable.dragged) && closest(children[i], options.draggable, el, false)) {
|
|
38298
|
+
if (currentChild === childNum) {
|
|
38299
|
+
return children[i];
|
|
38300
|
+
}
|
|
38301
|
+
currentChild++;
|
|
38302
|
+
}
|
|
38303
|
+
i++;
|
|
38304
|
+
}
|
|
38305
|
+
return null;
|
|
38306
|
+
}
|
|
38307
|
+
|
|
38308
|
+
/**
|
|
38309
|
+
* Gets the last child in the el, ignoring ghostEl or invisible elements (clones)
|
|
38310
|
+
* @param {HTMLElement} el Parent element
|
|
38311
|
+
* @param {selector} selector Any other elements that should be ignored
|
|
38312
|
+
* @return {HTMLElement} The last child, ignoring ghostEl
|
|
38313
|
+
*/
|
|
38314
|
+
function lastChild(el, selector) {
|
|
38315
|
+
var last = el.lastElementChild;
|
|
38316
|
+
while (last && (last === Sortable.ghost || css(last, 'display') === 'none' || selector && !matches(last, selector))) {
|
|
38317
|
+
last = last.previousElementSibling;
|
|
38318
|
+
}
|
|
38319
|
+
return last || null;
|
|
38320
|
+
}
|
|
38321
|
+
|
|
38322
|
+
/**
|
|
38323
|
+
* Returns the index of an element within its parent for a selected set of
|
|
38324
|
+
* elements
|
|
38325
|
+
* @param {HTMLElement} el
|
|
38326
|
+
* @param {selector} selector
|
|
38327
|
+
* @return {number}
|
|
38328
|
+
*/
|
|
38329
|
+
function sortable_esm_index(el, selector) {
|
|
38330
|
+
var index = 0;
|
|
38331
|
+
if (!el || !el.parentNode) {
|
|
38332
|
+
return -1;
|
|
38333
|
+
}
|
|
38334
|
+
|
|
38335
|
+
/* jshint boss:true */
|
|
38336
|
+
while (el = el.previousElementSibling) {
|
|
38337
|
+
if (el.nodeName.toUpperCase() !== 'TEMPLATE' && el !== Sortable.clone && (!selector || matches(el, selector))) {
|
|
38338
|
+
index++;
|
|
38339
|
+
}
|
|
38340
|
+
}
|
|
38341
|
+
return index;
|
|
38342
|
+
}
|
|
38343
|
+
|
|
38344
|
+
/**
|
|
38345
|
+
* Returns the scroll offset of the given element, added with all the scroll offsets of parent elements.
|
|
38346
|
+
* The value is returned in real pixels.
|
|
38347
|
+
* @param {HTMLElement} el
|
|
38348
|
+
* @return {Array} Offsets in the format of [left, top]
|
|
38349
|
+
*/
|
|
38350
|
+
function getRelativeScrollOffset(el) {
|
|
38351
|
+
var offsetLeft = 0,
|
|
38352
|
+
offsetTop = 0,
|
|
38353
|
+
winScroller = getWindowScrollingElement();
|
|
38354
|
+
if (el) {
|
|
38355
|
+
do {
|
|
38356
|
+
var elMatrix = matrix(el),
|
|
38357
|
+
scaleX = elMatrix.a,
|
|
38358
|
+
scaleY = elMatrix.d;
|
|
38359
|
+
offsetLeft += el.scrollLeft * scaleX;
|
|
38360
|
+
offsetTop += el.scrollTop * scaleY;
|
|
38361
|
+
} while (el !== winScroller && (el = el.parentNode));
|
|
38362
|
+
}
|
|
38363
|
+
return [offsetLeft, offsetTop];
|
|
38364
|
+
}
|
|
38365
|
+
|
|
38366
|
+
/**
|
|
38367
|
+
* Returns the index of the object within the given array
|
|
38368
|
+
* @param {Array} arr Array that may or may not hold the object
|
|
38369
|
+
* @param {Object} obj An object that has a key-value pair unique to and identical to a key-value pair in the object you want to find
|
|
38370
|
+
* @return {Number} The index of the object in the array, or -1
|
|
38371
|
+
*/
|
|
38372
|
+
function indexOfObject(arr, obj) {
|
|
38373
|
+
for (var i in arr) {
|
|
38374
|
+
if (!arr.hasOwnProperty(i)) continue;
|
|
38375
|
+
for (var key in obj) {
|
|
38376
|
+
if (obj.hasOwnProperty(key) && obj[key] === arr[i][key]) return Number(i);
|
|
38377
|
+
}
|
|
38378
|
+
}
|
|
38379
|
+
return -1;
|
|
38380
|
+
}
|
|
38381
|
+
function getParentAutoScrollElement(el, includeSelf) {
|
|
38382
|
+
// skip to window
|
|
38383
|
+
if (!el || !el.getBoundingClientRect) return getWindowScrollingElement();
|
|
38384
|
+
var elem = el;
|
|
38385
|
+
var gotSelf = false;
|
|
38386
|
+
do {
|
|
38387
|
+
// we don't need to get elem css if it isn't even overflowing in the first place (performance)
|
|
38388
|
+
if (elem.clientWidth < elem.scrollWidth || elem.clientHeight < elem.scrollHeight) {
|
|
38389
|
+
var elemCSS = css(elem);
|
|
38390
|
+
if (elem.clientWidth < elem.scrollWidth && (elemCSS.overflowX == 'auto' || elemCSS.overflowX == 'scroll') || elem.clientHeight < elem.scrollHeight && (elemCSS.overflowY == 'auto' || elemCSS.overflowY == 'scroll')) {
|
|
38391
|
+
if (!elem.getBoundingClientRect || elem === document.body) return getWindowScrollingElement();
|
|
38392
|
+
if (gotSelf || includeSelf) return elem;
|
|
38393
|
+
gotSelf = true;
|
|
38394
|
+
}
|
|
38395
|
+
}
|
|
38396
|
+
/* jshint boss:true */
|
|
38397
|
+
} while (elem = elem.parentNode);
|
|
38398
|
+
return getWindowScrollingElement();
|
|
38399
|
+
}
|
|
38400
|
+
function extend(dst, src) {
|
|
38401
|
+
if (dst && src) {
|
|
38402
|
+
for (var key in src) {
|
|
38403
|
+
if (src.hasOwnProperty(key)) {
|
|
38404
|
+
dst[key] = src[key];
|
|
38405
|
+
}
|
|
38406
|
+
}
|
|
38407
|
+
}
|
|
38408
|
+
return dst;
|
|
38409
|
+
}
|
|
38410
|
+
function isRectEqual(rect1, rect2) {
|
|
38411
|
+
return Math.round(rect1.top) === Math.round(rect2.top) && Math.round(rect1.left) === Math.round(rect2.left) && Math.round(rect1.height) === Math.round(rect2.height) && Math.round(rect1.width) === Math.round(rect2.width);
|
|
38412
|
+
}
|
|
38413
|
+
var _throttleTimeout;
|
|
38414
|
+
function throttle(callback, ms) {
|
|
38415
|
+
return function () {
|
|
38416
|
+
if (!_throttleTimeout) {
|
|
38417
|
+
var args = arguments,
|
|
38418
|
+
_this = this;
|
|
38419
|
+
if (args.length === 1) {
|
|
38420
|
+
callback.call(_this, args[0]);
|
|
38421
|
+
} else {
|
|
38422
|
+
callback.apply(_this, args);
|
|
38423
|
+
}
|
|
38424
|
+
_throttleTimeout = setTimeout(function () {
|
|
38425
|
+
_throttleTimeout = void 0;
|
|
38426
|
+
}, ms);
|
|
38427
|
+
}
|
|
38428
|
+
};
|
|
38429
|
+
}
|
|
38430
|
+
function cancelThrottle() {
|
|
38431
|
+
clearTimeout(_throttleTimeout);
|
|
38432
|
+
_throttleTimeout = void 0;
|
|
38433
|
+
}
|
|
38434
|
+
function scrollBy(el, x, y) {
|
|
38435
|
+
el.scrollLeft += x;
|
|
38436
|
+
el.scrollTop += y;
|
|
38437
|
+
}
|
|
38438
|
+
function clone(el) {
|
|
38439
|
+
var Polymer = window.Polymer;
|
|
38440
|
+
var $ = window.jQuery || window.Zepto;
|
|
38441
|
+
if (Polymer && Polymer.dom) {
|
|
38442
|
+
return Polymer.dom(el).cloneNode(true);
|
|
38443
|
+
} else if ($) {
|
|
38444
|
+
return $(el).clone(true)[0];
|
|
38445
|
+
} else {
|
|
38446
|
+
return el.cloneNode(true);
|
|
38447
|
+
}
|
|
38448
|
+
}
|
|
38449
|
+
function setRect(el, rect) {
|
|
38450
|
+
css(el, 'position', 'absolute');
|
|
38451
|
+
css(el, 'top', rect.top);
|
|
38452
|
+
css(el, 'left', rect.left);
|
|
38453
|
+
css(el, 'width', rect.width);
|
|
38454
|
+
css(el, 'height', rect.height);
|
|
38455
|
+
}
|
|
38456
|
+
function unsetRect(el) {
|
|
38457
|
+
css(el, 'position', '');
|
|
38458
|
+
css(el, 'top', '');
|
|
38459
|
+
css(el, 'left', '');
|
|
38460
|
+
css(el, 'width', '');
|
|
38461
|
+
css(el, 'height', '');
|
|
38462
|
+
}
|
|
38463
|
+
function getChildContainingRectFromElement(container, options, ghostEl) {
|
|
38464
|
+
var rect = {};
|
|
38465
|
+
Array.from(container.children).forEach(function (child) {
|
|
38466
|
+
var _rect$left, _rect$top, _rect$right, _rect$bottom;
|
|
38467
|
+
if (!closest(child, options.draggable, container, false) || child.animated || child === ghostEl) return;
|
|
38468
|
+
var childRect = getRect(child);
|
|
38469
|
+
rect.left = Math.min((_rect$left = rect.left) !== null && _rect$left !== void 0 ? _rect$left : Infinity, childRect.left);
|
|
38470
|
+
rect.top = Math.min((_rect$top = rect.top) !== null && _rect$top !== void 0 ? _rect$top : Infinity, childRect.top);
|
|
38471
|
+
rect.right = Math.max((_rect$right = rect.right) !== null && _rect$right !== void 0 ? _rect$right : -Infinity, childRect.right);
|
|
38472
|
+
rect.bottom = Math.max((_rect$bottom = rect.bottom) !== null && _rect$bottom !== void 0 ? _rect$bottom : -Infinity, childRect.bottom);
|
|
38473
|
+
});
|
|
38474
|
+
rect.width = rect.right - rect.left;
|
|
38475
|
+
rect.height = rect.bottom - rect.top;
|
|
38476
|
+
rect.x = rect.left;
|
|
38477
|
+
rect.y = rect.top;
|
|
38478
|
+
return rect;
|
|
38479
|
+
}
|
|
38480
|
+
var expando = 'Sortable' + new Date().getTime();
|
|
38481
|
+
|
|
38482
|
+
function AnimationStateManager() {
|
|
38483
|
+
var animationStates = [],
|
|
38484
|
+
animationCallbackId;
|
|
38485
|
+
return {
|
|
38486
|
+
captureAnimationState: function captureAnimationState() {
|
|
38487
|
+
animationStates = [];
|
|
38488
|
+
if (!this.options.animation) return;
|
|
38489
|
+
var children = [].slice.call(this.el.children);
|
|
38490
|
+
children.forEach(function (child) {
|
|
38491
|
+
if (css(child, 'display') === 'none' || child === Sortable.ghost) return;
|
|
38492
|
+
animationStates.push({
|
|
38493
|
+
target: child,
|
|
38494
|
+
rect: getRect(child)
|
|
38495
|
+
});
|
|
38496
|
+
var fromRect = _objectSpread2({}, animationStates[animationStates.length - 1].rect);
|
|
38497
|
+
|
|
38498
|
+
// If animating: compensate for current animation
|
|
38499
|
+
if (child.thisAnimationDuration) {
|
|
38500
|
+
var childMatrix = matrix(child, true);
|
|
38501
|
+
if (childMatrix) {
|
|
38502
|
+
fromRect.top -= childMatrix.f;
|
|
38503
|
+
fromRect.left -= childMatrix.e;
|
|
38504
|
+
}
|
|
38505
|
+
}
|
|
38506
|
+
child.fromRect = fromRect;
|
|
38507
|
+
});
|
|
38508
|
+
},
|
|
38509
|
+
addAnimationState: function addAnimationState(state) {
|
|
38510
|
+
animationStates.push(state);
|
|
38511
|
+
},
|
|
38512
|
+
removeAnimationState: function removeAnimationState(target) {
|
|
38513
|
+
animationStates.splice(indexOfObject(animationStates, {
|
|
38514
|
+
target: target
|
|
38515
|
+
}), 1);
|
|
38516
|
+
},
|
|
38517
|
+
animateAll: function animateAll(callback) {
|
|
38518
|
+
var _this = this;
|
|
38519
|
+
if (!this.options.animation) {
|
|
38520
|
+
clearTimeout(animationCallbackId);
|
|
38521
|
+
if (typeof callback === 'function') callback();
|
|
38522
|
+
return;
|
|
38523
|
+
}
|
|
38524
|
+
var animating = false,
|
|
38525
|
+
animationTime = 0;
|
|
38526
|
+
animationStates.forEach(function (state) {
|
|
38527
|
+
var time = 0,
|
|
38528
|
+
target = state.target,
|
|
38529
|
+
fromRect = target.fromRect,
|
|
38530
|
+
toRect = getRect(target),
|
|
38531
|
+
prevFromRect = target.prevFromRect,
|
|
38532
|
+
prevToRect = target.prevToRect,
|
|
38533
|
+
animatingRect = state.rect,
|
|
38534
|
+
targetMatrix = matrix(target, true);
|
|
38535
|
+
if (targetMatrix) {
|
|
38536
|
+
// Compensate for current animation
|
|
38537
|
+
toRect.top -= targetMatrix.f;
|
|
38538
|
+
toRect.left -= targetMatrix.e;
|
|
38539
|
+
}
|
|
38540
|
+
target.toRect = toRect;
|
|
38541
|
+
if (target.thisAnimationDuration) {
|
|
38542
|
+
// Could also check if animatingRect is between fromRect and toRect
|
|
38543
|
+
if (isRectEqual(prevFromRect, toRect) && !isRectEqual(fromRect, toRect) &&
|
|
38544
|
+
// Make sure animatingRect is on line between toRect & fromRect
|
|
38545
|
+
(animatingRect.top - toRect.top) / (animatingRect.left - toRect.left) === (fromRect.top - toRect.top) / (fromRect.left - toRect.left)) {
|
|
38546
|
+
// If returning to same place as started from animation and on same axis
|
|
38547
|
+
time = calculateRealTime(animatingRect, prevFromRect, prevToRect, _this.options);
|
|
38548
|
+
}
|
|
38549
|
+
}
|
|
38550
|
+
|
|
38551
|
+
// if fromRect != toRect: animate
|
|
38552
|
+
if (!isRectEqual(toRect, fromRect)) {
|
|
38553
|
+
target.prevFromRect = fromRect;
|
|
38554
|
+
target.prevToRect = toRect;
|
|
38555
|
+
if (!time) {
|
|
38556
|
+
time = _this.options.animation;
|
|
38557
|
+
}
|
|
38558
|
+
_this.animate(target, animatingRect, toRect, time);
|
|
38559
|
+
}
|
|
38560
|
+
if (time) {
|
|
38561
|
+
animating = true;
|
|
38562
|
+
animationTime = Math.max(animationTime, time);
|
|
38563
|
+
clearTimeout(target.animationResetTimer);
|
|
38564
|
+
target.animationResetTimer = setTimeout(function () {
|
|
38565
|
+
target.animationTime = 0;
|
|
38566
|
+
target.prevFromRect = null;
|
|
38567
|
+
target.fromRect = null;
|
|
38568
|
+
target.prevToRect = null;
|
|
38569
|
+
target.thisAnimationDuration = null;
|
|
38570
|
+
}, time);
|
|
38571
|
+
target.thisAnimationDuration = time;
|
|
38572
|
+
}
|
|
38573
|
+
});
|
|
38574
|
+
clearTimeout(animationCallbackId);
|
|
38575
|
+
if (!animating) {
|
|
38576
|
+
if (typeof callback === 'function') callback();
|
|
38577
|
+
} else {
|
|
38578
|
+
animationCallbackId = setTimeout(function () {
|
|
38579
|
+
if (typeof callback === 'function') callback();
|
|
38580
|
+
}, animationTime);
|
|
38581
|
+
}
|
|
38582
|
+
animationStates = [];
|
|
38583
|
+
},
|
|
38584
|
+
animate: function animate(target, currentRect, toRect, duration) {
|
|
38585
|
+
if (duration) {
|
|
38586
|
+
css(target, 'transition', '');
|
|
38587
|
+
css(target, 'transform', '');
|
|
38588
|
+
var elMatrix = matrix(this.el),
|
|
38589
|
+
scaleX = elMatrix && elMatrix.a,
|
|
38590
|
+
scaleY = elMatrix && elMatrix.d,
|
|
38591
|
+
translateX = (currentRect.left - toRect.left) / (scaleX || 1),
|
|
38592
|
+
translateY = (currentRect.top - toRect.top) / (scaleY || 1);
|
|
38593
|
+
target.animatingX = !!translateX;
|
|
38594
|
+
target.animatingY = !!translateY;
|
|
38595
|
+
css(target, 'transform', 'translate3d(' + translateX + 'px,' + translateY + 'px,0)');
|
|
38596
|
+
this.forRepaintDummy = repaint(target); // repaint
|
|
38597
|
+
|
|
38598
|
+
css(target, 'transition', 'transform ' + duration + 'ms' + (this.options.easing ? ' ' + this.options.easing : ''));
|
|
38599
|
+
css(target, 'transform', 'translate3d(0,0,0)');
|
|
38600
|
+
typeof target.animated === 'number' && clearTimeout(target.animated);
|
|
38601
|
+
target.animated = setTimeout(function () {
|
|
38602
|
+
css(target, 'transition', '');
|
|
38603
|
+
css(target, 'transform', '');
|
|
38604
|
+
target.animated = false;
|
|
38605
|
+
target.animatingX = false;
|
|
38606
|
+
target.animatingY = false;
|
|
38607
|
+
}, duration);
|
|
38608
|
+
}
|
|
38609
|
+
}
|
|
38610
|
+
};
|
|
38611
|
+
}
|
|
38612
|
+
function repaint(target) {
|
|
38613
|
+
return target.offsetWidth;
|
|
38614
|
+
}
|
|
38615
|
+
function calculateRealTime(animatingRect, fromRect, toRect, options) {
|
|
38616
|
+
return Math.sqrt(Math.pow(fromRect.top - animatingRect.top, 2) + Math.pow(fromRect.left - animatingRect.left, 2)) / Math.sqrt(Math.pow(fromRect.top - toRect.top, 2) + Math.pow(fromRect.left - toRect.left, 2)) * options.animation;
|
|
38617
|
+
}
|
|
38618
|
+
|
|
38619
|
+
var plugins = [];
|
|
38620
|
+
var defaults = {
|
|
38621
|
+
initializeByDefault: true
|
|
38622
|
+
};
|
|
38623
|
+
var PluginManager = {
|
|
38624
|
+
mount: function mount(plugin) {
|
|
38625
|
+
// Set default static properties
|
|
38626
|
+
for (var option in defaults) {
|
|
38627
|
+
if (defaults.hasOwnProperty(option) && !(option in plugin)) {
|
|
38628
|
+
plugin[option] = defaults[option];
|
|
38629
|
+
}
|
|
38630
|
+
}
|
|
38631
|
+
plugins.forEach(function (p) {
|
|
38632
|
+
if (p.pluginName === plugin.pluginName) {
|
|
38633
|
+
throw "Sortable: Cannot mount plugin ".concat(plugin.pluginName, " more than once");
|
|
38634
|
+
}
|
|
38635
|
+
});
|
|
38636
|
+
plugins.push(plugin);
|
|
38637
|
+
},
|
|
38638
|
+
pluginEvent: function pluginEvent(eventName, sortable, evt) {
|
|
38639
|
+
var _this = this;
|
|
38640
|
+
this.eventCanceled = false;
|
|
38641
|
+
evt.cancel = function () {
|
|
38642
|
+
_this.eventCanceled = true;
|
|
38643
|
+
};
|
|
38644
|
+
var eventNameGlobal = eventName + 'Global';
|
|
38645
|
+
plugins.forEach(function (plugin) {
|
|
38646
|
+
if (!sortable[plugin.pluginName]) return;
|
|
38647
|
+
// Fire global events if it exists in this sortable
|
|
38648
|
+
if (sortable[plugin.pluginName][eventNameGlobal]) {
|
|
38649
|
+
sortable[plugin.pluginName][eventNameGlobal](_objectSpread2({
|
|
38650
|
+
sortable: sortable
|
|
38651
|
+
}, evt));
|
|
38652
|
+
}
|
|
38653
|
+
|
|
38654
|
+
// Only fire plugin event if plugin is enabled in this sortable,
|
|
38655
|
+
// and plugin has event defined
|
|
38656
|
+
if (sortable.options[plugin.pluginName] && sortable[plugin.pluginName][eventName]) {
|
|
38657
|
+
sortable[plugin.pluginName][eventName](_objectSpread2({
|
|
38658
|
+
sortable: sortable
|
|
38659
|
+
}, evt));
|
|
38660
|
+
}
|
|
38661
|
+
});
|
|
38662
|
+
},
|
|
38663
|
+
initializePlugins: function initializePlugins(sortable, el, defaults, options) {
|
|
38664
|
+
plugins.forEach(function (plugin) {
|
|
38665
|
+
var pluginName = plugin.pluginName;
|
|
38666
|
+
if (!sortable.options[pluginName] && !plugin.initializeByDefault) return;
|
|
38667
|
+
var initialized = new plugin(sortable, el, sortable.options);
|
|
38668
|
+
initialized.sortable = sortable;
|
|
38669
|
+
initialized.options = sortable.options;
|
|
38670
|
+
sortable[pluginName] = initialized;
|
|
38671
|
+
|
|
38672
|
+
// Add default options from plugin
|
|
38673
|
+
_extends(defaults, initialized.defaults);
|
|
38674
|
+
});
|
|
38675
|
+
for (var option in sortable.options) {
|
|
38676
|
+
if (!sortable.options.hasOwnProperty(option)) continue;
|
|
38677
|
+
var modified = this.modifyOption(sortable, option, sortable.options[option]);
|
|
38678
|
+
if (typeof modified !== 'undefined') {
|
|
38679
|
+
sortable.options[option] = modified;
|
|
38680
|
+
}
|
|
38681
|
+
}
|
|
38682
|
+
},
|
|
38683
|
+
getEventProperties: function getEventProperties(name, sortable) {
|
|
38684
|
+
var eventProperties = {};
|
|
38685
|
+
plugins.forEach(function (plugin) {
|
|
38686
|
+
if (typeof plugin.eventProperties !== 'function') return;
|
|
38687
|
+
_extends(eventProperties, plugin.eventProperties.call(sortable[plugin.pluginName], name));
|
|
38688
|
+
});
|
|
38689
|
+
return eventProperties;
|
|
38690
|
+
},
|
|
38691
|
+
modifyOption: function modifyOption(sortable, name, value) {
|
|
38692
|
+
var modifiedValue;
|
|
38693
|
+
plugins.forEach(function (plugin) {
|
|
38694
|
+
// Plugin must exist on the Sortable
|
|
38695
|
+
if (!sortable[plugin.pluginName]) return;
|
|
38696
|
+
|
|
38697
|
+
// If static option listener exists for this option, call in the context of the Sortable's instance of this plugin
|
|
38698
|
+
if (plugin.optionListeners && typeof plugin.optionListeners[name] === 'function') {
|
|
38699
|
+
modifiedValue = plugin.optionListeners[name].call(sortable[plugin.pluginName], value);
|
|
38700
|
+
}
|
|
38701
|
+
});
|
|
38702
|
+
return modifiedValue;
|
|
38703
|
+
}
|
|
38704
|
+
};
|
|
38705
|
+
|
|
38706
|
+
function dispatchEvent(_ref) {
|
|
38707
|
+
var sortable = _ref.sortable,
|
|
38708
|
+
rootEl = _ref.rootEl,
|
|
38709
|
+
name = _ref.name,
|
|
38710
|
+
targetEl = _ref.targetEl,
|
|
38711
|
+
cloneEl = _ref.cloneEl,
|
|
38712
|
+
toEl = _ref.toEl,
|
|
38713
|
+
fromEl = _ref.fromEl,
|
|
38714
|
+
oldIndex = _ref.oldIndex,
|
|
38715
|
+
newIndex = _ref.newIndex,
|
|
38716
|
+
oldDraggableIndex = _ref.oldDraggableIndex,
|
|
38717
|
+
newDraggableIndex = _ref.newDraggableIndex,
|
|
38718
|
+
originalEvent = _ref.originalEvent,
|
|
38719
|
+
putSortable = _ref.putSortable,
|
|
38720
|
+
extraEventProperties = _ref.extraEventProperties;
|
|
38721
|
+
sortable = sortable || rootEl && rootEl[expando];
|
|
38722
|
+
if (!sortable) return;
|
|
38723
|
+
var evt,
|
|
38724
|
+
options = sortable.options,
|
|
38725
|
+
onName = 'on' + name.charAt(0).toUpperCase() + name.substr(1);
|
|
38726
|
+
// Support for new CustomEvent feature
|
|
38727
|
+
if (window.CustomEvent && !IE11OrLess && !Edge) {
|
|
38728
|
+
evt = new CustomEvent(name, {
|
|
38729
|
+
bubbles: true,
|
|
38730
|
+
cancelable: true
|
|
38731
|
+
});
|
|
38732
|
+
} else {
|
|
38733
|
+
evt = document.createEvent('Event');
|
|
38734
|
+
evt.initEvent(name, true, true);
|
|
38735
|
+
}
|
|
38736
|
+
evt.to = toEl || rootEl;
|
|
38737
|
+
evt.from = fromEl || rootEl;
|
|
38738
|
+
evt.item = targetEl || rootEl;
|
|
38739
|
+
evt.clone = cloneEl;
|
|
38740
|
+
evt.oldIndex = oldIndex;
|
|
38741
|
+
evt.newIndex = newIndex;
|
|
38742
|
+
evt.oldDraggableIndex = oldDraggableIndex;
|
|
38743
|
+
evt.newDraggableIndex = newDraggableIndex;
|
|
38744
|
+
evt.originalEvent = originalEvent;
|
|
38745
|
+
evt.pullMode = putSortable ? putSortable.lastPutMode : undefined;
|
|
38746
|
+
var allEventProperties = _objectSpread2(_objectSpread2({}, extraEventProperties), PluginManager.getEventProperties(name, sortable));
|
|
38747
|
+
for (var option in allEventProperties) {
|
|
38748
|
+
evt[option] = allEventProperties[option];
|
|
38749
|
+
}
|
|
38750
|
+
if (rootEl) {
|
|
38751
|
+
rootEl.dispatchEvent(evt);
|
|
38752
|
+
}
|
|
38753
|
+
if (options[onName]) {
|
|
38754
|
+
options[onName].call(sortable, evt);
|
|
38755
|
+
}
|
|
38756
|
+
}
|
|
38757
|
+
|
|
38758
|
+
var _excluded = ["evt"];
|
|
38759
|
+
var pluginEvent = function pluginEvent(eventName, sortable) {
|
|
38760
|
+
var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},
|
|
38761
|
+
originalEvent = _ref.evt,
|
|
38762
|
+
data = _objectWithoutProperties(_ref, _excluded);
|
|
38763
|
+
PluginManager.pluginEvent.bind(Sortable)(eventName, sortable, _objectSpread2({
|
|
38764
|
+
dragEl: dragEl,
|
|
38765
|
+
parentEl: parentEl,
|
|
38766
|
+
ghostEl: ghostEl,
|
|
38767
|
+
rootEl: rootEl,
|
|
38768
|
+
nextEl: nextEl,
|
|
38769
|
+
lastDownEl: lastDownEl,
|
|
38770
|
+
cloneEl: cloneEl,
|
|
38771
|
+
cloneHidden: cloneHidden,
|
|
38772
|
+
dragStarted: moved,
|
|
38773
|
+
putSortable: putSortable,
|
|
38774
|
+
activeSortable: Sortable.active,
|
|
38775
|
+
originalEvent: originalEvent,
|
|
38776
|
+
oldIndex: oldIndex,
|
|
38777
|
+
oldDraggableIndex: oldDraggableIndex,
|
|
38778
|
+
newIndex: newIndex,
|
|
38779
|
+
newDraggableIndex: newDraggableIndex,
|
|
38780
|
+
hideGhostForTarget: _hideGhostForTarget,
|
|
38781
|
+
unhideGhostForTarget: _unhideGhostForTarget,
|
|
38782
|
+
cloneNowHidden: function cloneNowHidden() {
|
|
38783
|
+
cloneHidden = true;
|
|
38784
|
+
},
|
|
38785
|
+
cloneNowShown: function cloneNowShown() {
|
|
38786
|
+
cloneHidden = false;
|
|
38787
|
+
},
|
|
38788
|
+
dispatchSortableEvent: function dispatchSortableEvent(name) {
|
|
38789
|
+
_dispatchEvent({
|
|
38790
|
+
sortable: sortable,
|
|
38791
|
+
name: name,
|
|
38792
|
+
originalEvent: originalEvent
|
|
38793
|
+
});
|
|
38794
|
+
}
|
|
38795
|
+
}, data));
|
|
38796
|
+
};
|
|
38797
|
+
function _dispatchEvent(info) {
|
|
38798
|
+
dispatchEvent(_objectSpread2({
|
|
38799
|
+
putSortable: putSortable,
|
|
38800
|
+
cloneEl: cloneEl,
|
|
38801
|
+
targetEl: dragEl,
|
|
38802
|
+
rootEl: rootEl,
|
|
38803
|
+
oldIndex: oldIndex,
|
|
38804
|
+
oldDraggableIndex: oldDraggableIndex,
|
|
38805
|
+
newIndex: newIndex,
|
|
38806
|
+
newDraggableIndex: newDraggableIndex
|
|
38807
|
+
}, info));
|
|
38808
|
+
}
|
|
38809
|
+
var dragEl,
|
|
38810
|
+
parentEl,
|
|
38811
|
+
ghostEl,
|
|
38812
|
+
rootEl,
|
|
38813
|
+
nextEl,
|
|
38814
|
+
lastDownEl,
|
|
38815
|
+
cloneEl,
|
|
38816
|
+
cloneHidden,
|
|
38817
|
+
oldIndex,
|
|
38818
|
+
newIndex,
|
|
38819
|
+
oldDraggableIndex,
|
|
38820
|
+
newDraggableIndex,
|
|
38821
|
+
activeGroup,
|
|
38822
|
+
putSortable,
|
|
38823
|
+
awaitingDragStarted = false,
|
|
38824
|
+
ignoreNextClick = false,
|
|
38825
|
+
sortables = [],
|
|
38826
|
+
tapEvt,
|
|
38827
|
+
touchEvt,
|
|
38828
|
+
lastDx,
|
|
38829
|
+
lastDy,
|
|
38830
|
+
tapDistanceLeft,
|
|
38831
|
+
tapDistanceTop,
|
|
38832
|
+
moved,
|
|
38833
|
+
lastTarget,
|
|
38834
|
+
lastDirection,
|
|
38835
|
+
pastFirstInvertThresh = false,
|
|
38836
|
+
isCircumstantialInvert = false,
|
|
38837
|
+
targetMoveDistance,
|
|
38838
|
+
// For positioning ghost absolutely
|
|
38839
|
+
ghostRelativeParent,
|
|
38840
|
+
ghostRelativeParentInitialScroll = [],
|
|
38841
|
+
// (left, top)
|
|
38842
|
+
|
|
38843
|
+
_silent = false,
|
|
38844
|
+
savedInputChecked = [];
|
|
38845
|
+
|
|
38846
|
+
/** @const */
|
|
38847
|
+
var documentExists = typeof document !== 'undefined',
|
|
38848
|
+
PositionGhostAbsolutely = IOS,
|
|
38849
|
+
CSSFloatProperty = Edge || IE11OrLess ? 'cssFloat' : 'float',
|
|
38850
|
+
// This will not pass for IE9, because IE9 DnD only works on anchors
|
|
38851
|
+
supportDraggable = documentExists && !ChromeForAndroid && !IOS && 'draggable' in document.createElement('div'),
|
|
38852
|
+
supportCssPointerEvents = function () {
|
|
38853
|
+
if (!documentExists) return;
|
|
38854
|
+
// false when <= IE11
|
|
38855
|
+
if (IE11OrLess) {
|
|
38856
|
+
return false;
|
|
38857
|
+
}
|
|
38858
|
+
var el = document.createElement('x');
|
|
38859
|
+
el.style.cssText = 'pointer-events:auto';
|
|
38860
|
+
return el.style.pointerEvents === 'auto';
|
|
38861
|
+
}(),
|
|
38862
|
+
_detectDirection = function _detectDirection(el, options) {
|
|
38863
|
+
var elCSS = css(el),
|
|
38864
|
+
elWidth = parseInt(elCSS.width) - parseInt(elCSS.paddingLeft) - parseInt(elCSS.paddingRight) - parseInt(elCSS.borderLeftWidth) - parseInt(elCSS.borderRightWidth),
|
|
38865
|
+
child1 = getChild(el, 0, options),
|
|
38866
|
+
child2 = getChild(el, 1, options),
|
|
38867
|
+
firstChildCSS = child1 && css(child1),
|
|
38868
|
+
secondChildCSS = child2 && css(child2),
|
|
38869
|
+
firstChildWidth = firstChildCSS && parseInt(firstChildCSS.marginLeft) + parseInt(firstChildCSS.marginRight) + getRect(child1).width,
|
|
38870
|
+
secondChildWidth = secondChildCSS && parseInt(secondChildCSS.marginLeft) + parseInt(secondChildCSS.marginRight) + getRect(child2).width;
|
|
38871
|
+
if (elCSS.display === 'flex') {
|
|
38872
|
+
return elCSS.flexDirection === 'column' || elCSS.flexDirection === 'column-reverse' ? 'vertical' : 'horizontal';
|
|
38873
|
+
}
|
|
38874
|
+
if (elCSS.display === 'grid') {
|
|
38875
|
+
return elCSS.gridTemplateColumns.split(' ').length <= 1 ? 'vertical' : 'horizontal';
|
|
38876
|
+
}
|
|
38877
|
+
if (child1 && firstChildCSS["float"] && firstChildCSS["float"] !== 'none') {
|
|
38878
|
+
var touchingSideChild2 = firstChildCSS["float"] === 'left' ? 'left' : 'right';
|
|
38879
|
+
return child2 && (secondChildCSS.clear === 'both' || secondChildCSS.clear === touchingSideChild2) ? 'vertical' : 'horizontal';
|
|
38880
|
+
}
|
|
38881
|
+
return child1 && (firstChildCSS.display === 'block' || firstChildCSS.display === 'flex' || firstChildCSS.display === 'table' || firstChildCSS.display === 'grid' || firstChildWidth >= elWidth && elCSS[CSSFloatProperty] === 'none' || child2 && elCSS[CSSFloatProperty] === 'none' && firstChildWidth + secondChildWidth > elWidth) ? 'vertical' : 'horizontal';
|
|
38882
|
+
},
|
|
38883
|
+
_dragElInRowColumn = function _dragElInRowColumn(dragRect, targetRect, vertical) {
|
|
38884
|
+
var dragElS1Opp = vertical ? dragRect.left : dragRect.top,
|
|
38885
|
+
dragElS2Opp = vertical ? dragRect.right : dragRect.bottom,
|
|
38886
|
+
dragElOppLength = vertical ? dragRect.width : dragRect.height,
|
|
38887
|
+
targetS1Opp = vertical ? targetRect.left : targetRect.top,
|
|
38888
|
+
targetS2Opp = vertical ? targetRect.right : targetRect.bottom,
|
|
38889
|
+
targetOppLength = vertical ? targetRect.width : targetRect.height;
|
|
38890
|
+
return dragElS1Opp === targetS1Opp || dragElS2Opp === targetS2Opp || dragElS1Opp + dragElOppLength / 2 === targetS1Opp + targetOppLength / 2;
|
|
38891
|
+
},
|
|
38892
|
+
/**
|
|
38893
|
+
* Detects first nearest empty sortable to X and Y position using emptyInsertThreshold.
|
|
38894
|
+
* @param {Number} x X position
|
|
38895
|
+
* @param {Number} y Y position
|
|
38896
|
+
* @return {HTMLElement} Element of the first found nearest Sortable
|
|
38897
|
+
*/
|
|
38898
|
+
_detectNearestEmptySortable = function _detectNearestEmptySortable(x, y) {
|
|
38899
|
+
var ret;
|
|
38900
|
+
sortables.some(function (sortable) {
|
|
38901
|
+
var threshold = sortable[expando].options.emptyInsertThreshold;
|
|
38902
|
+
if (!threshold || lastChild(sortable)) return;
|
|
38903
|
+
var rect = getRect(sortable),
|
|
38904
|
+
insideHorizontally = x >= rect.left - threshold && x <= rect.right + threshold,
|
|
38905
|
+
insideVertically = y >= rect.top - threshold && y <= rect.bottom + threshold;
|
|
38906
|
+
if (insideHorizontally && insideVertically) {
|
|
38907
|
+
return ret = sortable;
|
|
38908
|
+
}
|
|
38909
|
+
});
|
|
38910
|
+
return ret;
|
|
38911
|
+
},
|
|
38912
|
+
_prepareGroup = function _prepareGroup(options) {
|
|
38913
|
+
function toFn(value, pull) {
|
|
38914
|
+
return function (to, from, dragEl, evt) {
|
|
38915
|
+
var sameGroup = to.options.group.name && from.options.group.name && to.options.group.name === from.options.group.name;
|
|
38916
|
+
if (value == null && (pull || sameGroup)) {
|
|
38917
|
+
// Default pull value
|
|
38918
|
+
// Default pull and put value if same group
|
|
38919
|
+
return true;
|
|
38920
|
+
} else if (value == null || value === false) {
|
|
38921
|
+
return false;
|
|
38922
|
+
} else if (pull && value === 'clone') {
|
|
38923
|
+
return value;
|
|
38924
|
+
} else if (typeof value === 'function') {
|
|
38925
|
+
return toFn(value(to, from, dragEl, evt), pull)(to, from, dragEl, evt);
|
|
38926
|
+
} else {
|
|
38927
|
+
var otherGroup = (pull ? to : from).options.group.name;
|
|
38928
|
+
return value === true || typeof value === 'string' && value === otherGroup || value.join && value.indexOf(otherGroup) > -1;
|
|
38929
|
+
}
|
|
38930
|
+
};
|
|
38931
|
+
}
|
|
38932
|
+
var group = {};
|
|
38933
|
+
var originalGroup = options.group;
|
|
38934
|
+
if (!originalGroup || sortable_esm_typeof(originalGroup) != 'object') {
|
|
38935
|
+
originalGroup = {
|
|
38936
|
+
name: originalGroup
|
|
38937
|
+
};
|
|
38938
|
+
}
|
|
38939
|
+
group.name = originalGroup.name;
|
|
38940
|
+
group.checkPull = toFn(originalGroup.pull, true);
|
|
38941
|
+
group.checkPut = toFn(originalGroup.put);
|
|
38942
|
+
group.revertClone = originalGroup.revertClone;
|
|
38943
|
+
options.group = group;
|
|
38944
|
+
},
|
|
38945
|
+
_hideGhostForTarget = function _hideGhostForTarget() {
|
|
38946
|
+
if (!supportCssPointerEvents && ghostEl) {
|
|
38947
|
+
css(ghostEl, 'display', 'none');
|
|
38948
|
+
}
|
|
38949
|
+
},
|
|
38950
|
+
_unhideGhostForTarget = function _unhideGhostForTarget() {
|
|
38951
|
+
if (!supportCssPointerEvents && ghostEl) {
|
|
38952
|
+
css(ghostEl, 'display', '');
|
|
38953
|
+
}
|
|
38954
|
+
};
|
|
38955
|
+
|
|
38956
|
+
// #1184 fix - Prevent click event on fallback if dragged but item not changed position
|
|
38957
|
+
if (documentExists && !ChromeForAndroid) {
|
|
38958
|
+
document.addEventListener('click', function (evt) {
|
|
38959
|
+
if (ignoreNextClick) {
|
|
38960
|
+
evt.preventDefault();
|
|
38961
|
+
evt.stopPropagation && evt.stopPropagation();
|
|
38962
|
+
evt.stopImmediatePropagation && evt.stopImmediatePropagation();
|
|
38963
|
+
ignoreNextClick = false;
|
|
38964
|
+
return false;
|
|
38965
|
+
}
|
|
38966
|
+
}, true);
|
|
38967
|
+
}
|
|
38968
|
+
var nearestEmptyInsertDetectEvent = function nearestEmptyInsertDetectEvent(evt) {
|
|
38969
|
+
if (dragEl) {
|
|
38970
|
+
evt = evt.touches ? evt.touches[0] : evt;
|
|
38971
|
+
var nearest = _detectNearestEmptySortable(evt.clientX, evt.clientY);
|
|
38972
|
+
if (nearest) {
|
|
38973
|
+
// Create imitation event
|
|
38974
|
+
var event = {};
|
|
38975
|
+
for (var i in evt) {
|
|
38976
|
+
if (evt.hasOwnProperty(i)) {
|
|
38977
|
+
event[i] = evt[i];
|
|
38978
|
+
}
|
|
38979
|
+
}
|
|
38980
|
+
event.target = event.rootEl = nearest;
|
|
38981
|
+
event.preventDefault = void 0;
|
|
38982
|
+
event.stopPropagation = void 0;
|
|
38983
|
+
nearest[expando]._onDragOver(event);
|
|
38984
|
+
}
|
|
38985
|
+
}
|
|
38986
|
+
};
|
|
38987
|
+
var _checkOutsideTargetEl = function _checkOutsideTargetEl(evt) {
|
|
38988
|
+
if (dragEl) {
|
|
38989
|
+
dragEl.parentNode[expando]._isOutsideThisEl(evt.target);
|
|
38990
|
+
}
|
|
38991
|
+
};
|
|
38992
|
+
|
|
38993
|
+
/**
|
|
38994
|
+
* @class Sortable
|
|
38995
|
+
* @param {HTMLElement} el
|
|
38996
|
+
* @param {Object} [options]
|
|
38997
|
+
*/
|
|
38998
|
+
function Sortable(el, options) {
|
|
38999
|
+
if (!(el && el.nodeType && el.nodeType === 1)) {
|
|
39000
|
+
throw "Sortable: `el` must be an HTMLElement, not ".concat({}.toString.call(el));
|
|
39001
|
+
}
|
|
39002
|
+
this.el = el; // root element
|
|
39003
|
+
this.options = options = _extends({}, options);
|
|
39004
|
+
|
|
39005
|
+
// Export instance
|
|
39006
|
+
el[expando] = this;
|
|
39007
|
+
var defaults = {
|
|
39008
|
+
group: null,
|
|
39009
|
+
sort: true,
|
|
39010
|
+
disabled: false,
|
|
39011
|
+
store: null,
|
|
39012
|
+
handle: null,
|
|
39013
|
+
draggable: /^[uo]l$/i.test(el.nodeName) ? '>li' : '>*',
|
|
39014
|
+
swapThreshold: 1,
|
|
39015
|
+
// percentage; 0 <= x <= 1
|
|
39016
|
+
invertSwap: false,
|
|
39017
|
+
// invert always
|
|
39018
|
+
invertedSwapThreshold: null,
|
|
39019
|
+
// will be set to same as swapThreshold if default
|
|
39020
|
+
removeCloneOnHide: true,
|
|
39021
|
+
direction: function direction() {
|
|
39022
|
+
return _detectDirection(el, this.options);
|
|
39023
|
+
},
|
|
39024
|
+
ghostClass: 'sortable-ghost',
|
|
39025
|
+
chosenClass: 'sortable-chosen',
|
|
39026
|
+
dragClass: 'sortable-drag',
|
|
39027
|
+
ignore: 'a, img',
|
|
39028
|
+
filter: null,
|
|
39029
|
+
preventOnFilter: true,
|
|
39030
|
+
animation: 0,
|
|
39031
|
+
easing: null,
|
|
39032
|
+
setData: function setData(dataTransfer, dragEl) {
|
|
39033
|
+
dataTransfer.setData('Text', dragEl.textContent);
|
|
39034
|
+
},
|
|
39035
|
+
dropBubble: false,
|
|
39036
|
+
dragoverBubble: false,
|
|
39037
|
+
dataIdAttr: 'data-id',
|
|
39038
|
+
delay: 0,
|
|
39039
|
+
delayOnTouchOnly: false,
|
|
39040
|
+
touchStartThreshold: (Number.parseInt ? Number : window).parseInt(window.devicePixelRatio, 10) || 1,
|
|
39041
|
+
forceFallback: false,
|
|
39042
|
+
fallbackClass: 'sortable-fallback',
|
|
39043
|
+
fallbackOnBody: false,
|
|
39044
|
+
fallbackTolerance: 0,
|
|
39045
|
+
fallbackOffset: {
|
|
39046
|
+
x: 0,
|
|
39047
|
+
y: 0
|
|
39048
|
+
},
|
|
39049
|
+
supportPointer: Sortable.supportPointer !== false && 'PointerEvent' in window && !Safari,
|
|
39050
|
+
emptyInsertThreshold: 5
|
|
39051
|
+
};
|
|
39052
|
+
PluginManager.initializePlugins(this, el, defaults);
|
|
39053
|
+
|
|
39054
|
+
// Set default options
|
|
39055
|
+
for (var name in defaults) {
|
|
39056
|
+
!(name in options) && (options[name] = defaults[name]);
|
|
39057
|
+
}
|
|
39058
|
+
_prepareGroup(options);
|
|
39059
|
+
|
|
39060
|
+
// Bind all private methods
|
|
39061
|
+
for (var fn in this) {
|
|
39062
|
+
if (fn.charAt(0) === '_' && typeof this[fn] === 'function') {
|
|
39063
|
+
this[fn] = this[fn].bind(this);
|
|
39064
|
+
}
|
|
39065
|
+
}
|
|
39066
|
+
|
|
39067
|
+
// Setup drag mode
|
|
39068
|
+
this.nativeDraggable = options.forceFallback ? false : supportDraggable;
|
|
39069
|
+
if (this.nativeDraggable) {
|
|
39070
|
+
// Touch start threshold cannot be greater than the native dragstart threshold
|
|
39071
|
+
this.options.touchStartThreshold = 1;
|
|
39072
|
+
}
|
|
39073
|
+
|
|
39074
|
+
// Bind events
|
|
39075
|
+
if (options.supportPointer) {
|
|
39076
|
+
on(el, 'pointerdown', this._onTapStart);
|
|
39077
|
+
} else {
|
|
39078
|
+
on(el, 'mousedown', this._onTapStart);
|
|
39079
|
+
on(el, 'touchstart', this._onTapStart);
|
|
39080
|
+
}
|
|
39081
|
+
if (this.nativeDraggable) {
|
|
39082
|
+
on(el, 'dragover', this);
|
|
39083
|
+
on(el, 'dragenter', this);
|
|
39084
|
+
}
|
|
39085
|
+
sortables.push(this.el);
|
|
39086
|
+
|
|
39087
|
+
// Restore sorting
|
|
39088
|
+
options.store && options.store.get && this.sort(options.store.get(this) || []);
|
|
39089
|
+
|
|
39090
|
+
// Add animation state manager
|
|
39091
|
+
_extends(this, AnimationStateManager());
|
|
39092
|
+
}
|
|
39093
|
+
Sortable.prototype = /** @lends Sortable.prototype */{
|
|
39094
|
+
constructor: Sortable,
|
|
39095
|
+
_isOutsideThisEl: function _isOutsideThisEl(target) {
|
|
39096
|
+
if (!this.el.contains(target) && target !== this.el) {
|
|
39097
|
+
lastTarget = null;
|
|
39098
|
+
}
|
|
39099
|
+
},
|
|
39100
|
+
_getDirection: function _getDirection(evt, target) {
|
|
39101
|
+
return typeof this.options.direction === 'function' ? this.options.direction.call(this, evt, target, dragEl) : this.options.direction;
|
|
39102
|
+
},
|
|
39103
|
+
_onTapStart: function _onTapStart( /** Event|TouchEvent */evt) {
|
|
39104
|
+
if (!evt.cancelable) return;
|
|
39105
|
+
var _this = this,
|
|
39106
|
+
el = this.el,
|
|
39107
|
+
options = this.options,
|
|
39108
|
+
preventOnFilter = options.preventOnFilter,
|
|
39109
|
+
type = evt.type,
|
|
39110
|
+
touch = evt.touches && evt.touches[0] || evt.pointerType && evt.pointerType === 'touch' && evt,
|
|
39111
|
+
target = (touch || evt).target,
|
|
39112
|
+
originalTarget = evt.target.shadowRoot && (evt.path && evt.path[0] || evt.composedPath && evt.composedPath()[0]) || target,
|
|
39113
|
+
filter = options.filter;
|
|
39114
|
+
_saveInputCheckedState(el);
|
|
39115
|
+
|
|
39116
|
+
// Don't trigger start event when an element is been dragged, otherwise the evt.oldindex always wrong when set option.group.
|
|
39117
|
+
if (dragEl) {
|
|
39118
|
+
return;
|
|
39119
|
+
}
|
|
39120
|
+
if (/mousedown|pointerdown/.test(type) && evt.button !== 0 || options.disabled) {
|
|
39121
|
+
return; // only left button and enabled
|
|
39122
|
+
}
|
|
39123
|
+
|
|
39124
|
+
// cancel dnd if original target is content editable
|
|
39125
|
+
if (originalTarget.isContentEditable) {
|
|
39126
|
+
return;
|
|
39127
|
+
}
|
|
39128
|
+
|
|
39129
|
+
// Safari ignores further event handling after mousedown
|
|
39130
|
+
if (!this.nativeDraggable && Safari && target && target.tagName.toUpperCase() === 'SELECT') {
|
|
39131
|
+
return;
|
|
39132
|
+
}
|
|
39133
|
+
target = closest(target, options.draggable, el, false);
|
|
39134
|
+
if (target && target.animated) {
|
|
39135
|
+
return;
|
|
39136
|
+
}
|
|
39137
|
+
if (lastDownEl === target) {
|
|
39138
|
+
// Ignoring duplicate `down`
|
|
39139
|
+
return;
|
|
39140
|
+
}
|
|
39141
|
+
|
|
39142
|
+
// Get the index of the dragged element within its parent
|
|
39143
|
+
oldIndex = sortable_esm_index(target);
|
|
39144
|
+
oldDraggableIndex = sortable_esm_index(target, options.draggable);
|
|
39145
|
+
|
|
39146
|
+
// Check filter
|
|
39147
|
+
if (typeof filter === 'function') {
|
|
39148
|
+
if (filter.call(this, evt, target, this)) {
|
|
39149
|
+
_dispatchEvent({
|
|
39150
|
+
sortable: _this,
|
|
39151
|
+
rootEl: originalTarget,
|
|
39152
|
+
name: 'filter',
|
|
39153
|
+
targetEl: target,
|
|
39154
|
+
toEl: el,
|
|
39155
|
+
fromEl: el
|
|
39156
|
+
});
|
|
39157
|
+
pluginEvent('filter', _this, {
|
|
39158
|
+
evt: evt
|
|
39159
|
+
});
|
|
39160
|
+
preventOnFilter && evt.cancelable && evt.preventDefault();
|
|
39161
|
+
return; // cancel dnd
|
|
39162
|
+
}
|
|
39163
|
+
} else if (filter) {
|
|
39164
|
+
filter = filter.split(',').some(function (criteria) {
|
|
39165
|
+
criteria = closest(originalTarget, criteria.trim(), el, false);
|
|
39166
|
+
if (criteria) {
|
|
39167
|
+
_dispatchEvent({
|
|
39168
|
+
sortable: _this,
|
|
39169
|
+
rootEl: criteria,
|
|
39170
|
+
name: 'filter',
|
|
39171
|
+
targetEl: target,
|
|
39172
|
+
fromEl: el,
|
|
39173
|
+
toEl: el
|
|
39174
|
+
});
|
|
39175
|
+
pluginEvent('filter', _this, {
|
|
39176
|
+
evt: evt
|
|
39177
|
+
});
|
|
39178
|
+
return true;
|
|
39179
|
+
}
|
|
39180
|
+
});
|
|
39181
|
+
if (filter) {
|
|
39182
|
+
preventOnFilter && evt.cancelable && evt.preventDefault();
|
|
39183
|
+
return; // cancel dnd
|
|
39184
|
+
}
|
|
39185
|
+
}
|
|
39186
|
+
if (options.handle && !closest(originalTarget, options.handle, el, false)) {
|
|
39187
|
+
return;
|
|
39188
|
+
}
|
|
39189
|
+
|
|
39190
|
+
// Prepare `dragstart`
|
|
39191
|
+
this._prepareDragStart(evt, touch, target);
|
|
39192
|
+
},
|
|
39193
|
+
_prepareDragStart: function _prepareDragStart( /** Event */evt, /** Touch */touch, /** HTMLElement */target) {
|
|
39194
|
+
var _this = this,
|
|
39195
|
+
el = _this.el,
|
|
39196
|
+
options = _this.options,
|
|
39197
|
+
ownerDocument = el.ownerDocument,
|
|
39198
|
+
dragStartFn;
|
|
39199
|
+
if (target && !dragEl && target.parentNode === el) {
|
|
39200
|
+
var dragRect = getRect(target);
|
|
39201
|
+
rootEl = el;
|
|
39202
|
+
dragEl = target;
|
|
39203
|
+
parentEl = dragEl.parentNode;
|
|
39204
|
+
nextEl = dragEl.nextSibling;
|
|
39205
|
+
lastDownEl = target;
|
|
39206
|
+
activeGroup = options.group;
|
|
39207
|
+
Sortable.dragged = dragEl;
|
|
39208
|
+
tapEvt = {
|
|
39209
|
+
target: dragEl,
|
|
39210
|
+
clientX: (touch || evt).clientX,
|
|
39211
|
+
clientY: (touch || evt).clientY
|
|
39212
|
+
};
|
|
39213
|
+
tapDistanceLeft = tapEvt.clientX - dragRect.left;
|
|
39214
|
+
tapDistanceTop = tapEvt.clientY - dragRect.top;
|
|
39215
|
+
this._lastX = (touch || evt).clientX;
|
|
39216
|
+
this._lastY = (touch || evt).clientY;
|
|
39217
|
+
dragEl.style['will-change'] = 'all';
|
|
39218
|
+
dragStartFn = function dragStartFn() {
|
|
39219
|
+
pluginEvent('delayEnded', _this, {
|
|
39220
|
+
evt: evt
|
|
39221
|
+
});
|
|
39222
|
+
if (Sortable.eventCanceled) {
|
|
39223
|
+
_this._onDrop();
|
|
39224
|
+
return;
|
|
39225
|
+
}
|
|
39226
|
+
// Delayed drag has been triggered
|
|
39227
|
+
// we can re-enable the events: touchmove/mousemove
|
|
39228
|
+
_this._disableDelayedDragEvents();
|
|
39229
|
+
if (!FireFox && _this.nativeDraggable) {
|
|
39230
|
+
dragEl.draggable = true;
|
|
39231
|
+
}
|
|
39232
|
+
|
|
39233
|
+
// Bind the events: dragstart/dragend
|
|
39234
|
+
_this._triggerDragStart(evt, touch);
|
|
39235
|
+
|
|
39236
|
+
// Drag start event
|
|
39237
|
+
_dispatchEvent({
|
|
39238
|
+
sortable: _this,
|
|
39239
|
+
name: 'choose',
|
|
39240
|
+
originalEvent: evt
|
|
39241
|
+
});
|
|
39242
|
+
|
|
39243
|
+
// Chosen item
|
|
39244
|
+
toggleClass(dragEl, options.chosenClass, true);
|
|
39245
|
+
};
|
|
39246
|
+
|
|
39247
|
+
// Disable "draggable"
|
|
39248
|
+
options.ignore.split(',').forEach(function (criteria) {
|
|
39249
|
+
sortable_esm_find(dragEl, criteria.trim(), _disableDraggable);
|
|
39250
|
+
});
|
|
39251
|
+
on(ownerDocument, 'dragover', nearestEmptyInsertDetectEvent);
|
|
39252
|
+
on(ownerDocument, 'mousemove', nearestEmptyInsertDetectEvent);
|
|
39253
|
+
on(ownerDocument, 'touchmove', nearestEmptyInsertDetectEvent);
|
|
39254
|
+
on(ownerDocument, 'mouseup', _this._onDrop);
|
|
39255
|
+
on(ownerDocument, 'touchend', _this._onDrop);
|
|
39256
|
+
on(ownerDocument, 'touchcancel', _this._onDrop);
|
|
39257
|
+
|
|
39258
|
+
// Make dragEl draggable (must be before delay for FireFox)
|
|
39259
|
+
if (FireFox && this.nativeDraggable) {
|
|
39260
|
+
this.options.touchStartThreshold = 4;
|
|
39261
|
+
dragEl.draggable = true;
|
|
39262
|
+
}
|
|
39263
|
+
pluginEvent('delayStart', this, {
|
|
39264
|
+
evt: evt
|
|
39265
|
+
});
|
|
39266
|
+
|
|
39267
|
+
// Delay is impossible for native DnD in Edge or IE
|
|
39268
|
+
if (options.delay && (!options.delayOnTouchOnly || touch) && (!this.nativeDraggable || !(Edge || IE11OrLess))) {
|
|
39269
|
+
if (Sortable.eventCanceled) {
|
|
39270
|
+
this._onDrop();
|
|
39271
|
+
return;
|
|
39272
|
+
}
|
|
39273
|
+
// If the user moves the pointer or let go the click or touch
|
|
39274
|
+
// before the delay has been reached:
|
|
39275
|
+
// disable the delayed drag
|
|
39276
|
+
on(ownerDocument, 'mouseup', _this._disableDelayedDrag);
|
|
39277
|
+
on(ownerDocument, 'touchend', _this._disableDelayedDrag);
|
|
39278
|
+
on(ownerDocument, 'touchcancel', _this._disableDelayedDrag);
|
|
39279
|
+
on(ownerDocument, 'mousemove', _this._delayedDragTouchMoveHandler);
|
|
39280
|
+
on(ownerDocument, 'touchmove', _this._delayedDragTouchMoveHandler);
|
|
39281
|
+
options.supportPointer && on(ownerDocument, 'pointermove', _this._delayedDragTouchMoveHandler);
|
|
39282
|
+
_this._dragStartTimer = setTimeout(dragStartFn, options.delay);
|
|
39283
|
+
} else {
|
|
39284
|
+
dragStartFn();
|
|
39285
|
+
}
|
|
39286
|
+
}
|
|
39287
|
+
},
|
|
39288
|
+
_delayedDragTouchMoveHandler: function _delayedDragTouchMoveHandler( /** TouchEvent|PointerEvent **/e) {
|
|
39289
|
+
var touch = e.touches ? e.touches[0] : e;
|
|
39290
|
+
if (Math.max(Math.abs(touch.clientX - this._lastX), Math.abs(touch.clientY - this._lastY)) >= Math.floor(this.options.touchStartThreshold / (this.nativeDraggable && window.devicePixelRatio || 1))) {
|
|
39291
|
+
this._disableDelayedDrag();
|
|
39292
|
+
}
|
|
39293
|
+
},
|
|
39294
|
+
_disableDelayedDrag: function _disableDelayedDrag() {
|
|
39295
|
+
dragEl && _disableDraggable(dragEl);
|
|
39296
|
+
clearTimeout(this._dragStartTimer);
|
|
39297
|
+
this._disableDelayedDragEvents();
|
|
39298
|
+
},
|
|
39299
|
+
_disableDelayedDragEvents: function _disableDelayedDragEvents() {
|
|
39300
|
+
var ownerDocument = this.el.ownerDocument;
|
|
39301
|
+
off(ownerDocument, 'mouseup', this._disableDelayedDrag);
|
|
39302
|
+
off(ownerDocument, 'touchend', this._disableDelayedDrag);
|
|
39303
|
+
off(ownerDocument, 'touchcancel', this._disableDelayedDrag);
|
|
39304
|
+
off(ownerDocument, 'mousemove', this._delayedDragTouchMoveHandler);
|
|
39305
|
+
off(ownerDocument, 'touchmove', this._delayedDragTouchMoveHandler);
|
|
39306
|
+
off(ownerDocument, 'pointermove', this._delayedDragTouchMoveHandler);
|
|
39307
|
+
},
|
|
39308
|
+
_triggerDragStart: function _triggerDragStart( /** Event */evt, /** Touch */touch) {
|
|
39309
|
+
touch = touch || evt.pointerType == 'touch' && evt;
|
|
39310
|
+
if (!this.nativeDraggable || touch) {
|
|
39311
|
+
if (this.options.supportPointer) {
|
|
39312
|
+
on(document, 'pointermove', this._onTouchMove);
|
|
39313
|
+
} else if (touch) {
|
|
39314
|
+
on(document, 'touchmove', this._onTouchMove);
|
|
39315
|
+
} else {
|
|
39316
|
+
on(document, 'mousemove', this._onTouchMove);
|
|
39317
|
+
}
|
|
39318
|
+
} else {
|
|
39319
|
+
on(dragEl, 'dragend', this);
|
|
39320
|
+
on(rootEl, 'dragstart', this._onDragStart);
|
|
39321
|
+
}
|
|
39322
|
+
try {
|
|
39323
|
+
if (document.selection) {
|
|
39324
|
+
// Timeout neccessary for IE9
|
|
39325
|
+
_nextTick(function () {
|
|
39326
|
+
document.selection.empty();
|
|
39327
|
+
});
|
|
39328
|
+
} else {
|
|
39329
|
+
window.getSelection().removeAllRanges();
|
|
39330
|
+
}
|
|
39331
|
+
} catch (err) {}
|
|
39332
|
+
},
|
|
39333
|
+
_dragStarted: function _dragStarted(fallback, evt) {
|
|
39334
|
+
awaitingDragStarted = false;
|
|
39335
|
+
if (rootEl && dragEl) {
|
|
39336
|
+
pluginEvent('dragStarted', this, {
|
|
39337
|
+
evt: evt
|
|
39338
|
+
});
|
|
39339
|
+
if (this.nativeDraggable) {
|
|
39340
|
+
on(document, 'dragover', _checkOutsideTargetEl);
|
|
39341
|
+
}
|
|
39342
|
+
var options = this.options;
|
|
39343
|
+
|
|
39344
|
+
// Apply effect
|
|
39345
|
+
!fallback && toggleClass(dragEl, options.dragClass, false);
|
|
39346
|
+
toggleClass(dragEl, options.ghostClass, true);
|
|
39347
|
+
Sortable.active = this;
|
|
39348
|
+
fallback && this._appendGhost();
|
|
39349
|
+
|
|
39350
|
+
// Drag start event
|
|
39351
|
+
_dispatchEvent({
|
|
39352
|
+
sortable: this,
|
|
39353
|
+
name: 'start',
|
|
39354
|
+
originalEvent: evt
|
|
39355
|
+
});
|
|
39356
|
+
} else {
|
|
39357
|
+
this._nulling();
|
|
39358
|
+
}
|
|
39359
|
+
},
|
|
39360
|
+
_emulateDragOver: function _emulateDragOver() {
|
|
39361
|
+
if (touchEvt) {
|
|
39362
|
+
this._lastX = touchEvt.clientX;
|
|
39363
|
+
this._lastY = touchEvt.clientY;
|
|
39364
|
+
_hideGhostForTarget();
|
|
39365
|
+
var target = document.elementFromPoint(touchEvt.clientX, touchEvt.clientY);
|
|
39366
|
+
var parent = target;
|
|
39367
|
+
while (target && target.shadowRoot) {
|
|
39368
|
+
target = target.shadowRoot.elementFromPoint(touchEvt.clientX, touchEvt.clientY);
|
|
39369
|
+
if (target === parent) break;
|
|
39370
|
+
parent = target;
|
|
39371
|
+
}
|
|
39372
|
+
dragEl.parentNode[expando]._isOutsideThisEl(target);
|
|
39373
|
+
if (parent) {
|
|
39374
|
+
do {
|
|
39375
|
+
if (parent[expando]) {
|
|
39376
|
+
var inserted = void 0;
|
|
39377
|
+
inserted = parent[expando]._onDragOver({
|
|
39378
|
+
clientX: touchEvt.clientX,
|
|
39379
|
+
clientY: touchEvt.clientY,
|
|
39380
|
+
target: target,
|
|
39381
|
+
rootEl: parent
|
|
39382
|
+
});
|
|
39383
|
+
if (inserted && !this.options.dragoverBubble) {
|
|
39384
|
+
break;
|
|
39385
|
+
}
|
|
39386
|
+
}
|
|
39387
|
+
target = parent; // store last element
|
|
39388
|
+
}
|
|
39389
|
+
/* jshint boss:true */ while (parent = parent.parentNode);
|
|
39390
|
+
}
|
|
39391
|
+
_unhideGhostForTarget();
|
|
39392
|
+
}
|
|
39393
|
+
},
|
|
39394
|
+
_onTouchMove: function _onTouchMove( /**TouchEvent*/evt) {
|
|
39395
|
+
if (tapEvt) {
|
|
39396
|
+
var options = this.options,
|
|
39397
|
+
fallbackTolerance = options.fallbackTolerance,
|
|
39398
|
+
fallbackOffset = options.fallbackOffset,
|
|
39399
|
+
touch = evt.touches ? evt.touches[0] : evt,
|
|
39400
|
+
ghostMatrix = ghostEl && matrix(ghostEl, true),
|
|
39401
|
+
scaleX = ghostEl && ghostMatrix && ghostMatrix.a,
|
|
39402
|
+
scaleY = ghostEl && ghostMatrix && ghostMatrix.d,
|
|
39403
|
+
relativeScrollOffset = PositionGhostAbsolutely && ghostRelativeParent && getRelativeScrollOffset(ghostRelativeParent),
|
|
39404
|
+
dx = (touch.clientX - tapEvt.clientX + fallbackOffset.x) / (scaleX || 1) + (relativeScrollOffset ? relativeScrollOffset[0] - ghostRelativeParentInitialScroll[0] : 0) / (scaleX || 1),
|
|
39405
|
+
dy = (touch.clientY - tapEvt.clientY + fallbackOffset.y) / (scaleY || 1) + (relativeScrollOffset ? relativeScrollOffset[1] - ghostRelativeParentInitialScroll[1] : 0) / (scaleY || 1);
|
|
39406
|
+
|
|
39407
|
+
// only set the status to dragging, when we are actually dragging
|
|
39408
|
+
if (!Sortable.active && !awaitingDragStarted) {
|
|
39409
|
+
if (fallbackTolerance && Math.max(Math.abs(touch.clientX - this._lastX), Math.abs(touch.clientY - this._lastY)) < fallbackTolerance) {
|
|
39410
|
+
return;
|
|
39411
|
+
}
|
|
39412
|
+
this._onDragStart(evt, true);
|
|
39413
|
+
}
|
|
39414
|
+
if (ghostEl) {
|
|
39415
|
+
if (ghostMatrix) {
|
|
39416
|
+
ghostMatrix.e += dx - (lastDx || 0);
|
|
39417
|
+
ghostMatrix.f += dy - (lastDy || 0);
|
|
39418
|
+
} else {
|
|
39419
|
+
ghostMatrix = {
|
|
39420
|
+
a: 1,
|
|
39421
|
+
b: 0,
|
|
39422
|
+
c: 0,
|
|
39423
|
+
d: 1,
|
|
39424
|
+
e: dx,
|
|
39425
|
+
f: dy
|
|
39426
|
+
};
|
|
39427
|
+
}
|
|
39428
|
+
var cssMatrix = "matrix(".concat(ghostMatrix.a, ",").concat(ghostMatrix.b, ",").concat(ghostMatrix.c, ",").concat(ghostMatrix.d, ",").concat(ghostMatrix.e, ",").concat(ghostMatrix.f, ")");
|
|
39429
|
+
css(ghostEl, 'webkitTransform', cssMatrix);
|
|
39430
|
+
css(ghostEl, 'mozTransform', cssMatrix);
|
|
39431
|
+
css(ghostEl, 'msTransform', cssMatrix);
|
|
39432
|
+
css(ghostEl, 'transform', cssMatrix);
|
|
39433
|
+
lastDx = dx;
|
|
39434
|
+
lastDy = dy;
|
|
39435
|
+
touchEvt = touch;
|
|
39436
|
+
}
|
|
39437
|
+
evt.cancelable && evt.preventDefault();
|
|
39438
|
+
}
|
|
39439
|
+
},
|
|
39440
|
+
_appendGhost: function _appendGhost() {
|
|
39441
|
+
// Bug if using scale(): https://stackoverflow.com/questions/2637058
|
|
39442
|
+
// Not being adjusted for
|
|
39443
|
+
if (!ghostEl) {
|
|
39444
|
+
var container = this.options.fallbackOnBody ? document.body : rootEl,
|
|
39445
|
+
rect = getRect(dragEl, true, PositionGhostAbsolutely, true, container),
|
|
39446
|
+
options = this.options;
|
|
39447
|
+
|
|
39448
|
+
// Position absolutely
|
|
39449
|
+
if (PositionGhostAbsolutely) {
|
|
39450
|
+
// Get relatively positioned parent
|
|
39451
|
+
ghostRelativeParent = container;
|
|
39452
|
+
while (css(ghostRelativeParent, 'position') === 'static' && css(ghostRelativeParent, 'transform') === 'none' && ghostRelativeParent !== document) {
|
|
39453
|
+
ghostRelativeParent = ghostRelativeParent.parentNode;
|
|
39454
|
+
}
|
|
39455
|
+
if (ghostRelativeParent !== document.body && ghostRelativeParent !== document.documentElement) {
|
|
39456
|
+
if (ghostRelativeParent === document) ghostRelativeParent = getWindowScrollingElement();
|
|
39457
|
+
rect.top += ghostRelativeParent.scrollTop;
|
|
39458
|
+
rect.left += ghostRelativeParent.scrollLeft;
|
|
39459
|
+
} else {
|
|
39460
|
+
ghostRelativeParent = getWindowScrollingElement();
|
|
39461
|
+
}
|
|
39462
|
+
ghostRelativeParentInitialScroll = getRelativeScrollOffset(ghostRelativeParent);
|
|
39463
|
+
}
|
|
39464
|
+
ghostEl = dragEl.cloneNode(true);
|
|
39465
|
+
toggleClass(ghostEl, options.ghostClass, false);
|
|
39466
|
+
toggleClass(ghostEl, options.fallbackClass, true);
|
|
39467
|
+
toggleClass(ghostEl, options.dragClass, true);
|
|
39468
|
+
css(ghostEl, 'transition', '');
|
|
39469
|
+
css(ghostEl, 'transform', '');
|
|
39470
|
+
css(ghostEl, 'box-sizing', 'border-box');
|
|
39471
|
+
css(ghostEl, 'margin', 0);
|
|
39472
|
+
css(ghostEl, 'top', rect.top);
|
|
39473
|
+
css(ghostEl, 'left', rect.left);
|
|
39474
|
+
css(ghostEl, 'width', rect.width);
|
|
39475
|
+
css(ghostEl, 'height', rect.height);
|
|
39476
|
+
css(ghostEl, 'opacity', '0.8');
|
|
39477
|
+
css(ghostEl, 'position', PositionGhostAbsolutely ? 'absolute' : 'fixed');
|
|
39478
|
+
css(ghostEl, 'zIndex', '100000');
|
|
39479
|
+
css(ghostEl, 'pointerEvents', 'none');
|
|
39480
|
+
Sortable.ghost = ghostEl;
|
|
39481
|
+
container.appendChild(ghostEl);
|
|
39482
|
+
|
|
39483
|
+
// Set transform-origin
|
|
39484
|
+
css(ghostEl, 'transform-origin', tapDistanceLeft / parseInt(ghostEl.style.width) * 100 + '% ' + tapDistanceTop / parseInt(ghostEl.style.height) * 100 + '%');
|
|
39485
|
+
}
|
|
39486
|
+
},
|
|
39487
|
+
_onDragStart: function _onDragStart( /**Event*/evt, /**boolean*/fallback) {
|
|
39488
|
+
var _this = this;
|
|
39489
|
+
var dataTransfer = evt.dataTransfer;
|
|
39490
|
+
var options = _this.options;
|
|
39491
|
+
pluginEvent('dragStart', this, {
|
|
39492
|
+
evt: evt
|
|
39493
|
+
});
|
|
39494
|
+
if (Sortable.eventCanceled) {
|
|
39495
|
+
this._onDrop();
|
|
39496
|
+
return;
|
|
39497
|
+
}
|
|
39498
|
+
pluginEvent('setupClone', this);
|
|
39499
|
+
if (!Sortable.eventCanceled) {
|
|
39500
|
+
cloneEl = clone(dragEl);
|
|
39501
|
+
cloneEl.removeAttribute("id");
|
|
39502
|
+
cloneEl.draggable = false;
|
|
39503
|
+
cloneEl.style['will-change'] = '';
|
|
39504
|
+
this._hideClone();
|
|
39505
|
+
toggleClass(cloneEl, this.options.chosenClass, false);
|
|
39506
|
+
Sortable.clone = cloneEl;
|
|
39507
|
+
}
|
|
39508
|
+
|
|
39509
|
+
// #1143: IFrame support workaround
|
|
39510
|
+
_this.cloneId = _nextTick(function () {
|
|
39511
|
+
pluginEvent('clone', _this);
|
|
39512
|
+
if (Sortable.eventCanceled) return;
|
|
39513
|
+
if (!_this.options.removeCloneOnHide) {
|
|
39514
|
+
rootEl.insertBefore(cloneEl, dragEl);
|
|
39515
|
+
}
|
|
39516
|
+
_this._hideClone();
|
|
39517
|
+
_dispatchEvent({
|
|
39518
|
+
sortable: _this,
|
|
39519
|
+
name: 'clone'
|
|
39520
|
+
});
|
|
39521
|
+
});
|
|
39522
|
+
!fallback && toggleClass(dragEl, options.dragClass, true);
|
|
39523
|
+
|
|
39524
|
+
// Set proper drop events
|
|
39525
|
+
if (fallback) {
|
|
39526
|
+
ignoreNextClick = true;
|
|
39527
|
+
_this._loopId = setInterval(_this._emulateDragOver, 50);
|
|
39528
|
+
} else {
|
|
39529
|
+
// Undo what was set in _prepareDragStart before drag started
|
|
39530
|
+
off(document, 'mouseup', _this._onDrop);
|
|
39531
|
+
off(document, 'touchend', _this._onDrop);
|
|
39532
|
+
off(document, 'touchcancel', _this._onDrop);
|
|
39533
|
+
if (dataTransfer) {
|
|
39534
|
+
dataTransfer.effectAllowed = 'move';
|
|
39535
|
+
options.setData && options.setData.call(_this, dataTransfer, dragEl);
|
|
39536
|
+
}
|
|
39537
|
+
on(document, 'drop', _this);
|
|
39538
|
+
|
|
39539
|
+
// #1276 fix:
|
|
39540
|
+
css(dragEl, 'transform', 'translateZ(0)');
|
|
39541
|
+
}
|
|
39542
|
+
awaitingDragStarted = true;
|
|
39543
|
+
_this._dragStartId = _nextTick(_this._dragStarted.bind(_this, fallback, evt));
|
|
39544
|
+
on(document, 'selectstart', _this);
|
|
39545
|
+
moved = true;
|
|
39546
|
+
if (Safari) {
|
|
39547
|
+
css(document.body, 'user-select', 'none');
|
|
39548
|
+
}
|
|
39549
|
+
},
|
|
39550
|
+
// Returns true - if no further action is needed (either inserted or another condition)
|
|
39551
|
+
_onDragOver: function _onDragOver( /**Event*/evt) {
|
|
39552
|
+
var el = this.el,
|
|
39553
|
+
target = evt.target,
|
|
39554
|
+
dragRect,
|
|
39555
|
+
targetRect,
|
|
39556
|
+
revert,
|
|
39557
|
+
options = this.options,
|
|
39558
|
+
group = options.group,
|
|
39559
|
+
activeSortable = Sortable.active,
|
|
39560
|
+
isOwner = activeGroup === group,
|
|
39561
|
+
canSort = options.sort,
|
|
39562
|
+
fromSortable = putSortable || activeSortable,
|
|
39563
|
+
vertical,
|
|
39564
|
+
_this = this,
|
|
39565
|
+
completedFired = false;
|
|
39566
|
+
if (_silent) return;
|
|
39567
|
+
function dragOverEvent(name, extra) {
|
|
39568
|
+
pluginEvent(name, _this, _objectSpread2({
|
|
39569
|
+
evt: evt,
|
|
39570
|
+
isOwner: isOwner,
|
|
39571
|
+
axis: vertical ? 'vertical' : 'horizontal',
|
|
39572
|
+
revert: revert,
|
|
39573
|
+
dragRect: dragRect,
|
|
39574
|
+
targetRect: targetRect,
|
|
39575
|
+
canSort: canSort,
|
|
39576
|
+
fromSortable: fromSortable,
|
|
39577
|
+
target: target,
|
|
39578
|
+
completed: completed,
|
|
39579
|
+
onMove: function onMove(target, after) {
|
|
39580
|
+
return _onMove(rootEl, el, dragEl, dragRect, target, getRect(target), evt, after);
|
|
39581
|
+
},
|
|
39582
|
+
changed: changed
|
|
39583
|
+
}, extra));
|
|
39584
|
+
}
|
|
39585
|
+
|
|
39586
|
+
// Capture animation state
|
|
39587
|
+
function capture() {
|
|
39588
|
+
dragOverEvent('dragOverAnimationCapture');
|
|
39589
|
+
_this.captureAnimationState();
|
|
39590
|
+
if (_this !== fromSortable) {
|
|
39591
|
+
fromSortable.captureAnimationState();
|
|
39592
|
+
}
|
|
39593
|
+
}
|
|
39594
|
+
|
|
39595
|
+
// Return invocation when dragEl is inserted (or completed)
|
|
39596
|
+
function completed(insertion) {
|
|
39597
|
+
dragOverEvent('dragOverCompleted', {
|
|
39598
|
+
insertion: insertion
|
|
39599
|
+
});
|
|
39600
|
+
if (insertion) {
|
|
39601
|
+
// Clones must be hidden before folding animation to capture dragRectAbsolute properly
|
|
39602
|
+
if (isOwner) {
|
|
39603
|
+
activeSortable._hideClone();
|
|
39604
|
+
} else {
|
|
39605
|
+
activeSortable._showClone(_this);
|
|
39606
|
+
}
|
|
39607
|
+
if (_this !== fromSortable) {
|
|
39608
|
+
// Set ghost class to new sortable's ghost class
|
|
39609
|
+
toggleClass(dragEl, putSortable ? putSortable.options.ghostClass : activeSortable.options.ghostClass, false);
|
|
39610
|
+
toggleClass(dragEl, options.ghostClass, true);
|
|
39611
|
+
}
|
|
39612
|
+
if (putSortable !== _this && _this !== Sortable.active) {
|
|
39613
|
+
putSortable = _this;
|
|
39614
|
+
} else if (_this === Sortable.active && putSortable) {
|
|
39615
|
+
putSortable = null;
|
|
39616
|
+
}
|
|
39617
|
+
|
|
39618
|
+
// Animation
|
|
39619
|
+
if (fromSortable === _this) {
|
|
39620
|
+
_this._ignoreWhileAnimating = target;
|
|
39621
|
+
}
|
|
39622
|
+
_this.animateAll(function () {
|
|
39623
|
+
dragOverEvent('dragOverAnimationComplete');
|
|
39624
|
+
_this._ignoreWhileAnimating = null;
|
|
39625
|
+
});
|
|
39626
|
+
if (_this !== fromSortable) {
|
|
39627
|
+
fromSortable.animateAll();
|
|
39628
|
+
fromSortable._ignoreWhileAnimating = null;
|
|
39629
|
+
}
|
|
39630
|
+
}
|
|
39631
|
+
|
|
39632
|
+
// Null lastTarget if it is not inside a previously swapped element
|
|
39633
|
+
if (target === dragEl && !dragEl.animated || target === el && !target.animated) {
|
|
39634
|
+
lastTarget = null;
|
|
39635
|
+
}
|
|
39636
|
+
|
|
39637
|
+
// no bubbling and not fallback
|
|
39638
|
+
if (!options.dragoverBubble && !evt.rootEl && target !== document) {
|
|
39639
|
+
dragEl.parentNode[expando]._isOutsideThisEl(evt.target);
|
|
39640
|
+
|
|
39641
|
+
// Do not detect for empty insert if already inserted
|
|
39642
|
+
!insertion && nearestEmptyInsertDetectEvent(evt);
|
|
39643
|
+
}
|
|
39644
|
+
!options.dragoverBubble && evt.stopPropagation && evt.stopPropagation();
|
|
39645
|
+
return completedFired = true;
|
|
39646
|
+
}
|
|
39647
|
+
|
|
39648
|
+
// Call when dragEl has been inserted
|
|
39649
|
+
function changed() {
|
|
39650
|
+
newIndex = sortable_esm_index(dragEl);
|
|
39651
|
+
newDraggableIndex = sortable_esm_index(dragEl, options.draggable);
|
|
39652
|
+
_dispatchEvent({
|
|
39653
|
+
sortable: _this,
|
|
39654
|
+
name: 'change',
|
|
39655
|
+
toEl: el,
|
|
39656
|
+
newIndex: newIndex,
|
|
39657
|
+
newDraggableIndex: newDraggableIndex,
|
|
39658
|
+
originalEvent: evt
|
|
39659
|
+
});
|
|
39660
|
+
}
|
|
39661
|
+
if (evt.preventDefault !== void 0) {
|
|
39662
|
+
evt.cancelable && evt.preventDefault();
|
|
39663
|
+
}
|
|
39664
|
+
target = closest(target, options.draggable, el, true);
|
|
39665
|
+
dragOverEvent('dragOver');
|
|
39666
|
+
if (Sortable.eventCanceled) return completedFired;
|
|
39667
|
+
if (dragEl.contains(evt.target) || target.animated && target.animatingX && target.animatingY || _this._ignoreWhileAnimating === target) {
|
|
39668
|
+
return completed(false);
|
|
39669
|
+
}
|
|
39670
|
+
ignoreNextClick = false;
|
|
39671
|
+
if (activeSortable && !options.disabled && (isOwner ? canSort || (revert = parentEl !== rootEl) // Reverting item into the original list
|
|
39672
|
+
: putSortable === this || (this.lastPutMode = activeGroup.checkPull(this, activeSortable, dragEl, evt)) && group.checkPut(this, activeSortable, dragEl, evt))) {
|
|
39673
|
+
vertical = this._getDirection(evt, target) === 'vertical';
|
|
39674
|
+
dragRect = getRect(dragEl);
|
|
39675
|
+
dragOverEvent('dragOverValid');
|
|
39676
|
+
if (Sortable.eventCanceled) return completedFired;
|
|
39677
|
+
if (revert) {
|
|
39678
|
+
parentEl = rootEl; // actualization
|
|
39679
|
+
capture();
|
|
39680
|
+
this._hideClone();
|
|
39681
|
+
dragOverEvent('revert');
|
|
39682
|
+
if (!Sortable.eventCanceled) {
|
|
39683
|
+
if (nextEl) {
|
|
39684
|
+
rootEl.insertBefore(dragEl, nextEl);
|
|
39685
|
+
} else {
|
|
39686
|
+
rootEl.appendChild(dragEl);
|
|
39687
|
+
}
|
|
39688
|
+
}
|
|
39689
|
+
return completed(true);
|
|
39690
|
+
}
|
|
39691
|
+
var elLastChild = lastChild(el, options.draggable);
|
|
39692
|
+
if (!elLastChild || _ghostIsLast(evt, vertical, this) && !elLastChild.animated) {
|
|
39693
|
+
// Insert to end of list
|
|
39694
|
+
|
|
39695
|
+
// If already at end of list: Do not insert
|
|
39696
|
+
if (elLastChild === dragEl) {
|
|
39697
|
+
return completed(false);
|
|
39698
|
+
}
|
|
39699
|
+
|
|
39700
|
+
// if there is a last element, it is the target
|
|
39701
|
+
if (elLastChild && el === evt.target) {
|
|
39702
|
+
target = elLastChild;
|
|
39703
|
+
}
|
|
39704
|
+
if (target) {
|
|
39705
|
+
targetRect = getRect(target);
|
|
39706
|
+
}
|
|
39707
|
+
if (_onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, !!target) !== false) {
|
|
39708
|
+
capture();
|
|
39709
|
+
if (elLastChild && elLastChild.nextSibling) {
|
|
39710
|
+
// the last draggable element is not the last node
|
|
39711
|
+
el.insertBefore(dragEl, elLastChild.nextSibling);
|
|
39712
|
+
} else {
|
|
39713
|
+
el.appendChild(dragEl);
|
|
39714
|
+
}
|
|
39715
|
+
parentEl = el; // actualization
|
|
39716
|
+
|
|
39717
|
+
changed();
|
|
39718
|
+
return completed(true);
|
|
39719
|
+
}
|
|
39720
|
+
} else if (elLastChild && _ghostIsFirst(evt, vertical, this)) {
|
|
39721
|
+
// Insert to start of list
|
|
39722
|
+
var firstChild = getChild(el, 0, options, true);
|
|
39723
|
+
if (firstChild === dragEl) {
|
|
39724
|
+
return completed(false);
|
|
39725
|
+
}
|
|
39726
|
+
target = firstChild;
|
|
39727
|
+
targetRect = getRect(target);
|
|
39728
|
+
if (_onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, false) !== false) {
|
|
39729
|
+
capture();
|
|
39730
|
+
el.insertBefore(dragEl, firstChild);
|
|
39731
|
+
parentEl = el; // actualization
|
|
39732
|
+
|
|
39733
|
+
changed();
|
|
39734
|
+
return completed(true);
|
|
39735
|
+
}
|
|
39736
|
+
} else if (target.parentNode === el) {
|
|
39737
|
+
targetRect = getRect(target);
|
|
39738
|
+
var direction = 0,
|
|
39739
|
+
targetBeforeFirstSwap,
|
|
39740
|
+
differentLevel = dragEl.parentNode !== el,
|
|
39741
|
+
differentRowCol = !_dragElInRowColumn(dragEl.animated && dragEl.toRect || dragRect, target.animated && target.toRect || targetRect, vertical),
|
|
39742
|
+
side1 = vertical ? 'top' : 'left',
|
|
39743
|
+
scrolledPastTop = isScrolledPast(target, 'top', 'top') || isScrolledPast(dragEl, 'top', 'top'),
|
|
39744
|
+
scrollBefore = scrolledPastTop ? scrolledPastTop.scrollTop : void 0;
|
|
39745
|
+
if (lastTarget !== target) {
|
|
39746
|
+
targetBeforeFirstSwap = targetRect[side1];
|
|
39747
|
+
pastFirstInvertThresh = false;
|
|
39748
|
+
isCircumstantialInvert = !differentRowCol && options.invertSwap || differentLevel;
|
|
39749
|
+
}
|
|
39750
|
+
direction = _getSwapDirection(evt, target, targetRect, vertical, differentRowCol ? 1 : options.swapThreshold, options.invertedSwapThreshold == null ? options.swapThreshold : options.invertedSwapThreshold, isCircumstantialInvert, lastTarget === target);
|
|
39751
|
+
var sibling;
|
|
39752
|
+
if (direction !== 0) {
|
|
39753
|
+
// Check if target is beside dragEl in respective direction (ignoring hidden elements)
|
|
39754
|
+
var dragIndex = sortable_esm_index(dragEl);
|
|
39755
|
+
do {
|
|
39756
|
+
dragIndex -= direction;
|
|
39757
|
+
sibling = parentEl.children[dragIndex];
|
|
39758
|
+
} while (sibling && (css(sibling, 'display') === 'none' || sibling === ghostEl));
|
|
39759
|
+
}
|
|
39760
|
+
// If dragEl is already beside target: Do not insert
|
|
39761
|
+
if (direction === 0 || sibling === target) {
|
|
39762
|
+
return completed(false);
|
|
39763
|
+
}
|
|
39764
|
+
lastTarget = target;
|
|
39765
|
+
lastDirection = direction;
|
|
39766
|
+
var nextSibling = target.nextElementSibling,
|
|
39767
|
+
after = false;
|
|
39768
|
+
after = direction === 1;
|
|
39769
|
+
var moveVector = _onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, after);
|
|
39770
|
+
if (moveVector !== false) {
|
|
39771
|
+
if (moveVector === 1 || moveVector === -1) {
|
|
39772
|
+
after = moveVector === 1;
|
|
39773
|
+
}
|
|
39774
|
+
_silent = true;
|
|
39775
|
+
setTimeout(_unsilent, 30);
|
|
39776
|
+
capture();
|
|
39777
|
+
if (after && !nextSibling) {
|
|
39778
|
+
el.appendChild(dragEl);
|
|
39779
|
+
} else {
|
|
39780
|
+
target.parentNode.insertBefore(dragEl, after ? nextSibling : target);
|
|
39781
|
+
}
|
|
39782
|
+
|
|
39783
|
+
// Undo chrome's scroll adjustment (has no effect on other browsers)
|
|
39784
|
+
if (scrolledPastTop) {
|
|
39785
|
+
scrollBy(scrolledPastTop, 0, scrollBefore - scrolledPastTop.scrollTop);
|
|
39786
|
+
}
|
|
39787
|
+
parentEl = dragEl.parentNode; // actualization
|
|
39788
|
+
|
|
39789
|
+
// must be done before animation
|
|
39790
|
+
if (targetBeforeFirstSwap !== undefined && !isCircumstantialInvert) {
|
|
39791
|
+
targetMoveDistance = Math.abs(targetBeforeFirstSwap - getRect(target)[side1]);
|
|
39792
|
+
}
|
|
39793
|
+
changed();
|
|
39794
|
+
return completed(true);
|
|
39795
|
+
}
|
|
39796
|
+
}
|
|
39797
|
+
if (el.contains(dragEl)) {
|
|
39798
|
+
return completed(false);
|
|
39799
|
+
}
|
|
39800
|
+
}
|
|
39801
|
+
return false;
|
|
39802
|
+
},
|
|
39803
|
+
_ignoreWhileAnimating: null,
|
|
39804
|
+
_offMoveEvents: function _offMoveEvents() {
|
|
39805
|
+
off(document, 'mousemove', this._onTouchMove);
|
|
39806
|
+
off(document, 'touchmove', this._onTouchMove);
|
|
39807
|
+
off(document, 'pointermove', this._onTouchMove);
|
|
39808
|
+
off(document, 'dragover', nearestEmptyInsertDetectEvent);
|
|
39809
|
+
off(document, 'mousemove', nearestEmptyInsertDetectEvent);
|
|
39810
|
+
off(document, 'touchmove', nearestEmptyInsertDetectEvent);
|
|
39811
|
+
},
|
|
39812
|
+
_offUpEvents: function _offUpEvents() {
|
|
39813
|
+
var ownerDocument = this.el.ownerDocument;
|
|
39814
|
+
off(ownerDocument, 'mouseup', this._onDrop);
|
|
39815
|
+
off(ownerDocument, 'touchend', this._onDrop);
|
|
39816
|
+
off(ownerDocument, 'pointerup', this._onDrop);
|
|
39817
|
+
off(ownerDocument, 'touchcancel', this._onDrop);
|
|
39818
|
+
off(document, 'selectstart', this);
|
|
39819
|
+
},
|
|
39820
|
+
_onDrop: function _onDrop( /**Event*/evt) {
|
|
39821
|
+
var el = this.el,
|
|
39822
|
+
options = this.options;
|
|
39823
|
+
|
|
39824
|
+
// Get the index of the dragged element within its parent
|
|
39825
|
+
newIndex = sortable_esm_index(dragEl);
|
|
39826
|
+
newDraggableIndex = sortable_esm_index(dragEl, options.draggable);
|
|
39827
|
+
pluginEvent('drop', this, {
|
|
39828
|
+
evt: evt
|
|
39829
|
+
});
|
|
39830
|
+
parentEl = dragEl && dragEl.parentNode;
|
|
39831
|
+
|
|
39832
|
+
// Get again after plugin event
|
|
39833
|
+
newIndex = sortable_esm_index(dragEl);
|
|
39834
|
+
newDraggableIndex = sortable_esm_index(dragEl, options.draggable);
|
|
39835
|
+
if (Sortable.eventCanceled) {
|
|
39836
|
+
this._nulling();
|
|
39837
|
+
return;
|
|
39838
|
+
}
|
|
39839
|
+
awaitingDragStarted = false;
|
|
39840
|
+
isCircumstantialInvert = false;
|
|
39841
|
+
pastFirstInvertThresh = false;
|
|
39842
|
+
clearInterval(this._loopId);
|
|
39843
|
+
clearTimeout(this._dragStartTimer);
|
|
39844
|
+
_cancelNextTick(this.cloneId);
|
|
39845
|
+
_cancelNextTick(this._dragStartId);
|
|
39846
|
+
|
|
39847
|
+
// Unbind events
|
|
39848
|
+
if (this.nativeDraggable) {
|
|
39849
|
+
off(document, 'drop', this);
|
|
39850
|
+
off(el, 'dragstart', this._onDragStart);
|
|
39851
|
+
}
|
|
39852
|
+
this._offMoveEvents();
|
|
39853
|
+
this._offUpEvents();
|
|
39854
|
+
if (Safari) {
|
|
39855
|
+
css(document.body, 'user-select', '');
|
|
39856
|
+
}
|
|
39857
|
+
css(dragEl, 'transform', '');
|
|
39858
|
+
if (evt) {
|
|
39859
|
+
if (moved) {
|
|
39860
|
+
evt.cancelable && evt.preventDefault();
|
|
39861
|
+
!options.dropBubble && evt.stopPropagation();
|
|
39862
|
+
}
|
|
39863
|
+
ghostEl && ghostEl.parentNode && ghostEl.parentNode.removeChild(ghostEl);
|
|
39864
|
+
if (rootEl === parentEl || putSortable && putSortable.lastPutMode !== 'clone') {
|
|
39865
|
+
// Remove clone(s)
|
|
39866
|
+
cloneEl && cloneEl.parentNode && cloneEl.parentNode.removeChild(cloneEl);
|
|
39867
|
+
}
|
|
39868
|
+
if (dragEl) {
|
|
39869
|
+
if (this.nativeDraggable) {
|
|
39870
|
+
off(dragEl, 'dragend', this);
|
|
39871
|
+
}
|
|
39872
|
+
_disableDraggable(dragEl);
|
|
39873
|
+
dragEl.style['will-change'] = '';
|
|
39874
|
+
|
|
39875
|
+
// Remove classes
|
|
39876
|
+
// ghostClass is added in dragStarted
|
|
39877
|
+
if (moved && !awaitingDragStarted) {
|
|
39878
|
+
toggleClass(dragEl, putSortable ? putSortable.options.ghostClass : this.options.ghostClass, false);
|
|
39879
|
+
}
|
|
39880
|
+
toggleClass(dragEl, this.options.chosenClass, false);
|
|
39881
|
+
|
|
39882
|
+
// Drag stop event
|
|
39883
|
+
_dispatchEvent({
|
|
39884
|
+
sortable: this,
|
|
39885
|
+
name: 'unchoose',
|
|
39886
|
+
toEl: parentEl,
|
|
39887
|
+
newIndex: null,
|
|
39888
|
+
newDraggableIndex: null,
|
|
39889
|
+
originalEvent: evt
|
|
39890
|
+
});
|
|
39891
|
+
if (rootEl !== parentEl) {
|
|
39892
|
+
if (newIndex >= 0) {
|
|
39893
|
+
// Add event
|
|
39894
|
+
_dispatchEvent({
|
|
39895
|
+
rootEl: parentEl,
|
|
39896
|
+
name: 'add',
|
|
39897
|
+
toEl: parentEl,
|
|
39898
|
+
fromEl: rootEl,
|
|
39899
|
+
originalEvent: evt
|
|
39900
|
+
});
|
|
39901
|
+
|
|
39902
|
+
// Remove event
|
|
39903
|
+
_dispatchEvent({
|
|
39904
|
+
sortable: this,
|
|
39905
|
+
name: 'remove',
|
|
39906
|
+
toEl: parentEl,
|
|
39907
|
+
originalEvent: evt
|
|
39908
|
+
});
|
|
39909
|
+
|
|
39910
|
+
// drag from one list and drop into another
|
|
39911
|
+
_dispatchEvent({
|
|
39912
|
+
rootEl: parentEl,
|
|
39913
|
+
name: 'sort',
|
|
39914
|
+
toEl: parentEl,
|
|
39915
|
+
fromEl: rootEl,
|
|
39916
|
+
originalEvent: evt
|
|
39917
|
+
});
|
|
39918
|
+
_dispatchEvent({
|
|
39919
|
+
sortable: this,
|
|
39920
|
+
name: 'sort',
|
|
39921
|
+
toEl: parentEl,
|
|
39922
|
+
originalEvent: evt
|
|
39923
|
+
});
|
|
39924
|
+
}
|
|
39925
|
+
putSortable && putSortable.save();
|
|
39926
|
+
} else {
|
|
39927
|
+
if (newIndex !== oldIndex) {
|
|
39928
|
+
if (newIndex >= 0) {
|
|
39929
|
+
// drag & drop within the same list
|
|
39930
|
+
_dispatchEvent({
|
|
39931
|
+
sortable: this,
|
|
39932
|
+
name: 'update',
|
|
39933
|
+
toEl: parentEl,
|
|
39934
|
+
originalEvent: evt
|
|
39935
|
+
});
|
|
39936
|
+
_dispatchEvent({
|
|
39937
|
+
sortable: this,
|
|
39938
|
+
name: 'sort',
|
|
39939
|
+
toEl: parentEl,
|
|
39940
|
+
originalEvent: evt
|
|
39941
|
+
});
|
|
39942
|
+
}
|
|
39943
|
+
}
|
|
39944
|
+
}
|
|
39945
|
+
if (Sortable.active) {
|
|
39946
|
+
/* jshint eqnull:true */
|
|
39947
|
+
if (newIndex == null || newIndex === -1) {
|
|
39948
|
+
newIndex = oldIndex;
|
|
39949
|
+
newDraggableIndex = oldDraggableIndex;
|
|
39950
|
+
}
|
|
39951
|
+
_dispatchEvent({
|
|
39952
|
+
sortable: this,
|
|
39953
|
+
name: 'end',
|
|
39954
|
+
toEl: parentEl,
|
|
39955
|
+
originalEvent: evt
|
|
39956
|
+
});
|
|
39957
|
+
|
|
39958
|
+
// Save sorting
|
|
39959
|
+
this.save();
|
|
39960
|
+
}
|
|
39961
|
+
}
|
|
39962
|
+
}
|
|
39963
|
+
this._nulling();
|
|
39964
|
+
},
|
|
39965
|
+
_nulling: function _nulling() {
|
|
39966
|
+
pluginEvent('nulling', this);
|
|
39967
|
+
rootEl = dragEl = parentEl = ghostEl = nextEl = cloneEl = lastDownEl = cloneHidden = tapEvt = touchEvt = moved = newIndex = newDraggableIndex = oldIndex = oldDraggableIndex = lastTarget = lastDirection = putSortable = activeGroup = Sortable.dragged = Sortable.ghost = Sortable.clone = Sortable.active = null;
|
|
39968
|
+
savedInputChecked.forEach(function (el) {
|
|
39969
|
+
el.checked = true;
|
|
39970
|
+
});
|
|
39971
|
+
savedInputChecked.length = lastDx = lastDy = 0;
|
|
39972
|
+
},
|
|
39973
|
+
handleEvent: function handleEvent( /**Event*/evt) {
|
|
39974
|
+
switch (evt.type) {
|
|
39975
|
+
case 'drop':
|
|
39976
|
+
case 'dragend':
|
|
39977
|
+
this._onDrop(evt);
|
|
39978
|
+
break;
|
|
39979
|
+
case 'dragenter':
|
|
39980
|
+
case 'dragover':
|
|
39981
|
+
if (dragEl) {
|
|
39982
|
+
this._onDragOver(evt);
|
|
39983
|
+
_globalDragOver(evt);
|
|
39984
|
+
}
|
|
39985
|
+
break;
|
|
39986
|
+
case 'selectstart':
|
|
39987
|
+
evt.preventDefault();
|
|
39988
|
+
break;
|
|
39989
|
+
}
|
|
39990
|
+
},
|
|
39991
|
+
/**
|
|
39992
|
+
* Serializes the item into an array of string.
|
|
39993
|
+
* @returns {String[]}
|
|
39994
|
+
*/
|
|
39995
|
+
toArray: function toArray() {
|
|
39996
|
+
var order = [],
|
|
39997
|
+
el,
|
|
39998
|
+
children = this.el.children,
|
|
39999
|
+
i = 0,
|
|
40000
|
+
n = children.length,
|
|
40001
|
+
options = this.options;
|
|
40002
|
+
for (; i < n; i++) {
|
|
40003
|
+
el = children[i];
|
|
40004
|
+
if (closest(el, options.draggable, this.el, false)) {
|
|
40005
|
+
order.push(el.getAttribute(options.dataIdAttr) || _generateId(el));
|
|
40006
|
+
}
|
|
40007
|
+
}
|
|
40008
|
+
return order;
|
|
40009
|
+
},
|
|
40010
|
+
/**
|
|
40011
|
+
* Sorts the elements according to the array.
|
|
40012
|
+
* @param {String[]} order order of the items
|
|
40013
|
+
*/
|
|
40014
|
+
sort: function sort(order, useAnimation) {
|
|
40015
|
+
var items = {},
|
|
40016
|
+
rootEl = this.el;
|
|
40017
|
+
this.toArray().forEach(function (id, i) {
|
|
40018
|
+
var el = rootEl.children[i];
|
|
40019
|
+
if (closest(el, this.options.draggable, rootEl, false)) {
|
|
40020
|
+
items[id] = el;
|
|
40021
|
+
}
|
|
40022
|
+
}, this);
|
|
40023
|
+
useAnimation && this.captureAnimationState();
|
|
40024
|
+
order.forEach(function (id) {
|
|
40025
|
+
if (items[id]) {
|
|
40026
|
+
rootEl.removeChild(items[id]);
|
|
40027
|
+
rootEl.appendChild(items[id]);
|
|
40028
|
+
}
|
|
40029
|
+
});
|
|
40030
|
+
useAnimation && this.animateAll();
|
|
40031
|
+
},
|
|
40032
|
+
/**
|
|
40033
|
+
* Save the current sorting
|
|
40034
|
+
*/
|
|
40035
|
+
save: function save() {
|
|
40036
|
+
var store = this.options.store;
|
|
40037
|
+
store && store.set && store.set(this);
|
|
40038
|
+
},
|
|
40039
|
+
/**
|
|
40040
|
+
* For each element in the set, get the first element that matches the selector by testing the element itself and traversing up through its ancestors in the DOM tree.
|
|
40041
|
+
* @param {HTMLElement} el
|
|
40042
|
+
* @param {String} [selector] default: `options.draggable`
|
|
40043
|
+
* @returns {HTMLElement|null}
|
|
40044
|
+
*/
|
|
40045
|
+
closest: function closest$1(el, selector) {
|
|
40046
|
+
return closest(el, selector || this.options.draggable, this.el, false);
|
|
40047
|
+
},
|
|
40048
|
+
/**
|
|
40049
|
+
* Set/get option
|
|
40050
|
+
* @param {string} name
|
|
40051
|
+
* @param {*} [value]
|
|
40052
|
+
* @returns {*}
|
|
40053
|
+
*/
|
|
40054
|
+
option: function option(name, value) {
|
|
40055
|
+
var options = this.options;
|
|
40056
|
+
if (value === void 0) {
|
|
40057
|
+
return options[name];
|
|
40058
|
+
} else {
|
|
40059
|
+
var modifiedValue = PluginManager.modifyOption(this, name, value);
|
|
40060
|
+
if (typeof modifiedValue !== 'undefined') {
|
|
40061
|
+
options[name] = modifiedValue;
|
|
40062
|
+
} else {
|
|
40063
|
+
options[name] = value;
|
|
40064
|
+
}
|
|
40065
|
+
if (name === 'group') {
|
|
40066
|
+
_prepareGroup(options);
|
|
40067
|
+
}
|
|
40068
|
+
}
|
|
40069
|
+
},
|
|
40070
|
+
/**
|
|
40071
|
+
* Destroy
|
|
40072
|
+
*/
|
|
40073
|
+
destroy: function destroy() {
|
|
40074
|
+
pluginEvent('destroy', this);
|
|
40075
|
+
var el = this.el;
|
|
40076
|
+
el[expando] = null;
|
|
40077
|
+
off(el, 'mousedown', this._onTapStart);
|
|
40078
|
+
off(el, 'touchstart', this._onTapStart);
|
|
40079
|
+
off(el, 'pointerdown', this._onTapStart);
|
|
40080
|
+
if (this.nativeDraggable) {
|
|
40081
|
+
off(el, 'dragover', this);
|
|
40082
|
+
off(el, 'dragenter', this);
|
|
40083
|
+
}
|
|
40084
|
+
// Remove draggable attributes
|
|
40085
|
+
Array.prototype.forEach.call(el.querySelectorAll('[draggable]'), function (el) {
|
|
40086
|
+
el.removeAttribute('draggable');
|
|
40087
|
+
});
|
|
40088
|
+
this._onDrop();
|
|
40089
|
+
this._disableDelayedDragEvents();
|
|
40090
|
+
sortables.splice(sortables.indexOf(this.el), 1);
|
|
40091
|
+
this.el = el = null;
|
|
40092
|
+
},
|
|
40093
|
+
_hideClone: function _hideClone() {
|
|
40094
|
+
if (!cloneHidden) {
|
|
40095
|
+
pluginEvent('hideClone', this);
|
|
40096
|
+
if (Sortable.eventCanceled) return;
|
|
40097
|
+
css(cloneEl, 'display', 'none');
|
|
40098
|
+
if (this.options.removeCloneOnHide && cloneEl.parentNode) {
|
|
40099
|
+
cloneEl.parentNode.removeChild(cloneEl);
|
|
40100
|
+
}
|
|
40101
|
+
cloneHidden = true;
|
|
40102
|
+
}
|
|
40103
|
+
},
|
|
40104
|
+
_showClone: function _showClone(putSortable) {
|
|
40105
|
+
if (putSortable.lastPutMode !== 'clone') {
|
|
40106
|
+
this._hideClone();
|
|
40107
|
+
return;
|
|
40108
|
+
}
|
|
40109
|
+
if (cloneHidden) {
|
|
40110
|
+
pluginEvent('showClone', this);
|
|
40111
|
+
if (Sortable.eventCanceled) return;
|
|
40112
|
+
|
|
40113
|
+
// show clone at dragEl or original position
|
|
40114
|
+
if (dragEl.parentNode == rootEl && !this.options.group.revertClone) {
|
|
40115
|
+
rootEl.insertBefore(cloneEl, dragEl);
|
|
40116
|
+
} else if (nextEl) {
|
|
40117
|
+
rootEl.insertBefore(cloneEl, nextEl);
|
|
40118
|
+
} else {
|
|
40119
|
+
rootEl.appendChild(cloneEl);
|
|
40120
|
+
}
|
|
40121
|
+
if (this.options.group.revertClone) {
|
|
40122
|
+
this.animate(dragEl, cloneEl);
|
|
40123
|
+
}
|
|
40124
|
+
css(cloneEl, 'display', '');
|
|
40125
|
+
cloneHidden = false;
|
|
40126
|
+
}
|
|
40127
|
+
}
|
|
40128
|
+
};
|
|
40129
|
+
function _globalDragOver( /**Event*/evt) {
|
|
40130
|
+
if (evt.dataTransfer) {
|
|
40131
|
+
evt.dataTransfer.dropEffect = 'move';
|
|
40132
|
+
}
|
|
40133
|
+
evt.cancelable && evt.preventDefault();
|
|
40134
|
+
}
|
|
40135
|
+
function _onMove(fromEl, toEl, dragEl, dragRect, targetEl, targetRect, originalEvent, willInsertAfter) {
|
|
40136
|
+
var evt,
|
|
40137
|
+
sortable = fromEl[expando],
|
|
40138
|
+
onMoveFn = sortable.options.onMove,
|
|
40139
|
+
retVal;
|
|
40140
|
+
// Support for new CustomEvent feature
|
|
40141
|
+
if (window.CustomEvent && !IE11OrLess && !Edge) {
|
|
40142
|
+
evt = new CustomEvent('move', {
|
|
40143
|
+
bubbles: true,
|
|
40144
|
+
cancelable: true
|
|
40145
|
+
});
|
|
40146
|
+
} else {
|
|
40147
|
+
evt = document.createEvent('Event');
|
|
40148
|
+
evt.initEvent('move', true, true);
|
|
40149
|
+
}
|
|
40150
|
+
evt.to = toEl;
|
|
40151
|
+
evt.from = fromEl;
|
|
40152
|
+
evt.dragged = dragEl;
|
|
40153
|
+
evt.draggedRect = dragRect;
|
|
40154
|
+
evt.related = targetEl || toEl;
|
|
40155
|
+
evt.relatedRect = targetRect || getRect(toEl);
|
|
40156
|
+
evt.willInsertAfter = willInsertAfter;
|
|
40157
|
+
evt.originalEvent = originalEvent;
|
|
40158
|
+
fromEl.dispatchEvent(evt);
|
|
40159
|
+
if (onMoveFn) {
|
|
40160
|
+
retVal = onMoveFn.call(sortable, evt, originalEvent);
|
|
40161
|
+
}
|
|
40162
|
+
return retVal;
|
|
40163
|
+
}
|
|
40164
|
+
function _disableDraggable(el) {
|
|
40165
|
+
el.draggable = false;
|
|
40166
|
+
}
|
|
40167
|
+
function _unsilent() {
|
|
40168
|
+
_silent = false;
|
|
40169
|
+
}
|
|
40170
|
+
function _ghostIsFirst(evt, vertical, sortable) {
|
|
40171
|
+
var firstElRect = getRect(getChild(sortable.el, 0, sortable.options, true));
|
|
40172
|
+
var childContainingRect = getChildContainingRectFromElement(sortable.el, sortable.options, ghostEl);
|
|
40173
|
+
var spacer = 10;
|
|
40174
|
+
return vertical ? evt.clientX < childContainingRect.left - spacer || evt.clientY < firstElRect.top && evt.clientX < firstElRect.right : evt.clientY < childContainingRect.top - spacer || evt.clientY < firstElRect.bottom && evt.clientX < firstElRect.left;
|
|
40175
|
+
}
|
|
40176
|
+
function _ghostIsLast(evt, vertical, sortable) {
|
|
40177
|
+
var lastElRect = getRect(lastChild(sortable.el, sortable.options.draggable));
|
|
40178
|
+
var childContainingRect = getChildContainingRectFromElement(sortable.el, sortable.options, ghostEl);
|
|
40179
|
+
var spacer = 10;
|
|
40180
|
+
return vertical ? evt.clientX > childContainingRect.right + spacer || evt.clientY > lastElRect.bottom && evt.clientX > lastElRect.left : evt.clientY > childContainingRect.bottom + spacer || evt.clientX > lastElRect.right && evt.clientY > lastElRect.top;
|
|
40181
|
+
}
|
|
40182
|
+
function _getSwapDirection(evt, target, targetRect, vertical, swapThreshold, invertedSwapThreshold, invertSwap, isLastTarget) {
|
|
40183
|
+
var mouseOnAxis = vertical ? evt.clientY : evt.clientX,
|
|
40184
|
+
targetLength = vertical ? targetRect.height : targetRect.width,
|
|
40185
|
+
targetS1 = vertical ? targetRect.top : targetRect.left,
|
|
40186
|
+
targetS2 = vertical ? targetRect.bottom : targetRect.right,
|
|
40187
|
+
invert = false;
|
|
40188
|
+
if (!invertSwap) {
|
|
40189
|
+
// Never invert or create dragEl shadow when target movemenet causes mouse to move past the end of regular swapThreshold
|
|
40190
|
+
if (isLastTarget && targetMoveDistance < targetLength * swapThreshold) {
|
|
40191
|
+
// multiplied only by swapThreshold because mouse will already be inside target by (1 - threshold) * targetLength / 2
|
|
40192
|
+
// check if past first invert threshold on side opposite of lastDirection
|
|
40193
|
+
if (!pastFirstInvertThresh && (lastDirection === 1 ? mouseOnAxis > targetS1 + targetLength * invertedSwapThreshold / 2 : mouseOnAxis < targetS2 - targetLength * invertedSwapThreshold / 2)) {
|
|
40194
|
+
// past first invert threshold, do not restrict inverted threshold to dragEl shadow
|
|
40195
|
+
pastFirstInvertThresh = true;
|
|
40196
|
+
}
|
|
40197
|
+
if (!pastFirstInvertThresh) {
|
|
40198
|
+
// dragEl shadow (target move distance shadow)
|
|
40199
|
+
if (lastDirection === 1 ? mouseOnAxis < targetS1 + targetMoveDistance // over dragEl shadow
|
|
40200
|
+
: mouseOnAxis > targetS2 - targetMoveDistance) {
|
|
40201
|
+
return -lastDirection;
|
|
40202
|
+
}
|
|
40203
|
+
} else {
|
|
40204
|
+
invert = true;
|
|
40205
|
+
}
|
|
40206
|
+
} else {
|
|
40207
|
+
// Regular
|
|
40208
|
+
if (mouseOnAxis > targetS1 + targetLength * (1 - swapThreshold) / 2 && mouseOnAxis < targetS2 - targetLength * (1 - swapThreshold) / 2) {
|
|
40209
|
+
return _getInsertDirection(target);
|
|
40210
|
+
}
|
|
40211
|
+
}
|
|
40212
|
+
}
|
|
40213
|
+
invert = invert || invertSwap;
|
|
40214
|
+
if (invert) {
|
|
40215
|
+
// Invert of regular
|
|
40216
|
+
if (mouseOnAxis < targetS1 + targetLength * invertedSwapThreshold / 2 || mouseOnAxis > targetS2 - targetLength * invertedSwapThreshold / 2) {
|
|
40217
|
+
return mouseOnAxis > targetS1 + targetLength / 2 ? 1 : -1;
|
|
40218
|
+
}
|
|
40219
|
+
}
|
|
40220
|
+
return 0;
|
|
40221
|
+
}
|
|
40222
|
+
|
|
40223
|
+
/**
|
|
40224
|
+
* Gets the direction dragEl must be swapped relative to target in order to make it
|
|
40225
|
+
* seem that dragEl has been "inserted" into that element's position
|
|
40226
|
+
* @param {HTMLElement} target The target whose position dragEl is being inserted at
|
|
40227
|
+
* @return {Number} Direction dragEl must be swapped
|
|
40228
|
+
*/
|
|
40229
|
+
function _getInsertDirection(target) {
|
|
40230
|
+
if (sortable_esm_index(dragEl) < sortable_esm_index(target)) {
|
|
40231
|
+
return 1;
|
|
40232
|
+
} else {
|
|
40233
|
+
return -1;
|
|
40234
|
+
}
|
|
40235
|
+
}
|
|
40236
|
+
|
|
40237
|
+
/**
|
|
40238
|
+
* Generate id
|
|
40239
|
+
* @param {HTMLElement} el
|
|
40240
|
+
* @returns {String}
|
|
40241
|
+
* @private
|
|
40242
|
+
*/
|
|
40243
|
+
function _generateId(el) {
|
|
40244
|
+
var str = el.tagName + el.className + el.src + el.href + el.textContent,
|
|
40245
|
+
i = str.length,
|
|
40246
|
+
sum = 0;
|
|
40247
|
+
while (i--) {
|
|
40248
|
+
sum += str.charCodeAt(i);
|
|
40249
|
+
}
|
|
40250
|
+
return sum.toString(36);
|
|
40251
|
+
}
|
|
40252
|
+
function _saveInputCheckedState(root) {
|
|
40253
|
+
savedInputChecked.length = 0;
|
|
40254
|
+
var inputs = root.getElementsByTagName('input');
|
|
40255
|
+
var idx = inputs.length;
|
|
40256
|
+
while (idx--) {
|
|
40257
|
+
var el = inputs[idx];
|
|
40258
|
+
el.checked && savedInputChecked.push(el);
|
|
40259
|
+
}
|
|
40260
|
+
}
|
|
40261
|
+
function _nextTick(fn) {
|
|
40262
|
+
return setTimeout(fn, 0);
|
|
40263
|
+
}
|
|
40264
|
+
function _cancelNextTick(id) {
|
|
40265
|
+
return clearTimeout(id);
|
|
40266
|
+
}
|
|
40267
|
+
|
|
40268
|
+
// Fixed #973:
|
|
40269
|
+
if (documentExists) {
|
|
40270
|
+
on(document, 'touchmove', function (evt) {
|
|
40271
|
+
if ((Sortable.active || awaitingDragStarted) && evt.cancelable) {
|
|
40272
|
+
evt.preventDefault();
|
|
40273
|
+
}
|
|
40274
|
+
});
|
|
40275
|
+
}
|
|
40276
|
+
|
|
40277
|
+
// Export utils
|
|
40278
|
+
Sortable.utils = {
|
|
40279
|
+
on: on,
|
|
40280
|
+
off: off,
|
|
40281
|
+
css: css,
|
|
40282
|
+
find: sortable_esm_find,
|
|
40283
|
+
is: function is(el, selector) {
|
|
40284
|
+
return !!closest(el, selector, el, false);
|
|
40285
|
+
},
|
|
40286
|
+
extend: extend,
|
|
40287
|
+
throttle: throttle,
|
|
40288
|
+
closest: closest,
|
|
40289
|
+
toggleClass: toggleClass,
|
|
40290
|
+
clone: clone,
|
|
40291
|
+
index: sortable_esm_index,
|
|
40292
|
+
nextTick: _nextTick,
|
|
40293
|
+
cancelNextTick: _cancelNextTick,
|
|
40294
|
+
detectDirection: _detectDirection,
|
|
40295
|
+
getChild: getChild
|
|
40296
|
+
};
|
|
40297
|
+
|
|
40298
|
+
/**
|
|
40299
|
+
* Get the Sortable instance of an element
|
|
40300
|
+
* @param {HTMLElement} element The element
|
|
40301
|
+
* @return {Sortable|undefined} The instance of Sortable
|
|
40302
|
+
*/
|
|
40303
|
+
Sortable.get = function (element) {
|
|
40304
|
+
return element[expando];
|
|
40305
|
+
};
|
|
40306
|
+
|
|
40307
|
+
/**
|
|
40308
|
+
* Mount a plugin to Sortable
|
|
40309
|
+
* @param {...SortablePlugin|SortablePlugin[]} plugins Plugins being mounted
|
|
40310
|
+
*/
|
|
40311
|
+
Sortable.mount = function () {
|
|
40312
|
+
for (var _len = arguments.length, plugins = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
40313
|
+
plugins[_key] = arguments[_key];
|
|
40314
|
+
}
|
|
40315
|
+
if (plugins[0].constructor === Array) plugins = plugins[0];
|
|
40316
|
+
plugins.forEach(function (plugin) {
|
|
40317
|
+
if (!plugin.prototype || !plugin.prototype.constructor) {
|
|
40318
|
+
throw "Sortable: Mounted plugin must be a constructor function, not ".concat({}.toString.call(plugin));
|
|
40319
|
+
}
|
|
40320
|
+
if (plugin.utils) Sortable.utils = _objectSpread2(_objectSpread2({}, Sortable.utils), plugin.utils);
|
|
40321
|
+
PluginManager.mount(plugin);
|
|
40322
|
+
});
|
|
40323
|
+
};
|
|
40324
|
+
|
|
40325
|
+
/**
|
|
40326
|
+
* Create sortable instance
|
|
40327
|
+
* @param {HTMLElement} el
|
|
40328
|
+
* @param {Object} [options]
|
|
40329
|
+
*/
|
|
40330
|
+
Sortable.create = function (el, options) {
|
|
40331
|
+
return new Sortable(el, options);
|
|
40332
|
+
};
|
|
40333
|
+
|
|
40334
|
+
// Export
|
|
40335
|
+
Sortable.version = version;
|
|
40336
|
+
|
|
40337
|
+
var autoScrolls = [],
|
|
40338
|
+
scrollEl,
|
|
40339
|
+
scrollRootEl,
|
|
40340
|
+
scrolling = false,
|
|
40341
|
+
lastAutoScrollX,
|
|
40342
|
+
lastAutoScrollY,
|
|
40343
|
+
touchEvt$1,
|
|
40344
|
+
pointerElemChangedInterval;
|
|
40345
|
+
function AutoScrollPlugin() {
|
|
40346
|
+
function AutoScroll() {
|
|
40347
|
+
this.defaults = {
|
|
40348
|
+
scroll: true,
|
|
40349
|
+
forceAutoScrollFallback: false,
|
|
40350
|
+
scrollSensitivity: 30,
|
|
40351
|
+
scrollSpeed: 10,
|
|
40352
|
+
bubbleScroll: true
|
|
40353
|
+
};
|
|
40354
|
+
|
|
40355
|
+
// Bind all private methods
|
|
40356
|
+
for (var fn in this) {
|
|
40357
|
+
if (fn.charAt(0) === '_' && typeof this[fn] === 'function') {
|
|
40358
|
+
this[fn] = this[fn].bind(this);
|
|
40359
|
+
}
|
|
40360
|
+
}
|
|
40361
|
+
}
|
|
40362
|
+
AutoScroll.prototype = {
|
|
40363
|
+
dragStarted: function dragStarted(_ref) {
|
|
40364
|
+
var originalEvent = _ref.originalEvent;
|
|
40365
|
+
if (this.sortable.nativeDraggable) {
|
|
40366
|
+
on(document, 'dragover', this._handleAutoScroll);
|
|
40367
|
+
} else {
|
|
40368
|
+
if (this.options.supportPointer) {
|
|
40369
|
+
on(document, 'pointermove', this._handleFallbackAutoScroll);
|
|
40370
|
+
} else if (originalEvent.touches) {
|
|
40371
|
+
on(document, 'touchmove', this._handleFallbackAutoScroll);
|
|
40372
|
+
} else {
|
|
40373
|
+
on(document, 'mousemove', this._handleFallbackAutoScroll);
|
|
40374
|
+
}
|
|
40375
|
+
}
|
|
40376
|
+
},
|
|
40377
|
+
dragOverCompleted: function dragOverCompleted(_ref2) {
|
|
40378
|
+
var originalEvent = _ref2.originalEvent;
|
|
40379
|
+
// For when bubbling is canceled and using fallback (fallback 'touchmove' always reached)
|
|
40380
|
+
if (!this.options.dragOverBubble && !originalEvent.rootEl) {
|
|
40381
|
+
this._handleAutoScroll(originalEvent);
|
|
40382
|
+
}
|
|
40383
|
+
},
|
|
40384
|
+
drop: function drop() {
|
|
40385
|
+
if (this.sortable.nativeDraggable) {
|
|
40386
|
+
off(document, 'dragover', this._handleAutoScroll);
|
|
40387
|
+
} else {
|
|
40388
|
+
off(document, 'pointermove', this._handleFallbackAutoScroll);
|
|
40389
|
+
off(document, 'touchmove', this._handleFallbackAutoScroll);
|
|
40390
|
+
off(document, 'mousemove', this._handleFallbackAutoScroll);
|
|
40391
|
+
}
|
|
40392
|
+
clearPointerElemChangedInterval();
|
|
40393
|
+
clearAutoScrolls();
|
|
40394
|
+
cancelThrottle();
|
|
40395
|
+
},
|
|
40396
|
+
nulling: function nulling() {
|
|
40397
|
+
touchEvt$1 = scrollRootEl = scrollEl = scrolling = pointerElemChangedInterval = lastAutoScrollX = lastAutoScrollY = null;
|
|
40398
|
+
autoScrolls.length = 0;
|
|
40399
|
+
},
|
|
40400
|
+
_handleFallbackAutoScroll: function _handleFallbackAutoScroll(evt) {
|
|
40401
|
+
this._handleAutoScroll(evt, true);
|
|
40402
|
+
},
|
|
40403
|
+
_handleAutoScroll: function _handleAutoScroll(evt, fallback) {
|
|
40404
|
+
var _this = this;
|
|
40405
|
+
var x = (evt.touches ? evt.touches[0] : evt).clientX,
|
|
40406
|
+
y = (evt.touches ? evt.touches[0] : evt).clientY,
|
|
40407
|
+
elem = document.elementFromPoint(x, y);
|
|
40408
|
+
touchEvt$1 = evt;
|
|
40409
|
+
|
|
40410
|
+
// IE does not seem to have native autoscroll,
|
|
40411
|
+
// Edge's autoscroll seems too conditional,
|
|
40412
|
+
// MACOS Safari does not have autoscroll,
|
|
40413
|
+
// Firefox and Chrome are good
|
|
40414
|
+
if (fallback || this.options.forceAutoScrollFallback || Edge || IE11OrLess || Safari) {
|
|
40415
|
+
autoScroll(evt, this.options, elem, fallback);
|
|
40416
|
+
|
|
40417
|
+
// Listener for pointer element change
|
|
40418
|
+
var ogElemScroller = getParentAutoScrollElement(elem, true);
|
|
40419
|
+
if (scrolling && (!pointerElemChangedInterval || x !== lastAutoScrollX || y !== lastAutoScrollY)) {
|
|
40420
|
+
pointerElemChangedInterval && clearPointerElemChangedInterval();
|
|
40421
|
+
// Detect for pointer elem change, emulating native DnD behaviour
|
|
40422
|
+
pointerElemChangedInterval = setInterval(function () {
|
|
40423
|
+
var newElem = getParentAutoScrollElement(document.elementFromPoint(x, y), true);
|
|
40424
|
+
if (newElem !== ogElemScroller) {
|
|
40425
|
+
ogElemScroller = newElem;
|
|
40426
|
+
clearAutoScrolls();
|
|
40427
|
+
}
|
|
40428
|
+
autoScroll(evt, _this.options, newElem, fallback);
|
|
40429
|
+
}, 10);
|
|
40430
|
+
lastAutoScrollX = x;
|
|
40431
|
+
lastAutoScrollY = y;
|
|
40432
|
+
}
|
|
40433
|
+
} else {
|
|
40434
|
+
// if DnD is enabled (and browser has good autoscrolling), first autoscroll will already scroll, so get parent autoscroll of first autoscroll
|
|
40435
|
+
if (!this.options.bubbleScroll || getParentAutoScrollElement(elem, true) === getWindowScrollingElement()) {
|
|
40436
|
+
clearAutoScrolls();
|
|
40437
|
+
return;
|
|
40438
|
+
}
|
|
40439
|
+
autoScroll(evt, this.options, getParentAutoScrollElement(elem, false), false);
|
|
40440
|
+
}
|
|
40441
|
+
}
|
|
40442
|
+
};
|
|
40443
|
+
return _extends(AutoScroll, {
|
|
40444
|
+
pluginName: 'scroll',
|
|
40445
|
+
initializeByDefault: true
|
|
40446
|
+
});
|
|
40447
|
+
}
|
|
40448
|
+
function clearAutoScrolls() {
|
|
40449
|
+
autoScrolls.forEach(function (autoScroll) {
|
|
40450
|
+
clearInterval(autoScroll.pid);
|
|
40451
|
+
});
|
|
40452
|
+
autoScrolls = [];
|
|
40453
|
+
}
|
|
40454
|
+
function clearPointerElemChangedInterval() {
|
|
40455
|
+
clearInterval(pointerElemChangedInterval);
|
|
40456
|
+
}
|
|
40457
|
+
var autoScroll = throttle(function (evt, options, rootEl, isFallback) {
|
|
40458
|
+
// Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=505521
|
|
40459
|
+
if (!options.scroll) return;
|
|
40460
|
+
var x = (evt.touches ? evt.touches[0] : evt).clientX,
|
|
40461
|
+
y = (evt.touches ? evt.touches[0] : evt).clientY,
|
|
40462
|
+
sens = options.scrollSensitivity,
|
|
40463
|
+
speed = options.scrollSpeed,
|
|
40464
|
+
winScroller = getWindowScrollingElement();
|
|
40465
|
+
var scrollThisInstance = false,
|
|
40466
|
+
scrollCustomFn;
|
|
40467
|
+
|
|
40468
|
+
// New scroll root, set scrollEl
|
|
40469
|
+
if (scrollRootEl !== rootEl) {
|
|
40470
|
+
scrollRootEl = rootEl;
|
|
40471
|
+
clearAutoScrolls();
|
|
40472
|
+
scrollEl = options.scroll;
|
|
40473
|
+
scrollCustomFn = options.scrollFn;
|
|
40474
|
+
if (scrollEl === true) {
|
|
40475
|
+
scrollEl = getParentAutoScrollElement(rootEl, true);
|
|
40476
|
+
}
|
|
40477
|
+
}
|
|
40478
|
+
var layersOut = 0;
|
|
40479
|
+
var currentParent = scrollEl;
|
|
40480
|
+
do {
|
|
40481
|
+
var el = currentParent,
|
|
40482
|
+
rect = getRect(el),
|
|
40483
|
+
top = rect.top,
|
|
40484
|
+
bottom = rect.bottom,
|
|
40485
|
+
left = rect.left,
|
|
40486
|
+
right = rect.right,
|
|
40487
|
+
width = rect.width,
|
|
40488
|
+
height = rect.height,
|
|
40489
|
+
canScrollX = void 0,
|
|
40490
|
+
canScrollY = void 0,
|
|
40491
|
+
scrollWidth = el.scrollWidth,
|
|
40492
|
+
scrollHeight = el.scrollHeight,
|
|
40493
|
+
elCSS = css(el),
|
|
40494
|
+
scrollPosX = el.scrollLeft,
|
|
40495
|
+
scrollPosY = el.scrollTop;
|
|
40496
|
+
if (el === winScroller) {
|
|
40497
|
+
canScrollX = width < scrollWidth && (elCSS.overflowX === 'auto' || elCSS.overflowX === 'scroll' || elCSS.overflowX === 'visible');
|
|
40498
|
+
canScrollY = height < scrollHeight && (elCSS.overflowY === 'auto' || elCSS.overflowY === 'scroll' || elCSS.overflowY === 'visible');
|
|
40499
|
+
} else {
|
|
40500
|
+
canScrollX = width < scrollWidth && (elCSS.overflowX === 'auto' || elCSS.overflowX === 'scroll');
|
|
40501
|
+
canScrollY = height < scrollHeight && (elCSS.overflowY === 'auto' || elCSS.overflowY === 'scroll');
|
|
40502
|
+
}
|
|
40503
|
+
var vx = canScrollX && (Math.abs(right - x) <= sens && scrollPosX + width < scrollWidth) - (Math.abs(left - x) <= sens && !!scrollPosX);
|
|
40504
|
+
var vy = canScrollY && (Math.abs(bottom - y) <= sens && scrollPosY + height < scrollHeight) - (Math.abs(top - y) <= sens && !!scrollPosY);
|
|
40505
|
+
if (!autoScrolls[layersOut]) {
|
|
40506
|
+
for (var i = 0; i <= layersOut; i++) {
|
|
40507
|
+
if (!autoScrolls[i]) {
|
|
40508
|
+
autoScrolls[i] = {};
|
|
40509
|
+
}
|
|
40510
|
+
}
|
|
40511
|
+
}
|
|
40512
|
+
if (autoScrolls[layersOut].vx != vx || autoScrolls[layersOut].vy != vy || autoScrolls[layersOut].el !== el) {
|
|
40513
|
+
autoScrolls[layersOut].el = el;
|
|
40514
|
+
autoScrolls[layersOut].vx = vx;
|
|
40515
|
+
autoScrolls[layersOut].vy = vy;
|
|
40516
|
+
clearInterval(autoScrolls[layersOut].pid);
|
|
40517
|
+
if (vx != 0 || vy != 0) {
|
|
40518
|
+
scrollThisInstance = true;
|
|
40519
|
+
/* jshint loopfunc:true */
|
|
40520
|
+
autoScrolls[layersOut].pid = setInterval(function () {
|
|
40521
|
+
// emulate drag over during autoscroll (fallback), emulating native DnD behaviour
|
|
40522
|
+
if (isFallback && this.layer === 0) {
|
|
40523
|
+
Sortable.active._onTouchMove(touchEvt$1); // To move ghost if it is positioned absolutely
|
|
40524
|
+
}
|
|
40525
|
+
var scrollOffsetY = autoScrolls[this.layer].vy ? autoScrolls[this.layer].vy * speed : 0;
|
|
40526
|
+
var scrollOffsetX = autoScrolls[this.layer].vx ? autoScrolls[this.layer].vx * speed : 0;
|
|
40527
|
+
if (typeof scrollCustomFn === 'function') {
|
|
40528
|
+
if (scrollCustomFn.call(Sortable.dragged.parentNode[expando], scrollOffsetX, scrollOffsetY, evt, touchEvt$1, autoScrolls[this.layer].el) !== 'continue') {
|
|
40529
|
+
return;
|
|
40530
|
+
}
|
|
40531
|
+
}
|
|
40532
|
+
scrollBy(autoScrolls[this.layer].el, scrollOffsetX, scrollOffsetY);
|
|
40533
|
+
}.bind({
|
|
40534
|
+
layer: layersOut
|
|
40535
|
+
}), 24);
|
|
40536
|
+
}
|
|
40537
|
+
}
|
|
40538
|
+
layersOut++;
|
|
40539
|
+
} while (options.bubbleScroll && currentParent !== winScroller && (currentParent = getParentAutoScrollElement(currentParent, false)));
|
|
40540
|
+
scrolling = scrollThisInstance; // in case another function catches scrolling as false in between when it is not
|
|
40541
|
+
}, 30);
|
|
40542
|
+
|
|
40543
|
+
var drop = function drop(_ref) {
|
|
40544
|
+
var originalEvent = _ref.originalEvent,
|
|
40545
|
+
putSortable = _ref.putSortable,
|
|
40546
|
+
dragEl = _ref.dragEl,
|
|
40547
|
+
activeSortable = _ref.activeSortable,
|
|
40548
|
+
dispatchSortableEvent = _ref.dispatchSortableEvent,
|
|
40549
|
+
hideGhostForTarget = _ref.hideGhostForTarget,
|
|
40550
|
+
unhideGhostForTarget = _ref.unhideGhostForTarget;
|
|
40551
|
+
if (!originalEvent) return;
|
|
40552
|
+
var toSortable = putSortable || activeSortable;
|
|
40553
|
+
hideGhostForTarget();
|
|
40554
|
+
var touch = originalEvent.changedTouches && originalEvent.changedTouches.length ? originalEvent.changedTouches[0] : originalEvent;
|
|
40555
|
+
var target = document.elementFromPoint(touch.clientX, touch.clientY);
|
|
40556
|
+
unhideGhostForTarget();
|
|
40557
|
+
if (toSortable && !toSortable.el.contains(target)) {
|
|
40558
|
+
dispatchSortableEvent('spill');
|
|
40559
|
+
this.onSpill({
|
|
40560
|
+
dragEl: dragEl,
|
|
40561
|
+
putSortable: putSortable
|
|
40562
|
+
});
|
|
40563
|
+
}
|
|
40564
|
+
};
|
|
40565
|
+
function Revert() {}
|
|
40566
|
+
Revert.prototype = {
|
|
40567
|
+
startIndex: null,
|
|
40568
|
+
dragStart: function dragStart(_ref2) {
|
|
40569
|
+
var oldDraggableIndex = _ref2.oldDraggableIndex;
|
|
40570
|
+
this.startIndex = oldDraggableIndex;
|
|
40571
|
+
},
|
|
40572
|
+
onSpill: function onSpill(_ref3) {
|
|
40573
|
+
var dragEl = _ref3.dragEl,
|
|
40574
|
+
putSortable = _ref3.putSortable;
|
|
40575
|
+
this.sortable.captureAnimationState();
|
|
40576
|
+
if (putSortable) {
|
|
40577
|
+
putSortable.captureAnimationState();
|
|
40578
|
+
}
|
|
40579
|
+
var nextSibling = getChild(this.sortable.el, this.startIndex, this.options);
|
|
40580
|
+
if (nextSibling) {
|
|
40581
|
+
this.sortable.el.insertBefore(dragEl, nextSibling);
|
|
40582
|
+
} else {
|
|
40583
|
+
this.sortable.el.appendChild(dragEl);
|
|
40584
|
+
}
|
|
40585
|
+
this.sortable.animateAll();
|
|
40586
|
+
if (putSortable) {
|
|
40587
|
+
putSortable.animateAll();
|
|
40588
|
+
}
|
|
40589
|
+
},
|
|
40590
|
+
drop: drop
|
|
40591
|
+
};
|
|
40592
|
+
_extends(Revert, {
|
|
40593
|
+
pluginName: 'revertOnSpill'
|
|
40594
|
+
});
|
|
40595
|
+
function Remove() {}
|
|
40596
|
+
Remove.prototype = {
|
|
40597
|
+
onSpill: function onSpill(_ref4) {
|
|
40598
|
+
var dragEl = _ref4.dragEl,
|
|
40599
|
+
putSortable = _ref4.putSortable;
|
|
40600
|
+
var parentSortable = putSortable || this.sortable;
|
|
40601
|
+
parentSortable.captureAnimationState();
|
|
40602
|
+
dragEl.parentNode && dragEl.parentNode.removeChild(dragEl);
|
|
40603
|
+
parentSortable.animateAll();
|
|
40604
|
+
},
|
|
40605
|
+
drop: drop
|
|
40606
|
+
};
|
|
40607
|
+
_extends(Remove, {
|
|
40608
|
+
pluginName: 'removeOnSpill'
|
|
40609
|
+
});
|
|
40610
|
+
|
|
40611
|
+
var lastSwapEl;
|
|
40612
|
+
function SwapPlugin() {
|
|
40613
|
+
function Swap() {
|
|
40614
|
+
this.defaults = {
|
|
40615
|
+
swapClass: 'sortable-swap-highlight'
|
|
40616
|
+
};
|
|
40617
|
+
}
|
|
40618
|
+
Swap.prototype = {
|
|
40619
|
+
dragStart: function dragStart(_ref) {
|
|
40620
|
+
var dragEl = _ref.dragEl;
|
|
40621
|
+
lastSwapEl = dragEl;
|
|
40622
|
+
},
|
|
40623
|
+
dragOverValid: function dragOverValid(_ref2) {
|
|
40624
|
+
var completed = _ref2.completed,
|
|
40625
|
+
target = _ref2.target,
|
|
40626
|
+
onMove = _ref2.onMove,
|
|
40627
|
+
activeSortable = _ref2.activeSortable,
|
|
40628
|
+
changed = _ref2.changed,
|
|
40629
|
+
cancel = _ref2.cancel;
|
|
40630
|
+
if (!activeSortable.options.swap) return;
|
|
40631
|
+
var el = this.sortable.el,
|
|
40632
|
+
options = this.options;
|
|
40633
|
+
if (target && target !== el) {
|
|
40634
|
+
var prevSwapEl = lastSwapEl;
|
|
40635
|
+
if (onMove(target) !== false) {
|
|
40636
|
+
toggleClass(target, options.swapClass, true);
|
|
40637
|
+
lastSwapEl = target;
|
|
40638
|
+
} else {
|
|
40639
|
+
lastSwapEl = null;
|
|
40640
|
+
}
|
|
40641
|
+
if (prevSwapEl && prevSwapEl !== lastSwapEl) {
|
|
40642
|
+
toggleClass(prevSwapEl, options.swapClass, false);
|
|
40643
|
+
}
|
|
40644
|
+
}
|
|
40645
|
+
changed();
|
|
40646
|
+
completed(true);
|
|
40647
|
+
cancel();
|
|
40648
|
+
},
|
|
40649
|
+
drop: function drop(_ref3) {
|
|
40650
|
+
var activeSortable = _ref3.activeSortable,
|
|
40651
|
+
putSortable = _ref3.putSortable,
|
|
40652
|
+
dragEl = _ref3.dragEl;
|
|
40653
|
+
var toSortable = putSortable || this.sortable;
|
|
40654
|
+
var options = this.options;
|
|
40655
|
+
lastSwapEl && toggleClass(lastSwapEl, options.swapClass, false);
|
|
40656
|
+
if (lastSwapEl && (options.swap || putSortable && putSortable.options.swap)) {
|
|
40657
|
+
if (dragEl !== lastSwapEl) {
|
|
40658
|
+
toSortable.captureAnimationState();
|
|
40659
|
+
if (toSortable !== activeSortable) activeSortable.captureAnimationState();
|
|
40660
|
+
swapNodes(dragEl, lastSwapEl);
|
|
40661
|
+
toSortable.animateAll();
|
|
40662
|
+
if (toSortable !== activeSortable) activeSortable.animateAll();
|
|
40663
|
+
}
|
|
40664
|
+
}
|
|
40665
|
+
},
|
|
40666
|
+
nulling: function nulling() {
|
|
40667
|
+
lastSwapEl = null;
|
|
40668
|
+
}
|
|
40669
|
+
};
|
|
40670
|
+
return _extends(Swap, {
|
|
40671
|
+
pluginName: 'swap',
|
|
40672
|
+
eventProperties: function eventProperties() {
|
|
40673
|
+
return {
|
|
40674
|
+
swapItem: lastSwapEl
|
|
40675
|
+
};
|
|
40676
|
+
}
|
|
40677
|
+
});
|
|
40678
|
+
}
|
|
40679
|
+
function swapNodes(n1, n2) {
|
|
40680
|
+
var p1 = n1.parentNode,
|
|
40681
|
+
p2 = n2.parentNode,
|
|
40682
|
+
i1,
|
|
40683
|
+
i2;
|
|
40684
|
+
if (!p1 || !p2 || p1.isEqualNode(n2) || p2.isEqualNode(n1)) return;
|
|
40685
|
+
i1 = sortable_esm_index(n1);
|
|
40686
|
+
i2 = sortable_esm_index(n2);
|
|
40687
|
+
if (p1.isEqualNode(p2) && i1 < i2) {
|
|
40688
|
+
i2++;
|
|
40689
|
+
}
|
|
40690
|
+
p1.insertBefore(n2, p1.children[i1]);
|
|
40691
|
+
p2.insertBefore(n1, p2.children[i2]);
|
|
40692
|
+
}
|
|
40693
|
+
|
|
40694
|
+
var multiDragElements = (/* unused pure expression or super */ null && ([])),
|
|
40695
|
+
multiDragClones = (/* unused pure expression or super */ null && ([])),
|
|
40696
|
+
lastMultiDragSelect,
|
|
40697
|
+
// for selection with modifier key down (SHIFT)
|
|
40698
|
+
multiDragSortable,
|
|
40699
|
+
initialFolding = false,
|
|
40700
|
+
// Initial multi-drag fold when drag started
|
|
40701
|
+
folding = false,
|
|
40702
|
+
// Folding any other time
|
|
40703
|
+
dragStarted = false,
|
|
40704
|
+
dragEl$1,
|
|
40705
|
+
clonesFromRect,
|
|
40706
|
+
clonesHidden;
|
|
40707
|
+
function MultiDragPlugin() {
|
|
40708
|
+
function MultiDrag(sortable) {
|
|
40709
|
+
// Bind all private methods
|
|
40710
|
+
for (var fn in this) {
|
|
40711
|
+
if (fn.charAt(0) === '_' && typeof this[fn] === 'function') {
|
|
40712
|
+
this[fn] = this[fn].bind(this);
|
|
40713
|
+
}
|
|
40714
|
+
}
|
|
40715
|
+
if (!sortable.options.avoidImplicitDeselect) {
|
|
40716
|
+
if (sortable.options.supportPointer) {
|
|
40717
|
+
on(document, 'pointerup', this._deselectMultiDrag);
|
|
40718
|
+
} else {
|
|
40719
|
+
on(document, 'mouseup', this._deselectMultiDrag);
|
|
40720
|
+
on(document, 'touchend', this._deselectMultiDrag);
|
|
40721
|
+
}
|
|
40722
|
+
}
|
|
40723
|
+
on(document, 'keydown', this._checkKeyDown);
|
|
40724
|
+
on(document, 'keyup', this._checkKeyUp);
|
|
40725
|
+
this.defaults = {
|
|
40726
|
+
selectedClass: 'sortable-selected',
|
|
40727
|
+
multiDragKey: null,
|
|
40728
|
+
avoidImplicitDeselect: false,
|
|
40729
|
+
setData: function setData(dataTransfer, dragEl) {
|
|
40730
|
+
var data = '';
|
|
40731
|
+
if (multiDragElements.length && multiDragSortable === sortable) {
|
|
40732
|
+
multiDragElements.forEach(function (multiDragElement, i) {
|
|
40733
|
+
data += (!i ? '' : ', ') + multiDragElement.textContent;
|
|
40734
|
+
});
|
|
40735
|
+
} else {
|
|
40736
|
+
data = dragEl.textContent;
|
|
40737
|
+
}
|
|
40738
|
+
dataTransfer.setData('Text', data);
|
|
40739
|
+
}
|
|
40740
|
+
};
|
|
40741
|
+
}
|
|
40742
|
+
MultiDrag.prototype = {
|
|
40743
|
+
multiDragKeyDown: false,
|
|
40744
|
+
isMultiDrag: false,
|
|
40745
|
+
delayStartGlobal: function delayStartGlobal(_ref) {
|
|
40746
|
+
var dragged = _ref.dragEl;
|
|
40747
|
+
dragEl$1 = dragged;
|
|
40748
|
+
},
|
|
40749
|
+
delayEnded: function delayEnded() {
|
|
40750
|
+
this.isMultiDrag = ~multiDragElements.indexOf(dragEl$1);
|
|
40751
|
+
},
|
|
40752
|
+
setupClone: function setupClone(_ref2) {
|
|
40753
|
+
var sortable = _ref2.sortable,
|
|
40754
|
+
cancel = _ref2.cancel;
|
|
40755
|
+
if (!this.isMultiDrag) return;
|
|
40756
|
+
for (var i = 0; i < multiDragElements.length; i++) {
|
|
40757
|
+
multiDragClones.push(clone(multiDragElements[i]));
|
|
40758
|
+
multiDragClones[i].sortableIndex = multiDragElements[i].sortableIndex;
|
|
40759
|
+
multiDragClones[i].draggable = false;
|
|
40760
|
+
multiDragClones[i].style['will-change'] = '';
|
|
40761
|
+
toggleClass(multiDragClones[i], this.options.selectedClass, false);
|
|
40762
|
+
multiDragElements[i] === dragEl$1 && toggleClass(multiDragClones[i], this.options.chosenClass, false);
|
|
40763
|
+
}
|
|
40764
|
+
sortable._hideClone();
|
|
40765
|
+
cancel();
|
|
40766
|
+
},
|
|
40767
|
+
clone: function clone(_ref3) {
|
|
40768
|
+
var sortable = _ref3.sortable,
|
|
40769
|
+
rootEl = _ref3.rootEl,
|
|
40770
|
+
dispatchSortableEvent = _ref3.dispatchSortableEvent,
|
|
40771
|
+
cancel = _ref3.cancel;
|
|
40772
|
+
if (!this.isMultiDrag) return;
|
|
40773
|
+
if (!this.options.removeCloneOnHide) {
|
|
40774
|
+
if (multiDragElements.length && multiDragSortable === sortable) {
|
|
40775
|
+
insertMultiDragClones(true, rootEl);
|
|
40776
|
+
dispatchSortableEvent('clone');
|
|
40777
|
+
cancel();
|
|
40778
|
+
}
|
|
40779
|
+
}
|
|
40780
|
+
},
|
|
40781
|
+
showClone: function showClone(_ref4) {
|
|
40782
|
+
var cloneNowShown = _ref4.cloneNowShown,
|
|
40783
|
+
rootEl = _ref4.rootEl,
|
|
40784
|
+
cancel = _ref4.cancel;
|
|
40785
|
+
if (!this.isMultiDrag) return;
|
|
40786
|
+
insertMultiDragClones(false, rootEl);
|
|
40787
|
+
multiDragClones.forEach(function (clone) {
|
|
40788
|
+
css(clone, 'display', '');
|
|
40789
|
+
});
|
|
40790
|
+
cloneNowShown();
|
|
40791
|
+
clonesHidden = false;
|
|
40792
|
+
cancel();
|
|
40793
|
+
},
|
|
40794
|
+
hideClone: function hideClone(_ref5) {
|
|
40795
|
+
var _this = this;
|
|
40796
|
+
var sortable = _ref5.sortable,
|
|
40797
|
+
cloneNowHidden = _ref5.cloneNowHidden,
|
|
40798
|
+
cancel = _ref5.cancel;
|
|
40799
|
+
if (!this.isMultiDrag) return;
|
|
40800
|
+
multiDragClones.forEach(function (clone) {
|
|
40801
|
+
css(clone, 'display', 'none');
|
|
40802
|
+
if (_this.options.removeCloneOnHide && clone.parentNode) {
|
|
40803
|
+
clone.parentNode.removeChild(clone);
|
|
40804
|
+
}
|
|
40805
|
+
});
|
|
40806
|
+
cloneNowHidden();
|
|
40807
|
+
clonesHidden = true;
|
|
40808
|
+
cancel();
|
|
40809
|
+
},
|
|
40810
|
+
dragStartGlobal: function dragStartGlobal(_ref6) {
|
|
40811
|
+
var sortable = _ref6.sortable;
|
|
40812
|
+
if (!this.isMultiDrag && multiDragSortable) {
|
|
40813
|
+
multiDragSortable.multiDrag._deselectMultiDrag();
|
|
40814
|
+
}
|
|
40815
|
+
multiDragElements.forEach(function (multiDragElement) {
|
|
40816
|
+
multiDragElement.sortableIndex = sortable_esm_index(multiDragElement);
|
|
40817
|
+
});
|
|
40818
|
+
|
|
40819
|
+
// Sort multi-drag elements
|
|
40820
|
+
multiDragElements = multiDragElements.sort(function (a, b) {
|
|
40821
|
+
return a.sortableIndex - b.sortableIndex;
|
|
40822
|
+
});
|
|
40823
|
+
dragStarted = true;
|
|
40824
|
+
},
|
|
40825
|
+
dragStarted: function dragStarted(_ref7) {
|
|
40826
|
+
var _this2 = this;
|
|
40827
|
+
var sortable = _ref7.sortable;
|
|
40828
|
+
if (!this.isMultiDrag) return;
|
|
40829
|
+
if (this.options.sort) {
|
|
40830
|
+
// Capture rects,
|
|
40831
|
+
// hide multi drag elements (by positioning them absolute),
|
|
40832
|
+
// set multi drag elements rects to dragRect,
|
|
40833
|
+
// show multi drag elements,
|
|
40834
|
+
// animate to rects,
|
|
40835
|
+
// unset rects & remove from DOM
|
|
40836
|
+
|
|
40837
|
+
sortable.captureAnimationState();
|
|
40838
|
+
if (this.options.animation) {
|
|
40839
|
+
multiDragElements.forEach(function (multiDragElement) {
|
|
40840
|
+
if (multiDragElement === dragEl$1) return;
|
|
40841
|
+
css(multiDragElement, 'position', 'absolute');
|
|
40842
|
+
});
|
|
40843
|
+
var dragRect = getRect(dragEl$1, false, true, true);
|
|
40844
|
+
multiDragElements.forEach(function (multiDragElement) {
|
|
40845
|
+
if (multiDragElement === dragEl$1) return;
|
|
40846
|
+
setRect(multiDragElement, dragRect);
|
|
40847
|
+
});
|
|
40848
|
+
folding = true;
|
|
40849
|
+
initialFolding = true;
|
|
40850
|
+
}
|
|
40851
|
+
}
|
|
40852
|
+
sortable.animateAll(function () {
|
|
40853
|
+
folding = false;
|
|
40854
|
+
initialFolding = false;
|
|
40855
|
+
if (_this2.options.animation) {
|
|
40856
|
+
multiDragElements.forEach(function (multiDragElement) {
|
|
40857
|
+
unsetRect(multiDragElement);
|
|
40858
|
+
});
|
|
40859
|
+
}
|
|
40860
|
+
|
|
40861
|
+
// Remove all auxiliary multidrag items from el, if sorting enabled
|
|
40862
|
+
if (_this2.options.sort) {
|
|
40863
|
+
removeMultiDragElements();
|
|
40864
|
+
}
|
|
40865
|
+
});
|
|
40866
|
+
},
|
|
40867
|
+
dragOver: function dragOver(_ref8) {
|
|
40868
|
+
var target = _ref8.target,
|
|
40869
|
+
completed = _ref8.completed,
|
|
40870
|
+
cancel = _ref8.cancel;
|
|
40871
|
+
if (folding && ~multiDragElements.indexOf(target)) {
|
|
40872
|
+
completed(false);
|
|
40873
|
+
cancel();
|
|
40874
|
+
}
|
|
40875
|
+
},
|
|
40876
|
+
revert: function revert(_ref9) {
|
|
40877
|
+
var fromSortable = _ref9.fromSortable,
|
|
40878
|
+
rootEl = _ref9.rootEl,
|
|
40879
|
+
sortable = _ref9.sortable,
|
|
40880
|
+
dragRect = _ref9.dragRect;
|
|
40881
|
+
if (multiDragElements.length > 1) {
|
|
40882
|
+
// Setup unfold animation
|
|
40883
|
+
multiDragElements.forEach(function (multiDragElement) {
|
|
40884
|
+
sortable.addAnimationState({
|
|
40885
|
+
target: multiDragElement,
|
|
40886
|
+
rect: folding ? getRect(multiDragElement) : dragRect
|
|
40887
|
+
});
|
|
40888
|
+
unsetRect(multiDragElement);
|
|
40889
|
+
multiDragElement.fromRect = dragRect;
|
|
40890
|
+
fromSortable.removeAnimationState(multiDragElement);
|
|
40891
|
+
});
|
|
40892
|
+
folding = false;
|
|
40893
|
+
insertMultiDragElements(!this.options.removeCloneOnHide, rootEl);
|
|
40894
|
+
}
|
|
40895
|
+
},
|
|
40896
|
+
dragOverCompleted: function dragOverCompleted(_ref10) {
|
|
40897
|
+
var sortable = _ref10.sortable,
|
|
40898
|
+
isOwner = _ref10.isOwner,
|
|
40899
|
+
insertion = _ref10.insertion,
|
|
40900
|
+
activeSortable = _ref10.activeSortable,
|
|
40901
|
+
parentEl = _ref10.parentEl,
|
|
40902
|
+
putSortable = _ref10.putSortable;
|
|
40903
|
+
var options = this.options;
|
|
40904
|
+
if (insertion) {
|
|
40905
|
+
// Clones must be hidden before folding animation to capture dragRectAbsolute properly
|
|
40906
|
+
if (isOwner) {
|
|
40907
|
+
activeSortable._hideClone();
|
|
40908
|
+
}
|
|
40909
|
+
initialFolding = false;
|
|
40910
|
+
// If leaving sort:false root, or already folding - Fold to new location
|
|
40911
|
+
if (options.animation && multiDragElements.length > 1 && (folding || !isOwner && !activeSortable.options.sort && !putSortable)) {
|
|
40912
|
+
// Fold: Set all multi drag elements's rects to dragEl's rect when multi-drag elements are invisible
|
|
40913
|
+
var dragRectAbsolute = getRect(dragEl$1, false, true, true);
|
|
40914
|
+
multiDragElements.forEach(function (multiDragElement) {
|
|
40915
|
+
if (multiDragElement === dragEl$1) return;
|
|
40916
|
+
setRect(multiDragElement, dragRectAbsolute);
|
|
40917
|
+
|
|
40918
|
+
// Move element(s) to end of parentEl so that it does not interfere with multi-drag clones insertion if they are inserted
|
|
40919
|
+
// while folding, and so that we can capture them again because old sortable will no longer be fromSortable
|
|
40920
|
+
parentEl.appendChild(multiDragElement);
|
|
40921
|
+
});
|
|
40922
|
+
folding = true;
|
|
40923
|
+
}
|
|
40924
|
+
|
|
40925
|
+
// Clones must be shown (and check to remove multi drags) after folding when interfering multiDragElements are moved out
|
|
40926
|
+
if (!isOwner) {
|
|
40927
|
+
// Only remove if not folding (folding will remove them anyways)
|
|
40928
|
+
if (!folding) {
|
|
40929
|
+
removeMultiDragElements();
|
|
40930
|
+
}
|
|
40931
|
+
if (multiDragElements.length > 1) {
|
|
40932
|
+
var clonesHiddenBefore = clonesHidden;
|
|
40933
|
+
activeSortable._showClone(sortable);
|
|
40934
|
+
|
|
40935
|
+
// Unfold animation for clones if showing from hidden
|
|
40936
|
+
if (activeSortable.options.animation && !clonesHidden && clonesHiddenBefore) {
|
|
40937
|
+
multiDragClones.forEach(function (clone) {
|
|
40938
|
+
activeSortable.addAnimationState({
|
|
40939
|
+
target: clone,
|
|
40940
|
+
rect: clonesFromRect
|
|
40941
|
+
});
|
|
40942
|
+
clone.fromRect = clonesFromRect;
|
|
40943
|
+
clone.thisAnimationDuration = null;
|
|
40944
|
+
});
|
|
40945
|
+
}
|
|
40946
|
+
} else {
|
|
40947
|
+
activeSortable._showClone(sortable);
|
|
40948
|
+
}
|
|
40949
|
+
}
|
|
40950
|
+
}
|
|
40951
|
+
},
|
|
40952
|
+
dragOverAnimationCapture: function dragOverAnimationCapture(_ref11) {
|
|
40953
|
+
var dragRect = _ref11.dragRect,
|
|
40954
|
+
isOwner = _ref11.isOwner,
|
|
40955
|
+
activeSortable = _ref11.activeSortable;
|
|
40956
|
+
multiDragElements.forEach(function (multiDragElement) {
|
|
40957
|
+
multiDragElement.thisAnimationDuration = null;
|
|
40958
|
+
});
|
|
40959
|
+
if (activeSortable.options.animation && !isOwner && activeSortable.multiDrag.isMultiDrag) {
|
|
40960
|
+
clonesFromRect = _extends({}, dragRect);
|
|
40961
|
+
var dragMatrix = matrix(dragEl$1, true);
|
|
40962
|
+
clonesFromRect.top -= dragMatrix.f;
|
|
40963
|
+
clonesFromRect.left -= dragMatrix.e;
|
|
40964
|
+
}
|
|
40965
|
+
},
|
|
40966
|
+
dragOverAnimationComplete: function dragOverAnimationComplete() {
|
|
40967
|
+
if (folding) {
|
|
40968
|
+
folding = false;
|
|
40969
|
+
removeMultiDragElements();
|
|
40970
|
+
}
|
|
40971
|
+
},
|
|
40972
|
+
drop: function drop(_ref12) {
|
|
40973
|
+
var evt = _ref12.originalEvent,
|
|
40974
|
+
rootEl = _ref12.rootEl,
|
|
40975
|
+
parentEl = _ref12.parentEl,
|
|
40976
|
+
sortable = _ref12.sortable,
|
|
40977
|
+
dispatchSortableEvent = _ref12.dispatchSortableEvent,
|
|
40978
|
+
oldIndex = _ref12.oldIndex,
|
|
40979
|
+
putSortable = _ref12.putSortable;
|
|
40980
|
+
var toSortable = putSortable || this.sortable;
|
|
40981
|
+
if (!evt) return;
|
|
40982
|
+
var options = this.options,
|
|
40983
|
+
children = parentEl.children;
|
|
40984
|
+
|
|
40985
|
+
// Multi-drag selection
|
|
40986
|
+
if (!dragStarted) {
|
|
40987
|
+
if (options.multiDragKey && !this.multiDragKeyDown) {
|
|
40988
|
+
this._deselectMultiDrag();
|
|
40989
|
+
}
|
|
40990
|
+
toggleClass(dragEl$1, options.selectedClass, !~multiDragElements.indexOf(dragEl$1));
|
|
40991
|
+
if (!~multiDragElements.indexOf(dragEl$1)) {
|
|
40992
|
+
multiDragElements.push(dragEl$1);
|
|
40993
|
+
dispatchEvent({
|
|
40994
|
+
sortable: sortable,
|
|
40995
|
+
rootEl: rootEl,
|
|
40996
|
+
name: 'select',
|
|
40997
|
+
targetEl: dragEl$1,
|
|
40998
|
+
originalEvent: evt
|
|
40999
|
+
});
|
|
41000
|
+
|
|
41001
|
+
// Modifier activated, select from last to dragEl
|
|
41002
|
+
if (evt.shiftKey && lastMultiDragSelect && sortable.el.contains(lastMultiDragSelect)) {
|
|
41003
|
+
var lastIndex = sortable_esm_index(lastMultiDragSelect),
|
|
41004
|
+
currentIndex = sortable_esm_index(dragEl$1);
|
|
41005
|
+
if (~lastIndex && ~currentIndex && lastIndex !== currentIndex) {
|
|
41006
|
+
// Must include lastMultiDragSelect (select it), in case modified selection from no selection
|
|
41007
|
+
// (but previous selection existed)
|
|
41008
|
+
var n, i;
|
|
41009
|
+
if (currentIndex > lastIndex) {
|
|
41010
|
+
i = lastIndex;
|
|
41011
|
+
n = currentIndex;
|
|
41012
|
+
} else {
|
|
41013
|
+
i = currentIndex;
|
|
41014
|
+
n = lastIndex + 1;
|
|
41015
|
+
}
|
|
41016
|
+
for (; i < n; i++) {
|
|
41017
|
+
if (~multiDragElements.indexOf(children[i])) continue;
|
|
41018
|
+
toggleClass(children[i], options.selectedClass, true);
|
|
41019
|
+
multiDragElements.push(children[i]);
|
|
41020
|
+
dispatchEvent({
|
|
41021
|
+
sortable: sortable,
|
|
41022
|
+
rootEl: rootEl,
|
|
41023
|
+
name: 'select',
|
|
41024
|
+
targetEl: children[i],
|
|
41025
|
+
originalEvent: evt
|
|
41026
|
+
});
|
|
41027
|
+
}
|
|
41028
|
+
}
|
|
41029
|
+
} else {
|
|
41030
|
+
lastMultiDragSelect = dragEl$1;
|
|
41031
|
+
}
|
|
41032
|
+
multiDragSortable = toSortable;
|
|
41033
|
+
} else {
|
|
41034
|
+
multiDragElements.splice(multiDragElements.indexOf(dragEl$1), 1);
|
|
41035
|
+
lastMultiDragSelect = null;
|
|
41036
|
+
dispatchEvent({
|
|
41037
|
+
sortable: sortable,
|
|
41038
|
+
rootEl: rootEl,
|
|
41039
|
+
name: 'deselect',
|
|
41040
|
+
targetEl: dragEl$1,
|
|
41041
|
+
originalEvent: evt
|
|
41042
|
+
});
|
|
41043
|
+
}
|
|
41044
|
+
}
|
|
41045
|
+
|
|
41046
|
+
// Multi-drag drop
|
|
41047
|
+
if (dragStarted && this.isMultiDrag) {
|
|
41048
|
+
folding = false;
|
|
41049
|
+
// Do not "unfold" after around dragEl if reverted
|
|
41050
|
+
if ((parentEl[expando].options.sort || parentEl !== rootEl) && multiDragElements.length > 1) {
|
|
41051
|
+
var dragRect = getRect(dragEl$1),
|
|
41052
|
+
multiDragIndex = sortable_esm_index(dragEl$1, ':not(.' + this.options.selectedClass + ')');
|
|
41053
|
+
if (!initialFolding && options.animation) dragEl$1.thisAnimationDuration = null;
|
|
41054
|
+
toSortable.captureAnimationState();
|
|
41055
|
+
if (!initialFolding) {
|
|
41056
|
+
if (options.animation) {
|
|
41057
|
+
dragEl$1.fromRect = dragRect;
|
|
41058
|
+
multiDragElements.forEach(function (multiDragElement) {
|
|
41059
|
+
multiDragElement.thisAnimationDuration = null;
|
|
41060
|
+
if (multiDragElement !== dragEl$1) {
|
|
41061
|
+
var rect = folding ? getRect(multiDragElement) : dragRect;
|
|
41062
|
+
multiDragElement.fromRect = rect;
|
|
41063
|
+
|
|
41064
|
+
// Prepare unfold animation
|
|
41065
|
+
toSortable.addAnimationState({
|
|
41066
|
+
target: multiDragElement,
|
|
41067
|
+
rect: rect
|
|
41068
|
+
});
|
|
41069
|
+
}
|
|
41070
|
+
});
|
|
41071
|
+
}
|
|
41072
|
+
|
|
41073
|
+
// Multi drag elements are not necessarily removed from the DOM on drop, so to reinsert
|
|
41074
|
+
// properly they must all be removed
|
|
41075
|
+
removeMultiDragElements();
|
|
41076
|
+
multiDragElements.forEach(function (multiDragElement) {
|
|
41077
|
+
if (children[multiDragIndex]) {
|
|
41078
|
+
parentEl.insertBefore(multiDragElement, children[multiDragIndex]);
|
|
41079
|
+
} else {
|
|
41080
|
+
parentEl.appendChild(multiDragElement);
|
|
41081
|
+
}
|
|
41082
|
+
multiDragIndex++;
|
|
41083
|
+
});
|
|
41084
|
+
|
|
41085
|
+
// If initial folding is done, the elements may have changed position because they are now
|
|
41086
|
+
// unfolding around dragEl, even though dragEl may not have his index changed, so update event
|
|
41087
|
+
// must be fired here as Sortable will not.
|
|
41088
|
+
if (oldIndex === sortable_esm_index(dragEl$1)) {
|
|
41089
|
+
var update = false;
|
|
41090
|
+
multiDragElements.forEach(function (multiDragElement) {
|
|
41091
|
+
if (multiDragElement.sortableIndex !== sortable_esm_index(multiDragElement)) {
|
|
41092
|
+
update = true;
|
|
41093
|
+
return;
|
|
41094
|
+
}
|
|
41095
|
+
});
|
|
41096
|
+
if (update) {
|
|
41097
|
+
dispatchSortableEvent('update');
|
|
41098
|
+
dispatchSortableEvent('sort');
|
|
41099
|
+
}
|
|
41100
|
+
}
|
|
41101
|
+
}
|
|
41102
|
+
|
|
41103
|
+
// Must be done after capturing individual rects (scroll bar)
|
|
41104
|
+
multiDragElements.forEach(function (multiDragElement) {
|
|
41105
|
+
unsetRect(multiDragElement);
|
|
41106
|
+
});
|
|
41107
|
+
toSortable.animateAll();
|
|
41108
|
+
}
|
|
41109
|
+
multiDragSortable = toSortable;
|
|
41110
|
+
}
|
|
41111
|
+
|
|
41112
|
+
// Remove clones if necessary
|
|
41113
|
+
if (rootEl === parentEl || putSortable && putSortable.lastPutMode !== 'clone') {
|
|
41114
|
+
multiDragClones.forEach(function (clone) {
|
|
41115
|
+
clone.parentNode && clone.parentNode.removeChild(clone);
|
|
41116
|
+
});
|
|
41117
|
+
}
|
|
41118
|
+
},
|
|
41119
|
+
nullingGlobal: function nullingGlobal() {
|
|
41120
|
+
this.isMultiDrag = dragStarted = false;
|
|
41121
|
+
multiDragClones.length = 0;
|
|
41122
|
+
},
|
|
41123
|
+
destroyGlobal: function destroyGlobal() {
|
|
41124
|
+
this._deselectMultiDrag();
|
|
41125
|
+
off(document, 'pointerup', this._deselectMultiDrag);
|
|
41126
|
+
off(document, 'mouseup', this._deselectMultiDrag);
|
|
41127
|
+
off(document, 'touchend', this._deselectMultiDrag);
|
|
41128
|
+
off(document, 'keydown', this._checkKeyDown);
|
|
41129
|
+
off(document, 'keyup', this._checkKeyUp);
|
|
41130
|
+
},
|
|
41131
|
+
_deselectMultiDrag: function _deselectMultiDrag(evt) {
|
|
41132
|
+
if (typeof dragStarted !== "undefined" && dragStarted) return;
|
|
41133
|
+
|
|
41134
|
+
// Only deselect if selection is in this sortable
|
|
41135
|
+
if (multiDragSortable !== this.sortable) return;
|
|
41136
|
+
|
|
41137
|
+
// Only deselect if target is not item in this sortable
|
|
41138
|
+
if (evt && closest(evt.target, this.options.draggable, this.sortable.el, false)) return;
|
|
41139
|
+
|
|
41140
|
+
// Only deselect if left click
|
|
41141
|
+
if (evt && evt.button !== 0) return;
|
|
41142
|
+
while (multiDragElements.length) {
|
|
41143
|
+
var el = multiDragElements[0];
|
|
41144
|
+
toggleClass(el, this.options.selectedClass, false);
|
|
41145
|
+
multiDragElements.shift();
|
|
41146
|
+
dispatchEvent({
|
|
41147
|
+
sortable: this.sortable,
|
|
41148
|
+
rootEl: this.sortable.el,
|
|
41149
|
+
name: 'deselect',
|
|
41150
|
+
targetEl: el,
|
|
41151
|
+
originalEvent: evt
|
|
41152
|
+
});
|
|
41153
|
+
}
|
|
41154
|
+
},
|
|
41155
|
+
_checkKeyDown: function _checkKeyDown(evt) {
|
|
41156
|
+
if (evt.key === this.options.multiDragKey) {
|
|
41157
|
+
this.multiDragKeyDown = true;
|
|
41158
|
+
}
|
|
41159
|
+
},
|
|
41160
|
+
_checkKeyUp: function _checkKeyUp(evt) {
|
|
41161
|
+
if (evt.key === this.options.multiDragKey) {
|
|
41162
|
+
this.multiDragKeyDown = false;
|
|
41163
|
+
}
|
|
41164
|
+
}
|
|
41165
|
+
};
|
|
41166
|
+
return _extends(MultiDrag, {
|
|
41167
|
+
// Static methods & properties
|
|
41168
|
+
pluginName: 'multiDrag',
|
|
41169
|
+
utils: {
|
|
41170
|
+
/**
|
|
41171
|
+
* Selects the provided multi-drag item
|
|
41172
|
+
* @param {HTMLElement} el The element to be selected
|
|
41173
|
+
*/
|
|
41174
|
+
select: function select(el) {
|
|
41175
|
+
var sortable = el.parentNode[expando];
|
|
41176
|
+
if (!sortable || !sortable.options.multiDrag || ~multiDragElements.indexOf(el)) return;
|
|
41177
|
+
if (multiDragSortable && multiDragSortable !== sortable) {
|
|
41178
|
+
multiDragSortable.multiDrag._deselectMultiDrag();
|
|
41179
|
+
multiDragSortable = sortable;
|
|
41180
|
+
}
|
|
41181
|
+
toggleClass(el, sortable.options.selectedClass, true);
|
|
41182
|
+
multiDragElements.push(el);
|
|
41183
|
+
},
|
|
41184
|
+
/**
|
|
41185
|
+
* Deselects the provided multi-drag item
|
|
41186
|
+
* @param {HTMLElement} el The element to be deselected
|
|
41187
|
+
*/
|
|
41188
|
+
deselect: function deselect(el) {
|
|
41189
|
+
var sortable = el.parentNode[expando],
|
|
41190
|
+
index = multiDragElements.indexOf(el);
|
|
41191
|
+
if (!sortable || !sortable.options.multiDrag || !~index) return;
|
|
41192
|
+
toggleClass(el, sortable.options.selectedClass, false);
|
|
41193
|
+
multiDragElements.splice(index, 1);
|
|
41194
|
+
}
|
|
41195
|
+
},
|
|
41196
|
+
eventProperties: function eventProperties() {
|
|
41197
|
+
var _this3 = this;
|
|
41198
|
+
var oldIndicies = [],
|
|
41199
|
+
newIndicies = [];
|
|
41200
|
+
multiDragElements.forEach(function (multiDragElement) {
|
|
41201
|
+
oldIndicies.push({
|
|
41202
|
+
multiDragElement: multiDragElement,
|
|
41203
|
+
index: multiDragElement.sortableIndex
|
|
41204
|
+
});
|
|
41205
|
+
|
|
41206
|
+
// multiDragElements will already be sorted if folding
|
|
41207
|
+
var newIndex;
|
|
41208
|
+
if (folding && multiDragElement !== dragEl$1) {
|
|
41209
|
+
newIndex = -1;
|
|
41210
|
+
} else if (folding) {
|
|
41211
|
+
newIndex = sortable_esm_index(multiDragElement, ':not(.' + _this3.options.selectedClass + ')');
|
|
41212
|
+
} else {
|
|
41213
|
+
newIndex = sortable_esm_index(multiDragElement);
|
|
41214
|
+
}
|
|
41215
|
+
newIndicies.push({
|
|
41216
|
+
multiDragElement: multiDragElement,
|
|
41217
|
+
index: newIndex
|
|
41218
|
+
});
|
|
41219
|
+
});
|
|
41220
|
+
return {
|
|
41221
|
+
items: _toConsumableArray(multiDragElements),
|
|
41222
|
+
clones: [].concat(multiDragClones),
|
|
41223
|
+
oldIndicies: oldIndicies,
|
|
41224
|
+
newIndicies: newIndicies
|
|
41225
|
+
};
|
|
41226
|
+
},
|
|
41227
|
+
optionListeners: {
|
|
41228
|
+
multiDragKey: function multiDragKey(key) {
|
|
41229
|
+
key = key.toLowerCase();
|
|
41230
|
+
if (key === 'ctrl') {
|
|
41231
|
+
key = 'Control';
|
|
41232
|
+
} else if (key.length > 1) {
|
|
41233
|
+
key = key.charAt(0).toUpperCase() + key.substr(1);
|
|
41234
|
+
}
|
|
41235
|
+
return key;
|
|
41236
|
+
}
|
|
41237
|
+
}
|
|
41238
|
+
});
|
|
41239
|
+
}
|
|
41240
|
+
function insertMultiDragElements(clonesInserted, rootEl) {
|
|
41241
|
+
multiDragElements.forEach(function (multiDragElement, i) {
|
|
41242
|
+
var target = rootEl.children[multiDragElement.sortableIndex + (clonesInserted ? Number(i) : 0)];
|
|
41243
|
+
if (target) {
|
|
41244
|
+
rootEl.insertBefore(multiDragElement, target);
|
|
41245
|
+
} else {
|
|
41246
|
+
rootEl.appendChild(multiDragElement);
|
|
41247
|
+
}
|
|
41248
|
+
});
|
|
41249
|
+
}
|
|
41250
|
+
|
|
41251
|
+
/**
|
|
41252
|
+
* Insert multi-drag clones
|
|
41253
|
+
* @param {[Boolean]} elementsInserted Whether the multi-drag elements are inserted
|
|
41254
|
+
* @param {HTMLElement} rootEl
|
|
41255
|
+
*/
|
|
41256
|
+
function insertMultiDragClones(elementsInserted, rootEl) {
|
|
41257
|
+
multiDragClones.forEach(function (clone, i) {
|
|
41258
|
+
var target = rootEl.children[clone.sortableIndex + (elementsInserted ? Number(i) : 0)];
|
|
41259
|
+
if (target) {
|
|
41260
|
+
rootEl.insertBefore(clone, target);
|
|
41261
|
+
} else {
|
|
41262
|
+
rootEl.appendChild(clone);
|
|
41263
|
+
}
|
|
41264
|
+
});
|
|
41265
|
+
}
|
|
41266
|
+
function removeMultiDragElements() {
|
|
41267
|
+
multiDragElements.forEach(function (multiDragElement) {
|
|
41268
|
+
if (multiDragElement === dragEl$1) return;
|
|
41269
|
+
multiDragElement.parentNode && multiDragElement.parentNode.removeChild(multiDragElement);
|
|
41270
|
+
});
|
|
41271
|
+
}
|
|
41272
|
+
|
|
41273
|
+
Sortable.mount(new AutoScrollPlugin());
|
|
41274
|
+
Sortable.mount(Remove, Revert);
|
|
41275
|
+
|
|
41276
|
+
/* harmony default export */ var sortable_esm = (Sortable);
|
|
41277
|
+
|
|
41278
|
+
|
|
37925
41279
|
;// CONCATENATED MODULE: ./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./packages/ecyoa/email/src/xieyoujian.vue?vue&type=script&lang=js
|
|
37926
41280
|
function xieyoujianvue_type_script_lang_js_typeof(o) { "@babel/helpers - typeof"; return xieyoujianvue_type_script_lang_js_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, xieyoujianvue_type_script_lang_js_typeof(o); }
|
|
37927
41281
|
function xieyoujianvue_type_script_lang_js_regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ xieyoujianvue_type_script_lang_js_regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == xieyoujianvue_type_script_lang_js_typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator.return && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(xieyoujianvue_type_script_lang_js_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, catch: function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
|
|
37928
41282
|
function xieyoujianvue_type_script_lang_js_asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
|
|
37929
41283
|
function xieyoujianvue_type_script_lang_js_asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { xieyoujianvue_type_script_lang_js_asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { xieyoujianvue_type_script_lang_js_asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
|
|
37930
|
-
function
|
|
37931
|
-
function
|
|
37932
|
-
function
|
|
37933
|
-
function
|
|
37934
|
-
function
|
|
37935
|
-
function
|
|
41284
|
+
function xieyoujianvue_type_script_lang_js_toConsumableArray(r) { return xieyoujianvue_type_script_lang_js_arrayWithoutHoles(r) || xieyoujianvue_type_script_lang_js_iterableToArray(r) || xieyoujianvue_type_script_lang_js_unsupportedIterableToArray(r) || xieyoujianvue_type_script_lang_js_nonIterableSpread(); }
|
|
41285
|
+
function xieyoujianvue_type_script_lang_js_nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
41286
|
+
function xieyoujianvue_type_script_lang_js_unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return xieyoujianvue_type_script_lang_js_arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? xieyoujianvue_type_script_lang_js_arrayLikeToArray(r, a) : void 0; } }
|
|
41287
|
+
function xieyoujianvue_type_script_lang_js_iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
|
|
41288
|
+
function xieyoujianvue_type_script_lang_js_arrayWithoutHoles(r) { if (Array.isArray(r)) return xieyoujianvue_type_script_lang_js_arrayLikeToArray(r); }
|
|
41289
|
+
function xieyoujianvue_type_script_lang_js_arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
37936
41290
|
function xieyoujianvue_type_script_lang_js_ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
37937
41291
|
function xieyoujianvue_type_script_lang_js_objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? xieyoujianvue_type_script_lang_js_ownKeys(Object(t), !0).forEach(function (r) { xieyoujianvue_type_script_lang_js_defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : xieyoujianvue_type_script_lang_js_ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
37938
41292
|
function xieyoujianvue_type_script_lang_js_defineProperty(e, r, t) { return (r = xieyoujianvue_type_script_lang_js_toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
@@ -37940,6 +41294,7 @@ function xieyoujianvue_type_script_lang_js_toPropertyKey(t) { var i = xieyoujian
|
|
|
37940
41294
|
function xieyoujianvue_type_script_lang_js_toPrimitive(t, r) { if ("object" != xieyoujianvue_type_script_lang_js_typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != xieyoujianvue_type_script_lang_js_typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
37941
41295
|
|
|
37942
41296
|
|
|
41297
|
+
|
|
37943
41298
|
/* harmony default export */ var xieyoujianvue_type_script_lang_js = ({
|
|
37944
41299
|
components: {
|
|
37945
41300
|
txl: txl
|
|
@@ -38112,6 +41467,7 @@ function xieyoujianvue_type_script_lang_js_toPrimitive(t, r) { if ("object" != x
|
|
|
38112
41467
|
_this5.itemlist.push(val.fileLevel);
|
|
38113
41468
|
});
|
|
38114
41469
|
}
|
|
41470
|
+
_this5.setDragHander('sendList');
|
|
38115
41471
|
});
|
|
38116
41472
|
if (this.$route.query.srcBusiDataId) {
|
|
38117
41473
|
this.topBarHeight = '0px';
|
|
@@ -38374,6 +41730,21 @@ function xieyoujianvue_type_script_lang_js_toPrimitive(t, r) { if ("object" != x
|
|
|
38374
41730
|
});
|
|
38375
41731
|
},
|
|
38376
41732
|
methods: {
|
|
41733
|
+
setDragHander: function setDragHander(sendType) {
|
|
41734
|
+
var _this6 = this;
|
|
41735
|
+
var el = this.$el.querySelector('.' + sendType).querySelector('.el-scrollbar__view');
|
|
41736
|
+
this.sortable = sortable_esm.create(el, {
|
|
41737
|
+
handle: '.emailAddrStyle',
|
|
41738
|
+
dragClass: 'sortable-drag',
|
|
41739
|
+
setData: function setData(dataTransfer) {
|
|
41740
|
+
dataTransfer.setData('Text', '');
|
|
41741
|
+
},
|
|
41742
|
+
onEnd: function onEnd(evt) {
|
|
41743
|
+
var receiver = _this6[sendType].splice(evt.oldIndex, 1)[0];
|
|
41744
|
+
_this6[sendType].splice(evt.newIndex, 0, receiver);
|
|
41745
|
+
}
|
|
41746
|
+
});
|
|
41747
|
+
},
|
|
38377
41748
|
// 获取点击区域将鼠标定位在input中
|
|
38378
41749
|
clickArea: function clickArea(area) {
|
|
38379
41750
|
this.$refs[area].focus();
|
|
@@ -38386,7 +41757,7 @@ function xieyoujianvue_type_script_lang_js_toPrimitive(t, r) { if ("object" != x
|
|
|
38386
41757
|
// this.$refs.txl.zTreelatey.checkAllNodes(false)
|
|
38387
41758
|
},
|
|
38388
41759
|
filterTree: function filterTree(item) {
|
|
38389
|
-
var
|
|
41760
|
+
var _this7 = this;
|
|
38390
41761
|
// 获取父节点
|
|
38391
41762
|
var ztreeNode = this.$refs.txl.zTree.getNodes();
|
|
38392
41763
|
var zTreetxlNode = this.$refs.txl.zTreetxl.getNodes();
|
|
@@ -38397,17 +41768,17 @@ function xieyoujianvue_type_script_lang_js_toPrimitive(t, r) { if ("object" != x
|
|
|
38397
41768
|
var zLnodes = this.$refs.txl.zTreelatey.transformToArray(zTreelateyNode);
|
|
38398
41769
|
zTnodes.forEach(function (item2) {
|
|
38399
41770
|
if (item2.name === item) {
|
|
38400
|
-
|
|
41771
|
+
_this7.$refs.txl.zTree.checkNode(item2, false, true);
|
|
38401
41772
|
}
|
|
38402
41773
|
});
|
|
38403
41774
|
zTxlnodes.forEach(function (item2) {
|
|
38404
41775
|
if (item2.email === item) {
|
|
38405
|
-
|
|
41776
|
+
_this7.$refs.txl.zTreetxl.checkNode(item2, false, true);
|
|
38406
41777
|
}
|
|
38407
41778
|
});
|
|
38408
41779
|
zLnodes.forEach(function (item2) {
|
|
38409
41780
|
if (item2.email === item) {
|
|
38410
|
-
|
|
41781
|
+
_this7.$refs.txl.zTreelatey.checkNode(item2, false, true);
|
|
38411
41782
|
}
|
|
38412
41783
|
});
|
|
38413
41784
|
// 每一项前面的全选是否也取消
|
|
@@ -38416,7 +41787,7 @@ function xieyoujianvue_type_script_lang_js_toPrimitive(t, r) { if ("object" != x
|
|
|
38416
41787
|
} else if (this.$refs.txl.zTree.getCheckedNodes(true).length > 0) {
|
|
38417
41788
|
var samePub = 0;
|
|
38418
41789
|
ztreeNode.forEach(function (item3) {
|
|
38419
|
-
|
|
41790
|
+
_this7.$refs.txl.zTree.getCheckedNodes(true).forEach(function (item4) {
|
|
38420
41791
|
if (item4.id === item3.id) {
|
|
38421
41792
|
samePub++;
|
|
38422
41793
|
}
|
|
@@ -38429,7 +41800,7 @@ function xieyoujianvue_type_script_lang_js_toPrimitive(t, r) { if ("object" != x
|
|
|
38429
41800
|
} else if (this.$refs.txl.zTreetxl.getCheckedNodes(true).length > 0) {
|
|
38430
41801
|
var sameTxl = 0;
|
|
38431
41802
|
zTreetxlNode.forEach(function (item3) {
|
|
38432
|
-
|
|
41803
|
+
_this7.$refs.txl.zTreetxl.getCheckedNodes(true).forEach(function (item4) {
|
|
38433
41804
|
if (item4.id === item3.id) {
|
|
38434
41805
|
sameTxl++;
|
|
38435
41806
|
}
|
|
@@ -38443,41 +41814,47 @@ function xieyoujianvue_type_script_lang_js_toPrimitive(t, r) { if ("object" != x
|
|
|
38443
41814
|
},
|
|
38444
41815
|
// 点击添加/删除 抄送
|
|
38445
41816
|
csTagChange: function csTagChange() {
|
|
38446
|
-
var
|
|
41817
|
+
var _this8 = this;
|
|
38447
41818
|
this.csr = !this.csr;
|
|
38448
41819
|
this.focusInput = this.csr ? 2 : 1;
|
|
38449
41820
|
if (this.csr) {
|
|
38450
41821
|
this.$nextTick(function () {
|
|
38451
|
-
|
|
41822
|
+
_this8.$refs.copyTo.focus();
|
|
38452
41823
|
});
|
|
38453
41824
|
} else {
|
|
38454
41825
|
// 删除抄送人选项时
|
|
38455
41826
|
if (this.copyToList.length > 0) {
|
|
38456
41827
|
this.copyToList.forEach(function (item) {
|
|
38457
|
-
|
|
41828
|
+
_this8.filterTree(item);
|
|
38458
41829
|
});
|
|
38459
41830
|
}
|
|
38460
41831
|
}
|
|
38461
41832
|
this.copyToList = [];
|
|
41833
|
+
this.$nextTick(function () {
|
|
41834
|
+
_this8.setDragHander('copyToList');
|
|
41835
|
+
});
|
|
38462
41836
|
},
|
|
38463
41837
|
// 点击添加/删除 密送
|
|
38464
41838
|
msTagChange: function msTagChange() {
|
|
38465
|
-
var
|
|
41839
|
+
var _this9 = this;
|
|
38466
41840
|
this.msr = !this.msr;
|
|
38467
41841
|
this.focusInput = this.msr ? 3 : 1;
|
|
38468
41842
|
if (this.msr) {
|
|
38469
41843
|
this.$nextTick(function () {
|
|
38470
|
-
|
|
41844
|
+
_this9.$refs.blindCopyTo.focus();
|
|
38471
41845
|
});
|
|
38472
41846
|
} else {
|
|
38473
41847
|
// 删除密送人选项时
|
|
38474
41848
|
if (this.blindCopyToList.length > 0) {
|
|
38475
41849
|
this.blindCopyToList.forEach(function (item) {
|
|
38476
|
-
|
|
41850
|
+
_this9.filterTree(item);
|
|
38477
41851
|
});
|
|
38478
41852
|
}
|
|
38479
41853
|
}
|
|
38480
41854
|
this.blindCopyToList = [];
|
|
41855
|
+
this.$nextTick(function () {
|
|
41856
|
+
_this9.setDragHander('blindCopyToList');
|
|
41857
|
+
});
|
|
38481
41858
|
},
|
|
38482
41859
|
// 点击群发单显/取消群发单显
|
|
38483
41860
|
qfdxTagChange: function qfdxTagChange() {
|
|
@@ -38495,7 +41872,7 @@ function xieyoujianvue_type_script_lang_js_toPrimitive(t, r) { if ("object" != x
|
|
|
38495
41872
|
},
|
|
38496
41873
|
// 绑定的邮箱列表,获取默认邮箱
|
|
38497
41874
|
loadInternetList: function loadInternetList() {
|
|
38498
|
-
var
|
|
41875
|
+
var _this10 = this;
|
|
38499
41876
|
var _this = this;
|
|
38500
41877
|
_this.loading = false;
|
|
38501
41878
|
|
|
@@ -38522,7 +41899,7 @@ function xieyoujianvue_type_script_lang_js_toPrimitive(t, r) { if ("object" != x
|
|
|
38522
41899
|
}
|
|
38523
41900
|
} else {
|
|
38524
41901
|
// _this.$message.error(response.message)
|
|
38525
|
-
_this.$alert(response.message,
|
|
41902
|
+
_this.$alert(response.message, _this10.$tx('common.operationTip', '操作提示'), {
|
|
38526
41903
|
type: 'error'
|
|
38527
41904
|
});
|
|
38528
41905
|
}
|
|
@@ -38589,7 +41966,7 @@ function xieyoujianvue_type_script_lang_js_toPrimitive(t, r) { if ("object" != x
|
|
|
38589
41966
|
},
|
|
38590
41967
|
// 新邮件初始化
|
|
38591
41968
|
newMail: function newMail(type) {
|
|
38592
|
-
var
|
|
41969
|
+
var _this11 = this;
|
|
38593
41970
|
this.loading = true;
|
|
38594
41971
|
this.sendList = [];
|
|
38595
41972
|
if (type === 'againMail') {
|
|
@@ -38644,7 +42021,7 @@ function xieyoujianvue_type_script_lang_js_toPrimitive(t, r) { if ("object" != x
|
|
|
38644
42021
|
if (this.mailInfo.attachments) {
|
|
38645
42022
|
var _this$readyList;
|
|
38646
42023
|
// if (this.mailInfo.attachments.length > 0) {
|
|
38647
|
-
this.readyList = (_this$readyList = this.readyList).concat.apply(_this$readyList,
|
|
42024
|
+
this.readyList = (_this$readyList = this.readyList).concat.apply(_this$readyList, xieyoujianvue_type_script_lang_js_toConsumableArray(this.mailInfo.attachments));
|
|
38648
42025
|
this.readyList.forEach(function (item) {
|
|
38649
42026
|
if (!item.name) {
|
|
38650
42027
|
item.name = item.fileName;
|
|
@@ -38664,20 +42041,20 @@ function xieyoujianvue_type_script_lang_js_toPrimitive(t, r) { if ("object" != x
|
|
|
38664
42041
|
var lists2 = this.mailInfo.fromAddr.split(',');
|
|
38665
42042
|
var lists3 = this.mailInfo.copyTo.split(',');
|
|
38666
42043
|
lists1.forEach(function (item, index) {
|
|
38667
|
-
if (item.indexOf(
|
|
38668
|
-
|
|
42044
|
+
if (item.indexOf(_this11.defultMail.emailAddr) === -1 && item.indexOf(_this11.defultMail.emailAddr.split('@')[0]) === -1) {
|
|
42045
|
+
_this11.sendList.push(item);
|
|
38669
42046
|
}
|
|
38670
42047
|
});
|
|
38671
42048
|
lists2.forEach(function (item, index) {
|
|
38672
|
-
if (item.indexOf(
|
|
38673
|
-
|
|
42049
|
+
if (item.indexOf(_this11.defultMail.emailAddr) === -1 && item.indexOf(_this11.defultMail.emailAddr.split('@')[0]) === -1) {
|
|
42050
|
+
_this11.sendList.push(item);
|
|
38674
42051
|
}
|
|
38675
42052
|
});
|
|
38676
42053
|
lists3.forEach(function (item, index) {
|
|
38677
42054
|
if (item !== '') {
|
|
38678
|
-
if (item.indexOf(
|
|
38679
|
-
|
|
38680
|
-
|
|
42055
|
+
if (item.indexOf(_this11.defultMail.emailAddr) === -1 && item.indexOf(_this11.defultMail.emailAddr.split('@')[0]) === -1) {
|
|
42056
|
+
_this11.copyToList.push(item);
|
|
42057
|
+
_this11.csr = true;
|
|
38681
42058
|
}
|
|
38682
42059
|
}
|
|
38683
42060
|
});
|
|
@@ -38688,7 +42065,7 @@ function xieyoujianvue_type_script_lang_js_toPrimitive(t, r) { if ("object" != x
|
|
|
38688
42065
|
this.sendList.push(this.mailInfo.sendTo);
|
|
38689
42066
|
if (this.mailInfo.attachments.length > 0) {
|
|
38690
42067
|
var _this$readyList2;
|
|
38691
|
-
(_this$readyList2 = this.readyList).push.apply(_this$readyList2,
|
|
42068
|
+
(_this$readyList2 = this.readyList).push.apply(_this$readyList2, xieyoujianvue_type_script_lang_js_toConsumableArray(this.mailInfo.attachments));
|
|
38692
42069
|
}
|
|
38693
42070
|
} else if (this.mailInfo.actionType === 'forward') {
|
|
38694
42071
|
this.mailInfo.fromAddr = this.defultMail.emailAddr;
|
|
@@ -38696,7 +42073,7 @@ function xieyoujianvue_type_script_lang_js_toPrimitive(t, r) { if ("object" != x
|
|
|
38696
42073
|
if (this.mailInfo.attachments) {
|
|
38697
42074
|
if (this.mailInfo.attachments.length > 0) {
|
|
38698
42075
|
var _this$readyList3;
|
|
38699
|
-
(_this$readyList3 = this.readyList).push.apply(_this$readyList3,
|
|
42076
|
+
(_this$readyList3 = this.readyList).push.apply(_this$readyList3, xieyoujianvue_type_script_lang_js_toConsumableArray(this.mailInfo.attachments));
|
|
38700
42077
|
this.readyList.forEach(function (item) {
|
|
38701
42078
|
if (!item.name) {
|
|
38702
42079
|
item.name = item.fileName;
|
|
@@ -38727,7 +42104,7 @@ function xieyoujianvue_type_script_lang_js_toPrimitive(t, r) { if ("object" != x
|
|
|
38727
42104
|
},
|
|
38728
42105
|
// 流程表单转发邮件
|
|
38729
42106
|
wflowForwardMail: function wflowForwardMail() {
|
|
38730
|
-
var
|
|
42107
|
+
var _this12 = this;
|
|
38731
42108
|
var _this = this;
|
|
38732
42109
|
this.$http({
|
|
38733
42110
|
method: 'GET',
|
|
@@ -38742,7 +42119,7 @@ function xieyoujianvue_type_script_lang_js_toPrimitive(t, r) { if ("object" != x
|
|
|
38742
42119
|
_this.$set(_this.mailInfo, 'subject', '【' + response.body.wfInstance.wfName + '】' + response.body.wfInstance.title);
|
|
38743
42120
|
_this.mailContent = response.body.content;
|
|
38744
42121
|
_this.mailInfo.content = _this.mailContent;
|
|
38745
|
-
var mailAttachs =
|
|
42122
|
+
var mailAttachs = _this12.mailInfo.attachments || [];
|
|
38746
42123
|
response.body.attachs.forEach(function (attach) {
|
|
38747
42124
|
if (_this.$route.query.fileId && _this.$route.query.fileId.indexOf(attach.id) !== -1) {
|
|
38748
42125
|
mailAttachs.push(attach);
|
|
@@ -38825,7 +42202,7 @@ function xieyoujianvue_type_script_lang_js_toPrimitive(t, r) { if ("object" != x
|
|
|
38825
42202
|
// 存草稿
|
|
38826
42203
|
// 保存邮件草稿
|
|
38827
42204
|
saveDraft: function saveDraft(type) {
|
|
38828
|
-
var
|
|
42205
|
+
var _this13 = this;
|
|
38829
42206
|
var _this = this;
|
|
38830
42207
|
_this.mailInfo.usersetId = _this.defultMail.id;
|
|
38831
42208
|
if (_this.sendList.length > 0) {
|
|
@@ -38864,7 +42241,7 @@ function xieyoujianvue_type_script_lang_js_toPrimitive(t, r) { if ("object" != x
|
|
|
38864
42241
|
_this.sendMail();
|
|
38865
42242
|
} else {
|
|
38866
42243
|
_this.loading = false;
|
|
38867
|
-
_this.$message.success(
|
|
42244
|
+
_this.$message.success(_this13.$tx('email.messages.SaveDraftsu', '保存草稿成功'));
|
|
38868
42245
|
// location.reload()
|
|
38869
42246
|
}
|
|
38870
42247
|
}
|
|
@@ -38881,19 +42258,19 @@ function xieyoujianvue_type_script_lang_js_toPrimitive(t, r) { if ("object" != x
|
|
|
38881
42258
|
},
|
|
38882
42259
|
// * 上传附件
|
|
38883
42260
|
fileUploadFuc: function fileUploadFuc(type) {
|
|
38884
|
-
var
|
|
42261
|
+
var _this14 = this;
|
|
38885
42262
|
return xieyoujianvue_type_script_lang_js_asyncToGenerator( /*#__PURE__*/xieyoujianvue_type_script_lang_js_regeneratorRuntime().mark(function _callee() {
|
|
38886
42263
|
var _this, url, _loop3, i;
|
|
38887
42264
|
return xieyoujianvue_type_script_lang_js_regeneratorRuntime().wrap(function _callee$(_context2) {
|
|
38888
42265
|
while (1) switch (_context2.prev = _context2.next) {
|
|
38889
42266
|
case 0:
|
|
38890
|
-
_this =
|
|
42267
|
+
_this = _this14; // 两种上传接口 处理 草稿和转发和再次发送操作带过来的旧附件 和 新上传的附件
|
|
38891
42268
|
url = '/mail/attach/upload';
|
|
38892
42269
|
if (!(_this.readyList.length === 0)) {
|
|
38893
42270
|
_context2.next = 6;
|
|
38894
42271
|
break;
|
|
38895
42272
|
}
|
|
38896
|
-
_this.$messages.info(
|
|
42273
|
+
_this.$messages.info(_this14.$tx('email.messages.selectExportFile', '请选择导入文件'));
|
|
38897
42274
|
_context2.next = 15;
|
|
38898
42275
|
break;
|
|
38899
42276
|
case 6:
|
|
@@ -38954,7 +42331,7 @@ function xieyoujianvue_type_script_lang_js_toPrimitive(t, r) { if ("object" != x
|
|
|
38954
42331
|
if (response.code === 'success') {
|
|
38955
42332
|
if (response.body.uploadAttach.length > 0) {
|
|
38956
42333
|
var _this$mailInfo$attach;
|
|
38957
|
-
(_this$mailInfo$attach = _this.mailInfo.attachments).push.apply(_this$mailInfo$attach,
|
|
42334
|
+
(_this$mailInfo$attach = _this.mailInfo.attachments).push.apply(_this$mailInfo$attach, xieyoujianvue_type_script_lang_js_toConsumableArray(response.body.uploadAttach));
|
|
38958
42335
|
}
|
|
38959
42336
|
} else {
|
|
38960
42337
|
_this.$message.error(response.message);
|
|
@@ -39015,7 +42392,7 @@ function xieyoujianvue_type_script_lang_js_toPrimitive(t, r) { if ("object" != x
|
|
|
39015
42392
|
_this.sendMail();
|
|
39016
42393
|
} else {
|
|
39017
42394
|
_this.loading = false;
|
|
39018
|
-
_this.$message.success(
|
|
42395
|
+
_this.$message.success(_this14.$tx('email.messages.SaveDraftsu', '保存草稿成功'));
|
|
39019
42396
|
_this.readyList = _this.mailInfo.attachments;
|
|
39020
42397
|
if (_this.mailInfo.actionType) {
|
|
39021
42398
|
delete _this.mailInfo.actionType;
|
|
@@ -39152,23 +42529,23 @@ function xieyoujianvue_type_script_lang_js_toPrimitive(t, r) { if ("object" != x
|
|
|
39152
42529
|
},
|
|
39153
42530
|
// 手动输入的邮箱账号, 失去焦点后去验证输入的的邮件格式
|
|
39154
42531
|
keyUpFuc: function keyUpFuc() {
|
|
39155
|
-
var
|
|
42532
|
+
var _this15 = this;
|
|
39156
42533
|
return xieyoujianvue_type_script_lang_js_asyncToGenerator( /*#__PURE__*/xieyoujianvue_type_script_lang_js_regeneratorRuntime().mark(function _callee2() {
|
|
39157
42534
|
var emailDomain, tfFlag, errRes;
|
|
39158
42535
|
return xieyoujianvue_type_script_lang_js_regeneratorRuntime().wrap(function _callee2$(_context3) {
|
|
39159
42536
|
while (1) switch (_context3.prev = _context3.next) {
|
|
39160
42537
|
case 0:
|
|
39161
|
-
if (!((
|
|
42538
|
+
if (!((_this15.focusInput === 1 ? _this15.sendListInput : _this15.focusInput === 2 ? _this15.copyToInput : _this15.blindCopyToInput).trim() !== '')) {
|
|
39162
42539
|
_context3.next = 25;
|
|
39163
42540
|
break;
|
|
39164
42541
|
}
|
|
39165
42542
|
emailDomain = null;
|
|
39166
|
-
if (!(
|
|
42543
|
+
if (!(_this15.closeLink === false)) {
|
|
39167
42544
|
_context3.next = 25;
|
|
39168
42545
|
break;
|
|
39169
42546
|
}
|
|
39170
42547
|
_context3.next = 5;
|
|
39171
|
-
return
|
|
42548
|
+
return _this15.isEmail(_this15.focusInput === 1 ? _this15.sendListInput : _this15.focusInput === 2 ? _this15.copyToInput : _this15.blindCopyToInput);
|
|
39172
42549
|
case 5:
|
|
39173
42550
|
tfFlag = _context3.sent;
|
|
39174
42551
|
if (!tfFlag) {
|
|
@@ -39176,29 +42553,29 @@ function xieyoujianvue_type_script_lang_js_toPrimitive(t, r) { if ("object" != x
|
|
|
39176
42553
|
break;
|
|
39177
42554
|
}
|
|
39178
42555
|
errRes = null; // 验证当前为内部邮箱时,是否需要绑定外部邮箱
|
|
39179
|
-
if (!(
|
|
42556
|
+
if (!(_this15.defultMail.emailReceiveType === null)) {
|
|
39180
42557
|
_context3.next = 15;
|
|
39181
42558
|
break;
|
|
39182
42559
|
}
|
|
39183
|
-
emailDomain = '@' +
|
|
39184
|
-
if (
|
|
42560
|
+
emailDomain = '@' + _this15.defultMail.emailAddr.split('@')[1];
|
|
42561
|
+
if (_this15.defultMail.internetEmailAddr) {
|
|
39185
42562
|
_context3.next = 15;
|
|
39186
42563
|
break;
|
|
39187
42564
|
}
|
|
39188
|
-
if (!((
|
|
42565
|
+
if (!((_this15.focusInput === 1 ? _this15.sendListInput : _this15.focusInput === 2 ? _this15.copyToInput : _this15.blindCopyToInput).indexOf(emailDomain) === -1)) {
|
|
39189
42566
|
_context3.next = 15;
|
|
39190
42567
|
break;
|
|
39191
42568
|
}
|
|
39192
|
-
|
|
42569
|
+
_this15.$alert(_this15.$tx('email.xieyoujian.content2', '当前账号为内部使用邮箱,如您需往外部邮箱发送邮件,请先前往邮箱中心将本账号绑定外部邮箱'), _this15.$tx('common.operationTip', '操作提示'), {
|
|
39193
42570
|
type: 'warning'
|
|
39194
42571
|
});
|
|
39195
|
-
|
|
42572
|
+
_this15.focusInput === 1 ? _this15.sendListInput = '' : _this15.focusInput === 2 ? _this15.copyToInput = '' : _this15.blindCopyToInput = '';
|
|
39196
42573
|
return _context3.abrupt("return", false);
|
|
39197
42574
|
case 15:
|
|
39198
42575
|
// 验证手动输入的与已经存在的是否重复
|
|
39199
42576
|
;
|
|
39200
|
-
(
|
|
39201
|
-
if (item === (
|
|
42577
|
+
(_this15.focusInput === 1 ? _this15.sendList : _this15.focusInput === 2 ? _this15.copyToList : _this15.blindCopyToList).forEach(function (item, index) {
|
|
42578
|
+
if (item === (_this15.focusInput === 1 ? _this15.sendListInput : _this15.focusInput === 2 ? _this15.copyToInput : _this15.blindCopyToInput)) {
|
|
39202
42579
|
errRes = 1;
|
|
39203
42580
|
}
|
|
39204
42581
|
});
|
|
@@ -39213,29 +42590,29 @@ function xieyoujianvue_type_script_lang_js_toPrimitive(t, r) { if ("object" != x
|
|
|
39213
42590
|
_context3.next = 24;
|
|
39214
42591
|
break;
|
|
39215
42592
|
}
|
|
39216
|
-
if (
|
|
39217
|
-
|
|
42593
|
+
if (_this15.focusInput === 1) {
|
|
42594
|
+
_this15.$message.warning(_this15.$tx('email.messages.emailTip1', '已存在该收件人!'));
|
|
39218
42595
|
}
|
|
39219
|
-
if (
|
|
39220
|
-
|
|
42596
|
+
if (_this15.focusInput === 2) {
|
|
42597
|
+
_this15.$message.warning(_this15.$tx('email.messages.emailTip2', '已存在该抄送人!'));
|
|
39221
42598
|
}
|
|
39222
|
-
if (
|
|
39223
|
-
|
|
42599
|
+
if (_this15.focusInput === 3) {
|
|
42600
|
+
_this15.$message.warning(_this15.$tx('email.messages.emailTip3', '已存在该密送人!'));
|
|
39224
42601
|
}
|
|
39225
42602
|
return _context3.abrupt("return", false);
|
|
39226
42603
|
case 24:
|
|
39227
|
-
if (
|
|
39228
|
-
|
|
42604
|
+
if (_this15.focusInput === 1) {
|
|
42605
|
+
_this15.sendList.push(_this15.sendListInput);
|
|
39229
42606
|
// this.isEmail(this.sendListInput)
|
|
39230
|
-
|
|
39231
|
-
} else if (
|
|
39232
|
-
|
|
42607
|
+
_this15.sendListInput = '';
|
|
42608
|
+
} else if (_this15.focusInput === 2) {
|
|
42609
|
+
_this15.copyToList.push(_this15.copyToInput);
|
|
39233
42610
|
// this.isEmail(this.copyToInput)
|
|
39234
|
-
|
|
42611
|
+
_this15.copyToInput = '';
|
|
39235
42612
|
} else {
|
|
39236
|
-
|
|
42613
|
+
_this15.blindCopyToList.push(_this15.blindCopyToInput);
|
|
39237
42614
|
// this.isEmail(this.blindCopyToInput)
|
|
39238
|
-
|
|
42615
|
+
_this15.blindCopyToInput = '';
|
|
39239
42616
|
}
|
|
39240
42617
|
case 25:
|
|
39241
42618
|
case "end":
|
|
@@ -39293,7 +42670,7 @@ function xieyoujianvue_type_script_lang_js_toPrimitive(t, r) { if ("object" != x
|
|
|
39293
42670
|
return res;
|
|
39294
42671
|
},
|
|
39295
42672
|
getDefultMail: function getDefultMail() {
|
|
39296
|
-
var
|
|
42673
|
+
var _this16 = this;
|
|
39297
42674
|
var currentMail = sessionStorage.getItem('currentMail');
|
|
39298
42675
|
if (currentMail !== null && currentMail !== '' && currentMail !== undefined) {
|
|
39299
42676
|
this.defultMail = JSON.parse(currentMail);
|
|
@@ -39322,7 +42699,7 @@ function xieyoujianvue_type_script_lang_js_toPrimitive(t, r) { if ("object" != x
|
|
|
39322
42699
|
} else {
|
|
39323
42700
|
_this.$message.error(response.message);
|
|
39324
42701
|
}
|
|
39325
|
-
|
|
42702
|
+
_this16.loading = false;
|
|
39326
42703
|
}, function (err) {
|
|
39327
42704
|
_this.$message.error(err);
|
|
39328
42705
|
});
|
|
@@ -39378,9 +42755,9 @@ function xieyoujianvue_type_script_lang_js_toPrimitive(t, r) { if ("object" != x
|
|
|
39378
42755
|
});
|
|
39379
42756
|
;// CONCATENATED MODULE: ./packages/ecyoa/email/src/xieyoujian.vue?vue&type=script&lang=js
|
|
39380
42757
|
/* harmony default export */ var src_xieyoujianvue_type_script_lang_js = (xieyoujianvue_type_script_lang_js);
|
|
39381
|
-
// EXTERNAL MODULE: ./node_modules/vue-style-loader/index.js??clonedRuleSet-22.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-22.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[2]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[3]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-22.use[4]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./packages/ecyoa/email/src/xieyoujian.vue?vue&type=style&index=0&id=
|
|
39382
|
-
var
|
|
39383
|
-
;// CONCATENATED MODULE: ./packages/ecyoa/email/src/xieyoujian.vue?vue&type=style&index=0&id=
|
|
42758
|
+
// EXTERNAL MODULE: ./node_modules/vue-style-loader/index.js??clonedRuleSet-22.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-22.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[2]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[3]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-22.use[4]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./packages/ecyoa/email/src/xieyoujian.vue?vue&type=style&index=0&id=51e875a8&prod&lang=scss&scoped=true
|
|
42759
|
+
var xieyoujianvue_type_style_index_0_id_51e875a8_prod_lang_scss_scoped_true = __webpack_require__(9059);
|
|
42760
|
+
;// CONCATENATED MODULE: ./packages/ecyoa/email/src/xieyoujian.vue?vue&type=style&index=0&id=51e875a8&prod&lang=scss&scoped=true
|
|
39384
42761
|
|
|
39385
42762
|
;// CONCATENATED MODULE: ./packages/ecyoa/email/src/xieyoujian.vue
|
|
39386
42763
|
|
|
@@ -39393,11 +42770,11 @@ var xieyoujianvue_type_style_index_0_id_6252c928_prod_lang_scss_scoped_true = __
|
|
|
39393
42770
|
|
|
39394
42771
|
var xieyoujian_component = normalizeComponent(
|
|
39395
42772
|
src_xieyoujianvue_type_script_lang_js,
|
|
39396
|
-
|
|
39397
|
-
|
|
42773
|
+
xieyoujianvue_type_template_id_51e875a8_scoped_true_render,
|
|
42774
|
+
xieyoujianvue_type_template_id_51e875a8_scoped_true_staticRenderFns,
|
|
39398
42775
|
false,
|
|
39399
42776
|
null,
|
|
39400
|
-
"
|
|
42777
|
+
"51e875a8",
|
|
39401
42778
|
null
|
|
39402
42779
|
|
|
39403
42780
|
)
|
|
@@ -46183,12 +49560,12 @@ var components_txl_component = normalizeComponent(
|
|
|
46183
49560
|
/* harmony default export */ var components_txl = (components_txl_component.exports);
|
|
46184
49561
|
;// CONCATENATED MODULE: ./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./packages/ecyoa/email/src/sendMail/xieyoujian.vue?vue&type=script&lang=js
|
|
46185
49562
|
function sendMail_xieyoujianvue_type_script_lang_js_typeof(o) { "@babel/helpers - typeof"; return sendMail_xieyoujianvue_type_script_lang_js_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, sendMail_xieyoujianvue_type_script_lang_js_typeof(o); }
|
|
46186
|
-
function
|
|
46187
|
-
function
|
|
46188
|
-
function
|
|
46189
|
-
function
|
|
46190
|
-
function
|
|
46191
|
-
function
|
|
49563
|
+
function sendMail_xieyoujianvue_type_script_lang_js_toConsumableArray(r) { return sendMail_xieyoujianvue_type_script_lang_js_arrayWithoutHoles(r) || sendMail_xieyoujianvue_type_script_lang_js_iterableToArray(r) || sendMail_xieyoujianvue_type_script_lang_js_unsupportedIterableToArray(r) || sendMail_xieyoujianvue_type_script_lang_js_nonIterableSpread(); }
|
|
49564
|
+
function sendMail_xieyoujianvue_type_script_lang_js_nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
49565
|
+
function sendMail_xieyoujianvue_type_script_lang_js_unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return sendMail_xieyoujianvue_type_script_lang_js_arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? sendMail_xieyoujianvue_type_script_lang_js_arrayLikeToArray(r, a) : void 0; } }
|
|
49566
|
+
function sendMail_xieyoujianvue_type_script_lang_js_iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
|
|
49567
|
+
function sendMail_xieyoujianvue_type_script_lang_js_arrayWithoutHoles(r) { if (Array.isArray(r)) return sendMail_xieyoujianvue_type_script_lang_js_arrayLikeToArray(r); }
|
|
49568
|
+
function sendMail_xieyoujianvue_type_script_lang_js_arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
46192
49569
|
function sendMail_xieyoujianvue_type_script_lang_js_ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
46193
49570
|
function sendMail_xieyoujianvue_type_script_lang_js_objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? sendMail_xieyoujianvue_type_script_lang_js_ownKeys(Object(t), !0).forEach(function (r) { sendMail_xieyoujianvue_type_script_lang_js_defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : sendMail_xieyoujianvue_type_script_lang_js_ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
46194
49571
|
function sendMail_xieyoujianvue_type_script_lang_js_defineProperty(e, r, t) { return (r = sendMail_xieyoujianvue_type_script_lang_js_toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
@@ -46393,7 +49770,7 @@ function sendMail_xieyoujianvue_type_script_lang_js_toPrimitive(t, r) { if ("obj
|
|
|
46393
49770
|
// 文件中心过来的
|
|
46394
49771
|
if (this.$route.query.srcBusiDataId) {
|
|
46395
49772
|
this.srcName = this.$route.query.srcBusiDataId;
|
|
46396
|
-
var list =
|
|
49773
|
+
var list = sendMail_xieyoujianvue_type_script_lang_js_toConsumableArray(JSON.parse(this.$route.query.row));
|
|
46397
49774
|
this.readyList = list.filter(function (res, i) {
|
|
46398
49775
|
res.name = res.fileName;
|
|
46399
49776
|
return i !== list.length;
|
|
@@ -46984,7 +50361,7 @@ function sendMail_xieyoujianvue_type_script_lang_js_toPrimitive(t, r) { if ("obj
|
|
|
46984
50361
|
if (this.mailInfo.attachments) {
|
|
46985
50362
|
if (this.mailInfo.attachments.length > 0) {
|
|
46986
50363
|
var _this$readyList;
|
|
46987
|
-
this.readyList = (_this$readyList = this.readyList).concat.apply(_this$readyList,
|
|
50364
|
+
this.readyList = (_this$readyList = this.readyList).concat.apply(_this$readyList, sendMail_xieyoujianvue_type_script_lang_js_toConsumableArray(this.mailInfo.attachments));
|
|
46988
50365
|
this.readyList.forEach(function (item) {
|
|
46989
50366
|
if (!item.name) {
|
|
46990
50367
|
item.name = item.fileName;
|
|
@@ -47026,7 +50403,7 @@ function sendMail_xieyoujianvue_type_script_lang_js_toPrimitive(t, r) { if ("obj
|
|
|
47026
50403
|
this.sendList.push(this.mailInfo.sendTo);
|
|
47027
50404
|
if (this.mailInfo.attachments.length > 0) {
|
|
47028
50405
|
var _this$readyList2;
|
|
47029
|
-
(_this$readyList2 = this.readyList).push.apply(_this$readyList2,
|
|
50406
|
+
(_this$readyList2 = this.readyList).push.apply(_this$readyList2, sendMail_xieyoujianvue_type_script_lang_js_toConsumableArray(this.mailInfo.attachments));
|
|
47030
50407
|
}
|
|
47031
50408
|
} else if (this.mailInfo.actionType === 'forward') {
|
|
47032
50409
|
this.wflowEditor = true;
|
|
@@ -47035,7 +50412,7 @@ function sendMail_xieyoujianvue_type_script_lang_js_toPrimitive(t, r) { if ("obj
|
|
|
47035
50412
|
if (this.mailInfo.attachments) {
|
|
47036
50413
|
if (this.mailInfo.attachments.length > 0) {
|
|
47037
50414
|
var _this$readyList3;
|
|
47038
|
-
(_this$readyList3 = this.readyList).push.apply(_this$readyList3,
|
|
50415
|
+
(_this$readyList3 = this.readyList).push.apply(_this$readyList3, sendMail_xieyoujianvue_type_script_lang_js_toConsumableArray(this.mailInfo.attachments));
|
|
47039
50416
|
this.readyList.forEach(function (item) {
|
|
47040
50417
|
if (!item.name) {
|
|
47041
50418
|
item.name = item.fileName;
|
|
@@ -47333,7 +50710,7 @@ function sendMail_xieyoujianvue_type_script_lang_js_toPrimitive(t, r) { if ("obj
|
|
|
47333
50710
|
if (response.code === 'success') {
|
|
47334
50711
|
if (response.body.uploadAttach && response.body.uploadAttach.length > 0) {
|
|
47335
50712
|
var _this$mailInfo$attach;
|
|
47336
|
-
(_this$mailInfo$attach = _this.mailInfo.attachments).push.apply(_this$mailInfo$attach,
|
|
50713
|
+
(_this$mailInfo$attach = _this.mailInfo.attachments).push.apply(_this$mailInfo$attach, sendMail_xieyoujianvue_type_script_lang_js_toConsumableArray(response.body.uploadAttach));
|
|
47337
50714
|
}
|
|
47338
50715
|
if (type === 'send' && index === _this.readyList.length - 1) {
|
|
47339
50716
|
if (_this.readyList.length) {
|