quasar 2.4.3 → 2.4.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (135) hide show
  1. package/dist/api/BottomSheet.json +5 -1
  2. package/dist/api/LoadingBar.json +1 -1
  3. package/dist/api/Notify.json +20 -20
  4. package/dist/api/QAjaxBar.json +23 -4
  5. package/dist/api/QCarouselSlide.json +2 -2
  6. package/dist/api/QChatMessage.json +1 -1
  7. package/dist/api/QImg.json +2 -2
  8. package/dist/api/QParallax.json +1 -1
  9. package/dist/api/QRadio.json +3 -1
  10. package/dist/api/QSelect.json +1 -1
  11. package/dist/api/QTimelineEntry.json +1 -1
  12. package/dist/icon-set/bootstrap-icons.umd.prod.js +1 -1
  13. package/dist/icon-set/eva-icons.umd.prod.js +1 -1
  14. package/dist/icon-set/fontawesome-v5-pro.umd.prod.js +1 -1
  15. package/dist/icon-set/fontawesome-v5.umd.prod.js +1 -1
  16. package/dist/icon-set/ionicons-v4.umd.prod.js +1 -1
  17. package/dist/icon-set/line-awesome.umd.prod.js +1 -1
  18. package/dist/icon-set/material-icons-outlined.umd.prod.js +1 -1
  19. package/dist/icon-set/material-icons-round.umd.prod.js +1 -1
  20. package/dist/icon-set/material-icons-sharp.umd.prod.js +1 -1
  21. package/dist/icon-set/material-icons.umd.prod.js +1 -1
  22. package/dist/icon-set/mdi-v3.umd.prod.js +1 -1
  23. package/dist/icon-set/mdi-v4.umd.prod.js +1 -1
  24. package/dist/icon-set/mdi-v5.umd.prod.js +1 -1
  25. package/dist/icon-set/mdi-v6.umd.prod.js +1 -1
  26. package/dist/icon-set/svg-bootstrap-icons.umd.prod.js +1 -1
  27. package/dist/icon-set/svg-eva-icons.umd.prod.js +1 -1
  28. package/dist/icon-set/svg-fontawesome-v5.umd.prod.js +1 -1
  29. package/dist/icon-set/svg-ionicons-v4.umd.prod.js +1 -1
  30. package/dist/icon-set/svg-ionicons-v5.umd.prod.js +1 -1
  31. package/dist/icon-set/svg-ionicons-v6.umd.prod.js +1 -1
  32. package/dist/icon-set/svg-line-awesome.umd.prod.js +1 -1
  33. package/dist/icon-set/svg-material-icons-outlined.umd.prod.js +1 -1
  34. package/dist/icon-set/svg-material-icons-round.umd.prod.js +1 -1
  35. package/dist/icon-set/svg-material-icons-sharp.umd.prod.js +1 -1
  36. package/dist/icon-set/svg-material-icons.umd.prod.js +1 -1
  37. package/dist/icon-set/svg-mdi-v4.umd.prod.js +1 -1
  38. package/dist/icon-set/svg-mdi-v5.umd.prod.js +1 -1
  39. package/dist/icon-set/svg-mdi-v6.umd.prod.js +1 -1
  40. package/dist/icon-set/svg-themify.umd.prod.js +1 -1
  41. package/dist/icon-set/themify.umd.prod.js +1 -1
  42. package/dist/lang/ar.umd.prod.js +1 -1
  43. package/dist/lang/az-Latn.umd.prod.js +1 -1
  44. package/dist/lang/bg.umd.prod.js +1 -1
  45. package/dist/lang/bn.umd.prod.js +1 -1
  46. package/dist/lang/ca.umd.prod.js +1 -1
  47. package/dist/lang/cs.umd.prod.js +1 -1
  48. package/dist/lang/da.umd.prod.js +1 -1
  49. package/dist/lang/de.umd.prod.js +1 -1
  50. package/dist/lang/el.umd.prod.js +1 -1
  51. package/dist/lang/en-GB.umd.prod.js +1 -1
  52. package/dist/lang/en-US.umd.prod.js +1 -1
  53. package/dist/lang/eo.umd.prod.js +1 -1
  54. package/dist/lang/es.umd.prod.js +1 -1
  55. package/dist/lang/et.umd.prod.js +1 -1
  56. package/dist/lang/fa-IR.umd.prod.js +1 -1
  57. package/dist/lang/fa.umd.prod.js +1 -1
  58. package/dist/lang/fi.umd.prod.js +1 -1
  59. package/dist/lang/fr.umd.prod.js +1 -1
  60. package/dist/lang/gn.umd.prod.js +1 -1
  61. package/dist/lang/he.umd.prod.js +1 -1
  62. package/dist/lang/hr.umd.prod.js +1 -1
  63. package/dist/lang/hu.umd.prod.js +1 -1
  64. package/dist/lang/id.umd.prod.js +1 -1
  65. package/dist/lang/is.umd.prod.js +1 -1
  66. package/dist/lang/it.umd.prod.js +1 -1
  67. package/dist/lang/ja.umd.prod.js +1 -1
  68. package/dist/lang/km.umd.prod.js +1 -1
  69. package/dist/lang/ko-KR.umd.prod.js +1 -1
  70. package/dist/lang/kur-CKB.umd.prod.js +1 -1
  71. package/dist/lang/lt.umd.prod.js +1 -1
  72. package/dist/lang/lu.umd.prod.js +1 -1
  73. package/dist/lang/lv.umd.prod.js +1 -1
  74. package/dist/lang/ml.umd.prod.js +1 -1
  75. package/dist/lang/ms.umd.prod.js +1 -1
  76. package/dist/lang/nb-NO.umd.prod.js +1 -1
  77. package/dist/lang/nl.umd.prod.js +1 -1
  78. package/dist/lang/pl.umd.prod.js +1 -1
  79. package/dist/lang/pt-BR.umd.prod.js +1 -1
  80. package/dist/lang/pt.umd.prod.js +1 -1
  81. package/dist/lang/ro.umd.prod.js +1 -1
  82. package/dist/lang/ru.umd.prod.js +1 -1
  83. package/dist/lang/sk.umd.prod.js +1 -1
  84. package/dist/lang/sl.umd.prod.js +1 -1
  85. package/dist/lang/sr-CYR.umd.prod.js +1 -1
  86. package/dist/lang/sr.umd.prod.js +1 -1
  87. package/dist/lang/sv.umd.prod.js +1 -1
  88. package/dist/lang/ta.umd.prod.js +1 -1
  89. package/dist/lang/th.umd.prod.js +1 -1
  90. package/dist/lang/tr.umd.prod.js +1 -1
  91. package/dist/lang/ug.umd.prod.js +1 -1
  92. package/dist/lang/uk.umd.prod.js +1 -1
  93. package/dist/lang/vi.umd.prod.js +1 -1
  94. package/dist/lang/zh-CN.umd.prod.js +1 -1
  95. package/dist/lang/zh-TW.umd.prod.js +1 -1
  96. package/dist/quasar.cjs.prod.js +2 -2
  97. package/dist/quasar.css +2 -1
  98. package/dist/quasar.esm.prod.js +2 -2
  99. package/dist/quasar.prod.css +1 -1
  100. package/dist/quasar.rtl.css +2 -1
  101. package/dist/quasar.rtl.prod.css +1 -1
  102. package/dist/quasar.sass +3 -2
  103. package/dist/quasar.umd.js +156 -81
  104. package/dist/quasar.umd.prod.js +2 -2
  105. package/dist/ssr-directives/Morph.js +1 -1
  106. package/dist/types/index.d.ts +24 -10
  107. package/dist/vetur/quasar-attributes.json +9 -5
  108. package/dist/vetur/quasar-tags.json +2 -1
  109. package/dist/web-types/web-types.json +22 -13
  110. package/package.json +1 -1
  111. package/src/components/ajax-bar/QAjaxBar.js +47 -26
  112. package/src/components/ajax-bar/QAjaxBar.json +22 -4
  113. package/src/components/breadcrumbs/QBreadcrumbs.js +3 -3
  114. package/src/components/breadcrumbs/QBreadcrumbsEl.js +2 -2
  115. package/src/components/btn/use-btn.js +4 -1
  116. package/src/components/btn-toggle/QBtnToggle.js +2 -0
  117. package/src/components/carousel/QCarouselSlide.json +2 -2
  118. package/src/components/chat/QChatMessage.json +1 -1
  119. package/src/components/icon/QIcon.js +36 -32
  120. package/src/components/icon/QIcon.sass +0 -1
  121. package/src/components/img/QImg.json +2 -2
  122. package/src/components/layout/QLayout.js +50 -1
  123. package/src/components/pagination/QPagination.js +4 -4
  124. package/src/components/parallax/QParallax.json +1 -1
  125. package/src/components/radio/QRadio.js +2 -6
  126. package/src/components/radio/QRadio.json +1 -1
  127. package/src/components/scroll-area/QScrollArea.sass +1 -0
  128. package/src/components/select/QSelect.json +1 -1
  129. package/src/components/timeline/QTimeline.sass +1 -2
  130. package/src/components/timeline/QTimelineEntry.json +1 -1
  131. package/src/css/core/visibility.sass +0 -1
  132. package/src/plugins/BottomSheet.json +7 -1
  133. package/src/plugins/LoadingBar.json +1 -1
  134. package/src/plugins/Notify.json +22 -22
  135. package/src/utils/private/global-dialog.js +4 -4
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Quasar Framework v2.4.3
2
+ * Quasar Framework v2.4.7
3
3
  * (c) 2015-present Razvan Stoenescu
