@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.esm.js
CHANGED
|
@@ -1106,366 +1106,89 @@ 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) {
|
|
1457
1112
|
super(params);
|
|
1458
1113
|
__publicField(this, "show", this.open);
|
|
1459
1114
|
__publicField(this, "hide", this.close);
|
|
1460
|
-
if (container)
|
|
1461
|
-
|
|
1115
|
+
if (container) {
|
|
1116
|
+
this.container = container;
|
|
1117
|
+
}
|
|
1118
|
+
}
|
|
1119
|
+
//Old code for testing
|
|
1120
|
+
// async load() {
|
|
1121
|
+
// const brandingConfig = this.context.widgetConfig?.values?.brandingConfig;
|
|
1122
|
+
// const sizes = brandingConfig?.widgetSize?.embeddedWidgets;
|
|
1123
|
+
// const maxWidth = sizes?.maxWidth ? formatWidth(sizes.maxWidth) : "";
|
|
1124
|
+
// const minWidth = sizes?.minWidth ? formatWidth(sizes.minWidth) : "";
|
|
1125
|
+
// const frame = this._createFrame({ minWidth, maxWidth });
|
|
1126
|
+
// const element = this._findElement();
|
|
1127
|
+
// if (this.context?.container) {
|
|
1128
|
+
// // Custom container is used
|
|
1129
|
+
// element.style.visibility = "hidden";
|
|
1130
|
+
// element.style.height = "0";
|
|
1131
|
+
// element.style["overflow-y"] = "hidden";
|
|
1132
|
+
// }
|
|
1133
|
+
// if (this.container) {
|
|
1134
|
+
// if (element.shadowRoot) {
|
|
1135
|
+
// if (element.shadowRoot.lastChild?.nodeName === "IFRAME") {
|
|
1136
|
+
// element.shadowRoot.replaceChild(frame, element.shadowRoot.lastChild);
|
|
1137
|
+
// } else {
|
|
1138
|
+
// element.shadowRoot.appendChild(frame);
|
|
1139
|
+
// }
|
|
1140
|
+
// }
|
|
1141
|
+
// // Widget reloaded - replace existing element
|
|
1142
|
+
// else if (element.firstChild) {
|
|
1143
|
+
// element.replaceChild(frame, element.firstChild);
|
|
1144
|
+
// // Add iframe for the first time
|
|
1145
|
+
// } else {
|
|
1146
|
+
// element.appendChild(frame);
|
|
1147
|
+
// }
|
|
1148
|
+
// } else if (!element.firstChild || element.firstChild.nodeName === "#text") {
|
|
1149
|
+
// element.appendChild(frame);
|
|
1150
|
+
// }
|
|
1151
|
+
// const { contentWindow } = frame;
|
|
1152
|
+
// if (!contentWindow) {
|
|
1153
|
+
// throw new Error("Frame needs a content window");
|
|
1154
|
+
// }
|
|
1155
|
+
// const frameDoc = contentWindow.document;
|
|
1156
|
+
// frameDoc.open();
|
|
1157
|
+
// frameDoc.write(this.content);
|
|
1158
|
+
// frameDoc.write(
|
|
1159
|
+
// `<script src="${this.npmCdn}/resize-observer-polyfill@1.5.x"><\/script>`
|
|
1160
|
+
// );
|
|
1161
|
+
// frameDoc.close();
|
|
1162
|
+
// domready(frameDoc, async () => {
|
|
1163
|
+
// const _sqh = contentWindow.squatch || contentWindow.widgetIdent;
|
|
1164
|
+
// // @ts-ignore -- number will be cast to string by browsers
|
|
1165
|
+
// frame.height = frameDoc.body.scrollHeight;
|
|
1166
|
+
// // Adjust frame height when size of body changes
|
|
1167
|
+
// /* istanbul ignore next: hard to test */
|
|
1168
|
+
// const ro = new contentWindow["ResizeObserver"]((entries) => {
|
|
1169
|
+
// for (const entry of entries) {
|
|
1170
|
+
// const { height } = entry.contentRect;
|
|
1171
|
+
// // @ts-ignore -- number will be cast to string by browsers
|
|
1172
|
+
// frame.height = height;
|
|
1173
|
+
// }
|
|
1174
|
+
// });
|
|
1175
|
+
// const container = await this._findInnerContainer(frame);
|
|
1176
|
+
// ro.observe(container);
|
|
1177
|
+
// if (this._shouldFireLoadEvent()) {
|
|
1178
|
+
// this._loadEvent(_sqh);
|
|
1179
|
+
// _log("loaded");
|
|
1180
|
+
// } else if (frameDoc) {
|
|
1181
|
+
// this._attachLoadEventListener(frameDoc, _sqh);
|
|
1182
|
+
// }
|
|
1183
|
+
// });
|
|
1184
|
+
// }
|
|
1462
1185
|
async load() {
|
|
1463
1186
|
var _a2, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l;
|
|
1464
1187
|
const brandingConfig = (_b = (_a2 = this.context.widgetConfig) == null ? void 0 : _a2.values) == null ? void 0 : _b.brandingConfig;
|
|
1465
1188
|
const initialHeight = brandingConfig == null ? void 0 : brandingConfig.loadingHeight;
|
|
1466
|
-
|
|
1467
|
-
|
|
1468
|
-
|
|
1189
|
+
(_d = (_c = brandingConfig == null ? void 0 : brandingConfig.color) == null ? void 0 : _c.loadingSkeleton) == null ? void 0 : _d.background;
|
|
1190
|
+
(_f = (_e = brandingConfig == null ? void 0 : brandingConfig.color) == null ? void 0 : _e.loadingSkeleton) == null ? void 0 : _f.animationBackground;
|
|
1191
|
+
(_g = brandingConfig == null ? void 0 : brandingConfig.border) == null ? void 0 : _g.borderColor;
|
|
1469
1192
|
const sizes = (_h = brandingConfig == null ? void 0 : brandingConfig.widgetSize) == null ? void 0 : _h.embeddedWidgets;
|
|
1470
1193
|
const maxWidth = (sizes == null ? void 0 : sizes.maxWidth) ? formatWidth(sizes.maxWidth) : "";
|
|
1471
1194
|
const minWidth = (sizes == null ? void 0 : sizes.minWidth) ? formatWidth(sizes.minWidth) : "";
|
|
@@ -1474,25 +1197,12 @@ class EmbedWidget extends Widget {
|
|
|
1474
1197
|
initialHeight,
|
|
1475
1198
|
widgetConfig: this.context.widgetConfig
|
|
1476
1199
|
});
|
|
1477
|
-
const skeletonHTML = getSkeleton({
|
|
1478
|
-
height: initialHeight,
|
|
1479
|
-
skeletonBackgroundColor,
|
|
1480
|
-
skeletonShimmerColor,
|
|
1481
|
-
borderColor
|
|
1482
|
-
});
|
|
1483
|
-
const skeletonContainer = document.createElement("div");
|
|
1484
|
-
skeletonContainer.innerHTML = skeletonHTML;
|
|
1485
1200
|
const frame = this._createFrame({
|
|
1486
1201
|
minWidth,
|
|
1487
1202
|
maxWidth,
|
|
1488
1203
|
initialHeight
|
|
1489
1204
|
});
|
|
1490
1205
|
const element = this._findElement();
|
|
1491
|
-
frame.style.display = "none";
|
|
1492
|
-
const injectContents = (target) => {
|
|
1493
|
-
target.appendChild(skeletonContainer);
|
|
1494
|
-
target.appendChild(frame);
|
|
1495
|
-
};
|
|
1496
1206
|
if ((_i = this.context) == null ? void 0 : _i.container) {
|
|
1497
1207
|
element.style.visibility = "hidden";
|
|
1498
1208
|
element.style.height = "0";
|
|
@@ -1503,16 +1213,15 @@ class EmbedWidget extends Widget {
|
|
|
1503
1213
|
if (((_j = element.shadowRoot.lastChild) == null ? void 0 : _j.nodeName) === "IFRAME") {
|
|
1504
1214
|
element.shadowRoot.replaceChild(frame, element.shadowRoot.lastChild);
|
|
1505
1215
|
} else {
|
|
1506
|
-
|
|
1216
|
+
element.shadowRoot.appendChild(frame);
|
|
1507
1217
|
}
|
|
1508
1218
|
} else if (element.firstChild) {
|
|
1509
|
-
element.
|
|
1510
|
-
injectContents(element);
|
|
1219
|
+
element.replaceChild(frame, element.firstChild);
|
|
1511
1220
|
} else {
|
|
1512
|
-
|
|
1221
|
+
element.appendChild(frame);
|
|
1513
1222
|
}
|
|
1514
1223
|
} else if (!element.firstChild || element.firstChild.nodeName === "#text") {
|
|
1515
|
-
|
|
1224
|
+
element.appendChild(frame);
|
|
1516
1225
|
}
|
|
1517
1226
|
const { contentWindow } = frame;
|
|
1518
1227
|
if (!contentWindow) {
|
|
@@ -1520,16 +1229,15 @@ class EmbedWidget extends Widget {
|
|
|
1520
1229
|
}
|
|
1521
1230
|
const frameDoc = contentWindow.document;
|
|
1522
1231
|
frameDoc.open();
|
|
1523
|
-
console.log({ content: this.content, context: this.context, this: this });
|
|
1524
1232
|
const domain = this.widgetApi.domain;
|
|
1525
1233
|
frameDoc.write(`
|
|
1526
|
-
${((_k = brandingConfig == null ? void 0 : brandingConfig.main) == null ? void 0 : _k.brandFont)
|
|
1234
|
+
${((_k = brandingConfig == null ? void 0 : brandingConfig.main) == null ? void 0 : _k.brandFont) ? `
|
|
1527
1235
|
<link rel="preconnect" href="https://fast${domain === "https://staging.referralsaasquatch.com" && "-staging"}.ssqt.io">
|
|
1528
1236
|
<link rel="preconnect" href="https://fonts.gstatic.com">
|
|
1529
1237
|
<link rel="preconnect" href="https://fonts.googleapis.com">
|
|
1530
1238
|
<link rel="preload" href="https://fonts.googleapis.com/css2?family=${encodeURIComponent(
|
|
1531
1239
|
(_l = brandingConfig == null ? void 0 : brandingConfig.main) == null ? void 0 : _l.brandFont
|
|
1532
|
-
)}">`}
|
|
1240
|
+
)}" as="style">` : ""}
|
|
1533
1241
|
<script src="${this.npmCdn}/resize-observer-polyfill@1.5.x"><\/script>
|
|
1534
1242
|
<style data-styles>
|
|
1535
1243
|
html { visibility:hidden;}
|
|
@@ -1539,10 +1247,6 @@ class EmbedWidget extends Widget {
|
|
|
1539
1247
|
`);
|
|
1540
1248
|
frameDoc.close();
|
|
1541
1249
|
domready(frameDoc, async () => {
|
|
1542
|
-
if (skeletonContainer && skeletonContainer.parentNode) {
|
|
1543
|
-
skeletonContainer.parentNode.removeChild(skeletonContainer);
|
|
1544
|
-
}
|
|
1545
|
-
frame.style.display = "block";
|
|
1546
1250
|
const _sqh = contentWindow.squatch || contentWindow.widgetIdent;
|
|
1547
1251
|
frame.height = initialHeight || frameDoc.body.scrollHeight;
|
|
1548
1252
|
console.log({ height: frameDoc.body.scrollHeight });
|
|
@@ -2460,12 +2164,24 @@ class DeclarativeEmbedWidget extends DeclarativeWidget {
|
|
|
2460
2164
|
}
|
|
2461
2165
|
}
|
|
2462
2166
|
async connectedCallback() {
|
|
2463
|
-
var _a2, _b;
|
|
2464
2167
|
this.loaded = true;
|
|
2465
2168
|
this.container = this.getAttribute("container");
|
|
2169
|
+
const skeletonHTML = `
|
|
2170
|
+
<div>
|
|
2171
|
+
<h1>Do I see this text ????</h1>
|
|
2172
|
+
</div>
|
|
2173
|
+
`;
|
|
2174
|
+
const skeletonContainer = document.createElement("div");
|
|
2175
|
+
skeletonContainer.id = "loading-skeleton";
|
|
2176
|
+
skeletonContainer.innerHTML = skeletonHTML;
|
|
2177
|
+
const root = this.shadowRoot || this.attachShadow({ mode: "open" });
|
|
2178
|
+
root.innerHTML = "";
|
|
2179
|
+
root.appendChild(skeletonContainer);
|
|
2466
2180
|
await this.renderWidget();
|
|
2467
|
-
const
|
|
2468
|
-
if (
|
|
2181
|
+
const loadingElement = root.getElementById("loading-skeleton");
|
|
2182
|
+
if (loadingElement) {
|
|
2183
|
+
loadingElement.remove();
|
|
2184
|
+
}
|
|
2469
2185
|
if (this.getAttribute("open") !== null) this.open();
|
|
2470
2186
|
}
|
|
2471
2187
|
}
|
|
@@ -2492,9 +2208,29 @@ class DeclarativePopupWidget extends DeclarativeWidget {
|
|
|
2492
2208
|
}
|
|
2493
2209
|
}
|
|
2494
2210
|
async connectedCallback() {
|
|
2211
|
+
var _a2;
|
|
2495
2212
|
this.loaded = true;
|
|
2496
2213
|
this.container = this.getAttribute("container");
|
|
2214
|
+
const skeletonHTML = `
|
|
2215
|
+
<div>
|
|
2216
|
+
<h1>Dynamic Content</h1>
|
|
2217
|
+
<p>This content was dynamically added to the widget before it loaded.</p>
|
|
2218
|
+
</div>
|
|
2219
|
+
`;
|
|
2220
|
+
const skeletonContainer = document.createElement("div");
|
|
2221
|
+
skeletonContainer.id = "loading-skeleton";
|
|
2222
|
+
skeletonContainer.innerHTML = skeletonHTML;
|
|
2223
|
+
if (!this.shadowRoot) {
|
|
2224
|
+
this.attachShadow({ mode: "open" });
|
|
2225
|
+
}
|
|
2226
|
+
if (this.shadowRoot) {
|
|
2227
|
+
this.shadowRoot.innerHTML = skeletonHTML;
|
|
2228
|
+
}
|
|
2497
2229
|
await this.renderWidget();
|
|
2230
|
+
const loadingElement = (_a2 = this.shadowRoot) == null ? void 0 : _a2.getElementById("loading-skeleton");
|
|
2231
|
+
if (loadingElement) {
|
|
2232
|
+
loadingElement.remove();
|
|
2233
|
+
}
|
|
2498
2234
|
if (this.getAttribute("open") !== null) this.open();
|
|
2499
2235
|
}
|
|
2500
2236
|
}
|