Comparing version 1.0.0-beta.8 to 1.0.0-beta.9
@@ -34,5 +34,193 @@ { | ||
}, | ||
"...props": { | ||
"type": "Any", | ||
"desc": "Other QDialog properties" | ||
"title": { | ||
"type": "String", | ||
"desc": "A text for the heading title of the dialog", | ||
"examples": [ | ||
"Continue?" | ||
] | ||
}, | ||
"message": { | ||
"type": "String", | ||
"desc": "A text with more information about what needs to be input, selected or confirmed.", | ||
"examples": [ | ||
"Are you certain you want to continue?" | ||
] | ||
}, | ||
"position": { | ||
"type": "String", | ||
"desc": "Position of the Dialog on screen. Standard is centered.", | ||
"values": [ | ||
"top", | ||
"right", | ||
"bottom", | ||
"left", | ||
"standard" | ||
], | ||
"default": "standard" | ||
}, | ||
"options": { | ||
"type": "Object", | ||
"desc": "The options object for creating the Dialog's content", | ||
"definition": { | ||
"prompt": { | ||
"type": "Object", | ||
"desc": "An object definition of the input field for the prompting question.", | ||
"examples": [ | ||
"prompt: { model: this.promptVal, type: 'number' }" | ||
], | ||
"definition": { | ||
"model": { | ||
"type": [ | ||
"Array", | ||
"String" | ||
], | ||
"desc": "The value of the input: Array for Selection, String for prompt", | ||
"examples": [ | ||
"this.dialogVal" | ||
] | ||
}, | ||
"type": { | ||
"type": "String", | ||
"desc": "Optional property to determine the input field type. It can be either a text or number input field type", | ||
"default": "text", | ||
"examples": [ | ||
"number" | ||
] | ||
} | ||
} | ||
}, | ||
"options": { | ||
"type": "Object", | ||
"desc": "An object definition for creating the selection form content", | ||
"examples": [ | ||
"{ model: this.dialogSelection, type: 'radio', items: [...listOfItems] }" | ||
], | ||
"definition": { | ||
"type": { | ||
"type": "String", | ||
"desc": "The type of selection", | ||
"values": [ | ||
"radio", | ||
"checkbox", | ||
"toggle" | ||
] | ||
}, | ||
"model": { | ||
"type": "Array", | ||
"desc": "The value of the selection", | ||
"examples": [ | ||
"[]" | ||
] | ||
}, | ||
"items": { | ||
"type": "Array", | ||
"desc": "The list of options to interact with; Equivalent to options prop of the QOptionsGroup component", | ||
"examples": [ | ||
"[ { label: 'Option 1', value: 'op1' }, { label: 'Option 2', value: 'op2' }, { label: 'Option 3', value: 'op3' } ]" | ||
] | ||
} | ||
} | ||
} | ||
} | ||
}, | ||
"ok": { | ||
"type": [ | ||
"String", | ||
"Object", | ||
"Boolean" | ||
], | ||
"desc": "Props for an 'OK' button", | ||
"definition": { | ||
"...props": { | ||
"type": "Any", | ||
"desc": "See QBtn for available props" | ||
} | ||
} | ||
}, | ||
"cancel": { | ||
"type": [ | ||
"String", | ||
"Object", | ||
"Boolean" | ||
], | ||
"desc": "Props for a 'CANCEL' button", | ||
"definition": { | ||
"...props": { | ||
"type": "Any", | ||
"desc": "See QBtn for available props" | ||
} | ||
} | ||
}, | ||
"width": { | ||
"type": "String", | ||
"desc": "The width of the dialog (including CSS unit)", | ||
"default": "400px", | ||
"examples": [ | ||
"480px", | ||
"25em", | ||
"60%", | ||
"auto" | ||
] | ||
}, | ||
"stackButtons": { | ||
"type": "Boolean", | ||
"desc": "Makes buttons be stacked instead of vertically aligned" | ||
}, | ||
"color": { | ||
"type": "String", | ||
"desc": "Color name for component from the Quasar Color Palette", | ||
"examples": [ | ||
"primary", | ||
"teal-10" | ||
] | ||
}, | ||
"persistent": { | ||
"type": "Boolean", | ||
"desc": "User cannot dismiss Dialog if clicking outside of it or hitting ESC key; Also, an app route change won't dismiss it" | ||
}, | ||
"no-esc-dismiss": { | ||
"type": "Boolean", | ||
"desc": "User cannot dismiss Dialog by hitting ESC key; No need to set it if 'persistent' prop is also set" | ||
}, | ||
"no-backdrop-dismiss": { | ||
"type": "Boolean", | ||
"desc": "User cannot dismiss Dialog by clicking outside of it; No need to set it if 'persistent' prop is also set" | ||
}, | ||
"no-route-dismiss": { | ||
"type": "Boolean", | ||
"desc": "Changing route app won't dismiss Dialog; No need to set it if 'persistent' prop is also set" | ||
}, | ||
"seamless": { | ||
"type": "Boolean", | ||
"desc": "Put Dialog into seamless mode; Does not use a backdrop so user is able to interact with the rest of the page too" | ||
}, | ||
"maximized": { | ||
"type": "Boolean", | ||
"desc": "Put Dialog into maximized mode" | ||
}, | ||
"full-width": { | ||
"type": "Boolean", | ||
"desc": "Dialog will try to render with same width as the window" | ||
}, | ||
"full-height": { | ||
"type": "Boolean", | ||
"desc": "Dialog will try to render with same height as the window" | ||
}, | ||
"transition-show": { | ||
"type": "String", | ||
"desc": "One of Quasar's embedded transitions", | ||
"examples": [ | ||
"fade", | ||
"slide-down" | ||
], | ||
"default": "scale" | ||
}, | ||
"transition-hide": { | ||
"type": "String", | ||
"desc": "One of Quasar's embedded transitions", | ||
"examples": [ | ||
"fade", | ||
"slide-down" | ||
], | ||
"default": "scale" | ||
} | ||
@@ -39,0 +227,0 @@ }, |
@@ -35,7 +35,7 @@ { | ||
"type": "Boolean", | ||
"desc": "Apply a standard margin on the left side. Useful if icon is on the right side of something." | ||
"desc": "Useful if icon is on the left side of something: applies a standard margin on the right side of Icon" | ||
}, | ||
"right": { | ||
"type": "Boolean", | ||
"desc": "Apply a standard margin on the right side. Useful if icon is on the left side of something." | ||
"desc": "Useful if icon is on the right side of something: applies a standard margin on the left side of Icon" | ||
} | ||
@@ -42,0 +42,0 @@ }, |
@@ -319,4 +319,7 @@ { | ||
"desc": "Focus underlying input tag" | ||
}, | ||
"blur": { | ||
"desc": "Lose focus on underlying input tag" | ||
} | ||
} | ||
} |
@@ -82,2 +82,6 @@ { | ||
}, | ||
"shrink": { | ||
"type": "Boolean", | ||
"desc": "By default, QTabs is set to grow to the available space; However, you can reverse that with this prop; Useful (and required) when placing the component in a QToolbar" | ||
}, | ||
"top-indicator": { | ||
@@ -84,0 +88,0 @@ "type": "Boolean", |
@@ -104,2 +104,19 @@ { | ||
}, | ||
"factory": { | ||
"type": "Function", | ||
"desc": "Function which should return an Object or a Promise resolving with an Object", | ||
"params": { | ||
"files": { | ||
"type": "Array", | ||
"desc": "Uploaded files" | ||
} | ||
}, | ||
"returns": { | ||
"type": [ | ||
"Object", | ||
"Promise" | ||
], | ||
"desc": "Optional configuration for the upload process; You can override QUploader props in this Object (url, method, headers, fields, fieldName, withCredentials, sendRaw); Props of these Object can also be Functions with the form of (file[s]) => value" | ||
} | ||
}, | ||
"url": { | ||
@@ -110,3 +127,2 @@ "type": [ | ||
], | ||
"required": true, | ||
"desc": "URL or path to the server which handles the upload. Takes String or factory function, which returns String. Function is called right before upload", | ||
@@ -210,8 +226,22 @@ "examples": [ | ||
"with-credentials": { | ||
"type": "Boolean", | ||
"desc": "Sets withCredentials to true on the XHR that manages the upload" | ||
"type": [ | ||
"Boolean", | ||
"Function" | ||
], | ||
"desc": "Sets withCredentials to true on the XHR that manages the upload; Takes boolean or factory function for Boolean; Function is called right before upload", | ||
"examples": [ | ||
"with-credentials", | ||
":with-credentials=\"files => ...\"" | ||
] | ||
}, | ||
"send-raw": { | ||
"type": "Boolean", | ||
"desc": "Send raw files without wrapping into a Form()" | ||
"type": [ | ||
"Boolean", | ||
"Function" | ||
], | ||
"desc": "Send raw files without wrapping into a Form(); Takes boolean or factory function for Boolean; Function is called right before upload", | ||
"examples": [ | ||
"send-raw", | ||
":send-raw=\"files => ...\"" | ||
] | ||
}, | ||
@@ -238,3 +268,3 @@ "batch": { | ||
"events": { | ||
"add": { | ||
"added": { | ||
"desc": "Emitted when files are added into the list", | ||
@@ -248,2 +278,11 @@ "params": { | ||
}, | ||
"removed": { | ||
"desc": "Emitted when files are removed from the list", | ||
"params": { | ||
"files": { | ||
"type": "Array", | ||
"desc": "Array of files that were removed" | ||
} | ||
} | ||
}, | ||
"uploaded": { | ||
@@ -287,2 +326,15 @@ "desc": "Emitted when file or batch of files is uploaded", | ||
} | ||
}, | ||
"factory-failed": { | ||
"desc": "Emitted when factory function is supplied with a Promise which is rejected", | ||
"params": { | ||
"err": { | ||
"type": "Object", | ||
"desc": "Error Object which is the Promise rejection reason" | ||
}, | ||
"files": { | ||
"type": "Array", | ||
"desc": "Files which were to get uploaded" | ||
} | ||
} | ||
} | ||
@@ -289,0 +341,0 @@ }, |
/*! | ||
* Quasar Framework v1.0.0-beta.8 | ||
* Quasar Framework v1.0.0-beta.9 | ||
* (c) 2016-present Razvan Stoenescu | ||
@@ -4,0 +4,0 @@ * Released under the MIT License. |
/*! | ||
* Quasar Framework v1.0.0-beta.8 | ||
* Quasar Framework v1.0.0-beta.9 | ||
* (c) 2016-present Razvan Stoenescu | ||
@@ -4,0 +4,0 @@ * Released under the MIT License. |
/*! | ||
* Quasar Framework v1.0.0-beta.8 | ||
* Quasar Framework v1.0.0-beta.9 | ||
* (c) 2016-present Razvan Stoenescu | ||
@@ -4,0 +4,0 @@ * Released under the MIT License. |
/*! | ||
* Quasar Framework v1.0.0-beta.8 | ||
* Quasar Framework v1.0.0-beta.9 | ||
* (c) 2016-present Razvan Stoenescu | ||
@@ -4,0 +4,0 @@ * Released under the MIT License. |
/*! | ||
* Quasar Framework v1.0.0-beta.8 | ||
* Quasar Framework v1.0.0-beta.9 | ||
* (c) 2016-present Razvan Stoenescu | ||
@@ -4,0 +4,0 @@ * Released under the MIT License. |
/*! | ||
* Quasar Framework v1.0.0-beta.8 | ||
* Quasar Framework v1.0.0-beta.9 | ||
* (c) 2016-present Razvan Stoenescu | ||
@@ -4,0 +4,0 @@ * Released under the MIT License. |
/*! | ||
* Quasar Framework v1.0.0-beta.8 | ||
* Quasar Framework v1.0.0-beta.9 | ||
* (c) 2016-present Razvan Stoenescu | ||
@@ -4,0 +4,0 @@ * Released under the MIT License. |
/*! | ||
* Quasar Framework v1.0.0-beta.8 | ||
* Quasar Framework v1.0.0-beta.9 | ||
* (c) 2016-present Razvan Stoenescu | ||
@@ -4,0 +4,0 @@ * Released under the MIT License. |
/*! | ||
* Quasar Framework v1.0.0-beta.8 | ||
* Quasar Framework v1.0.0-beta.9 | ||
* (c) 2016-present Razvan Stoenescu | ||
@@ -4,0 +4,0 @@ * Released under the MIT License. |
/*! | ||
* Quasar Framework v1.0.0-beta.8 | ||
* Quasar Framework v1.0.0-beta.9 | ||
* (c) 2016-present Razvan Stoenescu | ||
@@ -4,0 +4,0 @@ * Released under the MIT License. |
/*! | ||
* Quasar Framework v1.0.0-beta.8 | ||
* Quasar Framework v1.0.0-beta.9 | ||
* (c) 2016-present Razvan Stoenescu | ||
@@ -4,0 +4,0 @@ * Released under the MIT License. |
/*! | ||
* Quasar Framework v1.0.0-beta.8 | ||
* Quasar Framework v1.0.0-beta.9 | ||
* (c) 2016-present Razvan Stoenescu | ||
@@ -4,0 +4,0 @@ * Released under the MIT License. |
/*! | ||
* Quasar Framework v1.0.0-beta.8 | ||
* Quasar Framework v1.0.0-beta.9 | ||
* (c) 2016-present Razvan Stoenescu | ||
@@ -4,0 +4,0 @@ * Released under the MIT License. |
/*! | ||
* Quasar Framework v1.0.0-beta.8 | ||
* Quasar Framework v1.0.0-beta.9 | ||
* (c) 2016-present Razvan Stoenescu | ||
@@ -4,0 +4,0 @@ * Released under the MIT License. |
/*! | ||
* Quasar Framework v1.0.0-beta.8 | ||
* Quasar Framework v1.0.0-beta.9 | ||
* (c) 2016-present Razvan Stoenescu | ||
@@ -4,0 +4,0 @@ * Released under the MIT License. |
/*! | ||
* Quasar Framework v1.0.0-beta.8 | ||
* Quasar Framework v1.0.0-beta.9 | ||
* (c) 2016-present Razvan Stoenescu | ||
@@ -4,0 +4,0 @@ * Released under the MIT License. |
/*! | ||
* Quasar Framework v1.0.0-beta.8 | ||
* Quasar Framework v1.0.0-beta.9 | ||
* (c) 2016-present Razvan Stoenescu | ||
@@ -4,0 +4,0 @@ * Released under the MIT License. |
/*! | ||
* Quasar Framework v1.0.0-beta.8 | ||
* Quasar Framework v1.0.0-beta.9 | ||
* (c) 2016-present Razvan Stoenescu | ||
@@ -4,0 +4,0 @@ * Released under the MIT License. |
/*! | ||
* Quasar Framework v1.0.0-beta.8 | ||
* Quasar Framework v1.0.0-beta.9 | ||
* (c) 2016-present Razvan Stoenescu | ||
@@ -4,0 +4,0 @@ * Released under the MIT License. |
/*! | ||
* Quasar Framework v1.0.0-beta.8 | ||
* Quasar Framework v1.0.0-beta.9 | ||
* (c) 2016-present Razvan Stoenescu | ||
@@ -4,0 +4,0 @@ * Released under the MIT License. |
/*! | ||
* Quasar Framework v1.0.0-beta.8 | ||
* Quasar Framework v1.0.0-beta.9 | ||
* (c) 2016-present Razvan Stoenescu | ||
@@ -4,0 +4,0 @@ * Released under the MIT License. |
/*! | ||
* Quasar Framework v1.0.0-beta.8 | ||
* Quasar Framework v1.0.0-beta.9 | ||
* (c) 2016-present Razvan Stoenescu | ||
@@ -4,0 +4,0 @@ * Released under the MIT License. |
/*! | ||
* Quasar Framework v1.0.0-beta.8 | ||
* Quasar Framework v1.0.0-beta.9 | ||
* (c) 2016-present Razvan Stoenescu | ||
@@ -4,0 +4,0 @@ * Released under the MIT License. |
/*! | ||
* Quasar Framework v1.0.0-beta.8 | ||
* Quasar Framework v1.0.0-beta.9 | ||
* (c) 2016-present Razvan Stoenescu | ||
@@ -4,0 +4,0 @@ * Released under the MIT License. |
/*! | ||
* Quasar Framework v1.0.0-beta.8 | ||
* Quasar Framework v1.0.0-beta.9 | ||
* (c) 2016-present Razvan Stoenescu | ||
@@ -4,0 +4,0 @@ * Released under the MIT License. |
/*! | ||
* Quasar Framework v1.0.0-beta.8 | ||
* Quasar Framework v1.0.0-beta.9 | ||
* (c) 2016-present Razvan Stoenescu | ||
@@ -4,0 +4,0 @@ * Released under the MIT License. |
/*! | ||
* Quasar Framework v1.0.0-beta.8 | ||
* Quasar Framework v1.0.0-beta.9 | ||
* (c) 2016-present Razvan Stoenescu | ||
@@ -4,0 +4,0 @@ * Released under the MIT License. |
/*! | ||
* Quasar Framework v1.0.0-beta.8 | ||
* Quasar Framework v1.0.0-beta.9 | ||
* (c) 2016-present Razvan Stoenescu | ||
@@ -4,0 +4,0 @@ * Released under the MIT License. |
/*! | ||
* Quasar Framework v1.0.0-beta.8 | ||
* Quasar Framework v1.0.0-beta.9 | ||
* (c) 2016-present Razvan Stoenescu | ||
@@ -4,0 +4,0 @@ * Released under the MIT License. |
/*! | ||
* Quasar Framework v1.0.0-beta.8 | ||
* Quasar Framework v1.0.0-beta.9 | ||
* (c) 2016-present Razvan Stoenescu | ||
@@ -4,0 +4,0 @@ * Released under the MIT License. |
/*! | ||
* Quasar Framework v1.0.0-beta.8 | ||
* Quasar Framework v1.0.0-beta.9 | ||
* (c) 2016-present Razvan Stoenescu | ||
@@ -4,0 +4,0 @@ * Released under the MIT License. |
/*! | ||
* Quasar Framework v1.0.0-beta.8 | ||
* Quasar Framework v1.0.0-beta.9 | ||
* (c) 2016-present Razvan Stoenescu | ||
@@ -4,0 +4,0 @@ * Released under the MIT License. |
/*! | ||
* Quasar Framework v1.0.0-beta.8 | ||
* Quasar Framework v1.0.0-beta.9 | ||
* (c) 2016-present Razvan Stoenescu | ||
@@ -4,0 +4,0 @@ * Released under the MIT License. |
/*! | ||
* Quasar Framework v1.0.0-beta.8 | ||
* Quasar Framework v1.0.0-beta.9 | ||
* (c) 2016-present Razvan Stoenescu | ||
@@ -4,0 +4,0 @@ * Released under the MIT License. |
/*! | ||
* Quasar Framework v1.0.0-beta.8 | ||
* Quasar Framework v1.0.0-beta.9 | ||
* (c) 2016-present Razvan Stoenescu | ||
* Released under the MIT License. | ||
*/ | ||
!function(e,r){"object"==typeof exports&&"undefined"!=typeof module?module.exports=r():"function"==typeof define&&define.amd?define(r):((e=e||self).Quasar=e.Quasar||{},e.Quasar.lang=e.Quasar.lang||{},e.Quasar.lang.nbNo=r())}(this,function(){"use strict";return{isoName:"nb-no",nativeName:"Norsk",label:{clear:"Tøm",ok:"OK",cancel:"Avbryt",close:"Lukk",set:"Bruk",select:"Velg",reset:"Nullstill",remove:"Slett",update:"Oppdater",create:"Lag",search:"Søk",filter:"Filter",refresh:"Oppdater"},date:{days:"Søndag_Mandag_Tirsdag_Onsdag_Torsdag_Fredag_Lørdag".split("_"),daysShort:"Søn_Man_Tir_Ons_Tor_Fre_Lør".split("_"),months:"Januar_Februar_Mars_April_Mai_Juni_Juli_August_September_Oktober_November_Desember".split("_"),monthsShort:"Jan_Feb_Mar_Apr_Mai_Jun_Jul_Aug_Sep_Okt_Nov_Des".split("_"),firstDayOfWeek:1,format24h:!0},table:{noData:"Ingen data tilgjenelig",noResults:"Ingen treff i data funnet",loading:"Laster...",row:"rad",selectedRecords:function(e){return e>0?e+" row"+(1===e?"":"s")+" valgt.":"Ingen valgte rader."},recordsPerPage:"Rader pr side:",allRows:"Alle",pagination:function(e,r,t){return e+"-"+r+" av "+t},columns:"Kolonner"},editor:{url:"URL",bold:"Fet",italic:"Kursiv",strikethrough:"Strikethrough",underline:"Understrek",unorderedList:"Uordnet liste",orderedList:"Ordnet liste",subscript:"Senket skrift",superscript:"Hevet skrift",hyperlink:"Lenke",toggleFullscreen:"Av/på fullskjerm",quote:"Sitat",left:"Venstrestill",center:"Sentrer",right:"Høyrestill",justify:"Tilpasset bredde",print:"Skriv ut",outdent:"Midre innrykk",indent:"Større innrykk",removeFormat:"Fjern formatering",formatting:"Formatering",fontSize:"Fontstørrelse",align:"Stilling",hr:"Sett inn horisontal linje",undo:"Angre",redo:"Gjenta",header1:"Overskrift 1",header2:"Overskrift 2",header3:"Overskrift 3",header4:"Overskrift 4",header5:"Overskrift 5",header6:"Overskrift 6",paragraph:"Avsnitt",code:"Kode",size1:"Veldig liten",size2:"Liten",size3:"Normal",size4:"Medium-stor",size5:"Stor",size6:"Veldig stor",size7:"Maximum",defaultFont:"Normal font"},tree:{noNodes:"Ingen noder tilgjenelig",noResults:"Ingen treff i noder funnet"}}}); | ||
!function(e,r){"object"==typeof exports&&"undefined"!=typeof module?module.exports=r():"function"==typeof define&&define.amd?define(r):((e=e||self).Quasar=e.Quasar||{},e.Quasar.lang=e.Quasar.lang||{},e.Quasar.lang.nbNo=r())}(this,function(){"use strict";return{isoName:"nb-no",nativeName:"Norsk",label:{clear:"Tøm",ok:"OK",cancel:"Avbryt",close:"Lukk",set:"Bruk",select:"Velg",reset:"Nullstill",remove:"Slett",update:"Oppdater",create:"Lag",search:"Søk",filter:"Filter",refresh:"Oppdater"},date:{days:"Søndag_Mandag_Tirsdag_Onsdag_Torsdag_Fredag_Lørdag".split("_"),daysShort:"Søn_Man_Tir_Ons_Tor_Fre_Lør".split("_"),months:"Januar_Februar_Mars_April_Mai_Juni_Juli_August_September_Oktober_November_Desember".split("_"),monthsShort:"Jan_Feb_Mar_Apr_Mai_Jun_Jul_Aug_Sep_Okt_Nov_Des".split("_"),firstDayOfWeek:1,format24h:!0},table:{noData:"Ingen data tilgjengelig",noResults:"Ingen treff i data funnet",loading:"Laster...",row:"rad",selectedRecords:function(e){return e>0?e+" row"+(1===e?"":"s")+" valgt.":"Ingen valgte rader."},recordsPerPage:"Rader pr side:",allRows:"Alle",pagination:function(e,r,t){return e+"-"+r+" av "+t},columns:"Kolonner"},editor:{url:"URL",bold:"Fet",italic:"Kursiv",strikethrough:"Gjennomstreking",underline:"Understrek",unorderedList:"Uordnet liste",orderedList:"Ordnet liste",subscript:"Senket skrift",superscript:"Hevet skrift",hyperlink:"Lenke",toggleFullscreen:"Av/på fullskjerm",quote:"Sitat",left:"Venstrestill",center:"Sentrer",right:"Høyrestill",justify:"Tilpasset bredde",print:"Skriv ut",outdent:"Midre innrykk",indent:"Større innrykk",removeFormat:"Fjern formatering",formatting:"Formatering",fontSize:"Fontstørrelse",align:"Stilling",hr:"Sett inn horisontal linje",undo:"Angre",redo:"Gjenta",header1:"Overskrift 1",header2:"Overskrift 2",header3:"Overskrift 3",header4:"Overskrift 4",header5:"Overskrift 5",header6:"Overskrift 6",paragraph:"Avsnitt",code:"Kode",size1:"Veldig liten",size2:"Liten",size3:"Normal",size4:"Medium-stor",size5:"Stor",size6:"Veldig stor",size7:"Maximum",defaultFont:"Normal font"},tree:{noNodes:"Ingen noder tilgjengelig",noResults:"Ingen treff i noder funnet"}}}); |
/*! | ||
* Quasar Framework v1.0.0-beta.8 | ||
* Quasar Framework v1.0.0-beta.9 | ||
* (c) 2016-present Razvan Stoenescu | ||
* Released under the MIT License. | ||
*/ | ||
!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n():"function"==typeof define&&define.amd?define(n):((e=e||self).Quasar=e.Quasar||{},e.Quasar.lang=e.Quasar.lang||{},e.Quasar.lang.nl=n())}(this,function(){"use strict";return{isoName:"nl",nativeName:"Nederlands",label:{clear:"Wis",ok:"OK",cancel:"Annuleer",close:"Sluit",set:"Toepassen",select:"Selecteer",reset:"Herinitialiseren",remove:"Verwijder",update:"Update",create:"Maak aan",search:"Zoek",filter:"Filter",refresh:"Vernieuw"},date:{days:"Zondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrijdag_Zaterdag".split("_"),daysShort:"Zo_Ma_Di_Woe_Do_Vrij_Zat".split("_"),months:"Januari_Februari_Maart_April_Mei_Juni_Juli_Augustus_September_Oktober_November_December".split("_"),monthsShort:"Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Dec".split("_"),firstDayOfWeek:1,format24h:!0},table:{noData:"Geen data bechikbaar",noResults:"Geen records gevonden",loading:"Laden...",selectedRecords:function(e){return 1===e?"1 rij geselecteerd.":(0===e?"Geen":e)+" geselecteerde rijen."},recordsPerPage:"Rijen per pagina:",allRows:"Alle",pagination:function(e,n,r){return e+"-"+n+" op "+r},columns:"Kolommen"},editor:{url:"URL",bold:"Vet",italic:"Cursief",strikethrough:"Doorhalen",underline:"Onderlijnen",unorderedList:"Ongeordende lijst",orderedList:"Geordende lijst ",subscript:"Bovenschrift",superscript:"Onderschrift",hyperlink:"Hyperlink",toggleFullscreen:"Volledig scherm activeren",quote:"Citaat",left:"Links uitlijnen",center:"Tekst centreren",right:"Rechts uitlijnen",justify:"Tekst uitvullen",print:"Afdrukken",outdent:"Inspringen verkleinen",indent:"Inspringen vergroten",removeFormat:"Opmaak verwijderen",formatting:"Opmaak",fontSize:"Tekengrootte",align:"Uitlijnen",hr:"Horizontale lijn invoegen",undo:"Ongedaan maken",redo:"Opnieuw",header1:"Kop 1",header2:"Kop 2",header3:"Kop 3",header4:"Kop 4",header5:"Kop 5",header6:"Kop 6",paragraph:"Paragraaf",code:"Code",size1:"Heel klein",size2:"Klein",size3:"Normaal",size4:"Medium-groot",size5:"Groot",size6:"Heel groot",size7:"Maximum",defaultFont:"Standaard lettertype"},tree:{noNodes:"Geen nodes beschikbaar",noResults:"Geen overeenkomende nodes gevonden"}}}); | ||
!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n():"function"==typeof define&&define.amd?define(n):((e=e||self).Quasar=e.Quasar||{},e.Quasar.lang=e.Quasar.lang||{},e.Quasar.lang.nl=n())}(this,function(){"use strict";return{isoName:"nl",nativeName:"Nederlands",label:{clear:"Wis",ok:"OK",cancel:"Annuleer",close:"Sluit",set:"Toepassen",select:"Selecteer",reset:"Herinitialiseren",remove:"Verwijder",update:"Update",create:"Maak aan",search:"Zoek",filter:"Filter",refresh:"Vernieuw"},date:{days:"Zondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrijdag_Zaterdag".split("_"),daysShort:"Zo_Ma_Di_Woe_Do_Vrij_Zat".split("_"),months:"Januari_Februari_Maart_April_Mei_Juni_Juli_Augustus_September_Oktober_November_December".split("_"),monthsShort:"Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Dec".split("_"),firstDayOfWeek:1,format24h:!0},table:{noData:"Geen data beschikbaar",noResults:"Geen records gevonden",loading:"Laden...",selectedRecords:function(e){return 1===e?"1 rij geselecteerd.":(0===e?"Geen":e)+" geselecteerde rijen."},recordsPerPage:"Rijen per pagina:",allRows:"Alle",pagination:function(e,n,r){return e+"-"+n+" van "+r},columns:"Kolommen"},editor:{url:"URL",bold:"Vet",italic:"Cursief",strikethrough:"Doorhalen",underline:"Onderlijnen",unorderedList:"Ongeordende lijst",orderedList:"Geordende lijst ",subscript:"Bovenschrift",superscript:"Onderschrift",hyperlink:"Hyperlink",toggleFullscreen:"Volledig scherm activeren",quote:"Citaat",left:"Links uitlijnen",center:"Tekst centreren",right:"Rechts uitlijnen",justify:"Tekst uitvullen",print:"Afdrukken",outdent:"Inspringen verkleinen",indent:"Inspringen vergroten",removeFormat:"Opmaak verwijderen",formatting:"Opmaak",fontSize:"Tekengrootte",align:"Uitlijnen",hr:"Horizontale lijn invoegen",undo:"Ongedaan maken",redo:"Opnieuw",header1:"Kop 1",header2:"Kop 2",header3:"Kop 3",header4:"Kop 4",header5:"Kop 5",header6:"Kop 6",paragraph:"Paragraaf",code:"Code",size1:"Heel klein",size2:"Klein",size3:"Normaal",size4:"Medium-groot",size5:"Groot",size6:"Heel groot",size7:"Maximum",defaultFont:"Standaard lettertype"},tree:{noNodes:"Geen nodes beschikbaar",noResults:"Geen overeenkomende nodes gevonden"}}}); |
/*! | ||
* Quasar Framework v1.0.0-beta.8 | ||
* Quasar Framework v1.0.0-beta.9 | ||
* (c) 2016-present Razvan Stoenescu | ||
@@ -4,0 +4,0 @@ * Released under the MIT License. |
/*! | ||
* Quasar Framework v1.0.0-beta.8 | ||
* Quasar Framework v1.0.0-beta.9 | ||
* (c) 2016-present Razvan Stoenescu | ||
@@ -4,0 +4,0 @@ * Released under the MIT License. |
/*! | ||
* Quasar Framework v1.0.0-beta.8 | ||
* Quasar Framework v1.0.0-beta.9 | ||
* (c) 2016-present Razvan Stoenescu | ||
@@ -4,0 +4,0 @@ * Released under the MIT License. |
/*! | ||
* Quasar Framework v1.0.0-beta.8 | ||
* Quasar Framework v1.0.0-beta.9 | ||
* (c) 2016-present Razvan Stoenescu | ||
@@ -4,0 +4,0 @@ * Released under the MIT License. |
/*! | ||
* Quasar Framework v1.0.0-beta.8 | ||
* Quasar Framework v1.0.0-beta.9 | ||
* (c) 2016-present Razvan Stoenescu | ||
@@ -4,0 +4,0 @@ * Released under the MIT License. |
/*! | ||
* Quasar Framework v1.0.0-beta.8 | ||
* Quasar Framework v1.0.0-beta.9 | ||
* (c) 2016-present Razvan Stoenescu | ||
@@ -4,0 +4,0 @@ * Released under the MIT License. |
/*! | ||
* Quasar Framework v1.0.0-beta.8 | ||
* Quasar Framework v1.0.0-beta.9 | ||
* (c) 2016-present Razvan Stoenescu | ||
@@ -4,0 +4,0 @@ * Released under the MIT License. |
/*! | ||
* Quasar Framework v1.0.0-beta.8 | ||
* Quasar Framework v1.0.0-beta.9 | ||
* (c) 2016-present Razvan Stoenescu | ||
@@ -4,0 +4,0 @@ * Released under the MIT License. |
/*! | ||
* Quasar Framework v1.0.0-beta.8 | ||
* Quasar Framework v1.0.0-beta.9 | ||
* (c) 2016-present Razvan Stoenescu | ||
@@ -4,0 +4,0 @@ * Released under the MIT License. |
/*! | ||
* Quasar Framework v1.0.0-beta.8 | ||
* Quasar Framework v1.0.0-beta.9 | ||
* (c) 2016-present Razvan Stoenescu | ||
@@ -4,0 +4,0 @@ * Released under the MIT License. |
/*! | ||
* Quasar Framework v1.0.0-beta.8 | ||
* Quasar Framework v1.0.0-beta.9 | ||
* (c) 2016-present Razvan Stoenescu | ||
@@ -4,0 +4,0 @@ * Released under the MIT License. |
/*! | ||
* Quasar Framework v1.0.0-beta.8 | ||
* Quasar Framework v1.0.0-beta.9 | ||
* (c) 2016-present Razvan Stoenescu | ||
@@ -4,0 +4,0 @@ * Released under the MIT License. |
/*! | ||
* Quasar Framework v1.0.0-beta.8 | ||
* Quasar Framework v1.0.0-beta.9 | ||
* (c) 2016-present Razvan Stoenescu | ||
@@ -4,0 +4,0 @@ * Released under the MIT License. |
/*! | ||
* Quasar Framework v1.0.0-beta.8 | ||
* Quasar Framework v1.0.0-beta.9 | ||
* (c) 2016-present Razvan Stoenescu | ||
@@ -4,0 +4,0 @@ * Released under the MIT License. |
/*! | ||
* Quasar Framework v1.0.0-beta.8 | ||
* Quasar Framework v1.0.0-beta.9 | ||
* (c) 2016-present Razvan Stoenescu | ||
@@ -4,0 +4,0 @@ * Released under the MIT License. |
/*! | ||
* Quasar Framework v1.0.0-beta.8 | ||
* Quasar Framework v1.0.0-beta.9 | ||
* (c) 2016-present Razvan Stoenescu | ||
@@ -4,0 +4,0 @@ * Released under the MIT License. |
/*! | ||
* Quasar Framework v1.0.0-beta.8 | ||
* Quasar Framework v1.0.0-beta.9 | ||
* (c) 2016-present Razvan Stoenescu | ||
@@ -4,0 +4,0 @@ * Released under the MIT License. |
@@ -1297,2 +1297,3 @@ { | ||
"breakpoint", | ||
"shrink", | ||
"active-color", | ||
@@ -1462,3 +1463,4 @@ "active-bg-color", | ||
"send-raw", | ||
"batch" | ||
"batch", | ||
"factory" | ||
], | ||
@@ -1465,0 +1467,0 @@ "description": "" |
@@ -28,3 +28,3 @@ export default { | ||
table: { | ||
noData: 'Ingen data tilgjenelig', | ||
noData: 'Ingen data tilgjengelig', | ||
noResults: 'Ingen treff i data funnet', | ||
@@ -49,3 +49,3 @@ loading: 'Laster...', | ||
italic: 'Kursiv', | ||
strikethrough: 'Strikethrough', | ||
strikethrough: 'Gjennomstreking', | ||
underline: 'Understrek', | ||
@@ -91,5 +91,5 @@ unorderedList: 'Uordnet liste', | ||
tree: { | ||
noNodes: 'Ingen noder tilgjenelig', | ||
noNodes: 'Ingen noder tilgjengelig', | ||
noResults: 'Ingen treff i noder funnet' | ||
} | ||
} |
@@ -28,3 +28,3 @@ export default { | ||
table: { | ||
noData: 'Geen data bechikbaar', | ||
noData: 'Geen data beschikbaar', | ||
noResults: 'Geen records gevonden', | ||
@@ -40,3 +40,3 @@ loading: 'Laden...', | ||
pagination: function (start, end, total) { | ||
return start + '-' + end + ' op ' + total | ||
return start + '-' + end + ' van ' + total | ||
}, | ||
@@ -43,0 +43,0 @@ columns: 'Kolommen' |
{ | ||
"name": "quasar", | ||
"version": "1.0.0-beta.8", | ||
"version": "1.0.0-beta.9", | ||
"description": "High performance, Material Design 2, full front end stack with Vue.js -- build SPA, SSR, PWA, Hybrid Mobile Apps and Electron apps, all simultaneously using the same codebase", | ||
@@ -115,3 +115,4 @@ "module": "src/index.esm.js", | ||
"last 1 version, not dead, ie >= 11" | ||
] | ||
], | ||
"dependencies": {} | ||
} |
@@ -97,4 +97,4 @@ import AlignMixin from '../../mixins/align.js' | ||
if (this.color) { | ||
if (this.flat || this.outline) { | ||
if (this.color !== void 0) { | ||
if (this.flat === true || this.outline === true) { | ||
colors = `text-${this.textColor || this.color}` | ||
@@ -110,3 +110,3 @@ } | ||
return `q-btn--${this.isRound ? 'round' : 'rectangle'}` + | ||
return `q-btn--${this.isRound === true ? 'round' : 'rectangle'}` + | ||
(colors !== void 0 ? ' ' + colors : '') + | ||
@@ -113,0 +113,0 @@ (this.isDisabled === true ? ' disabled' : ' q-focusable q-hoverable') + |
@@ -61,3 +61,3 @@ import Vue from 'vue' | ||
set (value, opt) { | ||
if (!this.readonly && value !== this.value) { | ||
if (this.readonly === false && value !== this.value) { | ||
this.$emit('input', value, opt) | ||
@@ -64,0 +64,0 @@ } |
@@ -60,7 +60,9 @@ import Vue from 'vue' | ||
}, [ | ||
this.disable ? null : h('input', { | ||
staticClass: 'q-checkbox__native q-ma-none q-pa-none invisible', | ||
attrs: { type: 'checkbox' }, | ||
on: { change: this.toggle } | ||
}), | ||
this.disable !== true | ||
? h('input', { | ||
staticClass: 'q-checkbox__native q-ma-none q-pa-none invisible', | ||
attrs: { type: 'checkbox' }, | ||
on: { change: this.toggle } | ||
}) | ||
: null, | ||
@@ -67,0 +69,0 @@ h('div', { |
@@ -52,3 +52,3 @@ import Vue from 'vue' | ||
return { | ||
[`bg-${this.color}`]: !this.outline && this.color, | ||
[`bg-${this.color}`]: this.outline === false && this.color !== void 0, | ||
[`text-${text} q-chip--colored`]: text, | ||
@@ -55,0 +55,0 @@ disabled: this.disable, |
@@ -91,8 +91,10 @@ import Vue from 'vue' | ||
maximized (newV, oldV) { | ||
this.__updateState(false, oldV) | ||
this.__updateState(true, newV) | ||
if (this.showing === true) { | ||
this.__updateState(false, oldV) | ||
this.__updateState(true, newV) | ||
} | ||
}, | ||
seamless (v) { | ||
this.showing && this.__preventScroll(!v) | ||
this.showing === true && this.__preventScroll(!v) | ||
} | ||
@@ -99,0 +101,0 @@ }, |
@@ -23,3 +23,3 @@ { | ||
"type": "Boolean", | ||
"desc": "Apply a standard margin on the left side. Useful if icon is on the right side of something." | ||
"desc": "Useful if icon is on the left side of something: applies a standard margin on the right side of Icon" | ||
}, | ||
@@ -29,3 +29,3 @@ | ||
"type": "Boolean", | ||
"desc": "Apply a standard margin on the right side. Useful if icon is on the left side of something." | ||
"desc": "Useful if icon is on the right side of something: applies a standard margin on the left side of Icon" | ||
} | ||
@@ -32,0 +32,0 @@ }, |
@@ -91,2 +91,6 @@ import Vue from 'vue' | ||
blur () { | ||
this.$refs.input.blur() | ||
}, | ||
__onInput (e) { | ||
@@ -93,0 +97,0 @@ const val = e.target.value |
@@ -111,4 +111,8 @@ { | ||
"desc": "Focus underlying input tag" | ||
}, | ||
"blur": { | ||
"desc": "Lose focus on underlying input tag" | ||
} | ||
} | ||
} |
@@ -65,6 +65,6 @@ import Vue from 'vue' | ||
const | ||
largeScreenState = this.showIfAbove || ( | ||
largeScreenState = this.showIfAbove === true || ( | ||
this.value !== void 0 ? this.value : true | ||
), | ||
showing = this.behavior !== 'mobile' && this.breakpoint < this.layout.width && !this.overlay | ||
showing = this.behavior !== 'mobile' && this.breakpoint < this.layout.width && this.overlay === false | ||
? largeScreenState | ||
@@ -90,8 +90,8 @@ : false | ||
belowBreakpoint (val) { | ||
if (this.mobileOpened) { | ||
if (this.mobileOpened === true) { | ||
return | ||
} | ||
if (val) { // from lg to xs | ||
if (!this.overlay) { | ||
if (val === true) { // from lg to xs | ||
if (this.overlay === false) { | ||
this.largeScreenState = this.showing | ||
@@ -102,3 +102,3 @@ } | ||
} | ||
else if (!this.overlay) { // from xs to lg | ||
else if (this.overlay === false) { // from xs to lg | ||
this[this.largeScreenState ? 'show' : 'hide'](false) | ||
@@ -148,3 +148,6 @@ } | ||
$route () { | ||
if (!this.persistent && (this.mobileOpened || this.onScreenOverlay)) { | ||
if ( | ||
this.persistent !== true && | ||
(this.mobileOpened === true || this.onScreenOverlay === true) | ||
) { | ||
this.hide() | ||
@@ -168,3 +171,3 @@ } | ||
mini () { | ||
if (this.value) { | ||
if (this.value === true) { | ||
this.__animateMini() | ||
@@ -182,3 +185,3 @@ this.layout.__animate() | ||
offset () { | ||
return this.showing && !this.mobileOpened && !this.overlay | ||
return this.showing === true && this.mobileOpened === false && this.overlay === false | ||
? this.size | ||
@@ -189,27 +192,27 @@ : 0 | ||
size () { | ||
return this.isMini ? this.miniWidth : this.width | ||
return this.isMini === true ? this.miniWidth : this.width | ||
}, | ||
fixed () { | ||
return this.overlay || this.layout.view.indexOf(this.rightSide ? 'R' : 'L') > -1 | ||
return this.overlay === true || this.layout.view.indexOf(this.rightSide ? 'R' : 'L') > -1 | ||
}, | ||
onLayout () { | ||
return this.showing && !this.mobileView && !this.overlay | ||
return this.showing === true && this.mobileView === false && this.overlay === false | ||
}, | ||
onScreenOverlay () { | ||
return this.showing && !this.mobileView && this.overlay | ||
return this.showing === true && this.mobileView === false && this.overlay === true | ||
}, | ||
backdropClass () { | ||
return !this.showing ? 'no-pointer-events' : null | ||
return this.showing === false ? 'no-pointer-events' : null | ||
}, | ||
mobileView () { | ||
return this.belowBreakpoint || this.mobileOpened | ||
return this.belowBreakpoint === true || this.mobileOpened === true | ||
}, | ||
headerSlot () { | ||
return this.rightSide | ||
return this.rightSide === true | ||
? this.layout.rows.top[2] === 'r' | ||
@@ -220,3 +223,3 @@ : this.layout.rows.top[0] === 'l' | ||
footerSlot () { | ||
return this.rightSide | ||
return this.rightSide === true | ||
? this.layout.rows.bottom[2] === 'r' | ||
@@ -229,7 +232,7 @@ : this.layout.rows.bottom[0] === 'l' | ||
if (this.layout.header.space && !this.headerSlot) { | ||
if (this.fixed) { | ||
if (this.layout.header.space === true && this.headerSlot === false) { | ||
if (this.fixed === true) { | ||
css.top = `${this.layout.header.offset}px` | ||
} | ||
else if (this.layout.header.space) { | ||
else if (this.layout.header.space === true) { | ||
css.top = `${this.layout.header.size}px` | ||
@@ -239,7 +242,7 @@ } | ||
if (this.layout.footer.space && !this.footerSlot) { | ||
if (this.fixed) { | ||
if (this.layout.footer.space === true && this.footerSlot === false) { | ||
if (this.fixed === true) { | ||
css.bottom = `${this.layout.footer.offset}px` | ||
} | ||
else if (this.layout.footer.space) { | ||
else if (this.layout.footer.space === true) { | ||
css.bottom = `${this.layout.footer.size}px` | ||
@@ -254,3 +257,3 @@ } | ||
const style = { width: `${this.size}px` } | ||
return this.mobileView | ||
return this.mobileView === true | ||
? style | ||
@@ -262,10 +265,10 @@ : Object.assign(style, this.aboveStyle) | ||
return `q-drawer--${this.side}` + | ||
(this.bordered ? ' q-drawer--bordered' : '') + | ||
(this.bordered === true ? ' q-drawer--bordered' : '') + | ||
( | ||
this.mobileView | ||
this.mobileView === true | ||
? ' fixed q-drawer--on-top q-drawer--mobile q-drawer--top-padding' | ||
: ` q-drawer--${this.isMini ? 'mini' : 'standard'}` + | ||
(this.fixed || !this.onLayout ? ' fixed' : '') + | ||
(this.overlay ? ' q-drawer--on-top' : '') + | ||
(this.headerSlot ? ' q-drawer--top-padding' : '') | ||
: ` q-drawer--${this.isMini === true ? 'mini' : 'standard'}` + | ||
(this.fixed === true || this.onLayout !== true ? ' fixed' : '') + | ||
(this.overlay === true ? ' q-drawer--on-top' : '') + | ||
(this.headerSlot === true ? ' q-drawer--top-padding' : '') | ||
) | ||
@@ -275,11 +278,11 @@ }, | ||
stateDirection () { | ||
return (this.$q.lang.rtl ? -1 : 1) * (this.rightSide ? 1 : -1) | ||
return (this.$q.lang.rtl === true ? -1 : 1) * (this.rightSide === true ? 1 : -1) | ||
}, | ||
isMini () { | ||
return this.mini && !this.mobileView | ||
return this.mini === true && this.mobileView !== true | ||
}, | ||
onNativeEvents () { | ||
if (!this.mobileView) { | ||
if (this.mobileView !== true) { | ||
return { | ||
@@ -303,4 +306,8 @@ '!click': e => { this.$emit('click', e) }, | ||
} | ||
else if (this.$refs.content) { | ||
if (this.layout.container && this.rightSide && (this.mobileView || Math.abs(position) === this.size)) { | ||
else if (this.$refs.content !== void 0) { | ||
if ( | ||
this.layout.container === true && | ||
this.rightSide === true && | ||
(this.mobileView === true || Math.abs(position) === this.size) | ||
) { | ||
position += this.stateDirection * this.layout.scrollbarWidth | ||
@@ -313,3 +320,3 @@ } | ||
applyBackdrop (x) { | ||
if (this.$refs.backdrop) { | ||
if (this.$refs.backdrop !== void 0) { | ||
this.$refs.backdrop.style.backgroundColor = `rgba(0,0,0,${x * 0.4})` | ||
@@ -320,4 +327,4 @@ } | ||
__setScrollable (v) { | ||
if (!this.layout.container) { | ||
document.body.classList[v ? 'add' : 'remove']('q-body--drawer-toggle') | ||
if (this.layout.container !== true) { | ||
document.body.classList[v === true ? 'add' : 'remove']('q-body--drawer-toggle') | ||
} | ||
@@ -344,3 +351,3 @@ }, | ||
if (evt.isFinal) { | ||
if (evt.isFinal === true) { | ||
const | ||
@@ -352,3 +359,3 @@ el = this.$refs.content, | ||
if (opened) { | ||
if (opened === true) { | ||
this.show() | ||
@@ -367,3 +374,3 @@ } | ||
this.applyPosition( | ||
(this.$q.lang.rtl ? !this.rightSide : this.rightSide) | ||
(this.$q.lang.rtl === true ? !this.rightSide : this.rightSide) | ||
? Math.max(width - position, 0) | ||
@@ -376,3 +383,3 @@ : Math.min(0, position - width) | ||
if (evt.isFirst) { | ||
if (evt.isFirst === true) { | ||
const el = this.$refs.content | ||
@@ -388,11 +395,11 @@ el.classList.add('no-transition') | ||
dir = evt.direction === this.side, | ||
position = (this.$q.lang.rtl ? !dir : dir) | ||
position = (this.$q.lang.rtl === true ? !dir : dir) | ||
? between(evt.distance.x, 0, width) | ||
: 0 | ||
if (evt.isFinal) { | ||
if (evt.isFinal === true) { | ||
const opened = Math.abs(position) < Math.min(75, width) | ||
this.$refs.content.classList.remove('no-transition') | ||
if (opened) { | ||
if (opened === true) { | ||
this.layout.__animate() | ||
@@ -412,3 +419,3 @@ this.applyBackdrop(1) | ||
if (evt.isFirst) { | ||
if (evt.isFirst === true) { | ||
this.$refs.content.classList.add('no-transition') | ||
@@ -422,11 +429,11 @@ } | ||
const otherSide = this.layout.instances[this.rightSide ? 'left' : 'right'] | ||
if (otherSide && otherSide.mobileOpened) { | ||
const otherSide = this.layout.instances[this.rightSide === true ? 'left' : 'right'] | ||
if (otherSide !== void 0 && otherSide.mobileOpened === true) { | ||
otherSide.hide(false) | ||
} | ||
if (this.belowBreakpoint) { | ||
if (this.belowBreakpoint === true) { | ||
this.mobileOpened = true | ||
this.applyBackdrop(1) | ||
if (!this.layout.container) { | ||
if (this.layout.container !== true) { | ||
this.__preventScroll(true) | ||
@@ -449,3 +456,3 @@ } | ||
if (this.mobileOpened) { | ||
if (this.mobileOpened === true) { | ||
this.mobileOpened = false | ||
@@ -500,3 +507,3 @@ } | ||
if (this.layout.instances[this.side] === this) { | ||
this.layout.instances[this.side] = null | ||
this.layout.instances[this.side] = void 0 | ||
this.__update('size', 0) | ||
@@ -510,3 +517,3 @@ this.__update('offset', 0) | ||
const child = [ | ||
!this.noSwipeOpen && this.belowBreakpoint | ||
this.noSwipeOpen !== true && this.belowBreakpoint === true | ||
? h('div', { | ||
@@ -525,3 +532,4 @@ staticClass: `q-drawer__opener fixed-${this.side}`, | ||
: null, | ||
this.mobileView ? h('div', { | ||
this.mobileView === true ? h('div', { | ||
ref: 'backdrop', | ||
@@ -547,9 +555,9 @@ staticClass: 'fullscreen q-drawer__backdrop q-layout__section--animate', | ||
h('div', { | ||
staticClass: 'q-drawer__content fit ' + (this.layout.container ? 'overflow-auto' : 'scroll'), | ||
staticClass: 'q-drawer__content fit ' + (this.layout.container === true ? 'overflow-auto' : 'scroll'), | ||
class: this.contentClass, | ||
style: this.contentStyle | ||
}, this.isMini && this.$scopedSlots.mini !== void 0 ? this.$scopedSlots.mini() : slot(this, 'default')) | ||
}, this.isMini === true && this.$scopedSlots.mini !== void 0 ? this.$scopedSlots.mini() : slot(this, 'default')) | ||
] | ||
if (this.elevated && this.showing) { | ||
if (this.elevated === true && this.showing === true) { | ||
content.push( | ||
@@ -556,0 +564,0 @@ h('div', { |
@@ -51,5 +51,3 @@ import Vue from 'vue' | ||
reveal (val) { | ||
if (!val) { | ||
this.__updateLocal('revealed', this.value) | ||
} | ||
val === false && this.__updateLocal('revealed', this.value) | ||
}, | ||
@@ -75,3 +73,3 @@ | ||
'$q.screen.height' (val) { | ||
!this.layout.container && this.__updateLocal('windowHeight', val) | ||
this.layout.container !== true && this.__updateLocal('windowHeight', val) | ||
} | ||
@@ -82,7 +80,9 @@ }, | ||
fixed () { | ||
return this.reveal || this.layout.view.indexOf('F') > -1 || this.layout.container | ||
return this.reveal === true || | ||
this.layout.view.indexOf('F') > -1 || | ||
this.layout.container === true | ||
}, | ||
containerHeight () { | ||
return this.layout.container | ||
return this.layout.container === true | ||
? this.layout.containerHeight | ||
@@ -93,7 +93,7 @@ : this.windowHeight | ||
offset () { | ||
if (!this.canRender || !this.value) { | ||
if (this.canRender !== true || this.value !== true) { | ||
return 0 | ||
} | ||
if (this.fixed) { | ||
return this.revealed ? this.size : 0 | ||
if (this.fixed === true) { | ||
return this.revealed === true ? this.size : 0 | ||
} | ||
@@ -105,6 +105,11 @@ const offset = this.layout.scroll.position + this.containerHeight + this.size - this.layout.height | ||
classes () { | ||
return ((this.fixed ? 'fixed' : 'absolute') + '-bottom') + | ||
(this.value || this.fixed ? '' : ' hidden') + | ||
(this.bordered ? ' q-footer--bordered' : '') + | ||
(!this.canRender || !this.value || (this.fixed && !this.revealed) ? ' q-footer--hidden' : '') | ||
return ( | ||
(this.fixed === true ? 'fixed' : 'absolute') + '-bottom') + | ||
(this.value === true || this.fixed === true ? '' : ' hidden') + | ||
(this.bordered === true ? ' q-footer--bordered' : '') + | ||
( | ||
this.canRender !== true || this.value !== true || (this.fixed === true && this.revealed !== true) | ||
? ' q-footer--hidden' | ||
: '' | ||
) | ||
}, | ||
@@ -117,6 +122,6 @@ | ||
if (view[0] === 'l' && this.layout.left.space) { | ||
if (view[0] === 'l' && this.layout.left.space === true) { | ||
css[this.$q.lang.rtl ? 'right' : 'left'] = `${this.layout.left.size}px` | ||
} | ||
if (view[2] === 'r' && this.layout.right.space) { | ||
if (view[2] === 'r' && this.layout.right.space === true) { | ||
css[this.$q.lang.rtl ? 'left' : 'right'] = `${this.layout.right.size}px` | ||
@@ -141,3 +146,3 @@ } | ||
this.elevated | ||
this.elevated === true | ||
? h('div', { | ||
@@ -158,3 +163,3 @@ staticClass: 'q-layout__shadow absolute-full overflow-hidden no-pointer-events' | ||
if (this.layout.instances.footer === this) { | ||
this.layout.instances.footer = null | ||
this.layout.instances.footer = void 0 | ||
this.__update('size', 0) | ||
@@ -185,3 +190,3 @@ this.__update('offset', 0) | ||
__updateRevealed () { | ||
if (!this.reveal) { return } | ||
if (this.reveal !== true) { return } | ||
@@ -188,0 +193,0 @@ const { direction, position, inflexionPosition } = this.layout.scroll |
@@ -53,5 +53,3 @@ import Vue from 'vue' | ||
reveal (val) { | ||
if (!val) { | ||
this.__updateLocal('revealed', this.value) | ||
} | ||
val === false && this.__updateLocal('revealed', this.value) | ||
}, | ||
@@ -75,11 +73,13 @@ | ||
fixed () { | ||
return this.reveal || this.layout.view.indexOf('H') > -1 || this.layout.container | ||
return this.reveal === true || | ||
this.layout.view.indexOf('H') > -1 || | ||
this.layout.container === true | ||
}, | ||
offset () { | ||
if (!this.canRender || !this.value) { | ||
if (this.canRender !== true || this.value !== true) { | ||
return 0 | ||
} | ||
if (this.fixed) { | ||
return this.revealed ? this.size : 0 | ||
if (this.fixed === true) { | ||
return this.revealed === true ? this.size : 0 | ||
} | ||
@@ -91,5 +91,10 @@ const offset = this.size - this.layout.scroll.position | ||
classes () { | ||
return (this.fixed ? 'fixed' : 'absolute') + '-top' + | ||
(this.bordered ? ' q-header--bordered' : '') + | ||
(!this.canRender || !this.value || (this.fixed && !this.revealed) ? ' q-header--hidden' : '') | ||
return ( | ||
this.fixed === true ? 'fixed' : 'absolute') + '-top' + | ||
(this.bordered === true ? ' q-header--bordered' : '') + | ||
( | ||
this.canRender !== true || this.value !== true || (this.fixed === true && this.revealed !== true) | ||
? ' q-header--hidden' | ||
: '' | ||
) | ||
}, | ||
@@ -102,6 +107,6 @@ | ||
if (view[0] === 'l' && this.layout.left.space) { | ||
if (view[0] === 'l' && this.layout.left.space === true) { | ||
css[this.$q.lang.rtl ? 'right' : 'left'] = `${this.layout.left.size}px` | ||
} | ||
if (view[2] === 'r' && this.layout.right.space) { | ||
if (view[2] === 'r' && this.layout.right.space === true) { | ||
css[this.$q.lang.rtl ? 'left' : 'right'] = `${this.layout.right.size}px` | ||
@@ -126,3 +131,3 @@ } | ||
this.elevated | ||
this.elevated === true | ||
? h('div', { | ||
@@ -143,3 +148,3 @@ staticClass: 'q-layout__shadow absolute-full overflow-hidden no-pointer-events' | ||
if (this.layout.instances.header === this) { | ||
this.layout.instances.header = null | ||
this.layout.instances.header = void 0 | ||
this.__update('size', 0) | ||
@@ -146,0 +151,0 @@ this.__update('offset', 0) |
@@ -30,8 +30,8 @@ import Vue from 'vue' | ||
// page related | ||
height: onSSR ? 0 : window.innerHeight, | ||
width: onSSR || this.container ? 0 : window.innerWidth, | ||
height: onSSR === true ? 0 : window.innerHeight, | ||
width: onSSR === true || this.container === true ? 0 : window.innerWidth, | ||
// container only prop | ||
containerHeight: 0, | ||
scrollbarWidth: onSSR ? 0 : getScrollbarWidth(), | ||
scrollbarWidth: onSSR === true ? 0 : getScrollbarWidth(), | ||
@@ -79,3 +79,3 @@ header: { | ||
if (this.scrollbarWidth !== 0) { | ||
return { [this.$q.lang.rtl ? 'left' : 'right']: `${this.scrollbarWidth}px` } | ||
return { [this.$q.lang.rtl === true ? 'left' : 'right']: `${this.scrollbarWidth}px` } | ||
} | ||
@@ -87,4 +87,4 @@ }, | ||
return { | ||
[this.$q.lang.rtl ? 'right' : 'left']: 0, | ||
[this.$q.lang.rtl ? 'left' : 'right']: `-${this.scrollbarWidth}px`, | ||
[this.$q.lang.rtl === true ? 'right' : 'left']: 0, | ||
[this.$q.lang.rtl === true ? 'left' : 'right']: `-${this.scrollbarWidth}px`, | ||
width: `calc(100% + ${this.scrollbarWidth}px)` | ||
@@ -97,8 +97,3 @@ } | ||
created () { | ||
this.instances = { | ||
header: null, | ||
right: null, | ||
footer: null, | ||
left: null | ||
} | ||
this.instances = {} | ||
}, | ||
@@ -117,3 +112,3 @@ | ||
return this.container | ||
return this.container === true | ||
? h('div', { | ||
@@ -120,0 +115,0 @@ staticClass: 'q-layout-container relative-position overflow-hidden' |
@@ -25,4 +25,4 @@ import Vue from 'vue' | ||
const offset = | ||
(this.layout.header.space ? this.layout.header.size : 0) + | ||
(this.layout.footer.space ? this.layout.footer.size : 0) | ||
(this.layout.header.space === true ? this.layout.header.size : 0) + | ||
(this.layout.footer.space === true ? this.layout.footer.size : 0) | ||
@@ -33,5 +33,5 @@ if (typeof this.styleFn === 'function') { | ||
const minHeight = this.layout.container | ||
const minHeight = this.layout.container === true | ||
? (this.layout.containerHeight - offset) + 'px' | ||
: (offset ? `calc(100vh - ${offset}px)` : `100vh`) | ||
: (offset !== 0 ? `calc(100vh - ${offset}px)` : `100vh`) | ||
@@ -42,3 +42,3 @@ return { minHeight } | ||
classes () { | ||
if (this.padding) { | ||
if (this.padding === true) { | ||
return 'q-layout-padding' | ||
@@ -45,0 +45,0 @@ } |
@@ -24,13 +24,13 @@ import Vue from 'vue' | ||
if (this.layout.header.space) { | ||
if (this.layout.header.space === true) { | ||
css.paddingTop = `${this.layout.header.size}px` | ||
} | ||
if (this.layout.right.space) { | ||
css[`padding${this.$q.lang.rtl ? 'Left' : 'Right'}`] = `${this.layout.right.size}px` | ||
if (this.layout.right.space === true) { | ||
css[`padding${this.$q.lang.rtl === true ? 'Left' : 'Right'}`] = `${this.layout.right.size}px` | ||
} | ||
if (this.layout.footer.space) { | ||
if (this.layout.footer.space === true) { | ||
css.paddingBottom = `${this.layout.footer.size}px` | ||
} | ||
if (this.layout.left.space) { | ||
css[`padding${this.$q.lang.rtl ? 'Right' : 'Left'}`] = `${this.layout.left.size}px` | ||
if (this.layout.left.space === true) { | ||
css[`padding${this.$q.lang.rtl === true ? 'Right' : 'Left'}`] = `${this.layout.left.size}px` | ||
} | ||
@@ -37,0 +37,0 @@ |
@@ -70,15 +70,15 @@ import Vue from 'vue' | ||
attach = this.attach, | ||
dir = this.$q.lang.rtl ? -1 : 1 | ||
dir = this.$q.lang.rtl === true ? -1 : 1 | ||
if (attach.top && this.top) { | ||
if (attach.top === true && this.top !== 0) { | ||
posY = `${this.top}px` | ||
} | ||
else if (attach.bottom && this.bottom) { | ||
else if (attach.bottom === true && this.bottom !== 0) { | ||
posY = `${-this.bottom}px` | ||
} | ||
if (attach.left && this.left) { | ||
if (attach.left === true && this.left !== 0) { | ||
posX = `${dir * this.left}px` | ||
} | ||
else if (attach.right && this.right) { | ||
else if (attach.right === true && this.right !== 0) { | ||
posX = `${-dir * this.right}px` | ||
@@ -93,15 +93,15 @@ } | ||
if (attach.vertical) { | ||
if (this.left) { | ||
css[this.$q.lang.rtl ? 'right' : 'left'] = `${this.left}px` | ||
if (attach.vertical === true) { | ||
if (this.left !== 0) { | ||
css[this.$q.lang.rtl === true ? 'right' : 'left'] = `${this.left}px` | ||
} | ||
if (this.right) { | ||
css[this.$q.lang.rtl ? 'left' : 'right'] = `${this.right}px` | ||
if (this.right !== 0) { | ||
css[this.$q.lang.rtl === true ? 'left' : 'right'] = `${this.right}px` | ||
} | ||
} | ||
else if (attach.horizontal) { | ||
if (this.top) { | ||
else if (attach.horizontal === true) { | ||
if (this.top !== 0) { | ||
css.top = `${this.top}px` | ||
} | ||
if (this.bottom) { | ||
if (this.bottom !== 0) { | ||
css.bottom = `${this.bottom}px` | ||
@@ -115,3 +115,3 @@ } | ||
classes () { | ||
return `fixed-${this.position} q-page-sticky--${this.expand ? 'expand' : 'shrink'}` | ||
return `fixed-${this.position} q-page-sticky--${this.expand === true ? 'expand' : 'shrink'}` | ||
} | ||
@@ -118,0 +118,0 @@ }, |
@@ -10,3 +10,3 @@ import Vue from 'vue' | ||
import { getScrollTarget } from '../../utils/scroll.js' | ||
import { position, listenOpts } from '../../utils/event.js' | ||
import { stop, position, listenOpts } from '../../utils/event.js' | ||
import EscapeKey from '../../utils/escape-key.js' | ||
@@ -199,2 +199,11 @@ import { MenuTreeMixin, closeRootMenu } from './menu-tree.js' | ||
__render (h) { | ||
const on = { | ||
...this.$listeners, | ||
input: stop | ||
} | ||
if (this.autoClose === true) { | ||
on.click = this.__onAutoClose | ||
} | ||
return h('transition', { | ||
@@ -208,6 +217,3 @@ props: { name: this.transition } | ||
attrs: this.$attrs, | ||
on: this.autoClose === true ? { | ||
...this.$listeners, | ||
click: this.__onAutoClose | ||
} : this.$listeners, | ||
on, | ||
directives: this.persistent !== true ? [{ | ||
@@ -214,0 +220,0 @@ name: 'click-outside', |
@@ -82,7 +82,7 @@ import Vue from 'vue' | ||
this.size = { width: -1, height: -1 } | ||
if (isSSR) { return } | ||
if (isSSR === true) { return } | ||
this.hasObserver = typeof ResizeObserver !== 'undefined' | ||
if (!this.hasObserver) { | ||
if (this.hasObserver !== true) { | ||
this.style = `${this.$q.platform.is.ie ? 'visibility:hidden;' : ''}display:block;position:absolute;top:0;left:0;right:0;bottom:0;height:100%;width:100%;overflow:hidden;pointer-events:none;z-index:-1;` | ||
@@ -93,3 +93,3 @@ } | ||
mounted () { | ||
if (this.hasObserver) { | ||
if (this.hasObserver === true) { | ||
this.observer = new ResizeObserver(this.trigger) | ||
@@ -110,3 +110,3 @@ this.observer.observe(this.$el.parentNode) | ||
if (this.hasObserver) { | ||
if (this.hasObserver === true) { | ||
this.$el.parentNode && this.observer.unobserve(this.$el.parentNode) | ||
@@ -113,0 +113,0 @@ return |
import Vue from 'vue' | ||
import { height, offset } from '../../utils/dom.js' | ||
import debounce from '../../utils/debounce.js' | ||
import frameDebounce from '../../utils/frame-debounce.js' | ||
import { getScrollTarget } from '../../utils/scroll.js' | ||
import { listenOpts } from '../../utils/event.js' | ||
import slot from '../../utils/slot.js' | ||
@@ -47,8 +45,6 @@ | ||
__onResize () { | ||
if (!this.scrollTarget) { | ||
return | ||
if (this.scrollTarget) { | ||
this.mediaHeight = this.media.naturalHeight || this.media.videoHeight || height(this.media) | ||
this.__updatePos() | ||
} | ||
this.mediaHeight = this.media.naturalHeight || this.media.videoHeight || height(this.media) | ||
this.__updatePos() | ||
}, | ||
@@ -81,3 +77,4 @@ | ||
__setPos (offset) { | ||
this.media.style.transform = `translate3D(-50%,${offset}px, 0)` | ||
// apply it immediately without any delay | ||
this.media.style.transform = `translate3D(-50%,${Math.round(offset)}px, 0)` | ||
} | ||
@@ -120,3 +117,3 @@ }, | ||
this.__update = frameDebounce(this.__update) | ||
this.resizeHandler = debounce(this.__onResize, 50) | ||
this.resizeHandler = frameDebounce(this.__onResize) | ||
@@ -140,4 +137,4 @@ this.media = this.$scopedSlots.media !== void 0 | ||
this.scrollTarget.removeEventListener('scroll', this.__updatePos, listenOpts.passive) | ||
this.media.onload = this.media.onloadstart = null | ||
this.media.onload = this.media.onloadstart = this.media.loadedmetadata = null | ||
} | ||
}) |
@@ -87,7 +87,9 @@ import Vue from 'vue' | ||
}, [ | ||
this.disable ? null : h('input', { | ||
staticClass: 'q-radio__native q-ma-none q-pa-none invisible', | ||
attrs: { type: 'checkbox' }, | ||
on: { change: this.set } | ||
}), | ||
this.disable !== true | ||
? h('input', { | ||
staticClass: 'q-radio__native q-ma-none q-pa-none invisible', | ||
attrs: { type: 'checkbox' }, | ||
on: { change: this.set } | ||
}) | ||
: null, | ||
@@ -94,0 +96,0 @@ h('div', { |
@@ -6,2 +6,3 @@ import Vue from 'vue' | ||
import slot from '../../utils/slot.js' | ||
import { stop } from '../../utils/event.js' | ||
@@ -131,3 +132,4 @@ export default Vue.extend({ | ||
style: this.beforeStyle, | ||
class: this.beforeClass | ||
class: this.beforeClass, | ||
on: { input: stop } | ||
}, slot(this, 'before')), | ||
@@ -161,3 +163,4 @@ | ||
style: this.afterStyle, | ||
class: this.afterClass | ||
class: this.afterClass, | ||
on: { input: stop } | ||
}, slot(this, 'after')) | ||
@@ -164,0 +167,0 @@ ].concat(slot(this, 'default'))) |
@@ -36,2 +36,4 @@ import Vue from 'vue' | ||
shrink: Boolean, | ||
activeColor: String, | ||
@@ -105,5 +107,5 @@ activeBgColor: String, | ||
alignClass () { | ||
const align = this.scrollable | ||
const align = this.scrollable === true | ||
? 'left' | ||
: (this.justify ? 'justify' : this.align) | ||
: (this.justify === true ? 'justify' : this.align) | ||
@@ -114,3 +116,5 @@ return `q-tabs__content--align-${align}` | ||
classes () { | ||
return `q-tabs--${this.scrollable ? '' : 'not-'}scrollable${this.dense ? ' q-tabs--dense' : ''}` | ||
return `q-tabs--${this.scrollable === true ? '' : 'not-'}scrollable` + | ||
(this.dense === true ? ' q-tabs--dense' : '') + | ||
(this.shrink === true ? ' col-shrink' : '') | ||
} | ||
@@ -165,3 +169,3 @@ }, | ||
scroll && this.$nextTick(() => this.__updateArrows()) | ||
scroll === true && this.$nextTick(() => this.__updateArrows()) | ||
@@ -168,0 +172,0 @@ const justify = width < parseInt(this.breakpoint, 10) |
@@ -55,2 +55,7 @@ { | ||
"shrink": { | ||
"type": "Boolean", | ||
"desc": "By default, QTabs is set to grow to the available space; However, you can reverse that with this prop; Useful (and required) when placing the component in a QToolbar" | ||
}, | ||
"top-indicator": { | ||
@@ -57,0 +62,0 @@ "type": "Boolean", |
@@ -58,7 +58,9 @@ import Vue from 'vue' | ||
}, [ | ||
this.disable ? null : h('input', { | ||
staticClass: 'q-toggle__native absolute q-ma-none q-pa-none invisible', | ||
attrs: { type: 'toggle' }, | ||
on: { change: this.toggle } | ||
}), | ||
this.disable !== true | ||
? h('input', { | ||
staticClass: 'q-toggle__native absolute q-ma-none q-pa-none invisible', | ||
attrs: { type: 'toggle' }, | ||
on: { change: this.toggle } | ||
}) | ||
: null, | ||
@@ -65,0 +67,0 @@ h('div', { staticClass: 'q-toggle__track' }), |
@@ -15,3 +15,3 @@ import Vue from 'vue' | ||
staticClass: 'q-toolbar__title ellipsis', | ||
class: this.shrink ? 'col-auto' : null, | ||
class: this.shrink === true ? 'col-shrink' : null, | ||
on: this.$listeners | ||
@@ -18,0 +18,0 @@ }, slot(this, 'default')) |
@@ -94,5 +94,21 @@ { | ||
"factory": { | ||
"type": "Function", | ||
"desc": "Function which should return an Object or a Promise resolving with an Object", | ||
"params": { | ||
"files": { | ||
"type": "Array", | ||
"desc": "Uploaded files", | ||
"__exemption": [ "examples" ] | ||
} | ||
}, | ||
"returns": { | ||
"type": [ "Object", "Promise" ], | ||
"desc": "Optional configuration for the upload process; You can override QUploader props in this Object (url, method, headers, fields, fieldName, withCredentials, sendRaw); Props of these Object can also be Functions with the form of (file[s]) => value", | ||
"__exemption": [ "examples" ] | ||
} | ||
}, | ||
"url": { | ||
"type": [ "String", "Function" ], | ||
"required": true, | ||
"desc": "URL or path to the server which handles the upload. Takes String or factory function, which returns String. Function is called right before upload", | ||
@@ -169,9 +185,11 @@ "examples": ["https://example.com/path", "files => `https://example.com?count=${files.length}`"] | ||
"with-credentials": { | ||
"type": "Boolean", | ||
"desc": "Sets withCredentials to true on the XHR that manages the upload" | ||
"type": [ "Boolean", "Function" ], | ||
"desc": "Sets withCredentials to true on the XHR that manages the upload; Takes boolean or factory function for Boolean; Function is called right before upload", | ||
"examples": [ "with-credentials", ":with-credentials=\"files => ...\"" ] | ||
}, | ||
"send-raw": { | ||
"type": "Boolean", | ||
"desc": "Send raw files without wrapping into a Form()" | ||
"type": [ "Boolean", "Function" ], | ||
"desc": "Send raw files without wrapping into a Form(); Takes boolean or factory function for Boolean; Function is called right before upload", | ||
"examples": [ "send-raw", ":send-raw=\"files => ...\"" ] | ||
}, | ||
@@ -199,3 +217,3 @@ | ||
"events": { | ||
"add": { | ||
"added": { | ||
"desc": "Emitted when files are added into the list", | ||
@@ -211,2 +229,13 @@ "params": { | ||
"removed": { | ||
"desc": "Emitted when files are removed from the list", | ||
"params": { | ||
"files": { | ||
"type": "Array", | ||
"desc": "Array of files that were removed", | ||
"__exemption": [ "examples" ] | ||
} | ||
} | ||
}, | ||
"uploaded": { | ||
@@ -258,2 +287,18 @@ "desc": "Emitted when file or batch of files is uploaded", | ||
} | ||
}, | ||
"factory-failed": { | ||
"desc": "Emitted when factory function is supplied with a Promise which is rejected", | ||
"params": { | ||
"err": { | ||
"type": "Object", | ||
"desc": "Error Object which is the Promise rejection reason", | ||
"__exemption": [ "examples" ] | ||
}, | ||
"files": { | ||
"type": "Array", | ||
"desc": "Files which were to get uploaded", | ||
"__exemption": [ "examples" ] | ||
} | ||
} | ||
} | ||
@@ -260,0 +305,0 @@ }, |
@@ -126,10 +126,16 @@ import QBtn from '../btn/QBtn.js' | ||
if (!this.disable) { | ||
const removedFiles = [] | ||
this.files.forEach(file => { | ||
if (file.__status === 'idle' || file.__status === 'failed') { | ||
this.uploadSize -= file.size | ||
removedFiles.push(file) | ||
} | ||
}) | ||
this.files = this.files.filter(f => f.__status !== 'idle' && f.__status !== 'failed') | ||
this.queuedFiles = [] | ||
if (removedFiles.length > 0) { | ||
this.files = this.files.filter(f => f.__status !== 'idle' && f.__status !== 'failed') | ||
this.queuedFiles = [] | ||
this.$emit('removed', removedFiles) | ||
} | ||
} | ||
@@ -153,2 +159,3 @@ }, | ||
this.queuedFiles = this.queuedFiles.filter(f => f.name !== file.name) | ||
this.__emit('removed', [ file ]) | ||
}, | ||
@@ -266,3 +273,3 @@ | ||
this.queuedFiles = this.queuedFiles.concat(files) | ||
this.__emit('add', files) | ||
this.__emit('added', files) | ||
this.autoUpload === true && this.upload() | ||
@@ -403,2 +410,3 @@ }) | ||
beforeDestroy () { | ||
this.isDestroyed = true | ||
this.isUploading && this.abort() | ||
@@ -453,5 +461,11 @@ }, | ||
} | ||
}) : null | ||
}) : null, | ||
this.isBusy === true ? h('div', { | ||
staticClass: 'q-uploader__overlay absolute-full flex flex-center' | ||
}, [ | ||
h(QSpinner) | ||
]) : null | ||
]) | ||
} | ||
} |
@@ -9,6 +9,3 @@ function getFn (prop) { | ||
props: { | ||
url: { | ||
type: [Function, String], | ||
required: true | ||
}, | ||
url: [Function, String], | ||
method: { | ||
@@ -24,5 +21,7 @@ type: [Function, String], | ||
fields: [Function, Array], | ||
withCredentials: Boolean, | ||
sendRaw: Boolean, | ||
batch: [Function, Boolean] | ||
withCredentials: [Function, Boolean], | ||
sendRaw: [Function, Boolean], | ||
batch: [Function, Boolean], | ||
factory: Function | ||
}, | ||
@@ -32,3 +31,4 @@ | ||
return { | ||
xhrs: [] | ||
xhrs: [], | ||
isBusy: false | ||
} | ||
@@ -45,2 +45,4 @@ }, | ||
fieldName: getFn(this.fieldName), | ||
withCredentials: getFn(this.withCredentials), | ||
sendRaw: getFn(this.sendRaw), | ||
batch: getFn(this.batch) | ||
@@ -69,20 +71,55 @@ } | ||
if (this.url === void 0) { | ||
console.error('q-uploader: no xhr-url prop specified') | ||
const queue = this.queuedFiles.slice(0) | ||
this.queuedFiles = [] | ||
if (this.xhrProps.batch(queue)) { | ||
this.__runFactory('__uploadBatch', queue) | ||
} | ||
else { | ||
queue.forEach(file => { | ||
this.__runFactory('__uploadSingleFile', file) | ||
}) | ||
} | ||
}, | ||
__runFactory (method, payload) { | ||
if (typeof this.factory !== 'function') { | ||
this[method](payload, {}) | ||
return | ||
} | ||
if (this.xhrProps.batch(this.queuedFiles)) { | ||
this.__uploadBatch(this.queuedFiles) | ||
const res = this.factory(payload) | ||
if (!res) { | ||
this.$emit('factory-fail') | ||
} | ||
else { | ||
this.queuedFiles.forEach(file => { | ||
this.__uploadSingleFile(file) | ||
else if (typeof res.catch === 'function' && typeof res.then === 'function') { | ||
this.isBusy = true | ||
res.then(factory => { | ||
if (this.isDestroyed !== true) { | ||
this.isBusy = false | ||
this[method](payload, factory) | ||
} | ||
}).catch(err => { | ||
if (this.isDestroyed !== true) { | ||
this.isBusy = false | ||
const files = Array.isArray(payload) | ||
? payload | ||
: [ payload ] | ||
this.queuedFiles = this.queuedFiles.concat(files) | ||
files.forEach(f => { this.__updateFile(f, 'failed') }) | ||
this.$emit('factory-failed', err, files) | ||
} | ||
}) | ||
} | ||
this.queuedFiles = [] | ||
else { | ||
this[method](payload, res || {}) | ||
} | ||
}, | ||
__uploadBatch (files) { | ||
__uploadBatch (files, factory) { | ||
const | ||
@@ -92,9 +129,20 @@ form = new FormData(), | ||
if (this.fields !== void 0) { | ||
const fields = this.xhrProps.fields(files) | ||
fields !== void 0 && fields.forEach(field => { | ||
form.append(field.name, field.value) | ||
}) | ||
const getProp = (name, arg) => { | ||
return factory[name] !== void 0 | ||
? getFn(factory[name])(arg) | ||
: this.xhrProps[name](arg) | ||
} | ||
const url = getProp('url', files) | ||
if (!url) { | ||
console.error('q-uploader: invalid or no URL specified') | ||
return | ||
} | ||
const fields = getProp('fields', files) | ||
fields !== void 0 && fields.forEach(field => { | ||
form.append(field.name, field.value) | ||
}) | ||
let | ||
@@ -156,21 +204,21 @@ uploadIndex = 0, | ||
xhr.open( | ||
this.xhrProps.method(files), | ||
this.xhrProps.url(files) | ||
getProp('method', files), | ||
url | ||
) | ||
if (this.withCredentials) { | ||
if (getProp('withCredentials', files) === true) { | ||
xhr.withCredentials = true | ||
} | ||
if (this.headers !== void 0) { | ||
const headers = this.xhrProps.headers(files) | ||
headers !== void 0 && headers.forEach(head => { | ||
xhr.setRequestHeader(head.name, head.value) | ||
}) | ||
} | ||
const headers = getProp('headers', files) | ||
headers !== void 0 && headers.forEach(head => { | ||
xhr.setRequestHeader(head.name, head.value) | ||
}) | ||
const sendRaw = getProp('sendRaw', files) | ||
files.forEach(file => { | ||
this.__updateFile(file, 'uploading', 0) | ||
if (this.sendRaw !== true) { | ||
form.append(this.xhrProps.fieldName(file), file) | ||
if (sendRaw !== true) { | ||
form.append(getProp('fieldName', file), file) | ||
} | ||
@@ -185,3 +233,3 @@ file.xhr = xhr | ||
if (this.sendRaw === true) { | ||
if (sendRaw === true) { | ||
xhr.send(files) | ||
@@ -194,3 +242,3 @@ } | ||
__uploadSingleFile (file) { | ||
__uploadSingleFile (file, factory) { | ||
const | ||
@@ -201,9 +249,20 @@ form = new FormData(), | ||
if (this.fields !== void 0) { | ||
const fields = this.xhrProps.fields(files) | ||
fields !== void 0 && fields.forEach(field => { | ||
form.append(field.name, field.value) | ||
}) | ||
const getProp = (name, arg) => { | ||
return factory[name] !== void 0 | ||
? getFn(factory[name])(arg) | ||
: this.xhrProps[name](arg) | ||
} | ||
const url = getProp('url', file) | ||
if (url === void 0) { | ||
console.error('q-uploader: no URL prop specified') | ||
return | ||
} | ||
const fields = getProp('fields', files) | ||
fields !== void 0 && fields.forEach(field => { | ||
form.append(field.name, field.value) | ||
}) | ||
xhr.upload.addEventListener('progress', e => { | ||
@@ -241,16 +300,14 @@ if (file.__status !== 'failed') { | ||
xhr.open( | ||
this.xhrProps.method(files), | ||
this.xhrProps.url(files) | ||
getProp('method', files), | ||
url | ||
) | ||
if (this.withCredentials) { | ||
if (getProp('withCredentials', files) === true) { | ||
xhr.withCredentials = true | ||
} | ||
if (this.headers !== void 0) { | ||
const headers = this.xhrProps.headers(files) | ||
headers !== void 0 && headers.forEach(head => { | ||
xhr.setRequestHeader(head.name, head.value) | ||
}) | ||
} | ||
const headers = getProp('headers', files) | ||
headers !== void 0 && headers.forEach(head => { | ||
xhr.setRequestHeader(head.name, head.value) | ||
}) | ||
@@ -262,7 +319,7 @@ this.xhrs.push(xhr) | ||
if (this.sendRaw === true) { | ||
if (getProp('sendRaw', file) === true) { | ||
xhr.send(file) | ||
} | ||
else { | ||
form.append(this.xhrProps.fieldName(file), file) | ||
form.append(getProp('fieldName', file), file) | ||
xhr.send(form) | ||
@@ -269,0 +326,0 @@ } |
@@ -10,2 +10,3 @@ // using it to manage SSR rendering with best performance | ||
}, | ||
mounted () { | ||
@@ -12,0 +13,0 @@ this.canRender === false && (this.canRender = true) |
@@ -8,3 +8,2 @@ { | ||
"create": { | ||
"desc": "Creates an ad-hoc Dialog; Same as calling $q.dialog(...)", | ||
"params": { | ||
@@ -14,6 +13,162 @@ "opts": { | ||
"definition": { | ||
"...props": { | ||
"type": "Any", | ||
"desc": "Other QDialog properties", | ||
"__exemption": [ "examples" ] | ||
"title": { | ||
"type": "String", | ||
"desc": "A text for the heading title of the dialog", | ||
"examples": [ "Continue?" ] | ||
}, | ||
"message": { | ||
"type": "String", | ||
"desc": "A text with more information about what needs to be input, selected or confirmed.", | ||
"examples": [ "Are you certain you want to continue?" ] | ||
}, | ||
"position": { | ||
"type": "String", | ||
"desc": "Position of the Dialog on screen. Standard is centered.", | ||
"values": [ "top", "right", "bottom", "left", "standard" ], | ||
"default": "standard" | ||
}, | ||
"options": { | ||
"type": "Object", | ||
"desc": "The options object for creating the Dialog's content", | ||
"definition": { | ||
"prompt": { | ||
"type": "Object", | ||
"desc": "An object definition of the input field for the prompting question.", | ||
"examples": [ "prompt: { model: this.promptVal, type: 'number' }" ], | ||
"definition": { | ||
"model": { | ||
"type": [ "Array", "String" ], | ||
"desc": "The value of the input: Array for Selection, String for prompt", | ||
"examples": [ "this.dialogVal" ] | ||
}, | ||
"type": { | ||
"type": "String", | ||
"desc": "Optional property to determine the input field type. It can be either a text or number input field type", | ||
"default": "text", | ||
"examples": [ "number" ] | ||
} | ||
} | ||
}, | ||
"options": { | ||
"type": "Object", | ||
"desc": "An object definition for creating the selection form content", | ||
"examples": [ "{ model: this.dialogSelection, type: 'radio', items: [...listOfItems] }" ], | ||
"definition": { | ||
"type": { | ||
"type": "String", | ||
"desc": "The type of selection", | ||
"values": [ "radio", "checkbox", "toggle" ] | ||
}, | ||
"model": { | ||
"type": "Array", | ||
"desc": "The value of the selection", | ||
"examples": [ "[]" ] | ||
}, | ||
"items": { | ||
"type": "Array", | ||
"desc": "The list of options to interact with; Equivalent to options prop of the QOptionsGroup component", | ||
"examples": [ | ||
"[ { label: 'Option 1', value: 'op1' }, { label: 'Option 2', value: 'op2' }, { label: 'Option 3', value: 'op3' } ]" | ||
] | ||
} | ||
} | ||
} | ||
} | ||
}, | ||
"ok": { | ||
"type": [ "String", "Object", "Boolean" ], | ||
"desc": "Props for an 'OK' button", | ||
"definition": { | ||
"...props": { | ||
"type": "Any", | ||
"desc": "See QBtn for available props", | ||
"__exemption": [ "examples" ] | ||
} | ||
} | ||
}, | ||
"cancel": { | ||
"type": [ "String", "Object", "Boolean" ], | ||
"desc": "Props for a 'CANCEL' button", | ||
"definition": { | ||
"...props": { | ||
"type": "Any", | ||
"desc": "See QBtn for available props", | ||
"__exemption": [ "examples" ] | ||
} | ||
} | ||
}, | ||
"width": { | ||
"type": "String", | ||
"desc": "The width of the dialog (including CSS unit)", | ||
"default": "400px", | ||
"examples": [ "480px", "25em", "60%", "auto" ] | ||
}, | ||
"stackButtons": { | ||
"type": "Boolean", | ||
"desc": "Makes buttons be stacked instead of vertically aligned" | ||
}, | ||
"color": { | ||
"extends": "color" | ||
}, | ||
"persistent": { | ||
"type": "Boolean", | ||
"desc": "User cannot dismiss Dialog if clicking outside of it or hitting ESC key; Also, an app route change won't dismiss it" | ||
}, | ||
"no-esc-dismiss": { | ||
"type": "Boolean", | ||
"desc": "User cannot dismiss Dialog by hitting ESC key; No need to set it if 'persistent' prop is also set" | ||
}, | ||
"no-backdrop-dismiss": { | ||
"type": "Boolean", | ||
"desc": "User cannot dismiss Dialog by clicking outside of it; No need to set it if 'persistent' prop is also set" | ||
}, | ||
"no-route-dismiss": { | ||
"type": "Boolean", | ||
"desc": "Changing route app won't dismiss Dialog; No need to set it if 'persistent' prop is also set" | ||
}, | ||
"seamless": { | ||
"type": "Boolean", | ||
"desc": "Put Dialog into seamless mode; Does not use a backdrop so user is able to interact with the rest of the page too" | ||
}, | ||
"maximized": { | ||
"type": "Boolean", | ||
"desc": "Put Dialog into maximized mode" | ||
}, | ||
"full-width": { | ||
"type": "Boolean", | ||
"desc": "Dialog will try to render with same width as the window" | ||
}, | ||
"full-height": { | ||
"type": "Boolean", | ||
"desc": "Dialog will try to render with same height as the window" | ||
}, | ||
"transition-show": { | ||
"extends": "transition", | ||
"default": "scale" | ||
}, | ||
"transition-hide": { | ||
"extends": "transition", | ||
"default": "scale" | ||
} | ||
@@ -20,0 +175,0 @@ } |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
5171915
113811