toggle-components-library 1.37.0-beta.3 → 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.
@@ -48720,8 +48720,8 @@ var TogglePodiumBadge_component = normalizeComponent(
48720
48720
  )
48721
48721
 
48722
48722
  /* harmony default export */ var TogglePodiumBadge = (TogglePodiumBadge_component.exports);
48723
- // 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=4c1ca076&
48724
- var ToggleBreadCrumbvue_type_template_id_4c1ca076_render = function render() {
48723
+ // 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&
48724
+ var ToggleBreadCrumbvue_type_template_id_93f64828_render = function render() {
48725
48725
  var _vm = this,
48726
48726
  _c = _vm._self._c;
48727
48727
  return _vm.breadcrumb_computed ? _c('div', {
@@ -48730,10 +48730,15 @@ var ToggleBreadCrumbvue_type_template_id_4c1ca076_render = function render() {
48730
48730
  return _c('div', {
48731
48731
  key: index
48732
48732
  }, [index === _vm.breadcrumb_computed.length - 1 && _vm.editable ? [_c('span', {
48733
+ ref: "editableSpan",
48734
+ refInFor: true,
48733
48735
  staticClass: "toggle-breadcrumb-editable-input",
48734
48736
  attrs: {
48735
48737
  "contenteditable": "true"
48736
48738
  },
48739
+ domProps: {
48740
+ "textContent": _vm._s(_vm.initialContent)
48741
+ },
48737
48742
  on: {
48738
48743
  "input": function ($event) {
48739
48744
  return _vm.updateContent($event);
@@ -48748,7 +48753,7 @@ var ToggleBreadCrumbvue_type_template_id_4c1ca076_render = function render() {
48748
48753
  return _vm.handlePaste.apply(null, arguments);
48749
48754
  }
48750
48755
  }
48751
- }, [_vm._v(_vm._s(crumb.name))])] : [crumb.link && !_vm.isNuxt ? _c('router-link', {
48756
+ })] : [crumb.link && !_vm.isNuxt ? _c('router-link', {
48752
48757
  staticClass: "back-product",
48753
48758
  attrs: {
48754
48759
  "to": {
@@ -48769,9 +48774,9 @@ var ToggleBreadCrumbvue_type_template_id_4c1ca076_render = function render() {
48769
48774
  }, [_vm._v(_vm._s(crumb.name))]) : _vm._e()]], 2);
48770
48775
  }), 0) : _vm._e();
48771
48776
  };
48772
- var ToggleBreadCrumbvue_type_template_id_4c1ca076_staticRenderFns = [];
48777
+ var ToggleBreadCrumbvue_type_template_id_93f64828_staticRenderFns = [];
48773
48778
 
48774
- // CONCATENATED MODULE: ./src/components/breadcrumb/ToggleBreadCrumb.vue?vue&type=template&id=4c1ca076&
48779
+ // CONCATENATED MODULE: ./src/components/breadcrumb/ToggleBreadCrumb.vue?vue&type=template&id=93f64828&
48775
48780
 
48776
48781
  // 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&
48777
48782
  /* harmony default export */ var ToggleBreadCrumbvue_type_script_lang_js_ = ({
@@ -48796,9 +48801,11 @@ var ToggleBreadCrumbvue_type_template_id_4c1ca076_staticRenderFns = [];
48796
48801
  required: false
48797
48802
  }
48798
48803
  },
48799
- data: function () {
48804
+ data() {
48800
48805
  return {
48801
- content: ''
48806
+ content: '',
48807
+ initialContent: '',
48808
+ lastSelection: null
48802
48809
  };
48803
48810
  },
48804
48811
  computed: {
@@ -48806,29 +48813,62 @@ var ToggleBreadCrumbvue_type_template_id_4c1ca076_staticRenderFns = [];
48806
48813
  return this.isNuxt ? this.breadcrumb : this.$route.meta.breadcrumb;
48807
48814
  }
48808
48815
  },
48816
+ mounted() {
48817
+ if (this.breadcrumb_computed && this.breadcrumb_computed.length > 0) {
48818
+ const lastCrumb = this.breadcrumb_computed[this.breadcrumb_computed.length - 1];
48819
+ this.content = lastCrumb.name;
48820
+ this.initialContent = lastCrumb.name;
48821
+ }
48822
+ },
48809
48823
  methods: {
48824
+ saveSelection() {
48825
+ if (window.getSelection) {
48826
+ const sel = window.getSelection();
48827
+ if (sel.getRangeAt && sel.rangeCount) {
48828
+ const range = sel.getRangeAt(0);
48829
+ this.lastSelection = {
48830
+ start: range.startOffset,
48831
+ end: range.endOffset
48832
+ };
48833
+ }
48834
+ }
48835
+ },
48836
+ restoreSelection() {
48837
+ if (!this.lastSelection || !this.$refs.editableSpan) return;
48838
+ const el = this.$refs.editableSpan;
48839
+ if (!el.firstChild && typeof el.textContent === 'string') {
48840
+ el.textContent = this.content || '';
48841
+ }
48842
+ try {
48843
+ const range = document.createRange();
48844
+ const sel = window.getSelection();
48845
+ const textNode = el.firstChild || el;
48846
+
48847
+ // Ensure we don't exceed the text length
48848
+ const start = Math.min(this.lastSelection.start, textNode.length);
48849
+ const end = Math.min(this.lastSelection.end, textNode.length);
48850
+ range.setStart(textNode, start);
48851
+ range.setEnd(textNode, end);
48852
+ sel.removeAllRanges();
48853
+ sel.addRange(range);
48854
+ } catch (e) {
48855
+ console.warn('Failed to restore selection:', e);
48856
+ }
48857
+ },
48810
48858
  handlePaste(event) {
48811
- // Get plain text from clipboard and clean it
48812
48859
  const text = (event.clipboardData || window.clipboardData).getData('text');
48813
48860
  const cleanText = text.replace(/[\r\n\s]+/g, ' ').trim();
48814
-
48815
- // Get current selection information
48861
+ this.saveSelection();
48816
48862
  const selection = window.getSelection();
48817
48863
  const selectionLength = selection.toString().length;
48818
48864
  const currentLength = this.content.length;
48819
-
48820
- // Check if adding the pasted text would exceed maxChars
48821
48865
  if (currentLength - selectionLength + cleanText.length <= this.maxChars && selection.rangeCount) {
48822
48866
  const range = selection.getRangeAt(0);
48823
48867
  range.deleteContents();
48824
48868
  range.insertNode(document.createTextNode(cleanText));
48825
-
48826
- // Move cursor to end of inserted text
48827
48869
  range.collapse(false);
48828
48870
  selection.removeAllRanges();
48829
48871
  selection.addRange(range);
48830
-
48831
- // Update content
48832
48872
  this.content = event.target.innerText;
48833
48873
  this.$emit('update:lastCrumb', this.content);
48834
48874
  }
@@ -48838,15 +48878,17 @@ var ToggleBreadCrumbvue_type_template_id_4c1ca076_staticRenderFns = [];
48838
48878
  event.target.blur();
48839
48879
  },
48840
48880
  updateContent(event) {
48841
- // Limit the input to 50 characters
48842
- if (event.target.innerText.length >= this.maxChars) {
48881
+ this.saveSelection();
48882
+ const newText = event.target.innerText;
48883
+ if (newText.length > this.maxChars) {
48843
48884
  event.target.innerText = this.content;
48844
-
48845
- // Move the cursor to the end of the input
48846
- document.getSelection().modify("move", "forward", "documentboundary");
48885
+ this.restoreSelection();
48847
48886
  } else {
48848
- this.content = event.target.innerText;
48887
+ this.content = newText;
48849
48888
  this.$emit('update:lastCrumb', this.content);
48889
+ this.$nextTick(() => {
48890
+ this.restoreSelection();
48891
+ });
48850
48892
  }
48851
48893
  }
48852
48894
  }
@@ -48863,8 +48905,8 @@ var ToggleBreadCrumbvue_type_template_id_4c1ca076_staticRenderFns = [];
48863
48905
 
48864
48906
  var ToggleBreadCrumb_component = normalizeComponent(
48865
48907
  breadcrumb_ToggleBreadCrumbvue_type_script_lang_js_,
48866
- ToggleBreadCrumbvue_type_template_id_4c1ca076_render,
48867
- ToggleBreadCrumbvue_type_template_id_4c1ca076_staticRenderFns,
48908
+ ToggleBreadCrumbvue_type_template_id_93f64828_render,
48909
+ ToggleBreadCrumbvue_type_template_id_93f64828_staticRenderFns,
48868
48910
  false,
48869
48911
  null,
48870
48912
  null,