@saasquatch/squatch-js 2.8.2-2 → 2.8.2-20
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 +114 -378
- package/dist/squatch.cjs.js.map +1 -1
- package/dist/squatch.esm.js +114 -378
- package/dist/squatch.esm.js.map +1 -1
- package/dist/squatch.js +114 -378
- package/dist/squatch.js.map +1 -1
- package/dist/squatch.min.js +1 -1
- package/package.json +1 -1
package/dist/squatch.cjs.js
CHANGED
|
@@ -1108,366 +1108,89 @@ function delay(duration) {
|
|
|
1108
1108
|
setTimeout(resolve, duration);
|
|
1109
1109
|
});
|
|
1110
1110
|
}
|
|
1111
|
-
const getSkeleton = ({
|
|
1112
|
-
height = "500px",
|
|
1113
|
-
skeletonBackgroundColor = "#e0e0e0",
|
|
1114
|
-
skeletonShimmerColor = "#f5f5f5",
|
|
1115
|
-
borderColor = "#ccc"
|
|
1116
|
-
}) => {
|
|
1117
|
-
return `
|
|
1118
|
-
<style>
|
|
1119
|
-
* {
|
|
1120
|
-
box-sizing: border-box;
|
|
1121
|
-
padding: 0;
|
|
1122
|
-
margin: 0;
|
|
1123
|
-
}
|
|
1124
|
-
|
|
1125
|
-
.widget-container {
|
|
1126
|
-
background: white;
|
|
1127
|
-
width: 100%;
|
|
1128
|
-
max-width: 900px;
|
|
1129
|
-
padding: 40px;
|
|
1130
|
-
border-radius: 12px;
|
|
1131
|
-
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
|
|
1132
|
-
box-sizing: border-box;
|
|
1133
|
-
}
|
|
1134
|
-
|
|
1135
|
-
@keyframes shimmer {
|
|
1136
|
-
0% {
|
|
1137
|
-
background-position: -100% 0;
|
|
1138
|
-
}
|
|
1139
|
-
100% {
|
|
1140
|
-
background-position: 100% 0;
|
|
1141
|
-
}
|
|
1142
|
-
}
|
|
1143
|
-
|
|
1144
|
-
.skeleton {
|
|
1145
|
-
background: ${skeletonBackgroundColor};
|
|
1146
|
-
background: linear-gradient(
|
|
1147
|
-
90deg,
|
|
1148
|
-
${skeletonBackgroundColor} 25%,
|
|
1149
|
-
${skeletonShimmerColor} 50%,
|
|
1150
|
-
${skeletonBackgroundColor} 75%
|
|
1151
|
-
);
|
|
1152
|
-
background-size: 200% 100%;
|
|
1153
|
-
animation: shimmer 1.5s infinite linear;
|
|
1154
|
-
border-radius: 6px;
|
|
1155
|
-
margin-bottom: 12px;
|
|
1156
|
-
}
|
|
1157
|
-
|
|
1158
|
-
.sk-title-lg {
|
|
1159
|
-
height: 36px;
|
|
1160
|
-
width: 50%;
|
|
1161
|
-
margin-bottom: 16px;
|
|
1162
|
-
}
|
|
1163
|
-
.sk-title-md {
|
|
1164
|
-
height: 28px;
|
|
1165
|
-
width: 30%;
|
|
1166
|
-
margin-bottom: 20px;
|
|
1167
|
-
margin-top: 40px;
|
|
1168
|
-
}
|
|
1169
|
-
.sk-text {
|
|
1170
|
-
height: 16px;
|
|
1171
|
-
width: 80%;
|
|
1172
|
-
margin-bottom: 8px;
|
|
1173
|
-
}
|
|
1174
|
-
.sk-text-short {
|
|
1175
|
-
width: 40%;
|
|
1176
|
-
}
|
|
1177
|
-
.sk-label {
|
|
1178
|
-
height: 14px;
|
|
1179
|
-
width: 25%;
|
|
1180
|
-
margin-bottom: 10px;
|
|
1181
|
-
}
|
|
1182
|
-
|
|
1183
|
-
.hero-section {
|
|
1184
|
-
display: flex;
|
|
1185
|
-
gap: 40px;
|
|
1186
|
-
margin-bottom: 40px;
|
|
1187
|
-
border-bottom: 1px solid ${borderColor};
|
|
1188
|
-
padding-bottom: 40px;
|
|
1189
|
-
flex-direction: row;
|
|
1190
|
-
}
|
|
1191
|
-
.hero-content {
|
|
1192
|
-
flex: 1;
|
|
1193
|
-
display: flex;
|
|
1194
|
-
flex-direction: column;
|
|
1195
|
-
justify-content: center;
|
|
1196
|
-
}
|
|
1197
|
-
.hero-image {
|
|
1198
|
-
flex: 1;
|
|
1199
|
-
height: 300px;
|
|
1200
|
-
border-radius: 12px;
|
|
1201
|
-
}
|
|
1202
|
-
|
|
1203
|
-
.share-section {
|
|
1204
|
-
margin-bottom: 40px;
|
|
1205
|
-
}
|
|
1206
|
-
.sk-input {
|
|
1207
|
-
height: 50px;
|
|
1208
|
-
width: 100%;
|
|
1209
|
-
border-radius: 8px;
|
|
1210
|
-
margin-bottom: 16px;
|
|
1211
|
-
}
|
|
1212
|
-
.social-buttons {
|
|
1213
|
-
display: flex;
|
|
1214
|
-
gap: 12px;
|
|
1215
|
-
}
|
|
1216
|
-
.sk-btn-social {
|
|
1217
|
-
flex: 1;
|
|
1218
|
-
height: 50px;
|
|
1219
|
-
border-radius: 8px;
|
|
1220
|
-
}
|
|
1221
|
-
|
|
1222
|
-
.stats-section {
|
|
1223
|
-
display: flex;
|
|
1224
|
-
gap: 24px;
|
|
1225
|
-
margin-bottom: 40px;
|
|
1226
|
-
padding: 30px 0;
|
|
1227
|
-
border-top: 1px solid ${borderColor};
|
|
1228
|
-
border-bottom: 1px solid ${borderColor};
|
|
1229
|
-
}
|
|
1230
|
-
.stat-card {
|
|
1231
|
-
flex: 1;
|
|
1232
|
-
display: flex;
|
|
1233
|
-
flex-direction: column;
|
|
1234
|
-
align-items: center;
|
|
1235
|
-
}
|
|
1236
|
-
.stat-divider {
|
|
1237
|
-
padding-left: 24px;
|
|
1238
|
-
}
|
|
1239
|
-
|
|
1240
|
-
.sk-stat-num {
|
|
1241
|
-
height: 48px;
|
|
1242
|
-
width: 120px;
|
|
1243
|
-
margin-bottom: 8px;
|
|
1244
|
-
}
|
|
1245
|
-
.sk-stat-label {
|
|
1246
|
-
height: 18px;
|
|
1247
|
-
width: 80px;
|
|
1248
|
-
}
|
|
1249
|
-
|
|
1250
|
-
.table-header {
|
|
1251
|
-
display: flex;
|
|
1252
|
-
gap: 16px;
|
|
1253
|
-
margin-bottom: 16px;
|
|
1254
|
-
}
|
|
1255
|
-
.sk-th {
|
|
1256
|
-
height: 16px;
|
|
1257
|
-
}
|
|
1258
|
-
.table-row {
|
|
1259
|
-
display: flex;
|
|
1260
|
-
align-items: center;
|
|
1261
|
-
gap: 16px;
|
|
1262
|
-
padding: 16px 0;
|
|
1263
|
-
border-bottom: 1px solid ${borderColor};
|
|
1264
|
-
}
|
|
1265
|
-
|
|
1266
|
-
.col-user {
|
|
1267
|
-
flex: 2;
|
|
1268
|
-
}
|
|
1269
|
-
.col-status {
|
|
1270
|
-
flex: 1;
|
|
1271
|
-
}
|
|
1272
|
-
.col-reward {
|
|
1273
|
-
flex: 2;
|
|
1274
|
-
}
|
|
1275
|
-
.col-date {
|
|
1276
|
-
flex: 1;
|
|
1277
|
-
}
|
|
1278
|
-
|
|
1279
|
-
.sk-badge {
|
|
1280
|
-
height: 28px;
|
|
1281
|
-
width: 90px;
|
|
1282
|
-
border-radius: 14px;
|
|
1283
|
-
}
|
|
1284
|
-
.sk-reward-block {
|
|
1285
|
-
height: 36px;
|
|
1286
|
-
width: 100%;
|
|
1287
|
-
border-radius: 6px;
|
|
1288
|
-
}
|
|
1289
|
-
|
|
1290
|
-
.pagination {
|
|
1291
|
-
display: flex;
|
|
1292
|
-
justify-content: flex-end;
|
|
1293
|
-
gap: 8px;
|
|
1294
|
-
margin-top: 24px;
|
|
1295
|
-
}
|
|
1296
|
-
.sk-btn-page {
|
|
1297
|
-
height: 36px;
|
|
1298
|
-
width: 64px;
|
|
1299
|
-
border-radius: 6px;
|
|
1300
|
-
margin-bottom: 0;
|
|
1301
|
-
}
|
|
1302
|
-
|
|
1303
|
-
@media (max-width: 768px) {
|
|
1304
|
-
body {
|
|
1305
|
-
padding: 20px;
|
|
1306
|
-
}
|
|
1307
|
-
.widget-container {
|
|
1308
|
-
padding: 24px;
|
|
1309
|
-
}
|
|
1310
|
-
|
|
1311
|
-
.hero-section {
|
|
1312
|
-
flex-direction: column-reverse;
|
|
1313
|
-
gap: 24px;
|
|
1314
|
-
}
|
|
1315
|
-
.hero-image {
|
|
1316
|
-
height: 220px;
|
|
1317
|
-
width: 100%;
|
|
1318
|
-
}
|
|
1319
|
-
.sk-title-lg {
|
|
1320
|
-
width: 80%;
|
|
1321
|
-
}
|
|
1322
|
-
|
|
1323
|
-
.col-date {
|
|
1324
|
-
display: none;
|
|
1325
|
-
}
|
|
1326
|
-
}
|
|
1327
|
-
|
|
1328
|
-
@media (max-width: 480px) {
|
|
1329
|
-
body {
|
|
1330
|
-
padding: 10px;
|
|
1331
|
-
}
|
|
1332
|
-
.widget-container {
|
|
1333
|
-
padding: 16px;
|
|
1334
|
-
}
|
|
1335
|
-
|
|
1336
|
-
.sk-stat-num {
|
|
1337
|
-
width: 80px;
|
|
1338
|
-
height: 40px;
|
|
1339
|
-
}
|
|
1340
|
-
|
|
1341
|
-
.col-reward {
|
|
1342
|
-
display: none;
|
|
1343
|
-
}
|
|
1344
|
-
|
|
1345
|
-
.col-user {
|
|
1346
|
-
flex: 3;
|
|
1347
|
-
}
|
|
1348
|
-
.col-status {
|
|
1349
|
-
flex: 2;
|
|
1350
|
-
display: flex;
|
|
1351
|
-
justify-content: flex-end;
|
|
1352
|
-
}
|
|
1353
|
-
}
|
|
1354
|
-
</style>
|
|
1355
|
-
|
|
1356
|
-
<div class="widget-container">
|
|
1357
|
-
<div class="hero-section">
|
|
1358
|
-
<div class="hero-content">
|
|
1359
|
-
<div class="skeleton sk-title-lg"></div>
|
|
1360
|
-
<div class="skeleton sk-text"></div>
|
|
1361
|
-
<div class="skeleton sk-text sk-text-short"></div>
|
|
1362
|
-
</div>
|
|
1363
|
-
<div class="skeleton hero-image"></div>
|
|
1364
|
-
</div>
|
|
1365
|
-
|
|
1366
|
-
<div class="share-section">
|
|
1367
|
-
<div class="skeleton sk-label"></div>
|
|
1368
|
-
<div class="skeleton sk-input"></div>
|
|
1369
|
-
<div class="social-buttons">
|
|
1370
|
-
<div class="skeleton sk-btn-social"></div>
|
|
1371
|
-
<div class="skeleton sk-btn-social"></div>
|
|
1372
|
-
<div class="skeleton sk-btn-social"></div>
|
|
1373
|
-
<div class="skeleton sk-btn-social"></div>
|
|
1374
|
-
</div>
|
|
1375
|
-
</div>
|
|
1376
|
-
|
|
1377
|
-
<div
|
|
1378
|
-
class="skeleton sk-title-md"
|
|
1379
|
-
style="margin-top: 0; width: 30%; margin-left: auto; margin-right: auto"
|
|
1380
|
-
></div>
|
|
1381
|
-
<div
|
|
1382
|
-
class="skeleton sk-text"
|
|
1383
|
-
style="width: 60%; margin-left: auto; margin-right: auto"
|
|
1384
|
-
></div>
|
|
1385
|
-
|
|
1386
|
-
<div class="stats-section">
|
|
1387
|
-
<div class="stat-card">
|
|
1388
|
-
<div class="skeleton sk-stat-num"></div>
|
|
1389
|
-
<div class="skeleton sk-stat-label"></div>
|
|
1390
|
-
</div>
|
|
1391
|
-
<div class="stat-card stat-divider">
|
|
1392
|
-
<div class="skeleton sk-stat-num"></div>
|
|
1393
|
-
<div class="skeleton sk-stat-label"></div>
|
|
1394
|
-
</div>
|
|
1395
|
-
</div>
|
|
1396
|
-
|
|
1397
|
-
<div class="skeleton sk-title-md"></div>
|
|
1398
|
-
|
|
1399
|
-
<div class="table-header">
|
|
1400
|
-
<div class="skeleton sk-th col-user"></div>
|
|
1401
|
-
<div class="skeleton sk-th col-status"></div>
|
|
1402
|
-
<div class="skeleton sk-th col-reward"></div>
|
|
1403
|
-
<div class="skeleton sk-th col-date"></div>
|
|
1404
|
-
</div>
|
|
1405
|
-
|
|
1406
|
-
<div class="table-row">
|
|
1407
|
-
<div class="col-user">
|
|
1408
|
-
<div class="skeleton sk-text" style="width: 70%; margin: 0"></div>
|
|
1409
|
-
</div>
|
|
1410
|
-
<div class="col-status">
|
|
1411
|
-
<div class="skeleton sk-badge" style="margin: 0"></div>
|
|
1412
|
-
</div>
|
|
1413
|
-
<div class="col-reward">
|
|
1414
|
-
<div class="skeleton sk-reward-block" style="margin: 0"></div>
|
|
1415
|
-
</div>
|
|
1416
|
-
<div class="col-date">
|
|
1417
|
-
<div class="skeleton sk-text" style="width: 80%; margin: 0"></div>
|
|
1418
|
-
</div>
|
|
1419
|
-
</div>
|
|
1420
|
-
<div class="table-row">
|
|
1421
|
-
<div class="col-user">
|
|
1422
|
-
<div class="skeleton sk-text" style="width: 60%; margin: 0"></div>
|
|
1423
|
-
</div>
|
|
1424
|
-
<div class="col-status">
|
|
1425
|
-
<div class="skeleton sk-badge" style="margin: 0"></div>
|
|
1426
|
-
</div>
|
|
1427
|
-
<div class="col-reward">
|
|
1428
|
-
<div class="skeleton sk-reward-block" style="margin: 0"></div>
|
|
1429
|
-
</div>
|
|
1430
|
-
<div class="col-date">
|
|
1431
|
-
<div class="skeleton sk-text" style="width: 80%; margin: 0"></div>
|
|
1432
|
-
</div>
|
|
1433
|
-
</div>
|
|
1434
|
-
<div class="table-row">
|
|
1435
|
-
<div class="col-user">
|
|
1436
|
-
<div class="skeleton sk-text" style="width: 75%; margin: 0"></div>
|
|
1437
|
-
</div>
|
|
1438
|
-
<div class="col-status">
|
|
1439
|
-
<div class="skeleton sk-badge" style="margin: 0"></div>
|
|
1440
|
-
</div>
|
|
1441
|
-
<div class="col-reward">
|
|
1442
|
-
<div class="skeleton sk-reward-block" style="margin: 0"></div>
|
|
1443
|
-
</div>
|
|
1444
|
-
<div class="col-date">
|
|
1445
|
-
<div class="skeleton sk-text" style="width: 80%; margin: 0"></div>
|
|
1446
|
-
</div>
|
|
1447
|
-
</div>
|
|
1448
|
-
|
|
1449
|
-
<div class="pagination">
|
|
1450
|
-
<div class="skeleton sk-btn-page"></div>
|
|
1451
|
-
<div class="skeleton sk-btn-page"></div>
|
|
1452
|
-
</div>
|
|
1453
|
-
</div>
|
|
1454
|
-
`;
|
|
1455
|
-
};
|
|
1456
1111
|
const _log$7 = browserExports.debug("squatch-js:EMBEDwidget");
|
|
1457
1112
|
class EmbedWidget extends Widget {
|
|
1458
1113
|
constructor(params, container) {
|
|
1459
1114
|
super(params);
|
|
1460
1115
|
__publicField(this, "show", this.open);
|
|
1461
1116
|
__publicField(this, "hide", this.close);
|
|
1462
|
-
if (container)
|
|
1463
|
-
|
|
1117
|
+
if (container) {
|
|
1118
|
+
this.container = container;
|
|
1119
|
+
}
|
|
1120
|
+
}
|
|
1121
|
+
//Old code for testing
|
|
1122
|
+
// async load() {
|
|
1123
|
+
// const brandingConfig = this.context.widgetConfig?.values?.brandingConfig;
|
|
1124
|
+
// const sizes = brandingConfig?.widgetSize?.embeddedWidgets;
|
|
1125
|
+
// const maxWidth = sizes?.maxWidth ? formatWidth(sizes.maxWidth) : "";
|
|
1126
|
+
// const minWidth = sizes?.minWidth ? formatWidth(sizes.minWidth) : "";
|
|
1127
|
+
// const frame = this._createFrame({ minWidth, maxWidth });
|
|
1128
|
+
// const element = this._findElement();
|
|
1129
|
+
// if (this.context?.container) {
|
|
1130
|
+
// // Custom container is used
|
|
1131
|
+
// element.style.visibility = "hidden";
|
|
1132
|
+
// element.style.height = "0";
|
|
1133
|
+
// element.style["overflow-y"] = "hidden";
|
|
1134
|
+
// }
|
|
1135
|
+
// if (this.container) {
|
|
1136
|
+
// if (element.shadowRoot) {
|
|
1137
|
+
// if (element.shadowRoot.lastChild?.nodeName === "IFRAME") {
|
|
1138
|
+
// element.shadowRoot.replaceChild(frame, element.shadowRoot.lastChild);
|
|
1139
|
+
// } else {
|
|
1140
|
+
// element.shadowRoot.appendChild(frame);
|
|
1141
|
+
// }
|
|
1142
|
+
// }
|
|
1143
|
+
// // Widget reloaded - replace existing element
|
|
1144
|
+
// else if (element.firstChild) {
|
|
1145
|
+
// element.replaceChild(frame, element.firstChild);
|
|
1146
|
+
// // Add iframe for the first time
|
|
1147
|
+
// } else {
|
|
1148
|
+
// element.appendChild(frame);
|
|
1149
|
+
// }
|
|
1150
|
+
// } else if (!element.firstChild || element.firstChild.nodeName === "#text") {
|
|
1151
|
+
// element.appendChild(frame);
|
|
1152
|
+
// }
|
|
1153
|
+
// const { contentWindow } = frame;
|
|
1154
|
+
// if (!contentWindow) {
|
|
1155
|
+
// throw new Error("Frame needs a content window");
|
|
1156
|
+
// }
|
|
1157
|
+
// const frameDoc = contentWindow.document;
|
|
1158
|
+
// frameDoc.open();
|
|
1159
|
+
// frameDoc.write(this.content);
|
|
1160
|
+
// frameDoc.write(
|
|
1161
|
+
// `<script src="${this.npmCdn}/resize-observer-polyfill@1.5.x"><\/script>`
|
|
1162
|
+
// );
|
|
1163
|
+
// frameDoc.close();
|
|
1164
|
+
// domready(frameDoc, async () => {
|
|
1165
|
+
// const _sqh = contentWindow.squatch || contentWindow.widgetIdent;
|
|
1166
|
+
// // @ts-ignore -- number will be cast to string by browsers
|
|
1167
|
+
// frame.height = frameDoc.body.scrollHeight;
|
|
1168
|
+
// // Adjust frame height when size of body changes
|
|
1169
|
+
// /* istanbul ignore next: hard to test */
|
|
1170
|
+
// const ro = new contentWindow["ResizeObserver"]((entries) => {
|
|
1171
|
+
// for (const entry of entries) {
|
|
1172
|
+
// const { height } = entry.contentRect;
|
|
1173
|
+
// // @ts-ignore -- number will be cast to string by browsers
|
|
1174
|
+
// frame.height = height;
|
|
1175
|
+
// }
|
|
1176
|
+
// });
|
|
1177
|
+
// const container = await this._findInnerContainer(frame);
|
|
1178
|
+
// ro.observe(container);
|
|
1179
|
+
// if (this._shouldFireLoadEvent()) {
|
|
1180
|
+
// this._loadEvent(_sqh);
|
|
1181
|
+
// _log("loaded");
|
|
1182
|
+
// } else if (frameDoc) {
|
|
1183
|
+
// this._attachLoadEventListener(frameDoc, _sqh);
|
|
1184
|
+
// }
|
|
1185
|
+
// });
|
|
1186
|
+
// }
|
|
1464
1187
|
async load() {
|
|
1465
1188
|
var _a2, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l;
|
|
1466
1189
|
const brandingConfig = (_b = (_a2 = this.context.widgetConfig) == null ? void 0 : _a2.values) == null ? void 0 : _b.brandingConfig;
|
|
1467
1190
|
const initialHeight = brandingConfig == null ? void 0 : brandingConfig.loadingHeight;
|
|
1468
|
-
|
|
1469
|
-
|
|
1470
|
-
|
|
1191
|
+
(_d = (_c = brandingConfig == null ? void 0 : brandingConfig.color) == null ? void 0 : _c.loadingSkeleton) == null ? void 0 : _d.background;
|
|
1192
|
+
(_f = (_e = brandingConfig == null ? void 0 : brandingConfig.color) == null ? void 0 : _e.loadingSkeleton) == null ? void 0 : _f.animationBackground;
|
|
1193
|
+
(_g = brandingConfig == null ? void 0 : brandingConfig.border) == null ? void 0 : _g.borderColor;
|
|
1471
1194
|
const sizes = (_h = brandingConfig == null ? void 0 : brandingConfig.widgetSize) == null ? void 0 : _h.embeddedWidgets;
|
|
1472
1195
|
const maxWidth = (sizes == null ? void 0 : sizes.maxWidth) ? formatWidth(sizes.maxWidth) : "";
|
|
1473
1196
|
const minWidth = (sizes == null ? void 0 : sizes.minWidth) ? formatWidth(sizes.minWidth) : "";
|
|
@@ -1476,25 +1199,12 @@ class EmbedWidget extends Widget {
|
|
|
1476
1199
|
initialHeight,
|
|
1477
1200
|
widgetConfig: this.context.widgetConfig
|
|
1478
1201
|
});
|
|
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
1202
|
const frame = this._createFrame({
|
|
1488
1203
|
minWidth,
|
|
1489
1204
|
maxWidth,
|
|
1490
1205
|
initialHeight
|
|
1491
1206
|
});
|
|
1492
1207
|
const element = this._findElement();
|
|
1493
|
-
frame.style.display = "none";
|
|
1494
|
-
const injectContents = (target) => {
|
|
1495
|
-
target.appendChild(skeletonContainer);
|
|
1496
|
-
target.appendChild(frame);
|
|
1497
|
-
};
|
|
1498
1208
|
if ((_i = this.context) == null ? void 0 : _i.container) {
|
|
1499
1209
|
element.style.visibility = "hidden";
|
|
1500
1210
|
element.style.height = "0";
|
|
@@ -1505,16 +1215,15 @@ class EmbedWidget extends Widget {
|
|
|
1505
1215
|
if (((_j = element.shadowRoot.lastChild) == null ? void 0 : _j.nodeName) === "IFRAME") {
|
|
1506
1216
|
element.shadowRoot.replaceChild(frame, element.shadowRoot.lastChild);
|
|
1507
1217
|
} else {
|
|
1508
|
-
|
|
1218
|
+
element.shadowRoot.appendChild(frame);
|
|
1509
1219
|
}
|
|
1510
1220
|
} else if (element.firstChild) {
|
|
1511
|
-
element.
|
|
1512
|
-
injectContents(element);
|
|
1221
|
+
element.replaceChild(frame, element.firstChild);
|
|
1513
1222
|
} else {
|
|
1514
|
-
|
|
1223
|
+
element.appendChild(frame);
|
|
1515
1224
|
}
|
|
1516
1225
|
} else if (!element.firstChild || element.firstChild.nodeName === "#text") {
|
|
1517
|
-
|
|
1226
|
+
element.appendChild(frame);
|
|
1518
1227
|
}
|
|
1519
1228
|
const { contentWindow } = frame;
|
|
1520
1229
|
if (!contentWindow) {
|
|
@@ -1522,16 +1231,15 @@ class EmbedWidget extends Widget {
|
|
|
1522
1231
|
}
|
|
1523
1232
|
const frameDoc = contentWindow.document;
|
|
1524
1233
|
frameDoc.open();
|
|
1525
|
-
console.log({ content: this.content, context: this.context, this: this });
|
|
1526
1234
|
const domain = this.widgetApi.domain;
|
|
1527
1235
|
frameDoc.write(`
|
|
1528
|
-
${((_k = brandingConfig == null ? void 0 : brandingConfig.main) == null ? void 0 : _k.brandFont)
|
|
1236
|
+
${((_k = brandingConfig == null ? void 0 : brandingConfig.main) == null ? void 0 : _k.brandFont) ? `
|
|
1529
1237
|
<link rel="preconnect" href="https://fast${domain === "https://staging.referralsaasquatch.com" && "-staging"}.ssqt.io">
|
|
1530
1238
|
<link rel="preconnect" href="https://fonts.gstatic.com">
|
|
1531
1239
|
<link rel="preconnect" href="https://fonts.googleapis.com">
|
|
1532
1240
|
<link rel="preload" href="https://fonts.googleapis.com/css2?family=${encodeURIComponent(
|
|
1533
1241
|
(_l = brandingConfig == null ? void 0 : brandingConfig.main) == null ? void 0 : _l.brandFont
|
|
1534
|
-
)}">`}
|
|
1242
|
+
)}" as="style">` : ""}
|
|
1535
1243
|
<script src="${this.npmCdn}/resize-observer-polyfill@1.5.x"><\/script>
|
|
1536
1244
|
<style data-styles>
|
|
1537
1245
|
html { visibility:hidden;}
|
|
@@ -1541,10 +1249,6 @@ class EmbedWidget extends Widget {
|
|
|
1541
1249
|
`);
|
|
1542
1250
|
frameDoc.close();
|
|
1543
1251
|
domready(frameDoc, async () => {
|
|
1544
|
-
if (skeletonContainer && skeletonContainer.parentNode) {
|
|
1545
|
-
skeletonContainer.parentNode.removeChild(skeletonContainer);
|
|
1546
|
-
}
|
|
1547
|
-
frame.style.display = "block";
|
|
1548
1252
|
const _sqh = contentWindow.squatch || contentWindow.widgetIdent;
|
|
1549
1253
|
frame.height = initialHeight || frameDoc.body.scrollHeight;
|
|
1550
1254
|
console.log({ height: frameDoc.body.scrollHeight });
|
|
@@ -2462,12 +2166,24 @@ class DeclarativeEmbedWidget extends DeclarativeWidget {
|
|
|
2462
2166
|
}
|
|
2463
2167
|
}
|
|
2464
2168
|
async connectedCallback() {
|
|
2465
|
-
var _a2, _b;
|
|
2466
2169
|
this.loaded = true;
|
|
2467
2170
|
this.container = this.getAttribute("container");
|
|
2171
|
+
const skeletonHTML = `
|
|
2172
|
+
<div>
|
|
2173
|
+
<h1>Do I see this text ????</h1>
|
|
2174
|
+
</div>
|
|
2175
|
+
`;
|
|
2176
|
+
const skeletonContainer = document.createElement("div");
|
|
2177
|
+
skeletonContainer.id = "loading-skeleton";
|
|
2178
|
+
skeletonContainer.innerHTML = skeletonHTML;
|
|
2179
|
+
const root = this.shadowRoot || this.attachShadow({ mode: "open" });
|
|
2180
|
+
root.innerHTML = "";
|
|
2181
|
+
root.appendChild(skeletonContainer);
|
|
2468
2182
|
await this.renderWidget();
|
|
2469
|
-
const
|
|
2470
|
-
if (
|
|
2183
|
+
const loadingElement = root.getElementById("loading-skeleton");
|
|
2184
|
+
if (loadingElement) {
|
|
2185
|
+
loadingElement.remove();
|
|
2186
|
+
}
|
|
2471
2187
|
if (this.getAttribute("open") !== null) this.open();
|
|
2472
2188
|
}
|
|
2473
2189
|
}
|
|
@@ -2494,9 +2210,29 @@ class DeclarativePopupWidget extends DeclarativeWidget {
|
|
|
2494
2210
|
}
|
|
2495
2211
|
}
|
|
2496
2212
|
async connectedCallback() {
|
|
2213
|
+
var _a2;
|
|
2497
2214
|
this.loaded = true;
|
|
2498
2215
|
this.container = this.getAttribute("container");
|
|
2216
|
+
const skeletonHTML = `
|
|
2217
|
+
<div>
|
|
2218
|
+
<h1>Dynamic Content</h1>
|
|
2219
|
+
<p>This content was dynamically added to the widget before it loaded.</p>
|
|
2220
|
+
</div>
|
|
2221
|
+
`;
|
|
2222
|
+
const skeletonContainer = document.createElement("div");
|
|
2223
|
+
skeletonContainer.id = "loading-skeleton";
|
|
2224
|
+
skeletonContainer.innerHTML = skeletonHTML;
|
|
2225
|
+
if (!this.shadowRoot) {
|
|
2226
|
+
this.attachShadow({ mode: "open" });
|
|
2227
|
+
}
|
|
2228
|
+
if (this.shadowRoot) {
|
|
2229
|
+
this.shadowRoot.innerHTML = skeletonHTML;
|
|
2230
|
+
}
|
|
2499
2231
|
await this.renderWidget();
|
|
2232
|
+
const loadingElement = (_a2 = this.shadowRoot) == null ? void 0 : _a2.getElementById("loading-skeleton");
|
|
2233
|
+
if (loadingElement) {
|
|
2234
|
+
loadingElement.remove();
|
|
2235
|
+
}
|
|
2500
2236
|
if (this.getAttribute("open") !== null) this.open();
|
|
2501
2237
|
}
|
|
2502
2238
|
}
|