@pubann/textae 14.1.2 → 14.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/dist/lib/{textae-14.1.2.js → textae-14.2.0.js} +92 -23
- package/dist/lib/{textae-14.1.2.min.js → textae-14.2.0.min.js} +13 -13
- package/package.json +1 -1
- /package/dist/lib/css/{textae-14.1.2.css → textae-14.2.0.css} +0 -0
- /package/dist/lib/css/{textae-14.1.2.min.css → textae-14.2.0.min.css} +0 -0
|
@@ -58502,7 +58502,7 @@
|
|
|
58502
58502
|
)
|
|
58503
58503
|
} // ./package.json
|
|
58504
58504
|
|
|
58505
|
-
const package_namespaceObject = { rE: '14.
|
|
58505
|
+
const package_namespaceObject = { rE: '14.2.0' } // ./src/lib/component/SettingDialog/EscapeSequence.js
|
|
58506
58506
|
class EscapeSequence {
|
|
58507
58507
|
static escape(str) {
|
|
58508
58508
|
return str
|
|
@@ -104898,6 +104898,7 @@ data-button-type="${type}">
|
|
|
104898
104898
|
get isPalletShown() {
|
|
104899
104899
|
return false
|
|
104900
104900
|
}
|
|
104901
|
+
updateSelectedTextOffsets() {}
|
|
104901
104902
|
} // ./src/lib/component/PromiseDialog.js
|
|
104902
104903
|
|
|
104903
104904
|
class PromiseDialog extends Dialog {
|
|
@@ -110402,31 +110403,71 @@ data-button-type="${type}">
|
|
|
110402
110403
|
get #textBox() {
|
|
110403
110404
|
return this.#editorHTMLElement.querySelector('.textae-editor__text-box')
|
|
110404
110405
|
}
|
|
110405
|
-
} // ./src/lib/Editor/UseCase/EditModeFactory/ViewMode.js
|
|
110406
|
+
} // ./src/lib/Editor/UseCase/EditModeFactory/ViewMode/updateSelection/getTextNodeAtOffset.js
|
|
110407
|
+
|
|
110408
|
+
// Get the text node at a specific offset within a root element.
|
|
110409
|
+
// This function traverses the DOM tree to find the text node and its offset.
|
|
110410
|
+
function getTextNodeAtOffset(rootElement, offset) {
|
|
110411
|
+
let currentOffset = 0
|
|
110412
|
+
|
|
110413
|
+
function traverse(node) {
|
|
110414
|
+
for (const child of node.childNodes) {
|
|
110415
|
+
if (child.nodeType === Node.TEXT_NODE) {
|
|
110416
|
+
const textLength = child.textContent.length
|
|
110417
|
+
if (currentOffset + textLength >= offset) {
|
|
110418
|
+
return {
|
|
110419
|
+
node: child,
|
|
110420
|
+
offset: offset - currentOffset
|
|
110421
|
+
}
|
|
110422
|
+
}
|
|
110423
|
+
currentOffset += textLength
|
|
110424
|
+
} else if (child.nodeType === Node.ELEMENT_NODE) {
|
|
110425
|
+
const result = traverse(child)
|
|
110426
|
+
if (result) return result
|
|
110427
|
+
}
|
|
110428
|
+
}
|
|
110429
|
+
return null
|
|
110430
|
+
}
|
|
110431
|
+
|
|
110432
|
+
return traverse(rootElement)
|
|
110433
|
+
} // ./src/lib/Editor/UseCase/EditModeFactory/ViewMode/updateSelection/index.js
|
|
110434
|
+
|
|
110435
|
+
// This function updates the selection in the document based on the provided offsets.
|
|
110436
|
+
function updateSelection(selection, rootElement, begin, end) {
|
|
110437
|
+
const startNode = getTextNodeAtOffset(rootElement, begin)
|
|
110438
|
+
const endNode = getTextNodeAtOffset(rootElement, end)
|
|
110439
|
+
|
|
110440
|
+
const range = document.createRange()
|
|
110441
|
+
range.setStart(startNode.node, startNode.offset)
|
|
110442
|
+
range.setEnd(endNode.node, endNode.offset)
|
|
110443
|
+
|
|
110444
|
+
selection.removeAllRanges()
|
|
110445
|
+
selection.addRange(range)
|
|
110446
|
+
} // ./src/lib/Editor/UseCase/EditModeFactory/ViewMode/index.js
|
|
110406
110447
|
|
|
110407
110448
|
class ViewMode extends EditModeBase {
|
|
110408
110449
|
#editorHTMLElement
|
|
110450
|
+
#eventEmitter
|
|
110409
110451
|
#annotationModel
|
|
110410
110452
|
#selectedTextStartOffset
|
|
110411
110453
|
#selectedTextEndOffset
|
|
110412
|
-
#
|
|
110454
|
+
#spanConfig
|
|
110455
|
+
#menuState
|
|
110413
110456
|
|
|
110414
|
-
constructor(
|
|
110457
|
+
constructor(
|
|
110458
|
+
editorHTMLElement,
|
|
110459
|
+
eventEmitter,
|
|
110460
|
+
annotationModel,
|
|
110461
|
+
spanConfig,
|
|
110462
|
+
menuState
|
|
110463
|
+
) {
|
|
110415
110464
|
super()
|
|
110416
110465
|
|
|
110417
110466
|
this.#editorHTMLElement = editorHTMLElement
|
|
110467
|
+
this.#eventEmitter = eventEmitter
|
|
110418
110468
|
this.#annotationModel = annotationModel
|
|
110419
|
-
|
|
110420
|
-
this.#
|
|
110421
|
-
this.#updateSelectedTextOffsets()
|
|
110422
|
-
|
|
110423
|
-
eventEmitter.emit('textae-event.editor.selected-text.change')
|
|
110424
|
-
})
|
|
110425
|
-
|
|
110426
|
-
document.addEventListener(
|
|
110427
|
-
'selectionchange',
|
|
110428
|
-
this.#updateSelectedTextHandler
|
|
110429
|
-
)
|
|
110469
|
+
this.#spanConfig = spanConfig
|
|
110470
|
+
this.#menuState = menuState
|
|
110430
110471
|
}
|
|
110431
110472
|
|
|
110432
110473
|
get selectedText() {
|
|
@@ -110457,8 +110498,9 @@ data-button-type="${type}">
|
|
|
110457
110498
|
}
|
|
110458
110499
|
}
|
|
110459
110500
|
|
|
110460
|
-
|
|
110501
|
+
updateSelectedTextOffsets() {
|
|
110461
110502
|
const selection = document.getSelection()
|
|
110503
|
+
|
|
110462
110504
|
if (selection && selection.rangeCount > 0) {
|
|
110463
110505
|
const range = selection.getRangeAt(0)
|
|
110464
110506
|
const textBox = this.#editorHTMLElement.querySelector(
|
|
@@ -110469,15 +110511,22 @@ data-button-type="${type}">
|
|
|
110469
110511
|
textBox.contains(range.startContainer) &&
|
|
110470
110512
|
textBox.contains(range.endContainer)
|
|
110471
110513
|
) {
|
|
110472
|
-
this.#
|
|
110473
|
-
this.#
|
|
110474
|
-
|
|
110475
|
-
|
|
110514
|
+
const { begin, end } = this.#annotationModel.getTextSelection(
|
|
110515
|
+
this.#spanConfig,
|
|
110516
|
+
this.#menuState.textSelectionAdjuster
|
|
110517
|
+
)
|
|
110518
|
+
|
|
110519
|
+
updateSelection(selection, textBox, begin, end)
|
|
110520
|
+
|
|
110521
|
+
this.#selectedTextStartOffset = begin
|
|
110522
|
+
this.#selectedTextEndOffset = end
|
|
110476
110523
|
}
|
|
110477
110524
|
} else {
|
|
110478
110525
|
this.#selectedTextStartOffset = undefined
|
|
110479
110526
|
this.#selectedTextEndOffset = undefined
|
|
110480
110527
|
}
|
|
110528
|
+
|
|
110529
|
+
this.#eventEmitter.emit('textae-event.editor.selected-text.change')
|
|
110481
110530
|
}
|
|
110482
110531
|
} // ./src/lib/Editor/UseCase/EditModeFactory/index.js
|
|
110483
110532
|
|
|
@@ -110561,8 +110610,20 @@ data-button-type="${type}">
|
|
|
110561
110610
|
)
|
|
110562
110611
|
}
|
|
110563
110612
|
|
|
110564
|
-
static createViewMode(
|
|
110565
|
-
|
|
110613
|
+
static createViewMode(
|
|
110614
|
+
editorHTMLElement,
|
|
110615
|
+
eventEmitter,
|
|
110616
|
+
annotationModel,
|
|
110617
|
+
spanConfig,
|
|
110618
|
+
menuState
|
|
110619
|
+
) {
|
|
110620
|
+
return new ViewMode(
|
|
110621
|
+
editorHTMLElement,
|
|
110622
|
+
eventEmitter,
|
|
110623
|
+
annotationModel,
|
|
110624
|
+
spanConfig,
|
|
110625
|
+
menuState
|
|
110626
|
+
)
|
|
110566
110627
|
}
|
|
110567
110628
|
} // ./src/lib/Editor/UseCase/CurrentEditMode.js
|
|
110568
110629
|
|
|
@@ -110590,6 +110651,12 @@ data-button-type="${type}">
|
|
|
110590
110651
|
this.#textEditMode = textEditMode
|
|
110591
110652
|
this.#viewMode = viewMode
|
|
110592
110653
|
|
|
110654
|
+
const updateSelectedTextHandler = debounce300(() =>
|
|
110655
|
+
this.#current.updateSelectedTextOffsets()
|
|
110656
|
+
)
|
|
110657
|
+
|
|
110658
|
+
document.addEventListener('selectionchange', updateSelectedTextHandler)
|
|
110659
|
+
|
|
110593
110660
|
eventEmitter
|
|
110594
110661
|
.on('textae-event.editor.relation.click', (event, relation) =>
|
|
110595
110662
|
this.#current.relationClicked(event, relation)
|
|
@@ -110949,7 +111016,9 @@ data-button-type="${type}">
|
|
|
110949
111016
|
const viewMode = EditModeFactory.createViewMode(
|
|
110950
111017
|
editorHTMLElement,
|
|
110951
111018
|
eventEmitter,
|
|
110952
|
-
annotationModel
|
|
111019
|
+
annotationModel,
|
|
111020
|
+
spanConfig,
|
|
111021
|
+
menuState
|
|
110953
111022
|
)
|
|
110954
111023
|
this.#viewMode = viewMode
|
|
110955
111024
|
const currentEditMode = new CurrentEditMode(
|