diff --git a/app/Http/Controllers/Admin/TransportController.php b/app/Http/Controllers/Admin/TransportController.php index 58f6d79..1dc7f31 100755 --- a/app/Http/Controllers/Admin/TransportController.php +++ b/app/Http/Controllers/Admin/TransportController.php @@ -12,9 +12,11 @@ class TransportController extends Controller { function createOrUpdate(Transport $transport,TransportSaveRequest $request){ + $transport->price = $request->price; $transport->title = $request->title; $transport->description = $request->description; + $transport->is_default = $request->has('is_default'); if ($request->has('is_default')){ Transport::where('is_default')->update([ 'is_default' => 0, diff --git a/public/css/theme.css b/public/css/theme.css index c60a39c..043f781 100755 --- a/public/css/theme.css +++ b/public/css/theme.css @@ -11437,6 +11437,48 @@ h3.textt{ transform: scale(1); } } +.color-pick .color { + display: inline-block; + opacity: 0.75; + margin-right: 4px; + border-radius: 15px; + border: 1px dotted silver; +} + +.color-pick .color span { + display: inline-block; + mix-blend-mode: darken; + font-size: 11px; + padding-right: 4px; + padding-left: 4px; +} + +.color-pick .color .cl { + float: left; + min-width: 25px; + height: 25px; + display: inline-block; + border-radius: 50%; + position: relative; + cursor: pointer; +} + +.color-pick .color.active { + opacity: 1; + border: 1px solid black; + position: relative; + padding-right: 15px; +} + +.color-pick .color.active .cl:after { + content: "✓"; + right: 20%; + top: 5%; + position: absolute; + color: white; + mix-blend-mode: difference; +} + .x-mega-menu { background: #eeeeee; display: grid; diff --git a/public/js/theme.js b/public/js/theme.js index 7c15d6d..7bf529c 100755 --- a/public/js/theme.js +++ b/public/js/theme.js @@ -449,7 +449,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _js_ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var x_mega_menu_dist_x_mega_menu_min__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! x-mega-menu/dist/x-mega-menu.min */ \"./node_modules/x-mega-menu/dist/x-mega-menu.min.js\");\n/* harmony import */ var x_mega_menu_dist_x_mega_menu_min__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(x_mega_menu_dist_x_mega_menu_min__WEBPACK_IMPORTED_MODULE_0__);\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n// require('hc-offcanvas-nav/dist/hc-offcanvas-nav');\n// import xMegaMenu from 'x-mega-menu/src/x-mega-menu';\n\nvar xMegaMenu = window.xMegaMenu = (x_mega_menu_dist_x_mega_menu_min__WEBPACK_IMPORTED_MODULE_0___default().xMegaMenu);\n\nfunction CopyToClipboard(containerid) {\n if (window.getSelection) {\n if (window.getSelection().empty) {\n // Chrome\n window.getSelection().empty();\n } else if (window.getSelection().removeAllRanges) {\n // Firefox\n window.getSelection().removeAllRanges();\n }\n } else if (document.selection) {\n // IE?\n document.selection.empty();\n }\n\n if (document.selection) {\n var range = document.body.createTextRange();\n range.moveToElementText(document.getElementById(containerid));\n range.select().createTextRange();\n document.execCommand(\"copy\");\n } else if (window.getSelection) {\n var range = document.createRange();\n range.selectNode(document.getElementById(containerid));\n window.getSelection().addRange(range);\n document.execCommand(\"copy\");\n }\n\n alertify.success('کپی شد');\n}\n\nfunction commafy(num) {\n var str = num.toString().split('.');\n\n if (str[0].length >= 4) {\n str[0] = str[0].replace(/(\\d)(?=(\\d{3})+$)/g, '$1,');\n }\n\n if (str[1] && str[1].length >= 4) {\n str[1] = str[1].replace(/(\\d{3})/g, '$1,');\n }\n\n return str.join('.');\n}\n\nvar qnn, images, sizes;\njQuery(function ($) {\n try {\n xMegaMenu('#mega-menu', {\n responseWidth: 1124,\n isRtl: true,\n mainTitle: appName,\n blurEffect: true,\n disableLinks: false\n });\n } catch (e) {\n console.log(e.message);\n }\n\n try {\n $(\".xzoom, .xzoom-gallery\").xzoom({\n tint: '#333',\n Xoffset: 15\n });\n } catch (e) {}\n\n $(window).on('load', function () {\n setTimeout(function () {\n $('#preloader').slideUp(700); // let max = 150 ;\n // for( const b of $(\".box\")) {\n // if ($(b).height() > max ){\n // max= $(b).height();\n // }\n // }\n // $('.box').height(max);\n // $(\"#favs .box\").removeAttr('style');\n }, 100);\n });\n setTimeout(function () {\n $('#preloader').slideUp(700);\n }, 100);\n setTimeout(function () {\n $('#preloader').slideUp(700);\n }, 10000);\n $(\"#toggle-side\").bind('click', function () {\n $('aside > div').slideToggle(300);\n });\n $('.owl1').owlCarousel({\n loop: true,\n margin: 0,\n responsiveClass: true,\n // autoplay: true,\n autoplayTimeout: 5000,\n autoplayHoverPause: true,\n item: 5,\n responsive: {\n 0: {\n nav: false,\n items: 2\n },\n 600: {\n items: 2,\n nav: false,\n loop: false\n },\n 1000: {\n items: 3,\n nav: false,\n loop: false\n },\n 1300: {\n items: 5,\n nav: false,\n loop: false\n }\n }\n });\n $('#owl2').owlCarousel({\n loop: true,\n margin: 0,\n responsiveClass: true,\n autoplay: true,\n autoplayTimeout: 5000,\n autoplayHoverPause: true,\n item: 3,\n responsive: {\n 0: {\n nav: false,\n items: 1\n },\n 600: {\n items: 2,\n nav: false,\n loop: false\n },\n 1000: {\n items: 3,\n nav: false,\n loop: false\n }\n }\n });\n $('#thumbs').owlCarousel({\n loop: false,\n margin: 4,\n responsiveClass: true,\n autoplay: true,\n autoplayTimeout: 5000,\n autoplayHoverPause: true,\n items: 4 // nav: true,\n\n });\n $('.owl-single-item').owlCarousel({\n loop: true,\n margin: 0,\n responsiveClass: true,\n autoplay: true,\n autoplayTimeout: 5000,\n autoplayHoverPause: true,\n items: 1 // nav: true,\n\n });\n $('#owlx1').owlCarousel({\n loop: true,\n margin: 15,\n responsiveClass: true,\n autoplay: true,\n autoplayTimeout: 5000,\n autoplayHoverPause: true,\n responsive: {\n 0: {\n nav: false,\n items: 1\n },\n 600: {\n items: 2,\n nav: false,\n loop: false\n },\n 1000: {\n items: 3,\n nav: false,\n loop: false\n },\n 1300: {\n items: 4,\n nav: false,\n loop: false\n }\n }\n });\n $('#owl3').owlCarousel({\n loop: false,\n margin: 0,\n responsiveClass: true,\n autoplay: true,\n autoplayTimeout: 5000,\n autoplayHoverPause: true,\n items: 1\n });\n $('.owl-sq').owlCarousel({\n loop: true,\n margin: 0,\n responsiveClass: true,\n autoplay: true,\n autoplayTimeout: 5000,\n responsive: {\n 0: {\n items: 2,\n nav: false\n },\n 600: {\n items: 2\n },\n 1000: {\n items: 3\n },\n 1300: {\n items: 6\n }\n }\n });\n $(\"#cp-deteail\").bind('click', function () {\n CopyToClipboard('tab-analyze');\n });\n\n var axiosError = function axiosError(err) {\n if (err.response.status == 401) {\n alertify.error('Authenticnation Error'); // window.location.href = '/#/login';\n } else if (err.response.status == 422) {\n // console.log(err.response.data.errors);\n for (var k in err.response.data.errors) {\n var er = err.response.data.errors[k];\n alertify.error(k + ' : ' + er[0]);\n }\n } else {\n alertify.error('Error' + err.response.status + ': ' + err.response.data.message);\n }\n };\n\n $(\"#filtering .btn\").bind('click', function () {\n $(\"#filtering .btn\").removeClass('active');\n $(this).addClass('active');\n var cls = $(this).data('cat');\n\n if (cls == 'all') {\n $(\"#da-thumbs .item\").slideDown(900);\n } else {\n $(\"#da-thumbs .item\").slideUp(600, function () {\n setTimeout(function () {\n $(\"#da-thumbs .item.\" + cls).slideDown(513);\n }, 100);\n });\n }\n });\n $(\".fav\").bind('click', function () {\n var url = $(\"#fav-toggle\").val() + '/' + $(this).data('id');\n var self = this;\n axios.get(url).then(function (e) {\n if (e.data.OK) {\n alertify.success(e.data.msg);\n\n if (e.data.liked) {\n $(self).addClass('liked');\n } else {\n $(self).removeClass('liked');\n }\n } else {\n alertify.error(e.data.msg);\n }\n });\n });\n $(\"#question-send\").bind('click', function () {\n var data = {};\n\n var _iterator = _createForOfIteratorHelper($(\"#question-form\").serializeArray()),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var d = _step.value;\n data[d.name] = d.value;\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n axios.post($(this).data('url'), data).then(function (e) {\n if (e.data.OK) {\n alertify.success(e.data.msg);\n $(\".comment-containerx\").text(e.data.msg);\n }\n })[\"catch\"](function (e) {\n axiosError(e);\n });\n });\n $(\".xsumbmiter\").submit(function () {\n $(this).attr('action', $(\"#smt\").val());\n });\n $(\".comment-reply\").click(function () {\n $('#reply').remove();\n var pid = $(this).data('id');\n $(\"#comment-form-body\").append(\"\"));\n $(\"#comment-message\").focus();\n });\n $(\".add-to-card\").click(function (e) {\n e.preventDefault();\n axios.get($(this).attr('href')).then(function (e) {\n $(\"#card-count\").text(e.data.data);\n window.alertify.message(e.data.msg);\n\n if (e.data.data > 0) {\n $(\"#card-info\").fadeIn(400);\n }\n });\n });\n $(\".add-to-card-q\").click(function (e) {\n e.preventDefault();\n axios.get($(this).attr('href') + '/' + $(\"#qn\").val() + '/' + $(\"#single-count\").val()).then(function (e) {\n $(\"#card-count\").text(e.data.data);\n window.alertify.message(e.data.msg);\n\n if (e.data.data > 0) {\n $(\"#card-info\").fadeIn(400);\n }\n });\n });\n $(\"#addon-wrapping\").bind('click', function () {\n var q = $(\"#searching\").val();\n window.location.href = $(\"#searching\").data('url') + '?q=' + q;\n return true;\n });\n $(\"#searching\").bind('keyup', function (e) {\n var q = $(this).val();\n\n if (e.key === 'Enter') {\n window.location.href = $(this).data('url') + '?q=' + q;\n return true;\n }\n\n if (q.length < 3) {\n return 0;\n }\n\n var offset = $(this).offset();\n offset.width = $(this).width() + 85 + 'px';\n offset.left -= 50;\n offset.top += 45;\n $(\"#search-list\").css(offset).slideDown(100);\n var text = '';\n var self = this;\n $(\"#search-list\").html(text + '
');\n axios.get($(this).data('ajax') + '?q=' + q).then(function (e) {\n if (!e.data.OK) {\n window.alertify.error(e.data.err);\n } else {\n text += '';\n $(\"#search-list\").html(text);\n }\n });\n });\n $(\".xzoom-thumbs a\").bind('click.light', function () {\n $(\"#lightbx\").attr('href', $(this).attr('href'));\n });\n\n try {\n if ($('#qnt').length != 0) {\n sizes = {};\n qnt = JSON.parse($('#qnt').val()); // console.log(qnt);\n\n var txt = '';\n\n var _iterator3 = _createForOfIteratorHelper(qnt),\n _step3;\n\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n var q = _step3.value;\n\n if (q.count > 0) {\n var t = JSON.parse(q.data);\n\n if (sizes[t.size] == undefined) {\n sizes[t.size] = [];\n txt += \"
\\n \").concat(t.size, \"\\n
 \");\n }\n\n t.id = q.id;\n sizes[t.size].push(t);\n }\n }\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n\n $(\"#size-pick\").html(txt);\n setTimeout(function () {\n $(\"#size-pick .size:first-child\").click();\n }, 50);\n $(\"#size-pick .size\").bind('click.select', function () {\n $(\"#size-pick .size\").removeClass('active');\n var colorNames = {};\n\n try {\n colorNames = JSON.parse($(\"#colors\").val());\n } catch (_unused) {}\n\n $(this).addClass('active');\n var colors = sizes[$(this).data('id')];\n var txt = '';\n var cl = '';\n\n var _iterator4 = _createForOfIteratorHelper(colors),\n _step4;\n\n try {\n for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n var c = _step4.value;\n cl = colorNames[c.color]; // console.log(c.color,colorNames);\n\n txt += \"
\\n
\\n \").concat(cl, \"\\n
\");\n }\n } catch (err) {\n _iterator4.e(err);\n } finally {\n _iterator4.f();\n }\n\n $(\".color-pick\").html(txt);\n setTimeout(function () {\n $(\".color-pick .color:first-child\").click();\n }, 50);\n $(\".color-pick .color\").bind('click.sel', function () {\n $('.xzoom-thumbs a').eq($(this).data('image')).click();\n $(\".color-pick .color\").removeClass('active');\n $(this).addClass('active');\n $(\"#qn\").val($(this).data('id'));\n $(\"#last-pricex\").text(commafy($(this).data('price')));\n $(\"#counting\").text($(this).data('count'));\n $(\".product-count\").attr('max', $(this).data('count')).val(1);\n });\n });\n }\n } catch (e) {// console.log('size err',e.message);\n } // prticale\n\n\n try {\n var setParticles = function setParticles(num) {\n for (var i = 0; i < num; i++) {\n var prt = document.createElement('div');\n prt.setAttribute('class', 'particles');\n prt.style.left = 100 * Math.random() + \"%\";\n prt.animate([{\n transform: 'translate(-200px, 0) scale(' + Math.random() * 10 + ')'\n }, {\n transform: 'translate(' + Math.random() * 500 + 'px, 112vh) scale(' + Math.random() * 2 + ')',\n background: '#ff00ff',\n boxShadow: '0 0 4px #ff00ff, 0 0 8px #ff00ff',\n opacity: Math.random() * 1.4\n }], {\n duration: Math.random() * 400 + 8000,\n delay: -i * 100,\n iterations: Infinity\n });\n prtcl.appendChild(prt);\n }\n };\n\n var prtcl = document.getElementById('particle');\n setParticles(100);\n } catch (e) {// console.log(e.message);\n }\n\n setTimeout(function () {\n $(\".x-side-menu #searching\").attr('id', 'sub-search');\n $(\"#sub-search\").keyup(function () {\n var q = $(this).val();\n\n if (q.length < 3) {\n $(\".x-side-menu .list-group-item\").remove();\n return false;\n }\n\n axios.get($(this).data('ajax') + '?q=' + q).then(function (e) {\n if (!e.data.OK) {\n window.alertify.error(e.data.err);\n } else {\n $(\".x-side-menu .list-group-item\").remove(); // text += '';\n\n $(\".x-side-menu\").append(text);\n }\n });\n });\n }, 1000);\n $(\"#card table th\").each(function (k, e) {\n $(\"#card td:nth-child(\" + (k + 1) + \")\").attr('data-before', $(e).text().trim());\n });\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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SUFwQ1EsQ0FBVjtFQXNDQXpELENBQUMsQ0FBQyxnQkFBRCxDQUFELENBQW9Cc0gsSUFBcEIsQ0FBeUIsVUFBVW5GLENBQVYsRUFBWTVCLENBQVosRUFBZTtJQUNwQ1AsQ0FBQyxDQUFDLHlCQUF1Qm1DLENBQUMsR0FBQyxDQUF6QixJQUE0QixHQUE3QixDQUFELENBQW1Dd0IsSUFBbkMsQ0FBd0MsYUFBeEMsRUFBc0QzRCxDQUFDLENBQUNPLENBQUQsQ0FBRCxDQUFLa0QsSUFBTCxHQUFZOEQsSUFBWixFQUF0RDtFQUNILENBRkQ7QUFLSCxDQTNkSyxDQUFOIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL3RoZW1lL2pzL3RoZW1lLmpzPzBlODIiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gcmVxdWlyZSgnaGMtb2ZmY2FudmFzLW5hdi9kaXN0L2hjLW9mZmNhbnZhcy1uYXYnKTtcbi8vIGltcG9ydCB4TWVnYU1lbnUgZnJvbSAneC1tZWdhLW1lbnUvc3JjL3gtbWVnYS1tZW51JztcbmltcG9ydCB4bSBmcm9tICd4LW1lZ2EtbWVudS9kaXN0L3gtbWVnYS1tZW51Lm1pbic7XG5cbmxldCB4TWVnYU1lbnUgPSB3aW5kb3cueE1lZ2FNZW51ID0geG0ueE1lZ2FNZW51O1xuXG5mdW5jdGlvbiBDb3B5VG9DbGlwYm9hcmQoY29udGFpbmVyaWQpIHtcbiAgICBpZiAod2luZG93LmdldFNlbGVjdGlvbikge1xuICAgICAgICBpZiAod2luZG93LmdldFNlbGVjdGlvbigpLmVtcHR5KSB7IC8vIENocm9tZVxuICAgICAgICAgICAgd2luZG93LmdldFNlbGVjdGlvbigpLmVtcHR5KCk7XG4gICAgICAgIH0gZWxzZSBpZiAod2luZG93LmdldFNlbGVjdGlvbigpLnJlbW92ZUFsbFJhbmdlcykgeyAvLyBGaXJlZm94XG4gICAgICAgICAgICB3aW5kb3cuZ2V0U2VsZWN0aW9uKCkucmVtb3ZlQWxsUmFuZ2VzKCk7XG4gICAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGRvY3VtZW50LnNlbGVjdGlvbikgeyAvLyBJRT9cbiAgICAgICAgZG9jdW1lbnQuc2VsZWN0aW9uLmVtcHR5KCk7XG4gICAgfVxuXG4gICAgaWYgKGRvY3VtZW50LnNlbGVjdGlvbikge1xuICAgICAgICB2YXIgcmFuZ2UgPSBkb2N1bWVudC5ib2R5LmNyZWF0ZVRleHRSYW5nZSgpO1xuICAgICAgICByYW5nZS5tb3ZlVG9FbGVtZW50VGV4dChkb2N1bWVudC5nZXRFbGVtZW50QnlJZChjb250YWluZXJpZCkpO1xuICAgICAgICByYW5nZS5zZWxlY3QoKS5jcmVhdGVUZXh0UmFuZ2UoKTtcbiAgICAgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoXCJjb3B5XCIpO1xuICAgIH0gZWxzZSBpZiAod2luZG93LmdldFNlbGVjdGlvbikge1xuICAgICAgICB2YXIgcmFuZ2UgPSBkb2N1bWVudC5jcmVhdGVSYW5nZSgpO1xuICAgICAgICByYW5nZS5zZWxlY3ROb2RlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGNvbnRhaW5lcmlkKSk7XG4gICAgICAgIHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5hZGRSYW5nZShyYW5nZSk7XG4gICAgICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKFwiY29weVwiKTtcbiAgICB9XG5cbiAgICBhbGVydGlmeS5zdWNjZXNzKCfaqdm+24wg2LTYrycpO1xufVxuXG5mdW5jdGlvbiBjb21tYWZ5KG51bSkge1xuICAgIHZhciBzdHIgPSBudW0udG9TdHJpbmcoKS5zcGxpdCgnLicpO1xuICAgIGlmIChzdHJbMF0ubGVuZ3RoID49IDQpIHtcblxuICAgICAgICBzdHJbMF0gPSBzdHJbMF0ucmVwbGFjZSgvKFxcZCkoPz0oXFxkezN9KSskKS9nLCAnJDEsJyk7XG4gICAgfVxuICAgIGlmIChzdHJbMV0gJiYgc3RyWzFdLmxlbmd0aCA+PSA0KSB7XG5cbiAgICAgICAgc3RyWzFdID0gc3RyWzFdLnJlcGxhY2UoLyhcXGR7M30pL2csICckMSwnKTtcbiAgICB9XG4gICAgcmV0dXJuIHN0ci5qb2luKCcuJyk7XG59XG5cbmxldCBxbm4sIGltYWdlcywgc2l6ZXM7XG5cbmpRdWVyeShmdW5jdGlvbiAoJCkge1xuXG4gICAgdHJ5IHtcbiAgICAgICAgeE1lZ2FNZW51KCcjbWVnYS1tZW51Jywge1xuICAgICAgICAgICAgcmVzcG9uc2VXaWR0aDogMTEyNCxcbiAgICAgICAgICAgIGlzUnRsOiB0cnVlLFxuICAgICAgICAgICAgbWFpblRpdGxlOiBhcHBOYW1lLFxuICAgICAgICAgICAgYmx1ckVmZmVjdDogdHJ1ZSxcbiAgICAgICAgICAgIGRpc2FibGVMaW5rczogZmFsc2UsXG4gICAgICAgIH0pO1xuICAgIH0gY2F0Y2goZSkge1xuICAgICAgICBjb25zb2xlLmxvZyhlLm1lc3NhZ2UpO1xuICAgIH1cblxuXG4gICB0cnkge1xuICAgICAgICQoXCIueHpvb20sIC54em9vbS1nYWxsZXJ5XCIpLnh6b29tKHt0aW50OiAnIzMzMycsIFhvZmZzZXQ6IDE1fSk7XG4gICB9IGNhdGNoKGUpIHtcbiAgIH1cblxuXG4gICAgJCh3aW5kb3cpLm9uKCdsb2FkJywgZnVuY3Rpb24gKCkge1xuICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICQoJyNwcmVsb2FkZXInKS5zbGlkZVVwKDcwMCk7XG4gICAgICAgICAgICAvLyBsZXQgbWF4ID0gMTUwIDtcbiAgICAgICAgICAgIC8vIGZvciggY29uc3QgYiBvZiAkKFwiLmJveFwiKSkge1xuICAgICAgICAgICAgLy8gICAgIGlmICgkKGIpLmhlaWdodCgpID4gbWF4ICl7XG4gICAgICAgICAgICAvLyAgICAgICAgIG1heD0gJChiKS5oZWlnaHQoKTtcbiAgICAgICAgICAgIC8vICAgICB9XG4gICAgICAgICAgICAvLyB9XG4gICAgICAgICAgICAvLyAkKCcuYm94JykuaGVpZ2h0KG1heCk7XG4gICAgICAgICAgICAvLyAkKFwiI2ZhdnMgLmJveFwiKS5yZW1vdmVBdHRyKCdzdHlsZScpO1xuXG4gICAgICAgIH0sIDEwMCk7XG4gICAgfSk7XG4gICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICQoJyNwcmVsb2FkZXInKS5zbGlkZVVwKDcwMCk7XG4gICAgfSwgMTAwKTtcblxuICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICAkKCcjcHJlbG9hZGVyJykuc2xpZGVVcCg3MDApO1xuICAgIH0sIDEwMDAwKTtcbiAgICAkKFwiI3RvZ2dsZS1zaWRlXCIpLmJpbmQoJ2NsaWNrJywgZnVuY3Rpb24gKCkge1xuICAgICAgICAkKCdhc2lkZSA+IGRpdicpLnNsaWRlVG9nZ2xlKDMwMCk7XG4gICAgfSk7XG5cbiAgICAkKCcub3dsMScpLm93bENhcm91c2VsKHtcbiAgICAgICAgbG9vcDogdHJ1ZSxcbiAgICAgICAgbWFyZ2luOiAwLFxuICAgICAgICByZXNwb25zaXZlQ2xhc3M6IHRydWUsXG4gICAgICAgIC8vIGF1dG9wbGF5OiB0cnVlLFxuICAgICAgICBhdXRvcGxheVRpbWVvdXQ6IDUwMDAsXG4gICAgICAgIGF1dG9wbGF5SG92ZXJQYXVzZTogdHJ1ZSxcbiAgICAgICAgaXRlbTogNSxcbiAgICAgICAgcmVzcG9uc2l2ZToge1xuICAgICAgICAgICAgMDoge1xuICAgICAgICAgICAgICAgIG5hdjogZmFsc2UsXG4gICAgICAgICAgICAgICAgaXRlbXM6IDIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgNjAwOiB7XG4gICAgICAgICAgICAgICAgaXRlbXM6IDIsXG4gICAgICAgICAgICAgICAgbmF2OiBmYWxzZSxcbiAgICAgICAgICAgICAgICBsb29wOiBmYWxzZVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIDEwMDA6IHtcbiAgICAgICAgICAgICAgICBpdGVtczogMyxcbiAgICAgICAgICAgICAgICBuYXY6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGxvb3A6IGZhbHNlXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgMTMwMDoge1xuICAgICAgICAgICAgICAgIGl0ZW1zOiA1LFxuICAgICAgICAgICAgICAgIG5hdjogZmFsc2UsXG4gICAgICAgICAgICAgICAgbG9vcDogZmFsc2VcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xuICAgICQoJyNvd2wyJykub3dsQ2Fyb3VzZWwoe1xuICAgICAgICBsb29wOiB0cnVlLFxuICAgICAgICBtYXJnaW46IDAsXG4gICAgICAgIHJlc3BvbnNpdmVDbGFzczogdHJ1ZSxcbiAgICAgICAgYXV0b3BsYXk6IHRydWUsXG4gICAgICAgIGF1dG9wbGF5VGltZW91dDogNTAwMCxcbiAgICAgICAgYXV0b3BsYXlIb3ZlclBhdXNlOiB0cnVlLFxuICAgICAgICBpdGVtOiAzLFxuICAgICAgICByZXNwb25zaXZlOiB7XG4gICAgICAgICAgICAwOiB7XG4gICAgICAgICAgICAgICAgbmF2OiBmYWxzZSxcbiAgICAgICAgICAgICAgICBpdGVtczogMSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICA2MDA6IHtcbiAgICAgICAgICAgICAgICBpdGVtczogMixcbiAgICAgICAgICAgICAgICBuYXY6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGxvb3A6IGZhbHNlXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgMTAwMDoge1xuICAgICAgICAgICAgICAgIGl0ZW1zOiAzLFxuICAgICAgICAgICAgICAgIG5hdjogZmFsc2UsXG4gICAgICAgICAgICAgICAgbG9vcDogZmFsc2VcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgICQoJyN0aHVtYnMnKS5vd2xDYXJvdXNlbCh7XG4gICAgICAgIGxvb3A6IGZhbHNlLFxuICAgICAgICBtYXJnaW46IDQsXG4gICAgICAgIHJlc3BvbnNpdmVDbGFzczogdHJ1ZSxcbiAgICAgICAgYXV0b3BsYXk6IHRydWUsXG4gICAgICAgIGF1dG9wbGF5VGltZW91dDogNTAwMCxcbiAgICAgICAgYXV0b3BsYXlIb3ZlclBhdXNlOiB0cnVlLFxuICAgICAgICBpdGVtczogNCxcbiAgICAgICAgLy8gbmF2OiB0cnVlLFxuICAgIH0pO1xuICAgICQoJy5vd2wtc2luZ2xlLWl0ZW0nKS5vd2xDYXJvdXNlbCh7XG4gICAgICAgIGxvb3A6IHRydWUsXG4gICAgICAgIG1hcmdpbjogMCxcbiAgICAgICAgcmVzcG9uc2l2ZUNsYXNzOiB0cnVlLFxuICAgICAgICBhdXRvcGxheTogdHJ1ZSxcbiAgICAgICAgYXV0b3BsYXlUaW1lb3V0OiA1MDAwLFxuICAgICAgICBhdXRvcGxheUhvdmVyUGF1c2U6IHRydWUsXG4gICAgICAgIGl0ZW1zOiAxLFxuICAgICAgICAvLyBuYXY6IHRydWUsXG4gICAgfSk7XG5cbiAgICAkKCcjb3dseDEnKS5vd2xDYXJvdXNlbCh7XG4gICAgICAgIGxvb3A6IHRydWUsXG4gICAgICAgIG1hcmdpbjogMTUsXG4gICAgICAgIHJlc3BvbnNpdmVDbGFzczogdHJ1ZSxcbiAgICAgICAgYXV0b3BsYXk6IHRydWUsXG4gICAgICAgIGF1dG9wbGF5VGltZW91dDogNTAwMCxcbiAgICAgICAgYXV0b3BsYXlIb3ZlclBhdXNlOiB0cnVlLFxuICAgICAgICByZXNwb25zaXZlOiB7XG4gICAgICAgICAgICAwOiB7XG4gICAgICAgICAgICAgICAgbmF2OiBmYWxzZSxcbiAgICAgICAgICAgICAgICBpdGVtczogMSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICA2MDA6IHtcbiAgICAgICAgICAgICAgICBpdGVtczogMixcbiAgICAgICAgICAgICAgICBuYXY6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGxvb3A6IGZhbHNlXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgMTAwMDoge1xuICAgICAgICAgICAgICAgIGl0ZW1zOiAzLFxuICAgICAgICAgICAgICAgIG5hdjogZmFsc2UsXG4gICAgICAgICAgICAgICAgbG9vcDogZmFsc2VcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAxMzAwOiB7XG4gICAgICAgICAgICAgICAgaXRlbXM6IDQsXG4gICAgICAgICAgICAgICAgbmF2OiBmYWxzZSxcbiAgICAgICAgICAgICAgICBsb29wOiBmYWxzZVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSk7XG4gICAgJCgnI293bDMnKS5vd2xDYXJvdXNlbCh7XG4gICAgICAgIGxvb3A6IGZhbHNlLFxuICAgICAgICBtYXJnaW46IDAsXG4gICAgICAgIHJlc3BvbnNpdmVDbGFzczogdHJ1ZSxcbiAgICAgICAgYXV0b3BsYXk6IHRydWUsXG4gICAgICAgIGF1dG9wbGF5VGltZW91dDogNTAwMCxcbiAgICAgICAgYXV0b3BsYXlIb3ZlclBhdXNlOiB0cnVlLFxuICAgICAgICBpdGVtczogMSxcbiAgICB9KTtcbiAgICAkKCcub3dsLXNxJykub3dsQ2Fyb3VzZWwoe1xuICAgICAgICBsb29wOiB0cnVlLFxuICAgICAgICBtYXJnaW46IDAsXG4gICAgICAgIHJlc3BvbnNpdmVDbGFzczogdHJ1ZSxcbiAgICAgICAgYXV0b3BsYXk6IHRydWUsXG4gICAgICAgIGF1dG9wbGF5VGltZW91dDogNTAwMCxcbiAgICAgICAgcmVzcG9uc2l2ZToge1xuICAgICAgICAgICAgMDoge1xuICAgICAgICAgICAgICAgIGl0ZW1zOiAyLFxuICAgICAgICAgICAgICAgIG5hdjogZmFsc2VcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICA2MDA6IHtcbiAgICAgICAgICAgICAgICBpdGVtczogMixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAxMDAwOiB7XG4gICAgICAgICAgICAgICAgaXRlbXM6IDMsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgMTMwMDoge1xuICAgICAgICAgICAgICAgIGl0ZW1zOiA2LFxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICAkKFwiI2NwLWRldGVhaWxcIikuYmluZCgnY2xpY2snLGZ1bmN0aW9uICgpIHtcbiAgICAgICAgQ29weVRvQ2xpcGJvYXJkKCd0YWItYW5hbHl6ZScpO1xuICAgIH0pO1xuICAgIHZhciBheGlvc0Vycm9yID0gZnVuY3Rpb24gKGVycikge1xuICAgICAgICBpZiAoZXJyLnJlc3BvbnNlLnN0YXR1cyA9PSA0MDEpIHtcbiAgICAgICAgICAgIGFsZXJ0aWZ5LmVycm9yKCdBdXRoZW50aWNuYXRpb24gRXJyb3InKTtcbiAgICAgICAgICAgIC8vIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gJy8jL2xvZ2luJztcbiAgICAgICAgfSBlbHNlIGlmIChlcnIucmVzcG9uc2Uuc3RhdHVzID09IDQyMikge1xuICAgICAgICAgICAgLy8gY29uc29sZS5sb2coZXJyLnJlc3BvbnNlLmRhdGEuZXJyb3JzKTtcbiAgICAgICAgICAgIGZvciAoY29uc3QgayBpbiBlcnIucmVzcG9uc2UuZGF0YS5lcnJvcnMpIHtcbiAgICAgICAgICAgICAgICBsZXQgZXIgPSBlcnIucmVzcG9uc2UuZGF0YS5lcnJvcnNba107XG4gICAgICAgICAgICAgICAgYWxlcnRpZnkuZXJyb3IoayArICcgOiAnICsgZXJbMF0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBhbGVydGlmeS5lcnJvcignRXJyb3InICsgZXJyLnJlc3BvbnNlLnN0YXR1cyArICc6ICcgKyBlcnIucmVzcG9uc2UuZGF0YS5tZXNzYWdlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICQoXCIjZmlsdGVyaW5nIC5idG5cIikuYmluZCgnY2xpY2snLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICQoXCIjZmlsdGVyaW5nIC5idG5cIikucmVtb3ZlQ2xhc3MoJ2FjdGl2ZScpO1xuICAgICAgICAkKHRoaXMpLmFkZENsYXNzKCdhY3RpdmUnKTtcbiAgICAgICAgbGV0IGNscyA9ICQodGhpcykuZGF0YSgnY2F0Jyk7XG4gICAgICAgIGlmIChjbHMgPT0gJ2FsbCcpIHtcbiAgICAgICAgICAgICQoXCIjZGEtdGh1bWJzIC5pdGVtXCIpLnNsaWRlRG93big5MDApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgJChcIiNkYS10aHVtYnMgLml0ZW1cIikuc2xpZGVVcCg2MDAsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNkYS10aHVtYnMgLml0ZW0uXCIgKyBjbHMpLnNsaWRlRG93big1MTMpO1xuICAgICAgICAgICAgICAgIH0sIDEwMCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgJChcIi5mYXZcIikuYmluZCgnY2xpY2snLGZ1bmN0aW9uICgpIHtcbiAgICAgIGxldCB1cmwgPSAkKFwiI2Zhdi10b2dnbGVcIikudmFsKCkrJy8nKyQodGhpcykuZGF0YSgnaWQnKTtcbiAgICAgIGxldCBzZWxmID0gdGhpcztcbiAgICAgIGF4aW9zLmdldCh1cmwpLnRoZW4oZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgaWYgKGUuZGF0YS5PSyl7XG4gICAgICAgICAgICBhbGVydGlmeS5zdWNjZXNzKGUuZGF0YS5tc2cpO1xuICAgICAgICAgICAgaWYgKGUuZGF0YS5saWtlZCl7XG4gICAgICAgICAgICAgICAgJChzZWxmKS5hZGRDbGFzcygnbGlrZWQnKTtcbiAgICAgICAgICAgIH1lbHNle1xuICAgICAgICAgICAgICAgICQoc2VsZikucmVtb3ZlQ2xhc3MoJ2xpa2VkJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1lbHNle1xuICAgICAgICAgICAgYWxlcnRpZnkuZXJyb3IoZS5kYXRhLm1zZyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgJChcIiNxdWVzdGlvbi1zZW5kXCIpLmJpbmQoJ2NsaWNrJywgZnVuY3Rpb24gKCkge1xuICAgICAgICBsZXQgZGF0YSA9IHt9O1xuICAgICAgICBmb3IgKGNvbnN0IGQgb2YgJChcIiNxdWVzdGlvbi1mb3JtXCIpLnNlcmlhbGl6ZUFycmF5KCkpIHtcbiAgICAgICAgICAgIGRhdGFbZC5uYW1lXSA9IGQudmFsdWU7XG4gICAgICAgIH1cblxuICAgICAgICBheGlvcy5wb3N0KCQodGhpcykuZGF0YSgndXJsJyksIGRhdGEpLnRoZW4oZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICAgIGlmIChlLmRhdGEuT0spIHtcbiAgICAgICAgICAgICAgICBhbGVydGlmeS5zdWNjZXNzKGUuZGF0YS5tc2cpO1xuICAgICAgICAgICAgICAgICQoXCIuY29tbWVudC1jb250YWluZXJ4XCIpLnRleHQoZS5kYXRhLm1zZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uIChlKSB7XG4gICAgICAgICAgICBheGlvc0Vycm9yKGUpO1xuICAgICAgICB9KTtcbiAgICB9KTtcblxuICAgICQoXCIueHN1bWJtaXRlclwiKS5zdWJtaXQoZnVuY3Rpb24gKCkge1xuICAgICAgICAkKHRoaXMpLmF0dHIoJ2FjdGlvbicsICQoXCIjc210XCIpLnZhbCgpKTtcbiAgICB9KTtcbiAgICAkKFwiLmNvbW1lbnQtcmVwbHlcIikuY2xpY2soZnVuY3Rpb24gKCkge1xuICAgICAgICAkKCcjcmVwbHknKS5yZW1vdmUoKTtcbiAgICAgICAgdmFyIHBpZCA9ICQodGhpcykuZGF0YSgnaWQnKTtcbiAgICAgICAgJChcIiNjb21tZW50LWZvcm0tYm9keVwiKS5hcHBlbmQoXCI8aW5wdXQgdHlwZT1cXFwiaGlkZGVuXFxcIiBpZD1cXFwicmVwbHlcXFwiIG5hbWU9XFxcInBhcmVudFxcXCIgdmFsdWU9XFxcIlwiLmNvbmNhdChwaWQsIFwiXFxcIiAvPlwiKSk7XG4gICAgICAgICQoXCIjY29tbWVudC1tZXNzYWdlXCIpLmZvY3VzKCk7XG4gICAgfSk7XG5cbiAgICAkKFwiLmFkZC10by1jYXJkXCIpLmNsaWNrKGZ1bmN0aW9uIChlKSB7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgYXhpb3MuZ2V0KCQodGhpcykuYXR0cignaHJlZicpKS50aGVuKGZ1bmN0aW9uIChlKSB7XG4gICAgICAgICAgICAkKFwiI2NhcmQtY291bnRcIikudGV4dChlLmRhdGEuZGF0YSk7XG4gICAgICAgICAgICB3aW5kb3cuYWxlcnRpZnkubWVzc2FnZShlLmRhdGEubXNnKTtcbiAgICAgICAgICAgIGlmIChlLmRhdGEuZGF0YSA+IDApIHtcbiAgICAgICAgICAgICAgICAkKFwiI2NhcmQtaW5mb1wiKS5mYWRlSW4oNDAwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfSk7XG4gICAgJChcIi5hZGQtdG8tY2FyZC1xXCIpLmNsaWNrKGZ1bmN0aW9uIChlKSB7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgYXhpb3MuZ2V0KCQodGhpcykuYXR0cignaHJlZicpICsgJy8nICsgJChcIiNxblwiKS52YWwoKSsnLycrJChcIiNzaW5nbGUtY291bnRcIikudmFsKCkpLnRoZW4oZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICAgICQoXCIjY2FyZC1jb3VudFwiKS50ZXh0KGUuZGF0YS5kYXRhKTtcbiAgICAgICAgICAgIHdpbmRvdy5hbGVydGlmeS5tZXNzYWdlKGUuZGF0YS5tc2cpO1xuICAgICAgICAgICAgaWYgKGUuZGF0YS5kYXRhID4gMCkge1xuICAgICAgICAgICAgICAgICQoXCIjY2FyZC1pbmZvXCIpLmZhZGVJbig0MDApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9KTtcblxuICAgICQoXCIjYWRkb24td3JhcHBpbmdcIikuYmluZCgnY2xpY2snLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGxldCBxID0gJChcIiNzZWFyY2hpbmdcIikudmFsKCk7XG4gICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gJChcIiNzZWFyY2hpbmdcIikuZGF0YSgndXJsJykgKyAnP3E9JyArIHE7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH0pO1xuICAgICQoXCIjc2VhcmNoaW5nXCIpLmJpbmQoJ2tleXVwJywgZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgbGV0IHEgPSAkKHRoaXMpLnZhbCgpO1xuICAgICAgICBpZiAoZS5rZXkgPT09ICdFbnRlcicpIHtcbiAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gJCh0aGlzKS5kYXRhKCd1cmwnKSArICc/cT0nICsgcTtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChxLmxlbmd0aCA8IDMpIHtcbiAgICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICB9XG4gICAgICAgIGxldCBvZmZzZXQgPSAkKHRoaXMpLm9mZnNldCgpO1xuICAgICAgICBvZmZzZXQud2lkdGggPSAoJCh0aGlzKS53aWR0aCgpICsgODUpICsgJ3B4JztcbiAgICAgICAgb2Zmc2V0LmxlZnQgLT0gNTA7XG4gICAgICAgIG9mZnNldC50b3AgKz0gNDU7XG4gICAgICAgICQoXCIjc2VhcmNoLWxpc3RcIikuY3NzKG9mZnNldCkuc2xpZGVEb3duKDEwMCk7XG4gICAgICAgIGxldCB0ZXh0ID0gJyc7XG4gICAgICAgIGxldCBzZWxmID0gdGhpcztcbiAgICAgICAgJChcIiNzZWFyY2gtbGlzdFwiKS5odG1sKHRleHQgKyAnPGRpdiBjbGFzcz1cInAtNCB0ZXh0LWNlbnRlclwiPjxpIGNsYXNzPVwiZmEgZmEtc3BpbiBmYS1zcGlubmVyXCI+PC9pPjwvZGl2PicpO1xuICAgICAgICBheGlvcy5nZXQoJCh0aGlzKS5kYXRhKCdhamF4JykgKyAnP3E9JyArIHEpLnRoZW4oZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICAgIGlmICghZS5kYXRhLk9LKSB7XG4gICAgICAgICAgICAgICAgd2luZG93LmFsZXJ0aWZ5LmVycm9yKGUuZGF0YS5lcnIpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0ZXh0ICs9ICc8dWwgY2xhc3M9XCJsaXN0LWdyb3VwXCI+JztcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHAgb2YgZS5kYXRhLmRhdGEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dCArPSAnPGxpIGNsYXNzPVwibGlzdC1ncm91cC1pdGVtXCI+JztcbiAgICAgICAgICAgICAgICAgICAgdGV4dCArPSBgPGEgaHJlZj1cIiR7cC5saW5rfVwiPmA7XG4gICAgICAgICAgICAgICAgICAgIHRleHQgKz0gYDxpbWcgc3JjPVwiJHtwLmltYWdlfVwiIGFsdD1cInByb2R1Y3QgaW1hZ2VcIj5gXG4gICAgICAgICAgICAgICAgICAgIHRleHQgKz0gYDxoND4ke3AubmFtZX08L2g0PmBcbiAgICAgICAgICAgICAgICAgICAgdGV4dCArPSBgPGg1PiR7cC5wcmljZX08L2g1PmBcbiAgICAgICAgICAgICAgICAgICAgdGV4dCArPSAnPC9hPic7XG4gICAgICAgICAgICAgICAgICAgIHRleHQgKz0gJzwvbGk+JztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGV4dCArPSAnPGxpIGNsYXNzPVwibGlzdC1ncm91cC1pdGVtXCI+JztcbiAgICAgICAgICAgICAgICB0ZXh0ICs9ICc8YSBocmVmPVwiJyArICQoc2VsZikuZGF0YSgndXJsJykgKyAnP3E9JyArIHEgKyAnXCI+JztcbiAgICAgICAgICAgICAgICB0ZXh0ICs9ICfYrNiz2KrYrNmIINmF2YjYp9ix2K8g2KjbjNi02KrYsSA6JztcbiAgICAgICAgICAgICAgICB0ZXh0ICs9IHE7XG4gICAgICAgICAgICAgICAgdGV4dCArPSAnPC9hPic7XG4gICAgICAgICAgICAgICAgdGV4dCArPSAnPC9saT4nO1xuICAgICAgICAgICAgICAgIHRleHQgKz0gJzwvdWw+JztcbiAgICAgICAgICAgICAgICAkKFwiI3NlYXJjaC1saXN0XCIpLmh0bWwodGV4dCk7XG5cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfSk7XG4gICAgJChcIi54em9vbS10aHVtYnMgYVwiKS5iaW5kKCdjbGljay5saWdodCcsZnVuY3Rpb24gKCkge1xuICAgICAgJChcIiNsaWdodGJ4XCIpLmF0dHIoJ2hyZWYnLCQodGhpcykuYXR0cignaHJlZicpKTtcbiAgICB9KTtcbiAgICB0cnkge1xuICAgICAgICBpZiAoJCgnI3FudCcpLmxlbmd0aCAhPSAwKSB7XG4gICAgICAgICAgICBzaXplcyA9IHt9O1xuICAgICAgICAgICAgcW50ID0gSlNPTi5wYXJzZSgkKCcjcW50JykudmFsKCkpO1xuICAgICAgICAgICAgLy8gY29uc29sZS5sb2cocW50KTtcbiAgICAgICAgICAgIGxldCB0eHQgPSAnJztcbiAgICAgICAgICAgIGZvciggY29uc3QgcSBvZiBxbnQpIHtcbiAgICAgICAgICAgICAgICBpZiAocS5jb3VudCA+IDApe1xuICAgICAgICAgICAgICAgICAgICBsZXQgdCA9IEpTT04ucGFyc2UocS5kYXRhKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHNpemVzW3Quc2l6ZV0gPT0gdW5kZWZpbmVkKXtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNpemVzW3Quc2l6ZV09W107XG4gICAgICAgICAgICAgICAgICAgICAgICB0eHQgKz0gYDxkaXYgZGF0YS1pZD1cIiR7dC5zaXplfVwiIGNsYXNzPVwiYmFkZ2UgYmctc2Vjb25kYXJ5IHNpemVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHt0LnNpemV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PiAmbmJzcDtgO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHQuaWQgPSBxLmlkO1xuICAgICAgICAgICAgICAgICAgICBzaXplc1t0LnNpemVdLnB1c2godCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJChcIiNzaXplLXBpY2tcIikuaHRtbCh0eHQpO1xuICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgJChcIiNzaXplLXBpY2sgLnNpemU6Zmlyc3QtY2hpbGRcIikuY2xpY2soKTtcbiAgICAgICAgICAgIH0sNTApO1xuICAgICAgICAgICAgJChcIiNzaXplLXBpY2sgLnNpemVcIikuYmluZCgnY2xpY2suc2VsZWN0JyxmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgJChcIiNzaXplLXBpY2sgLnNpemVcIikucmVtb3ZlQ2xhc3MoJ2FjdGl2ZScpO1xuICAgICAgICAgICAgICAgIGxldCBjb2xvck5hbWVzICA9IHt9O1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yTmFtZXMgPSBKU09OLnBhcnNlKCQoXCIjY29sb3JzXCIpLnZhbCgpKTtcbiAgICAgICAgICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAkKHRoaXMpLmFkZENsYXNzKCdhY3RpdmUnKTtcbiAgICAgICAgICAgICAgICBsZXQgY29sb3JzID0gc2l6ZXNbJCh0aGlzKS5kYXRhKCdpZCcpXTtcbiAgICAgICAgICAgICAgICBsZXQgdHh0ID0gJyc7XG4gICAgICAgICAgICAgICAgbGV0IGNsID0gJyc7XG4gICAgICAgICAgICAgICAgZm9yKCBjb25zdCBjIG9mIGNvbG9ycykge1xuICAgICAgICAgICAgICAgICAgICBjbCA9IGNvbG9yTmFtZXNbYy5jb2xvcl07XG4gICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKGMuY29sb3IsY29sb3JOYW1lcyk7XG4gICAgICAgICAgICAgICAgICAgIHR4dCArPSBgPGRpdiBkYXRhLWlkPVwiJHtjLmlkfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtcHJpY2U9XCIke2MucHJpY2V9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1jb3VudD1cIiR7Yy5jb3VudH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1pbWFnZT1cIiR7Yy5pbWFnZX1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjb2xvclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNsXCIgc3R5bGU9XCJiYWNrZ3JvdW5kOiAke2MuY29sb3J9XCIgPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+JHtjbH08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5gO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICQoXCIuY29sb3ItcGlja1wiKS5odG1sKHR4dCk7XG4gICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICQoXCIuY29sb3ItcGljayAuY29sb3I6Zmlyc3QtY2hpbGRcIikuY2xpY2soKTtcbiAgICAgICAgICAgICAgICB9LDUwKTtcbiAgICAgICAgICAgICAgICAkKFwiLmNvbG9yLXBpY2sgLmNvbG9yXCIpLmJpbmQoJ2NsaWNrLnNlbCcsZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAkKCcueHpvb20tdGh1bWJzIGEnKS5lcSgkKHRoaXMpLmRhdGEoJ2ltYWdlJykpLmNsaWNrKCk7XG4gICAgICAgICAgICAgICAgICAgICQoXCIuY29sb3ItcGljayAuY29sb3JcIikucmVtb3ZlQ2xhc3MoJ2FjdGl2ZScpO1xuICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLmFkZENsYXNzKCdhY3RpdmUnKTtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNxblwiKS52YWwoJCh0aGlzKS5kYXRhKCdpZCcpKTtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNsYXN0LXByaWNleFwiKS50ZXh0KGNvbW1hZnkoJCh0aGlzKS5kYXRhKCdwcmljZScpKSk7XG4gICAgICAgICAgICAgICAgICAgICQoXCIjY291bnRpbmdcIikudGV4dCgkKHRoaXMpLmRhdGEoJ2NvdW50JykpO1xuICAgICAgICAgICAgICAgICAgICAkKFwiLnByb2R1Y3QtY291bnRcIikuYXR0cignbWF4JywkKHRoaXMpLmRhdGEoJ2NvdW50JykpLnZhbCgxKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIH1cbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKCdzaXplIGVycicsZS5tZXNzYWdlKTtcbiAgICB9XG5cblxuLy8gcHJ0aWNhbGVcbiAgICB0cnkge1xuICAgICAgICBsZXQgcHJ0Y2wgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGFydGljbGUnKVxuXG4gICAgICAgIGZ1bmN0aW9uIHNldFBhcnRpY2xlcyhudW0pIHtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbnVtOyBpKyspIHtcbiAgICAgICAgICAgICAgICBsZXQgcHJ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JylcbiAgICAgICAgICAgICAgICBwcnQuc2V0QXR0cmlidXRlKCdjbGFzcycsICdwYXJ0aWNsZXMnKVxuICAgICAgICAgICAgICAgIHBydC5zdHlsZS5sZWZ0ID0gMTAwICogTWF0aC5yYW5kb20oKSArIFwiJVwiXG4gICAgICAgICAgICAgICAgcHJ0LmFuaW1hdGUoW3tcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiAndHJhbnNsYXRlKC0yMDBweCwgMCkgc2NhbGUoJyArIE1hdGgucmFuZG9tKCkgKiAxMCArICcpJ1xuICAgICAgICAgICAgICAgIH0sIHtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiAndHJhbnNsYXRlKCcgKyBNYXRoLnJhbmRvbSgpICogNTAwICsgJ3B4LCAxMTJ2aCkgc2NhbGUoJyArIE1hdGgucmFuZG9tKCkgKiAyICsgJyknLFxuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAnI2ZmMDBmZicsXG4gICAgICAgICAgICAgICAgICAgIGJveFNoYWRvdzogJzAgMCA0cHggI2ZmMDBmZiwgMCAwIDhweCAjZmYwMGZmJyxcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogTWF0aC5yYW5kb20oKSAqIDEuNFxuICAgICAgICAgICAgICAgIH1dLCB7XG4gICAgICAgICAgICAgICAgICAgIGR1cmF0aW9uOiBNYXRoLnJhbmRvbSgpICogNDAwICsgODAwMCxcbiAgICAgICAgICAgICAgICAgICAgZGVsYXk6IC1pICogMTAwLFxuICAgICAgICAgICAgICAgICAgICBpdGVyYXRpb25zOiBJbmZpbml0eVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgcHJ0Y2wuYXBwZW5kQ2hpbGQocHJ0KVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgc2V0UGFydGljbGVzKDEwMClcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKGUubWVzc2FnZSk7XG4gICAgfVxuXG4gICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICQoXCIueC1zaWRlLW1lbnUgI3NlYXJjaGluZ1wiKS5hdHRyKCdpZCcsJ3N1Yi1zZWFyY2gnKTtcbiAgICAgICAgJChcIiNzdWItc2VhcmNoXCIpLmtleXVwKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGxldCBxID0gJCh0aGlzKS52YWwoKTtcbiAgICAgICAgICAgIGlmICAocS5sZW5ndGggPCAzKXtcbiAgICAgICAgICAgICAgICAkKFwiLngtc2lkZS1tZW51IC5saXN0LWdyb3VwLWl0ZW1cIikucmVtb3ZlKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYXhpb3MuZ2V0KCQodGhpcykuZGF0YSgnYWpheCcpICsgJz9xPScgKyBxKS50aGVuKGZ1bmN0aW9uIChlKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFlLmRhdGEuT0spIHtcbiAgICAgICAgICAgICAgICAgICAgd2luZG93LmFsZXJ0aWZ5LmVycm9yKGUuZGF0YS5lcnIpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICQoXCIueC1zaWRlLW1lbnUgLmxpc3QtZ3JvdXAtaXRlbVwiKS5yZW1vdmUoKTtcbiAgICAgICAgICAgICAgICAgICAgLy8gdGV4dCArPSAnPHVsIGNsYXNzPVwibGlzdC1ncm91cFwiPic7XG4gICAgICAgICAgICAgICAgICAgIGxldCB0ZXh0ID0gJyc7XG4gICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgcCBvZiBlLmRhdGEuZGF0YSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dCArPSAnPGxpIGNsYXNzPVwibGlzdC1ncm91cC1pdGVtXCI+JztcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQgKz0gYDxhIGhyZWY9XCIke3AubGlua31cIj5gO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dCArPSBgPGltZyBzcmM9XCIke3AuaW1hZ2V9XCIgYWx0PVwicHJvZHVjdCBpbWFnZVwiPmBcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQgKz0gYDxzcGFuPiR7cC5uYW1lfTwvc3Bhbj4gPGhyPmBcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQgKz0gYDxiPiR7cC5wcmljZX08L2I+YFxuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dCArPSAnPC9hPic7XG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0ICs9ICc8L2xpPic7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGV4dCArPSAnPGxpIGNsYXNzPVwibGlzdC1ncm91cC1pdGVtXCI+JztcbiAgICAgICAgICAgICAgICAgICAgdGV4dCArPSAnPGEgaHJlZj1cIicgKyAkKHNlbGYpLmRhdGEoJ3VybCcpICsgJz9xPScgKyBxICsgJ1wiPic7XG4gICAgICAgICAgICAgICAgICAgIHRleHQgKz0gJ9is2LPYqtis2Ygg2YXZiNin2LHYryDYqNuM2LTYqtixIDonO1xuICAgICAgICAgICAgICAgICAgICB0ZXh0ICs9IHE7XG4gICAgICAgICAgICAgICAgICAgIHRleHQgKz0gJzwvYT4nO1xuICAgICAgICAgICAgICAgICAgICB0ZXh0ICs9ICc8L2xpPic7XG4gICAgICAgICAgICAgICAgICAgIC8vIHRleHQgKz0gJzwvdWw+JztcbiAgICAgICAgICAgICAgICAgICAgJChcIi54LXNpZGUtbWVudVwiKS5hcHBlbmQodGV4dCk7XG5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfSwxMDAwKTtcblxuICAgICQoXCIjY2FyZCB0YWJsZSB0aFwiKS5lYWNoKGZ1bmN0aW9uIChrLGUpIHtcbiAgICAgICAgJChcIiNjYXJkIHRkOm50aC1jaGlsZChcIisoaysxKStcIilcIikuYXR0cignZGF0YS1iZWZvcmUnLCQoZSkudGV4dCgpLnRyaW0oKSk7XG4gICAgfSlcblxuXG59KTtcblxuXG4iXSwibmFtZXMiOlsieG0iLCJ4TWVnYU1lbnUiLCJ3aW5kb3ciLCJDb3B5VG9DbGlwYm9hcmQiLCJjb250YWluZXJpZCIsImdldFNlbGVjdGlvbiIsImVtcHR5IiwicmVtb3ZlQWxsUmFuZ2VzIiwiZG9jdW1lbnQiLCJzZWxlY3Rpb24iLCJyYW5nZSIsImJvZHkiLCJjcmVhdGVUZXh0UmFuZ2UiLCJtb3ZlVG9FbGVtZW50VGV4dCIsImdldEVsZW1lbnRCeUlkIiwic2VsZWN0IiwiZXhlY0NvbW1hbmQiLCJjcmVhdGVSYW5nZSIsInNlbGVjdE5vZGUiLCJhZGRSYW5nZSIsImFsZXJ0aWZ5Iiwic3VjY2VzcyIsImNvbW1hZnkiLCJudW0iLCJzdHIiLCJ0b1N0cmluZyIsInNwbGl0IiwibGVuZ3RoIiwicmVwbGFjZSIsImpvaW4iLCJxbm4iLCJpbWFnZXMiLCJzaXplcyIsImpRdWVyeSIsIiQiLCJyZXNwb25zZVdpZHRoIiwiaXNSdGwiLCJtYWluVGl0bGUiLCJhcHBOYW1lIiwiYmx1ckVmZmVjdCIsImRpc2FibGVMaW5rcyIsImUiLCJjb25zb2xlIiwibG9nIiwibWVzc2FnZSIsInh6b29tIiwidGludCIsIlhvZmZzZXQiLCJvbiIsInNldFRpbWVvdXQiLCJzbGlkZVVwIiwiYmluZCIsInNsaWRlVG9nZ2xlIiwib3dsQ2Fyb3VzZWwiLCJsb29wIiwibWFyZ2luIiwicmVzcG9uc2l2ZUNsYXNzIiwiYXV0b3BsYXlUaW1lb3V0IiwiYXV0b3BsYXlIb3ZlclBhdXNlIiwiaXRlbSIsInJlc3BvbnNpdmUiLCJuYXYiLCJpdGVtcyIsImF1dG9wbGF5IiwiYXhpb3NFcnJvciIsImVyciIsInJlc3BvbnNlIiwic3RhdHVzIiwiZXJyb3IiLCJrIiwiZGF0YSIsImVycm9ycyIsImVyIiwicmVtb3ZlQ2xhc3MiLCJhZGRDbGFzcyIsImNscyIsInNsaWRlRG93biIsInVybCIsInZhbCIsInNlbGYiLCJheGlvcyIsImdldCIsInRoZW4iLCJPSyIsIm1zZyIsImxpa2VkIiwic2VyaWFsaXplQXJyYXkiLCJkIiwibmFtZSIsInZhbHVlIiwicG9zdCIsInRleHQiLCJzdWJtaXQiLCJhdHRyIiwiY2xpY2siLCJyZW1vdmUiLCJwaWQiLCJhcHBlbmQiLCJjb25jYXQiLCJmb2N1cyIsInByZXZlbnREZWZhdWx0IiwiZmFkZUluIiwicSIsImxvY2F0aW9uIiwiaHJlZiIsImtleSIsIm9mZnNldCIsIndpZHRoIiwibGVmdCIsInRvcCIsImNzcyIsImh0bWwiLCJwIiwibGluayIsImltYWdlIiwicHJpY2UiLCJxbnQiLCJKU09OIiwicGFyc2UiLCJ0eHQiLCJjb3VudCIsInQiLCJzaXplIiwidW5kZWZpbmVkIiwiaWQiLCJwdXNoIiwiY29sb3JOYW1lcyIsImNvbG9ycyIsImNsIiwiYyIsImNvbG9yIiwiZXEiLCJzZXRQYXJ0aWNsZXMiLCJpIiwicHJ0IiwiY3JlYXRlRWxlbWVudCIsInNldEF0dHJpYnV0ZSIsInN0eWxlIiwiTWF0aCIsInJhbmRvbSIsImFuaW1hdGUiLCJ0cmFuc2Zvcm0iLCJiYWNrZ3JvdW5kIiwiYm94U2hhZG93Iiwib3BhY2l0eSIsImR1cmF0aW9uIiwiZGVsYXkiLCJpdGVyYXRpb25zIiwiSW5maW5pdHkiLCJwcnRjbCIsImFwcGVuZENoaWxkIiwia2V5dXAiLCJlYWNoIiwidHJpbSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./resources/theme/js/theme.js\n"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var x_mega_menu_dist_x_mega_menu_min__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! x-mega-menu/dist/x-mega-menu.min */ \"./node_modules/x-mega-menu/dist/x-mega-menu.min.js\");\n/* harmony import */ var x_mega_menu_dist_x_mega_menu_min__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(x_mega_menu_dist_x_mega_menu_min__WEBPACK_IMPORTED_MODULE_0__);\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n// require('hc-offcanvas-nav/dist/hc-offcanvas-nav');\n// import xMegaMenu from 'x-mega-menu/src/x-mega-menu';\n\nvar xMegaMenu = window.xMegaMenu = (x_mega_menu_dist_x_mega_menu_min__WEBPACK_IMPORTED_MODULE_0___default().xMegaMenu);\n\nfunction CopyToClipboard(containerid) {\n if (window.getSelection) {\n if (window.getSelection().empty) {\n // Chrome\n window.getSelection().empty();\n } else if (window.getSelection().removeAllRanges) {\n // Firefox\n window.getSelection().removeAllRanges();\n }\n } else if (document.selection) {\n // IE?\n document.selection.empty();\n }\n\n if (document.selection) {\n var range = document.body.createTextRange();\n range.moveToElementText(document.getElementById(containerid));\n range.select().createTextRange();\n document.execCommand(\"copy\");\n } else if (window.getSelection) {\n var range = document.createRange();\n range.selectNode(document.getElementById(containerid));\n window.getSelection().addRange(range);\n document.execCommand(\"copy\");\n }\n\n alertify.success('کپی شد');\n}\n\nfunction commafy(num) {\n var str = num.toString().split('.');\n\n if (str[0].length >= 4) {\n str[0] = str[0].replace(/(\\d)(?=(\\d{3})+$)/g, '$1,');\n }\n\n if (str[1] && str[1].length >= 4) {\n str[1] = str[1].replace(/(\\d{3})/g, '$1,');\n }\n\n return str.join('.');\n}\n\nvar qnn, images, sizes;\njQuery(function ($) {\n try {\n xMegaMenu('#mega-menu', {\n responseWidth: 1124,\n isRtl: true,\n mainTitle: appName,\n blurEffect: true,\n disableLinks: false\n });\n } catch (e) {\n console.log(e.message);\n }\n\n try {\n $(\".xzoom, .xzoom-gallery\").xzoom({\n tint: '#333',\n Xoffset: 15\n });\n } catch (e) {}\n\n $(window).on('load', function () {\n setTimeout(function () {\n $('#preloader').slideUp(700); // let max = 150 ;\n // for( const b of $(\".box\")) {\n // if ($(b).height() > max ){\n // max= $(b).height();\n // }\n // }\n // $('.box').height(max);\n // $(\"#favs .box\").removeAttr('style');\n }, 100);\n });\n setTimeout(function () {\n $('#preloader').slideUp(700);\n }, 100);\n setTimeout(function () {\n $('#preloader').slideUp(700);\n }, 10000);\n $(\"#toggle-side\").bind('click', function () {\n $('aside > div').slideToggle(300);\n });\n $('.owl1').owlCarousel({\n loop: true,\n margin: 0,\n responsiveClass: true,\n // autoplay: true,\n autoplayTimeout: 5000,\n autoplayHoverPause: true,\n item: 5,\n responsive: {\n 0: {\n nav: false,\n items: 2\n },\n 600: {\n items: 2,\n nav: false,\n loop: false\n },\n 1000: {\n items: 3,\n nav: false,\n loop: false\n },\n 1300: {\n items: 5,\n nav: false,\n loop: false\n }\n }\n });\n $('#owl2').owlCarousel({\n loop: true,\n margin: 0,\n responsiveClass: true,\n autoplay: true,\n autoplayTimeout: 5000,\n autoplayHoverPause: true,\n item: 3,\n responsive: {\n 0: {\n nav: false,\n items: 1\n },\n 600: {\n items: 2,\n nav: false,\n loop: false\n },\n 1000: {\n items: 3,\n nav: false,\n loop: false\n }\n }\n });\n $('#thumbs').owlCarousel({\n loop: false,\n margin: 4,\n responsiveClass: true,\n autoplay: true,\n autoplayTimeout: 5000,\n autoplayHoverPause: true,\n items: 4 // nav: true,\n\n });\n $('.owl-single-item').owlCarousel({\n loop: true,\n margin: 0,\n responsiveClass: true,\n autoplay: true,\n autoplayTimeout: 5000,\n autoplayHoverPause: true,\n items: 1 // nav: true,\n\n });\n $('#owlx1').owlCarousel({\n loop: true,\n margin: 15,\n responsiveClass: true,\n autoplay: true,\n autoplayTimeout: 5000,\n autoplayHoverPause: true,\n responsive: {\n 0: {\n nav: false,\n items: 1\n },\n 600: {\n items: 2,\n nav: false,\n loop: false\n },\n 1000: {\n items: 3,\n nav: false,\n loop: false\n },\n 1300: {\n items: 4,\n nav: false,\n loop: false\n }\n }\n });\n $('#owl3').owlCarousel({\n loop: false,\n margin: 0,\n responsiveClass: true,\n autoplay: true,\n autoplayTimeout: 5000,\n autoplayHoverPause: true,\n items: 1\n });\n $('.owl-sq').owlCarousel({\n loop: true,\n margin: 0,\n responsiveClass: true,\n autoplay: true,\n autoplayTimeout: 5000,\n responsive: {\n 0: {\n items: 2,\n nav: false\n },\n 600: {\n items: 2\n },\n 1000: {\n items: 3\n },\n 1300: {\n items: 6\n }\n }\n });\n $(\"#cp-deteail\").bind('click', function () {\n CopyToClipboard('tab-analyze');\n });\n\n var axiosError = function axiosError(err) {\n if (err.response.status == 401) {\n alertify.error('Authenticnation Error'); // window.location.href = '/#/login';\n } else if (err.response.status == 422) {\n // console.log(err.response.data.errors);\n for (var k in err.response.data.errors) {\n var er = err.response.data.errors[k];\n alertify.error(k + ' : ' + er[0]);\n }\n } else {\n alertify.error('Error' + err.response.status + ': ' + err.response.data.message);\n }\n };\n\n $(\"#filtering .btn\").bind('click', function () {\n $(\"#filtering .btn\").removeClass('active');\n $(this).addClass('active');\n var cls = $(this).data('cat');\n\n if (cls == 'all') {\n $(\"#da-thumbs .item\").slideDown(900);\n } else {\n $(\"#da-thumbs .item\").slideUp(600, function () {\n setTimeout(function () {\n $(\"#da-thumbs .item.\" + cls).slideDown(513);\n }, 100);\n });\n }\n });\n $(\".fav\").bind('click', function () {\n var url = $(\"#fav-toggle\").val() + '/' + $(this).data('id');\n var self = this;\n axios.get(url).then(function (e) {\n if (e.data.OK) {\n alertify.success(e.data.msg);\n\n if (e.data.liked) {\n $(self).addClass('liked');\n } else {\n $(self).removeClass('liked');\n }\n } else {\n alertify.error(e.data.msg);\n }\n });\n });\n $(\"#question-send\").bind('click', function () {\n var data = {};\n\n var _iterator = _createForOfIteratorHelper($(\"#question-form\").serializeArray()),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var d = _step.value;\n data[d.name] = d.value;\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n axios.post($(this).data('url'), data).then(function (e) {\n if (e.data.OK) {\n alertify.success(e.data.msg);\n $(\".comment-containerx\").text(e.data.msg);\n }\n })[\"catch\"](function (e) {\n axiosError(e);\n });\n });\n $(\".xsumbmiter\").submit(function () {\n $(this).attr('action', $(\"#smt\").val());\n });\n $(\".comment-reply\").click(function () {\n $('#reply').remove();\n var pid = $(this).data('id');\n $(\"#comment-form-body\").append(\"\"));\n $(\"#comment-message\").focus();\n });\n $(\".add-to-card\").click(function (e) {\n e.preventDefault();\n axios.get($(this).attr('href')).then(function (e) {\n $(\"#card-count\").text(e.data.data);\n window.alertify.message(e.data.msg);\n\n if (e.data.data > 0) {\n $(\"#card-info\").fadeIn(400);\n }\n });\n });\n $(\".add-to-card-q\").click(function (e) {\n e.preventDefault();\n axios.get($(this).attr('href') + '/' + $(\"#qn\").val() + '/' + $(\"#single-count\").val()).then(function (e) {\n $(\"#card-count\").text(e.data.data);\n window.alertify.message(e.data.msg);\n\n if (e.data.data > 0) {\n $(\"#card-info\").fadeIn(400);\n }\n });\n });\n $(\"#addon-wrapping\").bind('click', function () {\n var q = $(\"#searching\").val();\n window.location.href = $(\"#searching\").data('url') + '?q=' + q;\n return true;\n });\n $(\"#searching\").bind('keyup', function (e) {\n var q = $(this).val();\n\n if (e.key === 'Enter') {\n window.location.href = $(this).data('url') + '?q=' + q;\n return true;\n }\n\n if (q.length < 3) {\n return 0;\n }\n\n var offset = $(this).offset();\n offset.width = $(this).width() + 85 + 'px';\n offset.left -= 50;\n offset.top += 45;\n $(\"#search-list\").css(offset).slideDown(100);\n var text = '';\n var self = this;\n $(\"#search-list\").html(text + '
');\n axios.get($(this).data('ajax') + '?q=' + q).then(function (e) {\n if (!e.data.OK) {\n window.alertify.error(e.data.err);\n } else {\n text += '';\n $(\"#search-list\").html(text);\n }\n });\n });\n $(\".xzoom-thumbs a\").bind('click.light', function () {\n $(\"#lightbx\").attr('href', $(this).attr('href'));\n });\n\n try {\n if ($('#qnt').length != 0) {\n sizes = {};\n var qnt = JSON.parse($('#qnt').val());\n console.log(qnt);\n var txt = '';\n\n var _iterator3 = _createForOfIteratorHelper(qnt),\n _step3;\n\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n var q = _step3.value;\n\n if (q.count > 0) {\n var t = JSON.parse(q.data);\n\n if (sizes[t.size] == undefined) {\n sizes[t.size] = [];\n txt += \"
\\n \").concat(t.size, \"\\n
 \");\n }\n\n t.id = q.id;\n sizes[t.size].push(t);\n }\n }\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n\n $(\"#size-pick\").html(txt);\n setTimeout(function () {\n $(\"#size-pick .size:first-child\").click();\n }, 50); // $(\"#size-pick .size\").bind('click.select',function () {\n // $(\"#size-pick .size\").removeClass('active');\n\n var colorNames = {};\n\n try {\n colorNames = JSON.parse($(\"#colors\").val());\n } catch (_unused) {} // $(this).addClass('active');\n\n\n var colors = sizes[$(this).data('id')];\n txt = '';\n var cl = '';\n\n var _iterator4 = _createForOfIteratorHelper(colors),\n _step4;\n\n try {\n for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n var c = _step4.value;\n cl = colorNames[c.color]; // console.log(c.color,colorNames);\n\n txt += \"
\\n
\\n \").concat(cl, \"\\n
\");\n }\n } catch (err) {\n _iterator4.e(err);\n } finally {\n _iterator4.f();\n }\n\n $(\".color-pick\").html(txt);\n setTimeout(function () {\n $(\".color-pick .color:first-child\").click();\n }, 50);\n $(\".color-pick .color\").bind('click.sel', function () {\n $('.xzoom-thumbs a').eq($(this).data('image')).click();\n $(\".color-pick .color\").removeClass('active');\n $(this).addClass('active');\n $(\"#qn\").val($(this).data('id'));\n $(\"#last-pricex\").text(commafy($(this).data('price')));\n $(\"#counting\").text($(this).data('count'));\n $(\".product-count\").attr('max', $(this).data('count')).val(1);\n }); // });\n }\n } catch (e) {// console.log('size err',e.message);\n } // prticale\n\n\n try {\n var setParticles = function setParticles(num) {\n for (var i = 0; i < num; i++) {\n var prt = document.createElement('div');\n prt.setAttribute('class', 'particles');\n prt.style.left = 100 * Math.random() + \"%\";\n prt.animate([{\n transform: 'translate(-200px, 0) scale(' + Math.random() * 10 + ')'\n }, {\n transform: 'translate(' + Math.random() * 500 + 'px, 112vh) scale(' + Math.random() * 2 + ')',\n background: '#ff00ff',\n boxShadow: '0 0 4px #ff00ff, 0 0 8px #ff00ff',\n opacity: Math.random() * 1.4\n }], {\n duration: Math.random() * 400 + 8000,\n delay: -i * 100,\n iterations: Infinity\n });\n prtcl.appendChild(prt);\n }\n };\n\n var prtcl = document.getElementById('particle');\n setParticles(100);\n } catch (e) {// console.log(e.message);\n }\n\n setTimeout(function () {\n $(\".x-side-menu #searching\").attr('id', 'sub-search');\n $(\"#sub-search\").keyup(function () {\n var q = $(this).val();\n\n if (q.length < 3) {\n $(\".x-side-menu .list-group-item\").remove();\n return false;\n }\n\n axios.get($(this).data('ajax') + '?q=' + q).then(function (e) {\n if (!e.data.OK) {\n window.alertify.error(e.data.err);\n } else {\n $(\".x-side-menu .list-group-item\").remove(); // text += '';\n\n $(\".x-side-menu\").append(text);\n }\n });\n });\n }, 1000);\n $(\"#card table th\").each(function (k, e) {\n $(\"#card td:nth-child(\" + (k + 1) + \")\").attr('data-before', $(e).text().trim());\n });\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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Qm1DLENBQUMsR0FBQyxDQUF6QixJQUE0QixHQUE3QixDQUFELENBQW1Dd0IsSUFBbkMsQ0FBd0MsYUFBeEMsRUFBc0QzRCxDQUFDLENBQUNPLENBQUQsQ0FBRCxDQUFLa0QsSUFBTCxHQUFZOEQsSUFBWixFQUF0RDtFQUNILENBRkQ7QUFLSCxDQTNkSyxDQUFOIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL3RoZW1lL2pzL3RoZW1lLmpzPzBlODIiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gcmVxdWlyZSgnaGMtb2ZmY2FudmFzLW5hdi9kaXN0L2hjLW9mZmNhbnZhcy1uYXYnKTtcbi8vIGltcG9ydCB4TWVnYU1lbnUgZnJvbSAneC1tZWdhLW1lbnUvc3JjL3gtbWVnYS1tZW51JztcbmltcG9ydCB4bSBmcm9tICd4LW1lZ2EtbWVudS9kaXN0L3gtbWVnYS1tZW51Lm1pbic7XG5cbmxldCB4TWVnYU1lbnUgPSB3aW5kb3cueE1lZ2FNZW51ID0geG0ueE1lZ2FNZW51O1xuXG5mdW5jdGlvbiBDb3B5VG9DbGlwYm9hcmQoY29udGFpbmVyaWQpIHtcbiAgICBpZiAod2luZG93LmdldFNlbGVjdGlvbikge1xuICAgICAgICBpZiAod2luZG93LmdldFNlbGVjdGlvbigpLmVtcHR5KSB7IC8vIENocm9tZVxuICAgICAgICAgICAgd2luZG93LmdldFNlbGVjdGlvbigpLmVtcHR5KCk7XG4gICAgICAgIH0gZWxzZSBpZiAod2luZG93LmdldFNlbGVjdGlvbigpLnJlbW92ZUFsbFJhbmdlcykgeyAvLyBGaXJlZm94XG4gICAgICAgICAgICB3aW5kb3cuZ2V0U2VsZWN0aW9uKCkucmVtb3ZlQWxsUmFuZ2VzKCk7XG4gICAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGRvY3VtZW50LnNlbGVjdGlvbikgeyAvLyBJRT9cbiAgICAgICAgZG9jdW1lbnQuc2VsZWN0aW9uLmVtcHR5KCk7XG4gICAgfVxuXG4gICAgaWYgKGRvY3VtZW50LnNlbGVjdGlvbikge1xuICAgICAgICB2YXIgcmFuZ2UgPSBkb2N1bWVudC5ib2R5LmNyZWF0ZVRleHRSYW5nZSgpO1xuICAgICAgICByYW5nZS5tb3ZlVG9FbGVtZW50VGV4dChkb2N1bWVudC5nZXRFbGVtZW50QnlJZChjb250YWluZXJpZCkpO1xuICAgICAgICByYW5nZS5zZWxlY3QoKS5jcmVhdGVUZXh0UmFuZ2UoKTtcbiAgICAgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoXCJjb3B5XCIpO1xuICAgIH0gZWxzZSBpZiAod2luZG93LmdldFNlbGVjdGlvbikge1xuICAgICAgICB2YXIgcmFuZ2UgPSBkb2N1bWVudC5jcmVhdGVSYW5nZSgpO1xuICAgICAgICByYW5nZS5zZWxlY3ROb2RlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGNvbnRhaW5lcmlkKSk7XG4gICAgICAgIHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5hZGRSYW5nZShyYW5nZSk7XG4gICAgICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKFwiY29weVwiKTtcbiAgICB9XG5cbiAgICBhbGVydGlmeS5zdWNjZXNzKCfaqdm+24wg2LTYrycpO1xufVxuXG5mdW5jdGlvbiBjb21tYWZ5KG51bSkge1xuICAgIHZhciBzdHIgPSBudW0udG9TdHJpbmcoKS5zcGxpdCgnLicpO1xuICAgIGlmIChzdHJbMF0ubGVuZ3RoID49IDQpIHtcblxuICAgICAgICBzdHJbMF0gPSBzdHJbMF0ucmVwbGFjZSgvKFxcZCkoPz0oXFxkezN9KSskKS9nLCAnJDEsJyk7XG4gICAgfVxuICAgIGlmIChzdHJbMV0gJiYgc3RyWzFdLmxlbmd0aCA+PSA0KSB7XG5cbiAgICAgICAgc3RyWzFdID0gc3RyWzFdLnJlcGxhY2UoLyhcXGR7M30pL2csICckMSwnKTtcbiAgICB9XG4gICAgcmV0dXJuIHN0ci5qb2luKCcuJyk7XG59XG5cbmxldCBxbm4sIGltYWdlcywgc2l6ZXM7XG5cbmpRdWVyeShmdW5jdGlvbiAoJCkge1xuXG4gICAgdHJ5IHtcbiAgICAgICAgeE1lZ2FNZW51KCcjbWVnYS1tZW51Jywge1xuICAgICAgICAgICAgcmVzcG9uc2VXaWR0aDogMTEyNCxcbiAgICAgICAgICAgIGlzUnRsOiB0cnVlLFxuICAgICAgICAgICAgbWFpblRpdGxlOiBhcHBOYW1lLFxuICAgICAgICAgICAgYmx1ckVmZmVjdDogdHJ1ZSxcbiAgICAgICAgICAgIGRpc2FibGVMaW5rczogZmFsc2UsXG4gICAgICAgIH0pO1xuICAgIH0gY2F0Y2goZSkge1xuICAgICAgICBjb25zb2xlLmxvZyhlLm1lc3NhZ2UpO1xuICAgIH1cblxuXG4gICB0cnkge1xuICAgICAgICQoXCIueHpvb20sIC54em9vbS1nYWxsZXJ5XCIpLnh6b29tKHt0aW50OiAnIzMzMycsIFhvZmZzZXQ6IDE1fSk7XG4gICB9IGNhdGNoKGUpIHtcbiAgIH1cblxuXG4gICAgJCh3aW5kb3cpLm9uKCdsb2FkJywgZnVuY3Rpb24gKCkge1xuICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICQoJyNwcmVsb2FkZXInKS5zbGlkZVVwKDcwMCk7XG4gICAgICAgICAgICAvLyBsZXQgbWF4ID0gMTUwIDtcbiAgICAgICAgICAgIC8vIGZvciggY29uc3QgYiBvZiAkKFwiLmJveFwiKSkge1xuICAgICAgICAgICAgLy8gICAgIGlmICgkKGIpLmhlaWdodCgpID4gbWF4ICl7XG4gICAgICAgICAgICAvLyAgICAgICAgIG1heD0gJChiKS5oZWlnaHQoKTtcbiAgICAgICAgICAgIC8vICAgICB9XG4gICAgICAgICAgICAvLyB9XG4gICAgICAgICAgICAvLyAkKCcuYm94JykuaGVpZ2h0KG1heCk7XG4gICAgICAgICAgICAvLyAkKFwiI2ZhdnMgLmJveFwiKS5yZW1vdmVBdHRyKCdzdHlsZScpO1xuXG4gICAgICAgIH0sIDEwMCk7XG4gICAgfSk7XG4gICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICQoJyNwcmVsb2FkZXInKS5zbGlkZVVwKDcwMCk7XG4gICAgfSwgMTAwKTtcblxuICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICAkKCcjcHJlbG9hZGVyJykuc2xpZGVVcCg3MDApO1xuICAgIH0sIDEwMDAwKTtcbiAgICAkKFwiI3RvZ2dsZS1zaWRlXCIpLmJpbmQoJ2NsaWNrJywgZnVuY3Rpb24gKCkge1xuICAgICAgICAkKCdhc2lkZSA+IGRpdicpLnNsaWRlVG9nZ2xlKDMwMCk7XG4gICAgfSk7XG5cbiAgICAkKCcub3dsMScpLm93bENhcm91c2VsKHtcbiAgICAgICAgbG9vcDogdHJ1ZSxcbiAgICAgICAgbWFyZ2luOiAwLFxuICAgICAgICByZXNwb25zaXZlQ2xhc3M6IHRydWUsXG4gICAgICAgIC8vIGF1dG9wbGF5OiB0cnVlLFxuICAgICAgICBhdXRvcGxheVRpbWVvdXQ6IDUwMDAsXG4gICAgICAgIGF1dG9wbGF5SG92ZXJQYXVzZTogdHJ1ZSxcbiAgICAgICAgaXRlbTogNSxcbiAgICAgICAgcmVzcG9uc2l2ZToge1xuICAgICAgICAgICAgMDoge1xuICAgICAgICAgICAgICAgIG5hdjogZmFsc2UsXG4gICAgICAgICAgICAgICAgaXRlbXM6IDIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgNjAwOiB7XG4gICAgICAgICAgICAgICAgaXRlbXM6IDIsXG4gICAgICAgICAgICAgICAgbmF2OiBmYWxzZSxcbiAgICAgICAgICAgICAgICBsb29wOiBmYWxzZVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIDEwMDA6IHtcbiAgICAgICAgICAgICAgICBpdGVtczogMyxcbiAgICAgICAgICAgICAgICBuYXY6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGxvb3A6IGZhbHNlXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgMTMwMDoge1xuICAgICAgICAgICAgICAgIGl0ZW1zOiA1LFxuICAgICAgICAgICAgICAgIG5hdjogZmFsc2UsXG4gICAgICAgICAgICAgICAgbG9vcDogZmFsc2VcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xuICAgICQoJyNvd2wyJykub3dsQ2Fyb3VzZWwoe1xuICAgICAgICBsb29wOiB0cnVlLFxuICAgICAgICBtYXJnaW46IDAsXG4gICAgICAgIHJlc3BvbnNpdmVDbGFzczogdHJ1ZSxcbiAgICAgICAgYXV0b3BsYXk6IHRydWUsXG4gICAgICAgIGF1dG9wbGF5VGltZW91dDogNTAwMCxcbiAgICAgICAgYXV0b3BsYXlIb3ZlclBhdXNlOiB0cnVlLFxuICAgICAgICBpdGVtOiAzLFxuICAgICAgICByZXNwb25zaXZlOiB7XG4gICAgICAgICAgICAwOiB7XG4gICAgICAgICAgICAgICAgbmF2OiBmYWxzZSxcbiAgICAgICAgICAgICAgICBpdGVtczogMSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICA2MDA6IHtcbiAgICAgICAgICAgICAgICBpdGVtczogMixcbiAgICAgICAgICAgICAgICBuYXY6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGxvb3A6IGZhbHNlXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgMTAwMDoge1xuICAgICAgICAgICAgICAgIGl0ZW1zOiAzLFxuICAgICAgICAgICAgICAgIG5hdjogZmFsc2UsXG4gICAgICAgICAgICAgICAgbG9vcDogZmFsc2VcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgICQoJyN0aHVtYnMnKS5vd2xDYXJvdXNlbCh7XG4gICAgICAgIGxvb3A6IGZhbHNlLFxuICAgICAgICBtYXJnaW46IDQsXG4gICAgICAgIHJlc3BvbnNpdmVDbGFzczogdHJ1ZSxcbiAgICAgICAgYXV0b3BsYXk6IHRydWUsXG4gICAgICAgIGF1dG9wbGF5VGltZW91dDogNTAwMCxcbiAgICAgICAgYXV0b3BsYXlIb3ZlclBhdXNlOiB0cnVlLFxuICAgICAgICBpdGVtczogNCxcbiAgICAgICAgLy8gbmF2OiB0cnVlLFxuICAgIH0pO1xuICAgICQoJy5vd2wtc2luZ2xlLWl0ZW0nKS5vd2xDYXJvdXNlbCh7XG4gICAgICAgIGxvb3A6IHRydWUsXG4gICAgICAgIG1hcmdpbjogMCxcbiAgICAgICAgcmVzcG9uc2l2ZUNsYXNzOiB0cnVlLFxuICAgICAgICBhdXRvcGxheTogdHJ1ZSxcbiAgICAgICAgYXV0b3BsYXlUaW1lb3V0OiA1MDAwLFxuICAgICAgICBhdXRvcGxheUhvdmVyUGF1c2U6IHRydWUsXG4gICAgICAgIGl0ZW1zOiAxLFxuICAgICAgICAvLyBuYXY6IHRydWUsXG4gICAgfSk7XG5cbiAgICAkKCcjb3dseDEnKS5vd2xDYXJvdXNlbCh7XG4gICAgICAgIGxvb3A6IHRydWUsXG4gICAgICAgIG1hcmdpbjogMTUsXG4gICAgICAgIHJlc3BvbnNpdmVDbGFzczogdHJ1ZSxcbiAgICAgICAgYXV0b3BsYXk6IHRydWUsXG4gICAgICAgIGF1dG9wbGF5VGltZW91dDogNTAwMCxcbiAgICAgICAgYXV0b3BsYXlIb3ZlclBhdXNlOiB0cnVlLFxuICAgICAgICByZXNwb25zaXZlOiB7XG4gICAgICAgICAgICAwOiB7XG4gICAgICAgICAgICAgICAgbmF2OiBmYWxzZSxcbiAgICAgICAgICAgICAgICBpdGVtczogMSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICA2MDA6IHtcbiAgICAgICAgICAgICAgICBpdGVtczogMixcbiAgICAgICAgICAgICAgICBuYXY6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGxvb3A6IGZhbHNlXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgMTAwMDoge1xuICAgICAgICAgICAgICAgIGl0ZW1zOiAzLFxuICAgICAgICAgICAgICAgIG5hdjogZmFsc2UsXG4gICAgICAgICAgICAgICAgbG9vcDogZmFsc2VcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAxMzAwOiB7XG4gICAgICAgICAgICAgICAgaXRlbXM6IDQsXG4gICAgICAgICAgICAgICAgbmF2OiBmYWxzZSxcbiAgICAgICAgICAgICAgICBsb29wOiBmYWxzZVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSk7XG4gICAgJCgnI293bDMnKS5vd2xDYXJvdXNlbCh7XG4gICAgICAgIGxvb3A6IGZhbHNlLFxuICAgICAgICBtYXJnaW46IDAsXG4gICAgICAgIHJlc3BvbnNpdmVDbGFzczogdHJ1ZSxcbiAgICAgICAgYXV0b3BsYXk6IHRydWUsXG4gICAgICAgIGF1dG9wbGF5VGltZW91dDogNTAwMCxcbiAgICAgICAgYXV0b3BsYXlIb3ZlclBhdXNlOiB0cnVlLFxuICAgICAgICBpdGVtczogMSxcbiAgICB9KTtcbiAgICAkKCcub3dsLXNxJykub3dsQ2Fyb3VzZWwoe1xuICAgICAgICBsb29wOiB0cnVlLFxuICAgICAgICBtYXJnaW46IDAsXG4gICAgICAgIHJlc3BvbnNpdmVDbGFzczogdHJ1ZSxcbiAgICAgICAgYXV0b3BsYXk6IHRydWUsXG4gICAgICAgIGF1dG9wbGF5VGltZW91dDogNTAwMCxcbiAgICAgICAgcmVzcG9uc2l2ZToge1xuICAgICAgICAgICAgMDoge1xuICAgICAgICAgICAgICAgIGl0ZW1zOiAyLFxuICAgICAgICAgICAgICAgIG5hdjogZmFsc2VcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICA2MDA6IHtcbiAgICAgICAgICAgICAgICBpdGVtczogMixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAxMDAwOiB7XG4gICAgICAgICAgICAgICAgaXRlbXM6IDMsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgMTMwMDoge1xuICAgICAgICAgICAgICAgIGl0ZW1zOiA2LFxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICAkKFwiI2NwLWRldGVhaWxcIikuYmluZCgnY2xpY2snLGZ1bmN0aW9uICgpIHtcbiAgICAgICAgQ29weVRvQ2xpcGJvYXJkKCd0YWItYW5hbHl6ZScpO1xuICAgIH0pO1xuICAgIHZhciBheGlvc0Vycm9yID0gZnVuY3Rpb24gKGVycikge1xuICAgICAgICBpZiAoZXJyLnJlc3BvbnNlLnN0YXR1cyA9PSA0MDEpIHtcbiAgICAgICAgICAgIGFsZXJ0aWZ5LmVycm9yKCdBdXRoZW50aWNuYXRpb24gRXJyb3InKTtcbiAgICAgICAgICAgIC8vIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gJy8jL2xvZ2luJztcbiAgICAgICAgfSBlbHNlIGlmIChlcnIucmVzcG9uc2Uuc3RhdHVzID09IDQyMikge1xuICAgICAgICAgICAgLy8gY29uc29sZS5sb2coZXJyLnJlc3BvbnNlLmRhdGEuZXJyb3JzKTtcbiAgICAgICAgICAgIGZvciAoY29uc3QgayBpbiBlcnIucmVzcG9uc2UuZGF0YS5lcnJvcnMpIHtcbiAgICAgICAgICAgICAgICBsZXQgZXIgPSBlcnIucmVzcG9uc2UuZGF0YS5lcnJvcnNba107XG4gICAgICAgICAgICAgICAgYWxlcnRpZnkuZXJyb3IoayArICcgOiAnICsgZXJbMF0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBhbGVydGlmeS5lcnJvcignRXJyb3InICsgZXJyLnJlc3BvbnNlLnN0YXR1cyArICc6ICcgKyBlcnIucmVzcG9uc2UuZGF0YS5tZXNzYWdlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICQoXCIjZmlsdGVyaW5nIC5idG5cIikuYmluZCgnY2xpY2snLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICQoXCIjZmlsdGVyaW5nIC5idG5cIikucmVtb3ZlQ2xhc3MoJ2FjdGl2ZScpO1xuICAgICAgICAkKHRoaXMpLmFkZENsYXNzKCdhY3RpdmUnKTtcbiAgICAgICAgbGV0IGNscyA9ICQodGhpcykuZGF0YSgnY2F0Jyk7XG4gICAgICAgIGlmIChjbHMgPT0gJ2FsbCcpIHtcbiAgICAgICAgICAgICQoXCIjZGEtdGh1bWJzIC5pdGVtXCIpLnNsaWRlRG93big5MDApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgJChcIiNkYS10aHVtYnMgLml0ZW1cIikuc2xpZGVVcCg2MDAsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNkYS10aHVtYnMgLml0ZW0uXCIgKyBjbHMpLnNsaWRlRG93big1MTMpO1xuICAgICAgICAgICAgICAgIH0sIDEwMCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgJChcIi5mYXZcIikuYmluZCgnY2xpY2snLGZ1bmN0aW9uICgpIHtcbiAgICAgIGxldCB1cmwgPSAkKFwiI2Zhdi10b2dnbGVcIikudmFsKCkrJy8nKyQodGhpcykuZGF0YSgnaWQnKTtcbiAgICAgIGxldCBzZWxmID0gdGhpcztcbiAgICAgIGF4aW9zLmdldCh1cmwpLnRoZW4oZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgaWYgKGUuZGF0YS5PSyl7XG4gICAgICAgICAgICBhbGVydGlmeS5zdWNjZXNzKGUuZGF0YS5tc2cpO1xuICAgICAgICAgICAgaWYgKGUuZGF0YS5saWtlZCl7XG4gICAgICAgICAgICAgICAgJChzZWxmKS5hZGRDbGFzcygnbGlrZWQnKTtcbiAgICAgICAgICAgIH1lbHNle1xuICAgICAgICAgICAgICAgICQoc2VsZikucmVtb3ZlQ2xhc3MoJ2xpa2VkJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1lbHNle1xuICAgICAgICAgICAgYWxlcnRpZnkuZXJyb3IoZS5kYXRhLm1zZyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgJChcIiNxdWVzdGlvbi1zZW5kXCIpLmJpbmQoJ2NsaWNrJywgZnVuY3Rpb24gKCkge1xuICAgICAgICBsZXQgZGF0YSA9IHt9O1xuICAgICAgICBmb3IgKGNvbnN0IGQgb2YgJChcIiNxdWVzdGlvbi1mb3JtXCIpLnNlcmlhbGl6ZUFycmF5KCkpIHtcbiAgICAgICAgICAgIGRhdGFbZC5uYW1lXSA9IGQudmFsdWU7XG4gICAgICAgIH1cblxuICAgICAgICBheGlvcy5wb3N0KCQodGhpcykuZGF0YSgndXJsJyksIGRhdGEpLnRoZW4oZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICAgIGlmIChlLmRhdGEuT0spIHtcbiAgICAgICAgICAgICAgICBhbGVydGlmeS5zdWNjZXNzKGUuZGF0YS5tc2cpO1xuICAgICAgICAgICAgICAgICQoXCIuY29tbWVudC1jb250YWluZXJ4XCIpLnRleHQoZS5kYXRhLm1zZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uIChlKSB7XG4gICAgICAgICAgICBheGlvc0Vycm9yKGUpO1xuICAgICAgICB9KTtcbiAgICB9KTtcblxuICAgICQoXCIueHN1bWJtaXRlclwiKS5zdWJtaXQoZnVuY3Rpb24gKCkge1xuICAgICAgICAkKHRoaXMpLmF0dHIoJ2FjdGlvbicsICQoXCIjc210XCIpLnZhbCgpKTtcbiAgICB9KTtcbiAgICAkKFwiLmNvbW1lbnQtcmVwbHlcIikuY2xpY2soZnVuY3Rpb24gKCkge1xuICAgICAgICAkKCcjcmVwbHknKS5yZW1vdmUoKTtcbiAgICAgICAgdmFyIHBpZCA9ICQodGhpcykuZGF0YSgnaWQnKTtcbiAgICAgICAgJChcIiNjb21tZW50LWZvcm0tYm9keVwiKS5hcHBlbmQoXCI8aW5wdXQgdHlwZT1cXFwiaGlkZGVuXFxcIiBpZD1cXFwicmVwbHlcXFwiIG5hbWU9XFxcInBhcmVudFxcXCIgdmFsdWU9XFxcIlwiLmNvbmNhdChwaWQsIFwiXFxcIiAvPlwiKSk7XG4gICAgICAgICQoXCIjY29tbWVudC1tZXNzYWdlXCIpLmZvY3VzKCk7XG4gICAgfSk7XG5cbiAgICAkKFwiLmFkZC10by1jYXJkXCIpLmNsaWNrKGZ1bmN0aW9uIChlKSB7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgYXhpb3MuZ2V0KCQodGhpcykuYXR0cignaHJlZicpKS50aGVuKGZ1bmN0aW9uIChlKSB7XG4gICAgICAgICAgICAkKFwiI2NhcmQtY291bnRcIikudGV4dChlLmRhdGEuZGF0YSk7XG4gICAgICAgICAgICB3aW5kb3cuYWxlcnRpZnkubWVzc2FnZShlLmRhdGEubXNnKTtcbiAgICAgICAgICAgIGlmIChlLmRhdGEuZGF0YSA+IDApIHtcbiAgICAgICAgICAgICAgICAkKFwiI2NhcmQtaW5mb1wiKS5mYWRlSW4oNDAwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfSk7XG4gICAgJChcIi5hZGQtdG8tY2FyZC1xXCIpLmNsaWNrKGZ1bmN0aW9uIChlKSB7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgYXhpb3MuZ2V0KCQodGhpcykuYXR0cignaHJlZicpICsgJy8nICsgJChcIiNxblwiKS52YWwoKSsnLycrJChcIiNzaW5nbGUtY291bnRcIikudmFsKCkpLnRoZW4oZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICAgICQoXCIjY2FyZC1jb3VudFwiKS50ZXh0KGUuZGF0YS5kYXRhKTtcbiAgICAgICAgICAgIHdpbmRvdy5hbGVydGlmeS5tZXNzYWdlKGUuZGF0YS5tc2cpO1xuICAgICAgICAgICAgaWYgKGUuZGF0YS5kYXRhID4gMCkge1xuICAgICAgICAgICAgICAgICQoXCIjY2FyZC1pbmZvXCIpLmZhZGVJbig0MDApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9KTtcblxuICAgICQoXCIjYWRkb24td3JhcHBpbmdcIikuYmluZCgnY2xpY2snLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGxldCBxID0gJChcIiNzZWFyY2hpbmdcIikudmFsKCk7XG4gICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gJChcIiNzZWFyY2hpbmdcIikuZGF0YSgndXJsJykgKyAnP3E9JyArIHE7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH0pO1xuICAgICQoXCIjc2VhcmNoaW5nXCIpLmJpbmQoJ2tleXVwJywgZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgbGV0IHEgPSAkKHRoaXMpLnZhbCgpO1xuICAgICAgICBpZiAoZS5rZXkgPT09ICdFbnRlcicpIHtcbiAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gJCh0aGlzKS5kYXRhKCd1cmwnKSArICc/cT0nICsgcTtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChxLmxlbmd0aCA8IDMpIHtcbiAgICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICB9XG4gICAgICAgIGxldCBvZmZzZXQgPSAkKHRoaXMpLm9mZnNldCgpO1xuICAgICAgICBvZmZzZXQud2lkdGggPSAoJCh0aGlzKS53aWR0aCgpICsgODUpICsgJ3B4JztcbiAgICAgICAgb2Zmc2V0LmxlZnQgLT0gNTA7XG4gICAgICAgIG9mZnNldC50b3AgKz0gNDU7XG4gICAgICAgICQoXCIjc2VhcmNoLWxpc3RcIikuY3NzKG9mZnNldCkuc2xpZGVEb3duKDEwMCk7XG4gICAgICAgIGxldCB0ZXh0ID0gJyc7XG4gICAgICAgIGxldCBzZWxmID0gdGhpcztcbiAgICAgICAgJChcIiNzZWFyY2gtbGlzdFwiKS5odG1sKHRleHQgKyAnPGRpdiBjbGFzcz1cInAtNCB0ZXh0LWNlbnRlclwiPjxpIGNsYXNzPVwiZmEgZmEtc3BpbiBmYS1zcGlubmVyXCI+PC9pPjwvZGl2PicpO1xuICAgICAgICBheGlvcy5nZXQoJCh0aGlzKS5kYXRhKCdhamF4JykgKyAnP3E9JyArIHEpLnRoZW4oZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICAgIGlmICghZS5kYXRhLk9LKSB7XG4gICAgICAgICAgICAgICAgd2luZG93LmFsZXJ0aWZ5LmVycm9yKGUuZGF0YS5lcnIpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0ZXh0ICs9ICc8dWwgY2xhc3M9XCJsaXN0LWdyb3VwXCI+JztcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHAgb2YgZS5kYXRhLmRhdGEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dCArPSAnPGxpIGNsYXNzPVwibGlzdC1ncm91cC1pdGVtXCI+JztcbiAgICAgICAgICAgICAgICAgICAgdGV4dCArPSBgPGEgaHJlZj1cIiR7cC5saW5rfVwiPmA7XG4gICAgICAgICAgICAgICAgICAgIHRleHQgKz0gYDxpbWcgc3JjPVwiJHtwLmltYWdlfVwiIGFsdD1cInByb2R1Y3QgaW1hZ2VcIj5gXG4gICAgICAgICAgICAgICAgICAgIHRleHQgKz0gYDxoND4ke3AubmFtZX08L2g0PmBcbiAgICAgICAgICAgICAgICAgICAgdGV4dCArPSBgPGg1PiR7cC5wcmljZX08L2g1PmBcbiAgICAgICAgICAgICAgICAgICAgdGV4dCArPSAnPC9hPic7XG4gICAgICAgICAgICAgICAgICAgIHRleHQgKz0gJzwvbGk+JztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGV4dCArPSAnPGxpIGNsYXNzPVwibGlzdC1ncm91cC1pdGVtXCI+JztcbiAgICAgICAgICAgICAgICB0ZXh0ICs9ICc8YSBocmVmPVwiJyArICQoc2VsZikuZGF0YSgndXJsJykgKyAnP3E9JyArIHEgKyAnXCI+JztcbiAgICAgICAgICAgICAgICB0ZXh0ICs9ICfYrNiz2KrYrNmIINmF2YjYp9ix2K8g2KjbjNi02KrYsSA6JztcbiAgICAgICAgICAgICAgICB0ZXh0ICs9IHE7XG4gICAgICAgICAgICAgICAgdGV4dCArPSAnPC9hPic7XG4gICAgICAgICAgICAgICAgdGV4dCArPSAnPC9saT4nO1xuICAgICAgICAgICAgICAgIHRleHQgKz0gJzwvdWw+JztcbiAgICAgICAgICAgICAgICAkKFwiI3NlYXJjaC1saXN0XCIpLmh0bWwodGV4dCk7XG5cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfSk7XG4gICAgJChcIi54em9vbS10aHVtYnMgYVwiKS5iaW5kKCdjbGljay5saWdodCcsZnVuY3Rpb24gKCkge1xuICAgICAgJChcIiNsaWdodGJ4XCIpLmF0dHIoJ2hyZWYnLCQodGhpcykuYXR0cignaHJlZicpKTtcbiAgICB9KTtcbiAgICB0cnkge1xuICAgICAgICBpZiAoJCgnI3FudCcpLmxlbmd0aCAhPSAwKSB7XG4gICAgICAgICAgICBzaXplcyA9IHt9O1xuICAgICAgICAgICAgbGV0IHFudCA9IEpTT04ucGFyc2UoJCgnI3FudCcpLnZhbCgpKTtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKHFudCk7XG4gICAgICAgICAgICBsZXQgdHh0ID0gJyc7XG4gICAgICAgICAgICBmb3IoIGNvbnN0IHEgb2YgcW50KSB7XG4gICAgICAgICAgICAgICAgaWYgKHEuY291bnQgPiAwKXtcbiAgICAgICAgICAgICAgICAgICAgbGV0IHQgPSBKU09OLnBhcnNlKHEuZGF0YSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzaXplc1t0LnNpemVdID09IHVuZGVmaW5lZCl7XG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplc1t0LnNpemVdPVtdO1xuICAgICAgICAgICAgICAgICAgICAgICAgdHh0ICs9IGA8ZGl2IGRhdGEtaWQ9XCIke3Quc2l6ZX1cIiBjbGFzcz1cImJhZGdlIGJnLXNlY29uZGFyeSBzaXplXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR7dC5zaXplfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gJm5ic3A7YDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0LmlkID0gcS5pZDtcbiAgICAgICAgICAgICAgICAgICAgc2l6ZXNbdC5zaXplXS5wdXNoKHQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICQoXCIjc2l6ZS1waWNrXCIpLmh0bWwodHh0KTtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICQoXCIjc2l6ZS1waWNrIC5zaXplOmZpcnN0LWNoaWxkXCIpLmNsaWNrKCk7XG4gICAgICAgICAgICB9LDUwKTtcbiAgICAgICAgICAgIC8vICQoXCIjc2l6ZS1waWNrIC5zaXplXCIpLmJpbmQoJ2NsaWNrLnNlbGVjdCcsZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgLy8gICAgICQoXCIjc2l6ZS1waWNrIC5zaXplXCIpLnJlbW92ZUNsYXNzKCdhY3RpdmUnKTtcbiAgICAgICAgICAgICAgICBsZXQgY29sb3JOYW1lcyAgPSB7fTtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBjb2xvck5hbWVzID0gSlNPTi5wYXJzZSgkKFwiI2NvbG9yc1wiKS52YWwoKSk7XG4gICAgICAgICAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLy8gJCh0aGlzKS5hZGRDbGFzcygnYWN0aXZlJyk7XG4gICAgICAgICAgICAgICAgbGV0IGNvbG9ycyA9IHNpemVzWyQodGhpcykuZGF0YSgnaWQnKV07XG4gICAgICAgICAgICAgICAgdHh0ID0gJyc7XG4gICAgICAgICAgICAgICAgbGV0IGNsID0gJyc7XG4gICAgICAgICAgICAgICAgZm9yKCBjb25zdCBjIG9mIGNvbG9ycykge1xuICAgICAgICAgICAgICAgICAgICBjbCA9IGNvbG9yTmFtZXNbYy5jb2xvcl07XG4gICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKGMuY29sb3IsY29sb3JOYW1lcyk7XG4gICAgICAgICAgICAgICAgICAgIHR4dCArPSBgPGRpdiBkYXRhLWlkPVwiJHtjLmlkfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtcHJpY2U9XCIke2MucHJpY2V9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1jb3VudD1cIiR7Yy5jb3VudH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1pbWFnZT1cIiR7Yy5pbWFnZX1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjb2xvclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNsXCIgc3R5bGU9XCJiYWNrZ3JvdW5kOiAke2MuY29sb3J9XCIgPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+JHtjbH08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5gO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICQoXCIuY29sb3ItcGlja1wiKS5odG1sKHR4dCk7XG4gICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICQoXCIuY29sb3ItcGljayAuY29sb3I6Zmlyc3QtY2hpbGRcIikuY2xpY2soKTtcbiAgICAgICAgICAgICAgICB9LDUwKTtcbiAgICAgICAgICAgICAgICAkKFwiLmNvbG9yLXBpY2sgLmNvbG9yXCIpLmJpbmQoJ2NsaWNrLnNlbCcsZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAkKCcueHpvb20tdGh1bWJzIGEnKS5lcSgkKHRoaXMpLmRhdGEoJ2ltYWdlJykpLmNsaWNrKCk7XG4gICAgICAgICAgICAgICAgICAgICQoXCIuY29sb3ItcGljayAuY29sb3JcIikucmVtb3ZlQ2xhc3MoJ2FjdGl2ZScpO1xuICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLmFkZENsYXNzKCdhY3RpdmUnKTtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNxblwiKS52YWwoJCh0aGlzKS5kYXRhKCdpZCcpKTtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNsYXN0LXByaWNleFwiKS50ZXh0KGNvbW1hZnkoJCh0aGlzKS5kYXRhKCdwcmljZScpKSk7XG4gICAgICAgICAgICAgICAgICAgICQoXCIjY291bnRpbmdcIikudGV4dCgkKHRoaXMpLmRhdGEoJ2NvdW50JykpO1xuICAgICAgICAgICAgICAgICAgICAkKFwiLnByb2R1Y3QtY291bnRcIikuYXR0cignbWF4JywkKHRoaXMpLmRhdGEoJ2NvdW50JykpLnZhbCgxKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIC8vIH0pO1xuXG4gICAgICAgIH1cbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKCdzaXplIGVycicsZS5tZXNzYWdlKTtcbiAgICB9XG5cblxuLy8gcHJ0aWNhbGVcbiAgICB0cnkge1xuICAgICAgICBsZXQgcHJ0Y2wgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGFydGljbGUnKVxuXG4gICAgICAgIGZ1bmN0aW9uIHNldFBhcnRpY2xlcyhudW0pIHtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbnVtOyBpKyspIHtcbiAgICAgICAgICAgICAgICBsZXQgcHJ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JylcbiAgICAgICAgICAgICAgICBwcnQuc2V0QXR0cmlidXRlKCdjbGFzcycsICdwYXJ0aWNsZXMnKVxuICAgICAgICAgICAgICAgIHBydC5zdHlsZS5sZWZ0ID0gMTAwICogTWF0aC5yYW5kb20oKSArIFwiJVwiXG4gICAgICAgICAgICAgICAgcHJ0LmFuaW1hdGUoW3tcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiAndHJhbnNsYXRlKC0yMDBweCwgMCkgc2NhbGUoJyArIE1hdGgucmFuZG9tKCkgKiAxMCArICcpJ1xuICAgICAgICAgICAgICAgIH0sIHtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiAndHJhbnNsYXRlKCcgKyBNYXRoLnJhbmRvbSgpICogNTAwICsgJ3B4LCAxMTJ2aCkgc2NhbGUoJyArIE1hdGgucmFuZG9tKCkgKiAyICsgJyknLFxuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAnI2ZmMDBmZicsXG4gICAgICAgICAgICAgICAgICAgIGJveFNoYWRvdzogJzAgMCA0cHggI2ZmMDBmZiwgMCAwIDhweCAjZmYwMGZmJyxcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogTWF0aC5yYW5kb20oKSAqIDEuNFxuICAgICAgICAgICAgICAgIH1dLCB7XG4gICAgICAgICAgICAgICAgICAgIGR1cmF0aW9uOiBNYXRoLnJhbmRvbSgpICogNDAwICsgODAwMCxcbiAgICAgICAgICAgICAgICAgICAgZGVsYXk6IC1pICogMTAwLFxuICAgICAgICAgICAgICAgICAgICBpdGVyYXRpb25zOiBJbmZpbml0eVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgcHJ0Y2wuYXBwZW5kQ2hpbGQocHJ0KVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgc2V0UGFydGljbGVzKDEwMClcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKGUubWVzc2FnZSk7XG4gICAgfVxuXG4gICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICQoXCIueC1zaWRlLW1lbnUgI3NlYXJjaGluZ1wiKS5hdHRyKCdpZCcsJ3N1Yi1zZWFyY2gnKTtcbiAgICAgICAgJChcIiNzdWItc2VhcmNoXCIpLmtleXVwKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGxldCBxID0gJCh0aGlzKS52YWwoKTtcbiAgICAgICAgICAgIGlmICAocS5sZW5ndGggPCAzKXtcbiAgICAgICAgICAgICAgICAkKFwiLngtc2lkZS1tZW51IC5saXN0LWdyb3VwLWl0ZW1cIikucmVtb3ZlKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYXhpb3MuZ2V0KCQodGhpcykuZGF0YSgnYWpheCcpICsgJz9xPScgKyBxKS50aGVuKGZ1bmN0aW9uIChlKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFlLmRhdGEuT0spIHtcbiAgICAgICAgICAgICAgICAgICAgd2luZG93LmFsZXJ0aWZ5LmVycm9yKGUuZGF0YS5lcnIpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICQoXCIueC1zaWRlLW1lbnUgLmxpc3QtZ3JvdXAtaXRlbVwiKS5yZW1vdmUoKTtcbiAgICAgICAgICAgICAgICAgICAgLy8gdGV4dCArPSAnPHVsIGNsYXNzPVwibGlzdC1ncm91cFwiPic7XG4gICAgICAgICAgICAgICAgICAgIGxldCB0ZXh0ID0gJyc7XG4gICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgcCBvZiBlLmRhdGEuZGF0YSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dCArPSAnPGxpIGNsYXNzPVwibGlzdC1ncm91cC1pdGVtXCI+JztcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQgKz0gYDxhIGhyZWY9XCIke3AubGlua31cIj5gO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dCArPSBgPGltZyBzcmM9XCIke3AuaW1hZ2V9XCIgYWx0PVwicHJvZHVjdCBpbWFnZVwiPmBcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQgKz0gYDxzcGFuPiR7cC5uYW1lfTwvc3Bhbj4gPGhyPmBcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQgKz0gYDxiPiR7cC5wcmljZX08L2I+YFxuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dCArPSAnPC9hPic7XG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0ICs9ICc8L2xpPic7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGV4dCArPSAnPGxpIGNsYXNzPVwibGlzdC1ncm91cC1pdGVtXCI+JztcbiAgICAgICAgICAgICAgICAgICAgdGV4dCArPSAnPGEgaHJlZj1cIicgKyAkKHNlbGYpLmRhdGEoJ3VybCcpICsgJz9xPScgKyBxICsgJ1wiPic7XG4gICAgICAgICAgICAgICAgICAgIHRleHQgKz0gJ9is2LPYqtis2Ygg2YXZiNin2LHYryDYqNuM2LTYqtixIDonO1xuICAgICAgICAgICAgICAgICAgICB0ZXh0ICs9IHE7XG4gICAgICAgICAgICAgICAgICAgIHRleHQgKz0gJzwvYT4nO1xuICAgICAgICAgICAgICAgICAgICB0ZXh0ICs9ICc8L2xpPic7XG4gICAgICAgICAgICAgICAgICAgIC8vIHRleHQgKz0gJzwvdWw+JztcbiAgICAgICAgICAgICAgICAgICAgJChcIi54LXNpZGUtbWVudVwiKS5hcHBlbmQodGV4dCk7XG5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfSwxMDAwKTtcblxuICAgICQoXCIjY2FyZCB0YWJsZSB0aFwiKS5lYWNoKGZ1bmN0aW9uIChrLGUpIHtcbiAgICAgICAgJChcIiNjYXJkIHRkOm50aC1jaGlsZChcIisoaysxKStcIilcIikuYXR0cignZGF0YS1iZWZvcmUnLCQoZSkudGV4dCgpLnRyaW0oKSk7XG4gICAgfSlcblxuXG59KTtcblxuXG4iXSwibmFtZXMiOlsieG0iLCJ4TWVnYU1lbnUiLCJ3aW5kb3ciLCJDb3B5VG9DbGlwYm9hcmQiLCJjb250YWluZXJpZCIsImdldFNlbGVjdGlvbiIsImVtcHR5IiwicmVtb3ZlQWxsUmFuZ2VzIiwiZG9jdW1lbnQiLCJzZWxlY3Rpb24iLCJyYW5nZSIsImJvZHkiLCJjcmVhdGVUZXh0UmFuZ2UiLCJtb3ZlVG9FbGVtZW50VGV4dCIsImdldEVsZW1lbnRCeUlkIiwic2VsZWN0IiwiZXhlY0NvbW1hbmQiLCJjcmVhdGVSYW5nZSIsInNlbGVjdE5vZGUiLCJhZGRSYW5nZSIsImFsZXJ0aWZ5Iiwic3VjY2VzcyIsImNvbW1hZnkiLCJudW0iLCJzdHIiLCJ0b1N0cmluZyIsInNwbGl0IiwibGVuZ3RoIiwicmVwbGFjZSIsImpvaW4iLCJxbm4iLCJpbWFnZXMiLCJzaXplcyIsImpRdWVyeSIsIiQiLCJyZXNwb25zZVdpZHRoIiwiaXNSdGwiLCJtYWluVGl0bGUiLCJhcHBOYW1lIiwiYmx1ckVmZmVjdCIsImRpc2FibGVMaW5rcyIsImUiLCJjb25zb2xlIiwibG9nIiwibWVzc2FnZSIsInh6b29tIiwidGludCIsIlhvZmZzZXQiLCJvbiIsInNldFRpbWVvdXQiLCJzbGlkZVVwIiwiYmluZCIsInNsaWRlVG9nZ2xlIiwib3dsQ2Fyb3VzZWwiLCJsb29wIiwibWFyZ2luIiwicmVzcG9uc2l2ZUNsYXNzIiwiYXV0b3BsYXlUaW1lb3V0IiwiYXV0b3BsYXlIb3ZlclBhdXNlIiwiaXRlbSIsInJlc3BvbnNpdmUiLCJuYXYiLCJpdGVtcyIsImF1dG9wbGF5IiwiYXhpb3NFcnJvciIsImVyciIsInJlc3BvbnNlIiwic3RhdHVzIiwiZXJyb3IiLCJrIiwiZGF0YSIsImVycm9ycyIsImVyIiwicmVtb3ZlQ2xhc3MiLCJhZGRDbGFzcyIsImNscyIsInNsaWRlRG93biIsInVybCIsInZhbCIsInNlbGYiLCJheGlvcyIsImdldCIsInRoZW4iLCJPSyIsIm1zZyIsImxpa2VkIiwic2VyaWFsaXplQXJyYXkiLCJkIiwibmFtZSIsInZhbHVlIiwicG9zdCIsInRleHQiLCJzdWJtaXQiLCJhdHRyIiwiY2xpY2siLCJyZW1vdmUiLCJwaWQiLCJhcHBlbmQiLCJjb25jYXQiLCJmb2N1cyIsInByZXZlbnREZWZhdWx0IiwiZmFkZUluIiwicSIsImxvY2F0aW9uIiwiaHJlZiIsImtleSIsIm9mZnNldCIsIndpZHRoIiwibGVmdCIsInRvcCIsImNzcyIsImh0bWwiLCJwIiwibGluayIsImltYWdlIiwicHJpY2UiLCJxbnQiLCJKU09OIiwicGFyc2UiLCJ0eHQiLCJjb3VudCIsInQiLCJzaXplIiwidW5kZWZpbmVkIiwiaWQiLCJwdXNoIiwiY29sb3JOYW1lcyIsImNvbG9ycyIsImNsIiwiYyIsImNvbG9yIiwiZXEiLCJzZXRQYXJ0aWNsZXMiLCJpIiwicHJ0IiwiY3JlYXRlRWxlbWVudCIsInNldEF0dHJpYnV0ZSIsInN0eWxlIiwiTWF0aCIsInJhbmRvbSIsImFuaW1hdGUiLCJ0cmFuc2Zvcm0iLCJiYWNrZ3JvdW5kIiwiYm94U2hhZG93Iiwib3BhY2l0eSIsImR1cmF0aW9uIiwiZGVsYXkiLCJpdGVyYXRpb25zIiwiSW5maW5pdHkiLCJwcnRjbCIsImFwcGVuZENoaWxkIiwia2V5dXAiLCJlYWNoIiwidHJpbSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./resources/theme/js/theme.js\n"); /***/ }), diff --git a/resources/sass/card.scss b/resources/sass/card.scss index bb81f37..ca9a5f3 100644 --- a/resources/sass/card.scss +++ b/resources/sass/card.scss @@ -403,3 +403,49 @@ transform: scale(1); } } + + +.color-pick { + +} + +.color-pick .color { + display: inline-block; + opacity: .75; + margin-right: 4px; + border-radius: 15px; + border: 1px dotted silver; +} +.color-pick .color span { + display: inline-block; + mix-blend-mode: darken; + font-size: 11px; + padding-right: 4px; + padding-left: 4px; +} + +.color-pick .color .cl{ + float: left; + min-width: 25px; + height: 25px; + display: inline-block; + border-radius: 50%; + position: relative; + cursor: pointer; +} + +.color-pick .color.active { + opacity: 1; + border: 1px solid black; + position: relative; + padding-right: 15px; +} + +.color-pick .color.active .cl:after { + content: '✓'; + right: 20%; + top:5%; + position: absolute; + color: white; + mix-blend-mode: difference; +} diff --git a/resources/theme/js/theme.js b/resources/theme/js/theme.js index 497db04..2513b16 100755 --- a/resources/theme/js/theme.js +++ b/resources/theme/js/theme.js @@ -381,8 +381,8 @@ jQuery(function ($) { try { if ($('#qnt').length != 0) { sizes = {}; - qnt = JSON.parse($('#qnt').val()); - // console.log(qnt); + let qnt = JSON.parse($('#qnt').val()); + console.log(qnt); let txt = ''; for( const q of qnt) { if (q.count > 0){ @@ -401,17 +401,17 @@ jQuery(function ($) { setTimeout(function () { $("#size-pick .size:first-child").click(); },50); - $("#size-pick .size").bind('click.select',function () { - $("#size-pick .size").removeClass('active'); + // $("#size-pick .size").bind('click.select',function () { + // $("#size-pick .size").removeClass('active'); let colorNames = {}; try { colorNames = JSON.parse($("#colors").val()); } catch { } - $(this).addClass('active'); + // $(this).addClass('active'); let colors = sizes[$(this).data('id')]; - let txt = ''; + txt = ''; let cl = ''; for( const c of colors) { cl = colorNames[c.color]; @@ -439,7 +439,7 @@ jQuery(function ($) { $("#counting").text($(this).data('count')); $(".product-count").attr('max',$(this).data('count')).val(1); }); - }); + // }); } } catch (e) { diff --git a/resources/views/admin/product/form/publishProductForm.blade.php b/resources/views/admin/product/form/publishProductForm.blade.php index 9476d36..1c63e7e 100755 --- a/resources/views/admin/product/form/publishProductForm.blade.php +++ b/resources/views/admin/product/form/publishProductForm.blade.php @@ -2,18 +2,13 @@
-
- - active??0) != 0) - checked - @endif - value="1"/> -
+
+ active??0) != 0) + checked + @endif> + +
diff --git a/resources/views/admin/props/propForm.blade.php b/resources/views/admin/props/propForm.blade.php index ba7d4d4..58d0e03 100755 --- a/resources/views/admin/props/propForm.blade.php +++ b/resources/views/admin/props/propForm.blade.php @@ -35,7 +35,7 @@
+ value="{{old('width',$p->width??'col-md-12')}}">
diff --git a/resources/views/admin/transport/transportForm.blade.php b/resources/views/admin/transport/transportForm.blade.php index ce25018..febcf5d 100755 --- a/resources/views/admin/transport/transportForm.blade.php +++ b/resources/views/admin/transport/transportForm.blade.php @@ -45,16 +45,19 @@ - +
- is_default) checked @endif/> - + +
+ is_default) checked @endif type="checkbox" id="is_default"> + +
+ +
diff --git a/resources/views/website/card.blade.php b/resources/views/website/card.blade.php index 23f126b..d566537 100755 --- a/resources/views/website/card.blade.php +++ b/resources/views/website/card.blade.php @@ -151,9 +151,9 @@ {{\App\Helpers\getColorName($data->color)}} - - {{$data->size}} - +{{-- --}} +{{-- {{$data->size}}--}} +{{-- --}} @if($qpro->price == 0) diff --git a/resources/views/website/product.blade.php b/resources/views/website/product.blade.php index d62def1..365db81 100755 --- a/resources/views/website/product.blade.php +++ b/resources/views/website/product.blade.php @@ -139,17 +139,29 @@
- - @php $colors = json_decode(\App\Helpers\getProp('color')->options,'true'); @endphp - @foreach($colors as $c) -
- @endforeach
@endif + + + تعداد + + + {{--
--}} +
+
+ +
+ +
+ +
+
+ + @if($pro->hasMeta('warranty')) @@ -199,8 +211,8 @@
- + افزودن به سبد خرید @@ -219,6 +231,7 @@
+ @foreach($pro->getAllMeta() as $k => $meta) @if($k != 'color' && $k != 'warranty') @@ -374,6 +387,7 @@ + get();!!}'>