persagy-vant 0.0.47 → 0.0.49

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.
@@ -198,10 +198,11 @@ var stdin_default = defineComponent({
198
198
  if (modelValue && getStringLength(modelValue) === +maxlength) {
199
199
  return modelValue;
200
200
  }
201
- const selectionEnd = (_a = inputRef.value) == null ? void 0 : _a.selectionEnd;
201
+ let selectionEnd = (_a = inputRef.value) == null ? void 0 : _a.selectionEnd;
202
202
  if (state.focused && selectionEnd) {
203
203
  const valueArr = [...value];
204
204
  const exceededLength = valueArr.length - +maxlength;
205
+ selectionEnd = getStringLength(value.slice(0, selectionEnd));
205
206
  valueArr.splice(selectionEnd - exceededLength, exceededLength);
206
207
  return valueArr.join("");
207
208
  }
@@ -212,7 +213,7 @@ var stdin_default = defineComponent({
212
213
  const updateValue = (value, trigger = "onChange") => {
213
214
  const originalValue = value;
214
215
  value = limitValueLength(value);
215
- const limitDiffLen = getStringLength(originalValue) - getStringLength(value);
216
+ const limitDiffLen = originalValue.length - value.length;
216
217
  if (props.type === "number" || props.type === "digit") {
217
218
  const isNumber = props.type === "number";
218
219
  value = formatNumber(value, isNumber, isNumber);
@@ -232,7 +233,7 @@ var stdin_default = defineComponent({
232
233
  selectionEnd
233
234
  } = inputRef.value;
234
235
  const bcoVal = cutString(originalValue, selectionEnd);
235
- formatterDiffLen = getStringLength(formatter(bcoVal)) - getStringLength(bcoVal);
236
+ formatterDiffLen = formatter(bcoVal).length - bcoVal.length;
236
237
  }
237
238
  }
238
239
  if (inputRef.value && inputRef.value.value !== value) {
@@ -243,7 +244,7 @@ var stdin_default = defineComponent({
243
244
  } = inputRef.value;
244
245
  inputRef.value.value = value;
245
246
  if (isDef(selectionStart) && isDef(selectionEnd)) {
246
- const valueLen = getStringLength(value);
247
+ const valueLen = value.length;
247
248
  if (limitDiffLen) {
248
249
  selectionStart -= limitDiffLen;
249
250
  selectionEnd -= limitDiffLen;
package/es/index.d.ts CHANGED
@@ -117,4 +117,4 @@ declare namespace _default {
117
117
  }
118
118
  export default _default;
119
119
  export function install(app: any): void;
120
- export const version: "0.0.47";
120
+ export const version: "0.0.49";
package/es/index.mjs CHANGED
@@ -110,7 +110,7 @@ import { Uploader } from "./uploader/index.mjs";
110
110
  import { VideoPreview } from "./video-preview/index.mjs";
111
111
  import { WorkOrderCard } from "./work-order-card/index.mjs";
112
112
  import { WorkOrderFilter } from "./work-order-filter/index.mjs";
113
- const version = "0.0.47";
113
+ const version = "0.0.49";
114
114
  function install(app) {
115
115
  const components = [
116
116
  ActionBar,
@@ -54,6 +54,10 @@ declare const materialAddProps: {
54
54
  type: PropType<string>;
55
55
  default: string;
56
56
  };
57
+ max: {
58
+ type: (NumberConstructor | StringConstructor)[];
59
+ default: number;
60
+ };
57
61
  search: PropType<MaterialAddSearch>;
58
62
  searchDebounce: {
59
63
  type: (NumberConstructor | StringConstructor)[];
@@ -115,6 +119,10 @@ declare const _default: import("vue").DefineComponent<{
115
119
  type: PropType<string>;
116
120
  default: string;
117
121
  };
122
+ max: {
123
+ type: (NumberConstructor | StringConstructor)[];
124
+ default: number;
125
+ };
118
126
  search: PropType<MaterialAddSearch>;
119
127
  searchDebounce: {
120
128
  type: (NumberConstructor | StringConstructor)[];
@@ -174,6 +182,10 @@ declare const _default: import("vue").DefineComponent<{
174
182
  type: PropType<string>;
175
183
  default: string;
176
184
  };
185
+ max: {
186
+ type: (NumberConstructor | StringConstructor)[];
187
+ default: number;
188
+ };
177
189
  search: PropType<MaterialAddSearch>;
178
190
  searchDebounce: {
179
191
  type: (NumberConstructor | StringConstructor)[];
@@ -187,6 +199,7 @@ declare const _default: import("vue").DefineComponent<{
187
199
  "onSearch-error"?: ((...args: any[]) => any) | undefined;
188
200
  }, {
189
201
  title: string;
202
+ max: string | number;
190
203
  modelValue: number[];
191
204
  show: boolean;
192
205
  confirmText: string;
@@ -345,6 +345,7 @@ const materialAddProps = {
345
345
  allTabText: makeStringProp("\u5168\u90E8\u7269\u6599"),
346
346
  materialTabText: makeStringProp("\u7269\u8D44"),
347
347
  toolTabText: makeStringProp("\u5DE5\u5177"),
348
+ max: makeNumericProp(Infinity),
348
349
  search: Function,
349
350
  searchDebounce: makeNumericProp(300)
350
351
  };
@@ -568,6 +569,7 @@ var stdin_default = defineComponent({
568
569
  "key": item.id,
569
570
  "item": item,
570
571
  "modelValue": quantities.value[index],
572
+ "max": props.max,
571
573
  "keyword": searching.value ? keyword.value : "",
572
574
  "selected": selected,
573
575
  "onDetail": openDetail,
@@ -52,6 +52,10 @@ export declare const MaterialAdd: import("../utils").WithInstall<import("vue").D
52
52
  type: import("vue").PropType<string>;
53
53
  default: string;
54
54
  };
55
+ max: {
56
+ type: (NumberConstructor | StringConstructor)[];
57
+ default: number;
58
+ };
55
59
  search: import("vue").PropType<import("./types").MaterialAddSearch>;
56
60
  searchDebounce: {
57
61
  type: (NumberConstructor | StringConstructor)[];
@@ -111,6 +115,10 @@ export declare const MaterialAdd: import("../utils").WithInstall<import("vue").D
111
115
  type: import("vue").PropType<string>;
112
116
  default: string;
113
117
  };
118
+ max: {
119
+ type: (NumberConstructor | StringConstructor)[];
120
+ default: number;
121
+ };
114
122
  search: import("vue").PropType<import("./types").MaterialAddSearch>;
115
123
  searchDebounce: {
116
124
  type: (NumberConstructor | StringConstructor)[];
@@ -124,6 +132,7 @@ export declare const MaterialAdd: import("../utils").WithInstall<import("vue").D
124
132
  "onSearch-error"?: ((...args: any[]) => any) | undefined;
125
133
  }, {
126
134
  title: string;
135
+ max: string | number;
127
136
  modelValue: number[];
128
137
  show: boolean;
129
138
  confirmText: string;
@@ -221,10 +221,11 @@ var stdin_default = (0, import_vue.defineComponent)({
221
221
  if (modelValue && (0, import_utils2.getStringLength)(modelValue) === +maxlength) {
222
222
  return modelValue;
223
223
  }
224
- const selectionEnd = (_a = inputRef.value) == null ? void 0 : _a.selectionEnd;
224
+ let selectionEnd = (_a = inputRef.value) == null ? void 0 : _a.selectionEnd;
225
225
  if (state.focused && selectionEnd) {
226
226
  const valueArr = [...value];
227
227
  const exceededLength = valueArr.length - +maxlength;
228
+ selectionEnd = (0, import_utils2.getStringLength)(value.slice(0, selectionEnd));
228
229
  valueArr.splice(selectionEnd - exceededLength, exceededLength);
229
230
  return valueArr.join("");
230
231
  }
@@ -235,7 +236,7 @@ var stdin_default = (0, import_vue.defineComponent)({
235
236
  const updateValue = (value, trigger = "onChange") => {
236
237
  const originalValue = value;
237
238
  value = limitValueLength(value);
238
- const limitDiffLen = (0, import_utils2.getStringLength)(originalValue) - (0, import_utils2.getStringLength)(value);
239
+ const limitDiffLen = originalValue.length - value.length;
239
240
  if (props.type === "number" || props.type === "digit") {
240
241
  const isNumber = props.type === "number";
241
242
  value = (0, import_utils.formatNumber)(value, isNumber, isNumber);
@@ -255,7 +256,7 @@ var stdin_default = (0, import_vue.defineComponent)({
255
256
  selectionEnd
256
257
  } = inputRef.value;
257
258
  const bcoVal = (0, import_utils2.cutString)(originalValue, selectionEnd);
258
- formatterDiffLen = (0, import_utils2.getStringLength)(formatter(bcoVal)) - (0, import_utils2.getStringLength)(bcoVal);
259
+ formatterDiffLen = formatter(bcoVal).length - bcoVal.length;
259
260
  }
260
261
  }
261
262
  if (inputRef.value && inputRef.value.value !== value) {
@@ -266,7 +267,7 @@ var stdin_default = (0, import_vue.defineComponent)({
266
267
  } = inputRef.value;
267
268
  inputRef.value.value = value;
268
269
  if ((0, import_utils.isDef)(selectionStart) && (0, import_utils.isDef)(selectionEnd)) {
269
- const valueLen = (0, import_utils2.getStringLength)(value);
270
+ const valueLen = value.length;
270
271
  if (limitDiffLen) {
271
272
  selectionStart -= limitDiffLen;
272
273
  selectionEnd -= limitDiffLen;
package/lib/index.d.ts CHANGED
@@ -117,4 +117,4 @@ declare namespace _default {
117
117
  }
118
118
  export default _default;
119
119
  export function install(app: any): void;
120
- export const version: "0.0.47";
120
+ export const version: "0.0.49";
package/lib/index.js CHANGED
@@ -248,7 +248,7 @@ __reExport(stdin_exports, require("./uploader"), module.exports);
248
248
  __reExport(stdin_exports, require("./video-preview"), module.exports);
249
249
  __reExport(stdin_exports, require("./work-order-card"), module.exports);
250
250
  __reExport(stdin_exports, require("./work-order-filter"), module.exports);
251
- const version = "0.0.47";
251
+ const version = "0.0.49";
252
252
  function install(app) {
253
253
  const components = [
254
254
  import_action_bar.ActionBar,
@@ -54,6 +54,10 @@ declare const materialAddProps: {
54
54
  type: PropType<string>;
55
55
  default: string;
56
56
  };
57
+ max: {
58
+ type: (NumberConstructor | StringConstructor)[];
59
+ default: number;
60
+ };
57
61
  search: PropType<MaterialAddSearch>;
58
62
  searchDebounce: {
59
63
  type: (NumberConstructor | StringConstructor)[];
@@ -115,6 +119,10 @@ declare const _default: import("vue").DefineComponent<{
115
119
  type: PropType<string>;
116
120
  default: string;
117
121
  };
122
+ max: {
123
+ type: (NumberConstructor | StringConstructor)[];
124
+ default: number;
125
+ };
118
126
  search: PropType<MaterialAddSearch>;
119
127
  searchDebounce: {
120
128
  type: (NumberConstructor | StringConstructor)[];
@@ -174,6 +182,10 @@ declare const _default: import("vue").DefineComponent<{
174
182
  type: PropType<string>;
175
183
  default: string;
176
184
  };
185
+ max: {
186
+ type: (NumberConstructor | StringConstructor)[];
187
+ default: number;
188
+ };
177
189
  search: PropType<MaterialAddSearch>;
178
190
  searchDebounce: {
179
191
  type: (NumberConstructor | StringConstructor)[];
@@ -187,6 +199,7 @@ declare const _default: import("vue").DefineComponent<{
187
199
  "onSearch-error"?: ((...args: any[]) => any) | undefined;
188
200
  }, {
189
201
  title: string;
202
+ max: string | number;
190
203
  modelValue: number[];
191
204
  show: boolean;
192
205
  confirmText: string;
@@ -377,6 +377,7 @@ const materialAddProps = {
377
377
  allTabText: (0, import_utils.makeStringProp)("\u5168\u90E8\u7269\u6599"),
378
378
  materialTabText: (0, import_utils.makeStringProp)("\u7269\u8D44"),
379
379
  toolTabText: (0, import_utils.makeStringProp)("\u5DE5\u5177"),
380
+ max: (0, import_utils.makeNumericProp)(Infinity),
380
381
  search: Function,
381
382
  searchDebounce: (0, import_utils.makeNumericProp)(300)
382
383
  };
@@ -600,6 +601,7 @@ var stdin_default = (0, import_vue.defineComponent)({
600
601
  "key": item.id,
601
602
  "item": item,
602
603
  "modelValue": quantities.value[index],
604
+ "max": props.max,
603
605
  "keyword": searching.value ? keyword.value : "",
604
606
  "selected": selected,
605
607
  "onDetail": openDetail,
@@ -52,6 +52,10 @@ export declare const MaterialAdd: import("../utils").WithInstall<import("vue").D
52
52
  type: import("vue").PropType<string>;
53
53
  default: string;
54
54
  };
55
+ max: {
56
+ type: (NumberConstructor | StringConstructor)[];
57
+ default: number;
58
+ };
55
59
  search: import("vue").PropType<import("./types").MaterialAddSearch>;
56
60
  searchDebounce: {
57
61
  type: (NumberConstructor | StringConstructor)[];
@@ -111,6 +115,10 @@ export declare const MaterialAdd: import("../utils").WithInstall<import("vue").D
111
115
  type: import("vue").PropType<string>;
112
116
  default: string;
113
117
  };
118
+ max: {
119
+ type: (NumberConstructor | StringConstructor)[];
120
+ default: number;
121
+ };
114
122
  search: import("vue").PropType<import("./types").MaterialAddSearch>;
115
123
  searchDebounce: {
116
124
  type: (NumberConstructor | StringConstructor)[];
@@ -124,6 +132,7 @@ export declare const MaterialAdd: import("../utils").WithInstall<import("vue").D
124
132
  "onSearch-error"?: ((...args: any[]) => any) | undefined;
125
133
  }, {
126
134
  title: string;
135
+ max: string | number;
127
136
  modelValue: number[];
128
137
  show: boolean;
129
138
  confirmText: string;
package/lib/vant.cjs.js CHANGED
@@ -4197,10 +4197,11 @@ var stdin_default$1K = vue.defineComponent({
4197
4197
  if (modelValue && getStringLength(modelValue) === +maxlength) {
4198
4198
  return modelValue;
4199
4199
  }
4200
- const selectionEnd = (_a = inputRef.value) == null ? void 0 : _a.selectionEnd;
4200
+ let selectionEnd = (_a = inputRef.value) == null ? void 0 : _a.selectionEnd;
4201
4201
  if (state.focused && selectionEnd) {
4202
4202
  const valueArr = [...value];
4203
4203
  const exceededLength = valueArr.length - +maxlength;
4204
+ selectionEnd = getStringLength(value.slice(0, selectionEnd));
4204
4205
  valueArr.splice(selectionEnd - exceededLength, exceededLength);
4205
4206
  return valueArr.join("");
4206
4207
  }
@@ -4211,7 +4212,7 @@ var stdin_default$1K = vue.defineComponent({
4211
4212
  const updateValue = (value, trigger = "onChange") => {
4212
4213
  const originalValue = value;
4213
4214
  value = limitValueLength(value);
4214
- const limitDiffLen = getStringLength(originalValue) - getStringLength(value);
4215
+ const limitDiffLen = originalValue.length - value.length;
4215
4216
  if (props2.type === "number" || props2.type === "digit") {
4216
4217
  const isNumber = props2.type === "number";
4217
4218
  value = formatNumber(value, isNumber, isNumber);
@@ -4231,7 +4232,7 @@ var stdin_default$1K = vue.defineComponent({
4231
4232
  selectionEnd
4232
4233
  } = inputRef.value;
4233
4234
  const bcoVal = cutString(originalValue, selectionEnd);
4234
- formatterDiffLen = getStringLength(formatter(bcoVal)) - getStringLength(bcoVal);
4235
+ formatterDiffLen = formatter(bcoVal).length - bcoVal.length;
4235
4236
  }
4236
4237
  }
4237
4238
  if (inputRef.value && inputRef.value.value !== value) {
@@ -4242,7 +4243,7 @@ var stdin_default$1K = vue.defineComponent({
4242
4243
  } = inputRef.value;
4243
4244
  inputRef.value.value = value;
4244
4245
  if (isDef(selectionStart) && isDef(selectionEnd)) {
4245
- const valueLen = getStringLength(value);
4246
+ const valueLen = value.length;
4246
4247
  if (limitDiffLen) {
4247
4248
  selectionStart -= limitDiffLen;
4248
4249
  selectionEnd -= limitDiffLen;
@@ -14633,6 +14634,7 @@ const materialAddProps = {
14633
14634
  allTabText: makeStringProp("全部物料"),
14634
14635
  materialTabText: makeStringProp("物资"),
14635
14636
  toolTabText: makeStringProp("工具"),
14637
+ max: makeNumericProp(Infinity),
14636
14638
  search: Function,
14637
14639
  searchDebounce: makeNumericProp(300)
14638
14640
  };
@@ -14845,6 +14847,7 @@ var stdin_default$B = vue.defineComponent({
14845
14847
  "key": item.id,
14846
14848
  "item": item,
14847
14849
  "modelValue": quantities.value[index],
14850
+ "max": props2.max,
14848
14851
  "keyword": searching.value ? keyword.value : "",
14849
14852
  "selected": selected,
14850
14853
  "onDetail": openDetail,
@@ -21840,7 +21843,7 @@ const Lazyload = {
21840
21843
  });
21841
21844
  }
21842
21845
  };
21843
- const version = "0.0.47";
21846
+ const version = "0.0.49";
21844
21847
  function install(app) {
21845
21848
  const components = [
21846
21849
  ActionBar,
package/lib/vant.es.js CHANGED
@@ -4195,10 +4195,11 @@ var stdin_default$1K = defineComponent({
4195
4195
  if (modelValue && getStringLength(modelValue) === +maxlength) {
4196
4196
  return modelValue;
4197
4197
  }
4198
- const selectionEnd = (_a = inputRef.value) == null ? void 0 : _a.selectionEnd;
4198
+ let selectionEnd = (_a = inputRef.value) == null ? void 0 : _a.selectionEnd;
4199
4199
  if (state.focused && selectionEnd) {
4200
4200
  const valueArr = [...value];
4201
4201
  const exceededLength = valueArr.length - +maxlength;
4202
+ selectionEnd = getStringLength(value.slice(0, selectionEnd));
4202
4203
  valueArr.splice(selectionEnd - exceededLength, exceededLength);
4203
4204
  return valueArr.join("");
4204
4205
  }
@@ -4209,7 +4210,7 @@ var stdin_default$1K = defineComponent({
4209
4210
  const updateValue = (value, trigger = "onChange") => {
4210
4211
  const originalValue = value;
4211
4212
  value = limitValueLength(value);
4212
- const limitDiffLen = getStringLength(originalValue) - getStringLength(value);
4213
+ const limitDiffLen = originalValue.length - value.length;
4213
4214
  if (props2.type === "number" || props2.type === "digit") {
4214
4215
  const isNumber = props2.type === "number";
4215
4216
  value = formatNumber(value, isNumber, isNumber);
@@ -4229,7 +4230,7 @@ var stdin_default$1K = defineComponent({
4229
4230
  selectionEnd
4230
4231
  } = inputRef.value;
4231
4232
  const bcoVal = cutString(originalValue, selectionEnd);
4232
- formatterDiffLen = getStringLength(formatter(bcoVal)) - getStringLength(bcoVal);
4233
+ formatterDiffLen = formatter(bcoVal).length - bcoVal.length;
4233
4234
  }
4234
4235
  }
4235
4236
  if (inputRef.value && inputRef.value.value !== value) {
@@ -4240,7 +4241,7 @@ var stdin_default$1K = defineComponent({
4240
4241
  } = inputRef.value;
4241
4242
  inputRef.value.value = value;
4242
4243
  if (isDef(selectionStart) && isDef(selectionEnd)) {
4243
- const valueLen = getStringLength(value);
4244
+ const valueLen = value.length;
4244
4245
  if (limitDiffLen) {
4245
4246
  selectionStart -= limitDiffLen;
4246
4247
  selectionEnd -= limitDiffLen;
@@ -14631,6 +14632,7 @@ const materialAddProps = {
14631
14632
  allTabText: makeStringProp("全部物料"),
14632
14633
  materialTabText: makeStringProp("物资"),
14633
14634
  toolTabText: makeStringProp("工具"),
14635
+ max: makeNumericProp(Infinity),
14634
14636
  search: Function,
14635
14637
  searchDebounce: makeNumericProp(300)
14636
14638
  };
@@ -14843,6 +14845,7 @@ var stdin_default$B = defineComponent({
14843
14845
  "key": item.id,
14844
14846
  "item": item,
14845
14847
  "modelValue": quantities.value[index],
14848
+ "max": props2.max,
14846
14849
  "keyword": searching.value ? keyword.value : "",
14847
14850
  "selected": selected,
14848
14851
  "onDetail": openDetail,
@@ -21838,7 +21841,7 @@ const Lazyload = {
21838
21841
  });
21839
21842
  }
21840
21843
  };
21841
- const version = "0.0.47";
21844
+ const version = "0.0.49";
21842
21845
  function install(app) {
21843
21846
  const components = [
21844
21847
  ActionBar,
package/lib/vant.js CHANGED
@@ -5435,10 +5435,11 @@
5435
5435
  if (modelValue && getStringLength(modelValue) === +maxlength) {
5436
5436
  return modelValue;
5437
5437
  }
5438
- const selectionEnd = (_a = inputRef.value) == null ? void 0 : _a.selectionEnd;
5438
+ let selectionEnd = (_a = inputRef.value) == null ? void 0 : _a.selectionEnd;
5439
5439
  if (state.focused && selectionEnd) {
5440
5440
  const valueArr = [...value];
5441
5441
  const exceededLength = valueArr.length - +maxlength;
5442
+ selectionEnd = getStringLength(value.slice(0, selectionEnd));
5442
5443
  valueArr.splice(selectionEnd - exceededLength, exceededLength);
5443
5444
  return valueArr.join("");
5444
5445
  }
@@ -5449,7 +5450,7 @@
5449
5450
  const updateValue = (value, trigger2 = "onChange") => {
5450
5451
  const originalValue = value;
5451
5452
  value = limitValueLength(value);
5452
- const limitDiffLen = getStringLength(originalValue) - getStringLength(value);
5453
+ const limitDiffLen = originalValue.length - value.length;
5453
5454
  if (props2.type === "number" || props2.type === "digit") {
5454
5455
  const isNumber2 = props2.type === "number";
5455
5456
  value = formatNumber(value, isNumber2, isNumber2);
@@ -5469,7 +5470,7 @@
5469
5470
  selectionEnd
5470
5471
  } = inputRef.value;
5471
5472
  const bcoVal = cutString(originalValue, selectionEnd);
5472
- formatterDiffLen = getStringLength(formatter(bcoVal)) - getStringLength(bcoVal);
5473
+ formatterDiffLen = formatter(bcoVal).length - bcoVal.length;
5473
5474
  }
5474
5475
  }
5475
5476
  if (inputRef.value && inputRef.value.value !== value) {
@@ -5480,7 +5481,7 @@
5480
5481
  } = inputRef.value;
5481
5482
  inputRef.value.value = value;
5482
5483
  if (isDef(selectionStart) && isDef(selectionEnd)) {
5483
- const valueLen = getStringLength(value);
5484
+ const valueLen = value.length;
5484
5485
  if (limitDiffLen) {
5485
5486
  selectionStart -= limitDiffLen;
5486
5487
  selectionEnd -= limitDiffLen;
@@ -15826,6 +15827,7 @@
15826
15827
  allTabText: makeStringProp("全部物料"),
15827
15828
  materialTabText: makeStringProp("物资"),
15828
15829
  toolTabText: makeStringProp("工具"),
15830
+ max: makeNumericProp(Infinity),
15829
15831
  search: Function,
15830
15832
  searchDebounce: makeNumericProp(300)
15831
15833
  };
@@ -16038,6 +16040,7 @@
16038
16040
  "key": item.id,
16039
16041
  "item": item,
16040
16042
  "modelValue": quantities.value[index],
16043
+ "max": props2.max,
16041
16044
  "keyword": searching.value ? keyword.value : "",
16042
16045
  "selected": selected,
16043
16046
  "onDetail": openDetail,
@@ -25427,7 +25430,7 @@
25427
25430
  });
25428
25431
  }
25429
25432
  };
25430
- const version = "0.0.47";
25433
+ const version = "0.0.49";
25431
25434
  function install(app) {
25432
25435
  const components = [
25433
25436
  ActionBar,