quasar 2.3.4 → 2.4.3
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/BottomSheet.json +1 -1
- package/dist/api/Loading.json +2 -6
- package/dist/api/Notify.json +5 -5
- package/dist/api/QAvatar.json +1 -1
- package/dist/api/QBreadcrumbsEl.json +32 -11
- package/dist/api/QBtn.json +32 -16
- package/dist/api/QBtnDropdown.json +33 -17
- package/dist/api/QBtnToggle.json +4 -1
- package/dist/api/QCarousel.json +4 -4
- package/dist/api/QChatMessage.json +4 -12
- package/dist/api/QChip.json +4 -4
- package/dist/api/QExpansionItem.json +34 -13
- package/dist/api/QFab.json +32 -2
- package/dist/api/QFabAction.json +9 -1
- package/dist/api/QField.json +1 -0
- package/dist/api/QFile.json +1 -0
- package/dist/api/QInput.json +1 -0
- package/dist/api/QItem.json +31 -10
- package/dist/api/QLinearProgress.json +1 -1
- package/dist/api/QOptionGroup.json +74 -4
- package/dist/api/QPagination.json +4 -4
- package/dist/api/QPullToRefresh.json +1 -1
- package/dist/api/QRange.json +592 -107
- package/dist/api/QRating.json +3 -3
- package/dist/api/QRouteTab.json +32 -12
- package/dist/api/QSelect.json +4 -7
- package/dist/api/QSlider.json +504 -39
- package/dist/api/QStep.json +4 -4
- package/dist/api/QStepper.json +4 -4
- package/dist/api/QTab.json +1 -1
- package/dist/api/QTable.json +4 -4
- package/dist/api/QTimelineEntry.json +1 -1
- package/dist/api/QToggle.json +1 -1
- package/dist/api/QTree.json +1 -1
- package/dist/api/QUploader.json +16 -2
- package/dist/api/QVideo.json +11 -1
- package/dist/icon-set/bootstrap-icons.umd.prod.js +1 -1
- package/dist/icon-set/eva-icons.umd.prod.js +1 -1
- package/dist/icon-set/fontawesome-v5-pro.umd.prod.js +1 -1
- package/dist/icon-set/fontawesome-v5.umd.prod.js +1 -1
- package/dist/icon-set/ionicons-v4.umd.prod.js +1 -1
- package/dist/icon-set/line-awesome.umd.prod.js +1 -1
- package/dist/icon-set/material-icons-outlined.umd.prod.js +1 -1
- package/dist/icon-set/material-icons-round.umd.prod.js +1 -1
- package/dist/icon-set/material-icons-sharp.umd.prod.js +1 -1
- package/dist/icon-set/material-icons.umd.prod.js +1 -1
- package/dist/icon-set/mdi-v3.umd.prod.js +1 -1
- package/dist/icon-set/mdi-v4.umd.prod.js +1 -1
- package/dist/icon-set/mdi-v5.umd.prod.js +1 -1
- package/dist/icon-set/mdi-v6.umd.prod.js +1 -1
- package/dist/icon-set/svg-bootstrap-icons.umd.prod.js +1 -1
- package/dist/icon-set/svg-eva-icons.umd.prod.js +1 -1
- package/dist/icon-set/svg-fontawesome-v5.umd.prod.js +1 -1
- package/dist/icon-set/svg-ionicons-v4.umd.prod.js +1 -1
- package/dist/icon-set/svg-ionicons-v5.umd.prod.js +1 -1
- package/dist/icon-set/svg-ionicons-v6.umd.prod.js +1 -1
- package/dist/icon-set/svg-line-awesome.umd.prod.js +1 -1
- package/dist/icon-set/svg-material-icons-outlined.umd.prod.js +1 -1
- package/dist/icon-set/svg-material-icons-round.umd.prod.js +1 -1
- package/dist/icon-set/svg-material-icons-sharp.umd.prod.js +1 -1
- package/dist/icon-set/svg-material-icons.umd.prod.js +1 -1
- package/dist/icon-set/svg-mdi-v4.umd.prod.js +1 -1
- package/dist/icon-set/svg-mdi-v5.umd.prod.js +1 -1
- package/dist/icon-set/svg-mdi-v6.umd.prod.js +1 -1
- package/dist/icon-set/svg-themify.umd.prod.js +1 -1
- package/dist/icon-set/themify.umd.prod.js +1 -1
- package/dist/lang/ar.umd.prod.js +1 -1
- package/dist/lang/az-Latn.umd.prod.js +1 -1
- package/dist/lang/bg.umd.prod.js +1 -1
- package/dist/lang/bn.umd.prod.js +1 -1
- package/dist/lang/ca.umd.prod.js +1 -1
- package/dist/lang/cs.umd.prod.js +1 -1
- package/dist/lang/da.umd.prod.js +1 -1
- package/dist/lang/de.umd.prod.js +1 -1
- package/dist/lang/el.umd.prod.js +1 -1
- package/dist/lang/en-GB.umd.prod.js +1 -1
- package/dist/lang/en-US.umd.prod.js +1 -1
- package/dist/lang/eo.umd.prod.js +1 -1
- package/dist/lang/es.umd.prod.js +1 -1
- package/dist/lang/et.umd.prod.js +1 -1
- package/dist/lang/fa-IR.umd.prod.js +1 -1
- package/dist/lang/fa.umd.prod.js +1 -1
- package/dist/lang/fi.umd.prod.js +1 -1
- package/dist/lang/fr.umd.prod.js +1 -1
- package/dist/lang/gn.umd.prod.js +1 -1
- package/dist/lang/he.umd.prod.js +1 -1
- package/dist/lang/hr.umd.prod.js +1 -1
- package/dist/lang/hu.umd.prod.js +1 -1
- package/dist/lang/id.umd.prod.js +1 -1
- package/dist/lang/is.umd.prod.js +1 -1
- package/dist/lang/it.umd.prod.js +1 -1
- package/dist/lang/ja.umd.prod.js +1 -1
- package/dist/lang/km.umd.prod.js +1 -1
- package/dist/lang/ko-KR.umd.prod.js +1 -1
- package/dist/lang/kur-CKB.umd.prod.js +1 -1
- package/dist/lang/lt.umd.prod.js +1 -1
- package/dist/lang/lu.umd.prod.js +1 -1
- package/dist/lang/lv.umd.prod.js +1 -1
- package/dist/lang/ml.umd.prod.js +1 -1
- package/dist/lang/ms.umd.prod.js +1 -1
- package/dist/lang/nb-NO.umd.prod.js +1 -1
- package/dist/lang/nl.umd.prod.js +1 -1
- package/dist/lang/pl.umd.prod.js +1 -1
- package/dist/lang/pt-BR.umd.prod.js +1 -1
- package/dist/lang/pt.umd.prod.js +1 -1
- package/dist/lang/ro.umd.prod.js +1 -1
- package/dist/lang/ru.umd.prod.js +1 -1
- package/dist/lang/sk.umd.prod.js +1 -1
- package/dist/lang/sl.umd.prod.js +1 -1
- package/dist/lang/sr-CYR.umd.prod.js +1 -1
- package/dist/lang/sr.umd.prod.js +1 -1
- package/dist/lang/sv.umd.prod.js +1 -1
- package/dist/lang/ta.umd.prod.js +1 -1
- package/dist/lang/th.umd.prod.js +1 -1
- package/dist/lang/tr.umd.prod.js +1 -1
- package/dist/lang/ug.umd.prod.js +1 -1
- package/dist/lang/uk.umd.prod.js +1 -1
- package/dist/lang/vi.umd.prod.js +1 -1
- package/dist/lang/zh-CN.umd.prod.js +1 -1
- package/dist/lang/zh-TW.umd.prod.js +1 -1
- package/dist/quasar.cjs.prod.js +2 -2
- package/dist/quasar.css +277 -196
- package/dist/quasar.esm.prod.js +2 -2
- package/dist/quasar.prod.css +1 -1
- package/dist/quasar.rtl.css +344 -275
- package/dist/quasar.rtl.prod.css +1 -1
- package/dist/quasar.sass +243 -189
- package/dist/quasar.umd.js +16670 -16294
- package/dist/quasar.umd.prod.js +2 -2
- package/dist/ssr-directives/Morph.js +1 -1
- package/dist/transforms/loader-asset-urls.json +20 -0
- package/dist/types/api/slider.d.ts +46 -0
- package/dist/types/api/validation.d.ts +4 -0
- package/dist/types/api.d.ts +2 -0
- package/dist/types/composables.d.ts +3 -3
- package/dist/types/index.d.ts +599 -121
- package/dist/types/utils/date.d.ts +2 -1
- package/dist/vetur/quasar-attributes.json +254 -82
- package/dist/vetur/quasar-tags.json +61 -18
- package/dist/web-types/web-types.json +635 -197
- package/package.json +1 -1
- package/src/api.extends.json +1 -2
- package/src/components/breadcrumbs/QBreadcrumbs.js +7 -2
- package/src/components/breadcrumbs/QBreadcrumbs.sass +0 -3
- package/src/components/breadcrumbs/QBreadcrumbsEl.js +14 -8
- package/src/components/btn/QBtn.js +5 -5
- package/src/components/btn/use-btn.js +21 -21
- package/src/components/btn/use-btn.json +22 -13
- package/src/components/btn-toggle/QBtnToggle.json +3 -0
- package/src/components/checkbox/use-checkbox.js +1 -1
- package/src/components/color/QColor.js +32 -26
- package/src/components/color/QColor.sass +10 -23
- package/src/components/date/QDate.sass +2 -0
- package/src/components/dialog/QDialog.js +7 -5
- package/src/components/drawer/QDrawer.js +18 -15
- package/src/components/editor/QEditor.js +1 -1
- package/src/components/editor/QEditor.sass +10 -1
- package/src/components/expansion-item/QExpansionItem.js +4 -1
- package/src/components/fab/QFab.js +18 -12
- package/src/components/fab/QFab.json +33 -0
- package/src/components/fab/QFab.sass +1 -1
- package/src/components/fab/QFabAction.js +14 -7
- package/src/components/fab/QFabAction.json +10 -0
- package/src/components/file/QFile.js +12 -5
- package/src/components/file/QFile.sass +4 -2
- package/src/components/footer/QFooter.js +1 -1
- package/src/components/header/QHeader.js +1 -1
- package/src/components/icon/QIcon.js +1 -1
- package/src/components/infinite-scroll/QInfiniteScroll.js +4 -5
- package/src/components/item/QItem.js +2 -3
- package/src/components/linear-progress/QLinearProgress.json +1 -1
- package/src/components/menu/QMenu.js +6 -2
- package/src/components/option-group/QOptionGroup.js +3 -0
- package/src/components/option-group/QOptionGroup.json +48 -2
- package/src/components/parallax/QParallax.js +4 -2
- package/src/components/popup-edit/QPopupEdit.js +2 -5
- package/src/components/radio/QRadio.js +2 -7
- package/src/components/range/QRange.js +132 -273
- package/src/components/range/QRange.json +11 -121
- package/src/components/rating/QRating.json +3 -3
- package/src/components/resize-observer/QResizeObserver.js +11 -10
- package/src/components/scroll-area/QScrollArea.js +8 -2
- package/src/components/scroll-observer/QScrollObserver.js +2 -0
- package/src/components/select/QSelect.js +4 -1
- package/src/components/slider/QSlider.js +61 -137
- package/src/components/slider/QSlider.json +1 -121
- package/src/components/slider/QSlider.sass +203 -138
- package/src/components/slider/use-slider.js +454 -107
- package/src/components/slider/use-slider.json +546 -0
- package/src/components/stepper/QStepper.js +3 -3
- package/src/components/stepper/QStepper.sass +24 -26
- package/src/components/table/QTable.js +26 -46
- package/src/components/tabs/QRouteTab.js +1 -2
- package/src/components/tabs/QRouteTab.json +0 -7
- package/src/components/tabs/QTabs.js +91 -24
- package/src/components/tabs/use-tab.js +26 -13
- package/src/components/tooltip/QTooltip.js +1 -2
- package/src/components/tree/QTree.js +14 -12
- package/src/components/uploader/QUploader.json +14 -2
- package/src/components/uploader/uploader-core.js +16 -9
- package/src/components/video/QVideo.js +4 -1
- package/src/components/video/QVideo.json +12 -1
- package/src/components/virtual-scroll/QVirtualScroll.sass +1 -0
- package/src/components/virtual-scroll/use-virtual-scroll.js +30 -17
- package/src/composables/private/use-field.js +18 -20
- package/src/composables/private/use-file.js +20 -5
- package/src/composables/private/use-form.js +2 -3
- package/src/composables/private/use-fullscreen.js +15 -4
- package/src/composables/private/use-model-toggle.js +1 -1
- package/src/composables/private/use-portal.js +9 -7
- package/src/composables/private/use-router-link.js +44 -23
- package/src/composables/private/use-router-link.json +26 -10
- package/src/composables/private/use-split-attrs.js +4 -4
- package/src/composables/private/use-tick.js +7 -14
- package/src/composables/private/use-validate.js +21 -15
- package/src/composables/private/use-validate.json +1 -0
- package/src/css/core/helpers.sass +3 -0
- package/src/css/core/positioning.sass +5 -0
- package/src/css/variables.sass +4 -6
- package/src/directives/ScrollFire.js +1 -0
- package/src/icon-set.js +2 -4
- package/src/plugins/AppFullscreen.js +70 -53
- package/src/plugins/AppVisibility.js +2 -3
- package/src/plugins/BottomSheet.js +3 -5
- package/src/plugins/Dialog.js +3 -5
- package/src/plugins/LoadingBar.js +17 -18
- package/src/plugins/Notify.js +296 -295
- package/src/plugins/Platform.js +14 -14
- package/src/utils/clone.js +53 -4
- package/src/utils/date.js +4 -4
- package/src/utils/dom.js +2 -2
- package/src/utils/open-url.js +2 -2
- package/src/utils/patterns.js +1 -0
- package/src/utils/private/define-reactive-plugin.js +10 -8
- package/src/utils/private/focus-manager.js +8 -10
- package/src/utils/private/global-dialog.js +6 -8
- package/src/utils/private/inject-obj-prop.js +13 -0
- package/src/utils/private/is.js +2 -2
package/src/plugins/Platform.js
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
/* eslint-disable no-mixed-operators */
|
|
4
4
|
|
|
5
5
|
import { ref, reactive } from 'vue'
|
|
6
|
+
import { injectProp } from '../utils/private/inject-obj-prop'
|
|
6
7
|
|
|
7
8
|
/**
|
|
8
9
|
* __ QUASAR_SSR __ -> runs on SSR on client or server
|
|
@@ -330,23 +331,22 @@ else {
|
|
|
330
331
|
// devland actually using it as this will get
|
|
331
332
|
// reported under "Cookies" in Google Chrome
|
|
332
333
|
let hasWebStorage
|
|
333
|
-
Object.defineProperty(client.has, 'webStorage', {
|
|
334
|
-
get: () => {
|
|
335
|
-
if (hasWebStorage !== void 0) {
|
|
336
|
-
return hasWebStorage
|
|
337
|
-
}
|
|
338
334
|
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
}
|
|
344
|
-
}
|
|
345
|
-
catch (e) {}
|
|
335
|
+
injectProp(client.has, 'webStorage', () => {
|
|
336
|
+
if (hasWebStorage !== void 0) {
|
|
337
|
+
return hasWebStorage
|
|
338
|
+
}
|
|
346
339
|
|
|
347
|
-
|
|
348
|
-
|
|
340
|
+
try {
|
|
341
|
+
if (window.localStorage) {
|
|
342
|
+
hasWebStorage = true
|
|
343
|
+
return true
|
|
344
|
+
}
|
|
349
345
|
}
|
|
346
|
+
catch (e) {}
|
|
347
|
+
|
|
348
|
+
hasWebStorage = false
|
|
349
|
+
return false
|
|
350
350
|
})
|
|
351
351
|
|
|
352
352
|
iosEmulated = client.is.ios === true
|
package/src/utils/clone.js
CHANGED
|
@@ -1,6 +1,55 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
// adapted from https://stackoverflow.com/a/40294058
|
|
2
|
+
|
|
3
|
+
export default function cloneDeep (data, hash = new WeakMap()) {
|
|
4
|
+
if (Object(data) !== data) return data
|
|
5
|
+
if (hash.has(data)) return hash.get(data)
|
|
6
|
+
|
|
7
|
+
const result = data instanceof Date
|
|
8
|
+
? new Date(data)
|
|
9
|
+
: (data instanceof RegExp
|
|
10
|
+
? new RegExp(data.source, data.flags)
|
|
11
|
+
: (data instanceof Set
|
|
12
|
+
? new Set()
|
|
13
|
+
: (data instanceof Map
|
|
14
|
+
? new Map()
|
|
15
|
+
: (typeof data.constructor !== 'function'
|
|
16
|
+
? Object.create(null)
|
|
17
|
+
: (data.prototype !== void 0 && typeof data.prototype.constructor === 'function'
|
|
18
|
+
? data
|
|
19
|
+
: new data.constructor()
|
|
20
|
+
)
|
|
21
|
+
)
|
|
22
|
+
)
|
|
23
|
+
)
|
|
24
|
+
)
|
|
25
|
+
|
|
26
|
+
if (typeof data.constructor === 'function' && typeof data.valueOf === 'function') {
|
|
27
|
+
const val = data.valueOf()
|
|
28
|
+
|
|
29
|
+
if (Object(val) !== val) {
|
|
30
|
+
const result = new data.constructor(val)
|
|
31
|
+
|
|
32
|
+
hash.set(data, result)
|
|
33
|
+
|
|
34
|
+
return result
|
|
35
|
+
}
|
|
5
36
|
}
|
|
37
|
+
|
|
38
|
+
hash.set(data, result)
|
|
39
|
+
|
|
40
|
+
if (data instanceof Set) {
|
|
41
|
+
data.forEach(val => {
|
|
42
|
+
result.add(cloneDeep(val, hash))
|
|
43
|
+
})
|
|
44
|
+
}
|
|
45
|
+
else if (data instanceof Map) {
|
|
46
|
+
data.forEach((val, key) => {
|
|
47
|
+
result.set(key, cloneDeep(val, hash))
|
|
48
|
+
})
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
return Object.assign(
|
|
52
|
+
result,
|
|
53
|
+
...Object.keys(data).map(key => ({ [ key ]: cloneDeep(data[ key ], hash) }))
|
|
54
|
+
)
|
|
6
55
|
}
|
package/src/utils/date.js
CHANGED
|
@@ -206,12 +206,12 @@ function getChange (date, mod, sign) {
|
|
|
206
206
|
? applyYearMonthDayChange(d, mod, sign)
|
|
207
207
|
: d
|
|
208
208
|
|
|
209
|
-
|
|
209
|
+
for (const key in mod) {
|
|
210
210
|
if (key !== 'years' && key !== 'months' && key !== 'days') {
|
|
211
211
|
const op = capitalize(key)
|
|
212
212
|
t[ `set${ op }` ](t[ `get${ op }` ]() + sign * mod[ key ])
|
|
213
213
|
}
|
|
214
|
-
}
|
|
214
|
+
}
|
|
215
215
|
|
|
216
216
|
return t
|
|
217
217
|
}
|
|
@@ -241,12 +241,12 @@ export function adjustDate (date, mod, utc) {
|
|
|
241
241
|
? applyYearMonthDay(d, mod, middle)
|
|
242
242
|
: d
|
|
243
243
|
|
|
244
|
-
|
|
244
|
+
for (const key in mod) {
|
|
245
245
|
if (key !== 'year' && key !== 'month' && key !== 'date') {
|
|
246
246
|
const op = key.charAt(0).toUpperCase() + key.slice(1)
|
|
247
247
|
t[ `set${ middle }${ op }` ](mod[ key ])
|
|
248
248
|
}
|
|
249
|
-
}
|
|
249
|
+
}
|
|
250
250
|
|
|
251
251
|
return t
|
|
252
252
|
}
|
package/src/utils/dom.js
CHANGED
|
@@ -27,9 +27,9 @@ export function width (el) {
|
|
|
27
27
|
export function css (element, css) {
|
|
28
28
|
const style = element.style
|
|
29
29
|
|
|
30
|
-
|
|
30
|
+
for (const prop in css) {
|
|
31
31
|
style[ prop ] = css[ prop ]
|
|
32
|
-
}
|
|
32
|
+
}
|
|
33
33
|
}
|
|
34
34
|
|
|
35
35
|
export function cssBatch (elements, style) {
|
package/src/utils/open-url.js
CHANGED
|
@@ -5,11 +5,11 @@ import { noop } from '../utils/event.js'
|
|
|
5
5
|
function parseFeatures (winFeatures) {
|
|
6
6
|
const cfg = Object.assign({ noopener: true }, winFeatures)
|
|
7
7
|
const feat = []
|
|
8
|
-
|
|
8
|
+
for (const key in cfg) {
|
|
9
9
|
if (cfg[ key ] === true) {
|
|
10
10
|
feat.push(key)
|
|
11
11
|
}
|
|
12
|
-
}
|
|
12
|
+
}
|
|
13
13
|
return feat.join(',')
|
|
14
14
|
}
|
|
15
15
|
|
package/src/utils/patterns.js
CHANGED
|
@@ -7,6 +7,7 @@ const
|
|
|
7
7
|
rgb = /^rgb\(((0|[1-9][\d]?|1[\d]{0,2}|2[\d]?|2[0-4][\d]|25[0-5]),){2}(0|[1-9][\d]?|1[\d]{0,2}|2[\d]?|2[0-4][\d]|25[0-5])\)$/,
|
|
8
8
|
rgba = /^rgba\(((0|[1-9][\d]?|1[\d]{0,2}|2[\d]?|2[0-4][\d]|25[0-5]),){2}(0|[1-9][\d]?|1[\d]{0,2}|2[\d]?|2[0-4][\d]|25[0-5]),(0|0\.[0-9]+[1-9]|0\.[1-9]+|1)\)$/
|
|
9
9
|
|
|
10
|
+
// Keep in sync with ui/types/api/validation.d.ts
|
|
10
11
|
export const testPattern = {
|
|
11
12
|
date: v => /^-?[\d]+\/[0-1]\d\/[0-3]\d$/.test(v),
|
|
12
13
|
time: v => /^([0-1]?\d|2[0-3]):[0-5]\d$/.test(v),
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
|
|
1
2
|
import { reactive } from 'vue'
|
|
3
|
+
import { injectProp } from './inject-obj-prop'
|
|
2
4
|
|
|
3
5
|
export default __QUASAR_SSR_SERVER__
|
|
4
6
|
? (state, plugin) => {
|
|
@@ -6,16 +8,16 @@ export default __QUASAR_SSR_SERVER__
|
|
|
6
8
|
return plugin
|
|
7
9
|
}
|
|
8
10
|
: (state, plugin) => {
|
|
9
|
-
const props = {}
|
|
10
11
|
const reactiveState = reactive(state)
|
|
11
12
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
13
|
+
for (const name in state) {
|
|
14
|
+
injectProp(
|
|
15
|
+
plugin,
|
|
16
|
+
name,
|
|
17
|
+
() => reactiveState[ name ],
|
|
18
|
+
val => { reactiveState[ name ] = val }
|
|
19
|
+
)
|
|
20
|
+
}
|
|
18
21
|
|
|
19
|
-
Object.defineProperties(plugin, props)
|
|
20
22
|
return plugin
|
|
21
23
|
}
|
|
@@ -1,15 +1,17 @@
|
|
|
1
1
|
let queue = []
|
|
2
|
-
|
|
2
|
+
let waitFlags = []
|
|
3
|
+
|
|
4
|
+
function clearFlag (flag) {
|
|
5
|
+
waitFlags = waitFlags.filter(entry => entry !== flag)
|
|
6
|
+
}
|
|
3
7
|
|
|
4
8
|
export function addFocusWaitFlag (flag) {
|
|
9
|
+
clearFlag(flag)
|
|
5
10
|
waitFlags.push(flag)
|
|
6
11
|
}
|
|
7
12
|
|
|
8
13
|
export function removeFocusWaitFlag (flag) {
|
|
9
|
-
|
|
10
|
-
if (index !== -1) {
|
|
11
|
-
waitFlags.splice(index, 1)
|
|
12
|
-
}
|
|
14
|
+
clearFlag(flag)
|
|
13
15
|
|
|
14
16
|
if (waitFlags.length === 0 && queue.length > 0) {
|
|
15
17
|
// only call last focus handler (can't focus multiple things at once)
|
|
@@ -24,13 +26,9 @@ export function addFocusFn (fn) {
|
|
|
24
26
|
}
|
|
25
27
|
else {
|
|
26
28
|
queue.push(fn)
|
|
27
|
-
return fn
|
|
28
29
|
}
|
|
29
30
|
}
|
|
30
31
|
|
|
31
32
|
export function removeFocusFn (fn) {
|
|
32
|
-
|
|
33
|
-
if (index !== -1) {
|
|
34
|
-
queue.splice(index, 1)
|
|
35
|
-
}
|
|
33
|
+
queue = queue.filter(entry => entry !== fn)
|
|
36
34
|
}
|
|
@@ -133,14 +133,12 @@ export default function (DefaultComponent, supportsCustomComponent, parentApp) {
|
|
|
133
133
|
|
|
134
134
|
let app = createChildApp({
|
|
135
135
|
name: 'QGlobalDialog',
|
|
136
|
-
setup () {
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
})
|
|
143
|
-
}
|
|
136
|
+
setup: () => () => h(DialogComponent, {
|
|
137
|
+
...props,
|
|
138
|
+
ref: dialogRef,
|
|
139
|
+
onOk,
|
|
140
|
+
onHide
|
|
141
|
+
})
|
|
144
142
|
}, parentApp)
|
|
145
143
|
|
|
146
144
|
vm = app.mount(el)
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export function injectProp (target, propName, get, set) {
|
|
2
|
+
Object.defineProperty(target, propName, {
|
|
3
|
+
get,
|
|
4
|
+
set,
|
|
5
|
+
enumerable: true
|
|
6
|
+
})
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export function injectMultipleProps (target, props) {
|
|
10
|
+
for (const key in props) {
|
|
11
|
+
injectProp(target, key, props[ key ])
|
|
12
|
+
}
|
|
13
|
+
}
|
package/src/utils/private/is.js
CHANGED
|
@@ -99,10 +99,10 @@ export function isDeepEqual (a, b) {
|
|
|
99
99
|
return a.toString() === b.toString()
|
|
100
100
|
}
|
|
101
101
|
|
|
102
|
-
const keys = Object.keys(a)
|
|
102
|
+
const keys = Object.keys(a).filter(key => a[ key ] !== void 0)
|
|
103
103
|
length = keys.length
|
|
104
104
|
|
|
105
|
-
if (length !== Object.keys(b).length) {
|
|
105
|
+
if (length !== Object.keys(b).filter(key => b[ key ] !== void 0).length) {
|
|
106
106
|
return false
|
|
107
107
|
}
|
|
108
108
|
|