quasar 1.20.1 → 1.20.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api/QBtnDropdown.json +9 -0
- package/dist/api/QChip.json +9 -0
- package/dist/api/QCircularProgress.json +6 -0
- package/dist/api/QExpansionItem.json +59 -0
- package/dist/api/QTable.json +2 -2
- package/dist/babel-transforms/imports.js +1 -0
- package/dist/icon-set/bootstrap-icons.umd.min.js +1 -1
- package/dist/icon-set/eva-icons.umd.min.js +1 -1
- package/dist/icon-set/fontawesome-v5-pro.umd.min.js +1 -1
- package/dist/icon-set/fontawesome-v5.umd.min.js +1 -1
- package/dist/icon-set/fontawesome-v6-pro.umd.min.js +1 -1
- package/dist/icon-set/fontawesome-v6.umd.min.js +1 -1
- package/dist/icon-set/ionicons-v4.umd.min.js +1 -1
- package/dist/icon-set/line-awesome.umd.min.js +1 -1
- package/dist/icon-set/material-icons-outlined.umd.min.js +1 -1
- package/dist/icon-set/material-icons-round.umd.min.js +1 -1
- package/dist/icon-set/material-icons-sharp.umd.min.js +1 -1
- package/dist/icon-set/material-icons.umd.min.js +1 -1
- package/dist/icon-set/material-symbols-outlined.umd.min.js +1 -1
- package/dist/icon-set/material-symbols-rounded.umd.min.js +1 -1
- package/dist/icon-set/material-symbols-sharp.umd.min.js +1 -1
- package/dist/icon-set/mdi-v3.umd.min.js +1 -1
- package/dist/icon-set/mdi-v4.umd.min.js +1 -1
- package/dist/icon-set/mdi-v5.umd.min.js +1 -1
- package/dist/icon-set/mdi-v6.umd.min.js +1 -1
- package/dist/icon-set/svg-bootstrap-icons.umd.min.js +1 -1
- package/dist/icon-set/svg-eva-icons.umd.min.js +1 -1
- package/dist/icon-set/svg-fontawesome-v5.umd.min.js +1 -1
- package/dist/icon-set/svg-fontawesome-v6.umd.min.js +1 -1
- package/dist/icon-set/svg-ionicons-v4.umd.min.js +1 -1
- package/dist/icon-set/svg-ionicons-v5.umd.min.js +1 -1
- package/dist/icon-set/svg-ionicons-v6.umd.min.js +1 -1
- package/dist/icon-set/svg-line-awesome.umd.min.js +1 -1
- package/dist/icon-set/svg-material-icons-outlined.umd.min.js +1 -1
- package/dist/icon-set/svg-material-icons-round.umd.min.js +1 -1
- package/dist/icon-set/svg-material-icons-sharp.umd.min.js +1 -1
- package/dist/icon-set/svg-material-icons.umd.min.js +1 -1
- package/dist/icon-set/svg-material-symbols-outlined.umd.min.js +1 -1
- package/dist/icon-set/svg-material-symbols-rounded.umd.min.js +1 -1
- package/dist/icon-set/svg-material-symbols-sharp.umd.min.js +1 -1
- package/dist/icon-set/svg-mdi-v4.umd.min.js +1 -1
- package/dist/icon-set/svg-mdi-v5.umd.min.js +1 -1
- package/dist/icon-set/svg-mdi-v6.umd.min.js +1 -1
- package/dist/icon-set/svg-themify.umd.min.js +1 -1
- package/dist/icon-set/themify.umd.min.js +1 -1
- package/dist/lang/ar.umd.min.js +2 -2
- package/dist/lang/az-latn.umd.min.js +2 -2
- package/dist/lang/bg.umd.min.js +2 -2
- package/dist/lang/ca.umd.min.js +2 -2
- package/dist/lang/cs.umd.min.js +2 -2
- package/dist/lang/da.umd.min.js +2 -2
- package/dist/lang/de.umd.min.js +2 -2
- package/dist/lang/el.umd.min.js +2 -2
- package/dist/lang/en-gb.umd.min.js +2 -2
- package/dist/lang/en-us.umd.min.js +2 -2
- package/dist/lang/eo.umd.min.js +2 -2
- package/dist/lang/es.umd.min.js +2 -2
- package/dist/lang/et.umd.min.js +2 -2
- package/dist/lang/eu.umd.min.js +2 -2
- package/dist/lang/fa-ir.umd.min.js +2 -2
- package/dist/lang/fa.umd.min.js +2 -2
- package/dist/lang/fi.umd.min.js +2 -2
- package/dist/lang/fr.umd.min.js +2 -2
- package/dist/lang/gn.umd.min.js +2 -2
- package/dist/lang/he.umd.min.js +2 -2
- package/dist/lang/hr.umd.min.js +2 -2
- package/dist/lang/hu.umd.min.js +2 -2
- package/dist/lang/id.umd.min.js +2 -2
- package/dist/lang/is.umd.min.js +2 -2
- package/dist/lang/it.umd.min.js +2 -2
- package/dist/lang/ja.umd.min.js +2 -2
- package/dist/lang/km.umd.min.js +2 -2
- package/dist/lang/ko-kr.umd.min.js +2 -2
- package/dist/lang/kur-ckb.umd.min.js +2 -2
- package/dist/lang/kz.umd.min.js +2 -2
- package/dist/lang/lu.umd.min.js +2 -2
- package/dist/lang/lv.umd.min.js +2 -2
- package/dist/lang/ml.umd.min.js +2 -2
- package/dist/lang/mm.umd.min.js +2 -2
- package/dist/lang/ms.umd.min.js +2 -2
- package/dist/lang/my.umd.min.js +2 -2
- package/dist/lang/nb-no.umd.min.js +2 -2
- package/dist/lang/nl.umd.min.js +2 -2
- package/dist/lang/pl.umd.min.js +2 -2
- package/dist/lang/pt-br.umd.min.js +2 -2
- package/dist/lang/pt.umd.min.js +2 -2
- package/dist/lang/ro.umd.min.js +2 -2
- package/dist/lang/ru.umd.min.js +2 -2
- package/dist/lang/sk.umd.min.js +2 -2
- package/dist/lang/sl.umd.min.js +2 -2
- package/dist/lang/sm.umd.min.js +2 -2
- package/dist/lang/sr.umd.min.js +2 -2
- package/dist/lang/sv.umd.min.js +2 -2
- package/dist/lang/ta.umd.min.js +2 -2
- package/dist/lang/th.umd.min.js +2 -2
- package/dist/lang/tr.umd.min.js +2 -2
- package/dist/lang/ug.umd.min.js +2 -2
- package/dist/lang/uk.umd.min.js +2 -2
- package/dist/lang/uz-Cyrl.umd.min.js +2 -2
- package/dist/lang/uz-Latn.umd.min.js +2 -2
- package/dist/lang/vi.umd.min.js +2 -2
- package/dist/lang/zh-hans.umd.min.js +2 -2
- package/dist/lang/zh-hant.umd.min.js +2 -2
- package/dist/quasar.addon.css +1 -1
- package/dist/quasar.addon.rtl.css +1 -1
- package/dist/quasar.common.js +2 -2
- package/dist/quasar.css +1 -1
- package/dist/quasar.esm.js +2 -2
- package/dist/quasar.ie.polyfills.js +1 -1
- package/dist/quasar.ie.polyfills.umd.min.js +1 -1
- package/dist/quasar.rtl.css +1 -1
- package/dist/quasar.sass +1 -1
- package/dist/quasar.styl +1 -1
- package/dist/quasar.umd.js +360 -160
- package/dist/quasar.umd.min.js +2 -2
- package/dist/quasar.umd.modern.js +349 -153
- package/dist/quasar.umd.modern.min.js +2 -2
- package/dist/types/index.d.ts +21 -1
- package/dist/types/utils/is.d.ts +67 -0
- package/dist/types/utils/run-sequential-promises.d.ts +119 -0
- package/dist/types/utils.d.ts +2 -0
- package/dist/vetur/quasar-attributes.json +21 -1
- package/dist/vetur/quasar-tags.json +6 -1
- package/dist/web-types/web-types.json +73 -2
- package/lang/ar.js +3 -1
- package/lang/az-latn.js +3 -1
- package/lang/bg.js +3 -1
- package/lang/ca.js +3 -1
- package/lang/cs.js +3 -1
- package/lang/da.js +3 -1
- package/lang/de.js +3 -1
- package/lang/el.js +3 -1
- package/lang/en-gb.js +3 -1
- package/lang/en-us.js +3 -1
- package/lang/eo.js +3 -1
- package/lang/es.js +3 -1
- package/lang/et.js +3 -1
- package/lang/eu.js +3 -1
- package/lang/fa-ir.js +3 -1
- package/lang/fa.js +3 -1
- package/lang/fi.js +3 -1
- package/lang/fr.js +3 -1
- package/lang/gn.js +3 -1
- package/lang/he.js +3 -1
- package/lang/hr.js +3 -1
- package/lang/hu.js +3 -1
- package/lang/id.js +3 -1
- package/lang/is.js +3 -1
- package/lang/it.js +3 -1
- package/lang/ja.js +3 -1
- package/lang/km.js +3 -1
- package/lang/ko-kr.js +3 -1
- package/lang/kur-ckb.js +3 -1
- package/lang/kz.js +3 -1
- package/lang/lu.js +3 -1
- package/lang/lv.js +3 -1
- package/lang/ml.js +3 -1
- package/lang/mm.js +3 -1
- package/lang/ms.js +3 -1
- package/lang/my.js +3 -1
- package/lang/nb-no.js +3 -1
- package/lang/nl.js +3 -1
- package/lang/pl.js +3 -1
- package/lang/pt-br.js +3 -1
- package/lang/pt.js +3 -1
- package/lang/ro.js +3 -1
- package/lang/ru.js +3 -1
- package/lang/sk.js +3 -1
- package/lang/sl.js +3 -1
- package/lang/sm.js +3 -1
- package/lang/sr.js +3 -1
- package/lang/sv.js +3 -1
- package/lang/ta.js +3 -1
- package/lang/th.js +3 -1
- package/lang/tr.js +3 -1
- package/lang/ug.js +3 -1
- package/lang/uk.js +3 -1
- package/lang/uz-Cyrl.js +3 -1
- package/lang/uz-Latn.js +3 -1
- package/lang/vi.js +3 -1
- package/lang/zh-hans.js +3 -1
- package/lang/zh-hant.js +3 -1
- package/package.json +1 -1
- package/src/components/btn-dropdown/QBtnDropdown.js +17 -4
- package/src/components/btn-dropdown/QBtnDropdown.json +8 -0
- package/src/components/chip/QChip.js +8 -1
- package/src/components/chip/QChip.json +8 -0
- package/src/components/circular-progress/QCircularProgress.js +5 -2
- package/src/components/circular-progress/QCircularProgress.json +7 -0
- package/src/components/dialog/QDialog.js +7 -1
- package/src/components/expansion-item/QExpansionItem.js +38 -3
- package/src/components/expansion-item/QExpansionItem.json +67 -0
- package/src/components/fab/QFab.js +24 -1
- package/src/components/form/QForm.js +43 -49
- package/src/components/menu/QMenu.js +1 -0
- package/src/components/select/QSelect.js +1 -4
- package/src/components/table/QTable.js +1 -1
- package/src/components/table/QTable.json +2 -2
- package/src/mixins/file.js +1 -1
- package/src/mixins/validate.js +5 -3
- package/src/utils/run-sequential-promises.js +115 -0
- package/src/utils.js +2 -0
package/dist/quasar.umd.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Quasar Framework v1.20.
|
|
2
|
+
* Quasar Framework v1.20.2
|
|
3
3
|
* (c) 2015-present Razvan Stoenescu
|
|
4
4
|
* Released under the MIT License.
|
|
5
5
|
*/
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
|
|
13
13
|
Vue = Vue && Object.prototype.hasOwnProperty.call(Vue, 'default') ? Vue['default'] : Vue;
|
|
14
14
|
|
|
15
|
-
var version = "1.20.
|
|
15
|
+
var version = "1.20.2";
|
|
16
16
|
|
|
17
17
|
/* eslint-disable no-useless-escape */
|
|
18
18
|
|
|
@@ -1004,7 +1004,9 @@
|
|
|
1004
1004
|
create: 'Create',
|
|
1005
1005
|
search: 'Search',
|
|
1006
1006
|
filter: 'Filter',
|
|
1007
|
-
refresh: 'Refresh'
|
|
1007
|
+
refresh: 'Refresh',
|
|
1008
|
+
expand: function (label) { return label ? ("Expand \"" + label + "\"") : 'Expand' },
|
|
1009
|
+
collapse: function (label) { return label ? ("Collapse \"" + label + "\"") : 'Collapse' }
|
|
1008
1010
|
},
|
|
1009
1011
|
date: {
|
|
1010
1012
|
days: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),
|
|
@@ -5487,7 +5489,8 @@
|
|
|
5487
5489
|
},
|
|
5488
5490
|
|
|
5489
5491
|
attrs: function attrs () {
|
|
5490
|
-
return Object.assign({}, {tabindex: -1
|
|
5492
|
+
return Object.assign({}, {tabindex: -1,
|
|
5493
|
+
role: 'menu'},
|
|
5491
5494
|
this.qAttrs)
|
|
5492
5495
|
}
|
|
5493
5496
|
},
|
|
@@ -5722,6 +5725,79 @@
|
|
|
5722
5725
|
}
|
|
5723
5726
|
});
|
|
5724
5727
|
|
|
5728
|
+
/**
|
|
5729
|
+
* Based on the work of https://github.com/jchook/uuid-random
|
|
5730
|
+
*/
|
|
5731
|
+
|
|
5732
|
+
var
|
|
5733
|
+
buf,
|
|
5734
|
+
bufIdx = 0;
|
|
5735
|
+
var hexBytes = new Array(256);
|
|
5736
|
+
|
|
5737
|
+
// Pre-calculate toString(16) for speed
|
|
5738
|
+
for (var i = 0; i < 256; i++) {
|
|
5739
|
+
hexBytes[i] = (i + 0x100).toString(16).substr(1);
|
|
5740
|
+
}
|
|
5741
|
+
|
|
5742
|
+
// Use best available PRNG
|
|
5743
|
+
var randomBytes = (function () {
|
|
5744
|
+
// Node & Browser support
|
|
5745
|
+
var lib = typeof crypto !== 'undefined'
|
|
5746
|
+
? crypto
|
|
5747
|
+
: (
|
|
5748
|
+
typeof window !== 'undefined'
|
|
5749
|
+
? window.msCrypto // IE11
|
|
5750
|
+
: void 0
|
|
5751
|
+
);
|
|
5752
|
+
|
|
5753
|
+
if (lib !== void 0) {
|
|
5754
|
+
if (lib.randomBytes !== void 0) {
|
|
5755
|
+
return lib.randomBytes
|
|
5756
|
+
}
|
|
5757
|
+
if (lib.getRandomValues !== void 0) {
|
|
5758
|
+
return function (n) {
|
|
5759
|
+
var bytes = new Uint8Array(n);
|
|
5760
|
+
lib.getRandomValues(bytes);
|
|
5761
|
+
return bytes
|
|
5762
|
+
}
|
|
5763
|
+
}
|
|
5764
|
+
}
|
|
5765
|
+
|
|
5766
|
+
return function (n) {
|
|
5767
|
+
var r = [];
|
|
5768
|
+
for (var i = n; i > 0; i--) {
|
|
5769
|
+
r.push(Math.floor(Math.random() * 256));
|
|
5770
|
+
}
|
|
5771
|
+
return r
|
|
5772
|
+
}
|
|
5773
|
+
})();
|
|
5774
|
+
|
|
5775
|
+
// Buffer random numbers for speed
|
|
5776
|
+
// Reduce memory usage by decreasing this number (min 16)
|
|
5777
|
+
// or improve speed by increasing this number (try 16384)
|
|
5778
|
+
var BUFFER_SIZE = 4096;
|
|
5779
|
+
|
|
5780
|
+
function uid () {
|
|
5781
|
+
// Buffer some random bytes for speed
|
|
5782
|
+
if (buf === void 0 || (bufIdx + 16 > BUFFER_SIZE)) {
|
|
5783
|
+
bufIdx = 0;
|
|
5784
|
+
buf = randomBytes(BUFFER_SIZE);
|
|
5785
|
+
}
|
|
5786
|
+
|
|
5787
|
+
var b = Array.prototype.slice.call(buf, bufIdx, (bufIdx += 16));
|
|
5788
|
+
b[6] = (b[6] & 0x0f) | 0x40;
|
|
5789
|
+
b[8] = (b[8] & 0x3f) | 0x80;
|
|
5790
|
+
|
|
5791
|
+
return hexBytes[b[0]] + hexBytes[b[1]] +
|
|
5792
|
+
hexBytes[b[2]] + hexBytes[b[3]] + '-' +
|
|
5793
|
+
hexBytes[b[4]] + hexBytes[b[5]] + '-' +
|
|
5794
|
+
hexBytes[b[6]] + hexBytes[b[7]] + '-' +
|
|
5795
|
+
hexBytes[b[8]] + hexBytes[b[9]] + '-' +
|
|
5796
|
+
hexBytes[b[10]] + hexBytes[b[11]] +
|
|
5797
|
+
hexBytes[b[12]] + hexBytes[b[13]] +
|
|
5798
|
+
hexBytes[b[14]] + hexBytes[b[15]]
|
|
5799
|
+
}
|
|
5800
|
+
|
|
5725
5801
|
var QBtnDropdown = Vue.extend({
|
|
5726
5802
|
name: 'QBtnDropdown',
|
|
5727
5803
|
|
|
@@ -5755,7 +5831,9 @@
|
|
|
5755
5831
|
disableMainBtn: Boolean,
|
|
5756
5832
|
disableDropdown: Boolean,
|
|
5757
5833
|
|
|
5758
|
-
noIconAnimation: Boolean
|
|
5834
|
+
noIconAnimation: Boolean,
|
|
5835
|
+
|
|
5836
|
+
toggleAriaLabel: String
|
|
5759
5837
|
},
|
|
5760
5838
|
|
|
5761
5839
|
data: function data () {
|
|
@@ -5780,7 +5858,10 @@
|
|
|
5780
5858
|
var label = slot(this, 'label', []);
|
|
5781
5859
|
var attrs = {
|
|
5782
5860
|
'aria-expanded': this.showing === true ? 'true' : 'false',
|
|
5783
|
-
'aria-haspopup': 'true'
|
|
5861
|
+
'aria-haspopup': 'true',
|
|
5862
|
+
'aria-controls': this.targetUid,
|
|
5863
|
+
'aria-owns': this.targetUid,
|
|
5864
|
+
'aria-label': this.toggleAriaLabel || this.$q.lang.label[ this.showing === true ? 'collapse' : 'expand' ](this.label)
|
|
5784
5865
|
};
|
|
5785
5866
|
|
|
5786
5867
|
if (
|
|
@@ -5805,6 +5886,9 @@
|
|
|
5805
5886
|
this.disableDropdown !== true && Arrow.push(
|
|
5806
5887
|
h(QMenu, {
|
|
5807
5888
|
ref: 'menu',
|
|
5889
|
+
attrs: {
|
|
5890
|
+
id: this.targetUid
|
|
5891
|
+
},
|
|
5808
5892
|
props: {
|
|
5809
5893
|
cover: this.cover,
|
|
5810
5894
|
fit: true,
|
|
@@ -5846,8 +5930,8 @@
|
|
|
5846
5930
|
{disable: this.disable === true || this.disableMainBtn === true,
|
|
5847
5931
|
noWrap: true,
|
|
5848
5932
|
round: false}),
|
|
5849
|
-
attrs: Object.assign({},
|
|
5850
|
-
|
|
5933
|
+
attrs: Object.assign({}, attrs,
|
|
5934
|
+
this.qAttrs),
|
|
5851
5935
|
on: cache(this, 'nonSpl', {
|
|
5852
5936
|
click: function (e) {
|
|
5853
5937
|
this$1.$emit('click', e);
|
|
@@ -5926,6 +6010,10 @@
|
|
|
5926
6010
|
}
|
|
5927
6011
|
},
|
|
5928
6012
|
|
|
6013
|
+
created: function created () {
|
|
6014
|
+
this.targetUid = "d_" + (uid());
|
|
6015
|
+
},
|
|
6016
|
+
|
|
5929
6017
|
mounted: function mounted () {
|
|
5930
6018
|
this.value === true && this.show();
|
|
5931
6019
|
}
|
|
@@ -7924,6 +8012,8 @@
|
|
|
7924
8012
|
clickable: Boolean,
|
|
7925
8013
|
removable: Boolean,
|
|
7926
8014
|
|
|
8015
|
+
removeAriaLabel: String,
|
|
8016
|
+
|
|
7927
8017
|
tabindex: [String, Number],
|
|
7928
8018
|
disable: Boolean
|
|
7929
8019
|
},
|
|
@@ -7960,7 +8050,12 @@
|
|
|
7960
8050
|
attrs: function attrs () {
|
|
7961
8051
|
return this.disable === true
|
|
7962
8052
|
? { tabindex: -1, 'aria-disabled': 'true' }
|
|
7963
|
-
: {
|
|
8053
|
+
: {
|
|
8054
|
+
tabindex: this.tabindex || 0,
|
|
8055
|
+
role: 'button',
|
|
8056
|
+
'aria-hidden': 'false',
|
|
8057
|
+
'aria-label': this.removeAriaLabel || this.$q.lang.label.remove
|
|
8058
|
+
}
|
|
7964
8059
|
}
|
|
7965
8060
|
},
|
|
7966
8061
|
|
|
@@ -8085,6 +8180,7 @@
|
|
|
8085
8180
|
trackColor: String,
|
|
8086
8181
|
|
|
8087
8182
|
fontSize: String,
|
|
8183
|
+
rounded: Boolean,
|
|
8088
8184
|
|
|
8089
8185
|
// ratio
|
|
8090
8186
|
thickness: {
|
|
@@ -8159,6 +8255,7 @@
|
|
|
8159
8255
|
var offset = ref.offset;
|
|
8160
8256
|
var color = ref.color;
|
|
8161
8257
|
var cls = ref.cls;
|
|
8258
|
+
var rounded = ref.rounded;
|
|
8162
8259
|
|
|
8163
8260
|
return h('circle', {
|
|
8164
8261
|
staticClass: 'q-circular-progress__' + cls,
|
|
@@ -8170,6 +8267,7 @@
|
|
|
8170
8267
|
'stroke-width': thickness,
|
|
8171
8268
|
'stroke-dasharray': strokeDashArray,
|
|
8172
8269
|
'stroke-dashoffset': offset,
|
|
8270
|
+
'stroke-linecap': rounded,
|
|
8173
8271
|
cx: this.viewBox,
|
|
8174
8272
|
cy: this.viewBox,
|
|
8175
8273
|
r: radius
|
|
@@ -8208,7 +8306,8 @@
|
|
|
8208
8306
|
cls: 'circle',
|
|
8209
8307
|
thickness: this.strokeWidth,
|
|
8210
8308
|
offset: this.strokeDashOffset,
|
|
8211
|
-
color: this.color
|
|
8309
|
+
color: this.color,
|
|
8310
|
+
rounded: this.rounded === true ? 'round' : void 0
|
|
8212
8311
|
})
|
|
8213
8312
|
);
|
|
8214
8313
|
|
|
@@ -8409,7 +8508,7 @@
|
|
|
8409
8508
|
}
|
|
8410
8509
|
}
|
|
8411
8510
|
|
|
8412
|
-
var uid = 0;
|
|
8511
|
+
var uid$1 = 0;
|
|
8413
8512
|
|
|
8414
8513
|
var TouchPan = {
|
|
8415
8514
|
name: 'touch-pan',
|
|
@@ -8439,7 +8538,7 @@
|
|
|
8439
8538
|
}
|
|
8440
8539
|
|
|
8441
8540
|
var ctx = {
|
|
8442
|
-
uid: 'qvtp_' + (uid++),
|
|
8541
|
+
uid: 'qvtp_' + (uid$1++),
|
|
8443
8542
|
handler: value,
|
|
8444
8543
|
modifiers: modifiers,
|
|
8445
8544
|
direction: getModifierDirections(modifiers),
|
|
@@ -10351,7 +10450,7 @@
|
|
|
10351
10450
|
}
|
|
10352
10451
|
});
|
|
10353
10452
|
|
|
10354
|
-
var uid$
|
|
10453
|
+
var uid$2 = 0;
|
|
10355
10454
|
|
|
10356
10455
|
var QTab = Vue.extend({
|
|
10357
10456
|
name: 'QTab',
|
|
@@ -10378,7 +10477,7 @@
|
|
|
10378
10477
|
|
|
10379
10478
|
name: {
|
|
10380
10479
|
type: [Number, String],
|
|
10381
|
-
default: function () { return ("t_" + (uid$
|
|
10480
|
+
default: function () { return ("t_" + (uid$2++)); }
|
|
10382
10481
|
},
|
|
10383
10482
|
|
|
10384
10483
|
noCaps: Boolean,
|
|
@@ -14780,6 +14879,12 @@
|
|
|
14780
14879
|
}
|
|
14781
14880
|
|
|
14782
14881
|
return on
|
|
14882
|
+
},
|
|
14883
|
+
|
|
14884
|
+
attrs: function attrs () {
|
|
14885
|
+
return this.useBackdrop === true
|
|
14886
|
+
? Object.assign({}, {'aria-modal': 'true'}, this.qAttrs)
|
|
14887
|
+
: this.qAttrs
|
|
14783
14888
|
}
|
|
14784
14889
|
},
|
|
14785
14890
|
|
|
@@ -14980,7 +15085,7 @@
|
|
|
14980
15085
|
staticClass: ("q-dialog fullscreen no-pointer-events q-dialog--" + (this.useBackdrop === true ? 'modal' : 'seamless')),
|
|
14981
15086
|
class: this.contentClass,
|
|
14982
15087
|
style: this.contentStyle,
|
|
14983
|
-
attrs: this.
|
|
15088
|
+
attrs: this.attrs
|
|
14984
15089
|
}, [
|
|
14985
15090
|
h('transition', {
|
|
14986
15091
|
props: { name: 'q-transition--fade' }
|
|
@@ -17715,6 +17820,7 @@
|
|
|
17715
17820
|
|
|
17716
17821
|
dense: Boolean,
|
|
17717
17822
|
|
|
17823
|
+
toggleAriaLabel: String,
|
|
17718
17824
|
expandIcon: String,
|
|
17719
17825
|
expandedIcon: String,
|
|
17720
17826
|
expandIconClass: [ Array, String, Object ],
|
|
@@ -17725,6 +17831,7 @@
|
|
|
17725
17831
|
|
|
17726
17832
|
expandSeparator: Boolean,
|
|
17727
17833
|
defaultOpened: Boolean,
|
|
17834
|
+
hideExpandIcon: Boolean,
|
|
17728
17835
|
expandIconToggle: Boolean,
|
|
17729
17836
|
switchToggleSide: Boolean,
|
|
17730
17837
|
denseToggle: Boolean,
|
|
@@ -17785,6 +17892,30 @@
|
|
|
17785
17892
|
|
|
17786
17893
|
activeToggleIcon: function activeToggleIcon () {
|
|
17787
17894
|
return this.disable !== true && (this.hasLink === true || this.expandIconToggle === true)
|
|
17895
|
+
},
|
|
17896
|
+
|
|
17897
|
+
headerSlotScope: function headerSlotScope () {
|
|
17898
|
+
return {
|
|
17899
|
+
expanded: this.showing === true,
|
|
17900
|
+
detailsId: this.targetUid,
|
|
17901
|
+
toggle: this.toggle,
|
|
17902
|
+
show: this.show,
|
|
17903
|
+
hide: this.hide
|
|
17904
|
+
}
|
|
17905
|
+
},
|
|
17906
|
+
|
|
17907
|
+
toggleAriaAttrs: function toggleAriaAttrs () {
|
|
17908
|
+
var toggleAriaLabel = this.toggleAriaLabel !== void 0
|
|
17909
|
+
? this.toggleAriaLabel
|
|
17910
|
+
: this.$q.lang.label[ this.showing === true ? 'collapse' : 'expand' ](this.label);
|
|
17911
|
+
|
|
17912
|
+
return {
|
|
17913
|
+
role: 'button',
|
|
17914
|
+
'aria-expanded': this.showing === true ? 'true' : 'false',
|
|
17915
|
+
'aria-owns': this.targetUid,
|
|
17916
|
+
'aria-controls': this.targetUid,
|
|
17917
|
+
'aria-label': toggleAriaLabel
|
|
17918
|
+
}
|
|
17788
17919
|
}
|
|
17789
17920
|
},
|
|
17790
17921
|
|
|
@@ -17830,7 +17961,8 @@
|
|
|
17830
17961
|
|
|
17831
17962
|
if (this.activeToggleIcon === true) {
|
|
17832
17963
|
Object.assign(data, {
|
|
17833
|
-
attrs: { tabindex: 0
|
|
17964
|
+
attrs: Object.assign({}, {tabindex: 0},
|
|
17965
|
+
this.toggleAriaAttrs),
|
|
17834
17966
|
on: cache(this, 'inpExt', {
|
|
17835
17967
|
click: this.__toggleIcon,
|
|
17836
17968
|
keyup: this.__toggleIconKeyboard
|
|
@@ -17853,7 +17985,7 @@
|
|
|
17853
17985
|
var child;
|
|
17854
17986
|
|
|
17855
17987
|
if (this.$scopedSlots.header !== void 0) {
|
|
17856
|
-
child = [].concat(this.$scopedSlots.header(
|
|
17988
|
+
child = [].concat(this.$scopedSlots.header(this.headerSlotScope));
|
|
17857
17989
|
}
|
|
17858
17990
|
else {
|
|
17859
17991
|
child = [
|
|
@@ -17884,7 +18016,7 @@
|
|
|
17884
18016
|
);
|
|
17885
18017
|
}
|
|
17886
18018
|
|
|
17887
|
-
this.disable !== true && child[this.switchToggleSide === true ? 'unshift' : 'push'](
|
|
18019
|
+
this.disable !== true && this.hideExpandIcon !== true && child[this.switchToggleSide === true ? 'unshift' : 'push'](
|
|
17888
18020
|
this.__getToggleIcon(h)
|
|
17889
18021
|
);
|
|
17890
18022
|
|
|
@@ -17913,6 +18045,9 @@
|
|
|
17913
18045
|
|
|
17914
18046
|
data.attrs = this.linkProps.attrs;
|
|
17915
18047
|
}
|
|
18048
|
+
else {
|
|
18049
|
+
data.attrs = this.toggleAriaAttrs;
|
|
18050
|
+
}
|
|
17916
18051
|
}
|
|
17917
18052
|
|
|
17918
18053
|
return h(QItem, data, child)
|
|
@@ -17934,6 +18069,7 @@
|
|
|
17934
18069
|
h('div', {
|
|
17935
18070
|
staticClass: 'q-expansion-item__content relative-position',
|
|
17936
18071
|
style: this.contentStyle,
|
|
18072
|
+
attrs: { id: this.targetUid },
|
|
17937
18073
|
directives: [{ name: 'show', value: this.showing }]
|
|
17938
18074
|
}, slot(this, 'default'))
|
|
17939
18075
|
])
|
|
@@ -17971,6 +18107,7 @@
|
|
|
17971
18107
|
|
|
17972
18108
|
created: function created () {
|
|
17973
18109
|
this.group !== void 0 && this.$root.$on(eventName, this.__eventHandler);
|
|
18110
|
+
this.targetUid = "e_" + (uid());
|
|
17974
18111
|
},
|
|
17975
18112
|
|
|
17976
18113
|
beforeDestroy: function beforeDestroy () {
|
|
@@ -18124,13 +18261,30 @@
|
|
|
18124
18261
|
return "q-fab__actions--" + (this.direction) + (this.showing === true ? ' q-fab__actions--opened' : '')
|
|
18125
18262
|
},
|
|
18126
18263
|
|
|
18264
|
+
actionsAttrs: function actionsAttrs () {
|
|
18265
|
+
var attrs = {
|
|
18266
|
+
id: this.targetUid
|
|
18267
|
+
};
|
|
18268
|
+
|
|
18269
|
+
if (this.showing === true) {
|
|
18270
|
+
attrs.role = 'menu';
|
|
18271
|
+
}
|
|
18272
|
+
else {
|
|
18273
|
+
attrs['aria-hidden'] = 'true';
|
|
18274
|
+
}
|
|
18275
|
+
|
|
18276
|
+
return attrs
|
|
18277
|
+
},
|
|
18278
|
+
|
|
18127
18279
|
iconHolderClasses: function iconHolderClasses () {
|
|
18128
18280
|
return this.showing === true ? 'q-fab__icon-holder--opened' : ''
|
|
18129
18281
|
},
|
|
18130
18282
|
|
|
18131
18283
|
attrs: function attrs () {
|
|
18132
18284
|
return Object.assign({}, {'aria-expanded': this.showing === true ? 'true' : 'false',
|
|
18133
|
-
'aria-haspopup': 'true'
|
|
18285
|
+
'aria-haspopup': 'true',
|
|
18286
|
+
'aria-controls': this.targetUid,
|
|
18287
|
+
'aria-owns': this.targetUid},
|
|
18134
18288
|
this.qAttrs)
|
|
18135
18289
|
},
|
|
18136
18290
|
|
|
@@ -18198,9 +18352,14 @@
|
|
|
18198
18352
|
|
|
18199
18353
|
h('div', {
|
|
18200
18354
|
staticClass: 'q-fab__actions flex no-wrap inline',
|
|
18201
|
-
class: this.actionsClasses
|
|
18355
|
+
class: this.actionsClasses,
|
|
18356
|
+
attrs: this.actionsAttrs
|
|
18202
18357
|
}, slot(this, 'default'))
|
|
18203
18358
|
])
|
|
18359
|
+
},
|
|
18360
|
+
|
|
18361
|
+
created: function created () {
|
|
18362
|
+
this.targetUid = "fb_" + (uid());
|
|
18204
18363
|
}
|
|
18205
18364
|
});
|
|
18206
18365
|
|
|
@@ -18448,11 +18607,13 @@
|
|
|
18448
18607
|
|
|
18449
18608
|
var index = ++this.validateIndex;
|
|
18450
18609
|
|
|
18451
|
-
|
|
18452
|
-
this.isDirty = true;
|
|
18453
|
-
|
|
18610
|
+
var setDirty = this.innerLoading !== true
|
|
18611
|
+
? function () { return this$1.isDirty !== true && (this$1.isDirty = true); }
|
|
18612
|
+
: function () {};
|
|
18454
18613
|
|
|
18455
18614
|
var update = function (err, msg) {
|
|
18615
|
+
err === true && setDirty();
|
|
18616
|
+
|
|
18456
18617
|
if (this$1.innerError !== err) {
|
|
18457
18618
|
this$1.innerError = err;
|
|
18458
18619
|
}
|
|
@@ -18541,81 +18702,8 @@
|
|
|
18541
18702
|
}
|
|
18542
18703
|
};
|
|
18543
18704
|
|
|
18544
|
-
/**
|
|
18545
|
-
* Based on the work of https://github.com/jchook/uuid-random
|
|
18546
|
-
*/
|
|
18547
|
-
|
|
18548
|
-
var
|
|
18549
|
-
buf,
|
|
18550
|
-
bufIdx = 0;
|
|
18551
|
-
var hexBytes = new Array(256);
|
|
18552
|
-
|
|
18553
|
-
// Pre-calculate toString(16) for speed
|
|
18554
|
-
for (var i = 0; i < 256; i++) {
|
|
18555
|
-
hexBytes[i] = (i + 0x100).toString(16).substr(1);
|
|
18556
|
-
}
|
|
18557
|
-
|
|
18558
|
-
// Use best available PRNG
|
|
18559
|
-
var randomBytes = (function () {
|
|
18560
|
-
// Node & Browser support
|
|
18561
|
-
var lib = typeof crypto !== 'undefined'
|
|
18562
|
-
? crypto
|
|
18563
|
-
: (
|
|
18564
|
-
typeof window !== 'undefined'
|
|
18565
|
-
? window.msCrypto // IE11
|
|
18566
|
-
: void 0
|
|
18567
|
-
);
|
|
18568
|
-
|
|
18569
|
-
if (lib !== void 0) {
|
|
18570
|
-
if (lib.randomBytes !== void 0) {
|
|
18571
|
-
return lib.randomBytes
|
|
18572
|
-
}
|
|
18573
|
-
if (lib.getRandomValues !== void 0) {
|
|
18574
|
-
return function (n) {
|
|
18575
|
-
var bytes = new Uint8Array(n);
|
|
18576
|
-
lib.getRandomValues(bytes);
|
|
18577
|
-
return bytes
|
|
18578
|
-
}
|
|
18579
|
-
}
|
|
18580
|
-
}
|
|
18581
|
-
|
|
18582
|
-
return function (n) {
|
|
18583
|
-
var r = [];
|
|
18584
|
-
for (var i = n; i > 0; i--) {
|
|
18585
|
-
r.push(Math.floor(Math.random() * 256));
|
|
18586
|
-
}
|
|
18587
|
-
return r
|
|
18588
|
-
}
|
|
18589
|
-
})();
|
|
18590
|
-
|
|
18591
|
-
// Buffer random numbers for speed
|
|
18592
|
-
// Reduce memory usage by decreasing this number (min 16)
|
|
18593
|
-
// or improve speed by increasing this number (try 16384)
|
|
18594
|
-
var BUFFER_SIZE = 4096;
|
|
18595
|
-
|
|
18596
|
-
function uid$2 () {
|
|
18597
|
-
// Buffer some random bytes for speed
|
|
18598
|
-
if (buf === void 0 || (bufIdx + 16 > BUFFER_SIZE)) {
|
|
18599
|
-
bufIdx = 0;
|
|
18600
|
-
buf = randomBytes(BUFFER_SIZE);
|
|
18601
|
-
}
|
|
18602
|
-
|
|
18603
|
-
var b = Array.prototype.slice.call(buf, bufIdx, (bufIdx += 16));
|
|
18604
|
-
b[6] = (b[6] & 0x0f) | 0x40;
|
|
18605
|
-
b[8] = (b[8] & 0x3f) | 0x80;
|
|
18606
|
-
|
|
18607
|
-
return hexBytes[b[0]] + hexBytes[b[1]] +
|
|
18608
|
-
hexBytes[b[2]] + hexBytes[b[3]] + '-' +
|
|
18609
|
-
hexBytes[b[4]] + hexBytes[b[5]] + '-' +
|
|
18610
|
-
hexBytes[b[6]] + hexBytes[b[7]] + '-' +
|
|
18611
|
-
hexBytes[b[8]] + hexBytes[b[9]] + '-' +
|
|
18612
|
-
hexBytes[b[10]] + hexBytes[b[11]] +
|
|
18613
|
-
hexBytes[b[12]] + hexBytes[b[13]] +
|
|
18614
|
-
hexBytes[b[14]] + hexBytes[b[15]]
|
|
18615
|
-
}
|
|
18616
|
-
|
|
18617
18705
|
function getTargetUid (val) {
|
|
18618
|
-
return val === void 0 ? ("f_" + (uid
|
|
18706
|
+
return val === void 0 ? ("f_" + (uid())) : val
|
|
18619
18707
|
}
|
|
18620
18708
|
|
|
18621
18709
|
var QField = Vue.extend({
|
|
@@ -19323,7 +19411,7 @@
|
|
|
19323
19411
|
file.__key = file.webkitRelativePath + file.lastModified + file.name + file.size;
|
|
19324
19412
|
});
|
|
19325
19413
|
|
|
19326
|
-
if (append
|
|
19414
|
+
if (append === true) {
|
|
19327
19415
|
// Avoid duplicate files
|
|
19328
19416
|
var filenameMap = currentFileList.map(function (entry) { return entry.__key; });
|
|
19329
19417
|
files = filterFiles(files, rejectedFiles, 'duplicate', function (file) {
|
|
@@ -19972,88 +20060,79 @@
|
|
|
19972
20060
|
validate: function validate (shouldFocus) {
|
|
19973
20061
|
var this$1 = this;
|
|
19974
20062
|
|
|
19975
|
-
var promises = [];
|
|
19976
20063
|
var focus = typeof shouldFocus === 'boolean'
|
|
19977
20064
|
? shouldFocus
|
|
19978
20065
|
: this.noErrorFocus !== true;
|
|
19979
20066
|
|
|
19980
20067
|
var index = ++this.validateIndex;
|
|
19981
20068
|
|
|
19982
|
-
var
|
|
20069
|
+
var registeredComponents = this.getValidationComponents().filter(function (c) { return c.disable !== true; });
|
|
19983
20070
|
|
|
19984
20071
|
var emit = function (res, ref) {
|
|
19985
20072
|
this$1.$emit('validation-' + (res === true ? 'success' : 'error'), ref);
|
|
19986
20073
|
};
|
|
19987
20074
|
|
|
19988
|
-
var
|
|
19989
|
-
var comp = components[i];
|
|
20075
|
+
var validateComponent = function (comp) {
|
|
19990
20076
|
var valid = comp.validate();
|
|
19991
20077
|
|
|
19992
|
-
|
|
19993
|
-
|
|
19994
|
-
valid
|
|
19995
|
-
|
|
19996
|
-
|
|
19997
|
-
|
|
19998
|
-
);
|
|
19999
|
-
}
|
|
20000
|
-
else if (valid !== true) {
|
|
20001
|
-
if (this$1.greedy === false) {
|
|
20002
|
-
emit(false, comp);
|
|
20003
|
-
|
|
20004
|
-
if (focus === true && typeof comp.focus === 'function') {
|
|
20005
|
-
comp.focus();
|
|
20006
|
-
}
|
|
20007
|
-
|
|
20008
|
-
return { v: Promise.resolve(false) }
|
|
20009
|
-
}
|
|
20010
|
-
|
|
20011
|
-
promises.push({ valid: false, comp: comp });
|
|
20012
|
-
}
|
|
20078
|
+
return typeof valid.then === 'function'
|
|
20079
|
+
? valid.then(
|
|
20080
|
+
function (valid) { return ({ valid: valid, comp: comp }); },
|
|
20081
|
+
function (err) { return ({ valid: false, comp: comp, err: err }); }
|
|
20082
|
+
)
|
|
20083
|
+
: Promise.resolve({ valid: valid, comp: comp })
|
|
20013
20084
|
};
|
|
20014
20085
|
|
|
20015
|
-
|
|
20016
|
-
|
|
20017
|
-
|
|
20018
|
-
|
|
20019
|
-
|
|
20020
|
-
|
|
20021
|
-
|
|
20022
|
-
|
|
20023
|
-
|
|
20024
|
-
|
|
20025
|
-
|
|
20026
|
-
|
|
20027
|
-
|
|
20028
|
-
|
|
20086
|
+
var errorsPromise = this.greedy === true
|
|
20087
|
+
? Promise
|
|
20088
|
+
.all(registeredComponents.map(validateComponent))
|
|
20089
|
+
.then(function (res) { return res.filter(function (r) { return r.valid !== true; }); })
|
|
20090
|
+
: registeredComponents
|
|
20091
|
+
.reduce(
|
|
20092
|
+
function (acc, comp) { return acc.then(function () {
|
|
20093
|
+
return validateComponent(comp).then(function (r) {
|
|
20094
|
+
if (r.valid === false) { return Promise.reject(r) }
|
|
20095
|
+
})
|
|
20096
|
+
}); },
|
|
20097
|
+
Promise.resolve()
|
|
20098
|
+
)
|
|
20099
|
+
.catch(function (error) { return [ error ]; });
|
|
20029
20100
|
|
|
20030
|
-
|
|
20031
|
-
|
|
20032
|
-
|
|
20033
|
-
|
|
20101
|
+
return errorsPromise.then(function (errors) {
|
|
20102
|
+
if (errors.length === 0) {
|
|
20103
|
+
index === this$1.validateIndex && emit(true);
|
|
20104
|
+
return true
|
|
20105
|
+
}
|
|
20034
20106
|
|
|
20107
|
+
if (index === this$1.validateIndex) {
|
|
20035
20108
|
var ref = errors[0];
|
|
20036
|
-
var valid = ref.valid;
|
|
20037
20109
|
var comp = ref.comp;
|
|
20038
20110
|
var err = ref.err;
|
|
20039
20111
|
|
|
20040
|
-
|
|
20041
|
-
|
|
20112
|
+
err !== void 0 && console.error(err);
|
|
20113
|
+
emit(false, comp);
|
|
20042
20114
|
|
|
20043
|
-
|
|
20115
|
+
if (focus === true) {
|
|
20116
|
+
// Try to focus first mounted and active component
|
|
20117
|
+
var activeError = errors.find(function (ref) {
|
|
20118
|
+
var comp = ref.comp;
|
|
20044
20119
|
|
|
20045
|
-
|
|
20046
|
-
focus ===
|
|
20047
|
-
|
|
20048
|
-
|
|
20049
|
-
|
|
20050
|
-
|
|
20120
|
+
return (
|
|
20121
|
+
typeof comp.focus === 'function' &&
|
|
20122
|
+
comp._isBeingDestroyed !== true &&
|
|
20123
|
+
comp._isDestroyed !== true &&
|
|
20124
|
+
comp._inactive !== true
|
|
20125
|
+
);
|
|
20126
|
+
});
|
|
20127
|
+
|
|
20128
|
+
if (activeError !== void 0) {
|
|
20129
|
+
activeError.comp.focus();
|
|
20051
20130
|
}
|
|
20052
20131
|
}
|
|
20053
|
-
|
|
20054
|
-
return false
|
|
20055
20132
|
}
|
|
20056
|
-
|
|
20133
|
+
|
|
20134
|
+
return false
|
|
20135
|
+
})
|
|
20057
20136
|
},
|
|
20058
20137
|
|
|
20059
20138
|
resetValidation: function resetValidation () {
|
|
@@ -27377,6 +27456,7 @@
|
|
|
27377
27456
|
tabindex: this.tabindex,
|
|
27378
27457
|
role: 'combobox',
|
|
27379
27458
|
'aria-label': this.label,
|
|
27459
|
+
'aria-readonly': this.readonly === true ? 'true' : 'false',
|
|
27380
27460
|
'aria-autocomplete': this.useInput === true ? 'list' : 'none',
|
|
27381
27461
|
'aria-expanded': this.menu === true ? 'true' : 'false',
|
|
27382
27462
|
'aria-owns': ((this.targetUid) + "_lb"),
|
|
@@ -27397,10 +27477,6 @@
|
|
|
27397
27477
|
'aria-multiselectable': this.multiple === true ? 'true' : 'false'
|
|
27398
27478
|
};
|
|
27399
27479
|
|
|
27400
|
-
if (this.optionIndex >= 0) {
|
|
27401
|
-
attrs['aria-activedescendant'] = (this.targetUid) + "_" + (this.optionIndex);
|
|
27402
|
-
}
|
|
27403
|
-
|
|
27404
27480
|
return attrs
|
|
27405
27481
|
}
|
|
27406
27482
|
},
|
|
@@ -33618,7 +33694,7 @@
|
|
|
33618
33694
|
|
|
33619
33695
|
if (rowEl !== null) {
|
|
33620
33696
|
var scrollTarget = this.$el.querySelector('.q-table__middle.scroll');
|
|
33621
|
-
var offsetTop = rowEl.offsetTop;
|
|
33697
|
+
var offsetTop = rowEl.offsetTop - this.virtualScrollStickySizeStart;
|
|
33622
33698
|
var direction = offsetTop < scrollTarget.scrollTop ? 'decrease' : 'increase';
|
|
33623
33699
|
|
|
33624
33700
|
scrollTarget.scrollTop = offsetTop;
|
|
@@ -41096,6 +41172,129 @@
|
|
|
41096
41172
|
return openWindow(url, reject, windowFeatures)
|
|
41097
41173
|
}
|
|
41098
41174
|
|
|
41175
|
+
function parsePromises (sequentialPromises) {
|
|
41176
|
+
var isList = Array.isArray(sequentialPromises);
|
|
41177
|
+
|
|
41178
|
+
if (isList === true) {
|
|
41179
|
+
var totalJobs = sequentialPromises.length;
|
|
41180
|
+
return {
|
|
41181
|
+
isList: isList,
|
|
41182
|
+
totalJobs: totalJobs,
|
|
41183
|
+
resultAggregator: Array(totalJobs).fill(null)
|
|
41184
|
+
}
|
|
41185
|
+
}
|
|
41186
|
+
|
|
41187
|
+
var resultKeys = Object.keys(sequentialPromises);
|
|
41188
|
+
var resultAggregator = {};
|
|
41189
|
+
resultKeys.forEach(function (keyName) { resultAggregator[ keyName ] = null; });
|
|
41190
|
+
|
|
41191
|
+
return {
|
|
41192
|
+
isList: isList,
|
|
41193
|
+
totalJobs: resultKeys.length,
|
|
41194
|
+
resultAggregator: resultAggregator,
|
|
41195
|
+
resultKeys: resultKeys
|
|
41196
|
+
}
|
|
41197
|
+
}
|
|
41198
|
+
|
|
41199
|
+
/**
|
|
41200
|
+
* Run a list of Promises sequentially, optionally on multiple threads.
|
|
41201
|
+
*
|
|
41202
|
+
* @param {*} sequentialPromises - Array of Functions or Object with Functions as values
|
|
41203
|
+
* Array of Function form: [ (resultAggregator: Array) => Promise<any>, ... ]
|
|
41204
|
+
* Object form: { [key: string]: (resultAggregator: object) => Promise<any>, ... }
|
|
41205
|
+
* @param {*} opts - Optional options Object
|
|
41206
|
+
* Object form: { threadsNumber?: number, abortOnFail?: boolean }
|
|
41207
|
+
* Default: { threadsNumber: 1, abortOnFail: true }
|
|
41208
|
+
* When configuring threadsNumber AND using http requests, be
|
|
41209
|
+
* aware of the maximum threads that the hosting browser
|
|
41210
|
+
* supports (usually 3); any number of threads above that
|
|
41211
|
+
* won't add any real benefits
|
|
41212
|
+
* @returns Promise<Array<Object> | Object>
|
|
41213
|
+
* With opts.abortOnFail set to true (which is default):
|
|
41214
|
+
* When sequentialPromises param is Array:
|
|
41215
|
+
* The Promise resolves with an Array of Objects of the following form:
|
|
41216
|
+
* [ { key: number, status: 'fulfilled', value: any }, ... ]
|
|
41217
|
+
* The Promise rejects with an Object of the following form:
|
|
41218
|
+
* { key: number, status: 'rejected', reason: Error, resultAggregator: array }
|
|
41219
|
+
* When sequentialPromises param is Object:
|
|
41220
|
+
* The Promise resolves with an Object of the following form:
|
|
41221
|
+
* { [key: string]: { key: string, status: 'fulfilled', value: any }, ... }
|
|
41222
|
+
* The Promise rejects with an Object of the following form:
|
|
41223
|
+
* { key: string, status: 'rejected', reason: Error, resultAggregator: object }
|
|
41224
|
+
* With opts.abortOnFail set to false:
|
|
41225
|
+
* The Promise is never rejected (no catch() needed)
|
|
41226
|
+
* The Promise resolves with:
|
|
41227
|
+
* An Array of Objects (when sequentialPromises param is also an Array) of the following form:
|
|
41228
|
+
* [ { key: number, status: 'fulfilled', value: any } | { status: 'rejected', reason: Error }, ... ]
|
|
41229
|
+
* An Object (when sequentialPromises param is also an Object) of the following form:
|
|
41230
|
+
* { [key: string]: { key: string, status: 'fulfilled', value: any } | { key: string, status: 'rejected', reason: Error }, ... }
|
|
41231
|
+
*/
|
|
41232
|
+
function runSequentialPromises (
|
|
41233
|
+
sequentialPromises,
|
|
41234
|
+
ref
|
|
41235
|
+
) {
|
|
41236
|
+
if ( ref === void 0 ) ref = {};
|
|
41237
|
+
var threadsNumber = ref.threadsNumber; if ( threadsNumber === void 0 ) threadsNumber = 1;
|
|
41238
|
+
var abortOnFail = ref.abortOnFail; if ( abortOnFail === void 0 ) abortOnFail = true;
|
|
41239
|
+
|
|
41240
|
+
var jobIndex = -1, hasAborted = false;
|
|
41241
|
+
|
|
41242
|
+
var ref$1 = parsePromises(sequentialPromises);
|
|
41243
|
+
var isList = ref$1.isList;
|
|
41244
|
+
var totalJobs = ref$1.totalJobs;
|
|
41245
|
+
var resultAggregator = ref$1.resultAggregator;
|
|
41246
|
+
var resultKeys = ref$1.resultKeys;
|
|
41247
|
+
|
|
41248
|
+
var getPromiseThread = function () { return new Promise(function (resolve, reject) {
|
|
41249
|
+
function runNextPromise () {
|
|
41250
|
+
var currentJobIndex = ++jobIndex;
|
|
41251
|
+
|
|
41252
|
+
if (hasAborted === true || currentJobIndex >= totalJobs) {
|
|
41253
|
+
resolve();
|
|
41254
|
+
return
|
|
41255
|
+
}
|
|
41256
|
+
|
|
41257
|
+
var key = isList === true ? currentJobIndex : resultKeys[ currentJobIndex ];
|
|
41258
|
+
|
|
41259
|
+
sequentialPromises[ key ](resultAggregator)
|
|
41260
|
+
.then(function (value) {
|
|
41261
|
+
if (hasAborted === true) {
|
|
41262
|
+
resolve();
|
|
41263
|
+
return // early exit
|
|
41264
|
+
}
|
|
41265
|
+
|
|
41266
|
+
resultAggregator[ key ] = { key: key, status: 'fulfilled', value: value };
|
|
41267
|
+
|
|
41268
|
+
// timeout so it doesn't interfere with the .catch() below
|
|
41269
|
+
setTimeout(runNextPromise);
|
|
41270
|
+
})
|
|
41271
|
+
.catch(function (reason) {
|
|
41272
|
+
if (hasAborted === true) {
|
|
41273
|
+
resolve();
|
|
41274
|
+
return // early exit
|
|
41275
|
+
}
|
|
41276
|
+
|
|
41277
|
+
var result = { key: key, status: 'rejected', reason: reason };
|
|
41278
|
+
resultAggregator[ key ] = result;
|
|
41279
|
+
|
|
41280
|
+
if (abortOnFail === true) {
|
|
41281
|
+
hasAborted = true;
|
|
41282
|
+
reject(Object.assign({}, result, {resultAggregator: resultAggregator}));
|
|
41283
|
+
return // early exit
|
|
41284
|
+
}
|
|
41285
|
+
|
|
41286
|
+
// timeout so no interference
|
|
41287
|
+
setTimeout(runNextPromise);
|
|
41288
|
+
});
|
|
41289
|
+
}
|
|
41290
|
+
|
|
41291
|
+
runNextPromise();
|
|
41292
|
+
}); };
|
|
41293
|
+
|
|
41294
|
+
var threads = Array(threadsNumber).fill(getPromiseThread());
|
|
41295
|
+
return Promise.all(threads).then(function () { return resultAggregator; })
|
|
41296
|
+
}
|
|
41297
|
+
|
|
41099
41298
|
|
|
41100
41299
|
|
|
41101
41300
|
var utils = /*#__PURE__*/Object.freeze({
|
|
@@ -41116,9 +41315,10 @@
|
|
|
41116
41315
|
openURL: openUrl,
|
|
41117
41316
|
morph: morph,
|
|
41118
41317
|
patterns: patterns,
|
|
41318
|
+
runSequentialPromises: runSequentialPromises,
|
|
41119
41319
|
scroll: scroll,
|
|
41120
41320
|
throttle: throttle,
|
|
41121
|
-
uid: uid
|
|
41321
|
+
uid: uid
|
|
41122
41322
|
});
|
|
41123
41323
|
|
|
41124
41324
|
Vue.use({ install: install }, {
|