4
4
  * Released under the MIT License.
5
5
  */
@@ -101,6 +101,10 @@ export interface BottomSheet {
101
101
  * Action label
102
102
  */
103
103
  label?: string | number;
104
+ /**
105
+ * Any other custom props
106
+ */
107
+ [key: string]: any;
104
108
  }[];
105
109
  /**
106
110
  * Display actions as a grid instead of as a list
@@ -469,7 +473,7 @@ export interface Notify {
469
473
  */
470
474
  icon?: string;
471
475
  /**
472
- * URL to an avatar/image; Suggestion: use statics folder
476
+ * URL to an avatar/image; Suggestion: public folder
473
477
  */
474
478
  avatar?: string;
475
479
  /**
@@ -593,7 +597,7 @@ export interface Notify {
593
597
  */
594
598
  icon?: string;
595
599
  /**
596
- * URL to an avatar/image; Suggestion: use statics folder
600
+ * URL to an avatar/image; Suggestion: use public folder
597
601
  */
598
602
  avatar?: string;
599
603
  /**
@@ -676,7 +680,7 @@ export interface Notify {
676
680
  */
677
681
  icon?: string;
678
682
  /**
679
- * URL to an avatar/image; Suggestion: use statics folder
683
+ * URL to an avatar/image; Suggestion: use public folder
680
684
  */
