@das-fed/ui 6.4.0-dev.82 → 6.4.0-dev.84

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,7 +1,7 @@
1
1
  import '@das-fed/ui/packages/components/image-viewer/style.css';
2
2
  import { withInstall as De } from "@das-fed/utils/with-install/index";
3
3
  import { setThemeRule as Ue } from "@das-fed/web/packages/theme/index";
4
- import { ref as ae, computed as D, watch as be, createApp as Pe, defineComponent as Je, openBlock as g, createElementBlock as I, Fragment as x, createCommentVNode as r, createElementVNode as N, normalizeStyle as $, withDirectives as B, createVNode as z, unref as e, normalizeClass as _, withCtx as q, createBlock as y, vShow as k, isRef as se, createTextVNode as re, toDisplayString as le, renderList as ue } from "vue";
4
+ import { ref as ae, computed as R, watch as be, createApp as Pe, defineComponent as Je, openBlock as g, createElementBlock as I, Fragment as x, createCommentVNode as r, createElementVNode as N, normalizeStyle as $, withDirectives as B, createVNode as z, unref as e, normalizeClass as _, withCtx as q, createBlock as y, vShow as k, isRef as se, createTextVNode as re, toDisplayString as le, renderList as ue } from "vue";
5
5
  import { ElImageViewer as Ve, ElImage as de } from "element-plus";
6
6
  import { Upload as ce } from "ant-design-vue";
7
7
  import { vDasTooltip as me } from "@das-fed/ui/packages/components/text-tooltip/index";
@@ -30,9 +30,9 @@ const ie = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAA
30
30
  let i = document.createElement("canvas");
31
31
  const u = i.getContext("2d");
32
32
  i.width = n.width, i.height = n.height, u.drawImage(n, 0, 0, n.width, n.height), i.toBlob((A) => {
33
- let v = URL.createObjectURL(A), d = document.createElement("a"), Q = new MouseEvent("click");
33
+ let v = URL.createObjectURL(A), d = document.createElement("a"), D = new MouseEvent("click");
34
34
  const E = t.substring(t.lastIndexOf(".")).toLowerCase();
35
- d.download = o || `default${E}`, d.href = v, d.dispatchEvent(Q), URL.revokeObjectURL(v);
35
+ d.download = o || `default${E}`, d.href = v, d.dispatchEvent(D), URL.revokeObjectURL(v);
36
36
  });
37
37
  }, n.src = t + "?v=" + Date.now();
