From 9ac3e90adebb9ca0ac91f9b835a45242e438c642 Mon Sep 17 00:00:00 2001 From: Sajad Ahmad Nawabi <Sajad_Ahmad_Nawabi@outlook.com> Date: Wed, 13 May 2020 03:19:39 +0430 Subject: [PATCH 01/34] Add files via upload Add animate.js file for components transition. - Transitions for Modals. - Transitions for Alerts. - Transitions for Dropdowns/PopperJS. - Transitions for Popovers/PopperJS. - Transitions for Tooltips/PopperJS. - Transitions for Tab Pills. From bf04d169684e6f85f7010425593c315f380331a1 Mon Sep 17 00:00:00 2001 From: Sajad Ahmad Nawabi <Sajad_Ahmad_Nawabi@outlook.com> Date: Wed, 13 May 2020 03:31:16 +0430 Subject: [PATCH 02/34] components transitions Add animate.js file for components transition. - Transitions for Modals. - Transitions for Alerts. - Transitions for Dropdowns/PopperJS. - Transitions for Popovers/PopperJS. - Transitions for Tooltips/PopperJS. - Transitions for Tab Pills. --- dist/animate.js | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 dist/animate.js diff --git a/dist/animate.js b/dist/animate.js new file mode 100644 index 0000000..d00d25c --- /dev/null +++ b/dist/animate.js @@ -0,0 +1,32 @@ +function fadeIn(id, duration) { + id.animate([ { opacity: 0 }, { opacity: 1 } ], { + duration: duration, + easing: 'linear' + }); +} + +function fadeOut(id, duration) { + id.animate([ { opacity: 1 }, { opacity: 0 } ], { + duration: duration, + easing: 'linear' + }); +} + +function zoomIn(id) { + id.animate( + [ + { + opacity: 0, + transform: 'translateY(20%) scale(.8)' + }, + { + opacity: 1, + transform: 'translateY(0) scale(1)' + } + ], + { + duration: 300, + easing: 'linear' + } + ); +} \ No newline at end of file From 138030120ae5a67eae569eec695ed7fbb24701c5 Mon Sep 17 00:00:00 2001 From: Sajad Ahmad Nawabi <Sajad_Ahmad_Nawabi@outlook.com> Date: Wed, 13 May 2020 03:35:12 +0430 Subject: [PATCH 03/34] Delete animate.js --- animate.js | 32 -------------------------------- 1 file changed, 32 deletions(-) delete mode 100644 animate.js diff --git a/animate.js b/animate.js deleted file mode 100644 index d00d25c..0000000 --- a/animate.js +++ /dev/null @@ -1,32 +0,0 @@ -function fadeIn(id, duration) { - id.animate([ { opacity: 0 }, { opacity: 1 } ], { - duration: duration, - easing: 'linear' - }); -} - -function fadeOut(id, duration) { - id.animate([ { opacity: 1 }, { opacity: 0 } ], { - duration: duration, - easing: 'linear' - }); -} - -function zoomIn(id) { - id.animate( - [ - { - opacity: 0, - transform: 'translateY(20%) scale(.8)' - }, - { - opacity: 1, - transform: 'translateY(0) scale(1)' - } - ], - { - duration: 300, - easing: 'linear' - } - ); -} \ No newline at end of file From b7d88e589806e7dddd83bb0fdc66995b4a5ac634 Mon Sep 17 00:00:00 2001 From: Sajad Ahmad Nawabi <Sajad_Ahmad_Nawabi@outlook.com> Date: Wed, 13 May 2020 03:37:36 +0430 Subject: [PATCH 04/34] feature: add alert.js Add some changes for alert.js file to have better and smooth transitions for alerts. --- dist/alert.js | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/dist/alert.js b/dist/alert.js index 27ab694..a5c3804 100644 --- a/dist/alert.js +++ b/dist/alert.js @@ -1,10 +1,14 @@ function closeAlert(event){ let alert = event.currentTarget.getAttribute("data-target"); + let container = document.querySelector(alert); if(alert){ - alert = document.querySelectorAll(alert); - for (var index = 0; index < alert.length; index++) { - alert[index].parentNode.removeChild(alert[index]); - } + fadeOut(container, 500); + setTimeout(() => { + alert = document.querySelectorAll(alert); + for (var index = 0; index < alert.length; index++) { + alert[index].parentNode.removeChild(alert[index]); + } + }, 500); } } From 1bdf15b8aa0b76af5880bacb002fb1290ce12176 Mon Sep 17 00:00:00 2001 From: Sajad Ahmad Nawabi <Sajad_Ahmad_Nawabi@outlook.com> Date: Wed, 13 May 2020 03:46:05 +0430 Subject: [PATCH 05/34] feature: add tabs.js Add some changes for tabs.js file to have better and smooth transitions for tabs changes. --- dist/tabs.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/dist/tabs.js b/dist/tabs.js index b2ee91b..e689d20 100644 --- a/dist/tabs.js +++ b/dist/tabs.js @@ -45,8 +45,10 @@ function initTabs(activeClasses,normalClasses){ normalClasses = normalClasses ? normalClasses:"text-blue-600 bg-white"; changeAtiveTab(event,activeClasses,normalClasses) } + const toggleAnimation = () => Array.from(dataTabs).forEach(el => zoomIn(document.querySelector(el.attributes.href.value))); for (var index = 0; index < dataTabs.length; index++) { dataTabs[index].addEventListener("click",toggleFunction); + dataTabs[index].addEventListener("click",toggleAnimation); } } From d10bc9314e96a718ac361faac7b429403ebd1e3e Mon Sep 17 00:00:00 2001 From: Sajad Ahmad Nawabi <Sajad_Ahmad_Nawabi@outlook.com> Date: Wed, 13 May 2020 03:49:58 +0430 Subject: [PATCH 06/34] feature: add popover.js Add some changes for popover.js file to have better and smooth transitions for popovers. --- dist/popover.js | 1 + 1 file changed, 1 insertion(+) diff --git a/dist/popover.js b/dist/popover.js index b570f08..0adaaec 100644 --- a/dist/popover.js +++ b/dist/popover.js @@ -26,6 +26,7 @@ function togglePopper(event){ default: break; } + fadeIn(popperElement, 500); popperInnerElement.classList.toggle(marginClass); } From f92621c7bb619d7f250758bc773a0e89a443f2b0 Mon Sep 17 00:00:00 2001 From: Sajad Ahmad Nawabi <Sajad_Ahmad_Nawabi@outlook.com> Date: Wed, 13 May 2020 03:53:34 +0430 Subject: [PATCH 07/34] feature: add tooltip.js Add some changes for tooltip.js file to have better and smooth transition for tooltip. --- dist/tooltip.js | 1 + 1 file changed, 1 insertion(+) diff --git a/dist/tooltip.js b/dist/tooltip.js index e17b773..c689d9e 100644 --- a/dist/tooltip.js +++ b/dist/tooltip.js @@ -26,6 +26,7 @@ function togglePopper(event){ default: break; } + fadeIn(popperElement, 500); popperInnerElement.classList.toggle(marginClass); } From cb6215bdb40ae890225e30ccf73bce38f4b2a539 Mon Sep 17 00:00:00 2001 From: Sajad Ahmad Nawabi <Sajad_Ahmad_Nawabi@outlook.com> Date: Wed, 13 May 2020 03:56:14 +0430 Subject: [PATCH 08/34] feature: add dropdown.js Add some changes for dropdown.js file to have better and smooth transition for dropdown button. --- dist/dropdown.js | 1 + 1 file changed, 1 insertion(+) diff --git a/dist/dropdown.js b/dist/dropdown.js index 6ea103e..65acb3c 100644 --- a/dist/dropdown.js +++ b/dist/dropdown.js @@ -26,6 +26,7 @@ function togglePopper(event){ default: break; } + fadeIn(popperElement, 500); popperInnerElement.classList.toggle(marginClass); } From 27c08ba654741c5c449337396189bf77746e4c74 Mon Sep 17 00:00:00 2001 From: Sajad Ahmad Nawabi <Sajad_Ahmad_Nawabi@outlook.com> Date: Wed, 13 May 2020 03:59:07 +0430 Subject: [PATCH 09/34] feature: add modal.js Add some changes for modal.js file to have better and smooth transition for modal. --- dist/modal.js | 1 + 1 file changed, 1 insertion(+) diff --git a/dist/modal.js b/dist/modal.js index 2611148..5edb983 100644 --- a/dist/modal.js +++ b/dist/modal.js @@ -3,6 +3,7 @@ function toggleModal(event){ let modal = document.querySelector(modalID); let modalDialog = document.querySelector(modalID+"-dialog"); let modalBackdrop = document.querySelector(modalID+"-backdrop"); + zoomIn(modalDialog); modalBackdrop.classList.toggle("hidden"); modalBackdrop.classList.toggle("flex"); if (modal.classList.contains("hidden")) { From 5d329873438b51a528498f9e8311b166ec46e92a Mon Sep 17 00:00:00 2001 From: Sajad Ahmad Nawabi <Sajad_Ahmad_Nawabi@outlook.com> Date: Fri, 23 Oct 2020 12:48:40 +0430 Subject: [PATCH 10/34] Update alert.js --- dist/alert.js | 43 +++++++++++++++++++------------------------ 1 file changed, 19 insertions(+), 24 deletions(-) diff --git a/dist/alert.js b/dist/alert.js index a5c3804..19c8de4 100644 --- a/dist/alert.js +++ b/dist/alert.js @@ -1,24 +1,19 @@ -function closeAlert(event){ - let alert = event.currentTarget.getAttribute("data-target"); - let container = document.querySelector(alert); - if(alert){ - fadeOut(container, 500); - setTimeout(() => { - alert = document.querySelectorAll(alert); - for (var index = 0; index < alert.length; index++) { - alert[index].parentNode.removeChild(alert[index]); - } - }, 500); - } -} - -function initAlert(){ - let dataClose = document.querySelectorAll("[data-close='alert']"); - for (var index = 0; index < dataClose.length; index++) { - dataClose[index].addEventListener("click",closeAlert); - } -} - -(function () { - initAlert(); -}()); +const closeAlert = e => { + let alert = e.currentTarget.getAttribute("data-target"); + + if (alert) { + alert = document.querySelectorAll(alert); + + for (let i of alert) { + fadeOut(i); + + setTimeout(() => i.remove(), 450); + } + } +} + +const initAlert = () => { + const dataClose = document.querySelectorAll("[data-close='alert'"); + + for (let i of dataClose) i.addEventListener("click", closeAlert); +} \ No newline at end of file From 441395c57a7df6ae0219c378dd0024a20b66a617 Mon Sep 17 00:00:00 2001 From: Sajad Ahmad Nawabi <Sajad_Ahmad_Nawabi@outlook.com> Date: Fri, 23 Oct 2020 12:49:16 +0430 Subject: [PATCH 11/34] Update animations.js --- animations.js | 89 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 animations.js diff --git a/animations.js b/animations.js new file mode 100644 index 0000000..1e83ecb --- /dev/null +++ b/animations.js @@ -0,0 +1,89 @@ +const fadeIn = (id, duration) => { + id.animate([{ opacity: 0 }, { opacity: 1 }], { + duration: duration ? duration : 500, + easing: "linear" + }) +} + +const fadeOut = (id, duration) => { + id.animate([{ opacity: 1 }, { opacity: 0 }], { + duration: duration ? duration : 500, + easing: "linear" + }) +} + +const slideInBottom = id => { + id.animate([ + { + opacity: 0, + transform: "translateY(25%)" + }, + + { + opacity: 1, + transform: "translateY(0)" + } + ], + + { + duration: 300, + easing: "ease-out" + }) +} + +const slideOutBottom = id => { + id.animate([ + { + opacity: 1, + transform: "translateY(0)" + }, + + { + opacity: 0, + transform: "translateY(25%)" + } + ], + + { + duration: 300, + easing: "ease-out" + }) +} + +const dropdownIn = id => { + id.animate([ + { + opacity: 0, + transform: "translate(0, 50px)" + }, + + { + opacity: 1, + transform: "translate(0, 38px)" + } + ], + + { + duration: 300, + easing: "ease-out" + }) +} + +const dropdownOut = id => { + id.animate([ + { + opacity: 1, + transform: "translate(0, 38px)" + }, + + { + opacity: 0, + transform: "translate(0, 50px)" + } + ], + + { + duration: 300, + easing: "ease-out" + }) +} \ No newline at end of file From 51522f4a80e128d8ae07f05d683ab28f4910d463 Mon Sep 17 00:00:00 2001 From: Sajad Ahmad Nawabi <Sajad_Ahmad_Nawabi@outlook.com> Date: Fri, 23 Oct 2020 12:49:35 +0430 Subject: [PATCH 12/34] Upadate collapse.js --- collapse.js | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 collapse.js diff --git a/collapse.js b/collapse.js new file mode 100644 index 0000000..1908a56 --- /dev/null +++ b/collapse.js @@ -0,0 +1,11 @@ +const toggleCollapse = e => { + const collapseID = e.currentTarget.getAttribute("data-target"); + + document.querySelector(collapseID).classList.toggle("hidden"); +} + +const initCollapse = () => { + const dataCollapse = document.querySelectorAll("[data-toggle='collapse']"); + + for (let i of dataCollapse) i.addEventListener("click",toggleCollapse); +} \ No newline at end of file From cef8515f8b4123f6a2bd8ab1d3fa9446c748312f Mon Sep 17 00:00:00 2001 From: Sajad Ahmad Nawabi <Sajad_Ahmad_Nawabi@outlook.com> Date: Fri, 23 Oct 2020 12:49:50 +0430 Subject: [PATCH 13/34] Update dropdown.js --- dropdown.js | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 dropdown.js diff --git a/dropdown.js b/dropdown.js new file mode 100644 index 0000000..a29f9fa --- /dev/null +++ b/dropdown.js @@ -0,0 +1,48 @@ +const toggleDropdown = e => { + let marginClass; + + const element = e.currentTarget; + const popperID = element.getAttribute("data-target"); + const placement = element.getAttribute("data-placement"); + const popperElement = document.querySelector(popperID); + const popperInnerElement = popperElement.querySelector("div"); + + Popper.createPopper(element, popperElement, { + placement: (placement ? placement : 'bottom') + }); + + switch (placement) { + case "bottom": + marginClass = "mt-3" + break; + case "top": + marginClass = "mb-3" + break; + case "left": + marginClass = "mr-3" + break; + case "right": + marginClass = "ml-3" + break; + } + + if (popperElement.classList.contains("hidden")) { + dropdownIn(popperElement); + + popperElement.classList.remove("hidden"); + popperInnerElement.classList.add(marginClass); + } else { + dropdownOut(popperElement); + + setTimeout(() => { + popperElement.classList.add("hidden"); + popperInnerElement.classList.remove(marginClass); + }, 300); + } +} + +const initDropdown = () => { + const dropdownData = document.querySelectorAll("[data-toggle='dropdown']"); + + for (let i of dropdownData) i.addEventListener("click",toggleDropdown); +} \ No newline at end of file From 47a458465bb593990138a7883be8f0673cc2e42c Mon Sep 17 00:00:00 2001 From: Sajad Ahmad Nawabi <Sajad_Ahmad_Nawabi@outlook.com> Date: Fri, 23 Oct 2020 12:50:09 +0430 Subject: [PATCH 14/34] Update modal.sj --- modal.js | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 modal.js diff --git a/modal.js b/modal.js new file mode 100644 index 0000000..58a59ec --- /dev/null +++ b/modal.js @@ -0,0 +1,41 @@ +const toggleModal = e => { + const modalID = e.currentTarget.getAttribute("data-target"); + const modal = document.querySelector(modalID); + const modalDialog = document.querySelector(`${modalID}-dialog`); + const modalBackdrop = document.querySelector(`${modalID}-backdrop`); + + modalBackdrop.classList.toggle("hidden"); + modalBackdrop.classList.toggle("flex"); + + if (modal.classList.contains("hidden")) { + modal.style.display = "block"; + + slideInBottom(modalDialog); + + setTimeout(() => { + modal.classList.remove("hidden"); + modal.classList.add("flex"); + modal.classList.remove("opacity-0"); + modalDialog.classList.remove("-translate-y-1"); + modalDialog.classList.add("translate-y-1"); + }, 30); + } else { + modalDialog.classList.remove("translate-y-1"); + modalDialog.classList.add("-translate-y-1"); + + slideOutBottom(modalDialog); + + setTimeout(() => { + modal.style.display = "none"; + modal.classList.add("hidden"); + modal.classList.remove("flex"); + modal.classList.add("opacity-0"); + }, 300); + } +} + +const initModal = () => { + const dataModal = document.querySelectorAll("[data-toggle='modal'"); + + for (let i of dataModal) i.addEventListener("click", toggleModal); +} \ No newline at end of file From 4d8bd7189ed588225b98ec3a256bff7897ad7d79 Mon Sep 17 00:00:00 2001 From: Sajad Ahmad Nawabi <Sajad_Ahmad_Nawabi@outlook.com> Date: Fri, 23 Oct 2020 12:50:29 +0430 Subject: [PATCH 15/34] Update popover.js --- popover.js | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 popover.js diff --git a/popover.js b/popover.js new file mode 100644 index 0000000..9205b8e --- /dev/null +++ b/popover.js @@ -0,0 +1,47 @@ +const togglePopper = e => { + let marginClass; + + const element = e.currentTarget; + const popperID = element.getAttribute("data-target"); + let placement = element.getAttribute("data-placement"); + const popperElement = document.querySelector(popperID); + const popperInnerElement = popperElement.querySelector("div"); + + Popper.createPopper(element, popperElement, { + placement: (placement ? placement : "right") + }); + + switch (placement) { + case "bottom": + marginClass = "mt-3"; + break; + case "top": + marginClass = "mb-3"; + break; + case "left": + marginClass = "mr-3"; + break; + case "right": + marginClass = "ml-3"; + break; + } + + if (popperElement.classList.contains("hidden")) { + fadeIn(popperElement, 200); + popperElement.classList.remove("hidden"); + popperInnerElement.classList.add(marginClass); + } else { + fadeOut(popperElement, 200); + + setTimeout(() => { + popperElement.classList.add("hidden"); + popperInnerElement.classList.remove(marginClass); + }, 180); + } +} + +const initPopovers = () => { + const popoverData = document.querySelectorAll("[data-toggle='popover']"); + + for (let i of popoverData) i.addEventListener("click", togglePopper); +} \ No newline at end of file From 3abedce04d1bba5253f75d4f927800f7a75c40ab Mon Sep 17 00:00:00 2001 From: Sajad Ahmad Nawabi <Sajad_Ahmad_Nawabi@outlook.com> Date: Fri, 23 Oct 2020 12:50:47 +0430 Subject: [PATCH 16/34] Update tabs.js --- tabs.js | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 tabs.js diff --git a/tabs.js b/tabs.js new file mode 100644 index 0000000..6236a2e --- /dev/null +++ b/tabs.js @@ -0,0 +1,52 @@ +const changeAtiveTab = (e, activeClasses, normalClasses) => { + e.preventDefault(); + + normalClasses = normalClasses.split(" ").filter(item => item !== " " && item !== ""); + activeClasses = activeClasses.split(" ").filter(item => item !== " " && item !== ""); + + let queryActiveClasses = activeClasses.map(item => "." + item); + let element = e.currentTarget; + let elementID = e.currentTarget.getAttribute("href"); + let tabElement = document.querySelector(elementID); + let ulElement = element.parentNode.parentNode; + let activeElement = ulElement.querySelector("li > a" + queryActiveClasses); + let activeElementID = activeElement.getAttribute("href"); + let activeTabElement = document.querySelector(activeElementID); + + normalClasses.forEach(item => { + activeElement.classList.add(item); + element.classList.remove(item); + }); + + activeClasses.forEach(item => { + activeElement.classList.remove(item); + element.classList.add(item); + }); + + activeTabElement.classList.add("hidden"); + activeTabElement.classList.remove("block"); + tabElement.classList.remove("hidden"); + tabElement.classList.add("block"); +} + +const initTabs = (activeClasses, normalClasses) => { + const dataTabs = document.querySelectorAll("[data-toggle='tab']"); + + const toggleFunction = e => { + e.preventDefault(); + + activeClasses = activeClasses ? activeClasses:"bg-blue-600 text-white"; + normalClasses = normalClasses ? normalClasses:"text-blue-600 bg-white"; + + changeAtiveTab(e, activeClasses, normalClasses); + } + + const toggleAnimation = () => { + Array.from(dataTabs).forEach(el => fadeIn(document.querySelector(el.attributes.href.value), 300)); + } + + for (let i of dataTabs) { + i.addEventListener("click", toggleFunction); + i.addEventListener("click", toggleAnimation); + } +} \ No newline at end of file From b491b6332ef4cbe084496d41e1d26aa57a476bb5 Mon Sep 17 00:00:00 2001 From: Sajad Ahmad Nawabi <Sajad_Ahmad_Nawabi@outlook.com> Date: Fri, 23 Oct 2020 12:51:06 +0430 Subject: [PATCH 17/34] Update tooltip.js --- tooltip.js | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 tooltip.js diff --git a/tooltip.js b/tooltip.js new file mode 100644 index 0000000..159595d --- /dev/null +++ b/tooltip.js @@ -0,0 +1,50 @@ +const toggleTooltips = e => { + let marginClass; + + const element = e.currentTarget; + const popperID = element.getAttribute("data-target"); + const placement = element.getAttribute("data-placement"); + const popperElement = document.querySelector(popperID); + const popperInnerElement = popperElement.querySelector("div"); + + popper = Popper.createPopper(element, popperElement, { + placement: (placement ? placement : 'bottom') + }); + + switch (placement) { + case "bottom": + marginClass = "mt-3" + break; + case "top": + marginClass = "mb-3" + break; + case "left": + marginClass = "mr-3" + break; + case "right": + marginClass = "ml-3" + break; + } + + if (popperElement.classList.contains("hidden")) { + fadeIn(popperElement, 200); + popperElement.classList.remove("hidden"); + popperInnerElement.classList.add(marginClass); + } else { + fadeOut(popperElement, 200); + + setTimeout(() => { + popperElement.classList.add("hidden"); + popperInnerElement.classList.remove(marginClass); + }, 180); + } +} + +const initTooltips = () => { + const tooltipData = document.querySelectorAll("[data-toggle='tooltip'"); + + for (let i of tooltipData) { + i.addEventListener("mouseenter", toggleTooltips); + i.addEventListener("mouseleave", toggleTooltips); + } +} \ No newline at end of file From 90ac4bf7dc997e82eec30b0d61426b1ea1148e97 Mon Sep 17 00:00:00 2001 From: Sajad Ahmad Nawabi <Sajad_Ahmad_Nawabi@outlook.com> Date: Fri, 23 Oct 2020 12:55:25 +0430 Subject: [PATCH 18/34] Delete animations.js --- animations.js | 89 --------------------------------------------------- 1 file changed, 89 deletions(-) delete mode 100644 animations.js diff --git a/animations.js b/animations.js deleted file mode 100644 index 1e83ecb..0000000 --- a/animations.js +++ /dev/null @@ -1,89 +0,0 @@ -const fadeIn = (id, duration) => { - id.animate([{ opacity: 0 }, { opacity: 1 }], { - duration: duration ? duration : 500, - easing: "linear" - }) -} - -const fadeOut = (id, duration) => { - id.animate([{ opacity: 1 }, { opacity: 0 }], { - duration: duration ? duration : 500, - easing: "linear" - }) -} - -const slideInBottom = id => { - id.animate([ - { - opacity: 0, - transform: "translateY(25%)" - }, - - { - opacity: 1, - transform: "translateY(0)" - } - ], - - { - duration: 300, - easing: "ease-out" - }) -} - -const slideOutBottom = id => { - id.animate([ - { - opacity: 1, - transform: "translateY(0)" - }, - - { - opacity: 0, - transform: "translateY(25%)" - } - ], - - { - duration: 300, - easing: "ease-out" - }) -} - -const dropdownIn = id => { - id.animate([ - { - opacity: 0, - transform: "translate(0, 50px)" - }, - - { - opacity: 1, - transform: "translate(0, 38px)" - } - ], - - { - duration: 300, - easing: "ease-out" - }) -} - -const dropdownOut = id => { - id.animate([ - { - opacity: 1, - transform: "translate(0, 38px)" - }, - - { - opacity: 0, - transform: "translate(0, 50px)" - } - ], - - { - duration: 300, - easing: "ease-out" - }) -} \ No newline at end of file From 4458f84de73022408f9f7156c1e50ddd447b9b90 Mon Sep 17 00:00:00 2001 From: Sajad Ahmad Nawabi <Sajad_Ahmad_Nawabi@outlook.com> Date: Fri, 23 Oct 2020 12:55:35 +0430 Subject: [PATCH 19/34] Delete collapse.js --- collapse.js | 11 ----------- 1 file changed, 11 deletions(-) delete mode 100644 collapse.js diff --git a/collapse.js b/collapse.js deleted file mode 100644 index 1908a56..0000000 --- a/collapse.js +++ /dev/null @@ -1,11 +0,0 @@ -const toggleCollapse = e => { - const collapseID = e.currentTarget.getAttribute("data-target"); - - document.querySelector(collapseID).classList.toggle("hidden"); -} - -const initCollapse = () => { - const dataCollapse = document.querySelectorAll("[data-toggle='collapse']"); - - for (let i of dataCollapse) i.addEventListener("click",toggleCollapse); -} \ No newline at end of file From 01d80d5021fd6a203199c8503548cc08e1c27484 Mon Sep 17 00:00:00 2001 From: Sajad Ahmad Nawabi <Sajad_Ahmad_Nawabi@outlook.com> Date: Fri, 23 Oct 2020 12:55:45 +0430 Subject: [PATCH 20/34] Delete dropdown.js --- dropdown.js | 48 ------------------------------------------------ 1 file changed, 48 deletions(-) delete mode 100644 dropdown.js diff --git a/dropdown.js b/dropdown.js deleted file mode 100644 index a29f9fa..0000000 --- a/dropdown.js +++ /dev/null @@ -1,48 +0,0 @@ -const toggleDropdown = e => { - let marginClass; - - const element = e.currentTarget; - const popperID = element.getAttribute("data-target"); - const placement = element.getAttribute("data-placement"); - const popperElement = document.querySelector(popperID); - const popperInnerElement = popperElement.querySelector("div"); - - Popper.createPopper(element, popperElement, { - placement: (placement ? placement : 'bottom') - }); - - switch (placement) { - case "bottom": - marginClass = "mt-3" - break; - case "top": - marginClass = "mb-3" - break; - case "left": - marginClass = "mr-3" - break; - case "right": - marginClass = "ml-3" - break; - } - - if (popperElement.classList.contains("hidden")) { - dropdownIn(popperElement); - - popperElement.classList.remove("hidden"); - popperInnerElement.classList.add(marginClass); - } else { - dropdownOut(popperElement); - - setTimeout(() => { - popperElement.classList.add("hidden"); - popperInnerElement.classList.remove(marginClass); - }, 300); - } -} - -const initDropdown = () => { - const dropdownData = document.querySelectorAll("[data-toggle='dropdown']"); - - for (let i of dropdownData) i.addEventListener("click",toggleDropdown); -} \ No newline at end of file From 74e1cd8a2cf97ef3de524dc11d05f21cd61dd3d7 Mon Sep 17 00:00:00 2001 From: Sajad Ahmad Nawabi <Sajad_Ahmad_Nawabi@outlook.com> Date: Fri, 23 Oct 2020 12:56:27 +0430 Subject: [PATCH 21/34] Delete modal.js --- modal.js | 41 ----------------------------------------- 1 file changed, 41 deletions(-) delete mode 100644 modal.js diff --git a/modal.js b/modal.js deleted file mode 100644 index 58a59ec..0000000 --- a/modal.js +++ /dev/null @@ -1,41 +0,0 @@ -const toggleModal = e => { - const modalID = e.currentTarget.getAttribute("data-target"); - const modal = document.querySelector(modalID); - const modalDialog = document.querySelector(`${modalID}-dialog`); - const modalBackdrop = document.querySelector(`${modalID}-backdrop`); - - modalBackdrop.classList.toggle("hidden"); - modalBackdrop.classList.toggle("flex"); - - if (modal.classList.contains("hidden")) { - modal.style.display = "block"; - - slideInBottom(modalDialog); - - setTimeout(() => { - modal.classList.remove("hidden"); - modal.classList.add("flex"); - modal.classList.remove("opacity-0"); - modalDialog.classList.remove("-translate-y-1"); - modalDialog.classList.add("translate-y-1"); - }, 30); - } else { - modalDialog.classList.remove("translate-y-1"); - modalDialog.classList.add("-translate-y-1"); - - slideOutBottom(modalDialog); - - setTimeout(() => { - modal.style.display = "none"; - modal.classList.add("hidden"); - modal.classList.remove("flex"); - modal.classList.add("opacity-0"); - }, 300); - } -} - -const initModal = () => { - const dataModal = document.querySelectorAll("[data-toggle='modal'"); - - for (let i of dataModal) i.addEventListener("click", toggleModal); -} \ No newline at end of file From 29146a06059ce369aff4c8d649457f824c984f5f Mon Sep 17 00:00:00 2001 From: Sajad Ahmad Nawabi <Sajad_Ahmad_Nawabi@outlook.com> Date: Fri, 23 Oct 2020 12:56:41 +0430 Subject: [PATCH 22/34] Delete popover.js --- popover.js | 47 ----------------------------------------------- 1 file changed, 47 deletions(-) delete mode 100644 popover.js diff --git a/popover.js b/popover.js deleted file mode 100644 index 9205b8e..0000000 --- a/popover.js +++ /dev/null @@ -1,47 +0,0 @@ -const togglePopper = e => { - let marginClass; - - const element = e.currentTarget; - const popperID = element.getAttribute("data-target"); - let placement = element.getAttribute("data-placement"); - const popperElement = document.querySelector(popperID); - const popperInnerElement = popperElement.querySelector("div"); - - Popper.createPopper(element, popperElement, { - placement: (placement ? placement : "right") - }); - - switch (placement) { - case "bottom": - marginClass = "mt-3"; - break; - case "top": - marginClass = "mb-3"; - break; - case "left": - marginClass = "mr-3"; - break; - case "right": - marginClass = "ml-3"; - break; - } - - if (popperElement.classList.contains("hidden")) { - fadeIn(popperElement, 200); - popperElement.classList.remove("hidden"); - popperInnerElement.classList.add(marginClass); - } else { - fadeOut(popperElement, 200); - - setTimeout(() => { - popperElement.classList.add("hidden"); - popperInnerElement.classList.remove(marginClass); - }, 180); - } -} - -const initPopovers = () => { - const popoverData = document.querySelectorAll("[data-toggle='popover']"); - - for (let i of popoverData) i.addEventListener("click", togglePopper); -} \ No newline at end of file From 1f51aa7c417462835ede77658525d85718a7d4b4 Mon Sep 17 00:00:00 2001 From: Sajad Ahmad Nawabi <Sajad_Ahmad_Nawabi@outlook.com> Date: Fri, 23 Oct 2020 12:56:52 +0430 Subject: [PATCH 23/34] Delete tabs.js --- tabs.js | 52 ---------------------------------------------------- 1 file changed, 52 deletions(-) delete mode 100644 tabs.js diff --git a/tabs.js b/tabs.js deleted file mode 100644 index 6236a2e..0000000 --- a/tabs.js +++ /dev/null @@ -1,52 +0,0 @@ -const changeAtiveTab = (e, activeClasses, normalClasses) => { - e.preventDefault(); - - normalClasses = normalClasses.split(" ").filter(item => item !== " " && item !== ""); - activeClasses = activeClasses.split(" ").filter(item => item !== " " && item !== ""); - - let queryActiveClasses = activeClasses.map(item => "." + item); - let element = e.currentTarget; - let elementID = e.currentTarget.getAttribute("href"); - let tabElement = document.querySelector(elementID); - let ulElement = element.parentNode.parentNode; - let activeElement = ulElement.querySelector("li > a" + queryActiveClasses); - let activeElementID = activeElement.getAttribute("href"); - let activeTabElement = document.querySelector(activeElementID); - - normalClasses.forEach(item => { - activeElement.classList.add(item); - element.classList.remove(item); - }); - - activeClasses.forEach(item => { - activeElement.classList.remove(item); - element.classList.add(item); - }); - - activeTabElement.classList.add("hidden"); - activeTabElement.classList.remove("block"); - tabElement.classList.remove("hidden"); - tabElement.classList.add("block"); -} - -const initTabs = (activeClasses, normalClasses) => { - const dataTabs = document.querySelectorAll("[data-toggle='tab']"); - - const toggleFunction = e => { - e.preventDefault(); - - activeClasses = activeClasses ? activeClasses:"bg-blue-600 text-white"; - normalClasses = normalClasses ? normalClasses:"text-blue-600 bg-white"; - - changeAtiveTab(e, activeClasses, normalClasses); - } - - const toggleAnimation = () => { - Array.from(dataTabs).forEach(el => fadeIn(document.querySelector(el.attributes.href.value), 300)); - } - - for (let i of dataTabs) { - i.addEventListener("click", toggleFunction); - i.addEventListener("click", toggleAnimation); - } -} \ No newline at end of file From 84f37c257eebc91179c6ce634dbfcb21f5a48305 Mon Sep 17 00:00:00 2001 From: Sajad Ahmad Nawabi <Sajad_Ahmad_Nawabi@outlook.com> Date: Fri, 23 Oct 2020 12:57:03 +0430 Subject: [PATCH 24/34] Delete tooltip.js --- tooltip.js | 50 -------------------------------------------------- 1 file changed, 50 deletions(-) delete mode 100644 tooltip.js diff --git a/tooltip.js b/tooltip.js deleted file mode 100644 index 159595d..0000000 --- a/tooltip.js +++ /dev/null @@ -1,50 +0,0 @@ -const toggleTooltips = e => { - let marginClass; - - const element = e.currentTarget; - const popperID = element.getAttribute("data-target"); - const placement = element.getAttribute("data-placement"); - const popperElement = document.querySelector(popperID); - const popperInnerElement = popperElement.querySelector("div"); - - popper = Popper.createPopper(element, popperElement, { - placement: (placement ? placement : 'bottom') - }); - - switch (placement) { - case "bottom": - marginClass = "mt-3" - break; - case "top": - marginClass = "mb-3" - break; - case "left": - marginClass = "mr-3" - break; - case "right": - marginClass = "ml-3" - break; - } - - if (popperElement.classList.contains("hidden")) { - fadeIn(popperElement, 200); - popperElement.classList.remove("hidden"); - popperInnerElement.classList.add(marginClass); - } else { - fadeOut(popperElement, 200); - - setTimeout(() => { - popperElement.classList.add("hidden"); - popperInnerElement.classList.remove(marginClass); - }, 180); - } -} - -const initTooltips = () => { - const tooltipData = document.querySelectorAll("[data-toggle='tooltip'"); - - for (let i of tooltipData) { - i.addEventListener("mouseenter", toggleTooltips); - i.addEventListener("mouseleave", toggleTooltips); - } -} \ No newline at end of file From ebd2aeb23ba6c101c045cd40676f0a9e3a7af5ca Mon Sep 17 00:00:00 2001 From: Sajad Ahmad Nawabi <Sajad_Ahmad_Nawabi@outlook.com> Date: Fri, 23 Oct 2020 13:01:46 +0430 Subject: [PATCH 25/34] Delete alert.js --- dist/alert.js | 19 ------------------- 1 file changed, 19 deletions(-) delete mode 100644 dist/alert.js diff --git a/dist/alert.js b/dist/alert.js deleted file mode 100644 index 19c8de4..0000000 --- a/dist/alert.js +++ /dev/null @@ -1,19 +0,0 @@ -const closeAlert = e => { - let alert = e.currentTarget.getAttribute("data-target"); - - if (alert) { - alert = document.querySelectorAll(alert); - - for (let i of alert) { - fadeOut(i); - - setTimeout(() => i.remove(), 450); - } - } -} - -const initAlert = () => { - const dataClose = document.querySelectorAll("[data-close='alert'"); - - for (let i of dataClose) i.addEventListener("click", closeAlert); -} \ No newline at end of file From fa97d127b2878f7c2feddf8546395a0934940ca2 Mon Sep 17 00:00:00 2001 From: Sajad Ahmad Nawabi <Sajad_Ahmad_Nawabi@outlook.com> Date: Fri, 23 Oct 2020 13:02:22 +0430 Subject: [PATCH 26/34] Update animations.js --- dist/animations.js | 89 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 dist/animations.js diff --git a/dist/animations.js b/dist/animations.js new file mode 100644 index 0000000..1e83ecb --- /dev/null +++ b/dist/animations.js @@ -0,0 +1,89 @@ +const fadeIn = (id, duration) => { + id.animate([{ opacity: 0 }, { opacity: 1 }], { + duration: duration ? duration : 500, + easing: "linear" + }) +} + +const fadeOut = (id, duration) => { + id.animate([{ opacity: 1 }, { opacity: 0 }], { + duration: duration ? duration : 500, + easing: "linear" + }) +} + +const slideInBottom = id => { + id.animate([ + { + opacity: 0, + transform: "translateY(25%)" + }, + + { + opacity: 1, + transform: "translateY(0)" + } + ], + + { + duration: 300, + easing: "ease-out" + }) +} + +const slideOutBottom = id => { + id.animate([ + { + opacity: 1, + transform: "translateY(0)" + }, + + { + opacity: 0, + transform: "translateY(25%)" + } + ], + + { + duration: 300, + easing: "ease-out" + }) +} + +const dropdownIn = id => { + id.animate([ + { + opacity: 0, + transform: "translate(0, 50px)" + }, + + { + opacity: 1, + transform: "translate(0, 38px)" + } + ], + + { + duration: 300, + easing: "ease-out" + }) +} + +const dropdownOut = id => { + id.animate([ + { + opacity: 1, + transform: "translate(0, 38px)" + }, + + { + opacity: 0, + transform: "translate(0, 50px)" + } + ], + + { + duration: 300, + easing: "ease-out" + }) +} \ No newline at end of file From 9665b76f5c73ebd0f756db2ceb1385f9a8aca7e2 Mon Sep 17 00:00:00 2001 From: Sajad Ahmad Nawabi <Sajad_Ahmad_Nawabi@outlook.com> Date: Fri, 23 Oct 2020 13:03:21 +0430 Subject: [PATCH 27/34] Delete animate.js, replace it with animations.js --- dist/animate.js | 32 -------------------------------- 1 file changed, 32 deletions(-) delete mode 100644 dist/animate.js diff --git a/dist/animate.js b/dist/animate.js deleted file mode 100644 index d00d25c..0000000 --- a/dist/animate.js +++ /dev/null @@ -1,32 +0,0 @@ -function fadeIn(id, duration) { - id.animate([ { opacity: 0 }, { opacity: 1 } ], { - duration: duration, - easing: 'linear' - }); -} - -function fadeOut(id, duration) { - id.animate([ { opacity: 1 }, { opacity: 0 } ], { - duration: duration, - easing: 'linear' - }); -} - -function zoomIn(id) { - id.animate( - [ - { - opacity: 0, - transform: 'translateY(20%) scale(.8)' - }, - { - opacity: 1, - transform: 'translateY(0) scale(1)' - } - ], - { - duration: 300, - easing: 'linear' - } - ); -} \ No newline at end of file From bbaa1c54a09cbaab2437f66efbf73c624fa83027 Mon Sep 17 00:00:00 2001 From: Sajad Ahmad Nawabi <Sajad_Ahmad_Nawabi@outlook.com> Date: Fri, 23 Oct 2020 13:03:39 +0430 Subject: [PATCH 28/34] Add alert.js --- dist/alert.js | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 dist/alert.js diff --git a/dist/alert.js b/dist/alert.js new file mode 100644 index 0000000..19c8de4 --- /dev/null +++ b/dist/alert.js @@ -0,0 +1,19 @@ +const closeAlert = e => { + let alert = e.currentTarget.getAttribute("data-target"); + + if (alert) { + alert = document.querySelectorAll(alert); + + for (let i of alert) { + fadeOut(i); + + setTimeout(() => i.remove(), 450); + } + } +} + +const initAlert = () => { + const dataClose = document.querySelectorAll("[data-close='alert'"); + + for (let i of dataClose) i.addEventListener("click", closeAlert); +} \ No newline at end of file From 52b6ca9ae9e4175ca4d1aed46d70cf685e755642 Mon Sep 17 00:00:00 2001 From: Sajad Ahmad Nawabi <Sajad_Ahmad_Nawabi@outlook.com> Date: Fri, 23 Oct 2020 13:04:01 +0430 Subject: [PATCH 29/34] Update collapse.js --- dist/collapse.js | 26 +++++++++++--------------- 1 file changed, 11 insertions(+), 15 deletions(-) diff --git a/dist/collapse.js b/dist/collapse.js index 145bf81..1908a56 100644 --- a/dist/collapse.js +++ b/dist/collapse.js @@ -1,15 +1,11 @@ -function toggleCollapse(event){ - let collapseID = event.currentTarget.getAttribute("data-target") - document.querySelector(collapseID).classList.toggle("hidden"); -} - -function initCollapse(){ - let dataCollapse = document.querySelectorAll("[data-toggle='collapse']"); - for (var index = 0; index < dataCollapse.length; index++) { - dataCollapse[index].addEventListener("click",toggleCollapse); - } -} - -(function () { - initCollapse(); -}()); +const toggleCollapse = e => { + const collapseID = e.currentTarget.getAttribute("data-target"); + + document.querySelector(collapseID).classList.toggle("hidden"); +} + +const initCollapse = () => { + const dataCollapse = document.querySelectorAll("[data-toggle='collapse']"); + + for (let i of dataCollapse) i.addEventListener("click",toggleCollapse); +} \ No newline at end of file From 0501d113c799415b842a8a47f78869fcebe38793 Mon Sep 17 00:00:00 2001 From: Sajad Ahmad Nawabi <Sajad_Ahmad_Nawabi@outlook.com> Date: Fri, 23 Oct 2020 13:04:29 +0430 Subject: [PATCH 30/34] Update dropdown.js --- dist/dropdown.js | 90 ++++++++++++++++++++++++++---------------------- 1 file changed, 48 insertions(+), 42 deletions(-) diff --git a/dist/dropdown.js b/dist/dropdown.js index 65acb3c..a29f9fa 100644 --- a/dist/dropdown.js +++ b/dist/dropdown.js @@ -1,42 +1,48 @@ -function togglePopper(event){ - let element = event.currentTarget; - let popperID = element.getAttribute("data-target"); - let placement = element.getAttribute("data-placement"); - let popperElement = document.querySelector(popperID); - let popperInnerElement = popperElement.querySelector("div"); - let popper = Popper.createPopper(element, popperElement, { - placement: (placement ? placement : 'bottom') - }); - popperElement.classList.toggle("hidden"); - placement = popper.state.placement - let marginClass; - switch (placement) { - case "bottom": - marginClass = "mt-3" - break; - case "top": - marginClass = "mb-3" - break; - case "left": - marginClass = "mr-3" - break; - case "right": - marginClass = "ml-3" - break; - default: - break; - } - fadeIn(popperElement, 500); - popperInnerElement.classList.toggle(marginClass); -} - -function initDropdowns(){ - let dropdownData = document.querySelectorAll("[data-toggle='dropdown']"); - for (var index = 0; index < dropdownData.length; index++) { - dropdownData[index].addEventListener("click",togglePopper); - } -} - -(function () { - initDropdowns(); -}()); +const toggleDropdown = e => { + let marginClass; + + const element = e.currentTarget; + const popperID = element.getAttribute("data-target"); + const placement = element.getAttribute("data-placement"); + const popperElement = document.querySelector(popperID); + const popperInnerElement = popperElement.querySelector("div"); + + Popper.createPopper(element, popperElement, { + placement: (placement ? placement : 'bottom') + }); + + switch (placement) { + case "bottom": + marginClass = "mt-3" + break; + case "top": + marginClass = "mb-3" + break; + case "left": + marginClass = "mr-3" + break; + case "right": + marginClass = "ml-3" + break; + } + + if (popperElement.classList.contains("hidden")) { + dropdownIn(popperElement); + + popperElement.classList.remove("hidden"); + popperInnerElement.classList.add(marginClass); + } else { + dropdownOut(popperElement); + + setTimeout(() => { + popperElement.classList.add("hidden"); + popperInnerElement.classList.remove(marginClass); + }, 300); + } +} + +const initDropdown = () => { + const dropdownData = document.querySelectorAll("[data-toggle='dropdown']"); + + for (let i of dropdownData) i.addEventListener("click",toggleDropdown); +} \ No newline at end of file From c596b833e7c0e0602132fc7857dc8ef696736bea Mon Sep 17 00:00:00 2001 From: Sajad Ahmad Nawabi <Sajad_Ahmad_Nawabi@outlook.com> Date: Fri, 23 Oct 2020 13:04:46 +0430 Subject: [PATCH 31/34] Update modal.js --- dist/modal.js | 80 ++++++++++++++++++++++++++------------------------- 1 file changed, 41 insertions(+), 39 deletions(-) diff --git a/dist/modal.js b/dist/modal.js index 5edb983..58a59ec 100644 --- a/dist/modal.js +++ b/dist/modal.js @@ -1,39 +1,41 @@ -function toggleModal(event){ - let modalID = event.currentTarget.getAttribute("data-target"); - let modal = document.querySelector(modalID); - let modalDialog = document.querySelector(modalID+"-dialog"); - let modalBackdrop = document.querySelector(modalID+"-backdrop"); - zoomIn(modalDialog); - modalBackdrop.classList.toggle("hidden"); - modalBackdrop.classList.toggle("flex"); - if (modal.classList.contains("hidden")) { - modal.style.display = "block"; - setTimeout(()=>{ - modal.classList.remove("hidden"); - modal.classList.add("flex"); - modal.classList.remove("opacity-0"); - modalDialog.classList.remove("-translate-y-1"); - modalDialog.classList.add("translate-y-1"); - },30); - } else { - modalDialog.classList.remove("translate-y-1"); - modalDialog.classList.add("-translate-y-1"); - setTimeout(()=>{ - modal.style.display = "none"; - modal.classList.add("hidden"); - modal.classList.remove("flex"); - modal.classList.add("opacity-0"); - },30) - } -} - -function initModal(){ - let dataModal = document.querySelectorAll("[data-toggle='modal']"); - for (var index = 0; index < dataModal.length; index++) { - dataModal[index].addEventListener("click",toggleModal); - } -} - -(function () { - initModal(); -}()); +const toggleModal = e => { + const modalID = e.currentTarget.getAttribute("data-target"); + const modal = document.querySelector(modalID); + const modalDialog = document.querySelector(`${modalID}-dialog`); + const modalBackdrop = document.querySelector(`${modalID}-backdrop`); + + modalBackdrop.classList.toggle("hidden"); + modalBackdrop.classList.toggle("flex"); + + if (modal.classList.contains("hidden")) { + modal.style.display = "block"; + + slideInBottom(modalDialog); + + setTimeout(() => { + modal.classList.remove("hidden"); + modal.classList.add("flex"); + modal.classList.remove("opacity-0"); + modalDialog.classList.remove("-translate-y-1"); + modalDialog.classList.add("translate-y-1"); + }, 30); + } else { + modalDialog.classList.remove("translate-y-1"); + modalDialog.classList.add("-translate-y-1"); + + slideOutBottom(modalDialog); + + setTimeout(() => { + modal.style.display = "none"; + modal.classList.add("hidden"); + modal.classList.remove("flex"); + modal.classList.add("opacity-0"); + }, 300); + } +} + +const initModal = () => { + const dataModal = document.querySelectorAll("[data-toggle='modal'"); + + for (let i of dataModal) i.addEventListener("click", toggleModal); +} \ No newline at end of file From 57470d17bfba39b082e9418bfc141399de7a14e5 Mon Sep 17 00:00:00 2001 From: Sajad Ahmad Nawabi <Sajad_Ahmad_Nawabi@outlook.com> Date: Fri, 23 Oct 2020 13:05:03 +0430 Subject: [PATCH 32/34] Update popover.js --- dist/popover.js | 89 ++++++++++++++++++++++++++----------------------- 1 file changed, 47 insertions(+), 42 deletions(-) diff --git a/dist/popover.js b/dist/popover.js index 0adaaec..9205b8e 100644 --- a/dist/popover.js +++ b/dist/popover.js @@ -1,42 +1,47 @@ -function togglePopper(event){ - let element = event.currentTarget; - let popperID = element.getAttribute("data-target"); - let placement = element.getAttribute("data-placement"); - let popperElement = document.querySelector(popperID); - let popperInnerElement = popperElement.querySelector("div"); - let popper = Popper.createPopper(element, popperElement, { - placement: (placement ? placement : 'bottom') - }); - popperElement.classList.toggle("hidden"); - placement = popper.state.placement - let marginClass; - switch (placement) { - case "bottom": - marginClass = "mt-3" - break; - case "top": - marginClass = "mb-3" - break; - case "left": - marginClass = "mr-3" - break; - case "right": - marginClass = "ml-3" - break; - default: - break; - } - fadeIn(popperElement, 500); - popperInnerElement.classList.toggle(marginClass); -} - -function initPopovers(){ - let popoverData = document.querySelectorAll("[data-toggle='popover']"); - for (var index = 0; index < popoverData.length; index++) { - popoverData[index].addEventListener("click",togglePopper); - } -} - -(function () { - initPopovers(); -}()); +const togglePopper = e => { + let marginClass; + + const element = e.currentTarget; + const popperID = element.getAttribute("data-target"); + let placement = element.getAttribute("data-placement"); + const popperElement = document.querySelector(popperID); + const popperInnerElement = popperElement.querySelector("div"); + + Popper.createPopper(element, popperElement, { + placement: (placement ? placement : "right") + }); + + switch (placement) { + case "bottom": + marginClass = "mt-3"; + break; + case "top": + marginClass = "mb-3"; + break; + case "left": + marginClass = "mr-3"; + break; + case "right": + marginClass = "ml-3"; + break; + } + + if (popperElement.classList.contains("hidden")) { + fadeIn(popperElement, 200); + popperElement.classList.remove("hidden"); + popperInnerElement.classList.add(marginClass); + } else { + fadeOut(popperElement, 200); + + setTimeout(() => { + popperElement.classList.add("hidden"); + popperInnerElement.classList.remove(marginClass); + }, 180); + } +} + +const initPopovers = () => { + const popoverData = document.querySelectorAll("[data-toggle='popover']"); + + for (let i of popoverData) i.addEventListener("click", togglePopper); +} \ No newline at end of file From e879c8f24f15961659af691db1314c4899c918d3 Mon Sep 17 00:00:00 2001 From: Sajad Ahmad Nawabi <Sajad_Ahmad_Nawabi@outlook.com> Date: Fri, 23 Oct 2020 13:05:29 +0430 Subject: [PATCH 33/34] Update tabs.js --- dist/tabs.js | 109 ++++++++++++++++++++++++--------------------------- 1 file changed, 52 insertions(+), 57 deletions(-) diff --git a/dist/tabs.js b/dist/tabs.js index e689d20..6236a2e 100644 --- a/dist/tabs.js +++ b/dist/tabs.js @@ -1,57 +1,52 @@ -function changeAtiveTab(event,activeClasses,normalClasses){ - event.preventDefault(); - // prepare classes for querySelectorAll and classList.remove/add - normalClasses = normalClasses.split(" ").filter(item => item !== " " && item !== ""); - activeClasses = activeClasses.split(" ").filter(item => item !== " " && item !== ""); - let queryActiveClasses = activeClasses.map(item => "." + item); - // get the anchor element with the data-toggle="tab" that has been clicked - let element = event.currentTarget; - let elementID = event.currentTarget.getAttribute("href"); - // get it's counterpart tab element - let tabElement = document.querySelector(elementID); - // get the unordered list parent (grand-parent actualy) - let ulElement = element.parentNode.parentNode; - // get the current active element - let activeElement = ulElement.querySelector("li > a" + queryActiveClasses); - let activeElementID = activeElement.getAttribute("href"); - // get the current active tab element - let activeTabElement = document.querySelector(activeElementID); - - normalClasses.forEach((item) => { - activeElement.classList.add(item); - element.classList.remove(item); - }); - activeClasses.forEach((item) => { - activeElement.classList.remove(item); - element.classList.add(item); - }); - - activeTabElement.classList.add("hidden"); - activeTabElement.classList.remove("block"); - tabElement.classList.remove("hidden"); - tabElement.classList.add("block"); -} - -// - activeClasses is for setting the classes for the active tab (anchor element) -// - normalClasses is for setting the classes for all the tabs (anchor elements) expect the -// one that is currently active, if they are unset, then the default ones will be choosen -// activeClasses = "bg-blue-600 text-white" -// normalClasses = "text-blue-600 bg-transparent" -function initTabs(activeClasses,normalClasses){ - let dataTabs = document.querySelectorAll("[data-toggle='tab']"); - const toggleFunction = (event) => { - event.preventDefault(); - activeClasses = activeClasses ? activeClasses:"bg-blue-600 text-white"; - normalClasses = normalClasses ? normalClasses:"text-blue-600 bg-white"; - changeAtiveTab(event,activeClasses,normalClasses) - } - const toggleAnimation = () => Array.from(dataTabs).forEach(el => zoomIn(document.querySelector(el.attributes.href.value))); - for (var index = 0; index < dataTabs.length; index++) { - dataTabs[index].addEventListener("click",toggleFunction); - dataTabs[index].addEventListener("click",toggleAnimation); - } -} - -(function () { - initTabs(); -}()); +const changeAtiveTab = (e, activeClasses, normalClasses) => { + e.preventDefault(); + + normalClasses = normalClasses.split(" ").filter(item => item !== " " && item !== ""); + activeClasses = activeClasses.split(" ").filter(item => item !== " " && item !== ""); + + let queryActiveClasses = activeClasses.map(item => "." + item); + let element = e.currentTarget; + let elementID = e.currentTarget.getAttribute("href"); + let tabElement = document.querySelector(elementID); + let ulElement = element.parentNode.parentNode; + let activeElement = ulElement.querySelector("li > a" + queryActiveClasses); + let activeElementID = activeElement.getAttribute("href"); + let activeTabElement = document.querySelector(activeElementID); + + normalClasses.forEach(item => { + activeElement.classList.add(item); + element.classList.remove(item); + }); + + activeClasses.forEach(item => { + activeElement.classList.remove(item); + element.classList.add(item); + }); + + activeTabElement.classList.add("hidden"); + activeTabElement.classList.remove("block"); + tabElement.classList.remove("hidden"); + tabElement.classList.add("block"); +} + +const initTabs = (activeClasses, normalClasses) => { + const dataTabs = document.querySelectorAll("[data-toggle='tab']"); + + const toggleFunction = e => { + e.preventDefault(); + + activeClasses = activeClasses ? activeClasses:"bg-blue-600 text-white"; + normalClasses = normalClasses ? normalClasses:"text-blue-600 bg-white"; + + changeAtiveTab(e, activeClasses, normalClasses); + } + + const toggleAnimation = () => { + Array.from(dataTabs).forEach(el => fadeIn(document.querySelector(el.attributes.href.value), 300)); + } + + for (let i of dataTabs) { + i.addEventListener("click", toggleFunction); + i.addEventListener("click", toggleAnimation); + } +} \ No newline at end of file From 9f5681601e1c2f333f63756412ff84679ec66761 Mon Sep 17 00:00:00 2001 From: Sajad Ahmad Nawabi <Sajad_Ahmad_Nawabi@outlook.com> Date: Fri, 23 Oct 2020 13:05:59 +0430 Subject: [PATCH 34/34] Update tooltip.js --- dist/tooltip.js | 93 ++++++++++++++++++++++++++----------------------- 1 file changed, 50 insertions(+), 43 deletions(-) diff --git a/dist/tooltip.js b/dist/tooltip.js index c689d9e..159595d 100644 --- a/dist/tooltip.js +++ b/dist/tooltip.js @@ -1,43 +1,50 @@ -function togglePopper(event){ - let element = event.currentTarget; - let popperID = element.getAttribute("data-target"); - let placement = element.getAttribute("data-placement"); - let popperElement = document.querySelector(popperID); - let popperInnerElement = popperElement.querySelector("div"); - let popper = Popper.createPopper(element, popperElement, { - placement: (placement ? placement : 'bottom') - }); - popperElement.classList.toggle("hidden"); - placement = popper.state.placement - let marginClass; - switch (placement) { - case "bottom": - marginClass = "mt-3" - break; - case "top": - marginClass = "mb-3" - break; - case "left": - marginClass = "mr-3" - break; - case "right": - marginClass = "ml-3" - break; - default: - break; - } - fadeIn(popperElement, 500); - popperInnerElement.classList.toggle(marginClass); -} - -function initTooltips(){ - let tooltipData = document.querySelectorAll("[data-toggle='tooltip']"); - for (var index = 0; index < tooltipData.length; index++) { - tooltipData[index].addEventListener("mouseenter",togglePopper); - tooltipData[index].addEventListener("mouseleave",togglePopper); - } -} - -(function () { - initTooltips(); -}()); +const toggleTooltips = e => { + let marginClass; + + const element = e.currentTarget; + const popperID = element.getAttribute("data-target"); + const placement = element.getAttribute("data-placement"); + const popperElement = document.querySelector(popperID); + const popperInnerElement = popperElement.querySelector("div"); + + popper = Popper.createPopper(element, popperElement, { + placement: (placement ? placement : 'bottom') + }); + + switch (placement) { + case "bottom": + marginClass = "mt-3" + break; + case "top": + marginClass = "mb-3" + break; + case "left": + marginClass = "mr-3" + break; + case "right": + marginClass = "ml-3" + break; + } + + if (popperElement.classList.contains("hidden")) { + fadeIn(popperElement, 200); + popperElement.classList.remove("hidden"); + popperInnerElement.classList.add(marginClass); + } else { + fadeOut(popperElement, 200); + + setTimeout(() => { + popperElement.classList.add("hidden"); + popperInnerElement.classList.remove(marginClass); + }, 180); + } +} + +const initTooltips = () => { + const tooltipData = document.querySelectorAll("[data-toggle='tooltip'"); + + for (let i of tooltipData) { + i.addEventListener("mouseenter", toggleTooltips); + i.addEventListener("mouseleave", toggleTooltips); + } +} \ No newline at end of file