File manager - Edit - /home/autoph/public_html/projects/api/public/js.tar
Back
secure_js_template.js 0000644 00000000236 15024732062 0010761 0 ustar 00 /* * Author: Clarence A Andaya * Date: 24 Mar 2022 */ //Only const Variable Here (function () { "use strict"; //Logic,Variables, Functions Here })(); dealer/add_dealer.js 0000644 00000004761 15024732062 0010413 0 ustar 00 var dealer_status = 1; $(function(){ $('#elid_dealer_status').prop('checked', true); }); function back(){ window.history.back(); } $.validator.setDefaults({ submitHandler: function(){ var json_data = formJson('data-json', $("[data-json]")); $.ajax({ url: "/admin/dealers/dealer_add", data: { json_data: json_data, csrf_token: $('#csrf_token').val(), dealer_status: dealer_status }, type: "POST", dataType: 'json', beforeSend: function() { toastr.remove(); toastr.info("Adding dealer"); $('#elid_submit_dealer').prop('disabled', true); }, success: function(result) { if(parseInt(result.status) === 0) { toastr.remove(); toastr.success(result.message); setTimeout(function() { window.location.href = "/admin/dealers"; }, 2000); } else { toastr.remove(); toastr.error(result.message); } $('#elid_submit_dealer').prop('disabled', false); }, error: function() { toastr.remove(); toastr.error("Error has occurred. Try again."); $('#elid_submit_dealer').prop('disabled', false); } }); }, ignore: [] }); $('#form-dealer').validate({ // elid -> means 'element id' rules: { elid_dealer_code: { required: true }, elid_dealer_name: { required: true } }, messages: { elid_dealer_code: { required: "Dealer code is required" }, elid_dealer_name: { required: "Dealer name is required" } }, errorElement: 'span', errorPlacement: function(error, element) { error.addClass('invalid-feedback'); element.closest('.form-group').append(error); }, highlight: function(element, errorClass, validClass) { $(element).addClass('is-invalid'); }, unhighlight: function(element, errorClass, validClass) { $(element).removeClass('is-invalid'); } }); $('#elid_dealer_status').on('change.bootstrapSwitch', function(e){ if($(this).is(':checked')){ dealer_status = 1; } else { dealer_status = 0; } }); dealer/edit_dealer.js 0000644 00000007340 15024732062 0010604 0 ustar 00 var dealer_status = 0; $(function(){ loadDealerDetails(); }); function loadDealerDetails(){ var status = false; $.ajax({ url: "/admin/dealers/dealer_load", data: { dealer_id: dealer_id, csrf_token: $('#csrf_token').val() }, type: "POST", dataType: 'json', beforeSend: function() { }, success: function(result) { $('#elid_dealer_code').val(result[0].code); $('#elid_dealer_name').val(result[0].name); parseInt(result[0].status) == 0 ? status = false : status = true; $('#elid_dealer_status').prop('checked', status); dealer_status = result[0].status; $('#span-created-at').text(result[0].created_at); $('#span-uploaded-by').text(result[0].updated_at); } }) } function back(){ window.history.back(); } $.validator.setDefaults({ submitHandler: function(){ var json_data = formJson('data-json', $("[data-json]")); $.ajax({ url: "/admin/dealers/dealer_edit", data: { json_data: json_data, csrf_token: $('#csrf_token').val(), dealer_id: dealer_id, dealer_status: dealer_status }, type: "POST", dataType: 'json', beforeSend: function() { toastr.remove(); toastr.info("Updating.."); $('#elid_save_dealer').prop('disabled', true); }, success: function(result) { if(parseInt(result.status) === 0) { // success toastr.remove(); toastr.success(result.message); setTimeout(function() { window.location.href = "/admin/dealers"; }, 2000); } else if(parseInt(result.status) === 1){ // duplicate code toastr.remove(); toastr.error(result.message); } else if(parseInt(result.status) === 2){ // duplicate name toastr.remove(); toastr.error(result.message); } else if(parseInt(result.status) === 3){ // something wrong toastr.remove(); toastr.error(result.message); } else if(parseInt(result.status) === 10){ // nothing changes toastr.remove(); toastr.info(result.message); } $('#elid_save_dealer').prop('disabled', false); }, error: function() { toastr.remove(); toastr.error("Error has occurred. Try again."); $('#elid_save_dealer').prop('disabled', false); } }); }, ignore: [] }); $('#form-dealer').validate({ // elid -> means 'element id' rules: { elid_dealer_code: { required: true }, elid_dealer_name: { required: true } }, messages: { }, errorElement: 'span', errorPlacement: function(error, element) { error.addClass('invalid-feedback'); element.closest('.form-group').append(error); }, highlight: function(element, errorClass, validClass) { $(element).addClass('is-invalid'); }, unhighlight: function(element, errorClass, validClass) { $(element).removeClass('is-invalid'); } }); $('#elid_dealer_status').on('change.bootstrapSwitch', function(e){ if($(this).is(':checked')){ dealer_status = 1; } else { dealer_status = 0; } }); dealer/dealer.js 0000644 00000003072 15024732062 0007575 0 ustar 00 $(function(){ initTableDealerList(); // initialize table refreshDealerListTable(); }); function initTableDealerList() { var $table = $('#table-dealer-list'); $table.bootstrapTable('destroy').bootstrapTable({ }) } function refreshDealerListTable() { var $table = $('#table-dealer-list') $(function() { $table.bootstrapTable('refresh', { url: '/admin/dealers/table_list' }); }); } function queryParamsDealerTable(params) { return { search: $('#br-search-dealer').val(), offset: params.offset, limit: params.limit, type: 1 // dealer_list }; } function delay(callback, ms) { var timer = 0; return function() { var context = this, args = arguments; clearTimeout(timer); timer = setTimeout(function() { callback.apply(context, args); }, ms || 0); }; } $('#br-add-dealer').on('click', function(){ window.location.href = "/admin/dealers/add_page"; }); $('#table-dealer-list').on('click-cell.bs.table', function(field, value, row, $el) { var dealer_id = $el.id; window.location.href = "/admin/dealers/edit_page/" + dealer_id; }); $('#br-add-brand').on('click', function(){ window.location.href = "/admin/brands/add_page"; }); $('#table-brand-list').on('click-cell.bs.table', function(field, value, row, $el) { var brand_id = $el.id; window.location.href = "/admin/brands/edit_page/" + brand_id; }); $('#br-search-dealer').on('keyup', delay(function(e) { refreshDealerListTable(); }, 500)); attribute/attribute.js 0000644 00000013733 15024732062 0011120 0 ustar 00 var Toast; var attr_id = 0; var attr_status = 0; $(function(){ refreshAttributeList(); Toast = Swal.mixin({ toast: true, position: 'top-end', showConfirmButton: false, timer: 3000 }); $('.el-items').prop('disabled', true); }); function refreshAttributeList(){ $.ajax({ url: "/admin/attributes/attribute_list", data: { csrf_token: $('#csrf_token').val() }, type: "POST", dataType: 'json', success: function(result) { $('#attribute-list').html(''); $('#attribute-list').append("\"" + result + "\""); }, error: function() { Toast.fire({ icon: 'error', title: "There's something wrong fetching attribute list" }); } }); } function delay(callback, ms) { var timer = 0; return function() { var context = this, args = arguments; clearTimeout(timer); timer = setTimeout(function() { callback.apply(context, args); }, ms || 0); }; } $.validator.setDefaults({ submitHandler: function(){ var json_data = new Object(); json_data.attribute_name = $('#new_attribute_name').val(); var jason = JSON.stringify(json_data); $.ajax({ url: "/admin/attributes/attribute_add", data: { json_data: jason, csrf_token: $('#csrf_token').val() }, type: "POST", dataType: 'json', success: function(result) { // console.log(result); if(parseInt(result.status) === 0) { // success Toast.fire({ icon: 'success', title: result.message }); $('#new_attribute_name').val(""); $('#modal-add-attribute').modal('hide'); refreshAttributeList(); } else if(result.status == 1){ // duplicate Toast.fire({ icon: 'warning', title: result.message }); } }, error: function() { Toast.fire({ icon: 'error', title: "Error has occurred, try again" }); } }); } }); $('#form-add-attribute').validate({ rules: { new_attribute_name: { required: true } }, messages: { new_attribute_name: { required: "Please provide attribute name" } }, errorElement: 'span', errorPlacement: function(error, element) { error.addClass('invalid-feedback'); element.closest('.form-group').append(error); }, highlight: function(element, errorClass, validClass) { $(element).addClass('is-invalid'); }, unhighlight: function(element, errorClass, validClass) { $(element).removeClass('is-invalid'); } }); $('#attribute-list').on('change', function(){ attr_id = $('#attribute-list').val(); $.ajax({ url: "/admin/attributes/attribute_fetch", data: { csrf_token: $('#csrf_token').val(), attr_id: attr_id }, type: "POST", dataType: 'json', success: function(result) { $('#attr-name').val(result[0].title); $('#attr-added-by').text(result[0].createdAt); $('#attr-modify-by').text(result[0].updatedAt); $('.el-items').prop('disabled', false); $('#attr-status').prop('checked', parseInt(result[0].status)); }, error: function() { Toast.fire({ icon: 'error', title: "Error fetching data, try again" }); } }); }); $('#attr-status').on('change', function(){ if($(this).is(':checked')){ attr_status = 1; } else { attr_status = 0; } }); $('#attr-update').on('click', function(){ var attr_name = $('#attr-name').val(); $.ajax({ url: "/admin/attributes/attribute_update", data: { csrf_token: $('#csrf_token').val(), attr_id: attr_id, attr_name: attr_name, attr_status: attr_status }, type: "POST", dataType: 'json', success: function(result) { if(result.status == 0){ // success Toast.fire({ icon: 'success', title: "Update success" }); refreshAttributeList(); // attr_id = 0; } else if(result.status == 1){ Toast.fire({ icon: 'warning', title: "Tax name you've provided is already in list" }); } else if(result.status == 10){ Toast.fire({ icon: 'info', title: "Nothing changed" }); } }, error: function() { Toast.fire({ icon: 'error', title: "Error updating data, try again" }); } }); }); $('#search-attribute').on('keyup', delay(function(e) { var search_attribute = $(this).val(); $.ajax({ url: "/admin/attributes/attribute_search", data: { csrf_token: $('#csrf_token').val(), search_item: search_attribute }, type: "POST", dataType: 'json', success: function(result) { $('#attribute-list').html(''); $('#attribute-list').append("\"" + result + "\""); }, error: function() { Toast.fire({ icon: 'error', title: "There's something wrong searching attribute" }); } }); }, 1000)); crud/crud_attributes.js 0000644 00000012211 15024732062 0011240 0 ustar 00 var Toast; var attr_id = 0; var attr_status = 0; $(function(){ navigateTabs(1); refreshAttributeList(); Toast = Swal.mixin({ toast: true, position: 'top-end', showConfirmButton: false, timer: 3000 }); $('.el-items').prop('disabled', true); }); function navigateTabs(tab) { $('#tab-attributes').addClass('active'); $('#tabpage-attributes').addClass('active'); $('#tabpage-attributes').addClass('show'); } function refreshAttributeList(){ $.ajax({ url: "/admin/attribute_list", data: { csrf_token: $('#csrf_token').val() }, type: "POST", dataType: 'json', success: function(result) { $('#attribute-list').html(''); $('#attribute-list').append("\"" + result + "\""); }, error: function() { Toast.fire({ icon: 'error', title: "There's something wrong fetching attribute list" }); } }); } $.validator.setDefaults({ submitHandler: function(){ var json_data = new Object(); json_data.attribute_name = $('#new_attribute_name').val(); var jason = JSON.stringify(json_data); $.ajax({ url: "/admin/attribute_add", data: { json_data: jason, csrf_token: $('#csrf_token').val() }, type: "POST", dataType: 'json', success: function(result) { // console.log(result); if(parseInt(result.status) === 0) { // success Toast.fire({ icon: 'success', title: result.message }); $('#new_attribute_name').val(""); $('#modal-add-attribute').modal('hide'); refreshAttributeList(); } else if(result.status == 1){ // duplicate Toast.fire({ icon: 'warning', title: result.message }); } }, error: function() { Toast.fire({ icon: 'error', title: "Error has occurred, try again" }); } }); } }); $('#form-add-attribute').validate({ rules: { new_attribute_name: { required: true } }, messages: { new_attribute_name: { required: "Please provide attribute name" } }, errorElement: 'span', errorPlacement: function(error, element) { error.addClass('invalid-feedback'); element.closest('.form-group').append(error); }, highlight: function(element, errorClass, validClass) { $(element).addClass('is-invalid'); }, unhighlight: function(element, errorClass, validClass) { $(element).removeClass('is-invalid'); } }); $('#attribute-list').on('change', function(){ attr_id = $('#attribute-list').val(); $.ajax({ url: "/admin/attribute_fetch", data: { csrf_token: $('#csrf_token').val(), attr_id: attr_id }, type: "POST", dataType: 'json', success: function(result) { $('#attr-name').val(result[0].title); $('#attr-added-by').text(result[0].createdAt); $('#attr-modify-by').text(result[0].updatedAt); $('.el-items').prop('disabled', false); $('#attr-status').prop('checked', parseInt(result[0].status)); }, error: function() { Toast.fire({ icon: 'error', title: "Error fetching data, try again" }); } }); }); $('#attr-status').on('change', function(){ if($(this).is(':checked')){ attr_status = 1; } else { attr_status = 0; } }); $('#attr-update').on('click', function(){ var attr_name = $('#attr-name').val(); $.ajax({ url: "/admin/attribute_update", data: { csrf_token: $('#csrf_token').val(), attr_id: attr_id, attr_name: attr_name, attr_status: attr_status }, type: "POST", dataType: 'json', success: function(result) { if(result.status == 0){ // success Toast.fire({ icon: 'success', title: "Update success" }); refreshAttributeList(); // attr_id = 0; } else if(result.status == 1){ Toast.fire({ icon: 'warning', title: "Duplicate entry" }); } else if(result.status == 10){ Toast.fire({ icon: 'info', title: "Nothing changed" }); } }, error: function() { Toast.fire({ icon: 'error', title: "Error fetching data, try again" }); } }); }); user/edit_user.js 0000644 00000016736 15024732062 0010061 0 ustar 00 var user_status = 0; var user_status = 0; var form_data; var image_extension = ""; var is_changed = 0; // initializations $('#user_ext_name').select2({ placeholder: "Ext name", allowClear: false }); $(function(){ var promises = fillExtNameDropdown(); $.when.apply($, promises).then(function(){ loadUserDetails(); }) }); function loadUserDetails(){ var status = false; $.ajax({ url: "/admin/users/user_load", data: { user_id: user_id }, type: "GET", dataType: 'json', beforeSend: function() { }, success: function(result) { // alert(result[0].extName); $('#user_first_name').val(result[0].firstName); $('#user_middle_name').val(result[0].middleName); $('#user_last_name').val(result[0].lastName); $('#user_ext_name').val(result[0].extName).trigger('change'); $('#user_mobile_number').val(result[0].mobile); $('#user_email').val(result[0].email); $('#user_logo').attr('src', '/storage/users/' + result[0].profile); $('#user_role').val(result[0].roleId); $('#user_status').prop('checked', result[0].status); user_status = result[0].status; } }); } function fillExtNameDropdown(){ $.ajax({ url:"/admin/users/user_ext_dropdown", type:"GET", data: { // type: 1 // fill ext_name dropdown }, beforeSend: function(){ }, success: function(result){ $('#user_ext_name').html(''); $.each(result, function(index, value){ $('#user_ext_name').append('<option value="' + result[index].id + '">' + result[index].name + '</option>"'); }); } }); } function gotoTab($el_nav, $el_content) { $(".tab-wrapper li > a.active").removeClass("active"); $(".tab-pane").removeClass("show").removeClass("active"); $el_nav.addClass("active"); $el_content.addClass("active").addClass("show"); } $.validator.addMethod( "first_tab", function (value, element, param) { if(isEmpty(value)) { gotoTab($("#tab-user-profile"), $("#tabpage-user-profile")); return false; } return true; }, "This field is required." ); function triggerClick(e) { document.querySelector('#file').click(); } function displayImage(e) { is_changed = 1; if (e.files[0]) { var reader = new FileReader(); reader.onload = function(e) { document.querySelector('#user_logo').setAttribute('src', e.target.result); } reader.readAsDataURL(e.files[0]); } var property = document.getElementById("file").files[0]; var image_name = property.name; image_extension = image_name.split('.').pop().toLowerCase(); form_data = new FormData(); form_data.append('file', property); } function generateId() { var d = new Date().getTime();//Timestamp var d2 = (performance && performance.now && (performance.now()*1000)) || 0;//Time in microseconds since page-load or 0 if unsupported return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) { var r = Math.random() * 16;//random number between 0 and 16 if(d > 0){//Use timestamp until depleted r = (d + r)%16 | 0; d = Math.floor(d/16); } else {//Use microseconds since page-load if supported r = (d2 + r)%16 | 0; d2 = Math.floor(d2/16); } return (c === 'x' ? r : (r & 0x3 | 0x8)).toString(16); }); } function alphaNumeric(data){ return data.replace(/\W/g, ''); } function uploadImage(id){ if(is_changed == 1){ form_data.append('csrf_token', $('#csrf_token').val()); form_data.append('img_id', id); } else { form_data = new FormData(); form_data.append('csrf_token', $('#csrf_token').val()); form_data.append('img_id', id); } var photo_status = 0; $.ajax({ url: '/admin/users/user_edit_image', type: "POST", data: form_data, async:false, cache: false, contentType: false, processData: false, beforeSend: function(){ }, success: function(result){ // alert("Result " + result); photo_status = result; }, error: function(xhr, status, error){ // alert("Error: " + xhr.responseText); } }); return photo_status; } function back(){ window.history.back(); } $.validator.setDefaults({ submitHandler: function(){ var uniqId = alphaNumeric(generateId()); var stat = uploadImage(uniqId); // alert("stat: " + stat); return; var filename = ""; if(stat == 0){ filename = uniqId + "." + image_extension; } else { filename = "Same"; } var json_data = formJson('data-json', $("[data-json]")); // alert(filename); return; // alert(filename); return; $.ajax({ url: "/admin/users/user_edit", data: { json_data: json_data, csrf_token: $('#csrf_token').val(), user_id: user_id, user_status: user_status, image_filename: filename }, type: "POST", dataType: "json", beforeSend: function(){ }, success: function(result){ if(result.status == 0){ // success toastr.remove(); toastr.success(result.message); } else if(result.status == 1){ // duplicate mobile toastr.remove(); toastr.error(result.message); } else if(result.status == 2){ // duplicate email toastr.remove(); toastr.error(result.message); } else if(result.status == 3){ // update error toastr.remove(); toastr.error(result.message); } else if(result.status == 10){ toastr.remove(); toastr.info("Nothing changes"); } } }); }, ignore: [] }); $('#form-user-update').validate({ rules: { user_first_name: { first_tab: true, }, user_last_name: { first_tab: true }, user_mobile_number: { }, user_email: { email: true } }, messages: { user_first_name: { required: "First name is required" }, user_last_name: { required: "Last name is required" }, user_email: { email: "Please enter a valid email address" } }, errorElement: 'span', errorPlacement: function(error, element) { error.addClass('invalid-feedback'); element.closest('.form-group').append(error); }, highlight: function(element, errorClass, validClass) { $(element).addClass('is-invalid'); }, unhighlight: function(element, errorClass, validClass) { $(element).removeClass('is-invalid'); } }); $('#user_status').on('change.bootstrapSwitch', function(e){ if($(this).is(':checked')){ user_status = 1; } else { user_status = 0; } }); user/user.js 0000644 00000002662 15024732062 0007045 0 ustar 00 $(function(){ initTableUserList(); // initialize table refreshUserListTable(); }); function initTableUserList() { var $table = $('#table-user-list'); $table.bootstrapTable('destroy').bootstrapTable({ }) } function refreshUserListTable() { var $table = $('#table-user-list') $(function() { $table.bootstrapTable('refresh', { url: '/admin/users/table_list' }); }); } function queryParamsUserTable(params) { return { search: $('#search-user').val(), offset: params.offset, limit: params.limit, type: 1 // user_list }; } function imageFormatter(value, row, index) { return '<img width="50px" height="50px" class="user-image img-circle elevation-2" src="/storage/users/' + value + '" />'; } function delay(callback, ms) { var timer = 0; return function() { var context = this, args = arguments; clearTimeout(timer); timer = setTimeout(function() { callback.apply(context, args); }, ms || 0); }; } // $('#br-add-brand').on('click', function(){ // window.location.href = "/admin/brand/add_page"; // }); $('#table-user-list').on('click-cell.bs.table', function(field, value, row, $el) { var user_id = $el.user_id; window.location.href = "/admin/users/edit_page/" + user_id; }); $('#search-user').on('keyup', delay(function(e) { refreshUserListTable(); }, 500)); category/category.js 0000644 00000025553 15024732062 0010547 0 ustar 00 /* * Author: Clarence A Andaya * Date: 24 Mar 2022 */ (function () { "use strict"; var category_id = null; var add_sub_cat = false; function gotoTab($el_nav, $el_content) { $(".tab-wrapper li > a.active").removeClass("active"); $(".tab-pane").removeClass("show").removeClass("active"); $el_nav.addClass("active"); $el_content.addClass("active").addClass("show"); } function readCategoryData() { $.ajax({ url: "/admin/categories/data", data: { id: category_id, }, type: "GET", dataType: "json", beforeSend: function () {}, success: function (result) { $("#category_name").val(result.title); $("#category_status").val(result.active); $("#category_status").prop("checked", parseInt(result.active)), $("#btn-add-sub").prop("disabled", false); }, error: function () { toastr("error", "Error has occurred. Try again."); }, }); } function formatCategory(state) { if (!state.id) { return state.text; } var baseUrl = "/assets/img/logo/AGC_TRANSPARENT.png"; var $state = $('<span><img class="img-flag" /> <span></span></span>'); // Use .text() instead of HTML string concatenation to avoid script injection issues $state.find("span").text(state.text.replaceAll("¦––", "")); // $state.find("img").attr("src", baseUrl + "/" + state.element.value.toLowerCase() + ".png"); return $state; } function updateCategoryTree(data) { var v = $("#categories_tree") .jstree(true) .get_json("#", { flat: true, }) .reduce(function (e, t) { return e.concat({ id: t.id, parent_id: "#" === t.parent ? null : t.parent, position: t.data.position, }); }, []); // console.log(v) $.ajax({ url: "/admin/categories/tree", data: { data: v, csrf_token: $("#csrf_token").val(), }, type: "POST", dataType: "json", beforeSend: function () {}, success: function (result) { // $("#category_name").val(result.title); // $("#category_status").val(result.active); // $("#category_status").prop("checked", parseInt(result.active)), // $('#btn-add-sub').prop('disabled',false); }, error: function () { toast("error", "Error has occurred. Try again."); }, }); } $(function () { "use strict"; $(".expand-all").on("click", function (t) { $("#categories_tree").jstree("open_all"); }); $(".collapse-all").on("click", function (t) { $("#categories_tree").jstree("close_all"); }); $("#btn-add-root").on("click", function (evt) { category_id = null; resetForm("categoryForm"); add_sub_cat = false; $("#btn_remove").prop("hidden", true); $("#btn-add-sub").prop("disabled", true); $("#categories_tree").jstree().deselect_all(true); }); $("#btn-add-sub").on("click", function (evt) { if (isEmpty(category_id)) { return false; } $("#btn_remove").prop("hidden", true); resetForm("categoryForm"); add_sub_cat = true; }); $("#btn_remove").on("click", function (evt) { if (isEmpty(category_id)) { return false; } Swal.fire({ title: "Are you sure?", text: "You won't be able to revert this!", icon: "warning", showCancelButton: true, confirmButtonColor: "#3085d6", cancelButtonColor: "#d33", confirmButtonText: "Yes, remove it!", showClass: { backdrop: "swal2-noanimation", // disable backdrop animation popup: "", // disable popup animation icon: "", // disable icon animation }, hideClass: { popup: "", // disable popup fade-out animation }, }).then((result) => { if (result.isConfirmed) { $.ajax({ url: "/admin/categories/remove", data: { id: category_id, csrf_token: $("#csrf_token").val(), }, type: "POST", dataType: "json", beforeSend: function () { toast("info", "Removing data."); $("#btn_remove").prop("disabled", true); }, success: function (result) { if (parseInt(result.status) === 1) { $("#btn-add-root").trigger("click"); $("#categories_tree").jstree("refresh"); $("#btn_remove").prop("disabled", false); Swal.fire({ icon: "success", title: "Deleted", text: "Your file has been deleted.", showClass: { backdrop: "swal2-noanimation", // disable backdrop animation popup: "", // disable popup animation icon: "", // disable icon animation }, hideClass: { popup: "", // disable popup fade-out animation }, }); } else { toast("error", "Error has occurred. Try again."); } }, error: function () { toast("error", "Error has occurred. Try again."); $("#btn_remove").prop("disabled", false); }, }); } }); }); $("#category_status").change(function () { if ($(this).is(":checked")) { $(this).val("1"); } else { $(this).val("0"); } }); $.validator.addMethod( "first_tab", function (value, element, param) { if (isEmpty(value)) { gotoTab($("#tab-general"), $("#tab-general-content")); return false; } return true; }, "This field is required." ); $.validator.addMethod( "second_tab", function (value, element, param) { if (isEmpty(value)) { gotoTab($("#tab-image"), $("#tab-image-content")); return false; } return true; }, "This field is required." ); $.validator.setDefaults({ submitHandler: function () { // form.submit(); var json_data = formJson("data-json", $("[data-json]")); // alert(category_id); // clearInputFields('categoryForm'); // return; if (add_sub_cat || isEmpty(category_id)) { $.ajax({ url: "/admin/categories/add", data: { id: category_id, json_data: json_data, csrf_token: $("#csrf_token").val(), }, type: "POST", dataType: "json", beforeSend: function () { toast("info", "Saving data."); $("#btn_submit").prop("disabled", true); }, success: function (result) { if (parseInt(result.status) === 1) { toast("success", result.message); resetForm("categoryForm"); // readCategories $("#categories_tree").jstree("refresh"); removeCloseAlert(); } else { toast("error", result.message); } $("#btn_submit").prop("disabled", false); }, error: function () { toast("error", "Error has occurred. Try again."); $("#btn_submit").prop("disabled", false); }, }); } else { $.ajax({ url: "/admin/categories/update", data: { id: category_id, json_data: json_data, csrf_token: $("#csrf_token").val(), }, type: "POST", dataType: "json", beforeSend: function () { toast("info", "Saving data."); $("#btn_submit").prop("disabled", true); }, success: function (result) { if (parseInt(result.status) === 1) { toast("success", result.message); // resetForm('categoryForm'); // readCategories $("#categories_tree").jstree("refresh"); removeCloseAlert(); } else { toast("error", result.message); } $("#btn_submit").prop("disabled", false); }, error: function () { toast("error", "Error has occurred. Try again."); $("#btn_submit").prop("disabled", false); }, }); } }, ignore: [], }); $("#categoryForm").validate({ rules: { category_name: { first_tab: true, }, }, messages: { // email: { // required: "Please enter a email address", // email: "Please enter a valid email address" // }, // password: { // required: "Please provide a password", // minlength: "Your password must be at least 5 characters long" // }, // category_name: "Category name is required.", }, errorElement: "span", errorPlacement: function (error, element) { error.addClass("invalid-feedback"); element.closest(".form-group").append(error); }, highlight: function (element, errorClass, validClass) { $(element).addClass("is-invalid"); }, unhighlight: function (element, errorClass, validClass) { $(element).removeClass("is-invalid"); }, }); $("#categories_tree") .jstree({ core: { data: { url: "/admin/categories/list", dataType: "json", }, check_callback: !0, }, plugins: ["dnd"], }) .on("move_node.jstree", function (e, data) { // this is where you connect to the server! updateCategoryTree(data); // console.log(data); // console.log('Pos: '+data.position); }); $("#categories_tree").on("click", ".jstree-anchor", function (e) { category_id = $("#categories_tree").jstree(true).get_node($(this)).id; // console.log(category_id) add_sub_cat = false; $("#btn_remove").prop("hidden", false); readCategoryData(); }); // //Initialize Select2 Elements // $(".select2").select2(); // $(".select2bs4").select2({ // theme: "bootstrap4", // templateSelection: formatCategory, // }); // $("#catalog_description").summernote({ // tabsize: 2, // height: 250, // }); // $("#catalog_name").on("click", function () { // if ($("#catalog_description").summernote("isEmpty")) { // // alert('editor content is empty'); // } else { // //summernote codes // var html = $("#catalog_description").summernote("code"); // // alert(html); // } // }); closeAlert("categoryForm"); }); })(); prod_location/prod_location.js 0000644 00000046762 15024732062 0012612 0 ustar 00 //Only const Variable Here (function () { "use strict"; var selected_prod_loc_id = null; var shown = true; var container = $("#btn-add"); var js_tree_disabled = 0; var btn_submit_state = ""; var btn_add_state = "level one"; var type = "wh"; $(document).mouseup(function(e) { if(!container.is(e.target) && container.has(e.target).length === 0) { container.hideBalloon(); shown = !shown; } }); function readProdLocData() { $.ajax({ url: "/admin/prod_location/data", data: { id: selected_prod_loc_id, }, type: "GET", dataType: "json", beforeSend: function() { $('#btn_add').attr('disabled', true); }, success: function (result) { if(result.type == "wh" || result.type == "WH"){ btn_add_state = "level one"; } else if(result.type == "floor" || result.type == "FLOOR"){ btn_add_state = "level two"; } else if(result.type == "rack" || result.type == "RACK"){ btn_add_state = "level three"; } else if(result.type == "bin" || result.type == "BIN"){ btn_add_state = "level four"; } type = result.type; $('#btn_add').attr('disabled', false); $('#title_name').val(result.title); $('#location_active').val(result.status); $('#location_active').prop('checked', parseInt(result.active)); }, error: function () { toast('error', "Error has occurred. Try again"); }, }); } function updateProdLocTree(data) { var v = $('#prod_loc_tree').jstree(true).get_json('#', { flat: true, }).reduce(function (e, t) { return e.concat({ id: t.id, parent_id: '#' === t.parent ? null : t.parent, position: t.data.position, }); }, []); } function backToView(){ $('.add-operation').attr('disabled', false); $('#container-field').removeClass('card-success'); $('#tab-general').text("General"); $('#btn_submit').removeClass('btn-success').val("Update"); $('#btn_cancel').attr('hidden', true); $('#btn_submit').attr('disabled', false); // animation only $('#container-field').hide(); $('#container-field').fadeIn(); $('#container-field').show(); } function delay(callback, ms) { var timer = 0; return function() { var context = this, args = arguments; clearTimeout(timer); timer = setTimeout(function() { callback.apply(context, args); }, ms || 0); }; } $(function() { $('#prod_loc_tree').bind('select_node.jstree', function (evt, data) { // console.log('select!'); }); $('#btn-add').on("click", function() { shown ? $(this).hideBalloon() : $(this).showBalloon(); shown = !shown; if(selected_prod_loc_id == null){ container.showBalloon({ position: 'bottom', html: true, css: { color: 'black' }, contents: ` <div class=""> <div class="col-sm-4 p-1"> <input style="width: 120px !important;" type="button" id="add-warehouse" class="btn btn-primary btn-sm" value="Warehouse"></input> </div> </div> `, showAnimation: function(d, c) { this.slideDown(d, c); }, hideAnimation: function(d, c) { this.slideUp(d, c); } }); } else { if(btn_add_state == "level one"){ container.showBalloon({ position: 'bottom', html: true, css: { color: 'black' }, contents: ` <div class=""> <div class="col-sm-4 p-1"> <input style="width: 120px !important;" type="button" id="add-warehouse" class="btn btn-primary btn-sm" value="Warehouse"></input> </div> <div class="col-sm-4 p-1"> <input style="width: 120px !important;" type="button" id="add-floor" class="btn btn-primary btn-sm" value="Floor"></input> </div> </div> `, showAnimation: function(d, c) { this.slideDown(d, c); }, hideAnimation: function(d, c) { this.slideUp(d, c); } }); } else if(btn_add_state == "level two"){ container.showBalloon({ position: 'bottom', html: true, css: { color: 'black' }, contents: ` <div class=""> <div class="col-sm-4 p-1"> <input style="width: 120px !important;" type="button" id="add-rack" class="btn btn-primary btn-sm" value="Rack"></input> </div> </div> `, showAnimation: function(d, c) { this.slideDown(d, c); }, hideAnimation: function(d, c) { this.slideUp(d, c); } }); } else if(btn_add_state == "level three"){ container.showBalloon({ position: 'bottom', html: true, css: { color: 'black' }, contents: ` <div class=""> <div class="col-sm-4 p-1"> <input style="width: 120px !important;" type="button" id="add-bin" class="btn btn-primary btn-sm" value="Bin"></input> </div> </div> `, showAnimation: function(d, c) { this.slideDown(d, c); }, hideAnimation: function(d, c) { this.slideUp(d, c); } }); } else if(btn_add_state == "level four"){ container.showBalloon({ position: 'bottom', html: true, css: { color: 'black' }, contents: ` <div class=""> <div class="col-sm-4 p-1"> <input style="width: 120px !important;" type="button" id="add-bin" class="btn btn-primary btn-sm" value="Bin"></input> </div> </div> `, showAnimation: function(d, c) { this.slideDown(d, c); }, hideAnimation: function(d, c) { this.slideUp(d, c); } }); } } // these scripts are enabled only after button click $('#add-warehouse').on('click', function() { $('#prod_loc_tree > ul > li').each(function() { disable(this.id); }); js_tree_disabled = 1; btn_submit_state = "add"; type = "wh"; $('#title_name').val(""); $('.add-operation').attr('disabled', true); $('#container-field').toggleClass('card-success'); $('#tab-general').text("Add warehouse"); $('#btn_submit').toggleClass('btn-success').val("Add").attr('hidden', false); $('#btn_cancel').attr('hidden', false); // animation only $('#container-field').hide(); $('#container-field').fadeIn(); $('#container-field').show(); }); $('#add-floor').on('click', function() { $('#prod_loc_tree > ul > li').each(function() { disable(this.id); }); js_tree_disabled = 1; btn_submit_state = "add"; type = "floor"; $('#title_name').val(""); $('.add-operation').attr('disabled', true); $('#container-field').toggleClass('card-success'); $('#tab-general').text("Add floor"); $('#btn_submit').toggleClass('btn-success').val("Add").attr('hidden', false); $('#btn_cancel').attr('hidden', false); // animation only $('#container-field').hide(); $('#container-field').fadeIn(); $('#container-field').show(); }); $('#add-rack').on('click', function() { $('#prod_loc_tree > ul > li').each( function() { disable(this.id); }); js_tree_disabled = 1; btn_submit_state = "add"; type = "rack"; $('#title_name').val(""); $('.add-operation').attr('disabled', true); $('#container-field').toggleClass('card-success'); $('#tab-general').text("Add rack"); $('#btn_submit').toggleClass('btn-success').val("Add").attr('hidden', false); $('#btn_cancel').attr('hidden', false); // animation only $('#container-field').hide(); $('#container-field').fadeIn(); $('#container-field').show(); }); $('#add-bin').on('click', function() { $('#prod_loc_tree > ul > li').each(function() { disable(this.id); }); js_tree_disabled = 1; btn_submit_state = "add"; type = "bin"; $('#title_name').val(""); $('.add-operation').attr('disabled', true); $('#container-field').toggleClass('card-success'); $('#tab-general').text("Add bin"); $('#btn_submit').toggleClass('btn-success').val("Add").attr('hidden', false); $('#btn_cancel').attr('hidden', false); // animation only $('#container-field').hide(); $('#container-field').fadeIn(); $('#container-field').show(); }); // these functions are enabled only after button is clicked function disable(node_id) { var node = $('#prod_loc_tree').jstree().get_node( node_id ); $('#prod_loc_tree').jstree().disable_node(node); node.children.forEach(function(child_id) { disable(child_id); }); } function enable(node_id) { var node = $('#prod_loc_tree').jstree().get_node( node_id ); $('#prod_loc_tree').jstree().enable_node(node); node.children.forEach( function(child_id) { enable(child_id); }); } $('#btn_cancel').on('click', function() { $('#prod_loc_tree > ul > li').each(function() { enable(this.id); }); js_tree_disabled = 0; btn_submit_state = ""; $('.add-operation').attr('disabled', false); $('#container-field').removeClass('card-success'); $('#tab-general').text("General"); $('#btn_submit').removeClass('btn-success').val("").attr('hidden', true); $('#btn_cancel').attr('hidden', true); if(selected_prod_loc_id != null){ // alert(selected_prod_loc_id); readProdLocData(); } // animation purpose only $('#container-field').hide(); $('#container-field').fadeIn(); $('#container-field').show(); }); }); container.hideBalloon(); shown = !shown; }); $('#prod_loc_tree').jstree({ core: { data: { url: "/admin/prod_location/list", dataType: "json", }, check_callback: !0, }, plugins: ['dnd'], }).on('move_node.jstree', function (e, data) { updateProdLocTree(data); console.log(data); }); $('#collapse-all').on('click',function() { alert("On going function"); }); $('#expand-all').on('click',function() { alert("On going function"); }); $('#location_active').on('change', function() { if ($(this).is(":checked")) { $(this).val("1"); } else { $(this).val("0"); } // alert($('#location_active').val()); }); $("#prod_loc_tree").on("click", ".jstree-anchor", function(e) { if(js_tree_disabled == 0){ selected_prod_loc_id = $("#prod_loc_tree").jstree(true).get_node($(this)).id; $('#btn_submit').removeClass('btn-success').val('Update').attr('hidden', false); btn_submit_state = "update"; readProdLocData(); } }); $('#prodLocForm').validate({ rules: { title_name: { required: true }, }, messages: { title_name: "This field is required" }, errorElement: "span", errorPlacement: function (error, element) { error.addClass("invalid-feedback"); element.closest(".form-group").append(error); }, highlight: function (element, errorClass, validClass) { $(element).addClass("is-invalid"); }, unhighlight: function (element, errorClass, validClass) { $(element).removeClass("is-invalid"); }, submitHandler: function() { var json_data = formJson('data-json', $('[data-json]')); // alert($('#location_active').val()); if(btn_submit_state == "add") { var is_success = 0; var added = ""; var parent_id = null; if(type != "wh" || type != "WH"){ parent_id = selected_prod_loc_id } $.ajax({ url: "/admin/prod_location/add", data:{ json_data: json_data, type: type, parent_id: parent_id, active: $('#location_active').val(), csrf_token: csrf_token }, type: 'POST', dataType: 'json', beforeSend: function() { $('#btn_submit').attr('disabled', true); }, success: function(result) { if(result > 0){ toast('success', "Added successfully"); $('#prod_loc_tree').jstree('refresh'); added = result; is_success = 1; js_tree_disabled = 0; btn_submit_state = "update"; backToView(); } else if(result == 1){ toast('warning', "Title name is already in use in this level"); } else { toast('error', "There's something wrong in adding " + type); } } }); setTimeout(function() { if(is_success == 1){ $('#prod_loc_tree').jstree('deselect_node', '#' + selected_prod_loc_id); selected_prod_loc_id = added; $('#prod_loc_tree').jstree('select_node', '#' + selected_prod_loc_id); } }, 1000); } else if(btn_submit_state == "update") { $.ajax({ url: "/admin/prod_location/update", data: { id: selected_prod_loc_id, type: type, json_data: json_data, active: $('#location_active').val(), csrf_token: csrf_token }, type: 'POST', dataType: 'json', beforeSend: function() { $('#btn_submit').attr('disabled', true); }, success: function(result) { // alert(result.status); return; if(result.status == 0) { toast('success', "Updated successfully"); $('#prod_loc_tree').jstree('refresh'); } else if(result.status == 1){ toast('warning', "Title name is already in use in this level"); } else if(result.status == 2){ toast('error', "There's something wrong in updating"); } else if(result.status == 10){ toast('info', "Nothing changes"); } $('#btn_submit').attr('disabled', false); }, error: function() { $('#btn_submit').attr('disabled', false); }, }); } }, ignore: [], }); // $('#prod_loc_tree').bind( // 'select_node.jstree', function (evt, data) { // // console.log('select!'); // }); })(); catalog/form.js 0000644 00000206707 15024732062 0007474 0 ustar 00 /* * Author: Clarence A Andaya * Date: 31 Mar 2022 */ //Only const Variable Here (function () { "use strict"; //Logic,Variables, Functions Here var variation_list = []; var variation_images = []; var product_images = []; var variation_attributes = []; var selected_variation_key = null; var myDzProductPhotos = null; var myDzProductMainPhotos = null; var myVariationList = null; // Global default options Dropzone.autoDiscover = false; var selected_attributes = []; function dzProductPhotos() { myDzProductPhotos = new Dropzone("#dz_product_photo", { url: "/admin/storage/upload", // If not using a form element acceptedFiles: ".png,.jpg,.jpeg,.gif", //allowed filetypes maxFilesize: 8, maxFiles: 20, clickable: true, addRemoveLinks: true, dictCancelUpload: "", removedfile: function (file) { // console.log(file); if (selected_variation_key != null) { // load images //remove in varialist image array $.each( variation_list[selected_variation_key].images, function (i, v) { if (v.id == file.id) { delete variation_list[selected_variation_key].images[i]; // clean and refresh variations attributes variation_list[selected_variation_key].images = filterArray( variation_list[selected_variation_key].images ); } } ); //remove in current variation_images array only for already uploaded image (mock image) $.each(variation_images, function (k, j) { if (j.id == file.id) { delete variation_images[k]; variation_images = filterArray(variation_images); } }); } if (typeof file.upload != "undefined") { $.each(variation_images, function (k, j) { // console.log(j.uuid + ' ' + file.upload.uuid); if (j.uuid == file.upload.uuid) { delete variation_images[k]; variation_images = filterArray(variation_images); } }); } //remove in variation_images array only for newly upload // $.ajax({ // type: 'POST', // url: '/admin/storage/remove', // dataType: 'json', // data: { // id_or_name: file.upload.filename, // dir: "products", // csrf_token: $('#csrf_token').val() // }, // sucess: function(data) { // console.log('success: ' + data); // } // }); var _ref; return (_ref = file.previewElement) != null ? _ref.parentNode.removeChild(file.previewElement) : void 0; }, init: function () { this.on("maxfilesexceeded", function (file) { // $("#proceed-button-vehicle").attr("disabled", false); toast("error", "Only 20 images."); $("#btn_save_variation").prop("disabled", false); return 0; }); this.on("error", function (file) { toast("error", "Error has occured."); $("#btn_save_variation").prop("disabled", false); return; }); this.on("success", function (file, response) { if (response.status == 0) { toast("error", response.message); return false; } variation_images.push({ uuid: file.upload.uuid, id: response.id, path: response.path, size: response.size, name: response.name, }); $("#btn_save_variation").prop("disabled", false); // console.log(variation_images); }); this.on("sending", function (file, xhr, formData) { formData.append("dir", "products"); formData.append("csrf_token", $("#csrf_token").val()); }); this.on("addedfiles", function (files) { $("#btn_save_variation").prop("disabled", true); }); }, }); } function dzProductPhotosMain() { myDzProductMainPhotos = new Dropzone("#catalog_dz_product_photo", { url: "/admin/storage/upload", // If not using a form element acceptedFiles: ".png,.jpg,.jpeg,.gif", //allowed filetypes maxFilesize: 8, maxFiles: 3, clickable: true, addRemoveLinks: true, dictCancelUpload: "", removedfile: function (file) { // console.log(file); if (typeof file.upload != "undefined") { $.each(product_images, function (k, j) { if (j.uuid == file.upload.uuid) { delete product_images[k]; product_images = filterArray(product_images); } }); } else { //remove in current product_images array only for already uploaded image (mock image) $.each(product_images, function (k, j) { if (j.id == file.id) { delete product_images[k]; product_images = filterArray(product_images); } }); } var _ref; return (_ref = file.previewElement) != null ? _ref.parentNode.removeChild(file.previewElement) : void 0; }, init: function () { this.on("maxfilesexceeded", function (file) { // $("#proceed-button-vehicle").attr("disabled", false); toast("error", "Only 20 images."); $("#btn_save_product").prop("disabled", false); return 0; }); this.on("error", function (file) { toast("error", "Error has occured."); $("#btn_save_product").prop("disabled", false); return; }); this.on("success", function (file, response) { if (response.status == 0) { toast("error", response.message); return false; } product_images.push({ uuid: file.upload.uuid, id: response.id, path: response.path, size: response.size, name: response.name, }); $("#btn_save_product").prop("disabled", false); }); this.on("sending", function (file, xhr, formData) { formData.append("dir", "products"); formData.append("csrf_token", $("#csrf_token").val()); }); this.on("addedfiles", function (files) { $("#btn_save_product").prop("disabled", true); }); }, }); } function isDuplicateObject(object1, object2, key) { var uniqueResultOne = object1.filter(function (obj) { return !object2.some(function (obj2) { return obj[key] == obj2[key]; }); }); //Find values that are in obj2 but not in obj1 var uniqueResultTwo = object2.filter(function (obj) { return !object1.some(function (obj2) { return obj[key] == obj2[key]; }); }); //Combine the two arrays of unique entries var result = uniqueResultOne.concat(uniqueResultTwo); if (result.length) { return false; } else { return true; } } function isBelowZero($el, msg, focus = true) { if ($el.val() != "") { if (parseInt($el.val()) < 0) { toast("error", msg); if (focus) { $el.trigger("focus"); } return true; } } return false; } function isBelowN($el, msg, num, focus = true) { if ($el.val() != "") { if (parseInt($el.val()) < num) { toast("error", msg); if (focus) { $el.trigger("focus"); } return true; } } return false; } function checkDuplicateVariation() { var isDuplicateVariation = false; $.each(variation_list, function (i, v) { var result1 = JSON.parse(JSON.stringify(v.attributes)); $.each(variation_list, function (j, k) { if (i == j) { return; } var result2 = JSON.parse(JSON.stringify(k.attributes)); if (isDuplicateObject(result1, result2, "child_id")) { isDuplicateVariation = true; } }); }); return isDuplicateVariation; } function checkDuplicateAddVariation() { var isDuplicateVariation = false; var result1 = JSON.parse(JSON.stringify(variation_attributes)); $.each(variation_list, function (i, v) { if (selected_variation_key != null) { if (i == selected_variation_key) { return; } } var result2 = JSON.parse(JSON.stringify(v.attributes)); if (isDuplicateObject(result1, result2, "child_id")) { isDuplicateVariation = true; } }); return isDuplicateVariation; } function variationForm() { //clean attributes array (remove empty elements) var filtered = filterArray(selected_attributes); if (!filtered.length) { toast("error", "No attributes selected."); return false; } //ajax calling the variation form $.ajax({ url: "/admin/products/variation", data: { attributes: filtered, csrf_token: $("#csrf_token").val(), }, type: "GET", dataType: "json", beforeSend: function () { variation_images = []; variation_attributes = []; $(".modal_container").empty(); $("#btn_add_variation").prop("disabled", true); }, success: function (result) { $(".modal_container").html(result.data); //show variant form $("#modal_variation").modal("show"); //fill data to form if is update if (selected_variation_key != null) { // console.log(variation_list[selected_variation_key]); //load fields $.each(variation_list[selected_variation_key], function (i, v) { if (!Array.isArray(v)) { // alert('input[name="' + i + '"]'); $('input[name="' + i + '"]').val(v); } }); //load locations var prod_loc = variation_list[selected_variation_key]; if (typeof prod_loc.warehouse != "undefined") { var whOption = new Option( prod_loc.warehouse.title, prod_loc.warehouse.id, true, true ); $('select[name="warehouse"]').append(whOption).trigger("change"); } if (typeof prod_loc.floor != "undefined") { var whOption = new Option( prod_loc.floor.title, prod_loc.floor.id, true, true ); $('select[name="floor"]').append(whOption).trigger("change"); } if (typeof prod_loc.rack != "undefined") { var whOption = new Option( prod_loc.rack.title, prod_loc.rack.id, true, true ); $('select[name="rack"]').append(whOption).trigger("change"); } if (typeof prod_loc.bin != "undefined") { var whOption = new Option( prod_loc.bin.title, prod_loc.bin.id, true, true ); $('select[name="bin"]').append(whOption).trigger("change"); } //load attributes $.each( variation_list[selected_variation_key].attributes, function (i, v) { $( 'select[name="attribute-' + v.parent_name.toLowerCase() + '"]' ).val(v.child_id); } ); } //Initialze dropzone // dzProductPhotos("#dz_product_photo"); dzProductPhotos(); //load images if (selected_variation_key != null) { // load images $.each( variation_list[selected_variation_key].images, function (i, v) { variation_images.push({ id: v.id, path: v.path, size: v.size, name: v.name, }); var mockFile = { id: v.id, name: v.name, //v.path, size: v.size, //'12345' //v.unreadable_size }; myDzProductPhotos.emit("addedfile", mockFile); myDzProductPhotos.emit("complete", mockFile); myDzProductPhotos.emit( "thumbnail", mockFile, APP_DISK + "thumbnails/" + v.path ); myDzProductPhotos.files.push(mockFile); // here you add them into the files array } ); } //initialize datepicker $(".datetimepicker").datetimepicker({ format: "MM/DD/YYYY hh:mm A", // minDate: moment().subtract(1, "day"), }); // $("[data-mask]").inputmask(); //init product location warehouse,floor,rack,bin $('select[name="warehouse"]').select2({ theme: "bootstrap4", language: { noResults: function () { return "Select store and enter warehouse name."; }, }, escapeMarkup: function (markup) { return markup; }, placeholder: "Please Select", ajax: { url: "/admin/inventory/locations", dataType: "json", delay: 250, data: function (data) { return { search: data.term, limit: 15, store_id: $('select[name="catalog_store"]').val(), }; }, processResults: function (response) { return { results: response, }; }, cache: true, }, }); $('select[name="floor"]').select2({ theme: "bootstrap4", language: { noResults: function () { return "Select warehouse and enter floor name."; }, }, escapeMarkup: function (markup) { return markup; }, placeholder: "Please Select", ajax: { url: "/admin/inventory/locations", dataType: "json", delay: 250, data: function (data) { return { search: data.term, limit: 15, parent_id: $('select[name="warehouse"]').val(), type: "floor", }; }, processResults: function (response) { return { results: response, }; }, cache: true, }, }); $('select[name="rack"]').select2({ theme: "bootstrap4", language: { noResults: function () { return "Select floor and enter rack name."; }, }, escapeMarkup: function (markup) { return markup; }, placeholder: "Please Select", ajax: { url: "/admin/inventory/locations", dataType: "json", delay: 250, data: function (data) { return { search: data.term, limit: 15, parent_id: $('select[name="floor"]').val(), type: "rack", }; }, processResults: function (response) { return { results: response, }; }, cache: true, }, }); $('select[name="bin"]').select2({ theme: "bootstrap4", language: { noResults: function () { return "Select floor and enter bin name."; }, }, escapeMarkup: function (markup) { return markup; }, placeholder: "Please Select", ajax: { url: "/admin/inventory/locations", dataType: "json", delay: 250, data: function (data) { return { search: data.term, limit: 15, parent_id: $('select[name="rack"]').val(), type: "bin", }; }, processResults: function (response) { return { results: response, }; }, cache: true, }, }); $('select[name="warehouse"]').on("change", function () { $('select[name="floor"]').val(null).trigger("change"); }); $('select[name="floor"]').on("change", function () { $('select[name="rack"]').val(null).trigger("change"); }); $('select[name="rack"]').on("change", function () { $('select[name="bin"]').val(null).trigger("change"); }); $("#modal_variation").on("hidden.bs.modal", function () { //destroy all elements in modal // myDzProductPhotos.destroy(); myDzProductPhotos.files = []; $(this).remove(); }); $("#btn_add_variation").prop("disabled", false); $("#btn_save_variation").on("click", function () { //validations if ($('input[name="price"]').val() == "") { toast("error", "Price cannot be empty."); $('input[name="price"]').trigger("focus"); return false; } if ( isBelowN( $('input[name="price"]'), "Price cannot be negative value.", 0 ) ) { return false; } if ( isBelowN( $('input[name="min_order_qty"]'), "Minimum order quantity must be equal or greater than 1", 1 ) ) { return false; } if ( isBelowN( $('input[name="max_order_qty"]'), "Maximum order quantity must be equal or greater than 1", 1 ) ) { return false; } if ( isBelowN( $('input[name="sale_price"]'), "Sale price cannot be negative value.", 0 ) ) { return false; } if ( isBelowN( $('input[name="quantity"]'), "Quantity price cannot be negative value.", 0 ) ) { return false; } if ( isBelowN( $('input[name="max_quantity"]'), "Max quantity price cannot be negative value.", 0 ) ) { return false; } if ( isBelowN( $('input[name="order_quantity"]'), "Order quantity price cannot be negative value.", 0 ) ) { return false; } var is_empty_attr = false; $("[data-attribute]").each(function () { if (!$(this).val()) { $(this).trigger("focus"); is_empty_attr = true; return false; } }); if (is_empty_attr) { toast("error", "Invalid attribute value."); return false; } //sales price validation if ( ($("#sale_price_start").val() && !$("#sale_price_end").val()) || (!$("#sale_price_start").val() && $("#sale_price_end").val()) || moment($("#sale_price_start").val()) >= moment($("#sale_price_end").val()) ) { toast("error", "Invalid sale date range."); $("#sale_price_start").trigger("focus"); return false; } if ( ($("#sale_price_start").val() && !$('input[name="sale_price"]').val()) || ($("#sale_price_end").val() && !$('input[name="sale_price"]').val()) ) { toast("error", "Sale price cannot be empty."); $('input[name="sale_price"]').trigger("focus"); return false; } if ( parseInt($('input[name="price"]').val()) <= parseInt($('input[name="sale_price"]').val()) ) { toast("error", "Sale price must not greater or equal than price."); $('input[name="sale_price"]').trigger("focus"); return false; } if ($('input[name="max_order_qty"]').val() != "") { if ( parseInt($('input[name="max_order_qty"]').val()) < parseInt($('input[name="min_order_qty"]').val()) ) { toast( "error", "Minimum order quantity must not greater than max order quantity." ); $('input[name="min_order_qty"]').trigger("focus"); return false; } } if ($('input[name="max_quantity"]').val() != "") { //deprecated // if ( // parseInt($('input[name="max_quantity"]').val()) < // parseInt($('input[name="min_order_qty"]').val()) // ) { // toast( // "error", // "Minimum order quantity must not greater than max quantity." // ); // $('input[name="min_order_qty"]').trigger("focus"); // return false; // } // if ( // parseInt($('input[name="max_quantity"]').val()) < // parseInt($('input[name="max_order_qty"]').val()) // ) { // toast( // "error", // "Maximum order quantity must not greater than max quantity." // ); // $('input[name="max_order_qty"]').trigger("focus"); // return false; // } if ( parseInt($('input[name="max_quantity"]').val()) < parseInt($('input[name="quantity"]').val()) ) { toast("error", "Quantity must not greater than max quantity."); $('input[name="quantity"]').trigger("focus"); return false; } if ( parseInt($('input[name="max_quantity"]').val()) < parseInt($('input[name="order_quantity"]').val()) ) { toast( "error", "Order quantity must not greater than max quantity." ); $('input[name="order_quantity"]').trigger("focus"); return false; } } variation_attributes = []; var obj_data = formObj("data-obj", $("[data-obj]")); // console.log(obj_data); // return false; // Add Locations if (parseInt($('select[name="warehouse"]').val())) { obj_data["warehouse"] = { id: $('select[name="warehouse"]').val(), title: $('select[name="warehouse"] option:selected').text(), type: "wh", }; } if (parseInt($('select[name="floor"]').val())) { obj_data["floor"] = { id: $('select[name="floor"]').val(), title: $('select[name="floor"] option:selected').text(), type: "floor", }; } if (parseInt($('select[name="rack"]').val())) { obj_data["rack"] = { id: $('select[name="rack"]').val(), title: $('select[name="rack"] option:selected').text(), type: "rack", }; } if (parseInt($('select[name="bin"]').val())) { obj_data["bin"] = { id: $('select[name="bin"]').val(), title: $('select[name="bin"] option:selected').text(), type: "bin", }; } //Add attributes to variation $("[data-attribute]").each(function () { var attr_obj = { parent_id: parseInt($(this).attr("data-id")), parent_name: $(this).attr("data-name"), child_id: $(this).val(), child_name: $("option:selected", this).text(), }; variation_attributes.push(attr_obj); }); //Legacy code for checking if attributes is exist // //start check if variations has equal attributes // $.each(variation_list, function(i, v) { // // console.log('error'); // var result1 = JSON.parse(JSON.stringify(variation_attributes)); // var result2 = JSON.parse(JSON.stringify(v.attributes)); // if (result1.length != result2.length) { // var uniqueResultOne = result1.filter(function(obj) { // return !result2.some(function(obj2) { // return obj.parent_id == obj2.parent_id; // }); // }); // //Find values that are in result2 but not in result1 // var uniqueResultTwo = result2.filter(function(obj) { // return !result1.some(function(obj2) { // return obj.parent_id == obj2.parent_id; // }); // }); // //Combine the two arrays of unique entries // var result = JSON.parse(JSON.stringify(uniqueResultOne)); //uniqueResultOne.concat(uniqueResultTwo); // result[0].child_id = ''; // result[0].child_name = ''; // console.log('added'); // $.each(result, function(k, j) { // variation_list[i].attributes.push(j); // }); // } // }); //start check duplicate variations // var isDuplicateVariation = false; // $.each(variation_list, function (i, v) { // if (selected_variation_key != null) { // if (i == selected_variation_key) { // return; // } // } // var result1 = JSON.parse(JSON.stringify(variation_attributes)); // var result2 = JSON.parse(JSON.stringify(v.attributes)); // //Find values that are in result1 but not in result2 // var uniqueResultOne = result1.filter(function (obj) { // return !result2.some(function (obj2) { // return obj.child_id == obj2.child_id; // }); // }); // //Find values that are in result2 but not in result1 // var uniqueResultTwo = result2.filter(function (obj) { // return !result1.some(function (obj2) { // return obj.child_id == obj2.child_id; // }); // }); // //Combine the two arrays of unique entries // var result = uniqueResultOne.concat(uniqueResultTwo); // if (!result.length) { // isDuplicateVariation = true; // return false; // } // }); // if (isDuplicateVariation) { // toast("error", "This variation is already added."); // return false; // } if (checkDuplicateAddVariation()) { toast("error", "This variation is already added."); return false; } //end check duplicate variations obj_data["attributes"] = JSON.parse( JSON.stringify(variation_attributes) ); //Add images from dropzone obj_data["images"] = JSON.parse(JSON.stringify(variation_images)); $("#modal_variation").modal("hide"); toast("success", "Variation save."); if (selected_variation_key != null) { obj_data["default"] = variation_list[selected_variation_key]["default"]; obj_data["id"] = variation_list[selected_variation_key].id; variation_list[selected_variation_key] = obj_data; } else { //Set default variation if (variation_list.length <= 0) { obj_data["default"] = 1; } else { obj_data["default"] = 0; } obj_data["id"] = ""; variation_list.push(obj_data); } // refresh variation table variationList(); }); }, error: function () { toast("error", "Error has occurred. Try again."); $("#btn_add_variation").prop("disabled", false); }, }); } function variationList() { console.log("List: "); console.log(variation_list); var variationTableId = "#tbl_variations"; if ($.fn.DataTable.isDataTable(variationTableId)) { // $(variationTableId).dataTable(); myVariationList.clear(); myVariationList.destroy(); } $(variationTableId + " tbody").empty(); $(variationTableId + " thead").empty(); if (variation_list.length <= 0) { return false; } //Object to table logic & algorithm : Clrkz 04/19/22 //fix cols var cols = [ { title: "Image", data: "image", className: "align-middle p-1 dt-center", render: function (data, type, row, meta) { return ( ` <img src="` + row.image + `" alt="Image" width="50" height="50"> ` ); }, width: "5%", }, { title: "Price", data: "price", className: "align-middle p-1 dt-center", ordering: true, width: "15%", render: function (data, type, row, meta) { var sale_price_end = moment(variation_list[row.key].sale_price_end); // console.log(sale_price_end); var date_now = moment(); // console.log(sale_price_end); // console.log(date_now); // date is past var price = CURRENCY_SYMBOL + parseFloat(row.price).toLocaleString("en-US", { minimumFractionDigits: 2, }); var sale_price = variation_list[row.key].sale_price; var final_sale_price = CURRENCY_SYMBOL + parseFloat(sale_price).toLocaleString("en-US", { minimumFractionDigits: 2, }) + `<br><del class="text-danger">` + price + `</del>`; if (sale_price_end.isValid()) { if (sale_price_end > date_now) { // var sale_price = variation_list[row.key].sale_price; return final_sale_price; } } else { if (sale_price) { return final_sale_price; } } return price; }, }, { title: "Default", data: "default", render: function (data, type, row, meta) { return ( ` <div class="text-center"> <input class="default" type="radio" name="touchbutton" data-key="` + row.key + `" value="" ` + (row.default ? "checked" : "") + ` > </div> ` ); }, className: "align-middle p-1 dt-center", width: "5%", }, { title: "Action", data: "key", render: function (data, type, row, meta) { return ( ` <div class="row justify-content-center"> <a data-update='` + row.key + `' style="cursor:pointer;" class="edit m-1 btn btn-primary btn-icon btn-sm" title="Edit"><i class="fa fa-pen"></i></a> <a data-remove='` + row.key + `' style="cursor:pointer;" class="remove m-1 btn btn-sm btn-danger" title="Remove"><i class="fa fa-trash"></i></a> </div> ` ); }, className: "align-middle p-1 dt-center", width: "10%", }, ]; //get the variation as table cols var col_attribute = []; $.each(variation_list[0].attributes, function (i, v) { if (!v) { return; } col_attribute.push({ title: capitalizeFirstLetter(v.parent_name), data: v.parent_name.toLowerCase().trim(), className: "align-middle p-1", }); }); //apend variation to fix cols $.each(col_attribute.reverse(), function (i, v) { cols.splice(1, 0, col_attribute[i]); }); //Table Data var data = []; $.each(variation_list, function (i, v) { var fix_data = { image: v.images.length <= 0 ? APP_DISK + "products/default.png" : APP_DISK + v.images[0].path, price: v.price, default: v.default, key: i, }; var data_attribute = []; $.each(v.attributes, function (j, k) { if (!k) { return; } data_attribute[k.parent_name.toLowerCase().trim()] = k.child_name; }); var merge_data = {}; Object.assign(merge_data, fix_data, data_attribute); // console.log(merge_data) data.push(merge_data); }); myVariationList = $(variationTableId).DataTable({ retrieve: true, columns: cols, data: data, paging: true, lengthChange: false, searching: false, ordering: false, info: true, autoWidth: false, responsive: true, }); } function formatCategory(category) { if (!category.id) { return category.text; } var baseUrl = "/assets/img/logo/AGC_TRANSPARENT.png"; var $category = $('<span><img class="img-flag" /> <span></span></span>'); // Use .text() instead of HTML string concatenation to avoid script injection issues $category.find("span").text(category.text.replaceAll("¦––", "")); // $category.find("img").attr("src", baseUrl + "/" + category.element.value.toLowerCase() + ".png"); return $category; } function filterArray(array) { return array.filter(function (el) { return el != null; }); } function disableSelected() { $(".repeater") .find("select") .each(function () { var $current_el = $(this); $("option:disabled", this).removeAttr("disabled"); // $.each(selected_attributes, function(index, value) { var current_value = $(this).val(); $("option", $current_el).each(function () { if (current_value != $(this).val()) { var $option_el = $(this); if (jQuery.inArray($option_el.val(), selected_attributes) !== -1) { $option_el.attr("disabled", "disabled"); } // $.each(selected_attributes, function(index, value) { // if ($option_el.val() == value) { // $option_el.attr("disabled", "disabled"); // } // }); } }); }); } function gotoTab(nav, pane) { $(".nav-1").removeClass("active"); $(".pane-1").removeClass("active show"); $(nav).addClass("active"); $(pane).addClass("active show"); } //Update Products function fetchProductInformation() { console.log("Product Information: "); console.log(product_information_json); if (!Object.keys(product_information_json).length) { return false; } $('input[name="catalog_name"]').val(product_information_json.title); $("#catalog_description").summernote( "code", product_information_json.content ); //catehories $("select[name=catalog_brand]") .val(product_information_json.brandId) .trigger("change"); $("select[name=catalog_tax]") .val(product_information_json.taxId) .trigger("change"); if (product_information_json.available) { $("input[name=catalog_status]").prop("checked", true).trigger("change"); } $.each(product_information_json.categories, function (i, v) { $("#catalog_category option[value='" + v + "']") .prop("selected", true) .trigger("change"); }); //Main images $.each(product_information_json.product_images, function (i, v) { product_images.push({ id: v.id, path: v.path, size: v.size, name: v.name, }); var mockFile = { id: v.id, name: v.name, //v.path, size: v.size, //'12345' //v.unreadable_size }; myDzProductMainPhotos.emit("addedfile", mockFile); myDzProductMainPhotos.emit("complete", mockFile); myDzProductMainPhotos.emit( "thumbnail", mockFile, APP_DISK + "thumbnails/" + v.path ); myDzProductMainPhotos.files.push(mockFile); // here you add them into the files array }); // variation_list = product_information_json.variations; if (product_information_json.attribute_sets.length) { $(".variations").show(); $(".non-variations").hide(); } //Variations and Attributes $.each(product_information_json.attribute_sets, function (i, v) { $("[data-repeater-create]").trigger("click"); var $attr_el = $( 'select[name="attribute_list[' + i + '][attribute_name]"]' ); $attr_el.val(v.id); }); setTimeout(function () { $.each(product_information_json.attribute_sets, function (i, v) { var $attr_el = $( 'select[name="attribute_list[' + i + '][attribute_name]"]' ); $attr_el.trigger("change"); // var key = $attr_el.attr("data-select2-id"); // selected_attributes[key] = $attr_el.val(); }); // disableSelected(); // console.log(selected_attributes) variation_list = product_information_json.variations; variationList(); console.log(selected_attributes); }, 1000); // var key = $(this).find(".select2").attr("data-select2-id"); // selected_attributes[key] = $(this).val(); //Pricing $('input[name="catalog_price"]').val(product_information_json.price); $('input[name="catalog_sale_price"]').val( product_information_json.discount ); // if (product_information_json.startsAt) { // $('input[name="catalog_sale_price_start"]').val( // moment(product_information_json.startsAt).format("M/D/YYYY hh:mm A") // ); $('input[name="catalog_sale_price_start"]').val( product_information_json.startsAt ); // } // if (product_information_json.endsAt) { $('input[name="catalog_sale_price_end"]').val( // moment(product_information_json.endsAt).format("M/D/YYYY hh:mm A") product_information_json.endsAt ); // } // Inventory $('input[name="catalog_sku"]').val(product_information_json.sku); $('input[name="catalog_quantity"]').val(product_information_json.quantity); $('input[name="catalog_max_quantity"]').val( product_information_json.maxQty ); $('input[name="catalog_order_quantity"]').val( product_information_json.reorderQty ); $('input[name="catalog_min_order_qty"]').val( product_information_json.minOrderQty ); $('input[name="catalog_max_order_qty"]').val( product_information_json.maxOrderQty ); //Locations var prod_loc = product_information_json.locations; if (typeof prod_loc[0] != "undefined") { var whOption = new Option(prod_loc[0].title, prod_loc[0].id, true, true); $('select[name="catalog_warehouse"]').append(whOption).trigger("change"); } if (typeof prod_loc[1] != "undefined") { var floorOption = new Option( prod_loc[1].title, prod_loc[1].id, true, true ); $('select[name="catalog_floor"]').append(floorOption).trigger("change"); } if (typeof prod_loc[2] != "undefined") { var rackOption = new Option( prod_loc[2].title, prod_loc[2].id, true, true ); $('select[name="catalog_rack"]').append(rackOption).trigger("change"); } if (typeof prod_loc[3] != "undefined") { var binOption = new Option(prod_loc[3].title, prod_loc[3].id, true, true); $('select[name="catalog_bin"]').append(binOption).trigger("change"); } } $(function () { "use strict"; $.fn.datetimepicker.Constructor.Default = $.extend( {}, $.fn.datetimepicker.Constructor.Default, { icons: { time: "fa fa-clock", date: "fa fa-calendar", up: "fa fa-arrow-up", down: "fa fa-arrow-down", previous: "fa fa-chevron-left", next: "fa fa-chevron-right", today: "fa fa-calendar-check-o", clear: "fa fa-trash", close: "fa fa-times", }, } ); $("[name='catalog_status']").change(function () { if ($(this).is(":checked")) { $(this).val("1"); } else { $(this).val("0"); } }); $(".select2_category").select2({ theme: "bootstrap4", templateSelection: formatCategory, }); $("#catalog_description").summernote({ tabsize: 2, height: 250, }); $("#catalog_name").on("click", function () { if ($("#catalog_description").summernote("isEmpty")) { // alert('editor content is empty'); } else { //summernote codes var html = $("#catalog_description").summernote("code"); // alert(html); } }); removeSubmitButtonOffsetOn([ "#vert-tabs-attributes", "#vert-tabs-variations", "#vert-tabs-images", ]); // Catalog form $.validator.addMethod( "catalogDescription", function (value, element, param) { if ($("#catalog_description").summernote("isEmpty")) { gotoTab("#vert-tabs-general-tab", "#vert-tabs-general"); return false; } return true; }, "This field is required." ); $.validator.addMethod( "catalogQuantity", function (value, element, param) { //if no attributes var filtered_selected_attributes = filterArray(selected_attributes); if (!filtered_selected_attributes.length) { // if (parseInt($('input[name="catalog_max_quantity"]').val()) > 0) { if ($('input[name="catalog_max_quantity"]').val() != "") { if ( parseInt($('input[name="catalog_max_quantity"]').val()) < parseInt($('input[name="catalog_quantity"]').val()) ) { gotoTab("#vert-tabs-inventory-tab", "#vert-tabs-inventory"); // $('input[name="catalog_quantity"]').trigger("focus"); return false; } } } return true; }, "Quantity must not greater than max quantity." ); $.validator.addMethod( "catalogMinQuantity", function (value, element, param) { //if no attributes var filtered_selected_attributes = filterArray(selected_attributes); if (!filtered_selected_attributes.length) { if ($('input[name="catalog_max_order_qty"]').val() != "") { if ( parseInt($('input[name="catalog_max_order_qty"]').val()) < parseInt($('input[name="catalog_min_order_qty"]').val()) ) { gotoTab("#vert-tabs-inventory-tab", "#vert-tabs-inventory"); return false; } } } return true; }, "Minimum order quantity must not greater than max order quantity." ); $.validator.addMethod( "catalogOrderQuantity", function (value, element, param) { //if no attributes var filtered_selected_attributes = filterArray(selected_attributes); if (!filtered_selected_attributes.length) { if ( parseInt($('input[name="catalog_max_quantity"]').val()) < parseInt($('input[name="catalog_order_quantity"]').val()) ) { $.validator.messages.catalogOrderQuantity = "Order quantity must not greater than max quantity."; gotoTab("#vert-tabs-inventory-tab", "#vert-tabs-inventory"); // $('input[name="catalog_order_quantity"]').trigger("focus"); return false; } } return true; }, $.validator.messages.catalogOrderQuantity ); $.validator.addMethod( "catalogPrice", function (value, element, param) { //if no attributes var filtered_selected_attributes = filterArray(selected_attributes); if (!filtered_selected_attributes.length) { if ($('input[name="catalog_price"]').val() == "") { $.validator.messages.catalogPrice = "This field is required."; gotoTab("#vert-tabs-price-tab", "#vert-tabs-price"); // $('input[name="catalog_price"]').trigger("focus"); return false; } } return true; }, $.validator.messages.catalogPrice ); // if ( // ($("#sale_price_start").val() && // !$('input[name="sale_price"]').val()) || // ($("#sale_price_end").val() && !$('input[name="sale_price"]').val()) // ) { // toast("error", "Sale price cannot be empty."); // $('input[name="sale_price"]').trigger("focus"); // return false; // } // if ( // parseInt($('input[name="price"]').val()) <= // parseInt($('input[name="sale_price"]').val()) // ) { // toast("error", "Sale price must not greater or equal than price."); // $('input[name="sale_price"]').trigger("focus"); // return false; // } $.validator.addMethod( "catalogSalePriceEnd", function (value, element, param) { //if no attributes var filtered_selected_attributes = filterArray(selected_attributes); if (!filtered_selected_attributes.length) { if ( ($("#catalog_sale_price_start").val() && !$("#catalog_sale_price_end").val()) || (!$("#catalog_sale_price_start").val() && $("#catalog_sale_price_end").val()) || moment($("#catalog_sale_price_start").val()) >= moment($("#catalog_sale_price_end").val()) ) { $.validator.messages.catalogSalePriceEnd = "Invalid sale date range."; gotoTab("#vert-tabs-price-tab", "#vert-tabs-price"); // $('input[name="catalog_sale_price_start"]').trigger("focus"); return false; } } return true; }, $.validator.messages.catalogSalePriceEnd ); $.validator.addMethod( "catalogSalePrice", function (value, element, param) { //if no attributes var filtered_selected_attributes = filterArray(selected_attributes); if (!filtered_selected_attributes.length) { if ( ($("#catalog_sale_price").val() && !$('input[name="catalog_sale_price"]').val()) || ($("#catalog_sale_price_end").val() && !$('input[name="catalog_sale_price"]').val()) ) { $.validator.messages.catalogSalePrice = "Sale price cannot be empty."; gotoTab("#vert-tabs-price-tab", "#vert-tabs-price"); // $('input[name="catalog_sale_price_start"]').trigger("focus"); return false; } if ( parseInt($('input[name="catalog_price"]').val()) <= parseInt($('input[name="catalog_sale_price"]').val()) ) { $.validator.messages.catalogSalePrice = "Sale price must not greater or equal than price."; gotoTab("#vert-tabs-price-tab", "#vert-tabs-price"); // $('input[name="catalog_sale_price"]').trigger("focus"); return false; } } return true; }, $.validator.messages.catalogSalePrice ); $.validator.setDefaults({ submitHandler: function (form) { // console.log(variation_list); // return false; window.onbeforeunload = false; var formData = new FormData(form); formData.append( "id", Object.keys(product_information_json).length ? product_information_json.id : "" ); var filtered_selected_attributes = filterArray(selected_attributes); if (filtered_selected_attributes.length) { if (variation_list.length) { //chyeck if all variations attribute has filled var isVariationAttributeNotEmpty = true; // check if all variations has assigned attribute $.each(variation_list, function (i, v) { $.each(v.attributes, function (k, j) { if (!j.child_id) { isVariationAttributeNotEmpty = false; return false; } }); }); if (isVariationAttributeNotEmpty) { // $('input[name="variations"]').val(JSON.stringify(variation_list)); formData.append("variations", JSON.stringify(variation_list)); } else { gotoTab("#vert-tabs-variations-tab", "#vert-tabs-variations"); toast( "error", "There's an incomplete variation, check attribute values." ); return false; } //check if no duplicate variaions attributes if (checkDuplicateVariation()) { gotoTab("#vert-tabs-variations-tab", "#vert-tabs-variations"); toast("error", "There are duplicate variations"); return false; } } else { gotoTab("#vert-tabs-variations-tab", "#vert-tabs-variations"); toast("error", "Add at least 1 product variation."); return false; } } //else { // $('input[name="product_images"]').val(JSON.stringify(product_images)); formData.append("product_images", JSON.stringify(product_images)); // } // var $form = $("#catalogForm"); // $form.append("test", "nice"); $.ajax({ url: "/admin/products", type: "POST", data: formData, // timeout: 9000, processData: false, contentType: false, beforeSend: function () { $("#btn_save_product").prop("disabled", true); }, success: function (result) { // console.log(result); // $("#btn_save_product").prop("disabled", false); window.location.replace("/admin/products"); // $("#btn_save_product").prop("disabled", false); return false; }, error: function () { toast("error", "Error has occurred. Try again."); $("#btn_save_product").prop("disabled", false); }, }); return false; }, ignore: [], }); $("#catalogForm").validate({ rules: { catalog_name: { required: true, }, catalog_description: { catalogDescription: true, }, catalog_price: { catalogPrice: true, min: 0, }, catalog_sale_price_end: { catalogSalePriceEnd: true, }, catalog_sale_price: { catalogSalePrice: true, min: 0, }, catalog_quantity: { catalogQuantity: true, min: 0, }, catalog_max_quantity: { min: 0, }, catalog_order_quantity: { catalogOrderQuantity: true, min: 0, }, catalog_min_order_qty: { catalogMinQuantity: true, min: 0, }, catalog_max_order_qty: { min: 0, }, }, messages: { // catalog_name: "Meow", }, errorElement: "span", errorPlacement: function (error, element) { error.addClass("invalid-feedback"); element.closest(".form-group").append(error); }, highlight: function (element, errorClass, validClass) { $(element).addClass("is-invalid"); }, unhighlight: function (element, errorClass, validClass) { $(element).removeClass("is-invalid"); }, }); //fux summernote error on validator $("#catalogForm").each(function () { if ($(this).data("validator")) $(this).data("validator").settings.ignore = ".note-editor *"; }); $(".repeater").repeater({ repeaters: [ { // (Required) // Specify the jQuery selector for this nested repeater selector: ".inner-repeater", }, ], hide: function (deleteElement) { var option_key = $(this).find("select").val(); if (option_key) { Swal.fire({ title: "Are you sure?", text: "This attribute will be remove to all variants of this product.", icon: "warning", showCancelButton: true, confirmButtonColor: "#3085d6", cancelButtonColor: "#d33", confirmButtonText: "Yes, remove it!", showClass: { backdrop: "swal2-noanimation", // disable backdrop animation popup: "", // disable popup animation icon: "", // disable icon animation }, hideClass: { popup: "", // disable popup fade-out animation }, }).then((result) => { if (result.isConfirmed) { // remove this attribute to every variation $.each(variation_list, function (i, v) { $.each(v.attributes, function (k, j) { if (j.parent_id == option_key) { delete variation_list[i].attributes[k]; // clean and refresh variations attributes variation_list[i].attributes = variation_list[ i ].attributes.filter(function (el) { return el != null; }); } }); }); //check if theres more attribute to variation then if none remove all variation var variation_counter = 0; // $.each(variation_list, function (i, v) { // $.each(v.attributes, function (k, j) { // variation_counter++; // }); // return false; // }); if (variation_list.length) { variation_counter = variation_list[0].attributes.length; // $.each(variation_list[0].attributes, function (k, j) { // if (parent_id == j.parent_id) { // hasAttribute = true; // return false; // } // }); } // console.log(variation_counter); if (!variation_counter) { variation_list = []; var variationTableId = "#tbl_variations"; if ($.fn.DataTable.isDataTable(variationTableId)) { // $(variationTableId).dataTable(); myVariationList.clear(); myVariationList.destroy(); } // if (myVariationList != null) { // myVariationList.clear(); // // myVariationList.destroy(false); // } $(variationTableId + " tbody").empty(); $(variationTableId + " thead").empty(); } else { variationList(); } $(this).slideUp(function () { //remove key in array // var key = $(this).find(".select2").attr("data-select2-id"); var key = $(this).find("select").attr("data-select2-id"); // alert(key); delete selected_attributes[key]; disableSelected(); deleteElement(); // itemRemove(); //another function if necessary var repeatCount = $(".repeater").find("select").length; var optionCount = $(this) .find("select") .children("option").length; if (repeatCount != optionCount) { $("[data-repeater-create]").show(); } var filtered_selected_attributes = filterArray(selected_attributes); if (!filtered_selected_attributes.length) { $(".variations").hide(); $(".non-variations").show(); } }); } }); } else { //remove if no option selected $(this).slideUp(function () { //remove key in array // var key = $(this).find(".select2").attr("data-select2-id"); var key = $(this).find("select").attr("data-select2-id"); delete selected_attributes[key]; disableSelected(); deleteElement(); // itemRemove(); //another function if necessary var repeatCount = $(".repeater").find("select").length; var optionCount = $(this).find("select").children("option").length; if (repeatCount != optionCount) { $("[data-repeater-create]").show(); } var filtered_selected_attributes = filterArray(selected_attributes); if (!filtered_selected_attributes.length) { $(".variations").hide(); $(".non-variations").show(); } }); } }, show: function () { // $(this).slideDown(); $(this).slideDown(function () { //init select2 after adding repeater $(this).find(".select2repeater").select2({ placeholder: "Select an option", minimumResultsForSearch: -1, }); //fix select2 arrow ui $(this).find(".select2-selection__arrow").addClass("mt-1"); $(this) .find("select") .on("change", function () { //add select2 id and selected value to array var key = $(this).attr("data-select2-id"); console.log(key); var parent_id = $(this).val(); // check if this attr is exist to variation attribute // if not exist add if exist ignore var hasAttribute = false; if (variation_list.length) { $.each(variation_list[0].attributes, function (k, j) { if (parent_id == j.parent_id) { hasAttribute = true; return false; } }); } // check if attribte exist if not push to selected attributes obj if (!hasAttribute) { var attr_obj = { parent_id: parseInt(parent_id), parent_name: $("option:selected", this).text(), child_id: "", child_name: "", }; $.each(variation_list, function (i, v) { variation_list[i].attributes.push(attr_obj); }); selected_attributes[key] = $(this).val(); } //remove list // 1. get variation attributes // 2. compare 2 selected attributes // 3. remnove variation attribute if not exist in selected variations var filtered_selected_attributes = filterArray(selected_attributes); $.each(variation_list, function (i, v) { $.each(v.attributes, function (k, j) { if ( !filtered_selected_attributes.includes( parseInt(j.parent_id) ) ) { // delete variation_list[i].attributes[k]; variation_list[i].attributes = filterArray( variation_list[i].attributes ); } }); }); //hide non varaitons elements if (filtered_selected_attributes.length) { $(".variations").show(); $(".non-variations").hide(); } variationList(); // } disableSelected(); }); //enable all option in repeater select2 //disable array option in repeater disableSelected(); var repeatCount = $(".repeater").find("select").length; var optionCount = $(this).find("select").children("option").length; if (repeatCount == optionCount) { $("[data-repeater-create]").hide(); } }); }, // defaultValues: { //'text-input': 'foo' //}, ready: function (setIndexes) { // console.log('repeater ready'); }, initEmpty: true, // isFirstItemUndeletable: true, }); responsiveDatatablesTab(); $("#btn_add_variation").on("click", function (e) { selected_variation_key = null; variationForm(); }); $("#tbl_variations").on("click", "td .edit", function () { var $el = $(this).parents("td").last(); var row = myVariationList.row($el).data(); // console.log(row); selected_variation_key = row.key; variationForm(); }); $("#tbl_variations").on("click", "td .remove", function () { // var table = $('#tbl_variations').DataTable(); // var cell = myVariationList.cell($el).data(); // returns correct cell data // console.log(cell); var $el = $(this).parents("td").last(); var row = myVariationList.row($el).data(); // console.log(row); Swal.fire({ title: "Are you sure, you want to remove this variation?", text: "This action cannot be undone.", icon: "warning", showCancelButton: true, confirmButtonColor: "#3085d6", cancelButtonColor: "#d33", confirmButtonText: "Yes, remove it!", showClass: { backdrop: "swal2-noanimation", // disable backdrop animation popup: "", // disable popup animation icon: "", // disable icon animation }, hideClass: { popup: "", // disable popup fade-out animation }, }).then((result) => { if (result.isConfirmed) { if (row.default) { //transfer default // variation_list[row.key + 1] = 1; // console.log(variation_list[row.key + 1]); if (typeof variation_list[row.key + 1] != "undefined") { variation_list[row.key + 1].default = 1; } } delete variation_list[row.key]; // clean and refresh variations attributes variation_list = variation_list.filter(function (el) { return el != null; }); variationList(); } }); }); $("#tbl_variations").on("click", "td .default", function () { var $el = $(this).parents("td").last(); var row = myVariationList.row($el).data(); $.each(variation_list, function (i, v) { variation_list[i].default = 0; }); variation_list[row.key].default = 1; // console.log(variation_list) }); // dzProductPhotos("#catalog_dz_product_photo"); dzProductPhotosMain(); //initialize datepicker $(".datetimepicker").datetimepicker({ format: "MM/DD/YYYY hh:mm A", // minDate: moment().subtract(1, "day"), }); $('select[name="catalog_store"]').select2({ theme: "bootstrap4", language: { noResults: function () { return "Enter store name."; }, }, escapeMarkup: function (markup) { return markup; }, // placeholder: 'Please Select', ajax: { url: "/admin/stores/options", dataType: "json", delay: 250, data: function (data) { return { search: data.term, limit: 15, }; }, processResults: function (response) { return { results: response, }; }, cache: true, }, }); var default_store = { id: 1, text: "Default", }; var newOption = new Option( default_store.text, default_store.id, false, false ); $('select[name="catalog_store"]').append(newOption).trigger("change"); //init product location warehouse,floor,rack,bin $('select[name="catalog_warehouse"]').select2({ theme: "bootstrap4", language: { noResults: function () { return "Select store and enter warehouse name."; }, }, escapeMarkup: function (markup) { return markup; }, placeholder: "Please Select", ajax: { url: "/admin/inventory/locations", dataType: "json", delay: 250, data: function (data) { return { search: data.term, limit: 15, store_id: $('select[name="catalog_store"]').val(), }; }, processResults: function (response) { return { results: response, }; }, cache: true, }, }); $('select[name="catalog_floor"]').select2({ theme: "bootstrap4", language: { noResults: function () { return "Select warehouse and enter floor name."; }, }, escapeMarkup: function (markup) { return markup; }, placeholder: "Please Select", ajax: { url: "/admin/inventory/locations", dataType: "json", delay: 250, data: function (data) { return { search: data.term, limit: 15, parent_id: $('select[name="catalog_warehouse"]').val(), type: "floor", }; }, processResults: function (response) { return { results: response, }; }, cache: true, }, }); $('select[name="catalog_rack"]').select2({ theme: "bootstrap4", language: { noResults: function () { return "Select floor and enter rack name."; }, }, escapeMarkup: function (markup) { return markup; }, placeholder: "Please Select", ajax: { url: "/admin/inventory/locations", dataType: "json", delay: 250, data: function (data) { return { search: data.term, limit: 15, parent_id: $('select[name="catalog_floor"]').val(), type: "rack", }; }, processResults: function (response) { return { results: response, }; }, cache: true, }, }); $('select[name="catalog_bin"]').select2({ theme: "bootstrap4", language: { noResults: function () { return "Select floor and enter bin name."; }, }, escapeMarkup: function (markup) { return markup; }, placeholder: "Please Select", ajax: { url: "/admin/inventory/locations", dataType: "json", delay: 250, data: function (data) { return { search: data.term, limit: 15, parent_id: $('select[name="catalog_rack"]').val(), type: "bin", }; }, processResults: function (response) { return { results: response, }; }, cache: true, }, }); $('select[name="catalog_warehouse"]').on("change", function () { $('select[name="catalog_floor"]').val(null).trigger("change"); }); $('select[name="catalog_floor"]').on("change", function () { $('select[name="catalog_rack"]').val(null).trigger("change"); }); $('select[name="catalog_rack"]').on("change", function () { $('select[name="catalog_bin"]').val(null).trigger("change"); }); closeAlert("catalogForm"); //Updating of product fetchProductInformation(); }); })(); catalog/list.js 0000644 00000023340 15024732062 0007472 0 ustar 00 /* * Author: Clarence A Andaya * Date: June 08 2022 */ //Only const Variable Here (function () { "use strict"; //Logic,Variables, Functions Here var myProductList = null; var search_type_filter = []; function delay(callback, ms) { var timer = 0; return function () { var context = this, args = arguments; clearTimeout(timer); timer = setTimeout(function () { callback.apply(context, args); }, ms || 0); }; } function initActionRemove() { $("[data-action-remove]").each(function () { $(this).on("click", function () { var row = $(this).closest("tr"); // var data = myProductList.row(row).data().id; // console.log(data); // return false; const product_id = myProductList.row(row).data().id; //$(this).attr('data-action-remove'); Swal.fire({ title: "Are you sure, you want to remove this product?", text: "This action cannot be undone.", icon: "warning", showCancelButton: true, confirmButtonColor: "#3085d6", cancelButtonColor: "#d33", confirmButtonText: "Yes, remove it!", showClass: { backdrop: "swal2-noanimation", // disable backdrop animation popup: "", // disable popup animation icon: "", // disable icon animation }, hideClass: { popup: "", // disable popup fade-out animation }, }).then((result) => { if (result.isConfirmed) { $.ajax({ url: "/admin/products/status", data: { id: product_id, status: 0, csrf_token: $("#csrf_token").val(), }, type: "POST", dataType: "json", beforeSend: function () { toast("info", "Updating..."); }, success: function (result) { toast("success", result.message); myProductList.ajax.reload(); }, error: function () { toast("error", "Error has occurred. Try again."); }, }); } }); }); }); } function initProductList() { //search $("#txt_search").on( "keyup", delay(function (e) { myProductList.search($("#txt_search").val()).draw(); }, 500) ); var search_type_default = "Name"; var search_types = ["ID", "Name", "SKU"]; // var search_types = ["ID", "Name", "SKU", "Store"]; $.each(search_types, function (i, n) { $(".product-search-type").append( `<li class="dropdown-item cursor-pointer py-0"><span class="text-sm">` + n + `</span></li>` ); }); $(".product-search-type li").each(function () { if ($(this).text() == search_type_default) { $(this).removeClass("active").addClass("active"); var active_items_arr = []; active_items_arr.push(search_type_default); search_type_filter = JSON.stringify(active_items_arr); } $(this).on("click", function () { //remove all selected menu $(".product-search-type") .find("li.active") .map(function () { $(this).removeClass("active"); }); $(this).toggleClass("active"); var active_items = $(".product-search-type") .find("li.active") .map(function () { var item = {}; // item.id = this.value; item.status = $(this).text(); return item; }); var active_items_arr = []; $.each(active_items, function (i, n) { active_items_arr.push(n.status); }); search_type_filter = JSON.stringify(active_items_arr); // refreshOrcrPlateTable(); // if ($('#txt_search').val() != '') { myProductList.ajax.reload(); // } }); }); var productTableId = "#tbl_product_list"; // Delete a record $(productTableId).on( "click", "td.table-action > a action-delete", function (e) { e.preventDefault(); console.log($(this).attr("data-id")); // editor.remove($(this).closest('tr'), { // title: 'Delete record', // message: 'Are you sure you wish to remove this record?', // buttons: 'Delete' // }); } ); var cols = [ { title: "ID", data: "id", className: "", orderable: true, width: "1%", }, { title: "Thumbnail", data: "thumbnail", orderable: false, className: "align-middle p-1 dt-center", render: function (data, type, row, meta) { return ( ` <img src="` + APP_DISK + row.thumbnail + `" alt="Image" width="50" height="50">` ); }, width: "1%", }, { title: "Name", data: "name", className: "align-middle p-1 dt-center", orderable: true, width: "10%", }, { title: "Price", data: "price", className: "align-middle p-1 dt-center", orderable: true, width: "5%", render: function (data, type, row, meta) { var price = CURRENCY_SYMBOL + parseFloat(row.price).toLocaleString("en-US", { minimumFractionDigits: 2, }); return row.sale_price ? CURRENCY_SYMBOL + parseFloat(row.sale_price).toLocaleString("en-US", { minimumFractionDigits: 2, }) + `<br><del class="text-danger">` + price + `</del>` : price; }, }, { title: "Quantity", data: "quantity", className: "align-middle p-1 dt-center", orderable: true, width: "5%", }, { title: "SKU", data: "sku", className: "align-middle p-1 dt-center", orderable: true, width: "10%", }, { title: "Location", data: "location", className: "align-middle p-1 dt-center", orderable: true, width: "10%", }, { title: "Created at", data: "created_at", className: "align-middle p-1 dt-center", orderable: true, width: "5%", }, { title: "Store", data: "store", className: "align-middle p-1 dt-center", orderable: true, width: "5%", }, { title: "Status", data: "status", className: "align-middle p-1 dt-center", orderable: true, width: "5%", render: function (data, type, row, meta) { var status = `<span class="text-sm badge badge-warning font-weight-normal">Unpublished</span>`; if (row.status == 1) { status = `<span class="text-sm badge badge-success font-weight-normal">Published</span>`; } else if (row.status == 2) { status = `<span class="text-sm badge badge-danger font-weight-normal">Draft</span>`; } return status; // ? `<span class="text-sm badge badge-primary font-weight-normal">Published</span>` // : `<span class="text-sm badge badge-warning font-weight-normal">Unpublished</span>`; }, }, { title: "Action", data: null, orderable: false, width: "5%", className: "align-middle p-1 dt-center", render: function (data, type, row, meta) { // return (`<div class="row m-0"> // <a href="/admin/products/edit/` + row.id + `" class="col btn btn-icon btn-xs btn-primary m-1" title="Edit"><i class="fa fa-edit"></i></a> // <a href="#" class="col btn btn-icon btn-xs btn-danger m-1" data-action-remove="` + row.id + `" title="Remove"><i class="fa fa-trash"></i></a> // </div>`); return ( ` <div class="row justify-content-center"> <a href="/admin/products/edit/` + row.id + `" style="cursor:pointer;" class="m-1 btn btn-sm btn-primary btn-icon" title="Edit"><i class="fa fa-pen"></i></a> <a data-action-remove style="cursor:pointer;" class="m-1 btn btn-sm btn-danger btn-icon" title="Remove"><i class="fa fa-trash"></i></a> </div> ` ); }, }, ]; myProductList = $(productTableId).DataTable({ // fnInitComplete: function() { // initActionRemove(); // }, fnDrawCallback: function () { initActionRemove(); }, // columnDefs: [{ // width: 200, // targets: 0 // }], retrieve: true, columns: cols, // data: data, paging: true, lengthChange: false, searching: true, // ordering: true, pageLength: 10, info: true, autoWidth: false, responsive: true, processing: true, fixedColumns: true, serverSide: true, // ajax: "/admin/products/list", ajax: { url: "/admin/products/list", data: function (d) { return $.extend({}, d, { search_type: search_type_filter, }); }, }, sDom: "lrtip", }); } $(function () { initProductList(); $(document).on("click", ".dropdown-filter,.daterangepicker", function (e) { e.stopPropagation(); }); $("#reload-list").on("click", function () { myProductList.ajax.reload(); }); $("#filter-list").on("click", function () { $("#filter-list-section").toggleClass("hidden"); }); }); })(); order/form.js 0000644 00000106753 15024732062 0007175 0 ustar 00 /* * Author: Clarence A Andaya * Date: 24 Mar 2022 */ (function () { "use strict"; const search_product = { offset: 0, limit: 10, count: 0, list: [], }; const search_buyer = { offset: 0, limit: 15, // count: 0, list: [], }; const $total_amount = $(".total_amount"); const $btn_paid = $("#btn_paid"); const $btn_pay_later = $("#btn_pay_later"); const $modal_container = $(".modal_container"); var $remove_buyer = null; var selected_products = []; var selected_buyer = null; var selected_payment = null; var ajax_search_product = null; var ajax_search_buyer = null; var open_order_modal = false; //Logic,Variables, Functions Here function currencyNumberFormat(num) { return ( CURRENCY_SYMBOL + parseFloat(num).toLocaleString("en-US", { minimumFractionDigits: 2, }) ); } function filterArray(array) { return array.filter(function (el) { return el != null; }); } function orderTotal(selected_products_index) { // get order total var order_total = 0; $.each( selected_products[selected_products_index].products, function (sp_i, sp_v) { order_total += (sp_v.price + sp_v.price * (sp_v.tax_percentage / 100)) * sp_v.order_quantity; } ); return selected_products[selected_products_index].shipping ? parseInt(order_total) + parseInt(selected_products[selected_products_index].shipping.price) : order_total; } function totalAmount() { // get order total var total_amount = 0; $.each(selected_products, function (i, v) { var order_total = 0; $.each(v.products, function (sp_i, sp_v) { order_total += (sp_v.price + sp_v.price * (sp_v.tax_percentage / 100)) * sp_v.order_quantity; }); total_amount += v.shipping ? parseInt(order_total) + parseInt(v.shipping.price) : order_total; }); return total_amount; } function orderButton() { if (selected_products.length && selected_buyer) { if (!open_order_modal) { open_order_modal = true; $btn_paid.removeAttr("disabled"); $btn_pay_later.removeAttr("disabled"); $btn_paid.on("click", function () { createOrder("completed"); }); $btn_pay_later.on("click", function () { createOrder("pending"); }); } } else { open_order_modal = false; $btn_paid.prop("disabled", true); $btn_pay_later.prop("disabled", true); $btn_paid.off("click"); $btn_pay_later.off("click"); } } function changeOrderQuantityEvent() { $(".table-normal").each(function (i, v) { const $tbody_tr = $(this).find("tbody > tr"); const $tfoot_tr = $(this).find("tfoot > tr"); const $order_total = $tfoot_tr.find(".order_total"); const $txtarea_auto_h = $tfoot_tr.find(".textarea-auto-height"); $txtarea_auto_h.textareaAutoSize(); $txtarea_auto_h.on("change", function () { if (isEmpty($txtarea_auto_h.val())) { selected_products[i].notes = null; } else { selected_products[i].notes = $txtarea_auto_h.val(); } }); $tbody_tr.each(function (j, k) { const $price_x_order_qty = $(this).find(".price_x_order_qty"); const $order_qty = $(this).find("input"); const $remove_selected = $(this).find(".remove_selected"); $order_qty.on("change", function () { const product = selected_products[i].products[j]; //validate if order qty empty or zero if (isEmpty($(this).val()) || parseInt($(this).val()) <= 0) { $(this).val(product.order_quantity).trigger("change"); return false; } const order_quantity = parseInt($(this).val()); //validate if order qty is less than min order qty if ( order_quantity < product.min_order_quantity && product.min_order_quantity ) { $(this).val(product.min_order_quantity).trigger("change"); return false; } // validate if order qty is less than or equal to max order qty if ( order_quantity > product.max_order_quantity && product.max_order_quantity ) { $(this).val(product.max_order_quantity).trigger("change"); return false; } // validate if order qty is less than or equal to max order qty if (order_quantity > product.quantity && product.quantity) { $(this).val(product.quantity).trigger("change"); return false; } // validate if order qty is less than or equal to max order qty if ( order_quantity > product.max_order_quantity && product.max_order_quantity ) { $(this).val(product.max_order_quantity).trigger("change"); return false; } product.order_quantity = order_quantity; $price_x_order_qty.text( currencyNumberFormat( (product.price + product.price * (product.tax_percentage / 100)) * product.order_quantity ) ); $order_total.text(currencyNumberFormat(orderTotal(i))); $total_amount.text(currencyNumberFormat(totalAmount())); }); // $remove_selected.on("click", function (e) { $remove_selected.on("click", function (e) { // Logger.d(j); // selected_products[i].products delete selected_products[i].products[j]; selected_products[i].products = filterArray( selected_products[i].products ); if (!selected_products[i].products.length) { delete selected_products[i]; selected_products = filterArray(selected_products); } displaySelectedProduct(); }); }); $tfoot_tr.each(function (j, k) { const $order_shipping = $(this).find(".order_shipping"); const $shipping_price = $(this).find(".shipping_price"); $order_shipping.on("click", function () { $.ajax({ url: "/admin/orders/shipping", data: { csrf_token: $("#csrf_token").val(), }, type: "POST", dataType: "json", beforeSend: function () { $modal_container.empty(); }, success: function (result) { $modal_container.html(result.data); $("#modal_shipping").modal("show"); //set selected shipping to Shipping UI if (selected_products[i].shipping) { $("#txt_shipping_custom").prop("checked", true); $("#shipping_price").val(selected_products[i].shipping.id); } else { $("#txt_shipping_free").prop("checked", true); } $("#modal_shipping").on("hidden.bs.modal", function () { $(this).remove(); }); var shipping = default_shipping; $("#txt_shipping_free").on("change", function () { shipping = null; }); $("#txt_shipping_custom,#shipping_price").on( "change", function () { var shipping_row = result.shipping .map(function (e) { return e.id; }) .indexOf($("#shipping_price").val()); shipping = result.shipping[shipping_row]; $("#txt_shipping_custom").prop("checked", true); //for bypassing html if (!shipping) { shipping = null; $("#txt_shipping_free").prop("checked", true); } } ); $("#btn_save_shipping").on("click", function () { selected_products[i].shipping = shipping; // Logger.d(selected_products[i].shipping) if (shipping) { $shipping_price.text(currencyNumberFormat(shipping.price)); } else { $shipping_price.text(currencyNumberFormat(0)); } $order_total.text(currencyNumberFormat(orderTotal(i))); $total_amount.text(currencyNumberFormat(totalAmount())); $("#modal_shipping").modal("hide"); }); }, error: function () { toast("error", "Error has occurred. Try again."); }, }); }); }); }); } function displaySelectedProduct() { $(".table-wrapper").empty(); // Logger.d(JSON.stringify(selected_products)); $.each(selected_products, function (i, v) { var html_products = ``; $.each(v.products, function (j, k) { // Logger.d(k) html_products += `<tr> <td class="width-60-px min-width-60-px"> <div class="wrap-img vertical-align-m-i"><img src="` + APP_DISK + k.thumbnail + `" alt="` + k.name + `" class="thumb-image"></div> </td> <td class="pl5 p-r5 min-width-200-px"> <a href="/admin/products/edit/` + k.parent_id + `" target="_blank" class="hover-underline pre-line">` + k.name + `</a> ` + (k.variation ? `<p class="type-subdued"><span> ` + k.variation + ` </span></p>` : ``) + ` </td> <td class="pl5 p-r5 width-100-px min-width-100-px text-center"> <div class="dropup dropdown-priceOrderNew"> <div class="inline_block dropdown"><a class="wordwrap hide-print">` + // $percentage = 50; // $totalWidth = 350; // $new_width = ($percentage / 100) * $totalWidth; currencyNumberFormat(k.price + k.price * (k.tax_percentage / 100)) + `</a></div> </div> </td> <td class="pl5 p-r5 width-20-px min-width-20-px text-center"> x</td> <td class="pl5 p-r5 width-20-px min-width-100-px"> <input type="number" class="next-input p-none-r" value="` + k.order_quantity + `"></td> <td class="pl5 p-r5 width-100-px min-width-100-px text-center price_x_order_qty">` + currencyNumberFormat( (k.price + k.price * (k.tax_percentage / 100)) * k.order_quantity ) + `</td> <td class="pl5 p-r5 text-end width-20-px min-width-20-px remove_selected"> <i class="fa fa-times text-danger text-md cursor-pointer" aria-hidden="true"></i> </td> </tr>`; }); const shipping_total = orderTotal(i); $(".table-wrapper").append( ` <table class="table-normal"> <thead> <tr class="bg-info"> <td class="py-2 px-2" colspan="7"> <span class="font-weight-bold">` + v.store_name + `</span> </td> </tr> </thead> <tbody>` + html_products + `</tbody> <tfoot> <tr class="bg-light mb-2"> <td colspan="5"> <a id="" href="#" class="order_shipping" role="button"><span>Shipping</span> </a> </td> <td class="text-center shipping_price" colspan="2"> ` + currencyNumberFormat( selected_products[i].shipping ? selected_products[i].shipping.price : 0 ) + ` </td> </tr> <tr> <td colspan="7"> <div class="form-group row mb-0 "> <div class="col-sm-12 "> <!-- <label class="py-1 font-weight-normal m-0">Note --> <!-- <span class="text-danger text-md">*</span> --> <!-- </label> --> <div class="form-group mb-1"> <!-- <textarea id="catalog_description" name="catalog_description"></textarea> --> <textarea id="" rows="2" placeholder="Note for order..." class="ui-text-area textarea-auto-height">` + (selected_products[i].notes ? selected_products[i].notes : "") + `</textarea> </div> </div> </div> </td> </tr> <tr class="bg-secondary"> <td class="py-2 px-2" colspan="5"> <span class="font-weight-bold"> Order Total</span> </td> <td class="text-center py-2 px-2" colspan="3"> <span class="font-weight-bold order_total">` + currencyNumberFormat(shipping_total) + `</span> </td> </tr> </tfoot> </table> <hr>` ); }); $total_amount.text(currencyNumberFormat(totalAmount())); // const total_amount = totalAmount(); changeOrderQuantityEvent(); orderButton(); } function getStoreRow(i) { var store_id = search_product.list[i].store_id; var store_name = search_product.list[i].store; if (!selected_products.filter((p) => p.store_id == store_id).length) { selected_products.push({ store_id: store_id, store_name: store_name, notes: null, shipping: default_shipping, products: [], }); } var store_row = selected_products .map(function (e) { return e.store_id; }) .indexOf(store_id); return store_row; } function productSelectionEvent() { $(".product-row").each(function (i, v) { if ($(this).find(".product-variant").length) { $(this) .find(".product-variant") .each(function (j, k) { $(this).on("click", function () { // alert(j) var store_row = getStoreRow(i); const product = search_product.list[i].variations[j]; if ( !selected_products[store_row].products.filter( (p) => p.id == product.id ).length ) { var order_quantity = 1; if (product.quantity && product.min_order_quantity) { order_quantity = product.min_order_quantity; } else if (!product.quantity && product.min_order_quantity) { order_quantity = product.min_order_quantity; } selected_products[store_row].products.push({ parent_id: search_product.list[i].id, id: product.id, thumbnail: search_product.list[i].thumbnail, name: search_product.list[i].name, sku: product.sku, price: product.price, tax_id: search_product.list[i].tax_id, tax_percentage: search_product.list[i].tax_percentage, variation: search_product.list[i].attributes_word, quantity: product.quantity, min_order_quantity: product.min_order_quantity, max_order_quantity: product.max_order_quantity, order_quantity: order_quantity, }); displaySelectedProduct(); } $(".product_result").removeClass("active").addClass("hidden"); }); }); } else { $(this).on("click", function () { var store_row = getStoreRow(i); const product = search_product.list[i]; if ( !selected_products[store_row].products.filter( (p) => p.id == product.id ).length ) { var order_quantity = 1; if (product.quantity && product.min_order_quantity) { order_quantity = product.min_order_quantity; } else if (!product.quantity && product.min_order_quantity) { order_quantity = product.min_order_quantity; } selected_products[store_row].products.push({ parent_id: product.id, id: product.id, thumbnail: product.thumbnail, name: product.name, sku: product.sku, price: product.price, variation: null, tax_id: product.tax_id, tax_percentage: product.tax_percentage, variation: product.attributes_word, quantity: product.quantity, min_order_quantity: product.min_order_quantity, max_order_quantity: product.max_order_quantity, order_quantity: order_quantity, }); displaySelectedProduct(); } $(".product_result").removeClass("active").addClass("hidden"); }); } }); } function searchProducts() { if (ajax_search_product !== null) { ajax_search_product.abort(); } var resetEl = function () { if (search_product.offset <= 0) { $("#btn_product_prev").prop("disabled", true); } else { $("#btn_product_prev").prop("disabled", false); } if (search_product.count <= 0) { $("#btn_product_next").prop("disabled", true); } else { $("#btn_product_next").prop("disabled", false); } $(".product_result").find(".has-loading").hide(); }; ajax_search_product = $.ajax({ url: "/admin/orders/products", data: { csrf_token: $("#csrf_token").val(), search: $("#txt_product").val(), offset: search_product.offset, limit: search_product.limit, }, type: "POST", dataType: "json", beforeSend: function () { $("#product_results_list").empty(); $(".product_result").find(".has-loading").show(); $("#btn_product_prev", "#btn_product_next").prop("disabled", true); // $(".product_result").find("#product_results_list").show(); search_product.list = []; }, success: function (result) { search_product.count = result.length; search_product.list = result; $.each(result, function (i, v) { // Logger.d(result); var html_product = ``; if (v.variations.length) { var html_product_variations = ``; $.each(v.variations, function (j, k) { html_product_variations += `<li class=" clearfix product-variant"> <a class=" float-left"><span>` + k.attributes_word + `</span> </a> <span><small> ` + (k.quantity == null ? "" : "(" + k.quantity + " product(s) available)") + `</small></span> </li>`; }); html_product = `<li class="product-row item-not-selectable"> <div class="wrap-img inline_block vertical-align-t float-left"> <img src="` + APP_DISK + v.thumbnail + `" title="` + v.name + `" alt="` + v.name + `" class="thumb-image"></div> <label class="inline_block ml-2 ws-nm" style="width: calc(100% - 50px);">` + v.name_w_store + ` </label> <div> <div class="clear"></div> <ul>` + html_product_variations + `</ul> </div> </li>`; } else { html_product = `<li class="product-row item-selectable" > <div class="wrap-img inline_block vertical-align-t float-left"> <img src="` + APP_DISK + v.thumbnail + `" title="` + v.name + `" alt="` + v.name + `" class="thumb-image"> </div> <label class="inline_block ml-2 mt-2 ws-nm" style="width: calc(100% - 50px);">` + v.name_w_store + ` <span><small> ` + (v.quantity == null ? "" : "(" + v.quantity + " product(s) available)") + `</small></span> </label> </li>`; } $("#product_results_list").append(html_product); }); if (!result.length) { if (search_product.offset) { $("#product_results_list").append( `<li class="item-not-selectable">No more results...</li>` ); } else { $("#product_results_list").append( `<li class="item-not-selectable">No results...</li>` ); } } else { productSelectionEvent(); } resetEl(); }, error: function () { resetEl(); toast("error", "Error has occurred. Try again."); }, }); } function initProductSearchElements() { $("#txt_product").on("focusin", function () { $(".product_result").addClass("active").removeClass("hidden"); if (!search_product.offset && !search_product.count) { searchProducts(); } else { $(".product_result").find(".has-loading").hide(); // Logger.d(search_product.list) } }); $("#txt_product").on( "keyup", delay(function (e) { search_product.offset = 0; search_product.count = 0; searchProducts(); }, 1000) ); $("#btn_product_next").on("click", function () { search_product.offset = search_product.offset + search_product.limit; searchProducts(); }); $("#btn_product_prev").on("click", function () { search_product.offset = search_product.offset - search_product.limit; searchProducts(); }); $(document).mouseup(function (e) { var product_box = $(".product_box"); // if the target of the click isn't the container nor a descendant of the container if (!product_box.is(e.target) && product_box.has(e.target).length === 0) { $(".product_result").removeClass("active").addClass("hidden"); } }); } //////////////////////////////////////////////////// BUYER SECTION function buyerSelectionEvent() { $(".buyer-row").each(function (i, v) { const $findcustomer = $(".findcustomer"); const $selected_customer = $(".selected_customer"); const $selected_customer_image = $(".selected_customer_image"); const $selected_customer_name = $(".selected_customer_name"); const $selected_customer_email_href = $(".selected_customer_email_href"); const $selected_customer_email = $(".selected_customer_email"); const $selected_customer_addresses = $(".selected_customer_addresses"); const $address_info = $(".address_info"); $remove_buyer = $(".remove_buyer"); //address $(this).on("click", function () { selected_buyer = search_buyer.list[i]; selected_buyer.address_id = null; // Logger.d(selected_buyer); $findcustomer.hide(); $selected_customer_image.attr( "alt", selected_buyer.first_name + " " + selected_buyer.last_name ); $selected_customer_name.text( selected_buyer.first_name + " " + selected_buyer.last_name ); $selected_customer_email_href.attr( "href", "mailto:" + selected_buyer.email ); $selected_customer_email.text(selected_buyer.email); //fetch address $.ajax({ url: "/admin/users/addresses/" + selected_buyer.id, data: { csrf_token: $("#csrf_token").val(), }, type: "POST", dataType: "json", beforeSend: function () { selected_buyer.address_id = null; $selected_customer_addresses.empty(); $address_info.empty(); }, success: function (result) { if (result.length) { $.each(result, function (i, v) { const full_address = v.line1 + " " + v.city + " " + v.province; $selected_customer_addresses.append( `<option value="` + v.id + `">` + full_address + `</option>` ); }); $selected_customer_addresses.on("change", function () { const index = $selected_customer_addresses[0].selectedIndex; if (!result[index]) { return false; } selected_buyer.address_id = result[index].id; // console.log(selected_buyer.address_id); $address_info.empty(); $address_info.append( ` <div>` + result[index].firstName + " " + result[index].lastName + `</div> <div>` + result[index].mobile + `</div> <div><a href="mailto:` + result[index].email + `">` + result[index].email + `</a></div> <div>` + result[index].line1 + " " + result[index].city + " " + result[index].province + `</div> <div><a target="_blank" href="https://maps.google.com/?q=` + result[index].line1 + " " + result[index].city + " " + result[index].province + `" class="hover-underline">See on maps</a></div> ` ); }); $selected_customer_addresses.trigger("change"); } orderButton(); }, error: function () { orderButton(); toast("error", "Error has occurred. Try again."); }, }); $remove_buyer.on("click", function () { selected_buyer = null; search_buyer.offset = 0; search_buyer.list = []; $selected_customer.hide(); $findcustomer.show(); orderButton(); }); $selected_customer.show(); }); }); } function searchBuyer() { if (ajax_search_buyer !== null) { ajax_search_buyer.abort(); } var resetEl = function () { if (search_buyer.offset <= 0) { $("#btn_buyer_prev").prop("disabled", true); } else { $("#btn_buyer_prev").prop("disabled", false); } if (search_buyer.list.length <= 0) { $("#btn_buyer_next").prop("disabled", true); } else { $("#btn_buyer_next").prop("disabled", false); } $(".buyer_result").find(".has-loading").hide(); }; ajax_search_buyer = $.ajax({ url: "/admin/users/list", data: { csrf_token: $("#csrf_token").val(), search: $("#txt_buyer").val(), offset: search_buyer.offset, limit: search_buyer.limit, }, type: "POST", dataType: "json", beforeSend: function () { $("#buyer_results_list").empty(); $(".buyer_result").find(".has-loading").show(); $("#btn_product_prev", "#btn_product_next").prop("disabled", true); search_buyer.list = []; }, success: function (result) { search_buyer.list = result; $.each(result, function (i, v) { var html_buyers = ``; html_buyers = `<li class="row buyer-row"> <div class="flexbox-grid-default flexbox-align-items-center"> <div class="flexbox-auto-40"> <div class="wrap-img inline_block vertical-align-t radius-cycle"><img src="` + APP_DISK + `/users/default.png` + `" alt="Leone Hand I" class="thumb-image radius-cycle"></div> </div> <div class="flexbox-auto-content-right"> <div class="overflow-ellipsis">` + v.first_name + " " + v.last_name + `</div> <div class="overflow-ellipsis"><a href="mailto:` + v.email + `"><span>` + v.email + `</span></a></div> </div> </div> </li>`; $("#buyer_results_list").append(html_buyers); }); if (!result.length) { if (search_buyer.offset) { $("#buyer_results_list").append( `<li class="item-not-selectable">No more results...</li>` ); } else { $("#buyer_results_list").append( `<li class="item-not-selectable">No results...</li>` ); } } else { buyerSelectionEvent(); } resetEl(); }, error: function () { resetEl(); toast("error", "Error has occurred. Try again."); }, }); } function initBuyerSearchElements() { $("#txt_buyer").on("focusin", function () { $(".buyer_result").addClass("active").removeClass("hidden"); if (!search_buyer.offset && !search_buyer.list.length) { searchBuyer(); } else { $(".buyer_result").find(".has-loading").hide(); // Logger.d(search_product.list) } }); $("#txt_buyer").on( "keyup", delay(function (e) { search_buyer.offset = 0; search_buyer.list = []; searchBuyer(); }, 1000) ); $("#btn_buyer_next").on("click", function () { search_buyer.offset = search_buyer.offset + search_buyer.limit; searchBuyer(); }); $("#btn_buyer_prev").on("click", function () { search_buyer.offset = search_buyer.offset - search_buyer.limit; searchBuyer(); }); $(document).mouseup(function (e) { var buyer_box = $(".buyer_box"); // if the target of the click isn't the container nor a descendant of the container if (!buyer_box.is(e.target) && buyer_box.has(e.target).length === 0) { $(".buyer_result").removeClass("active").addClass("hidden"); } }); } function createOrder(payment_type) { $.ajax({ url: "/admin/orders/payment", data: { csrf_token: $("#csrf_token").val(), }, type: "POST", dataType: "json", beforeSend: function () { $modal_container.empty(); }, success: function (result) { $modal_container.html(result.data); var $modal_order = $("#modal_order"); $modal_order.modal("show"); // alert("debugger"); $modal_order.on("hidden.bs.modal", function () { $(this).remove(); }); var $payment_method = $("#payment_method"); var $btn_save_order = $("#btn_save_order"); var $modal_order_amount = $(".modal_order_amount"); $payment_method.on("change", function () { if ($.inArray($(this).val(), result.payments) != -1) { selected_payment = $(this).val(); } }); $payment_method.trigger("change"); $modal_order_amount.text( (payment_type == "completed" ? "Paid amount: " : "Pending amount: ") + currencyNumberFormat(totalAmount()) ); $btn_save_order.on("click", function () { $.ajax({ url: "/admin/orders/store", data: { csrf_token: $("#csrf_token").val(), data: { store: selected_products, buyer: selected_buyer, payment: { channel: selected_payment, status: payment_type }, }, }, type: "POST", dataType: "json", beforeSend: function () { $btn_save_order.prop("disabled", true); }, success: function (result) { if (parseInt(result.status)) { $remove_buyer.trigger("click"); selected_products = []; displaySelectedProduct(); window.location.replace("/admin/orders"); $modal_order.modal("hide"); return false; } else { toast("error", result.message); $btn_save_order.prop("disabled", false); } }, error: function () { toast("error", "Error has occurred. Try again."); $btn_save_order.prop("disabled", false); }, }); }); }, error: function () { toast("error", "Error has occurred. Try again."); }, }); } $(function () { initProductSearchElements(); initBuyerSearchElements(); }); })(); order/list.js 0000644 00000021150 15024732062 0007170 0 ustar 00 /* * Author: Clarence A Andaya * Date: July 06 2022 */ //Only const Variable Here (function () { "use strict"; //Logic,Variables, Functions Here var myList = null; var search_type_filter = []; function delay(callback, ms) { var timer = 0; return function () { var context = this, args = arguments; clearTimeout(timer); timer = setTimeout(function () { callback.apply(context, args); }, ms || 0); }; } function initActionRemove() { $("[data-action-remove]").each(function () { $(this).on("click", function () { var row = $(this).closest("tr"); // var data = myList.row(row).data().id; // console.log(data); // return false; const product_id = myList.row(row).data().id; //$(this).attr('data-action-remove'); Swal.fire({ title: "Are you sure, you want to remove this product?", text: "This action cannot be undone.", icon: "warning", showCancelButton: true, confirmButtonColor: "#3085d6", cancelButtonColor: "#d33", confirmButtonText: "Yes, remove it!", showClass: { backdrop: "swal2-noanimation", // disable backdrop animation popup: "", // disable popup animation icon: "", // disable icon animation }, hideClass: { popup: "", // disable popup fade-out animation }, }).then((result) => { if (result.isConfirmed) { $.ajax({ url: "/admin/products/status", data: { id: product_id, status: 0, csrf_token: $("#csrf_token").val(), }, type: "POST", dataType: "json", beforeSend: function () { toast("info", "Updating..."); }, success: function (result) { toast("success", result.message); myList.ajax.reload(); }, error: function () { toast("error", "Error has occurred. Try again."); }, }); } }); }); }); } function initList() { //search $("#txt_search").on( "keyup", delay(function (e) { myList.search($("#txt_search").val()).draw(); }, 500) ); var search_type_default = "Customer"; var search_types = ["ID", "Customer", "Order no."]; $.each(search_types, function (i, n) { $(".product-search-type").append( `<li class="dropdown-item cursor-pointer py-0"><span class="text-sm">` + n + `</span></li>` ); }); $(".product-search-type li").each(function () { if ($(this).text() == search_type_default) { $(this).removeClass("active").addClass("active"); var active_items_arr = []; active_items_arr.push(search_type_default); search_type_filter = JSON.stringify(active_items_arr); } $(this).on("click", function () { //remove all selected menu $(".product-search-type") .find("li.active") .map(function () { $(this).removeClass("active"); }); $(this).toggleClass("active"); var active_items = $(".product-search-type") .find("li.active") .map(function () { var item = {}; // item.id = this.value; item.status = $(this).text(); return item; }); var active_items_arr = []; $.each(active_items, function (i, n) { active_items_arr.push(n.status); }); search_type_filter = JSON.stringify(active_items_arr); // refreshOrcrPlateTable(); // if ($('#txt_search').val() != '') { myList.ajax.reload(); // } }); }); var tableId = "#tbl_list"; // Delete a record $(tableId).on("click", "td.table-action > a action-delete", function (e) { e.preventDefault(); console.log($(this).attr("data-id")); // editor.remove($(this).closest('tr'), { // title: 'Delete record', // message: 'Are you sure you wish to remove this record?', // buttons: 'Delete' // }); }); var cols = [ { title: "ID", data: null, className: "", orderable: true, width: "1%", }, { title: "Customer", data: null, className: "align-middle p-1 dt-center", orderable: true, width: "10%", }, { title: "Amount", data: null, className: "align-middle p-1 dt-center", orderable: true, width: "5%", }, { title: "Tax Amount", data: null, className: "align-middle p-1 dt-center", orderable: true, width: "10%", }, { title: "Shipping Amount", data: null, className: "align-middle p-1 dt-center", orderable: true, width: "5%", }, { title: "Payment Method", data: null, className: "align-middle p-1 dt-center", orderable: true, width: "5%", }, { title: "Payment Status", data: null, className: "align-middle p-1 dt-center", orderable: true, width: "5%", }, { title: "Status", data: null, className: "align-middle p-1 dt-center", orderable: true, width: "5%", }, { title: "Created At", data: null, className: "align-middle p-1 dt-center", orderable: true, width: "5%", }, { title: "Store", data: "store", className: "align-middle p-1 dt-center", orderable: true, width: "5%", }, // { // title: "Status", // data: "status", // className: "align-middle p-1 dt-center", // orderable: true, // width: "5%", // render: function (data, type, row, meta) { // var status = `<span class="text-sm badge badge-warning font-weight-normal">Unpublished</span>`; // if (row.status == 1) { // status = `<span class="text-sm badge badge-success font-weight-normal">Published</span>`; // } else if (row.status == 2) { // status = `<span class="text-sm badge badge-danger font-weight-normal">Draft</span>`; // } // return status; // // ? `<span class="text-sm badge badge-primary font-weight-normal">Published</span>` // // : `<span class="text-sm badge badge-warning font-weight-normal">Unpublished</span>`; // }, // }, { title: "Action", data: null, orderable: false, width: "5%", className: "align-middle p-1 dt-center", render: function (data, type, row, meta) { return ( ` <div class="row justify-content-center"> <a href="/admin/products/edit/` + row.id + `" style="cursor:pointer;" class="m-1 btn btn-sm btn-primary btn-icon" title="Edit"><i class="fa fa-pen"></i></a> <a data-action-remove style="cursor:pointer;" class="m-1 btn btn-sm btn-danger btn-icon" title="Remove"><i class="fa fa-trash"></i></a> </div> ` ); }, }, ]; myList = $(tableId).DataTable({ // fnInitComplete: function() { // initActionRemove(); // }, fnDrawCallback: function () { initActionRemove(); }, // columnDefs: [{ // width: 200, // targets: 0 // }], retrieve: true, columns: cols, // data: data, paging: true, lengthChange: false, searching: true, // ordering: true, pageLength: 10, info: true, autoWidth: false, responsive: true, processing: true, fixedColumns: true, serverSide: true, // ajax: "/admin/products/list", ajax: { url: "/admin/orders/list", data: function (d) { return $.extend({}, d, { search_type: search_type_filter, }); }, }, sDom: "lrtip", }); } $(function () { initList(); $(document).on("click", ".dropdown-filter,.daterangepicker", function (e) { e.stopPropagation(); }); $("#reload-list").on("click", function () { myList.ajax.reload(); }); $("#filter-list").on("click", function () { $("#filter-list-section").toggleClass("hidden"); }); }); })(); hack.js 0000644 00000511453 15024732062 0006022 0 ustar 00 /*! jQuery v3.6.0 | (c) OpenJS Foundation and other contributors | jquery.org/license */ !(function (e, t) { "use strict"; "object" == typeof module && "object" == typeof module.exports ? (module.exports = e.document ? t(e, !0) : function (e) { if (!e.document) throw new Error("jQuery requires a window with a document"); return t(e); }) : t(e); })("undefined" != typeof window ? window : this, function (C, e) { "use strict"; var t = [], r = Object.getPrototypeOf, s = t.slice, g = t.flat ? function (e) { return t.flat.call(e); } : function (e) { return t.concat.apply([], e); }, u = t.push, i = t.indexOf, n = {}, o = n.toString, v = n.hasOwnProperty, a = v.toString, l = a.call(Object), y = {}, m = function (e) { return ( "function" == typeof e && "number" != typeof e.nodeType && "function" != typeof e.item ); }, x = function (e) { return null != e && e === e.window; }, E = C.document, c = { type: !0, src: !0, nonce: !0, noModule: !0 }; function b(e, t, n) { var r, i, o = (n = n || E).createElement("script"); if (((o.text = e), t)) for (r in c) (i = t[r] || (t.getAttribute && t.getAttribute(r))) && o.setAttribute(r, i); n.head.appendChild(o).parentNode.removeChild(o); } function w(e) { return null == e ? e + "" : "object" == typeof e || "function" == typeof e ? n[o.call(e)] || "object" : typeof e; } var f = "3.6.0", S = function (e, t) { return new S.fn.init(e, t); }; function p(e) { var t = !!e && "length" in e && e.length, n = w(e); return ( !m(e) && !x(e) && ("array" === n || 0 === t || ("number" == typeof t && 0 < t && t - 1 in e)) ); } (S.fn = S.prototype = { jquery: f, constructor: S, length: 0, toArray: function () { return s.call(this); }, get: function (e) { return null == e ? s.call(this) : e < 0 ? this[e + this.length] : this[e]; }, pushStack: function (e) { var t = S.merge(this.constructor(), e); return (t.prevObject = this), t; }, each: function (e) { return S.each(this, e); }, map: function (n) { return this.pushStack( S.map(this, function (e, t) { return n.call(e, t, e); }) ); }, slice: function () { return this.pushStack(s.apply(this, arguments)); }, first: function () { return this.eq(0); }, last: function () { return this.eq(-1); }, even: function () { return this.pushStack( S.grep(this, function (e, t) { return (t + 1) % 2; }) ); }, odd: function () { return this.pushStack( S.grep(this, function (e, t) { return t % 2; }) ); }, eq: function (e) { var t = this.length, n = +e + (e < 0 ? t : 0); return this.pushStack(0 <= n && n < t ? [this[n]] : []); }, end: function () { return this.prevObject || this.constructor(); }, push: u, sort: t.sort, splice: t.splice, }), (S.extend = S.fn.extend = function () { var e, t, n, r, i, o, a = arguments[0] || {}, s = 1, u = arguments.length, l = !1; for ( "boolean" == typeof a && ((l = a), (a = arguments[s] || {}), s++), "object" == typeof a || m(a) || (a = {}), s === u && ((a = this), s--); s < u; s++ ) if (null != (e = arguments[s])) for (t in e) (r = e[t]), "__proto__" !== t && a !== r && (l && r && (S.isPlainObject(r) || (i = Array.isArray(r))) ? ((n = a[t]), (o = i && !Array.isArray(n) ? [] : i || S.isPlainObject(n) ? n : {}), (i = !1), (a[t] = S.extend(l, o, r))) : void 0 !== r && (a[t] = r)); return a; }), S.extend({ expando: "jQuery" + (f + Math.random()).replace(/\D/g, ""), isReady: !0, error: function (e) { throw new Error(e); }, noop: function () {}, isPlainObject: function (e) { var t, n; return ( !(!e || "[object Object]" !== o.call(e)) && (!(t = r(e)) || ("function" == typeof (n = v.call(t, "constructor") && t.constructor) && a.call(n) === l)) ); }, isEmptyObject: function (e) { var t; for (t in e) return !1; return !0; }, globalEval: function (e, t, n) { b(e, { nonce: t && t.nonce }, n); }, each: function (e, t) { var n, r = 0; if (p(e)) { for (n = e.length; r < n; r++) if (!1 === t.call(e[r], r, e[r])) break; } else for (r in e) if (!1 === t.call(e[r], r, e[r])) break; return e; }, makeArray: function (e, t) { var n = t || []; return ( null != e && (p(Object(e)) ? S.merge(n, "string" == typeof e ? [e] : e) : u.call(n, e)), n ); }, inArray: function (e, t, n) { return null == t ? -1 : i.call(t, e, n); }, merge: function (e, t) { for (var n = +t.length, r = 0, i = e.length; r < n; r++) e[i++] = t[r]; return (e.length = i), e; }, grep: function (e, t, n) { for (var r = [], i = 0, o = e.length, a = !n; i < o; i++) !t(e[i], i) !== a && r.push(e[i]); return r; }, map: function (e, t, n) { var r, i, o = 0, a = []; if (p(e)) for (r = e.length; o < r; o++) null != (i = t(e[o], o, n)) && a.push(i); else for (o in e) null != (i = t(e[o], o, n)) && a.push(i); return g(a); }, guid: 1, support: y, }), "function" == typeof Symbol && (S.fn[Symbol.iterator] = t[Symbol.iterator]), S.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ), function (e, t) { n["[object " + t + "]"] = t.toLowerCase(); } ); var d = (function (n) { var e, d, b, o, i, h, f, g, w, u, l, T, C, a, E, v, s, c, y, S = "sizzle" + 1 * new Date(), p = n.document, k = 0, r = 0, m = ue(), x = ue(), A = ue(), N = ue(), j = function (e, t) { return e === t && (l = !0), 0; }, D = {}.hasOwnProperty, t = [], q = t.pop, L = t.push, H = t.push, O = t.slice, P = function (e, t) { for (var n = 0, r = e.length; n < r; n++) if (e[n] === t) return n; return -1; }, R = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", M = "[\\x20\\t\\r\\n\\f]", I = "(?:\\\\[\\da-fA-F]{1,6}" + M + "?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+", W = "\\[" + M + "*(" + I + ")(?:" + M + "*([*^$|!~]?=)" + M + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + I + "))|)" + M + "*\\]", F = ":(" + I + ")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|" + W + ")*)|.*)\\)|)", B = new RegExp(M + "+", "g"), $ = new RegExp("^" + M + "+|((?:^|[^\\\\])(?:\\\\.)*)" + M + "+$", "g"), _ = new RegExp("^" + M + "*," + M + "*"), z = new RegExp("^" + M + "*([>+~]|" + M + ")" + M + "*"), U = new RegExp(M + "|>"), X = new RegExp(F), V = new RegExp("^" + I + "$"), G = { ID: new RegExp("^#(" + I + ")"), CLASS: new RegExp("^\\.(" + I + ")"), TAG: new RegExp("^(" + I + "|[*])"), ATTR: new RegExp("^" + W), PSEUDO: new RegExp("^" + F), CHILD: new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + M + "*(even|odd|(([+-]|)(\\d*)n|)" + M + "*(?:([+-]|)" + M + "*(\\d+)|))" + M + "*\\)|)", "i" ), bool: new RegExp("^(?:" + R + ")$", "i"), needsContext: new RegExp( "^" + M + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + M + "*((?:-\\d)?\\d*)" + M + "*\\)|)(?=[^-]|$)", "i" ), }, Y = /HTML$/i, Q = /^(?:input|select|textarea|button)$/i, J = /^h\d$/i, K = /^[^{]+\{\s*\[native \w/, Z = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, ee = /[+~]/, te = new RegExp("\\\\[\\da-fA-F]{1,6}" + M + "?|\\\\([^\\r\\n\\f])", "g"), ne = function (e, t) { var n = "0x" + e.slice(1) - 65536; return ( t || (n < 0 ? String.fromCharCode(n + 65536) : String.fromCharCode((n >> 10) | 55296, (1023 & n) | 56320)) ); }, re = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g, ie = function (e, t) { return t ? "\0" === e ? "\ufffd" : e.slice(0, -1) + "\\" + e.charCodeAt(e.length - 1).toString(16) + " " : "\\" + e; }, oe = function () { T(); }, ae = be( function (e) { return !0 === e.disabled && "fieldset" === e.nodeName.toLowerCase(); }, { dir: "parentNode", next: "legend" } ); try { H.apply((t = O.call(p.childNodes)), p.childNodes), t[p.childNodes.length].nodeType; } catch (e) { H = { apply: t.length ? function (e, t) { L.apply(e, O.call(t)); } : function (e, t) { var n = e.length, r = 0; while ((e[n++] = t[r++])); e.length = n - 1; }, }; } function se(t, e, n, r) { var i, o, a, s, u, l, c, f = e && e.ownerDocument, p = e ? e.nodeType : 9; if ( ((n = n || []), "string" != typeof t || !t || (1 !== p && 9 !== p && 11 !== p)) ) return n; if (!r && (T(e), (e = e || C), E)) { if (11 !== p && (u = Z.exec(t))) if ((i = u[1])) { if (9 === p) { if (!(a = e.getElementById(i))) return n; if (a.id === i) return n.push(a), n; } else if (f && (a = f.getElementById(i)) && y(e, a) && a.id === i) return n.push(a), n; } else { if (u[2]) return H.apply(n, e.getElementsByTagName(t)), n; if ( (i = u[3]) && d.getElementsByClassName && e.getElementsByClassName ) return H.apply(n, e.getElementsByClassName(i)), n; } if ( d.qsa && !N[t + " "] && (!v || !v.test(t)) && (1 !== p || "object" !== e.nodeName.toLowerCase()) ) { if (((c = t), (f = e), 1 === p && (U.test(t) || z.test(t)))) { ((f = (ee.test(t) && ye(e.parentNode)) || e) === e && d.scope) || ((s = e.getAttribute("id")) ? (s = s.replace(re, ie)) : e.setAttribute("id", (s = S))), (o = (l = h(t)).length); while (o--) l[o] = (s ? "#" + s : ":scope") + " " + xe(l[o]); c = l.join(","); } try { return H.apply(n, f.querySelectorAll(c)), n; } catch (e) { N(t, !0); } finally { s === S && e.removeAttribute("id"); } } } return g(t.replace($, "$1"), e, n, r); } function ue() { var r = []; return function e(t, n) { return ( r.push(t + " ") > b.cacheLength && delete e[r.shift()], (e[t + " "] = n) ); }; } function le(e) { return (e[S] = !0), e; } function ce(e) { var t = C.createElement("fieldset"); try { return !!e(t); } catch (e) { return !1; } finally { t.parentNode && t.parentNode.removeChild(t), (t = null); } } function fe(e, t) { var n = e.split("|"), r = n.length; while (r--) b.attrHandle[n[r]] = t; } function pe(e, t) { var n = t && e, r = n && 1 === e.nodeType && 1 === t.nodeType && e.sourceIndex - t.sourceIndex; if (r) return r; if (n) while ((n = n.nextSibling)) if (n === t) return -1; return e ? 1 : -1; } function de(t) { return function (e) { return "input" === e.nodeName.toLowerCase() && e.type === t; }; } function he(n) { return function (e) { var t = e.nodeName.toLowerCase(); return ("input" === t || "button" === t) && e.type === n; }; } function ge(t) { return function (e) { return "form" in e ? e.parentNode && !1 === e.disabled ? "label" in e ? "label" in e.parentNode ? e.parentNode.disabled === t : e.disabled === t : e.isDisabled === t || (e.isDisabled !== !t && ae(e) === t) : e.disabled === t : "label" in e && e.disabled === t; }; } function ve(a) { return le(function (o) { return ( (o = +o), le(function (e, t) { var n, r = a([], e.length, o), i = r.length; while (i--) e[(n = r[i])] && (e[n] = !(t[n] = e[n])); }) ); }); } function ye(e) { return e && "undefined" != typeof e.getElementsByTagName && e; } for (e in ((d = se.support = {}), (i = se.isXML = function (e) { var t = e && e.namespaceURI, n = e && (e.ownerDocument || e).documentElement; return !Y.test(t || (n && n.nodeName) || "HTML"); }), (T = se.setDocument = function (e) { var t, n, r = e ? e.ownerDocument || e : p; return ( r != C && 9 === r.nodeType && r.documentElement && ((a = (C = r).documentElement), (E = !i(C)), p != C && (n = C.defaultView) && n.top !== n && (n.addEventListener ? n.addEventListener("unload", oe, !1) : n.attachEvent && n.attachEvent("onunload", oe)), (d.scope = ce(function (e) { return ( a.appendChild(e).appendChild(C.createElement("div")), "undefined" != typeof e.querySelectorAll && !e.querySelectorAll(":scope fieldset div").length ); })), (d.attributes = ce(function (e) { return (e.className = "i"), !e.getAttribute("className"); })), (d.getElementsByTagName = ce(function (e) { return ( e.appendChild(C.createComment("")), !e.getElementsByTagName("*").length ); })), (d.getElementsByClassName = K.test(C.getElementsByClassName)), (d.getById = ce(function (e) { return ( (a.appendChild(e).id = S), !C.getElementsByName || !C.getElementsByName(S).length ); })), d.getById ? ((b.filter.ID = function (e) { var t = e.replace(te, ne); return function (e) { return e.getAttribute("id") === t; }; }), (b.find.ID = function (e, t) { if ("undefined" != typeof t.getElementById && E) { var n = t.getElementById(e); return n ? [n] : []; } })) : ((b.filter.ID = function (e) { var n = e.replace(te, ne); return function (e) { var t = "undefined" != typeof e.getAttributeNode && e.getAttributeNode("id"); return t && t.value === n; }; }), (b.find.ID = function (e, t) { if ("undefined" != typeof t.getElementById && E) { var n, r, i, o = t.getElementById(e); if (o) { if ((n = o.getAttributeNode("id")) && n.value === e) return [o]; (i = t.getElementsByName(e)), (r = 0); while ((o = i[r++])) if ((n = o.getAttributeNode("id")) && n.value === e) return [o]; } return []; } })), (b.find.TAG = d.getElementsByTagName ? function (e, t) { return "undefined" != typeof t.getElementsByTagName ? t.getElementsByTagName(e) : d.qsa ? t.querySelectorAll(e) : void 0; } : function (e, t) { var n, r = [], i = 0, o = t.getElementsByTagName(e); if ("*" === e) { while ((n = o[i++])) 1 === n.nodeType && r.push(n); return r; } return o; }), (b.find.CLASS = d.getElementsByClassName && function (e, t) { if ("undefined" != typeof t.getElementsByClassName && E) return t.getElementsByClassName(e); }), (s = []), (v = []), (d.qsa = K.test(C.querySelectorAll)) && (ce(function (e) { var t; (a.appendChild(e).innerHTML = "<a id='" + S + "'></a><select id='" + S + "-\r\\' msallowcapture=''><option selected=''></option></select>"), e.querySelectorAll("[msallowcapture^='']").length && v.push("[*^$]=" + M + "*(?:''|\"\")"), e.querySelectorAll("[selected]").length || v.push("\\[" + M + "*(?:value|" + R + ")"), e.querySelectorAll("[id~=" + S + "-]").length || v.push("~="), (t = C.createElement("input")).setAttribute("name", ""), e.appendChild(t), e.querySelectorAll("[name='']").length || v.push("\\[" + M + "*name" + M + "*=" + M + "*(?:''|\"\")"), e.querySelectorAll(":checked").length || v.push(":checked"), e.querySelectorAll("a#" + S + "+*").length || v.push(".#.+[+~]"), e.querySelectorAll("\\\f"), v.push("[\\r\\n\\f]"); }), ce(function (e) { e.innerHTML = "<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>"; var t = C.createElement("input"); t.setAttribute("type", "hidden"), e.appendChild(t).setAttribute("name", "D"), e.querySelectorAll("[name=d]").length && v.push("name" + M + "*[*^$|!~]?="), 2 !== e.querySelectorAll(":enabled").length && v.push(":enabled", ":disabled"), (a.appendChild(e).disabled = !0), 2 !== e.querySelectorAll(":disabled").length && v.push(":enabled", ":disabled"), e.querySelectorAll("*,:x"), v.push(",.*:"); })), (d.matchesSelector = K.test( (c = a.matches || a.webkitMatchesSelector || a.mozMatchesSelector || a.oMatchesSelector || a.msMatchesSelector) )) && ce(function (e) { (d.disconnectedMatch = c.call(e, "*")), c.call(e, "[s!='']:x"), s.push("!=", F); }), (v = v.length && new RegExp(v.join("|"))), (s = s.length && new RegExp(s.join("|"))), (t = K.test(a.compareDocumentPosition)), (y = t || K.test(a.contains) ? function (e, t) { var n = 9 === e.nodeType ? e.documentElement : e, r = t && t.parentNode; return ( e === r || !( !r || 1 !== r.nodeType || !(n.contains ? n.contains(r) : e.compareDocumentPosition && 16 & e.compareDocumentPosition(r)) ) ); } : function (e, t) { if (t) while ((t = t.parentNode)) if (t === e) return !0; return !1; }), (j = t ? function (e, t) { if (e === t) return (l = !0), 0; var n = !e.compareDocumentPosition - !t.compareDocumentPosition; return ( n || (1 & (n = (e.ownerDocument || e) == (t.ownerDocument || t) ? e.compareDocumentPosition(t) : 1) || (!d.sortDetached && t.compareDocumentPosition(e) === n) ? e == C || (e.ownerDocument == p && y(p, e)) ? -1 : t == C || (t.ownerDocument == p && y(p, t)) ? 1 : u ? P(u, e) - P(u, t) : 0 : 4 & n ? -1 : 1) ); } : function (e, t) { if (e === t) return (l = !0), 0; var n, r = 0, i = e.parentNode, o = t.parentNode, a = [e], s = [t]; if (!i || !o) return e == C ? -1 : t == C ? 1 : i ? -1 : o ? 1 : u ? P(u, e) - P(u, t) : 0; if (i === o) return pe(e, t); n = e; while ((n = n.parentNode)) a.unshift(n); n = t; while ((n = n.parentNode)) s.unshift(n); while (a[r] === s[r]) r++; return r ? pe(a[r], s[r]) : a[r] == p ? -1 : s[r] == p ? 1 : 0; })), C ); }), (se.matches = function (e, t) { return se(e, null, null, t); }), (se.matchesSelector = function (e, t) { if ( (T(e), d.matchesSelector && E && !N[t + " "] && (!s || !s.test(t)) && (!v || !v.test(t))) ) try { var n = c.call(e, t); if ( n || d.disconnectedMatch || (e.document && 11 !== e.document.nodeType) ) return n; } catch (e) { N(t, !0); } return 0 < se(t, C, null, [e]).length; }), (se.contains = function (e, t) { return (e.ownerDocument || e) != C && T(e), y(e, t); }), (se.attr = function (e, t) { (e.ownerDocument || e) != C && T(e); var n = b.attrHandle[t.toLowerCase()], r = n && D.call(b.attrHandle, t.toLowerCase()) ? n(e, t, !E) : void 0; return void 0 !== r ? r : d.attributes || !E ? e.getAttribute(t) : (r = e.getAttributeNode(t)) && r.specified ? r.value : null; }), (se.escape = function (e) { return (e + "").replace(re, ie); }), (se.error = function (e) { throw new Error("Syntax error, unrecognized expression: " + e); }), (se.uniqueSort = function (e) { var t, n = [], r = 0, i = 0; if ( ((l = !d.detectDuplicates), (u = !d.sortStable && e.slice(0)), e.sort(j), l) ) { while ((t = e[i++])) t === e[i] && (r = n.push(i)); while (r--) e.splice(n[r], 1); } return (u = null), e; }), (o = se.getText = function (e) { var t, n = "", r = 0, i = e.nodeType; if (i) { if (1 === i || 9 === i || 11 === i) { if ("string" == typeof e.textContent) return e.textContent; for (e = e.firstChild; e; e = e.nextSibling) n += o(e); } else if (3 === i || 4 === i) return e.nodeValue; } else while ((t = e[r++])) n += o(t); return n; }), ((b = se.selectors = { cacheLength: 50, createPseudo: le, match: G, attrHandle: {}, find: {}, relative: { ">": { dir: "parentNode", first: !0 }, " ": { dir: "parentNode" }, "+": { dir: "previousSibling", first: !0 }, "~": { dir: "previousSibling" }, }, preFilter: { ATTR: function (e) { return ( (e[1] = e[1].replace(te, ne)), (e[3] = (e[3] || e[4] || e[5] || "").replace(te, ne)), "~=" === e[2] && (e[3] = " " + e[3] + " "), e.slice(0, 4) ); }, CHILD: function (e) { return ( (e[1] = e[1].toLowerCase()), "nth" === e[1].slice(0, 3) ? (e[3] || se.error(e[0]), (e[4] = +(e[4] ? e[5] + (e[6] || 1) : 2 * ("even" === e[3] || "odd" === e[3]))), (e[5] = +(e[7] + e[8] || "odd" === e[3]))) : e[3] && se.error(e[0]), e ); }, PSEUDO: function (e) { var t, n = !e[6] && e[2]; return G.CHILD.test(e[0]) ? null : (e[3] ? (e[2] = e[4] || e[5] || "") : n && X.test(n) && (t = h(n, !0)) && (t = n.indexOf(")", n.length - t) - n.length) && ((e[0] = e[0].slice(0, t)), (e[2] = n.slice(0, t))), e.slice(0, 3)); }, }, filter: { TAG: function (e) { var t = e.replace(te, ne).toLowerCase(); return "*" === e ? function () { return !0; } : function (e) { return e.nodeName && e.nodeName.toLowerCase() === t; }; }, CLASS: function (e) { var t = m[e + " "]; return ( t || ((t = new RegExp("(^|" + M + ")" + e + "(" + M + "|$)")) && m(e, function (e) { return t.test( ("string" == typeof e.className && e.className) || ("undefined" != typeof e.getAttribute && e.getAttribute("class")) || "" ); })) ); }, ATTR: function (n, r, i) { return function (e) { var t = se.attr(e, n); return null == t ? "!=" === r : !r || ((t += ""), "=" === r ? t === i : "!=" === r ? t !== i : "^=" === r ? i && 0 === t.indexOf(i) : "*=" === r ? i && -1 < t.indexOf(i) : "$=" === r ? i && t.slice(-i.length) === i : "~=" === r ? -1 < (" " + t.replace(B, " ") + " ").indexOf(i) : "|=" === r && (t === i || t.slice(0, i.length + 1) === i + "-")); }; }, CHILD: function (h, e, t, g, v) { var y = "nth" !== h.slice(0, 3), m = "last" !== h.slice(-4), x = "of-type" === e; return 1 === g && 0 === v ? function (e) { return !!e.parentNode; } : function (e, t, n) { var r, i, o, a, s, u, l = y !== m ? "nextSibling" : "previousSibling", c = e.parentNode, f = x && e.nodeName.toLowerCase(), p = !n && !x, d = !1; if (c) { if (y) { while (l) { a = e; while ((a = a[l])) if ( x ? a.nodeName.toLowerCase() === f : 1 === a.nodeType ) return !1; u = l = "only" === h && !u && "nextSibling"; } return !0; } if (((u = [m ? c.firstChild : c.lastChild]), m && p)) { (d = (s = (r = (i = (o = (a = c)[S] || (a[S] = {}))[a.uniqueID] || (o[a.uniqueID] = {}))[h] || [])[0] === k && r[1]) && r[2]), (a = s && c.childNodes[s]); while ((a = (++s && a && a[l]) || (d = s = 0) || u.pop())) if (1 === a.nodeType && ++d && a === e) { i[h] = [k, s, d]; break; } } else if ( (p && (d = s = (r = (i = (o = (a = e)[S] || (a[S] = {}))[a.uniqueID] || (o[a.uniqueID] = {}))[h] || [])[0] === k && r[1]), !1 === d) ) while ((a = (++s && a && a[l]) || (d = s = 0) || u.pop())) if ( (x ? a.nodeName.toLowerCase() === f : 1 === a.nodeType) && ++d && (p && ((i = (o = a[S] || (a[S] = {}))[a.uniqueID] || (o[a.uniqueID] = {}))[h] = [k, d]), a === e) ) break; return (d -= v) === g || (d % g == 0 && 0 <= d / g); } }; }, PSEUDO: function (e, o) { var t, a = b.pseudos[e] || b.setFilters[e.toLowerCase()] || se.error("unsupported pseudo: " + e); return a[S] ? a(o) : 1 < a.length ? ((t = [e, e, "", o]), b.setFilters.hasOwnProperty(e.toLowerCase()) ? le(function (e, t) { var n, r = a(e, o), i = r.length; while (i--) e[(n = P(e, r[i]))] = !(t[n] = r[i]); }) : function (e) { return a(e, 0, t); }) : a; }, }, pseudos: { not: le(function (e) { var r = [], i = [], s = f(e.replace($, "$1")); return s[S] ? le(function (e, t, n, r) { var i, o = s(e, null, r, []), a = e.length; while (a--) (i = o[a]) && (e[a] = !(t[a] = i)); }) : function (e, t, n) { return (r[0] = e), s(r, null, n, i), (r[0] = null), !i.pop(); }; }), has: le(function (t) { return function (e) { return 0 < se(t, e).length; }; }), contains: le(function (t) { return ( (t = t.replace(te, ne)), function (e) { return -1 < (e.textContent || o(e)).indexOf(t); } ); }), lang: le(function (n) { return ( V.test(n || "") || se.error("unsupported lang: " + n), (n = n.replace(te, ne).toLowerCase()), function (e) { var t; do { if ( (t = E ? e.lang : e.getAttribute("xml:lang") || e.getAttribute("lang")) ) return ( (t = t.toLowerCase()) === n || 0 === t.indexOf(n + "-") ); } while ((e = e.parentNode) && 1 === e.nodeType); return !1; } ); }), target: function (e) { var t = n.location && n.location.hash; return t && t.slice(1) === e.id; }, root: function (e) { return e === a; }, focus: function (e) { return ( e === C.activeElement && (!C.hasFocus || C.hasFocus()) && !!(e.type || e.href || ~e.tabIndex) ); }, enabled: ge(!1), disabled: ge(!0), checked: function (e) { var t = e.nodeName.toLowerCase(); return ( ("input" === t && !!e.checked) || ("option" === t && !!e.selected) ); }, selected: function (e) { return ( e.parentNode && e.parentNode.selectedIndex, !0 === e.selected ); }, empty: function (e) { for (e = e.firstChild; e; e = e.nextSibling) if (e.nodeType < 6) return !1; return !0; }, parent: function (e) { return !b.pseudos.empty(e); }, header: function (e) { return J.test(e.nodeName); }, input: function (e) { return Q.test(e.nodeName); }, button: function (e) { var t = e.nodeName.toLowerCase(); return ("input" === t && "button" === e.type) || "button" === t; }, text: function (e) { var t; return ( "input" === e.nodeName.toLowerCase() && "text" === e.type && (null == (t = e.getAttribute("type")) || "text" === t.toLowerCase()) ); }, first: ve(function () { return [0]; }), last: ve(function (e, t) { return [t - 1]; }), eq: ve(function (e, t, n) { return [n < 0 ? n + t : n]; }), even: ve(function (e, t) { for (var n = 0; n < t; n += 2) e.push(n); return e; }), odd: ve(function (e, t) { for (var n = 1; n < t; n += 2) e.push(n); return e; }), lt: ve(function (e, t, n) { for (var r = n < 0 ? n + t : t < n ? t : n; 0 <= --r; ) e.push(r); return e; }), gt: ve(function (e, t, n) { for (var r = n < 0 ? n + t : n; ++r < t; ) e.push(r); return e; }), }, }).pseudos.nth = b.pseudos.eq), { radio: !0, checkbox: !0, file: !0, password: !0, image: !0 })) b.pseudos[e] = de(e); for (e in { submit: !0, reset: !0 }) b.pseudos[e] = he(e); function me() {} function xe(e) { for (var t = 0, n = e.length, r = ""; t < n; t++) r += e[t].value; return r; } function be(s, e, t) { var u = e.dir, l = e.next, c = l || u, f = t && "parentNode" === c, p = r++; return e.first ? function (e, t, n) { while ((e = e[u])) if (1 === e.nodeType || f) return s(e, t, n); return !1; } : function (e, t, n) { var r, i, o, a = [k, p]; if (n) { while ((e = e[u])) if ((1 === e.nodeType || f) && s(e, t, n)) return !0; } else while ((e = e[u])) if (1 === e.nodeType || f) if ( ((i = (o = e[S] || (e[S] = {}))[e.uniqueID] || (o[e.uniqueID] = {})), l && l === e.nodeName.toLowerCase()) ) e = e[u] || e; else { if ((r = i[c]) && r[0] === k && r[1] === p) return (a[2] = r[2]); if (((i[c] = a)[2] = s(e, t, n))) return !0; } return !1; }; } function we(i) { return 1 < i.length ? function (e, t, n) { var r = i.length; while (r--) if (!i[r](e, t, n)) return !1; return !0; } : i[0]; } function Te(e, t, n, r, i) { for (var o, a = [], s = 0, u = e.length, l = null != t; s < u; s++) (o = e[s]) && ((n && !n(o, r, i)) || (a.push(o), l && t.push(s))); return a; } function Ce(d, h, g, v, y, e) { return ( v && !v[S] && (v = Ce(v)), y && !y[S] && (y = Ce(y, e)), le(function (e, t, n, r) { var i, o, a, s = [], u = [], l = t.length, c = e || (function (e, t, n) { for (var r = 0, i = t.length; r < i; r++) se(e, t[r], n); return n; })(h || "*", n.nodeType ? [n] : n, []), f = !d || (!e && h) ? c : Te(c, s, d, n, r), p = g ? (y || (e ? d : l || v) ? [] : t) : f; if ((g && g(f, p, n, r), v)) { (i = Te(p, u)), v(i, [], n, r), (o = i.length); while (o--) (a = i[o]) && (p[u[o]] = !(f[u[o]] = a)); } if (e) { if (y || d) { if (y) { (i = []), (o = p.length); while (o--) (a = p[o]) && i.push((f[o] = a)); y(null, (p = []), i, r); } o = p.length; while (o--) (a = p[o]) && -1 < (i = y ? P(e, a) : s[o]) && (e[i] = !(t[i] = a)); } } else (p = Te(p === t ? p.splice(l, p.length) : p)), y ? y(null, t, p, r) : H.apply(t, p); }) ); } function Ee(e) { for ( var i, t, n, r = e.length, o = b.relative[e[0].type], a = o || b.relative[" "], s = o ? 1 : 0, u = be( function (e) { return e === i; }, a, !0 ), l = be( function (e) { return -1 < P(i, e); }, a, !0 ), c = [ function (e, t, n) { var r = (!o && (n || t !== w)) || ((i = t).nodeType ? u(e, t, n) : l(e, t, n)); return (i = null), r; }, ]; s < r; s++ ) if ((t = b.relative[e[s].type])) c = [be(we(c), t)]; else { if ((t = b.filter[e[s].type].apply(null, e[s].matches))[S]) { for (n = ++s; n < r; n++) if (b.relative[e[n].type]) break; return Ce( 1 < s && we(c), 1 < s && xe( e .slice(0, s - 1) .concat({ value: " " === e[s - 2].type ? "*" : "" }) ).replace($, "$1"), t, s < n && Ee(e.slice(s, n)), n < r && Ee((e = e.slice(n))), n < r && xe(e) ); } c.push(t); } return we(c); } return ( (me.prototype = b.filters = b.pseudos), (b.setFilters = new me()), (h = se.tokenize = function (e, t) { var n, r, i, o, a, s, u, l = x[e + " "]; if (l) return t ? 0 : l.slice(0); (a = e), (s = []), (u = b.preFilter); while (a) { for (o in ((n && !(r = _.exec(a))) || (r && (a = a.slice(r[0].length) || a), s.push((i = []))), (n = !1), (r = z.exec(a)) && ((n = r.shift()), i.push({ value: n, type: r[0].replace($, " ") }), (a = a.slice(n.length))), b.filter)) !(r = G[o].exec(a)) || (u[o] && !(r = u[o](r))) || ((n = r.shift()), i.push({ value: n, type: o, matches: r }), (a = a.slice(n.length))); if (!n) break; } return t ? a.length : a ? se.error(e) : x(e, s).slice(0); }), (f = se.compile = function (e, t) { var n, v, y, m, x, r, i = [], o = [], a = A[e + " "]; if (!a) { t || (t = h(e)), (n = t.length); while (n--) (a = Ee(t[n]))[S] ? i.push(a) : o.push(a); (a = A( e, ((v = o), (m = 0 < (y = i).length), (x = 0 < v.length), (r = function (e, t, n, r, i) { var o, a, s, u = 0, l = "0", c = e && [], f = [], p = w, d = e || (x && b.find.TAG("*", i)), h = (k += null == p ? 1 : Math.random() || 0.1), g = d.length; for ( i && (w = t == C || t || i); l !== g && null != (o = d[l]); l++ ) { if (x && o) { (a = 0), t || o.ownerDocument == C || (T(o), (n = !E)); while ((s = v[a++])) if (s(o, t || C, n)) { r.push(o); break; } i && (k = h); } m && ((o = !s && o) && u--, e && c.push(o)); } if (((u += l), m && l !== u)) { a = 0; while ((s = y[a++])) s(c, f, t, n); if (e) { if (0 < u) while (l--) c[l] || f[l] || (f[l] = q.call(r)); f = Te(f); } H.apply(r, f), i && !e && 0 < f.length && 1 < u + y.length && se.uniqueSort(r); } return i && ((k = h), (w = p)), c; }), m ? le(r) : r) )).selector = e; } return a; }), (g = se.select = function (e, t, n, r) { var i, o, a, s, u, l = "function" == typeof e && e, c = !r && h((e = l.selector || e)); if (((n = n || []), 1 === c.length)) { if ( 2 < (o = c[0] = c[0].slice(0)).length && "ID" === (a = o[0]).type && 9 === t.nodeType && E && b.relative[o[1].type] ) { if (!(t = (b.find.ID(a.matches[0].replace(te, ne), t) || [])[0])) return n; l && (t = t.parentNode), (e = e.slice(o.shift().value.length)); } i = G.needsContext.test(e) ? 0 : o.length; while (i--) { if (((a = o[i]), b.relative[(s = a.type)])) break; if ( (u = b.find[s]) && (r = u( a.matches[0].replace(te, ne), (ee.test(o[0].type) && ye(t.parentNode)) || t )) ) { if ((o.splice(i, 1), !(e = r.length && xe(o)))) return H.apply(n, r), n; break; } } } return ( (l || f(e, c))( r, t, !E, n, !t || (ee.test(e) && ye(t.parentNode)) || t ), n ); }), (d.sortStable = S.split("").sort(j).join("") === S), (d.detectDuplicates = !!l), T(), (d.sortDetached = ce(function (e) { return 1 & e.compareDocumentPosition(C.createElement("fieldset")); })), ce(function (e) { return ( (e.innerHTML = "<a href='#'></a>"), "#" === e.firstChild.getAttribute("href") ); }) || fe("type|href|height|width", function (e, t, n) { if (!n) return e.getAttribute(t, "type" === t.toLowerCase() ? 1 : 2); }), (d.attributes && ce(function (e) { return ( (e.innerHTML = "<input/>"), e.firstChild.setAttribute("value", ""), "" === e.firstChild.getAttribute("value") ); })) || fe("value", function (e, t, n) { if (!n && "input" === e.nodeName.toLowerCase()) return e.defaultValue; }), ce(function (e) { return null == e.getAttribute("disabled"); }) || fe(R, function (e, t, n) { var r; if (!n) return !0 === e[t] ? t.toLowerCase() : (r = e.getAttributeNode(t)) && r.specified ? r.value : null; }), se ); })(C); (S.find = d), (S.expr = d.selectors), (S.expr[":"] = S.expr.pseudos), (S.uniqueSort = S.unique = d.uniqueSort), (S.text = d.getText), (S.isXMLDoc = d.isXML), (S.contains = d.contains), (S.escapeSelector = d.escape); var h = function (e, t, n) { var r = [], i = void 0 !== n; while ((e = e[t]) && 9 !== e.nodeType) if (1 === e.nodeType) { if (i && S(e).is(n)) break; r.push(e); } return r; }, T = function (e, t) { for (var n = []; e; e = e.nextSibling) 1 === e.nodeType && e !== t && n.push(e); return n; }, k = S.expr.match.needsContext; function A(e, t) { return e.nodeName && e.nodeName.toLowerCase() === t.toLowerCase(); } var N = /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i; function j(e, n, r) { return m(n) ? S.grep(e, function (e, t) { return !!n.call(e, t, e) !== r; }) : n.nodeType ? S.grep(e, function (e) { return (e === n) !== r; }) : "string" != typeof n ? S.grep(e, function (e) { return -1 < i.call(n, e) !== r; }) : S.filter(n, e, r); } (S.filter = function (e, t, n) { var r = t[0]; return ( n && (e = ":not(" + e + ")"), 1 === t.length && 1 === r.nodeType ? S.find.matchesSelector(r, e) ? [r] : [] : S.find.matches( e, S.grep(t, function (e) { return 1 === e.nodeType; }) ) ); }), S.fn.extend({ find: function (e) { var t, n, r = this.length, i = this; if ("string" != typeof e) return this.pushStack( S(e).filter(function () { for (t = 0; t < r; t++) if (S.contains(i[t], this)) return !0; }) ); for (n = this.pushStack([]), t = 0; t < r; t++) S.find(e, i[t], n); return 1 < r ? S.uniqueSort(n) : n; }, filter: function (e) { return this.pushStack(j(this, e || [], !1)); }, not: function (e) { return this.pushStack(j(this, e || [], !0)); }, is: function (e) { return !!j(this, "string" == typeof e && k.test(e) ? S(e) : e || [], !1) .length; }, }); var D, q = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/; ((S.fn.init = function (e, t, n) { var r, i; if (!e) return this; if (((n = n || D), "string" == typeof e)) { if ( !(r = "<" === e[0] && ">" === e[e.length - 1] && 3 <= e.length ? [null, e, null] : q.exec(e)) || (!r[1] && t) ) return !t || t.jquery ? (t || n).find(e) : this.constructor(t).find(e); if (r[1]) { if ( ((t = t instanceof S ? t[0] : t), S.merge( this, S.parseHTML(r[1], t && t.nodeType ? t.ownerDocument || t : E, !0) ), N.test(r[1]) && S.isPlainObject(t)) ) for (r in t) m(this[r]) ? this[r](t[r]) : this.attr(r, t[r]); return this; } return ( (i = E.getElementById(r[2])) && ((this[0] = i), (this.length = 1)), this ); } return e.nodeType ? ((this[0] = e), (this.length = 1), this) : m(e) ? void 0 !== n.ready ? n.ready(e) : e(S) : S.makeArray(e, this); }).prototype = S.fn), (D = S(E)); var L = /^(?:parents|prev(?:Until|All))/, H = { children: !0, contents: !0, next: !0, prev: !0 }; function O(e, t) { while ((e = e[t]) && 1 !== e.nodeType); return e; } S.fn.extend({ has: function (e) { var t = S(e, this), n = t.length; return this.filter(function () { for (var e = 0; e < n; e++) if (S.contains(this, t[e])) return !0; }); }, closest: function (e, t) { var n, r = 0, i = this.length, o = [], a = "string" != typeof e && S(e); if (!k.test(e)) for (; r < i; r++) for (n = this[r]; n && n !== t; n = n.parentNode) if ( n.nodeType < 11 && (a ? -1 < a.index(n) : 1 === n.nodeType && S.find.matchesSelector(n, e)) ) { o.push(n); break; } return this.pushStack(1 < o.length ? S.uniqueSort(o) : o); }, index: function (e) { return e ? "string" == typeof e ? i.call(S(e), this[0]) : i.call(this, e.jquery ? e[0] : e) : this[0] && this[0].parentNode ? this.first().prevAll().length : -1; }, add: function (e, t) { return this.pushStack(S.uniqueSort(S.merge(this.get(), S(e, t)))); }, addBack: function (e) { return this.add(null == e ? this.prevObject : this.prevObject.filter(e)); }, }), S.each( { parent: function (e) { var t = e.parentNode; return t && 11 !== t.nodeType ? t : null; }, parents: function (e) { return h(e, "parentNode"); }, parentsUntil: function (e, t, n) { return h(e, "parentNode", n); }, next: function (e) { return O(e, "nextSibling"); }, prev: function (e) { return O(e, "previousSibling"); }, nextAll: function (e) { return h(e, "nextSibling"); }, prevAll: function (e) { return h(e, "previousSibling"); }, nextUntil: function (e, t, n) { return h(e, "nextSibling", n); }, prevUntil: function (e, t, n) { return h(e, "previousSibling", n); }, siblings: function (e) { return T((e.parentNode || {}).firstChild, e); }, children: function (e) { return T(e.firstChild); }, contents: function (e) { return null != e.contentDocument && r(e.contentDocument) ? e.contentDocument : (A(e, "template") && (e = e.content || e), S.merge([], e.childNodes)); }, }, function (r, i) { S.fn[r] = function (e, t) { var n = S.map(this, i, e); return ( "Until" !== r.slice(-5) && (t = e), t && "string" == typeof t && (n = S.filter(t, n)), 1 < this.length && (H[r] || S.uniqueSort(n), L.test(r) && n.reverse()), this.pushStack(n) ); }; } ); var P = /[^\x20\t\r\n\f]+/g; function R(e) { return e; } function M(e) { throw e; } function I(e, t, n, r) { var i; try { e && m((i = e.promise)) ? i.call(e).done(t).fail(n) : e && m((i = e.then)) ? i.call(e, t, n) : t.apply(void 0, [e].slice(r)); } catch (e) { n.apply(void 0, [e]); } } (S.Callbacks = function (r) { var e, n; r = "string" == typeof r ? ((e = r), (n = {}), S.each(e.match(P) || [], function (e, t) { n[t] = !0; }), n) : S.extend({}, r); var i, t, o, a, s = [], u = [], l = -1, c = function () { for (a = a || r.once, o = i = !0; u.length; l = -1) { t = u.shift(); while (++l < s.length) !1 === s[l].apply(t[0], t[1]) && r.stopOnFalse && ((l = s.length), (t = !1)); } r.memory || (t = !1), (i = !1), a && (s = t ? [] : ""); }, f = { add: function () { return ( s && (t && !i && ((l = s.length - 1), u.push(t)), (function n(e) { S.each(e, function (e, t) { m(t) ? (r.unique && f.has(t)) || s.push(t) : t && t.length && "string" !== w(t) && n(t); }); })(arguments), t && !i && c()), this ); }, remove: function () { return ( S.each(arguments, function (e, t) { var n; while (-1 < (n = S.inArray(t, s, n))) s.splice(n, 1), n <= l && l--; }), this ); }, has: function (e) { return e ? -1 < S.inArray(e, s) : 0 < s.length; }, empty: function () { return s && (s = []), this; }, disable: function () { return (a = u = []), (s = t = ""), this; }, disabled: function () { return !s; }, lock: function () { return (a = u = []), t || i || (s = t = ""), this; }, locked: function () { return !!a; }, fireWith: function (e, t) { return ( a || ((t = [e, (t = t || []).slice ? t.slice() : t]), u.push(t), i || c()), this ); }, fire: function () { return f.fireWith(this, arguments), this; }, fired: function () { return !!o; }, }; return f; }), S.extend({ Deferred: function (e) { var o = [ [ "notify", "progress", S.Callbacks("memory"), S.Callbacks("memory"), 2, ], [ "resolve", "done", S.Callbacks("once memory"), S.Callbacks("once memory"), 0, "resolved", ], [ "reject", "fail", S.Callbacks("once memory"), S.Callbacks("once memory"), 1, "rejected", ], ], i = "pending", a = { state: function () { return i; }, always: function () { return s.done(arguments).fail(arguments), this; }, catch: function (e) { return a.then(null, e); }, pipe: function () { var i = arguments; return S.Deferred(function (r) { S.each(o, function (e, t) { var n = m(i[t[4]]) && i[t[4]]; s[t[1]](function () { var e = n && n.apply(this, arguments); e && m(e.promise) ? e .promise() .progress(r.notify) .done(r.resolve) .fail(r.reject) : r[t[0] + "With"](this, n ? [e] : arguments); }); }), (i = null); }).promise(); }, then: function (t, n, r) { var u = 0; function l(i, o, a, s) { return function () { var n = this, r = arguments, e = function () { var e, t; if (!(i < u)) { if ((e = a.apply(n, r)) === o.promise()) throw new TypeError("Thenable self-resolution"); (t = e && ("object" == typeof e || "function" == typeof e) && e.then), m(t) ? s ? t.call(e, l(u, o, R, s), l(u, o, M, s)) : (u++, t.call( e, l(u, o, R, s), l(u, o, M, s), l(u, o, R, o.notifyWith) )) : (a !== R && ((n = void 0), (r = [e])), (s || o.resolveWith)(n, r)); } }, t = s ? e : function () { try { e(); } catch (e) { S.Deferred.exceptionHook && S.Deferred.exceptionHook(e, t.stackTrace), u <= i + 1 && (a !== M && ((n = void 0), (r = [e])), o.rejectWith(n, r)); } }; i ? t() : (S.Deferred.getStackHook && (t.stackTrace = S.Deferred.getStackHook()), C.setTimeout(t)); }; } return S.Deferred(function (e) { o[0][3].add(l(0, e, m(r) ? r : R, e.notifyWith)), o[1][3].add(l(0, e, m(t) ? t : R)), o[2][3].add(l(0, e, m(n) ? n : M)); }).promise(); }, promise: function (e) { return null != e ? S.extend(e, a) : a; }, }, s = {}; return ( S.each(o, function (e, t) { var n = t[2], r = t[5]; (a[t[1]] = n.add), r && n.add( function () { i = r; }, o[3 - e][2].disable, o[3 - e][3].disable, o[0][2].lock, o[0][3].lock ), n.add(t[3].fire), (s[t[0]] = function () { return ( s[t[0] + "With"](this === s ? void 0 : this, arguments), this ); }), (s[t[0] + "With"] = n.fireWith); }), a.promise(s), e && e.call(s, s), s ); }, when: function (e) { var n = arguments.length, t = n, r = Array(t), i = s.call(arguments), o = S.Deferred(), a = function (t) { return function (e) { (r[t] = this), (i[t] = 1 < arguments.length ? s.call(arguments) : e), --n || o.resolveWith(r, i); }; }; if ( n <= 1 && (I(e, o.done(a(t)).resolve, o.reject, !n), "pending" === o.state() || m(i[t] && i[t].then)) ) return o.then(); while (t--) I(i[t], a(t), o.reject); return o.promise(); }, }); var W = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/; (S.Deferred.exceptionHook = function (e, t) { C.console && C.console.warn && e && W.test(e.name) && C.console.warn("jQuery.Deferred exception: " + e.message, e.stack, t); }), (S.readyException = function (e) { C.setTimeout(function () { throw e; }); }); var F = S.Deferred(); function B() { E.removeEventListener("DOMContentLoaded", B), C.removeEventListener("load", B), S.ready(); } (S.fn.ready = function (e) { return ( F.then(e)["catch"](function (e) { S.readyException(e); }), this ); }), S.extend({ isReady: !1, readyWait: 1, ready: function (e) { (!0 === e ? --S.readyWait : S.isReady) || ((S.isReady = !0) !== e && 0 < --S.readyWait) || F.resolveWith(E, [S]); }, }), (S.ready.then = F.then), "complete" === E.readyState || ("loading" !== E.readyState && !E.documentElement.doScroll) ? C.setTimeout(S.ready) : (E.addEventListener("DOMContentLoaded", B), C.addEventListener("load", B)); var $ = function (e, t, n, r, i, o, a) { var s = 0, u = e.length, l = null == n; if ("object" === w(n)) for (s in ((i = !0), n)) $(e, t, s, n[s], !0, o, a); else if ( void 0 !== r && ((i = !0), m(r) || (a = !0), l && (a ? (t.call(e, r), (t = null)) : ((l = t), (t = function (e, t, n) { return l.call(S(e), n); }))), t) ) for (; s < u; s++) t(e[s], n, a ? r : r.call(e[s], s, t(e[s], n))); return i ? e : l ? t.call(e) : u ? t(e[0], n) : o; }, _ = /^-ms-/, z = /-([a-z])/g; function U(e, t) { return t.toUpperCase(); } function X(e) { return e.replace(_, "ms-").replace(z, U); } var V = function (e) { return 1 === e.nodeType || 9 === e.nodeType || !+e.nodeType; }; function G() { this.expando = S.expando + G.uid++; } (G.uid = 1), (G.prototype = { cache: function (e) { var t = e[this.expando]; return ( t || ((t = {}), V(e) && (e.nodeType ? (e[this.expando] = t) : Object.defineProperty(e, this.expando, { value: t, configurable: !0, }))), t ); }, set: function (e, t, n) { var r, i = this.cache(e); if ("string" == typeof t) i[X(t)] = n; else for (r in t) i[X(r)] = t[r]; return i; }, get: function (e, t) { return void 0 === t ? this.cache(e) : e[this.expando] && e[this.expando][X(t)]; }, access: function (e, t, n) { return void 0 === t || (t && "string" == typeof t && void 0 === n) ? this.get(e, t) : (this.set(e, t, n), void 0 !== n ? n : t); }, remove: function (e, t) { var n, r = e[this.expando]; if (void 0 !== r) { if (void 0 !== t) { n = (t = Array.isArray(t) ? t.map(X) : (t = X(t)) in r ? [t] : t.match(P) || []).length; while (n--) delete r[t[n]]; } (void 0 === t || S.isEmptyObject(r)) && (e.nodeType ? (e[this.expando] = void 0) : delete e[this.expando]); } }, hasData: function (e) { var t = e[this.expando]; return void 0 !== t && !S.isEmptyObject(t); }, }); var Y = new G(), Q = new G(), J = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, K = /[A-Z]/g; function Z(e, t, n) { var r, i; if (void 0 === n && 1 === e.nodeType) if ( ((r = "data-" + t.replace(K, "-$&").toLowerCase()), "string" == typeof (n = e.getAttribute(r))) ) { try { n = "true" === (i = n) || ("false" !== i && ("null" === i ? null : i === +i + "" ? +i : J.test(i) ? JSON.parse(i) : i)); } catch (e) {} Q.set(e, t, n); } else n = void 0; return n; } S.extend({ hasData: function (e) { return Q.hasData(e) || Y.hasData(e); }, data: function (e, t, n) { return Q.access(e, t, n); }, removeData: function (e, t) { Q.remove(e, t); }, _data: function (e, t, n) { return Y.access(e, t, n); }, _removeData: function (e, t) { Y.remove(e, t); }, }), S.fn.extend({ data: function (n, e) { var t, r, i, o = this[0], a = o && o.attributes; if (void 0 === n) { if ( this.length && ((i = Q.get(o)), 1 === o.nodeType && !Y.get(o, "hasDataAttrs")) ) { t = a.length; while (t--) a[t] && 0 === (r = a[t].name).indexOf("data-") && ((r = X(r.slice(5))), Z(o, r, i[r])); Y.set(o, "hasDataAttrs", !0); } return i; } return "object" == typeof n ? this.each(function () { Q.set(this, n); }) : $( this, function (e) { var t; if (o && void 0 === e) return void 0 !== (t = Q.get(o, n)) ? t : void 0 !== (t = Z(o, n)) ? t : void 0; this.each(function () { Q.set(this, n, e); }); }, null, e, 1 < arguments.length, null, !0 ); }, removeData: function (e) { return this.each(function () { Q.remove(this, e); }); }, }), S.extend({ queue: function (e, t, n) { var r; if (e) return ( (t = (t || "fx") + "queue"), (r = Y.get(e, t)), n && (!r || Array.isArray(n) ? (r = Y.access(e, t, S.makeArray(n))) : r.push(n)), r || [] ); }, dequeue: function (e, t) { t = t || "fx"; var n = S.queue(e, t), r = n.length, i = n.shift(), o = S._queueHooks(e, t); "inprogress" === i && ((i = n.shift()), r--), i && ("fx" === t && n.unshift("inprogress"), delete o.stop, i.call( e, function () { S.dequeue(e, t); }, o )), !r && o && o.empty.fire(); }, _queueHooks: function (e, t) { var n = t + "queueHooks"; return ( Y.get(e, n) || Y.access(e, n, { empty: S.Callbacks("once memory").add(function () { Y.remove(e, [t + "queue", n]); }), }) ); }, }), S.fn.extend({ queue: function (t, n) { var e = 2; return ( "string" != typeof t && ((n = t), (t = "fx"), e--), arguments.length < e ? S.queue(this[0], t) : void 0 === n ? this : this.each(function () { var e = S.queue(this, t, n); S._queueHooks(this, t), "fx" === t && "inprogress" !== e[0] && S.dequeue(this, t); }) ); }, dequeue: function (e) { return this.each(function () { S.dequeue(this, e); }); }, clearQueue: function (e) { return this.queue(e || "fx", []); }, promise: function (e, t) { var n, r = 1, i = S.Deferred(), o = this, a = this.length, s = function () { --r || i.resolveWith(o, [o]); }; "string" != typeof e && ((t = e), (e = void 0)), (e = e || "fx"); while (a--) (n = Y.get(o[a], e + "queueHooks")) && n.empty && (r++, n.empty.add(s)); return s(), i.promise(t); }, }); var ee = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source, te = new RegExp("^(?:([+-])=|)(" + ee + ")([a-z%]*)$", "i"), ne = ["Top", "Right", "Bottom", "Left"], re = E.documentElement, ie = function (e) { return S.contains(e.ownerDocument, e); }, oe = { composed: !0 }; re.getRootNode && (ie = function (e) { return ( S.contains(e.ownerDocument, e) || e.getRootNode(oe) === e.ownerDocument ); }); var ae = function (e, t) { return ( "none" === (e = t || e).style.display || ("" === e.style.display && ie(e) && "none" === S.css(e, "display")) ); }; function se(e, t, n, r) { var i, o, a = 20, s = r ? function () { return r.cur(); } : function () { return S.css(e, t, ""); }, u = s(), l = (n && n[3]) || (S.cssNumber[t] ? "" : "px"), c = e.nodeType && (S.cssNumber[t] || ("px" !== l && +u)) && te.exec(S.css(e, t)); if (c && c[3] !== l) { (u /= 2), (l = l || c[3]), (c = +u || 1); while (a--) S.style(e, t, c + l), (1 - o) * (1 - (o = s() / u || 0.5)) <= 0 && (a = 0), (c /= o); (c *= 2), S.style(e, t, c + l), (n = n || []); } return ( n && ((c = +c || +u || 0), (i = n[1] ? c + (n[1] + 1) * n[2] : +n[2]), r && ((r.unit = l), (r.start = c), (r.end = i))), i ); } var ue = {}; function le(e, t) { for (var n, r, i, o, a, s, u, l = [], c = 0, f = e.length; c < f; c++) (r = e[c]).style && ((n = r.style.display), t ? ("none" === n && ((l[c] = Y.get(r, "display") || null), l[c] || (r.style.display = "")), "" === r.style.display && ae(r) && (l[c] = ((u = a = o = void 0), (a = (i = r).ownerDocument), (s = i.nodeName), (u = ue[s]) || ((o = a.body.appendChild(a.createElement(s))), (u = S.css(o, "display")), o.parentNode.removeChild(o), "none" === u && (u = "block"), (ue[s] = u))))) : "none" !== n && ((l[c] = "none"), Y.set(r, "display", n))); for (c = 0; c < f; c++) null != l[c] && (e[c].style.display = l[c]); return e; } S.fn.extend({ show: function () { return le(this, !0); }, hide: function () { return le(this); }, toggle: function (e) { return "boolean" == typeof e ? e ? this.show() : this.hide() : this.each(function () { ae(this) ? S(this).show() : S(this).hide(); }); }, }); var ce, fe, pe = /^(?:checkbox|radio)$/i, de = /<([a-z][^\/\0>\x20\t\r\n\f]*)/i, he = /^$|^module$|\/(?:java|ecma)script/i; (ce = E.createDocumentFragment().appendChild(E.createElement("div"))), (fe = E.createElement("input")).setAttribute("type", "radio"), fe.setAttribute("checked", "checked"), fe.setAttribute("name", "t"), ce.appendChild(fe), (y.checkClone = ce.cloneNode(!0).cloneNode(!0).lastChild.checked), (ce.innerHTML = "<textarea>x</textarea>"), (y.noCloneChecked = !!ce.cloneNode(!0).lastChild.defaultValue), (ce.innerHTML = "<option></option>"), (y.option = !!ce.lastChild); var ge = { thead: [1, "<table>", "</table>"], col: [2, "<table><colgroup>", "</colgroup></table>"], tr: [2, "<table><tbody>", "</tbody></table>"], td: [3, "<table><tbody><tr>", "</tr></tbody></table>"], _default: [0, "", ""], }; function ve(e, t) { var n; return ( (n = "undefined" != typeof e.getElementsByTagName ? e.getElementsByTagName(t || "*") : "undefined" != typeof e.querySelectorAll ? e.querySelectorAll(t || "*") : []), void 0 === t || (t && A(e, t)) ? S.merge([e], n) : n ); } function ye(e, t) { for (var n = 0, r = e.length; n < r; n++) Y.set(e[n], "globalEval", !t || Y.get(t[n], "globalEval")); } (ge.tbody = ge.tfoot = ge.colgroup = ge.caption = ge.thead), (ge.th = ge.td), y.option || (ge.optgroup = ge.option = [1, "<select multiple='multiple'>", "</select>"]); var me = /<|&#?\w+;/; function xe(e, t, n, r, i) { for ( var o, a, s, u, l, c, f = t.createDocumentFragment(), p = [], d = 0, h = e.length; d < h; d++ ) if ((o = e[d]) || 0 === o) if ("object" === w(o)) S.merge(p, o.nodeType ? [o] : o); else if (me.test(o)) { (a = a || f.appendChild(t.createElement("div"))), (s = (de.exec(o) || ["", ""])[1].toLowerCase()), (u = ge[s] || ge._default), (a.innerHTML = u[1] + S.htmlPrefilter(o) + u[2]), (c = u[0]); while (c--) a = a.lastChild; S.merge(p, a.childNodes), ((a = f.firstChild).textContent = ""); } else p.push(t.createTextNode(o)); (f.textContent = ""), (d = 0); while ((o = p[d++])) if (r && -1 < S.inArray(o, r)) i && i.push(o); else if ( ((l = ie(o)), (a = ve(f.appendChild(o), "script")), l && ye(a), n) ) { c = 0; while ((o = a[c++])) he.test(o.type || "") && n.push(o); } return f; } var be = /^([^.]*)(?:\.(.+)|)/; function we() { return !0; } function Te() { return !1; } function Ce(e, t) { return ( (e === (function () { try { return E.activeElement; } catch (e) {} })()) == ("focus" === t) ); } function Ee(e, t, n, r, i, o) { var a, s; if ("object" == typeof t) { for (s in ("string" != typeof n && ((r = r || n), (n = void 0)), t)) Ee(e, s, n, r, t[s], o); return e; } if ( (null == r && null == i ? ((i = n), (r = n = void 0)) : null == i && ("string" == typeof n ? ((i = r), (r = void 0)) : ((i = r), (r = n), (n = void 0))), !1 === i) ) i = Te; else if (!i) return e; return ( 1 === o && ((a = i), ((i = function (e) { return S().off(e), a.apply(this, arguments); }).guid = a.guid || (a.guid = S.guid++))), e.each(function () { S.event.add(this, t, i, r, n); }) ); } function Se(e, i, o) { o ? (Y.set(e, i, !1), S.event.add(e, i, { namespace: !1, handler: function (e) { var t, n, r = Y.get(this, i); if (1 & e.isTrigger && this[i]) { if (r.length) (S.event.special[i] || {}).delegateType && e.stopPropagation(); else if ( ((r = s.call(arguments)), Y.set(this, i, r), (t = o(this, i)), this[i](), r !== (n = Y.get(this, i)) || t ? Y.set(this, i, !1) : (n = {}), r !== n) ) return ( e.stopImmediatePropagation(), e.preventDefault(), n && n.value ); } else r.length && (Y.set(this, i, { value: S.event.trigger( S.extend(r[0], S.Event.prototype), r.slice(1), this ), }), e.stopImmediatePropagation()); }, })) : void 0 === Y.get(e, i) && S.event.add(e, i, we); } (S.event = { global: {}, add: function (t, e, n, r, i) { var o, a, s, u, l, c, f, p, d, h, g, v = Y.get(t); if (V(t)) { n.handler && ((n = (o = n).handler), (i = o.selector)), i && S.find.matchesSelector(re, i), n.guid || (n.guid = S.guid++), (u = v.events) || (u = v.events = Object.create(null)), (a = v.handle) || (a = v.handle = function (e) { return "undefined" != typeof S && S.event.triggered !== e.type ? S.event.dispatch.apply(t, arguments) : void 0; }), (l = (e = (e || "").match(P) || [""]).length); while (l--) (d = g = (s = be.exec(e[l]) || [])[1]), (h = (s[2] || "").split(".").sort()), d && ((f = S.event.special[d] || {}), (d = (i ? f.delegateType : f.bindType) || d), (f = S.event.special[d] || {}), (c = S.extend( { type: d, origType: g, data: r, handler: n, guid: n.guid, selector: i, needsContext: i && S.expr.match.needsContext.test(i), namespace: h.join("."), }, o )), (p = u[d]) || (((p = u[d] = []).delegateCount = 0), (f.setup && !1 !== f.setup.call(t, r, h, a)) || (t.addEventListener && t.addEventListener(d, a))), f.add && (f.add.call(t, c), c.handler.guid || (c.handler.guid = n.guid)), i ? p.splice(p.delegateCount++, 0, c) : p.push(c), (S.event.global[d] = !0)); } }, remove: function (e, t, n, r, i) { var o, a, s, u, l, c, f, p, d, h, g, v = Y.hasData(e) && Y.get(e); if (v && (u = v.events)) { l = (t = (t || "").match(P) || [""]).length; while (l--) if ( ((d = g = (s = be.exec(t[l]) || [])[1]), (h = (s[2] || "").split(".").sort()), d) ) { (f = S.event.special[d] || {}), (p = u[(d = (r ? f.delegateType : f.bindType) || d)] || []), (s = s[2] && new RegExp("(^|\\.)" + h.join("\\.(?:.*\\.|)") + "(\\.|$)")), (a = o = p.length); while (o--) (c = p[o]), (!i && g !== c.origType) || (n && n.guid !== c.guid) || (s && !s.test(c.namespace)) || (r && r !== c.selector && ("**" !== r || !c.selector)) || (p.splice(o, 1), c.selector && p.delegateCount--, f.remove && f.remove.call(e, c)); a && !p.length && ((f.teardown && !1 !== f.teardown.call(e, h, v.handle)) || S.removeEvent(e, d, v.handle), delete u[d]); } else for (d in u) S.event.remove(e, d + t[l], n, r, !0); S.isEmptyObject(u) && Y.remove(e, "handle events"); } }, dispatch: function (e) { var t, n, r, i, o, a, s = new Array(arguments.length), u = S.event.fix(e), l = (Y.get(this, "events") || Object.create(null))[u.type] || [], c = S.event.special[u.type] || {}; for (s[0] = u, t = 1; t < arguments.length; t++) s[t] = arguments[t]; if ( ((u.delegateTarget = this), !c.preDispatch || !1 !== c.preDispatch.call(this, u)) ) { (a = S.event.handlers.call(this, u, l)), (t = 0); while ((i = a[t++]) && !u.isPropagationStopped()) { (u.currentTarget = i.elem), (n = 0); while ((o = i.handlers[n++]) && !u.isImmediatePropagationStopped()) (u.rnamespace && !1 !== o.namespace && !u.rnamespace.test(o.namespace)) || ((u.handleObj = o), (u.data = o.data), void 0 !== (r = ( (S.event.special[o.origType] || {}).handle || o.handler ).apply(i.elem, s)) && !1 === (u.result = r) && (u.preventDefault(), u.stopPropagation())); } return c.postDispatch && c.postDispatch.call(this, u), u.result; } }, handlers: function (e, t) { var n, r, i, o, a, s = [], u = t.delegateCount, l = e.target; if (u && l.nodeType && !("click" === e.type && 1 <= e.button)) for (; l !== this; l = l.parentNode || this) if (1 === l.nodeType && ("click" !== e.type || !0 !== l.disabled)) { for (o = [], a = {}, n = 0; n < u; n++) void 0 === a[(i = (r = t[n]).selector + " ")] && (a[i] = r.needsContext ? -1 < S(i, this).index(l) : S.find(i, this, null, [l]).length), a[i] && o.push(r); o.length && s.push({ elem: l, handlers: o }); } return ( (l = this), u < t.length && s.push({ elem: l, handlers: t.slice(u) }), s ); }, addProp: function (t, e) { Object.defineProperty(S.Event.prototype, t, { enumerable: !0, configurable: !0, get: m(e) ? function () { if (this.originalEvent) return e(this.originalEvent); } : function () { if (this.originalEvent) return this.originalEvent[t]; }, set: function (e) { Object.defineProperty(this, t, { enumerable: !0, configurable: !0, writable: !0, value: e, }); }, }); }, fix: function (e) { return e[S.expando] ? e : new S.Event(e); }, special: { load: { noBubble: !0 }, click: { setup: function (e) { var t = this || e; return ( pe.test(t.type) && t.click && A(t, "input") && Se(t, "click", we), !1 ); }, trigger: function (e) { var t = this || e; return ( pe.test(t.type) && t.click && A(t, "input") && Se(t, "click"), !0 ); }, _default: function (e) { var t = e.target; return ( (pe.test(t.type) && t.click && A(t, "input") && Y.get(t, "click")) || A(t, "a") ); }, }, beforeunload: { postDispatch: function (e) { void 0 !== e.result && e.originalEvent && (e.originalEvent.returnValue = e.result); }, }, }, }), (S.removeEvent = function (e, t, n) { e.removeEventListener && e.removeEventListener(t, n); }), (S.Event = function (e, t) { if (!(this instanceof S.Event)) return new S.Event(e, t); e && e.type ? ((this.originalEvent = e), (this.type = e.type), (this.isDefaultPrevented = e.defaultPrevented || (void 0 === e.defaultPrevented && !1 === e.returnValue) ? we : Te), (this.target = e.target && 3 === e.target.nodeType ? e.target.parentNode : e.target), (this.currentTarget = e.currentTarget), (this.relatedTarget = e.relatedTarget)) : (this.type = e), t && S.extend(this, t), (this.timeStamp = (e && e.timeStamp) || Date.now()), (this[S.expando] = !0); }), (S.Event.prototype = { constructor: S.Event, isDefaultPrevented: Te, isPropagationStopped: Te, isImmediatePropagationStopped: Te, isSimulated: !1, preventDefault: function () { var e = this.originalEvent; (this.isDefaultPrevented = we), e && !this.isSimulated && e.preventDefault(); }, stopPropagation: function () { var e = this.originalEvent; (this.isPropagationStopped = we), e && !this.isSimulated && e.stopPropagation(); }, stopImmediatePropagation: function () { var e = this.originalEvent; (this.isImmediatePropagationStopped = we), e && !this.isSimulated && e.stopImmediatePropagation(), this.stopPropagation(); }, }), S.each( { altKey: !0, bubbles: !0, cancelable: !0, changedTouches: !0, ctrlKey: !0, detail: !0, eventPhase: !0, metaKey: !0, pageX: !0, pageY: !0, shiftKey: !0, view: !0, char: !0, code: !0, charCode: !0, key: !0, keyCode: !0, button: !0, buttons: !0, clientX: !0, clientY: !0, offsetX: !0, offsetY: !0, pointerId: !0, pointerType: !0, screenX: !0, screenY: !0, targetTouches: !0, toElement: !0, touches: !0, which: !0, }, S.event.addProp ), S.each({ focus: "focusin", blur: "focusout" }, function (e, t) { S.event.special[e] = { setup: function () { return Se(this, e, Ce), !1; }, trigger: function () { return Se(this, e), !0; }, _default: function () { return !0; }, delegateType: t, }; }), S.each( { mouseenter: "mouseover", mouseleave: "mouseout", pointerenter: "pointerover", pointerleave: "pointerout", }, function (e, i) { S.event.special[e] = { delegateType: i, bindType: i, handle: function (e) { var t, n = e.relatedTarget, r = e.handleObj; return ( (n && (n === this || S.contains(this, n))) || ((e.type = r.origType), (t = r.handler.apply(this, arguments)), (e.type = i)), t ); }, }; } ), S.fn.extend({ on: function (e, t, n, r) { return Ee(this, e, t, n, r); }, one: function (e, t, n, r) { return Ee(this, e, t, n, r, 1); }, off: function (e, t, n) { var r, i; if (e && e.preventDefault && e.handleObj) return ( (r = e.handleObj), S(e.delegateTarget).off( r.namespace ? r.origType + "." + r.namespace : r.origType, r.selector, r.handler ), this ); if ("object" == typeof e) { for (i in e) this.off(i, t, e[i]); return this; } return ( (!1 !== t && "function" != typeof t) || ((n = t), (t = void 0)), !1 === n && (n = Te), this.each(function () { S.event.remove(this, e, n, t); }) ); }, }); var ke = /<script|<style|<link/i, Ae = /checked\s*(?:[^=]|=\s*.checked.)/i, Ne = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g; function je(e, t) { return ( (A(e, "table") && A(11 !== t.nodeType ? t : t.firstChild, "tr") && S(e).children("tbody")[0]) || e ); } function De(e) { return (e.type = (null !== e.getAttribute("type")) + "/" + e.type), e; } function qe(e) { return ( "true/" === (e.type || "").slice(0, 5) ? (e.type = e.type.slice(5)) : e.removeAttribute("type"), e ); } function Le(e, t) { var n, r, i, o, a, s; if (1 === t.nodeType) { if (Y.hasData(e) && (s = Y.get(e).events)) for (i in (Y.remove(t, "handle events"), s)) for (n = 0, r = s[i].length; n < r; n++) S.event.add(t, i, s[i][n]); Q.hasData(e) && ((o = Q.access(e)), (a = S.extend({}, o)), Q.set(t, a)); } } function He(n, r, i, o) { r = g(r); var e, t, a, s, u, l, c = 0, f = n.length, p = f - 1, d = r[0], h = m(d); if (h || (1 < f && "string" == typeof d && !y.checkClone && Ae.test(d))) return n.each(function (e) { var t = n.eq(e); h && (r[0] = d.call(this, e, t.html())), He(t, r, i, o); }); if ( f && ((t = (e = xe(r, n[0].ownerDocument, !1, n, o)).firstChild), 1 === e.childNodes.length && (e = t), t || o) ) { for (s = (a = S.map(ve(e, "script"), De)).length; c < f; c++) (u = e), c !== p && ((u = S.clone(u, !0, !0)), s && S.merge(a, ve(u, "script"))), i.call(n[c], u, c); if (s) for (l = a[a.length - 1].ownerDocument, S.map(a, qe), c = 0; c < s; c++) (u = a[c]), he.test(u.type || "") && !Y.access(u, "globalEval") && S.contains(l, u) && (u.src && "module" !== (u.type || "").toLowerCase() ? S._evalUrl && !u.noModule && S._evalUrl( u.src, { nonce: u.nonce || u.getAttribute("nonce") }, l ) : b(u.textContent.replace(Ne, ""), u, l)); } return n; } function Oe(e, t, n) { for (var r, i = t ? S.filter(t, e) : e, o = 0; null != (r = i[o]); o++) n || 1 !== r.nodeType || S.cleanData(ve(r)), r.parentNode && (n && ie(r) && ye(ve(r, "script")), r.parentNode.removeChild(r)); return e; } S.extend({ htmlPrefilter: function (e) { return e; }, clone: function (e, t, n) { var r, i, o, a, s, u, l, c = e.cloneNode(!0), f = ie(e); if ( !( y.noCloneChecked || (1 !== e.nodeType && 11 !== e.nodeType) || S.isXMLDoc(e) ) ) for (a = ve(c), r = 0, i = (o = ve(e)).length; r < i; r++) (s = o[r]), (u = a[r]), void 0, "input" === (l = u.nodeName.toLowerCase()) && pe.test(s.type) ? (u.checked = s.checked) : ("input" !== l && "textarea" !== l) || (u.defaultValue = s.defaultValue); if (t) if (n) for (o = o || ve(e), a = a || ve(c), r = 0, i = o.length; r < i; r++) Le(o[r], a[r]); else Le(e, c); return ( 0 < (a = ve(c, "script")).length && ye(a, !f && ve(e, "script")), c ); }, cleanData: function (e) { for (var t, n, r, i = S.event.special, o = 0; void 0 !== (n = e[o]); o++) if (V(n)) { if ((t = n[Y.expando])) { if (t.events) for (r in t.events) i[r] ? S.event.remove(n, r) : S.removeEvent(n, r, t.handle); n[Y.expando] = void 0; } n[Q.expando] && (n[Q.expando] = void 0); } }, }), S.fn.extend({ detach: function (e) { return Oe(this, e, !0); }, remove: function (e) { return Oe(this, e); }, text: function (e) { return $( this, function (e) { return void 0 === e ? S.text(this) : this.empty().each(function () { (1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType) || (this.textContent = e); }); }, null, e, arguments.length ); }, append: function () { return He(this, arguments, function (e) { (1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType) || je(this, e).appendChild(e); }); }, prepend: function () { return He(this, arguments, function (e) { if ( 1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType ) { var t = je(this, e); t.insertBefore(e, t.firstChild); } }); }, before: function () { return He(this, arguments, function (e) { this.parentNode && this.parentNode.insertBefore(e, this); }); }, after: function () { return He(this, arguments, function (e) { this.parentNode && this.parentNode.insertBefore(e, this.nextSibling); }); }, empty: function () { for (var e, t = 0; null != (e = this[t]); t++) 1 === e.nodeType && (S.cleanData(ve(e, !1)), (e.textContent = "")); return this; }, clone: function (e, t) { return ( (e = null != e && e), (t = null == t ? e : t), this.map(function () { return S.clone(this, e, t); }) ); }, html: function (e) { return $( this, function (e) { var t = this[0] || {}, n = 0, r = this.length; if (void 0 === e && 1 === t.nodeType) return t.innerHTML; if ( "string" == typeof e && !ke.test(e) && !ge[(de.exec(e) || ["", ""])[1].toLowerCase()] ) { e = S.htmlPrefilter(e); try { for (; n < r; n++) 1 === (t = this[n] || {}).nodeType && (S.cleanData(ve(t, !1)), (t.innerHTML = e)); t = 0; } catch (e) {} } t && this.empty().append(e); }, null, e, arguments.length ); }, replaceWith: function () { var n = []; return He( this, arguments, function (e) { var t = this.parentNode; S.inArray(this, n) < 0 && (S.cleanData(ve(this)), t && t.replaceChild(e, this)); }, n ); }, }), S.each( { appendTo: "append", prependTo: "prepend", insertBefore: "before", insertAfter: "after", replaceAll: "replaceWith", }, function (e, a) { S.fn[e] = function (e) { for (var t, n = [], r = S(e), i = r.length - 1, o = 0; o <= i; o++) (t = o === i ? this : this.clone(!0)), S(r[o])[a](t), u.apply(n, t.get()); return this.pushStack(n); }; } ); var Pe = new RegExp("^(" + ee + ")(?!px)[a-z%]+$", "i"), Re = function (e) { var t = e.ownerDocument.defaultView; return (t && t.opener) || (t = C), t.getComputedStyle(e); }, Me = function (e, t, n) { var r, i, o = {}; for (i in t) (o[i] = e.style[i]), (e.style[i] = t[i]); for (i in ((r = n.call(e)), t)) e.style[i] = o[i]; return r; }, Ie = new RegExp(ne.join("|"), "i"); function We(e, t, n) { var r, i, o, a, s = e.style; return ( (n = n || Re(e)) && ("" !== (a = n.getPropertyValue(t) || n[t]) || ie(e) || (a = S.style(e, t)), !y.pixelBoxStyles() && Pe.test(a) && Ie.test(t) && ((r = s.width), (i = s.minWidth), (o = s.maxWidth), (s.minWidth = s.maxWidth = s.width = a), (a = n.width), (s.width = r), (s.minWidth = i), (s.maxWidth = o))), void 0 !== a ? a + "" : a ); } function Fe(e, t) { return { get: function () { if (!e()) return (this.get = t).apply(this, arguments); delete this.get; }, }; } !(function () { function e() { if (l) { (u.style.cssText = "position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0"), (l.style.cssText = "position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%"), re.appendChild(u).appendChild(l); var e = C.getComputedStyle(l); (n = "1%" !== e.top), (s = 12 === t(e.marginLeft)), (l.style.right = "60%"), (o = 36 === t(e.right)), (r = 36 === t(e.width)), (l.style.position = "absolute"), (i = 12 === t(l.offsetWidth / 3)), re.removeChild(u), (l = null); } } function t(e) { return Math.round(parseFloat(e)); } var n, r, i, o, a, s, u = E.createElement("div"), l = E.createElement("div"); l.style && ((l.style.backgroundClip = "content-box"), (l.cloneNode(!0).style.backgroundClip = ""), (y.clearCloneStyle = "content-box" === l.style.backgroundClip), S.extend(y, { boxSizingReliable: function () { return e(), r; }, pixelBoxStyles: function () { return e(), o; }, pixelPosition: function () { return e(), n; }, reliableMarginLeft: function () { return e(), s; }, scrollboxSize: function () { return e(), i; }, reliableTrDimensions: function () { var e, t, n, r; return ( null == a && ((e = E.createElement("table")), (t = E.createElement("tr")), (n = E.createElement("div")), (e.style.cssText = "position:absolute;left:-11111px;border-collapse:separate"), (t.style.cssText = "border:1px solid"), (t.style.height = "1px"), (n.style.height = "9px"), (n.style.display = "block"), re.appendChild(e).appendChild(t).appendChild(n), (r = C.getComputedStyle(t)), (a = parseInt(r.height, 10) + parseInt(r.borderTopWidth, 10) + parseInt(r.borderBottomWidth, 10) === t.offsetHeight), re.removeChild(e)), a ); }, })); })(); var Be = ["Webkit", "Moz", "ms"], $e = E.createElement("div").style, _e = {}; function ze(e) { var t = S.cssProps[e] || _e[e]; return ( t || (e in $e ? e : (_e[e] = (function (e) { var t = e[0].toUpperCase() + e.slice(1), n = Be.length; while (n--) if ((e = Be[n] + t) in $e) return e; })(e) || e)) ); } var Ue = /^(none|table(?!-c[ea]).+)/, Xe = /^--/, Ve = { position: "absolute", visibility: "hidden", display: "block" }, Ge = { letterSpacing: "0", fontWeight: "400" }; function Ye(e, t, n) { var r = te.exec(t); return r ? Math.max(0, r[2] - (n || 0)) + (r[3] || "px") : t; } function Qe(e, t, n, r, i, o) { var a = "width" === t ? 1 : 0, s = 0, u = 0; if (n === (r ? "border" : "content")) return 0; for (; a < 4; a += 2) "margin" === n && (u += S.css(e, n + ne[a], !0, i)), r ? ("content" === n && (u -= S.css(e, "padding" + ne[a], !0, i)), "margin" !== n && (u -= S.css(e, "border" + ne[a] + "Width", !0, i))) : ((u += S.css(e, "padding" + ne[a], !0, i)), "padding" !== n ? (u += S.css(e, "border" + ne[a] + "Width", !0, i)) : (s += S.css(e, "border" + ne[a] + "Width", !0, i))); return ( !r && 0 <= o && (u += Math.max( 0, Math.ceil( e["offset" + t[0].toUpperCase() + t.slice(1)] - o - u - s - 0.5 ) ) || 0), u ); } function Je(e, t, n) { var r = Re(e), i = (!y.boxSizingReliable() || n) && "border-box" === S.css(e, "boxSizing", !1, r), o = i, a = We(e, t, r), s = "offset" + t[0].toUpperCase() + t.slice(1); if (Pe.test(a)) { if (!n) return a; a = "auto"; } return ( ((!y.boxSizingReliable() && i) || (!y.reliableTrDimensions() && A(e, "tr")) || "auto" === a || (!parseFloat(a) && "inline" === S.css(e, "display", !1, r))) && e.getClientRects().length && ((i = "border-box" === S.css(e, "boxSizing", !1, r)), (o = s in e) && (a = e[s])), (a = parseFloat(a) || 0) + Qe(e, t, n || (i ? "border" : "content"), o, r, a) + "px" ); } function Ke(e, t, n, r, i) { return new Ke.prototype.init(e, t, n, r, i); } S.extend({ cssHooks: { opacity: { get: function (e, t) { if (t) { var n = We(e, "opacity"); return "" === n ? "1" : n; } }, }, }, cssNumber: { animationIterationCount: !0, columnCount: !0, fillOpacity: !0, flexGrow: !0, flexShrink: !0, fontWeight: !0, gridArea: !0, gridColumn: !0, gridColumnEnd: !0, gridColumnStart: !0, gridRow: !0, gridRowEnd: !0, gridRowStart: !0, lineHeight: !0, opacity: !0, order: !0, orphans: !0, widows: !0, zIndex: !0, zoom: !0, }, cssProps: {}, style: function (e, t, n, r) { if (e && 3 !== e.nodeType && 8 !== e.nodeType && e.style) { var i, o, a, s = X(t), u = Xe.test(t), l = e.style; if ( (u || (t = ze(s)), (a = S.cssHooks[t] || S.cssHooks[s]), void 0 === n) ) return a && "get" in a && void 0 !== (i = a.get(e, !1, r)) ? i : l[t]; "string" === (o = typeof n) && (i = te.exec(n)) && i[1] && ((n = se(e, t, i)), (o = "number")), null != n && n == n && ("number" !== o || u || (n += (i && i[3]) || (S.cssNumber[s] ? "" : "px")), y.clearCloneStyle || "" !== n || 0 !== t.indexOf("background") || (l[t] = "inherit"), (a && "set" in a && void 0 === (n = a.set(e, n, r))) || (u ? l.setProperty(t, n) : (l[t] = n))); } }, css: function (e, t, n, r) { var i, o, a, s = X(t); return ( Xe.test(t) || (t = ze(s)), (a = S.cssHooks[t] || S.cssHooks[s]) && "get" in a && (i = a.get(e, !0, n)), void 0 === i && (i = We(e, t, r)), "normal" === i && t in Ge && (i = Ge[t]), "" === n || n ? ((o = parseFloat(i)), !0 === n || isFinite(o) ? o || 0 : i) : i ); }, }), S.each(["height", "width"], function (e, u) { S.cssHooks[u] = { get: function (e, t, n) { if (t) return !Ue.test(S.css(e, "display")) || (e.getClientRects().length && e.getBoundingClientRect().width) ? Je(e, u, n) : Me(e, Ve, function () { return Je(e, u, n); }); }, set: function (e, t, n) { var r, i = Re(e), o = !y.scrollboxSize() && "absolute" === i.position, a = (o || n) && "border-box" === S.css(e, "boxSizing", !1, i), s = n ? Qe(e, u, n, a, i) : 0; return ( a && o && (s -= Math.ceil( e["offset" + u[0].toUpperCase() + u.slice(1)] - parseFloat(i[u]) - Qe(e, u, "border", !1, i) - 0.5 )), s && (r = te.exec(t)) && "px" !== (r[3] || "px") && ((e.style[u] = t), (t = S.css(e, u))), Ye(0, t, s) ); }, }; }), (S.cssHooks.marginLeft = Fe(y.reliableMarginLeft, function (e, t) { if (t) return ( (parseFloat(We(e, "marginLeft")) || e.getBoundingClientRect().left - Me(e, { marginLeft: 0 }, function () { return e.getBoundingClientRect().left; })) + "px" ); })), S.each({ margin: "", padding: "", border: "Width" }, function (i, o) { (S.cssHooks[i + o] = { expand: function (e) { for ( var t = 0, n = {}, r = "string" == typeof e ? e.split(" ") : [e]; t < 4; t++ ) n[i + ne[t] + o] = r[t] || r[t - 2] || r[0]; return n; }, }), "margin" !== i && (S.cssHooks[i + o].set = Ye); }), S.fn.extend({ css: function (e, t) { return $( this, function (e, t, n) { var r, i, o = {}, a = 0; if (Array.isArray(t)) { for (r = Re(e), i = t.length; a < i; a++) o[t[a]] = S.css(e, t[a], !1, r); return o; } return void 0 !== n ? S.style(e, t, n) : S.css(e, t); }, e, t, 1 < arguments.length ); }, }), (((S.Tween = Ke).prototype = { constructor: Ke, init: function (e, t, n, r, i, o) { (this.elem = e), (this.prop = n), (this.easing = i || S.easing._default), (this.options = t), (this.start = this.now = this.cur()), (this.end = r), (this.unit = o || (S.cssNumber[n] ? "" : "px")); }, cur: function () { var e = Ke.propHooks[this.prop]; return e && e.get ? e.get(this) : Ke.propHooks._default.get(this); }, run: function (e) { var t, n = Ke.propHooks[this.prop]; return ( this.options.duration ? (this.pos = t = S.easing[this.easing]( e, this.options.duration * e, 0, 1, this.options.duration )) : (this.pos = t = e), (this.now = (this.end - this.start) * t + this.start), this.options.step && this.options.step.call(this.elem, this.now, this), n && n.set ? n.set(this) : Ke.propHooks._default.set(this), this ); }, }).init.prototype = Ke.prototype), ((Ke.propHooks = { _default: { get: function (e) { var t; return 1 !== e.elem.nodeType || (null != e.elem[e.prop] && null == e.elem.style[e.prop]) ? e.elem[e.prop] : (t = S.css(e.elem, e.prop, "")) && "auto" !== t ? t : 0; }, set: function (e) { S.fx.step[e.prop] ? S.fx.step[e.prop](e) : 1 !== e.elem.nodeType || (!S.cssHooks[e.prop] && null == e.elem.style[ze(e.prop)]) ? (e.elem[e.prop] = e.now) : S.style(e.elem, e.prop, e.now + e.unit); }, }, }).scrollTop = Ke.propHooks.scrollLeft = { set: function (e) { e.elem.nodeType && e.elem.parentNode && (e.elem[e.prop] = e.now); }, }), (S.easing = { linear: function (e) { return e; }, swing: function (e) { return 0.5 - Math.cos(e * Math.PI) / 2; }, _default: "swing", }), (S.fx = Ke.prototype.init), (S.fx.step = {}); var Ze, et, tt, nt, rt = /^(?:toggle|show|hide)$/, it = /queueHooks$/; function ot() { et && (!1 === E.hidden && C.requestAnimationFrame ? C.requestAnimationFrame(ot) : C.setTimeout(ot, S.fx.interval), S.fx.tick()); } function at() { return ( C.setTimeout(function () { Ze = void 0; }), (Ze = Date.now()) ); } function st(e, t) { var n, r = 0, i = { height: e }; for (t = t ? 1 : 0; r < 4; r += 2 - t) i["margin" + (n = ne[r])] = i["padding" + n] = e; return t && (i.opacity = i.width = e), i; } function ut(e, t, n) { for ( var r, i = (lt.tweeners[t] || []).concat(lt.tweeners["*"]), o = 0, a = i.length; o < a; o++ ) if ((r = i[o].call(n, t, e))) return r; } function lt(o, e, t) { var n, a, r = 0, i = lt.prefilters.length, s = S.Deferred().always(function () { delete u.elem; }), u = function () { if (a) return !1; for ( var e = Ze || at(), t = Math.max(0, l.startTime + l.duration - e), n = 1 - (t / l.duration || 0), r = 0, i = l.tweens.length; r < i; r++ ) l.tweens[r].run(n); return ( s.notifyWith(o, [l, n, t]), n < 1 && i ? t : (i || s.notifyWith(o, [l, 1, 0]), s.resolveWith(o, [l]), !1) ); }, l = s.promise({ elem: o, props: S.extend({}, e), opts: S.extend(!0, { specialEasing: {}, easing: S.easing._default }, t), originalProperties: e, originalOptions: t, startTime: Ze || at(), duration: t.duration, tweens: [], createTween: function (e, t) { var n = S.Tween( o, l.opts, e, t, l.opts.specialEasing[e] || l.opts.easing ); return l.tweens.push(n), n; }, stop: function (e) { var t = 0, n = e ? l.tweens.length : 0; if (a) return this; for (a = !0; t < n; t++) l.tweens[t].run(1); return ( e ? (s.notifyWith(o, [l, 1, 0]), s.resolveWith(o, [l, e])) : s.rejectWith(o, [l, e]), this ); }, }), c = l.props; for ( !(function (e, t) { var n, r, i, o, a; for (n in e) if ( ((i = t[(r = X(n))]), (o = e[n]), Array.isArray(o) && ((i = o[1]), (o = e[n] = o[0])), n !== r && ((e[r] = o), delete e[n]), (a = S.cssHooks[r]) && ("expand" in a)) ) for (n in ((o = a.expand(o)), delete e[r], o)) (n in e) || ((e[n] = o[n]), (t[n] = i)); else t[r] = i; })(c, l.opts.specialEasing); r < i; r++ ) if ((n = lt.prefilters[r].call(l, o, c, l.opts))) return ( m(n.stop) && (S._queueHooks(l.elem, l.opts.queue).stop = n.stop.bind(n)), n ); return ( S.map(c, ut, l), m(l.opts.start) && l.opts.start.call(o, l), l .progress(l.opts.progress) .done(l.opts.done, l.opts.complete) .fail(l.opts.fail) .always(l.opts.always), S.fx.timer(S.extend(u, { elem: o, anim: l, queue: l.opts.queue })), l ); } (S.Animation = S.extend(lt, { tweeners: { "*": [ function (e, t) { var n = this.createTween(e, t); return se(n.elem, e, te.exec(t), n), n; }, ], }, tweener: function (e, t) { m(e) ? ((t = e), (e = ["*"])) : (e = e.match(P)); for (var n, r = 0, i = e.length; r < i; r++) (n = e[r]), (lt.tweeners[n] = lt.tweeners[n] || []), lt.tweeners[n].unshift(t); }, prefilters: [ function (e, t, n) { var r, i, o, a, s, u, l, c, f = "width" in t || "height" in t, p = this, d = {}, h = e.style, g = e.nodeType && ae(e), v = Y.get(e, "fxshow"); for (r in (n.queue || (null == (a = S._queueHooks(e, "fx")).unqueued && ((a.unqueued = 0), (s = a.empty.fire), (a.empty.fire = function () { a.unqueued || s(); })), a.unqueued++, p.always(function () { p.always(function () { a.unqueued--, S.queue(e, "fx").length || a.empty.fire(); }); })), t)) if (((i = t[r]), rt.test(i))) { if ( (delete t[r], (o = o || "toggle" === i), i === (g ? "hide" : "show")) ) { if ("show" !== i || !v || void 0 === v[r]) continue; g = !0; } d[r] = (v && v[r]) || S.style(e, r); } if ((u = !S.isEmptyObject(t)) || !S.isEmptyObject(d)) for (r in (f && 1 === e.nodeType && ((n.overflow = [h.overflow, h.overflowX, h.overflowY]), null == (l = v && v.display) && (l = Y.get(e, "display")), "none" === (c = S.css(e, "display")) && (l ? (c = l) : (le([e], !0), (l = e.style.display || l), (c = S.css(e, "display")), le([e]))), ("inline" === c || ("inline-block" === c && null != l)) && "none" === S.css(e, "float") && (u || (p.done(function () { h.display = l; }), null == l && ((c = h.display), (l = "none" === c ? "" : c))), (h.display = "inline-block"))), n.overflow && ((h.overflow = "hidden"), p.always(function () { (h.overflow = n.overflow[0]), (h.overflowX = n.overflow[1]), (h.overflowY = n.overflow[2]); })), (u = !1), d)) u || (v ? "hidden" in v && (g = v.hidden) : (v = Y.access(e, "fxshow", { display: l })), o && (v.hidden = !g), g && le([e], !0), p.done(function () { for (r in (g || le([e]), Y.remove(e, "fxshow"), d)) S.style(e, r, d[r]); })), (u = ut(g ? v[r] : 0, r, p)), r in v || ((v[r] = u.start), g && ((u.end = u.start), (u.start = 0))); }, ], prefilter: function (e, t) { t ? lt.prefilters.unshift(e) : lt.prefilters.push(e); }, })), (S.speed = function (e, t, n) { var r = e && "object" == typeof e ? S.extend({}, e) : { complete: n || (!n && t) || (m(e) && e), duration: e, easing: (n && t) || (t && !m(t) && t), }; return ( S.fx.off ? (r.duration = 0) : "number" != typeof r.duration && (r.duration in S.fx.speeds ? (r.duration = S.fx.speeds[r.duration]) : (r.duration = S.fx.speeds._default)), (null != r.queue && !0 !== r.queue) || (r.queue = "fx"), (r.old = r.complete), (r.complete = function () { m(r.old) && r.old.call(this), r.queue && S.dequeue(this, r.queue); }), r ); }), S.fn.extend({ fadeTo: function (e, t, n, r) { return this.filter(ae) .css("opacity", 0) .show() .end() .animate({ opacity: t }, e, n, r); }, animate: function (t, e, n, r) { var i = S.isEmptyObject(t), o = S.speed(e, n, r), a = function () { var e = lt(this, S.extend({}, t), o); (i || Y.get(this, "finish")) && e.stop(!0); }; return ( (a.finish = a), i || !1 === o.queue ? this.each(a) : this.queue(o.queue, a) ); }, stop: function (i, e, o) { var a = function (e) { var t = e.stop; delete e.stop, t(o); }; return ( "string" != typeof i && ((o = e), (e = i), (i = void 0)), e && this.queue(i || "fx", []), this.each(function () { var e = !0, t = null != i && i + "queueHooks", n = S.timers, r = Y.get(this); if (t) r[t] && r[t].stop && a(r[t]); else for (t in r) r[t] && r[t].stop && it.test(t) && a(r[t]); for (t = n.length; t--; ) n[t].elem !== this || (null != i && n[t].queue !== i) || (n[t].anim.stop(o), (e = !1), n.splice(t, 1)); (!e && o) || S.dequeue(this, i); }) ); }, finish: function (a) { return ( !1 !== a && (a = a || "fx"), this.each(function () { var e, t = Y.get(this), n = t[a + "queue"], r = t[a + "queueHooks"], i = S.timers, o = n ? n.length : 0; for ( t.finish = !0, S.queue(this, a, []), r && r.stop && r.stop.call(this, !0), e = i.length; e--; ) i[e].elem === this && i[e].queue === a && (i[e].anim.stop(!0), i.splice(e, 1)); for (e = 0; e < o; e++) n[e] && n[e].finish && n[e].finish.call(this); delete t.finish; }) ); }, }), S.each(["toggle", "show", "hide"], function (e, r) { var i = S.fn[r]; S.fn[r] = function (e, t, n) { return null == e || "boolean" == typeof e ? i.apply(this, arguments) : this.animate(st(r, !0), e, t, n); }; }), S.each( { slideDown: st("show"), slideUp: st("hide"), slideToggle: st("toggle"), fadeIn: { opacity: "show" }, fadeOut: { opacity: "hide" }, fadeToggle: { opacity: "toggle" }, }, function (e, r) { S.fn[e] = function (e, t, n) { return this.animate(r, e, t, n); }; } ), (S.timers = []), (S.fx.tick = function () { var e, t = 0, n = S.timers; for (Ze = Date.now(); t < n.length; t++) (e = n[t])() || n[t] !== e || n.splice(t--, 1); n.length || S.fx.stop(), (Ze = void 0); }), (S.fx.timer = function (e) { S.timers.push(e), S.fx.start(); }), (S.fx.interval = 13), (S.fx.start = function () { et || ((et = !0), ot()); }), (S.fx.stop = function () { et = null; }), (S.fx.speeds = { slow: 600, fast: 200, _default: 400 }), (S.fn.delay = function (r, e) { return ( (r = (S.fx && S.fx.speeds[r]) || r), (e = e || "fx"), this.queue(e, function (e, t) { var n = C.setTimeout(e, r); t.stop = function () { C.clearTimeout(n); }; }) ); }), (tt = E.createElement("input")), (nt = E.createElement("select").appendChild(E.createElement("option"))), (tt.type = "checkbox"), (y.checkOn = "" !== tt.value), (y.optSelected = nt.selected), ((tt = E.createElement("input")).value = "t"), (tt.type = "radio"), (y.radioValue = "t" === tt.value); var ct, ft = S.expr.attrHandle; S.fn.extend({ attr: function (e, t) { return $(this, S.attr, e, t, 1 < arguments.length); }, removeAttr: function (e) { return this.each(function () { S.removeAttr(this, e); }); }, }), S.extend({ attr: function (e, t, n) { var r, i, o = e.nodeType; if (3 !== o && 8 !== o && 2 !== o) return "undefined" == typeof e.getAttribute ? S.prop(e, t, n) : ((1 === o && S.isXMLDoc(e)) || (i = S.attrHooks[t.toLowerCase()] || (S.expr.match.bool.test(t) ? ct : void 0)), void 0 !== n ? null === n ? void S.removeAttr(e, t) : i && "set" in i && void 0 !== (r = i.set(e, n, t)) ? r : (e.setAttribute(t, n + ""), n) : i && "get" in i && null !== (r = i.get(e, t)) ? r : null == (r = S.find.attr(e, t)) ? void 0 : r); }, attrHooks: { type: { set: function (e, t) { if (!y.radioValue && "radio" === t && A(e, "input")) { var n = e.value; return e.setAttribute("type", t), n && (e.value = n), t; } }, }, }, removeAttr: function (e, t) { var n, r = 0, i = t && t.match(P); if (i && 1 === e.nodeType) while ((n = i[r++])) e.removeAttribute(n); }, }), (ct = { set: function (e, t, n) { return !1 === t ? S.removeAttr(e, n) : e.setAttribute(n, n), n; }, }), S.each(S.expr.match.bool.source.match(/\w+/g), function (e, t) { var a = ft[t] || S.find.attr; ft[t] = function (e, t, n) { var r, i, o = t.toLowerCase(); return ( n || ((i = ft[o]), (ft[o] = r), (r = null != a(e, t, n) ? o : null), (ft[o] = i)), r ); }; }); var pt = /^(?:input|select|textarea|button)$/i, dt = /^(?:a|area)$/i; function ht(e) { return (e.match(P) || []).join(" "); } function gt(e) { return (e.getAttribute && e.getAttribute("class")) || ""; } function vt(e) { return Array.isArray(e) ? e : ("string" == typeof e && e.match(P)) || []; } S.fn.extend({ prop: function (e, t) { return $(this, S.prop, e, t, 1 < arguments.length); }, removeProp: function (e) { return this.each(function () { delete this[S.propFix[e] || e]; }); }, }), S.extend({ prop: function (e, t, n) { var r, i, o = e.nodeType; if (3 !== o && 8 !== o && 2 !== o) return ( (1 === o && S.isXMLDoc(e)) || ((t = S.propFix[t] || t), (i = S.propHooks[t])), void 0 !== n ? i && "set" in i && void 0 !== (r = i.set(e, n, t)) ? r : (e[t] = n) : i && "get" in i && null !== (r = i.get(e, t)) ? r : e[t] ); }, propHooks: { tabIndex: { get: function (e) { var t = S.find.attr(e, "tabindex"); return t ? parseInt(t, 10) : pt.test(e.nodeName) || (dt.test(e.nodeName) && e.href) ? 0 : -1; }, }, }, propFix: { for: "htmlFor", class: "className" }, }), y.optSelected || (S.propHooks.selected = { get: function (e) { var t = e.parentNode; return t && t.parentNode && t.parentNode.selectedIndex, null; }, set: function (e) { var t = e.parentNode; t && (t.selectedIndex, t.parentNode && t.parentNode.selectedIndex); }, }), S.each( [ "tabIndex", "readOnly", "maxLength", "cellSpacing", "cellPadding", "rowSpan", "colSpan", "useMap", "frameBorder", "contentEditable", ], function () { S.propFix[this.toLowerCase()] = this; } ), S.fn.extend({ addClass: function (t) { var e, n, r, i, o, a, s, u = 0; if (m(t)) return this.each(function (e) { S(this).addClass(t.call(this, e, gt(this))); }); if ((e = vt(t)).length) while ((n = this[u++])) if (((i = gt(n)), (r = 1 === n.nodeType && " " + ht(i) + " "))) { a = 0; while ((o = e[a++])) r.indexOf(" " + o + " ") < 0 && (r += o + " "); i !== (s = ht(r)) && n.setAttribute("class", s); } return this; }, removeClass: function (t) { var e, n, r, i, o, a, s, u = 0; if (m(t)) return this.each(function (e) { S(this).removeClass(t.call(this, e, gt(this))); }); if (!arguments.length) return this.attr("class", ""); if ((e = vt(t)).length) while ((n = this[u++])) if (((i = gt(n)), (r = 1 === n.nodeType && " " + ht(i) + " "))) { a = 0; while ((o = e[a++])) while (-1 < r.indexOf(" " + o + " ")) r = r.replace(" " + o + " ", " "); i !== (s = ht(r)) && n.setAttribute("class", s); } return this; }, toggleClass: function (i, t) { var o = typeof i, a = "string" === o || Array.isArray(i); return "boolean" == typeof t && a ? t ? this.addClass(i) : this.removeClass(i) : m(i) ? this.each(function (e) { S(this).toggleClass(i.call(this, e, gt(this), t), t); }) : this.each(function () { var e, t, n, r; if (a) { (t = 0), (n = S(this)), (r = vt(i)); while ((e = r[t++])) n.hasClass(e) ? n.removeClass(e) : n.addClass(e); } else (void 0 !== i && "boolean" !== o) || ((e = gt(this)) && Y.set(this, "__className__", e), this.setAttribute && this.setAttribute("class", e || !1 === i ? "" : Y.get(this, "__className__") || "")); }); }, hasClass: function (e) { var t, n, r = 0; t = " " + e + " "; while ((n = this[r++])) if (1 === n.nodeType && -1 < (" " + ht(gt(n)) + " ").indexOf(t)) return !0; return !1; }, }); var yt = /\r/g; S.fn.extend({ val: function (n) { var r, e, i, t = this[0]; return arguments.length ? ((i = m(n)), this.each(function (e) { var t; 1 === this.nodeType && (null == (t = i ? n.call(this, e, S(this).val()) : n) ? (t = "") : "number" == typeof t ? (t += "") : Array.isArray(t) && (t = S.map(t, function (e) { return null == e ? "" : e + ""; })), ((r = S.valHooks[this.type] || S.valHooks[this.nodeName.toLowerCase()]) && "set" in r && void 0 !== r.set(this, t, "value")) || (this.value = t)); })) : t ? (r = S.valHooks[t.type] || S.valHooks[t.nodeName.toLowerCase()]) && "get" in r && void 0 !== (e = r.get(t, "value")) ? e : "string" == typeof (e = t.value) ? e.replace(yt, "") : null == e ? "" : e : void 0; }, }), S.extend({ valHooks: { option: { get: function (e) { var t = S.find.attr(e, "value"); return null != t ? t : ht(S.text(e)); }, }, select: { get: function (e) { var t, n, r, i = e.options, o = e.selectedIndex, a = "select-one" === e.type, s = a ? null : [], u = a ? o + 1 : i.length; for (r = o < 0 ? u : a ? o : 0; r < u; r++) if ( ((n = i[r]).selected || r === o) && !n.disabled && (!n.parentNode.disabled || !A(n.parentNode, "optgroup")) ) { if (((t = S(n).val()), a)) return t; s.push(t); } return s; }, set: function (e, t) { var n, r, i = e.options, o = S.makeArray(t), a = i.length; while (a--) ((r = i[a]).selected = -1 < S.inArray(S.valHooks.option.get(r), o)) && (n = !0); return n || (e.selectedIndex = -1), o; }, }, }, }), S.each(["radio", "checkbox"], function () { (S.valHooks[this] = { set: function (e, t) { if (Array.isArray(t)) return (e.checked = -1 < S.inArray(S(e).val(), t)); }, }), y.checkOn || (S.valHooks[this].get = function (e) { return null === e.getAttribute("value") ? "on" : e.value; }); }), (y.focusin = "onfocusin" in C); var mt = /^(?:focusinfocus|focusoutblur)$/, xt = function (e) { e.stopPropagation(); }; S.extend(S.event, { trigger: function (e, t, n, r) { var i, o, a, s, u, l, c, f, p = [n || E], d = v.call(e, "type") ? e.type : e, h = v.call(e, "namespace") ? e.namespace.split(".") : []; if ( ((o = f = a = n = n || E), 3 !== n.nodeType && 8 !== n.nodeType && !mt.test(d + S.event.triggered) && (-1 < d.indexOf(".") && ((d = (h = d.split(".")).shift()), h.sort()), (u = d.indexOf(":") < 0 && "on" + d), ((e = e[S.expando] ? e : new S.Event(d, "object" == typeof e && e)).isTrigger = r ? 2 : 3), (e.namespace = h.join(".")), (e.rnamespace = e.namespace ? new RegExp("(^|\\.)" + h.join("\\.(?:.*\\.|)") + "(\\.|$)") : null), (e.result = void 0), e.target || (e.target = n), (t = null == t ? [e] : S.makeArray(t, [e])), (c = S.event.special[d] || {}), r || !c.trigger || !1 !== c.trigger.apply(n, t))) ) { if (!r && !c.noBubble && !x(n)) { for ( s = c.delegateType || d, mt.test(s + d) || (o = o.parentNode); o; o = o.parentNode ) p.push(o), (a = o); a === (n.ownerDocument || E) && p.push(a.defaultView || a.parentWindow || C); } i = 0; while ((o = p[i++]) && !e.isPropagationStopped()) (f = o), (e.type = 1 < i ? s : c.bindType || d), (l = (Y.get(o, "events") || Object.create(null))[e.type] && Y.get(o, "handle")) && l.apply(o, t), (l = u && o[u]) && l.apply && V(o) && ((e.result = l.apply(o, t)), !1 === e.result && e.preventDefault()); return ( (e.type = d), r || e.isDefaultPrevented() || (c._default && !1 !== c._default.apply(p.pop(), t)) || !V(n) || (u && m(n[d]) && !x(n) && ((a = n[u]) && (n[u] = null), (S.event.triggered = d), e.isPropagationStopped() && f.addEventListener(d, xt), n[d](), e.isPropagationStopped() && f.removeEventListener(d, xt), (S.event.triggered = void 0), a && (n[u] = a))), e.result ); } }, simulate: function (e, t, n) { var r = S.extend(new S.Event(), n, { type: e, isSimulated: !0 }); S.event.trigger(r, null, t); }, }), S.fn.extend({ trigger: function (e, t) { return this.each(function () { S.event.trigger(e, t, this); }); }, triggerHandler: function (e, t) { var n = this[0]; if (n) return S.event.trigger(e, t, n, !0); }, }), y.focusin || S.each({ focus: "focusin", blur: "focusout" }, function (n, r) { var i = function (e) { S.event.simulate(r, e.target, S.event.fix(e)); }; S.event.special[r] = { setup: function () { var e = this.ownerDocument || this.document || this, t = Y.access(e, r); t || e.addEventListener(n, i, !0), Y.access(e, r, (t || 0) + 1); }, teardown: function () { var e = this.ownerDocument || this.document || this, t = Y.access(e, r) - 1; t ? Y.access(e, r, t) : (e.removeEventListener(n, i, !0), Y.remove(e, r)); }, }; }); var bt = C.location, wt = { guid: Date.now() }, Tt = /\?/; S.parseXML = function (e) { var t, n; if (!e || "string" != typeof e) return null; try { t = new C.DOMParser().parseFromString(e, "text/xml"); } catch (e) {} return ( (n = t && t.getElementsByTagName("parsererror")[0]), (t && !n) || S.error( "Invalid XML: " + (n ? S.map(n.childNodes, function (e) { return e.textContent; }).join("\n") : e) ), t ); }; var Ct = /\[\]$/, Et = /\r?\n/g, St = /^(?:submit|button|image|reset|file)$/i, kt = /^(?:input|select|textarea|keygen)/i; function At(n, e, r, i) { var t; if (Array.isArray(e)) S.each(e, function (e, t) { r || Ct.test(n) ? i(n, t) : At( n + "[" + ("object" == typeof t && null != t ? e : "") + "]", t, r, i ); }); else if (r || "object" !== w(e)) i(n, e); else for (t in e) At(n + "[" + t + "]", e[t], r, i); } (S.param = function (e, t) { var n, r = [], i = function (e, t) { var n = m(t) ? t() : t; r[r.length] = encodeURIComponent(e) + "=" + encodeURIComponent(null == n ? "" : n); }; if (null == e) return ""; if (Array.isArray(e) || (e.jquery && !S.isPlainObject(e))) S.each(e, function () { i(this.name, this.value); }); else for (n in e) At(n, e[n], t, i); return r.join("&"); }), S.fn.extend({ serialize: function () { return S.param(this.serializeArray()); }, serializeArray: function () { return this.map(function () { var e = S.prop(this, "elements"); return e ? S.makeArray(e) : this; }) .filter(function () { var e = this.type; return ( this.name && !S(this).is(":disabled") && kt.test(this.nodeName) && !St.test(e) && (this.checked || !pe.test(e)) ); }) .map(function (e, t) { var n = S(this).val(); return null == n ? null : Array.isArray(n) ? S.map(n, function (e) { return { name: t.name, value: e.replace(Et, "\r\n") }; }) : { name: t.name, value: n.replace(Et, "\r\n") }; }) .get(); }, }); var Nt = /%20/g, jt = /#.*$/, Dt = /([?&])_=[^&]*/, qt = /^(.*?):[ \t]*([^\r\n]*)$/gm, Lt = /^(?:GET|HEAD)$/, Ht = /^\/\//, Ot = {}, Pt = {}, Rt = "*/".concat("*"), Mt = E.createElement("a"); function It(o) { return function (e, t) { "string" != typeof e && ((t = e), (e = "*")); var n, r = 0, i = e.toLowerCase().match(P) || []; if (m(t)) while ((n = i[r++])) "+" === n[0] ? ((n = n.slice(1) || "*"), (o[n] = o[n] || []).unshift(t)) : (o[n] = o[n] || []).push(t); }; } function Wt(t, i, o, a) { var s = {}, u = t === Pt; function l(e) { var r; return ( (s[e] = !0), S.each(t[e] || [], function (e, t) { var n = t(i, o, a); return "string" != typeof n || u || s[n] ? u ? !(r = n) : void 0 : (i.dataTypes.unshift(n), l(n), !1); }), r ); } return l(i.dataTypes[0]) || (!s["*"] && l("*")); } function Ft(e, t) { var n, r, i = S.ajaxSettings.flatOptions || {}; for (n in t) void 0 !== t[n] && ((i[n] ? e : r || (r = {}))[n] = t[n]); return r && S.extend(!0, e, r), e; } (Mt.href = bt.href), S.extend({ active: 0, lastModified: {}, etag: {}, ajaxSettings: { url: bt.href, type: "GET", isLocal: /^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test( bt.protocol ), global: !0, processData: !0, async: !0, contentType: "application/x-www-form-urlencoded; charset=UTF-8", accepts: { "*": Rt, text: "text/plain", html: "text/html", xml: "application/xml, text/xml", json: "application/json, text/javascript", }, contents: { xml: /\bxml\b/, html: /\bhtml/, json: /\bjson\b/ }, responseFields: { xml: "responseXML", text: "responseText", json: "responseJSON", }, converters: { "* text": String, "text html": !0, "text json": JSON.parse, "text xml": S.parseXML, }, flatOptions: { url: !0, context: !0 }, }, ajaxSetup: function (e, t) { return t ? Ft(Ft(e, S.ajaxSettings), t) : Ft(S.ajaxSettings, e); }, ajaxPrefilter: It(Ot), ajaxTransport: It(Pt), ajax: function (e, t) { "object" == typeof e && ((t = e), (e = void 0)), (t = t || {}); var c, f, p, n, d, r, h, g, i, o, v = S.ajaxSetup({}, t), y = v.context || v, m = v.context && (y.nodeType || y.jquery) ? S(y) : S.event, x = S.Deferred(), b = S.Callbacks("once memory"), w = v.statusCode || {}, a = {}, s = {}, u = "canceled", T = { readyState: 0, getResponseHeader: function (e) { var t; if (h) { if (!n) { n = {}; while ((t = qt.exec(p))) n[t[1].toLowerCase() + " "] = ( n[t[1].toLowerCase() + " "] || [] ).concat(t[2]); } t = n[e.toLowerCase() + " "]; } return null == t ? null : t.join(", "); }, getAllResponseHeaders: function () { return h ? p : null; }, setRequestHeader: function (e, t) { return ( null == h && ((e = s[e.toLowerCase()] = s[e.toLowerCase()] || e), (a[e] = t)), this ); }, overrideMimeType: function (e) { return null == h && (v.mimeType = e), this; }, statusCode: function (e) { var t; if (e) if (h) T.always(e[T.status]); else for (t in e) w[t] = [w[t], e[t]]; return this; }, abort: function (e) { var t = e || u; return c && c.abort(t), l(0, t), this; }, }; if ( (x.promise(T), (v.url = ((e || v.url || bt.href) + "").replace( Ht, bt.protocol + "//" )), (v.type = t.method || t.type || v.method || v.type), (v.dataTypes = (v.dataType || "*").toLowerCase().match(P) || [""]), null == v.crossDomain) ) { r = E.createElement("a"); try { (r.href = v.url), (r.href = r.href), (v.crossDomain = Mt.protocol + "//" + Mt.host != r.protocol + "//" + r.host); } catch (e) { v.crossDomain = !0; } } if ( (v.data && v.processData && "string" != typeof v.data && (v.data = S.param(v.data, v.traditional)), Wt(Ot, v, t, T), h) ) return T; for (i in ((g = S.event && v.global) && 0 == S.active++ && S.event.trigger("ajaxStart"), (v.type = v.type.toUpperCase()), (v.hasContent = !Lt.test(v.type)), (f = v.url.replace(jt, "")), v.hasContent ? v.data && v.processData && 0 === (v.contentType || "").indexOf( "application/x-www-form-urlencoded" ) && (v.data = v.data.replace(Nt, "+")) : ((o = v.url.slice(f.length)), v.data && (v.processData || "string" == typeof v.data) && ((f += (Tt.test(f) ? "&" : "?") + v.data), delete v.data), !1 === v.cache && ((f = f.replace(Dt, "$1")), (o = (Tt.test(f) ? "&" : "?") + "_=" + wt.guid++ + o)), (v.url = f + o)), v.ifModified && (S.lastModified[f] && T.setRequestHeader("If-Modified-Since", S.lastModified[f]), S.etag[f] && T.setRequestHeader("If-None-Match", S.etag[f])), ((v.data && v.hasContent && !1 !== v.contentType) || t.contentType) && T.setRequestHeader("Content-Type", v.contentType), T.setRequestHeader( "Accept", v.dataTypes[0] && v.accepts[v.dataTypes[0]] ? v.accepts[v.dataTypes[0]] + ("*" !== v.dataTypes[0] ? ", " + Rt + "; q=0.01" : "") : v.accepts["*"] ), v.headers)) T.setRequestHeader(i, v.headers[i]); if (v.beforeSend && (!1 === v.beforeSend.call(y, T, v) || h)) return T.abort(); if ( ((u = "abort"), b.add(v.complete), T.done(v.success), T.fail(v.error), (c = Wt(Pt, v, t, T))) ) { if (((T.readyState = 1), g && m.trigger("ajaxSend", [T, v]), h)) return T; v.async && 0 < v.timeout && (d = C.setTimeout(function () { T.abort("timeout"); }, v.timeout)); try { (h = !1), c.send(a, l); } catch (e) { if (h) throw e; l(-1, e); } } else l(-1, "No Transport"); function l(e, t, n, r) { var i, o, a, s, u, l = t; h || ((h = !0), d && C.clearTimeout(d), (c = void 0), (p = r || ""), (T.readyState = 0 < e ? 4 : 0), (i = (200 <= e && e < 300) || 304 === e), n && (s = (function (e, t, n) { var r, i, o, a, s = e.contents, u = e.dataTypes; while ("*" === u[0]) u.shift(), void 0 === r && (r = e.mimeType || t.getResponseHeader("Content-Type")); if (r) for (i in s) if (s[i] && s[i].test(r)) { u.unshift(i); break; } if (u[0] in n) o = u[0]; else { for (i in n) { if (!u[0] || e.converters[i + " " + u[0]]) { o = i; break; } a || (a = i); } o = o || a; } if (o) return o !== u[0] && u.unshift(o), n[o]; })(v, T, n)), !i && -1 < S.inArray("script", v.dataTypes) && S.inArray("json", v.dataTypes) < 0 && (v.converters["text script"] = function () {}), (s = (function (e, t, n, r) { var i, o, a, s, u, l = {}, c = e.dataTypes.slice(); if (c[1]) for (a in e.converters) l[a.toLowerCase()] = e.converters[a]; o = c.shift(); while (o) if ( (e.responseFields[o] && (n[e.responseFields[o]] = t), !u && r && e.dataFilter && (t = e.dataFilter(t, e.dataType)), (u = o), (o = c.shift())) ) if ("*" === o) o = u; else if ("*" !== u && u !== o) { if (!(a = l[u + " " + o] || l["* " + o])) for (i in l) if ( (s = i.split(" "))[1] === o && (a = l[u + " " + s[0]] || l["* " + s[0]]) ) { !0 === a ? (a = l[i]) : !0 !== l[i] && ((o = s[0]), c.unshift(s[1])); break; } if (!0 !== a) if (a && e["throws"]) t = a(t); else try { t = a(t); } catch (e) { return { state: "parsererror", error: a ? e : "No conversion from " + u + " to " + o, }; } } return { state: "success", data: t }; })(v, s, T, i)), i ? (v.ifModified && ((u = T.getResponseHeader("Last-Modified")) && (S.lastModified[f] = u), (u = T.getResponseHeader("etag")) && (S.etag[f] = u)), 204 === e || "HEAD" === v.type ? (l = "nocontent") : 304 === e ? (l = "notmodified") : ((l = s.state), (o = s.data), (i = !(a = s.error)))) : ((a = l), (!e && l) || ((l = "error"), e < 0 && (e = 0))), (T.status = e), (T.statusText = (t || l) + ""), i ? x.resolveWith(y, [o, l, T]) : x.rejectWith(y, [T, l, a]), T.statusCode(w), (w = void 0), g && m.trigger(i ? "ajaxSuccess" : "ajaxError", [T, v, i ? o : a]), b.fireWith(y, [T, l]), g && (m.trigger("ajaxComplete", [T, v]), --S.active || S.event.trigger("ajaxStop"))); } return T; }, getJSON: function (e, t, n) { return S.get(e, t, n, "json"); }, getScript: function (e, t) { return S.get(e, void 0, t, "script"); }, }), S.each(["get", "post"], function (e, i) { S[i] = function (e, t, n, r) { return ( m(t) && ((r = r || n), (n = t), (t = void 0)), S.ajax( S.extend( { url: e, type: i, dataType: r, data: t, success: n }, S.isPlainObject(e) && e ) ) ); }; }), S.ajaxPrefilter(function (e) { var t; for (t in e.headers) "content-type" === t.toLowerCase() && (e.contentType = e.headers[t] || ""); }), (S._evalUrl = function (e, t, n) { return S.ajax({ url: e, type: "GET", dataType: "script", cache: !0, async: !1, global: !1, converters: { "text script": function () {} }, dataFilter: function (e) { S.globalEval(e, t, n); }, }); }), S.fn.extend({ wrapAll: function (e) { var t; return ( this[0] && (m(e) && (e = e.call(this[0])), (t = S(e, this[0].ownerDocument).eq(0).clone(!0)), this[0].parentNode && t.insertBefore(this[0]), t .map(function () { var e = this; while (e.firstElementChild) e = e.firstElementChild; return e; }) .append(this)), this ); }, wrapInner: function (n) { return m(n) ? this.each(function (e) { S(this).wrapInner(n.call(this, e)); }) : this.each(function () { var e = S(this), t = e.contents(); t.length ? t.wrapAll(n) : e.append(n); }); }, wrap: function (t) { var n = m(t); return this.each(function (e) { S(this).wrapAll(n ? t.call(this, e) : t); }); }, unwrap: function (e) { return ( this.parent(e) .not("body") .each(function () { S(this).replaceWith(this.childNodes); }), this ); }, }), (S.expr.pseudos.hidden = function (e) { return !S.expr.pseudos.visible(e); }), (S.expr.pseudos.visible = function (e) { return !!(e.offsetWidth || e.offsetHeight || e.getClientRects().length); }), (S.ajaxSettings.xhr = function () { try { return new C.XMLHttpRequest(); } catch (e) {} }); var Bt = { 0: 200, 1223: 204 }, $t = S.ajaxSettings.xhr(); (y.cors = !!$t && "withCredentials" in $t), (y.ajax = $t = !!$t), S.ajaxTransport(function (i) { var o, a; if (y.cors || ($t && !i.crossDomain)) return { send: function (e, t) { var n, r = i.xhr(); if ( (r.open(i.type, i.url, i.async, i.username, i.password), i.xhrFields) ) for (n in i.xhrFields) r[n] = i.xhrFields[n]; for (n in (i.mimeType && r.overrideMimeType && r.overrideMimeType(i.mimeType), i.crossDomain || e["X-Requested-With"] || (e["X-Requested-With"] = "XMLHttpRequest"), e)) r.setRequestHeader(n, e[n]); (o = function (e) { return function () { o && ((o = a = r.onload = r.onerror = r.onabort = r.ontimeout = r.onreadystatechange = null), "abort" === e ? r.abort() : "error" === e ? "number" != typeof r.status ? t(0, "error") : t(r.status, r.statusText) : t( Bt[r.status] || r.status, r.statusText, "text" !== (r.responseType || "text") || "string" != typeof r.responseText ? { binary: r.response } : { text: r.responseText }, r.getAllResponseHeaders() )); }; }), (r.onload = o()), (a = r.onerror = r.ontimeout = o("error")), void 0 !== r.onabort ? (r.onabort = a) : (r.onreadystatechange = function () { 4 === r.readyState && C.setTimeout(function () { o && a(); }); }), (o = o("abort")); try { r.send((i.hasContent && i.data) || null); } catch (e) { if (o) throw e; } }, abort: function () { o && o(); }, }; }), S.ajaxPrefilter(function (e) { e.crossDomain && (e.contents.script = !1); }), S.ajaxSetup({ accepts: { script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript", }, contents: { script: /\b(?:java|ecma)script\b/ }, converters: { "text script": function (e) { return S.globalEval(e), e; }, }, }), S.ajaxPrefilter("script", function (e) { void 0 === e.cache && (e.cache = !1), e.crossDomain && (e.type = "GET"); }), S.ajaxTransport("script", function (n) { var r, i; if (n.crossDomain || n.scriptAttrs) return { send: function (e, t) { (r = S("<script>") .attr(n.scriptAttrs || {}) .prop({ charset: n.scriptCharset, src: n.url }) .on( "load error", (i = function (e) { r.remove(), (i = null), e && t("error" === e.type ? 404 : 200, e.type); }) )), E.head.appendChild(r[0]); }, abort: function () { i && i(); }, }; }); var _t, zt = [], Ut = /(=)\?(?=&|$)|\?\?/; S.ajaxSetup({ jsonp: "callback", jsonpCallback: function () { var e = zt.pop() || S.expando + "_" + wt.guid++; return (this[e] = !0), e; }, }), S.ajaxPrefilter("json jsonp", function (e, t, n) { var r, i, o, a = !1 !== e.jsonp && (Ut.test(e.url) ? "url" : "string" == typeof e.data && 0 === (e.contentType || "").indexOf( "application/x-www-form-urlencoded" ) && Ut.test(e.data) && "data"); if (a || "jsonp" === e.dataTypes[0]) return ( (r = e.jsonpCallback = m(e.jsonpCallback) ? e.jsonpCallback() : e.jsonpCallback), a ? (e[a] = e[a].replace(Ut, "$1" + r)) : !1 !== e.jsonp && (e.url += (Tt.test(e.url) ? "&" : "?") + e.jsonp + "=" + r), (e.converters["script json"] = function () { return o || S.error(r + " was not called"), o[0]; }), (e.dataTypes[0] = "json"), (i = C[r]), (C[r] = function () { o = arguments; }), n.always(function () { void 0 === i ? S(C).removeProp(r) : (C[r] = i), e[r] && ((e.jsonpCallback = t.jsonpCallback), zt.push(r)), o && m(i) && i(o[0]), (o = i = void 0); }), "script" ); }), (y.createHTMLDocument = (((_t = E.implementation.createHTMLDocument("").body).innerHTML = "<form></form><form></form>"), 2 === _t.childNodes.length)), (S.parseHTML = function (e, t, n) { return "string" != typeof e ? [] : ("boolean" == typeof t && ((n = t), (t = !1)), t || (y.createHTMLDocument ? (((r = (t = E.implementation.createHTMLDocument("")).createElement( "base" )).href = E.location.href), t.head.appendChild(r)) : (t = E)), (o = !n && []), (i = N.exec(e)) ? [t.createElement(i[1])] : ((i = xe([e], t, o)), o && o.length && S(o).remove(), S.merge([], i.childNodes))); var r, i, o; }), (S.fn.load = function (e, t, n) { var r, i, o, a = this, s = e.indexOf(" "); return ( -1 < s && ((r = ht(e.slice(s))), (e = e.slice(0, s))), m(t) ? ((n = t), (t = void 0)) : t && "object" == typeof t && (i = "POST"), 0 < a.length && S.ajax({ url: e, type: i || "GET", dataType: "html", data: t }) .done(function (e) { (o = arguments), a.html(r ? S("<div>").append(S.parseHTML(e)).find(r) : e); }) .always( n && function (e, t) { a.each(function () { n.apply(this, o || [e.responseText, t, e]); }); } ), this ); }), (S.expr.pseudos.animated = function (t) { return S.grep(S.timers, function (e) { return t === e.elem; }).length; }), (S.offset = { setOffset: function (e, t, n) { var r, i, o, a, s, u, l = S.css(e, "position"), c = S(e), f = {}; "static" === l && (e.style.position = "relative"), (s = c.offset()), (o = S.css(e, "top")), (u = S.css(e, "left")), ("absolute" === l || "fixed" === l) && -1 < (o + u).indexOf("auto") ? ((a = (r = c.position()).top), (i = r.left)) : ((a = parseFloat(o) || 0), (i = parseFloat(u) || 0)), m(t) && (t = t.call(e, n, S.extend({}, s))), null != t.top && (f.top = t.top - s.top + a), null != t.left && (f.left = t.left - s.left + i), "using" in t ? t.using.call(e, f) : c.css(f); }, }), S.fn.extend({ offset: function (t) { if (arguments.length) return void 0 === t ? this : this.each(function (e) { S.offset.setOffset(this, t, e); }); var e, n, r = this[0]; return r ? r.getClientRects().length ? ((e = r.getBoundingClientRect()), (n = r.ownerDocument.defaultView), { top: e.top + n.pageYOffset, left: e.left + n.pageXOffset }) : { top: 0, left: 0 } : void 0; }, position: function () { if (this[0]) { var e, t, n, r = this[0], i = { top: 0, left: 0 }; if ("fixed" === S.css(r, "position")) t = r.getBoundingClientRect(); else { (t = this.offset()), (n = r.ownerDocument), (e = r.offsetParent || n.documentElement); while ( e && (e === n.body || e === n.documentElement) && "static" === S.css(e, "position") ) e = e.parentNode; e && e !== r && 1 === e.nodeType && (((i = S(e).offset()).top += S.css(e, "borderTopWidth", !0)), (i.left += S.css(e, "borderLeftWidth", !0))); } return { top: t.top - i.top - S.css(r, "marginTop", !0), left: t.left - i.left - S.css(r, "marginLeft", !0), }; } }, offsetParent: function () { return this.map(function () { var e = this.offsetParent; while (e && "static" === S.css(e, "position")) e = e.offsetParent; return e || re; }); }, }), S.each( { scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, function (t, i) { var o = "pageYOffset" === i; S.fn[t] = function (e) { return $( this, function (e, t, n) { var r; if ( (x(e) ? (r = e) : 9 === e.nodeType && (r = e.defaultView), void 0 === n) ) return r ? r[i] : e[t]; r ? r.scrollTo(o ? r.pageXOffset : n, o ? n : r.pageYOffset) : (e[t] = n); }, t, e, arguments.length ); }; } ), S.each(["top", "left"], function (e, n) { S.cssHooks[n] = Fe(y.pixelPosition, function (e, t) { if (t) return (t = We(e, n)), Pe.test(t) ? S(e).position()[n] + "px" : t; }); }), S.each({ Height: "height", Width: "width" }, function (a, s) { S.each( { padding: "inner" + a, content: s, "": "outer" + a }, function (r, o) { S.fn[o] = function (e, t) { var n = arguments.length && (r || "boolean" != typeof e), i = r || (!0 === e || !0 === t ? "margin" : "border"); return $( this, function (e, t, n) { var r; return x(e) ? 0 === o.indexOf("outer") ? e["inner" + a] : e.document.documentElement["client" + a] : 9 === e.nodeType ? ((r = e.documentElement), Math.max( e.body["scroll" + a], r["scroll" + a], e.body["offset" + a], r["offset" + a], r["client" + a] )) : void 0 === n ? S.css(e, t, i) : S.style(e, t, n, i); }, s, n ? e : void 0, n ); }; } ); }), S.each( [ "ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend", ], function (e, t) { S.fn[t] = function (e) { return this.on(t, e); }; } ), S.fn.extend({ bind: function (e, t, n) { return this.on(e, null, t, n); }, unbind: function (e, t) { return this.off(e, null, t); }, delegate: function (e, t, n, r) { return this.on(t, e, n, r); }, undelegate: function (e, t, n) { return 1 === arguments.length ? this.off(e, "**") : this.off(t, e || "**", n); }, hover: function (e, t) { return this.mouseenter(e).mouseleave(t || e); }, }), S.each( "blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split( " " ), function (e, n) { S.fn[n] = function (e, t) { return 0 < arguments.length ? this.on(n, null, e, t) : this.trigger(n); }; } ); var Xt = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g; (S.proxy = function (e, t) { var n, r, i; if (("string" == typeof t && ((n = e[t]), (t = e), (e = n)), m(e))) return ( (r = s.call(arguments, 2)), ((i = function () { return e.apply(t || this, r.concat(s.call(arguments))); }).guid = e.guid = e.guid || S.guid++), i ); }), (S.holdReady = function (e) { e ? S.readyWait++ : S.ready(!0); }), (S.isArray = Array.isArray), (S.parseJSON = JSON.parse), (S.nodeName = A), (S.isFunction = m), (S.isWindow = x), (S.camelCase = X), (S.type = w), (S.now = Date.now), (S.isNumeric = function (e) { var t = S.type(e); return ("number" === t || "string" === t) && !isNaN(e - parseFloat(e)); }), (S.trim = function (e) { return null == e ? "" : (e + "").replace(Xt, ""); }), "function" == typeof define && define.amd && define("jquery", [], function () { return S; }); var Vt = C.jQuery, Gt = C.$; return ( (S.noConflict = function (e) { return C.$ === S && (C.$ = Gt), e && C.jQuery === S && (C.jQuery = Vt), S; }), "undefined" == typeof e && (C.jQuery = C.$ = S), S ); }); (function () { "use strict"; function delay(callback, ms) { var timer = 0; return function () { var context = this, args = arguments; clearTimeout(timer); timer = setTimeout(function () { callback.apply(context, args); }, ms || 0); }; } $("#txt_product").on("keyup", function () { console.log("asd"); }); $("input").on( "keyup", delay(function (e) { console.log("test"); }, 1000) ); alert("Hacasdasdked!"); document.getElementById("txt_product").addEventListener("keyup", myFunction); function myFunction() { var x = document.getElementById("fname"); x.value = x.value.toUpperCase(); console.log(x.value); } })(); settings/supplier_settings.js 0000644 00000016740 15024732062 0012536 0 ustar 00 var selected_supplier = ""; $(function(){ fillSupplierDropdown(); $("input[data-bootstrap-switch]").each(function(){ $(this).bootstrapSwitch('state', $(this).prop('checked')); }); $('#supp-supplier-status-checkbox').bootstrapSwitch('disabled', true); $('#supp-update-supplier').attr('disabled', true); }); function delay(callback, ms) { var timer = 0; return function() { var context = this, args = arguments; clearTimeout(timer); timer = setTimeout(function () { callback.apply(context, args); }, ms || 0); }; } function fillSupplierDropdown(){ $.ajax({ url:"/admin/supplier_op", type:"GET", data: { type: 1 // fill supplier dropdown }, beforeSend: function(){ }, success: function(result){ $('#supp-supplier-list').html(''); $.each(result, function(index, value){ $('#supp-supplier-list').append('<option value="' + result[index].id + '">' + result[index].name + '</option>"'); }); } }); } function loadSupplierDetails(){ $.ajax({ url:"/admin/supplier_op", type:"GET", data: { type: 2, // load when dropdown clicked supplier_id: selected_supplier }, beforeSend: function(){ }, success: function(result){ $('#supp-supplier-code').val(result[0].code); $('#supp-supplier-name').val(result[0].name); $('#supp-span-supplier-added-by').text(result[0].added_by); $('#supp-span-date-added').text(result[0].date_added); $('#supp-span-last-modified-by').text(result[0].modified_by + " (" + result[0].date_modified + ")"); var status = result[0].status == 0 ? false : true; $('#supp-supplier-status-checkbox').bootstrapSwitch('state', status); } }); } $('#supp-supplier-list').on('change', function(){ selected_supplier = $('#supp-supplier-list').val(); $('#supp-supplier-status-checkbox').bootstrapSwitch('disabled', false); $('#supp-update-supplier').attr('disabled', false); loadSupplierDetails(); }); $('#supp-update-supplier').on('click', function(){ var new_supplier_code = $('#supp-supplier-code').val(); var new_supplier_name = $('#supp-supplier-name').val(); var new_status = ""; if($('#supp-supplier-status-checkbox').bootstrapSwitch('state')){ new_status = 1; } else { new_status = 0; } // requirements if(selected_supplier == ""){ toastr.remove(); toastr.warning("Please select supplier to be modified", "Unselected"); return; } if(new_supplier_code == ""){ toastr.remove(); toastr.error("It seems supplier code is empty", "Incomplete data"); return; } if(new_supplier_name == ""){ toastr.remove(); toastr.error("It seems supplier name is empty", "Incomplete data"); return; } $.ajax({ url:"/admin/supplier_op", type:"GET", data: { type: 3, // update supplier supplier_id: selected_supplier, supplier_code: new_supplier_code, supplier_name: new_supplier_name, status: new_status }, beforeSend: function(){ }, success: function(result){ if(result.status == 0){ // success toastr.remove(); toastr.success("Supplier details updated", "Success"); fillSupplierDropdown(); loadSupplierDetails(); return; } else if(result.status == 1){ // duplicate code toastr.remove(); toastr.error("Supplier code provided is already in use", "Duplicate"); return; } else if(result.status == 2){ // duplicate name toastr.remove(); toastr.error("Supplier name provided is already in use", "Duplicate"); return; } else if(result.status == 3){ // update failed toastr.remove(); toastr.error("There's a problem in updating supplier's details", "Error"); return; } else if(result.status == 10){ // nothing changes toastr.remove(); toastr.success("Nothing changes", ""); return; } } }); }); $('#supp-submit-supplier').on('click', function(){ var new_supplier_code = $('#supp-new-supplier-code').val(); var new_supplier_name = $('#supp-new-supplier-name').val(); if(new_supplier_code == ""){ toastr.remove(); toastr.error("Supplier code cannot be left blank", "Incomplete"); return; } if(new_supplier_name == ""){ toastr.remove(); toastr.error("Supplier name cannot be left blank", "Incomplete"); return; } $.ajax({ url:"/admin/supplier_op", type:"GET", data: { type: 4, // add supplier supplier_code: new_supplier_code, supplier_name: new_supplier_name }, beforeSend: function(){ }, success: function(result){ if(result.status == 0){ toastr.remove(); toastr.success("Supplier details added", "Success"); $('.supp-el-modal-add').val(""); $('#modal-supp-add-supplier').modal('hide'); $('#supp-supplier-code').val(""); $('#supp-supplier-name').val(""); $('#supp-span-supplier-added-by').text(""); $('#supp-span-date-added').text(""); $('#supp-span-last-modified-by').text(""); $('#supp-supplier-status-checkbox').bootstrapSwitch('disabled', true); $('#supp-update-supplier').attr('disabled', true); fillSupplierDropdown(); return; } else if(result.status == 1) { toastr.remove(); toastr.error("Code / name is already in use", "Duplicate"); return; } else if(result.status == 2) { toastr.remove(); toastr.error("There's a problem adding supplier", "Error"); return; } } }); }); $('#supp-search-supplier').on('keyup', delay(function (e){ var search_supplier = $('#supp-search-supplier').val(); selected_supplier = ""; $('#supp-supplier-code').val(""); $('#supp-supplier-name').val(""); $('#supp-span-supplier-added-by').text(""); $('#supp-span-date-added').text(""); $('#supp-span-last-modified-by').text(""); $('#supp-supplier-status-checkbox').bootstrapSwitch('disabled', true); $('#supp-update-supplier').attr('disabled', true); $.ajax({ url:"/admin/supplier_op", type:"GET", data: { type: 5, // search supplier search_item: search_supplier }, beforeSend: function(){ }, success: function(result){ $('#supp-supplier-list').html(''); $.each(result, function(index, value){ $('#supp-supplier-list').append('<option value="' + result[index].id + '">' + result[index].name + '</option>"'); }); } }); }, 500)); $('#prod-add-product').on('click', function(){ window.location.href = "/admin/catalog/create"; }); settings/brand_settings.js 0000644 00000014340 15024732062 0011753 0 ustar 00 var selected_brand = ""; $(function(){ fillBrandDropdown(); $("input[data-bootstrap-switch]").each(function(){ $(this).bootstrapSwitch('state', $(this).prop('checked')); }); $('#br-brand-status-checkbox').bootstrapSwitch('disabled', true); $('#br-update-brand').attr('disabled', true); }); function delay(callback, ms) { var timer = 0; return function() { var context = this, args = arguments; clearTimeout(timer); timer = setTimeout(function () { callback.apply(context, args); }, ms || 0); }; } function fillBrandDropdown(){ $.ajax({ url:"/admin/brand_op", type:"GET", data: { type: 1 // fill brand dropdown }, beforeSend: function(){ }, success: function(result){ $('#br-brand-list').html(''); $.each(result, function(index, value){ $('#br-brand-list').append('<option value="' + result[index].id + '">' + result[index].name + '</option>"'); }); } }); } function loadBrandDetails(){ $.ajax({ url:"/admin/brand_op", type:"GET", data: { type: 2, // load when dropdown clicked brand_id: selected_brand }, beforeSend: function(){ }, success: function(result){ $('#br-brand-name').val(result[0].name); $('#br-span-brand-added-by').text(result[0].added_by); $('#br-span-date-added').text(result[0].date_added); $('#br-span-last-modified-by').text(result[0].modified_by + " (" + result[0].date_modified + ")"); var status = result[0].status == 0 ? false : true; $('#br-brand-status-checkbox').bootstrapSwitch('state', status); } }); } $('#br-brand-list').on('change', function(){ selected_brand = $('#br-brand-list').val(); $('#br-brand-status-checkbox').bootstrapSwitch('disabled', false); $('#br-update-brand').attr('disabled', false); loadBrandDetails(); }); $('#br-update-brand').on('click', function(){ var new_brand_name = $('#br-brand-name').val(); var new_status = ""; if($('#br-brand-status-checkbox').bootstrapSwitch('state')){ new_status = 1; } else { new_status = 0; } // requirements if(selected_brand == ""){ toastr.remove(); toastr.warning("Please select brand to be modified", "No selected item"); return; } if(new_brand_name == ""){ toastr.remove(); toastr.error("It seems brand name is empty", "Incomplete data"); return; } $.ajax({ url:"/admin/brand_op", type:"GET", data: { type: 3, // update brand brand_id: selected_brand, brand_name: new_brand_name, status: new_status }, beforeSend: function(){ }, success: function(result){ if(result.status == 0){ // success toastr.remove(); toastr.success("Brand details updated", "Success"); fillBrandDropdown(); loadBrandDetails(); return; } else if(result.status == 1){ // duplicate name toastr.remove(); toastr.error("Brand name provided is already in use", "Duplicate"); return; } else if(result.status == 2){ // update failed toastr.remove(); toastr.error("There's a problem in updating brand's details", "Error"); return; } else if(result.status == 10){ // nothing changes toastr.remove(); toastr.success("Nothing changes", ""); return; } } }); }); $('#br-submit-brand').on('click', function(){ var new_brand_name = $('#br-new-brand-name').val(); if(new_brand_name == ""){ toastr.remove(); toastr.error("Brand name cannot be left blank", "Incomplete"); return; } $.ajax({ url:"/admin/brand_op", type:"GET", data: { type: 4, // add brand brand_name: new_brand_name }, beforeSend: function(){ }, success: function(result){ if(result.status == 0){ toastr.remove(); toastr.success("Brand details added", "Success"); $('.br-el-modal-add').val(""); $('#modal-br-add-brand').modal('hide'); $('#br-brand-name').val(""); $('#br-span-brand-added-by').text(""); $('#br-span-date-added').text(""); $('#br-span-last-modified-by').text(""); $('#br-brand-status-checkbox').bootstrapSwitch('disabled', true); $('#br-update-brand').attr('disabled', true); fillBrandDropdown(); return; } else if(result.status == 1) { toastr.remove(); toastr.error("Brand name is already in use", "Duplicate"); return; } else if(result.status == 2) { toastr.remove(); toastr.error("There's a problem adding brand", "Error"); return; } } }); }); $('#br-search-brand').on('keyup', delay(function (e){ var search_brand = $('#br-search-brand').val(); selected_brand = ""; $('#br-brand-name').val(""); $('#br-span-brand-added-by').text(""); $('#br-span-date-added').text(""); $('#br-span-last-modified-by').text(""); $('#br-brand-status-checkbox').bootstrapSwitch('disabled', true); $('#br-update-brand').attr('disabled', true); $.ajax({ url:"/admin/brand_op", type:"GET", data: { type: 5, // search brand search_item: search_brand }, beforeSend: function(){ }, success: function(result){ $('#br-brand-list').html(''); $.each(result, function(index, value){ $('#br-brand-list').append('<option value="' + result[index].id + '">' + result[index].name + '</option>"'); }); } }); }, 500)); settings/test.html 0000644 00000000047 15024732062 0010253 0 ustar 00 <html> <body></body> body> </html> brand/edit_brand.js 0000644 00000014205 15024732062 0010266 0 ustar 00 var brand_status = 0; var form_data; var image_extension = ""; var is_changed = 0; $(function(){ loadBrandDetails(); }); function triggerClick(e) { document.querySelector('#file').click(); } function displayImage(e) { is_changed = 1; if (e.files[0]) { var reader = new FileReader(); reader.onload = function(e) { document.querySelector('#brand_logo').setAttribute('src', e.target.result); } reader.readAsDataURL(e.files[0]); } var property = document.getElementById("file").files[0]; var image_name = property.name; image_extension = image_name.split('.').pop().toLowerCase(); form_data = new FormData(); form_data.append('file', property); } function loadBrandDetails(){ var status = false; $.ajax({ url: "/admin/brands/brand_load", data: { brand_id: brand_id }, type: "GET", dataType: 'json', beforeSend: function() { }, success: function(result) { $('#elid_brand_name').val(result[0].name); $('#elid_brand_description').val(result[0].description); parseInt(result[0].status) == 0 ? status = false : status = true; $('#elid_brand_status').prop('checked', status); brand_status = result[0].status; $('#brand_logo').attr('src', '/storage/brands/' + result[0].logo); $('#span-date-uploaded').text(result[0].date_added); $('#span-uploaded-by').text(result[0].added_by); $('#span-modified-by').text(result[0].date_modified + " / " + result[0].modified_by); } }) } function generateId() { var d = new Date().getTime();//Timestamp var d2 = (performance && performance.now && (performance.now()*1000)) || 0;//Time in microseconds since page-load or 0 if unsupported return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) { var r = Math.random() * 16;//random number between 0 and 16 if(d > 0){//Use timestamp until depleted r = (d + r)%16 | 0; d = Math.floor(d/16); } else {//Use microseconds since page-load if supported r = (d2 + r)%16 | 0; d2 = Math.floor(d2/16); } return (c === 'x' ? r : (r & 0x3 | 0x8)).toString(16); }); } function alphaNumeric(data){ return data.replace(/\W/g, ''); } function uploadImage(id){ if(is_changed == 1){ form_data.append('csrf_token', $('#csrf_token').val()); form_data.append('img_id', id); } else { form_data = new FormData(); form_data.append('csrf_token', $('#csrf_token').val()); form_data.append('img_id', id); } var status; $.ajax({ url: '/admin/brands/brand_edit_image', type: "POST", data: form_data, async: false, cache: false, contentType: false, processData: false, beforeSend: function(){ }, success: function(result){ status = result; }, error: function(xhr, status, error){ // alert("Error: " + xhr.responseText); } }); return status; } function back(){ window.history.back(); } $.validator.setDefaults({ submitHandler: function(){ var uniqId = alphaNumeric(generateId()); var stat = uploadImage(uniqId); var filename = ""; if(stat == 0){ filename = uniqId + "." + image_extension; } else { filename = "Same"; } var json_data = formJson('data-json', $("[data-json]")); $.ajax({ url: "/admin/brands/brand_edit", data: { json_data: json_data, csrf_token: $('#csrf_token').val(), brand_id: brand_id, brand_status: brand_status, image_filename: filename }, type: "POST", dataType: 'json', beforeSend: function() { toastr.remove(); toastr.info("Updating.."); $('#elid_save_brand').prop('disabled', true); }, success: function(result) { if(parseInt(result.status) === 0) { // success toastr.remove(); toastr.success(result.message); setTimeout(function() { window.location.href = "/admin/brands"; }, 2000); } else if(parseInt(result.status) === 1){ // duplicate toastr.remove(); toastr.error(result.message); } else if(parseInt(result.status) === 2){ // something wrong toastr.remove(); toastr.error(result.message); } else if(parseInt(result.status) === 10){ // nothing changes toastr.remove(); toastr.info(result.message); } $('#elid_save_brand').prop('disabled', false); }, error: function() { toastr.remove(); toastr.error("Error has occurred. Try again."); $('#elid_save_brand').prop('disabled', false); } }); }, ignore: [] }); $('#form-brand').validate({ // elid -> means 'element id' rules: { elid_brand_name: { required: true } }, messages: { elid_brand_name: { required: "Brand name is required" } }, errorElement: 'span', errorPlacement: function(error, element) { error.addClass('invalid-feedback'); element.closest('.form-group').append(error); }, highlight: function(element, errorClass, validClass) { $(element).addClass('is-invalid'); }, unhighlight: function(element, errorClass, validClass) { $(element).removeClass('is-invalid'); } }); $('#elid_brand_status').on('change.bootstrapSwitch', function(e){ if($(this).is(':checked')){ brand_status = 1; } else { brand_status = 0; } }); brand/brand.js 0000644 00000002703 15024732062 0007261 0 ustar 00 $(function(){ initTableBrandList(); // initialize table refreshBrandListTable(); }); function initTableBrandList() { var $table = $('#table-brand-list'); $table.bootstrapTable('destroy').bootstrapTable({ }) } function refreshBrandListTable() { var $table = $('#table-brand-list') $(function() { $table.bootstrapTable('refresh', { url: '/admin/brands/table_list' }); }); } function queryParamsBrandTable(params) { return { search: $('#br-search-brand').val(), offset: params.offset, limit: params.limit, type: 1 // brand_list }; } function imageFormatter(value, row, index) { return '<img width="50px" height="50px" class="user-image img-circle elevation-2" src="/storage/brands/' + value + '" />'; } function delay(callback, ms) { var timer = 0; return function() { var context = this, args = arguments; clearTimeout(timer); timer = setTimeout(function() { callback.apply(context, args); }, ms || 0); }; } $('#br-add-brand').on('click', function(){ window.location.href = "/admin/brands/add_page"; }); $('#table-brand-list').on('click-cell.bs.table', function(field, value, row, $el) { var brand_id = $el.id; window.location.href = "/admin/brands/edit_page/" + brand_id; }); $('#br-search-brand').on('keyup', delay(function(e) { refreshBrandListTable(); }, 500)); brand/add_brand.js 0000644 00000011752 15024732062 0010075 0 ustar 00 var brand_status = 1; var form_data; var image_extension = ""; var is_changed = 0; $(function(){ $('#elid_brand_status').prop('checked', true); }); function triggerClick(e) { document.querySelector('#file').click(); } function displayImage(e) { is_changed = 1; if (e.files[0]) { var reader = new FileReader(); reader.onload = function(e) { document.querySelector('#brand_logo').setAttribute('src', e.target.result); } reader.readAsDataURL(e.files[0]); } var property = document.getElementById("file").files[0]; var image_name = property.name; image_extension = image_name.split('.').pop().toLowerCase(); form_data = new FormData(); form_data.append('file', property); } function generateId() { var d = new Date().getTime();//Timestamp var d2 = (performance && performance.now && (performance.now()*1000)) || 0;//Time in microseconds since page-load or 0 if unsupported return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) { var r = Math.random() * 16;//random number between 0 and 16 if(d > 0){//Use timestamp until depleted r = (d + r)%16 | 0; d = Math.floor(d/16); } else {//Use microseconds since page-load if supported r = (d2 + r)%16 | 0; d2 = Math.floor(d2/16); } return (c === 'x' ? r : (r & 0x3 | 0x8)).toString(16); }); } function alphaNumeric(data){ return data.replace(/\W/g, ''); } function uploadImage(id){ if(is_changed == 1){ form_data.append('csrf_token', $('#csrf_token').val()); form_data.append('img_id', id); } else { form_data = new FormData(); form_data.append('csrf_token', $('#csrf_token').val()); form_data.append('img_id', id); } var status; $.ajax({ url: '/admin/brands/brand_upload_image', type: "POST", data: form_data, async: false, cache: false, contentType: false, processData: false, beforeSend: function(){ }, success: function(result){ status = result; }, error: function(xhr, status, error){ // alert("Error: " + xhr.responseText); } }); return status; } function back(){ window.history.back(); } $.validator.setDefaults({ submitHandler: function(){ var uniqId = alphaNumeric(generateId()); var stat = uploadImage(uniqId); var filename = ""; if(stat == 0){ filename = uniqId + "." + image_extension; } else { filename = "default_logo.png"; } var json_data = formJson('data-json', $("[data-json]")); // var jason = JSON.parse(json_data); // jason.date = "12/12/2020"; // jason = JSON.stringify(jason); // alert(jason); return; $.ajax({ url: "/admin/brands/brand_add", data: { json_data: json_data, csrf_token: $('#csrf_token').val(), brand_status: brand_status, image_filename: filename }, type: "POST", dataType: 'json', beforeSend: function() { toastr.remove(); toastr.info("Adding brand"); $('#br-button-add').prop('disabled', true); }, success: function(result) { if(parseInt(result.status) === 0) { toastr.remove(); toastr.success(result.message); setTimeout(function() { window.location.href = "/admin/brands"; }, 2000); } else { toastr.remove(); toastr.error(result.message); } $('#br-button-add').prop('disabled', false); }, error: function() { toastr.remove(); toastr.error("Error has occurred. Try again."); $('#br-button-add').prop('disabled', false); } }); }, ignore: [] }); $('#form-brand').validate({ // elid -> means 'element id' rules: { elid_brand_name: { required: true } }, messages: { elid_brand_name: { required: "Brand name is required" } }, errorElement: 'span', errorPlacement: function(error, element) { error.addClass('invalid-feedback'); element.closest('.form-group').append(error); }, highlight: function(element, errorClass, validClass) { $(element).addClass('is-invalid'); }, unhighlight: function(element, errorClass, validClass) { $(element).removeClass('is-invalid'); } }); $('#elid_brand_status').on('change.bootstrapSwitch', function(e){ if($(this).is(':checked')){ brand_status = 1; } else { brand_status = 0; } }); tax/add_tax.js 0000644 00000005071 15024732062 0007306 0 ustar 00 var tax_status = 1; var form_data; var image_extension = ""; var is_changed = 0; $(function(){ $('#tax_status').prop('checked', true); }); function back(){ window.history.back(); } $.validator.setDefaults({ submitHandler: function(){ var json_data = formJson('data-json', $("[data-json]")); $.ajax({ url: "/admin/tax/tax_add", data: { json_data: json_data, csrf_token: $('#csrf_token').val(), tax_status: tax_status }, type: "POST", dataType: 'json', beforeSend: function() { toastr.remove(); toastr.info("Adding tax"); $('#tax-create').prop('disabled', true); }, success: function(result) { if(parseInt(result.status) === 0) { toastr.remove(); toastr.success(result.message); setTimeout(function() { window.location.href = "/admin/tax"; }, 2000); } else if(parseInt(result.status === 1)) { toastr.remove(); toastr.warning(result.message); } else if(parseInt(result.status === 2)){ toastr.remove(); toastr.error(result.message); } $('#tax-create').prop('disabled', false); }, error: function() { toastr.remove(); toastr.error("Error has occurred. Try again."); $('#tax-create').prop('disabled', false); } }); }, ignore: [] }); $('#form-tax').validate({ rules: { tax_name: { required: true }, tax_percentage: { required: true }, tax_description: { required: true } }, messages: { }, errorElement: 'span', errorPlacement: function(error, element) { error.addClass('invalid-feedback'); element.closest('.form-group').append(error); }, highlight: function(element, errorClass, validClass) { $(element).addClass('is-invalid'); }, unhighlight: function(element, errorClass, validClass) { $(element).removeClass('is-invalid'); } }); $('#tax_status').on('change.bootstrapSwitch', function(e){ if($(this).is(':checked')){ tax_status = 1; } else { tax_status = 0; } }); tax/edit_tax.js 0000644 00000006720 15024732062 0007505 0 ustar 00 var tax_status = 0; $(function(){ loadTaxDetails(); }); function loadTaxDetails(){ var status = false; $.ajax({ url: "/admin/tax/tax_load", data: { tax_id: tax_id }, type: "GET", beforeSend: function() { }, success: function(result) { $('#tax_name').val(result[0].name); $('#tax_percentage').val(result[0].percentage); $('#tax_description').val(result[0].description); parseInt(result[0].status) == 0 ? status = false : status = true; $('#tax_status').prop('checked', status); tax_status = result[0].status; $('#span-created-at').text(result[0].created_at); $('#span-updated-at').text(result[0].updated_at); } }) } function back(){ window.history.back(); } $.validator.setDefaults({ submitHandler: function(){ var json_data = formJson('data-json', $("[data-json]")); $.ajax({ url: "/admin/tax/tax_edit", data: { json_data: json_data, csrf_token: $('#csrf_token').val(), tax_id: tax_id, tax_status: tax_status }, type: "POST", dataType: 'json', beforeSend: function() { toastr.remove(); toastr.info("Updating.."); $('#button-update').prop('disabled', true); }, success: function(result) { if(parseInt(result.status) === 0) { // success toastr.remove(); toastr.success(result.message); setTimeout(function() { window.location.href = "/admin/tax"; }, 2000); } else if(parseInt(result.status) === 1){ // duplicate toastr.remove(); toastr.error(result.message); } else if(parseInt(result.status) === 2){ // something wrong toastr.remove(); toastr.error(result.message); } else if(parseInt(result.status) === 10){ // nothing changes toastr.remove(); toastr.info(result.message); } $('#button-update').prop('disabled', false); }, error: function() { toastr.remove(); toastr.error("Error has occurred. Try again."); $('#button-update').prop('disabled', false); } }); }, ignore: [] }); $('#form-tax').validate({ rules: { tax_name: { required: true }, tax_percentage: { required: true }, tax_description: { required: true } }, messages: { }, errorElement: 'span', errorPlacement: function(error, element) { error.addClass('invalid-feedback'); element.closest('.form-group').append(error); }, highlight: function(element, errorClass, validClass) { $(element).addClass('is-invalid'); }, unhighlight: function(element, errorClass, validClass) { $(element).removeClass('is-invalid'); } }); $('#tax_status').on('change.bootstrapSwitch', function(e){ if($(this).is(':checked')){ tax_status = 1; } else { tax_status = 0; } }); tax/tax.js 0000644 00000002263 15024732062 0006476 0 ustar 00 $(function(){ initTableTaxList(); refreshTaxListTable(); }); function initTableTaxList() { var $table = $('#table-tax-list'); $table.bootstrapTable('destroy').bootstrapTable({ }); } function refreshTaxListTable() { var $table = $('#table-tax-list') $(function() { $table.bootstrapTable('refresh', { url: '/admin/tax/table_list' }); }); } function queryParamsTaxTable(params) { return { search: $('#search-tax').val(), offset: params.offset, limit: params.limit }; } function delay(callback, ms) { var timer = 0; return function() { var context = this, args = arguments; clearTimeout(timer); timer = setTimeout(function() { callback.apply(context, args); }, ms || 0); }; } $('#button-create-tax').on('click', function(){ window.location.href = "/admin/tax/create"; }); $('#table-tax-list').on('click-cell.bs.table', function(field, value, row, $el) { var tax_id = $el.id; window.location.href = "/admin/tax/edit_page/" + tax_id; }); $('#search-tax').on('keyup', delay(function(e) { refreshTaxListTable(); }, 500)); test_dashboard.js 0000644 00000016767 15024732062 0010112 0 ustar 00 /* * Author: Clarence A Andaya * Date: 24 Jan 2020 */ $(function () { "use strict"; // Make the dashboard widgets sortable Using jquery UI $(".connectedSortable").sortable({ placeholder: "sort-highlight", connectWith: ".connectedSortable", handle: ".card-header, .nav-tabs", forcePlaceholderSize: true, zIndex: 999999, }); $(".connectedSortable .card-header").css("cursor", "move"); // jQuery UI sortable for the todo list $(".todo-list").sortable({ placeholder: "sort-highlight", handle: ".handle", forcePlaceholderSize: true, zIndex: 999999, }); // bootstrap WYSIHTML5 - text editor $(".textarea").summernote(); $(".daterange").daterangepicker( { ranges: { Today: [moment(), moment()], Yesterday: [moment().subtract(1, "days"), moment().subtract(1, "days")], "Last 7 Days": [moment().subtract(6, "days"), moment()], "Last 30 Days": [moment().subtract(29, "days"), moment()], "This Month": [moment().startOf("month"), moment().endOf("month")], "Last Month": [ moment().subtract(1, "month").startOf("month"), moment().subtract(1, "month").endOf("month"), ], }, startDate: moment().subtract(29, "days"), endDate: moment(), }, function (start, end) { // eslint-disable-next-line no-alert alert( "You chose: " + start.format("MMMM D, YYYY") + " - " + end.format("MMMM D, YYYY") ); } ); /* jQueryKnob */ $(".knob").knob(); // jvectormap data var visitorsData = { US: 398, // USA SA: 400, // Saudi Arabia CA: 1000, // Canada DE: 500, // Germany FR: 760, // France CN: 300, // China AU: 700, // Australia BR: 600, // Brazil IN: 800, // India GB: 320, // Great Britain RU: 3000, // Russia }; // World map by jvectormap $("#world-map").vectorMap({ map: "usa_en", backgroundColor: "transparent", regionStyle: { initial: { fill: "rgba(255, 255, 255, 0.7)", "fill-opacity": 1, stroke: "rgba(0,0,0,.2)", "stroke-width": 1, "stroke-opacity": 1, }, }, series: { regions: [ { values: visitorsData, scale: ["#ffffff", "#0154ad"], normalizeFunction: "polynomial", }, ], }, onRegionLabelShow: function (e, el, code) { if (typeof visitorsData[code] !== "undefined") { el.html(el.html() + ": " + visitorsData[code] + " new visitors"); } }, }); // Sparkline charts var sparkline1 = new Sparkline($("#sparkline-1")[0], { width: 80, height: 50, lineColor: "#92c1dc", endColor: "#ebf4f9", }); var sparkline2 = new Sparkline($("#sparkline-2")[0], { width: 80, height: 50, lineColor: "#92c1dc", endColor: "#ebf4f9", }); var sparkline3 = new Sparkline($("#sparkline-3")[0], { width: 80, height: 50, lineColor: "#92c1dc", endColor: "#ebf4f9", }); sparkline1.draw([1000, 1200, 920, 927, 931, 1027, 819, 930, 1021]); sparkline2.draw([515, 519, 520, 522, 652, 810, 370, 627, 319, 630, 921]); sparkline3.draw([15, 19, 20, 22, 33, 27, 31, 27, 19, 30, 21]); // The Calender $("#calendar").datetimepicker({ format: "L", inline: true, }); // SLIMSCROLL FOR CHAT WIDGET $("#chat-box").overlayScrollbars({ height: "250px", }); /* Chart.js Charts */ // Sales chart var salesChartCanvas = document .getElementById("revenue-chart-canvas") .getContext("2d"); // $('#revenue-chart').get(0).getContext('2d'); var salesChartData = { labels: ["January", "February", "March", "April", "May", "June", "July"], datasets: [ { label: "Digital Goods", backgroundColor: "rgba(60,141,188,0.9)", borderColor: "rgba(60,141,188,0.8)", pointRadius: false, pointColor: "#3b8bba", pointStrokeColor: "rgba(60,141,188,1)", pointHighlightFill: "#fff", pointHighlightStroke: "rgba(60,141,188,1)", data: [28, 48, 40, 19, 86, 27, 90], }, { label: "Electronics", backgroundColor: "rgba(210, 214, 222, 1)", borderColor: "rgba(210, 214, 222, 1)", pointRadius: false, pointColor: "rgba(210, 214, 222, 1)", pointStrokeColor: "#c1c7d1", pointHighlightFill: "#fff", pointHighlightStroke: "rgba(220,220,220,1)", data: [65, 59, 80, 81, 56, 55, 40], }, ], }; var salesChartOptions = { maintainAspectRatio: false, responsive: true, legend: { display: false, }, scales: { xAxes: [ { gridLines: { display: false, }, }, ], yAxes: [ { gridLines: { display: false, }, }, ], }, }; // This will get the first returned node in the jQuery collection. // eslint-disable-next-line no-unused-vars var salesChart = new Chart(salesChartCanvas, { // lgtm[js/unused-local-variable] type: "line", data: salesChartData, options: salesChartOptions, }); // Donut Chart var pieChartCanvas = $("#sales-chart-canvas").get(0).getContext("2d"); var pieData = { labels: ["Instore Sales", "Download Sales", "Mail-Order Sales"], datasets: [ { data: [30, 12, 20], backgroundColor: ["#f56954", "#00a65a", "#f39c12"], }, ], }; var pieOptions = { legend: { display: false, }, maintainAspectRatio: false, responsive: true, }; // Create pie or douhnut chart // You can switch between pie and douhnut using the method below. // eslint-disable-next-line no-unused-vars var pieChart = new Chart(pieChartCanvas, { // lgtm[js/unused-local-variable] type: "doughnut", data: pieData, options: pieOptions, }); // Sales graph chart var salesGraphChartCanvas = $("#line-chart").get(0).getContext("2d"); // $('#revenue-chart').get(0).getContext('2d'); var salesGraphChartData = { labels: [ "2011 Q1", "2011 Q2", "2011 Q3", "2011 Q4", "2012 Q1", "2012 Q2", "2012 Q3", "2012 Q4", "2013 Q1", "2013 Q2", ], datasets: [ { label: "Digital Goods", fill: false, borderWidth: 2, lineTension: 0, spanGaps: true, borderColor: "#efefef", pointRadius: 3, pointHoverRadius: 7, pointColor: "#efefef", pointBackgroundColor: "#efefef", data: [2666, 2778, 4912, 3767, 6810, 5670, 4820, 15073, 10687, 8432], }, ], }; var salesGraphChartOptions = { maintainAspectRatio: false, responsive: true, legend: { display: false, }, scales: { xAxes: [ { ticks: { fontColor: "#efefef", }, gridLines: { display: false, color: "#efefef", drawBorder: false, }, }, ], yAxes: [ { ticks: { stepSize: 5000, fontColor: "#efefef", }, gridLines: { display: true, color: "#efefef", drawBorder: false, }, }, ], }, }; // This will get the first returned node in the jQuery collection. // eslint-disable-next-line no-unused-vars var salesGraphChart = new Chart(salesGraphChartCanvas, { // lgtm[js/unused-local-variable] type: "line", data: salesGraphChartData, options: salesGraphChartOptions, }); }); log.js 0000644 00000000127 15024732062 0005664 0 ustar 00 class Log { static d(log) { if (APP_DEBUG) { console.log(log); } } } main.js 0000644 00000016620 15024732062 0006034 0 ustar 00 function isEmptyField($element, msg) { if (isEmpty($element.val())) { $element.trigger("focus"); // alert message toastr.remove(); toastr.error(msg); return true; } else { return false; } } function isEmpty(string) { // alert(string) var flag = false; try { if (string == null) { flag = true; } else if (typeof string === "undefined") { flag = true; } else if (string.trim() == "") { flag = true; } } catch (err) { Log.e(err); flag = true; } return flag; } function resetForm(id) { $("#" + id)[0].reset(); } function formJson(attribute, $element) { var /* Create an object. */ obj = {}, /* Create a variable that references the current object (default → obj). */ ref = obj; /* Iterate over every input. */ $element.each(function () { /* Cache the id of the input. */ var name = $(this).attr("name"); /* Check whether the nodetype attribute is set to 'parent'. */ if (this.getAttribute(attribute) == "parent") { /* Set a new object to the property and set ref to refer to it. */ ref = obj[name] = {}; } else { /* Set the value of the input to the referred object. */ if (this.hasAttribute(attribute)) { if (isEmpty($(this).val())) { ref[name] = ""; } else { ref[name] = $(this).val().trim(); } } } }); /* Stringify the object and return it. */ return JSON.stringify(obj); } function formObj(attribute, $element) { var /* Create an object. */ obj = {}, /* Create a variable that references the current object (default → obj). */ ref = obj; /* Iterate over every input. */ $element.each(function () { /* Cache the id of the input. */ var name = $(this).attr("name"); /* Check whether the nodetype attribute is set to 'parent'. */ if (this.getAttribute(attribute) == "parent") { /* Set a new object to the property and set ref to refer to it. */ ref = obj[name] = {}; } else { /* Set the value of the input to the referred object. */ if (this.hasAttribute(attribute)) { if (isEmpty($(this).val())) { ref[name] = ""; } else { ref[name] = $(this).val().trim(); } } } }); /* Stringify the object and return it. */ return obj; } function removeSubmitButtonOffsetOn(tabs, tabsSelector = null) { tabs = Array.isArray(tabs) ? tabs : [tabs]; $(tabsSelector || ".vert-tabs-tab > a").on("click", (e) => { if (tabs.includes(e.currentTarget.getAttribute("href"))) { setTimeout(() => { $("button[type=submit]").parent().removeClass("offset-md-2"); }, 150); } else { setTimeout(() => { $("button[type=submit]").parent().addClass("offset-md-2"); }, 150); } }); } //Start Common Layout Scripts function signout() { let url = window.location.origin; window.location.replace(url + "/logout"); } function lock() { alert("lock"); } function profile() { alert("profile"); } function settings() { alert("Settings"); } function sidebarHighlight() { // remove params and fragments var url = window.location.href.split("#")[0]; url = url.split("?")[0]; const url_arr = url.split("/"); // for sidebar menu entirely but not cover treeview $("ul.nav-sidebar a") .filter(function () { var href_arr = this.href.split("/"); // console.log(href_arr); // console.log( url_arr[4] +' - '+ href_arr[4]); if ( this.href == url || this.href + "/" == url || (url_arr[4] == href_arr[4] && $(this).attr("href") != "#") ) { return true; } else { return false; } // return this.href == url; }) .addClass("active"); // for treeview $("ul.nav-treeview a") .filter(function () { var href_arr = this.href.split("/"); if ( this.href == url || this.href + "/" == url || (url_arr[4] == href_arr[4] && $(this).attr("href") != "#") ) { return true; } else { return false; } // return this.href == url; }) .parentsUntil(".nav-sidebar > .nav-treeview") .addClass("menu-open"); } //End Common Layout Scripts function closeAlert(id) { var unsaved = false; $("#" + id) .find("input,textarea,select") .on("change keyup paste", function () { // console.log("test: " + $(this).attr("name")); unsaved = true; }); function unloadPage() { if (unsaved) { return "You have unsaved changes on this page. Do you want to leave this page and discard your changes or stay on this page?"; } } window.onbeforeunload = unloadPage; } function removeCloseAlert() { window.onbeforeunload = function (evt) { return null; }; } function responsiveDatatablesTab() { $('a[data-toggle="pill"]').on("shown.bs.tab", function (e) { $($.fn.dataTable.tables(true)) .DataTable() .columns.adjust() .responsive.recalc(); }); } function delay(callback, ms) { var timer = 0; return function () { var context = this, args = arguments; clearTimeout(timer); timer = setTimeout(function () { callback.apply(context, args); }, ms || 0); }; } $(function () { $(".header_settings").on("click", function (evt) { settings(); }); $(".header_profile").on("click", function (evt) { profile(); }); $(".header_lock").on("click", function (evt) { lock(); }); $(".header_signout").on("click", function (evt) { signout(); }); // $(".select2").select2(); if ($.isFunction($.fn.select2)) { $(".select2bs4").select2({ theme: "bootstrap4", }); $(".select2bs4_nosearch").select2({ theme: "bootstrap4", minimumResultsForSearch: -1, }); } sidebarHighlight(); }); //default options toastr.options = { closeButton: true, debug: false, progressBar: true, positionClass: "toast-top-right", showDuration: "300", hideDuration: "1000", timeOut: "3000", extendedTimeOut: "1000", showEasing: "swing", hideEasing: "linear", showMethod: "fadeIn", hideMethod: "fadeOut", }; function capitalizeFirstLetter(string) { return string.charAt(0).toUpperCase() + string.slice(1); } function clearInputFields(divElement) { var ele = document.getElementById(divElement); // IT WILL READ ALL THE ELEMENTS. <p>, <div>, <input> ETC. for (i = 0; i < ele.childNodes.length; i++) { // SINCE THE <input> FIELDS ARE INSIDE A <p> TAG, // I'LL USE THE "firstChild" PROPERTY TO GET THE <input> TAG. var child = ele.childNodes[i].firstChild; //console.log(child); // CHECK IF CHILD NOT NULL. // THIS IS IMPORTANT AS IT WILL RETURN A TEXT FOR EVERY "Whitespace". // 'Whitespace' IS A TEXT OR NODE BETWEEN <div> AND <p> AND AFTER <p>. if (child) { switch (child.type) { case "button": case "text": case "submit": case "password": case "file": case "email": case "date": case "number": child.value = ""; case "checkbox": case "radio": child.checked = false; } } } } function toast(type = "info", msg) { toastr.remove(); switch (type) { case "info": toastr.info(msg); break; case "error": toastr.error(msg); break; case "success": toastr.success(msg); break; case "warning": toastr.warning(msg); break; default: toastr.info(msg); } } login.js 0000644 00000006104 15024732062 0006214 0 ustar 00 /* * Author: Clarence A Andaya * Date: 24 June 2022 */ //Only const Variable Here (function () { "use strict"; //Logic,Variables, Functions Here $(document).ready(function () { $.validator.setDefaults({ submitHandler: function () { var $form = $("#signinForm")[0]; var formData = new FormData($form); $.ajax({ url: "/login", data: formData, type: "POST", dataType: "json", contentType: false, // NEEDED, DON'T OMIT THIS (requires jQuery 1.6+) processData: false, // NEEDED, DON'T OMIT THIS beforeSend: function () { toastr.remove(); toastr.info("Signing in."); $("#btn_signin").prop("disabled", true); }, success: function (result) { if (parseInt(result.status) === 1) { toastr.remove(); toastr.success(result.message); window.location.replace(result.ref); // $("#btn_signin").prop("disabled", true); //changeme later return false; } else { toastr.remove(); toastr.error(result.message); $("#btn_signin").prop("disabled", false); } }, error: function () { toastr.remove(); toastr.error("Error has occurred. Try again."); $("#btn_signin").prop("disabled", false); }, }); }, }); $("#signinForm").validate({ rules: { email: { required: true, email: true, }, password: { required: true, minlength: 5, }, terms: { required: true, }, }, messages: { email: { required: "Please enter a email address", email: "Please enter a valid email address", }, password: { required: "Please provide a password", minlength: "Your password must be at least 5 characters long", }, terms: "Please accept our terms", }, errorElement: "span", errorPlacement: function (error, element) { error.addClass("invalid-feedback"); element.closest(".form-group").append(error); }, highlight: function (element, errorClass, validClass) { $(element).addClass("is-invalid"); }, unhighlight: function (element, errorClass, validClass) { $(element).removeClass("is-invalid"); }, }); $("#toggle_pwd").on("click", function () { var $password = $("#txt_password"); if ($password.prop("type") == "password") { $password.prop("type", "text"); $("#toggle_eye").html('<span class="fas fa-eye-slash"></span>'); } else { $password.prop("type", "password"); $("#toggle_eye").html('<span class="fas fa-eye" ></span>'); } $password.trigger("focus"); }); $("#chk_remember").change(function () { if ($(this).is(":checked")) { $(this).val("1"); } else { $(this).val("0"); } }); }); })(); adminlte.js 0000644 00000313504 15025021321 0006674 0 ustar 00 /*! * AdminLTE v3.2.0 (https://adminlte.io) * Copyright 2014-2022 Colorlib <https://colorlib.com> * Licensed under MIT (https://github.com/ColorlibHQ/AdminLTE/blob/master/LICENSE) */ (function (global, factory) { typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('jquery')) : typeof define === 'function' && define.amd ? define(['exports', 'jquery'], factory) : (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.adminlte = {}, global.jQuery)); })(this, (function (exports, $) { 'use strict'; function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } var $__default = /*#__PURE__*/_interopDefaultLegacy($); /** * -------------------------------------------- * AdminLTE CardRefresh.js * License MIT * -------------------------------------------- */ /** * Constants * ==================================================== */ var NAME$e = 'CardRefresh'; var DATA_KEY$e = 'lte.cardrefresh'; var EVENT_KEY$7 = "." + DATA_KEY$e; var JQUERY_NO_CONFLICT$e = $__default["default"].fn[NAME$e]; var EVENT_LOADED = "loaded" + EVENT_KEY$7; var EVENT_OVERLAY_ADDED = "overlay.added" + EVENT_KEY$7; var EVENT_OVERLAY_REMOVED = "overlay.removed" + EVENT_KEY$7; var CLASS_NAME_CARD$1 = 'card'; var SELECTOR_CARD$1 = "." + CLASS_NAME_CARD$1; var SELECTOR_DATA_REFRESH = '[data-card-widget="card-refresh"]'; var Default$c = { source: '', sourceSelector: '', params: {}, trigger: SELECTOR_DATA_REFRESH, content: '.card-body', loadInContent: true, loadOnInit: true, loadErrorTemplate: true, responseType: '', overlayTemplate: '<div class="overlay"><i class="fas fa-2x fa-sync-alt fa-spin"></i></div>', errorTemplate: '<span class="text-danger"></span>', onLoadStart: function onLoadStart() {}, onLoadDone: function onLoadDone(response) { return response; }, onLoadFail: function onLoadFail(_jqXHR, _textStatus, _errorThrown) {} }; var CardRefresh = /*#__PURE__*/function () { function CardRefresh(element, settings) { this._element = element; this._parent = element.parents(SELECTOR_CARD$1).first(); this._settings = $__default["default"].extend({}, Default$c, settings); this._overlay = $__default["default"](this._settings.overlayTemplate); if (element.hasClass(CLASS_NAME_CARD$1)) { this._parent = element; } if (this._settings.source === '') { throw new Error('Source url was not defined. Please specify a url in your CardRefresh source option.'); } } var _proto = CardRefresh.prototype; _proto.load = function load() { var _this = this; this._addOverlay(); this._settings.onLoadStart.call($__default["default"](this)); $__default["default"].get(this._settings.source, this._settings.params, function (response) { if (_this._settings.loadInContent) { if (_this._settings.sourceSelector !== '') { response = $__default["default"](response).find(_this._settings.sourceSelector).html(); } _this._parent.find(_this._settings.content).html(response); } _this._settings.onLoadDone.call($__default["default"](_this), response); _this._removeOverlay(); }, this._settings.responseType !== '' && this._settings.responseType).fail(function (jqXHR, textStatus, errorThrown) { _this._removeOverlay(); if (_this._settings.loadErrorTemplate) { var msg = $__default["default"](_this._settings.errorTemplate).text(errorThrown); _this._parent.find(_this._settings.content).empty().append(msg); } _this._settings.onLoadFail.call($__default["default"](_this), jqXHR, textStatus, errorThrown); }); $__default["default"](this._element).trigger($__default["default"].Event(EVENT_LOADED)); }; _proto._addOverlay = function _addOverlay() { this._parent.append(this._overlay); $__default["default"](this._element).trigger($__default["default"].Event(EVENT_OVERLAY_ADDED)); }; _proto._removeOverlay = function _removeOverlay() { this._parent.find(this._overlay).remove(); $__default["default"](this._element).trigger($__default["default"].Event(EVENT_OVERLAY_REMOVED)); } // Private ; _proto._init = function _init() { var _this2 = this; $__default["default"](this).find(this._settings.trigger).on('click', function () { _this2.load(); }); if (this._settings.loadOnInit) { this.load(); } } // Static ; CardRefresh._jQueryInterface = function _jQueryInterface(config) { var data = $__default["default"](this).data(DATA_KEY$e); var _options = $__default["default"].extend({}, Default$c, $__default["default"](this).data()); if (!data) { data = new CardRefresh($__default["default"](this), _options); $__default["default"](this).data(DATA_KEY$e, typeof config === 'string' ? data : config); } if (typeof config === 'string' && /load/.test(config)) { data[config](); } else { data._init($__default["default"](this)); } }; return CardRefresh; }(); /** * Data API * ==================================================== */ $__default["default"](document).on('click', SELECTOR_DATA_REFRESH, function (event) { if (event) { event.preventDefault(); } CardRefresh._jQueryInterface.call($__default["default"](this), 'load'); }); $__default["default"](function () { $__default["default"](SELECTOR_DATA_REFRESH).each(function () { CardRefresh._jQueryInterface.call($__default["default"](this)); }); }); /** * jQuery API * ==================================================== */ $__default["default"].fn[NAME$e] = CardRefresh._jQueryInterface; $__default["default"].fn[NAME$e].Constructor = CardRefresh; $__default["default"].fn[NAME$e].noConflict = function () { $__default["default"].fn[NAME$e] = JQUERY_NO_CONFLICT$e; return CardRefresh._jQueryInterface; }; /** * -------------------------------------------- * AdminLTE CardWidget.js * License MIT * -------------------------------------------- */ /** * Constants * ==================================================== */ var NAME$d = 'CardWidget'; var DATA_KEY$d = 'lte.cardwidget'; var EVENT_KEY$6 = "." + DATA_KEY$d; var JQUERY_NO_CONFLICT$d = $__default["default"].fn[NAME$d]; var EVENT_EXPANDED$3 = "expanded" + EVENT_KEY$6; var EVENT_COLLAPSED$4 = "collapsed" + EVENT_KEY$6; var EVENT_MAXIMIZED = "maximized" + EVENT_KEY$6; var EVENT_MINIMIZED = "minimized" + EVENT_KEY$6; var EVENT_REMOVED$1 = "removed" + EVENT_KEY$6; var CLASS_NAME_CARD = 'card'; var CLASS_NAME_COLLAPSED$1 = 'collapsed-card'; var CLASS_NAME_COLLAPSING = 'collapsing-card'; var CLASS_NAME_EXPANDING = 'expanding-card'; var CLASS_NAME_WAS_COLLAPSED = 'was-collapsed'; var CLASS_NAME_MAXIMIZED = 'maximized-card'; var SELECTOR_DATA_REMOVE = '[data-card-widget="remove"]'; var SELECTOR_DATA_COLLAPSE = '[data-card-widget="collapse"]'; var SELECTOR_DATA_MAXIMIZE = '[data-card-widget="maximize"]'; var SELECTOR_CARD = "." + CLASS_NAME_CARD; var SELECTOR_CARD_HEADER = '.card-header'; var SELECTOR_CARD_BODY = '.card-body'; var SELECTOR_CARD_FOOTER = '.card-footer'; var Default$b = { animationSpeed: 'normal', collapseTrigger: SELECTOR_DATA_COLLAPSE, removeTrigger: SELECTOR_DATA_REMOVE, maximizeTrigger: SELECTOR_DATA_MAXIMIZE, collapseIcon: 'fa-minus', expandIcon: 'fa-plus', maximizeIcon: 'fa-expand', minimizeIcon: 'fa-compress' }; var CardWidget = /*#__PURE__*/function () { function CardWidget(element, settings) { this._element = element; this._parent = element.parents(SELECTOR_CARD).first(); if (element.hasClass(CLASS_NAME_CARD)) { this._parent = element; } this._settings = $__default["default"].extend({}, Default$b, settings); } var _proto = CardWidget.prototype; _proto.collapse = function collapse() { var _this = this; this._parent.addClass(CLASS_NAME_COLLAPSING).children(SELECTOR_CARD_BODY + ", " + SELECTOR_CARD_FOOTER).slideUp(this._settings.animationSpeed, function () { _this._parent.addClass(CLASS_NAME_COLLAPSED$1).removeClass(CLASS_NAME_COLLAPSING); }); this._parent.find("> " + SELECTOR_CARD_HEADER + " " + this._settings.collapseTrigger + " ." + this._settings.collapseIcon).addClass(this._settings.expandIcon).removeClass(this._settings.collapseIcon); this._element.trigger($__default["default"].Event(EVENT_COLLAPSED$4), this._parent); }; _proto.expand = function expand() { var _this2 = this; this._parent.addClass(CLASS_NAME_EXPANDING).children(SELECTOR_CARD_BODY + ", " + SELECTOR_CARD_FOOTER).slideDown(this._settings.animationSpeed, function () { _this2._parent.removeClass(CLASS_NAME_COLLAPSED$1).removeClass(CLASS_NAME_EXPANDING); }); this._parent.find("> " + SELECTOR_CARD_HEADER + " " + this._settings.collapseTrigger + " ." + this._settings.expandIcon).addClass(this._settings.collapseIcon).removeClass(this._settings.expandIcon); this._element.trigger($__default["default"].Event(EVENT_EXPANDED$3), this._parent); }; _proto.remove = function remove() { this._parent.slideUp(); this._element.trigger($__default["default"].Event(EVENT_REMOVED$1), this._parent); }; _proto.toggle = function toggle() { if (this._parent.hasClass(CLASS_NAME_COLLAPSED$1)) { this.expand(); return; } this.collapse(); }; _proto.maximize = function maximize() { this._parent.find(this._settings.maximizeTrigger + " ." + this._settings.maximizeIcon).addClass(this._settings.minimizeIcon).removeClass(this._settings.maximizeIcon); this._parent.css({ height: this._parent.height(), width: this._parent.width(), transition: 'all .15s' }).delay(150).queue(function () { var $element = $__default["default"](this); $element.addClass(CLASS_NAME_MAXIMIZED); $__default["default"]('html').addClass(CLASS_NAME_MAXIMIZED); if ($element.hasClass(CLASS_NAME_COLLAPSED$1)) { $element.addClass(CLASS_NAME_WAS_COLLAPSED); } $element.dequeue(); }); this._element.trigger($__default["default"].Event(EVENT_MAXIMIZED), this._parent); }; _proto.minimize = function minimize() { this._parent.find(this._settings.maximizeTrigger + " ." + this._settings.minimizeIcon).addClass(this._settings.maximizeIcon).removeClass(this._settings.minimizeIcon); this._parent.css('cssText', "height: " + this._parent[0].style.height + " !important; width: " + this._parent[0].style.width + " !important; transition: all .15s;").delay(10).queue(function () { var $element = $__default["default"](this); $element.removeClass(CLASS_NAME_MAXIMIZED); $__default["default"]('html').removeClass(CLASS_NAME_MAXIMIZED); $element.css({ height: 'inherit', width: 'inherit' }); if ($element.hasClass(CLASS_NAME_WAS_COLLAPSED)) { $element.removeClass(CLASS_NAME_WAS_COLLAPSED); } $element.dequeue(); }); this._element.trigger($__default["default"].Event(EVENT_MINIMIZED), this._parent); }; _proto.toggleMaximize = function toggleMaximize() { if (this._parent.hasClass(CLASS_NAME_MAXIMIZED)) { this.minimize(); return; } this.maximize(); } // Private ; _proto._init = function _init(card) { var _this3 = this; this._parent = card; $__default["default"](this).find(this._settings.collapseTrigger).click(function () { _this3.toggle(); }); $__default["default"](this).find(this._settings.maximizeTrigger).click(function () { _this3.toggleMaximize(); }); $__default["default"](this).find(this._settings.removeTrigger).click(function () { _this3.remove(); }); } // Static ; CardWidget._jQueryInterface = function _jQueryInterface(config) { var data = $__default["default"](this).data(DATA_KEY$d); var _options = $__default["default"].extend({}, Default$b, $__default["default"](this).data()); if (!data) { data = new CardWidget($__default["default"](this), _options); $__default["default"](this).data(DATA_KEY$d, typeof config === 'string' ? data : config); } if (typeof config === 'string' && /collapse|expand|remove|toggle|maximize|minimize|toggleMaximize/.test(config)) { data[config](); } else if (typeof config === 'object') { data._init($__default["default"](this)); } }; return CardWidget; }(); /** * Data API * ==================================================== */ $__default["default"](document).on('click', SELECTOR_DATA_COLLAPSE, function (event) { if (event) { event.preventDefault(); } CardWidget._jQueryInterface.call($__default["default"](this), 'toggle'); }); $__default["default"](document).on('click', SELECTOR_DATA_REMOVE, function (event) { if (event) { event.preventDefault(); } CardWidget._jQueryInterface.call($__default["default"](this), 'remove'); }); $__default["default"](document).on('click', SELECTOR_DATA_MAXIMIZE, function (event) { if (event) { event.preventDefault(); } CardWidget._jQueryInterface.call($__default["default"](this), 'toggleMaximize'); }); /** * jQuery API * ==================================================== */ $__default["default"].fn[NAME$d] = CardWidget._jQueryInterface; $__default["default"].fn[NAME$d].Constructor = CardWidget; $__default["default"].fn[NAME$d].noConflict = function () { $__default["default"].fn[NAME$d] = JQUERY_NO_CONFLICT$d; return CardWidget._jQueryInterface; }; /** * -------------------------------------------- * AdminLTE ControlSidebar.js * License MIT * -------------------------------------------- */ /** * Constants * ==================================================== */ var NAME$c = 'ControlSidebar'; var DATA_KEY$c = 'lte.controlsidebar'; var EVENT_KEY$5 = "." + DATA_KEY$c; var JQUERY_NO_CONFLICT$c = $__default["default"].fn[NAME$c]; var EVENT_COLLAPSED$3 = "collapsed" + EVENT_KEY$5; var EVENT_COLLAPSED_DONE$1 = "collapsed-done" + EVENT_KEY$5; var EVENT_EXPANDED$2 = "expanded" + EVENT_KEY$5; var SELECTOR_CONTROL_SIDEBAR = '.control-sidebar'; var SELECTOR_CONTROL_SIDEBAR_CONTENT$1 = '.control-sidebar-content'; var SELECTOR_DATA_TOGGLE$4 = '[data-widget="control-sidebar"]'; var SELECTOR_HEADER$1 = '.main-header'; var SELECTOR_FOOTER$1 = '.main-footer'; var CLASS_NAME_CONTROL_SIDEBAR_ANIMATE = 'control-sidebar-animate'; var CLASS_NAME_CONTROL_SIDEBAR_OPEN$1 = 'control-sidebar-open'; var CLASS_NAME_CONTROL_SIDEBAR_SLIDE = 'control-sidebar-slide-open'; var CLASS_NAME_LAYOUT_FIXED$1 = 'layout-fixed'; var CLASS_NAME_NAVBAR_FIXED = 'layout-navbar-fixed'; var CLASS_NAME_NAVBAR_SM_FIXED = 'layout-sm-navbar-fixed'; var CLASS_NAME_NAVBAR_MD_FIXED = 'layout-md-navbar-fixed'; var CLASS_NAME_NAVBAR_LG_FIXED = 'layout-lg-navbar-fixed'; var CLASS_NAME_NAVBAR_XL_FIXED = 'layout-xl-navbar-fixed'; var CLASS_NAME_FOOTER_FIXED = 'layout-footer-fixed'; var CLASS_NAME_FOOTER_SM_FIXED = 'layout-sm-footer-fixed'; var CLASS_NAME_FOOTER_MD_FIXED = 'layout-md-footer-fixed'; var CLASS_NAME_FOOTER_LG_FIXED = 'layout-lg-footer-fixed'; var CLASS_NAME_FOOTER_XL_FIXED = 'layout-xl-footer-fixed'; var Default$a = { controlsidebarSlide: true, scrollbarTheme: 'os-theme-light', scrollbarAutoHide: 'l', target: SELECTOR_CONTROL_SIDEBAR, animationSpeed: 300 }; /** * Class Definition * ==================================================== */ var ControlSidebar = /*#__PURE__*/function () { function ControlSidebar(element, config) { this._element = element; this._config = config; } // Public var _proto = ControlSidebar.prototype; _proto.collapse = function collapse() { var _this = this; var $body = $__default["default"]('body'); var $html = $__default["default"]('html'); // Show the control sidebar if (this._config.controlsidebarSlide) { $html.addClass(CLASS_NAME_CONTROL_SIDEBAR_ANIMATE); $body.removeClass(CLASS_NAME_CONTROL_SIDEBAR_SLIDE).delay(300).queue(function () { $__default["default"](SELECTOR_CONTROL_SIDEBAR).hide(); $html.removeClass(CLASS_NAME_CONTROL_SIDEBAR_ANIMATE); $__default["default"](this).dequeue(); }); } else { $body.removeClass(CLASS_NAME_CONTROL_SIDEBAR_OPEN$1); } $__default["default"](this._element).trigger($__default["default"].Event(EVENT_COLLAPSED$3)); setTimeout(function () { $__default["default"](_this._element).trigger($__default["default"].Event(EVENT_COLLAPSED_DONE$1)); }, this._config.animationSpeed); }; _proto.show = function show(toggle) { if (toggle === void 0) { toggle = false; } var $body = $__default["default"]('body'); var $html = $__default["default"]('html'); if (toggle) { $__default["default"](SELECTOR_CONTROL_SIDEBAR).hide(); } // Collapse the control sidebar if (this._config.controlsidebarSlide) { $html.addClass(CLASS_NAME_CONTROL_SIDEBAR_ANIMATE); $__default["default"](this._config.target).show().delay(10).queue(function () { $body.addClass(CLASS_NAME_CONTROL_SIDEBAR_SLIDE).delay(300).queue(function () { $html.removeClass(CLASS_NAME_CONTROL_SIDEBAR_ANIMATE); $__default["default"](this).dequeue(); }); $__default["default"](this).dequeue(); }); } else { $body.addClass(CLASS_NAME_CONTROL_SIDEBAR_OPEN$1); } this._fixHeight(); this._fixScrollHeight(); $__default["default"](this._element).trigger($__default["default"].Event(EVENT_EXPANDED$2)); }; _proto.toggle = function toggle() { var $body = $__default["default"]('body'); var target = this._config.target; var notVisible = !$__default["default"](target).is(':visible'); var shouldClose = $body.hasClass(CLASS_NAME_CONTROL_SIDEBAR_OPEN$1) || $body.hasClass(CLASS_NAME_CONTROL_SIDEBAR_SLIDE); var shouldToggle = notVisible && ($body.hasClass(CLASS_NAME_CONTROL_SIDEBAR_OPEN$1) || $body.hasClass(CLASS_NAME_CONTROL_SIDEBAR_SLIDE)); if (notVisible || shouldToggle) { // Open the control sidebar this.show(notVisible); } else if (shouldClose) { // Close the control sidebar this.collapse(); } } // Private ; _proto._init = function _init() { var _this2 = this; var $body = $__default["default"]('body'); var shouldNotHideAll = $body.hasClass(CLASS_NAME_CONTROL_SIDEBAR_OPEN$1) || $body.hasClass(CLASS_NAME_CONTROL_SIDEBAR_SLIDE); if (shouldNotHideAll) { $__default["default"](SELECTOR_CONTROL_SIDEBAR).not(this._config.target).hide(); $__default["default"](this._config.target).css('display', 'block'); } else { $__default["default"](SELECTOR_CONTROL_SIDEBAR).hide(); } this._fixHeight(); this._fixScrollHeight(); $__default["default"](window).resize(function () { _this2._fixHeight(); _this2._fixScrollHeight(); }); $__default["default"](window).scroll(function () { var $body = $__default["default"]('body'); var shouldFixHeight = $body.hasClass(CLASS_NAME_CONTROL_SIDEBAR_OPEN$1) || $body.hasClass(CLASS_NAME_CONTROL_SIDEBAR_SLIDE); if (shouldFixHeight) { _this2._fixScrollHeight(); } }); }; _proto._isNavbarFixed = function _isNavbarFixed() { var $body = $__default["default"]('body'); return $body.hasClass(CLASS_NAME_NAVBAR_FIXED) || $body.hasClass(CLASS_NAME_NAVBAR_SM_FIXED) || $body.hasClass(CLASS_NAME_NAVBAR_MD_FIXED) || $body.hasClass(CLASS_NAME_NAVBAR_LG_FIXED) || $body.hasClass(CLASS_NAME_NAVBAR_XL_FIXED); }; _proto._isFooterFixed = function _isFooterFixed() { var $body = $__default["default"]('body'); return $body.hasClass(CLASS_NAME_FOOTER_FIXED) || $body.hasClass(CLASS_NAME_FOOTER_SM_FIXED) || $body.hasClass(CLASS_NAME_FOOTER_MD_FIXED) || $body.hasClass(CLASS_NAME_FOOTER_LG_FIXED) || $body.hasClass(CLASS_NAME_FOOTER_XL_FIXED); }; _proto._fixScrollHeight = function _fixScrollHeight() { var $body = $__default["default"]('body'); var $controlSidebar = $__default["default"](this._config.target); if (!$body.hasClass(CLASS_NAME_LAYOUT_FIXED$1)) { return; } var heights = { scroll: $__default["default"](document).height(), window: $__default["default"](window).height(), header: $__default["default"](SELECTOR_HEADER$1).outerHeight(), footer: $__default["default"](SELECTOR_FOOTER$1).outerHeight() }; var positions = { bottom: Math.abs(heights.window + $__default["default"](window).scrollTop() - heights.scroll), top: $__default["default"](window).scrollTop() }; var navbarFixed = this._isNavbarFixed() && $__default["default"](SELECTOR_HEADER$1).css('position') === 'fixed'; var footerFixed = this._isFooterFixed() && $__default["default"](SELECTOR_FOOTER$1).css('position') === 'fixed'; var $controlsidebarContent = $__default["default"](this._config.target + ", " + this._config.target + " " + SELECTOR_CONTROL_SIDEBAR_CONTENT$1); if (positions.top === 0 && positions.bottom === 0) { $controlSidebar.css({ bottom: heights.footer, top: heights.header }); $controlsidebarContent.css('height', heights.window - (heights.header + heights.footer)); } else if (positions.bottom <= heights.footer) { if (footerFixed === false) { var top = heights.header - positions.top; $controlSidebar.css('bottom', heights.footer - positions.bottom).css('top', top >= 0 ? top : 0); $controlsidebarContent.css('height', heights.window - (heights.footer - positions.bottom)); } else { $controlSidebar.css('bottom', heights.footer); } } else if (positions.top <= heights.header) { if (navbarFixed === false) { $controlSidebar.css('top', heights.header - positions.top); $controlsidebarContent.css('height', heights.window - (heights.header - positions.top)); } else { $controlSidebar.css('top', heights.header); } } else if (navbarFixed === false) { $controlSidebar.css('top', 0); $controlsidebarContent.css('height', heights.window); } else { $controlSidebar.css('top', heights.header); } if (footerFixed && navbarFixed) { $controlsidebarContent.css('height', '100%'); $controlSidebar.css('height', ''); } else if (footerFixed || navbarFixed) { $controlsidebarContent.css('height', '100%'); $controlsidebarContent.css('height', ''); } }; _proto._fixHeight = function _fixHeight() { var $body = $__default["default"]('body'); var $controlSidebar = $__default["default"](this._config.target + " " + SELECTOR_CONTROL_SIDEBAR_CONTENT$1); if (!$body.hasClass(CLASS_NAME_LAYOUT_FIXED$1)) { $controlSidebar.attr('style', ''); return; } var heights = { window: $__default["default"](window).height(), header: $__default["default"](SELECTOR_HEADER$1).outerHeight(), footer: $__default["default"](SELECTOR_FOOTER$1).outerHeight() }; var sidebarHeight = heights.window - heights.header; if (this._isFooterFixed() && $__default["default"](SELECTOR_FOOTER$1).css('position') === 'fixed') { sidebarHeight = heights.window - heights.header - heights.footer; } $controlSidebar.css('height', sidebarHeight); if (typeof $__default["default"].fn.overlayScrollbars !== 'undefined') { $controlSidebar.overlayScrollbars({ className: this._config.scrollbarTheme, sizeAutoCapable: true, scrollbars: { autoHide: this._config.scrollbarAutoHide, clickScrolling: true } }); } } // Static ; ControlSidebar._jQueryInterface = function _jQueryInterface(operation) { return this.each(function () { var data = $__default["default"](this).data(DATA_KEY$c); var _options = $__default["default"].extend({}, Default$a, $__default["default"](this).data()); if (!data) { data = new ControlSidebar(this, _options); $__default["default"](this).data(DATA_KEY$c, data); } if (data[operation] === 'undefined') { throw new Error(operation + " is not a function"); } data[operation](); }); }; return ControlSidebar; }(); /** * * Data Api implementation * ==================================================== */ $__default["default"](document).on('click', SELECTOR_DATA_TOGGLE$4, function (event) { event.preventDefault(); ControlSidebar._jQueryInterface.call($__default["default"](this), 'toggle'); }); $__default["default"](document).ready(function () { ControlSidebar._jQueryInterface.call($__default["default"](SELECTOR_DATA_TOGGLE$4), '_init'); }); /** * jQuery API * ==================================================== */ $__default["default"].fn[NAME$c] = ControlSidebar._jQueryInterface; $__default["default"].fn[NAME$c].Constructor = ControlSidebar; $__default["default"].fn[NAME$c].noConflict = function () { $__default["default"].fn[NAME$c] = JQUERY_NO_CONFLICT$c; return ControlSidebar._jQueryInterface; }; /** * -------------------------------------------- * AdminLTE DirectChat.js * License MIT * -------------------------------------------- */ /** * Constants * ==================================================== */ var NAME$b = 'DirectChat'; var DATA_KEY$b = 'lte.directchat'; var EVENT_KEY$4 = "." + DATA_KEY$b; var JQUERY_NO_CONFLICT$b = $__default["default"].fn[NAME$b]; var EVENT_TOGGLED = "toggled" + EVENT_KEY$4; var SELECTOR_DATA_TOGGLE$3 = '[data-widget="chat-pane-toggle"]'; var SELECTOR_DIRECT_CHAT = '.direct-chat'; var CLASS_NAME_DIRECT_CHAT_OPEN = 'direct-chat-contacts-open'; /** * Class Definition * ==================================================== */ var DirectChat = /*#__PURE__*/function () { function DirectChat(element) { this._element = element; } var _proto = DirectChat.prototype; _proto.toggle = function toggle() { $__default["default"](this._element).parents(SELECTOR_DIRECT_CHAT).first().toggleClass(CLASS_NAME_DIRECT_CHAT_OPEN); $__default["default"](this._element).trigger($__default["default"].Event(EVENT_TOGGLED)); } // Static ; DirectChat._jQueryInterface = function _jQueryInterface(config) { return this.each(function () { var data = $__default["default"](this).data(DATA_KEY$b); if (!data) { data = new DirectChat($__default["default"](this)); $__default["default"](this).data(DATA_KEY$b, data); } data[config](); }); }; return DirectChat; }(); /** * * Data Api implementation * ==================================================== */ $__default["default"](document).on('click', SELECTOR_DATA_TOGGLE$3, function (event) { if (event) { event.preventDefault(); } DirectChat._jQueryInterface.call($__default["default"](this), 'toggle'); }); /** * jQuery API * ==================================================== */ $__default["default"].fn[NAME$b] = DirectChat._jQueryInterface; $__default["default"].fn[NAME$b].Constructor = DirectChat; $__default["default"].fn[NAME$b].noConflict = function () { $__default["default"].fn[NAME$b] = JQUERY_NO_CONFLICT$b; return DirectChat._jQueryInterface; }; /** * -------------------------------------------- * AdminLTE Dropdown.js * License MIT * -------------------------------------------- */ /** * Constants * ==================================================== */ var NAME$a = 'Dropdown'; var DATA_KEY$a = 'lte.dropdown'; var JQUERY_NO_CONFLICT$a = $__default["default"].fn[NAME$a]; var SELECTOR_NAVBAR = '.navbar'; var SELECTOR_DROPDOWN_MENU = '.dropdown-menu'; var SELECTOR_DROPDOWN_MENU_ACTIVE = '.dropdown-menu.show'; var SELECTOR_DROPDOWN_TOGGLE = '[data-toggle="dropdown"]'; var CLASS_NAME_DROPDOWN_RIGHT = 'dropdown-menu-right'; var CLASS_NAME_DROPDOWN_SUBMENU = 'dropdown-submenu'; // TODO: this is unused; should be removed along with the extend? var Default$9 = {}; /** * Class Definition * ==================================================== */ var Dropdown = /*#__PURE__*/function () { function Dropdown(element, config) { this._config = config; this._element = element; } // Public var _proto = Dropdown.prototype; _proto.toggleSubmenu = function toggleSubmenu() { this._element.siblings().show().toggleClass('show'); if (!this._element.next().hasClass('show')) { this._element.parents(SELECTOR_DROPDOWN_MENU).first().find('.show').removeClass('show').hide(); } this._element.parents('li.nav-item.dropdown.show').on('hidden.bs.dropdown', function () { $__default["default"]('.dropdown-submenu .show').removeClass('show').hide(); }); }; _proto.fixPosition = function fixPosition() { var $element = $__default["default"](SELECTOR_DROPDOWN_MENU_ACTIVE); if ($element.length === 0) { return; } if ($element.hasClass(CLASS_NAME_DROPDOWN_RIGHT)) { $element.css({ left: 'inherit', right: 0 }); } else { $element.css({ left: 0, right: 'inherit' }); } var offset = $element.offset(); var width = $element.width(); var visiblePart = $__default["default"](window).width() - offset.left; if (offset.left < 0) { $element.css({ left: 'inherit', right: offset.left - 5 }); } else if (visiblePart < width) { $element.css({ left: 'inherit', right: 0 }); } } // Static ; Dropdown._jQueryInterface = function _jQueryInterface(config) { return this.each(function () { var data = $__default["default"](this).data(DATA_KEY$a); var _config = $__default["default"].extend({}, Default$9, $__default["default"](this).data()); if (!data) { data = new Dropdown($__default["default"](this), _config); $__default["default"](this).data(DATA_KEY$a, data); } if (config === 'toggleSubmenu' || config === 'fixPosition') { data[config](); } }); }; return Dropdown; }(); /** * Data API * ==================================================== */ $__default["default"](SELECTOR_DROPDOWN_MENU + " " + SELECTOR_DROPDOWN_TOGGLE).on('click', function (event) { event.preventDefault(); event.stopPropagation(); Dropdown._jQueryInterface.call($__default["default"](this), 'toggleSubmenu'); }); $__default["default"](SELECTOR_NAVBAR + " " + SELECTOR_DROPDOWN_TOGGLE).on('click', function (event) { event.preventDefault(); if ($__default["default"](event.target).parent().hasClass(CLASS_NAME_DROPDOWN_SUBMENU)) { return; } setTimeout(function () { Dropdown._jQueryInterface.call($__default["default"](this), 'fixPosition'); }, 1); }); /** * jQuery API * ==================================================== */ $__default["default"].fn[NAME$a] = Dropdown._jQueryInterface; $__default["default"].fn[NAME$a].Constructor = Dropdown; $__default["default"].fn[NAME$a].noConflict = function () { $__default["default"].fn[NAME$a] = JQUERY_NO_CONFLICT$a; return Dropdown._jQueryInterface; }; /** * -------------------------------------------- * AdminLTE ExpandableTable.js * License MIT * -------------------------------------------- */ /** * Constants * ==================================================== */ var NAME$9 = 'ExpandableTable'; var DATA_KEY$9 = 'lte.expandableTable'; var EVENT_KEY$3 = "." + DATA_KEY$9; var JQUERY_NO_CONFLICT$9 = $__default["default"].fn[NAME$9]; var EVENT_EXPANDED$1 = "expanded" + EVENT_KEY$3; var EVENT_COLLAPSED$2 = "collapsed" + EVENT_KEY$3; var SELECTOR_TABLE = '.expandable-table'; var SELECTOR_EXPANDABLE_BODY = '.expandable-body'; var SELECTOR_DATA_TOGGLE$2 = '[data-widget="expandable-table"]'; var SELECTOR_ARIA_ATTR = 'aria-expanded'; /** * Class Definition * ==================================================== */ var ExpandableTable = /*#__PURE__*/function () { function ExpandableTable(element, options) { this._options = options; this._element = element; } // Public var _proto = ExpandableTable.prototype; _proto.init = function init() { $__default["default"](SELECTOR_DATA_TOGGLE$2).each(function (_, $header) { var $type = $__default["default"]($header).attr(SELECTOR_ARIA_ATTR); var $body = $__default["default"]($header).next(SELECTOR_EXPANDABLE_BODY).children().first().children(); if ($type === 'true') { $body.show(); } else if ($type === 'false') { $body.hide(); $body.parent().parent().addClass('d-none'); } }); }; _proto.toggleRow = function toggleRow() { var $element = this._element; if ($element[0].nodeName !== 'TR') { $element = $element.parent(); if ($element[0].nodeName !== 'TR') { $element = $element.parent(); } } var time = 500; var $type = $element.attr(SELECTOR_ARIA_ATTR); var $body = $element.next(SELECTOR_EXPANDABLE_BODY).children().first().children(); $body.stop(); if ($type === 'true') { $body.slideUp(time, function () { $element.next(SELECTOR_EXPANDABLE_BODY).addClass('d-none'); }); $element.attr(SELECTOR_ARIA_ATTR, 'false'); $element.trigger($__default["default"].Event(EVENT_COLLAPSED$2)); } else if ($type === 'false') { $element.next(SELECTOR_EXPANDABLE_BODY).removeClass('d-none'); $body.slideDown(time); $element.attr(SELECTOR_ARIA_ATTR, 'true'); $element.trigger($__default["default"].Event(EVENT_EXPANDED$1)); } } // Static ; ExpandableTable._jQueryInterface = function _jQueryInterface(operation) { return this.each(function () { var data = $__default["default"](this).data(DATA_KEY$9); if (!data) { data = new ExpandableTable($__default["default"](this)); $__default["default"](this).data(DATA_KEY$9, data); } if (typeof operation === 'string' && /init|toggleRow/.test(operation)) { data[operation](); } }); }; return ExpandableTable; }(); /** * Data API * ==================================================== */ $__default["default"](SELECTOR_TABLE).ready(function () { ExpandableTable._jQueryInterface.call($__default["default"](this), 'init'); }); $__default["default"](document).on('click', SELECTOR_DATA_TOGGLE$2, function () { ExpandableTable._jQueryInterface.call($__default["default"](this), 'toggleRow'); }); /** * jQuery API * ==================================================== */ $__default["default"].fn[NAME$9] = ExpandableTable._jQueryInterface; $__default["default"].fn[NAME$9].Constructor = ExpandableTable; $__default["default"].fn[NAME$9].noConflict = function () { $__default["default"].fn[NAME$9] = JQUERY_NO_CONFLICT$9; return ExpandableTable._jQueryInterface; }; /** * -------------------------------------------- * AdminLTE Fullscreen.js * License MIT * -------------------------------------------- */ /** * Constants * ==================================================== */ var NAME$8 = 'Fullscreen'; var DATA_KEY$8 = 'lte.fullscreen'; var JQUERY_NO_CONFLICT$8 = $__default["default"].fn[NAME$8]; var SELECTOR_DATA_WIDGET$2 = '[data-widget="fullscreen"]'; var SELECTOR_ICON = SELECTOR_DATA_WIDGET$2 + " i"; var EVENT_FULLSCREEN_CHANGE = 'webkitfullscreenchange mozfullscreenchange fullscreenchange MSFullscreenChange'; var Default$8 = { minimizeIcon: 'fa-compress-arrows-alt', maximizeIcon: 'fa-expand-arrows-alt' }; /** * Class Definition * ==================================================== */ var Fullscreen = /*#__PURE__*/function () { function Fullscreen(_element, _options) { this.element = _element; this.options = $__default["default"].extend({}, Default$8, _options); } // Public var _proto = Fullscreen.prototype; _proto.toggle = function toggle() { if (document.fullscreenElement || document.mozFullScreenElement || document.webkitFullscreenElement || document.msFullscreenElement) { this.windowed(); } else { this.fullscreen(); } }; _proto.toggleIcon = function toggleIcon() { if (document.fullscreenElement || document.mozFullScreenElement || document.webkitFullscreenElement || document.msFullscreenElement) { $__default["default"](SELECTOR_ICON).removeClass(this.options.maximizeIcon).addClass(this.options.minimizeIcon); } else { $__default["default"](SELECTOR_ICON).removeClass(this.options.minimizeIcon).addClass(this.options.maximizeIcon); } }; _proto.fullscreen = function fullscreen() { if (document.documentElement.requestFullscreen) { document.documentElement.requestFullscreen(); } else if (document.documentElement.webkitRequestFullscreen) { document.documentElement.webkitRequestFullscreen(); } else if (document.documentElement.msRequestFullscreen) { document.documentElement.msRequestFullscreen(); } }; _proto.windowed = function windowed() { if (document.exitFullscreen) { document.exitFullscreen(); } else if (document.webkitExitFullscreen) { document.webkitExitFullscreen(); } else if (document.msExitFullscreen) { document.msExitFullscreen(); } } // Static ; Fullscreen._jQueryInterface = function _jQueryInterface(config) { var data = $__default["default"](this).data(DATA_KEY$8); if (!data) { data = $__default["default"](this).data(); } var _options = $__default["default"].extend({}, Default$8, typeof config === 'object' ? config : data); var plugin = new Fullscreen($__default["default"](this), _options); $__default["default"](this).data(DATA_KEY$8, typeof config === 'object' ? config : data); if (typeof config === 'string' && /toggle|toggleIcon|fullscreen|windowed/.test(config)) { plugin[config](); } else { plugin.init(); } }; return Fullscreen; }(); /** * Data API * ==================================================== */ $__default["default"](document).on('click', SELECTOR_DATA_WIDGET$2, function () { Fullscreen._jQueryInterface.call($__default["default"](this), 'toggle'); }); $__default["default"](document).on(EVENT_FULLSCREEN_CHANGE, function () { Fullscreen._jQueryInterface.call($__default["default"](SELECTOR_DATA_WIDGET$2), 'toggleIcon'); }); /** * jQuery API * ==================================================== */ $__default["default"].fn[NAME$8] = Fullscreen._jQueryInterface; $__default["default"].fn[NAME$8].Constructor = Fullscreen; $__default["default"].fn[NAME$8].noConflict = function () { $__default["default"].fn[NAME$8] = JQUERY_NO_CONFLICT$8; return Fullscreen._jQueryInterface; }; /** * -------------------------------------------- * AdminLTE IFrame.js * License MIT * -------------------------------------------- */ /** * Constants * ==================================================== */ var NAME$7 = 'IFrame'; var DATA_KEY$7 = 'lte.iframe'; var JQUERY_NO_CONFLICT$7 = $__default["default"].fn[NAME$7]; var SELECTOR_DATA_TOGGLE$1 = '[data-widget="iframe"]'; var SELECTOR_DATA_TOGGLE_CLOSE = '[data-widget="iframe-close"]'; var SELECTOR_DATA_TOGGLE_SCROLL_LEFT = '[data-widget="iframe-scrollleft"]'; var SELECTOR_DATA_TOGGLE_SCROLL_RIGHT = '[data-widget="iframe-scrollright"]'; var SELECTOR_DATA_TOGGLE_FULLSCREEN = '[data-widget="iframe-fullscreen"]'; var SELECTOR_CONTENT_WRAPPER = '.content-wrapper'; var SELECTOR_CONTENT_IFRAME = SELECTOR_CONTENT_WRAPPER + " iframe"; var SELECTOR_TAB_NAV = SELECTOR_CONTENT_WRAPPER + ".iframe-mode .nav"; var SELECTOR_TAB_NAVBAR_NAV = SELECTOR_CONTENT_WRAPPER + ".iframe-mode .navbar-nav"; var SELECTOR_TAB_NAVBAR_NAV_ITEM = SELECTOR_TAB_NAVBAR_NAV + " .nav-item"; var SELECTOR_TAB_NAVBAR_NAV_LINK = SELECTOR_TAB_NAVBAR_NAV + " .nav-link"; var SELECTOR_TAB_CONTENT = SELECTOR_CONTENT_WRAPPER + ".iframe-mode .tab-content"; var SELECTOR_TAB_EMPTY = SELECTOR_TAB_CONTENT + " .tab-empty"; var SELECTOR_TAB_LOADING = SELECTOR_TAB_CONTENT + " .tab-loading"; var SELECTOR_TAB_PANE = SELECTOR_TAB_CONTENT + " .tab-pane"; var SELECTOR_SIDEBAR_MENU_ITEM = '.main-sidebar .nav-item > a.nav-link'; var SELECTOR_SIDEBAR_SEARCH_ITEM = '.sidebar-search-results .list-group-item'; var SELECTOR_HEADER_MENU_ITEM = '.main-header .nav-item a.nav-link'; var SELECTOR_HEADER_DROPDOWN_ITEM = '.main-header a.dropdown-item'; var CLASS_NAME_IFRAME_MODE$1 = 'iframe-mode'; var CLASS_NAME_FULLSCREEN_MODE = 'iframe-mode-fullscreen'; var Default$7 = { onTabClick: function onTabClick(item) { return item; }, onTabChanged: function onTabChanged(item) { return item; }, onTabCreated: function onTabCreated(item) { return item; }, autoIframeMode: true, autoItemActive: true, autoShowNewTab: true, autoDarkMode: false, allowDuplicates: false, allowReload: true, loadingScreen: true, useNavbarItems: true, scrollOffset: 40, scrollBehaviorSwap: false, iconMaximize: 'fa-expand', iconMinimize: 'fa-compress' }; /** * Class Definition * ==================================================== */ var IFrame = /*#__PURE__*/function () { function IFrame(element, config) { this._config = config; this._element = element; this._init(); } // Public var _proto = IFrame.prototype; _proto.onTabClick = function onTabClick(item) { this._config.onTabClick(item); }; _proto.onTabChanged = function onTabChanged(item) { this._config.onTabChanged(item); }; _proto.onTabCreated = function onTabCreated(item) { this._config.onTabCreated(item); }; _proto.createTab = function createTab(title, link, uniqueName, autoOpen) { var _this = this; var tabId = "panel-" + uniqueName; var navId = "tab-" + uniqueName; if (this._config.allowDuplicates) { tabId += "-" + Math.floor(Math.random() * 1000); navId += "-" + Math.floor(Math.random() * 1000); } var newNavItem = "<li class=\"nav-item\" role=\"presentation\"><a href=\"#\" class=\"btn-iframe-close\" data-widget=\"iframe-close\" data-type=\"only-this\"><i class=\"fas fa-times\"></i></a><a class=\"nav-link\" data-toggle=\"row\" id=\"" + navId + "\" href=\"#" + tabId + "\" role=\"tab\" aria-controls=\"" + tabId + "\" aria-selected=\"false\">" + title + "</a></li>"; $__default["default"](SELECTOR_TAB_NAVBAR_NAV).append(unescape(escape(newNavItem))); var newTabItem = "<div class=\"tab-pane fade\" id=\"" + tabId + "\" role=\"tabpanel\" aria-labelledby=\"" + navId + "\"><iframe src=\"" + link + "\"></iframe></div>"; $__default["default"](SELECTOR_TAB_CONTENT).append(unescape(escape(newTabItem))); if (autoOpen) { if (this._config.loadingScreen) { var $loadingScreen = $__default["default"](SELECTOR_TAB_LOADING); $loadingScreen.fadeIn(); $__default["default"](tabId + " iframe").ready(function () { if (typeof _this._config.loadingScreen === 'number') { _this.switchTab("#" + navId); setTimeout(function () { $loadingScreen.fadeOut(); }, _this._config.loadingScreen); } else { _this.switchTab("#" + navId); $loadingScreen.fadeOut(); } }); } else { this.switchTab("#" + navId); } } this.onTabCreated($__default["default"]("#" + navId)); }; _proto.openTabSidebar = function openTabSidebar(item, autoOpen) { if (autoOpen === void 0) { autoOpen = this._config.autoShowNewTab; } var $item = $__default["default"](item).clone(); if ($item.attr('href') === undefined) { $item = $__default["default"](item).parent('a').clone(); } $item.find('.right, .search-path').remove(); var title = $item.find('p').text(); if (title === '') { title = $item.text(); } var link = $item.attr('href'); if (link === '#' || link === '' || link === undefined) { return; } var uniqueName = unescape(link).replace('./', '').replace(/["#&'./:=?[\]]/gi, '-').replace(/(--)/gi, ''); var navId = "tab-" + uniqueName; if (!this._config.allowDuplicates && $__default["default"]("#" + navId).length > 0) { return this.switchTab("#" + navId, this._config.allowReload); } if (!this._config.allowDuplicates && $__default["default"]("#" + navId).length === 0 || this._config.allowDuplicates) { this.createTab(title, link, uniqueName, autoOpen); } }; _proto.switchTab = function switchTab(item, reload) { var _this2 = this; if (reload === void 0) { reload = false; } var $item = $__default["default"](item); var tabId = $item.attr('href'); $__default["default"](SELECTOR_TAB_EMPTY).hide(); if (reload) { var $loadingScreen = $__default["default"](SELECTOR_TAB_LOADING); if (this._config.loadingScreen) { $loadingScreen.show(0, function () { $__default["default"](tabId + " iframe").attr('src', $__default["default"](tabId + " iframe").attr('src')).ready(function () { if (_this2._config.loadingScreen) { if (typeof _this2._config.loadingScreen === 'number') { setTimeout(function () { $loadingScreen.fadeOut(); }, _this2._config.loadingScreen); } else { $loadingScreen.fadeOut(); } } }); }); } else { $__default["default"](tabId + " iframe").attr('src', $__default["default"](tabId + " iframe").attr('src')); } } $__default["default"](SELECTOR_TAB_NAVBAR_NAV + " .active").tab('dispose').removeClass('active'); this._fixHeight(); $item.tab('show'); $item.parents('li').addClass('active'); this.onTabChanged($item); if (this._config.autoItemActive) { this._setItemActive($__default["default"](tabId + " iframe").attr('src')); } }; _proto.removeActiveTab = function removeActiveTab(type, element) { if (type == 'all') { $__default["default"](SELECTOR_TAB_NAVBAR_NAV_ITEM).remove(); $__default["default"](SELECTOR_TAB_PANE).remove(); $__default["default"](SELECTOR_TAB_EMPTY).show(); } else if (type == 'all-other') { $__default["default"](SELECTOR_TAB_NAVBAR_NAV_ITEM + ":not(.active)").remove(); $__default["default"](SELECTOR_TAB_PANE + ":not(.active)").remove(); } else if (type == 'only-this') { var $navClose = $__default["default"](element); var $navItem = $navClose.parent('.nav-item'); var $navItemParent = $navItem.parent(); var navItemIndex = $navItem.index(); var tabId = $navClose.siblings('.nav-link').attr('aria-controls'); $navItem.remove(); $__default["default"]("#" + tabId).remove(); if ($__default["default"](SELECTOR_TAB_CONTENT).children().length == $__default["default"](SELECTOR_TAB_EMPTY + ", " + SELECTOR_TAB_LOADING).length) { $__default["default"](SELECTOR_TAB_EMPTY).show(); } else { var prevNavItemIndex = navItemIndex - 1; this.switchTab($navItemParent.children().eq(prevNavItemIndex).find('a.nav-link')); } } else { var _$navItem = $__default["default"](SELECTOR_TAB_NAVBAR_NAV_ITEM + ".active"); var _$navItemParent = _$navItem.parent(); var _navItemIndex = _$navItem.index(); _$navItem.remove(); $__default["default"](SELECTOR_TAB_PANE + ".active").remove(); if ($__default["default"](SELECTOR_TAB_CONTENT).children().length == $__default["default"](SELECTOR_TAB_EMPTY + ", " + SELECTOR_TAB_LOADING).length) { $__default["default"](SELECTOR_TAB_EMPTY).show(); } else { var _prevNavItemIndex = _navItemIndex - 1; this.switchTab(_$navItemParent.children().eq(_prevNavItemIndex).find('a.nav-link')); } } }; _proto.toggleFullscreen = function toggleFullscreen() { if ($__default["default"]('body').hasClass(CLASS_NAME_FULLSCREEN_MODE)) { $__default["default"](SELECTOR_DATA_TOGGLE_FULLSCREEN + " i").removeClass(this._config.iconMinimize).addClass(this._config.iconMaximize); $__default["default"]('body').removeClass(CLASS_NAME_FULLSCREEN_MODE); $__default["default"](SELECTOR_TAB_EMPTY + ", " + SELECTOR_TAB_LOADING).height('100%'); $__default["default"](SELECTOR_CONTENT_WRAPPER).height('100%'); $__default["default"](SELECTOR_CONTENT_IFRAME).height('100%'); } else { $__default["default"](SELECTOR_DATA_TOGGLE_FULLSCREEN + " i").removeClass(this._config.iconMaximize).addClass(this._config.iconMinimize); $__default["default"]('body').addClass(CLASS_NAME_FULLSCREEN_MODE); } $__default["default"](window).trigger('resize'); this._fixHeight(true); } // Private ; _proto._init = function _init() { var usingDefTab = $__default["default"](SELECTOR_TAB_CONTENT).children().length > 2; this._setupListeners(); this._fixHeight(true); if (usingDefTab) { var $el = $__default["default"]("" + SELECTOR_TAB_PANE).first(); // eslint-disable-next-line no-console console.log($el); var uniqueName = $el.attr('id').replace('panel-', ''); var navId = "#tab-" + uniqueName; this.switchTab(navId, true); } }; _proto._initFrameElement = function _initFrameElement() { if (window.frameElement && this._config.autoIframeMode) { var $body = $__default["default"]('body'); $body.addClass(CLASS_NAME_IFRAME_MODE$1); if (this._config.autoDarkMode) { $body.addClass('dark-mode'); } } }; _proto._navScroll = function _navScroll(offset) { var leftPos = $__default["default"](SELECTOR_TAB_NAVBAR_NAV).scrollLeft(); $__default["default"](SELECTOR_TAB_NAVBAR_NAV).animate({ scrollLeft: leftPos + offset }, 250, 'linear'); }; _proto._setupListeners = function _setupListeners() { var _this3 = this; $__default["default"](window).on('resize', function () { setTimeout(function () { _this3._fixHeight(); }, 1); }); if ($__default["default"](SELECTOR_CONTENT_WRAPPER).hasClass(CLASS_NAME_IFRAME_MODE$1)) { $__default["default"](document).on('click', SELECTOR_SIDEBAR_MENU_ITEM + ", " + SELECTOR_SIDEBAR_SEARCH_ITEM, function (e) { e.preventDefault(); _this3.openTabSidebar(e.target); }); if (this._config.useNavbarItems) { $__default["default"](document).on('click', SELECTOR_HEADER_MENU_ITEM + ", " + SELECTOR_HEADER_DROPDOWN_ITEM, function (e) { e.preventDefault(); _this3.openTabSidebar(e.target); }); } } $__default["default"](document).on('click', SELECTOR_TAB_NAVBAR_NAV_LINK, function (e) { e.preventDefault(); _this3.onTabClick(e.target); _this3.switchTab(e.target); }); $__default["default"](document).on('click', SELECTOR_TAB_NAVBAR_NAV_LINK, function (e) { e.preventDefault(); _this3.onTabClick(e.target); _this3.switchTab(e.target); }); $__default["default"](document).on('click', SELECTOR_DATA_TOGGLE_CLOSE, function (e) { e.preventDefault(); var target = e.target; if (target.nodeName == 'I') { target = e.target.offsetParent; } _this3.removeActiveTab(target.attributes['data-type'] ? target.attributes['data-type'].nodeValue : null, target); }); $__default["default"](document).on('click', SELECTOR_DATA_TOGGLE_FULLSCREEN, function (e) { e.preventDefault(); _this3.toggleFullscreen(); }); var mousedown = false; var mousedownInterval = null; $__default["default"](document).on('mousedown', SELECTOR_DATA_TOGGLE_SCROLL_LEFT, function (e) { e.preventDefault(); clearInterval(mousedownInterval); var scrollOffset = _this3._config.scrollOffset; if (!_this3._config.scrollBehaviorSwap) { scrollOffset = -scrollOffset; } mousedown = true; _this3._navScroll(scrollOffset); mousedownInterval = setInterval(function () { _this3._navScroll(scrollOffset); }, 250); }); $__default["default"](document).on('mousedown', SELECTOR_DATA_TOGGLE_SCROLL_RIGHT, function (e) { e.preventDefault(); clearInterval(mousedownInterval); var scrollOffset = _this3._config.scrollOffset; if (_this3._config.scrollBehaviorSwap) { scrollOffset = -scrollOffset; } mousedown = true; _this3._navScroll(scrollOffset); mousedownInterval = setInterval(function () { _this3._navScroll(scrollOffset); }, 250); }); $__default["default"](document).on('mouseup', function () { if (mousedown) { mousedown = false; clearInterval(mousedownInterval); mousedownInterval = null; } }); }; _proto._setItemActive = function _setItemActive(href) { $__default["default"](SELECTOR_SIDEBAR_MENU_ITEM + ", " + SELECTOR_HEADER_DROPDOWN_ITEM).removeClass('active'); $__default["default"](SELECTOR_HEADER_MENU_ITEM).parent().removeClass('active'); var $headerMenuItem = $__default["default"](SELECTOR_HEADER_MENU_ITEM + "[href$=\"" + href + "\"]"); var $headerDropdownItem = $__default["default"](SELECTOR_HEADER_DROPDOWN_ITEM + "[href$=\"" + href + "\"]"); var $sidebarMenuItem = $__default["default"](SELECTOR_SIDEBAR_MENU_ITEM + "[href$=\"" + href + "\"]"); $headerMenuItem.each(function (i, e) { $__default["default"](e).parent().addClass('active'); }); $headerDropdownItem.each(function (i, e) { $__default["default"](e).addClass('active'); }); $sidebarMenuItem.each(function (i, e) { $__default["default"](e).addClass('active'); $__default["default"](e).parents('.nav-treeview').prevAll('.nav-link').addClass('active'); }); }; _proto._fixHeight = function _fixHeight(tabEmpty) { if (tabEmpty === void 0) { tabEmpty = false; } if ($__default["default"]('body').hasClass(CLASS_NAME_FULLSCREEN_MODE)) { var windowHeight = $__default["default"](window).height(); var navbarHeight = $__default["default"](SELECTOR_TAB_NAV).outerHeight(); $__default["default"](SELECTOR_TAB_EMPTY + ", " + SELECTOR_TAB_LOADING + ", " + SELECTOR_CONTENT_IFRAME).height(windowHeight - navbarHeight); $__default["default"](SELECTOR_CONTENT_WRAPPER).height(windowHeight); } else { var contentWrapperHeight = parseFloat($__default["default"](SELECTOR_CONTENT_WRAPPER).css('height')); var _navbarHeight = $__default["default"](SELECTOR_TAB_NAV).outerHeight(); if (tabEmpty == true) { setTimeout(function () { $__default["default"](SELECTOR_TAB_EMPTY + ", " + SELECTOR_TAB_LOADING).height(contentWrapperHeight - _navbarHeight); }, 50); } else { $__default["default"](SELECTOR_CONTENT_IFRAME).height(contentWrapperHeight - _navbarHeight); } } } // Static ; IFrame._jQueryInterface = function _jQueryInterface(config) { if ($__default["default"](SELECTOR_DATA_TOGGLE$1).length > 0) { var data = $__default["default"](this).data(DATA_KEY$7); if (!data) { data = $__default["default"](this).data(); } var _options = $__default["default"].extend({}, Default$7, typeof config === 'object' ? config : data); localStorage.setItem('AdminLTE:IFrame:Options', JSON.stringify(_options)); var plugin = new IFrame($__default["default"](this), _options); $__default["default"](this).data(DATA_KEY$7, typeof config === 'object' ? config : data); if (typeof config === 'string' && /createTab|openTabSidebar|switchTab|removeActiveTab/.test(config)) { plugin[config](); } } else { new IFrame($__default["default"](this), JSON.parse(localStorage.getItem('AdminLTE:IFrame:Options')))._initFrameElement(); } }; return IFrame; }(); /** * Data API * ==================================================== */ $__default["default"](window).on('load', function () { IFrame._jQueryInterface.call($__default["default"](SELECTOR_DATA_TOGGLE$1)); }); /** * jQuery API * ==================================================== */ $__default["default"].fn[NAME$7] = IFrame._jQueryInterface; $__default["default"].fn[NAME$7].Constructor = IFrame; $__default["default"].fn[NAME$7].noConflict = function () { $__default["default"].fn[NAME$7] = JQUERY_NO_CONFLICT$7; return IFrame._jQueryInterface; }; /** * -------------------------------------------- * AdminLTE Layout.js * License MIT * -------------------------------------------- */ /** * Constants * ==================================================== */ var NAME$6 = 'Layout'; var DATA_KEY$6 = 'lte.layout'; var JQUERY_NO_CONFLICT$6 = $__default["default"].fn[NAME$6]; var SELECTOR_HEADER = '.main-header'; var SELECTOR_MAIN_SIDEBAR = '.main-sidebar'; var SELECTOR_SIDEBAR$1 = '.main-sidebar .sidebar'; var SELECTOR_CONTENT = '.content-wrapper'; var SELECTOR_CONTROL_SIDEBAR_CONTENT = '.control-sidebar-content'; var SELECTOR_CONTROL_SIDEBAR_BTN = '[data-widget="control-sidebar"]'; var SELECTOR_FOOTER = '.main-footer'; var SELECTOR_PUSHMENU_BTN = '[data-widget="pushmenu"]'; var SELECTOR_LOGIN_BOX = '.login-box'; var SELECTOR_REGISTER_BOX = '.register-box'; var SELECTOR_PRELOADER = '.preloader'; var CLASS_NAME_SIDEBAR_COLLAPSED$1 = 'sidebar-collapse'; var CLASS_NAME_SIDEBAR_FOCUSED = 'sidebar-focused'; var CLASS_NAME_LAYOUT_FIXED = 'layout-fixed'; var CLASS_NAME_CONTROL_SIDEBAR_SLIDE_OPEN = 'control-sidebar-slide-open'; var CLASS_NAME_CONTROL_SIDEBAR_OPEN = 'control-sidebar-open'; var CLASS_NAME_IFRAME_MODE = 'iframe-mode'; var Default$6 = { scrollbarTheme: 'os-theme-light', scrollbarAutoHide: 'l', panelAutoHeight: true, panelAutoHeightMode: 'min-height', preloadDuration: 200, loginRegisterAutoHeight: true }; /** * Class Definition * ==================================================== */ var Layout = /*#__PURE__*/function () { function Layout(element, config) { this._config = config; this._element = element; } // Public var _proto = Layout.prototype; _proto.fixLayoutHeight = function fixLayoutHeight(extra) { if (extra === void 0) { extra = null; } var $body = $__default["default"]('body'); var controlSidebar = 0; if ($body.hasClass(CLASS_NAME_CONTROL_SIDEBAR_SLIDE_OPEN) || $body.hasClass(CLASS_NAME_CONTROL_SIDEBAR_OPEN) || extra === 'control_sidebar') { controlSidebar = $__default["default"](SELECTOR_CONTROL_SIDEBAR_CONTENT).outerHeight(); } var heights = { window: $__default["default"](window).height(), header: $__default["default"](SELECTOR_HEADER).length > 0 ? $__default["default"](SELECTOR_HEADER).outerHeight() : 0, footer: $__default["default"](SELECTOR_FOOTER).length > 0 ? $__default["default"](SELECTOR_FOOTER).outerHeight() : 0, sidebar: $__default["default"](SELECTOR_SIDEBAR$1).length > 0 ? $__default["default"](SELECTOR_SIDEBAR$1).height() : 0, controlSidebar: controlSidebar }; var max = this._max(heights); var offset = this._config.panelAutoHeight; if (offset === true) { offset = 0; } var $contentSelector = $__default["default"](SELECTOR_CONTENT); if (offset !== false) { if (max === heights.controlSidebar) { $contentSelector.css(this._config.panelAutoHeightMode, max + offset); } else if (max === heights.window) { $contentSelector.css(this._config.panelAutoHeightMode, max + offset - heights.header - heights.footer); } else { $contentSelector.css(this._config.panelAutoHeightMode, max + offset - heights.header); } if (this._isFooterFixed()) { $contentSelector.css(this._config.panelAutoHeightMode, parseFloat($contentSelector.css(this._config.panelAutoHeightMode)) + heights.footer); } } if (!$body.hasClass(CLASS_NAME_LAYOUT_FIXED)) { return; } if (typeof $__default["default"].fn.overlayScrollbars !== 'undefined') { $__default["default"](SELECTOR_SIDEBAR$1).overlayScrollbars({ className: this._config.scrollbarTheme, sizeAutoCapable: true, scrollbars: { autoHide: this._config.scrollbarAutoHide, clickScrolling: true } }); } else { $__default["default"](SELECTOR_SIDEBAR$1).css('overflow-y', 'auto'); } }; _proto.fixLoginRegisterHeight = function fixLoginRegisterHeight() { var $body = $__default["default"]('body'); var $selector = $__default["default"](SELECTOR_LOGIN_BOX + ", " + SELECTOR_REGISTER_BOX); if ($body.hasClass(CLASS_NAME_IFRAME_MODE)) { $body.css('height', '100%'); $__default["default"]('.wrapper').css('height', '100%'); $__default["default"]('html').css('height', '100%'); } else if ($selector.length === 0) { $body.css('height', 'auto'); $__default["default"]('html').css('height', 'auto'); } else { var boxHeight = $selector.height(); if ($body.css(this._config.panelAutoHeightMode) !== boxHeight) { $body.css(this._config.panelAutoHeightMode, boxHeight); } } } // Private ; _proto._init = function _init() { var _this = this; // Activate layout height watcher this.fixLayoutHeight(); if (this._config.loginRegisterAutoHeight === true) { this.fixLoginRegisterHeight(); } else if (this._config.loginRegisterAutoHeight === parseInt(this._config.loginRegisterAutoHeight, 10)) { setInterval(this.fixLoginRegisterHeight, this._config.loginRegisterAutoHeight); } $__default["default"](SELECTOR_SIDEBAR$1).on('collapsed.lte.treeview expanded.lte.treeview', function () { _this.fixLayoutHeight(); }); $__default["default"](SELECTOR_MAIN_SIDEBAR).on('mouseenter mouseleave', function () { if ($__default["default"]('body').hasClass(CLASS_NAME_SIDEBAR_COLLAPSED$1)) { _this.fixLayoutHeight(); } }); $__default["default"](SELECTOR_PUSHMENU_BTN).on('collapsed.lte.pushmenu shown.lte.pushmenu', function () { setTimeout(function () { _this.fixLayoutHeight(); }, 300); }); $__default["default"](SELECTOR_CONTROL_SIDEBAR_BTN).on('collapsed.lte.controlsidebar', function () { _this.fixLayoutHeight(); }).on('expanded.lte.controlsidebar', function () { _this.fixLayoutHeight('control_sidebar'); }); $__default["default"](window).resize(function () { _this.fixLayoutHeight(); }); setTimeout(function () { $__default["default"]('body.hold-transition').removeClass('hold-transition'); }, 50); setTimeout(function () { var $preloader = $__default["default"](SELECTOR_PRELOADER); if ($preloader) { $preloader.css('height', 0); setTimeout(function () { $preloader.children().hide(); }, 200); } }, this._config.preloadDuration); }; _proto._max = function _max(numbers) { // Calculate the maximum number in a list var max = 0; Object.keys(numbers).forEach(function (key) { if (numbers[key] > max) { max = numbers[key]; } }); return max; }; _proto._isFooterFixed = function _isFooterFixed() { return $__default["default"](SELECTOR_FOOTER).css('position') === 'fixed'; } // Static ; Layout._jQueryInterface = function _jQueryInterface(config) { if (config === void 0) { config = ''; } return this.each(function () { var data = $__default["default"](this).data(DATA_KEY$6); var _options = $__default["default"].extend({}, Default$6, $__default["default"](this).data()); if (!data) { data = new Layout($__default["default"](this), _options); $__default["default"](this).data(DATA_KEY$6, data); } if (config === 'init' || config === '') { data._init(); } else if (config === 'fixLayoutHeight' || config === 'fixLoginRegisterHeight') { data[config](); } }); }; return Layout; }(); /** * Data API * ==================================================== */ $__default["default"](window).on('load', function () { Layout._jQueryInterface.call($__default["default"]('body')); }); $__default["default"](SELECTOR_SIDEBAR$1 + " a").on('focusin', function () { $__default["default"](SELECTOR_MAIN_SIDEBAR).addClass(CLASS_NAME_SIDEBAR_FOCUSED); }).on('focusout', function () { $__default["default"](SELECTOR_MAIN_SIDEBAR).removeClass(CLASS_NAME_SIDEBAR_FOCUSED); }); /** * jQuery API * ==================================================== */ $__default["default"].fn[NAME$6] = Layout._jQueryInterface; $__default["default"].fn[NAME$6].Constructor = Layout; $__default["default"].fn[NAME$6].noConflict = function () { $__default["default"].fn[NAME$6] = JQUERY_NO_CONFLICT$6; return Layout._jQueryInterface; }; /** * -------------------------------------------- * AdminLTE PushMenu.js * License MIT * -------------------------------------------- */ /** * Constants * ==================================================== */ var NAME$5 = 'PushMenu'; var DATA_KEY$5 = 'lte.pushmenu'; var EVENT_KEY$2 = "." + DATA_KEY$5; var JQUERY_NO_CONFLICT$5 = $__default["default"].fn[NAME$5]; var EVENT_COLLAPSED$1 = "collapsed" + EVENT_KEY$2; var EVENT_COLLAPSED_DONE = "collapsed-done" + EVENT_KEY$2; var EVENT_SHOWN = "shown" + EVENT_KEY$2; var SELECTOR_TOGGLE_BUTTON$1 = '[data-widget="pushmenu"]'; var SELECTOR_BODY = 'body'; var SELECTOR_OVERLAY = '#sidebar-overlay'; var SELECTOR_WRAPPER = '.wrapper'; var CLASS_NAME_COLLAPSED = 'sidebar-collapse'; var CLASS_NAME_OPEN$3 = 'sidebar-open'; var CLASS_NAME_IS_OPENING$1 = 'sidebar-is-opening'; var CLASS_NAME_CLOSED = 'sidebar-closed'; var Default$5 = { autoCollapseSize: 992, enableRemember: false, noTransitionAfterReload: true, animationSpeed: 300 }; /** * Class Definition * ==================================================== */ var PushMenu = /*#__PURE__*/function () { function PushMenu(element, options) { this._element = element; this._options = $__default["default"].extend({}, Default$5, options); if ($__default["default"](SELECTOR_OVERLAY).length === 0) { this._addOverlay(); } this._init(); } // Public var _proto = PushMenu.prototype; _proto.expand = function expand() { var $bodySelector = $__default["default"](SELECTOR_BODY); if (this._options.autoCollapseSize && $__default["default"](window).width() <= this._options.autoCollapseSize) { $bodySelector.addClass(CLASS_NAME_OPEN$3); } $bodySelector.addClass(CLASS_NAME_IS_OPENING$1).removeClass(CLASS_NAME_COLLAPSED + " " + CLASS_NAME_CLOSED).delay(50).queue(function () { $bodySelector.removeClass(CLASS_NAME_IS_OPENING$1); $__default["default"](this).dequeue(); }); if (this._options.enableRemember) { localStorage.setItem("remember" + EVENT_KEY$2, CLASS_NAME_OPEN$3); } $__default["default"](this._element).trigger($__default["default"].Event(EVENT_SHOWN)); }; _proto.collapse = function collapse() { var _this = this; var $bodySelector = $__default["default"](SELECTOR_BODY); if (this._options.autoCollapseSize && $__default["default"](window).width() <= this._options.autoCollapseSize) { $bodySelector.removeClass(CLASS_NAME_OPEN$3).addClass(CLASS_NAME_CLOSED); } $bodySelector.addClass(CLASS_NAME_COLLAPSED); if (this._options.enableRemember) { localStorage.setItem("remember" + EVENT_KEY$2, CLASS_NAME_COLLAPSED); } $__default["default"](this._element).trigger($__default["default"].Event(EVENT_COLLAPSED$1)); setTimeout(function () { $__default["default"](_this._element).trigger($__default["default"].Event(EVENT_COLLAPSED_DONE)); }, this._options.animationSpeed); }; _proto.toggle = function toggle() { if ($__default["default"](SELECTOR_BODY).hasClass(CLASS_NAME_COLLAPSED)) { this.expand(); } else { this.collapse(); } }; _proto.autoCollapse = function autoCollapse(resize) { if (resize === void 0) { resize = false; } if (!this._options.autoCollapseSize) { return; } var $bodySelector = $__default["default"](SELECTOR_BODY); if ($__default["default"](window).width() <= this._options.autoCollapseSize) { if (!$bodySelector.hasClass(CLASS_NAME_OPEN$3)) { this.collapse(); } } else if (resize === true) { if ($bodySelector.hasClass(CLASS_NAME_OPEN$3)) { $bodySelector.removeClass(CLASS_NAME_OPEN$3); } else if ($bodySelector.hasClass(CLASS_NAME_CLOSED)) { this.expand(); } } }; _proto.remember = function remember() { if (!this._options.enableRemember) { return; } var $body = $__default["default"]('body'); var toggleState = localStorage.getItem("remember" + EVENT_KEY$2); if (toggleState === CLASS_NAME_COLLAPSED) { if (this._options.noTransitionAfterReload) { $body.addClass('hold-transition').addClass(CLASS_NAME_COLLAPSED).delay(50).queue(function () { $__default["default"](this).removeClass('hold-transition'); $__default["default"](this).dequeue(); }); } else { $body.addClass(CLASS_NAME_COLLAPSED); } } else if (this._options.noTransitionAfterReload) { $body.addClass('hold-transition').removeClass(CLASS_NAME_COLLAPSED).delay(50).queue(function () { $__default["default"](this).removeClass('hold-transition'); $__default["default"](this).dequeue(); }); } else { $body.removeClass(CLASS_NAME_COLLAPSED); } } // Private ; _proto._init = function _init() { var _this2 = this; this.remember(); this.autoCollapse(); $__default["default"](window).resize(function () { _this2.autoCollapse(true); }); }; _proto._addOverlay = function _addOverlay() { var _this3 = this; var overlay = $__default["default"]('<div />', { id: 'sidebar-overlay' }); overlay.on('click', function () { _this3.collapse(); }); $__default["default"](SELECTOR_WRAPPER).append(overlay); } // Static ; PushMenu._jQueryInterface = function _jQueryInterface(operation) { return this.each(function () { var data = $__default["default"](this).data(DATA_KEY$5); var _options = $__default["default"].extend({}, Default$5, $__default["default"](this).data()); if (!data) { data = new PushMenu(this, _options); $__default["default"](this).data(DATA_KEY$5, data); } if (typeof operation === 'string' && /collapse|expand|toggle/.test(operation)) { data[operation](); } }); }; return PushMenu; }(); /** * Data API * ==================================================== */ $__default["default"](document).on('click', SELECTOR_TOGGLE_BUTTON$1, function (event) { event.preventDefault(); var button = event.currentTarget; if ($__default["default"](button).data('widget') !== 'pushmenu') { button = $__default["default"](button).closest(SELECTOR_TOGGLE_BUTTON$1); } PushMenu._jQueryInterface.call($__default["default"](button), 'toggle'); }); $__default["default"](window).on('load', function () { PushMenu._jQueryInterface.call($__default["default"](SELECTOR_TOGGLE_BUTTON$1)); }); /** * jQuery API * ==================================================== */ $__default["default"].fn[NAME$5] = PushMenu._jQueryInterface; $__default["default"].fn[NAME$5].Constructor = PushMenu; $__default["default"].fn[NAME$5].noConflict = function () { $__default["default"].fn[NAME$5] = JQUERY_NO_CONFLICT$5; return PushMenu._jQueryInterface; }; /** * -------------------------------------------- * AdminLTE SidebarSearch.js * License MIT * -------------------------------------------- */ /** * Constants * ==================================================== */ var NAME$4 = 'SidebarSearch'; var DATA_KEY$4 = 'lte.sidebar-search'; var JQUERY_NO_CONFLICT$4 = $__default["default"].fn[NAME$4]; var CLASS_NAME_OPEN$2 = 'sidebar-search-open'; var CLASS_NAME_ICON_SEARCH = 'fa-search'; var CLASS_NAME_ICON_CLOSE = 'fa-times'; var CLASS_NAME_HEADER = 'nav-header'; var CLASS_NAME_SEARCH_RESULTS = 'sidebar-search-results'; var CLASS_NAME_LIST_GROUP = 'list-group'; var SELECTOR_DATA_WIDGET$1 = '[data-widget="sidebar-search"]'; var SELECTOR_SIDEBAR = '.main-sidebar .nav-sidebar'; var SELECTOR_NAV_LINK = '.nav-link'; var SELECTOR_NAV_TREEVIEW = '.nav-treeview'; var SELECTOR_SEARCH_INPUT$1 = SELECTOR_DATA_WIDGET$1 + " .form-control"; var SELECTOR_SEARCH_BUTTON = SELECTOR_DATA_WIDGET$1 + " .btn"; var SELECTOR_SEARCH_ICON = SELECTOR_SEARCH_BUTTON + " i"; var SELECTOR_SEARCH_LIST_GROUP = "." + CLASS_NAME_LIST_GROUP; var SELECTOR_SEARCH_RESULTS = "." + CLASS_NAME_SEARCH_RESULTS; var SELECTOR_SEARCH_RESULTS_GROUP = SELECTOR_SEARCH_RESULTS + " ." + CLASS_NAME_LIST_GROUP; var Default$4 = { arrowSign: '->', minLength: 3, maxResults: 7, highlightName: true, highlightPath: false, highlightClass: 'text-light', notFoundText: 'No element found!' }; var SearchItems = []; /** * Class Definition * ==================================================== */ var SidebarSearch = /*#__PURE__*/function () { function SidebarSearch(_element, _options) { this.element = _element; this.options = $__default["default"].extend({}, Default$4, _options); this.items = []; } // Public var _proto = SidebarSearch.prototype; _proto.init = function init() { var _this = this; if ($__default["default"](SELECTOR_DATA_WIDGET$1).length === 0) { return; } if ($__default["default"](SELECTOR_DATA_WIDGET$1).next(SELECTOR_SEARCH_RESULTS).length === 0) { $__default["default"](SELECTOR_DATA_WIDGET$1).after($__default["default"]('<div />', { class: CLASS_NAME_SEARCH_RESULTS })); } if ($__default["default"](SELECTOR_SEARCH_RESULTS).children(SELECTOR_SEARCH_LIST_GROUP).length === 0) { $__default["default"](SELECTOR_SEARCH_RESULTS).append($__default["default"]('<div />', { class: CLASS_NAME_LIST_GROUP })); } this._addNotFound(); $__default["default"](SELECTOR_SIDEBAR).children().each(function (i, child) { _this._parseItem(child); }); }; _proto.search = function search() { var _this2 = this; var searchValue = $__default["default"](SELECTOR_SEARCH_INPUT$1).val().toLowerCase(); if (searchValue.length < this.options.minLength) { $__default["default"](SELECTOR_SEARCH_RESULTS_GROUP).empty(); this._addNotFound(); this.close(); return; } var searchResults = SearchItems.filter(function (item) { return item.name.toLowerCase().includes(searchValue); }); var endResults = $__default["default"](searchResults.slice(0, this.options.maxResults)); $__default["default"](SELECTOR_SEARCH_RESULTS_GROUP).empty(); if (endResults.length === 0) { this._addNotFound(); } else { endResults.each(function (i, result) { $__default["default"](SELECTOR_SEARCH_RESULTS_GROUP).append(_this2._renderItem(escape(result.name), encodeURI(result.link), result.path)); }); } this.open(); }; _proto.open = function open() { $__default["default"](SELECTOR_DATA_WIDGET$1).parent().addClass(CLASS_NAME_OPEN$2); $__default["default"](SELECTOR_SEARCH_ICON).removeClass(CLASS_NAME_ICON_SEARCH).addClass(CLASS_NAME_ICON_CLOSE); }; _proto.close = function close() { $__default["default"](SELECTOR_DATA_WIDGET$1).parent().removeClass(CLASS_NAME_OPEN$2); $__default["default"](SELECTOR_SEARCH_ICON).removeClass(CLASS_NAME_ICON_CLOSE).addClass(CLASS_NAME_ICON_SEARCH); }; _proto.toggle = function toggle() { if ($__default["default"](SELECTOR_DATA_WIDGET$1).parent().hasClass(CLASS_NAME_OPEN$2)) { this.close(); } else { this.open(); } } // Private ; _proto._parseItem = function _parseItem(item, path) { var _this3 = this; if (path === void 0) { path = []; } if ($__default["default"](item).hasClass(CLASS_NAME_HEADER)) { return; } var itemObject = {}; var navLink = $__default["default"](item).clone().find("> " + SELECTOR_NAV_LINK); var navTreeview = $__default["default"](item).clone().find("> " + SELECTOR_NAV_TREEVIEW); var link = navLink.attr('href'); var name = navLink.find('p').children().remove().end().text(); itemObject.name = this._trimText(name); itemObject.link = link; itemObject.path = path; if (navTreeview.length === 0) { SearchItems.push(itemObject); } else { var newPath = itemObject.path.concat([itemObject.name]); navTreeview.children().each(function (i, child) { _this3._parseItem(child, newPath); }); } }; _proto._trimText = function _trimText(text) { return $.trim(text.replace(/(\r\n|\n|\r)/gm, ' ')); }; _proto._renderItem = function _renderItem(name, link, path) { var _this4 = this; path = path.join(" " + this.options.arrowSign + " "); name = unescape(name); link = decodeURI(link); if (this.options.highlightName || this.options.highlightPath) { var searchValue = $__default["default"](SELECTOR_SEARCH_INPUT$1).val().toLowerCase(); var regExp = new RegExp(searchValue, 'gi'); if (this.options.highlightName) { name = name.replace(regExp, function (str) { return "<strong class=\"" + _this4.options.highlightClass + "\">" + str + "</strong>"; }); } if (this.options.highlightPath) { path = path.replace(regExp, function (str) { return "<strong class=\"" + _this4.options.highlightClass + "\">" + str + "</strong>"; }); } } var groupItemElement = $__default["default"]('<a/>', { href: decodeURIComponent(link), class: 'list-group-item' }); var searchTitleElement = $__default["default"]('<div/>', { class: 'search-title' }).html(name); var searchPathElement = $__default["default"]('<div/>', { class: 'search-path' }).html(path); groupItemElement.append(searchTitleElement).append(searchPathElement); return groupItemElement; }; _proto._addNotFound = function _addNotFound() { $__default["default"](SELECTOR_SEARCH_RESULTS_GROUP).append(this._renderItem(this.options.notFoundText, '#', [])); } // Static ; SidebarSearch._jQueryInterface = function _jQueryInterface(config) { var data = $__default["default"](this).data(DATA_KEY$4); if (!data) { data = $__default["default"](this).data(); } var _options = $__default["default"].extend({}, Default$4, typeof config === 'object' ? config : data); var plugin = new SidebarSearch($__default["default"](this), _options); $__default["default"](this).data(DATA_KEY$4, typeof config === 'object' ? config : data); if (typeof config === 'string' && /init|toggle|close|open|search/.test(config)) { plugin[config](); } else { plugin.init(); } }; return SidebarSearch; }(); /** * Data API * ==================================================== */ $__default["default"](document).on('click', SELECTOR_SEARCH_BUTTON, function (event) { event.preventDefault(); SidebarSearch._jQueryInterface.call($__default["default"](SELECTOR_DATA_WIDGET$1), 'toggle'); }); $__default["default"](document).on('keyup', SELECTOR_SEARCH_INPUT$1, function (event) { if (event.keyCode == 38) { event.preventDefault(); $__default["default"](SELECTOR_SEARCH_RESULTS_GROUP).children().last().focus(); return; } if (event.keyCode == 40) { event.preventDefault(); $__default["default"](SELECTOR_SEARCH_RESULTS_GROUP).children().first().focus(); return; } setTimeout(function () { SidebarSearch._jQueryInterface.call($__default["default"](SELECTOR_DATA_WIDGET$1), 'search'); }, 100); }); $__default["default"](document).on('keydown', SELECTOR_SEARCH_RESULTS_GROUP, function (event) { var $focused = $__default["default"](':focus'); if (event.keyCode == 38) { event.preventDefault(); if ($focused.is(':first-child')) { $focused.siblings().last().focus(); } else { $focused.prev().focus(); } } if (event.keyCode == 40) { event.preventDefault(); if ($focused.is(':last-child')) { $focused.siblings().first().focus(); } else { $focused.next().focus(); } } }); $__default["default"](window).on('load', function () { SidebarSearch._jQueryInterface.call($__default["default"](SELECTOR_DATA_WIDGET$1), 'init'); }); /** * jQuery API * ==================================================== */ $__default["default"].fn[NAME$4] = SidebarSearch._jQueryInterface; $__default["default"].fn[NAME$4].Constructor = SidebarSearch; $__default["default"].fn[NAME$4].noConflict = function () { $__default["default"].fn[NAME$4] = JQUERY_NO_CONFLICT$4; return SidebarSearch._jQueryInterface; }; /** * -------------------------------------------- * AdminLTE NavbarSearch.js * License MIT * -------------------------------------------- */ /** * Constants * ==================================================== */ var NAME$3 = 'NavbarSearch'; var DATA_KEY$3 = 'lte.navbar-search'; var JQUERY_NO_CONFLICT$3 = $__default["default"].fn[NAME$3]; var SELECTOR_TOGGLE_BUTTON = '[data-widget="navbar-search"]'; var SELECTOR_SEARCH_BLOCK = '.navbar-search-block'; var SELECTOR_SEARCH_INPUT = '.form-control'; var CLASS_NAME_OPEN$1 = 'navbar-search-open'; var Default$3 = { resetOnClose: true, target: SELECTOR_SEARCH_BLOCK }; /** * Class Definition * ==================================================== */ var NavbarSearch = /*#__PURE__*/function () { function NavbarSearch(_element, _options) { this._element = _element; this._config = $__default["default"].extend({}, Default$3, _options); } // Public var _proto = NavbarSearch.prototype; _proto.open = function open() { $__default["default"](this._config.target).css('display', 'flex').hide().fadeIn().addClass(CLASS_NAME_OPEN$1); $__default["default"](this._config.target + " " + SELECTOR_SEARCH_INPUT).focus(); }; _proto.close = function close() { $__default["default"](this._config.target).fadeOut().removeClass(CLASS_NAME_OPEN$1); if (this._config.resetOnClose) { $__default["default"](this._config.target + " " + SELECTOR_SEARCH_INPUT).val(''); } }; _proto.toggle = function toggle() { if ($__default["default"](this._config.target).hasClass(CLASS_NAME_OPEN$1)) { this.close(); } else { this.open(); } } // Static ; NavbarSearch._jQueryInterface = function _jQueryInterface(options) { return this.each(function () { var data = $__default["default"](this).data(DATA_KEY$3); var _options = $__default["default"].extend({}, Default$3, $__default["default"](this).data()); if (!data) { data = new NavbarSearch(this, _options); $__default["default"](this).data(DATA_KEY$3, data); } if (!/toggle|close|open/.test(options)) { throw new Error("Undefined method " + options); } data[options](); }); }; return NavbarSearch; }(); /** * Data API * ==================================================== */ $__default["default"](document).on('click', SELECTOR_TOGGLE_BUTTON, function (event) { event.preventDefault(); var button = $__default["default"](event.currentTarget); if (button.data('widget') !== 'navbar-search') { button = button.closest(SELECTOR_TOGGLE_BUTTON); } NavbarSearch._jQueryInterface.call(button, 'toggle'); }); /** * jQuery API * ==================================================== */ $__default["default"].fn[NAME$3] = NavbarSearch._jQueryInterface; $__default["default"].fn[NAME$3].Constructor = NavbarSearch; $__default["default"].fn[NAME$3].noConflict = function () { $__default["default"].fn[NAME$3] = JQUERY_NO_CONFLICT$3; return NavbarSearch._jQueryInterface; }; /** * -------------------------------------------- * AdminLTE Toasts.js * License MIT * -------------------------------------------- */ /** * Constants * ==================================================== */ var NAME$2 = 'Toasts'; var DATA_KEY$2 = 'lte.toasts'; var EVENT_KEY$1 = "." + DATA_KEY$2; var JQUERY_NO_CONFLICT$2 = $__default["default"].fn[NAME$2]; var EVENT_INIT = "init" + EVENT_KEY$1; var EVENT_CREATED = "created" + EVENT_KEY$1; var EVENT_REMOVED = "removed" + EVENT_KEY$1; var SELECTOR_CONTAINER_TOP_RIGHT = '#toastsContainerTopRight'; var SELECTOR_CONTAINER_TOP_LEFT = '#toastsContainerTopLeft'; var SELECTOR_CONTAINER_BOTTOM_RIGHT = '#toastsContainerBottomRight'; var SELECTOR_CONTAINER_BOTTOM_LEFT = '#toastsContainerBottomLeft'; var CLASS_NAME_TOP_RIGHT = 'toasts-top-right'; var CLASS_NAME_TOP_LEFT = 'toasts-top-left'; var CLASS_NAME_BOTTOM_RIGHT = 'toasts-bottom-right'; var CLASS_NAME_BOTTOM_LEFT = 'toasts-bottom-left'; var POSITION_TOP_RIGHT = 'topRight'; var POSITION_TOP_LEFT = 'topLeft'; var POSITION_BOTTOM_RIGHT = 'bottomRight'; var POSITION_BOTTOM_LEFT = 'bottomLeft'; var Default$2 = { position: POSITION_TOP_RIGHT, fixed: true, autohide: false, autoremove: true, delay: 1000, fade: true, icon: null, image: null, imageAlt: null, imageHeight: '25px', title: null, subtitle: null, close: true, body: null, class: null }; /** * Class Definition * ==================================================== */ var Toasts = /*#__PURE__*/function () { function Toasts(element, config) { this._config = config; this._prepareContainer(); $__default["default"]('body').trigger($__default["default"].Event(EVENT_INIT)); } // Public var _proto = Toasts.prototype; _proto.create = function create() { var toast = $__default["default"]('<div class="toast" role="alert" aria-live="assertive" aria-atomic="true"/>'); toast.data('autohide', this._config.autohide); toast.data('animation', this._config.fade); if (this._config.class) { toast.addClass(this._config.class); } if (this._config.delay && this._config.delay != 500) { toast.data('delay', this._config.delay); } var toastHeader = $__default["default"]('<div class="toast-header">'); if (this._config.image != null) { var toastImage = $__default["default"]('<img />').addClass('rounded mr-2').attr('src', this._config.image).attr('alt', this._config.imageAlt); if (this._config.imageHeight != null) { toastImage.height(this._config.imageHeight).width('auto'); } toastHeader.append(toastImage); } if (this._config.icon != null) { toastHeader.append($__default["default"]('<i />').addClass('mr-2').addClass(this._config.icon)); } if (this._config.title != null) { toastHeader.append($__default["default"]('<strong />').addClass('mr-auto').html(this._config.title)); } if (this._config.subtitle != null) { toastHeader.append($__default["default"]('<small />').html(this._config.subtitle)); } if (this._config.close == true) { var toastClose = $__default["default"]('<button data-dismiss="toast" />').attr('type', 'button').addClass('ml-2 mb-1 close').attr('aria-label', 'Close').append('<span aria-hidden="true">×</span>'); if (this._config.title == null) { toastClose.toggleClass('ml-2 ml-auto'); } toastHeader.append(toastClose); } toast.append(toastHeader); if (this._config.body != null) { toast.append($__default["default"]('<div class="toast-body" />').html(this._config.body)); } $__default["default"](this._getContainerId()).prepend(toast); var $body = $__default["default"]('body'); $body.trigger($__default["default"].Event(EVENT_CREATED)); toast.toast('show'); if (this._config.autoremove) { toast.on('hidden.bs.toast', function () { $__default["default"](this).delay(200).remove(); $body.trigger($__default["default"].Event(EVENT_REMOVED)); }); } } // Static ; _proto._getContainerId = function _getContainerId() { if (this._config.position == POSITION_TOP_RIGHT) { return SELECTOR_CONTAINER_TOP_RIGHT; } if (this._config.position == POSITION_TOP_LEFT) { return SELECTOR_CONTAINER_TOP_LEFT; } if (this._config.position == POSITION_BOTTOM_RIGHT) { return SELECTOR_CONTAINER_BOTTOM_RIGHT; } if (this._config.position == POSITION_BOTTOM_LEFT) { return SELECTOR_CONTAINER_BOTTOM_LEFT; } }; _proto._prepareContainer = function _prepareContainer() { if ($__default["default"](this._getContainerId()).length === 0) { var container = $__default["default"]('<div />').attr('id', this._getContainerId().replace('#', '')); if (this._config.position == POSITION_TOP_RIGHT) { container.addClass(CLASS_NAME_TOP_RIGHT); } else if (this._config.position == POSITION_TOP_LEFT) { container.addClass(CLASS_NAME_TOP_LEFT); } else if (this._config.position == POSITION_BOTTOM_RIGHT) { container.addClass(CLASS_NAME_BOTTOM_RIGHT); } else if (this._config.position == POSITION_BOTTOM_LEFT) { container.addClass(CLASS_NAME_BOTTOM_LEFT); } $__default["default"]('body').append(container); } if (this._config.fixed) { $__default["default"](this._getContainerId()).addClass('fixed'); } else { $__default["default"](this._getContainerId()).removeClass('fixed'); } } // Static ; Toasts._jQueryInterface = function _jQueryInterface(option, config) { return this.each(function () { var _options = $__default["default"].extend({}, Default$2, config); var toast = new Toasts($__default["default"](this), _options); if (option === 'create') { toast[option](); } }); }; return Toasts; }(); /** * jQuery API * ==================================================== */ $__default["default"].fn[NAME$2] = Toasts._jQueryInterface; $__default["default"].fn[NAME$2].Constructor = Toasts; $__default["default"].fn[NAME$2].noConflict = function () { $__default["default"].fn[NAME$2] = JQUERY_NO_CONFLICT$2; return Toasts._jQueryInterface; }; /** * -------------------------------------------- * AdminLTE TodoList.js * License MIT * -------------------------------------------- */ /** * Constants * ==================================================== */ var NAME$1 = 'TodoList'; var DATA_KEY$1 = 'lte.todolist'; var JQUERY_NO_CONFLICT$1 = $__default["default"].fn[NAME$1]; var SELECTOR_DATA_TOGGLE = '[data-widget="todo-list"]'; var CLASS_NAME_TODO_LIST_DONE = 'done'; var Default$1 = { onCheck: function onCheck(item) { return item; }, onUnCheck: function onUnCheck(item) { return item; } }; /** * Class Definition * ==================================================== */ var TodoList = /*#__PURE__*/function () { function TodoList(element, config) { this._config = config; this._element = element; this._init(); } // Public var _proto = TodoList.prototype; _proto.toggle = function toggle(item) { item.parents('li').toggleClass(CLASS_NAME_TODO_LIST_DONE); if (!$__default["default"](item).prop('checked')) { this.unCheck($__default["default"](item)); return; } this.check(item); }; _proto.check = function check(item) { this._config.onCheck.call(item); }; _proto.unCheck = function unCheck(item) { this._config.onUnCheck.call(item); } // Private ; _proto._init = function _init() { var _this = this; var $toggleSelector = this._element; $toggleSelector.find('input:checkbox:checked').parents('li').toggleClass(CLASS_NAME_TODO_LIST_DONE); $toggleSelector.on('change', 'input:checkbox', function (event) { _this.toggle($__default["default"](event.target)); }); } // Static ; TodoList._jQueryInterface = function _jQueryInterface(config) { return this.each(function () { var data = $__default["default"](this).data(DATA_KEY$1); if (!data) { data = $__default["default"](this).data(); } var _options = $__default["default"].extend({}, Default$1, typeof config === 'object' ? config : data); var plugin = new TodoList($__default["default"](this), _options); $__default["default"](this).data(DATA_KEY$1, typeof config === 'object' ? config : data); if (config === 'init') { plugin[config](); } }); }; return TodoList; }(); /** * Data API * ==================================================== */ $__default["default"](window).on('load', function () { TodoList._jQueryInterface.call($__default["default"](SELECTOR_DATA_TOGGLE)); }); /** * jQuery API * ==================================================== */ $__default["default"].fn[NAME$1] = TodoList._jQueryInterface; $__default["default"].fn[NAME$1].Constructor = TodoList; $__default["default"].fn[NAME$1].noConflict = function () { $__default["default"].fn[NAME$1] = JQUERY_NO_CONFLICT$1; return TodoList._jQueryInterface; }; /** * -------------------------------------------- * AdminLTE Treeview.js * License MIT * -------------------------------------------- */ /** * Constants * ==================================================== */ var NAME = 'Treeview'; var DATA_KEY = 'lte.treeview'; var EVENT_KEY = "." + DATA_KEY; var JQUERY_NO_CONFLICT = $__default["default"].fn[NAME]; var EVENT_EXPANDED = "expanded" + EVENT_KEY; var EVENT_COLLAPSED = "collapsed" + EVENT_KEY; var EVENT_LOAD_DATA_API = "load" + EVENT_KEY; var SELECTOR_LI = '.nav-item'; var SELECTOR_LINK = '.nav-link'; var SELECTOR_TREEVIEW_MENU = '.nav-treeview'; var SELECTOR_OPEN = '.menu-open'; var SELECTOR_DATA_WIDGET = '[data-widget="treeview"]'; var CLASS_NAME_OPEN = 'menu-open'; var CLASS_NAME_IS_OPENING = 'menu-is-opening'; var CLASS_NAME_SIDEBAR_COLLAPSED = 'sidebar-collapse'; var Default = { trigger: SELECTOR_DATA_WIDGET + " " + SELECTOR_LINK, animationSpeed: 300, accordion: true, expandSidebar: false, sidebarButtonSelector: '[data-widget="pushmenu"]' }; /** * Class Definition * ==================================================== */ var Treeview = /*#__PURE__*/function () { function Treeview(element, config) { this._config = config; this._element = element; } // Public var _proto = Treeview.prototype; _proto.init = function init() { $__default["default"]("" + SELECTOR_LI + SELECTOR_OPEN + " " + SELECTOR_TREEVIEW_MENU + SELECTOR_OPEN).css('display', 'block'); this._setupListeners(); }; _proto.expand = function expand(treeviewMenu, parentLi) { var _this = this; var expandedEvent = $__default["default"].Event(EVENT_EXPANDED); if (this._config.accordion) { var openMenuLi = parentLi.siblings(SELECTOR_OPEN).first(); var openTreeview = openMenuLi.find(SELECTOR_TREEVIEW_MENU).first(); this.collapse(openTreeview, openMenuLi); } parentLi.addClass(CLASS_NAME_IS_OPENING); treeviewMenu.stop().slideDown(this._config.animationSpeed, function () { parentLi.addClass(CLASS_NAME_OPEN); $__default["default"](_this._element).trigger(expandedEvent); }); if (this._config.expandSidebar) { this._expandSidebar(); } }; _proto.collapse = function collapse(treeviewMenu, parentLi) { var _this2 = this; var collapsedEvent = $__default["default"].Event(EVENT_COLLAPSED); parentLi.removeClass(CLASS_NAME_IS_OPENING + " " + CLASS_NAME_OPEN); treeviewMenu.stop().slideUp(this._config.animationSpeed, function () { $__default["default"](_this2._element).trigger(collapsedEvent); treeviewMenu.find(SELECTOR_OPEN + " > " + SELECTOR_TREEVIEW_MENU).slideUp(); treeviewMenu.find(SELECTOR_OPEN).removeClass(CLASS_NAME_IS_OPENING + " " + CLASS_NAME_OPEN); }); }; _proto.toggle = function toggle(event) { var $relativeTarget = $__default["default"](event.currentTarget); var $parent = $relativeTarget.parent(); var treeviewMenu = $parent.find("> " + SELECTOR_TREEVIEW_MENU); if (!treeviewMenu.is(SELECTOR_TREEVIEW_MENU)) { if (!$parent.is(SELECTOR_LI)) { treeviewMenu = $parent.parent().find("> " + SELECTOR_TREEVIEW_MENU); } if (!treeviewMenu.is(SELECTOR_TREEVIEW_MENU)) { return; } } event.preventDefault(); var parentLi = $relativeTarget.parents(SELECTOR_LI).first(); var isOpen = parentLi.hasClass(CLASS_NAME_OPEN); if (isOpen) { this.collapse($__default["default"](treeviewMenu), parentLi); } else { this.expand($__default["default"](treeviewMenu), parentLi); } } // Private ; _proto._setupListeners = function _setupListeners() { var _this3 = this; var elementId = this._element.attr('id') !== undefined ? "#" + this._element.attr('id') : ''; $__default["default"](document).on('click', "" + elementId + this._config.trigger, function (event) { _this3.toggle(event); }); }; _proto._expandSidebar = function _expandSidebar() { if ($__default["default"]('body').hasClass(CLASS_NAME_SIDEBAR_COLLAPSED)) { $__default["default"](this._config.sidebarButtonSelector).PushMenu('expand'); } } // Static ; Treeview._jQueryInterface = function _jQueryInterface(config) { return this.each(function () { var data = $__default["default"](this).data(DATA_KEY); var _options = $__default["default"].extend({}, Default, $__default["default"](this).data()); if (!data) { data = new Treeview($__default["default"](this), _options); $__default["default"](this).data(DATA_KEY, data); } if (config === 'init') { data[config](); } }); }; return Treeview; }(); /** * Data API * ==================================================== */ $__default["default"](window).on(EVENT_LOAD_DATA_API, function () { $__default["default"](SELECTOR_DATA_WIDGET).each(function () { Treeview._jQueryInterface.call($__default["default"](this), 'init'); }); }); /** * jQuery API * ==================================================== */ $__default["default"].fn[NAME] = Treeview._jQueryInterface; $__default["default"].fn[NAME].Constructor = Treeview; $__default["default"].fn[NAME].noConflict = function () { $__default["default"].fn[NAME] = JQUERY_NO_CONFLICT; return Treeview._jQueryInterface; }; exports.CardRefresh = CardRefresh; exports.CardWidget = CardWidget; exports.ControlSidebar = ControlSidebar; exports.DirectChat = DirectChat; exports.Dropdown = Dropdown; exports.ExpandableTable = ExpandableTable; exports.Fullscreen = Fullscreen; exports.IFrame = IFrame; exports.Layout = Layout; exports.NavbarSearch = NavbarSearch; exports.PushMenu = PushMenu; exports.SidebarSearch = SidebarSearch; exports.Toasts = Toasts; exports.TodoList = TodoList; exports.Treeview = Treeview; Object.defineProperty(exports, '__esModule', { value: true }); })); //# sourceMappingURL=adminlte.js.map pages/dashboard.js 0000644 00000016277 15025021321 0010134 0 ustar 00 /* * Author: Abdullah A Almsaeed * Date: 4 Jan 2014 * Description: * This is a demo file used only for the main dashboard (index.html) **/ /* global moment:false, Chart:false, Sparkline:false */ $(function () { 'use strict' // Make the dashboard widgets sortable Using jquery UI $('.connectedSortable').sortable({ placeholder: 'sort-highlight', connectWith: '.connectedSortable', handle: '.card-header, .nav-tabs', forcePlaceholderSize: true, zIndex: 999999 }) $('.connectedSortable .card-header').css('cursor', 'move') // jQuery UI sortable for the todo list $('.todo-list').sortable({ placeholder: 'sort-highlight', handle: '.handle', forcePlaceholderSize: true, zIndex: 999999 }) // bootstrap WYSIHTML5 - text editor $('.textarea').summernote() $('.daterange').daterangepicker({ ranges: { Today: [moment(), moment()], Yesterday: [moment().subtract(1, 'days'), moment().subtract(1, 'days')], 'Last 7 Days': [moment().subtract(6, 'days'), moment()], 'Last 30 Days': [moment().subtract(29, 'days'), moment()], 'This Month': [moment().startOf('month'), moment().endOf('month')], 'Last Month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')] }, startDate: moment().subtract(29, 'days'), endDate: moment() }, function (start, end) { // eslint-disable-next-line no-alert alert('You chose: ' + start.format('MMMM D, YYYY') + ' - ' + end.format('MMMM D, YYYY')) }) /* jQueryKnob */ $('.knob').knob() // jvectormap data var visitorsData = { US: 398, // USA SA: 400, // Saudi Arabia CA: 1000, // Canada DE: 500, // Germany FR: 760, // France CN: 300, // China AU: 700, // Australia BR: 600, // Brazil IN: 800, // India GB: 320, // Great Britain RU: 3000 // Russia } // World map by jvectormap $('#world-map').vectorMap({ map: 'usa_en', backgroundColor: 'transparent', regionStyle: { initial: { fill: 'rgba(255, 255, 255, 0.7)', 'fill-opacity': 1, stroke: 'rgba(0,0,0,.2)', 'stroke-width': 1, 'stroke-opacity': 1 } }, series: { regions: [{ values: visitorsData, scale: ['#ffffff', '#0154ad'], normalizeFunction: 'polynomial' }] }, onRegionLabelShow: function (e, el, code) { if (typeof visitorsData[code] !== 'undefined') { el.html(el.html() + ': ' + visitorsData[code] + ' new visitors') } } }) // Sparkline charts var sparkline1 = new Sparkline($('#sparkline-1')[0], { width: 80, height: 50, lineColor: '#92c1dc', endColor: '#ebf4f9' }) var sparkline2 = new Sparkline($('#sparkline-2')[0], { width: 80, height: 50, lineColor: '#92c1dc', endColor: '#ebf4f9' }) var sparkline3 = new Sparkline($('#sparkline-3')[0], { width: 80, height: 50, lineColor: '#92c1dc', endColor: '#ebf4f9' }) sparkline1.draw([1000, 1200, 920, 927, 931, 1027, 819, 930, 1021]) sparkline2.draw([515, 519, 520, 522, 652, 810, 370, 627, 319, 630, 921]) sparkline3.draw([15, 19, 20, 22, 33, 27, 31, 27, 19, 30, 21]) // The Calender $('#calendar').datetimepicker({ format: 'L', inline: true }) // SLIMSCROLL FOR CHAT WIDGET $('#chat-box').overlayScrollbars({ height: '250px' }) /* Chart.js Charts */ // Sales chart var salesChartCanvas = document.getElementById('revenue-chart-canvas').getContext('2d') // $('#revenue-chart').get(0).getContext('2d'); var salesChartData = { labels: ['January', 'February', 'March', 'April', 'May', 'June', 'July'], datasets: [ { label: 'Digital Goods', backgroundColor: 'rgba(60,141,188,0.9)', borderColor: 'rgba(60,141,188,0.8)', pointRadius: false, pointColor: '#3b8bba', pointStrokeColor: 'rgba(60,141,188,1)', pointHighlightFill: '#fff', pointHighlightStroke: 'rgba(60,141,188,1)', data: [28, 48, 40, 19, 86, 27, 90] }, { label: 'Electronics', backgroundColor: 'rgba(210, 214, 222, 1)', borderColor: 'rgba(210, 214, 222, 1)', pointRadius: false, pointColor: 'rgba(210, 214, 222, 1)', pointStrokeColor: '#c1c7d1', pointHighlightFill: '#fff', pointHighlightStroke: 'rgba(220,220,220,1)', data: [65, 59, 80, 81, 56, 55, 40] } ] } var salesChartOptions = { maintainAspectRatio: false, responsive: true, legend: { display: false }, scales: { xAxes: [{ gridLines: { display: false } }], yAxes: [{ gridLines: { display: false } }] } } // This will get the first returned node in the jQuery collection. // eslint-disable-next-line no-unused-vars var salesChart = new Chart(salesChartCanvas, { // lgtm[js/unused-local-variable] type: 'line', data: salesChartData, options: salesChartOptions }) // Donut Chart var pieChartCanvas = $('#sales-chart-canvas').get(0).getContext('2d') var pieData = { labels: [ 'Instore Sales', 'Download Sales', 'Mail-Order Sales' ], datasets: [ { data: [30, 12, 20], backgroundColor: ['#f56954', '#00a65a', '#f39c12'] } ] } var pieOptions = { legend: { display: false }, maintainAspectRatio: false, responsive: true } // Create pie or douhnut chart // You can switch between pie and douhnut using the method below. // eslint-disable-next-line no-unused-vars var pieChart = new Chart(pieChartCanvas, { // lgtm[js/unused-local-variable] type: 'doughnut', data: pieData, options: pieOptions }) // Sales graph chart var salesGraphChartCanvas = $('#line-chart').get(0).getContext('2d') // $('#revenue-chart').get(0).getContext('2d'); var salesGraphChartData = { labels: ['2011 Q1', '2011 Q2', '2011 Q3', '2011 Q4', '2012 Q1', '2012 Q2', '2012 Q3', '2012 Q4', '2013 Q1', '2013 Q2'], datasets: [ { label: 'Digital Goods', fill: false, borderWidth: 2, lineTension: 0, spanGaps: true, borderColor: '#efefef', pointRadius: 3, pointHoverRadius: 7, pointColor: '#efefef', pointBackgroundColor: '#efefef', data: [2666, 2778, 4912, 3767, 6810, 5670, 4820, 15073, 10687, 8432] } ] } var salesGraphChartOptions = { maintainAspectRatio: false, responsive: true, legend: { display: false }, scales: { xAxes: [{ ticks: { fontColor: '#efefef' }, gridLines: { display: false, color: '#efefef', drawBorder: false } }], yAxes: [{ ticks: { stepSize: 5000, fontColor: '#efefef' }, gridLines: { display: true, color: '#efefef', drawBorder: false } }] } } // This will get the first returned node in the jQuery collection. // eslint-disable-next-line no-unused-vars var salesGraphChart = new Chart(salesGraphChartCanvas, { // lgtm[js/unused-local-variable] type: 'line', data: salesGraphChartData, options: salesGraphChartOptions }) }) pages/dashboard2.js 0000644 00000014233 15025021321 0010204 0 ustar 00 /* global Chart:false */ $(function () { 'use strict' /* ChartJS * ------- * Here we will create a few charts using ChartJS */ //----------------------- // - MONTHLY SALES CHART - //----------------------- // Get context with jQuery - using jQuery's .get() method. var salesChartCanvas = $('#salesChart').get(0).getContext('2d') var salesChartData = { labels: ['January', 'February', 'March', 'April', 'May', 'June', 'July'], datasets: [ { label: 'Digital Goods', backgroundColor: 'rgba(60,141,188,0.9)', borderColor: 'rgba(60,141,188,0.8)', pointRadius: false, pointColor: '#3b8bba', pointStrokeColor: 'rgba(60,141,188,1)', pointHighlightFill: '#fff', pointHighlightStroke: 'rgba(60,141,188,1)', data: [28, 48, 40, 19, 86, 27, 90] }, { label: 'Electronics', backgroundColor: 'rgba(210, 214, 222, 1)', borderColor: 'rgba(210, 214, 222, 1)', pointRadius: false, pointColor: 'rgba(210, 214, 222, 1)', pointStrokeColor: '#c1c7d1', pointHighlightFill: '#fff', pointHighlightStroke: 'rgba(220,220,220,1)', data: [65, 59, 80, 81, 56, 55, 40] } ] } var salesChartOptions = { maintainAspectRatio: false, responsive: true, legend: { display: false }, scales: { xAxes: [{ gridLines: { display: false } }], yAxes: [{ gridLines: { display: false } }] } } // This will get the first returned node in the jQuery collection. // eslint-disable-next-line no-unused-vars var salesChart = new Chart(salesChartCanvas, { type: 'line', data: salesChartData, options: salesChartOptions } ) //--------------------------- // - END MONTHLY SALES CHART - //--------------------------- //------------- // - PIE CHART - //------------- // Get context with jQuery - using jQuery's .get() method. var pieChartCanvas = $('#pieChart').get(0).getContext('2d') var pieData = { labels: [ 'Chrome', 'IE', 'FireFox', 'Safari', 'Opera', 'Navigator' ], datasets: [ { data: [700, 500, 400, 600, 300, 100], backgroundColor: ['#f56954', '#00a65a', '#f39c12', '#00c0ef', '#3c8dbc', '#d2d6de'] } ] } var pieOptions = { legend: { display: false } } // Create pie or douhnut chart // You can switch between pie and douhnut using the method below. // eslint-disable-next-line no-unused-vars var pieChart = new Chart(pieChartCanvas, { type: 'doughnut', data: pieData, options: pieOptions }) //----------------- // - END PIE CHART - //----------------- /* jVector Maps * ------------ * Create a world map with markers */ $('#world-map-markers').mapael({ map: { name: 'usa_states', zoom: { enabled: true, maxLevel: 10 } } }) // $('#world-map-markers').vectorMap({ // map : 'world_en', // normalizeFunction: 'polynomial', // hoverOpacity : 0.7, // hoverColor : false, // backgroundColor : 'transparent', // regionStyle : { // initial : { // fill : 'rgba(210, 214, 222, 1)', // 'fill-opacity' : 1, // stroke : 'none', // 'stroke-width' : 0, // 'stroke-opacity': 1 // }, // hover : { // 'fill-opacity': 0.7, // cursor : 'pointer' // }, // selected : { // fill: 'yellow' // }, // selectedHover: {} // }, // markerStyle : { // initial: { // fill : '#00a65a', // stroke: '#111' // } // }, // markers : [ // { // latLng: [41.90, 12.45], // name : 'Vatican City' // }, // { // latLng: [43.73, 7.41], // name : 'Monaco' // }, // { // latLng: [-0.52, 166.93], // name : 'Nauru' // }, // { // latLng: [-8.51, 179.21], // name : 'Tuvalu' // }, // { // latLng: [43.93, 12.46], // name : 'San Marino' // }, // { // latLng: [47.14, 9.52], // name : 'Liechtenstein' // }, // { // latLng: [7.11, 171.06], // name : 'Marshall Islands' // }, // { // latLng: [17.3, -62.73], // name : 'Saint Kitts and Nevis' // }, // { // latLng: [3.2, 73.22], // name : 'Maldives' // }, // { // latLng: [35.88, 14.5], // name : 'Malta' // }, // { // latLng: [12.05, -61.75], // name : 'Grenada' // }, // { // latLng: [13.16, -61.23], // name : 'Saint Vincent and the Grenadines' // }, // { // latLng: [13.16, -59.55], // name : 'Barbados' // }, // { // latLng: [17.11, -61.85], // name : 'Antigua and Barbuda' // }, // { // latLng: [-4.61, 55.45], // name : 'Seychelles' // }, // { // latLng: [7.35, 134.46], // name : 'Palau' // }, // { // latLng: [42.5, 1.51], // name : 'Andorra' // }, // { // latLng: [14.01, -60.98], // name : 'Saint Lucia' // }, // { // latLng: [6.91, 158.18], // name : 'Federated States of Micronesia' // }, // { // latLng: [1.3, 103.8], // name : 'Singapore' // }, // { // latLng: [1.46, 173.03], // name : 'Kiribati' // }, // { // latLng: [-21.13, -175.2], // name : 'Tonga' // }, // { // latLng: [15.3, -61.38], // name : 'Dominica' // }, // { // latLng: [-20.2, 57.5], // name : 'Mauritius' // }, // { // latLng: [26.02, 50.55], // name : 'Bahrain' // }, // { // latLng: [0.33, 6.73], // name : 'São Tomé and Príncipe' // } // ] // }) }) // lgtm [js/unused-local-variable] pages/dashboard3.js 0000644 00000006637 15025021321 0010216 0 ustar 00 /* global Chart:false */ $(function () { 'use strict' var ticksStyle = { fontColor: '#495057', fontStyle: 'bold' } var mode = 'index' var intersect = true var $salesChart = $('#sales-chart') // eslint-disable-next-line no-unused-vars var salesChart = new Chart($salesChart, { type: 'bar', data: { labels: ['JUN', 'JUL', 'AUG', 'SEP', 'OCT', 'NOV', 'DEC'], datasets: [ { backgroundColor: '#007bff', borderColor: '#007bff', data: [1000, 2000, 3000, 2500, 2700, 2500, 3000] }, { backgroundColor: '#ced4da', borderColor: '#ced4da', data: [700, 1700, 2700, 2000, 1800, 1500, 2000] } ] }, options: { maintainAspectRatio: false, tooltips: { mode: mode, intersect: intersect }, hover: { mode: mode, intersect: intersect }, legend: { display: false }, scales: { yAxes: [{ // display: false, gridLines: { display: true, lineWidth: '4px', color: 'rgba(0, 0, 0, .2)', zeroLineColor: 'transparent' }, ticks: $.extend({ beginAtZero: true, // Include a dollar sign in the ticks callback: function (value) { if (value >= 1000) { value /= 1000 value += 'k' } return '$' + value } }, ticksStyle) }], xAxes: [{ display: true, gridLines: { display: false }, ticks: ticksStyle }] } } }) var $visitorsChart = $('#visitors-chart') // eslint-disable-next-line no-unused-vars var visitorsChart = new Chart($visitorsChart, { data: { labels: ['18th', '20th', '22nd', '24th', '26th', '28th', '30th'], datasets: [{ type: 'line', data: [100, 120, 170, 167, 180, 177, 160], backgroundColor: 'transparent', borderColor: '#007bff', pointBorderColor: '#007bff', pointBackgroundColor: '#007bff', fill: false // pointHoverBackgroundColor: '#007bff', // pointHoverBorderColor : '#007bff' }, { type: 'line', data: [60, 80, 70, 67, 80, 77, 100], backgroundColor: 'tansparent', borderColor: '#ced4da', pointBorderColor: '#ced4da', pointBackgroundColor: '#ced4da', fill: false // pointHoverBackgroundColor: '#ced4da', // pointHoverBorderColor : '#ced4da' }] }, options: { maintainAspectRatio: false, tooltips: { mode: mode, intersect: intersect }, hover: { mode: mode, intersect: intersect }, legend: { display: false }, scales: { yAxes: [{ // display: false, gridLines: { display: true, lineWidth: '4px', color: 'rgba(0, 0, 0, .2)', zeroLineColor: 'transparent' }, ticks: $.extend({ beginAtZero: true, suggestedMax: 200 }, ticksStyle) }], xAxes: [{ display: true, gridLines: { display: false }, ticks: ticksStyle }] } } }) }) // lgtm [js/unused-local-variable] demo.js 0000644 00000054672 15025021321 0006033 0 ustar 00 /** * AdminLTE Demo Menu * ------------------ * You should not use this file in production. * This file is for demo purposes only. */ /* eslint-disable camelcase */ (function ($) { 'use strict' setTimeout(function () { if (window.___browserSync___ === undefined && Number(localStorage.getItem('AdminLTE:Demo:MessageShowed')) < Date.now()) { localStorage.setItem('AdminLTE:Demo:MessageShowed', (Date.now()) + (15 * 60 * 1000)) // eslint-disable-next-line no-alert alert('You load AdminLTE\'s "demo.js", \nthis file is only created for testing purposes!') } }, 1000) function capitalizeFirstLetter(string) { return string.charAt(0).toUpperCase() + string.slice(1) } function createSkinBlock(colors, callback, noneSelected) { var $block = $('<select />', { class: noneSelected ? 'custom-select mb-3 border-0' : 'custom-select mb-3 text-light border-0 ' + colors[0].replace(/accent-|navbar-/, 'bg-') }) if (noneSelected) { var $default = $('<option />', { text: 'None Selected' }) $block.append($default) } colors.forEach(function (color) { var $color = $('<option />', { class: (typeof color === 'object' ? color.join(' ') : color).replace('navbar-', 'bg-').replace('accent-', 'bg-'), text: capitalizeFirstLetter((typeof color === 'object' ? color.join(' ') : color).replace(/navbar-|accent-|bg-/, '').replace('-', ' ')) }) $block.append($color) }) if (callback) { $block.on('change', callback) } return $block } var $sidebar = $('.control-sidebar') var $container = $('<div />', { class: 'p-3 control-sidebar-content' }) $sidebar.append($container) // Checkboxes $container.append( '<h5>Customize AdminLTE</h5><hr class="mb-2"/>' ) var $dark_mode_checkbox = $('<input />', { type: 'checkbox', value: 1, checked: $('body').hasClass('dark-mode'), class: 'mr-1' }).on('click', function () { if ($(this).is(':checked')) { $('body').addClass('dark-mode') } else { $('body').removeClass('dark-mode') } }) var $dark_mode_container = $('<div />', { class: 'mb-4' }).append($dark_mode_checkbox).append('<span>Dark Mode</span>') $container.append($dark_mode_container) $container.append('<h6>Header Options</h6>') var $header_fixed_checkbox = $('<input />', { type: 'checkbox', value: 1, checked: $('body').hasClass('layout-navbar-fixed'), class: 'mr-1' }).on('click', function () { if ($(this).is(':checked')) { $('body').addClass('layout-navbar-fixed') } else { $('body').removeClass('layout-navbar-fixed') } }) var $header_fixed_container = $('<div />', { class: 'mb-1' }).append($header_fixed_checkbox).append('<span>Fixed</span>') $container.append($header_fixed_container) var $dropdown_legacy_offset_checkbox = $('<input />', { type: 'checkbox', value: 1, checked: $('.main-header').hasClass('dropdown-legacy'), class: 'mr-1' }).on('click', function () { if ($(this).is(':checked')) { $('.main-header').addClass('dropdown-legacy') } else { $('.main-header').removeClass('dropdown-legacy') } }) var $dropdown_legacy_offset_container = $('<div />', { class: 'mb-1' }).append($dropdown_legacy_offset_checkbox).append('<span>Dropdown Legacy Offset</span>') $container.append($dropdown_legacy_offset_container) var $no_border_checkbox = $('<input />', { type: 'checkbox', value: 1, checked: $('.main-header').hasClass('border-bottom-0'), class: 'mr-1' }).on('click', function () { if ($(this).is(':checked')) { $('.main-header').addClass('border-bottom-0') } else { $('.main-header').removeClass('border-bottom-0') } }) var $no_border_container = $('<div />', { class: 'mb-4' }).append($no_border_checkbox).append('<span>No border</span>') $container.append($no_border_container) $container.append('<h6>Sidebar Options</h6>') var $sidebar_collapsed_checkbox = $('<input />', { type: 'checkbox', value: 1, checked: $('body').hasClass('sidebar-collapse'), class: 'mr-1' }).on('click', function () { if ($(this).is(':checked')) { $('body').addClass('sidebar-collapse') $(window).trigger('resize') } else { $('body').removeClass('sidebar-collapse') $(window).trigger('resize') } }) var $sidebar_collapsed_container = $('<div />', { class: 'mb-1' }).append($sidebar_collapsed_checkbox).append('<span>Collapsed</span>') $container.append($sidebar_collapsed_container) $(document).on('collapsed.lte.pushmenu', '[data-widget="pushmenu"]', function () { $sidebar_collapsed_checkbox.prop('checked', true) }) $(document).on('shown.lte.pushmenu', '[data-widget="pushmenu"]', function () { $sidebar_collapsed_checkbox.prop('checked', false) }) var $sidebar_fixed_checkbox = $('<input />', { type: 'checkbox', value: 1, checked: $('body').hasClass('layout-fixed'), class: 'mr-1' }).on('click', function () { if ($(this).is(':checked')) { $('body').addClass('layout-fixed') $(window).trigger('resize') } else { $('body').removeClass('layout-fixed') $(window).trigger('resize') } }) var $sidebar_fixed_container = $('<div />', { class: 'mb-1' }).append($sidebar_fixed_checkbox).append('<span>Fixed</span>') $container.append($sidebar_fixed_container) var $sidebar_mini_checkbox = $('<input />', { type: 'checkbox', value: 1, checked: $('body').hasClass('sidebar-mini'), class: 'mr-1' }).on('click', function () { if ($(this).is(':checked')) { $('body').addClass('sidebar-mini') } else { $('body').removeClass('sidebar-mini') } }) var $sidebar_mini_container = $('<div />', { class: 'mb-1' }).append($sidebar_mini_checkbox).append('<span>Sidebar Mini</span>') $container.append($sidebar_mini_container) var $sidebar_mini_md_checkbox = $('<input />', { type: 'checkbox', value: 1, checked: $('body').hasClass('sidebar-mini-md'), class: 'mr-1' }).on('click', function () { if ($(this).is(':checked')) { $('body').addClass('sidebar-mini-md') } else { $('body').removeClass('sidebar-mini-md') } }) var $sidebar_mini_md_container = $('<div />', { class: 'mb-1' }).append($sidebar_mini_md_checkbox).append('<span>Sidebar Mini MD</span>') $container.append($sidebar_mini_md_container) var $sidebar_mini_xs_checkbox = $('<input />', { type: 'checkbox', value: 1, checked: $('body').hasClass('sidebar-mini-xs'), class: 'mr-1' }).on('click', function () { if ($(this).is(':checked')) { $('body').addClass('sidebar-mini-xs') } else { $('body').removeClass('sidebar-mini-xs') } }) var $sidebar_mini_xs_container = $('<div />', { class: 'mb-1' }).append($sidebar_mini_xs_checkbox).append('<span>Sidebar Mini XS</span>') $container.append($sidebar_mini_xs_container) var $flat_sidebar_checkbox = $('<input />', { type: 'checkbox', value: 1, checked: $('.nav-sidebar').hasClass('nav-flat'), class: 'mr-1' }).on('click', function () { if ($(this).is(':checked')) { $('.nav-sidebar').addClass('nav-flat') } else { $('.nav-sidebar').removeClass('nav-flat') } }) var $flat_sidebar_container = $('<div />', { class: 'mb-1' }).append($flat_sidebar_checkbox).append('<span>Nav Flat Style</span>') $container.append($flat_sidebar_container) var $legacy_sidebar_checkbox = $('<input />', { type: 'checkbox', value: 1, checked: $('.nav-sidebar').hasClass('nav-legacy'), class: 'mr-1' }).on('click', function () { if ($(this).is(':checked')) { $('.nav-sidebar').addClass('nav-legacy') } else { $('.nav-sidebar').removeClass('nav-legacy') } }) var $legacy_sidebar_container = $('<div />', { class: 'mb-1' }).append($legacy_sidebar_checkbox).append('<span>Nav Legacy Style</span>') $container.append($legacy_sidebar_container) var $compact_sidebar_checkbox = $('<input />', { type: 'checkbox', value: 1, checked: $('.nav-sidebar').hasClass('nav-compact'), class: 'mr-1' }).on('click', function () { if ($(this).is(':checked')) { $('.nav-sidebar').addClass('nav-compact') } else { $('.nav-sidebar').removeClass('nav-compact') } }) var $compact_sidebar_container = $('<div />', { class: 'mb-1' }).append($compact_sidebar_checkbox).append('<span>Nav Compact</span>') $container.append($compact_sidebar_container) var $child_indent_sidebar_checkbox = $('<input />', { type: 'checkbox', value: 1, checked: $('.nav-sidebar').hasClass('nav-child-indent'), class: 'mr-1' }).on('click', function () { if ($(this).is(':checked')) { $('.nav-sidebar').addClass('nav-child-indent') } else { $('.nav-sidebar').removeClass('nav-child-indent') } }) var $child_indent_sidebar_container = $('<div />', { class: 'mb-1' }).append($child_indent_sidebar_checkbox).append('<span>Nav Child Indent</span>') $container.append($child_indent_sidebar_container) var $child_hide_sidebar_checkbox = $('<input />', { type: 'checkbox', value: 1, checked: $('.nav-sidebar').hasClass('nav-collapse-hide-child'), class: 'mr-1' }).on('click', function () { if ($(this).is(':checked')) { $('.nav-sidebar').addClass('nav-collapse-hide-child') } else { $('.nav-sidebar').removeClass('nav-collapse-hide-child') } }) var $child_hide_sidebar_container = $('<div />', { class: 'mb-1' }).append($child_hide_sidebar_checkbox).append('<span>Nav Child Hide on Collapse</span>') $container.append($child_hide_sidebar_container) var $no_expand_sidebar_checkbox = $('<input />', { type: 'checkbox', value: 1, checked: $('.main-sidebar').hasClass('sidebar-no-expand'), class: 'mr-1' }).on('click', function () { if ($(this).is(':checked')) { $('.main-sidebar').addClass('sidebar-no-expand') } else { $('.main-sidebar').removeClass('sidebar-no-expand') } }) var $no_expand_sidebar_container = $('<div />', { class: 'mb-4' }).append($no_expand_sidebar_checkbox).append('<span>Disable Hover/Focus Auto-Expand</span>') $container.append($no_expand_sidebar_container) $container.append('<h6>Footer Options</h6>') var $footer_fixed_checkbox = $('<input />', { type: 'checkbox', value: 1, checked: $('body').hasClass('layout-footer-fixed'), class: 'mr-1' }).on('click', function () { if ($(this).is(':checked')) { $('body').addClass('layout-footer-fixed') } else { $('body').removeClass('layout-footer-fixed') } }) var $footer_fixed_container = $('<div />', { class: 'mb-4' }).append($footer_fixed_checkbox).append('<span>Fixed</span>') $container.append($footer_fixed_container) $container.append('<h6>Small Text Options</h6>') var $text_sm_body_checkbox = $('<input />', { type: 'checkbox', value: 1, checked: $('body').hasClass('text-sm'), class: 'mr-1' }).on('click', function () { if ($(this).is(':checked')) { $('body').addClass('text-sm') } else { $('body').removeClass('text-sm') } }) var $text_sm_body_container = $('<div />', { class: 'mb-1' }).append($text_sm_body_checkbox).append('<span>Body</span>') $container.append($text_sm_body_container) var $text_sm_header_checkbox = $('<input />', { type: 'checkbox', value: 1, checked: $('.main-header').hasClass('text-sm'), class: 'mr-1' }).on('click', function () { if ($(this).is(':checked')) { $('.main-header').addClass('text-sm') } else { $('.main-header').removeClass('text-sm') } }) var $text_sm_header_container = $('<div />', { class: 'mb-1' }).append($text_sm_header_checkbox).append('<span>Navbar</span>') $container.append($text_sm_header_container) var $text_sm_brand_checkbox = $('<input />', { type: 'checkbox', value: 1, checked: $('.brand-link').hasClass('text-sm'), class: 'mr-1' }).on('click', function () { if ($(this).is(':checked')) { $('.brand-link').addClass('text-sm') } else { $('.brand-link').removeClass('text-sm') } }) var $text_sm_brand_container = $('<div />', { class: 'mb-1' }).append($text_sm_brand_checkbox).append('<span>Brand</span>') $container.append($text_sm_brand_container) var $text_sm_sidebar_checkbox = $('<input />', { type: 'checkbox', value: 1, checked: $('.nav-sidebar').hasClass('text-sm'), class: 'mr-1' }).on('click', function () { if ($(this).is(':checked')) { $('.nav-sidebar').addClass('text-sm') } else { $('.nav-sidebar').removeClass('text-sm') } }) var $text_sm_sidebar_container = $('<div />', { class: 'mb-1' }).append($text_sm_sidebar_checkbox).append('<span>Sidebar Nav</span>') $container.append($text_sm_sidebar_container) var $text_sm_footer_checkbox = $('<input />', { type: 'checkbox', value: 1, checked: $('.main-footer').hasClass('text-sm'), class: 'mr-1' }).on('click', function () { if ($(this).is(':checked')) { $('.main-footer').addClass('text-sm') } else { $('.main-footer').removeClass('text-sm') } }) var $text_sm_footer_container = $('<div />', { class: 'mb-4' }).append($text_sm_footer_checkbox).append('<span>Footer</span>') $container.append($text_sm_footer_container) // Color Arrays var navbar_dark_skins = [ 'navbar-primary', 'navbar-secondary', 'navbar-info', 'navbar-success', 'navbar-danger', 'navbar-indigo', 'navbar-purple', 'navbar-pink', 'navbar-navy', 'navbar-lightblue', 'navbar-teal', 'navbar-cyan', 'navbar-dark', 'navbar-gray-dark', 'navbar-gray' ] var navbar_light_skins = [ 'navbar-light', 'navbar-warning', 'navbar-white', 'navbar-orange' ] var sidebar_colors = [ 'bg-primary', 'bg-warning', 'bg-info', 'bg-danger', 'bg-success', 'bg-indigo', 'bg-lightblue', 'bg-navy', 'bg-purple', 'bg-fuchsia', 'bg-pink', 'bg-maroon', 'bg-orange', 'bg-lime', 'bg-teal', 'bg-olive' ] var accent_colors = [ 'accent-primary', 'accent-warning', 'accent-info', 'accent-danger', 'accent-success', 'accent-indigo', 'accent-lightblue', 'accent-navy', 'accent-purple', 'accent-fuchsia', 'accent-pink', 'accent-maroon', 'accent-orange', 'accent-lime', 'accent-teal', 'accent-olive' ] var sidebar_skins = [ 'sidebar-dark-primary', 'sidebar-dark-warning', 'sidebar-dark-info', 'sidebar-dark-danger', 'sidebar-dark-success', 'sidebar-dark-indigo', 'sidebar-dark-lightblue', 'sidebar-dark-navy', 'sidebar-dark-purple', 'sidebar-dark-fuchsia', 'sidebar-dark-pink', 'sidebar-dark-maroon', 'sidebar-dark-orange', 'sidebar-dark-lime', 'sidebar-dark-teal', 'sidebar-dark-olive', 'sidebar-light-primary', 'sidebar-light-warning', 'sidebar-light-info', 'sidebar-light-danger', 'sidebar-light-success', 'sidebar-light-indigo', 'sidebar-light-lightblue', 'sidebar-light-navy', 'sidebar-light-purple', 'sidebar-light-fuchsia', 'sidebar-light-pink', 'sidebar-light-maroon', 'sidebar-light-orange', 'sidebar-light-lime', 'sidebar-light-teal', 'sidebar-light-olive' ] // Navbar Variants $container.append('<h6>Navbar Variants</h6>') var $navbar_variants = $('<div />', { class: 'd-flex' }) var navbar_all_colors = navbar_dark_skins.concat(navbar_light_skins) var $navbar_variants_colors = createSkinBlock(navbar_all_colors, function () { var color = $(this).find('option:selected').attr('class').replace('bg-', 'navbar-') var $main_header = $('.main-header') $main_header.removeClass('navbar-dark').removeClass('navbar-light') navbar_all_colors.forEach(function (color) { $main_header.removeClass(color) }) $(this).removeClass().addClass('custom-select mb-3 text-light border-0 ') if (navbar_dark_skins.indexOf(color) > -1) { $main_header.addClass('navbar-dark') $(this).addClass(color).addClass('text-light') } else { $main_header.addClass('navbar-light') $(this).addClass(color) } $main_header.addClass(color) }) var active_navbar_color = null var $main_header = $('.main-header') if ($main_header.length > 0) { $main_header[0].classList.forEach(function (className) { if (navbar_all_colors.indexOf(className) > -1 && active_navbar_color === null) { active_navbar_color = className.replace('navbar-', 'bg-') } }) } $navbar_variants_colors.find('option.' + active_navbar_color).prop('selected', true) $navbar_variants_colors.removeClass().addClass('custom-select mb-3 text-light border-0 ').addClass(active_navbar_color) $navbar_variants.append($navbar_variants_colors) $container.append($navbar_variants) // Sidebar Colors $container.append('<h6>Accent Color Variants</h6>') var $accent_variants = $('<div />', { class: 'd-flex' }) $container.append($accent_variants) $container.append(createSkinBlock(accent_colors, function () { var color = $(this).find('option:selected').attr('class') var $body = $('body') accent_colors.forEach(function (skin) { $body.removeClass(skin) }) var accent_color_class = color.replace('bg-', 'accent-') $body.addClass(accent_color_class) }, true)) var active_accent_color = null $('body')[0].classList.forEach(function (className) { if (accent_colors.indexOf(className) > -1 && active_accent_color === null) { active_accent_color = className.replace('navbar-', 'bg-') } }) // $accent_variants.find('option.' + active_accent_color).prop('selected', true) // $accent_variants.removeClass().addClass('custom-select mb-3 text-light border-0 ').addClass(active_accent_color) $container.append('<h6>Dark Sidebar Variants</h6>') var $sidebar_variants_dark = $('<div />', { class: 'd-flex' }) $container.append($sidebar_variants_dark) var $sidebar_dark_variants = createSkinBlock(sidebar_colors, function () { var color = $(this).find('option:selected').attr('class') var sidebar_class = 'sidebar-dark-' + color.replace('bg-', '') var $sidebar = $('.main-sidebar') sidebar_skins.forEach(function (skin) { $sidebar.removeClass(skin) $sidebar_light_variants.removeClass(skin.replace('sidebar-dark-', 'bg-')).removeClass('text-light') }) $(this).removeClass().addClass('custom-select mb-3 text-light border-0').addClass(color) $sidebar_light_variants.find('option').prop('selected', false) $sidebar.addClass(sidebar_class) $('.sidebar').removeClass('os-theme-dark').addClass('os-theme-light') }, true) $container.append($sidebar_dark_variants) var active_sidebar_dark_color = null var $main_sidebar = $('.main-sidebar') if ($main_sidebar.length > 0) { $main_sidebar[0].classList.forEach(function (className) { var color = className.replace('sidebar-dark-', 'bg-') if (sidebar_colors.indexOf(color) > -1 && active_sidebar_dark_color === null) { active_sidebar_dark_color = color } }) } $sidebar_dark_variants.find('option.' + active_sidebar_dark_color).prop('selected', true) $sidebar_dark_variants.removeClass().addClass('custom-select mb-3 text-light border-0 ').addClass(active_sidebar_dark_color) $container.append('<h6>Light Sidebar Variants</h6>') var $sidebar_variants_light = $('<div />', { class: 'd-flex' }) $container.append($sidebar_variants_light) var $sidebar_light_variants = createSkinBlock(sidebar_colors, function () { var color = $(this).find('option:selected').attr('class') var sidebar_class = 'sidebar-light-' + color.replace('bg-', '') var $sidebar = $('.main-sidebar') sidebar_skins.forEach(function (skin) { $sidebar.removeClass(skin) $sidebar_dark_variants.removeClass(skin.replace('sidebar-light-', 'bg-')).removeClass('text-light') }) $(this).removeClass().addClass('custom-select mb-3 text-light border-0').addClass(color) $sidebar_dark_variants.find('option').prop('selected', false) $sidebar.addClass(sidebar_class) $('.sidebar').removeClass('os-theme-light').addClass('os-theme-dark') }, true) $container.append($sidebar_light_variants) var active_sidebar_light_color = null if ($main_sidebar.length > 0) { $main_sidebar[0].classList.forEach(function (className) { var color = className.replace('sidebar-light-', 'bg-') if (sidebar_colors.indexOf(color) > -1 && active_sidebar_light_color === null) { active_sidebar_light_color = color } }) } if (active_sidebar_light_color !== null) { $sidebar_light_variants.find('option.' + active_sidebar_light_color).prop('selected', true) $sidebar_light_variants.removeClass().addClass('custom-select mb-3 text-light border-0 ').addClass(active_sidebar_light_color) } var logo_skins = navbar_all_colors $container.append('<h6>Brand Logo Variants</h6>') var $logo_variants = $('<div />', { class: 'd-flex' }) $container.append($logo_variants) var $clear_btn = $('<a />', { href: '#' }).text('clear').on('click', function (e) { e.preventDefault() var $logo = $('.brand-link') logo_skins.forEach(function (skin) { $logo.removeClass(skin) }) }) var $brand_variants = createSkinBlock(logo_skins, function () { var color = $(this).find('option:selected').attr('class').replace('bg-', 'navbar-') var $logo = $('.brand-link') if (color === 'navbar-light' || color === 'navbar-white') { $logo.addClass('text-black') } else { $logo.removeClass('text-black') } logo_skins.forEach(function (skin) { $logo.removeClass(skin) }) if (color) { $(this).removeClass().addClass('custom-select mb-3 border-0').addClass(color).addClass(color !== 'navbar-light' && color !== 'navbar-white' ? 'text-light' : '') } else { $(this).removeClass().addClass('custom-select mb-3 border-0') } $logo.addClass(color) }, true).append($clear_btn) $container.append($brand_variants) var active_brand_color = null var $brand_link = $('.brand-link') if ($brand_link.length > 0) { $brand_link[0].classList.forEach(function (className) { if (logo_skins.indexOf(className) > -1 && active_brand_color === null) { active_brand_color = className.replace('navbar-', 'bg-') } }) } if (active_brand_color) { $brand_variants.find('option.' + active_brand_color).prop('selected', true) $brand_variants.removeClass().addClass('custom-select mb-3 text-light border-0 ').addClass(active_brand_color) } })(jQuery) adminlte.min.js 0000644 00000132441 15025021321 0007455 0 ustar 00 /*! * AdminLTE v3.2.0 (https://adminlte.io) * Copyright 2014-2022 Colorlib <https://colorlib.com> * Licensed under MIT (https://github.com/ColorlibHQ/AdminLTE/blob/master/LICENSE) */ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("jquery")):"function"==typeof define&&define.amd?define(["exports","jquery"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).adminlte={},e.jQuery)}(this,(function(e,t){"use strict";function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=a(t),i="CardRefresh",o="lte.cardrefresh",l=n.default.fn[i],s="card",r='[data-card-widget="card-refresh"]',d={source:"",sourceSelector:"",params:{},trigger:r,content:".card-body",loadInContent:!0,loadOnInit:!0,loadErrorTemplate:!0,responseType:"",overlayTemplate:'<div class="overlay"><i class="fas fa-2x fa-sync-alt fa-spin"></i></div>',errorTemplate:'<span class="text-danger"></span>',onLoadStart:function(){},onLoadDone:function(e){return e},onLoadFail:function(e,t,a){}},f=function(){function e(e,t){if(this._element=e,this._parent=e.parents(".card").first(),this._settings=n.default.extend({},d,t),this._overlay=n.default(this._settings.overlayTemplate),e.hasClass(s)&&(this._parent=e),""===this._settings.source)throw new Error("Source url was not defined. Please specify a url in your CardRefresh source option.")}var t=e.prototype;return t.load=function(){var e=this;this._addOverlay(),this._settings.onLoadStart.call(n.default(this)),n.default.get(this._settings.source,this._settings.params,(function(t){e._settings.loadInContent&&(""!==e._settings.sourceSelector&&(t=n.default(t).find(e._settings.sourceSelector).html()),e._parent.find(e._settings.content).html(t)),e._settings.onLoadDone.call(n.default(e),t),e._removeOverlay()}),""!==this._settings.responseType&&this._settings.responseType).fail((function(t,a,i){if(e._removeOverlay(),e._settings.loadErrorTemplate){var o=n.default(e._settings.errorTemplate).text(i);e._parent.find(e._settings.content).empty().append(o)}e._settings.onLoadFail.call(n.default(e),t,a,i)})),n.default(this._element).trigger(n.default.Event("loaded.lte.cardrefresh"))},t._addOverlay=function(){this._parent.append(this._overlay),n.default(this._element).trigger(n.default.Event("overlay.added.lte.cardrefresh"))},t._removeOverlay=function(){this._parent.find(this._overlay).remove(),n.default(this._element).trigger(n.default.Event("overlay.removed.lte.cardrefresh"))},t._init=function(){var e=this;n.default(this).find(this._settings.trigger).on("click",(function(){e.load()})),this._settings.loadOnInit&&this.load()},e._jQueryInterface=function(t){var a=n.default(this).data(o),i=n.default.extend({},d,n.default(this).data());a||(a=new e(n.default(this),i),n.default(this).data(o,"string"==typeof t?a:t)),"string"==typeof t&&/load/.test(t)?a[t]():a._init(n.default(this))},e}();n.default(document).on("click",r,(function(e){e&&e.preventDefault(),f._jQueryInterface.call(n.default(this),"load")})),n.default((function(){n.default(r).each((function(){f._jQueryInterface.call(n.default(this))}))})),n.default.fn[i]=f._jQueryInterface,n.default.fn[i].Constructor=f,n.default.fn[i].noConflict=function(){return n.default.fn[i]=l,f._jQueryInterface};var u="CardWidget",c="lte.cardwidget",h=n.default.fn[u],g="card",p="collapsed-card",m="collapsing-card",v="expanding-card",_="was-collapsed",b="maximized-card",y='[data-card-widget="remove"]',C='[data-card-widget="collapse"]',w='[data-card-widget="maximize"]',x={animationSpeed:"normal",collapseTrigger:C,removeTrigger:y,maximizeTrigger:w,collapseIcon:"fa-minus",expandIcon:"fa-plus",maximizeIcon:"fa-expand",minimizeIcon:"fa-compress"},I=function(){function e(e,t){this._element=e,this._parent=e.parents(".card").first(),e.hasClass(g)&&(this._parent=e),this._settings=n.default.extend({},x,t)}var t=e.prototype;return t.collapse=function(){var e=this;this._parent.addClass(m).children(".card-body, .card-footer").slideUp(this._settings.animationSpeed,(function(){e._parent.addClass(p).removeClass(m)})),this._parent.find("> .card-header "+this._settings.collapseTrigger+" ."+this._settings.collapseIcon).addClass(this._settings.expandIcon).removeClass(this._settings.collapseIcon),this._element.trigger(n.default.Event("collapsed.lte.cardwidget"),this._parent)},t.expand=function(){var e=this;this._parent.addClass(v).children(".card-body, .card-footer").slideDown(this._settings.animationSpeed,(function(){e._parent.removeClass(p).removeClass(v)})),this._parent.find("> .card-header "+this._settings.collapseTrigger+" ."+this._settings.expandIcon).addClass(this._settings.collapseIcon).removeClass(this._settings.expandIcon),this._element.trigger(n.default.Event("expanded.lte.cardwidget"),this._parent)},t.remove=function(){this._parent.slideUp(),this._element.trigger(n.default.Event("removed.lte.cardwidget"),this._parent)},t.toggle=function(){this._parent.hasClass(p)?this.expand():this.collapse()},t.maximize=function(){this._parent.find(this._settings.maximizeTrigger+" ."+this._settings.maximizeIcon).addClass(this._settings.minimizeIcon).removeClass(this._settings.maximizeIcon),this._parent.css({height:this._parent.height(),width:this._parent.width(),transition:"all .15s"}).delay(150).queue((function(){var e=n.default(this);e.addClass(b),n.default("html").addClass(b),e.hasClass(p)&&e.addClass(_),e.dequeue()})),this._element.trigger(n.default.Event("maximized.lte.cardwidget"),this._parent)},t.minimize=function(){this._parent.find(this._settings.maximizeTrigger+" ."+this._settings.minimizeIcon).addClass(this._settings.maximizeIcon).removeClass(this._settings.minimizeIcon),this._parent.css("cssText","height: "+this._parent[0].style.height+" !important; width: "+this._parent[0].style.width+" !important; transition: all .15s;").delay(10).queue((function(){var e=n.default(this);e.removeClass(b),n.default("html").removeClass(b),e.css({height:"inherit",width:"inherit"}),e.hasClass(_)&&e.removeClass(_),e.dequeue()})),this._element.trigger(n.default.Event("minimized.lte.cardwidget"),this._parent)},t.toggleMaximize=function(){this._parent.hasClass(b)?this.minimize():this.maximize()},t._init=function(e){var t=this;this._parent=e,n.default(this).find(this._settings.collapseTrigger).click((function(){t.toggle()})),n.default(this).find(this._settings.maximizeTrigger).click((function(){t.toggleMaximize()})),n.default(this).find(this._settings.removeTrigger).click((function(){t.remove()}))},e._jQueryInterface=function(t){var a=n.default(this).data(c),i=n.default.extend({},x,n.default(this).data());a||(a=new e(n.default(this),i),n.default(this).data(c,"string"==typeof t?a:t)),"string"==typeof t&&/collapse|expand|remove|toggle|maximize|minimize|toggleMaximize/.test(t)?a[t]():"object"==typeof t&&a._init(n.default(this))},e}();n.default(document).on("click",C,(function(e){e&&e.preventDefault(),I._jQueryInterface.call(n.default(this),"toggle")})),n.default(document).on("click",y,(function(e){e&&e.preventDefault(),I._jQueryInterface.call(n.default(this),"remove")})),n.default(document).on("click",w,(function(e){e&&e.preventDefault(),I._jQueryInterface.call(n.default(this),"toggleMaximize")})),n.default.fn[u]=I._jQueryInterface,n.default.fn[u].Constructor=I,n.default.fn[u].noConflict=function(){return n.default.fn[u]=h,I._jQueryInterface};var T="ControlSidebar",S="lte.controlsidebar",j=n.default.fn[T],k=".control-sidebar",Q=".control-sidebar-content",H='[data-widget="control-sidebar"]',z=".main-header",F=".main-footer",E="control-sidebar-animate",L="control-sidebar-open",D="control-sidebar-slide-open",R="layout-fixed",A={controlsidebarSlide:!0,scrollbarTheme:"os-theme-light",scrollbarAutoHide:"l",target:k,animationSpeed:300},M=function(){function e(e,t){this._element=e,this._config=t}var t=e.prototype;return t.collapse=function(){var e=this,t=n.default("body"),a=n.default("html");this._config.controlsidebarSlide?(a.addClass(E),t.removeClass(D).delay(300).queue((function(){n.default(k).hide(),a.removeClass(E),n.default(this).dequeue()}))):t.removeClass(L),n.default(this._element).trigger(n.default.Event("collapsed.lte.controlsidebar")),setTimeout((function(){n.default(e._element).trigger(n.default.Event("collapsed-done.lte.controlsidebar"))}),this._config.animationSpeed)},t.show=function(e){void 0===e&&(e=!1);var t=n.default("body"),a=n.default("html");e&&n.default(k).hide(),this._config.controlsidebarSlide?(a.addClass(E),n.default(this._config.target).show().delay(10).queue((function(){t.addClass(D).delay(300).queue((function(){a.removeClass(E),n.default(this).dequeue()})),n.default(this).dequeue()}))):t.addClass(L),this._fixHeight(),this._fixScrollHeight(),n.default(this._element).trigger(n.default.Event("expanded.lte.controlsidebar"))},t.toggle=function(){var e=n.default("body"),t=this._config.target,a=!n.default(t).is(":visible"),i=e.hasClass(L)||e.hasClass(D),o=a&&(e.hasClass(L)||e.hasClass(D));a||o?this.show(a):i&&this.collapse()},t._init=function(){var e=this,t=n.default("body");t.hasClass(L)||t.hasClass(D)?(n.default(k).not(this._config.target).hide(),n.default(this._config.target).css("display","block")):n.default(k).hide(),this._fixHeight(),this._fixScrollHeight(),n.default(window).resize((function(){e._fixHeight(),e._fixScrollHeight()})),n.default(window).scroll((function(){var t=n.default("body");(t.hasClass(L)||t.hasClass(D))&&e._fixScrollHeight()}))},t._isNavbarFixed=function(){var e=n.default("body");return e.hasClass("layout-navbar-fixed")||e.hasClass("layout-sm-navbar-fixed")||e.hasClass("layout-md-navbar-fixed")||e.hasClass("layout-lg-navbar-fixed")||e.hasClass("layout-xl-navbar-fixed")},t._isFooterFixed=function(){var e=n.default("body");return e.hasClass("layout-footer-fixed")||e.hasClass("layout-sm-footer-fixed")||e.hasClass("layout-md-footer-fixed")||e.hasClass("layout-lg-footer-fixed")||e.hasClass("layout-xl-footer-fixed")},t._fixScrollHeight=function(){var e=n.default("body"),t=n.default(this._config.target);if(e.hasClass(R)){var a={scroll:n.default(document).height(),window:n.default(window).height(),header:n.default(z).outerHeight(),footer:n.default(F).outerHeight()},i=Math.abs(a.window+n.default(window).scrollTop()-a.scroll),o=n.default(window).scrollTop(),l=this._isNavbarFixed()&&"fixed"===n.default(z).css("position"),s=this._isFooterFixed()&&"fixed"===n.default(F).css("position"),r=n.default(this._config.target+", "+this._config.target+" "+Q);if(0===o&&0===i)t.css({bottom:a.footer,top:a.header}),r.css("height",a.window-(a.header+a.footer));else if(i<=a.footer)if(!1===s){var d=a.header-o;t.css("bottom",a.footer-i).css("top",d>=0?d:0),r.css("height",a.window-(a.footer-i))}else t.css("bottom",a.footer);else o<=a.header?!1===l?(t.css("top",a.header-o),r.css("height",a.window-(a.header-o))):t.css("top",a.header):!1===l?(t.css("top",0),r.css("height",a.window)):t.css("top",a.header);s&&l?(r.css("height","100%"),t.css("height","")):(s||l)&&(r.css("height","100%"),r.css("height",""))}},t._fixHeight=function(){var e=n.default("body"),t=n.default(this._config.target+" "+Q);if(e.hasClass(R)){var a=n.default(window).height(),i=n.default(z).outerHeight(),o=n.default(F).outerHeight(),l=a-i;this._isFooterFixed()&&"fixed"===n.default(F).css("position")&&(l=a-i-o),t.css("height",l),"undefined"!=typeof n.default.fn.overlayScrollbars&&t.overlayScrollbars({className:this._config.scrollbarTheme,sizeAutoCapable:!0,scrollbars:{autoHide:this._config.scrollbarAutoHide,clickScrolling:!0}})}else t.attr("style","")},e._jQueryInterface=function(t){return this.each((function(){var a=n.default(this).data(S),i=n.default.extend({},A,n.default(this).data());if(a||(a=new e(this,i),n.default(this).data(S,a)),"undefined"===a[t])throw new Error(t+" is not a function");a[t]()}))},e}();n.default(document).on("click",H,(function(e){e.preventDefault(),M._jQueryInterface.call(n.default(this),"toggle")})),n.default(document).ready((function(){M._jQueryInterface.call(n.default(H),"_init")})),n.default.fn[T]=M._jQueryInterface,n.default.fn[T].Constructor=M,n.default.fn[T].noConflict=function(){return n.default.fn[T]=j,M._jQueryInterface};var q="DirectChat",O="lte.directchat",N=n.default.fn[q],P=function(){function e(e){this._element=e}return e.prototype.toggle=function(){n.default(this._element).parents(".direct-chat").first().toggleClass("direct-chat-contacts-open"),n.default(this._element).trigger(n.default.Event("toggled.lte.directchat"))},e._jQueryInterface=function(t){return this.each((function(){var a=n.default(this).data(O);a||(a=new e(n.default(this)),n.default(this).data(O,a)),a[t]()}))},e}();n.default(document).on("click",'[data-widget="chat-pane-toggle"]',(function(e){e&&e.preventDefault(),P._jQueryInterface.call(n.default(this),"toggle")})),n.default.fn[q]=P._jQueryInterface,n.default.fn[q].Constructor=P,n.default.fn[q].noConflict=function(){return n.default.fn[q]=N,P._jQueryInterface};var U="Dropdown",B="lte.dropdown",$=n.default.fn[U],J=".dropdown-menu",W={},V=function(){function e(e,t){this._config=t,this._element=e}var t=e.prototype;return t.toggleSubmenu=function(){this._element.siblings().show().toggleClass("show"),this._element.next().hasClass("show")||this._element.parents(J).first().find(".show").removeClass("show").hide(),this._element.parents("li.nav-item.dropdown.show").on("hidden.bs.dropdown",(function(){n.default(".dropdown-submenu .show").removeClass("show").hide()}))},t.fixPosition=function(){var e=n.default(".dropdown-menu.show");if(0!==e.length){e.hasClass("dropdown-menu-right")?e.css({left:"inherit",right:0}):e.css({left:0,right:"inherit"});var t=e.offset(),a=e.width(),i=n.default(window).width()-t.left;t.left<0?e.css({left:"inherit",right:t.left-5}):i<a&&e.css({left:"inherit",right:0})}},e._jQueryInterface=function(t){return this.each((function(){var a=n.default(this).data(B),i=n.default.extend({},W,n.default(this).data());a||(a=new e(n.default(this),i),n.default(this).data(B,a)),"toggleSubmenu"!==t&&"fixPosition"!==t||a[t]()}))},e}();n.default('.dropdown-menu [data-toggle="dropdown"]').on("click",(function(e){e.preventDefault(),e.stopPropagation(),V._jQueryInterface.call(n.default(this),"toggleSubmenu")})),n.default('.navbar [data-toggle="dropdown"]').on("click",(function(e){e.preventDefault(),n.default(e.target).parent().hasClass("dropdown-submenu")||setTimeout((function(){V._jQueryInterface.call(n.default(this),"fixPosition")}),1)})),n.default.fn[U]=V._jQueryInterface,n.default.fn[U].Constructor=V,n.default.fn[U].noConflict=function(){return n.default.fn[U]=$,V._jQueryInterface};var G="ExpandableTable",K="lte.expandableTable",X=n.default.fn[G],Y=".expandable-body",Z='[data-widget="expandable-table"]',ee="aria-expanded",te=function(){function e(e,t){this._options=t,this._element=e}var t=e.prototype;return t.init=function(){n.default(Z).each((function(e,t){var a=n.default(t).attr(ee),i=n.default(t).next(Y).children().first().children();"true"===a?i.show():"false"===a&&(i.hide(),i.parent().parent().addClass("d-none"))}))},t.toggleRow=function(){var e=this._element;"TR"!==e[0].nodeName&&"TR"!==(e=e.parent())[0].nodeName&&(e=e.parent());var t=e.attr(ee),a=e.next(Y).children().first().children();a.stop(),"true"===t?(a.slideUp(500,(function(){e.next(Y).addClass("d-none")})),e.attr(ee,"false"),e.trigger(n.default.Event("collapsed.lte.expandableTable"))):"false"===t&&(e.next(Y).removeClass("d-none"),a.slideDown(500),e.attr(ee,"true"),e.trigger(n.default.Event("expanded.lte.expandableTable")))},e._jQueryInterface=function(t){return this.each((function(){var a=n.default(this).data(K);a||(a=new e(n.default(this)),n.default(this).data(K,a)),"string"==typeof t&&/init|toggleRow/.test(t)&&a[t]()}))},e}();n.default(".expandable-table").ready((function(){te._jQueryInterface.call(n.default(this),"init")})),n.default(document).on("click",Z,(function(){te._jQueryInterface.call(n.default(this),"toggleRow")})),n.default.fn[G]=te._jQueryInterface,n.default.fn[G].Constructor=te,n.default.fn[G].noConflict=function(){return n.default.fn[G]=X,te._jQueryInterface};var ae="Fullscreen",ne="lte.fullscreen",ie=n.default.fn[ae],oe='[data-widget="fullscreen"]',le=oe+" i",se={minimizeIcon:"fa-compress-arrows-alt",maximizeIcon:"fa-expand-arrows-alt"},re=function(){function e(e,t){this.element=e,this.options=n.default.extend({},se,t)}var t=e.prototype;return t.toggle=function(){document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement||document.msFullscreenElement?this.windowed():this.fullscreen()},t.toggleIcon=function(){document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement||document.msFullscreenElement?n.default(le).removeClass(this.options.maximizeIcon).addClass(this.options.minimizeIcon):n.default(le).removeClass(this.options.minimizeIcon).addClass(this.options.maximizeIcon)},t.fullscreen=function(){document.documentElement.requestFullscreen?document.documentElement.requestFullscreen():document.documentElement.webkitRequestFullscreen?document.documentElement.webkitRequestFullscreen():document.documentElement.msRequestFullscreen&&document.documentElement.msRequestFullscreen()},t.windowed=function(){document.exitFullscreen?document.exitFullscreen():document.webkitExitFullscreen?document.webkitExitFullscreen():document.msExitFullscreen&&document.msExitFullscreen()},e._jQueryInterface=function(t){var a=n.default(this).data(ne);a||(a=n.default(this).data());var i=n.default.extend({},se,"object"==typeof t?t:a),o=new e(n.default(this),i);n.default(this).data(ne,"object"==typeof t?t:a),"string"==typeof t&&/toggle|toggleIcon|fullscreen|windowed/.test(t)?o[t]():o.init()},e}();n.default(document).on("click",oe,(function(){re._jQueryInterface.call(n.default(this),"toggle")})),n.default(document).on("webkitfullscreenchange mozfullscreenchange fullscreenchange MSFullscreenChange",(function(){re._jQueryInterface.call(n.default(oe),"toggleIcon")})),n.default.fn[ae]=re._jQueryInterface,n.default.fn[ae].Constructor=re,n.default.fn[ae].noConflict=function(){return n.default.fn[ae]=ie,re._jQueryInterface};var de="lte.iframe",fe=n.default.fn.IFrame,ue='[data-widget="iframe"]',ce='[data-widget="iframe-fullscreen"]',he=".content-wrapper",ge=".content-wrapper iframe",pe=".content-wrapper.iframe-mode .nav",me=".content-wrapper.iframe-mode .navbar-nav",ve=me+" .nav-item",_e=me+" .nav-link",be=".content-wrapper.iframe-mode .tab-content",ye=be+" .tab-empty",Ce=be+" .tab-loading",we=be+" .tab-pane",xe=".main-sidebar .nav-item > a.nav-link",Ie=".main-header .nav-item a.nav-link",Te=".main-header a.dropdown-item",Se="iframe-mode",je="iframe-mode-fullscreen",ke={onTabClick:function(e){return e},onTabChanged:function(e){return e},onTabCreated:function(e){return e},autoIframeMode:!0,autoItemActive:!0,autoShowNewTab:!0,autoDarkMode:!1,allowDuplicates:!1,allowReload:!0,loadingScreen:!0,useNavbarItems:!0,scrollOffset:40,scrollBehaviorSwap:!1,iconMaximize:"fa-expand",iconMinimize:"fa-compress"},Qe=function(){function e(e,t){this._config=t,this._element=e,this._init()}var t=e.prototype;return t.onTabClick=function(e){this._config.onTabClick(e)},t.onTabChanged=function(e){this._config.onTabChanged(e)},t.onTabCreated=function(e){this._config.onTabCreated(e)},t.createTab=function(e,t,a,i){var o=this,l="panel-"+a,s="tab-"+a;this._config.allowDuplicates&&(l+="-"+Math.floor(1e3*Math.random()),s+="-"+Math.floor(1e3*Math.random()));var r='<li class="nav-item" role="presentation"><a href="#" class="btn-iframe-close" data-widget="iframe-close" data-type="only-this"><i class="fas fa-times"></i></a><a class="nav-link" data-toggle="row" id="'+s+'" href="#'+l+'" role="tab" aria-controls="'+l+'" aria-selected="false">'+e+"</a></li>";n.default(me).append(unescape(escape(r)));var d='<div class="tab-pane fade" id="'+l+'" role="tabpanel" aria-labelledby="'+s+'"><iframe src="'+t+'"></iframe></div>';if(n.default(be).append(unescape(escape(d))),i)if(this._config.loadingScreen){var f=n.default(Ce);f.fadeIn(),n.default(l+" iframe").ready((function(){"number"==typeof o._config.loadingScreen?(o.switchTab("#"+s),setTimeout((function(){f.fadeOut()}),o._config.loadingScreen)):(o.switchTab("#"+s),f.fadeOut())}))}else this.switchTab("#"+s);this.onTabCreated(n.default("#"+s))},t.openTabSidebar=function(e,t){void 0===t&&(t=this._config.autoShowNewTab);var a=n.default(e).clone();void 0===a.attr("href")&&(a=n.default(e).parent("a").clone()),a.find(".right, .search-path").remove();var i=a.find("p").text();""===i&&(i=a.text());var o=a.attr("href");if("#"!==o&&""!==o&&void 0!==o){var l=unescape(o).replace("./","").replace(/["#&'./:=?[\]]/gi,"-").replace(/(--)/gi,""),s="tab-"+l;if(!this._config.allowDuplicates&&n.default("#"+s).length>0)return this.switchTab("#"+s,this._config.allowReload);(!this._config.allowDuplicates&&0===n.default("#"+s).length||this._config.allowDuplicates)&&this.createTab(i,o,l,t)}},t.switchTab=function(e,t){var a=this;void 0===t&&(t=!1);var i=n.default(e),o=i.attr("href");if(n.default(ye).hide(),t){var l=n.default(Ce);this._config.loadingScreen?l.show(0,(function(){n.default(o+" iframe").attr("src",n.default(o+" iframe").attr("src")).ready((function(){a._config.loadingScreen&&("number"==typeof a._config.loadingScreen?setTimeout((function(){l.fadeOut()}),a._config.loadingScreen):l.fadeOut())}))})):n.default(o+" iframe").attr("src",n.default(o+" iframe").attr("src"))}n.default(me+" .active").tab("dispose").removeClass("active"),this._fixHeight(),i.tab("show"),i.parents("li").addClass("active"),this.onTabChanged(i),this._config.autoItemActive&&this._setItemActive(n.default(o+" iframe").attr("src"))},t.removeActiveTab=function(e,t){if("all"==e)n.default(ve).remove(),n.default(we).remove(),n.default(ye).show();else if("all-other"==e)n.default(ve+":not(.active)").remove(),n.default(we+":not(.active)").remove();else if("only-this"==e){var a=n.default(t),i=a.parent(".nav-item"),o=i.parent(),l=i.index(),s=a.siblings(".nav-link").attr("aria-controls");if(i.remove(),n.default("#"+s).remove(),n.default(be).children().length==n.default(ye+", "+Ce).length)n.default(ye).show();else{var r=l-1;this.switchTab(o.children().eq(r).find("a.nav-link"))}}else{var d=n.default(ve+".active"),f=d.parent(),u=d.index();if(d.remove(),n.default(we+".active").remove(),n.default(be).children().length==n.default(ye+", "+Ce).length)n.default(ye).show();else{var c=u-1;this.switchTab(f.children().eq(c).find("a.nav-link"))}}},t.toggleFullscreen=function(){n.default("body").hasClass(je)?(n.default(ce+" i").removeClass(this._config.iconMinimize).addClass(this._config.iconMaximize),n.default("body").removeClass(je),n.default(ye+", "+Ce).height("100%"),n.default(he).height("100%"),n.default(ge).height("100%")):(n.default(ce+" i").removeClass(this._config.iconMaximize).addClass(this._config.iconMinimize),n.default("body").addClass(je)),n.default(window).trigger("resize"),this._fixHeight(!0)},t._init=function(){var e=n.default(be).children().length>2;if(this._setupListeners(),this._fixHeight(!0),e){var t=n.default(""+we).first();console.log(t);var a="#tab-"+t.attr("id").replace("panel-","");this.switchTab(a,!0)}},t._initFrameElement=function(){if(window.frameElement&&this._config.autoIframeMode){var e=n.default("body");e.addClass(Se),this._config.autoDarkMode&&e.addClass("dark-mode")}},t._navScroll=function(e){var t=n.default(me).scrollLeft();n.default(me).animate({scrollLeft:t+e},250,"linear")},t._setupListeners=function(){var e=this;n.default(window).on("resize",(function(){setTimeout((function(){e._fixHeight()}),1)})),n.default(he).hasClass(Se)&&(n.default(document).on("click",xe+", .sidebar-search-results .list-group-item",(function(t){t.preventDefault(),e.openTabSidebar(t.target)})),this._config.useNavbarItems&&n.default(document).on("click",Ie+", "+Te,(function(t){t.preventDefault(),e.openTabSidebar(t.target)}))),n.default(document).on("click",_e,(function(t){t.preventDefault(),e.onTabClick(t.target),e.switchTab(t.target)})),n.default(document).on("click",_e,(function(t){t.preventDefault(),e.onTabClick(t.target),e.switchTab(t.target)})),n.default(document).on("click",'[data-widget="iframe-close"]',(function(t){t.preventDefault();var a=t.target;"I"==a.nodeName&&(a=t.target.offsetParent),e.removeActiveTab(a.attributes["data-type"]?a.attributes["data-type"].nodeValue:null,a)})),n.default(document).on("click",ce,(function(t){t.preventDefault(),e.toggleFullscreen()}));var t=!1,a=null;n.default(document).on("mousedown",'[data-widget="iframe-scrollleft"]',(function(n){n.preventDefault(),clearInterval(a);var i=e._config.scrollOffset;e._config.scrollBehaviorSwap||(i=-i),t=!0,e._navScroll(i),a=setInterval((function(){e._navScroll(i)}),250)})),n.default(document).on("mousedown",'[data-widget="iframe-scrollright"]',(function(n){n.preventDefault(),clearInterval(a);var i=e._config.scrollOffset;e._config.scrollBehaviorSwap&&(i=-i),t=!0,e._navScroll(i),a=setInterval((function(){e._navScroll(i)}),250)})),n.default(document).on("mouseup",(function(){t&&(t=!1,clearInterval(a),a=null)}))},t._setItemActive=function(e){n.default(xe+", "+Te).removeClass("active"),n.default(Ie).parent().removeClass("active");var t=n.default(Ie+'[href$="'+e+'"]'),a=n.default('.main-header a.dropdown-item[href$="'+e+'"]'),i=n.default(xe+'[href$="'+e+'"]');t.each((function(e,t){n.default(t).parent().addClass("active")})),a.each((function(e,t){n.default(t).addClass("active")})),i.each((function(e,t){n.default(t).addClass("active"),n.default(t).parents(".nav-treeview").prevAll(".nav-link").addClass("active")}))},t._fixHeight=function(e){if(void 0===e&&(e=!1),n.default("body").hasClass(je)){var t=n.default(window).height(),a=n.default(pe).outerHeight();n.default(ye+", "+Ce+", "+ge).height(t-a),n.default(he).height(t)}else{var i=parseFloat(n.default(he).css("height")),o=n.default(pe).outerHeight();1==e?setTimeout((function(){n.default(ye+", "+Ce).height(i-o)}),50):n.default(ge).height(i-o)}},e._jQueryInterface=function(t){if(n.default(ue).length>0){var a=n.default(this).data(de);a||(a=n.default(this).data());var i=n.default.extend({},ke,"object"==typeof t?t:a);localStorage.setItem("AdminLTE:IFrame:Options",JSON.stringify(i));var o=new e(n.default(this),i);n.default(this).data(de,"object"==typeof t?t:a),"string"==typeof t&&/createTab|openTabSidebar|switchTab|removeActiveTab/.test(t)&&o[t]()}else new e(n.default(this),JSON.parse(localStorage.getItem("AdminLTE:IFrame:Options")))._initFrameElement()},e}();n.default(window).on("load",(function(){Qe._jQueryInterface.call(n.default(ue))})),n.default.fn.IFrame=Qe._jQueryInterface,n.default.fn.IFrame.Constructor=Qe,n.default.fn.IFrame.noConflict=function(){return n.default.fn.IFrame=fe,Qe._jQueryInterface};var He="lte.layout",ze=n.default.fn.Layout,Fe=".main-header",Ee=".main-sidebar",Le=".main-sidebar .sidebar",De=".main-footer",Re="sidebar-focused",Ae={scrollbarTheme:"os-theme-light",scrollbarAutoHide:"l",panelAutoHeight:!0,panelAutoHeightMode:"min-height",preloadDuration:200,loginRegisterAutoHeight:!0},Me=function(){function e(e,t){this._config=t,this._element=e}var t=e.prototype;return t.fixLayoutHeight=function(e){void 0===e&&(e=null);var t=n.default("body"),a=0;(t.hasClass("control-sidebar-slide-open")||t.hasClass("control-sidebar-open")||"control_sidebar"===e)&&(a=n.default(".control-sidebar-content").outerHeight());var i={window:n.default(window).height(),header:n.default(Fe).length>0?n.default(Fe).outerHeight():0,footer:n.default(De).length>0?n.default(De).outerHeight():0,sidebar:n.default(Le).length>0?n.default(Le).height():0,controlSidebar:a},o=this._max(i),l=this._config.panelAutoHeight;!0===l&&(l=0);var s=n.default(".content-wrapper");!1!==l&&(o===i.controlSidebar?s.css(this._config.panelAutoHeightMode,o+l):o===i.window?s.css(this._config.panelAutoHeightMode,o+l-i.header-i.footer):s.css(this._config.panelAutoHeightMode,o+l-i.header),this._isFooterFixed()&&s.css(this._config.panelAutoHeightMode,parseFloat(s.css(this._config.panelAutoHeightMode))+i.footer)),t.hasClass("layout-fixed")&&("undefined"!=typeof n.default.fn.overlayScrollbars?n.default(Le).overlayScrollbars({className:this._config.scrollbarTheme,sizeAutoCapable:!0,scrollbars:{autoHide:this._config.scrollbarAutoHide,clickScrolling:!0}}):n.default(Le).css("overflow-y","auto"))},t.fixLoginRegisterHeight=function(){var e=n.default("body"),t=n.default(".login-box, .register-box");if(e.hasClass("iframe-mode"))e.css("height","100%"),n.default(".wrapper").css("height","100%"),n.default("html").css("height","100%");else if(0===t.length)e.css("height","auto"),n.default("html").css("height","auto");else{var a=t.height();e.css(this._config.panelAutoHeightMode)!==a&&e.css(this._config.panelAutoHeightMode,a)}},t._init=function(){var e=this;this.fixLayoutHeight(),!0===this._config.loginRegisterAutoHeight?this.fixLoginRegisterHeight():this._config.loginRegisterAutoHeight===parseInt(this._config.loginRegisterAutoHeight,10)&&setInterval(this.fixLoginRegisterHeight,this._config.loginRegisterAutoHeight),n.default(Le).on("collapsed.lte.treeview expanded.lte.treeview",(function(){e.fixLayoutHeight()})),n.default(Ee).on("mouseenter mouseleave",(function(){n.default("body").hasClass("sidebar-collapse")&&e.fixLayoutHeight()})),n.default('[data-widget="pushmenu"]').on("collapsed.lte.pushmenu shown.lte.pushmenu",(function(){setTimeout((function(){e.fixLayoutHeight()}),300)})),n.default('[data-widget="control-sidebar"]').on("collapsed.lte.controlsidebar",(function(){e.fixLayoutHeight()})).on("expanded.lte.controlsidebar",(function(){e.fixLayoutHeight("control_sidebar")})),n.default(window).resize((function(){e.fixLayoutHeight()})),setTimeout((function(){n.default("body.hold-transition").removeClass("hold-transition")}),50),setTimeout((function(){var e=n.default(".preloader");e&&(e.css("height",0),setTimeout((function(){e.children().hide()}),200))}),this._config.preloadDuration)},t._max=function(e){var t=0;return Object.keys(e).forEach((function(a){e[a]>t&&(t=e[a])})),t},t._isFooterFixed=function(){return"fixed"===n.default(De).css("position")},e._jQueryInterface=function(t){return void 0===t&&(t=""),this.each((function(){var a=n.default(this).data(He),i=n.default.extend({},Ae,n.default(this).data());a||(a=new e(n.default(this),i),n.default(this).data(He,a)),"init"===t||""===t?a._init():"fixLayoutHeight"!==t&&"fixLoginRegisterHeight"!==t||a[t]()}))},e}();n.default(window).on("load",(function(){Me._jQueryInterface.call(n.default("body"))})),n.default(Le+" a").on("focusin",(function(){n.default(Ee).addClass(Re)})).on("focusout",(function(){n.default(Ee).removeClass(Re)})),n.default.fn.Layout=Me._jQueryInterface,n.default.fn.Layout.Constructor=Me,n.default.fn.Layout.noConflict=function(){return n.default.fn.Layout=ze,Me._jQueryInterface};var qe="PushMenu",Oe="lte.pushmenu",Ne="."+Oe,Pe=n.default.fn[qe],Ue='[data-widget="pushmenu"]',Be="body",$e="sidebar-collapse",Je="sidebar-open",We="sidebar-is-opening",Ve="sidebar-closed",Ge={autoCollapseSize:992,enableRemember:!1,noTransitionAfterReload:!0,animationSpeed:300},Ke=function(){function e(e,t){this._element=e,this._options=n.default.extend({},Ge,t),0===n.default("#sidebar-overlay").length&&this._addOverlay(),this._init()}var t=e.prototype;return t.expand=function(){var e=n.default(Be);this._options.autoCollapseSize&&n.default(window).width()<=this._options.autoCollapseSize&&e.addClass(Je),e.addClass(We).removeClass("sidebar-collapse sidebar-closed").delay(50).queue((function(){e.removeClass(We),n.default(this).dequeue()})),this._options.enableRemember&&localStorage.setItem("remember"+Ne,Je),n.default(this._element).trigger(n.default.Event("shown.lte.pushmenu"))},t.collapse=function(){var e=this,t=n.default(Be);this._options.autoCollapseSize&&n.default(window).width()<=this._options.autoCollapseSize&&t.removeClass(Je).addClass(Ve),t.addClass($e),this._options.enableRemember&&localStorage.setItem("remember"+Ne,$e),n.default(this._element).trigger(n.default.Event("collapsed.lte.pushmenu")),setTimeout((function(){n.default(e._element).trigger(n.default.Event("collapsed-done.lte.pushmenu"))}),this._options.animationSpeed)},t.toggle=function(){n.default(Be).hasClass($e)?this.expand():this.collapse()},t.autoCollapse=function(e){if(void 0===e&&(e=!1),this._options.autoCollapseSize){var t=n.default(Be);n.default(window).width()<=this._options.autoCollapseSize?t.hasClass(Je)||this.collapse():!0===e&&(t.hasClass(Je)?t.removeClass(Je):t.hasClass(Ve)&&this.expand())}},t.remember=function(){if(this._options.enableRemember){var e=n.default("body");localStorage.getItem("remember"+Ne)===$e?this._options.noTransitionAfterReload?e.addClass("hold-transition").addClass($e).delay(50).queue((function(){n.default(this).removeClass("hold-transition"),n.default(this).dequeue()})):e.addClass($e):this._options.noTransitionAfterReload?e.addClass("hold-transition").removeClass($e).delay(50).queue((function(){n.default(this).removeClass("hold-transition"),n.default(this).dequeue()})):e.removeClass($e)}},t._init=function(){var e=this;this.remember(),this.autoCollapse(),n.default(window).resize((function(){e.autoCollapse(!0)}))},t._addOverlay=function(){var e=this,t=n.default("<div />",{id:"sidebar-overlay"});t.on("click",(function(){e.collapse()})),n.default(".wrapper").append(t)},e._jQueryInterface=function(t){return this.each((function(){var a=n.default(this).data(Oe),i=n.default.extend({},Ge,n.default(this).data());a||(a=new e(this,i),n.default(this).data(Oe,a)),"string"==typeof t&&/collapse|expand|toggle/.test(t)&&a[t]()}))},e}();n.default(document).on("click",Ue,(function(e){e.preventDefault();var t=e.currentTarget;"pushmenu"!==n.default(t).data("widget")&&(t=n.default(t).closest(Ue)),Ke._jQueryInterface.call(n.default(t),"toggle")})),n.default(window).on("load",(function(){Ke._jQueryInterface.call(n.default(Ue))})),n.default.fn[qe]=Ke._jQueryInterface,n.default.fn[qe].Constructor=Ke,n.default.fn[qe].noConflict=function(){return n.default.fn[qe]=Pe,Ke._jQueryInterface};var Xe="SidebarSearch",Ye="lte.sidebar-search",Ze=n.default.fn[Xe],et="sidebar-search-open",tt="fa-search",at="fa-times",nt="sidebar-search-results",it="list-group",ot='[data-widget="sidebar-search"]',lt=ot+" .form-control",st=ot+" .btn",rt=st+" i",dt=".sidebar-search-results",ft=".sidebar-search-results .list-group",ut={arrowSign:"->",minLength:3,maxResults:7,highlightName:!0,highlightPath:!1,highlightClass:"text-light",notFoundText:"No element found!"},ct=[],ht=function(){function e(e,t){this.element=e,this.options=n.default.extend({},ut,t),this.items=[]}var a=e.prototype;return a.init=function(){var e=this;0!==n.default(ot).length&&(0===n.default(ot).next(dt).length&&n.default(ot).after(n.default("<div />",{class:nt})),0===n.default(dt).children(".list-group").length&&n.default(dt).append(n.default("<div />",{class:it})),this._addNotFound(),n.default(".main-sidebar .nav-sidebar").children().each((function(t,a){e._parseItem(a)})))},a.search=function(){var e=this,t=n.default(lt).val().toLowerCase();if(t.length<this.options.minLength)return n.default(ft).empty(),this._addNotFound(),void this.close();var a=ct.filter((function(e){return e.name.toLowerCase().includes(t)})),i=n.default(a.slice(0,this.options.maxResults));n.default(ft).empty(),0===i.length?this._addNotFound():i.each((function(t,a){n.default(ft).append(e._renderItem(escape(a.name),encodeURI(a.link),a.path))})),this.open()},a.open=function(){n.default(ot).parent().addClass(et),n.default(rt).removeClass(tt).addClass(at)},a.close=function(){n.default(ot).parent().removeClass(et),n.default(rt).removeClass(at).addClass(tt)},a.toggle=function(){n.default(ot).parent().hasClass(et)?this.close():this.open()},a._parseItem=function(e,t){var a=this;if(void 0===t&&(t=[]),!n.default(e).hasClass("nav-header")){var i={},o=n.default(e).clone().find("> .nav-link"),l=n.default(e).clone().find("> .nav-treeview"),s=o.attr("href"),r=o.find("p").children().remove().end().text();if(i.name=this._trimText(r),i.link=s,i.path=t,0===l.length)ct.push(i);else{var d=i.path.concat([i.name]);l.children().each((function(e,t){a._parseItem(t,d)}))}}},a._trimText=function(e){return t.trim(e.replace(/(\r\n|\n|\r)/gm," "))},a._renderItem=function(e,t,a){var i=this;if(a=a.join(" "+this.options.arrowSign+" "),e=unescape(e),t=decodeURI(t),this.options.highlightName||this.options.highlightPath){var o=n.default(lt).val().toLowerCase(),l=new RegExp(o,"gi");this.options.highlightName&&(e=e.replace(l,(function(e){return'<strong class="'+i.options.highlightClass+'">'+e+"</strong>"}))),this.options.highlightPath&&(a=a.replace(l,(function(e){return'<strong class="'+i.options.highlightClass+'">'+e+"</strong>"})))}var s=n.default("<a/>",{href:decodeURIComponent(t),class:"list-group-item"}),r=n.default("<div/>",{class:"search-title"}).html(e),d=n.default("<div/>",{class:"search-path"}).html(a);return s.append(r).append(d),s},a._addNotFound=function(){n.default(ft).append(this._renderItem(this.options.notFoundText,"#",[]))},e._jQueryInterface=function(t){var a=n.default(this).data(Ye);a||(a=n.default(this).data());var i=n.default.extend({},ut,"object"==typeof t?t:a),o=new e(n.default(this),i);n.default(this).data(Ye,"object"==typeof t?t:a),"string"==typeof t&&/init|toggle|close|open|search/.test(t)?o[t]():o.init()},e}();n.default(document).on("click",st,(function(e){e.preventDefault(),ht._jQueryInterface.call(n.default(ot),"toggle")})),n.default(document).on("keyup",lt,(function(e){return 38==e.keyCode?(e.preventDefault(),void n.default(ft).children().last().focus()):40==e.keyCode?(e.preventDefault(),void n.default(ft).children().first().focus()):void setTimeout((function(){ht._jQueryInterface.call(n.default(ot),"search")}),100)})),n.default(document).on("keydown",ft,(function(e){var t=n.default(":focus");38==e.keyCode&&(e.preventDefault(),t.is(":first-child")?t.siblings().last().focus():t.prev().focus()),40==e.keyCode&&(e.preventDefault(),t.is(":last-child")?t.siblings().first().focus():t.next().focus())})),n.default(window).on("load",(function(){ht._jQueryInterface.call(n.default(ot),"init")})),n.default.fn[Xe]=ht._jQueryInterface,n.default.fn[Xe].Constructor=ht,n.default.fn[Xe].noConflict=function(){return n.default.fn[Xe]=Ze,ht._jQueryInterface};var gt="NavbarSearch",pt="lte.navbar-search",mt=n.default.fn[gt],vt='[data-widget="navbar-search"]',_t=".form-control",bt="navbar-search-open",yt={resetOnClose:!0,target:".navbar-search-block"},Ct=function(){function e(e,t){this._element=e,this._config=n.default.extend({},yt,t)}var t=e.prototype;return t.open=function(){n.default(this._config.target).css("display","flex").hide().fadeIn().addClass(bt),n.default(this._config.target+" "+_t).focus()},t.close=function(){n.default(this._config.target).fadeOut().removeClass(bt),this._config.resetOnClose&&n.default(this._config.target+" "+_t).val("")},t.toggle=function(){n.default(this._config.target).hasClass(bt)?this.close():this.open()},e._jQueryInterface=function(t){return this.each((function(){var a=n.default(this).data(pt),i=n.default.extend({},yt,n.default(this).data());if(a||(a=new e(this,i),n.default(this).data(pt,a)),!/toggle|close|open/.test(t))throw new Error("Undefined method "+t);a[t]()}))},e}();n.default(document).on("click",vt,(function(e){e.preventDefault();var t=n.default(e.currentTarget);"navbar-search"!==t.data("widget")&&(t=t.closest(vt)),Ct._jQueryInterface.call(t,"toggle")})),n.default.fn[gt]=Ct._jQueryInterface,n.default.fn[gt].Constructor=Ct,n.default.fn[gt].noConflict=function(){return n.default.fn[gt]=mt,Ct._jQueryInterface};var wt=n.default.fn.Toasts,xt="topRight",It="topLeft",Tt="bottomRight",St="bottomLeft",jt={position:xt,fixed:!0,autohide:!1,autoremove:!0,delay:1e3,fade:!0,icon:null,image:null,imageAlt:null,imageHeight:"25px",title:null,subtitle:null,close:!0,body:null,class:null},kt=function(){function e(e,t){this._config=t,this._prepareContainer(),n.default("body").trigger(n.default.Event("init.lte.toasts"))}var t=e.prototype;return t.create=function(){var e=n.default('<div class="toast" role="alert" aria-live="assertive" aria-atomic="true"/>');e.data("autohide",this._config.autohide),e.data("animation",this._config.fade),this._config.class&&e.addClass(this._config.class),this._config.delay&&500!=this._config.delay&&e.data("delay",this._config.delay);var t=n.default('<div class="toast-header">');if(null!=this._config.image){var a=n.default("<img />").addClass("rounded mr-2").attr("src",this._config.image).attr("alt",this._config.imageAlt);null!=this._config.imageHeight&&a.height(this._config.imageHeight).width("auto"),t.append(a)}if(null!=this._config.icon&&t.append(n.default("<i />").addClass("mr-2").addClass(this._config.icon)),null!=this._config.title&&t.append(n.default("<strong />").addClass("mr-auto").html(this._config.title)),null!=this._config.subtitle&&t.append(n.default("<small />").html(this._config.subtitle)),1==this._config.close){var i=n.default('<button data-dismiss="toast" />').attr("type","button").addClass("ml-2 mb-1 close").attr("aria-label","Close").append('<span aria-hidden="true">×</span>');null==this._config.title&&i.toggleClass("ml-2 ml-auto"),t.append(i)}e.append(t),null!=this._config.body&&e.append(n.default('<div class="toast-body" />').html(this._config.body)),n.default(this._getContainerId()).prepend(e);var o=n.default("body");o.trigger(n.default.Event("created.lte.toasts")),e.toast("show"),this._config.autoremove&&e.on("hidden.bs.toast",(function(){n.default(this).delay(200).remove(),o.trigger(n.default.Event("removed.lte.toasts"))}))},t._getContainerId=function(){return this._config.position==xt?"#toastsContainerTopRight":this._config.position==It?"#toastsContainerTopLeft":this._config.position==Tt?"#toastsContainerBottomRight":this._config.position==St?"#toastsContainerBottomLeft":void 0},t._prepareContainer=function(){if(0===n.default(this._getContainerId()).length){var e=n.default("<div />").attr("id",this._getContainerId().replace("#",""));this._config.position==xt?e.addClass("toasts-top-right"):this._config.position==It?e.addClass("toasts-top-left"):this._config.position==Tt?e.addClass("toasts-bottom-right"):this._config.position==St&&e.addClass("toasts-bottom-left"),n.default("body").append(e)}this._config.fixed?n.default(this._getContainerId()).addClass("fixed"):n.default(this._getContainerId()).removeClass("fixed")},e._jQueryInterface=function(t,a){return this.each((function(){var i=n.default.extend({},jt,a),o=new e(n.default(this),i);"create"===t&&o[t]()}))},e}();n.default.fn.Toasts=kt._jQueryInterface,n.default.fn.Toasts.Constructor=kt,n.default.fn.Toasts.noConflict=function(){return n.default.fn.Toasts=wt,kt._jQueryInterface};var Qt="TodoList",Ht="lte.todolist",zt=n.default.fn[Qt],Ft="done",Et={onCheck:function(e){return e},onUnCheck:function(e){return e}},Lt=function(){function e(e,t){this._config=t,this._element=e,this._init()}var t=e.prototype;return t.toggle=function(e){e.parents("li").toggleClass(Ft),n.default(e).prop("checked")?this.check(e):this.unCheck(n.default(e))},t.check=function(e){this._config.onCheck.call(e)},t.unCheck=function(e){this._config.onUnCheck.call(e)},t._init=function(){var e=this,t=this._element;t.find("input:checkbox:checked").parents("li").toggleClass(Ft),t.on("change","input:checkbox",(function(t){e.toggle(n.default(t.target))}))},e._jQueryInterface=function(t){return this.each((function(){var a=n.default(this).data(Ht);a||(a=n.default(this).data());var i=n.default.extend({},Et,"object"==typeof t?t:a),o=new e(n.default(this),i);n.default(this).data(Ht,"object"==typeof t?t:a),"init"===t&&o[t]()}))},e}();n.default(window).on("load",(function(){Lt._jQueryInterface.call(n.default('[data-widget="todo-list"]'))})),n.default.fn[Qt]=Lt._jQueryInterface,n.default.fn[Qt].Constructor=Lt,n.default.fn[Qt].noConflict=function(){return n.default.fn[Qt]=zt,Lt._jQueryInterface};var Dt="Treeview",Rt="lte.treeview",At=n.default.fn[Dt],Mt=".nav-item",qt=".nav-treeview",Ot=".menu-open",Nt='[data-widget="treeview"]',Pt="menu-open",Ut="menu-is-opening",Bt={trigger:Nt+" .nav-link",animationSpeed:300,accordion:!0,expandSidebar:!1,sidebarButtonSelector:'[data-widget="pushmenu"]'},$t=function(){function e(e,t){this._config=t,this._element=e}var t=e.prototype;return t.init=function(){n.default(".nav-item.menu-open .nav-treeview.menu-open").css("display","block"),this._setupListeners()},t.expand=function(e,t){var a=this,i=n.default.Event("expanded.lte.treeview");if(this._config.accordion){var o=t.siblings(Ot).first(),l=o.find(qt).first();this.collapse(l,o)}t.addClass(Ut),e.stop().slideDown(this._config.animationSpeed,(function(){t.addClass(Pt),n.default(a._element).trigger(i)})),this._config.expandSidebar&&this._expandSidebar()},t.collapse=function(e,t){var a=this,i=n.default.Event("collapsed.lte.treeview");t.removeClass("menu-is-opening menu-open"),e.stop().slideUp(this._config.animationSpeed,(function(){n.default(a._element).trigger(i),e.find(".menu-open > .nav-treeview").slideUp(),e.find(Ot).removeClass("menu-is-opening menu-open")}))},t.toggle=function(e){var t=n.default(e.currentTarget),a=t.parent(),i=a.find("> .nav-treeview");if(i.is(qt)||(a.is(Mt)||(i=a.parent().find("> .nav-treeview")),i.is(qt))){e.preventDefault();var o=t.parents(Mt).first();o.hasClass(Pt)?this.collapse(n.default(i),o):this.expand(n.default(i),o)}},t._setupListeners=function(){var e=this,t=void 0!==this._element.attr("id")?"#"+this._element.attr("id"):"";n.default(document).on("click",""+t+this._config.trigger,(function(t){e.toggle(t)}))},t._expandSidebar=function(){n.default("body").hasClass("sidebar-collapse")&&n.default(this._config.sidebarButtonSelector).PushMenu("expand")},e._jQueryInterface=function(t){return this.each((function(){var a=n.default(this).data(Rt),i=n.default.extend({},Bt,n.default(this).data());a||(a=new e(n.default(this),i),n.default(this).data(Rt,a)),"init"===t&&a[t]()}))},e}();n.default(window).on("load.lte.treeview",(function(){n.default(Nt).each((function(){$t._jQueryInterface.call(n.default(this),"init")}))})),n.default.fn[Dt]=$t._jQueryInterface,n.default.fn[Dt].Constructor=$t,n.default.fn[Dt].noConflict=function(){return n.default.fn[Dt]=At,$t._jQueryInterface},e.CardRefresh=f,e.CardWidget=I,e.ControlSidebar=M,e.DirectChat=P,e.Dropdown=V,e.ExpandableTable=te,e.Fullscreen=re,e.IFrame=Qe,e.Layout=Me,e.NavbarSearch=Ct,e.PushMenu=Ke,e.SidebarSearch=ht,e.Toasts=kt,e.TodoList=Lt,e.Treeview=$t,Object.defineProperty(e,"__esModule",{value:!0})})); //# sourceMappingURL=adminlte.min.js.map adminlte.min.js.map 0000644 00000410615 15025021321 0010233 0 ustar 00 {"version":3,"sources":["../../build/js/CardRefresh.js","../../build/js/CardWidget.js","../../build/js/ControlSidebar.js","../../build/js/DirectChat.js","../../build/js/Dropdown.js","../../build/js/ExpandableTable.js","../../build/js/Fullscreen.js","../../build/js/IFrame.js","../../build/js/Layout.js","../../build/js/PushMenu.js","../../build/js/SidebarSearch.js","../../build/js/NavbarSearch.js","../../build/js/Toasts.js","../../build/js/TodoList.js","../../build/js/Treeview.js"],"names":["NAME","DATA_KEY","JQUERY_NO_CONFLICT","$","fn","CLASS_NAME_CARD","SELECTOR_DATA_REFRESH","Default","source","sourceSelector","params","trigger","content","loadInContent","loadOnInit","loadErrorTemplate","responseType","overlayTemplate","errorTemplate","onLoadStart","onLoadDone","response","onLoadFail","_jqXHR","_textStatus","_errorThrown","CardRefresh","element","settings","this","_element","_parent","parents","first","_settings","extend","_overlay","hasClass","Error","load","_this","_addOverlay","call","get","find","html","_removeOverlay","fail","jqXHR","textStatus","errorThrown","msg","text","empty","append","Event","remove","_init","_this2","on","_jQueryInterface","config","data","_options","test","document","event","preventDefault","each","Constructor","noConflict","CLASS_NAME_COLLAPSED","CLASS_NAME_COLLAPSING","CLASS_NAME_EXPANDING","CLASS_NAME_WAS_COLLAPSED","CLASS_NAME_MAXIMIZED","SELECTOR_DATA_REMOVE","SELECTOR_DATA_COLLAPSE","SELECTOR_DATA_MAXIMIZE","animationSpeed","collapseTrigger","removeTrigger","maximizeTrigger","collapseIcon","expandIcon","maximizeIcon","minimizeIcon","CardWidget","collapse","addClass","children","SELECTOR_CARD_BODY","slideUp","removeClass","expand","slideDown","toggle","maximize","css","height","width","transition","delay","queue","$element","dequeue","minimize","style","toggleMaximize","card","_this3","click","SELECTOR_CONTROL_SIDEBAR","SELECTOR_CONTROL_SIDEBAR_CONTENT","SELECTOR_DATA_TOGGLE","SELECTOR_HEADER","SELECTOR_FOOTER","CLASS_NAME_CONTROL_SIDEBAR_ANIMATE","CLASS_NAME_CONTROL_SIDEBAR_OPEN","CLASS_NAME_CONTROL_SIDEBAR_SLIDE","CLASS_NAME_LAYOUT_FIXED","controlsidebarSlide","scrollbarTheme","scrollbarAutoHide","target","ControlSidebar","_config","$body","$html","hide","setTimeout","show","_fixHeight","_fixScrollHeight","notVisible","is","shouldClose","shouldToggle","not","window","resize","scroll","_isNavbarFixed","_isFooterFixed","$controlSidebar","heights","header","outerHeight","footer","positions","Math","abs","scrollTop","navbarFixed","footerFixed","$controlsidebarContent","bottom","top","sidebarHeight","overlayScrollbars","className","sizeAutoCapable","scrollbars","autoHide","clickScrolling","attr","operation","ready","DirectChat","toggleClass","SELECTOR_DROPDOWN_MENU","Dropdown","toggleSubmenu","siblings","next","fixPosition","length","left","right","offset","visiblePart","stopPropagation","SELECTOR_NAVBAR","parent","SELECTOR_EXPANDABLE_BODY","SELECTOR_ARIA_ATTR","ExpandableTable","options","init","_","$header","$type","toggleRow","nodeName","stop","SELECTOR_DATA_WIDGET","SELECTOR_ICON","Fullscreen","fullscreenElement","mozFullScreenElement","webkitFullscreenElement","msFullscreenElement","windowed","fullscreen","toggleIcon","documentElement","requestFullscreen","webkitRequestFullscreen","msRequestFullscreen","exitFullscreen","webkitExitFullscreen","msExitFullscreen","plugin","SELECTOR_DATA_TOGGLE_FULLSCREEN","SELECTOR_CONTENT_WRAPPER","SELECTOR_CONTENT_IFRAME","SELECTOR_TAB_NAV","SELECTOR_TAB_NAVBAR_NAV","SELECTOR_TAB_NAVBAR_NAV_ITEM","SELECTOR_TAB_NAVBAR_NAV_LINK","SELECTOR_TAB_CONTENT","SELECTOR_TAB_EMPTY","SELECTOR_TAB_LOADING","SELECTOR_TAB_PANE","SELECTOR_SIDEBAR_MENU_ITEM","SELECTOR_HEADER_MENU_ITEM","SELECTOR_HEADER_DROPDOWN_ITEM","CLASS_NAME_IFRAME_MODE","CLASS_NAME_FULLSCREEN_MODE","onTabClick","item","onTabChanged","onTabCreated","autoIframeMode","autoItemActive","autoShowNewTab","autoDarkMode","allowDuplicates","allowReload","loadingScreen","useNavbarItems","scrollOffset","scrollBehaviorSwap","iconMaximize","iconMinimize","IFrame","createTab","title","link","uniqueName","autoOpen","tabId","navId","floor","random","newNavItem","unescape","escape","newTabItem","$loadingScreen","fadeIn","switchTab","fadeOut","openTabSidebar","$item","clone","undefined","replace","reload","tab","_setItemActive","removeActiveTab","type","$navClose","$navItem","$navItemParent","navItemIndex","index","prevNavItemIndex","eq","toggleFullscreen","usingDefTab","_setupListeners","$el","console","log","_initFrameElement","frameElement","_navScroll","leftPos","scrollLeft","animate","e","offsetParent","attributes","nodeValue","mousedown","mousedownInterval","clearInterval","setInterval","href","$headerMenuItem","$headerDropdownItem","$sidebarMenuItem","i","prevAll","tabEmpty","windowHeight","navbarHeight","contentWrapperHeight","parseFloat","localStorage","setItem","JSON","stringify","parse","getItem","SELECTOR_MAIN_SIDEBAR","SELECTOR_SIDEBAR","CLASS_NAME_SIDEBAR_FOCUSED","panelAutoHeight","panelAutoHeightMode","preloadDuration","loginRegisterAutoHeight","Layout","fixLayoutHeight","extra","controlSidebar","sidebar","max","_max","$contentSelector","fixLoginRegisterHeight","$selector","SELECTOR_LOGIN_BOX","boxHeight","parseInt","$preloader","numbers","Object","keys","forEach","key","EVENT_KEY","SELECTOR_TOGGLE_BUTTON","SELECTOR_BODY","CLASS_NAME_OPEN","CLASS_NAME_IS_OPENING","CLASS_NAME_CLOSED","autoCollapseSize","enableRemember","noTransitionAfterReload","PushMenu","$bodySelector","autoCollapse","remember","overlay","id","button","currentTarget","closest","CLASS_NAME_ICON_SEARCH","CLASS_NAME_ICON_CLOSE","CLASS_NAME_SEARCH_RESULTS","CLASS_NAME_LIST_GROUP","SELECTOR_SEARCH_INPUT","SELECTOR_SEARCH_BUTTON","SELECTOR_SEARCH_ICON","SELECTOR_SEARCH_RESULTS","SELECTOR_SEARCH_RESULTS_GROUP","arrowSign","minLength","maxResults","highlightName","highlightPath","highlightClass","notFoundText","SearchItems","SidebarSearch","items","after","class","_addNotFound","child","_parseItem","search","searchValue","val","toLowerCase","close","searchResults","filter","name","includes","endResults","slice","result","_renderItem","encodeURI","path","open","itemObject","navLink","navTreeview","end","_trimText","push","newPath","concat","trim","_this4","join","decodeURI","regExp","RegExp","str","groupItemElement","decodeURIComponent","searchTitleElement","searchPathElement","keyCode","last","focus","$focused","prev","resetOnClose","NavbarSearch","POSITION_TOP_RIGHT","POSITION_TOP_LEFT","POSITION_BOTTOM_RIGHT","POSITION_BOTTOM_LEFT","position","fixed","autohide","autoremove","fade","icon","image","imageAlt","imageHeight","subtitle","body","Toasts","_prepareContainer","create","toast","toastHeader","toastImage","toastClose","_getContainerId","prepend","container","option","CLASS_NAME_TODO_LIST_DONE","onCheck","onUnCheck","TodoList","prop","check","unCheck","$toggleSelector","SELECTOR_LI","SELECTOR_TREEVIEW_MENU","SELECTOR_OPEN","accordion","expandSidebar","sidebarButtonSelector","Treeview","treeviewMenu","parentLi","expandedEvent","openMenuLi","openTreeview","_expandSidebar","collapsedEvent","$relativeTarget","$parent","elementId"],"mappings":"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","sourcesContent":["/**\n * --------------------------------------------\n * AdminLTE CardRefresh.js\n * License MIT\n * --------------------------------------------\n */\n\nimport $ from 'jquery'\n\n/**\n * Constants\n * ====================================================\n */\n\nconst NAME = 'CardRefresh'\nconst DATA_KEY = 'lte.cardrefresh'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst EVENT_LOADED = `loaded${EVENT_KEY}`\nconst EVENT_OVERLAY_ADDED = `overlay.added${EVENT_KEY}`\nconst EVENT_OVERLAY_REMOVED = `overlay.removed${EVENT_KEY}`\n\nconst CLASS_NAME_CARD = 'card'\n\nconst SELECTOR_CARD = `.${CLASS_NAME_CARD}`\nconst SELECTOR_DATA_REFRESH = '[data-card-widget=\"card-refresh\"]'\n\nconst Default = {\n source: '',\n sourceSelector: '',\n params: {},\n trigger: SELECTOR_DATA_REFRESH,\n content: '.card-body',\n loadInContent: true,\n loadOnInit: true,\n loadErrorTemplate: true,\n responseType: '',\n overlayTemplate: '<div class=\"overlay\"><i class=\"fas fa-2x fa-sync-alt fa-spin\"></i></div>',\n errorTemplate: '<span class=\"text-danger\"></span>',\n onLoadStart() {},\n onLoadDone(response) {\n return response\n },\n onLoadFail(_jqXHR, _textStatus, _errorThrown) {}\n}\n\nclass CardRefresh {\n constructor(element, settings) {\n this._element = element\n this._parent = element.parents(SELECTOR_CARD).first()\n this._settings = $.extend({}, Default, settings)\n this._overlay = $(this._settings.overlayTemplate)\n\n if (element.hasClass(CLASS_NAME_CARD)) {\n this._parent = element\n }\n\n if (this._settings.source === '') {\n throw new Error('Source url was not defined. Please specify a url in your CardRefresh source option.')\n }\n }\n\n load() {\n this._addOverlay()\n this._settings.onLoadStart.call($(this))\n\n $.get(this._settings.source, this._settings.params, response => {\n if (this._settings.loadInContent) {\n if (this._settings.sourceSelector !== '') {\n response = $(response).find(this._settings.sourceSelector).html()\n }\n\n this._parent.find(this._settings.content).html(response)\n }\n\n this._settings.onLoadDone.call($(this), response)\n this._removeOverlay()\n }, this._settings.responseType !== '' && this._settings.responseType)\n .fail((jqXHR, textStatus, errorThrown) => {\n this._removeOverlay()\n\n if (this._settings.loadErrorTemplate) {\n const msg = $(this._settings.errorTemplate).text(errorThrown)\n this._parent.find(this._settings.content).empty().append(msg)\n }\n\n this._settings.onLoadFail.call($(this), jqXHR, textStatus, errorThrown)\n })\n\n $(this._element).trigger($.Event(EVENT_LOADED))\n }\n\n _addOverlay() {\n this._parent.append(this._overlay)\n $(this._element).trigger($.Event(EVENT_OVERLAY_ADDED))\n }\n\n _removeOverlay() {\n this._parent.find(this._overlay).remove()\n $(this._element).trigger($.Event(EVENT_OVERLAY_REMOVED))\n }\n\n // Private\n\n _init() {\n $(this).find(this._settings.trigger).on('click', () => {\n this.load()\n })\n\n if (this._settings.loadOnInit) {\n this.load()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n let data = $(this).data(DATA_KEY)\n const _options = $.extend({}, Default, $(this).data())\n\n if (!data) {\n data = new CardRefresh($(this), _options)\n $(this).data(DATA_KEY, typeof config === 'string' ? data : config)\n }\n\n if (typeof config === 'string' && /load/.test(config)) {\n data[config]()\n } else {\n data._init($(this))\n }\n }\n}\n\n/**\n * Data API\n * ====================================================\n */\n\n$(document).on('click', SELECTOR_DATA_REFRESH, function (event) {\n if (event) {\n event.preventDefault()\n }\n\n CardRefresh._jQueryInterface.call($(this), 'load')\n})\n\n$(() => {\n $(SELECTOR_DATA_REFRESH).each(function () {\n CardRefresh._jQueryInterface.call($(this))\n })\n})\n\n/**\n * jQuery API\n * ====================================================\n */\n\n$.fn[NAME] = CardRefresh._jQueryInterface\n$.fn[NAME].Constructor = CardRefresh\n$.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return CardRefresh._jQueryInterface\n}\n\nexport default CardRefresh\n","/**\n * --------------------------------------------\n * AdminLTE CardWidget.js\n * License MIT\n * --------------------------------------------\n */\n\nimport $ from 'jquery'\n\n/**\n * Constants\n * ====================================================\n */\n\nconst NAME = 'CardWidget'\nconst DATA_KEY = 'lte.cardwidget'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst EVENT_EXPANDED = `expanded${EVENT_KEY}`\nconst EVENT_COLLAPSED = `collapsed${EVENT_KEY}`\nconst EVENT_MAXIMIZED = `maximized${EVENT_KEY}`\nconst EVENT_MINIMIZED = `minimized${EVENT_KEY}`\nconst EVENT_REMOVED = `removed${EVENT_KEY}`\n\nconst CLASS_NAME_CARD = 'card'\nconst CLASS_NAME_COLLAPSED = 'collapsed-card'\nconst CLASS_NAME_COLLAPSING = 'collapsing-card'\nconst CLASS_NAME_EXPANDING = 'expanding-card'\nconst CLASS_NAME_WAS_COLLAPSED = 'was-collapsed'\nconst CLASS_NAME_MAXIMIZED = 'maximized-card'\n\nconst SELECTOR_DATA_REMOVE = '[data-card-widget=\"remove\"]'\nconst SELECTOR_DATA_COLLAPSE = '[data-card-widget=\"collapse\"]'\nconst SELECTOR_DATA_MAXIMIZE = '[data-card-widget=\"maximize\"]'\nconst SELECTOR_CARD = `.${CLASS_NAME_CARD}`\nconst SELECTOR_CARD_HEADER = '.card-header'\nconst SELECTOR_CARD_BODY = '.card-body'\nconst SELECTOR_CARD_FOOTER = '.card-footer'\n\nconst Default = {\n animationSpeed: 'normal',\n collapseTrigger: SELECTOR_DATA_COLLAPSE,\n removeTrigger: SELECTOR_DATA_REMOVE,\n maximizeTrigger: SELECTOR_DATA_MAXIMIZE,\n collapseIcon: 'fa-minus',\n expandIcon: 'fa-plus',\n maximizeIcon: 'fa-expand',\n minimizeIcon: 'fa-compress'\n}\n\nclass CardWidget {\n constructor(element, settings) {\n this._element = element\n this._parent = element.parents(SELECTOR_CARD).first()\n\n if (element.hasClass(CLASS_NAME_CARD)) {\n this._parent = element\n }\n\n this._settings = $.extend({}, Default, settings)\n }\n\n collapse() {\n this._parent.addClass(CLASS_NAME_COLLAPSING).children(`${SELECTOR_CARD_BODY}, ${SELECTOR_CARD_FOOTER}`)\n .slideUp(this._settings.animationSpeed, () => {\n this._parent.addClass(CLASS_NAME_COLLAPSED).removeClass(CLASS_NAME_COLLAPSING)\n })\n\n this._parent.find(`> ${SELECTOR_CARD_HEADER} ${this._settings.collapseTrigger} .${this._settings.collapseIcon}`)\n .addClass(this._settings.expandIcon)\n .removeClass(this._settings.collapseIcon)\n\n this._element.trigger($.Event(EVENT_COLLAPSED), this._parent)\n }\n\n expand() {\n this._parent.addClass(CLASS_NAME_EXPANDING).children(`${SELECTOR_CARD_BODY}, ${SELECTOR_CARD_FOOTER}`)\n .slideDown(this._settings.animationSpeed, () => {\n this._parent.removeClass(CLASS_NAME_COLLAPSED).removeClass(CLASS_NAME_EXPANDING)\n })\n\n this._parent.find(`> ${SELECTOR_CARD_HEADER} ${this._settings.collapseTrigger} .${this._settings.expandIcon}`)\n .addClass(this._settings.collapseIcon)\n .removeClass(this._settings.expandIcon)\n\n this._element.trigger($.Event(EVENT_EXPANDED), this._parent)\n }\n\n remove() {\n this._parent.slideUp()\n this._element.trigger($.Event(EVENT_REMOVED), this._parent)\n }\n\n toggle() {\n if (this._parent.hasClass(CLASS_NAME_COLLAPSED)) {\n this.expand()\n return\n }\n\n this.collapse()\n }\n\n maximize() {\n this._parent.find(`${this._settings.maximizeTrigger} .${this._settings.maximizeIcon}`)\n .addClass(this._settings.minimizeIcon)\n .removeClass(this._settings.maximizeIcon)\n this._parent.css({\n height: this._parent.height(),\n width: this._parent.width(),\n transition: 'all .15s'\n }).delay(150).queue(function () {\n const $element = $(this)\n\n $element.addClass(CLASS_NAME_MAXIMIZED)\n $('html').addClass(CLASS_NAME_MAXIMIZED)\n if ($element.hasClass(CLASS_NAME_COLLAPSED)) {\n $element.addClass(CLASS_NAME_WAS_COLLAPSED)\n }\n\n $element.dequeue()\n })\n\n this._element.trigger($.Event(EVENT_MAXIMIZED), this._parent)\n }\n\n minimize() {\n this._parent.find(`${this._settings.maximizeTrigger} .${this._settings.minimizeIcon}`)\n .addClass(this._settings.maximizeIcon)\n .removeClass(this._settings.minimizeIcon)\n this._parent.css('cssText', `height: ${this._parent[0].style.height} !important; width: ${this._parent[0].style.width} !important; transition: all .15s;`\n ).delay(10).queue(function () {\n const $element = $(this)\n\n $element.removeClass(CLASS_NAME_MAXIMIZED)\n $('html').removeClass(CLASS_NAME_MAXIMIZED)\n $element.css({\n height: 'inherit',\n width: 'inherit'\n })\n if ($element.hasClass(CLASS_NAME_WAS_COLLAPSED)) {\n $element.removeClass(CLASS_NAME_WAS_COLLAPSED)\n }\n\n $element.dequeue()\n })\n\n this._element.trigger($.Event(EVENT_MINIMIZED), this._parent)\n }\n\n toggleMaximize() {\n if (this._parent.hasClass(CLASS_NAME_MAXIMIZED)) {\n this.minimize()\n return\n }\n\n this.maximize()\n }\n\n // Private\n\n _init(card) {\n this._parent = card\n\n $(this).find(this._settings.collapseTrigger).click(() => {\n this.toggle()\n })\n\n $(this).find(this._settings.maximizeTrigger).click(() => {\n this.toggleMaximize()\n })\n\n $(this).find(this._settings.removeTrigger).click(() => {\n this.remove()\n })\n }\n\n // Static\n\n static _jQueryInterface(config) {\n let data = $(this).data(DATA_KEY)\n const _options = $.extend({}, Default, $(this).data())\n\n if (!data) {\n data = new CardWidget($(this), _options)\n $(this).data(DATA_KEY, typeof config === 'string' ? data : config)\n }\n\n if (typeof config === 'string' && /collapse|expand|remove|toggle|maximize|minimize|toggleMaximize/.test(config)) {\n data[config]()\n } else if (typeof config === 'object') {\n data._init($(this))\n }\n }\n}\n\n/**\n * Data API\n * ====================================================\n */\n\n$(document).on('click', SELECTOR_DATA_COLLAPSE, function (event) {\n if (event) {\n event.preventDefault()\n }\n\n CardWidget._jQueryInterface.call($(this), 'toggle')\n})\n\n$(document).on('click', SELECTOR_DATA_REMOVE, function (event) {\n if (event) {\n event.preventDefault()\n }\n\n CardWidget._jQueryInterface.call($(this), 'remove')\n})\n\n$(document).on('click', SELECTOR_DATA_MAXIMIZE, function (event) {\n if (event) {\n event.preventDefault()\n }\n\n CardWidget._jQueryInterface.call($(this), 'toggleMaximize')\n})\n\n/**\n * jQuery API\n * ====================================================\n */\n\n$.fn[NAME] = CardWidget._jQueryInterface\n$.fn[NAME].Constructor = CardWidget\n$.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return CardWidget._jQueryInterface\n}\n\nexport default CardWidget\n","/**\n * --------------------------------------------\n * AdminLTE ControlSidebar.js\n * License MIT\n * --------------------------------------------\n */\n\nimport $ from 'jquery'\n\n/**\n * Constants\n * ====================================================\n */\n\nconst NAME = 'ControlSidebar'\nconst DATA_KEY = 'lte.controlsidebar'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst EVENT_COLLAPSED = `collapsed${EVENT_KEY}`\nconst EVENT_COLLAPSED_DONE = `collapsed-done${EVENT_KEY}`\nconst EVENT_EXPANDED = `expanded${EVENT_KEY}`\n\nconst SELECTOR_CONTROL_SIDEBAR = '.control-sidebar'\nconst SELECTOR_CONTROL_SIDEBAR_CONTENT = '.control-sidebar-content'\nconst SELECTOR_DATA_TOGGLE = '[data-widget=\"control-sidebar\"]'\nconst SELECTOR_HEADER = '.main-header'\nconst SELECTOR_FOOTER = '.main-footer'\n\nconst CLASS_NAME_CONTROL_SIDEBAR_ANIMATE = 'control-sidebar-animate'\nconst CLASS_NAME_CONTROL_SIDEBAR_OPEN = 'control-sidebar-open'\nconst CLASS_NAME_CONTROL_SIDEBAR_SLIDE = 'control-sidebar-slide-open'\nconst CLASS_NAME_LAYOUT_FIXED = 'layout-fixed'\nconst CLASS_NAME_NAVBAR_FIXED = 'layout-navbar-fixed'\nconst CLASS_NAME_NAVBAR_SM_FIXED = 'layout-sm-navbar-fixed'\nconst CLASS_NAME_NAVBAR_MD_FIXED = 'layout-md-navbar-fixed'\nconst CLASS_NAME_NAVBAR_LG_FIXED = 'layout-lg-navbar-fixed'\nconst CLASS_NAME_NAVBAR_XL_FIXED = 'layout-xl-navbar-fixed'\nconst CLASS_NAME_FOOTER_FIXED = 'layout-footer-fixed'\nconst CLASS_NAME_FOOTER_SM_FIXED = 'layout-sm-footer-fixed'\nconst CLASS_NAME_FOOTER_MD_FIXED = 'layout-md-footer-fixed'\nconst CLASS_NAME_FOOTER_LG_FIXED = 'layout-lg-footer-fixed'\nconst CLASS_NAME_FOOTER_XL_FIXED = 'layout-xl-footer-fixed'\n\nconst Default = {\n controlsidebarSlide: true,\n scrollbarTheme: 'os-theme-light',\n scrollbarAutoHide: 'l',\n target: SELECTOR_CONTROL_SIDEBAR,\n animationSpeed: 300\n}\n\n/**\n * Class Definition\n * ====================================================\n */\n\nclass ControlSidebar {\n constructor(element, config) {\n this._element = element\n this._config = config\n }\n\n // Public\n\n collapse() {\n const $body = $('body')\n const $html = $('html')\n\n // Show the control sidebar\n if (this._config.controlsidebarSlide) {\n $html.addClass(CLASS_NAME_CONTROL_SIDEBAR_ANIMATE)\n $body.removeClass(CLASS_NAME_CONTROL_SIDEBAR_SLIDE).delay(300).queue(function () {\n $(SELECTOR_CONTROL_SIDEBAR).hide()\n $html.removeClass(CLASS_NAME_CONTROL_SIDEBAR_ANIMATE)\n $(this).dequeue()\n })\n } else {\n $body.removeClass(CLASS_NAME_CONTROL_SIDEBAR_OPEN)\n }\n\n $(this._element).trigger($.Event(EVENT_COLLAPSED))\n\n setTimeout(() => {\n $(this._element).trigger($.Event(EVENT_COLLAPSED_DONE))\n }, this._config.animationSpeed)\n }\n\n show(toggle = false) {\n const $body = $('body')\n const $html = $('html')\n\n if (toggle) {\n $(SELECTOR_CONTROL_SIDEBAR).hide()\n }\n\n // Collapse the control sidebar\n if (this._config.controlsidebarSlide) {\n $html.addClass(CLASS_NAME_CONTROL_SIDEBAR_ANIMATE)\n $(this._config.target).show().delay(10).queue(function () {\n $body.addClass(CLASS_NAME_CONTROL_SIDEBAR_SLIDE).delay(300).queue(function () {\n $html.removeClass(CLASS_NAME_CONTROL_SIDEBAR_ANIMATE)\n $(this).dequeue()\n })\n $(this).dequeue()\n })\n } else {\n $body.addClass(CLASS_NAME_CONTROL_SIDEBAR_OPEN)\n }\n\n this._fixHeight()\n this._fixScrollHeight()\n\n $(this._element).trigger($.Event(EVENT_EXPANDED))\n }\n\n toggle() {\n const $body = $('body')\n const { target } = this._config\n\n const notVisible = !$(target).is(':visible')\n const shouldClose = ($body.hasClass(CLASS_NAME_CONTROL_SIDEBAR_OPEN) ||\n $body.hasClass(CLASS_NAME_CONTROL_SIDEBAR_SLIDE))\n const shouldToggle = notVisible && ($body.hasClass(CLASS_NAME_CONTROL_SIDEBAR_OPEN) ||\n $body.hasClass(CLASS_NAME_CONTROL_SIDEBAR_SLIDE))\n\n if (notVisible || shouldToggle) {\n // Open the control sidebar\n this.show(notVisible)\n } else if (shouldClose) {\n // Close the control sidebar\n this.collapse()\n }\n }\n\n // Private\n\n _init() {\n const $body = $('body')\n const shouldNotHideAll = $body.hasClass(CLASS_NAME_CONTROL_SIDEBAR_OPEN) ||\n $body.hasClass(CLASS_NAME_CONTROL_SIDEBAR_SLIDE)\n\n if (shouldNotHideAll) {\n $(SELECTOR_CONTROL_SIDEBAR).not(this._config.target).hide()\n $(this._config.target).css('display', 'block')\n } else {\n $(SELECTOR_CONTROL_SIDEBAR).hide()\n }\n\n this._fixHeight()\n this._fixScrollHeight()\n\n $(window).resize(() => {\n this._fixHeight()\n this._fixScrollHeight()\n })\n\n $(window).scroll(() => {\n const $body = $('body')\n const shouldFixHeight = $body.hasClass(CLASS_NAME_CONTROL_SIDEBAR_OPEN) ||\n $body.hasClass(CLASS_NAME_CONTROL_SIDEBAR_SLIDE)\n\n if (shouldFixHeight) {\n this._fixScrollHeight()\n }\n })\n }\n\n _isNavbarFixed() {\n const $body = $('body')\n return (\n $body.hasClass(CLASS_NAME_NAVBAR_FIXED) ||\n $body.hasClass(CLASS_NAME_NAVBAR_SM_FIXED) ||\n $body.hasClass(CLASS_NAME_NAVBAR_MD_FIXED) ||\n $body.hasClass(CLASS_NAME_NAVBAR_LG_FIXED) ||\n $body.hasClass(CLASS_NAME_NAVBAR_XL_FIXED)\n )\n }\n\n _isFooterFixed() {\n const $body = $('body')\n return (\n $body.hasClass(CLASS_NAME_FOOTER_FIXED) ||\n $body.hasClass(CLASS_NAME_FOOTER_SM_FIXED) ||\n $body.hasClass(CLASS_NAME_FOOTER_MD_FIXED) ||\n $body.hasClass(CLASS_NAME_FOOTER_LG_FIXED) ||\n $body.hasClass(CLASS_NAME_FOOTER_XL_FIXED)\n )\n }\n\n _fixScrollHeight() {\n const $body = $('body')\n const $controlSidebar = $(this._config.target)\n\n if (!$body.hasClass(CLASS_NAME_LAYOUT_FIXED)) {\n return\n }\n\n const heights = {\n scroll: $(document).height(),\n window: $(window).height(),\n header: $(SELECTOR_HEADER).outerHeight(),\n footer: $(SELECTOR_FOOTER).outerHeight()\n }\n const positions = {\n bottom: Math.abs((heights.window + $(window).scrollTop()) - heights.scroll),\n top: $(window).scrollTop()\n }\n\n const navbarFixed = this._isNavbarFixed() && $(SELECTOR_HEADER).css('position') === 'fixed'\n\n const footerFixed = this._isFooterFixed() && $(SELECTOR_FOOTER).css('position') === 'fixed'\n\n const $controlsidebarContent = $(`${this._config.target}, ${this._config.target} ${SELECTOR_CONTROL_SIDEBAR_CONTENT}`)\n\n if (positions.top === 0 && positions.bottom === 0) {\n $controlSidebar.css({\n bottom: heights.footer,\n top: heights.header\n })\n $controlsidebarContent.css('height', heights.window - (heights.header + heights.footer))\n } else if (positions.bottom <= heights.footer) {\n if (footerFixed === false) {\n const top = heights.header - positions.top\n $controlSidebar.css('bottom', heights.footer - positions.bottom).css('top', top >= 0 ? top : 0)\n $controlsidebarContent.css('height', heights.window - (heights.footer - positions.bottom))\n } else {\n $controlSidebar.css('bottom', heights.footer)\n }\n } else if (positions.top <= heights.header) {\n if (navbarFixed === false) {\n $controlSidebar.css('top', heights.header - positions.top)\n $controlsidebarContent.css('height', heights.window - (heights.header - positions.top))\n } else {\n $controlSidebar.css('top', heights.header)\n }\n } else if (navbarFixed === false) {\n $controlSidebar.css('top', 0)\n $controlsidebarContent.css('height', heights.window)\n } else {\n $controlSidebar.css('top', heights.header)\n }\n\n if (footerFixed && navbarFixed) {\n $controlsidebarContent.css('height', '100%')\n $controlSidebar.css('height', '')\n } else if (footerFixed || navbarFixed) {\n $controlsidebarContent.css('height', '100%')\n $controlsidebarContent.css('height', '')\n }\n }\n\n _fixHeight() {\n const $body = $('body')\n const $controlSidebar = $(`${this._config.target} ${SELECTOR_CONTROL_SIDEBAR_CONTENT}`)\n\n if (!$body.hasClass(CLASS_NAME_LAYOUT_FIXED)) {\n $controlSidebar.attr('style', '')\n return\n }\n\n const heights = {\n window: $(window).height(),\n header: $(SELECTOR_HEADER).outerHeight(),\n footer: $(SELECTOR_FOOTER).outerHeight()\n }\n\n let sidebarHeight = heights.window - heights.header\n\n if (this._isFooterFixed() && $(SELECTOR_FOOTER).css('position') === 'fixed') {\n sidebarHeight = heights.window - heights.header - heights.footer\n }\n\n $controlSidebar.css('height', sidebarHeight)\n\n if (typeof $.fn.overlayScrollbars !== 'undefined') {\n $controlSidebar.overlayScrollbars({\n className: this._config.scrollbarTheme,\n sizeAutoCapable: true,\n scrollbars: {\n autoHide: this._config.scrollbarAutoHide,\n clickScrolling: true\n }\n })\n }\n }\n\n // Static\n\n static _jQueryInterface(operation) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _options = $.extend({}, Default, $(this).data())\n\n if (!data) {\n data = new ControlSidebar(this, _options)\n $(this).data(DATA_KEY, data)\n }\n\n if (data[operation] === 'undefined') {\n throw new Error(`${operation} is not a function`)\n }\n\n data[operation]()\n })\n }\n}\n\n/**\n *\n * Data Api implementation\n * ====================================================\n */\n$(document).on('click', SELECTOR_DATA_TOGGLE, function (event) {\n event.preventDefault()\n\n ControlSidebar._jQueryInterface.call($(this), 'toggle')\n})\n\n$(document).ready(() => {\n ControlSidebar._jQueryInterface.call($(SELECTOR_DATA_TOGGLE), '_init')\n})\n\n/**\n * jQuery API\n * ====================================================\n */\n\n$.fn[NAME] = ControlSidebar._jQueryInterface\n$.fn[NAME].Constructor = ControlSidebar\n$.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return ControlSidebar._jQueryInterface\n}\n\nexport default ControlSidebar\n","/**\n * --------------------------------------------\n * AdminLTE DirectChat.js\n * License MIT\n * --------------------------------------------\n */\n\nimport $ from 'jquery'\n\n/**\n * Constants\n * ====================================================\n */\n\nconst NAME = 'DirectChat'\nconst DATA_KEY = 'lte.directchat'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst EVENT_TOGGLED = `toggled${EVENT_KEY}`\n\nconst SELECTOR_DATA_TOGGLE = '[data-widget=\"chat-pane-toggle\"]'\nconst SELECTOR_DIRECT_CHAT = '.direct-chat'\n\nconst CLASS_NAME_DIRECT_CHAT_OPEN = 'direct-chat-contacts-open'\n\n/**\n * Class Definition\n * ====================================================\n */\n\nclass DirectChat {\n constructor(element) {\n this._element = element\n }\n\n toggle() {\n $(this._element).parents(SELECTOR_DIRECT_CHAT).first().toggleClass(CLASS_NAME_DIRECT_CHAT_OPEN)\n $(this._element).trigger($.Event(EVENT_TOGGLED))\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n\n if (!data) {\n data = new DirectChat($(this))\n $(this).data(DATA_KEY, data)\n }\n\n data[config]()\n })\n }\n}\n\n/**\n *\n * Data Api implementation\n * ====================================================\n */\n\n$(document).on('click', SELECTOR_DATA_TOGGLE, function (event) {\n if (event) {\n event.preventDefault()\n }\n\n DirectChat._jQueryInterface.call($(this), 'toggle')\n})\n\n/**\n * jQuery API\n * ====================================================\n */\n\n$.fn[NAME] = DirectChat._jQueryInterface\n$.fn[NAME].Constructor = DirectChat\n$.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return DirectChat._jQueryInterface\n}\n\nexport default DirectChat\n","/**\n * --------------------------------------------\n * AdminLTE Dropdown.js\n * License MIT\n * --------------------------------------------\n */\n\nimport $ from 'jquery'\n\n/**\n * Constants\n * ====================================================\n */\n\nconst NAME = 'Dropdown'\nconst DATA_KEY = 'lte.dropdown'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst SELECTOR_NAVBAR = '.navbar'\nconst SELECTOR_DROPDOWN_MENU = '.dropdown-menu'\nconst SELECTOR_DROPDOWN_MENU_ACTIVE = '.dropdown-menu.show'\nconst SELECTOR_DROPDOWN_TOGGLE = '[data-toggle=\"dropdown\"]'\n\nconst CLASS_NAME_DROPDOWN_RIGHT = 'dropdown-menu-right'\nconst CLASS_NAME_DROPDOWN_SUBMENU = 'dropdown-submenu'\n\n// TODO: this is unused; should be removed along with the extend?\nconst Default = {}\n\n/**\n * Class Definition\n * ====================================================\n */\n\nclass Dropdown {\n constructor(element, config) {\n this._config = config\n this._element = element\n }\n\n // Public\n\n toggleSubmenu() {\n this._element.siblings().show().toggleClass('show')\n\n if (!this._element.next().hasClass('show')) {\n this._element.parents(SELECTOR_DROPDOWN_MENU).first().find('.show').removeClass('show').hide()\n }\n\n this._element.parents('li.nav-item.dropdown.show').on('hidden.bs.dropdown', () => {\n $('.dropdown-submenu .show').removeClass('show').hide()\n })\n }\n\n fixPosition() {\n const $element = $(SELECTOR_DROPDOWN_MENU_ACTIVE)\n\n if ($element.length === 0) {\n return\n }\n\n if ($element.hasClass(CLASS_NAME_DROPDOWN_RIGHT)) {\n $element.css({\n left: 'inherit',\n right: 0\n })\n } else {\n $element.css({\n left: 0,\n right: 'inherit'\n })\n }\n\n const offset = $element.offset()\n const width = $element.width()\n const visiblePart = $(window).width() - offset.left\n\n if (offset.left < 0) {\n $element.css({\n left: 'inherit',\n right: offset.left - 5\n })\n } else if (visiblePart < width) {\n $element.css({\n left: 'inherit',\n right: 0\n })\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = $.extend({}, Default, $(this).data())\n\n if (!data) {\n data = new Dropdown($(this), _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (config === 'toggleSubmenu' || config === 'fixPosition') {\n data[config]()\n }\n })\n }\n}\n\n/**\n * Data API\n * ====================================================\n */\n\n$(`${SELECTOR_DROPDOWN_MENU} ${SELECTOR_DROPDOWN_TOGGLE}`).on('click', function (event) {\n event.preventDefault()\n event.stopPropagation()\n\n Dropdown._jQueryInterface.call($(this), 'toggleSubmenu')\n})\n\n$(`${SELECTOR_NAVBAR} ${SELECTOR_DROPDOWN_TOGGLE}`).on('click', event => {\n event.preventDefault()\n\n if ($(event.target).parent().hasClass(CLASS_NAME_DROPDOWN_SUBMENU)) {\n return\n }\n\n setTimeout(function () {\n Dropdown._jQueryInterface.call($(this), 'fixPosition')\n }, 1)\n})\n\n/**\n * jQuery API\n * ====================================================\n */\n\n$.fn[NAME] = Dropdown._jQueryInterface\n$.fn[NAME].Constructor = Dropdown\n$.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Dropdown._jQueryInterface\n}\n\nexport default Dropdown\n","/**\n * --------------------------------------------\n * AdminLTE ExpandableTable.js\n * License MIT\n * --------------------------------------------\n */\n\nimport $ from 'jquery'\n\n/**\n * Constants\n * ====================================================\n */\n\nconst NAME = 'ExpandableTable'\nconst DATA_KEY = 'lte.expandableTable'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst EVENT_EXPANDED = `expanded${EVENT_KEY}`\nconst EVENT_COLLAPSED = `collapsed${EVENT_KEY}`\n\nconst SELECTOR_TABLE = '.expandable-table'\nconst SELECTOR_EXPANDABLE_BODY = '.expandable-body'\nconst SELECTOR_DATA_TOGGLE = '[data-widget=\"expandable-table\"]'\nconst SELECTOR_ARIA_ATTR = 'aria-expanded'\n\n/**\n * Class Definition\n * ====================================================\n */\nclass ExpandableTable {\n constructor(element, options) {\n this._options = options\n this._element = element\n }\n\n // Public\n\n init() {\n $(SELECTOR_DATA_TOGGLE).each((_, $header) => {\n const $type = $($header).attr(SELECTOR_ARIA_ATTR)\n const $body = $($header).next(SELECTOR_EXPANDABLE_BODY).children().first().children()\n if ($type === 'true') {\n $body.show()\n } else if ($type === 'false') {\n $body.hide()\n $body.parent().parent().addClass('d-none')\n }\n })\n }\n\n toggleRow() {\n let $element = this._element\n\n if ($element[0].nodeName !== 'TR') {\n $element = $element.parent()\n if ($element[0].nodeName !== 'TR') {\n $element = $element.parent()\n }\n }\n\n const time = 500\n const $type = $element.attr(SELECTOR_ARIA_ATTR)\n const $body = $element.next(SELECTOR_EXPANDABLE_BODY).children().first().children()\n\n $body.stop()\n if ($type === 'true') {\n $body.slideUp(time, () => {\n $element.next(SELECTOR_EXPANDABLE_BODY).addClass('d-none')\n })\n $element.attr(SELECTOR_ARIA_ATTR, 'false')\n $element.trigger($.Event(EVENT_COLLAPSED))\n } else if ($type === 'false') {\n $element.next(SELECTOR_EXPANDABLE_BODY).removeClass('d-none')\n $body.slideDown(time)\n $element.attr(SELECTOR_ARIA_ATTR, 'true')\n $element.trigger($.Event(EVENT_EXPANDED))\n }\n }\n\n // Static\n\n static _jQueryInterface(operation) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n\n if (!data) {\n data = new ExpandableTable($(this))\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof operation === 'string' && /init|toggleRow/.test(operation)) {\n data[operation]()\n }\n })\n }\n}\n\n/**\n * Data API\n * ====================================================\n */\n$(SELECTOR_TABLE).ready(function () {\n ExpandableTable._jQueryInterface.call($(this), 'init')\n})\n\n$(document).on('click', SELECTOR_DATA_TOGGLE, function () {\n ExpandableTable._jQueryInterface.call($(this), 'toggleRow')\n})\n\n/**\n * jQuery API\n * ====================================================\n */\n\n$.fn[NAME] = ExpandableTable._jQueryInterface\n$.fn[NAME].Constructor = ExpandableTable\n$.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return ExpandableTable._jQueryInterface\n}\n\nexport default ExpandableTable\n","/**\n * --------------------------------------------\n * AdminLTE Fullscreen.js\n * License MIT\n * --------------------------------------------\n */\n\nimport $ from 'jquery'\n\n/**\n * Constants\n * ====================================================\n */\n\nconst NAME = 'Fullscreen'\nconst DATA_KEY = 'lte.fullscreen'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst SELECTOR_DATA_WIDGET = '[data-widget=\"fullscreen\"]'\nconst SELECTOR_ICON = `${SELECTOR_DATA_WIDGET} i`\n\nconst EVENT_FULLSCREEN_CHANGE = 'webkitfullscreenchange mozfullscreenchange fullscreenchange MSFullscreenChange'\n\nconst Default = {\n minimizeIcon: 'fa-compress-arrows-alt',\n maximizeIcon: 'fa-expand-arrows-alt'\n}\n\n/**\n * Class Definition\n * ====================================================\n */\n\nclass Fullscreen {\n constructor(_element, _options) {\n this.element = _element\n this.options = $.extend({}, Default, _options)\n }\n\n // Public\n\n toggle() {\n if (document.fullscreenElement ||\n document.mozFullScreenElement ||\n document.webkitFullscreenElement ||\n document.msFullscreenElement) {\n this.windowed()\n } else {\n this.fullscreen()\n }\n }\n\n toggleIcon() {\n if (document.fullscreenElement ||\n document.mozFullScreenElement ||\n document.webkitFullscreenElement ||\n document.msFullscreenElement) {\n $(SELECTOR_ICON).removeClass(this.options.maximizeIcon).addClass(this.options.minimizeIcon)\n } else {\n $(SELECTOR_ICON).removeClass(this.options.minimizeIcon).addClass(this.options.maximizeIcon)\n }\n }\n\n fullscreen() {\n if (document.documentElement.requestFullscreen) {\n document.documentElement.requestFullscreen()\n } else if (document.documentElement.webkitRequestFullscreen) {\n document.documentElement.webkitRequestFullscreen()\n } else if (document.documentElement.msRequestFullscreen) {\n document.documentElement.msRequestFullscreen()\n }\n }\n\n windowed() {\n if (document.exitFullscreen) {\n document.exitFullscreen()\n } else if (document.webkitExitFullscreen) {\n document.webkitExitFullscreen()\n } else if (document.msExitFullscreen) {\n document.msExitFullscreen()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n let data = $(this).data(DATA_KEY)\n\n if (!data) {\n data = $(this).data()\n }\n\n const _options = $.extend({}, Default, typeof config === 'object' ? config : data)\n const plugin = new Fullscreen($(this), _options)\n\n $(this).data(DATA_KEY, typeof config === 'object' ? config : data)\n\n if (typeof config === 'string' && /toggle|toggleIcon|fullscreen|windowed/.test(config)) {\n plugin[config]()\n } else {\n plugin.init()\n }\n }\n}\n\n/**\n * Data API\n * ====================================================\n */\n$(document).on('click', SELECTOR_DATA_WIDGET, function () {\n Fullscreen._jQueryInterface.call($(this), 'toggle')\n})\n\n$(document).on(EVENT_FULLSCREEN_CHANGE, () => {\n Fullscreen._jQueryInterface.call($(SELECTOR_DATA_WIDGET), 'toggleIcon')\n})\n\n/**\n * jQuery API\n * ====================================================\n */\n\n$.fn[NAME] = Fullscreen._jQueryInterface\n$.fn[NAME].Constructor = Fullscreen\n$.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Fullscreen._jQueryInterface\n}\n\nexport default Fullscreen\n","/**\n * --------------------------------------------\n * AdminLTE IFrame.js\n * License MIT\n * --------------------------------------------\n */\n\nimport $ from 'jquery'\n\n/**\n * Constants\n * ====================================================\n */\n\nconst NAME = 'IFrame'\nconst DATA_KEY = 'lte.iframe'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst SELECTOR_DATA_TOGGLE = '[data-widget=\"iframe\"]'\nconst SELECTOR_DATA_TOGGLE_CLOSE = '[data-widget=\"iframe-close\"]'\nconst SELECTOR_DATA_TOGGLE_SCROLL_LEFT = '[data-widget=\"iframe-scrollleft\"]'\nconst SELECTOR_DATA_TOGGLE_SCROLL_RIGHT = '[data-widget=\"iframe-scrollright\"]'\nconst SELECTOR_DATA_TOGGLE_FULLSCREEN = '[data-widget=\"iframe-fullscreen\"]'\nconst SELECTOR_CONTENT_WRAPPER = '.content-wrapper'\nconst SELECTOR_CONTENT_IFRAME = `${SELECTOR_CONTENT_WRAPPER} iframe`\nconst SELECTOR_TAB_NAV = `${SELECTOR_CONTENT_WRAPPER}.iframe-mode .nav`\nconst SELECTOR_TAB_NAVBAR_NAV = `${SELECTOR_CONTENT_WRAPPER}.iframe-mode .navbar-nav`\nconst SELECTOR_TAB_NAVBAR_NAV_ITEM = `${SELECTOR_TAB_NAVBAR_NAV} .nav-item`\nconst SELECTOR_TAB_NAVBAR_NAV_LINK = `${SELECTOR_TAB_NAVBAR_NAV} .nav-link`\nconst SELECTOR_TAB_CONTENT = `${SELECTOR_CONTENT_WRAPPER}.iframe-mode .tab-content`\nconst SELECTOR_TAB_EMPTY = `${SELECTOR_TAB_CONTENT} .tab-empty`\nconst SELECTOR_TAB_LOADING = `${SELECTOR_TAB_CONTENT} .tab-loading`\nconst SELECTOR_TAB_PANE = `${SELECTOR_TAB_CONTENT} .tab-pane`\nconst SELECTOR_SIDEBAR_MENU_ITEM = '.main-sidebar .nav-item > a.nav-link'\nconst SELECTOR_SIDEBAR_SEARCH_ITEM = '.sidebar-search-results .list-group-item'\nconst SELECTOR_HEADER_MENU_ITEM = '.main-header .nav-item a.nav-link'\nconst SELECTOR_HEADER_DROPDOWN_ITEM = '.main-header a.dropdown-item'\nconst CLASS_NAME_IFRAME_MODE = 'iframe-mode'\nconst CLASS_NAME_FULLSCREEN_MODE = 'iframe-mode-fullscreen'\n\nconst Default = {\n onTabClick(item) {\n return item\n },\n onTabChanged(item) {\n return item\n },\n onTabCreated(item) {\n return item\n },\n autoIframeMode: true,\n autoItemActive: true,\n autoShowNewTab: true,\n autoDarkMode: false,\n allowDuplicates: false,\n allowReload: true,\n loadingScreen: true,\n useNavbarItems: true,\n scrollOffset: 40,\n scrollBehaviorSwap: false,\n iconMaximize: 'fa-expand',\n iconMinimize: 'fa-compress'\n}\n\n/**\n * Class Definition\n * ====================================================\n */\n\nclass IFrame {\n constructor(element, config) {\n this._config = config\n this._element = element\n this._init()\n }\n\n // Public\n\n onTabClick(item) {\n this._config.onTabClick(item)\n }\n\n onTabChanged(item) {\n this._config.onTabChanged(item)\n }\n\n onTabCreated(item) {\n this._config.onTabCreated(item)\n }\n\n createTab(title, link, uniqueName, autoOpen) {\n let tabId = `panel-${uniqueName}`\n let navId = `tab-${uniqueName}`\n\n if (this._config.allowDuplicates) {\n tabId += `-${Math.floor(Math.random() * 1000)}`\n navId += `-${Math.floor(Math.random() * 1000)}`\n }\n\n const newNavItem = `<li class=\"nav-item\" role=\"presentation\"><a href=\"#\" class=\"btn-iframe-close\" data-widget=\"iframe-close\" data-type=\"only-this\"><i class=\"fas fa-times\"></i></a><a class=\"nav-link\" data-toggle=\"row\" id=\"${navId}\" href=\"#${tabId}\" role=\"tab\" aria-controls=\"${tabId}\" aria-selected=\"false\">${title}</a></li>`\n $(SELECTOR_TAB_NAVBAR_NAV).append(unescape(escape(newNavItem)))\n\n const newTabItem = `<div class=\"tab-pane fade\" id=\"${tabId}\" role=\"tabpanel\" aria-labelledby=\"${navId}\"><iframe src=\"${link}\"></iframe></div>`\n $(SELECTOR_TAB_CONTENT).append(unescape(escape(newTabItem)))\n\n if (autoOpen) {\n if (this._config.loadingScreen) {\n const $loadingScreen = $(SELECTOR_TAB_LOADING)\n $loadingScreen.fadeIn()\n $(`${tabId} iframe`).ready(() => {\n if (typeof this._config.loadingScreen === 'number') {\n this.switchTab(`#${navId}`)\n setTimeout(() => {\n $loadingScreen.fadeOut()\n }, this._config.loadingScreen)\n } else {\n this.switchTab(`#${navId}`)\n $loadingScreen.fadeOut()\n }\n })\n } else {\n this.switchTab(`#${navId}`)\n }\n }\n\n this.onTabCreated($(`#${navId}`))\n }\n\n openTabSidebar(item, autoOpen = this._config.autoShowNewTab) {\n let $item = $(item).clone()\n if ($item.attr('href') === undefined) {\n $item = $(item).parent('a').clone()\n }\n\n $item.find('.right, .search-path').remove()\n let title = $item.find('p').text()\n if (title === '') {\n title = $item.text()\n }\n\n const link = $item.attr('href')\n if (link === '#' || link === '' || link === undefined) {\n return\n }\n\n const uniqueName = unescape(link).replace('./', '').replace(/[\"#&'./:=?[\\]]/gi, '-').replace(/(--)/gi, '')\n const navId = `tab-${uniqueName}`\n\n if (!this._config.allowDuplicates && $(`#${navId}`).length > 0) {\n return this.switchTab(`#${navId}`, this._config.allowReload)\n }\n\n if ((!this._config.allowDuplicates && $(`#${navId}`).length === 0) || this._config.allowDuplicates) {\n this.createTab(title, link, uniqueName, autoOpen)\n }\n }\n\n switchTab(item, reload = false) {\n const $item = $(item)\n const tabId = $item.attr('href')\n\n $(SELECTOR_TAB_EMPTY).hide()\n\n if (reload) {\n const $loadingScreen = $(SELECTOR_TAB_LOADING)\n if (this._config.loadingScreen) {\n $loadingScreen.show(0, () => {\n $(`${tabId} iframe`).attr('src', $(`${tabId} iframe`).attr('src')).ready(() => {\n if (this._config.loadingScreen) {\n if (typeof this._config.loadingScreen === 'number') {\n setTimeout(() => {\n $loadingScreen.fadeOut()\n }, this._config.loadingScreen)\n } else {\n $loadingScreen.fadeOut()\n }\n }\n })\n })\n } else {\n $(`${tabId} iframe`).attr('src', $(`${tabId} iframe`).attr('src'))\n }\n }\n\n $(`${SELECTOR_TAB_NAVBAR_NAV} .active`).tab('dispose').removeClass('active')\n\n this._fixHeight()\n\n $item.tab('show')\n $item.parents('li').addClass('active')\n this.onTabChanged($item)\n\n if (this._config.autoItemActive) {\n this._setItemActive($(`${tabId} iframe`).attr('src'))\n }\n }\n\n removeActiveTab(type, element) {\n if (type == 'all') {\n $(SELECTOR_TAB_NAVBAR_NAV_ITEM).remove()\n $(SELECTOR_TAB_PANE).remove()\n $(SELECTOR_TAB_EMPTY).show()\n } else if (type == 'all-other') {\n $(`${SELECTOR_TAB_NAVBAR_NAV_ITEM}:not(.active)`).remove()\n $(`${SELECTOR_TAB_PANE}:not(.active)`).remove()\n } else if (type == 'only-this') {\n const $navClose = $(element)\n const $navItem = $navClose.parent('.nav-item')\n const $navItemParent = $navItem.parent()\n const navItemIndex = $navItem.index()\n const tabId = $navClose.siblings('.nav-link').attr('aria-controls')\n $navItem.remove()\n $(`#${tabId}`).remove()\n if ($(SELECTOR_TAB_CONTENT).children().length == $(`${SELECTOR_TAB_EMPTY}, ${SELECTOR_TAB_LOADING}`).length) {\n $(SELECTOR_TAB_EMPTY).show()\n } else {\n const prevNavItemIndex = navItemIndex - 1\n this.switchTab($navItemParent.children().eq(prevNavItemIndex).find('a.nav-link'))\n }\n } else {\n const $navItem = $(`${SELECTOR_TAB_NAVBAR_NAV_ITEM}.active`)\n const $navItemParent = $navItem.parent()\n const navItemIndex = $navItem.index()\n $navItem.remove()\n $(`${SELECTOR_TAB_PANE}.active`).remove()\n if ($(SELECTOR_TAB_CONTENT).children().length == $(`${SELECTOR_TAB_EMPTY}, ${SELECTOR_TAB_LOADING}`).length) {\n $(SELECTOR_TAB_EMPTY).show()\n } else {\n const prevNavItemIndex = navItemIndex - 1\n this.switchTab($navItemParent.children().eq(prevNavItemIndex).find('a.nav-link'))\n }\n }\n }\n\n toggleFullscreen() {\n if ($('body').hasClass(CLASS_NAME_FULLSCREEN_MODE)) {\n $(`${SELECTOR_DATA_TOGGLE_FULLSCREEN} i`).removeClass(this._config.iconMinimize).addClass(this._config.iconMaximize)\n $('body').removeClass(CLASS_NAME_FULLSCREEN_MODE)\n $(`${SELECTOR_TAB_EMPTY}, ${SELECTOR_TAB_LOADING}`).height('100%')\n $(SELECTOR_CONTENT_WRAPPER).height('100%')\n $(SELECTOR_CONTENT_IFRAME).height('100%')\n } else {\n $(`${SELECTOR_DATA_TOGGLE_FULLSCREEN} i`).removeClass(this._config.iconMaximize).addClass(this._config.iconMinimize)\n $('body').addClass(CLASS_NAME_FULLSCREEN_MODE)\n }\n\n $(window).trigger('resize')\n this._fixHeight(true)\n }\n\n // Private\n\n _init() {\n const usingDefTab = ($(SELECTOR_TAB_CONTENT).children().length > 2)\n\n this._setupListeners()\n this._fixHeight(true)\n\n if (usingDefTab) {\n const $el = $(`${SELECTOR_TAB_PANE}`).first()\n // eslint-disable-next-line no-console\n console.log($el)\n const uniqueName = $el.attr('id').replace('panel-', '')\n const navId = `#tab-${uniqueName}`\n\n this.switchTab(navId, true)\n }\n }\n\n _initFrameElement() {\n if (window.frameElement && this._config.autoIframeMode) {\n const $body = $('body')\n $body.addClass(CLASS_NAME_IFRAME_MODE)\n\n if (this._config.autoDarkMode) {\n $body.addClass('dark-mode')\n }\n }\n }\n\n _navScroll(offset) {\n const leftPos = $(SELECTOR_TAB_NAVBAR_NAV).scrollLeft()\n $(SELECTOR_TAB_NAVBAR_NAV).animate({ scrollLeft: (leftPos + offset) }, 250, 'linear')\n }\n\n _setupListeners() {\n $(window).on('resize', () => {\n setTimeout(() => {\n this._fixHeight()\n }, 1)\n })\n if ($(SELECTOR_CONTENT_WRAPPER).hasClass(CLASS_NAME_IFRAME_MODE)) {\n $(document).on('click', `${SELECTOR_SIDEBAR_MENU_ITEM}, ${SELECTOR_SIDEBAR_SEARCH_ITEM}`, e => {\n e.preventDefault()\n this.openTabSidebar(e.target)\n })\n if (this._config.useNavbarItems) {\n $(document).on('click', `${SELECTOR_HEADER_MENU_ITEM}, ${SELECTOR_HEADER_DROPDOWN_ITEM}`, e => {\n e.preventDefault()\n this.openTabSidebar(e.target)\n })\n }\n }\n\n $(document).on('click', SELECTOR_TAB_NAVBAR_NAV_LINK, e => {\n e.preventDefault()\n this.onTabClick(e.target)\n this.switchTab(e.target)\n })\n $(document).on('click', SELECTOR_TAB_NAVBAR_NAV_LINK, e => {\n e.preventDefault()\n this.onTabClick(e.target)\n this.switchTab(e.target)\n })\n $(document).on('click', SELECTOR_DATA_TOGGLE_CLOSE, e => {\n e.preventDefault()\n let { target } = e\n\n if (target.nodeName == 'I') {\n target = e.target.offsetParent\n }\n\n this.removeActiveTab(target.attributes['data-type'] ? target.attributes['data-type'].nodeValue : null, target)\n })\n $(document).on('click', SELECTOR_DATA_TOGGLE_FULLSCREEN, e => {\n e.preventDefault()\n this.toggleFullscreen()\n })\n let mousedown = false\n let mousedownInterval = null\n $(document).on('mousedown', SELECTOR_DATA_TOGGLE_SCROLL_LEFT, e => {\n e.preventDefault()\n clearInterval(mousedownInterval)\n\n let { scrollOffset } = this._config\n\n if (!this._config.scrollBehaviorSwap) {\n scrollOffset = -scrollOffset\n }\n\n mousedown = true\n this._navScroll(scrollOffset)\n\n mousedownInterval = setInterval(() => {\n this._navScroll(scrollOffset)\n }, 250)\n })\n $(document).on('mousedown', SELECTOR_DATA_TOGGLE_SCROLL_RIGHT, e => {\n e.preventDefault()\n clearInterval(mousedownInterval)\n\n let { scrollOffset } = this._config\n\n if (this._config.scrollBehaviorSwap) {\n scrollOffset = -scrollOffset\n }\n\n mousedown = true\n this._navScroll(scrollOffset)\n\n mousedownInterval = setInterval(() => {\n this._navScroll(scrollOffset)\n }, 250)\n })\n $(document).on('mouseup', () => {\n if (mousedown) {\n mousedown = false\n clearInterval(mousedownInterval)\n mousedownInterval = null\n }\n })\n }\n\n _setItemActive(href) {\n $(`${SELECTOR_SIDEBAR_MENU_ITEM}, ${SELECTOR_HEADER_DROPDOWN_ITEM}`).removeClass('active')\n $(SELECTOR_HEADER_MENU_ITEM).parent().removeClass('active')\n\n const $headerMenuItem = $(`${SELECTOR_HEADER_MENU_ITEM}[href$=\"${href}\"]`)\n const $headerDropdownItem = $(`${SELECTOR_HEADER_DROPDOWN_ITEM}[href$=\"${href}\"]`)\n const $sidebarMenuItem = $(`${SELECTOR_SIDEBAR_MENU_ITEM}[href$=\"${href}\"]`)\n\n $headerMenuItem.each((i, e) => {\n $(e).parent().addClass('active')\n })\n $headerDropdownItem.each((i, e) => {\n $(e).addClass('active')\n })\n $sidebarMenuItem.each((i, e) => {\n $(e).addClass('active')\n $(e).parents('.nav-treeview').prevAll('.nav-link').addClass('active')\n })\n }\n\n _fixHeight(tabEmpty = false) {\n if ($('body').hasClass(CLASS_NAME_FULLSCREEN_MODE)) {\n const windowHeight = $(window).height()\n const navbarHeight = $(SELECTOR_TAB_NAV).outerHeight()\n $(`${SELECTOR_TAB_EMPTY}, ${SELECTOR_TAB_LOADING}, ${SELECTOR_CONTENT_IFRAME}`).height(windowHeight - navbarHeight)\n $(SELECTOR_CONTENT_WRAPPER).height(windowHeight)\n } else {\n const contentWrapperHeight = parseFloat($(SELECTOR_CONTENT_WRAPPER).css('height'))\n const navbarHeight = $(SELECTOR_TAB_NAV).outerHeight()\n if (tabEmpty == true) {\n setTimeout(() => {\n $(`${SELECTOR_TAB_EMPTY}, ${SELECTOR_TAB_LOADING}`).height(contentWrapperHeight - navbarHeight)\n }, 50)\n } else {\n $(SELECTOR_CONTENT_IFRAME).height(contentWrapperHeight - navbarHeight)\n }\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n if ($(SELECTOR_DATA_TOGGLE).length > 0) {\n let data = $(this).data(DATA_KEY)\n\n if (!data) {\n data = $(this).data()\n }\n\n const _options = $.extend({}, Default, typeof config === 'object' ? config : data)\n localStorage.setItem('AdminLTE:IFrame:Options', JSON.stringify(_options))\n\n const plugin = new IFrame($(this), _options)\n\n $(this).data(DATA_KEY, typeof config === 'object' ? config : data)\n\n if (typeof config === 'string' && /createTab|openTabSidebar|switchTab|removeActiveTab/.test(config)) {\n plugin[config]()\n }\n } else {\n new IFrame($(this), JSON.parse(localStorage.getItem('AdminLTE:IFrame:Options')))._initFrameElement()\n }\n }\n}\n\n/**\n * Data API\n * ====================================================\n */\n\n$(window).on('load', () => {\n IFrame._jQueryInterface.call($(SELECTOR_DATA_TOGGLE))\n})\n\n/**\n * jQuery API\n * ====================================================\n */\n\n$.fn[NAME] = IFrame._jQueryInterface\n$.fn[NAME].Constructor = IFrame\n$.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return IFrame._jQueryInterface\n}\n\nexport default IFrame\n","/**\n * --------------------------------------------\n * AdminLTE Layout.js\n * License MIT\n * --------------------------------------------\n */\n\nimport $ from 'jquery'\n\n/**\n * Constants\n * ====================================================\n */\n\nconst NAME = 'Layout'\nconst DATA_KEY = 'lte.layout'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst SELECTOR_HEADER = '.main-header'\nconst SELECTOR_MAIN_SIDEBAR = '.main-sidebar'\nconst SELECTOR_SIDEBAR = '.main-sidebar .sidebar'\nconst SELECTOR_CONTENT = '.content-wrapper'\nconst SELECTOR_CONTROL_SIDEBAR_CONTENT = '.control-sidebar-content'\nconst SELECTOR_CONTROL_SIDEBAR_BTN = '[data-widget=\"control-sidebar\"]'\nconst SELECTOR_FOOTER = '.main-footer'\nconst SELECTOR_PUSHMENU_BTN = '[data-widget=\"pushmenu\"]'\nconst SELECTOR_LOGIN_BOX = '.login-box'\nconst SELECTOR_REGISTER_BOX = '.register-box'\nconst SELECTOR_PRELOADER = '.preloader'\n\nconst CLASS_NAME_SIDEBAR_COLLAPSED = 'sidebar-collapse'\nconst CLASS_NAME_SIDEBAR_FOCUSED = 'sidebar-focused'\nconst CLASS_NAME_LAYOUT_FIXED = 'layout-fixed'\nconst CLASS_NAME_CONTROL_SIDEBAR_SLIDE_OPEN = 'control-sidebar-slide-open'\nconst CLASS_NAME_CONTROL_SIDEBAR_OPEN = 'control-sidebar-open'\nconst CLASS_NAME_IFRAME_MODE = 'iframe-mode'\n\nconst Default = {\n scrollbarTheme: 'os-theme-light',\n scrollbarAutoHide: 'l',\n panelAutoHeight: true,\n panelAutoHeightMode: 'min-height',\n preloadDuration: 200,\n loginRegisterAutoHeight: true\n}\n\n/**\n * Class Definition\n * ====================================================\n */\n\nclass Layout {\n constructor(element, config) {\n this._config = config\n this._element = element\n }\n\n // Public\n\n fixLayoutHeight(extra = null) {\n const $body = $('body')\n let controlSidebar = 0\n\n if ($body.hasClass(CLASS_NAME_CONTROL_SIDEBAR_SLIDE_OPEN) || $body.hasClass(CLASS_NAME_CONTROL_SIDEBAR_OPEN) || extra === 'control_sidebar') {\n controlSidebar = $(SELECTOR_CONTROL_SIDEBAR_CONTENT).outerHeight()\n }\n\n const heights = {\n window: $(window).height(),\n header: $(SELECTOR_HEADER).length > 0 ? $(SELECTOR_HEADER).outerHeight() : 0,\n footer: $(SELECTOR_FOOTER).length > 0 ? $(SELECTOR_FOOTER).outerHeight() : 0,\n sidebar: $(SELECTOR_SIDEBAR).length > 0 ? $(SELECTOR_SIDEBAR).height() : 0,\n controlSidebar\n }\n\n const max = this._max(heights)\n let offset = this._config.panelAutoHeight\n\n if (offset === true) {\n offset = 0\n }\n\n const $contentSelector = $(SELECTOR_CONTENT)\n\n if (offset !== false) {\n if (max === heights.controlSidebar) {\n $contentSelector.css(this._config.panelAutoHeightMode, (max + offset))\n } else if (max === heights.window) {\n $contentSelector.css(this._config.panelAutoHeightMode, (max + offset) - heights.header - heights.footer)\n } else {\n $contentSelector.css(this._config.panelAutoHeightMode, (max + offset) - heights.header)\n }\n\n if (this._isFooterFixed()) {\n $contentSelector.css(this._config.panelAutoHeightMode, parseFloat($contentSelector.css(this._config.panelAutoHeightMode)) + heights.footer)\n }\n }\n\n if (!$body.hasClass(CLASS_NAME_LAYOUT_FIXED)) {\n return\n }\n\n if (typeof $.fn.overlayScrollbars !== 'undefined') {\n $(SELECTOR_SIDEBAR).overlayScrollbars({\n className: this._config.scrollbarTheme,\n sizeAutoCapable: true,\n scrollbars: {\n autoHide: this._config.scrollbarAutoHide,\n clickScrolling: true\n }\n })\n } else {\n $(SELECTOR_SIDEBAR).css('overflow-y', 'auto')\n }\n }\n\n fixLoginRegisterHeight() {\n const $body = $('body')\n const $selector = $(`${SELECTOR_LOGIN_BOX}, ${SELECTOR_REGISTER_BOX}`)\n\n if ($body.hasClass(CLASS_NAME_IFRAME_MODE)) {\n $body.css('height', '100%')\n $('.wrapper').css('height', '100%')\n $('html').css('height', '100%')\n } else if ($selector.length === 0) {\n $body.css('height', 'auto')\n $('html').css('height', 'auto')\n } else {\n const boxHeight = $selector.height()\n\n if ($body.css(this._config.panelAutoHeightMode) !== boxHeight) {\n $body.css(this._config.panelAutoHeightMode, boxHeight)\n }\n }\n }\n\n // Private\n\n _init() {\n // Activate layout height watcher\n this.fixLayoutHeight()\n\n if (this._config.loginRegisterAutoHeight === true) {\n this.fixLoginRegisterHeight()\n } else if (this._config.loginRegisterAutoHeight === parseInt(this._config.loginRegisterAutoHeight, 10)) {\n setInterval(this.fixLoginRegisterHeight, this._config.loginRegisterAutoHeight)\n }\n\n $(SELECTOR_SIDEBAR)\n .on('collapsed.lte.treeview expanded.lte.treeview', () => {\n this.fixLayoutHeight()\n })\n\n $(SELECTOR_MAIN_SIDEBAR)\n .on('mouseenter mouseleave', () => {\n if ($('body').hasClass(CLASS_NAME_SIDEBAR_COLLAPSED)) {\n this.fixLayoutHeight()\n }\n })\n\n $(SELECTOR_PUSHMENU_BTN)\n .on('collapsed.lte.pushmenu shown.lte.pushmenu', () => {\n setTimeout(() => {\n this.fixLayoutHeight()\n }, 300)\n })\n\n $(SELECTOR_CONTROL_SIDEBAR_BTN)\n .on('collapsed.lte.controlsidebar', () => {\n this.fixLayoutHeight()\n })\n .on('expanded.lte.controlsidebar', () => {\n this.fixLayoutHeight('control_sidebar')\n })\n\n $(window).resize(() => {\n this.fixLayoutHeight()\n })\n\n setTimeout(() => {\n $('body.hold-transition').removeClass('hold-transition')\n }, 50)\n\n setTimeout(() => {\n const $preloader = $(SELECTOR_PRELOADER)\n if ($preloader) {\n $preloader.css('height', 0)\n setTimeout(() => {\n $preloader.children().hide()\n }, 200)\n }\n }, this._config.preloadDuration)\n }\n\n _max(numbers) {\n // Calculate the maximum number in a list\n let max = 0\n\n Object.keys(numbers).forEach(key => {\n if (numbers[key] > max) {\n max = numbers[key]\n }\n })\n\n return max\n }\n\n _isFooterFixed() {\n return $(SELECTOR_FOOTER).css('position') === 'fixed'\n }\n\n // Static\n\n static _jQueryInterface(config = '') {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _options = $.extend({}, Default, $(this).data())\n\n if (!data) {\n data = new Layout($(this), _options)\n $(this).data(DATA_KEY, data)\n }\n\n if (config === 'init' || config === '') {\n data._init()\n } else if (config === 'fixLayoutHeight' || config === 'fixLoginRegisterHeight') {\n data[config]()\n }\n })\n }\n}\n\n/**\n * Data API\n * ====================================================\n */\n\n$(window).on('load', () => {\n Layout._jQueryInterface.call($('body'))\n})\n\n$(`${SELECTOR_SIDEBAR} a`)\n .on('focusin', () => {\n $(SELECTOR_MAIN_SIDEBAR).addClass(CLASS_NAME_SIDEBAR_FOCUSED)\n })\n .on('focusout', () => {\n $(SELECTOR_MAIN_SIDEBAR).removeClass(CLASS_NAME_SIDEBAR_FOCUSED)\n })\n\n/**\n * jQuery API\n * ====================================================\n */\n\n$.fn[NAME] = Layout._jQueryInterface\n$.fn[NAME].Constructor = Layout\n$.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Layout._jQueryInterface\n}\n\nexport default Layout\n","/**\n * --------------------------------------------\n * AdminLTE PushMenu.js\n * License MIT\n * --------------------------------------------\n */\n\nimport $ from 'jquery'\n\n/**\n * Constants\n * ====================================================\n */\n\nconst NAME = 'PushMenu'\nconst DATA_KEY = 'lte.pushmenu'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst EVENT_COLLAPSED = `collapsed${EVENT_KEY}`\nconst EVENT_COLLAPSED_DONE = `collapsed-done${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\n\nconst SELECTOR_TOGGLE_BUTTON = '[data-widget=\"pushmenu\"]'\nconst SELECTOR_BODY = 'body'\nconst SELECTOR_OVERLAY = '#sidebar-overlay'\nconst SELECTOR_WRAPPER = '.wrapper'\n\nconst CLASS_NAME_COLLAPSED = 'sidebar-collapse'\nconst CLASS_NAME_OPEN = 'sidebar-open'\nconst CLASS_NAME_IS_OPENING = 'sidebar-is-opening'\nconst CLASS_NAME_CLOSED = 'sidebar-closed'\n\nconst Default = {\n autoCollapseSize: 992,\n enableRemember: false,\n noTransitionAfterReload: true,\n animationSpeed: 300\n}\n\n/**\n * Class Definition\n * ====================================================\n */\n\nclass PushMenu {\n constructor(element, options) {\n this._element = element\n this._options = $.extend({}, Default, options)\n\n if ($(SELECTOR_OVERLAY).length === 0) {\n this._addOverlay()\n }\n\n this._init()\n }\n\n // Public\n\n expand() {\n const $bodySelector = $(SELECTOR_BODY)\n\n if (this._options.autoCollapseSize && $(window).width() <= this._options.autoCollapseSize) {\n $bodySelector.addClass(CLASS_NAME_OPEN)\n }\n\n $bodySelector.addClass(CLASS_NAME_IS_OPENING).removeClass(`${CLASS_NAME_COLLAPSED} ${CLASS_NAME_CLOSED}`).delay(50).queue(function () {\n $bodySelector.removeClass(CLASS_NAME_IS_OPENING)\n $(this).dequeue()\n })\n\n if (this._options.enableRemember) {\n localStorage.setItem(`remember${EVENT_KEY}`, CLASS_NAME_OPEN)\n }\n\n $(this._element).trigger($.Event(EVENT_SHOWN))\n }\n\n collapse() {\n const $bodySelector = $(SELECTOR_BODY)\n\n if (this._options.autoCollapseSize && $(window).width() <= this._options.autoCollapseSize) {\n $bodySelector.removeClass(CLASS_NAME_OPEN).addClass(CLASS_NAME_CLOSED)\n }\n\n $bodySelector.addClass(CLASS_NAME_COLLAPSED)\n\n if (this._options.enableRemember) {\n localStorage.setItem(`remember${EVENT_KEY}`, CLASS_NAME_COLLAPSED)\n }\n\n $(this._element).trigger($.Event(EVENT_COLLAPSED))\n\n setTimeout(() => {\n $(this._element).trigger($.Event(EVENT_COLLAPSED_DONE))\n }, this._options.animationSpeed)\n }\n\n toggle() {\n if ($(SELECTOR_BODY).hasClass(CLASS_NAME_COLLAPSED)) {\n this.expand()\n } else {\n this.collapse()\n }\n }\n\n autoCollapse(resize = false) {\n if (!this._options.autoCollapseSize) {\n return\n }\n\n const $bodySelector = $(SELECTOR_BODY)\n\n if ($(window).width() <= this._options.autoCollapseSize) {\n if (!$bodySelector.hasClass(CLASS_NAME_OPEN)) {\n this.collapse()\n }\n } else if (resize === true) {\n if ($bodySelector.hasClass(CLASS_NAME_OPEN)) {\n $bodySelector.removeClass(CLASS_NAME_OPEN)\n } else if ($bodySelector.hasClass(CLASS_NAME_CLOSED)) {\n this.expand()\n }\n }\n }\n\n remember() {\n if (!this._options.enableRemember) {\n return\n }\n\n const $body = $('body')\n const toggleState = localStorage.getItem(`remember${EVENT_KEY}`)\n\n if (toggleState === CLASS_NAME_COLLAPSED) {\n if (this._options.noTransitionAfterReload) {\n $body.addClass('hold-transition').addClass(CLASS_NAME_COLLAPSED).delay(50).queue(function () {\n $(this).removeClass('hold-transition')\n $(this).dequeue()\n })\n } else {\n $body.addClass(CLASS_NAME_COLLAPSED)\n }\n } else if (this._options.noTransitionAfterReload) {\n $body.addClass('hold-transition').removeClass(CLASS_NAME_COLLAPSED).delay(50).queue(function () {\n $(this).removeClass('hold-transition')\n $(this).dequeue()\n })\n } else {\n $body.removeClass(CLASS_NAME_COLLAPSED)\n }\n }\n\n // Private\n\n _init() {\n this.remember()\n this.autoCollapse()\n\n $(window).resize(() => {\n this.autoCollapse(true)\n })\n }\n\n _addOverlay() {\n const overlay = $('<div />', {\n id: 'sidebar-overlay'\n })\n\n overlay.on('click', () => {\n this.collapse()\n })\n\n $(SELECTOR_WRAPPER).append(overlay)\n }\n\n // Static\n\n static _jQueryInterface(operation) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _options = $.extend({}, Default, $(this).data())\n\n if (!data) {\n data = new PushMenu(this, _options)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof operation === 'string' && /collapse|expand|toggle/.test(operation)) {\n data[operation]()\n }\n })\n }\n}\n\n/**\n * Data API\n * ====================================================\n */\n\n$(document).on('click', SELECTOR_TOGGLE_BUTTON, event => {\n event.preventDefault()\n\n let button = event.currentTarget\n\n if ($(button).data('widget') !== 'pushmenu') {\n button = $(button).closest(SELECTOR_TOGGLE_BUTTON)\n }\n\n PushMenu._jQueryInterface.call($(button), 'toggle')\n})\n\n$(window).on('load', () => {\n PushMenu._jQueryInterface.call($(SELECTOR_TOGGLE_BUTTON))\n})\n\n/**\n * jQuery API\n * ====================================================\n */\n\n$.fn[NAME] = PushMenu._jQueryInterface\n$.fn[NAME].Constructor = PushMenu\n$.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return PushMenu._jQueryInterface\n}\n\nexport default PushMenu\n","/**\n * --------------------------------------------\n * AdminLTE SidebarSearch.js\n * License MIT\n * --------------------------------------------\n */\n\nimport $, { trim } from 'jquery'\n\n/**\n * Constants\n * ====================================================\n */\n\nconst NAME = 'SidebarSearch'\nconst DATA_KEY = 'lte.sidebar-search'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst CLASS_NAME_OPEN = 'sidebar-search-open'\nconst CLASS_NAME_ICON_SEARCH = 'fa-search'\nconst CLASS_NAME_ICON_CLOSE = 'fa-times'\nconst CLASS_NAME_HEADER = 'nav-header'\nconst CLASS_NAME_SEARCH_RESULTS = 'sidebar-search-results'\nconst CLASS_NAME_LIST_GROUP = 'list-group'\n\nconst SELECTOR_DATA_WIDGET = '[data-widget=\"sidebar-search\"]'\nconst SELECTOR_SIDEBAR = '.main-sidebar .nav-sidebar'\nconst SELECTOR_NAV_LINK = '.nav-link'\nconst SELECTOR_NAV_TREEVIEW = '.nav-treeview'\nconst SELECTOR_SEARCH_INPUT = `${SELECTOR_DATA_WIDGET} .form-control`\nconst SELECTOR_SEARCH_BUTTON = `${SELECTOR_DATA_WIDGET} .btn`\nconst SELECTOR_SEARCH_ICON = `${SELECTOR_SEARCH_BUTTON} i`\nconst SELECTOR_SEARCH_LIST_GROUP = `.${CLASS_NAME_LIST_GROUP}`\nconst SELECTOR_SEARCH_RESULTS = `.${CLASS_NAME_SEARCH_RESULTS}`\nconst SELECTOR_SEARCH_RESULTS_GROUP = `${SELECTOR_SEARCH_RESULTS} .${CLASS_NAME_LIST_GROUP}`\n\nconst Default = {\n arrowSign: '->',\n minLength: 3,\n maxResults: 7,\n highlightName: true,\n highlightPath: false,\n highlightClass: 'text-light',\n notFoundText: 'No element found!'\n}\n\nconst SearchItems = []\n\n/**\n * Class Definition\n * ====================================================\n */\n\nclass SidebarSearch {\n constructor(_element, _options) {\n this.element = _element\n this.options = $.extend({}, Default, _options)\n this.items = []\n }\n\n // Public\n\n init() {\n if ($(SELECTOR_DATA_WIDGET).length === 0) {\n return\n }\n\n if ($(SELECTOR_DATA_WIDGET).next(SELECTOR_SEARCH_RESULTS).length === 0) {\n $(SELECTOR_DATA_WIDGET).after(\n $('<div />', { class: CLASS_NAME_SEARCH_RESULTS })\n )\n }\n\n if ($(SELECTOR_SEARCH_RESULTS).children(SELECTOR_SEARCH_LIST_GROUP).length === 0) {\n $(SELECTOR_SEARCH_RESULTS).append(\n $('<div />', { class: CLASS_NAME_LIST_GROUP })\n )\n }\n\n this._addNotFound()\n\n $(SELECTOR_SIDEBAR).children().each((i, child) => {\n this._parseItem(child)\n })\n }\n\n search() {\n const searchValue = $(SELECTOR_SEARCH_INPUT).val().toLowerCase()\n if (searchValue.length < this.options.minLength) {\n $(SELECTOR_SEARCH_RESULTS_GROUP).empty()\n this._addNotFound()\n this.close()\n return\n }\n\n const searchResults = SearchItems.filter(item => (item.name).toLowerCase().includes(searchValue))\n const endResults = $(searchResults.slice(0, this.options.maxResults))\n $(SELECTOR_SEARCH_RESULTS_GROUP).empty()\n\n if (endResults.length === 0) {\n this._addNotFound()\n } else {\n endResults.each((i, result) => {\n $(SELECTOR_SEARCH_RESULTS_GROUP).append(this._renderItem(escape(result.name), encodeURI(result.link), result.path))\n })\n }\n\n this.open()\n }\n\n open() {\n $(SELECTOR_DATA_WIDGET).parent().addClass(CLASS_NAME_OPEN)\n $(SELECTOR_SEARCH_ICON).removeClass(CLASS_NAME_ICON_SEARCH).addClass(CLASS_NAME_ICON_CLOSE)\n }\n\n close() {\n $(SELECTOR_DATA_WIDGET).parent().removeClass(CLASS_NAME_OPEN)\n $(SELECTOR_SEARCH_ICON).removeClass(CLASS_NAME_ICON_CLOSE).addClass(CLASS_NAME_ICON_SEARCH)\n }\n\n toggle() {\n if ($(SELECTOR_DATA_WIDGET).parent().hasClass(CLASS_NAME_OPEN)) {\n this.close()\n } else {\n this.open()\n }\n }\n\n // Private\n\n _parseItem(item, path = []) {\n if ($(item).hasClass(CLASS_NAME_HEADER)) {\n return\n }\n\n const itemObject = {}\n const navLink = $(item).clone().find(`> ${SELECTOR_NAV_LINK}`)\n const navTreeview = $(item).clone().find(`> ${SELECTOR_NAV_TREEVIEW}`)\n\n const link = navLink.attr('href')\n const name = navLink.find('p').children().remove().end().text()\n\n itemObject.name = this._trimText(name)\n itemObject.link = link\n itemObject.path = path\n\n if (navTreeview.length === 0) {\n SearchItems.push(itemObject)\n } else {\n const newPath = itemObject.path.concat([itemObject.name])\n navTreeview.children().each((i, child) => {\n this._parseItem(child, newPath)\n })\n }\n }\n\n _trimText(text) {\n return trim(text.replace(/(\\r\\n|\\n|\\r)/gm, ' '))\n }\n\n _renderItem(name, link, path) {\n path = path.join(` ${this.options.arrowSign} `)\n name = unescape(name)\n link = decodeURI(link)\n\n if (this.options.highlightName || this.options.highlightPath) {\n const searchValue = $(SELECTOR_SEARCH_INPUT).val().toLowerCase()\n const regExp = new RegExp(searchValue, 'gi')\n\n if (this.options.highlightName) {\n name = name.replace(\n regExp,\n str => {\n return `<strong class=\"${this.options.highlightClass}\">${str}</strong>`\n }\n )\n }\n\n if (this.options.highlightPath) {\n path = path.replace(\n regExp,\n str => {\n return `<strong class=\"${this.options.highlightClass}\">${str}</strong>`\n }\n )\n }\n }\n\n const groupItemElement = $('<a/>', {\n href: decodeURIComponent(link),\n class: 'list-group-item'\n })\n const searchTitleElement = $('<div/>', {\n class: 'search-title'\n }).html(name)\n const searchPathElement = $('<div/>', {\n class: 'search-path'\n }).html(path)\n\n groupItemElement.append(searchTitleElement).append(searchPathElement)\n\n return groupItemElement\n }\n\n _addNotFound() {\n $(SELECTOR_SEARCH_RESULTS_GROUP).append(this._renderItem(this.options.notFoundText, '#', []))\n }\n\n // Static\n\n static _jQueryInterface(config) {\n let data = $(this).data(DATA_KEY)\n\n if (!data) {\n data = $(this).data()\n }\n\n const _options = $.extend({}, Default, typeof config === 'object' ? config : data)\n const plugin = new SidebarSearch($(this), _options)\n\n $(this).data(DATA_KEY, typeof config === 'object' ? config : data)\n\n if (typeof config === 'string' && /init|toggle|close|open|search/.test(config)) {\n plugin[config]()\n } else {\n plugin.init()\n }\n }\n}\n\n/**\n * Data API\n * ====================================================\n */\n$(document).on('click', SELECTOR_SEARCH_BUTTON, event => {\n event.preventDefault()\n\n SidebarSearch._jQueryInterface.call($(SELECTOR_DATA_WIDGET), 'toggle')\n})\n\n$(document).on('keyup', SELECTOR_SEARCH_INPUT, event => {\n if (event.keyCode == 38) {\n event.preventDefault()\n $(SELECTOR_SEARCH_RESULTS_GROUP).children().last().focus()\n return\n }\n\n if (event.keyCode == 40) {\n event.preventDefault()\n $(SELECTOR_SEARCH_RESULTS_GROUP).children().first().focus()\n return\n }\n\n setTimeout(() => {\n SidebarSearch._jQueryInterface.call($(SELECTOR_DATA_WIDGET), 'search')\n }, 100)\n})\n\n$(document).on('keydown', SELECTOR_SEARCH_RESULTS_GROUP, event => {\n const $focused = $(':focus')\n\n if (event.keyCode == 38) {\n event.preventDefault()\n\n if ($focused.is(':first-child')) {\n $focused.siblings().last().focus()\n } else {\n $focused.prev().focus()\n }\n }\n\n if (event.keyCode == 40) {\n event.preventDefault()\n\n if ($focused.is(':last-child')) {\n $focused.siblings().first().focus()\n } else {\n $focused.next().focus()\n }\n }\n})\n\n$(window).on('load', () => {\n SidebarSearch._jQueryInterface.call($(SELECTOR_DATA_WIDGET), 'init')\n})\n\n/**\n * jQuery API\n * ====================================================\n */\n\n$.fn[NAME] = SidebarSearch._jQueryInterface\n$.fn[NAME].Constructor = SidebarSearch\n$.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return SidebarSearch._jQueryInterface\n}\n\nexport default SidebarSearch\n","/**\n * --------------------------------------------\n * AdminLTE NavbarSearch.js\n * License MIT\n * --------------------------------------------\n */\n\nimport $ from 'jquery'\n\n/**\n * Constants\n * ====================================================\n */\n\nconst NAME = 'NavbarSearch'\nconst DATA_KEY = 'lte.navbar-search'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst SELECTOR_TOGGLE_BUTTON = '[data-widget=\"navbar-search\"]'\nconst SELECTOR_SEARCH_BLOCK = '.navbar-search-block'\nconst SELECTOR_SEARCH_INPUT = '.form-control'\n\nconst CLASS_NAME_OPEN = 'navbar-search-open'\n\nconst Default = {\n resetOnClose: true,\n target: SELECTOR_SEARCH_BLOCK\n}\n\n/**\n * Class Definition\n * ====================================================\n */\n\nclass NavbarSearch {\n constructor(_element, _options) {\n this._element = _element\n this._config = $.extend({}, Default, _options)\n }\n\n // Public\n\n open() {\n $(this._config.target).css('display', 'flex').hide().fadeIn().addClass(CLASS_NAME_OPEN)\n $(`${this._config.target} ${SELECTOR_SEARCH_INPUT}`).focus()\n }\n\n close() {\n $(this._config.target).fadeOut().removeClass(CLASS_NAME_OPEN)\n\n if (this._config.resetOnClose) {\n $(`${this._config.target} ${SELECTOR_SEARCH_INPUT}`).val('')\n }\n }\n\n toggle() {\n if ($(this._config.target).hasClass(CLASS_NAME_OPEN)) {\n this.close()\n } else {\n this.open()\n }\n }\n\n // Static\n\n static _jQueryInterface(options) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _options = $.extend({}, Default, $(this).data())\n\n if (!data) {\n data = new NavbarSearch(this, _options)\n $(this).data(DATA_KEY, data)\n }\n\n if (!/toggle|close|open/.test(options)) {\n throw new Error(`Undefined method ${options}`)\n }\n\n data[options]()\n })\n }\n}\n\n/**\n * Data API\n * ====================================================\n */\n$(document).on('click', SELECTOR_TOGGLE_BUTTON, event => {\n event.preventDefault()\n\n let button = $(event.currentTarget)\n\n if (button.data('widget') !== 'navbar-search') {\n button = button.closest(SELECTOR_TOGGLE_BUTTON)\n }\n\n NavbarSearch._jQueryInterface.call(button, 'toggle')\n})\n\n/**\n * jQuery API\n * ====================================================\n */\n\n$.fn[NAME] = NavbarSearch._jQueryInterface\n$.fn[NAME].Constructor = NavbarSearch\n$.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return NavbarSearch._jQueryInterface\n}\n\nexport default NavbarSearch\n","/**\n * --------------------------------------------\n * AdminLTE Toasts.js\n * License MIT\n * --------------------------------------------\n */\n\nimport $ from 'jquery'\n\n/**\n * Constants\n * ====================================================\n */\n\nconst NAME = 'Toasts'\nconst DATA_KEY = 'lte.toasts'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst EVENT_INIT = `init${EVENT_KEY}`\nconst EVENT_CREATED = `created${EVENT_KEY}`\nconst EVENT_REMOVED = `removed${EVENT_KEY}`\n\nconst SELECTOR_CONTAINER_TOP_RIGHT = '#toastsContainerTopRight'\nconst SELECTOR_CONTAINER_TOP_LEFT = '#toastsContainerTopLeft'\nconst SELECTOR_CONTAINER_BOTTOM_RIGHT = '#toastsContainerBottomRight'\nconst SELECTOR_CONTAINER_BOTTOM_LEFT = '#toastsContainerBottomLeft'\n\nconst CLASS_NAME_TOP_RIGHT = 'toasts-top-right'\nconst CLASS_NAME_TOP_LEFT = 'toasts-top-left'\nconst CLASS_NAME_BOTTOM_RIGHT = 'toasts-bottom-right'\nconst CLASS_NAME_BOTTOM_LEFT = 'toasts-bottom-left'\n\nconst POSITION_TOP_RIGHT = 'topRight'\nconst POSITION_TOP_LEFT = 'topLeft'\nconst POSITION_BOTTOM_RIGHT = 'bottomRight'\nconst POSITION_BOTTOM_LEFT = 'bottomLeft'\n\nconst Default = {\n position: POSITION_TOP_RIGHT,\n fixed: true,\n autohide: false,\n autoremove: true,\n delay: 1000,\n fade: true,\n icon: null,\n image: null,\n imageAlt: null,\n imageHeight: '25px',\n title: null,\n subtitle: null,\n close: true,\n body: null,\n class: null\n}\n\n/**\n * Class Definition\n * ====================================================\n */\nclass Toasts {\n constructor(element, config) {\n this._config = config\n this._prepareContainer()\n\n $('body').trigger($.Event(EVENT_INIT))\n }\n\n // Public\n\n create() {\n const toast = $('<div class=\"toast\" role=\"alert\" aria-live=\"assertive\" aria-atomic=\"true\"/>')\n\n toast.data('autohide', this._config.autohide)\n toast.data('animation', this._config.fade)\n\n if (this._config.class) {\n toast.addClass(this._config.class)\n }\n\n if (this._config.delay && this._config.delay != 500) {\n toast.data('delay', this._config.delay)\n }\n\n const toastHeader = $('<div class=\"toast-header\">')\n\n if (this._config.image != null) {\n const toastImage = $('<img />').addClass('rounded mr-2').attr('src', this._config.image).attr('alt', this._config.imageAlt)\n\n if (this._config.imageHeight != null) {\n toastImage.height(this._config.imageHeight).width('auto')\n }\n\n toastHeader.append(toastImage)\n }\n\n if (this._config.icon != null) {\n toastHeader.append($('<i />').addClass('mr-2').addClass(this._config.icon))\n }\n\n if (this._config.title != null) {\n toastHeader.append($('<strong />').addClass('mr-auto').html(this._config.title))\n }\n\n if (this._config.subtitle != null) {\n toastHeader.append($('<small />').html(this._config.subtitle))\n }\n\n if (this._config.close == true) {\n const toastClose = $('<button data-dismiss=\"toast\" />').attr('type', 'button').addClass('ml-2 mb-1 close').attr('aria-label', 'Close').append('<span aria-hidden=\"true\">×</span>')\n\n if (this._config.title == null) {\n toastClose.toggleClass('ml-2 ml-auto')\n }\n\n toastHeader.append(toastClose)\n }\n\n toast.append(toastHeader)\n\n if (this._config.body != null) {\n toast.append($('<div class=\"toast-body\" />').html(this._config.body))\n }\n\n $(this._getContainerId()).prepend(toast)\n\n const $body = $('body')\n\n $body.trigger($.Event(EVENT_CREATED))\n toast.toast('show')\n\n if (this._config.autoremove) {\n toast.on('hidden.bs.toast', function () {\n $(this).delay(200).remove()\n $body.trigger($.Event(EVENT_REMOVED))\n })\n }\n }\n\n // Static\n\n _getContainerId() {\n if (this._config.position == POSITION_TOP_RIGHT) {\n return SELECTOR_CONTAINER_TOP_RIGHT\n }\n\n if (this._config.position == POSITION_TOP_LEFT) {\n return SELECTOR_CONTAINER_TOP_LEFT\n }\n\n if (this._config.position == POSITION_BOTTOM_RIGHT) {\n return SELECTOR_CONTAINER_BOTTOM_RIGHT\n }\n\n if (this._config.position == POSITION_BOTTOM_LEFT) {\n return SELECTOR_CONTAINER_BOTTOM_LEFT\n }\n }\n\n _prepareContainer() {\n if ($(this._getContainerId()).length === 0) {\n const container = $('<div />').attr('id', this._getContainerId().replace('#', ''))\n if (this._config.position == POSITION_TOP_RIGHT) {\n container.addClass(CLASS_NAME_TOP_RIGHT)\n } else if (this._config.position == POSITION_TOP_LEFT) {\n container.addClass(CLASS_NAME_TOP_LEFT)\n } else if (this._config.position == POSITION_BOTTOM_RIGHT) {\n container.addClass(CLASS_NAME_BOTTOM_RIGHT)\n } else if (this._config.position == POSITION_BOTTOM_LEFT) {\n container.addClass(CLASS_NAME_BOTTOM_LEFT)\n }\n\n $('body').append(container)\n }\n\n if (this._config.fixed) {\n $(this._getContainerId()).addClass('fixed')\n } else {\n $(this._getContainerId()).removeClass('fixed')\n }\n }\n\n // Static\n\n static _jQueryInterface(option, config) {\n return this.each(function () {\n const _options = $.extend({}, Default, config)\n const toast = new Toasts($(this), _options)\n\n if (option === 'create') {\n toast[option]()\n }\n })\n }\n}\n\n/**\n * jQuery API\n * ====================================================\n */\n\n$.fn[NAME] = Toasts._jQueryInterface\n$.fn[NAME].Constructor = Toasts\n$.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Toasts._jQueryInterface\n}\n\nexport default Toasts\n","/**\n * --------------------------------------------\n * AdminLTE TodoList.js\n * License MIT\n * --------------------------------------------\n */\n\nimport $ from 'jquery'\n\n/**\n * Constants\n * ====================================================\n */\n\nconst NAME = 'TodoList'\nconst DATA_KEY = 'lte.todolist'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst SELECTOR_DATA_TOGGLE = '[data-widget=\"todo-list\"]'\nconst CLASS_NAME_TODO_LIST_DONE = 'done'\n\nconst Default = {\n onCheck(item) {\n return item\n },\n onUnCheck(item) {\n return item\n }\n}\n\n/**\n * Class Definition\n * ====================================================\n */\n\nclass TodoList {\n constructor(element, config) {\n this._config = config\n this._element = element\n\n this._init()\n }\n\n // Public\n\n toggle(item) {\n item.parents('li').toggleClass(CLASS_NAME_TODO_LIST_DONE)\n if (!$(item).prop('checked')) {\n this.unCheck($(item))\n return\n }\n\n this.check(item)\n }\n\n check(item) {\n this._config.onCheck.call(item)\n }\n\n unCheck(item) {\n this._config.onUnCheck.call(item)\n }\n\n // Private\n\n _init() {\n const $toggleSelector = this._element\n\n $toggleSelector.find('input:checkbox:checked').parents('li').toggleClass(CLASS_NAME_TODO_LIST_DONE)\n $toggleSelector.on('change', 'input:checkbox', event => {\n this.toggle($(event.target))\n })\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n\n if (!data) {\n data = $(this).data()\n }\n\n const _options = $.extend({}, Default, typeof config === 'object' ? config : data)\n const plugin = new TodoList($(this), _options)\n\n $(this).data(DATA_KEY, typeof config === 'object' ? config : data)\n\n if (config === 'init') {\n plugin[config]()\n }\n })\n }\n}\n\n/**\n * Data API\n * ====================================================\n */\n\n$(window).on('load', () => {\n TodoList._jQueryInterface.call($(SELECTOR_DATA_TOGGLE))\n})\n\n/**\n * jQuery API\n * ====================================================\n */\n\n$.fn[NAME] = TodoList._jQueryInterface\n$.fn[NAME].Constructor = TodoList\n$.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return TodoList._jQueryInterface\n}\n\nexport default TodoList\n","/**\n * --------------------------------------------\n * AdminLTE Treeview.js\n * License MIT\n * --------------------------------------------\n */\n\nimport $ from 'jquery'\n\n/**\n * Constants\n * ====================================================\n */\n\nconst NAME = 'Treeview'\nconst DATA_KEY = 'lte.treeview'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst EVENT_EXPANDED = `expanded${EVENT_KEY}`\nconst EVENT_COLLAPSED = `collapsed${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}`\n\nconst SELECTOR_LI = '.nav-item'\nconst SELECTOR_LINK = '.nav-link'\nconst SELECTOR_TREEVIEW_MENU = '.nav-treeview'\nconst SELECTOR_OPEN = '.menu-open'\nconst SELECTOR_DATA_WIDGET = '[data-widget=\"treeview\"]'\n\nconst CLASS_NAME_OPEN = 'menu-open'\nconst CLASS_NAME_IS_OPENING = 'menu-is-opening'\nconst CLASS_NAME_SIDEBAR_COLLAPSED = 'sidebar-collapse'\n\nconst Default = {\n trigger: `${SELECTOR_DATA_WIDGET} ${SELECTOR_LINK}`,\n animationSpeed: 300,\n accordion: true,\n expandSidebar: false,\n sidebarButtonSelector: '[data-widget=\"pushmenu\"]'\n}\n\n/**\n * Class Definition\n * ====================================================\n */\nclass Treeview {\n constructor(element, config) {\n this._config = config\n this._element = element\n }\n\n // Public\n\n init() {\n $(`${SELECTOR_LI}${SELECTOR_OPEN} ${SELECTOR_TREEVIEW_MENU}${SELECTOR_OPEN}`).css('display', 'block')\n this._setupListeners()\n }\n\n expand(treeviewMenu, parentLi) {\n const expandedEvent = $.Event(EVENT_EXPANDED)\n\n if (this._config.accordion) {\n const openMenuLi = parentLi.siblings(SELECTOR_OPEN).first()\n const openTreeview = openMenuLi.find(SELECTOR_TREEVIEW_MENU).first()\n this.collapse(openTreeview, openMenuLi)\n }\n\n parentLi.addClass(CLASS_NAME_IS_OPENING)\n treeviewMenu.stop().slideDown(this._config.animationSpeed, () => {\n parentLi.addClass(CLASS_NAME_OPEN)\n $(this._element).trigger(expandedEvent)\n })\n\n if (this._config.expandSidebar) {\n this._expandSidebar()\n }\n }\n\n collapse(treeviewMenu, parentLi) {\n const collapsedEvent = $.Event(EVENT_COLLAPSED)\n\n parentLi.removeClass(`${CLASS_NAME_IS_OPENING} ${CLASS_NAME_OPEN}`)\n treeviewMenu.stop().slideUp(this._config.animationSpeed, () => {\n $(this._element).trigger(collapsedEvent)\n treeviewMenu.find(`${SELECTOR_OPEN} > ${SELECTOR_TREEVIEW_MENU}`).slideUp()\n treeviewMenu.find(SELECTOR_OPEN).removeClass(`${CLASS_NAME_IS_OPENING} ${CLASS_NAME_OPEN}`)\n })\n }\n\n toggle(event) {\n const $relativeTarget = $(event.currentTarget)\n const $parent = $relativeTarget.parent()\n\n let treeviewMenu = $parent.find(`> ${SELECTOR_TREEVIEW_MENU}`)\n\n if (!treeviewMenu.is(SELECTOR_TREEVIEW_MENU)) {\n if (!$parent.is(SELECTOR_LI)) {\n treeviewMenu = $parent.parent().find(`> ${SELECTOR_TREEVIEW_MENU}`)\n }\n\n if (!treeviewMenu.is(SELECTOR_TREEVIEW_MENU)) {\n return\n }\n }\n\n event.preventDefault()\n\n const parentLi = $relativeTarget.parents(SELECTOR_LI).first()\n const isOpen = parentLi.hasClass(CLASS_NAME_OPEN)\n\n if (isOpen) {\n this.collapse($(treeviewMenu), parentLi)\n } else {\n this.expand($(treeviewMenu), parentLi)\n }\n }\n\n // Private\n\n _setupListeners() {\n const elementId = this._element.attr('id') !== undefined ? `#${this._element.attr('id')}` : ''\n $(document).on('click', `${elementId}${this._config.trigger}`, event => {\n this.toggle(event)\n })\n }\n\n _expandSidebar() {\n if ($('body').hasClass(CLASS_NAME_SIDEBAR_COLLAPSED)) {\n $(this._config.sidebarButtonSelector).PushMenu('expand')\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _options = $.extend({}, Default, $(this).data())\n\n if (!data) {\n data = new Treeview($(this), _options)\n $(this).data(DATA_KEY, data)\n }\n\n if (config === 'init') {\n data[config]()\n }\n })\n }\n}\n\n/**\n * Data API\n * ====================================================\n */\n\n$(window).on(EVENT_LOAD_DATA_API, () => {\n $(SELECTOR_DATA_WIDGET).each(function () {\n Treeview._jQueryInterface.call($(this), 'init')\n })\n})\n\n/**\n * jQuery API\n * ====================================================\n */\n\n$.fn[NAME] = Treeview._jQueryInterface\n$.fn[NAME].Constructor = Treeview\n$.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Treeview._jQueryInterface\n}\n\nexport default Treeview\n"]} .eslintrc.json 0000644 00000002223 15025021321 0007326 0 ustar 00 { "root": true, "parserOptions": { "ecmaVersion": 5, "sourceType": "script" }, "env": { "jquery": true }, "extends": [ "plugin:unicorn/recommended", "xo", "xo/browser" ], "rules": { "capitalized-comments": "off", "comma-dangle": [ "error", "never" ], "indent": [ "error", 2, { "MemberExpression": "off", "SwitchCase": 1 } ], "multiline-ternary": [ "error", "always-multiline" ], "no-var": "off", "object-curly-spacing": [ "error", "always" ], "object-shorthand": "off", "prefer-arrow-callback": "off", "semi": [ "error", "never" ], "strict": "error", "unicorn/no-array-for-each": "off", "unicorn/no-for-loop": "off", "unicorn/no-null": "off", "unicorn/numeric-separators-style": "off", "unicorn/prefer-dataset": "off", "unicorn/prefer-includes": "off", "unicorn/prefer-module": "off", "unicorn/prefer-node-append": "off", "unicorn/prefer-query-selector": "off", "unicorn/prefer-spread": "off", "unicorn/prevent-abbreviations": "off" } } adminlte.js.map 0000644 00000537222 15025021321 0007455 0 ustar 00 {"version":3,"file":"adminlte.js","sources":["../../build/js/CardRefresh.js","../../build/js/CardWidget.js","../../build/js/ControlSidebar.js","../../build/js/DirectChat.js","../../build/js/Dropdown.js","../../build/js/ExpandableTable.js","../../build/js/Fullscreen.js","../../build/js/IFrame.js","../../build/js/Layout.js","../../build/js/PushMenu.js","../../build/js/SidebarSearch.js","../../build/js/NavbarSearch.js","../../build/js/Toasts.js","../../build/js/TodoList.js","../../build/js/Treeview.js"],"sourcesContent":["/**\n * --------------------------------------------\n * AdminLTE CardRefresh.js\n * License MIT\n * --------------------------------------------\n */\n\nimport $ from 'jquery'\n\n/**\n * Constants\n * ====================================================\n */\n\nconst NAME = 'CardRefresh'\nconst DATA_KEY = 'lte.cardrefresh'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst EVENT_LOADED = `loaded${EVENT_KEY}`\nconst EVENT_OVERLAY_ADDED = `overlay.added${EVENT_KEY}`\nconst EVENT_OVERLAY_REMOVED = `overlay.removed${EVENT_KEY}`\n\nconst CLASS_NAME_CARD = 'card'\n\nconst SELECTOR_CARD = `.${CLASS_NAME_CARD}`\nconst SELECTOR_DATA_REFRESH = '[data-card-widget=\"card-refresh\"]'\n\nconst Default = {\n source: '',\n sourceSelector: '',\n params: {},\n trigger: SELECTOR_DATA_REFRESH,\n content: '.card-body',\n loadInContent: true,\n loadOnInit: true,\n loadErrorTemplate: true,\n responseType: '',\n overlayTemplate: '<div class=\"overlay\"><i class=\"fas fa-2x fa-sync-alt fa-spin\"></i></div>',\n errorTemplate: '<span class=\"text-danger\"></span>',\n onLoadStart() {},\n onLoadDone(response) {\n return response\n },\n onLoadFail(_jqXHR, _textStatus, _errorThrown) {}\n}\n\nclass CardRefresh {\n constructor(element, settings) {\n this._element = element\n this._parent = element.parents(SELECTOR_CARD).first()\n this._settings = $.extend({}, Default, settings)\n this._overlay = $(this._settings.overlayTemplate)\n\n if (element.hasClass(CLASS_NAME_CARD)) {\n this._parent = element\n }\n\n if (this._settings.source === '') {\n throw new Error('Source url was not defined. Please specify a url in your CardRefresh source option.')\n }\n }\n\n load() {\n this._addOverlay()\n this._settings.onLoadStart.call($(this))\n\n $.get(this._settings.source, this._settings.params, response => {\n if (this._settings.loadInContent) {\n if (this._settings.sourceSelector !== '') {\n response = $(response).find(this._settings.sourceSelector).html()\n }\n\n this._parent.find(this._settings.content).html(response)\n }\n\n this._settings.onLoadDone.call($(this), response)\n this._removeOverlay()\n }, this._settings.responseType !== '' && this._settings.responseType)\n .fail((jqXHR, textStatus, errorThrown) => {\n this._removeOverlay()\n\n if (this._settings.loadErrorTemplate) {\n const msg = $(this._settings.errorTemplate).text(errorThrown)\n this._parent.find(this._settings.content).empty().append(msg)\n }\n\n this._settings.onLoadFail.call($(this), jqXHR, textStatus, errorThrown)\n })\n\n $(this._element).trigger($.Event(EVENT_LOADED))\n }\n\n _addOverlay() {\n this._parent.append(this._overlay)\n $(this._element).trigger($.Event(EVENT_OVERLAY_ADDED))\n }\n\n _removeOverlay() {\n this._parent.find(this._overlay).remove()\n $(this._element).trigger($.Event(EVENT_OVERLAY_REMOVED))\n }\n\n // Private\n\n _init() {\n $(this).find(this._settings.trigger).on('click', () => {\n this.load()\n })\n\n if (this._settings.loadOnInit) {\n this.load()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n let data = $(this).data(DATA_KEY)\n const _options = $.extend({}, Default, $(this).data())\n\n if (!data) {\n data = new CardRefresh($(this), _options)\n $(this).data(DATA_KEY, typeof config === 'string' ? data : config)\n }\n\n if (typeof config === 'string' && /load/.test(config)) {\n data[config]()\n } else {\n data._init($(this))\n }\n }\n}\n\n/**\n * Data API\n * ====================================================\n */\n\n$(document).on('click', SELECTOR_DATA_REFRESH, function (event) {\n if (event) {\n event.preventDefault()\n }\n\n CardRefresh._jQueryInterface.call($(this), 'load')\n})\n\n$(() => {\n $(SELECTOR_DATA_REFRESH).each(function () {\n CardRefresh._jQueryInterface.call($(this))\n })\n})\n\n/**\n * jQuery API\n * ====================================================\n */\n\n$.fn[NAME] = CardRefresh._jQueryInterface\n$.fn[NAME].Constructor = CardRefresh\n$.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return CardRefresh._jQueryInterface\n}\n\nexport default CardRefresh\n","/**\n * --------------------------------------------\n * AdminLTE CardWidget.js\n * License MIT\n * --------------------------------------------\n */\n\nimport $ from 'jquery'\n\n/**\n * Constants\n * ====================================================\n */\n\nconst NAME = 'CardWidget'\nconst DATA_KEY = 'lte.cardwidget'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst EVENT_EXPANDED = `expanded${EVENT_KEY}`\nconst EVENT_COLLAPSED = `collapsed${EVENT_KEY}`\nconst EVENT_MAXIMIZED = `maximized${EVENT_KEY}`\nconst EVENT_MINIMIZED = `minimized${EVENT_KEY}`\nconst EVENT_REMOVED = `removed${EVENT_KEY}`\n\nconst CLASS_NAME_CARD = 'card'\nconst CLASS_NAME_COLLAPSED = 'collapsed-card'\nconst CLASS_NAME_COLLAPSING = 'collapsing-card'\nconst CLASS_NAME_EXPANDING = 'expanding-card'\nconst CLASS_NAME_WAS_COLLAPSED = 'was-collapsed'\nconst CLASS_NAME_MAXIMIZED = 'maximized-card'\n\nconst SELECTOR_DATA_REMOVE = '[data-card-widget=\"remove\"]'\nconst SELECTOR_DATA_COLLAPSE = '[data-card-widget=\"collapse\"]'\nconst SELECTOR_DATA_MAXIMIZE = '[data-card-widget=\"maximize\"]'\nconst SELECTOR_CARD = `.${CLASS_NAME_CARD}`\nconst SELECTOR_CARD_HEADER = '.card-header'\nconst SELECTOR_CARD_BODY = '.card-body'\nconst SELECTOR_CARD_FOOTER = '.card-footer'\n\nconst Default = {\n animationSpeed: 'normal',\n collapseTrigger: SELECTOR_DATA_COLLAPSE,\n removeTrigger: SELECTOR_DATA_REMOVE,\n maximizeTrigger: SELECTOR_DATA_MAXIMIZE,\n collapseIcon: 'fa-minus',\n expandIcon: 'fa-plus',\n maximizeIcon: 'fa-expand',\n minimizeIcon: 'fa-compress'\n}\n\nclass CardWidget {\n constructor(element, settings) {\n this._element = element\n this._parent = element.parents(SELECTOR_CARD).first()\n\n if (element.hasClass(CLASS_NAME_CARD)) {\n this._parent = element\n }\n\n this._settings = $.extend({}, Default, settings)\n }\n\n collapse() {\n this._parent.addClass(CLASS_NAME_COLLAPSING).children(`${SELECTOR_CARD_BODY}, ${SELECTOR_CARD_FOOTER}`)\n .slideUp(this._settings.animationSpeed, () => {\n this._parent.addClass(CLASS_NAME_COLLAPSED).removeClass(CLASS_NAME_COLLAPSING)\n })\n\n this._parent.find(`> ${SELECTOR_CARD_HEADER} ${this._settings.collapseTrigger} .${this._settings.collapseIcon}`)\n .addClass(this._settings.expandIcon)\n .removeClass(this._settings.collapseIcon)\n\n this._element.trigger($.Event(EVENT_COLLAPSED), this._parent)\n }\n\n expand() {\n this._parent.addClass(CLASS_NAME_EXPANDING).children(`${SELECTOR_CARD_BODY}, ${SELECTOR_CARD_FOOTER}`)\n .slideDown(this._settings.animationSpeed, () => {\n this._parent.removeClass(CLASS_NAME_COLLAPSED).removeClass(CLASS_NAME_EXPANDING)\n })\n\n this._parent.find(`> ${SELECTOR_CARD_HEADER} ${this._settings.collapseTrigger} .${this._settings.expandIcon}`)\n .addClass(this._settings.collapseIcon)\n .removeClass(this._settings.expandIcon)\n\n this._element.trigger($.Event(EVENT_EXPANDED), this._parent)\n }\n\n remove() {\n this._parent.slideUp()\n this._element.trigger($.Event(EVENT_REMOVED), this._parent)\n }\n\n toggle() {\n if (this._parent.hasClass(CLASS_NAME_COLLAPSED)) {\n this.expand()\n return\n }\n\n this.collapse()\n }\n\n maximize() {\n this._parent.find(`${this._settings.maximizeTrigger} .${this._settings.maximizeIcon}`)\n .addClass(this._settings.minimizeIcon)\n .removeClass(this._settings.maximizeIcon)\n this._parent.css({\n height: this._parent.height(),\n width: this._parent.width(),\n transition: 'all .15s'\n }).delay(150).queue(function () {\n const $element = $(this)\n\n $element.addClass(CLASS_NAME_MAXIMIZED)\n $('html').addClass(CLASS_NAME_MAXIMIZED)\n if ($element.hasClass(CLASS_NAME_COLLAPSED)) {\n $element.addClass(CLASS_NAME_WAS_COLLAPSED)\n }\n\n $element.dequeue()\n })\n\n this._element.trigger($.Event(EVENT_MAXIMIZED), this._parent)\n }\n\n minimize() {\n this._parent.find(`${this._settings.maximizeTrigger} .${this._settings.minimizeIcon}`)\n .addClass(this._settings.maximizeIcon)\n .removeClass(this._settings.minimizeIcon)\n this._parent.css('cssText', `height: ${this._parent[0].style.height} !important; width: ${this._parent[0].style.width} !important; transition: all .15s;`\n ).delay(10).queue(function () {\n const $element = $(this)\n\n $element.removeClass(CLASS_NAME_MAXIMIZED)\n $('html').removeClass(CLASS_NAME_MAXIMIZED)\n $element.css({\n height: 'inherit',\n width: 'inherit'\n })\n if ($element.hasClass(CLASS_NAME_WAS_COLLAPSED)) {\n $element.removeClass(CLASS_NAME_WAS_COLLAPSED)\n }\n\n $element.dequeue()\n })\n\n this._element.trigger($.Event(EVENT_MINIMIZED), this._parent)\n }\n\n toggleMaximize() {\n if (this._parent.hasClass(CLASS_NAME_MAXIMIZED)) {\n this.minimize()\n return\n }\n\n this.maximize()\n }\n\n // Private\n\n _init(card) {\n this._parent = card\n\n $(this).find(this._settings.collapseTrigger).click(() => {\n this.toggle()\n })\n\n $(this).find(this._settings.maximizeTrigger).click(() => {\n this.toggleMaximize()\n })\n\n $(this).find(this._settings.removeTrigger).click(() => {\n this.remove()\n })\n }\n\n // Static\n\n static _jQueryInterface(config) {\n let data = $(this).data(DATA_KEY)\n const _options = $.extend({}, Default, $(this).data())\n\n if (!data) {\n data = new CardWidget($(this), _options)\n $(this).data(DATA_KEY, typeof config === 'string' ? data : config)\n }\n\n if (typeof config === 'string' && /collapse|expand|remove|toggle|maximize|minimize|toggleMaximize/.test(config)) {\n data[config]()\n } else if (typeof config === 'object') {\n data._init($(this))\n }\n }\n}\n\n/**\n * Data API\n * ====================================================\n */\n\n$(document).on('click', SELECTOR_DATA_COLLAPSE, function (event) {\n if (event) {\n event.preventDefault()\n }\n\n CardWidget._jQueryInterface.call($(this), 'toggle')\n})\n\n$(document).on('click', SELECTOR_DATA_REMOVE, function (event) {\n if (event) {\n event.preventDefault()\n }\n\n CardWidget._jQueryInterface.call($(this), 'remove')\n})\n\n$(document).on('click', SELECTOR_DATA_MAXIMIZE, function (event) {\n if (event) {\n event.preventDefault()\n }\n\n CardWidget._jQueryInterface.call($(this), 'toggleMaximize')\n})\n\n/**\n * jQuery API\n * ====================================================\n */\n\n$.fn[NAME] = CardWidget._jQueryInterface\n$.fn[NAME].Constructor = CardWidget\n$.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return CardWidget._jQueryInterface\n}\n\nexport default CardWidget\n","/**\n * --------------------------------------------\n * AdminLTE ControlSidebar.js\n * License MIT\n * --------------------------------------------\n */\n\nimport $ from 'jquery'\n\n/**\n * Constants\n * ====================================================\n */\n\nconst NAME = 'ControlSidebar'\nconst DATA_KEY = 'lte.controlsidebar'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst EVENT_COLLAPSED = `collapsed${EVENT_KEY}`\nconst EVENT_COLLAPSED_DONE = `collapsed-done${EVENT_KEY}`\nconst EVENT_EXPANDED = `expanded${EVENT_KEY}`\n\nconst SELECTOR_CONTROL_SIDEBAR = '.control-sidebar'\nconst SELECTOR_CONTROL_SIDEBAR_CONTENT = '.control-sidebar-content'\nconst SELECTOR_DATA_TOGGLE = '[data-widget=\"control-sidebar\"]'\nconst SELECTOR_HEADER = '.main-header'\nconst SELECTOR_FOOTER = '.main-footer'\n\nconst CLASS_NAME_CONTROL_SIDEBAR_ANIMATE = 'control-sidebar-animate'\nconst CLASS_NAME_CONTROL_SIDEBAR_OPEN = 'control-sidebar-open'\nconst CLASS_NAME_CONTROL_SIDEBAR_SLIDE = 'control-sidebar-slide-open'\nconst CLASS_NAME_LAYOUT_FIXED = 'layout-fixed'\nconst CLASS_NAME_NAVBAR_FIXED = 'layout-navbar-fixed'\nconst CLASS_NAME_NAVBAR_SM_FIXED = 'layout-sm-navbar-fixed'\nconst CLASS_NAME_NAVBAR_MD_FIXED = 'layout-md-navbar-fixed'\nconst CLASS_NAME_NAVBAR_LG_FIXED = 'layout-lg-navbar-fixed'\nconst CLASS_NAME_NAVBAR_XL_FIXED = 'layout-xl-navbar-fixed'\nconst CLASS_NAME_FOOTER_FIXED = 'layout-footer-fixed'\nconst CLASS_NAME_FOOTER_SM_FIXED = 'layout-sm-footer-fixed'\nconst CLASS_NAME_FOOTER_MD_FIXED = 'layout-md-footer-fixed'\nconst CLASS_NAME_FOOTER_LG_FIXED = 'layout-lg-footer-fixed'\nconst CLASS_NAME_FOOTER_XL_FIXED = 'layout-xl-footer-fixed'\n\nconst Default = {\n controlsidebarSlide: true,\n scrollbarTheme: 'os-theme-light',\n scrollbarAutoHide: 'l',\n target: SELECTOR_CONTROL_SIDEBAR,\n animationSpeed: 300\n}\n\n/**\n * Class Definition\n * ====================================================\n */\n\nclass ControlSidebar {\n constructor(element, config) {\n this._element = element\n this._config = config\n }\n\n // Public\n\n collapse() {\n const $body = $('body')\n const $html = $('html')\n\n // Show the control sidebar\n if (this._config.controlsidebarSlide) {\n $html.addClass(CLASS_NAME_CONTROL_SIDEBAR_ANIMATE)\n $body.removeClass(CLASS_NAME_CONTROL_SIDEBAR_SLIDE).delay(300).queue(function () {\n $(SELECTOR_CONTROL_SIDEBAR).hide()\n $html.removeClass(CLASS_NAME_CONTROL_SIDEBAR_ANIMATE)\n $(this).dequeue()\n })\n } else {\n $body.removeClass(CLASS_NAME_CONTROL_SIDEBAR_OPEN)\n }\n\n $(this._element).trigger($.Event(EVENT_COLLAPSED))\n\n setTimeout(() => {\n $(this._element).trigger($.Event(EVENT_COLLAPSED_DONE))\n }, this._config.animationSpeed)\n }\n\n show(toggle = false) {\n const $body = $('body')\n const $html = $('html')\n\n if (toggle) {\n $(SELECTOR_CONTROL_SIDEBAR).hide()\n }\n\n // Collapse the control sidebar\n if (this._config.controlsidebarSlide) {\n $html.addClass(CLASS_NAME_CONTROL_SIDEBAR_ANIMATE)\n $(this._config.target).show().delay(10).queue(function () {\n $body.addClass(CLASS_NAME_CONTROL_SIDEBAR_SLIDE).delay(300).queue(function () {\n $html.removeClass(CLASS_NAME_CONTROL_SIDEBAR_ANIMATE)\n $(this).dequeue()\n })\n $(this).dequeue()\n })\n } else {\n $body.addClass(CLASS_NAME_CONTROL_SIDEBAR_OPEN)\n }\n\n this._fixHeight()\n this._fixScrollHeight()\n\n $(this._element).trigger($.Event(EVENT_EXPANDED))\n }\n\n toggle() {\n const $body = $('body')\n const { target } = this._config\n\n const notVisible = !$(target).is(':visible')\n const shouldClose = ($body.hasClass(CLASS_NAME_CONTROL_SIDEBAR_OPEN) ||\n $body.hasClass(CLASS_NAME_CONTROL_SIDEBAR_SLIDE))\n const shouldToggle = notVisible && ($body.hasClass(CLASS_NAME_CONTROL_SIDEBAR_OPEN) ||\n $body.hasClass(CLASS_NAME_CONTROL_SIDEBAR_SLIDE))\n\n if (notVisible || shouldToggle) {\n // Open the control sidebar\n this.show(notVisible)\n } else if (shouldClose) {\n // Close the control sidebar\n this.collapse()\n }\n }\n\n // Private\n\n _init() {\n const $body = $('body')\n const shouldNotHideAll = $body.hasClass(CLASS_NAME_CONTROL_SIDEBAR_OPEN) ||\n $body.hasClass(CLASS_NAME_CONTROL_SIDEBAR_SLIDE)\n\n if (shouldNotHideAll) {\n $(SELECTOR_CONTROL_SIDEBAR).not(this._config.target).hide()\n $(this._config.target).css('display', 'block')\n } else {\n $(SELECTOR_CONTROL_SIDEBAR).hide()\n }\n\n this._fixHeight()\n this._fixScrollHeight()\n\n $(window).resize(() => {\n this._fixHeight()\n this._fixScrollHeight()\n })\n\n $(window).scroll(() => {\n const $body = $('body')\n const shouldFixHeight = $body.hasClass(CLASS_NAME_CONTROL_SIDEBAR_OPEN) ||\n $body.hasClass(CLASS_NAME_CONTROL_SIDEBAR_SLIDE)\n\n if (shouldFixHeight) {\n this._fixScrollHeight()\n }\n })\n }\n\n _isNavbarFixed() {\n const $body = $('body')\n return (\n $body.hasClass(CLASS_NAME_NAVBAR_FIXED) ||\n $body.hasClass(CLASS_NAME_NAVBAR_SM_FIXED) ||\n $body.hasClass(CLASS_NAME_NAVBAR_MD_FIXED) ||\n $body.hasClass(CLASS_NAME_NAVBAR_LG_FIXED) ||\n $body.hasClass(CLASS_NAME_NAVBAR_XL_FIXED)\n )\n }\n\n _isFooterFixed() {\n const $body = $('body')\n return (\n $body.hasClass(CLASS_NAME_FOOTER_FIXED) ||\n $body.hasClass(CLASS_NAME_FOOTER_SM_FIXED) ||\n $body.hasClass(CLASS_NAME_FOOTER_MD_FIXED) ||\n $body.hasClass(CLASS_NAME_FOOTER_LG_FIXED) ||\n $body.hasClass(CLASS_NAME_FOOTER_XL_FIXED)\n )\n }\n\n _fixScrollHeight() {\n const $body = $('body')\n const $controlSidebar = $(this._config.target)\n\n if (!$body.hasClass(CLASS_NAME_LAYOUT_FIXED)) {\n return\n }\n\n const heights = {\n scroll: $(document).height(),\n window: $(window).height(),\n header: $(SELECTOR_HEADER).outerHeight(),\n footer: $(SELECTOR_FOOTER).outerHeight()\n }\n const positions = {\n bottom: Math.abs((heights.window + $(window).scrollTop()) - heights.scroll),\n top: $(window).scrollTop()\n }\n\n const navbarFixed = this._isNavbarFixed() && $(SELECTOR_HEADER).css('position') === 'fixed'\n\n const footerFixed = this._isFooterFixed() && $(SELECTOR_FOOTER).css('position') === 'fixed'\n\n const $controlsidebarContent = $(`${this._config.target}, ${this._config.target} ${SELECTOR_CONTROL_SIDEBAR_CONTENT}`)\n\n if (positions.top === 0 && positions.bottom === 0) {\n $controlSidebar.css({\n bottom: heights.footer,\n top: heights.header\n })\n $controlsidebarContent.css('height', heights.window - (heights.header + heights.footer))\n } else if (positions.bottom <= heights.footer) {\n if (footerFixed === false) {\n const top = heights.header - positions.top\n $controlSidebar.css('bottom', heights.footer - positions.bottom).css('top', top >= 0 ? top : 0)\n $controlsidebarContent.css('height', heights.window - (heights.footer - positions.bottom))\n } else {\n $controlSidebar.css('bottom', heights.footer)\n }\n } else if (positions.top <= heights.header) {\n if (navbarFixed === false) {\n $controlSidebar.css('top', heights.header - positions.top)\n $controlsidebarContent.css('height', heights.window - (heights.header - positions.top))\n } else {\n $controlSidebar.css('top', heights.header)\n }\n } else if (navbarFixed === false) {\n $controlSidebar.css('top', 0)\n $controlsidebarContent.css('height', heights.window)\n } else {\n $controlSidebar.css('top', heights.header)\n }\n\n if (footerFixed && navbarFixed) {\n $controlsidebarContent.css('height', '100%')\n $controlSidebar.css('height', '')\n } else if (footerFixed || navbarFixed) {\n $controlsidebarContent.css('height', '100%')\n $controlsidebarContent.css('height', '')\n }\n }\n\n _fixHeight() {\n const $body = $('body')\n const $controlSidebar = $(`${this._config.target} ${SELECTOR_CONTROL_SIDEBAR_CONTENT}`)\n\n if (!$body.hasClass(CLASS_NAME_LAYOUT_FIXED)) {\n $controlSidebar.attr('style', '')\n return\n }\n\n const heights = {\n window: $(window).height(),\n header: $(SELECTOR_HEADER).outerHeight(),\n footer: $(SELECTOR_FOOTER).outerHeight()\n }\n\n let sidebarHeight = heights.window - heights.header\n\n if (this._isFooterFixed() && $(SELECTOR_FOOTER).css('position') === 'fixed') {\n sidebarHeight = heights.window - heights.header - heights.footer\n }\n\n $controlSidebar.css('height', sidebarHeight)\n\n if (typeof $.fn.overlayScrollbars !== 'undefined') {\n $controlSidebar.overlayScrollbars({\n className: this._config.scrollbarTheme,\n sizeAutoCapable: true,\n scrollbars: {\n autoHide: this._config.scrollbarAutoHide,\n clickScrolling: true\n }\n })\n }\n }\n\n // Static\n\n static _jQueryInterface(operation) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _options = $.extend({}, Default, $(this).data())\n\n if (!data) {\n data = new ControlSidebar(this, _options)\n $(this).data(DATA_KEY, data)\n }\n\n if (data[operation] === 'undefined') {\n throw new Error(`${operation} is not a function`)\n }\n\n data[operation]()\n })\n }\n}\n\n/**\n *\n * Data Api implementation\n * ====================================================\n */\n$(document).on('click', SELECTOR_DATA_TOGGLE, function (event) {\n event.preventDefault()\n\n ControlSidebar._jQueryInterface.call($(this), 'toggle')\n})\n\n$(document).ready(() => {\n ControlSidebar._jQueryInterface.call($(SELECTOR_DATA_TOGGLE), '_init')\n})\n\n/**\n * jQuery API\n * ====================================================\n */\n\n$.fn[NAME] = ControlSidebar._jQueryInterface\n$.fn[NAME].Constructor = ControlSidebar\n$.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return ControlSidebar._jQueryInterface\n}\n\nexport default ControlSidebar\n","/**\n * --------------------------------------------\n * AdminLTE DirectChat.js\n * License MIT\n * --------------------------------------------\n */\n\nimport $ from 'jquery'\n\n/**\n * Constants\n * ====================================================\n */\n\nconst NAME = 'DirectChat'\nconst DATA_KEY = 'lte.directchat'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst EVENT_TOGGLED = `toggled${EVENT_KEY}`\n\nconst SELECTOR_DATA_TOGGLE = '[data-widget=\"chat-pane-toggle\"]'\nconst SELECTOR_DIRECT_CHAT = '.direct-chat'\n\nconst CLASS_NAME_DIRECT_CHAT_OPEN = 'direct-chat-contacts-open'\n\n/**\n * Class Definition\n * ====================================================\n */\n\nclass DirectChat {\n constructor(element) {\n this._element = element\n }\n\n toggle() {\n $(this._element).parents(SELECTOR_DIRECT_CHAT).first().toggleClass(CLASS_NAME_DIRECT_CHAT_OPEN)\n $(this._element).trigger($.Event(EVENT_TOGGLED))\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n\n if (!data) {\n data = new DirectChat($(this))\n $(this).data(DATA_KEY, data)\n }\n\n data[config]()\n })\n }\n}\n\n/**\n *\n * Data Api implementation\n * ====================================================\n */\n\n$(document).on('click', SELECTOR_DATA_TOGGLE, function (event) {\n if (event) {\n event.preventDefault()\n }\n\n DirectChat._jQueryInterface.call($(this), 'toggle')\n})\n\n/**\n * jQuery API\n * ====================================================\n */\n\n$.fn[NAME] = DirectChat._jQueryInterface\n$.fn[NAME].Constructor = DirectChat\n$.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return DirectChat._jQueryInterface\n}\n\nexport default DirectChat\n","/**\n * --------------------------------------------\n * AdminLTE Dropdown.js\n * License MIT\n * --------------------------------------------\n */\n\nimport $ from 'jquery'\n\n/**\n * Constants\n * ====================================================\n */\n\nconst NAME = 'Dropdown'\nconst DATA_KEY = 'lte.dropdown'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst SELECTOR_NAVBAR = '.navbar'\nconst SELECTOR_DROPDOWN_MENU = '.dropdown-menu'\nconst SELECTOR_DROPDOWN_MENU_ACTIVE = '.dropdown-menu.show'\nconst SELECTOR_DROPDOWN_TOGGLE = '[data-toggle=\"dropdown\"]'\n\nconst CLASS_NAME_DROPDOWN_RIGHT = 'dropdown-menu-right'\nconst CLASS_NAME_DROPDOWN_SUBMENU = 'dropdown-submenu'\n\n// TODO: this is unused; should be removed along with the extend?\nconst Default = {}\n\n/**\n * Class Definition\n * ====================================================\n */\n\nclass Dropdown {\n constructor(element, config) {\n this._config = config\n this._element = element\n }\n\n // Public\n\n toggleSubmenu() {\n this._element.siblings().show().toggleClass('show')\n\n if (!this._element.next().hasClass('show')) {\n this._element.parents(SELECTOR_DROPDOWN_MENU).first().find('.show').removeClass('show').hide()\n }\n\n this._element.parents('li.nav-item.dropdown.show').on('hidden.bs.dropdown', () => {\n $('.dropdown-submenu .show').removeClass('show').hide()\n })\n }\n\n fixPosition() {\n const $element = $(SELECTOR_DROPDOWN_MENU_ACTIVE)\n\n if ($element.length === 0) {\n return\n }\n\n if ($element.hasClass(CLASS_NAME_DROPDOWN_RIGHT)) {\n $element.css({\n left: 'inherit',\n right: 0\n })\n } else {\n $element.css({\n left: 0,\n right: 'inherit'\n })\n }\n\n const offset = $element.offset()\n const width = $element.width()\n const visiblePart = $(window).width() - offset.left\n\n if (offset.left < 0) {\n $element.css({\n left: 'inherit',\n right: offset.left - 5\n })\n } else if (visiblePart < width) {\n $element.css({\n left: 'inherit',\n right: 0\n })\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = $.extend({}, Default, $(this).data())\n\n if (!data) {\n data = new Dropdown($(this), _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (config === 'toggleSubmenu' || config === 'fixPosition') {\n data[config]()\n }\n })\n }\n}\n\n/**\n * Data API\n * ====================================================\n */\n\n$(`${SELECTOR_DROPDOWN_MENU} ${SELECTOR_DROPDOWN_TOGGLE}`).on('click', function (event) {\n event.preventDefault()\n event.stopPropagation()\n\n Dropdown._jQueryInterface.call($(this), 'toggleSubmenu')\n})\n\n$(`${SELECTOR_NAVBAR} ${SELECTOR_DROPDOWN_TOGGLE}`).on('click', event => {\n event.preventDefault()\n\n if ($(event.target).parent().hasClass(CLASS_NAME_DROPDOWN_SUBMENU)) {\n return\n }\n\n setTimeout(function () {\n Dropdown._jQueryInterface.call($(this), 'fixPosition')\n }, 1)\n})\n\n/**\n * jQuery API\n * ====================================================\n */\n\n$.fn[NAME] = Dropdown._jQueryInterface\n$.fn[NAME].Constructor = Dropdown\n$.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Dropdown._jQueryInterface\n}\n\nexport default Dropdown\n","/**\n * --------------------------------------------\n * AdminLTE ExpandableTable.js\n * License MIT\n * --------------------------------------------\n */\n\nimport $ from 'jquery'\n\n/**\n * Constants\n * ====================================================\n */\n\nconst NAME = 'ExpandableTable'\nconst DATA_KEY = 'lte.expandableTable'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst EVENT_EXPANDED = `expanded${EVENT_KEY}`\nconst EVENT_COLLAPSED = `collapsed${EVENT_KEY}`\n\nconst SELECTOR_TABLE = '.expandable-table'\nconst SELECTOR_EXPANDABLE_BODY = '.expandable-body'\nconst SELECTOR_DATA_TOGGLE = '[data-widget=\"expandable-table\"]'\nconst SELECTOR_ARIA_ATTR = 'aria-expanded'\n\n/**\n * Class Definition\n * ====================================================\n */\nclass ExpandableTable {\n constructor(element, options) {\n this._options = options\n this._element = element\n }\n\n // Public\n\n init() {\n $(SELECTOR_DATA_TOGGLE).each((_, $header) => {\n const $type = $($header).attr(SELECTOR_ARIA_ATTR)\n const $body = $($header).next(SELECTOR_EXPANDABLE_BODY).children().first().children()\n if ($type === 'true') {\n $body.show()\n } else if ($type === 'false') {\n $body.hide()\n $body.parent().parent().addClass('d-none')\n }\n })\n }\n\n toggleRow() {\n let $element = this._element\n\n if ($element[0].nodeName !== 'TR') {\n $element = $element.parent()\n if ($element[0].nodeName !== 'TR') {\n $element = $element.parent()\n }\n }\n\n const time = 500\n const $type = $element.attr(SELECTOR_ARIA_ATTR)\n const $body = $element.next(SELECTOR_EXPANDABLE_BODY).children().first().children()\n\n $body.stop()\n if ($type === 'true') {\n $body.slideUp(time, () => {\n $element.next(SELECTOR_EXPANDABLE_BODY).addClass('d-none')\n })\n $element.attr(SELECTOR_ARIA_ATTR, 'false')\n $element.trigger($.Event(EVENT_COLLAPSED))\n } else if ($type === 'false') {\n $element.next(SELECTOR_EXPANDABLE_BODY).removeClass('d-none')\n $body.slideDown(time)\n $element.attr(SELECTOR_ARIA_ATTR, 'true')\n $element.trigger($.Event(EVENT_EXPANDED))\n }\n }\n\n // Static\n\n static _jQueryInterface(operation) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n\n if (!data) {\n data = new ExpandableTable($(this))\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof operation === 'string' && /init|toggleRow/.test(operation)) {\n data[operation]()\n }\n })\n }\n}\n\n/**\n * Data API\n * ====================================================\n */\n$(SELECTOR_TABLE).ready(function () {\n ExpandableTable._jQueryInterface.call($(this), 'init')\n})\n\n$(document).on('click', SELECTOR_DATA_TOGGLE, function () {\n ExpandableTable._jQueryInterface.call($(this), 'toggleRow')\n})\n\n/**\n * jQuery API\n * ====================================================\n */\n\n$.fn[NAME] = ExpandableTable._jQueryInterface\n$.fn[NAME].Constructor = ExpandableTable\n$.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return ExpandableTable._jQueryInterface\n}\n\nexport default ExpandableTable\n","/**\n * --------------------------------------------\n * AdminLTE Fullscreen.js\n * License MIT\n * --------------------------------------------\n */\n\nimport $ from 'jquery'\n\n/**\n * Constants\n * ====================================================\n */\n\nconst NAME = 'Fullscreen'\nconst DATA_KEY = 'lte.fullscreen'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst SELECTOR_DATA_WIDGET = '[data-widget=\"fullscreen\"]'\nconst SELECTOR_ICON = `${SELECTOR_DATA_WIDGET} i`\n\nconst EVENT_FULLSCREEN_CHANGE = 'webkitfullscreenchange mozfullscreenchange fullscreenchange MSFullscreenChange'\n\nconst Default = {\n minimizeIcon: 'fa-compress-arrows-alt',\n maximizeIcon: 'fa-expand-arrows-alt'\n}\n\n/**\n * Class Definition\n * ====================================================\n */\n\nclass Fullscreen {\n constructor(_element, _options) {\n this.element = _element\n this.options = $.extend({}, Default, _options)\n }\n\n // Public\n\n toggle() {\n if (document.fullscreenElement ||\n document.mozFullScreenElement ||\n document.webkitFullscreenElement ||\n document.msFullscreenElement) {\n this.windowed()\n } else {\n this.fullscreen()\n }\n }\n\n toggleIcon() {\n if (document.fullscreenElement ||\n document.mozFullScreenElement ||\n document.webkitFullscreenElement ||\n document.msFullscreenElement) {\n $(SELECTOR_ICON).removeClass(this.options.maximizeIcon).addClass(this.options.minimizeIcon)\n } else {\n $(SELECTOR_ICON).removeClass(this.options.minimizeIcon).addClass(this.options.maximizeIcon)\n }\n }\n\n fullscreen() {\n if (document.documentElement.requestFullscreen) {\n document.documentElement.requestFullscreen()\n } else if (document.documentElement.webkitRequestFullscreen) {\n document.documentElement.webkitRequestFullscreen()\n } else if (document.documentElement.msRequestFullscreen) {\n document.documentElement.msRequestFullscreen()\n }\n }\n\n windowed() {\n if (document.exitFullscreen) {\n document.exitFullscreen()\n } else if (document.webkitExitFullscreen) {\n document.webkitExitFullscreen()\n } else if (document.msExitFullscreen) {\n document.msExitFullscreen()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n let data = $(this).data(DATA_KEY)\n\n if (!data) {\n data = $(this).data()\n }\n\n const _options = $.extend({}, Default, typeof config === 'object' ? config : data)\n const plugin = new Fullscreen($(this), _options)\n\n $(this).data(DATA_KEY, typeof config === 'object' ? config : data)\n\n if (typeof config === 'string' && /toggle|toggleIcon|fullscreen|windowed/.test(config)) {\n plugin[config]()\n } else {\n plugin.init()\n }\n }\n}\n\n/**\n * Data API\n * ====================================================\n */\n$(document).on('click', SELECTOR_DATA_WIDGET, function () {\n Fullscreen._jQueryInterface.call($(this), 'toggle')\n})\n\n$(document).on(EVENT_FULLSCREEN_CHANGE, () => {\n Fullscreen._jQueryInterface.call($(SELECTOR_DATA_WIDGET), 'toggleIcon')\n})\n\n/**\n * jQuery API\n * ====================================================\n */\n\n$.fn[NAME] = Fullscreen._jQueryInterface\n$.fn[NAME].Constructor = Fullscreen\n$.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Fullscreen._jQueryInterface\n}\n\nexport default Fullscreen\n","/**\n * --------------------------------------------\n * AdminLTE IFrame.js\n * License MIT\n * --------------------------------------------\n */\n\nimport $ from 'jquery'\n\n/**\n * Constants\n * ====================================================\n */\n\nconst NAME = 'IFrame'\nconst DATA_KEY = 'lte.iframe'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst SELECTOR_DATA_TOGGLE = '[data-widget=\"iframe\"]'\nconst SELECTOR_DATA_TOGGLE_CLOSE = '[data-widget=\"iframe-close\"]'\nconst SELECTOR_DATA_TOGGLE_SCROLL_LEFT = '[data-widget=\"iframe-scrollleft\"]'\nconst SELECTOR_DATA_TOGGLE_SCROLL_RIGHT = '[data-widget=\"iframe-scrollright\"]'\nconst SELECTOR_DATA_TOGGLE_FULLSCREEN = '[data-widget=\"iframe-fullscreen\"]'\nconst SELECTOR_CONTENT_WRAPPER = '.content-wrapper'\nconst SELECTOR_CONTENT_IFRAME = `${SELECTOR_CONTENT_WRAPPER} iframe`\nconst SELECTOR_TAB_NAV = `${SELECTOR_CONTENT_WRAPPER}.iframe-mode .nav`\nconst SELECTOR_TAB_NAVBAR_NAV = `${SELECTOR_CONTENT_WRAPPER}.iframe-mode .navbar-nav`\nconst SELECTOR_TAB_NAVBAR_NAV_ITEM = `${SELECTOR_TAB_NAVBAR_NAV} .nav-item`\nconst SELECTOR_TAB_NAVBAR_NAV_LINK = `${SELECTOR_TAB_NAVBAR_NAV} .nav-link`\nconst SELECTOR_TAB_CONTENT = `${SELECTOR_CONTENT_WRAPPER}.iframe-mode .tab-content`\nconst SELECTOR_TAB_EMPTY = `${SELECTOR_TAB_CONTENT} .tab-empty`\nconst SELECTOR_TAB_LOADING = `${SELECTOR_TAB_CONTENT} .tab-loading`\nconst SELECTOR_TAB_PANE = `${SELECTOR_TAB_CONTENT} .tab-pane`\nconst SELECTOR_SIDEBAR_MENU_ITEM = '.main-sidebar .nav-item > a.nav-link'\nconst SELECTOR_SIDEBAR_SEARCH_ITEM = '.sidebar-search-results .list-group-item'\nconst SELECTOR_HEADER_MENU_ITEM = '.main-header .nav-item a.nav-link'\nconst SELECTOR_HEADER_DROPDOWN_ITEM = '.main-header a.dropdown-item'\nconst CLASS_NAME_IFRAME_MODE = 'iframe-mode'\nconst CLASS_NAME_FULLSCREEN_MODE = 'iframe-mode-fullscreen'\n\nconst Default = {\n onTabClick(item) {\n return item\n },\n onTabChanged(item) {\n return item\n },\n onTabCreated(item) {\n return item\n },\n autoIframeMode: true,\n autoItemActive: true,\n autoShowNewTab: true,\n autoDarkMode: false,\n allowDuplicates: false,\n allowReload: true,\n loadingScreen: true,\n useNavbarItems: true,\n scrollOffset: 40,\n scrollBehaviorSwap: false,\n iconMaximize: 'fa-expand',\n iconMinimize: 'fa-compress'\n}\n\n/**\n * Class Definition\n * ====================================================\n */\n\nclass IFrame {\n constructor(element, config) {\n this._config = config\n this._element = element\n this._init()\n }\n\n // Public\n\n onTabClick(item) {\n this._config.onTabClick(item)\n }\n\n onTabChanged(item) {\n this._config.onTabChanged(item)\n }\n\n onTabCreated(item) {\n this._config.onTabCreated(item)\n }\n\n createTab(title, link, uniqueName, autoOpen) {\n let tabId = `panel-${uniqueName}`\n let navId = `tab-${uniqueName}`\n\n if (this._config.allowDuplicates) {\n tabId += `-${Math.floor(Math.random() * 1000)}`\n navId += `-${Math.floor(Math.random() * 1000)}`\n }\n\n const newNavItem = `<li class=\"nav-item\" role=\"presentation\"><a href=\"#\" class=\"btn-iframe-close\" data-widget=\"iframe-close\" data-type=\"only-this\"><i class=\"fas fa-times\"></i></a><a class=\"nav-link\" data-toggle=\"row\" id=\"${navId}\" href=\"#${tabId}\" role=\"tab\" aria-controls=\"${tabId}\" aria-selected=\"false\">${title}</a></li>`\n $(SELECTOR_TAB_NAVBAR_NAV).append(unescape(escape(newNavItem)))\n\n const newTabItem = `<div class=\"tab-pane fade\" id=\"${tabId}\" role=\"tabpanel\" aria-labelledby=\"${navId}\"><iframe src=\"${link}\"></iframe></div>`\n $(SELECTOR_TAB_CONTENT).append(unescape(escape(newTabItem)))\n\n if (autoOpen) {\n if (this._config.loadingScreen) {\n const $loadingScreen = $(SELECTOR_TAB_LOADING)\n $loadingScreen.fadeIn()\n $(`${tabId} iframe`).ready(() => {\n if (typeof this._config.loadingScreen === 'number') {\n this.switchTab(`#${navId}`)\n setTimeout(() => {\n $loadingScreen.fadeOut()\n }, this._config.loadingScreen)\n } else {\n this.switchTab(`#${navId}`)\n $loadingScreen.fadeOut()\n }\n })\n } else {\n this.switchTab(`#${navId}`)\n }\n }\n\n this.onTabCreated($(`#${navId}`))\n }\n\n openTabSidebar(item, autoOpen = this._config.autoShowNewTab) {\n let $item = $(item).clone()\n if ($item.attr('href') === undefined) {\n $item = $(item).parent('a').clone()\n }\n\n $item.find('.right, .search-path').remove()\n let title = $item.find('p').text()\n if (title === '') {\n title = $item.text()\n }\n\n const link = $item.attr('href')\n if (link === '#' || link === '' || link === undefined) {\n return\n }\n\n const uniqueName = unescape(link).replace('./', '').replace(/[\"#&'./:=?[\\]]/gi, '-').replace(/(--)/gi, '')\n const navId = `tab-${uniqueName}`\n\n if (!this._config.allowDuplicates && $(`#${navId}`).length > 0) {\n return this.switchTab(`#${navId}`, this._config.allowReload)\n }\n\n if ((!this._config.allowDuplicates && $(`#${navId}`).length === 0) || this._config.allowDuplicates) {\n this.createTab(title, link, uniqueName, autoOpen)\n }\n }\n\n switchTab(item, reload = false) {\n const $item = $(item)\n const tabId = $item.attr('href')\n\n $(SELECTOR_TAB_EMPTY).hide()\n\n if (reload) {\n const $loadingScreen = $(SELECTOR_TAB_LOADING)\n if (this._config.loadingScreen) {\n $loadingScreen.show(0, () => {\n $(`${tabId} iframe`).attr('src', $(`${tabId} iframe`).attr('src')).ready(() => {\n if (this._config.loadingScreen) {\n if (typeof this._config.loadingScreen === 'number') {\n setTimeout(() => {\n $loadingScreen.fadeOut()\n }, this._config.loadingScreen)\n } else {\n $loadingScreen.fadeOut()\n }\n }\n })\n })\n } else {\n $(`${tabId} iframe`).attr('src', $(`${tabId} iframe`).attr('src'))\n }\n }\n\n $(`${SELECTOR_TAB_NAVBAR_NAV} .active`).tab('dispose').removeClass('active')\n\n this._fixHeight()\n\n $item.tab('show')\n $item.parents('li').addClass('active')\n this.onTabChanged($item)\n\n if (this._config.autoItemActive) {\n this._setItemActive($(`${tabId} iframe`).attr('src'))\n }\n }\n\n removeActiveTab(type, element) {\n if (type == 'all') {\n $(SELECTOR_TAB_NAVBAR_NAV_ITEM).remove()\n $(SELECTOR_TAB_PANE).remove()\n $(SELECTOR_TAB_EMPTY).show()\n } else if (type == 'all-other') {\n $(`${SELECTOR_TAB_NAVBAR_NAV_ITEM}:not(.active)`).remove()\n $(`${SELECTOR_TAB_PANE}:not(.active)`).remove()\n } else if (type == 'only-this') {\n const $navClose = $(element)\n const $navItem = $navClose.parent('.nav-item')\n const $navItemParent = $navItem.parent()\n const navItemIndex = $navItem.index()\n const tabId = $navClose.siblings('.nav-link').attr('aria-controls')\n $navItem.remove()\n $(`#${tabId}`).remove()\n if ($(SELECTOR_TAB_CONTENT).children().length == $(`${SELECTOR_TAB_EMPTY}, ${SELECTOR_TAB_LOADING}`).length) {\n $(SELECTOR_TAB_EMPTY).show()\n } else {\n const prevNavItemIndex = navItemIndex - 1\n this.switchTab($navItemParent.children().eq(prevNavItemIndex).find('a.nav-link'))\n }\n } else {\n const $navItem = $(`${SELECTOR_TAB_NAVBAR_NAV_ITEM}.active`)\n const $navItemParent = $navItem.parent()\n const navItemIndex = $navItem.index()\n $navItem.remove()\n $(`${SELECTOR_TAB_PANE}.active`).remove()\n if ($(SELECTOR_TAB_CONTENT).children().length == $(`${SELECTOR_TAB_EMPTY}, ${SELECTOR_TAB_LOADING}`).length) {\n $(SELECTOR_TAB_EMPTY).show()\n } else {\n const prevNavItemIndex = navItemIndex - 1\n this.switchTab($navItemParent.children().eq(prevNavItemIndex).find('a.nav-link'))\n }\n }\n }\n\n toggleFullscreen() {\n if ($('body').hasClass(CLASS_NAME_FULLSCREEN_MODE)) {\n $(`${SELECTOR_DATA_TOGGLE_FULLSCREEN} i`).removeClass(this._config.iconMinimize).addClass(this._config.iconMaximize)\n $('body').removeClass(CLASS_NAME_FULLSCREEN_MODE)\n $(`${SELECTOR_TAB_EMPTY}, ${SELECTOR_TAB_LOADING}`).height('100%')\n $(SELECTOR_CONTENT_WRAPPER).height('100%')\n $(SELECTOR_CONTENT_IFRAME).height('100%')\n } else {\n $(`${SELECTOR_DATA_TOGGLE_FULLSCREEN} i`).removeClass(this._config.iconMaximize).addClass(this._config.iconMinimize)\n $('body').addClass(CLASS_NAME_FULLSCREEN_MODE)\n }\n\n $(window).trigger('resize')\n this._fixHeight(true)\n }\n\n // Private\n\n _init() {\n const usingDefTab = ($(SELECTOR_TAB_CONTENT).children().length > 2)\n\n this._setupListeners()\n this._fixHeight(true)\n\n if (usingDefTab) {\n const $el = $(`${SELECTOR_TAB_PANE}`).first()\n // eslint-disable-next-line no-console\n console.log($el)\n const uniqueName = $el.attr('id').replace('panel-', '')\n const navId = `#tab-${uniqueName}`\n\n this.switchTab(navId, true)\n }\n }\n\n _initFrameElement() {\n if (window.frameElement && this._config.autoIframeMode) {\n const $body = $('body')\n $body.addClass(CLASS_NAME_IFRAME_MODE)\n\n if (this._config.autoDarkMode) {\n $body.addClass('dark-mode')\n }\n }\n }\n\n _navScroll(offset) {\n const leftPos = $(SELECTOR_TAB_NAVBAR_NAV).scrollLeft()\n $(SELECTOR_TAB_NAVBAR_NAV).animate({ scrollLeft: (leftPos + offset) }, 250, 'linear')\n }\n\n _setupListeners() {\n $(window).on('resize', () => {\n setTimeout(() => {\n this._fixHeight()\n }, 1)\n })\n if ($(SELECTOR_CONTENT_WRAPPER).hasClass(CLASS_NAME_IFRAME_MODE)) {\n $(document).on('click', `${SELECTOR_SIDEBAR_MENU_ITEM}, ${SELECTOR_SIDEBAR_SEARCH_ITEM}`, e => {\n e.preventDefault()\n this.openTabSidebar(e.target)\n })\n if (this._config.useNavbarItems) {\n $(document).on('click', `${SELECTOR_HEADER_MENU_ITEM}, ${SELECTOR_HEADER_DROPDOWN_ITEM}`, e => {\n e.preventDefault()\n this.openTabSidebar(e.target)\n })\n }\n }\n\n $(document).on('click', SELECTOR_TAB_NAVBAR_NAV_LINK, e => {\n e.preventDefault()\n this.onTabClick(e.target)\n this.switchTab(e.target)\n })\n $(document).on('click', SELECTOR_TAB_NAVBAR_NAV_LINK, e => {\n e.preventDefault()\n this.onTabClick(e.target)\n this.switchTab(e.target)\n })\n $(document).on('click', SELECTOR_DATA_TOGGLE_CLOSE, e => {\n e.preventDefault()\n let { target } = e\n\n if (target.nodeName == 'I') {\n target = e.target.offsetParent\n }\n\n this.removeActiveTab(target.attributes['data-type'] ? target.attributes['data-type'].nodeValue : null, target)\n })\n $(document).on('click', SELECTOR_DATA_TOGGLE_FULLSCREEN, e => {\n e.preventDefault()\n this.toggleFullscreen()\n })\n let mousedown = false\n let mousedownInterval = null\n $(document).on('mousedown', SELECTOR_DATA_TOGGLE_SCROLL_LEFT, e => {\n e.preventDefault()\n clearInterval(mousedownInterval)\n\n let { scrollOffset } = this._config\n\n if (!this._config.scrollBehaviorSwap) {\n scrollOffset = -scrollOffset\n }\n\n mousedown = true\n this._navScroll(scrollOffset)\n\n mousedownInterval = setInterval(() => {\n this._navScroll(scrollOffset)\n }, 250)\n })\n $(document).on('mousedown', SELECTOR_DATA_TOGGLE_SCROLL_RIGHT, e => {\n e.preventDefault()\n clearInterval(mousedownInterval)\n\n let { scrollOffset } = this._config\n\n if (this._config.scrollBehaviorSwap) {\n scrollOffset = -scrollOffset\n }\n\n mousedown = true\n this._navScroll(scrollOffset)\n\n mousedownInterval = setInterval(() => {\n this._navScroll(scrollOffset)\n }, 250)\n })\n $(document).on('mouseup', () => {\n if (mousedown) {\n mousedown = false\n clearInterval(mousedownInterval)\n mousedownInterval = null\n }\n })\n }\n\n _setItemActive(href) {\n $(`${SELECTOR_SIDEBAR_MENU_ITEM}, ${SELECTOR_HEADER_DROPDOWN_ITEM}`).removeClass('active')\n $(SELECTOR_HEADER_MENU_ITEM).parent().removeClass('active')\n\n const $headerMenuItem = $(`${SELECTOR_HEADER_MENU_ITEM}[href$=\"${href}\"]`)\n const $headerDropdownItem = $(`${SELECTOR_HEADER_DROPDOWN_ITEM}[href$=\"${href}\"]`)\n const $sidebarMenuItem = $(`${SELECTOR_SIDEBAR_MENU_ITEM}[href$=\"${href}\"]`)\n\n $headerMenuItem.each((i, e) => {\n $(e).parent().addClass('active')\n })\n $headerDropdownItem.each((i, e) => {\n $(e).addClass('active')\n })\n $sidebarMenuItem.each((i, e) => {\n $(e).addClass('active')\n $(e).parents('.nav-treeview').prevAll('.nav-link').addClass('active')\n })\n }\n\n _fixHeight(tabEmpty = false) {\n if ($('body').hasClass(CLASS_NAME_FULLSCREEN_MODE)) {\n const windowHeight = $(window).height()\n const navbarHeight = $(SELECTOR_TAB_NAV).outerHeight()\n $(`${SELECTOR_TAB_EMPTY}, ${SELECTOR_TAB_LOADING}, ${SELECTOR_CONTENT_IFRAME}`).height(windowHeight - navbarHeight)\n $(SELECTOR_CONTENT_WRAPPER).height(windowHeight)\n } else {\n const contentWrapperHeight = parseFloat($(SELECTOR_CONTENT_WRAPPER).css('height'))\n const navbarHeight = $(SELECTOR_TAB_NAV).outerHeight()\n if (tabEmpty == true) {\n setTimeout(() => {\n $(`${SELECTOR_TAB_EMPTY}, ${SELECTOR_TAB_LOADING}`).height(contentWrapperHeight - navbarHeight)\n }, 50)\n } else {\n $(SELECTOR_CONTENT_IFRAME).height(contentWrapperHeight - navbarHeight)\n }\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n if ($(SELECTOR_DATA_TOGGLE).length > 0) {\n let data = $(this).data(DATA_KEY)\n\n if (!data) {\n data = $(this).data()\n }\n\n const _options = $.extend({}, Default, typeof config === 'object' ? config : data)\n localStorage.setItem('AdminLTE:IFrame:Options', JSON.stringify(_options))\n\n const plugin = new IFrame($(this), _options)\n\n $(this).data(DATA_KEY, typeof config === 'object' ? config : data)\n\n if (typeof config === 'string' && /createTab|openTabSidebar|switchTab|removeActiveTab/.test(config)) {\n plugin[config]()\n }\n } else {\n new IFrame($(this), JSON.parse(localStorage.getItem('AdminLTE:IFrame:Options')))._initFrameElement()\n }\n }\n}\n\n/**\n * Data API\n * ====================================================\n */\n\n$(window).on('load', () => {\n IFrame._jQueryInterface.call($(SELECTOR_DATA_TOGGLE))\n})\n\n/**\n * jQuery API\n * ====================================================\n */\n\n$.fn[NAME] = IFrame._jQueryInterface\n$.fn[NAME].Constructor = IFrame\n$.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return IFrame._jQueryInterface\n}\n\nexport default IFrame\n","/**\n * --------------------------------------------\n * AdminLTE Layout.js\n * License MIT\n * --------------------------------------------\n */\n\nimport $ from 'jquery'\n\n/**\n * Constants\n * ====================================================\n */\n\nconst NAME = 'Layout'\nconst DATA_KEY = 'lte.layout'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst SELECTOR_HEADER = '.main-header'\nconst SELECTOR_MAIN_SIDEBAR = '.main-sidebar'\nconst SELECTOR_SIDEBAR = '.main-sidebar .sidebar'\nconst SELECTOR_CONTENT = '.content-wrapper'\nconst SELECTOR_CONTROL_SIDEBAR_CONTENT = '.control-sidebar-content'\nconst SELECTOR_CONTROL_SIDEBAR_BTN = '[data-widget=\"control-sidebar\"]'\nconst SELECTOR_FOOTER = '.main-footer'\nconst SELECTOR_PUSHMENU_BTN = '[data-widget=\"pushmenu\"]'\nconst SELECTOR_LOGIN_BOX = '.login-box'\nconst SELECTOR_REGISTER_BOX = '.register-box'\nconst SELECTOR_PRELOADER = '.preloader'\n\nconst CLASS_NAME_SIDEBAR_COLLAPSED = 'sidebar-collapse'\nconst CLASS_NAME_SIDEBAR_FOCUSED = 'sidebar-focused'\nconst CLASS_NAME_LAYOUT_FIXED = 'layout-fixed'\nconst CLASS_NAME_CONTROL_SIDEBAR_SLIDE_OPEN = 'control-sidebar-slide-open'\nconst CLASS_NAME_CONTROL_SIDEBAR_OPEN = 'control-sidebar-open'\nconst CLASS_NAME_IFRAME_MODE = 'iframe-mode'\n\nconst Default = {\n scrollbarTheme: 'os-theme-light',\n scrollbarAutoHide: 'l',\n panelAutoHeight: true,\n panelAutoHeightMode: 'min-height',\n preloadDuration: 200,\n loginRegisterAutoHeight: true\n}\n\n/**\n * Class Definition\n * ====================================================\n */\n\nclass Layout {\n constructor(element, config) {\n this._config = config\n this._element = element\n }\n\n // Public\n\n fixLayoutHeight(extra = null) {\n const $body = $('body')\n let controlSidebar = 0\n\n if ($body.hasClass(CLASS_NAME_CONTROL_SIDEBAR_SLIDE_OPEN) || $body.hasClass(CLASS_NAME_CONTROL_SIDEBAR_OPEN) || extra === 'control_sidebar') {\n controlSidebar = $(SELECTOR_CONTROL_SIDEBAR_CONTENT).outerHeight()\n }\n\n const heights = {\n window: $(window).height(),\n header: $(SELECTOR_HEADER).length > 0 ? $(SELECTOR_HEADER).outerHeight() : 0,\n footer: $(SELECTOR_FOOTER).length > 0 ? $(SELECTOR_FOOTER).outerHeight() : 0,\n sidebar: $(SELECTOR_SIDEBAR).length > 0 ? $(SELECTOR_SIDEBAR).height() : 0,\n controlSidebar\n }\n\n const max = this._max(heights)\n let offset = this._config.panelAutoHeight\n\n if (offset === true) {\n offset = 0\n }\n\n const $contentSelector = $(SELECTOR_CONTENT)\n\n if (offset !== false) {\n if (max === heights.controlSidebar) {\n $contentSelector.css(this._config.panelAutoHeightMode, (max + offset))\n } else if (max === heights.window) {\n $contentSelector.css(this._config.panelAutoHeightMode, (max + offset) - heights.header - heights.footer)\n } else {\n $contentSelector.css(this._config.panelAutoHeightMode, (max + offset) - heights.header)\n }\n\n if (this._isFooterFixed()) {\n $contentSelector.css(this._config.panelAutoHeightMode, parseFloat($contentSelector.css(this._config.panelAutoHeightMode)) + heights.footer)\n }\n }\n\n if (!$body.hasClass(CLASS_NAME_LAYOUT_FIXED)) {\n return\n }\n\n if (typeof $.fn.overlayScrollbars !== 'undefined') {\n $(SELECTOR_SIDEBAR).overlayScrollbars({\n className: this._config.scrollbarTheme,\n sizeAutoCapable: true,\n scrollbars: {\n autoHide: this._config.scrollbarAutoHide,\n clickScrolling: true\n }\n })\n } else {\n $(SELECTOR_SIDEBAR).css('overflow-y', 'auto')\n }\n }\n\n fixLoginRegisterHeight() {\n const $body = $('body')\n const $selector = $(`${SELECTOR_LOGIN_BOX}, ${SELECTOR_REGISTER_BOX}`)\n\n if ($body.hasClass(CLASS_NAME_IFRAME_MODE)) {\n $body.css('height', '100%')\n $('.wrapper').css('height', '100%')\n $('html').css('height', '100%')\n } else if ($selector.length === 0) {\n $body.css('height', 'auto')\n $('html').css('height', 'auto')\n } else {\n const boxHeight = $selector.height()\n\n if ($body.css(this._config.panelAutoHeightMode) !== boxHeight) {\n $body.css(this._config.panelAutoHeightMode, boxHeight)\n }\n }\n }\n\n // Private\n\n _init() {\n // Activate layout height watcher\n this.fixLayoutHeight()\n\n if (this._config.loginRegisterAutoHeight === true) {\n this.fixLoginRegisterHeight()\n } else if (this._config.loginRegisterAutoHeight === parseInt(this._config.loginRegisterAutoHeight, 10)) {\n setInterval(this.fixLoginRegisterHeight, this._config.loginRegisterAutoHeight)\n }\n\n $(SELECTOR_SIDEBAR)\n .on('collapsed.lte.treeview expanded.lte.treeview', () => {\n this.fixLayoutHeight()\n })\n\n $(SELECTOR_MAIN_SIDEBAR)\n .on('mouseenter mouseleave', () => {\n if ($('body').hasClass(CLASS_NAME_SIDEBAR_COLLAPSED)) {\n this.fixLayoutHeight()\n }\n })\n\n $(SELECTOR_PUSHMENU_BTN)\n .on('collapsed.lte.pushmenu shown.lte.pushmenu', () => {\n setTimeout(() => {\n this.fixLayoutHeight()\n }, 300)\n })\n\n $(SELECTOR_CONTROL_SIDEBAR_BTN)\n .on('collapsed.lte.controlsidebar', () => {\n this.fixLayoutHeight()\n })\n .on('expanded.lte.controlsidebar', () => {\n this.fixLayoutHeight('control_sidebar')\n })\n\n $(window).resize(() => {\n this.fixLayoutHeight()\n })\n\n setTimeout(() => {\n $('body.hold-transition').removeClass('hold-transition')\n }, 50)\n\n setTimeout(() => {\n const $preloader = $(SELECTOR_PRELOADER)\n if ($preloader) {\n $preloader.css('height', 0)\n setTimeout(() => {\n $preloader.children().hide()\n }, 200)\n }\n }, this._config.preloadDuration)\n }\n\n _max(numbers) {\n // Calculate the maximum number in a list\n let max = 0\n\n Object.keys(numbers).forEach(key => {\n if (numbers[key] > max) {\n max = numbers[key]\n }\n })\n\n return max\n }\n\n _isFooterFixed() {\n return $(SELECTOR_FOOTER).css('position') === 'fixed'\n }\n\n // Static\n\n static _jQueryInterface(config = '') {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _options = $.extend({}, Default, $(this).data())\n\n if (!data) {\n data = new Layout($(this), _options)\n $(this).data(DATA_KEY, data)\n }\n\n if (config === 'init' || config === '') {\n data._init()\n } else if (config === 'fixLayoutHeight' || config === 'fixLoginRegisterHeight') {\n data[config]()\n }\n })\n }\n}\n\n/**\n * Data API\n * ====================================================\n */\n\n$(window).on('load', () => {\n Layout._jQueryInterface.call($('body'))\n})\n\n$(`${SELECTOR_SIDEBAR} a`)\n .on('focusin', () => {\n $(SELECTOR_MAIN_SIDEBAR).addClass(CLASS_NAME_SIDEBAR_FOCUSED)\n })\n .on('focusout', () => {\n $(SELECTOR_MAIN_SIDEBAR).removeClass(CLASS_NAME_SIDEBAR_FOCUSED)\n })\n\n/**\n * jQuery API\n * ====================================================\n */\n\n$.fn[NAME] = Layout._jQueryInterface\n$.fn[NAME].Constructor = Layout\n$.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Layout._jQueryInterface\n}\n\nexport default Layout\n","/**\n * --------------------------------------------\n * AdminLTE PushMenu.js\n * License MIT\n * --------------------------------------------\n */\n\nimport $ from 'jquery'\n\n/**\n * Constants\n * ====================================================\n */\n\nconst NAME = 'PushMenu'\nconst DATA_KEY = 'lte.pushmenu'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst EVENT_COLLAPSED = `collapsed${EVENT_KEY}`\nconst EVENT_COLLAPSED_DONE = `collapsed-done${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\n\nconst SELECTOR_TOGGLE_BUTTON = '[data-widget=\"pushmenu\"]'\nconst SELECTOR_BODY = 'body'\nconst SELECTOR_OVERLAY = '#sidebar-overlay'\nconst SELECTOR_WRAPPER = '.wrapper'\n\nconst CLASS_NAME_COLLAPSED = 'sidebar-collapse'\nconst CLASS_NAME_OPEN = 'sidebar-open'\nconst CLASS_NAME_IS_OPENING = 'sidebar-is-opening'\nconst CLASS_NAME_CLOSED = 'sidebar-closed'\n\nconst Default = {\n autoCollapseSize: 992,\n enableRemember: false,\n noTransitionAfterReload: true,\n animationSpeed: 300\n}\n\n/**\n * Class Definition\n * ====================================================\n */\n\nclass PushMenu {\n constructor(element, options) {\n this._element = element\n this._options = $.extend({}, Default, options)\n\n if ($(SELECTOR_OVERLAY).length === 0) {\n this._addOverlay()\n }\n\n this._init()\n }\n\n // Public\n\n expand() {\n const $bodySelector = $(SELECTOR_BODY)\n\n if (this._options.autoCollapseSize && $(window).width() <= this._options.autoCollapseSize) {\n $bodySelector.addClass(CLASS_NAME_OPEN)\n }\n\n $bodySelector.addClass(CLASS_NAME_IS_OPENING).removeClass(`${CLASS_NAME_COLLAPSED} ${CLASS_NAME_CLOSED}`).delay(50).queue(function () {\n $bodySelector.removeClass(CLASS_NAME_IS_OPENING)\n $(this).dequeue()\n })\n\n if (this._options.enableRemember) {\n localStorage.setItem(`remember${EVENT_KEY}`, CLASS_NAME_OPEN)\n }\n\n $(this._element).trigger($.Event(EVENT_SHOWN))\n }\n\n collapse() {\n const $bodySelector = $(SELECTOR_BODY)\n\n if (this._options.autoCollapseSize && $(window).width() <= this._options.autoCollapseSize) {\n $bodySelector.removeClass(CLASS_NAME_OPEN).addClass(CLASS_NAME_CLOSED)\n }\n\n $bodySelector.addClass(CLASS_NAME_COLLAPSED)\n\n if (this._options.enableRemember) {\n localStorage.setItem(`remember${EVENT_KEY}`, CLASS_NAME_COLLAPSED)\n }\n\n $(this._element).trigger($.Event(EVENT_COLLAPSED))\n\n setTimeout(() => {\n $(this._element).trigger($.Event(EVENT_COLLAPSED_DONE))\n }, this._options.animationSpeed)\n }\n\n toggle() {\n if ($(SELECTOR_BODY).hasClass(CLASS_NAME_COLLAPSED)) {\n this.expand()\n } else {\n this.collapse()\n }\n }\n\n autoCollapse(resize = false) {\n if (!this._options.autoCollapseSize) {\n return\n }\n\n const $bodySelector = $(SELECTOR_BODY)\n\n if ($(window).width() <= this._options.autoCollapseSize) {\n if (!$bodySelector.hasClass(CLASS_NAME_OPEN)) {\n this.collapse()\n }\n } else if (resize === true) {\n if ($bodySelector.hasClass(CLASS_NAME_OPEN)) {\n $bodySelector.removeClass(CLASS_NAME_OPEN)\n } else if ($bodySelector.hasClass(CLASS_NAME_CLOSED)) {\n this.expand()\n }\n }\n }\n\n remember() {\n if (!this._options.enableRemember) {\n return\n }\n\n const $body = $('body')\n const toggleState = localStorage.getItem(`remember${EVENT_KEY}`)\n\n if (toggleState === CLASS_NAME_COLLAPSED) {\n if (this._options.noTransitionAfterReload) {\n $body.addClass('hold-transition').addClass(CLASS_NAME_COLLAPSED).delay(50).queue(function () {\n $(this).removeClass('hold-transition')\n $(this).dequeue()\n })\n } else {\n $body.addClass(CLASS_NAME_COLLAPSED)\n }\n } else if (this._options.noTransitionAfterReload) {\n $body.addClass('hold-transition').removeClass(CLASS_NAME_COLLAPSED).delay(50).queue(function () {\n $(this).removeClass('hold-transition')\n $(this).dequeue()\n })\n } else {\n $body.removeClass(CLASS_NAME_COLLAPSED)\n }\n }\n\n // Private\n\n _init() {\n this.remember()\n this.autoCollapse()\n\n $(window).resize(() => {\n this.autoCollapse(true)\n })\n }\n\n _addOverlay() {\n const overlay = $('<div />', {\n id: 'sidebar-overlay'\n })\n\n overlay.on('click', () => {\n this.collapse()\n })\n\n $(SELECTOR_WRAPPER).append(overlay)\n }\n\n // Static\n\n static _jQueryInterface(operation) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _options = $.extend({}, Default, $(this).data())\n\n if (!data) {\n data = new PushMenu(this, _options)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof operation === 'string' && /collapse|expand|toggle/.test(operation)) {\n data[operation]()\n }\n })\n }\n}\n\n/**\n * Data API\n * ====================================================\n */\n\n$(document).on('click', SELECTOR_TOGGLE_BUTTON, event => {\n event.preventDefault()\n\n let button = event.currentTarget\n\n if ($(button).data('widget') !== 'pushmenu') {\n button = $(button).closest(SELECTOR_TOGGLE_BUTTON)\n }\n\n PushMenu._jQueryInterface.call($(button), 'toggle')\n})\n\n$(window).on('load', () => {\n PushMenu._jQueryInterface.call($(SELECTOR_TOGGLE_BUTTON))\n})\n\n/**\n * jQuery API\n * ====================================================\n */\n\n$.fn[NAME] = PushMenu._jQueryInterface\n$.fn[NAME].Constructor = PushMenu\n$.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return PushMenu._jQueryInterface\n}\n\nexport default PushMenu\n","/**\n * --------------------------------------------\n * AdminLTE SidebarSearch.js\n * License MIT\n * --------------------------------------------\n */\n\nimport $, { trim } from 'jquery'\n\n/**\n * Constants\n * ====================================================\n */\n\nconst NAME = 'SidebarSearch'\nconst DATA_KEY = 'lte.sidebar-search'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst CLASS_NAME_OPEN = 'sidebar-search-open'\nconst CLASS_NAME_ICON_SEARCH = 'fa-search'\nconst CLASS_NAME_ICON_CLOSE = 'fa-times'\nconst CLASS_NAME_HEADER = 'nav-header'\nconst CLASS_NAME_SEARCH_RESULTS = 'sidebar-search-results'\nconst CLASS_NAME_LIST_GROUP = 'list-group'\n\nconst SELECTOR_DATA_WIDGET = '[data-widget=\"sidebar-search\"]'\nconst SELECTOR_SIDEBAR = '.main-sidebar .nav-sidebar'\nconst SELECTOR_NAV_LINK = '.nav-link'\nconst SELECTOR_NAV_TREEVIEW = '.nav-treeview'\nconst SELECTOR_SEARCH_INPUT = `${SELECTOR_DATA_WIDGET} .form-control`\nconst SELECTOR_SEARCH_BUTTON = `${SELECTOR_DATA_WIDGET} .btn`\nconst SELECTOR_SEARCH_ICON = `${SELECTOR_SEARCH_BUTTON} i`\nconst SELECTOR_SEARCH_LIST_GROUP = `.${CLASS_NAME_LIST_GROUP}`\nconst SELECTOR_SEARCH_RESULTS = `.${CLASS_NAME_SEARCH_RESULTS}`\nconst SELECTOR_SEARCH_RESULTS_GROUP = `${SELECTOR_SEARCH_RESULTS} .${CLASS_NAME_LIST_GROUP}`\n\nconst Default = {\n arrowSign: '->',\n minLength: 3,\n maxResults: 7,\n highlightName: true,\n highlightPath: false,\n highlightClass: 'text-light',\n notFoundText: 'No element found!'\n}\n\nconst SearchItems = []\n\n/**\n * Class Definition\n * ====================================================\n */\n\nclass SidebarSearch {\n constructor(_element, _options) {\n this.element = _element\n this.options = $.extend({}, Default, _options)\n this.items = []\n }\n\n // Public\n\n init() {\n if ($(SELECTOR_DATA_WIDGET).length === 0) {\n return\n }\n\n if ($(SELECTOR_DATA_WIDGET).next(SELECTOR_SEARCH_RESULTS).length === 0) {\n $(SELECTOR_DATA_WIDGET).after(\n $('<div />', { class: CLASS_NAME_SEARCH_RESULTS })\n )\n }\n\n if ($(SELECTOR_SEARCH_RESULTS).children(SELECTOR_SEARCH_LIST_GROUP).length === 0) {\n $(SELECTOR_SEARCH_RESULTS).append(\n $('<div />', { class: CLASS_NAME_LIST_GROUP })\n )\n }\n\n this._addNotFound()\n\n $(SELECTOR_SIDEBAR).children().each((i, child) => {\n this._parseItem(child)\n })\n }\n\n search() {\n const searchValue = $(SELECTOR_SEARCH_INPUT).val().toLowerCase()\n if (searchValue.length < this.options.minLength) {\n $(SELECTOR_SEARCH_RESULTS_GROUP).empty()\n this._addNotFound()\n this.close()\n return\n }\n\n const searchResults = SearchItems.filter(item => (item.name).toLowerCase().includes(searchValue))\n const endResults = $(searchResults.slice(0, this.options.maxResults))\n $(SELECTOR_SEARCH_RESULTS_GROUP).empty()\n\n if (endResults.length === 0) {\n this._addNotFound()\n } else {\n endResults.each((i, result) => {\n $(SELECTOR_SEARCH_RESULTS_GROUP).append(this._renderItem(escape(result.name), encodeURI(result.link), result.path))\n })\n }\n\n this.open()\n }\n\n open() {\n $(SELECTOR_DATA_WIDGET).parent().addClass(CLASS_NAME_OPEN)\n $(SELECTOR_SEARCH_ICON).removeClass(CLASS_NAME_ICON_SEARCH).addClass(CLASS_NAME_ICON_CLOSE)\n }\n\n close() {\n $(SELECTOR_DATA_WIDGET).parent().removeClass(CLASS_NAME_OPEN)\n $(SELECTOR_SEARCH_ICON).removeClass(CLASS_NAME_ICON_CLOSE).addClass(CLASS_NAME_ICON_SEARCH)\n }\n\n toggle() {\n if ($(SELECTOR_DATA_WIDGET).parent().hasClass(CLASS_NAME_OPEN)) {\n this.close()\n } else {\n this.open()\n }\n }\n\n // Private\n\n _parseItem(item, path = []) {\n if ($(item).hasClass(CLASS_NAME_HEADER)) {\n return\n }\n\n const itemObject = {}\n const navLink = $(item).clone().find(`> ${SELECTOR_NAV_LINK}`)\n const navTreeview = $(item).clone().find(`> ${SELECTOR_NAV_TREEVIEW}`)\n\n const link = navLink.attr('href')\n const name = navLink.find('p').children().remove().end().text()\n\n itemObject.name = this._trimText(name)\n itemObject.link = link\n itemObject.path = path\n\n if (navTreeview.length === 0) {\n SearchItems.push(itemObject)\n } else {\n const newPath = itemObject.path.concat([itemObject.name])\n navTreeview.children().each((i, child) => {\n this._parseItem(child, newPath)\n })\n }\n }\n\n _trimText(text) {\n return trim(text.replace(/(\\r\\n|\\n|\\r)/gm, ' '))\n }\n\n _renderItem(name, link, path) {\n path = path.join(` ${this.options.arrowSign} `)\n name = unescape(name)\n link = decodeURI(link)\n\n if (this.options.highlightName || this.options.highlightPath) {\n const searchValue = $(SELECTOR_SEARCH_INPUT).val().toLowerCase()\n const regExp = new RegExp(searchValue, 'gi')\n\n if (this.options.highlightName) {\n name = name.replace(\n regExp,\n str => {\n return `<strong class=\"${this.options.highlightClass}\">${str}</strong>`\n }\n )\n }\n\n if (this.options.highlightPath) {\n path = path.replace(\n regExp,\n str => {\n return `<strong class=\"${this.options.highlightClass}\">${str}</strong>`\n }\n )\n }\n }\n\n const groupItemElement = $('<a/>', {\n href: decodeURIComponent(link),\n class: 'list-group-item'\n })\n const searchTitleElement = $('<div/>', {\n class: 'search-title'\n }).html(name)\n const searchPathElement = $('<div/>', {\n class: 'search-path'\n }).html(path)\n\n groupItemElement.append(searchTitleElement).append(searchPathElement)\n\n return groupItemElement\n }\n\n _addNotFound() {\n $(SELECTOR_SEARCH_RESULTS_GROUP).append(this._renderItem(this.options.notFoundText, '#', []))\n }\n\n // Static\n\n static _jQueryInterface(config) {\n let data = $(this).data(DATA_KEY)\n\n if (!data) {\n data = $(this).data()\n }\n\n const _options = $.extend({}, Default, typeof config === 'object' ? config : data)\n const plugin = new SidebarSearch($(this), _options)\n\n $(this).data(DATA_KEY, typeof config === 'object' ? config : data)\n\n if (typeof config === 'string' && /init|toggle|close|open|search/.test(config)) {\n plugin[config]()\n } else {\n plugin.init()\n }\n }\n}\n\n/**\n * Data API\n * ====================================================\n */\n$(document).on('click', SELECTOR_SEARCH_BUTTON, event => {\n event.preventDefault()\n\n SidebarSearch._jQueryInterface.call($(SELECTOR_DATA_WIDGET), 'toggle')\n})\n\n$(document).on('keyup', SELECTOR_SEARCH_INPUT, event => {\n if (event.keyCode == 38) {\n event.preventDefault()\n $(SELECTOR_SEARCH_RESULTS_GROUP).children().last().focus()\n return\n }\n\n if (event.keyCode == 40) {\n event.preventDefault()\n $(SELECTOR_SEARCH_RESULTS_GROUP).children().first().focus()\n return\n }\n\n setTimeout(() => {\n SidebarSearch._jQueryInterface.call($(SELECTOR_DATA_WIDGET), 'search')\n }, 100)\n})\n\n$(document).on('keydown', SELECTOR_SEARCH_RESULTS_GROUP, event => {\n const $focused = $(':focus')\n\n if (event.keyCode == 38) {\n event.preventDefault()\n\n if ($focused.is(':first-child')) {\n $focused.siblings().last().focus()\n } else {\n $focused.prev().focus()\n }\n }\n\n if (event.keyCode == 40) {\n event.preventDefault()\n\n if ($focused.is(':last-child')) {\n $focused.siblings().first().focus()\n } else {\n $focused.next().focus()\n }\n }\n})\n\n$(window).on('load', () => {\n SidebarSearch._jQueryInterface.call($(SELECTOR_DATA_WIDGET), 'init')\n})\n\n/**\n * jQuery API\n * ====================================================\n */\n\n$.fn[NAME] = SidebarSearch._jQueryInterface\n$.fn[NAME].Constructor = SidebarSearch\n$.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return SidebarSearch._jQueryInterface\n}\n\nexport default SidebarSearch\n","/**\n * --------------------------------------------\n * AdminLTE NavbarSearch.js\n * License MIT\n * --------------------------------------------\n */\n\nimport $ from 'jquery'\n\n/**\n * Constants\n * ====================================================\n */\n\nconst NAME = 'NavbarSearch'\nconst DATA_KEY = 'lte.navbar-search'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst SELECTOR_TOGGLE_BUTTON = '[data-widget=\"navbar-search\"]'\nconst SELECTOR_SEARCH_BLOCK = '.navbar-search-block'\nconst SELECTOR_SEARCH_INPUT = '.form-control'\n\nconst CLASS_NAME_OPEN = 'navbar-search-open'\n\nconst Default = {\n resetOnClose: true,\n target: SELECTOR_SEARCH_BLOCK\n}\n\n/**\n * Class Definition\n * ====================================================\n */\n\nclass NavbarSearch {\n constructor(_element, _options) {\n this._element = _element\n this._config = $.extend({}, Default, _options)\n }\n\n // Public\n\n open() {\n $(this._config.target).css('display', 'flex').hide().fadeIn().addClass(CLASS_NAME_OPEN)\n $(`${this._config.target} ${SELECTOR_SEARCH_INPUT}`).focus()\n }\n\n close() {\n $(this._config.target).fadeOut().removeClass(CLASS_NAME_OPEN)\n\n if (this._config.resetOnClose) {\n $(`${this._config.target} ${SELECTOR_SEARCH_INPUT}`).val('')\n }\n }\n\n toggle() {\n if ($(this._config.target).hasClass(CLASS_NAME_OPEN)) {\n this.close()\n } else {\n this.open()\n }\n }\n\n // Static\n\n static _jQueryInterface(options) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _options = $.extend({}, Default, $(this).data())\n\n if (!data) {\n data = new NavbarSearch(this, _options)\n $(this).data(DATA_KEY, data)\n }\n\n if (!/toggle|close|open/.test(options)) {\n throw new Error(`Undefined method ${options}`)\n }\n\n data[options]()\n })\n }\n}\n\n/**\n * Data API\n * ====================================================\n */\n$(document).on('click', SELECTOR_TOGGLE_BUTTON, event => {\n event.preventDefault()\n\n let button = $(event.currentTarget)\n\n if (button.data('widget') !== 'navbar-search') {\n button = button.closest(SELECTOR_TOGGLE_BUTTON)\n }\n\n NavbarSearch._jQueryInterface.call(button, 'toggle')\n})\n\n/**\n * jQuery API\n * ====================================================\n */\n\n$.fn[NAME] = NavbarSearch._jQueryInterface\n$.fn[NAME].Constructor = NavbarSearch\n$.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return NavbarSearch._jQueryInterface\n}\n\nexport default NavbarSearch\n","/**\n * --------------------------------------------\n * AdminLTE Toasts.js\n * License MIT\n * --------------------------------------------\n */\n\nimport $ from 'jquery'\n\n/**\n * Constants\n * ====================================================\n */\n\nconst NAME = 'Toasts'\nconst DATA_KEY = 'lte.toasts'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst EVENT_INIT = `init${EVENT_KEY}`\nconst EVENT_CREATED = `created${EVENT_KEY}`\nconst EVENT_REMOVED = `removed${EVENT_KEY}`\n\nconst SELECTOR_CONTAINER_TOP_RIGHT = '#toastsContainerTopRight'\nconst SELECTOR_CONTAINER_TOP_LEFT = '#toastsContainerTopLeft'\nconst SELECTOR_CONTAINER_BOTTOM_RIGHT = '#toastsContainerBottomRight'\nconst SELECTOR_CONTAINER_BOTTOM_LEFT = '#toastsContainerBottomLeft'\n\nconst CLASS_NAME_TOP_RIGHT = 'toasts-top-right'\nconst CLASS_NAME_TOP_LEFT = 'toasts-top-left'\nconst CLASS_NAME_BOTTOM_RIGHT = 'toasts-bottom-right'\nconst CLASS_NAME_BOTTOM_LEFT = 'toasts-bottom-left'\n\nconst POSITION_TOP_RIGHT = 'topRight'\nconst POSITION_TOP_LEFT = 'topLeft'\nconst POSITION_BOTTOM_RIGHT = 'bottomRight'\nconst POSITION_BOTTOM_LEFT = 'bottomLeft'\n\nconst Default = {\n position: POSITION_TOP_RIGHT,\n fixed: true,\n autohide: false,\n autoremove: true,\n delay: 1000,\n fade: true,\n icon: null,\n image: null,\n imageAlt: null,\n imageHeight: '25px',\n title: null,\n subtitle: null,\n close: true,\n body: null,\n class: null\n}\n\n/**\n * Class Definition\n * ====================================================\n */\nclass Toasts {\n constructor(element, config) {\n this._config = config\n this._prepareContainer()\n\n $('body').trigger($.Event(EVENT_INIT))\n }\n\n // Public\n\n create() {\n const toast = $('<div class=\"toast\" role=\"alert\" aria-live=\"assertive\" aria-atomic=\"true\"/>')\n\n toast.data('autohide', this._config.autohide)\n toast.data('animation', this._config.fade)\n\n if (this._config.class) {\n toast.addClass(this._config.class)\n }\n\n if (this._config.delay && this._config.delay != 500) {\n toast.data('delay', this._config.delay)\n }\n\n const toastHeader = $('<div class=\"toast-header\">')\n\n if (this._config.image != null) {\n const toastImage = $('<img />').addClass('rounded mr-2').attr('src', this._config.image).attr('alt', this._config.imageAlt)\n\n if (this._config.imageHeight != null) {\n toastImage.height(this._config.imageHeight).width('auto')\n }\n\n toastHeader.append(toastImage)\n }\n\n if (this._config.icon != null) {\n toastHeader.append($('<i />').addClass('mr-2').addClass(this._config.icon))\n }\n\n if (this._config.title != null) {\n toastHeader.append($('<strong />').addClass('mr-auto').html(this._config.title))\n }\n\n if (this._config.subtitle != null) {\n toastHeader.append($('<small />').html(this._config.subtitle))\n }\n\n if (this._config.close == true) {\n const toastClose = $('<button data-dismiss=\"toast\" />').attr('type', 'button').addClass('ml-2 mb-1 close').attr('aria-label', 'Close').append('<span aria-hidden=\"true\">×</span>')\n\n if (this._config.title == null) {\n toastClose.toggleClass('ml-2 ml-auto')\n }\n\n toastHeader.append(toastClose)\n }\n\n toast.append(toastHeader)\n\n if (this._config.body != null) {\n toast.append($('<div class=\"toast-body\" />').html(this._config.body))\n }\n\n $(this._getContainerId()).prepend(toast)\n\n const $body = $('body')\n\n $body.trigger($.Event(EVENT_CREATED))\n toast.toast('show')\n\n if (this._config.autoremove) {\n toast.on('hidden.bs.toast', function () {\n $(this).delay(200).remove()\n $body.trigger($.Event(EVENT_REMOVED))\n })\n }\n }\n\n // Static\n\n _getContainerId() {\n if (this._config.position == POSITION_TOP_RIGHT) {\n return SELECTOR_CONTAINER_TOP_RIGHT\n }\n\n if (this._config.position == POSITION_TOP_LEFT) {\n return SELECTOR_CONTAINER_TOP_LEFT\n }\n\n if (this._config.position == POSITION_BOTTOM_RIGHT) {\n return SELECTOR_CONTAINER_BOTTOM_RIGHT\n }\n\n if (this._config.position == POSITION_BOTTOM_LEFT) {\n return SELECTOR_CONTAINER_BOTTOM_LEFT\n }\n }\n\n _prepareContainer() {\n if ($(this._getContainerId()).length === 0) {\n const container = $('<div />').attr('id', this._getContainerId().replace('#', ''))\n if (this._config.position == POSITION_TOP_RIGHT) {\n container.addClass(CLASS_NAME_TOP_RIGHT)\n } else if (this._config.position == POSITION_TOP_LEFT) {\n container.addClass(CLASS_NAME_TOP_LEFT)\n } else if (this._config.position == POSITION_BOTTOM_RIGHT) {\n container.addClass(CLASS_NAME_BOTTOM_RIGHT)\n } else if (this._config.position == POSITION_BOTTOM_LEFT) {\n container.addClass(CLASS_NAME_BOTTOM_LEFT)\n }\n\n $('body').append(container)\n }\n\n if (this._config.fixed) {\n $(this._getContainerId()).addClass('fixed')\n } else {\n $(this._getContainerId()).removeClass('fixed')\n }\n }\n\n // Static\n\n static _jQueryInterface(option, config) {\n return this.each(function () {\n const _options = $.extend({}, Default, config)\n const toast = new Toasts($(this), _options)\n\n if (option === 'create') {\n toast[option]()\n }\n })\n }\n}\n\n/**\n * jQuery API\n * ====================================================\n */\n\n$.fn[NAME] = Toasts._jQueryInterface\n$.fn[NAME].Constructor = Toasts\n$.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Toasts._jQueryInterface\n}\n\nexport default Toasts\n","/**\n * --------------------------------------------\n * AdminLTE TodoList.js\n * License MIT\n * --------------------------------------------\n */\n\nimport $ from 'jquery'\n\n/**\n * Constants\n * ====================================================\n */\n\nconst NAME = 'TodoList'\nconst DATA_KEY = 'lte.todolist'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst SELECTOR_DATA_TOGGLE = '[data-widget=\"todo-list\"]'\nconst CLASS_NAME_TODO_LIST_DONE = 'done'\n\nconst Default = {\n onCheck(item) {\n return item\n },\n onUnCheck(item) {\n return item\n }\n}\n\n/**\n * Class Definition\n * ====================================================\n */\n\nclass TodoList {\n constructor(element, config) {\n this._config = config\n this._element = element\n\n this._init()\n }\n\n // Public\n\n toggle(item) {\n item.parents('li').toggleClass(CLASS_NAME_TODO_LIST_DONE)\n if (!$(item).prop('checked')) {\n this.unCheck($(item))\n return\n }\n\n this.check(item)\n }\n\n check(item) {\n this._config.onCheck.call(item)\n }\n\n unCheck(item) {\n this._config.onUnCheck.call(item)\n }\n\n // Private\n\n _init() {\n const $toggleSelector = this._element\n\n $toggleSelector.find('input:checkbox:checked').parents('li').toggleClass(CLASS_NAME_TODO_LIST_DONE)\n $toggleSelector.on('change', 'input:checkbox', event => {\n this.toggle($(event.target))\n })\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n\n if (!data) {\n data = $(this).data()\n }\n\n const _options = $.extend({}, Default, typeof config === 'object' ? config : data)\n const plugin = new TodoList($(this), _options)\n\n $(this).data(DATA_KEY, typeof config === 'object' ? config : data)\n\n if (config === 'init') {\n plugin[config]()\n }\n })\n }\n}\n\n/**\n * Data API\n * ====================================================\n */\n\n$(window).on('load', () => {\n TodoList._jQueryInterface.call($(SELECTOR_DATA_TOGGLE))\n})\n\n/**\n * jQuery API\n * ====================================================\n */\n\n$.fn[NAME] = TodoList._jQueryInterface\n$.fn[NAME].Constructor = TodoList\n$.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return TodoList._jQueryInterface\n}\n\nexport default TodoList\n","/**\n * --------------------------------------------\n * AdminLTE Treeview.js\n * License MIT\n * --------------------------------------------\n */\n\nimport $ from 'jquery'\n\n/**\n * Constants\n * ====================================================\n */\n\nconst NAME = 'Treeview'\nconst DATA_KEY = 'lte.treeview'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst EVENT_EXPANDED = `expanded${EVENT_KEY}`\nconst EVENT_COLLAPSED = `collapsed${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}`\n\nconst SELECTOR_LI = '.nav-item'\nconst SELECTOR_LINK = '.nav-link'\nconst SELECTOR_TREEVIEW_MENU = '.nav-treeview'\nconst SELECTOR_OPEN = '.menu-open'\nconst SELECTOR_DATA_WIDGET = '[data-widget=\"treeview\"]'\n\nconst CLASS_NAME_OPEN = 'menu-open'\nconst CLASS_NAME_IS_OPENING = 'menu-is-opening'\nconst CLASS_NAME_SIDEBAR_COLLAPSED = 'sidebar-collapse'\n\nconst Default = {\n trigger: `${SELECTOR_DATA_WIDGET} ${SELECTOR_LINK}`,\n animationSpeed: 300,\n accordion: true,\n expandSidebar: false,\n sidebarButtonSelector: '[data-widget=\"pushmenu\"]'\n}\n\n/**\n * Class Definition\n * ====================================================\n */\nclass Treeview {\n constructor(element, config) {\n this._config = config\n this._element = element\n }\n\n // Public\n\n init() {\n $(`${SELECTOR_LI}${SELECTOR_OPEN} ${SELECTOR_TREEVIEW_MENU}${SELECTOR_OPEN}`).css('display', 'block')\n this._setupListeners()\n }\n\n expand(treeviewMenu, parentLi) {\n const expandedEvent = $.Event(EVENT_EXPANDED)\n\n if (this._config.accordion) {\n const openMenuLi = parentLi.siblings(SELECTOR_OPEN).first()\n const openTreeview = openMenuLi.find(SELECTOR_TREEVIEW_MENU).first()\n this.collapse(openTreeview, openMenuLi)\n }\n\n parentLi.addClass(CLASS_NAME_IS_OPENING)\n treeviewMenu.stop().slideDown(this._config.animationSpeed, () => {\n parentLi.addClass(CLASS_NAME_OPEN)\n $(this._element).trigger(expandedEvent)\n })\n\n if (this._config.expandSidebar) {\n this._expandSidebar()\n }\n }\n\n collapse(treeviewMenu, parentLi) {\n const collapsedEvent = $.Event(EVENT_COLLAPSED)\n\n parentLi.removeClass(`${CLASS_NAME_IS_OPENING} ${CLASS_NAME_OPEN}`)\n treeviewMenu.stop().slideUp(this._config.animationSpeed, () => {\n $(this._element).trigger(collapsedEvent)\n treeviewMenu.find(`${SELECTOR_OPEN} > ${SELECTOR_TREEVIEW_MENU}`).slideUp()\n treeviewMenu.find(SELECTOR_OPEN).removeClass(`${CLASS_NAME_IS_OPENING} ${CLASS_NAME_OPEN}`)\n })\n }\n\n toggle(event) {\n const $relativeTarget = $(event.currentTarget)\n const $parent = $relativeTarget.parent()\n\n let treeviewMenu = $parent.find(`> ${SELECTOR_TREEVIEW_MENU}`)\n\n if (!treeviewMenu.is(SELECTOR_TREEVIEW_MENU)) {\n if (!$parent.is(SELECTOR_LI)) {\n treeviewMenu = $parent.parent().find(`> ${SELECTOR_TREEVIEW_MENU}`)\n }\n\n if (!treeviewMenu.is(SELECTOR_TREEVIEW_MENU)) {\n return\n }\n }\n\n event.preventDefault()\n\n const parentLi = $relativeTarget.parents(SELECTOR_LI).first()\n const isOpen = parentLi.hasClass(CLASS_NAME_OPEN)\n\n if (isOpen) {\n this.collapse($(treeviewMenu), parentLi)\n } else {\n this.expand($(treeviewMenu), parentLi)\n }\n }\n\n // Private\n\n _setupListeners() {\n const elementId = this._element.attr('id') !== undefined ? `#${this._element.attr('id')}` : ''\n $(document).on('click', `${elementId}${this._config.trigger}`, event => {\n this.toggle(event)\n })\n }\n\n _expandSidebar() {\n if ($('body').hasClass(CLASS_NAME_SIDEBAR_COLLAPSED)) {\n $(this._config.sidebarButtonSelector).PushMenu('expand')\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _options = $.extend({}, Default, $(this).data())\n\n if (!data) {\n data = new Treeview($(this), _options)\n $(this).data(DATA_KEY, data)\n }\n\n if (config === 'init') {\n data[config]()\n }\n })\n }\n}\n\n/**\n * Data API\n * ====================================================\n */\n\n$(window).on(EVENT_LOAD_DATA_API, () => {\n $(SELECTOR_DATA_WIDGET).each(function () {\n Treeview._jQueryInterface.call($(this), 'init')\n })\n})\n\n/**\n * jQuery API\n * ====================================================\n */\n\n$.fn[NAME] = Treeview._jQueryInterface\n$.fn[NAME].Constructor = Treeview\n$.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Treeview._jQueryInterface\n}\n\nexport default Treeview\n"],"names":["NAME","DATA_KEY","EVENT_KEY","JQUERY_NO_CONFLICT","$","fn","EVENT_LOADED","EVENT_OVERLAY_ADDED","EVENT_OVERLAY_REMOVED","CLASS_NAME_CARD","SELECTOR_CARD","SELECTOR_DATA_REFRESH","Default","source","sourceSelector","params","trigger","content","loadInContent","loadOnInit","loadErrorTemplate","responseType","overlayTemplate","errorTemplate","onLoadStart","onLoadDone","response","onLoadFail","_jqXHR","_textStatus","_errorThrown","CardRefresh","element","settings","_element","_parent","parents","first","_settings","extend","_overlay","hasClass","Error","load","_addOverlay","call","get","find","html","_removeOverlay","fail","jqXHR","textStatus","errorThrown","msg","text","empty","append","Event","remove","_init","on","_jQueryInterface","config","data","_options","test","document","event","preventDefault","each","Constructor","noConflict","EVENT_EXPANDED","EVENT_COLLAPSED","EVENT_MAXIMIZED","EVENT_MINIMIZED","EVENT_REMOVED","CLASS_NAME_COLLAPSED","CLASS_NAME_COLLAPSING","CLASS_NAME_EXPANDING","CLASS_NAME_WAS_COLLAPSED","CLASS_NAME_MAXIMIZED","SELECTOR_DATA_REMOVE","SELECTOR_DATA_COLLAPSE","SELECTOR_DATA_MAXIMIZE","SELECTOR_CARD_HEADER","SELECTOR_CARD_BODY","SELECTOR_CARD_FOOTER","animationSpeed","collapseTrigger","removeTrigger","maximizeTrigger","collapseIcon","expandIcon","maximizeIcon","minimizeIcon","CardWidget","collapse","addClass","children","slideUp","removeClass","expand","slideDown","toggle","maximize","css","height","width","transition","delay","queue","$element","dequeue","minimize","style","toggleMaximize","card","click","EVENT_COLLAPSED_DONE","SELECTOR_CONTROL_SIDEBAR","SELECTOR_CONTROL_SIDEBAR_CONTENT","SELECTOR_DATA_TOGGLE","SELECTOR_HEADER","SELECTOR_FOOTER","CLASS_NAME_CONTROL_SIDEBAR_ANIMATE","CLASS_NAME_CONTROL_SIDEBAR_OPEN","CLASS_NAME_CONTROL_SIDEBAR_SLIDE","CLASS_NAME_LAYOUT_FIXED","CLASS_NAME_NAVBAR_FIXED","CLASS_NAME_NAVBAR_SM_FIXED","CLASS_NAME_NAVBAR_MD_FIXED","CLASS_NAME_NAVBAR_LG_FIXED","CLASS_NAME_NAVBAR_XL_FIXED","CLASS_NAME_FOOTER_FIXED","CLASS_NAME_FOOTER_SM_FIXED","CLASS_NAME_FOOTER_MD_FIXED","CLASS_NAME_FOOTER_LG_FIXED","CLASS_NAME_FOOTER_XL_FIXED","controlsidebarSlide","scrollbarTheme","scrollbarAutoHide","target","ControlSidebar","_config","$body","$html","hide","setTimeout","show","_fixHeight","_fixScrollHeight","notVisible","is","shouldClose","shouldToggle","shouldNotHideAll","not","window","resize","scroll","shouldFixHeight","_isNavbarFixed","_isFooterFixed","$controlSidebar","heights","header","outerHeight","footer","positions","bottom","Math","abs","scrollTop","top","navbarFixed","footerFixed","$controlsidebarContent","attr","sidebarHeight","overlayScrollbars","className","sizeAutoCapable","scrollbars","autoHide","clickScrolling","operation","ready","EVENT_TOGGLED","SELECTOR_DIRECT_CHAT","CLASS_NAME_DIRECT_CHAT_OPEN","DirectChat","toggleClass","SELECTOR_NAVBAR","SELECTOR_DROPDOWN_MENU","SELECTOR_DROPDOWN_MENU_ACTIVE","SELECTOR_DROPDOWN_TOGGLE","CLASS_NAME_DROPDOWN_RIGHT","CLASS_NAME_DROPDOWN_SUBMENU","Dropdown","toggleSubmenu","siblings","next","fixPosition","length","left","right","offset","visiblePart","stopPropagation","parent","SELECTOR_TABLE","SELECTOR_EXPANDABLE_BODY","SELECTOR_ARIA_ATTR","ExpandableTable","options","init","_","$header","$type","toggleRow","nodeName","time","stop","SELECTOR_DATA_WIDGET","SELECTOR_ICON","EVENT_FULLSCREEN_CHANGE","Fullscreen","fullscreenElement","mozFullScreenElement","webkitFullscreenElement","msFullscreenElement","windowed","fullscreen","toggleIcon","documentElement","requestFullscreen","webkitRequestFullscreen","msRequestFullscreen","exitFullscreen","webkitExitFullscreen","msExitFullscreen","plugin","SELECTOR_DATA_TOGGLE_CLOSE","SELECTOR_DATA_TOGGLE_SCROLL_LEFT","SELECTOR_DATA_TOGGLE_SCROLL_RIGHT","SELECTOR_DATA_TOGGLE_FULLSCREEN","SELECTOR_CONTENT_WRAPPER","SELECTOR_CONTENT_IFRAME","SELECTOR_TAB_NAV","SELECTOR_TAB_NAVBAR_NAV","SELECTOR_TAB_NAVBAR_NAV_ITEM","SELECTOR_TAB_NAVBAR_NAV_LINK","SELECTOR_TAB_CONTENT","SELECTOR_TAB_EMPTY","SELECTOR_TAB_LOADING","SELECTOR_TAB_PANE","SELECTOR_SIDEBAR_MENU_ITEM","SELECTOR_SIDEBAR_SEARCH_ITEM","SELECTOR_HEADER_MENU_ITEM","SELECTOR_HEADER_DROPDOWN_ITEM","CLASS_NAME_IFRAME_MODE","CLASS_NAME_FULLSCREEN_MODE","onTabClick","item","onTabChanged","onTabCreated","autoIframeMode","autoItemActive","autoShowNewTab","autoDarkMode","allowDuplicates","allowReload","loadingScreen","useNavbarItems","scrollOffset","scrollBehaviorSwap","iconMaximize","iconMinimize","IFrame","createTab","title","link","uniqueName","autoOpen","tabId","navId","floor","random","newNavItem","unescape","escape","newTabItem","$loadingScreen","fadeIn","switchTab","fadeOut","openTabSidebar","$item","clone","undefined","replace","reload","tab","_setItemActive","removeActiveTab","type","$navClose","$navItem","$navItemParent","navItemIndex","index","prevNavItemIndex","eq","toggleFullscreen","usingDefTab","_setupListeners","$el","console","log","_initFrameElement","frameElement","_navScroll","leftPos","scrollLeft","animate","e","offsetParent","attributes","nodeValue","mousedown","mousedownInterval","clearInterval","setInterval","href","$headerMenuItem","$headerDropdownItem","$sidebarMenuItem","i","prevAll","tabEmpty","windowHeight","navbarHeight","contentWrapperHeight","parseFloat","localStorage","setItem","JSON","stringify","parse","getItem","SELECTOR_MAIN_SIDEBAR","SELECTOR_SIDEBAR","SELECTOR_CONTENT","SELECTOR_CONTROL_SIDEBAR_BTN","SELECTOR_PUSHMENU_BTN","SELECTOR_LOGIN_BOX","SELECTOR_REGISTER_BOX","SELECTOR_PRELOADER","CLASS_NAME_SIDEBAR_COLLAPSED","CLASS_NAME_SIDEBAR_FOCUSED","CLASS_NAME_CONTROL_SIDEBAR_SLIDE_OPEN","panelAutoHeight","panelAutoHeightMode","preloadDuration","loginRegisterAutoHeight","Layout","fixLayoutHeight","extra","controlSidebar","sidebar","max","_max","$contentSelector","fixLoginRegisterHeight","$selector","boxHeight","parseInt","$preloader","numbers","Object","keys","forEach","key","EVENT_SHOWN","SELECTOR_TOGGLE_BUTTON","SELECTOR_BODY","SELECTOR_OVERLAY","SELECTOR_WRAPPER","CLASS_NAME_OPEN","CLASS_NAME_IS_OPENING","CLASS_NAME_CLOSED","autoCollapseSize","enableRemember","noTransitionAfterReload","PushMenu","$bodySelector","autoCollapse","remember","toggleState","overlay","id","button","currentTarget","closest","CLASS_NAME_ICON_SEARCH","CLASS_NAME_ICON_CLOSE","CLASS_NAME_HEADER","CLASS_NAME_SEARCH_RESULTS","CLASS_NAME_LIST_GROUP","SELECTOR_NAV_LINK","SELECTOR_NAV_TREEVIEW","SELECTOR_SEARCH_INPUT","SELECTOR_SEARCH_BUTTON","SELECTOR_SEARCH_ICON","SELECTOR_SEARCH_LIST_GROUP","SELECTOR_SEARCH_RESULTS","SELECTOR_SEARCH_RESULTS_GROUP","arrowSign","minLength","maxResults","highlightName","highlightPath","highlightClass","notFoundText","SearchItems","SidebarSearch","items","after","class","_addNotFound","child","_parseItem","search","searchValue","val","toLowerCase","close","searchResults","filter","name","includes","endResults","slice","result","_renderItem","encodeURI","path","open","itemObject","navLink","navTreeview","end","_trimText","push","newPath","concat","trim","join","decodeURI","regExp","RegExp","str","groupItemElement","decodeURIComponent","searchTitleElement","searchPathElement","keyCode","last","focus","$focused","prev","SELECTOR_SEARCH_BLOCK","resetOnClose","NavbarSearch","EVENT_INIT","EVENT_CREATED","SELECTOR_CONTAINER_TOP_RIGHT","SELECTOR_CONTAINER_TOP_LEFT","SELECTOR_CONTAINER_BOTTOM_RIGHT","SELECTOR_CONTAINER_BOTTOM_LEFT","CLASS_NAME_TOP_RIGHT","CLASS_NAME_TOP_LEFT","CLASS_NAME_BOTTOM_RIGHT","CLASS_NAME_BOTTOM_LEFT","POSITION_TOP_RIGHT","POSITION_TOP_LEFT","POSITION_BOTTOM_RIGHT","POSITION_BOTTOM_LEFT","position","fixed","autohide","autoremove","fade","icon","image","imageAlt","imageHeight","subtitle","body","Toasts","_prepareContainer","create","toast","toastHeader","toastImage","toastClose","_getContainerId","prepend","container","option","CLASS_NAME_TODO_LIST_DONE","onCheck","onUnCheck","TodoList","prop","unCheck","check","$toggleSelector","EVENT_LOAD_DATA_API","SELECTOR_LI","SELECTOR_LINK","SELECTOR_TREEVIEW_MENU","SELECTOR_OPEN","accordion","expandSidebar","sidebarButtonSelector","Treeview","treeviewMenu","parentLi","expandedEvent","openMenuLi","openTreeview","_expandSidebar","collapsedEvent","$relativeTarget","$parent","isOpen","elementId"],"mappings":"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"} Dropdown.js 0000644 00000006571 15025021451 0006702 0 ustar 00 /** * -------------------------------------------- * AdminLTE Dropdown.js * License MIT * -------------------------------------------- */ import $ from 'jquery' /** * Constants * ==================================================== */ const NAME = 'Dropdown' const DATA_KEY = 'lte.dropdown' const JQUERY_NO_CONFLICT = $.fn[NAME] const SELECTOR_NAVBAR = '.navbar' const SELECTOR_DROPDOWN_MENU = '.dropdown-menu' const SELECTOR_DROPDOWN_MENU_ACTIVE = '.dropdown-menu.show' const SELECTOR_DROPDOWN_TOGGLE = '[data-toggle="dropdown"]' const CLASS_NAME_DROPDOWN_RIGHT = 'dropdown-menu-right' const CLASS_NAME_DROPDOWN_SUBMENU = 'dropdown-submenu' // TODO: this is unused; should be removed along with the extend? const Default = {} /** * Class Definition * ==================================================== */ class Dropdown { constructor(element, config) { this._config = config this._element = element } // Public toggleSubmenu() { this._element.siblings().show().toggleClass('show') if (!this._element.next().hasClass('show')) { this._element.parents(SELECTOR_DROPDOWN_MENU).first().find('.show').removeClass('show').hide() } this._element.parents('li.nav-item.dropdown.show').on('hidden.bs.dropdown', () => { $('.dropdown-submenu .show').removeClass('show').hide() }) } fixPosition() { const $element = $(SELECTOR_DROPDOWN_MENU_ACTIVE) if ($element.length === 0) { return } if ($element.hasClass(CLASS_NAME_DROPDOWN_RIGHT)) { $element.css({ left: 'inherit', right: 0 }) } else { $element.css({ left: 0, right: 'inherit' }) } const offset = $element.offset() const width = $element.width() const visiblePart = $(window).width() - offset.left if (offset.left < 0) { $element.css({ left: 'inherit', right: offset.left - 5 }) } else if (visiblePart < width) { $element.css({ left: 'inherit', right: 0 }) } } // Static static _jQueryInterface(config) { return this.each(function () { let data = $(this).data(DATA_KEY) const _config = $.extend({}, Default, typeof config === 'object' ? config : $(this).data()) if (!data) { data = new Dropdown($(this), _config) $(this).data(DATA_KEY, data) } else if (typeof config === 'string') { if (typeof data[config] === 'undefined') { throw new TypeError(`No method named "${config}"`) } data[config]() } }) } } /** * Data API * ==================================================== */ $(`${SELECTOR_DROPDOWN_MENU} ${SELECTOR_DROPDOWN_TOGGLE}`).on('click', function (event) { event.preventDefault() event.stopPropagation() Dropdown._jQueryInterface.call($(this), 'toggleSubmenu') }) $(`${SELECTOR_NAVBAR} ${SELECTOR_DROPDOWN_TOGGLE}`).on('click', event => { event.preventDefault() if ($(event.target).parent().hasClass(CLASS_NAME_DROPDOWN_SUBMENU)) { return } setTimeout(function () { Dropdown._jQueryInterface.call($(this), 'fixPosition') }, 1) }) /** * jQuery API * ==================================================== */ $.fn[NAME] = Dropdown._jQueryInterface $.fn[NAME].Constructor = Dropdown $.fn[NAME].noConflict = function () { $.fn[NAME] = JQUERY_NO_CONFLICT return Dropdown._jQueryInterface } export default Dropdown CardWidget.js 0000644 00000014710 15025021451 0007115 0 ustar 00 /** * -------------------------------------------- * AdminLTE CardWidget.js * License MIT * -------------------------------------------- */ import $ from 'jquery' /** * Constants * ==================================================== */ const NAME = 'CardWidget' const DATA_KEY = 'lte.cardwidget' const EVENT_KEY = `.${DATA_KEY}` const JQUERY_NO_CONFLICT = $.fn[NAME] const EVENT_EXPANDED = `expanded${EVENT_KEY}` const EVENT_COLLAPSED = `collapsed${EVENT_KEY}` const EVENT_MAXIMIZED = `maximized${EVENT_KEY}` const EVENT_MINIMIZED = `minimized${EVENT_KEY}` const EVENT_REMOVED = `removed${EVENT_KEY}` const CLASS_NAME_CARD = 'card' const CLASS_NAME_COLLAPSED = 'collapsed-card' const CLASS_NAME_COLLAPSING = 'collapsing-card' const CLASS_NAME_EXPANDING = 'expanding-card' const CLASS_NAME_WAS_COLLAPSED = 'was-collapsed' const CLASS_NAME_MAXIMIZED = 'maximized-card' const SELECTOR_DATA_REMOVE = '[data-card-widget="remove"]' const SELECTOR_DATA_COLLAPSE = '[data-card-widget="collapse"]' const SELECTOR_DATA_MAXIMIZE = '[data-card-widget="maximize"]' const SELECTOR_CARD = `.${CLASS_NAME_CARD}` const SELECTOR_CARD_HEADER = '.card-header' const SELECTOR_CARD_BODY = '.card-body' const SELECTOR_CARD_FOOTER = '.card-footer' const Default = { animationSpeed: 'normal', collapseTrigger: SELECTOR_DATA_COLLAPSE, removeTrigger: SELECTOR_DATA_REMOVE, maximizeTrigger: SELECTOR_DATA_MAXIMIZE, collapseIcon: 'fa-minus', expandIcon: 'fa-plus', maximizeIcon: 'fa-expand', minimizeIcon: 'fa-compress' } class CardWidget { constructor(element, settings) { this._element = element this._parent = element.parents(SELECTOR_CARD).first() if (element.hasClass(CLASS_NAME_CARD)) { this._parent = element } this._settings = $.extend({}, Default, settings) } collapse() { this._parent.addClass(CLASS_NAME_COLLAPSING).children(`${SELECTOR_CARD_BODY}, ${SELECTOR_CARD_FOOTER}`) .slideUp(this._settings.animationSpeed, () => { this._parent.addClass(CLASS_NAME_COLLAPSED).removeClass(CLASS_NAME_COLLAPSING) }) this._parent.find(`> ${SELECTOR_CARD_HEADER} ${this._settings.collapseTrigger} .${this._settings.collapseIcon}`) .addClass(this._settings.expandIcon) .removeClass(this._settings.collapseIcon) this._element.trigger($.Event(EVENT_COLLAPSED), this._parent) } expand() { this._parent.addClass(CLASS_NAME_EXPANDING).children(`${SELECTOR_CARD_BODY}, ${SELECTOR_CARD_FOOTER}`) .slideDown(this._settings.animationSpeed, () => { this._parent.removeClass(CLASS_NAME_COLLAPSED).removeClass(CLASS_NAME_EXPANDING) }) this._parent.find(`> ${SELECTOR_CARD_HEADER} ${this._settings.collapseTrigger} .${this._settings.expandIcon}`) .addClass(this._settings.collapseIcon) .removeClass(this._settings.expandIcon) this._element.trigger($.Event(EVENT_EXPANDED), this._parent) } remove() { this._parent.slideUp() this._element.trigger($.Event(EVENT_REMOVED), this._parent) } toggle() { if (this._parent.hasClass(CLASS_NAME_COLLAPSED)) { this.expand() return } this.collapse() } maximize() { this._parent.find(`${this._settings.maximizeTrigger} .${this._settings.maximizeIcon}`) .addClass(this._settings.minimizeIcon) .removeClass(this._settings.maximizeIcon) this._parent.css({ height: this._parent.height(), width: this._parent.width(), position: 'fixed', transition: 'all .15s' }).delay(150).queue(function () { const $element = $(this) $element.addClass(CLASS_NAME_MAXIMIZED) $('html').addClass(CLASS_NAME_MAXIMIZED) if ($element.hasClass(CLASS_NAME_COLLAPSED)) { $element.addClass(CLASS_NAME_WAS_COLLAPSED) } $element.dequeue() }) this._element.trigger($.Event(EVENT_MAXIMIZED), this._parent) } minimize() { this._parent.find(`${this._settings.maximizeTrigger} .${this._settings.minimizeIcon}`) .addClass(this._settings.maximizeIcon) .removeClass(this._settings.minimizeIcon) this._parent.css('cssText', `height: ${this._parent[0].style.height} !important; width: ${this._parent[0].style.width} !important; transition: all .15s;` ).delay(10).queue(function () { const $element = $(this) $element.removeClass(CLASS_NAME_MAXIMIZED) $('html').removeClass(CLASS_NAME_MAXIMIZED) $element.css({ height: 'inherit', width: 'inherit' }) if ($element.hasClass(CLASS_NAME_WAS_COLLAPSED)) { $element.removeClass(CLASS_NAME_WAS_COLLAPSED) } $element.dequeue() }) this._element.trigger($.Event(EVENT_MINIMIZED), this._parent) } toggleMaximize() { if (this._parent.hasClass(CLASS_NAME_MAXIMIZED)) { this.minimize() return } this.maximize() } // Private _init(card) { this._parent = card $(this).find(this._settings.collapseTrigger).click(() => { this.toggle() }) $(this).find(this._settings.maximizeTrigger).click(() => { this.toggleMaximize() }) $(this).find(this._settings.removeTrigger).click(() => { this.remove() }) } // Static static _jQueryInterface(config) { let data = $(this).data(DATA_KEY) const _config = $.extend({}, Default, $(this).data()) if (!data) { data = new CardWidget($(this), _config) $(this).data(DATA_KEY, typeof config === 'string' ? data : config) } if (typeof config === 'string' && /collapse|expand|remove|toggle|maximize|minimize|toggleMaximize/.test(config)) { data[config]() } else if (typeof config === 'object') { data._init($(this)) } } } /** * Data API * ==================================================== */ $(document).on('click', SELECTOR_DATA_COLLAPSE, function (event) { if (event) { event.preventDefault() } CardWidget._jQueryInterface.call($(this), 'toggle') }) $(document).on('click', SELECTOR_DATA_REMOVE, function (event) { if (event) { event.preventDefault() } CardWidget._jQueryInterface.call($(this), 'remove') }) $(document).on('click', SELECTOR_DATA_MAXIMIZE, function (event) { if (event) { event.preventDefault() } CardWidget._jQueryInterface.call($(this), 'toggleMaximize') }) /** * jQuery API * ==================================================== */ $.fn[NAME] = CardWidget._jQueryInterface $.fn[NAME].Constructor = CardWidget $.fn[NAME].noConflict = function () { $.fn[NAME] = JQUERY_NO_CONFLICT return CardWidget._jQueryInterface } export default CardWidget AdminLTE.js 0000644 00000001410 15025021451 0006466 0 ustar 00 import CardRefresh from './CardRefresh' import CardWidget from './CardWidget' import ControlSidebar from './ControlSidebar' import DirectChat from './DirectChat' import Dropdown from './Dropdown' import ExpandableTable from './ExpandableTable' import Fullscreen from './Fullscreen' import IFrame from './IFrame' import Layout from './Layout' import PushMenu from './PushMenu' import SidebarSearch from './SidebarSearch' import NavbarSearch from './NavbarSearch' import Toasts from './Toasts' import TodoList from './TodoList' import Treeview from './Treeview' export { CardRefresh, CardWidget, ControlSidebar, DirectChat, Dropdown, ExpandableTable, Fullscreen, IFrame, Layout, PushMenu, SidebarSearch, NavbarSearch, Toasts, TodoList, Treeview } PushMenu.js 0000644 00000013134 15025021451 0006643 0 ustar 00 /** * -------------------------------------------- * AdminLTE PushMenu.js * License MIT * -------------------------------------------- */ import $ from 'jquery' /** * Constants * ==================================================== */ const NAME = 'PushMenu' const DATA_KEY = 'lte.pushmenu' const EVENT_KEY = `.${DATA_KEY}` const JQUERY_NO_CONFLICT = $.fn[NAME] const EVENT_COLLAPSED = `collapsed${EVENT_KEY}` const EVENT_COLLAPSED_DONE = `collapsed-done${EVENT_KEY}` const EVENT_SHOWN = `shown${EVENT_KEY}` const SELECTOR_TOGGLE_BUTTON = '[data-widget="pushmenu"]' const SELECTOR_BODY = 'body' const SELECTOR_OVERLAY = '#sidebar-overlay' const SELECTOR_WRAPPER = '.wrapper' const CLASS_NAME_COLLAPSED = 'sidebar-collapse' const CLASS_NAME_OPEN = 'sidebar-open' const CLASS_NAME_IS_OPENING = 'sidebar-is-opening' const CLASS_NAME_CLOSED = 'sidebar-closed' const Default = { autoCollapseSize: 992, enableRemember: false, noTransitionAfterReload: true, animationSpeed: 300 } /** * Class Definition * ==================================================== */ class PushMenu { constructor(element, options) { this._element = element this._options = options if ($(SELECTOR_OVERLAY).length === 0) { this._addOverlay() } this._init() } // Public expand() { const $bodySelector = $(SELECTOR_BODY) if (this._options.autoCollapseSize && $(window).width() <= this._options.autoCollapseSize) { $bodySelector.addClass(CLASS_NAME_OPEN) } $bodySelector.addClass(CLASS_NAME_IS_OPENING).removeClass(`${CLASS_NAME_COLLAPSED} ${CLASS_NAME_CLOSED}`).delay(50).queue(function () { $bodySelector.removeClass(CLASS_NAME_IS_OPENING) $(this).dequeue() }) if (this._options.enableRemember) { localStorage.setItem(`remember${EVENT_KEY}`, CLASS_NAME_OPEN) } $(this._element).trigger($.Event(EVENT_SHOWN)) } collapse() { const $bodySelector = $(SELECTOR_BODY) if (this._options.autoCollapseSize && $(window).width() <= this._options.autoCollapseSize) { $bodySelector.removeClass(CLASS_NAME_OPEN).addClass(CLASS_NAME_CLOSED) } $bodySelector.addClass(CLASS_NAME_COLLAPSED) if (this._options.enableRemember) { localStorage.setItem(`remember${EVENT_KEY}`, CLASS_NAME_COLLAPSED) } $(this._element).trigger($.Event(EVENT_COLLAPSED)) setTimeout(() => { $(this._element).trigger($.Event(EVENT_COLLAPSED_DONE)) }, this._options.animationSpeed) } toggle() { if ($(SELECTOR_BODY).hasClass(CLASS_NAME_COLLAPSED)) { this.expand() } else { this.collapse() } } autoCollapse(resize = false) { if (!this._options.autoCollapseSize) { return } const $bodySelector = $(SELECTOR_BODY) if ($(window).width() <= this._options.autoCollapseSize) { if (!$bodySelector.hasClass(CLASS_NAME_OPEN)) { this.collapse() } } else if (resize === true) { if ($bodySelector.hasClass(CLASS_NAME_OPEN)) { $bodySelector.removeClass(CLASS_NAME_OPEN) } else if ($bodySelector.hasClass(CLASS_NAME_CLOSED)) { this.expand() } } } remember() { if (!this._options.enableRemember) { return } const $body = $('body') const toggleState = localStorage.getItem(`remember${EVENT_KEY}`) if (toggleState === CLASS_NAME_COLLAPSED) { if (this._options.noTransitionAfterReload) { $body.addClass('hold-transition').addClass(CLASS_NAME_COLLAPSED).delay(50).queue(function () { $(this).removeClass('hold-transition') $(this).dequeue() }) } else { $body.addClass(CLASS_NAME_COLLAPSED) } } else if (this._options.noTransitionAfterReload) { $body.addClass('hold-transition').removeClass(CLASS_NAME_COLLAPSED).delay(50).queue(function () { $(this).removeClass('hold-transition') $(this).dequeue() }) } else { $body.removeClass(CLASS_NAME_COLLAPSED) } } // Private _init() { this.remember() this.autoCollapse() $(window).resize(() => { this.autoCollapse(true) }) } _addOverlay() { const overlay = $('<div />', { id: 'sidebar-overlay' }) overlay.on('click', () => { this.collapse() }) $(SELECTOR_WRAPPER).append(overlay) } // Static static _jQueryInterface(config) { return this.each(function () { let data = $(this).data(DATA_KEY) const _config = $.extend({}, Default, typeof config === 'object' ? config : $(this).data()) if (!data) { data = new PushMenu($(this), _config) $(this).data(DATA_KEY, data) data._init() } else if (typeof config === 'string') { if (typeof data[config] === 'undefined') { throw new TypeError(`No method named "${config}"`) } data[config]() } else if (typeof config === 'undefined') { data._init() } }) } } /** * Data API * ==================================================== */ $(document).on('click', SELECTOR_TOGGLE_BUTTON, event => { event.preventDefault() let button = event.currentTarget if ($(button).data('widget') !== 'pushmenu') { button = $(button).closest(SELECTOR_TOGGLE_BUTTON) } PushMenu._jQueryInterface.call($(button), 'toggle') }) $(window).on('load', () => { PushMenu._jQueryInterface.call($(SELECTOR_TOGGLE_BUTTON)) }) /** * jQuery API * ==================================================== */ $.fn[NAME] = PushMenu._jQueryInterface $.fn[NAME].Constructor = PushMenu $.fn[NAME].noConflict = function () { $.fn[NAME] = JQUERY_NO_CONFLICT return PushMenu._jQueryInterface } export default PushMenu DirectChat.js 0000644 00000003714 15025021451 0007114 0 ustar 00 /** * -------------------------------------------- * AdminLTE DirectChat.js * License MIT * -------------------------------------------- */ import $ from 'jquery' /** * Constants * ==================================================== */ const NAME = 'DirectChat' const DATA_KEY = 'lte.directchat' const EVENT_KEY = `.${DATA_KEY}` const JQUERY_NO_CONFLICT = $.fn[NAME] const EVENT_TOGGLED = `toggled${EVENT_KEY}` const SELECTOR_DATA_TOGGLE = '[data-widget="chat-pane-toggle"]' const SELECTOR_DIRECT_CHAT = '.direct-chat' const CLASS_NAME_DIRECT_CHAT_OPEN = 'direct-chat-contacts-open' /** * Class Definition * ==================================================== */ class DirectChat { constructor(element) { this._element = element } toggle() { $(this._element).parents(SELECTOR_DIRECT_CHAT).first().toggleClass(CLASS_NAME_DIRECT_CHAT_OPEN) $(this._element).trigger($.Event(EVENT_TOGGLED)) } // Static static _jQueryInterface(config) { return this.each(function () { let data = $(this).data(DATA_KEY) if (!data) { data = new DirectChat($(this)) $(this).data(DATA_KEY, data) } else if (typeof config === 'string') { if (typeof data[config] === 'undefined') { throw new TypeError(`No method named "${config}"`) } data[config]() } else if (typeof config === 'undefined') { data._init() } }) } } /** * * Data Api implementation * ==================================================== */ $(document).on('click', SELECTOR_DATA_TOGGLE, function (event) { if (event) { event.preventDefault() } DirectChat._jQueryInterface.call($(this), 'toggle') }) /** * jQuery API * ==================================================== */ $.fn[NAME] = DirectChat._jQueryInterface $.fn[NAME].Constructor = DirectChat $.fn[NAME].noConflict = function () { $.fn[NAME] = JQUERY_NO_CONFLICT return DirectChat._jQueryInterface } export default DirectChat ExpandableTable.js 0000644 00000006056 15025021451 0010117 0 ustar 00 /** * -------------------------------------------- * AdminLTE ExpandableTable.js * License MIT * -------------------------------------------- */ import $ from 'jquery' /** * Constants * ==================================================== */ const NAME = 'ExpandableTable' const DATA_KEY = 'lte.expandableTable' const EVENT_KEY = `.${DATA_KEY}` const JQUERY_NO_CONFLICT = $.fn[NAME] const EVENT_EXPANDED = `expanded${EVENT_KEY}` const EVENT_COLLAPSED = `collapsed${EVENT_KEY}` const SELECTOR_TABLE = '.expandable-table' const SELECTOR_EXPANDABLE_BODY = '.expandable-body' const SELECTOR_DATA_TOGGLE = '[data-widget="expandable-table"]' const SELECTOR_ARIA_ATTR = 'aria-expanded' /** * Class Definition * ==================================================== */ class ExpandableTable { constructor(element) { this._element = element } // Public _init() { $(SELECTOR_DATA_TOGGLE).each((_, $header) => { const $type = $($header).attr(SELECTOR_ARIA_ATTR) const $body = $($header).next(SELECTOR_EXPANDABLE_BODY).children().first().children() if ($type === 'true') { $body.show() } else if ($type === 'false') { $body.hide() $body.parent().parent().addClass('d-none') } }) } toggleRow() { let $element = this._element if ($element[0].nodeName !== 'TR') { $element = $element.parent() if ($element[0].nodeName !== 'TR') { $element = $element.parent() } } const time = 500 const $type = $element.attr(SELECTOR_ARIA_ATTR) const $body = $element.next(SELECTOR_EXPANDABLE_BODY).children().first().children() $body.stop() if ($type === 'true') { $body.slideUp(time, () => { $element.next(SELECTOR_EXPANDABLE_BODY).addClass('d-none') }) $element.attr(SELECTOR_ARIA_ATTR, 'false') $element.trigger($.Event(EVENT_COLLAPSED)) } else if ($type === 'false') { $element.next(SELECTOR_EXPANDABLE_BODY).removeClass('d-none') $body.slideDown(time) $element.attr(SELECTOR_ARIA_ATTR, 'true') $element.trigger($.Event(EVENT_EXPANDED)) } } // Static static _jQueryInterface(config) { return this.each(function () { let data = $(this).data(DATA_KEY) if (!data) { data = new ExpandableTable($(this)) $(this).data(DATA_KEY, data) } if (typeof config === 'string' && /init|toggleRow/.test(config)) { data[config]() } }) } } /** * Data API * ==================================================== */ $(SELECTOR_TABLE).ready(function () { ExpandableTable._jQueryInterface.call($(this), '_init') }) $(document).on('click', SELECTOR_DATA_TOGGLE, function () { ExpandableTable._jQueryInterface.call($(this), 'toggleRow') }) /** * jQuery API * ==================================================== */ $.fn[NAME] = ExpandableTable._jQueryInterface $.fn[NAME].Constructor = ExpandableTable $.fn[NAME].noConflict = function () { $.fn[NAME] = JQUERY_NO_CONFLICT return ExpandableTable._jQueryInterface } export default ExpandableTable Fullscreen.js 0000644 00000006354 15025021451 0007207 0 ustar 00 /** * -------------------------------------------- * AdminLTE Fullscreen.js * License MIT * -------------------------------------------- */ import $ from 'jquery' /** * Constants * ==================================================== */ const NAME = 'Fullscreen' const DATA_KEY = 'lte.fullscreen' const JQUERY_NO_CONFLICT = $.fn[NAME] const SELECTOR_DATA_WIDGET = '[data-widget="fullscreen"]' const SELECTOR_ICON = `${SELECTOR_DATA_WIDGET} i` const EVENT_FULLSCREEN_CHANGE = 'webkitfullscreenchange mozfullscreenchange fullscreenchange MSFullscreenChange' const Default = { minimizeIcon: 'fa-compress-arrows-alt', maximizeIcon: 'fa-expand-arrows-alt' } /** * Class Definition * ==================================================== */ class Fullscreen { constructor(_element, _options) { this.element = _element this.options = _options } // Public toggle() { if (document.fullscreenElement || document.mozFullScreenElement || document.webkitFullscreenElement || document.msFullscreenElement) { this.windowed() } else { this.fullscreen() } } toggleIcon() { if (document.fullscreenElement || document.mozFullScreenElement || document.webkitFullscreenElement || document.msFullscreenElement) { $(SELECTOR_ICON).removeClass(this.options.maximizeIcon).addClass(this.options.minimizeIcon) } else { $(SELECTOR_ICON).removeClass(this.options.minimizeIcon).addClass(this.options.maximizeIcon) } } fullscreen() { if (document.documentElement.requestFullscreen) { document.documentElement.requestFullscreen() } else if (document.documentElement.webkitRequestFullscreen) { document.documentElement.webkitRequestFullscreen() } else if (document.documentElement.msRequestFullscreen) { document.documentElement.msRequestFullscreen() } } windowed() { if (document.exitFullscreen) { document.exitFullscreen() } else if (document.webkitExitFullscreen) { document.webkitExitFullscreen() } else if (document.msExitFullscreen) { document.msExitFullscreen() } } // Static static _jQueryInterface(config) { return this.each(function () { let data = $(this).data(DATA_KEY) const _config = $.extend({}, Default, typeof config === 'object' ? config : $(this).data()) if (!data) { data = new Fullscreen($(this), _config) $(this).data(DATA_KEY, data) } else if (typeof config === 'string') { if (typeof data[config] === 'undefined') { throw new TypeError(`No method named "${config}"`) } data[config]() } }) } } /** * Data API * ==================================================== */ $(document).on('click', SELECTOR_DATA_WIDGET, function () { Fullscreen._jQueryInterface.call($(this), 'toggle') }) $(document).on(EVENT_FULLSCREEN_CHANGE, () => { Fullscreen._jQueryInterface.call($(SELECTOR_DATA_WIDGET), 'toggleIcon') }) /** * jQuery API * ==================================================== */ $.fn[NAME] = Fullscreen._jQueryInterface $.fn[NAME].Constructor = Fullscreen $.fn[NAME].noConflict = function () { $.fn[NAME] = JQUERY_NO_CONFLICT return Fullscreen._jQueryInterface } export default Fullscreen IFrame.js 0000644 00000035054 15025021451 0006247 0 ustar 00 // noinspection EqualityComparisonWithCoercionJS /** * -------------------------------------------- * AdminLTE IFrame.js * License MIT * -------------------------------------------- */ import $ from 'jquery' /** * Constants * ==================================================== */ const NAME = 'IFrame' const DATA_KEY = 'lte.iframe' const JQUERY_NO_CONFLICT = $.fn[NAME] const SELECTOR_DATA_TOGGLE = '[data-widget="iframe"]' const SELECTOR_DATA_TOGGLE_CLOSE = '[data-widget="iframe-close"]' const SELECTOR_DATA_TOGGLE_SCROLL_LEFT = '[data-widget="iframe-scrollleft"]' const SELECTOR_DATA_TOGGLE_SCROLL_RIGHT = '[data-widget="iframe-scrollright"]' const SELECTOR_DATA_TOGGLE_FULLSCREEN = '[data-widget="iframe-fullscreen"]' const SELECTOR_CONTENT_WRAPPER = '.content-wrapper' const SELECTOR_CONTENT_IFRAME = `${SELECTOR_CONTENT_WRAPPER} iframe` const SELECTOR_TAB_NAV = `${SELECTOR_CONTENT_WRAPPER}.iframe-mode .nav` const SELECTOR_TAB_NAVBAR_NAV = `${SELECTOR_CONTENT_WRAPPER}.iframe-mode .navbar-nav` const SELECTOR_TAB_NAVBAR_NAV_ITEM = `${SELECTOR_TAB_NAVBAR_NAV} .nav-item` const SELECTOR_TAB_NAVBAR_NAV_LINK = `${SELECTOR_TAB_NAVBAR_NAV} .nav-link` const SELECTOR_TAB_CONTENT = `${SELECTOR_CONTENT_WRAPPER}.iframe-mode .tab-content` const SELECTOR_TAB_EMPTY = `${SELECTOR_TAB_CONTENT} .tab-empty` const SELECTOR_TAB_LOADING = `${SELECTOR_TAB_CONTENT} .tab-loading` const SELECTOR_TAB_PANE = `${SELECTOR_TAB_CONTENT} .tab-pane` const SELECTOR_SIDEBAR_MENU_ITEM = '.main-sidebar .nav-item > a.nav-link' const SELECTOR_SIDEBAR_SEARCH_ITEM = '.sidebar-search-results .list-group-item' const SELECTOR_HEADER_MENU_ITEM = '.main-header .nav-item a.nav-link' const SELECTOR_HEADER_DROPDOWN_ITEM = '.main-header a.dropdown-item' const CLASS_NAME_IFRAME_MODE = 'iframe-mode' const CLASS_NAME_FULLSCREEN_MODE = 'iframe-mode-fullscreen' const Default = { onTabClick(item) { return item }, onTabChanged(item) { return item }, onTabCreated(item) { return item }, autoIframeMode: true, autoItemActive: true, autoShowNewTab: true, autoDarkMode: false, allowDuplicates: false, allowReload: true, loadingScreen: true, useNavbarItems: true, scrollOffset: 40, scrollBehaviorSwap: false, iconMaximize: 'fa-expand', iconMinimize: 'fa-compress' } /** * Class Definition * ==================================================== */ class IFrame { constructor(element, config) { this._config = config this._element = element this._init() } // Public onTabClick(item) { this._config.onTabClick(item) } onTabChanged(item) { this._config.onTabChanged(item) } onTabCreated(item) { this._config.onTabCreated(item) } createTab(title, link, uniqueName, autoOpen) { let tabId = `panel-${uniqueName}` let navId = `tab-${uniqueName}` if (this._config.allowDuplicates) { tabId += `-${Math.floor(Math.random() * 1000)}` navId += `-${Math.floor(Math.random() * 1000)}` } const newNavItem = `<li class="nav-item" role="presentation"><a href="#" class="btn-iframe-close" data-widget="iframe-close" data-type="only-this"><i class="fas fa-times"></i></a><a class="nav-link" data-toggle="row" id="${navId}" href="#${tabId}" role="tab" aria-controls="${tabId}" aria-selected="false">${title}</a></li>` $(SELECTOR_TAB_NAVBAR_NAV).append(unescape(escape(newNavItem))) const newTabItem = `<div class="tab-pane fade" id="${tabId}" role="tabpanel" aria-labelledby="${navId}"><iframe src="${link}"></iframe></div>` $(SELECTOR_TAB_CONTENT).append(unescape(escape(newTabItem))) if (autoOpen) { if (this._config.loadingScreen) { const $loadingScreen = $(SELECTOR_TAB_LOADING) if (!$loadingScreen.is(':animated')) { $loadingScreen.fadeIn() } $(`${tabId} iframe`).ready(() => { if (typeof this._config.loadingScreen === 'number') { this.switchTab(`#${navId}`) setTimeout(() => { $loadingScreen.fadeOut() }, this._config.loadingScreen) } else { this.switchTab(`#${navId}`) $loadingScreen.fadeOut() } }) } else { this.switchTab(`#${navId}`) } } this.onTabCreated($(`#${navId}`)) } openTabSidebar(item, autoOpen = this._config.autoShowNewTab) { let $item = $(item).clone() if ($item.attr('href') === undefined) { $item = $(item).parent('a').clone() } $item.find('.right, .search-path').remove() let title = $item.find('p').text() if (title === '') { title = $item.text() } const link = $item.attr('href') if (link === '#' || link === '' || link === undefined) { return } const uniqueName = unescape(link).replace('./', '').replace(/["#&'./:=?[\]]/gi, '-').replace(/(--)/gi, '') const navId = `tab-${uniqueName}` if (!this._config.allowDuplicates && $(`#${navId}`).length > 0) { return this.switchTab(`#${navId}`, this._config.allowReload) } if ((!this._config.allowDuplicates && $(`#${navId}`).length === 0) || this._config.allowDuplicates) { this.createTab(title, link, uniqueName, autoOpen) } } switchTab(item, reload = false) { const $item = $(item) const tabId = $item.attr('href') $(SELECTOR_TAB_EMPTY).hide() if (reload) { const $loadingScreen = $(SELECTOR_TAB_LOADING) if (this._config.loadingScreen) { $loadingScreen.show(0, () => { $(`${tabId} iframe`).attr('src', $(`${tabId} iframe`).attr('src')).ready(() => { if (this._config.loadingScreen) { if (typeof this._config.loadingScreen === 'number') { setTimeout(() => { $loadingScreen.fadeOut() }, this._config.loadingScreen) } else { $loadingScreen.fadeOut() } } }) }) } else { $(`${tabId} iframe`).attr('src', $(`${tabId} iframe`).attr('src')) } } $(`${SELECTOR_TAB_NAVBAR_NAV} .active`).tab('dispose').removeClass('active') this._fixHeight() $item.tab('show') $item.parents('li').addClass('active') this.onTabChanged($item) if (this._config.autoItemActive) { this._setItemActive($(`${tabId} iframe`).attr('src')) } } removeActiveTab(type, element) { if (type == 'all') { $(SELECTOR_TAB_NAVBAR_NAV_ITEM).remove() $(SELECTOR_TAB_PANE).remove() $(SELECTOR_TAB_EMPTY).show() } else if (type == 'all-other') { $(`${SELECTOR_TAB_NAVBAR_NAV_ITEM}:not(.active)`).remove() $(`${SELECTOR_TAB_PANE}:not(.active)`).remove() } else if (type == 'only-this') { const $navClose = $(element) const $navItem = $navClose.parent('.nav-item') const $navItemParent = $navItem.parent() const navItemIndex = $navItem.index() const tabId = $navClose.siblings('.nav-link').attr('aria-controls') $navItem.remove() $(`#${tabId}`).remove() if ($(SELECTOR_TAB_CONTENT).children().length == $(`${SELECTOR_TAB_EMPTY}, ${SELECTOR_TAB_LOADING}`).length) { $(SELECTOR_TAB_EMPTY).show() } else { const prevNavItemIndex = navItemIndex - 1 this.switchTab($navItemParent.children().eq(prevNavItemIndex).find('a.nav-link')) } } else { const $navItem = $(`${SELECTOR_TAB_NAVBAR_NAV_ITEM}.active`) const $navItemParent = $navItem.parent() const navItemIndex = $navItem.index() $navItem.remove() $(`${SELECTOR_TAB_PANE}.active`).remove() if ($(SELECTOR_TAB_CONTENT).children().length == $(`${SELECTOR_TAB_EMPTY}, ${SELECTOR_TAB_LOADING}`).length) { $(SELECTOR_TAB_EMPTY).show() } else { const prevNavItemIndex = navItemIndex - 1 this.switchTab($navItemParent.children().eq(prevNavItemIndex).find('a.nav-link')) } } } toggleFullscreen() { if ($('body').hasClass(CLASS_NAME_FULLSCREEN_MODE)) { $(`${SELECTOR_DATA_TOGGLE_FULLSCREEN} i`).removeClass(this._config.iconMinimize).addClass(this._config.iconMaximize) $('body').removeClass(CLASS_NAME_FULLSCREEN_MODE) $(`${SELECTOR_TAB_EMPTY}, ${SELECTOR_TAB_LOADING}`).height('100%') $(SELECTOR_CONTENT_WRAPPER).height('100%') $(SELECTOR_CONTENT_IFRAME).height('100%') } else { $(`${SELECTOR_DATA_TOGGLE_FULLSCREEN} i`).removeClass(this._config.iconMaximize).addClass(this._config.iconMinimize) $('body').addClass(CLASS_NAME_FULLSCREEN_MODE) } $(window).trigger('resize') this._fixHeight(true) } // Private _init() { const usingDefTab = ($(SELECTOR_TAB_CONTENT).children().length > 2) this._setupListeners() this._fixHeight(true) if (usingDefTab) { const $el = $(`${SELECTOR_TAB_PANE}`).first() const uniqueName = $el.attr('id').replace('panel-', '') const navId = `#tab-${uniqueName}` this.switchTab(navId, true) } } _initFrameElement() { if (window.frameElement && this._config.autoIframeMode) { const $body = $('body') $body.addClass(CLASS_NAME_IFRAME_MODE) if (this._config.autoDarkMode) { $body.addClass('dark-mode') } } } _navScroll(offset) { const leftPos = $(SELECTOR_TAB_NAVBAR_NAV).scrollLeft() $(SELECTOR_TAB_NAVBAR_NAV).animate({ scrollLeft: (leftPos + offset) }, 250, 'linear') } _setupListeners() { $(window).on('resize', () => { setTimeout(() => { this._fixHeight() }, 1) }) if ($(SELECTOR_CONTENT_WRAPPER).hasClass(CLASS_NAME_IFRAME_MODE)) { $(document).on('click', `${SELECTOR_SIDEBAR_MENU_ITEM}, ${SELECTOR_SIDEBAR_SEARCH_ITEM}`, e => { e.preventDefault() this.openTabSidebar(e.target) }) if (this._config.useNavbarItems) { $(document).on('click', `${SELECTOR_HEADER_MENU_ITEM}, ${SELECTOR_HEADER_DROPDOWN_ITEM}`, e => { e.preventDefault() this.openTabSidebar(e.target) }) } } $(document).on('click', SELECTOR_TAB_NAVBAR_NAV_LINK, e => { e.preventDefault() this.onTabClick(e.target) this.switchTab(e.target) }) $(document).on('click', SELECTOR_TAB_NAVBAR_NAV_LINK, e => { e.preventDefault() this.onTabClick(e.target) this.switchTab(e.target) }) $(document).on('click', SELECTOR_DATA_TOGGLE_CLOSE, e => { e.preventDefault() let { target } = e if (target.nodeName === 'I') { target = e.target.offsetParent } this.removeActiveTab(target.attributes['data-type'] ? target.attributes['data-type'].nodeValue : null, target) }) $(document).on('click', SELECTOR_DATA_TOGGLE_FULLSCREEN, e => { e.preventDefault() this.toggleFullscreen() }) let mousedown = false let mousedownInterval = null $(document).on('mousedown', SELECTOR_DATA_TOGGLE_SCROLL_LEFT, e => { e.preventDefault() clearInterval(mousedownInterval) let { scrollOffset } = this._config if (!this._config.scrollBehaviorSwap) { scrollOffset = -scrollOffset } mousedown = true this._navScroll(scrollOffset) mousedownInterval = setInterval(() => { this._navScroll(scrollOffset) }, 250) }) $(document).on('mousedown', SELECTOR_DATA_TOGGLE_SCROLL_RIGHT, e => { e.preventDefault() clearInterval(mousedownInterval) let { scrollOffset } = this._config if (this._config.scrollBehaviorSwap) { scrollOffset = -scrollOffset } mousedown = true this._navScroll(scrollOffset) mousedownInterval = setInterval(() => { this._navScroll(scrollOffset) }, 250) }) $(document).on('mouseup', () => { if (mousedown) { mousedown = false clearInterval(mousedownInterval) mousedownInterval = null } }) } _setItemActive(href) { $(`${SELECTOR_SIDEBAR_MENU_ITEM}, ${SELECTOR_HEADER_DROPDOWN_ITEM}`).removeClass('active') $(SELECTOR_HEADER_MENU_ITEM).parent().removeClass('active') const $headerMenuItem = $(`${SELECTOR_HEADER_MENU_ITEM}[href$="${href}"]`) const $headerDropdownItem = $(`${SELECTOR_HEADER_DROPDOWN_ITEM}[href$="${href}"]`) const $sidebarMenuItem = $(`${SELECTOR_SIDEBAR_MENU_ITEM}[href$="${href}"]`) $headerMenuItem.each((i, e) => { $(e).parent().addClass('active') }) $headerDropdownItem.each((i, e) => { $(e).addClass('active') }) $sidebarMenuItem.each((i, e) => { $(e).addClass('active') $(e).parents('.nav-treeview').prevAll('.nav-link').addClass('active') }) } _fixHeight(tabEmpty = false) { if ($('body').hasClass(CLASS_NAME_FULLSCREEN_MODE)) { const windowHeight = $(window).height() const navbarHeight = $(SELECTOR_TAB_NAV).outerHeight() $(`${SELECTOR_TAB_EMPTY}, ${SELECTOR_TAB_LOADING}, ${SELECTOR_CONTENT_IFRAME}`).height(windowHeight - navbarHeight) $(SELECTOR_CONTENT_WRAPPER).height(windowHeight) } else { const contentWrapperHeight = parseFloat($(SELECTOR_CONTENT_WRAPPER).css('height')) const navbarHeight = $(SELECTOR_TAB_NAV).outerHeight() if (tabEmpty == true) { setTimeout(() => { $(`${SELECTOR_TAB_EMPTY}, ${SELECTOR_TAB_LOADING}`).height(contentWrapperHeight - navbarHeight) }, 50) } else { $(SELECTOR_CONTENT_IFRAME).height(contentWrapperHeight - navbarHeight) } } } // Static // eslint-disable-next-line max-params static _jQueryInterface(config, name, link, id, reload) { if ($(SELECTOR_DATA_TOGGLE).length > 0) { let data = $(this).data(DATA_KEY) if (!data) { data = $(this).data() } const _options = $.extend({}, Default, typeof config === 'object' ? config : data) localStorage.setItem('AdminLTE:IFrame:Options', JSON.stringify(_options)) const plugin = new IFrame($(this), _options) window.iFrameInstance = plugin $(this).data(DATA_KEY, typeof config === 'object' ? config : { link, name, id, reload, ...data }) if (typeof config === 'string' && /createTab|openTabSidebar|switchTab|removeActiveTab/.test(config)) { plugin[config](name, link, id, reload) } } else { window.iFrameInstance = new IFrame($(this), JSON.parse(localStorage.getItem('AdminLTE:IFrame:Options')))._initFrameElement() } } } /** * Data API * ==================================================== */ $(window).on('load', () => { IFrame._jQueryInterface.call($(SELECTOR_DATA_TOGGLE)) }) /** * jQuery API * ==================================================== */ $.fn[NAME] = IFrame._jQueryInterface $.fn[NAME].Constructor = IFrame $.fn[NAME].noConflict = function () { $.fn[NAME] = JQUERY_NO_CONFLICT return IFrame._jQueryInterface } export default IFrame Toasts.js 0000644 00000012667 15025021451 0006366 0 ustar 00 // noinspection EqualityComparisonWithCoercionJS /** * -------------------------------------------- * AdminLTE Toasts.js * License MIT * -------------------------------------------- */ import $ from 'jquery' /** * Constants * ==================================================== */ const NAME = 'Toasts' const DATA_KEY = 'lte.toasts' const EVENT_KEY = `.${DATA_KEY}` const JQUERY_NO_CONFLICT = $.fn[NAME] const EVENT_INIT = `init${EVENT_KEY}` const EVENT_CREATED = `created${EVENT_KEY}` const EVENT_REMOVED = `removed${EVENT_KEY}` const SELECTOR_CONTAINER_TOP_RIGHT = '#toastsContainerTopRight' const SELECTOR_CONTAINER_TOP_LEFT = '#toastsContainerTopLeft' const SELECTOR_CONTAINER_BOTTOM_RIGHT = '#toastsContainerBottomRight' const SELECTOR_CONTAINER_BOTTOM_LEFT = '#toastsContainerBottomLeft' const CLASS_NAME_TOP_RIGHT = 'toasts-top-right' const CLASS_NAME_TOP_LEFT = 'toasts-top-left' const CLASS_NAME_BOTTOM_RIGHT = 'toasts-bottom-right' const CLASS_NAME_BOTTOM_LEFT = 'toasts-bottom-left' const POSITION_TOP_RIGHT = 'topRight' const POSITION_TOP_LEFT = 'topLeft' const POSITION_BOTTOM_RIGHT = 'bottomRight' const POSITION_BOTTOM_LEFT = 'bottomLeft' const Default = { position: POSITION_TOP_RIGHT, fixed: true, autohide: false, autoremove: true, delay: 1000, fade: true, icon: null, image: null, imageAlt: null, imageHeight: '25px', title: null, subtitle: null, close: true, body: null, class: null } /** * Class Definition * ==================================================== */ class Toasts { constructor(element, config) { this._config = config this._prepareContainer() $('body').trigger($.Event(EVENT_INIT)) } // Public create() { const toast = $('<div class="toast" role="alert" aria-live="assertive" aria-atomic="true"/>') toast.data('autohide', this._config.autohide) toast.data('animation', this._config.fade) if (this._config.class) { toast.addClass(this._config.class) } if (this._config.delay && this._config.delay != 500) { toast.data('delay', this._config.delay) } const toastHeader = $('<div class="toast-header">') if (this._config.image != null) { const toastImage = $('<img />').addClass('rounded mr-2').attr('src', this._config.image).attr('alt', this._config.imageAlt) if (this._config.imageHeight != null) { toastImage.height(this._config.imageHeight).width('auto') } toastHeader.append(toastImage) } if (this._config.icon != null) { toastHeader.append($('<i />').addClass('mr-2').addClass(this._config.icon)) } if (this._config.title != null) { toastHeader.append($('<strong />').addClass('mr-auto').html(this._config.title)) } if (this._config.subtitle != null) { toastHeader.append($('<small />').html(this._config.subtitle)) } if (this._config.close == true) { const toastClose = $('<button data-dismiss="toast" />').attr('type', 'button').addClass('ml-2 mb-1 close').attr('aria-label', 'Close').append('<span aria-hidden="true">×</span>') if (this._config.title == null) { toastClose.toggleClass('ml-2 ml-auto') } toastHeader.append(toastClose) } toast.append(toastHeader) if (this._config.body != null) { toast.append($('<div class="toast-body" />').html(this._config.body)) } $(this._getContainerId()).prepend(toast) const $body = $('body') $body.trigger($.Event(EVENT_CREATED)) toast.toast('show') if (this._config.autoremove) { toast.on('hidden.bs.toast', function () { $(this).delay(200).remove() $body.trigger($.Event(EVENT_REMOVED)) }) } } // Static _getContainerId() { if (this._config.position === POSITION_TOP_RIGHT) { return SELECTOR_CONTAINER_TOP_RIGHT } if (this._config.position === POSITION_TOP_LEFT) { return SELECTOR_CONTAINER_TOP_LEFT } if (this._config.position === POSITION_BOTTOM_RIGHT) { return SELECTOR_CONTAINER_BOTTOM_RIGHT } if (this._config.position === POSITION_BOTTOM_LEFT) { return SELECTOR_CONTAINER_BOTTOM_LEFT } } _prepareContainer() { if ($(this._getContainerId()).length === 0) { const container = $('<div />').attr('id', this._getContainerId().replace('#', '')) if (this._config.position == POSITION_TOP_RIGHT) { container.addClass(CLASS_NAME_TOP_RIGHT) } else if (this._config.position == POSITION_TOP_LEFT) { container.addClass(CLASS_NAME_TOP_LEFT) } else if (this._config.position == POSITION_BOTTOM_RIGHT) { container.addClass(CLASS_NAME_BOTTOM_RIGHT) } else if (this._config.position == POSITION_BOTTOM_LEFT) { container.addClass(CLASS_NAME_BOTTOM_LEFT) } $('body').append(container) } if (this._config.fixed) { $(this._getContainerId()).addClass('fixed') } else { $(this._getContainerId()).removeClass('fixed') } } // Static static _jQueryInterface(option, config) { return this.each(function () { const _options = $.extend({}, Default, config) const toast = new Toasts($(this), _options) if (option === 'create') { toast[option]() } }) } } /** * jQuery API * ==================================================== */ $.fn[NAME] = Toasts._jQueryInterface $.fn[NAME].Constructor = Toasts $.fn[NAME].noConflict = function () { $.fn[NAME] = JQUERY_NO_CONFLICT return Toasts._jQueryInterface } export default Toasts NavbarSearch.js 0000644 00000005010 15025021451 0007430 0 ustar 00 /** * -------------------------------------------- * AdminLTE NavbarSearch.js * License MIT * -------------------------------------------- */ import $ from 'jquery' /** * Constants * ==================================================== */ const NAME = 'NavbarSearch' const DATA_KEY = 'lte.navbar-search' const JQUERY_NO_CONFLICT = $.fn[NAME] const SELECTOR_TOGGLE_BUTTON = '[data-widget="navbar-search"]' const SELECTOR_SEARCH_BLOCK = '.navbar-search-block' const SELECTOR_SEARCH_INPUT = '.form-control' const CLASS_NAME_OPEN = 'navbar-search-open' const Default = { resetOnClose: true, target: SELECTOR_SEARCH_BLOCK } /** * Class Definition * ==================================================== */ class NavbarSearch { constructor(_element, _options) { this._element = _element this._config = _options } // Public open() { $(this._config.target).css('display', 'flex').hide().fadeIn().addClass(CLASS_NAME_OPEN) $(`${this._config.target} ${SELECTOR_SEARCH_INPUT}`).focus() } close() { $(this._config.target).fadeOut().removeClass(CLASS_NAME_OPEN) if (this._config.resetOnClose) { $(`${this._config.target} ${SELECTOR_SEARCH_INPUT}`).val('') } } toggle() { if ($(this._config.target).hasClass(CLASS_NAME_OPEN)) { this.close() } else { this.open() } } // Static static _jQueryInterface(config) { return this.each(function () { let data = $(this).data(DATA_KEY) const _config = $.extend({}, Default, typeof config === 'object' ? config : $(this).data()) if (!data) { data = new NavbarSearch($(this), _config) $(this).data(DATA_KEY, data) } else if (typeof config === 'string') { if (typeof data[config] === 'undefined') { throw new TypeError(`No method named "${config}"`) } data[config]() } }) } } /** * Data API * ==================================================== */ $(document).on('click', SELECTOR_TOGGLE_BUTTON, event => { event.preventDefault() let button = $(event.currentTarget) if (button.data('widget') !== 'navbar-search') { button = button.closest(SELECTOR_TOGGLE_BUTTON) } NavbarSearch._jQueryInterface.call(button, 'toggle') }) /** * jQuery API * ==================================================== */ $.fn[NAME] = NavbarSearch._jQueryInterface $.fn[NAME].Constructor = NavbarSearch $.fn[NAME].noConflict = function () { $.fn[NAME] = JQUERY_NO_CONFLICT return NavbarSearch._jQueryInterface } export default NavbarSearch CardRefresh.js 0000644 00000010417 15025021451 0007270 0 ustar 00 /** * -------------------------------------------- * AdminLTE CardRefresh.js * License MIT * -------------------------------------------- */ import $ from 'jquery' /** * Constants * ==================================================== */ const NAME = 'CardRefresh' const DATA_KEY = 'lte.cardrefresh' const EVENT_KEY = `.${DATA_KEY}` const JQUERY_NO_CONFLICT = $.fn[NAME] const EVENT_LOADED = `loaded${EVENT_KEY}` const EVENT_OVERLAY_ADDED = `overlay.added${EVENT_KEY}` const EVENT_OVERLAY_REMOVED = `overlay.removed${EVENT_KEY}` const CLASS_NAME_CARD = 'card' const SELECTOR_CARD = `.${CLASS_NAME_CARD}` const SELECTOR_DATA_REFRESH = '[data-card-widget="card-refresh"]' const Default = { source: '', sourceSelector: '', params: {}, trigger: SELECTOR_DATA_REFRESH, content: '.card-body', loadInContent: true, loadOnInit: true, loadErrorTemplate: true, responseType: '', overlayTemplate: '<div class="overlay"><i class="fas fa-2x fa-sync-alt fa-spin"></i></div>', errorTemplate: '<span class="text-danger"></span>', onLoadStart() {}, onLoadDone(response) { return response }, onLoadFail(_jqXHR, _textStatus, _errorThrown) {} } class CardRefresh { constructor(element, settings) { this._element = element this._parent = element.parents(SELECTOR_CARD).first() this._settings = $.extend({}, Default, settings) this._overlay = $(this._settings.overlayTemplate) if (element.hasClass(CLASS_NAME_CARD)) { this._parent = element } if (this._settings.source === '') { throw new Error('Source url was not defined. Please specify a url in your CardRefresh source option.') } } load() { this._addOverlay() this._settings.onLoadStart.call($(this)) $.get(this._settings.source, this._settings.params, response => { if (this._settings.loadInContent) { if (this._settings.sourceSelector !== '') { response = $(response).find(this._settings.sourceSelector).html() } this._parent.find(this._settings.content).html(response) } this._settings.onLoadDone.call($(this), response) this._removeOverlay() }, this._settings.responseType !== '' && this._settings.responseType) .fail((jqXHR, textStatus, errorThrown) => { this._removeOverlay() if (this._settings.loadErrorTemplate) { const msg = $(this._settings.errorTemplate).text(errorThrown) this._parent.find(this._settings.content).empty().append(msg) } this._settings.onLoadFail.call($(this), jqXHR, textStatus, errorThrown) }) $(this._element).trigger($.Event(EVENT_LOADED)) } _addOverlay() { this._parent.append(this._overlay) $(this._element).trigger($.Event(EVENT_OVERLAY_ADDED)) } _removeOverlay() { this._parent.find(this._overlay).remove() $(this._element).trigger($.Event(EVENT_OVERLAY_REMOVED)) } // Private _init() { $(this).find(this._settings.trigger).on('click', () => { this.load() }) if (this._settings.loadOnInit) { this.load() } } // Static static _jQueryInterface(config) { return this.each(function () { let data = $(this).data(DATA_KEY) const _config = $.extend({}, Default, typeof config === 'object' ? config : $(this).data()) if (!data) { data = new CardRefresh($(this), _config) $(this).data(DATA_KEY, data) data._init() } else if (typeof config === 'string') { if (typeof data[config] === 'undefined') { throw new TypeError(`No method named "${config}"`) } data[config]() } else if (typeof config === 'undefined') { data._init() } }) } } /** * Data API * ==================================================== */ $(document).on('click', SELECTOR_DATA_REFRESH, function (event) { if (event) { event.preventDefault() } CardRefresh._jQueryInterface.call($(this), 'load') }) $(() => { $(SELECTOR_DATA_REFRESH).each(function () { CardRefresh._jQueryInterface.call($(this)) }) }) /** * jQuery API * ==================================================== */ $.fn[NAME] = CardRefresh._jQueryInterface $.fn[NAME].Constructor = CardRefresh $.fn[NAME].noConflict = function () { $.fn[NAME] = JQUERY_NO_CONFLICT return CardRefresh._jQueryInterface } export default CardRefresh ControlSidebar.js 0000644 00000023700 15025021451 0010011 0 ustar 00 /** * -------------------------------------------- * AdminLTE ControlSidebar.js * License MIT * -------------------------------------------- */ import $ from 'jquery' /** * Constants * ==================================================== */ const NAME = 'ControlSidebar' const DATA_KEY = 'lte.controlsidebar' const EVENT_KEY = `.${DATA_KEY}` const JQUERY_NO_CONFLICT = $.fn[NAME] const EVENT_COLLAPSED = `collapsed${EVENT_KEY}` const EVENT_COLLAPSED_DONE = `collapsed-done${EVENT_KEY}` const EVENT_EXPANDED = `expanded${EVENT_KEY}` const SELECTOR_CONTROL_SIDEBAR = '.control-sidebar' const SELECTOR_CONTROL_SIDEBAR_CONTENT = '.control-sidebar-content' const SELECTOR_DATA_TOGGLE = '[data-widget="control-sidebar"]' const SELECTOR_HEADER = '.main-header' const SELECTOR_FOOTER = '.main-footer' const CLASS_NAME_CONTROL_SIDEBAR_ANIMATE = 'control-sidebar-animate' const CLASS_NAME_CONTROL_SIDEBAR_OPEN = 'control-sidebar-open' const CLASS_NAME_CONTROL_SIDEBAR_SLIDE = 'control-sidebar-slide-open' const CLASS_NAME_LAYOUT_FIXED = 'layout-fixed' const CLASS_NAME_NAVBAR_FIXED = 'layout-navbar-fixed' const CLASS_NAME_NAVBAR_SM_FIXED = 'layout-sm-navbar-fixed' const CLASS_NAME_NAVBAR_MD_FIXED = 'layout-md-navbar-fixed' const CLASS_NAME_NAVBAR_LG_FIXED = 'layout-lg-navbar-fixed' const CLASS_NAME_NAVBAR_XL_FIXED = 'layout-xl-navbar-fixed' const CLASS_NAME_FOOTER_FIXED = 'layout-footer-fixed' const CLASS_NAME_FOOTER_SM_FIXED = 'layout-sm-footer-fixed' const CLASS_NAME_FOOTER_MD_FIXED = 'layout-md-footer-fixed' const CLASS_NAME_FOOTER_LG_FIXED = 'layout-lg-footer-fixed' const CLASS_NAME_FOOTER_XL_FIXED = 'layout-xl-footer-fixed' const Default = { controlsidebarSlide: true, scrollbarTheme: 'os-theme-light', scrollbarAutoHide: 'l', target: SELECTOR_CONTROL_SIDEBAR, animationSpeed: 300 } /** * Class Definition * ==================================================== */ class ControlSidebar { constructor(element, config) { this._element = element this._config = config } // Public collapse() { const $body = $('body') const $html = $('html') // Show the control sidebar if (this._config.controlsidebarSlide) { $html.addClass(CLASS_NAME_CONTROL_SIDEBAR_ANIMATE) $body.removeClass(CLASS_NAME_CONTROL_SIDEBAR_SLIDE).delay(300).queue(function () { $(SELECTOR_CONTROL_SIDEBAR).hide() $html.removeClass(CLASS_NAME_CONTROL_SIDEBAR_ANIMATE) $(this).dequeue() }) } else { $body.removeClass(CLASS_NAME_CONTROL_SIDEBAR_OPEN) } $(this._element).trigger($.Event(EVENT_COLLAPSED)) setTimeout(() => { $(this._element).trigger($.Event(EVENT_COLLAPSED_DONE)) }, this._config.animationSpeed) } show(toggle = false) { const $body = $('body') const $html = $('html') if (toggle) { $(SELECTOR_CONTROL_SIDEBAR).hide() } // Collapse the control sidebar if (this._config.controlsidebarSlide) { $html.addClass(CLASS_NAME_CONTROL_SIDEBAR_ANIMATE) $(this._config.target).show().delay(10).queue(function () { $body.addClass(CLASS_NAME_CONTROL_SIDEBAR_SLIDE).delay(300).queue(function () { $html.removeClass(CLASS_NAME_CONTROL_SIDEBAR_ANIMATE) $(this).dequeue() }) $(this).dequeue() }) } else { $body.addClass(CLASS_NAME_CONTROL_SIDEBAR_OPEN) } this._fixHeight() this._fixScrollHeight() $(this._element).trigger($.Event(EVENT_EXPANDED)) } toggle() { const $body = $('body') const { target } = this._config const notVisible = !$(target).is(':visible') const shouldClose = ($body.hasClass(CLASS_NAME_CONTROL_SIDEBAR_OPEN) || $body.hasClass(CLASS_NAME_CONTROL_SIDEBAR_SLIDE)) const shouldToggle = notVisible && ($body.hasClass(CLASS_NAME_CONTROL_SIDEBAR_OPEN) || $body.hasClass(CLASS_NAME_CONTROL_SIDEBAR_SLIDE)) if (notVisible || shouldToggle) { // Open the control sidebar this.show(notVisible) } else if (shouldClose) { // Close the control sidebar this.collapse() } } // Private _init() { const $body = $('body') const shouldNotHideAll = $body.hasClass(CLASS_NAME_CONTROL_SIDEBAR_OPEN) || $body.hasClass(CLASS_NAME_CONTROL_SIDEBAR_SLIDE) if (shouldNotHideAll) { $(SELECTOR_CONTROL_SIDEBAR).not(this._config.target).hide() $(this._config.target).css('display', 'block') } else { $(SELECTOR_CONTROL_SIDEBAR).hide() } this._fixHeight() this._fixScrollHeight() $(window).resize(() => { this._fixHeight() this._fixScrollHeight() }) $(window).scroll(() => { const $body = $('body') const shouldFixHeight = $body.hasClass(CLASS_NAME_CONTROL_SIDEBAR_OPEN) || $body.hasClass(CLASS_NAME_CONTROL_SIDEBAR_SLIDE) if (shouldFixHeight) { this._fixScrollHeight() } }) } _isNavbarFixed() { const $body = $('body') return ( $body.hasClass(CLASS_NAME_NAVBAR_FIXED) || $body.hasClass(CLASS_NAME_NAVBAR_SM_FIXED) || $body.hasClass(CLASS_NAME_NAVBAR_MD_FIXED) || $body.hasClass(CLASS_NAME_NAVBAR_LG_FIXED) || $body.hasClass(CLASS_NAME_NAVBAR_XL_FIXED) ) } _isFooterFixed() { const $body = $('body') return ( $body.hasClass(CLASS_NAME_FOOTER_FIXED) || $body.hasClass(CLASS_NAME_FOOTER_SM_FIXED) || $body.hasClass(CLASS_NAME_FOOTER_MD_FIXED) || $body.hasClass(CLASS_NAME_FOOTER_LG_FIXED) || $body.hasClass(CLASS_NAME_FOOTER_XL_FIXED) ) } _fixScrollHeight() { const $body = $('body') const $controlSidebar = $(this._config.target) if (!$body.hasClass(CLASS_NAME_LAYOUT_FIXED)) { return } const heights = { scroll: $(document).height(), window: $(window).height(), header: $(SELECTOR_HEADER).outerHeight(), footer: $(SELECTOR_FOOTER).outerHeight() } const positions = { bottom: Math.abs((heights.window + $(window).scrollTop()) - heights.scroll), top: $(window).scrollTop() } const navbarFixed = this._isNavbarFixed() && $(SELECTOR_HEADER).css('position') === 'fixed' const footerFixed = this._isFooterFixed() && $(SELECTOR_FOOTER).css('position') === 'fixed' const $controlsidebarContent = $(`${this._config.target}, ${this._config.target} ${SELECTOR_CONTROL_SIDEBAR_CONTENT}`) if (positions.top === 0 && positions.bottom === 0) { $controlSidebar.css({ bottom: heights.footer, top: heights.header }) $controlsidebarContent.css('height', heights.window - (heights.header + heights.footer)) } else if (positions.bottom <= heights.footer) { if (footerFixed === false) { const top = heights.header - positions.top $controlSidebar.css('bottom', heights.footer - positions.bottom).css('top', top >= 0 ? top : 0) $controlsidebarContent.css('height', heights.window - (heights.footer - positions.bottom)) } else { $controlSidebar.css('bottom', heights.footer) } } else if (positions.top <= heights.header) { if (navbarFixed === false) { $controlSidebar.css('top', heights.header - positions.top) $controlsidebarContent.css('height', heights.window - (heights.header - positions.top)) } else { $controlSidebar.css('top', heights.header) } } else if (navbarFixed === false) { $controlSidebar.css('top', 0) $controlsidebarContent.css('height', heights.window) } else { $controlSidebar.css('top', heights.header) } if (footerFixed && navbarFixed) { $controlsidebarContent.css('height', '100%') $controlSidebar.css('height', '') } else if (footerFixed || navbarFixed) { $controlsidebarContent.css('height', '100%') $controlsidebarContent.css('height', '') } } _fixHeight() { const $body = $('body') const $controlSidebar = $(`${this._config.target} ${SELECTOR_CONTROL_SIDEBAR_CONTENT}`) if (!$body.hasClass(CLASS_NAME_LAYOUT_FIXED)) { $controlSidebar.attr('style', '') return } const heights = { window: $(window).height(), header: $(SELECTOR_HEADER).outerHeight(), footer: $(SELECTOR_FOOTER).outerHeight() } let sidebarHeight = heights.window - heights.header if (this._isFooterFixed() && $(SELECTOR_FOOTER).css('position') === 'fixed') { sidebarHeight = heights.window - heights.header - heights.footer } $controlSidebar.css('height', sidebarHeight) if (typeof $.fn.overlayScrollbars !== 'undefined') { $controlSidebar.overlayScrollbars({ className: this._config.scrollbarTheme, sizeAutoCapable: true, scrollbars: { autoHide: this._config.scrollbarAutoHide, clickScrolling: true } }) } } // Static static _jQueryInterface(config) { return this.each(function () { let data = $(this).data(DATA_KEY) const _config = $.extend({}, Default, typeof config === 'object' ? config : $(this).data()) if (!data) { data = new ControlSidebar($(this), _config) $(this).data(DATA_KEY, data) data._init() } else if (typeof config === 'string') { if (typeof data[config] === 'undefined') { throw new TypeError(`No method named "${config}"`) } data[config]() } else if (typeof config === 'undefined') { data._init() } }) } } /** * * Data Api implementation * ==================================================== */ $(document).on('click', SELECTOR_DATA_TOGGLE, function (event) { event.preventDefault() ControlSidebar._jQueryInterface.call($(this), 'toggle') }) $(document).ready(() => { ControlSidebar._jQueryInterface.call($(SELECTOR_DATA_TOGGLE), '_init') }) /** * jQuery API * ==================================================== */ $.fn[NAME] = ControlSidebar._jQueryInterface $.fn[NAME].Constructor = ControlSidebar $.fn[NAME].noConflict = function () { $.fn[NAME] = JQUERY_NO_CONFLICT return ControlSidebar._jQueryInterface } export default ControlSidebar TodoList.js 0000644 00000004572 15025021451 0006646 0 ustar 00 /** * -------------------------------------------- * AdminLTE TodoList.js * License MIT * -------------------------------------------- */ import $ from 'jquery' /** * Constants * ==================================================== */ const NAME = 'TodoList' const DATA_KEY = 'lte.todolist' const JQUERY_NO_CONFLICT = $.fn[NAME] const SELECTOR_DATA_TOGGLE = '[data-widget="todo-list"]' const CLASS_NAME_TODO_LIST_DONE = 'done' const Default = { onCheck(item) { return item }, onUnCheck(item) { return item } } /** * Class Definition * ==================================================== */ class TodoList { constructor(element, config) { this._config = config this._element = element this._init() } // Public toggle(item) { item.parents('li').toggleClass(CLASS_NAME_TODO_LIST_DONE) if (!$(item).prop('checked')) { this.unCheck(item) return } this.check(item) } check(item) { this._config.onCheck(item) } unCheck(item) { this._config.onUnCheck(item) } // Private _init() { const $toggleSelector = this._element $toggleSelector.find('input:checkbox:checked').parents('li').toggleClass(CLASS_NAME_TODO_LIST_DONE) $toggleSelector.on('change', 'input:checkbox', event => { this.toggle($(event.target)) }) } // Static static _jQueryInterface(config) { return this.each(function () { let data = $(this).data(DATA_KEY) const _config = $.extend({}, Default, typeof config === 'object' ? config : $(this).data()) if (!data) { data = new TodoList($(this), _config) $(this).data(DATA_KEY, data) data._init() } else if (typeof config === 'string') { if (typeof data[config] === 'undefined') { throw new TypeError(`No method named "${config}"`) } data[config]() } else if (typeof config === 'undefined') { data._init() } }) } } /** * Data API * ==================================================== */ $(window).on('load', () => { TodoList._jQueryInterface.call($(SELECTOR_DATA_TOGGLE)) }) /** * jQuery API * ==================================================== */ $.fn[NAME] = TodoList._jQueryInterface $.fn[NAME].Constructor = TodoList $.fn[NAME].noConflict = function () { $.fn[NAME] = JQUERY_NO_CONFLICT return TodoList._jQueryInterface } export default TodoList Layout.js 0000644 00000016164 15025021451 0006362 0 ustar 00 /** * -------------------------------------------- * AdminLTE Layout.js * License MIT * -------------------------------------------- */ import $ from 'jquery' /** * Constants * ==================================================== */ const NAME = 'Layout' const DATA_KEY = 'lte.layout' const JQUERY_NO_CONFLICT = $.fn[NAME] const SELECTOR_HEADER = '.main-header' const SELECTOR_MAIN_SIDEBAR = '.main-sidebar' const SELECTOR_SIDEBAR = '.main-sidebar .sidebar' const SELECTOR_CONTENT = '.content-wrapper' const SELECTOR_CONTROL_SIDEBAR_CONTENT = '.control-sidebar-content' const SELECTOR_CONTROL_SIDEBAR_BTN = '[data-widget="control-sidebar"]' const SELECTOR_FOOTER = '.main-footer' const SELECTOR_PUSHMENU_BTN = '[data-widget="pushmenu"]' const SELECTOR_LOGIN_BOX = '.login-box' const SELECTOR_REGISTER_BOX = '.register-box' const SELECTOR_PRELOADER = '.preloader' const CLASS_NAME_SIDEBAR_COLLAPSED = 'sidebar-collapse' const CLASS_NAME_SIDEBAR_FOCUSED = 'sidebar-focused' const CLASS_NAME_LAYOUT_FIXED = 'layout-fixed' const CLASS_NAME_CONTROL_SIDEBAR_SLIDE_OPEN = 'control-sidebar-slide-open' const CLASS_NAME_CONTROL_SIDEBAR_OPEN = 'control-sidebar-open' const CLASS_NAME_IFRAME_MODE = 'iframe-mode' const Default = { scrollbarTheme: 'os-theme-light', scrollbarAutoHide: 'l', panelAutoHeight: true, panelAutoHeightMode: 'min-height', preloadDuration: 200, loginRegisterAutoHeight: true } /** * Class Definition * ==================================================== */ class Layout { constructor(element, config) { this._config = config this._element = element } // Public fixLayoutHeight(extra = null) { const $body = $('body') let controlSidebar = 0 if ($body.hasClass(CLASS_NAME_CONTROL_SIDEBAR_SLIDE_OPEN) || $body.hasClass(CLASS_NAME_CONTROL_SIDEBAR_OPEN) || extra === 'control_sidebar') { controlSidebar = $(SELECTOR_CONTROL_SIDEBAR_CONTENT).outerHeight() } const heights = { window: $(window).height(), header: $(SELECTOR_HEADER).length > 0 ? $(SELECTOR_HEADER).outerHeight() : 0, footer: $(SELECTOR_FOOTER).length > 0 ? $(SELECTOR_FOOTER).outerHeight() : 0, sidebar: $(SELECTOR_SIDEBAR).length > 0 ? $(SELECTOR_SIDEBAR).height() : 0, controlSidebar } const max = this._max(heights) let offset = this._config.panelAutoHeight if (offset === true) { offset = 0 } const $contentSelector = $(SELECTOR_CONTENT) if (offset !== false) { if (max === heights.controlSidebar) { $contentSelector.css(this._config.panelAutoHeightMode, (max + offset)) } else if (max === heights.window) { $contentSelector.css(this._config.panelAutoHeightMode, (max + offset) - heights.header - heights.footer) } else { $contentSelector.css(this._config.panelAutoHeightMode, (max + offset) - heights.header) } if (this._isFooterFixed()) { $contentSelector.css(this._config.panelAutoHeightMode, parseFloat($contentSelector.css(this._config.panelAutoHeightMode)) + heights.footer) } } if (!$body.hasClass(CLASS_NAME_LAYOUT_FIXED)) { return } if (typeof $.fn.overlayScrollbars !== 'undefined') { $(SELECTOR_SIDEBAR).overlayScrollbars({ className: this._config.scrollbarTheme, sizeAutoCapable: true, scrollbars: { autoHide: this._config.scrollbarAutoHide, clickScrolling: true } }) } else { $(SELECTOR_SIDEBAR).css('overflow-y', 'auto') } } fixLoginRegisterHeight() { const $body = $('body') const $selector = $(`${SELECTOR_LOGIN_BOX}, ${SELECTOR_REGISTER_BOX}`) if ($body.hasClass(CLASS_NAME_IFRAME_MODE)) { $body.css('height', '100%') $('.wrapper').css('height', '100%') $('html').css('height', '100%') } else if ($selector.length === 0) { $body.css('height', 'auto') $('html').css('height', 'auto') } else { const boxHeight = $selector.height() if ($body.css(this._config.panelAutoHeightMode) !== boxHeight) { $body.css(this._config.panelAutoHeightMode, boxHeight) } } } // Private _init() { // Activate layout height watcher this.fixLayoutHeight() if (this._config.loginRegisterAutoHeight === true) { this.fixLoginRegisterHeight() } else if (this._config.loginRegisterAutoHeight === parseInt(this._config.loginRegisterAutoHeight, 10)) { setInterval(this.fixLoginRegisterHeight, this._config.loginRegisterAutoHeight) } $(SELECTOR_SIDEBAR) .on('collapsed.lte.treeview expanded.lte.treeview', () => { this.fixLayoutHeight() }) $(SELECTOR_MAIN_SIDEBAR) .on('mouseenter mouseleave', () => { if ($('body').hasClass(CLASS_NAME_SIDEBAR_COLLAPSED)) { this.fixLayoutHeight() } }) $(SELECTOR_PUSHMENU_BTN) .on('collapsed.lte.pushmenu shown.lte.pushmenu', () => { setTimeout(() => { this.fixLayoutHeight() }, 300) }) $(SELECTOR_CONTROL_SIDEBAR_BTN) .on('collapsed.lte.controlsidebar', () => { this.fixLayoutHeight() }) .on('expanded.lte.controlsidebar', () => { this.fixLayoutHeight('control_sidebar') }) $(window).resize(() => { this.fixLayoutHeight() }) setTimeout(() => { $('body.hold-transition').removeClass('hold-transition') }, 50) setTimeout(() => { const $preloader = $(SELECTOR_PRELOADER) if ($preloader) { $preloader.css('height', 0) setTimeout(() => { $preloader.children().hide() }, 200) } }, this._config.preloadDuration) } _max(numbers) { // Calculate the maximum number in a list let max = 0 Object.keys(numbers).forEach(key => { if (numbers[key] > max) { max = numbers[key] } }) return max } _isFooterFixed() { return $(SELECTOR_FOOTER).css('position') === 'fixed' } // Static static _jQueryInterface(config) { return this.each(function () { let data = $(this).data(DATA_KEY) const _config = $.extend({}, Default, typeof config === 'object' ? config : $(this).data()) if (!data) { data = new Layout($(this), _config) $(this).data(DATA_KEY, data) data._init() } else if (typeof config === 'string') { if (typeof data[config] === 'undefined') { throw new TypeError(`No method named "${config}"`) } data[config]() } else if (typeof config === 'undefined') { data._init() } }) } } /** * Data API * ==================================================== */ $(window).on('load', () => { Layout._jQueryInterface.call($('body')) }) $(`${SELECTOR_SIDEBAR} a`) .on('focusin', () => { $(SELECTOR_MAIN_SIDEBAR).addClass(CLASS_NAME_SIDEBAR_FOCUSED) }) .on('focusout', () => { $(SELECTOR_MAIN_SIDEBAR).removeClass(CLASS_NAME_SIDEBAR_FOCUSED) }) /** * jQuery API * ==================================================== */ $.fn[NAME] = Layout._jQueryInterface $.fn[NAME].Constructor = Layout $.fn[NAME].noConflict = function () { $.fn[NAME] = JQUERY_NO_CONFLICT return Layout._jQueryInterface } export default Layout Treeview.js 0000644 00000011224 15025021451 0006667 0 ustar 00 /** * -------------------------------------------- * AdminLTE Treeview.js * License MIT * -------------------------------------------- */ import $ from 'jquery' /** * Constants * ==================================================== */ const NAME = 'Treeview' const DATA_KEY = 'lte.treeview' const EVENT_KEY = `.${DATA_KEY}` const JQUERY_NO_CONFLICT = $.fn[NAME] const EVENT_EXPANDED = `expanded${EVENT_KEY}` const EVENT_COLLAPSED = `collapsed${EVENT_KEY}` const EVENT_LOAD_DATA_API = `load${EVENT_KEY}` const SELECTOR_LI = '.nav-item' const SELECTOR_LINK = '.nav-link' const SELECTOR_TREEVIEW_MENU = '.nav-treeview' const SELECTOR_OPEN = '.menu-open' const SELECTOR_DATA_WIDGET = '[data-widget="treeview"]' const CLASS_NAME_OPEN = 'menu-open' const CLASS_NAME_IS_OPENING = 'menu-is-opening' const CLASS_NAME_SIDEBAR_COLLAPSED = 'sidebar-collapse' const Default = { trigger: `${SELECTOR_DATA_WIDGET} ${SELECTOR_LINK}`, animationSpeed: 300, accordion: true, expandSidebar: false, sidebarButtonSelector: '[data-widget="pushmenu"]' } /** * Class Definition * ==================================================== */ class Treeview { constructor(element, config) { this._config = config this._element = element } // Public _init() { $(`${SELECTOR_LI}${SELECTOR_OPEN} ${SELECTOR_TREEVIEW_MENU}${SELECTOR_OPEN}`).css('display', 'block') this._setupListeners() } expand(treeviewMenu, parentLi) { const expandedEvent = $.Event(EVENT_EXPANDED) if (this._config.accordion) { const openMenuLi = parentLi.siblings(SELECTOR_OPEN).first() const openTreeview = openMenuLi.find(SELECTOR_TREEVIEW_MENU).first() this.collapse(openTreeview, openMenuLi) } parentLi.addClass(CLASS_NAME_IS_OPENING) treeviewMenu.stop().slideDown(this._config.animationSpeed, () => { parentLi.addClass(CLASS_NAME_OPEN) $(this._element).trigger(expandedEvent) }) if (this._config.expandSidebar) { this._expandSidebar() } } collapse(treeviewMenu, parentLi) { const collapsedEvent = $.Event(EVENT_COLLAPSED) parentLi.removeClass(`${CLASS_NAME_IS_OPENING} ${CLASS_NAME_OPEN}`) treeviewMenu.stop().slideUp(this._config.animationSpeed, () => { $(this._element).trigger(collapsedEvent) treeviewMenu.find(`${SELECTOR_OPEN} > ${SELECTOR_TREEVIEW_MENU}`).slideUp() treeviewMenu.find(SELECTOR_OPEN).removeClass(`${CLASS_NAME_IS_OPENING} ${CLASS_NAME_OPEN}`) }) } toggle(event) { const $relativeTarget = $(event.currentTarget) const $parent = $relativeTarget.parent() let treeviewMenu = $parent.find(`> ${SELECTOR_TREEVIEW_MENU}`) if (!treeviewMenu.is(SELECTOR_TREEVIEW_MENU)) { if (!$parent.is(SELECTOR_LI)) { treeviewMenu = $parent.parent().find(`> ${SELECTOR_TREEVIEW_MENU}`) } if (!treeviewMenu.is(SELECTOR_TREEVIEW_MENU)) { return } } event.preventDefault() const parentLi = $relativeTarget.parents(SELECTOR_LI).first() const isOpen = parentLi.hasClass(CLASS_NAME_OPEN) if (isOpen) { this.collapse($(treeviewMenu), parentLi) } else { this.expand($(treeviewMenu), parentLi) } } // Private _setupListeners() { const elementId = this._element.attr('id') !== undefined ? `#${this._element.attr('id')}` : '' $(document).on('click', `${elementId}${this._config.trigger}`, event => { this.toggle(event) }) } _expandSidebar() { if ($('body').hasClass(CLASS_NAME_SIDEBAR_COLLAPSED)) { $(this._config.sidebarButtonSelector).PushMenu('expand') } } // Static static _jQueryInterface(config) { return this.each(function () { let data = $(this).data(DATA_KEY) const _config = $.extend({}, Default, typeof config === 'object' ? config : $(this).data()) if (!data) { data = new Treeview($(this), _config) $(this).data(DATA_KEY, data) data._init() } else if (typeof config === 'string') { if (typeof data[config] === 'undefined') { throw new TypeError(`No method named "${config}"`) } data[config]() } else if (typeof config === 'undefined') { data._init() } }) } } /** * Data API * ==================================================== */ $(window).on(EVENT_LOAD_DATA_API, () => { $(SELECTOR_DATA_WIDGET).each(function () { Treeview._jQueryInterface.call($(this), 'init') }) }) /** * jQuery API * ==================================================== */ $.fn[NAME] = Treeview._jQueryInterface $.fn[NAME].Constructor = Treeview $.fn[NAME].noConflict = function () { $.fn[NAME] = JQUERY_NO_CONFLICT return Treeview._jQueryInterface } export default Treeview SidebarSearch.js 0000644 00000017326 15025021451 0007605 0 ustar 00 /** * -------------------------------------------- * AdminLTE SidebarSearch.js * License MIT * -------------------------------------------- */ import $, { trim } from 'jquery' /** * Constants * ==================================================== */ const NAME = 'SidebarSearch' const DATA_KEY = 'lte.sidebar-search' const JQUERY_NO_CONFLICT = $.fn[NAME] const CLASS_NAME_OPEN = 'sidebar-search-open' const CLASS_NAME_ICON_SEARCH = 'fa-search' const CLASS_NAME_ICON_CLOSE = 'fa-times' const CLASS_NAME_HEADER = 'nav-header' const CLASS_NAME_SEARCH_RESULTS = 'sidebar-search-results' const CLASS_NAME_LIST_GROUP = 'list-group' const SELECTOR_DATA_WIDGET = '[data-widget="sidebar-search"]' const SELECTOR_SIDEBAR = '.main-sidebar .nav-sidebar' const SELECTOR_NAV_LINK = '.nav-link' const SELECTOR_NAV_TREEVIEW = '.nav-treeview' const SELECTOR_SEARCH_INPUT = `${SELECTOR_DATA_WIDGET} .form-control` const SELECTOR_SEARCH_BUTTON = `${SELECTOR_DATA_WIDGET} .btn` const SELECTOR_SEARCH_ICON = `${SELECTOR_SEARCH_BUTTON} i` const SELECTOR_SEARCH_LIST_GROUP = `.${CLASS_NAME_LIST_GROUP}` const SELECTOR_SEARCH_RESULTS = `.${CLASS_NAME_SEARCH_RESULTS}` const SELECTOR_SEARCH_RESULTS_GROUP = `${SELECTOR_SEARCH_RESULTS} .${CLASS_NAME_LIST_GROUP}` const Default = { arrowSign: '->', minLength: 3, maxResults: 7, highlightName: true, highlightPath: false, highlightClass: 'text-light', notFoundText: 'No element found!' } const SearchItems = [] /** * Class Definition * ==================================================== */ class SidebarSearch { constructor(_element, _options) { this.element = _element this.options = $.extend({}, Default, _options) this.items = [] } // Public _init() { if ($(SELECTOR_DATA_WIDGET).length === 0) { return } if ($(SELECTOR_DATA_WIDGET).next(SELECTOR_SEARCH_RESULTS).length === 0) { $(SELECTOR_DATA_WIDGET).after( $('<div />', { class: CLASS_NAME_SEARCH_RESULTS }) ) } if ($(SELECTOR_SEARCH_RESULTS).children(SELECTOR_SEARCH_LIST_GROUP).length === 0) { $(SELECTOR_SEARCH_RESULTS).append( $('<div />', { class: CLASS_NAME_LIST_GROUP }) ) } this._addNotFound() $(SELECTOR_SIDEBAR).children().each((i, child) => { this._parseItem(child) }) } search() { const searchValue = $(SELECTOR_SEARCH_INPUT).val().toLowerCase() if (searchValue.length < this.options.minLength) { $(SELECTOR_SEARCH_RESULTS_GROUP).empty() this._addNotFound() this.close() return } const searchResults = SearchItems.filter(item => (item.name).toLowerCase().includes(searchValue)) const endResults = $(searchResults.slice(0, this.options.maxResults)) $(SELECTOR_SEARCH_RESULTS_GROUP).empty() if (endResults.length === 0) { this._addNotFound() } else { endResults.each((i, result) => { $(SELECTOR_SEARCH_RESULTS_GROUP).append(this._renderItem(escape(result.name), encodeURI(result.link), result.path)) }) } this.open() } open() { $(SELECTOR_DATA_WIDGET).parent().addClass(CLASS_NAME_OPEN) $(SELECTOR_SEARCH_ICON).removeClass(CLASS_NAME_ICON_SEARCH).addClass(CLASS_NAME_ICON_CLOSE) } close() { $(SELECTOR_DATA_WIDGET).parent().removeClass(CLASS_NAME_OPEN) $(SELECTOR_SEARCH_ICON).removeClass(CLASS_NAME_ICON_CLOSE).addClass(CLASS_NAME_ICON_SEARCH) } toggle() { if ($(SELECTOR_DATA_WIDGET).parent().hasClass(CLASS_NAME_OPEN)) { this.close() } else { this.open() } } // Private _parseItem(item, path = []) { if ($(item).hasClass(CLASS_NAME_HEADER)) { return } const itemObject = {} const navLink = $(item).clone().find(`> ${SELECTOR_NAV_LINK}`) const navTreeview = $(item).clone().find(`> ${SELECTOR_NAV_TREEVIEW}`) const link = navLink.attr('href') const name = navLink.find('p').children().remove().end().text() itemObject.name = this._trimText(name) itemObject.link = link itemObject.path = path if (navTreeview.length === 0) { SearchItems.push(itemObject) } else { const newPath = itemObject.path.concat([itemObject.name]) navTreeview.children().each((i, child) => { this._parseItem(child, newPath) }) } } _trimText(text) { return trim(text.replace(/(\r\n|\n|\r)/gm, ' ')) } _renderItem(name, link, path) { path = path.join(` ${this.options.arrowSign} `) name = unescape(name) link = decodeURI(link) if (this.options.highlightName || this.options.highlightPath) { const searchValue = $(SELECTOR_SEARCH_INPUT).val().toLowerCase() const regExp = new RegExp(searchValue, 'gi') if (this.options.highlightName) { name = name.replace( regExp, str => { return `<strong class="${this.options.highlightClass}">${str}</strong>` } ) } if (this.options.highlightPath) { path = path.replace( regExp, str => { return `<strong class="${this.options.highlightClass}">${str}</strong>` } ) } } const groupItemElement = $('<a/>', { href: decodeURIComponent(link), class: 'list-group-item' }) const searchTitleElement = $('<div/>', { class: 'search-title' }).html(name) const searchPathElement = $('<div/>', { class: 'search-path' }).html(path) groupItemElement.append(searchTitleElement).append(searchPathElement) return groupItemElement } _addNotFound() { $(SELECTOR_SEARCH_RESULTS_GROUP).append(this._renderItem(this.options.notFoundText, '#', [])) } // Static static _jQueryInterface(config) { return this.each(function () { let data = $(this).data(DATA_KEY) const _config = $.extend({}, Default, typeof config === 'object' ? config : $(this).data()) if (!data) { data = new SidebarSearch($(this), _config) $(this).data(DATA_KEY, data) data._init() } else if (typeof config === 'string') { if (typeof data[config] === 'undefined') { throw new TypeError(`No method named "${config}"`) } data[config]() } else if (typeof config === 'undefined') { data._init() } }) } } /** * Data API * ==================================================== */ $(document).on('click', SELECTOR_SEARCH_BUTTON, event => { event.preventDefault() SidebarSearch._jQueryInterface.call($(SELECTOR_DATA_WIDGET), 'toggle') }) $(document).on('keyup', SELECTOR_SEARCH_INPUT, event => { if (event.keyCode == 38) { event.preventDefault() $(SELECTOR_SEARCH_RESULTS_GROUP).children().last().focus() return } if (event.keyCode == 40) { event.preventDefault() $(SELECTOR_SEARCH_RESULTS_GROUP).children().first().focus() return } setTimeout(() => { SidebarSearch._jQueryInterface.call($(SELECTOR_DATA_WIDGET), 'search') }, 100) }) $(document).on('keydown', SELECTOR_SEARCH_RESULTS_GROUP, event => { const $focused = $(':focus') if (event.keyCode == 38) { event.preventDefault() if ($focused.is(':first-child')) { $focused.siblings().last().focus() } else { $focused.prev().focus() } } if (event.keyCode == 40) { event.preventDefault() if ($focused.is(':last-child')) { $focused.siblings().first().focus() } else { $focused.next().focus() } } }) $(window).on('load', () => { SidebarSearch._jQueryInterface.call($(SELECTOR_DATA_WIDGET), 'init') }) /** * jQuery API * ==================================================== */ $.fn[NAME] = SidebarSearch._jQueryInterface $.fn[NAME].Constructor = SidebarSearch $.fn[NAME].noConflict = function () { $.fn[NAME] = JQUERY_NO_CONFLICT return SidebarSearch._jQueryInterface } export default SidebarSearch
| ver. 1.4 |
.
| PHP 8.0.30 | Generation time: 0.08 |
proxy
|
phpinfo
|
Settings