@ecan-bi/pivot-table 1.0.54 → 1.0.56

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.
@@ -1,6 +1,6 @@
1
- /*! @ecan-bi/pivot-table@1.0.54 */
2
- import { createVNode as I, defineComponent as ue, inject as F, ref as v, reactive as fe, computed as me, unref as s, watch as pe, resolveComponent as $, openBlock as N, createBlock as B, withCtx as H, createElementVNode as Z, toDisplayString as x, normalizeClass as A, createElementBlock as he, normalizeStyle as ge, mergeProps as ve, createCommentVNode as be, nextTick as ee } from "vue";
3
- import { A as U, _ as ye, E as Oe, n as te, d as we } from "./index-1eaea0ed.mjs";
1
+ /*! @ecan-bi/pivot-table@1.0.56 */
2
+ import { createVNode as I, defineComponent as ue, inject as F, ref as g, reactive as fe, computed as me, unref as s, watch as pe, resolveComponent as $, openBlock as N, createBlock as A, withCtx as B, createElementVNode as Z, toDisplayString as x, normalizeClass as H, createElementBlock as he, normalizeStyle as be, mergeProps as ge, createCommentVNode as ve, nextTick as ee } from "vue";
3
+ import { A as U, _ as ye, E as Oe, n as te, d as we } from "./index-7863b01b.mjs";
4
4
  import { cloneDeep as Ce } from "lodash-es";
5
5
  import "dayjs";
6
6
  import "axios";
