@saasquatch/squatch-js 2.8.2-13 → 2.8.2-15
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/squatch.cjs.js +26 -433
- package/dist/squatch.cjs.js.map +1 -1
- package/dist/squatch.esm.js +26 -433
- package/dist/squatch.esm.js.map +1 -1
- package/dist/squatch.js +26 -433
- package/dist/squatch.js.map +1 -1
- package/dist/squatch.min.js +1 -1
- package/package.json +1 -1
package/dist/squatch.esm.js
CHANGED
|
@@ -1106,351 +1106,6 @@ function delay(duration) {
|
|
|
1106
1106
|
setTimeout(resolve, duration);
|
|
1107
1107
|
});
|
|
1108
1108
|
}
|
|
1109
|
-
const getSkeleton = ({
|
|
1110
|
-
height = "500px",
|
|
1111
|
-
skeletonBackgroundColor = "#e0e0e0",
|
|
1112
|
-
skeletonShimmerColor = "#f5f5f5",
|
|
1113
|
-
borderColor = "#ccc"
|
|
1114
|
-
}) => {
|
|
1115
|
-
return `
|
|
1116
|
-
<style>
|
|
1117
|
-
* {
|
|
1118
|
-
box-sizing: border-box;
|
|
1119
|
-
padding: 0;
|
|
1120
|
-
margin: 0;
|
|
1121
|
-
}
|
|
1122
|
-
|
|
1123
|
-
.widget-container {
|
|
1124
|
-
background: white;
|
|
1125
|
-
width: 100%;
|
|
1126
|
-
max-width: 900px;
|
|
1127
|
-
padding: 40px;
|
|
1128
|
-
border-radius: 12px;
|
|
1129
|
-
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
|
|
1130
|
-
box-sizing: border-box;
|
|
1131
|
-
}
|
|
1132
|
-
|
|
1133
|
-
@keyframes shimmer {
|
|
1134
|
-
0% {
|
|
1135
|
-
background-position: -100% 0;
|
|
1136
|
-
}
|
|
1137
|
-
100% {
|
|
1138
|
-
background-position: 100% 0;
|
|
1139
|
-
}
|
|
1140
|
-
}
|
|
1141
|
-
|
|
1142
|
-
.skeleton {
|
|
1143
|
-
background: ${skeletonBackgroundColor};
|
|
1144
|
-
background: linear-gradient(
|
|
1145
|
-
90deg,
|
|
1146
|
-
${skeletonBackgroundColor} 25%,
|
|
1147
|
-
${skeletonShimmerColor} 50%,
|
|
1148
|
-
${skeletonBackgroundColor} 75%
|
|
1149
|
-
);
|
|
1150
|
-
background-size: 200% 100%;
|
|
1151
|
-
animation: shimmer 1.5s infinite linear;
|
|
1152
|
-
border-radius: 6px;
|
|
1153
|
-
margin-bottom: 12px;
|
|
1154
|
-
}
|
|
1155
|
-
|
|
1156
|
-
.sk-title-lg {
|
|
1157
|
-
height: 36px;
|
|
1158
|
-
width: 50%;
|
|
1159
|
-
margin-bottom: 16px;
|
|
1160
|
-
}
|
|
1161
|
-
.sk-title-md {
|
|
1162
|
-
height: 28px;
|
|
1163
|
-
width: 30%;
|
|
1164
|
-
margin-bottom: 20px;
|
|
1165
|
-
margin-top: 40px;
|
|
1166
|
-
}
|
|
1167
|
-
.sk-text {
|
|
1168
|
-
height: 16px;
|
|
1169
|
-
width: 80%;
|
|
1170
|
-
margin-bottom: 8px;
|
|
1171
|
-
}
|
|
1172
|
-
.sk-text-short {
|
|
1173
|
-
width: 40%;
|
|
1174
|
-
}
|
|
1175
|
-
.sk-label {
|
|
1176
|
-
height: 14px;
|
|
1177
|
-
width: 25%;
|
|
1178
|
-
margin-bottom: 10px;
|
|
1179
|
-
}
|
|
1180
|
-
|
|
1181
|
-
.hero-section {
|
|
1182
|
-
display: flex;
|
|
1183
|
-
gap: 40px;
|
|
1184
|
-
margin-bottom: 40px;
|
|
1185
|
-
border-bottom: 1px solid ${borderColor};
|
|
1186
|
-
padding-bottom: 40px;
|
|
1187
|
-
flex-direction: row;
|
|
1188
|
-
}
|
|
1189
|
-
.hero-content {
|
|
1190
|
-
flex: 1;
|
|
1191
|
-
display: flex;
|
|
1192
|
-
flex-direction: column;
|
|
1193
|
-
justify-content: center;
|
|
1194
|
-
}
|
|
1195
|
-
.hero-image {
|
|
1196
|
-
flex: 1;
|
|
1197
|
-
height: 300px;
|
|
1198
|
-
border-radius: 12px;
|
|
1199
|
-
}
|
|
1200
|
-
|
|
1201
|
-
.share-section {
|
|
1202
|
-
margin-bottom: 40px;
|
|
1203
|
-
}
|
|
1204
|
-
.sk-input {
|
|
1205
|
-
height: 50px;
|
|
1206
|
-
width: 100%;
|
|
1207
|
-
border-radius: 8px;
|
|
1208
|
-
margin-bottom: 16px;
|
|
1209
|
-
}
|
|
1210
|
-
.social-buttons {
|
|
1211
|
-
display: flex;
|
|
1212
|
-
gap: 12px;
|
|
1213
|
-
}
|
|
1214
|
-
.sk-btn-social {
|
|
1215
|
-
flex: 1;
|
|
1216
|
-
height: 50px;
|
|
1217
|
-
border-radius: 8px;
|
|
1218
|
-
}
|
|
1219
|
-
|
|
1220
|
-
.stats-section {
|
|
1221
|
-
display: flex;
|
|
1222
|
-
gap: 24px;
|
|
1223
|
-
margin-bottom: 40px;
|
|
1224
|
-
padding: 30px 0;
|
|
1225
|
-
border-top: 1px solid ${borderColor};
|
|
1226
|
-
border-bottom: 1px solid ${borderColor};
|
|
1227
|
-
}
|
|
1228
|
-
.stat-card {
|
|
1229
|
-
flex: 1;
|
|
1230
|
-
display: flex;
|
|
1231
|
-
flex-direction: column;
|
|
1232
|
-
align-items: center;
|
|
1233
|
-
}
|
|
1234
|
-
.stat-divider {
|
|
1235
|
-
padding-left: 24px;
|
|
1236
|
-
}
|
|
1237
|
-
|
|
1238
|
-
.sk-stat-num {
|
|
1239
|
-
height: 48px;
|
|
1240
|
-
width: 120px;
|
|
1241
|
-
margin-bottom: 8px;
|
|
1242
|
-
}
|
|
1243
|
-
.sk-stat-label {
|
|
1244
|
-
height: 18px;
|
|
1245
|
-
width: 80px;
|
|
1246
|
-
}
|
|
1247
|
-
|
|
1248
|
-
.table-header {
|
|
1249
|
-
display: flex;
|
|
1250
|
-
gap: 16px;
|
|
1251
|
-
margin-bottom: 16px;
|
|
1252
|
-
}
|
|
1253
|
-
.sk-th {
|
|
1254
|
-
height: 16px;
|
|
1255
|
-
}
|
|
1256
|
-
.table-row {
|
|
1257
|
-
display: flex;
|
|
1258
|
-
align-items: center;
|
|
1259
|
-
gap: 16px;
|
|
1260
|
-
padding: 16px 0;
|
|
1261
|
-
border-bottom: 1px solid ${borderColor};
|
|
1262
|
-
}
|
|
1263
|
-
|
|
1264
|
-
.col-user {
|
|
1265
|
-
flex: 2;
|
|
1266
|
-
}
|
|
1267
|
-
.col-status {
|
|
1268
|
-
flex: 1;
|
|
1269
|
-
}
|
|
1270
|
-
.col-reward {
|
|
1271
|
-
flex: 2;
|
|
1272
|
-
}
|
|
1273
|
-
.col-date {
|
|
1274
|
-
flex: 1;
|
|
1275
|
-
}
|
|
1276
|
-
|
|
1277
|
-
.sk-badge {
|
|
1278
|
-
height: 28px;
|
|
1279
|
-
width: 90px;
|
|
1280
|
-
border-radius: 14px;
|
|
1281
|
-
}
|
|
1282
|
-
.sk-reward-block {
|
|
1283
|
-
height: 36px;
|
|
1284
|
-
width: 100%;
|
|
1285
|
-
border-radius: 6px;
|
|
1286
|
-
}
|
|
1287
|
-
|
|
1288
|
-
.pagination {
|
|
1289
|
-
display: flex;
|
|
1290
|
-
justify-content: flex-end;
|
|
1291
|
-
gap: 8px;
|
|
1292
|
-
margin-top: 24px;
|
|
1293
|
-
}
|
|
1294
|
-
.sk-btn-page {
|
|
1295
|
-
height: 36px;
|
|
1296
|
-
width: 64px;
|
|
1297
|
-
border-radius: 6px;
|
|
1298
|
-
margin-bottom: 0;
|
|
1299
|
-
}
|
|
1300
|
-
|
|
1301
|
-
@media (max-width: 768px) {
|
|
1302
|
-
body {
|
|
1303
|
-
padding: 20px;
|
|
1304
|
-
}
|
|
1305
|
-
.widget-container {
|
|
1306
|
-
padding: 24px;
|
|
1307
|
-
}
|
|
1308
|
-
|
|
1309
|
-
.hero-section {
|
|
1310
|
-
flex-direction: column-reverse;
|
|
1311
|
-
gap: 24px;
|
|
1312
|
-
}
|
|
1313
|
-
.hero-image {
|
|
1314
|
-
height: 220px;
|
|
1315
|
-
width: 100%;
|
|
1316
|
-
}
|
|
1317
|
-
.sk-title-lg {
|
|
1318
|
-
width: 80%;
|
|
1319
|
-
}
|
|
1320
|
-
|
|
1321
|
-
.col-date {
|
|
1322
|
-
display: none;
|
|
1323
|
-
}
|
|
1324
|
-
}
|
|
1325
|
-
|
|
1326
|
-
@media (max-width: 480px) {
|
|
1327
|
-
body {
|
|
1328
|
-
padding: 10px;
|
|
1329
|
-
}
|
|
1330
|
-
.widget-container {
|
|
1331
|
-
padding: 16px;
|
|
1332
|
-
}
|
|
1333
|
-
|
|
1334
|
-
.sk-stat-num {
|
|
1335
|
-
width: 80px;
|
|
1336
|
-
height: 40px;
|
|
1337
|
-
}
|
|
1338
|
-
|
|
1339
|
-
.col-reward {
|
|
1340
|
-
display: none;
|
|
1341
|
-
}
|
|
1342
|
-
|
|
1343
|
-
.col-user {
|
|
1344
|
-
flex: 3;
|
|
1345
|
-
}
|
|
1346
|
-
.col-status {
|
|
1347
|
-
flex: 2;
|
|
1348
|
-
display: flex;
|
|
1349
|
-
justify-content: flex-end;
|
|
1350
|
-
}
|
|
1351
|
-
}
|
|
1352
|
-
</style>
|
|
1353
|
-
|
|
1354
|
-
<div class="widget-container">
|
|
1355
|
-
<div class="hero-section">
|
|
1356
|
-
<div class="hero-content">
|
|
1357
|
-
<div class="skeleton sk-title-lg"></div>
|
|
1358
|
-
<div class="skeleton sk-text"></div>
|
|
1359
|
-
<div class="skeleton sk-text sk-text-short"></div>
|
|
1360
|
-
</div>
|
|
1361
|
-
<div class="skeleton hero-image"></div>
|
|
1362
|
-
</div>
|
|
1363
|
-
|
|
1364
|
-
<div class="share-section">
|
|
1365
|
-
<div class="skeleton sk-label"></div>
|
|
1366
|
-
<div class="skeleton sk-input"></div>
|
|
1367
|
-
<div class="social-buttons">
|
|
1368
|
-
<div class="skeleton sk-btn-social"></div>
|
|
1369
|
-
<div class="skeleton sk-btn-social"></div>
|
|
1370
|
-
<div class="skeleton sk-btn-social"></div>
|
|
1371
|
-
<div class="skeleton sk-btn-social"></div>
|
|
1372
|
-
</div>
|
|
1373
|
-
</div>
|
|
1374
|
-
|
|
1375
|
-
<div
|
|
1376
|
-
class="skeleton sk-title-md"
|
|
1377
|
-
style="margin-top: 0; width: 30%; margin-left: auto; margin-right: auto"
|
|
1378
|
-
></div>
|
|
1379
|
-
<div
|
|
1380
|
-
class="skeleton sk-text"
|
|
1381
|
-
style="width: 60%; margin-left: auto; margin-right: auto"
|
|
1382
|
-
></div>
|
|
1383
|
-
|
|
1384
|
-
<div class="stats-section">
|
|
1385
|
-
<div class="stat-card">
|
|
1386
|
-
<div class="skeleton sk-stat-num"></div>
|
|
1387
|
-
<div class="skeleton sk-stat-label"></div>
|
|
1388
|
-
</div>
|
|
1389
|
-
<div class="stat-card stat-divider">
|
|
1390
|
-
<div class="skeleton sk-stat-num"></div>
|
|
1391
|
-
<div class="skeleton sk-stat-label"></div>
|
|
1392
|
-
</div>
|
|
1393
|
-
</div>
|
|
1394
|
-
|
|
1395
|
-
<div class="skeleton sk-title-md"></div>
|
|
1396
|
-
|
|
1397
|
-
<div class="table-header">
|
|
1398
|
-
<div class="skeleton sk-th col-user"></div>
|
|
1399
|
-
<div class="skeleton sk-th col-status"></div>
|
|
1400
|
-
<div class="skeleton sk-th col-reward"></div>
|
|
1401
|
-
<div class="skeleton sk-th col-date"></div>
|
|
1402
|
-
</div>
|
|
1403
|
-
|
|
1404
|
-
<div class="table-row">
|
|
1405
|
-
<div class="col-user">
|
|
1406
|
-
<div class="skeleton sk-text" style="width: 70%; margin: 0"></div>
|
|
1407
|
-
</div>
|
|
1408
|
-
<div class="col-status">
|
|
1409
|
-
<div class="skeleton sk-badge" style="margin: 0"></div>
|
|
1410
|
-
</div>
|
|
1411
|
-
<div class="col-reward">
|
|
1412
|
-
<div class="skeleton sk-reward-block" style="margin: 0"></div>
|
|
1413
|
-
</div>
|
|
1414
|
-
<div class="col-date">
|
|
1415
|
-
<div class="skeleton sk-text" style="width: 80%; margin: 0"></div>
|
|
1416
|
-
</div>
|
|
1417
|
-
</div>
|
|
1418
|
-
<div class="table-row">
|
|
1419
|
-
<div class="col-user">
|
|
1420
|
-
<div class="skeleton sk-text" style="width: 60%; margin: 0"></div>
|
|
1421
|
-
</div>
|
|
1422
|
-
<div class="col-status">
|
|
1423
|
-
<div class="skeleton sk-badge" style="margin: 0"></div>
|
|
1424
|
-
</div>
|
|
1425
|
-
<div class="col-reward">
|
|
1426
|
-
<div class="skeleton sk-reward-block" style="margin: 0"></div>
|
|
1427
|
-
</div>
|
|
1428
|
-
<div class="col-date">
|
|
1429
|
-
<div class="skeleton sk-text" style="width: 80%; margin: 0"></div>
|
|
1430
|
-
</div>
|
|
1431
|
-
</div>
|
|
1432
|
-
<div class="table-row">
|
|
1433
|
-
<div class="col-user">
|
|
1434
|
-
<div class="skeleton sk-text" style="width: 75%; margin: 0"></div>
|
|
1435
|
-
</div>
|
|
1436
|
-
<div class="col-status">
|
|
1437
|
-
<div class="skeleton sk-badge" style="margin: 0"></div>
|
|
1438
|
-
</div>
|
|
1439
|
-
<div class="col-reward">
|
|
1440
|
-
<div class="skeleton sk-reward-block" style="margin: 0"></div>
|
|
1441
|
-
</div>
|
|
1442
|
-
<div class="col-date">
|
|
1443
|
-
<div class="skeleton sk-text" style="width: 80%; margin: 0"></div>
|
|
1444
|
-
</div>
|
|
1445
|
-
</div>
|
|
1446
|
-
|
|
1447
|
-
<div class="pagination">
|
|
1448
|
-
<div class="skeleton sk-btn-page"></div>
|
|
1449
|
-
<div class="skeleton sk-btn-page"></div>
|
|
1450
|
-
</div>
|
|
1451
|
-
</div>
|
|
1452
|
-
`;
|
|
1453
|
-
};
|
|
1454
1109
|
const _log$7 = browserExports.debug("squatch-js:EMBEDwidget");
|
|
1455
1110
|
class EmbedWidget extends Widget {
|
|
1456
1111
|
constructor(params, container) {
|
|
@@ -1465,9 +1120,9 @@ class EmbedWidget extends Widget {
|
|
|
1465
1120
|
var _a2, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l;
|
|
1466
1121
|
const brandingConfig = (_b = (_a2 = this.context.widgetConfig) == null ? void 0 : _a2.values) == null ? void 0 : _b.brandingConfig;
|
|
1467
1122
|
const initialHeight = brandingConfig == null ? void 0 : brandingConfig.loadingHeight;
|
|
1468
|
-
|
|
1469
|
-
|
|
1470
|
-
|
|
1123
|
+
(_d = (_c = brandingConfig == null ? void 0 : brandingConfig.color) == null ? void 0 : _c.loadingSkeleton) == null ? void 0 : _d.background;
|
|
1124
|
+
(_f = (_e = brandingConfig == null ? void 0 : brandingConfig.color) == null ? void 0 : _e.loadingSkeleton) == null ? void 0 : _f.animationBackground;
|
|
1125
|
+
(_g = brandingConfig == null ? void 0 : brandingConfig.border) == null ? void 0 : _g.borderColor;
|
|
1471
1126
|
const sizes = (_h = brandingConfig == null ? void 0 : brandingConfig.widgetSize) == null ? void 0 : _h.embeddedWidgets;
|
|
1472
1127
|
const maxWidth = (sizes == null ? void 0 : sizes.maxWidth) ? formatWidth(sizes.maxWidth) : "";
|
|
1473
1128
|
const minWidth = (sizes == null ? void 0 : sizes.minWidth) ? formatWidth(sizes.minWidth) : "";
|
|
@@ -1476,24 +1131,14 @@ class EmbedWidget extends Widget {
|
|
|
1476
1131
|
initialHeight,
|
|
1477
1132
|
widgetConfig: this.context.widgetConfig
|
|
1478
1133
|
});
|
|
1479
|
-
const skeletonHTML = getSkeleton({
|
|
1480
|
-
height: initialHeight,
|
|
1481
|
-
skeletonBackgroundColor,
|
|
1482
|
-
skeletonShimmerColor,
|
|
1483
|
-
borderColor
|
|
1484
|
-
});
|
|
1485
|
-
const skeletonContainer = document.createElement("div");
|
|
1486
|
-
skeletonContainer.innerHTML = skeletonHTML;
|
|
1487
1134
|
const frame = this._createFrame({
|
|
1488
1135
|
minWidth,
|
|
1489
1136
|
maxWidth,
|
|
1490
1137
|
initialHeight
|
|
1491
1138
|
});
|
|
1492
1139
|
const element = this._findElement();
|
|
1493
|
-
element.innerHTML = skeletonHTML;
|
|
1494
1140
|
frame.style.display = "none";
|
|
1495
1141
|
const injectContents = (target) => {
|
|
1496
|
-
target.appendChild(skeletonContainer);
|
|
1497
1142
|
target.appendChild(frame);
|
|
1498
1143
|
};
|
|
1499
1144
|
if ((_i = this.context) == null ? void 0 : _i.container) {
|
|
@@ -1542,9 +1187,6 @@ class EmbedWidget extends Widget {
|
|
|
1542
1187
|
`);
|
|
1543
1188
|
frameDoc.close();
|
|
1544
1189
|
domready(frameDoc, async () => {
|
|
1545
|
-
if (skeletonContainer && skeletonContainer.parentNode) {
|
|
1546
|
-
skeletonContainer.parentNode.removeChild(skeletonContainer);
|
|
1547
|
-
}
|
|
1548
1190
|
frame.style.display = "block";
|
|
1549
1191
|
const _sqh = contentWindow.squatch || contentWindow.widgetIdent;
|
|
1550
1192
|
frame.height = initialHeight || frameDoc.body.scrollHeight;
|
|
@@ -2466,49 +2108,22 @@ class DeclarativeEmbedWidget extends DeclarativeWidget {
|
|
|
2466
2108
|
this.loaded = true;
|
|
2467
2109
|
this.container = this.getAttribute("container");
|
|
2468
2110
|
const skeletonHTML = `
|
|
2469
|
-
<div
|
|
2470
|
-
<h1>
|
|
2111
|
+
<div>
|
|
2112
|
+
<h1>Do I see this text ????</h1>
|
|
2471
2113
|
</div>
|
|
2472
2114
|
`;
|
|
2473
|
-
console.log(
|
|
2474
|
-
"/////////////////////////////////TESTING//////////////////////////////"
|
|
2475
|
-
);
|
|
2476
2115
|
const skeletonContainer = document.createElement("div");
|
|
2477
2116
|
skeletonContainer.id = "loading-skeleton";
|
|
2478
2117
|
skeletonContainer.innerHTML = skeletonHTML;
|
|
2479
|
-
skeletonContainer.style.width = "100%";
|
|
2480
2118
|
const root = this.shadowRoot || this.attachShadow({ mode: "open" });
|
|
2481
|
-
|
|
2482
|
-
|
|
2483
|
-
|
|
2484
|
-
|
|
2485
|
-
|
|
2486
|
-
|
|
2487
|
-
const el = root.getElementById("loading-skeleton");
|
|
2488
|
-
if (el) {
|
|
2489
|
-
el.remove();
|
|
2490
|
-
console.log("Skeleton removed successfully via event");
|
|
2491
|
-
}
|
|
2492
|
-
};
|
|
2493
|
-
this.addEventListener("sq:load", removeSkeleton);
|
|
2494
|
-
try {
|
|
2495
|
-
await this.renderWidget();
|
|
2496
|
-
console.log("Widget rendered (initialization complete)");
|
|
2497
|
-
setTimeout(() => {
|
|
2498
|
-
const el = root.getElementById("loading-skeleton");
|
|
2499
|
-
if (el) {
|
|
2500
|
-
console.warn("Removing skeleton via timeout (load event missing)");
|
|
2501
|
-
el.remove();
|
|
2502
|
-
}
|
|
2503
|
-
}, 5e3);
|
|
2504
|
-
} catch (err) {
|
|
2505
|
-
console.error("Critical Error in renderWidget:", err);
|
|
2506
|
-
removeSkeleton();
|
|
2119
|
+
root.innerHTML = "";
|
|
2120
|
+
root.appendChild(skeletonContainer);
|
|
2121
|
+
await this.renderWidget();
|
|
2122
|
+
const loadingElement = root.getElementById("loading-skeleton");
|
|
2123
|
+
if (loadingElement) {
|
|
2124
|
+
loadingElement.remove();
|
|
2507
2125
|
}
|
|
2508
2126
|
if (this.getAttribute("open") !== null) this.open();
|
|
2509
|
-
console.log(
|
|
2510
|
-
"/////////////////////////////////DO YOU SEE THIS CONSOLE LOG????//////////////////////////////"
|
|
2511
|
-
);
|
|
2512
2127
|
}
|
|
2513
2128
|
}
|
|
2514
2129
|
class DeclarativePopupWidget extends DeclarativeWidget {
|
|
@@ -2534,52 +2149,30 @@ class DeclarativePopupWidget extends DeclarativeWidget {
|
|
|
2534
2149
|
}
|
|
2535
2150
|
}
|
|
2536
2151
|
async connectedCallback() {
|
|
2152
|
+
var _a2;
|
|
2537
2153
|
this.loaded = true;
|
|
2538
2154
|
this.container = this.getAttribute("container");
|
|
2539
2155
|
const skeletonHTML = `
|
|
2540
|
-
|
|
2541
|
-
|
|
2542
|
-
|
|
2543
|
-
|
|
2544
|
-
|
|
2545
|
-
"/////////////////////////////////TESTING//////////////////////////////"
|
|
2546
|
-
);
|
|
2156
|
+
<div>
|
|
2157
|
+
<h1>Dynamic Content</h1>
|
|
2158
|
+
<p>This content was dynamically added to the widget before it loaded.</p>
|
|
2159
|
+
</div>
|
|
2160
|
+
`;
|
|
2547
2161
|
const skeletonContainer = document.createElement("div");
|
|
2548
2162
|
skeletonContainer.id = "loading-skeleton";
|
|
2549
2163
|
skeletonContainer.innerHTML = skeletonHTML;
|
|
2550
|
-
|
|
2551
|
-
|
|
2552
|
-
if (root.firstChild) {
|
|
2553
|
-
root.insertBefore(skeletonContainer, root.firstChild);
|
|
2554
|
-
} else {
|
|
2555
|
-
root.appendChild(skeletonContainer);
|
|
2164
|
+
if (!this.shadowRoot) {
|
|
2165
|
+
this.attachShadow({ mode: "open" });
|
|
2556
2166
|
}
|
|
2557
|
-
|
|
2558
|
-
|
|
2559
|
-
|
|
2560
|
-
|
|
2561
|
-
|
|
2562
|
-
|
|
2563
|
-
|
|
2564
|
-
this.addEventListener("sq:load", removeSkeleton);
|
|
2565
|
-
try {
|
|
2566
|
-
await this.renderWidget();
|
|
2567
|
-
console.log("Widget rendered (initialization complete)");
|
|
2568
|
-
setTimeout(() => {
|
|
2569
|
-
const el = root.getElementById("loading-skeleton");
|
|
2570
|
-
if (el) {
|
|
2571
|
-
console.warn("Removing skeleton via timeout (load event missing)");
|
|
2572
|
-
el.remove();
|
|
2573
|
-
}
|
|
2574
|
-
}, 5e3);
|
|
2575
|
-
} catch (err) {
|
|
2576
|
-
console.error("Critical Error in renderWidget:", err);
|
|
2577
|
-
removeSkeleton();
|
|
2167
|
+
if (this.shadowRoot) {
|
|
2168
|
+
this.shadowRoot.innerHTML = skeletonHTML;
|
|
2169
|
+
}
|
|
2170
|
+
await this.renderWidget();
|
|
2171
|
+
const loadingElement = (_a2 = this.shadowRoot) == null ? void 0 : _a2.getElementById("loading-skeleton");
|
|
2172
|
+
if (loadingElement) {
|
|
2173
|
+
loadingElement.remove();
|
|
2578
2174
|
}
|
|
2579
2175
|
if (this.getAttribute("open") !== null) this.open();
|
|
2580
|
-
console.log(
|
|
2581
|
-
"/////////////////////////////////DO YOU SEE THIS CONSOLE LOG????//////////////////////////////"
|
|
2582
|
-
);
|
|
2583
2176
|
}
|
|
2584
2177
|
}
|
|
2585
2178
|
class SquatchEmbed extends DeclarativeEmbedWidget {
|