bkui-vue 0.0.1-beta.89 → 0.0.1-beta.91

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.
package/dist/index.esm.js CHANGED
@@ -2841,7 +2841,7 @@ const warn = (props, context) => {
2841
2841
  warn.displayName = "warn";
2842
2842
  warn.inheritAttrs = false;
2843
2843
  JSON.parse('{"type":"element","name":"svg","attributes":{"xmlns":"http://www.w3.org/2000/svg","viewBox":"0 0 1024 1024","style":"width: 1em; height: 1em; vertical-align: middle;fill: currentColor;overflow: hidden;"},"elements":[{"type":"element","name":"path","attributes":{"d":"M603.52 348.8c0 26.496-22.357333333333333 48-49.919999999999995 48s-49.919999999999995-21.503999999999998-49.919999999999995-48c0-26.496 22.357333333333333-48 49.919999999999995-48s49.919999999999995 21.503999999999998 49.919999999999995 48z"}},{"type":"element","name":"path","attributes":{"d":"M357.11999999999995 348.8c0 26.496-22.357333333333333 48-49.919999999999995 48s-49.919999999999995-21.503999999999998-49.919999999999995-48c0-26.496 22.357333333333333-48 49.919999999999995-48s49.919999999999995 21.503999999999998 49.919999999999995 48z"}},{"type":"element","name":"path","attributes":{"d":"M693.12 604.16c0 15.914666666666665-13.184 28.8-29.439999999999998 28.8s-29.439999999999998-12.885333333333332-29.439999999999998-28.8c0-15.914666666666665 13.184-28.8 29.439999999999998-28.8s29.439999999999998 12.885333333333332 29.439999999999998 28.8z"}},{"type":"element","name":"path","attributes":{"d":"M951.68 832c43.775999999999996-42.410666666666664 71.29599999999999-101.41866666666665 72.32-166.86933333333332-4.608-109.696-77.35466666666666-201.0453333333333-176.72533333333334-233.30133333333333 5.674666666666667-12.117333333333331 10.154666666666666-26.282666666666664 10.154666666666666-41.471999999999994 0-4.522666666666666-0.38399999999999995-8.959999999999999-1.152-13.226666666666667-33.834666666666664-181.29066666666665-212.39466666666664-313.1306666666667-425.5146666666667-313.1306666666667-238.71999999999997 0-430.72 167.04-430.72 372.48 1.2799999999999998 107.56266666666666 50.56 203.30666666666664 127.40266666666668 267.05066666666664l-16.682666666666666 55.50933333333333c-2.1759999999999997 6.784-3.456 14.634666666666668-3.456 22.741333333333333 0 42.410666666666664 34.38933333333333 76.8 76.8 76.8 12.458666666666666 0 24.191999999999997-2.944 34.602666666666664-8.234666666666666l101.33333333333333-52.906666666666666c32.81066666666666 7.722666666666666 70.52799999999999 12.159999999999998 109.22666666666666 12.159999999999998 0.08533333333333333 0 0.17066666666666666 0 0.21333333333333332 0h28.16c13.098666666666666-0.7679999999999999 25.130666666666663-4.693333333333333 35.54133333333333-11.050666666666666 54.22933333333333 73.55733333333333 140.672 120.53333333333333 238.07999999999998 120.53333333333333 1.664 0 3.3706666666666667 0 5.034666666666666-0.042666666666666665 21.077333333333332-0.08533333333333333 41.855999999999995-2.1759999999999997 61.99466666666667-6.101333333333333l49.10933333333333 26.581333333333333c9.941333333333333 5.034666666666666 21.717333333333332 8.021333333333333 34.176 8.021333333333333 42.410666666666664 0 76.8-34.38933333333333 76.8-76.8 0-8.106666666666666-1.2799999999999998-15.957333333333333-3.584-23.296zM430.72 752.64c-0.17066666666666666 0-0.38399999999999995 0-0.5973333333333333 0-40.831999999999994 0-80.29866666666666-5.8453333333333335-117.58933333333331-16.72533333333333l-3.456 0.7253333333333334-131.2 67.19999999999999 35.199999999999996-113.27999999999999h-3.1999999999999997c-86.10133333333332-52.05333333333333-143.40266666666668-144.17066666666665-145.92-249.89866666666666 0-172.50133333333332 165.76-312.66133333333335 366.72-312.66133333333335 5.717333333333333-0.3413333333333333 12.415999999999999-0.512 19.157333333333334-0.512 163.32799999999997 0 300.58666666666664 111.40266666666668 340.0106666666667 262.4l-14.805333333333332 2.432c-183.04 0-327.03999999999996 112-327.03999999999996 285.44 0.512 26.709333333333333 5.1626666666666665 52.181333333333335 13.312 75.98933333333332zM872.96 812.8v0l21.759999999999998 67.84-81.28-40.959999999999994h-3.84c-21.119999999999997 6.101333333333333-45.397333333333336 9.6-70.48533333333333 9.6-0.17066666666666666 0-0.38399999999999995 0-0.5546666666666666 0-5.888 0.5973333333333333-12.757333333333332 0.9386666666666665-19.712 0.9386666666666665-107.09333333333332 0-195.2853333333333-80.93866666666666-206.71999999999997-184.95999999999998 10.367999999999999-106.96533333333333 99.072-189.1413333333333 206.976-189.1413333333333 5.973333333333334 0 11.861333333333334 0.256 17.706666666666663 0.7253333333333334 4.309333333333333-0.512 10.197333333333333-0.7253333333333334 16.170666666666666-0.7253333333333334 107.904 0 196.60799999999998 82.17599999999999 206.976 187.34933333333333-1.7066666666666666 63.82933333333333-35.79733333333333 118.44266666666665-86.18666666666667 148.90666666666667z"}},{"type":"element","name":"path","attributes":{"d":"M839.68 604.16c0 15.914666666666665-13.184 28.8-29.439999999999998 28.8s-29.439999999999998-12.885333333333332-29.439999999999998-28.8c0-15.914666666666665 13.184-28.8 29.439999999999998-28.8s29.439999999999998 12.885333333333332 29.439999999999998 28.8z"}}]}');
2844
- var Component$C = defineComponent({
2844
+ var Component$D = defineComponent({
2845
2845
  name: "Alert",
2846
2846
  props: {
2847
2847
  theme: PropTypes.theme(["info", "success", "warning", "error"]).def("info"),
@@ -2898,8 +2898,8 @@ var Component$C = defineComponent({
2898
2898
  }, [this.closeText ? this.closeText : createVNode(closeLine, null, null)])])]);
2899
2899
  }
2900
2900
  });