681
685
  avatar?: string;
682
686
  /**
@@ -793,7 +797,7 @@ export interface Notify {
793
797
  */
794
798
  icon?: string;
795
799
  /**
796
- * URL to an avatar/image; Suggestion: use statics folder
800
+ * URL to an avatar/image; Suggestion: use public folder
797
801
  */
798
802
  avatar?: string;
799
803
  /**
@@ -1151,14 +1155,20 @@ export interface QAjaxBarProps {
1151
1155
  * Color name for component from the Quasar Color Palette
1152
1156
  */
1153
1157
  color?: string | undefined;
1158
+ /**
1159
+ * Reverse direction of progress
1160
+ */
1161
+ reverse?: boolean | undefined;
1154
1162
  /**
1155
1163
  * Skip Ajax hijacking (not a reactive prop)
1156
1164
  */
1157
1165
  skipHijack?: boolean | undefined;
1158
1166
  /**
1159
- * Reverse direction of progress
1167
+ * Filter which URL should trigger start() + stop()
1168
+ * @param url The URL being triggered
1169
+ * @returns Should the URL received as param trigger start() + stop()?
1160
1170
  */
1161
- reverse?: boolean | undefined;
1171
+ hijackFilter?: ((url: string) => boolean) | undefined;
1162
1172
  /**
1163
1173
  * Emitted when bar is triggered to appear
1164
1174
  */
@@ -2442,7 +2452,7 @@ export interface QCarouselSlideProps {
2442
2452
  */
2443
2453
  disable?: boolean | undefined;
2444
2454
  /**
2445
- * URL pointing to a slide background image (use statics folder)
2455
+ * URL pointing to a slide background image (use public folder)
2446
2456
  */
2447
2457
  imgSrc?: string | undefined;
2448
2458
  }
