quasar 2.3.1 → 2.3.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.
Files changed (102) hide show
  1. package/dist/icon-set/bootstrap-icons.umd.prod.js +1 -1
  2. package/dist/icon-set/eva-icons.umd.prod.js +1 -1
  3. package/dist/icon-set/fontawesome-v5-pro.umd.prod.js +1 -1
  4. package/dist/icon-set/fontawesome-v5.umd.prod.js +1 -1
  5. package/dist/icon-set/ionicons-v4.umd.prod.js +1 -1
  6. package/dist/icon-set/line-awesome.umd.prod.js +1 -1
  7. package/dist/icon-set/material-icons-outlined.umd.prod.js +1 -1
  8. package/dist/icon-set/material-icons-round.umd.prod.js +1 -1
  9. package/dist/icon-set/material-icons-sharp.umd.prod.js +1 -1
  10. package/dist/icon-set/material-icons.umd.prod.js +1 -1
  11. package/dist/icon-set/mdi-v3.umd.prod.js +1 -1
  12. package/dist/icon-set/mdi-v4.umd.prod.js +1 -1
  13. package/dist/icon-set/mdi-v5.umd.prod.js +1 -1
  14. package/dist/icon-set/mdi-v6.umd.prod.js +1 -1
  15. package/dist/icon-set/svg-bootstrap-icons.umd.prod.js +1 -1
  16. package/dist/icon-set/svg-eva-icons.umd.prod.js +1 -1
  17. package/dist/icon-set/svg-fontawesome-v5.umd.prod.js +1 -1
  18. package/dist/icon-set/svg-ionicons-v4.umd.prod.js +1 -1
  19. package/dist/icon-set/svg-ionicons-v5.umd.prod.js +1 -1
  20. package/dist/icon-set/svg-ionicons-v6.umd.prod.js +6 -0
  21. package/dist/icon-set/svg-line-awesome.umd.prod.js +1 -1
  22. package/dist/icon-set/svg-material-icons-outlined.umd.prod.js +1 -1
  23. package/dist/icon-set/svg-material-icons-round.umd.prod.js +1 -1
  24. package/dist/icon-set/svg-material-icons-sharp.umd.prod.js +1 -1
  25. package/dist/icon-set/svg-material-icons.umd.prod.js +1 -1
  26. package/dist/icon-set/svg-mdi-v4.umd.prod.js +1 -1
  27. package/dist/icon-set/svg-mdi-v5.umd.prod.js +1 -1
  28. package/dist/icon-set/svg-mdi-v6.umd.prod.js +1 -1
  29. package/dist/icon-set/svg-themify.umd.prod.js +1 -1
  30. package/dist/icon-set/themify.umd.prod.js +1 -1
  31. package/dist/lang/ar.umd.prod.js +1 -1
  32. package/dist/lang/az-Latn.umd.prod.js +1 -1
  33. package/dist/lang/bg.umd.prod.js +1 -1
  34. package/dist/lang/bn.umd.prod.js +1 -1
  35. package/dist/lang/ca.umd.prod.js +1 -1
  36. package/dist/lang/cs.umd.prod.js +1 -1
  37. package/dist/lang/da.umd.prod.js +1 -1
  38. package/dist/lang/de.umd.prod.js +1 -1
  39. package/dist/lang/el.umd.prod.js +1 -1
  40. package/dist/lang/en-GB.umd.prod.js +1 -1
  41. package/dist/lang/en-US.umd.prod.js +1 -1
  42. package/dist/lang/eo.umd.prod.js +1 -1
  43. package/dist/lang/es.umd.prod.js +1 -1
  44. package/dist/lang/et.umd.prod.js +1 -1
  45. package/dist/lang/fa-IR.umd.prod.js +1 -1
  46. package/dist/lang/fa.umd.prod.js +1 -1
  47. package/dist/lang/fi.umd.prod.js +1 -1
  48. package/dist/lang/fr.umd.prod.js +1 -1
  49. package/dist/lang/gn.umd.prod.js +1 -1
  50. package/dist/lang/he.umd.prod.js +1 -1
  51. package/dist/lang/hr.umd.prod.js +1 -1
  52. package/dist/lang/hu.umd.prod.js +1 -1
  53. package/dist/lang/id.umd.prod.js +1 -1
  54. package/dist/lang/is.umd.prod.js +1 -1
  55. package/dist/lang/it.umd.prod.js +1 -1
  56. package/dist/lang/ja.umd.prod.js +1 -1
  57. package/dist/lang/km.umd.prod.js +1 -1
  58. package/dist/lang/ko-KR.umd.prod.js +1 -1
  59. package/dist/lang/kur-CKB.umd.prod.js +1 -1
  60. package/dist/lang/lt.umd.prod.js +1 -1
  61. package/dist/lang/lu.umd.prod.js +1 -1
  62. package/dist/lang/lv.umd.prod.js +1 -1
  63. package/dist/lang/ml.umd.prod.js +1 -1
  64. package/dist/lang/ms.umd.prod.js +1 -1
  65. package/dist/lang/nb-NO.umd.prod.js +1 -1
  66. package/dist/lang/nl.umd.prod.js +1 -1
  67. package/dist/lang/pl.umd.prod.js +1 -1
  68. package/dist/lang/pt-BR.umd.prod.js +1 -1
  69. package/dist/lang/pt.umd.prod.js +1 -1
  70. package/dist/lang/ro.umd.prod.js +1 -1
  71. package/dist/lang/ru.umd.prod.js +1 -1
  72. package/dist/lang/sk.umd.prod.js +1 -1
  73. package/dist/lang/sl.umd.prod.js +1 -1
  74. package/dist/lang/sr-CYR.umd.prod.js +1 -1
  75. package/dist/lang/sr.umd.prod.js +1 -1
  76. package/dist/lang/sv.umd.prod.js +1 -1
  77. package/dist/lang/ta.umd.prod.js +1 -1
  78. package/dist/lang/th.umd.prod.js +1 -1
  79. package/dist/lang/tr.umd.prod.js +1 -1
  80. package/dist/lang/ug.umd.prod.js +1 -1
  81. package/dist/lang/uk.umd.prod.js +1 -1
  82. package/dist/lang/vi.umd.prod.js +1 -1
  83. package/dist/lang/zh-CN.umd.prod.js +1 -1
  84. package/dist/lang/zh-TW.umd.prod.js +1 -1
  85. package/dist/quasar.cjs.prod.js +2 -2
  86. package/dist/quasar.esm.prod.js +2 -2
  87. package/dist/quasar.sass +1 -1
  88. package/dist/quasar.umd.js +18 -11
  89. package/dist/quasar.umd.prod.js +2 -2
  90. package/dist/ssr-directives/Morph.js +1 -1
  91. package/dist/types/composables.d.ts +5 -1
  92. package/dist/types/extras/icon-set.d.ts +1 -0
  93. package/dist/web-types/web-types.json +1 -1
  94. package/icon-set/svg-ionicons-v6.js +225 -0
  95. package/package.json +2 -2
  96. package/src/components/editor/QEditor.js +2 -2
  97. package/src/components/icon/QIcon.js +1 -1
  98. package/src/components/scroll-area/QScrollArea.js +1 -1
  99. package/src/components/select/QSelect.js +1 -1
  100. package/src/composables/private/use-field.js +2 -2
  101. package/src/composables/private/use-split-attrs.js +7 -1
  102. package/src/composables/use-dialog-plugin-component.js +1 -0
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Quasar Framework v2.3.1
2
+ * Quasar Framework v2.3.2
3
3
  * (c) 2015-present Razvan Stoenescu