2901
- const BkAlert = withInstall(Component$C);
2902
- var Component$B = defineComponent({
2901
+ const BkAlert = withInstall(Component$D);
2902
+ var Component$C = defineComponent({
2903
2903
  name: "AnimateNumber",
2904
2904
  props: {
2905
2905
  value: PropTypes.number.def(0),
@@ -2947,7 +2947,7 @@ var Component$B = defineComponent({
2947
2947
  return () => createVNode("span", null, [formatValue.value]);
2948
2948
  }
2949
2949
  });
2950
- const BkAnimateNumber = withInstall(Component$B);
2950
+ const BkAnimateNumber = withInstall(Component$C);
2951
2951
  var commonjsGlobal = typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : {};
2952
2952
  var lodash = { exports: {} };
2953
2953
  /**
@@ -8388,7 +8388,7 @@ const off$1 = (() => {
8388
8388
  }
8389
8389
  };
8390
8390
  })();
8391
- var Component$A = defineComponent({
8391
+ var Component$B = defineComponent({
8392
8392
  name: "Affix",
8393
8393
  props: {
8394
8394
  offsetTop: PropTypes.number.def(0),
@@ -8513,8 +8513,8 @@ var Component$A = defineComponent({
8513
8513
  };
8514
8514
  }
8515
8515
  });
8516
- const BkAffix = withInstall(Component$A);
8517
- var Component$z = defineComponent({
8516
+ const BkAffix = withInstall(Component$B);
8517
+ var Component$A = defineComponent({
8518
8518
  name: "Backtop",
8519
8519
  props: {
8520
8520
  visibilityHeight: PropTypes.number.def(200),
@@ -8581,8 +8581,8 @@ var Component$z = defineComponent({
8581
8581
  });
8582
8582
  }
8583
8583
  });
8584
- const BkBacktop = withInstall(Component$z);
8585
- var Component$y = defineComponent({
8584
+ const BkBacktop = withInstall(Component$A);
8585
+ var Component$z = defineComponent({
8586
8586
  name: "Badge",
8587
8587
  props: {
8588
8588
  theme: PropTypes.string.def("primary"),
@@ -8658,8 +8658,8 @@ var Component$y = defineComponent({
8658
8658
  }, [(_f = (_e = (_d = this.$slots).icon) == null ? void 0 : _e.call(_d)) != null ? _f : number]) : ""]);
8659
8659
  }
8660
8660
  });
8661
- const BkBadge = withInstall(Component$y);
8662
- var Component$x = defineComponent({
8661
+ const BkBadge = withInstall(Component$z);
8662
+ var Component$y = defineComponent({
8663
8663
  name: "Breadcrumb",
8664
8664
  props: {
8665
8665
  extCls: PropTypes.string,
@@ -8728,11 +8728,11 @@ var BreadcrumbItem = defineComponent({
8728
8728
  } = getCurrentInstance();
8729
8729
  const parent = inject("breadcrumb");
8730
8730
  const router = appContext.config.globalProperties.$router;
8731
- const {
8732
- to,
8733
- replace
8734
- } = props;
8735
8731
  const handleClick = () => {
8732
+ const {
8733
+ to,
8734
+ replace
8735
+ } = props;
8736
8736
  if (!to || !router)
8737
8737
  return;
8738
8738
  replace ? router.replace(to) : router.push(to);
@@ -8746,7 +8746,7 @@ var BreadcrumbItem = defineComponent({
8746
8746
  "class": classCtx
8747
8747
  }, [createVNode("span", {
8748
8748
  "ref": "link",
8749
- "class": `bk-breadcrumb-item-inner ${to ? "is-link" : ""}`,
8749
+ "class": `bk-breadcrumb-item-inner ${props.to ? "is-link" : ""}`,
8750
8750
  "role": "link",
8751
8751
  "onClick": handleClick
8752
8752
  }, [(_a = slots == null ? void 0 : slots.default) == null ? void 0 : _a.call(slots)]), (slots == null ? void 0 : slots.separator) ? (_b = slots == null ? void 0 : slots.separator) == null ? void 0 : _b.call(slots) : (parent == null ? void 0 : parent.separatorClass) ? createVNode("i", {
@@ -8758,7 +8758,7 @@ var BreadcrumbItem = defineComponent({
8758
8758
  };
8759
8759
  }
8760
8760
  });
8761
- const BkBreadcrumb = withInstallProps(Component$x, { Item: BreadcrumbItem });
8761
+ const BkBreadcrumb = withInstallProps(Component$y, { Item: BreadcrumbItem });
8762
8762
  let BkLoadingMode;
8763
8763
  (function(BkLoadingMode2) {
8764
8764
  BkLoadingMode2["Default"] = "default";
@@ -8786,7 +8786,7 @@ const loadingTypes = {
8786
8786
  size: PropTypes.commonType(Object.values(BkLoadingSize)).def(BkLoadingSize.Normal),
8787
8787
  mode: PropTypes.commonType(Object.values(BkLoadingMode)).def("default")
8788
8788
  };
8789
- var Component$w = defineComponent({
8789
+ var Component$x = defineComponent({
8790
8790
  name: "Loading",
8791
8791
  props: loadingTypes,
8792
8792
  setup(props, ctx) {
@@ -8831,7 +8831,7 @@ var Component$w = defineComponent({
8831
8831
  };
8832
8832
  }
8833
8833
  });
8834
- const BkLoading = withInstallProps(Component$w, { setDefaultIndicator, BkLoadingMode, BkLoadingSize }, true);
8834
+ const BkLoading = withInstallProps(Component$x, { setDefaultIndicator, BkLoadingMode, BkLoadingSize }, true);
8835
8835
  const btnSizes = ["", "small", "large"];
8836
8836
  const buttonProps = {
8837
8837
  theme: PropTypes.theme().def(""),
@@ -8849,7 +8849,7 @@ const buttonProps = {
8849
8849
  type: String
8850
8850
  }
8851
8851
  };
8852
- var Component$v = defineComponent({
8852
+ var Component$w = defineComponent({
8853
8853
  name: "Button",
8854
8854
  props: buttonProps,
8855
8855
  emits: ["click", "mouseover"],
@@ -8938,7 +8938,7 @@ var ButtonGroup = defineComponent({
8938
8938
  };
8939
8939
  }
8940
8940
  });
8941
- const BkButton = withInstallProps(Component$v, { ButtonGroup });
8941
+ const BkButton = withInstallProps(Component$w, { ButtonGroup });
8942
8942
  const inputType = {
8943
8943
  type: PropTypes.string.def("text"),
8944
8944
  clearable: PropTypes.bool,
@@ -9004,7 +9004,7 @@ const inputEmitEventsType = {
9004
9004
  [EVENTS$2.COMPOSITIONUPDATE]: CompositionEventFunction,
9005
9005
  [EVENTS$2.COMPOSITIONEND]: CompositionEventFunction
9006
9006
  };
9007
- var Component$u = defineComponent({
9007
+ var Component$v = defineComponent({
9008
9008
  name: "Input",
9009
9009
  inheritAttrs: false,
9010
9010
  props: inputType,
@@ -9064,8 +9064,9 @@ var Component$u = defineComponent({
9064
9064
  });
9065
9065
  function clear() {
9066
9066
  var _a2;
9067
- ctx.emit(EVENTS$2.UPDATE, "");
9068
- ctx.emit(EVENTS$2.CHANGE, "");
9067
+ const resetVal = isNumberInput.value ? props.min : "";
9068
+ ctx.emit(EVENTS$2.UPDATE, resetVal);
9069
+ ctx.emit(EVENTS$2.CHANGE, resetVal);
9069
9070
  ctx.emit(EVENTS$2.CLEAR);
9070
9071
  (_a2 = formItem == null ? void 0 : formItem.validate) == null ? void 0 : _a2.call(formItem, "change");
9071
9072
  }
@@ -9077,6 +9078,10 @@ var Component$u = defineComponent({
9077
9078
  var _a2;
9078
9079
  isFocused.value = false;
9079
9080
  ctx.emit(EVENTS$2.BLUR, e);
9081
+ if (isNumberInput.value && e.target.value > props.max) {
9082
+ ctx.emit(EVENTS$2.UPDATE, props.max);
9083
+ ctx.emit(EVENTS$2.CHANGE, props.max);
9084
+ }
9080
9085
  (_a2 = formItem == null ? void 0 : formItem.validate) == null ? void 0 : _a2.call(formItem, "blur");
9081
9086
  }
9082
9087
  function eventHandler(eventName) {
@@ -9188,8 +9193,8 @@ var Component$u = defineComponent({
9188
9193
  };
9189
9194
  }
9190
9195
  });
9191
- const BkInput = withInstall(Component$u);
9192
- var Component$t = defineComponent({
9196
+ const BkInput = withInstall(Component$v);
9197
+ var Component$u = defineComponent({
9193
9198
  name: "Card",
9194
9199
  props: {
9195
9200
  title: PropTypes.string,
@@ -9282,7 +9287,7 @@ var Component$t = defineComponent({
9282
9287
  }, [(_l = (_k = (_j = this.$slots).footer) == null ? void 0 : _k.call(_j)) != null ? _l : "Footer"]) : ""]) : ""]);
9283
9288
  }
9284
9289
  });
9285
- const BkCard = withInstall(Component$t);
9290
+ const BkCard = withInstall(Component$u);
9286
9291
  const checkboxGroupKey = Symbol("CheckboxGroup");
9287
9292
  function useFocus$2() {
9288
9293
  const isFocus = ref(false);
@@ -9383,7 +9388,7 @@ const checkboxProps = {
9383
9388
  beforeChange: PropTypes.func,
9384
9389
  size: PropTypes.size()
9385
9390
  };
9386
- var Component$s = defineComponent({
9391
+ var Component$t = defineComponent({
9387
9392
  name: "Checkbox",
9388
9393
  props: checkboxProps,
9389
9394
  emits: ["update:modelValue", "change"],
@@ -9486,7 +9491,7 @@ var BkCheckboxGroup = defineComponent({
9486
9491
  }, [(_a = this.$slots) == null ? void 0 : _a.default()]);
9487
9492
  }
9488
9493
  });
9489
- const BkCheckbox = withInstallProps(Component$s, { Group: BkCheckboxGroup });
9494
+ const BkCheckbox = withInstallProps(Component$t, { Group: BkCheckboxGroup });
9490
9495
  const trimArr$1 = function(s2) {
9491
9496
  return (s2 || "").split(" ").filter((item) => !!item.trim());
9492
9497
  };
@@ -9566,7 +9571,7 @@ const collapseMotion$1 = (emit) => ({
9566
9571
  emit("after-leave");
9567
9572
  }
9568
9573
  });
9569
- var Component$r = defineComponent({
9574
+ var Component$s = defineComponent({
9570
9575
  name: "Collapse",
9571
9576
  props: {
9572
9577
  list: PropTypes.arrayOf(PropTypes.any).def([]),
@@ -9654,7 +9659,7 @@ var Component$r = defineComponent({
9654
9659
  }, [renderItems()]);
9655
9660
  }
9656
9661
  });
9657
- const BkCollapse = withInstall(Component$r);
9662
+ const BkCollapse = withInstall(Component$s);
9658
9663
  const propsMixin$1 = {
9659
9664
  isShow: PropTypes.bool.def(false),
9660
9665
  width: PropTypes.oneOfType([String, Number]).def("50%"),
@@ -9679,7 +9684,7 @@ const propsMixin$1 = {
9679
9684
  dialogType: PropTypes.commonType(["show", "operation", "confirm", "process"], "dialogType").def("operation"),
9680
9685
  multiInstance: PropTypes.bool.def(true)
9681
9686
  };
9682
- var Component$q = defineComponent({
9687
+ var Component$r = defineComponent({
9683
9688
  name: "Modal",
9684
9689
  props: __spreadValues({}, propsMixin$1),
9685
9690
  data() {
@@ -9770,11 +9775,11 @@ var Component$q = defineComponent({
9770
9775
  })]);
9771
9776
  }
9772
9777
  });
9773
- const BkModal = withInstallProps(Component$q, { propsMixin: propsMixin$1 }, true);
9778
+ const BkModal = withInstallProps(Component$r, { propsMixin: propsMixin$1 }, true);
9774
9779
  function _isSlot$5(s2) {
9775
9780
  return typeof s2 === "function" || Object.prototype.toString.call(s2) === "[object Object]" && !isVNode(s2);
9776
9781
  }
9777
- var Component$p = defineComponent({
9782
+ var Component$q = defineComponent({
9778
9783
  name: "Dialog",
9779
9784
  components: {
9780
9785
  BkModal,
@@ -9981,7 +9986,7 @@ var Component$p = defineComponent({
9981
9986
  });
9982
9987
  }
9983
9988
  });
9984
- const BkDialog = withInstall(Component$p);
9989
+ const BkDialog = withInstall(Component$q);
9985
9990
  var permissions = "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDIyLjEuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IuWbvuWxgl8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIKCSB2aWV3Qm94PSIwIDAgNDgwIDI0MCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNDgwIDI0MDsiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLnN0MHtmaWxsOm5vbmU7fQoJLnN0MXtmaWxsOiNDNEM2Q0M7fQoJLnN0MntmaWxsOnVybCgjRmlsbC0xXzFfKTt9Cgkuc3Qze2ZpbGw6dXJsKCPnn6nlvaJfNF8pO30KCS5zdDR7ZmlsbDojOTc5QkE1O30KCS5zdDV7ZmlsbDp1cmwoI1NWR0lEXzFfKTt9Cgkuc3Q2e2ZpbGw6I0Y4RjlGQTt9Cgkuc3Q3e2ZpbGw6dXJsKCPlvaLnirbnu5PlkIhfMV8pO30KCS5zdDh7ZmlsbDp1cmwoI+W9oueKtue7k+WQiF82Xyk7fQoJLnN0OXtmaWxsOiNEQ0RFRTA7fQo8L3N0eWxlPgo8ZyBpZD0i6aG16Z2iLTEiPgoJPGcgaWQ9IkV4Y2VwdGlvbl94MkZf5byC5bi45o+Q56S6IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtODcwLjAwMDAwMCwgLTIzODEuMDAwMDAwKSI+CgkJPGcgaWQ9IuaXoOadg+mZkOexuyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMzU3LjAwMDAwMCwgMjI4Ny4wMDAwMDApIj4KCQkJPGcgaWQ9Iue8lue7hC0xMiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMC4wMDAwMDAsIDczLjAwMDAwMCkiPgoJCQkJPGcgaWQ9IuaXoOadg+mZkOexuy3mj5Llm74iIHRyYW5zZm9ybT0idHJhbnNsYXRlKDUxMy4wMDAwMDAsIDIxLjAwMDAwMCkiPgoJCQkJCTxnIGlkPSLmsqHmnInmnYPpmZAiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEyOC4wMDAwMDAsIDQyLjAwMDAwMCkiPgoJCQkJCQk8cmVjdCBpZD0i55+p5b2iXzFfIiBjbGFzcz0ic3QwIiB3aWR0aD0iMjI0IiBoZWlnaHQ9IjE4MyIvPgoJCQkJCQk8Y2lyY2xlIGlkPSLmpK3lnIblvaIiIGNsYXNzPSJzdDEiIGN4PSIxMzIiIGN5PSIxMSIgcj0iMSIvPgoJCQkJCQk8Y2lyY2xlIGlkPSLmpK3lnIblvaJfMV8iIGNsYXNzPSJzdDEiIGN4PSIxNzMiIGN5PSI5NCIgcj0iMiIvPgoJCQkJCQk8Y2lyY2xlIGlkPSLmpK3lnIblvaJfMl8iIGNsYXNzPSJzdDEiIGN4PSI1OSIgY3k9IjY2IiByPSIyIi8+CgkJCQkJCTxsaW5lYXJHcmFkaWVudCBpZD0iRmlsbC0xXzFfIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjExNi4zNTg3IiB5MT0iMTI5LjQwNzUiIHgyPSIxMTkuMzMxNCIgeTI9IjE1Ny42OTA2Ij4KCQkJCQkJCTxzdG9wICBvZmZzZXQ9IjAiIHN0eWxlPSJzdG9wLWNvbG9yOiNGQkZDRkQiLz4KCQkJCQkJCTxzdG9wICBvZmZzZXQ9IjAuOTk4OCIgc3R5bGU9InN0b3AtY29sb3I6I0YyRjRGNyIvPgoJCQkJCQk8L2xpbmVhckdyYWRpZW50PgoJCQkJCQk8cGF0aCBpZD0iRmlsbC0xIiBjbGFzcz0ic3QyIiBkPSJNNjAuNSwxMzYuMWMxNi4yLTMuNSw0MC42LTQuNyw1Ni41LTMuOWMxNS44LDAuOCwzMy4xLDMuMSwzMy4xLDMuMXM0LjUtMS45LDQuMS0xLjIKCQkJCQkJCWMtMC4zLDAuOC0yLjQsMS45LTEsMi4zYzEuNCwwLjQsMTUuNSwxLjksMjEuNCwzLjFzOC42LDIuMyw4LjYsMi4zczMuOC02LjYsMTIuMy01LjhjMCwwLjYtMy4xLDEuNC00LjIsMy4xUzE4OCwxNDIsMTg4LDE0MgoJCQkJCQkJczEuOC0xLDQuOSwwLjVzNi4xLDIsNi4xLDIuMnMtMS40LDMuNS0xMi43LDEuMmMtNC42LTEuMi02LjksNS4xLTI5LjMsNi42cy02MC4zLDIuNy02MC4zLDIuN3MxLjcsMi4zLDUuMiwzLjEKCQkJCQkJCWMwLDAtMi40LDIuMy03LjIsMS42Yy00LjgtMC44LTEwLTQuNy0xMC00LjdzLTEyLjctMC44LTE3LjYtMS42cy0xMC4zLTIuNy0xNC4xLTMuMWMtMy44LTAuNC0yMS0yLjMtMTQuNS02LjYKCQkJCQkJCUMzOC41LDE0My45LDQ0LjMsMTM5LjYsNjAuNSwxMzYuMXoiLz4KCgkJCQkJCQk8bGluZWFyR3JhZGllbnQgaWQ9IuefqeW9ol80XyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSIxNTYuMTY2NyIgeTE9Ii0yLjUxNDMiIHgyPSIxNTYuMTY2NyIgeTI9Ii0xLjUxNDMiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoOTYgMCAwIDcwIC0xNDg3OSAyNTIpIj4KCQkJCQkJCTxzdG9wICBvZmZzZXQ9IjAiIHN0eWxlPSJzdG9wLWNvbG9yOiNGMkYzRjUiLz4KCQkJCQkJCTxzdG9wICBvZmZzZXQ9IjEiIHN0eWxlPSJzdG9wLWNvbG9yOiNFNUU4RUIiLz4KCQkJCQkJPC9saW5lYXJHcmFkaWVudD4KCQkJCQkJPHBhdGggaWQ9IuefqeW9ol8yXyIgY2xhc3M9InN0MyIgZD0iTTcwLDc2aDg2YzIuOCwwLDUsMi4yLDUsNXY2MGMwLDIuOC0yLjIsNS01LDVINzBjLTIuOCwwLTUtMi4yLTUtNVY4MQoJCQkJCQkJQzY1LDc4LjIsNjcuMiw3Niw3MCw3NnoiLz4KCQkJCQkJPHBhdGggaWQ9IuW9oueKtue7k+WQiCIgY2xhc3M9InN0MSIgZD0iTTU5LjMsMTM4djExLjdINzF2Mi4zSDU5LjNsMCwwSDU3di0xNEg1OS4zeiIvPgoJCQkJCQk8cGF0aCBpZD0i5b2i54q257uT5ZCI5aSH5Lu9LTQiIGNsYXNzPSJzdDEiIGQ9Ik0xNjYuNywxMzh2MTEuN0gxNTV2Mi4zaDExLjdsMCwwaDIuM3YtMTRIMTY2Ljd6Ii8+CgkJCQkJCTxnPgoJCQkJCQkJPHBhdGggaWQ9IuW9oueKtue7k+WQiF81XyIgY2xhc3M9InN0NCIgZD0iTTExNi41LDExNi44bDEuNiw3LjljMC4yLDAuOC0wLjQsMS42LTEuMiwxLjhjLTAuMSwwLTAuMiwwLTAuMywwaC03LjIKCQkJCQkJCQljLTAuOCwwLTEuNS0wLjctMS41LTEuNWMwLTAuMSwwLTAuMiwwLTAuM2wxLjYtNy45Yy0zLTEuMy01LTQuMS01LTcuM2MwLTQuNCwzLjgtOCw4LjUtOHM4LjUsMy42LDguNSw4CgkJCQkJCQkJQzEyMS41LDExMi43LDExOS41LDExNS41LDExNi41LDExNi44eiIvPgoKCQkJCQkJCQk8bGluZWFyR3JhZGllbnQgaWQ9IlNWR0lEXzFfIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjEzNi4wMjk0IiB5MT0iLTYuODAxMSIgeDI9IjEzNi4wMjk0IiB5Mj0iLTYuMjc4OSIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgxNyAwIDAgMjUgLTIxOTkuNSAyNzcuNSkiPgoJCQkJCQkJCTxzdG9wICBvZmZzZXQ9IjAiIHN0eWxlPSJzdG9wLWNvbG9yOiNFMUUyRTYiLz4KCQkJCQkJCQk8c3RvcCAgb2Zmc2V0PSIxIiBzdHlsZT0ic3RvcC1jb2xvcjojRUVGMEYyIi8+CgkJCQkJCQk8L2xpbmVhckdyYWRpZW50PgoJCQkJCQkJPHBhdGggY2xhc3M9InN0NSIgZD0iTTExNywxMjcuNWgtNy42Yy0xLjQsMC0yLjUtMS4xLTIuNS0yLjVsMC0wLjVsMS40LTcuMWMtMy0xLjYtNC45LTQuNi00LjktNy45YzAtNSw0LjMtOSw5LjUtOQoJCQkJCQkJCXM5LjUsNCw5LjUsOWMwLDMuMy0xLjksNi4zLTQuOSw3LjlsMS40LDcuMWMwLjMsMS4yLTAuNiwyLjYtMS45LDNMMTE3LDEyNy41eiBNMTA4LjksMTI0Ljh2MC4yYzAsMC4yLDAuMywwLjUsMC41LDAuNWg3LjMKCQkJCQkJCQljMC4yLTAuMSwwLjQtMC40LDAuNC0wLjZsLTEuOC04LjdsMC43LTAuM2MyLjctMS4yLDQuNC0zLjYsNC40LTYuNGMwLTMuOS0zLjQtNy03LjUtN3MtNy41LDMuMS03LjUsN2MwLDIuOCwxLjcsNS4yLDQuNCw2LjQKCQkJCQkJCQlsMC43LDAuM0wxMDguOSwxMjQuOHoiLz4KCQkJCQkJPC9nPgoJCQkJCQk8cGF0aCBpZD0i55+p5b2iXzNfIiBjbGFzcz0ic3Q2IiBkPSJNNzAsNzZoODZjMi44LDAsNSwyLjIsNSw1bDAsMGMwLDIuOC0yLjIsNS01LDVINzBjLTIuOCwwLTUtMi4yLTUtNWwwLDAKCQkJCQkJCUM2NSw3OC4yLDY3LjIsNzYsNzAsNzZ6Ii8+CgoJCQkJCQkJPGxpbmVhckdyYWRpZW50IGlkPSLlvaLnirbnu5PlkIhfMV8iIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iMTU1LjAyNjMiIHkxPSItMi42NjY3IiB4Mj0iMTU1LjAyNjMiIHkyPSItMS42NzI3IiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDc2IDAgMCA2NiAtMTE2NjkgMTkyKSI+CgkJCQkJCQk8c3RvcCAgb2Zmc2V0PSIwIiBzdHlsZT0ic3RvcC1jb2xvcjojRjNGNEY1Ii8+CgkJCQkJCQk8c3RvcCAgb2Zmc2V0PSIxIiBzdHlsZT0ic3RvcC1jb2xvcjojRTZFOEVCIi8+CgkJCQkJCTwvbGluZWFyR3JhZGllbnQ+CgkJCQkJCTxwYXRoIGlkPSLlvaLnirbnu5PlkIhfMl8iIGNsYXNzPSJzdDciIGQ9Ik0xNDEuNSw1NC42YzAtMTYtMTIuOC0yOS0yOC41LTI5cy0yOC41LDEzLTI4LjUsMjlsMCwwdjI1LjhjMCwwLjktMi4xLDEuNi00LjgsMS42CgkJCQkJCQljLTIuNSwwLTQuNi0wLjctNC43LTEuNXYtMC4xVjU0LjZDNzUsMzMuMyw5MiwxNiwxMTMsMTZzMzgsMTcuMywzOCwzOC42bDAsMHYyNS44YzAsMC45LTIuMSwxLjYtNC44LDEuNnMtNC44LTAuNy00LjgtMS42CgkJCQkJCQlsMCwwVjU0LjZIMTQxLjV6Ii8+CgoJCQkJCQkJPGxpbmVhckdyYWRpZW50IGlkPSLlvaLnirbnu5PlkIhfNl8iIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iMTUzLjc5MDMiIHkxPSItMy4yMzg1IiB4Mj0iMTUzLjc5MDMiIHkyPSItMi4yNTkyIiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDYyIDAgMCA1NCAtOTQyMiAyMDEpIj4KCQkJCQkJCTxzdG9wICBvZmZzZXQ9IjAiIHN0eWxlPSJzdG9wLWNvbG9yOiNFN0U5RUIiLz4KCQkJCQkJCTxzdG9wICBvZmZzZXQ9IjEiIHN0eWxlPSJzdG9wLWNvbG9yOiNFN0U5RUIiLz4KCQkJCQkJPC9saW5lYXJHcmFkaWVudD4KCQkJCQkJPHBhdGggaWQ9IuW9oueKtue7k+WQiF8zXyIgY2xhc3M9InN0OCIgZD0iTTgyLDU0LjVDODIuMywzOC4yLDk2LDI1LDExMywyNWMxNy4xLDAsMzEsMTMuNCwzMSwzMGgtMy4xYzAtMTQuOS0xMi41LTI3LTI3LjktMjcKCQkJCQkJCVM4NS4xLDQwLjEsODUuMSw1NXYyNEg4MlY1NVY1NC41eiBNMTQ0LDU1djI0aC0zLjFWNTVIMTQ0eiIvPgoJCQkJCQk8cGF0aCBpZD0i5b2i54q257uT5ZCIXzRfIiBjbGFzcz0ic3Q5IiBkPSJNODAsNzhjMi43LDAsNC45LTAuOCw1LTEuOVY3NnY0YzAsMS4xLTIuMiwyLTUsMmMtMi43LDAtNC45LTAuOC01LTEuOVY4MHYtNAoJCQkJCQkJQzc1LDc3LjEsNzcuMiw3OCw4MCw3OHoiLz4KCQkJCQkJPHBhdGggaWQ9IuW9oueKtue7k+WQiOWkh+S7vS0zIiBjbGFzcz0ic3Q5IiBkPSJNMTQ2LDc4YzIuNywwLDQuOS0wLjgsNS0xLjlWNzZ2NGMwLDEuMS0yLjIsMi01LDJjLTIuNywwLTQuOS0wLjgtNS0xLjlWODB2LTQKCQkJCQkJCUMxNDEsNzcuMSwxNDMuMiw3OCwxNDYsNzh6Ii8+CgkJCQkJPC9nPgoJCQkJPC9nPgoJCQk8L2c+CgkJPC9nPgoJPC9nPgo8L2c+Cjwvc3ZnPgo=";
9986
9991
  var notFound = "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDIyLjEuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IuWbvuWxgl8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIKCSB2aWV3Qm94PSIwIDAgNDgwIDI0MCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNDgwIDI0MDsiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLnN0MHtmaWxsOnVybCgjRmlsbC0xXzFfKTt9Cgkuc3Qxe2ZpbGw6dXJsKCPnn6nlvaJfOV8pO30KCS5zdDJ7ZmlsbDp1cmwoI+efqeW9ol8xMF8pO30KCS5zdDN7ZmlsbDojRjBGMkY1O3N0cm9rZTp1cmwoI+efqeW9ol8xMV8pO30KCS5zdDR7ZmlsbDojOTc5QkE1O3N0cm9rZTp1cmwoI+efqeW9ol8xMl8pO30KCS5zdDV7ZmlsbDojOTc5QkE1O3N0cm9rZTp1cmwoI+efqeW9ouWkh+S7vS05XzFfKTt9Cgkuc3Q2e2ZpbGw6Izk3OUJBNTtzdHJva2U6dXJsKCPlvaLnirbnu5PlkIhfNl8pO30KCS5zdDd7ZmlsbDp1cmwoI+W9oueKtue7k+WQiF84Xyk7fQoJLnN0OHtmaWxsOnVybCgj5b2i54q257uT5ZCI5aSH5Lu9LTNfMV8pO30KCS5zdDl7ZmlsbDp1cmwoI+W9oueKtue7k+WQiF85Xyk7fQoJLnN0MTB7ZmlsbDojRTFFM0U2O30KCS5zdDExe2ZpbGw6I0YwRjJGNTt9Cgkuc3QxMntmaWxsOiNGNEY0RjQ7fQoJLnN0MTN7ZmlsbDp1cmwoI+i3r+W+hC01XzFfKTt9Cgkuc3QxNHtmaWxsOnVybCgj5b2i54q257uT5ZCIXzEwXyk7fQoJLnN0MTV7ZmlsbDp1cmwoI+W9oueKtue7k+WQiOWkh+S7vS00XzFfKTt9Cgkuc3QxNntmaWxsOiNDN0M5Q0M7fQoJLnN0MTd7ZmlsbDojRTVFN0U5O30KCS5zdDE4e2ZpbGw6I0VDRUVGMDt9Cgkuc3QxOXtmaWxsOiNDNEM2Q0M7fQoJLnN0MjB7ZmlsbDojRURFRUYzO30KCS5zdDIxe2ZpbGw6IzM0MzQzNDtmaWxsLW9wYWNpdHk6My4wMDAwMDBlLTAyO30KPC9zdHlsZT4KPGcgaWQ9IkV4Y2VwdGlvbl94MkZf5byC5bi45o+Q56S6IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtODcwLjAwMDAwMCwgLTEzMzUuMDAwMDAwKSI+Cgk8ZyBpZD0iX3gzNF8wNCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMzU3LjAwMDAwMCwgMTIxNi4wMDAwMDApIj4KCQk8ZyBpZD0iX3gzNF8wNC3mj5Llm74iIHRyYW5zZm9ybT0idHJhbnNsYXRlKDUxMy4wMDAwMDAsIDExOS4wMDAwMDApIj4KCQkJPGcgaWQ9Iue8lue7hC0xMyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTAuMDAwMDAwLCAxMS4wMzY2NDgpIj4KCQkJCTxnIGlkPSJfeDM0XzA05Li75L2TIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg5NC4zMjQwMjIsIDQyLjUzODc3MSkiPgoJCQkJCTxsaW5lYXJHcmFkaWVudCBpZD0iRmlsbC0xXzFfIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjE0MS4zOTEyIiB5MT0iNTUuNjg2OSIgeDI9IjE1Mi4zMzA3IiB5Mj0iMTE3LjcyNzciPgoJCQkJCQk8c3RvcCAgb2Zmc2V0PSIwIiBzdHlsZT0ic3RvcC1jb2xvcjojRjhGQ0ZEIi8+CgkJCQkJCTxzdG9wICBvZmZzZXQ9IjEiIHN0eWxlPSJzdG9wLWNvbG9yOiNGMkY0RjciLz4KCQkJCQk8L2xpbmVhckdyYWRpZW50PgoJCQkJCTxwYXRoIGlkPSJGaWxsLTEiIGNsYXNzPSJzdDAiIGQ9Ik00NS4zLDcyLjljMjkuMy02LjYsNzEuNS05LjYsMTAwLjItOC4xczUyLjQsNi41LDU0LjEsNS4zYzUuNy0zLjgsMTcuOS01LjUsMTcuMy00CgkJCQkJCXMtOC41LDYuMS02LDYuOGMyLjUsMC43LDI4LDMuNywzOC42LDUuOWMxMC42LDIuMiwxNy40LDQuNCwxOS43LDQuNGMyLjMsMCw1LjktMy4xLDIxLjMtMS42YzAuMywwLjYtMy40LDAuOC02LjgsMi41CgkJCQkJCXMtNS45LDEuNi01LjksMnMxLjktMC42LDUuOSwyYzQsMi41LDExLDMuNCwxMSw0cy04LjksMy42LTIzLjgtMS4xYy0zLjgtMS4yLTEyLjYsOS4yLTUzLjEsMTIuMXMtMTA5LjEsNS4yLTEwOS4xLDUuMgoJCQkJCQlzNC4xLDUuMywxMC4xLDYuOGMwLjMsMC41LTIuNCwyLjUtMTQsMC4zcy0xNy45LTcuMS0xNy45LTcuMXMtMjMuMS0xLjUtMzEuOC0yLjlzLTE4LjctNS4yLTI1LjYtNS45Uy04LjUsOTUsMy4zLDg2LjkKCQkJCQkJQzMuMyw4Ni45LDE2LDc5LjUsNDUuMyw3Mi45eiIvPgoKCQkJCQkJPGxpbmVhckdyYWRpZW50IGlkPSLnn6nlvaJfOV8iIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iMzA0Ljg0NjciIHkxPSIxMDEuMjQ5MiIgeDI9IjMwNC44NDY3IiB5Mj0iMTAwLjI1NDYiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoOTMuMzkwNyAwIDAgLTkzLjQ2MjcgLTI4MzM1Ljk0NTMgOTQ2My4wMjczKSI+CgkJCQkJCTxzdG9wICBvZmZzZXQ9IjAiIHN0eWxlPSJzdG9wLWNvbG9yOiNFQ0VFRjAiLz4KCQkJCQkJPHN0b3AgIG9mZnNldD0iMSIgc3R5bGU9InN0b3AtY29sb3I6I0Q3RDlEQiIvPgoJCQkJCTwvbGluZWFyR3JhZGllbnQ+CgkJCQkJPHBhdGggaWQ9IuefqeW9ol8xXyIgY2xhc3M9InN0MSIgZD0iTTg5LjIsMGg4OS40YzEuMSwwLDIsMC45LDIsMnY4OS41YzAsMS4xLTAuOSwyLTIsMkg4OS4yYy0xLjEsMC0yLTAuOS0yLTJWMgoJCQkJCQlDODcuMiwwLjksODguMSwwLDg5LjIsMHoiLz4KCgkJCQkJCTxsaW5lYXJHcmFkaWVudCBpZD0i55+p5b2iXzEwXyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSIzMDMuODkxNSIgeTE9IjEwMS42NTMyIiB4Mj0iMzAzLjg5MTUiIHkyPSIxMDAuNjUzIiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDgxLjcxNjkgMCAwIC04MS43Nzk5IC0yNDY5OS4yMjQ2IDgzMTguOTkwMikiPgoJCQkJCQk8c3RvcCAgb2Zmc2V0PSIwIiBzdHlsZT0ic3RvcC1jb2xvcjojRjVGN0ZBIi8+CgkJCQkJCTxzdG9wICBvZmZzZXQ9IjEiIHN0eWxlPSJzdG9wLWNvbG9yOiNFQkVERjAiLz4KCQkJCQk8L2xpbmVhckdyYWRpZW50PgoJCQkJCTxwYXRoIGlkPSLnn6nlvaJfMl8iIGNsYXNzPSJzdDIiIGQ9Ik05NCw1LjhoNzkuN2MwLjYsMCwxLDAuNCwxLDF2NzkuOGMwLDAuNi0wLjQsMS0xLDFIOTRjLTAuNiwwLTEtMC40LTEtMVY2LjgKCQkJCQkJQzkzLDYuMyw5My41LDUuOCw5NCw1Ljh6Ii8+CgoJCQkJCQk8bGluZWFyR3JhZGllbnQgaWQ9IuefqeW9ol8xMV8iIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iMjk5LjQxODYiIHkxPSIxMDMuNTA1MiIgeDI9IjI5OS40MTg2IiB5Mj0iMTAyLjU1OTkiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoNTEuNTMyMyAwIDAgLTUxLjU3MjggLTE1Mjk1Ljg3NyA1MzYwLjk3MzYpIj4KCQkJCQkJPHN0b3AgIG9mZnNldD0iMCIgc3R5bGU9InN0b3AtY29sb3I6I0UxRTJFNiIvPgoJCQkJCQk8c3RvcCAgb2Zmc2V0PSIxIiBzdHlsZT0ic3RvcC1jb2xvcjojRjdGOUZDIi8+CgkJCQkJPC9saW5lYXJHcmFkaWVudD4KCQkJCQk8cGF0aCBpZD0i55+p5b2iXzNfIiBjbGFzcz0ic3QzIiBkPSJNMTA5LjEsMjAuOWg0OS41YzAuNiwwLDEsMC40LDEsMXY0OS42YzAsMC42LTAuNCwxLTEsMWgtNDkuNWMtMC42LDAtMS0wLjQtMS0xVjIxLjkKCQkJCQkJQzEwOC4xLDIxLjQsMTA4LjYsMjAuOSwxMDkuMSwyMC45eiIvPgoKCQkJCQkJPGxpbmVhckdyYWRpZW50IGlkPSLnn6nlvaJfMTJfIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjE5NS40ODc5IiB5MT0iMTE5LjIyMzciIHgyPSIxOTUuNDg3OSIgeTI9IjExOC4yNTY2IiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDUuMzc3NyAwIDAgLTEyLjY4MjggLTkyOC4zNzU1IDE1NDYuODUxNikiPgoJCQkJCQk8c3RvcCAgb2Zmc2V0PSIwIiBzdHlsZT0ic3RvcC1jb2xvcjojRTFFMkU2Ii8+CgkJCQkJCTxzdG9wICBvZmZzZXQ9IjEiIHN0eWxlPSJzdG9wLWNvbG9yOiNGMEYyRjUiLz4KCQkJCQk8L2xpbmVhckdyYWRpZW50PgoJCQkJCTxyZWN0IGlkPSLnn6nlvaJfNF8iIHg9IjEyMC4yIiB5PSIzNC41IiBjbGFzcz0ic3Q0IiB3aWR0aD0iNS40IiBoZWlnaHQ9IjEyLjciLz4KCgkJCQkJCTxsaW5lYXJHcmFkaWVudCBpZD0i55+p5b2i5aSH5Lu9LTlfMV8iIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iMTk1LjQ5MDEiIHkxPSIxMTkuMjIzNyIgeDI9IjE5NS40OTAxIiB5Mj0iMTE4LjI1NjYiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoNS4zNzc3IDAgMCAtMTIuNjgyOCAtOTA2LjQ4NzEgMTU0Ni44NTE2KSI+CgkJCQkJCTxzdG9wICBvZmZzZXQ9IjAiIHN0eWxlPSJzdG9wLWNvbG9yOiNFMUUyRTYiLz4KCQkJCQkJPHN0b3AgIG9mZnNldD0iMSIgc3R5bGU9InN0b3AtY29sb3I6I0YwRjJGNSIvPgoJCQkJCTwvbGluZWFyR3JhZGllbnQ+CgkJCQkJPHJlY3QgaWQ9IuefqeW9ouWkh+S7vS05IiB4PSIxNDIuMSIgeT0iMzQuNSIgY2xhc3M9InN0NSIgd2lkdGg9IjUuNCIgaGVpZ2h0PSIxMi43Ii8+CgoJCQkJCQk8bGluZWFyR3JhZGllbnQgaWQ9IuW9oueKtue7k+WQiF82XyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSIyNDcuNTY2IiB5MT0iMTI1LjQ1MTQiIHgyPSIyNDcuNTY2IiB5Mj0iMTI0LjQ4NDQiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoOS43NTU0IDAgMCAtOS43NjIxIC0yMjgxLjIwNTEgMTI3Ni45MDYpIj4KCQkJCQkJPHN0b3AgIG9mZnNldD0iMCIgc3R5bGU9InN0b3AtY29sb3I6I0UxRTJFNiIvPgoJCQkJCQk8c3RvcCAgb2Zmc2V0PSIxIiBzdHlsZT0ic3RvcC1jb2xvcjojRjBGMkY1Ii8+CgkJCQkJPC9saW5lYXJHcmFkaWVudD4KCQkJCQk8cGF0aCBpZD0i5b2i54q257uT5ZCIIiBjbGFzcz0ic3Q2IiBkPSJNMTI5LDU2LjdMMTI5LDU2LjdjMC4xLTIuNiwyLjMtNC43LDQuOS00LjdjMi42LDAsNC43LDIsNC45LDQuN3YwLjJ2NC45SDEyOXYtMC41di00LjQKCQkJCQkJVjU2Ljd6Ii8+CgoJCQkJCQk8bGluZWFyR3JhZGllbnQgaWQ9IuW9oueKtue7k+WQiF84XyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSIzMDIuOTc2MSIgeTE9IjEwMS4yMzc1IiB4Mj0iMzAyLjk3NjEiIHkyPSIxMDAuMzAxNiIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCg3Mi45NjE1IDAgMCAtOTMuNDYyNyAtMjE4NzkuNzQ0MSA5NDYzLjAyNzMpIj4KCQkJCQkJPHN0b3AgIG9mZnNldD0iMCIgc3R5bGU9InN0b3AtY29sb3I6I0VCRURGMDtzdG9wLW9wYWNpdHk6MC45OTE3Ii8+CgkJCQkJCTxzdG9wICBvZmZzZXQ9IjEiIHN0eWxlPSJzdG9wLWNvbG9yOiNFMUUzRTYiLz4KCQkJCQk8L2xpbmVhckdyYWRpZW50PgoJCQkJCTxwYXRoIGlkPSLlvaLnirbnu5PlkIhfMV8iIGNsYXNzPSJzdDciIGQ9Ik0yNDQuOCwwaDIuOXY1OC40aDE0LjZ2MTcuNWgtMTQuNnYxNy41aC0yMC40Vjc1LjloLTM3LjlWNTguNEwyMjcuMywwSDI0NC44egoJCQkJCQkgTTIyNy4zLDI4LjJsLTE4LjgsMzAuM2gxOC44VjI4LjJ6Ii8+CgoJCQkJCQk8bGluZWFyR3JhZGllbnQgaWQ9IuW9oueKtue7k+WQiOWkh+S7vS0zXzFfIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjMwMi45NzU2IiB5MT0iMTAxLjIzNzUiIHgyPSIzMDIuOTc1NiIgeTI9IjEwMC4zMDE2IiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDcyLjk2MTUgMCAwIC05My40NjI3IC0yMjA2My42MDc0IDk0NjMuMDI3MykiPgoJCQkJCQk8c3RvcCAgb2Zmc2V0PSIwIiBzdHlsZT0ic3RvcC1jb2xvcjojRUJFREYwO3N0b3Atb3BhY2l0eTowLjk5MTciLz4KCQkJCQkJPHN0b3AgIG9mZnNldD0iMSIgc3R5bGU9InN0b3AtY29sb3I6I0UxRTNFNiIvPgoJCQkJCTwvbGluZWFyR3JhZGllbnQ+CgkJCQkJPHBhdGggaWQ9IuW9oueKtue7k+WQiOWkh+S7vS0zIiBjbGFzcz0ic3Q4IiBkPSJNNjAuOSwwaDIuOXY1OC40aDE0LjZ2MTcuNUg2My44djE3LjVINDMuNFY3NS45SDUuNVY1OC40TDQzLjQsMEg2MC45egoJCQkJCQkgTTQzLjQsMjguMkwyNC42LDU4LjRoMTguOFYyOC4yeiIvPgoKCQkJCQkJPGxpbmVhckdyYWRpZW50IGlkPSLlvaLnirbnu5PlkIhfOV8iIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iMjk5LjA0NjYiIHkxPSIxMDcuMjgyNyIgeDI9IjI5OS4wNTM1IiB5Mj0iMTA3LjAxMSIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCg1MC4wMDM1IDAgMCAtMjguNjA1MyAtMTQ4NTcuNzUyOSAzMjE2LjczOTUpIj4KCQkJCQkJPHN0b3AgIG9mZnNldD0iMCIgc3R5bGU9InN0b3AtY29sb3I6I0ZCRkNGRCIvPgoJCQkJCQk8c3RvcCAgb2Zmc2V0PSIxIiBzdHlsZT0ic3RvcC1jb2xvcjojRjBGMkY1Ii8+CgkJCQkJPC9saW5lYXJHcmFkaWVudD4KCQkJCQk8cGF0aCBpZD0i5b2i54q257uT5ZCIXzJfIiBjbGFzcz0ic3Q5IiBkPSJNOTkuNiwxMzcuM2MxMS43LDAsMjEuMiw1LjYsMjEuMiwxMi40YzAsNi45LTkuNSwxMi40LTIxLjIsMTIuNAoJCQkJCQljLTQuNCwwLTguNS0wLjgtMTEuOS0yLjFsLTcsNS45bC0xLjktMi4ybDYtNS4xYy0zLjktMi4zLTYuNC01LjQtNi40LTguOWMwLTAuMiwwLTAuNSwwLTAuN2wtNS44LDUuMWwtMS45LTIuMmwxNS40LTEzLjQKCQkJCQkJbDEuMSwxLjJDOTAuNywxMzguMSw5NSwxMzcuMyw5OS42LDEzNy4zeiIvPgoJCQkJCTxyZWN0IGlkPSLnn6nlvaJfNV8iIHg9IjIyNS44IiB5PSI4Ny42IiBjbGFzcz0ic3QxMCIgd2lkdGg9IjIzLjMiIGhlaWdodD0iNS44Ii8+CgkJCQkJPHJlY3QgaWQ9IuefqeW9ol82XyIgeD0iMjI3LjMiIHk9Ijg2LjIiIGNsYXNzPSJzdDExIiB3aWR0aD0iMjAuNCIgaGVpZ2h0PSIxLjUiLz4KCQkJCQk8cmVjdCBpZD0i55+p5b2iXzdfIiB4PSI0MS45IiB5PSI4Ny42IiBjbGFzcz0ic3QxMCIgd2lkdGg9IjIzLjMiIGhlaWdodD0iNS44Ii8+CgkJCQkJPHJlY3QgaWQ9IuefqeW9ol84XyIgeD0iNDMuNCIgeT0iODYuMiIgY2xhc3M9InN0MTEiIHdpZHRoPSIyMC40IiBoZWlnaHQ9IjEuNSIvPgoJCQkJCTxwYXRoIGlkPSLot6/lvoQtNCIgY2xhc3M9InN0MTEiIGQ9Ik0wLDAiLz4KCQkJCQk8cGF0aCBpZD0i6Lev5b6ELTgiIGNsYXNzPSJzdDEyIiBkPSJNMTE1LjYsMTM0LjljMi40LTIuMiw5LjctMy40LDIxLjktMy40YzYuNCwwLDExLDAuNywzOS45LDUuN2MyLjksMC41LDUuMywwLjksNy43LDEuMwoJCQkJCQljMjUuOCw0LjMsNDAuOCw1LjcsNDguNiwzLjNsLTAuNC0xLjRjLTcuNSwyLjItMjIuNSwwLjktNDgtMy40Yy0yLjMtMC40LTQuOC0wLjgtNy42LTEuM2MtMjkuMS01LjEtMzMuNi01LjgtNDAuMi01LjgKCQkJCQkJYy0xMi42LDAtMjAuMSwxLjItMjIuOSwzLjhMMTE1LjYsMTM0Ljl6Ii8+CgoJCQkJCQk8bGluZWFyR3JhZGllbnQgaWQ9Iui3r+W+hC01XzFfIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjMwNy4xMTA1IiB5MT0iMTAzLjQ4MSIgeDI9IjMwNy4xMTA1IiB5Mj0iMTAyLjQ5MjIiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMTQxLjI1IDAgMCAtNTIuMDk2MiAtNDMyMDEuNzIyNyA1NDgxLjM2MTMpIj4KCQkJCQkJPHN0b3AgIG9mZnNldD0iMCIgc3R5bGU9InN0b3AtY29sb3I6I0RDREVFNSIvPgoJCQkJCQk8c3RvcCAgb2Zmc2V0PSIxIiBzdHlsZT0ic3RvcC1jb2xvcjojOTc5QkE1Ii8+CgkJCQkJPC9saW5lYXJHcmFkaWVudD4KCQkJCQk8cGF0aCBpZD0i6Lev5b6ELTUiIGNsYXNzPSJzdDEzIiBkPSJNMjI1LjgsODkuOGgtMjBjLTYuOSwwLTEwLjcsMy4xLTgsNy41YzIuNyw0LjYsMTEuOSw5LjcsMjcuMSwxNC40CgkJCQkJCWMxNS41LDQuOCwyNC45LDE1LjUsMjEsMjIuNWMtNC41LDguMS0yNC40LDguOS01Ni4zLTAuOGMtNDguNC0xNC42LTc1LjgtMTYuMS04Mi42LTQuMWwxLjMsMC43YzYuMi0xMS4xLDMzLjItOS43LDgwLjksNC43CgkJCQkJCWMzMi41LDkuOCw1Myw5LjEsNTgsMC4xYzQuNS04LTUuNi0xOS41LTIxLjktMjQuNmMtMTQuOC00LjYtMjMuOC05LjYtMjYuMi0xMy43Yy0xLjgtMy4xLDAuOC01LjMsNi44LTUuM2gyMHYtMS40SDIyNS44eiIvPgoKCQkJCQkJPGxpbmVhckdyYWRpZW50IGlkPSLlvaLnirbnu5PlkIhfMTBfIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjI5NC4xODM1IiB5MT0iMTAxLjQ1NzgiIHgyPSIyOTQuNzA3NCIgeTI9IjEwMS40MDIyIiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDM3Ljc5OTMgNy4zNDc0IDcuNjMzNyAtMzkuMjcyIC0xMTgwMy44MjUyIDE5NTkuNDUyKSI+CgkJCQkJCTxzdG9wICBvZmZzZXQ9IjAiIHN0eWxlPSJzdG9wLWNvbG9yOiNFN0U5RUI7c3RvcC1vcGFjaXR5OjAuOTM2NSIvPgoJCQkJCQk8c3RvcCAgb2Zmc2V0PSIxIiBzdHlsZT0ic3RvcC1jb2xvcjojQ0RDRkQxIi8+CgkJCQkJPC9saW5lYXJHcmFkaWVudD4KCQkJCQk8cGF0aCBpZD0i5b2i54q257uT5ZCIXzNfIiBjbGFzcz0ic3QxNCIgZD0iTTExMS43LDEyNS4yYzQsNC45LDQuNywxMS4zLDIuNCwxMy41bC0wLjEsMC4xbC01LjUsNS42YzAuNiwyLjksMC41LDUuMy0xLjEsNi43CgkJCQkJCWwwLDBsMCwwbC04LjIsOC43bC0yMS44LTMwLjZsOC4zLTQuOHYwLjFjMS43LTAuOSw0LjEtMC42LDYuNywwLjRsNi44LTQuMmwwLjEtMC4xQzEwMiwxMTguNywxMDcuOCwxMjAuMywxMTEuNywxMjUuMnoiLz4KCgkJCQkJCTxsaW5lYXJHcmFkaWVudCBpZD0i5b2i54q257uT5ZCI5aSH5Lu9LTRfMV8iIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iMjk1LjQwNTQiIHkxPSI4Mi4zMTk3IiB4Mj0iMjk2LjEyODciIHkyPSI4Mi4yOTk0IiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDIzLjgyNDMgMjkuNDIwNiAxNS44NjE0IC0xMi44NDQzIC04MjU1Ljg0MzggLTc1MDQuODQ1NykiPgoJCQkJCQk8c3RvcCAgb2Zmc2V0PSIwIiBzdHlsZT0ic3RvcC1jb2xvcjojRUJFREVGIi8+CgkJCQkJCTxzdG9wICBvZmZzZXQ9IjEiIHN0eWxlPSJzdG9wLWNvbG9yOiNEOERBREMiLz4KCQkJCQk8L2xpbmVhckdyYWRpZW50PgoJCQkJCTxwYXRoIGlkPSLlvaLnirbnu5PlkIjlpIfku70tNCIgY2xhc3M9InN0MTUiIGQ9Ik0xMDMuMywxMzIuNGM1LjksNy4yLDcuMiwxNS40LDQsMTguOWwwLDBsLTguMSw4LjVMNzYsMTI5LjlsOS40LTUuNWwwLDAKCQkJCQkJQzg5LjUsMTIyLjEsOTcuNSwxMjUuMiwxMDMuMywxMzIuNHoiLz4KCgkJCQkJCTxlbGxpcHNlIGlkPSLmpK3lnIblvaLlpIfku70tMiIgdHJhbnNmb3JtPSJtYXRyaXgoMC43NzcxIC0wLjYyOTMgMC42MjkzIDAuNzc3MSAtNzEuNzU3MyA4Ny4zODA5KSIgY2xhc3M9InN0MTYiIGN4PSI4Ny41IiBjeT0iMTQ1IiByeD0iOS41IiByeT0iMTkiLz4KCgkJCQkJCTxnIGlkPSLnvJbnu4QtNSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoODUuMjg4NzA1LCAxNTUuNjk1NDY1KSByb3RhdGUoNi4wMDAwMDApIHRyYW5zbGF0ZSgtODUuMjg4NzA1LCAtMTU1LjY5NTQ2NSkgdHJhbnNsYXRlKDc5LjE0MzQ1MywgMTQ2Ljc1NjkxNykiPgoJCQkJCQk8cG9seWdvbiBpZD0i6Lev5b6ELTkiIGNsYXNzPSJzdDE3IiBwb2ludHM9IjEyLjIsMS4xIDEyLjIsNi4xIDEuMiwxNy41IDEuMiwxMi41IAkJCQkJCSIvPgoJCQkJCQk8cG9seWdvbiBpZD0i6Lev5b6ELTEwIiBjbGFzcz0ic3QxMSIgcG9pbnRzPSIxMi4yLDEuMSAxMS4zLDAgMC4zLDExLjEgMS4yLDEyLjUgCQkJCQkJIi8+CgkJCQkJCTxwb2x5Z29uIGlkPSLot6/lvoQtMTEiIGNsYXNzPSJzdDE4IiBwb2ludHM9IjAuMywxMS4xIDEuMiwxMi41IDEuMiwxNy41IDAuMywxNi4xIAkJCQkJCSIvPgoJCQkJCTwvZz4KCgkJCQkJCTxnIGlkPSLnvJbnu4QtNeWkh+S7vSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNzYuODI2Mjc3LCAxNDMuODg1MTA1KSByb3RhdGUoNi4wMDAwMDApIHRyYW5zbGF0ZSgtNzYuODI2Mjc3LCAtMTQzLjg4NTEwNSkgdHJhbnNsYXRlKDcwLjY4MTAyNSwgMTM0Ljk0NjU1OCkiPgoJCQkJCQk8cG9seWdvbiBpZD0i6Lev5b6ELTlfMV8iIGNsYXNzPSJzdDE3IiBwb2ludHM9IjEyLjIsMS4xIDEyLjIsNi4xIDEuMiwxNy41IDEuMiwxMi41IAkJCQkJCSIvPgoJCQkJCQk8cG9seWdvbiBpZD0i6Lev5b6ELTEwXzFfIiBjbGFzcz0ic3QxMSIgcG9pbnRzPSIxMi4yLDEuMSAxMS4zLDAgMC4zLDExLjEgMS4yLDEyLjUgCQkJCQkJIi8+CgkJCQkJCTxwb2x5Z29uIGlkPSLot6/lvoQtMTFfMV8iIGNsYXNzPSJzdDE4IiBwb2ludHM9IjAuMywxMS4xIDEuMiwxMi41IDEuMiwxNy41IDAuMywxNi4xIAkJCQkJCSIvPgoJCQkJCTwvZz4KCgkJCQkJCTxnIGlkPSLnvJbnu4QtNV8xXyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoODQuNjQzMzQ5LCAxNTYuMjAzMTgzKSByb3RhdGUoNi4wMDAwMDApIHRyYW5zbGF0ZSgtODQuNjQzMzQ5LCAtMTU2LjIwMzE4MykgdHJhbnNsYXRlKDc4LjEzNjYxMiwgMTQ2LjYyOTc5NikiPgoJCQkJCTwvZz4KCgkJCQkJCTxnIGlkPSLnvJbnu4QtNeWkh+S7vV8xXyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNzYuMjU3OTg1LCAxNDQuMjkxOTQyKSByb3RhdGUoNi4wMDAwMDApIHRyYW5zbGF0ZSgtNzYuMjU3OTg1LCAtMTQ0LjI5MTk0MikgdHJhbnNsYXRlKDY5Ljc1MTI0OCwgMTM0LjcxODU1NSkiPgoJCQkJCTwvZz4KCQkJCTwvZz4KCQkJCTxjaXJjbGUgaWQ9IuakreWchuW9oiIgY2xhc3M9InN0MTkiIGN4PSIxLjciIGN5PSI4MCIgcj0iMS43Ii8+CgkJCQk8cGF0aCBpZD0i5b2i54q257uT5ZCIXzRfIiBjbGFzcz0ic3QyMCIgZD0iTTEyMy43LDYyLjlsLTEuMiwxLjhjLTU4LjQsMTQuNi05Ny4zLDM0LjgtOTUuMiw1MS44YzEuMiwxMCwxNi41LDE3LjYsNDEsMjIuMgoJCQkJCWM3LjktOC42LDE4LjMtMTcuOSwzMC43LTI3LjV2MS45Qzg3LjQsMTIyLjIsNzcuNiwxMzEsNzAsMTM5YzkuMiwxLjYsMTkuNywyLjksMzEuMiwzLjdjMS41LDAuNywzLjQsMS4zLDUuNSwxLjgKCQkJCQljLTE0LjEtMC44LTI2LjktMi4yLTM3LjgtNC4yQzU1LDE1NS4xLDQ5LDE2Ny41LDUzLDE3NS40YzguNiwxNi45LDYxLjIsOC44LDEyNi44LTE3LjZjMC41LDAuMywxLDAuNiwxLjYsMQoJCQkJCWMtNjYuOCwyNy0xMjAuNSwzNS4yLTEyOS42LDE3LjNjLTQuMi04LjMsMS43LTIxLjEsMTUuNC0zNi4yYy0yNC43LTQuOC00MC0xMi43LTQxLjMtMjMuMkMyMy42LDk4LjUsNjMuNyw3Ny43LDEyMy43LDYyLjl6CgkJCQkJIE0zMTMuMywxMTguNGg1LjFjLTYuOCwyLjEtMTMuOSw0LjEtMjEuNCw2Yy0xLjQtMC4yLTIuOC0wLjQtMy45LTAuNUMzMDAuMiwxMjIuMSwzMDYuOSwxMjAuMywzMTMuMywxMTguNHogTTI4My4xLDEwNS44djEuNwoJCQkJCWMtMi45LDEuOC01LjgsMy41LTguOCw1LjN2LTEuN0MyNzcuMywxMDkuMywyODAuMiwxMDcuNiwyODMuMSwxMDUuOHogTTM3OC41LDkuNmM0LjcsOS4yLTMuMSwyNC0yMC4yLDQxLjMKCQkJCQljMTguOSw0LjksMzAuNCwxMiwzMS42LDIxYzEuMywxMC40LTExLjQsMjEuNi0zMy43LDMyLjJ2LTEuNmMyMS40LTEwLjEsMzMuNC0yMC44LDMyLjMtMzAuNGMtMS4xLTguNi0xMi41LTE1LjQtMzEuMy0yMC4xCgkJCQkJbC0wLjMsMC4zYy00LjUsNC41LTkuNiw5LjEtMTUuMywxMy45di0xLjljNS00LjMsOS42LTguNCwxMy43LTEyLjRsMC4zLTAuM2MtNC4zLTEtOS0xLjktMTQtMi43di0xLjVjNS40LDAuOSwxMC41LDEuOSwxNS4xLDMKCQkJCQljMTcuMS0xNy4xLDI1LTMxLjUsMjAuNi00MC4zYy0xMC0xOS43LTc5LjktNS40LTE2MC40LDMyLjJoLTMuNEMyOTUuOSwzLjQsMzY3LjgtMTEuNSwzNzguNSw5LjZ6IE0xMzYuOSw4NC41djEuOAoJCQkJCWMtNS44LDMuNy0xMS40LDcuNC0xNi43LDExLjFsMi0zLjFDMTI3LDkwLjksMTMxLjksODcuNywxMzYuOSw4NC41eiBNMzIxLjEsODAuNHYxLjhjLTQuMiwzLTguNSw2LjEtMTMsOS4ybDItMy4xCgkJCQkJQzMxMy45LDg1LjYsMzE3LjUsODMsMzIxLjEsODAuNHogTTE4MC44LDU4Ljl2MS43Yy04LjEsNC4zLTE1LjksOC43LTIzLjQsMTMuMVY3MkMxNjQuOSw2Ny42LDE3Mi43LDYzLjIsMTgwLjgsNTguOXoKCQkJCQkgTTE4MC44LDUxLjZ2MS41Yy04LDEuMi0xNS44LDIuNi0yMy40LDR2LTEuNUMxNjUsNTQuMSwxNzIuOCw1Mi44LDE4MC44LDUxLjZ6IE0zMTkuNSw0NC45bC0wLjksMS40CgkJCQkJYy0xMy40LTEuMS0yOC4zLTEuNS00NC4zLTEuM3YtMC41YzAtMC4zLTAuMS0wLjctMC4yLTAuOUMyOTAuNSw0My4zLDMwNS44LDQzLjcsMzE5LjUsNDQuOXoiLz4KCQkJCTxwYXRoIGlkPSLlvaLnirbnu5PlkIhfNV8iIGNsYXNzPSJzdDIxIiBkPSJNMzc4LjUsOS42YzQuNyw5LjItMy4xLDI0LTIwLjIsNDEuM2MxOC45LDQuOSwzMC40LDEyLDMxLjYsMjEKCQkJCQljMi45LDI0LTY4LjYsNTIuOC0xNjIuNCw2Ni4xYy04Ni45LDQyLjktMTY0LjYsNTkuOS0xNzUuOCwzOGMtNC4yLTguMywxLjctMjEuMSwxNS40LTM2LjJjLTI0LjctNC44LTQwLTEyLjctNDEuMy0yMy4yCgkJCQkJYy0xLjctMTMuOCwyMS4xLTI5LjEsNTguNS00Mi4ybDAuMywxLjRjLTM2LjYsMTIuOC01OSwyNy42LTU3LjQsNDAuNmMxLjIsMTAsMTYuNSwxNy42LDQxLDIyLjJjNi44LTcuMywxNS40LTE1LjIsMjUuNS0yMy40CgkJCQkJbDAuMywxLjJsMC44LTAuMmMtOS44LDcuOS0xOC4yLDE1LjUtMjQuOSwyMi42YzM0LjQsNi4xLDg2LjIsNi42LDE0My4zLTAuNGM0LjctMC42LDkuMy0xLjIsMTMuOC0xLjhjMi43LTEuNCw1LjUtMi43LDguMy00LjEKCQkJCQljNTEuOC0yNi40LDk1LTU2LjEsMTE5LjktODAuNmwwLjMtMC4zYy0yLjctMC42LTUuNS0xLjItOC40LTEuOGwtMC40LTEuNWMzLjUsMC42LDYuOCwxLjQsMTAsMi4xYzE3LjEtMTcuMSwyNS0zMS41LDIwLjYtNDAuMwoJCQkJCWMtNC4yLTguMy0xOS4yLTEwLjYtNDEuMS03LjZsLTAuMy0xLjRDMzU4LjUtMS44LDM3NCwwLjcsMzc4LjUsOS42eiBNMjIyLjksMTM4LjdsLTAuNCwwLjFjLTMsMC40LTYsMC44LTksMS4yCgkJCQkJYy01Ny43LDcuMS0xMTAsNi43LTE0NC43LDAuMkM1NSwxNTUuMSw0OSwxNjcuNSw1MywxNzUuNEM2My40LDE5NS45LDEzOC40LDE3OS43LDIyMi45LDEzOC43eiBNMzU3LjEsNTJsLTAuMywwLjMKCQkJCQljLTI1LDI0LjgtNjguNSw1NC44LTEyMC44LDgxLjRjLTEuNCwwLjctMi45LDEuNS00LjMsMi4yYzkwLjYtMTMuNSwxNTkuNS00MS41LDE1Ni43LTYzLjlDMzg3LjQsNjMuNSwzNzUuOSw1Ni43LDM1Ny4xLDUyeiIvPgoJCQkJPGNpcmNsZSBpZD0i5qSt5ZyG5b2iXzFfIiBjbGFzcz0ic3QxOSIgY3g9IjEzNS4yIiBjeT0iMTQ0LjIiIHI9IjIuMiIvPgoJCQkJPGNpcmNsZSBpZD0i5qSt5ZyG5b2i5aSH5Lu9LTQiIGNsYXNzPSJzdDE5IiBjeD0iMzU3IiBjeT0iNTAuOSIgcj0iMy45Ii8+CgkJCQk8Y2lyY2xlIGlkPSLmpK3lnIblvaLlpIfku70iIGNsYXNzPSJzdDE5IiBjeD0iNDMuNiIgY3k9IjkzLjkiIHI9IjIuMiIvPgoJCQkJPGNpcmNsZSBpZD0i5qSt5ZyG5b2iXzJfIiBjbGFzcz0ic3QxOSIgY3g9IjM3Mi4xIiBjeT0iMy40IiByPSIyLjIiLz4KCQkJCTxjaXJjbGUgaWQ9IuakreWchuW9ol8zXyIgY2xhc3M9InN0MTkiIGN4PSI3My4yIiBjeT0iNTAuOSIgcj0iMS43Ii8+CgkJCQk8Y2lyY2xlIGlkPSLmpK3lnIblvaJfNF8iIGNsYXNzPSJzdDE5IiBjeD0iMjkzLjMiIGN5PSIxNjkuNCIgcj0iMS43Ii8+CgkJCQk8Y2lyY2xlIGlkPSLmpK3lnIblvaJfNV8iIGNsYXNzPSJzdDE5IiBjeD0iMzk4LjMiIGN5PSIxNS4yIiByPSIxLjciLz4KCQkJPC9nPgoJCTwvZz4KCTwvZz4KPC9nPgo8L3N2Zz4K";
9987
9992
  var maintain = "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDIyLjEuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IuWbvuWxgl8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIKCSB2aWV3Qm94PSIwIDAgNDgwIDI0MCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNDgwIDI0MDsiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLnN0MHtmaWxsOnVybCgjRmlsbC0xXzFfKTt9Cgkuc3Qxe2ZpbGw6I0M0QzZDQzt9Cgkuc3Qye2ZpbGw6dXJsKCPnn6nlvaItMl8xXyk7fQoJLnN0M3tmaWxsOnVybCgj55+p5b2iXzZfKTt9Cgkuc3Q0e2ZpbGw6I0RDREVFMDt9Cgkuc3Q1e2ZpbGw6I0QxRDNENjt9Cgkuc3Q2e2ZpbGw6dXJsKCPnn6nlvaItM18xXyk7fQoJLnN0N3tmaWxsOiNFNUU3RUM7fQoJLnN0OHtmaWxsOnVybCgj5LiJ6KeS5b2iXzFfKTt9Cgkuc3Q5e2ZpbGw6Izk3OUJBNTt9Cjwvc3R5bGU+CjxnIGlkPSLpobXpnaItMSI+Cgk8ZyBpZD0iRXhjZXB0aW9uX3gyRl/lvILluLjmj5DnpLoiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC04NjkuMDAwMDAwLCAtMjkxOC4wMDAwMDApIj4KCQk8ZyBpZD0i5byC5bi45aSx6LSl57G7IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzNTcuMDAwMDAwLCAyODIzLjAwMDAwMCkiPgoJCQk8ZyBpZD0i5byC5bi45aSx6LSl57G7LeaPkuWbviIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNTEyLjAwMDAwMCwgOTUuMDAwMDAwKSI+CgkJCQk8ZyBpZD0i57yW57uELTIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEyMy4wMDAwMDAsIDMzLjAwMDAwMCkiPgoJCQkJCTxsaW5lYXJHcmFkaWVudCBpZD0iRmlsbC0xXzFfIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjEyNi41Njk5IiB5MT0iMTM0Ljk4ODkiIHgyPSIxMzAuMTYzOCIgeTI9IjE2OS4xODI3Ij4KCQkJCQkJPHN0b3AgIG9mZnNldD0iMCIgc3R5bGU9InN0b3AtY29sb3I6I0ZCRkNGRCIvPgoJCQkJCQk8c3RvcCAgb2Zmc2V0PSIxIiBzdHlsZT0ic3RvcC1jb2xvcjojRjJGNEY3Ii8+CgkJCQkJPC9saW5lYXJHcmFkaWVudD4KCQkJCQk8cGF0aCBpZD0iRmlsbC0xIiBjbGFzcz0ic3QwIiBkPSJNNjAsMTQzYzE5LjMtNC4yLDQ4LjQtNS43LDY3LjMtNC43czM5LjQsMy44LDM5LjQsMy44czUuMy0yLjQsNC45LTEuNAoJCQkJCQljLTAuNCwwLjktMi45LDIuNC0xLjIsMi44YzEuNiwwLjUsMTguNSwyLjQsMjUuNCwzLjhjNywxLjQsMTAuMywyLjgsMTAuMywyLjhzNC42LTgsMTQuNy03LjFjMCwwLjgtMy43LDEuNy01LDMuOAoJCQkJCQljLTEuMiwyLjEtNCwzLjMtNCwzLjNzMi4yLTEuMiw1LjksMC42czcuMywyLjQsNy4zLDIuN3MtMS42LDQuMi0xNS4yLDEuNGMtNS41LTEuNC04LjIsNi4xLTM0LjksOHMtNzEuOCwzLjMtNzEuOCwzLjMKCQkJCQkJczIuMSwyLjgsNi4yLDMuOGMwLDAtMi45LDIuOC04LjYsMS45Yy01LjctMC45LTExLjktNS43LTExLjktNS43cy0xNS4yLTAuOS0yMC45LTEuOXMtMTIuMy0zLjMtMTYuOC0zLjhzLTI1LTIuOC0xNy4yLTgKCQkJCQkJQzMzLjgsMTUyLjQsNDAuNywxNDcuMyw2MCwxNDN6Ii8+CgkJCQkJPHBhdGggaWQ9IuW9oueKtue7k+WQiCIgY2xhc3M9InN0MSIgZD0iTTYwLjgsMTQ3djkuMkg3MHYxLjhINTl2LTExSDYwLjh6Ii8+CgkJCQkJPHBhdGggaWQ9IuW9oueKtue7k+WQiOWkh+S7vSIgY2xhc3M9InN0MSIgZD0iTTY2LDMxLjhoLTkuMlY0MUg1NXYtOS4ybDAsMFYzMGgxMVYzMS44eiIvPgoJCQkJCTxwYXRoIGlkPSLlvaLnirbnu5PlkIjlpIfku70tMiIgY2xhc3M9InN0MSIgZD0iTTE1Ny4yLDQxdi05LjJIMTQ4VjMwaDkuMmwwLDBoMS44djExSDE1Ny4yeiIvPgoKCQkJCQkJPGxpbmVhckdyYWRpZW50IGlkPSLnn6nlvaItMl8xXyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSIxNjUuNzcyNyIgeTE9Ii0xLjU1OTciIHgyPSIxNjUuNzcyNyIgeTI9Ii0wLjYyMzgiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoODggMCAwIDExMiAtMTQ0ODAgMjE0KSI+CgkJCQkJCTxzdG9wICBvZmZzZXQ9IjAiIHN0eWxlPSJzdG9wLWNvbG9yOiNFQkVERjA7c3RvcC1vcGFjaXR5OjAuOTkxNyIvPgoJCQkJCQk8c3RvcCAgb2Zmc2V0PSIxIiBzdHlsZT0ic3RvcC1jb2xvcjojRTFFM0U2Ii8+CgkJCQkJPC9saW5lYXJHcmFkaWVudD4KCQkJCQk8cGF0aCBpZD0i55+p5b2iLTIiIGNsYXNzPSJzdDIiIGQ9Ik02NSwzOGg4NmMwLjYsMCwxLDAuNCwxLDF2MTEwYzAsMC42LTAuNCwxLTEsMUg2NWMtMC42LDAtMS0wLjQtMS0xVjM5CgkJCQkJCUM2NCwzOC40LDY0LjQsMzgsNjUsMzh6Ii8+CgoJCQkJCQk8bGluZWFyR3JhZGllbnQgaWQ9IuefqeW9ol82XyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSIxNjQuODAxNCIgeTE9Ii0xLjgxNDQiIHgyPSIxNjQuODAxNCIgeTI9Ii0wLjgyNTkiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoNzMgMCAwIDk3IC0xMTkyMyAyMjEpIj4KCQkJCQkJPHN0b3AgIG9mZnNldD0iMCIgc3R5bGU9InN0b3AtY29sb3I6I0ZGRkZGRiIvPgoJCQkJCQk8c3RvcCAgb2Zmc2V0PSIxIiBzdHlsZT0ic3RvcC1jb2xvcjojRjJGNEY3Ii8+CgkJCQkJPC9saW5lYXJHcmFkaWVudD4KCQkJCQk8cmVjdCBpZD0i55+p5b2iXzFfIiB4PSI3MSIgeT0iNDUiIGNsYXNzPSJzdDMiIHdpZHRoPSI3MyIgaGVpZ2h0PSI5NyIvPgoJCQkJCTxyZWN0IGlkPSLnn6nlvaJfMl8iIHg9Ijg2IiB5PSI0OSIgY2xhc3M9InN0NCIgd2lkdGg9IjQzIiBoZWlnaHQ9IjIiLz4KCQkJCQk8cmVjdCBpZD0i55+p5b2iXzNfIiB4PSI3MSIgeT0iMTQwIiBjbGFzcz0ic3Q1IiB3aWR0aD0iNzMiIGhlaWdodD0iMiIvPgoKCQkJCQkJPGxpbmVhckdyYWRpZW50IGlkPSLnn6nlvaItM18xXyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSIxNjAuODI1NiIgeTE9Ii0xMS43MzMzIiB4Mj0iMTYwLjgyNTYiIHkyPSItMTAuNzQxMiIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCg0MyAwIDAgMTUgLTY4MDggMjEwKSI+CgkJCQkJCTxzdG9wICBvZmZzZXQ9IjAiIHN0eWxlPSJzdG9wLWNvbG9yOiNFREVGRjIiLz4KCQkJCQkJPHN0b3AgIG9mZnNldD0iMSIgc3R5bGU9InN0b3AtY29sb3I6I0U4RUFFRCIvPgoJCQkJCTwvbGluZWFyR3JhZGllbnQ+CgkJCQkJPHJlY3QgaWQ9IuefqeW9oi0zIiB4PSI4NiIgeT0iMzQiIGNsYXNzPSJzdDYiIHdpZHRoPSI0MyIgaGVpZ2h0PSIxNSIvPgoJCQkJCTxwYXRoIGlkPSLlvaLnirbnu5PlkIhfMV8iIGNsYXNzPSJzdDUiIGQ9Ik0xNTIsMTA1djQ0YzAsMC42LTAuNCwxLTEsMWgtMjQuNkwxNTIsMTA1eiIvPgoJCQkJCTxwYXRoIGlkPSLlvaLnirbnu5PlkIhfMl8iIGNsYXNzPSJzdDciIGQ9Ik0xNDQsMTE5LjJWMTQwaC0xMkwxNDQsMTE5LjJ6Ii8+CgoJCQkJCQk8bGluZWFyR3JhZGllbnQgaWQ9IuS4ieinkuW9ol8xXyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSIxNjMuOTE0MyIgeTE9Ii0zLjA4MTIiIHgyPSIxNjMuOTE0MyIgeTI9Ii0yLjE0NTMiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoNjMuMTc5OSAwIDAgNTYuOTAzMyAtMTAxOTguMTcxOSAyNzcuMDk0NSkiPgoJCQkJCQk8c3RvcCAgb2Zmc2V0PSIwIiBzdHlsZT0ic3RvcC1jb2xvcjojRTZFOEVCO3N0b3Atb3BhY2l0eTowLjk5MTciLz4KCQkJCQkJPHN0b3AgIG9mZnNldD0iMSIgc3R5bGU9InN0b3AtY29sb3I6I0Q0RDZEOSIvPgoJCQkJCTwvbGluZWFyR3JhZGllbnQ+CgkJCQkJPHBhdGggaWQ9IuS4ieinkuW9oiIgY2xhc3M9InN0OCIgZD0iTTE1OS43LDEwMi4xbDEuNSwyLjZsMCwwbDI4LjEsNTAuM2MwLjUsMSwwLjIsMi4yLTAuOCwyLjdjLTAuMywwLjItMC42LDAuMy0xLDAuM2gtNTkuMgoJCQkJCQljLTEuMSwwLTItMC45LTItMmMwLTAuMywwLjEtMC43LDAuMy0xbDI5LjYtNTIuOWMwLjUtMSwxLjgtMS4zLDIuNy0wLjhDMTU5LjMsMTAxLjUsMTU5LjYsMTAxLjgsMTU5LjcsMTAyLjF6Ii8+CgkJCQkJPHBhdGggaWQ9Il94MjFfIiBjbGFzcz0ic3Q5IiBkPSJNMTYwLjcsMTI0bC0wLjYsMTYuNGgtNC4ybC0wLjYtMTYuNEMxNTUuMywxMjQsMTYwLjcsMTI0LDE2MC43LDEyNHogTTE1NSwxNDUuOAoJCQkJCQljMC0wLjksMC4zLTEuNiwwLjktMi4yczEuMy0wLjgsMi4xLTAuOGMwLjksMCwxLjYsMC4zLDIuMSwwLjhjMC42LDAuNiwwLjgsMS4zLDAuOCwyLjFzLTAuMywxLjYtMC44LDIuMQoJCQkJCQljLTAuNiwwLjYtMS4yLDAuOS0yLDAuOWMtMSwwLTEuNy0wLjMtMi4zLTAuOUMxNTUuMywxNDcuMywxNTUsMTQ2LjYsMTU1LDE0NS44eiIvPgoJCQkJCTxnIGlkPSLnvJbnu4QtMyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTAxLjAwMDAwMCwgNzQuMDAwMDAwKSI+CgkJCQkJCTxyZWN0IGlkPSLnn6nlvaJfNF8iIGNsYXNzPSJzdDEiIHdpZHRoPSIzLjgiIGhlaWdodD0iMSIvPgoJCQkJCQk8cmVjdCBpZD0i55+p5b2i5aSH5Lu9IiB4PSI3LjYiIGNsYXNzPSJzdDEiIHdpZHRoPSIzLjgiIGhlaWdodD0iMSIvPgoJCQkJCQk8cmVjdCBpZD0i55+p5b2i5aSH5Lu9LTIiIHg9IjE1LjEiIGNsYXNzPSJzdDEiIHdpZHRoPSIzLjgiIGhlaWdodD0iMSIvPgoJCQkJCQk8cmVjdCBpZD0i55+p5b2i5aSH5Lu9LTMiIHg9IjIyLjciIGNsYXNzPSJzdDEiIHdpZHRoPSIzLjgiIGhlaWdodD0iMSIvPgoJCQkJCQk8cmVjdCBpZD0i55+p5b2i5aSH5Lu9LTQiIHg9IjMwLjIiIGNsYXNzPSJzdDEiIHdpZHRoPSIzLjgiIGhlaWdodD0iMSIvPgoJCQkJCTwvZz4KCQkJCQk8ZyBpZD0i57yW57uELTNfMV8iIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEyNC4wMDAwMDAsIDkxLjAwMDAwMCkiPgoJCQkJCQk8cmVjdCBpZD0i55+p5b2iXzVfIiB4PSI3LjgiIGNsYXNzPSJzdDEiIHdpZHRoPSIzLjkiIGhlaWdodD0iMSIvPgoJCQkJCQk8cmVjdCBpZD0i55+p5b2i5aSH5Lu9LTUiIGNsYXNzPSJzdDEiIHdpZHRoPSIzLjkiIGhlaWdodD0iMSIvPgoJCQkJCQk8cmVjdCBpZD0i55+p5b2i5aSH5Lu9XzFfIiB4PSIxNS42IiBjbGFzcz0ic3QxIiB3aWR0aD0iMy45IiBoZWlnaHQ9IjEiLz4KCQkJCQkJPHJlY3QgaWQ9IuefqeW9ouWkh+S7vS0yXzFfIiB4PSIyMy41IiBjbGFzcz0ic3QxIiB3aWR0aD0iMy45IiBoZWlnaHQ9IjEiLz4KCQkJCQkJPHJlY3QgaWQ9IuefqeW9ouWkh+S7vS0zXzFfIiB4PSIzMS4zIiBjbGFzcz0ic3QxIiB3aWR0aD0iMy45IiBoZWlnaHQ9IjEiLz4KCQkJCQkJPHJlY3QgaWQ9IuefqeW9ouWkh+S7vS00XzFfIiB4PSIzOS4xIiBjbGFzcz0ic3QxIiB3aWR0aD0iMy45IiBoZWlnaHQ9IjEiLz4KCQkJCQk8L2c+CgkJCQk8L2c+CgkJCTwvZz4KCQk8L2c+Cgk8L2c+CjwvZz4KPC9zdmc+Cg==";
@@ -9989,7 +9994,7 @@ var Building = "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz
9989
9994
  var empty = "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDIyLjEuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IuWbvuWxgl8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIKCSB2aWV3Qm94PSIwIDAgNDgwIDI0MCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNDgwIDI0MDsiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLnN0MHtmaWxsOnVybCgjRmlsbC0xXzFfKTt9Cgkuc3Qxe2ZpbGw6dXJsKCPot6/lvoQtM18xXyk7fQoJLnN0MntmaWxsOnVybCgj5b2i54q257uT5ZCIXzJfKTt9Cgkuc3Qze2ZpbGw6I0M0QzZDQzt9Cjwvc3R5bGU+CjxsaW5lYXJHcmFkaWVudCBpZD0iRmlsbC0xXzFfIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjI0MS40NDI3IiB5MT0iODQuOTYwMSIgeDI9IjI0Ny41MTg0IiB5Mj0iNTAuNTAyOCIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgxIDAgMCAtMSAwIDI0MCkiPgoJPHN0b3AgIG9mZnNldD0iMCIgc3R5bGU9InN0b3AtY29sb3I6I0ZCRkNGRCIvPgoJPHN0b3AgIG9mZnNldD0iMSIgc3R5bGU9InN0b3AtY29sb3I6I0YwRjJGNSIvPgo8L2xpbmVhckdyYWRpZW50Pgo8cGF0aCBpZD0iRmlsbC0xIiBjbGFzcz0ic3QwIiBkPSJNMTg4LDE2NC43YzE2LjMtMy43LDM5LjctNS4zLDU1LjYtNC41czI5LjEsMy42LDMwLDIuOWMzLjItMi4xLDEwLTMsOS42LTIuMgoJYy0wLjMsMC44LTQuNywzLjQtMy4zLDMuOGMxLjQsMC40LDE1LjYsMiwyMS41LDMuM2M1LjksMS4yLDkuNywyLjQsMTEsMi40czMuMy0xLjcsMTEuOC0wLjljMC4yLDAuMy0xLjksMC40LTMuOCwxLjQKCXMtMy4zLDAuOS0zLjMsMS4xczEuMS0wLjMsMy4zLDEuMWMyLjIsMS40LDYuMSwxLjksNi4xLDIuMnMtNC45LDItMTMuMi0wLjZjLTIuMS0wLjctNyw1LjEtMjkuNSw2LjdzLTYwLjUsMi45LTYwLjUsMi45CglzMi4zLDIuOSw1LjYsMy44YzAuMiwwLjMtMS4zLDEuNC03LjgsMC4ycy05LjktMy45LTkuOS0zLjlzLTEyLjgtMC44LTE3LjYtMS42cy0xMC40LTIuOS0xNC4yLTMuM2MtMy44LTAuNC0yMS4xLTIuNC0xNC41LTYuOQoJQzE2NC43LDE3Mi41LDE3MS43LDE2OC40LDE4OCwxNjQuN3oiLz4KPGxpbmVhckdyYWRpZW50IGlkPSLot6/lvoQtM18xXyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSI0MTIuNTYwNiIgeTE9Ii0zLjExMzMiIHgyPSI0MTIuNTYwNiIgeTI9Ii0yLjE3NzMiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMTA1LjYgMCAwIDU2LjMyIC00MzMyNi40MDIzIDI3OC40MDAxKSI+Cgk8c3RvcCAgb2Zmc2V0PSIwIiBzdHlsZT0ic3RvcC1jb2xvcjojRTZFOEVCO3N0b3Atb3BhY2l0eTowLjk5MTciLz4KCTxzdG9wICBvZmZzZXQ9IjEiIHN0eWxlPSJzdG9wLWNvbG9yOiNENEQ2RDkiLz4KPC9saW5lYXJHcmFkaWVudD4KPHBvbHlnb24gaWQ9Iui3r+W+hC0zIiBjbGFzcz0ic3QxIiBwb2ludHM9IjE4Ny4yLDEzNy42IDIxMC43LDEwMi40IDI2OS4zLDEwMi40IDI5Mi44LDEzNy42IDI5Mi44LDE1OC43IDE4Ny4yLDE1OC43ICIvPgo8bGluZWFyR3JhZGllbnQgaWQ9IuW9oueKtue7k+WQiF8yXyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSI0MTIuNTYwNiIgeTE9Ii01IiB4Mj0iNDEyLjU2MDYiIHkyPSItNC4wMDc5IiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDEwNS42IDAgMCAzNS4yIC00MzMyNi40MDIzIDMxMy42MDA0KSI+Cgk8c3RvcCAgb2Zmc2V0PSIwIiBzdHlsZT0ic3RvcC1jb2xvcjojRURFRkYyIi8+Cgk8c3RvcCAgb2Zmc2V0PSIxIiBzdHlsZT0ic3RvcC1jb2xvcjojRThFQUVEIi8+CjwvbGluZWFyR3JhZGllbnQ+CjxwYXRoIGlkPSLlvaLnirbnu5PlkIgiIGNsYXNzPSJzdDIiIGQ9Ik0yMTIuNiwxNzIuOGgtMjMuNGMtMS4xLDAtMi0wLjktMi0ydi0zMy4yaDIzLjRjMS4xLDAsMiwwLjksMiwydjcuNGMwLDEuMSwwLjgsMS45LDEuOSwyCgloMC4xaDUwLjhjMS4xLDAsMS45LTAuOCwyLTEuOVYxNDd2LTcuNGMwLTEuMSwwLjktMiwyLTJoMjMuNHYzMy4yYzAsMS4xLTAuOSwyLTIsMmgtMjMuNEgyMTIuNnoiLz4KPHBhdGggaWQ9IuW9oueKtue7k+WQiF8xXyIgY2xhc3M9InN0MyIgZD0iTTE4Mi40LDE2OS42djhoOHYxLjZoLTkuNnYtOS42SDE4Mi40eiIvPgo8cGF0aCBpZD0i5b2i54q257uT5ZCI5aSH5Lu9IiBjbGFzcz0ic3QzIiBkPSJNMjg5LjYsMTc3LjZoOHYtOGgxLjZ2OS42aC05LjZWMTc3LjZ6Ii8+CjxnIGlkPSLnvJbnu4QtNCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoOTEuNjg4ODkwLCAxMS44NzQ5MzYpIHJvdGF0ZSgyMS4wMDAwMDApIHRyYW5zbGF0ZSgtOTEuNjg4ODkwLCAtMTEuODc0OTM2KSB0cmFuc2xhdGUoOTAuODg4ODkwLCAwLjY3NDkzNikiPgoKCQk8cmVjdCBpZD0i55+p5b2iXzFfIiB4PSIxODMuMSIgeT0iMjQuNSIgdHJhbnNmb3JtPSJtYXRyaXgoNS40NDk4OTllLTA2IDEgLTEgNS40NDk4OTllLTA2IDIwOS45Mzc5IC0xNTkuMzkzOCkiIGNsYXNzPSJzdDMiIHdpZHRoPSIzLjIiIGhlaWdodD0iMS42Ii8+CgoJCTxyZWN0IGlkPSLnn6nlvaLlpIfku70tNiIgeD0iMTgzLjEiIHk9IjMwLjkiIHRyYW5zZm9ybT0ibWF0cml4KDUuNDQ5ODk4ZS0wNiAxIC0xIDUuNDQ5ODk4ZS0wNiAyMTYuMzM3OCAtMTUyLjk5MzkpIiBjbGFzcz0ic3QzIiB3aWR0aD0iMy4yIiBoZWlnaHQ9IjEuNiIvPgoKCQk8cmVjdCBpZD0i55+p5b2i5aSH5Lu9LTciIHg9IjE4My4xIiB5PSIzNy4zIiB0cmFuc2Zvcm09Im1hdHJpeCg1LjQ0OTg5OGUtMDYgMSAtMSA1LjQ0OTg5OGUtMDYgMjIyLjczNzkgLTE0Ni41OTM5KSIgY2xhc3M9InN0MyIgd2lkdGg9IjMuMiIgaGVpZ2h0PSIxLjYiLz4KCgkJPHJlY3QgaWQ9IuefqeW9ouWkh+S7vS04IiB4PSIxODMuMSIgeT0iNDMuNyIgdHJhbnNmb3JtPSJtYXRyaXgoNS40NDk4OTllLTA2IDEgLTEgNS40NDk4OTllLTA2IDIyOS4xMzc5IC0xNDAuMTkzOSkiIGNsYXNzPSJzdDMiIHdpZHRoPSIzLjIiIGhlaWdodD0iMS42Ii8+CjwvZz4KPGcgaWQ9Iue8lue7hC0zIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzNi4wMDAwMDAsIDI3LjIwMDAwMCkgcm90YXRlKC0zMi4wMDAwMDApIHRyYW5zbGF0ZSgtMzYuMDAwMDAwLCAtMjcuMjAwMDAwKSB0cmFuc2xhdGUoMzUuMjAwMDAwLCAxMi44MDAwMDApIj4KCgkJPHJlY3QgaWQ9IuefqeW9ol8yXyIgeD0iOTEuNyIgeT0iMTYxLjEiIHRyYW5zZm9ybT0ibWF0cml4KC0xIDUuNDI2MzM3ZS0wNiAtNS40MjYzMzdlLTA2IC0xIDE4NS4wNzUzIDMyNS40NDM4KSIgY2xhc3M9InN0MyIgd2lkdGg9IjEuNiIgaGVpZ2h0PSIzLjIiLz4KCgkJPHJlY3QgaWQ9IuefqeW9ouWkh+S7vS0yIiB4PSI5MS43IiB5PSIxNjcuNSIgdHJhbnNmb3JtPSJtYXRyaXgoLTEgNS40MjYzMzZlLTA2IC01LjQyNjMzNmUtMDYgLTEgMTg1LjA3NTUgMzM4LjI0MzgpIiBjbGFzcz0ic3QzIiB3aWR0aD0iMS42IiBoZWlnaHQ9IjMuMiIvPgoKCQk8cmVjdCBpZD0i55+p5b2i5aSH5Lu9LTMiIHg9IjkxLjciIHk9IjE3My45IiB0cmFuc2Zvcm09Im1hdHJpeCgtMSA1LjQyNjMzNmUtMDYgLTUuNDI2MzM2ZS0wNiAtMSAxODUuMDc1NSAzNTEuMDQzOSkiIGNsYXNzPSJzdDMiIHdpZHRoPSIxLjYiIGhlaWdodD0iMy4yIi8+CgoJCTxyZWN0IGlkPSLnn6nlvaLlpIfku70tNCIgeD0iOTEuNyIgeT0iMTgwLjMiIHRyYW5zZm9ybT0ibWF0cml4KC0xIDUuNDI2MzM2ZS0wNiAtNS40MjYzMzZlLTA2IC0xIDE4NS4wNzU1IDM2My44NDM4KSIgY2xhc3M9InN0MyIgd2lkdGg9IjEuNiIgaGVpZ2h0PSIzLjIiLz4KCgkJPHJlY3QgaWQ9IuefqeW9ouWkh+S7vS01IiB4PSI5MS43IiB5PSIxODYuNyIgdHJhbnNmb3JtPSJtYXRyaXgoLTEgNS40MjYzMzdlLTA2IC01LjQyNjMzN2UtMDYgLTEgMTg1LjA3NTUgMzc2LjY0MzgpIiBjbGFzcz0ic3QzIiB3aWR0aD0iMS42IiBoZWlnaHQ9IjMuMiIvPgo8L2c+CjxjaXJjbGUgaWQ9IuakreWchuW9oiIgY2xhc3M9InN0MyIgY3g9IjI2OC44IiBjeT0iOTQuNCIgcj0iMS42Ii8+CjxjaXJjbGUgaWQ9IuakreWchuW9ouWkh+S7vSIgY2xhc3M9InN0MyIgY3g9IjIyNy4yIiBjeT0iMTIwIiByPSIxLjYiLz4KPC9zdmc+Cg==";
9990
9995
  var login = "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDIyLjEuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IuWbvuWxgl8yXzFfIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiCgkgeT0iMHB4IiB2aWV3Qm94PSIwIDAgNDgwIDI0MCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNDgwIDI0MDsiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLnN0MHtmaWxsOnVybCgj5b2i54q257uT5ZCIXzNfKTt9Cgkuc3Qxe2ZpbGw6dXJsKCPlvaLnirbnu5PlkIhfN18pO30KCS5zdDJ7ZmlsbDojQzRDNkNDO30KCS5zdDN7ZmlsbDp1cmwoI+W9oueKtue7k+WQiF85Xyk7fQoJLnN0NHtmaWxsOnVybCgj5b2i54q257uT5ZCIXzEwXyk7ZmlsbC1vcGFjaXR5OjAuNjt9Cgkuc3Q1e2ZpbGw6dXJsKCPlvaLnirbnu5PlkIhfMTFfKTt9Cgkuc3Q2e2ZpbGw6dXJsKCPot6/lvoQtM18xXyk7fQoJLnN0N3tmaWxsOnVybCgj5b2i54q257uT5ZCIXzEyXyk7fQoJLnN0OHtmaWxsOnVybCgj6Lev5b6ELTNfNF8pO30KCS5zdDl7ZmlsbDp1cmwoI+W9oueKtue7k+WQiF8xM18pO30KCS5zdDEwe2ZpbGw6dXJsKCPlvaLnirbnu5PlkIhfMTVfKTt9Cgkuc3QxMXtmaWxsOiM5NzlCQTU7fQoJLnN0MTJ7ZmlsbDp1cmwoI1NWR0lEXzFfKTt9Cgkuc3QxM3tmaWxsOnVybCgjU1ZHSURfMl8pO30KCS5zdDE0e2ZpbGw6dXJsKCPlvaLnirbnu5PlkIhfMTZfKTt9Cgkuc3QxNXtmaWxsOnVybCgj5b2i54q257uT5ZCI5aSH5Lu9LTJfMl8pO30KCS5zdDE2e2ZpbGw6IzM0MzQzNDtmaWxsLW9wYWNpdHk6MC4xO30KPC9zdHlsZT4KPGcgaWQ9Iumhtemdoi0xIj4KCTxnIGlkPSJFeGNlcHRpb25feDJGX+W8guW4uOaPkOekul94MkZf54Gw55m95a+55q+UIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtOTI0LjAwMDAwMCwgLTcwNy4wMDAwMDApIj4KCQk8ZyBpZD0i6ZyA6KaB55m75b2VIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg5MjQuMDAwMDAwLCA3MDcuMDAwMDAwKSI+CgoJCQkJPGxpbmVhckdyYWRpZW50IGlkPSLlvaLnirbnu5PlkIhfM18iIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iMTAxOS45MDA2IiB5MT0iLTguMzM1NCIgeDI9IjEwMTkuOTAwNiIgeTI9Ii03LjMzNjciIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMjAwLjAyNTcgMCAwIDU4LjMwNDcgLTIwMzc1OS41NDY5IDY2My45OTQ0KSI+CgkJCQk8c3RvcCAgb2Zmc2V0PSIwIiBzdHlsZT0ic3RvcC1jb2xvcjojRjVGNkY3Ii8+CgkJCQk8c3RvcCAgb2Zmc2V0PSIxIiBzdHlsZT0ic3RvcC1jb2xvcjojRjdGOUZDIi8+CgkJCTwvbGluZWFyR3JhZGllbnQ+CgkJCTxwYXRoIGlkPSLlvaLnirbnu5PlkIhfMzBfIiBjbGFzcz0ic3QwIiBkPSJNMjQ5LjYsMTc4djguN2MwLDIuNSwyLjEsNC42LDQuNiw0LjZzNC41LDEuOSw0LjYsNC40djAuMnYwLjkKCQkJCWMxLjEtMC41LDIuMy0wLjgsMy41LTAuOGM0LjMsMCw3LjgsMy4yLDguNCw3LjNjMS0wLjgsMi4yLTEuMywzLjYtMS4zYzEuMiwwLDIuMywwLjQsMy4yLDFjMi4zLTQuMiw2LjctNywxMS44LTcKCQkJCWM3LjIsMCwxMyw1LjYsMTMuNSwxMi43YzQuOSwwLjcsMTAuMSwxLjUsMTMuMywyLjFjNy4yLDEuNSwxMS44LDMsMTMuNCwzczQtMi4xLDE0LjUtMS4xYzAuMiwwLjQtMi4zLDAuNS00LjcsMS43cy00LDEuMS00LDEuNAoJCQkJczEuMy0wLjQsNCwxLjNzNy41LDIuMyw3LjUsMi44cy02LjEsMi40LTE2LjItMC44Yy0yLjYtMC44LTguNiw2LjItMzYuMSw4LjJjLTI3LjYsMi03NC4yLDMuNS03NC4yLDMuNXMyLjgsMy42LDYuOSw0LjYKCQkJCWMwLjIsMC40LTEuNiwxLjctOS42LDAuMmMtNy45LTEuNS0xMi4yLTQuOC0xMi4yLTQuOHMtMTUuNy0xLTIxLjYtMmMtNS45LTEtMTIuNy0zLjUtMTcuNC00cy0yNS45LTMtMTcuOC04LjUKCQkJCWMwLDAsNy4yLTQuMiwyMy42LTguM2MyLTMuNSw1LjctNS45LDEwLjEtNS45YzIuNywwLDUuMiwwLjksNy4xLDIuNWMxLjQtMC4yLDIuOS0wLjQsNC40LTAuNmMxLjItMS4xLDIuOC0xLjgsNC41LTEuOAoJCQkJYzEuMiwwLDIuMywwLjMsMy4yLDAuOWwwLjUtMC4xYzEtMy45LDQuNS02LjgsOC43LTYuOGMyLjgsMCw1LjQsMS4zLDcsMy4zdi0yLjhjMC0yLjksMi40LTUuMyw1LjMtNS4zYzIuOCwwLDUuMi0yLjIsNS4zLTUuMQoJCQkJdi0wLjJ2LThMMjQ5LjYsMTc4TDI0OS42LDE3OHoiLz4KCgkJCQk8bGluZWFyR3JhZGllbnQgaWQ9IuW9oueKtue7k+WQiF83XyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSIxMDAzLjIzODQiIHkxPSItNDMuNjgxOCIgeDI9IjEwMDMuOTQ2MSIgeTI9Ii00My42ODE4IiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDQ0IDAgMCAxMSAtNDM5MTkuMTk5MiA2NTUuNSkiPgoJCQkJPHN0b3AgIG9mZnNldD0iMCIgc3R5bGU9InN0b3AtY29sb3I6I0UyRTNFNiIvPgoJCQkJPHN0b3AgIG9mZnNldD0iMC40NTQzIiBzdHlsZT0ic3RvcC1jb2xvcjojRUNFRUYwIi8+CgkJCQk8c3RvcCAgb2Zmc2V0PSIxIiBzdHlsZT0ic3RvcC1jb2xvcjojRTJFNEU2Ii8+CgkJCTwvbGluZWFyR3JhZGllbnQ+CgkJCTxwYXRoIGlkPSLlvaLnirbnu5PlkIhfMjlfIiBjbGFzcz0ic3QxIiBkPSJNMjE2LjgsMTY5LjVoNDR2NmMwLDIuOC05LjgsNS0yMiw1cy0yMi0yLjItMjItNWwwLDBMMjE2LjgsMTY5LjVMMjE2LjgsMTY5LjV6Ii8+CgkJCTxwYXRoIGlkPSLlvaLnirbnu5PlkIjlpIfku71fMV8iIGNsYXNzPSJzdDIiIGQ9Ik0yMTYuOCwxNjVoNDR2NmMwLDIuOC05LjgsNS0yMiw1cy0yMi0yLjItMjItNWwwLDBMMjE2LjgsMTY1TDIxNi44LDE2NXoiLz4KCgkJCQk8bGluZWFyR3JhZGllbnQgaWQ9IuW9oueKtue7k+WQiF85XyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSI5NDcuNDg4OCIgeTE9Ii04LjM4NDgiIHgyPSI5NDguMTg2MyIgeTI9Ii04LjM4NDgiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMTIgMCAwIDU0LjcgLTExMTc3LjIwMDIgNTgxLjI5OTEpIj4KCQkJCTxzdG9wICBvZmZzZXQ9IjAiIHN0eWxlPSJzdG9wLWNvbG9yOiNGMUYzRjUiLz4KCQkJCTxzdG9wICBvZmZzZXQ9IjAuNDU3NiIgc3R5bGU9InN0b3AtY29sb3I6I0Y0RjVGNyIvPgoJCQkJPHN0b3AgIG9mZnNldD0iMSIgc3R5bGU9InN0b3AtY29sb3I6I0VDRUVGMCIvPgoJCQk8L2xpbmVhckdyYWRpZW50PgoJCQk8cGF0aCBpZD0i5b2i54q257uT5ZCIXzI4XyIgY2xhc3M9InN0MyIgZD0iTTE5Ni44LDk1LjNjMS44LDAsNiw4LjMsNiwxMS43bDAsMHY0M2gtMTJ2LTQzdi0wLjJDMTkwLjksMTAzLjQsMTk1LDk1LjMsMTk2LjgsOTUuMwoJCQkJeiIvPgoKCQkJCTxsaW5lYXJHcmFkaWVudCBpZD0i5b2i54q257uT5ZCIXzEwXyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSI5NDcuODQ2NCIgeTE9Ii0xOS44MjgyIiB4Mj0iOTQ3LjgyNyIgeTI9Ii0xOS42NDE4IiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDEyIDAgMCAyNC4yIC0xMTA5My4yMDAyIDYwMi45OTkzKSI+CgkJCQk8c3RvcCAgb2Zmc2V0PSIwIiBzdHlsZT0ic3RvcC1jb2xvcjojQ0REMEQyO3N0b3Atb3BhY2l0eTowIi8+CgkJCQk8c3RvcCAgb2Zmc2V0PSIxIiBzdHlsZT0ic3RvcC1jb2xvcjojQ0REMEQyIi8+CgkJCTwvbGluZWFyR3JhZGllbnQ+CgkJCTxwb2x5Z29uIGlkPSLlvaLnirbnu5PlkIhfMjZfIiBjbGFzcz0ic3Q0IiBwb2ludHM9IjI3NC44LDExNyAyNzQuOCwxMzIuNiAyNzkuNywxNDEuMiAyODYuOCwxMzUuNCAyODYuOCwxMjYgCQkJIi8+CgoJCQkJPGxpbmVhckdyYWRpZW50IGlkPSLlvaLnirbnu5PlkIhfMTFfIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9Ijk0OC4xNzE2IiB5MT0iLTguMzg0OCIgeDI9Ijk0Ny40NzQxIiB5Mj0iLTguMzg0OCIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgxMiAwIDAgNTQuNyAtMTEwOTMuMjAwMiA1ODEuMjk5MSkiPgoJCQkJPHN0b3AgIG9mZnNldD0iMCIgc3R5bGU9InN0b3AtY29sb3I6I0YxRjNGNSIvPgoJCQkJPHN0b3AgIG9mZnNldD0iMC40NTc2IiBzdHlsZT0ic3RvcC1jb2xvcjojRjRGNUY3Ii8+CgkJCQk8c3RvcCAgb2Zmc2V0PSIxIiBzdHlsZT0ic3RvcC1jb2xvcjojRUNFRUYwIi8+CgkJCTwvbGluZWFyR3JhZGllbnQ+CgkJCTxwYXRoIGlkPSLlvaLnirbnu5PlkIhfMjVfIiBjbGFzcz0ic3Q1IiBkPSJNMjgwLjgsOTUuM2MtMS44LDAtNiw4LjMtNiwxMS43bDAsMHY0M2gxMnYtNDN2LTAuMgoJCQkJQzI4Ni42LDEwMy40LDI4Mi41LDk1LjMsMjgwLjgsOTUuM3oiLz4KCQkJPGcgaWQ9Iue8lue7hF8zXyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoODAuNzYwNDk5LCA3Ny4wMDAwMDApIj4KCgkJCQkJPGxpbmVhckdyYWRpZW50IGlkPSLot6/lvoQtM18xXyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSI1MTQuMzE0MSIgeTE9Ii02Ljg5MDUiIHgyPSI1MTQuMzk0MyIgeTI9Ii02LjUyMDQiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMzYgMCAwIDY2IC0xODM5NS43MzI0IDUwNikiPgoJCQkJCTxzdG9wICBvZmZzZXQ9IjAiIHN0eWxlPSJzdG9wLWNvbG9yOiNFOEU5RUIiLz4KCQkJCQk8c3RvcCAgb2Zmc2V0PSIxIiBzdHlsZT0ic3RvcC1jb2xvcjojRDdEOERCIi8+CgkJCQk8L2xpbmVhckdyYWRpZW50PgoJCQkJPHBhdGggaWQ9Iui3r+W+hC0zXzNfIiBjbGFzcz0ic3Q2IiBkPSJNMTM1LDIwYy0xLjQsNy00LjUsMTMuMy05LjQsMTkuMWMtNy4zLDguNy0xNS4yLDEzLjYtMTguNCwyMy44CgkJCQkJYy0yLjEsNi44LTMuMiwxMi45LTMuMiwxOC4zbDMyLjEsNC44bDMuOS00LjhMMTM1LDIweiIvPgoKCQkJCQk8bGluZWFyR3JhZGllbnQgaWQ9IuW9oueKtue7k+WQiF8xMl8iIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iNDY5LjEyNSIgeTE9Ii02Ljk4IiB4Mj0iNDY5LjEyNjMiIHkyPSItNi45NjgxIiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDEzIDAgMCA2NC41IC01OTY1LjY4MTYgNTA3LjUpIj4KCQkJCQk8c3RvcCAgb2Zmc2V0PSIwIiBzdHlsZT0ic3RvcC1jb2xvcjojRUJFREVGO3N0b3Atb3BhY2l0eTowIi8+CgkJCQkJPHN0b3AgIG9mZnNldD0iMSIgc3R5bGU9InN0b3AtY29sb3I6I0M4Q0FDQyIvPgoJCQkJPC9saW5lYXJHcmFkaWVudD4KCQkJCTxwYXRoIGlkPSLlvaLnirbnu5PlkIhfMjRfIiBjbGFzcz0ic3Q3IiBkPSJNMTM1LjIsMjEuNWw0LjgsNTkuN2wtMy45LDQuOGwtOS4xLTEuNGwzLjMtNTIuMmMyLTMuNSwzLjQtNy4xLDQuNC0xMC45CgkJCQkJQzEzNC43LDIxLjUsMTM1LjIsMjEuNSwxMzUuMiwyMS41eiIvPgoJCQk8L2c+CgoJCQkJPGcgaWQ9Iue8lue7hF8yXyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTcxLjAwMDAwMCwgMTEwLjAwMDAwMCkgc2NhbGUoLTEsIDEpIHRyYW5zbGF0ZSgtMTcxLjAwMDAwMCwgLTExMC4wMDAwMDApIHRyYW5zbGF0ZSgxNTMuMDAwMDAwLCA3Ny4wMDAwMDApIj4KCgkJCQkJPGxpbmVhckdyYWRpZW50IGlkPSLot6/lvoQtM180XyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSIyNi4xMTk1IiB5MT0iLTYuNzUwNiIgeDI9IjI2LjE5OTgiIHkyPSItNi4zODA1IiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDM2IDAgMCA2NiAtMTAyNCA1MDYpIj4KCQkJCQk8c3RvcCAgb2Zmc2V0PSIwIiBzdHlsZT0ic3RvcC1jb2xvcjojRThFOUVCIi8+CgkJCQkJPHN0b3AgIG9mZnNldD0iMSIgc3R5bGU9InN0b3AtY29sb3I6I0Q3RDhEQiIvPgoJCQkJPC9saW5lYXJHcmFkaWVudD4KCQkJCTxwYXRoIGlkPSLot6/lvoQtM18yXyIgY2xhc3M9InN0OCIgZD0iTS03MywyMGMtMS40LDctNC41LDEzLjMtOS40LDE5LjFjLTcuMyw4LjctMTUuMiwxMy42LTE4LjQsMjMuOAoJCQkJCWMtMi4xLDYuOC0zLjIsMTIuOS0zLjIsMTguM2wzMi4xLDQuOGwzLjktNC44TC03MywyMHoiLz4KCQkJPC9nPgoKCQkJCTxsaW5lYXJHcmFkaWVudCBpZD0i5b2i54q257uT5ZCIXzEzXyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSI2NTkuNjQ1MyIgeTE9Ii02Ljk4IiB4Mj0iNjU5LjY0NjUiIHkyPSItNi45NjgiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoLTEzIDAgMCA2NC41IDg4MzkuMjE0OCA1ODQuNSkiPgoJCQkJPHN0b3AgIG9mZnNldD0iMCIgc3R5bGU9InN0b3AtY29sb3I6I0VCRURFRjtzdG9wLW9wYWNpdHk6MCIvPgoJCQkJPHN0b3AgIG9mZnNldD0iMSIgc3R5bGU9InN0b3AtY29sb3I6I0M4Q0FDQyIvPgoJCQk8L2xpbmVhckdyYWRpZW50PgoJCQk8cGF0aCBpZD0i5b2i54q257uT5ZCIXzJfIiBjbGFzcz0ic3Q5IiBkPSJNMjYxLjYsOTguNWwtNC44LDU5LjdsMy45LDQuOGw5LjEtMS40bC0zLjMtNTIuMmMtMi0zLjUtMy40LTcuMS00LjQtMTAuOQoJCQkJQzI2Mi4xLDk4LjUsMjYxLjYsOTguNSwyNjEuNiw5OC41eiIvPgoKCQkJCTxsaW5lYXJHcmFkaWVudCBpZD0i5b2i54q257uT5ZCIXzE1XyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSIxMDA0Ljk4MTEiIHkxPSItMi42NTU4IiB4Mj0iMTAwNS42ODg3IiB5Mj0iLTIuNjU1OCIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCg0OCAwIDAgMTU0IC00ODAxNy4xOTkyIDUwNikiPgoJCQkJPHN0b3AgIG9mZnNldD0iMCIgc3R5bGU9InN0b3AtY29sb3I6I0VBRUJFRCIvPgoJCQkJPHN0b3AgIG9mZnNldD0iMC40NTQzIiBzdHlsZT0ic3RvcC1jb2xvcjojRjRGNUY3Ii8+CgkJCQk8c3RvcCAgb2Zmc2V0PSIxIiBzdHlsZT0ic3RvcC1jb2xvcjojRUVGMEYyIi8+CgkJCTwvbGluZWFyR3JhZGllbnQ+CgkJCTxwYXRoIGlkPSLlvaLnirbnu5PlkIhfMThfIiBjbGFzcz0ic3QxMCIgZD0iTTIzOC44LDIwYzcsMCwyNCwyNy43LDI0LDQxbDAsMHYxMDZjMCwwLjEsMCwwLjIsMCwwLjNzMCwwLjIsMCwwLjIKCQkJCWMwLDMuNi0xMC43LDYuNS0yNCw2LjVzLTI0LTIuOS0yNC02LjVjMC0wLjEsMC0wLjIsMC0wLjJjMC0wLjEsMC0wLjIsMC0wLjNWNjF2LTAuNEMyMTUuMSw0Ny4yLDIzMS44LDIwLDIzOC44LDIweiIvPgoJCQk8Zz4KCQkJCTxjaXJjbGUgaWQ9IuakreWchuW9ol83XyIgY2xhc3M9InN0MTEiIGN4PSIyMzguOCIgY3k9IjcxIiByPSI5LjUiLz4KCgkJCQkJPGxpbmVhckdyYWRpZW50IGlkPSJTVkdJRF8xXyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSI5NzYuMDc5IiB5MT0iLTI1LjMzMzQiIHgyPSI5NzYuMDc5IiB5Mj0iLTI0LjgyNDQiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMTkgMCAwIDE5IC0xODMwNi42OTkyIDU0Ny41KSI+CgkJCQkJPHN0b3AgIG9mZnNldD0iMCIgc3R5bGU9InN0b3AtY29sb3I6I0UxRTJFNiIvPgoJCQkJCTxzdG9wICBvZmZzZXQ9IjEiIHN0eWxlPSJzdG9wLWNvbG9yOiNGMEYyRjUiLz4KCQkJCTwvbGluZWFyR3JhZGllbnQ+CgkJCQk8cGF0aCBjbGFzcz0ic3QxMiIgZD0iTTIzOC44LDgxYy01LjUsMC0xMC00LjUtMTAtMTBzNC41LTEwLDEwLTEwczEwLDQuNSwxMCwxMFMyNDQuMyw4MSwyMzguOCw4MXogTTIzOC44LDYyYy01LDAtOSw0LTksOQoJCQkJCXM0LDksOSw5czktNCw5LTlTMjQzLjgsNjIsMjM4LjgsNjJ6Ii8+CgkJCTwvZz4KCQkJPGc+CgkJCQk8Y2lyY2xlIGlkPSLmpK3lnIblvaLlpIfku70tMTFfMV8iIGNsYXNzPSJzdDExIiBjeD0iMjM4LjgiIGN5PSI4OSIgcj0iMy41Ii8+CgoJCQkJCTxsaW5lYXJHcmFkaWVudCBpZD0iU1ZHSURfMl8iIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iODkzLjA3MTUiIHkxPSItNjkuMjA0OCIgeDI9Ijg5My4wNzE1IiB5Mj0iLTY4LjY1MjIiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoNyAwIDAgNyAtNjAxMi43MDAyIDU3MS41KSI+CgkJCQkJPHN0b3AgIG9mZnNldD0iMCIgc3R5bGU9InN0b3AtY29sb3I6I0UxRTJFNiIvPgoJCQkJCTxzdG9wICBvZmZzZXQ9IjEiIHN0eWxlPSJzdG9wLWNvbG9yOiNGMEYyRjUiLz4KCQkJCTwvbGluZWFyR3JhZGllbnQ+CgkJCQk8cGF0aCBjbGFzcz0ic3QxMyIgZD0iTTIzOC44LDkzYy0yLjIsMC00LTEuOC00LTRzMS44LTQsNC00czQsMS44LDQsNFMyNDEsOTMsMjM4LjgsOTN6IE0yMzguOCw4NmMtMS43LDAtMywxLjMtMywzczEuMywzLDMsMwoJCQkJCXMzLTEuMywzLTNTMjQwLjUsODYsMjM4LjgsODZ6Ii8+CgkJCTwvZz4KCgkJCQk8bGluZWFyR3JhZGllbnQgaWQ9IuW9oueKtue7k+WQiF8xNl8iIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iMTAwNC45ODExIiB5MT0iLTcwLjk3MDYiIHgyPSIxMDA1LjY4NTQiIHkyPSItNzAuOTcwNiIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCg0OCAwIDAgNi44IC00ODAxNy4xOTkyIDYyNC4wMDA0KSI+CgkJCQk8c3RvcCAgb2Zmc2V0PSIwIiBzdHlsZT0ic3RvcC1jb2xvcjojRTJFM0U2Ii8+CgkJCQk8c3RvcCAgb2Zmc2V0PSIwLjQ3NjYiIHN0eWxlPSJzdG9wLWNvbG9yOiNGQkZERkYiLz4KCQkJCTxzdG9wICBvZmZzZXQ9IjEiIHN0eWxlPSJzdG9wLWNvbG9yOiNFMkU0RTYiLz4KCQkJPC9saW5lYXJHcmFkaWVudD4KCQkJPHBhdGggaWQ9IuW9oueKtue7k+WQiF8xNF8iIGNsYXNzPSJzdDE0IiBkPSJNMjYyLjgsMTM4djIuNWMtMy45LDIuNS0xMy4yLDQuMy0yNCw0LjNzLTIwLjEtMS44LTI0LTQuM1YxMzhsMCwwCgkJCQljMC42LDIuOCwxMS4xLDUuNSwyNCw1LjVTMjYyLjIsMTQwLjgsMjYyLjgsMTM4TDI2Mi44LDEzOHoiLz4KCgkJCQk8bGluZWFyR3JhZGllbnQgaWQ9IuW9oueKtue7k+WQiOWkh+S7vS0yXzJfIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjEwMDQuOTgxMSIgeTE9Ii03MC45NzA2IiB4Mj0iMTAwNS42ODU0IiB5Mj0iLTcwLjk3MDYiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoNDggMCAwIDYuOCAtNDgwMTcuMTk5MiA2MjkuMDAwNCkiPgoJCQkJPHN0b3AgIG9mZnNldD0iMCIgc3R5bGU9InN0b3AtY29sb3I6I0UyRTNFNiIvPgoJCQkJPHN0b3AgIG9mZnNldD0iMC40NzY2IiBzdHlsZT0ic3RvcC1jb2xvcjojRkJGREZGIi8+CgkJCQk8c3RvcCAgb2Zmc2V0PSIxIiBzdHlsZT0ic3RvcC1jb2xvcjojRTJFNEU2Ii8+CgkJCTwvbGluZWFyR3JhZGllbnQ+CgkJCTxwYXRoIGlkPSLlvaLnirbnu5PlkIjlpIfku70tMl8xXyIgY2xhc3M9InN0MTUiIGQ9Ik0yNjIuOCwxNDN2Mi41Yy0zLjksMi41LTEzLjIsNC4zLTI0LDQuM3MtMjAuMS0xLjgtMjQtNC4zVjE0M2wwLDAKCQkJCWMwLjYsMi44LDExLjEsNS41LDI0LDUuNVMyNjIuMiwxNDUuOCwyNjIuOCwxNDNMMjYyLjgsMTQzeiIvPgoJCQk8cGF0aCBpZD0i5b2i54q257uT5ZCIXzhfIiBjbGFzcz0ic3QxNiIgZD0iTTI2Mi44LDczYzQzLjItOC42LDc3LjEtNi4zLDgwLjksNi43YzQuNiwxNS45LTM3LjQsNDEuOS05My42LDU4LjEKCQkJCXMtMTA1LjYsMTYuMy0xMTAuMiwwLjRjLTQtMTQuMSwyOC40LTM2LjEsNzQuOS01Mi4xdjEuMWMtNDUuOCwxNS45LTc3LjcsMzcuNS03My45LDUwLjhjNC4zLDE1LjEsNTMuMiwxNC45LDEwOC45LTEuMQoJCQkJczk3LjMtNDEuNyw5Mi45LTU2LjhjLTMuNS0xMi40LTM3LjItMTQuNS03OS45LTZWNzNMMjYyLjgsNzN6Ii8+CgkJCTxwYXRoIGlkPSLlvaLnirbnu5PlkIhfMV8iIGNsYXNzPSJzdDE2IiBkPSJNMTA1LjIsNzZjMy44LTE0LDUwLjctMTQsMTA5LjUtMS4xdjFjLTU4LjMtMTIuOC0xMDUtMTIuOS0xMDguNiwwLjMKCQkJCWMtNCwxNS4xLDQ5LjEsNDMuMiwxMTguNSw2MS44czEyOS41LDIwLjksMTMzLjYsNS44YzMuNi0xMy40LTM3LjctMzctOTUuNi01NS4xdi0xLjFjNTguNiwxOC4zLDEwMC4zLDQyLjIsOTYuNSw1Ni40CgkJCQljLTQuMywxNi02NC42LDEzLjctMTM0LjgtNS4xUzEwMSw5MiwxMDUuMiw3NnoiLz4KCQkJPGNpcmNsZSBpZD0i5qSt5ZyG5b2iXzZfIiBjbGFzcz0ic3QyIiBjeD0iMzE3LjgiIGN5PSIxMDkiIHI9IjIiLz4KCQkJPGNpcmNsZSBpZD0i5qSt5ZyG5b2iXzVfIiBjbGFzcz0ic3QyIiBjeD0iMTE3LjMiIGN5PSIxMjEuNSIgcj0iMS41Ii8+CgkJCTxjaXJjbGUgaWQ9IuakreWchuW9ol80XyIgY2xhc3M9InN0MiIgY3g9IjI4MS44IiBjeT0iNTgiIHI9IjEiLz4KCQkJPGNpcmNsZSBpZD0i5qSt5ZyG5b2iXzNfIiBjbGFzcz0ic3QyIiBjeD0iMTkxLjgiIGN5PSIxNjQiIHI9IjEiLz4KCQkJPGNpcmNsZSBpZD0i5qSt5ZyG5b2iXzFfIiBjbGFzcz0ic3QyIiBjeD0iMzUxLjgiIGN5PSIxNTAiIHI9IjIiLz4KCQk8L2c+Cgk8L2c+CjwvZz4KPC9zdmc+Cg==";
9991
9996
  var searchEmpty = "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDIyLjEuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IuWbvuWxgl8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIKCSB2aWV3Qm94PSIwIDAgNDgwIDI0MCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNDgwIDI0MDsiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLnN0MHtmaWxsOnVybCgjRmlsbC0xXzFfKTt9Cgkuc3Qxe2ZpbGw6I0M0QzZDQzt9Cgkuc3Qye2ZpbGw6dXJsKCPnn6nlvaItMl8xXyk7fQoJLnN0M3tmaWxsOnVybCgj55+p5b2iXzZfKTt9Cgkuc3Q0e2ZpbGw6I0RDREVFMDt9Cgkuc3Q1e2ZpbGw6I0QxRDNENjt9Cgkuc3Q2e2ZpbGw6dXJsKCPnn6nlvaItM18xXyk7fQoJLnN0N3tmaWxsOiNFNUU3RUM7fQoJLnN0OHtmaWxsOiNEQ0RERTA7fQoJLnN0OXtmaWxsOnVybCgj6Lev5b6ELTEzXzFfKTt9Cgkuc3QxMHtmaWxsOnVybCgj5qSt5ZyG5b2iXzNfKTtzdHJva2U6dXJsKCPmpK3lnIblvaJfNF8pO30KCS5zdDExe2ZpbGw6dXJsKCPmpK3lnIblvaJfNV8pO3N0cm9rZTp1cmwoI+akreWchuW9ol82Xyk7fQoJLnN0MTJ7ZmlsbDojRkZGRkZGO30KPC9zdHlsZT4KPGcgaWQ9Iumhtemdoi0xIj4KCTxnIGlkPSJFeGNlcHRpb25feDJGX+W8guW4uOaPkOekuiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTg2OS4wMDAwMDAsIC0yOTE4LjAwMDAwMCkiPgoJCTxnIGlkPSLmkJzntKLkuLrnqboiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDg2OS4wMDAwMDAsIDI5MTguMDAwMDAwKSI+CgkJCTxsaW5lYXJHcmFkaWVudCBpZD0iRmlsbC0xXzFfIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjI0My4wNDY0IiB5MT0iMTY3Ljk3OTMiIHgyPSIyNDUuODA3MSIgeTI9IjE5NC4yNDU2Ij4KCQkJCTxzdG9wICBvZmZzZXQ9IjAiIHN0eWxlPSJzdG9wLWNvbG9yOiNGQkZDRkQiLz4KCQkJCTxzdG9wICBvZmZzZXQ9IjEiIHN0eWxlPSJzdG9wLWNvbG9yOiNGMkY0RjciLz4KCQkJPC9saW5lYXJHcmFkaWVudD4KCQkJPHBhdGggaWQ9IkZpbGwtMSIgY2xhc3M9InN0MCIgZD0iTTE5My4xLDE3NC4yYzE0LjgtMy4zLDM2LTQuOCw1MC41LTQuMWMxNC40LDAuNywyNi40LDMuMywyNy4zLDIuN2MyLjktMS45LDktMi44LDguNy0yCgkJCQljLTAuMywwLjctNC4zLDMuMS0zLDMuNGMxLjMsMC40LDE0LjEsMS45LDE5LjUsM2M1LjMsMS4xLDguOCwyLjIsOS45LDIuMmMxLjIsMCwzLTEuNiwxMC43LTAuOGMwLjEsMC4zLTEuNywwLjQtMy40LDEuMwoJCQkJYy0xLjcsMC45LTMsMC44LTMsMXMxLTAuMywzLDFzNS41LDEuNyw1LjUsMnMtNC41LDEuOC0xMi0wLjZjLTEuOS0wLjYtNi4zLDQuNi0yNi44LDYuMXMtNTUsMi42LTU1LDIuNnMyLjEsMi43LDUuMSwzLjQKCQkJCWMwLjIsMC4zLTEuMiwxLjMtNy4xLDAuMmMtNS45LTEuMS05LTMuNi05LTMuNnMtMTEuNi0wLjctMTYtMS41Yy00LjQtMC43LTkuNC0yLjYtMTIuOS0zcy0xOS4yLTIuMi0xMy4yLTYuMwoJCQkJQzE3MiwxODEuMiwxNzguMywxNzcuNSwxOTMuMSwxNzQuMnoiLz4KCQkJPHBhdGggaWQ9IuW9oueKtue7k+WQiCIgY2xhc3M9InN0MSIgZD0iTTE5My4xLDE3Ny40djkuNGg5LjR2MS45aC0xMS4ydi0xMS4yTDE5My4xLDE3Ny40TDE5My4xLDE3Ny40eiIvPgoJCQk8cGF0aCBpZD0i5b2i54q257uT5ZCI5aSH5Lu9IiBjbGFzcz0ic3QxIiBkPSJNMjAwLjYsNjQuOWgtOS40djkuNGgtMS45di05LjRsMCwwVjYzaDExLjJMMjAwLjYsNjQuOUwyMDAuNiw2NC45eiIvPgoJCQk8cGF0aCBpZD0i5b2i54q257uT5ZCI5aSH5Lu9LTIiIGNsYXNzPSJzdDEiIGQ9Ik0yODguOCw3NC4ydi05LjRoLTkuNFY2M2g5LjRsMCwwaDEuOXYxMS4ySDI4OC44eiIvPgoKCQkJCTxsaW5lYXJHcmFkaWVudCBpZD0i55+p5b2iLTJfMV8iIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iNDExLjY3NjgiIHkxPSItMS42MDY2IiB4Mj0iNDExLjY3NjgiIHkyPSItMC42NzA3IiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDg2LjI1IDAgMCAxMDguNzUgLTM1MjY3LjEyNSAyNDYuNSkiPgoJCQkJPHN0b3AgIG9mZnNldD0iMCIgc3R5bGU9InN0b3AtY29sb3I6I0VCRURGMDtzdG9wLW9wYWNpdHk6MC45OTE3Ii8+CgkJCQk8c3RvcCAgb2Zmc2V0PSIxIiBzdHlsZT0ic3RvcC1jb2xvcjojRTFFM0U2Ii8+CgkJCTwvbGluZWFyR3JhZGllbnQ+CgkJCTxwYXRoIGlkPSLnn6nlvaItMiIgY2xhc3M9InN0MiIgZD0iTTE5Ny45LDcwLjVoODQuMmMwLjYsMCwxLDAuNCwxLDF2MTA2LjhjMCwwLjYtMC40LDEtMSwxaC04NC4yYy0wLjYsMC0xLTAuNC0xLTFWNzEuNQoJCQkJQzE5Ni45LDcwLjksMTk3LjMsNzAuNSwxOTcuOSw3MC41eiIvPgoKCQkJCTxsaW5lYXJHcmFkaWVudCBpZD0i55+p5b2iXzZfIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjQxMC42NjE0IiB5MT0iLTEuODc3MyIgeDI9IjQxMC42NjE0IiB5Mj0iLTAuODg4OCIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCg3MS4yNSAwIDAgOTMuNzUgLTI5MDE5LjYyNSAyNTQpIj4KCQkJCTxzdG9wICBvZmZzZXQ9IjAiIHN0eWxlPSJzdG9wLWNvbG9yOiNGRkZGRkYiLz4KCQkJCTxzdG9wICBvZmZzZXQ9IjEiIHN0eWxlPSJzdG9wLWNvbG9yOiNGMkY0RjciLz4KCQkJPC9saW5lYXJHcmFkaWVudD4KCQkJPHJlY3QgaWQ9IuefqeW9ol8xXyIgeD0iMjA0LjQiIHk9Ijc4IiBjbGFzcz0ic3QzIiB3aWR0aD0iNzEuMiIgaGVpZ2h0PSI5My44Ii8+CgkJCTxyZWN0IGlkPSLnn6nlvaJfMl8iIHg9IjIxOS40IiB5PSI4MS44IiBjbGFzcz0ic3Q0IiB3aWR0aD0iNDEuMiIgaGVpZ2h0PSIxLjkiLz4KCQkJPHJlY3QgaWQ9IuefqeW9ol8zXyIgeD0iMjA0LjQiIHk9IjE3MS44IiBjbGFzcz0ic3Q1IiB3aWR0aD0iNzEuMiIgaGVpZ2h0PSIxLjkiLz4KCgkJCQk8bGluZWFyR3JhZGllbnQgaWQ9IuefqeW9oi0zXzFfIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjQwNi40MTUyIiB5MT0iLTExLjczMzQiIHgyPSI0MDYuNDE1MiIgeTI9Ii0xMC43NDEzIiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDQxLjI1IDAgMCAxNSAtMTY1MjQuNjI1IDI0Mi43NSkiPgoJCQkJPHN0b3AgIG9mZnNldD0iMCIgc3R5bGU9InN0b3AtY29sb3I6I0VERUZGMiIvPgoJCQkJPHN0b3AgIG9mZnNldD0iMSIgc3R5bGU9InN0b3AtY29sb3I6I0U4RUFFRCIvPgoJCQk8L2xpbmVhckdyYWRpZW50PgoJCQk8cmVjdCBpZD0i55+p5b2iLTMiIHg9IjIxOS40IiB5PSI2Ni44IiBjbGFzcz0ic3Q2IiB3aWR0aD0iNDEuMiIgaGVpZ2h0PSIxNSIvPgoJCQk8ZyBpZD0i57yW57uELTMiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDIyMy4xMjUwMDAsIDk4LjYyNTAwMCkiPgoJCQkJPHJlY3QgaWQ9IuefqeW9ol80XyIgY2xhc3M9InN0MSIgd2lkdGg9IjMuOCIgaGVpZ2h0PSIxLjkiLz4KCQkJCTxyZWN0IGlkPSLnn6nlvaLlpIfku70iIHg9IjcuNSIgY2xhc3M9InN0MSIgd2lkdGg9IjMuOCIgaGVpZ2h0PSIxLjkiLz4KCQkJCTxyZWN0IGlkPSLnn6nlvaLlpIfku70tMiIgeD0iMTUiIGNsYXNzPSJzdDEiIHdpZHRoPSIzLjgiIGhlaWdodD0iMS45Ii8+CgkJCQk8cmVjdCBpZD0i55+p5b2i5aSH5Lu9LTMiIHg9IjIyLjUiIGNsYXNzPSJzdDEiIHdpZHRoPSIzLjgiIGhlaWdodD0iMS45Ii8+CgkJCQk8cmVjdCBpZD0i55+p5b2i5aSH5Lu9LTQiIHg9IjMwIiBjbGFzcz0ic3QxIiB3aWR0aD0iMy44IiBoZWlnaHQ9IjEuOSIvPgoJCQk8L2c+CgkJCTxnIGlkPSLnvJbnu4QtNiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjI4Ljc1MDAwMCwgMTEzLjYyNTAwMCkiPgoJCQkJPGNpcmNsZSBpZD0i5qSt5ZyG5b2iIiBjbGFzcz0ic3Q3IiBjeD0iMjQuNCIgY3k9IjI2LjIiIHI9IjI0LjQiLz4KCQkJCTxwYXRoIGlkPSLot6/lvoQtMTIiIGNsYXNzPSJzdDciIGQ9Ik0zOSw0NWwzLjEsMy4yYy0wLjYsMC44LTAuNiwxLjUsMCwyLjJzMi4yLDIuNSw0LjcsNS4zdi03LjVsLTYuMS01TDM5LDQ1eiIvPgoKCQkJCQk8ZyBpZD0i57yW57uELTQiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDUwLjIyNjMxNywgNTEuNzA5MDc3KSByb3RhdGUoLTQ1LjAwMDAwMCkgdHJhbnNsYXRlKC01MC4yMjYzMTcsIC01MS43MDkwNzcpIHRyYW5zbGF0ZSg0NC42MDEzMTcsIDM2LjcwOTA3NykiPgoKCQkJCQkJPHJlY3QgaWQ9IuefqeW9ol81XyIgeD0iMy44IiB5PSIwIiB0cmFuc2Zvcm09Im1hdHJpeCgtMSA1LjA3MDM2M2UtMDYgLTUuMDcwMzYzZS0wNiAtMSAxMS40IDkuMzUpIiBjbGFzcz0ic3Q4IiB3aWR0aD0iMy43IiBoZWlnaHQ9IjkuNCIvPgoKCQkJCQkJPGxpbmVhckdyYWRpZW50IGlkPSLot6/lvoQtMTNfMV8iIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iLTEwOS4zOTE1IiB5MT0iLTU1LjkzODMiIHgyPSItMTA5LjU1NzgiIHkyPSItNTUuODkwNSIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCg5LjIxMjkgMCAwIDIyLjUgMTAxMy45Mjg1IDEyNzcuMjgxKSI+CgkJCQkJCTxzdG9wICBvZmZzZXQ9IjAiIHN0eWxlPSJzdG9wLWNvbG9yOiNEN0Q4REIiLz4KCQkJCQkJPHN0b3AgIG9mZnNldD0iMSIgc3R5bGU9InN0b3AtY29sb3I6I0JFQkZDMiIvPgoJCQkJCTwvbGluZWFyR3JhZGllbnQ+CgkJCQkJPHBhdGggaWQ9Iui3r+W+hC0xMyIgY2xhc3M9InN0OSIgZD0iTTMuNyw1LjdoNGMwLjUsMCwxLDAuNCwxLDAuOWwxLjUsMjAuNWMwLDAuNi0wLjQsMS0wLjksMS4xYzAsMCwwLDAtMC4xLDBIMgoJCQkJCQljLTAuNiwwLTEtMC40LTEtMXYtMC4xTDIuNyw2LjZDMi43LDYuMSwzLjIsNS43LDMuNyw1Ljd6Ii8+CgkJCQk8L2c+CgkJCQk8ZyBpZD0i57yW57uELTUiPgoKCQkJCQkJPGxpbmVhckdyYWRpZW50IGlkPSLmpK3lnIblvaJfM18iIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iLTQ5LjcxMTUiIHkxPSItMy42ODU5IiB4Mj0iLTQ5LjcxMTUiIHkyPSItMi42ODU5IiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDQ3Ljc1IDAgMCA0Ny43NSAyMzk4LjEyNSAxNzYuNSkiPgoJCQkJCQk8c3RvcCAgb2Zmc2V0PSIxLjUzMDgyOGUtMDMiIHN0eWxlPSJzdG9wLWNvbG9yOiNERERFRTAiLz4KCQkJCQkJPHN0b3AgIG9mZnNldD0iMC45OTgiIHN0eWxlPSJzdG9wLWNvbG9yOiNDM0M1QzciLz4KCQkJCQk8L2xpbmVhckdyYWRpZW50PgoKCQkJCQkJPGxpbmVhckdyYWRpZW50IGlkPSLmpK3lnIblvaJfNF8iIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iLTQ5LjcxMTUiIHkxPSItMy42ODU4IiB4Mj0iLTQ5LjcxMTUiIHkyPSItMi43MDU0IiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDQ3Ljc1IDAgMCA0Ny43NSAyMzk4LjEyNSAxNzYuNSkiPgoJCQkJCQk8c3RvcCAgb2Zmc2V0PSIwIiBzdHlsZT0ic3RvcC1jb2xvcjojRERERUUwIi8+CgkJCQkJCTxzdG9wICBvZmZzZXQ9IjEiIHN0eWxlPSJzdG9wLWNvbG9yOiNCRUMwQzIiLz4KCQkJCQk8L2xpbmVhckdyYWRpZW50PgoJCQkJCTxjaXJjbGUgaWQ9IuakreWchuW9ol8xXyIgY2xhc3M9InN0MTAiIGN4PSIyNC40IiBjeT0iMjQuNCIgcj0iMjMuOSIvPgoKCQkJCQkJPGxpbmVhckdyYWRpZW50IGlkPSLmpK3lnIblvaJfNV8iIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iLTUyLjM5NjYiIHkxPSItNC44MjIiIHgyPSItNTIuMzk2NiIgeTI9Ii0zLjgzOCIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgzNi41IDAgMCAzNi41IDE5MzYuODc1IDE4Mi4xMjUpIj4KCQkJCQkJPHN0b3AgIG9mZnNldD0iMCIgc3R5bGU9InN0b3AtY29sb3I6I0ZFRkVGRSIvPgoJCQkJCQk8c3RvcCAgb2Zmc2V0PSIxIiBzdHlsZT0ic3RvcC1jb2xvcjojRjJGNEY3Ii8+CgkJCQkJPC9saW5lYXJHcmFkaWVudD4KCgkJCQkJCTxsaW5lYXJHcmFkaWVudCBpZD0i5qSt5ZyG5b2iXzZfIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9Ii01Mi4zOTY2IiB5MT0iLTQuODIyIiB4Mj0iLTUyLjM5NjYiIHkyPSItMy44Mzk4IiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDM2LjUgMCAwIDM2LjUgMTkzNi44NzUgMTgyLjEyNSkiPgoJCQkJCQk8c3RvcCAgb2Zmc2V0PSIwIiBzdHlsZT0ic3RvcC1jb2xvcjojRjNGNEY1Ii8+CgkJCQkJCTxzdG9wICBvZmZzZXQ9IjEiIHN0eWxlPSJzdG9wLWNvbG9yOiNGM0Y1RjciLz4KCQkJCQk8L2xpbmVhckdyYWRpZW50PgoJCQkJCTxjaXJjbGUgaWQ9IuakreWchuW9ol8yXyIgY2xhc3M9InN0MTEiIGN4PSIyNC40IiBjeT0iMjQuNCIgcj0iMTguMiIvPgoJCQkJCTxwYXRoIGlkPSLlvaLnirbnu5PlkIhfMV8iIGNsYXNzPSJzdDEyIiBkPSJNMjMuNSwxMi4zYzUuOCwwLDEwLjksMy4zLDEzLjQsOC4yYy0yLjUtMS42LTUuNS0yLjYtOC43LTIuNmMtNCwwLTcuNywxLjUtMTAuNSw0CgkJCQkJCUwxNCwxNS43QzE2LjYsMTMuNiwxOS45LDEyLjMsMjMuNSwxMi4zeiIvPgoJCQkJPC9nPgoJCQkJPHBvbHlnb24gaWQ9Iui3r+W+hC0xNCIgY2xhc3M9InN0NSIgcG9pbnRzPSI0Ni45LDUzLjQgNDYuOSw1NS42IDU0LjQsNjQuNCA1NC40LDYyLjMgCQkJCSIvPgoJCQk8L2c+CgkJPC9nPgoJPC9nPgo8L2c+Cjwvc3ZnPgo=";
9992
- var Component$o = defineComponent({
9997
+ var Component$p = defineComponent({
9993
9998
  name: "Exception",
9994
9999
  props: {
9995
10000
  type: PropTypes.commonType(["404", "403", "500", "building", "empty", "search-empty", "login"], "type").def("404"),
@@ -10033,8 +10038,8 @@ var Component$o = defineComponent({
10033
10038
  };
10034
10039
  }
10035
10040
  });
10036
- const BkException = withInstall(Component$o);
10037
- var Component$n = defineComponent({
10041
+ const BkException = withInstall(Component$p);
10042
+ var Component$o = defineComponent({
10038
10043
  name: "FixedNavbar",
10039
10044
  props: {
10040
10045
  navItems: PropTypes.array.def([]),
@@ -10075,8 +10080,8 @@ var Component$n = defineComponent({
10075
10080
  }, [item.text]) : ""]))]);
10076
10081
  }
10077
10082
  });
10078
- const BkFixedNavbar = withInstall(Component$n);
10079
- var Component$m = defineComponent({
10083
+ const BkFixedNavbar = withInstall(Component$o);
10084
+ var Component$n = defineComponent({
10080
10085
  name: "Link",
10081
10086
  props: {
10082
10087
  theme: PropTypes.theme(["danger", "success", "primary", "warning", "default"]).def("default"),
@@ -10113,7 +10118,7 @@ var Component$m = defineComponent({
10113
10118
  }, [createVNode("span", null, [(_b = (_a = this.$slots).default) == null ? void 0 : _b.call(_a)])]);
10114
10119
  }
10115
10120
  });
10116
- const BkLink = withInstall(Component$m);
10121
+ const BkLink = withInstall(Component$n);
10117
10122
  const placements = ["auto", "auto-start", "auto-end", "top", "top-start", "top-end", "bottom", "bottom-start", "bottom-end", "right", "right-start", "right-end", "left", "left-start", "left-end"];
10118
10123
  const EventProps$1 = {
10119
10124
  onAfterHidden: Function,
@@ -10146,6 +10151,7 @@ const PopoverProps = __spreadValues({
10146
10151
  ]),
10147
10152
  boundary: PropTypes.oneOfType([PropTypes.string.def("parent"), PropTypes.instanceOf(HTMLElement)]),
10148
10153
  fixOnBoundary: PropTypes.bool.def(false),
10154
+ zIndex: PropTypes.number.def(void 0),
10149
10155
  stopBehaviors: PropTypes.oneOfType([
10150
10156
  PropTypes.arrayOf(PropTypes.commonType([
10151
10157
  "stopPropagation",
@@ -10155,13 +10161,14 @@ const PopoverProps = __spreadValues({
10155
10161
  PropTypes.string
10156
10162
  ]).def([])
10157
10163
  }, EventProps$1);
10158
- var Component$l = defineComponent({
10164
+ var Component$m = defineComponent({
10159
10165
  name: "Popover",
10160
10166
  props: PopoverProps,
10161
10167
  emits: ["afterHidden", "afterShow", "update:isShow"],
10162
10168
  setup(props, ctx) {
10163
10169
  let isPopInstance = false;
10164
10170
  let popoverInstance = /* @__PURE__ */ Object.create(null);
10171
+ const localZIndex = ref(0);
10165
10172
  const {
10166
10173
  width,
10167
10174
  height,
@@ -10178,7 +10185,7 @@ var Component$l = defineComponent({
10178
10185
  const compStyle = computed(() => ({
10179
10186
  width: /^\d+$/.test(String(width.value)) ? `${width.value}px` : width.value,
10180
10187
  height: /^\d+$/.test(String(height.value)) ? `${height.value}px` : height.value,
10181
- zIndex: bkZIndexManager.getModalNextIndex()
10188
+ zIndex: localZIndex.value
10182
10189
  }));
10183
10190
  const themeList = ["dark", "light"];
10184
10191
  const compTheme = computed(() => {
@@ -10194,7 +10201,12 @@ var Component$l = defineComponent({
10194
10201
  const handlePopShow = (val) => {
10195
10202
  var _a, _b;
10196
10203
  if (isPopInstance) {
10197
- val ? (_a = popoverInstance.show) == null ? void 0 : _a.call(popoverInstance) : (_b = popoverInstance.hide) == null ? void 0 : _b.call(popoverInstance);
10204
+ if (val) {
10205
+ localZIndex.value = typeof props.zIndex === "number" ? props.zIndex : bkZIndexManager.getModalNextIndex();
10206
+ (_a = popoverInstance.show) == null ? void 0 : _a.call(popoverInstance);
10207
+ return;
10208
+ }
10209
+ (_b = popoverInstance.hide) == null ? void 0 : _b.call(popoverInstance);
10198
10210
  }
10199
10211
  };
10200
10212
  watch(() => props.isShow, (val) => {
@@ -10299,7 +10311,7 @@ var Component$l = defineComponent({
10299
10311
  };
10300
10312
  }
10301
10313
  });
10302
- const BkPopover = withInstall(Component$l);
10314
+ const BkPopover = withInstall(Component$m);
10303
10315
  const Circle = (_2, {
10304
10316
  attrs,
10305
10317
  slots
@@ -10422,7 +10434,7 @@ const Line = (_2, {
10422
10434
  function _isSlot$4(s2) {
10423
10435
  return typeof s2 === "function" || Object.prototype.toString.call(s2) === "[object Object]" && !isVNode(s2);
10424
10436
  }
10425
- var Component$k = defineComponent({
10437
+ var Component$l = defineComponent({
10426
10438
  name: "Progress",
10427
10439
  props: {
10428
10440
  extCls: PropTypes.string,
@@ -10500,7 +10512,7 @@ var Component$k = defineComponent({
10500
10512
  return createVNode("div", progressProps, [progress2]);
10501
10513
  }
10502
10514
  });
10503
- const BkProgress = withInstall(Component$k);
10515
+ const BkProgress = withInstall(Component$l);
10504
10516
  const radioGroupKey = Symbol("RadioGroup");
10505
10517
  function useFocus$1() {
10506
10518
  const isFocused = ref(false);
@@ -10597,7 +10609,7 @@ const radioProps = {
10597
10609
  checked: PropTypes.bool.def(false),
10598
10610
  disabled: PropTypes.bool.def(false)
10599
10611
  };
10600
- var Component$j = defineComponent({
10612
+ var Component$k = defineComponent({
10601
10613
  name: "Radio",
10602
10614
  props: radioProps,
10603
10615
  emits: ["change", "update:modelValue"],
@@ -10758,7 +10770,7 @@ var RadioGroup = defineComponent({
10758
10770
  }, [(_a = this.$slots) == null ? void 0 : _a.default()]);
10759
10771
  }
10760
10772
  });
10761
- const BkRadio = withInstallProps(Component$j, { Group: RadioGroup, Button: RadioButton });
10773
+ const BkRadio = withInstallProps(Component$k, { Group: RadioGroup, Button: RadioButton });
10762
10774
  var star = defineComponent({
10763
10775
  name: "Star",
10764
10776
  props: {
@@ -10820,7 +10832,7 @@ var star = defineComponent({
10820
10832
  }, null)])])])])]))]);
10821
10833
  }
10822
10834
  });
10823
- var Component$i = defineComponent({
10835
+ var Component$j = defineComponent({
10824
10836
  name: "Rate",
10825
10837
  components: {
10826
10838
  star
@@ -10895,8 +10907,8 @@ var Component$i = defineComponent({
10895
10907
  }, commonAttrs), null)]]);
10896
10908
  }
10897
10909
  });
10898
- const BkRate = withInstall(Component$i);
10899
- var Component$h = defineComponent({
10910
+ const BkRate = withInstall(Component$j);
10911
+ var Component$i = defineComponent({
10900
10912
  name: "Swiper",
10901
10913
  props: {
10902
10914
  isLoop: PropTypes.bool.def(true),
@@ -11055,7 +11067,7 @@ var Component$h = defineComponent({
11055
11067
  }, null)])]);
11056
11068
  }
11057
11069
  });
11058
- const BkSwiper = withInstall(Component$h);
11070
+ const BkSwiper = withInstall(Component$i);
11059
11071
  const selectKey = Symbol("BkSelect");
11060
11072
  const optionGroupKey = Symbol("BkOptionGroup");
11061
11073
  function useFocus() {
@@ -11717,7 +11729,7 @@ function createPopperInstance(el, popper2, options) {
11717
11729
  }));
11718
11730
  }
11719
11731
  }
11720
- var Component$g = defineComponent({
11732
+ var Component$h = defineComponent({
11721
11733
  name: "Tag",
11722
11734
  props: {
11723
11735
  theme: PropTypes.theme(["success", "info", "warning", "danger"]).def(""),
@@ -11779,7 +11791,7 @@ var Component$g = defineComponent({
11779
11791
  }, null) : ""]);
11780
11792
  }
11781
11793
  });
11782
- const BkTag = withInstall(Component$g);
11794
+ const BkTag = withInstall(Component$h);
11783
11795
  var SelectTagInput = defineComponent({
11784
11796
  name: "SelectTagInput",
11785
11797
  props: {
@@ -11859,7 +11871,7 @@ var SelectTagInput = defineComponent({
11859
11871
  }, null), [[vModelText, this.value]]), (_d = (_c = this.$slots) == null ? void 0 : _c.suffix) == null ? void 0 : _d.call(_c)]);
11860
11872
  }