@@ -7211,7 +7221,7 @@ export interface QRadioProps {
7211
7221
  /**
7212
7222
  * The actual value of the option with which model value is changed
7213
7223
  */
7214
- val: number | string;
7224
+ val: number | string | null | undefined;
7215
7225
  /**
7216
7226
  * Label to display along the radio control (or use the default slot instead of this prop)
7217
7227
  */
@@ -13685,6 +13695,10 @@ declare module "./globals" {
13685
13695
  * Action label
13686
13696
  */
13687
13697
  label?: string | number;
13698
+ /**
13699
+ * Any other custom props
13700
+ */
13701
+ [key: string]: any;
13688
13702
  }[];
13689
13703
  /**
13690
13704
  * Display actions as a grid instead of as a list
@@ -13751,7 +13765,7 @@ declare module "./globals" {
13751
13765
  */
13752
13766
  icon?: string;
13753
13767
  /**
13754
- * URL to an avatar/image; Suggestion: use statics folder
13768
+ * URL to an avatar/image; Suggestion: public folder
13755
13769
  */
13756
13770
  avatar?: string;
13757
13771
  /**
@@ -13875,7 +13889,7 @@ declare module "./globals" {
13875
13889
  */
13876
13890
  icon?: string;
13877
13891
  /**
13878
- * URL to an avatar/image; Suggestion: use statics folder
13892
+ * URL to an avatar/image; Suggestion: use public folder
13879
13893
  */
13880
13894
  avatar?: string;
13881
13895
  /**
@@ -11,13 +11,17 @@
11
11
  "type": "string",
12
12
  "description": "Color name for component from the Quasar Color Palette"
13
13
  },
14
+ "q-ajax-bar/reverse": {
15
+ "type": "boolean",
16
+ "description": "Reverse direction of progress"
17
+ },
14
18
  "q-ajax-bar/skip-hijack": {
15
19
  "type": "boolean",
16
20
  "description": "Skip Ajax hijacking (not a reactive prop)"
17
21
  },
18
- "q-ajax-bar/reverse": {
19
- "type": "boolean",
20
- "description": "Reverse direction of progress"
22
+ "q-ajax-bar/hijack-filter": {
23
+ "type": "function",
24
+ "description": "Filter which URL should trigger start() + stop()"
21
25
  },
22
26
  "q-avatar/size": {
23
27
  "type": "string",
@@ -789,7 +793,7 @@
789
793
  },
790
794
  "q-carousel-slide/img-src": {
791
795
  "type": "string",
792
- "description": "URL pointing to a slide background image (use statics folder)"
796
+ "description": "URL pointing to a slide background image (use public folder)"
793
797
  },
794
798
  "q-chat-message/sent": {
795
799
  "type": "boolean",
@@ -3372,7 +3376,7 @@
3372
3376
  "description": "Model of the component; Either use this property (along with a listener for 'update:model-value' event) OR use v-model directive"
3373
3377
  },
3374
3378
  "q-radio/val": {
3375
- "type": "number|string",
3379
+ "type": "number|string|null|undefined",
3376
3380
  "description": "The actual value of the option with which model value is changed"
3377
3381
  },
3378
3382
  "q-radio/label": {
@@ -4,8 +4,9 @@
4
4
  "position",
5
5
  "size",
6
6
  "color",
7
+ "reverse",
7
8
  "skip-hijack",
8
- "reverse"
9
+ "hijack-filter"
9
10
  ],
10
11
  "description": ""
11
12
  },
@@ -2,7 +2,7 @@
2
2
  "$schema": "",
3
3
  "framework": "vue",
4
4
  "name": "quasar",
5
- "version": "2.4.3",
5
+ "version": "2.4.7",
6
6
  "contributions": {
7
7
  "html": {
8
8
  "types-syntax": "typescript",
@@ -44,24 +44,33 @@
44
44
  "doc-url": "https://v2.quasar.dev/vue-components/ajax-bar"
45
45
  },
46
46
  {
47
- "name": "skip-hijack",
47
+ "name": "reverse",
48
48
  "value": {
49
49
  "kind": "expression",
50
50
  "type": "boolean"
51
51
  },
52
- "description": "Skip Ajax hijacking (not a reactive prop)",
52
+ "description": "Reverse direction of progress",
53
53
  "doc-url": "https://v2.quasar.dev/vue-components/ajax-bar",
54
54
  "type": "boolean"
55
55
  },
56
56
  {
57
- "name": "reverse",
57
+ "name": "skip-hijack",
58
58
  "value": {
59
59
  "kind": "expression",
60
60
  "type": "boolean"
61
61
  },
62
- "description": "Reverse direction of progress",
62
+ "description": "Skip Ajax hijacking (not a reactive prop)",
63
63
  "doc-url": "https://v2.quasar.dev/vue-components/ajax-bar",
64
64
  "type": "boolean"
65
+ },
66
+ {
67
+ "name": "hijack-filter",
68
+ "value": {
69
+ "kind": "expression",
70
+ "type": "Function"
71
+ },
72
+ "description": "Filter which URL should trigger start() + stop()",
73
+ "doc-url": "https://v2.quasar.dev/vue-components/ajax-bar"
65
74
  }
66
75
  ],
67
76
  "events": [
@@ -2434,7 +2443,7 @@
2434
2443
  "kind": "expression",
2435
2444
  "type": "string"
2436
2445
  },
2437
- "description": "URL pointing to a slide background image (use statics folder)\n\nExamples:\n(statics folder) src=\"statics/img/my-bg.png\"\n(assets folder) src=\"~assets/my-img.png\"\n(relative path format) :src=\"require('./my_img.jpg')\"\n(URL) src=\"https://placeimg.com/500/300/nature\"",
2446
+ "description": "URL pointing to a slide background image (use public folder)\n\nExamples:\n(public folder) src=\"img/my-bg.png\"\n(assets folder) src=\"~assets/my-img.png\"\n(relative path format) :src=\"require('./my_img.jpg')\"\n(URL) src=\"https://placeimg.com/500/300/nature\"",
2438
2447
  "doc-url": "https://v2.quasar.dev/vue-components/carousel"
2439
2448
  }
2440
2449
  ],
@@ -2507,7 +2516,7 @@
2507
2516
  "kind": "expression",
2508
2517
  "type": "string"
2509
2518
  },
2510
- "description": "URL to the avatar image of the author\n\nExamples:\n(statics folder) src=\"statics/boy-avatar.png\"\n(assets folder) src=\"~assets/boy-avatar.png\"\n(relative path format) :src=\"require('./my_img.jpg')\"\n(URL) src=\"https://placeimg.com/500/300/nature\"",
2519
+ "description": "URL to the avatar image of the author\n\nExamples:\n(public folder) src=\"boy-avatar.png\"\n(assets folder) src=\"~assets/boy-avatar.png\"\n(relative path format) :src=\"require('./my_img.jpg')\"\n(URL) src=\"https://placeimg.com/500/300/nature\"",
2511
2520
  "doc-url": "https://v2.quasar.dev/vue-components/chat"
2512
2521
  },
2513
2522
  {
@@ -7114,7 +7123,7 @@
7114
7123
  "kind": "expression",
7115
7124
  "type": "string"
7116
7125
  },
7117
- "description": "Path to image\n\nExamples:\n(statics folder) src=\"statics/img/something.png\"\n(assets folder) src=\"~assets/my-img.gif\"\n(relative path format) :src=\"require('./my_img.jpg')\"\n(URL) src=\"https://placeimg.com/500/300/nature\"",
7126
+ "description": "Path to image\n\nExamples:\n(public folder) src=\"img/something.png\"\n(assets folder) src=\"~assets/my-img.gif\"\n(relative path format) :src=\"require('./my_img.jpg')\"\n(URL) src=\"https://placeimg.com/500/300/nature\"",
7118
7127
  "doc-url": "https://v2.quasar.dev/vue-components/img"
7119
7128
  },
7120
7129
  {
@@ -7141,7 +7150,7 @@
7141
7150
  "kind": "expression",
7142
7151
  "type": "string"
7143
7152
  },
7144
- "description": "While waiting for your image to load, you can use a placeholder image\n\nExamples:\n(statics folder) src=\"statics/img/some-placeholder.png\"\n(assets folder) src=\"~assets/my-placeholder.gif\"\n(relative path format) :src=\"require('./placeholder.jpg')\"\n(URL) src=\"https://placeimg.com/500/300/nature\"",
7153
+ "description": "While waiting for your image to load, you can use a placeholder image\n\nExamples:\n(public folder) src=\"img/some-placeholder.png\"\n(assets folder) src=\"~assets/my-placeholder.gif\"\n(relative path format) :src=\"require('./placeholder.jpg')\"\n(URL) src=\"https://placeimg.com/500/300/nature\"",
7145
7154
  "doc-url": "https://v2.quasar.dev/vue-components/img"
7146
7155
  },
7147
7156
  {
@@ -10240,7 +10249,7 @@
10240
10249
  "kind": "expression",
10241
10250
  "type": "string"
10242
10251
  },
10243
- "description": "Path to image (unless a 'media' slot is used)\n\nExamples:\n(statics folder) src=\"statics/img/something.png\"\n(assets folder) src=\"~assets/my-img.png\"\n(relative path format) :src=\"require('./my_img.jpg')\"\n(URL) src=\"https://some-site.net/some-img.jpg\"",
10252
+ "description": "Path to image (unless a 'media' slot is used)\n\nExamples:\n(public folder) src=\"img/something.png\"\n(assets folder) src=\"~assets/my-img.png\"\n(relative path format) :src=\"require('./my_img.jpg')\"\n(URL) src=\"https://some-site.net/some-img.jpg\"",
10244
10253
  "doc-url": "https://v2.quasar.dev/vue-components/parallax"
10245
10254
  },
10246
10255
  {
@@ -10853,7 +10862,7 @@
10853
10862
  "name": "val",
10854
10863
  "value": {
10855
10864
  "kind": "expression",
10856
- "type": "number|string"
10865
+ "type": "number|string|null|undefined"
10857
10866
  },
10858
10867
  "description": "The actual value of the option with which model value is changed\n\nExamples:\nopt1\n50",
10859
10868
  "doc-url": "https://v2.quasar.dev/vue-components/radio",
@@ -12534,7 +12543,7 @@
12534
12543
  "kind": "expression",
12535
12544
  "type": "any[]|string|object"
12536
12545
  },
12537
- "description": "Style definitions to be attributed to the popup content\n\nExamples:\nbackground-color: #ff0000\n:content-style=\"{ backgroundColor: '#ff0000' }\"",
12546
+ "description": "Style definitions to be attributed to the popup content\n\nExamples:\nbackground-color: #ff0000\n:popup-content-style=\"{ backgroundColor: '#ff0000' }\"",
12538
12547
  "doc-url": "https://v2.quasar.dev/vue-components/select"
12539
12548
  },
12540
12549
  {
@@ -17214,7 +17223,7 @@
17214
17223
  "kind": "expression",
17215
17224
  "type": "string"
17216
17225
  },
17217
- "description": "URL to the avatar image; Icon takes precedence if used, so it replaces avatar\n\nExamples:\n(statics folder) src=\"statics/img/my-bg.png\"\n(assets folder) src=\"~assets/my-img.png\"\n(relative path format) :src=\"require('./my_img.jpg')\"\n(URL) src=\"https://placeimg.com/500/300/nature\"",
17226
+ "description": "URL to the avatar image; Icon takes precedence if used, so it replaces avatar\n\nExamples:\n(public folder) src=\"img/my-bg.png\"\n(assets folder) src=\"~assets/my-img.png\"\n(relative path format) :src=\"require('./my_img.jpg')\"\n(URL) src=\"https://placeimg.com/500/300/nature\"",
17218
17227
  "doc-url": "https://v2.quasar.dev/vue-components/timeline"
17219
17228
  },
17220
17229
  {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "quasar",
3
- "version": "2.4.3",
3
+ "version": "2.4.7",
4
4
  "description": "Build high-performance VueJS user interfaces (SPA, PWA, SSR, Mobile and Desktop) in record time",
5
5
  "main": "dist/quasar.cjs.prod.js",
6
6
  "module": "dist/quasar.esm.prod.js",
@@ -5,22 +5,22 @@ import { between } from '../../utils/format.js'
5
5
 
6
6
  const
7
7
  xhr = __QUASAR_SSR_SERVER__ ? null : XMLHttpRequest,
8
- send = __QUASAR_SSR_SERVER__ ? null : xhr.prototype.send,
9
- stackStart = [],
10
- stackStop = []
8
+ open = __QUASAR_SSR_SERVER__ ? null : xhr.prototype.open,
9
+ positionValues = [ 'top', 'right', 'bottom', 'left' ]
11
10
 
11
+ let stack = []
12
12
  let highjackCount = 0
13
13
 
14
14
  function translate ({ p, pos, active, horiz, reverse, dir }) {
15
15
  let x = 1, y = 1
16
16
 
17
- if (horiz) {
18
- if (reverse) { x = -1 }
17
+ if (horiz === true) {
18
+ if (reverse === true) { x = -1 }
19
19
  if (pos === 'bottom') { y = -1 }
20
20
  return { transform: `translate3d(${ x * (p - 100) }%,${ active ? 0 : y * -200 }%,0)` }
21
21
  }
22
22
 
23
- if (reverse) { y = -1 }
23
+ if (reverse === true) { y = -1 }
24
24
  if (pos === 'right') { x = -1 }
25
25
  return { transform: `translate3d(${ active ? 0 : dir * x * -200 }%,${ y * (p - 100) }%,0)` }
26
26
  }
@@ -46,32 +46,45 @@ function inc (p, amount) {
46
46
  return between(p + amount, 0, 100)
47
47
  }
48
48
 
49
- function highjackAjax (start, stop) {
50
- stackStart.push(start)
51
- stackStop.push(stop)
52
-
49
+ function highjackAjax (stackEntry) {
53
50
  highjackCount++
54
51
 
52
+ stack.push(stackEntry)
53
+
55
54
  if (highjackCount > 1) { return }
56
55
 
57
- function endHandler () {
58
- stackStop.forEach(fn => { fn() })
59
- }
56
+ xhr.prototype.open = function (_, url) {
57
+ const stopStack = []
58
+
59
+ const loadStart = () => {
60
+ stack.forEach(entry => {
61
+ if (
62
+ entry.hijackFilter.value === null
63
+ || (entry.hijackFilter.value(url) === true)
64
+ ) {
65
+ entry.start()
66
+ stopStack.push(entry.stop)
67
+ }
68
+ })
69
+ }
60
70
 
61
- xhr.prototype.send = function (/* ...args */) {
62
- stackStart.forEach(fn => { fn() })
63
- this.addEventListener('loadend', endHandler, false)
64
- send.apply(this, arguments)
71
+ const loadEnd = () => {
72
+ stopStack.forEach(stop => { stop() })
73
+ }
74
+
75
+ this.addEventListener('loadstart', loadStart, { once: true })
76
+ this.addEventListener('loadend', loadEnd, { once: true })
77
+
78
+ open.apply(this, arguments)
65
79
  }