38
38
  }, Me = (t, o) => {
@@ -52,11 +52,11 @@ const ie = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAA
52
52
  const { baseUrl: o, serviceName: n, pathPrefix: i, bucketName: u, minioTokenApi: A, autoContentType: v } = t, d = async () => {
53
53
  const [w, l] = await Ke({ baseUrl: o, minioTokenApi: A })().run();
54
54
  return w ? { stauts: !1 } : { status: !0, data: l };
55
- }, { generateUniqueName: Q } = Ne();
55
+ }, { generateUniqueName: D } = Ne();
56
56
  return { upload: async (w, l = {}) => {
57
57
  const h = await d();
58
58
  if (!h.status) return;
59
- const U = w.name, C = h.data, T = i || Fe(), L = U.substring(U.lastIndexOf(".")).toLowerCase(), K = t.randomName ? `${Q("")}${L}` : U, O = n ? `${T}/${n}/${K}` : `${T}/${K}`, F = {
59
+ const U = w.name, C = h.data, T = i || Fe(), L = U.substring(U.lastIndexOf(".")).toLowerCase(), K = t.randomName ? `${D("")}${L}` : U, O = n ? `${T}/${n}/${K}` : `${T}/${K}`, F = {
60
60
  accessKeyId: C.accessKeyId,
61
61
  secretAccessKey: C.secretAccessKey,
62
62
  sessionToken: C.sessionToken,
@@ -93,23 +93,23 @@ const ie = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAA
93
93
  }
94
94
  return n;
95
95
  }, Ze = (t, o) => {
96
- const n = oe(), i = we(t, "modelValue"), u = we(t, "status"), { upload: A } = je(t), { size2B: v } = He(), { handlerImageSrc: d } = ze(t), Q = ae(""), E = ae([]), w = [".mp4", ".avi", ".mkv", ".mov", ".wmv", ".flv", ".mpeg", ".webm"], l = [".mp3", ".wav", ".aac", ".flac", ".ogg", ".alff", ".wma", ".m4a"], h = D(() => t.baseUrl ? t.baseUrl : process.env.NODE_ENV === "production" ? "" : n.baseURL || ""), U = (a) => {
96
+ const n = oe(), i = we(t, "modelValue"), u = we(t, "status"), { upload: A } = je(t), { size2B: v } = He(), { handlerImageSrc: d } = ze(t), D = ae(""), E = ae([]), w = [".mp4", ".avi", ".mkv", ".mov", ".wmv", ".flv", ".mpeg", ".webm"], l = [".mp3", ".wav", ".aac", ".flac", ".ogg", ".alff", ".wma", ".m4a"], h = R(() => t.baseUrl ? t.baseUrl : process.env.NODE_ENV === "production" ? "" : n.baseURL || ""), U = (a) => {
97
97
  if (a) {
98
98
  const c = a.substring(a.lastIndexOf(".")).toLowerCase();
99
99
  if (w.includes(c)) return "isVideo";
100
100
  if (l.includes(c)) return "isAudio";
101
101
  }
102
102
  return "isImg";
103
- }, C = D(() => {
103
+ }, C = R(() => {
104
104
  var c;
105
105
  let a = t.accept ? (c = t.accept) == null ? void 0 : c.split(",") : [];
106
106
  return a.includes("image/jpg") && !a.includes("image/jpeg") && a.push("image/jpeg"), a.includes(".jpg") && !a.includes(".jpeg") && a.push(".jpeg"), t.acceptVideo && (a = [...a, ...w]), t.acceptAudio && (a = [...a, ...l]), a.join(",");
107
- }), T = D(() => u.value === "uploading"), L = ae(0), K = (a) => T.value ? L.value === a : !1, O = D(() => i.value ? [d(h.value, i.value)] : []), F = D(() => i.value ? i.value.map((a) => [d(h.value, a)]) : []), j = D(() => t.status !== "info" && (t.needDeleteBtn || t.needChangeBtn) || t.needDownloadBtn), H = D(() => t.status !== "info" && t.needDeleteBtn || t.needDownloadBtn), G = D(() => {
107
+ }), T = R(() => u.value === "uploading"), L = ae(0), K = (a) => T.value ? L.value === a : !1, O = R(() => i.value ? [d(h.value, i.value)] : []), F = R(() => i.value ? i.value.map((a) => [d(h.value, a)]) : []), j = R(() => t.status !== "info" && (t.needDeleteBtn || t.needChangeBtn) || t.needDownloadBtn), H = R(() => t.status !== "info" && t.needDeleteBtn || t.needDownloadBtn), G = R(() => {
108
108
  const a = [], c = t.previewBtnConfig;
109
109
  if (typeof c == "boolean")
110
110
  return c ? ["zoom_in", "zoom_out", "turn_left", "turn_right", "full_screen"] : [];
111
- for (const S in c)
112
- c[S] && a.push(S);
111
+ for (const Q in c)
112
+ c[Q] && a.push(Q);
113
113
  return a;
114
114
  }), J = () => {
115
115
  setTimeout(() => {
@@ -121,48 +121,48 @@ const ie = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAA
121
121
  }, X = (a, c = 0) => {
122
122
  var Y;
123
123
  o("downloadImage", a);
124
- let S = "";
125
- t.limitNum === 1 ? S = t.imageName || Q.value : S = ((Y = t.imageName) == null ? void 0 : Y[c]) || E.value[c], U(a) === "isImg" ? Le(d(h.value, a), S) : Me(d(h.value, a), S);
124
+ let Q = "";
125
+ t.limitNum === 1 ? Q = t.imageName || D.value : Q = ((Y = t.imageName) == null ? void 0 : Y[c]) || E.value[c], U(a) === "isImg" ? Le(d(h.value, a), Q) : Me(d(h.value, a), Q);
126
126
  }, W = async (a, c) => {
127
127
  var Y;
128
128
  if (t.maxSize) {
129
- const { finalSize: b, sizeText: R } = v(t.maxSize);
129
+ const { finalSize: b, sizeText: S } = v(t.maxSize);
130
130
  if (a.size > b) {
131
131
  const Z = he(
132
132
  "das-ui-import-upload-key3",
133
- R,
133
+ S,
134
134
  ((Y = C.value) == null ? void 0 : Y.toUpperCase().replaceAll(".", "").replaceAll(",", "、")) ?? ""
135
135
  ).value, M = t.errorMessage || Z;
136
136
  return Ee.warning(M), !1;
137
137
  }
138
138
  }
139
- const S = async (b) => {
139
+ const Q = async (b) => {
140
140
  L.value = b, o("update:status", "uploading"), o("image-upload", a);
141
- const R = await A(a);
142
- return R === "error" ? (o("update:status", "error"), !1) : (o("upload-success", a, i.value), t.limitNum === 1 ? i.value = R : i.value[b] = R, o("update:modelValue", i.value), o("update:status", "normal"), !1);
141
+ const S = await A(a);
142
+ return S === "error" ? (o("update:status", "error"), !1) : (o("upload-success", a, i.value), t.limitNum === 1 ? i.value = S : i.value[b] = S, o("update:modelValue", i.value), o("update:status", "normal"), !1);
143
143
  };
144
144
  if (t.customCheck) {
145
145
  const b = t.customCheck(a);
146
146
  if (b instanceof Promise)
147
- return new Promise(async (R, Z) => {
147
+ return new Promise(async (S, Z) => {
148
148
  let M;
149
149
  try {
150
150
  M = await b.then();
151
151
  } catch {
152
152
  M = !1;
153
153
  }
154
- M ? S(c) : Z(!1);
154
+ M ? Q(c) : Z(!1);
155
155
  });
156
156
  if (!b) return !1;
157
157
  } else if (C.value) {
158
- const b = C.value.split(",").filter((P) => P.trim().startsWith(".")).map((P) => P.trim()), R = C.value.split(",").filter((P) => !P.trim().startsWith(".")).map((P) => P.trim()), Z = a.name.match(/\.(.+)$/), M = b.includes(Z[0]);
159
- let ye = R.includes("image/*") && a.type.split("/")[0].trim() === "image", ke = R.includes("video/*") && a.type.split("/")[0].trim() === "video", Qe = R.includes("audio/*") && a.type.split("/")[0].trim() === "audio", Se = R.includes(a.type) || ye || ke || Qe;
158
+ const b = C.value.split(",").filter((P) => P.trim().startsWith(".")).map((P) => P.trim()), S = C.value.split(",").filter((P) => !P.trim().startsWith(".")).map((P) => P.trim()), Z = a.name.match(/\.(.+)$/), M = b.includes(Z[0]);
159
+ let ye = S.includes("image/*") && a.type.split("/")[0].trim() === "image", ke = S.includes("video/*") && a.type.split("/")[0].trim() === "video", Qe = S.includes("audio/*") && a.type.split("/")[0].trim() === "audio", Se = S.includes(a.type) || ye || ke || Qe;
160
160
  if (!M && !Se) {
161
161
  const P = t.acceptAudio || t.acceptVideo ? "das-ui-import-upload-key2" : "das-ui-import-upload-key1", Re = t.errorMessage || he(P, C.value.toUpperCase().replaceAll(".", "").replaceAll(",", "、")).value;
162
162
  return Ee.warning(Re), !1;
163
163
  }
164
164
  }
165
- return S(c);
165
+ return Q(c);
166
166
  }, s = async (a) => {
167
167
  t.limitNum !== 1 && (L.value = i.length), o("update:status", "uploading"), o("image-upload", a);
168
168
  const c = await A(a);
@@ -182,7 +182,7 @@ const ie = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAA
182
182
  };
183
183
  return be(i, async () => {
184
184
  const a = t.limitNum ?? 1;
185
- a === 1 && i.value ? Q.value = await qe(i.value) : a > 1 && i.value.length > 0 && (E.value = await Ye(i.value));
185
+ a === 1 && i.value ? D.value = await qe(i.value) : a > 1 && i.value.length > 0 && (E.value = await Ye(i.value));
186
186
  }, {
187
187
  deep: !0,
188
188
  immediate: !0
@@ -196,7 +196,7 @@ const ie = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAA
196
196
  previewBtns: G,
197
197
  operateShow: j,
198
198
  operateShow_Multi: H,
199
- singlePreviewName: Q,
199
+ singlePreviewName: D,
200
200
  multiPreviewName: E,
201
201
  getFileType: U,
202
202
  delImg: V,
@@ -238,7 +238,7 @@ const ie = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAA
238
238
  te.addEventFromMicroApp();
239
239
  const Xe = (t) => {
240
240
  const { handleImageClickProxy: o, previewBtns: n } = t;
241
- return { needPreviewImage: D(() => !t.needPreview || te.isMicroApp() ? !1 : t.needPreview), handleImageClick: (A) => {
241
+ return { needPreviewImage: R(() => !t.needPreview || te.isMicroApp() ? !1 : t.needPreview), handleImageClick: (A) => {
242
242
  if (!te.isMicroApp()) return o();
243
243
  let v = [];
244
244
  Array.isArray(A) && v.push(...A), typeof A == "string" && v.push(A), te.sendMessageToMainApp(Be, {
@@ -295,7 +295,7 @@ const Xe = (t) => {
295
295
  },
296
296
  emits: ["update:modelValue", "update:status", "downloadImage", "image-upload", "upload-success", "deleteImage"],
297
297
  setup(t, { emit: o }) {
298
- const n = t, i = o, u = D(() => {
298
+ const n = t, i = o, u = R(() => {
299
299
  const p = [
300
300
  n.needDownloadBtn,
301
301
  n.limitNum === 1 && l.value !== "info" && n.needChangeBtn,
@@ -305,11 +305,11 @@ const Xe = (t) => {
305
305
  return p === 2 && (f = "space-around"), p === 3 && (f = "space-between"), {
306
306
  "justify-content": f
307
307
  };
308
- }), A = D(() => n.mode === "view" ? !1 : d.value ? l.value === "error" : l.value !== "info"), v = (s) => {
308
+ }), A = R(() => n.mode === "view" ? !1 : d.value ? l.value === "error" : l.value !== "info"), v = (s) => {
309
309
  s.stopPropagation();
310
310
  }, {
311
311
  url: d,
312
- isAccept: Q,
312
+ isAccept: D,
313
313
  singlePreviewList: E,
314
314
  multiPreviewList: w,
315
315
  uploadStatus: l,
@@ -409,7 +409,7 @@ const Xe = (t) => {
409
409
  e(l) !== "info" && s.needChangeBtn ? (g(), y(e(ce), {
410
410
  key: 1,
411
411
  "before-upload": (f) => e(F)(f, 0),
412
- accept: e(Q)
412
+ accept: e(D)
413
413
  }, {
414
414
  itemRender: q(({ file: f, actions: m }) => p[5] || (p[5] = [])),
415
415
  default: q(() => [
@@ -564,9 +564,9 @@ const Xe = (t) => {
564
564
  e(l) !== "info" && s.needChangeBtn ? (g(), y(e(ce), {
565
565
  key: 1,
566
566
  "before-upload": (c) => e(F)(c, m),
567
- accept: e(Q)
567
+ accept: e(D)
568
568
  }, {
569
- itemRender: q(({ file: c, actions: S }) => p[6] || (p[6] = [])),
569
+ itemRender: q(({ file: c, actions: Q }) => p[6] || (p[6] = [])),
570
570
  default: q(() => [
571
571
  z(e(fe), {
572
572
  class: "operate-btn m-t-6",
@@ -642,7 +642,7 @@ const Xe = (t) => {
642
642
  status: e(l),
643
643
  "onUpdate:status": p[4] || (p[4] = (f) => se(l) ? l.value = f : null),
644
644
  "max-size": s.maxSize,
645
- accept: e(Q),
645
+ accept: s.accept,
646
646
  acceptVideo: s.acceptVideo,
647
647
  acceptAudio: s.acceptAudio,
648
648
  message: s.message,
@@ -681,7 +681,7 @@ const Xe = (t) => {
681
681
  for (const [i, u] of o)
682
682
  n[i] = u;
683
683
  return n;
684
- }, rt = /* @__PURE__ */ st(nt, [["__scopeId", "data-v-1d0322d5"]]), lt = {
684
+ }, rt = /* @__PURE__ */ st(nt, [["__scopeId", "data-v-a6b067e7"]]), lt = {
685
685
  "--das-ui-image-viewer-bg-color": { light: "rgba(0, 0, 0, 0.5)" },
686
686
  "--das-ui-image-viewer-btn-hover": { light: "#87A9FF" },
687
687
  "--das-ui-image-viewer-btn-active": { light: "#276FF5" }
@@ -1 +1 @@
1
- .das-ui-image-viewer[data-v-1d0322d5]{width:100px;height:100px;box-sizing:border-box;background-color:#e2e7ef;position:relative;border-radius:2px}.das-ui-image-viewer .loading-border[data-v-1d0322d5]{border:1px dashed var(--das-ui-image-upload-border-color)}.das-ui-image-viewer .image-context[data-v-1d0322d5]{width:100%;height:100%}.das-ui-image-viewer .operate-container[data-v-1d0322d5]{visibility:hidden;position:absolute;bottom:0;height:28px;width:100%;background-color:var(--das-ui-image-viewer-bg-color);display:flex;justify-content:center;align-items:center;padding:0 8px}.das-ui-image-viewer .operate-container[data-v-1d0322d5] .m-l-20{margin-left:20px}.das-ui-image-viewer .operate-container[data-v-1d0322d5] .m-t-6{margin-top:6px}.das-ui-image-viewer .operate-container[data-v-1d0322d5] .operate-btn{cursor:pointer}.das-ui-image-viewer .operate-container[data-v-1d0322d5] .operate-btn:hover{fill:var(--das-ui-image-viewer-btn-hover)}.das-ui-image-viewer .operate-container[data-v-1d0322d5] .operate-btn.active,.das-ui-image-viewer .operate-container[data-v-1d0322d5] .operate-btn.visited{fill:var(--das-ui-image-viewer-btn-active)}.das-ui-image-viewer:hover .operate-container[data-v-1d0322d5]{visibility:visible}.image-name[data-v-1d0322d5]{font-size:12px;color:var(--das-ui-color-normal);letter-spacing:0;line-height:18px;font-weight:400;margin-top:4px;width:100px}.das-ui-image-viewer-groups[data-v-1d0322d5]{display:flex}.das-ui-image-viewer-groups .das-ui-image-viewer-container+.das-ui-image-viewer-container[data-v-1d0322d5]{margin-left:28px}.no-data-img[data-v-1d0322d5]{max-width:100%}.das-image-viewer-preview-btn-groups .el-image-viewer__actions,.das-image-viewer-preview-btn-groups .el-image-viewer__actions .el-image-viewer__actions__divider,.das-image-viewer-preview-btn-groups .el-image-viewer__actions .el-icon{display:none}.das-image-viewer-preview-btn-groups.zoom_in,.das-image-viewer-preview-btn-groups.zoom_in .el-image-viewer__actions{display:block}.das-image-viewer-preview-btn-groups.zoom_in .el-image-viewer__actions .el-icon:nth-child(2){display:block}.das-image-viewer-preview-btn-groups.zoom_out,.das-image-viewer-preview-btn-groups.zoom_out .el-image-viewer__actions{display:block}.das-image-viewer-preview-btn-groups.zoom_out .el-image-viewer__actions .el-icon:nth-child(1){display:block}.das-image-viewer-preview-btn-groups.turn_left,.das-image-viewer-preview-btn-groups.turn_left .el-image-viewer__actions{display:block}.das-image-viewer-preview-btn-groups.turn_left .el-image-viewer__actions .el-icon:nth-child(6){display:block}.das-image-viewer-preview-btn-groups.turn_right,.das-image-viewer-preview-btn-groups.turn_right .el-image-viewer__actions{display:block}.das-image-viewer-preview-btn-groups.turn_right .el-image-viewer__actions .el-icon:nth-child(7){display:block}.das-image-viewer-preview-btn-groups.full_screen,.das-image-viewer-preview-btn-groups.full_screen .el-image-viewer__actions{display:block}.das-image-viewer-preview-btn-groups.full_screen .el-image-viewer__actions .el-icon:nth-child(4){display:block}
1
+ .das-ui-image-viewer[data-v-a6b067e7]{width:100px;height:100px;box-sizing:border-box;background-color:#e2e7ef;position:relative;border-radius:2px}.das-ui-image-viewer .loading-border[data-v-a6b067e7]{border:1px dashed var(--das-ui-image-upload-border-color)}.das-ui-image-viewer .image-context[data-v-a6b067e7]{width:100%;height:100%}.das-ui-image-viewer .operate-container[data-v-a6b067e7]{visibility:hidden;position:absolute;bottom:0;height:28px;width:100%;background-color:var(--das-ui-image-viewer-bg-color);display:flex;justify-content:center;align-items:center;padding:0 8px}.das-ui-image-viewer .operate-container[data-v-a6b067e7] .m-l-20{margin-left:20px}.das-ui-image-viewer .operate-container[data-v-a6b067e7] .m-t-6{margin-top:6px}.das-ui-image-viewer .operate-container[data-v-a6b067e7] .operate-btn{cursor:pointer}.das-ui-image-viewer .operate-container[data-v-a6b067e7] .operate-btn:hover{fill:var(--das-ui-image-viewer-btn-hover)}.das-ui-image-viewer .operate-container[data-v-a6b067e7] .operate-btn.active,.das-ui-image-viewer .operate-container[data-v-a6b067e7] .operate-btn.visited{fill:var(--das-ui-image-viewer-btn-active)}.das-ui-image-viewer:hover .operate-container[data-v-a6b067e7]{visibility:visible}.image-name[data-v-a6b067e7]{font-size:12px;color:var(--das-ui-color-normal);letter-spacing:0;line-height:18px;font-weight:400;margin-top:4px;width:100px}.das-ui-image-viewer-groups[data-v-a6b067e7]{display:flex}.das-ui-image-viewer-groups .das-ui-image-viewer-container+.das-ui-image-viewer-container[data-v-a6b067e7]{margin-left:28px}.no-data-img[data-v-a6b067e7]{max-width:100%}.das-image-viewer-preview-btn-groups .el-image-viewer__actions,.das-image-viewer-preview-btn-groups .el-image-viewer__actions .el-image-viewer__actions__divider,.das-image-viewer-preview-btn-groups .el-image-viewer__actions .el-icon{display:none}.das-image-viewer-preview-btn-groups.zoom_in,.das-image-viewer-preview-btn-groups.zoom_in .el-image-viewer__actions{display:block}.das-image-viewer-preview-btn-groups.zoom_in .el-image-viewer__actions .el-icon:nth-child(2){display:block}.das-image-viewer-preview-btn-groups.zoom_out,.das-image-viewer-preview-btn-groups.zoom_out .el-image-viewer__actions{display:block}.das-image-viewer-preview-btn-groups.zoom_out .el-image-viewer__actions .el-icon:nth-child(1){display:block}.das-image-viewer-preview-btn-groups.turn_left,.das-image-viewer-preview-btn-groups.turn_left .el-image-viewer__actions{display:block}.das-image-viewer-preview-btn-groups.turn_left .el-image-viewer__actions .el-icon:nth-child(6){display:block}.das-image-viewer-preview-btn-groups.turn_right,.das-image-viewer-preview-btn-groups.turn_right .el-image-viewer__actions{display:block}.das-image-viewer-preview-btn-groups.turn_right .el-image-viewer__actions .el-icon:nth-child(7){display:block}.das-image-viewer-preview-btn-groups.full_screen,.das-image-viewer-preview-btn-groups.full_screen .el-image-viewer__actions{display:block}.das-image-viewer-preview-btn-groups.full_screen .el-image-viewer__actions .el-icon:nth-child(4){display:block}