vue-devui 1.5.13-hotfix.1 → 1.5.14

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 (72) hide show
  1. package/auto-complete/index.es.js +3 -0
  2. package/auto-complete/index.umd.js +1 -1
  3. package/breadcrumb/index.es.js +3 -0
  4. package/breadcrumb/index.umd.js +1 -1
  5. package/checkbox/index.es.js +3 -0
  6. package/checkbox/index.umd.js +1 -1
  7. package/code-review/index.es.js +3 -0
  8. package/code-review/index.umd.js +1 -1
  9. package/date-picker-pro/index.es.js +3 -0
  10. package/date-picker-pro/index.umd.js +8 -8
  11. package/dropdown/index.es.js +3 -0
  12. package/dropdown/index.umd.js +1 -1
  13. package/editable-select/index.es.js +3 -0
  14. package/editable-select/index.umd.js +7 -7
  15. package/editor-md/index.es.js +1423 -1213
  16. package/editor-md/index.umd.js +45 -45
  17. package/editor-md/style.css +1 -1
  18. package/form/index.es.js +3 -0
  19. package/form/index.umd.js +1 -1
  20. package/git-graph/index.es.js +3 -0
  21. package/git-graph/index.umd.js +12 -12
  22. package/input/index.es.js +3 -0
  23. package/input/index.umd.js +6 -6
  24. package/input-number/index.es.js +3 -0
  25. package/input-number/index.umd.js +1 -1
  26. package/mention/index.es.js +3 -0
  27. package/mention/index.umd.js +1 -1
  28. package/modal/index.es.js +3 -0
  29. package/modal/index.umd.js +1 -1
  30. package/nuxt/components/checkbox.js +3 -0
  31. package/overlay/index.es.js +3 -0
  32. package/overlay/index.umd.js +1 -1
  33. package/package.json +1 -1
  34. package/pagination/index.es.js +25 -13
  35. package/pagination/index.umd.js +14 -14
  36. package/pagination/style.css +1 -1
  37. package/popover/index.es.js +3 -0
  38. package/popover/index.umd.js +6 -6
  39. package/radio/index.es.js +3 -0
  40. package/radio/index.umd.js +1 -1
  41. package/search/index.es.js +3 -0
  42. package/search/index.umd.js +1 -1
  43. package/select/index.es.js +3 -0
  44. package/select/index.umd.js +1 -1
  45. package/splitter/index.es.js +3 -0
  46. package/splitter/index.umd.js +1 -1
  47. package/style.css +1 -1
  48. package/switch/index.es.js +3 -0
  49. package/switch/index.umd.js +1 -1
  50. package/table/index.es.js +3 -0
  51. package/table/index.umd.js +1 -1
  52. package/textarea/index.es.js +3 -0
  53. package/textarea/index.umd.js +1 -1
  54. package/time-picker/index.es.js +3 -0
  55. package/time-picker/index.umd.js +1 -1
  56. package/time-select/index.es.js +3 -0
  57. package/time-select/index.umd.js +1 -1
  58. package/tooltip/index.es.js +3 -0
  59. package/tooltip/index.umd.js +4 -4
  60. package/tree/index.es.js +3 -0
  61. package/tree/index.umd.js +1 -1
  62. package/types/editor-md/index.d.ts +1 -0
  63. package/types/editor-md/src/components/md-render.d.ts +1 -1
  64. package/types/editor-md/src/composables/use-editor-md.d.ts +3 -0
  65. package/types/editor-md/src/editor-md-types.d.ts +9 -1
  66. package/types/editor-md/src/editor-md.d.ts +6 -3
  67. package/types/editor-md/src/plugins/checkbox.d.ts +1 -0
  68. package/types/pagination/src/pagination-types.d.ts +4 -13
  69. package/types/pagination/src/pagination.d.ts +218 -0
  70. package/types/tag/src/tag.d.ts +2 -2
  71. package/vue-devui.es.js +165 -29
  72. package/vue-devui.umd.js +50 -50
package/vue-devui.es.js CHANGED
@@ -7904,6 +7904,9 @@ function useOverlay(props, emit) {
7904
7904
  ];
7905
7905
  props.showArrow && middleware.push(arrow({ element: arrowEl }));
7906
7906
  props.shiftOffset !== void 0 && middleware.push(shift());
