Edit File by line

Deprecated: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in /home/sportsfever/public_html/filemanger/function.php on line 93

Deprecated: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in /home/sportsfever/public_html/filemanger/function.php on line 93

Warning: Undefined array key "page_file_edit_line" in /home/sportsfever/public_html/filemanger/edit_text_line.php on line 32
/home/sportsfe.../httpdocs/wp-conte.../plugins/themify-.../js/editor/componen...
File: constructor.mjs
} else {
[2500] Fix | Delete
content.appendChild(res);
[2501] Fix | Delete
}
[2502] Fix | Delete
} else if (res !== false) {
[2503] Fix | Delete
content.appendChild(res);
[2504] Fix | Delete
}
[2505] Fix | Delete
}
[2506] Fix | Delete
}
[2507] Fix | Delete
data = null;
[2508] Fix | Delete
return content;
[2509] Fix | Delete
},
[2510] Fix | Delete
tabs: {
[2511] Fix | Delete
click: 0,
[2512] Fix | Delete
styleClicked: false,
[2513] Fix | Delete
render(data, self) {
[2514] Fix | Delete
const items = data.options,
[2515] Fix | Delete
tabs_container = createDocumentFragment(),
[2516] Fix | Delete
nav = createElement('ul', 'tb_tab_nav tf_scrollbar'),
[2517] Fix | Delete
isStylingTab=self.clicked === 'styling',
[2518] Fix | Delete
stickyWraper = (isStylingTab && this.styleClicked === false && self.component === 'module') ? createElement('','tb_styling_tab_nav') : null,
[2519] Fix | Delete
tabs = createElement('','tb_tabs tf_rel tf_w'),
[2520] Fix | Delete
isRadio = data.isRadio !== undefined;
[2521] Fix | Delete
let v = null,
[2522] Fix | Delete
first = null;
[2523] Fix | Delete
if (data.class) {
[2524] Fix | Delete
tabs.className += ' ' + data.class;
[2525] Fix | Delete
}
[2526] Fix | Delete
if (isStylingTab) {
[2527] Fix | Delete
this.styleClicked = true;
[2528] Fix | Delete
}
[2529] Fix | Delete
++this.click;
[2530] Fix | Delete
[2531] Fix | Delete
[2532] Fix | Delete
if (isRadio === true) {
[2533] Fix | Delete
v = self.getStyleVal(data.id)??data.default;
[2534] Fix | Delete
if (v !== undefined) {
[2535] Fix | Delete
first = true;
[2536] Fix | Delete
}
[2537] Fix | Delete
nav.className += ' tb_radio_wrap';
[2538] Fix | Delete
if (self.is_repeat === true) {
[2539] Fix | Delete
nav.className += self.is_sort === true ? ' tb_lb_sort_child' : ' tb_lb_option_child';
[2540] Fix | Delete
nav.dataset.inputId = data.id;
[2541] Fix | Delete
} else {
[2542] Fix | Delete
nav.className += ' tb_lb_option';
[2543] Fix | Delete
nav.id = data.id;
[2544] Fix | Delete
}
[2545] Fix | Delete
if(isStylingTab && api.isVisual){
[2546] Fix | Delete
self.styles[data.id] = {prop: data.prop, selector: data.selector};
[2547] Fix | Delete
}
[2548] Fix | Delete
}
[2549] Fix | Delete
for (let k in items) {
[2550] Fix | Delete
let item=items[k],
[2551] Fix | Delete
id = item.href || ('tb_' + this.click + '_' + k),
[2552] Fix | Delete
li = createElement('li'),
[2553] Fix | Delete
a = createElement(isRadio === true?'label':'a',{'data-id':id,class:(item.class || '')}),
[2554] Fix | Delete
div = createElement('',{id:id,class: 'tb_tab tf_hide'}),
[2555] Fix | Delete
opt = item.options || item;
[2556] Fix | Delete
[2557] Fix | Delete
if (item.label !== '') {
[2558] Fix | Delete
a.textContent = i18n[item.label]??item.label??i18n[k];
[2559] Fix | Delete
}
[2560] Fix | Delete
if (item.icon !== undefined) {
[2561] Fix | Delete
a.appendChild(api.Helper.getIcon(item.icon));
[2562] Fix | Delete
}
[2563] Fix | Delete
if (item.title !== undefined) {
[2564] Fix | Delete
a.title = item.title;
[2565] Fix | Delete
}
[2566] Fix | Delete
if (isRadio === true) {
[2567] Fix | Delete
let input = createElement('input',{type:'radio',class:'tb_radio_tab_input',name:data.id,value:k});
[2568] Fix | Delete
if (v === k || v === 'tb_' + k) {
[2569] Fix | Delete
input.checked = true;
[2570] Fix | Delete
}
[2571] Fix | Delete
a.className = 'tb_radio_tab_label';
[2572] Fix | Delete
a.tfOn('change', self.switchTabs, {passive: true})
[2573] Fix | Delete
.appendChild(input);
[2574] Fix | Delete
if(isStylingTab && api.isVisual){
[2575] Fix | Delete
self._initControl(input, {...data,type:'radio'});
[2576] Fix | Delete
}
[2577] Fix | Delete
}
[2578] Fix | Delete
else {
[2579] Fix | Delete
a.tfOn(_CLICK_, self.switchTabs, {passive: true})
[2580] Fix | Delete
.href = 'javascript:;';
[2581] Fix | Delete
}
[2582] Fix | Delete
if (first === null || v === k || v === 'tb_' + k) {
[2583] Fix | Delete
first = true;
[2584] Fix | Delete
li.className = 'current';
[2585] Fix | Delete
div.appendChild(self.create(opt));
[2586] Fix | Delete
opt = null;
[2587] Fix | Delete
div.style.display = 'block';
[2588] Fix | Delete
[2589] Fix | Delete
} else {
[2590] Fix | Delete
div.tfOn('tb_builder_tabsactive', function () {
[2591] Fix | Delete
this.appendChild(self.create(opt));
[2592] Fix | Delete
self._setUpEditors();
[2593] Fix | Delete
self.callbacks();
[2594] Fix | Delete
opt = null;
[2595] Fix | Delete
}, {once: true, passive: true});
[2596] Fix | Delete
}
[2597] Fix | Delete
[2598] Fix | Delete
li.appendChild(a);
[2599] Fix | Delete
nav.appendChild(li);
[2600] Fix | Delete
tabs_container.appendChild(div);
[2601] Fix | Delete
}
[2602] Fix | Delete
if (stickyWraper !== null && self._options?.styling?.options?.type==='tabs') {
[2603] Fix | Delete
stickyWraper.appendChild(nav);
[2604] Fix | Delete
tabs.appendChild(stickyWraper);
[2605] Fix | Delete
} else {
[2606] Fix | Delete
tabs.appendChild(nav);
[2607] Fix | Delete
}
[2608] Fix | Delete
tabs.appendChild(tabs_container);
[2609] Fix | Delete
setTimeout(self.callbacks.bind(self), 5);
[2610] Fix | Delete
return tabs;
[2611] Fix | Delete
}
[2612] Fix | Delete
},
[2613] Fix | Delete
group: {
[2614] Fix | Delete
render(data, self) {
[2615] Fix | Delete
const wr = createElement(),
[2616] Fix | Delete
label = createElement(),
[2617] Fix | Delete
f = createDocumentFragment(),
[2618] Fix | Delete
options = self.create(data.options);
[2619] Fix | Delete
if (data.label !== undefined) {
[2620] Fix | Delete
label.textContent = i18n[data.label] || data.label;
[2621] Fix | Delete
}
[2622] Fix | Delete
if (data.wrap_class !== undefined) {
[2623] Fix | Delete
wr.className = data.wrap_class;
[2624] Fix | Delete
}
[2625] Fix | Delete
wr.classList.add('tb_field_group');
[2626] Fix | Delete
if (data.id) {
[2627] Fix | Delete
wr.classList.add(data.id);
[2628] Fix | Delete
}
[2629] Fix | Delete
if (data.display === 'accordion') {
[2630] Fix | Delete
wr.classList.add('tb_field_group_acc');
[2631] Fix | Delete
const content = createElement('','tf_hide tb_field_group_content'),
[2632] Fix | Delete
icon = api.Helper.getIcon('ti-angle-up');
[2633] Fix | Delete
label.className = 'tb_style_toggle tb_closed';
[2634] Fix | Delete
label.appendChild(icon);
[2635] Fix | Delete
content.appendChild(options);
[2636] Fix | Delete
label.tfOn(_CLICK_, () => {
[2637] Fix | Delete
$(content).slideToggle();
[2638] Fix | Delete
label.classList.toggle('tb_closed');
[2639] Fix | Delete
});
[2640] Fix | Delete
wr.append(label, content);
[2641] Fix | Delete
} else {
[2642] Fix | Delete
if (data.label !== undefined) {
[2643] Fix | Delete
label.className = 'tb_label';
[2644] Fix | Delete
if (data.help !== undefined && data.label !== '') {
[2645] Fix | Delete
label.className += +' contains-help';
[2646] Fix | Delete
label.appendChild(this.help(data.help));
[2647] Fix | Delete
}
[2648] Fix | Delete
f.appendChild(label);
[2649] Fix | Delete
}
[2650] Fix | Delete
wr.appendChild(options);
[2651] Fix | Delete
}
[2652] Fix | Delete
f.appendChild(wr);
[2653] Fix | Delete
return f;
[2654] Fix | Delete
}
[2655] Fix | Delete
},
[2656] Fix | Delete
builder: {
[2657] Fix | Delete
render(data, self) {
[2658] Fix | Delete
const fr = createDocumentFragment(),
[2659] Fix | Delete
wrapper = createElement('',{class:'tb_row_js_wrapper tf_rel tb_lb_option',id:data.id}),
[2660] Fix | Delete
add_new = createElement('button',{class:'add_new tf_plus_icon tf_icon_btn tf_rel',type:'button'},i18n[ data.new_row ] || i18n.new_row),
[2661] Fix | Delete
_this = this,
[2662] Fix | Delete
origRepeat = self.is_repeat === true;
[2663] Fix | Delete
if (data.wrap_class !== undefined) {
[2664] Fix | Delete
wrapper.className += ' ' + data.wrap_class;
[2665] Fix | Delete
}
[2666] Fix | Delete
self.is_repeat = true;
[2667] Fix | Delete
if (self.values[data.id] !== undefined) {
[2668] Fix | Delete
const values = self.values[data.id].slice(),
[2669] Fix | Delete
orig = api.Helper.cloneObject(self.values);
[2670] Fix | Delete
for (let i = 0; i < values.length; ++i) {
[2671] Fix | Delete
self.values = values[i] || {};
[2672] Fix | Delete
wrapper.appendChild(this._builderFields(data, self));
[2673] Fix | Delete
}
[2674] Fix | Delete
self.values = orig;
[2675] Fix | Delete
} else {
[2676] Fix | Delete
wrapper.appendChild(this._builderFields(data, self));
[2677] Fix | Delete
}
[2678] Fix | Delete
wrapper.appendChild(add_new);
[2679] Fix | Delete
fr.appendChild(wrapper);
[2680] Fix | Delete
setTimeout(() => {
[2681] Fix | Delete
_this._sortable(wrapper, self);
[2682] Fix | Delete
add_new.tfOn(_CLICK_, function (e) {
[2683] Fix | Delete
e.stopPropagation();
[2684] Fix | Delete
const isRepeat = self.is_repeat === true,
[2685] Fix | Delete
orig = api.Helper.cloneObject(self.values),
[2686] Fix | Delete
container = this.parentNode;
[2687] Fix | Delete
self.is_repeat = true;
[2688] Fix | Delete
self.values = api.activeModel.getPreviewSettings?(api.activeModel.getPreviewSettings()?.[container.id]?.[0] || {}):{};
[2689] Fix | Delete
const item = _this._builderFields(data, self);
[2690] Fix | Delete
this.before(item);
[2691] Fix | Delete
api.activeModel.addRow?.(item);
[2692] Fix | Delete
setTimeout(() => {
[2693] Fix | Delete
self._setUpEditors();
[2694] Fix | Delete
self.callbacks();
[2695] Fix | Delete
Themify.trigger('tb_repeatable_add_new', item);
[2696] Fix | Delete
Themify.triggerEvent(container, 'added');
[2697] Fix | Delete
}, 5);
[2698] Fix | Delete
self.control.preview(container, null, {repeat: true});
[2699] Fix | Delete
self.is_repeat = isRepeat;
[2700] Fix | Delete
self.values = orig;
[2701] Fix | Delete
}, {passive: true});
[2702] Fix | Delete
}, 1500);
[2703] Fix | Delete
self.is_repeat = origRepeat;
[2704] Fix | Delete
return fr;
[2705] Fix | Delete
},
[2706] Fix | Delete
_builderFields(data, self) {
[2707] Fix | Delete
const _this = this,
[2708] Fix | Delete
repeat = createElement('','tb_repeatable_field'),
[2709] Fix | Delete
top = createElement('','tb_repeatable_field_top tf_rel tf_box tf_textl'),
[2710] Fix | Delete
menu = createElement('', 'row_menu'),
[2711] Fix | Delete
icon = createElement('',{class:'menu_icon',tabindex:-1}),
[2712] Fix | Delete
ul = createElement('ul','tb_down'),
[2713] Fix | Delete
_duplicate = createElement('li','tb_duplicate_row',i18n.duplicate),
[2714] Fix | Delete
_delete = createElement('li','tb_delete_row tf_close',i18n.delete),
[2715] Fix | Delete
toggle = createElement('','tb_arrow tb_toggle_row'),
[2716] Fix | Delete
content = createElement('','tb_repeatable_field_content'),
[2717] Fix | Delete
up = createElement('',{class:'tb_arrow tb_up_row',title:i18n.up}),
[2718] Fix | Delete
down = createElement('',{class:'tb_arrow tb_down_row',title:i18n.down});
[2719] Fix | Delete
[2720] Fix | Delete
content.appendChild(self.create(data.options));
[2721] Fix | Delete
ul.append(_duplicate, _delete);
[2722] Fix | Delete
menu.append(icon, ul);
[2723] Fix | Delete
top.append(menu, up, down, toggle);
[2724] Fix | Delete
repeat.append(top, content);
[2725] Fix | Delete
top.tfOn(_CLICK_, function (e) {
[2726] Fix | Delete
const target = e.target,
[2727] Fix | Delete
cl = target.classList,
[2728] Fix | Delete
repeatContainer = this.parentNode;
[2729] Fix | Delete
if (cl.contains('tb_delete_row')) {
[2730] Fix | Delete
const p = target.closest('.tb_row_js_wrapper');
[2731] Fix | Delete
_this._delete(target, p);
[2732] Fix | Delete
self.control.preview(p, null, {repeat: true});
[2733] Fix | Delete
}
[2734] Fix | Delete
else if (cl.contains('tb_duplicate_row')) {
[2735] Fix | Delete
const orig = api.Helper.cloneObject(self.values),
[2736] Fix | Delete
isRepeat = self.is_repeat === true;
[2737] Fix | Delete
self.is_repeat = true;
[2738] Fix | Delete
self.values = api.Forms.serialize(repeatContainer, true, true);
[2739] Fix | Delete
api.activeModel.duplicateRow?.(self.values, orig, repeatContainer);
[2740] Fix | Delete
const item = _this._builderFields(data, self);
[2741] Fix | Delete
repeatContainer.after(item);
[2742] Fix | Delete
self.values = orig;
[2743] Fix | Delete
setTimeout(() => {
[2744] Fix | Delete
self._setUpEditors();
[2745] Fix | Delete
self.callbacks();
[2746] Fix | Delete
setTimeout(() => {
[2747] Fix | Delete
Themify.triggerEvent(repeatContainer.parentNode, 'duplicate');
[2748] Fix | Delete
Themify.trigger('tb_repeatable_duplicate', item);
[2749] Fix | Delete
self.control.preview(repeatContainer, null, {repeat: true});
[2750] Fix | Delete
self.is_repeat = isRepeat;
[2751] Fix | Delete
}, 5);
[2752] Fix | Delete
}, 5);
[2753] Fix | Delete
} else if (cl.contains('tb_toggle_row')) {
[2754] Fix | Delete
_this._toggle(target);
[2755] Fix | Delete
} else if (cl.contains('tb_arrow')) {
[2756] Fix | Delete
_this._move(target, self);
[2757] Fix | Delete
}
[2758] Fix | Delete
}, {passive: true});
[2759] Fix | Delete
[2760] Fix | Delete
return repeat;
[2761] Fix | Delete
},
[2762] Fix | Delete
_sortable(el, self) {
[2763] Fix | Delete
el.tfOn('pointerdown', function (e) {
[2764] Fix | Delete
if (e.button === 0 && e.target.classList.contains('tb_repeatable_field_top')) {
[2765] Fix | Delete
e.stopImmediatePropagation();
[2766] Fix | Delete
let timer,
[2767] Fix | Delete
timeout,
[2768] Fix | Delete
theLast,
[2769] Fix | Delete
dir,
[2770] Fix | Delete
toggleCollapse,
[2771] Fix | Delete
prevY = 0,
[2772] Fix | Delete
holder,
[2773] Fix | Delete
holderHeight,
[2774] Fix | Delete
scrollbar,
[2775] Fix | Delete
editors = {},
[2776] Fix | Delete
doc = this.ownerDocument,
[2777] Fix | Delete
item = e.target.closest('.tb_repeatable_field'),
[2778] Fix | Delete
index,
[2779] Fix | Delete
viewMin,
[2780] Fix | Delete
viewMax,
[2781] Fix | Delete
parentHeight,
[2782] Fix | Delete
isWorking = false,
[2783] Fix | Delete
parentNode;
[2784] Fix | Delete
const scrollDrag = y => {
[2785] Fix | Delete
if (!scrollbar) {
[2786] Fix | Delete
return;
[2787] Fix | Delete
}
[2788] Fix | Delete
if (y >= viewMax || y <= viewMin) {
[2789] Fix | Delete
if (isWorking === false) {
[2790] Fix | Delete
isWorking = true;
[2791] Fix | Delete
const k = ~~(viewMax / 10);
[2792] Fix | Delete
scrollbar.scrollTop += y <= viewMin ? (-1) * k : k;
[2793] Fix | Delete
clearTimeout(timeout);
[2794] Fix | Delete
timeout = setTimeout(() => {
[2795] Fix | Delete
requestAnimationFrame(() => {
[2796] Fix | Delete
if (isWorking) {
[2797] Fix | Delete
isWorking = false;
[2798] Fix | Delete
scrollDrag(y);
[2799] Fix | Delete
}
[2800] Fix | Delete
});
[2801] Fix | Delete
}, k * 2);
[2802] Fix | Delete
}
[2803] Fix | Delete
} else {
[2804] Fix | Delete
clearTimeout(timeout);
[2805] Fix | Delete
isWorking = false;
[2806] Fix | Delete
}
[2807] Fix | Delete
},
[2808] Fix | Delete
move = e => {
[2809] Fix | Delete
e.stopImmediatePropagation();
[2810] Fix | Delete
timer = requestAnimationFrame(() => {
[2811] Fix | Delete
if (!doc) {
[2812] Fix | Delete
return;
[2813] Fix | Delete
}
[2814] Fix | Delete
const {clientX:x,clientY:y} = e,
[2815] Fix | Delete
moveTo = e.type === 'mousemove' ? e.target : doc.elementFromPoint(x, y),
[2816] Fix | Delete
clientY = y - holderHeight - parentNode.getBoundingClientRect().top;
[2817] Fix | Delete
if (clientY > 0 && clientY < parentHeight) {
[2818] Fix | Delete
holder.style.transform = 'translateY(' + clientY + 'px)';
[2819] Fix | Delete
scrollDrag(y);
[2820] Fix | Delete
if (y >= viewMax || y <= viewMin) {
[2821] Fix | Delete
return;
[2822] Fix | Delete
}
[2823] Fix | Delete
if (moveTo !== item && moveTo?.classList.contains('tb_repeatable_field')) {
[2824] Fix | Delete
const side = y > prevY ? 'bottom' : 'top';
[2825] Fix | Delete
if (dir !== side || theLast !== moveTo) {
[2826] Fix | Delete
side === 'bottom' ? moveTo.after(item) : moveTo.before(item);
[2827] Fix | Delete
}
[2828] Fix | Delete
theLast = moveTo;
[2829] Fix | Delete
dir = side;
[2830] Fix | Delete
}
[2831] Fix | Delete
prevY = y;
[2832] Fix | Delete
} else {
[2833] Fix | Delete
scrollDrag(y);
[2834] Fix | Delete
}
[2835] Fix | Delete
});
[2836] Fix | Delete
},
[2837] Fix | Delete
start = () => {
[2838] Fix | Delete
topBodyCl.add('tb_start_animate', 'tb_move_drag');
[2839] Fix | Delete
parentNode = item.parentNode;
[2840] Fix | Delete
parentNode.classList.add('tb_sort_start');
[2841] Fix | Delete
if (typeof tinyMCE !== 'undefined') {
[2842] Fix | Delete
const items = parentNode.tfClass('tb_lb_wp_editor');
[2843] Fix | Delete
for (let i = items.length - 1; i > -1; --i) {
[2844] Fix | Delete
let id = items[i].id;
[2845] Fix | Delete
editors[id] = tinymce.get(id).getContent();
[2846] Fix | Delete
tinyMCE.execCommand('mceRemoveEditor', false, id);
[2847] Fix | Delete
}
[2848] Fix | Delete
}
[2849] Fix | Delete
index = Themify.convert(parentNode.children).indexOf(item);
[2850] Fix | Delete
if (!item.classList.contains('collapsed')) {
[2851] Fix | Delete
item.tfClass('tb_repeatable_field_content')[0].style.display = 'none';
[2852] Fix | Delete
item.classList.add('collapsed');
[2853] Fix | Delete
toggleCollapse = true;
[2854] Fix | Delete
}
[2855] Fix | Delete
holder = item.cloneNode(true);
[2856] Fix | Delete
holder.tfClass('tb_repeatable_field_content')[0].remove();
[2857] Fix | Delete
scrollbar = item.closest('.tf_scrollbar');
[2858] Fix | Delete
holder.className += ' tb_sort_handler';
[2859] Fix | Delete
item.classList.add('tb_current_sort');
[2860] Fix | Delete
item.after(holder);
[2861] Fix | Delete
holderHeight = holder.getBoundingClientRect().height / 2;
[2862] Fix | Delete
parentHeight = parentNode.offsetHeight;
[2863] Fix | Delete
const box = scrollbar.getBoundingClientRect();
[2864] Fix | Delete
viewMin = box.top;
[2865] Fix | Delete
viewMax = box.bottom - 40;
[2866] Fix | Delete
},
[2867] Fix | Delete
up = function (e) {
[2868] Fix | Delete
this.tfOff('pointermove', start, {passive: true, once: true})
[2869] Fix | Delete
.tfOff('pointermove', move, {passive: true})
[2870] Fix | Delete
.tfOff('lostpointercapture pointerup', up, {passive: true, once: true});
[2871] Fix | Delete
if (parentNode) {
[2872] Fix | Delete
e.stopImmediatePropagation();
[2873] Fix | Delete
cancelAnimationFrame(timer);
[2874] Fix | Delete
clearTimeout(timeout);
[2875] Fix | Delete
holder?.remove();
[2876] Fix | Delete
if (typeof tinyMCE !== 'undefined') {
[2877] Fix | Delete
for (let id in editors) {
[2878] Fix | Delete
tinyMCE.execCommand('mceAddEditor', false, id);
[2879] Fix | Delete
tinymce.get(id).setContent(editors[id]);
[2880] Fix | Delete
}
[2881] Fix | Delete
}
[2882] Fix | Delete
item.classList.remove('tb_current_sort');
[2883] Fix | Delete
if (toggleCollapse) {
[2884] Fix | Delete
item.classList.remove('collapsed');
[2885] Fix | Delete
item.tfClass('tb_repeatable_field_content')[0].style.display = '';
[2886] Fix | Delete
}
[2887] Fix | Delete
const newIndex = Themify.convert(parentNode.children).indexOf(item);
[2888] Fix | Delete
if (index !== newIndex) {
[2889] Fix | Delete
api.activeModel.sortRow?.(item, index, newIndex);
[2890] Fix | Delete
}
[2891] Fix | Delete
requestAnimationFrame(() => {
[2892] Fix | Delete
if (index !== newIndex) {
[2893] Fix | Delete
self.control.preview(parentNode, null, {repeat: true});
[2894] Fix | Delete
Themify.triggerEvent(parentNode, 'sortable');
[2895] Fix | Delete
}
[2896] Fix | Delete
parentNode.classList.remove('tb_sort_start');
[2897] Fix | Delete
parentNode = null;
[2898] Fix | Delete
});
[2899] Fix | Delete
}
[2900] Fix | Delete
topBodyCl.remove('tb_start_animate', 'tb_move_drag');
[2901] Fix | Delete
theLast = holder = toggleCollapse = dir = index = prevY = editors = scrollbar = doc = parentHeight = holderHeight = isWorking = viewMin = viewMax = item = timer = timeout = null;
[2902] Fix | Delete
};
[2903] Fix | Delete
this.tfOn('lostpointercapture pointerup', up, {passive: true, once: true})
[2904] Fix | Delete
.tfOn('pointermove', start, {passive: true, once: true})
[2905] Fix | Delete
.tfOn('pointermove', move, {passive: true})
[2906] Fix | Delete
.setPointerCapture(e.pointerId);
[2907] Fix | Delete
}
[2908] Fix | Delete
}, {passive: true});
[2909] Fix | Delete
},
[2910] Fix | Delete
_move(el, self) {
[2911] Fix | Delete
const r = el.closest('.tb_repeatable_field'),
[2912] Fix | Delete
dir = el.classList.contains('tb_up_row') ? 'top' : 'bottom',
[2913] Fix | Delete
next = dir === 'bottom' ? r.nextElementSibling : r.previousElementSibling,
[2914] Fix | Delete
p = r.parentNode,
[2915] Fix | Delete
index = Themify.convert(p.children).indexOf(r);
[2916] Fix | Delete
dir === 'bottom' ? next.after(r) : next.before(r);
[2917] Fix | Delete
api.activeModel.sortRow?.(r, index, Themify.convert(p.children).indexOf(r));
[2918] Fix | Delete
requestAnimationFrame(() => {
[2919] Fix | Delete
p.closest('.tf_scrollbar').scroll({
[2920] Fix | Delete
top: r.offsetTop + p.offsetTop + 10
[2921] Fix | Delete
});
[2922] Fix | Delete
self.control.preview(p, null, {repeat: true});
[2923] Fix | Delete
Themify.triggerEvent(p, 'sortable');
[2924] Fix | Delete
});
[2925] Fix | Delete
},
[2926] Fix | Delete
_toggle(el) {
[2927] Fix | Delete
$(el).closest('.tb_repeatable_field').toggleClass('collapsed').find('.tb_repeatable_field_content').slideToggle();
[2928] Fix | Delete
},
[2929] Fix | Delete
_delete(el, p) {
[2930] Fix | Delete
const item = el.closest('.tb_repeatable_field');
[2931] Fix | Delete
api.activeModel.deleteRow?.(item, p);
[2932] Fix | Delete
Themify.trigger('tb_repeatable_delete', item);
[2933] Fix | Delete
item.remove();
[2934] Fix | Delete
Themify.triggerEvent(p, 'delete');
[2935] Fix | Delete
}
[2936] Fix | Delete
},
[2937] Fix | Delete
accordion: {
[2938] Fix | Delete
_expand(item, data, self) {
[2939] Fix | Delete
item.tfOn(_CLICK_, function (e) {
[2940] Fix | Delete
let wrap = this.tfClass('tb_accordion_fields_options')[0];
[2941] Fix | Delete
if (wrap === undefined) {
[2942] Fix | Delete
wrap =createElement('','tb_toggleable_fields_options tb_accordion_fields_options tf_w');
[2943] Fix | Delete
wrap.style.display = 'none';
[2944] Fix | Delete
self.is_repeat = true;
[2945] Fix | Delete
let orig = null;
[2946] Fix | Delete
const pid = this.parentNode.closest('.tb_accordion_fields').id,
[2947] Fix | Delete
id = this.dataset.id;
[2948] Fix | Delete
if (self.values[pid]?.[id]?.val !== undefined) {
[2949] Fix | Delete
orig = api.Helper.cloneObject(self.values);
[2950] Fix | Delete
self.values = self.values[pid][id].val;
[2951] Fix | Delete
}
[2952] Fix | Delete
wrap.appendChild(self.create(data.options));
[2953] Fix | Delete
this.appendChild(wrap);
[2954] Fix | Delete
self._setUpEditors();
[2955] Fix | Delete
self.callbacks();
[2956] Fix | Delete
if (orig !== null) {
[2957] Fix | Delete
self.values = orig;
[2958] Fix | Delete
}
[2959] Fix | Delete
self.is_repeat = orig = null;
[2960] Fix | Delete
} else if (wrap.contains(e.target)) {
[2961] Fix | Delete
return;
[2962] Fix | Delete
}
[2963] Fix | Delete
e.stopPropagation();
[2964] Fix | Delete
e.preventDefault();
[2965] Fix | Delete
if (this.classList.contains('tb_closed')) {
[2966] Fix | Delete
$(wrap).slideDown(function () {
[2967] Fix | Delete
this.parentNode.classList.remove('tb_closed');
[2968] Fix | Delete
});
[2969] Fix | Delete
} else {
[2970] Fix | Delete
$(wrap).slideUp(function () {
[2971] Fix | Delete
this.parentNode.classList.add('tb_closed');
[2972] Fix | Delete
});
[2973] Fix | Delete
}
[2974] Fix | Delete
});
[2975] Fix | Delete
},
[2976] Fix | Delete
_resetMotion(item, self) {
[2977] Fix | Delete
if (self.values.motion_effects !== undefined) {
[2978] Fix | Delete
for (let prop in self.values.motion_effects) {
[2979] Fix | Delete
self.values.motion_effects[prop].val = {[prop + '_dir']: ''};
[2980] Fix | Delete
}
[2981] Fix | Delete
}
[2982] Fix | Delete
const tab = item.parentNode.querySelector('#motion_effects'),
[2983] Fix | Delete
select = tab.tfTag('select'),
[2984] Fix | Delete
boxes = tab.tfClass('tb_position_box_wrapper'),
[2985] Fix | Delete
sliders = tab.tfClass('tb_slider_wrapper'),
[2986] Fix | Delete
ranges = tab.tfClass('tb_range');
[2987] Fix | Delete
for (let i = select.length - 1; i > -1; --i) {
[2988] Fix | Delete
select[i].selectedIndex = 0;
[2989] Fix | Delete
Themify.triggerEvent(select[i], 'change');
[2990] Fix | Delete
}
[2991] Fix | Delete
for (let i = ranges.length - 1; i > -1; --i) {
[2992] Fix | Delete
ranges[i].value = ranges[i].min ??'';
[2993] Fix | Delete
}
[2994] Fix | Delete
for (let i = boxes.length - 1; i > -1; --i) {
[2995] Fix | Delete
boxes[i].tfTag('input')[0].value = '50,50';
[2996] Fix | Delete
boxes[i].tfClass('tb_position_box_handle')[0].removeAttribute('style');
[2997] Fix | Delete
}
[2998] Fix | Delete
for (let i = sliders.length - 1; i > -1; --i) {
[2999] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function