11861
11873
  });
11862
- var Component$f = defineComponent({
11874
+ var Component$g = defineComponent({
11863
11875
  name: "Select",
11864
11876
  directives: {
11865
11877
  clickoutside: ClickOutside
@@ -12378,7 +12390,7 @@ var Component$f = defineComponent({
12378
12390
  })]), [[resolveDirective("clickoutside"), this.handleClickOutside]]);
12379
12391
  }
12380
12392
  });
12381
- const BkSelect = withInstallProps(Component$f, { Option: BkOption, Group: OptionGroup });
12393
+ const BkSelect = withInstallProps(Component$g, { Option: BkOption, Group: OptionGroup });
12382
12394
  function _isSlot$3(s2) {
12383
12395
  return typeof s2 === "function" || Object.prototype.toString.call(s2) === "[object Object]" && !isVNode(s2);
12384
12396
  }
@@ -12388,7 +12400,7 @@ const {
12388
12400
  const sliderPops = Object.assign({}, propsMixin);
12389
12401
  sliderPops.width.default = "400";
12390
12402
  sliderPops.height.default = "100%";
12391
- var Component$e = defineComponent({
12403
+ var Component$f = defineComponent({
12392
12404
  name: "Sideslider",
12393
12405
  components: {
12394
12406
  BkModal,
@@ -12481,7 +12493,7 @@ var Component$e = defineComponent({
12481
12493
  };
12482
12494
  }
12483
12495
  });
12484
- const BkSideslider = withInstall(Component$e);
12496
+ const BkSideslider = withInstall(Component$f);
12485
12497
  const stepsProps = {
12486
12498
  theme: PropTypes.theme().def("primary"),
12487
12499
  size: PropTypes.size(),
@@ -12495,7 +12507,7 @@ const stepsProps = {
12495
12507
  steps: PropTypes.array.def([]),
12496
12508
  beforeChange: PropTypes.func
12497
12509
  };
12498
- var Component$d = defineComponent({
12510
+ var Component$e = defineComponent({
12499
12511
  name: "Steps",
12500
12512
  props: stepsProps,
12501
12513
  emits: ["update:curStep", "click"],
@@ -12631,8 +12643,8 @@ var Component$d = defineComponent({
12631
12643
  })]);
12632
12644
  }
12633
12645
  });
12634
- const BkSteps = withInstall(Component$d);
12635
- var Component$c = defineComponent({
12646
+ const BkSteps$1 = withInstall(Component$e);
12647
+ var Component$d = defineComponent({
12636
12648
  name: "Switcher",
12637
12649
  props: {
12638
12650
  theme: PropTypes.theme().def(""),
@@ -12729,7 +12741,7 @@ var Component$c = defineComponent({
12729
12741
  }, [isChecked.value ? props.onText : props.offText]) : ""]);
12730
12742
  }
12731
12743
  });
12732
- const BkSwitcher = withInstall(Component$c);
12744
+ const BkSwitcher = withInstall(Component$d);
12733
12745
  const EventProps = {
12734
12746
  onContentScroll: Function
12735
12747
  };
@@ -12866,7 +12878,7 @@ var virtualRender = {
12866
12878
  }
12867
12879
  }
12868
12880
  };
12869
- var Component$b = defineComponent({
12881
+ var Component$c = defineComponent({
12870
12882
  name: "VirtualRender",
12871
12883
  directives: {
12872
12884
  bkVirtualRender: virtualRender
@@ -13017,12 +13029,13 @@ var Component$b = defineComponent({
13017
13029
  };
13018
13030
  }
13019
13031
  });
13020
- const BkVirtualRender = withInstall(Component$b);
13032
+ const BkVirtualRender = withInstall(Component$c);
13021
13033
  const BORDER_OPRIONS = ["none", "row", "col", "outer"];
13022
13034
  var EVENTS$1 = /* @__PURE__ */ ((EVENTS2) => {
13023
13035
  EVENTS2["ON_SORT_BY_CLICK"] = "onSortByClick";
13024
13036
  EVENTS2["ON_FILTER_CLICK"] = "onFilterClick";
13025
13037
  EVENTS2["ON_SETTING_CHANGE"] = "onSettingChange";
13038
+ EVENTS2["ON_ROW_EXPAND_CLICK"] = "onRowExpandClick";
13026
13039
  return EVENTS2;
13027
13040
  })(EVENTS$1 || {});
13028
13041
  var EMITEVENTS = /* @__PURE__ */ ((EMITEVENTS2) => {
@@ -13031,6 +13044,7 @@ var EMITEVENTS = /* @__PURE__ */ ((EMITEVENTS2) => {
13031
13044
  EMITEVENTS2["COLUMN_FILTER"] = "columnFilter";
13032
13045
  EMITEVENTS2["ROW_CLICK"] = "rowClick";
13033
13046
  EMITEVENTS2["ROW_DBL_CLICK"] = "rowDblClick";
13047
+ EMITEVENTS2["ROW_EXPAND_CLICK"] = "rowExpand";
13034
13048
  EMITEVENTS2["PAGE_LIMIT_CHANGE"] = "pageLimitChange";
13035
13049
  EMITEVENTS2["PAGE_VALUE_CHANGE"] = "pageValueChange";
13036
13050
  EMITEVENTS2["SETTING_CHANGE"] = "settingChange";
@@ -13044,514 +13058,128 @@ const EMIT_EVENT_TYPES = {
13044
13058
  ["columnSort"]: EMPTY$1,
13045
13059
  ["rowClick"]: EMPTY$1,
13046
13060
  ["rowDblClick"]: EMPTY$1,
13061
+ ["rowExpand"]: EMPTY$1,
13047
13062
  ["pageLimitChange"]: EMPTY$1,
13048
13063
  ["pageValueChange"]: EMPTY$1,
13049
13064
  ["settingChange"]: EMPTY$1,
13050
13065
  ["scrollBottom"]: EMPTY$1
13051
13066
  };
13052
- const resolvePropVal = (prop, key, args) => {
13053
- if (Object.prototype.hasOwnProperty.call(prop, key)) {
13054
- if (typeof prop[key] === "function") {
13055
- return prop[key].call(globalThis, ...args);
13056
- }
13057
- return prop[key];
13058
- }
13059
- return void 0;
13060
- };
13061
- const resolveNumberToNumArray = (prop) => {
13062
- if (/^\d+$/.test(`${prop}`)) {
13063
- return [parseInt(`${prop}`, 10)];
13064
- }
13065
- return [];
13066
- };
13067
- const resolveWidth = (propWidth) => resolveNumberOrStringToPix(propWidth, "auto");
13068
- const resolveNumberOrStringToPix = (val, defaultValue = "100%", offset2 = null) => {
13069
- let target = "";
13070
- if (/^auto|null|undefined$/ig.test(`${val}`)) {
13071
- target = defaultValue;
13072
- } else {
13073
- target = /^\d+\.?\d+$/.test(`${val}`) ? `${val}px` : val;
13074
- }
13075
- if (offset2) {
13076
- target = `calc(${target} - ${offset2})`;
13077
- }
13078
- return target;
13067
+ const TABLE_ROW_ATTRIBUTE = {
13068
+ ROW_INDEX: "__$table_row_index",
13069
+ ROW_UID: "__$uuid",
13070
+ ROW_EXPAND: "__row_expand"
13079
13071
  };
13080
- const resolvePropBorderToClassStr = (val) => {
13081
- const defaultVal = ["row"];
13082
- if (typeof val === "string") {
13083
- defaultVal.push(val);
13084
- }
13085
- if (Array.isArray(val)) {
13086
- defaultVal.push(...val.filter((str) => BORDER_OPRIONS.includes(str)));
13072
+ const resolvePaginationOption = (propPagination, defVal) => {
13073
+ if (!!propPagination) {
13074
+ if (typeof propPagination === "object") {
13075
+ let current = Object.prototype.hasOwnProperty.call(propPagination, "current") ? propPagination.current : propPagination.value;
13076
+ if (!/\d+/.test(current)) {
13077
+ current = 1;
13078
+ }
13079
+ return __spreadProps(__spreadValues(__spreadValues({}, defVal), propPagination), {
13080
+ current
13081
+ });
13082
+ }
13083
+ return defVal;
13087
13084
  }
13088
- return [...new Set(defaultVal)].map((item) => `bordered-${item}`).join(" ");
13089
- };
13090
- const getColumnReactWidth = (colmun, orders = ["resizeWidth", "calcWidth", "width"]) => {
13091
- var _a, _b;
13092
- return (_b = (_a = colmun[orders[0]]) != null ? _a : colmun[orders[1]]) != null ? _b : colmun[orders[2]];
13085
+ return {};
13093
13086
  };
13094
- const resolveColumnWidth = (root, colgroups, autoWidth = 20) => {
13095
- const {
13096
- width
13097
- } = root.getBoundingClientRect() || {};
13098
- let avgWidth = width - 4;
13099
- const avgColIndexList = [];
13100
- const getMinWidth = (col, computedWidth) => {
13101
- const {
13102
- minWidth = void 0
13103
- } = col;
13104
- if (minWidth === void 0) {
13105
- return computedWidth;
13106
- }
13107
- let calcMinWidth = computedWidth;
13108
- if (/^\d+\.?\d*$/.test(`${minWidth}`)) {
13109
- calcMinWidth = Number(minWidth);
13110
- }
13111
- if (/^\d+\.?\d*%$/.test(`${minWidth}`)) {
13112
- calcMinWidth = Number(minWidth) * width / 100;
13113
- }
13114
- if (/^\d+\.?\d*px$/i.test(`${minWidth}`)) {
13115
- calcMinWidth = Number(`${minWidth}`.replace(/px/i, ""));
13087
+ var userPagination = (props, indexData) => {
13088
+ const startIndex = ref(0);
13089
+ const endIndex = ref(0);
13090
+ let pagination2 = reactive({
13091
+ count: 0,
13092
+ limit: 10,
13093
+ current: 1
13094
+ });
13095
+ pagination2 = resolvePaginationOption(props.pagination, pagination2);
13096
+ const localPagination = ref(null);
13097
+ const resetStartEndIndex = () => {
13098
+ if (!props.pagination || props.remotePagination) {
13099
+ startIndex.value = 0;
13100
+ endIndex.value = props.data.length;
13101
+ return;
13116
13102
  }
13117
- return calcMinWidth;
13103
+ startIndex.value = (pagination2.current - 1) * pagination2.limit;
13104
+ endIndex.value = pagination2.current * pagination2.limit;
13118
13105
  };
13119
- const resolveColNumberWidth = (col, numWidth, resetAvgWidth = true) => {
13120
- const minWidth = getMinWidth(col, numWidth);
13121
- const computedWidth = numWidth < minWidth ? minWidth : numWidth;
13122
- Object.assign(col, {
13123
- calcWidth: computedWidth
13124
- });
13125
- if (resetAvgWidth) {
13126
- avgWidth = avgWidth - computedWidth;
13127
- if (avgWidth < 0) {
13128
- avgWidth = 0;
13129
- }
13106
+ const pageData = reactive([]);
13107
+ const sort = (sortFn) => {
13108
+ if (typeof sortFn === "function") {
13109
+ pageData.sort(sortFn);
13130
13110
  }
13131
13111
  };
13132
- colgroups.forEach((col, index) => {
13133
- if (!col.isHidden) {
13134
- const colWidth = String(getColumnReactWidth(col));
13135
- let isAutoWidthCol = true;
13136
- if (/^\d+\.?\d*(px)?$/.test(colWidth)) {
13137
- const numWidth = Number(colWidth.replace("px", ""));
13138
- resolveColNumberWidth(col, numWidth);
13139
- isAutoWidthCol = false;
13140
- }
13141
- if (/^\d+\.?\d*%$/.test(colWidth)) {
13142
- let perWidth = autoWidth;
13143
- if (avgWidth > 0) {
13144
- const percent = Number(colWidth.replace("%", ""));
13145
- perWidth = avgWidth * percent / 100;
13146
- }
13147
- resolveColNumberWidth(col, perWidth);
13148
- isAutoWidthCol = false;
13149
- }
13150
- if (isAutoWidthCol) {
13151
- avgColIndexList.push(index);
13152
- }
13153
- }
13154
- });
13155
- if (avgColIndexList.length > 0) {
13156
- let autoAvgWidth = autoWidth;
13157
- if (avgWidth > 0) {
13158
- autoAvgWidth = avgWidth / avgColIndexList.length;
13159
- avgColIndexList.forEach((idx) => resolveColNumberWidth(colgroups[idx], autoAvgWidth, false));
13160
- }
13161
- }
13162
- };
13163
- const observerResize = (root, callbackFn, delay = 60, immediate = false) => {
13164
- const callFn = lodash.exports.throttle(() => {
13165
- if (typeof callbackFn === "function") {
13166
- callbackFn();
13112
+ const filter = (filterFn) => {
13113
+ if (typeof filterFn === "function") {
13114
+ const filterVals = pageData.filter((row, index) => filterFn(row, index, props.data));
13115
+ pageData.splice(0, pageData.length, ...filterVals);
13167
13116
  }
13168
- }, delay);
13169
- const resizeObserver = new ResizeObserver(() => {
13170
- callFn();
13171
- });
13172
- if (immediate) {
13173
- if (typeof callbackFn === "function") {
13174
- callbackFn();
13117
+ };
13118
+ const resolvePageData = (filterFn, sortFn) => {
13119
+ pageData.splice(0, pageData.length, ...indexData.slice(startIndex.value, endIndex.value));
13120
+ filter(filterFn);
13121
+ sort(sortFn);
13122
+ };
13123
+ const watchEffectFn = (filterFn, sortFn) => {
13124
+ pagination2 = resolvePaginationOption(props.pagination, pagination2);
13125
+ resolveLocalPagination();
13126
+ resetStartEndIndex();
13127
+ resolvePageData(filterFn, sortFn);
13128
+ };
13129
+ const resolveLocalPagination = () => {
13130
+ if (!props.pagination) {
13131
+ return;
13175
13132
  }
13176
- }
13133
+ localPagination.value = props.remotePagination ? pagination2 : __spreadProps(__spreadValues({}, pagination2), {
13134
+ count: props.data.length
13135
+ });
13136
+ };
13177
13137
  return {
13178
- start: () => {
13179
- resizeObserver.observe(root);
13180
- },
13181
- stop: () => {
13182
- resizeObserver.disconnect();
13183
- resizeObserver.unobserve(root);
13184
- }
13138
+ pageData,
13139
+ localPagination,
13140
+ resolvePageData,
13141
+ watchEffectFn
13185
13142
  };
13186
13143
  };
13187
- const resolveHeadConfig = (props) => {
13188
- const {
13189
- showHead,
13190
- headHeight,
13191
- thead = {}
13192
- } = props;
13193
- return Object.assign({}, {
13194
- isShow: showHead,
13195
- height: headHeight
13196
- }, __spreadValues({}, thead));
13197
- };
13198
- const getRowText = (row, key, column) => {
13199
- if (column.type === "index") {
13200
- return row.__$table_row_index;
13201
- }
13202
- return row[key];
13203
- };
13204
- const formatPropAsArray = (prop, args) => {
13205
- if (Array.isArray(prop)) {
13206
- return prop;
13207
- }
13208
- if (typeof prop === "string" || typeof prop === "object") {
13209
- return [prop];
13210
- }
13211
- if (typeof prop === "function") {
13212
- return formatPropAsArray(Reflect.apply(prop, globalThis, args), args);
13213
- }
13214
- return [];
13215
- };
13216
- const resolveActiveColumns = (props) => {
13217
- if (props.columnPick !== "disabled") {
13218
- if (props.columnPick === "multi") {
13219
- return Array.isArray(props.activeColumn) ? props.activeColumn : resolveNumberToNumArray(props.activeColumn);
13144
+ var useScrollLoading = (props, ctx) => {
13145
+ const refScrollLoading = toRef(props, "scrollLoading");
13146
+ const getLoadingOption = () => {
13147
+ if (typeof refScrollLoading.value === "boolean") {
13148
+ return {
13149
+ loading: !!refScrollLoading.value,
13150
+ inline: true,
13151
+ title: "",
13152
+ size: BkLoadingSize.Normal,
13153
+ mode: BkLoadingMode.Default,
13154
+ indicator: null
13155
+ };
13220
13156
  }
13221
- return Array.isArray(props.activeColumn) ? resolveNumberToNumArray(props.activeColumn[0]) : resolveNumberToNumArray(props.activeColumn);
13222
- }
13223
- return [];
13224
- };
13225
- var useActiveColumns = (props) => {
13226
- let activeColumns = reactive([]);
13227
- if (props.columnPick === "disabled") {
13228
- return {
13229
- activeColumns
13230
- };
13231
- }
13232
- const activeCols = reactive(resolveActiveColumns(props));
13233
- const getActiveColumns = () => (props.columns || []).map((_column, index) => ({
13234
- index,
13235
- active: activeCols.some((colIndex) => colIndex === index),
13236
- _column
13237
- }));
13238
- watchEffect(() => {
13239
- activeColumns = getActiveColumns();
13240
- const cols = resolveActiveColumns(props);
13241
- activeColumns.forEach((col, index) => {
13242
- Object.assign(col, {
13243
- active: cols.some((colIndex) => colIndex === index)
13244
- });
13245
- });
13246
- });
13247
- return {
13248
- activeColumns
13249
- };
13250
- };
13251
- var useColumnResize = (colgroups, immediate = true) => {
13252
- const pluginName = "HeadColumnResize";
13253
- let EVENTS2;
13254
- (function(EVENTS3) {
13255
- EVENTS3["MOUSE_MOVE"] = "onMousemove";
13256
- EVENTS3["MOUSE_OUT"] = "onMouseout";
13257
- EVENTS3["MOUSE_DOWN"] = "onMousedown";
13258
- })(EVENTS2 || (EVENTS2 = {}));
13259
- let isInDragSection = false;
13260
- let isMouseDown = false;
13261
- let isDraging = false;
13262
- let startX = 0;
13263
- let dragColumn = null;
13264
- let dragStartOffsetX = 0;
13265
- const dragOffsetX = ref(-1e3);
13266
- const handleMouseUp = (e) => {
13267
- var _a;
13268
- isMouseDown = false;
13269
- isDraging = false;
13270
- const bodyStyle = document.body.style;
13271
- bodyStyle.cursor = "";
13272
- const diff = e.clientX - startX;
13273
- dragColumn.resizeWidth = ((_a = dragColumn.resizeWidth) != null ? _a : dragColumn.calcWidth) + diff;
13274
- document.removeEventListener("mouseup", handleMouseUp);
13275
- document.removeEventListener("mousemove", handleMouseMove);
13276
- startX = 0;
13277
- dragOffsetX.value = -1e3;
13278
- dragColumn = null;
13279
- const targetTable = e.target.closest("table");
13280
- targetTable.querySelectorAll("th").forEach((th) => th.style.setProperty("user-select", "inherit"));
13281
- };
13282
- const handleMouseMove = (e) => {
13283
- const bodyStyle = document.body.style;
13284
- bodyStyle.setProperty("cursor", "");
13285
- dragOffsetX.value = e.clientX - startX + dragStartOffsetX;
13157
+ return refScrollLoading.value;
13286
13158
  };
13287
- const handler = {
13288
- [EVENTS2.MOUSE_DOWN]: (e, column) => {
13289
- if (!isInDragSection) {
13290
- return;
13291
- }
13292
- isMouseDown = true;
13293
- const bodyStyle = document.body.style;
13294
- bodyStyle.setProperty("cursor", "col-resize");
13295
- dragColumn = column;
13296
- startX = e.clientX;
13297
- const targetTable = e.target.closest("table");
13298
- dragStartOffsetX = startX - targetTable.getBoundingClientRect().left;
13299
- document.addEventListener("mouseup", handleMouseUp);
13300
- document.addEventListener("mousemove", handleMouseMove);
13301
- },
13302
- [EVENTS2.MOUSE_MOVE]: (e, _column) => {
13303
- if (isMouseDown && !isDraging) {
13304
- isDraging = true;
13305
- }
13306
- const target = e.target.closest("th");
13307
- if (isDraging) {
13308
- target.style.setProperty("user-select", "none");
13309
- }
13310
- if (!isDraging) {
13311
- if (!target) {
13312
- return;
13313
- }
13314
- const rect = target.getBoundingClientRect();
13315
- if (rect.width > 12 && rect.right - e.pageX < 8) {
13316
- isInDragSection = true;
13317
- target.style.setProperty("cursor", "col-resize");
13318
- } else {
13319
- isInDragSection = false;
13320
- }
13321
- }
13322
- },
13323
- [EVENTS2.MOUSE_OUT]: (e, _column) => {
13324
- const target = e.target;
13325
- if (!isDraging) {
13326
- target.style.setProperty("cursor", "");
13327
- }
13159
+ const isRender = computed(() => refScrollLoading.value !== null && (typeof refScrollLoading.value === "boolean" && refScrollLoading.value || typeof refScrollLoading.value === "object"));
13160
+ const renderScrollLoading = () => {
13161
+ var _a, _b, _c;
13162
+ if (isRender.value) {
13163
+ const {
13164
+ loading: loading2,
13165
+ size,
13166
+ mode,
13167
+ title,
13168
+ inline,
13169
+ indicator
13170
+ } = getLoadingOption();
13171
+ return (_c = (_b = (_a = ctx.slots).fixedBottom) == null ? void 0 : _b.call(_a)) != null ? _c : createVNode(BkLoading, {
13172
+ loading: loading2,
13173
+ size,
13174
+ mode,
13175
+ title,
13176
+ inline,
13177
+ indicator
13178
+ }, null);
13328
13179
  }
13329
13180
  };
13330
- const getEventName = (event) => `${pluginName}_${event}`;
13331
- const registerResizeEvent = () => {
13332
- colgroups.forEach((col) => {
13333
- if (col.resizable !== false) {
13334
- Object.keys(handler).forEach((event) => {
13335
- const name = getEventName(event);
13336
- if (!col.listeners.has(name)) {
13337
- col.listeners.set(name, []);
13338
- }
13339
- col.listeners.get(name).push(handler[event]);
13340
- });
13341
- }
13342
- });
13343
- };
13344
- const resetResizeEvents = () => {
13345
- colgroups.forEach((col) => {
13346
- Object.keys(handler).forEach((event) => {
13347
- const name = getEventName(event);
13348
- if (col.listeners.has(name)) {
13349
- const listeners = col.listeners.get(name);
13350
- listeners.splice(0, listeners.length);
13351
- }
13352
- });
13353
- });
13354
- };
13355
- if (immediate) {
13356
- registerResizeEvent();
13357
- }
13358
- const dragOffsetXStyle = computed(() => ({
13359
- position: "absolute",
13360
- top: 0,
13361
- bottom: 0,
13362
- left: `${dragOffsetX.value}px`,
13363
- width: "1px",
13364
- "background-color": "#ebeef5"
13365
- }));
13366
13181
  return {
13367
- registerResizeEvent,
13368
- resetResizeEvents,
13369
- dragOffsetX,
13370
- dragOffsetXStyle
13371
- };
13372
- };
13373
- var useFixedColumn = (props, colgroups) => {
13374
- const footHeight = computed(() => props.pagination && props.data.length ? 40 : 0);
13375
- const resolveColumnClass = (column) => ({
13376
- column_fixed: !!column.fixed,
13377
- column_fixed_left: column.fixed !== "right",
13378
- column_fixed_right: column.fixed === "right"
13379
- });
13380
- const resolveFixColPos = (column) => column.fixed === "right" ? "right" : "left";
13381
- const resolveFixOffset = {
13382
- left: (ignoreFirst = true) => colgroups.filter((col) => col.fixed && col.fixed !== "right").reduce((offset2, curr, index) => {
13383
- const outOffset = ignoreFirst && index === 0 ? offset2 : offset2 + getColumnReactWidth(curr);
13384
- return outOffset;
13385
- }, 0),
13386
- right: (ignoreFirst = true) => colgroups.filter((col) => col.fixed === "right").reduce((offset2, curr, index) => {
13387
- const outOffset = ignoreFirst && index === 0 ? offset2 : offset2 + getColumnReactWidth(curr);
13388
- return outOffset;
13389
- }, 0)
13390
- };
13391
- const reolveFixRightOffset = resolveFixOffset.right;
13392
- const getFixedColumnStyleResolve = () => {
13393
- const resolveFixedColumnStyle = (column, fixedoffset2) => {
13394
- if (!column.fixed) {
13395
- return {};
13396
- }
13397
- const fixedPos = resolveFixColPos(column);
13398
- const opt = fixedPos === "right" ? -1 : 1;
13399
- const offsetX = `${fixedoffset2[fixedPos]}px`;
13400
- fixedoffset2[fixedPos] = fixedoffset2[fixedPos] + getColumnReactWidth(column) * opt;
13401
- return {
13402
- [fixedPos]: offsetX
13403
- };
13404
- };
13405
- const rightOffsetWidth = reolveFixRightOffset(true);
13406
- const fixedoffset = {
13407
- left: 0,
13408
- right: rightOffsetWidth
13409
- };
13410
- return {
13411
- fixedoffset,
13412
- resolveFixedColumnStyle
13413
- };
13414
- };
13415
- const renderFixedColumns = () => {
13416
- const resolveColumnStyle = (colPos) => ({
13417
- width: `${resolveFixOffset[colPos](false)}px`,
13418
- bottom: `${footHeight.value}px`
13419
- });
13420
- const colPosExist = {
13421
- left: false,
13422
- right: false
13423
- };
13424
- return colgroups.filter((col) => !col.isHidden && col.fixed).map((col) => {
13425
- const colPos = resolveFixColPos(col);
13426
- const isExist = colPosExist[colPos];
13427
- colPosExist[colPos] = true;
13428
- return isExist ? "" : createVNode("div", {
13429
- "class": resolveColumnClass(col),
13430
- "style": resolveColumnStyle(colPos)
13431
- }, null);
13432
- });
13433
- };
13434
- const fixedWrapperClass = resolveClassName("table-fixed");
13435
- return {
13436
- renderFixedColumns,
13437
- fixedWrapperClass,
13438
- getFixedColumnStyleResolve
13439
- };
13440
- };
13441
- const resolvePaginationOption = (propPagination, defVal) => {
13442
- if (!!propPagination) {
13443
- if (typeof propPagination === "object") {
13444
- let current = Object.prototype.hasOwnProperty.call(propPagination, "current") ? propPagination.current : propPagination.value;
13445
- if (!/\d+/.test(current)) {
13446
- current = 1;
13447
- }
13448
- return __spreadProps(__spreadValues(__spreadValues({}, defVal), propPagination), {
13449
- current
13450
- });
13451
- }
13452
- return defVal;
13453
- }
13454
- return {};
13455
- };
13456
- var userPagination = (props) => {
13457
- const startIndex = ref(0);
13458
- const endIndex = ref(0);
13459
- const indexData = computed(() => props.data.map((item, index) => __spreadProps(__spreadValues({}, item), {
13460
- __$table_row_index: index + 1
13461
- })));
13462
- let pagination2 = reactive({
13463
- count: 0,
13464
- limit: 10,
13465
- current: 1
13466
- });
13467
- pagination2 = resolvePaginationOption(props.pagination, pagination2);
13468
- const localPagination = ref(null);
13469
- const resetStartEndIndex = () => {
13470
- if (!props.pagination || props.remotePagination) {
13471
- startIndex.value = 0;
13472
- endIndex.value = props.data.length;
13473
- return;
13474
- }
13475
- startIndex.value = (pagination2.current - 1) * pagination2.limit;
13476
- endIndex.value = pagination2.current * pagination2.limit;
13477
- };
13478
- const pageData = reactive([]);
13479
- const sort = (sortFn) => {
13480
- if (typeof sortFn === "function") {
13481
- pageData.sort(sortFn);
13482
- }
13483
- };
13484
- const filter = (filterFn) => {
13485
- if (typeof filterFn === "function") {
13486
- const filterVals = pageData.filter((row, index) => filterFn(row, index, props.data));
13487
- pageData.splice(0, pageData.length, ...filterVals);
13488
- }
13489
- };
13490
- const resolvePageData = (filterFn, sortFn) => {
13491
- pageData.splice(0, pageData.length, ...indexData.value.slice(startIndex.value, endIndex.value));
13492
- filter(filterFn);
13493
- sort(sortFn);
13494
- };
13495
- const watchEffectFn = (filterFn, sortFn) => {
13496
- pagination2 = resolvePaginationOption(props.pagination, pagination2);
13497
- resolveLocalPagination();
13498
- resetStartEndIndex();
13499
- resolvePageData(filterFn, sortFn);
13500
- };
13501
- const resolveLocalPagination = () => {
13502
- if (!props.pagination) {
13503
- return;
13504
- }
13505
- localPagination.value = props.remotePagination ? pagination2 : __spreadProps(__spreadValues({}, pagination2), {
13506
- count: props.data.length
13507
- });
13508
- };
13509
- return {
13510
- pageData,
13511
- localPagination,
13512
- resolvePageData,
13513
- watchEffectFn
13514
- };
13515
- };
13516
- var useScrollLoading = (props, ctx) => {
13517
- const refScrollLoading = toRef(props, "scrollLoading");
13518
- const getLoadingOption = () => {
13519
- if (typeof refScrollLoading.value === "boolean") {
13520
- return {
13521
- loading: !!refScrollLoading.value,
13522
- inline: true,
13523
- title: "",
13524
- size: BkLoadingSize.Normal,
13525
- mode: BkLoadingMode.Default,
13526
- indicator: null
13527
- };
13528
- }
13529
- return refScrollLoading.value;
13530
- };
13531
- const isRender = computed(() => refScrollLoading.value !== null && (typeof refScrollLoading.value === "boolean" && refScrollLoading.value || typeof refScrollLoading.value === "object"));
13532
- const renderScrollLoading = () => {
13533
- var _a, _b, _c;
13534
- if (isRender.value) {
13535
- const {
13536
- loading: loading2,
13537
- size,
13538
- mode,
13539
- title,
13540
- inline,
13541
- indicator
13542
- } = getLoadingOption();
13543
- return (_c = (_b = (_a = ctx.slots).fixedBottom) == null ? void 0 : _b.call(_a)) != null ? _c : createVNode(BkLoading, {
13544
- loading: loading2,
13545
- size,
13546
- mode,
13547
- title,
13548
- inline,
13549
- indicator
13550
- }, null);
13551
- }
13552
- };
13553
- return {
13554
- renderScrollLoading
13182
+ renderScrollLoading
13555
13183
  };
13556
13184
  };
13557
13185
  var SortScope = /* @__PURE__ */ ((SortScope2) => {
@@ -13622,6 +13250,11 @@ const tableProps = {
13622
13250
  scrollLoading: PropTypes.oneOfType([
13623
13251
  PropTypes.object,
13624
13252
  PropTypes.bool
13253
+ ]).def(void 0),
13254
+ reserveExpand: PropTypes.bool.def(false),
13255
+ rowKey: PropTypes.oneOfType([
13256
+ PropTypes.string,
13257
+ PropTypes.func
13625
13258
  ]).def(void 0)
13626
13259
  };
13627
13260
  function _isSlot$2(s2) {
@@ -13702,386 +13335,703 @@ var useList = () => {
13702
13335
  }
13703
13336
  return stack;
13704
13337
  }
13705
- const pageItemsNumHalf = Math.floor(PAGE_ITEMS_NUM / 2);
13706
- if (proxy.totalPageNum > PAGE_ITEMS_NUM) {
13707
- showPreBatch.value = localCurrent.value - pageItemsNumHalf > 2;
13708
- showNextBatch.value = localCurrent.value + pageItemsNumHalf < proxy.totalPageNum - 1;
13338
+ const pageItemsNumHalf = Math.floor(PAGE_ITEMS_NUM / 2);
13339
+ if (proxy.totalPageNum > PAGE_ITEMS_NUM) {
13340
+ showPreBatch.value = localCurrent.value - pageItemsNumHalf > 2;
13341
+ showNextBatch.value = localCurrent.value + pageItemsNumHalf < proxy.totalPageNum - 1;
13342
+ }
13343
+ const start2 = Math.min(proxy.totalPageNum - PAGE_ITEMS_NUM, Math.max(2, localCurrent.value - pageItemsNumHalf));
13344
+ for (let i = start2; i < start2 + PAGE_ITEMS_NUM; i++) {
13345
+ stack.push(i);
13346
+ }
13347
+ return stack;
13348
+ });
13349
+ watch(() => proxy.modelValue, (modelValue) => {
13350
+ nextTick(() => {
13351
+ if (modelValue >= 1 && modelValue <= proxy.totalPageNum) {
13352
+ localCurrent.value = modelValue;
13353
+ } else if (modelValue < 1) {
13354
+ localCurrent.value = 1;
13355
+ } else {
13356
+ localCurrent.value = proxy.totalPageNum;
13357
+ }
13358
+ });
13359
+ }, {
13360
+ immediate: true
13361
+ });
13362
+ nextTick(() => {
13363
+ watch(() => proxy.totalPageNum, (totalPageNum) => {
13364
+ if (localCurrent.value > totalPageNum) {
13365
+ localCurrent.value = totalPageNum;
13366
+ }
13367
+ });
13368
+ });
13369
+ const handlePrePage = () => {
13370
+ if (isPagePreDisabled.value) {
13371
+ return;
13372
+ }
13373
+ localCurrent.value = localCurrent.value - 1;
13374
+ };
13375
+ const handleNextPage = () => {
13376
+ if (isPageNextDisabled.value) {
13377
+ return;
13378
+ }
13379
+ localCurrent.value = localCurrent.value + 1;
13380
+ };
13381
+ const handleItemClick = (totalPageNum) => {
13382
+ if (totalPageNum === localCurrent.value) {
13383
+ return;
13384
+ }
13385
+ localCurrent.value = totalPageNum;
13386
+ };
13387
+ const handlePreBatch = () => {
13388
+ localCurrent.value = Math.max(1, localCurrent.value - PAGE_ITEMS_NUM);
13389
+ };
13390
+ const handleNextBatch = () => {
13391
+ localCurrent.value = Math.min(proxy.totalPageNum, localCurrent.value + PAGE_ITEMS_NUM);
13392
+ };
13393
+ const render2 = ({
13394
+ isFirst,
13395
+ isLast
13396
+ }) => createVNode("div", {
13397
+ "class": {
13398
+ "bk-pagination-list": true,
13399
+ "is-first": isFirst,
13400
+ "is-last": isLast
13401
+ }
13402
+ }, [createVNode("div", {
13403
+ "class": {
13404
+ "bk-pagination-list-pre": true,
13405
+ "is-disabled": isPagePreDisabled.value
13406
+ },
13407
+ "onClick": handlePrePage
13408
+ }, [proxy.prevText || createVNode(angleLeft, null, null)]), createVNode("div", {
13409
+ "class": {
13410
+ "bk-pagination-list-item": true,
13411
+ "is-active": localCurrent.value === 1
13412
+ },
13413
+ "key": "1",
13414
+ "onClick": () => handleItemClick(1)
13415
+ }, [createTextVNode("1")]), showPreBatch.value && createVNode("div", {
13416
+ "key": "pre-batch",
13417
+ "class": "bk-pagination-list-pre-batch",
13418
+ "onClick": handlePreBatch
13419
+ }, [createVNode(ellipsis, null, null)]), list.value.map((num) => createVNode("div", {
13420
+ "class": {
13421
+ "bk-pagination-list-item": true,
13422
+ "is-active": localCurrent.value === num
13423
+ },
13424
+ "key": num,
13425
+ "onClick": () => handleItemClick(num)
13426
+ }, [num])), showNextBatch.value && createVNode("div", {
13427
+ "key": "next-batch",
13428
+ "class": "bk-pagination-list-next-batch",
13429
+ "onClick": handleNextBatch
13430
+ }, [createVNode(ellipsis, null, null)]), proxy.totalPageNum > 1 && createVNode("div", {
13431
+ "class": {
13432
+ "bk-pagination-list-item": true,
13433
+ "is-active": localCurrent.value === proxy.totalPageNum
13434
+ },
13435
+ "key": "last",
13436
+ "onClick": () => handleItemClick(proxy.totalPageNum)
13437
+ }, [proxy.totalPageNum]), createVNode("div", {
13438
+ "class": {
13439
+ "bk-pagination-list-pre": true,
13440
+ "is-disabled": isPageNextDisabled.value
13441
+ },
13442
+ "onClick": handleNextPage
13443
+ }, [proxy.nextText || createVNode(angleRight, null, null)])]);
13444
+ return {
13445
+ current: localCurrent,
13446
+ render: render2
13447
+ };
13448
+ };
13449
+ var useSmallList = () => {
13450
+ const {
13451
+ proxy
13452
+ } = getCurrentInstance();
13453
+ const inputRef = ref(null);
13454
+ const isFocused = ref(false);
13455
+ const localCurrent = ref(1);
13456
+ const isPagePreDisabled = computed(() => localCurrent.value === 1);
13457
+ const isPageNextDisabled = computed(() => localCurrent.value === proxy.totalPageNum);
13458
+ let inputMemo = 0;
13459
+ const list = computed(() => {
13460
+ const stack = [];
13461
+ for (let i = 1; i <= proxy.totalPageNum; i++) {
13462
+ stack.push(i);
13463
+ }
13464
+ return stack;
13465
+ });
13466
+ watch(() => proxy.modelValue, (modelValue) => {
13467
+ nextTick(() => {
13468
+ if (modelValue >= 1 && modelValue <= proxy.totalPageNum) {
13469
+ localCurrent.value = modelValue;
13470
+ } else if (modelValue < 1) {
13471
+ localCurrent.value = 1;
13472
+ } else {
13473
+ localCurrent.value = proxy.totalPageNum;
13474
+ }
13475
+ inputMemo = localCurrent.value;
13476
+ });
13477
+ }, {
13478
+ immediate: true
13479
+ });
13480
+ nextTick(() => {
13481
+ watch(() => proxy.totalPageNum, (totalPageNum) => {
13482
+ if (localCurrent.value > totalPageNum) {
13483
+ localCurrent.value = totalPageNum;
13484
+ }
13485
+ });
13486
+ });
13487
+ const handlePrePage = () => {
13488
+ if (isPagePreDisabled.value) {
13489
+ return;
13490
+ }
13491
+ localCurrent.value = localCurrent.value - 1;
13492
+ };
13493
+ const handleNextPage = () => {
13494
+ if (isPageNextDisabled.value) {
13495
+ return;
13496
+ }
13497
+ localCurrent.value = localCurrent.value + 1;
13498
+ };
13499
+ const handlePageEditorFocus = () => {
13500
+ isFocused.value = true;
13501
+ };
13502
+ const handlePageEditorBlur = () => {
13503
+ isFocused.value = false;
13504
+ inputRef.value.textContent = `${inputMemo}`;
13505
+ if (inputMemo !== localCurrent.value) {
13506
+ localCurrent.value = inputMemo;
13507
+ }
13508
+ };
13509
+ const handlePageEditorInput = (event) => {
13510
+ const $target = event.target;
13511
+ const value = Number($target.textContent);
13512
+ if (!value || value < 1 || value > proxy.totalPageNum || value === localCurrent.value) {
13513
+ return;
13514
+ }
13515
+ inputMemo = value;
13516
+ };
13517
+ const handlePageEditorKeydown = (event) => {
13518
+ if (["Enter", "NumpadEnter"].includes(event.code)) {
13519
+ event.preventDefault();
13520
+ handlePageEditorBlur();
13521
+ }
13522
+ };
13523
+ const handlePageChange = (item) => {
13524
+ inputMemo = item;
13525
+ handlePageEditorBlur();
13526
+ };
13527
+ const render2 = () => createVNode("div", {
13528
+ "class": "bk-pagination-small-list"
13529
+ }, [createVNode("div", {
13530
+ "class": {
13531
+ "bk-pagination-btn-pre": true,
13532
+ "is-disabled": isPagePreDisabled.value
13533
+ },
13534
+ "onClick": handlePrePage
13535
+ }, [createVNode(leftShape, null, null)]), createVNode(BkPopover, {
13536
+ "theme": "light",
13537
+ "trigger": "click",
13538
+ "arrow": false,
13539
+ "boundary": "body",
13540
+ "placement": "bottom"
13541
+ }, {
13542
+ default: () => createVNode("div", {
13543
+ "class": {
13544
+ "bk-pagination-picker": true,
13545
+ "is-focused": isFocused.value
13546
+ }
13547
+ }, [createVNode("span", {
13548
+ "ref": inputRef,
13549
+ "class": "bk-pagination-editor",
13550
+ "contenteditable": true,
13551
+ "spellcheck": "false",
13552
+ "onFocus": handlePageEditorFocus,
13553
+ "onBlur": handlePageEditorBlur,
13554
+ "onInput": handlePageEditorInput,
13555
+ "onKeydown": handlePageEditorKeydown
13556
+ }, [localCurrent.value]), createVNode("span", null, [createTextVNode("/")]), createVNode("span", {
13557
+ "class": "bk-pagination-small-list-total"
13558
+ }, [proxy.totalPageNum])]),
13559
+ content: () => createVNode("div", {
13560
+ "class": "bk-pagination-picker-list"
13561
+ }, [list.value.map((item) => createVNode("div", {
13562
+ "class": {
13563
+ item: true,
13564
+ "is-actived": item === localCurrent.value
13565
+ },
13566
+ "key": item,
13567
+ "onClick": () => handlePageChange(item)
13568
+ }, [item]))])
13569
+ }), createVNode("div", {
13570
+ "class": {
13571
+ "bk-pagination-btn-next": true,
13572
+ "is-disabled": isPageNextDisabled.value
13573
+ },
13574
+ "onClick": handleNextPage
13575
+ }, [createVNode(rightShape, null, null)])]);
13576
+ return {
13577
+ current: localCurrent,
13578
+ render: render2
13579
+ };
13580
+ };
13581
+ var useTotal = () => ({
13582
+ isFirst,
13583
+ isLast
13584
+ }) => {
13585
+ const {
13586
+ props
13587
+ } = getCurrentInstance();
13588
+ if (!props.showTotalCount) {
13589
+ return null;
13590
+ }
13591
+ return createVNode("div", mergeProps({
13592
+ "class": {
13593
+ "bk-pagination-total": true,
13594
+ "is-first": isFirst,
13595
+ "is-last": isLast
13596
+ }
13597
+ }, {
13598
+ disabled: props.disabled
13599
+ }), [createTextVNode("\u5171\u8BA1"), createVNode("div", {
13600
+ "class": "bk-pagination-total-num"
13601
+ }, [props.count]), createTextVNode("\u6761")]);
13602
+ };
13603
+ const paginationProps = {
13604
+ modelValue: PropTypes.number.def(1),
13605
+ count: PropTypes.number.def(0).isRequired,
13606
+ limit: PropTypes.number.def(10),
13607
+ limitList: PropTypes.arrayOf(Number).def([10, 20, 50, 100]),
13608
+ showLimit: PropTypes.bool.def(true),
13609
+ type: PropTypes.oneOf(["default", "compact"]).def("default"),
13610
+ location: PropTypes.oneOf(["left", "right"]).def("right"),
13611
+ align: PropTypes.oneOf(["left", "center", "right"]).def("left"),
13612
+ size: PropTypes.size(),
13613
+ small: PropTypes.bool.def(false),
13614
+ showTotalCount: PropTypes.bool.def(true),
13615
+ prevText: PropTypes.string,
13616
+ nextText: PropTypes.string,
13617
+ disabled: PropTypes.bool.def(false),
13618
+ layout: PropTypes.custom((value) => {
13619
+ const layoutNameMap = {
13620
+ total: true,
13621
+ list: true,
13622
+ limit: true
13623
+ };
13624
+ return value.some((item) => layoutNameMap[item]);
13625
+ }, "layout \u7684\u503C\u53EA\u652F\u6301 * total\u3001list\u3001limit *").def(["total", "list", "limit"])
13626
+ };
13627
+ var Component$b = defineComponent({
13628
+ name: "Pagination",
13629
+ props: paginationProps,
13630
+ emits: ["update:modelValue", "change", "update:limit", "limitChange"],
13631
+ setup(props, context) {
13632
+ const totalPageNum = ref(0);
13633
+ const {
13634
+ count,
13635
+ limit
13636
+ } = toRefs(props);
13637
+ const renderTotal = useTotal();
13638
+ const {
13639
+ current: listCurrent,
13640
+ render: renderList
13641
+ } = useList();
13642
+ const {
13643
+ current: smallListCurrent,
13644
+ render: renderSmallList
13645
+ } = useSmallList();
13646
+ const {
13647
+ limit: localLimit,
13648
+ render: renderLimit
13649
+ } = useLimit();
13650
+ watch([count, localLimit, limit], ([count2, localLimit2]) => {
13651
+ const total = Math.ceil(count2 / localLimit2);
13652
+ totalPageNum.value = total < 1 ? 1 : total;
13653
+ }, {
13654
+ immediate: true
13655
+ });
13656
+ watch(listCurrent, (listCurrent2) => {
13657
+ context.emit("update:modelValue", listCurrent2);
13658
+ context.emit("change", listCurrent2);
13659
+ });
13660
+ watch(smallListCurrent, (smallListCurrent2) => {
13661
+ context.emit("update:modelValue", smallListCurrent2);
13662
+ context.emit("change", smallListCurrent2);
13663
+ });
13664
+ watch(localLimit, (localLimit2) => {
13665
+ context.emit("limitChange", localLimit2);
13666
+ });
13667
+ return {
13668
+ totalPageNum,
13669
+ renderTotal,
13670
+ renderList,
13671
+ renderLimit,
13672
+ renderSmallList
13673
+ };
13674
+ },
13675
+ render() {
13676
+ const paginationClass = classes({
13677
+ "bk-pagination": true,
13678
+ [`bk-pagination--${this.size}`]: true,
13679
+ [`is-align-${this.align}`]: true
13680
+ });
13681
+ const layoutMap = {
13682
+ total: this.renderTotal,
13683
+ list: this.small ? this.renderSmallList : this.renderList,
13684
+ limit: this.renderLimit
13685
+ };
13686
+ return createVNode("div", {
13687
+ "class": paginationClass
13688
+ }, [this.layout.map((layout, index) => layoutMap[layout]({
13689
+ isFirst: index === 0,
13690
+ isLast: index === this.layout.length - 1
13691
+ }))]);
13692
+ }
13693
+ });
13694
+ const BkPagination = withInstall(Component$b);
13695
+ var BodyEmpty = defineComponent({
13696
+ name: "BodyEmpty",
13697
+ props: {
13698
+ list: PropTypes.array.def([]),
13699
+ filterList: PropTypes.array.def([]),
13700
+ emptyText: PropTypes.string.def("\u6682\u65E0\u6570\u636E")
13701
+ },
13702
+ emits: ["change"],
13703
+ setup(props, {
13704
+ slots
13705
+ }) {
13706
+ const type = computed(() => props.list.length === 0 ? "empty" : "search-empty");
13707
+ return () => createVNode(BkException, {
13708
+ "scene": "part",
13709
+ "type": type.value
13710
+ }, {
13711
+ default: () => {
13712
+ var _a, _b;
13713
+ return [(_b = (_a = slots.default) == null ? void 0 : _a.call(slots)) != null ? _b : props.emptyText];
13714
+ }
13715
+ });
13716
+ }
13717
+ });
13718
+ var rngBrowser = { exports: {} };
13719
+ var getRandomValues = typeof crypto != "undefined" && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto != "undefined" && typeof window.msCrypto.getRandomValues == "function" && msCrypto.getRandomValues.bind(msCrypto);
13720
+ if (getRandomValues) {
13721
+ var rnds8 = new Uint8Array(16);
13722
+ rngBrowser.exports = function whatwgRNG() {
13723
+ getRandomValues(rnds8);
13724
+ return rnds8;
13725
+ };
13726
+ } else {
13727
+ var rnds = new Array(16);
13728
+ rngBrowser.exports = function mathRNG() {
13729
+ for (var i = 0, r2; i < 16; i++) {
13730
+ if ((i & 3) === 0)
13731
+ r2 = Math.random() * 4294967296;
13732
+ rnds[i] = r2 >>> ((i & 3) << 3) & 255;
13733
+ }
13734
+ return rnds;
13735
+ };
13736
+ }
13737
+ var byteToHex = [];
13738
+ for (var i = 0; i < 256; ++i) {
13739
+ byteToHex[i] = (i + 256).toString(16).substr(1);
13740
+ }
13741
+ function bytesToUuid$2(buf, offset2) {
13742
+ var i = offset2 || 0;
13743
+ var bth = byteToHex;
13744
+ return [
13745
+ bth[buf[i++]],
13746
+ bth[buf[i++]],
13747
+ bth[buf[i++]],
13748
+ bth[buf[i++]],
13749
+ "-",
13750
+ bth[buf[i++]],
13751
+ bth[buf[i++]],
13752
+ "-",
13753
+ bth[buf[i++]],
13754
+ bth[buf[i++]],
13755
+ "-",
13756
+ bth[buf[i++]],
13757
+ bth[buf[i++]],
13758
+ "-",
13759
+ bth[buf[i++]],
13760
+ bth[buf[i++]],
13761
+ bth[buf[i++]],
13762
+ bth[buf[i++]],
13763
+ bth[buf[i++]],
13764
+ bth[buf[i++]]
13765
+ ].join("");
13766
+ }
13767
+ var bytesToUuid_1 = bytesToUuid$2;
13768
+ var rng$1 = rngBrowser.exports;
13769
+ var bytesToUuid$1 = bytesToUuid_1;
13770
+ var _nodeId;
13771
+ var _clockseq;
13772
+ var _lastMSecs = 0;
13773
+ var _lastNSecs = 0;
13774
+ function v1$1(options, buf, offset2) {
13775
+ var i = buf && offset2 || 0;
13776
+ var b2 = buf || [];
13777
+ options = options || {};
13778
+ var node = options.node || _nodeId;
13779
+ var clockseq = options.clockseq !== void 0 ? options.clockseq : _clockseq;
13780
+ if (node == null || clockseq == null) {
13781
+ var seedBytes = rng$1();
13782
+ if (node == null) {
13783
+ node = _nodeId = [
13784
+ seedBytes[0] | 1,
13785
+ seedBytes[1],
13786
+ seedBytes[2],
13787
+ seedBytes[3],
13788
+ seedBytes[4],
13789
+ seedBytes[5]
13790
+ ];
13791
+ }
13792
+ if (clockseq == null) {
13793
+ clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 16383;
13794
+ }
13795
+ }
13796
+ var msecs = options.msecs !== void 0 ? options.msecs : new Date().getTime();
13797
+ var nsecs = options.nsecs !== void 0 ? options.nsecs : _lastNSecs + 1;
13798
+ var dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 1e4;
13799
+ if (dt < 0 && options.clockseq === void 0) {
13800
+ clockseq = clockseq + 1 & 16383;
13801
+ }
13802
+ if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === void 0) {
13803
+ nsecs = 0;
13804
+ }
13805
+ if (nsecs >= 1e4) {
13806
+ throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");
13807
+ }
13808
+ _lastMSecs = msecs;
13809
+ _lastNSecs = nsecs;
13810
+ _clockseq = clockseq;
13811
+ msecs += 122192928e5;
13812
+ var tl = ((msecs & 268435455) * 1e4 + nsecs) % 4294967296;
13813
+ b2[i++] = tl >>> 24 & 255;
13814
+ b2[i++] = tl >>> 16 & 255;
13815
+ b2[i++] = tl >>> 8 & 255;
13816
+ b2[i++] = tl & 255;
13817
+ var tmh = msecs / 4294967296 * 1e4 & 268435455;
13818
+ b2[i++] = tmh >>> 8 & 255;
13819
+ b2[i++] = tmh & 255;
13820
+ b2[i++] = tmh >>> 24 & 15 | 16;
13821
+ b2[i++] = tmh >>> 16 & 255;
13822
+ b2[i++] = clockseq >>> 8 | 128;
13823
+ b2[i++] = clockseq & 255;
13824
+ for (var n2 = 0; n2 < 6; ++n2) {
13825
+ b2[i + n2] = node[n2];
13826
+ }
13827
+ return buf ? buf : bytesToUuid$1(b2);
13828
+ }
13829
+ var v1_1 = v1$1;
13830
+ var rng = rngBrowser.exports;
13831
+ var bytesToUuid = bytesToUuid_1;
13832
+ function v4$1(options, buf, offset2) {
13833
+ var i = buf && offset2 || 0;
13834
+ if (typeof options == "string") {
13835
+ buf = options === "binary" ? new Array(16) : null;
13836
+ options = null;
13837
+ }
13838
+ options = options || {};
13839
+ var rnds = options.random || (options.rng || rng)();
13840
+ rnds[6] = rnds[6] & 15 | 64;
13841
+ rnds[8] = rnds[8] & 63 | 128;
13842
+ if (buf) {
13843
+ for (var ii = 0; ii < 16; ++ii) {
13844
+ buf[i + ii] = rnds[ii];
13845
+ }
13846
+ }
13847
+ return buf || bytesToUuid(rnds);
13848
+ }
13849
+ var v4_1 = v4$1;
13850
+ var v1 = v1_1;
13851
+ var v4 = v4_1;
13852
+ var uuid = v4;
13853
+ uuid.v1 = v1;
13854
+ uuid.v4 = v4;
13855
+ var uuid_1 = uuid;
13856
+ const resolvePropVal = (prop, key, args) => {
13857
+ if (Object.prototype.hasOwnProperty.call(prop, key)) {
13858
+ if (typeof prop[key] === "function") {
13859
+ return prop[key].call(globalThis, ...args);
13709
13860
  }
13710
- const start2 = Math.min(proxy.totalPageNum - PAGE_ITEMS_NUM, Math.max(2, localCurrent.value - pageItemsNumHalf));
13711
- for (let i = start2; i < start2 + PAGE_ITEMS_NUM; i++) {
13712
- stack.push(i);
13861
+ return prop[key];
13862
+ }
13863
+ return void 0;
13864
+ };
13865
+ const resolveNumberToNumArray = (prop) => {
13866
+ if (/^\d+$/.test(`${prop}`)) {
13867
+ return [parseInt(`${prop}`, 10)];
13868
+ }
13869
+ return [];
13870
+ };
13871
+ const resolveWidth = (propWidth) => resolveNumberOrStringToPix(propWidth, "auto");
13872
+ const resolveNumberOrStringToPix = (val, defaultValue = "100%", offset2 = null) => {
13873
+ let target = "";
13874
+ if (/^auto|null|undefined$/ig.test(`${val}`)) {
13875
+ target = defaultValue;
13876
+ } else {
13877
+ target = /^\d+\.?\d+$/.test(`${val}`) ? `${val}px` : val;
13878
+ }
13879
+ if (offset2) {
13880
+ target = `calc(${target} - ${offset2})`;
13881
+ }
13882
+ return target;
13883
+ };
13884
+ const resolvePropBorderToClassStr = (val) => {
13885
+ const defaultVal = ["row"];
13886
+ if (typeof val === "string") {
13887
+ defaultVal.push(val);
13888
+ }
13889
+ if (Array.isArray(val)) {
13890
+ defaultVal.push(...val.filter((str) => BORDER_OPRIONS.includes(str)));
13891
+ }
13892
+ return [...new Set(defaultVal)].map((item) => `bordered-${item}`).join(" ");
13893
+ };
13894
+ const getColumnReactWidth = (colmun, orders = ["resizeWidth", "calcWidth", "width"]) => {
13895
+ var _a, _b;
13896
+ return (_b = (_a = colmun[orders[0]]) != null ? _a : colmun[orders[1]]) != null ? _b : colmun[orders[2]];
13897
+ };
13898
+ const resolveColumnWidth = (root, colgroups, autoWidth = 20) => {
13899
+ const {
13900
+ width
13901
+ } = root.getBoundingClientRect() || {};
13902
+ let avgWidth = width - 4;
13903
+ const avgColIndexList = [];
13904
+ const getMinWidth = (col, computedWidth) => {
13905
+ const {
13906
+ minWidth = void 0
13907
+ } = col;
13908
+ if (minWidth === void 0) {
13909
+ return computedWidth;
13713
13910
  }
13714
- return stack;
13715
- });
13716
- watch(() => proxy.modelValue, (modelValue) => {
13717
- nextTick(() => {
13718
- if (modelValue >= 1 && modelValue <= proxy.totalPageNum) {
13719
- localCurrent.value = modelValue;
13720
- } else if (modelValue < 1) {
13721
- localCurrent.value = 1;
13722
- } else {
13723
- localCurrent.value = proxy.totalPageNum;
13724
- }
13725
- });
13726
- }, {
13727
- immediate: true
13728
- });
13729
- nextTick(() => {
13730
- watch(() => proxy.totalPageNum, (totalPageNum) => {
13731
- if (localCurrent.value > totalPageNum) {
13732
- localCurrent.value = totalPageNum;
13733
- }
13734
- });
13735
- });
13736
- const handlePrePage = () => {
13737
- if (isPagePreDisabled.value) {
13738
- return;
13911
+ let calcMinWidth = computedWidth;
13912
+ if (/^\d+\.?\d*$/.test(`${minWidth}`)) {
13913
+ calcMinWidth = Number(minWidth);
13739
13914
  }
13740
- localCurrent.value = localCurrent.value - 1;
13741
- };
13742
- const handleNextPage = () => {
13743
- if (isPageNextDisabled.value) {
13744
- return;
13915
+ if (/^\d+\.?\d*%$/.test(`${minWidth}`)) {
13916
+ calcMinWidth = Number(minWidth) * width / 100;
13745
13917
  }
13746
- localCurrent.value = localCurrent.value + 1;
13747
- };
13748
- const handleItemClick = (totalPageNum) => {
13749
- if (totalPageNum === localCurrent.value) {
13750
- return;
13918
+ if (/^\d+\.?\d*px$/i.test(`${minWidth}`)) {
13919
+ calcMinWidth = Number(`${minWidth}`.replace(/px/i, ""));
13751
13920
  }
13752
- localCurrent.value = totalPageNum;
13753
- };
13754
- const handlePreBatch = () => {
13755
- localCurrent.value = Math.max(1, localCurrent.value - PAGE_ITEMS_NUM);
13756
- };
13757
- const handleNextBatch = () => {
13758
- localCurrent.value = Math.min(proxy.totalPageNum, localCurrent.value + PAGE_ITEMS_NUM);
13921
+ return calcMinWidth;
13759
13922
  };
13760
- const render2 = ({
13761
- isFirst,
13762
- isLast
13763
- }) => createVNode("div", {
13764
- "class": {
13765
- "bk-pagination-list": true,
13766
- "is-first": isFirst,
13767
- "is-last": isLast
13923
+ const resolveColNumberWidth = (col, numWidth, resetAvgWidth = true) => {
13924
+ const minWidth = getMinWidth(col, numWidth);
13925
+ const computedWidth = numWidth < minWidth ? minWidth : numWidth;
13926
+ Object.assign(col, {
13927
+ calcWidth: computedWidth
13928
+ });
13929
+ if (resetAvgWidth) {
13930
+ avgWidth = avgWidth - computedWidth;
13931
+ if (avgWidth < 0) {
13932
+ avgWidth = 0;
13933
+ }
13768
13934
  }
13769
- }, [createVNode("div", {
13770
- "class": {
13771
- "bk-pagination-list-pre": true,
13772
- "is-disabled": isPagePreDisabled.value
13773
- },
13774
- "onClick": handlePrePage
13775
- }, [proxy.prevText || createVNode(angleLeft, null, null)]), createVNode("div", {
13776
- "class": {
13777
- "bk-pagination-list-item": true,
13778
- "is-active": localCurrent.value === 1
13779
- },
13780
- "key": "1",
13781
- "onClick": () => handleItemClick(1)
13782
- }, [createTextVNode("1")]), showPreBatch.value && createVNode("div", {
13783
- "key": "pre-batch",
13784
- "class": "bk-pagination-list-pre-batch",
13785
- "onClick": handlePreBatch
13786
- }, [createVNode(ellipsis, null, null)]), list.value.map((num) => createVNode("div", {
13787
- "class": {
13788
- "bk-pagination-list-item": true,
13789
- "is-active": localCurrent.value === num
13790
- },
13791
- "key": num,
13792
- "onClick": () => handleItemClick(num)
13793
- }, [num])), showNextBatch.value && createVNode("div", {
13794
- "key": "next-batch",
13795
- "class": "bk-pagination-list-next-batch",
13796
- "onClick": handleNextBatch
13797
- }, [createVNode(ellipsis, null, null)]), proxy.totalPageNum > 1 && createVNode("div", {
13798
- "class": {
13799
- "bk-pagination-list-item": true,
13800
- "is-active": localCurrent.value === proxy.totalPageNum
13801
- },
13802
- "key": "last",
13803
- "onClick": () => handleItemClick(proxy.totalPageNum)
13804
- }, [proxy.totalPageNum]), createVNode("div", {
13805
- "class": {
13806
- "bk-pagination-list-pre": true,
13807
- "is-disabled": isPageNextDisabled.value
13808
- },
13809
- "onClick": handleNextPage
13810
- }, [proxy.nextText || createVNode(angleRight, null, null)])]);
13811
- return {
13812
- current: localCurrent,
13813
- render: render2
13814
13935
  };
13815
- };
13816
- var useSmallList = () => {
13817
- const {
13818
- proxy
13819
- } = getCurrentInstance();
13820
- const inputRef = ref(null);
13821
- const isFocused = ref(false);
13822
- const localCurrent = ref(1);
13823
- const isPagePreDisabled = computed(() => localCurrent.value === 1);
13824
- const isPageNextDisabled = computed(() => localCurrent.value === proxy.totalPageNum);
13825
- let inputMemo = 0;
13826
- const list = computed(() => {
13827
- const stack = [];
13828
- for (let i = 1; i <= proxy.totalPageNum; i++) {
13829
- stack.push(i);
13830
- }
13831
- return stack;
13832
- });
13833
- watch(() => proxy.modelValue, (modelValue) => {
13834
- nextTick(() => {
13835
- if (modelValue >= 1 && modelValue <= proxy.totalPageNum) {
13836
- localCurrent.value = modelValue;
13837
- } else if (modelValue < 1) {
13838
- localCurrent.value = 1;
13839
- } else {
13840
- localCurrent.value = proxy.totalPageNum;
13936
+ colgroups.forEach((col, index) => {
13937
+ if (!col.isHidden) {
13938
+ const colWidth = String(getColumnReactWidth(col));
13939
+ let isAutoWidthCol = true;
13940
+ if (/^\d+\.?\d*(px)?$/.test(colWidth)) {
13941
+ const numWidth = Number(colWidth.replace("px", ""));
13942
+ resolveColNumberWidth(col, numWidth);
13943
+ isAutoWidthCol = false;
13841
13944
  }
13842
- inputMemo = localCurrent.value;
13843
- });
13844
- }, {
13845
- immediate: true
13846
- });
13847
- nextTick(() => {
13848
- watch(() => proxy.totalPageNum, (totalPageNum) => {
13849
- if (localCurrent.value > totalPageNum) {
13850
- localCurrent.value = totalPageNum;
13945
+ if (/^\d+\.?\d*%$/.test(colWidth)) {
13946
+ let perWidth = autoWidth;
13947
+ if (avgWidth > 0) {
13948
+ const percent = Number(colWidth.replace("%", ""));
13949
+ perWidth = avgWidth * percent / 100;
13950
+ }
13951
+ resolveColNumberWidth(col, perWidth);
13952
+ isAutoWidthCol = false;
13953
+ }
13954
+ if (isAutoWidthCol) {
13955
+ avgColIndexList.push(index);
13851
13956
  }
13852
- });
13853
- });
13854
- const handlePrePage = () => {
13855
- if (isPagePreDisabled.value) {
13856
- return;
13857
- }
13858
- localCurrent.value = localCurrent.value - 1;
13859
- };
13860
- const handleNextPage = () => {
13861
- if (isPageNextDisabled.value) {
13862
- return;
13863
13957
  }
13864
- localCurrent.value = localCurrent.value + 1;
13865
- };
13866
- const handlePageEditorFocus = () => {
13867
- isFocused.value = true;
13868
- };
13869
- const handlePageEditorBlur = () => {
13870
- isFocused.value = false;
13871
- inputRef.value.textContent = `${inputMemo}`;
13872
- if (inputMemo !== localCurrent.value) {
13873
- localCurrent.value = inputMemo;
13958
+ });
13959
+ if (avgColIndexList.length > 0) {
13960
+ let autoAvgWidth = autoWidth;
13961
+ if (avgWidth > 0) {
13962
+ autoAvgWidth = avgWidth / avgColIndexList.length;
13963
+ avgColIndexList.forEach((idx) => resolveColNumberWidth(colgroups[idx], autoAvgWidth, false));
13874
13964
  }
13875
- };
13876
- const handlePageEditorInput = (event) => {
13877
- const $target = event.target;
13878
- const value = Number($target.textContent);
13879
- if (!value || value < 1 || value > proxy.totalPageNum || value === localCurrent.value) {
13880
- return;
13965
+ }
13966
+ };
13967
+ const observerResize = (root, callbackFn, delay = 60, immediate = false) => {
13968
+ const callFn = lodash.exports.throttle(() => {
13969
+ if (typeof callbackFn === "function") {
13970
+ callbackFn();
13881
13971
  }
13882
- inputMemo = value;
13883
- };
13884
- const handlePageEditorKeydown = (event) => {
13885
- if (["Enter", "NumpadEnter"].includes(event.code)) {
13886
- event.preventDefault();
13887
- handlePageEditorBlur();
13972
+ }, delay);
13973
+ const resizeObserver = new ResizeObserver(() => {
13974
+ callFn();
13975
+ });
13976
+ if (immediate) {
13977
+ if (typeof callbackFn === "function") {
13978
+ callbackFn();
13888
13979
  }
13889
- };
13890
- const handlePageChange = (item) => {
13891
- inputMemo = item;
13892
- handlePageEditorBlur();
13893
- };
13894
- const render2 = () => createVNode("div", {
13895
- "class": "bk-pagination-small-list"
13896
- }, [createVNode("div", {
13897
- "class": {
13898
- "bk-pagination-btn-pre": true,
13899
- "is-disabled": isPagePreDisabled.value
13900
- },
13901
- "onClick": handlePrePage
13902
- }, [createVNode(leftShape, null, null)]), createVNode(BkPopover, {
13903
- "theme": "light",
13904
- "trigger": "click",
13905
- "arrow": false,
13906
- "boundary": "body",
13907
- "placement": "bottom"
13908
- }, {
13909
- default: () => createVNode("div", {
13910
- "class": {
13911
- "bk-pagination-picker": true,
13912
- "is-focused": isFocused.value
13913
- }
13914
- }, [createVNode("span", {
13915
- "ref": inputRef,
13916
- "class": "bk-pagination-editor",
13917
- "contenteditable": true,
13918
- "spellcheck": "false",
13919
- "onFocus": handlePageEditorFocus,
13920
- "onBlur": handlePageEditorBlur,
13921
- "onInput": handlePageEditorInput,
13922
- "onKeydown": handlePageEditorKeydown
13923
- }, [localCurrent.value]), createVNode("span", null, [createTextVNode("/")]), createVNode("span", {
13924
- "class": "bk-pagination-small-list-total"
13925
- }, [proxy.totalPageNum])]),
13926
- content: () => createVNode("div", {
13927
- "class": "bk-pagination-picker-list"
13928
- }, [list.value.map((item) => createVNode("div", {
13929
- "class": {
13930
- item: true,
13931
- "is-actived": item === localCurrent.value
13932
- },
13933
- "key": item,
13934
- "onClick": () => handlePageChange(item)
13935
- }, [item]))])
13936
- }), createVNode("div", {
13937
- "class": {
13938
- "bk-pagination-btn-next": true,
13939
- "is-disabled": isPageNextDisabled.value
13940
- },
13941
- "onClick": handleNextPage
13942
- }, [createVNode(rightShape, null, null)])]);
13980
+ }
13943
13981
  return {
13944
- current: localCurrent,
13945
- render: render2
13982
+ start: () => {
13983
+ resizeObserver.observe(root);
13984
+ },
13985
+ stop: () => {
13986
+ resizeObserver.disconnect();
13987
+ resizeObserver.unobserve(root);
13988
+ }
13946
13989
  };
13947
13990
  };
13948
- var useTotal = () => ({
13949
- isFirst,
13950
- isLast
13951
- }) => {
13991
+ const resolveHeadConfig = (props) => {
13952
13992
  const {
13953
- props
13954
- } = getCurrentInstance();
13955
- if (!props.showTotalCount) {
13956
- return null;
13957
- }
13958
- return createVNode("div", mergeProps({
13959
- "class": {
13960
- "bk-pagination-total": true,
13961
- "is-first": isFirst,
13962
- "is-last": isLast
13963
- }
13964
- }, {
13965
- disabled: props.disabled
13966
- }), [createTextVNode("\u5171\u8BA1"), createVNode("div", {
13967
- "class": "bk-pagination-total-num"
13968
- }, [props.count]), createTextVNode("\u6761")]);
13969
- };
13970
- const paginationProps = {
13971
- modelValue: PropTypes.number.def(1),
13972
- count: PropTypes.number.def(0).isRequired,
13973
- limit: PropTypes.number.def(10),
13974
- limitList: PropTypes.arrayOf(Number).def([10, 20, 50, 100]),
13975
- showLimit: PropTypes.bool.def(true),
13976
- type: PropTypes.oneOf(["default", "compact"]).def("default"),
13977
- location: PropTypes.oneOf(["left", "right"]).def("right"),
13978
- align: PropTypes.oneOf(["left", "center", "right"]).def("left"),
13979
- size: PropTypes.size(),
13980
- small: PropTypes.bool.def(false),
13981
- showTotalCount: PropTypes.bool.def(true),
13982
- prevText: PropTypes.string,
13983
- nextText: PropTypes.string,
13984
- disabled: PropTypes.bool.def(false),
13985
- layout: PropTypes.custom((value) => {
13986
- const layoutNameMap = {
13987
- total: true,
13988
- list: true,
13989
- limit: true
13990
- };
13991
- return value.some((item) => layoutNameMap[item]);
13992
- }, "layout \u7684\u503C\u53EA\u652F\u6301 * total\u3001list\u3001limit *").def(["total", "list", "limit"])
13993
+ showHead,
13994
+ headHeight,
13995
+ thead = {}
13996
+ } = props;
13997
+ return Object.assign({}, {
13998
+ isShow: showHead,
13999
+ height: headHeight
14000
+ }, __spreadValues({}, thead));
13993
14001
  };
13994
- var Component$a = defineComponent({
13995
- name: "Pagination",
13996
- props: paginationProps,
13997
- emits: ["update:modelValue", "change", "update:limit", "limitChange"],
13998
- setup(props, context) {
13999
- const totalPageNum = ref(0);
14000
- const {
14001
- count,
14002
- limit
14003
- } = toRefs(props);
14004
- const renderTotal = useTotal();
14005
- const {
14006
- current: listCurrent,
14007
- render: renderList
14008
- } = useList();
14009
- const {
14010
- current: smallListCurrent,
14011
- render: renderSmallList
14012
- } = useSmallList();
14013
- const {
14014
- limit: localLimit,
14015
- render: renderLimit
14016
- } = useLimit();
14017
- watch([count, localLimit, limit], ([count2, localLimit2]) => {
14018
- const total = Math.ceil(count2 / localLimit2);
14019
- totalPageNum.value = total < 1 ? 1 : total;
14020
- }, {
14021
- immediate: true
14022
- });
14023
- watch(listCurrent, (listCurrent2) => {
14024
- context.emit("update:modelValue", listCurrent2);
14025
- context.emit("change", listCurrent2);
14026
- });
14027
- watch(smallListCurrent, (smallListCurrent2) => {
14028
- context.emit("update:modelValue", smallListCurrent2);
14029
- context.emit("change", smallListCurrent2);
14030
- });
14031
- watch(localLimit, (localLimit2) => {
14032
- context.emit("limitChange", localLimit2);
14033
- });
14034
- return {
14035
- totalPageNum,
14036
- renderTotal,
14037
- renderList,
14038
- renderLimit,
14039
- renderSmallList
14040
- };
14041
- },
14042
- render() {
14043
- const paginationClass = classes({
14044
- "bk-pagination": true,
14045
- [`bk-pagination--${this.size}`]: true,
14046
- [`is-align-${this.align}`]: true
14047
- });
14048
- const layoutMap = {
14049
- total: this.renderTotal,
14050
- list: this.small ? this.renderSmallList : this.renderList,
14051
- limit: this.renderLimit
14052
- };
14053
- return createVNode("div", {
14054
- "class": paginationClass
14055
- }, [this.layout.map((layout, index) => layoutMap[layout]({
14056
- isFirst: index === 0,
14057
- isLast: index === this.layout.length - 1
14058
- }))]);
14059
- }
14060
- });
14061
- const BkPagination = withInstall(Component$a);
14062
- var BodyEmpty = defineComponent({
14063
- name: "BodyEmpty",
14064
- props: {
14065
- list: PropTypes.array.def([]),
14066
- filterList: PropTypes.array.def([]),
14067
- emptyText: PropTypes.string.def("\u6682\u65E0\u6570\u636E")
14068
- },
14069
- emits: ["change"],
14070
- setup(props, {
14071
- slots
14072
- }) {
14073
- const type = computed(() => props.list.length === 0 ? "empty" : "search-empty");
14074
- return () => createVNode(BkException, {
14075
- "scene": "part",
14076
- "type": type.value
14077
- }, {
14078
- default: () => {
14079
- var _a, _b;
14080
- return [(_b = (_a = slots.default) == null ? void 0 : _a.call(slots)) != null ? _b : props.emptyText];
14002
+ const getRowText = (row, key, column) => {
14003
+ if (column.type === "index") {
14004
+ return row[TABLE_ROW_ATTRIBUTE.ROW_INDEX];
14005
+ }
14006
+ return row[key];
14007
+ };
14008
+ const formatPropAsArray = (prop, args) => {
14009
+ if (Array.isArray(prop)) {
14010
+ return prop;
14011
+ }
14012
+ if (typeof prop === "string" || typeof prop === "object") {
14013
+ return [prop];
14014
+ }
14015
+ if (typeof prop === "function") {
14016
+ return formatPropAsArray(Reflect.apply(prop, globalThis, args), args);
14017
+ }
14018
+ return [];
14019
+ };
14020
+ const getRowKey = (item, props) => {
14021
+ if (typeof props.rowKey === "string") {
14022
+ const keys = props.rowKey.split(".");
14023
+ return keys.reduce((pre, cur) => {
14024
+ if (Object.prototype.hasOwnProperty.call(pre, cur)) {
14025
+ return pre[cur];
14081
14026
  }
14082
- });
14027
+ return pre;
14028
+ }, item);
14083
14029
  }
14084
- });
14030
+ if (typeof props.rowKey === "function") {
14031
+ return Reflect.apply(props.rowKey, globalThis, [item]);
14032
+ }
14033
+ return uuid_1.v4();
14034
+ };
14085
14035
  function _isSlot$1(s2) {
14086
14036
  return typeof s2 === "function" || Object.prototype.toString.call(s2) === "[object Object]" && !isVNode(s2);
14087
14037
  }
@@ -14420,6 +14370,74 @@ var Settings = defineComponent({
14420
14370
  });
14421
14371
  }
14422
14372
  });
14373
+ var useFixedColumn = (props, colgroups) => {
14374
+ const footHeight = computed(() => props.pagination && props.data.length ? 40 : 0);
14375
+ const resolveColumnClass = (column) => ({
14376
+ column_fixed: !!column.fixed,
14377
+ column_fixed_left: column.fixed !== "right",
14378
+ column_fixed_right: column.fixed === "right"
14379
+ });
14380
+ const resolveFixColPos = (column) => column.fixed === "right" ? "right" : "left";
14381
+ const resolveFixOffset = {
14382
+ left: (ignoreFirst = true) => colgroups.filter((col) => col.fixed && col.fixed !== "right").reduce((offset2, curr, index) => {
14383
+ const outOffset = ignoreFirst && index === 0 ? offset2 : offset2 + getColumnReactWidth(curr);
14384
+ return outOffset;
14385
+ }, 0),
14386
+ right: (ignoreFirst = true) => colgroups.filter((col) => col.fixed === "right").reduce((offset2, curr, index) => {
14387
+ const outOffset = ignoreFirst && index === 0 ? offset2 : offset2 + getColumnReactWidth(curr);
14388
+ return outOffset;
14389
+ }, 0)
14390
+ };
14391
+ const reolveFixRightOffset = resolveFixOffset.right;
14392
+ const getFixedColumnStyleResolve = () => {
14393
+ const resolveFixedColumnStyle = (column, fixedoffset2) => {
14394
+ if (!column.fixed) {
14395
+ return {};
14396
+ }
14397
+ const fixedPos = resolveFixColPos(column);
14398
+ const opt = fixedPos === "right" ? -1 : 1;
14399
+ const offsetX = `${fixedoffset2[fixedPos]}px`;
14400
+ fixedoffset2[fixedPos] = fixedoffset2[fixedPos] + getColumnReactWidth(column) * opt;
14401
+ return {
14402
+ [fixedPos]: offsetX
14403
+ };
14404
+ };
14405
+ const rightOffsetWidth = reolveFixRightOffset(true);
14406
+ const fixedoffset = {
14407
+ left: 0,
14408
+ right: rightOffsetWidth
14409
+ };
14410
+ return {
14411
+ fixedoffset,
14412
+ resolveFixedColumnStyle
14413
+ };
14414
+ };
14415
+ const renderFixedColumns = () => {
14416
+ const resolveColumnStyle = (colPos) => ({
14417
+ width: `${resolveFixOffset[colPos](false)}px`,
14418
+ bottom: `${footHeight.value}px`
14419
+ });
14420
+ const colPosExist = {
14421
+ left: false,
14422
+ right: false
14423
+ };
14424
+ return colgroups.filter((col) => !col.isHidden && col.fixed).map((col) => {
14425
+ const colPos = resolveFixColPos(col);
14426
+ const isExist = colPosExist[colPos];
14427
+ colPosExist[colPos] = true;
14428
+ return isExist ? "" : createVNode("div", {
14429
+ "class": resolveColumnClass(col),
14430
+ "style": resolveColumnStyle(colPos)
14431
+ }, null);
14432
+ });
14433
+ };
14434
+ const fixedWrapperClass = resolveClassName("table-fixed");
14435
+ return {
14436
+ renderFixedColumns,
14437
+ fixedWrapperClass,
14438
+ getFixedColumnStyleResolve
14439
+ };
14440
+ };
14423
14441
  class TableRender {
14424
14442
  constructor(props, ctx, reactiveProp, colgroups) {
14425
14443
  __publicField(this, "getRowHeight", (row, rowIndex) => {
@@ -14651,32 +14669,87 @@ class TableRender {
14651
14669
  resolveFixedColumnStyle,
14652
14670
  fixedoffset
14653
14671
  } = getFixedColumnStyleResolve();
14654
- return createVNode("tr", {
14672
+ return [createVNode("tr", {
14655
14673
  "style": rowStyle,
14656
14674
  "class": rowClass,
14675
+ "key": row[TABLE_ROW_ATTRIBUTE.ROW_UID],
14657
14676
  "onClick": (e) => this.handleRowClick(e, row, rowIndex, rows),
14658
14677
  "onDblclick": (e) => this.handleRowDblClick(e, row, rowIndex, rows)
14659
14678
  }, [this.filterColgroups.map((column, index) => {
14660
14679
  const cellStyle = [resolveFixedColumnStyle(column, fixedoffset), ...formatPropAsArray(this.props.cellStyle, [column, index, row, rowIndex, this])];
14661
- const cellClass = [this.getColumnClass(column, index), ...formatPropAsArray(this.props.cellClass, [column, index, row, rowIndex, this])];
14680
+ const cellClass = [this.getColumnClass(column, index), ...formatPropAsArray(this.props.cellClass, [column, index, row, rowIndex, this]), {
14681
+ "expand-row": row[TABLE_ROW_ATTRIBUTE.ROW_EXPAND]
14682
+ }];
14683
+ const tdCtxClass = {
14684
+ cell: true,
14685
+ "expand-cell": column.type === "expand"
14686
+ };
14662
14687
  return createVNode("td", {
14663
14688
  "class": cellClass,
14664
14689
  "style": cellStyle,
14665
14690
  "colspan": 1,
14666
14691
  "rowspan": 1
14667
14692
  }, [createVNode("div", {
14668
- "class": "cell"
14693
+ "class": tdCtxClass
14669
14694
  }, [this.renderCell(row, column, rowIndex, rows)])]);
14670
- })]);
14695
+ })]), this.renderExpandRow(row, rowClass)];
14671
14696
  })]);
14672
14697
  }
14698
+ renderExpandRow(row, rowClass) {
14699
+ var _a, _b, _c;
14700
+ const isExpand = !!row[TABLE_ROW_ATTRIBUTE.ROW_EXPAND];
14701
+ if (isExpand) {
14702
+ const resovledClass = [...rowClass, {
14703
+ row_expend: true
14704
+ }];
14705
+ return createVNode("tr", {
14706
+ "class": resovledClass
14707
+ }, [createVNode("td", {
14708
+ "colspan": this.filterColgroups.length,
14709
+ "rowspan": 1
14710
+ }, [(_c = (_b = (_a = this.context.slots).expandRow) == null ? void 0 : _b.call(_a, row)) != null ? _c : createVNode("div", {
14711
+ "class": "expand-cell-ctx"
14712
+ }, [createTextVNode("Expand Row")])])]);
14713
+ }
14714
+ }
14673
14715
  handleRowClick(e, row, index, rows) {
14674
14716
  this.context.emit("rowClick", e, row, index, rows, this);
14675
14717
  }
14676
14718
  handleRowDblClick(e, row, index, rows) {
14677
14719
  this.context.emit("rowDblClick", e, row, index, rows, this);
14678
14720
  }
14721
+ getExpandCell(row) {
14722
+ const isExpand = !!row[TABLE_ROW_ATTRIBUTE.ROW_EXPAND];
14723
+ return isExpand ? createVNode(downShape, null, null) : createVNode(rightShape, null, null);
14724
+ }
14725
+ handleRowExpandClick(row, column, index, rows, e) {
14726
+ this.emitEvent(EVENTS$1.ON_ROW_EXPAND_CLICK, [{
14727
+ row,
14728
+ column,
14729
+ index,
14730
+ rows,
14731
+ e
14732
+ }]);
14733
+ }
14679
14734
  renderCell(row, column, index, rows) {
14735
+ if (column.type === "expand") {
14736
+ const renderExpandSlot = () => {
14737
+ var _a, _b, _c;
14738
+ if (typeof column.render === "function") {
14739
+ return column.render(null, row, index, rows);
14740
+ }
14741
+ return (_c = (_b = (_a = this.context.slots).expandCell) == null ? void 0 : _b.call(_a, {
14742
+ row,
14743
+ column,
14744
+ index,
14745
+ rows
14746
+ })) != null ? _c : this.getExpandCell(row);
14747
+ };
14748
+ return createVNode("span", {
14749
+ "class": "expand-btn-action",
14750
+ "onClick": (e) => this.handleRowExpandClick(row, column, index, rows, e)
14751
+ }, [renderExpandSlot()]);
14752
+ }
14680
14753
  const cell = getRowText(row, resolvePropVal(column, "field", [column, row]), column);
14681
14754
  if (typeof column.render === "function") {
14682
14755
  return column.render(cell, row, index, rows);
@@ -14705,6 +14778,163 @@ class TableRender {
14705
14778
  return this.reactiveProp.setting;
14706
14779
  }
14707
14780
  }
14781
+ const resolveActiveColumns = (props) => {
14782
+ if (props.columnPick !== "disabled") {
14783
+ if (props.columnPick === "multi") {
14784
+ return Array.isArray(props.activeColumn) ? props.activeColumn : resolveNumberToNumArray(props.activeColumn);
14785
+ }
14786
+ return Array.isArray(props.activeColumn) ? resolveNumberToNumArray(props.activeColumn[0]) : resolveNumberToNumArray(props.activeColumn);
14787
+ }
14788
+ return [];
14789
+ };
14790
+ var useActiveColumns = (props) => {
14791
+ let activeColumns = reactive([]);
14792
+ if (props.columnPick === "disabled") {
14793
+ return {
14794
+ activeColumns
14795
+ };
14796
+ }
14797
+ const activeCols = reactive(resolveActiveColumns(props));
14798
+ const getActiveColumns = () => (props.columns || []).map((_column, index) => ({
14799
+ index,
14800
+ active: activeCols.some((colIndex) => colIndex === index),
14801
+ _column
14802
+ }));
14803
+ watchEffect(() => {
14804
+ activeColumns = getActiveColumns();
14805
+ const cols = resolveActiveColumns(props);
14806
+ activeColumns.forEach((col, index) => {
14807
+ Object.assign(col, {
14808
+ active: cols.some((colIndex) => colIndex === index)
14809
+ });
14810
+ });
14811
+ });
14812
+ return {
14813
+ activeColumns
14814
+ };
14815
+ };
14816
+ var useColumnResize = (colgroups, immediate = true) => {
14817
+ const pluginName = "HeadColumnResize";
14818
+ let EVENTS2;
14819
+ (function(EVENTS3) {
14820
+ EVENTS3["MOUSE_MOVE"] = "onMousemove";
14821
+ EVENTS3["MOUSE_OUT"] = "onMouseout";
14822
+ EVENTS3["MOUSE_DOWN"] = "onMousedown";
14823
+ })(EVENTS2 || (EVENTS2 = {}));
14824
+ let isInDragSection = false;
14825
+ let isMouseDown = false;
14826
+ let isDraging = false;
14827
+ let startX = 0;
14828
+ let dragColumn = null;
14829
+ let dragStartOffsetX = 0;
14830
+ const dragOffsetX = ref(-1e3);
14831
+ const handleMouseUp = (e) => {
14832
+ var _a;
14833
+ isMouseDown = false;
14834
+ isDraging = false;
14835
+ const bodyStyle = document.body.style;
14836
+ bodyStyle.cursor = "";
14837
+ const diff = e.clientX - startX;
14838
+ dragColumn.resizeWidth = ((_a = dragColumn.resizeWidth) != null ? _a : dragColumn.calcWidth) + diff;
14839
+ document.removeEventListener("mouseup", handleMouseUp);
14840
+ document.removeEventListener("mousemove", handleMouseMove);
14841
+ startX = 0;
14842
+ dragOffsetX.value = -1e3;
14843
+ dragColumn = null;
14844
+ const targetTable = e.target.closest("table");
14845
+ targetTable.querySelectorAll("th").forEach((th) => th.style.setProperty("user-select", "inherit"));
14846
+ };
14847
+ const handleMouseMove = (e) => {
14848
+ const bodyStyle = document.body.style;
14849
+ bodyStyle.setProperty("cursor", "");
14850
+ dragOffsetX.value = e.clientX - startX + dragStartOffsetX;
14851
+ };
14852
+ const handler = {
14853
+ [EVENTS2.MOUSE_DOWN]: (e, column) => {
14854
+ if (!isInDragSection) {
14855
+ return;
14856
+ }
14857
+ isMouseDown = true;
14858
+ const bodyStyle = document.body.style;
14859
+ bodyStyle.setProperty("cursor", "col-resize");
14860
+ dragColumn = column;
14861
+ startX = e.clientX;
14862
+ const targetTable = e.target.closest("table");
14863
+ dragStartOffsetX = startX - targetTable.getBoundingClientRect().left;
14864
+ document.addEventListener("mouseup", handleMouseUp);
14865
+ document.addEventListener("mousemove", handleMouseMove);
14866
+ },
14867
+ [EVENTS2.MOUSE_MOVE]: (e, _column) => {
14868
+ if (isMouseDown && !isDraging) {
14869
+ isDraging = true;
14870
+ }
14871
+ const target = e.target.closest("th");
14872
+ if (isDraging) {
14873
+ target.style.setProperty("user-select", "none");
14874
+ }
14875
+ if (!isDraging) {
14876
+ if (!target) {
14877
+ return;
14878
+ }
14879
+ const rect = target.getBoundingClientRect();
14880
+ if (rect.width > 12 && rect.right - e.pageX < 8) {
14881
+ isInDragSection = true;
14882
+ target.style.setProperty("cursor", "col-resize");
14883
+ } else {
14884
+ isInDragSection = false;
14885
+ }
14886
+ }
14887
+ },
14888
+ [EVENTS2.MOUSE_OUT]: (e, _column) => {
14889
+ const target = e.target;
14890
+ if (!isDraging) {
14891
+ target.style.setProperty("cursor", "");
14892
+ }
14893
+ }
14894
+ };
14895
+ const getEventName = (event) => `${pluginName}_${event}`;
14896
+ const registerResizeEvent = () => {
14897
+ colgroups.forEach((col) => {
14898
+ if (col.resizable !== false) {
14899
+ Object.keys(handler).forEach((event) => {
14900
+ const name = getEventName(event);
14901
+ if (!col.listeners.has(name)) {
14902
+ col.listeners.set(name, []);
14903
+ }
14904
+ col.listeners.get(name).push(handler[event]);
14905
+ });
14906
+ }
14907
+ });
14908
+ };
14909
+ const resetResizeEvents = () => {
14910
+ colgroups.forEach((col) => {
14911
+ Object.keys(handler).forEach((event) => {
14912
+ const name = getEventName(event);
14913
+ if (col.listeners.has(name)) {
14914
+ const listeners = col.listeners.get(name);
14915
+ listeners.splice(0, listeners.length);
14916
+ }
14917
+ });
14918
+ });
14919
+ };
14920
+ if (immediate) {
14921
+ registerResizeEvent();
14922
+ }
14923
+ const dragOffsetXStyle = computed(() => ({
14924
+ position: "absolute",
14925
+ top: 0,
14926
+ bottom: 0,
14927
+ left: `${dragOffsetX.value}px`,
14928
+ width: "1px",
14929
+ "background-color": "#ebeef5"
14930
+ }));
14931
+ return {
14932
+ registerResizeEvent,
14933
+ resetResizeEvents,
14934
+ dragOffsetX,
14935
+ dragOffsetXStyle
14936
+ };
14937
+ };
14708
14938
  const useClass = (props, root, reactiveProp, pageData) => {
14709
14939
  const autoHeight = ref(200);
14710
14940
  const hasScrollY = ref(false);
@@ -14797,46 +15027,99 @@ const useClass = (props, root, reactiveProp, pageData) => {
14797
15027
  hasFooter
14798
15028
  };
14799
15029
  };
14800
- var Component$9 = defineComponent({
15030
+ const useInit = (props) => {
15031
+ var _a;
15032
+ const colgroups = reactive(((_a = props.columns) != null ? _a : []).map((col) => __spreadProps(__spreadValues({}, col), {
15033
+ calcWidth: null,
15034
+ resizeWidth: null,
15035
+ listeners: /* @__PURE__ */ new Map()
15036
+ })));
15037
+ const { dragOffsetXStyle } = useColumnResize(colgroups, true);
15038
+ const { activeColumns } = useActiveColumns(props);
15039
+ const reactiveSchema = reactive({
15040
+ rowActions: /* @__PURE__ */ new Map(),
15041
+ scrollTranslateY: 0,
15042
+ scrollTranslateX: 0,
15043
+ pos: {
15044
+ bottom: 1
15045
+ },
15046
+ activeColumns,
15047
+ setting: {
15048
+ size: null,
15049
+ height: null
15050
+ }
15051
+ });
15052
+ const isRowExpand = (rowId) => {
15053
+ var _a2;
15054
+ if (reactiveSchema.rowActions.has(rowId)) {
15055
+ return (_a2 = reactiveSchema.rowActions.get(rowId)) == null ? void 0 : _a2.isExpand;
15056
+ }
15057
+ return false;
15058
+ };
15059
+ const setRowExpand = (row, expand = void 0) => {
15060
+ var _a2;
15061
+ const rowId = row[TABLE_ROW_ATTRIBUTE.ROW_UID];
15062
+ const isExpand = typeof expand === "boolean" ? expand : !isRowExpand(rowId);
15063
+ reactiveSchema.rowActions.set(rowId, Object.assign({}, (_a2 = reactiveSchema.rowActions.get(rowId)) != null ? _a2 : {}, { isExpand }));
15064
+ updateIndexData();
15065
+ };
15066
+ const indexData = reactive([]);
15067
+ const initIndexData = (keepLocalAction = false) => {
15068
+ indexData.splice(0, indexData.length, ...props.data.map((item, index) => {
15069
+ const rowId = getRowKey(item, props);
15070
+ return __spreadProps(__spreadValues({}, item), {
15071
+ [TABLE_ROW_ATTRIBUTE.ROW_INDEX]: index + 1,
15072
+ [TABLE_ROW_ATTRIBUTE.ROW_UID]: rowId,
15073
+ [TABLE_ROW_ATTRIBUTE.ROW_EXPAND]: keepLocalAction ? isRowExpand(rowId) : false
15074
+ });
15075
+ }));
15076
+ };
15077
+ const updateIndexData = () => {
15078
+ indexData.forEach((item) => {
15079
+ Object.assign(item, {
15080
+ [TABLE_ROW_ATTRIBUTE.ROW_EXPAND]: isRowExpand(item[TABLE_ROW_ATTRIBUTE.ROW_UID])
15081
+ });
15082
+ });
15083
+ };
15084
+ const { renderFixedColumns, fixedWrapperClass } = useFixedColumn(props, colgroups);
15085
+ return {
15086
+ colgroups,
15087
+ dragOffsetXStyle,
15088
+ reactiveSchema,
15089
+ indexData,
15090
+ fixedWrapperClass,
15091
+ initIndexData,
15092
+ updateIndexData,
15093
+ renderFixedColumns,
15094
+ setRowExpand
15095
+ };
15096
+ };
15097
+ var Component$a = defineComponent({
14801
15098
  name: "Table",
14802
15099
  props: tableProps,
14803
15100
  emits: EMIT_EVENT_TYPES,
14804
15101
  setup(props, ctx) {
14805
- var _a;
14806
- const colgroups = reactive(((_a = props.columns) != null ? _a : []).map((col) => __spreadProps(__spreadValues({}, col), {
14807
- calcWidth: null,
14808
- resizeWidth: null,
14809
- listeners: /* @__PURE__ */ new Map()
14810
- })));
15102
+ const {
15103
+ colgroups,
15104
+ dragOffsetXStyle,
15105
+ reactiveSchema,
15106
+ indexData,
15107
+ renderFixedColumns,
15108
+ setRowExpand,
15109
+ initIndexData,
15110
+ fixedWrapperClass
15111
+ } = useInit(props);
14811
15112
  let columnSortFn = null;
14812
15113
  let columnFilterFn = null;
14813
15114
  let observerIns = null;
14814
15115
  const root = ref();
14815
15116
  const refVirtualRender = ref();
14816
- const {
14817
- dragOffsetXStyle
14818
- } = useColumnResize(colgroups, true);
14819
- const {
14820
- activeColumns
14821
- } = useActiveColumns(props);
14822
- const reactiveProp = reactive({
14823
- scrollTranslateY: 0,
14824
- scrollTranslateX: 0,
14825
- pos: {
14826
- bottom: 1
14827
- },
14828
- activeColumns,
14829
- setting: {
14830
- size: null,
14831
- height: null
14832
- }
14833
- });
14834
15117
  const {
14835
15118
  pageData,
14836
15119
  localPagination,
14837
15120
  resolvePageData,
14838
15121
  watchEffectFn
14839
- } = userPagination(props);
15122
+ } = userPagination(props, indexData);
14840
15123
  const {
14841
15124
  tableClass,
14842
15125
  headClass,
@@ -14848,13 +15131,10 @@ var Component$9 = defineComponent({
14848
15131
  updateBorderClass,
14849
15132
  resetTableHeight,
14850
15133
  hasFooter
14851
- } = useClass(props, root, reactiveProp, pageData);
14852
- const {
14853
- renderFixedColumns,
14854
- fixedWrapperClass
14855
- } = useFixedColumn(props, colgroups);
14856
- const tableRender = new TableRender(props, ctx, reactiveProp, colgroups);
15134
+ } = useClass(props, root, reactiveSchema, pageData);
15135
+ const tableRender = new TableRender(props, ctx, reactiveSchema, colgroups);
14857
15136
  watch(() => [props.data, props.pagination], () => {
15137
+ initIndexData(props.reserveExpand);
14858
15138
  watchEffectFn(columnFilterFn, columnSortFn);
14859
15139
  nextTick(() => {
14860
15140
  resetTableHeight(root.value);
@@ -14897,32 +15177,48 @@ var Component$9 = defineComponent({
14897
15177
  index
14898
15178
  });
14899
15179
  }).on(EVENTS$1.ON_SETTING_CHANGE, (args) => {
14900
- var _a2, _b;
15180
+ var _a, _b;
14901
15181
  const {
14902
15182
  checked = [],
14903
15183
  size,
14904
15184
  height
14905
15185
  } = args;
14906
15186
  checked.length && resolveColumnWidth(root.value, colgroups, 20);
14907
- (_b = (_a2 = refVirtualRender.value) == null ? void 0 : _a2.reset) == null ? void 0 : _b.call(_a2);
15187
+ (_b = (_a = refVirtualRender.value) == null ? void 0 : _a.reset) == null ? void 0 : _b.call(_a);
14908
15188
  ctx.emit(EMITEVENTS.SETTING_CHANGE, {
14909
15189
  checked,
14910
15190
  size,
14911
15191
  height
14912
15192
  });
15193
+ }).on(EVENTS$1.ON_ROW_EXPAND_CLICK, (args) => {
15194
+ const {
15195
+ row,
15196
+ column,
15197
+ index,
15198
+ rows,
15199
+ e
15200
+ } = args;
15201
+ ctx.emit(EMITEVENTS.ROW_EXPAND_CLICK, {
15202
+ row,
15203
+ column,
15204
+ index,
15205
+ rows,
15206
+ e
15207
+ });
15208
+ setRowExpand(row, !row[TABLE_ROW_ATTRIBUTE.ROW_EXPAND]);
14913
15209
  });
14914
15210
  const handleScrollChanged = (args) => {
14915
- var _a2;
14916
- const preBottom = (_a2 = reactiveProp.pos.bottom) != null ? _a2 : 0;
15211
+ var _a;
15212
+ const preBottom = (_a = reactiveSchema.pos.bottom) != null ? _a : 0;
14917
15213
  const pagination2 = args[1];
14918
15214
  const {
14919
15215
  translateX,
14920
15216
  translateY,
14921
15217
  pos = {}
14922
15218
  } = pagination2;
14923
- reactiveProp.scrollTranslateY = translateY;
14924
- reactiveProp.scrollTranslateX = translateX;
14925
- reactiveProp.pos = pos;
15219
+ reactiveSchema.scrollTranslateY = translateY;
15220
+ reactiveSchema.scrollTranslateX = translateX;
15221
+ reactiveSchema.pos = pos;
14926
15222
  const {
14927
15223
  bottom: bottom2
14928
15224
  } = pos;
@@ -14949,6 +15245,9 @@ var Component$9 = defineComponent({
14949
15245
  observerIns = null;
14950
15246
  tableRender.destroy();
14951
15247
  });
15248
+ ctx.expose({
15249
+ setRowExpand
15250
+ });
14952
15251
  const tableBodyClass = __spreadProps(__spreadValues({}, contentClass), {
14953
15252
  "__is-empty": !pageData.length
14954
15253
  });
@@ -15004,7 +15303,7 @@ var Component$9 = defineComponent({
15004
15303
  ]);
15005
15304
  }
15006
15305
  });
15007
- const BkTable = withInstall(Component$9);
15306
+ const BkTable = withInstall(Component$a);
15008
15307
  const INPUT_MIN_WIDTH = 12;
15009
15308
  function usePage(pageSize) {
15010
15309
  const state = reactive({
@@ -15176,7 +15475,7 @@ var TagRender = defineComponent({
15176
15475
  }, [this.node[this.displayKey]])]);
15177
15476
  }
15178
15477
  });
15179
- var Component$8 = defineComponent({
15478
+ var Component$9 = defineComponent({
15180
15479
  name: "TagInput",
15181
15480
  directives: {
15182
15481
  bkTooltips: tooltips
@@ -15929,7 +16228,7 @@ var Component$8 = defineComponent({
15929
16228
  })]);
15930
16229
  }
15931
16230
  });
15932
- const TagInput = withInstall(Component$8);
16231
+ const TagInput = withInstall(Component$9);
15933
16232
  const dividerProps = {
15934
16233
  direction: PropTypes.commonType(["horizontal", "vertical"], "direction").def("horizontal"),
15935
16234
  align: PropTypes.commonType(["left", "center", "right"], "align").def("center"),
@@ -16782,7 +17081,7 @@ const menuProps = {
16782
17081
  default: true
16783
17082
  }
16784
17083
  };
16785
- var Component$7 = defineComponent({
17084
+ var Component$8 = defineComponent({
16786
17085
  name: "Menu",
16787
17086
  props: menuProps,
16788
17087
  emits: ["update:activeKey", "update:openKeys", "click", "openChange"],
@@ -17030,7 +17329,7 @@ var Submenu = defineComponent({
17030
17329
  };
17031
17330
  }
17032
17331
  });
17033
- const BkMenu = withInstallProps(Component$7, { Item, Submenu, Group });
17332
+ const BkMenu = withInstallProps(Component$8, { Item, Submenu, Group });
17034
17333
  const TitleProps = {
17035
17334
  sideTitle: {
17036
17335
  type: String,
@@ -17106,7 +17405,7 @@ const NavigationProps = {
17106
17405
  default: true
17107
17406
  }
17108
17407
  };
17109
- var Component$6 = defineComponent({
17408
+ var Component$7 = defineComponent({
17110
17409
  name: "Navigation",
17111
17410
  props: NavigationProps,
17112
17411
  emits: ["leave", "toggle", "hover", "toggle-click"],
@@ -17248,7 +17547,7 @@ var Component$6 = defineComponent({
17248
17547
  }, [(_l = (_k = this.$slots).footer) == null ? void 0 : _l.call(_k)])])])])]);
17249
17548
  }
17250
17549
  });
17251
- const Navigation = withInstall(Component$6);
17550
+ const Navigation = withInstall(Component$7);
17252
17551
  const pickerDropdownProps = {
17253
17552
  placement: {
17254
17553
  type: String,
@@ -20603,7 +20902,7 @@ const datePickerProps = {
20603
20902
  },
20604
20903
  disableDate: Function
20605
20904
  };
20606
- var Component$5 = defineComponent({
20905
+ var Component$6 = defineComponent({
20607
20906
  name: "DatePicker",
20608
20907
  directives: {
20609
20908
  clickoutside: ClickOutside
@@ -21138,7 +21437,7 @@ var Component$5 = defineComponent({
21138
21437
  })]), [[resolveDirective("clickoutside"), this.handleClose]]);
21139
21438
  }
21140
21439
  });
21141
- const BkDatePicker = withInstall(Component$5);
21440
+ const BkDatePicker = withInstall(Component$6);
21142
21441
  var ArrayType = /* @__PURE__ */ ((ArrayType2) => {
21143
21442
  ArrayType2["OBJECT_ARRAY"] = "objectArray";
21144
21443
  ArrayType2["BASE_ARRAY"] = "baseArray";
@@ -21194,7 +21493,7 @@ function useSelectListSearch(selectList, displayCode) {
21194
21493
  selectListSearch
21195
21494
  };
21196
21495
  }
21197
- var Component$4 = defineComponent({
21496
+ var Component$5 = defineComponent({
21198
21497
  name: "Transfer",
21199
21498
  props: transferProps,
21200
21499
  emits: ["change", "update:targetList"],
@@ -21365,7 +21664,7 @@ var Component$4 = defineComponent({
21365
21664
  }, [getHeaderHtml("right-header"), getListContentHtml("right")])]);
21366
21665
  }
21367
21666
  });
21368
- const Transfer = withInstall(Component$4);
21667
+ const Transfer = withInstall(Component$5);
21369
21668
  var EVENTS = /* @__PURE__ */ ((EVENTS2) => {
21370
21669
  EVENTS2["NODE_CLICK"] = "nodeClick";
21371
21670
  EVENTS2["NODE_COLLAPSE"] = "nodeCollapse";
@@ -22138,144 +22437,6 @@ var useSearch = (props) => {
22138
22437
  isTreeUI
22139
22438
  };
22140
22439
  };
22141
- var rngBrowser = { exports: {} };
22142
- var getRandomValues = typeof crypto != "undefined" && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto != "undefined" && typeof window.msCrypto.getRandomValues == "function" && msCrypto.getRandomValues.bind(msCrypto);
22143
- if (getRandomValues) {
22144
- var rnds8 = new Uint8Array(16);
22145
- rngBrowser.exports = function whatwgRNG() {
22146
- getRandomValues(rnds8);
22147
- return rnds8;
22148
- };
22149
- } else {
22150
- var rnds = new Array(16);
22151
- rngBrowser.exports = function mathRNG() {
22152
- for (var i = 0, r2; i < 16; i++) {
22153
- if ((i & 3) === 0)
22154
- r2 = Math.random() * 4294967296;
22155
- rnds[i] = r2 >>> ((i & 3) << 3) & 255;
22156
- }
22157
- return rnds;
22158
- };
22159
- }
22160
- var byteToHex = [];
22161
- for (var i = 0; i < 256; ++i) {
22162
- byteToHex[i] = (i + 256).toString(16).substr(1);
22163
- }
22164
- function bytesToUuid$2(buf, offset2) {
22165
- var i = offset2 || 0;
22166
- var bth = byteToHex;
22167
- return [
22168
- bth[buf[i++]],
22169
- bth[buf[i++]],
22170
- bth[buf[i++]],
22171
- bth[buf[i++]],
22172
- "-",
22173
- bth[buf[i++]],
22174
- bth[buf[i++]],
22175
- "-",
22176
- bth[buf[i++]],
22177
- bth[buf[i++]],
22178
- "-",
22179
- bth[buf[i++]],
22180
- bth[buf[i++]],
22181
- "-",
22182
- bth[buf[i++]],
22183
- bth[buf[i++]],
22184
- bth[buf[i++]],
22185
- bth[buf[i++]],
22186
- bth[buf[i++]],
22187
- bth[buf[i++]]
22188
- ].join("");
22189
- }
22190
- var bytesToUuid_1 = bytesToUuid$2;
22191
- var rng$1 = rngBrowser.exports;
22192
- var bytesToUuid$1 = bytesToUuid_1;
22193
- var _nodeId;
22194
- var _clockseq;
22195
- var _lastMSecs = 0;
22196
- var _lastNSecs = 0;
22197
- function v1$1(options, buf, offset2) {
22198
- var i = buf && offset2 || 0;
22199
- var b2 = buf || [];
22200
- options = options || {};
22201
- var node = options.node || _nodeId;
22202
- var clockseq = options.clockseq !== void 0 ? options.clockseq : _clockseq;
22203
- if (node == null || clockseq == null) {
22204
- var seedBytes = rng$1();
22205
- if (node == null) {
22206
- node = _nodeId = [
22207
- seedBytes[0] | 1,
22208
- seedBytes[1],
22209
- seedBytes[2],
22210
- seedBytes[3],
22211
- seedBytes[4],
22212
- seedBytes[5]
22213
- ];
22214
- }
22215
- if (clockseq == null) {
22216
- clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 16383;
22217
- }
22218
- }
22219
- var msecs = options.msecs !== void 0 ? options.msecs : new Date().getTime();
22220
- var nsecs = options.nsecs !== void 0 ? options.nsecs : _lastNSecs + 1;
22221
- var dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 1e4;
22222
- if (dt < 0 && options.clockseq === void 0) {
22223
- clockseq = clockseq + 1 & 16383;
22224
- }
22225
- if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === void 0) {
22226
- nsecs = 0;
22227
- }
22228
- if (nsecs >= 1e4) {
22229
- throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");
22230
- }
22231
- _lastMSecs = msecs;
22232
- _lastNSecs = nsecs;
22233
- _clockseq = clockseq;
22234
- msecs += 122192928e5;
22235
- var tl = ((msecs & 268435455) * 1e4 + nsecs) % 4294967296;
22236
- b2[i++] = tl >>> 24 & 255;
22237
- b2[i++] = tl >>> 16 & 255;
22238
- b2[i++] = tl >>> 8 & 255;
22239
- b2[i++] = tl & 255;
22240
- var tmh = msecs / 4294967296 * 1e4 & 268435455;
22241
- b2[i++] = tmh >>> 8 & 255;
22242
- b2[i++] = tmh & 255;
22243
- b2[i++] = tmh >>> 24 & 15 | 16;
22244
- b2[i++] = tmh >>> 16 & 255;
22245
- b2[i++] = clockseq >>> 8 | 128;
22246
- b2[i++] = clockseq & 255;
22247
- for (var n2 = 0; n2 < 6; ++n2) {
22248
- b2[i + n2] = node[n2];
22249
- }
22250
- return buf ? buf : bytesToUuid$1(b2);
22251
- }
22252
- var v1_1 = v1$1;
22253
- var rng = rngBrowser.exports;
22254
- var bytesToUuid = bytesToUuid_1;
22255
- function v4$1(options, buf, offset2) {
22256
- var i = buf && offset2 || 0;
22257
- if (typeof options == "string") {
22258
- buf = options === "binary" ? new Array(16) : null;
22259
- options = null;
22260
- }
22261
- options = options || {};
22262
- var rnds = options.random || (options.rng || rng)();
22263
- rnds[6] = rnds[6] & 15 | 64;
22264
- rnds[8] = rnds[8] & 63 | 128;
22265
- if (buf) {
22266
- for (var ii = 0; ii < 16; ++ii) {
22267
- buf[i + ii] = rnds[ii];
22268
- }
22269
- }
22270
- return buf || bytesToUuid(rnds);
22271
- }
22272
- var v4_1 = v4$1;
22273
- var v1 = v1_1;
22274
- var v4 = v4_1;
22275
- var uuid = v4;
22276
- uuid.v1 = v1;
22277
- uuid.v4 = v4;
22278
- var uuid_1 = uuid;
22279
22440
  var useTreeInit = (props) => {
22280
22441
  var _a;
22281
22442
  const getFlatdata = (props2, treeData = void 0, cachedSchema = []) => {
@@ -22516,7 +22677,7 @@ var useTreeInit = (props) => {
22516
22677
  onSelected
22517
22678
  };
22518
22679
  };
22519
- var Component$3 = defineComponent({
22680
+ var Component$4 = defineComponent({
22520
22681
  name: "Tree",
22521
22682
  props: treeProps,
22522
22683
  emits: TreeEmitEventsType,
@@ -22624,7 +22785,7 @@ var Component$3 = defineComponent({
22624
22785
  });
22625
22786
  }
22626
22787
  });
22627
- const BkTree = withInstall(Component$3);
22788
+ const BkTree = withInstall(Component$4);
22628
22789
  const isCustomComponent = (node) => node.__v_isVNode;
22629
22790
  var ComposeFormItem = defineComponent({
22630
22791
  name: "ComposeFormItem",
@@ -23483,7 +23644,7 @@ class Store {
23483
23644
  return (_a = nodes[0]) != null ? _a : null;
23484
23645
  }
23485
23646
  }
23486
- var Component$2 = defineComponent({
23647
+ var Component$3 = defineComponent({
23487
23648
  name: "Cascader",
23488
23649
  directives: {
23489
23650
  clickoutside: ClickOutside
@@ -23640,7 +23801,7 @@ var Component$2 = defineComponent({
23640
23801
  })]);
23641
23802
  }
23642
23803
  });
23643
- const BkCascader = withInstallProps(Component$2, { CascaderPanel });
23804
+ const BkCascader = withInstallProps(Component$3, { CascaderPanel });
23644
23805
  var SliderButton = defineComponent({
23645
23806
  name: "SliderButton",
23646
23807
  props: {
@@ -23811,7 +23972,7 @@ const off = (element, event, handler) => {
23811
23972
  element.removeEventListener(event, handler, false);
23812
23973
  }
23813
23974
  };
23814
- var Component$1 = defineComponent({
23975
+ var Component$2 = defineComponent({
23815
23976
  name: "Slider",
23816
23977
  props: {
23817
23978
  modelValue: PropTypes.oneOfType([PropTypes.array, PropTypes.number]),
@@ -24257,8 +24418,8 @@ var Component$1 = defineComponent({
24257
24418
  return this.renderDom();
24258
24419
  }
24259
24420
  });
24260
- const Slider = withInstall(Component$1);
24261
- var Component = defineComponent({
24421
+ const Slider = withInstall(Component$2);
24422
+ var Component$1 = defineComponent({
24262
24423
  name: "ResizeLayout",
24263
24424
  props: {
24264
24425
  placement: PropTypes.placement().def("left"),
@@ -24510,7 +24671,111 @@ var Component = defineComponent({
24510
24671
  }, null)]);
24511
24672
  }
24512
24673
  });
24513
- const BkResizeLayout = withInstall(Component);
24674
+ const BkResizeLayout = withInstall(Component$1);
24675
+ const timelineProps = {
24676
+ list: PropTypes.array.def([]),
24677
+ titleAble: PropTypes.bool.def(false),
24678
+ extCls: PropTypes.string
24679
+ };
24680
+ var Component = defineComponent({
24681
+ name: "Timeline",
24682
+ props: timelineProps,
24683
+ emits: ["select"],
24684
+ setup(props, {
24685
+ emit
24686
+ }) {
24687
+ const defaultTimelines = ref([]);
24688
+ const updateTimelines = (timelines) => {
24689
+ const defaults = [];
24690
+ timelines.forEach((timeline2) => {
24691
+ defaults.push({
24692
+ tag: timeline2.tag,
24693
+ content: timeline2.content,
24694
+ type: timeline2.type,
24695
+ size: timeline2.size,
24696
+ color: timeline2.color,
24697
+ icon: timeline2.icon,
24698
+ filled: timeline2.filled
24699
+ });
24700
+ });
24701
+ defaultTimelines.value.splice(0, defaultTimelines.value.length, ...defaults);
24702
+ };
24703
+ const init = () => {
24704
+ var _a;
24705
+ defaultTimelines.value.splice(0, defaultTimelines.value.length, ...[{
24706
+ tag: "\u6B65\u9AA41",
24707
+ content: "\u5185\u5BB91"
24708
+ }, {
24709
+ tag: "\u6B65\u9AA42",
24710
+ content: "\u5185\u5BB92"
24711
+ }, {
24712
+ tag: "\u6B65\u9AA43",
24713
+ content: "\u5185\u5BB93"
24714
+ }]);
24715
+ if ((_a = props.list) == null ? void 0 : _a.length) {
24716
+ updateTimelines(props.list);
24717
+ }
24718
+ };
24719
+ const titleSelect = (item) => {
24720
+ try {
24721
+ emit("select", item);
24722
+ } catch (e) {
24723
+ console.warn(e);
24724
+ }
24725
+ };
24726
+ onMounted(init);
24727
+ return {
24728
+ defaultTimelines,
24729
+ titleSelect
24730
+ };
24731
+ },
24732
+ render() {
24733
+ const isIcon = (timeline2) => {
24734
+ const {
24735
+ icon
24736
+ } = timeline2;
24737
+ if (icon) {
24738
+ return Object.prototype.toString.call(icon) === "[object Object]";
24739
+ }
24740
+ return false;
24741
+ };
24742
+ const makeClass = (item) => {
24743
+ const timelineClsPrefix = "bk-timeline";
24744
+ const dotColors = ["blue", "red", "green", "yellow", "gray"];
24745
+ const timelineThemeCls = item.type ? `${timelineClsPrefix}-${item.type}` : `${timelineClsPrefix}-default`;
24746
+ const timelineSizeCls = item.size ? `${timelineClsPrefix}-${item.size}` : "";
24747
+ const timelineFilledCls = item.filled ? `${timelineClsPrefix}-filled` : "";
24748
+ const timelinesColorsCls = item.color && dotColors.includes(item.color) ? `${timelineClsPrefix}-${item.color}` : "";
24749
+ const timelinesCls = classes({}, `${timelineClsPrefix} ${timelineThemeCls} ${timelineSizeCls} ${timelinesColorsCls} ${timelineFilledCls}`);
24750
+ return timelinesCls;
24751
+ };
24752
+ return createVNode("ul", {
24753
+ "class": ["bk-timeline", this.extCls]
24754
+ }, [this.defaultTimelines.map((item) => {
24755
+ var _a, _b, _c;
24756
+ return createVNode("li", {
24757
+ "class": ["bk-timeline-dot", makeClass(item)]
24758
+ }, [isIcon(item) ? createVNode("div", {
24759
+ "class": "bk-timeline-icon"
24760
+ }, [createVNode("span", {
24761
+ "class": "bk-timeline-icon-inner"
24762
+ }, [item.icon])]) : "", createVNode("div", {
24763
+ "class": "bk-timeline-section"
24764
+ }, [createVNode("div", {
24765
+ "class": "bk-timeline-title",
24766
+ "onClick": () => {
24767
+ this.titleSelect(item);
24768
+ }
24769
+ }, [(_c = (_b = (_a = this.$slots).default) == null ? void 0 : _b.call(_a)) != null ? _c : createVNode("span", {
24770
+ "innerHTML": item.tag
24771
+ }, null)]), item.content ? createVNode("div", {
24772
+ "class": "bk-timeline-content",
24773
+ "innerHTML": item.content
24774
+ }, null) : ""])]);
24775
+ })]);
24776
+ }
24777
+ });
24778
+ const BkSteps = withInstall(Component);
24514
24779
  var components = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
24515
24780
  __proto__: null,
24516
24781
  Alert: BkAlert,
@@ -24537,7 +24802,7 @@ var components = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProp
24537
24802
  Swiper: BkSwiper,
24538
24803
  Select: BkSelect,
24539
24804
  Sideslider: BkSideslider,
24540
- Steps: BkSteps,
24805
+ Steps: BkSteps$1,
24541
24806
  Switcher: BkSwitcher,
24542
24807
  Table: BkTable,
24543
24808
  Tag: BkTag,
@@ -24559,7 +24824,8 @@ var components = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProp
24559
24824
  Dropdown: BkDropdown,
24560
24825
  Cascader: BkCascader,
24561
24826
  Slider,
24562
- ResizeLayout: BkResizeLayout
24827
+ ResizeLayout: BkResizeLayout,
24828
+ Timeline: BkSteps
24563
24829
  }, Symbol.toStringTag, { value: "Module" }));
24564
24830
  const createInstall = (prefix = "Bk") => (app) => {
24565
24831
  const pre = app.config.globalProperties.bkUIPrefix || prefix;
@@ -24577,4 +24843,4 @@ var preset = {
24577
24843
  install: createInstall(),
24578
24844
  version: "0.0.1"
24579
24845
  };
24580
- export { BkAffix as Affix, BkAlert as Alert, BkAnimateNumber as AnimateNumber, BkBacktop as Backtop, BkBadge as Badge, BkBreadcrumb as Breadcrumb, BkButton as Button, BkCard as Card, BkCascader as Cascader, BkCheckbox as Checkbox, BkCollapse as Collapse, BkContainer as Container, BkDatePicker as DatePicker, BkDialog as Dialog, BkDivider as Divider, BkDropdown as Dropdown, BkException as Exception, BkFixedNavbar as FixedNavbar, BkForm as Form, BkInput as Input, BkLink as Link, BkLoading as Loading, BkMenu as Menu, Message, BkModal as Modal, Navigation, Notify, BkPagination as Pagination, BkPopover as Popover, BkProgress as Progress, BkRadio as Radio, BkRate as Rate, BkResizeLayout as ResizeLayout, BkSelect as Select, BkSideslider as Sideslider, Slider, BkSteps as Steps, BkSwiper as Swiper, BkSwitcher as Switcher, BkTab as Tab, BkTable as Table, BkTag as Tag, TagInput, Transfer, BkTree as Tree, BkVirtualRender as VirtualRender, tooltips as bkTooltips, ClickOutside as clickoutside, BkContainer as containerProps, preset as default, mousewheel };
24846
+ export { BkAffix as Affix, BkAlert as Alert, BkAnimateNumber as AnimateNumber, BkBacktop as Backtop, BkBadge as Badge, BkBreadcrumb as Breadcrumb, BkButton as Button, BkCard as Card, BkCascader as Cascader, BkCheckbox as Checkbox, BkCollapse as Collapse, BkContainer as Container, BkDatePicker as DatePicker, BkDialog as Dialog, BkDivider as Divider, BkDropdown as Dropdown, BkException as Exception, BkFixedNavbar as FixedNavbar, BkForm as Form, BkInput as Input, BkLink as Link, BkLoading as Loading, BkMenu as Menu, Message, BkModal as Modal, Navigation, Notify, BkPagination as Pagination, BkPopover as Popover, BkProgress as Progress, BkRadio as Radio, BkRate as Rate, BkResizeLayout as ResizeLayout, BkSelect as Select, BkSideslider as Sideslider, Slider, BkSteps$1 as Steps, BkSwiper as Swiper, BkSwitcher as Switcher, BkTab as Tab, BkTable as Table, BkTag as Tag, TagInput, BkSteps as Timeline, Transfer, BkTree as Tree, BkVirtualRender as VirtualRender, tooltips as bkTooltips, ClickOutside as clickoutside, BkContainer as containerProps, preset as default, mousewheel };