/************************/ /* lineapp_event.js */ /************************/ // stadium var userSelectedObjects = []; var url = getdataurl; var canvas = null; var imageEditor = null; ccpubsub.subscribe("ready", function () { CallAjax(url, {}, null, null, function (res) { getFlexData(res).then(function (returndata) { //received data! //console.log(returndata); var _object, _sub_object; for (var i = 0; i < returndata.canvas.objects.length; i++) { _object = returndata.canvas.objects[i]; if (_object.type == "group") { for (var x = 0; x < _object.objects.length; x++) { _sub_object = returndata.canvas.objects[i].objects[x]; updateOBJbeforeLOAD(_sub_object, returndata.update); } } else { updateOBJbeforeLOAD(_object, returndata.update); } } var obj = returndata.canvas; //setTimeout(function () { imageEditor = new tui.ImageEditor('#tui-image-editor-container', { renderOnAddRemove: false, includeUI: { loadImage: { path: obj.backgroundImage.src, name: 'SampleImage' }, usageStatistics: false, theme: whiteTheme, // or whiteTheme initMenu: 'draw', menuBarPosition: 'left', onReady: function () { if (imageEditor && obj && obj.objects.length > 0) { for (let i = 0, myPromise = Promise.resolve(); i < obj.objects.length; i++) { myPromise = new Promise(function (resolve, reject) { setTimeout(function () { obj.objects[i].selectable = false; obj.objects[i].lockMovementX = true; obj.objects[i].lockMovementY = true; obj.objects[i].hasControls = false; obj.objects[i].lockScaling = true; obj.objects[i].lockRotation = true; //obj.objects[i].objectCaching = false; obj.objects[i].renderOnAddRemove = false; getTUIType(false, obj.objects[i], obj); resolve(i); }, 100); }); myPromise.then(function (value) { if (obj.objects.length == value + 1) { addZoomBtns(); var allObjectsLoaded = setInterval(function () { if (obj.objects.length == canvas._objects.length) { cartPreview(); //HighlightSelectedObjects(); //ungroupallchairs(); visibleCanvas(); deactivateAndRenderAll(); clearInterval(allObjectsLoaded); } }, 100); } }); } } canvas = imageEditor._graphics._canvas; canvas.selection = false; $(document).on({ touchstart: function (e) { canvas.selection = false; canvas.transform = canvas.lowerCanvasEl.style.transform; canvas.istouchscreen = true; }, touchend: function (e) { canvas.selection = true; } }, ".tui-image-editor-canvas-container canvas"); $(document).on("hover", '.tooltip', function (e) { if ($(this).find('.tooltipqty').hasClass('hidden') && window.innerWidth >= 768) { hideTooltip(); } return false; }); $(document).on("click", '.cc-price-table-as-grid .prod-btn-inline', function (e) { if (typeof (e.originalEvent) !== "undefined") { var sku = $(this).closest('.attr-grid-row.row').data().sku; var obj = getObjectBySKU(sku); if (obj) { if ($(this).hasClass('prod-plus-qty')) { if (obj.qty > 0) { addSelectedToList(obj); } } else { var objectIndex = userSelectedObjects.findIndex(object => object.sku == obj.sku); if (objectIndex >= 0) { removeSelectedFromList(obj); } } } } }); if ((window.innerWidth < 768) && ($('.tui-image-editor-canvas-container:first-child canvas').length > 0)) { var el = document.querySelectorAll('.tui-image-editor-canvas-container:first-child canvas'); new PinchZoom.default(el, {}); $('.cc-price-table-as-grid').parent().prepend(''); } canvas.on('mouse:over', function (e) { this.hoverCursor = "default"; }); canvas.on('mouse:wheel', function (opt) { var evt = opt.e; if (evt.altKey === true) { var delta = opt.e.deltaY; var pointer = canvas.getPointer(opt.e); var zoom = canvas.getZoom(); zoom = zoom - delta / 200; if (zoom > 20) zoom = 20; if (zoom < 1) zoom = 1; canvas.zoomToPoint({ x: opt.e.offsetX, y: opt.e.offsetY }, zoom); opt.e.preventDefault(); opt.e.stopPropagation(); var vpt = this.viewportTransform; this.CanvasWasMoved = true; if (delta > 0) { this.viewportTransform = [1, 0, 0, 1, 0, 0]; this.renderAll(); } } }); canvas.on('mouse:down', function (opt) { if (opt.e.type.includes("mouse") && !this.istouchscreen) { var evt = opt.e; this.selection = false; this.isMouseDown = true; this.lastviewportTransform = this.viewportTransform; if (opt.subTargets.length > 0 && opt.subTargets[0].type) { this.lastobjmousedown = opt.subTargets[0].id; } else if (opt.target && opt.target.type && opt.target.id && opt.target.type != "group") { this.lastobjmousedown = opt.target.id; } else { this.lastobjmousedown = null; } if (opt.e.type == "touchstart") { this.transform = this.lowerCanvasEl.style.transform; } //this.discardActiveGroup(); //this.discardActiveObject(); //this.renderAll(); } }); canvas.on('mouse:move', function (opt) { // hideTooltip(); if (opt.e.type.includes("mouse") && !this.istouchscreen /*&& window.innerWidth >= 768*/) { var e = opt.e; var target = opt.target; var tooltip = this.wrapperEl.querySelector('.tooltip'); this.hoverCursor = "default"; this.upperCanvasEl.style.cssText += 'cursor:default !important'; if (this.isMouseDown) { this.lastviewportTransform = this.viewportTransform; this.isDragging = true; this.CanvasWasMoved = true; var top = this.viewportTransform[5] < 0 && e.movementY > 0; var left = this.viewportTransform[4] < 0 && e.movementX > 0; var bottom = (this.height - (this.height * this.getZoom())) < this.viewportTransform[5] && e.movementY < 0; var right = (this.width - (this.width * this.getZoom())) < this.viewportTransform[4] && e.movementX < 0; if (top || bottom) this.viewportTransform[5] += e.movementY; if (left || right) this.viewportTransform[4] += e.movementX; this.renderAll(); } if (opt.subTargets.length > 0 && opt.subTargets[0].type) { var obj = opt.subTargets[0]; if (obj.type === "Tag") { (obj._objects[0].fill != obj.colorStowed) ? this.upperCanvasEl.style.cssText += "cursor:pointer !important" : this.upperCanvasEl.style.cssText += 'cursor:default !important'; } else { this.hoverCursor = "default"; this.upperCanvasEl.style.cssText += 'cursor:default !important'; } } if (target && target.type != "i-text" && target.type != "group" && target.qty > 0) { this.upperCanvasEl.style.cssText += 'cursor:pointer !important'; } if (!this.isMouseDown) { manageTooltip(opt); // if (typeof(this.movementTimer) !== "undefined") { // clearTimeout(this.movementTimer); // } // this.movementTimer = setTimeout(function () // { // manageTooltip(opt); // }, 1000); } // if (tooltip && tooltip.style && !this.isMouseDown) { // if (target && target.type != "i-text") { // if (target.type != "group" && target.qty > 0) { // this.upperCanvasEl.style.cssText += 'cursor:pointer !important'; // showTooltip(opt.e, opt.target, tooltip); // } // else if (opt.subTargets.length > 0 && opt.subTargets[0].type && opt.subTargets[0].type === "Tag" && opt.subTargets[0].qty > 0) { // showTooltip(opt.e, opt.subTargets[0], tooltip); // } // else { // hideTooltip(); // } // } // else { // hideTooltip(); // } // } } }); canvas.on('mouse:up', function (opt) { if (opt.e.type.includes("mouse") && !this.istouchscreen) { if (opt.e.button == 0) { this.isMouseDown = false; this.selection = true; if (this.isDragging) { this.isDragging = false; var objs = this.getObjects(); var group = new fabric.Group(objs, { originX: 'center', originY: 'center' }); this._activeObject = null; this.setActiveGroup(group).renderAll(); this.discardActiveGroup(); this.discardActiveObject(); this.renderAll(); } if (opt.target && opt.target.type && opt.target.type != "i-text") { var lastobjmouseup = null; if (opt.subTargets.length > 0 && opt.subTargets[0].type) { lastobjmouseup = opt.subTargets[0].id; } else if (opt.target.id && opt.target.type != "group") { lastobjmouseup = opt.target.id; } if (this.lastviewportTransform == this.viewportTransform && this.lastobjmousedown && lastobjmouseup && this.lastobjmousedown == lastobjmouseup) { objClicked(opt); } } } } }); $('.tui-image-editor-canvas-container').on('mouseout', function (e) { if (e.relatedTarget && e.relatedTarget.id && e.relatedTarget.id == "stadium-container") { var tooltip = document.querySelector('.tooltip'); if (tooltip) { hideTooltip(); } } }); var timeout; $('.input-group-plus-minus .value-button').mousedown(function (e) { timeout = setInterval(function () { (e.target.classList.contains("increase")) ? increaseValue(e.target.attributes.for.value) : decreaseValue(e.target.attributes.for.value); }, 100); return false; }).mouseup(function () { clearInterval(timeout); return false; }).mouseout(function () { clearInterval(timeout); return false; }); } }, cssMaxWidth: 700, cssMaxHeight: 500 }); canvas = imageEditor._graphics._canvas; canvas.renderOnAddRemove = false; canvas.backgroundColor = obj.background; //canvas.renderAll(); $("#stadium-container").prepend(imageEditor._graphics._canvas.wrapperEl); //deactivateAndRenderAll(); removejscssfile("tui-image-editor.js", "js"); removejscssfile("tui-image-editor.css", "css"); //}, 1000); }); }, null, "GET"); if (/*!isMobile &&*/ window.outerWidth >= 768) { var domString = '
' + '
כרטיסים
' + '
' + '
עגלת קניות
' + '
'; if (!$('.details-rub.choose-items-container .tabs-wrapper').length > 0) { $(domString).insertBefore('#maincontent .productdetails .details-rub.choose-items-container .details-rub-inner>ul'); } var allNameTags = $('.cc-price-table-as-grid .attr-grid-row.row .attr-qty-label-name'); for (var i = 0; i < allNameTags.length; i++) { var nameTagText = $(allNameTags[i]).text(); $(allNameTags[i]).html(""); nameTagText.split(", ").forEach(function (item) { if ($(allNameTags[i]).children().length > 0) { $(allNameTags[i]).append(''); } $(allNameTags[i]).append('' + item + ''); }); } $('.details-rub.choose-items-container .details-rub-inner').prepend('
לחצו כאן להגדלה
'); } $('#maincontent .productdetails .details-rub.choose-items-container .details-rub-inner .tabs-wrapper .tab').on('click', function (e) { if (userSelectedObjects.length > 0) { this.parentElement.querySelector('.active').classList.remove("active"); this.classList.add("active"); var cartdiv = document.querySelector('.cart-preview .cart-not-empty'); (this.dataset.for == "cart") ? cartdiv.classList.remove("hidden") : cartdiv.classList.add("hidden"); } else { cs.toast("אין מוצרים בעגלה"); } }); $(document).on("click touchstart", 'body', function (e) { if (!$(e.target).closest('#stadium-container').length > 0 && e.originalEvent) { hideTooltip(); } }); $(window).scroll(function () { if (window.innerWidth >= 768) { hideTooltip(); } }); $(document).on("click", '.choose-items-container #full-screen', function (e) { $(this).closest('.choose-items-container').toggleClass("full-screen"); return false; }); $(document).on("click", 'body .details-rub.choose-items-container.full-screen #stadium-container .cart-preview .cart-not-empty .button', function (e) { $('.choose-items-container.full-screen').removeClass("full-screen"); $('html, body').animate({ scrollTop: $(".prod-onproduct-customer-details").offset().top - 100 }, 1000); return false; }); //body .details-rub.choose-items-container.full-screen #stadium-container .cart-preview .cart-not-empty .button $('.cc-price-table-as-grid .attr-grid .attr-grid-row .attr-grid-cell-qty').addClass('hidden'); $('.cc-price-table-as-grid .attr-grid-cell-name').on('click', function () { if ($(this).next().hasClass('hidden')) { $('.cc-price-table-as-grid .attr-grid .attr-grid-row .attr-grid-cell-qty').each(function () { if ($(this).find('input').val() == 0) { $(this).addClass('hidden'); } }); $(this).next().toggleClass('hidden'); } else { if ($(this).next().find('input').val() == 0) { $(this).next().toggleClass('hidden'); } } }); }); function getFlexData(res) { return $.getJSON(res.StadiumCanvasCDNUrl).then(function (data) { return { canvas: data, update: res.UsedQtyObjects }; }); } function cartPreview() { var isPreview = false; for (var i = 0; i < canvas._objects.length; i++) { if (canvas._objects[i].type == "group") { for (var x = 0; x < canvas._objects[i]._objects.length; x++) { if (canvas._objects[i]._objects[x].qty > 0) { isPreview = true; } } } else { if (canvas._objects[i].qty > 0) { isPreview = true; } } } if (isPreview && !$('.cart-preview').length > 0) { ($('
', { class: 'cart-preview', html: $('
', { class: 'cart-preview-inner' }).append($('
', { class: 'cart-empty', html: $('
', { class: 'head', html: $('

', {}) }).append($('', { class: 'fas fa-arrow-right' })) })).append($('', { type: 'checkbox', class: 'mobile-cart-preview', name: 'mobile-cart-preview', id: 'mobile-cart-preview' })).append($('