uikit 3.12.3-dev.ebebb4f57 → 3.13.0

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.
Files changed (90) hide show
  1. package/CHANGELOG.md +9 -1
  2. package/dist/css/uikit-core-rtl.css +7 -4
  3. package/dist/css/uikit-core-rtl.min.css +1 -1
  4. package/dist/css/uikit-core.css +7 -4
  5. package/dist/css/uikit-core.min.css +1 -1
  6. package/dist/css/uikit-rtl.css +7 -4
  7. package/dist/css/uikit-rtl.min.css +1 -1
  8. package/dist/css/uikit.css +7 -4
  9. package/dist/css/uikit.min.css +1 -1
  10. package/dist/js/components/countdown.js +3 -3
  11. package/dist/js/components/countdown.min.js +1 -1
  12. package/dist/js/components/filter.js +1 -1
  13. package/dist/js/components/filter.min.js +1 -1
  14. package/dist/js/components/lightbox-panel.js +11 -2
  15. package/dist/js/components/lightbox-panel.min.js +1 -1
  16. package/dist/js/components/lightbox.js +13 -4
  17. package/dist/js/components/lightbox.min.js +1 -1
  18. package/dist/js/components/notification.js +1 -1
  19. package/dist/js/components/notification.min.js +1 -1
  20. package/dist/js/components/parallax.js +61 -10
  21. package/dist/js/components/parallax.min.js +1 -1
  22. package/dist/js/components/slider-parallax.js +28 -15
  23. package/dist/js/components/slider-parallax.min.js +1 -1
  24. package/dist/js/components/slider.js +12 -3
  25. package/dist/js/components/slider.min.js +1 -1
  26. package/dist/js/components/slideshow-parallax.js +28 -15
  27. package/dist/js/components/slideshow-parallax.min.js +1 -1
  28. package/dist/js/components/slideshow.js +11 -2
  29. package/dist/js/components/slideshow.min.js +1 -1
  30. package/dist/js/components/sortable.js +1 -1
  31. package/dist/js/components/sortable.min.js +1 -1
  32. package/dist/js/components/tooltip.js +12 -20
  33. package/dist/js/components/tooltip.min.js +1 -1
  34. package/dist/js/components/upload.js +1 -1
  35. package/dist/js/components/upload.min.js +1 -1
  36. package/dist/js/uikit-core.js +360 -365
  37. package/dist/js/uikit-core.min.js +1 -1
  38. package/dist/js/uikit-icons.js +1 -1
  39. package/dist/js/uikit-icons.min.js +1 -1
  40. package/dist/js/uikit.js +376 -379
  41. package/dist/js/uikit.min.js +1 -1
  42. package/package.json +1 -1
  43. package/src/js/api/hooks.js +3 -3
  44. package/src/js/api/state.js +14 -39
  45. package/src/js/components/countdown.js +2 -2
  46. package/src/js/components/lightbox.js +1 -1
  47. package/src/js/components/parallax.js +3 -1
  48. package/src/js/components/slider-parallax.js +6 -4
  49. package/src/js/components/slider.js +1 -1
  50. package/src/js/core/accordion.js +6 -3
  51. package/src/js/core/core.js +2 -17
  52. package/src/js/core/cover.js +3 -6
  53. package/src/js/core/drop.js +15 -33
  54. package/src/js/core/form-custom.js +8 -9
  55. package/src/js/core/grid.js +2 -1
  56. package/src/js/core/height-match.js +12 -2
  57. package/src/js/core/height-viewport.js +8 -7
  58. package/src/js/core/icon.js +9 -16
  59. package/src/js/core/img.js +5 -16
  60. package/src/js/core/index.js +0 -1
  61. package/src/js/core/leader.js +7 -13
  62. package/src/js/core/margin.js +16 -1
  63. package/src/js/core/overflow-auto.js +7 -10
  64. package/src/js/core/responsive.js +7 -0
  65. package/src/js/core/scroll.js +6 -2
  66. package/src/js/core/scrollspy-nav.js +19 -16
  67. package/src/js/core/scrollspy.js +5 -11
  68. package/src/js/core/sticky.js +22 -31
  69. package/src/js/core/svg.js +16 -14
  70. package/src/js/core/switcher.js +4 -0
  71. package/src/js/core/toggle.js +28 -20
  72. package/src/js/core/video.js +2 -8
  73. package/src/js/mixin/media.js +28 -8
  74. package/src/js/mixin/parallax.js +2 -1
  75. package/src/js/mixin/position.js +10 -18
  76. package/src/js/mixin/resize.js +11 -0
  77. package/src/js/mixin/scroll.js +32 -0
  78. package/src/js/mixin/slider.js +2 -1
  79. package/src/js/util/class.js +1 -6
  80. package/src/js/util/mouse.js +1 -1
  81. package/src/js/util/observer.js +57 -20
  82. package/src/js/util/selector.js +24 -23
  83. package/src/less/components/modal.less +6 -3
  84. package/src/scss/components/modal.scss +6 -3
  85. package/tests/grid.html +9 -9
  86. package/tests/js/index.js +1 -1
  87. package/tests/slider.html +1 -1
  88. package/tests/slideshow.html +1 -1
  89. package/tests/sticky.html +0 -6
  90. package/src/js/core/gif.js +0 -22
