Changes to rejectedbyyc

ffff:4.36.34.18
ffff:4.36.34.18
3 months ago
Reverted to 444b71e752c76a616fd36b63cc4751114c12b921
.gitignore
Changed around line 1
+ *.html
+ *.txt
+ *.xml
datatables.css
Changed around line 1
+ /*
+ * This combined file was created by the DataTables downloader builder:
+ * https://datatables.net/download
+ *
+ * To rebuild or modify this file with the latest versions of the included
+ * software please visit:
+ * https://datatables.net/download/#dt/dt-2.1.7/b-3.1.2/b-colvis-3.1.2/b-html5-3.1.2/cr-2.0.4/fc-5.0.2/fh-4.0.1/sb-1.8.0
+ *
+ * Included libraries:
+ * DataTables 2.1.7, Buttons 3.1.2, Column visibility 3.1.2, HTML5 export 3.1.2, ColReorder 2.0.4, FixedColumns 5.0.2, FixedHeader 4.0.1, SearchBuilder 1.8.0
+ */
+
+ @charset "UTF-8";
+ :root {
+ --dt-row-selected: 13, 110, 253;
+ --dt-row-selected-text: 255, 255, 255;
+ --dt-row-selected-link: 9, 10, 11;
+ --dt-row-stripe: 0, 0, 0;
+ --dt-row-hover: 0, 0, 0;
+ --dt-column-ordering: 0, 0, 0;
+ --dt-html-background: white;
+ }
+ :root.dark {
+ --dt-html-background: rgb(33, 37, 41);
+ }
+
+ table.dataTable td.dt-control {
+ text-align: center;
+ cursor: pointer;
+ }
+ table.dataTable td.dt-control:before {
+ display: inline-block;
+ box-sizing: border-box;
+ content: "";
+ border-top: 5px solid transparent;
+ border-left: 10px solid rgba(0, 0, 0, 0.5);
+ border-bottom: 5px solid transparent;
+ border-right: 0px solid transparent;
+ }
+ table.dataTable tr.dt-hasChild td.dt-control:before {
+ border-top: 10px solid rgba(0, 0, 0, 0.5);
+ border-left: 5px solid transparent;
+ border-bottom: 0px solid transparent;
+ border-right: 5px solid transparent;
+ }
+
+ html.dark table.dataTable td.dt-control:before,
+ :root[data-bs-theme=dark] table.dataTable td.dt-control:before,
+ :root[data-theme=dark] table.dataTable td.dt-control:before {
+ border-left-color: rgba(255, 255, 255, 0.5);
+ }
+ html.dark table.dataTable tr.dt-hasChild td.dt-control:before,
+ :root[data-bs-theme=dark] table.dataTable tr.dt-hasChild td.dt-control:before,
+ :root[data-theme=dark] table.dataTable tr.dt-hasChild td.dt-control:before {
+ border-top-color: rgba(255, 255, 255, 0.5);
+ border-left-color: transparent;
+ }
+
+ div.dt-scroll {
+ width: 100%;
+ }
+
+ div.dt-scroll-body thead tr,
+ div.dt-scroll-body tfoot tr {
+ height: 0;
+ }
+ div.dt-scroll-body thead tr th, div.dt-scroll-body thead tr td,
+ div.dt-scroll-body tfoot tr th,
+ div.dt-scroll-body tfoot tr td {
+ height: 0 !important;
+ padding-top: 0px !important;
+ padding-bottom: 0px !important;
+ border-top-width: 0px !important;
+ border-bottom-width: 0px !important;
+ }
+ div.dt-scroll-body thead tr th div.dt-scroll-sizing, div.dt-scroll-body thead tr td div.dt-scroll-sizing,
+ div.dt-scroll-body tfoot tr th div.dt-scroll-sizing,
+ div.dt-scroll-body tfoot tr td div.dt-scroll-sizing {
+ height: 0 !important;
+ overflow: hidden !important;
+ }
+
+ table.dataTable thead > tr > th:active,
+ table.dataTable thead > tr > td:active {
+ outline: none;
+ }
+ table.dataTable thead > tr > th.dt-orderable-asc span.dt-column-order:before, table.dataTable thead > tr > th.dt-ordering-asc span.dt-column-order:before,
+ table.dataTable thead > tr > td.dt-orderable-asc span.dt-column-order:before,
+ table.dataTable thead > tr > td.dt-ordering-asc span.dt-column-order:before {
+ position: absolute;
+ display: block;
+ bottom: 50%;
+ content: "▲";
+ content: "▲"/"";
+ }
+ table.dataTable thead > tr > th.dt-orderable-desc span.dt-column-order:after, table.dataTable thead > tr > th.dt-ordering-desc span.dt-column-order:after,
+ table.dataTable thead > tr > td.dt-orderable-desc span.dt-column-order:after,
+ table.dataTable thead > tr > td.dt-ordering-desc span.dt-column-order:after {
+ position: absolute;
+ display: block;
+ top: 50%;
+ content: "▼";
+ content: "▼"/"";
+ }
+ table.dataTable thead > tr > th.dt-orderable-asc, table.dataTable thead > tr > th.dt-orderable-desc, table.dataTable thead > tr > th.dt-ordering-asc, table.dataTable thead > tr > th.dt-ordering-desc,
+ table.dataTable thead > tr > td.dt-orderable-asc,
+ table.dataTable thead > tr > td.dt-orderable-desc,
+ table.dataTable thead > tr > td.dt-ordering-asc,
+ table.dataTable thead > tr > td.dt-ordering-desc {
+ position: relative;
+ padding-right: 30px;
+ }
+ table.dataTable thead > tr > th.dt-orderable-asc span.dt-column-order, table.dataTable thead > tr > th.dt-orderable-desc span.dt-column-order, table.dataTable thead > tr > th.dt-ordering-asc span.dt-column-order, table.dataTable thead > tr > th.dt-ordering-desc span.dt-column-order,
+ table.dataTable thead > tr > td.dt-orderable-asc span.dt-column-order,
+ table.dataTable thead > tr > td.dt-orderable-desc span.dt-column-order,
+ table.dataTable thead > tr > td.dt-ordering-asc span.dt-column-order,
+ table.dataTable thead > tr > td.dt-ordering-desc span.dt-column-order {
+ position: absolute;
+ right: 12px;
+ top: 0;
+ bottom: 0;
+ width: 12px;
+ }
+ table.dataTable thead > tr > th.dt-orderable-asc span.dt-column-order:before, table.dataTable thead > tr > th.dt-orderable-asc span.dt-column-order:after, table.dataTable thead > tr > th.dt-orderable-desc span.dt-column-order:before, table.dataTable thead > tr > th.dt-orderable-desc span.dt-column-order:after, table.dataTable thead > tr > th.dt-ordering-asc span.dt-column-order:before, table.dataTable thead > tr > th.dt-ordering-asc span.dt-column-order:after, table.dataTable thead > tr > th.dt-ordering-desc span.dt-column-order:before, table.dataTable thead > tr > th.dt-ordering-desc span.dt-column-order:after,
+ table.dataTable thead > tr > td.dt-orderable-asc span.dt-column-order:before,
+ table.dataTable thead > tr > td.dt-orderable-asc span.dt-column-order:after,
+ table.dataTable thead > tr > td.dt-orderable-desc span.dt-column-order:before,
+ table.dataTable thead > tr > td.dt-orderable-desc span.dt-column-order:after,
+ table.dataTable thead > tr > td.dt-ordering-asc span.dt-column-order:before,
+ table.dataTable thead > tr > td.dt-ordering-asc span.dt-column-order:after,
+ table.dataTable thead > tr > td.dt-ordering-desc span.dt-column-order:before,
+ table.dataTable thead > tr > td.dt-ordering-desc span.dt-column-order:after {
+ left: 0;
+ opacity: 0.125;
+ line-height: 9px;
+ font-size: 0.8em;
+ }
+ table.dataTable thead > tr > th.dt-orderable-asc, table.dataTable thead > tr > th.dt-orderable-desc,
+ table.dataTable thead > tr > td.dt-orderable-asc,
+ table.dataTable thead > tr > td.dt-orderable-desc {
+ cursor: pointer;
+ }
+ table.dataTable thead > tr > th.dt-orderable-asc:hover, table.dataTable thead > tr > th.dt-orderable-desc:hover,
+ table.dataTable thead > tr > td.dt-orderable-asc:hover,
+ table.dataTable thead > tr > td.dt-orderable-desc:hover {
+ outline: 2px solid rgba(0, 0, 0, 0.05);
+ outline-offset: -2px;
+ }
+ table.dataTable thead > tr > th.dt-ordering-asc span.dt-column-order:before, table.dataTable thead > tr > th.dt-ordering-desc span.dt-column-order:after,
+ table.dataTable thead > tr > td.dt-ordering-asc span.dt-column-order:before,
+ table.dataTable thead > tr > td.dt-ordering-desc span.dt-column-order:after {
+ opacity: 0.6;
+ }
+ table.dataTable thead > tr > th.sorting_desc_disabled span.dt-column-order:after, table.dataTable thead > tr > th.sorting_asc_disabled span.dt-column-order:before,
+ table.dataTable thead > tr > td.sorting_desc_disabled span.dt-column-order:after,
+ table.dataTable thead > tr > td.sorting_asc_disabled span.dt-column-order:before {
+ display: none;
+ }
+ table.dataTable thead > tr > th:active,
+ table.dataTable thead > tr > td:active {
+ outline: none;
+ }
+
+ div.dt-scroll-body > table.dataTable > thead > tr > th,
+ div.dt-scroll-body > table.dataTable > thead > tr > td {
+ overflow: hidden;
+ }
+
+ :root.dark table.dataTable thead > tr > th.dt-orderable-asc:hover, :root.dark table.dataTable thead > tr > th.dt-orderable-desc:hover,
+ :root.dark table.dataTable thead > tr > td.dt-orderable-asc:hover,
+ :root.dark table.dataTable thead > tr > td.dt-orderable-desc:hover,
+ :root[data-bs-theme=dark] table.dataTable thead > tr > th.dt-orderable-asc:hover,
+ :root[data-bs-theme=dark] table.dataTable thead > tr > th.dt-orderable-desc:hover,
+ :root[data-bs-theme=dark] table.dataTable thead > tr > td.dt-orderable-asc:hover,
+ :root[data-bs-theme=dark] table.dataTable thead > tr > td.dt-orderable-desc:hover {
+ outline: 2px solid rgba(255, 255, 255, 0.05);
+ }
+
+ div.dt-processing {
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ width: 200px;
+ margin-left: -100px;
+ margin-top: -22px;
+ text-align: center;
+ padding: 2px;
+ z-index: 10;
+ }
+ div.dt-processing > div:last-child {
+ position: relative;
+ width: 80px;
+ height: 15px;
+ margin: 1em auto;
+ }
+ div.dt-processing > div:last-child > div {
+ position: absolute;
+ top: 0;
+ width: 13px;
+ height: 13px;
+ border-radius: 50%;
+ background: rgb(13, 110, 253);
+ background: rgb(var(--dt-row-selected));
+ animation-timing-function: cubic-bezier(0, 1, 1, 0);
+ }
+ div.dt-processing > div:last-child > div:nth-child(1) {
+ left: 8px;
+ animation: datatables-loader-1 0.6s infinite;
+ }
+ div.dt-processing > div:last-child > div:nth-child(2) {
+ left: 8px;
+ animation: datatables-loader-2 0.6s infinite;
+ }
+ div.dt-processing > div:last-child > div:nth-child(3) {
+ left: 32px;
+ animation: datatables-loader-2 0.6s infinite;
+ }
+ div.dt-processing > div:last-child > div:nth-child(4) {
+ left: 56px;
+ animation: datatables-loader-3 0.6s infinite;
+ }
+
+ @keyframes datatables-loader-1 {
+ 0% {
+ transform: scale(0);
+ }
+ 100% {
+ transform: scale(1);
+ }
+ }
+ @keyframes datatables-loader-3 {
+ 0% {
+ transform: scale(1);
+ }
+ 100% {
+ transform: scale(0);
+ }
+ }
+ @keyframes datatables-loader-2 {
+ 0% {
+ transform: translate(0, 0);
+ }
+ 100% {
+ transform: translate(24px, 0);
+ }
+ }
+ table.dataTable.nowrap th, table.dataTable.nowrap td {
+ white-space: nowrap;
+ }
+ table.dataTable th,
+ table.dataTable td {
+ box-sizing: border-box;
+ }
+ table.dataTable th.dt-left,
+ table.dataTable td.dt-left {
+ text-align: left;
+ }
+ table.dataTable th.dt-center,
+ table.dataTable td.dt-center {
+ text-align: center;
+ }
+ table.dataTable th.dt-right,
+ table.dataTable td.dt-right {
+ text-align: right;
+ }
+ table.dataTable th.dt-justify,
+ table.dataTable td.dt-justify {
+ text-align: justify;
+ }
+ table.dataTable th.dt-nowrap,
+ table.dataTable td.dt-nowrap {
+ white-space: nowrap;
+ }
+ table.dataTable th.dt-empty,
+ table.dataTable td.dt-empty {
+ text-align: center;
+ vertical-align: top;
+ }
+ table.dataTable th.dt-type-numeric, table.dataTable th.dt-type-date,
+ table.dataTable td.dt-type-numeric,
+ table.dataTable td.dt-type-date {
+ text-align: right;
+ }
+ table.dataTable thead th,
+ table.dataTable thead td,
+ table.dataTable tfoot th,
+ table.dataTable tfoot td {
+ text-align: left;
+ }
+ table.dataTable thead th.dt-head-left,
+ table.dataTable thead td.dt-head-left,
+ table.dataTable tfoot th.dt-head-left,
+ table.dataTable tfoot td.dt-head-left {
+ text-align: left;
+ }
+ table.dataTable thead th.dt-head-center,
+ table.dataTable thead td.dt-head-center,
+ table.dataTable tfoot th.dt-head-center,
+ table.dataTable tfoot td.dt-head-center {
+ text-align: center;
+ }
+ table.dataTable thead th.dt-head-right,
+ table.dataTable thead td.dt-head-right,
+ table.dataTable tfoot th.dt-head-right,
+ table.dataTable tfoot td.dt-head-right {
+ text-align: right;
+ }
+ table.dataTable thead th.dt-head-justify,
+ table.dataTable thead td.dt-head-justify,
+ table.dataTable tfoot th.dt-head-justify,
+ table.dataTable tfoot td.dt-head-justify {
+ text-align: justify;
+ }
+ table.dataTable thead th.dt-head-nowrap,
+ table.dataTable thead td.dt-head-nowrap,
+ table.dataTable tfoot th.dt-head-nowrap,
+ table.dataTable tfoot td.dt-head-nowrap {
+ white-space: nowrap;
+ }
+ table.dataTable tbody th.dt-body-left,
+ table.dataTable tbody td.dt-body-left {
+ text-align: left;
+ }
+ table.dataTable tbody th.dt-body-center,
+ table.dataTable tbody td.dt-body-center {
+ text-align: center;
+ }
+ table.dataTable tbody th.dt-body-right,
+ table.dataTable tbody td.dt-body-right {
+ text-align: right;
+ }
+ table.dataTable tbody th.dt-body-justify,
+ table.dataTable tbody td.dt-body-justify {
+ text-align: justify;
+ }
+ table.dataTable tbody th.dt-body-nowrap,
+ table.dataTable tbody td.dt-body-nowrap {
+ white-space: nowrap;
+ }
+
+ /*
+ * Table styles
+ */
+ table.dataTable {
+ width: 100%;
+ margin: 0 auto;
+ border-spacing: 0;
+ /*
+ * Header and footer styles
+ */
+ /*
+ * Body styles
+ */
+ }
+ table.dataTable thead th,
+ table.dataTable tfoot th {
+ font-weight: bold;
+ }
+ table.dataTable > thead > tr > th,
+ table.dataTable > thead > tr > td {
+ padding: 10px;
+ border-bottom: 1px solid rgba(0, 0, 0, 0.3);
+ }
+ table.dataTable > thead > tr > th:active,
+ table.dataTable > thead > tr > td:active {
+ outline: none;
+ }
+ table.dataTable > tfoot > tr > th,
+ table.dataTable > tfoot > tr > td {
+ border-top: 1px solid rgba(0, 0, 0, 0.3);
+ padding: 10px 10px 6px 10px;
+ }
+ table.dataTable > tbody > tr {
+ background-color: transparent;
+ }
+ table.dataTable > tbody > tr:first-child > * {
+ border-top: none;
+ }
+ table.dataTable > tbody > tr:last-child > * {
+ border-bottom: none;
+ }
+ table.dataTable > tbody > tr.selected > * {
+ box-shadow: inset 0 0 0 9999px rgba(13, 110, 253, 0.9);
+ box-shadow: inset 0 0 0 9999px rgba(var(--dt-row-selected), 0.9);
+ color: rgb(255, 255, 255);
+ color: rgb(var(--dt-row-selected-text));
+ }
+ table.dataTable > tbody > tr.selected a {
+ color: rgb(9, 10, 11);
+ color: rgb(var(--dt-row-selected-link));
+ }
+ table.dataTable > tbody > tr > th,
+ table.dataTable > tbody > tr > td {
+ padding: 8px 10px;
+ }
+ table.dataTable.row-border > tbody > tr > *, table.dataTable.display > tbody > tr > * {
+ border-top: 1px solid rgba(0, 0, 0, 0.15);
+ }
+ table.dataTable.row-border > tbody > tr:first-child > *, table.dataTable.display > tbody > tr:first-child > * {
+ border-top: none;
+ }
+ table.dataTable.row-border > tbody > tr.selected + tr.selected > td, table.dataTable.display > tbody > tr.selected + tr.selected > td {
+ border-top-color: rgba(13, 110, 253, 0.65);
+ border-top-color: rgba(var(--dt-row-selected), 0.65);
+ }
+ table.dataTable.cell-border > tbody > tr > * {
+ border-top: 1px solid rgba(0, 0, 0, 0.15);
+ border-right: 1px solid rgba(0, 0, 0, 0.15);
+ }
+ table.dataTable.cell-border > tbody > tr > *:first-child {
+ border-left: 1px solid rgba(0, 0, 0, 0.15);
+ }
+ table.dataTable.cell-border > tbody > tr:first-child > * {
+ border-top: 1px solid rgba(0, 0, 0, 0.3);
+ }
+ table.dataTable.stripe > tbody > tr:nth-child(odd) > *, table.dataTable.display > tbody > tr:nth-child(odd) > * {
+ box-shadow: inset 0 0 0 9999px rgba(0, 0, 0, 0.023);
+ box-shadow: inset 0 0 0 9999px rgba(var(--dt-row-stripe), 0.023);
+ }
+ table.dataTable.stripe > tbody > tr:nth-child(odd).selected > *, table.dataTable.display > tbody > tr:nth-child(odd).selected > * {
+ box-shadow: inset 0 0 0 9999px rgba(13, 110, 253, 0.923);
+ box-shadow: inset 0 0 0 9999px rgba(var(--dt-row-selected), 0.923);
+ }
+ table.dataTable.hover > tbody > tr:hover > *, table.dataTable.display > tbody > tr:hover > * {
+ box-shadow: inset 0 0 0 9999px rgba(0, 0, 0, 0.035);
+ box-shadow: inset 0 0 0 9999px rgba(var(--dt-row-hover), 0.035);
+ }
+ table.dataTable.hover > tbody > tr.selected:hover > *, table.dataTable.display > tbody > tr.selected:hover > * {
+ box-shadow: inset 0 0 0 9999px #0d6efd !important;
+ box-shadow: inset 0 0 0 9999px rgba(var(--dt-row-selected), 1) !important;
+ }
+ table.dataTable.order-column > tbody tr > .sorting_1,
+ table.dataTable.order-column > tbody tr > .sorting_2,
+ table.dataTable.order-column > tbody tr > .sorting_3, table.dataTable.display > tbody tr > .sorting_1,
+ table.dataTable.display > tbody tr > .sorting_2,
+ table.dataTable.display > tbody tr > .sorting_3 {
+ box-shadow: inset 0 0 0 9999px rgba(0, 0, 0, 0.019);
+ box-shadow: inset 0 0 0 9999px rgba(var(--dt-column-ordering), 0.019);
+ }
+ table.dataTable.order-column > tbody tr.selected > .sorting_1,
+ table.dataTable.order-column > tbody tr.selected > .sorting_2,
+ table.dataTable.order-column > tbody tr.selected > .sorting_3, table.dataTable.display > tbody tr.selected > .sorting_1,
+ table.dataTable.display > tbody tr.selected > .sorting_2,
+ table.dataTable.display > tbody tr.selected > .sorting_3 {
+ box-shadow: inset 0 0 0 9999px rgba(13, 110, 253, 0.919);
+ box-shadow: inset 0 0 0 9999px rgba(var(--dt-row-selected), 0.919);
+ }
+ table.dataTable.display > tbody > tr:nth-child(odd) > .sorting_1, table.dataTable.order-column.stripe > tbody > tr:nth-child(odd) > .sorting_1 {
+ box-shadow: inset 0 0 0 9999px rgba(0, 0, 0, 0.054);
+ box-shadow: inset 0 0 0 9999px rgba(var(--dt-column-ordering), 0.054);
+ }
+ table.dataTable.display > tbody > tr:nth-child(odd) > .sorting_2, table.dataTable.order-column.stripe > tbody > tr:nth-child(odd) > .sorting_2 {
+ box-shadow: inset 0 0 0 9999px rgba(0, 0, 0, 0.047);
+ box-shadow: inset 0 0 0 9999px rgba(var(--dt-column-ordering), 0.047);
+ }
+ table.dataTable.display > tbody > tr:nth-child(odd) > .sorting_3, table.dataTable.order-column.stripe > tbody > tr:nth-child(odd) > .sorting_3 {
+ box-shadow: inset 0 0 0 9999px rgba(0, 0, 0, 0.039);
+ box-shadow: inset 0 0 0 9999px rgba(var(--dt-column-ordering), 0.039);
+ }
+ table.dataTable.display > tbody > tr:nth-child(odd).selected > .sorting_1, table.dataTable.order-column.stripe > tbody > tr:nth-child(odd).selected > .sorting_1 {
+ box-shadow: inset 0 0 0 9999px rgba(13, 110, 253, 0.954);
+ box-shadow: inset 0 0 0 9999px rgba(var(--dt-row-selected), 0.954);
+ }
+ table.dataTable.display > tbody > tr:nth-child(odd).selected > .sorting_2, table.dataTable.order-column.stripe > tbody > tr:nth-child(odd).selected > .sorting_2 {
+ box-shadow: inset 0 0 0 9999px rgba(13, 110, 253, 0.947);
+ box-shadow: inset 0 0 0 9999px rgba(var(--dt-row-selected), 0.947);
+ }
+ table.dataTable.display > tbody > tr:nth-child(odd).selected > .sorting_3, table.dataTable.order-column.stripe > tbody > tr:nth-child(odd).selected > .sorting_3 {
+ box-shadow: inset 0 0 0 9999px rgba(13, 110, 253, 0.939);
+ box-shadow: inset 0 0 0 9999px rgba(var(--dt-row-selected), 0.939);
+ }
+ table.dataTable.display > tbody > tr.even > .sorting_1, table.dataTable.order-column.stripe > tbody > tr.even > .sorting_1 {
+ box-shadow: inset 0 0 0 9999px rgba(0, 0, 0, 0.019);
+ box-shadow: inset 0 0 0 9999px rgba(var(--dt-column-ordering), 0.019);
+ }
+ table.dataTable.display > tbody > tr.even > .sorting_2, table.dataTable.order-column.stripe > tbody > tr.even > .sorting_2 {
+ box-shadow: inset 0 0 0 9999px rgba(0, 0, 0, 0.011);
+ box-shadow: inset 0 0 0 9999px rgba(var(--dt-column-ordering), 0.011);
+ }
+ table.dataTable.display > tbody > tr.even > .sorting_3, table.dataTable.order-column.stripe > tbody > tr.even > .sorting_3 {
+ box-shadow: inset 0 0 0 9999px rgba(0, 0, 0, 0.003);
+ box-shadow: inset 0 0 0 9999px rgba(var(--dt-column-ordering), 0.003);
+ }
+ table.dataTable.display > tbody > tr.even.selected > .sorting_1, table.dataTable.order-column.stripe > tbody > tr.even.selected > .sorting_1 {
+ box-shadow: inset 0 0 0 9999px rgba(13, 110, 253, 0.919);
+ box-shadow: inset 0 0 0 9999px rgba(var(--dt-row-selected), 0.919);
+ }
+ table.dataTable.display > tbody > tr.even.selected > .sorting_2, table.dataTable.order-column.stripe > tbody > tr.even.selected > .sorting_2 {
+ box-shadow: inset 0 0 0 9999px rgba(13, 110, 253, 0.911);
+ box-shadow: inset 0 0 0 9999px rgba(var(--dt-row-selected), 0.911);
+ }
+ table.dataTable.display > tbody > tr.even.selected > .sorting_3, table.dataTable.order-column.stripe > tbody > tr.even.selected > .sorting_3 {
+ box-shadow: inset 0 0 0 9999px rgba(13, 110, 253, 0.903);
+ box-shadow: inset 0 0 0 9999px rgba(var(--dt-row-selected), 0.903);
+ }
+ table.dataTable.display tbody tr:hover > .sorting_1, table.dataTable.order-column.hover tbody tr:hover > .sorting_1 {
+ box-shadow: inset 0 0 0 9999px rgba(0, 0, 0, 0.082);
+ box-shadow: inset 0 0 0 9999px rgba(var(--dt-row-hover), 0.082);
+ }
+ table.dataTable.display tbody tr:hover > .sorting_2, table.dataTable.order-column.hover tbody tr:hover > .sorting_2 {
+ box-shadow: inset 0 0 0 9999px rgba(0, 0, 0, 0.074);
+ box-shadow: inset 0 0 0 9999px rgba(var(--dt-row-hover), 0.074);
+ }
+ table.dataTable.display tbody tr:hover > .sorting_3, table.dataTable.order-column.hover tbody tr:hover > .sorting_3 {
+ box-shadow: inset 0 0 0 9999px rgba(0, 0, 0, 0.062);
+ box-shadow: inset 0 0 0 9999px rgba(var(--dt-row-hover), 0.062);
+ }
+ table.dataTable.display tbody tr:hover.selected > .sorting_1, table.dataTable.order-column.hover tbody tr:hover.selected > .sorting_1 {
+ box-shadow: inset 0 0 0 9999px rgba(13, 110, 253, 0.982);
+ box-shadow: inset 0 0 0 9999px rgba(var(--dt-row-selected), 0.982);
+ }
+ table.dataTable.display tbody tr:hover.selected > .sorting_2, table.dataTable.order-column.hover tbody tr:hover.selected > .sorting_2 {
+ box-shadow: inset 0 0 0 9999px rgba(13, 110, 253, 0.974);
+ box-shadow: inset 0 0 0 9999px rgba(var(--dt-row-selected), 0.974);
+ }
+ table.dataTable.display tbody tr:hover.selected > .sorting_3, table.dataTable.order-column.hover tbody tr:hover.selected > .sorting_3 {
+ box-shadow: inset 0 0 0 9999px rgba(13, 110, 253, 0.962);
+ box-shadow: inset 0 0 0 9999px rgba(var(--dt-row-selected), 0.962);
+ }
+ table.dataTable.compact thead th,
+ table.dataTable.compact thead td,
+ table.dataTable.compact tfoot th,
+ table.dataTable.compact tfoot td,
+ table.dataTable.compact tbody th,
+ table.dataTable.compact tbody td {
+ padding: 4px;
+ }
+
+ div.dt-container div.dt-layout-row {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ width: 100%;
+ margin: 0.75em 0;
+ }
+ div.dt-container div.dt-layout-row div.dt-layout-cell {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ }
+ div.dt-container div.dt-layout-row div.dt-layout-cell.dt-layout-start {
+ justify-content: flex-start;
+ margin-right: auto;
+ }
+ div.dt-container div.dt-layout-row div.dt-layout-cell.dt-layout-end {
+ justify-content: flex-end;
+ margin-left: auto;
+ }
+ div.dt-container div.dt-layout-row div.dt-layout-cell:empty {
+ display: none;
+ }
+
+ @media screen and (max-width: 767px) {
+ div.dt-container div.dt-layout-row:not(.dt-layout-table) {
+ display: block;
+ }
+ div.dt-container div.dt-layout-row:not(.dt-layout-table) div.dt-layout-cell {
+ display: block;
+ text-align: center;
+ }
+ div.dt-container div.dt-layout-row:not(.dt-layout-table) div.dt-layout-cell > * {
+ margin: 0.5em 0;
+ }
+ div.dt-container div.dt-layout-row:not(.dt-layout-table) div.dt-layout-cell.dt-layout-start {
+ margin-right: 0;
+ }
+ div.dt-container div.dt-layout-row:not(.dt-layout-table) div.dt-layout-cell.dt-layout-end {
+ margin-left: 0;
+ }
+ }
+ div.dt-container div.dt-layout-start > *:not(:last-child) {
+ margin-right: 1em;
+ }
+ div.dt-container div.dt-layout-end > *:not(:first-child) {
+ margin-left: 1em;
+ }
+ div.dt-container div.dt-layout-full {
+ width: 100%;
+ }
+ div.dt-container div.dt-layout-full > *:only-child {
+ margin-left: auto;
+ margin-right: auto;
+ }
+ div.dt-container div.dt-layout-table > div {
+ display: block !important;
+ }
+
+ @media screen and (max-width: 767px) {
+ div.dt-container div.dt-layout-start > *:not(:last-child) {
+ margin-right: 0;
+ }
+ div.dt-container div.dt-layout-end > *:not(:first-child) {
+ margin-left: 0;
+ }
+ }
+ /*
+ * Control feature layout
+ */
+ div.dt-container {
+ position: relative;
+ clear: both;
+ }
+ div.dt-container .dt-search input {
+ border: 1px solid #aaa;
+ border-radius: 3px;
+ padding: 5px;
+ background-color: transparent;
+ color: inherit;
+ margin-left: 3px;
+ }
+ div.dt-container .dt-input {
+ border: 1px solid #aaa;
+ border-radius: 3px;
+ padding: 5px;
+ background-color: transparent;
+ color: inherit;
+ }
+ div.dt-container select.dt-input {
+ padding: 4px;
+ }
+ div.dt-container .dt-paging .dt-paging-button {
+ box-sizing: border-box;
+ display: inline-block;
+ min-width: 1.5em;
+ padding: 0.5em 1em;
+ margin-left: 2px;
+ text-align: center;
+ text-decoration: none !important;
+ cursor: pointer;
+ color: inherit !important;
+ border: 1px solid transparent;
+ border-radius: 2px;
+ background: transparent;
+ }
+ div.dt-container .dt-paging .dt-paging-button.current, div.dt-container .dt-paging .dt-paging-button.current:hover {
+ color: inherit !important;
+ border: 1px solid rgba(0, 0, 0, 0.3);
+ background-color: rgba(0, 0, 0, 0.05);
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, rgba(230, 230, 230, 0.05)), color-stop(100%, rgba(0, 0, 0, 0.05))); /* Chrome,Safari4+ */
+ background: -webkit-linear-gradient(top, rgba(230, 230, 230, 0.05) 0%, rgba(0, 0, 0, 0.05) 100%); /* Chrome10+,Safari5.1+ */
+ background: -moz-linear-gradient(top, rgba(230, 230, 230, 0.05) 0%, rgba(0, 0, 0, 0.05) 100%); /* FF3.6+ */
+ background: -ms-linear-gradient(top, rgba(230, 230, 230, 0.05) 0%, rgba(0, 0, 0, 0.05) 100%); /* IE10+ */
+ background: -o-linear-gradient(top, rgba(230, 230, 230, 0.05) 0%, rgba(0, 0, 0, 0.05) 100%); /* Opera 11.10+ */
+ background: linear-gradient(to bottom, rgba(230, 230, 230, 0.05) 0%, rgba(0, 0, 0, 0.05) 100%); /* W3C */
+ }
+ div.dt-container .dt-paging .dt-paging-button.disabled, div.dt-container .dt-paging .dt-paging-button.disabled:hover, div.dt-container .dt-paging .dt-paging-button.disabled:active {
+ cursor: default;
+ color: rgba(0, 0, 0, 0.5) !important;
+ border: 1px solid transparent;
+ background: transparent;
+ box-shadow: none;
+ }
+ div.dt-container .dt-paging .dt-paging-button:hover {
+ color: white !important;
+ border: 1px solid #111;
+ background-color: #111;
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #585858), color-stop(100%, #111)); /* Chrome,Safari4+ */
+ background: -webkit-linear-gradient(top, #585858 0%, #111 100%); /* Chrome10+,Safari5.1+ */
+ background: -moz-linear-gradient(top, #585858 0%, #111 100%); /* FF3.6+ */
+ background: -ms-linear-gradient(top, #585858 0%, #111 100%); /* IE10+ */
+ background: -o-linear-gradient(top, #585858 0%, #111 100%); /* Opera 11.10+ */
+ background: linear-gradient(to bottom, #585858 0%, #111 100%); /* W3C */
+ }
+ div.dt-container .dt-paging .dt-paging-button:active {
+ outline: none;
+ background-color: #0c0c0c;
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #2b2b2b), color-stop(100%, #0c0c0c)); /* Chrome,Safari4+ */
+ background: -webkit-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%); /* Chrome10+,Safari5.1+ */
+ background: -moz-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%); /* FF3.6+ */
+ background: -ms-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%); /* IE10+ */
+ background: -o-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%); /* Opera 11.10+ */
+ background: linear-gradient(to bottom, #2b2b2b 0%, #0c0c0c 100%); /* W3C */
+ box-shadow: inset 0 0 3px #111;
+ }
+ div.dt-container .dt-paging .ellipsis {
+ padding: 0 1em;
+ }
+ div.dt-container .dt-length,
+ div.dt-container .dt-search,
+ div.dt-container .dt-info,
+ div.dt-container .dt-processing,
+ div.dt-container .dt-paging {
+ color: inherit;
+ }
+ div.dt-container .dataTables_scroll {
+ clear: both;
+ }
+ div.dt-container .dataTables_scroll div.dt-scroll-body {
+ -webkit-overflow-scrolling: touch;
+ }
+ div.dt-container .dataTables_scroll div.dt-scroll-body > table > thead > tr > th, div.dt-container .dataTables_scroll div.dt-scroll-body > table > thead > tr > td, div.dt-container .dataTables_scroll div.dt-scroll-body > table > tbody > tr > th, div.dt-container .dataTables_scroll div.dt-scroll-body > table > tbody > tr > td {
+ vertical-align: middle;
+ }
+ div.dt-container .dataTables_scroll div.dt-scroll-body > table > thead > tr > th > div.dataTables_sizing,
+ div.dt-container .dataTables_scroll div.dt-scroll-body > table > thead > tr > td > div.dataTables_sizing, div.dt-container .dataTables_scroll div.dt-scroll-body > table > tbody > tr > th > div.dataTables_sizing,
+ div.dt-container .dataTables_scroll div.dt-scroll-body > table > tbody > tr > td > div.dataTables_sizing {
+ height: 0;
+ overflow: hidden;
+ margin: 0 !important;
+ padding: 0 !important;
+ }
+ div.dt-container.dt-empty-footer tbody > tr:last-child > * {
+ border-bottom: 1px solid rgba(0, 0, 0, 0.3);
+ }
+ div.dt-container.dt-empty-footer .dt-scroll-body {
+ border-bottom: 1px solid rgba(0, 0, 0, 0.3);
+ }
+ div.dt-container.dt-empty-footer .dt-scroll-body tbody > tr:last-child > * {
+ border-bottom: none;
+ }
+
+ html.dark {
+ --dt-row-hover: 255, 255, 255;
+ --dt-row-stripe: 255, 255, 255;
+ --dt-column-ordering: 255, 255, 255;
+ }
+ html.dark table.dataTable > thead > tr > th,
+ html.dark table.dataTable > thead > tr > td {
+ border-bottom: 1px solid rgb(89, 91, 94);
+ }
+ html.dark table.dataTable > thead > tr > th:active,
+ html.dark table.dataTable > thead > tr > td:active {
+ outline: none;
+ }
+ html.dark table.dataTable > tfoot > tr > th,
+ html.dark table.dataTable > tfoot > tr > td {
+ border-top: 1px solid rgb(89, 91, 94);
+ }
+ html.dark table.dataTable.row-border > tbody > tr > *, html.dark table.dataTable.display > tbody > tr > * {
+ border-top: 1px solid rgb(64, 67, 70);
+ }
+ html.dark table.dataTable.row-border > tbody > tr:first-child > *, html.dark table.dataTable.display > tbody > tr:first-child > * {
+ border-top: none;
+ }
+ html.dark table.dataTable.row-border > tbody > tr.selected + tr.selected > td, html.dark table.dataTable.display > tbody > tr.selected + tr.selected > td {
+ border-top-color: rgba(13, 110, 253, 0.65);
+ border-top-color: rgba(var(--dt-row-selected), 0.65);
+ }
+ html.dark table.dataTable.cell-border > tbody > tr > th,
+ html.dark table.dataTable.cell-border > tbody > tr > td {
+ border-top: 1px solid rgb(64, 67, 70);
+ border-right: 1px solid rgb(64, 67, 70);
+ }
+ html.dark table.dataTable.cell-border > tbody > tr > th:first-child,
+ html.dark table.dataTable.cell-border > tbody > tr > td:first-child {
+ border-left: 1px solid rgb(64, 67, 70);
+ }
+ html.dark .dt-container.dt-empty-footer table.dataTable {
+ border-bottom: 1px solid rgb(89, 91, 94);
+ }
+ html.dark .dt-container .dt-search input,
+ html.dark .dt-container .dt-length select {
+ border: 1px solid rgba(255, 255, 255, 0.2);
+ background-color: var(--dt-html-background);
+ }
+ html.dark .dt-container .dt-paging .dt-paging-button.current, html.dark .dt-container .dt-paging .dt-paging-button.current:hover {
+ border: 1px solid rgb(89, 91, 94);
+ background: rgba(255, 255, 255, 0.15);
+ }
+ html.dark .dt-container .dt-paging .dt-paging-button.disabled, html.dark .dt-container .dt-paging .dt-paging-button.disabled:hover, html.dark .dt-container .dt-paging .dt-paging-button.disabled:active {
+ color: #666 !important;
+ }
+ html.dark .dt-container .dt-paging .dt-paging-button:hover {
+ border: 1px solid rgb(53, 53, 53);
+ background: rgb(53, 53, 53);
+ }
+ html.dark .dt-container .dt-paging .dt-paging-button:active {
+ background: #3a3a3a;
+ }
+
+ /*
+ * Overrides for RTL support
+ */
+ *[dir=rtl] table.dataTable thead th,
+ *[dir=rtl] table.dataTable thead td,
+ *[dir=rtl] table.dataTable tfoot th,
+ *[dir=rtl] table.dataTable tfoot td {
+ text-align: right;
+ }
+ *[dir=rtl] table.dataTable th.dt-type-numeric, *[dir=rtl] table.dataTable th.dt-type-date,
+ *[dir=rtl] table.dataTable td.dt-type-numeric,
+ *[dir=rtl] table.dataTable td.dt-type-date {
+ text-align: left;
+ }
+ *[dir=rtl] div.dt-container div.dt-layout-cell.dt-start {
+ text-align: right;
+ }
+ *[dir=rtl] div.dt-container div.dt-layout-cell.dt-end {
+ text-align: left;
+ }
+ *[dir=rtl] div.dt-container div.dt-search input {
+ margin: 0 3px 0 0;
+ }
+
+
+ @keyframes dtb-spinner {
+ 100% {
+ transform: rotate(360deg);
+ }
+ }
+ @-o-keyframes dtb-spinner {
+ 100% {
+ -o-transform: rotate(360deg);
+ transform: rotate(360deg);
+ }
+ }
+ @-ms-keyframes dtb-spinner {
+ 100% {
+ -ms-transform: rotate(360deg);
+ transform: rotate(360deg);
+ }
+ }
+ @-webkit-keyframes dtb-spinner {
+ 100% {
+ -webkit-transform: rotate(360deg);
+ transform: rotate(360deg);
+ }
+ }
+ @-moz-keyframes dtb-spinner {
+ 100% {
+ -moz-transform: rotate(360deg);
+ transform: rotate(360deg);
+ }
+ }
+ div.dataTables_wrapper {
+ position: relative;
+ }
+
+ div.dt-buttons {
+ position: initial;
+ }
+ div.dt-buttons .dt-button {
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ }
+
+ div.dt-button-info {
+ position: fixed;
+ top: 50%;
+ left: 50%;
+ width: 400px;
+ margin-top: -100px;
+ margin-left: -200px;
+ background-color: white;
+ border-radius: 0.75em;
+ box-shadow: 3px 4px 10px 1px rgba(0, 0, 0, 0.8);
+ text-align: center;
+ z-index: 2003;
+ overflow: hidden;
+ }
+ div.dt-button-info h2 {
+ padding: 2rem 2rem 1rem 2rem;
+ margin: 0;
+ font-weight: normal;
+ }
+ div.dt-button-info > div {
+ padding: 1em 2em 2em 2em;
+ }
+
+ div.dtb-popover-close {
+ position: absolute;
+ top: 6px;
+ right: 6px;
+ width: 22px;
+ height: 22px;
+ text-align: center;
+ border-radius: 3px;
+ cursor: pointer;
+ z-index: 2003;
+ }
+
+ button.dtb-hide-drop {
+ display: none !important;
+ }
+
+ div.dt-button-collection-title {
+ text-align: center;
+ padding: 0.3em 0.5em 0.5em;
+ margin-left: 0.5em;
+ margin-right: 0.5em;
+ font-size: 0.9em;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ }
+
+ div.dt-button-collection-title:empty {
+ display: none;
+ }
+
+ span.dt-button-spacer {
+ display: inline-block;
+ margin: 0.5em;
+ white-space: nowrap;
+ }
+ span.dt-button-spacer.bar {
+ border-left: 1px solid rgba(0, 0, 0, 0.3);
+ vertical-align: middle;
+ padding-left: 0.5em;
+ }
+ span.dt-button-spacer.bar:empty {
+ height: 1em;
+ width: 1px;
+ padding-left: 0;
+ }
+
+ div.dt-button-collection .dt-button-active {
+ padding-right: 3em;
+ }
+ div.dt-button-collection .dt-button-active:after {
+ position: absolute;
+ top: 50%;
+ margin-top: -10px;
+ right: 1em;
+ display: inline-block;
+ content: "✓";
+ color: inherit;
+ }
+ div.dt-button-collection .dt-button-active.dt-button-split {
+ padding-right: 0;
+ }
+ div.dt-button-collection .dt-button-active.dt-button-split:after {
+ display: none;
+ }
+ div.dt-button-collection .dt-button-active.dt-button-split > *:first-child {
+ padding-right: 3em;
+ }
+ div.dt-button-collection .dt-button-active.dt-button-split > *:first-child:after {
+ position: absolute;
+ top: 50%;
+ margin-top: -10px;
+ right: 1em;
+ display: inline-block;
+ content: "✓";
+ color: inherit;
+ }
+ div.dt-button-collection .dt-button-active-a a {
+ padding-right: 3em;
+ }
+ div.dt-button-collection .dt-button-active-a a:after {
+ position: absolute;
+ right: 1em;
+ display: inline-block;
+ content: "✓";
+ color: inherit;
+ }
+ div.dt-button-collection span.dt-button-spacer {
+ width: 100%;
+ font-size: 0.9em;
+ text-align: center;
+ margin: 0.5em 0;
+ }
+ div.dt-button-collection span.dt-button-spacer:empty {
+ height: 0;
+ width: 100%;
+ }
+ div.dt-button-collection span.dt-button-spacer.bar {
+ border-left: none;
+ border-bottom: 1px solid rgba(0, 0, 0, 0.1);
+ padding-left: 0;
+ }
+
+ @media print {
+ table.dataTable tr > * {
+ box-shadow: none !important;
+ }
+ }
+ html.dark div.dt-button-info {
+ background-color: var(--dt-html-background);
+ border: 1px solid rgba(255, 255, 255, 0.15);
+ }
+
+ div.dt-buttons > .dt-button,
+ div.dt-buttons > div.dt-button-split .dt-button {
+ position: relative;
+ display: inline-block;
+ box-sizing: border-box;
+ margin-left: 0.167em;
+ margin-right: 0.167em;
+ margin-bottom: 0.333em;
+ padding: 0.5em 1em;
+ border: 1px solid rgba(0, 0, 0, 0.3);
+ border-radius: 2px;
+ cursor: pointer;
+ font-size: 0.88em;
+ line-height: 1.6em;
+ color: inherit;
+ white-space: nowrap;
+ overflow: hidden;
+ background-color: rgba(0, 0, 0, 0.1); /* Fallback */
+ background: linear-gradient(to bottom, rgba(230, 230, 230, 0.1) 0%, rgba(0, 0, 0, 0.1) 100%);
+ filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr="rgba(230, 230, 230, 0.1)", EndColorStr="rgba(0, 0, 0, 0.1)");
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ text-decoration: none;
+ outline: none;
+ text-overflow: ellipsis;
+ }
+ div.dt-buttons > .dt-button:first-child,
+ div.dt-buttons > div.dt-button-split .dt-button:first-child {
+ margin-left: 0;
+ }
+ div.dt-buttons > .dt-button.disabled,
+ div.dt-buttons > div.dt-button-split .dt-button.disabled {
+ cursor: default;
+ opacity: 0.4;
+ }
+ div.dt-buttons > .dt-button.dt-button-active:not(.disabled),
+ div.dt-buttons > div.dt-button-split .dt-button.dt-button-active:not(.disabled) {
+ background-color: rgba(0, 0, 0, 0.1); /* Fallback */
+ background: linear-gradient(to bottom, rgba(179, 179, 179, 0.1) 0%, rgba(0, 0, 0, 0.1) 100%);
+ filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr="rgba(179, 179, 179, 0.1)", EndColorStr="rgba(0, 0, 0, 0.1)");
+ box-shadow: inset 1px 1px 3px #999999;
+ }
+ div.dt-buttons > .dt-button.dt-button-active:not(.disabled):hover:not(.disabled),
+ div.dt-buttons > div.dt-button-split .dt-button.dt-button-active:not(.disabled):hover:not(.disabled) {
+ box-shadow: inset 1px 1px 3px #999999;
+ background-color: rgba(0, 0, 0, 0.1); /* Fallback */
+ background: linear-gradient(to bottom, rgba(128, 128, 128, 0.1) 0%, rgba(0, 0, 0, 0.1) 100%);
+ filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr="rgba(128, 128, 128, 0.1)", EndColorStr="rgba(0, 0, 0, 0.1)");
+ }
+ div.dt-buttons > .dt-button:hover,
+ div.dt-buttons > div.dt-button-split .dt-button:hover {
+ text-decoration: none;
+ }
+ div.dt-buttons > .dt-button:hover:not(.disabled),
+ div.dt-buttons > div.dt-button-split .dt-button:hover:not(.disabled) {
+ border: 1px solid #666;
+ background-color: rgba(0, 0, 0, 0.1); /* Fallback */
+ background: linear-gradient(to bottom, rgba(153, 153, 153, 0.1) 0%, rgba(0, 0, 0, 0.1) 100%);
+ filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr="rgba(153, 153, 153, 0.1)", EndColorStr="rgba(0, 0, 0, 0.1)");
+ }
+ div.dt-buttons > .dt-button:focus:not(.disabled),
+ div.dt-buttons > div.dt-button-split .dt-button:focus:not(.disabled) {
+ outline: 2px solid rgb(53, 132, 228);
+ }
+ div.dt-buttons > .dt-button embed,
+ div.dt-buttons > div.dt-button-split .dt-button embed {
+ outline: none;
+ }
+ div.dt-buttons > div.dt-button-split .dt-button:first-child {
+ border-right: 1px solid rgba(0, 0, 0, 0.15);
+ border-top-right-radius: 0;
+ border-bottom-right-radius: 0;
+ }
+ div.dt-buttons > div.dt-button-split .dt-button:first-child:hover {
+ border-right: 1px solid #666;
+ }
+ div.dt-buttons > div.dt-button-split .dt-button:last-child {
+ border-left: 1px solid transparent;
+ border-top-left-radius: 0;
+ border-bottom-left-radius: 0;
+ }
+ div.dt-buttons > div.dt-button-split .dt-button:last-child:hover {
+ border-left: 1px solid #666;
+ }
+ div.dt-buttons span.dt-button-down-arrow {
+ position: relative;
+ top: -2px;
+ font-size: 10px;
+ padding-left: 10px;
+ line-height: 1em;
+ opacity: 0.6;
+ }
+ div.dt-buttons div.dt-button-split {
+ display: inline-block;
+ }
+ div.dt-buttons div.dt-button-split .dt-button:first-child {
+ margin-right: 0;
+ }
+ div.dt-buttons div.dt-button-split .dt-button:last-child {
+ margin-left: -1px;
+ padding-left: 0.75em;
+ padding-right: 0.75em;
+ z-index: 2;
+ }
+ div.dt-buttons div.dt-button-split .dt-button:last-child span {
+ padding-left: 0;
+ }
+
+ div.dt-button-collection {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 200px;
+ margin-top: 3px;
+ margin-bottom: 3px;
+ padding: 0.75em 0;
+ border: 1px solid rgba(0, 0, 0, 0.4);
+ background-color: white;
+ overflow: hidden;
+ z-index: 2002;
+ border-radius: 5px;
+ box-shadow: 3px 4px 10px 1px rgba(0, 0, 0, 0.3);
+ box-sizing: border-box;
+ }
+ div.dt-button-collection .dt-button {
+ position: relative;
+ left: 0;
+ right: 0;
+ width: 100%;
+ display: block;
+ float: none;
+ background: none;
+ margin: 0;
+ padding: 0.5em 1em;
+ border: none;
+ text-align: left;
+ cursor: pointer;
+ color: inherit;
+ }
+ div.dt-button-collection .dt-button.dt-button-active {
+ background: none;
+ box-shadow: none;
+ }
+ div.dt-button-collection .dt-button.disabled {
+ cursor: default;
+ opacity: 0.4;
+ }
+ div.dt-button-collection .dt-button:hover:not(.disabled) {
+ border: none;
+ background: rgba(153, 153, 153, 0.1);
+ box-shadow: none;
+ }
+ div.dt-button-collection div.dt-button-split {
+ display: flex;
+ flex-direction: row;
+ flex-wrap: wrap;
+ justify-content: flex-start;
+ align-content: flex-start;
+ align-items: stretch;
+ }
+ div.dt-button-collection div.dt-button-split button.dt-button {
+ margin: 0;
+ display: inline-block;
+ width: 0;
+ flex-grow: 1;
+ flex-shrink: 0;
+ flex-basis: 50px;
+ }
+ div.dt-button-collection div.dt-button-split button.dt-button-split-drop {
+ min-width: 33px;
+ flex: 0;
+ }
+ div.dt-button-collection.fixed .dt-button {
+ border-radius: 0.25em;
+ background: rgba(255, 255, 255, 0.1);
+ }
+ div.dt-button-collection.fixed {
+ position: fixed;
+ display: block;
+ top: 50%;
+ left: 50%;
+ margin-left: -75px;
+ border-radius: 5px;
+ background-color: white;
+ padding: 0.5em;
+ }
+ div.dt-button-collection.fixed.two-column {
+ margin-left: -200px;
+ }
+ div.dt-button-collection.fixed.three-column {
+ margin-left: -225px;
+ }
+ div.dt-button-collection.fixed.four-column {
+ margin-left: -300px;
+ }
+ div.dt-button-collection.fixed.columns {
+ margin-left: -409px;
+ }
+ @media screen and (max-width: 1024px) {
+ div.dt-button-collection.fixed.columns {
+ margin-left: -308px;
+ }
+ }
+ @media screen and (max-width: 640px) {
+ div.dt-button-collection.fixed.columns {
+ margin-left: -203px;
+ }
+ }
+ @media screen and (max-width: 460px) {
+ div.dt-button-collection.fixed.columns {
+ margin-left: -100px;
+ }
+ }
+ div.dt-button-collection.fixed > :last-child {
+ max-height: 100vh;
+ overflow: auto;
+ }
+ div.dt-button-collection.two-column > :last-child, div.dt-button-collection.three-column > :last-child, div.dt-button-collection.four-column > :last-child {
+ display: block !important;
+ -webkit-column-gap: 8px;
+ -moz-column-gap: 8px;
+ -ms-column-gap: 8px;
+ -o-column-gap: 8px;
+ column-gap: 8px;
+ }
+ div.dt-button-collection.two-column > :last-child > *, div.dt-button-collection.three-column > :last-child > *, div.dt-button-collection.four-column > :last-child > * {
+ -webkit-column-break-inside: avoid;
+ break-inside: avoid;
+ }
+ div.dt-button-collection.two-column {
+ width: 400px;
+ }
+ div.dt-button-collection.two-column > :last-child {
+ padding-bottom: 1px;
+ column-count: 2;
+ }
+ div.dt-button-collection.three-column {
+ width: 450px;
+ }
+ div.dt-button-collection.three-column > :last-child {
+ padding-bottom: 1px;
+ column-count: 3;
+ }
+ div.dt-button-collection.four-column {
+ width: 600px;
+ }
+ div.dt-button-collection.four-column > :last-child {
+ padding-bottom: 1px;
+ column-count: 4;
+ }
+ div.dt-button-collection .dt-button {
+ border-radius: 0;
+ }
+ div.dt-button-collection.columns {
+ width: auto;
+ }
+ div.dt-button-collection.columns > :last-child {
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: flex-start;
+ align-items: center;
+ gap: 6px;
+ width: 818px;
+ padding-bottom: 1px;
+ }
+ div.dt-button-collection.columns > :last-child .dt-button {
+ min-width: 200px;
+ flex: 0 1;
+ margin: 0;
+ }
+ div.dt-button-collection.columns.dtb-b3 > :last-child, div.dt-button-collection.columns.dtb-b2 > :last-child, div.dt-button-collection.columns.dtb-b1 > :last-child {
+ justify-content: space-between;
+ }
+ div.dt-button-collection.columns.dtb-b3 .dt-button {
+ flex: 1 1 32%;
+ }
+ div.dt-button-collection.columns.dtb-b2 .dt-button {
+ flex: 1 1 48%;
+ }
+ div.dt-button-collection.columns.dtb-b1 .dt-button {
+ flex: 1 1 100%;
+ }
+ @media screen and (max-width: 1024px) {
+ div.dt-button-collection.columns > :last-child {
+ width: 612px;
+ }
+ }
+ @media screen and (max-width: 640px) {
+ div.dt-button-collection.columns > :last-child {
+ width: 406px;
+ }
+ div.dt-button-collection.columns.dtb-b3 .dt-button {
+ flex: 0 1 32%;
+ }
+ }
+ @media screen and (max-width: 460px) {
+ div.dt-button-collection.columns > :last-child {
+ width: 200px;
+ }
+ }
+
+ div.dt-button-background {
+ position: fixed;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ background: rgba(0, 0, 0, 0.7); /* Fallback */
+ background: radial-gradient(ellipse farthest-corner at center, rgba(0, 0, 0, 0.3) 0%, rgba(0, 0, 0, 0.7) 100%); /* W3C Markup, IE10 Release Preview */
+ z-index: 2001;
+ }
+
+ .dt-button.processing {
+ color: rgba(0, 0, 0, 0.2);
+ }
+ .dt-button.processing:after {
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ width: 16px;
+ height: 16px;
+ margin: -8px 0 0 -8px;
+ box-sizing: border-box;
+ display: block;
+ content: " ";
+ border: 2px solid rgb(40, 40, 40);
+ border-radius: 50%;
+ border-left-color: transparent;
+ border-right-color: transparent;
+ animation: dtb-spinner 1500ms infinite linear;
+ -o-animation: dtb-spinner 1500ms infinite linear;
+ -ms-animation: dtb-spinner 1500ms infinite linear;
+ -webkit-animation: dtb-spinner 1500ms infinite linear;
+ -moz-animation: dtb-spinner 1500ms infinite linear;
+ }
+
+ @media screen and (max-width: 640px) {
+ div.dt-buttons {
+ float: none !important;
+ text-align: center;
+ }
+ }
+ html.dark div.dt-buttons > .dt-button,
+ html.dark div.dt-buttons > div.dt-button-split .dt-button {
+ border: 1px solid rgb(89, 91, 94);
+ background: rgba(255, 255, 255, 0.15);
+ }
+ html.dark div.dt-buttons > .dt-button.dt-button-active:not(.disabled),
+ html.dark div.dt-buttons > div.dt-button-split .dt-button.dt-button-active:not(.disabled) {
+ background: rgba(179, 179, 179, 0.15);
+ box-shadow: inset 1px 1px 2px black;
+ }
+ html.dark div.dt-buttons > .dt-button.dt-button-active:not(.disabled):hover:not(.disabled),
+ html.dark div.dt-buttons > div.dt-button-split .dt-button.dt-button-active:not(.disabled):hover:not(.disabled) {
+ background: rgba(128, 128, 128, 0.15);
+ box-shadow: inset 1px 1px 3px black;
+ }
+ html.dark div.dt-buttons > .dt-button:hover:not(.disabled),
+ html.dark div.dt-buttons > div.dt-button-split .dt-button:hover:not(.disabled) {
+ background: rgba(179, 179, 179, 0.15);
+ }
+ html.dark div.dt-buttons > .dt-button:focus:not(.disabled),
+ html.dark div.dt-buttons > div.dt-button-split .dt-button:focus:not(.disabled) {
+ outline: 2px solid rgb(110, 168, 254);
+ }
+ html.dark div.dt-buttons > div.dt-button-split .dt-button:first-child {
+ border-right: 1px solid rgba(255, 255, 255, 0.1);
+ }
+ html.dark div.dt-buttons > div.dt-button-split .dt-button:first-child:hover {
+ border-right: 1px solid rgb(89, 91, 94);
+ }
+ html.dark div.dt-buttons > div.dt-button-split .dt-button:last-child:hover {
+ border-left: 1px solid rgb(89, 91, 94);
+ }
+ html.dark div.dt-button-collection {
+ border: 1px solid rgba(255, 255, 255, 0.15);
+ background-color: rgb(33, 37, 41);
+ box-shadow: 3px 4px 10px 1px rgba(0, 0, 0, 0.8);
+ }
+
+
+ body.dtcr-dragging {
+ overflow-x: hidden;
+ }
+
+ table.dtcr-cloned.dataTable {
+ position: absolute !important;
+ background-color: rgba(255, 255, 255, 0.7);
+ z-index: 202;
+ border-radius: 4px;
+ }
+
+ table.dataTable tbody tr td.dtcr-moving {
+ background-color: rgba(127, 127, 127, 0.15);
+ }
+ table.dataTable tbody tr td.dtcr-moving-first {
+ border-left: 1px solid #0259C4;
+ }
+ table.dataTable tbody tr td.dtcr-moving-last {
+ border-right: 1px solid #0259C4;
+ }
+
+ html.dark table.dtcr-cloned.dataTable {
+ background-color: rgba(33, 33, 33, 0.9);
+ }
+
+
+ table.dataTable thead tr > .dtfc-fixed-start,
+ table.dataTable thead tr > .dtfc-fixed-end,
+ table.dataTable tfoot tr > .dtfc-fixed-start,
+ table.dataTable tfoot tr > .dtfc-fixed-end {
+ top: 0;
+ bottom: 0;
+ z-index: 3;
+ background-color: white;
+ }
+ table.dataTable tbody tr > .dtfc-fixed-start,
+ table.dataTable tbody tr > .dtfc-fixed-end {
+ z-index: 1;
+ background-color: white;
+ }
+ table.dataTable tr > .dtfc-fixed-left::after,
+ table.dataTable tr > .dtfc-fixed-right::after {
+ position: absolute;
+ top: 0;
+ bottom: 0;
+ width: 10px;
+ transition: box-shadow 0.3s;
+ content: "";
+ pointer-events: none;
+ }
+ table.dataTable tr > .dtfc-fixed-left::after {
+ right: 0;
+ transform: translateX(100%);
+ }
+ table.dataTable tr > .dtfc-fixed-right::after {
+ left: 0;
+ transform: translateX(-80%);
+ }
+ table.dataTable.dtfc-scrolling-left tr > .dtfc-fixed-left::after {
+ box-shadow: inset 10px 0 8px -8px rgba(0, 0, 0, 0.2);
+ }
+ table.dataTable.dtfc-scrolling-right tr > .dtfc-fixed-right::after {
+ box-shadow: inset -10px 0 8px -8px rgba(0, 0, 0, 0.2);
+ }
+ table.dataTable.dtfc-scrolling-right tr > .dtfc-fixed-right + .dtfc-fixed-right::after {
+ box-shadow: none;
+ }
+
+ div.dt-scroll,
+ div.dtfh-floatingparent {
+ position: relative;
+ }
+ div.dt-scroll div.dtfc-top-blocker,
+ div.dt-scroll div.dtfc-bottom-blocker,
+ div.dtfh-floatingparent div.dtfc-top-blocker,
+ div.dtfh-floatingparent div.dtfc-bottom-blocker {
+ position: absolute;
+ background-color: white;
+ }
+
+ html.dark table.dataTable thead tr > .dtfc-fixed-start,
+ html.dark table.dataTable thead tr > .dtfc-fixed-end,
+ html.dark table.dataTable tfoot tr > .dtfc-fixed-start,
+ html.dark table.dataTable tfoot tr > .dtfc-fixed-end {
+ background-color: var(--dt-html-background);
+ }
+ html.dark table.dataTable tbody tr > .dtfc-fixed-start,
+ html.dark table.dataTable tbody tr > .dtfc-fixed-end {
+ background-color: var(--dt-html-background);
+ }
+ html.dark table.dataTable.dtfc-scrolling-left tbody > tr > .dtfc-fixed-left::after {
+ box-shadow: inset 10px 0 8px -8px rgba(0, 0, 0, 0.3);
+ }
+ html.dark table.dataTable.dtfc-scrolling-right tbody > tr > .dtfc-fixed-right::after {
+ box-shadow: inset -10px 0 8px -8px rgba(0, 0, 0, 0.3);
+ }
+ html.dark table.dataTable.dtfc-scrolling-right tbody > tr > .dtfc-fixed-right + .dtfc-fixed-right::after {
+ box-shadow: none;
+ }
+ html.dark div.dtfc-top-blocker,
+ html.dark div.dtfc-bottom-blocker {
+ background-color: var(--dt-html-background);
+ }
+
+
+ table.fixedHeader-floating,
+ table.fixedHeader-locked {
+ position: relative !important;
+ background-color: var(--dt-html-background);
+ background-color: var(--dt-html-background);
+ }
+
+ @media print {
+ table.fixedHeader-floating {
+ display: none;
+ }
+ }
+
+
+ div.dt-button-collection {
+ overflow: visible !important;
+ z-index: 2002 !important;
+ }
+ div.dt-button-collection div.dtsb-searchBuilder {
+ padding-left: 1em !important;
+ padding-right: 1em !important;
+ }
+
+ div.dt-button-collection.dtb-collection-closeable div.dtsb-titleRow {
+ padding-right: 40px;
+ }
+
+ .dtsb-greyscale {
+ border: 1px solid #cecece !important;
+ }
+
+ div.dtsb-logicContainer .dtsb-greyscale {
+ border: none !important;
+ }
+
+ div.dtsb-searchBuilder {
+ justify-content: space-evenly;
+ cursor: default;
+ margin-bottom: 1em;
+ text-align: left;
+ width: 100%;
+ }
+ div.dtsb-searchBuilder button.dtsb-button,
+ div.dtsb-searchBuilder select {
+ font-size: 1em;
+ }
+ div.dtsb-searchBuilder div.dtsb-titleRow {
+ justify-content: space-evenly;
+ margin-bottom: 0.5em;
+ }
+ div.dtsb-searchBuilder div.dtsb-titleRow div.dtsb-title {
+ display: inline-block;
+ padding-top: 14px;
+ }
+ div.dtsb-searchBuilder div.dtsb-titleRow div.dtsb-title:empty {
+ display: inline;
+ }
+ div.dtsb-searchBuilder div.dtsb-titleRow button.dtsb-clearAll {
+ float: right;
+ margin-bottom: 0.8em;
+ }
+ div.dtsb-searchBuilder div.dtsb-vertical .dtsb-value, div.dtsb-searchBuilder div.dtsb-vertical .dtsb-data, div.dtsb-searchBuilder div.dtsb-vertical .dtsb-condition {
+ display: block;
+ }
+ div.dtsb-searchBuilder div.dtsb-group {
+ position: relative;
+ clear: both;
+ margin-bottom: 0.8em;
+ }
+ div.dtsb-searchBuilder div.dtsb-group button.dtsb-search {
+ float: right;
+ }
+ div.dtsb-searchBuilder div.dtsb-group button.dtsb-clearGroup {
+ margin: 2px;
+ text-align: center;
+ padding: 0;
+ }
+ div.dtsb-searchBuilder div.dtsb-group div.dtsb-logicContainer {
+ -webkit-transform: rotate(90deg);
+ -moz-transform: rotate(90deg);
+ -o-transform: rotate(90deg);
+ -ms-transform: rotate(90deg);
+ transform: rotate(90deg);
+ position: absolute;
+ margin-top: 0.8em;
+ margin-right: 0.8em;
+ }
+ div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria {
+ margin-bottom: 0.8em;
+ display: flex;
+ justify-content: start;
+ flex-flow: row wrap;
+ }
+ div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria select.dtsb-dropDown,
+ div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria input.dtsb-input {
+ padding: 0.4em;
+ margin-right: 0.8em;
+ min-width: 5em;
+ max-width: 20em;
+ color: inherit;
+ font-size: 1em;
+ }
+ div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria select.dtsb-dropDown option.dtsb-notItalic,
+ div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria input.dtsb-input option.dtsb-notItalic {
+ font-style: normal;
+ }
+ div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria select.dtsb-italic {
+ font-style: italic;
+ }
+ div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria div.dtsb-inputCont {
+ flex: 1;
+ white-space: nowrap;
+ }
+ div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria div.dtsb-inputCont span.dtsb-joiner {
+ margin-right: 0.8em;
+ }
+ div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria div.dtsb-inputCont input.dtsb-value {
+ width: 33%;
+ }
+ div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria div.dtsb-inputCont select,
+ div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria div.dtsb-inputCont input {
+ height: 100%;
+ box-sizing: border-box;
+ }
+ div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria div.dtsb-buttonContainer {
+ margin-left: auto;
+ display: inline-block;
+ }
+ div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria div.dtsb-buttonContainer button.dtsb-delete, div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria div.dtsb-buttonContainer button.dtsb-right, div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria div.dtsb-buttonContainer button.dtsb-left {
+ margin-right: 0.8em;
+ }
+ div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria div.dtsb-buttonContainer button.dtsb-delete:last-child, div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria div.dtsb-buttonContainer button.dtsb-right:last-child, div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria div.dtsb-buttonContainer button.dtsb-left:last-child {
+ margin-right: 0;
+ }
+ @media screen and (max-width: 550px) {
+ div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria {
+ display: flex;
+ flex-flow: none;
+ flex-direction: column;
+ justify-content: start;
+ padding-right: calc(35px + 0.8em);
+ margin-bottom: 0px;
+ }
+ div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria:not(:first-child), div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria:not(:nth-child(2)), div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria:not(:last-child) {
+ padding-top: 0.8em;
+ }
+ div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria:first-child, div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria:nth-child(2), div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria:last-child {
+ padding-top: 0em;
+ }
+ div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria select.dtsb-dropDown,
+ div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria input.dtsb-input {
+ max-width: none;
+ width: 100%;
+ margin-bottom: 0.8em;
+ margin-right: 0.8em;
+ }
+ div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria div.dtsb-inputCont {
+ margin-right: 0.8em;
+ }
+ div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria div.dtsb-buttonContainer {
+ position: absolute;
+ width: 35px;
+ display: flex;
+ flex-wrap: wrap-reverse;
+ right: 0;
+ }
+ div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria div.dtsb-buttonContainer button {
+ margin-right: 0px !important;
+ }
+ }
+
+ div.dtsb-searchBuilder button,
+ div.dtsb-searchBuilder select.dtsb-dropDown,
+ div.dtsb-searchBuilder input {
+ background-color: #f9f9f9;
+ }
+ div.dtsb-searchBuilder button.dtsb-button {
+ position: relative;
+ display: inline-block;
+ box-sizing: border-box;
+ padding: 0.5em 1em;
+ border: 1px solid rgba(0, 0, 0, 0.3);
+ border-radius: 2px;
+ cursor: pointer;
+ font-size: 0.88em;
+ line-height: 1.6em;
+ color: inherit;
+ white-space: nowrap;
+ overflow: hidden;
+ background-color: rgba(0, 0, 0, 0.1); /* Fallback */
+ background: linear-gradient(to bottom, rgba(230, 230, 230, 0.1) 0%, rgba(0, 0, 0, 0.1) 100%);
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ text-decoration: none;
+ outline: none;
+ text-overflow: ellipsis;
+ }
+ div.dtsb-searchBuilder button.dtsb-button:hover {
+ background-color: #cecece;
+ cursor: pointer;
+ }
+ div.dtsb-searchBuilder div.dtsb-logicContainer {
+ border: 1px solid rgba(0, 0, 0, 0.3);
+ background-color: rgba(0, 0, 0, 0.1); /* Fallback */
+ background: linear-gradient(to right, rgba(230, 230, 230, 0.1) 0%, rgba(0, 0, 0, 0.1) 100%);
+ }
+ div.dtsb-searchBuilder div.dtsb-logicContainer button {
+ border: 1px solid transparent;
+ background: transparent;
+ }
+ div.dtsb-searchBuilder button.dtsb-clearGroup {
+ min-width: 2em;
+ padding: 0;
+ }
+ div.dtsb-searchBuilder button.dtsb-iptbtn {
+ min-width: 100px;
+ text-align: left;
+ }
+ div.dtsb-searchBuilder div.dtsb-group div.dtsb-logicContainer {
+ border: 1px solid;
+ border-color: #cecece;
+ border-radius: 3px;
+ display: flex;
+ flex-direction: row;
+ flex-wrap: wrap;
+ justify-content: flex-start;
+ align-content: flex-start;
+ align-items: flex-start;
+ }
+ div.dtsb-searchBuilder div.dtsb-group div.dtsb-logicContainer button.dtsb-logic {
+ border: none;
+ border-radius: 0px;
+ flex-grow: 1;
+ flex-shrink: 0;
+ flex-basis: 3em;
+ margin: 0px;
+ }
+ div.dtsb-searchBuilder div.dtsb-group div.dtsb-logicContainer button.dtsb-clearGroup {
+ border: none;
+ border-radius: 0px;
+ width: 2em;
+ margin: 0px;
+ }
+ div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria select.dtsb-dropDown,
+ div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria input.dtsb-input {
+ border: 1px solid;
+ border-radius: 3px;
+ }
+ div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria select.dtsb-condition {
+ border-color: #48b13c;
+ }
+ div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria select.dtsb-data {
+ border-color: #e70f00;
+ }
+ div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria select.dtsb-value, div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria input.dtsb-value {
+ border-color: #0069ba;
+ }
+
+ html.dark div.dtsb-searchBuilder button.dtsb-button,
+ html.dark div.dtsb-searchBuilder select.dtsb-dropDown,
+ html.dark div.dtsb-searchBuilder input.dtsb-input {
+ background-color: rgb(66, 69, 73) !important;
+ color-scheme: dark;
+ }
+ html.dark div.dtsb-searchBuilder button.dtsb-button {
+ border: 1px solid rgb(89, 91, 94);
+ background: rgba(255, 255, 255, 0.15);
+ }
+ html.dark div.dtsb-searchBuilder button.dtsb-button:hover {
+ background: rgba(179, 179, 179, 0.15);
+ }
+ html.dark div.dtsb-searchBuilder div.dtsb-logicContainer {
+ border: 1px solid rgb(89, 91, 94);
+ }
+ html.dark div.dtsb-searchBuilder .dtsb-greyscale {
+ border-color: rgba(255, 255, 255, 0.2) !important;
+ }
+
+
datatables.js
Changed around line 1
+ /*
+ * This combined file was created by the DataTables downloader builder:
+ * https://datatables.net/download
+ *
+ * To rebuild or modify this file with the latest versions of the included
+ * software please visit:
+ * https://datatables.net/download/#dt/dt-2.1.7/b-3.1.2/b-colvis-3.1.2/b-html5-3.1.2/cr-2.0.4/fc-5.0.2/fh-4.0.1/sb-1.8.0
+ *
+ * Included libraries:
+ * DataTables 2.1.7, Buttons 3.1.2, Column visibility 3.1.2, HTML5 export 3.1.2, ColReorder 2.0.4, FixedColumns 5.0.2, FixedHeader 4.0.1, SearchBuilder 1.8.0
+ */
+
+ /*! DataTables 2.1.7
+ * © SpryMedia Ltd - datatables.net/license
+ */
+
+ /**
+ * @summary DataTables
+ * @description Paginate, search and order HTML tables
+ * @version 2.1.7
+ * @author SpryMedia Ltd
+ * @contact www.datatables.net
+ * @copyright SpryMedia Ltd.
+ *
+ * This source file is free software, available under the following license:
+ * MIT license - https://datatables.net/license
+ *
+ * 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: https://www.datatables.net
+ */
+
+ ;(function (factory) {
+ "use strict"
+
+ if (typeof define === "function" && define.amd) {
+ // AMD
+ define(["jquery"], function ($) {
+ return factory($, window, document)
+ })
+ } else if (typeof exports === "object") {
+ // CommonJS
+ // jQuery's factory checks for a global window - if it isn't present then it
+ // returns a factory function that expects the window object
+ var jq = require("jquery")
+
+ 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)
+ }
+
+ return factory($, root, root.document)
+ }
+ } else {
+ module.exports = factory(jq, window, window.document)
+ }
+ } else {
+ // Browser
+ window.DataTable = factory(jQuery, window, document)
+ }
+ })(function ($, window, document) {
+ "use strict"
+
+ var DataTable = function (selector, options) {
+ // Check if called with a window or jQuery object for DOM less applications
+ // This is for backwards compatibility
+ if (DataTable.factory(selector, options)) {
+ return DataTable
+ }
+
+ // When creating with `new`, create a new DataTable, returning the API instance
+ if (this instanceof DataTable) {
+ return $(selector).DataTable(options)
+ } else {
+ // Argument switching
+ options = selector
+ }
+
+ var _that = this
+ var emptyInit = options === undefined
+ var len = this.length
+
+ if (emptyInit) {
+ options = {}
+ }
+
+ // Method to get DT API instance from jQuery object
+ this.api = function () {
+ return new _Api(this)
+ }
+
+ this.each(function () {
+ // For each initialisation we want to give it a clean initialisation
+ // object that can be bashed around
+ var o = {}
+ var oInit =
+ len > 1 // optimisation for single table case
+ ? _fnExtend(o, options, true)
+ : options
+
+ var i = 0,
+ iLen
+ var sId = this.getAttribute("id")
+ var defaults = DataTable.defaults
+ var $this = $(this)
+
+ /* Sanity check */
+ if (this.nodeName.toLowerCase() != "table") {
+ _fnLog(null, 0, "Non-table node initialisation (" + this.nodeName + ")", 2)
+ return
+ }
+
+ $(this).trigger("options.dt", oInit)
+
+ /* Backwards compatibility for the defaults */
+ _fnCompatOpts(defaults)
+ _fnCompatCols(defaults.column)
+
+ /* Convert the camel-case defaults to Hungarian */
+ _fnCamelToHungarian(defaults, defaults, true)
+ _fnCamelToHungarian(defaults.column, defaults.column, true)
+
+ /* Setting up the initialisation object */
+ _fnCamelToHungarian(defaults, $.extend(oInit, $this.data()), true)
+
+ /* Check to see if we are re-initialising a table */
+ var allSettings = DataTable.settings
+ for (i = 0, iLen = allSettings.length; i < iLen; i++) {
+ var s = allSettings[i]
+
+ /* Base check on table node */
+ if (s.nTable == this || (s.nTHead && s.nTHead.parentNode == this) || (s.nTFoot && s.nTFoot.parentNode == this)) {
+ var bRetrieve = oInit.bRetrieve !== undefined ? oInit.bRetrieve : defaults.bRetrieve
+ var bDestroy = oInit.bDestroy !== undefined ? oInit.bDestroy : defaults.bDestroy
+
+ if (emptyInit || bRetrieve) {
+ return s.oInstance
+ } else if (bDestroy) {
+ new DataTable.Api(s).destroy()
+ break
+ } else {
+ _fnLog(s, 0, "Cannot reinitialise DataTable", 3)
+ return
+ }
+ }
+
+ /* If the element we are initialising has the same ID as a table which was previously
+ * initialised, but the table nodes don't match (from before) then we destroy the old
+ * instance by simply deleting it. This is under the assumption that the table has been
+ * destroyed by other methods. Anyone using non-id selectors will need to do this manually
+ */
+ if (s.sTableId == this.id) {
+ allSettings.splice(i, 1)
+ break
+ }
+ }
+
+ /* Ensure the table has an ID - required for accessibility */
+ if (sId === null || sId === "") {
+ sId = "DataTables_Table_" + DataTable.ext._unique++
+ this.id = sId
+ }
+
+ /* Create the settings object for this table and set some of the default parameters */
+ var oSettings = $.extend(true, {}, DataTable.models.oSettings, {
+ sDestroyWidth: $this[0].style.width,
+ sInstance: sId,
+ sTableId: sId,
+ colgroup: $("").prependTo(this),
+ fastData: function (row, column, type) {
+ return _fnGetCellData(oSettings, row, column, type)
+ }
+ })
+ oSettings.nTable = this
+ oSettings.oInit = oInit
+
+ allSettings.push(oSettings)
+
+ // Make a single API instance available for internal handling
+ oSettings.api = new _Api(oSettings)
+
+ // Need to add the instance after the instance after the settings object has been added
+ // to the settings array, so we can self reference the table instance if more than one
+ oSettings.oInstance = _that.length === 1 ? _that : $this.dataTable()
+
+ // Backwards compatibility, before we apply all the defaults
+ _fnCompatOpts(oInit)
+
+ // If the length menu is given, but the init display length is not, use the length menu
+ if (oInit.aLengthMenu && !oInit.iDisplayLength) {
+ oInit.iDisplayLength = Array.isArray(oInit.aLengthMenu[0]) ? oInit.aLengthMenu[0][0] : $.isPlainObject(oInit.aLengthMenu[0]) ? oInit.aLengthMenu[0].value : oInit.aLengthMenu[0]
+ }
+
+ // Apply the defaults and init options to make a single init object will all
+ // options defined from defaults and instance options.
+ oInit = _fnExtend($.extend(true, {}, defaults), oInit)
+
+ // Map the initialisation options onto the settings object
+ _fnMap(oSettings.oFeatures, oInit, ["bPaginate", "bLengthChange", "bFilter", "bSort", "bSortMulti", "bInfo", "bProcessing", "bAutoWidth", "bSortClasses", "bServerSide", "bDeferRender"])
+ _fnMap(oSettings, oInit, [
+ "ajax",
+ "fnFormatNumber",
+ "sServerMethod",
+ "aaSorting",
+ "aaSortingFixed",
+ "aLengthMenu",
+ "sPaginationType",
+ "iStateDuration",
+ "bSortCellsTop",
+ "iTabIndex",
+ "sDom",
+ "fnStateLoadCallback",
+ "fnStateSaveCallback",
+ "renderer",
+ "searchDelay",
+ "rowId",
+ "caption",
+ "layout",
+ "orderDescReverse",
+ "typeDetect",
+ ["iCookieDuration", "iStateDuration"], // backwards compat
+ ["oSearch", "oPreviousSearch"],
+ ["aoSearchCols", "aoPreSearchCols"],
+ ["iDisplayLength", "_iDisplayLength"]
+ ])
+ _fnMap(oSettings.oScroll, oInit, [
+ ["sScrollX", "sX"],
+ ["sScrollXInner", "sXInner"],
+ ["sScrollY", "sY"],
+ ["bScrollCollapse", "bCollapse"]
+ ])
+ _fnMap(oSettings.oLanguage, oInit, "fnInfoCallback")
+
+ /* Callback functions which are array driven */
+ _fnCallbackReg(oSettings, "aoDrawCallback", oInit.fnDrawCallback)
+ _fnCallbackReg(oSettings, "aoStateSaveParams", oInit.fnStateSaveParams)
+ _fnCallbackReg(oSettings, "aoStateLoadParams", oInit.fnStateLoadParams)
+ _fnCallbackReg(oSettings, "aoStateLoaded", oInit.fnStateLoaded)
+ _fnCallbackReg(oSettings, "aoRowCallback", oInit.fnRowCallback)
+ _fnCallbackReg(oSettings, "aoRowCreatedCallback", oInit.fnCreatedRow)
+ _fnCallbackReg(oSettings, "aoHeaderCallback", oInit.fnHeaderCallback)
+ _fnCallbackReg(oSettings, "aoFooterCallback", oInit.fnFooterCallback)
+ _fnCallbackReg(oSettings, "aoInitComplete", oInit.fnInitComplete)
+ _fnCallbackReg(oSettings, "aoPreDrawCallback", oInit.fnPreDrawCallback)
+
+ oSettings.rowIdFn = _fnGetObjectDataFn(oInit.rowId)
+
+ /* Browser support detection */
+ _fnBrowserDetect(oSettings)
+
+ var oClasses = oSettings.oClasses
+
+ $.extend(oClasses, DataTable.ext.classes, oInit.oClasses)
+ $this.addClass(oClasses.table)
+
+ if (!oSettings.oFeatures.bPaginate) {
+ oInit.iDisplayStart = 0
+ }
+
+ if (oSettings.iInitDisplayStart === undefined) {
+ /* Display start point, taking into account the save saving */
+ oSettings.iInitDisplayStart = oInit.iDisplayStart
+ oSettings._iDisplayStart = oInit.iDisplayStart
+ }
+
+ var defer = oInit.iDeferLoading
+ if (defer !== null) {
+ oSettings.deferLoading = true
+
+ var tmp = Array.isArray(defer)
+ oSettings._iRecordsDisplay = tmp ? defer[0] : defer
+ oSettings._iRecordsTotal = tmp ? defer[1] : defer
+ }
+
+ /*
+ * Columns
+ * See if we should load columns automatically or use defined ones
+ */
+ var columnsInit = []
+ var thead = this.getElementsByTagName("thead")
+ var initHeaderLayout = _fnDetectHeader(oSettings, thead[0])
+
+ // If we don't have a columns array, then generate one with nulls
+ if (oInit.aoColumns) {
+ columnsInit = oInit.aoColumns
+ } else if (initHeaderLayout.length) {
+ for (i = 0, iLen = initHeaderLayout[0].length; i < iLen; i++) {
+ columnsInit.push(null)
+ }
+ }
+
+ // Add the columns
+ for (i = 0, iLen = columnsInit.length; i < iLen; i++) {
+ _fnAddColumn(oSettings)
+ }
+
+ // Apply the column definitions
+ _fnApplyColumnDefs(oSettings, oInit.aoColumnDefs, columnsInit, initHeaderLayout, function (iCol, oDef) {
+ _fnColumnOptions(oSettings, iCol, oDef)
+ })
+
+ /* HTML5 attribute detection - build an mData object automatically if the
+ * attributes are found
+ */
+ var rowOne = $this.children("tbody").find("tr").eq(0)
+
+ if (rowOne.length) {
+ var a = function (cell, name) {
+ return cell.getAttribute("data-" + name) !== null ? name : null
+ }
+
+ $(rowOne[0])
+ .children("th, td")
+ .each(function (i, cell) {
+ var col = oSettings.aoColumns[i]
+
+ if (!col) {
+ _fnLog(oSettings, 0, "Incorrect column count", 18)
+ }
+
+ if (col.mData === i) {
+ var sort = a(cell, "sort") || a(cell, "order")
+ var filter = a(cell, "filter") || a(cell, "search")
+
+ if (sort !== null || filter !== null) {
+ col.mData = {
+ _: i + ".display",
+ sort: sort !== null ? i + ".@data-" + sort : undefined,
+ type: sort !== null ? i + ".@data-" + sort : undefined,
+ filter: filter !== null ? i + ".@data-" + filter : undefined
+ }
+ col._isArrayHost = true
+
+ _fnColumnOptions(oSettings, i)
+ }
+ }
+ })
+ }
+
+ // Must be done after everything which can be overridden by the state saving!
+ _fnCallbackReg(oSettings, "aoDrawCallback", _fnSaveState)
+
+ var features = oSettings.oFeatures
+ if (oInit.bStateSave) {
+ features.bStateSave = true
+ }
+
+ // If aaSorting is not defined, then we use the first indicator in asSorting
+ // in case that has been altered, so the default sort reflects that option
+ if (oInit.aaSorting === undefined) {
+ var sorting = oSettings.aaSorting
+ for (i = 0, iLen = sorting.length; i < iLen; i++) {
+ sorting[i][1] = oSettings.aoColumns[i].asSorting[0]
+ }
+ }
+
+ // Do a first pass on the sorting classes (allows any size changes to be taken into
+ // account, and also will apply sorting disabled classes if disabled
+ _fnSortingClasses(oSettings)
+
+ _fnCallbackReg(oSettings, "aoDrawCallback", function () {
+ if (oSettings.bSorted || _fnDataSource(oSettings) === "ssp" || features.bDeferRender) {
+ _fnSortingClasses(oSettings)
+ }
+ })
+
+ /*
+ * Table HTML init
+ * Cache the header, body and footer as required, creating them if needed
+ */
+ var caption = $this.children("caption")
+
+ if (oSettings.caption) {
+ if (caption.length === 0) {
+ caption = $("").appendTo($this)
+ }
+
+ caption.html(oSettings.caption)
+ }
+
+ // Store the caption side, so we can remove the element from the document
+ // when creating the element
+ if (caption.length) {
+ caption[0]._captionSide = caption.css("caption-side")
+ oSettings.captionNode = caption[0]
+ }
+
+ if (thead.length === 0) {
+ thead = $("").appendTo($this)
+ }
+ oSettings.nTHead = thead[0]
+ $("tr", thead).addClass(oClasses.thead.row)
+
+ var tbody = $this.children("tbody")
+ if (tbody.length === 0) {
+ tbody = $("").insertAfter(thead)
+ }
+ oSettings.nTBody = tbody[0]
+
+ var tfoot = $this.children("tfoot")
+ if (tfoot.length === 0) {
+ // If we are a scrolling table, and no footer has been given, then we need to create
+ // a tfoot element for the caption element to be appended to
+ tfoot = $("").appendTo($this)
+ }
+ oSettings.nTFoot = tfoot[0]
+ $("tr", tfoot).addClass(oClasses.tfoot.row)
+
+ // Copy the data index array
+ oSettings.aiDisplay = oSettings.aiDisplayMaster.slice()
+
+ // Initialisation complete - table can be drawn
+ oSettings.bInitialised = true
+
+ // Language definitions
+ var oLanguage = oSettings.oLanguage
+ $.extend(true, oLanguage, oInit.oLanguage)
+
+ if (oLanguage.sUrl) {
+ // Get the language definitions from a file
+ $.ajax({
+ dataType: "json",
+ url: oLanguage.sUrl,
+ success: function (json) {
+ _fnCamelToHungarian(defaults.oLanguage, json)
+ $.extend(true, oLanguage, json, oSettings.oInit.oLanguage)
+
+ _fnCallbackFire(oSettings, null, "i18n", [oSettings], true)
+ _fnInitialise(oSettings)
+ },
+ error: function () {
+ // Error occurred loading language file
+ _fnLog(oSettings, 0, "i18n file loading error", 21)
+
+ // Continue on as best we can
+ _fnInitialise(oSettings)
+ }
+ })
+ } else {
+ _fnCallbackFire(oSettings, null, "i18n", [oSettings], true)
+ _fnInitialise(oSettings)
+ }
+ })
+ _that = null
+ return this
+ }
+
+ /**
+ * DataTables extensions
+ *
+ * This namespace acts as a collection area for plug-ins that can be used to
+ * extend DataTables capabilities. Indeed many of the build in methods
+ * use this method to provide their own capabilities (sorting methods for
+ * example).
+ *
+ * Note that this namespace is aliased to `jQuery.fn.dataTableExt` for legacy
+ * reasons
+ *
+ * @namespace
+ */
+ DataTable.ext = _ext = {
+ /**
+ * Buttons. For use with the Buttons extension for DataTables. This is
+ * defined here so other extensions can define buttons regardless of load
+ * order. It is _not_ used by DataTables core.
+ *
+ * @type object
+ * @default {}
+ */
+ buttons: {},
+
+ /**
+ * Element class names
+ *
+ * @type object
+ * @default {}
+ */
+ classes: {},
+
+ /**
+ * DataTables build type (expanded by the download builder)
+ *
+ * @type string
+ */
+ builder: "dt/dt-2.1.7/b-3.1.2/b-colvis-3.1.2/b-html5-3.1.2/cr-2.0.4/fc-5.0.2/fh-4.0.1/sb-1.8.0",
+
+ /**
+ * Error reporting.
+ *
+ * How should DataTables report an error. Can take the value 'alert',
+ * 'throw', 'none' or a function.
+ *
+ * @type string|function
+ * @default alert
+ */
+ errMode: "alert",
+
+ /**
+ * Legacy so v1 plug-ins don't throw js errors on load
+ */
+ feature: [],
+
+ /**
+ * Feature plug-ins.
+ *
+ * This is an object of callbacks which provide the features for DataTables
+ * to be initialised via the `layout` option.
+ */
+ features: {},
+
+ /**
+ * Row searching.
+ *
+ * This method of searching is complimentary to the default type based
+ * searching, and a lot more comprehensive as it allows you complete control
+ * over the searching logic. Each element in this array is a function
+ * (parameters described below) that is called for every row in the table,
+ * and your logic decides if it should be included in the searching data set
+ * or not.
+ *
+ * Searching functions have the following input parameters:
+ *
+ * 1. `{object}` DataTables settings object: see
+ * {@link DataTable.models.oSettings}
+ * 2. `{array|object}` Data for the row to be processed (same as the
+ * original format that was passed in as the data source, or an array
+ * from a DOM data source
+ * 3. `{int}` Row index ({@link DataTable.models.oSettings.aoData}), which
+ * can be useful to retrieve the `TR` element if you need DOM interaction.
+ *
+ * And the following return is expected:
+ *
+ * * {boolean} Include the row in the searched result set (true) or not
+ * (false)
+ *
+ * Note that as with the main search ability in DataTables, technically this
+ * is "filtering", since it is subtractive. However, for consistency in
+ * naming we call it searching here.
+ *
+ * @type array
+ * @default []
+ *
+ * @example
+ * // The following example shows custom search being applied to the
+ * // fourth column (i.e. the data[3] index) based on two input values
+ * // from the end-user, matching the data in a certain range.
+ * $.fn.dataTable.ext.search.push(
+ * function( settings, data, dataIndex ) {
+ * var min = document.getElementById('min').value * 1;
+ * var max = document.getElementById('max').value * 1;
+ * var version = data[3] == "-" ? 0 : data[3]*1;
+ *
+ * if ( min == "" && max == "" ) {
+ * return true;
+ * }
+ * else if ( min == "" && version < max ) {
+ * return true;
+ * }
+ * else if ( min < version && "" == max ) {
+ * return true;
+ * }
+ * else if ( min < version && version < max ) {
+ * return true;
+ * }
+ * return false;
+ * }
+ * );
+ */
+ search: [],
+
+ /**
+ * Selector extensions
+ *
+ * The `selector` option can be used to extend the options available for the
+ * selector modifier options (`selector-modifier` object data type) that
+ * each of the three built in selector types offer (row, column and cell +
+ * their plural counterparts). For example the Select extension uses this
+ * mechanism to provide an option to select only rows, columns and cells
+ * that have been marked as selected by the end user (`{selected: true}`),
+ * which can be used in conjunction with the existing built in selector
+ * options.
+ *
+ * Each property is an array to which functions can be pushed. The functions
+ * take three attributes:
+ *
+ * * Settings object for the host table
+ * * Options object (`selector-modifier` object type)
+ * * Array of selected item indexes
+ *
+ * The return is an array of the resulting item indexes after the custom
+ * selector has been applied.
+ *
+ * @type object
+ */
+ selector: {
+ cell: [],
+ column: [],
+ row: []
+ },
+
+ /**
+ * Legacy configuration options. Enable and disable legacy options that
+ * are available in DataTables.
+ *
+ * @type object
+ */
+ legacy: {
+ /**
+ * Enable / disable DataTables 1.9 compatible server-side processing
+ * requests
+ *
+ * @type boolean
+ * @default null
+ */
+ ajax: null
+ },
+
+ /**
+ * Pagination plug-in methods.
+ *
+ * Each entry in this object is a function and defines which buttons should
+ * be shown by the pagination rendering method that is used for the table:
+ * {@link DataTable.ext.renderer.pageButton}. The renderer addresses how the
+ * buttons are displayed in the document, while the functions here tell it
+ * what buttons to display. This is done by returning an array of button
+ * descriptions (what each button will do).
+ *
+ * Pagination types (the four built in options and any additional plug-in
+ * options defined here) can be used through the `paginationType`
+ * initialisation parameter.
+ *
+ * The functions defined take two parameters:
+ *
+ * 1. `{int} page` The current page index
+ * 2. `{int} pages` The number of pages in the table
+ *
+ * Each function is expected to return an array where each element of the
+ * array can be one of:
+ *
+ * * `first` - Jump to first page when activated
+ * * `last` - Jump to last page when activated
+ * * `previous` - Show previous page when activated
+ * * `next` - Show next page when activated
+ * * `{int}` - Show page of the index given
+ * * `{array}` - A nested array containing the above elements to add a
+ * containing 'DIV' element (might be useful for styling).
+ *
+ * Note that DataTables v1.9- used this object slightly differently whereby
+ * an object with two functions would be defined for each plug-in. That
+ * ability is still supported by DataTables 1.10+ to provide backwards
+ * compatibility, but this option of use is now decremented and no longer
+ * documented in DataTables 1.10+.
+ *
+ * @type object
+ * @default {}
+ *
+ * @example
+ * // Show previous, next and current page buttons only
+ * $.fn.dataTableExt.oPagination.current = function ( page, pages ) {
+ * return [ 'previous', page, 'next' ];
+ * };
+ */
+ pager: {},
+
+ renderer: {
+ pageButton: {},
+ header: {}
+ },
+
+ /**
+ * Ordering plug-ins - custom data source
+ *
+ * The extension options for ordering of data available here is complimentary
+ * to the default type based ordering that DataTables typically uses. It
+ * allows much greater control over the the data that is being used to
+ * order a column, but is necessarily therefore more complex.
+ *
+ * This type of ordering is useful if you want to do ordering based on data
+ * live from the DOM (for example the contents of an 'input' element) rather
+ * than just the static string that DataTables knows of.
+ *
+ * The way these plug-ins work is that you create an array of the values you
+ * wish to be ordering for the column in question and then return that
+ * array. The data in the array much be in the index order of the rows in
+ * the table (not the currently ordering order!). Which order data gathering
+ * function is run here depends on the `dt-init columns.orderDataType`
+ * parameter that is used for the column (if any).
+ *
+ * The functions defined take two parameters:
+ *
+ * 1. `{object}` DataTables settings object: see
+ * {@link DataTable.models.oSettings}
+ * 2. `{int}` Target column index
+ *
+ * Each function is expected to return an array:
+ *
+ * * `{array}` Data for the column to be ordering upon
+ *
+ * @type array
+ *
+ * @example
+ * // Ordering using `input` node values
+ * $.fn.dataTable.ext.order['dom-text'] = function ( settings, col )
+ * {
+ * return this.api().column( col, {order:'index'} ).nodes().map( function ( td, i ) {
+ * return $('input', td).val();
+ * } );
+ * }
+ */
+ order: {},
+
+ /**
+ * Type based plug-ins.
+ *
+ * Each column in DataTables has a type assigned to it, either by automatic
+ * detection or by direct assignment using the `type` option for the column.
+ * The type of a column will effect how it is ordering and search (plug-ins
+ * can also make use of the column type if required).
+ *
+ * @namespace
+ */
+ type: {
+ /**
+ * Automatic column class assignment
+ */
+ className: {},
+
+ /**
+ * Type detection functions.
+ *
+ * The functions defined in this object are used to automatically detect
+ * a column's type, making initialisation of DataTables super easy, even
+ * when complex data is in the table.
+ *
+ * The functions defined take two parameters:
+ *
+ * 1. `{*}` Data from the column cell to be analysed
+ * 2. `{settings}` DataTables settings object. This can be used to
+ * perform context specific type detection - for example detection
+ * based on language settings such as using a comma for a decimal
+ * place. Generally speaking the options from the settings will not
+ * be required
+ *
+ * Each function is expected to return:
+ *
+ * * `{string|null}` Data type detected, or null if unknown (and thus
+ * pass it on to the other type detection functions.
+ *
+ * @type array
+ *
+ * @example
+ * // Currency type detection plug-in:
+ * $.fn.dataTable.ext.type.detect.push(
+ * function ( data, settings ) {
+ * // Check the numeric part
+ * if ( ! data.substring(1).match(/[0-9]/) ) {
+ * return null;
+ * }
+ *
+ * // Check prefixed by currency
+ * if ( data.charAt(0) == '$' || data.charAt(0) == '£' ) {
+ * return 'currency';
+ * }
+ * return null;
+ * }
+ * );
+ */
+ detect: [],
+
+ /**
+ * Automatic renderer assignment
+ */
+ render: {},
+
+ /**
+ * Type based search formatting.
+ *
+ * The type based searching functions can be used to pre-format the
+ * data to be search on. For example, it can be used to strip HTML
+ * tags or to de-format telephone numbers for numeric only searching.
+ *
+ * Note that is a search is not defined for a column of a given type,
+ * no search formatting will be performed.
+ *
+ * Pre-processing of searching data plug-ins - When you assign the sType
+ * for a column (or have it automatically detected for you by DataTables
+ * or a type detection plug-in), you will typically be using this for
+ * custom sorting, but it can also be used to provide custom searching
+ * by allowing you to pre-processing the data and returning the data in
+ * the format that should be searched upon. This is done by adding
+ * functions this object with a parameter name which matches the sType
+ * for that target column. This is the corollary of afnSortData
+ * for searching data.
+ *
+ * The functions defined take a single parameter:
+ *
+ * 1. `{*}` Data from the column cell to be prepared for searching
+ *
+ * Each function is expected to return:
+ *
+ * * `{string|null}` Formatted string that will be used for the searching.
+ *
+ * @type object
+ * @default {}
+ *
+ * @example
+ * $.fn.dataTable.ext.type.search['title-numeric'] = function ( d ) {
+ * return d.replace(/\n/g," ").replace( /<.*?>/g, "" );
+ * }
+ */
+ search: {},
+
+ /**
+ * Type based ordering.
+ *
+ * The column type tells DataTables what ordering to apply to the table
+ * when a column is sorted upon. The order for each type that is defined,
+ * is defined by the functions available in this object.
+ *
+ * Each ordering option can be described by three properties added to
+ * this object:
+ *
+ * * `{type}-pre` - Pre-formatting function
+ * * `{type}-asc` - Ascending order function
+ * * `{type}-desc` - Descending order function
+ *
+ * All three can be used together, only `{type}-pre` or only
+ * `{type}-asc` and `{type}-desc` together. It is generally recommended
+ * that only `{type}-pre` is used, as this provides the optimal
+ * implementation in terms of speed, although the others are provided
+ * for compatibility with existing Javascript sort functions.
+ *
+ * `{type}-pre`: Functions defined take a single parameter:
+ *
+ * 1. `{*}` Data from the column cell to be prepared for ordering
+ *
+ * And return:
+ *
+ * * `{*}` Data to be sorted upon
+ *
+ * `{type}-asc` and `{type}-desc`: Functions are typical Javascript sort
+ * functions, taking two parameters:
+ *
+ * 1. `{*}` Data to compare to the second parameter
+ * 2. `{*}` Data to compare to the first parameter
+ *
+ * And returning:
+ *
+ * * `{*}` Ordering match: <0 if first parameter should be sorted lower
+ * than the second parameter, ===0 if the two parameters are equal and
+ * >0 if the first parameter should be sorted height than the second
+ * parameter.
+ *
+ * @type object
+ * @default {}
+ *
+ * @example
+ * // Numeric ordering of formatted numbers with a pre-formatter
+ * $.extend( $.fn.dataTable.ext.type.order, {
+ * "string-pre": function(x) {
+ * a = (a === "-" || a === "") ? 0 : a.replace( /[^\d\-\.]/g, "" );
+ * return parseFloat( a );
+ * }
+ * } );
+ *
+ * @example
+ * // Case-sensitive string ordering, with no pre-formatting method
+ * $.extend( $.fn.dataTable.ext.order, {
+ * "string-case-asc": function(x,y) {
+ * return ((x < y) ? -1 : ((x > y) ? 1 : 0));
+ * },
+ * "string-case-desc": function(x,y) {
+ * return ((x < y) ? 1 : ((x > y) ? -1 : 0));
+ * }
+ * } );
+ */
+ order: {}
+ },
+
+ /**
+ * Unique DataTables instance counter
+ *
+ * @type int
+ * @private
+ */
+ _unique: 0,
+
+ //
+ // Depreciated
+ // The following properties are retained for backwards compatibility only.
+ // The should not be used in new projects and will be removed in a future
+ // version
+ //
+
+ /**
+ * Version check function.
+ * @type function
+ * @depreciated Since 1.10
+ */
+ fnVersionCheck: DataTable.fnVersionCheck,
+
+ /**
+ * Index for what 'this' index API functions should use
+ * @type int
+ * @deprecated Since v1.10
+ */
+ iApiIndex: 0,
+
+ /**
+ * Software version
+ * @type string
+ * @deprecated Since v1.10
+ */
+ sVersion: DataTable.version
+ }
+
+ //
+ // Backwards compatibility. Alias to pre 1.10 Hungarian notation counter parts
+ //
+ $.extend(_ext, {
+ afnFiltering: _ext.search,
+ aTypes: _ext.type.detect,
+ ofnSearch: _ext.type.search,
+ oSort: _ext.type.order,
+ afnSortData: _ext.order,
+ aoFeatures: _ext.feature,
+ oStdClasses: _ext.classes,
+ oPagination: _ext.pager
+ })
+
+ $.extend(DataTable.ext.classes, {
+ container: "dt-container",
+ empty: {
+ row: "dt-empty"
+ },
+ info: {
+ container: "dt-info"
+ },
+ layout: {
+ row: "dt-layout-row",
+ cell: "dt-layout-cell",
+ tableRow: "dt-layout-table",
+ tableCell: "",
+ start: "dt-layout-start",
+ end: "dt-layout-end",
+ full: "dt-layout-full"
+ },
+ length: {
+ container: "dt-length",
+ select: "dt-input"
+ },
+ order: {
+ canAsc: "dt-orderable-asc",
+ canDesc: "dt-orderable-desc",
+ isAsc: "dt-ordering-asc",
+ isDesc: "dt-ordering-desc",
+ none: "dt-orderable-none",
+ position: "sorting_"
+ },
+ processing: {
+ container: "dt-processing"
+ },
+ scrolling: {
+ body: "dt-scroll-body",
+ container: "dt-scroll",
+ footer: {
+ self: "dt-scroll-foot",
+ inner: "dt-scroll-footInner"
+ },
+ header: {
+ self: "dt-scroll-head",
+ inner: "dt-scroll-headInner"
+ }
+ },
+ search: {
+ container: "dt-search",
+ input: "dt-input"
+ },
+ table: "dataTable",
+ tbody: {
+ cell: "",
+ row: ""
+ },
+ thead: {
+ cell: "",
+ row: ""
+ },
+ tfoot: {
+ cell: "",
+ row: ""
+ },
+ paging: {
+ active: "current",
+ button: "dt-paging-button",
+ container: "dt-paging",
+ disabled: "disabled",
+ nav: ""
+ }
+ })
+
+ /*
+ * It is useful to have variables which are scoped locally so only the
+ * DataTables functions can access them and they don't leak into global space.
+ * At the same time these functions are often useful over multiple files in the
+ * core and API, so we list, or at least document, all variables which are used
+ * by DataTables as private variables here. This also ensures that there is no
+ * clashing of variable names and that they can easily referenced for reuse.
+ */
+
+ // Defined else where
+ // _selector_run
+ // _selector_opts
+ // _selector_row_indexes
+
+ var _ext // DataTable.ext
+ var _Api // DataTable.Api
+ var _api_register // DataTable.Api.register
+ var _api_registerPlural // DataTable.Api.registerPlural
+
+ var _re_dic = {}
+ var _re_new_lines = /[\r\n\u2028]/g
+ var _re_html = /<([^>]*>)/g
+ var _max_str_len = Math.pow(2, 28)
+
+ // This is not strict ISO8601 - Date.parse() is quite lax, although
+ // implementations differ between browsers.
+ var _re_date = /^\d{2,4}[./-]\d{1,2}[./-]\d{1,2}([T ]{1}\d{1,2}[:.]\d{2}([.:]\d{2})?)?$/
+
+ // Escape regular expression special characters
+ var _re_escape_regex = new RegExp("(\\" + ["/", ".", "*", "+", "?", "|", "(", ")", "[", "]", "{", "}", "\\", "$", "^", "-"].join("|\\") + ")", "g")
+
+ // https://en.wikipedia.org/wiki/Foreign_exchange_market
+ // - \u20BD - Russian ruble.
+ // - \u20a9 - South Korean Won
+ // - \u20BA - Turkish Lira
+ // - \u20B9 - Indian Rupee
+ // - R - Brazil (R$) and South Africa
+ // - fr - Swiss Franc
+ // - kr - Swedish krona, Norwegian krone and Danish krone
+ // - \u2009 is thin space and \u202F is narrow no-break space, both used in many
+ // - Ƀ - Bitcoin
+ // - Ξ - Ethereum
+ // standards as thousands separators.
+ var _re_formatted_numeric = /['\u00A0,$£€¥%\u2009\u202F\u20BD\u20a9\u20BArfkɃΞ]/gi
+
+ var _empty = function (d) {
+ return !d || d === true || d === "-" ? true : false
+ }
+
+ var _intVal = function (s) {
+ var integer = parseInt(s, 10)
+ return !isNaN(integer) && isFinite(s) ? integer : null
+ }
+
+ // Convert from a formatted number with characters other than `.` as the
+ // decimal place, to a Javascript number
+ var _numToDecimal = function (num, decimalPoint) {
+ // Cache created regular expressions for speed as this function is called often
+ if (!_re_dic[decimalPoint]) {
+ _re_dic[decimalPoint] = new RegExp(_fnEscapeRegex(decimalPoint), "g")
+ }
+ return typeof num === "string" && decimalPoint !== "." ? num.replace(/\./g, "").replace(_re_dic[decimalPoint], ".") : num
+ }
+
+ var _isNumber = function (d, decimalPoint, formatted, allowEmpty) {
+ var type = typeof d
+ var strType = type === "string"
+
+ if (type === "number" || type === "bigint") {
+ return true
+ }
+
+ // If empty return immediately so there must be a number if it is a
+ // formatted string (this stops the string "k", or "kr", etc being detected
+ // as a formatted number for currency
+ if (allowEmpty && _empty(d)) {
+ return true
+ }
+
+ if (decimalPoint && strType) {
+ d = _numToDecimal(d, decimalPoint)
+ }
+
+ if (formatted && strType) {
+ d = d.replace(_re_formatted_numeric, "")
+ }
+
+ return !isNaN(parseFloat(d)) && isFinite(d)
+ }
+
+ // A string without HTML in it can be considered to be HTML still
+ var _isHtml = function (d) {
+ return _empty(d) || typeof d === "string"
+ }
+
+ // Is a string a number surrounded by HTML?
+ var _htmlNumeric = function (d, decimalPoint, formatted, allowEmpty) {
+ if (allowEmpty && _empty(d)) {
+ return true
+ }
+
+ // input and select strings mean that this isn't just a number
+ if (typeof d === "string" && d.match(/<(input|select)/i)) {
+ return null
+ }
+
+ var html = _isHtml(d)
+ return !html ? null : _isNumber(_stripHtml(d), decimalPoint, formatted, allowEmpty) ? true : null
+ }
+
+ var _pluck = function (a, prop, prop2) {
+ var out = []
+ var i = 0,
+ ien = a.length
+
+ // Could have the test in the loop for slightly smaller code, but speed
+ // is essential here
+ if (prop2 !== undefined) {
+ for (; i < ien; i++) {
+ if (a[i] && a[i][prop]) {
+ out.push(a[i][prop][prop2])
+ }
+ }
+ } else {
+ for (; i < ien; i++) {
+ if (a[i]) {
+ out.push(a[i][prop])
+ }
+ }
+ }
+
+ return out
+ }
+
+ // Basically the same as _pluck, but rather than looping over `a` we use `order`
+ // as the indexes to pick from `a`
+ var _pluck_order = function (a, order, prop, prop2) {
+ var out = []
+ var i = 0,
+ ien = order.length
+
+ // Could have the test in the loop for slightly smaller code, but speed
+ // is essential here
+ if (prop2 !== undefined) {
+ for (; i < ien; i++) {
+ if (a[order[i]] && a[order[i]][prop]) {
+ out.push(a[order[i]][prop][prop2])
+ }
+ }
+ } else {
+ for (; i < ien; i++) {
+ if (a[order[i]]) {
+ out.push(a[order[i]][prop])
+ }
+ }
+ }
+
+ return out
+ }
+
+ var _range = function (len, start) {
+ var out = []
+ var end
+
+ if (start === undefined) {
+ start = 0
+ end = len
+ } else {
+ end = start
+ start = len
+ }
+
+ for (var i = start; i < end; i++) {
+ out.push(i)
+ }
+
+ return out
+ }
+
+ var _removeEmpty = function (a) {
+ var out = []
+
+ for (var i = 0, ien = a.length; i < ien; i++) {
+ if (a[i]) {
+ // careful - will remove all falsy values!
+ out.push(a[i])
+ }
+ }
+
+ return out
+ }
+
+ // Replaceable function in api.util
+ var _stripHtml = function (input) {
+ if (!input || typeof input !== "string") {
+ return input
+ }
+
+ // Irrelevant check to workaround CodeQL's false positive on the regex
+ if (input.length > _max_str_len) {
+ throw new Error("Exceeded max str len")
+ }
+
+ var previous
+
+ input = input.replace(_re_html, "") // Complete tags
+
+ // Safety for incomplete script tag - use do / while to ensure that
+ // we get all instances
+ do {
+ previous = input
+ input = input.replace(/