@saasquatch/squatch-js 2.8.2-1 → 2.8.2-2
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 +408 -28
- package/dist/squatch.cjs.js.map +1 -1
- package/dist/squatch.d.ts +1 -1
- package/dist/squatch.esm.js +408 -28
- package/dist/squatch.esm.js.map +1 -1
- package/dist/squatch.js +408 -28
- 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,6 +1108,351 @@ 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) {
|
|
@@ -1116,10 +1462,13 @@ class EmbedWidget extends Widget {
|
|
|
1116
1462
|
if (container) this.container = container;
|
|
1117
1463
|
}
|
|
1118
1464
|
async load() {
|
|
1119
|
-
var _a2, _b, _c, _d, _e, _f, _g, _h;
|
|
1465
|
+
var _a2, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l;
|
|
1120
1466
|
const brandingConfig = (_b = (_a2 = this.context.widgetConfig) == null ? void 0 : _a2.values) == null ? void 0 : _b.brandingConfig;
|
|
1121
|
-
const initialHeight =
|
|
1122
|
-
const
|
|
1467
|
+
const initialHeight = brandingConfig == null ? void 0 : brandingConfig.loadingHeight;
|
|
1468
|
+
const skeletonBackgroundColor = (_d = (_c = brandingConfig == null ? void 0 : brandingConfig.color) == null ? void 0 : _c.loadingSkeleton) == null ? void 0 : _d.background;
|
|
1469
|
+
const skeletonShimmerColor = (_f = (_e = brandingConfig == null ? void 0 : brandingConfig.color) == null ? void 0 : _e.loadingSkeleton) == null ? void 0 : _f.animationBackground;
|
|
1470
|
+
const borderColor = (_g = brandingConfig == null ? void 0 : brandingConfig.border) == null ? void 0 : _g.borderColor;
|
|
1471
|
+
const sizes = (_h = brandingConfig == null ? void 0 : brandingConfig.widgetSize) == null ? void 0 : _h.embeddedWidgets;
|
|
1123
1472
|
const maxWidth = (sizes == null ? void 0 : sizes.maxWidth) ? formatWidth(sizes.maxWidth) : "";
|
|
1124
1473
|
const minWidth = (sizes == null ? void 0 : sizes.minWidth) ? formatWidth(sizes.minWidth) : "";
|
|
1125
1474
|
console.log({
|
|
@@ -1127,31 +1476,45 @@ class EmbedWidget extends Widget {
|
|
|
1127
1476
|
initialHeight,
|
|
1128
1477
|
widgetConfig: this.context.widgetConfig
|
|
1129
1478
|
});
|
|
1479
|
+
const skeletonHTML = getSkeleton({
|
|
1480
|
+
height: initialHeight,
|
|
1481
|
+
skeletonBackgroundColor,
|
|
1482
|
+
skeletonShimmerColor,
|
|
1483
|
+
borderColor
|
|
1484
|
+
});
|
|
1485
|
+
const skeletonContainer = document.createElement("div");
|
|
1486
|
+
skeletonContainer.innerHTML = skeletonHTML;
|
|
1130
1487
|
const frame = this._createFrame({
|
|
1131
1488
|
minWidth,
|
|
1132
1489
|
maxWidth,
|
|
1133
1490
|
initialHeight
|
|
1134
1491
|
});
|
|
1135
1492
|
const element = this._findElement();
|
|
1136
|
-
|
|
1493
|
+
frame.style.display = "none";
|
|
1494
|
+
const injectContents = (target) => {
|
|
1495
|
+
target.appendChild(skeletonContainer);
|
|
1496
|
+
target.appendChild(frame);
|
|
1497
|
+
};
|
|
1498
|
+
if ((_i = this.context) == null ? void 0 : _i.container) {
|
|
1137
1499
|
element.style.visibility = "hidden";
|
|
1138
1500
|
element.style.height = "0";
|
|
1139
1501
|
element.style["overflow-y"] = "hidden";
|
|
1140
1502
|
}
|
|
1141
1503
|
if (this.container) {
|
|
1142
1504
|
if (element.shadowRoot) {
|
|
1143
|
-
if (((
|
|
1505
|
+
if (((_j = element.shadowRoot.lastChild) == null ? void 0 : _j.nodeName) === "IFRAME") {
|
|
1144
1506
|
element.shadowRoot.replaceChild(frame, element.shadowRoot.lastChild);
|
|
1145
1507
|
} else {
|
|
1146
|
-
element.shadowRoot
|
|
1508
|
+
injectContents(element.shadowRoot);
|
|
1147
1509
|
}
|
|
1148
1510
|
} else if (element.firstChild) {
|
|
1149
|
-
element.
|
|
1511
|
+
element.innerHTML = "";
|
|
1512
|
+
injectContents(element);
|
|
1150
1513
|
} else {
|
|
1151
|
-
element
|
|
1514
|
+
injectContents(element);
|
|
1152
1515
|
}
|
|
1153
1516
|
} else if (!element.firstChild || element.firstChild.nodeName === "#text") {
|
|
1154
|
-
element
|
|
1517
|
+
injectContents(element);
|
|
1155
1518
|
}
|
|
1156
1519
|
const { contentWindow } = frame;
|
|
1157
1520
|
if (!contentWindow) {
|
|
@@ -1159,16 +1522,29 @@ class EmbedWidget extends Widget {
|
|
|
1159
1522
|
}
|
|
1160
1523
|
const frameDoc = contentWindow.document;
|
|
1161
1524
|
frameDoc.open();
|
|
1162
|
-
console.log({ content: this.content });
|
|
1525
|
+
console.log({ content: this.content, context: this.context, this: this });
|
|
1526
|
+
const domain = this.widgetApi.domain;
|
|
1163
1527
|
frameDoc.write(`
|
|
1528
|
+
${((_k = brandingConfig == null ? void 0 : brandingConfig.main) == null ? void 0 : _k.brandFont) && `
|
|
1529
|
+
<link rel="preconnect" href="https://fast${domain === "https://staging.referralsaasquatch.com" && "-staging"}.ssqt.io">
|
|
1530
|
+
<link rel="preconnect" href="https://fonts.gstatic.com">
|
|
1531
|
+
<link rel="preconnect" href="https://fonts.googleapis.com">
|
|
1532
|
+
<link rel="preload" href="https://fonts.googleapis.com/css2?family=${encodeURIComponent(
|
|
1533
|
+
(_l = brandingConfig == null ? void 0 : brandingConfig.main) == null ? void 0 : _l.brandFont
|
|
1534
|
+
)}">`}
|
|
1164
1535
|
<script src="${this.npmCdn}/resize-observer-polyfill@1.5.x"><\/script>
|
|
1165
|
-
|
|
1166
|
-
|
|
1167
|
-
html:not(.hydrated) { visibility:hidden; }
|
|
1536
|
+
<style data-styles>
|
|
1537
|
+
html { visibility:hidden;}
|
|
1168
1538
|
</style>
|
|
1539
|
+
${this.content}
|
|
1540
|
+
|
|
1169
1541
|
`);
|
|
1170
1542
|
frameDoc.close();
|
|
1171
1543
|
domready(frameDoc, async () => {
|
|
1544
|
+
if (skeletonContainer && skeletonContainer.parentNode) {
|
|
1545
|
+
skeletonContainer.parentNode.removeChild(skeletonContainer);
|
|
1546
|
+
}
|
|
1547
|
+
frame.style.display = "block";
|
|
1172
1548
|
const _sqh = contentWindow.squatch || contentWindow.widgetIdent;
|
|
1173
1549
|
frame.height = initialHeight || frameDoc.body.scrollHeight;
|
|
1174
1550
|
console.log({ height: frameDoc.body.scrollHeight });
|
|
@@ -1807,7 +2183,8 @@ function _pushCookie() {
|
|
|
1807
2183
|
}
|
|
1808
2184
|
}
|
|
1809
2185
|
const _log$3 = browserExports.debug("squatch-js");
|
|
1810
|
-
function _getAutoConfig(
|
|
2186
|
+
function _getAutoConfig() {
|
|
2187
|
+
var _a2;
|
|
1811
2188
|
const queryString = window.location.search;
|
|
1812
2189
|
const urlParams = new URLSearchParams(queryString);
|
|
1813
2190
|
const refParam = urlParams.get("_saasquatchExtra") || "";
|
|
@@ -1815,6 +2192,13 @@ function _getAutoConfig(configIn) {
|
|
|
1815
2192
|
_log$3("No _saasquatchExtra param");
|
|
1816
2193
|
return;
|
|
1817
2194
|
}
|
|
2195
|
+
const config = validateConfig({
|
|
2196
|
+
tenantAlias: "UNKNOWN"
|
|
2197
|
+
});
|
|
2198
|
+
if (!config.domain) {
|
|
2199
|
+
_log$3("domain must be provided in config to use _saasquatchExtra");
|
|
2200
|
+
return;
|
|
2201
|
+
}
|
|
1818
2202
|
let raw;
|
|
1819
2203
|
try {
|
|
1820
2204
|
raw = JSON.parse(b64decode(refParam));
|
|
@@ -1822,8 +2206,13 @@ function _getAutoConfig(configIn) {
|
|
|
1822
2206
|
_log$3("Unable to decode _saasquatchExtra config");
|
|
1823
2207
|
return;
|
|
1824
2208
|
}
|
|
1825
|
-
|
|
1826
|
-
|
|
2209
|
+
function normalizeDomain(domain) {
|
|
2210
|
+
return domain.replace(/^https?:\/\//, "");
|
|
2211
|
+
}
|
|
2212
|
+
const normalizedDomain = normalizeDomain(config.domain);
|
|
2213
|
+
const tenantAlias = Object.keys((raw == null ? void 0 : raw[normalizedDomain]) || {})[0];
|
|
2214
|
+
const widgetConfig = (_a2 = raw == null ? void 0 : raw[normalizedDomain]) == null ? void 0 : _a2[tenantAlias];
|
|
2215
|
+
if (!widgetConfig) {
|
|
1827
2216
|
_log$3("_saasquatchExtra did not have an expected structure");
|
|
1828
2217
|
return void 0;
|
|
1829
2218
|
}
|
|
@@ -1835,20 +2224,11 @@ function _getAutoConfig(configIn) {
|
|
|
1835
2224
|
...rest
|
|
1836
2225
|
},
|
|
1837
2226
|
squatchConfig: {
|
|
1838
|
-
...
|
|
1839
|
-
domain,
|
|
2227
|
+
...config,
|
|
1840
2228
|
tenantAlias
|
|
1841
2229
|
}
|
|
1842
2230
|
};
|
|
1843
2231
|
}
|
|
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
2232
|
const _log$2 = browserExports.debug("squatch-js:decodeUserJwt");
|
|
1853
2233
|
function decodeUserJwt(tokenStr) {
|
|
1854
2234
|
var _a2;
|
|
@@ -2161,9 +2541,9 @@ function widget(widgetConfig) {
|
|
|
2161
2541
|
var _a2;
|
|
2162
2542
|
return (_a2 = widgets()) == null ? void 0 : _a2.render(widgetConfig);
|
|
2163
2543
|
}
|
|
2164
|
-
function _auto(
|
|
2544
|
+
function _auto() {
|
|
2165
2545
|
var _a2;
|
|
2166
|
-
const configs = _getAutoConfig(
|
|
2546
|
+
const configs = _getAutoConfig();
|
|
2167
2547
|
if (configs) {
|
|
2168
2548
|
const { squatchConfig, widgetConfig } = configs;
|
|
2169
2549
|
init(squatchConfig);
|