@@ -1 +1 @@
1
- /*! UIkit 3.12.3-dev.ebebb4f57 | https://www.getuikit.com | (c) 2014 - 2022 YOOtheme | MIT License */(function(s,d){typeof exports=="object"&&typeof module<"u"?module.exports=d(require("uikit-util")):typeof define=="function"&&define.amd?define("uikittooltip",["uikit-util"],d):(s=typeof globalThis<"u"?globalThis:s||self,s.UIkitTooltip=d(s.UIkit.util))})(this,function(s){"use strict";var d={props:{container:Boolean},data:{container:!0},computed:{container(t){let{container:o}=t;return o===!0&&this.$container||o&&s.$(o)}}},u={props:{cls:Boolean,animation:"list",duration:Number,origin:String,transition:String},data:{cls:!1,animation:[!1],duration:200,origin:!1,transition:"linear",clsEnter:"uk-togglabe-enter",clsLeave:"uk-togglabe-leave",initProps:{overflow:"",height:"",paddingTop:"",paddingBottom:"",marginTop:"",marginBottom:""},hideProps:{overflow:"hidden",height:0,paddingTop:0,paddingBottom:0,marginTop:0,marginBottom:0}},computed:{hasAnimation(t){let{animation:o}=t;return!!o[0]},hasTransition(t){let{animation:o}=t;return this.hasAnimation&&o[0]===!0}},methods:{toggleElement(t,o,r){return new Promise(i=>Promise.all(s.toNodes(t).map(n=>{const h=s.isBoolean(o)?o:!this.isToggled(n);if(!s.trigger(n,"before"+(h?"show":"hide"),[this]))return Promise.reject();const a=(s.isFunction(r)?r:r===!1||!this.hasAnimation?this._toggle:this.hasTransition?w(this):T(this))(n,h),e=h?this.clsEnter:this.clsLeave;s.addClass(n,e),s.trigger(n,h?"show":"hide",[this]);const p=()=>{s.removeClass(n,e),s.trigger(n,h?"shown":"hidden",[this]),this.$update(n)};return a?a.then(p,()=>(s.removeClass(n,e),Promise.reject())):p()})).then(i,s.noop))},isToggled(t){return t===void 0&&(t=this.$el),[t]=s.toNodes(t),s.hasClass(t,this.clsEnter)?!0:s.hasClass(t,this.clsLeave)?!1:this.cls?s.hasClass(t,this.cls.split(" ")[0]):s.isVisible(t)},_toggle(t,o){if(!t)return;o=Boolean(o);let r;this.cls?(r=s.includes(this.cls," ")||o!==s.hasClass(t,this.cls),r&&s.toggleClass(t,this.cls,s.includes(this.cls," ")?void 0:o)):(r=o===t.hidden,r&&(t.hidden=!o)),s.$$("[autofocus]",t).some(i=>s.isVisible(i)?i.focus()||!0:i.blur()),r&&(s.trigger(t,"toggled",[o,this]),this.$update(t))}}};function w(t){let{isToggled:o,duration:r,initProps:i,hideProps:n,transition:h,_toggle:a}=t;return(e,p)=>{const l=s.Transition.inProgress(e),m=e.hasChildNodes()?s.toFloat(s.css(e.firstElementChild,"marginTop"))+s.toFloat(s.css(e.lastElementChild,"marginBottom")):0,c=s.isVisible(e)?s.height(e)+(l?0:m):0;s.Transition.cancel(e),o(e)||a(e,!0),s.height(e,""),s.fastdom.flush();const g=s.height(e)+(l?0:m);return s.height(e,c),(p?s.Transition.start(e,{...i,overflow:"hidden",height:g},Math.round(r*(1-c/g)),h):s.Transition.start(e,n,Math.round(r*(c/g)),h).then(()=>a(e,!1))).then(()=>s.css(e,i))}}function T(t){return(o,r)=>{s.Animation.cancel(o);const{animation:i,duration:n,_toggle:h}=t;return r?(h(o,!0),s.Animation.in(o,i[0],n,t.origin)):s.Animation.out(o,i[1]||i[0],n,t.origin).then(()=>h(o,!1))}}var v={props:{pos:String,offset:null,flip:Boolean,clsPos:String},data:{pos:"bottom-"+(s.isRtl?"right":"left"),flip:!0,offset:!1,clsPos:""},computed:{pos(t){let{pos:o}=t;return o.split("-").concat("center").slice(0,2)},dir(){return this.pos[0]},align(){return this.pos[1]}},methods:{positionAt(t,o,r){s.removeClasses(t,this.clsPos+"-(top|bottom|left|right)(-[a-z]+)?");let{offset:i}=this;const n=this.getAxis();if(!s.isNumeric(i)){const e=s.$(i);i=e?s.offset(e)[n==="x"?"left":"top"]-s.offset(o)[n==="x"?"right":"bottom"]:0}const{x:h,y:a}=s.positionAt(t,o,n==="x"?s.flipPosition(this.dir)+" "+this.align:this.align+" "+s.flipPosition(this.dir),n==="x"?this.dir+" "+this.align:this.align+" "+this.dir,n==="x"?""+(this.dir==="left"?-i:i):" "+(this.dir==="top"?-i:i),null,this.flip,r).target;this.dir=n==="x"?h:a,this.align=n==="x"?a:h,s.toggleClass(t,this.clsPos+"-"+this.dir+"-"+this.align,this.offset===!1)},getAxis(){return this.dir==="top"||this.dir==="bottom"?"y":"x"}}},f={mixins:[d,u,v],args:"title",props:{delay:Number,title:String},data:{pos:"top",title:"",delay:0,animation:["uk-animation-scale-up"],duration:100,cls:"uk-active",clsPos:"uk-tooltip"},beforeConnect(){this._hasTitle=s.hasAttr(this.$el,"title"),s.attr(this.$el,"title",""),this.updateAria(!1),P(this.$el)},disconnected(){this.hide(),s.attr(this.$el,"title",this._hasTitle?this.title:null)},methods:{show(){this.isToggled(this.tooltip||null)||!this.title||(this._unbind=s.once(document,"show keydown "+s.pointerDown,this.hide,!1,t=>t.type===s.pointerDown&&!s.within(t.target,this.$el)||t.type==="keydown"&&t.keyCode===27||t.type==="show"&&t.detail[0]!==this&&t.detail[0].$name===this.$name),clearTimeout(this.showTimer),this.showTimer=setTimeout(this._show,this.delay))},async hide(){s.matches(this.$el,"input:focus")||(clearTimeout(this.showTimer),!!this.isToggled(this.tooltip||null)&&(await this.toggleElement(this.tooltip,!1,!1),s.remove(this.tooltip),this.tooltip=null,this._unbind()))},_show(){this.tooltip=s.append(this.container,'<div class="'+this.clsPos+'"> <div class="'+this.clsPos+'-inner">'+this.title+"</div> </div>"),s.on(this.tooltip,"toggled",(t,o)=>{this.updateAria(o),!!o&&(this.positionAt(this.tooltip,this.$el),this.origin=this.getAxis()==="y"?s.flipPosition(this.dir)+"-"+this.align:this.align+"-"+s.flipPosition(this.dir))}),this.toggleElement(this.tooltip,!0)},updateAria(t){s.attr(this.$el,"aria-expanded",t)}},events:{focus:"show",blur:"hide",[s.pointerEnter+" "+s.pointerLeave](t){s.isTouch(t)||this[t.type===s.pointerEnter?"show":"hide"]()},[s.pointerDown](t){s.isTouch(t)&&this.show()}}};function P(t){s.isFocusable(t)||s.attr(t,"tabindex","0")}return typeof window<"u"&&window.UIkit&&window.UIkit.component("tooltip",f),f});
1
+ /*! UIkit 3.13.0 | https://www.getuikit.com | (c) 2014 - 2022 YOOtheme | MIT License */(function(s,p){typeof exports=="object"&&typeof module<"u"?module.exports=p(require("uikit-util")):typeof define=="function"&&define.amd?define("uikittooltip",["uikit-util"],p):(s=typeof globalThis<"u"?globalThis:s||self,s.UIkitTooltip=p(s.UIkit.util))})(this,function(s){"use strict";var p={props:{container:Boolean},data:{container:!0},computed:{container(o){let{container:t}=o;return t===!0&&this.$container||t&&s.$(t)}}},w={props:{cls:Boolean,animation:"list",duration:Number,origin:String,transition:String},data:{cls:!1,animation:[!1],duration:200,origin:!1,transition:"linear",clsEnter:"uk-togglabe-enter",clsLeave:"uk-togglabe-leave",initProps:{overflow:"",height:"",paddingTop:"",paddingBottom:"",marginTop:"",marginBottom:""},hideProps:{overflow:"hidden",height:0,paddingTop:0,paddingBottom:0,marginTop:0,marginBottom:0}},computed:{hasAnimation(o){let{animation:t}=o;return!!t[0]},hasTransition(o){let{animation:t}=o;return this.hasAnimation&&t[0]===!0}},methods:{toggleElement(o,t,h){return new Promise(i=>Promise.all(s.toNodes(o).map(n=>{const r=s.isBoolean(t)?t:!this.isToggled(n);if(!s.trigger(n,"before"+(r?"show":"hide"),[this]))return Promise.reject();const a=(s.isFunction(h)?h:h===!1||!this.hasAnimation?this._toggle:this.hasTransition?u(this):T(this))(n,r),e=r?this.clsEnter:this.clsLeave;s.addClass(n,e),s.trigger(n,r?"show":"hide",[this]);const d=()=>{s.removeClass(n,e),s.trigger(n,r?"shown":"hidden",[this]),this.$update(n)};return a?a.then(d,()=>(s.removeClass(n,e),Promise.reject())):d()})).then(i,s.noop))},isToggled(o){return o===void 0&&(o=this.$el),[o]=s.toNodes(o),s.hasClass(o,this.clsEnter)?!0:s.hasClass(o,this.clsLeave)?!1:this.cls?s.hasClass(o,this.cls.split(" ")[0]):s.isVisible(o)},_toggle(o,t){if(!o)return;t=Boolean(t);let h;this.cls?(h=s.includes(this.cls," ")||t!==s.hasClass(o,this.cls),h&&s.toggleClass(o,this.cls,s.includes(this.cls," ")?void 0:t)):(h=t===o.hidden,h&&(o.hidden=!t)),s.$$("[autofocus]",o).some(i=>s.isVisible(i)?i.focus()||!0:i.blur()),h&&(s.trigger(o,"toggled",[t,this]),this.$update(o))}}};function u(o){let{isToggled:t,duration:h,initProps:i,hideProps:n,transition:r,_toggle:a}=o;return(e,d)=>{const c=s.Transition.inProgress(e),m=e.hasChildNodes()?s.toFloat(s.css(e.firstElementChild,"marginTop"))+s.toFloat(s.css(e.lastElementChild,"marginBottom")):0,f=s.isVisible(e)?s.height(e)+(c?0:m):0;s.Transition.cancel(e),t(e)||a(e,!0),s.height(e,""),s.fastdom.flush();const g=s.height(e)+(c?0:m);return s.height(e,f),(d?s.Transition.start(e,{...i,overflow:"hidden",height:g},Math.round(h*(1-f/g)),r):s.Transition.start(e,n,Math.round(h*(f/g)),r).then(()=>a(e,!1))).then(()=>s.css(e,i))}}function T(o){return(t,h)=>{s.Animation.cancel(t);const{animation:i,duration:n,_toggle:r}=o;return h?(r(t,!0),s.Animation.in(t,i[0],n,o.origin)):s.Animation.out(t,i[1]||i[0],n,o.origin).then(()=>r(t,!1))}}var v={props:{pos:String,offset:null,flip:Boolean,clsPos:String},data:{pos:"bottom-"+(s.isRtl?"right":"left"),flip:!0,offset:!1,clsPos:""},connected(){this.pos=this.$props.pos.split("-").concat("center").slice(0,2),this.dir=this.pos[0],this.align=this.pos[1]},methods:{positionAt(o,t,h){s.removeClasses(o,this.clsPos+"-(top|bottom|left|right)(-[a-z]+)?");let{offset:i}=this;const n=this.getAxis(),r=this.pos[0],a=this.pos[1];if(!s.isNumeric(i)){const c=s.$(i);i=c?s.offset(c)[n==="x"?"left":"top"]-s.offset(t)[n==="x"?"right":"bottom"]:0}const{x:e,y:d}=s.positionAt(o,t,n==="x"?s.flipPosition(r)+" "+a:a+" "+s.flipPosition(r),n==="x"?r+" "+a:a+" "+r,n==="x"?""+(r==="left"?-i:i):" "+(r==="top"?-i:i),null,this.flip,h).target;this.dir=n==="x"?e:d,this.align=n==="x"?d:e,s.toggleClass(o,this.clsPos+"-"+this.dir+"-"+this.align,this.offset===!1)},getAxis(){return this.dir==="top"||this.dir==="bottom"?"y":"x"}}},l={mixins:[p,w,v],args:"title",props:{delay:Number,title:String},data:{pos:"top",title:"",delay:0,animation:["uk-animation-scale-up"],duration:100,cls:"uk-active",clsPos:"uk-tooltip"},beforeConnect(){this._hasTitle=s.hasAttr(this.$el,"title"),s.attr(this.$el,"title",""),this.updateAria(!1),P(this.$el)},disconnected(){this.hide(),s.attr(this.$el,"title",this._hasTitle?this.title:null)},methods:{show(){this.isToggled(this.tooltip||null)||!this.title||(this._unbind=s.once(document,"show keydown "+s.pointerDown,this.hide,!1,o=>o.type===s.pointerDown&&!s.within(o.target,this.$el)||o.type==="keydown"&&o.keyCode===27||o.type==="show"&&o.detail[0]!==this&&o.detail[0].$name===this.$name),clearTimeout(this.showTimer),this.showTimer=setTimeout(this._show,this.delay))},async hide(){s.matches(this.$el,"input:focus")||(clearTimeout(this.showTimer),!!this.isToggled(this.tooltip||null)&&(await this.toggleElement(this.tooltip,!1,!1),s.remove(this.tooltip),this.tooltip=null,this._unbind()))},_show(){this.tooltip=s.append(this.container,'<div class="'+this.clsPos+'"> <div class="'+this.clsPos+'-inner">'+this.title+"</div> </div>"),s.on(this.tooltip,"toggled",(o,t)=>{this.updateAria(t),!!t&&(this.positionAt(this.tooltip,this.$el),this.origin=this.getAxis()==="y"?s.flipPosition(this.dir)+"-"+this.align:this.align+"-"+s.flipPosition(this.dir))}),this.toggleElement(this.tooltip,!0)},updateAria(o){s.attr(this.$el,"aria-expanded",o)}},events:{focus:"show",blur:"hide",[s.pointerEnter+" "+s.pointerLeave](o){s.isTouch(o)||this[o.type===s.pointerEnter?"show":"hide"]()},[s.pointerDown](o){s.isTouch(o)&&this.show()}}};function P(o){s.isFocusable(o)||s.attr(o,"tabindex","0")}return typeof window<"u"&&window.UIkit&&window.UIkit.component("tooltip",l),l});
@@ -1,4 +1,4 @@
1
- /*! UIkit 3.12.3-dev.ebebb4f57 | https://www.getuikit.com | (c) 2014 - 2022 YOOtheme | MIT License */
1
+ /*! UIkit 3.13.0 | https://www.getuikit.com | (c) 2014 - 2022 YOOtheme | MIT License */
2
2
 
