diff --git a/app/Http/Controllers/AssetsController.php b/app/Http/Controllers/AssetsController.php index 84d891d96..056df24aa 100755 --- a/app/Http/Controllers/AssetsController.php +++ b/app/Http/Controllers/AssetsController.php @@ -666,20 +666,23 @@ class AssetsController extends Controller if ($settings->qr_code == '1') { $asset = Asset::withTrashed()->find($assetId); - $size = Helper::barcodeDimensions($settings->barcode_type); - $qr_file = public_path().'/uploads/barcodes/qr-'.str_slug($asset->asset_tag).'-'.str_slug($asset->id).'.png'; + if ($asset) { + $size = Helper::barcodeDimensions($settings->barcode_type); + $qr_file = public_path().'/uploads/barcodes/qr-'.str_slug($asset->asset_tag).'-'.str_slug($asset->id).'.png'; - if (isset($asset->id, $asset->asset_tag)) { - if (file_exists($qr_file)) { - $header = ['Content-type' => 'image/png']; - return response()->file($qr_file, $header); - } else { - $barcode = new \Com\Tecnick\Barcode\Barcode(); - $barcode_obj = $barcode->getBarcodeObj($settings->barcode_type, route('hardware.show', $asset->id), $size['height'], $size['width'], 'black', array(-2, -2, -2, -2)); - file_put_contents($qr_file, $barcode_obj->getPngData()); - return response($barcode_obj->getPngData())->header('Content-type', 'image/png'); + if (isset($asset->id, $asset->asset_tag)) { + if (file_exists($qr_file)) { + $header = ['Content-type' => 'image/png']; + return response()->file($qr_file, $header); + } else { + $barcode = new \Com\Tecnick\Barcode\Barcode(); + $barcode_obj = $barcode->getBarcodeObj($settings->barcode_type, route('hardware.show', $asset->id), $size['height'], $size['width'], 'black', array(-2, -2, -2, -2)); + file_put_contents($qr_file, $barcode_obj->getPngData()); + return response($barcode_obj->getPngData())->header('Content-type', 'image/png'); + } } } + return 'That asset is invalid'; } } diff --git a/app/Http/Controllers/ComponentsController.php b/app/Http/Controllers/ComponentsController.php index 01574ea79..0d4d6f076 100644 --- a/app/Http/Controllers/ComponentsController.php +++ b/app/Http/Controllers/ComponentsController.php @@ -3,6 +3,7 @@ namespace App\Http\Controllers; use App\Helpers\Helper; use App\Http\Requests\ImageUploadRequest; +use App\Models\Actionlog; use App\Models\Company; use App\Models\Component; use App\Models\CustomField; @@ -313,5 +314,97 @@ class ComponentsController extends Controller return redirect()->route('components.index')->with('success', trans('admin/components/message.checkout.success')); } + /** + * Returns a view that allows the checkin of a component from an asset. + * + * @author [A. Gianotto] [] + * @see ComponentsController::postCheckout() method that stores the data. + * @since [v4.1.4] + * @param int $componentId + * @return \Illuminate\Contracts\View\View + */ + public function getCheckin($component_asset_id) + { + + // This could probably be done more cleanly but I am very tired. - @snipe + if ($component_assets = DB::table('components_assets')->find($component_asset_id)) { + if (is_null($component = Component::find($component_assets->component_id))) { + return redirect()->route('components.index')->with('error', trans('admin/components/messages.not_found')); + } + if (is_null($asset = Asset::find($component_assets->asset_id))) { + return redirect()->route('components.index')->with('error', + trans('admin/components/message.not_found')); + } + $this->authorize('checkin', $component_assets); + return view('components/checkin', compact('component_assets','component','asset')); + } + + return redirect()->route('components.index')->with('error', trans('admin/components/messages.not_found')); + + } + + /** + * Validate and store checkin data. + * + * @author [A. Gianotto] [] + * @see ComponentsController::getCheckout() method that returns the form. + * @since [v4.1.4] + * @param Request $request + * @param int $componentId + * @return \Illuminate\Http\RedirectResponse + */ + public function postCheckin(Request $request, $component_asset_id) + { + if ($component_assets = DB::table('components_assets')->find($component_asset_id)) { + if (is_null($component = Component::find($component_assets->component_id))) { + return redirect()->route('components.index')->with('error', + trans('admin/components/message.not_found')); + } + + + $this->authorize('checkin', $component); + + $max_to_checkin = $component_assets->assigned_qty; + $validator = Validator::make($request->all(), [ + "checkin_qty" => "required|numeric|between:1,$max_to_checkin" + ]); + + if ($validator->fails()) { + return redirect()->back() + ->withErrors($validator) + ->withInput(); + } + + // Validation passed, so let's figure out what we have to do here. + $qty_remaining_in_checkout = ($component_assets->assigned_qty - (int)$request->input('checkin_qty')); + + // We have to modify the record to reflect the new qty that's + // actually checked out. + $component_assets->assigned_qty = $qty_remaining_in_checkout; + DB::table('components_assets')->where('id', + $component_asset_id)->update(['assigned_qty' => $qty_remaining_in_checkout]); + + $log = new Actionlog(); + $log->user_id = Auth::user()->id; + $log->action_type = 'checkin from'; + $log->target_type = Asset::class; + $log->target_id = $component_assets->asset_id; + $log->item_id = $component_assets->component_id; + $log->item_type = Component::class; + $log->note = $request->input('note'); + $log->save(); + + // If the checked-in qty is exactly the same as the assigned_qty, + // we can simply delete the associated components_assets record + if ($qty_remaining_in_checkout == 0) { + DB::table('components_assets')->where('id', '=', $component_asset_id)->delete(); + } + + return redirect()->route('components.index')->with('success', + trans('admin/components/message.checkout.success')); + } + return redirect()->route('components.index')->with('error', trans('admin/components/message.not_found')); + } + } diff --git a/app/Http/Controllers/SettingsController.php b/app/Http/Controllers/SettingsController.php index 4223ea02c..810d610d6 100755 --- a/app/Http/Controllers/SettingsController.php +++ b/app/Http/Controllers/SettingsController.php @@ -552,6 +552,7 @@ class SettingsController extends Controller $setting->alert_threshold = $request->input('alert_threshold'); $setting->audit_interval = $request->input('audit_interval'); $setting->audit_warning_days = $request->input('audit_warning_days'); + $setting->show_alerts_in_menu = $request->input('show_alerts_in_menu', '0'); if ($setting->save()) { return redirect()->route('settings.index') diff --git a/config/app.php b/config/app.php index 5b89f5781..f30388b59 100755 --- a/config/app.php +++ b/config/app.php @@ -121,7 +121,7 @@ return [ | */ - 'log' => env('APP_LOG', 'daily'), + 'log' => env('APP_LOG', 'single'), /* |-------------------------------------------------------------------------- diff --git a/database/migrations/2017_11_08_025918_add_alert_menu_setting.php b/database/migrations/2017_11_08_025918_add_alert_menu_setting.php new file mode 100644 index 000000000..5833f157c --- /dev/null +++ b/database/migrations/2017_11_08_025918_add_alert_menu_setting.php @@ -0,0 +1,32 @@ +boolean('show_alerts_in_menu')->default(1); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('settings', function (Blueprint $table) { + $table->dropColumn('show_alerts_in_menu'); + }); + } +} diff --git a/package.json b/package.json index c6878348f..ee56a6406 100644 --- a/package.json +++ b/package.json @@ -27,6 +27,7 @@ "bootstrap-less": "^3.3.8", "ekko-lightbox": "^5.1.1", "font-awesome": "^4.7.0", + "icheck": "^1.0.2", "jquery-slimscroll": "^1.3.8", "jquery-ui": "^1.12.1", "jquery-ui-bundle": "^1.12.1", diff --git a/public/js/build/all.js b/public/js/build/all.js index e33831514..3bd9f1d7a 100644 --- a/public/js/build/all.js +++ b/public/js/build/all.js @@ -22,5 +22,5 @@ t.html('",options:{classes:{},disabled:!1,create:null},_createWidget:function(i,n){n=t(n||this.defaultElement||this)[0],this.element=t(n),this.uuid=e++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=t(),this.hoverable=t(),this.focusable=t(),this.classesElementLookup={},n!==this&&(t.data(n,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===n&&this.destroy()}}),this.document=t(n.style?n.ownerDocument:n.document||n),this.window=t(this.document[0].defaultView||this.document[0].parentWindow)),this.options=t.widget.extend({},this.options,this._getCreateOptions(),i),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:t.noop,_create:t.noop,_init:t.noop,destroy:function(){var e=this;this._destroy(),t.each(this.classesElementLookup,function(t,i){e._removeClass(i,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:t.noop,widget:function(){return this.element},option:function(e,i){var n,s,o,r=e;if(0===arguments.length)return t.widget.extend({},this.options);if("string"==typeof e)if(r={},n=e.split("."),e=n.shift(),n.length){for(s=r[e]=t.widget.extend({},this.options[e]),o=0;o=0)&&n.push(s)}return n.push(t.ownerDocument.body),t.ownerDocument!==document&&n.push(t.ownerDocument.defaultView),n}function r(){D&&document.body.removeChild(D),D=null}function a(t){var e=void 0;t===document?(e=document,t=document.documentElement):e=t.ownerDocument;var i=e.documentElement,n=s(t),o=A();return n.top-=o.top,n.left-=o.left,void 0===n.width&&(n.width=document.body.scrollWidth-n.left-n.right),void 0===n.height&&(n.height=document.body.scrollHeight-n.top-n.bottom),n.top=n.top-i.clientTop,n.left=n.left-i.clientLeft,n.right=e.body.clientWidth-n.width-n.left,n.bottom=e.body.clientHeight-n.height-n.top,n}function l(t){return t.offsetParent||document.documentElement}function u(){if(E)return E;var t=document.createElement("div");t.style.width="100%",t.style.height="200px";var e=document.createElement("div");c(e.style,{position:"absolute",top:0,left:0,pointerEvents:"none",visibility:"hidden",width:"200px",height:"150px",overflow:"hidden"}),e.appendChild(t),document.body.appendChild(e);var i=t.offsetWidth;e.style.overflow="scroll";var n=t.offsetWidth;i===n&&(n=e.clientWidth),document.body.removeChild(e);var s=i-n;return E={width:s,height:s}}function c(){var t=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],e=[];return Array.prototype.push.apply(e,arguments),e.slice(1).forEach(function(e){if(e)for(var i in e)({}).hasOwnProperty.call(e,i)&&(t[i]=e[i])}),t}function h(t,e){if(void 0!==t.classList)e.split(" ").forEach(function(e){e.trim()&&t.classList.remove(e)});else{var i=new RegExp("(^| )"+e.split(" ").join("|")+"( |$)","gi"),n=f(t).replace(i," ");g(t,n)}}function d(t,e){if(void 0!==t.classList)e.split(" ").forEach(function(e){e.trim()&&t.classList.add(e)});else{h(t,e);var i=f(t)+" "+e;g(t,i)}}function p(t,e){if(void 0!==t.classList)return t.classList.contains(e);var i=f(t);return new RegExp("(^| )"+e+"( |$)","gi").test(i)}function f(t){return t.className instanceof t.ownerDocument.defaultView.SVGAnimatedString?t.className.baseVal:t.className}function g(t,e){t.setAttribute("class",e)}function m(t,e,i){i.forEach(function(i){-1===e.indexOf(i)&&p(t,i)&&h(t,i)}),e.forEach(function(e){p(t,e)||d(t,e)})}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function v(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}function _(t,e){var i=arguments.length<=2||void 0===arguments[2]?1:arguments[2];return t+i>=e&&e>=t-i}function y(){return"undefined"!=typeof performance&&void 0!==performance.now?performance.now():+new Date}function b(){for(var t={top:0,left:0},e=arguments.length,i=Array(e),n=0;n1?i-1:0),s=1;s16?(e=Math.min(e-16,250),void(i=setTimeout(n,250))):void(void 0!==t&&y()-t<10||(null!=i&&(clearTimeout(i),i=null),t=y(),L(),e=y()-t))};"undefined"!=typeof window&&void 0!==window.addEventListener&&["resize","scroll","touchmove"].forEach(function(t){window.addEventListener(t,n)})}();var R={center:"center",left:"right",right:"left"},z={middle:"middle",top:"bottom",bottom:"top"},W={top:0,left:0,middle:"50%",center:"50%",bottom:"100%",right:"100%"},U=function(t,e){var i=t.left,n=t.top;return"auto"===i&&(i=R[e.left]),"auto"===n&&(n=z[e.top]),{left:i,top:n}},B=function(t){var e=t.left,i=t.top;return void 0!==W[t.left]&&(e=W[t.left]),void 0!==W[t.top]&&(i=W[t.top]),{left:e,top:i}},q=function(t){var e=t.split(" "),i=M(e,2);return{top:i[0],left:i[1]}},V=q,Y=function(t){function e(t){var i=this;n(this,e),N(Object.getPrototypeOf(e.prototype),"constructor",this).call(this),this.position=this.position.bind(this),H.push(this),this.history=[],this.setOptions(t,!1),k.modules.forEach(function(t){void 0!==t.initialize&&t.initialize.call(i)}),this.position()}return v(e,t),C(e,[{key:"getClass",value:function(){var t=arguments.length<=0||void 0===arguments[0]?"":arguments[0],e=this.options.classes;return void 0!==e&&e[t]?this.options.classes[t]:this.options.classPrefix?this.options.classPrefix+"-"+t:t}},{key:"setOptions",value:function(t){var e=this,i=arguments.length<=1||void 0===arguments[1]||arguments[1],n={offset:"0 0",targetOffset:"0 0",targetAttachment:"auto auto",classPrefix:"tether"};this.options=c(n,t);var s=this.options,r=s.element,a=s.target,l=s.targetModifier;if(this.element=r,this.target=a,this.targetModifier=l,"viewport"===this.target?(this.target=document.body,this.targetModifier="visible"):"scroll-handle"===this.target&&(this.target=document.body,this.targetModifier="scroll-handle"),["element","target"].forEach(function(t){if(void 0===e[t])throw new Error("Tether Error: Both element and target must be defined");void 0!==e[t].jquery?e[t]=e[t][0]:"string"==typeof e[t]&&(e[t]=document.querySelector(e[t]))}),d(this.element,this.getClass("element")),!1!==this.options.addTargetClasses&&d(this.target,this.getClass("target")),!this.options.attachment)throw new Error("Tether Error: You must provide an attachment");this.targetAttachment=V(this.options.targetAttachment),this.attachment=V(this.options.attachment),this.offset=q(this.options.offset),this.targetOffset=q(this.options.targetOffset),void 0!==this.scrollParents&&this.disable(),"scroll-handle"===this.targetModifier?this.scrollParents=[this.target]:this.scrollParents=o(this.target),!1!==this.options.enabled&&this.enable(i)}},{key:"getTargetBounds",value:function(){if(void 0===this.targetModifier)return a(this.target);if("visible"===this.targetModifier){if(this.target===document.body)return{top:pageYOffset,left:pageXOffset,height:innerHeight,width:innerWidth};var t=a(this.target),e={height:t.height,width:t.width,top:t.top,left:t.left};return e.height=Math.min(e.height,t.height-(pageYOffset-t.top)),e.height=Math.min(e.height,t.height-(t.top+t.height-(pageYOffset+innerHeight))),e.height=Math.min(innerHeight,e.height),e.height-=2,e.width=Math.min(e.width,t.width-(pageXOffset-t.left)),e.width=Math.min(e.width,t.width-(t.left+t.width-(pageXOffset+innerWidth))),e.width=Math.min(innerWidth,e.width),e.width-=2,e.topi.clientWidth||[n.overflow,n.overflowX].indexOf("scroll")>=0||this.target!==document.body,o=0;s&&(o=15);var r=t.height-parseFloat(n.borderTopWidth)-parseFloat(n.borderBottomWidth)-o,e={width:15,height:.975*r*(r/i.scrollHeight),left:t.left+t.width-parseFloat(n.borderLeftWidth)-15},l=0;r<408&&this.target===document.body&&(l=-11e-5*Math.pow(r,2)-.00727*r+22.58),this.target!==document.body&&(e.height=Math.max(e.height,24));var u=this.target.scrollTop/(i.scrollHeight-r);return e.top=u*(r-e.height-l)+t.top+parseFloat(n.borderTopWidth),this.target===document.body&&(e.height=Math.max(e.height,24)),e}}},{key:"clearCache",value:function(){this._cache={}}},{key:"cache",value:function(t,e){return void 0===this._cache&&(this._cache={}),void 0===this._cache[t]&&(this._cache[t]=e.call(this)),this._cache[t]}},{key:"enable",value:function(){var t=this,e=arguments.length<=0||void 0===arguments[0]||arguments[0];!1!==this.options.addTargetClasses&&d(this.target,this.getClass("enabled")),d(this.element,this.getClass("enabled")),this.enabled=!0,this.scrollParents.forEach(function(e){e!==t.target.ownerDocument&&e.addEventListener("scroll",t.position)}),e&&this.position()}},{key:"disable",value:function(){var t=this;h(this.target,this.getClass("enabled")),h(this.element,this.getClass("enabled")),this.enabled=!1,void 0!==this.scrollParents&&this.scrollParents.forEach(function(e){e.removeEventListener("scroll",t.position)})}},{key:"destroy",value:function(){var t=this;this.disable(),H.forEach(function(e,i){e===t&&H.splice(i,1)}),0===H.length&&r()}},{key:"updateAttachClasses",value:function(t,e){var i=this;t=t||this.attachment,e=e||this.targetAttachment;var n=["left","top","bottom","right","middle","center"];void 0!==this._addAttachClasses&&this._addAttachClasses.length&&this._addAttachClasses.splice(0,this._addAttachClasses.length),void 0===this._addAttachClasses&&(this._addAttachClasses=[]);var s=this._addAttachClasses;t.top&&s.push(this.getClass("element-attached")+"-"+t.top),t.left&&s.push(this.getClass("element-attached")+"-"+t.left),e.top&&s.push(this.getClass("target-attached")+"-"+e.top),e.left&&s.push(this.getClass("target-attached")+"-"+e.left);var o=[];n.forEach(function(t){o.push(i.getClass("element-attached")+"-"+t),o.push(i.getClass("target-attached")+"-"+t)}),I(function(){void 0!==i._addAttachClasses&&(m(i.element,i._addAttachClasses,o),!1!==i.options.addTargetClasses&&m(i.target,i._addAttachClasses,o),delete i._addAttachClasses)})}},{key:"position",value:function(){var t=this,e=arguments.length<=0||void 0===arguments[0]||arguments[0];if(this.enabled){this.clearCache();var i=U(this.targetAttachment,this.attachment);this.updateAttachClasses(this.attachment,i);var n=this.cache("element-bounds",function(){return a(t.element)}),s=n.width,o=n.height;if(0===s&&0===o&&void 0!==this.lastSize){var r=this.lastSize;s=r.width,o=r.height}else this.lastSize={width:s,height:o};var c=this.cache("target-bounds",function(){return t.getTargetBounds()}),h=c,d=w(B(this.attachment),{width:s,height:o}),p=w(B(i),h),f=w(this.offset,{width:s,height:o}),g=w(this.targetOffset,h);d=b(d,f),p=b(p,g);for(var m=c.left+p.left-d.left,v=c.top+p.top-d.top,_=0;_D.documentElement.clientHeight&&(S=this.cache("scrollbar-size",u),C.viewport.bottom-=S.height),T.innerWidth>D.documentElement.clientWidth&&(S=this.cache("scrollbar-size",u),C.viewport.right-=S.width),-1!==["","static"].indexOf(D.body.style.position)&&-1!==["","static"].indexOf(D.body.parentElement.style.position)||(C.page.bottom=D.body.scrollHeight-v-o,C.page.right=D.body.scrollWidth-m-s),void 0!==this.options.optimizations&&!1!==this.options.optimizations.moveElement&&void 0===this.targetModifier&&function(){var e=t.cache("target-offsetparent",function(){return l(t.target)}),i=t.cache("target-offsetparent-bounds",function(){return a(e)}),n=getComputedStyle(e),s=i,o={};if(["Top","Left","Bottom","Right"].forEach(function(t){o[t.toLowerCase()]=parseFloat(n["border"+t+"Width"])}),i.right=D.body.scrollWidth-i.left-s.width+o.right,i.bottom=D.body.scrollHeight-i.top-s.height+o.bottom,C.page.top>=i.top+o.top&&C.page.bottom>=i.bottom&&C.page.left>=i.left+o.left&&C.page.right>=i.right){var r=e.scrollTop,u=e.scrollLeft;C.offset={top:C.page.top-i.top+r-o.top,left:C.page.left-i.left+u-o.left}}}(),this.move(C),this.history.unshift(C),this.history.length>3&&this.history.pop(),e&&O(),!0}}},{key:"move",value:function(t){var e=this;if(void 0!==this.element.parentNode){var i={};for(var n in t){i[n]={};for(var s in t[n]){for(var o=!1,r=0;r=0){var f=a.split(" "),m=M(f,2);h=m[0],c=m[1]}else c=h=a;var y=x(e,o);"target"!==h&&"both"!==h||(iy[3]&&"bottom"===v.top&&(i-=d,v.top="top")),"together"===h&&("top"===v.top&&("bottom"===_.top&&iy[3]&&i-(r-d)>=y[1]&&(i-=r-d,v.top="bottom",_.top="bottom")),"bottom"===v.top&&("top"===_.top&&i+r>y[3]?(i-=d,v.top="top",i-=r,_.top="bottom"):"bottom"===_.top&&iy[3]&&"top"===_.top?(i-=r,_.top="bottom"):iy[2]&&"right"===v.left&&(n-=p,v.left="left")),"together"===c&&(ny[2]&&"right"===v.left?"left"===_.left?(n-=p,v.left="left",n-=l,_.left="right"):"right"===_.left&&(n-=p,v.left="left",n+=l,_.left="left"):"center"===v.left&&(n+l>y[2]&&"left"===_.left?(n-=l,_.left="right"):ny[3]&&"top"===_.top&&(i-=r,_.top="bottom")),"element"!==c&&"both"!==c||(ny[2]&&("left"===_.left?(n-=l,_.left="right"):"center"===_.left&&(n-=l/2,_.left="right"))),"string"==typeof u?u=u.split(",").map(function(t){return t.trim()}):!0===u&&(u=["top","left","right","bottom"]),u=u||[];var b=[],w=[];i=0?(i=y[1],b.push("top")):w.push("top")),i+r>y[3]&&(u.indexOf("bottom")>=0?(i=y[3]-r,b.push("bottom")):w.push("bottom")),n=0?(n=y[0],b.push("left")):w.push("left")),n+l>y[2]&&(u.indexOf("right")>=0?(n=y[2]-l,b.push("right")):w.push("right")),b.length&&function(){var t=void 0;t=void 0!==e.options.pinnedClass?e.options.pinnedClass:e.getClass("pinned"),g.push(t),b.forEach(function(e){g.push(t+"-"+e)})}(),w.length&&function(){var t=void 0;t=void 0!==e.options.outOfBoundsClass?e.options.outOfBoundsClass:e.getClass("out-of-bounds"),g.push(t),w.forEach(function(e){g.push(t+"-"+e)})}(),(b.indexOf("left")>=0||b.indexOf("right")>=0)&&(_.left=v.left=!1),(b.indexOf("top")>=0||b.indexOf("bottom")>=0)&&(_.top=v.top=!1),v.top===s.top&&v.left===s.left&&_.top===e.attachment.top&&_.left===e.attachment.left||(e.updateAttachClasses(_,v),e.trigger("update",{attachment:_,targetAttachment:v}))}),I(function(){!1!==e.options.addTargetClasses&&m(e.target,g,f),m(e.element,g,f)}),{top:i,left:n}}});var F=k.Utils,a=F.getBounds,m=F.updateClasses,I=F.defer;k.modules.push({position:function(t){var e=this,i=t.top,n=t.left,s=this.cache("element-bounds",function(){return a(e.element)}),o=s.height,r=s.width,l=this.getTargetBounds(),u=i+o,c=n+r,h=[];i<=l.bottom&&u>=l.top&&["left","right"].forEach(function(t){var e=l[t];e!==n&&e!==c||h.push(t)}),n<=l.right&&c>=l.left&&["top","bottom"].forEach(function(t){var e=l[t];e!==i&&e!==u||h.push(t)});var d=[],p=[],f=["left","top","right","bottom"];return d.push(this.getClass("abutted")),f.forEach(function(t){d.push(e.getClass("abutted")+"-"+t)}),h.length&&p.push(this.getClass("abutted")),h.forEach(function(t){p.push(e.getClass("abutted")+"-"+t)}),I(function(){!1!==e.options.addTargetClasses&&m(e.target,p,d),m(e.element,p,d)}),!0}});var M=function(){function t(t,e){var i=[],n=!0,s=!1,o=void 0;try{for(var r,a=t[Symbol.iterator]();!(n=(r=a.next()).done)&&(i.push(r.value),!e||i.length!==e);n=!0);}catch(t){s=!0,o=t}finally{try{!n&&a.return&&a.return()}finally{if(s)throw o}}return i}return function(e,i){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,i);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}();return k.modules.push({position:function(t){var e=t.top,i=t.left;if(this.options.shift){var n=this.options.shift;"function"==typeof this.options.shift&&(n=this.options.shift.call(this,{top:e,left:i}));var s=void 0,o=void 0;if("string"==typeof n){n=n.split(" "),n[1]=n[1]||n[0];var r=n,a=M(r,2);s=a[0],o=a[1],s=parseFloat(s,10),o=parseFloat(o,10)}else s=n.top,o=n.left;return e+=s,i+=o,{top:e,left:i}}}}),X}),function(e){e.fn.extend({slimScroll:function(i){var n={width:"auto",height:"250px",size:"7px",color:"#000",position:"right",distance:"1px",start:"top",opacity:.4,alwaysVisible:!1,disableFadeOut:!1,railVisible:!1,railColor:"#333",railOpacity:.2,railDraggable:!0,railClass:"slimScrollRail",barClass:"slimScrollBar",wrapperClass:"slimScrollDiv",allowPageScroll:!1,wheelStep:20,touchScrollStep:200,borderRadius:"7px",railBorderRadius:"7px"},s=e.extend(n,i);return this.each(function(){function n(t){if(u){var t=t||window.event,i=0;t.wheelDelta&&(i=-t.wheelDelta/120),t.detail&&(i=t.detail/3);var n=t.target||t.srcTarget||t.srcElement;e(n).closest("."+s.wrapperClass).is(b.parent())&&o(i,!0),t.preventDefault&&!y&&t.preventDefault(),y||(t.returnValue=!1)}}function o(t,e,i){y=!1;var n=t,o=b.outerHeight()-T.outerHeight();if(e&&(n=parseInt(T.css("top"))+t*parseInt(s.wheelStep)/100*T.outerHeight(),n=Math.min(Math.max(n,0),o),n=t>0?Math.ceil(n):Math.floor(n),T.css({top:n+"px"})),g=parseInt(T.css("top"))/(b.outerHeight()-T.outerHeight()),n=g*(b[0].scrollHeight-b.outerHeight()),i){n=t;var r=n/b[0].scrollHeight*b.outerHeight();r=Math.min(Math.max(r,0),o),T.css({top:r+"px"})}b.scrollTop(n),b.trigger("slimscrolling",~~n),a(),l()}function r(){f=Math.max(b.outerHeight()/b[0].scrollHeight*b.outerHeight(),_),T.css({height:f+"px"});var t=f==b.outerHeight()?"none":"block";T.css({display:t})}function a(){if(r(),clearTimeout(d),g==~~g){if(y=s.allowPageScroll,m!=g){var t=0==~~g?"top":"bottom";b.trigger("slimscroll",t)}}else y=!1;if(m=g,f>=b.outerHeight())return void(y=!0);T.stop(!0,!0).fadeIn("fast"),s.railVisible&&D.stop(!0,!0).fadeIn("fast")}function l(){s.alwaysVisible||(d=setTimeout(function(){s.disableFadeOut&&u||c||h||(T.fadeOut("slow"),D.fadeOut("slow"))},1e3))}var u,c,h,d,p,f,g,m,v="
",_=30,y=!1,b=e(this);if(b.parent().hasClass(s.wrapperClass)){var w=b.scrollTop() ;if(T=b.siblings("."+s.barClass),D=b.siblings("."+s.railClass),r(),e.isPlainObject(i)){if("height"in i&&"auto"==i.height){b.parent().css("height","auto"),b.css("height","auto");var x=b.parent().parent().height();b.parent().css("height",x),b.css("height",x)}else if("height"in i){var C=i.height;b.parent().css("height",C),b.css("height",C)}if("scrollTo"in i)w=parseInt(s.scrollTo);else if("scrollBy"in i)w+=parseInt(s.scrollBy);else if("destroy"in i)return T.remove(),D.remove(),void b.unwrap();o(w,!1,!0)}}else if(!(e.isPlainObject(i)&&"destroy"in i)){s.height="auto"==s.height?b.parent().height():s.height;var k=e(v).addClass(s.wrapperClass).css({position:"relative",overflow:"hidden",width:s.width,height:s.height});b.css({overflow:"hidden",width:s.width,height:s.height});var D=e(v).addClass(s.railClass).css({width:s.size,height:"100%",position:"absolute",top:0,display:s.alwaysVisible&&s.railVisible?"block":"none","border-radius":s.railBorderRadius,background:s.railColor,opacity:s.railOpacity,zIndex:90}),T=e(v).addClass(s.barClass).css({background:s.color,width:s.size,position:"absolute",top:0,opacity:s.opacity,display:s.alwaysVisible?"block":"none","border-radius":s.borderRadius,BorderRadius:s.borderRadius,MozBorderRadius:s.borderRadius,WebkitBorderRadius:s.borderRadius,zIndex:99}),S="right"==s.position?{right:s.distance}:{left:s.distance};D.css(S),T.css(S),b.wrap(k),b.parent().append(T),b.parent().append(D),s.railDraggable&&T.bind("mousedown",function(i){var n=e(document);return h=!0,t=parseFloat(T.css("top")),pageY=i.pageY,n.bind("mousemove.slimscroll",function(e){currTop=t+e.pageY-pageY,T.css("top",currTop),o(0,T.position().top,!1)}),n.bind("mouseup.slimscroll",function(t){h=!1,l(),n.unbind(".slimscroll")}),!1}).bind("selectstart.slimscroll",function(t){return t.stopPropagation(),t.preventDefault(),!1}),D.hover(function(){a()},function(){l()}),T.hover(function(){c=!0},function(){c=!1}),b.hover(function(){u=!0,a(),l()},function(){u=!1,l()}),b.bind("touchstart",function(t,e){t.originalEvent.touches.length&&(p=t.originalEvent.touches[0].pageY)}),b.bind("touchmove",function(t){if(y||t.originalEvent.preventDefault(),t.originalEvent.touches.length){o((p-t.originalEvent.touches[0].pageY)/s.touchScrollStep,!0),p=t.originalEvent.touches[0].pageY}}),r(),"bottom"===s.start?(T.css({top:b.outerHeight()-T.outerHeight()}),o(0,!0)):"top"!==s.start&&(o(e(s.start).position().top,null,!0),s.alwaysVisible||T.hide()),function(t){window.addEventListener?(t.addEventListener("DOMMouseScroll",n,!1),t.addEventListener("mousewheel",n,!1)):document.attachEvent("onmousewheel",n)}(this)}}),this}}),e.fn.extend({slimscroll:e.fn.slimScroll})}(jQuery),function(t,e){"use strict";t.ajaxPrefilter(function(t,e,i){if(t.iframe)return t.originalURL=t.url,"iframe"}),t.ajaxTransport("iframe",function(e,i,n){function s(){l.each(function(e,i){var n=t(i);n.data("clone").replaceWith(n)}),o.remove(),r.one("load",function(){r.remove()}),r.attr("src","javascript:false;")}var o=null,r=null,a="iframe-"+t.now(),l=t(e.files).filter(":file:enabled"),u=null;if(e.dataTypes.shift(),e.data=i.data,l.length)return o=t("
").hide().attr({action:e.originalURL,target:a}),"string"==typeof e.data&&e.data.length>0&&t.error("data must not be serialized"),t.each(e.data||{},function(e,i){t.isPlainObject(i)&&(e=i.name,i=i.value),t("").attr({name:e,value:i}).appendTo(o)}),t("").appendTo(o),u=e.dataTypes[0]&&e.accepts[e.dataTypes[0]]?e.accepts[e.dataTypes[0]]+("*"!==e.dataTypes[0]?", */*; q=0.01":""):e.accepts["*"],t("").attr("value",u).appendTo(o),l.after(function(e){var i=t(this),n=i.clone().prop("disabled",!0);return i.data("clone",n),n}).next(),l.appendTo(o),{send:function(e,i){r=t(""),r.one("load",function(){r.one("load",function(){var t=this.contentWindow?this.contentWindow.document:this.contentDocument?this.contentDocument:this.document,e=t.documentElement?t.documentElement:t.body,n=e.getElementsByTagName("textarea")[0],o=n&&n.getAttribute("data-type")||null,r=n&&n.getAttribute("data-status")||200,a=n&&n.getAttribute("data-statusText")||"OK",l={html:e.innerHTML,text:o?n.value:e?e.textContent||e.innerText:null};s(),i(r,a,l,o?"Content-Type: "+o:null)}),o[0].submit()}),t("body").append(o,r)},abort:function(){null!==r&&(r.unbind("load").attr("src","javascript:false;"),s())}}})}(jQuery),function(t){"use strict";"function"==typeof define&&define.amd?define(["jquery","jquery-ui/ui/widget"],t):"object"==typeof exports?t(require("jquery"),require("./vendor/jquery.ui.widget")):t(window.jQuery)}(function(t){"use strict";function e(e){var i="dragover"===e;return function(n){n.dataTransfer=n.originalEvent&&n.originalEvent.dataTransfer;var s=n.dataTransfer;s&&-1!==t.inArray("Files",s.types)&&!1!==this._trigger(e,t.Event(e,{delegatedEvent:n}))&&(n.preventDefault(),i&&(s.dropEffect="copy"))}}t.support.fileInput=!(new RegExp("(Android (1\\.[0156]|2\\.[01]))|(Windows Phone (OS 7|8\\.0))|(XBLWP)|(ZuneWP)|(WPDesktop)|(w(eb)?OSBrowser)|(webOS)|(Kindle/(1\\.0|2\\.[05]|3\\.0))").test(window.navigator.userAgent)||t('').prop("disabled")),t.support.xhrFileUpload=!(!window.ProgressEvent||!window.FileReader),t.support.xhrFormDataFileUpload=!!window.FormData,t.support.blobSlice=window.Blob&&(Blob.prototype.slice||Blob.prototype.webkitSlice||Blob.prototype.mozSlice),t.widget("blueimp.fileupload",{options:{dropZone:t(document),pasteZone:void 0,fileInput:void 0,replaceFileInput:!0,paramName:void 0,singleFileUploads:!0,limitMultiFileUploads:void 0,limitMultiFileUploadSize:void 0,limitMultiFileUploadSizeOverhead:512,sequentialUploads:!1,limitConcurrentUploads:void 0,forceIframeTransport:!1,redirect:void 0,redirectParamName:void 0,postMessage:void 0,multipart:!0,maxChunkSize:void 0,uploadedBytes:void 0,recalculateProgress:!0,progressInterval:100,bitrateInterval:500,autoUpload:!0,messages:{uploadedBytes:"Uploaded bytes exceed file size"},i18n:function(e,i){return e=this.messages[e]||e.toString(),i&&t.each(i,function(t,i){e=e.replace("{"+t+"}",i)}),e},formData:function(t){return t.serializeArray()},add:function(e,i){if(e.isDefaultPrevented())return!1;(i.autoUpload||!1!==i.autoUpload&&t(this).fileupload("option","autoUpload"))&&i.process().done(function(){i.submit()})},processData:!1,contentType:!1,cache:!1,timeout:0},_specialOptions:["fileInput","dropZone","pasteZone","multipart","forceIframeTransport"],_blobSlice:t.support.blobSlice&&function(){return(this.slice||this.webkitSlice||this.mozSlice).apply(this,arguments)},_BitrateTimer:function(){this.timestamp=Date.now?Date.now():(new Date).getTime(),this.loaded=0,this.bitrate=0,this.getBitrate=function(t,e,i){var n=t-this.timestamp;return(!this.bitrate||!i||n>i)&&(this.bitrate=(e-this.loaded)*(1e3/n)*8,this.loaded=e,this.timestamp=t),this.bitrate}},_isXHRUpload:function(e){return!e.forceIframeTransport&&(!e.multipart&&t.support.xhrFileUpload||t.support.xhrFormDataFileUpload)},_getFormData:function(e){var i;return"function"===t.type(e.formData)?e.formData(e.form):t.isArray(e.formData)?e.formData:"object"===t.type(e.formData)?(i=[],t.each(e.formData,function(t,e){i.push({name:t,value:e})}),i):[]},_getTotal:function(e){var i=0;return t.each(e,function(t,e){i+=e.size||1}),i},_initProgressObject:function(e){var i={loaded:0,total:0,bitrate:0};e._progress?t.extend(e._progress,i):e._progress=i},_initResponseObject:function(t){var e;if(t._response)for(e in t._response)t._response.hasOwnProperty(e)&&delete t._response[e];else t._response={}},_onProgress:function(e,i){if(e.lengthComputable){var n,s=Date.now?Date.now():(new Date).getTime();if(i._time&&i.progressInterval&&s-i._time").prop("href",e.url).prop("host");e.dataType="iframe "+(e.dataType||""),e.formData=this._getFormData(e),e.redirect&&i&&i!==location.host&&e.formData.push({name:e.redirectParamName||"redirect",value:e.redirect})},_initDataSettings:function(t){this._isXHRUpload(t)?(this._chunkedUpload(t,!0)||(t.data||this._initXHRData(t),this._initProgressListener(t)),t.postMessage&&(t.dataType="postmessage "+(t.dataType||""))):this._initIframeSettings(t)},_getParamName:function(e){var i=t(e.fileInput),n=e.paramName;return n?t.isArray(n)||(n=[n]):(n=[],i.each(function(){for(var e=t(this),i=e.prop("name")||"files[]",s=(e.prop("files")||[1]).length;s;)n.push(i),s-=1}),n.length||(n=[i.prop("name")||"files[]"])),n},_initFormSettings:function(e){e.form&&e.form.length||(e.form=t(e.fileInput.prop("form")),e.form.length||(e.form=t(this.options.fileInput.prop("form")))),e.paramName=this._getParamName(e),e.url||(e.url=e.form.prop("action")||location.href),e.type=(e.type||"string"===t.type(e.form.prop("method"))&&e.form.prop("method")||"").toUpperCase(),"POST"!==e.type&&"PUT"!==e.type&&"PATCH"!==e.type&&(e.type="POST"),e.formAcceptCharset||(e.formAcceptCharset=e.form.attr("accept-charset"))},_getAJAXSettings:function(e){var i=t.extend({},this.options,e);return this._initFormSettings(i),this._initDataSettings(i),i},_getDeferredState:function(t){return t.state?t.state():t.isResolved()?"resolved":t.isRejected()?"rejected":"pending"},_enhancePromise:function(t){return t.success=t.done,t.error=t.fail,t.complete=t.always,t},_getXHRPromise:function(e,i,n){var s=t.Deferred(),o=s.promise();return i=i||this.options.context||o,!0===e?s.resolveWith(i,n):!1===e&&s.rejectWith(i,n),o.abort=s.promise,this._enhancePromise(o)},_addConvenienceMethods:function(e,i){var n=this,s=function(e){return t.Deferred().resolveWith(n,e).promise()};i.process=function(e,o){return(e||o)&&(i._processQueue=this._processQueue=(this._processQueue||s([this])).then(function(){return i.errorThrown?t.Deferred().rejectWith(n,[i]).promise():s(arguments)}).then(e,o)),this._processQueue||s([this])},i.submit=function(){return"pending"!==this.state()&&(i.jqXHR=this.jqXHR=!1!==n._trigger("submit",t.Event("submit",{delegatedEvent:e}),this)&&n._onSend(e,this)),this.jqXHR||n._getXHRPromise()},i.abort=function(){return this.jqXHR?this.jqXHR.abort():(this.errorThrown="abort",n._trigger("fail",null,this),n._getXHRPromise(!1))},i.state=function(){return this.jqXHR?n._getDeferredState(this.jqXHR):this._processQueue?n._getDeferredState(this._processQueue):void 0},i.processing=function(){return!this.jqXHR&&this._processQueue&&"pending"===n._getDeferredState(this._processQueue)},i.progress=function(){return this._progress},i.response=function(){return this._response}},_getUploadedBytes:function(t){var e=t.getResponseHeader("Range"),i=e&&e.split("-"),n=i&&i.length>1&&parseInt(i[1],10);return n&&n+1},_chunkedUpload:function(e,i){e.uploadedBytes=e.uploadedBytes||0;var n,s,o=this,r=e.files[0],a=r.size,l=e.uploadedBytes,u=e.maxChunkSize||a,c=this._blobSlice,h=t.Deferred(),d=h.promise();return!(!(this._isXHRUpload(e)&&c&&(l||("function"===t.type(u)?u(e):u)=a?(r.error=e.i18n("uploadedBytes"),this._getXHRPromise(!1,e.context,[null,"error",r.error])):(s=function(){var i=t.extend({},e),d=i._progress.loaded;i.blob=c.call(r,l,l+("function"===t.type(u)?u(i):u),r.type),i.chunkSize=i.blob.size,i.contentRange="bytes "+l+"-"+(l+i.chunkSize-1)+"/"+a,o._initXHRData(i),o._initProgressListener(i),n=(!1!==o._trigger("chunksend",null,i)&&t.ajax(i)||o._getXHRPromise(!1,i.context)).done(function(n,r,u){l=o._getUploadedBytes(u)||l+i.chunkSize,d+i.chunkSize-i._progress.loaded&&o._onProgress(t.Event("progress",{lengthComputable:!0,loaded:l-i.uploadedBytes,total:l-i.uploadedBytes}),i),e.uploadedBytes=i.uploadedBytes=l,i.result=n,i.textStatus=r,i.jqXHR=u,o._trigger("chunkdone",null,i),o._trigger("chunkalways",null,i),la._sending)for(var n=a._slots.shift();n;){if("pending"===a._getDeferredState(n)){n.resolve();break}n=a._slots.shift()}0===a._active&&a._trigger("stop")})};return this._beforeSend(e,l),this.options.sequentialUploads||this.options.limitConcurrentUploads&&this.options.limitConcurrentUploads<=this._sending?(this.options.limitConcurrentUploads>1?(o=t.Deferred(),this._slots.push(o),r=o.then(u)):(this._sequence=this._sequence.then(u,u),r=this._sequence),r.abort=function(){return s=[void 0,"abort","abort"],n?n.abort():(o&&o.rejectWith(l.context,s),u())},this._enhancePromise(r)):u()},_onAdd:function(e,i){var n,s,o,r,a=this,l=!0,u=t.extend({},this.options,i),c=i.files,h=c.length,d=u.limitMultiFileUploads,p=u.limitMultiFileUploadSize,f=u.limitMultiFileUploadSizeOverhead,g=0,m=this._getParamName(u),v=0;if(!h)return!1;if(p&&void 0===c[0].size&&(p=void 0),(u.singleFileUploads||d||p)&&this._isXHRUpload(u))if(u.singleFileUploads||p||!d)if(!u.singleFileUploads&&p)for(o=[],n=[],r=0;rp||d&&r+1-v>=d)&&(o.push(c.slice(v,r+1)),s=m.slice(v,r+1),s.length||(s=m),n.push(s),v=r+1,g=0);else n=m;else for(o=[],n=[],r=0;r").append(n)[0].reset(),i.after(n).detach(),s&&n.focus(),t.cleanData(i.unbind("remove")),this.options.fileInput=this.options.fileInput.map(function(t,e){return e===i[0]?n[0]:e}),i[0]===this.element[0]&&(this.element=n)},_handleFileTreeEntry:function(e,i){var n,s=this,o=t.Deferred(),r=[],a=function(t){t&&!t.entry&&(t.entry=e),o.resolve([t])},l=function(t){s._handleFileTreeEntries(t,i+e.name+"/").done(function(t){o.resolve(t)}).fail(a)},u=function(){n.readEntries(function(t){t.length?(r=r.concat(t),u()):l(r)},a)};return i=i||"",e.isFile?e._file?(e._file.relativePath=i,o.resolve(e._file)):e.file(function(t){t.relativePath=i,o.resolve(t)},a):e.isDirectory?(n=e.createReader(),u()):o.resolve([]),o.promise()},_handleFileTreeEntries:function(e,i){var n=this;return t.when.apply(t,t.map(e,function(t){return n._handleFileTreeEntry(t,i)})).then(function(){return Array.prototype.concat.apply([],arguments)})},_getDroppedFiles:function(e){e=e||{};var i=e.items;return i&&i.length&&(i[0].webkitGetAsEntry||i[0].getAsEntry)?this._handleFileTreeEntries(t.map(i,function(t){var e;return t.webkitGetAsEntry?(e=t.webkitGetAsEntry(),e&&(e._file=t.getAsFile()),e):t.getAsEntry()})):t.Deferred().resolve(t.makeArray(e.files)).promise()},_getSingleFileInputFiles:function(e){e=t(e);var i,n,s=e.prop("webkitEntries")||e.prop("entries");if(s&&s.length)return this._handleFileTreeEntries(s);if(i=t.makeArray(e.prop("files")),i.length)void 0===i[0].name&&i[0].fileName&&t.each(i,function(t,e){e.name=e.fileName,e.size=e.fileSize});else{if(!(n=e.prop("value")))return t.Deferred().resolve([]).promise();i=[{name:n.replace(/^.*\\/,"")}]}return t.Deferred().resolve(i).promise()},_getFileInputFiles:function(e){return e instanceof t&&1!==e.length?t.when.apply(t,t.map(e,this._getSingleFileInputFiles)).then(function(){return Array.prototype.concat.apply([],arguments)}):this._getSingleFileInputFiles(e)},_onChange:function(e){var i=this,n={fileInput:t(e.target),form:t(e.target.form)};this._getFileInputFiles(n.fileInput).always(function(s){n.files=s,i.options.replaceFileInput&&i._replaceFileInput(n),!1!==i._trigger("change",t.Event("change",{delegatedEvent:e}),n)&&i._onAdd(e,n)})},_onPaste:function(e){var i=e.originalEvent&&e.originalEvent.clipboardData&&e.originalEvent.clipboardData.items,n={files:[]};i&&i.length&&(t.each(i,function(t,e){var i=e.getAsFile&&e.getAsFile();i&&n.files.push(i)}),!1!==this._trigger("paste",t.Event("paste",{delegatedEvent:e}),n)&&this._onAdd(e,n))},_onDrop:function(e){e.dataTransfer=e.originalEvent&&e.originalEvent.dataTransfer;var i=this,n=e.dataTransfer,s={};n&&n.files&&n.files.length&&(e.preventDefault(),this._getDroppedFiles(n).always(function(n){s.files=n,!1!==i._trigger("drop",t.Event("drop",{delegatedEvent:e}),s)&&i._onAdd(e,s)}))},_onDragOver:e("dragover"),_onDragEnter:e("dragenter"),_onDragLeave:e("dragleave"),_initEventHandlers:function(){this._isXHRUpload(this.options)&&(this._on(this.options.dropZone,{dragover:this._onDragOver,drop:this._onDrop,dragenter:this._onDragEnter,dragleave:this._onDragLeave}),this._on(this.options.pasteZone,{paste:this._onPaste})),t.support.fileInput&&this._on(this.options.fileInput,{change:this._onChange})},_destroyEventHandlers:function(){this._off(this.options.dropZone,"dragenter dragleave dragover drop"),this._off(this.options.pasteZone,"paste"),this._off(this.options.fileInput,"change")},_destroy:function(){this._destroyEventHandlers()},_setOption:function(e,i){var n=-1!==t.inArray(e,this._specialOptions);n&&this._destroyEventHandlers(),this._super(e,i),n&&(this._initSpecialOptions(),this._initEventHandlers())},_initSpecialOptions:function(){var e=this.options;void 0===e.fileInput?e.fileInput=this.element.is('input[type="file"]')?this.element:this.element.find('input[type="file"]'):e.fileInput instanceof t||(e.fileInput=t(e.fileInput)),e.dropZone instanceof t||(e.dropZone=t(e.dropZone)),e.pasteZone instanceof t||(e.pasteZone=t(e.pasteZone))},_getRegExp:function(t){var e=t.split("/"),i=e.pop();return e.shift(),new RegExp(e.join("/"),i)},_isRegExpOption:function(e,i){return"url"!==e&&"string"===t.type(i)&&/^\/.*\/[igm]{0,3}$/.test(i)},_initDataAttributes:function(){var e=this,i=this.options,n=this.element.data();t.each(this.element[0].attributes,function(t,s){var o,r=s.name.toLowerCase();/^data-/.test(r)&&(r=r.slice(5).replace(/-[a-z]/g,function(t){return t.charAt(1).toUpperCase()}),o=n[r],e._isRegExpOption(r,o)&&(o=e._getRegExp(o)),i[r]=o)})},_create:function(){this._initDataAttributes(),this._initSpecialOptions(),this._slots=[],this._sequence=this._getXHRPromise(!0),this._sending=this._active=0,this._initProgressObject(this),this._initEventHandlers()},active:function(){return this._active},progress:function(){return this._progress},add:function(e){var i=this;e&&!this.options.disabled&&(e.fileInput&&!e.files?this._getFileInputFiles(e.fileInput).always(function(t){e.files=t,i._onAdd(null,e)}):(e.files=t.makeArray(e.files),this._onAdd(null,e)))},send:function(e){if(e&&!this.options.disabled){if(e.fileInput&&!e.files){var i,n,s=this,o=t.Deferred(),r=o.promise();return r.abort=function(){return n=!0,i?i.abort():(o.reject(null,"abort","abort"),r)},this._getFileInputFiles(e.fileInput).always(function(t){if(!n){if(!t.length)return void o.reject();e.files=t,i=s._onSend(null,e),i.then(function(t,e,i){o.resolve(t,e,i)},function(t,e,i){o.reject(t,e,i)})}}),this._enhancePromise(r)}if(e.files=t.makeArray(e.files),e.files.length)return this._onSend(null,e)}return this._getXHRPromise(!1,e&&e.context)}})}),function(t,e){"function"==typeof define&&define.amd?define(["jquery"],function(t){return e(t)}):"object"==typeof exports?module.exports=e(require("jquery")):jQuery&&!jQuery.fn.colorpicker&&e(jQuery)}(0,function(t){"use strict";var e=function(i,n,s,o,r){this.fallbackValue=s?s&&void 0!==s.h?s:this.value={h:0,s:0,b:0,a:1}:null,this.fallbackFormat=o||"rgba",this.hexNumberSignPrefix=!0===r,this.value=this.fallbackValue,this.origFormat=null,this.predefinedColors=n||{},this.colors=t.extend({},e.webColors,this.predefinedColors),i&&(void 0!==i.h?this.value=i:this.setColor(String(i))),this.value||(this.value={h:0,s:0,b:0,a:1})};e.webColors={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"00ffff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000000",blanchedalmond:"ffebcd",blue:"0000ff",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"00ffff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"ff00ff",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgrey:"d3d3d3",lightgreen:"90ee90",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"778899",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"00ff00",limegreen:"32cd32",linen:"faf0e6",magenta:"ff00ff",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370d8",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"d87093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",red:"ff0000",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"ffffff",whitesmoke:"f5f5f5",yellow:"ffff00",yellowgreen:"9acd32",transparent:"transparent"},e.prototype={constructor:e,colors:{},predefinedColors:{},getValue:function(){return this.value},setValue:function(t){this.value=t},_sanitizeNumber:function(t){return"number"==typeof t?t:isNaN(t)||null===t||""===t||void 0===t?1:""===t?0:void 0!==t.toLowerCase?(t.match(/^\./)&&(t="0"+t),Math.ceil(100*parseFloat(t))/100):1},isTransparent:function(t){return!(!t||!("string"==typeof t||t instanceof String))&&("transparent"===(t=t.toLowerCase().trim())||t.match(/#?00000000/)||t.match(/(rgba|hsla)\(0,0,0,0?\.?0\)/))},rgbaIsTransparent:function(t){return 0===t.r&&0===t.g&&0===t.b&&0===t.a},setColor:function(t){if(t=t.toLowerCase().trim()){if(this.isTransparent(t))return this.value={h:0,s:0,b:0,a:0},!0;var e=this.parse(t);e?(this.value=this.value={h:e.h,s:e.s,b:e.b,a:e.a},this.origFormat||(this.origFormat=e.format)):this.fallbackValue&&(this.value=this.fallbackValue)}return!1},setHue:function(t){this.value.h=1-t},setSaturation:function(t){this.value.s=t},setBrightness:function(t){this.value.b=1-t},setAlpha:function(t){this.value.a=Math.round(parseInt(100*(1-t),10)/100*100)/100},toRGB:function(t,e,i,n){0===arguments.length&&(t=this.value.h,e=this.value.s,i=this.value.b,n=this.value.a),t*=360;var s,o,r,a,l;return t=t%360/60,l=i*e,a=l*(1-Math.abs(t%2-1)),s=o=r=i-l,t=~~t,s+=[l,a,0,0,a,l][t],o+=[a,l,l,a,0,0][t],r+=[0,0,a,l,l,a][t],{r:Math.round(255*s),g:Math.round(255*o),b:Math.round(255*r),a:n}},toHex:function(t,e,i,n,s){arguments.length<=1&&(e=this.value.h,i=this.value.s,n=this.value.b,s=this.value.a);var o="#",r=this.toRGB(e,i,n,s);return this.rgbaIsTransparent(r)?"transparent":(t||(o=this.hexNumberSignPrefix?"#":""),o+((1<<24)+(parseInt(r.r)<<16)+(parseInt(r.g)<<8)+parseInt(r.b)).toString(16).slice(1))},toHSL:function(t,e,i,n){0===arguments.length&&(t=this.value.h,e=this.value.s,i=this.value.b,n=this.value.a);var s=t,o=(2-e)*i,r=e*i;return r/=o>0&&o<=1?o:2-o,o/=2,r>1&&(r=1),{h:isNaN(s)?0:s,s:isNaN(r)?0:r,l:isNaN(o)?0:o,a:isNaN(n)?0:n}},toAlias:function(t,e,i,n){var s,o=0===arguments.length?this.toHex(!0):this.toHex(!0,t,e,i,n),r="alias"===this.origFormat?o:this.toString(!1,this.origFormat);for(var a in this.colors)if((s=this.colors[a].toLowerCase().trim())===o||s===r)return a;return!1},RGBtoHSB:function(t,e,i,n){t/=255,e/=255,i/=255;var s,o,r,a;return r=Math.max(t,e,i),a=r-Math.min(t,e,i),s=0===a?null:r===t?(e-i)/a:r===e?(i-t)/a+2:(t-e)/a+4,s=(s+360)%6*60/360,o=0===a?0:a/r,{h:this._sanitizeNumber(s),s:o,b:r,a:this._sanitizeNumber(n)}},HueToRGB:function(t,e,i){return i<0?i+=1:i>1&&(i-=1),6*i<1?t+(e-t)*i*6:2*i<1?e:3*i<2?t+(e-t)*(2/3-i)*6:t},HSLtoRGB:function(t,e,i,n){e<0&&(e=0);var s;s=i<=.5?i*(1+e):i+e-i*e;var o=2*i-s,r=t+1/3,a=t,l=t-1/3;return[Math.round(255*this.HueToRGB(o,s,r)),Math.round(255*this.HueToRGB(o,s,a)),Math.round(255*this.HueToRGB(o,s,l)),this._sanitizeNumber(n)]},parse:function(e){if(0===arguments.length)return!1;var i,n,s=this,o=!1,r=void 0!==this.colors[e];return r&&(e=this.colors[e].toLowerCase().trim()),t.each(this.stringParsers,function(t,a){var l=a.re.exec(e);return!(i=l&&a.parse.apply(s,[l]))||(o={},n=r?"alias":a.format?a.format:s.getValidFallbackFormat(),o=n.match(/hsla?/)?s.RGBtoHSB.apply(s,s.HSLtoRGB.apply(s,i)):s.RGBtoHSB.apply(s,i),o instanceof Object&&(o.format=n),!1)}),o},getValidFallbackFormat:function(){var t=["rgba","rgb","hex","hsla","hsl"];return this.origFormat&&-1!==t.indexOf(this.origFormat)?this.origFormat:this.fallbackFormat&&-1!==t.indexOf(this.fallbackFormat)?this.fallbackFormat:"rgba"},toString:function(t,i,n){i=i||this.origFormat||this.fallbackFormat,n=n||!1;var s=!1;switch(i){case"rgb":return s=this.toRGB(),this.rgbaIsTransparent(s)?"transparent":"rgb("+s.r+","+s.g+","+s.b+")";case"rgba":return s=this.toRGB(),"rgba("+s.r+","+s.g+","+s.b+","+s.a+")";case"hsl":return s=this.toHSL(),"hsl("+Math.round(360*s.h)+","+Math.round(100*s.s)+"%,"+Math.round(100*s.l)+"%)";case"hsla":return s=this.toHSL(),"hsla("+Math.round(360*s.h)+","+Math.round(100*s.s)+"%,"+Math.round(100*s.l)+"%,"+s.a+")";case"hex":return this.toHex(t);case"alias":return s=this.toAlias(),!1===s?this.toString(t,this.getValidFallbackFormat()):n&&!(s in e.webColors)&&s in this.predefinedColors?this.predefinedColors[s]:s;default:return s}},stringParsers:[{re:/rgb\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*?\)/,format:"rgb",parse:function(t){return[t[1],t[2],t[3],1]}},{re:/rgb\(\s*(\d*(?:\.\d+)?)\%\s*,\s*(\d*(?:\.\d+)?)\%\s*,\s*(\d*(?:\.\d+)?)\%\s*?\)/,format:"rgb",parse:function(t){return[2.55*t[1],2.55*t[2],2.55*t[3],1]}},{re:/rgba\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d*(?:\.\d+)?)\s*)?\)/,format:"rgba",parse:function(t){return[t[1],t[2],t[3],t[4]]}},{re:/rgba\(\s*(\d*(?:\.\d+)?)\%\s*,\s*(\d*(?:\.\d+)?)\%\s*,\s*(\d*(?:\.\d+)?)\%\s*(?:,\s*(\d*(?:\.\d+)?)\s*)?\)/,format:"rgba",parse:function(t){return[2.55*t[1],2.55*t[2],2.55*t[3],t[4]]}},{re:/hsl\(\s*(\d*(?:\.\d+)?)\s*,\s*(\d*(?:\.\d+)?)\%\s*,\s*(\d*(?:\.\d+)?)\%\s*?\)/,format:"hsl",parse:function(t){return[t[1]/360,t[2]/100,t[3]/100,t[4]]}},{re:/hsla\(\s*(\d*(?:\.\d+)?)\s*,\s*(\d*(?:\.\d+)?)\%\s*,\s*(\d*(?:\.\d+)?)\%\s*(?:,\s*(\d*(?:\.\d+)?)\s*)?\)/,format:"hsla",parse:function(t){return[t[1]/360,t[2]/100,t[3]/100,t[4]]}},{re:/#?([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/,format:"hex",parse:function(t){return[parseInt(t[1],16),parseInt(t[2],16),parseInt(t[3],16),1]}},{re:/#?([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/,format:"hex",parse:function(t){return[parseInt(t[1]+t[1],16),parseInt(t[2]+t[2],16),parseInt(t[3]+t[3],16),1]}}],colorNameToHex:function(t){return void 0!==this.colors[t.toLowerCase()]&&this.colors[t.toLowerCase()]}};var i={horizontal:!1,inline:!1,color:!1,format:!1,input:"input",container:!1,component:".add-on, .input-group-addon",fallbackColor:!1,fallbackFormat:"hex",hexNumberSignPrefix:!0,sliders:{saturation:{maxLeft:100,maxTop:100,callLeft:"setSaturation",callTop:"setBrightness"},hue:{maxLeft:0,maxTop:100,callLeft:!1,callTop:"setHue"},alpha:{maxLeft:0,maxTop:100,callLeft:!1,callTop:"setAlpha"}},slidersHorz:{ saturation:{maxLeft:100,maxTop:100,callLeft:"setSaturation",callTop:"setBrightness"},hue:{maxLeft:100,maxTop:0,callLeft:"setHue",callTop:!1},alpha:{maxLeft:100,maxTop:0,callLeft:"setAlpha",callTop:!1}},template:'