1//custom jquery method for toggle attr 2$.fn.toggleAttr = function (attr, attr1, attr2) { 3 return this.each(function () { 4 var self = $(this); 5 if (self.attr(attr) == attr1) self.attr(attr, attr2); 6 else self.attr(attr, attr1); 7 }); 8}; 9(function ($) { 10 // USE STRICT 11 "use strict"; 12 13 AIZ.data = { 14 csrf: $('meta[name="csrf-token"]').attr("content"), 15 appUrl: $('meta[name="app-url"]').attr("content"), 16 fileBaseUrl: $('meta[name="file-base-url"]').attr("content"), 17 }; 18 AIZ.uploader = { 19 data: { 20 selectedFiles: [], 21 selectedFilesObject: [], 22 clickedForDelete: null, 23 allFiles: [], 24 multiple: false, 25 type: "all", 26 next_page_url: null, 27 prev_page_url: null, 28 }, 29 removeInputValue: function (id, array, elem) { 30 var selected = array.filter(function (item) { 31 return item !== id; 32 }); 33 if (selected.length > 0) { 34 $(elem) 35 .find(".file-amount") 36 .html(AIZ.uploader.updateFileHtml(selected)); 37 } else { 38 elem.find(".file-amount").html(AIZ.local.choose_file); 39 } 40 $(elem).find(".selected-files").val(selected); 41 }, 42 removeAttachment: function () { 43 $(document).on("click", ".remove-attachment", function () { 44 var value = $(this).closest(".file-preview-item").data("id"); 45 var selected = $(this) 46 .closest(".file-preview") 47 .prev('[data-toggle="aizuploader"]') 48 .find(".selected-files") 49 .val() 50 .split(",") 51 .map(Number); 52 53 AIZ.uploader.removeInputValue( 54 value, 55 selected, 56 $(this) 57 .closest(".file-preview") 58 .prev('[data-toggle="aizuploader"]') 59 ); 60 $(this).closest(".file-preview-item").remove(); 61 }); 62 }, 63 deleteUploaderFile: function () { 64 $(".aiz-uploader-delete").each(function () { 65 $(this).on("click", function (e) { 66 e.preventDefault(); 67 var id = $(this).data("id"); 68 AIZ.uploader.data.clickedForDelete = id; 69 $("#aizUploaderDelete").modal("show"); 70 71 $(".aiz-uploader-confirmed-delete").on( 72 "click", 73 function (e) { 74 e.preventDefault(); 75 if (e.detail === 1) { 76 var clickedForDeleteObject = 77 AIZ.uploader.data.allFiles[ 78 AIZ.uploader.data.allFiles.findIndex( 79 (x) => 80 x.id === 81 AIZ.uploader.data 82 .clickedForDelete 83 ) 84 ]; 85 $.ajax({
86 url: 87 AIZ.data.appUrl + 88 "/aiz-uploader/destroy/" + 89 AIZ.uploader.data.clickedForDelete, 90 type: "DELETE", 91 dataType: "JSON", 92 data: { 93 id: AIZ.uploader.data.clickedForDelete, 94 _method: "DELETE", 95 _token: AIZ.data.csrf, 96 }, 97 success: function () { 98 AIZ.uploader.data.selectedFiles = 99 AIZ.uploader.data.selectedFiles.filter( 100 function (item) { 101 return ( 102 item !== 103 AIZ.uploader.data 104 .clickedForDelete 105 ); 106 } 107 ); 108 AIZ.uploader.data.selectedFilesObject = 109 AIZ.uploader.data.selectedFilesObject.filter( 110 function (item) { 111 return ( 112 item !== 113 clickedForDeleteObject 114 ); 115 } 116 ); 117 AIZ.uploader.updateUploaderSelected(); 118 AIZ.uploader.getAllUploads( 119 AIZ.data.appUrl + 120 "/aiz-uploader/get-uploaded-files" 121 ); 122 AIZ.uploader.data.clickedForDelete = 123 null; 124 $("#aizUploaderDelete").modal("hide"); 125 }, 126 }); 127 } 128 } 129 ); 130 }); 131 }); 132 }, 133 uploadSelect: function () { 134 $(".aiz-uploader-select").each(function () { 135 var elem = $(this); 136 elem.on("click", function (e) { 137 var value = $(this).data("value"); 138 var valueObject = 139 AIZ.uploader.data.allFiles[ 140 AIZ.uploader.data.allFiles.findIndex( 141 (x) => x.id === value 142 ) 143 ]; 144 // console.log(valueObject); 145 146 elem.closest(".aiz-file-box-wrap").toggleAttr( 147 "data-selected", 148 "true", 149 "false" 150 ); 151 if (!AIZ.uploader.data.multiple) { 152 elem.closest(".aiz-file-box-wrap") 153 .siblings() 154 .attr("data-selected", "false"); 155 } 156 if (!AIZ.uploader.data.selectedFiles.includes(value)) { 157 if (!AIZ.uploader.data.multiple) { 158 AIZ.uploader.data.selectedFiles = []; 159 AIZ.uploader.data.selectedFilesObject = []; 160 } 161 AIZ.uploader.data.selectedFiles.push(value); 162 AIZ.uploader.data.selectedFilesObject.push(valueObject); 163 } else { 164 AIZ.uploader.data.selectedFiles = 165 AIZ.uploader.data.selectedFiles.filter(function ( 166 item 167 ) { 168 return item !== value; 169 }); 170 AIZ.uploader.data.selectedFilesObject = 171 AIZ.uploader.data.selectedFilesObject.filter( 172 function (item) { 173 return item !== valueObject; 174 } 175 ); 176 } 177 AIZ.uploader.addSelectedValue(); 178 AIZ.uploader.updateUploaderSelected(); 179 }); 180 }); 181 }, 182 updateFileHtml: function (array) { 183 var fileText = ""; 184 if (array.length > 1) { 185 var fileText = AIZ.local.files_selected; 186 } else { 187 var fileText = AIZ.local.file_selected; 188 } 189 return array.length + " " + fileText; 190 }, 191 updateUploaderSelected: function () { 192 $(".aiz-uploader-selected").html( 193 AIZ.uploader.updateFileHtml(AIZ.uploader.data.selectedFiles) 194 ); 195 }, 196 clearUploaderSelected: function () { 197 $(".aiz-uploader-selected-clear").on("click", function () { 198 AIZ.uploader.data.selectedFiles = []; 199 AIZ.uploader.addSelectedValue(); 200 AIZ.uploader.addHiddenValue(); 201 AIZ.uploader.resetFilter(); 202 AIZ.uploader.updateUploaderSelected(); 203 AIZ.uploader.updateUploaderFiles(); 204 }); 205 }, 206 resetFilter: function () { 207 $('[name="aiz-uploader-search"]').val(""); 208 $('[name="aiz-show-selected"]').prop("checked", false); 209 $('[name="aiz-uploader-sort"] option[value=newest]').prop( 210 "selected", 211 true 212 ); 213 }, 214 getAllUploads: function (url, search_key = null, sort_key = null) { 215 $(".aiz-uploader-all").html( 216 '<div class="align-items-center d-flex h-100 justify-content-center w-100"><div class="spinner-border" role="status"></div></div>' 217 ); 218 var params = {}; 219 if (search_key != null && search_key.length > 0) { 220 params["search"] = search_key; 221 } 222 if (sort_key != null && sort_key.length > 0) { 223 params["sort"] = sort_key; 224 } else { 225 params["sort"] = "newest"; 226 } 227 $.get(url, params, function (data, status) { 228 //console.log(data); 229 if (typeof data == "string") { 230 data = JSON.parse(data); 231 } 232 AIZ.uploader.data.allFiles = data.data; 233 AIZ.uploader.allowedFileType(); 234 AIZ.uploader.addSelectedValue(); 235 AIZ.uploader.addHiddenValue(); 236 //AIZ.uploader.resetFilter(); 237 AIZ.uploader.updateUploaderFiles(); 238 if (data.next_page_url != null) { 239 AIZ.uploader.data.next_page_url = data.next_page_url; 240 $("#uploader_next_btn").removeAttr("disabled"); 241 } else { 242 $("#uploader_next_btn").attr("disabled", true); 243 } 244 if (data.prev_page_url != null) { 245 AIZ.uploader.data.prev_page_url = data.prev_page_url; 246 $("#uploader_prev_btn").removeAttr("disabled"); 247 } else { 248 $("#uploader_prev_btn").attr("disabled", true); 249 } 250 }); 251 }, 252 showSelectedFiles: function () { 253 $('[name="aiz-show-selected"]').on("change", function () { 254 if ($(this).is(":checked")) { 255 // for ( 256 // var i = 0; 257 // i < AIZ.uploader.data.allFiles.length; 258 // i++ 259 // ) { 260 // if (AIZ.uploader.data.allFiles[i].selected) { 261 // AIZ.uploader.data.allFiles[ 262 // i 263 // ].aria_hidden = false; 264 // } else { 265 // AIZ.uploader.data.allFiles[ 266 // i 267 // ].aria_hidden = true; 268 // } 269 // } 270 AIZ.uploader.data.allFiles = 271 AIZ.uploader.data.selectedFilesObject; 272 } else { 273 // for ( 274 // var i = 0; 275 // i < AIZ.uploader.data.allFiles.length; 276 // i++ 277 // ) { 278 // AIZ.uploader.data.allFiles[ 279 // i 280 // ].aria_hidden = false; 281 // } 282 AIZ.uploader.getAllUploads( 283 AIZ.data.appUrl + "/aiz-uploader/get-uploaded-files" 284 ); 285 } 286 AIZ.uploader.updateUploaderFiles(); 287 }); 288 }, 289 searchUploaderFiles: function () { 290 $('[name="aiz-uploader-search"]').on("keyup", function () { 291 var value = $(this).val(); 292 AIZ.uploader.getAllUploads( 293 AIZ.data.appUrl + "/aiz-uploader/get-uploaded-files", 294 value, 295 $('[name="aiz-uploader-sort"]').val() 296 ); 297 // if (AIZ.uploader.data.allFiles.length > 0) { 298 // for ( 299 // var i = 0; 300 // i < AIZ.uploader.data.allFiles.length; 301 // i++ 302 // ) { 303 // if ( 304 // AIZ.uploader.data.allFiles[ 305 // i 306 // ].file_original_name 307 // .toUpperCase() 308 // .indexOf(value) > -1 309 // ) { 310 // AIZ.uploader.data.allFiles[ 311 // i 312 // ].aria_hidden = false; 313 // } else { 314 // AIZ.uploader.data.allFiles[ 315 // i 316 // ].aria_hidden = true; 317 // } 318 // } 319 // } 320 //AIZ.uploader.updateUploaderFiles(); 321 }); 322 }, 323 sortUploaderFiles: function () { 324 $('[name="aiz-uploader-sort"]').on("change", function () { 325 var value = $(this).val(); 326 AIZ.uploader.getAllUploads( 327 AIZ.data.appUrl + "/aiz-uploader/get-uploaded-files", 328 $('[name="aiz-uploader-search"]').val(), 329 value 330 ); 331 332 // if (value === "oldest") { 333 // AIZ.uploader.data.allFiles = AIZ.uploader.data.allFiles.sort( 334 // function(a, b) { 335 // return ( 336 // new Date(a.created_at) - new Date(b.created_at) 337 // ); 338 // } 339 // ); 340 // } else if (value === "smallest") { 341 // AIZ.uploader.data.allFiles = AIZ.uploader.data.allFiles.sort( 342 // function(a, b) { 343 // return a.file_size - b.file_size; 344 // } 345 // ); 346 // } else if (value === "largest") { 347 // AIZ.uploader.data.allFiles = AIZ.uploader.data.allFiles.sort( 348 // function(a, b) {
349 // return b.file_size - a.file_size; 350 // } 351 // ); 352 // } else { 353 // AIZ.uploader.data.allFiles = AIZ.uploader.data.allFiles.sort( 354 // function(a, b) { 355 // a = new Date(a.created_at); 356 // b = new Date(b.created_at); 357 // return a > b ? -1 : a < b ? 1 : 0; 358 // } 359 // ); 360 // } 361 //AIZ.uploader.updateUploaderFiles(); 362 }); 363 }, 364 addSelectedValue: function () { 365 for (var i = 0; i < AIZ.uploader.data.allFiles.length; i++) { 366 if ( 367 !AIZ.uploader.data.selectedFiles.includes( 368 AIZ.uploader.data.allFiles[i].id 369 ) 370 ) { 371 AIZ.uploader.data.allFiles[i].selected = false; 372 } else { 373 AIZ.uploader.data.allFiles[i].selected = true; 374 } 375 } 376 }, 377 addHiddenValue: function () { 378 for (var i = 0; i < AIZ.uploader.data.allFiles.length; i++) { 379 AIZ.uploader.data.allFiles[i].aria_hidden = false; 380 } 381 }, 382 allowedFileType: function () { 383 if (AIZ.uploader.data.type !== "all") { 384 let type = AIZ.uploader.data.type.split(","); 385 AIZ.uploader.data.allFiles = AIZ.uploader.data.allFiles.filter( 386 function (item) { 387 return type.includes(item.type); 388 } 389 ); 390 } 391 }, 392 updateUploaderFiles: function () { 393 $(".aiz-uploader-all").html( 394 '<div class="align-items-center d-flex h-100 justify-content-center w-100"><div class="spinner-border" role="status"></div></div>' 395 ); 396 397 var data = AIZ.uploader.data.allFiles; 398 399 setTimeout(function () { 400 $(".aiz-uploader-all").html(null); 401 402 if (data.length > 0) { 403 for (var i = 0; i < data.length; i++) { 404 var thumb = ""; 405 var hidden = ""; 406 if (data[i].type === "image") { 407 thumb = 408 '<img src="' + 409 AIZ.data.fileBaseUrl + 410 data[i].file_name + 411 '" class="img-fit">'; 412 } else { 413 thumb = '<i class="la la-file-text"></i>'; 414 } 415 var html = 416 '<div class="aiz-file-box-wrap" aria-hidden="' + 417 data[i].aria_hidden + 418 '" data-selected="' + 419 data[i].selected + 420 '">' + 421 '<div class="aiz-file-box">' + 422 // '<div class="dropdown-file">' + 423 // '<a class="dropdown-link" data-toggle="dropdown">' + 424 // '<i class="la la-ellipsis-v"></i>' + 425 // "</a>" + 426 // '<div class="dropdown-menu dropdown-menu-right">' + 427 // '<a href="' + 428 // AIZ.data.fileBaseUrl + 429 // data[i].file_name + 430 // '" target="_blank" download="' + 431 // data[i].file_original_name + 432 // "." + 433 // data[i].extension + 434 // '" class="dropdown-item"><i class="la la-download mr-2"></i>Download</a>' + 435 // '<a href="#" class="dropdown-item aiz-uploader-delete" data-id="' + 436 // data[i].id + 437 // '"><i class="la la-trash mr-2"></i>
437Delete</a>' + 438 // "</div>" + 439 // "</div>" + 440 '<div class="card card-file aiz-uploader-select" title="' + 441 data[i].file_original_name + 442 "." + 443 data[i].extension + 444 '" data-value="' + 445 data[i].id + 446 '">' + 447 '<div class="card-file-thumb">' + 448 thumb + 449 "</div>" + 450 '<div class="card-body">' + 451 '<h6 class="d-flex">' + 452 '<span class="text-truncate title">' + 453 data[i].file_original_name + 454 "</span>" + 455 '<span class="ext flex-shrink-0">.' + 456 data[i].extension + 457 "</span>" + 458 "</h6>" + 459 "<p>" + 460 AIZ.extra.bytesToSize(data[i].file_size) + 461 "</p>" + 462 "</div>" + 463 "</div>" + 464 "</div>" + 465 "</div>"; 466 467 $(".aiz-uploader-all").append(html); 468 } 469 } else { 470 $(".aiz-uploader-all").html( 471 '<div class="align-items-center d-flex h-100 justify-content-center w-100 nav-tabs"><div class="text-center"><h3>No files found</h3></div></div>' 472 ); 473 } 474 AIZ.uploader.uploadSelect(); 475 AIZ.uploader.deleteUploaderFile(); 476 }, 300); 477 }, 478 inputSelectPreviewGenerate: function (elem) { 479 elem.find(".selected-files").val(AIZ.uploader.data.selectedFiles); 480 elem.next(".file-preview").html(null); 481 482 if (AIZ.uploader.data.selectedFiles.length > 0) { 483 $.post( 484 AIZ.data.appUrl + "/aiz-uploader/get_file_by_ids", 485 { 486 _token: AIZ.data.csrf, 487 ids: AIZ.uploader.data.selectedFiles.toString(), 488 }, 489 function (data) { 490 elem.next(".file-preview").html(null); 491 492 if (data.length > 0) { 493 elem.find(".file-amount").html( 494 AIZ.uploader.updateFileHtml(data) 495 ); 496 for (var i = 0; i < data.length; i++) { 497 var thumb = ""; 498 if (data[i].type === "image") { 499 thumb = 500 '<img src="' + 501 data[i].file_name + 502 '" class="img-fit">'; 503 } else { 504 thumb = '<i class="la la-file-text"></i>'; 505 } 506 var html = 507 '<div class="d-flex justify-content-between align-items-center mt-2 file-preview-item" data-id="' + 508 data[i].id + 509 '" title="' + 510 data[i].file_original_name + 511 "." + 512 data[i].extension + 513 '">' + 514 '<div class="align-items-center align-self-stretch d-flex justify-content-center thumb">' + 515 thumb + 516 "</div>" + 517 '<div class="col body">' + 518 '<h6 class="d-flex">' + 519 '<span class="text-truncate title">' + 520 data[i].file_original_name + 521 "</span>" + 522 '<span class="flex-shrink-0 ext">.' + 523 data[i].extension + 524 "</span>" + 525 "</h6>" + 526 "<p>" + 527 AIZ.extra.bytesToSize(data[i].file_size) + 528 "</p>" + 529 "</div>" + 530 '<div class="remove">' + 531 '<button class="btn btn-sm btn-link remove-attachment" type="button">' + 532 '<i class="la la-close"></i>' + 533 "</button>" + 534 "</div>" + 535 "</div>"; 536 537 elem.next(".file-preview").append(html); 538 } 539 } else { 540 elem.find(".file-amount").html( 541 AIZ.local.choose_file 542 ); 543 } 544 } 545 ); 546 } else { 547 elem.find(".file-amount").html(AIZ.local.choose_file); 548 } 549 550 // if (AIZ.uploader.data.selectedFiles.length > 0) { 551 // elem.find(".file-amount").html( 552 // AIZ.uploader.updateFileHtml(AIZ.uploader.data.selectedFiles) 553 // ); 554 // for ( 555 // var i = 0; 556 // i < AIZ.uploader.data.selectedFiles.length; 557 // i++ 558 // ) { 559 // var index = AIZ.uploader.data.allFiles.findIndex( 560 // (x) => x.id === AIZ.uploader.data.selectedFiles[i] 561 // ); 562 // var thumb = ""; 563 // if (AIZ.uploader.data.allFiles[index].type == "image") { 564 // thumb = 565 // '<img src="' + 566 // AIZ.data.appUrl + 567 // "/public/" + 568 // AIZ.uploader.data.allFiles[index].file_name + 569 // '" class="img-fit">'; 570 // } else { 571 // thumb = '<i class="la la-file-text"></i>'; 572 // } 573 // var html = 574 // '<div class="d-flex justify-content-between align-items-center mt-2 file-preview-item" data-id="' + 575 // AIZ.uploader.data.allFiles[index].id + 576 // '" title="' + 577 // AIZ.uploader.data.allFiles[index].file_original_name + 578 // "." + 579 // AIZ.uploader.data.allFiles[index].extension + 580 // '">' + 581 // '<div class="align-items-center align-self-stretch d-flex justify-content-center thumb">' + 582 // thumb + 583 // "</div>" + 584 // '<div class="col body">' + 585 // '<h6 class="d-flex">' + 586 // '<span class="text-truncate title">' + 587 // AIZ.uploader.data.allFiles[index].file_original_name + 588 // "</span>" + 589 // '<span class="ext">.' + 590 // AIZ.uploader.data.allFiles[index].extension + 591 // "</span>" + 592 // "</h6>" + 593 // "<p>" + 594 // AIZ.extra.bytesToSize( 595 // AIZ.uploader.data.allFiles[index].file_size 596 // ) + 597 // "</p>" + 598 // "</div>" + 599 // '<div class="remove">' + 600 // '<button class="btn btn-sm btn-link remove-attachment" type="button">' + 601 // '<i class="la la-close"></i>' + 602 // "</button>" + 603 // "</div>" + 604 // "</div>"; 605 606 // elem.next(".file-preview").append(html); 607 // } 608 // } else { 609 // elem.find(".file-amount").html("Choose File"); 610 // } 611 }, 612 editorImageGenerate: function (elem) { 613 if (AIZ.uploader.data.selectedFiles.length > 0) { 614 for ( 615 var i = 0; 616 i < AIZ.uploader.data.selectedFiles.length; 617 i++ 618 ) { 619 var index = AIZ.uploader.data.allFiles.findIndex( 620 (x) => x.id === AIZ.uploader.data.selectedFiles[i] 621 ); 622 var thumb = ""; 623 if (AIZ.uploader.data.allFiles[index].type === "image") { 624 thumb = 625 '<img src="' + 626 AIZ.data.fileBaseUrl + 627 AIZ.uploader.data.allFiles[index].file_name + 628 '">'; 629 elem[0].insertHTML(thumb); 630 // console.log(elem); 631 } 632 } 633 } 634 },
635 dismissUploader: function () { 636 $("#aizUploaderModal").on("hidden.bs.modal", function () { 637 $(".aiz-uploader-backdrop").remove(); 638 $("#aizUploaderModal").remove(); 639 }); 640 }, 641 trigger: function ( 642 elem = null, 643 from = "", 644 type = "all", 645 selectd = "", 646 multiple = false, 647 callback = null 648 ) { 649 // $("body").append('<div class="aiz-uploader-backdrop"></div>'); 650 651 var elem = $(elem); 652 var multiple = multiple; 653 var type = type; 654 var oldSelectedFiles = selectd; 655 if (oldSelectedFiles !== "") { 656 AIZ.uploader.data.selectedFiles = oldSelectedFiles 657 .split(",") 658 .map(Number); 659 } else { 660 AIZ.uploader.data.selectedFiles = []; 661 } 662 if ("undefined" !== typeof type && type.length > 0) { 663 AIZ.uploader.data.type = type; 664 } 665 666 if (multiple) { 667 AIZ.uploader.data.multiple = true; 668 } else { 669 AIZ.uploader.data.multiple = false; 670 } 671 672 // setTimeout(function() { 673 $.post( 674 AIZ.data.appUrl + "/aiz-uploader", 675 { _token: AIZ.data.csrf }, 676 function (data) { 677 $("body").append(data); 678 $("#aizUploaderModal").modal("show"); 679 AIZ.plugins.aizUppy(); 680 AIZ.uploader.getAllUploads( 681 AIZ.data.appUrl + "/aiz-uploader/get-uploaded-files", 682 null, 683 $('[name="aiz-uploader-sort"]').val() 684 ); 685 AIZ.uploader.updateUploaderSelected(); 686 AIZ.uploader.clearUploaderSelected(); 687 AIZ.uploader.sortUploaderFiles(); 688 AIZ.uploader.searchUploaderFiles(); 689 AIZ.uploader.showSelectedFiles(); 690 AIZ.uploader.dismissUploader(); 691 692 $("#uploader_next_btn").on("click", function () { 693 if (AIZ.uploader.data.next_page_url != null) { 694 $('[name="aiz-show-selected"]').prop( 695 "checked", 696 false 697 ); 698 AIZ.uploader.getAllUploads( 699 AIZ.uploader.data.next_page_url 700 ); 701 } 702 }); 703 704 $("#uploader_prev_btn").on("click", function () { 705 if (AIZ.uploader.data.prev_page_url != null) { 706 $('[name="aiz-show-selected"]').prop( 707 "checked", 708 false 709 ); 710 AIZ.uploader.getAllUploads( 711 AIZ.uploader.data.prev_page_url 712 ); 713 } 714 }); 715 716 $(".aiz-uploader-search i").on("click", function () { 717 $(this).parent().toggleClass("open"); 718 }); 719 720 $('[data-toggle="aizUploaderAddSelected"]').on( 721 "click", 722 function () { 723 if (from === "input") { 724 AIZ.uploader.inputSelectPreviewGenerate(elem); 725 } else if (from === "direct") { 726 callback(AIZ.uploader.data.selectedFiles); 727 } 728 $("#aizUploaderModal").modal("hide"); 729 } 730 ); 731 } 732 ); 733 // }, 50); 734 }, 735 initForInput: function () { 736 $(document).on( 737 "click", 738 '[data-toggle="aizuploader"]', 739 function (e) { 740 if (e.detail === 1) { 741 var elem = $(this); 742 var multiple = elem.data("multiple"); 743 var type = elem.data("type"); 744 var oldSelectedFiles = elem 745 .find(".selected-files") 746 .val(); 747 748 multiple = !multiple ? "" : multiple; 749 type = !type ? "" : type; 750 oldSelectedFiles = !oldSelectedFiles 751 ? "" 752 : oldSelectedFiles; 753 754 AIZ.uploader.trigger( 755 this, 756 "input", 757 type, 758 oldSelectedFiles, 759 multiple 760 ); 761 } 762 } 763 ); 764 }, 765 previewGenerate: function () { 766 $('[data-toggle="aizuploader"]').each(function () { 767 var $this = $(this); 768 var files = $this.find(".selected-files").val(); 769 if (files != "") { 770 $.post( 771 AIZ.data.appUrl + "/aiz-uploader/get_file_by_ids", 772 { _token: AIZ.data.csrf, ids: files }, 773 function (data) { 774 $this.next(".file-preview").html(null); 775 776 if (data.length > 0) { 777 $this 778 .find(".file-amount") 779 .html(AIZ.uploader.updateFileHtml(data)); 780 for (var i = 0; i < data.length; i++) { 781 var thumb = ""; 782 if (data[i].type === "image") { 783 thumb = 784 '<img src="' + 785 data[i].file_name + 786 '" class="img-fit">'; 787 } else { 788 thumb = 789 '<i class="la la-file-text"></i>'; 790 } 791 var html = 792 '<div class="d-flex justify-content-between align-items-center mt-2 file-preview-item" data-id="' + 793 data[i].id + 794 '" title="' + 795 data[i].file_original_name + 796 "." + 797 data[i].extension + 798 '">' + 799 '<div class="align-items-center align-self-stretch d-flex justify-content-center thumb">' + 800 thumb + 801 "</div>" + 802 '<div class="col body">' + 803 '<h6 class="d-flex">' + 804 '<span class="text-truncate title">' + 805 data[i].file_original_name + 806 "</span>" + 807 '<span class="ext flex-shrink-0">.' + 808 data[i].extension + 809 "</span>" + 810 "</h6>" + 811 "<p>" + 812 AIZ.extra.bytesToSize( 813 data[i].file_size 814 ) + 815 "</p>" + 816 "</div>" + 817 '<div class="remove">' + 818 '<button class="btn btn-sm btn-link remove-attachment" type="button">' + 819 '<i class="la la-close"></i>' + 820 "</button>" + 821 "</div>" + 822 "</div>"; 823 824 $this.next(".file-preview").append(html); 825 } 826 } else { 827 $this 828 .find(".file-amount") 829 .html(AIZ.local.choose_file); 830 } 831 } 832 ); 833 } 834 }); 835 }, 836 }; 837 AIZ.plugins = { 838 metismenu: function () { 839 $('[data-toggle="aiz-side-menu"]').metisMenu(); 840 }, 841 bootstrapSelect: function (refresh = "") { 842 $(".aiz-selectpicker").each(function (el) { 843 var $this = $(this); 844 if (!$this.parent().hasClass("bootstrap-select")) { 845 var selected = $this.data("selected"); 846 if (typeof selected !== "undefined") { 847 $this.val(selected); 848 } 849 $this.selectpicker({ 850 size: 5, 851 noneSelectedText: AIZ.local.nothing_selected, 852 virtualScroll: false, 853 }); 854 } 855 if (refresh === "refresh") { 856 $this.selectpicker("refresh"); 857 } 858 if (refresh === "destroy") { 859 $this.selectpicker("destroy"); 860 } 861 }); 862 }, 863 tagify: function () { 864 $(".aiz-tag-input") 865 .not(".tagify") 866 .each(function () { 867 var $this = $(this); 868 869 var maxTags = $this.data("max-tags"); 870 var whitelist = $this.data("whitelist"); 871 var onchange = $this.data("on-change"); 872 873 maxTags = !maxTags ? Infinity : maxTags;
874 whitelist = !whitelist ? [] : whitelist; 875 876 $this.tagify({ 877 maxTags: maxTags, 878 whitelist: whitelist, 879 dropdown: { 880 enabled: 1, 881 }, 882 }); 883 try { 884 callback = eval(onchange); 885 } catch (e) { 886 var callback = ""; 887 } 888 if (typeof callback == "function") { 889 $this.on("removeTag", function () { 890 callback(); 891 }); 892 $this.on("add", function () { 893 callback(); 894 }); 895 } 896 }); 897 }, 898 textEditor: function () { 899 $(".aiz-text-editor").each(function (el) { 900 var $this = $(this); 901 var buttons = $this.data("buttons"); 902 var minHeight = $this.data("min-height"); 903 var placeholder = $this.attr("placeholder"); 904 var format = $this.data("format"); 905 906 buttons = !buttons 907 ? [ 908 ["font", ["bold", "underline", "italic", "clear"]], 909 ["para", ["ul", "ol", "paragraph"]], 910 ["style", ["style"]], 911 ["color", ["color"]], 912 ["table", ["table"]], 913 ["insert", ["link", "picture", "video"]], 914 ["view", ["fullscreen", "undo", "redo"]], 915 ] 916 : buttons; 917 placeholder = !placeholder ? "" : placeholder; 918 minHeight = !minHeight ? 200 : minHeight; 919 format = typeof format == "undefined" ? false : format; 920 921 $this.summernote({ 922 toolbar: buttons, 923 placeholder: placeholder, 924 disableDragAndDrop: true, 925 height: minHeight, 926 callbacks: { 927 onImageUpload: function (data) { 928 data.pop(); 929 }, 930 onPaste: function (e) { 931 if (format) { 932 var bufferText = ( 933 (e.originalEvent || e).clipboardData || 934 window.clipboardData 935 ).getData("Text"); 936 e.preventDefault(); 937 document.execCommand( 938 "insertText", 939 false, 940 bufferText 941 ); 942 } 943 }, 944 }, 945 }); 946 947 var nativeHtmlBuilderFunc = $this.summernote( 948 "module", 949 "videoDialog" 950 ).createVideoNode; 951 952 $this.summernote("module", "videoDialog").createVideoNode = 953 function (url) { 954 var wrap = $( 955 '<div class="embed-responsive embed-responsive-16by9"></div>' 956 ); 957 var html = nativeHtmlBuilderFunc(url); 958 html = $(html).addClass("embed-responsive-item"); 959 return wrap.append(html)[0]; 960 }; 961 }); 962 }, 963 dateRange: function () { 964 $(".aiz-date-range").each(function () { 965 var $this = $(this); 966 var today = moment().startOf("day"); 967 var value = $this.val(); 968 var startDate = false; 969 var minDate = false; 970 var maxDate = false; 971 var advncdRange = false; 972 var ranges = { 973 Today: [moment(), moment()], 974 Yesterday: [ 975 moment().subtract(1, "days"), 976 moment().subtract(1, "days"), 977 ], 978 "Last 7 Days": [moment().subtract(6, "days"), moment()], 979 "Last 30 Days": [moment().subtract(29, "days"), moment()], 980 "This Month": [ 981 moment().startOf("month"), 982 moment().endOf("month"), 983 ], 984 "Last Month": [ 985 moment().subtract(1, "month").startOf("month"), 986 moment().subtract(1, "month").endOf("month"), 987 ], 988 }; 989 990 var single = $this.data("single"); 991 var monthYearDrop = $this.data("show-dropdown"); 992 var format = $this.data("format"); 993 var separator = $this.data("separator"); 994 var pastDisable = $this.data("past-disable"); 995 var futureDisable = $this.data("future-disable"); 996 var timePicker = $this.data("time-picker"); 997 var timePickerIncrement = $this.data("time-gap"); 998 var advncdRange = $this.data("advanced-range"); 999 1000 single = !single ? false : single; 1001 monthYearDrop = !monthYearDrop ? false : monthYearDrop; 1002 format = !format ? "YYYY-MM-DD" : format; 1003 separator = !separator ? " / " : separator; 1004 minDate = !pastDisable ? minDate : today; 1005 maxDate = !futureDisable ? maxDate : today; 1006 timePicker = !timePicker ? false : timePicker; 1007 timePickerIncrement = !timePickerIncrement 1008 ? 1 1009 : timePickerIncrement; 1010 ranges = !advncdRange ? "" : ranges; 1011 1012 $this.daterangepicker({ 1013 singleDatePicker: single, 1014 showDropdowns: monthYearDrop, 1015 minDate: minDate, 1016 maxDate: maxDate, 1017 timePickerIncrement: timePickerIncrement, 1018 autoUpdateInput: false, 1019 ranges: ranges, 1020 locale: { 1021 format: format, 1022 separator: separator, 1023 applyLabel: "Select", 1024 cancelLabel: "Clear", 1025 }, 1026 }); 1027 if (single) { 1028 $this.on("apply.daterangepicker", function (ev, picker) { 1029 $this.val(picker.startDate.format(format)); 1030 }); 1031 } else { 1032 $this.on("apply.daterangepicker", function (ev, picker) { 1033 $this.val( 1034 picker.startDate.format(format) + 1035 separator + 1036 picker.endDate.format(format) 1037 ); 1038 }); 1039 } 1040 1041 $this.on("cancel.daterangepicker", function (ev, picker) { 1042 $this.val(""); 1043 }); 1044 }); 1045 }, 1046 timePicker: function () { 1047 $(".aiz-time-picker").each(function () { 1048 var $this = $(this); 1049 1050 var minuteStep = $this.data("minute-step"); 1051 var defaultTime = $this.data("default"); 1052 1053 minuteStep = !minuteStep ? 10 : minuteStep; 1054 defaultTime = !defaultTime ? "00:00" : defaultTime; 1055 1056 $this.timepicker({ 1057 template: "dropdown", 1058 minuteStep: minuteStep, 1059 defaultTime: defaultTime, 1060 icons: { 1061 up: "las la-angle-up", 1062 down: "las la-angle-down", 1063 }, 1064 showInputs: false, 1065 }); 1066 }); 1067 }, 1068 colorPicker: function () { 1069 $(".aiz-color-picker").on("change", function () { 1070 var $this = $(this); 1071 let value = $this.val(); 1072 $this.parent().parent().siblings(".aiz-color-input").val(value); 1073 }); 1074 $(".aiz-color-input").on("change", function () { 1075 var $this = $(this); 1076 let value = $this.val(); 1077 $(this) 1078 .siblings(".input-group-append") 1079 .children(".input-group-text") 1080 .children(".aiz-color-picker") 1081 .val(value); 1082 }); 1083 }, 1084 fooTable: function () { 1085 $(".aiz-table").each(function () { 1086 var $this = $(this); 1087 1088 var empty = $this.data("empty"); 1089 empty = !empty ? AIZ.local.nothing_found : empty; 1090 1091 $this.footable({ 1092 breakpoints: { 1093 xs: 576, 1094 sm: 768, 1095 md: 992, 1096 lg: 1200, 1097 xl: 1400, 1098 }, 1099 cascade: true, 1100 on: { 1101 "ready.ft.table": function (e, ft) { 1102 AIZ.extra.deleteConfirm(); 1103 AIZ.plugins.bootstrapSelect("refresh"); 1104 }, 1105 }, 1106 empty: empty, 1107 }); 1108 }); 1109 }, 1110 sectionFooTable: function (section) { 1111 var $this = $(section+" .aiz-table"); 1112 1113 var empty = $this.data("empty"); 1114 empty = !empty ? AIZ.local.nothing_found : empty; 1115 1116 $this.footable({ 1117 breakpoints: { 1118 xs: 576, 1119 sm: 768, 1120 md: 992, 1121 lg: 1200, 1122 xl: 1400, 1123 }, 1124 cascade: true, 1125 on: { 1126 "ready.ft.table": function (e, ft) { 1127 AIZ.extra.deleteConfirm(); 1128 AIZ.plugins.bootstrapSelect("refresh"); 1129 }, 1130 }, 1131 empty: empty, 1132 }); 1133 }, 1134 notify: function (type = "dark", message = "") { 1135 $.notify( 1136 { 1137 // options 1138 message: message, 1139 }, 1140 { 1141 // settings 1142 showProgressbar: true, 1143 delay: 2500, 1144 mouse_over: "pause", 1145 placement: { 1146 from: "bottom", 1147 align: "left", 1148 }, 1149 animate: { 1150 enter: "animated fadeInUp", 1151 exit: "animated fadeOutDown", 1152 }, 1153 type: type, 1154 template: 1155 '<div data-notify="container" class="aiz-notify alert alert-{0}" role="alert">
1155' + 1156 '<button type="button" aria-hidden="true" data-notify="dismiss" class="close"><i class="las la-times"></i></button>' + 1157 '<span data-notify="message">{2}</span>' + 1158 '<div class="progress" data-notify="progressbar">' + 1159 '<div class="progress-bar" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100" style="width: 0%;"></div>' + 1160 "</div>" + 1161 "</div>", 1162 } 1163 ); 1164 }, 1165 aizUppy: function () { 1166 if ($("#aiz-upload-files").length > 0) { 1167 var uppy = Uppy.Core({ 1168 autoProceed: true, 1169 }); 1170 uppy.use(Uppy.Dashboard, { 1171 target: "#aiz-upload-files", 1172 inline: true, 1173 showLinkToFileUploadResult: false, 1174 showProgressDetails: true, 1175 hideCancelButton: true, 1176 hidePauseResumeButton: true, 1177 hideUploadButton: true, 1178 proudlyDisplayPoweredByUppy: false, 1179 locale: { 1180 strings: { 1181 addMoreFiles: AIZ.local.add_more_files, 1182 addingMoreFiles: AIZ.local.adding_more_files, 1183 dropPaste: 1184 AIZ.local.drop_files_here_paste_or + 1185 " %{browse}", 1186 browse: AIZ.local.browse, 1187 uploadComplete: AIZ.local.upload_complete, 1188 uploadPaused: AIZ.local.upload_paused, 1189 resumeUpload: AIZ.local.resume_upload, 1190 pauseUpload: AIZ.local.pause_upload, 1191 retryUpload: AIZ.local.retry_upload, 1192 cancelUpload: AIZ.local.cancel_upload, 1193 xFilesSelected: { 1194 0: "%{smart_count} " + AIZ.local.file_selected, 1195 1: "%{smart_count} " + AIZ.local.files_selected, 1196 }, 1197 uploadingXFiles: { 1198 0: 1199 AIZ.local.uploading + 1200 " %{smart_count} " + 1201 AIZ.local.file, 1202 1: 1203 AIZ.local.uploading + 1204 " %{smart_count} " + 1205 AIZ.local.files, 1206 }, 1207 processingXFiles: { 1208 0: 1209 AIZ.local.processing + 1210 " %{smart_count} " + 1211 AIZ.local.file, 1212 1: 1213 AIZ.local.processing + 1214 " %{smart_count} " + 1215 AIZ.local.files, 1216 }, 1217 uploading: AIZ.local.uploading, 1218 complete: AIZ.local.complete, 1219 }, 1220 }, 1221 }); 1222 uppy.use(Uppy.XHRUpload, { 1223 endpoint: AIZ.data.appUrl + "/aiz-uploader/upload", 1224 fieldName: "aiz_file", 1225 formData: true, 1226 headers: { 1227 "X-CSRF-TOKEN": AIZ.data.csrf, 1228 }, 1229 }); 1230 uppy.on("upload-success", function () { 1231 AIZ.uploader.getAllUploads( 1232 AIZ.data.appUrl + "/aiz-uploader/get-uploaded-files" 1233 ); 1234 }); 1235 } 1236 }, 1237 tooltip: function () { 1238 $("body") 1239 .tooltip({ selector: '[data-toggle="tooltip"]' }) 1240 .click(function () { 1241 $('[data-toggle="tooltip"]').tooltip("hide"); 1242 }); 1243 }, 1244 countDown: function () { 1245 if ($(".aiz-count-down").length > 0) { 1246 $(".aiz-count-down").each(function () { 1247 var $this = $(this); 1248 var date = $this.data("date"); 1249 // console.log(date) 1250 1251 $this 1252 .countdown(date) 1253 .on("update.countdown", function (event) { 1254 var $this = $(this).html( 1255 event.strftime( 1256 "" + 1257 '<div class="countdown-item"><span class="countdown-digit">%-D</span></div><span class="countdown-separator">:</span>' + 1258 '<div class="countdown-item"><span class="countdown-digit">%H</span></div><span class="countdown-separator">:</span>' + 1259 '<div class="countdown-item"><span class="countdown-digit">%M</span></div><span class="countdown-separator">:</span>' + 1260 '<div class="countdown-item"><span class="countdown-digit">%S</span></div>' 1261 ) 1262 ); 1263 }); 1264 }); 1265 } 1266 }, 1267 countDownBox: function () { 1268 if ($(".aiz-count-down-box").length > 0) { 1269 $(".aiz-count-down-box").each(function () { 1270 var $this = $(this); 1271 var date = $this.data("date"); 1272 // console.log(date) 1273 1274 $this 1275 .countdown(date) 1276 .on("update.countdown", function (event) { 1277 var $this = $(this).html( 1278 event.strftime( 1279 "" + 1280 '<div class="countdown-item"><span class="countdown-digit">%-D</span><span class="countdown-name">DAYS</span></div><span class="countdown-separator">:</span>' + 1281 '<div class="countdown-item"><span class="countdown-digit">%H</span><span class="countdown-name">HRS</span></div><span class="countdown-separator">:</span>' + 1282 '<div class="countdown-item"><span class="countdown-digit">%M</span><span class="countdown-name">MIN</span></div><span class="countdown-separator">:</span>' + 1283 '<div class="countdown-item"><span class="countdown-digit">%S</span><span class="countdown-name">SEC</span></div>' 1284 ) 1285 ); 1286 }); 1287 }); 1288 } 1289 }, 1290 countDownCircle: function () { 1291 let html = 1292 '<div id="time"><div class="circle"><svg><circle cx="30" cy="30" r="30"></circle><circle cx="30" cy="30" r="30" id="dd"></circle></svg><div id="days">00 <br><span>Days</span></div></div>' + 1293 '<div class="circle"><svg><circle cx="30" cy="30" r="30"></circle><circle cx="30" cy="30" r="30" id="hh"></circle></svg><div id="hours">00 <br><span>Hrs</span></div></div>' + 1294 '<div class="circle"><svg><circle cx="30" cy="30" r="30"></circle><circle cx="30" cy="30" r="30" id="mm"></circle></svg><div id="minutes">00 <br><span>Min</span></div></div>' + 1295 '<div class="circle"><svg><circle cx="30" cy="30" r="30"></circle><circle cx="30" cy="30" r="30" id="ss"></circle></svg><div id="seconds">00 <br><span>Sec</span></div></div></div>'; 1296 1297 if ($(".aiz-count-down-circle").length > 0) { 1298 $(".aiz-count-down-circle").each(function () { 1299 var $this = $(this); 1300 $this.html(html); 1301 1302 let days = $this.find("#days"); 1303 let hours = $this.find("#hours"); 1304 let minutes = $this.find("#minutes"); 1305 let seconds = $this.find("#seconds"); 1306 1307 let dd = $this.find("#dd"); 1308 let hh = $this.find("#hh"); 1309 let mm = $this.find("#mm"); 1310 let ss = $this.find("#ss"); 1311 1312 // Date Format mm/dd/yyyy 1313 var endDate = $this.attr("end-date"); 1314 let now = new Date(endDate).getTime(); 1315 let x = setInterval(function () { 1316 let CountDown = new Date().getTime(); 1317 let distance = now - CountDown; 1318 if (distance > 0) { 1319 // Time calculation for days, hours, minutes & seconds 1320 let d = Math.floor( 1321 distance / (1000 * 60 * 60 * 24) 1322 ); 1323 let h = Math.floor( 1324 (distance % (1000 * 60 * 60 * 24)) / 1325 (1000 * 60 * 60) 1326 ); 1327 let m = Math.floor( 1328 (distance % (1000 * 60 * 60)) / (1000 * 60) 1329 ); 1330 let s = Math.floor((distance % (1000 * 60)) / 1000); 1331 1332 // Output the results in elements with id 1333 days.html(d + "<br><span>Days</span>"); 1334 hours.html(h + "<br><span>Hrs</span>"); 1335 minutes.html(m + "<br><span>Min</span>"); 1336 seconds.html(s + "<br><span>Sec</span>"); 1337 1338 // Animate stroke 1339 dd.css("strokeDashoffset", 190 - (190 * d) / 365); // 365 days in a year 1340 hh.css("strokeDashoffset", 190 - (190 * h) / 24); // 24 hours in a day 1341 mm.css("strokeDashoffset", 190 - (190 * m) / 60); // 60 minutes in an hour 1342 ss.css("strokeDashoffset", 190 - (190 * s) / 60);
1342 // 60 seconds in a minute 1343 } else { 1344 // If Countdown is over 1345 clearInterval(x); 1346 } 1347 }); 1348 }); 1349 } 1350 }, 1351 slickCarousel: function () { 1352 $(".aiz-carousel") 1353 .not(".slick-initialized") 1354 .each(function () { 1355 var $this = $(this); 1356 1357 var slidesPerViewXs = $this.data("xs-items"); 1358 var slidesPerViewSm = $this.data("sm-items"); 1359 var slidesPerViewMd = $this.data("md-items"); 1360 var slidesPerViewLg = $this.data("lg-items"); 1361 var slidesPerViewXl = $this.data("xl-items"); 1362 var slidesPerView = $this.data("items"); 1363 1364 var slidesCenterMode = $this.data("center"); 1365 var slidesArrows = $this.data("arrows"); 1366 var slidesDots = $this.data("dots"); 1367 var slidesRows = $this.data("rows"); 1368 var slidesAutoplay = $this.data("autoplay"); 1369 var slidesAutoplaySpeed = $this.data("autoplay-speed"); 1370 var slidesFade = $this.data("fade"); 1371 var asNavFor = $this.data("nav-for"); 1372 var infinite = $this.data("infinite"); 1373 var focusOnSelect = $this.data("focus-select"); 1374 var adaptiveHeight = $this.data("auto-height"); 1375 var variableWidth = $this.data("variableWidth"); 1376 1377 var vertical = $this.data("vertical"); 1378 var verticalXs = $this.data("vertical-xs"); 1379 var verticalSm = $this.data("vertical-sm"); 1380 var verticalMd = $this.data("vertical-md"); 1381 var verticalLg = $this.data("vertical-lg"); 1382 var verticalXl = $this.data("vertical-xl"); 1383 1384 slidesPerView = !slidesPerView ? 1 : slidesPerView; 1385 slidesPerViewXl = !slidesPerViewXl 1386 ? slidesPerView 1387 : slidesPerViewXl; 1388 slidesPerViewLg = !slidesPerViewLg 1389 ? slidesPerViewXl 1390 : slidesPerViewLg; 1391 slidesPerViewMd = !slidesPerViewMd 1392 ? slidesPerViewLg 1393 : slidesPerViewMd; 1394 slidesPerViewSm = !slidesPerViewSm 1395 ? slidesPerViewMd 1396 : slidesPerViewSm; 1397 slidesPerViewXs = !slidesPerViewXs 1398 ? slidesPerViewSm 1399 : slidesPerViewXs; 1400 1401 vertical = !vertical ? false : vertical; 1402 verticalXl = 1403 typeof verticalXl == "undefined" 1404 ? vertical 1405 : verticalXl; 1406 verticalLg = 1407 typeof verticalLg == "undefined" 1408 ? verticalXl 1409 : verticalLg; 1410 verticalMd = 1411 typeof verticalMd == "undefined" 1412 ? verticalLg 1413 : verticalMd; 1414 verticalSm = 1415 typeof verticalSm == "undefined" 1416 ? verticalMd 1417 : verticalSm; 1418 verticalXs = 1419 typeof verticalXs == "undefined" 1420 ? verticalSm 1421 : verticalXs; 1422 1423 slidesCenterMode = !slidesCenterMode 1424 ? false 1425 : slidesCenterMode; 1426 slidesArrows = !slidesArrows ? false : slidesArrows; 1427 slidesDots = !slidesDots ? false : slidesDots; 1428 slidesRows = !slidesRows ? 1 : slidesRows; 1429 slidesAutoplay = !slidesAutoplay ? false : slidesAutoplay;
1430 slidesAutoplaySpeed = !slidesAutoplaySpeed 1431 ? "5000" 1432 : slidesAutoplaySpeed; 1433 slidesFade = !slidesFade ? false : slidesFade; 1434 asNavFor = !asNavFor ? null : asNavFor; 1435 infinite = !infinite ? false : infinite; 1436 focusOnSelect = !focusOnSelect ? false : focusOnSelect; 1437 adaptiveHeight = !adaptiveHeight ? false : adaptiveHeight; 1438 variableWidth = !variableWidth ? false : variableWidth; 1439 1440 var slidesRtl = 1441 $("html").attr("dir") === "rtl" && !vertical 1442 ? true 1443 : false; 1444 var slidesRtlXL = 1445 $("html").attr("dir") === "rtl" && !verticalXl 1446 ? true 1447 : false; 1448 var slidesRtlLg = 1449 $("html").attr("dir") === "rtl" && !verticalLg 1450 ? true 1451 : false; 1452 var slidesRtlMd = 1453 $("html").attr("dir") === "rtl" && !verticalMd 1454 ? true 1455 : false; 1456 var slidesRtlSm = 1457 $("html").attr("dir") === "rtl" && !verticalSm 1458 ? true 1459 : false; 1460 var slidesRtlXs = 1461 $("html").attr("dir") === "rtl" && !verticalXs 1462 ? true 1463 : false; 1464 1465 $this.slick({ 1466 slidesToShow: slidesPerView, 1467 autoplay: slidesAutoplay, 1468 autoplaySpeed: slidesAutoplaySpeed, 1469 dots: slidesDots, 1470 arrows: slidesArrows, 1471 infinite: infinite, 1472 vertical: vertical, 1473 rtl: slidesRtl, 1474 rows: slidesRows, 1475 centerPadding: "0px", 1476 centerMode: slidesCenterMode, 1477 fade: slidesFade, 1478 asNavFor: asNavFor, 1479 focusOnSelect: focusOnSelect, 1480 adaptiveHeight: adaptiveHeight, 1481 slidesToScroll: 1, 1482 variableWidth: variableWidth, 1483 prevArrow: 1484 '<button type="button" class="slick-prev"><svg width="13" height="17" viewBox="0 0 13 17" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M12.8962 16.9244L8.95253 16.9244L0.653582 8.66068L8.95253 0.360843L12.8962 0.360844L4.5973 8.66068L12.8962 16.9244Z" fill="#707070"/> </svg> </button>', 1485 nextArrow: 1486 '<button type="button" class="slick-next"><svg width="13" height="17" viewBox="0 0 13 17" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M0.657471 0.36084H4.60118L12.9001 8.62459L4.60118 16.9244H0.65747L8.95641 8.62459L0.657471 0.36084Z" fill="#707070"/> </svg> </button>', 1487 responsive: [ 1488 { 1489 breakpoint: 1500, 1490 settings: { 1491 slidesToShow: slidesPerViewXl, 1492 vertical: verticalXl, 1493 rtl: slidesRtlXL, 1494 }, 1495 }, 1496 { 1497 breakpoint: 1200, 1498 settings: { 1499 slidesToShow: slidesPerViewLg, 1500 vertical: verticalLg, 1501 rtl: slidesRtlLg, 1502 }, 1503 }, 1504 { 1505 breakpoint: 992, 1506 settings: { 1507 slidesToShow: slidesPerViewMd, 1508 vertical: verticalMd, 1509 rtl: slidesRtlMd, 1510 }, 1511 }, 1512 { 1513 breakpoint: 768, 1514 settings: { 1515 slidesToShow: slidesPerViewSm, 1516 vertical: verticalSm, 1517 rtl: slidesRtlSm, 1518 }, 1519 }, 1520 { 1521 breakpoint: 576, 1522 settings: { 1523 slidesToShow: slidesPerViewXs, 1524 vertical: verticalXs, 1525 rtl: slidesRtlXs, 1526 }, 1527 }, 1528 ], 1529 }); 1530 }); 1531 }, 1532 chart: function (selector, config) { 1533 if (!$(selector).length) return; 1534 1535 $(selector).each(function () { 1536 var $this = $(this); 1537 1538 var aizChart = new Chart($this, config); 1539 }); 1540 }, 1541 noUiSlider: function () { 1542 if ($(".aiz-range-slider")[0]) { 1543 $(".aiz-range-slider").each(function () { 1544 var c = document.getElementById("input-slider-range"), 1545 d = document.getElementById( 1546 "input-slider-range-value-low" 1547 ), 1548 e = document.getElementById( 1549 "input-slider-range-value-high" 1550 ), 1551 f = [d, e]; 1552 1553 noUiSlider.create(c, { 1554 start: [ 1555 parseInt(d.getAttribute("data-range-value-low")), 1556 parseInt(e.getAttribute("data-range-value-high")), 1557 ], 1558 connect: !0, 1559 range: { 1560 min: parseInt( 1561 c.getAttribute("data-range-value-min") 1562 ), 1563 max: parseInt( 1564 c.getAttribute("data-range-value-max") 1565 ), 1566 }, 1567 }), 1568 c.noUiSlider.on("update", function (a, b) { 1569 f[b].textContent = a[b]; 1570 }), 1571 c.noUiSlider.on("change", function (a, b) { 1572 rangefilter(a); 1573 }); 1574 }); 1575 } 1576 }, 1577 zoom: function () { 1578 if ($(".img-zoom")[0]) { 1579 $(".img-zoom").zoom({ 1580 magnify: 1.5, 1581 }); 1582 if ( 1583 "ontouchstart" in window || 1584 navigator.maxTouchPoints > 0 || 1585 navigator.msMaxTouchPoints > 0 1586 ) { 1587 $(".img-zoom").trigger("zoom.destroy"); 1588 } 1589 } 1590 }, 1591 jsSocials: function () { 1592 if ($(".aiz-share")[0]) { 1593 $(".aiz-share").jsSocials({ 1594 showLabel: false, 1595 showCount: false, 1596 shares: [ 1597 { 1598 share: "email",
1599 logo: "lar la-envelope", 1600 }, 1601 { 1602 share: "twitter", 1603 logo: "lab la-twitter", 1604 }, 1605 { 1606 share: "facebook", 1607 logo: "lab la-facebook-f", 1608 }, 1609 { 1610 share: "linkedin", 1611 logo: "lab la-linkedin-in", 1612 }, 1613 { 1614 share: "whatsapp", 1615 logo: "lab la-whatsapp", 1616 }, 1617 ], 1618 }); 1619 } 1620 }, 1621 particles: function () { 1622 particlesJS( 1623 "particles-js", 1624 1625 { 1626 particles: { 1627 number: { 1628 value: 80, 1629 density: { 1630 enable: true, 1631 value_area: 800, 1632 }, 1633 }, 1634 color: { 1635 value: "#dfdfe6", 1636 }, 1637 shape: { 1638 type: "circle", 1639 stroke: { 1640 width: 0, 1641 color: "#000000", 1642 }, 1643 polygon: { 1644 nb_sides: 5, 1645 }, 1646 image: { 1647 src: "img/github.svg", 1648 width: 100, 1649 height: 100, 1650 }, 1651 }, 1652 opacity: { 1653 value: 0.5, 1654 random: false, 1655 anim: { 1656 enable: false, 1657 speed: 1, 1658 opacity_min: 0.1, 1659 sync: false, 1660 }, 1661 }, 1662 size: { 1663 value: 5, 1664 random: true, 1665 anim: { 1666 enable: false, 1667 speed: 40, 1668 size_min: 0.1, 1669 sync: false, 1670 }, 1671 }, 1672 line_linked: { 1673 enable: true, 1674 distance: 150, 1675 color: "#dfdfe6", 1676 opacity: 0.4, 1677 width: 1, 1678 }, 1679 move: { 1680 enable: true, 1681 speed: 6, 1682 direction: "none", 1683 random: false, 1684 straight: false, 1685 out_mode: "out", 1686 attract: { 1687 enable: false, 1688 rotateX: 600, 1689 rotateY: 1200, 1690 }, 1691 }, 1692 }, 1693 interactivity: { 1694 detect_on: "canvas", 1695 events: { 1696 onhover: { 1697 enable: true, 1698 mode: "repulse", 1699 }, 1700 onclick: { 1701 enable: true, 1702 mode: "push", 1703 }, 1704 resize: true, 1705 }, 1706 modes: { 1707 grab: { 1708 distance: 400, 1709 line_linked: { 1710 opacity: 1, 1711 }, 1712 }, 1713 bubble: { 1714 distance: 400, 1715 size: 40, 1716 duration: 2, 1717 opacity: 8, 1718 speed: 3, 1719 }, 1720 repulse: { 1721 distance: 200, 1722 }, 1723 push: { 1724 particles_nb: 4, 1725 }, 1726 remove: { 1727 particles_nb: 2, 1728 }, 1729 }, 1730 }, 1731 retina_detect: true, 1732 config_demo: { 1733 hide_card: false, 1734 background_color: "#b61924", 1735 background_image: "", 1736 background_position: "50% 50%", 1737 background_repeat: "no-repeat", 1738 background_size: "cover", 1739 }, 1740 } 1741 ); 1742 }, 1743 }; 1744 AIZ.extra = { 1745 refreshToken: function () { 1746 $.get(AIZ.data.appUrl + "/refresh-csrf").done(function (data) { 1747 AIZ.data.csrf = data; 1748 }); 1749 // console.log(AIZ.data.csrf); 1750 }, 1751 mobileNavToggle: function () { 1752 if (window.matchMedia("(max-width: 1200px)").matches) { 1753 $("body").addClass("side-menu-closed"); 1754 } 1755 $('[data-toggle="aiz-mobile-nav"]').on("click", function () { 1756 if ($("body").hasClass("side-menu-open")) { 1757 $("body") 1758 .addClass("side-menu-closed") 1759 .removeClass("side-menu-open"); 1760 } else if ($("body").hasClass("side-menu-closed")) { 1761 $("body") 1762 .removeClass("side-menu-closed") 1763 .addClass("side-menu-open"); 1764 } else { 1765 $("body") 1766 .removeClass("side-menu-open") 1767 .addClass("side-menu-closed"); 1768 } 1769 }); 1770 $(".aiz-sidebar-overlay").on("click", function () { 1771 $("body") 1772 .removeClass("side-menu-open") 1773 .addClass("side-menu-closed"); 1774 }); 1775 }, 1776 initActiveMenu: function () { 1777 $('[data-toggle="aiz-side-menu"] a').each(function () { 1778 var pageUrl = window.location.href.split(/[?#]/)[0]; 1779 if (this.href == pageUrl || $(this).hasClass("active")) { 1780 $(this).addClass("active"); 1781 $(this).closest(".aiz-side-nav-item").addClass("mm-active"); 1782 $(this) 1783 .closest(".level-2") 1784 .siblings("a") 1785 .addClass("level-2-active"); 1786 $(this) 1787 .closest(".level-3") 1788 .siblings("a") 1789 .addClass("level-3-active"); 1790 } 1791 }); 1792 }, 1793 deleteConfirm: function () { 1794 $(".confirm-delete").click(function (e) { 1795 e.preventDefault(); 1796 var url = $(this).data("href"); 1797 $("#delete-modal").modal("show"); 1798 $("#delete-link").attr("href", url); 1799 }); 1800 1801 $(".confirm-cancel").click(function (e) { 1802 e.preventDefault(); 1803 var url = $(this).data("href"); 1804 $("#cancel-modal").modal("show"); 1805 $("#cancel-link").attr("href", url); 1806 }); 1807 1808 $(".confirm-complete").click(function (e) { 1809 e.preventDefault(); 1810 var url = $(this).data("href"); 1811 $("#complete-modal").modal("show"); 1812 $("#comfirm-link").attr("href", url); 1813 }); 1814 1815 $(".confirm-alert").click(function (e) { 1816 e.preventDefault(); 1817 var url = $(this).data("href"); 1818 var target = $(this).data("target"); 1819 $(target).modal("show"); 1820 $(target).find(".comfirm-link").attr("href", url); 1821 $("#comfirm-link").attr("href", url); 1822 }); 1823 }, 1824 bytesToSize: function (bytes) { 1825 var sizes = ["Bytes", "KB", "MB", "GB", "TB"]; 1826 if (bytes == 0) return "0 Byte"; 1827 var i = parseInt(Math.floor(Math.log(bytes) / Math.log(1024))); 1828 return Math.round(bytes / Math.pow(1024, i), 2) + " " + sizes[i]; 1829 }, 1830 multiModal: function () { 1831 $(document).on("show.bs.modal", ".modal", function (event) { 1832 var zIndex = 1040 + 10 * $(".modal:visible").length; 1833 $(this).css("z-index", zIndex); 1834 setTimeout(function () { 1835 $(".modal-backdrop") 1836 .not(".modal-stack") 1837 .css("z-index", zIndex - 1) 1838 .addClass("modal-stack"); 1839 }, 0); 1840 }); 1841 $(document).on("hidden.bs.modal", function () { 1842 if ($(".modal.show").length > 0) { 1843 $("body").addClass("modal-open"); 1844 } 1845 }); 1846 }, 1847 bsCustomFile: function () { 1848 $(".custom-file input").change(function (e) { 1849 var files = []; 1850 for (var i = 0; i < $(this)[0].files.length; i++) { 1851 files.push($(this)[0].files[i].name); 1852 } 1853 if (files.length === 1) { 1854 $(this).next(".custom-file-name").html(files[0]); 1855 } else if (files.length > 1) { 1856 $(this) 1857 .next(".custom-file-name") 1858 .html(files.length + " " + AIZ.local.files_selected); 1859 } else { 1860 $(this) 1861 .next(".custom-file-name") 1862 .html(AIZ.local.choose_file); 1863 } 1864 }); 1865 }, 1866 stopPropagation: function () { 1867 $(document).on("click", ".stop-propagation", function (e) { 1868 e.stopPropagation(); 1869 }); 1870 }, 1871 outsideClickHide: function () { 1872 $(document).on("click", function (e) { 1873 $(".document-click-d-none").addClass("d-none"); 1874 }); 1875 }, 1876 inputRating: function () { 1877 $(".rating-input").each(function () { 1878 $(this) 1879 .find("label") 1880 .on({ 1881 mouseover: function (event) { 1882 $(this).find("i").addClass("hover"); 1883 $(this).prevAll().find("i").addClass("hover"); 1884 }, 1885 mouseleave: function (event) { 1886 $(this).find("i").removeClass("hover"); 1887 $(this).prevAll().find("i").removeClass("hover"); 1888 }, 1889 click: function (event) { 1890 $(this).siblings().find("i").removeClass("active"); 1891 $(this).find("i").addClass("active"); 1892 $(this).prevAll().find("i").addClass("active"); 1893 }, 1894 }); 1895 if ($(this).find("input").is(":checked")) { 1896 $(this) 1897 .find("label") 1898 .siblings() 1899 .find("i") 1900 .removeClass("active"); 1901 $(this) 1902 .find("input:checked") 1903 .closest("label") 1904 .find("i") 1905 .addClass("active"); 1906 $(this) 1907 .find("input:checked") 1908 .closest("label") 1909 .prevAll() 1910 .find("i") 1911 .addClass("active"); 1912 } 1913 }); 1914 }, 1915 scrollToBottom: function () { 1916 $(".scroll-to-btm").each(function (i, el) { 1917 el.scrollTop = el.scrollHeight; 1918 }); 1919 }, 1920 classToggle: function () { 1921 $(document).on( 1922 "click", 1923 '[data-toggle="class-toggle"]', 1924 function () { 1925 var $this = $(this); 1926 var target = $this.data("target"); 1927 var sameTriggers = $this.data("same"); 1928 var backdrop = $(this).data("backdrop"); 1929 console.log("sideBar open closeeeee"); 1930 if ($(target).hasClass("active")) { 1931 $(target).removeClass("active"); 1932 $(sameTriggers).removeClass("active"); 1933 $this.removeClass("active"); 1934 $("body").removeClass("overflow-hidden"); 1935 } else { 1936 $(target).addClass("active"); 1937 $this.addClass("active"); 1938 if (backdrop == "static") { 1939 $("body").addClass("overflow-hidden"); 1940 } 1941 } 1942 } 1943 ); 1944 }, 1945 collapseSidebar: function () { 1946 $(document).on( 1947 "click", 1948 '[data-toggle="collapse-sidebar"]', 1949 function (i, el) { 1950 var $this = $(this); 1951 var target = $(this).data("target"); 1952 var sameTriggers = $(this).data("siblings"); 1953 1954 // var showOverlay = $this.data('overlay'); 1955 // var overlayMarkup = '<div class="overlay overlay-fixed dark c-pointer" data-toggle="collapse-sidebar" data-target="'+target+'"></div>'; 1956 1957 // showOverlay = !showOverlay ? true : showOverlay; 1958 1959 // if (showOverlay && $(target).siblings('.overlay').length !== 1) { 1960 // $(target).after(overlayMarkup); 1961 // } 1962 1963 e.preventDefault(); 1964 if ($(target).hasClass("opened")) { 1965 $(target).removeClass("opened"); 1966 $(sameTriggers).removeClass("opened"); 1967 $($this).removeClass("opened"); 1968 } else { 1969 $(target).addClass("opened"); 1970 $($this).addClass("opened"); 1971 } 1972 } 1973 ); 1974 }, 1975 autoScroll: function () { 1976 if ($(".aiz-auto-scroll").length > 0) { 1977 $(".aiz-auto-scroll").each(function () { 1978 var options = $(this).data("options"); 1979 1980 options = !options 1981 ? '{"delay" : 2000 ,"amount" : 70 }' 1982 : options; 1983 1984 options = JSON.parse(options); 1985 1986 this.delay = parseInt(options["delay"]) || 2000; 1987 this.amount = parseInt(options["amount"]) || 70; 1988 this.autoScroll = $(this); 1989 this.iScrollHeight = this.autoScroll.prop("scrollHeight"); 1990 this.iScrollTop = this.autoScroll.prop("scrollTop"); 1991 this.iHeight = this.autoScroll.height(); 1992 1993 var self = this; 1994 this.timerId = setInterval(function () { 1995 if ( 1996 self.iScr
1996ollTop + self.iHeight < 1997 self.iScrollHeight 1998 ) { 1999 self.iScrollTop = self.autoScroll.prop("scrollTop"); 2000 self.iScrollTop += self.amount; 2001 self.autoScroll.animate( 2002 { scrollTop: self.iScrollTop }, 2003 "slow", 2004 "linear" 2005 ); 2006 } else { 2007 self.iScrollTop -= self.iScrollTop; 2008 self.autoScroll.animate( 2009 { scrollTop: "0px" }, 2010 "fast", 2011 "swing" 2012 ); 2013 } 2014 }, self.delay); 2015 }); 2016 } 2017 }, 2018 addMore: function () { 2019 $('[data-toggle="add-more"]').each(function () { 2020 var $this = $(this); 2021 var content = $this.data("content"); 2022 var target = $this.data("target"); 2023 2024 $this.on("click", function (e) { 2025 e.preventDefault(); 2026 $(target).append(content); 2027 AIZ.plugins.bootstrapSelect(); 2028 }); 2029 }); 2030 }, 2031 removeParent: function () { 2032 $(document).on( 2033 "click", 2034 '[data-toggle="remove-parent"]', 2035 function () { 2036 var $this = $(this); 2037 var parent = $this.data("parent"); 2038 $this.closest(parent).remove(); 2039 } 2040 ); 2041 }, 2042 selectHideShow: function () { 2043 $('[data-show="selectShow"]').each(function () { 2044 var target = $(this).data("target"); 2045 $(this).on("change", function () { 2046 var value = $(this).val(); 2047 // console.log(value); 2048 $(target) 2049 .children() 2050 .not("." + value) 2051 .addClass("d-none"); 2052 $(target) 2053 .find("." + value) 2054 .removeClass("d-none"); 2055 }); 2056 }); 2057 }, 2058 plusMinus: function () { 2059 $(".aiz-plus-minus input").each(function () { 2060 var $this = $(this); 2061 var min = parseInt($(this).attr("min")); 2062 var max = parseInt($(this).attr("max")); 2063 var value = parseInt($(this).val()); 2064 if (value <= min) { 2065 $this 2066 .siblings('[data-type="minus"]') 2067 .attr("disabled", true); 2068 } else if ( 2069 $this.siblings('[data-type="minus"]').attr("disabled") 2070 ) { 2071 $this 2072 .siblings('[data-type="minus"]') 2073 .removeAttr("disabled"); 2074 } 2075 if (value >= max) { 2076 $this.siblings('[data-type="plus"]').attr("disabled", true); 2077 } else if ( 2078 $this.siblings('[data-type="plus"]').attr("disabled") 2079 ) { 2080 $this.siblings('[data-type="plus"]').removeAttr("disabled"); 2081 } 2082 }); 2083 $(".aiz-plus-minus button") 2084 .off("click") 2085 .on("click", function (e) { 2086 e.preventDefault(); 2087 2088 var fieldName = $(this).attr("data-field"); 2089 var type = $(this).attr("data-type"); 2090 var input = $("input[name='" + fieldName + "']"); 2091 var currentVal = parseInt(input.val()); 2092 2093 if (!isNaN(currentVal)) { 2094 if (type == "minus") { 2095 if (currentVal > input.attr("min")) { 2096 input.val(currentVal - 1).change(); 2097 } 2098 if (parseInt(input.val()) == input.attr("min")) { 2099 $(this).attr("disabled", true); 2100 } 2101 } else if (type == "plus") { 2102 if (currentVal < input.attr("max")) { 2103 input.val(currentVal + 1).change(); 2104 } 2105 if (parseInt(input.val()) == input.attr("max")) { 2106 $(this).attr("disabled", true); 2107 } 2108 } 2109 } else { 2110 input.val(0); 2111 } 2112 }); 2113 $(".aiz-plus-minus input") 2114 .off("change") 2115 .on("change", function () { 2116 var minValue = parseInt($(this).attr("min")); 2117 var maxValue = parseInt($(this).attr("max")); 2118 var valueCurrent = parseInt($(this).val()); 2119 2120 name = $(this).attr("name");
2121 if (valueCurrent >= minValue) { 2122 $(this) 2123 .siblings("[data-type='minus']") 2124 .removeAttr("disabled"); 2125 } else { 2126 alert( 2127 translate( 2128 "Sorry, the minimum limit has been reached" 2129 ) 2130 ); 2131 $(this).val(minValue); 2132 } 2133 if (valueCurrent <= maxValue) { 2134 $(this) 2135 .siblings("[data-type='plus']") 2136 .removeAttr("disabled"); 2137 } else { 2138 alert( 2139 translate( 2140 "Sorry, the maximum limit has been reached" 2141 ) 2142 ); 2143 $(this).val(maxValue); 2144 } 2145 2146 if (typeof getVariantPrice === "function") { 2147 getVariantPrice(); 2148 } 2149 }); 2150 }, 2151 hovCategoryMenu: function () { 2152 $("#category-menu-icon, #category-sidebar") 2153 .on("mouseover", function (event) { 2154 $("#hover-category-menu") 2155 .addClass("active") 2156 .removeClass("d-none"); 2157 }) 2158 .on("mouseout", function (event) { 2159 $("#hover-category-menu") 2160 .addClass("d-none") 2161 .removeClass("active"); 2162 }); 2163 }, 2164 clickCategoryMenu: function () { 2165 var menu = $("#click-category-menu"); 2166 menu.hide(); 2167 menu.removeClass("d-none"); 2168 $("#category-menu-bar").on("click", function (event) { 2169 if (event.target.closest('.categoriesAll')) { 2170 event.stopPropagation(); 2171 }else{ 2172 menu.slideToggle(500); 2173 if ($("#category-menu-bar-icon").hasClass("show")) { 2174 $("#category-menu-bar-icon").removeClass("show"); 2175 } else { 2176 $("#category-menu-bar-icon").addClass("show"); 2177 } 2178 } 2179 2180 }); 2181 }, 2182 hovUserTopMenu: function () { 2183 $("#nav-user-info") 2184 .on("mouseover", function (event) { 2185 $(".hover-user-top-menu").addClass("active"); 2186 }) 2187 .on("mouseout", function (event) { 2188 $(".hover-user-top-menu").removeClass("active"); 2189 }); 2190 }, 2191 trimAppUrl: function () { 2192 if (AIZ.data.appUrl.slice(-1) == "/") { 2193 AIZ.data.appUrl = AIZ.data.appUrl.slice( 2194 0, 2195 AIZ.data.appUrl.length - 1 2196 ); 2197 // console.log(AIZ.data.appUrl); 2198 } 2199 }, 2200 setCookie: function (cname, cvalue, exdays) { 2201 var d = new Date(); 2202 d.setTime(d.getTime() + exdays * 24 * 60 * 60 * 1000); 2203 var expires = "expires=" + d.toUTCString(); 2204 document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/"; 2205 }, 2206 getCookie: function (cname) { 2207 var name = cname + "="; 2208 var decodedCookie = decodeURIComponent(document.cookie); 2209 var ca = decodedCookie.split(";"); 2210 for (var i = 0; i < ca.length; i++) { 2211 var c = ca[i]; 2212 while (c.charAt(0) === " ") { 2213 c = c.substring(1); 2214 } 2215 if (c.indexOf(name) === 0) { 2216 return c.substring(name.length, c.length); 2217 } 2218 } 2219 return ""; 2220 }, 2221 acceptCookie: function () { 2222 if (!AIZ.extra.getCookie("acceptCookies")) { 2223 $(".aiz-cookie-alert").addClass("show"); 2224 } 2225 $(".aiz-cookie-accept").on("click", function () { 2226 AIZ.extra.setCookie("acceptCookies", true, 60); 2227 $(".aiz-cookie-alert").removeClass("show"); 2228 }); 2229 }, 2230 setSession: function () { 2231 $(".set-session").each(function () { 2232 var $this = $(this); 2233 var key = $this.data("key"); 2234 var value = $this.data("value"); 2235 2236 const now = new Date(); 2237 const item = { 2238 value: value, 2239 expiry: now.getTime() + 3600000, 2240 }; 2241 2242 $this.on("click", function () { 2243 localStorage.setItem(key, JSON.stringify(item)); 2244 }); 2245 }); 2246 }, 2247 showSessionPopup: function () { 2248 $(".removable-session").each(function () { 2249 var $this = $(this); 2250 var key = $this.data("key"); 2251 var value = $this.data("value"); 2252 var item = {}; 2253 if (localStorage.getItem(key)) { 2254 item = localStorage.getItem(key); 2255 item = JSON.parse(item); 2256 } 2257 const now = new Date(); 2258 if ( 2259 typeof item.expiry == "undefined" || 2260 now.getTime() > item.expiry 2261 ) { 2262 $this.removeClass("d-none"); 2263 } 2264 }); 2265 }, 2266 }; 2267 2268 setInterval(function () { 2269 AIZ.extra.refreshToken(); 2270 }, 3600000); 2271 2272 // init aiz plugins, extra options 2273 AIZ.extra.initActiveMenu(); 2274 AIZ.extra.mobileNavToggle(); 2275 AIZ.extra.deleteConfirm(); 2276 AIZ.extra.multiModal(); 2277 AIZ.extra.inputRating(); 2278 AIZ.extra.bsCustomFile(); 2279 AIZ.extra.stopPropagation(); 2280 AIZ.extra.outsideClickHide(); 2281 AIZ.extra.scrollToBottom();
2282 AIZ.extra.classToggle(); 2283 AIZ.extra.collapseSidebar(); 2284 AIZ.extra.autoScroll(); 2285 AIZ.extra.addMore(); 2286 AIZ.extra.removeParent(); 2287 AIZ.extra.selectHideShow(); 2288 AIZ.extra.plusMinus(); 2289 AIZ.extra.hovCategoryMenu(); 2290 AIZ.extra.clickCategoryMenu(); 2291 AIZ.extra.hovUserTopMenu(); 2292 AIZ.extra.trimAppUrl(); 2293 AIZ.extra.acceptCookie(); 2294 AIZ.extra.setSession(); 2295 AIZ.extra.showSessionPopup(); 2296 2297 AIZ.plugins.metismenu(); 2298 AIZ.plugins.bootstrapSelect(); 2299 //AIZ.plugins.tagify(); 2300 AIZ.plugins.textEditor(); 2301 AIZ.plugins.tooltip(); 2302 AIZ.plugins.countDown(); 2303 AIZ.plugins.countDownBox(); 2304 AIZ.plugins.countDownCircle(); 2305 AIZ.plugins.dateRange(); 2306 AIZ.plugins.timePicker(); 2307 AIZ.plugins.colorPicker(); 2308 AIZ.plugins.fooTable(); 2309 AIZ.plugins.slickCarousel(); 2310 AIZ.plugins.noUiSlider(); 2311 AIZ.plugins.zoom(); 2312 AIZ.plugins.jsSocials(); 2313 2314 // initialization of aiz uploader 2315 AIZ.uploader.initForInput(); 2316 AIZ.uploader.removeAttachment(); 2317 AIZ.uploader.previewGenerate(); 2318 2319 // $(document).ajaxComplete(function(){ 2320 // AIZ.plugins.bootstrapSelect('refresh'); 2321 // }); 2322})(jQuery); 2323 2324 2325 2326 2327 2328// Custom Footer 2329 2330 2331$(document).ready(function () { 2332 $(".footerMainBox").click(function () { 2333 $(".footerMainSecureBox").removeClass("opened"); 2334 if ($(this).hasClass("opened")) { 2335 $(this).removeClass("opened"); 2336 } else { 2337 $(".footerMainBox").removeClass("opened"); 2338 $(this).toggleClass("opened"); 2339 } 2340 }); 2341 2342 $(".footerMainSecureBox").click(function () { 2343 $(".footerMainBox").removeClass("opened"); 2344 $(this).toggleClass("opened"); 2345 }); 2346}); 2347 2348 2349// custom cart hovo 2350 2351if(document.querySelector('#cartCloseBtn')){ 2352 document.querySelector('#cartCloseBtn').addEventListener('click', function() { 2353 document.querySelector('.cart-hhh').classList.remove('show'); 2354 }); 2355} 2356// const drawer = document.getElementById('cart-hhh'); 2357// const openBtn = document.getElementById('cartToggleBtn'); 2358// const closeBtn = document.getElementById('cartCloseBtn'); 2359 2360// openBtn.addEventListener('click', () => { 2361// drawer.classList.remove('hidden'); 2362// drawer.classList.add('open'); 2363// }); 2364 2365// closeBtn.addEventListener('click', () => { 2366// drawer.classList.remove('show'); 2367 2368// }); 2369 2370// // Optional: Click outside to close 2371// window.addEventListener('click', function (e) { 2372// if (!drawer.contains(e.target) && !openBtn.contains(e.target)) { 2373// if (drawer.classList.contains('open')) { 2374// drawer.classList.remove('open'); 2375// setTimeout(() => { 2376// drawer.classList.add('hidden'); 2377// }, 300); 2378// } 2379// } 2380// }); 2381 2382 2383 2384 2385 2386// document.addEventListener('DOMContentLoaded', function () { 2387// const cartDrawer = document.querySelector('.cart-hhh'); 2388// const body = document.body; 2389 2390// const observer = new MutationObserver(function (mutationsList) { 2391// for (const mutation of mutationsList) { 2392// if (mutation.type === 'attributes' && mutation.attributeName === 'class') { 2393// const isOpen = cartDrawer.classList.contains('show'); 2394 2395// if (isOpen) { 2396// body.classList.add('cart-open'); 2397// showBackdrop(); 2398// } else { 2399// body.classList.remove('cart-open'); 2400// removeBackdrop(); 2401// } 2402// } 2403// } 2404// }); 2405 2406// observer.observe(cartDrawer, { attributes: true }); 2407 2408// function showBackdrop() { 2409// if (!document.querySelector('.cart-backdrop')) { 2410// const backdrop = document.createElement('div'); 2411// backdrop.className = 'cart-backdrop'; 2412 2413// backdrop.addEventListener('click', function () { 2414// cartDrawer.classList.remove('show'); 2415// }); 2416 2417// document.body.appendChild(backdrop); 2418// } 2419// } 2420 2421// function removeBackdrop() { 2422// const backdrop = document.querySelector('.cart-backdrop'); 2423// if (backdrop) backdrop.remove(); 2424// } 2425// }); 2426 2427 2428 2429 2430 2431 2432 2433 2434// const targetBlock = document.querySelector(".productShortAddToCardWrapper"); 2435const dimensionsSpecificationsBox = document.querySelector(".dimensionsSpecificationsBox"); 2436const reviewsBox = document.querySelector(".reviewsBox"); 2437const openCloseDimensionsSpecificationsBoxBtn = document.querySelector(".dimensionsSpecificationsTabbar"); 2438const openCloseReviewsBoxBtn = document.querySelector(".reviewsTabbar"); 2439// const minusButton = document.querySelector(".minus"); 2440// const plusButton = document.querySelector(".plus"); 2441let mainProductImage = document.querySelector( 2442 ".main-product-image img#main-image" 2443); 2444const productImages = document.querySelectorAll(".thumbnails a"); 2445let currentIndex = 0; 2446const images = [ 2447 "./assets/images/singleJacket1.webp", 2448 "./assets/images/singleJacket2.jpg", 2449 "./assets/images/singleJacket3.jpg", 2450 "./assets/images/singleJacket1.webp", 2451]; 2452if(openCloseDimensionsSpecificationsBoxBtn){ 2453 openCloseDimensionsSpecificationsBoxBtn.addEventListener("click", (e) => { 2454 e.stopPropagation(); 2455 dimensionsSpecificationsBox.classList.toggle("opened"); 2456 reviewsBox.classList.remove("opened"); 2457 });
2458} 2459if(!!openCloseReviewsBoxBtn){ 2460 openCloseReviewsBoxBtn.addEventListener("click", (e) => { 2461 e.stopPropagation(); 2462 reviewsBox.classList.toggle("opened"); 2463 dimensionsSpecificationsBox.classList.remove("opened"); 2464 }); 2465} 2466 2467 2468function updateActiveThumbnail() { 2469 productImages.forEach((item, index) => { 2470 item.classList.toggle("active", index === currentIndex); 2471 }); 2472} 2473 2474function showImage(index) { 2475 currentIndex = index; 2476 mainProductImage.src = images[index]; 2477 updateActiveThumbnail(); 2478} 2479 2480function prevImage() { 2481 currentIndex = (currentIndex - 1 + images.length) % images.length; 2482 showImage(currentIndex); 2483} 2484 2485function nextImage() { 2486 currentIndex = (currentIndex + 1) % images.length; 2487 showImage(currentIndex); 2488} 2489 2490 2491
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.