@@ -119,50 +119,50 @@ const Ve = ue({
119
119
  GREATER: "大于",
120
120
  GREATER_EQUAL: "大于等于",
121
121
  NOT_EQUAL: "不等于"
122
- }, l = 0.37, o = 0.6, R = 0.97, P = 0.9, b = `dmodal_${te(6)}`, T = () => document.querySelector("#ProviderConfig > #container") || document.body, S = F("theme", "light"), y = v({}), _ = v([]), ie = F("indicatorUrl", ""), re = F("splitSymbol", ""), Q = v([]), O = v(!1), w = v({}), M = fe({
122
+ }, l = 0.37, o = 0.6, R = 0.97, P = 0.9, v = `dmodal_${te(6)}`, T = () => document.querySelector("#ProviderConfig > #container") || document.body, S = F("theme", "light"), y = g({}), _ = g([]), ie = F("indicatorUrl", ""), ae = F("splitSymbol", ""), Q = g([]), O = g(!1), w = g({}), M = fe({
123
123
  keyName: "",
124
124
  visible: !1,
125
125
  columns: [],
126
126
  title: ""
127
- }), G = v([]), W = v(), ae = me(() => {
128
- let i = `drill-modal ${b}`;
127
+ }), G = g([]), W = g(), re = me(() => {
128
+ let i = `drill-modal ${v}`;
129
129
  return O.value && (i += " full"), s(S) && (i += ` ${s(S)}`), i;
130
130
  }), D = (i) => {
131
- const r = document.querySelector(`.${b} .ant-modal-header`);
132
- if (r)
131
+ const a = document.querySelector(`.${v} .ant-modal-header`);
132
+ if (a)
133
133
  if (i)
134
- r.addEventListener("mousedown", J);
134
+ a.addEventListener("mousedown", J);
135
135
  else {
136
- const u = r.parentElement;
137
- u && (u.style.left = "", u.style.top = ""), r.removeEventListener("mousedown", J);
136
+ const u = a.parentElement;
137
+ u && (u.style.left = "", u.style.top = ""), a.removeEventListener("mousedown", J);
138
138
  }
139
139
  }, K = (i) => {
140
- const r = document.querySelector(`.${b} .ant-modal-header`);
141
- r && (i ? r.addEventListener("dblclick", j) : r.removeEventListener("dblclick", j));
140
+ const a = document.querySelector(`.${v} .ant-modal-header`);
141
+ a && (i ? a.addEventListener("dblclick", j) : a.removeEventListener("dblclick", j));
142
142
  }, J = (i) => {
143
- we(i, `.${b} .ant-modal-header`);
143
+ we(i, `.${v} .ant-modal-header`);
144
144
  }, j = () => {
145
145
  O.value = !O.value, ee(() => {
146
- O.value ? (s(w).width = parseFloat(s(y).width) * R + "px", s(w).height = (props.isIframeMode ? parseFloat(s(y).height) : document.body.clientHeight) * P + "px", D(!1)) : (s(w).width = parseFloat(s(y).width) * l + "px", s(w).height = (props.isIframeMode ? parseFloat(s(y).height) : document.body.clientHeight) * o + "px", D(!0));
146
+ O.value ? (s(w).width = parseFloat(s(y).width) * R + "px", s(w).height = (e.isIframeMode ? parseFloat(s(y).height) : document.body.clientHeight) * P + "px", D(!1)) : (s(w).width = parseFloat(s(y).width) * l + "px", s(w).height = (e.isIframeMode ? parseFloat(s(y).height) : document.body.clientHeight) * o + "px", D(!0));
147
147
  });
148
148
  }, se = () => {
149
149
  O.value = !1, K(!1), D(!1);
150
- }, ce = ({ drillDimension: i, drillFieldData: r, usedDimensionFields: u, tableProps: h }) => {
150
+ }, ce = ({ drillDimension: i, drillFieldData: a, usedDimensionFields: u, tableProps: h }) => {
151
151
  const c = Ce(h), { graphicConfig: f, allDimensions: E, pageConfig: C } = c, m = te(6), p = [];
152
152
  G.value = [...u, i.label], E.value = E, C.value = C;
153
- const d = f.indicators.filter((a) => a.show).map((a) => a.label);
153
+ const d = f.indicators.filter((r) => r.show).map((r) => r.label);
154
154
  d != null && d.length && (M.title = `下钻:${d.join("、")}`);
155
- for (const a of r) {
156
- const g = E.find((Y) => [Y.title, Y.label].includes(a.dimensionKey)), L = a.value.split(re);
157
- let X = a.value;
155
+ for (const r of a) {
156
+ const b = E.find((Y) => [Y.title, Y.label].includes(r.dimensionKey)), L = r.value.split(ae);
157
+ let X = r.value;
158
158
  L != null && L.length && (X = L[L.length - 1]), p.push({
159
- conditionKey: g.label,
160
- conditionLabel: g.title || g.label,
161
- conditionName: g.name,
162
- conditionValueType: g.genericType,
163
- indexCode: g.indexCode,
164
- typeGuid: g.typeGuid,
165
- indexCodeNum: g.indexCodeNum,
159
+ conditionKey: b.label,
160
+ conditionLabel: b.title || b.label,
161
+ conditionName: b.name,
162
+ conditionValueType: b.genericType,
163
+ indexCode: b.indexCode,
164
+ typeGuid: b.typeGuid,
165
+ indexCodeNum: b.indexCodeNum,
166
166
  rule: "EQUAL",
167
167
  dataType: "",
168
168
  customValue: X
@@ -181,33 +181,33 @@ const Ve = ue({
181
181
  top: 0,
182
182
  left: 0,
183
183
  width: parseFloat(s(C).width) * l + "px",
184
- height: (props.isIframeMode ? parseFloat(s(C).height) : document.body.clientHeight) * o + "px",
184
+ height: (e.isIframeMode ? parseFloat(s(C).height) : document.body.clientHeight) * o + "px",
185
185
  graphicConfig: f
186
186
  }, M.visible = !0, ee(() => {
187
187
  s(W).refreshData(), K(!0), D(!0);
188
188
  });
189
- }, de = ({ type: i, data: r }) => {
190
- if (i === "11" && r) {
189
+ }, de = ({ type: i, data: a }) => {
190
+ if (i === "11" && a) {
191
191
  const {
192
192
  indicatorList: u = [],
193
193
  queryColumns: h = []
194
- } = r, f = u.concat(h).filter((m) => m.conditions || m.filter), E = V(f, "conditions", !0), C = V(r.sqlConditions, "sqlConditions", !1);
194
+ } = a, f = u.concat(h).filter((m) => m.conditions || m.filter), E = V(f, "conditions", !0), C = V(a.sqlConditions, "sqlConditions", !1);
195
195
  Q.value = E.concat(C).map((m) => {
196
- const p = s(_).find((a) => a.label === m.label);
196
+ const p = s(_).find((r) => r.label === m.label);
197
197
  let d = m.fieldValue;
198
198
  if (d && typeof d == "string") {
199
- const a = d.split(",");
200
- (a == null ? void 0 : a.length) > 3 && (d = a.slice(0, 3).join(",") + "等");
199
+ const r = d.split(",");
200
+ (r == null ? void 0 : r.length) > 3 && (d = r.slice(0, 3).join(",") + "等");
201
201
  } else
202
202
  d || (d = '""');
203
203
  return `${(p == null ? void 0 : p.title) || m.label} ${n[m.rule]} ${d}`;
204
204
  }) || [];
205
205
  }
206
206
  };
207
- function V(i, r, u) {
207
+ function V(i, a, u) {
208
208
  const h = [];
209
209
  for (const c of i)
210
- c[r] ? h.push(...V(c[r], r, u)) : c.filter ? h.push({
210
+ c[a] ? h.push(...V(c[a], a, u)) : c.filter ? h.push({
211
211
  ...c.filter,
212
212
  label: c.label
213
213
  }) : (!u || c.dataType !== "component" && !(c.fieldValue.startsWith("${") && c.fieldValue.endsWith("}"))) && h.push(c);
@@ -219,7 +219,7 @@ const Ve = ue({
219
219
  showModal: ce
220
220
  }), {
221
221
  theme: S,
222
- wrapClassName: ae,
222
+ wrapClassName: re,
223
223
  conditionInfo: Q,
224
224
  drillInfo: M,
225
225
  pivotTableConfig: w,
@@ -234,9 +234,9 @@ const Ve = ue({
234
234
  };
235
235
  }
236
236
  }), Fe = ["title"];
237
- function Be(e, t, n, l, o, R) {
238
- const P = $("close-outlined"), b = $("switcher-outlined"), T = $("border-outlined"), S = $("ecan-pivot-table"), y = $("a-modal");
239
- return N(), B(y, {
237
+ function Ae(e, t, n, l, o, R) {
238
+ const P = $("close-outlined"), v = $("switcher-outlined"), T = $("border-outlined"), S = $("ecan-pivot-table"), y = $("a-modal");
239
+ return N(), A(y, {
240
240
  "wrap-class-name": e.wrapClassName,
241
241
  visible: e.drillInfo.visible,
242
242
  "onUpdate:visible": t[1] || (t[1] = (_) => e.drillInfo.visible = _),
@@ -247,56 +247,58 @@ function Be(e, t, n, l, o, R) {
247
247
  getContainer: e.getContainer,
248
248
  onCancel: e.onDetailCancel
249
249
  }, {
250
- title: H(() => [
250
+ title: B(() => [
251
251
  Z("div", {
252
252
  class: "modal-title",
253
253
  title: e.conditionInfo.join("、")
254
254
  }, x(e.drillInfo.title) + " " + x(e.conditionInfo.join("、")), 9, Fe)
255
255
  ]),
256
- closeIcon: H(() => [
256
+ closeIcon: B(() => [
257
257
  I(P, {
258
- class: A(["modal-icon", e.theme])
258
+ class: H(["modal-icon", e.theme])
259
259
  }, null, 8, ["class"])
260
260
  ]),
261
- default: H(() => [
261
+ default: B(() => [
262
262
  Z("div", {
263
263
  class: "zoom-btn",
264
264
  onClick: t[0] || (t[0] = (..._) => e.toggleFullScreen && e.toggleFullScreen(..._))
265
265
  }, [
266
- e.isIndFullScreen ? (N(), B(b, {
266
+ e.isIndFullScreen ? (N(), A(v, {
267
267
  key: 0,
268
- class: A(["modal-icon", e.theme])
269
- }, null, 8, ["class"])) : (N(), B(T, {
268
+ class: H(["modal-icon", e.theme])
269
+ }, null, 8, ["class"])) : (N(), A(T, {
270
270
  key: 1,
271
- class: A(["modal-icon", e.theme])
271
+ class: H(["modal-icon", e.theme])
272
272
  }, null, 8, ["class"]))
273
273
  ]),
274
274
  e.drillInfo.visible ? (N(), he("div", {
275
275
  key: 0,
276
- style: ge({
276
+ style: be({
277
277
  position: "relative",
278
278
  width: e.pivotTableConfig.width,
279
279
  height: e.pivotTableConfig.height
280
280
  })
281
281
  }, [
282
- I(S, ve({ ref: "pivotTableRef" }, e.pivotTableConfig, {
282
+ I(S, ge({ ref: "pivotTableRef" }, e.pivotTableConfig, {
283
283
  theme: e.theme,
284
284
  fullMode: !1,
285
285
  allowDrill: !0,
286
286
  showFullScreen: !1,
287
+ showClear: !1,
288
+ isAllowSaveConfig: !1,
287
289
  indicatorUrl: e.indicatorUrl,
288
290
  relateKeyName: e.drillInfo.keyName,
289
291
  usedDimensionFields: e.usedDimensionFields,
290
292
  scaleValue: e.scaleValue,
291
293
  onTableChange: e.onPivotTableChange
292
294
  }), null, 16, ["theme", "indicatorUrl", "relateKeyName", "usedDimensionFields", "scaleValue", "onTableChange"])
293
- ], 4)) : be("", !0)
295
+ ], 4)) : ve("", !0)
294
296
  ]),
295
297
  _: 1
296
298
  }, 8, ["wrap-class-name", "visible", "getContainer", "onCancel"]);
297
299
  }
298
- const Ke = /* @__PURE__ */ ye(Ve, [["render", Be], ["__scopeId", "data-v-d4771623"]]);
300
+ const Ke = /* @__PURE__ */ ye(Ve, [["render", Ae], ["__scopeId", "data-v-bbb28319"]]);
299
301
  export {
300
302
  Ke as default
301
303
  };
302
- //# sourceMappingURL=DrillModal-b69055dd.mjs.map
304
+ //# sourceMappingURL=DrillModal-595e0606.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DrillModal-595e0606.mjs","sources":["../node_modules/@ant-design/icons-svg/es/asn/BorderOutlined.js","../node_modules/@ant-design/icons-vue/es/icons/BorderOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/CloseOutlined.js","../node_modules/@ant-design/icons-vue/es/icons/CloseOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/SwitcherOutlined.js","../node_modules/@ant-design/icons-vue/es/icons/SwitcherOutlined.js","../src/component/DrillModal.vue"],"sourcesContent":["// This icon file is generated automatically.\nvar BorderOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z\" } }] }, \"name\": \"border\", \"theme\": \"outlined\" };\nexport default BorderOutlined;\n","import { createVNode as _createVNode } from \"vue\";\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport BorderOutlinedSvg from \"@ant-design/icons-svg/es/asn/BorderOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar BorderOutlined = function BorderOutlined(props, context) {\n var p = _objectSpread({}, props, context.attrs);\n\n return _createVNode(AntdIcon, _objectSpread({}, p, {\n \"icon\": BorderOutlinedSvg\n }), null);\n};\n\nBorderOutlined.displayName = 'BorderOutlined';\nBorderOutlined.inheritAttrs = false;\nexport default BorderOutlined;","// This icon file is generated automatically.\nvar CloseOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"fill-rule\": \"evenodd\", \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M799.86 166.31c.02 0 .04.02.08.06l57.69 57.7c.04.03.05.05.06.08a.12.12 0 010 .06c0 .03-.02.05-.06.09L569.93 512l287.7 287.7c.04.04.05.06.06.09a.12.12 0 010 .07c0 .02-.02.04-.06.08l-57.7 57.69c-.03.04-.05.05-.07.06a.12.12 0 01-.07 0c-.03 0-.05-.02-.09-.06L512 569.93l-287.7 287.7c-.04.04-.06.05-.09.06a.12.12 0 01-.07 0c-.02 0-.04-.02-.08-.06l-57.69-57.7c-.04-.03-.05-.05-.06-.07a.12.12 0 010-.07c0-.03.02-.05.06-.09L454.07 512l-287.7-287.7c-.04-.04-.05-.06-.06-.09a.12.12 0 010-.07c0-.02.02-.04.06-.08l57.7-57.69c.03-.04.05-.05.07-.06a.12.12 0 01.07 0c.03 0 .05.02.09.06L512 454.07l287.7-287.7c.04-.04.06-.05.09-.06a.12.12 0 01.07 0z\" } }] }, \"name\": \"close\", \"theme\": \"outlined\" };\nexport default CloseOutlined;\n","import { createVNode as _createVNode } from \"vue\";\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport CloseOutlinedSvg from \"@ant-design/icons-svg/es/asn/CloseOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar CloseOutlined = function CloseOutlined(props, context) {\n var p = _objectSpread({}, props, context.attrs);\n\n return _createVNode(AntdIcon, _objectSpread({}, p, {\n \"icon\": CloseOutlinedSvg\n }), null);\n};\n\nCloseOutlined.displayName = 'CloseOutlined';\nCloseOutlined.inheritAttrs = false;\nexport default CloseOutlined;","// This icon file is generated automatically.\nvar SwitcherOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M752 240H144c-17.7 0-32 14.3-32 32v608c0 17.7 14.3 32 32 32h608c17.7 0 32-14.3 32-32V272c0-17.7-14.3-32-32-32zm-40 600H184V312h528v528zm168-728H264c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h576v576c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V144c0-17.7-14.3-32-32-32zM300 550h296v64H300z\" } }] }, \"name\": \"switcher\", \"theme\": \"outlined\" };\nexport default SwitcherOutlined;\n","import { createVNode as _createVNode } from \"vue\";\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport SwitcherOutlinedSvg from \"@ant-design/icons-svg/es/asn/SwitcherOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar SwitcherOutlined = function SwitcherOutlined(props, context) {\n var p = _objectSpread({}, props, context.attrs);\n\n return _createVNode(AntdIcon, _objectSpread({}, p, {\n \"icon\": SwitcherOutlinedSvg\n }), null);\n};\n\nSwitcherOutlined.displayName = 'SwitcherOutlined';\nSwitcherOutlined.inheritAttrs = false;\nexport default SwitcherOutlined;","<template>\r\n <a-modal\r\n :wrap-class-name=\"wrapClassName\"\r\n v-model:visible=\"drillInfo.visible\"\r\n width=\"60%\"\r\n :footer=\"null\"\r\n :maskClosable=\"false\"\r\n :destroyOnClose=\"true\"\r\n :getContainer=\"getContainer\"\r\n @cancel=\"onDetailCancel\"\r\n >\r\n <template #title>\r\n <div class=\"modal-title\" :title=\"conditionInfo.join('、')\">\r\n {{ drillInfo.title }} {{ conditionInfo.join('、') }}\r\n </div>\r\n </template>\r\n <template #closeIcon>\r\n <close-outlined class=\"modal-icon\" :class=\"theme\" />\r\n </template>\r\n <div class=\"zoom-btn\" @click=\"toggleFullScreen\">\r\n <switcher-outlined class=\"modal-icon\" :class=\"theme\" v-if=\"isIndFullScreen\"/>\r\n <border-outlined class=\"modal-icon\" :class=\"theme\" v-else />\r\n </div>\r\n <div\r\n v-if=\"drillInfo.visible\"\r\n :style=\"{\r\n position: 'relative',\r\n width: pivotTableConfig.width,\r\n height: pivotTableConfig.height\r\n }\"\r\n >\r\n <ecan-pivot-table\r\n ref=\"pivotTableRef\"\r\n v-bind=\"pivotTableConfig\"\r\n :theme=\"theme\"\r\n :fullMode=\"false\"\r\n :allowDrill=\"true\"\r\n :showFullScreen=\"false\"\r\n :showClear=\"false\"\r\n :isAllowSaveConfig=\"false\"\r\n :indicatorUrl=\"indicatorUrl\"\r\n :relateKeyName=\"drillInfo.keyName\"\r\n :usedDimensionFields=\"usedDimensionFields\"\r\n :scaleValue=\"scaleValue\"\r\n @tableChange=\"onPivotTableChange\"\r\n />\r\n </div>\r\n </a-modal>\r\n</template>\r\n\r\n<script>\r\nimport { defineComponent, reactive, ref, unref, nextTick, watch, inject, computed } from 'vue'\r\nimport {\r\n BorderOutlined,\r\n SwitcherOutlined,\r\n CloseOutlined\r\n} from '@ant-design/icons-vue'\r\nimport { dragModalAction } from '@/utils/util'\r\nimport { nanoid } from 'nanoid'\r\nimport EcanPivotTable from '../pivotTable'\r\nimport { cloneDeep } from 'lodash-es'\r\nexport default defineComponent({\r\n name: 'DrillModal',\r\n props: {\r\n scaleValue: {\r\n type: Object,\r\n default: () => ({\r\n widthScale: 1,\r\n heightScale: 1\r\n })\r\n },\r\n isIframeMode: {\r\n type: Boolean,\r\n default: false\r\n }\r\n },\r\n components: {\r\n BorderOutlined,\r\n SwitcherOutlined,\r\n CloseOutlined,\r\n EcanPivotTable\r\n },\r\n setup (props, { expose }) {\r\n const ruleMap = {\r\n IN: '属于',\r\n NOT_IN: '不属于',\r\n LIKE: '包含',\r\n NOT_LIKE: '不包含',\r\n 'LIKE%': '开头是',\r\n '%LIKE': '结尾是',\r\n EQUAL: '等于',\r\n LESS: '小于',\r\n LESS_EQUAL: '小于等于',\r\n GREATER: '大于',\r\n GREATER_EQUAL: '大于等于',\r\n NOT_EQUAL: '不等于'\r\n }\r\n const noramlWidthScale = 0.37\r\n const noramlHeightScale = 0.6\r\n const fullModalWidthScale = 0.97\r\n const fullModalHeightScale = 0.9\r\n const uniqueClass = `dmodal_${nanoid(6)}`\r\n\r\n // const getContainer = inject('getContainer', () => {})\r\n const getContainer = () => document.querySelector('#ProviderConfig > #container') || document.body\r\n const theme = inject('theme', 'light')\r\n const pageConfig = ref({})\r\n const allDimensions = ref([])\r\n const indicatorUrl = inject('indicatorUrl', '')\r\n const splitSymbol = inject('splitSymbol', '')\r\n const conditionInfo = ref([])\r\n const isIndFullScreen = ref(false)\r\n const pivotTableConfig = ref({})\r\n const drillInfo = reactive({\r\n keyName: '',\r\n visible: false,\r\n columns: [],\r\n title: ''\r\n })\r\n const usedDimensionFields = ref([])\r\n const pivotTableRef = ref()\r\n\r\n const wrapClassName = computed(() => {\r\n let result = `drill-modal ${uniqueClass}`\r\n if (isIndFullScreen.value) {\r\n result += ' full'\r\n }\r\n if (unref(theme)) {\r\n result += ` ${unref(theme)}`\r\n }\r\n return result\r\n })\r\n\r\n const bindModalMoveEvent = (flag) => {\r\n const modalHeader = document.querySelector(`.${uniqueClass} .ant-modal-header`)\r\n if (modalHeader) {\r\n if (flag) {\r\n modalHeader.addEventListener('mousedown', onModalMouseDown)\r\n } else {\r\n const modalEl = modalHeader.parentElement\r\n if (modalEl) {\r\n modalEl.style.left = ''\r\n modalEl.style.top = ''\r\n }\r\n modalHeader.removeEventListener('mousedown', onModalMouseDown)\r\n }\r\n }\r\n }\r\n\r\n const bindModalHeaderClickEvent = (flag) => {\r\n const modalHeader = document.querySelector(`.${uniqueClass} .ant-modal-header`)\r\n if (modalHeader) {\r\n if (flag) {\r\n modalHeader.addEventListener('dblclick', toggleFullScreen)\r\n } else {\r\n modalHeader.removeEventListener('dblclick', toggleFullScreen)\r\n }\r\n }\r\n }\r\n\r\n const onModalMouseDown = (e) => {\r\n dragModalAction(e, `.${uniqueClass} .ant-modal-header`)\r\n }\r\n\r\n const toggleFullScreen = () => {\r\n isIndFullScreen.value = !isIndFullScreen.value\r\n nextTick(() => {\r\n if (isIndFullScreen.value) {\r\n unref(pivotTableConfig).width = parseFloat(unref(pageConfig).width) * fullModalWidthScale + 'px'\r\n unref(pivotTableConfig).height = (props.isIframeMode ? parseFloat(unref(pageConfig).height) : document.body.clientHeight) * fullModalHeightScale + 'px'\r\n bindModalMoveEvent(false)\r\n } else {\r\n unref(pivotTableConfig).width = parseFloat(unref(pageConfig).width) * noramlWidthScale + 'px'\r\n unref(pivotTableConfig).height = (props.isIframeMode ? parseFloat(unref(pageConfig).height) : document.body.clientHeight) * noramlHeightScale + 'px'\r\n bindModalMoveEvent(true)\r\n }\r\n })\r\n }\r\n\r\n const onDetailCancel = () => {\r\n isIndFullScreen.value = false\r\n bindModalHeaderClickEvent(false)\r\n bindModalMoveEvent(false)\r\n }\r\n\r\n const showModal = ({ drillDimension, drillFieldData, usedDimensionFields: fields, tableProps }) => {\r\n const cloneProps = cloneDeep(tableProps)\r\n const { graphicConfig, allDimensions, pageConfig } = cloneProps\r\n const newKey = nanoid(6)\r\n const newControlList = []\r\n usedDimensionFields.value = [...fields, drillDimension.label]\r\n allDimensions.value = allDimensions\r\n pageConfig.value = pageConfig\r\n const nameList = graphicConfig.indicators.filter(v => v.show).map(v => v.label)\r\n if (nameList?.length) {\r\n drillInfo.title = `下钻:${nameList.join('、')}`\r\n }\r\n for (const fieldData of drillFieldData) {\r\n const target = allDimensions.find((v) => [v.title, v.label].includes(fieldData.dimensionKey))\r\n const list = fieldData.value.split(splitSymbol)\r\n let customValue = fieldData.value\r\n if (list?.length) {\r\n customValue = list[list.length - 1]\r\n }\r\n newControlList.push({\r\n conditionKey: target.label,\r\n conditionLabel: target.title || target.label,\r\n conditionName: target.name,\r\n conditionValueType: target.genericType,\r\n indexCode: target.indexCode,\r\n typeGuid: target.typeGuid,\r\n indexCodeNum: target.indexCodeNum,\r\n rule: 'EQUAL',\r\n dataType: '',\r\n customValue\r\n })\r\n }\r\n graphicConfig.queryColumnList = [drillDimension]\r\n if (newControlList?.length) {\r\n if (!graphicConfig.controlList) {\r\n graphicConfig.controlList = []\r\n }\r\n graphicConfig.controlList.push(...newControlList)\r\n graphicConfig.controlList = [\r\n {\r\n join: '&&',\r\n conditions: graphicConfig.controlList\r\n }\r\n ]\r\n }\r\n pivotTableConfig.value = {\r\n ...cloneProps,\r\n id: newKey,\r\n keyName: `透视表_${newKey}`,\r\n position: 'relative',\r\n top: 0,\r\n left: 0,\r\n width: parseFloat(unref(pageConfig).width) * noramlWidthScale + 'px',\r\n height: (props.isIframeMode ? parseFloat(unref(pageConfig).height) : document.body.clientHeight) * noramlHeightScale + 'px',\r\n graphicConfig\r\n }\r\n drillInfo.visible = true\r\n nextTick(() => {\r\n unref(pivotTableRef).refreshData()\r\n bindModalHeaderClickEvent(true)\r\n bindModalMoveEvent(true)\r\n })\r\n }\r\n\r\n const onPivotTableChange = ({ type, data }) => {\r\n if (type === '11' && data) {\r\n const {\r\n indicatorList = [],\r\n queryColumns = []\r\n } = data\r\n const mergeList = indicatorList.concat(queryColumns)\r\n const conditionList = mergeList.filter((v) => v.conditions || v.filter)\r\n const customValueList = loopConditions(conditionList, 'conditions', true)\r\n const sqlValueList = loopConditions(data.sqlConditions, 'sqlConditions', false)\r\n conditionInfo.value = customValueList.concat(sqlValueList).map((v) => {\r\n const target = unref(allDimensions).find((dim) => dim.label === v.label)\r\n let fieldStr = v.fieldValue\r\n if (fieldStr && typeof fieldStr === 'string') {\r\n const list = fieldStr.split(',')\r\n if (list?.length > 3) {\r\n fieldStr = list.slice(0, 3).join(',') + '等'\r\n }\r\n } else if (!fieldStr) {\r\n fieldStr = '\\\"\\\"'\r\n }\r\n return `${target?.title || v.label} ${ruleMap[v.rule]} ${fieldStr}`\r\n }) || []\r\n }\r\n }\r\n\r\n function loopConditions (list, field, flag) {\r\n const result = []\r\n for (const item of list) {\r\n if (item[field]) {\r\n result.push(...loopConditions(item[field], field, flag))\r\n } else if (item.filter) {\r\n result.push({\r\n ...item.filter,\r\n label: item.label\r\n })\r\n } else if (!flag || (item.dataType !== 'component' && !(item.fieldValue.startsWith('${') && item.fieldValue.endsWith('}')))) {\r\n result.push(item)\r\n }\r\n }\r\n return result\r\n }\r\n\r\n watch(drillInfo.visible, (val) => {\r\n // @ts-ignore\r\n window.modalShow && window.modalShow(val)\r\n })\r\n\r\n expose({\r\n showModal\r\n })\r\n return {\r\n theme,\r\n wrapClassName,\r\n conditionInfo,\r\n drillInfo,\r\n pivotTableConfig,\r\n indicatorUrl,\r\n isIndFullScreen,\r\n usedDimensionFields,\r\n pivotTableRef,\r\n toggleFullScreen,\r\n onDetailCancel,\r\n onPivotTableChange,\r\n getContainer\r\n }\r\n }\r\n})\r\n</script>\r\n\r\n<style lang=\"less\">\r\n.drill-modal.full {\r\n .ant-modal {\r\n width: 100% !important;\r\n height: 100%;\r\n max-width: unset;\r\n top: 0;\r\n padding-bottom: 0;\r\n margin: 0;\r\n }\r\n .ant-modal-content {\r\n display: flex;\r\n flex-direction: column;\r\n height: 100%;\r\n }\r\n .ant-modal-body {\r\n flex: 1;\r\n }\r\n}\r\n</style>\r\n<style lang=\"less\" scoped>\r\n.modal-title {\r\n white-space: nowrap;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n padding-right: 75px;\r\n user-select: none;\r\n}\r\n.modal-icon {\r\n vertical-align: unset;\r\n font-size: 16px;\r\n}\r\n.zoom-btn {\r\n cursor: pointer;\r\n position: absolute;\r\n top: 2px;\r\n right: 60px;\r\n line-height: 54px;\r\n .darkBlue {\r\n color: #b2c3dd;\r\n }\r\n}\r\n</style>\r\n"],"names":["BorderOutlined","BorderOutlinedSvg","_objectSpread","target","i","source","ownKeys","sym","key","_defineProperty","obj","value","props","context","p","_createVNode","AntdIcon","BorderOutlined$1","CloseOutlined","CloseOutlinedSvg","CloseOutlined$1","SwitcherOutlined","SwitcherOutlinedSvg","SwitcherOutlined$1","_sfc_main","defineComponent","EcanPivotTable","expose","ruleMap","noramlWidthScale","noramlHeightScale","fullModalWidthScale","fullModalHeightScale","uniqueClass","nanoid","getContainer","theme","inject","pageConfig","ref","allDimensions","indicatorUrl","splitSymbol","conditionInfo","isIndFullScreen","pivotTableConfig","drillInfo","reactive","usedDimensionFields","pivotTableRef","wrapClassName","computed","result","unref","bindModalMoveEvent","flag","modalHeader","onModalMouseDown","modalEl","bindModalHeaderClickEvent","toggleFullScreen","e","dragModalAction","nextTick","onDetailCancel","showModal","drillDimension","drillFieldData","fields","tableProps","cloneProps","cloneDeep","graphicConfig","newKey","newControlList","nameList","v","fieldData","list","customValue","onPivotTableChange","type","data","indicatorList","queryColumns","conditionList","customValueList","loopConditions","sqlValueList","dim","fieldStr","field","item","watch","val","_createBlock","_component_a_modal","_ctx","_cache","$event","_createElementVNode","_toDisplayString","_hoisted_1","_component_close_outlined","_normalizeClass","args","_component_switcher_outlined","_component_border_outlined","_createElementBlock","_normalizeStyle","_component_ecan_pivot_table","_mergeProps"],"mappings":";;;;;;;;;;AACA,IAAIA,KAAiB,EAAE,MAAQ,EAAE,KAAO,OAAO,OAAS,EAAE,SAAW,iBAAiB,WAAa,QAAS,GAAE,UAAY,CAAC,EAAE,KAAO,QAAQ,OAAS,EAAE,GAAK,0IAAyI,GAAI,EAAC,GAAI,MAAQ,UAAU,OAAS,WAAU;AACnV,MAAAC,KAAeD;ACAf,SAASE,GAAcC,GAAQ;AAAE,WAASC,IAAI,GAAGA,IAAI,UAAU,QAAQA,KAAK;AAAE,QAAIC,IAAS,UAAUD,CAAC,KAAK,OAAO,OAAO,UAAUA,CAAC,CAAC,IAAI,CAAA,GAAQE,IAAU,OAAO,KAAKD,CAAM;AAAG,IAAI,OAAO,OAAO,yBAA0B,eAAcC,IAAUA,EAAQ,OAAO,OAAO,sBAAsBD,CAAM,EAAE,OAAO,SAAUE,GAAK;AAAE,aAAO,OAAO,yBAAyBF,GAAQE,CAAG,EAAE;AAAA,KAAa,CAAC,IAAKD,EAAQ,QAAQ,SAAUE,GAAK;AAAEC,MAAAA,GAAgBN,GAAQK,GAAKH,EAAOG,CAAG,CAAC;AAAA,IAAE,CAAE;AAAA;AAAK,SAAOL;AAAS;AAEze,SAASM,GAAgBC,GAAKF,GAAKG,GAAO;AAAE,SAAIH,KAAOE,IAAO,OAAO,eAAeA,GAAKF,GAAK,EAAE,OAAOG,GAAO,YAAY,IAAM,cAAc,IAAM,UAAU,GAAM,CAAA,IAAYD,EAAIF,CAAG,IAAIG,GAAgBD;AAAM;AAOjN,IAAIV,IAAiB,SAAwBY,GAAOC,GAAS;AAC3D,MAAIC,IAAIZ,GAAc,CAAA,GAAIU,GAAOC,EAAQ,KAAK;AAE9C,SAAOE,EAAaC,GAAUd,GAAc,CAAA,GAAIY,GAAG;AAAA,IACjD,MAAQb;AAAA,EACZ,CAAG,GAAG,IAAI;AACV;AAEAD,EAAe,cAAc;AAC7BA,EAAe,eAAe;AAC9B,MAAAiB,KAAejB;ACpBf,IAAIkB,KAAgB,EAAE,MAAQ,EAAE,KAAO,OAAO,OAAS,EAAE,aAAa,WAAW,SAAW,iBAAiB,WAAa,QAAS,GAAE,UAAY,CAAC,EAAE,KAAO,QAAQ,OAAS,EAAE,GAAK,8nBAA+nB,CAAA,EAAG,GAAE,MAAQ,SAAS,OAAS,WAAU;AAC31B,MAAAC,KAAeD;ACAf,SAAShB,GAAcC,GAAQ;AAAE,WAASC,IAAI,GAAGA,IAAI,UAAU,QAAQA,KAAK;AAAE,QAAIC,IAAS,UAAUD,CAAC,KAAK,OAAO,OAAO,UAAUA,CAAC,CAAC,IAAI,CAAA,GAAQE,IAAU,OAAO,KAAKD,CAAM;AAAG,IAAI,OAAO,OAAO,yBAA0B,eAAcC,IAAUA,EAAQ,OAAO,OAAO,sBAAsBD,CAAM,EAAE,OAAO,SAAUE,GAAK;AAAE,aAAO,OAAO,yBAAyBF,GAAQE,CAAG,EAAE;AAAA,KAAa,CAAC,IAAKD,EAAQ,QAAQ,SAAUE,GAAK;AAAEC,MAAAA,GAAgBN,GAAQK,GAAKH,EAAOG,CAAG,CAAC;AAAA,IAAE,CAAE;AAAA;AAAK,SAAOL;AAAS;AAEze,SAASM,GAAgBC,GAAKF,GAAKG,GAAO;AAAE,SAAIH,KAAOE,IAAO,OAAO,eAAeA,GAAKF,GAAK,EAAE,OAAOG,GAAO,YAAY,IAAM,cAAc,IAAM,UAAU,GAAM,CAAA,IAAYD,EAAIF,CAAG,IAAIG,GAAgBD;AAAM;AAOjN,IAAIQ,IAAgB,SAAuBN,GAAOC,GAAS;AACzD,MAAIC,IAAIZ,GAAc,CAAA,GAAIU,GAAOC,EAAQ,KAAK;AAE9C,SAAOE,EAAaC,GAAUd,GAAc,CAAA,GAAIY,GAAG;AAAA,IACjD,MAAQK;AAAA,EACZ,CAAG,GAAG,IAAI;AACV;AAEAD,EAAc,cAAc;AAC5BA,EAAc,eAAe;AAC7B,MAAAE,KAAeF;ACpBf,IAAIG,KAAmB,EAAE,MAAQ,EAAE,KAAO,OAAO,OAAS,EAAE,SAAW,iBAAiB,WAAa,QAAS,GAAE,UAAY,CAAC,EAAE,KAAO,QAAQ,OAAS,EAAE,GAAK,mRAAkR,GAAI,EAAC,GAAI,MAAQ,YAAY,OAAS,WAAU;AAChe,MAAAC,KAAeD;ACAf,SAASnB,GAAcC,GAAQ;AAAE,WAASC,IAAI,GAAGA,IAAI,UAAU,QAAQA,KAAK;AAAE,QAAIC,IAAS,UAAUD,CAAC,KAAK,OAAO,OAAO,UAAUA,CAAC,CAAC,IAAI,CAAA,GAAQE,IAAU,OAAO,KAAKD,CAAM;AAAG,IAAI,OAAO,OAAO,yBAA0B,eAAcC,IAAUA,EAAQ,OAAO,OAAO,sBAAsBD,CAAM,EAAE,OAAO,SAAUE,GAAK;AAAE,aAAO,OAAO,yBAAyBF,GAAQE,CAAG,EAAE;AAAA,KAAa,CAAC,IAAKD,EAAQ,QAAQ,SAAUE,GAAK;AAAE,MAAAC,GAAgBN,GAAQK,GAAKH,EAAOG,CAAG,CAAC;AAAA,IAAE,CAAE;AAAA;AAAK,SAAOL;AAAS;AAEze,SAASM,GAAgBC,GAAKF,GAAKG,GAAO;AAAE,SAAIH,KAAOE,IAAO,OAAO,eAAeA,GAAKF,GAAK,EAAE,OAAOG,GAAO,YAAY,IAAM,cAAc,IAAM,UAAU,GAAM,CAAA,IAAYD,EAAIF,CAAG,IAAIG,GAAgBD;AAAM;AAOjN,IAAIW,IAAmB,SAA0BT,GAAOC,GAAS;AAC/D,MAAIC,IAAIZ,GAAc,CAAA,GAAIU,GAAOC,EAAQ,KAAK;AAE9C,SAAOE,EAAaC,GAAUd,GAAc,CAAA,GAAIY,GAAG;AAAA,IACjD,MAAQQ;AAAA,EACZ,CAAG,GAAG,IAAI;AACV;AAEAD,EAAiB,cAAc;AAC/BA,EAAiB,eAAe;AAChC,MAAAE,KAAeF;ACwCf,MAAKG,KAAaC,GAAa;AAAA,EAC7B,MAAM;AAAA,EACN,OAAO;AAAA,IACL,YAAY;AAAA,MACV,MAAM;AAAA,MACN,SAAS,OAAO;AAAA,QACd,YAAY;AAAA,QACZ,aAAa;AAAA;IAEhB;AAAA,IACD,cAAc;AAAA,MACZ,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,EACD;AAAA,EACD,YAAY;AAAA,IACV,gBAAAzB;AAAAA,IACA,kBAAAqB;AAAAA,mBACAH;AAAAA,IACA,gBAAAQ;AAAA,EACD;AAAA,EACD,MAAOd,GAAO,EAAE,QAAAe,KAAU;AACxB,UAAMC,IAAU;AAAA,MACd,IAAI;AAAA,MACJ,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,UAAU;AAAA,MACV,SAAS;AAAA,MACT,SAAS;AAAA,MACT,OAAO;AAAA,MACP,MAAM;AAAA,MACN,YAAY;AAAA,MACZ,SAAS;AAAA,MACT,eAAe;AAAA,MACf,WAAW;AAAA,IACb,GACMC,IAAmB,MACnBC,IAAoB,KACpBC,IAAsB,MACtBC,IAAuB,KACvBC,IAAc,UAAUC,GAAO,CAAC,KAGhCC,IAAe,MAAM,SAAS,cAAc,8BAA8B,KAAK,SAAS,MACxFC,IAAQC,EAAO,SAAS,OAAO,GAC/BC,IAAaC,EAAI,EAAE,GACnBC,IAAgBD,EAAI,EAAE,GACtBE,KAAeJ,EAAO,gBAAgB,EAAE,GACxCK,KAAcL,EAAO,eAAe,EAAE,GACtCM,IAAgBJ,EAAI,EAAE,GACtBK,IAAkBL,EAAI,EAAK,GAC3BM,IAAmBN,EAAI,EAAE,GACzBO,IAAYC,GAAS;AAAA,MACzB,SAAS;AAAA,MACT,SAAS;AAAA,MACT,SAAS,CAAE;AAAA,MACX,OAAO;AAAA,KACR,GACKC,IAAsBT,EAAI,EAAE,GAC5BU,IAAgBV,EAAI,GAEpBW,KAAgBC,GAAS,MAAM;AACnC,UAAIC,IAAS,eAAenB;AAC5B,aAAIW,EAAgB,UAClBQ,KAAU,UAERC,EAAMjB,CAAK,MACbgB,KAAU,IAAIC,EAAMjB,CAAK,MAEpBgB;AAAA,KACR,GAEKE,IAAqB,CAACC,MAAS;AACnC,YAAMC,IAAc,SAAS,cAAc,IAAIvB,qBAA+B;AAC9E,UAAIuB;AACF,YAAID;AACF,UAAAC,EAAY,iBAAiB,aAAaC,CAAgB;AAAA,aACrD;AACL,gBAAMC,IAAUF,EAAY;AAC5B,UAAIE,MACFA,EAAQ,MAAM,OAAO,IACrBA,EAAQ,MAAM,MAAM,KAEtBF,EAAY,oBAAoB,aAAaC,CAAgB;AAAA;AAAA,IAGnE,GAEME,IAA4B,CAACJ,MAAS;AAC1C,YAAMC,IAAc,SAAS,cAAc,IAAIvB,qBAA+B;AAC9E,MAAIuB,MACED,IACFC,EAAY,iBAAiB,YAAYI,CAAgB,IAEzDJ,EAAY,oBAAoB,YAAYI,CAAgB;AAAA,IAGlE,GAEMH,IAAmB,CAACI,MAAM;AAC9B,MAAAC,GAAgBD,GAAG,IAAI5B,qBAA+B;AAAA,IACxD,GAEM2B,IAAmB,MAAM;AAC7B,MAAAhB,EAAgB,QAAQ,CAACA,EAAgB,OACzCmB,GAAS,MAAM;AACb,QAAInB,EAAgB,SAClBS,EAAMR,CAAgB,EAAE,QAAQ,WAAWQ,EAAMf,CAAU,EAAE,KAAK,IAAIP,IAAsB,MAC5FsB,EAAMR,CAAgB,EAAE,UAAUjC,EAAM,eAAe,WAAWyC,EAAMf,CAAU,EAAE,MAAM,IAAI,SAAS,KAAK,gBAAgBN,IAAuB,MACnJsB,EAAmB,EAAK,MAExBD,EAAMR,CAAgB,EAAE,QAAQ,WAAWQ,EAAMf,CAAU,EAAE,KAAK,IAAIT,IAAmB,MACzFwB,EAAMR,CAAgB,EAAE,UAAUjC,EAAM,eAAe,WAAWyC,EAAMf,CAAU,EAAE,MAAM,IAAI,SAAS,KAAK,gBAAgBR,IAAoB,MAChJwB,EAAmB,EAAI;AAAA,OAE1B;AAAA,IACH,GAEMU,KAAiB,MAAM;AAC3B,MAAApB,EAAgB,QAAQ,IACxBe,EAA0B,EAAK,GAC/BL,EAAmB,EAAK;AAAA,IAC1B,GAEMW,KAAY,CAAC,EAAE,gBAAAC,GAAgB,gBAAAC,GAAgB,qBAAqBC,GAAQ,YAAAC,QAAiB;AACjG,YAAMC,IAAaC,GAAUF,CAAU,GACjC,EAAE,eAAAG,GAAe,eAAAhC,GAAe,YAAAF,EAAa,IAAEgC,GAC/CG,IAASvC,GAAO,CAAC,GACjBwC,IAAiB,CAAC;AACxB,MAAA1B,EAAoB,QAAQ,CAAC,GAAGoB,GAAQF,EAAe,KAAK,GAC5D1B,EAAc,QAAQA,GACtBF,EAAW,QAAQA;AACnB,YAAMqC,IAAWH,EAAc,WAAW,OAAO,CAAAI,MAAKA,EAAE,IAAI,EAAE,IAAI,CAAAA,MAAKA,EAAE,KAAK;AAC9E,MAAID,KAAA,QAAAA,EAAU,WACZ7B,EAAU,QAAQ,MAAM6B,EAAS,KAAK,GAAG;AAE3C,iBAAWE,KAAaV,GAAgB;AACtC,cAAMhE,IAASqC,EAAc,KAAK,CAACoC,MAAM,CAACA,EAAE,OAAOA,EAAE,KAAK,EAAE,SAASC,EAAU,YAAY,CAAC,GACtFC,IAAOD,EAAU,MAAM,MAAMnC,EAAW;AAC9C,YAAIqC,IAAcF,EAAU;AAC5B,QAAIC,KAAA,QAAAA,EAAM,WACRC,IAAcD,EAAKA,EAAK,SAAS,CAAC,IAEpCJ,EAAe,KAAK;AAAA,UAClB,cAAcvE,EAAO;AAAA,UACrB,gBAAgBA,EAAO,SAASA,EAAO;AAAA,UACvC,eAAeA,EAAO;AAAA,UACtB,oBAAoBA,EAAO;AAAA,UAC3B,WAAWA,EAAO;AAAA,UAClB,UAAUA,EAAO;AAAA,UACjB,cAAcA,EAAO;AAAA,UACrB,MAAM;AAAA,UACN,UAAU;AAAA,UACV,aAAA4E;AAAA,SACD;AAAA;AAEH,MAAAP,EAAc,kBAAkB,CAACN,CAAc,GAC3CQ,KAAA,QAAAA,EAAgB,WACbF,EAAc,gBACjBA,EAAc,cAAc,CAAC,IAE/BA,EAAc,YAAY,KAAK,GAAGE,CAAc,GAChDF,EAAc,cAAc;AAAA,QAC1B;AAAA,UACE,MAAM;AAAA,UACN,YAAYA,EAAc;AAAA,QAC5B;AAAA,MACF,IAEF3B,EAAiB,QAAQ;AAAA,QACvB,GAAGyB;AAAA,QACH,IAAIG;AAAA,QACJ,SAAS,OAAOA;AAAA,QAChB,UAAU;AAAA,QACV,KAAK;AAAA,QACL,MAAM;AAAA,QACN,OAAO,WAAWpB,EAAMf,CAAU,EAAE,KAAK,IAAIT,IAAmB;AAAA,QAChE,SAASjB,EAAM,eAAe,WAAWyC,EAAMf,CAAU,EAAE,MAAM,IAAI,SAAS,KAAK,gBAAgBR,IAAoB;AAAA,QACvH,eAAA0C;AAAA,MACF,GACA1B,EAAU,UAAU,IACpBiB,GAAS,MAAM;AACb,QAAAV,EAAMJ,CAAa,EAAE,YAAY,GACjCU,EAA0B,EAAI,GAC9BL,EAAmB,EAAI;AAAA,OACxB;AAAA,IACH,GAEM0B,KAAqB,CAAC,EAAE,MAAAC,GAAM,MAAAC,QAAW;AAC7C,UAAID,MAAS,QAAQC,GAAM;AACzB,cAAM;AAAA,UACJ,eAAAC,IAAgB,CAAE;AAAA,UAClB,cAAAC,IAAe,CAAC;AAAA,YACdF,GAEEG,IADYF,EAAc,OAAOC,CAAY,EACnB,OAAO,CAACR,MAAMA,EAAE,cAAcA,EAAE,MAAM,GAChEU,IAAkBC,EAAeF,GAAe,cAAc,EAAI,GAClEG,IAAeD,EAAeL,EAAK,eAAe,iBAAiB,EAAK;AAC9E,QAAAvC,EAAc,QAAQ2C,EAAgB,OAAOE,CAAY,EAAE,IAAI,CAACZ,MAAM;AACpE,gBAAMzE,IAASkD,EAAMb,CAAa,EAAE,KAAK,CAACiD,MAAQA,EAAI,UAAUb,EAAE,KAAK;AACvE,cAAIc,IAAWd,EAAE;AACjB,cAAIc,KAAY,OAAOA,KAAa,UAAU;AAC5C,kBAAMZ,IAAOY,EAAS,MAAM,GAAG;AAC/B,aAAIZ,KAAA,gBAAAA,EAAM,UAAS,MACjBY,IAAWZ,EAAK,MAAM,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI;AAAA;AAErC,YAAKY,MACVA,IAAW;AAEb,iBAAO,IAAGvF,KAAA,gBAAAA,EAAQ,UAASyE,EAAE,SAAShD,EAAQgD,EAAE,IAAI,KAAKc;AAAA,QAC1D,CAAA,KAAK,CAAC;AAAA;AAAA,IAEX;AAEA,aAASH,EAAgBT,GAAMa,GAAOpC,GAAM;AAC1C,YAAMH,IAAS,CAAC;AAChB,iBAAWwC,KAAQd;AACjB,QAAIc,EAAKD,CAAK,IACZvC,EAAO,KAAK,GAAGmC,EAAeK,EAAKD,CAAK,GAAGA,GAAOpC,CAAI,CAAC,IAC9CqC,EAAK,SACdxC,EAAO,KAAK;AAAA,UACV,GAAGwC,EAAK;AAAA,UACR,OAAOA,EAAK;AAAA,SACb,KACQ,CAACrC,KAASqC,EAAK,aAAa,eAAe,EAAEA,EAAK,WAAW,WAAW,IAAI,KAAKA,EAAK,WAAW,SAAS,GAAG,OACtHxC,EAAO,KAAKwC,CAAI;AAGpB,aAAOxC;AAAA,IACT;AAEA,WAAAyC,GAAM/C,EAAU,SAAS,CAACgD,MAAQ;AAEhC,aAAO,aAAa,OAAO,UAAUA,CAAG;AAAA,KACzC,GAEDnE,EAAO;AAAA,MACL,WAAAsC;AAAA,KACD,GACM;AAAA,MACL,OAAA7B;AAAA,MACA,eAAAc;AAAA,MACA,eAAAP;AAAA,MACA,WAAAG;AAAA,MACA,kBAAAD;AAAA,MACA,cAAAJ;AAAA,MACA,iBAAAG;AAAA,MACA,qBAAAI;AAAA,MACA,eAAAC;AAAA,MACA,kBAAAW;AAAA,MACA,gBAAAI;AAAA,MACA,oBAAAgB;AAAA,MACA,cAAA7C;AAAA,IACF;AAAA,EACF;AACF,CAAC;;;cA3TC4D,EA8CUC,GAAA;AAAA,IA7CP,mBAAiBC,EAAa;AAAA,IACvB,SAASA,EAAS,UAAC;AAAA,IAAV,oBAAAC,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAC,MAAAF,EAAA,UAAU,UAAOE;AAAA,IAClC,OAAM;AAAA,IACL,QAAQ;AAAA,IACR,cAAc;AAAA,IACd,gBAAgB;AAAA,IAChB,cAAcF,EAAY;AAAA,IAC1B,UAAQA,EAAc;AAAA;IAEZ,SACT,MAEM;AAAA,MAFNG,EAEM,OAAA;AAAA,QAFD,OAAM;AAAA,QAAe,OAAOH,EAAa,cAAC,KAAI,GAAA;AAAA,MAC9C,GAAAI,EAAAJ,EAAA,UAAU,KAAK,IAAG,MAAII,EAAAJ,EAAA,cAAc,KAAI,GAAA,CAAA,GAAA,GAAAK,EAAA;AAAA;IAGpC,aACT,MAAoD;AAAA,MAApDvF,EAAoDwF,GAAA;AAAA,QAApC,OAAKC,EAAA,CAAC,cAAqBP,EAAK,KAAA,CAAA;AAAA;;eAElD,MAGM;AAAA,MAHNG,EAGM,OAAA;AAAA,QAHD,OAAM;AAAA,QAAY,mCAAOH,EAAgB,oBAAAA,EAAA,iBAAA,GAAAQ,CAAA;AAAA;QACeR,EAAe,wBAA1EF,EAA6EW,GAAA;AAAA;UAA1D,OAAKF,EAAA,CAAC,cAAqBP,EAAK,KAAA,CAAA;AAAA,wCACnDF,EAA4DY,GAAA;AAAA;UAA3C,OAAKH,EAAA,CAAC,cAAqBP,EAAK,KAAA,CAAA;AAAA;;MAG3CA,EAAA,UAAU,gBADlBW,GAuBM,OAAA;AAAA;QArBH,OAAKC,GAAA;AAAA;UAAmD,OAAAZ,EAAA,iBAAiB;AAAA,UAAwB,QAAAA,EAAA,iBAAiB;AAAA;;QAMnHlF,EAcE+F,GAdFC,GAcE,EAbA,KAAI,mBACId,EAAgB,kBAAA;AAAA,UACvB,OAAOA,EAAK;AAAA,UACZ,UAAU;AAAA,UACV,YAAY;AAAA,UACZ,gBAAgB;AAAA,UAChB,WAAW;AAAA,UACX,mBAAmB;AAAA,UACnB,cAAcA,EAAY;AAAA,UAC1B,eAAeA,EAAS,UAAC;AAAA,UACzB,qBAAqBA,EAAmB;AAAA,UACxC,YAAYA,EAAU;AAAA,UACtB,eAAaA,EAAkB;AAAA;;;;;;;","x_google_ignoreList":[0,1,2,3,4,5]}