@quoreadmin/ui 1.8.9 → 1.8.10

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 (178) hide show
  1. package/dist/index.css +1 -1
  2. package/dist/index142.js +2 -2
  3. package/dist/index144.js +1 -1
  4. package/dist/index174.js +14 -14
  5. package/dist/index175.js +3 -3
  6. package/dist/index178.js +4 -4
  7. package/dist/index185.js +10 -10
  8. package/dist/index186.js +17 -5
  9. package/dist/index187.js +10 -10
  10. package/dist/index189.js +36 -1190
  11. package/dist/{index192.js → index190.js} +17 -17
  12. package/dist/index191.js +1190 -36
  13. package/dist/index193.js +9 -9
  14. package/dist/index194.js +1 -1
  15. package/dist/index195.js +1 -1
  16. package/dist/index196.js +1 -1
  17. package/dist/index198.js +2 -2
  18. package/dist/index200.js +14 -14
  19. package/dist/index201.js +1 -1
  20. package/dist/index202.js +1 -1
  21. package/dist/index203.js +3 -3
  22. package/dist/index204.js +6 -6
  23. package/dist/index205.js +84 -29
  24. package/dist/index206.js +400 -109
  25. package/dist/index207.js +22 -36
  26. package/dist/index208.js +33 -26
  27. package/dist/index209.js +111 -31
  28. package/dist/index210.js +35 -50
  29. package/dist/index211.js +26 -43
  30. package/dist/index212.js +35 -3
  31. package/dist/index213.js +51 -9
  32. package/dist/index214.js +42 -18
  33. package/dist/index215.js +4 -10
  34. package/dist/index216.js +9 -10
  35. package/dist/index217.js +18 -38
  36. package/dist/index218.js +10 -21
  37. package/dist/index219.js +10 -127
  38. package/dist/index220.js +37 -36
  39. package/dist/index221.js +21 -407
  40. package/dist/index222.js +123 -76
  41. package/dist/index223.js +37 -19
  42. package/dist/index224.js +77 -85
  43. package/dist/index225.js +11 -11
  44. package/dist/index226.js +2 -2
  45. package/dist/index227.js +2 -2
  46. package/dist/index228.js +10 -10
  47. package/dist/index229.js +20 -22
  48. package/dist/index230.js +159 -159
  49. package/dist/index231.js +20 -228
  50. package/dist/index232.js +21 -36
  51. package/dist/index233.js +198 -9
  52. package/dist/index234.js +63 -3629
  53. package/dist/index235.js +31 -52
  54. package/dist/index236.js +36 -73
  55. package/dist/index237.js +160 -51
  56. package/dist/index238.js +225 -212
  57. package/dist/index239.js +37 -10
  58. package/dist/index240.js +10 -57
  59. package/dist/index241.js +3621 -46
  60. package/dist/index242.js +36 -35
  61. package/dist/index243.js +30 -28
  62. package/dist/index244.js +28 -702
  63. package/dist/index245.js +195 -22
  64. package/dist/index246.js +9 -63
  65. package/dist/index247.js +54 -8
  66. package/dist/index248.js +51 -695
  67. package/dist/index249.js +49 -815
  68. package/dist/index250.js +68 -154
  69. package/dist/index251.js +725 -19
  70. package/dist/index252.js +42 -22
  71. package/dist/index253.js +55 -190
  72. package/dist/index254.js +11 -70
  73. package/dist/index255.js +704 -33
  74. package/dist/index256.js +817 -37
  75. package/dist/index260.js +2 -2
  76. package/dist/index261.js +1 -1
  77. package/dist/index267.js +1 -1
  78. package/dist/index268.js +1 -1
  79. package/dist/index269.js +5 -5
  80. package/dist/index283.js +1 -1
  81. package/dist/index284.js +54 -1534
  82. package/dist/index285.js +26 -386
  83. package/dist/index286.js +22 -2731
  84. package/dist/index287.js +21 -85
  85. package/dist/index288.js +16 -3792
  86. package/dist/index289.js +17 -60
  87. package/dist/index290.js +23 -15
  88. package/dist/index291.js +254 -76
  89. package/dist/index292.js +4 -200
  90. package/dist/index293.js +129 -235
  91. package/dist/index294.js +67 -256
  92. package/dist/index295.js +86 -5
  93. package/dist/index296.js +26 -137
  94. package/dist/index297.js +14 -71
  95. package/dist/index298.js +71 -83
  96. package/dist/index299.js +3 -28
  97. package/dist/index3.js +4 -66
  98. package/dist/index300.js +2 -16
  99. package/dist/index301.js +78 -70
  100. package/dist/index302.js +52 -3
  101. package/dist/index303.js +6 -2
  102. package/dist/index304.js +4 -82
  103. package/dist/index305.js +177 -51
  104. package/dist/index306.js +62 -5
  105. package/dist/index307.js +75 -5
  106. package/dist/index308.js +1504 -149
  107. package/dist/index309.js +378 -55
  108. package/dist/index310.js +2731 -75
  109. package/dist/index311.js +82 -50
  110. package/dist/index312.js +3792 -26
  111. package/dist/index313.js +59 -21
  112. package/dist/index314.js +15 -22
  113. package/dist/index315.js +84 -16
  114. package/dist/index316.js +201 -16
  115. package/dist/index317.js +246 -23
  116. package/dist/index322.js +2 -2
  117. package/dist/index333.js +2 -2
  118. package/dist/index334.js +1 -1
  119. package/dist/index335.js +6 -6
  120. package/dist/index336.js +2 -2
  121. package/dist/index337.js +2 -2
  122. package/dist/index339.js +2 -2
  123. package/dist/index340.js +2 -2
  124. package/dist/index341.js +1 -1
  125. package/dist/index343.js +8 -8
  126. package/dist/index344.js +8 -8
  127. package/dist/index345.js +9 -8
  128. package/dist/index346.js +10 -13
  129. package/dist/index347.js +13 -54
  130. package/dist/index348.js +10 -12
  131. package/dist/index349.js +15 -12
  132. package/dist/index350.js +8 -57
  133. package/dist/index351.js +12 -51
  134. package/dist/index352.js +49 -25
  135. package/dist/index353.js +12 -2
  136. package/dist/index354.js +14 -5
  137. package/dist/index355.js +58 -2
  138. package/dist/index356.js +52 -23
  139. package/dist/index357.js +28 -38
  140. package/dist/index358.js +2 -2
  141. package/dist/index359.js +4 -10
  142. package/dist/index360.js +2 -20
  143. package/dist/index361.js +22 -9
  144. package/dist/index362.js +40 -9
  145. package/dist/index363.js +2 -17
  146. package/dist/index364.js +11 -2
  147. package/dist/index365.js +20 -9
  148. package/dist/index366.js +2 -10
  149. package/dist/index367.js +8 -13
  150. package/dist/index370.js +1 -1
  151. package/dist/index372.js +30 -97
  152. package/dist/index373.js +10 -100
  153. package/dist/index374.js +3 -30
  154. package/dist/index375.js +3 -10
  155. package/dist/index376.js +13 -4
  156. package/dist/index377.js +7 -4
  157. package/dist/index378.js +12 -13
  158. package/dist/index379.js +5 -7
  159. package/dist/index380.js +33 -12
  160. package/dist/index381.js +31 -5
  161. package/dist/index382.js +27 -32
  162. package/dist/index383.js +58 -28
  163. package/dist/index384.js +99 -26
  164. package/dist/index385.js +91 -61
  165. package/dist/index386.js +98 -91
  166. package/dist/index388.js +1 -1
  167. package/dist/index394.js +1 -1
  168. package/dist/index45.js +31 -24
  169. package/dist/index64.js +86 -48
  170. package/dist/src/components/activity-item/activity-item.stories.d.ts +3 -0
  171. package/dist/src/components/activity-item/activity-item.vue.d.ts +35 -2
  172. package/dist/src/components/comment/comment.d.ts +2 -2
  173. package/dist/src/components/comment/comment.stories.d.ts +2 -2
  174. package/dist/src/components/comment-section/comment-section.d.ts +2 -2
  175. package/dist/src/components/comment-section/comment-section.stories.d.ts +2 -2
  176. package/dist/src/components/room-details-popover/room-details-popover.d.ts +55 -76
  177. package/package.json +1 -1
  178. package/dist/src/components/activity-item/activity-item.d.ts +0 -85