3
3
  (function (global, factory) {
4
4
  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('uikit-util')) :
@@ -1 +1 @@
1
- /*! UIkit 3.12.3-dev.ebebb4f57 | https://www.getuikit.com | (c) 2014 - 2022 YOOtheme | MIT License */(function(o,n){typeof exports=="object"&&typeof module<"u"?module.exports=n(require("uikit-util")):typeof define=="function"&&define.amd?define("uikitupload",["uikit-util"],n):(o=typeof globalThis<"u"?globalThis:o||self,o.UIkitUpload=n(o.UIkit.util))})(this,function(o){"use strict";var n={props:{allow:String,clsDragover:String,concurrent:Number,maxSize:Number,method:String,mime:String,msgInvalidMime:String,msgInvalidName:String,msgInvalidSize:String,multiple:Boolean,name:String,params:Object,type:String,url:String},data:{allow:!1,clsDragover:"uk-dragover",concurrent:1,maxSize:0,method:"POST",mime:!1,msgInvalidMime:"Invalid File Type: %s",msgInvalidName:"Invalid File Name: %s",msgInvalidSize:"Invalid File Size: %s Kilobytes Max",multiple:!1,name:"files[]",params:{},type:"",url:"",abort:o.noop,beforeAll:o.noop,beforeSend:o.noop,complete:o.noop,completeAll:o.noop,error:o.noop,fail:o.noop,load:o.noop,loadEnd:o.noop,loadStart:o.noop,progress:o.noop},events:{change(e){!o.matches(e.target,'input[type="file"]')||(e.preventDefault(),e.target.files&&this.upload(e.target.files),e.target.value="")},drop(e){i(e);const t=e.dataTransfer;!(t!=null&&t.files)||(o.removeClass(this.$el,this.clsDragover),this.upload(t.files))},dragenter(e){i(e)},dragover(e){i(e),o.addClass(this.$el,this.clsDragover)},dragleave(e){i(e),o.removeClass(this.$el,this.clsDragover)}},methods:{async upload(e){if(!e.length)return;o.trigger(this.$el,"upload",[e]);for(const a of e){if(this.maxSize&&this.maxSize*1e3<a.size){this.fail(this.msgInvalidSize.replace("%s",this.maxSize));return}if(this.allow&&!d(this.allow,a.name)){this.fail(this.msgInvalidName.replace("%s",this.allow));return}if(this.mime&&!d(this.mime,a.type)){this.fail(this.msgInvalidMime.replace("%s",this.mime));return}}this.multiple||(e=e.slice(0,1)),this.beforeAll(this,e);const t=c(e,this.concurrent),s=async a=>{const l=new FormData;a.forEach(r=>l.append(this.name,r));for(const r in this.params)l.append(r,this.params[r]);try{const r=await o.ajax(this.url,{data:l,method:this.method,responseType:this.type,beforeSend:h=>{const{xhr:p}=h;p.upload&&o.on(p.upload,"progress",this.progress);for(const m of["loadStart","load","loadEnd","abort"])o.on(p,m.toLowerCase(),this[m]);return this.beforeSend(h)}});this.complete(r),t.length?await s(t.shift()):this.completeAll(r)}catch(r){this.error(r)}};await s(t.shift())}}};function d(e,t){return t.match(new RegExp("^"+e.replace(/\//g,"\\/").replace(/\*\*/g,"(\\/[^\\/]+)*").replace(/\*/g,"[^\\/]+").replace(/((?!\\))\?/g,"$1.")+"$","i"))}function c(e,t){e=o.toArray(e);const s=[];for(let a=0;a<e.length;a+=t)s.push(e.slice(a,a+t));return s}function i(e){e.preventDefault(),e.stopPropagation()}return typeof window<"u"&&window.UIkit&&window.UIkit.component("upload",n),n});
1
+ /*! UIkit 3.13.0 | https://www.getuikit.com | (c) 2014 - 2022 YOOtheme | MIT License */(function(o,n){typeof exports=="object"&&typeof module<"u"?module.exports=n(require("uikit-util")):typeof define=="function"&&define.amd?define("uikitupload",["uikit-util"],n):(o=typeof globalThis<"u"?globalThis:o||self,o.UIkitUpload=n(o.UIkit.util))})(this,function(o){"use strict";var n={props:{allow:String,clsDragover:String,concurrent:Number,maxSize:Number,method:String,mime:String,msgInvalidMime:String,msgInvalidName:String,msgInvalidSize:String,multiple:Boolean,name:String,params:Object,type:String,url:String},data:{allow:!1,clsDragover:"uk-dragover",concurrent:1,maxSize:0,method:"POST",mime:!1,msgInvalidMime:"Invalid File Type: %s",msgInvalidName:"Invalid File Name: %s",msgInvalidSize:"Invalid File Size: %s Kilobytes Max",multiple:!1,name:"files[]",params:{},type:"",url:"",abort:o.noop,beforeAll:o.noop,beforeSend:o.noop,complete:o.noop,completeAll:o.noop,error:o.noop,fail:o.noop,load:o.noop,loadEnd:o.noop,loadStart:o.noop,progress:o.noop},events:{change(e){!o.matches(e.target,'input[type="file"]')||(e.preventDefault(),e.target.files&&this.upload(e.target.files),e.target.value="")},drop(e){i(e);const t=e.dataTransfer;!(t!=null&&t.files)||(o.removeClass(this.$el,this.clsDragover),this.upload(t.files))},dragenter(e){i(e)},dragover(e){i(e),o.addClass(this.$el,this.clsDragover)},dragleave(e){i(e),o.removeClass(this.$el,this.clsDragover)}},methods:{async upload(e){if(!e.length)return;o.trigger(this.$el,"upload",[e]);for(const a of e){if(this.maxSize&&this.maxSize*1e3<a.size){this.fail(this.msgInvalidSize.replace("%s",this.maxSize));return}if(this.allow&&!d(this.allow,a.name)){this.fail(this.msgInvalidName.replace("%s",this.allow));return}if(this.mime&&!d(this.mime,a.type)){this.fail(this.msgInvalidMime.replace("%s",this.mime));return}}this.multiple||(e=e.slice(0,1)),this.beforeAll(this,e);const t=c(e,this.concurrent),s=async a=>{const l=new FormData;a.forEach(r=>l.append(this.name,r));for(const r in this.params)l.append(r,this.params[r]);try{const r=await o.ajax(this.url,{data:l,method:this.method,responseType:this.type,beforeSend:h=>{const{xhr:p}=h;p.upload&&o.on(p.upload,"progress",this.progress);for(const m of["loadStart","load","loadEnd","abort"])o.on(p,m.toLowerCase(),this[m]);return this.beforeSend(h)}});this.complete(r),t.length?await s(t.shift()):this.completeAll(r)}catch(r){this.error(r)}};await s(t.shift())}}};function d(e,t){return t.match(new RegExp("^"+e.replace(/\//g,"\\/").replace(/\*\*/g,"(\\/[^\\/]+)*").replace(/\*/g,"[^\\/]+").replace(/((?!\\))\?/g,"$1.")+"$","i"))}function c(e,t){e=o.toArray(e);const s=[];for(let a=0;a<e.length;a+=t)s.push(e.slice(a,a+t));return s}function i(e){e.preventDefault(),e.stopPropagation()}return typeof window<"u"&&window.UIkit&&window.UIkit.component("upload",n),n});