PageSourceSearch

https://mybookstore.am/public/assets/js/aiz-core.js?v=1.0.3

js mybookstore.am collected 2026-10-03 18:16:31 UTC 108,058 bytes, 2,491 lines download raw bytes

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.