toggle-components-library 1.37.0-beta.4 → 1.37.0-beta.5
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/toggle-components-library.common.js +63 -33
- package/dist/toggle-components-library.common.js.map +1 -1
- package/dist/toggle-components-library.umd.js +63 -33
- package/dist/toggle-components-library.umd.js.map +1 -1
- package/dist/toggle-components-library.umd.min.js +1 -1
- package/dist/toggle-components-library.umd.min.js.map +1 -1
- package/package.json +1 -1
- package/src/components/breadcrumb/ToggleBreadCrumb.vue +64 -27
|
@@ -48729,8 +48729,8 @@ var TogglePodiumBadge_component = normalizeComponent(
|
|
|
48729
48729
|
)
|
|
48730
48730
|
|
|
48731
48731
|
/* harmony default export */ var TogglePodiumBadge = (TogglePodiumBadge_component.exports);
|
|
48732
|
-
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"a48609c2-vue-loader-template"}!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/breadcrumb/ToggleBreadCrumb.vue?vue&type=template&id=
|
|
48733
|
-
var
|
|
48732
|
+
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"a48609c2-vue-loader-template"}!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/breadcrumb/ToggleBreadCrumb.vue?vue&type=template&id=93f64828&
|
|
48733
|
+
var ToggleBreadCrumbvue_type_template_id_93f64828_render = function render() {
|
|
48734
48734
|
var _vm = this,
|
|
48735
48735
|
_c = _vm._self._c;
|
|
48736
48736
|
return _vm.breadcrumb_computed ? _c('div', {
|
|
@@ -48739,10 +48739,15 @@ var ToggleBreadCrumbvue_type_template_id_d98b2612_render = function render() {
|
|
|
48739
48739
|
return _c('div', {
|
|
48740
48740
|
key: index
|
|
48741
48741
|
}, [index === _vm.breadcrumb_computed.length - 1 && _vm.editable ? [_c('span', {
|
|
48742
|
+
ref: "editableSpan",
|
|
48743
|
+
refInFor: true,
|
|
48742
48744
|
staticClass: "toggle-breadcrumb-editable-input",
|
|
48743
48745
|
attrs: {
|
|
48744
48746
|
"contenteditable": "true"
|
|
48745
48747
|
},
|
|
48748
|
+
domProps: {
|
|
48749
|
+
"textContent": _vm._s(_vm.initialContent)
|
|
48750
|
+
},
|
|
48746
48751
|
on: {
|
|
48747
48752
|
"input": function ($event) {
|
|
48748
48753
|
return _vm.updateContent($event);
|
|
@@ -48757,7 +48762,7 @@ var ToggleBreadCrumbvue_type_template_id_d98b2612_render = function render() {
|
|
|
48757
48762
|
return _vm.handlePaste.apply(null, arguments);
|
|
48758
48763
|
}
|
|
48759
48764
|
}
|
|
48760
|
-
}
|
|
48765
|
+
})] : [crumb.link && !_vm.isNuxt ? _c('router-link', {
|
|
48761
48766
|
staticClass: "back-product",
|
|
48762
48767
|
attrs: {
|
|
48763
48768
|
"to": {
|
|
@@ -48778,9 +48783,9 @@ var ToggleBreadCrumbvue_type_template_id_d98b2612_render = function render() {
|
|
|
48778
48783
|
}, [_vm._v(_vm._s(crumb.name))]) : _vm._e()]], 2);
|
|
48779
48784
|
}), 0) : _vm._e();
|
|
48780
48785
|
};
|
|
48781
|
-
var
|
|
48786
|
+
var ToggleBreadCrumbvue_type_template_id_93f64828_staticRenderFns = [];
|
|
48782
48787
|
|
|
48783
|
-
// CONCATENATED MODULE: ./src/components/breadcrumb/ToggleBreadCrumb.vue?vue&type=template&id=
|
|
48788
|
+
// CONCATENATED MODULE: ./src/components/breadcrumb/ToggleBreadCrumb.vue?vue&type=template&id=93f64828&
|
|
48784
48789
|
|
|
48785
48790
|
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/breadcrumb/ToggleBreadCrumb.vue?vue&type=script&lang=js&
|
|
48786
48791
|
/* harmony default export */ var ToggleBreadCrumbvue_type_script_lang_js_ = ({
|
|
@@ -48805,9 +48810,11 @@ var ToggleBreadCrumbvue_type_template_id_d98b2612_staticRenderFns = [];
|
|
|
48805
48810
|
required: false
|
|
48806
48811
|
}
|
|
48807
48812
|
},
|
|
48808
|
-
data
|
|
48813
|
+
data() {
|
|
48809
48814
|
return {
|
|
48810
|
-
content: ''
|
|
48815
|
+
content: '',
|
|
48816
|
+
initialContent: '',
|
|
48817
|
+
lastSelection: null
|
|
48811
48818
|
};
|
|
48812
48819
|
},
|
|
48813
48820
|
computed: {
|
|
@@ -48815,29 +48822,62 @@ var ToggleBreadCrumbvue_type_template_id_d98b2612_staticRenderFns = [];
|
|
|
48815
48822
|
return this.isNuxt ? this.breadcrumb : this.$route.meta.breadcrumb;
|
|
48816
48823
|
}
|
|
48817
48824
|
},
|
|
48825
|
+
mounted() {
|
|
48826
|
+
if (this.breadcrumb_computed && this.breadcrumb_computed.length > 0) {
|
|
48827
|
+
const lastCrumb = this.breadcrumb_computed[this.breadcrumb_computed.length - 1];
|
|
48828
|
+
this.content = lastCrumb.name;
|
|
48829
|
+
this.initialContent = lastCrumb.name;
|
|
48830
|
+
}
|
|
48831
|
+
},
|
|
48818
48832
|
methods: {
|
|
48833
|
+
saveSelection() {
|
|
48834
|
+
if (window.getSelection) {
|
|
48835
|
+
const sel = window.getSelection();
|
|
48836
|
+
if (sel.getRangeAt && sel.rangeCount) {
|
|
48837
|
+
const range = sel.getRangeAt(0);
|
|
48838
|
+
this.lastSelection = {
|
|
48839
|
+
start: range.startOffset,
|
|
48840
|
+
end: range.endOffset
|
|
48841
|
+
};
|
|
48842
|
+
}
|
|
48843
|
+
}
|
|
48844
|
+
},
|
|
48845
|
+
restoreSelection() {
|
|
48846
|
+
if (!this.lastSelection || !this.$refs.editableSpan) return;
|
|
48847
|
+
const el = this.$refs.editableSpan;
|
|
48848
|
+
if (!el.firstChild && typeof el.textContent === 'string') {
|
|
48849
|
+
el.textContent = this.content || '';
|
|
48850
|
+
}
|
|
48851
|
+
try {
|
|
48852
|
+
const range = document.createRange();
|
|
48853
|
+
const sel = window.getSelection();
|
|
48854
|
+
const textNode = el.firstChild || el;
|
|
48855
|
+
|
|
48856
|
+
// Ensure we don't exceed the text length
|
|
48857
|
+
const start = Math.min(this.lastSelection.start, textNode.length);
|
|
48858
|
+
const end = Math.min(this.lastSelection.end, textNode.length);
|
|
48859
|
+
range.setStart(textNode, start);
|
|
48860
|
+
range.setEnd(textNode, end);
|
|
48861
|
+
sel.removeAllRanges();
|
|
48862
|
+
sel.addRange(range);
|
|
48863
|
+
} catch (e) {
|
|
48864
|
+
console.warn('Failed to restore selection:', e);
|
|
48865
|
+
}
|
|
48866
|
+
},
|
|
48819
48867
|
handlePaste(event) {
|
|
48820
|
-
// Get plain text from clipboard and clean it
|
|
48821
48868
|
const text = (event.clipboardData || window.clipboardData).getData('text');
|
|
48822
48869
|
const cleanText = text.replace(/[\r\n\s]+/g, ' ').trim();
|
|
48823
|
-
|
|
48824
|
-
// Get current selection information
|
|
48870
|
+
this.saveSelection();
|
|
48825
48871
|
const selection = window.getSelection();
|
|
48826
48872
|
const selectionLength = selection.toString().length;
|
|
48827
48873
|
const currentLength = this.content.length;
|
|
48828
|
-
|
|
48829
|
-
// Check if adding the pasted text would exceed maxChars
|
|
48830
48874
|
if (currentLength - selectionLength + cleanText.length <= this.maxChars && selection.rangeCount) {
|
|
48831
48875
|
const range = selection.getRangeAt(0);
|
|
48832
48876
|
range.deleteContents();
|
|
48833
48877
|
range.insertNode(document.createTextNode(cleanText));
|
|
48834
|
-
|
|
48835
|
-
// Move cursor to end of inserted text
|
|
48836
48878
|
range.collapse(false);
|
|
48837
48879
|
selection.removeAllRanges();
|
|
48838
48880
|
selection.addRange(range);
|
|
48839
|
-
|
|
48840
|
-
// Update content
|
|
48841
48881
|
this.content = event.target.innerText;
|
|
48842
48882
|
this.$emit('update:lastCrumb', this.content);
|
|
48843
48883
|
}
|
|
@@ -48847,27 +48887,17 @@ var ToggleBreadCrumbvue_type_template_id_d98b2612_staticRenderFns = [];
|
|
|
48847
48887
|
event.target.blur();
|
|
48848
48888
|
},
|
|
48849
48889
|
updateContent(event) {
|
|
48890
|
+
this.saveSelection();
|
|
48850
48891
|
const newText = event.target.innerText;
|
|
48851
|
-
|
|
48852
|
-
// If text exceeds maxChars, prevent the change
|
|
48853
48892
|
if (newText.length > this.maxChars) {
|
|
48854
|
-
// Save current selection
|
|
48855
|
-
const selection = window.getSelection();
|
|
48856
|
-
const range = selection.getRangeAt(0);
|
|
48857
|
-
const cursorOffset = range.startOffset;
|
|
48858
|
-
|
|
48859
|
-
// Restore previous content
|
|
48860
48893
|
event.target.innerText = this.content;
|
|
48861
|
-
|
|
48862
|
-
// Restore cursor position
|
|
48863
|
-
const newRange = document.createRange();
|
|
48864
|
-
newRange.setStart(event.target.firstChild || event.target, Math.min(cursorOffset, this.content.length));
|
|
48865
|
-
newRange.collapse(true);
|
|
48866
|
-
selection.removeAllRanges();
|
|
48867
|
-
selection.addRange(newRange);
|
|
48894
|
+
this.restoreSelection();
|
|
48868
48895
|
} else {
|
|
48869
48896
|
this.content = newText;
|
|
48870
48897
|
this.$emit('update:lastCrumb', this.content);
|
|
48898
|
+
this.$nextTick(() => {
|
|
48899
|
+
this.restoreSelection();
|
|
48900
|
+
});
|
|
48871
48901
|
}
|
|
48872
48902
|
}
|
|
48873
48903
|
}
|
|
@@ -48884,8 +48914,8 @@ var ToggleBreadCrumbvue_type_template_id_d98b2612_staticRenderFns = [];
|
|
|
48884
48914
|
|
|
48885
48915
|
var ToggleBreadCrumb_component = normalizeComponent(
|
|
48886
48916
|
breadcrumb_ToggleBreadCrumbvue_type_script_lang_js_,
|
|
48887
|
-
|
|
48888
|
-
|
|
48917
|
+
ToggleBreadCrumbvue_type_template_id_93f64828_render,
|
|
48918
|
+
ToggleBreadCrumbvue_type_template_id_93f64828_staticRenderFns,
|
|
48889
48919
|
false,
|
|
48890
48920
|
null,
|
|
48891
48921
|
null,
|