package/dist/index293.js CHANGED
@@ -1,248 +1,142 @@
1
- import P from "./index372.js";
2
- import { Mapping as k } from "./index284.js";
3
- import { Plugin as H, PluginKey as O } from "./index249.js";
4
- const D = 500;
5
- class c {
6
- constructor(t, e) {
7
- this.items = t, this.eventCount = e;
1
+ import d from "./index291.js";
2
+ import S from "./index333.js";
3
+ import E from "./index334.js";
4
+ import I from "./index335.js";
5
+ import w from "./index294.js";
6
+ import U from "./index336.js";
7
+ import y from "./index337.js";
8
+ import A from "./index305.js";
9
+ import T from "./index338.js";
10
+ const l = y.validators;
11
+ class q {
12
+ constructor(t) {
13
+ this.defaults = t || {}, this.interceptors = {
14
+ request: new E(),
15
+ response: new E()
16
+ };
8
17
  }
9
- // Pop the latest event off the branch's history and apply it
10
- // to a document transform.
11
- popEvent(t, e) {
12
- if (this.eventCount == 0)
13
- return null;
14
- let i = this.items.length;
15
- for (; ; i--)
16
- if (this.items.get(i - 1).selection) {
17
- --i;
18
- break;
19
- }
20
- let s, p;
21
- e && (s = this.remapping(i, this.items.length), p = s.maps.length);
22
- let l = t.tr, r, m, u = [], f = [];
23
- return this.items.forEach((a, o) => {
24
- if (!a.step) {
25
- s || (s = this.remapping(i, o + 1), p = s.maps.length), p--, f.push(a);
26
- return;
18
+ /**
19
+ * Dispatch a request
20
+ *
21
+ * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)
22
+ * @param {?Object} config
23
+ *
24
+ * @returns {Promise} The Promise to be fulfilled
25
+ */
26
+ async request(t, e) {
27
+ try {
28
+ return await this._request(t, e);
29
+ } catch (r) {
30
+ if (r instanceof Error) {
31
+ let n = {};
32
+ Error.captureStackTrace ? Error.captureStackTrace(n) : n = new Error();
33
+ const s = n.stack ? n.stack.replace(/^.+\n/, "") : "";
34
+ try {
35
+ r.stack ? s && !String(r.stack).endsWith(s.replace(/^.+\n.+\n/, "")) && (r.stack += `
36
+ ` + s) : r.stack = s;
37
+ } catch {
38
+ }
27
39
  }
28
- if (s) {
29
- f.push(new g(a.map));
30
- let d = a.step.map(s.slice(p)), v;
31
- d && l.maybeStep(d).doc && (v = l.mapping.maps[l.mapping.maps.length - 1], u.push(new g(v, void 0, void 0, u.length + f.length))), p--, v && s.appendMap(v, p);
32
- } else
33
- l.maybeStep(a.step);
34
- if (a.selection)
35
- return r = s ? a.selection.map(s.slice(p)) : a.selection, m = new c(this.items.slice(0, i).append(f.reverse().concat(u)), this.eventCount - 1), !1;
36
- }, this.items.length, 0), { remaining: m, transform: l, selection: r };
37
- }
38
- // Create a new branch with the given transform added.
39
- addTransform(t, e, i, s) {
40
- let p = [], l = this.eventCount, r = this.items, m = !s && r.length ? r.get(r.length - 1) : null;
41
- for (let f = 0; f < t.steps.length; f++) {
42
- let a = t.steps[f].invert(t.docs[f]), o = new g(t.mapping.maps[f], a, e), d;
43
- (d = m && m.merge(o)) && (o = d, f ? p.pop() : r = r.slice(0, r.length - 1)), p.push(o), e && (l++, e = void 0), s || (m = o);
40
+ throw r;
44
41
  }
45
- let u = l - i.depth;
46
- return u > y && (r = x(r, u), l -= u), new c(r.append(p), l);
47
42
  }
48
- remapping(t, e) {
49
- let i = new k();
50
- return this.items.forEach((s, p) => {
51
- let l = s.mirrorOffset != null && p - s.mirrorOffset >= t ? i.maps.length - s.mirrorOffset : void 0;
52
- i.appendMap(s.map, l);
53
- }, t, e), i;
54
- }
55
- addMaps(t) {
56
- return this.eventCount == 0 ? this : new c(this.items.append(t.map((e) => new g(e))), this.eventCount);
57
- }
58
- // When the collab module receives remote changes, the history has
59
- // to know about those, so that it can adjust the steps that were
60
- // rebased on top of the remote changes, and include the position
61
- // maps for the remote changes in its array of items.
62
- rebased(t, e) {
63
- if (!this.eventCount)
64
- return this;
65
- let i = [], s = Math.max(0, this.items.length - e), p = t.mapping, l = t.steps.length, r = this.eventCount;
66
- this.items.forEach((o) => {
67
- o.selection && r--;
68
- }, s);
69
- let m = e;
70
- this.items.forEach((o) => {
71
- let d = p.getMirror(--m);
72
- if (d == null)
43
+ _request(t, e) {
44
+ typeof t == "string" ? (e = e || {}, e.url = t) : e = t || {}, e = w(this.defaults, e);
45
+ const { transitional: r, paramsSerializer: n, headers: s } = e;
46
+ r !== void 0 && y.assertOptions(r, {
47
+ silentJSONParsing: l.transitional(l.boolean),
48
+ forcedJSONParsing: l.transitional(l.boolean),
49
+ clarifyTimeoutError: l.transitional(l.boolean),
50
+ legacyInterceptorReqResOrdering: l.transitional(l.boolean)
51
+ }, !1), n != null && (d.isFunction(n) ? e.paramsSerializer = {
52
+ serialize: n
53
+ } : y.assertOptions(n, {
54
+ encode: l.function,
55
+ serialize: l.function
56
+ }, !0)), e.allowAbsoluteUrls !== void 0 || (this.defaults.allowAbsoluteUrls !== void 0 ? e.allowAbsoluteUrls = this.defaults.allowAbsoluteUrls : e.allowAbsoluteUrls = !0), y.assertOptions(e, {
57
+ baseUrl: l.spelling("baseURL"),
58
+ withXsrfToken: l.spelling("withXSRFToken")
59
+ }, !0), e.method = (e.method || this.defaults.method || "get").toLowerCase();
60
+ let f = s && d.merge(
61
+ s.common,
62
+ s[e.method]
63
+ );
64
+ s && d.forEach(
65
+ ["delete", "get", "head", "post", "put", "patch", "common"],
66
+ (a) => {
67
+ delete s[a];
68
+ }
69
+ ), e.headers = A.concat(f, s);
70
+ const u = [];
71
+ let b = !0;
72
+ this.interceptors.request.forEach(function(o) {
73
+ if (typeof o.runWhen == "function" && o.runWhen(e) === !1)
73
74
  return;
74
- l = Math.min(l, d);
75
- let v = p.maps[d];
76
- if (o.step) {
77
- let S = t.steps[d].invert(t.docs[d]), E = o.selection && o.selection.map(p.slice(m + 1, d));
78
- E && r++, i.push(new g(v, S, E));
79
- } else
80
- i.push(new g(v));
81
- }, s);
82
- let u = [];
83
- for (let o = e; o < l; o++)
84
- u.push(new g(p.maps[o]));
85
- let f = this.items.slice(0, s).append(u).append(i), a = new c(f, r);
86
- return a.emptyItemCount() > D && (a = a.compress(this.items.length - i.length)), a;
87
- }
88
- emptyItemCount() {
89
- let t = 0;
90
- return this.items.forEach((e) => {
91
- e.step || t++;
92
- }), t;
93
- }
94
- // Compressing a branch means rewriting it to push the air (map-only
95
- // items) out. During collaboration, these naturally accumulate
96
- // because each remote change adds one. The `upto` argument is used
97
- // to ensure that only the items below a given level are compressed,
98
- // because `rebased` relies on a clean, untouched set of items in
99
- // order to associate old items with rebased steps.
100
- compress(t = this.items.length) {
101
- let e = this.remapping(0, t), i = e.maps.length, s = [], p = 0;
102
- return this.items.forEach((l, r) => {
103
- if (r >= t)
104
- s.push(l), l.selection && p++;
105
- else if (l.step) {
106
- let m = l.step.map(e.slice(i)), u = m && m.getMap();
107
- if (i--, u && e.appendMap(u, i), m) {
108
- let f = l.selection && l.selection.map(e.slice(i));
109
- f && p++;
110
- let a = new g(u.invert(), m, f), o, d = s.length - 1;
111
- (o = s.length && s[d].merge(a)) ? s[d] = o : s.push(a);
112
- }
113
- } else l.map && i--;
114
- }, this.items.length, 0), new c(P.from(s.reverse()), p);
115
- }
116
- }
117
- c.empty = new c(P.empty, 0);
118
- function x(n, t) {
119
- let e;
120
- return n.forEach((i, s) => {
121
- if (i.selection && t-- == 0)
122
- return e = s, !1;
123
- }), n.slice(e);
124
- }
125
- class g {
126
- constructor(t, e, i, s) {
127
- this.map = t, this.step = e, this.selection = i, this.mirrorOffset = s;
128
- }
129
- merge(t) {
130
- if (this.step && t.step && !t.selection) {
131
- let e = t.step.merge(this.step);
132
- if (e)
133
- return new g(e.getMap().invert(), e, this.selection);
75
+ b = b && o.synchronous;
76
+ const m = e.transitional || T;
77
+ m && m.legacyInterceptorReqResOrdering ? u.unshift(o.fulfilled, o.rejected) : u.push(o.fulfilled, o.rejected);
78
+ });
79
+ const p = [];
80
+ this.interceptors.response.forEach(function(o) {
81
+ p.push(o.fulfilled, o.rejected);
82
+ });
83
+ let h, i = 0, c;
84
+ if (!b) {
85
+ const a = [I.bind(this), void 0];
86
+ for (a.unshift(...u), a.push(...p), c = a.length, h = Promise.resolve(e); i < c; )
87
+ h = h.then(a[i++], a[i++]);
88
+ return h;
134
89
  }
135
- }
136
- }
137
- class h {
138
- constructor(t, e, i, s, p) {
139
- this.done = t, this.undone = e, this.prevRanges = i, this.prevTime = s, this.prevComposition = p;
140
- }
141
- }
142
- const y = 20;
143
- function F(n, t, e, i) {
144
- let s = e.getMeta(w), p;
145
- if (s)
146
- return s.historyState;
147
- e.getMeta(j) && (n = new h(n.done, n.undone, null, 0, -1));
148
- let l = e.getMeta("appendedTransaction");
149
- if (e.steps.length == 0)
150
- return n;
151
- if (l && l.getMeta(w))
152
- return l.getMeta(w).redo ? new h(n.done.addTransform(e, void 0, i, M(t)), n.undone, I(e.mapping.maps), n.prevTime, n.prevComposition) : new h(n.done, n.undone.addTransform(e, void 0, i, M(t)), null, n.prevTime, n.prevComposition);
153
- if (e.getMeta("addToHistory") !== !1 && !(l && l.getMeta("addToHistory") === !1)) {
154
- let r = e.getMeta("composition"), m = n.prevTime == 0 || !l && n.prevComposition != r && (n.prevTime < (e.time || 0) - i.newGroupDelay || !G(e, n.prevRanges)), u = l ? C(n.prevRanges, e.mapping) : I(e.mapping.maps);
155
- return new h(n.done.addTransform(e, m ? t.selection.getBookmark() : void 0, i, M(t)), c.empty, u, e.time, r ?? n.prevComposition);
156
- } else return (p = e.getMeta("rebased")) ? new h(n.done.rebased(e, p), n.undone.rebased(e, p), C(n.prevRanges, e.mapping), n.prevTime, n.prevComposition) : new h(n.done.addMaps(e.mapping.maps), n.undone.addMaps(e.mapping.maps), C(n.prevRanges, e.mapping), n.prevTime, n.prevComposition);
157
- }
158
- function G(n, t) {
159
- if (!t)
160
- return !1;
161
- if (!n.docChanged)
162
- return !0;
163
- let e = !1;
164
- return n.mapping.maps[0].forEach((i, s) => {
165
- for (let p = 0; p < t.length; p += 2)
166
- i <= t[p + 1] && s >= t[p] && (e = !0);
167
- }), e;
168
- }
169
- function I(n) {
170
- let t = [];
171
- for (let e = n.length - 1; e >= 0 && t.length == 0; e--)
172
- n[e].forEach((i, s, p, l) => t.push(p, l));
173
- return t;
174
- }
175
- function C(n, t) {
176
- if (!n)
177
- return null;
178
- let e = [];
179
- for (let i = 0; i < n.length; i += 2) {
180
- let s = t.map(n[i], 1), p = t.map(n[i + 1], -1);
181
- s <= p && e.push(s, p);
182
- }
183
- return e;
184
- }
185
- function K(n, t, e) {
186
- let i = M(t), s = w.get(t).spec.config, p = (e ? n.undone : n.done).popEvent(t, i);
187
- if (!p)
188
- return null;
189
- let l = p.selection.resolve(p.transform.doc), r = (e ? n.done : n.undone).addTransform(p.transform, t.selection.getBookmark(), s, i), m = new h(e ? r : p.remaining, e ? p.remaining : r, null, 0, -1);
190
- return p.transform.setSelection(l).setMeta(w, { redo: e, historyState: m });
191
- }
192
- let T = !1, b = null;
193
- function M(n) {
194
- let t = n.plugins;
195
- if (b != t) {
196
- T = !1, b = t;
197
- for (let e = 0; e < t.length; e++)
198
- if (t[e].spec.historyPreserveItems) {
199
- T = !0;
90
+ c = u.length;
91
+ let R = e;
92
+ for (; i < c; ) {
93
+ const a = u[i++], o = u[i++];
94
+ try {
95
+ R = a(R);
96
+ } catch (m) {
97
+ o.call(this, m);
200
98
  break;
201
99
  }
202
- }
203
- return T;
204
- }
205
- const w = new O("history"), j = new O("closeHistory");
206
- function W(n = {}) {
207
- return n = {
208
- depth: n.depth || 100,
209
- newGroupDelay: n.newGroupDelay || 500
210
- }, new H({
211
- key: w,
212
- state: {
213
- init() {
214
- return new h(c.empty, c.empty, null, 0, -1);
215
- },
216
- apply(t, e, i) {
217
- return F(e, i, t, n);
218
- }
219
- },
220
- config: n,
221
- props: {
222
- handleDOMEvents: {
223
- beforeinput(t, e) {
224
- let i = e.inputType, s = i == "historyUndo" ? A : i == "historyRedo" ? U : null;
225
- return !s || !t.editable ? !1 : (e.preventDefault(), s(t.state, t.dispatch));
226
- }
227
- }
228
100
  }
229
- });
230
- }
231
- function R(n, t) {
232
- return (e, i) => {
233
- let s = w.getState(e);
234
- if (!s || (n ? s.undone : s.done).eventCount == 0)
235
- return !1;
236
- if (i) {
237
- let p = K(s, e, n);
238
- p && i(t ? p.scrollIntoView() : p);
101
+ try {
102
+ h = I.call(this, R);
103
+ } catch (a) {
104
+ return Promise.reject(a);
239
105
  }
240
- return !0;
241
- };
106
+ for (i = 0, c = p.length; i < c; )
107
+ h = h.then(p[i++], p[i++]);
108
+ return h;
109
+ }
110
+ getUri(t) {
111
+ t = w(this.defaults, t);
112
+ const e = U(t.baseURL, t.url, t.allowAbsoluteUrls);
113
+ return S(e, t.params, t.paramsSerializer);
114
+ }
242
115
  }
243
- const A = R(!1, !0), U = R(!0, !0);
116
+ d.forEach(["delete", "get", "head", "options"], function(t) {
117
+ q.prototype[t] = function(e, r) {
118
+ return this.request(w(r || {}, {
119
+ method: t,
120
+ url: e,
121
+ data: (r || {}).data
122
+ }));
123
+ };
124
+ });
125
+ d.forEach(["post", "put", "patch"], function(t) {
126
+ function e(r) {
127
+ return function(s, f, u) {
128
+ return this.request(w(u || {}, {
129
+ method: t,
130
+ headers: r ? {
131
+ "Content-Type": "multipart/form-data"
132
+ } : {},
133
+ url: s,
134
+ data: f
135
+ }));
136
+ };
137
+ }
138
+ q.prototype[t] = e(), q.prototype[t + "Form"] = e(!0);
139
+ });
244
140
  export {
245
- W as history,
246
- U as redo,
247
- A as undo
141
+ q as default
248
142
  };