vue-intergrall-plugins 0.0.192 → 0.0.195
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.
|
@@ -7794,7 +7794,7 @@ var dev = window.location.hostname == 'localhost' ? '&teste=levchat2' : '';var s
|
|
|
7794
7794
|
return _context.abrupt("return", _this.$httpRequest({
|
|
7795
7795
|
method: 'get',
|
|
7796
7796
|
url: "".concat(baseURL, "/messages/").concat(type, "?token_cliente=").concat(token).concat(dev) // headers: {
|
|
7797
|
-
// Authorization: "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.
|
|
7797
|
+
// Authorization: "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhdGQiOiJNS1U5azQ3c2h2bGpOak9Db3dNMjJoMW94d3d4YjQ0YXd3allrbG1JVFNpMmV0aDI5ZTVIRXZNIiwibWFuYWdlciI6Ik1LVWVUQWlxWXBNTmk0M054bDVIeDM4aDdOOTNFQW9qUkN3d2ltNGw1d3dJbDdPdWpSTlV6V0ciLCJoYXNfaW5mb3MiOnRydWUsIm5yb3MiOlsiMjY3Il0sImF1dGgiOiJNS1VBbTNPaWhaaWJlQVRPQ2xaRnBYYUhFN3d3eGI0NGF3d1N1S1VwNG9lN3haTXRNcUJ1aVdIIiwiaWF0IjoxNjQ4MjE1NjE3LCJleHAiOjE2NDgzMDIwMTd9.EJZTSTac_SLgq9NFnLOctf-J06u3GY1L9ZTV_1zSQ7A"
|
|
7798
7798
|
// }
|
|
7799
7799
|
|
|
7800
7800
|
}).then(function (response) {
|
|
@@ -11151,6 +11151,7 @@ var InteratividadeBotoes = __vue_component__$8;var script$4 = {
|
|
|
11151
11151
|
data: function data() {
|
|
11152
11152
|
return {
|
|
11153
11153
|
linkPreview: {
|
|
11154
|
+
author: "",
|
|
11154
11155
|
description: "",
|
|
11155
11156
|
imageSource: "",
|
|
11156
11157
|
colorTheme: "",
|
|
@@ -11166,106 +11167,113 @@ var InteratividadeBotoes = __vue_component__$8;var script$4 = {
|
|
|
11166
11167
|
});
|
|
11167
11168
|
},
|
|
11168
11169
|
methods: {
|
|
11170
|
+
returnURL: function returnURL() {
|
|
11171
|
+
if (!this.message) return "";
|
|
11172
|
+
var isSticker = this.message.indexOf("KSTICKERK") < 0 ? false : true;
|
|
11173
|
+
if (isSticker) return "";
|
|
11174
|
+
var regex = /(https?:\/\/(?:www\.|(?!www))[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\.[^\s]{2,}|www\.[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\.[^\s]{2,}|https?:\/\/(?:www\.|(?!www))[a-zA-Z0-9]+\.[^\s]{2,}|www\.[a-zA-Z0-9]+\.[^\s]{2,})/g;
|
|
11175
|
+
var url = regex.exec(this.message);
|
|
11176
|
+
|
|
11177
|
+
if (!url || !url[0]) {
|
|
11178
|
+
console.warn("URL invalida para gerar preview");
|
|
11179
|
+
return "";
|
|
11180
|
+
}
|
|
11181
|
+
|
|
11182
|
+
return url[0].replace(/["'*]/g, "");
|
|
11183
|
+
},
|
|
11169
11184
|
gerarPreview: function gerarPreview() {
|
|
11170
11185
|
var _this2 = this;
|
|
11171
11186
|
|
|
11172
11187
|
return _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {
|
|
11173
|
-
var
|
|
11188
|
+
var url, encodedURL, response, data, st_ret, msg_ret, raspagem, description, og, theme_color, image, site_name, title, author;
|
|
11174
11189
|
return regeneratorRuntime.wrap(function _callee$(_context) {
|
|
11175
11190
|
while (1) {
|
|
11176
11191
|
switch (_context.prev = _context.next) {
|
|
11177
11192
|
case 0:
|
|
11178
11193
|
_context.prev = 0;
|
|
11194
|
+
url = _this2.returnURL();
|
|
11179
11195
|
|
|
11180
|
-
if (
|
|
11181
|
-
_context.next =
|
|
11182
|
-
break;
|
|
11183
|
-
}
|
|
11184
|
-
|
|
11185
|
-
return _context.abrupt("return");
|
|
11186
|
-
|
|
11187
|
-
case 3:
|
|
11188
|
-
isSticker = _this2.message.indexOf("KSTICKERK") < 0 ? false : true;
|
|
11189
|
-
|
|
11190
|
-
if (!isSticker) {
|
|
11191
|
-
_context.next = 6;
|
|
11196
|
+
if (url) {
|
|
11197
|
+
_context.next = 4;
|
|
11192
11198
|
break;
|
|
11193
11199
|
}
|
|
11194
11200
|
|
|
11195
11201
|
return _context.abrupt("return");
|
|
11196
11202
|
|
|
11197
|
-
case
|
|
11198
|
-
|
|
11199
|
-
|
|
11200
|
-
|
|
11201
|
-
if (!(!url || !url[0])) {
|
|
11202
|
-
_context.next = 10;
|
|
11203
|
-
break;
|
|
11204
|
-
}
|
|
11205
|
-
|
|
11206
|
-
return _context.abrupt("return", console.warn("URL invalida para gerar preview"));
|
|
11207
|
-
|
|
11208
|
-
case 10:
|
|
11209
|
-
encodedURL = Buffer(url[0]).toString("base64");
|
|
11210
|
-
_context.next = 13;
|
|
11203
|
+
case 4:
|
|
11204
|
+
encodedURL = Buffer(url).toString("base64");
|
|
11205
|
+
_context.next = 7;
|
|
11211
11206
|
return _this2.$httpRequest({
|
|
11212
11207
|
method: 'get',
|
|
11213
|
-
url: "".concat(baseURL, "/preview?url=").concat(encodedURL).concat(dev)
|
|
11214
|
-
|
|
11215
|
-
|
|
11216
|
-
|
|
11208
|
+
url: "".concat(baseURL, "/preview?url=").concat(encodedURL).concat(dev),
|
|
11209
|
+
headers: {
|
|
11210
|
+
Authorization: "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhdGQiOiJNS1U5azQ3c2h2bGpOak9Db3dNMjJoMW94d3d4YjQ0YXd3allrbG1JVFNpMmV0aDI5ZTVIRXZNIiwibWFuYWdlciI6Ik1LVWVUQWlxWXBNTmk0M054bDVIeDM4aDdOOTNFQW9qUkN3d2ltNGw1d3dJbDdPdWpSTlV6V0ciLCJoYXNfaW5mb3MiOnRydWUsIm5yb3MiOlsiMjY3Il0sImF1dGgiOiJNS1VBbTNPaWhaaWJlQVRPQ2xaRnBYYUhFN3d3eGI0NGF3d1N1S1VwNG9lN3haTXRNcUJ1aVdIIiwiaWF0IjoxNjQ4MjE1NjE3LCJleHAiOjE2NDgzMDIwMTd9.EJZTSTac_SLgq9NFnLOctf-J06u3GY1L9ZTV_1zSQ7A"
|
|
11211
|
+
}
|
|
11217
11212
|
});
|
|
11218
11213
|
|
|
11219
|
-
case
|
|
11214
|
+
case 7:
|
|
11220
11215
|
response = _context.sent;
|
|
11221
11216
|
|
|
11222
11217
|
if (!(_typeof(response) != "object" || _typeof(response.data) != "object")) {
|
|
11223
|
-
_context.next =
|
|
11218
|
+
_context.next = 10;
|
|
11224
11219
|
break;
|
|
11225
11220
|
}
|
|
11226
11221
|
|
|
11227
11222
|
throw "Retorno incorreto";
|
|
11228
11223
|
|
|
11229
|
-
case
|
|
11224
|
+
case 10:
|
|
11230
11225
|
data = response.data;
|
|
11231
11226
|
st_ret = data.st_ret, msg_ret = data.msg_ret, raspagem = data.raspagem;
|
|
11232
11227
|
|
|
11233
11228
|
if (!(st_ret != "OK")) {
|
|
11234
|
-
_context.next =
|
|
11229
|
+
_context.next = 14;
|
|
11235
11230
|
break;
|
|
11236
11231
|
}
|
|
11237
11232
|
|
|
11238
11233
|
throw "".concat(st_ret, " - ").concat(msg_ret);
|
|
11239
11234
|
|
|
11240
|
-
case
|
|
11235
|
+
case 14:
|
|
11241
11236
|
if (raspagem) {
|
|
11242
|
-
_context.next =
|
|
11237
|
+
_context.next = 16;
|
|
11243
11238
|
break;
|
|
11244
11239
|
}
|
|
11245
11240
|
|
|
11246
11241
|
throw "".concat(st_ret, " - ").concat(msg_ret, " | (Raspagem nao encontrada no retorno)");
|
|
11247
11242
|
|
|
11248
|
-
case
|
|
11243
|
+
case 16:
|
|
11249
11244
|
description = raspagem.description, og = raspagem.og, theme_color = raspagem.theme_color;
|
|
11250
11245
|
if (description) _this2.linkPreview.description = description;
|
|
11251
|
-
if (
|
|
11246
|
+
if (raspagem.author) _this2.linkPreview.author = raspagem.author;
|
|
11247
|
+
|
|
11248
|
+
if (og) {
|
|
11249
|
+
image = og.image, site_name = og.site_name, title = og.title, author = og.author;
|
|
11250
|
+
if (image) _this2.linkPreview.imageSource = image;
|
|
11251
|
+
if (author || site_name || title) _this2.linkPreview.author = author ? author : site_name ? site_name : title;
|
|
11252
|
+
if (og.description) _this2.linkPreview.description = og.description;
|
|
11253
|
+
}
|
|
11254
|
+
|
|
11252
11255
|
if (theme_color) _this2.linkPreview.colorTheme = theme_color;
|
|
11253
11256
|
if (_this2.linkPreview.description || _this2.linkPreview.imageSource) _this2.linkPreview.isValid = true;
|
|
11254
|
-
_context.next =
|
|
11257
|
+
_context.next = 27;
|
|
11255
11258
|
break;
|
|
11256
11259
|
|
|
11257
|
-
case
|
|
11258
|
-
_context.prev =
|
|
11260
|
+
case 24:
|
|
11261
|
+
_context.prev = 24;
|
|
11259
11262
|
_context.t0 = _context["catch"](0);
|
|
11260
11263
|
console.error("Erro ao gerar o preview do link: ", _context.t0);
|
|
11261
11264
|
|
|
11262
|
-
case
|
|
11265
|
+
case 27:
|
|
11263
11266
|
case "end":
|
|
11264
11267
|
return _context.stop();
|
|
11265
11268
|
}
|
|
11266
11269
|
}
|
|
11267
|
-
}, _callee, null, [[0,
|
|
11270
|
+
}, _callee, null, [[0, 24]]);
|
|
11268
11271
|
}))();
|
|
11272
|
+
},
|
|
11273
|
+
openUrl: function openUrl() {
|
|
11274
|
+
var url = this.returnURL();
|
|
11275
|
+
if (!url) return;
|
|
11276
|
+
window.open(url, "_blank");
|
|
11269
11277
|
}
|
|
11270
11278
|
}
|
|
11271
11279
|
};/* script */
|
|
@@ -11280,8 +11288,16 @@ var __vue_render__$4 = function __vue_render__() {
|
|
|
11280
11288
|
var _c = _vm._self._c || _h;
|
|
11281
11289
|
|
|
11282
11290
|
return _vm.linkPreview.isValid ? _c('div', {
|
|
11283
|
-
staticClass: "link-preview"
|
|
11284
|
-
|
|
11291
|
+
staticClass: "link-preview",
|
|
11292
|
+
attrs: {
|
|
11293
|
+
"title": "Abrir " + _vm.returnURL() + " em uma nova guia"
|
|
11294
|
+
},
|
|
11295
|
+
on: {
|
|
11296
|
+
"click": function click($event) {
|
|
11297
|
+
return _vm.openUrl();
|
|
11298
|
+
}
|
|
11299
|
+
}
|
|
11300
|
+
}, [_vm._ssrNode((_vm.linkPreview.imageSource ? "<div class=\"link-preview-image\"" + _vm._ssrStyle(null, _vm.linkPreview.colorTheme ? "background-color: " + _vm.linkPreview.colorTheme : '', null) + " data-v-1c4c4efa><img" + _vm._ssrAttr("src", _vm.linkPreview.imageSource) + " alt=\"Imagem referente ao link\" data-v-1c4c4efa></div>" : "<!---->") + " " + (_vm.linkPreview.author ? "<div class=\"link-preview-author\" data-v-1c4c4efa><h1 data-v-1c4c4efa>" + _vm._ssrEscape(_vm._s(_vm.linkPreview.author)) + "</h1></div>" : "<!---->") + " " + (_vm.linkPreview.description ? "<div class=\"link-preview-infos\" data-v-1c4c4efa>" + (_vm.linkPreview.description ? "<p data-v-1c4c4efa>" + _vm._ssrEscape(_vm._s(_vm.linkPreview.description)) + "</p>" : "<!---->") + "</div>" : "<!---->"))]) : _vm._e();
|
|
11285
11301
|
};
|
|
11286
11302
|
|
|
11287
11303
|
var __vue_staticRenderFns__$4 = [];
|
|
@@ -11289,8 +11305,8 @@ var __vue_staticRenderFns__$4 = [];
|
|
|
11289
11305
|
|
|
11290
11306
|
var __vue_inject_styles__$4 = function __vue_inject_styles__(inject) {
|
|
11291
11307
|
if (!inject) return;
|
|
11292
|
-
inject("data-v-
|
|
11293
|
-
source: ".link-preview[data-v-
|
|
11308
|
+
inject("data-v-1c4c4efa_0", {
|
|
11309
|
+
source: ".link-preview[data-v-1c4c4efa]{display:flex;flex-direction:column;background-color:#eee;color:#333;cursor:pointer;margin:5px 0;border-radius:5px}.link-preview-image[data-v-1c4c4efa]{display:flex;justify-content:center;align-items:center;padding:10px;margin-bottom:5px}.link-preview-author[data-v-1c4c4efa]{margin:5px;font-size:.625em}.link-preview-author h1[data-v-1c4c4efa]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.link-preview-image img[data-v-1c4c4efa]{min-width:100px;max-width:200px}.link-preview-infos[data-v-1c4c4efa]{background-color:#2626261a;padding:5px;margin:0 5px 5px 5px;font-size:.8rem;border-radius:5px}.link-preview:hover .link-preview-infos p[data-v-1c4c4efa]{text-decoration:underline}",
|
|
11294
11310
|
map: undefined,
|
|
11295
11311
|
media: undefined
|
|
11296
11312
|
});
|
|
@@ -11298,10 +11314,10 @@ var __vue_inject_styles__$4 = function __vue_inject_styles__(inject) {
|
|
|
11298
11314
|
/* scoped */
|
|
11299
11315
|
|
|
11300
11316
|
|
|
11301
|
-
var __vue_scope_id__$4 = "data-v-
|
|
11317
|
+
var __vue_scope_id__$4 = "data-v-1c4c4efa";
|
|
11302
11318
|
/* module identifier */
|
|
11303
11319
|
|
|
11304
|
-
var __vue_module_identifier__$4 = "data-v-
|
|
11320
|
+
var __vue_module_identifier__$4 = "data-v-1c4c4efa";
|
|
11305
11321
|
/* functional template */
|
|
11306
11322
|
|
|
11307
11323
|
var __vue_is_functional_template__$4 = false;
|
package/package.json
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div
|
|
2
|
+
<div
|
|
3
|
+
v-if="linkPreview.isValid"
|
|
4
|
+
class="link-preview"
|
|
5
|
+
@click="openUrl()"
|
|
6
|
+
:title="`Abrir ${returnURL()} em uma nova guia`"
|
|
7
|
+
>
|
|
3
8
|
<div
|
|
4
9
|
v-if="linkPreview.imageSource"
|
|
5
10
|
:style="linkPreview.colorTheme ? `background-color: ${linkPreview.colorTheme}` : ''"
|
|
@@ -7,6 +12,9 @@
|
|
|
7
12
|
>
|
|
8
13
|
<img :src="linkPreview.imageSource" alt="Imagem referente ao link" />
|
|
9
14
|
</div>
|
|
15
|
+
<div class="link-preview-author" v-if="linkPreview.author">
|
|
16
|
+
<h1 v-text="linkPreview.author"></h1>
|
|
17
|
+
</div>
|
|
10
18
|
<div v-if="linkPreview.description" class="link-preview-infos">
|
|
11
19
|
<p v-if="linkPreview.description" v-text="linkPreview.description"></p>
|
|
12
20
|
</div>
|
|
@@ -26,6 +34,7 @@ export default {
|
|
|
26
34
|
data() {
|
|
27
35
|
return {
|
|
28
36
|
linkPreview: {
|
|
37
|
+
author: "",
|
|
29
38
|
description: "",
|
|
30
39
|
imageSource: "",
|
|
31
40
|
colorTheme: "",
|
|
@@ -37,22 +46,30 @@ export default {
|
|
|
37
46
|
this.$nextTick(() => { this.gerarPreview() })
|
|
38
47
|
},
|
|
39
48
|
methods: {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
if(!this.message) return
|
|
49
|
+
returnURL() {
|
|
50
|
+
if(!this.message) return ""
|
|
43
51
|
const isSticker = this.message.indexOf("KSTICKERK") < 0 ? false : true
|
|
44
|
-
if(isSticker) return
|
|
52
|
+
if(isSticker) return ""
|
|
45
53
|
const regex = /(https?:\/\/(?:www\.|(?!www))[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\.[^\s]{2,}|www\.[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\.[^\s]{2,}|https?:\/\/(?:www\.|(?!www))[a-zA-Z0-9]+\.[^\s]{2,}|www\.[a-zA-Z0-9]+\.[^\s]{2,})/g
|
|
46
54
|
const url = regex.exec(this.message)
|
|
47
|
-
if(!url || !url[0])
|
|
48
|
-
|
|
55
|
+
if(!url || !url[0]) {
|
|
56
|
+
console.warn("URL invalida para gerar preview")
|
|
57
|
+
return ""
|
|
58
|
+
}
|
|
59
|
+
return url[0].replace(/["'*]/g, "")
|
|
60
|
+
},
|
|
61
|
+
async gerarPreview() {
|
|
62
|
+
try {
|
|
63
|
+
const url = this.returnURL()
|
|
64
|
+
if(!url) return
|
|
65
|
+
const encodedURL = Buffer(url).toString("base64")
|
|
49
66
|
const response = await this.$httpRequest(
|
|
50
67
|
{
|
|
51
68
|
method: 'get',
|
|
52
69
|
url: `${baseURL}/preview?url=${encodedURL}${dev}`,
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
70
|
+
headers: {
|
|
71
|
+
Authorization: "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhdGQiOiJNS1U5azQ3c2h2bGpOak9Db3dNMjJoMW94d3d4YjQ0YXd3allrbG1JVFNpMmV0aDI5ZTVIRXZNIiwibWFuYWdlciI6Ik1LVWVUQWlxWXBNTmk0M054bDVIeDM4aDdOOTNFQW9qUkN3d2ltNGw1d3dJbDdPdWpSTlV6V0ciLCJoYXNfaW5mb3MiOnRydWUsIm5yb3MiOlsiMjY3Il0sImF1dGgiOiJNS1VBbTNPaWhaaWJlQVRPQ2xaRnBYYUhFN3d3eGI0NGF3d1N1S1VwNG9lN3haTXRNcUJ1aVdIIiwiaWF0IjoxNjQ4MjE1NjE3LCJleHAiOjE2NDgzMDIwMTd9.EJZTSTac_SLgq9NFnLOctf-J06u3GY1L9ZTV_1zSQ7A"
|
|
72
|
+
}
|
|
56
73
|
})
|
|
57
74
|
if(typeof response != "object" || typeof response.data != "object") throw "Retorno incorreto"
|
|
58
75
|
const { data } = response
|
|
@@ -61,7 +78,13 @@ export default {
|
|
|
61
78
|
if(!raspagem) throw `${st_ret} - ${msg_ret} | (Raspagem nao encontrada no retorno)`
|
|
62
79
|
const { description, og, theme_color } = raspagem
|
|
63
80
|
if(description) this.linkPreview.description = description
|
|
64
|
-
if(
|
|
81
|
+
if(raspagem.author) this.linkPreview.author = raspagem.author
|
|
82
|
+
if(og) {
|
|
83
|
+
const { image, site_name, title, author } = og
|
|
84
|
+
if(image) this.linkPreview.imageSource = image
|
|
85
|
+
if(author || site_name || title) this.linkPreview.author = author ? author : site_name ? site_name : title
|
|
86
|
+
if(og.description) this.linkPreview.description = og.description
|
|
87
|
+
}
|
|
65
88
|
if(theme_color) this.linkPreview.colorTheme = theme_color
|
|
66
89
|
|
|
67
90
|
if(this.linkPreview.description || this.linkPreview.imageSource) this.linkPreview.isValid = true
|
|
@@ -69,7 +92,11 @@ export default {
|
|
|
69
92
|
console.error("Erro ao gerar o preview do link: ", e)
|
|
70
93
|
}
|
|
71
94
|
},
|
|
72
|
-
|
|
95
|
+
openUrl() {
|
|
96
|
+
const url = this.returnURL()
|
|
97
|
+
if(!url) return
|
|
98
|
+
window.open(url, "_blank")
|
|
99
|
+
}
|
|
73
100
|
}
|
|
74
101
|
}
|
|
75
102
|
</script>
|
|
@@ -80,6 +107,9 @@ export default {
|
|
|
80
107
|
flex-direction: column;
|
|
81
108
|
background-color: #EEE;
|
|
82
109
|
color: #333;
|
|
110
|
+
cursor: pointer;
|
|
111
|
+
margin: 5px 0;
|
|
112
|
+
border-radius: 5px;
|
|
83
113
|
}
|
|
84
114
|
|
|
85
115
|
.link-preview-image {
|
|
@@ -87,6 +117,17 @@ export default {
|
|
|
87
117
|
justify-content: center;
|
|
88
118
|
align-items: center;
|
|
89
119
|
padding: 10px;
|
|
120
|
+
margin-bottom: 5px;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
.link-preview-author {
|
|
124
|
+
margin: 5px;
|
|
125
|
+
font-size: .625em
|
|
126
|
+
}
|
|
127
|
+
.link-preview-author h1 {
|
|
128
|
+
overflow: hidden;
|
|
129
|
+
text-overflow: ellipsis;
|
|
130
|
+
white-space: nowrap;
|
|
90
131
|
}
|
|
91
132
|
|
|
92
133
|
.link-preview-image img {
|
|
@@ -95,9 +136,14 @@ export default {
|
|
|
95
136
|
}
|
|
96
137
|
|
|
97
138
|
.link-preview-infos {
|
|
98
|
-
background-color:
|
|
139
|
+
background-color: #2626261a;
|
|
99
140
|
padding: 5px;
|
|
100
|
-
margin: 5px;
|
|
141
|
+
margin: 0 5px 5px 5px;
|
|
101
142
|
font-size: .8rem;
|
|
143
|
+
border-radius: 5px;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
.link-preview:hover .link-preview-infos p {
|
|
147
|
+
text-decoration: underline;
|
|
102
148
|
}
|
|
103
149
|
</style>
|