@kelet-ai/feedback-ui 1.1.3 → 1.2.0
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/README.md +140 -70
- package/dist/components/vote-feedback.d.ts +1 -1
- package/dist/contexts/kelet.d.ts +20 -0
- package/dist/feedback-ui.es.js +270 -263
- package/dist/feedback-ui.es.js.map +1 -1
- package/dist/feedback-ui.es.min.js +850 -838
- package/dist/feedback-ui.es.min.js.map +1 -1
- package/dist/feedback-ui.umd.js +269 -262
- package/dist/feedback-ui.umd.js.map +1 -1
- package/dist/feedback-ui.umd.min.js +11 -11
- package/dist/feedback-ui.umd.min.js.map +1 -1
- package/dist/hooks/feedback-state/diff-utils.d.ts +1 -1
- package/dist/hooks/feedback-state/types.d.ts +5 -5
- package/dist/index.d.ts +1 -1
- package/dist/types/index.d.ts +16 -9
- package/package.json +2 -1
package/dist/feedback-ui.es.js
CHANGED
|
@@ -443,7 +443,7 @@ const useKelet = () => {
|
|
|
443
443
|
}
|
|
444
444
|
return context;
|
|
445
445
|
};
|
|
446
|
-
const
|
|
446
|
+
const useKeletSignal = () => {
|
|
447
447
|
const context = useContext(KeletContext);
|
|
448
448
|
if (!context) {
|
|
449
449
|
console.warn(
|
|
@@ -455,6 +455,7 @@ const useDefaultFeedbackHandler = () => {
|
|
|
455
455
|
return context.feedback;
|
|
456
456
|
}
|
|
457
457
|
};
|
|
458
|
+
const useDefaultFeedbackHandler = useKeletSignal;
|
|
458
459
|
const KeletProvider = ({ apiKey, project, baseUrl, children }) => {
|
|
459
460
|
useEffect(() => {
|
|
460
461
|
initEventCapture();
|
|
@@ -477,18 +478,20 @@ const KeletProvider = ({ apiKey, project, baseUrl, children }) => {
|
|
|
477
478
|
const url = `${resolvedBaseUrl}/api/projects/${project}/signal`;
|
|
478
479
|
const capturedEvent = getLatestEvent();
|
|
479
480
|
const metadata = {
|
|
480
|
-
...data.
|
|
481
|
+
...data.metadata ?? {},
|
|
481
482
|
...capturedEvent && { $dom_event: capturedEvent }
|
|
482
483
|
};
|
|
483
484
|
const req = {
|
|
484
485
|
session_id: data.session_id,
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
explanation: data.explanation,
|
|
488
|
-
correction: data.correction,
|
|
489
|
-
selection: data.selection,
|
|
486
|
+
kind: data.kind,
|
|
487
|
+
source: data.source,
|
|
490
488
|
trigger_name: data.trigger_name,
|
|
491
|
-
|
|
489
|
+
score: data.score,
|
|
490
|
+
value: data.value,
|
|
491
|
+
confidence: data.confidence,
|
|
492
|
+
metadata: Object.keys(metadata).length > 0 ? metadata : void 0,
|
|
493
|
+
timestamp: data.timestamp || (/* @__PURE__ */ new Date()).toISOString(),
|
|
494
|
+
trace_id: data.trace_id
|
|
492
495
|
};
|
|
493
496
|
const response = await fetch(url, {
|
|
494
497
|
method: "POST",
|
|
@@ -534,9 +537,7 @@ const mergeProps = (slotProps, childProps) => {
|
|
|
534
537
|
}
|
|
535
538
|
return { ...slotProps, ...overrideProps };
|
|
536
539
|
};
|
|
537
|
-
const VoteFeedbackContext = createContext(
|
|
538
|
-
null
|
|
539
|
-
);
|
|
540
|
+
const VoteFeedbackContext = createContext(null);
|
|
540
541
|
const useVoteFeedbackContext = () => {
|
|
541
542
|
const context = useContext(VoteFeedbackContext);
|
|
542
543
|
if (!context) {
|
|
@@ -551,10 +552,12 @@ const VoteFeedbackRoot = ({
|
|
|
551
552
|
onFeedback,
|
|
552
553
|
defaultText = "",
|
|
553
554
|
session_id: sessionIdProp,
|
|
554
|
-
|
|
555
|
-
trigger_name
|
|
555
|
+
metadata,
|
|
556
|
+
trigger_name: triggerProp,
|
|
557
|
+
trace_id
|
|
556
558
|
}) => {
|
|
557
559
|
const session_id = typeof sessionIdProp === "function" ? sessionIdProp() : sessionIdProp;
|
|
560
|
+
const trigger_name = triggerProp || void 0;
|
|
558
561
|
const [showPopover, setShowPopover] = useState(false);
|
|
559
562
|
const [feedbackText, setFeedbackText] = useState(defaultText);
|
|
560
563
|
const [isSubmitting, setIsSubmitting] = useState(false);
|
|
@@ -576,9 +579,12 @@ const VoteFeedbackRoot = ({
|
|
|
576
579
|
setVote("upvote");
|
|
577
580
|
const data = {
|
|
578
581
|
session_id,
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
+
kind: "feedback",
|
|
583
|
+
source: "human",
|
|
584
|
+
trigger_name,
|
|
585
|
+
score: 1,
|
|
586
|
+
...metadata && { metadata },
|
|
587
|
+
...trace_id && { trace_id }
|
|
582
588
|
};
|
|
583
589
|
try {
|
|
584
590
|
setIsSubmitting(true);
|
|
@@ -586,15 +592,18 @@ const VoteFeedbackRoot = ({
|
|
|
586
592
|
} finally {
|
|
587
593
|
setIsSubmitting(false);
|
|
588
594
|
}
|
|
589
|
-
}, [handler, session_id,
|
|
595
|
+
}, [handler, session_id, metadata, trigger_name, trace_id]);
|
|
590
596
|
const handleDownvote = useCallback(async () => {
|
|
591
597
|
setVote("downvote");
|
|
592
598
|
if (handler) {
|
|
593
599
|
const data = {
|
|
594
600
|
session_id,
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
601
|
+
kind: "feedback",
|
|
602
|
+
source: "human",
|
|
603
|
+
trigger_name,
|
|
604
|
+
score: 0,
|
|
605
|
+
...metadata && { metadata },
|
|
606
|
+
...trace_id && { trace_id }
|
|
598
607
|
};
|
|
599
608
|
try {
|
|
600
609
|
setIsSubmitting(true);
|
|
@@ -614,7 +623,7 @@ const VoteFeedbackRoot = ({
|
|
|
614
623
|
document.body.appendChild(announcement);
|
|
615
624
|
setTimeout(() => document.body.removeChild(announcement), 1e3);
|
|
616
625
|
}, 0);
|
|
617
|
-
}, [handler, session_id,
|
|
626
|
+
}, [handler, session_id, metadata, trigger_name, trace_id]);
|
|
618
627
|
const handleTextareaChange = useCallback(
|
|
619
628
|
(e) => {
|
|
620
629
|
setFeedbackText(e.target.value);
|
|
@@ -626,10 +635,13 @@ const VoteFeedbackRoot = ({
|
|
|
626
635
|
if (hasText) {
|
|
627
636
|
const data = {
|
|
628
637
|
session_id,
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
638
|
+
kind: "feedback",
|
|
639
|
+
source: "human",
|
|
640
|
+
trigger_name,
|
|
641
|
+
score: 0,
|
|
642
|
+
value: feedbackText,
|
|
643
|
+
...metadata && { metadata },
|
|
644
|
+
...trace_id && { trace_id }
|
|
633
645
|
};
|
|
634
646
|
try {
|
|
635
647
|
setIsSubmitting(true);
|
|
@@ -654,8 +666,9 @@ const VoteFeedbackRoot = ({
|
|
|
654
666
|
feedbackText,
|
|
655
667
|
defaultText,
|
|
656
668
|
session_id,
|
|
657
|
-
|
|
658
|
-
trigger_name
|
|
669
|
+
metadata,
|
|
670
|
+
trigger_name,
|
|
671
|
+
trace_id
|
|
659
672
|
]);
|
|
660
673
|
const handleKeyDown = useCallback(
|
|
661
674
|
(e) => {
|
|
@@ -706,8 +719,9 @@ const VoteFeedbackRoot = ({
|
|
|
706
719
|
popoverId,
|
|
707
720
|
triggerId,
|
|
708
721
|
session_id,
|
|
709
|
-
|
|
710
|
-
trigger_name
|
|
722
|
+
metadata,
|
|
723
|
+
trigger_name,
|
|
724
|
+
trace_id
|
|
711
725
|
};
|
|
712
726
|
return /* @__PURE__ */ jsxRuntimeExports.jsx(VoteFeedbackContext.Provider, { value: contextValue, children });
|
|
713
727
|
};
|
|
@@ -1343,223 +1357,6 @@ function requireDeepDiff() {
|
|
|
1343
1357
|
return deepDiff$1.exports;
|
|
1344
1358
|
}
|
|
1345
1359
|
var deepDiffExports = requireDeepDiff();
|
|
1346
|
-
var levenshtein$1 = { exports: {} };
|
|
1347
|
-
const peq = new Uint32Array(65536);
|
|
1348
|
-
const myers_32 = (a, b) => {
|
|
1349
|
-
const n = a.length;
|
|
1350
|
-
const m = b.length;
|
|
1351
|
-
const lst = 1 << n - 1;
|
|
1352
|
-
let pv = -1;
|
|
1353
|
-
let mv = 0;
|
|
1354
|
-
let sc = n;
|
|
1355
|
-
let i = n;
|
|
1356
|
-
while (i--) {
|
|
1357
|
-
peq[a.charCodeAt(i)] |= 1 << i;
|
|
1358
|
-
}
|
|
1359
|
-
for (i = 0; i < m; i++) {
|
|
1360
|
-
let eq = peq[b.charCodeAt(i)];
|
|
1361
|
-
const xv = eq | mv;
|
|
1362
|
-
eq |= (eq & pv) + pv ^ pv;
|
|
1363
|
-
mv |= ~(eq | pv);
|
|
1364
|
-
pv &= eq;
|
|
1365
|
-
if (mv & lst) {
|
|
1366
|
-
sc++;
|
|
1367
|
-
}
|
|
1368
|
-
if (pv & lst) {
|
|
1369
|
-
sc--;
|
|
1370
|
-
}
|
|
1371
|
-
mv = mv << 1 | 1;
|
|
1372
|
-
pv = pv << 1 | ~(xv | mv);
|
|
1373
|
-
mv &= xv;
|
|
1374
|
-
}
|
|
1375
|
-
i = n;
|
|
1376
|
-
while (i--) {
|
|
1377
|
-
peq[a.charCodeAt(i)] = 0;
|
|
1378
|
-
}
|
|
1379
|
-
return sc;
|
|
1380
|
-
};
|
|
1381
|
-
const myers_x = (b, a) => {
|
|
1382
|
-
const n = a.length;
|
|
1383
|
-
const m = b.length;
|
|
1384
|
-
const mhc = [];
|
|
1385
|
-
const phc = [];
|
|
1386
|
-
const hsize = Math.ceil(n / 32);
|
|
1387
|
-
const vsize = Math.ceil(m / 32);
|
|
1388
|
-
for (let i = 0; i < hsize; i++) {
|
|
1389
|
-
phc[i] = -1;
|
|
1390
|
-
mhc[i] = 0;
|
|
1391
|
-
}
|
|
1392
|
-
let j = 0;
|
|
1393
|
-
for (; j < vsize - 1; j++) {
|
|
1394
|
-
let mv2 = 0;
|
|
1395
|
-
let pv2 = -1;
|
|
1396
|
-
const start2 = j * 32;
|
|
1397
|
-
const vlen2 = Math.min(32, m) + start2;
|
|
1398
|
-
for (let k = start2; k < vlen2; k++) {
|
|
1399
|
-
peq[b.charCodeAt(k)] |= 1 << k;
|
|
1400
|
-
}
|
|
1401
|
-
for (let i = 0; i < n; i++) {
|
|
1402
|
-
const eq = peq[a.charCodeAt(i)];
|
|
1403
|
-
const pb = phc[i / 32 | 0] >>> i & 1;
|
|
1404
|
-
const mb = mhc[i / 32 | 0] >>> i & 1;
|
|
1405
|
-
const xv = eq | mv2;
|
|
1406
|
-
const xh = ((eq | mb) & pv2) + pv2 ^ pv2 | eq | mb;
|
|
1407
|
-
let ph = mv2 | ~(xh | pv2);
|
|
1408
|
-
let mh = pv2 & xh;
|
|
1409
|
-
if (ph >>> 31 ^ pb) {
|
|
1410
|
-
phc[i / 32 | 0] ^= 1 << i;
|
|
1411
|
-
}
|
|
1412
|
-
if (mh >>> 31 ^ mb) {
|
|
1413
|
-
mhc[i / 32 | 0] ^= 1 << i;
|
|
1414
|
-
}
|
|
1415
|
-
ph = ph << 1 | pb;
|
|
1416
|
-
mh = mh << 1 | mb;
|
|
1417
|
-
pv2 = mh | ~(xv | ph);
|
|
1418
|
-
mv2 = ph & xv;
|
|
1419
|
-
}
|
|
1420
|
-
for (let k = start2; k < vlen2; k++) {
|
|
1421
|
-
peq[b.charCodeAt(k)] = 0;
|
|
1422
|
-
}
|
|
1423
|
-
}
|
|
1424
|
-
let mv = 0;
|
|
1425
|
-
let pv = -1;
|
|
1426
|
-
const start = j * 32;
|
|
1427
|
-
const vlen = Math.min(32, m - start) + start;
|
|
1428
|
-
for (let k = start; k < vlen; k++) {
|
|
1429
|
-
peq[b.charCodeAt(k)] |= 1 << k;
|
|
1430
|
-
}
|
|
1431
|
-
let score = m;
|
|
1432
|
-
for (let i = 0; i < n; i++) {
|
|
1433
|
-
const eq = peq[a.charCodeAt(i)];
|
|
1434
|
-
const pb = phc[i / 32 | 0] >>> i & 1;
|
|
1435
|
-
const mb = mhc[i / 32 | 0] >>> i & 1;
|
|
1436
|
-
const xv = eq | mv;
|
|
1437
|
-
const xh = ((eq | mb) & pv) + pv ^ pv | eq | mb;
|
|
1438
|
-
let ph = mv | ~(xh | pv);
|
|
1439
|
-
let mh = pv & xh;
|
|
1440
|
-
score += ph >>> m - 1 & 1;
|
|
1441
|
-
score -= mh >>> m - 1 & 1;
|
|
1442
|
-
if (ph >>> 31 ^ pb) {
|
|
1443
|
-
phc[i / 32 | 0] ^= 1 << i;
|
|
1444
|
-
}
|
|
1445
|
-
if (mh >>> 31 ^ mb) {
|
|
1446
|
-
mhc[i / 32 | 0] ^= 1 << i;
|
|
1447
|
-
}
|
|
1448
|
-
ph = ph << 1 | pb;
|
|
1449
|
-
mh = mh << 1 | mb;
|
|
1450
|
-
pv = mh | ~(xv | ph);
|
|
1451
|
-
mv = ph & xv;
|
|
1452
|
-
}
|
|
1453
|
-
for (let k = start; k < vlen; k++) {
|
|
1454
|
-
peq[b.charCodeAt(k)] = 0;
|
|
1455
|
-
}
|
|
1456
|
-
return score;
|
|
1457
|
-
};
|
|
1458
|
-
const distance = (a, b) => {
|
|
1459
|
-
if (a.length < b.length) {
|
|
1460
|
-
const tmp = b;
|
|
1461
|
-
b = a;
|
|
1462
|
-
a = tmp;
|
|
1463
|
-
}
|
|
1464
|
-
if (b.length === 0) {
|
|
1465
|
-
return a.length;
|
|
1466
|
-
}
|
|
1467
|
-
if (a.length <= 32) {
|
|
1468
|
-
return myers_32(a, b);
|
|
1469
|
-
}
|
|
1470
|
-
return myers_x(a, b);
|
|
1471
|
-
};
|
|
1472
|
-
const closest = (str, arr) => {
|
|
1473
|
-
let min_distance = Infinity;
|
|
1474
|
-
let min_index = 0;
|
|
1475
|
-
for (let i = 0; i < arr.length; i++) {
|
|
1476
|
-
const dist = distance(str, arr[i]);
|
|
1477
|
-
if (dist < min_distance) {
|
|
1478
|
-
min_distance = dist;
|
|
1479
|
-
min_index = i;
|
|
1480
|
-
}
|
|
1481
|
-
}
|
|
1482
|
-
return arr[min_index];
|
|
1483
|
-
};
|
|
1484
|
-
const mod = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
1485
|
-
__proto__: null,
|
|
1486
|
-
closest,
|
|
1487
|
-
distance
|
|
1488
|
-
}, Symbol.toStringTag, { value: "Module" }));
|
|
1489
|
-
const require$$0 = /* @__PURE__ */ getAugmentedNamespace(mod);
|
|
1490
|
-
var hasRequiredLevenshtein;
|
|
1491
|
-
function requireLevenshtein() {
|
|
1492
|
-
if (hasRequiredLevenshtein) return levenshtein$1.exports;
|
|
1493
|
-
hasRequiredLevenshtein = 1;
|
|
1494
|
-
(function(module, exports) {
|
|
1495
|
-
(function() {
|
|
1496
|
-
var collator;
|
|
1497
|
-
try {
|
|
1498
|
-
collator = typeof Intl !== "undefined" && typeof Intl.Collator !== "undefined" ? Intl.Collator("generic", { sensitivity: "base" }) : null;
|
|
1499
|
-
} catch (err) {
|
|
1500
|
-
console.log("Collator could not be initialized and wouldn't be used");
|
|
1501
|
-
}
|
|
1502
|
-
var levenshtein2 = require$$0;
|
|
1503
|
-
var prevRow = [], str2Char = [];
|
|
1504
|
-
var Levenshtein = {
|
|
1505
|
-
/**
|
|
1506
|
-
* Calculate levenshtein distance of the two strings.
|
|
1507
|
-
*
|
|
1508
|
-
* @param str1 String the first string.
|
|
1509
|
-
* @param str2 String the second string.
|
|
1510
|
-
* @param [options] Additional options.
|
|
1511
|
-
* @param [options.useCollator] Use `Intl.Collator` for locale-sensitive string comparison.
|
|
1512
|
-
* @return Integer the levenshtein distance (0 and above).
|
|
1513
|
-
*/
|
|
1514
|
-
get: function(str1, str2, options) {
|
|
1515
|
-
var useCollator = options && collator && options.useCollator;
|
|
1516
|
-
if (useCollator) {
|
|
1517
|
-
var str1Len = str1.length, str2Len = str2.length;
|
|
1518
|
-
if (str1Len === 0) return str2Len;
|
|
1519
|
-
if (str2Len === 0) return str1Len;
|
|
1520
|
-
var curCol, nextCol, i, j, tmp;
|
|
1521
|
-
for (i = 0; i < str2Len; ++i) {
|
|
1522
|
-
prevRow[i] = i;
|
|
1523
|
-
str2Char[i] = str2.charCodeAt(i);
|
|
1524
|
-
}
|
|
1525
|
-
prevRow[str2Len] = str2Len;
|
|
1526
|
-
var strCmp;
|
|
1527
|
-
for (i = 0; i < str1Len; ++i) {
|
|
1528
|
-
nextCol = i + 1;
|
|
1529
|
-
for (j = 0; j < str2Len; ++j) {
|
|
1530
|
-
curCol = nextCol;
|
|
1531
|
-
strCmp = 0 === collator.compare(str1.charAt(i), String.fromCharCode(str2Char[j]));
|
|
1532
|
-
nextCol = prevRow[j] + (strCmp ? 0 : 1);
|
|
1533
|
-
tmp = curCol + 1;
|
|
1534
|
-
if (nextCol > tmp) {
|
|
1535
|
-
nextCol = tmp;
|
|
1536
|
-
}
|
|
1537
|
-
tmp = prevRow[j + 1] + 1;
|
|
1538
|
-
if (nextCol > tmp) {
|
|
1539
|
-
nextCol = tmp;
|
|
1540
|
-
}
|
|
1541
|
-
prevRow[j] = curCol;
|
|
1542
|
-
}
|
|
1543
|
-
prevRow[j] = nextCol;
|
|
1544
|
-
}
|
|
1545
|
-
return nextCol;
|
|
1546
|
-
}
|
|
1547
|
-
return levenshtein2.distance(str1, str2);
|
|
1548
|
-
}
|
|
1549
|
-
};
|
|
1550
|
-
if (module !== null && true && module.exports === exports) {
|
|
1551
|
-
module.exports = Levenshtein;
|
|
1552
|
-
} else if (typeof self !== "undefined" && typeof self.postMessage === "function" && typeof self.importScripts === "function") {
|
|
1553
|
-
self.Levenshtein = Levenshtein;
|
|
1554
|
-
} else if (typeof window !== "undefined" && window !== null) {
|
|
1555
|
-
window.Levenshtein = Levenshtein;
|
|
1556
|
-
}
|
|
1557
|
-
})();
|
|
1558
|
-
})(levenshtein$1, levenshtein$1.exports);
|
|
1559
|
-
return levenshtein$1.exports;
|
|
1560
|
-
}
|
|
1561
|
-
var levenshteinExports = requireLevenshtein();
|
|
1562
|
-
const levenshtein = /* @__PURE__ */ getDefaultExportFromCjs(levenshteinExports);
|
|
1563
1360
|
class Diff {
|
|
1564
1361
|
diff(oldStr, newStr, options = {}) {
|
|
1565
1362
|
let callback;
|
|
@@ -1969,6 +1766,223 @@ function splitLines(text) {
|
|
|
1969
1766
|
}
|
|
1970
1767
|
return result;
|
|
1971
1768
|
}
|
|
1769
|
+
var levenshtein$1 = { exports: {} };
|
|
1770
|
+
const peq = new Uint32Array(65536);
|
|
1771
|
+
const myers_32 = (a, b) => {
|
|
1772
|
+
const n = a.length;
|
|
1773
|
+
const m = b.length;
|
|
1774
|
+
const lst = 1 << n - 1;
|
|
1775
|
+
let pv = -1;
|
|
1776
|
+
let mv = 0;
|
|
1777
|
+
let sc = n;
|
|
1778
|
+
let i = n;
|
|
1779
|
+
while (i--) {
|
|
1780
|
+
peq[a.charCodeAt(i)] |= 1 << i;
|
|
1781
|
+
}
|
|
1782
|
+
for (i = 0; i < m; i++) {
|
|
1783
|
+
let eq = peq[b.charCodeAt(i)];
|
|
1784
|
+
const xv = eq | mv;
|
|
1785
|
+
eq |= (eq & pv) + pv ^ pv;
|
|
1786
|
+
mv |= ~(eq | pv);
|
|
1787
|
+
pv &= eq;
|
|
1788
|
+
if (mv & lst) {
|
|
1789
|
+
sc++;
|
|
1790
|
+
}
|
|
1791
|
+
if (pv & lst) {
|
|
1792
|
+
sc--;
|
|
1793
|
+
}
|
|
1794
|
+
mv = mv << 1 | 1;
|
|
1795
|
+
pv = pv << 1 | ~(xv | mv);
|
|
1796
|
+
mv &= xv;
|
|
1797
|
+
}
|
|
1798
|
+
i = n;
|
|
1799
|
+
while (i--) {
|
|
1800
|
+
peq[a.charCodeAt(i)] = 0;
|
|
1801
|
+
}
|
|
1802
|
+
return sc;
|
|
1803
|
+
};
|
|
1804
|
+
const myers_x = (b, a) => {
|
|
1805
|
+
const n = a.length;
|
|
1806
|
+
const m = b.length;
|
|
1807
|
+
const mhc = [];
|
|
1808
|
+
const phc = [];
|
|
1809
|
+
const hsize = Math.ceil(n / 32);
|
|
1810
|
+
const vsize = Math.ceil(m / 32);
|
|
1811
|
+
for (let i = 0; i < hsize; i++) {
|
|
1812
|
+
phc[i] = -1;
|
|
1813
|
+
mhc[i] = 0;
|
|
1814
|
+
}
|
|
1815
|
+
let j = 0;
|
|
1816
|
+
for (; j < vsize - 1; j++) {
|
|
1817
|
+
let mv2 = 0;
|
|
1818
|
+
let pv2 = -1;
|
|
1819
|
+
const start2 = j * 32;
|
|
1820
|
+
const vlen2 = Math.min(32, m) + start2;
|
|
1821
|
+
for (let k = start2; k < vlen2; k++) {
|
|
1822
|
+
peq[b.charCodeAt(k)] |= 1 << k;
|
|
1823
|
+
}
|
|
1824
|
+
for (let i = 0; i < n; i++) {
|
|
1825
|
+
const eq = peq[a.charCodeAt(i)];
|
|
1826
|
+
const pb = phc[i / 32 | 0] >>> i & 1;
|
|
1827
|
+
const mb = mhc[i / 32 | 0] >>> i & 1;
|
|
1828
|
+
const xv = eq | mv2;
|
|
1829
|
+
const xh = ((eq | mb) & pv2) + pv2 ^ pv2 | eq | mb;
|
|
1830
|
+
let ph = mv2 | ~(xh | pv2);
|
|
1831
|
+
let mh = pv2 & xh;
|
|
1832
|
+
if (ph >>> 31 ^ pb) {
|
|
1833
|
+
phc[i / 32 | 0] ^= 1 << i;
|
|
1834
|
+
}
|
|
1835
|
+
if (mh >>> 31 ^ mb) {
|
|
1836
|
+
mhc[i / 32 | 0] ^= 1 << i;
|
|
1837
|
+
}
|
|
1838
|
+
ph = ph << 1 | pb;
|
|
1839
|
+
mh = mh << 1 | mb;
|
|
1840
|
+
pv2 = mh | ~(xv | ph);
|
|
1841
|
+
mv2 = ph & xv;
|
|
1842
|
+
}
|
|
1843
|
+
for (let k = start2; k < vlen2; k++) {
|
|
1844
|
+
peq[b.charCodeAt(k)] = 0;
|
|
1845
|
+
}
|
|
1846
|
+
}
|
|
1847
|
+
let mv = 0;
|
|
1848
|
+
let pv = -1;
|
|
1849
|
+
const start = j * 32;
|
|
1850
|
+
const vlen = Math.min(32, m - start) + start;
|
|
1851
|
+
for (let k = start; k < vlen; k++) {
|
|
1852
|
+
peq[b.charCodeAt(k)] |= 1 << k;
|
|
1853
|
+
}
|
|
1854
|
+
let score = m;
|
|
1855
|
+
for (let i = 0; i < n; i++) {
|
|
1856
|
+
const eq = peq[a.charCodeAt(i)];
|
|
1857
|
+
const pb = phc[i / 32 | 0] >>> i & 1;
|
|
1858
|
+
const mb = mhc[i / 32 | 0] >>> i & 1;
|
|
1859
|
+
const xv = eq | mv;
|
|
1860
|
+
const xh = ((eq | mb) & pv) + pv ^ pv | eq | mb;
|
|
1861
|
+
let ph = mv | ~(xh | pv);
|
|
1862
|
+
let mh = pv & xh;
|
|
1863
|
+
score += ph >>> m - 1 & 1;
|
|
1864
|
+
score -= mh >>> m - 1 & 1;
|
|
1865
|
+
if (ph >>> 31 ^ pb) {
|
|
1866
|
+
phc[i / 32 | 0] ^= 1 << i;
|
|
1867
|
+
}
|
|
1868
|
+
if (mh >>> 31 ^ mb) {
|
|
1869
|
+
mhc[i / 32 | 0] ^= 1 << i;
|
|
1870
|
+
}
|
|
1871
|
+
ph = ph << 1 | pb;
|
|
1872
|
+
mh = mh << 1 | mb;
|
|
1873
|
+
pv = mh | ~(xv | ph);
|
|
1874
|
+
mv = ph & xv;
|
|
1875
|
+
}
|
|
1876
|
+
for (let k = start; k < vlen; k++) {
|
|
1877
|
+
peq[b.charCodeAt(k)] = 0;
|
|
1878
|
+
}
|
|
1879
|
+
return score;
|
|
1880
|
+
};
|
|
1881
|
+
const distance = (a, b) => {
|
|
1882
|
+
if (a.length < b.length) {
|
|
1883
|
+
const tmp = b;
|
|
1884
|
+
b = a;
|
|
1885
|
+
a = tmp;
|
|
1886
|
+
}
|
|
1887
|
+
if (b.length === 0) {
|
|
1888
|
+
return a.length;
|
|
1889
|
+
}
|
|
1890
|
+
if (a.length <= 32) {
|
|
1891
|
+
return myers_32(a, b);
|
|
1892
|
+
}
|
|
1893
|
+
return myers_x(a, b);
|
|
1894
|
+
};
|
|
1895
|
+
const closest = (str, arr) => {
|
|
1896
|
+
let min_distance = Infinity;
|
|
1897
|
+
let min_index = 0;
|
|
1898
|
+
for (let i = 0; i < arr.length; i++) {
|
|
1899
|
+
const dist = distance(str, arr[i]);
|
|
1900
|
+
if (dist < min_distance) {
|
|
1901
|
+
min_distance = dist;
|
|
1902
|
+
min_index = i;
|
|
1903
|
+
}
|
|
1904
|
+
}
|
|
1905
|
+
return arr[min_index];
|
|
1906
|
+
};
|
|
1907
|
+
const mod = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
1908
|
+
__proto__: null,
|
|
1909
|
+
closest,
|
|
1910
|
+
distance
|
|
1911
|
+
}, Symbol.toStringTag, { value: "Module" }));
|
|
1912
|
+
const require$$0 = /* @__PURE__ */ getAugmentedNamespace(mod);
|
|
1913
|
+
var hasRequiredLevenshtein;
|
|
1914
|
+
function requireLevenshtein() {
|
|
1915
|
+
if (hasRequiredLevenshtein) return levenshtein$1.exports;
|
|
1916
|
+
hasRequiredLevenshtein = 1;
|
|
1917
|
+
(function(module, exports) {
|
|
1918
|
+
(function() {
|
|
1919
|
+
var collator;
|
|
1920
|
+
try {
|
|
1921
|
+
collator = typeof Intl !== "undefined" && typeof Intl.Collator !== "undefined" ? Intl.Collator("generic", { sensitivity: "base" }) : null;
|
|
1922
|
+
} catch (err) {
|
|
1923
|
+
console.log("Collator could not be initialized and wouldn't be used");
|
|
1924
|
+
}
|
|
1925
|
+
var levenshtein2 = require$$0;
|
|
1926
|
+
var prevRow = [], str2Char = [];
|
|
1927
|
+
var Levenshtein = {
|
|
1928
|
+
/**
|
|
1929
|
+
* Calculate levenshtein distance of the two strings.
|
|
1930
|
+
*
|
|
1931
|
+
* @param str1 String the first string.
|
|
1932
|
+
* @param str2 String the second string.
|
|
1933
|
+
* @param [options] Additional options.
|
|
1934
|
+
* @param [options.useCollator] Use `Intl.Collator` for locale-sensitive string comparison.
|
|
1935
|
+
* @return Integer the levenshtein distance (0 and above).
|
|
1936
|
+
*/
|
|
1937
|
+
get: function(str1, str2, options) {
|
|
1938
|
+
var useCollator = options && collator && options.useCollator;
|
|
1939
|
+
if (useCollator) {
|
|
1940
|
+
var str1Len = str1.length, str2Len = str2.length;
|
|
1941
|
+
if (str1Len === 0) return str2Len;
|
|
1942
|
+
if (str2Len === 0) return str1Len;
|
|
1943
|
+
var curCol, nextCol, i, j, tmp;
|
|
1944
|
+
for (i = 0; i < str2Len; ++i) {
|
|
1945
|
+
prevRow[i] = i;
|
|
1946
|
+
str2Char[i] = str2.charCodeAt(i);
|
|
1947
|
+
}
|
|
1948
|
+
prevRow[str2Len] = str2Len;
|
|
1949
|
+
var strCmp;
|
|
1950
|
+
for (i = 0; i < str1Len; ++i) {
|
|
1951
|
+
nextCol = i + 1;
|
|
1952
|
+
for (j = 0; j < str2Len; ++j) {
|
|
1953
|
+
curCol = nextCol;
|
|
1954
|
+
strCmp = 0 === collator.compare(str1.charAt(i), String.fromCharCode(str2Char[j]));
|
|
1955
|
+
nextCol = prevRow[j] + (strCmp ? 0 : 1);
|
|
1956
|
+
tmp = curCol + 1;
|
|
1957
|
+
if (nextCol > tmp) {
|
|
1958
|
+
nextCol = tmp;
|
|
1959
|
+
}
|
|
1960
|
+
tmp = prevRow[j + 1] + 1;
|
|
1961
|
+
if (nextCol > tmp) {
|
|
1962
|
+
nextCol = tmp;
|
|
1963
|
+
}
|
|
1964
|
+
prevRow[j] = curCol;
|
|
1965
|
+
}
|
|
1966
|
+
prevRow[j] = nextCol;
|
|
1967
|
+
}
|
|
1968
|
+
return nextCol;
|
|
1969
|
+
}
|
|
1970
|
+
return levenshtein2.distance(str1, str2);
|
|
1971
|
+
}
|
|
1972
|
+
};
|
|
1973
|
+
if (module !== null && true && module.exports === exports) {
|
|
1974
|
+
module.exports = Levenshtein;
|
|
1975
|
+
} else if (typeof self !== "undefined" && typeof self.postMessage === "function" && typeof self.importScripts === "function") {
|
|
1976
|
+
self.Levenshtein = Levenshtein;
|
|
1977
|
+
} else if (typeof window !== "undefined" && window !== null) {
|
|
1978
|
+
window.Levenshtein = Levenshtein;
|
|
1979
|
+
}
|
|
1980
|
+
})();
|
|
1981
|
+
})(levenshtein$1, levenshtein$1.exports);
|
|
1982
|
+
return levenshtein$1.exports;
|
|
1983
|
+
}
|
|
1984
|
+
var levenshteinExports = requireLevenshtein();
|
|
1985
|
+
const levenshtein = /* @__PURE__ */ getDefaultExportFromCjs(levenshteinExports);
|
|
1972
1986
|
function formatDiff(oldValue, newValue, diffType = "git", context = 1) {
|
|
1973
1987
|
switch (diffType) {
|
|
1974
1988
|
case "git":
|
|
@@ -2145,25 +2159,17 @@ function useStateChangeTracking(currentState, session_id, options) {
|
|
|
2145
2159
|
(startState, endState, triggerName) => {
|
|
2146
2160
|
const diffPercentage = calculateDiffPercentage(startState, endState);
|
|
2147
2161
|
const diffString = formatDiff(startState, endState, diffType);
|
|
2148
|
-
|
|
2149
|
-
if (options?.vote) {
|
|
2150
|
-
if (typeof options.vote === "function") {
|
|
2151
|
-
vote = options.vote(startState, endState, diffPercentage);
|
|
2152
|
-
} else {
|
|
2153
|
-
vote = options.vote;
|
|
2154
|
-
}
|
|
2155
|
-
} else {
|
|
2156
|
-
vote = diffPercentage > 0.5 ? "downvote" : "upvote";
|
|
2157
|
-
}
|
|
2162
|
+
const score = typeof options?.score === "function" ? options.score(startState, endState, diffPercentage) : options?.score ?? (diffPercentage > 0.5 ? 0 : 1);
|
|
2158
2163
|
const idString = typeof session_id === "function" ? session_id(endState) : session_id;
|
|
2159
2164
|
feedbackHandler({
|
|
2160
2165
|
session_id: idString,
|
|
2161
|
-
|
|
2162
|
-
|
|
2163
|
-
|
|
2164
|
-
|
|
2165
|
-
|
|
2166
|
-
|
|
2166
|
+
kind: "edit",
|
|
2167
|
+
source: "human",
|
|
2168
|
+
trigger_name: triggerName,
|
|
2169
|
+
score,
|
|
2170
|
+
value: diffString,
|
|
2171
|
+
confidence: diffPercentage,
|
|
2172
|
+
metadata: options?.metadata
|
|
2167
2173
|
});
|
|
2168
2174
|
},
|
|
2169
2175
|
[options, session_id, diffType, feedbackHandler]
|
|
@@ -2270,6 +2276,7 @@ export {
|
|
|
2270
2276
|
VoteFeedback,
|
|
2271
2277
|
useDefaultFeedbackHandler,
|
|
2272
2278
|
useFeedbackState,
|
|
2273
|
-
useKelet
|
|
2279
|
+
useKelet,
|
|
2280
|
+
useKeletSignal
|
|
2274
2281
|
};
|
|
2275
2282
|
//# sourceMappingURL=feedback-ui.es.js.map
|