4
4
  * Released under the MIT License.
5
5
  */
@@ -12,7 +12,11 @@ interface useDialogPluginComponent {
12
12
  onDialogOK: (payload?: any) => void;
13
13
  onDialogCancel: () => void;
14
14
  };
15
- emits: string[];
15
+ emits: ['ok', 'hide'];
16
+ emitsObject: {
17
+ ok: () => true;
18
+ hide: () => true;
19
+ }
16
20
  }
17
21
 
18
22
  export const useDialogPluginComponent: useDialogPluginComponent;
@@ -111,6 +111,7 @@ export type QuasarIconSets =
111
111
  | "fontawesome-v5"
112
112
  | "fontawesome-v5-pro"
113
113
  | "svg-fontawesome-v5"
114
+ | "svg-ionicons-v6"
114
115
  | "svg-ionicons-v5"
115
116
  | "ionicons-v4"
116
117
  | "svg-ionicons-v4"
@@ -2,7 +2,7 @@
2
2
  "$schema": "",
3
3
  "framework": "vue",
4
4
  "name": "quasar",
5
- "version": "2.3.1",
5
+ "version": "2.3.2",
6
6
  "contributions": {
7
7
  "html": {
8
8
  "types-syntax": "typescript",
@@ -0,0 +1,225 @@
1
+
2
+ import {
3
+ ionCheckmark,
4
+ ionAlert,
5
+ ionInformationCircleOutline,
6
+ ionArrowUp,
7
+ ionArrowForward,
8
+ ionArrowDown,
9
+ ionArrowBack,
10
+ ionCaretDownOutline,
11
+ ionAperture,
12
+ ionOptions,
13
+ ionApps,
14
+ ionRefresh,
15
+ ionSquare,
16
+ ionCloseCircle,
17
+ ionTime,
18
+ ionCalendar,
19
+ ionLink,
20
+ ionExpand,
21
+ ionChatboxEllipses,
22
+ ionPrint,
23
+ ionArrowUndo,
24
+ ionArrowRedo,
25
+ ionCodeSlash,
26
+ ionAdd,
27
+ ionClose,
28
+ ionPlaySkipBackCircle,
29
+ ionPlaySkipForwardCircle,
30
+ ionStar,
31
+ ionCreate,
32
+ ionWarning,
33
+ ionPlay,
34
+ ionAddCircle,
35
+ ionCloudUpload,
36
+ ionTrash,
37
+ ionCheckmarkDone,
38
+ ionChevronDown,
39
+ ionChevronUp,
40
+ ionChevronBack,
41
+ ionChevronForward,
42
+ ionChevronBackCircle,
43
+ ionChevronForwardCircle
44
+ } from '@quasar/extras/ionicons-v6'
45
+
46
+ // there are some icons that are needed but not available
47
+ // so we import them from MDI as svgs
48
+
49
+ import {
50
+ mdiFormatBold,
51
+ mdiFormatItalic,
52
+ mdiFormatStrikethroughVariant,
53
+ mdiFormatUnderline,
54
+ mdiFormatListBulleted,
55
+ mdiFormatListNumbered,
56
+ mdiFormatSubscript,
57
+ mdiFormatSuperscript,
58
+ mdiFormatAlignLeft,
59
+ mdiFormatAlignCenter,
60
+ mdiFormatAlignRight,
61
+ mdiFormatAlignJustify,
62
+ mdiFormatIndentDecrease,
63
+ mdiFormatIndentIncrease,
64
+ mdiFormatClear,
65
+ mdiFormatColorText,
66
+ mdiFormatSize,
67
+ mdiMinus,
68
+ mdiFormatHeader1,
69
+ mdiFormatHeader2,
70
+ mdiFormatHeader3,
71
+ mdiFormatHeader4,
72
+ mdiFormatHeader5,
73
+ mdiFormatHeader6,
74
+ mdiNumeric1Box,
75
+ mdiNumeric2Box,
76
+ mdiNumeric3Box,
77
+ mdiNumeric4Box,
78
+ mdiNumeric5Box,
79
+ mdiNumeric6Box,
80
+ mdiNumeric7Box,
81
+ mdiFormatFont
82
+ } from '@quasar/extras/mdi-v6'
83
+
84
+ export default {
85
+ name: 'svg-ionicons-v6',
86
+ type: {
87
+ positive: ionCheckmark,
88
+ negative: ionAlert,
89
+ info: ionInformationCircleOutline,
90
+ warning: ionAlert
91
+ },
92
+ arrow: {
93
+ up: ionArrowUp,
94
+ right: ionArrowForward,
95
+ down: ionArrowDown,
96
+ left: ionArrowBack,
97
+ dropdown: ionCaretDownOutline
98
+ },
99
+ chevron: {
100
+ left: ionArrowBack,
101
+ right: ionArrowForward
102
+ },
103
+ colorPicker: {
104
+ spectrum: ionAperture,
105
+ tune: ionOptions,
106
+ palette: ionApps
107
+ },
108
+ pullToRefresh: {
109
+ icon: ionRefresh
110
+ },
111
+ carousel: {
112
+ left: ionChevronBack,
113
+ right: ionChevronForward,
114
+ up: ionChevronUp,
115
+ down: ionChevronDown,
116
+ navigationIcon: ionSquare
117
+ },
118
+ chip: {
119
+ remove: ionCloseCircle,
120
+ selected: ionCheckmark
121
+ },
122
+ datetime: {
123
+ arrowLeft: ionChevronBack,
124
+ arrowRight: ionChevronForward,
125
+ now: ionTime,
126
+ today: ionCalendar
127
+ },
128
+ editor: { // requires Material icons for some as Ionicons simply does not have everything needed
129
+ hyperlink: ionLink,
130
+ toggleFullscreen: ionExpand,
131
+ quote: ionChatboxEllipses,
132
+ print: ionPrint,
133
+ undo: ionArrowUndo,
134
+ redo: ionArrowRedo,
135
+ code: ionCodeSlash,
136
+ viewSource: ionCodeSlash,
137
+
138
+ bold: mdiFormatBold,
139
+ italic: mdiFormatItalic,
140
+ strikethrough: mdiFormatStrikethroughVariant,
141
+ underline: mdiFormatUnderline,
142
+ unorderedList: mdiFormatListBulleted,
143
+ orderedList: mdiFormatListNumbered,
144
+ subscript: mdiFormatSubscript,
145
+ superscript: mdiFormatSuperscript,
146
+ left: mdiFormatAlignLeft,
147
+ center: mdiFormatAlignCenter,
148
+ right: mdiFormatAlignRight,
149
+ justify: mdiFormatAlignJustify,
150
+ outdent: mdiFormatIndentDecrease,
151
+ indent: mdiFormatIndentIncrease,
152
+ removeFormat: mdiFormatClear,
153
+ formatting: mdiFormatColorText,
154
+ fontSize: mdiFormatSize,
155
+ align: mdiFormatAlignLeft,
156
+ hr: mdiMinus,
157
+ heading: mdiFormatSize,
158
+ heading1: mdiFormatHeader1,
159
+ heading2: mdiFormatHeader2,
160
+ heading3: mdiFormatHeader3,
161
+ heading4: mdiFormatHeader4,
162
+ heading5: mdiFormatHeader5,
163
+ heading6: mdiFormatHeader6,
164
+ size: mdiFormatSize,
165
+ size1: mdiNumeric1Box,
166
+ size2: mdiNumeric2Box,
167
+ size3: mdiNumeric3Box,
168
+ size4: mdiNumeric4Box,
169
+ size5: mdiNumeric5Box,
170
+ size6: mdiNumeric6Box,
171
+ size7: mdiNumeric7Box,
172
+ font: mdiFormatFont
173
+ },
174
+ expansionItem: {
175
+ icon: ionCaretDownOutline,
176
+ denseIcon: ionCaretDownOutline
177
+ },
178
+ fab: {
179
+ icon: ionAdd,
180
+ activeIcon: ionClose
181
+ },
182
+ field: {
183
+ clear: ionCloseCircle,
184
+ error: ionAlert
185
+ },
186
+ pagination: {
187
+ first: ionPlaySkipBackCircle,
188
+ prev: ionChevronBackCircle,
189
+ next: ionChevronForwardCircle,
190
+ last: ionPlaySkipForwardCircle
191
+ },
192
+ rating: {
193
+ icon: ionStar
194
+ },
195
+ stepper: {
196
+ done: ionCheckmark,
197
+ active: ionCreate,
198
+ error: ionWarning
199
+ },
200
+ tabs: {
201
+ left: ionChevronBack,
202
+ right: ionChevronForward,
203
+ up: ionChevronUp,
204
+ down: ionChevronDown
205
+ },
206
+ table: {
207
+ arrowUp: ionArrowUp,
208
+ warning: ionWarning,
209
+ firstPage: ionPlaySkipBackCircle,
210
+ prevPage: ionChevronBackCircle,
211
+ nextPage: ionChevronForwardCircle,
212
+ lastPage: ionPlaySkipForwardCircle
213
+ },
214
+ tree: {
215
+ icon: ionPlay
216
+ },
217
+ uploader: {
218
+ done: ionCheckmark,
219
+ clear: ionClose,
220
+ add: ionAddCircle,
221
+ upload: ionCloudUpload,
222
+ removeQueue: ionTrash,
223
+ removeUploaded: ionCheckmarkDone
224
+ }
225
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "quasar",
3
- "version": "2.3.1",
3
+ "version": "2.3.2",
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",
@@ -63,7 +63,7 @@
63
63
  "devDependencies": {
64
64
  "@babel/eslint-parser": "^7.13.14",
65
65
  "@quasar/app": "^3.0.0",
66
- "@quasar/extras": "^1.11.0",
66
+ "@quasar/extras": "^1.12.0",
67
67
  "@rollup/plugin-node-resolve": "^11.2.1",
68
68
  "@rollup/plugin-replace": "^2.3.3",
69
69
  "babel-preset-es2015-rollup": "^3.0.0",
@@ -80,12 +80,12 @@ export default createComponent({
80
80
  ],
81
81
 
82
82
  setup (props, { slots, emit, attrs }) {
83
- const { proxy } = getCurrentInstance()
83
+ const { proxy, vnode } = getCurrentInstance()
84
84
  const { $q } = proxy
85
85
 
86
86
  const isDark = useDark(props, $q)
87
87
  const { inFullscreen, toggleFullscreen } = useFullscreen()
88
- const splitAttrs = useSplitAttrs(attrs)
88
+ const splitAttrs = useSplitAttrs(attrs, vnode)
89
89
 
90
90
  const rootRef = ref(null)
91
91
  const contentRef = ref(null)
@@ -33,7 +33,7 @@ const mRE = /^M/
33
33
  const imgRE = /^img:/
34
34
  const svgUseRE = /^svguse:/
35
35
  const ionRE = /^ion-/
36
- const faLaRE = /^[l|f]a[s|r|l|b|d]? /
36
+ const faLaRE = /^[l|f]a[s|r|l|b|d|k]? /
37
37
 
38
38
  export default createComponent({
39
39
  name: 'QIcon',
@@ -173,7 +173,7 @@ export default createComponent({
173
173
  )
174
174
 
175
175
  const mainStyle = computed(() => (
176
- scroll.vertical.thumbHidden.value === true || scroll.horizontal.thumbHidden.value === true
176
+ scroll.vertical.thumbHidden.value === true && scroll.horizontal.thumbHidden.value === true
177
177
  ? props.contentStyle
178
178
  : props.contentActiveStyle
179
179
  ))
@@ -1173,7 +1173,7 @@ export default createComponent({
1173
1173
  function getDialog () {
1174
1174
  const content = [
1175
1175
  h(QField, {
1176
- class: `col-auto ${ state.fieldClass }`,
1176
+ class: `col-auto ${ state.fieldClass.value }`,
1177
1177
  ...innerFieldProps.value,
1178
1178
  for: state.targetUid.value,
1179
1179
  dark: isOptionsDark.value,
@@ -75,7 +75,7 @@ export const useFieldProps = {
75
75
  export const useFieldEmits = [ 'update:modelValue', 'clear', 'focus', 'blur', 'popup-show', 'popup-hide' ]
76
76
 
77
77
  export function useFieldState () {
78
- const { props, attrs, proxy } = getCurrentInstance()
78
+ const { props, attrs, proxy, vnode } = getCurrentInstance()
79
79
 
80
80
  const isDark = useDark(props, proxy.$q)
81
81
 
@@ -90,7 +90,7 @@ export function useFieldState () {
90
90
  focused: ref(false),
91
91
  hasPopupOpen: false,
92
92
 
93
- splitAttrs: useSplitAttrs(attrs),
93
+ splitAttrs: useSplitAttrs(attrs, vnode),
94
94
  targetUid: ref(getTargetUid(props.for)),
95
95
 
96
96
  rootRef: ref(null),
@@ -2,7 +2,7 @@ import { ref, onBeforeUpdate } from 'vue'
2
2
 
3
3
  const listenerRE = /^on[A-Z]/
4
4
 
5
- export default function (attrs) {
5
+ export default function (attrs, vnode) {
6
6
  const acc = {
7
7
  listeners: ref({}),
8
8
  attributes: ref({})
@@ -21,6 +21,12 @@ export default function (attrs) {
21
21
  }
22
22
  })
23
23
 
24
+ Object.keys(vnode.props).forEach(key => {
25
+ if (listenerRE.test(key) === true) {
26
+ listeners[ key ] = vnode.props[ key ]
27
+ }
28
+ })
29
+
24
30
  acc.listeners.value = listeners
25
31
  acc.attributes.value = attributes
26
32
  }
@@ -36,6 +36,7 @@ function useDialogPluginComponent () {
36
36
  }
37
37
  }
38
38
 
39
+ // Don't forget to update the types in "ui/types/composables.d.ts"
39
40
  const emits = [ 'ok', 'hide' ]
40
41
 
41
42
  useDialogPluginComponent.emits = emits