summaryrefslogtreecommitdiff
path: root/public/assets/js/DataTables/Responsive-2.4.1
diff options
context:
space:
mode:
Diffstat (limited to 'public/assets/js/DataTables/Responsive-2.4.1')
-rw-r--r--public/assets/js/DataTables/Responsive-2.4.1/css/responsive.bootstrap.css185
-rw-r--r--public/assets/js/DataTables/Responsive-2.4.1/css/responsive.bootstrap.min.css1
-rw-r--r--public/assets/js/DataTables/Responsive-2.4.1/css/responsive.bootstrap4.css185
-rw-r--r--public/assets/js/DataTables/Responsive-2.4.1/css/responsive.bootstrap4.min.css1
-rw-r--r--public/assets/js/DataTables/Responsive-2.4.1/css/responsive.bootstrap5.css190
-rw-r--r--public/assets/js/DataTables/Responsive-2.4.1/css/responsive.bootstrap5.min.css1
-rw-r--r--public/assets/js/DataTables/Responsive-2.4.1/css/responsive.bulma.css191
-rw-r--r--public/assets/js/DataTables/Responsive-2.4.1/css/responsive.bulma.min.css1
-rw-r--r--public/assets/js/DataTables/Responsive-2.4.1/css/responsive.dataTables.css182
-rw-r--r--public/assets/js/DataTables/Responsive-2.4.1/css/responsive.dataTables.min.css1
-rw-r--r--public/assets/js/DataTables/Responsive-2.4.1/css/responsive.foundation.css185
-rw-r--r--public/assets/js/DataTables/Responsive-2.4.1/css/responsive.foundation.min.css1
-rw-r--r--public/assets/js/DataTables/Responsive-2.4.1/css/responsive.jqueryui.css182
-rw-r--r--public/assets/js/DataTables/Responsive-2.4.1/css/responsive.jqueryui.min.css1
-rw-r--r--public/assets/js/DataTables/Responsive-2.4.1/css/responsive.semanticui.css185
-rw-r--r--public/assets/js/DataTables/Responsive-2.4.1/css/responsive.semanticui.min.css1
-rw-r--r--public/assets/js/DataTables/Responsive-2.4.1/js/dataTables.responsive.js1533
-rw-r--r--public/assets/js/DataTables/Responsive-2.4.1/js/dataTables.responsive.min.js4
-rw-r--r--public/assets/js/DataTables/Responsive-2.4.1/js/responsive.bootstrap.js102
-rw-r--r--public/assets/js/DataTables/Responsive-2.4.1/js/responsive.bootstrap.min.js4
-rw-r--r--public/assets/js/DataTables/Responsive-2.4.1/js/responsive.bootstrap4.js102
-rw-r--r--public/assets/js/DataTables/Responsive-2.4.1/js/responsive.bootstrap4.min.js4
-rw-r--r--public/assets/js/DataTables/Responsive-2.4.1/js/responsive.bootstrap5.js118
-rw-r--r--public/assets/js/DataTables/Responsive-2.4.1/js/responsive.bootstrap5.min.js4
-rw-r--r--public/assets/js/DataTables/Responsive-2.4.1/js/responsive.bulma.js104
-rw-r--r--public/assets/js/DataTables/Responsive-2.4.1/js/responsive.bulma.min.js4
-rw-r--r--public/assets/js/DataTables/Responsive-2.4.1/js/responsive.dataTables.js58
-rw-r--r--public/assets/js/DataTables/Responsive-2.4.1/js/responsive.dataTables.min.js4
-rw-r--r--public/assets/js/DataTables/Responsive-2.4.1/js/responsive.foundation.js88
-rw-r--r--public/assets/js/DataTables/Responsive-2.4.1/js/responsive.foundation.min.js4
-rw-r--r--public/assets/js/DataTables/Responsive-2.4.1/js/responsive.jqueryui.js80
-rw-r--r--public/assets/js/DataTables/Responsive-2.4.1/js/responsive.jqueryui.min.js4
-rw-r--r--public/assets/js/DataTables/Responsive-2.4.1/js/responsive.semanticui.js97
-rw-r--r--public/assets/js/DataTables/Responsive-2.4.1/js/responsive.semanticui.min.js4
34 files changed, 3811 insertions, 0 deletions
diff --git a/public/assets/js/DataTables/Responsive-2.4.1/css/responsive.bootstrap.css b/public/assets/js/DataTables/Responsive-2.4.1/css/responsive.bootstrap.css
new file mode 100644
index 0000000..c9be10e
--- /dev/null
+++ b/public/assets/js/DataTables/Responsive-2.4.1/css/responsive.bootstrap.css
@@ -0,0 +1,185 @@
+table.dataTable.dtr-inline.collapsed > tbody > tr > td.child,
+table.dataTable.dtr-inline.collapsed > tbody > tr > th.child,
+table.dataTable.dtr-inline.collapsed > tbody > tr > td.dataTables_empty {
+ cursor: default !important;
+}
+table.dataTable.dtr-inline.collapsed > tbody > tr > td.child:before,
+table.dataTable.dtr-inline.collapsed > tbody > tr > th.child:before,
+table.dataTable.dtr-inline.collapsed > tbody > tr > td.dataTables_empty:before {
+ display: none !important;
+}
+table.dataTable.dtr-inline.collapsed > tbody > tr > td.dtr-control,
+table.dataTable.dtr-inline.collapsed > tbody > tr > th.dtr-control {
+ position: relative;
+ padding-left: 30px;
+ cursor: pointer;
+}
+table.dataTable.dtr-inline.collapsed > tbody > tr > td.dtr-control:before,
+table.dataTable.dtr-inline.collapsed > tbody > tr > th.dtr-control:before {
+ top: 50%;
+ left: 5px;
+ height: 1em;
+ width: 1em;
+ margin-top: -9px;
+ display: block;
+ position: absolute;
+ color: white;
+ border: 0.15em solid white;
+ border-radius: 1em;
+ box-shadow: 0 0 0.2em #444;
+ box-sizing: content-box;
+ text-align: center;
+ text-indent: 0 !important;
+ font-family: "Courier New", Courier, monospace;
+ line-height: 1em;
+ content: "+";
+ background-color: #337ab7;
+}
+table.dataTable.dtr-inline.collapsed > tbody > tr.parent > td.dtr-control:before,
+table.dataTable.dtr-inline.collapsed > tbody > tr.parent > th.dtr-control:before {
+ content: "-";
+ background-color: #d33333;
+}
+table.dataTable.dtr-inline.collapsed.compact > tbody > tr > td.dtr-control,
+table.dataTable.dtr-inline.collapsed.compact > tbody > tr > th.dtr-control {
+ padding-left: 27px;
+}
+table.dataTable.dtr-inline.collapsed.compact > tbody > tr > td.dtr-control:before,
+table.dataTable.dtr-inline.collapsed.compact > tbody > tr > th.dtr-control:before {
+ left: 4px;
+ height: 14px;
+ width: 14px;
+ border-radius: 14px;
+ line-height: 14px;
+ text-indent: 3px;
+}
+table.dataTable.dtr-column > tbody > tr > td.dtr-control,
+table.dataTable.dtr-column > tbody > tr > th.dtr-control,
+table.dataTable.dtr-column > tbody > tr > td.control,
+table.dataTable.dtr-column > tbody > tr > th.control {
+ position: relative;
+ cursor: pointer;
+}
+table.dataTable.dtr-column > tbody > tr > td.dtr-control:before,
+table.dataTable.dtr-column > tbody > tr > th.dtr-control:before,
+table.dataTable.dtr-column > tbody > tr > td.control:before,
+table.dataTable.dtr-column > tbody > tr > th.control:before {
+ top: 50%;
+ left: 50%;
+ height: 0.8em;
+ width: 0.8em;
+ margin-top: -0.5em;
+ margin-left: -0.5em;
+ display: block;
+ position: absolute;
+ color: white;
+ border: 0.15em solid white;
+ border-radius: 1em;
+ box-shadow: 0 0 0.2em #444;
+ box-sizing: content-box;
+ text-align: center;
+ text-indent: 0 !important;
+ font-family: "Courier New", Courier, monospace;
+ line-height: 1em;
+ content: "+";
+ background-color: #337ab7;
+}
+table.dataTable.dtr-column > tbody > tr.parent td.dtr-control:before,
+table.dataTable.dtr-column > tbody > tr.parent th.dtr-control:before,
+table.dataTable.dtr-column > tbody > tr.parent td.control:before,
+table.dataTable.dtr-column > tbody > tr.parent th.control:before {
+ content: "-";
+ background-color: #d33333;
+}
+table.dataTable > tbody > tr.child {
+ padding: 0.5em 1em;
+}
+table.dataTable > tbody > tr.child:hover {
+ background: transparent !important;
+}
+table.dataTable > tbody > tr.child ul.dtr-details {
+ display: inline-block;
+ list-style-type: none;
+ margin: 0;
+ padding: 0;
+}
+table.dataTable > tbody > tr.child ul.dtr-details > li {
+ border-bottom: 1px solid #efefef;
+ padding: 0.5em 0;
+}
+table.dataTable > tbody > tr.child ul.dtr-details > li:first-child {
+ padding-top: 0;
+}
+table.dataTable > tbody > tr.child ul.dtr-details > li:last-child {
+ border-bottom: none;
+}
+table.dataTable > tbody > tr.child span.dtr-title {
+ display: inline-block;
+ min-width: 75px;
+ font-weight: bold;
+}
+div.dtr-modal {
+ position: fixed;
+ box-sizing: border-box;
+ top: 0;
+ left: 0;
+ height: 100%;
+ width: 100%;
+ z-index: 100;
+ padding: 10em 1em;
+}
+div.dtr-modal div.dtr-modal-display {
+ position: absolute;
+ top: 0;
+ left: 0;
+ bottom: 0;
+ right: 0;
+ width: 50%;
+ height: 50%;
+ overflow: auto;
+ margin: auto;
+ z-index: 102;
+ overflow: auto;
+ background-color: #f5f5f7;
+ border: 1px solid black;
+ border-radius: 0.5em;
+ box-shadow: 0 12px 30px rgba(0, 0, 0, 0.6);
+}
+div.dtr-modal div.dtr-modal-content {
+ position: relative;
+ padding: 1em;
+}
+div.dtr-modal div.dtr-modal-close {
+ position: absolute;
+ top: 6px;
+ right: 6px;
+ width: 22px;
+ height: 22px;
+ border: 1px solid #eaeaea;
+ background-color: #f9f9f9;
+ text-align: center;
+ border-radius: 3px;
+ cursor: pointer;
+ z-index: 12;
+}
+div.dtr-modal div.dtr-modal-close:hover {
+ background-color: #eaeaea;
+}
+div.dtr-modal div.dtr-modal-background {
+ position: fixed;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ z-index: 101;
+ background: rgba(0, 0, 0, 0.6);
+}
+
+@media screen and (max-width: 767px) {
+ div.dtr-modal div.dtr-modal-display {
+ width: 95%;
+ }
+}
+div.dtr-bs-modal table.table tr:first-child td {
+ border-top: none;
+}
diff --git a/public/assets/js/DataTables/Responsive-2.4.1/css/responsive.bootstrap.min.css b/public/assets/js/DataTables/Responsive-2.4.1/css/responsive.bootstrap.min.css
new file mode 100644
index 0000000..b3642ee
--- /dev/null
+++ b/public/assets/js/DataTables/Responsive-2.4.1/css/responsive.bootstrap.min.css
@@ -0,0 +1 @@
+table.dataTable.dtr-inline.collapsed>tbody>tr>td.child,table.dataTable.dtr-inline.collapsed>tbody>tr>th.child,table.dataTable.dtr-inline.collapsed>tbody>tr>td.dataTables_empty{cursor:default !important}table.dataTable.dtr-inline.collapsed>tbody>tr>td.child:before,table.dataTable.dtr-inline.collapsed>tbody>tr>th.child:before,table.dataTable.dtr-inline.collapsed>tbody>tr>td.dataTables_empty:before{display:none !important}table.dataTable.dtr-inline.collapsed>tbody>tr>td.dtr-control,table.dataTable.dtr-inline.collapsed>tbody>tr>th.dtr-control{position:relative;padding-left:30px;cursor:pointer}table.dataTable.dtr-inline.collapsed>tbody>tr>td.dtr-control:before,table.dataTable.dtr-inline.collapsed>tbody>tr>th.dtr-control:before{top:50%;left:5px;height:1em;width:1em;margin-top:-9px;display:block;position:absolute;color:white;border:.15em solid white;border-radius:1em;box-shadow:0 0 .2em #444;box-sizing:content-box;text-align:center;text-indent:0 !important;font-family:"Courier New",Courier,monospace;line-height:1em;content:"+";background-color:#337ab7}table.dataTable.dtr-inline.collapsed>tbody>tr.parent>td.dtr-control:before,table.dataTable.dtr-inline.collapsed>tbody>tr.parent>th.dtr-control:before{content:"-";background-color:#d33333}table.dataTable.dtr-inline.collapsed.compact>tbody>tr>td.dtr-control,table.dataTable.dtr-inline.collapsed.compact>tbody>tr>th.dtr-control{padding-left:27px}table.dataTable.dtr-inline.collapsed.compact>tbody>tr>td.dtr-control:before,table.dataTable.dtr-inline.collapsed.compact>tbody>tr>th.dtr-control:before{left:4px;height:14px;width:14px;border-radius:14px;line-height:14px;text-indent:3px}table.dataTable.dtr-column>tbody>tr>td.dtr-control,table.dataTable.dtr-column>tbody>tr>th.dtr-control,table.dataTable.dtr-column>tbody>tr>td.control,table.dataTable.dtr-column>tbody>tr>th.control{position:relative;cursor:pointer}table.dataTable.dtr-column>tbody>tr>td.dtr-control:before,table.dataTable.dtr-column>tbody>tr>th.dtr-control:before,table.dataTable.dtr-column>tbody>tr>td.control:before,table.dataTable.dtr-column>tbody>tr>th.control:before{top:50%;left:50%;height:.8em;width:.8em;margin-top:-0.5em;margin-left:-0.5em;display:block;position:absolute;color:white;border:.15em solid white;border-radius:1em;box-shadow:0 0 .2em #444;box-sizing:content-box;text-align:center;text-indent:0 !important;font-family:"Courier New",Courier,monospace;line-height:1em;content:"+";background-color:#337ab7}table.dataTable.dtr-column>tbody>tr.parent td.dtr-control:before,table.dataTable.dtr-column>tbody>tr.parent th.dtr-control:before,table.dataTable.dtr-column>tbody>tr.parent td.control:before,table.dataTable.dtr-column>tbody>tr.parent th.control:before{content:"-";background-color:#d33333}table.dataTable>tbody>tr.child{padding:.5em 1em}table.dataTable>tbody>tr.child:hover{background:transparent !important}table.dataTable>tbody>tr.child ul.dtr-details{display:inline-block;list-style-type:none;margin:0;padding:0}table.dataTable>tbody>tr.child ul.dtr-details>li{border-bottom:1px solid #efefef;padding:.5em 0}table.dataTable>tbody>tr.child ul.dtr-details>li:first-child{padding-top:0}table.dataTable>tbody>tr.child ul.dtr-details>li:last-child{border-bottom:none}table.dataTable>tbody>tr.child span.dtr-title{display:inline-block;min-width:75px;font-weight:bold}div.dtr-modal{position:fixed;box-sizing:border-box;top:0;left:0;height:100%;width:100%;z-index:100;padding:10em 1em}div.dtr-modal div.dtr-modal-display{position:absolute;top:0;left:0;bottom:0;right:0;width:50%;height:50%;overflow:auto;margin:auto;z-index:102;overflow:auto;background-color:#f5f5f7;border:1px solid black;border-radius:.5em;box-shadow:0 12px 30px rgba(0, 0, 0, 0.6)}div.dtr-modal div.dtr-modal-content{position:relative;padding:1em}div.dtr-modal div.dtr-modal-close{position:absolute;top:6px;right:6px;width:22px;height:22px;border:1px solid #eaeaea;background-color:#f9f9f9;text-align:center;border-radius:3px;cursor:pointer;z-index:12}div.dtr-modal div.dtr-modal-close:hover{background-color:#eaeaea}div.dtr-modal div.dtr-modal-background{position:fixed;top:0;left:0;right:0;bottom:0;z-index:101;background:rgba(0, 0, 0, 0.6)}@media screen and (max-width: 767px){div.dtr-modal div.dtr-modal-display{width:95%}}div.dtr-bs-modal table.table tr:first-child td{border-top:none}
diff --git a/public/assets/js/DataTables/Responsive-2.4.1/css/responsive.bootstrap4.css b/public/assets/js/DataTables/Responsive-2.4.1/css/responsive.bootstrap4.css
new file mode 100644
index 0000000..7152fc3
--- /dev/null
+++ b/public/assets/js/DataTables/Responsive-2.4.1/css/responsive.bootstrap4.css
@@ -0,0 +1,185 @@
+table.dataTable.dtr-inline.collapsed > tbody > tr > td.child,
+table.dataTable.dtr-inline.collapsed > tbody > tr > th.child,
+table.dataTable.dtr-inline.collapsed > tbody > tr > td.dataTables_empty {
+ cursor: default !important;
+}
+table.dataTable.dtr-inline.collapsed > tbody > tr > td.child:before,
+table.dataTable.dtr-inline.collapsed > tbody > tr > th.child:before,
+table.dataTable.dtr-inline.collapsed > tbody > tr > td.dataTables_empty:before {
+ display: none !important;
+}
+table.dataTable.dtr-inline.collapsed > tbody > tr > td.dtr-control,
+table.dataTable.dtr-inline.collapsed > tbody > tr > th.dtr-control {
+ position: relative;
+ padding-left: 30px;
+ cursor: pointer;
+}
+table.dataTable.dtr-inline.collapsed > tbody > tr > td.dtr-control:before,
+table.dataTable.dtr-inline.collapsed > tbody > tr > th.dtr-control:before {
+ top: 50%;
+ left: 5px;
+ height: 1em;
+ width: 1em;
+ margin-top: -9px;
+ display: block;
+ position: absolute;
+ color: white;
+ border: 0.15em solid white;
+ border-radius: 1em;
+ box-shadow: 0 0 0.2em #444;
+ box-sizing: content-box;
+ text-align: center;
+ text-indent: 0 !important;
+ font-family: "Courier New", Courier, monospace;
+ line-height: 1em;
+ content: "+";
+ background-color: #0275d8;
+}
+table.dataTable.dtr-inline.collapsed > tbody > tr.parent > td.dtr-control:before,
+table.dataTable.dtr-inline.collapsed > tbody > tr.parent > th.dtr-control:before {
+ content: "-";
+ background-color: #d33333;
+}
+table.dataTable.dtr-inline.collapsed.compact > tbody > tr > td.dtr-control,
+table.dataTable.dtr-inline.collapsed.compact > tbody > tr > th.dtr-control {
+ padding-left: 27px;
+}
+table.dataTable.dtr-inline.collapsed.compact > tbody > tr > td.dtr-control:before,
+table.dataTable.dtr-inline.collapsed.compact > tbody > tr > th.dtr-control:before {
+ left: 4px;
+ height: 14px;
+ width: 14px;
+ border-radius: 14px;
+ line-height: 14px;
+ text-indent: 3px;
+}
+table.dataTable.dtr-column > tbody > tr > td.dtr-control,
+table.dataTable.dtr-column > tbody > tr > th.dtr-control,
+table.dataTable.dtr-column > tbody > tr > td.control,
+table.dataTable.dtr-column > tbody > tr > th.control {
+ position: relative;
+ cursor: pointer;
+}
+table.dataTable.dtr-column > tbody > tr > td.dtr-control:before,
+table.dataTable.dtr-column > tbody > tr > th.dtr-control:before,
+table.dataTable.dtr-column > tbody > tr > td.control:before,
+table.dataTable.dtr-column > tbody > tr > th.control:before {
+ top: 50%;
+ left: 50%;
+ height: 0.8em;
+ width: 0.8em;
+ margin-top: -0.5em;
+ margin-left: -0.5em;
+ display: block;
+ position: absolute;
+ color: white;
+ border: 0.15em solid white;
+ border-radius: 1em;
+ box-shadow: 0 0 0.2em #444;
+ box-sizing: content-box;
+ text-align: center;
+ text-indent: 0 !important;
+ font-family: "Courier New", Courier, monospace;
+ line-height: 1em;
+ content: "+";
+ background-color: #0275d8;
+}
+table.dataTable.dtr-column > tbody > tr.parent td.dtr-control:before,
+table.dataTable.dtr-column > tbody > tr.parent th.dtr-control:before,
+table.dataTable.dtr-column > tbody > tr.parent td.control:before,
+table.dataTable.dtr-column > tbody > tr.parent th.control:before {
+ content: "-";
+ background-color: #d33333;
+}
+table.dataTable > tbody > tr.child {
+ padding: 0.5em 1em;
+}
+table.dataTable > tbody > tr.child:hover {
+ background: transparent !important;
+}
+table.dataTable > tbody > tr.child ul.dtr-details {
+ display: inline-block;
+ list-style-type: none;
+ margin: 0;
+ padding: 0;
+}
+table.dataTable > tbody > tr.child ul.dtr-details > li {
+ border-bottom: 1px solid #efefef;
+ padding: 0.5em 0;
+}
+table.dataTable > tbody > tr.child ul.dtr-details > li:first-child {
+ padding-top: 0;
+}
+table.dataTable > tbody > tr.child ul.dtr-details > li:last-child {
+ border-bottom: none;
+}
+table.dataTable > tbody > tr.child span.dtr-title {
+ display: inline-block;
+ min-width: 75px;
+ font-weight: bold;
+}
+div.dtr-modal {
+ position: fixed;
+ box-sizing: border-box;
+ top: 0;
+ left: 0;
+ height: 100%;
+ width: 100%;
+ z-index: 100;
+ padding: 10em 1em;
+}
+div.dtr-modal div.dtr-modal-display {
+ position: absolute;
+ top: 0;
+ left: 0;
+ bottom: 0;
+ right: 0;
+ width: 50%;
+ height: 50%;
+ overflow: auto;
+ margin: auto;
+ z-index: 102;
+ overflow: auto;
+ background-color: #f5f5f7;
+ border: 1px solid black;
+ border-radius: 0.5em;
+ box-shadow: 0 12px 30px rgba(0, 0, 0, 0.6);
+}
+div.dtr-modal div.dtr-modal-content {
+ position: relative;
+ padding: 1em;
+}
+div.dtr-modal div.dtr-modal-close {
+ position: absolute;
+ top: 6px;
+ right: 6px;
+ width: 22px;
+ height: 22px;
+ border: 1px solid #eaeaea;
+ background-color: #f9f9f9;
+ text-align: center;
+ border-radius: 3px;
+ cursor: pointer;
+ z-index: 12;
+}
+div.dtr-modal div.dtr-modal-close:hover {
+ background-color: #eaeaea;
+}
+div.dtr-modal div.dtr-modal-background {
+ position: fixed;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ z-index: 101;
+ background: rgba(0, 0, 0, 0.6);
+}
+
+@media screen and (max-width: 767px) {
+ div.dtr-modal div.dtr-modal-display {
+ width: 95%;
+ }
+}
+div.dtr-bs-modal table.table tr:first-child td {
+ border-top: none;
+}
diff --git a/public/assets/js/DataTables/Responsive-2.4.1/css/responsive.bootstrap4.min.css b/public/assets/js/DataTables/Responsive-2.4.1/css/responsive.bootstrap4.min.css
new file mode 100644
index 0000000..28959af
--- /dev/null
+++ b/public/assets/js/DataTables/Responsive-2.4.1/css/responsive.bootstrap4.min.css
@@ -0,0 +1 @@
+table.dataTable.dtr-inline.collapsed>tbody>tr>td.child,table.dataTable.dtr-inline.collapsed>tbody>tr>th.child,table.dataTable.dtr-inline.collapsed>tbody>tr>td.dataTables_empty{cursor:default !important}table.dataTable.dtr-inline.collapsed>tbody>tr>td.child:before,table.dataTable.dtr-inline.collapsed>tbody>tr>th.child:before,table.dataTable.dtr-inline.collapsed>tbody>tr>td.dataTables_empty:before{display:none !important}table.dataTable.dtr-inline.collapsed>tbody>tr>td.dtr-control,table.dataTable.dtr-inline.collapsed>tbody>tr>th.dtr-control{position:relative;padding-left:30px;cursor:pointer}table.dataTable.dtr-inline.collapsed>tbody>tr>td.dtr-control:before,table.dataTable.dtr-inline.collapsed>tbody>tr>th.dtr-control:before{top:50%;left:5px;height:1em;width:1em;margin-top:-9px;display:block;position:absolute;color:white;border:.15em solid white;border-radius:1em;box-shadow:0 0 .2em #444;box-sizing:content-box;text-align:center;text-indent:0 !important;font-family:"Courier New",Courier,monospace;line-height:1em;content:"+";background-color:#0275d8}table.dataTable.dtr-inline.collapsed>tbody>tr.parent>td.dtr-control:before,table.dataTable.dtr-inline.collapsed>tbody>tr.parent>th.dtr-control:before{content:"-";background-color:#d33333}table.dataTable.dtr-inline.collapsed.compact>tbody>tr>td.dtr-control,table.dataTable.dtr-inline.collapsed.compact>tbody>tr>th.dtr-control{padding-left:27px}table.dataTable.dtr-inline.collapsed.compact>tbody>tr>td.dtr-control:before,table.dataTable.dtr-inline.collapsed.compact>tbody>tr>th.dtr-control:before{left:4px;height:14px;width:14px;border-radius:14px;line-height:14px;text-indent:3px}table.dataTable.dtr-column>tbody>tr>td.dtr-control,table.dataTable.dtr-column>tbody>tr>th.dtr-control,table.dataTable.dtr-column>tbody>tr>td.control,table.dataTable.dtr-column>tbody>tr>th.control{position:relative;cursor:pointer}table.dataTable.dtr-column>tbody>tr>td.dtr-control:before,table.dataTable.dtr-column>tbody>tr>th.dtr-control:before,table.dataTable.dtr-column>tbody>tr>td.control:before,table.dataTable.dtr-column>tbody>tr>th.control:before{top:50%;left:50%;height:.8em;width:.8em;margin-top:-0.5em;margin-left:-0.5em;display:block;position:absolute;color:white;border:.15em solid white;border-radius:1em;box-shadow:0 0 .2em #444;box-sizing:content-box;text-align:center;text-indent:0 !important;font-family:"Courier New",Courier,monospace;line-height:1em;content:"+";background-color:#0275d8}table.dataTable.dtr-column>tbody>tr.parent td.dtr-control:before,table.dataTable.dtr-column>tbody>tr.parent th.dtr-control:before,table.dataTable.dtr-column>tbody>tr.parent td.control:before,table.dataTable.dtr-column>tbody>tr.parent th.control:before{content:"-";background-color:#d33333}table.dataTable>tbody>tr.child{padding:.5em 1em}table.dataTable>tbody>tr.child:hover{background:transparent !important}table.dataTable>tbody>tr.child ul.dtr-details{display:inline-block;list-style-type:none;margin:0;padding:0}table.dataTable>tbody>tr.child ul.dtr-details>li{border-bottom:1px solid #efefef;padding:.5em 0}table.dataTable>tbody>tr.child ul.dtr-details>li:first-child{padding-top:0}table.dataTable>tbody>tr.child ul.dtr-details>li:last-child{border-bottom:none}table.dataTable>tbody>tr.child span.dtr-title{display:inline-block;min-width:75px;font-weight:bold}div.dtr-modal{position:fixed;box-sizing:border-box;top:0;left:0;height:100%;width:100%;z-index:100;padding:10em 1em}div.dtr-modal div.dtr-modal-display{position:absolute;top:0;left:0;bottom:0;right:0;width:50%;height:50%;overflow:auto;margin:auto;z-index:102;overflow:auto;background-color:#f5f5f7;border:1px solid black;border-radius:.5em;box-shadow:0 12px 30px rgba(0, 0, 0, 0.6)}div.dtr-modal div.dtr-modal-content{position:relative;padding:1em}div.dtr-modal div.dtr-modal-close{position:absolute;top:6px;right:6px;width:22px;height:22px;border:1px solid #eaeaea;background-color:#f9f9f9;text-align:center;border-radius:3px;cursor:pointer;z-index:12}div.dtr-modal div.dtr-modal-close:hover{background-color:#eaeaea}div.dtr-modal div.dtr-modal-background{position:fixed;top:0;left:0;right:0;bottom:0;z-index:101;background:rgba(0, 0, 0, 0.6)}@media screen and (max-width: 767px){div.dtr-modal div.dtr-modal-display{width:95%}}div.dtr-bs-modal table.table tr:first-child td{border-top:none}
diff --git a/public/assets/js/DataTables/Responsive-2.4.1/css/responsive.bootstrap5.css b/public/assets/js/DataTables/Responsive-2.4.1/css/responsive.bootstrap5.css
new file mode 100644
index 0000000..e563aab
--- /dev/null
+++ b/public/assets/js/DataTables/Responsive-2.4.1/css/responsive.bootstrap5.css
@@ -0,0 +1,190 @@
+table.dataTable.dtr-inline.collapsed > tbody > tr > td.child,
+table.dataTable.dtr-inline.collapsed > tbody > tr > th.child,
+table.dataTable.dtr-inline.collapsed > tbody > tr > td.dataTables_empty {
+ cursor: default !important;
+}
+table.dataTable.dtr-inline.collapsed > tbody > tr > td.child:before,
+table.dataTable.dtr-inline.collapsed > tbody > tr > th.child:before,
+table.dataTable.dtr-inline.collapsed > tbody > tr > td.dataTables_empty:before {
+ display: none !important;
+}
+table.dataTable.dtr-inline.collapsed > tbody > tr > td.dtr-control,
+table.dataTable.dtr-inline.collapsed > tbody > tr > th.dtr-control {
+ position: relative;
+ padding-left: 30px;
+ cursor: pointer;
+}
+table.dataTable.dtr-inline.collapsed > tbody > tr > td.dtr-control:before,
+table.dataTable.dtr-inline.collapsed > tbody > tr > th.dtr-control:before {
+ top: 50%;
+ left: 5px;
+ height: 1em;
+ width: 1em;
+ margin-top: -9px;
+ display: block;
+ position: absolute;
+ color: white;
+ border: 0.15em solid white;
+ border-radius: 1em;
+ box-shadow: 0 0 0.2em #444;
+ box-sizing: content-box;
+ text-align: center;
+ text-indent: 0 !important;
+ font-family: "Courier New", Courier, monospace;
+ line-height: 1em;
+ content: "+";
+ background-color: #0d6efd;
+}
+table.dataTable.dtr-inline.collapsed > tbody > tr.parent > td.dtr-control:before,
+table.dataTable.dtr-inline.collapsed > tbody > tr.parent > th.dtr-control:before {
+ content: "-";
+ background-color: #d33333;
+}
+table.dataTable.dtr-inline.collapsed.compact > tbody > tr > td.dtr-control,
+table.dataTable.dtr-inline.collapsed.compact > tbody > tr > th.dtr-control {
+ padding-left: 27px;
+}
+table.dataTable.dtr-inline.collapsed.compact > tbody > tr > td.dtr-control:before,
+table.dataTable.dtr-inline.collapsed.compact > tbody > tr > th.dtr-control:before {
+ left: 4px;
+ height: 14px;
+ width: 14px;
+ border-radius: 14px;
+ line-height: 14px;
+ text-indent: 3px;
+}
+table.dataTable.dtr-column > tbody > tr > td.dtr-control,
+table.dataTable.dtr-column > tbody > tr > th.dtr-control,
+table.dataTable.dtr-column > tbody > tr > td.control,
+table.dataTable.dtr-column > tbody > tr > th.control {
+ position: relative;
+ cursor: pointer;
+}
+table.dataTable.dtr-column > tbody > tr > td.dtr-control:before,
+table.dataTable.dtr-column > tbody > tr > th.dtr-control:before,
+table.dataTable.dtr-column > tbody > tr > td.control:before,
+table.dataTable.dtr-column > tbody > tr > th.control:before {
+ top: 50%;
+ left: 50%;
+ height: 0.8em;
+ width: 0.8em;
+ margin-top: -0.5em;
+ margin-left: -0.5em;
+ display: block;
+ position: absolute;
+ color: white;
+ border: 0.15em solid white;
+ border-radius: 1em;
+ box-shadow: 0 0 0.2em #444;
+ box-sizing: content-box;
+ text-align: center;
+ text-indent: 0 !important;
+ font-family: "Courier New", Courier, monospace;
+ line-height: 1em;
+ content: "+";
+ background-color: #0d6efd;
+}
+table.dataTable.dtr-column > tbody > tr.parent td.dtr-control:before,
+table.dataTable.dtr-column > tbody > tr.parent th.dtr-control:before,
+table.dataTable.dtr-column > tbody > tr.parent td.control:before,
+table.dataTable.dtr-column > tbody > tr.parent th.control:before {
+ content: "-";
+ background-color: #d33333;
+}
+table.dataTable > tbody > tr.child {
+ padding: 0.5em 1em;
+}
+table.dataTable > tbody > tr.child:hover {
+ background: transparent !important;
+}
+table.dataTable > tbody > tr.child ul.dtr-details {
+ display: inline-block;
+ list-style-type: none;
+ margin: 0;
+ padding: 0;
+}
+table.dataTable > tbody > tr.child ul.dtr-details > li {
+ border-bottom: 1px solid #efefef;
+ padding: 0.5em 0;
+}
+table.dataTable > tbody > tr.child ul.dtr-details > li:first-child {
+ padding-top: 0;
+}
+table.dataTable > tbody > tr.child ul.dtr-details > li:last-child {
+ border-bottom: none;
+}
+table.dataTable > tbody > tr.child span.dtr-title {
+ display: inline-block;
+ min-width: 75px;
+ font-weight: bold;
+}
+div.dtr-modal {
+ position: fixed;
+ box-sizing: border-box;
+ top: 0;
+ left: 0;
+ height: 100%;
+ width: 100%;
+ z-index: 100;
+ padding: 10em 1em;
+}
+div.dtr-modal div.dtr-modal-display {
+ position: absolute;
+ top: 0;
+ left: 0;
+ bottom: 0;
+ right: 0;
+ width: 50%;
+ height: 50%;
+ overflow: auto;
+ margin: auto;
+ z-index: 102;
+ overflow: auto;
+ background-color: #f5f5f7;
+ border: 1px solid black;
+ border-radius: 0.5em;
+ box-shadow: 0 12px 30px rgba(0, 0, 0, 0.6);
+}
+div.dtr-modal div.dtr-modal-content {
+ position: relative;
+ padding: 1em;
+}
+div.dtr-modal div.dtr-modal-close {
+ position: absolute;
+ top: 6px;
+ right: 6px;
+ width: 22px;
+ height: 22px;
+ border: 1px solid #eaeaea;
+ background-color: #f9f9f9;
+ text-align: center;
+ border-radius: 3px;
+ cursor: pointer;
+ z-index: 12;
+}
+div.dtr-modal div.dtr-modal-close:hover {
+ background-color: #eaeaea;
+}
+div.dtr-modal div.dtr-modal-background {
+ position: fixed;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ z-index: 101;
+ background: rgba(0, 0, 0, 0.6);
+}
+
+@media screen and (max-width: 767px) {
+ div.dtr-modal div.dtr-modal-display {
+ width: 95%;
+ }
+}
+div.dtr-bs-modal table.table tr:first-child td {
+ border-top: none;
+}
+
+table.dataTable.table-bordered th.dtr-control.dtr-hidden + *,
+table.dataTable.table-bordered td.dtr-control.dtr-hidden + * {
+ border-left-width: 1px;
+}
diff --git a/public/assets/js/DataTables/Responsive-2.4.1/css/responsive.bootstrap5.min.css b/public/assets/js/DataTables/Responsive-2.4.1/css/responsive.bootstrap5.min.css
new file mode 100644
index 0000000..3ae108c
--- /dev/null
+++ b/public/assets/js/DataTables/Responsive-2.4.1/css/responsive.bootstrap5.min.css
@@ -0,0 +1 @@
+table.dataTable.dtr-inline.collapsed>tbody>tr>td.child,table.dataTable.dtr-inline.collapsed>tbody>tr>th.child,table.dataTable.dtr-inline.collapsed>tbody>tr>td.dataTables_empty{cursor:default !important}table.dataTable.dtr-inline.collapsed>tbody>tr>td.child:before,table.dataTable.dtr-inline.collapsed>tbody>tr>th.child:before,table.dataTable.dtr-inline.collapsed>tbody>tr>td.dataTables_empty:before{display:none !important}table.dataTable.dtr-inline.collapsed>tbody>tr>td.dtr-control,table.dataTable.dtr-inline.collapsed>tbody>tr>th.dtr-control{position:relative;padding-left:30px;cursor:pointer}table.dataTable.dtr-inline.collapsed>tbody>tr>td.dtr-control:before,table.dataTable.dtr-inline.collapsed>tbody>tr>th.dtr-control:before{top:50%;left:5px;height:1em;width:1em;margin-top:-9px;display:block;position:absolute;color:white;border:.15em solid white;border-radius:1em;box-shadow:0 0 .2em #444;box-sizing:content-box;text-align:center;text-indent:0 !important;font-family:"Courier New",Courier,monospace;line-height:1em;content:"+";background-color:#0d6efd}table.dataTable.dtr-inline.collapsed>tbody>tr.parent>td.dtr-control:before,table.dataTable.dtr-inline.collapsed>tbody>tr.parent>th.dtr-control:before{content:"-";background-color:#d33333}table.dataTable.dtr-inline.collapsed.compact>tbody>tr>td.dtr-control,table.dataTable.dtr-inline.collapsed.compact>tbody>tr>th.dtr-control{padding-left:27px}table.dataTable.dtr-inline.collapsed.compact>tbody>tr>td.dtr-control:before,table.dataTable.dtr-inline.collapsed.compact>tbody>tr>th.dtr-control:before{left:4px;height:14px;width:14px;border-radius:14px;line-height:14px;text-indent:3px}table.dataTable.dtr-column>tbody>tr>td.dtr-control,table.dataTable.dtr-column>tbody>tr>th.dtr-control,table.dataTable.dtr-column>tbody>tr>td.control,table.dataTable.dtr-column>tbody>tr>th.control{position:relative;cursor:pointer}table.dataTable.dtr-column>tbody>tr>td.dtr-control:before,table.dataTable.dtr-column>tbody>tr>th.dtr-control:before,table.dataTable.dtr-column>tbody>tr>td.control:before,table.dataTable.dtr-column>tbody>tr>th.control:before{top:50%;left:50%;height:.8em;width:.8em;margin-top:-0.5em;margin-left:-0.5em;display:block;position:absolute;color:white;border:.15em solid white;border-radius:1em;box-shadow:0 0 .2em #444;box-sizing:content-box;text-align:center;text-indent:0 !important;font-family:"Courier New",Courier,monospace;line-height:1em;content:"+";background-color:#0d6efd}table.dataTable.dtr-column>tbody>tr.parent td.dtr-control:before,table.dataTable.dtr-column>tbody>tr.parent th.dtr-control:before,table.dataTable.dtr-column>tbody>tr.parent td.control:before,table.dataTable.dtr-column>tbody>tr.parent th.control:before{content:"-";background-color:#d33333}table.dataTable>tbody>tr.child{padding:.5em 1em}table.dataTable>tbody>tr.child:hover{background:transparent !important}table.dataTable>tbody>tr.child ul.dtr-details{display:inline-block;list-style-type:none;margin:0;padding:0}table.dataTable>tbody>tr.child ul.dtr-details>li{border-bottom:1px solid #efefef;padding:.5em 0}table.dataTable>tbody>tr.child ul.dtr-details>li:first-child{padding-top:0}table.dataTable>tbody>tr.child ul.dtr-details>li:last-child{border-bottom:none}table.dataTable>tbody>tr.child span.dtr-title{display:inline-block;min-width:75px;font-weight:bold}div.dtr-modal{position:fixed;box-sizing:border-box;top:0;left:0;height:100%;width:100%;z-index:100;padding:10em 1em}div.dtr-modal div.dtr-modal-display{position:absolute;top:0;left:0;bottom:0;right:0;width:50%;height:50%;overflow:auto;margin:auto;z-index:102;overflow:auto;background-color:#f5f5f7;border:1px solid black;border-radius:.5em;box-shadow:0 12px 30px rgba(0, 0, 0, 0.6)}div.dtr-modal div.dtr-modal-content{position:relative;padding:1em}div.dtr-modal div.dtr-modal-close{position:absolute;top:6px;right:6px;width:22px;height:22px;border:1px solid #eaeaea;background-color:#f9f9f9;text-align:center;border-radius:3px;cursor:pointer;z-index:12}div.dtr-modal div.dtr-modal-close:hover{background-color:#eaeaea}div.dtr-modal div.dtr-modal-background{position:fixed;top:0;left:0;right:0;bottom:0;z-index:101;background:rgba(0, 0, 0, 0.6)}@media screen and (max-width: 767px){div.dtr-modal div.dtr-modal-display{width:95%}}div.dtr-bs-modal table.table tr:first-child td{border-top:none}table.dataTable.table-bordered th.dtr-control.dtr-hidden+*,table.dataTable.table-bordered td.dtr-control.dtr-hidden+*{border-left-width:1px}
diff --git a/public/assets/js/DataTables/Responsive-2.4.1/css/responsive.bulma.css b/public/assets/js/DataTables/Responsive-2.4.1/css/responsive.bulma.css
new file mode 100644
index 0000000..f302185
--- /dev/null
+++ b/public/assets/js/DataTables/Responsive-2.4.1/css/responsive.bulma.css
@@ -0,0 +1,191 @@
+table.dataTable.dtr-inline.collapsed > tbody > tr > td.child,
+table.dataTable.dtr-inline.collapsed > tbody > tr > th.child,
+table.dataTable.dtr-inline.collapsed > tbody > tr > td.dataTables_empty {
+ cursor: default !important;
+}
+table.dataTable.dtr-inline.collapsed > tbody > tr > td.child:before,
+table.dataTable.dtr-inline.collapsed > tbody > tr > th.child:before,
+table.dataTable.dtr-inline.collapsed > tbody > tr > td.dataTables_empty:before {
+ display: none !important;
+}
+table.dataTable.dtr-inline.collapsed > tbody > tr > td.dtr-control,
+table.dataTable.dtr-inline.collapsed > tbody > tr > th.dtr-control {
+ position: relative;
+ padding-left: 30px;
+ cursor: pointer;
+}
+table.dataTable.dtr-inline.collapsed > tbody > tr > td.dtr-control:before,
+table.dataTable.dtr-inline.collapsed > tbody > tr > th.dtr-control:before {
+ top: 50%;
+ left: 5px;
+ height: 1em;
+ width: 1em;
+ margin-top: -9px;
+ display: block;
+ position: absolute;
+ color: white;
+ border: 0.15em solid white;
+ border-radius: 1em;
+ box-shadow: 0 0 0.2em #444;
+ box-sizing: content-box;
+ text-align: center;
+ text-indent: 0 !important;
+ font-family: "Courier New", Courier, monospace;
+ line-height: 1em;
+ content: "+";
+ background-color: #00D1B2;
+}
+table.dataTable.dtr-inline.collapsed > tbody > tr.parent > td.dtr-control:before,
+table.dataTable.dtr-inline.collapsed > tbody > tr.parent > th.dtr-control:before {
+ content: "-";
+ background-color: #d33333;
+}
+table.dataTable.dtr-inline.collapsed.compact > tbody > tr > td.dtr-control,
+table.dataTable.dtr-inline.collapsed.compact > tbody > tr > th.dtr-control {
+ padding-left: 27px;
+}
+table.dataTable.dtr-inline.collapsed.compact > tbody > tr > td.dtr-control:before,
+table.dataTable.dtr-inline.collapsed.compact > tbody > tr > th.dtr-control:before {
+ left: 4px;
+ height: 14px;
+ width: 14px;
+ border-radius: 14px;
+ line-height: 14px;
+ text-indent: 3px;
+}
+table.dataTable.dtr-column > tbody > tr > td.dtr-control,
+table.dataTable.dtr-column > tbody > tr > th.dtr-control,
+table.dataTable.dtr-column > tbody > tr > td.control,
+table.dataTable.dtr-column > tbody > tr > th.control {
+ position: relative;
+ cursor: pointer;
+}
+table.dataTable.dtr-column > tbody > tr > td.dtr-control:before,
+table.dataTable.dtr-column > tbody > tr > th.dtr-control:before,
+table.dataTable.dtr-column > tbody > tr > td.control:before,
+table.dataTable.dtr-column > tbody > tr > th.control:before {
+ top: 50%;
+ left: 50%;
+ height: 0.8em;
+ width: 0.8em;
+ margin-top: -0.5em;
+ margin-left: -0.5em;
+ display: block;
+ position: absolute;
+ color: white;
+ border: 0.15em solid white;
+ border-radius: 1em;
+ box-shadow: 0 0 0.2em #444;
+ box-sizing: content-box;
+ text-align: center;
+ text-indent: 0 !important;
+ font-family: "Courier New", Courier, monospace;
+ line-height: 1em;
+ content: "+";
+ background-color: #00D1B2;
+}
+table.dataTable.dtr-column > tbody > tr.parent td.dtr-control:before,
+table.dataTable.dtr-column > tbody > tr.parent th.dtr-control:before,
+table.dataTable.dtr-column > tbody > tr.parent td.control:before,
+table.dataTable.dtr-column > tbody > tr.parent th.control:before {
+ content: "-";
+ background-color: #d33333;
+}
+table.dataTable > tbody > tr.child {
+ padding: 0.5em 1em;
+}
+table.dataTable > tbody > tr.child:hover {
+ background: transparent !important;
+}
+table.dataTable > tbody > tr.child ul.dtr-details {
+ display: inline-block;
+ list-style-type: none;
+ margin: 0;
+ padding: 0;
+}
+table.dataTable > tbody > tr.child ul.dtr-details > li {
+ border-bottom: 1px solid #efefef;
+ padding: 0.5em 0;
+}
+table.dataTable > tbody > tr.child ul.dtr-details > li:first-child {
+ padding-top: 0;
+}
+table.dataTable > tbody > tr.child ul.dtr-details > li:last-child {
+ border-bottom: none;
+}
+table.dataTable > tbody > tr.child span.dtr-title {
+ display: inline-block;
+ min-width: 75px;
+ font-weight: bold;
+}
+div.dtr-modal {
+ position: fixed;
+ box-sizing: border-box;
+ top: 0;
+ left: 0;
+ height: 100%;
+ width: 100%;
+ z-index: 100;
+ padding: 10em 1em;
+}
+div.dtr-modal div.dtr-modal-display {
+ position: absolute;
+ top: 0;
+ left: 0;
+ bottom: 0;
+ right: 0;
+ width: 50%;
+ height: 50%;
+ overflow: auto;
+ margin: auto;
+ z-index: 102;
+ overflow: auto;
+ background-color: #f5f5f7;
+ border: 1px solid black;
+ border-radius: 0.5em;
+ box-shadow: 0 12px 30px rgba(0, 0, 0, 0.6);
+}
+div.dtr-modal div.dtr-modal-content {
+ position: relative;
+ padding: 1em;
+}
+div.dtr-modal div.dtr-modal-close {
+ position: absolute;
+ top: 6px;
+ right: 6px;
+ width: 22px;
+ height: 22px;
+ border: 1px solid #eaeaea;
+ background-color: #f9f9f9;
+ text-align: center;
+ border-radius: 3px;
+ cursor: pointer;
+ z-index: 12;
+}
+div.dtr-modal div.dtr-modal-close:hover {
+ background-color: #eaeaea;
+}
+div.dtr-modal div.dtr-modal-background {
+ position: fixed;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ z-index: 101;
+ background: rgba(0, 0, 0, 0.6);
+}
+
+@media screen and (max-width: 767px) {
+ div.dtr-modal div.dtr-modal-display {
+ width: 95%;
+ }
+}
+table.dataTable > tbody > tr.child ul {
+ font-size: 1em;
+}
+
+div.modal-content {
+ padding: 20px;
+ background: white;
+ border-radius: 5px;
+}
diff --git a/public/assets/js/DataTables/Responsive-2.4.1/css/responsive.bulma.min.css b/public/assets/js/DataTables/Responsive-2.4.1/css/responsive.bulma.min.css
new file mode 100644
index 0000000..ead3ca6
--- /dev/null
+++ b/public/assets/js/DataTables/Responsive-2.4.1/css/responsive.bulma.min.css
@@ -0,0 +1 @@
+table.dataTable.dtr-inline.collapsed>tbody>tr>td.child,table.dataTable.dtr-inline.collapsed>tbody>tr>th.child,table.dataTable.dtr-inline.collapsed>tbody>tr>td.dataTables_empty{cursor:default !important}table.dataTable.dtr-inline.collapsed>tbody>tr>td.child:before,table.dataTable.dtr-inline.collapsed>tbody>tr>th.child:before,table.dataTable.dtr-inline.collapsed>tbody>tr>td.dataTables_empty:before{display:none !important}table.dataTable.dtr-inline.collapsed>tbody>tr>td.dtr-control,table.dataTable.dtr-inline.collapsed>tbody>tr>th.dtr-control{position:relative;padding-left:30px;cursor:pointer}table.dataTable.dtr-inline.collapsed>tbody>tr>td.dtr-control:before,table.dataTable.dtr-inline.collapsed>tbody>tr>th.dtr-control:before{top:50%;left:5px;height:1em;width:1em;margin-top:-9px;display:block;position:absolute;color:white;border:.15em solid white;border-radius:1em;box-shadow:0 0 .2em #444;box-sizing:content-box;text-align:center;text-indent:0 !important;font-family:"Courier New",Courier,monospace;line-height:1em;content:"+";background-color:#00d1b2}table.dataTable.dtr-inline.collapsed>tbody>tr.parent>td.dtr-control:before,table.dataTable.dtr-inline.collapsed>tbody>tr.parent>th.dtr-control:before{content:"-";background-color:#d33333}table.dataTable.dtr-inline.collapsed.compact>tbody>tr>td.dtr-control,table.dataTable.dtr-inline.collapsed.compact>tbody>tr>th.dtr-control{padding-left:27px}table.dataTable.dtr-inline.collapsed.compact>tbody>tr>td.dtr-control:before,table.dataTable.dtr-inline.collapsed.compact>tbody>tr>th.dtr-control:before{left:4px;height:14px;width:14px;border-radius:14px;line-height:14px;text-indent:3px}table.dataTable.dtr-column>tbody>tr>td.dtr-control,table.dataTable.dtr-column>tbody>tr>th.dtr-control,table.dataTable.dtr-column>tbody>tr>td.control,table.dataTable.dtr-column>tbody>tr>th.control{position:relative;cursor:pointer}table.dataTable.dtr-column>tbody>tr>td.dtr-control:before,table.dataTable.dtr-column>tbody>tr>th.dtr-control:before,table.dataTable.dtr-column>tbody>tr>td.control:before,table.dataTable.dtr-column>tbody>tr>th.control:before{top:50%;left:50%;height:.8em;width:.8em;margin-top:-0.5em;margin-left:-0.5em;display:block;position:absolute;color:white;border:.15em solid white;border-radius:1em;box-shadow:0 0 .2em #444;box-sizing:content-box;text-align:center;text-indent:0 !important;font-family:"Courier New",Courier,monospace;line-height:1em;content:"+";background-color:#00d1b2}table.dataTable.dtr-column>tbody>tr.parent td.dtr-control:before,table.dataTable.dtr-column>tbody>tr.parent th.dtr-control:before,table.dataTable.dtr-column>tbody>tr.parent td.control:before,table.dataTable.dtr-column>tbody>tr.parent th.control:before{content:"-";background-color:#d33333}table.dataTable>tbody>tr.child{padding:.5em 1em}table.dataTable>tbody>tr.child:hover{background:transparent !important}table.dataTable>tbody>tr.child ul.dtr-details{display:inline-block;list-style-type:none;margin:0;padding:0}table.dataTable>tbody>tr.child ul.dtr-details>li{border-bottom:1px solid #efefef;padding:.5em 0}table.dataTable>tbody>tr.child ul.dtr-details>li:first-child{padding-top:0}table.dataTable>tbody>tr.child ul.dtr-details>li:last-child{border-bottom:none}table.dataTable>tbody>tr.child span.dtr-title{display:inline-block;min-width:75px;font-weight:bold}div.dtr-modal{position:fixed;box-sizing:border-box;top:0;left:0;height:100%;width:100%;z-index:100;padding:10em 1em}div.dtr-modal div.dtr-modal-display{position:absolute;top:0;left:0;bottom:0;right:0;width:50%;height:50%;overflow:auto;margin:auto;z-index:102;overflow:auto;background-color:#f5f5f7;border:1px solid black;border-radius:.5em;box-shadow:0 12px 30px rgba(0, 0, 0, 0.6)}div.dtr-modal div.dtr-modal-content{position:relative;padding:1em}div.dtr-modal div.dtr-modal-close{position:absolute;top:6px;right:6px;width:22px;height:22px;border:1px solid #eaeaea;background-color:#f9f9f9;text-align:center;border-radius:3px;cursor:pointer;z-index:12}div.dtr-modal div.dtr-modal-close:hover{background-color:#eaeaea}div.dtr-modal div.dtr-modal-background{position:fixed;top:0;left:0;right:0;bottom:0;z-index:101;background:rgba(0, 0, 0, 0.6)}@media screen and (max-width: 767px){div.dtr-modal div.dtr-modal-display{width:95%}}table.dataTable>tbody>tr.child ul{font-size:1em}div.modal-content{padding:20px;background:white;border-radius:5px}
diff --git a/public/assets/js/DataTables/Responsive-2.4.1/css/responsive.dataTables.css b/public/assets/js/DataTables/Responsive-2.4.1/css/responsive.dataTables.css
new file mode 100644
index 0000000..f674df2
--- /dev/null
+++ b/public/assets/js/DataTables/Responsive-2.4.1/css/responsive.dataTables.css
@@ -0,0 +1,182 @@
+table.dataTable.dtr-inline.collapsed > tbody > tr > td.child,
+table.dataTable.dtr-inline.collapsed > tbody > tr > th.child,
+table.dataTable.dtr-inline.collapsed > tbody > tr > td.dataTables_empty {
+ cursor: default !important;
+}
+table.dataTable.dtr-inline.collapsed > tbody > tr > td.child:before,
+table.dataTable.dtr-inline.collapsed > tbody > tr > th.child:before,
+table.dataTable.dtr-inline.collapsed > tbody > tr > td.dataTables_empty:before {
+ display: none !important;
+}
+table.dataTable.dtr-inline.collapsed > tbody > tr > td.dtr-control,
+table.dataTable.dtr-inline.collapsed > tbody > tr > th.dtr-control {
+ position: relative;
+ padding-left: 30px;
+ cursor: pointer;
+}
+table.dataTable.dtr-inline.collapsed > tbody > tr > td.dtr-control:before,
+table.dataTable.dtr-inline.collapsed > tbody > tr > th.dtr-control:before {
+ top: 50%;
+ left: 5px;
+ height: 1em;
+ width: 1em;
+ margin-top: -9px;
+ display: block;
+ position: absolute;
+ color: white;
+ border: 0.15em solid white;
+ border-radius: 1em;
+ box-shadow: 0 0 0.2em #444;
+ box-sizing: content-box;
+ text-align: center;
+ text-indent: 0 !important;
+ font-family: "Courier New", Courier, monospace;
+ line-height: 1em;
+ content: "+";
+ background-color: #31b131;
+}
+table.dataTable.dtr-inline.collapsed > tbody > tr.parent > td.dtr-control:before,
+table.dataTable.dtr-inline.collapsed > tbody > tr.parent > th.dtr-control:before {
+ content: "-";
+ background-color: #d33333;
+}
+table.dataTable.dtr-inline.collapsed.compact > tbody > tr > td.dtr-control,
+table.dataTable.dtr-inline.collapsed.compact > tbody > tr > th.dtr-control {
+ padding-left: 27px;
+}
+table.dataTable.dtr-inline.collapsed.compact > tbody > tr > td.dtr-control:before,
+table.dataTable.dtr-inline.collapsed.compact > tbody > tr > th.dtr-control:before {
+ left: 4px;
+ height: 14px;
+ width: 14px;
+ border-radius: 14px;
+ line-height: 14px;
+ text-indent: 3px;
+}
+table.dataTable.dtr-column > tbody > tr > td.dtr-control,
+table.dataTable.dtr-column > tbody > tr > th.dtr-control,
+table.dataTable.dtr-column > tbody > tr > td.control,
+table.dataTable.dtr-column > tbody > tr > th.control {
+ position: relative;
+ cursor: pointer;
+}
+table.dataTable.dtr-column > tbody > tr > td.dtr-control:before,
+table.dataTable.dtr-column > tbody > tr > th.dtr-control:before,
+table.dataTable.dtr-column > tbody > tr > td.control:before,
+table.dataTable.dtr-column > tbody > tr > th.control:before {
+ top: 50%;
+ left: 50%;
+ height: 0.8em;
+ width: 0.8em;
+ margin-top: -0.5em;
+ margin-left: -0.5em;
+ display: block;
+ position: absolute;
+ color: white;
+ border: 0.15em solid white;
+ border-radius: 1em;
+ box-shadow: 0 0 0.2em #444;
+ box-sizing: content-box;
+ text-align: center;
+ text-indent: 0 !important;
+ font-family: "Courier New", Courier, monospace;
+ line-height: 1em;
+ content: "+";
+ background-color: #31b131;
+}
+table.dataTable.dtr-column > tbody > tr.parent td.dtr-control:before,
+table.dataTable.dtr-column > tbody > tr.parent th.dtr-control:before,
+table.dataTable.dtr-column > tbody > tr.parent td.control:before,
+table.dataTable.dtr-column > tbody > tr.parent th.control:before {
+ content: "-";
+ background-color: #d33333;
+}
+table.dataTable > tbody > tr.child {
+ padding: 0.5em 1em;
+}
+table.dataTable > tbody > tr.child:hover {
+ background: transparent !important;
+}
+table.dataTable > tbody > tr.child ul.dtr-details {
+ display: inline-block;
+ list-style-type: none;
+ margin: 0;
+ padding: 0;
+}
+table.dataTable > tbody > tr.child ul.dtr-details > li {
+ border-bottom: 1px solid #efefef;
+ padding: 0.5em 0;
+}
+table.dataTable > tbody > tr.child ul.dtr-details > li:first-child {
+ padding-top: 0;
+}
+table.dataTable > tbody > tr.child ul.dtr-details > li:last-child {
+ border-bottom: none;
+}
+table.dataTable > tbody > tr.child span.dtr-title {
+ display: inline-block;
+ min-width: 75px;
+ font-weight: bold;
+}
+div.dtr-modal {
+ position: fixed;
+ box-sizing: border-box;
+ top: 0;
+ left: 0;
+ height: 100%;
+ width: 100%;
+ z-index: 100;
+ padding: 10em 1em;
+}
+div.dtr-modal div.dtr-modal-display {
+ position: absolute;
+ top: 0;
+ left: 0;
+ bottom: 0;
+ right: 0;
+ width: 50%;
+ height: 50%;
+ overflow: auto;
+ margin: auto;
+ z-index: 102;
+ overflow: auto;
+ background-color: #f5f5f7;
+ border: 1px solid black;
+ border-radius: 0.5em;
+ box-shadow: 0 12px 30px rgba(0, 0, 0, 0.6);
+}
+div.dtr-modal div.dtr-modal-content {
+ position: relative;
+ padding: 1em;
+}
+div.dtr-modal div.dtr-modal-close {
+ position: absolute;
+ top: 6px;
+ right: 6px;
+ width: 22px;
+ height: 22px;
+ border: 1px solid #eaeaea;
+ background-color: #f9f9f9;
+ text-align: center;
+ border-radius: 3px;
+ cursor: pointer;
+ z-index: 12;
+}
+div.dtr-modal div.dtr-modal-close:hover {
+ background-color: #eaeaea;
+}
+div.dtr-modal div.dtr-modal-background {
+ position: fixed;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ z-index: 101;
+ background: rgba(0, 0, 0, 0.6);
+}
+
+@media screen and (max-width: 767px) {
+ div.dtr-modal div.dtr-modal-display {
+ width: 95%;
+ }
+}
diff --git a/public/assets/js/DataTables/Responsive-2.4.1/css/responsive.dataTables.min.css b/public/assets/js/DataTables/Responsive-2.4.1/css/responsive.dataTables.min.css
new file mode 100644
index 0000000..8e6448a
--- /dev/null
+++ b/public/assets/js/DataTables/Responsive-2.4.1/css/responsive.dataTables.min.css
@@ -0,0 +1 @@
+table.dataTable.dtr-inline.collapsed>tbody>tr>td.child,table.dataTable.dtr-inline.collapsed>tbody>tr>th.child,table.dataTable.dtr-inline.collapsed>tbody>tr>td.dataTables_empty{cursor:default !important}table.dataTable.dtr-inline.collapsed>tbody>tr>td.child:before,table.dataTable.dtr-inline.collapsed>tbody>tr>th.child:before,table.dataTable.dtr-inline.collapsed>tbody>tr>td.dataTables_empty:before{display:none !important}table.dataTable.dtr-inline.collapsed>tbody>tr>td.dtr-control,table.dataTable.dtr-inline.collapsed>tbody>tr>th.dtr-control{position:relative;padding-left:30px;cursor:pointer}table.dataTable.dtr-inline.collapsed>tbody>tr>td.dtr-control:before,table.dataTable.dtr-inline.collapsed>tbody>tr>th.dtr-control:before{top:50%;left:5px;height:1em;width:1em;margin-top:-9px;display:block;position:absolute;color:white;border:.15em solid white;border-radius:1em;box-shadow:0 0 .2em #444;box-sizing:content-box;text-align:center;text-indent:0 !important;font-family:"Courier New",Courier,monospace;line-height:1em;content:"+";background-color:#31b131}table.dataTable.dtr-inline.collapsed>tbody>tr.parent>td.dtr-control:before,table.dataTable.dtr-inline.collapsed>tbody>tr.parent>th.dtr-control:before{content:"-";background-color:#d33333}table.dataTable.dtr-inline.collapsed.compact>tbody>tr>td.dtr-control,table.dataTable.dtr-inline.collapsed.compact>tbody>tr>th.dtr-control{padding-left:27px}table.dataTable.dtr-inline.collapsed.compact>tbody>tr>td.dtr-control:before,table.dataTable.dtr-inline.collapsed.compact>tbody>tr>th.dtr-control:before{left:4px;height:14px;width:14px;border-radius:14px;line-height:14px;text-indent:3px}table.dataTable.dtr-column>tbody>tr>td.dtr-control,table.dataTable.dtr-column>tbody>tr>th.dtr-control,table.dataTable.dtr-column>tbody>tr>td.control,table.dataTable.dtr-column>tbody>tr>th.control{position:relative;cursor:pointer}table.dataTable.dtr-column>tbody>tr>td.dtr-control:before,table.dataTable.dtr-column>tbody>tr>th.dtr-control:before,table.dataTable.dtr-column>tbody>tr>td.control:before,table.dataTable.dtr-column>tbody>tr>th.control:before{top:50%;left:50%;height:.8em;width:.8em;margin-top:-0.5em;margin-left:-0.5em;display:block;position:absolute;color:white;border:.15em solid white;border-radius:1em;box-shadow:0 0 .2em #444;box-sizing:content-box;text-align:center;text-indent:0 !important;font-family:"Courier New",Courier,monospace;line-height:1em;content:"+";background-color:#31b131}table.dataTable.dtr-column>tbody>tr.parent td.dtr-control:before,table.dataTable.dtr-column>tbody>tr.parent th.dtr-control:before,table.dataTable.dtr-column>tbody>tr.parent td.control:before,table.dataTable.dtr-column>tbody>tr.parent th.control:before{content:"-";background-color:#d33333}table.dataTable>tbody>tr.child{padding:.5em 1em}table.dataTable>tbody>tr.child:hover{background:transparent !important}table.dataTable>tbody>tr.child ul.dtr-details{display:inline-block;list-style-type:none;margin:0;padding:0}table.dataTable>tbody>tr.child ul.dtr-details>li{border-bottom:1px solid #efefef;padding:.5em 0}table.dataTable>tbody>tr.child ul.dtr-details>li:first-child{padding-top:0}table.dataTable>tbody>tr.child ul.dtr-details>li:last-child{border-bottom:none}table.dataTable>tbody>tr.child span.dtr-title{display:inline-block;min-width:75px;font-weight:bold}div.dtr-modal{position:fixed;box-sizing:border-box;top:0;left:0;height:100%;width:100%;z-index:100;padding:10em 1em}div.dtr-modal div.dtr-modal-display{position:absolute;top:0;left:0;bottom:0;right:0;width:50%;height:50%;overflow:auto;margin:auto;z-index:102;overflow:auto;background-color:#f5f5f7;border:1px solid black;border-radius:.5em;box-shadow:0 12px 30px rgba(0, 0, 0, 0.6)}div.dtr-modal div.dtr-modal-content{position:relative;padding:1em}div.dtr-modal div.dtr-modal-close{position:absolute;top:6px;right:6px;width:22px;height:22px;border:1px solid #eaeaea;background-color:#f9f9f9;text-align:center;border-radius:3px;cursor:pointer;z-index:12}div.dtr-modal div.dtr-modal-close:hover{background-color:#eaeaea}div.dtr-modal div.dtr-modal-background{position:fixed;top:0;left:0;right:0;bottom:0;z-index:101;background:rgba(0, 0, 0, 0.6)}@media screen and (max-width: 767px){div.dtr-modal div.dtr-modal-display{width:95%}}
diff --git a/public/assets/js/DataTables/Responsive-2.4.1/css/responsive.foundation.css b/public/assets/js/DataTables/Responsive-2.4.1/css/responsive.foundation.css
new file mode 100644
index 0000000..a91d28a
--- /dev/null
+++ b/public/assets/js/DataTables/Responsive-2.4.1/css/responsive.foundation.css
@@ -0,0 +1,185 @@
+table.dataTable.dtr-inline.collapsed > tbody > tr > td.child,
+table.dataTable.dtr-inline.collapsed > tbody > tr > th.child,
+table.dataTable.dtr-inline.collapsed > tbody > tr > td.dataTables_empty {
+ cursor: default !important;
+}
+table.dataTable.dtr-inline.collapsed > tbody > tr > td.child:before,
+table.dataTable.dtr-inline.collapsed > tbody > tr > th.child:before,
+table.dataTable.dtr-inline.collapsed > tbody > tr > td.dataTables_empty:before {
+ display: none !important;
+}
+table.dataTable.dtr-inline.collapsed > tbody > tr > td.dtr-control,
+table.dataTable.dtr-inline.collapsed > tbody > tr > th.dtr-control {
+ position: relative;
+ padding-left: 30px;
+ cursor: pointer;
+}
+table.dataTable.dtr-inline.collapsed > tbody > tr > td.dtr-control:before,
+table.dataTable.dtr-inline.collapsed > tbody > tr > th.dtr-control:before {
+ top: 50%;
+ left: 5px;
+ height: 1em;
+ width: 1em;
+ margin-top: -9px;
+ display: block;
+ position: absolute;
+ color: white;
+ border: 0.15em solid white;
+ border-radius: 1em;
+ box-shadow: 0 0 0.2em #444;
+ box-sizing: content-box;
+ text-align: center;
+ text-indent: 0 !important;
+ font-family: "Courier New", Courier, monospace;
+ line-height: 1em;
+ content: "+";
+ background-color: #008CBA;
+}
+table.dataTable.dtr-inline.collapsed > tbody > tr.parent > td.dtr-control:before,
+table.dataTable.dtr-inline.collapsed > tbody > tr.parent > th.dtr-control:before {
+ content: "-";
+ background-color: #d33333;
+}
+table.dataTable.dtr-inline.collapsed.compact > tbody > tr > td.dtr-control,
+table.dataTable.dtr-inline.collapsed.compact > tbody > tr > th.dtr-control {
+ padding-left: 27px;
+}
+table.dataTable.dtr-inline.collapsed.compact > tbody > tr > td.dtr-control:before,
+table.dataTable.dtr-inline.collapsed.compact > tbody > tr > th.dtr-control:before {
+ left: 4px;
+ height: 14px;
+ width: 14px;
+ border-radius: 14px;
+ line-height: 14px;
+ text-indent: 3px;
+}
+table.dataTable.dtr-column > tbody > tr > td.dtr-control,
+table.dataTable.dtr-column > tbody > tr > th.dtr-control,
+table.dataTable.dtr-column > tbody > tr > td.control,
+table.dataTable.dtr-column > tbody > tr > th.control {
+ position: relative;
+ cursor: pointer;
+}
+table.dataTable.dtr-column > tbody > tr > td.dtr-control:before,
+table.dataTable.dtr-column > tbody > tr > th.dtr-control:before,
+table.dataTable.dtr-column > tbody > tr > td.control:before,
+table.dataTable.dtr-column > tbody > tr > th.control:before {
+ top: 50%;
+ left: 50%;
+ height: 0.8em;
+ width: 0.8em;
+ margin-top: -0.5em;
+ margin-left: -0.5em;
+ display: block;
+ position: absolute;
+ color: white;
+ border: 0.15em solid white;
+ border-radius: 1em;
+ box-shadow: 0 0 0.2em #444;
+ box-sizing: content-box;
+ text-align: center;
+ text-indent: 0 !important;
+ font-family: "Courier New", Courier, monospace;
+ line-height: 1em;
+ content: "+";
+ background-color: #008CBA;
+}
+table.dataTable.dtr-column > tbody > tr.parent td.dtr-control:before,
+table.dataTable.dtr-column > tbody > tr.parent th.dtr-control:before,
+table.dataTable.dtr-column > tbody > tr.parent td.control:before,
+table.dataTable.dtr-column > tbody > tr.parent th.control:before {
+ content: "-";
+ background-color: #d33333;
+}
+table.dataTable > tbody > tr.child {
+ padding: 0.5em 1em;
+}
+table.dataTable > tbody > tr.child:hover {
+ background: transparent !important;
+}
+table.dataTable > tbody > tr.child ul.dtr-details {
+ display: inline-block;
+ list-style-type: none;
+ margin: 0;
+ padding: 0;
+}
+table.dataTable > tbody > tr.child ul.dtr-details > li {
+ border-bottom: 1px solid #efefef;
+ padding: 0.5em 0;
+}
+table.dataTable > tbody > tr.child ul.dtr-details > li:first-child {
+ padding-top: 0;
+}
+table.dataTable > tbody > tr.child ul.dtr-details > li:last-child {
+ border-bottom: none;
+}
+table.dataTable > tbody > tr.child span.dtr-title {
+ display: inline-block;
+ min-width: 75px;
+ font-weight: bold;
+}
+div.dtr-modal {
+ position: fixed;
+ box-sizing: border-box;
+ top: 0;
+ left: 0;
+ height: 100%;
+ width: 100%;
+ z-index: 100;
+ padding: 10em 1em;
+}
+div.dtr-modal div.dtr-modal-display {
+ position: absolute;
+ top: 0;
+ left: 0;
+ bottom: 0;
+ right: 0;
+ width: 50%;
+ height: 50%;
+ overflow: auto;
+ margin: auto;
+ z-index: 102;
+ overflow: auto;
+ background-color: #f5f5f7;
+ border: 1px solid black;
+ border-radius: 0.5em;
+ box-shadow: 0 12px 30px rgba(0, 0, 0, 0.6);
+}
+div.dtr-modal div.dtr-modal-content {
+ position: relative;
+ padding: 1em;
+}
+div.dtr-modal div.dtr-modal-close {
+ position: absolute;
+ top: 6px;
+ right: 6px;
+ width: 22px;
+ height: 22px;
+ border: 1px solid #eaeaea;
+ background-color: #f9f9f9;
+ text-align: center;
+ border-radius: 3px;
+ cursor: pointer;
+ z-index: 12;
+}
+div.dtr-modal div.dtr-modal-close:hover {
+ background-color: #eaeaea;
+}
+div.dtr-modal div.dtr-modal-background {
+ position: fixed;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ z-index: 101;
+ background: rgba(0, 0, 0, 0.6);
+}
+
+@media screen and (max-width: 767px) {
+ div.dtr-modal div.dtr-modal-display {
+ width: 95%;
+ }
+}
+table.dataTable > tbody > tr.child ul {
+ font-size: 1em;
+}
diff --git a/public/assets/js/DataTables/Responsive-2.4.1/css/responsive.foundation.min.css b/public/assets/js/DataTables/Responsive-2.4.1/css/responsive.foundation.min.css
new file mode 100644
index 0000000..eb248f9
--- /dev/null
+++ b/public/assets/js/DataTables/Responsive-2.4.1/css/responsive.foundation.min.css
@@ -0,0 +1 @@
+table.dataTable.dtr-inline.collapsed>tbody>tr>td.child,table.dataTable.dtr-inline.collapsed>tbody>tr>th.child,table.dataTable.dtr-inline.collapsed>tbody>tr>td.dataTables_empty{cursor:default !important}table.dataTable.dtr-inline.collapsed>tbody>tr>td.child:before,table.dataTable.dtr-inline.collapsed>tbody>tr>th.child:before,table.dataTable.dtr-inline.collapsed>tbody>tr>td.dataTables_empty:before{display:none !important}table.dataTable.dtr-inline.collapsed>tbody>tr>td.dtr-control,table.dataTable.dtr-inline.collapsed>tbody>tr>th.dtr-control{position:relative;padding-left:30px;cursor:pointer}table.dataTable.dtr-inline.collapsed>tbody>tr>td.dtr-control:before,table.dataTable.dtr-inline.collapsed>tbody>tr>th.dtr-control:before{top:50%;left:5px;height:1em;width:1em;margin-top:-9px;display:block;position:absolute;color:white;border:.15em solid white;border-radius:1em;box-shadow:0 0 .2em #444;box-sizing:content-box;text-align:center;text-indent:0 !important;font-family:"Courier New",Courier,monospace;line-height:1em;content:"+";background-color:#008cba}table.dataTable.dtr-inline.collapsed>tbody>tr.parent>td.dtr-control:before,table.dataTable.dtr-inline.collapsed>tbody>tr.parent>th.dtr-control:before{content:"-";background-color:#d33333}table.dataTable.dtr-inline.collapsed.compact>tbody>tr>td.dtr-control,table.dataTable.dtr-inline.collapsed.compact>tbody>tr>th.dtr-control{padding-left:27px}table.dataTable.dtr-inline.collapsed.compact>tbody>tr>td.dtr-control:before,table.dataTable.dtr-inline.collapsed.compact>tbody>tr>th.dtr-control:before{left:4px;height:14px;width:14px;border-radius:14px;line-height:14px;text-indent:3px}table.dataTable.dtr-column>tbody>tr>td.dtr-control,table.dataTable.dtr-column>tbody>tr>th.dtr-control,table.dataTable.dtr-column>tbody>tr>td.control,table.dataTable.dtr-column>tbody>tr>th.control{position:relative;cursor:pointer}table.dataTable.dtr-column>tbody>tr>td.dtr-control:before,table.dataTable.dtr-column>tbody>tr>th.dtr-control:before,table.dataTable.dtr-column>tbody>tr>td.control:before,table.dataTable.dtr-column>tbody>tr>th.control:before{top:50%;left:50%;height:.8em;width:.8em;margin-top:-0.5em;margin-left:-0.5em;display:block;position:absolute;color:white;border:.15em solid white;border-radius:1em;box-shadow:0 0 .2em #444;box-sizing:content-box;text-align:center;text-indent:0 !important;font-family:"Courier New",Courier,monospace;line-height:1em;content:"+";background-color:#008cba}table.dataTable.dtr-column>tbody>tr.parent td.dtr-control:before,table.dataTable.dtr-column>tbody>tr.parent th.dtr-control:before,table.dataTable.dtr-column>tbody>tr.parent td.control:before,table.dataTable.dtr-column>tbody>tr.parent th.control:before{content:"-";background-color:#d33333}table.dataTable>tbody>tr.child{padding:.5em 1em}table.dataTable>tbody>tr.child:hover{background:transparent !important}table.dataTable>tbody>tr.child ul.dtr-details{display:inline-block;list-style-type:none;margin:0;padding:0}table.dataTable>tbody>tr.child ul.dtr-details>li{border-bottom:1px solid #efefef;padding:.5em 0}table.dataTable>tbody>tr.child ul.dtr-details>li:first-child{padding-top:0}table.dataTable>tbody>tr.child ul.dtr-details>li:last-child{border-bottom:none}table.dataTable>tbody>tr.child span.dtr-title{display:inline-block;min-width:75px;font-weight:bold}div.dtr-modal{position:fixed;box-sizing:border-box;top:0;left:0;height:100%;width:100%;z-index:100;padding:10em 1em}div.dtr-modal div.dtr-modal-display{position:absolute;top:0;left:0;bottom:0;right:0;width:50%;height:50%;overflow:auto;margin:auto;z-index:102;overflow:auto;background-color:#f5f5f7;border:1px solid black;border-radius:.5em;box-shadow:0 12px 30px rgba(0, 0, 0, 0.6)}div.dtr-modal div.dtr-modal-content{position:relative;padding:1em}div.dtr-modal div.dtr-modal-close{position:absolute;top:6px;right:6px;width:22px;height:22px;border:1px solid #eaeaea;background-color:#f9f9f9;text-align:center;border-radius:3px;cursor:pointer;z-index:12}div.dtr-modal div.dtr-modal-close:hover{background-color:#eaeaea}div.dtr-modal div.dtr-modal-background{position:fixed;top:0;left:0;right:0;bottom:0;z-index:101;background:rgba(0, 0, 0, 0.6)}@media screen and (max-width: 767px){div.dtr-modal div.dtr-modal-display{width:95%}}table.dataTable>tbody>tr.child ul{font-size:1em}
diff --git a/public/assets/js/DataTables/Responsive-2.4.1/css/responsive.jqueryui.css b/public/assets/js/DataTables/Responsive-2.4.1/css/responsive.jqueryui.css
new file mode 100644
index 0000000..f674df2
--- /dev/null
+++ b/public/assets/js/DataTables/Responsive-2.4.1/css/responsive.jqueryui.css
@@ -0,0 +1,182 @@
+table.dataTable.dtr-inline.collapsed > tbody > tr > td.child,
+table.dataTable.dtr-inline.collapsed > tbody > tr > th.child,
+table.dataTable.dtr-inline.collapsed > tbody > tr > td.dataTables_empty {
+ cursor: default !important;
+}
+table.dataTable.dtr-inline.collapsed > tbody > tr > td.child:before,
+table.dataTable.dtr-inline.collapsed > tbody > tr > th.child:before,
+table.dataTable.dtr-inline.collapsed > tbody > tr > td.dataTables_empty:before {
+ display: none !important;
+}
+table.dataTable.dtr-inline.collapsed > tbody > tr > td.dtr-control,
+table.dataTable.dtr-inline.collapsed > tbody > tr > th.dtr-control {
+ position: relative;
+ padding-left: 30px;
+ cursor: pointer;
+}
+table.dataTable.dtr-inline.collapsed > tbody > tr > td.dtr-control:before,
+table.dataTable.dtr-inline.collapsed > tbody > tr > th.dtr-control:before {
+ top: 50%;
+ left: 5px;
+ height: 1em;
+ width: 1em;
+ margin-top: -9px;
+ display: block;
+ position: absolute;
+ color: white;
+ border: 0.15em solid white;
+ border-radius: 1em;
+ box-shadow: 0 0 0.2em #444;
+ box-sizing: content-box;
+ text-align: center;
+ text-indent: 0 !important;
+ font-family: "Courier New", Courier, monospace;
+ line-height: 1em;
+ content: "+";
+ background-color: #31b131;
+}
+table.dataTable.dtr-inline.collapsed > tbody > tr.parent > td.dtr-control:before,
+table.dataTable.dtr-inline.collapsed > tbody > tr.parent > th.dtr-control:before {
+ content: "-";
+ background-color: #d33333;
+}
+table.dataTable.dtr-inline.collapsed.compact > tbody > tr > td.dtr-control,
+table.dataTable.dtr-inline.collapsed.compact > tbody > tr > th.dtr-control {
+ padding-left: 27px;
+}
+table.dataTable.dtr-inline.collapsed.compact > tbody > tr > td.dtr-control:before,
+table.dataTable.dtr-inline.collapsed.compact > tbody > tr > th.dtr-control:before {
+ left: 4px;
+ height: 14px;
+ width: 14px;
+ border-radius: 14px;
+ line-height: 14px;
+ text-indent: 3px;
+}
+table.dataTable.dtr-column > tbody > tr > td.dtr-control,
+table.dataTable.dtr-column > tbody > tr > th.dtr-control,
+table.dataTable.dtr-column > tbody > tr > td.control,
+table.dataTable.dtr-column > tbody > tr > th.control {
+ position: relative;
+ cursor: pointer;
+}
+table.dataTable.dtr-column > tbody > tr > td.dtr-control:before,
+table.dataTable.dtr-column > tbody > tr > th.dtr-control:before,
+table.dataTable.dtr-column > tbody > tr > td.control:before,
+table.dataTable.dtr-column > tbody > tr > th.control:before {
+ top: 50%;
+ left: 50%;
+ height: 0.8em;
+ width: 0.8em;
+ margin-top: -0.5em;
+ margin-left: -0.5em;
+ display: block;
+ position: absolute;
+ color: white;
+ border: 0.15em solid white;
+ border-radius: 1em;
+ box-shadow: 0 0 0.2em #444;
+ box-sizing: content-box;
+ text-align: center;
+ text-indent: 0 !important;
+ font-family: "Courier New", Courier, monospace;
+ line-height: 1em;
+ content: "+";
+ background-color: #31b131;
+}
+table.dataTable.dtr-column > tbody > tr.parent td.dtr-control:before,
+table.dataTable.dtr-column > tbody > tr.parent th.dtr-control:before,
+table.dataTable.dtr-column > tbody > tr.parent td.control:before,
+table.dataTable.dtr-column > tbody > tr.parent th.control:before {
+ content: "-";
+ background-color: #d33333;
+}
+table.dataTable > tbody > tr.child {
+ padding: 0.5em 1em;
+}
+table.dataTable > tbody > tr.child:hover {
+ background: transparent !important;
+}
+table.dataTable > tbody > tr.child ul.dtr-details {
+ display: inline-block;
+ list-style-type: none;
+ margin: 0;
+ padding: 0;
+}
+table.dataTable > tbody > tr.child ul.dtr-details > li {
+ border-bottom: 1px solid #efefef;
+ padding: 0.5em 0;
+}
+table.dataTable > tbody > tr.child ul.dtr-details > li:first-child {
+ padding-top: 0;
+}
+table.dataTable > tbody > tr.child ul.dtr-details > li:last-child {
+ border-bottom: none;
+}
+table.dataTable > tbody > tr.child span.dtr-title {
+ display: inline-block;
+ min-width: 75px;
+ font-weight: bold;
+}
+div.dtr-modal {
+ position: fixed;
+ box-sizing: border-box;
+ top: 0;
+ left: 0;
+ height: 100%;
+ width: 100%;
+ z-index: 100;
+ padding: 10em 1em;
+}
+div.dtr-modal div.dtr-modal-display {
+ position: absolute;
+ top: 0;
+ left: 0;
+ bottom: 0;
+ right: 0;
+ width: 50%;
+ height: 50%;
+ overflow: auto;
+ margin: auto;
+ z-index: 102;
+ overflow: auto;
+ background-color: #f5f5f7;
+ border: 1px solid black;
+ border-radius: 0.5em;
+ box-shadow: 0 12px 30px rgba(0, 0, 0, 0.6);
+}
+div.dtr-modal div.dtr-modal-content {
+ position: relative;
+ padding: 1em;
+}
+div.dtr-modal div.dtr-modal-close {
+ position: absolute;
+ top: 6px;
+ right: 6px;
+ width: 22px;
+ height: 22px;
+ border: 1px solid #eaeaea;
+ background-color: #f9f9f9;
+ text-align: center;
+ border-radius: 3px;
+ cursor: pointer;
+ z-index: 12;
+}
+div.dtr-modal div.dtr-modal-close:hover {
+ background-color: #eaeaea;
+}
+div.dtr-modal div.dtr-modal-background {
+ position: fixed;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ z-index: 101;
+ background: rgba(0, 0, 0, 0.6);
+}
+
+@media screen and (max-width: 767px) {
+ div.dtr-modal div.dtr-modal-display {
+ width: 95%;
+ }
+}
diff --git a/public/assets/js/DataTables/Responsive-2.4.1/css/responsive.jqueryui.min.css b/public/assets/js/DataTables/Responsive-2.4.1/css/responsive.jqueryui.min.css
new file mode 100644
index 0000000..8e6448a
--- /dev/null
+++ b/public/assets/js/DataTables/Responsive-2.4.1/css/responsive.jqueryui.min.css
@@ -0,0 +1 @@
+table.dataTable.dtr-inline.collapsed>tbody>tr>td.child,table.dataTable.dtr-inline.collapsed>tbody>tr>th.child,table.dataTable.dtr-inline.collapsed>tbody>tr>td.dataTables_empty{cursor:default !important}table.dataTable.dtr-inline.collapsed>tbody>tr>td.child:before,table.dataTable.dtr-inline.collapsed>tbody>tr>th.child:before,table.dataTable.dtr-inline.collapsed>tbody>tr>td.dataTables_empty:before{display:none !important}table.dataTable.dtr-inline.collapsed>tbody>tr>td.dtr-control,table.dataTable.dtr-inline.collapsed>tbody>tr>th.dtr-control{position:relative;padding-left:30px;cursor:pointer}table.dataTable.dtr-inline.collapsed>tbody>tr>td.dtr-control:before,table.dataTable.dtr-inline.collapsed>tbody>tr>th.dtr-control:before{top:50%;left:5px;height:1em;width:1em;margin-top:-9px;display:block;position:absolute;color:white;border:.15em solid white;border-radius:1em;box-shadow:0 0 .2em #444;box-sizing:content-box;text-align:center;text-indent:0 !important;font-family:"Courier New",Courier,monospace;line-height:1em;content:"+";background-color:#31b131}table.dataTable.dtr-inline.collapsed>tbody>tr.parent>td.dtr-control:before,table.dataTable.dtr-inline.collapsed>tbody>tr.parent>th.dtr-control:before{content:"-";background-color:#d33333}table.dataTable.dtr-inline.collapsed.compact>tbody>tr>td.dtr-control,table.dataTable.dtr-inline.collapsed.compact>tbody>tr>th.dtr-control{padding-left:27px}table.dataTable.dtr-inline.collapsed.compact>tbody>tr>td.dtr-control:before,table.dataTable.dtr-inline.collapsed.compact>tbody>tr>th.dtr-control:before{left:4px;height:14px;width:14px;border-radius:14px;line-height:14px;text-indent:3px}table.dataTable.dtr-column>tbody>tr>td.dtr-control,table.dataTable.dtr-column>tbody>tr>th.dtr-control,table.dataTable.dtr-column>tbody>tr>td.control,table.dataTable.dtr-column>tbody>tr>th.control{position:relative;cursor:pointer}table.dataTable.dtr-column>tbody>tr>td.dtr-control:before,table.dataTable.dtr-column>tbody>tr>th.dtr-control:before,table.dataTable.dtr-column>tbody>tr>td.control:before,table.dataTable.dtr-column>tbody>tr>th.control:before{top:50%;left:50%;height:.8em;width:.8em;margin-top:-0.5em;margin-left:-0.5em;display:block;position:absolute;color:white;border:.15em solid white;border-radius:1em;box-shadow:0 0 .2em #444;box-sizing:content-box;text-align:center;text-indent:0 !important;font-family:"Courier New",Courier,monospace;line-height:1em;content:"+";background-color:#31b131}table.dataTable.dtr-column>tbody>tr.parent td.dtr-control:before,table.dataTable.dtr-column>tbody>tr.parent th.dtr-control:before,table.dataTable.dtr-column>tbody>tr.parent td.control:before,table.dataTable.dtr-column>tbody>tr.parent th.control:before{content:"-";background-color:#d33333}table.dataTable>tbody>tr.child{padding:.5em 1em}table.dataTable>tbody>tr.child:hover{background:transparent !important}table.dataTable>tbody>tr.child ul.dtr-details{display:inline-block;list-style-type:none;margin:0;padding:0}table.dataTable>tbody>tr.child ul.dtr-details>li{border-bottom:1px solid #efefef;padding:.5em 0}table.dataTable>tbody>tr.child ul.dtr-details>li:first-child{padding-top:0}table.dataTable>tbody>tr.child ul.dtr-details>li:last-child{border-bottom:none}table.dataTable>tbody>tr.child span.dtr-title{display:inline-block;min-width:75px;font-weight:bold}div.dtr-modal{position:fixed;box-sizing:border-box;top:0;left:0;height:100%;width:100%;z-index:100;padding:10em 1em}div.dtr-modal div.dtr-modal-display{position:absolute;top:0;left:0;bottom:0;right:0;width:50%;height:50%;overflow:auto;margin:auto;z-index:102;overflow:auto;background-color:#f5f5f7;border:1px solid black;border-radius:.5em;box-shadow:0 12px 30px rgba(0, 0, 0, 0.6)}div.dtr-modal div.dtr-modal-content{position:relative;padding:1em}div.dtr-modal div.dtr-modal-close{position:absolute;top:6px;right:6px;width:22px;height:22px;border:1px solid #eaeaea;background-color:#f9f9f9;text-align:center;border-radius:3px;cursor:pointer;z-index:12}div.dtr-modal div.dtr-modal-close:hover{background-color:#eaeaea}div.dtr-modal div.dtr-modal-background{position:fixed;top:0;left:0;right:0;bottom:0;z-index:101;background:rgba(0, 0, 0, 0.6)}@media screen and (max-width: 767px){div.dtr-modal div.dtr-modal-display{width:95%}}
diff --git a/public/assets/js/DataTables/Responsive-2.4.1/css/responsive.semanticui.css b/public/assets/js/DataTables/Responsive-2.4.1/css/responsive.semanticui.css
new file mode 100644
index 0000000..cab70bb
--- /dev/null
+++ b/public/assets/js/DataTables/Responsive-2.4.1/css/responsive.semanticui.css
@@ -0,0 +1,185 @@
+table.dataTable.dtr-inline.collapsed > tbody > tr > td.child,
+table.dataTable.dtr-inline.collapsed > tbody > tr > th.child,
+table.dataTable.dtr-inline.collapsed > tbody > tr > td.dataTables_empty {
+ cursor: default !important;
+}
+table.dataTable.dtr-inline.collapsed > tbody > tr > td.child:before,
+table.dataTable.dtr-inline.collapsed > tbody > tr > th.child:before,
+table.dataTable.dtr-inline.collapsed > tbody > tr > td.dataTables_empty:before {
+ display: none !important;
+}
+table.dataTable.dtr-inline.collapsed > tbody > tr > td.dtr-control,
+table.dataTable.dtr-inline.collapsed > tbody > tr > th.dtr-control {
+ position: relative;
+ padding-left: 30px;
+ cursor: pointer;
+}
+table.dataTable.dtr-inline.collapsed > tbody > tr > td.dtr-control:before,
+table.dataTable.dtr-inline.collapsed > tbody > tr > th.dtr-control:before {
+ top: 50%;
+ left: 5px;
+ height: 14px;
+ width: 14px;
+ margin-top: -9px;
+ display: block;
+ position: absolute;
+ color: white;
+ border: 0.15em solid white;
+ border-radius: 1em;
+ box-shadow: 0 0 0.2em #444;
+ box-sizing: content-box;
+ text-align: center;
+ text-indent: 0 !important;
+ font-family: "Courier New", Courier, monospace;
+ line-height: 1em;
+ content: "+";
+ background-color: #21ba45;
+}
+table.dataTable.dtr-inline.collapsed > tbody > tr.parent > td.dtr-control:before,
+table.dataTable.dtr-inline.collapsed > tbody > tr.parent > th.dtr-control:before {
+ content: "-";
+ background-color: #d33333;
+}
+table.dataTable.dtr-inline.collapsed.compact > tbody > tr > td.dtr-control,
+table.dataTable.dtr-inline.collapsed.compact > tbody > tr > th.dtr-control {
+ padding-left: 27px;
+}
+table.dataTable.dtr-inline.collapsed.compact > tbody > tr > td.dtr-control:before,
+table.dataTable.dtr-inline.collapsed.compact > tbody > tr > th.dtr-control:before {
+ left: 4px;
+ height: 14px;
+ width: 14px;
+ border-radius: 14px;
+ line-height: 14px;
+ text-indent: 3px;
+}
+table.dataTable.dtr-column > tbody > tr > td.dtr-control,
+table.dataTable.dtr-column > tbody > tr > th.dtr-control,
+table.dataTable.dtr-column > tbody > tr > td.control,
+table.dataTable.dtr-column > tbody > tr > th.control {
+ position: relative;
+ cursor: pointer;
+}
+table.dataTable.dtr-column > tbody > tr > td.dtr-control:before,
+table.dataTable.dtr-column > tbody > tr > th.dtr-control:before,
+table.dataTable.dtr-column > tbody > tr > td.control:before,
+table.dataTable.dtr-column > tbody > tr > th.control:before {
+ top: 50%;
+ left: 50%;
+ height: 0.8em;
+ width: 0.8em;
+ margin-top: -0.5em;
+ margin-left: -0.5em;
+ display: block;
+ position: absolute;
+ color: white;
+ border: 0.15em solid white;
+ border-radius: 1em;
+ box-shadow: 0 0 0.2em #444;
+ box-sizing: content-box;
+ text-align: center;
+ text-indent: 0 !important;
+ font-family: "Courier New", Courier, monospace;
+ line-height: 1em;
+ content: "+";
+ background-color: #21ba45;
+}
+table.dataTable.dtr-column > tbody > tr.parent td.dtr-control:before,
+table.dataTable.dtr-column > tbody > tr.parent th.dtr-control:before,
+table.dataTable.dtr-column > tbody > tr.parent td.control:before,
+table.dataTable.dtr-column > tbody > tr.parent th.control:before {
+ content: "-";
+ background-color: #d33333;
+}
+table.dataTable > tbody > tr.child {
+ padding: 0.5em 1em;
+}
+table.dataTable > tbody > tr.child:hover {
+ background: transparent !important;
+}
+table.dataTable > tbody > tr.child ul.dtr-details {
+ display: inline-block;
+ list-style-type: none;
+ margin: 0;
+ padding: 0;
+}
+table.dataTable > tbody > tr.child ul.dtr-details > li {
+ border-bottom: 1px solid #efefef;
+ padding: 0.5em 0;
+}
+table.dataTable > tbody > tr.child ul.dtr-details > li:first-child {
+ padding-top: 0;
+}
+table.dataTable > tbody > tr.child ul.dtr-details > li:last-child {
+ border-bottom: none;
+}
+table.dataTable > tbody > tr.child span.dtr-title {
+ display: inline-block;
+ min-width: 75px;
+ font-weight: bold;
+}
+div.dtr-modal {
+ position: fixed;
+ box-sizing: border-box;
+ top: 0;
+ left: 0;
+ height: 100%;
+ width: 100%;
+ z-index: 100;
+ padding: 10em 1em;
+}
+div.dtr-modal div.dtr-modal-display {
+ position: absolute;
+ top: 0;
+ left: 0;
+ bottom: 0;
+ right: 0;
+ width: 50%;
+ height: 50%;
+ overflow: auto;
+ margin: auto;
+ z-index: 102;
+ overflow: auto;
+ background-color: #f5f5f7;
+ border: 1px solid black;
+ border-radius: 0.5em;
+ box-shadow: 0 12px 30px rgba(0, 0, 0, 0.6);
+}
+div.dtr-modal div.dtr-modal-content {
+ position: relative;
+ padding: 1em;
+}
+div.dtr-modal div.dtr-modal-close {
+ position: absolute;
+ top: 6px;
+ right: 6px;
+ width: 22px;
+ height: 22px;
+ border: 1px solid #eaeaea;
+ background-color: #f9f9f9;
+ text-align: center;
+ border-radius: 3px;
+ cursor: pointer;
+ z-index: 12;
+}
+div.dtr-modal div.dtr-modal-close:hover {
+ background-color: #eaeaea;
+}
+div.dtr-modal div.dtr-modal-background {
+ position: fixed;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ z-index: 101;
+ background: rgba(0, 0, 0, 0.6);
+}
+
+@media screen and (max-width: 767px) {
+ div.dtr-modal div.dtr-modal-display {
+ width: 95%;
+ }
+}
+div.dtr-bs-modal table.table tr:first-child td {
+ border-top: none;
+}
diff --git a/public/assets/js/DataTables/Responsive-2.4.1/css/responsive.semanticui.min.css b/public/assets/js/DataTables/Responsive-2.4.1/css/responsive.semanticui.min.css
new file mode 100644
index 0000000..8b0d4be
--- /dev/null
+++ b/public/assets/js/DataTables/Responsive-2.4.1/css/responsive.semanticui.min.css
@@ -0,0 +1 @@
+table.dataTable.dtr-inline.collapsed>tbody>tr>td.child,table.dataTable.dtr-inline.collapsed>tbody>tr>th.child,table.dataTable.dtr-inline.collapsed>tbody>tr>td.dataTables_empty{cursor:default !important}table.dataTable.dtr-inline.collapsed>tbody>tr>td.child:before,table.dataTable.dtr-inline.collapsed>tbody>tr>th.child:before,table.dataTable.dtr-inline.collapsed>tbody>tr>td.dataTables_empty:before{display:none !important}table.dataTable.dtr-inline.collapsed>tbody>tr>td.dtr-control,table.dataTable.dtr-inline.collapsed>tbody>tr>th.dtr-control{position:relative;padding-left:30px;cursor:pointer}table.dataTable.dtr-inline.collapsed>tbody>tr>td.dtr-control:before,table.dataTable.dtr-inline.collapsed>tbody>tr>th.dtr-control:before{top:50%;left:5px;height:14px;width:14px;margin-top:-9px;display:block;position:absolute;color:white;border:.15em solid white;border-radius:1em;box-shadow:0 0 .2em #444;box-sizing:content-box;text-align:center;text-indent:0 !important;font-family:"Courier New",Courier,monospace;line-height:1em;content:"+";background-color:#21ba45}table.dataTable.dtr-inline.collapsed>tbody>tr.parent>td.dtr-control:before,table.dataTable.dtr-inline.collapsed>tbody>tr.parent>th.dtr-control:before{content:"-";background-color:#d33333}table.dataTable.dtr-inline.collapsed.compact>tbody>tr>td.dtr-control,table.dataTable.dtr-inline.collapsed.compact>tbody>tr>th.dtr-control{padding-left:27px}table.dataTable.dtr-inline.collapsed.compact>tbody>tr>td.dtr-control:before,table.dataTable.dtr-inline.collapsed.compact>tbody>tr>th.dtr-control:before{left:4px;height:14px;width:14px;border-radius:14px;line-height:14px;text-indent:3px}table.dataTable.dtr-column>tbody>tr>td.dtr-control,table.dataTable.dtr-column>tbody>tr>th.dtr-control,table.dataTable.dtr-column>tbody>tr>td.control,table.dataTable.dtr-column>tbody>tr>th.control{position:relative;cursor:pointer}table.dataTable.dtr-column>tbody>tr>td.dtr-control:before,table.dataTable.dtr-column>tbody>tr>th.dtr-control:before,table.dataTable.dtr-column>tbody>tr>td.control:before,table.dataTable.dtr-column>tbody>tr>th.control:before{top:50%;left:50%;height:.8em;width:.8em;margin-top:-0.5em;margin-left:-0.5em;display:block;position:absolute;color:white;border:.15em solid white;border-radius:1em;box-shadow:0 0 .2em #444;box-sizing:content-box;text-align:center;text-indent:0 !important;font-family:"Courier New",Courier,monospace;line-height:1em;content:"+";background-color:#21ba45}table.dataTable.dtr-column>tbody>tr.parent td.dtr-control:before,table.dataTable.dtr-column>tbody>tr.parent th.dtr-control:before,table.dataTable.dtr-column>tbody>tr.parent td.control:before,table.dataTable.dtr-column>tbody>tr.parent th.control:before{content:"-";background-color:#d33333}table.dataTable>tbody>tr.child{padding:.5em 1em}table.dataTable>tbody>tr.child:hover{background:transparent !important}table.dataTable>tbody>tr.child ul.dtr-details{display:inline-block;list-style-type:none;margin:0;padding:0}table.dataTable>tbody>tr.child ul.dtr-details>li{border-bottom:1px solid #efefef;padding:.5em 0}table.dataTable>tbody>tr.child ul.dtr-details>li:first-child{padding-top:0}table.dataTable>tbody>tr.child ul.dtr-details>li:last-child{border-bottom:none}table.dataTable>tbody>tr.child span.dtr-title{display:inline-block;min-width:75px;font-weight:bold}div.dtr-modal{position:fixed;box-sizing:border-box;top:0;left:0;height:100%;width:100%;z-index:100;padding:10em 1em}div.dtr-modal div.dtr-modal-display{position:absolute;top:0;left:0;bottom:0;right:0;width:50%;height:50%;overflow:auto;margin:auto;z-index:102;overflow:auto;background-color:#f5f5f7;border:1px solid black;border-radius:.5em;box-shadow:0 12px 30px rgba(0, 0, 0, 0.6)}div.dtr-modal div.dtr-modal-content{position:relative;padding:1em}div.dtr-modal div.dtr-modal-close{position:absolute;top:6px;right:6px;width:22px;height:22px;border:1px solid #eaeaea;background-color:#f9f9f9;text-align:center;border-radius:3px;cursor:pointer;z-index:12}div.dtr-modal div.dtr-modal-close:hover{background-color:#eaeaea}div.dtr-modal div.dtr-modal-background{position:fixed;top:0;left:0;right:0;bottom:0;z-index:101;background:rgba(0, 0, 0, 0.6)}@media screen and (max-width: 767px){div.dtr-modal div.dtr-modal-display{width:95%}}div.dtr-bs-modal table.table tr:first-child td{border-top:none}
diff --git a/public/assets/js/DataTables/Responsive-2.4.1/js/dataTables.responsive.js b/public/assets/js/DataTables/Responsive-2.4.1/js/dataTables.responsive.js
new file mode 100644
index 0000000..21c43d2
--- /dev/null
+++ b/public/assets/js/DataTables/Responsive-2.4.1/js/dataTables.responsive.js
@@ -0,0 +1,1533 @@
+/*! Responsive 2.4.1
+ * © SpryMedia Ltd - datatables.net/license
+ */
+
+(function( factory ){
+ if ( typeof define === 'function' && define.amd ) {
+ // AMD
+ define( ['jquery', 'datatables.net'], function ( $ ) {
+ return factory( $, window, document );
+ } );
+ }
+ else if ( typeof exports === 'object' ) {
+ // CommonJS
+ var jq = require('jquery');
+ var cjsRequires = function (root, $) {
+ if ( ! $.fn.dataTable ) {
+ require('datatables.net')(root, $);
+ }
+ };
+
+ if (typeof window !== 'undefined') {
+ module.exports = function (root, $) {
+ if ( ! root ) {
+ // CommonJS environments without a window global must pass a
+ // root. This will give an error otherwise
+ root = window;
+ }
+
+ if ( ! $ ) {
+ $ = jq( root );
+ }
+
+ cjsRequires( root, $ );
+ return factory( $, root, root.document );
+ };
+ }
+ else {
+ cjsRequires( window, jq );
+ module.exports = factory( jq, window, window.document );
+ }
+ }
+ else {
+ // Browser
+ factory( jQuery, window, document );
+ }
+}(function( $, window, document, undefined ) {
+'use strict';
+var DataTable = $.fn.dataTable;
+
+
+
+/**
+ * @summary Responsive
+ * @description Responsive tables plug-in for DataTables
+ * @version 2.4.1
+ * @author SpryMedia Ltd (www.sprymedia.co.uk)
+ * @contact www.sprymedia.co.uk/contact
+ * @copyright SpryMedia Ltd.
+ *
+ * This source file is free software, available under the following license:
+ * MIT license - http://datatables.net/license/mit
+ *
+ * This source file is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the license files for details.
+ *
+ * For details please refer to: http://www.datatables.net
+ */
+
+/**
+ * Responsive is a plug-in for the DataTables library that makes use of
+ * DataTables' ability to change the visibility of columns, changing the
+ * visibility of columns so the displayed columns fit into the table container.
+ * The end result is that complex tables will be dynamically adjusted to fit
+ * into the viewport, be it on a desktop, tablet or mobile browser.
+ *
+ * Responsive for DataTables has two modes of operation, which can used
+ * individually or combined:
+ *
+ * * Class name based control - columns assigned class names that match the
+ * breakpoint logic can be shown / hidden as required for each breakpoint.
+ * * Automatic control - columns are automatically hidden when there is no
+ * room left to display them. Columns removed from the right.
+ *
+ * In additional to column visibility control, Responsive also has built into
+ * options to use DataTables' child row display to show / hide the information
+ * from the table that has been hidden. There are also two modes of operation
+ * for this child row display:
+ *
+ * * Inline - when the control element that the user can use to show / hide
+ * child rows is displayed inside the first column of the table.
+ * * Column - where a whole column is dedicated to be the show / hide control.
+ *
+ * Initialisation of Responsive is performed by:
+ *
+ * * Adding the class `responsive` or `dt-responsive` to the table. In this case
+ * Responsive will automatically be initialised with the default configuration
+ * options when the DataTable is created.
+ * * Using the `responsive` option in the DataTables configuration options. This
+ * can also be used to specify the configuration options, or simply set to
+ * `true` to use the defaults.
+ *
+ * @class
+ * @param {object} settings DataTables settings object for the host table
+ * @param {object} [opts] Configuration options
+ * @requires jQuery 1.7+
+ * @requires DataTables 1.10.3+
+ *
+ * @example
+ * $('#example').DataTable( {
+ * responsive: true
+ * } );
+ * } );
+ */
+var Responsive = function ( settings, opts ) {
+ // Sanity check that we are using DataTables 1.10 or newer
+ if ( ! DataTable.versionCheck || ! DataTable.versionCheck( '1.10.10' ) ) {
+ throw 'DataTables Responsive requires DataTables 1.10.10 or newer';
+ }
+
+ this.s = {
+ childNodeStore: {},
+ columns: [],
+ current: [],
+ dt: new DataTable.Api( settings )
+ };
+
+ // Check if responsive has already been initialised on this table
+ if ( this.s.dt.settings()[0].responsive ) {
+ return;
+ }
+
+ // details is an object, but for simplicity the user can give it as a string
+ // or a boolean
+ if ( opts && typeof opts.details === 'string' ) {
+ opts.details = { type: opts.details };
+ }
+ else if ( opts && opts.details === false ) {
+ opts.details = { type: false };
+ }
+ else if ( opts && opts.details === true ) {
+ opts.details = { type: 'inline' };
+ }
+
+ this.c = $.extend( true, {}, Responsive.defaults, DataTable.defaults.responsive, opts );
+ settings.responsive = this;
+ this._constructor();
+};
+
+$.extend( Responsive.prototype, {
+ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ * Constructor
+ */
+
+ /**
+ * Initialise the Responsive instance
+ *
+ * @private
+ */
+ _constructor: function ()
+ {
+ var that = this;
+ var dt = this.s.dt;
+ var dtPrivateSettings = dt.settings()[0];
+ var oldWindowWidth = $(window).innerWidth();
+
+ dt.settings()[0]._responsive = this;
+
+ // Use DataTables' throttle function to avoid processor thrashing on
+ // resize
+ $(window).on( 'resize.dtr orientationchange.dtr', DataTable.util.throttle( function () {
+ // iOS has a bug whereby resize can fire when only scrolling
+ // See: http://stackoverflow.com/questions/8898412
+ var width = $(window).innerWidth();
+
+ if ( width !== oldWindowWidth ) {
+ that._resize();
+ oldWindowWidth = width;
+ }
+ } ) );
+
+ // DataTables doesn't currently trigger an event when a row is added, so
+ // we need to hook into its private API to enforce the hidden rows when
+ // new data is added
+ dtPrivateSettings.oApi._fnCallbackReg( dtPrivateSettings, 'aoRowCreatedCallback', function (tr, data, idx) {
+ if ( $.inArray( false, that.s.current ) !== -1 ) {
+ $('>td, >th', tr).each( function ( i ) {
+ var idx = dt.column.index( 'toData', i );
+
+ if ( that.s.current[idx] === false ) {
+ $(this).css('display', 'none');
+ }
+ } );
+ }
+ } );
+
+ // Destroy event handler
+ dt.on( 'destroy.dtr', function () {
+ dt.off( '.dtr' );
+ $( dt.table().body() ).off( '.dtr' );
+ $(window).off( 'resize.dtr orientationchange.dtr' );
+ dt.cells('.dtr-control').nodes().to$().removeClass('dtr-control');
+
+ // Restore the columns that we've hidden
+ $.each( that.s.current, function ( i, val ) {
+ if ( val === false ) {
+ that._setColumnVis( i, true );
+ }
+ } );
+ } );
+
+ // Reorder the breakpoints array here in case they have been added out
+ // of order
+ this.c.breakpoints.sort( function (a, b) {
+ return a.width < b.width ? 1 :
+ a.width > b.width ? -1 : 0;
+ } );
+
+ this._classLogic();
+ this._resizeAuto();
+
+ // Details handler
+ var details = this.c.details;
+
+ if ( details.type !== false ) {
+ that._detailsInit();
+
+ // DataTables will trigger this event on every column it shows and
+ // hides individually
+ dt.on( 'column-visibility.dtr', function () {
+ // Use a small debounce to allow multiple columns to be set together
+ if ( that._timer ) {
+ clearTimeout( that._timer );
+ }
+
+ that._timer = setTimeout( function () {
+ that._timer = null;
+
+ that._classLogic();
+ that._resizeAuto();
+ that._resize(true);
+
+ that._redrawChildren();
+ }, 100 );
+ } );
+
+ // Redraw the details box on each draw which will happen if the data
+ // has changed. This is used until DataTables implements a native
+ // `updated` event for rows
+ dt.on( 'draw.dtr', function () {
+ that._redrawChildren();
+ } );
+
+ $(dt.table().node()).addClass( 'dtr-'+details.type );
+ }
+
+ dt.on( 'column-reorder.dtr', function (e, settings, details) {
+ that._classLogic();
+ that._resizeAuto();
+ that._resize(true);
+ } );
+
+ // Change in column sizes means we need to calc
+ dt.on( 'column-sizing.dtr', function () {
+ that._resizeAuto();
+ that._resize();
+ });
+
+ // DT2 let's us tell it if we are hiding columns
+ dt.on( 'column-calc.dt', function (e, d) {
+ var curr = that.s.current;
+
+ for (var i=0 ; i<curr.length ; i++) {
+ var idx = d.visible.indexOf(i);
+
+ if (curr[i] === false && idx >= 0) {
+ d.visible.splice(idx, 1);
+ }
+ }
+ } );
+
+ // On Ajax reload we want to reopen any child rows which are displayed
+ // by responsive
+ dt.on( 'preXhr.dtr', function () {
+ var rowIds = [];
+ dt.rows().every( function () {
+ if ( this.child.isShown() ) {
+ rowIds.push( this.id(true) );
+ }
+ } );
+
+ dt.one( 'draw.dtr', function () {
+ that._resizeAuto();
+ that._resize();
+
+ dt.rows( rowIds ).every( function () {
+ that._detailsDisplay( this, false );
+ } );
+ } );
+ });
+
+ dt
+ .on( 'draw.dtr', function () {
+ that._controlClass();
+ })
+ .on( 'init.dtr', function (e, settings, details) {
+ if ( e.namespace !== 'dt' ) {
+ return;
+ }
+
+ that._resizeAuto();
+ that._resize();
+
+ // If columns were hidden, then DataTables needs to adjust the
+ // column sizing
+ if ( $.inArray( false, that.s.current ) ) {
+ dt.columns.adjust();
+ }
+ } );
+
+ // First pass - draw the table for the current viewport size
+ this._resize();
+ },
+
+
+ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ * Private methods
+ */
+
+ /**
+ * Get and store nodes from a cell - use for node moving renderers
+ *
+ * @param {*} dt DT instance
+ * @param {*} row Row index
+ * @param {*} col Column index
+ */
+ _childNodes: function( dt, row, col ) {
+ var name = row+'-'+col;
+
+ if ( this.s.childNodeStore[ name ] ) {
+ return this.s.childNodeStore[ name ];
+ }
+
+ // https://jsperf.com/childnodes-array-slice-vs-loop
+ var nodes = [];
+ var children = dt.cell( row, col ).node().childNodes;
+ for ( var i=0, ien=children.length ; i<ien ; i++ ) {
+ nodes.push( children[i] );
+ }
+
+ this.s.childNodeStore[ name ] = nodes;
+
+ return nodes;
+ },
+
+ /**
+ * Restore nodes from the cache to a table cell
+ *
+ * @param {*} dt DT instance
+ * @param {*} row Row index
+ * @param {*} col Column index
+ */
+ _childNodesRestore: function( dt, row, col ) {
+ var name = row+'-'+col;
+
+ if ( ! this.s.childNodeStore[ name ] ) {
+ return;
+ }
+
+ var node = dt.cell( row, col ).node();
+ var store = this.s.childNodeStore[ name ];
+ var parent = store[0].parentNode;
+ var parentChildren = parent.childNodes;
+ var a = [];
+
+ for ( var i=0, ien=parentChildren.length ; i<ien ; i++ ) {
+ a.push( parentChildren[i] );
+ }
+
+ for ( var j=0, jen=a.length ; j<jen ; j++ ) {
+ node.appendChild( a[j] );
+ }
+
+ this.s.childNodeStore[ name ] = undefined;
+ },
+
+ /**
+ * Calculate the visibility for the columns in a table for a given
+ * breakpoint. The result is pre-determined based on the class logic if
+ * class names are used to control all columns, but the width of the table
+ * is also used if there are columns which are to be automatically shown
+ * and hidden.
+ *
+ * @param {string} breakpoint Breakpoint name to use for the calculation
+ * @return {array} Array of boolean values initiating the visibility of each
+ * column.
+ * @private
+ */
+ _columnsVisiblity: function ( breakpoint )
+ {
+ var dt = this.s.dt;
+ var columns = this.s.columns;
+ var i, ien;
+
+ // Create an array that defines the column ordering based first on the
+ // column's priority, and secondly the column index. This allows the
+ // columns to be removed from the right if the priority matches
+ var order = columns
+ .map( function ( col, idx ) {
+ return {
+ columnIdx: idx,
+ priority: col.priority
+ };
+ } )
+ .sort( function ( a, b ) {
+ if ( a.priority !== b.priority ) {
+ return a.priority - b.priority;
+ }
+ return a.columnIdx - b.columnIdx;
+ } );
+
+ // Class logic - determine which columns are in this breakpoint based
+ // on the classes. If no class control (i.e. `auto`) then `-` is used
+ // to indicate this to the rest of the function
+ var display = $.map( columns, function ( col, i ) {
+ if ( dt.column(i).visible() === false ) {
+ return 'not-visible';
+ }
+ return col.auto && col.minWidth === null ?
+ false :
+ col.auto === true ?
+ '-' :
+ $.inArray( breakpoint, col.includeIn ) !== -1;
+ } );
+
+ // Auto column control - first pass: how much width is taken by the
+ // ones that must be included from the non-auto columns
+ var requiredWidth = 0;
+ for ( i=0, ien=display.length ; i<ien ; i++ ) {
+ if ( display[i] === true ) {
+ requiredWidth += columns[i].minWidth;
+ }
+ }
+
+ // Second pass, use up any remaining width for other columns. For
+ // scrolling tables we need to subtract the width of the scrollbar. It
+ // may not be requires which makes this sub-optimal, but it would
+ // require another full redraw to make complete use of those extra few
+ // pixels
+ var scrolling = dt.settings()[0].oScroll;
+ var bar = scrolling.sY || scrolling.sX ? scrolling.iBarWidth : 0;
+ var widthAvailable = dt.table().container().offsetWidth - bar;
+ var usedWidth = widthAvailable - requiredWidth;
+
+ // Control column needs to always be included. This makes it sub-
+ // optimal in terms of using the available with, but to stop layout
+ // thrashing or overflow. Also we need to account for the control column
+ // width first so we know how much width is available for the other
+ // columns, since the control column might not be the first one shown
+ for ( i=0, ien=display.length ; i<ien ; i++ ) {
+ if ( columns[i].control ) {
+ usedWidth -= columns[i].minWidth;
+ }
+ }
+
+ // Allow columns to be shown (counting by priority and then right to
+ // left) until we run out of room
+ var empty = false;
+ for ( i=0, ien=order.length ; i<ien ; i++ ) {
+ var colIdx = order[i].columnIdx;
+
+ if ( display[colIdx] === '-' && ! columns[colIdx].control && columns[colIdx].minWidth ) {
+ // Once we've found a column that won't fit we don't let any
+ // others display either, or columns might disappear in the
+ // middle of the table
+ if ( empty || usedWidth - columns[colIdx].minWidth < 0 ) {
+ empty = true;
+ display[colIdx] = false;
+ }
+ else {
+ display[colIdx] = true;
+ }
+
+ usedWidth -= columns[colIdx].minWidth;
+ }
+ }
+
+ // Determine if the 'control' column should be shown (if there is one).
+ // This is the case when there is a hidden column (that is not the
+ // control column). The two loops look inefficient here, but they are
+ // trivial and will fly through. We need to know the outcome from the
+ // first , before the action in the second can be taken
+ var showControl = false;
+
+ for ( i=0, ien=columns.length ; i<ien ; i++ ) {
+ if ( ! columns[i].control && ! columns[i].never && display[i] === false ) {
+ showControl = true;
+ break;
+ }
+ }
+
+ for ( i=0, ien=columns.length ; i<ien ; i++ ) {
+ if ( columns[i].control ) {
+ display[i] = showControl;
+ }
+
+ // Replace not visible string with false from the control column detection above
+ if ( display[i] === 'not-visible' ) {
+ display[i] = false;
+ }
+ }
+
+ // Finally we need to make sure that there is at least one column that
+ // is visible
+ if ( $.inArray( true, display ) === -1 ) {
+ display[0] = true;
+ }
+
+ return display;
+ },
+
+
+ /**
+ * Create the internal `columns` array with information about the columns
+ * for the table. This includes determining which breakpoints the column
+ * will appear in, based upon class names in the column, which makes up the
+ * vast majority of this method.
+ *
+ * @private
+ */
+ _classLogic: function ()
+ {
+ var that = this;
+ var calc = {};
+ var breakpoints = this.c.breakpoints;
+ var dt = this.s.dt;
+ var columns = dt.columns().eq(0).map( function (i) {
+ var column = this.column(i);
+ var className = column.header().className;
+ var priority = dt.settings()[0].aoColumns[i].responsivePriority;
+ var dataPriority = column.header().getAttribute('data-priority');
+
+ if ( priority === undefined ) {
+ priority = dataPriority === undefined || dataPriority === null?
+ 10000 :
+ dataPriority * 1;
+ }
+
+ return {
+ className: className,
+ includeIn: [],
+ auto: false,
+ control: false,
+ never: className.match(/\b(dtr\-)?never\b/) ? true : false,
+ priority: priority
+ };
+ } );
+
+ // Simply add a breakpoint to `includeIn` array, ensuring that there are
+ // no duplicates
+ var add = function ( colIdx, name ) {
+ var includeIn = columns[ colIdx ].includeIn;
+
+ if ( $.inArray( name, includeIn ) === -1 ) {
+ includeIn.push( name );
+ }
+ };
+
+ var column = function ( colIdx, name, operator, matched ) {
+ var size, i, ien;
+
+ if ( ! operator ) {
+ columns[ colIdx ].includeIn.push( name );
+ }
+ else if ( operator === 'max-' ) {
+ // Add this breakpoint and all smaller
+ size = that._find( name ).width;
+
+ for ( i=0, ien=breakpoints.length ; i<ien ; i++ ) {
+ if ( breakpoints[i].width <= size ) {
+ add( colIdx, breakpoints[i].name );
+ }
+ }
+ }
+ else if ( operator === 'min-' ) {
+ // Add this breakpoint and all larger
+ size = that._find( name ).width;
+
+ for ( i=0, ien=breakpoints.length ; i<ien ; i++ ) {
+ if ( breakpoints[i].width >= size ) {
+ add( colIdx, breakpoints[i].name );
+ }
+ }
+ }
+ else if ( operator === 'not-' ) {
+ // Add all but this breakpoint
+ for ( i=0, ien=breakpoints.length ; i<ien ; i++ ) {
+ if ( breakpoints[i].name.indexOf( matched ) === -1 ) {
+ add( colIdx, breakpoints[i].name );
+ }
+ }
+ }
+ };
+
+ // Loop over each column and determine if it has a responsive control
+ // class
+ columns.each( function ( col, i ) {
+ var classNames = col.className.split(' ');
+ var hasClass = false;
+
+ // Split the class name up so multiple rules can be applied if needed
+ for ( var k=0, ken=classNames.length ; k<ken ; k++ ) {
+ var className = classNames[k].trim();
+
+ if ( className === 'all' || className === 'dtr-all' ) {
+ // Include in all
+ hasClass = true;
+ col.includeIn = $.map( breakpoints, function (a) {
+ return a.name;
+ } );
+ return;
+ }
+ else if ( className === 'none' || className === 'dtr-none' || col.never ) {
+ // Include in none (default) and no auto
+ hasClass = true;
+ return;
+ }
+ else if ( className === 'control' || className === 'dtr-control' ) {
+ // Special column that is only visible, when one of the other
+ // columns is hidden. This is used for the details control
+ hasClass = true;
+ col.control = true;
+ return;
+ }
+
+ $.each( breakpoints, function ( j, breakpoint ) {
+ // Does this column have a class that matches this breakpoint?
+ var brokenPoint = breakpoint.name.split('-');
+ var re = new RegExp( '(min\\-|max\\-|not\\-)?('+brokenPoint[0]+')(\\-[_a-zA-Z0-9])?' );
+ var match = className.match( re );
+
+ if ( match ) {
+ hasClass = true;
+
+ if ( match[2] === brokenPoint[0] && match[3] === '-'+brokenPoint[1] ) {
+ // Class name matches breakpoint name fully
+ column( i, breakpoint.name, match[1], match[2]+match[3] );
+ }
+ else if ( match[2] === brokenPoint[0] && ! match[3] ) {
+ // Class name matched primary breakpoint name with no qualifier
+ column( i, breakpoint.name, match[1], match[2] );
+ }
+ }
+ } );
+ }
+
+ // If there was no control class, then automatic sizing is used
+ if ( ! hasClass ) {
+ col.auto = true;
+ }
+ } );
+
+ this.s.columns = columns;
+ },
+
+ /**
+ * Update the cells to show the correct control class / button
+ * @private
+ */
+ _controlClass: function ()
+ {
+ if ( this.c.details.type === 'inline' ) {
+ var dt = this.s.dt;
+ var columnsVis = this.s.current;
+ var firstVisible = $.inArray(true, columnsVis);
+
+ // Remove from any cells which shouldn't have it
+ dt.cells(
+ null,
+ function(idx) {
+ return idx !== firstVisible;
+ },
+ {page: 'current'}
+ )
+ .nodes()
+ .to$()
+ .filter('.dtr-control')
+ .removeClass('dtr-control');
+
+ dt.cells(null, firstVisible, {page: 'current'})
+ .nodes()
+ .to$()
+ .addClass('dtr-control');
+ }
+ },
+
+ /**
+ * Show the details for the child row
+ *
+ * @param {DataTables.Api} row API instance for the row
+ * @param {boolean} update Update flag
+ * @private
+ */
+ _detailsDisplay: function ( row, update )
+ {
+ var that = this;
+ var dt = this.s.dt;
+ var details = this.c.details;
+
+ if ( details && details.type !== false ) {
+ var renderer = typeof details.renderer === 'string'
+ ? Responsive.renderer[details.renderer]()
+ : details.renderer;
+
+ var res = details.display( row, update, function () {
+ return renderer.call(
+ that, dt, row[0], that._detailsObj(row[0])
+ );
+ } );
+
+ if ( res === true || res === false ) {
+ $(dt.table().node()).triggerHandler( 'responsive-display.dt', [dt, row, res, update] );
+ }
+ }
+ },
+
+
+ /**
+ * Initialisation for the details handler
+ *
+ * @private
+ */
+ _detailsInit: function ()
+ {
+ var that = this;
+ var dt = this.s.dt;
+ var details = this.c.details;
+
+ // The inline type always uses the first child as the target
+ if ( details.type === 'inline' ) {
+ details.target = 'td.dtr-control, th.dtr-control';
+ }
+
+ // Keyboard accessibility
+ dt.on( 'draw.dtr', function () {
+ that._tabIndexes();
+ } );
+ that._tabIndexes(); // Initial draw has already happened
+
+ $( dt.table().body() ).on( 'keyup.dtr', 'td, th', function (e) {
+ if ( e.keyCode === 13 && $(this).data('dtr-keyboard') ) {
+ $(this).click();
+ }
+ } );
+
+ // type.target can be a string jQuery selector or a column index
+ var target = details.target;
+ var selector = typeof target === 'string' ? target : 'td, th';
+
+ if ( target !== undefined || target !== null ) {
+ // Click handler to show / hide the details rows when they are available
+ $( dt.table().body() )
+ .on( 'click.dtr mousedown.dtr mouseup.dtr', selector, function (e) {
+ // If the table is not collapsed (i.e. there is no hidden columns)
+ // then take no action
+ if ( ! $(dt.table().node()).hasClass('collapsed' ) ) {
+ return;
+ }
+
+ // Check that the row is actually a DataTable's controlled node
+ if ( $.inArray( $(this).closest('tr').get(0), dt.rows().nodes().toArray() ) === -1 ) {
+ return;
+ }
+
+ // For column index, we determine if we should act or not in the
+ // handler - otherwise it is already okay
+ if ( typeof target === 'number' ) {
+ var targetIdx = target < 0 ?
+ dt.columns().eq(0).length + target :
+ target;
+
+ if ( dt.cell( this ).index().column !== targetIdx ) {
+ return;
+ }
+ }
+
+ // $().closest() includes itself in its check
+ var row = dt.row( $(this).closest('tr') );
+
+ // Check event type to do an action
+ if ( e.type === 'click' ) {
+ // The renderer is given as a function so the caller can execute it
+ // only when they need (i.e. if hiding there is no point is running
+ // the renderer)
+ that._detailsDisplay( row, false );
+ }
+ else if ( e.type === 'mousedown' ) {
+ // For mouse users, prevent the focus ring from showing
+ $(this).css('outline', 'none');
+ }
+ else if ( e.type === 'mouseup' ) {
+ // And then re-allow at the end of the click
+ $(this).trigger('blur').css('outline', '');
+ }
+ } );
+ }
+ },
+
+
+ /**
+ * Get the details to pass to a renderer for a row
+ * @param {int} rowIdx Row index
+ * @private
+ */
+ _detailsObj: function ( rowIdx )
+ {
+ var that = this;
+ var dt = this.s.dt;
+
+ return $.map( this.s.columns, function( col, i ) {
+ // Never and control columns should not be passed to the renderer
+ if ( col.never || col.control ) {
+ return;
+ }
+
+ var dtCol = dt.settings()[0].aoColumns[ i ];
+
+ return {
+ className: dtCol.sClass,
+ columnIndex: i,
+ data: dt.cell( rowIdx, i ).render( that.c.orthogonal ),
+ hidden: dt.column( i ).visible() && !that.s.current[ i ],
+ rowIndex: rowIdx,
+ title: dtCol.sTitle !== null ?
+ dtCol.sTitle :
+ $(dt.column(i).header()).text()
+ };
+ } );
+ },
+
+
+ /**
+ * Find a breakpoint object from a name
+ *
+ * @param {string} name Breakpoint name to find
+ * @return {object} Breakpoint description object
+ * @private
+ */
+ _find: function ( name )
+ {
+ var breakpoints = this.c.breakpoints;
+
+ for ( var i=0, ien=breakpoints.length ; i<ien ; i++ ) {
+ if ( breakpoints[i].name === name ) {
+ return breakpoints[i];
+ }
+ }
+ },
+
+
+ /**
+ * Re-create the contents of the child rows as the display has changed in
+ * some way.
+ *
+ * @private
+ */
+ _redrawChildren: function ()
+ {
+ var that = this;
+ var dt = this.s.dt;
+
+ dt.rows( {page: 'current'} ).iterator( 'row', function ( settings, idx ) {
+ var row = dt.row( idx );
+
+ that._detailsDisplay( dt.row( idx ), true );
+ } );
+ },
+
+
+ /**
+ * Alter the table display for a resized viewport. This involves first
+ * determining what breakpoint the window currently is in, getting the
+ * column visibilities to apply and then setting them.
+ *
+ * @param {boolean} forceRedraw Force a redraw
+ * @private
+ */
+ _resize: function (forceRedraw)
+ {
+ var that = this;
+ var dt = this.s.dt;
+ var width = $(window).innerWidth();
+ var breakpoints = this.c.breakpoints;
+ var breakpoint = breakpoints[0].name;
+ var columns = this.s.columns;
+ var i, ien;
+ var oldVis = this.s.current.slice();
+
+ // Determine what breakpoint we are currently at
+ for ( i=breakpoints.length-1 ; i>=0 ; i-- ) {
+ if ( width <= breakpoints[i].width ) {
+ breakpoint = breakpoints[i].name;
+ break;
+ }
+ }
+
+ // Show the columns for that break point
+ var columnsVis = this._columnsVisiblity( breakpoint );
+ this.s.current = columnsVis;
+
+ // Set the class before the column visibility is changed so event
+ // listeners know what the state is. Need to determine if there are
+ // any columns that are not visible but can be shown
+ var collapsedClass = false;
+
+ for ( i=0, ien=columns.length ; i<ien ; i++ ) {
+ if ( columnsVis[i] === false && ! columns[i].never && ! columns[i].control && ! dt.column(i).visible() === false ) {
+ collapsedClass = true;
+ break;
+ }
+ }
+
+ $( dt.table().node() ).toggleClass( 'collapsed', collapsedClass );
+
+ var changed = false;
+ var visible = 0;
+
+ dt.columns().eq(0).each( function ( colIdx, i ) {
+ if ( columnsVis[i] === true ) {
+ visible++;
+ }
+
+ if ( forceRedraw || columnsVis[i] !== oldVis[i] ) {
+ changed = true;
+ that._setColumnVis( colIdx, columnsVis[i] );
+ }
+ } );
+
+ // Always need to update the display, regardless of if it has changed or not, so nodes
+ // can be re-inserted for listHiddenNodes
+ this._redrawChildren();
+
+ if ( changed ) {
+ // Inform listeners of the change
+ $(dt.table().node()).trigger( 'responsive-resize.dt', [dt, this.s.current] );
+
+ // If no records, update the "No records" display element
+ if ( dt.page.info().recordsDisplay === 0 ) {
+ $('td', dt.table().body()).eq(0).attr('colspan', visible);
+ }
+ }
+
+ that._controlClass();
+ },
+
+
+ /**
+ * Determine the width of each column in the table so the auto column hiding
+ * has that information to work with. This method is never going to be 100%
+ * perfect since column widths can change slightly per page, but without
+ * seriously compromising performance this is quite effective.
+ *
+ * @private
+ */
+ _resizeAuto: function ()
+ {
+ var dt = this.s.dt;
+ var columns = this.s.columns;
+ var that = this;
+
+ // Are we allowed to do auto sizing?
+ if ( ! this.c.auto ) {
+ return;
+ }
+
+ // Are there any columns that actually need auto-sizing, or do they all
+ // have classes defined
+ if ( $.inArray( true, $.map( columns, function (c) { return c.auto; } ) ) === -1 ) {
+ return;
+ }
+
+ // Need to restore all children. They will be reinstated by a re-render
+ if ( ! $.isEmptyObject( this.s.childNodeStore ) ) {
+ $.each( this.s.childNodeStore, function ( key ) {
+ var idx = key.split('-');
+
+ that._childNodesRestore( dt, idx[0]*1, idx[1]*1 );
+ } );
+ }
+
+ // Clone the table with the current data in it
+ var tableWidth = dt.table().node().offsetWidth;
+ var columnWidths = dt.columns;
+ var clonedTable = dt.table().node().cloneNode( false );
+ var clonedHeader = $( dt.table().header().cloneNode( false ) ).appendTo( clonedTable );
+ var clonedBody = $( dt.table().body() ).clone( false, false ).empty().appendTo( clonedTable ); // use jQuery because of IE8
+
+ clonedTable.style.width = 'auto';
+
+ // Header
+ var headerCells = dt.columns()
+ .header()
+ .filter( function (idx) {
+ return dt.column(idx).visible();
+ } )
+ .to$()
+ .clone( false )
+ .css( 'display', 'table-cell' )
+ .css( 'width', 'auto' )
+ .css( 'min-width', 0 );
+
+ // Body rows - we don't need to take account of DataTables' column
+ // visibility since we implement our own here (hence the `display` set)
+ $(clonedBody)
+ .append( $(dt.rows( { page: 'current' } ).nodes()).clone( false ) )
+ .find( 'th, td' ).css( 'display', '' );
+
+ // Footer
+ var footer = dt.table().footer();
+ if ( footer ) {
+ var clonedFooter = $( footer.cloneNode( false ) ).appendTo( clonedTable );
+ var footerCells = dt.columns()
+ .footer()
+ .filter( function (idx) {
+ return dt.column(idx).visible();
+ } )
+ .to$()
+ .clone( false )
+ .css( 'display', 'table-cell' );
+
+ $('<tr/>')
+ .append( footerCells )
+ .appendTo( clonedFooter );
+ }
+
+ $('<tr/>')
+ .append( headerCells )
+ .appendTo( clonedHeader );
+
+ // In the inline case extra padding is applied to the first column to
+ // give space for the show / hide icon. We need to use this in the
+ // calculation
+ if ( this.c.details.type === 'inline' ) {
+ $(clonedTable).addClass( 'dtr-inline collapsed' );
+ }
+
+ // It is unsafe to insert elements with the same name into the DOM
+ // multiple times. For example, cloning and inserting a checked radio
+ // clears the chcecked state of the original radio.
+ $( clonedTable ).find( '[name]' ).removeAttr( 'name' );
+
+ // A position absolute table would take the table out of the flow of
+ // our container element, bypassing the height and width (Scroller)
+ $( clonedTable ).css( 'position', 'relative' )
+
+ var inserted = $('<div/>')
+ .css( {
+ width: 1,
+ height: 1,
+ overflow: 'hidden',
+ clear: 'both'
+ } )
+ .append( clonedTable );
+
+ inserted.insertBefore( dt.table().node() );
+
+ // The cloned header now contains the smallest that each column can be
+ headerCells.each( function (i) {
+ var idx = dt.column.index( 'fromVisible', i );
+ columns[ idx ].minWidth = this.offsetWidth || 0;
+ } );
+
+ inserted.remove();
+ },
+
+ /**
+ * Get the state of the current hidden columns - controlled by Responsive only
+ */
+ _responsiveOnlyHidden: function ()
+ {
+ var dt = this.s.dt;
+
+ return $.map( this.s.current, function (v, i) {
+ // If the column is hidden by DataTables then it can't be hidden by
+ // Responsive!
+ if ( dt.column(i).visible() === false ) {
+ return true;
+ }
+ return v;
+ } );
+ },
+
+ /**
+ * Set a column's visibility.
+ *
+ * We don't use DataTables' column visibility controls in order to ensure
+ * that column visibility can Responsive can no-exist. Since only IE8+ is
+ * supported (and all evergreen browsers of course) the control of the
+ * display attribute works well.
+ *
+ * @param {integer} col Column index
+ * @param {boolean} showHide Show or hide (true or false)
+ * @private
+ */
+ _setColumnVis: function ( col, showHide )
+ {
+ var that = this;
+ var dt = this.s.dt;
+ var display = showHide ? '' : 'none'; // empty string will remove the attr
+
+ $( dt.column( col ).header() )
+ .css( 'display', display )
+ .toggleClass('dtr-hidden', !showHide);
+
+ $( dt.column( col ).footer() )
+ .css( 'display', display )
+ .toggleClass('dtr-hidden', !showHide);
+
+ dt.column( col ).nodes().to$()
+ .css( 'display', display )
+ .toggleClass('dtr-hidden', !showHide);
+
+ // If the are child nodes stored, we might need to reinsert them
+ if ( ! $.isEmptyObject( this.s.childNodeStore ) ) {
+ dt.cells( null, col ).indexes().each( function (idx) {
+ that._childNodesRestore( dt, idx.row, idx.column );
+ } );
+ }
+ },
+
+
+ /**
+ * Update the cell tab indexes for keyboard accessibility. This is called on
+ * every table draw - that is potentially inefficient, but also the least
+ * complex option given that column visibility can change on the fly. Its a
+ * shame user-focus was removed from CSS 3 UI, as it would have solved this
+ * issue with a single CSS statement.
+ *
+ * @private
+ */
+ _tabIndexes: function ()
+ {
+ var dt = this.s.dt;
+ var cells = dt.cells( { page: 'current' } ).nodes().to$();
+ var ctx = dt.settings()[0];
+ var target = this.c.details.target;
+
+ cells.filter( '[data-dtr-keyboard]' ).removeData( '[data-dtr-keyboard]' );
+
+ if ( typeof target === 'number' ) {
+ dt.cells( null, target, { page: 'current' } ).nodes().to$()
+ .attr( 'tabIndex', ctx.iTabIndex )
+ .data( 'dtr-keyboard', 1 );
+ }
+ else {
+ // This is a bit of a hack - we need to limit the selected nodes to just
+ // those of this table
+ if ( target === 'td:first-child, th:first-child' ) {
+ target = '>td:first-child, >th:first-child';
+ }
+
+ $( target, dt.rows( { page: 'current' } ).nodes() )
+ .attr( 'tabIndex', ctx.iTabIndex )
+ .data( 'dtr-keyboard', 1 );
+ }
+ }
+} );
+
+
+/**
+ * List of default breakpoints. Each item in the array is an object with two
+ * properties:
+ *
+ * * `name` - the breakpoint name.
+ * * `width` - the breakpoint width
+ *
+ * @name Responsive.breakpoints
+ * @static
+ */
+Responsive.breakpoints = [
+ { name: 'desktop', width: Infinity },
+ { name: 'tablet-l', width: 1024 },
+ { name: 'tablet-p', width: 768 },
+ { name: 'mobile-l', width: 480 },
+ { name: 'mobile-p', width: 320 }
+];
+
+
+/**
+ * Display methods - functions which define how the hidden data should be shown
+ * in the table.
+ *
+ * @namespace
+ * @name Responsive.defaults
+ * @static
+ */
+Responsive.display = {
+ childRow: function ( row, update, render ) {
+ if ( update ) {
+ if ( $(row.node()).hasClass('parent') ) {
+ row.child( render(), 'child' ).show();
+
+ return true;
+ }
+ }
+ else {
+ if ( ! row.child.isShown() ) {
+ row.child( render(), 'child' ).show();
+ $( row.node() ).addClass( 'parent' );
+
+ return true;
+ }
+ else {
+ row.child( false );
+ $( row.node() ).removeClass( 'parent' );
+
+ return false;
+ }
+ }
+ },
+
+ childRowImmediate: function ( row, update, render ) {
+ if ( (! update && row.child.isShown()) || ! row.responsive.hasHidden() ) {
+ // User interaction and the row is show, or nothing to show
+ row.child( false );
+ $( row.node() ).removeClass( 'parent' );
+
+ return false;
+ }
+ else {
+ // Display
+ row.child( render(), 'child' ).show();
+ $( row.node() ).addClass( 'parent' );
+
+ return true;
+ }
+ },
+
+ // This is a wrapper so the modal options for Bootstrap and jQuery UI can
+ // have options passed into them. This specific one doesn't need to be a
+ // function but it is for consistency in the `modal` name
+ modal: function ( options ) {
+ return function ( row, update, render ) {
+ if ( ! update ) {
+ // Show a modal
+ var close = function () {
+ modal.remove(); // will tidy events for us
+ $(document).off( 'keypress.dtr' );
+ };
+
+ var modal = $('<div class="dtr-modal"/>')
+ .append( $('<div class="dtr-modal-display"/>')
+ .append( $('<div class="dtr-modal-content"/>')
+ .append( render() )
+ )
+ .append( $('<div class="dtr-modal-close">&times;</div>' )
+ .click( function () {
+ close();
+ } )
+ )
+ )
+ .append( $('<div class="dtr-modal-background"/>')
+ .click( function () {
+ close();
+ } )
+ )
+ .appendTo( 'body' );
+
+ $(document).on( 'keyup.dtr', function (e) {
+ if ( e.keyCode === 27 ) {
+ e.stopPropagation();
+
+ close();
+ }
+ } );
+ }
+ else {
+ $('div.dtr-modal-content')
+ .empty()
+ .append( render() );
+ }
+
+ if ( options && options.header ) {
+ $('div.dtr-modal-content').prepend(
+ '<h2>'+options.header( row )+'</h2>'
+ );
+ }
+ };
+ }
+};
+
+
+/**
+ * Display methods - functions which define how the hidden data should be shown
+ * in the table.
+ *
+ * @namespace
+ * @name Responsive.defaults
+ * @static
+ */
+Responsive.renderer = {
+ listHiddenNodes: function () {
+ return function ( api, rowIdx, columns ) {
+ var that = this;
+ var ul = $('<ul data-dtr-index="'+rowIdx+'" class="dtr-details"/>');
+ var found = false;
+
+ var data = $.each( columns, function ( i, col ) {
+ if ( col.hidden ) {
+ var klass = col.className ?
+ 'class="'+ col.className +'"' :
+ '';
+
+ $(
+ '<li '+klass+' data-dtr-index="'+col.columnIndex+'" data-dt-row="'+col.rowIndex+'" data-dt-column="'+col.columnIndex+'">'+
+ '<span class="dtr-title">'+
+ col.title+
+ '</span> '+
+ '</li>'
+ )
+ .append( $('<span class="dtr-data"/>').append( that._childNodes( api, col.rowIndex, col.columnIndex ) ) )// api.cell( col.rowIndex, col.columnIndex ).node().childNodes ) )
+ .appendTo( ul );
+
+ found = true;
+ }
+ } );
+
+ return found ?
+ ul :
+ false;
+ };
+ },
+
+ listHidden: function () {
+ return function ( api, rowIdx, columns ) {
+ var data = $.map( columns, function ( col ) {
+ var klass = col.className ?
+ 'class="'+ col.className +'"' :
+ '';
+
+ return col.hidden ?
+ '<li '+klass+' data-dtr-index="'+col.columnIndex+'" data-dt-row="'+col.rowIndex+'" data-dt-column="'+col.columnIndex+'">'+
+ '<span class="dtr-title">'+
+ col.title+
+ '</span> '+
+ '<span class="dtr-data">'+
+ col.data+
+ '</span>'+
+ '</li>' :
+ '';
+ } ).join('');
+
+ return data ?
+ $('<ul data-dtr-index="'+rowIdx+'" class="dtr-details"/>').append( data ) :
+ false;
+ }
+ },
+
+ tableAll: function ( options ) {
+ options = $.extend( {
+ tableClass: ''
+ }, options );
+
+ return function ( api, rowIdx, columns ) {
+ var data = $.map( columns, function ( col ) {
+ var klass = col.className ?
+ 'class="'+ col.className +'"' :
+ '';
+
+ return '<tr '+klass+' data-dt-row="'+col.rowIndex+'" data-dt-column="'+col.columnIndex+'">'+
+ '<td>'+col.title+':'+'</td> '+
+ '<td>'+col.data+'</td>'+
+ '</tr>';
+ } ).join('');
+
+ return $('<table class="'+options.tableClass+' dtr-details" width="100%"/>').append( data );
+ }
+ }
+};
+
+/**
+ * Responsive default settings for initialisation
+ *
+ * @namespace
+ * @name Responsive.defaults
+ * @static
+ */
+Responsive.defaults = {
+ /**
+ * List of breakpoints for the instance. Note that this means that each
+ * instance can have its own breakpoints. Additionally, the breakpoints
+ * cannot be changed once an instance has been creased.
+ *
+ * @type {Array}
+ * @default Takes the value of `Responsive.breakpoints`
+ */
+ breakpoints: Responsive.breakpoints,
+
+ /**
+ * Enable / disable auto hiding calculations. It can help to increase
+ * performance slightly if you disable this option, but all columns would
+ * need to have breakpoint classes assigned to them
+ *
+ * @type {Boolean}
+ * @default `true`
+ */
+ auto: true,
+
+ /**
+ * Details control. If given as a string value, the `type` property of the
+ * default object is set to that value, and the defaults used for the rest
+ * of the object - this is for ease of implementation.
+ *
+ * The object consists of the following properties:
+ *
+ * * `display` - A function that is used to show and hide the hidden details
+ * * `renderer` - function that is called for display of the child row data.
+ * The default function will show the data from the hidden columns
+ * * `target` - Used as the selector for what objects to attach the child
+ * open / close to
+ * * `type` - `false` to disable the details display, `inline` or `column`
+ * for the two control types
+ *
+ * @type {Object|string}
+ */
+ details: {
+ display: Responsive.display.childRow,
+
+ renderer: Responsive.renderer.listHidden(),
+
+ target: 0,
+
+ type: 'inline'
+ },
+
+ /**
+ * Orthogonal data request option. This is used to define the data type
+ * requested when Responsive gets the data to show in the child row.
+ *
+ * @type {String}
+ */
+ orthogonal: 'display'
+};
+
+
+/*
+ * API
+ */
+var Api = $.fn.dataTable.Api;
+
+// Doesn't do anything - work around for a bug in DT... Not documented
+Api.register( 'responsive()', function () {
+ return this;
+} );
+
+Api.register( 'responsive.index()', function ( li ) {
+ li = $(li);
+
+ return {
+ column: li.data('dtr-index'),
+ row: li.parent().data('dtr-index')
+ };
+} );
+
+Api.register( 'responsive.rebuild()', function () {
+ return this.iterator( 'table', function ( ctx ) {
+ if ( ctx._responsive ) {
+ ctx._responsive._classLogic();
+ }
+ } );
+} );
+
+Api.register( 'responsive.recalc()', function () {
+ return this.iterator( 'table', function ( ctx ) {
+ if ( ctx._responsive ) {
+ ctx._responsive._resizeAuto();
+ ctx._responsive._resize();
+ }
+ } );
+} );
+
+Api.register( 'responsive.hasHidden()', function () {
+ var ctx = this.context[0];
+
+ return ctx._responsive ?
+ $.inArray( false, ctx._responsive._responsiveOnlyHidden() ) !== -1 :
+ false;
+} );
+
+Api.registerPlural( 'columns().responsiveHidden()', 'column().responsiveHidden()', function () {
+ return this.iterator( 'column', function ( settings, column ) {
+ return settings._responsive ?
+ settings._responsive._responsiveOnlyHidden()[ column ] :
+ false;
+ }, 1 );
+} );
+
+
+/**
+ * Version information
+ *
+ * @name Responsive.version
+ * @static
+ */
+Responsive.version = '2.4.1';
+
+
+$.fn.dataTable.Responsive = Responsive;
+$.fn.DataTable.Responsive = Responsive;
+
+// Attach a listener to the document which listens for DataTables initialisation
+// events so we can automatically initialise
+$(document).on( 'preInit.dt.dtr', function (e, settings, json) {
+ if ( e.namespace !== 'dt' ) {
+ return;
+ }
+
+ if ( $(settings.nTable).hasClass( 'responsive' ) ||
+ $(settings.nTable).hasClass( 'dt-responsive' ) ||
+ settings.oInit.responsive ||
+ DataTable.defaults.responsive
+ ) {
+ var init = settings.oInit.responsive;
+
+ if ( init !== false ) {
+ new Responsive( settings, $.isPlainObject( init ) ? init : {} );
+ }
+ }
+} );
+
+
+return DataTable;
+}));
diff --git a/public/assets/js/DataTables/Responsive-2.4.1/js/dataTables.responsive.min.js b/public/assets/js/DataTables/Responsive-2.4.1/js/dataTables.responsive.min.js
new file mode 100644
index 0000000..18cbfc3
--- /dev/null
+++ b/public/assets/js/DataTables/Responsive-2.4.1/js/dataTables.responsive.min.js
@@ -0,0 +1,4 @@
+/*! Responsive 2.4.1
+ * © SpryMedia Ltd - datatables.net/license
+ */
+!function(n){var i,r;"function"==typeof define&&define.amd?define(["jquery","datatables.net"],function(e){return n(e,window,document)}):"object"==typeof exports?(i=require("jquery"),r=function(e,t){t.fn.dataTable||require("datatables.net")(e,t)},"undefined"!=typeof window?module.exports=function(e,t){return e=e||window,t=t||i(e),r(e,t),n(t,e,e.document)}:(r(window,i),module.exports=n(i,window,window.document))):n(jQuery,window,document)}(function(f,m,o,h){"use strict";function d(e,t){if(!r.versionCheck||!r.versionCheck("1.10.10"))throw"DataTables Responsive requires DataTables 1.10.10 or newer";this.s={childNodeStore:{},columns:[],current:[],dt:new r.Api(e)},this.s.dt.settings()[0].responsive||(t&&"string"==typeof t.details?t.details={type:t.details}:t&&!1===t.details?t.details={type:!1}:t&&!0===t.details&&(t.details={type:"inline"}),this.c=f.extend(!0,{},d.defaults,r.defaults.responsive,t),(e.responsive=this)._constructor())}var r=f.fn.dataTable,e=(f.extend(d.prototype,{_constructor:function(){var s=this,i=this.s.dt,e=i.settings()[0],t=f(m).innerWidth(),e=(i.settings()[0]._responsive=this,f(m).on("resize.dtr orientationchange.dtr",r.util.throttle(function(){var e=f(m).innerWidth();e!==t&&(s._resize(),t=e)})),e.oApi._fnCallbackReg(e,"aoRowCreatedCallback",function(e,t,n){-1!==f.inArray(!1,s.s.current)&&f(">td, >th",e).each(function(e){e=i.column.index("toData",e);!1===s.s.current[e]&&f(this).css("display","none")})}),i.on("destroy.dtr",function(){i.off(".dtr"),f(i.table().body()).off(".dtr"),f(m).off("resize.dtr orientationchange.dtr"),i.cells(".dtr-control").nodes().to$().removeClass("dtr-control"),f.each(s.s.current,function(e,t){!1===t&&s._setColumnVis(e,!0)})}),this.c.breakpoints.sort(function(e,t){return e.width<t.width?1:e.width>t.width?-1:0}),this._classLogic(),this._resizeAuto(),this.c.details);!1!==e.type&&(s._detailsInit(),i.on("column-visibility.dtr",function(){s._timer&&clearTimeout(s._timer),s._timer=setTimeout(function(){s._timer=null,s._classLogic(),s._resizeAuto(),s._resize(!0),s._redrawChildren()},100)}),i.on("draw.dtr",function(){s._redrawChildren()}),f(i.table().node()).addClass("dtr-"+e.type)),i.on("column-reorder.dtr",function(e,t,n){s._classLogic(),s._resizeAuto(),s._resize(!0)}),i.on("column-sizing.dtr",function(){s._resizeAuto(),s._resize()}),i.on("column-calc.dt",function(e,t){for(var n=s.s.current,i=0;i<n.length;i++){var r=t.visible.indexOf(i);!1===n[i]&&0<=r&&t.visible.splice(r,1)}}),i.on("preXhr.dtr",function(){var e=[];i.rows().every(function(){this.child.isShown()&&e.push(this.id(!0))}),i.one("draw.dtr",function(){s._resizeAuto(),s._resize(),i.rows(e).every(function(){s._detailsDisplay(this,!1)})})}),i.on("draw.dtr",function(){s._controlClass()}).on("init.dtr",function(e,t,n){"dt"===e.namespace&&(s._resizeAuto(),s._resize(),f.inArray(!1,s.s.current))&&i.columns.adjust()}),this._resize()},_childNodes:function(e,t,n){var i=t+"-"+n;if(this.s.childNodeStore[i])return this.s.childNodeStore[i];for(var r=[],s=e.cell(t,n).node().childNodes,o=0,d=s.length;o<d;o++)r.push(s[o]);return this.s.childNodeStore[i]=r},_childNodesRestore:function(e,t,n){var i=t+"-"+n;if(this.s.childNodeStore[i]){for(var r=e.cell(t,n).node(),s=this.s.childNodeStore[i][0].parentNode.childNodes,o=[],d=0,a=s.length;d<a;d++)o.push(s[d]);for(var l=0,c=o.length;l<c;l++)r.appendChild(o[l]);this.s.childNodeStore[i]=h}},_columnsVisiblity:function(n){for(var i=this.s.dt,e=this.s.columns,t=e.map(function(e,t){return{columnIdx:t,priority:e.priority}}).sort(function(e,t){return e.priority!==t.priority?e.priority-t.priority:e.columnIdx-t.columnIdx}),r=f.map(e,function(e,t){return!1===i.column(t).visible()?"not-visible":(!e.auto||null!==e.minWidth)&&(!0===e.auto?"-":-1!==f.inArray(n,e.includeIn))}),s=0,o=0,d=r.length;o<d;o++)!0===r[o]&&(s+=e[o].minWidth);var a=i.settings()[0].oScroll,a=a.sY||a.sX?a.iBarWidth:0,l=i.table().container().offsetWidth-a-s;for(o=0,d=r.length;o<d;o++)e[o].control&&(l-=e[o].minWidth);var c=!1;for(o=0,d=t.length;o<d;o++){var u=t[o].columnIdx;"-"===r[u]&&!e[u].control&&e[u].minWidth&&(c||l-e[u].minWidth<0?r[u]=!(c=!0):r[u]=!0,l-=e[u].minWidth)}var h=!1;for(o=0,d=e.length;o<d;o++)if(!e[o].control&&!e[o].never&&!1===r[o]){h=!0;break}for(o=0,d=e.length;o<d;o++)e[o].control&&(r[o]=h),"not-visible"===r[o]&&(r[o]=!1);return-1===f.inArray(!0,r)&&(r[0]=!0),r},_classLogic:function(){function d(e,t,n,i){var r,s,o;if(n){if("max-"===n)for(r=a._find(t).width,s=0,o=l.length;s<o;s++)l[s].width<=r&&u(e,l[s].name);else if("min-"===n)for(r=a._find(t).width,s=0,o=l.length;s<o;s++)l[s].width>=r&&u(e,l[s].name);else if("not-"===n)for(s=0,o=l.length;s<o;s++)-1===l[s].name.indexOf(i)&&u(e,l[s].name)}else c[e].includeIn.push(t)}var a=this,l=this.c.breakpoints,i=this.s.dt,c=i.columns().eq(0).map(function(e){var t=this.column(e),n=t.header().className,e=i.settings()[0].aoColumns[e].responsivePriority,t=t.header().getAttribute("data-priority");return e===h&&(e=t===h||null===t?1e4:+t),{className:n,includeIn:[],auto:!1,control:!1,never:!!n.match(/\b(dtr\-)?never\b/),priority:e}}),u=function(e,t){e=c[e].includeIn;-1===f.inArray(t,e)&&e.push(t)};c.each(function(e,r){for(var t=e.className.split(" "),s=!1,n=0,i=t.length;n<i;n++){var o=t[n].trim();if("all"===o||"dtr-all"===o)return s=!0,void(e.includeIn=f.map(l,function(e){return e.name}));if("none"===o||"dtr-none"===o||e.never)return void(s=!0);if("control"===o||"dtr-control"===o)return s=!0,void(e.control=!0);f.each(l,function(e,t){var n=t.name.split("-"),i=new RegExp("(min\\-|max\\-|not\\-)?("+n[0]+")(\\-[_a-zA-Z0-9])?"),i=o.match(i);i&&(s=!0,i[2]===n[0]&&i[3]==="-"+n[1]?d(r,t.name,i[1],i[2]+i[3]):i[2]!==n[0]||i[3]||d(r,t.name,i[1],i[2]))})}s||(e.auto=!0)}),this.s.columns=c},_controlClass:function(){var e,t,n;"inline"===this.c.details.type&&(e=this.s.dt,t=this.s.current,n=f.inArray(!0,t),e.cells(null,function(e){return e!==n},{page:"current"}).nodes().to$().filter(".dtr-control").removeClass("dtr-control"),e.cells(null,n,{page:"current"}).nodes().to$().addClass("dtr-control"))},_detailsDisplay:function(e,t){var n,i=this,r=this.s.dt,s=this.c.details;s&&!1!==s.type&&(n="string"==typeof s.renderer?d.renderer[s.renderer]():s.renderer,!0!==(s=s.display(e,t,function(){return n.call(i,r,e[0],i._detailsObj(e[0]))}))&&!1!==s||f(r.table().node()).triggerHandler("responsive-display.dt",[r,e,s,t]))},_detailsInit:function(){var n=this,i=this.s.dt,e=this.c.details,r=("inline"===e.type&&(e.target="td.dtr-control, th.dtr-control"),i.on("draw.dtr",function(){n._tabIndexes()}),n._tabIndexes(),f(i.table().body()).on("keyup.dtr","td, th",function(e){13===e.keyCode&&f(this).data("dtr-keyboard")&&f(this).click()}),e.target),e="string"==typeof r?r:"td, th";r===h&&null===r||f(i.table().body()).on("click.dtr mousedown.dtr mouseup.dtr",e,function(e){if(f(i.table().node()).hasClass("collapsed")&&-1!==f.inArray(f(this).closest("tr").get(0),i.rows().nodes().toArray())){if("number"==typeof r){var t=r<0?i.columns().eq(0).length+r:r;if(i.cell(this).index().column!==t)return}t=i.row(f(this).closest("tr"));"click"===e.type?n._detailsDisplay(t,!1):"mousedown"===e.type?f(this).css("outline","none"):"mouseup"===e.type&&f(this).trigger("blur").css("outline","")}})},_detailsObj:function(n){var i=this,r=this.s.dt;return f.map(this.s.columns,function(e,t){if(!e.never&&!e.control)return{className:(e=r.settings()[0].aoColumns[t]).sClass,columnIndex:t,data:r.cell(n,t).render(i.c.orthogonal),hidden:r.column(t).visible()&&!i.s.current[t],rowIndex:n,title:null!==e.sTitle?e.sTitle:f(r.column(t).header()).text()}})},_find:function(e){for(var t=this.c.breakpoints,n=0,i=t.length;n<i;n++)if(t[n].name===e)return t[n]},_redrawChildren:function(){var n=this,i=this.s.dt;i.rows({page:"current"}).iterator("row",function(e,t){i.row(t);n._detailsDisplay(i.row(t),!0)})},_resize:function(n){for(var e,i=this,t=this.s.dt,r=f(m).innerWidth(),s=this.c.breakpoints,o=s[0].name,d=this.s.columns,a=this.s.current.slice(),l=s.length-1;0<=l;l--)if(r<=s[l].width){o=s[l].name;break}var c=this._columnsVisiblity(o),u=(this.s.current=c,!1);for(l=0,e=d.length;l<e;l++)if(!1===c[l]&&!d[l].never&&!d[l].control&&!1==!t.column(l).visible()){u=!0;break}f(t.table().node()).toggleClass("collapsed",u);var h=!1,p=0;t.columns().eq(0).each(function(e,t){!0===c[t]&&p++,!n&&c[t]===a[t]||(h=!0,i._setColumnVis(e,c[t]))}),this._redrawChildren(),h&&(f(t.table().node()).trigger("responsive-resize.dt",[t,this.s.current]),0===t.page.info().recordsDisplay)&&f("td",t.table().body()).eq(0).attr("colspan",p),i._controlClass()},_resizeAuto:function(){var e,t,n,i,r,s=this.s.dt,o=this.s.columns,d=this;this.c.auto&&-1!==f.inArray(!0,f.map(o,function(e){return e.auto}))&&(f.isEmptyObject(this.s.childNodeStore)||f.each(this.s.childNodeStore,function(e){e=e.split("-");d._childNodesRestore(s,+e[0],+e[1])}),s.table().node().offsetWidth,s.columns,e=s.table().node().cloneNode(!1),t=f(s.table().header().cloneNode(!1)).appendTo(e),i=f(s.table().body()).clone(!1,!1).empty().appendTo(e),e.style.width="auto",n=s.columns().header().filter(function(e){return s.column(e).visible()}).to$().clone(!1).css("display","table-cell").css("width","auto").css("min-width",0),f(i).append(f(s.rows({page:"current"}).nodes()).clone(!1)).find("th, td").css("display",""),(i=s.table().footer())&&(i=f(i.cloneNode(!1)).appendTo(e),r=s.columns().footer().filter(function(e){return s.column(e).visible()}).to$().clone(!1).css("display","table-cell"),f("<tr/>").append(r).appendTo(i)),f("<tr/>").append(n).appendTo(t),"inline"===this.c.details.type&&f(e).addClass("dtr-inline collapsed"),f(e).find("[name]").removeAttr("name"),f(e).css("position","relative"),(r=f("<div/>").css({width:1,height:1,overflow:"hidden",clear:"both"}).append(e)).insertBefore(s.table().node()),n.each(function(e){e=s.column.index("fromVisible",e);o[e].minWidth=this.offsetWidth||0}),r.remove())},_responsiveOnlyHidden:function(){var n=this.s.dt;return f.map(this.s.current,function(e,t){return!1===n.column(t).visible()||e})},_setColumnVis:function(e,t){var n=this,i=this.s.dt,r=t?"":"none";f(i.column(e).header()).css("display",r).toggleClass("dtr-hidden",!t),f(i.column(e).footer()).css("display",r).toggleClass("dtr-hidden",!t),i.column(e).nodes().to$().css("display",r).toggleClass("dtr-hidden",!t),f.isEmptyObject(this.s.childNodeStore)||i.cells(null,e).indexes().each(function(e){n._childNodesRestore(i,e.row,e.column)})},_tabIndexes:function(){var e=this.s.dt,t=e.cells({page:"current"}).nodes().to$(),n=e.settings()[0],i=this.c.details.target;t.filter("[data-dtr-keyboard]").removeData("[data-dtr-keyboard]"),("number"==typeof i?e.cells(null,i,{page:"current"}).nodes().to$():f(i="td:first-child, th:first-child"===i?">td:first-child, >th:first-child":i,e.rows({page:"current"}).nodes())).attr("tabIndex",n.iTabIndex).data("dtr-keyboard",1)}}),d.defaults={breakpoints:d.breakpoints=[{name:"desktop",width:1/0},{name:"tablet-l",width:1024},{name:"tablet-p",width:768},{name:"mobile-l",width:480},{name:"mobile-p",width:320}],auto:!0,details:{display:(d.display={childRow:function(e,t,n){return t?f(e.node()).hasClass("parent")?(e.child(n(),"child").show(),!0):void 0:e.child.isShown()?(e.child(!1),f(e.node()).removeClass("parent"),!1):(e.child(n(),"child").show(),f(e.node()).addClass("parent"),!0)},childRowImmediate:function(e,t,n){return!t&&e.child.isShown()||!e.responsive.hasHidden()?(e.child(!1),f(e.node()).removeClass("parent"),!1):(e.child(n(),"child").show(),f(e.node()).addClass("parent"),!0)},modal:function(s){return function(e,t,n){var i,r;t?f("div.dtr-modal-content").empty().append(n()):(i=function(){r.remove(),f(o).off("keypress.dtr")},r=f('<div class="dtr-modal"/>').append(f('<div class="dtr-modal-display"/>').append(f('<div class="dtr-modal-content"/>').append(n())).append(f('<div class="dtr-modal-close">&times;</div>').click(function(){i()}))).append(f('<div class="dtr-modal-background"/>').click(function(){i()})).appendTo("body"),f(o).on("keyup.dtr",function(e){27===e.keyCode&&(e.stopPropagation(),i())})),s&&s.header&&f("div.dtr-modal-content").prepend("<h2>"+s.header(e)+"</h2>")}}}).childRow,renderer:(d.renderer={listHiddenNodes:function(){return function(i,e,t){var r=this,s=f('<ul data-dtr-index="'+e+'" class="dtr-details"/>'),o=!1;f.each(t,function(e,t){var n;t.hidden&&(n=t.className?'class="'+t.className+'"':"",f("<li "+n+' data-dtr-index="'+t.columnIndex+'" data-dt-row="'+t.rowIndex+'" data-dt-column="'+t.columnIndex+'"><span class="dtr-title">'+t.title+"</span> </li>").append(f('<span class="dtr-data"/>').append(r._childNodes(i,t.rowIndex,t.columnIndex))).appendTo(s),o=!0)});return!!o&&s}},listHidden:function(){return function(e,t,n){n=f.map(n,function(e){var t=e.className?'class="'+e.className+'"':"";return e.hidden?"<li "+t+' data-dtr-index="'+e.columnIndex+'" data-dt-row="'+e.rowIndex+'" data-dt-column="'+e.columnIndex+'"><span class="dtr-title">'+e.title+'</span> <span class="dtr-data">'+e.data+"</span></li>":""}).join("");return!!n&&f('<ul data-dtr-index="'+t+'" class="dtr-details"/>').append(n)}},tableAll:function(i){return i=f.extend({tableClass:""},i),function(e,t,n){n=f.map(n,function(e){return"<tr "+(e.className?'class="'+e.className+'"':"")+' data-dt-row="'+e.rowIndex+'" data-dt-column="'+e.columnIndex+'"><td>'+e.title+":</td> <td>"+e.data+"</td></tr>"}).join("");return f('<table class="'+i.tableClass+' dtr-details" width="100%"/>').append(n)}}}).listHidden(),target:0,type:"inline"},orthogonal:"display"},f.fn.dataTable.Api);return e.register("responsive()",function(){return this}),e.register("responsive.index()",function(e){return{column:(e=f(e)).data("dtr-index"),row:e.parent().data("dtr-index")}}),e.register("responsive.rebuild()",function(){return this.iterator("table",function(e){e._responsive&&e._responsive._classLogic()})}),e.register("responsive.recalc()",function(){return this.iterator("table",function(e){e._responsive&&(e._responsive._resizeAuto(),e._responsive._resize())})}),e.register("responsive.hasHidden()",function(){var e=this.context[0];return!!e._responsive&&-1!==f.inArray(!1,e._responsive._responsiveOnlyHidden())}),e.registerPlural("columns().responsiveHidden()","column().responsiveHidden()",function(){return this.iterator("column",function(e,t){return!!e._responsive&&e._responsive._responsiveOnlyHidden()[t]},1)}),d.version="2.4.1",f.fn.dataTable.Responsive=d,f.fn.DataTable.Responsive=d,f(o).on("preInit.dt.dtr",function(e,t,n){"dt"===e.namespace&&(f(t.nTable).hasClass("responsive")||f(t.nTable).hasClass("dt-responsive")||t.oInit.responsive||r.defaults.responsive)&&!1!==(e=t.oInit.responsive)&&new d(t,f.isPlainObject(e)?e:{})}),r}); \ No newline at end of file
diff --git a/public/assets/js/DataTables/Responsive-2.4.1/js/responsive.bootstrap.js b/public/assets/js/DataTables/Responsive-2.4.1/js/responsive.bootstrap.js
new file mode 100644
index 0000000..bacdd36
--- /dev/null
+++ b/public/assets/js/DataTables/Responsive-2.4.1/js/responsive.bootstrap.js
@@ -0,0 +1,102 @@
+/*! Bootstrap integration for DataTables' Responsive
+ * © SpryMedia Ltd - datatables.net/license
+ */
+
+(function( factory ){
+ if ( typeof define === 'function' && define.amd ) {
+ // AMD
+ define( ['jquery', 'datatables.net-bs', 'datatables.net-responsive'], function ( $ ) {
+ return factory( $, window, document );
+ } );
+ }
+ else if ( typeof exports === 'object' ) {
+ // CommonJS
+ var jq = require('jquery');
+ var cjsRequires = function (root, $) {
+ if ( ! $.fn.dataTable ) {
+ require('datatables.net-bs')(root, $);
+ }
+
+ if ( ! $.fn.dataTable.Responsive ) {
+ require('datatables.net-responsive')(root, $);
+ }
+ };
+
+ if (typeof window !== 'undefined') {
+ module.exports = function (root, $) {
+ if ( ! root ) {
+ // CommonJS environments without a window global must pass a
+ // root. This will give an error otherwise
+ root = window;
+ }
+
+ if ( ! $ ) {
+ $ = jq( root );
+ }
+
+ cjsRequires( root, $ );
+ return factory( $, root, root.document );
+ };
+ }
+ else {
+ cjsRequires( window, jq );
+ module.exports = factory( jq, window, window.document );
+ }
+ }
+ else {
+ // Browser
+ factory( jQuery, window, document );
+ }
+}(function( $, window, document, undefined ) {
+'use strict';
+var DataTable = $.fn.dataTable;
+
+
+
+var _display = DataTable.Responsive.display;
+var _original = _display.modal;
+var _modal = $(
+ '<div class="modal fade dtr-bs-modal" role="dialog">'+
+ '<div class="modal-dialog" role="document">'+
+ '<div class="modal-content">'+
+ '<div class="modal-header">'+
+ '<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>'+
+ '</div>'+
+ '<div class="modal-body"/>'+
+ '</div>'+
+ '</div>'+
+ '</div>'
+);
+
+_display.modal = function ( options ) {
+ return function ( row, update, render ) {
+ if ( ! $.fn.modal ) {
+ _original( row, update, render );
+ }
+ else {
+ if ( ! update ) {
+ if ( options && options.header ) {
+ var header = _modal.find('div.modal-header');
+ var button = header.find('button').detach();
+
+ header
+ .empty()
+ .append( '<h4 class="modal-title">'+options.header( row )+'</h4>' )
+ .prepend( button );
+ }
+
+ _modal.find( 'div.modal-body' )
+ .empty()
+ .append( render() );
+
+ _modal
+ .appendTo( 'body' )
+ .modal();
+ }
+ }
+ };
+};
+
+
+return DataTable;
+}));
diff --git a/public/assets/js/DataTables/Responsive-2.4.1/js/responsive.bootstrap.min.js b/public/assets/js/DataTables/Responsive-2.4.1/js/responsive.bootstrap.min.js
new file mode 100644
index 0000000..f810ce8
--- /dev/null
+++ b/public/assets/js/DataTables/Responsive-2.4.1/js/responsive.bootstrap.min.js
@@ -0,0 +1,4 @@
+/*! Bootstrap integration for DataTables' Responsive
+ * © SpryMedia Ltd - datatables.net/license
+ */
+!function(a){var n,o;"function"==typeof define&&define.amd?define(["jquery","datatables.net-bs","datatables.net-responsive"],function(e){return a(e,window,document)}):"object"==typeof exports?(n=require("jquery"),o=function(e,d){d.fn.dataTable||require("datatables.net-bs")(e,d),d.fn.dataTable.Responsive||require("datatables.net-responsive")(e,d)},"undefined"!=typeof window?module.exports=function(e,d){return e=e||window,d=d||n(e),o(e,d),a(d,0,e.document)}:(o(window,n),module.exports=a(n,window,window.document))):a(jQuery,window,document)}(function(i,e,d,a){"use strict";var n=i.fn.dataTable,o=n.Responsive.display,s=o.modal,l=i('<div class="modal fade dtr-bs-modal" role="dialog"><div class="modal-dialog" role="document"><div class="modal-content"><div class="modal-header"><button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button></div><div class="modal-body"/></div></div></div>');return o.modal=function(t){return function(e,d,a){var n,o;i.fn.modal?d||(t&&t.header&&(o=(n=l.find("div.modal-header")).find("button").detach(),n.empty().append('<h4 class="modal-title">'+t.header(e)+"</h4>").prepend(o)),l.find("div.modal-body").empty().append(a()),l.appendTo("body").modal()):s(e,d,a)}},n}); \ No newline at end of file
diff --git a/public/assets/js/DataTables/Responsive-2.4.1/js/responsive.bootstrap4.js b/public/assets/js/DataTables/Responsive-2.4.1/js/responsive.bootstrap4.js
new file mode 100644
index 0000000..6fafa7d
--- /dev/null
+++ b/public/assets/js/DataTables/Responsive-2.4.1/js/responsive.bootstrap4.js
@@ -0,0 +1,102 @@
+/*! Bootstrap 4 integration for DataTables' Responsive
+ * © SpryMedia Ltd - datatables.net/license
+ */
+
+(function( factory ){
+ if ( typeof define === 'function' && define.amd ) {
+ // AMD
+ define( ['jquery', 'datatables.net-bs4', 'datatables.net-responsive'], function ( $ ) {
+ return factory( $, window, document );
+ } );
+ }
+ else if ( typeof exports === 'object' ) {
+ // CommonJS
+ var jq = require('jquery');
+ var cjsRequires = function (root, $) {
+ if ( ! $.fn.dataTable ) {
+ require('datatables.net-bs4')(root, $);
+ }
+
+ if ( ! $.fn.dataTable.Responsive ) {
+ require('datatables.net-responsive')(root, $);
+ }
+ };
+
+ if (typeof window !== 'undefined') {
+ module.exports = function (root, $) {
+ if ( ! root ) {
+ // CommonJS environments without a window global must pass a
+ // root. This will give an error otherwise
+ root = window;
+ }
+
+ if ( ! $ ) {
+ $ = jq( root );
+ }
+
+ cjsRequires( root, $ );
+ return factory( $, root, root.document );
+ };
+ }
+ else {
+ cjsRequires( window, jq );
+ module.exports = factory( jq, window, window.document );
+ }
+ }
+ else {
+ // Browser
+ factory( jQuery, window, document );
+ }
+}(function( $, window, document, undefined ) {
+'use strict';
+var DataTable = $.fn.dataTable;
+
+
+
+var _display = DataTable.Responsive.display;
+var _original = _display.modal;
+var _modal = $(
+ '<div class="modal fade dtr-bs-modal" role="dialog">'+
+ '<div class="modal-dialog" role="document">'+
+ '<div class="modal-content">'+
+ '<div class="modal-header">'+
+ '<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>'+
+ '</div>'+
+ '<div class="modal-body"/>'+
+ '</div>'+
+ '</div>'+
+ '</div>'
+);
+
+_display.modal = function ( options ) {
+ return function ( row, update, render ) {
+ if ( ! $.fn.modal ) {
+ _original( row, update, render );
+ }
+ else {
+ if ( ! update ) {
+ if ( options && options.header ) {
+ var header = _modal.find('div.modal-header');
+ var button = header.find('button').detach();
+
+ header
+ .empty()
+ .append( '<h4 class="modal-title">'+options.header( row )+'</h4>' )
+ .append( button );
+ }
+
+ _modal.find( 'div.modal-body' )
+ .empty()
+ .append( render() );
+
+ _modal
+ .appendTo( 'body' )
+ .modal();
+ }
+ }
+ };
+};
+
+
+return DataTable;
+}));
diff --git a/public/assets/js/DataTables/Responsive-2.4.1/js/responsive.bootstrap4.min.js b/public/assets/js/DataTables/Responsive-2.4.1/js/responsive.bootstrap4.min.js
new file mode 100644
index 0000000..f94521b
--- /dev/null
+++ b/public/assets/js/DataTables/Responsive-2.4.1/js/responsive.bootstrap4.min.js
@@ -0,0 +1,4 @@
+/*! Bootstrap 4 integration for DataTables' Responsive
+ * © SpryMedia Ltd - datatables.net/license
+ */
+!function(a){var n,o;"function"==typeof define&&define.amd?define(["jquery","datatables.net-bs4","datatables.net-responsive"],function(e){return a(e,window,document)}):"object"==typeof exports?(n=require("jquery"),o=function(e,d){d.fn.dataTable||require("datatables.net-bs4")(e,d),d.fn.dataTable.Responsive||require("datatables.net-responsive")(e,d)},"undefined"!=typeof window?module.exports=function(e,d){return e=e||window,d=d||n(e),o(e,d),a(d,0,e.document)}:(o(window,n),module.exports=a(n,window,window.document))):a(jQuery,window,document)}(function(i,e,d,a){"use strict";var n=i.fn.dataTable,o=n.Responsive.display,s=o.modal,l=i('<div class="modal fade dtr-bs-modal" role="dialog"><div class="modal-dialog" role="document"><div class="modal-content"><div class="modal-header"><button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button></div><div class="modal-body"/></div></div></div>');return o.modal=function(t){return function(e,d,a){var n,o;i.fn.modal?d||(t&&t.header&&(o=(n=l.find("div.modal-header")).find("button").detach(),n.empty().append('<h4 class="modal-title">'+t.header(e)+"</h4>").append(o)),l.find("div.modal-body").empty().append(a()),l.appendTo("body").modal()):s(e,d,a)}},n}); \ No newline at end of file
diff --git a/public/assets/js/DataTables/Responsive-2.4.1/js/responsive.bootstrap5.js b/public/assets/js/DataTables/Responsive-2.4.1/js/responsive.bootstrap5.js
new file mode 100644
index 0000000..aa4c2d3
--- /dev/null
+++ b/public/assets/js/DataTables/Responsive-2.4.1/js/responsive.bootstrap5.js
@@ -0,0 +1,118 @@
+/*! Bootstrap 5 integration for DataTables' Responsive
+ * © SpryMedia Ltd - datatables.net/license
+ */
+
+(function( factory ){
+ if ( typeof define === 'function' && define.amd ) {
+ // AMD
+ define( ['jquery', 'datatables.net-bs5', 'datatables.net-responsive'], function ( $ ) {
+ return factory( $, window, document );
+ } );
+ }
+ else if ( typeof exports === 'object' ) {
+ // CommonJS
+ var jq = require('jquery');
+ var cjsRequires = function (root, $) {
+ if ( ! $.fn.dataTable ) {
+ require('datatables.net-bs5')(root, $);
+ }
+
+ if ( ! $.fn.dataTable.Responsive ) {
+ require('datatables.net-responsive')(root, $);
+ }
+ };
+
+ if (typeof window !== 'undefined') {
+ module.exports = function (root, $) {
+ if ( ! root ) {
+ // CommonJS environments without a window global must pass a
+ // root. This will give an error otherwise
+ root = window;
+ }
+
+ if ( ! $ ) {
+ $ = jq( root );
+ }
+
+ cjsRequires( root, $ );
+ return factory( $, root, root.document );
+ };
+ }
+ else {
+ cjsRequires( window, jq );
+ module.exports = factory( jq, window, window.document );
+ }
+ }
+ else {
+ // Browser
+ factory( jQuery, window, document );
+ }
+}(function( $, window, document, undefined ) {
+'use strict';
+var DataTable = $.fn.dataTable;
+
+
+
+var _display = DataTable.Responsive.display;
+var _original = _display.modal;
+var _modal = $(
+ '<div class="modal fade dtr-bs-modal" role="dialog">'+
+ '<div class="modal-dialog" role="document">'+
+ '<div class="modal-content">'+
+ '<div class="modal-header">'+
+ '<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>'+
+ '</div>'+
+ '<div class="modal-body"/>'+
+ '</div>'+
+ '</div>'+
+ '</div>'
+);
+var modal;
+
+// Note this could be undefined at the time of initialisation - the
+// DataTable.Responsive.bootstrap function can be used to set a different
+// bootstrap object
+var _bs = window.bootstrap;
+
+DataTable.Responsive.bootstrap = function (bs) {
+ _bs = bs;
+}
+
+_display.modal = function ( options ) {
+ if (! modal) {
+ modal = new _bs.Modal(_modal[0]);
+ }
+
+ return function ( row, update, render ) {
+ if ( ! $.fn.modal ) {
+ _original( row, update, render );
+ }
+ else {
+ if ( ! update ) {
+ if ( options && options.header ) {
+ var header = _modal.find('div.modal-header');
+ var button = header.find('button').detach();
+
+ header
+ .empty()
+ .append( '<h4 class="modal-title">'+options.header( row )+'</h4>' )
+ .append( button );
+ }
+
+ _modal.find( 'div.modal-body' )
+ .empty()
+ .append( render() );
+
+ _modal
+ .appendTo( 'body' )
+ .modal();
+
+ modal.show();
+ }
+ }
+ };
+};
+
+
+return DataTable;
+}));
diff --git a/public/assets/js/DataTables/Responsive-2.4.1/js/responsive.bootstrap5.min.js b/public/assets/js/DataTables/Responsive-2.4.1/js/responsive.bootstrap5.min.js
new file mode 100644
index 0000000..bf96c79
--- /dev/null
+++ b/public/assets/js/DataTables/Responsive-2.4.1/js/responsive.bootstrap5.min.js
@@ -0,0 +1,4 @@
+/*! Bootstrap 5 integration for DataTables' Responsive
+ * © SpryMedia Ltd - datatables.net/license
+ */
+!function(o){var a,n;"function"==typeof define&&define.amd?define(["jquery","datatables.net-bs5","datatables.net-responsive"],function(e){return o(e,window,document)}):"object"==typeof exports?(a=require("jquery"),n=function(e,d){d.fn.dataTable||require("datatables.net-bs5")(e,d),d.fn.dataTable.Responsive||require("datatables.net-responsive")(e,d)},"undefined"!=typeof window?module.exports=function(e,d){return e=e||window,d=d||a(e),n(e,d),o(d,e,e.document)}:(n(window,a),module.exports=o(a,window,window.document))):o(jQuery,window,document)}(function(i,e,d,o){"use strict";var s,a=i.fn.dataTable,n=a.Responsive.display,l=n.modal,r=i('<div class="modal fade dtr-bs-modal" role="dialog"><div class="modal-dialog" role="document"><div class="modal-content"><div class="modal-header"><button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button></div><div class="modal-body"/></div></div></div>'),u=e.bootstrap;return a.Responsive.bootstrap=function(e){u=e},n.modal=function(t){return s=s||new u.Modal(r[0]),function(e,d,o){var a,n;i.fn.modal?d||(t&&t.header&&(n=(a=r.find("div.modal-header")).find("button").detach(),a.empty().append('<h4 class="modal-title">'+t.header(e)+"</h4>").append(n)),r.find("div.modal-body").empty().append(o()),r.appendTo("body").modal(),s.show()):l(e,d,o)}},a}); \ No newline at end of file
diff --git a/public/assets/js/DataTables/Responsive-2.4.1/js/responsive.bulma.js b/public/assets/js/DataTables/Responsive-2.4.1/js/responsive.bulma.js
new file mode 100644
index 0000000..354b04d
--- /dev/null
+++ b/public/assets/js/DataTables/Responsive-2.4.1/js/responsive.bulma.js
@@ -0,0 +1,104 @@
+/*! Bulma integration for DataTables' Responsive
+ * © SpryMedia Ltd - datatables.net/license
+ */
+
+(function( factory ){
+ if ( typeof define === 'function' && define.amd ) {
+ // AMD
+ define( ['jquery', 'datatables.net-bm', 'datatables.net-responsive'], function ( $ ) {
+ return factory( $, window, document );
+ } );
+ }
+ else if ( typeof exports === 'object' ) {
+ // CommonJS
+ var jq = require('jquery');
+ var cjsRequires = function (root, $) {
+ if ( ! $.fn.dataTable ) {
+ require('datatables.net-bm')(root, $);
+ }
+
+ if ( ! $.fn.dataTable.Responsive ) {
+ require('datatables.net-responsive')(root, $);
+ }
+ };
+
+ if (typeof window !== 'undefined') {
+ module.exports = function (root, $) {
+ if ( ! root ) {
+ // CommonJS environments without a window global must pass a
+ // root. This will give an error otherwise
+ root = window;
+ }
+
+ if ( ! $ ) {
+ $ = jq( root );
+ }
+
+ cjsRequires( root, $ );
+ return factory( $, root, root.document );
+ };
+ }
+ else {
+ cjsRequires( window, jq );
+ module.exports = factory( jq, window, window.document );
+ }
+ }
+ else {
+ // Browser
+ factory( jQuery, window, document );
+ }
+}(function( $, window, document, undefined ) {
+'use strict';
+var DataTable = $.fn.dataTable;
+
+
+
+var _display = DataTable.Responsive.display;
+var _original = _display.modal;
+var _modal = $(
+ '<div class="modal DTED">'+
+ '<div class="modal-background"></div>'+
+ '<div class="modal-content">' +
+ '<div class="modal-header">'+
+ '<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>'+
+ '</div>'+
+ '<div class="modal-body"/>'+
+ '</div>'+
+ '<button class="modal-close is-large" aria-label="close"></button>'+
+ '</div>'
+)
+
+_display.modal = function ( options ) {
+ return function ( row, update, render ) {
+ if ( ! update ) {
+ if ( options && options.header ) {
+ var header = _modal.find('div.modal-header');
+ header.find('button').detach();
+
+ header
+ .empty()
+ .append( '<h4 class="modal-title subtitle">'+options.header( row )+'</h4>' );
+ }
+
+ _modal.find( 'div.modal-body' )
+ .empty()
+ .append( render() );
+
+ _modal
+ .appendTo( 'body' )
+
+ _modal.addClass('is-active is-clipped');
+
+ $('.modal-close').one('click', function() {
+ _modal.removeClass('is-active is-clipped');
+ })
+ $('.modal-background').one('click', function() {
+ _modal.removeClass('is-active is-clipped');
+ })
+ }
+ };
+};
+
+
+return DataTable;
+}));
diff --git a/public/assets/js/DataTables/Responsive-2.4.1/js/responsive.bulma.min.js b/public/assets/js/DataTables/Responsive-2.4.1/js/responsive.bulma.min.js
new file mode 100644
index 0000000..66937c3
--- /dev/null
+++ b/public/assets/js/DataTables/Responsive-2.4.1/js/responsive.bulma.min.js
@@ -0,0 +1,4 @@
+/*! Bulma integration for DataTables' Responsive
+ * © SpryMedia Ltd - datatables.net/license
+ */
+!function(a){var n,o;"function"==typeof define&&define.amd?define(["jquery","datatables.net-bm","datatables.net-responsive"],function(e){return a(e,window,document)}):"object"==typeof exports?(n=require("jquery"),o=function(e,d){d.fn.dataTable||require("datatables.net-bm")(e,d),d.fn.dataTable.Responsive||require("datatables.net-responsive")(e,d)},"undefined"!=typeof window?module.exports=function(e,d){return e=e||window,d=d||n(e),o(e,d),a(d,0,e.document)}:(o(window,n),module.exports=a(n,window,window.document))):a(jQuery,window,document)}(function(o,e,d,a){"use strict";var n=o.fn.dataTable,t=n.Responsive.display,i=(t.modal,o('<div class="modal DTED"><div class="modal-background"></div><div class="modal-content"><div class="modal-header"><button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button></div><div class="modal-body"/></div><button class="modal-close is-large" aria-label="close"></button></div>'));return t.modal=function(n){return function(e,d,a){d||(n&&n.header&&((d=i.find("div.modal-header")).find("button").detach(),d.empty().append('<h4 class="modal-title subtitle">'+n.header(e)+"</h4>")),i.find("div.modal-body").empty().append(a()),i.appendTo("body"),i.addClass("is-active is-clipped"),o(".modal-close").one("click",function(){i.removeClass("is-active is-clipped")}),o(".modal-background").one("click",function(){i.removeClass("is-active is-clipped")}))}},n}); \ No newline at end of file
diff --git a/public/assets/js/DataTables/Responsive-2.4.1/js/responsive.dataTables.js b/public/assets/js/DataTables/Responsive-2.4.1/js/responsive.dataTables.js
new file mode 100644
index 0000000..8f8b61f
--- /dev/null
+++ b/public/assets/js/DataTables/Responsive-2.4.1/js/responsive.dataTables.js
@@ -0,0 +1,58 @@
+/*! DataTables styling wrapper for Responsive
+ * © SpryMedia Ltd - datatables.net/license
+ */
+
+(function( factory ){
+ if ( typeof define === 'function' && define.amd ) {
+ // AMD
+ define( ['jquery', 'datatables.net-dt', 'datatables.net-responsive'], function ( $ ) {
+ return factory( $, window, document );
+ } );
+ }
+ else if ( typeof exports === 'object' ) {
+ // CommonJS
+ var jq = require('jquery');
+ var cjsRequires = function (root, $) {
+ if ( ! $.fn.dataTable ) {
+ require('datatables.net-dt')(root, $);
+ }
+
+ if ( ! $.fn.dataTable.Responsive ) {
+ require('datatables.net-responsive')(root, $);
+ }
+ };
+
+ if (typeof window !== 'undefined') {
+ module.exports = function (root, $) {
+ if ( ! root ) {
+ // CommonJS environments without a window global must pass a
+ // root. This will give an error otherwise
+ root = window;
+ }
+
+ if ( ! $ ) {
+ $ = jq( root );
+ }
+
+ cjsRequires( root, $ );
+ return factory( $, root, root.document );
+ };
+ }
+ else {
+ cjsRequires( window, jq );
+ module.exports = factory( jq, window, window.document );
+ }
+ }
+ else {
+ // Browser
+ factory( jQuery, window, document );
+ }
+}(function( $, window, document, undefined ) {
+'use strict';
+var DataTable = $.fn.dataTable;
+
+
+
+
+return DataTable;
+}));
diff --git a/public/assets/js/DataTables/Responsive-2.4.1/js/responsive.dataTables.min.js b/public/assets/js/DataTables/Responsive-2.4.1/js/responsive.dataTables.min.js
new file mode 100644
index 0000000..7610354
--- /dev/null
+++ b/public/assets/js/DataTables/Responsive-2.4.1/js/responsive.dataTables.min.js
@@ -0,0 +1,4 @@
+/*! DataTables styling wrapper for Responsive
+ * © SpryMedia Ltd - datatables.net/license
+ */
+!function(t){var o,d;"function"==typeof define&&define.amd?define(["jquery","datatables.net-dt","datatables.net-responsive"],function(e){return t(e,window,document)}):"object"==typeof exports?(o=require("jquery"),d=function(e,n){n.fn.dataTable||require("datatables.net-dt")(e,n),n.fn.dataTable.Responsive||require("datatables.net-responsive")(e,n)},"undefined"!=typeof window?module.exports=function(e,n){return e=e||window,n=n||o(e),d(e,n),t(n,0,e.document)}:(d(window,o),module.exports=t(o,window,window.document))):t(jQuery,window,document)}(function(e,n,t,o){"use strict";return e.fn.dataTable}); \ No newline at end of file
diff --git a/public/assets/js/DataTables/Responsive-2.4.1/js/responsive.foundation.js b/public/assets/js/DataTables/Responsive-2.4.1/js/responsive.foundation.js
new file mode 100644
index 0000000..1e0df03
--- /dev/null
+++ b/public/assets/js/DataTables/Responsive-2.4.1/js/responsive.foundation.js
@@ -0,0 +1,88 @@
+/*! Foundation integration for DataTables' Responsive
+ * © SpryMedia Ltd - datatables.net/license
+ */
+
+(function( factory ){
+ if ( typeof define === 'function' && define.amd ) {
+ // AMD
+ define( ['jquery', 'datatables.net-zf', 'datatables.net-responsive'], function ( $ ) {
+ return factory( $, window, document );
+ } );
+ }
+ else if ( typeof exports === 'object' ) {
+ // CommonJS
+ var jq = require('jquery');
+ var cjsRequires = function (root, $) {
+ if ( ! $.fn.dataTable ) {
+ require('datatables.net-zf')(root, $);
+ }
+
+ if ( ! $.fn.dataTable.Responsive ) {
+ require('datatables.net-responsive')(root, $);
+ }
+ };
+
+ if (typeof window !== 'undefined') {
+ module.exports = function (root, $) {
+ if ( ! root ) {
+ // CommonJS environments without a window global must pass a
+ // root. This will give an error otherwise
+ root = window;
+ }
+
+ if ( ! $ ) {
+ $ = jq( root );
+ }
+
+ cjsRequires( root, $ );
+ return factory( $, root, root.document );
+ };
+ }
+ else {
+ cjsRequires( window, jq );
+ module.exports = factory( jq, window, window.document );
+ }
+ }
+ else {
+ // Browser
+ factory( jQuery, window, document );
+ }
+}(function( $, window, document, undefined ) {
+'use strict';
+var DataTable = $.fn.dataTable;
+
+
+
+var _display = DataTable.Responsive.display;
+var _original = _display.modal;
+
+_display.modal = function ( options ) {
+ return function ( row, update, render ) {
+ if ( ! $.fn.foundation ) {
+ _original( row, update, render );
+ }
+ else {
+ if ( ! update ) {
+ var modalContainer = $('<div class="reveal-overlay" style="display:block"/>');
+ $( '<div class="reveal reveal-modal" style="display:block; top: 150px;" data-reveal/>' )
+ .append( '<button class="close-button" aria-label="Close">&#215;</button>' )
+ .append( options && options.header ? '<h4>'+options.header( row )+'</h4>' : null )
+ .append( render() )
+ .appendTo( modalContainer );
+
+ modalContainer.appendTo('body');
+
+ $('button.close-button').on('click', function() {
+ $('.reveal-overlay').remove();
+ })
+ $('.reveal-overlay').on('click', function() {
+ $('.reveal-overlay').remove();
+ })
+ }
+ }
+ };
+};
+
+
+return DataTable;
+}));
diff --git a/public/assets/js/DataTables/Responsive-2.4.1/js/responsive.foundation.min.js b/public/assets/js/DataTables/Responsive-2.4.1/js/responsive.foundation.min.js
new file mode 100644
index 0000000..322969c
--- /dev/null
+++ b/public/assets/js/DataTables/Responsive-2.4.1/js/responsive.foundation.min.js
@@ -0,0 +1,4 @@
+/*! Foundation integration for DataTables' Responsive
+ * © SpryMedia Ltd - datatables.net/license
+ */
+!function(o){var a,t;"function"==typeof define&&define.amd?define(["jquery","datatables.net-zf","datatables.net-responsive"],function(e){return o(e,window,document)}):"object"==typeof exports?(a=require("jquery"),t=function(e,n){n.fn.dataTable||require("datatables.net-zf")(e,n),n.fn.dataTable.Responsive||require("datatables.net-responsive")(e,n)},"undefined"!=typeof window?module.exports=function(e,n){return e=e||window,n=n||a(e),t(e,n),o(n,0,e.document)}:(t(window,a),module.exports=o(a,window,window.document))):o(jQuery,window,document)}(function(d,e,n,o){"use strict";var a=d.fn.dataTable,t=a.Responsive.display,l=t.modal;return t.modal=function(t){return function(e,n,o){var a;d.fn.foundation?n||(a=d('<div class="reveal-overlay" style="display:block"/>'),d('<div class="reveal reveal-modal" style="display:block; top: 150px;" data-reveal/>').append('<button class="close-button" aria-label="Close">&#215;</button>').append(t&&t.header?"<h4>"+t.header(e)+"</h4>":null).append(o()).appendTo(a),a.appendTo("body"),d("button.close-button").on("click",function(){d(".reveal-overlay").remove()}),d(".reveal-overlay").on("click",function(){d(".reveal-overlay").remove()})):l(e,n,o)}},a}); \ No newline at end of file
diff --git a/public/assets/js/DataTables/Responsive-2.4.1/js/responsive.jqueryui.js b/public/assets/js/DataTables/Responsive-2.4.1/js/responsive.jqueryui.js
new file mode 100644
index 0000000..eaa627b
--- /dev/null
+++ b/public/assets/js/DataTables/Responsive-2.4.1/js/responsive.jqueryui.js
@@ -0,0 +1,80 @@
+/*! jQuery UI integration for DataTables' Responsive
+ * © SpryMedia Ltd - datatables.net/license
+ */
+
+(function( factory ){
+ if ( typeof define === 'function' && define.amd ) {
+ // AMD
+ define( ['jquery', 'datatables.net-jqui', 'datatables.net-responsive'], function ( $ ) {
+ return factory( $, window, document );
+ } );
+ }
+ else if ( typeof exports === 'object' ) {
+ // CommonJS
+ var jq = require('jquery');
+ var cjsRequires = function (root, $) {
+ if ( ! $.fn.dataTable ) {
+ require('datatables.net-jqui')(root, $);
+ }
+
+ if ( ! $.fn.dataTable.Responsive ) {
+ require('datatables.net-responsive')(root, $);
+ }
+ };
+
+ if (typeof window !== 'undefined') {
+ module.exports = function (root, $) {
+ if ( ! root ) {
+ // CommonJS environments without a window global must pass a
+ // root. This will give an error otherwise
+ root = window;
+ }
+
+ if ( ! $ ) {
+ $ = jq( root );
+ }
+
+ cjsRequires( root, $ );
+ return factory( $, root, root.document );
+ };
+ }
+ else {
+ cjsRequires( window, jq );
+ module.exports = factory( jq, window, window.document );
+ }
+ }
+ else {
+ // Browser
+ factory( jQuery, window, document );
+ }
+}(function( $, window, document, undefined ) {
+'use strict';
+var DataTable = $.fn.dataTable;
+
+
+
+var _display = DataTable.Responsive.display;
+var _original = _display.modal;
+
+_display.modal = function ( options ) {
+ return function ( row, update, render ) {
+ if ( ! $.fn.dialog ) {
+ _original( row, update, render );
+ }
+ else {
+ if ( ! update ) {
+ $( '<div/>' )
+ .append( render() )
+ .appendTo( 'body' )
+ .dialog( $.extend( true, {
+ title: options && options.header ? options.header( row ) : '',
+ width: 500
+ }, options.dialog ) );
+ }
+ }
+ };
+};
+
+
+return DataTable;
+}));
diff --git a/public/assets/js/DataTables/Responsive-2.4.1/js/responsive.jqueryui.min.js b/public/assets/js/DataTables/Responsive-2.4.1/js/responsive.jqueryui.min.js
new file mode 100644
index 0000000..35a4580
--- /dev/null
+++ b/public/assets/js/DataTables/Responsive-2.4.1/js/responsive.jqueryui.min.js
@@ -0,0 +1,4 @@
+/*! jQuery UI integration for DataTables' Responsive
+ * © SpryMedia Ltd - datatables.net/license
+ */
+!function(t){var d,o;"function"==typeof define&&define.amd?define(["jquery","datatables.net-jqui","datatables.net-responsive"],function(e){return t(e,window,document)}):"object"==typeof exports?(d=require("jquery"),o=function(e,n){n.fn.dataTable||require("datatables.net-jqui")(e,n),n.fn.dataTable.Responsive||require("datatables.net-responsive")(e,n)},"undefined"!=typeof window?module.exports=function(e,n){return e=e||window,n=n||d(e),o(e,n),t(n,0,e.document)}:(o(window,d),module.exports=t(d,window,window.document))):t(jQuery,window,document)}(function(o,e,n,t){"use strict";var d=o.fn.dataTable,i=d.Responsive.display,a=i.modal;return i.modal=function(d){return function(e,n,t){o.fn.dialog?n||o("<div/>").append(t()).appendTo("body").dialog(o.extend(!0,{title:d&&d.header?d.header(e):"",width:500},d.dialog)):a(e,n,t)}},d}); \ No newline at end of file
diff --git a/public/assets/js/DataTables/Responsive-2.4.1/js/responsive.semanticui.js b/public/assets/js/DataTables/Responsive-2.4.1/js/responsive.semanticui.js
new file mode 100644
index 0000000..49dfaf9
--- /dev/null
+++ b/public/assets/js/DataTables/Responsive-2.4.1/js/responsive.semanticui.js
@@ -0,0 +1,97 @@
+/*! Bootstrap integration for DataTables' Responsive
+ * © SpryMedia Ltd - datatables.net/license
+ */
+
+(function( factory ){
+ if ( typeof define === 'function' && define.amd ) {
+ // AMD
+ define( ['jquery', 'datatables.net-se', 'datatables.net-responsive'], function ( $ ) {
+ return factory( $, window, document );
+ } );
+ }
+ else if ( typeof exports === 'object' ) {
+ // CommonJS
+ var jq = require('jquery');
+ var cjsRequires = function (root, $) {
+ if ( ! $.fn.dataTable ) {
+ require('datatables.net-se')(root, $);
+ }
+
+ if ( ! $.fn.dataTable.Responsive ) {
+ require('datatables.net-responsive')(root, $);
+ }
+ };
+
+ if (typeof window !== 'undefined') {
+ module.exports = function (root, $) {
+ if ( ! root ) {
+ // CommonJS environments without a window global must pass a
+ // root. This will give an error otherwise
+ root = window;
+ }
+
+ if ( ! $ ) {
+ $ = jq( root );
+ }
+
+ cjsRequires( root, $ );
+ return factory( $, root, root.document );
+ };
+ }
+ else {
+ cjsRequires( window, jq );
+ module.exports = factory( jq, window, window.document );
+ }
+ }
+ else {
+ // Browser
+ factory( jQuery, window, document );
+ }
+}(function( $, window, document, undefined ) {
+'use strict';
+var DataTable = $.fn.dataTable;
+
+
+
+var _display = DataTable.Responsive.display;
+var _original = _display.modal;
+var _modal = $(
+ '<div class="ui modal" role="dialog">'+
+ '<div class="header">'+
+ '<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>'+
+ '</div>'+
+ '<div class="content"/>'+
+ '</div>'
+);
+
+_display.modal = function ( options ) {
+ return function ( row, update, render ) {
+ if ( ! $.fn.modal ) {
+ _original( row, update, render );
+ }
+ else {
+ if ( ! update ) {
+ if ( options && options.header ) {
+ _modal.find('div.header')
+ .empty()
+ .append( '<h4 class="title">'+options.header( row )+'</h4>' );
+ }
+
+ _modal.find( 'div.content' )
+ .empty()
+ .append( render() );
+
+ // Only need to attach the first time
+ if (! _modal.parent().hasClass('dimmer')) {
+ _modal.appendTo( 'body' )
+ }
+
+ _modal.modal('show');
+ }
+ }
+ };
+};
+
+
+return DataTable;
+}));
diff --git a/public/assets/js/DataTables/Responsive-2.4.1/js/responsive.semanticui.min.js b/public/assets/js/DataTables/Responsive-2.4.1/js/responsive.semanticui.min.js
new file mode 100644
index 0000000..a44c891
--- /dev/null
+++ b/public/assets/js/DataTables/Responsive-2.4.1/js/responsive.semanticui.min.js
@@ -0,0 +1,4 @@
+/*! Bootstrap integration for DataTables' Responsive
+ * © SpryMedia Ltd - datatables.net/license
+ */
+!function(t){var a,d;"function"==typeof define&&define.amd?define(["jquery","datatables.net-se","datatables.net-responsive"],function(e){return t(e,window,document)}):"object"==typeof exports?(a=require("jquery"),d=function(e,n){n.fn.dataTable||require("datatables.net-se")(e,n),n.fn.dataTable.Responsive||require("datatables.net-responsive")(e,n)},"undefined"!=typeof window?module.exports=function(e,n){return e=e||window,n=n||a(e),d(e,n),t(n,0,e.document)}:(d(window,a),module.exports=t(a,window,window.document))):t(jQuery,window,document)}(function(d,e,n,t){"use strict";var a=d.fn.dataTable,o=a.Responsive.display,i=o.modal,s=d('<div class="ui modal" role="dialog"><div class="header"><button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button></div><div class="content"/></div>');return o.modal=function(a){return function(e,n,t){d.fn.modal?n||(a&&a.header&&s.find("div.header").empty().append('<h4 class="title">'+a.header(e)+"</h4>"),s.find("div.content").empty().append(t()),s.parent().hasClass("dimmer")||s.appendTo("body"),s.modal("show")):i(e,n,t)}},a}); \ No newline at end of file