PageSourceSearch

https://kumquaty.com/public/assets/js/aiz-core.js?v=3345

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

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.