@mixd-id/web-scaffold 0.1.230406001
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/LICENSE +21 -0
- package/README.md +3 -0
- package/package.json +71 -0
- package/public/images/mixd-logo2.png +0 -0
- package/src/App.vue +17 -0
- package/src/components/Ahref.vue +34 -0
- package/src/components/Alert.vue +160 -0
- package/src/components/Button.vue +253 -0
- package/src/components/ButtonGroup.vue +101 -0
- package/src/components/Carousel.vue +293 -0
- package/src/components/ChatTyping.vue +69 -0
- package/src/components/Checkbox.vue +152 -0
- package/src/components/ContextMenu.vue +261 -0
- package/src/components/CopyToClipboard.vue +59 -0
- package/src/components/Countdown.vue +213 -0
- package/src/components/Datepicker.vue +312 -0
- package/src/components/Dropdown.vue +198 -0
- package/src/components/DynamicTemplate.vue +44 -0
- package/src/components/ErrorText.vue +36 -0
- package/src/components/Feed.vue +118 -0
- package/src/components/Gmaps.vue +227 -0
- package/src/components/Grid.vue +29 -0
- package/src/components/GridColumn.vue +31 -0
- package/src/components/HTMLEditor.vue +396 -0
- package/src/components/Image.vue +207 -0
- package/src/components/Image360.vue +140 -0
- package/src/components/ImageFullScreen.vue +101 -0
- package/src/components/ImagePreview.vue +71 -0
- package/src/components/ImportModal.vue +247 -0
- package/src/components/ListItem.vue +147 -0
- package/src/components/ListPage1.vue +1331 -0
- package/src/components/ListPage1Filter.vue +170 -0
- package/src/components/Modal.vue +253 -0
- package/src/components/OTPField.vue +126 -0
- package/src/components/Radio.vue +134 -0
- package/src/components/SearchButton.vue +57 -0
- package/src/components/Slider.vue +285 -0
- package/src/components/SplitPane.vue +129 -0
- package/src/components/Switch.vue +89 -0
- package/src/components/TabView.vue +106 -0
- package/src/components/TableView.vue +201 -0
- package/src/components/TableViewHead.vue +159 -0
- package/src/components/Tabs.vue +74 -0
- package/src/components/TextEditor.vue +85 -0
- package/src/components/Textarea.vue +184 -0
- package/src/components/Textbox.vue +200 -0
- package/src/components/Timepicker.vue +108 -0
- package/src/components/Toast.vue +93 -0
- package/src/components/VirtualScroll.vue +215 -0
- package/src/components/VirtualTable.vue +497 -0
- package/src/entry-client.js +27 -0
- package/src/entry-server.js +73 -0
- package/src/index.css +3 -0
- package/src/index.js +255 -0
- package/src/main.js +38 -0
- package/src/router.js +57 -0
- package/src/themes/default/index.js +200 -0
- package/src/utils/helpers.js +185 -0
- package/src/utils/helpers.mjs +197 -0
- package/src/utils/importer.js +156 -0
- package/src/utils/listpage1.js +1371 -0
- package/src/utils/selection.js +64 -0
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
|
|
2
|
+
let selection
|
|
3
|
+
|
|
4
|
+
const saveSelection = (container) =>{
|
|
5
|
+
|
|
6
|
+
const sel = window.getSelection()
|
|
7
|
+
if(sel.rangeCount < 1) return
|
|
8
|
+
const range = window.getSelection().getRangeAt(0)
|
|
9
|
+
|
|
10
|
+
const preSelectionRange = range.cloneRange()
|
|
11
|
+
preSelectionRange.selectNodeContents(container)
|
|
12
|
+
preSelectionRange.setEnd(range.startContainer, range.startOffset)
|
|
13
|
+
const start = preSelectionRange.toString().length
|
|
14
|
+
|
|
15
|
+
selection = {
|
|
16
|
+
start: start,
|
|
17
|
+
end: start + range.toString().length,
|
|
18
|
+
container,
|
|
19
|
+
text: range.toString()
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
return selection
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
const restoreSelection = () => {
|
|
26
|
+
if(!selection) return
|
|
27
|
+
|
|
28
|
+
const range = document.createRange();
|
|
29
|
+
range.setStart(selection.container, 0);
|
|
30
|
+
range.collapse(true);
|
|
31
|
+
|
|
32
|
+
const savedSel = selection
|
|
33
|
+
|
|
34
|
+
let charIndex = 0
|
|
35
|
+
let nodeStack = [selection.container], node, foundStart = false, stop = false;
|
|
36
|
+
while (!stop && (node = nodeStack.pop())) {
|
|
37
|
+
if (node.nodeType === 3) {
|
|
38
|
+
var nextCharIndex = charIndex + node.length;
|
|
39
|
+
if (!foundStart && savedSel.start >= charIndex && savedSel.start <= nextCharIndex) {
|
|
40
|
+
range.setStart(node, savedSel.start - charIndex);
|
|
41
|
+
foundStart = true;
|
|
42
|
+
}
|
|
43
|
+
if (foundStart && savedSel.end >= charIndex && savedSel.end <= nextCharIndex) {
|
|
44
|
+
range.setEnd(node, savedSel.end - charIndex);
|
|
45
|
+
stop = true;
|
|
46
|
+
}
|
|
47
|
+
charIndex = nextCharIndex;
|
|
48
|
+
} else {
|
|
49
|
+
var i = node.childNodes.length;
|
|
50
|
+
while (i--) {
|
|
51
|
+
nodeStack.push(node.childNodes[i]);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
const sel = window.getSelection();
|
|
57
|
+
sel.removeAllRanges();
|
|
58
|
+
sel.addRange(range);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
export {
|
|
62
|
+
saveSelection,
|
|
63
|
+
restoreSelection
|
|
64
|
+
}
|