@saasquatch/squatch-js 2.8.2-1 → 2.8.2-3
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/CHANGELOG.md +8 -1
- package/README.md +3 -11
- package/dist/squatch.cjs.js +412 -29
- package/dist/squatch.cjs.js.map +1 -1
- package/dist/squatch.d.ts +1 -1
- package/dist/squatch.esm.js +412 -29
- package/dist/squatch.esm.js.map +1 -1
- package/dist/squatch.js +412 -29
- package/dist/squatch.js.map +1 -1
- package/dist/squatch.min.js +2 -2
- package/dist/utils/utmUtils.d.ts +1 -10
- package/dist/widgets/SkeletonTemplate.d.ts +12 -0
- package/package.json +1 -1
- package/coverage/clover.xml +0 -708
- package/coverage/coverage-final.json +0 -16
- package/coverage/lcov-report/base.css +0 -224
- package/coverage/lcov-report/block-navigation.js +0 -87
- package/coverage/lcov-report/favicon.png +0 -0
- package/coverage/lcov-report/prettify.css +0 -1
- package/coverage/lcov-report/prettify.js +0 -2
- package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/coverage/lcov-report/sorter.js +0 -196
- package/coverage/lcov.info +0 -1276
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [2.8.1] - 2025-11-17
|
|
11
|
+
|
|
12
|
+
### Fixed
|
|
13
|
+
|
|
14
|
+
- Prevent overriding of API domain with auto popups
|
|
15
|
+
|
|
10
16
|
## [2.8.0] - 2025-10-22
|
|
11
17
|
|
|
12
18
|
### Added
|
|
@@ -387,7 +393,8 @@ No release notes.
|
|
|
387
393
|
|
|
388
394
|
No release notes.
|
|
389
395
|
|
|
390
|
-
[unreleased]: https://github.com/saasquatch/squatch-js/compare/@saasquatch%2Fsquatch-js@2.8.
|
|
396
|
+
[unreleased]: https://github.com/saasquatch/squatch-js/compare/@saasquatch%2Fsquatch-js@2.8.1...HEAD
|
|
397
|
+
[2.8.1]: https://github.com/saasquatch/squatch-js/compare/@saasquatch%2Fsquatch-js@2.7.0...@saasquatch%2Fsquatch-js@2.8.1
|
|
391
398
|
[2.8.0]: https://github.com/saasquatch/squatch-js/compare/@saasquatch%2Fsquatch-js@2.7.0...@saasquatch%2Fsquatch-js@2.8.0
|
|
392
399
|
[2.7.0]: https://github.com/saasquatch/squatch-js/compare/@saasquatch%2Fsquatch-js@2.6.3...@saasquatch%2Fsquatch-js@2.7.0
|
|
393
400
|
[2.6.3]: https://github.com/saasquatch/squatch-js/compare/@saasquatch%2Fsquatch-js@2.6.2...@saasquatch%2Fsquatch-js@2.6.3
|
package/README.md
CHANGED
|
@@ -197,19 +197,11 @@ squatch.api().upsertUser({...});
|
|
|
197
197
|
### `squatch-popup`
|
|
198
198
|
|
|
199
199
|
```html
|
|
200
|
-
<squatch-
|
|
201
|
-
widget="WIDGET_TYPE"
|
|
202
|
-
[
|
|
203
|
-
open
|
|
204
|
-
|
|
|
205
|
-
container="#selector"
|
|
206
|
-
|
|
|
207
|
-
locale="en_US"
|
|
208
|
-
]
|
|
209
|
-
>
|
|
200
|
+
<squatch-popup
|
|
201
|
+
widget="WIDGET_TYPE" [ open | container="#selector" | locale="en_US" ]>
|
|
210
202
|
<!-- Clicking a child of squatch-popup opens the popup -->
|
|
211
203
|
<button>Click me to open</button>
|
|
212
|
-
</squatch-
|
|
204
|
+
</squatch-popup>
|
|
213
205
|
```
|
|
214
206
|
|
|
215
207
|
- `widget: string`: Specifies the SaaSquatch `widgetType` identifier of the desired widget
|
package/dist/squatch.cjs.js
CHANGED
|
@@ -702,6 +702,7 @@ class WidgetApi {
|
|
|
702
702
|
const raw = params;
|
|
703
703
|
const clean = validatePasswordlessConfig(raw);
|
|
704
704
|
const { widgetType, engagementMedium = "POPUP", jwt, user } = clean;
|
|
705
|
+
console.log({ params });
|
|
705
706
|
const tenantAlias = encodeURIComponent(this.tenantAlias);
|
|
706
707
|
const accountId = (user == null ? void 0 : user.accountId) ? encodeURIComponent(user.accountId) : null;
|
|
707
708
|
const userId = (user == null ? void 0 : user.id) ? encodeURIComponent(user.id) : null;
|
|
@@ -1107,19 +1108,369 @@ function delay(duration) {
|
|
|
1107
1108
|
setTimeout(resolve, duration);
|
|
1108
1109
|
});
|
|
1109
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
|
+
};
|
|
1110
1456
|
const _log$7 = browserExports.debug("squatch-js:EMBEDwidget");
|
|
1111
1457
|
class EmbedWidget extends Widget {
|
|
1112
1458
|
constructor(params, container) {
|
|
1113
1459
|
super(params);
|
|
1114
1460
|
__publicField(this, "show", this.open);
|
|
1115
1461
|
__publicField(this, "hide", this.close);
|
|
1116
|
-
if (container)
|
|
1462
|
+
if (container) {
|
|
1463
|
+
this.container = container;
|
|
1464
|
+
}
|
|
1117
1465
|
}
|
|
1118
1466
|
async load() {
|
|
1119
|
-
var _a2, _b, _c, _d, _e, _f, _g, _h;
|
|
1467
|
+
var _a2, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l;
|
|
1120
1468
|
const brandingConfig = (_b = (_a2 = this.context.widgetConfig) == null ? void 0 : _a2.values) == null ? void 0 : _b.brandingConfig;
|
|
1121
|
-
const initialHeight =
|
|
1122
|
-
const
|
|
1469
|
+
const initialHeight = brandingConfig == null ? void 0 : brandingConfig.loadingHeight;
|
|
1470
|
+
const skeletonBackgroundColor = (_d = (_c = brandingConfig == null ? void 0 : brandingConfig.color) == null ? void 0 : _c.loadingSkeleton) == null ? void 0 : _d.background;
|
|
1471
|
+
const skeletonShimmerColor = (_f = (_e = brandingConfig == null ? void 0 : brandingConfig.color) == null ? void 0 : _e.loadingSkeleton) == null ? void 0 : _f.animationBackground;
|
|
1472
|
+
const borderColor = (_g = brandingConfig == null ? void 0 : brandingConfig.border) == null ? void 0 : _g.borderColor;
|
|
1473
|
+
const sizes = (_h = brandingConfig == null ? void 0 : brandingConfig.widgetSize) == null ? void 0 : _h.embeddedWidgets;
|
|
1123
1474
|
const maxWidth = (sizes == null ? void 0 : sizes.maxWidth) ? formatWidth(sizes.maxWidth) : "";
|
|
1124
1475
|
const minWidth = (sizes == null ? void 0 : sizes.minWidth) ? formatWidth(sizes.minWidth) : "";
|
|
1125
1476
|
console.log({
|
|
@@ -1127,31 +1478,46 @@ class EmbedWidget extends Widget {
|
|
|
1127
1478
|
initialHeight,
|
|
1128
1479
|
widgetConfig: this.context.widgetConfig
|
|
1129
1480
|
});
|
|
1481
|
+
const skeletonHTML = getSkeleton({
|
|
1482
|
+
height: initialHeight,
|
|
1483
|
+
skeletonBackgroundColor,
|
|
1484
|
+
skeletonShimmerColor,
|
|
1485
|
+
borderColor
|
|
1486
|
+
});
|
|
1487
|
+
const skeletonContainer = document.createElement("div");
|
|
1488
|
+
skeletonContainer.innerHTML = skeletonHTML;
|
|
1130
1489
|
const frame = this._createFrame({
|
|
1131
1490
|
minWidth,
|
|
1132
1491
|
maxWidth,
|
|
1133
1492
|
initialHeight
|
|
1134
1493
|
});
|
|
1135
1494
|
const element = this._findElement();
|
|
1136
|
-
|
|
1495
|
+
element.innerHTML = skeletonHTML;
|
|
1496
|
+
frame.style.display = "none";
|
|
1497
|
+
const injectContents = (target) => {
|
|
1498
|
+
target.appendChild(skeletonContainer);
|
|
1499
|
+
target.appendChild(frame);
|
|
1500
|
+
};
|
|
1501
|
+
if ((_i = this.context) == null ? void 0 : _i.container) {
|
|
1137
1502
|
element.style.visibility = "hidden";
|
|
1138
1503
|
element.style.height = "0";
|
|
1139
1504
|
element.style["overflow-y"] = "hidden";
|
|
1140
1505
|
}
|
|
1141
1506
|
if (this.container) {
|
|
1142
1507
|
if (element.shadowRoot) {
|
|
1143
|
-
if (((
|
|
1508
|
+
if (((_j = element.shadowRoot.lastChild) == null ? void 0 : _j.nodeName) === "IFRAME") {
|
|
1144
1509
|
element.shadowRoot.replaceChild(frame, element.shadowRoot.lastChild);
|
|
1145
1510
|
} else {
|
|
1146
|
-
element.shadowRoot
|
|
1511
|
+
injectContents(element.shadowRoot);
|
|
1147
1512
|
}
|
|
1148
1513
|
} else if (element.firstChild) {
|
|
1149
|
-
element.
|
|
1514
|
+
element.innerHTML = "";
|
|
1515
|
+
injectContents(element);
|
|
1150
1516
|
} else {
|
|
1151
|
-
element
|
|
1517
|
+
injectContents(element);
|
|
1152
1518
|
}
|
|
1153
1519
|
} else if (!element.firstChild || element.firstChild.nodeName === "#text") {
|
|
1154
|
-
element
|
|
1520
|
+
injectContents(element);
|
|
1155
1521
|
}
|
|
1156
1522
|
const { contentWindow } = frame;
|
|
1157
1523
|
if (!contentWindow) {
|
|
@@ -1159,16 +1525,29 @@ class EmbedWidget extends Widget {
|
|
|
1159
1525
|
}
|
|
1160
1526
|
const frameDoc = contentWindow.document;
|
|
1161
1527
|
frameDoc.open();
|
|
1162
|
-
console.log({ content: this.content });
|
|
1528
|
+
console.log({ content: this.content, context: this.context, this: this });
|
|
1529
|
+
const domain = this.widgetApi.domain;
|
|
1163
1530
|
frameDoc.write(`
|
|
1531
|
+
${((_k = brandingConfig == null ? void 0 : brandingConfig.main) == null ? void 0 : _k.brandFont) && `
|
|
1532
|
+
<link rel="preconnect" href="https://fast${domain === "https://staging.referralsaasquatch.com" && "-staging"}.ssqt.io">
|
|
1533
|
+
<link rel="preconnect" href="https://fonts.gstatic.com">
|
|
1534
|
+
<link rel="preconnect" href="https://fonts.googleapis.com">
|
|
1535
|
+
<link rel="preload" href="https://fonts.googleapis.com/css2?family=${encodeURIComponent(
|
|
1536
|
+
(_l = brandingConfig == null ? void 0 : brandingConfig.main) == null ? void 0 : _l.brandFont
|
|
1537
|
+
)}" as="style">`}
|
|
1164
1538
|
<script src="${this.npmCdn}/resize-observer-polyfill@1.5.x"><\/script>
|
|
1165
|
-
|
|
1166
|
-
|
|
1167
|
-
html:not(.hydrated) { visibility:hidden; }
|
|
1539
|
+
<style data-styles>
|
|
1540
|
+
html { visibility:hidden;}
|
|
1168
1541
|
</style>
|
|
1542
|
+
${this.content}
|
|
1543
|
+
|
|
1169
1544
|
`);
|
|
1170
1545
|
frameDoc.close();
|
|
1171
1546
|
domready(frameDoc, async () => {
|
|
1547
|
+
if (skeletonContainer && skeletonContainer.parentNode) {
|
|
1548
|
+
skeletonContainer.parentNode.removeChild(skeletonContainer);
|
|
1549
|
+
}
|
|
1550
|
+
frame.style.display = "block";
|
|
1172
1551
|
const _sqh = contentWindow.squatch || contentWindow.widgetIdent;
|
|
1173
1552
|
frame.height = initialHeight || frameDoc.body.scrollHeight;
|
|
1174
1553
|
console.log({ height: frameDoc.body.scrollHeight });
|
|
@@ -1807,7 +2186,8 @@ function _pushCookie() {
|
|
|
1807
2186
|
}
|
|
1808
2187
|
}
|
|
1809
2188
|
const _log$3 = browserExports.debug("squatch-js");
|
|
1810
|
-
function _getAutoConfig(
|
|
2189
|
+
function _getAutoConfig() {
|
|
2190
|
+
var _a2;
|
|
1811
2191
|
const queryString = window.location.search;
|
|
1812
2192
|
const urlParams = new URLSearchParams(queryString);
|
|
1813
2193
|
const refParam = urlParams.get("_saasquatchExtra") || "";
|
|
@@ -1815,6 +2195,13 @@ function _getAutoConfig(configIn) {
|
|
|
1815
2195
|
_log$3("No _saasquatchExtra param");
|
|
1816
2196
|
return;
|
|
1817
2197
|
}
|
|
2198
|
+
const config = validateConfig({
|
|
2199
|
+
tenantAlias: "UNKNOWN"
|
|
2200
|
+
});
|
|
2201
|
+
if (!config.domain) {
|
|
2202
|
+
_log$3("domain must be provided in config to use _saasquatchExtra");
|
|
2203
|
+
return;
|
|
2204
|
+
}
|
|
1818
2205
|
let raw;
|
|
1819
2206
|
try {
|
|
1820
2207
|
raw = JSON.parse(b64decode(refParam));
|
|
@@ -1822,8 +2209,13 @@ function _getAutoConfig(configIn) {
|
|
|
1822
2209
|
_log$3("Unable to decode _saasquatchExtra config");
|
|
1823
2210
|
return;
|
|
1824
2211
|
}
|
|
1825
|
-
|
|
1826
|
-
|
|
2212
|
+
function normalizeDomain(domain) {
|
|
2213
|
+
return domain.replace(/^https?:\/\//, "");
|
|
2214
|
+
}
|
|
2215
|
+
const normalizedDomain = normalizeDomain(config.domain);
|
|
2216
|
+
const tenantAlias = Object.keys((raw == null ? void 0 : raw[normalizedDomain]) || {})[0];
|
|
2217
|
+
const widgetConfig = (_a2 = raw == null ? void 0 : raw[normalizedDomain]) == null ? void 0 : _a2[tenantAlias];
|
|
2218
|
+
if (!widgetConfig) {
|
|
1827
2219
|
_log$3("_saasquatchExtra did not have an expected structure");
|
|
1828
2220
|
return void 0;
|
|
1829
2221
|
}
|
|
@@ -1835,20 +2227,11 @@ function _getAutoConfig(configIn) {
|
|
|
1835
2227
|
...rest
|
|
1836
2228
|
},
|
|
1837
2229
|
squatchConfig: {
|
|
1838
|
-
...
|
|
1839
|
-
domain,
|
|
2230
|
+
...config,
|
|
1840
2231
|
tenantAlias
|
|
1841
2232
|
}
|
|
1842
2233
|
};
|
|
1843
2234
|
}
|
|
1844
|
-
function convertExtraToConfig(obj) {
|
|
1845
|
-
var _a2;
|
|
1846
|
-
const _domain = Object.keys(obj || {})[0];
|
|
1847
|
-
const tenantAlias = Object.keys((obj == null ? void 0 : obj[_domain]) || {})[0];
|
|
1848
|
-
const widgetConfig = (_a2 = obj == null ? void 0 : obj[_domain]) == null ? void 0 : _a2[tenantAlias];
|
|
1849
|
-
const domain = _domain ? `https://${_domain}` : void 0;
|
|
1850
|
-
return { domain, tenantAlias, widgetConfig };
|
|
1851
|
-
}
|
|
1852
2235
|
const _log$2 = browserExports.debug("squatch-js:decodeUserJwt");
|
|
1853
2236
|
function decodeUserJwt(tokenStr) {
|
|
1854
2237
|
var _a2;
|
|
@@ -2161,9 +2544,9 @@ function widget(widgetConfig) {
|
|
|
2161
2544
|
var _a2;
|
|
2162
2545
|
return (_a2 = widgets()) == null ? void 0 : _a2.render(widgetConfig);
|
|
2163
2546
|
}
|
|
2164
|
-
function _auto(
|
|
2547
|
+
function _auto() {
|
|
2165
2548
|
var _a2;
|
|
2166
|
-
const configs = _getAutoConfig(
|
|
2549
|
+
const configs = _getAutoConfig();
|
|
2167
2550
|
if (configs) {
|
|
2168
2551
|
const { squatchConfig, widgetConfig } = configs;
|
|
2169
2552
|
init(squatchConfig);
|