66
80
  }
67
81
 
68
- function restoreAjax (start, stop) {
69
- stackStart.splice(stackStart.indexOf(start), 1)
70
- stackStop.splice(stackStop.indexOf(stop), 1)
82
+ function restoreAjax (start) {
83
+ stack = stack.filter(entry => entry.start !== start)
71
84
 
72
85
  highjackCount = Math.max(0, highjackCount - 1)
73
86
  if (highjackCount === 0) {
74
- xhr.prototype.send = send
87
+ xhr.prototype.open = open
75
88
  }
76
89
  }
77
90
 
@@ -82,15 +95,19 @@ export default createComponent({
82
95
  position: {
83
96
  type: String,
84
97
  default: 'top',
85
- validator: val => [ 'top', 'right', 'bottom', 'left' ].includes(val)
98
+ validator: val => positionValues.includes(val)
86
99
  },
100
+
87
101
  size: {
88
102
  type: String,
89
103
  default: '2px'
90
104
  },
105
+
91
106
  color: String,
92
107
  skipHijack: Boolean,
93
- reverse: Boolean
108
+ reverse: Boolean,
109
+
110
+ hijackFilter: Function
94
111
  },
95
112
 
96
113
  emits: [ 'start', 'stop' ],
@@ -122,7 +139,7 @@ export default createComponent({
122
139
  active,
123
140
  horiz: horizontal.value,
124
141
  reverse: proxy.$q.lang.rtl === true && [ 'top', 'bottom' ].includes(props.position)
125
- ? !props.reverse
142
+ ? props.reverse === false
126
143
  : props.reverse,
127
144
  dir: proxy.$q.lang.rtl === true ? -1 : 1
128
145
  })
@@ -218,13 +235,17 @@ export default createComponent({
218
235
  onMounted(() => {
219
236
  if (props.skipHijack !== true) {
220
237
  hijacked = true
221
- highjackAjax(start, stop)
238
+ highjackAjax({
239
+ start,
240
+ stop,
241
+ hijackFilter: computed(() => props.hijackFilter || null)
242
+ })
222
243
  }
223
244
  })
224
245
 
225
246
  onBeforeUnmount(() => {
226
247
  clearTimeout(timer)
227
- hijacked === true && restoreAjax(start, stop)
248
+ hijacked === true && restoreAjax(start)
228
249
  })
229
250
 
230
251
  // expose public methods
@@ -22,16 +22,34 @@
22
22
  "extends": "color"
23
23
  },
24
24
 
25
- "skip-hijack": {
25
+ "reverse": {
26
26
  "type": "Boolean",
27
- "desc": "Skip Ajax hijacking (not a reactive prop)",
27
+ "desc": "Reverse direction of progress",
28
28
  "category": "behavior"
29
29
  },
30
30
 
31
- "reverse": {
31
+ "skip-hijack": {
32
32
  "type": "Boolean",
33
- "desc": "Reverse direction of progress",
33
+ "desc": "Skip Ajax hijacking (not a reactive prop)",
34
34
  "category": "behavior"
35
+ },
36
+
37
+ "hijack-filter": {
38
+ "type": "Function",
39
+ "desc": "Filter which URL should trigger start() + stop()",
40
+ "params": {
41
+ "url": {
42
+ "type": "String",
43
+ "desc": "The URL being triggered",
44
+ "examples": [ "https://some.url/path" ]
45
+ }
46
+ },
47
+ "returns": {
48
+ "type": "Boolean",
49
+ "desc": "Should the URL received as param trigger start() + stop()?"
50
+ },
51
+ "category": "behavior",
52
+ "addedIn": "v2.4.5"
35
53
  }
36
54
  },
37
55
 
@@ -40,7 +40,7 @@ export default createComponent({
40
40
  )
41
41
 
42
42
  const sepClass = computed(() => (props.separatorColor ? ` text-${ props.separatorColor }` : ''))
43
- const activeClass = computed(() => `text-${ props.activeColor }`)
43
+ const activeClass = computed(() => ` text-${ props.activeColor }`)
44
44
 
45
45
  return () => {
46
46
  const vnodes = getNormalizedVNodes(
@@ -62,8 +62,8 @@ export default createComponent({
62
62
  if (comp.type !== void 0 && comp.type.name === 'QBreadcrumbsEl') {
63
63
  const middle = els < len
64
64
  const disabled = comp.props !== null && disabledValues.includes(comp.props.disable)
65
- const cls = (middle === true ? ' q-breadcrumbs--last' : '')
66
- + (disabled !== true && middle === true ? ' ' + activeClass.value : '')
65
+ const cls = (middle === true ? '' : ' q-breadcrumbs--last')
66
+ + (disabled !== true && middle === true ? activeClass.value : '')
67
67
 
68
68
  els++
69
69
 
@@ -22,13 +22,13 @@ export default createComponent({
22
22
  },
23
23
 
24
24
  setup (props, { slots }) {
25
- const { linkTag, linkProps, hasRouterLink, navigateToRouterLink } = useRouterLink()
25
+ const { linkTag, linkProps, linkClass, hasRouterLink, navigateToRouterLink } = useRouterLink()
26
26
 
27
27
  const data = computed(() => {
28
28
  const acc = {
29
29
  class: 'q-breadcrumbs__el q-link '
30
30
  + 'flex inline items-center relative-position '
31
- + (props.disable !== true ? 'q-link--focusable' : 'q-breadcrumbs__el--disable'),
31
+ + (props.disable !== true ? 'q-link--focusable' + linkClass.value : 'q-breadcrumbs__el--disable'),
32
32
  ...linkProps.value
33
33
  }
34
34
  if (hasRouterLink.value === true) {
@@ -129,7 +129,10 @@ export default function (props) {
129
129
  }
130
130
 
131
131
  if (linkTag.value === 'a') {
132
- if (acc.href === void 0) {
132
+ if (props.disable === true) {
133
+ acc[ 'aria-disabled' ] = 'true'
134
+ }
135
+ else if (acc.href === void 0) {
133
136
  acc.role = 'button'
134
137
  }
135
138
  if (hasRouterLink.value !== true && mediaTypeRE.test(props.type) === true) {
@@ -89,6 +89,8 @@ export default createComponent({
89
89
  key: i,
90
90
  onClick (e) { set(value, item, e) },
91
91
 
92
+ 'aria-pressed': value === props.modelValue ? 'true' : 'false',
93
+
92
94
  ...attrs,
93
95
  ...opt,
94
96
 
@@ -16,10 +16,10 @@
16
16
 
17
17
  "img-src": {
18
18
  "type": "String",
19
- "desc": "URL pointing to a slide background image (use statics folder)",
19
+ "desc": "URL pointing to a slide background image (use public folder)",
20
20
  "transformAssetUrls": true,
21
21
  "examples": [
22
- "(statics folder) src=\"statics/img/my-bg.png\"",
22
+ "(public folder) src=\"img/my-bg.png\"",
23
23
  "(assets folder) src=\"~assets/my-img.png\"",
24
24
  "(relative path format) :src=\"require('./my_img.jpg')\"",
25
25
  "(URL) src=\"https://placeimg.com/500/300/nature\""
@@ -41,7 +41,7 @@
41
41
  "desc": "URL to the avatar image of the author",
42
42
  "transformAssetUrls": true,
43
43
  "examples": [
44
- "(statics folder) src=\"statics/boy-avatar.png\"",
44
+ "(public folder) src=\"boy-avatar.png\"",
45
45
  "(assets folder) src=\"~assets/boy-avatar.png\"",
46
46
  "(relative path format) :src=\"require('./my_img.jpg')\"",
47
47
  "(URL) src=\"https://placeimg.com/500/300/nature\""