7907
+ if (!overlayEl) {
7908
+ return;
7909
+ }
7907
7910
  const { x, y, placement, middlewareData } = await computePosition(hostEl, overlayEl, {
7908
7911
  strategy: "fixed",
7909
7912
  middleware
@@ -23764,7 +23767,7 @@ var Fullscreen = defineComponent({
23764
23767
  });
23765
23768
  var FullscreenInstall = {
23766
23769
  title: "Fullscreen \u5168\u5C4F",
23767
- category: "\u57FA\u7840\u7EC4\u4EF6",
23770
+ category: "\u901A\u7528",
23768
23771
  install(app) {
23769
23772
  app.component(Fullscreen.name, Fullscreen);
23770
23773
  }
@@ -25396,11 +25399,19 @@ function useEditorMd(props, ctx2) {
25396
25399
  const toolbars = reactive(cloneDeep_1(DEFAULT_TOOLBARS));
25397
25400
  const editorRef = ref();
25398
25401
  const renderRef = ref();
25402
+ const overlayRef = ref();
25403
+ const cursorRef = ref();
25404
+ const isHintShow = ref();
25399
25405
  const previewHtmlList = ref([]);
25400
25406
  let editorIns;
25401
25407
  let canPreviewScrollView = false;
25408
+ let cursorHint = "";
25409
+ let cursorHintEnd = -1;
25410
+ let cursorHintStart = -1;
25411
+ let prefix;
25412
+ let hintShow = false;
25402
25413
  let CodeMirror;
25403
- computed(() => {
25414
+ const prefixes = computed(() => {
25404
25415
  const result2 = [];
25405
25416
  for (const key in hintConfig == null ? void 0 : hintConfig.value) {
25406
25417
  if (typeof (hintConfig == null ? void 0 : hintConfig.value[key]) === "function" || (hintConfig == null ? void 0 : hintConfig.value[key]) && typeof (hintConfig == null ? void 0 : hintConfig.value[key].handler) === "function") {
@@ -25455,7 +25466,91 @@ function useEditorMd(props, ctx2) {
25455
25466
  canPreviewScrollView = false;
25456
25467
  };
25457
25468
  const onChecked = (e) => {
25458
- ctx2.emit("mdCheckedEvent", e);
25469
+ ctx2.emit("checkedChange", e);
25470
+ };
25471
+ let timer;
25472
+ const attachOverlay = () => {
25473
+ timer = setTimeout(() => {
25474
+ var _a;
25475
+ cursorRef.value = ((_a = editorRef.value) == null ? void 0 : _a.parentNode.querySelector(".CodeMirror-cursor")) || void 0;
25476
+ overlayRef.value.updatePosition();
25477
+ isHintShow.value = true;
25478
+ hintShow = true;
25479
+ });
25480
+ };
25481
+ const hideHint = () => {
25482
+ clearTimeout(timer);
25483
+ isHintShow.value = false;
25484
+ };
25485
+ const showHint = () => {
25486
+ if (hintShow) {
25487
+ hideHint();
25488
+ }
25489
+ attachOverlay();
25490
+ };
25491
+ const getHintList = () => {
25492
+ let handler;
25493
+ if (typeof hintConfig.value[prefix] === "function") {
25494
+ handler = hintConfig.value[prefix];
25495
+ } else if (hintConfig.value[prefix] && typeof hintConfig.value[prefix].handler === "function") {
25496
+ handler = hintConfig.value[prefix].handler;
25497
+ }
25498
+ const callback = (replaceText) => {
25499
+ const cursor = editorIns.getCursor();
25500
+ const endCh = cursorHintEnd;
25501
+ const startCh = cursorHintStart;
25502
+ if (editorIns.getLine(cursor.line).length === cursor.ch) {
25503
+ editorIns.replaceRange(replaceText + " ", { line: cursor.line, ch: startCh }, { line: cursor.line, ch: endCh });
25504
+ } else {
25505
+ editorIns.replaceRange(replaceText, { line: cursor.line, ch: startCh }, { line: cursor.line, ch: endCh });
25506
+ editorIns.setCursor(cursor.line, editorIns.getCursor().ch + 1);
25507
+ }
25508
+ editorIns.focus();
25509
+ hideHint();
25510
+ };
25511
+ handler && handler({ prefix, cursorHint, callback });
25512
+ };
25513
+ const cursorActivityHandler = () => {
25514
+ const cursor = editorIns.getCursor();
25515
+ let i = prefixes.value.length;
25516
+ const value = editorIns.getLine(cursor.line).replace(/\t/g, " ");
25517
+ const selection = editorIns.getSelection();
25518
+ const isImgRegx = /^\!\[\S+/;
25519
+ if (selection) {
25520
+ return;
25521
+ }
25522
+ let nowPrefix = "";
25523
+ let hint = "";
25524
+ while (i >= 1) {
25525
+ i--;
25526
+ nowPrefix = prefixes.value[i];
25527
+ const startPos = value.lastIndexOf(nowPrefix, cursor.ch);
25528
+ const endPos = value.indexOf(" ", cursor.ch) > -1 ? value.indexOf(" ", cursor.ch) : value.length;
25529
+ hint = value.slice(startPos, cursor.ch);
25530
+ if (startPos > 0 && value[startPos - 1] !== " " || startPos < 0 || !hint.includes(nowPrefix) || hint.endsWith(" ") || isImgRegx.test(hint)) {
25531
+ cursorHint = "";
25532
+ cursorHintStart = -1;
25533
+ cursorHintEnd = -1;
25534
+ } else {
25535
+ prefix = prefixes.value[i];
25536
+ cursorHint = hint.slice(prefix.length);
25537
+ cursorHintStart = startPos;
25538
+ cursorHintEnd = endPos;
25539
+ break;
25540
+ }
25541
+ }
25542
+ if (cursorHintStart > -1 && hint[0]) {
25543
+ const spacePosition = value.lastIndexOf(" ", cursor.ch);
25544
+ if (spacePosition > cursorHintStart) {
25545
+ return;
25546
+ }
25547
+ setTimeout(() => {
25548
+ showHint();
25549
+ getHintList();
25550
+ });
25551
+ } else {
25552
+ hideHint();
25553
+ }
25459
25554
  };
25460
25555
  const onChange = debounce(() => {
25461
25556
  const content2 = editorIns.getValue();
@@ -25492,8 +25587,13 @@ function useEditorMd(props, ctx2) {
25492
25587
  shortKeys[toolbarItem.shortKey.replace(/\+/g, "-")] = (_a = toolbarItem.handler) == null ? void 0 : _a.bind(null, editorIns, toolbarItem.params);
25493
25588
  }
25494
25589
  }
25495
- editorIns.setOption("extraKeys", shortKeys);
25590
+ editorIns.setOption("extraKeys", Object.assign({
25591
+ Esc: () => {
25592
+ hideHint();
25593
+ }
25594
+ }), shortKeys);
25496
25595
  editorIns.on("beforeChange", _enforceMaxLength);
25596
+ editorIns.on("cursorActivity", lodash.exports.throttle(cursorActivityHandler, hintConfig.value && hintConfig.value.throttleTime || 300));
25497
25597
  editorIns.setSize("auto", "100%");
25498
25598
  refreshEditorCursor();
25499
25599
  editorIns.setCursor(editorIns.lineCount(), 0);
@@ -25571,9 +25671,12 @@ function useEditorMd(props, ctx2) {
25571
25671
  });
25572
25672
  return {
25573
25673
  editorRef,
25674
+ overlayRef,
25675
+ cursorRef,
25574
25676
  renderRef,
25575
25677
  toolbars,
25576
25678
  previewHtmlList,
25679
+ isHintShow,
25577
25680
  getEditorIns,
25578
25681
  onPaste,
25579
25682
  previewContentChange,
@@ -25693,7 +25796,8 @@ const editorMdProps = __spreadProps(__spreadValues({}, commonProps$1), {
25693
25796
  default: 10
25694
25797
  },
25695
25798
  hintConfig: {
25696
- type: Object
25799
+ type: Object,
25800
+ default: {}
25697
25801
  },
25698
25802
  customHintReplaceFn: {
25699
25803
  type: Function
@@ -25987,13 +26091,17 @@ var ToolbarItem = defineComponent({
25987
26091
  const editorIns = getEditorIns();
25988
26092
  if (config.id === "fullscreen") {
25989
26093
  showFullscreen.value = !showFullscreen.value;
25990
- } else {
25991
- (_a = config.handler) == null ? void 0 : _a.call(config, editorIns, config.params);
26094
+ if (window) {
26095
+ const event = new Event("resize");
26096
+ window.dispatchEvent(event);
26097
+ }
25992
26098
  }
26099
+ (_a = config.handler) == null ? void 0 : _a.call(config, editorIns, config.params);
25993
26100
  };
25994
26101
  return () => createVNode(Fragment, null, [config.type === "button" && createVNode(Tooltip, {
25995
26102
  "position": ["top", "bottom"],
25996
- "content": getTooltipContent(config.name, config.shortKey)
26103
+ "content": getTooltipContent(config.name, config.shortKey),
26104
+ "hide-after": 1e3
25997
26105
  }, {
25998
26106
  default: () => [createVNode("span", {
25999
26107
  "class": "md-toolbar-item",
@@ -26005,8 +26113,9 @@ var ToolbarItem = defineComponent({
26005
26113
  "align": "start"
26006
26114
  }, {
26007
26115
  default: () => createVNode("span", null, [createVNode(Tooltip, {
26008
- "position": ["top"],
26009
- "content": getTooltipContent(config.name)
26116
+ "position": showFullscreen.value ? ["right"] : ["top"],
26117
+ "content": getTooltipContent(config.name),
26118
+ "hide-after": 1e3
26010
26119
  }, {
26011
26120
  default: () => [createVNode("span", {
26012
26121
  "class": "md-toolbar-item",
@@ -26432,7 +26541,7 @@ function useEditorMdRender(props, ctx2) {
26432
26541
  const result2 = previewRef.value.querySelectorAll("input");
26433
26542
  const index2 = [...result2].filter((el) => el.type === "checkbox").findIndex((item) => item === e.target);
26434
26543
  const checkContent = setChecked(e.target.checked, index2);
26435
- ctx2.emit("mdCheckedEvent", checkContent);
26544
+ ctx2.emit("checkedChange", checkContent);
26436
26545
  }
26437
26546
  };
26438
26547
  return { previewRef, renderService, onPreviewClick, setContainerContent };
@@ -26486,7 +26595,7 @@ function useMdRenderWatcher(props, renderService, setContainerContent) {
26486
26595
  var MdRender = defineComponent({
26487
26596
  name: "DMdRender",
26488
26597
  props: mdRenderProps,
26489
- emits: ["mdRenderChange", "mdCheckedEvent"],
26598
+ emits: ["mdRenderChange", "checkedChange"],
26490
26599
  setup(props, ctx2) {
26491
26600
  const {
26492
26601
  previewRef,
@@ -26512,7 +26621,7 @@ function _isSlot$7(s) {
26512
26621
  var EditorMd = defineComponent({
26513
26622
  name: "DEditorMd",
26514
26623
  props: editorMdProps,
26515
- emits: ["update:modelValue", "mdCheckedEvent", "selectHint", "afterEditorInit", "contentChange", "previewContentChange", "imageUpload"],
26624
+ emits: ["update:modelValue", "checkedChange", "selectHint", "afterEditorInit", "contentChange", "previewContentChange", "imageUpload"],
26516
26625
  setup(props, ctx2) {
26517
26626
  const {
26518
26627
  mode,
@@ -26535,7 +26644,10 @@ var EditorMd = defineComponent({
26535
26644
  const showFullscreen = ref(false);
26536
26645
  const {
26537
26646
  editorRef,
26647
+ overlayRef,
26648
+ cursorRef,
26538
26649
  renderRef,
26650
+ isHintShow,
26539
26651
  toolbars,
26540
26652
  previewHtmlList,
26541
26653
  onPaste,
@@ -26585,7 +26697,19 @@ var EditorMd = defineComponent({
26585
26697
  }, [createVNode("textarea", {
26586
26698
  "ref": editorRef,
26587
26699
  "placeholder": placeholder.value
26588
- }, [modelValue.value]), Boolean(maxlength == null ? void 0 : maxlength.value) && createVNode("div", {
26700
+ }, [modelValue.value]), createVNode(FlexibleOverlay, {
26701
+ "ref": overlayRef,
26702
+ "modelValue": isHintShow.value,
26703
+ "onUpdate:modelValue": ($event) => isHintShow.value = $event,
26704
+ "origin": cursorRef.value || void 0,
26705
+ "align": "start",
26706
+ "position": ["bottom-start"]
26707
+ }, {
26708
+ default: () => {
26709
+ var _a, _b;
26710
+ return [(_b = (_a = ctx2.slots) == null ? void 0 : _a.hintTemplate) == null ? void 0 : _b.call(_a)];
26711
+ }
26712
+ }), Boolean(maxlength == null ? void 0 : maxlength.value) && createVNode("div", {
26589
26713
  "class": "dp-md-count"
26590
26714
  }, [modelValue.value.length || 0, createTextVNode("/"), maxlength.value])]), createVNode(MdRender, {
26591
26715
  "ref": renderRef,
@@ -26600,7 +26724,7 @@ var EditorMd = defineComponent({
26600
26724
  "disable-render": true,
26601
26725
  "md-plugins": mdPlugins.value,
26602
26726
  "onMdRenderChange": previewContentChange,
26603
- "onMdCheckedEvent": onChecked,
26727
+ "onCheckedChange": onChecked,
26604
26728
  "onScroll": onPreviewScroll,
26605
26729
  "onMouseover": onPreviewMouseover,
26606
26730
  "onMouseout": onPreviewMouseout
@@ -27381,6 +27505,9 @@ class GitGraph$1 {
27381
27505
  style: "clip-path: circle(50%)"
27382
27506
  };
27383
27507
  this.setNodeAttr(img, imgAttrs);
27508
+ const authorText = document.createElementNS("http://www.w3.org/2000/svg", "title");
27509
+ authorText.appendChild(document.createTextNode(commit.author.name));
27510
+ img.appendChild(authorText);
27384
27511
  this.svg.appendChild(img);
27385
27512
  if (!this.messageBoxWidth) {
27386
27513
  this.messageBoxWidth = this.svg.getBoundingClientRect.width - (avatar_box_x + 40);
@@ -32640,7 +32767,7 @@ const paginationProps = {
32640
32767
  },
32641
32768
  pageSizeDirection: {
32642
32769
  type: Array,
32643
- default: () => ["centerDown", "centerUp"]
32770
+ default: () => ["bottom", "top"]
32644
32771
  },
32645
32772
  pageIndex: {
32646
32773
  type: Number,
@@ -32786,7 +32913,7 @@ var ConfigMenu = defineComponent({
32786
32913
  isShowConfig,
32787
32914
  $slots
32788
32915
  } = this;
32789
- const ns2 = useNamespace$1("pagination");
32916
+ const ns2 = useNamespace("pagination");
32790
32917
  return withDirectives(createVNode("div", {
32791
32918
  "class": ns2.e("config"),
32792
32919
  "ref": "paginationConfig"
@@ -32854,8 +32981,14 @@ var JumpPage = defineComponent({
32854
32981
  }
32855
32982
  };
32856
32983
  const jump = (e) => {
32984
+ if (isNaN(curPage)) {
32985
+ curPage = 1;
32986
+ }
32857
32987
  if (curPage > (totalPages == null ? void 0 : totalPages.value)) {
32858
- return;
32988
+ curPage = totalPages == null ? void 0 : totalPages.value;
32989
+ }
32990
+ if (curPage < 1) {
32991
+ curPage = 1;
32859
32992
  }
32860
32993
  if ((e === "btn" || e.key === "Enter") && (cursor == null ? void 0 : cursor.value) !== curPage) {
32861
32994
  emit("changeCursorEmit", curPage);
@@ -32876,7 +33009,7 @@ var JumpPage = defineComponent({
32876
33009
  jump,
32877
33010
  showJumpButton
32878
33011
  } = this;
32879
- const ns2 = useNamespace$1("pagination");
33012
+ const ns2 = useNamespace("pagination");
32880
33013
  const inputProps2 = {
32881
33014
  class: [ns2.e("input"), size ? ns2.em("input", size) : ""],
32882
33015
  size,
@@ -32998,7 +33131,7 @@ var PageNumBtn = defineComponent({
32998
33131
  nextChange,
32999
33132
  showTruePageIndex
33000
33133
  } = this;
33001
- const ns2 = useNamespace$1("pagination");
33134
+ const ns2 = useNamespace("pagination");
33002
33135
  return createVNode("ul", {
33003
33136
  "class": [ns2.e("list"), size ? ns2.m(size) : ""]
33004
33137
  }, [createVNode("li", {
@@ -33084,13 +33217,14 @@ var PageNumBtn = defineComponent({
33084
33217
  });
33085
33218
  var PageSize = defineComponent({
33086
33219
  setup() {
33087
- const ns2 = useNamespace$1("pagination");
33220
+ const ns2 = useNamespace("pagination");
33088
33221
  const paginationContext = inject(paginationInjectionKey);
33089
33222
  const iconRotate = ref(0);
33090
33223
  const {
33091
33224
  size,
33092
33225
  currentPageSize,
33093
33226
  pageSizeOptions,
33227
+ pageSizeDirection,
33094
33228
  pageSizeChange,
33095
33229
  t
33096
33230
  } = paginationContext;
@@ -33098,7 +33232,7 @@ var PageSize = defineComponent({
33098
33232
  iconRotate.value = e ? 180 : 0;
33099
33233
  };
33100
33234
  return () => createVNode(Fragment, null, [createVNode(Dropdown$1, {
33101
- "position": ["bottom", "top"],
33235
+ "position": pageSizeDirection.value,
33102
33236
  "class": ns2.e("size-list"),
33103
33237
  "onToggle": onDropdownToggle
33104
33238
  }, {
@@ -33116,9 +33250,9 @@ var PageSize = defineComponent({
33116
33250
  "class": {
33117
33251
  active: item === currentPageSize.value
33118
33252
  },
33119
- "onClick": withModifiers(pageSizeChange.bind(null, {
33120
- value: item
33121
- }), ["stop"]),
33253
+ "onClick": () => {
33254
+ pageSizeChange(item);
33255
+ },
33122
33256
  "key": index2
33123
33257
  }, [item]))])
33124
33258
  }), createVNode("span", {
@@ -33145,6 +33279,7 @@ var Pagination = defineComponent({
33145
33279
  const {
33146
33280
  autoHide,
33147
33281
  pageSizeOptions,
33282
+ pageSizeDirection,
33148
33283
  total,
33149
33284
  canChangePageSize,
33150
33285
  lite,
@@ -33162,7 +33297,7 @@ var Pagination = defineComponent({
33162
33297
  showJumpButton,
33163
33298
  haveConfigMenu
33164
33299
  } = toRefs(props);
33165
- const ns2 = useNamespace$1("pagination");
33300
+ const ns2 = useNamespace("pagination");
33166
33301
  const totalPages = computed(() => Math.ceil(props.total / props.pageSize));
33167
33302
  const litePageOptions = computed(() => liteSelectOptions(totalPages.value));
33168
33303
  const cursor = computed({
@@ -33190,7 +33325,7 @@ var Pagination = defineComponent({
33190
33325
  emit("pageIndexChange", val);
33191
33326
  };
33192
33327
  const pageSizeChange = (val) => {
33193
- currentPageSize.value = val.value;
33328
+ currentPageSize.value = val;
33194
33329
  if (props.autoFixPageIndex) {
33195
33330
  nextTick(() => {
33196
33331
  if (cursor.value > totalPages.value) {
@@ -33198,7 +33333,7 @@ var Pagination = defineComponent({
33198
33333
  }
33199
33334
  });
33200
33335
  }
33201
- emit("pageSizeChange", val.value);
33336
+ emit("pageSizeChange", val);
33202
33337
  };
33203
33338
  const litePageIndexChange = (page) => {
33204
33339
  changeCursorEmit(page.value);
@@ -33207,6 +33342,7 @@ var Pagination = defineComponent({
33207
33342
  size,
33208
33343
  currentPageSize,
33209
33344
  pageSizeOptions,
33345
+ pageSizeDirection,
33210
33346
  pageSizeChange,
33211
33347
  t
33212
33348
  });
@@ -43894,7 +44030,7 @@ const installs = [
43894
44030
  VirtualListInstall
43895
44031
  ];
43896
44032
  var vueDevui = {
43897
- version: "1.5.13-hotfix.1",
44033
+ version: "1.5.14",
43898
44034
  install(app) {
43899
44035
  installs.forEach((p) => app.use(p));
43900
44036
  }