新建明志分支存放前端文件
@ -921,6 +921,7 @@
 | 
			
		||||
		];
 | 
			
		||||
 | 
			
		||||
		historyTable = new YourTeam.JqDataTables.getTableByStatic(tag, data, columns, column_defs, null, null, null, null, "tpi");
 | 
			
		||||
		$('#alertTable').DataTable().order([ 5, 'desc']);
 | 
			
		||||
		$(loadEle).Loading("close");
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -565,21 +565,22 @@
 | 
			
		||||
 | 
			
		||||
    // 異常數量與復歸數量
 | 
			
		||||
    getAlarmCountByBaja((aData) => {
 | 
			
		||||
      chartDataCnt.alarmCnt = aData.count;
 | 
			
		||||
      console.log("aData",aData)
 | 
			
		||||
      chartDataCnt.alarmCnt = aData;
 | 
			
		||||
      chkBajaLoaded();
 | 
			
		||||
    });
 | 
			
		||||
    getRecoverCountByBaja((rData) => {
 | 
			
		||||
      chartDataCnt.recCnt = rData.count;
 | 
			
		||||
      chartDataCnt.recCnt = rData;
 | 
			
		||||
      chkBajaLoaded();
 | 
			
		||||
    });
 | 
			
		||||
    // 異常數量與復歸數量
 | 
			
		||||
    getCheckedAckedCountByBaja((data) => {
 | 
			
		||||
      chartDataCnt.chkedErrCnt = data.count;
 | 
			
		||||
      chartDataCnt.chkedErrCnt = data;
 | 
			
		||||
      chkBajaLoaded();
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    getUnCheckedAckedCountByBaja((uData) => {
 | 
			
		||||
      chartDataCnt.unChkedErrCnt = uData.count;
 | 
			
		||||
      chartDataCnt.unChkedErrCnt = uData;
 | 
			
		||||
      chkBajaLoaded();
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										9
									
								
								Frontend/_elecSingleLine.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,9 @@
 | 
			
		||||
 | 
			
		||||
<div class="container-fluid">
 | 
			
		||||
    <div class="row bg-dark align-items-center">
 | 
			
		||||
        <label id="sysSubText" class=" mx-5 mb-0 fs-1-05"></label>
 | 
			
		||||
        <div style="height:85vh" class="col-12">
 | 
			
		||||
            <iframe src="/ord?file:^px/AllMeter.px|view:?fullScreen=true" width="100%" height="100%"></iframe>
 | 
			
		||||
       </div>
 | 
			
		||||
    </div>
 | 
			
		||||
</div>
 | 
			
		||||
@ -264,9 +264,9 @@
 | 
			
		||||
    function getData(start = null, end = null) {
 | 
			
		||||
        var sdt = new Date();
 | 
			
		||||
        var edt = new Date(new Date().setDate(sdt.getDate() + 1));
 | 
			
		||||
        $(loadEle).Loading("start");
 | 
			
		||||
        start = start ?? sdt.toLocaleDateString();
 | 
			
		||||
        end = end ?? edt.toLocaleDateString();
 | 
			
		||||
        $(loadEle).Loading("start");
 | 
			
		||||
        callBackFromHistory()
 | 
			
		||||
        getHistoryDataByBaja(pageAct.deviceNumber + "_" + pageAct.deviceItem,
 | 
			
		||||
            new Date(start).getTime(),
 | 
			
		||||
@ -363,7 +363,7 @@
 | 
			
		||||
        let start = new Date($('#his_startdate').val());
 | 
			
		||||
        let end = new Date(new Date().setDate(new Date($('#his_enddate input').val()).getDate() + 1));
 | 
			
		||||
 | 
			
		||||
		if (pageAct.dateType == "today" || pageAct.dateType == "day" || pageAct.dateType == "ytd")
 | 
			
		||||
        if (pageAct.dateType == "day")
 | 
			
		||||
            end = new Date(new Date().setDate(start.getDate() + 1));
 | 
			
		||||
        else if (pageAct.dateType == "month") {
 | 
			
		||||
            start = new Date($('#getmonth').val());
 | 
			
		||||
@ -436,7 +436,6 @@
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    function exportExcel() {
 | 
			
		||||
        $(loadEle).Loading("start");
 | 
			
		||||
        let url = baseApiUrl + "/History/OpeExportExcel";
 | 
			
		||||
        objSendData.Data = $('#historyTable').dataTable().fnGetData();
 | 
			
		||||
 | 
			
		||||
@ -445,11 +444,10 @@
 | 
			
		||||
            v.endtime = $('#his_enddate input').val() === "" ? null : new Date($('#his_enddate input').val());
 | 
			
		||||
            v.dateType = pageAct.dateType;
 | 
			
		||||
        });
 | 
			
		||||
 | 
			
		||||
        ytAjax = new YourTeam.Ajax(url, objSendData, function (rel) {
 | 
			
		||||
            if (rel.code == "0000") {
 | 
			
		||||
            if (rel.code == "0000")
 | 
			
		||||
                location.href = baseApiUrl + "/api/df?path=" + rel.data.split('/')[0] + "&fileName=" + rel.data.split('/')[1] + "&token=" + cookies.get("JWT-Authorization");
 | 
			
		||||
            }
 | 
			
		||||
        }, null, "POST").send();
 | 
			
		||||
        $(loadEle).Loading("close");
 | 
			
		||||
    }
 | 
			
		||||
</script>
 | 
			
		||||
@ -8,13 +8,22 @@
 | 
			
		||||
					<div class="btn-group">
 | 
			
		||||
						<button type="button" onclick="setType(2)" class="btn btn-secondary waves-effect waves-themed">維修</button>
 | 
			
		||||
						<button type="button" onclick="setType(1)" class="btn btn-secondary waves-effect waves-themed">保養記錄</button>
 | 
			
		||||
						<button type="button" onclick="setType(null)" class="btn btn-secondary waves-effect waves-themed">廠商資料</button>
 | 
			
		||||
						<button type="button" onclick="setType(null)"
 | 
			
		||||
								class="btn btn-secondary waves-effect waves-themed">
 | 
			
		||||
							廠商資料
 | 
			
		||||
						</button>
 | 
			
		||||
					</div>
 | 
			
		||||
				</div>
 | 
			
		||||
				<div id="setDate" class="col-auto">
 | 
			
		||||
					<div class="btn-group">
 | 
			
		||||
						<button onclick="setDate('tdy')" type="button" class="btn btn-secondary waves-effect waves-themed">今天</button>
 | 
			
		||||
						<button onclick="setDate('ytd')" type="button" class="btn btn-secondary waves-effect waves-themed">昨天</button>
 | 
			
		||||
						<button onclick="setDate('tdy')" type="button"
 | 
			
		||||
								class="btn btn-secondary waves-effect waves-themed">
 | 
			
		||||
							今天
 | 
			
		||||
						</button>
 | 
			
		||||
						<button onclick="setDate('ytd')" type="button"
 | 
			
		||||
								class="btn btn-secondary waves-effect waves-themed">
 | 
			
		||||
							昨天
 | 
			
		||||
						</button>
 | 
			
		||||
					</div>
 | 
			
		||||
				</div>
 | 
			
		||||
				<div class="col-auto">
 | 
			
		||||
@ -60,7 +69,7 @@
 | 
			
		||||
						<a href="#" id="newForm" class="btn btn-success" data-toggle="modal" data-target="#opeFirmModal">新增</a>
 | 
			
		||||
						<a href="#" onclick="exportExcel()" class="btn btn-info waves-effect waves-themed">
 | 
			
		||||
							<span class="fal fa-file-excel mr-1"></span>
 | 
			
		||||
							匯出
 | 
			
		||||
							<span>匯出</span>
 | 
			
		||||
						</a>
 | 
			
		||||
					</div>
 | 
			
		||||
					<table id="opeFirmTable" class="table table-bordered table-striped text-center m-0 w-100">
 | 
			
		||||
@ -76,7 +85,8 @@
 | 
			
		||||
</main>
 | 
			
		||||
 | 
			
		||||
<!-- Modal center 廠商資料 -->
 | 
			
		||||
<div class="modal fade" id="opeFirmModal" tabindex="-1" role="dialog" aria-hidden="true" data-backdrop="static" data-keyboard="false">
 | 
			
		||||
<div class="modal fade" id="opeFirmModal" tabindex="-1" role="dialog" aria-hidden="true" data-backdrop="static"
 | 
			
		||||
	 data-keyboard="false">
 | 
			
		||||
	<div class="modal-dialog modal-dialog-centered" role="document">
 | 
			
		||||
		<div class="modal-content">
 | 
			
		||||
			<div class="modal-header">
 | 
			
		||||
@ -152,7 +162,8 @@
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<!-- Modal center 維修-->
 | 
			
		||||
<div class="modal fade" id="opeRecModal_2" tabindex="-1" role="dialog" aria-hidden="true" data-backdrop="static" data-keyboard="false">
 | 
			
		||||
<div class="modal fade" id="opeRecModal_2" tabindex="-1" role="dialog" aria-hidden="true" data-backdrop="static"
 | 
			
		||||
	 data-keyboard="false">
 | 
			
		||||
	<div class="modal-dialog modal-dialog-centered" role="document">
 | 
			
		||||
		<div class="modal-content">
 | 
			
		||||
			<div class="modal-header">
 | 
			
		||||
@ -222,12 +233,14 @@
 | 
			
		||||
								<div class="form-control" id="inpStatus_2">
 | 
			
		||||
									<div class="row container">
 | 
			
		||||
										<div class="">
 | 
			
		||||
											<input class="custom-radio-input" type="radio" name="inpSta_2" id="inpSta_2_0" value="0" data-value="0" checked>
 | 
			
		||||
											<input class="custom-radio-input" type="radio" name="inpSta_2" id="inpSta_2_0" value="0"
 | 
			
		||||
												   data-value="0" checked>
 | 
			
		||||
											<label class="form-label" for="inpSta_0">未完成</label>
 | 
			
		||||
										</div>
 | 
			
		||||
 | 
			
		||||
										<div class="px-4">
 | 
			
		||||
											<input class="custom-radio-input" type="radio" name="inpSta_2" id="inpSta_2_1" value="1" data-value="1">
 | 
			
		||||
											<input class="custom-radio-input" type="radio" name="inpSta_2" id="inpSta_2_1" value="1"
 | 
			
		||||
												   data-value="1">
 | 
			
		||||
											<label class="form-label" for="inpSta_1">完成</label>
 | 
			
		||||
										</div>
 | 
			
		||||
									</div>
 | 
			
		||||
@ -251,7 +264,8 @@
 | 
			
		||||
						<div class="col-md-12">
 | 
			
		||||
							<div class="form-group">
 | 
			
		||||
								<label class="form-label" for="inpDescription_2">結果描述</label>
 | 
			
		||||
								<textarea class="form-control" type="text" id="inpDescription_2" name="inpDescription_2" rows="7"></textarea>
 | 
			
		||||
								<textarea class="form-control" type="text" id="inpDescription_2" name="inpDescription_2"
 | 
			
		||||
										  rows="7"></textarea>
 | 
			
		||||
							</div>
 | 
			
		||||
						</div>
 | 
			
		||||
						<div class="col-md-12">
 | 
			
		||||
@ -288,7 +302,8 @@
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<!-- Modal center 保養 -->
 | 
			
		||||
<div class="modal fade" id="opeRecModal" tabindex="-1" role="dialog" aria-hidden="true" data-backdrop="static" data-keyboard="false">
 | 
			
		||||
<div class="modal fade" id="opeRecModal" tabindex="-1" role="dialog" aria-hidden="true" data-backdrop="static"
 | 
			
		||||
	 data-keyboard="false">
 | 
			
		||||
	<div class="modal-dialog modal-dialog-centered" role="document">
 | 
			
		||||
		<div class="modal-content">
 | 
			
		||||
			<div class="modal-header">
 | 
			
		||||
@ -350,12 +365,14 @@
 | 
			
		||||
								<div class="form-control" id="inpStatus">
 | 
			
		||||
									<div class="row container">
 | 
			
		||||
										<div class="">
 | 
			
		||||
											<input class="custom-radio-input" type="radio" name="inpSta" id="inpSta_0" data-value="0" value="0" checked>
 | 
			
		||||
											<input class="custom-radio-input" type="radio" name="inpSta" id="inpSta_0" data-value="0"
 | 
			
		||||
												   value="0" checked>
 | 
			
		||||
											<label class="form-label" for="inpSta_0">未完成</label>
 | 
			
		||||
										</div>
 | 
			
		||||
 | 
			
		||||
										<div class="px-4">
 | 
			
		||||
											<input class="custom-radio-input" type="radio" name="inpSta" id="inpSta_1" data-value="1" value="1">
 | 
			
		||||
											<input class="custom-radio-input" type="radio" name="inpSta" id="inpSta_1" data-value="1"
 | 
			
		||||
												   value="1">
 | 
			
		||||
											<label class="form-label" for="inpSta_1">完成</label>
 | 
			
		||||
										</div>
 | 
			
		||||
									</div>
 | 
			
		||||
@ -379,7 +396,8 @@
 | 
			
		||||
						<div class="col-md-12">
 | 
			
		||||
							<div class="form-group">
 | 
			
		||||
								<label class="form-label" for="inpDescription">結果描述</label>
 | 
			
		||||
								<textarea class="form-control" type="text" id="inpDescription" name="inpDescription" rows="7"></textarea>
 | 
			
		||||
								<textarea class="form-control" type="text" id="inpDescription" name="inpDescription"
 | 
			
		||||
										  rows="7"></textarea>
 | 
			
		||||
							</div>
 | 
			
		||||
						</div>
 | 
			
		||||
						<div class="col-md-12">
 | 
			
		||||
@ -416,7 +434,8 @@
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<!-- Modal center 刪除 -->
 | 
			
		||||
<div class="modal fade" id="delModal" tabindex="-1" role="dialog" aria-hidden="true" data-backdrop="static" data-keyboard="false">
 | 
			
		||||
<div class="modal fade" id="delModal" tabindex="-1" role="dialog" aria-hidden="true" data-backdrop="static"
 | 
			
		||||
	 data-keyboard="false">
 | 
			
		||||
	<div class="modal-dialog modal-dialog-centered" role="document">
 | 
			
		||||
		<div class="modal-content">
 | 
			
		||||
			<div class="modal-header">
 | 
			
		||||
@ -517,7 +536,6 @@
 | 
			
		||||
	});
 | 
			
		||||
 | 
			
		||||
	function loadOpeFirmTable() {
 | 
			
		||||
		$(loadEle).Loading("start");
 | 
			
		||||
		$('#opeFirmTable_wrapper').css('display', 'block');
 | 
			
		||||
		$('#opeRecTable_wrapper').css('display', 'none');
 | 
			
		||||
		$('#opeRecTable_2_wrapper').css('display', 'none');
 | 
			
		||||
@ -583,11 +601,9 @@
 | 
			
		||||
		];
 | 
			
		||||
 | 
			
		||||
		opeFirmTable = new YourTeam.JqDataTables.getTableByAjax(ajaxObj, tag, null, columns, column_defs);
 | 
			
		||||
		$(loadEle).Loading("close");
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	function loadOpeRecTable() {
 | 
			
		||||
		$(loadEle).Loading("start");
 | 
			
		||||
		$('#opeFirmTable_wrapper').css('display', 'none');
 | 
			
		||||
 | 
			
		||||
		$('#serial_number').parent().parent().css('display', 'block');
 | 
			
		||||
@ -844,7 +860,6 @@
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		opeRecTable = new YourTeam.JqDataTables.getTableByAjax(ajaxObj, tag, null, columns, column_defs);
 | 
			
		||||
		$(loadEle).Loading("close");
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	function setType(wt) {
 | 
			
		||||
@ -983,8 +998,8 @@
 | 
			
		||||
			loadOpeRecTable();
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	function exportExcel() {
 | 
			
		||||
		$(loadEle).Loading("start");
 | 
			
		||||
	function exportExcel(e) {
 | 
			
		||||
		console.log("export", e)
 | 
			
		||||
		let url = baseApiUrl + "/operation/OpeExportExcel";
 | 
			
		||||
 | 
			
		||||
		objSendData.Data = {
 | 
			
		||||
@ -992,12 +1007,11 @@
 | 
			
		||||
			startdate: pageAct.startdate == undefined ? null : pageAct.startdate,
 | 
			
		||||
			enddate: pageAct.enddate == undefined ? null : pageAct.enddate,
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		console.log("data", objSendData.Data)
 | 
			
		||||
		ytAjax = new YourTeam.Ajax(url, objSendData, function (rel) {
 | 
			
		||||
			if (rel.code == "0000")
 | 
			
		||||
				location.href = baseApiUrl + "/api/df?path=" + rel.data.split('/')[0] + "&fileName=" + rel.data.split('/')[1] + "&token=" + cookies.get("JWT-Authorization");
 | 
			
		||||
		}, null, "POST").send();
 | 
			
		||||
		$(loadEle).Loading("close");
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	function selSysMain() {
 | 
			
		||||
@ -1086,6 +1100,7 @@
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	function selAllSysVal(elem) {
 | 
			
		||||
		$(loadEle).Loading("start");
 | 
			
		||||
		if ($(elem).html() == '全選類別') {
 | 
			
		||||
			$('#mainList input').map(function (i, v) {
 | 
			
		||||
				if (!$(v).is(':checked')) {
 | 
			
		||||
@ -1112,6 +1127,7 @@
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		refTable();
 | 
			
		||||
		$(loadEle).Loading("close");
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	function event() {
 | 
			
		||||
@ -1359,12 +1375,18 @@
 | 
			
		||||
				if (!res || res.code != "0000" || !res.data) {
 | 
			
		||||
 | 
			
		||||
				} else {
 | 
			
		||||
					pageAct.sysMain = res.data.device_system_category_layer2;
 | 
			
		||||
					pageAct.sysSub = res.data.device_system_category_layer3;
 | 
			
		||||
					pageAct.number = res.data.fix_do_code;
 | 
			
		||||
					selOpeFir();
 | 
			
		||||
					errCodeList();
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
					callbackForErr(JSON.stringify({
 | 
			
		||||
						count: [res.data].length,
 | 
			
		||||
						data: [{ uuid: res.data.error_code }]
 | 
			
		||||
					}));
 | 
			
		||||
					$(pageAct.work_type == "1" ? '#inpNumber' : '#inpNumber_2').val(res.data.formId);
 | 
			
		||||
					$(pageAct.work_type == "1" ? '#inpWorTyp' : '#inpWorTyp_2').val(res.data.work_type);
 | 
			
		||||
					$(pageAct.work_type == "1" ? '#inpErrCode' : '#inpErrCode_2').val(res.data.error_code);
 | 
			
		||||
					$(pageAct.work_type == "1" ? '#inpFixDo' : '#inpFixDo_2').val(res.data.fix_do);
 | 
			
		||||
					$(pageAct.work_type == "1" ? '#inpFixDoCode' : '#inpFixDoCode_2').val(res.data.fix_do_code);
 | 
			
		||||
					$(pageAct.work_type == "1" ? '#inpFixFirm' : '#inpFixFirm_2').val(res.data.fix_firm);
 | 
			
		||||
@ -1373,6 +1395,9 @@
 | 
			
		||||
					$(pageAct.work_type == "1" ? '#inpStaTime' : '#inpStaTime_2').val(displayDate(res.data.start_time, 'date').replaceAll('/', '-'));
 | 
			
		||||
					$(pageAct.work_type == "1" ? '#inpNotice' : '#inpNotice_2').val(res.data.notice);
 | 
			
		||||
					$(pageAct.work_type == "1" ? '#inpDescription' : '#inpDescription_2').val(res.data.description);
 | 
			
		||||
					let elemSel = $(pageAct.work_type == "1" ? '#inpFixDoCode' : '#inpFixDoCode_2').find('option:selected');;
 | 
			
		||||
					pageAct.number = elemSel.val();
 | 
			
		||||
					selOpeFir();
 | 
			
		||||
 | 
			
		||||
					ope_imgHtml = null;
 | 
			
		||||
					$.each(res.data.lorf, function (i, v) {
 | 
			
		||||
@ -1468,17 +1493,18 @@
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	function callbackForErr(res) {
 | 
			
		||||
		res = JSON.parse(res);
 | 
			
		||||
		res = JSON.parse(res) || res;
 | 
			
		||||
		console.log(res)
 | 
			
		||||
		strHtml = ``;
 | 
			
		||||
 | 
			
		||||
		$.each(res.data, function (i, v) {
 | 
			
		||||
			msg = v.msgText != null ? ($.trim(v.msgText.toString()).length > 0 ? v.msgText.split(':')[0] : '') : '';
 | 
			
		||||
			strHtml += `<option value=${v.uuid}>${v.uuid}</option>`;
 | 
			
		||||
            strHtml += `<option value=${v.uuid}>${v.uuid.split("-")[0]}</option>`;
 | 
			
		||||
		});
 | 
			
		||||
 | 
			
		||||
		if (res.count > 0)
 | 
			
		||||
			$(pageAct.work_type == '1' ? '#inpErrCode' : '#inpErrCode_2').html(strHtml);
 | 
			
		||||
 | 
			
		||||
		else
 | 
			
		||||
			$(pageAct.work_type == '1' ? '#inpErrCode' : '#inpErrCode_2').html("");
 | 
			
		||||
		$(loadEle).Loading("close");
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -760,16 +760,17 @@
 | 
			
		||||
  function setTableColumns() {
 | 
			
		||||
    const tableType = $("li.active [name=reportTypeRadio]").data("value");
 | 
			
		||||
    const compareType = $("label.active [name=compareTypeRadio]").val();
 | 
			
		||||
    const columnWidth = "45px";
 | 
			
		||||
    let columns = [];
 | 
			
		||||
    switch (tableType) {
 | 
			
		||||
      case "day":
 | 
			
		||||
        columns = getDayByMonth($("#elecMonthDate").val()).map((dc) => {
 | 
			
		||||
          return { title: dc, data: dc };
 | 
			
		||||
          return { title: dc, data: dc,sWidth:columnWidth };
 | 
			
		||||
        });
 | 
			
		||||
        break;
 | 
			
		||||
      case "month":
 | 
			
		||||
        columns = getMonthByYear($("#elecYearDate").val()).map((dc) => {
 | 
			
		||||
          return { title: dc, data: dc };
 | 
			
		||||
          return { title: dc, data: dc,sWidth:columnWidth  };
 | 
			
		||||
        });
 | 
			
		||||
        break;
 | 
			
		||||
      case "year":
 | 
			
		||||
@ -777,7 +778,7 @@
 | 
			
		||||
          $("#elecSYearDate").val(),
 | 
			
		||||
          $("#elecEYearDate").val()
 | 
			
		||||
        ).map((dc) => {
 | 
			
		||||
          return { title: dc, data: dc };
 | 
			
		||||
          return { title: dc, data: dc,sWidth:columnWidth  };
 | 
			
		||||
        });
 | 
			
		||||
        break;
 | 
			
		||||
      case "compare":
 | 
			
		||||
@ -813,9 +814,9 @@
 | 
			
		||||
 | 
			
		||||
        return compareResult.map((dc) => {
 | 
			
		||||
          if (dc._isCompared) {
 | 
			
		||||
            return { title: dc.value, data: dc.value, sClass: "compare" };
 | 
			
		||||
            return { title: dc.value, data: dc.value, sClass: "compare",sWidth:columnWidth };
 | 
			
		||||
          }
 | 
			
		||||
          return { title: dc, data: dc };
 | 
			
		||||
          return { title: dc, data: dc,sWidth:columnWidth};
 | 
			
		||||
        });
 | 
			
		||||
 | 
			
		||||
        break;
 | 
			
		||||
@ -844,14 +845,17 @@
 | 
			
		||||
      {
 | 
			
		||||
        title: "小計",
 | 
			
		||||
        data: "total",
 | 
			
		||||
        sWidth:"70px",
 | 
			
		||||
      },
 | 
			
		||||
      {
 | 
			
		||||
        title: "單價",
 | 
			
		||||
        data: "price",
 | 
			
		||||
        sWidth:"45px",
 | 
			
		||||
      },
 | 
			
		||||
      {
 | 
			
		||||
        title: "金額總計",
 | 
			
		||||
        data: "total_price",
 | 
			
		||||
        sWidth:"70px",
 | 
			
		||||
      },
 | 
			
		||||
    ];
 | 
			
		||||
    const tableType = $("li.active [name=reportTypeRadio]").data("value");
 | 
			
		||||
@ -872,11 +876,11 @@
 | 
			
		||||
          totalColumns.splice(i + 1, 0, {
 | 
			
		||||
            title: com2Time + c.title,
 | 
			
		||||
            data: "_compare_" + c.data,
 | 
			
		||||
            sWidth: "60px",
 | 
			
		||||
            sWidth: "70px",
 | 
			
		||||
            sClass: "compare",
 | 
			
		||||
          });
 | 
			
		||||
          c.title = com1Time + c.title;
 | 
			
		||||
          c.sWidth = "60px";
 | 
			
		||||
          c.sWidth = "70px";
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
@ -900,12 +904,12 @@
 | 
			
		||||
        {
 | 
			
		||||
          title: "樓層",
 | 
			
		||||
          data: "floor_tag",
 | 
			
		||||
          width: "8%",
 | 
			
		||||
          sWidth: "8%",
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          title: "設備",
 | 
			
		||||
          data: "device_serial_tag",
 | 
			
		||||
          width: "8%",
 | 
			
		||||
          data: "device_full_name",
 | 
			
		||||
          sWidth: "100px",
 | 
			
		||||
        },
 | 
			
		||||
        ...datesColumns,
 | 
			
		||||
        ...totalColumns,
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										9
									
								
								Frontend/_schoolView.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,9 @@
 | 
			
		||||
 | 
			
		||||
<div class="container-fluid">
 | 
			
		||||
    <div class="row bg-dark align-items-center">
 | 
			
		||||
        <label id="sysSubText" class=" mx-5 mb-0 fs-1-05"></label>
 | 
			
		||||
        <div style="height:85vh" class="col-12">
 | 
			
		||||
            <iframe src="/ord?file:^px/Home.px|view:?fullScreen=true" width="100%" height="100%"></iframe>
 | 
			
		||||
       </div>
 | 
			
		||||
    </div>
 | 
			
		||||
</div>
 | 
			
		||||
@ -54,6 +54,7 @@
 | 
			
		||||
 | 
			
		||||
  $(function () {
 | 
			
		||||
    $(loadEle).Loading("start");
 | 
			
		||||
    debugger
 | 
			
		||||
    getBuildMenu((arr, data) => {
 | 
			
		||||
      buildMenuData = data;
 | 
			
		||||
      if (arr.indexOf(4) != -1) {
 | 
			
		||||
@ -118,12 +119,11 @@
 | 
			
		||||
    let deviceCloseArr = [];
 | 
			
		||||
 | 
			
		||||
    myBaja.setSubscribeDevicesCallBack(function (data) {
 | 
			
		||||
      console.log("subDevice 開始");
 | 
			
		||||
      // console.log(data)
 | 
			
		||||
      let matchDevice = allDevList.filter(
 | 
			
		||||
        (x) => x.device_number == data.device_number_full
 | 
			
		||||
      )[0];
 | 
			
		||||
      if (!matchDevice) {
 | 
			
		||||
        $(loadEle).Loading("close");
 | 
			
		||||
        return false;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
@ -198,7 +198,7 @@
 | 
			
		||||
 | 
			
		||||
      if (
 | 
			
		||||
        data.point_name == norDevPoiName &&
 | 
			
		||||
        (data.value == matchDevice.device_normal_point_value || norDevPoiName === errDevPoiName) &&
 | 
			
		||||
        data.value == matchDevice.device_normal_point_value &&
 | 
			
		||||
        !deviceNormalArr.some(
 | 
			
		||||
          ({ device_number }) => device_number === matchDevice.device_number
 | 
			
		||||
        )
 | 
			
		||||
@ -236,10 +236,15 @@
 | 
			
		||||
          (device) => device.device_number === matchDevice.device_number
 | 
			
		||||
        )
 | 
			
		||||
      ) {
 | 
			
		||||
        if (pageAct.sysSubTag === "L1") {
 | 
			
		||||
          $(`#${matchDevice.device_number}_status`)
 | 
			
		||||
            .attr("data-light-error-type", "error")
 | 
			
		||||
            .data("light-error-type", "error");
 | 
			
		||||
 | 
			
		||||
        } else {
 | 
			
		||||
          $(`#${matchDevice.device_number}_status`)
 | 
			
		||||
            .attr("data-light-type", "error")
 | 
			
		||||
            .data("light-type", "error");
 | 
			
		||||
        }
 | 
			
		||||
        alarmDbIdList.push(matchDevice);
 | 
			
		||||
      } else if (
 | 
			
		||||
        data.point_name == errDevPoiName &&
 | 
			
		||||
@ -253,22 +258,10 @@
 | 
			
		||||
        );
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      if (
 | 
			
		||||
        deviceCloseArr.length === 0 &&
 | 
			
		||||
        alarmDbIdList.some(
 | 
			
		||||
          (device) => device.device_number === matchDevice.device_number
 | 
			
		||||
        )
 | 
			
		||||
      ) {
 | 
			
		||||
        $(`#${matchDevice.device_number}_status`)
 | 
			
		||||
          .attr("data-light-type", "error")
 | 
			
		||||
          .data("light-type", "error");
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      if (
 | 
			
		||||
        (!pageAct.floTag &&
 | 
			
		||||
        allDevList.length ===
 | 
			
		||||
          deviceNormalArr.length + deviceCloseArr.length) ||
 | 
			
		||||
        allDevList.length === deviceNormalArr.length + alarmDbIdList.length
 | 
			
		||||
        deviceNormalArr.length + deviceCloseArr.length + alarmDbIdList.length
 | 
			
		||||
      ) {
 | 
			
		||||
        changeColorForHotspot(
 | 
			
		||||
          deviceNormalArr.map(({ spriteDbid }) => spriteDbid),
 | 
			
		||||
@ -299,12 +292,166 @@
 | 
			
		||||
      if (data.findIndex((x) => x.point_name == "CO2") != -1) {
 | 
			
		||||
        // 顯示溫度條
 | 
			
		||||
        showHeatCO2("[name=forgeHeatBar]");
 | 
			
		||||
      } else if (data.findIndex((x) => x.point_name == "Temp" || x.point_name == "TEMP") != -1) {
 | 
			
		||||
      } else if (data.findIndex((x) => x.point_name == "Temp") != -1) {
 | 
			
		||||
        // 顯示溫度條
 | 
			
		||||
        showHeat("[name=forgeHeatBar]");
 | 
			
		||||
      }
 | 
			
		||||
    });
 | 
			
		||||
  }
 | 
			
		||||
  // function subDevice() {
 | 
			
		||||
  //   let myBaja = new subscriptionDevices();
 | 
			
		||||
  //   var ordPath = {
 | 
			
		||||
  //     area_tag: pageAct.AreaTag,
 | 
			
		||||
  //     building_tag: pageAct.buiTag,
 | 
			
		||||
  //     system_tag: pageAct.sysMainTag,
 | 
			
		||||
  //     name_tag: pageAct.sysSubTag,
 | 
			
		||||
  //   };
 | 
			
		||||
  //   myBaja.setSubscribeDevicesByBql(ordPath);
 | 
			
		||||
 | 
			
		||||
  //   // 燈熱點用
 | 
			
		||||
  //   let lightOnHotColorArr = [];
 | 
			
		||||
  //   let lightOffHotColorArr = [];
 | 
			
		||||
  //   // 燈光圈用
 | 
			
		||||
  //   let lightOnGuidArr = [];
 | 
			
		||||
  //   let lightOffGuidArr = [];
 | 
			
		||||
 | 
			
		||||
  //   myBaja.setSubscribeDevicesCallBack(function (data) {
 | 
			
		||||
  //     // console.log(data)
 | 
			
		||||
  //     let matchDevice = allDevList.filter(
 | 
			
		||||
  //       (x) => x.device_number == data.device_number_full
 | 
			
		||||
  //     )[0];
 | 
			
		||||
  //     if (!matchDevice) {
 | 
			
		||||
  //       return false;
 | 
			
		||||
  //     }
 | 
			
		||||
 | 
			
		||||
  //     //將訂閱值塞入 subDeviceData
 | 
			
		||||
  //     if (
 | 
			
		||||
  //       subDeviceData.findIndex(
 | 
			
		||||
  //         (x) => x.device_number == matchDevice.device_number
 | 
			
		||||
  //       ) == -1
 | 
			
		||||
  //     ) {
 | 
			
		||||
  //       let obj = {};
 | 
			
		||||
  //       obj.device_number = matchDevice.device_number;
 | 
			
		||||
  //       obj.dbid = matchDevice.forge_dbid;
 | 
			
		||||
  //       subDeviceData.push(obj);
 | 
			
		||||
  //     }
 | 
			
		||||
 | 
			
		||||
  //     let subData = subDeviceData.filter(
 | 
			
		||||
  //       (x) => x.device_number == matchDevice.device_number
 | 
			
		||||
  //     )[0];
 | 
			
		||||
 | 
			
		||||
  //     if (subData) {
 | 
			
		||||
  //       subData[data.point_name] = data.value;
 | 
			
		||||
  //     }
 | 
			
		||||
 | 
			
		||||
  //     let norDevPoiName = matchDevice.device_normal_point_name;
 | 
			
		||||
  //     let cloDevPoiName = matchDevice.device_close_point_name;
 | 
			
		||||
  //     let errDevPoiName = matchDevice.device_error_point_name;
 | 
			
		||||
 | 
			
		||||
  //     if (data.point_name == "ONOFF" && pageAct.sysSubTag === "L1") {
 | 
			
		||||
  //       const lightOn = data.value.includes("true");
 | 
			
		||||
 | 
			
		||||
  //       setLightOpenOrClose(lightOn, matchDevice.device_guid);
 | 
			
		||||
  //       if (lightOn) {
 | 
			
		||||
  //         setLightValues(matchDevice.device_guid, 200, 0xe1cf18);
 | 
			
		||||
  //         // changeColorForHotspot(matchDevice.spriteDbid, null, true)
 | 
			
		||||
  //         if (
 | 
			
		||||
  //           !lightOnHotColorArr.some(
 | 
			
		||||
  //             ({ spriteDbid }) => spriteDbid === matchDevice.spriteDbid
 | 
			
		||||
  //           )
 | 
			
		||||
  //         ) {
 | 
			
		||||
  //           lightOnHotColorArr.push(matchDevice);
 | 
			
		||||
  //         }
 | 
			
		||||
  //         lightOffHotColorArr = lightOffHotColorArr.filter(
 | 
			
		||||
  //           (light) => light.spriteDbid !== matchDevice.spriteDbid
 | 
			
		||||
  //         );
 | 
			
		||||
  //         heatMap?.changeTemp(matchDevice.device_number, 40);
 | 
			
		||||
  //       } else {
 | 
			
		||||
  //         setLightValues(matchDevice.device_guid, 0, 0xffffff);
 | 
			
		||||
  //         // changeColorForHotspot(matchDevice.spriteDbid)
 | 
			
		||||
  //         if (
 | 
			
		||||
  //           !lightOffHotColorArr.some(
 | 
			
		||||
  //             ({ spriteDbid }) => spriteDbid === matchDevice.spriteDbid
 | 
			
		||||
  //           )
 | 
			
		||||
  //         ) {
 | 
			
		||||
  //           lightOffHotColorArr.push(matchDevice);
 | 
			
		||||
  //         }
 | 
			
		||||
  //         lightOnHotColorArr = lightOnHotColorArr.filter(
 | 
			
		||||
  //           (light) => light.spriteDbid !== matchDevice.spriteDbid
 | 
			
		||||
  //         );
 | 
			
		||||
 | 
			
		||||
  //         heatMap?.changeTemp(matchDevice.device_number, 0);
 | 
			
		||||
  //       }
 | 
			
		||||
  //     }
 | 
			
		||||
 | 
			
		||||
  //     if (data.point_name == "Temp") {
 | 
			
		||||
  //       heatMap?.changeTemp(
 | 
			
		||||
  //         data.device_number_full,
 | 
			
		||||
  //         !isNaN(parseInt(data.value)) ? parseInt(data.value) : 0
 | 
			
		||||
  //       );
 | 
			
		||||
  //       let devIdx = allDevList.findIndex(
 | 
			
		||||
  //         (x) => x.device_number == data.device_number_full
 | 
			
		||||
  //       );
 | 
			
		||||
  //       allDevList[devIdx]._temp = !isNaN(parseInt(data.value))
 | 
			
		||||
  //         ? parseInt(data.value)
 | 
			
		||||
  //         : 0;
 | 
			
		||||
  //     }
 | 
			
		||||
  //     if (
 | 
			
		||||
  //       data.point_name == norDevPoiName &&
 | 
			
		||||
  //       data.value == matchDevice.device_normal_point_value
 | 
			
		||||
  //     ) {
 | 
			
		||||
  //       //顯示正常燈號
 | 
			
		||||
  //       $(`#${matchDevice.device_number}_status`)
 | 
			
		||||
  //         .attr("data-light-type", "normal")
 | 
			
		||||
  //         .data("light-type", "normal");
 | 
			
		||||
  //     } else if (
 | 
			
		||||
  //       data.point_name == cloDevPoiName &&
 | 
			
		||||
  //       data.value == matchDevice.device_close_point_value
 | 
			
		||||
  //     ) {
 | 
			
		||||
  //       $(`#${matchDevice.device_number}_status`)
 | 
			
		||||
  //         .attr("data-light-type", "close")
 | 
			
		||||
  //         .data("light-type", "close");
 | 
			
		||||
  //     } else if (
 | 
			
		||||
  //       data.point_name == errDevPoiName &&
 | 
			
		||||
  //       data.value == matchDevice.device_error_point_value
 | 
			
		||||
  //     ) {
 | 
			
		||||
  //       $(`#${matchDevice.device_number}_status`)
 | 
			
		||||
  //         .attr("data-light-type", "error")
 | 
			
		||||
  //         .data("light-type", "error");
 | 
			
		||||
  //     }
 | 
			
		||||
  //     if (
 | 
			
		||||
  //       allDevList.length ===
 | 
			
		||||
  //       lightOnHotColorArr.length + lightOffHotColorArr.length
 | 
			
		||||
  //     ) {
 | 
			
		||||
  //       changeColorForHotspot(
 | 
			
		||||
  //         lightOnHotColorArr.map(({ spriteDbid }) => spriteDbid),
 | 
			
		||||
  //         null,
 | 
			
		||||
  //         true
 | 
			
		||||
  //       );
 | 
			
		||||
  //       changeColorForHotspot(
 | 
			
		||||
  //         lightOffHotColorArr.map(({ spriteDbid }) => spriteDbid),
 | 
			
		||||
  //         null,
 | 
			
		||||
  //         false
 | 
			
		||||
  //       );
 | 
			
		||||
 | 
			
		||||
  //     }
 | 
			
		||||
  //     $(loadEle).Loading("close");
 | 
			
		||||
 | 
			
		||||
  //     setLightColor();
 | 
			
		||||
  //     setForgeHotSpotColor(matchDevice);
 | 
			
		||||
  //     lightDevForgeSpotLig(matchDevice);
 | 
			
		||||
  //     // 從設備訂閱更新每個設備卡片即時點位
 | 
			
		||||
  //     setDevItemPoiValBySub(data);
 | 
			
		||||
  //   });
 | 
			
		||||
 | 
			
		||||
  //   myBaja.setSubscribeDeviceEndCallBack(function (data) {
 | 
			
		||||
  //     endPageLoading();
 | 
			
		||||
  //     if (data.findIndex((x) => x.point_name == "Temp") != -1) {
 | 
			
		||||
  //       // 顯示溫度條
 | 
			
		||||
  //       showHeat("[name=forgeHeatBar]");
 | 
			
		||||
  //     }
 | 
			
		||||
  //   });
 | 
			
		||||
  // }
 | 
			
		||||
 | 
			
		||||
  function lightDevForgeSpotLig(devObj) { }
 | 
			
		||||
 | 
			
		||||
@ -458,9 +605,9 @@
 | 
			
		||||
            endPageLoading();
 | 
			
		||||
          } else {
 | 
			
		||||
            // 訂閱 baja 設備
 | 
			
		||||
            // if (pageAct.sysSubTag !== "L1" && pageAct.sysSubTag !== "M12") {
 | 
			
		||||
            //   subDevice();
 | 
			
		||||
            // }
 | 
			
		||||
            if (pageAct.sysSubTag !== "L1" && pageAct.sysSubTag !== "M12") {
 | 
			
		||||
              subDevice();
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
 | 
			
		||||
          // 繪製 html
 | 
			
		||||
@ -718,14 +865,14 @@
 | 
			
		||||
              .map((y) => x)
 | 
			
		||||
          );
 | 
			
		||||
 | 
			
		||||
          // for (let sub of stSubArr) {
 | 
			
		||||
          //   let matchDevice = allDevList.filter(
 | 
			
		||||
          //     (x) => x.device_number == sub[0]?.device_number
 | 
			
		||||
          //   )[0];
 | 
			
		||||
          //   if (matchDevice) {
 | 
			
		||||
          //     setForgeHotSpotColor(matchDevice);
 | 
			
		||||
          //   }
 | 
			
		||||
          // }
 | 
			
		||||
          for (let sub of stSubArr) {
 | 
			
		||||
            let matchDevice = allDevList.filter(
 | 
			
		||||
              (x) => x.device_number == sub[0]?.device_number
 | 
			
		||||
            )[0];
 | 
			
		||||
            if (matchDevice) {
 | 
			
		||||
              setForgeHotSpotColor(matchDevice);
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
        if (pageAct.sysSubTag == "W2") {
 | 
			
		||||
          // console.log("@@",pageAct, pageAct.sub_system_tag)
 | 
			
		||||
@ -889,14 +1036,11 @@
 | 
			
		||||
      allDevList.forEach((dev, idx) => {
 | 
			
		||||
        if (dev.device_number == devNum) {
 | 
			
		||||
          dev.spriteDbid = dbid;
 | 
			
		||||
          // setForgeHotSpotColor(dev);
 | 
			
		||||
          setForgeHotSpotColor(dev);
 | 
			
		||||
        }
 | 
			
		||||
      });
 | 
			
		||||
      $(ele).data("dbId", dbid);
 | 
			
		||||
    });
 | 
			
		||||
    if (pageAct.sysSubTag !== "L1" && pageAct.sysSubTag !== "M12") {
 | 
			
		||||
      subDevice();
 | 
			
		||||
    }
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  onEvent("yt:tooltip:show", "[name=devItem]", function (e, obj) {
 | 
			
		||||
 | 
			
		||||
@ -15,11 +15,11 @@
 | 
			
		||||
  <div id="forgeViewer" class="position-absolute" style="width:96%;height:96%;"></div>
 | 
			
		||||
</div> -->
 | 
			
		||||
<div class="d-flex">
 | 
			
		||||
  <div class="col-6 my-3">
 | 
			
		||||
  <div class="col-12 my-3 col-md-6" id="floorLeftBlock">
 | 
			
		||||
    <div id="floChart"
 | 
			
		||||
         style="height: 100%; width: 100%; background-color: #fff"></div>
 | 
			
		||||
  </div>
 | 
			
		||||
  <div class="col-6 my-3">
 | 
			
		||||
  <div class="col-12 my-3 col-md-6" id="floorRightBlock">
 | 
			
		||||
    <!-- <div id="forgeViewer" class="position-relative" style="height:100%">
 | 
			
		||||
          <div id="forgeHeatBarDiv" class="d-flex mb-4 position-absolute" style="gap:15px">
 | 
			
		||||
          </div>
 | 
			
		||||
@ -43,7 +43,10 @@
 | 
			
		||||
  var zoomToggle = 1.3;
 | 
			
		||||
  $(function () {
 | 
			
		||||
    $(loadEle).Loading("start");
 | 
			
		||||
    alarmDbIdList = [];
 | 
			
		||||
    if(!pageAct.urn){
 | 
			
		||||
      $("#floorRightBlock").hide();
 | 
			
		||||
      $("#floorLeftBlock").removeClass("col-md-6");
 | 
			
		||||
    }
 | 
			
		||||
    $("#topLight").html(setTopLight());
 | 
			
		||||
    setLightColor();
 | 
			
		||||
    initChart();
 | 
			
		||||
@ -443,7 +446,7 @@
 | 
			
		||||
            });
 | 
			
		||||
            cData._dbId = dbid;
 | 
			
		||||
            cData.spriteDbid = dbid;
 | 
			
		||||
            // setForgeHotSpotColor(cData);
 | 
			
		||||
            setForgeHotSpotColor(cData);
 | 
			
		||||
          });
 | 
			
		||||
        });
 | 
			
		||||
        floChart.setOption(option);
 | 
			
		||||
@ -537,7 +540,6 @@
 | 
			
		||||
        (x) => x.device_number == data.device_number_full
 | 
			
		||||
      )[0];
 | 
			
		||||
      if (!matchDevice) {
 | 
			
		||||
        $(loadEle).Loading("close");
 | 
			
		||||
        return false;
 | 
			
		||||
      }
 | 
			
		||||
      //將訂閱值塞入 subDeviceData
 | 
			
		||||
@ -598,36 +600,9 @@
 | 
			
		||||
          heatMap?.changeTemp(matchDevice.device_number, 0);
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      if (
 | 
			
		||||
        data.point_name == errDevPoiName &&
 | 
			
		||||
        data.value !== matchDevice.device_error_point_value &&
 | 
			
		||||
        alarmDbIdList.some(
 | 
			
		||||
          ({ device_number }) => matchDevice.device_number === device_number
 | 
			
		||||
        )
 | 
			
		||||
      ) {
 | 
			
		||||
        alarmDbIdList = alarmDbIdList.filter(
 | 
			
		||||
          ({ device_number }) => matchDevice.device_number === device_number
 | 
			
		||||
        );
 | 
			
		||||
      } else if (
 | 
			
		||||
        data.point_name == errDevPoiName &&
 | 
			
		||||
        data.value == matchDevice.device_error_point_value &&
 | 
			
		||||
        !alarmDbIdList.some(
 | 
			
		||||
          ({ device_number }) => matchDevice.device_number === device_number
 | 
			
		||||
        )
 | 
			
		||||
      ) {
 | 
			
		||||
        $(`#${matchDevice.device_number}_status`)
 | 
			
		||||
          .attr("data-light-type", "error")
 | 
			
		||||
          .data("light-type", "error");
 | 
			
		||||
        alarmDbIdList.push(matchDevice);
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      if (
 | 
			
		||||
        data.point_name == norDevPoiName &&
 | 
			
		||||
        (data.value == matchDevice.device_normal_point_value || norDevPoiName === errDevPoiName) &&
 | 
			
		||||
        !deviceScatterNormalArr.some(
 | 
			
		||||
          ({ device_number }) => data.device_number_full === device_number
 | 
			
		||||
        )
 | 
			
		||||
        data.value == matchDevice.device_normal_point_value
 | 
			
		||||
      ) {
 | 
			
		||||
        //顯示正常燈號
 | 
			
		||||
        $(`#${matchDevice.device_number}_status`)
 | 
			
		||||
@ -637,56 +612,83 @@
 | 
			
		||||
        deviceScatterCloseArr = deviceScatterCloseArr.filter(
 | 
			
		||||
          (device) => device.spriteDbid !== matchDevice.spriteDbid
 | 
			
		||||
        );
 | 
			
		||||
        deviceScatterErrorArr = deviceScatterErrorArr.filter(
 | 
			
		||||
          (device) => device.spriteDbid !== matchDevice.spriteDbid
 | 
			
		||||
        );
 | 
			
		||||
      } else if (
 | 
			
		||||
        data.point_name == cloDevPoiName &&
 | 
			
		||||
        data.value == matchDevice.device_close_point_value &&
 | 
			
		||||
        !deviceScatterCloseArr.some(
 | 
			
		||||
          ({ device_number }) => data.device_number_full === device_number
 | 
			
		||||
        )
 | 
			
		||||
        data.value == matchDevice.device_close_point_value
 | 
			
		||||
      ) {
 | 
			
		||||
        $(`#${matchDevice.device_number}_status`)
 | 
			
		||||
          .attr("data-light-type", "close")
 | 
			
		||||
          .data("light-type", "close");
 | 
			
		||||
        deviceScatterCloseArr.push(matchDevice);
 | 
			
		||||
 | 
			
		||||
        deviceScatterNormalArr = deviceScatterNormalArr.filter(
 | 
			
		||||
          (device) => device.spriteDbid !== matchDevice.spriteDbid
 | 
			
		||||
        );
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      if (pageAct.sysSubTag === "L1" && lightControl === "node") {
 | 
			
		||||
        alarmDbIdList = alarmDbIdList.filter(
 | 
			
		||||
          ({ device_node_guid }) =>
 | 
			
		||||
            device_node_guid !== undefined && device_node_guid !== null
 | 
			
		||||
        deviceScatterErrorArr = deviceScatterErrorArr.filter(
 | 
			
		||||
          (device) => device.spriteDbid !== matchDevice.spriteDbid
 | 
			
		||||
        );
 | 
			
		||||
 | 
			
		||||
      } else if (
 | 
			
		||||
        data.point_name == errDevPoiName &&
 | 
			
		||||
        data.value == matchDevice.device_error_point_value
 | 
			
		||||
      ) {
 | 
			
		||||
        $(`#${matchDevice.device_number}_status`)
 | 
			
		||||
          .attr("data-light-type", "error")
 | 
			
		||||
          .data("light-type", "error");
 | 
			
		||||
        deviceScatterErrorArr.push(matchDevice);
 | 
			
		||||
        deviceScatterNormalArr = deviceScatterNormalArr.filter(
 | 
			
		||||
          ({ device_node_guid }) =>
 | 
			
		||||
            device_node_guid !== undefined && device_node_guid !== null
 | 
			
		||||
          (device) => device.spriteDbid !== matchDevice.spriteDbid
 | 
			
		||||
        );
 | 
			
		||||
        deviceScatterCloseArr = deviceScatterCloseArr.filter(
 | 
			
		||||
          ({ device_node_guid }) =>
 | 
			
		||||
            device_node_guid !== undefined && device_node_guid !== null
 | 
			
		||||
        );
 | 
			
		||||
 | 
			
		||||
        lightOnHotColorArr = lightOnHotColorArr.filter(
 | 
			
		||||
          ({ device_node_guid }) =>
 | 
			
		||||
            device_node_guid !== undefined && device_node_guid !== null
 | 
			
		||||
        );
 | 
			
		||||
        lightOffHotColorArr = lightOffHotColorArr.filter(
 | 
			
		||||
          ({ device_node_guid }) =>
 | 
			
		||||
            device_node_guid !== undefined && device_node_guid !== null
 | 
			
		||||
          (device) => device.spriteDbid !== matchDevice.spriteDbid
 | 
			
		||||
        );
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      if (
 | 
			
		||||
        deviceScatterCloseArr.length + deviceScatterNormalArr.length ===
 | 
			
		||||
        option.series[0].data.length ||
 | 
			
		||||
        option.series[0].data.length ===
 | 
			
		||||
        lightOnHotColorArr.length + lightOffHotColorArr.length
 | 
			
		||||
      ) {
 | 
			
		||||
        lightOnHotColorArr.forEach((light) => {
 | 
			
		||||
          const cur = option.series[0].data.find(
 | 
			
		||||
            ({ device_number }) => device_number === light.device_number
 | 
			
		||||
          );
 | 
			
		||||
 | 
			
		||||
          const onColor = currentData.find(
 | 
			
		||||
            ({ device_number }) => device_number === light.device_number
 | 
			
		||||
          ).device_normal_color;
 | 
			
		||||
          cur.itemStyle = { color: onColor };
 | 
			
		||||
        });
 | 
			
		||||
 | 
			
		||||
        lightOffHotColorArr.forEach((light) => {
 | 
			
		||||
          const cur = option.series[0].data.find(
 | 
			
		||||
            ({ device_number }) => device_number === light.device_number
 | 
			
		||||
          );
 | 
			
		||||
          const offColor = currentData.find(
 | 
			
		||||
            ({ device_number }) => device_number === light.device_number
 | 
			
		||||
          ).device_close_color;
 | 
			
		||||
          cur.itemStyle = { color: offColor };
 | 
			
		||||
        });
 | 
			
		||||
 | 
			
		||||
        floChart.setOption(option);
 | 
			
		||||
 | 
			
		||||
        changeColorForHotspot(
 | 
			
		||||
          lightOnHotColorArr.map(({ spriteDbid }) => spriteDbid),
 | 
			
		||||
          null,
 | 
			
		||||
          true
 | 
			
		||||
        );
 | 
			
		||||
        changeColorForHotspot(
 | 
			
		||||
          lightOffHotColorArr.map(({ spriteDbid }) => spriteDbid),
 | 
			
		||||
          null,
 | 
			
		||||
          false
 | 
			
		||||
        );
 | 
			
		||||
        $(loadEle).Loading("close");
 | 
			
		||||
      } else if (
 | 
			
		||||
        deviceScatterCloseArr.length +
 | 
			
		||||
        deviceScatterNormalArr.length +
 | 
			
		||||
        alarmDbIdList.length ===
 | 
			
		||||
        deviceScatterErrorArr.length ===
 | 
			
		||||
        option.series[0].data.length
 | 
			
		||||
      ) {
 | 
			
		||||
        deviceScatterNormalArr.length &&
 | 
			
		||||
        deviceScatterNormalArr.forEach((device) => {
 | 
			
		||||
          const cur = option.series[0].data.find(
 | 
			
		||||
            ({ device_number }) => device_number === device.device_number
 | 
			
		||||
@ -695,18 +697,9 @@
 | 
			
		||||
          const normalColor = currentData.find(
 | 
			
		||||
            ({ device_number }) => device_number === device.device_number
 | 
			
		||||
          ).device_normal_color;
 | 
			
		||||
            if (cur) {
 | 
			
		||||
          cur.itemStyle = { color: normalColor };
 | 
			
		||||
            }
 | 
			
		||||
        });
 | 
			
		||||
 | 
			
		||||
        changeColorForHotspot(
 | 
			
		||||
          deviceScatterNormalArr.map(({ spriteDbid }) => spriteDbid),
 | 
			
		||||
          null,
 | 
			
		||||
          true
 | 
			
		||||
        );
 | 
			
		||||
 | 
			
		||||
        deviceScatterCloseArr.length &&
 | 
			
		||||
        deviceScatterCloseArr.forEach((device) => {
 | 
			
		||||
          const cur = option.series[0].data.find(
 | 
			
		||||
            ({ device_number }) => device_number === device.device_number
 | 
			
		||||
@ -714,37 +707,22 @@
 | 
			
		||||
          const closeColor = currentData.find(
 | 
			
		||||
            ({ device_number }) => device_number === device.device_number
 | 
			
		||||
          ).device_close_color;
 | 
			
		||||
            if (cur) {
 | 
			
		||||
          cur.itemStyle = { color: closeColor };
 | 
			
		||||
            }
 | 
			
		||||
        });
 | 
			
		||||
 | 
			
		||||
        changeColorForHotspot(
 | 
			
		||||
          deviceScatterCloseArr.map(({ spriteDbid }) => spriteDbid),
 | 
			
		||||
          null,
 | 
			
		||||
          false
 | 
			
		||||
        );
 | 
			
		||||
 | 
			
		||||
        alarmDbIdList.length &&
 | 
			
		||||
          alarmDbIdList.forEach((device) => {
 | 
			
		||||
        deviceScatterErrorArr.forEach((device) => {
 | 
			
		||||
          const cur = option.series[0].data.find(
 | 
			
		||||
            ({ device_number }) => device_number === device.device_number
 | 
			
		||||
          );
 | 
			
		||||
 | 
			
		||||
          const errColor = currentData.find(
 | 
			
		||||
            ({ device_number }) => device_number === device.device_number
 | 
			
		||||
            )?.device_error_color;
 | 
			
		||||
 | 
			
		||||
            if (cur) {
 | 
			
		||||
          ).device_error_color;
 | 
			
		||||
          cur.itemStyle = { color: errColor };
 | 
			
		||||
            }
 | 
			
		||||
        });
 | 
			
		||||
        changeColorForHotspot(
 | 
			
		||||
          alarmDbIdList.map(({ spriteDbid }) => spriteDbid),
 | 
			
		||||
          "error",
 | 
			
		||||
          false
 | 
			
		||||
        );
 | 
			
		||||
 | 
			
		||||
        floChart.setOption(option);
 | 
			
		||||
        setForgeHotSpotColor(matchDevice);
 | 
			
		||||
        $(loadEle).Loading("close");
 | 
			
		||||
      }
 | 
			
		||||
    });
 | 
			
		||||
@ -1617,6 +1595,7 @@
 | 
			
		||||
        });
 | 
			
		||||
      };
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (pageAct.sysSubTag === "M12" && !elevatorShow) {
 | 
			
		||||
      let sensorObjs = [];
 | 
			
		||||
      addHotPoint(viewer);
 | 
			
		||||
 | 
			
		||||
@ -1,317 +1,97 @@
 | 
			
		||||
 | 
			
		||||
:root {
 | 
			
		||||
  --yt-main-gray: #c2c7d0;
 | 
			
		||||
  --yt-main-black: #212529;
 | 
			
		||||
  --yt-main-gray-hover: #c2c7d0;
 | 
			
		||||
  --yt-gray: #505050;
 | 
			
		||||
  --yt-gray-hover: #3c3c3c;
 | 
			
		||||
  --yt-gray-2: #8f8c8c;
 | 
			
		||||
  --yt-gray-2-hover: #646060;
 | 
			
		||||
  --yt-gray-3: #ededed;
 | 
			
		||||
  --yt-gray-4: #dddddd;
 | 
			
		||||
  --yt-pink: #ff95d0;
 | 
			
		||||
  --yt-pink-hover: #ef84c0;
 | 
			
		||||
  --yt-red-2: #d34949;
 | 
			
		||||
  --yt-yellow-1: #ffc902;
 | 
			
		||||
}
 | 
			
		||||
:root { --yt-main-gray: #c2c7d0; --yt-main-black: #212529; --yt-main-gray-hover: #c2c7d0; --yt-gray: #505050; --yt-gray-hover: #3c3c3c; --yt-gray-2: #8f8c8c; --yt-gray-2-hover: #646060; --yt-gray-3: #ededed; --yt-gray-4: #dddddd; --yt-pink: #ff95d0; --yt-pink-hover: #ef84c0; --yt-red-2: #d34949; --yt-yellow-1: #ffc902; }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
.mod-skin-dark:not(.mod-skin-light) .panel-hdr, .mod-skin-dark:not(.mod-skin-light) .card-header {
 | 
			
		||||
  background: rgba(0, 0, 0, 0.03);
 | 
			
		||||
}
 | 
			
		||||
.mod-skin-dark:not(.mod-skin-light) .panel-hdr, .mod-skin-dark:not(.mod-skin-light) .card-header { background: rgba(0, 0, 0, 0.03); }
 | 
			
		||||
 | 
			
		||||
.btn-sm-2 {
 | 
			
		||||
  padding: 2px 19px;
 | 
			
		||||
}
 | 
			
		||||
.btn-sm-2 { padding: 2px 19px; }
 | 
			
		||||
 | 
			
		||||
.table td {
 | 
			
		||||
  word-break: break-all;
 | 
			
		||||
}
 | 
			
		||||
.table td { word-break: break-all; }
 | 
			
		||||
 | 
			
		||||
label[id$='-error'].error {
 | 
			
		||||
  color: var(--yt-red-2);
 | 
			
		||||
}
 | 
			
		||||
label[id$='-error'].error { color: var(--yt-red-2); }
 | 
			
		||||
 | 
			
		||||
/*[id^=yt_tooltip] { min-width: 650px !important; }*/
 | 
			
		||||
 | 
			
		||||
.circle-light {
 | 
			
		||||
  display: inline-block;
 | 
			
		||||
  width: 25px;
 | 
			
		||||
  height: 25px;
 | 
			
		||||
  border-radius: 50px;
 | 
			
		||||
}
 | 
			
		||||
.circle-light { display: inline-block; width: 25px; height: 25px; border-radius: 50px; }
 | 
			
		||||
 | 
			
		||||
.light-flash {
 | 
			
		||||
  --flash-color-1: #ffa100;
 | 
			
		||||
  --flash-color-2: #26272b;
 | 
			
		||||
  animation: flashing-bg 0.5s linear infinite;
 | 
			
		||||
}
 | 
			
		||||
.light-flash { --flash-color-1: #ffa100; --flash-color-2: #26272b; animation: flashing-bg 0.5s linear infinite; }
 | 
			
		||||
 | 
			
		||||
.light-flash-c {
 | 
			
		||||
  --flash-color-1: #ffa100;
 | 
			
		||||
  --flash-color-2: #26272b;
 | 
			
		||||
  animation: flashing-c 0.5s linear infinite;
 | 
			
		||||
}
 | 
			
		||||
.light-flash-c { --flash-color-1: #ffa100; --flash-color-2: #26272b; animation: flashing-c 0.5s linear infinite; }
 | 
			
		||||
 | 
			
		||||
.light-flash-c-bd {
 | 
			
		||||
  --flash-color-1: #ffa100;
 | 
			
		||||
  --flash-color-2: #26272b;
 | 
			
		||||
  animation: flashing-c-bd 0.5s linear infinite;
 | 
			
		||||
}
 | 
			
		||||
.light-flash-c-bd { --flash-color-1: #ffa100; --flash-color-2: #26272b; animation: flashing-c-bd 0.5s linear infinite; }
 | 
			
		||||
 | 
			
		||||
/* checkbox switch */
 | 
			
		||||
input.toggle:checked::before {
 | 
			
		||||
  content: '';
 | 
			
		||||
  position: absolute;
 | 
			
		||||
  top: 2px;
 | 
			
		||||
  left: 24px;
 | 
			
		||||
  display: block;
 | 
			
		||||
  border-radius: 25px;
 | 
			
		||||
  width: 20px;
 | 
			
		||||
  height: 20px;
 | 
			
		||||
  background: #3f8635;
 | 
			
		||||
}
 | 
			
		||||
input.toggle:checked::before { content: ''; position: absolute; top: 2px; left: 24px; display: block; border-radius: 25px; width: 20px; height: 20px; background: #3f8635; }
 | 
			
		||||
 | 
			
		||||
input.toggle::before {
 | 
			
		||||
  content: '';
 | 
			
		||||
  position: absolute;
 | 
			
		||||
  top: 2px;
 | 
			
		||||
  left: 3px;
 | 
			
		||||
  display: block;
 | 
			
		||||
  border-radius: 25px;
 | 
			
		||||
  width: 20px;
 | 
			
		||||
  height: 20px;
 | 
			
		||||
  background: #656565;
 | 
			
		||||
  transition: 0.2s;
 | 
			
		||||
}
 | 
			
		||||
input.toggle::before { content: ''; position: absolute; top: 2px; left: 3px; display: block; border-radius: 25px; width: 20px; height: 20px; background: #656565; transition: 0.2s; }
 | 
			
		||||
 | 
			
		||||
input.toggle {
 | 
			
		||||
  cursor: pointer;
 | 
			
		||||
  appearance: none;
 | 
			
		||||
  position: relative;
 | 
			
		||||
  width: 48px;
 | 
			
		||||
  height: 24px;
 | 
			
		||||
  background: #464646;
 | 
			
		||||
  border-radius: 50px;
 | 
			
		||||
  align-content: center;
 | 
			
		||||
}
 | 
			
		||||
input.toggle { cursor: pointer; appearance: none; position: relative; width: 48px; height: 24px; background: #464646; border-radius: 50px; align-content: center; }
 | 
			
		||||
 | 
			
		||||
  input.toggle:checked {
 | 
			
		||||
    background: #97c193;
 | 
			
		||||
  }
 | 
			
		||||
input.toggle:checked { background: #97c193; }
 | 
			
		||||
 | 
			
		||||
.loading-bg {
 | 
			
		||||
  background: #0000009c;
 | 
			
		||||
  background-repeat: no-repeat;
 | 
			
		||||
  opacity: 0;
 | 
			
		||||
  width: 100%;
 | 
			
		||||
  height: 100vh;
 | 
			
		||||
  position: fixed;
 | 
			
		||||
  z-index: 3000;
 | 
			
		||||
}
 | 
			
		||||
.loading-bg { background: #0000009c; background-repeat: no-repeat; opacity: 0; width: 100%; height: 100vh; position: fixed; z-index: 3000; }
 | 
			
		||||
 | 
			
		||||
.dropdown-menu {
 | 
			
		||||
  z-index: 3000;
 | 
			
		||||
}
 | 
			
		||||
.dropdown-menu { z-index: 3000; }
 | 
			
		||||
 | 
			
		||||
.adsk-viewing-viewer {
 | 
			
		||||
  top: 0px;
 | 
			
		||||
}
 | 
			
		||||
.adsk-viewing-viewer { top: 0px; }
 | 
			
		||||
 | 
			
		||||
.lds-ring {
 | 
			
		||||
  display: inline-block;
 | 
			
		||||
  position: relative;
 | 
			
		||||
  width: 25px;
 | 
			
		||||
  height: 25px;
 | 
			
		||||
  margin-right: 0.8rem;
 | 
			
		||||
}
 | 
			
		||||
.lds-ring { display: inline-block; position: relative; width: 25px; height: 25px; margin-right: 0.8rem; }
 | 
			
		||||
 | 
			
		||||
  .lds-ring div {
 | 
			
		||||
    top: -4px;
 | 
			
		||||
    box-sizing: border-box;
 | 
			
		||||
    display: block;
 | 
			
		||||
    position: absolute;
 | 
			
		||||
    width: 25px;
 | 
			
		||||
    height: 25px;
 | 
			
		||||
    margin: 6px;
 | 
			
		||||
    border: 6px solid #fff;
 | 
			
		||||
    border-radius: 50%;
 | 
			
		||||
    animation: lds-ring 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite;
 | 
			
		||||
    border-color: #fff transparent transparent transparent;
 | 
			
		||||
  }
 | 
			
		||||
.lds-ring div { top: -4px; box-sizing: border-box; display: block; position: absolute; width: 25px; height: 25px; margin: 6px; border: 6px solid #fff; border-radius: 50%; animation: lds-ring 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite; border-color: #fff transparent transparent transparent; }
 | 
			
		||||
 | 
			
		||||
    .lds-ring div:nth-child(1) {
 | 
			
		||||
      animation-delay: -0.45s;
 | 
			
		||||
    }
 | 
			
		||||
.lds-ring div:nth-child(1) { animation-delay: -0.45s; }
 | 
			
		||||
 | 
			
		||||
    .lds-ring div:nth-child(2) {
 | 
			
		||||
      animation-delay: -0.3s;
 | 
			
		||||
    }
 | 
			
		||||
.lds-ring div:nth-child(2) { animation-delay: -0.3s; }
 | 
			
		||||
 | 
			
		||||
    .lds-ring div:nth-child(3) {
 | 
			
		||||
      animation-delay: -0.15s;
 | 
			
		||||
    }
 | 
			
		||||
.lds-ring div:nth-child(3) { animation-delay: -0.15s; }
 | 
			
		||||
 | 
			
		||||
/* js-tree */
 | 
			
		||||
.jstree-node {
 | 
			
		||||
  padding-bottom: 3px;
 | 
			
		||||
}
 | 
			
		||||
.jstree-node { padding-bottom: 3px; }
 | 
			
		||||
.jstree-default-dark { background-color: transparent; }
 | 
			
		||||
.jstree a.jstree-anchor { color: #d6d6d6 !important; }
 | 
			
		||||
 | 
			
		||||
.jstree-default-dark {
 | 
			
		||||
  background-color: transparent;
 | 
			
		||||
}
 | 
			
		||||
.dropzone .dz-preview.dz-file-preview .dz-image { background: linear-gradient(to bottom, #675d72, #4d4a56) !important; }
 | 
			
		||||
 | 
			
		||||
.jstree a.jstree-anchor {
 | 
			
		||||
  color: #d6d6d6 !important;
 | 
			
		||||
}
 | 
			
		||||
.dz-remove { position: absolute; top: -8px; right: -8px; z-index: 100; }
 | 
			
		||||
 | 
			
		||||
.dropzone .dz-preview.dz-file-preview .dz-image {
 | 
			
		||||
  background: linear-gradient(to bottom, #675d72, #4d4a56) !important;
 | 
			
		||||
}
 | 
			
		||||
.dz-remove span { width: 30px; height: 30px; font-size: 24px; border-radius: 10px; color: white; cursor: pointer !important; padding-top: 3px; transition: 0.2s; }
 | 
			
		||||
 | 
			
		||||
.dz-remove {
 | 
			
		||||
  position: absolute;
 | 
			
		||||
  top: -8px;
 | 
			
		||||
  right: -8px;
 | 
			
		||||
  z-index: 100;
 | 
			
		||||
}
 | 
			
		||||
.dz-remove span.mi-delete { background: var(--danger); }
 | 
			
		||||
 | 
			
		||||
  .dz-remove span {
 | 
			
		||||
    width: 30px;
 | 
			
		||||
    height: 30px;
 | 
			
		||||
    font-size: 24px;
 | 
			
		||||
    border-radius: 10px;
 | 
			
		||||
    color: white;
 | 
			
		||||
    cursor: pointer !important;
 | 
			
		||||
    padding-top: 3px;
 | 
			
		||||
    transition: 0.2s;
 | 
			
		||||
  }
 | 
			
		||||
.dz-remove span.mi-cancel { font-size: 30px; color: var(--color_grey); }
 | 
			
		||||
 | 
			
		||||
    .dz-remove span.mi-delete {
 | 
			
		||||
      background: var(--danger);
 | 
			
		||||
    }
 | 
			
		||||
.dz-remove:hover span { transform: scale(1.1); transition: 0.2s; }
 | 
			
		||||
.dropzone .dz-preview.dz-image-preview { background-color: transparent !important; }
 | 
			
		||||
 | 
			
		||||
    .dz-remove span.mi-cancel {
 | 
			
		||||
      font-size: 30px;
 | 
			
		||||
      color: var(--color_grey);
 | 
			
		||||
    }
 | 
			
		||||
input:-webkit-autofill { background-color: rgba(0, 0, 0, 0.15) !important; }
 | 
			
		||||
 | 
			
		||||
  .dz-remove:hover span {
 | 
			
		||||
    transform: scale(1.1);
 | 
			
		||||
    transition: 0.2s;
 | 
			
		||||
  }
 | 
			
		||||
.d-grid { display: grid; }
 | 
			
		||||
 | 
			
		||||
.dropzone .dz-preview.dz-image-preview {
 | 
			
		||||
  background-color: transparent !important;
 | 
			
		||||
}
 | 
			
		||||
.grid-gap-1 { grid-gap: 1px; }
 | 
			
		||||
.grid-gap-2 { grid-gap: 2px; }
 | 
			
		||||
.grid-gap-3 { grid-gap: 3px; }
 | 
			
		||||
.grid-gap-4 { grid-gap: 4px; }
 | 
			
		||||
.grid-gap-5 { grid-gap: 5px; }
 | 
			
		||||
.grid-gap-c { grid-gap: var(--c-grid-gap); }
 | 
			
		||||
 | 
			
		||||
input:-webkit-autofill {
 | 
			
		||||
  background-color: rgba(0, 0, 0, 0.15) !important;
 | 
			
		||||
}
 | 
			
		||||
.grid-temp-col-c { grid-template-columns: var(--c-grid-temp-col); }
 | 
			
		||||
 | 
			
		||||
.d-grid {
 | 
			
		||||
  display: grid;
 | 
			
		||||
}
 | 
			
		||||
.vakata-context, .vakata-context ul { background-color: #3f3f3f; box-shadow: 2px 2px 2px #111111; }
 | 
			
		||||
.vakata-context li > a { color: white; text-shadow: 1px 1px 0 #4b4b4b; }
 | 
			
		||||
.vakata-context .vakata-context-hover > a { background-color: #666666; box-shadow: 0 0 2px #2f2f2f; }
 | 
			
		||||
.vakata-context li > a:hover { background-color: #636363; box-shadow: 0 0 2px #2f2f2f; }
 | 
			
		||||
 | 
			
		||||
.grid-gap-1 {
 | 
			
		||||
  grid-gap: 1px;
 | 
			
		||||
}
 | 
			
		||||
.yt-left-navbar { position: fixed; left: 0; top: 0; height: 100%; z-index: 10; background-color: rgb(25 25 25 / 95%); width: auto; max-width: 300px; margin-top: 4.125rem; }
 | 
			
		||||
.yt-navbar-content ul { padding: 1rem 0rem; list-style-type: none; }
 | 
			
		||||
.yt-navbar-content ul li { position: relative; display: flex; flex-wrap: wrap; }
 | 
			
		||||
.yt-navbar-content ul li a { font-size: 0.9rem; padding: 0.75rem 2rem; position: relative; width: 100%; }
 | 
			
		||||
.yt-navbar-content ul li a:hover { background-color: var(--theme-fusion-600); }
 | 
			
		||||
.yt-navbar-content ul li a:active, .yt-navbar-content ul li a.active { background-color: var(--theme-light); }
 | 
			
		||||
 | 
			
		||||
.grid-gap-2 {
 | 
			
		||||
  grid-gap: 2px;
 | 
			
		||||
}
 | 
			
		||||
.card-header.p-3.ui-draggable-handle:hover { cursor: move; }
 | 
			
		||||
 | 
			
		||||
.grid-gap-3 {
 | 
			
		||||
  grid-gap: 3px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.grid-gap-4 {
 | 
			
		||||
  grid-gap: 4px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.grid-gap-5 {
 | 
			
		||||
  grid-gap: 5px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.grid-gap-c {
 | 
			
		||||
  grid-gap: var(--c-grid-gap);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.grid-temp-col-c {
 | 
			
		||||
  grid-template-columns: var(--c-grid-temp-col);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.vakata-context, .vakata-context ul {
 | 
			
		||||
  background-color: #3f3f3f;
 | 
			
		||||
  box-shadow: 2px 2px 2px #111111;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
  .vakata-context li > a {
 | 
			
		||||
    color: white;
 | 
			
		||||
    text-shadow: 1px 1px 0 #4b4b4b;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .vakata-context .vakata-context-hover > a {
 | 
			
		||||
    background-color: #666666;
 | 
			
		||||
    box-shadow: 0 0 2px #2f2f2f;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .vakata-context li > a:hover {
 | 
			
		||||
    background-color: #636363;
 | 
			
		||||
    box-shadow: 0 0 2px #2f2f2f;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
.yt-left-navbar {
 | 
			
		||||
  position: fixed;
 | 
			
		||||
  left: 0;
 | 
			
		||||
  top: 0;
 | 
			
		||||
  height: 100%;
 | 
			
		||||
  z-index: 10;
 | 
			
		||||
  background-color: rgb(25 25 25 / 95%);
 | 
			
		||||
  width: auto;
 | 
			
		||||
  max-width: 300px;
 | 
			
		||||
  margin-top: 4.125rem;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.yt-navbar-content ul {
 | 
			
		||||
  padding: 1rem 0rem;
 | 
			
		||||
  list-style-type: none;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
  .yt-navbar-content ul li {
 | 
			
		||||
    position: relative;
 | 
			
		||||
    display: flex;
 | 
			
		||||
    flex-wrap: wrap;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
    .yt-navbar-content ul li a {
 | 
			
		||||
      font-size: 0.9rem;
 | 
			
		||||
      padding: 0.75rem 2rem;
 | 
			
		||||
      position: relative;
 | 
			
		||||
      width: 100%;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
      .yt-navbar-content ul li a:hover {
 | 
			
		||||
        background-color: var(--theme-fusion-600);
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .yt-navbar-content ul li a:active, .yt-navbar-content ul li a.active {
 | 
			
		||||
        background-color: var(--theme-light);
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
.card-header.p-3.ui-draggable-handle:hover {
 | 
			
		||||
  cursor: move;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.device-wrap .card-body #info, .device-wrap .card-body #errRec, .device-wrap .card-body #opeRec {
 | 
			
		||||
  min-width: 500px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.scrolledTable {
 | 
			
		||||
  overflow-y: auto;
 | 
			
		||||
  clear: both;
 | 
			
		||||
  max-height: 100%;
 | 
			
		||||
}
 | 
			
		||||
.device-wrap .card-body #info, .device-wrap .card-body #errRec, .device-wrap .card-body #opeRec { min-width: 500px; }
 | 
			
		||||
.scrolledTable { overflow-y: auto; clear: both; max-height:100%;}
 | 
			
		||||
 | 
			
		||||
#toast-container > div {
 | 
			
		||||
    width:330px !important;
 | 
			
		||||
@ -326,417 +106,246 @@ a[data-tabname="topFunBtn"]:hover { color: var(--theme-primary-50); }
 | 
			
		||||
}
 | 
			
		||||
.userblock:hover { color: var(--theme-primary-50); }
 | 
			
		||||
.dropdown.show .userblock { color: var(--theme-primary-50) !important; }*/
 | 
			
		||||
.page-header a, #sysMonBtnList a {
 | 
			
		||||
  color: #fff !important;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
  .page-header a:hover, #sysMonBtnList a:hover {
 | 
			
		||||
    color: var(--theme-primary-50) !important;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .page-header a.active, #sysMonBtnList a.active {
 | 
			
		||||
    color: var(--theme-primary-500) !important;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
.dropdown.show a {
 | 
			
		||||
  color: var(--theme-primary-50) !important;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@media screen and (max-width: 576px) {
 | 
			
		||||
  .yt-left-navbar {
 | 
			
		||||
    width: 100%;
 | 
			
		||||
    max-width: 100%;
 | 
			
		||||
    margin-top: 0;
 | 
			
		||||
  }
 | 
			
		||||
.page-header a, #sysMonBtnList a { color: #fff !important; }
 | 
			
		||||
.page-header a:hover, #sysMonBtnList a:hover { color: var(--theme-primary-50) !important; }
 | 
			
		||||
.page-header a.active, #sysMonBtnList a.active { color: var(--theme-primary-500) !important; }
 | 
			
		||||
.dropdown.show a { color: var(--theme-primary-50) !important; }
 | 
			
		||||
@media screen and (max-width: 576px) { .yt-left-navbar { width: 100%; max-width: 100%; margin-top: 0; }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@keyframes lds-ring {
 | 
			
		||||
  0% {
 | 
			
		||||
    transform: rotate(0deg);
 | 
			
		||||
  }
 | 
			
		||||
    0% { transform: rotate(0deg); }
 | 
			
		||||
 | 
			
		||||
  100% {
 | 
			
		||||
    transform: rotate(360deg);
 | 
			
		||||
  }
 | 
			
		||||
    100% { transform: rotate(360deg); }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@keyframes flashing-c {
 | 
			
		||||
  0% {
 | 
			
		||||
    color: var(--flash-color-1);
 | 
			
		||||
  }
 | 
			
		||||
    0% { color: var(--flash-color-1); }
 | 
			
		||||
 | 
			
		||||
  49% {
 | 
			
		||||
    color: var(--flash-color-1);
 | 
			
		||||
  }
 | 
			
		||||
    49% { color: var(--flash-color-1); }
 | 
			
		||||
 | 
			
		||||
  50% {
 | 
			
		||||
    color: var(--flash-color-2);
 | 
			
		||||
  }
 | 
			
		||||
    50% { color: var(--flash-color-2); }
 | 
			
		||||
 | 
			
		||||
  99% {
 | 
			
		||||
    color: var(--flash-color-2);
 | 
			
		||||
  }
 | 
			
		||||
    99% { color: var(--flash-color-2); }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@keyframes flashing-bg {
 | 
			
		||||
  0% {
 | 
			
		||||
    background: var(--flash-color-1);
 | 
			
		||||
  }
 | 
			
		||||
    0% { background: var(--flash-color-1); }
 | 
			
		||||
 | 
			
		||||
  49% {
 | 
			
		||||
    background: var(--flash-color-1);
 | 
			
		||||
  }
 | 
			
		||||
    49% { background: var(--flash-color-1); }
 | 
			
		||||
 | 
			
		||||
  50% {
 | 
			
		||||
    background: var(--flash-color-2);
 | 
			
		||||
  }
 | 
			
		||||
    50% { background: var(--flash-color-2); }
 | 
			
		||||
 | 
			
		||||
  99% {
 | 
			
		||||
    background: var(--flash-color-2);
 | 
			
		||||
  }
 | 
			
		||||
    99% { background: var(--flash-color-2); }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@keyframes flashing-c-bd {
 | 
			
		||||
  0% {
 | 
			
		||||
    border-color: var(--flash-color-1);
 | 
			
		||||
  }
 | 
			
		||||
    0% { border-color: var(--flash-color-1); }
 | 
			
		||||
 | 
			
		||||
  49% {
 | 
			
		||||
    border-color: var(--flash-color-1);
 | 
			
		||||
  }
 | 
			
		||||
    49% { border-color: var(--flash-color-1); }
 | 
			
		||||
 | 
			
		||||
  50% {
 | 
			
		||||
    border-color: var(--flash-color-2);
 | 
			
		||||
  }
 | 
			
		||||
    50% { border-color: var(--flash-color-2); }
 | 
			
		||||
 | 
			
		||||
  99% {
 | 
			
		||||
    border-color: var(--flash-color-2);
 | 
			
		||||
  }
 | 
			
		||||
    99% { border-color: var(--flash-color-2); }
 | 
			
		||||
}
 | 
			
		||||
/* ================================================================ */
 | 
			
		||||
/*                             單一方法                             */
 | 
			
		||||
/* ================================================================ */
 | 
			
		||||
/* cursor */
 | 
			
		||||
.cur-def {
 | 
			
		||||
  cursor: default !important;
 | 
			
		||||
}
 | 
			
		||||
.cur-def { cursor: default !important; }
 | 
			
		||||
 | 
			
		||||
.cur-poi {
 | 
			
		||||
  cursor: pointer !important;
 | 
			
		||||
}
 | 
			
		||||
.cur-poi { cursor: pointer !important; }
 | 
			
		||||
 | 
			
		||||
/*left 距離*/
 | 
			
		||||
.left-05 {
 | 
			
		||||
  left: 0.5rem !important;
 | 
			
		||||
}
 | 
			
		||||
.left-05 { left: 0.5rem !important; }
 | 
			
		||||
 | 
			
		||||
.left-04 {
 | 
			
		||||
  left: 0.4rem !important;
 | 
			
		||||
}
 | 
			
		||||
.left-04 { left: 0.4rem !important; }
 | 
			
		||||
 | 
			
		||||
.left-03 {
 | 
			
		||||
  left: 0.3rem !important;
 | 
			
		||||
}
 | 
			
		||||
.left-03 { left: 0.3rem !important; }
 | 
			
		||||
 | 
			
		||||
.left-02 {
 | 
			
		||||
  left: 0.2rem !important;
 | 
			
		||||
}
 | 
			
		||||
.left-02 { left: 0.2rem !important; }
 | 
			
		||||
 | 
			
		||||
.left-01 {
 | 
			
		||||
  left: 0.1rem !important;
 | 
			
		||||
}
 | 
			
		||||
.left-01 { left: 0.1rem !important; }
 | 
			
		||||
 | 
			
		||||
/*right 距離*/
 | 
			
		||||
.right-05 {
 | 
			
		||||
  right: 0.5rem !important;
 | 
			
		||||
}
 | 
			
		||||
.right-05 { right: 0.5rem !important; }
 | 
			
		||||
 | 
			
		||||
.right-04 {
 | 
			
		||||
  right: 0.4rem !important;
 | 
			
		||||
}
 | 
			
		||||
.right-04 { right: 0.4rem !important; }
 | 
			
		||||
 | 
			
		||||
.right-03 {
 | 
			
		||||
  right: 0.3rem !important;
 | 
			
		||||
}
 | 
			
		||||
.right-03 { right: 0.3rem !important; }
 | 
			
		||||
 | 
			
		||||
.right-02 {
 | 
			
		||||
  right: 0.2rem !important;
 | 
			
		||||
}
 | 
			
		||||
.right-02 { right: 0.2rem !important; }
 | 
			
		||||
 | 
			
		||||
.right-01 {
 | 
			
		||||
  right: 0.1rem !important;
 | 
			
		||||
}
 | 
			
		||||
.right-01 { right: 0.1rem !important; }
 | 
			
		||||
 | 
			
		||||
/*bottom 0.5rem*/
 | 
			
		||||
.bm-05 {
 | 
			
		||||
  bottom: 0.5rem !important;
 | 
			
		||||
}
 | 
			
		||||
.bm-05 { bottom: 0.5rem !important; }
 | 
			
		||||
 | 
			
		||||
.bm-04 {
 | 
			
		||||
  bottom: 0.4rem !important;
 | 
			
		||||
}
 | 
			
		||||
.bm-04 { bottom: 0.4rem !important; }
 | 
			
		||||
 | 
			
		||||
.bm-03 {
 | 
			
		||||
  bottom: 0.3rem !important;
 | 
			
		||||
}
 | 
			
		||||
.bm-03 { bottom: 0.3rem !important; }
 | 
			
		||||
 | 
			
		||||
.bm-02 {
 | 
			
		||||
  bottom: 0.2rem !important;
 | 
			
		||||
}
 | 
			
		||||
.bm-02 { bottom: 0.2rem !important; }
 | 
			
		||||
 | 
			
		||||
.bm-01 {
 | 
			
		||||
  bottom: 0.1rem !important;
 | 
			
		||||
}
 | 
			
		||||
.bm-01 { bottom: 0.1rem !important; }
 | 
			
		||||
 | 
			
		||||
/*top 0.5rem*/
 | 
			
		||||
.tp-05 {
 | 
			
		||||
  top: 0.5rem !important;
 | 
			
		||||
}
 | 
			
		||||
.tp-05 { top: 0.5rem !important; }
 | 
			
		||||
 | 
			
		||||
.tp-04 {
 | 
			
		||||
  top: 0.4rem !important;
 | 
			
		||||
}
 | 
			
		||||
.tp-04 { top: 0.4rem !important; }
 | 
			
		||||
 | 
			
		||||
.tp-03 {
 | 
			
		||||
  top: 0.3rem !important;
 | 
			
		||||
}
 | 
			
		||||
.tp-03 { top: 0.3rem !important; }
 | 
			
		||||
 | 
			
		||||
.tp-02 {
 | 
			
		||||
  top: 0.2rem !important;
 | 
			
		||||
}
 | 
			
		||||
.tp-02 { top: 0.2rem !important; }
 | 
			
		||||
 | 
			
		||||
.tp-01 {
 | 
			
		||||
  top: 0.1rem !important;
 | 
			
		||||
}
 | 
			
		||||
.tp-01 { top: 0.1rem !important; }
 | 
			
		||||
 | 
			
		||||
/* font-weight */
 | 
			
		||||
.fw-1 {
 | 
			
		||||
  font-weight: 100;
 | 
			
		||||
}
 | 
			
		||||
.fw-1 { font-weight: 100; }
 | 
			
		||||
 | 
			
		||||
.fw-2 {
 | 
			
		||||
  font-weight: 200;
 | 
			
		||||
}
 | 
			
		||||
.fw-2 { font-weight: 200; }
 | 
			
		||||
 | 
			
		||||
.fw-3 {
 | 
			
		||||
  font-weight: 300;
 | 
			
		||||
}
 | 
			
		||||
.fw-3 { font-weight: 300; }
 | 
			
		||||
 | 
			
		||||
.fw-4 {
 | 
			
		||||
  font-weight: 400;
 | 
			
		||||
}
 | 
			
		||||
.fw-4 { font-weight: 400; }
 | 
			
		||||
 | 
			
		||||
.fw-5 {
 | 
			
		||||
  font-weight: 500;
 | 
			
		||||
}
 | 
			
		||||
.fw-5 { font-weight: 500; }
 | 
			
		||||
 | 
			
		||||
.fw-6 {
 | 
			
		||||
  font-weight: 600;
 | 
			
		||||
}
 | 
			
		||||
.fw-6 { font-weight: 600; }
 | 
			
		||||
 | 
			
		||||
.fw-7 {
 | 
			
		||||
  font-weight: 700;
 | 
			
		||||
}
 | 
			
		||||
.fw-7 { font-weight: 700; }
 | 
			
		||||
 | 
			
		||||
.fw-8 {
 | 
			
		||||
  font-weight: 800;
 | 
			
		||||
}
 | 
			
		||||
.fw-8 { font-weight: 800; }
 | 
			
		||||
 | 
			
		||||
.fw-9 {
 | 
			
		||||
  font-weight: 900;
 | 
			
		||||
}
 | 
			
		||||
.fw-9 { font-weight: 900; }
 | 
			
		||||
 | 
			
		||||
/* font-size */
 | 
			
		||||
.fs-05 {
 | 
			
		||||
  font-size: 0.5rem;
 | 
			
		||||
}
 | 
			
		||||
.fs-05 { font-size: 0.5rem; }
 | 
			
		||||
 | 
			
		||||
.fs-075 {
 | 
			
		||||
  font-size: 0.75rem;
 | 
			
		||||
}
 | 
			
		||||
.fs-075 { font-size: 0.75rem; }
 | 
			
		||||
 | 
			
		||||
.fs-09 {
 | 
			
		||||
  font-size: 0.9rem;
 | 
			
		||||
}
 | 
			
		||||
.fs-09 { font-size: 0.9rem; }
 | 
			
		||||
 | 
			
		||||
.fs-1 {
 | 
			
		||||
  font-size: 1rem;
 | 
			
		||||
}
 | 
			
		||||
.fs-1 { font-size: 1rem; }
 | 
			
		||||
 | 
			
		||||
.fs-1-05 {
 | 
			
		||||
  font-size: 1.05rem;
 | 
			
		||||
}
 | 
			
		||||
.fs-1-05 { font-size: 1.05rem; }
 | 
			
		||||
 | 
			
		||||
.fs-1-1 {
 | 
			
		||||
  font-size: 1.1rem;
 | 
			
		||||
}
 | 
			
		||||
.fs-1-1 { font-size: 1.1rem; }
 | 
			
		||||
 | 
			
		||||
.fs-1-2 {
 | 
			
		||||
  font-size: 1.2rem;
 | 
			
		||||
}
 | 
			
		||||
.fs-1-2 { font-size: 1.2rem; }
 | 
			
		||||
 | 
			
		||||
.fs-1-3 {
 | 
			
		||||
  font-size: 1.3rem;
 | 
			
		||||
}
 | 
			
		||||
.fs-1-3 { font-size: 1.3rem; }
 | 
			
		||||
 | 
			
		||||
.fs-1-5 {
 | 
			
		||||
  font-size: 1.5rem;
 | 
			
		||||
}
 | 
			
		||||
.fs-1-5 { font-size: 1.5rem; }
 | 
			
		||||
 | 
			
		||||
.fs-2 {
 | 
			
		||||
  font-size: 2rem;
 | 
			
		||||
}
 | 
			
		||||
.fs-2 { font-size: 2rem; }
 | 
			
		||||
 | 
			
		||||
.fs-2-5 {
 | 
			
		||||
  font-size: 2.5rem;
 | 
			
		||||
}
 | 
			
		||||
.fs-2-5 { font-size: 2.5rem; }
 | 
			
		||||
 | 
			
		||||
/* border width */
 | 
			
		||||
.bd-0 {
 | 
			
		||||
  border-width: 0px;
 | 
			
		||||
}
 | 
			
		||||
.bd-0 { border-width: 0px; }
 | 
			
		||||
 | 
			
		||||
.bd-1 {
 | 
			
		||||
  border-width: 1px;
 | 
			
		||||
}
 | 
			
		||||
.bd-1 { border-width: 1px; }
 | 
			
		||||
 | 
			
		||||
.bd-2 {
 | 
			
		||||
  border-width: 2px;
 | 
			
		||||
}
 | 
			
		||||
.bd-2 { border-width: 2px; }
 | 
			
		||||
 | 
			
		||||
/* border direction */
 | 
			
		||||
.bd-l {
 | 
			
		||||
  border-left-style: solid;
 | 
			
		||||
}
 | 
			
		||||
.bd-l { border-left-style: solid; }
 | 
			
		||||
 | 
			
		||||
.bd-r {
 | 
			
		||||
  border-right-style: solid;
 | 
			
		||||
}
 | 
			
		||||
.bd-r { border-right-style: solid; }
 | 
			
		||||
 | 
			
		||||
.bd-t {
 | 
			
		||||
  border-top-style: solid;
 | 
			
		||||
}
 | 
			
		||||
.bd-t { border-top-style: solid; }
 | 
			
		||||
 | 
			
		||||
.bd-b {
 | 
			
		||||
  border-bottom-style: solid;
 | 
			
		||||
}
 | 
			
		||||
.bd-b { border-bottom-style: solid; }
 | 
			
		||||
 | 
			
		||||
/* border radius */
 | 
			
		||||
.br-1 {
 | 
			
		||||
  border-radius: 1px;
 | 
			
		||||
}
 | 
			
		||||
.br-1 { border-radius: 1px; }
 | 
			
		||||
 | 
			
		||||
.br-2 {
 | 
			
		||||
  border-radius: 2px;
 | 
			
		||||
}
 | 
			
		||||
.br-2 { border-radius: 2px; }
 | 
			
		||||
 | 
			
		||||
.br-3 {
 | 
			
		||||
  border-radius: 3px;
 | 
			
		||||
}
 | 
			
		||||
.br-3 { border-radius: 3px; }
 | 
			
		||||
 | 
			
		||||
.br-4 {
 | 
			
		||||
  border-radius: 4px;
 | 
			
		||||
}
 | 
			
		||||
.br-4 { border-radius: 4px; }
 | 
			
		||||
 | 
			
		||||
.br-5 {
 | 
			
		||||
  border-radius: 5px;
 | 
			
		||||
}
 | 
			
		||||
.br-5 { border-radius: 5px; }
 | 
			
		||||
 | 
			
		||||
/* flex-gap */
 | 
			
		||||
.gap-1 {
 | 
			
		||||
  gap: 1px;
 | 
			
		||||
}
 | 
			
		||||
.gap-1 { gap: 1px; }
 | 
			
		||||
 | 
			
		||||
.gap-2 {
 | 
			
		||||
  gap: 2px;
 | 
			
		||||
}
 | 
			
		||||
.gap-2 { gap: 2px; }
 | 
			
		||||
 | 
			
		||||
.gap-3 {
 | 
			
		||||
  gap: 3px;
 | 
			
		||||
}
 | 
			
		||||
.gap-3 { gap: 3px; }
 | 
			
		||||
 | 
			
		||||
.gap-4 {
 | 
			
		||||
  gap: 4px;
 | 
			
		||||
}
 | 
			
		||||
.gap-4 { gap: 4px; }
 | 
			
		||||
 | 
			
		||||
.gap-5 {
 | 
			
		||||
  gap: 5px;
 | 
			
		||||
}
 | 
			
		||||
.gap-5 { gap: 5px; }
 | 
			
		||||
 | 
			
		||||
.gap-6 {
 | 
			
		||||
  gap: 6px;
 | 
			
		||||
}
 | 
			
		||||
.gap-6 { gap: 6px; }
 | 
			
		||||
 | 
			
		||||
.gap-7 {
 | 
			
		||||
  gap: 7px;
 | 
			
		||||
}
 | 
			
		||||
.gap-7 { gap: 7px; }
 | 
			
		||||
 | 
			
		||||
.gap-8 {
 | 
			
		||||
  gap: 8px;
 | 
			
		||||
}
 | 
			
		||||
.gap-8 { gap: 8px; }
 | 
			
		||||
 | 
			
		||||
/* vertical-align */
 | 
			
		||||
.va-t {
 | 
			
		||||
  vertical-align: top;
 | 
			
		||||
}
 | 
			
		||||
.va-t { vertical-align: top; }
 | 
			
		||||
 | 
			
		||||
.va-m {
 | 
			
		||||
  vertical-align: middle;
 | 
			
		||||
}
 | 
			
		||||
.va-m { vertical-align: middle; }
 | 
			
		||||
 | 
			
		||||
.va-b {
 | 
			
		||||
  vertical-align: bottom;
 | 
			
		||||
}
 | 
			
		||||
.va-b { vertical-align: bottom; }
 | 
			
		||||
 | 
			
		||||
.bg-orange {
 | 
			
		||||
  background-color: #ffa100;
 | 
			
		||||
}
 | 
			
		||||
.bg-orange { background-color: #ffa100; }
 | 
			
		||||
 | 
			
		||||
/* text color */
 | 
			
		||||
.t-main-purple {
 | 
			
		||||
  color: #623c80 !important;
 | 
			
		||||
.t-main-purple { color: #623c80 !important; }
 | 
			
		||||
 | 
			
		||||
.t-black { color: #000 !important; }
 | 
			
		||||
 | 
			
		||||
.t-white { color: #fff !important; }
 | 
			
		||||
 | 
			
		||||
.t-fb-blue { color: #466ac2 !important; }
 | 
			
		||||
 | 
			
		||||
.t-line-green { color: #54C814 !important; }
 | 
			
		||||
 | 
			
		||||
.t-red { color: #db0000 !important; }
 | 
			
		||||
 | 
			
		||||
.t-red-2 { color: var(--yt-red-2) !important; }
 | 
			
		||||
 | 
			
		||||
.t-gray { color: var(--yt-gray); }
 | 
			
		||||
 | 
			
		||||
.t-main-gray { color: var(--yt-main-gray); }
 | 
			
		||||
 | 
			
		||||
.t-gray-2 { color: var(--yt-gray-2) !important; }
 | 
			
		||||
 | 
			
		||||
.t-gray-3 { color: var(--yt-gray-3); }
 | 
			
		||||
 | 
			
		||||
.t-yellow { color: var(--yt-yellow-1); }
 | 
			
		||||
 | 
			
		||||
.index-img {
 | 
			
		||||
    overflow: hidden;
 | 
			
		||||
    display: flex;
 | 
			
		||||
    align-items: center;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.t-black {
 | 
			
		||||
  color: #000 !important;
 | 
			
		||||
td.compare,th.compare {
 | 
			
		||||
    background-color:#46474b !important;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.t-white {
 | 
			
		||||
  color: #fff !important;
 | 
			
		||||
table.dataTable.table-striped[class*=dtfc] tbody tr:nth-of-type(odd) td:not([class*=sorting_]) {
 | 
			
		||||
    background-color: #37393e;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable.table-striped[class*=dtfc] tbody tr:nth-of-type(even) td:not([class*=sorting_]) {
 | 
			
		||||
    background-color: #37393e;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable.table-striped thead th[class*=dtfc]:not([class*=sorting_]) {
 | 
			
		||||
    background-color: #37393e;
 | 
			
		||||
}
 | 
			
		||||
.mod-skin-dark:not(.mod-skin-light) .odd .sorting_1{
 | 
			
		||||
    background-color: #403c4e !important
 | 
			
		||||
}
 | 
			
		||||
.mod-skin-dark:not(.mod-skin-light) .sorting_asc, .mod-skin-dark:not(.mod-skin-light) .sorting_desc, .mod-skin-dark:not(.mod-skin-light) .even .sorting_1{
 | 
			
		||||
    background-color: #3f3e4a !important;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.t-fb-blue {
 | 
			
		||||
  color: #466ac2 !important;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.t-line-green {
 | 
			
		||||
  color: #54C814 !important;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.t-red {
 | 
			
		||||
  color: #db0000 !important;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.t-red-2 {
 | 
			
		||||
  color: var(--yt-red-2) !important;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.t-gray {
 | 
			
		||||
  color: var(--yt-gray);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.t-main-gray {
 | 
			
		||||
  color: var(--yt-main-gray);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.t-gray-2 {
 | 
			
		||||
  color: var(--yt-gray-2) !important;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.t-gray-3 {
 | 
			
		||||
  color: var(--yt-gray-3);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.t-yellow {
 | 
			
		||||
  color: var(--yt-yellow-1);
 | 
			
		||||
table.dataTable.table-striped thead th[class*=dtfc],table.dataTable.table-striped tbody td[class*=dtfc]{
 | 
			
		||||
    z-index: 10;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								Frontend/img/Thumbs.db
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								Frontend/img/backgrounds/bg_w.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 926 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								Frontend/img/favicon/Thumbs.db
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 12 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								Frontend/img/logo3.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 2.8 KiB  | 
@ -71,6 +71,11 @@ License: You must have a valid license purchased only from wrapbootstrap.com (li
 | 
			
		||||
  <link rel="stylesheet"
 | 
			
		||||
        href="https://developer.api.autodesk.com/modelderivative/v2/viewers/7.*/style.min.css"
 | 
			
		||||
        type="text/css" />
 | 
			
		||||
        
 | 
			
		||||
  <link rel="stylesheet"
 | 
			
		||||
        href="lib\bootstrap-datepicker\bootstrap-datepicker.min.css"
 | 
			
		||||
        type="text/css" />
 | 
			
		||||
 | 
			
		||||
</head>
 | 
			
		||||
<!-- BEGIN Body -->
 | 
			
		||||
<!-- Possible Classes
 | 
			
		||||
@ -177,7 +182,7 @@ License: You must have a valid license purchased only from wrapbootstrap.com (li
 | 
			
		||||
               class="page-logo-link press-scale-down d-flex align-items-center position-relative">
 | 
			
		||||
              <img src="img/logo.png"
 | 
			
		||||
                   alt="SmartAdmin WebApp"
 | 
			
		||||
                                 aria-roledescription="logo" />
 | 
			
		||||
                   aria-roledescription="logo" style="height:36px;"/>
 | 
			
		||||
 | 
			
		||||
              <!--<span class="page-logo-text mr-1">SmartAdmin WebApp</span>-->
 | 
			
		||||
              <!--<span class="position-absolute text-white opacity-50 small pos-top pos-right mr-2 mt-n2"></span>
 | 
			
		||||
@ -810,6 +815,13 @@ License: You must have a valid license purchased only from wrapbootstrap.com (li
 | 
			
		||||
  <script src="lib/vendors.bundle.js"></script>
 | 
			
		||||
  <!-- toast 第三方套件 若 require 此套件只能用 define 使用,先暫時 html 引用-->
 | 
			
		||||
  <script src="lib/notifications/toastr/toastr.min.js"></script>
 | 
			
		||||
  <script src="lib/momentjs/moment.min.js"></script>
 | 
			
		||||
  <script src="lib/momentjs/moment-with-locales.min.js"></script>
 | 
			
		||||
  <script src="lib/bootstrap-datepicker/bootstrap-datepicker.min.js"></script>
 | 
			
		||||
  <script src="lib/bootstrap-datepicker/bootstrap-datepicker.zh-TW.min.js"></script>
 | 
			
		||||
  <script type="text/javascript"> 
 | 
			
		||||
    window._datepickerDP = $.fn.datepicker; 
 | 
			
		||||
  </script>
 | 
			
		||||
  <script src="js/toast.js"></script>
 | 
			
		||||
  <script src="lib/echarts.min.js"></script>
 | 
			
		||||
  <!--The order of scripts is irrelevant. Please check out the plugin pages for more details about these plugins below:-->
 | 
			
		||||
@ -870,7 +882,7 @@ License: You must have a valid license purchased only from wrapbootstrap.com (li
 | 
			
		||||
 | 
			
		||||
    try {
 | 
			
		||||
      $(function () {
 | 
			
		||||
                // 二次引用 jquery.js
 | 
			
		||||
        // 二次引用 jquery.jsf
 | 
			
		||||
        // - 在 require 內部程序需要引用 jquery,由於 require 的套件需要依賴 jquery ,就算 HTML 已經引用 jquery, require 也無法參考
 | 
			
		||||
        // - 上方 HTML 引用套件若有使用 jquery 內存數據程序 (ex: $(x).data() , $(x).trigger("custom event") , $.fn.custom ...)
 | 
			
		||||
        // - 會被清洗,有類似程序需放入 loadPack1 Function rquired 引用
 | 
			
		||||
@ -887,6 +899,7 @@ License: You must have a valid license purchased only from wrapbootstrap.com (li
 | 
			
		||||
          "lib/app.bundle",
 | 
			
		||||
          "lib/app.menu",
 | 
			
		||||
          "datatables.net.b4",
 | 
			
		||||
          "lib/FixedColumns-4.2.2/js/dataTables.fixedColumns.min",
 | 
			
		||||
          "n4js/alarmbaja",
 | 
			
		||||
          "n4js/historybaja",
 | 
			
		||||
          "n4js/accmanbaja",
 | 
			
		||||
@ -924,6 +937,8 @@ License: You must have a valid license purchased only from wrapbootstrap.com (li
 | 
			
		||||
       * 全數套件讀取完成 Callback
 | 
			
		||||
       * */
 | 
			
		||||
      function loadedJsPack() {
 | 
			
		||||
        $.fn.datepicker = window._datepickerDP;
 | 
			
		||||
 | 
			
		||||
        cookies = new YourTeam.Utility.Cookie();
 | 
			
		||||
        jwt = cookies.get("JWT-Authorization");
 | 
			
		||||
        pageAct.AreaTag = initAreaTag;
 | 
			
		||||
@ -955,28 +970,28 @@ License: You must have a valid license purchased only from wrapbootstrap.com (li
 | 
			
		||||
        loadNoticeConSta();
 | 
			
		||||
 | 
			
		||||
        allDevices = getAllDevice();
 | 
			
		||||
                if (lastPage) {
 | 
			
		||||
                    let lastPageAct = {};
 | 
			
		||||
                    if (isJSON(sessionStorage.getItem("pageAct"))) {
 | 
			
		||||
                        lastPageAct = JSON.parse(sessionStorage.getItem("pageAct"));
 | 
			
		||||
                    }
 | 
			
		||||
                    if (
 | 
			
		||||
                        (lastPageAct.sysSubTag && lastPage == "systemMonitor") ||
 | 
			
		||||
                        lastPage == "sysElevator"
 | 
			
		||||
                        //  || lastPage == "sysSensor"
 | 
			
		||||
                    ) {
 | 
			
		||||
                        $(`#subSysBtn${lastPageAct.sysSubTag}`).click();
 | 
			
		||||
                        $("#sysMonTopBtn").YTTab("set");
 | 
			
		||||
                    } else {
 | 
			
		||||
                        $(`[data-tabname=topFunBtn][data-page=${lastPage}]`).YTTab(
 | 
			
		||||
                            "setAndClick"
 | 
			
		||||
                        );
 | 
			
		||||
                    }
 | 
			
		||||
        // if (lastPage) {
 | 
			
		||||
        //   let lastPageAct = {};
 | 
			
		||||
        //   if (isJSON(sessionStorage.getItem("pageAct"))) {
 | 
			
		||||
        //     lastPageAct = JSON.parse(sessionStorage.getItem("pageAct"));
 | 
			
		||||
        //   }
 | 
			
		||||
        //   if (
 | 
			
		||||
        //     (lastPageAct.sysSubTag && lastPage == "systemMonitor") ||
 | 
			
		||||
        //     lastPage == "sysElevator"
 | 
			
		||||
        //     //  || lastPage == "sysSensor"
 | 
			
		||||
        //   ) {
 | 
			
		||||
        //     $(`#subSysBtn${lastPageAct.sysSubTag}`).click();
 | 
			
		||||
        //     $("#sysMonTopBtn").YTTab("set");
 | 
			
		||||
        //   } else {
 | 
			
		||||
        //     $(`[data-tabname=topFunBtn][data-page=${lastPage}]`).YTTab(
 | 
			
		||||
        //       "setAndClick"
 | 
			
		||||
        //     );
 | 
			
		||||
        //   }
 | 
			
		||||
 | 
			
		||||
                    /*$(`[name=topFunBtn][data-page=${lastPage}]`).click();*/
 | 
			
		||||
                } else {
 | 
			
		||||
                    $("#app").load("_dashboard.html", loadCallback);
 | 
			
		||||
                }
 | 
			
		||||
        //   /*$(`[name=topFunBtn][data-page=${lastPage}]`).click();*/
 | 
			
		||||
        // } else {
 | 
			
		||||
        //   $("#app").load("_schoolView.html", loadCallback);
 | 
			
		||||
        // }
 | 
			
		||||
          
 | 
			
		||||
        timeOutGetData();
 | 
			
		||||
 | 
			
		||||
@ -992,6 +1007,8 @@ License: You must have a valid license purchased only from wrapbootstrap.com (li
 | 
			
		||||
                $.each(res.data, (index, buiObj) => {
 | 
			
		||||
                  strHtml += `<a id="buiBtn${buiObj.building_tag}" data-urn="${buiObj.urn_3D}" class="dropdown-item" href="javascript:;">${buiObj.full_name}</a>`;
 | 
			
		||||
                });
 | 
			
		||||
                pageAct.buildList = res.data;
 | 
			
		||||
 | 
			
		||||
                $("#buiList").append(strHtml).droSetItem(); //droSetItem 預設第一筆 active
 | 
			
		||||
              }
 | 
			
		||||
            },
 | 
			
		||||
@ -1006,11 +1023,11 @@ License: You must have a valid license purchased only from wrapbootstrap.com (li
 | 
			
		||||
          //main_system_tag: pageAct.sysMainTag,
 | 
			
		||||
          //building_tag: pageAct.buiTag,
 | 
			
		||||
          //floor_tag: pageAct.floTag,
 | 
			
		||||
                    let systemPath = "TPE_B1";
 | 
			
		||||
          // let systemPath = "TPE_B1";
 | 
			
		||||
          // if (pageAct != undefined && pageAct != null && pageAct.sysMainTag != null && pageAct.buiTag != null) {
 | 
			
		||||
          //     systemPath = "TPE_" + pageAct.buiTag + "_" + pageAct.sysMainTag + "_" + "EL";
 | 
			
		||||
          // }
 | 
			
		||||
                    getOneSystemAlarmStateByBaja(systemPath, callbackForCheckDevState);
 | 
			
		||||
          //getOneSystemAlarmStateByBaja(systemPath, callbackForCheckDevState);
 | 
			
		||||
          // console.log("systemP: " + systemPath);
 | 
			
		||||
          // console.log("devList: " + deviceList[0].device_guid + ", " + deviceList[3].device_guid + ", " + deviceList[8].device_guid);
 | 
			
		||||
          //callbackForCheckDevState("test");
 | 
			
		||||
@ -1040,10 +1057,14 @@ License: You must have a valid license purchased only from wrapbootstrap.com (li
 | 
			
		||||
 | 
			
		||||
      // 事件先行讀取
 | 
			
		||||
      function loadEvent() {
 | 
			
		||||
                onEvent("click", "[name=topFunBtn]", function () {
 | 
			
		||||
        // 刷新頁面計時器
 | 
			
		||||
        let refreshPageTimer = null;
 | 
			
		||||
        onEvent("click", "[name=topFunBtn]", function (e) {
 | 
			
		||||
          _ytTabInited = [];
 | 
			
		||||
          let page = $(this).data("page");
 | 
			
		||||
          console.log("page",page)
 | 
			
		||||
          if (!page) {
 | 
			
		||||
            e.stopPropagation();
 | 
			
		||||
            return;
 | 
			
		||||
          }
 | 
			
		||||
          if (
 | 
			
		||||
@ -1089,6 +1110,14 @@ License: You must have a valid license purchased only from wrapbootstrap.com (li
 | 
			
		||||
          if (actEle) {
 | 
			
		||||
            pageAct.buiTag = $(actEle).prop("id").split("buiBtn")[1];
 | 
			
		||||
            pageAct.urn = $(actEle).data("urn");
 | 
			
		||||
            console.log("building")
 | 
			
		||||
            
 | 
			
		||||
            clearTimeout(refreshPageTimer);
 | 
			
		||||
            refreshPageTimer = setTimeout(() => {
 | 
			
		||||
              
 | 
			
		||||
              refreshSubPage();
 | 
			
		||||
            },0)
 | 
			
		||||
            
 | 
			
		||||
          }
 | 
			
		||||
        });
 | 
			
		||||
 | 
			
		||||
@ -1198,6 +1227,35 @@ License: You must have a valid license purchased only from wrapbootstrap.com (li
 | 
			
		||||
        });
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      function refreshSubPage (){
 | 
			
		||||
        lastPage = sessionStorage.getItem("lastPage");
 | 
			
		||||
        console.log("lastPage",lastPage)
 | 
			
		||||
        if (lastPage) {
 | 
			
		||||
          let lastPageAct = {};
 | 
			
		||||
          
 | 
			
		||||
          if (isJSON(sessionStorage.getItem("pageAct"))) {
 | 
			
		||||
            lastPageAct = JSON.parse(sessionStorage.getItem("pageAct"));
 | 
			
		||||
          }
 | 
			
		||||
          
 | 
			
		||||
          if (
 | 
			
		||||
            (lastPageAct.sysSubTag && lastPage == "systemMonitor") ||
 | 
			
		||||
            lastPage == "sysElevator"
 | 
			
		||||
            //  || lastPage == "sysSensor"
 | 
			
		||||
          ) {
 | 
			
		||||
            $("#sysMonTopBtn").YTTab("set");
 | 
			
		||||
            $(`#subSysBtn${lastPageAct.sysSubTag}`).click();
 | 
			
		||||
          } else {
 | 
			
		||||
            $(`[data-tabname=topFunBtn][data-page=${lastPage}]`).YTTab(
 | 
			
		||||
              "setAndClick"
 | 
			
		||||
            );
 | 
			
		||||
          }
 | 
			
		||||
 | 
			
		||||
          /*$(`[name=topFunBtn][data-page=${lastPage}]`).click();*/
 | 
			
		||||
        } else {
 | 
			
		||||
          $("#app").load("_schoolView.html", loadCallback);
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      //==============================================================================
 | 
			
		||||
      //                       ↓  系統監控 - 共用 Function ↓
 | 
			
		||||
      //==============================================================================
 | 
			
		||||
@ -1559,6 +1617,12 @@ License: You must have a valid license purchased only from wrapbootstrap.com (li
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      function controlFocusHotspot(dbId, open = true) {
 | 
			
		||||
        pageAct.sysSubTag !== "L1" &&
 | 
			
		||||
          pageAct.sysSubTag !== "M12" &&
 | 
			
		||||
          console.log("dbId", dbId);
 | 
			
		||||
        pageAct.sysSubTag !== "L1" &&
 | 
			
		||||
          pageAct.sysSubTag !== "M12" &&
 | 
			
		||||
          changeColorForHotspot(dbId, open ? "focus" : null);
 | 
			
		||||
        changeScaleForHotspot(dbId, open);
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
@ -1624,11 +1688,11 @@ License: You must have a valid license purchased only from wrapbootstrap.com (li
 | 
			
		||||
          "<'scrolledTable'tpi>"
 | 
			
		||||
        );
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      //根據 data-type 設置顏色 (判斷後台是否有設定,若無則帶預設)
 | 
			
		||||
      function setLightColor() {
 | 
			
		||||
        $("[data-light-type]").each((index, ele) => {
 | 
			
		||||
          let type = $(ele).data("light-type");
 | 
			
		||||
                    let errType = $(ele).data("light-error-type");
 | 
			
		||||
          let isFlashing = false;
 | 
			
		||||
          let color = "#000";
 | 
			
		||||
          switch (type) {
 | 
			
		||||
@ -1645,19 +1709,11 @@ License: You must have a valid license purchased only from wrapbootstrap.com (li
 | 
			
		||||
              isFlashing = pageAct.sysSubObj.device_close_flashing == "1";
 | 
			
		||||
              break;
 | 
			
		||||
            case "error":
 | 
			
		||||
 | 
			
		||||
                            color =
 | 
			
		||||
                                pageAct.sysSubObj.device_error_color ?? "var(--theme-danger)";
 | 
			
		||||
                            // isFlashing = pageAct.sysSubObj.device_error_flashing == "1";
 | 
			
		||||
                            break;
 | 
			
		||||
                    }
 | 
			
		||||
 | 
			
		||||
                    if (errType === "error") {
 | 
			
		||||
              color =
 | 
			
		||||
                pageAct.sysSubObj.device_error_color ?? "var(--theme-danger)";
 | 
			
		||||
              isFlashing = pageAct.sysSubObj.device_error_flashing == "1";
 | 
			
		||||
              break;
 | 
			
		||||
          }
 | 
			
		||||
 | 
			
		||||
          $(ele).css("background-color", color);
 | 
			
		||||
          //是否閃爍
 | 
			
		||||
          if (isFlashing) {
 | 
			
		||||
@ -1740,7 +1796,6 @@ License: You must have a valid license purchased only from wrapbootstrap.com (li
 | 
			
		||||
      pageAct.sysSubTag = $(obj).data("subSysObj").sub_system_tag;
 | 
			
		||||
      pageAct.sysSubName = $(obj).data("subSysObj").full_name;
 | 
			
		||||
      pageAct.sysSubObj = $(obj).data("subSysObj");
 | 
			
		||||
            console.log(" pageAct.sysSubObj", pageAct.sysSubObj)
 | 
			
		||||
      getDevItem();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@ -1838,14 +1893,14 @@ License: You must have a valid license purchased only from wrapbootstrap.com (li
 | 
			
		||||
          if (!res || res.code != "0000" || !res.data) {
 | 
			
		||||
          } else {
 | 
			
		||||
            let strHtml = `<div class="btn-group mx-4">
 | 
			
		||||
                                                                              <a href="javascript:;" name="topFunBtn" data-page="dashboard" data-tabname="topFunBtn" class="text-center">
 | 
			
		||||
                                                                          <a href="javascript:;" id="homeBtn" data-toggle="dropdown" data-page="dashboard" data-tabname="topFunBtn" class="text-center">
 | 
			
		||||
                                                                              <i class="fal fa-home fa-2x"></i><br>首頁
 | 
			
		||||
                                                                          </a>
 | 
			
		||||
                                                                              <!--<div class="dropdown-menu">
 | 
			
		||||
                                                                                  <button class="dropdown-item" type="button">Action</button>
 | 
			
		||||
                                                                                  <button class="dropdown-item" type="button">Another action</button>
 | 
			
		||||
                                                                                  <button class="dropdown-item" type="button">Something else here</button>
 | 
			
		||||
                                                                              </div>-->
 | 
			
		||||
                                                                          <div class="dropdown-menu">
 | 
			
		||||
                                                                              <button class="dropdown-item" name="topFunBtn" data-tabname="topFunBtn" data-page="dashboard" type="button">儀錶板</button>
 | 
			
		||||
                                                                              <button class="dropdown-item" name="topFunBtn" data-tabname="topFunBtn" data-page="schoolView" type="button">校園總覽</button>
 | 
			
		||||
                                                                              <button class="dropdown-item" name="topFunBtn" data-tabname="topFunBtn" data-page="elecSingleLine" type="button">電表單線圖</button>
 | 
			
		||||
                                                                          </div>
 | 
			
		||||
                                                                      </div>`;
 | 
			
		||||
 | 
			
		||||
            $.each(res.data, function (i, v) {
 | 
			
		||||
@ -1886,6 +1941,7 @@ License: You must have a valid license purchased only from wrapbootstrap.com (li
 | 
			
		||||
 | 
			
		||||
            $("#froLisPage").html(strHtml);
 | 
			
		||||
            $("#sysMonTopBtn").YTNavbar("init");
 | 
			
		||||
            // $("#homeBtn").YTNavbar("init");
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        null,
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										129
									
								
								Frontend/js/domReady.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,129 @@
 | 
			
		||||
/**
 | 
			
		||||
 * @license RequireJS domReady 2.0.1 Copyright (c) 2010-2012, The Dojo Foundation All Rights Reserved.
 | 
			
		||||
 * Available via the MIT or new BSD license.
 | 
			
		||||
 * see: http://github.com/requirejs/domReady for details
 | 
			
		||||
 */
 | 
			
		||||
/*jslint */
 | 
			
		||||
/*global require: false, define: false, requirejs: false,
 | 
			
		||||
  window: false, clearInterval: false, document: false,
 | 
			
		||||
  self: false, setInterval: false */
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
define(function () {
 | 
			
		||||
    'use strict';
 | 
			
		||||
 | 
			
		||||
    var isTop, testDiv, scrollIntervalId,
 | 
			
		||||
        isBrowser = typeof window !== "undefined" && window.document,
 | 
			
		||||
        isPageLoaded = !isBrowser,
 | 
			
		||||
        doc = isBrowser ? document : null,
 | 
			
		||||
        readyCalls = [];
 | 
			
		||||
 | 
			
		||||
    function runCallbacks(callbacks) {
 | 
			
		||||
        var i;
 | 
			
		||||
        for (i = 0; i < callbacks.length; i += 1) {
 | 
			
		||||
            callbacks[i](doc);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    function callReady() {
 | 
			
		||||
        var callbacks = readyCalls;
 | 
			
		||||
 | 
			
		||||
        if (isPageLoaded) {
 | 
			
		||||
            //Call the DOM ready callbacks
 | 
			
		||||
            if (callbacks.length) {
 | 
			
		||||
                readyCalls = [];
 | 
			
		||||
                runCallbacks(callbacks);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Sets the page as loaded.
 | 
			
		||||
     */
 | 
			
		||||
    function pageLoaded() {
 | 
			
		||||
        if (!isPageLoaded) {
 | 
			
		||||
            isPageLoaded = true;
 | 
			
		||||
            if (scrollIntervalId) {
 | 
			
		||||
                clearInterval(scrollIntervalId);
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            callReady();
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (isBrowser) {
 | 
			
		||||
        if (document.addEventListener) {
 | 
			
		||||
            //Standards. Hooray! Assumption here that if standards based,
 | 
			
		||||
            //it knows about DOMContentLoaded.
 | 
			
		||||
            document.addEventListener("DOMContentLoaded", pageLoaded, false);
 | 
			
		||||
            window.addEventListener("load", pageLoaded, false);
 | 
			
		||||
        } else if (window.attachEvent) {
 | 
			
		||||
            window.attachEvent("onload", pageLoaded);
 | 
			
		||||
 | 
			
		||||
            testDiv = document.createElement('div');
 | 
			
		||||
            try {
 | 
			
		||||
                isTop = window.frameElement === null;
 | 
			
		||||
            } catch (e) {}
 | 
			
		||||
 | 
			
		||||
            //DOMContentLoaded approximation that uses a doScroll, as found by
 | 
			
		||||
            //Diego Perini: http://javascript.nwbox.com/IEContentLoaded/,
 | 
			
		||||
            //but modified by other contributors, including jdalton
 | 
			
		||||
            if (testDiv.doScroll && isTop && window.external) {
 | 
			
		||||
                scrollIntervalId = setInterval(function () {
 | 
			
		||||
                    try {
 | 
			
		||||
                        testDiv.doScroll();
 | 
			
		||||
                        pageLoaded();
 | 
			
		||||
                    } catch (e) {}
 | 
			
		||||
                }, 30);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        //Check if document already complete, and if so, just trigger page load
 | 
			
		||||
        //listeners. Latest webkit browsers also use "interactive", and
 | 
			
		||||
        //will fire the onDOMContentLoaded before "interactive" but not after
 | 
			
		||||
        //entering "interactive" or "complete". More details:
 | 
			
		||||
        //http://dev.w3.org/html5/spec/the-end.html#the-end
 | 
			
		||||
        //http://stackoverflow.com/questions/3665561/document-readystate-of-interactive-vs-ondomcontentloaded
 | 
			
		||||
        //Hmm, this is more complicated on further use, see "firing too early"
 | 
			
		||||
        //bug: https://github.com/requirejs/domReady/issues/1
 | 
			
		||||
        //so removing the || document.readyState === "interactive" test.
 | 
			
		||||
        //There is still a window.onload binding that should get fired if
 | 
			
		||||
        //DOMContentLoaded is missed.
 | 
			
		||||
        if (document.readyState === "complete") {
 | 
			
		||||
            pageLoaded();
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /** START OF PUBLIC API **/
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Registers a callback for DOM ready. If DOM is already ready, the
 | 
			
		||||
     * callback is called immediately.
 | 
			
		||||
     * @param {Function} callback
 | 
			
		||||
     */
 | 
			
		||||
    function domReady(callback) {
 | 
			
		||||
        if (isPageLoaded) {
 | 
			
		||||
            callback(doc);
 | 
			
		||||
        } else {
 | 
			
		||||
            readyCalls.push(callback);
 | 
			
		||||
        }
 | 
			
		||||
        return domReady;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    domReady.version = '2.0.1';
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Loader Plugin API method
 | 
			
		||||
     */
 | 
			
		||||
    domReady.load = function (name, req, onLoad, config) {
 | 
			
		||||
        if (config.isBuild) {
 | 
			
		||||
            onLoad(null);
 | 
			
		||||
        } else {
 | 
			
		||||
            domReady(onLoad);
 | 
			
		||||
        }
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    /** END OF PUBLIC API **/
 | 
			
		||||
 | 
			
		||||
    return domReady;
 | 
			
		||||
});
 | 
			
		||||
@ -910,7 +910,6 @@ async function testNewLight(dataList) {
 | 
			
		||||
 | 
			
		||||
//------------------- 加入熱點 -----------------
 | 
			
		||||
async function addHotPoint(data) {
 | 
			
		||||
    if (pageAct.sysMainTag == null && pageAct.sysSubTag == null) return
 | 
			
		||||
    var viewer = data.target ? data.target : data;
 | 
			
		||||
    const dataVizExtn = await viewer.loadExtension("Autodesk.DataVisualization");
 | 
			
		||||
    const DataVizCore = Autodesk.DataVisualization.Core;
 | 
			
		||||
@ -923,9 +922,9 @@ async function addHotPoint(data) {
 | 
			
		||||
        return;
 | 
			
		||||
    } else {
 | 
			
		||||
        spriteColor = new THREE.Color(0xffffff);
 | 
			
		||||
        spriteIcon = "/file/img/forge/sensor_circle.svg";
 | 
			
		||||
        spriteIcon = "/file/img/forge/hotspot.svg";
 | 
			
		||||
        if (location.href.indexOf("localhost:5966") != -1) {
 | 
			
		||||
            spriteIcon = "/img/forge/sensor_circle.svg";
 | 
			
		||||
            spriteIcon = "/img/forge/hotspot.svg";
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@ -974,7 +973,7 @@ async function addHotPoint(data) {
 | 
			
		||||
                // console.log(`Sprite clicked: ${event.dbId}`);
 | 
			
		||||
 | 
			
		||||
                for (let i = dbIdStart; i <= myDataList.length + 10; i++) {
 | 
			
		||||
                    !alarmDbIdList.some(({ spriteDbid }) => spriteDbid == i) &&
 | 
			
		||||
                    !alarmDbIdList.some((dbId) => dbId == i) &&
 | 
			
		||||
                        pageAct.sysSubTag !== "L1" &&
 | 
			
		||||
                        changeColorForHotspot(i);
 | 
			
		||||
                    changeScaleForHotspot(i, true);
 | 
			
		||||
@ -991,7 +990,7 @@ async function addHotPoint(data) {
 | 
			
		||||
                }
 | 
			
		||||
                $(selector).trigger("autodesk:click:sprite", { event, myData });
 | 
			
		||||
            } else {
 | 
			
		||||
                !alarmDbIdList.some(({ spriteDbid }) => spriteDbid == event.dbId) &&
 | 
			
		||||
                !alarmDbIdList.some((dbId) => dbId == i) &&
 | 
			
		||||
                    pageAct.sysSubTag !== "L1" &&
 | 
			
		||||
                    changeColorForHotspot(event.dbId, null);
 | 
			
		||||
                changeScaleForHotspot(event.dbId, false);
 | 
			
		||||
@ -1039,47 +1038,25 @@ async function addHotPoint(data) {
 | 
			
		||||
    //}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//hex -> rgbsensor_circle
 | 
			
		||||
function hexToRgb(hex) {
 | 
			
		||||
    return (
 | 
			
		||||
        "rgb(" +
 | 
			
		||||
        parseInt("0x" + hex.slice(1, 3)) +
 | 
			
		||||
        "," +
 | 
			
		||||
        parseInt("0x" + hex.slice(3, 5)) +
 | 
			
		||||
        "," +
 | 
			
		||||
        parseInt("0x" + hex.slice(5, 7)) +
 | 
			
		||||
        ")"
 | 
			
		||||
    );
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 熱點 更換顏色
 | 
			
		||||
async function changeColorForHotspot(dbId, type = null, OnOff = false) {
 | 
			
		||||
async function changeColorForHotspot(dbId, type = null, lightOn = false) {
 | 
			
		||||
    const dataVizExtn = await viewer.loadExtension("Autodesk.DataVisualization");
 | 
			
		||||
    let spriteColorFocus = new THREE.Color(0xffffff);
 | 
			
		||||
 | 
			
		||||
    spriteColorFocus = OnOff
 | 
			
		||||
        ? pageAct.sysSubObj.device_normal_color
 | 
			
		||||
            ? new THREE.Color(hexToRgb(pageAct.sysSubObj.device_normal_color))
 | 
			
		||||
            : new THREE.Color(0xffffff)
 | 
			
		||||
        : pageAct.sysSubObj.device_close_color
 | 
			
		||||
            ? new THREE.Color(hexToRgb(pageAct.sysSubObj.device_close_color))
 | 
			
		||||
            : new THREE.Color(0xffffff);
 | 
			
		||||
 | 
			
		||||
    if (type == "focus") {
 | 
			
		||||
    if (pageAct.sysSubTag == "L1") {
 | 
			
		||||
        spriteColorFocus = lightOn
 | 
			
		||||
            ? new THREE.Color(0xffd524)
 | 
			
		||||
            : new THREE.Color(0x40525e);
 | 
			
		||||
        if (lightOn) {
 | 
			
		||||
            console.log(dbId);
 | 
			
		||||
        }
 | 
			
		||||
    } else if (type == "focus" && pageAct.sysSubTag !== "M12") {
 | 
			
		||||
        spriteColorFocus = new THREE.Color(0x00ffe1);
 | 
			
		||||
    } else if (type == "error") {
 | 
			
		||||
        spriteColorFocus = new THREE.Color(
 | 
			
		||||
            hexToRgb(pageAct.sysSubObj.device_error_color)
 | 
			
		||||
        );
 | 
			
		||||
        spriteErrIcon = baseForgeApiUrl + "/file/img/forge/sensor_circle.svg";
 | 
			
		||||
        if (location.href.indexOf("localhost:5966") != -1) {
 | 
			
		||||
            spriteErrIcon = baseForgeApiUrl + "/img/forge/sensor_circle.svg";
 | 
			
		||||
        }
 | 
			
		||||
        spriteColorFocus = new THREE.Color(0xff0000);
 | 
			
		||||
    }
 | 
			
		||||
    const viewablesToUpdate = dbId;
 | 
			
		||||
    dataVizExtn.invalidateViewables(viewablesToUpdate, (viewable) => {
 | 
			
		||||
        return {
 | 
			
		||||
            url: "/file/img/forge/sensor_circle.svg",
 | 
			
		||||
            color: spriteColorFocus,
 | 
			
		||||
        };
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
@ -1,16 +1,16 @@
 | 
			
		||||
var ytAjax = typeof YourTeam !== "undefined" ? new YourTeam.Ajax() : null; //公用AJAX初始化
 | 
			
		||||
var baseApiUrl = "http://localhost:3604"; // 本地開發用
 | 
			
		||||
var baseImgUrl = "https://localhost:44376"; // 本地開發用
 | 
			
		||||
// var baseApiUrl = "http://localhost:3604"; // 本地開發用
 | 
			
		||||
// var baseImgUrl = "https://localhost:44376"; // 本地開發用
 | 
			
		||||
 | 
			
		||||
// Mitsubishi
 | 
			
		||||
//var baseApiUrl = "http://220.132.206.5"; // production 用
 | 
			
		||||
//var baseImgUrl = "http://220.132.206.5:8848"; // production 用
 | 
			
		||||
var baseApiUrl = "http://220.132.206.5:8005"; // production 用
 | 
			
		||||
var baseImgUrl = "http://220.132.206.5:8053"; // production 用
 | 
			
		||||
 | 
			
		||||
// WSP
 | 
			
		||||
//var baseApiUrl = "http://220.132.206.5:8001"; // production 用
 | 
			
		||||
//var baseImgUrl = "http://220.132.206.5:8849"; // production 用
 | 
			
		||||
// var baseApiUrl = "http://192.168.0.136:8005"; // production 用
 | 
			
		||||
// var baseImgUrl = "http://192.168.0.136:8053"; // production 用
 | 
			
		||||
 | 
			
		||||
//var baseApiUrl = "http://localhost";
 | 
			
		||||
// var baseApiUrl = "http://localhost:3604";
 | 
			
		||||
//var baseImgUrl = "http://localhost:8848";
 | 
			
		||||
 | 
			
		||||
var varRegApiUrl = "/reg/api/";  //註冊API路徑
 | 
			
		||||
@ -32,9 +32,9 @@ var common = {
 | 
			
		||||
var objSendData = { Data: null };
 | 
			
		||||
// Mitsubishi
 | 
			
		||||
var elevatorShow = true
 | 
			
		||||
var port = "";
 | 
			
		||||
var initAreaTag = "TPE";
 | 
			
		||||
var n4Sup = "Mitsubishi_JACE8000";
 | 
			
		||||
var port = "4914";
 | 
			
		||||
var initAreaTag = "NTPC";
 | 
			
		||||
var n4Sup = "MCUT_Supervisor";
 | 
			
		||||
 | 
			
		||||
// WSP
 | 
			
		||||
//var elevatorShow = false
 | 
			
		||||
 | 
			
		||||
@ -237,8 +237,8 @@ function getElectricMeterHourDataByBaja(devicePath, company, startDateTime, endD
 | 
			
		||||
    var _index = 0;
 | 
			
		||||
 | 
			
		||||
    require(['baja!'], function (baja) {//TPE_B1_EE_E4_R2F_NA_WHT_N1_KWH
 | 
			
		||||
        console.log("local:|foxs:|history:/" + company + "/" + devicePath + "?peroid=timerange;start=" + startDateTime + ".000+08:00;end=" + endDateTime + ".000+08:00;delta=true|bql:history:HistoryRollup.rollup(baja:RelTime '3600000')");
 | 
			
		||||
        baja.Ord.make("local:|foxs:|history:/" + company + "/" + devicePath + "?peroid=timerange;start=" + startDateTime + ".000+08:00;end=" + endDateTime + ".000+08:00;delta=true|bql:history:HistoryRollup.rollup(baja:RelTime '3600000')").get()
 | 
			
		||||
        console.log("local:|foxs:"+port+"|history:/" + devicePath + "?peroid=timerange;start=" + startDateTime + ".000+08:00;end=" + endDateTime + ".000+08:00;delta=true|bql:history:HistoryRollup.rollup(baja:RelTime '3600000')");
 | 
			
		||||
        baja.Ord.make("local:|foxs:"+port+"|history:/" + devicePath + "?peroid=timerange;start=" + startDateTime + ".000+08:00;end=" + endDateTime + ".000+08:00;delta=true|bql:history:HistoryRollup.rollup(baja:RelTime '3600000')").get()
 | 
			
		||||
            .then(function (table) {
 | 
			
		||||
                return table.cursor({
 | 
			
		||||
                    each: function (record) {
 | 
			
		||||
@ -279,8 +279,8 @@ function getElectricMeterDayDataByBaja(devicePath, company, startDateTime, endDa
 | 
			
		||||
    var _index = 0;
 | 
			
		||||
    
 | 
			
		||||
    require(['baja!'], function (baja) {//TPE_B1_EE_E4_R2F_NA_WHT_N1_KWH
 | 
			
		||||
        console.log("local:|foxs:|history:/" + company + "/" + devicePath + "?peroid=timerange;start=" + startDateTime + ".000+08:00;end=" + endDateTime + ".000+08:00;delta=true|bql:history:HistoryRollup.rollup(baja:RelTime '86400000')");
 | 
			
		||||
        baja.Ord.make("local:|foxs:|history:/" + company + "/" + devicePath + "?peroid=timerange;start=" + startDateTime + ".000+08:00;end=" + endDateTime + ".000+08:00;delta=true|bql:history:HistoryRollup.rollup(baja:RelTime '86400000')").get()
 | 
			
		||||
        console.log("local:|foxs:"+port+"|history:/" + devicePath + "?peroid=timerange;start=" + startDateTime + ".000+08:00;end=" + endDateTime + ".000+08:00;delta=true|bql:history:HistoryRollup.rollup(baja:RelTime '86400000')");
 | 
			
		||||
        baja.Ord.make("local:|foxs:"+port+"|history:/" + devicePath + "?peroid=timerange;start=" + startDateTime + ".000+08:00;end=" + endDateTime + ".000+08:00;delta=true|bql:history:HistoryRollup.rollup(baja:RelTime '86400000')").get()
 | 
			
		||||
            .then(function (table) {
 | 
			
		||||
                table.cursor({
 | 
			
		||||
                    each: function (record) {
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										36
									
								
								Frontend/js/require2.1.15.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,36 @@
 | 
			
		||||
/*
 | 
			
		||||
 RequireJS 2.1.15 Copyright (c) 2010-2014, The Dojo Foundation All Rights Reserved.
 | 
			
		||||
 Available via the MIT or new BSD license.
 | 
			
		||||
 see: http://github.com/jrburke/requirejs for details
 | 
			
		||||
*/
 | 
			
		||||
var requirejs,require,define;
 | 
			
		||||
(function(ba){function G(b){return"[object Function]"===K.call(b)}function H(b){return"[object Array]"===K.call(b)}function v(b,c){if(b){var d;for(d=0;d<b.length&&(!b[d]||!c(b[d],d,b));d+=1);}}function T(b,c){if(b){var d;for(d=b.length-1;-1<d&&(!b[d]||!c(b[d],d,b));d-=1);}}function t(b,c){return fa.call(b,c)}function m(b,c){return t(b,c)&&b[c]}function B(b,c){for(var d in b)if(t(b,d)&&c(b[d],d))break}function U(b,c,d,e){c&&B(c,function(c,g){if(d||!t(b,g))e&&"object"===typeof c&&c&&!H(c)&&!G(c)&&!(c instanceof
 | 
			
		||||
RegExp)?(b[g]||(b[g]={}),U(b[g],c,d,e)):b[g]=c});return b}function u(b,c){return function(){return c.apply(b,arguments)}}function ca(b){throw b;}function da(b){if(!b)return b;var c=ba;v(b.split("."),function(b){c=c[b]});return c}function C(b,c,d,e){c=Error(c+"\nhttp://requirejs.org/docs/errors.html#"+b);c.requireType=b;c.requireModules=e;d&&(c.originalError=d);return c}function ga(b){function c(a,k,b){var f,l,c,d,e,g,i,p,k=k&&k.split("/"),h=j.map,n=h&&h["*"];if(a){a=a.split("/");l=a.length-1;j.nodeIdCompat&&
 | 
			
		||||
Q.test(a[l])&&(a[l]=a[l].replace(Q,""));"."===a[0].charAt(0)&&k&&(l=k.slice(0,k.length-1),a=l.concat(a));l=a;for(c=0;c<l.length;c++)if(d=l[c],"."===d)l.splice(c,1),c-=1;else if(".."===d&&!(0===c||1==c&&".."===l[2]||".."===l[c-1])&&0<c)l.splice(c-1,2),c-=2;a=a.join("/")}if(b&&h&&(k||n)){l=a.split("/");c=l.length;a:for(;0<c;c-=1){e=l.slice(0,c).join("/");if(k)for(d=k.length;0<d;d-=1)if(b=m(h,k.slice(0,d).join("/")))if(b=m(b,e)){f=b;g=c;break a}!i&&(n&&m(n,e))&&(i=m(n,e),p=c)}!f&&i&&(f=i,g=p);f&&(l.splice(0,
 | 
			
		||||
g,f),a=l.join("/"))}return(f=m(j.pkgs,a))?f:a}function d(a){z&&v(document.getElementsByTagName("script"),function(k){if(k.getAttribute("data-requiremodule")===a&&k.getAttribute("data-requirecontext")===i.contextName)return k.parentNode.removeChild(k),!0})}function e(a){var k=m(j.paths,a);if(k&&H(k)&&1<k.length)return k.shift(),i.require.undef(a),i.makeRequire(null,{skipMap:!0})([a]),!0}function n(a){var k,c=a?a.indexOf("!"):-1;-1<c&&(k=a.substring(0,c),a=a.substring(c+1,a.length));return[k,a]}function p(a,
 | 
			
		||||
k,b,f){var l,d,e=null,g=k?k.name:null,j=a,p=!0,h="";a||(p=!1,a="_@r"+(K+=1));a=n(a);e=a[0];a=a[1];e&&(e=c(e,g,f),d=m(r,e));a&&(e?h=d&&d.normalize?d.normalize(a,function(a){return c(a,g,f)}):-1===a.indexOf("!")?c(a,g,f):a:(h=c(a,g,f),a=n(h),e=a[0],h=a[1],b=!0,l=i.nameToUrl(h)));b=e&&!d&&!b?"_unnormalized"+(O+=1):"";return{prefix:e,name:h,parentMap:k,unnormalized:!!b,url:l,originalName:j,isDefine:p,id:(e?e+"!"+h:h)+b}}function s(a){var k=a.id,b=m(h,k);b||(b=h[k]=new i.Module(a));return b}function q(a,
 | 
			
		||||
k,b){var f=a.id,c=m(h,f);if(t(r,f)&&(!c||c.defineEmitComplete))"defined"===k&&b(r[f]);else if(c=s(a),c.error&&"error"===k)b(c.error);else c.on(k,b)}function w(a,b){var c=a.requireModules,f=!1;if(b)b(a);else if(v(c,function(b){if(b=m(h,b))b.error=a,b.events.error&&(f=!0,b.emit("error",a))}),!f)g.onError(a)}function x(){R.length&&(ha.apply(A,[A.length,0].concat(R)),R=[])}function y(a){delete h[a];delete V[a]}function F(a,b,c){var f=a.map.id;a.error?a.emit("error",a.error):(b[f]=!0,v(a.depMaps,function(f,
 | 
			
		||||
d){var e=f.id,g=m(h,e);g&&(!a.depMatched[d]&&!c[e])&&(m(b,e)?(a.defineDep(d,r[e]),a.check()):F(g,b,c))}),c[f]=!0)}function D(){var a,b,c=(a=1E3*j.waitSeconds)&&i.startTime+a<(new Date).getTime(),f=[],l=[],g=!1,h=!0;if(!W){W=!0;B(V,function(a){var i=a.map,j=i.id;if(a.enabled&&(i.isDefine||l.push(a),!a.error))if(!a.inited&&c)e(j)?g=b=!0:(f.push(j),d(j));else if(!a.inited&&(a.fetched&&i.isDefine)&&(g=!0,!i.prefix))return h=!1});if(c&&f.length)return a=C("timeout","Load timeout for modules: "+f,null,
 | 
			
		||||
f),a.contextName=i.contextName,w(a);h&&v(l,function(a){F(a,{},{})});if((!c||b)&&g)if((z||ea)&&!X)X=setTimeout(function(){X=0;D()},50);W=!1}}function E(a){t(r,a[0])||s(p(a[0],null,!0)).init(a[1],a[2])}function I(a){var a=a.currentTarget||a.srcElement,b=i.onScriptLoad;a.detachEvent&&!Y?a.detachEvent("onreadystatechange",b):a.removeEventListener("load",b,!1);b=i.onScriptError;(!a.detachEvent||Y)&&a.removeEventListener("error",b,!1);return{node:a,id:a&&a.getAttribute("data-requiremodule")}}function J(){var a;
 | 
			
		||||
for(x();A.length;){a=A.shift();if(null===a[0])return w(C("mismatch","Mismatched anonymous define() module: "+a[a.length-1]));E(a)}}var W,Z,i,L,X,j={waitSeconds:7,baseUrl:"./",paths:{},bundles:{},pkgs:{},shim:{},config:{}},h={},V={},$={},A=[],r={},S={},aa={},K=1,O=1;L={require:function(a){return a.require?a.require:a.require=i.makeRequire(a.map)},exports:function(a){a.usingExports=!0;if(a.map.isDefine)return a.exports?r[a.map.id]=a.exports:a.exports=r[a.map.id]={}},module:function(a){return a.module?
 | 
			
		||||
a.module:a.module={id:a.map.id,uri:a.map.url,config:function(){return m(j.config,a.map.id)||{}},exports:a.exports||(a.exports={})}}};Z=function(a){this.events=m($,a.id)||{};this.map=a;this.shim=m(j.shim,a.id);this.depExports=[];this.depMaps=[];this.depMatched=[];this.pluginMaps={};this.depCount=0};Z.prototype={init:function(a,b,c,f){f=f||{};if(!this.inited){this.factory=b;if(c)this.on("error",c);else this.events.error&&(c=u(this,function(a){this.emit("error",a)}));this.depMaps=a&&a.slice(0);this.errback=
 | 
			
		||||
c;this.inited=!0;this.ignore=f.ignore;f.enabled||this.enabled?this.enable():this.check()}},defineDep:function(a,b){this.depMatched[a]||(this.depMatched[a]=!0,this.depCount-=1,this.depExports[a]=b)},fetch:function(){if(!this.fetched){this.fetched=!0;i.startTime=(new Date).getTime();var a=this.map;if(this.shim)i.makeRequire(this.map,{enableBuildCallback:!0})(this.shim.deps||[],u(this,function(){return a.prefix?this.callPlugin():this.load()}));else return a.prefix?this.callPlugin():this.load()}},load:function(){var a=
 | 
			
		||||
this.map.url;S[a]||(S[a]=!0,i.load(this.map.id,a))},check:function(){if(this.enabled&&!this.enabling){var a,b,c=this.map.id;b=this.depExports;var f=this.exports,l=this.factory;if(this.inited)if(this.error)this.emit("error",this.error);else{if(!this.defining){this.defining=!0;if(1>this.depCount&&!this.defined){if(G(l)){if(this.events.error&&this.map.isDefine||g.onError!==ca)try{f=i.execCb(c,l,b,f)}catch(d){a=d}else f=i.execCb(c,l,b,f);this.map.isDefine&&void 0===f&&((b=this.module)?f=b.exports:this.usingExports&&
 | 
			
		||||
(f=this.exports));if(a)return a.requireMap=this.map,a.requireModules=this.map.isDefine?[this.map.id]:null,a.requireType=this.map.isDefine?"define":"require",w(this.error=a)}else f=l;this.exports=f;if(this.map.isDefine&&!this.ignore&&(r[c]=f,g.onResourceLoad))g.onResourceLoad(i,this.map,this.depMaps);y(c);this.defined=!0}this.defining=!1;this.defined&&!this.defineEmitted&&(this.defineEmitted=!0,this.emit("defined",this.exports),this.defineEmitComplete=!0)}}else this.fetch()}},callPlugin:function(){var a=
 | 
			
		||||
this.map,b=a.id,d=p(a.prefix);this.depMaps.push(d);q(d,"defined",u(this,function(f){var l,d;d=m(aa,this.map.id);var e=this.map.name,P=this.map.parentMap?this.map.parentMap.name:null,n=i.makeRequire(a.parentMap,{enableBuildCallback:!0});if(this.map.unnormalized){if(f.normalize&&(e=f.normalize(e,function(a){return c(a,P,!0)})||""),f=p(a.prefix+"!"+e,this.map.parentMap),q(f,"defined",u(this,function(a){this.init([],function(){return a},null,{enabled:!0,ignore:!0})})),d=m(h,f.id)){this.depMaps.push(f);
 | 
			
		||||
if(this.events.error)d.on("error",u(this,function(a){this.emit("error",a)}));d.enable()}}else d?(this.map.url=i.nameToUrl(d),this.load()):(l=u(this,function(a){this.init([],function(){return a},null,{enabled:!0})}),l.error=u(this,function(a){this.inited=!0;this.error=a;a.requireModules=[b];B(h,function(a){0===a.map.id.indexOf(b+"_unnormalized")&&y(a.map.id)});w(a)}),l.fromText=u(this,function(f,c){var d=a.name,e=p(d),P=M;c&&(f=c);P&&(M=!1);s(e);t(j.config,b)&&(j.config[d]=j.config[b]);try{g.exec(f)}catch(h){return w(C("fromtexteval",
 | 
			
		||||
"fromText eval for "+b+" failed: "+h,h,[b]))}P&&(M=!0);this.depMaps.push(e);i.completeLoad(d);n([d],l)}),f.load(a.name,n,l,j))}));i.enable(d,this);this.pluginMaps[d.id]=d},enable:function(){V[this.map.id]=this;this.enabling=this.enabled=!0;v(this.depMaps,u(this,function(a,b){var c,f;if("string"===typeof a){a=p(a,this.map.isDefine?this.map:this.map.parentMap,!1,!this.skipMap);this.depMaps[b]=a;if(c=m(L,a.id)){this.depExports[b]=c(this);return}this.depCount+=1;q(a,"defined",u(this,function(a){this.defineDep(b,
 | 
			
		||||
a);this.check()}));this.errback&&q(a,"error",u(this,this.errback))}c=a.id;f=h[c];!t(L,c)&&(f&&!f.enabled)&&i.enable(a,this)}));B(this.pluginMaps,u(this,function(a){var b=m(h,a.id);b&&!b.enabled&&i.enable(a,this)}));this.enabling=!1;this.check()},on:function(a,b){var c=this.events[a];c||(c=this.events[a]=[]);c.push(b)},emit:function(a,b){v(this.events[a],function(a){a(b)});"error"===a&&delete this.events[a]}};i={config:j,contextName:b,registry:h,defined:r,urlFetched:S,defQueue:A,Module:Z,makeModuleMap:p,
 | 
			
		||||
nextTick:g.nextTick,onError:w,configure:function(a){a.baseUrl&&"/"!==a.baseUrl.charAt(a.baseUrl.length-1)&&(a.baseUrl+="/");var b=j.shim,c={paths:!0,bundles:!0,config:!0,map:!0};B(a,function(a,b){c[b]?(j[b]||(j[b]={}),U(j[b],a,!0,!0)):j[b]=a});a.bundles&&B(a.bundles,function(a,b){v(a,function(a){a!==b&&(aa[a]=b)})});a.shim&&(B(a.shim,function(a,c){H(a)&&(a={deps:a});if((a.exports||a.init)&&!a.exportsFn)a.exportsFn=i.makeShimExports(a);b[c]=a}),j.shim=b);a.packages&&v(a.packages,function(a){var b,
 | 
			
		||||
a="string"===typeof a?{name:a}:a;b=a.name;a.location&&(j.paths[b]=a.location);j.pkgs[b]=a.name+"/"+(a.main||"main").replace(ia,"").replace(Q,"")});B(h,function(a,b){!a.inited&&!a.map.unnormalized&&(a.map=p(b))});if(a.deps||a.callback)i.require(a.deps||[],a.callback)},makeShimExports:function(a){return function(){var b;a.init&&(b=a.init.apply(ba,arguments));return b||a.exports&&da(a.exports)}},makeRequire:function(a,e){function j(c,d,m){var n,q;e.enableBuildCallback&&(d&&G(d))&&(d.__requireJsBuild=
 | 
			
		||||
!0);if("string"===typeof c){if(G(d))return w(C("requireargs","Invalid require call"),m);if(a&&t(L,c))return L[c](h[a.id]);if(g.get)return g.get(i,c,a,j);n=p(c,a,!1,!0);n=n.id;return!t(r,n)?w(C("notloaded",'Module name "'+n+'" has not been loaded yet for context: '+b+(a?"":". Use require([])"))):r[n]}J();i.nextTick(function(){J();q=s(p(null,a));q.skipMap=e.skipMap;q.init(c,d,m,{enabled:!0});D()});return j}e=e||{};U(j,{isBrowser:z,toUrl:function(b){var d,e=b.lastIndexOf("."),k=b.split("/")[0];if(-1!==
 | 
			
		||||
e&&(!("."===k||".."===k)||1<e))d=b.substring(e,b.length),b=b.substring(0,e);return i.nameToUrl(c(b,a&&a.id,!0),d,!0)},defined:function(b){return t(r,p(b,a,!1,!0).id)},specified:function(b){b=p(b,a,!1,!0).id;return t(r,b)||t(h,b)}});a||(j.undef=function(b){x();var c=p(b,a,!0),e=m(h,b);d(b);delete r[b];delete S[c.url];delete $[b];T(A,function(a,c){a[0]===b&&A.splice(c,1)});e&&(e.events.defined&&($[b]=e.events),y(b))});return j},enable:function(a){m(h,a.id)&&s(a).enable()},completeLoad:function(a){var b,
 | 
			
		||||
c,d=m(j.shim,a)||{},g=d.exports;for(x();A.length;){c=A.shift();if(null===c[0]){c[0]=a;if(b)break;b=!0}else c[0]===a&&(b=!0);E(c)}c=m(h,a);if(!b&&!t(r,a)&&c&&!c.inited){if(j.enforceDefine&&(!g||!da(g)))return e(a)?void 0:w(C("nodefine","No define call for "+a,null,[a]));E([a,d.deps||[],d.exportsFn])}D()},nameToUrl:function(a,b,c){var d,e,h;(d=m(j.pkgs,a))&&(a=d);if(d=m(aa,a))return i.nameToUrl(d,b,c);if(g.jsExtRegExp.test(a))d=a+(b||"");else{d=j.paths;a=a.split("/");for(e=a.length;0<e;e-=1)if(h=a.slice(0,
 | 
			
		||||
e).join("/"),h=m(d,h)){H(h)&&(h=h[0]);a.splice(0,e,h);break}d=a.join("/");d+=b||(/^data\:|\?/.test(d)||c?"":".js");d=("/"===d.charAt(0)||d.match(/^[\w\+\.\-]+:/)?"":j.baseUrl)+d}return j.urlArgs?d+((-1===d.indexOf("?")?"?":"&")+j.urlArgs):d},load:function(a,b){g.load(i,a,b)},execCb:function(a,b,c,d){return b.apply(d,c)},onScriptLoad:function(a){if("load"===a.type||ja.test((a.currentTarget||a.srcElement).readyState))N=null,a=I(a),i.completeLoad(a.id)},onScriptError:function(a){var b=I(a);if(!e(b.id))return w(C("scripterror",
 | 
			
		||||
"Script error for: "+b.id,a,[b.id]))}};i.require=i.makeRequire();return i}var g,x,y,D,I,E,N,J,s,O,ka=/(\/\*([\s\S]*?)\*\/|([^:]|^)\/\/(.*)$)/mg,la=/[^.]\s*require\s*\(\s*["']([^'"\s]+)["']\s*\)/g,Q=/\.js$/,ia=/^\.\//;x=Object.prototype;var K=x.toString,fa=x.hasOwnProperty,ha=Array.prototype.splice,z=!!("undefined"!==typeof window&&"undefined"!==typeof navigator&&window.document),ea=!z&&"undefined"!==typeof importScripts,ja=z&&"PLAYSTATION 3"===navigator.platform?/^complete$/:/^(complete|loaded)$/,
 | 
			
		||||
Y="undefined"!==typeof opera&&"[object Opera]"===opera.toString(),F={},q={},R=[],M=!1;if("undefined"===typeof define){if("undefined"!==typeof requirejs){if(G(requirejs))return;q=requirejs;requirejs=void 0}"undefined"!==typeof require&&!G(require)&&(q=require,require=void 0);g=requirejs=function(b,c,d,e){var n,p="_";!H(b)&&"string"!==typeof b&&(n=b,H(c)?(b=c,c=d,d=e):b=[]);n&&n.context&&(p=n.context);(e=m(F,p))||(e=F[p]=g.s.newContext(p));n&&e.configure(n);return e.require(b,c,d)};g.config=function(b){return g(b)};
 | 
			
		||||
g.nextTick="undefined"!==typeof setTimeout?function(b){setTimeout(b,4)}:function(b){b()};require||(require=g);g.version="2.1.15";g.jsExtRegExp=/^\/|:|\?|\.js$/;g.isBrowser=z;x=g.s={contexts:F,newContext:ga};g({});v(["toUrl","undef","defined","specified"],function(b){g[b]=function(){var c=F._;return c.require[b].apply(c,arguments)}});if(z&&(y=x.head=document.getElementsByTagName("head")[0],D=document.getElementsByTagName("base")[0]))y=x.head=D.parentNode;g.onError=ca;g.createNode=function(b){var c=
 | 
			
		||||
b.xhtml?document.createElementNS("http://www.w3.org/1999/xhtml","html:script"):document.createElement("script");c.type=b.scriptType||"text/javascript";c.charset="utf-8";c.async=!0;return c};g.load=function(b,c,d){var e=b&&b.config||{};if(z)return e=g.createNode(e,c,d),e.setAttribute("data-requirecontext",b.contextName),e.setAttribute("data-requiremodule",c),e.attachEvent&&!(e.attachEvent.toString&&0>e.attachEvent.toString().indexOf("[native code"))&&!Y?(M=!0,e.attachEvent("onreadystatechange",b.onScriptLoad)):
 | 
			
		||||
(e.addEventListener("load",b.onScriptLoad,!1),e.addEventListener("error",b.onScriptError,!1)),e.src=d,J=e,D?y.insertBefore(e,D):y.appendChild(e),J=null,e;if(ea)try{importScripts(d),b.completeLoad(c)}catch(m){b.onError(C("importscripts","importScripts failed for "+c+" at "+d,m,[c]))}};z&&!q.skipDataMain&&T(document.getElementsByTagName("script"),function(b){y||(y=b.parentNode);if(I=b.getAttribute("data-main"))return s=I,q.baseUrl||(E=s.split("/"),s=E.pop(),O=E.length?E.join("/")+"/":"./",q.baseUrl=
 | 
			
		||||
O),s=s.replace(Q,""),g.jsExtRegExp.test(s)&&(s=I),q.deps=q.deps?q.deps.concat(s):[s],!0});define=function(b,c,d){var e,g;"string"!==typeof b&&(d=c,c=b,b=null);H(c)||(d=c,c=null);!c&&G(d)&&(c=[],d.length&&(d.toString().replace(ka,"").replace(la,function(b,d){c.push(d)}),c=(1===d.length?["require"]:["require","exports","module"]).concat(c)));if(M){if(!(e=J))N&&"interactive"===N.readyState||T(document.getElementsByTagName("script"),function(b){if("interactive"===b.readyState)return N=b}),e=N;e&&(b||
 | 
			
		||||
(b=e.getAttribute("data-requiremodule")),g=F[e.getAttribute("data-requirecontext")])}(g?g.defQueue:R).push([b,c,d])};define.amd={jQuery:!0};g.exec=function(b){return eval(b)};g(q)}})(this);
 | 
			
		||||
@ -954,24 +954,26 @@ class Forge3DSensor {
 | 
			
		||||
    this.DataVizCore = null;
 | 
			
		||||
    this.tempVal = 20;
 | 
			
		||||
    this.curDevice = option.curDevice ?? null;
 | 
			
		||||
    this.deviceList = option.deviceList ?? null;
 | 
			
		||||
    this.selector = option.selector ?? "#forgeViewer";
 | 
			
		||||
    this.elevCb = option.elevCb ?? null;
 | 
			
		||||
        this.deviceList = option.deviceList ?? null;
 | 
			
		||||
    this.#init();
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  static sensorTimes = 0;
 | 
			
		||||
 | 
			
		||||
  #init = async function () {
 | 
			
		||||
    // 系統大類、小類固定
 | 
			
		||||
    this.ordPath.system_tag = this.sysMainTag;
 | 
			
		||||
    this.ordPath.name_tag = this.sysSubTag;
 | 
			
		||||
        this.dataVizExtn = await this.viewer.loadExtension(
 | 
			
		||||
            "Autodesk.DataVisualization"
 | 
			
		||||
        );
 | 
			
		||||
        this.DataVizCore = Autodesk.DataVisualization.Core;
 | 
			
		||||
    // this.dataVizExtn = await this.viewer.loadExtension(
 | 
			
		||||
    //   "Autodesk.DataVisualization"
 | 
			
		||||
    // );
 | 
			
		||||
    // this.DataVizCore = Autodesk.DataVisualization.Core;
 | 
			
		||||
    await this.registerHotPoint();
 | 
			
		||||
        this.changeColorForSensorHotspot(this.curDevice.forge_dbid, 35);
 | 
			
		||||
        this.elevCb && this.elevCb();
 | 
			
		||||
    this.addSensorHotspotList(this.curDevice.forge_dbid, 35);
 | 
			
		||||
    this.subSensorDevice();
 | 
			
		||||
    this.elevCb && this.elevCb();
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  // // 建立熱點
 | 
			
		||||
@ -984,29 +986,30 @@ class Forge3DSensor {
 | 
			
		||||
  // }
 | 
			
		||||
 | 
			
		||||
  async registerHotPoint(color = "") {
 | 
			
		||||
    if (Forge3DSensor.sensorTimes === 1) {
 | 
			
		||||
      var viewer = this.viewer;
 | 
			
		||||
        const viewableType = this.DataVizCore.ViewableType.SPRITE; //DataVizCore.ViewableType.SPRITE;
 | 
			
		||||
      const dataVizExtn = await viewer.loadExtension(
 | 
			
		||||
        "Autodesk.DataVisualization"
 | 
			
		||||
      );
 | 
			
		||||
      const DataVizCore = Autodesk.DataVisualization.Core;
 | 
			
		||||
      const viewableType = DataVizCore.ViewableType.SPRITE; //DataVizCore.ViewableType.SPRITE;
 | 
			
		||||
      const spriteColor = new THREE.Color(0xff8c00);
 | 
			
		||||
      // const highlightedColor = new THREE.Color(0xe0e0ff);
 | 
			
		||||
      let spriteIcon = "/file/img/forge/sensor_circle.svg";
 | 
			
		||||
      if (location.href.indexOf("localhost:5966") != -1) {
 | 
			
		||||
        spriteIcon = "/img/forge/sensor_circle.svg";
 | 
			
		||||
      }
 | 
			
		||||
        const style = new this.DataVizCore.ViewableStyle(
 | 
			
		||||
      const style = new DataVizCore.ViewableStyle(
 | 
			
		||||
        viewableType,
 | 
			
		||||
        spriteColor,
 | 
			
		||||
        spriteIcon
 | 
			
		||||
      );
 | 
			
		||||
 | 
			
		||||
        const viewableData = new this.DataVizCore.ViewableData();
 | 
			
		||||
      const viewableData = new DataVizCore.ViewableData();
 | 
			
		||||
      viewableData.spriteSize = 30; // Sprites as points of size 24 x 24 pixels
 | 
			
		||||
        // console.log(this.curDevice, [this.curDevice])
 | 
			
		||||
 | 
			
		||||
        [this.curDevice].forEach((myData, index) => {
 | 
			
		||||
            // console.log(myData)
 | 
			
		||||
      this.deviceList.forEach((myData, index) => {
 | 
			
		||||
        const dbId = myData.forge_dbid;
 | 
			
		||||
        const myPosition = myData.position;
 | 
			
		||||
            const viewable = new this.DataVizCore.SpriteViewable(
 | 
			
		||||
        const viewable = new DataVizCore.SpriteViewable(
 | 
			
		||||
          myPosition,
 | 
			
		||||
          style,
 | 
			
		||||
          dbId
 | 
			
		||||
@ -1014,28 +1017,26 @@ class Forge3DSensor {
 | 
			
		||||
        myData._dbId = dbId;
 | 
			
		||||
        viewableData.addViewable(viewable);
 | 
			
		||||
      });
 | 
			
		||||
        // console.log(viewableData)
 | 
			
		||||
      await viewableData.finish();
 | 
			
		||||
        this.dataVizExtn.addViewables(viewableData);
 | 
			
		||||
        // console.log("1",this.dataVizExtn)
 | 
			
		||||
      dataVizExtn.addViewables(viewableData);
 | 
			
		||||
      viewer.addEventListener(
 | 
			
		||||
            this.DataVizCore.MOUSE_CLICK,
 | 
			
		||||
        DataVizCore.MOUSE_CLICK,
 | 
			
		||||
        this.onSpriteClicked.bind(this)
 | 
			
		||||
      ); // SPRITE_SELECTED
 | 
			
		||||
      // viewer.addEventListener(this.DataVizCore.MOUSE_CLICK_OUT, onSpriteClickedOut.bind(this));
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  // ---------------- 熱點點擊事件 --------------------
 | 
			
		||||
  onSpriteClicked(event) {
 | 
			
		||||
        console.log(event);
 | 
			
		||||
    event.hasStopped = true;
 | 
			
		||||
    const dbIdStart = 10;
 | 
			
		||||
    if (event != undefined && event != null) {
 | 
			
		||||
      if (event.dbId >= dbIdStart) {
 | 
			
		||||
                let myData = [this.curDevice].filter(
 | 
			
		||||
                    (x) => x.forge_dbid == event.dbId
 | 
			
		||||
                )[0];
 | 
			
		||||
                this.changeColorForSensorHotspot(event.dbId, this.tempVal);
 | 
			
		||||
                moveViewToDevice(myData.forge_dbid); //移動視角至該設備
 | 
			
		||||
        let myData = this.deviceList.find((x) => x.forge_dbid == event.dbId);
 | 
			
		||||
        console.log("site", myData);
 | 
			
		||||
        // this.changeColorForSensorHotspot(event.dbId, this.tempVal);
 | 
			
		||||
        myData && moveViewToDevice(myData.forge_dbid); //移動視角至該設備
 | 
			
		||||
        myData &&
 | 
			
		||||
          $(this.selector).trigger("autodesk:click:sprite", { event, myData });
 | 
			
		||||
      } else {
 | 
			
		||||
        $(this.selector).trigger("autodesk:clickOut:sprite", { event });
 | 
			
		||||
@ -1045,8 +1046,10 @@ class Forge3DSensor {
 | 
			
		||||
 | 
			
		||||
  // 改變熱點位置
 | 
			
		||||
  async changePos(dbId, positionZ) {
 | 
			
		||||
        // const dataVizExtn = await viewer.loadExtension("Autodesk.DataVisualization") || this.dataVizExtn;
 | 
			
		||||
        this.dataVizExtn?.invalidateViewables(dbId, (viewable) => {
 | 
			
		||||
    const dataVizExtn = await viewer.loadExtension(
 | 
			
		||||
      "Autodesk.DataVisualization"
 | 
			
		||||
    );
 | 
			
		||||
    dataVizExtn?.invalidateViewables(dbId, (viewable) => {
 | 
			
		||||
      // console.log(viewable._position)
 | 
			
		||||
      const z = viewable._position.z + positionZ;
 | 
			
		||||
      const newPos = { ...viewable._position, z };
 | 
			
		||||
@ -1057,68 +1060,99 @@ class Forge3DSensor {
 | 
			
		||||
    });
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
    // 熱點 更換顏色---環境感知器
 | 
			
		||||
    async changeColorForSensorHotspot(dbId, temp, type = "") {
 | 
			
		||||
        // const dataVizExtn = await viewer.loadExtension("Autodesk.DataVisualization");
 | 
			
		||||
  // 溫度感測器 sprite 隨溫度變化
 | 
			
		||||
  static lowerTempForSensor = [];
 | 
			
		||||
  static normalTempForSensor = [];
 | 
			
		||||
  static highTempForSensor = [];
 | 
			
		||||
  static highestTempForSensor = [];
 | 
			
		||||
 | 
			
		||||
  async addSensorHotspotList(dbid, temp) {
 | 
			
		||||
    let index = Math.floor(temp / 10) - 1 || 0;
 | 
			
		||||
 | 
			
		||||
    // 清空資料
 | 
			
		||||
    Forge3DSensor.lowerTempForSensor = Forge3DSensor.lowerTempForSensor.filter(
 | 
			
		||||
      (point) => point !== dbid
 | 
			
		||||
    );
 | 
			
		||||
    Forge3DSensor.normalTempForSensor =
 | 
			
		||||
      Forge3DSensor.normalTempForSensor.filter((point) => point !== dbid);
 | 
			
		||||
    Forge3DSensor.highTempForSensor = Forge3DSensor.highTempForSensor.filter(
 | 
			
		||||
      (point) => point !== dbid
 | 
			
		||||
    );
 | 
			
		||||
    Forge3DSensor.highestTempForSensor =
 | 
			
		||||
      Forge3DSensor.highestTempForSensor.filter((point) => point !== dbid);
 | 
			
		||||
 | 
			
		||||
    const temps = [
 | 
			
		||||
      new THREE.Color(0x00009c),
 | 
			
		||||
      new THREE.Color(0xffff31),
 | 
			
		||||
      new THREE.Color(0xff8c00),
 | 
			
		||||
      new THREE.Color(0xff0000),
 | 
			
		||||
    ];
 | 
			
		||||
        let index = Math.floor(temp / 10) - 1 || 0;
 | 
			
		||||
        if (index > 3) {
 | 
			
		||||
            index = 3;
 | 
			
		||||
 | 
			
		||||
    switch (index) {
 | 
			
		||||
      case -1:
 | 
			
		||||
        Forge3DSensor.lowerTempForSensor.push(dbid);
 | 
			
		||||
        break;
 | 
			
		||||
      case 0:
 | 
			
		||||
        Forge3DSensor.lowerTempForSensor.push(dbid);
 | 
			
		||||
        break;
 | 
			
		||||
      case 1:
 | 
			
		||||
        Forge3DSensor.normalTempForSensor.push(dbid);
 | 
			
		||||
        break;
 | 
			
		||||
      case 2:
 | 
			
		||||
        Forge3DSensor.highTempForSensor.push(dbid);
 | 
			
		||||
        break;
 | 
			
		||||
      case 3:
 | 
			
		||||
        Forge3DSensor.highestTempForSensor.push(dbid);
 | 
			
		||||
        break;
 | 
			
		||||
      default:
 | 
			
		||||
        Forge3DSensor.highTempForSensor.push(dbid);
 | 
			
		||||
        break;
 | 
			
		||||
    }
 | 
			
		||||
        const viewablesToUpdate = dbId;
 | 
			
		||||
        let color = temps[index];
 | 
			
		||||
        // debugger
 | 
			
		||||
        // this.registerHotPoint(color)
 | 
			
		||||
        //   const _this=this
 | 
			
		||||
        //   setInterval(() => {
 | 
			
		||||
        //     _this.dataVizExtn.invalidateViewables(viewablesToUpdate, (viewable) => {
 | 
			
		||||
        //         return { color: color };
 | 
			
		||||
        //     });
 | 
			
		||||
        //     // sceneUpdated(true)
 | 
			
		||||
        // }, 1000);
 | 
			
		||||
        if (type == "error") {
 | 
			
		||||
            color = new THREE.Color(0xff0000);
 | 
			
		||||
    if (
 | 
			
		||||
      (Forge3DSensor.lowerTempForSensor.length,
 | 
			
		||||
        Forge3DSensor.normalTempForSensor.length,
 | 
			
		||||
        Forge3DSensor.highTempForSensor.length,
 | 
			
		||||
        Forge3DSensor.highestTempForSensor.length,
 | 
			
		||||
        allDevList.length)
 | 
			
		||||
    ) {
 | 
			
		||||
      await this.changeColorForSensorHotspot(
 | 
			
		||||
        Forge3DSensor.lowerTempForSensor,
 | 
			
		||||
        temps[0]
 | 
			
		||||
      );
 | 
			
		||||
      await this.changeColorForSensorHotspot(
 | 
			
		||||
        Forge3DSensor.normalTempForSensor,
 | 
			
		||||
        temps[1]
 | 
			
		||||
      );
 | 
			
		||||
      await this.changeColorForSensorHotspot(
 | 
			
		||||
        Forge3DSensor.highTempForSensor,
 | 
			
		||||
        temps[2]
 | 
			
		||||
      );
 | 
			
		||||
      await this.changeColorForSensorHotspot(
 | 
			
		||||
        Forge3DSensor.highestTempForSensor,
 | 
			
		||||
        temps[3]
 | 
			
		||||
      );
 | 
			
		||||
    }
 | 
			
		||||
        this.dataVizExtn.invalidateViewables(viewablesToUpdate, (viewable) => {
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  async changeColorForSensorHotspot(viewablesToUpdate, color) {
 | 
			
		||||
    const dataVizExtn = await viewer.loadExtension(
 | 
			
		||||
      "Autodesk.DataVisualization"
 | 
			
		||||
    );
 | 
			
		||||
    dataVizExtn.invalidateViewables(viewablesToUpdate, (viewable) => {
 | 
			
		||||
      return {
 | 
			
		||||
        color: color,
 | 
			
		||||
      };
 | 
			
		||||
    });
 | 
			
		||||
        // debugger
 | 
			
		||||
        // console.log("3", this.dataVizExtn)
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
    static deviceScatterNormalArr = [];
 | 
			
		||||
    static deviceScatterCloseArr = [];
 | 
			
		||||
    static deviceScatterErrorArr = [];
 | 
			
		||||
 | 
			
		||||
    static deviceNormalArr = [];
 | 
			
		||||
    static deviceCloseArr = [];
 | 
			
		||||
 | 
			
		||||
  // 訂閱sensor設備
 | 
			
		||||
  subSensorDevice() {
 | 
			
		||||
        // console.log("sensor 訂閱")
 | 
			
		||||
        // require(["baja!"], (baja)=>{
 | 
			
		||||
        //   const sub = new baja.subscriber();
 | 
			
		||||
        //   sub.attach("changed",function(){
 | 
			
		||||
        //     console.log(this)
 | 
			
		||||
        //   })
 | 
			
		||||
        //   baja.Ord.make("local:|foxs:|station:|slot:/TPE/B1/ME/M12/U1F/NA/TH/N1/TEMP").get({subscribe: sub})
 | 
			
		||||
        // })
 | 
			
		||||
 | 
			
		||||
    let myBaja = new subscriptionDevices();
 | 
			
		||||
    myBaja.setSubscribeDevicesByBql(this.ordPath);
 | 
			
		||||
 | 
			
		||||
    myBaja.setSubscribeDevicesCallBack((data) => {
 | 
			
		||||
            // console.log(data)
 | 
			
		||||
      this.bajaChaCallback ? this.bajaChaCallback(data) : "";
 | 
			
		||||
      if (this.curDevice == null) {
 | 
			
		||||
                $(loadEle).Loading("close");
 | 
			
		||||
        return false;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
@ -1136,147 +1170,64 @@ class Forge3DSensor {
 | 
			
		||||
        this.subDeviceData.push(obj);
 | 
			
		||||
      }
 | 
			
		||||
      let subData = this.subDeviceData.find(
 | 
			
		||||
                (x) =>
 | 
			
		||||
                    x.device_number == this.curDevice.id ||
 | 
			
		||||
                    x.device_number == "TPE_B1_ME_M12_R2F_NA_TH_N1"
 | 
			
		||||
        (x) => x.device_number == this.curDevice.id
 | 
			
		||||
      );
 | 
			
		||||
 | 
			
		||||
      if (subData) {
 | 
			
		||||
                subData[data.point_name] = data.value;
 | 
			
		||||
        subData = { ...subData, [data.point_name]: data.value };
 | 
			
		||||
      }
 | 
			
		||||
            let norDevPoiName = this.curDevice.device_normal_point_name;
 | 
			
		||||
            let cloDevPoiName = this.curDevice.device_close_point_name || "";
 | 
			
		||||
            let errDevPoiName = this.curDevice.device_error_point_name;
 | 
			
		||||
 | 
			
		||||
      if (data.point_name == "Temp" || data.point_name == "TEMP") {
 | 
			
		||||
        this.tempVal = !isNaN(parseInt(data.value)) ? parseInt(data.value) : 0;
 | 
			
		||||
                // this.heatMap?.changeTemp(
 | 
			
		||||
                //   this.curDevice.id,
 | 
			
		||||
                //   !isNaN(parseInt(data.value)) ? parseInt(data.value) : 0,
 | 
			
		||||
                // );
 | 
			
		||||
                this.curDevice.temp = this.tempVal;
 | 
			
		||||
                if (
 | 
			
		||||
                    subData &&
 | 
			
		||||
                    subData[this.curDevice.device_error_point_name] ==
 | 
			
		||||
                    this.curDevice.device_error_point_value
 | 
			
		||||
                ) {
 | 
			
		||||
                    this.changeColorForSensorHotspot(
 | 
			
		||||
        this.curDevice = {
 | 
			
		||||
          ...this.curDevice,
 | 
			
		||||
          temp: !isNaN(parseInt(data.value)) ? parseInt(data.value) : 0,
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
        if (data.device_number_full === this.curDevice.id) {
 | 
			
		||||
          this.addSensorHotspotList(
 | 
			
		||||
            this.curDevice.forge_dbid,
 | 
			
		||||
                        this.curDevice.temp,
 | 
			
		||||
                        "error"
 | 
			
		||||
                    );
 | 
			
		||||
                } else {
 | 
			
		||||
                    this.changeColorForSensorHotspot(
 | 
			
		||||
                        this.curDevice.forge_dbid,
 | 
			
		||||
                        parseInt(data.value)
 | 
			
		||||
            this.curDevice.temp
 | 
			
		||||
          );
 | 
			
		||||
        }
 | 
			
		||||
                // changeColorForSensorHotspot(this.curDevice.forge_dbid, parseInt(data.value))
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      let matchDevice = allDevList.find(
 | 
			
		||||
        (x) => x.device_number == data.device_number_full
 | 
			
		||||
      );
 | 
			
		||||
 | 
			
		||||
      let norDevPoiName = matchDevice.device_normal_point_name;
 | 
			
		||||
      let cloDevPoiName = matchDevice.device_close_point_name;
 | 
			
		||||
      let errDevPoiName = matchDevice.device_error_point_name;
 | 
			
		||||
      if (
 | 
			
		||||
        data.point_name == norDevPoiName &&
 | 
			
		||||
                data.value == this.curDevice.device_normal_point_value &&
 | 
			
		||||
                !Forge3DSensor.deviceNormalArr.some(
 | 
			
		||||
                    ({ device_number }) => device_number === this.curDevice.device_number
 | 
			
		||||
                )
 | 
			
		||||
        data.value == matchDevice.device_normal_point_value
 | 
			
		||||
      ) {
 | 
			
		||||
 | 
			
		||||
        //顯示正常燈號
 | 
			
		||||
                $(`#${this.curDevice.device_number}_status`)
 | 
			
		||||
        $(`#${matchDevice.device_number}_status`)
 | 
			
		||||
          .attr("data-light-type", "normal")
 | 
			
		||||
          .data("light-type", "normal");
 | 
			
		||||
 | 
			
		||||
                Forge3DSensor.deviceNormalArr.push(this.curDevice);
 | 
			
		||||
                Forge3DSensor.deviceCloseArr = Forge3DSensor.deviceCloseArr.filter(
 | 
			
		||||
                    (device) => device.spriteDbid !== this.curDevice.spriteDbid
 | 
			
		||||
                );
 | 
			
		||||
      } else if (
 | 
			
		||||
        data.point_name == cloDevPoiName &&
 | 
			
		||||
                data.value == this.curDevice.device_close_point_value &&
 | 
			
		||||
                !Forge3DSensor.deviceCloseArr.some(
 | 
			
		||||
                    ({ device_number }) => device_number === this.curDevice.device_number
 | 
			
		||||
                )
 | 
			
		||||
        data.value == matchDevice.device_close_point_value
 | 
			
		||||
      ) {
 | 
			
		||||
                $(`#${this.curDevice.device_number}_status`)
 | 
			
		||||
 | 
			
		||||
        $(`#${matchDevice.device_number}_status`)
 | 
			
		||||
          .attr("data-light-type", "close")
 | 
			
		||||
          .data("light-type", "close");
 | 
			
		||||
 | 
			
		||||
                Forge3DSensor.deviceCloseArr.push(this.curDevice);
 | 
			
		||||
                Forge3DSensor.deviceNormalArr = Forge3DSensor.deviceNormalArr.filter(
 | 
			
		||||
                    (device) => device.spriteDbid !== this.curDevice.spriteDbid
 | 
			
		||||
                );
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            if (
 | 
			
		||||
                data.point_name == errDevPoiName &&
 | 
			
		||||
                data.value == this.curDevice.device_error_point_value &&
 | 
			
		||||
                !alarmDbIdList.some(
 | 
			
		||||
                    (device) => device.device_number === this.curDevice.device_number
 | 
			
		||||
                )
 | 
			
		||||
            ) {
 | 
			
		||||
                $(`#${this.curDevice.device_number}_status`)
 | 
			
		||||
                    .attr("data-light-error-type", "error")
 | 
			
		||||
                    .data("light-error-type", "error");
 | 
			
		||||
 | 
			
		||||
                alarmDbIdList.push(this.curDevice);
 | 
			
		||||
      } else if (
 | 
			
		||||
        data.point_name == errDevPoiName &&
 | 
			
		||||
                data.value !== this.curDevice.device_error_point_value
 | 
			
		||||
        data.value == matchDevice.device_error_point_value
 | 
			
		||||
      ) {
 | 
			
		||||
                $(`#${this.curDevice.device_number}_status`)
 | 
			
		||||
                    .attr("data-light-error-type", "")
 | 
			
		||||
                    .data("light-error-type", "");
 | 
			
		||||
                alarmDbIdList = alarmDbIdList.filter(
 | 
			
		||||
                    (device) => device.device_number !== this.curDevice.device_number
 | 
			
		||||
                );
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            if (
 | 
			
		||||
                Forge3DSensor.deviceCloseArr.length === 0 &&
 | 
			
		||||
                alarmDbIdList.some(
 | 
			
		||||
                    (device) => device.device_number === this.curDevice.device_number
 | 
			
		||||
                )
 | 
			
		||||
            ) {
 | 
			
		||||
                $(`#${this.curDevice.device_number}_status`)
 | 
			
		||||
        $(`#${matchDevice.device_number}_status`)
 | 
			
		||||
          .attr("data-light-type", "error")
 | 
			
		||||
          .data("light-type", "error");
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      setLightColor();
 | 
			
		||||
 | 
			
		||||
            if (pageAct.floTag) {
 | 
			
		||||
                const option = floChart.getOption();
 | 
			
		||||
 | 
			
		||||
                if (!alarmDbIdList.some(a => a.device_number === this.curDevice.device_number)) {
 | 
			
		||||
                    this.deviceList.forEach((device) => {
 | 
			
		||||
                        const cur = option.series[0].data.find(
 | 
			
		||||
                            ({ device_number }) => device_number === device.device_number
 | 
			
		||||
                        );
 | 
			
		||||
 | 
			
		||||
                        const normalColor = currentData.find(
 | 
			
		||||
                            ({ device_number }) => device_number === device.device_number
 | 
			
		||||
                        ).device_normal_color;
 | 
			
		||||
                        if (cur) {
 | 
			
		||||
                            cur.itemStyle = { color: normalColor };
 | 
			
		||||
                        }
 | 
			
		||||
                    });
 | 
			
		||||
                } else {
 | 
			
		||||
                    alarmDbIdList.forEach((device) => {
 | 
			
		||||
                        const cur = option.series[0].data.find(
 | 
			
		||||
                            ({ device_number }) => device_number === device.device_number
 | 
			
		||||
                        );
 | 
			
		||||
                        const errColor = currentData.find(
 | 
			
		||||
                            ({ device_number }) => device_number === device.device_number
 | 
			
		||||
                        )?.device_error_color;
 | 
			
		||||
 | 
			
		||||
                        if (cur) {
 | 
			
		||||
                            cur.itemStyle = { color: errColor };
 | 
			
		||||
                        }
 | 
			
		||||
                    });
 | 
			
		||||
                }
 | 
			
		||||
                floChart.setOption(option);
 | 
			
		||||
            }
 | 
			
		||||
            $(loadEle).Loading("close");
 | 
			
		||||
      setDevItemPoiValBySub(data);
 | 
			
		||||
      $(loadEle).Loading("close");
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    myBaja.setSubscribeDeviceEndCallBack((data) => {
 | 
			
		||||
 | 
			
		||||
@ -1427,6 +1427,40 @@ async function download(token,url, filename,callback = null) {
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * 下載檔案
 | 
			
		||||
 * @param {any} url
 | 
			
		||||
 * @param {any} filename
 | 
			
		||||
 */
 | 
			
		||||
async function downloadByBlob(res, blob, filename, fetchOption, callback = null) {
 | 
			
		||||
    // 擷取回傳 header > content-disposition (後端定義檔案名稱)
 | 
			
		||||
    let disposition = res.getResponseHeader("Content-Disposition");
 | 
			
		||||
    let sDowName = "";
 | 
			
		||||
    if (disposition) {
 | 
			
		||||
      // 解析出名稱
 | 
			
		||||
      sDowName = disposition.split(/filename\*=(?:utf-8'')?(.*)/gi)[1];
 | 
			
		||||
      if (sDowName.toLowerCase().startsWith("utf-8''"))
 | 
			
		||||
        sDowName = decodeURIComponent(sDowName.replace(/utf-8''/i, ""));
 | 
			
		||||
      else sDowName = sDowName.replace(/['"]/g, "");
 | 
			
		||||
      sDowName = decodeURIComponent(sDowName);
 | 
			
		||||
    }
 | 
			
		||||
    // 隱形a標籤
 | 
			
		||||
    const a = document.createElement("a");
 | 
			
		||||
    let href = URL.createObjectURL(blob);
 | 
			
		||||
    if (href) {
 | 
			
		||||
      a.href = href;
 | 
			
		||||
      a.download = filename || sDowName || "";
 | 
			
		||||
      document.body.appendChild(a);
 | 
			
		||||
      a.click();
 | 
			
		||||
      document.body.removeChild(a);
 | 
			
		||||
      callback ? callback() : "";
 | 
			
		||||
      return true;
 | 
			
		||||
    } else {
 | 
			
		||||
      return false;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
 | 
			
		||||
function onEvent(type, selector, callback) {
 | 
			
		||||
    if (selector == "body" || selector == window) {
 | 
			
		||||
        $(selector).on(type, callback);
 | 
			
		||||
 | 
			
		||||
@ -0,0 +1,42 @@
 | 
			
		||||
table.dataTable thead tr > .dtfc-fixed-left,
 | 
			
		||||
table.dataTable thead tr > .dtfc-fixed-right,
 | 
			
		||||
table.dataTable tfoot tr > .dtfc-fixed-left,
 | 
			
		||||
table.dataTable tfoot tr > .dtfc-fixed-right {
 | 
			
		||||
  top: 0;
 | 
			
		||||
  bottom: 0;
 | 
			
		||||
  z-index: 3;
 | 
			
		||||
  background-color: white;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable tbody tr > .dtfc-fixed-left,
 | 
			
		||||
table.dataTable tbody tr > .dtfc-fixed-right {
 | 
			
		||||
  z-index: 1;
 | 
			
		||||
  background-color: white;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
div.dtfc-left-top-blocker,
 | 
			
		||||
div.dtfc-right-top-blocker {
 | 
			
		||||
  background-color: white;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
div.dtfc-right-top-blocker,
 | 
			
		||||
div.dtfc-left-top-blocker {
 | 
			
		||||
  margin-top: 6px;
 | 
			
		||||
  border-bottom: 0px solid #ddd !important;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
table.dataTable.table-bordered.dtfc-has-left {
 | 
			
		||||
  border-left: none;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
div.dataTables_scroll.dtfc-has-left table.table-bordered {
 | 
			
		||||
  border-left: none;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
div.dataTables_scrollBody {
 | 
			
		||||
  border-left: 1px solid #ddd !important;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
div.dataTables_scrollFootInner table.table-bordered tr th:first-child,
 | 
			
		||||
div.dataTables_scrollHeadInner table.table-bordered tr th:first-child {
 | 
			
		||||
  border-left: 1px solid #ddd !important;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										1
									
								
								Frontend/lib/FixedColumns-4.2.2/css/fixedColumns.bootstrap.min.css
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1 @@
 | 
			
		||||
table.dataTable thead tr>.dtfc-fixed-left,table.dataTable thead tr>.dtfc-fixed-right,table.dataTable tfoot tr>.dtfc-fixed-left,table.dataTable tfoot tr>.dtfc-fixed-right{top:0;bottom:0;z-index:3;background-color:white}table.dataTable tbody tr>.dtfc-fixed-left,table.dataTable tbody tr>.dtfc-fixed-right{z-index:1;background-color:white}div.dtfc-left-top-blocker,div.dtfc-right-top-blocker{background-color:white}div.dtfc-right-top-blocker,div.dtfc-left-top-blocker{margin-top:6px;border-bottom:0px solid #ddd !important}table.dataTable.table-bordered.dtfc-has-left{border-left:none}div.dataTables_scroll.dtfc-has-left table.table-bordered{border-left:none}div.dataTables_scrollBody{border-left:1px solid #ddd !important}div.dataTables_scrollFootInner table.table-bordered tr th:first-child,div.dataTables_scrollHeadInner table.table-bordered tr th:first-child{border-left:1px solid #ddd !important}
 | 
			
		||||
@ -0,0 +1,42 @@
 | 
			
		||||
table.dataTable thead tr > .dtfc-fixed-left,
 | 
			
		||||
table.dataTable thead tr > .dtfc-fixed-right,
 | 
			
		||||
table.dataTable tfoot tr > .dtfc-fixed-left,
 | 
			
		||||
table.dataTable tfoot tr > .dtfc-fixed-right {
 | 
			
		||||
  top: 0;
 | 
			
		||||
  bottom: 0;
 | 
			
		||||
  z-index: 3;
 | 
			
		||||
  background-color: white;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable tbody tr > .dtfc-fixed-left,
 | 
			
		||||
table.dataTable tbody tr > .dtfc-fixed-right {
 | 
			
		||||
  z-index: 1;
 | 
			
		||||
  background-color: white;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
div.dtfc-left-top-blocker,
 | 
			
		||||
div.dtfc-right-top-blocker {
 | 
			
		||||
  background-color: white;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
div.dtfc-right-top-blocker,
 | 
			
		||||
div.dtfc-left-top-blocker {
 | 
			
		||||
  margin-top: 6px;
 | 
			
		||||
  border-bottom: 0px solid #ddd !important;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
table.dataTable.table-bordered.dtfc-has-left {
 | 
			
		||||
  border-left: none;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
div.dataTables_scroll.dtfc-has-left table.table-bordered {
 | 
			
		||||
  border-left: none;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
div.dataTables_scrollBody {
 | 
			
		||||
  border-left: 1px solid #ddd !important;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
div.dataTables_scrollFootInner table.table-bordered tr th:first-child,
 | 
			
		||||
div.dataTables_scrollHeadInner table.table-bordered tr th:first-child {
 | 
			
		||||
  border-left: 1px solid #ddd !important;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										1
									
								
								Frontend/lib/FixedColumns-4.2.2/css/fixedColumns.bootstrap4.min.css
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1 @@
 | 
			
		||||
table.dataTable thead tr>.dtfc-fixed-left,table.dataTable thead tr>.dtfc-fixed-right,table.dataTable tfoot tr>.dtfc-fixed-left,table.dataTable tfoot tr>.dtfc-fixed-right{top:0;bottom:0;z-index:3;background-color:white}table.dataTable tbody tr>.dtfc-fixed-left,table.dataTable tbody tr>.dtfc-fixed-right{z-index:1;background-color:white}div.dtfc-left-top-blocker,div.dtfc-right-top-blocker{background-color:white}div.dtfc-right-top-blocker,div.dtfc-left-top-blocker{margin-top:6px;border-bottom:0px solid #ddd !important}table.dataTable.table-bordered.dtfc-has-left{border-left:none}div.dataTables_scroll.dtfc-has-left table.table-bordered{border-left:none}div.dataTables_scrollBody{border-left:1px solid #ddd !important}div.dataTables_scrollFootInner table.table-bordered tr th:first-child,div.dataTables_scrollHeadInner table.table-bordered tr th:first-child{border-left:1px solid #ddd !important}
 | 
			
		||||
@ -0,0 +1,42 @@
 | 
			
		||||
table.dataTable thead tr > .dtfc-fixed-left,
 | 
			
		||||
table.dataTable thead tr > .dtfc-fixed-right,
 | 
			
		||||
table.dataTable tfoot tr > .dtfc-fixed-left,
 | 
			
		||||
table.dataTable tfoot tr > .dtfc-fixed-right {
 | 
			
		||||
  top: 0;
 | 
			
		||||
  bottom: 0;
 | 
			
		||||
  z-index: 3;
 | 
			
		||||
  background-color: white;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable tbody tr > .dtfc-fixed-left,
 | 
			
		||||
table.dataTable tbody tr > .dtfc-fixed-right {
 | 
			
		||||
  z-index: 1;
 | 
			
		||||
  background-color: white;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
div.dtfc-left-top-blocker,
 | 
			
		||||
div.dtfc-right-top-blocker {
 | 
			
		||||
  background-color: white;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
div.dtfc-right-top-blocker,
 | 
			
		||||
div.dtfc-left-top-blocker {
 | 
			
		||||
  margin-top: 6px;
 | 
			
		||||
  border-bottom: 0px solid #ddd !important;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
table.dataTable.table-bordered.dtfc-has-left {
 | 
			
		||||
  border-left: none;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
div.dataTables_scroll.dtfc-has-left table.table-bordered {
 | 
			
		||||
  border-left: none;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
div.dataTables_scrollBody {
 | 
			
		||||
  border-left: 1px solid #ddd !important;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
div.dataTables_scrollFootInner table.table-bordered tr th:first-child,
 | 
			
		||||
div.dataTables_scrollHeadInner table.table-bordered tr th:first-child {
 | 
			
		||||
  border-left: 1px solid #ddd !important;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										1
									
								
								Frontend/lib/FixedColumns-4.2.2/css/fixedColumns.bootstrap5.min.css
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1 @@
 | 
			
		||||
table.dataTable thead tr>.dtfc-fixed-left,table.dataTable thead tr>.dtfc-fixed-right,table.dataTable tfoot tr>.dtfc-fixed-left,table.dataTable tfoot tr>.dtfc-fixed-right{top:0;bottom:0;z-index:3;background-color:white}table.dataTable tbody tr>.dtfc-fixed-left,table.dataTable tbody tr>.dtfc-fixed-right{z-index:1;background-color:white}div.dtfc-left-top-blocker,div.dtfc-right-top-blocker{background-color:white}div.dtfc-right-top-blocker,div.dtfc-left-top-blocker{margin-top:6px;border-bottom:0px solid #ddd !important}table.dataTable.table-bordered.dtfc-has-left{border-left:none}div.dataTables_scroll.dtfc-has-left table.table-bordered{border-left:none}div.dataTables_scrollBody{border-left:1px solid #ddd !important}div.dataTables_scrollFootInner table.table-bordered tr th:first-child,div.dataTables_scrollHeadInner table.table-bordered tr th:first-child{border-left:1px solid #ddd !important}
 | 
			
		||||
							
								
								
									
										35
									
								
								Frontend/lib/FixedColumns-4.2.2/css/fixedColumns.bulma.css
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,35 @@
 | 
			
		||||
table.dataTable thead tr > .dtfc-fixed-left,
 | 
			
		||||
table.dataTable thead tr > .dtfc-fixed-right,
 | 
			
		||||
table.dataTable tfoot tr > .dtfc-fixed-left,
 | 
			
		||||
table.dataTable tfoot tr > .dtfc-fixed-right {
 | 
			
		||||
  top: 0;
 | 
			
		||||
  bottom: 0;
 | 
			
		||||
  z-index: 3;
 | 
			
		||||
  background-color: white;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable tbody tr > .dtfc-fixed-left,
 | 
			
		||||
table.dataTable tbody tr > .dtfc-fixed-right {
 | 
			
		||||
  z-index: 1;
 | 
			
		||||
  background-color: white;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
div.dtfc-left-top-blocker,
 | 
			
		||||
div.dtfc-right-top-blocker {
 | 
			
		||||
  background-color: white;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
div.dtfc-right-top-blocker {
 | 
			
		||||
  border-bottom: none !important;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
tr.dt-rowReorder-moving td.dtfc-fixed-left,
 | 
			
		||||
tr.dt-rowReorder-moving td.dtfc-fixed-right {
 | 
			
		||||
  border-top: 2px solid #888 !important;
 | 
			
		||||
  border-bottom: 2px solid #888 !important;
 | 
			
		||||
}
 | 
			
		||||
tr.dt-rowReorder-moving td.dtfc-fixed-left:first-child {
 | 
			
		||||
  border-left: 2px solid #888 !important;
 | 
			
		||||
}
 | 
			
		||||
tr.dt-rowReorder-moving td.dtfc-fixed-right:last-child {
 | 
			
		||||
  border-right: 2px solid #888 !important;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										1
									
								
								Frontend/lib/FixedColumns-4.2.2/css/fixedColumns.bulma.min.css
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1 @@
 | 
			
		||||
table.dataTable thead tr>.dtfc-fixed-left,table.dataTable thead tr>.dtfc-fixed-right,table.dataTable tfoot tr>.dtfc-fixed-left,table.dataTable tfoot tr>.dtfc-fixed-right{top:0;bottom:0;z-index:3;background-color:white}table.dataTable tbody tr>.dtfc-fixed-left,table.dataTable tbody tr>.dtfc-fixed-right{z-index:1;background-color:white}div.dtfc-left-top-blocker,div.dtfc-right-top-blocker{background-color:white}div.dtfc-right-top-blocker{border-bottom:none !important}tr.dt-rowReorder-moving td.dtfc-fixed-left,tr.dt-rowReorder-moving td.dtfc-fixed-right{border-top:2px solid #888 !important;border-bottom:2px solid #888 !important}tr.dt-rowReorder-moving td.dtfc-fixed-left:first-child{border-left:2px solid #888 !important}tr.dt-rowReorder-moving td.dtfc-fixed-right:last-child{border-right:2px solid #888 !important}
 | 
			
		||||
@ -0,0 +1,19 @@
 | 
			
		||||
table.dataTable thead tr > .dtfc-fixed-left,
 | 
			
		||||
table.dataTable thead tr > .dtfc-fixed-right,
 | 
			
		||||
table.dataTable tfoot tr > .dtfc-fixed-left,
 | 
			
		||||
table.dataTable tfoot tr > .dtfc-fixed-right {
 | 
			
		||||
  top: 0;
 | 
			
		||||
  bottom: 0;
 | 
			
		||||
  z-index: 3;
 | 
			
		||||
  background-color: white;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable tbody tr > .dtfc-fixed-left,
 | 
			
		||||
table.dataTable tbody tr > .dtfc-fixed-right {
 | 
			
		||||
  z-index: 1;
 | 
			
		||||
  background-color: white;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
div.dtfc-left-top-blocker,
 | 
			
		||||
div.dtfc-right-top-blocker {
 | 
			
		||||
  background-color: white;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										1
									
								
								Frontend/lib/FixedColumns-4.2.2/css/fixedColumns.dataTables.min.css
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1 @@
 | 
			
		||||
table.dataTable thead tr>.dtfc-fixed-left,table.dataTable thead tr>.dtfc-fixed-right,table.dataTable tfoot tr>.dtfc-fixed-left,table.dataTable tfoot tr>.dtfc-fixed-right{top:0;bottom:0;z-index:3;background-color:white}table.dataTable tbody tr>.dtfc-fixed-left,table.dataTable tbody tr>.dtfc-fixed-right{z-index:1;background-color:white}div.dtfc-left-top-blocker,div.dtfc-right-top-blocker{background-color:white}
 | 
			
		||||
@ -0,0 +1,23 @@
 | 
			
		||||
table.dataTable thead tr > .dtfc-fixed-left,
 | 
			
		||||
table.dataTable thead tr > .dtfc-fixed-right,
 | 
			
		||||
table.dataTable tfoot tr > .dtfc-fixed-left,
 | 
			
		||||
table.dataTable tfoot tr > .dtfc-fixed-right {
 | 
			
		||||
  top: 0;
 | 
			
		||||
  bottom: 0;
 | 
			
		||||
  z-index: 3;
 | 
			
		||||
  background-color: rgb(248, 248, 248);
 | 
			
		||||
}
 | 
			
		||||
table.dataTable tbody tr > .dtfc-fixed-left,
 | 
			
		||||
table.dataTable tbody tr > .dtfc-fixed-right {
 | 
			
		||||
  z-index: 1;
 | 
			
		||||
  background-color: white;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
div.dtfc-left-top-blocker,
 | 
			
		||||
div.dtfc-right-top-blocker {
 | 
			
		||||
  background-color: rgb(248, 248, 248);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
table.dataTable.dtfc-has-left tbody {
 | 
			
		||||
  border-left: none;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										1
									
								
								Frontend/lib/FixedColumns-4.2.2/css/fixedColumns.foundation.min.css
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1 @@
 | 
			
		||||
table.dataTable thead tr>.dtfc-fixed-left,table.dataTable thead tr>.dtfc-fixed-right,table.dataTable tfoot tr>.dtfc-fixed-left,table.dataTable tfoot tr>.dtfc-fixed-right{top:0;bottom:0;z-index:3;background-color:rgb(248, 248, 248)}table.dataTable tbody tr>.dtfc-fixed-left,table.dataTable tbody tr>.dtfc-fixed-right{z-index:1;background-color:white}div.dtfc-left-top-blocker,div.dtfc-right-top-blocker{background-color:rgb(248, 248, 248)}table.dataTable.dtfc-has-left tbody{border-left:none}
 | 
			
		||||
@ -0,0 +1,37 @@
 | 
			
		||||
table.dataTable thead tr > .dtfc-fixed-left,
 | 
			
		||||
table.dataTable thead tr > .dtfc-fixed-right,
 | 
			
		||||
table.dataTable tfoot tr > .dtfc-fixed-left,
 | 
			
		||||
table.dataTable tfoot tr > .dtfc-fixed-right {
 | 
			
		||||
  top: 0;
 | 
			
		||||
  bottom: 0;
 | 
			
		||||
  z-index: 3;
 | 
			
		||||
  background-color: white;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable tbody tr > .dtfc-fixed-left,
 | 
			
		||||
table.dataTable tbody tr > .dtfc-fixed-right {
 | 
			
		||||
  z-index: 1;
 | 
			
		||||
  background-color: white;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
div.dtfc-left-top-blocker,
 | 
			
		||||
div.dtfc-right-top-blocker {
 | 
			
		||||
  background-color: white;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
div.dtfc-right-top-blocker {
 | 
			
		||||
  border-bottom: none !important;
 | 
			
		||||
  background-color: rgb(246, 246, 246) !important;
 | 
			
		||||
  border-top: 1px solid #c5c5c5 !important;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
tr.dt-rowReorder-moving td.dtfc-fixed-left,
 | 
			
		||||
tr.dt-rowReorder-moving td.dtfc-fixed-right {
 | 
			
		||||
  border-top: 2px solid #555 !important;
 | 
			
		||||
  border-bottom: 2px solid #555 !important;
 | 
			
		||||
}
 | 
			
		||||
tr.dt-rowReorder-moving td.dtfc-fixed-left:first-child {
 | 
			
		||||
  border-left: 2px solid #555 !important;
 | 
			
		||||
}
 | 
			
		||||
tr.dt-rowReorder-moving td.dtfc-fixed-right:last-child {
 | 
			
		||||
  border-right: 2px solid #555 !important;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										1
									
								
								Frontend/lib/FixedColumns-4.2.2/css/fixedColumns.jqueryui.min.css
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1 @@
 | 
			
		||||
table.dataTable thead tr>.dtfc-fixed-left,table.dataTable thead tr>.dtfc-fixed-right,table.dataTable tfoot tr>.dtfc-fixed-left,table.dataTable tfoot tr>.dtfc-fixed-right{top:0;bottom:0;z-index:3;background-color:white}table.dataTable tbody tr>.dtfc-fixed-left,table.dataTable tbody tr>.dtfc-fixed-right{z-index:1;background-color:white}div.dtfc-left-top-blocker,div.dtfc-right-top-blocker{background-color:white}div.dtfc-right-top-blocker{border-bottom:none !important;background-color:rgb(246, 246, 246) !important;border-top:1px solid #c5c5c5 !important}tr.dt-rowReorder-moving td.dtfc-fixed-left,tr.dt-rowReorder-moving td.dtfc-fixed-right{border-top:2px solid #555 !important;border-bottom:2px solid #555 !important}tr.dt-rowReorder-moving td.dtfc-fixed-left:first-child{border-left:2px solid #555 !important}tr.dt-rowReorder-moving td.dtfc-fixed-right:last-child{border-right:2px solid #555 !important}
 | 
			
		||||
@ -0,0 +1,46 @@
 | 
			
		||||
table.dataTable thead tr > .dtfc-fixed-left,
 | 
			
		||||
table.dataTable thead tr > .dtfc-fixed-right,
 | 
			
		||||
table.dataTable tfoot tr > .dtfc-fixed-left,
 | 
			
		||||
table.dataTable tfoot tr > .dtfc-fixed-right {
 | 
			
		||||
  top: 0;
 | 
			
		||||
  bottom: 0;
 | 
			
		||||
  z-index: 3;
 | 
			
		||||
  background-color: white;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable tbody tr > .dtfc-fixed-left,
 | 
			
		||||
table.dataTable tbody tr > .dtfc-fixed-right {
 | 
			
		||||
  z-index: 1;
 | 
			
		||||
  background-color: white;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
div.dtfc-left-top-blocker,
 | 
			
		||||
div.dtfc-right-top-blocker {
 | 
			
		||||
  background-color: white;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
table.dataTable {
 | 
			
		||||
  border-left-width: 0px !important;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable tr {
 | 
			
		||||
  border-left-width: 0px;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable tr th:first-child,
 | 
			
		||||
table.dataTable tr td:first-child {
 | 
			
		||||
  border-left: 1px solid rgba(34, 36, 38, 0.15) !important;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
div.dtfc-right-top-blocker {
 | 
			
		||||
  border-bottom: none !important;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
tr.dt-rowReorder-moving td.dtfc-fixed-left,
 | 
			
		||||
tr.dt-rowReorder-moving td.dtfc-fixed-right {
 | 
			
		||||
  border-top: 2px solid #888 !important;
 | 
			
		||||
  border-bottom: 2px solid #888 !important;
 | 
			
		||||
}
 | 
			
		||||
tr.dt-rowReorder-moving td.dtfc-fixed-left:first-child {
 | 
			
		||||
  border-left: 2px solid #888 !important;
 | 
			
		||||
}
 | 
			
		||||
tr.dt-rowReorder-moving td.dtfc-fixed-right:last-child {
 | 
			
		||||
  border-right: 2px solid #888 !important;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										1
									
								
								Frontend/lib/FixedColumns-4.2.2/css/fixedColumns.semanticui.min.css
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1 @@
 | 
			
		||||
table.dataTable thead tr>.dtfc-fixed-left,table.dataTable thead tr>.dtfc-fixed-right,table.dataTable tfoot tr>.dtfc-fixed-left,table.dataTable tfoot tr>.dtfc-fixed-right{top:0;bottom:0;z-index:3;background-color:white}table.dataTable tbody tr>.dtfc-fixed-left,table.dataTable tbody tr>.dtfc-fixed-right{z-index:1;background-color:white}div.dtfc-left-top-blocker,div.dtfc-right-top-blocker{background-color:white}table.dataTable{border-left-width:0px !important}table.dataTable tr{border-left-width:0px}table.dataTable tr th:first-child,table.dataTable tr td:first-child{border-left:1px solid rgba(34, 36, 38, 0.15) !important}div.dtfc-right-top-blocker{border-bottom:none !important}tr.dt-rowReorder-moving td.dtfc-fixed-left,tr.dt-rowReorder-moving td.dtfc-fixed-right{border-top:2px solid #888 !important;border-bottom:2px solid #888 !important}tr.dt-rowReorder-moving td.dtfc-fixed-left:first-child{border-left:2px solid #888 !important}tr.dt-rowReorder-moving td.dtfc-fixed-right:last-child{border-right:2px solid #888 !important}
 | 
			
		||||
							
								
								
									
										613
									
								
								Frontend/lib/FixedColumns-4.2.2/js/dataTables.fixedColumns.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,613 @@
 | 
			
		||||
/*! FixedColumns 4.2.2
 | 
			
		||||
 * © SpryMedia Ltd - datatables.net/license
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
(function( factory ){
 | 
			
		||||
	if ( typeof define === 'function' && define.amd ) {
 | 
			
		||||
		// AMD
 | 
			
		||||
		define( ['jquery', 'datatables.net'], function ( $ ) {
 | 
			
		||||
			return factory( $, window, document );
 | 
			
		||||
		} );
 | 
			
		||||
	}
 | 
			
		||||
	else if ( typeof exports === 'object' ) {
 | 
			
		||||
		// CommonJS
 | 
			
		||||
		var jq = require('jquery');
 | 
			
		||||
		var cjsRequires = function (root, $) {
 | 
			
		||||
			if ( ! $.fn.dataTable ) {
 | 
			
		||||
				require('datatables.net')(root, $);
 | 
			
		||||
			}
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		if (typeof window !== 'undefined') {
 | 
			
		||||
			module.exports = function (root, $) {
 | 
			
		||||
				if ( ! root ) {
 | 
			
		||||
					// CommonJS environments without a window global must pass a
 | 
			
		||||
					// root. This will give an error otherwise
 | 
			
		||||
					root = window;
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
				if ( ! $ ) {
 | 
			
		||||
					$ = jq( root );
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
				cjsRequires( root, $ );
 | 
			
		||||
				return factory( $, root, root.document );
 | 
			
		||||
			};
 | 
			
		||||
		}
 | 
			
		||||
		else {
 | 
			
		||||
			cjsRequires( window, jq );
 | 
			
		||||
			module.exports = factory( jq, window, window.document );
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	else {
 | 
			
		||||
		// Browser
 | 
			
		||||
		factory( jQuery, window, document );
 | 
			
		||||
	}
 | 
			
		||||
}(function( $, window, document, undefined ) {
 | 
			
		||||
'use strict';
 | 
			
		||||
var DataTable = $.fn.dataTable;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
(function () {
 | 
			
		||||
    'use strict';
 | 
			
		||||
 | 
			
		||||
    var $$1;
 | 
			
		||||
    var dataTable;
 | 
			
		||||
    function setJQuery(jq) {
 | 
			
		||||
        $$1 = jq;
 | 
			
		||||
        dataTable = $$1.fn.dataTable;
 | 
			
		||||
    }
 | 
			
		||||
    var FixedColumns = /** @class */ (function () {
 | 
			
		||||
        function FixedColumns(settings, opts) {
 | 
			
		||||
            var _this = this;
 | 
			
		||||
            // Check that the required version of DataTables is included
 | 
			
		||||
            if (!dataTable || !dataTable.versionCheck || !dataTable.versionCheck('1.10.0')) {
 | 
			
		||||
                throw new Error('StateRestore requires DataTables 1.10 or newer');
 | 
			
		||||
            }
 | 
			
		||||
            var table = new dataTable.Api(settings);
 | 
			
		||||
            this.classes = $$1.extend(true, {}, FixedColumns.classes);
 | 
			
		||||
            // Get options from user
 | 
			
		||||
            this.c = $$1.extend(true, {}, FixedColumns.defaults, opts);
 | 
			
		||||
            // Backwards compatibility for deprecated leftColumns
 | 
			
		||||
            if ((!opts || opts.left === undefined) && this.c.leftColumns !== undefined) {
 | 
			
		||||
                this.c.left = this.c.leftColumns;
 | 
			
		||||
            }
 | 
			
		||||
            // Backwards compatibility for deprecated rightColumns
 | 
			
		||||
            if ((!opts || opts.right === undefined) && this.c.rightColumns !== undefined) {
 | 
			
		||||
                this.c.right = this.c.rightColumns;
 | 
			
		||||
            }
 | 
			
		||||
            this.s = {
 | 
			
		||||
                barWidth: 0,
 | 
			
		||||
                dt: table,
 | 
			
		||||
                rtl: $$1('body').css('direction') === 'rtl'
 | 
			
		||||
            };
 | 
			
		||||
            // Common CSS for all blockers
 | 
			
		||||
            var blockerCSS = {
 | 
			
		||||
                'bottom': '0px',
 | 
			
		||||
                'display': 'block',
 | 
			
		||||
                'position': 'absolute',
 | 
			
		||||
                'width': this.s.barWidth + 1 + 'px'
 | 
			
		||||
            };
 | 
			
		||||
            this.dom = {
 | 
			
		||||
                leftBottomBlocker: $$1('<div>')
 | 
			
		||||
                    .css(blockerCSS)
 | 
			
		||||
                    .css('left', 0)
 | 
			
		||||
                    .addClass(this.classes.leftBottomBlocker),
 | 
			
		||||
                leftTopBlocker: $$1('<div>')
 | 
			
		||||
                    .css(blockerCSS)
 | 
			
		||||
                    .css({
 | 
			
		||||
                    left: 0,
 | 
			
		||||
                    top: 0
 | 
			
		||||
                })
 | 
			
		||||
                    .addClass(this.classes.leftTopBlocker),
 | 
			
		||||
                rightBottomBlocker: $$1('<div>')
 | 
			
		||||
                    .css(blockerCSS)
 | 
			
		||||
                    .css('right', 0)
 | 
			
		||||
                    .addClass(this.classes.rightBottomBlocker),
 | 
			
		||||
                rightTopBlocker: $$1('<div>')
 | 
			
		||||
                    .css(blockerCSS)
 | 
			
		||||
                    .css({
 | 
			
		||||
                    right: 0,
 | 
			
		||||
                    top: 0
 | 
			
		||||
                })
 | 
			
		||||
                    .addClass(this.classes.rightTopBlocker)
 | 
			
		||||
            };
 | 
			
		||||
            if (this.s.dt.settings()[0]._bInitComplete) {
 | 
			
		||||
                // Fixed Columns Initialisation
 | 
			
		||||
                this._addStyles();
 | 
			
		||||
                this._setKeyTableListener();
 | 
			
		||||
            }
 | 
			
		||||
            else {
 | 
			
		||||
                table.one('init.dt', function () {
 | 
			
		||||
                    // Fixed Columns Initialisation
 | 
			
		||||
                    _this._addStyles();
 | 
			
		||||
                    _this._setKeyTableListener();
 | 
			
		||||
                });
 | 
			
		||||
            }
 | 
			
		||||
            table.on('column-sizing.dt', function () { return _this._addStyles(); });
 | 
			
		||||
            // Make class available through dt object
 | 
			
		||||
            table.settings()[0]._fixedColumns = this;
 | 
			
		||||
            return this;
 | 
			
		||||
        }
 | 
			
		||||
        /**
 | 
			
		||||
         * Getter/Setter for the `fixedColumns.left` property
 | 
			
		||||
         *
 | 
			
		||||
         * @param newVal Optional. If present this will be the new value for the number of left fixed columns
 | 
			
		||||
         * @returns The number of left fixed columns
 | 
			
		||||
         */
 | 
			
		||||
        FixedColumns.prototype.left = function (newVal) {
 | 
			
		||||
            // If the value is to change
 | 
			
		||||
            if (newVal !== undefined) {
 | 
			
		||||
                // Set the new values and redraw the columns
 | 
			
		||||
                this.c.left = newVal;
 | 
			
		||||
                this._addStyles();
 | 
			
		||||
            }
 | 
			
		||||
            return this.c.left;
 | 
			
		||||
        };
 | 
			
		||||
        /**
 | 
			
		||||
         * Getter/Setter for the `fixedColumns.left` property
 | 
			
		||||
         *
 | 
			
		||||
         * @param newVal Optional. If present this will be the new value for the number of right fixed columns
 | 
			
		||||
         * @returns The number of right fixed columns
 | 
			
		||||
         */
 | 
			
		||||
        FixedColumns.prototype.right = function (newVal) {
 | 
			
		||||
            // If the value is to change
 | 
			
		||||
            if (newVal !== undefined) {
 | 
			
		||||
                // Set the new values and redraw the columns
 | 
			
		||||
                this.c.right = newVal;
 | 
			
		||||
                this._addStyles();
 | 
			
		||||
            }
 | 
			
		||||
            return this.c.right;
 | 
			
		||||
        };
 | 
			
		||||
        /**
 | 
			
		||||
         * Iterates over the columns, fixing the appropriate ones to the left and right
 | 
			
		||||
         */
 | 
			
		||||
        FixedColumns.prototype._addStyles = function () {
 | 
			
		||||
            // Set the bar width if vertical scrolling is enabled
 | 
			
		||||
            if (this.s.dt.settings()[0].oScroll.sY) {
 | 
			
		||||
                var scroll_1 = $$1(this.s.dt.table().node()).closest('div.dataTables_scrollBody')[0];
 | 
			
		||||
                var barWidth = this.s.dt.settings()[0].oBrowser.barWidth;
 | 
			
		||||
                if (scroll_1.offsetWidth - scroll_1.clientWidth >= barWidth) {
 | 
			
		||||
                    this.s.barWidth = barWidth;
 | 
			
		||||
                }
 | 
			
		||||
                else {
 | 
			
		||||
                    this.s.barWidth = 0;
 | 
			
		||||
                }
 | 
			
		||||
                this.dom.rightTopBlocker.css('width', this.s.barWidth + 1);
 | 
			
		||||
                this.dom.leftTopBlocker.css('width', this.s.barWidth + 1);
 | 
			
		||||
                this.dom.rightBottomBlocker.css('width', this.s.barWidth + 1);
 | 
			
		||||
                this.dom.leftBottomBlocker.css('width', this.s.barWidth + 1);
 | 
			
		||||
            }
 | 
			
		||||
            var parentDiv = null;
 | 
			
		||||
            // Get the header and it's height
 | 
			
		||||
            var header = this.s.dt.column(0).header();
 | 
			
		||||
            var headerHeight = null;
 | 
			
		||||
            if (header !== null) {
 | 
			
		||||
                header = $$1(header);
 | 
			
		||||
                headerHeight = header.outerHeight() + 1;
 | 
			
		||||
                parentDiv = $$1(header.closest('div.dataTables_scroll')).css('position', 'relative');
 | 
			
		||||
            }
 | 
			
		||||
            // Get the footer and it's height
 | 
			
		||||
            var footer = this.s.dt.column(0).footer();
 | 
			
		||||
            var footerHeight = null;
 | 
			
		||||
            if (footer !== null) {
 | 
			
		||||
                footer = $$1(footer);
 | 
			
		||||
                footerHeight = footer.outerHeight();
 | 
			
		||||
                // Only attempt to retrieve the parentDiv if it has not been retrieved already
 | 
			
		||||
                if (parentDiv === null) {
 | 
			
		||||
                    parentDiv = $$1(footer.closest('div.dataTables_scroll')).css('position', 'relative');
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
            // Get the number of columns in the table - this is used often so better to only make 1 api call
 | 
			
		||||
            var numCols = this.s.dt.columns().data().toArray().length;
 | 
			
		||||
            // Tracker for the number of pixels should be left to the left of the table
 | 
			
		||||
            var distLeft = 0;
 | 
			
		||||
            // Sometimes the headers have slightly different widths so need to track them individually
 | 
			
		||||
            var headLeft = 0;
 | 
			
		||||
            // Get all of the row elements in the table
 | 
			
		||||
            var rows = $$1(this.s.dt.table().node()).children('tbody').children('tr');
 | 
			
		||||
            var invisibles = 0;
 | 
			
		||||
            // When working from right to left we need to know how many are invisible before a point,
 | 
			
		||||
            // without including those that are invisible after
 | 
			
		||||
            var prevInvisible = new Map();
 | 
			
		||||
            // Iterate over all of the columns
 | 
			
		||||
            for (var i = 0; i < numCols; i++) {
 | 
			
		||||
                var column = this.s.dt.column(i);
 | 
			
		||||
                // Set the map for the previous column
 | 
			
		||||
                if (i > 0) {
 | 
			
		||||
                    prevInvisible.set(i - 1, invisibles);
 | 
			
		||||
                }
 | 
			
		||||
                if (!column.visible()) {
 | 
			
		||||
                    invisibles++;
 | 
			
		||||
                    continue;
 | 
			
		||||
                }
 | 
			
		||||
                // Get the columns header and footer element
 | 
			
		||||
                var colHeader = $$1(column.header());
 | 
			
		||||
                var colFooter = $$1(column.footer());
 | 
			
		||||
                // If i is less than the value of left then this column should be fixed left
 | 
			
		||||
                if (i - invisibles < this.c.left) {
 | 
			
		||||
                    $$1(this.s.dt.table().node()).addClass(this.classes.tableFixedLeft);
 | 
			
		||||
                    parentDiv.addClass(this.classes.tableFixedLeft);
 | 
			
		||||
                    // Add the width of the previous node - only if we are on atleast the second column
 | 
			
		||||
                    if (i - invisibles > 0) {
 | 
			
		||||
                        var prevIdx = i;
 | 
			
		||||
                        // Simply using the number of hidden columns doesn't work here,
 | 
			
		||||
                        // if the first is hidden then this would be thrown off
 | 
			
		||||
                        while (prevIdx + 1 < numCols) {
 | 
			
		||||
                            var prevCol = this.s.dt.column(prevIdx - 1, { page: 'current' });
 | 
			
		||||
                            if (prevCol.visible()) {
 | 
			
		||||
                                distLeft += $$1(prevCol.nodes()[0]).outerWidth();
 | 
			
		||||
                                headLeft += prevCol.header() ?
 | 
			
		||||
                                    $$1(prevCol.header()).outerWidth() :
 | 
			
		||||
                                    prevCol.footer() ?
 | 
			
		||||
                                        $$1(prevCol.header()).outerWidth() :
 | 
			
		||||
                                        0;
 | 
			
		||||
                                break;
 | 
			
		||||
                            }
 | 
			
		||||
                            prevIdx--;
 | 
			
		||||
                        }
 | 
			
		||||
                    }
 | 
			
		||||
                    // Iterate over all of the rows, fixing the cell to the left
 | 
			
		||||
                    for (var _i = 0, rows_1 = rows; _i < rows_1.length; _i++) {
 | 
			
		||||
                        var row = rows_1[_i];
 | 
			
		||||
                        $$1($$1(row).children()[i - invisibles])
 | 
			
		||||
                            .css(this._getCellCSS(false, distLeft, 'left'))
 | 
			
		||||
                            .addClass(this.classes.fixedLeft);
 | 
			
		||||
                    }
 | 
			
		||||
                    // Add the css for the header and the footer
 | 
			
		||||
                    colHeader
 | 
			
		||||
                        .css(this._getCellCSS(true, headLeft, 'left'))
 | 
			
		||||
                        .addClass(this.classes.fixedLeft);
 | 
			
		||||
                    colFooter
 | 
			
		||||
                        .css(this._getCellCSS(true, headLeft, 'left'))
 | 
			
		||||
                        .addClass(this.classes.fixedLeft);
 | 
			
		||||
                }
 | 
			
		||||
                else {
 | 
			
		||||
                    // Iteriate through all of the rows, making sure they aren't currently trying to fix left
 | 
			
		||||
                    for (var _a = 0, rows_2 = rows; _a < rows_2.length; _a++) {
 | 
			
		||||
                        var row = rows_2[_a];
 | 
			
		||||
                        var cell = $$1($$1(row).children()[i - invisibles]);
 | 
			
		||||
                        // If the cell is trying to fix to the left, remove the class and the css
 | 
			
		||||
                        if (cell.hasClass(this.classes.fixedLeft)) {
 | 
			
		||||
                            cell
 | 
			
		||||
                                .css(this._clearCellCSS('left'))
 | 
			
		||||
                                .removeClass(this.classes.fixedLeft);
 | 
			
		||||
                        }
 | 
			
		||||
                    }
 | 
			
		||||
                    // Make sure the header for this column isn't fixed left
 | 
			
		||||
                    if (colHeader.hasClass(this.classes.fixedLeft)) {
 | 
			
		||||
                        colHeader
 | 
			
		||||
                            .css(this._clearCellCSS('left'))
 | 
			
		||||
                            .removeClass(this.classes.fixedLeft);
 | 
			
		||||
                    }
 | 
			
		||||
                    // Make sure the footer for this column isn't fixed left
 | 
			
		||||
                    if (colFooter.hasClass(this.classes.fixedLeft)) {
 | 
			
		||||
                        colFooter
 | 
			
		||||
                            .css(this._clearCellCSS('left'))
 | 
			
		||||
                            .removeClass(this.classes.fixedLeft);
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
            var distRight = 0;
 | 
			
		||||
            var headRight = 0;
 | 
			
		||||
            // Counter for the number of invisible columns so far
 | 
			
		||||
            var rightInvisibles = 0;
 | 
			
		||||
            for (var i = numCols - 1; i >= 0; i--) {
 | 
			
		||||
                var column = this.s.dt.column(i);
 | 
			
		||||
                // If a column is invisible just skip it
 | 
			
		||||
                if (!column.visible()) {
 | 
			
		||||
                    rightInvisibles++;
 | 
			
		||||
                    continue;
 | 
			
		||||
                }
 | 
			
		||||
                // Get the columns header and footer element
 | 
			
		||||
                var colHeader = $$1(column.header());
 | 
			
		||||
                var colFooter = $$1(column.footer());
 | 
			
		||||
                // Get the number of visible columns that came before this one
 | 
			
		||||
                var prev = prevInvisible.get(i);
 | 
			
		||||
                if (prev === undefined) {
 | 
			
		||||
                    // If it wasn't set then it was the last column so just use the final value
 | 
			
		||||
                    prev = invisibles;
 | 
			
		||||
                }
 | 
			
		||||
                if (i + rightInvisibles >= numCols - this.c.right) {
 | 
			
		||||
                    $$1(this.s.dt.table().node()).addClass(this.classes.tableFixedRight);
 | 
			
		||||
                    parentDiv.addClass(this.classes.tableFixedRight);
 | 
			
		||||
                    // Add the widht of the previous node, only if we are on atleast the second column
 | 
			
		||||
                    if (i + 1 + rightInvisibles < numCols) {
 | 
			
		||||
                        var prevIdx = i;
 | 
			
		||||
                        // Simply using the number of hidden columns doesn't work here,
 | 
			
		||||
                        // if the first is hidden then this would be thrown off
 | 
			
		||||
                        while (prevIdx + 1 < numCols) {
 | 
			
		||||
                            var prevCol = this.s.dt.column(prevIdx + 1, { page: 'current' });
 | 
			
		||||
                            if (prevCol.visible()) {
 | 
			
		||||
                                distRight += $$1(prevCol.nodes()[0]).outerWidth();
 | 
			
		||||
                                headRight += prevCol.header() ?
 | 
			
		||||
                                    $$1(prevCol.header()).outerWidth() :
 | 
			
		||||
                                    prevCol.footer() ?
 | 
			
		||||
                                        $$1(prevCol.header()).outerWidth() :
 | 
			
		||||
                                        0;
 | 
			
		||||
                                break;
 | 
			
		||||
                            }
 | 
			
		||||
                            prevIdx++;
 | 
			
		||||
                        }
 | 
			
		||||
                    }
 | 
			
		||||
                    // Iterate over all of the rows, fixing the cell to the right
 | 
			
		||||
                    for (var _b = 0, rows_3 = rows; _b < rows_3.length; _b++) {
 | 
			
		||||
                        var row = rows_3[_b];
 | 
			
		||||
                        $$1($$1(row).children()[i - prev])
 | 
			
		||||
                            .css(this._getCellCSS(false, distRight, 'right'))
 | 
			
		||||
                            .addClass(this.classes.fixedRight);
 | 
			
		||||
                    }
 | 
			
		||||
                    // Add the css for the header and the footer
 | 
			
		||||
                    colHeader
 | 
			
		||||
                        .css(this._getCellCSS(true, headRight, 'right'))
 | 
			
		||||
                        .addClass(this.classes.fixedRight);
 | 
			
		||||
                    colFooter
 | 
			
		||||
                        .css(this._getCellCSS(true, headRight, 'right'))
 | 
			
		||||
                        .addClass(this.classes.fixedRight);
 | 
			
		||||
                }
 | 
			
		||||
                else {
 | 
			
		||||
                    // Iteriate through all of the rows, making sure they aren't currently trying to fix right
 | 
			
		||||
                    for (var _c = 0, rows_4 = rows; _c < rows_4.length; _c++) {
 | 
			
		||||
                        var row = rows_4[_c];
 | 
			
		||||
                        var cell = $$1($$1(row).children()[i - prev]);
 | 
			
		||||
                        // If the cell is trying to fix to the right, remove the class and the css
 | 
			
		||||
                        if (cell.hasClass(this.classes.fixedRight)) {
 | 
			
		||||
                            cell
 | 
			
		||||
                                .css(this._clearCellCSS('right'))
 | 
			
		||||
                                .removeClass(this.classes.fixedRight);
 | 
			
		||||
                        }
 | 
			
		||||
                    }
 | 
			
		||||
                    // Make sure the header for this column isn't fixed right
 | 
			
		||||
                    if (colHeader.hasClass(this.classes.fixedRight)) {
 | 
			
		||||
                        colHeader
 | 
			
		||||
                            .css(this._clearCellCSS('right'))
 | 
			
		||||
                            .removeClass(this.classes.fixedRight);
 | 
			
		||||
                    }
 | 
			
		||||
                    // Make sure the footer for this column isn't fixed right
 | 
			
		||||
                    if (colFooter.hasClass(this.classes.fixedRight)) {
 | 
			
		||||
                        colFooter
 | 
			
		||||
                            .css(this._clearCellCSS('right'))
 | 
			
		||||
                            .removeClass(this.classes.fixedRight);
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
            // If there is a header with the index class and reading rtl then add right top blocker
 | 
			
		||||
            if (header) {
 | 
			
		||||
                if (!this.s.rtl) {
 | 
			
		||||
                    this.dom.rightTopBlocker.outerHeight(headerHeight);
 | 
			
		||||
                    parentDiv.append(this.dom.rightTopBlocker);
 | 
			
		||||
                }
 | 
			
		||||
                else {
 | 
			
		||||
                    this.dom.leftTopBlocker.outerHeight(headerHeight);
 | 
			
		||||
                    parentDiv.append(this.dom.leftTopBlocker);
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
            // If there is a footer with the index class and reading rtl then add right bottom blocker
 | 
			
		||||
            if (footer) {
 | 
			
		||||
                if (!this.s.rtl) {
 | 
			
		||||
                    this.dom.rightBottomBlocker.outerHeight(footerHeight);
 | 
			
		||||
                    parentDiv.append(this.dom.rightBottomBlocker);
 | 
			
		||||
                }
 | 
			
		||||
                else {
 | 
			
		||||
                    this.dom.leftBottomBlocker.outerHeight(footerHeight);
 | 
			
		||||
                    parentDiv.append(this.dom.leftBottomBlocker);
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        };
 | 
			
		||||
        /**
 | 
			
		||||
         * Gets the correct CSS for the cell, header or footer based on options provided
 | 
			
		||||
         *
 | 
			
		||||
         * @param header Whether this cell is a header or a footer
 | 
			
		||||
         * @param dist The distance that the cell should be moved away from the edge
 | 
			
		||||
         * @param lr Indicator of fixing to the left or the right
 | 
			
		||||
         * @returns An object containing the correct css
 | 
			
		||||
         */
 | 
			
		||||
        FixedColumns.prototype._getCellCSS = function (header, dist, lr) {
 | 
			
		||||
            if (lr === 'left') {
 | 
			
		||||
                return this.s.rtl
 | 
			
		||||
                    ? {
 | 
			
		||||
                        position: 'sticky',
 | 
			
		||||
                        right: dist + 'px'
 | 
			
		||||
                    }
 | 
			
		||||
                    : {
 | 
			
		||||
                        left: dist + 'px',
 | 
			
		||||
                        position: 'sticky'
 | 
			
		||||
                    };
 | 
			
		||||
            }
 | 
			
		||||
            else {
 | 
			
		||||
                return this.s.rtl
 | 
			
		||||
                    ? {
 | 
			
		||||
                        left: dist + (header ? this.s.barWidth : 0) + 'px',
 | 
			
		||||
                        position: 'sticky'
 | 
			
		||||
                    }
 | 
			
		||||
                    : {
 | 
			
		||||
                        position: 'sticky',
 | 
			
		||||
                        right: dist + (header ? this.s.barWidth : 0) + 'px'
 | 
			
		||||
                    };
 | 
			
		||||
            }
 | 
			
		||||
        };
 | 
			
		||||
        /**
 | 
			
		||||
         * Gets the css that is required to clear the fixing to a side
 | 
			
		||||
         *
 | 
			
		||||
         * @param lr Indicator of fixing to the left or the right
 | 
			
		||||
         * @returns An object containing the correct css
 | 
			
		||||
         */
 | 
			
		||||
        FixedColumns.prototype._clearCellCSS = function (lr) {
 | 
			
		||||
            if (lr === 'left') {
 | 
			
		||||
                return !this.s.rtl ?
 | 
			
		||||
                    {
 | 
			
		||||
                        left: '',
 | 
			
		||||
                        position: ''
 | 
			
		||||
                    } :
 | 
			
		||||
                    {
 | 
			
		||||
                        position: '',
 | 
			
		||||
                        right: ''
 | 
			
		||||
                    };
 | 
			
		||||
            }
 | 
			
		||||
            else {
 | 
			
		||||
                return !this.s.rtl ?
 | 
			
		||||
                    {
 | 
			
		||||
                        position: '',
 | 
			
		||||
                        right: ''
 | 
			
		||||
                    } :
 | 
			
		||||
                    {
 | 
			
		||||
                        left: '',
 | 
			
		||||
                        position: ''
 | 
			
		||||
                    };
 | 
			
		||||
            }
 | 
			
		||||
        };
 | 
			
		||||
        FixedColumns.prototype._setKeyTableListener = function () {
 | 
			
		||||
            var _this = this;
 | 
			
		||||
            this.s.dt.on('key-focus', function (e, dt, cell) {
 | 
			
		||||
                var cellPos = $$1(cell.node()).offset();
 | 
			
		||||
                var scroll = $$1($$1(_this.s.dt.table().node()).closest('div.dataTables_scrollBody'));
 | 
			
		||||
                // If there are fixed columns to the left
 | 
			
		||||
                if (_this.c.left > 0) {
 | 
			
		||||
                    // Get the rightmost left fixed column header, it's position and it's width
 | 
			
		||||
                    var rightMost = $$1(_this.s.dt.column(_this.c.left - 1).header());
 | 
			
		||||
                    var rightMostPos = rightMost.offset();
 | 
			
		||||
                    var rightMostWidth = rightMost.outerWidth();
 | 
			
		||||
                    // If the current highlighted cell is left of the rightmost cell on the screen
 | 
			
		||||
                    if (cellPos.left < rightMostPos.left + rightMostWidth) {
 | 
			
		||||
                        // Scroll it into view
 | 
			
		||||
                        var currScroll = scroll.scrollLeft();
 | 
			
		||||
                        scroll.scrollLeft(currScroll - (rightMostPos.left + rightMostWidth - cellPos.left));
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
                // If there are fixed columns to the right
 | 
			
		||||
                if (_this.c.right > 0) {
 | 
			
		||||
                    // Get the number of columns and the width of the cell as doing right side calc
 | 
			
		||||
                    var numCols = _this.s.dt.columns().data().toArray().length;
 | 
			
		||||
                    var cellWidth = $$1(cell.node()).outerWidth();
 | 
			
		||||
                    // Get the leftmost right fixed column header and it's position
 | 
			
		||||
                    var leftMost = $$1(_this.s.dt.column(numCols - _this.c.right).header());
 | 
			
		||||
                    var leftMostPos = leftMost.offset();
 | 
			
		||||
                    // If the current highlighted cell is right of the leftmost cell on the screen
 | 
			
		||||
                    if (cellPos.left + cellWidth > leftMostPos.left) {
 | 
			
		||||
                        // Scroll it into view
 | 
			
		||||
                        var currScroll = scroll.scrollLeft();
 | 
			
		||||
                        scroll.scrollLeft(currScroll - (leftMostPos.left - (cellPos.left + cellWidth)));
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
            });
 | 
			
		||||
            // Whenever a draw occurs there is potential for the data to have changed and therefore also the column widths
 | 
			
		||||
            // Therefore it is necessary to recalculate the values for the fixed columns
 | 
			
		||||
            this.s.dt.on('draw', function () {
 | 
			
		||||
                _this._addStyles();
 | 
			
		||||
            });
 | 
			
		||||
            this.s.dt.on('column-reorder', function () {
 | 
			
		||||
                _this._addStyles();
 | 
			
		||||
            });
 | 
			
		||||
            this.s.dt.on('column-visibility', function (e, settings, column, state, recalc) {
 | 
			
		||||
                if (recalc && !settings.bDestroying) {
 | 
			
		||||
                    setTimeout(function () {
 | 
			
		||||
                        _this._addStyles();
 | 
			
		||||
                    }, 50);
 | 
			
		||||
                }
 | 
			
		||||
            });
 | 
			
		||||
        };
 | 
			
		||||
        FixedColumns.version = '4.2.2';
 | 
			
		||||
        FixedColumns.classes = {
 | 
			
		||||
            fixedLeft: 'dtfc-fixed-left',
 | 
			
		||||
            fixedRight: 'dtfc-fixed-right',
 | 
			
		||||
            leftBottomBlocker: 'dtfc-left-bottom-blocker',
 | 
			
		||||
            leftTopBlocker: 'dtfc-left-top-blocker',
 | 
			
		||||
            rightBottomBlocker: 'dtfc-right-bottom-blocker',
 | 
			
		||||
            rightTopBlocker: 'dtfc-right-top-blocker',
 | 
			
		||||
            tableFixedLeft: 'dtfc-has-left',
 | 
			
		||||
            tableFixedRight: 'dtfc-has-right'
 | 
			
		||||
        };
 | 
			
		||||
        FixedColumns.defaults = {
 | 
			
		||||
            i18n: {
 | 
			
		||||
                button: 'FixedColumns'
 | 
			
		||||
            },
 | 
			
		||||
            left: 1,
 | 
			
		||||
            right: 0
 | 
			
		||||
        };
 | 
			
		||||
        return FixedColumns;
 | 
			
		||||
    }());
 | 
			
		||||
 | 
			
		||||
    /*! FixedColumns 4.2.2
 | 
			
		||||
     * © SpryMedia Ltd - datatables.net/license
 | 
			
		||||
     */
 | 
			
		||||
    setJQuery($);
 | 
			
		||||
    $.fn.dataTable.FixedColumns = FixedColumns;
 | 
			
		||||
    $.fn.DataTable.FixedColumns = FixedColumns;
 | 
			
		||||
    var apiRegister = DataTable.Api.register;
 | 
			
		||||
    apiRegister('fixedColumns()', function () {
 | 
			
		||||
        return this;
 | 
			
		||||
    });
 | 
			
		||||
    apiRegister('fixedColumns().left()', function (newVal) {
 | 
			
		||||
        var ctx = this.context[0];
 | 
			
		||||
        if (newVal !== undefined) {
 | 
			
		||||
            ctx._fixedColumns.left(newVal);
 | 
			
		||||
            return this;
 | 
			
		||||
        }
 | 
			
		||||
        else {
 | 
			
		||||
            return ctx._fixedColumns.left();
 | 
			
		||||
        }
 | 
			
		||||
    });
 | 
			
		||||
    apiRegister('fixedColumns().right()', function (newVal) {
 | 
			
		||||
        var ctx = this.context[0];
 | 
			
		||||
        if (newVal !== undefined) {
 | 
			
		||||
            ctx._fixedColumns.right(newVal);
 | 
			
		||||
            return this;
 | 
			
		||||
        }
 | 
			
		||||
        else {
 | 
			
		||||
            return ctx._fixedColumns.right();
 | 
			
		||||
        }
 | 
			
		||||
    });
 | 
			
		||||
    DataTable.ext.buttons.fixedColumns = {
 | 
			
		||||
        action: function (e, dt, node, config) {
 | 
			
		||||
            if ($(node).attr('active')) {
 | 
			
		||||
                $(node).removeAttr('active').removeClass('active');
 | 
			
		||||
                dt.fixedColumns().left(0);
 | 
			
		||||
                dt.fixedColumns().right(0);
 | 
			
		||||
            }
 | 
			
		||||
            else {
 | 
			
		||||
                $(node).attr('active', 'true').addClass('active');
 | 
			
		||||
                dt.fixedColumns().left(config.config.left);
 | 
			
		||||
                dt.fixedColumns().right(config.config.right);
 | 
			
		||||
            }
 | 
			
		||||
        },
 | 
			
		||||
        config: {
 | 
			
		||||
            left: 1,
 | 
			
		||||
            right: 0
 | 
			
		||||
        },
 | 
			
		||||
        init: function (dt, node, config) {
 | 
			
		||||
            if (dt.settings()[0]._fixedColumns === undefined) {
 | 
			
		||||
                _init(dt.settings(), config);
 | 
			
		||||
            }
 | 
			
		||||
            $(node).attr('active', 'true').addClass('active');
 | 
			
		||||
            dt.button(node).text(config.text || dt.i18n('buttons.fixedColumns', dt.settings()[0]._fixedColumns.c.i18n.button));
 | 
			
		||||
        },
 | 
			
		||||
        text: null
 | 
			
		||||
    };
 | 
			
		||||
    function _init(settings, options) {
 | 
			
		||||
        if (options === void 0) { options = null; }
 | 
			
		||||
        var api = new DataTable.Api(settings);
 | 
			
		||||
        var opts = options
 | 
			
		||||
            ? options
 | 
			
		||||
            : api.init().fixedColumns || DataTable.defaults.fixedColumns;
 | 
			
		||||
        var fixedColumns = new FixedColumns(api, opts);
 | 
			
		||||
        return fixedColumns;
 | 
			
		||||
    }
 | 
			
		||||
    // Attach a listener to the document which listens for DataTables initialisation
 | 
			
		||||
    // events so we can automatically initialise
 | 
			
		||||
    $(document).on('plugin-init.dt', function (e, settings) {
 | 
			
		||||
        if (e.namespace !== 'dt') {
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
        if (settings.oInit.fixedColumns ||
 | 
			
		||||
            DataTable.defaults.fixedColumns) {
 | 
			
		||||
            if (!settings._fixedColumns) {
 | 
			
		||||
                _init(settings, null);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
})();
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
return DataTable;
 | 
			
		||||
}));
 | 
			
		||||
							
								
								
									
										4
									
								
								Frontend/lib/FixedColumns-4.2.2/js/dataTables.fixedColumns.min.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										58
									
								
								Frontend/lib/FixedColumns-4.2.2/js/fixedColumns.bootstrap.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,58 @@
 | 
			
		||||
/*! Bootstrap integration for DataTables' FixedColumns
 | 
			
		||||
 * © SpryMedia Ltd - datatables.net/license
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
(function( factory ){
 | 
			
		||||
	if ( typeof define === 'function' && define.amd ) {
 | 
			
		||||
		// AMD
 | 
			
		||||
		define( ['jquery', 'datatables.net-bs', 'datatables.net-fixedcolumns'], function ( $ ) {
 | 
			
		||||
			return factory( $, window, document );
 | 
			
		||||
		} );
 | 
			
		||||
	}
 | 
			
		||||
	else if ( typeof exports === 'object' ) {
 | 
			
		||||
		// CommonJS
 | 
			
		||||
		var jq = require('jquery');
 | 
			
		||||
		var cjsRequires = function (root, $) {
 | 
			
		||||
			if ( ! $.fn.dataTable ) {
 | 
			
		||||
				require('datatables.net-bs')(root, $);
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			if ( ! $.fn.dataTable.FixedColumns ) {
 | 
			
		||||
				require('datatables.net-fixedcolumns')(root, $);
 | 
			
		||||
			}
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		if (typeof window !== 'undefined') {
 | 
			
		||||
			module.exports = function (root, $) {
 | 
			
		||||
				if ( ! root ) {
 | 
			
		||||
					// CommonJS environments without a window global must pass a
 | 
			
		||||
					// root. This will give an error otherwise
 | 
			
		||||
					root = window;
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
				if ( ! $ ) {
 | 
			
		||||
					$ = jq( root );
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
				cjsRequires( root, $ );
 | 
			
		||||
				return factory( $, root, root.document );
 | 
			
		||||
			};
 | 
			
		||||
		}
 | 
			
		||||
		else {
 | 
			
		||||
			cjsRequires( window, jq );
 | 
			
		||||
			module.exports = factory( jq, window, window.document );
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	else {
 | 
			
		||||
		// Browser
 | 
			
		||||
		factory( jQuery, window, document );
 | 
			
		||||
	}
 | 
			
		||||
}(function( $, window, document, undefined ) {
 | 
			
		||||
'use strict';
 | 
			
		||||
var DataTable = $.fn.dataTable;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
return DataTable;
 | 
			
		||||
}));
 | 
			
		||||
							
								
								
									
										4
									
								
								Frontend/lib/FixedColumns-4.2.2/js/fixedColumns.bootstrap.min.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,4 @@
 | 
			
		||||
/*! Bootstrap integration for DataTables' FixedColumns
 | 
			
		||||
 * © SpryMedia Ltd - datatables.net/license
 | 
			
		||||
 */
 | 
			
		||||
!function(t){var d,o;"function"==typeof define&&define.amd?define(["jquery","datatables.net-bs","datatables.net-fixedcolumns"],function(e){return t(e,window,document)}):"object"==typeof exports?(d=require("jquery"),o=function(e,n){n.fn.dataTable||require("datatables.net-bs")(e,n),n.fn.dataTable.FixedColumns||require("datatables.net-fixedcolumns")(e,n)},"undefined"!=typeof window?module.exports=function(e,n){return e=e||window,n=n||d(e),o(e,n),t(n,0,e.document)}:(o(window,d),module.exports=t(d,window,window.document))):t(jQuery,window,document)}(function(e,n,t,d){"use strict";return e.fn.dataTable});
 | 
			
		||||
@ -0,0 +1,58 @@
 | 
			
		||||
/*! Bootstrap 4 integration for DataTables' FixedColumns
 | 
			
		||||
 * © SpryMedia Ltd - datatables.net/license
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
(function( factory ){
 | 
			
		||||
	if ( typeof define === 'function' && define.amd ) {
 | 
			
		||||
		// AMD
 | 
			
		||||
		define( ['jquery', 'datatables.net-bs4', 'datatables.net-fixedcolumns'], function ( $ ) {
 | 
			
		||||
			return factory( $, window, document );
 | 
			
		||||
		} );
 | 
			
		||||
	}
 | 
			
		||||
	else if ( typeof exports === 'object' ) {
 | 
			
		||||
		// CommonJS
 | 
			
		||||
		var jq = require('jquery');
 | 
			
		||||
		var cjsRequires = function (root, $) {
 | 
			
		||||
			if ( ! $.fn.dataTable ) {
 | 
			
		||||
				require('datatables.net-bs4')(root, $);
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			if ( ! $.fn.dataTable.FixedColumns ) {
 | 
			
		||||
				require('datatables.net-fixedcolumns')(root, $);
 | 
			
		||||
			}
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		if (typeof window !== 'undefined') {
 | 
			
		||||
			module.exports = function (root, $) {
 | 
			
		||||
				if ( ! root ) {
 | 
			
		||||
					// CommonJS environments without a window global must pass a
 | 
			
		||||
					// root. This will give an error otherwise
 | 
			
		||||
					root = window;
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
				if ( ! $ ) {
 | 
			
		||||
					$ = jq( root );
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
				cjsRequires( root, $ );
 | 
			
		||||
				return factory( $, root, root.document );
 | 
			
		||||
			};
 | 
			
		||||
		}
 | 
			
		||||
		else {
 | 
			
		||||
			cjsRequires( window, jq );
 | 
			
		||||
			module.exports = factory( jq, window, window.document );
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	else {
 | 
			
		||||
		// Browser
 | 
			
		||||
		factory( jQuery, window, document );
 | 
			
		||||
	}
 | 
			
		||||
}(function( $, window, document, undefined ) {
 | 
			
		||||
'use strict';
 | 
			
		||||
var DataTable = $.fn.dataTable;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
return DataTable;
 | 
			
		||||
}));
 | 
			
		||||
							
								
								
									
										4
									
								
								Frontend/lib/FixedColumns-4.2.2/js/fixedColumns.bootstrap4.min.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,4 @@
 | 
			
		||||
/*! Bootstrap 4 integration for DataTables' FixedColumns
 | 
			
		||||
 * © SpryMedia Ltd - datatables.net/license
 | 
			
		||||
 */
 | 
			
		||||
!function(t){var d,o;"function"==typeof define&&define.amd?define(["jquery","datatables.net-bs4","datatables.net-fixedcolumns"],function(e){return t(e,window,document)}):"object"==typeof exports?(d=require("jquery"),o=function(e,n){n.fn.dataTable||require("datatables.net-bs4")(e,n),n.fn.dataTable.FixedColumns||require("datatables.net-fixedcolumns")(e,n)},"undefined"!=typeof window?module.exports=function(e,n){return e=e||window,n=n||d(e),o(e,n),t(n,0,e.document)}:(o(window,d),module.exports=t(d,window,window.document))):t(jQuery,window,document)}(function(e,n,t,d){"use strict";return e.fn.dataTable});
 | 
			
		||||
@ -0,0 +1,58 @@
 | 
			
		||||
/*! Bootstrap 5 integration for DataTables' FixedColumns
 | 
			
		||||
 * © SpryMedia Ltd - datatables.net/license
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
(function( factory ){
 | 
			
		||||
	if ( typeof define === 'function' && define.amd ) {
 | 
			
		||||
		// AMD
 | 
			
		||||
		define( ['jquery', 'datatables.net-bs5', 'datatables.net-fixedcolumns'], function ( $ ) {
 | 
			
		||||
			return factory( $, window, document );
 | 
			
		||||
		} );
 | 
			
		||||
	}
 | 
			
		||||
	else if ( typeof exports === 'object' ) {
 | 
			
		||||
		// CommonJS
 | 
			
		||||
		var jq = require('jquery');
 | 
			
		||||
		var cjsRequires = function (root, $) {
 | 
			
		||||
			if ( ! $.fn.dataTable ) {
 | 
			
		||||
				require('datatables.net-bs5')(root, $);
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			if ( ! $.fn.dataTable.FixedColumns ) {
 | 
			
		||||
				require('datatables.net-fixedcolumns')(root, $);
 | 
			
		||||
			}
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		if (typeof window !== 'undefined') {
 | 
			
		||||
			module.exports = function (root, $) {
 | 
			
		||||
				if ( ! root ) {
 | 
			
		||||
					// CommonJS environments without a window global must pass a
 | 
			
		||||
					// root. This will give an error otherwise
 | 
			
		||||
					root = window;
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
				if ( ! $ ) {
 | 
			
		||||
					$ = jq( root );
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
				cjsRequires( root, $ );
 | 
			
		||||
				return factory( $, root, root.document );
 | 
			
		||||
			};
 | 
			
		||||
		}
 | 
			
		||||
		else {
 | 
			
		||||
			cjsRequires( window, jq );
 | 
			
		||||
			module.exports = factory( jq, window, window.document );
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	else {
 | 
			
		||||
		// Browser
 | 
			
		||||
		factory( jQuery, window, document );
 | 
			
		||||
	}
 | 
			
		||||
}(function( $, window, document, undefined ) {
 | 
			
		||||
'use strict';
 | 
			
		||||
var DataTable = $.fn.dataTable;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
return DataTable;
 | 
			
		||||
}));
 | 
			
		||||
							
								
								
									
										4
									
								
								Frontend/lib/FixedColumns-4.2.2/js/fixedColumns.bootstrap5.min.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,4 @@
 | 
			
		||||
/*! Bootstrap 5 integration for DataTables' FixedColumns
 | 
			
		||||
 * © SpryMedia Ltd - datatables.net/license
 | 
			
		||||
 */
 | 
			
		||||
!function(t){var d,o;"function"==typeof define&&define.amd?define(["jquery","datatables.net-bs5","datatables.net-fixedcolumns"],function(e){return t(e,window,document)}):"object"==typeof exports?(d=require("jquery"),o=function(e,n){n.fn.dataTable||require("datatables.net-bs5")(e,n),n.fn.dataTable.FixedColumns||require("datatables.net-fixedcolumns")(e,n)},"undefined"!=typeof window?module.exports=function(e,n){return e=e||window,n=n||d(e),o(e,n),t(n,0,e.document)}:(o(window,d),module.exports=t(d,window,window.document))):t(jQuery,window,document)}(function(e,n,t,d){"use strict";return e.fn.dataTable});
 | 
			
		||||
							
								
								
									
										58
									
								
								Frontend/lib/FixedColumns-4.2.2/js/fixedColumns.bulma.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,58 @@
 | 
			
		||||
/*! Bulma integration for DataTables' FixedColumns
 | 
			
		||||
 * © SpryMedia Ltd - datatables.net/license
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
(function( factory ){
 | 
			
		||||
	if ( typeof define === 'function' && define.amd ) {
 | 
			
		||||
		// AMD
 | 
			
		||||
		define( ['jquery', 'datatables.net-bm', 'datatables.net-fixedcolumns'], function ( $ ) {
 | 
			
		||||
			return factory( $, window, document );
 | 
			
		||||
		} );
 | 
			
		||||
	}
 | 
			
		||||
	else if ( typeof exports === 'object' ) {
 | 
			
		||||
		// CommonJS
 | 
			
		||||
		var jq = require('jquery');
 | 
			
		||||
		var cjsRequires = function (root, $) {
 | 
			
		||||
			if ( ! $.fn.dataTable ) {
 | 
			
		||||
				require('datatables.net-bm')(root, $);
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			if ( ! $.fn.dataTable.FixedColumns ) {
 | 
			
		||||
				require('datatables.net-fixedcolumns')(root, $);
 | 
			
		||||
			}
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		if (typeof window !== 'undefined') {
 | 
			
		||||
			module.exports = function (root, $) {
 | 
			
		||||
				if ( ! root ) {
 | 
			
		||||
					// CommonJS environments without a window global must pass a
 | 
			
		||||
					// root. This will give an error otherwise
 | 
			
		||||
					root = window;
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
				if ( ! $ ) {
 | 
			
		||||
					$ = jq( root );
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
				cjsRequires( root, $ );
 | 
			
		||||
				return factory( $, root, root.document );
 | 
			
		||||
			};
 | 
			
		||||
		}
 | 
			
		||||
		else {
 | 
			
		||||
			cjsRequires( window, jq );
 | 
			
		||||
			module.exports = factory( jq, window, window.document );
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	else {
 | 
			
		||||
		// Browser
 | 
			
		||||
		factory( jQuery, window, document );
 | 
			
		||||
	}
 | 
			
		||||
}(function( $, window, document, undefined ) {
 | 
			
		||||
'use strict';
 | 
			
		||||
var DataTable = $.fn.dataTable;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
return DataTable;
 | 
			
		||||
}));
 | 
			
		||||
							
								
								
									
										4
									
								
								Frontend/lib/FixedColumns-4.2.2/js/fixedColumns.bulma.min.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,4 @@
 | 
			
		||||
/*! Bulma integration for DataTables' FixedColumns
 | 
			
		||||
 * © SpryMedia Ltd - datatables.net/license
 | 
			
		||||
 */
 | 
			
		||||
!function(t){var d,o;"function"==typeof define&&define.amd?define(["jquery","datatables.net-bm","datatables.net-fixedcolumns"],function(e){return t(e,window,document)}):"object"==typeof exports?(d=require("jquery"),o=function(e,n){n.fn.dataTable||require("datatables.net-bm")(e,n),n.fn.dataTable.FixedColumns||require("datatables.net-fixedcolumns")(e,n)},"undefined"!=typeof window?module.exports=function(e,n){return e=e||window,n=n||d(e),o(e,n),t(n,0,e.document)}:(o(window,d),module.exports=t(d,window,window.document))):t(jQuery,window,document)}(function(e,n,t,d){"use strict";return e.fn.dataTable});
 | 
			
		||||
@ -0,0 +1,58 @@
 | 
			
		||||
/*! DataTables integration for DataTables' FixedColumns
 | 
			
		||||
 * © SpryMedia Ltd - datatables.net/license
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
(function( factory ){
 | 
			
		||||
	if ( typeof define === 'function' && define.amd ) {
 | 
			
		||||
		// AMD
 | 
			
		||||
		define( ['jquery', 'datatables.net-dt', 'datatables.net-fixedcolumns'], function ( $ ) {
 | 
			
		||||
			return factory( $, window, document );
 | 
			
		||||
		} );
 | 
			
		||||
	}
 | 
			
		||||
	else if ( typeof exports === 'object' ) {
 | 
			
		||||
		// CommonJS
 | 
			
		||||
		var jq = require('jquery');
 | 
			
		||||
		var cjsRequires = function (root, $) {
 | 
			
		||||
			if ( ! $.fn.dataTable ) {
 | 
			
		||||
				require('datatables.net-dt')(root, $);
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			if ( ! $.fn.dataTable.FixedColumns ) {
 | 
			
		||||
				require('datatables.net-fixedcolumns')(root, $);
 | 
			
		||||
			}
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		if (typeof window !== 'undefined') {
 | 
			
		||||
			module.exports = function (root, $) {
 | 
			
		||||
				if ( ! root ) {
 | 
			
		||||
					// CommonJS environments without a window global must pass a
 | 
			
		||||
					// root. This will give an error otherwise
 | 
			
		||||
					root = window;
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
				if ( ! $ ) {
 | 
			
		||||
					$ = jq( root );
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
				cjsRequires( root, $ );
 | 
			
		||||
				return factory( $, root, root.document );
 | 
			
		||||
			};
 | 
			
		||||
		}
 | 
			
		||||
		else {
 | 
			
		||||
			cjsRequires( window, jq );
 | 
			
		||||
			module.exports = factory( jq, window, window.document );
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	else {
 | 
			
		||||
		// Browser
 | 
			
		||||
		factory( jQuery, window, document );
 | 
			
		||||
	}
 | 
			
		||||
}(function( $, window, document, undefined ) {
 | 
			
		||||
'use strict';
 | 
			
		||||
var DataTable = $.fn.dataTable;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
return DataTable;
 | 
			
		||||
}));
 | 
			
		||||
							
								
								
									
										4
									
								
								Frontend/lib/FixedColumns-4.2.2/js/fixedColumns.dataTables.min.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,4 @@
 | 
			
		||||
/*! DataTables integration for DataTables' FixedColumns
 | 
			
		||||
 * © SpryMedia Ltd - datatables.net/license
 | 
			
		||||
 */
 | 
			
		||||
!function(t){var d,o;"function"==typeof define&&define.amd?define(["jquery","datatables.net-dt","datatables.net-fixedcolumns"],function(e){return t(e,window,document)}):"object"==typeof exports?(d=require("jquery"),o=function(e,n){n.fn.dataTable||require("datatables.net-dt")(e,n),n.fn.dataTable.FixedColumns||require("datatables.net-fixedcolumns")(e,n)},"undefined"!=typeof window?module.exports=function(e,n){return e=e||window,n=n||d(e),o(e,n),t(n,0,e.document)}:(o(window,d),module.exports=t(d,window,window.document))):t(jQuery,window,document)}(function(e,n,t,d){"use strict";return e.fn.dataTable});
 | 
			
		||||
@ -0,0 +1,58 @@
 | 
			
		||||
/*! Foundation integration for DataTables' FixedColumns
 | 
			
		||||
 * © SpryMedia Ltd - datatables.net/license
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
(function( factory ){
 | 
			
		||||
	if ( typeof define === 'function' && define.amd ) {
 | 
			
		||||
		// AMD
 | 
			
		||||
		define( ['jquery', 'datatables.net-zf', 'datatables.net-fixedcolumns'], function ( $ ) {
 | 
			
		||||
			return factory( $, window, document );
 | 
			
		||||
		} );
 | 
			
		||||
	}
 | 
			
		||||
	else if ( typeof exports === 'object' ) {
 | 
			
		||||
		// CommonJS
 | 
			
		||||
		var jq = require('jquery');
 | 
			
		||||
		var cjsRequires = function (root, $) {
 | 
			
		||||
			if ( ! $.fn.dataTable ) {
 | 
			
		||||
				require('datatables.net-zf')(root, $);
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			if ( ! $.fn.dataTable.FixedColumns ) {
 | 
			
		||||
				require('datatables.net-fixedcolumns')(root, $);
 | 
			
		||||
			}
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		if (typeof window !== 'undefined') {
 | 
			
		||||
			module.exports = function (root, $) {
 | 
			
		||||
				if ( ! root ) {
 | 
			
		||||
					// CommonJS environments without a window global must pass a
 | 
			
		||||
					// root. This will give an error otherwise
 | 
			
		||||
					root = window;
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
				if ( ! $ ) {
 | 
			
		||||
					$ = jq( root );
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
				cjsRequires( root, $ );
 | 
			
		||||
				return factory( $, root, root.document );
 | 
			
		||||
			};
 | 
			
		||||
		}
 | 
			
		||||
		else {
 | 
			
		||||
			cjsRequires( window, jq );
 | 
			
		||||
			module.exports = factory( jq, window, window.document );
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	else {
 | 
			
		||||
		// Browser
 | 
			
		||||
		factory( jQuery, window, document );
 | 
			
		||||
	}
 | 
			
		||||
}(function( $, window, document, undefined ) {
 | 
			
		||||
'use strict';
 | 
			
		||||
var DataTable = $.fn.dataTable;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
return DataTable;
 | 
			
		||||
}));
 | 
			
		||||
							
								
								
									
										4
									
								
								Frontend/lib/FixedColumns-4.2.2/js/fixedColumns.foundation.min.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,4 @@
 | 
			
		||||
/*! Foundation integration for DataTables' FixedColumns
 | 
			
		||||
 * © SpryMedia Ltd - datatables.net/license
 | 
			
		||||
 */
 | 
			
		||||
!function(t){var d,o;"function"==typeof define&&define.amd?define(["jquery","datatables.net-zf","datatables.net-fixedcolumns"],function(e){return t(e,window,document)}):"object"==typeof exports?(d=require("jquery"),o=function(e,n){n.fn.dataTable||require("datatables.net-zf")(e,n),n.fn.dataTable.FixedColumns||require("datatables.net-fixedcolumns")(e,n)},"undefined"!=typeof window?module.exports=function(e,n){return e=e||window,n=n||d(e),o(e,n),t(n,0,e.document)}:(o(window,d),module.exports=t(d,window,window.document))):t(jQuery,window,document)}(function(e,n,t,d){"use strict";return e.fn.dataTable});
 | 
			
		||||
							
								
								
									
										58
									
								
								Frontend/lib/FixedColumns-4.2.2/js/fixedColumns.jqueryui.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,58 @@
 | 
			
		||||
/*! jquery ui integration for DataTables' FixedColumns
 | 
			
		||||
 * © SpryMedia Ltd - datatables.net/license
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
(function( factory ){
 | 
			
		||||
	if ( typeof define === 'function' && define.amd ) {
 | 
			
		||||
		// AMD
 | 
			
		||||
		define( ['jquery', 'datatables.net-jqui', 'datatables.net-fixedcolumns'], function ( $ ) {
 | 
			
		||||
			return factory( $, window, document );
 | 
			
		||||
		} );
 | 
			
		||||
	}
 | 
			
		||||
	else if ( typeof exports === 'object' ) {
 | 
			
		||||
		// CommonJS
 | 
			
		||||
		var jq = require('jquery');
 | 
			
		||||
		var cjsRequires = function (root, $) {
 | 
			
		||||
			if ( ! $.fn.dataTable ) {
 | 
			
		||||
				require('datatables.net-jqui')(root, $);
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			if ( ! $.fn.dataTable.FixedColumns ) {
 | 
			
		||||
				require('datatables.net-fixedcolumns')(root, $);
 | 
			
		||||
			}
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		if (typeof window !== 'undefined') {
 | 
			
		||||
			module.exports = function (root, $) {
 | 
			
		||||
				if ( ! root ) {
 | 
			
		||||
					// CommonJS environments without a window global must pass a
 | 
			
		||||
					// root. This will give an error otherwise
 | 
			
		||||
					root = window;
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
				if ( ! $ ) {
 | 
			
		||||
					$ = jq( root );
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
				cjsRequires( root, $ );
 | 
			
		||||
				return factory( $, root, root.document );
 | 
			
		||||
			};
 | 
			
		||||
		}
 | 
			
		||||
		else {
 | 
			
		||||
			cjsRequires( window, jq );
 | 
			
		||||
			module.exports = factory( jq, window, window.document );
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	else {
 | 
			
		||||
		// Browser
 | 
			
		||||
		factory( jQuery, window, document );
 | 
			
		||||
	}
 | 
			
		||||
}(function( $, window, document, undefined ) {
 | 
			
		||||
'use strict';
 | 
			
		||||
var DataTable = $.fn.dataTable;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
return DataTable;
 | 
			
		||||
}));
 | 
			
		||||
							
								
								
									
										4
									
								
								Frontend/lib/FixedColumns-4.2.2/js/fixedColumns.jqueryui.min.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,4 @@
 | 
			
		||||
/*! jquery ui integration for DataTables' FixedColumns
 | 
			
		||||
 * © SpryMedia Ltd - datatables.net/license
 | 
			
		||||
 */
 | 
			
		||||
!function(t){var d,o;"function"==typeof define&&define.amd?define(["jquery","datatables.net-jqui","datatables.net-fixedcolumns"],function(e){return t(e,window,document)}):"object"==typeof exports?(d=require("jquery"),o=function(e,n){n.fn.dataTable||require("datatables.net-jqui")(e,n),n.fn.dataTable.FixedColumns||require("datatables.net-fixedcolumns")(e,n)},"undefined"!=typeof window?module.exports=function(e,n){return e=e||window,n=n||d(e),o(e,n),t(n,0,e.document)}:(o(window,d),module.exports=t(d,window,window.document))):t(jQuery,window,document)}(function(e,n,t,d){"use strict";return e.fn.dataTable});
 | 
			
		||||
@ -0,0 +1,58 @@
 | 
			
		||||
/*! Semantic ui integration for DataTables' FixedColumns
 | 
			
		||||
 * © SpryMedia Ltd - datatables.net/license
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
(function( factory ){
 | 
			
		||||
	if ( typeof define === 'function' && define.amd ) {
 | 
			
		||||
		// AMD
 | 
			
		||||
		define( ['jquery', 'datatables.net-se', 'datatables.net-fixedcolumns'], function ( $ ) {
 | 
			
		||||
			return factory( $, window, document );
 | 
			
		||||
		} );
 | 
			
		||||
	}
 | 
			
		||||
	else if ( typeof exports === 'object' ) {
 | 
			
		||||
		// CommonJS
 | 
			
		||||
		var jq = require('jquery');
 | 
			
		||||
		var cjsRequires = function (root, $) {
 | 
			
		||||
			if ( ! $.fn.dataTable ) {
 | 
			
		||||
				require('datatables.net-se')(root, $);
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			if ( ! $.fn.dataTable.FixedColumns ) {
 | 
			
		||||
				require('datatables.net-fixedcolumns')(root, $);
 | 
			
		||||
			}
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		if (typeof window !== 'undefined') {
 | 
			
		||||
			module.exports = function (root, $) {
 | 
			
		||||
				if ( ! root ) {
 | 
			
		||||
					// CommonJS environments without a window global must pass a
 | 
			
		||||
					// root. This will give an error otherwise
 | 
			
		||||
					root = window;
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
				if ( ! $ ) {
 | 
			
		||||
					$ = jq( root );
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
				cjsRequires( root, $ );
 | 
			
		||||
				return factory( $, root, root.document );
 | 
			
		||||
			};
 | 
			
		||||
		}
 | 
			
		||||
		else {
 | 
			
		||||
			cjsRequires( window, jq );
 | 
			
		||||
			module.exports = factory( jq, window, window.document );
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	else {
 | 
			
		||||
		// Browser
 | 
			
		||||
		factory( jQuery, window, document );
 | 
			
		||||
	}
 | 
			
		||||
}(function( $, window, document, undefined ) {
 | 
			
		||||
'use strict';
 | 
			
		||||
var DataTable = $.fn.dataTable;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
return DataTable;
 | 
			
		||||
}));
 | 
			
		||||
							
								
								
									
										4
									
								
								Frontend/lib/FixedColumns-4.2.2/js/fixedColumns.semanticui.min.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,4 @@
 | 
			
		||||
/*! Semantic ui integration for DataTables' FixedColumns
 | 
			
		||||
 * © SpryMedia Ltd - datatables.net/license
 | 
			
		||||
 */
 | 
			
		||||
!function(t){var d,o;"function"==typeof define&&define.amd?define(["jquery","datatables.net-se","datatables.net-fixedcolumns"],function(e){return t(e,window,document)}):"object"==typeof exports?(d=require("jquery"),o=function(e,n){n.fn.dataTable||require("datatables.net-se")(e,n),n.fn.dataTable.FixedColumns||require("datatables.net-fixedcolumns")(e,n)},"undefined"!=typeof window?module.exports=function(e,n){return e=e||window,n=n||d(e),o(e,n),t(n,0,e.document)}:(o(window,d),module.exports=t(d,window,window.document))):t(jQuery,window,document)}(function(e,n,t,d){"use strict";return e.fn.dataTable});
 | 
			
		||||
							
								
								
									
										7
									
								
								Frontend/lib/bootstrap-datepicker/bootstrap-datepicker.min.css
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										8
									
								
								Frontend/lib/bootstrap-datepicker/bootstrap-datepicker.min.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										1
									
								
								Frontend/lib/bootstrap-datepicker/bootstrap-datepicker.zh-TW.min.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1 @@
 | 
			
		||||
!function(a){a.fn.datepicker.dates["zh-TW"]={days:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],daysShort:["週日","週一","週二","週三","週四","週五","週六"],daysMin:["日","一","二","三","四","五","六"],months:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],monthsShort:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],today:"今天",format:"yyyy年mm月dd日",weekStart:1,clear:"清除"}}(jQuery);
 | 
			
		||||
							
								
								
									
										1
									
								
								Frontend/lib/chart.js_4.1.2/chart.min.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										14
									
								
								Frontend/lib/chart.js_4.1.2/chart.umd.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										1
									
								
								Frontend/lib/chart.js_4.1.2/chart.umd.js.map
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,416 @@
 | 
			
		||||
@charset "UTF-8";
 | 
			
		||||
:root {
 | 
			
		||||
  --dt-row-selected: 0, 136, 204;
 | 
			
		||||
  --dt-row-selected-text: 255, 255, 255;
 | 
			
		||||
  --dt-row-selected-link: 9, 10, 11;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
table.dataTable td.dt-control {
 | 
			
		||||
  text-align: center;
 | 
			
		||||
  cursor: pointer;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable td.dt-control:before {
 | 
			
		||||
  height: 1em;
 | 
			
		||||
  width: 1em;
 | 
			
		||||
  margin-top: -9px;
 | 
			
		||||
  display: inline-block;
 | 
			
		||||
  color: white;
 | 
			
		||||
  border: 0.15em solid white;
 | 
			
		||||
  border-radius: 1em;
 | 
			
		||||
  box-shadow: 0 0 0.2em #444;
 | 
			
		||||
  box-sizing: content-box;
 | 
			
		||||
  text-align: center;
 | 
			
		||||
  text-indent: 0 !important;
 | 
			
		||||
  font-family: "Courier New", Courier, monospace;
 | 
			
		||||
  line-height: 1em;
 | 
			
		||||
  content: "+";
 | 
			
		||||
  background-color: #31b131;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable tr.dt-hasChild td.dt-control:before {
 | 
			
		||||
  content: "-";
 | 
			
		||||
  background-color: #d33333;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
table.dataTable thead > tr > th.sorting, table.dataTable thead > tr > th.sorting_asc, table.dataTable thead > tr > th.sorting_desc, table.dataTable thead > tr > th.sorting_asc_disabled, table.dataTable thead > tr > th.sorting_desc_disabled,
 | 
			
		||||
table.dataTable thead > tr > td.sorting,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_asc,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_desc,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_asc_disabled,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_desc_disabled {
 | 
			
		||||
  cursor: pointer;
 | 
			
		||||
  position: relative;
 | 
			
		||||
  padding-right: 26px;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable thead > tr > th.sorting:before, table.dataTable thead > tr > th.sorting:after, table.dataTable thead > tr > th.sorting_asc:before, table.dataTable thead > tr > th.sorting_asc:after, table.dataTable thead > tr > th.sorting_desc:before, table.dataTable thead > tr > th.sorting_desc:after, table.dataTable thead > tr > th.sorting_asc_disabled:before, table.dataTable thead > tr > th.sorting_asc_disabled:after, table.dataTable thead > tr > th.sorting_desc_disabled:before, table.dataTable thead > tr > th.sorting_desc_disabled:after,
 | 
			
		||||
table.dataTable thead > tr > td.sorting:before,
 | 
			
		||||
table.dataTable thead > tr > td.sorting:after,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_asc:before,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_asc:after,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_desc:before,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_desc:after,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_asc_disabled:before,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_asc_disabled:after,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_desc_disabled:before,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_desc_disabled:after {
 | 
			
		||||
  position: absolute;
 | 
			
		||||
  display: block;
 | 
			
		||||
  opacity: 0.125;
 | 
			
		||||
  right: 10px;
 | 
			
		||||
  line-height: 9px;
 | 
			
		||||
  font-size: 0.8em;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable thead > tr > th.sorting:before, table.dataTable thead > tr > th.sorting_asc:before, table.dataTable thead > tr > th.sorting_desc:before, table.dataTable thead > tr > th.sorting_asc_disabled:before, table.dataTable thead > tr > th.sorting_desc_disabled:before,
 | 
			
		||||
table.dataTable thead > tr > td.sorting:before,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_asc:before,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_desc:before,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_asc_disabled:before,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_desc_disabled:before {
 | 
			
		||||
  bottom: 50%;
 | 
			
		||||
  content: "▲";
 | 
			
		||||
  content: "▲"/"";
 | 
			
		||||
}
 | 
			
		||||
table.dataTable thead > tr > th.sorting:after, table.dataTable thead > tr > th.sorting_asc:after, table.dataTable thead > tr > th.sorting_desc:after, table.dataTable thead > tr > th.sorting_asc_disabled:after, table.dataTable thead > tr > th.sorting_desc_disabled:after,
 | 
			
		||||
table.dataTable thead > tr > td.sorting:after,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_asc:after,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_desc:after,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_asc_disabled:after,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_desc_disabled:after {
 | 
			
		||||
  top: 50%;
 | 
			
		||||
  content: "▼";
 | 
			
		||||
  content: "▼"/"";
 | 
			
		||||
}
 | 
			
		||||
table.dataTable thead > tr > th.sorting_asc:before, table.dataTable thead > tr > th.sorting_desc:after,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_asc:before,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_desc:after {
 | 
			
		||||
  opacity: 0.6;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable thead > tr > th.sorting_desc_disabled:after, table.dataTable thead > tr > th.sorting_asc_disabled:before,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_desc_disabled:after,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_asc_disabled:before {
 | 
			
		||||
  display: none;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable thead > tr > th:active,
 | 
			
		||||
table.dataTable thead > tr > td:active {
 | 
			
		||||
  outline: none;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
div.dataTables_scrollBody > table.dataTable > thead > tr > th:before, div.dataTables_scrollBody > table.dataTable > thead > tr > th:after,
 | 
			
		||||
div.dataTables_scrollBody > table.dataTable > thead > tr > td:before,
 | 
			
		||||
div.dataTables_scrollBody > table.dataTable > thead > tr > td:after {
 | 
			
		||||
  display: none;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
div.dataTables_processing {
 | 
			
		||||
  position: absolute;
 | 
			
		||||
  top: 50%;
 | 
			
		||||
  left: 50%;
 | 
			
		||||
  width: 200px;
 | 
			
		||||
  margin-left: -100px;
 | 
			
		||||
  margin-top: -26px;
 | 
			
		||||
  text-align: center;
 | 
			
		||||
  padding: 2px;
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_processing > div:last-child {
 | 
			
		||||
  position: relative;
 | 
			
		||||
  width: 80px;
 | 
			
		||||
  height: 15px;
 | 
			
		||||
  margin: 1em auto;
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_processing > div:last-child > div {
 | 
			
		||||
  position: absolute;
 | 
			
		||||
  top: 0;
 | 
			
		||||
  width: 13px;
 | 
			
		||||
  height: 13px;
 | 
			
		||||
  border-radius: 50%;
 | 
			
		||||
  background: rgb(0, 136, 204);
 | 
			
		||||
  background: rgb(var(--dt-row-selected));
 | 
			
		||||
  animation-timing-function: cubic-bezier(0, 1, 1, 0);
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_processing > div:last-child > div:nth-child(1) {
 | 
			
		||||
  left: 8px;
 | 
			
		||||
  animation: datatables-loader-1 0.6s infinite;
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_processing > div:last-child > div:nth-child(2) {
 | 
			
		||||
  left: 8px;
 | 
			
		||||
  animation: datatables-loader-2 0.6s infinite;
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_processing > div:last-child > div:nth-child(3) {
 | 
			
		||||
  left: 32px;
 | 
			
		||||
  animation: datatables-loader-2 0.6s infinite;
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_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.dt-left,
 | 
			
		||||
table.dataTable td.dt-left {
 | 
			
		||||
  text-align: left;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable th.dt-center,
 | 
			
		||||
table.dataTable td.dt-center,
 | 
			
		||||
table.dataTable td.dataTables_empty {
 | 
			
		||||
  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 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.dataTable {
 | 
			
		||||
  clear: both;
 | 
			
		||||
  margin-top: 6px !important;
 | 
			
		||||
  margin-bottom: 6px !important;
 | 
			
		||||
  max-width: none !important;
 | 
			
		||||
  border-collapse: separate !important;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable td,
 | 
			
		||||
table.dataTable th {
 | 
			
		||||
  -webkit-box-sizing: content-box;
 | 
			
		||||
  box-sizing: content-box;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable td.dataTables_empty,
 | 
			
		||||
table.dataTable th.dataTables_empty {
 | 
			
		||||
  text-align: center;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable.nowrap th,
 | 
			
		||||
table.dataTable.nowrap td {
 | 
			
		||||
  white-space: nowrap;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable.table-striped > tbody > tr:nth-of-type(2n+1) {
 | 
			
		||||
  background-color: transparent;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable > tbody > tr {
 | 
			
		||||
  background-color: transparent;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable > tbody > tr.selected > * {
 | 
			
		||||
  box-shadow: inset 0 0 0 9999px rgb(0, 136, 204);
 | 
			
		||||
  box-shadow: inset 0 0 0 9999px rgb(var(--dt-row-selected));
 | 
			
		||||
  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.table-striped > tbody > tr.odd > * {
 | 
			
		||||
  box-shadow: inset 0 0 0 9999px rgba(0, 0, 0, 0.023);
 | 
			
		||||
}
 | 
			
		||||
table.dataTable.table-striped > tbody > tr.odd.selected > * {
 | 
			
		||||
  box-shadow: inset 0 0 0 9999px rgba(0, 136, 204, 0.923);
 | 
			
		||||
  box-shadow: inset 0 0 0 9999px rgba(var(--dt-row-selected), 0.923);
 | 
			
		||||
}
 | 
			
		||||
table.dataTable.table-hover > tbody > tr:hover > * {
 | 
			
		||||
  box-shadow: inset 0 0 0 9999px rgba(0, 0, 0, 0.075);
 | 
			
		||||
}
 | 
			
		||||
table.dataTable.table-hover > tbody > tr.selected:hover > * {
 | 
			
		||||
  box-shadow: inset 0 0 0 9999px rgba(0, 136, 204, 0.975);
 | 
			
		||||
  box-shadow: inset 0 0 0 9999px rgba(var(--dt-row-selected), 0.975);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
div.dataTables_wrapper div.dataTables_length label {
 | 
			
		||||
  font-weight: normal;
 | 
			
		||||
  text-align: left;
 | 
			
		||||
  white-space: nowrap;
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_wrapper div.dataTables_length select {
 | 
			
		||||
  width: 75px;
 | 
			
		||||
  display: inline-block;
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_wrapper div.dataTables_filter {
 | 
			
		||||
  text-align: right;
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_wrapper div.dataTables_filter label {
 | 
			
		||||
  font-weight: normal;
 | 
			
		||||
  white-space: nowrap;
 | 
			
		||||
  text-align: left;
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_wrapper div.dataTables_filter input {
 | 
			
		||||
  margin-left: 0.5em;
 | 
			
		||||
  display: inline-block;
 | 
			
		||||
  width: auto;
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_wrapper div.dataTables_info {
 | 
			
		||||
  padding-top: 8px;
 | 
			
		||||
  white-space: nowrap;
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_wrapper div.dataTables_paginate {
 | 
			
		||||
  margin: 0;
 | 
			
		||||
  white-space: nowrap;
 | 
			
		||||
  text-align: right;
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_wrapper div.dataTables_paginate ul.pagination {
 | 
			
		||||
  margin: 2px 0;
 | 
			
		||||
  white-space: nowrap;
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_wrapper div.dataTables_processing {
 | 
			
		||||
  position: absolute;
 | 
			
		||||
  top: 50%;
 | 
			
		||||
  left: 50%;
 | 
			
		||||
  width: 200px;
 | 
			
		||||
  margin-left: -100px;
 | 
			
		||||
  margin-top: -26px;
 | 
			
		||||
  text-align: center;
 | 
			
		||||
  padding: 1em 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
div.dataTables_scrollHead table.dataTable {
 | 
			
		||||
  margin-bottom: 0 !important;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
div.dataTables_scrollBody > table {
 | 
			
		||||
  border-top: none;
 | 
			
		||||
  margin-top: 0 !important;
 | 
			
		||||
  margin-bottom: 0 !important;
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_scrollBody > table > thead .sorting:after,
 | 
			
		||||
div.dataTables_scrollBody > table > thead .sorting_asc:after,
 | 
			
		||||
div.dataTables_scrollBody > table > thead .sorting_desc:after {
 | 
			
		||||
  display: none;
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_scrollBody > table > tbody > tr:first-child > th,
 | 
			
		||||
div.dataTables_scrollBody > table > tbody > tr:first-child > td {
 | 
			
		||||
  border-top: none;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
div.dataTables_scrollFoot > .dataTables_scrollFootInner {
 | 
			
		||||
  box-sizing: content-box;
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_scrollFoot > .dataTables_scrollFootInner > table {
 | 
			
		||||
  margin-top: 0 !important;
 | 
			
		||||
  border-top: none;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@media screen and (max-width: 767px) {
 | 
			
		||||
  div.dataTables_wrapper div.dataTables_length,
 | 
			
		||||
  div.dataTables_wrapper div.dataTables_filter,
 | 
			
		||||
  div.dataTables_wrapper div.dataTables_info,
 | 
			
		||||
  div.dataTables_wrapper div.dataTables_paginate {
 | 
			
		||||
    text-align: center;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
table.dataTable.table-condensed > thead > tr > th {
 | 
			
		||||
  padding-right: 20px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
table.table-bordered.dataTable {
 | 
			
		||||
  border-right-width: 0;
 | 
			
		||||
}
 | 
			
		||||
table.table-bordered.dataTable th,
 | 
			
		||||
table.table-bordered.dataTable td {
 | 
			
		||||
  border-left-width: 0;
 | 
			
		||||
}
 | 
			
		||||
table.table-bordered.dataTable th:last-child, table.table-bordered.dataTable th:last-child,
 | 
			
		||||
table.table-bordered.dataTable td:last-child,
 | 
			
		||||
table.table-bordered.dataTable td:last-child {
 | 
			
		||||
  border-right-width: 1px;
 | 
			
		||||
}
 | 
			
		||||
table.table-bordered.dataTable tbody th,
 | 
			
		||||
table.table-bordered.dataTable tbody td {
 | 
			
		||||
  border-bottom-width: 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
div.dataTables_scrollHead table.table-bordered {
 | 
			
		||||
  border-bottom-width: 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
div.table-responsive > div.dataTables_wrapper > div.row {
 | 
			
		||||
  margin: 0;
 | 
			
		||||
}
 | 
			
		||||
div.table-responsive > div.dataTables_wrapper > div.row > div[class^=col-]:first-child {
 | 
			
		||||
  padding-left: 0;
 | 
			
		||||
}
 | 
			
		||||
div.table-responsive > div.dataTables_wrapper > div.row > div[class^=col-]:last-child {
 | 
			
		||||
  padding-right: 0;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										1
									
								
								Frontend/lib/dataTables/DataTables-1.13.4/css/dataTables.bootstrap.min.css
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,423 @@
 | 
			
		||||
@charset "UTF-8";
 | 
			
		||||
:root {
 | 
			
		||||
  --dt-row-selected: 2, 117, 216;
 | 
			
		||||
  --dt-row-selected-text: 255, 255, 255;
 | 
			
		||||
  --dt-row-selected-link: 9, 10, 11;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
table.dataTable td.dt-control {
 | 
			
		||||
  text-align: center;
 | 
			
		||||
  cursor: pointer;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable td.dt-control:before {
 | 
			
		||||
  height: 1em;
 | 
			
		||||
  width: 1em;
 | 
			
		||||
  margin-top: -9px;
 | 
			
		||||
  display: inline-block;
 | 
			
		||||
  color: white;
 | 
			
		||||
  border: 0.15em solid white;
 | 
			
		||||
  border-radius: 1em;
 | 
			
		||||
  box-shadow: 0 0 0.2em #444;
 | 
			
		||||
  box-sizing: content-box;
 | 
			
		||||
  text-align: center;
 | 
			
		||||
  text-indent: 0 !important;
 | 
			
		||||
  font-family: "Courier New", Courier, monospace;
 | 
			
		||||
  line-height: 1em;
 | 
			
		||||
  content: "+";
 | 
			
		||||
  background-color: #31b131;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable tr.dt-hasChild td.dt-control:before {
 | 
			
		||||
  content: "-";
 | 
			
		||||
  background-color: #d33333;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
table.dataTable thead > tr > th.sorting, table.dataTable thead > tr > th.sorting_asc, table.dataTable thead > tr > th.sorting_desc, table.dataTable thead > tr > th.sorting_asc_disabled, table.dataTable thead > tr > th.sorting_desc_disabled,
 | 
			
		||||
table.dataTable thead > tr > td.sorting,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_asc,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_desc,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_asc_disabled,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_desc_disabled {
 | 
			
		||||
  cursor: pointer;
 | 
			
		||||
  position: relative;
 | 
			
		||||
  padding-right: 26px;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable thead > tr > th.sorting:before, table.dataTable thead > tr > th.sorting:after, table.dataTable thead > tr > th.sorting_asc:before, table.dataTable thead > tr > th.sorting_asc:after, table.dataTable thead > tr > th.sorting_desc:before, table.dataTable thead > tr > th.sorting_desc:after, table.dataTable thead > tr > th.sorting_asc_disabled:before, table.dataTable thead > tr > th.sorting_asc_disabled:after, table.dataTable thead > tr > th.sorting_desc_disabled:before, table.dataTable thead > tr > th.sorting_desc_disabled:after,
 | 
			
		||||
table.dataTable thead > tr > td.sorting:before,
 | 
			
		||||
table.dataTable thead > tr > td.sorting:after,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_asc:before,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_asc:after,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_desc:before,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_desc:after,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_asc_disabled:before,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_asc_disabled:after,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_desc_disabled:before,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_desc_disabled:after {
 | 
			
		||||
  position: absolute;
 | 
			
		||||
  display: block;
 | 
			
		||||
  opacity: 0.125;
 | 
			
		||||
  right: 10px;
 | 
			
		||||
  line-height: 9px;
 | 
			
		||||
  font-size: 0.8em;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable thead > tr > th.sorting:before, table.dataTable thead > tr > th.sorting_asc:before, table.dataTable thead > tr > th.sorting_desc:before, table.dataTable thead > tr > th.sorting_asc_disabled:before, table.dataTable thead > tr > th.sorting_desc_disabled:before,
 | 
			
		||||
table.dataTable thead > tr > td.sorting:before,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_asc:before,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_desc:before,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_asc_disabled:before,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_desc_disabled:before {
 | 
			
		||||
  bottom: 50%;
 | 
			
		||||
  content: "▲";
 | 
			
		||||
  content: "▲"/"";
 | 
			
		||||
}
 | 
			
		||||
table.dataTable thead > tr > th.sorting:after, table.dataTable thead > tr > th.sorting_asc:after, table.dataTable thead > tr > th.sorting_desc:after, table.dataTable thead > tr > th.sorting_asc_disabled:after, table.dataTable thead > tr > th.sorting_desc_disabled:after,
 | 
			
		||||
table.dataTable thead > tr > td.sorting:after,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_asc:after,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_desc:after,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_asc_disabled:after,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_desc_disabled:after {
 | 
			
		||||
  top: 50%;
 | 
			
		||||
  content: "▼";
 | 
			
		||||
  content: "▼"/"";
 | 
			
		||||
}
 | 
			
		||||
table.dataTable thead > tr > th.sorting_asc:before, table.dataTable thead > tr > th.sorting_desc:after,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_asc:before,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_desc:after {
 | 
			
		||||
  opacity: 0.6;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable thead > tr > th.sorting_desc_disabled:after, table.dataTable thead > tr > th.sorting_asc_disabled:before,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_desc_disabled:after,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_asc_disabled:before {
 | 
			
		||||
  display: none;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable thead > tr > th:active,
 | 
			
		||||
table.dataTable thead > tr > td:active {
 | 
			
		||||
  outline: none;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
div.dataTables_scrollBody > table.dataTable > thead > tr > th:before, div.dataTables_scrollBody > table.dataTable > thead > tr > th:after,
 | 
			
		||||
div.dataTables_scrollBody > table.dataTable > thead > tr > td:before,
 | 
			
		||||
div.dataTables_scrollBody > table.dataTable > thead > tr > td:after {
 | 
			
		||||
  display: none;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
div.dataTables_processing {
 | 
			
		||||
  position: absolute;
 | 
			
		||||
  top: 50%;
 | 
			
		||||
  left: 50%;
 | 
			
		||||
  width: 200px;
 | 
			
		||||
  margin-left: -100px;
 | 
			
		||||
  margin-top: -26px;
 | 
			
		||||
  text-align: center;
 | 
			
		||||
  padding: 2px;
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_processing > div:last-child {
 | 
			
		||||
  position: relative;
 | 
			
		||||
  width: 80px;
 | 
			
		||||
  height: 15px;
 | 
			
		||||
  margin: 1em auto;
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_processing > div:last-child > div {
 | 
			
		||||
  position: absolute;
 | 
			
		||||
  top: 0;
 | 
			
		||||
  width: 13px;
 | 
			
		||||
  height: 13px;
 | 
			
		||||
  border-radius: 50%;
 | 
			
		||||
  background: rgb(2, 117, 216);
 | 
			
		||||
  background: rgb(var(--dt-row-selected));
 | 
			
		||||
  animation-timing-function: cubic-bezier(0, 1, 1, 0);
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_processing > div:last-child > div:nth-child(1) {
 | 
			
		||||
  left: 8px;
 | 
			
		||||
  animation: datatables-loader-1 0.6s infinite;
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_processing > div:last-child > div:nth-child(2) {
 | 
			
		||||
  left: 8px;
 | 
			
		||||
  animation: datatables-loader-2 0.6s infinite;
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_processing > div:last-child > div:nth-child(3) {
 | 
			
		||||
  left: 32px;
 | 
			
		||||
  animation: datatables-loader-2 0.6s infinite;
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_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.dt-left,
 | 
			
		||||
table.dataTable td.dt-left {
 | 
			
		||||
  text-align: left;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable th.dt-center,
 | 
			
		||||
table.dataTable td.dt-center,
 | 
			
		||||
table.dataTable td.dataTables_empty {
 | 
			
		||||
  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 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.dataTable {
 | 
			
		||||
  clear: both;
 | 
			
		||||
  margin-top: 6px !important;
 | 
			
		||||
  margin-bottom: 6px !important;
 | 
			
		||||
  max-width: none !important;
 | 
			
		||||
  border-collapse: separate !important;
 | 
			
		||||
  border-spacing: 0;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable td,
 | 
			
		||||
table.dataTable th {
 | 
			
		||||
  -webkit-box-sizing: content-box;
 | 
			
		||||
  box-sizing: content-box;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable td.dataTables_empty,
 | 
			
		||||
table.dataTable th.dataTables_empty {
 | 
			
		||||
  text-align: center;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable.nowrap th,
 | 
			
		||||
table.dataTable.nowrap td {
 | 
			
		||||
  white-space: nowrap;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable.table-striped > tbody > tr:nth-of-type(2n+1) {
 | 
			
		||||
  background-color: transparent;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable > tbody > tr {
 | 
			
		||||
  background-color: transparent;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable > tbody > tr.selected > * {
 | 
			
		||||
  box-shadow: inset 0 0 0 9999px rgb(2, 117, 216);
 | 
			
		||||
  box-shadow: inset 0 0 0 9999px rgb(var(--dt-row-selected));
 | 
			
		||||
  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.table-striped > tbody > tr.odd > * {
 | 
			
		||||
  box-shadow: inset 0 0 0 9999px rgba(0, 0, 0, 0.05);
 | 
			
		||||
}
 | 
			
		||||
table.dataTable.table-striped > tbody > tr.odd.selected > * {
 | 
			
		||||
  box-shadow: inset 0 0 0 9999px rgba(2, 117, 216, 0.95);
 | 
			
		||||
  box-shadow: inset 0 0 0 9999px rgba(var(--dt-row-selected), 0.95);
 | 
			
		||||
}
 | 
			
		||||
table.dataTable.table-hover > tbody > tr:hover > * {
 | 
			
		||||
  box-shadow: inset 0 0 0 9999px rgba(0, 0, 0, 0.075);
 | 
			
		||||
}
 | 
			
		||||
table.dataTable.table-hover > tbody > tr.selected:hover > * {
 | 
			
		||||
  box-shadow: inset 0 0 0 9999px rgba(2, 117, 216, 0.975);
 | 
			
		||||
  box-shadow: inset 0 0 0 9999px rgba(var(--dt-row-selected), 0.975);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
div.dataTables_wrapper div.dataTables_length label {
 | 
			
		||||
  font-weight: normal;
 | 
			
		||||
  text-align: left;
 | 
			
		||||
  white-space: nowrap;
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_wrapper div.dataTables_length select {
 | 
			
		||||
  width: auto;
 | 
			
		||||
  display: inline-block;
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_wrapper div.dataTables_filter {
 | 
			
		||||
  text-align: right;
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_wrapper div.dataTables_filter label {
 | 
			
		||||
  font-weight: normal;
 | 
			
		||||
  white-space: nowrap;
 | 
			
		||||
  text-align: left;
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_wrapper div.dataTables_filter input {
 | 
			
		||||
  margin-left: 0.5em;
 | 
			
		||||
  display: inline-block;
 | 
			
		||||
  width: auto;
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_wrapper div.dataTables_info {
 | 
			
		||||
  padding-top: 0.85em;
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_wrapper div.dataTables_paginate {
 | 
			
		||||
  margin: 0;
 | 
			
		||||
  white-space: nowrap;
 | 
			
		||||
  text-align: right;
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_wrapper div.dataTables_paginate ul.pagination {
 | 
			
		||||
  margin: 2px 0;
 | 
			
		||||
  white-space: nowrap;
 | 
			
		||||
  justify-content: flex-end;
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_wrapper div.dataTables_processing {
 | 
			
		||||
  position: absolute;
 | 
			
		||||
  top: 50%;
 | 
			
		||||
  left: 50%;
 | 
			
		||||
  width: 200px;
 | 
			
		||||
  margin-left: -100px;
 | 
			
		||||
  margin-top: -26px;
 | 
			
		||||
  text-align: center;
 | 
			
		||||
  padding: 1em 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
div.dataTables_scrollHead table.dataTable {
 | 
			
		||||
  margin-bottom: 0 !important;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
div.dataTables_scrollBody > table {
 | 
			
		||||
  border-top: none;
 | 
			
		||||
  margin-top: 0 !important;
 | 
			
		||||
  margin-bottom: 0 !important;
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_scrollBody > table > thead .sorting:before,
 | 
			
		||||
div.dataTables_scrollBody > table > thead .sorting_asc:before,
 | 
			
		||||
div.dataTables_scrollBody > table > thead .sorting_desc:before,
 | 
			
		||||
div.dataTables_scrollBody > table > thead .sorting:after,
 | 
			
		||||
div.dataTables_scrollBody > table > thead .sorting_asc:after,
 | 
			
		||||
div.dataTables_scrollBody > table > thead .sorting_desc:after {
 | 
			
		||||
  display: none;
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_scrollBody > table > tbody tr:first-child th,
 | 
			
		||||
div.dataTables_scrollBody > table > tbody tr:first-child td {
 | 
			
		||||
  border-top: none;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
div.dataTables_scrollFoot > .dataTables_scrollFootInner {
 | 
			
		||||
  box-sizing: content-box;
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_scrollFoot > .dataTables_scrollFootInner > table {
 | 
			
		||||
  margin-top: 0 !important;
 | 
			
		||||
  border-top: none;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@media screen and (max-width: 767px) {
 | 
			
		||||
  div.dataTables_wrapper div.dataTables_length,
 | 
			
		||||
  div.dataTables_wrapper div.dataTables_filter,
 | 
			
		||||
  div.dataTables_wrapper div.dataTables_info,
 | 
			
		||||
  div.dataTables_wrapper div.dataTables_paginate {
 | 
			
		||||
    text-align: center;
 | 
			
		||||
  }
 | 
			
		||||
  div.dataTables_wrapper div.dataTables_paginate ul.pagination {
 | 
			
		||||
    justify-content: center !important;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
table.dataTable.table-sm > thead > tr > th:not(.sorting_disabled) {
 | 
			
		||||
  padding-right: 20px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
table.table-bordered.dataTable {
 | 
			
		||||
  border-right-width: 0;
 | 
			
		||||
}
 | 
			
		||||
table.table-bordered.dataTable th,
 | 
			
		||||
table.table-bordered.dataTable td {
 | 
			
		||||
  border-left-width: 0;
 | 
			
		||||
}
 | 
			
		||||
table.table-bordered.dataTable th:last-child, table.table-bordered.dataTable th:last-child,
 | 
			
		||||
table.table-bordered.dataTable td:last-child,
 | 
			
		||||
table.table-bordered.dataTable td:last-child {
 | 
			
		||||
  border-right-width: 1px;
 | 
			
		||||
}
 | 
			
		||||
table.table-bordered.dataTable tbody th,
 | 
			
		||||
table.table-bordered.dataTable tbody td {
 | 
			
		||||
  border-bottom-width: 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
div.dataTables_scrollHead table.table-bordered {
 | 
			
		||||
  border-bottom-width: 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
div.table-responsive > div.dataTables_wrapper > div.row {
 | 
			
		||||
  margin: 0;
 | 
			
		||||
}
 | 
			
		||||
div.table-responsive > div.dataTables_wrapper > div.row > div[class^=col-]:first-child {
 | 
			
		||||
  padding-left: 0;
 | 
			
		||||
}
 | 
			
		||||
div.table-responsive > div.dataTables_wrapper > div.row > div[class^=col-]:last-child {
 | 
			
		||||
  padding-right: 0;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										1
									
								
								Frontend/lib/dataTables/DataTables-1.13.4/css/dataTables.bootstrap4.min.css
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,430 @@
 | 
			
		||||
@charset "UTF-8";
 | 
			
		||||
:root {
 | 
			
		||||
  --dt-row-selected: 13, 110, 253;
 | 
			
		||||
  --dt-row-selected-text: 255, 255, 255;
 | 
			
		||||
  --dt-row-selected-link: 9, 10, 11;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
table.dataTable td.dt-control {
 | 
			
		||||
  text-align: center;
 | 
			
		||||
  cursor: pointer;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable td.dt-control:before {
 | 
			
		||||
  height: 1em;
 | 
			
		||||
  width: 1em;
 | 
			
		||||
  margin-top: -9px;
 | 
			
		||||
  display: inline-block;
 | 
			
		||||
  color: white;
 | 
			
		||||
  border: 0.15em solid white;
 | 
			
		||||
  border-radius: 1em;
 | 
			
		||||
  box-shadow: 0 0 0.2em #444;
 | 
			
		||||
  box-sizing: content-box;
 | 
			
		||||
  text-align: center;
 | 
			
		||||
  text-indent: 0 !important;
 | 
			
		||||
  font-family: "Courier New", Courier, monospace;
 | 
			
		||||
  line-height: 1em;
 | 
			
		||||
  content: "+";
 | 
			
		||||
  background-color: #31b131;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable tr.dt-hasChild td.dt-control:before {
 | 
			
		||||
  content: "-";
 | 
			
		||||
  background-color: #d33333;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
table.dataTable thead > tr > th.sorting, table.dataTable thead > tr > th.sorting_asc, table.dataTable thead > tr > th.sorting_desc, table.dataTable thead > tr > th.sorting_asc_disabled, table.dataTable thead > tr > th.sorting_desc_disabled,
 | 
			
		||||
table.dataTable thead > tr > td.sorting,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_asc,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_desc,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_asc_disabled,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_desc_disabled {
 | 
			
		||||
  cursor: pointer;
 | 
			
		||||
  position: relative;
 | 
			
		||||
  padding-right: 26px;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable thead > tr > th.sorting:before, table.dataTable thead > tr > th.sorting:after, table.dataTable thead > tr > th.sorting_asc:before, table.dataTable thead > tr > th.sorting_asc:after, table.dataTable thead > tr > th.sorting_desc:before, table.dataTable thead > tr > th.sorting_desc:after, table.dataTable thead > tr > th.sorting_asc_disabled:before, table.dataTable thead > tr > th.sorting_asc_disabled:after, table.dataTable thead > tr > th.sorting_desc_disabled:before, table.dataTable thead > tr > th.sorting_desc_disabled:after,
 | 
			
		||||
table.dataTable thead > tr > td.sorting:before,
 | 
			
		||||
table.dataTable thead > tr > td.sorting:after,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_asc:before,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_asc:after,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_desc:before,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_desc:after,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_asc_disabled:before,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_asc_disabled:after,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_desc_disabled:before,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_desc_disabled:after {
 | 
			
		||||
  position: absolute;
 | 
			
		||||
  display: block;
 | 
			
		||||
  opacity: 0.125;
 | 
			
		||||
  right: 10px;
 | 
			
		||||
  line-height: 9px;
 | 
			
		||||
  font-size: 0.8em;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable thead > tr > th.sorting:before, table.dataTable thead > tr > th.sorting_asc:before, table.dataTable thead > tr > th.sorting_desc:before, table.dataTable thead > tr > th.sorting_asc_disabled:before, table.dataTable thead > tr > th.sorting_desc_disabled:before,
 | 
			
		||||
table.dataTable thead > tr > td.sorting:before,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_asc:before,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_desc:before,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_asc_disabled:before,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_desc_disabled:before {
 | 
			
		||||
  bottom: 50%;
 | 
			
		||||
  content: "▲";
 | 
			
		||||
  content: "▲"/"";
 | 
			
		||||
}
 | 
			
		||||
table.dataTable thead > tr > th.sorting:after, table.dataTable thead > tr > th.sorting_asc:after, table.dataTable thead > tr > th.sorting_desc:after, table.dataTable thead > tr > th.sorting_asc_disabled:after, table.dataTable thead > tr > th.sorting_desc_disabled:after,
 | 
			
		||||
table.dataTable thead > tr > td.sorting:after,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_asc:after,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_desc:after,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_asc_disabled:after,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_desc_disabled:after {
 | 
			
		||||
  top: 50%;
 | 
			
		||||
  content: "▼";
 | 
			
		||||
  content: "▼"/"";
 | 
			
		||||
}
 | 
			
		||||
table.dataTable thead > tr > th.sorting_asc:before, table.dataTable thead > tr > th.sorting_desc:after,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_asc:before,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_desc:after {
 | 
			
		||||
  opacity: 0.6;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable thead > tr > th.sorting_desc_disabled:after, table.dataTable thead > tr > th.sorting_asc_disabled:before,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_desc_disabled:after,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_asc_disabled:before {
 | 
			
		||||
  display: none;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable thead > tr > th:active,
 | 
			
		||||
table.dataTable thead > tr > td:active {
 | 
			
		||||
  outline: none;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
div.dataTables_scrollBody > table.dataTable > thead > tr > th:before, div.dataTables_scrollBody > table.dataTable > thead > tr > th:after,
 | 
			
		||||
div.dataTables_scrollBody > table.dataTable > thead > tr > td:before,
 | 
			
		||||
div.dataTables_scrollBody > table.dataTable > thead > tr > td:after {
 | 
			
		||||
  display: none;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
div.dataTables_processing {
 | 
			
		||||
  position: absolute;
 | 
			
		||||
  top: 50%;
 | 
			
		||||
  left: 50%;
 | 
			
		||||
  width: 200px;
 | 
			
		||||
  margin-left: -100px;
 | 
			
		||||
  margin-top: -26px;
 | 
			
		||||
  text-align: center;
 | 
			
		||||
  padding: 2px;
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_processing > div:last-child {
 | 
			
		||||
  position: relative;
 | 
			
		||||
  width: 80px;
 | 
			
		||||
  height: 15px;
 | 
			
		||||
  margin: 1em auto;
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_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.dataTables_processing > div:last-child > div:nth-child(1) {
 | 
			
		||||
  left: 8px;
 | 
			
		||||
  animation: datatables-loader-1 0.6s infinite;
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_processing > div:last-child > div:nth-child(2) {
 | 
			
		||||
  left: 8px;
 | 
			
		||||
  animation: datatables-loader-2 0.6s infinite;
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_processing > div:last-child > div:nth-child(3) {
 | 
			
		||||
  left: 32px;
 | 
			
		||||
  animation: datatables-loader-2 0.6s infinite;
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_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.dt-left,
 | 
			
		||||
table.dataTable td.dt-left {
 | 
			
		||||
  text-align: left;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable th.dt-center,
 | 
			
		||||
table.dataTable td.dt-center,
 | 
			
		||||
table.dataTable td.dataTables_empty {
 | 
			
		||||
  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 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;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/*! Bootstrap 5 integration for DataTables
 | 
			
		||||
 *
 | 
			
		||||
 * ©2020 SpryMedia Ltd, all rights reserved.
 | 
			
		||||
 * License: MIT datatables.net/license/mit
 | 
			
		||||
 */
 | 
			
		||||
table.dataTable {
 | 
			
		||||
  clear: both;
 | 
			
		||||
  margin-top: 6px !important;
 | 
			
		||||
  margin-bottom: 6px !important;
 | 
			
		||||
  max-width: none !important;
 | 
			
		||||
  border-collapse: separate !important;
 | 
			
		||||
  border-spacing: 0;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable td,
 | 
			
		||||
table.dataTable th {
 | 
			
		||||
  -webkit-box-sizing: content-box;
 | 
			
		||||
  box-sizing: content-box;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable td.dataTables_empty,
 | 
			
		||||
table.dataTable th.dataTables_empty {
 | 
			
		||||
  text-align: center;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable.nowrap th,
 | 
			
		||||
table.dataTable.nowrap td {
 | 
			
		||||
  white-space: nowrap;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable.table-striped > tbody > tr:nth-of-type(2n+1) > * {
 | 
			
		||||
  box-shadow: none;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable > tbody > tr {
 | 
			
		||||
  background-color: transparent;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable > tbody > tr.selected > * {
 | 
			
		||||
  box-shadow: inset 0 0 0 9999px rgb(13, 110, 253);
 | 
			
		||||
  box-shadow: inset 0 0 0 9999px rgb(var(--dt-row-selected));
 | 
			
		||||
  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.table-striped > tbody > tr.odd > * {
 | 
			
		||||
  box-shadow: inset 0 0 0 9999px rgba(0, 0, 0, 0.05);
 | 
			
		||||
}
 | 
			
		||||
table.dataTable.table-striped > tbody > tr.odd.selected > * {
 | 
			
		||||
  box-shadow: inset 0 0 0 9999px rgba(13, 110, 253, 0.95);
 | 
			
		||||
  box-shadow: inset 0 0 0 9999px rgba(var(--dt-row-selected), 0.95);
 | 
			
		||||
}
 | 
			
		||||
table.dataTable.table-hover > tbody > tr:hover > * {
 | 
			
		||||
  box-shadow: inset 0 0 0 9999px rgba(0, 0, 0, 0.075);
 | 
			
		||||
}
 | 
			
		||||
table.dataTable.table-hover > tbody > tr.selected:hover > * {
 | 
			
		||||
  box-shadow: inset 0 0 0 9999px rgba(13, 110, 253, 0.975);
 | 
			
		||||
  box-shadow: inset 0 0 0 9999px rgba(var(--dt-row-selected), 0.975);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
div.dataTables_wrapper div.dataTables_length label {
 | 
			
		||||
  font-weight: normal;
 | 
			
		||||
  text-align: left;
 | 
			
		||||
  white-space: nowrap;
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_wrapper div.dataTables_length select {
 | 
			
		||||
  width: auto;
 | 
			
		||||
  display: inline-block;
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_wrapper div.dataTables_filter {
 | 
			
		||||
  text-align: right;
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_wrapper div.dataTables_filter label {
 | 
			
		||||
  font-weight: normal;
 | 
			
		||||
  white-space: nowrap;
 | 
			
		||||
  text-align: left;
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_wrapper div.dataTables_filter input {
 | 
			
		||||
  margin-left: 0.5em;
 | 
			
		||||
  display: inline-block;
 | 
			
		||||
  width: auto;
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_wrapper div.dataTables_info {
 | 
			
		||||
  padding-top: 0.85em;
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_wrapper div.dataTables_paginate {
 | 
			
		||||
  margin: 0;
 | 
			
		||||
  white-space: nowrap;
 | 
			
		||||
  text-align: right;
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_wrapper div.dataTables_paginate ul.pagination {
 | 
			
		||||
  margin: 2px 0;
 | 
			
		||||
  white-space: nowrap;
 | 
			
		||||
  justify-content: flex-end;
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_wrapper div.dt-row {
 | 
			
		||||
  position: relative;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
div.dataTables_scrollHead table.dataTable {
 | 
			
		||||
  margin-bottom: 0 !important;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
div.dataTables_scrollBody > table {
 | 
			
		||||
  border-top: none;
 | 
			
		||||
  margin-top: 0 !important;
 | 
			
		||||
  margin-bottom: 0 !important;
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_scrollBody > table > thead .sorting:before,
 | 
			
		||||
div.dataTables_scrollBody > table > thead .sorting_asc:before,
 | 
			
		||||
div.dataTables_scrollBody > table > thead .sorting_desc:before,
 | 
			
		||||
div.dataTables_scrollBody > table > thead .sorting:after,
 | 
			
		||||
div.dataTables_scrollBody > table > thead .sorting_asc:after,
 | 
			
		||||
div.dataTables_scrollBody > table > thead .sorting_desc:after {
 | 
			
		||||
  display: none;
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_scrollBody > table > tbody tr:first-child th,
 | 
			
		||||
div.dataTables_scrollBody > table > tbody tr:first-child td {
 | 
			
		||||
  border-top: none;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
div.dataTables_scrollFoot > .dataTables_scrollFootInner {
 | 
			
		||||
  box-sizing: content-box;
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_scrollFoot > .dataTables_scrollFootInner > table {
 | 
			
		||||
  margin-top: 0 !important;
 | 
			
		||||
  border-top: none;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@media screen and (max-width: 767px) {
 | 
			
		||||
  div.dataTables_wrapper div.dataTables_length,
 | 
			
		||||
  div.dataTables_wrapper div.dataTables_filter,
 | 
			
		||||
  div.dataTables_wrapper div.dataTables_info,
 | 
			
		||||
  div.dataTables_wrapper div.dataTables_paginate {
 | 
			
		||||
    text-align: center;
 | 
			
		||||
  }
 | 
			
		||||
  div.dataTables_wrapper div.dataTables_paginate ul.pagination {
 | 
			
		||||
    justify-content: center !important;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
table.dataTable.table-sm > thead > tr > th:not(.sorting_disabled) {
 | 
			
		||||
  padding-right: 20px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
table.table-bordered.dataTable {
 | 
			
		||||
  border-right-width: 0;
 | 
			
		||||
}
 | 
			
		||||
table.table-bordered.dataTable thead tr:first-child th,
 | 
			
		||||
table.table-bordered.dataTable thead tr:first-child td {
 | 
			
		||||
  border-top-width: 1px;
 | 
			
		||||
}
 | 
			
		||||
table.table-bordered.dataTable th,
 | 
			
		||||
table.table-bordered.dataTable td {
 | 
			
		||||
  border-left-width: 0;
 | 
			
		||||
}
 | 
			
		||||
table.table-bordered.dataTable th:first-child, table.table-bordered.dataTable th:first-child,
 | 
			
		||||
table.table-bordered.dataTable td:first-child,
 | 
			
		||||
table.table-bordered.dataTable td:first-child {
 | 
			
		||||
  border-left-width: 1px;
 | 
			
		||||
}
 | 
			
		||||
table.table-bordered.dataTable th:last-child, table.table-bordered.dataTable th:last-child,
 | 
			
		||||
table.table-bordered.dataTable td:last-child,
 | 
			
		||||
table.table-bordered.dataTable td:last-child {
 | 
			
		||||
  border-right-width: 1px;
 | 
			
		||||
}
 | 
			
		||||
table.table-bordered.dataTable th,
 | 
			
		||||
table.table-bordered.dataTable td {
 | 
			
		||||
  border-bottom-width: 1px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
div.dataTables_scrollHead table.table-bordered {
 | 
			
		||||
  border-bottom-width: 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
div.table-responsive > div.dataTables_wrapper > div.row {
 | 
			
		||||
  margin: 0;
 | 
			
		||||
}
 | 
			
		||||
div.table-responsive > div.dataTables_wrapper > div.row > div[class^=col-]:first-child {
 | 
			
		||||
  padding-left: 0;
 | 
			
		||||
}
 | 
			
		||||
div.table-responsive > div.dataTables_wrapper > div.row > div[class^=col-]:last-child {
 | 
			
		||||
  padding-right: 0;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										5
									
								
								Frontend/lib/dataTables/DataTables-1.13.4/css/dataTables.bootstrap5.min.css
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,379 @@
 | 
			
		||||
@charset "UTF-8";
 | 
			
		||||
:root {
 | 
			
		||||
  --dt-row-selected: 0, 209, 178;
 | 
			
		||||
  --dt-row-selected-text: 255, 255, 255;
 | 
			
		||||
  --dt-row-selected-link: 9, 10, 11;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
table.dataTable td.dt-control {
 | 
			
		||||
  text-align: center;
 | 
			
		||||
  cursor: pointer;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable td.dt-control:before {
 | 
			
		||||
  height: 1em;
 | 
			
		||||
  width: 1em;
 | 
			
		||||
  margin-top: -9px;
 | 
			
		||||
  display: inline-block;
 | 
			
		||||
  color: white;
 | 
			
		||||
  border: 0.15em solid white;
 | 
			
		||||
  border-radius: 1em;
 | 
			
		||||
  box-shadow: 0 0 0.2em #444;
 | 
			
		||||
  box-sizing: content-box;
 | 
			
		||||
  text-align: center;
 | 
			
		||||
  text-indent: 0 !important;
 | 
			
		||||
  font-family: "Courier New", Courier, monospace;
 | 
			
		||||
  line-height: 1em;
 | 
			
		||||
  content: "+";
 | 
			
		||||
  background-color: #31b131;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable tr.dt-hasChild td.dt-control:before {
 | 
			
		||||
  content: "-";
 | 
			
		||||
  background-color: #d33333;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
table.dataTable thead > tr > th.sorting, table.dataTable thead > tr > th.sorting_asc, table.dataTable thead > tr > th.sorting_desc, table.dataTable thead > tr > th.sorting_asc_disabled, table.dataTable thead > tr > th.sorting_desc_disabled,
 | 
			
		||||
table.dataTable thead > tr > td.sorting,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_asc,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_desc,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_asc_disabled,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_desc_disabled {
 | 
			
		||||
  cursor: pointer;
 | 
			
		||||
  position: relative;
 | 
			
		||||
  padding-right: 26px;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable thead > tr > th.sorting:before, table.dataTable thead > tr > th.sorting:after, table.dataTable thead > tr > th.sorting_asc:before, table.dataTable thead > tr > th.sorting_asc:after, table.dataTable thead > tr > th.sorting_desc:before, table.dataTable thead > tr > th.sorting_desc:after, table.dataTable thead > tr > th.sorting_asc_disabled:before, table.dataTable thead > tr > th.sorting_asc_disabled:after, table.dataTable thead > tr > th.sorting_desc_disabled:before, table.dataTable thead > tr > th.sorting_desc_disabled:after,
 | 
			
		||||
table.dataTable thead > tr > td.sorting:before,
 | 
			
		||||
table.dataTable thead > tr > td.sorting:after,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_asc:before,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_asc:after,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_desc:before,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_desc:after,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_asc_disabled:before,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_asc_disabled:after,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_desc_disabled:before,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_desc_disabled:after {
 | 
			
		||||
  position: absolute;
 | 
			
		||||
  display: block;
 | 
			
		||||
  opacity: 0.125;
 | 
			
		||||
  right: 10px;
 | 
			
		||||
  line-height: 9px;
 | 
			
		||||
  font-size: 0.8em;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable thead > tr > th.sorting:before, table.dataTable thead > tr > th.sorting_asc:before, table.dataTable thead > tr > th.sorting_desc:before, table.dataTable thead > tr > th.sorting_asc_disabled:before, table.dataTable thead > tr > th.sorting_desc_disabled:before,
 | 
			
		||||
table.dataTable thead > tr > td.sorting:before,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_asc:before,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_desc:before,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_asc_disabled:before,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_desc_disabled:before {
 | 
			
		||||
  bottom: 50%;
 | 
			
		||||
  content: "▲";
 | 
			
		||||
  content: "▲"/"";
 | 
			
		||||
}
 | 
			
		||||
table.dataTable thead > tr > th.sorting:after, table.dataTable thead > tr > th.sorting_asc:after, table.dataTable thead > tr > th.sorting_desc:after, table.dataTable thead > tr > th.sorting_asc_disabled:after, table.dataTable thead > tr > th.sorting_desc_disabled:after,
 | 
			
		||||
table.dataTable thead > tr > td.sorting:after,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_asc:after,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_desc:after,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_asc_disabled:after,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_desc_disabled:after {
 | 
			
		||||
  top: 50%;
 | 
			
		||||
  content: "▼";
 | 
			
		||||
  content: "▼"/"";
 | 
			
		||||
}
 | 
			
		||||
table.dataTable thead > tr > th.sorting_asc:before, table.dataTable thead > tr > th.sorting_desc:after,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_asc:before,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_desc:after {
 | 
			
		||||
  opacity: 0.6;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable thead > tr > th.sorting_desc_disabled:after, table.dataTable thead > tr > th.sorting_asc_disabled:before,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_desc_disabled:after,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_asc_disabled:before {
 | 
			
		||||
  display: none;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable thead > tr > th:active,
 | 
			
		||||
table.dataTable thead > tr > td:active {
 | 
			
		||||
  outline: none;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
div.dataTables_scrollBody > table.dataTable > thead > tr > th:before, div.dataTables_scrollBody > table.dataTable > thead > tr > th:after,
 | 
			
		||||
div.dataTables_scrollBody > table.dataTable > thead > tr > td:before,
 | 
			
		||||
div.dataTables_scrollBody > table.dataTable > thead > tr > td:after {
 | 
			
		||||
  display: none;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
div.dataTables_processing {
 | 
			
		||||
  position: absolute;
 | 
			
		||||
  top: 50%;
 | 
			
		||||
  left: 50%;
 | 
			
		||||
  width: 200px;
 | 
			
		||||
  margin-left: -100px;
 | 
			
		||||
  margin-top: -26px;
 | 
			
		||||
  text-align: center;
 | 
			
		||||
  padding: 2px;
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_processing > div:last-child {
 | 
			
		||||
  position: relative;
 | 
			
		||||
  width: 80px;
 | 
			
		||||
  height: 15px;
 | 
			
		||||
  margin: 1em auto;
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_processing > div:last-child > div {
 | 
			
		||||
  position: absolute;
 | 
			
		||||
  top: 0;
 | 
			
		||||
  width: 13px;
 | 
			
		||||
  height: 13px;
 | 
			
		||||
  border-radius: 50%;
 | 
			
		||||
  background: rgb(0, 209, 178);
 | 
			
		||||
  background: rgb(var(--dt-row-selected));
 | 
			
		||||
  animation-timing-function: cubic-bezier(0, 1, 1, 0);
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_processing > div:last-child > div:nth-child(1) {
 | 
			
		||||
  left: 8px;
 | 
			
		||||
  animation: datatables-loader-1 0.6s infinite;
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_processing > div:last-child > div:nth-child(2) {
 | 
			
		||||
  left: 8px;
 | 
			
		||||
  animation: datatables-loader-2 0.6s infinite;
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_processing > div:last-child > div:nth-child(3) {
 | 
			
		||||
  left: 32px;
 | 
			
		||||
  animation: datatables-loader-2 0.6s infinite;
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_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.dt-left,
 | 
			
		||||
table.dataTable td.dt-left {
 | 
			
		||||
  text-align: left;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable th.dt-center,
 | 
			
		||||
table.dataTable td.dt-center,
 | 
			
		||||
table.dataTable td.dataTables_empty {
 | 
			
		||||
  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 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;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/*! DataTables Bulma integration
 | 
			
		||||
 * ©2020 SpryMedia Ltd - datatables.net/license
 | 
			
		||||
 */
 | 
			
		||||
table.dataTable {
 | 
			
		||||
  clear: both;
 | 
			
		||||
  margin-top: 6px !important;
 | 
			
		||||
  margin-bottom: 6px !important;
 | 
			
		||||
  max-width: none !important;
 | 
			
		||||
  border-collapse: separate !important;
 | 
			
		||||
  border-spacing: 0;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable td,
 | 
			
		||||
table.dataTable th {
 | 
			
		||||
  -webkit-box-sizing: content-box;
 | 
			
		||||
  box-sizing: content-box;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable td.dataTables_empty,
 | 
			
		||||
table.dataTable th.dataTables_empty {
 | 
			
		||||
  text-align: center;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable.nowrap th,
 | 
			
		||||
table.dataTable.nowrap td {
 | 
			
		||||
  white-space: nowrap;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable.table.is-striped > tbody > tr:nth-child(2n) {
 | 
			
		||||
  background-color: transparent;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable > tbody > tr {
 | 
			
		||||
  background-color: transparent;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable > tbody > tr.selected > * {
 | 
			
		||||
  box-shadow: inset 0 0 0 9999px rgb(0, 209, 178);
 | 
			
		||||
  box-shadow: inset 0 0 0 9999px rgb(var(--dt-row-selected));
 | 
			
		||||
  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.is-striped > tbody > tr.odd > * {
 | 
			
		||||
  box-shadow: inset 0 0 0 9999px rgba(0, 0, 0, 0.019);
 | 
			
		||||
}
 | 
			
		||||
table.dataTable.is-striped > tbody > tr.odd.selected > * {
 | 
			
		||||
  box-shadow: inset 0 0 0 9999px rgba(0, 209, 178, 0.919);
 | 
			
		||||
  box-shadow: inset 0 0 0 9999px rgba(var(--dt-row-selected), 0.919);
 | 
			
		||||
}
 | 
			
		||||
table.dataTable.is-hoverable > tbody > tr:hover > * {
 | 
			
		||||
  box-shadow: inset 0 0 0 9999px rgba(0, 0, 0, 0.39);
 | 
			
		||||
}
 | 
			
		||||
table.dataTable.is-hoverable > tbody > tr.selected:hover > * {
 | 
			
		||||
  box-shadow: inset 0 0 0 9999px #00d1b2;
 | 
			
		||||
  box-shadow: inset 0 0 0 9999px rgba(var(--dt-row-selected), 1.29);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
div.dataTables_wrapper div.dataTables_length label {
 | 
			
		||||
  font-weight: normal;
 | 
			
		||||
  text-align: left;
 | 
			
		||||
  white-space: nowrap;
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_wrapper div.dataTables_length div {
 | 
			
		||||
  vertical-align: middle;
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_wrapper div.dataTables_length select {
 | 
			
		||||
  width: auto;
 | 
			
		||||
  display: inline-block;
 | 
			
		||||
  vertical-align: middle;
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_wrapper div.dataTables_filter {
 | 
			
		||||
  text-align: right;
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_wrapper div.dataTables_filter label {
 | 
			
		||||
  font-weight: normal;
 | 
			
		||||
  white-space: nowrap;
 | 
			
		||||
  text-align: left;
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_wrapper div.dataTables_filter input {
 | 
			
		||||
  margin-left: 0.5em;
 | 
			
		||||
  width: auto;
 | 
			
		||||
  vertical-align: middle;
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_wrapper div.dataTables_info {
 | 
			
		||||
  padding-top: 0.5em;
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_wrapper div.dataTables_paginate ul {
 | 
			
		||||
  justify-content: flex-end;
 | 
			
		||||
  list-style: none;
 | 
			
		||||
  margin: 0;
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_wrapper div.dataTables_processing {
 | 
			
		||||
  position: absolute;
 | 
			
		||||
  top: 50%;
 | 
			
		||||
  left: 50%;
 | 
			
		||||
  width: 200px;
 | 
			
		||||
  margin-left: -100px;
 | 
			
		||||
  margin-top: -26px;
 | 
			
		||||
  text-align: center;
 | 
			
		||||
  padding: 1em 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
div.dataTables_scrollHead table.dataTable {
 | 
			
		||||
  margin-bottom: 0 !important;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
div.dataTables_scrollBody table {
 | 
			
		||||
  border-top: none;
 | 
			
		||||
  margin-top: 0 !important;
 | 
			
		||||
  margin-bottom: 0 !important;
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_scrollBody table thead .sorting:before,
 | 
			
		||||
div.dataTables_scrollBody table thead .sorting_asc:before,
 | 
			
		||||
div.dataTables_scrollBody table thead .sorting_desc:before,
 | 
			
		||||
div.dataTables_scrollBody table thead .sorting:after,
 | 
			
		||||
div.dataTables_scrollBody table thead .sorting_asc:after,
 | 
			
		||||
div.dataTables_scrollBody table thead .sorting_desc:after {
 | 
			
		||||
  display: none;
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_scrollBody table tbody tr:first-child th,
 | 
			
		||||
div.dataTables_scrollBody table tbody tr:first-child td {
 | 
			
		||||
  border-top: none;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
div.dataTables_scrollFoot > .dataTables_scrollFootInner {
 | 
			
		||||
  box-sizing: content-box;
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_scrollFoot > .dataTables_scrollFootInner > table {
 | 
			
		||||
  margin-top: 0 !important;
 | 
			
		||||
  border-top: none;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										3
									
								
								Frontend/lib/dataTables/DataTables-1.13.4/css/dataTables.bulma.min.css
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										0
									
								
								Frontend/lib/dataTables/DataTables-1.13.4/css/dataTables.dataTables.min.css
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,357 @@
 | 
			
		||||
@charset "UTF-8";
 | 
			
		||||
:root {
 | 
			
		||||
  --dt-row-selected: 0, 137, 182;
 | 
			
		||||
  --dt-row-selected-text: 255, 255, 255;
 | 
			
		||||
  --dt-row-selected-link: 9, 10, 11;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
table.dataTable td.dt-control {
 | 
			
		||||
  text-align: center;
 | 
			
		||||
  cursor: pointer;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable td.dt-control:before {
 | 
			
		||||
  height: 1em;
 | 
			
		||||
  width: 1em;
 | 
			
		||||
  margin-top: -9px;
 | 
			
		||||
  display: inline-block;
 | 
			
		||||
  color: white;
 | 
			
		||||
  border: 0.15em solid white;
 | 
			
		||||
  border-radius: 1em;
 | 
			
		||||
  box-shadow: 0 0 0.2em #444;
 | 
			
		||||
  box-sizing: content-box;
 | 
			
		||||
  text-align: center;
 | 
			
		||||
  text-indent: 0 !important;
 | 
			
		||||
  font-family: "Courier New", Courier, monospace;
 | 
			
		||||
  line-height: 1em;
 | 
			
		||||
  content: "+";
 | 
			
		||||
  background-color: #31b131;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable tr.dt-hasChild td.dt-control:before {
 | 
			
		||||
  content: "-";
 | 
			
		||||
  background-color: #d33333;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
table.dataTable thead > tr > th.sorting, table.dataTable thead > tr > th.sorting_asc, table.dataTable thead > tr > th.sorting_desc, table.dataTable thead > tr > th.sorting_asc_disabled, table.dataTable thead > tr > th.sorting_desc_disabled,
 | 
			
		||||
table.dataTable thead > tr > td.sorting,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_asc,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_desc,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_asc_disabled,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_desc_disabled {
 | 
			
		||||
  cursor: pointer;
 | 
			
		||||
  position: relative;
 | 
			
		||||
  padding-right: 26px;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable thead > tr > th.sorting:before, table.dataTable thead > tr > th.sorting:after, table.dataTable thead > tr > th.sorting_asc:before, table.dataTable thead > tr > th.sorting_asc:after, table.dataTable thead > tr > th.sorting_desc:before, table.dataTable thead > tr > th.sorting_desc:after, table.dataTable thead > tr > th.sorting_asc_disabled:before, table.dataTable thead > tr > th.sorting_asc_disabled:after, table.dataTable thead > tr > th.sorting_desc_disabled:before, table.dataTable thead > tr > th.sorting_desc_disabled:after,
 | 
			
		||||
table.dataTable thead > tr > td.sorting:before,
 | 
			
		||||
table.dataTable thead > tr > td.sorting:after,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_asc:before,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_asc:after,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_desc:before,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_desc:after,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_asc_disabled:before,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_asc_disabled:after,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_desc_disabled:before,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_desc_disabled:after {
 | 
			
		||||
  position: absolute;
 | 
			
		||||
  display: block;
 | 
			
		||||
  opacity: 0.125;
 | 
			
		||||
  right: 10px;
 | 
			
		||||
  line-height: 9px;
 | 
			
		||||
  font-size: 0.8em;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable thead > tr > th.sorting:before, table.dataTable thead > tr > th.sorting_asc:before, table.dataTable thead > tr > th.sorting_desc:before, table.dataTable thead > tr > th.sorting_asc_disabled:before, table.dataTable thead > tr > th.sorting_desc_disabled:before,
 | 
			
		||||
table.dataTable thead > tr > td.sorting:before,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_asc:before,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_desc:before,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_asc_disabled:before,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_desc_disabled:before {
 | 
			
		||||
  bottom: 50%;
 | 
			
		||||
  content: "▲";
 | 
			
		||||
  content: "▲"/"";
 | 
			
		||||
}
 | 
			
		||||
table.dataTable thead > tr > th.sorting:after, table.dataTable thead > tr > th.sorting_asc:after, table.dataTable thead > tr > th.sorting_desc:after, table.dataTable thead > tr > th.sorting_asc_disabled:after, table.dataTable thead > tr > th.sorting_desc_disabled:after,
 | 
			
		||||
table.dataTable thead > tr > td.sorting:after,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_asc:after,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_desc:after,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_asc_disabled:after,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_desc_disabled:after {
 | 
			
		||||
  top: 50%;
 | 
			
		||||
  content: "▼";
 | 
			
		||||
  content: "▼"/"";
 | 
			
		||||
}
 | 
			
		||||
table.dataTable thead > tr > th.sorting_asc:before, table.dataTable thead > tr > th.sorting_desc:after,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_asc:before,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_desc:after {
 | 
			
		||||
  opacity: 0.6;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable thead > tr > th.sorting_desc_disabled:after, table.dataTable thead > tr > th.sorting_asc_disabled:before,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_desc_disabled:after,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_asc_disabled:before {
 | 
			
		||||
  display: none;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable thead > tr > th:active,
 | 
			
		||||
table.dataTable thead > tr > td:active {
 | 
			
		||||
  outline: none;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
div.dataTables_scrollBody > table.dataTable > thead > tr > th:before, div.dataTables_scrollBody > table.dataTable > thead > tr > th:after,
 | 
			
		||||
div.dataTables_scrollBody > table.dataTable > thead > tr > td:before,
 | 
			
		||||
div.dataTables_scrollBody > table.dataTable > thead > tr > td:after {
 | 
			
		||||
  display: none;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
div.dataTables_processing {
 | 
			
		||||
  position: absolute;
 | 
			
		||||
  top: 50%;
 | 
			
		||||
  left: 50%;
 | 
			
		||||
  width: 200px;
 | 
			
		||||
  margin-left: -100px;
 | 
			
		||||
  margin-top: -26px;
 | 
			
		||||
  text-align: center;
 | 
			
		||||
  padding: 2px;
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_processing > div:last-child {
 | 
			
		||||
  position: relative;
 | 
			
		||||
  width: 80px;
 | 
			
		||||
  height: 15px;
 | 
			
		||||
  margin: 1em auto;
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_processing > div:last-child > div {
 | 
			
		||||
  position: absolute;
 | 
			
		||||
  top: 0;
 | 
			
		||||
  width: 13px;
 | 
			
		||||
  height: 13px;
 | 
			
		||||
  border-radius: 50%;
 | 
			
		||||
  background: rgb(0, 137, 182);
 | 
			
		||||
  background: rgb(var(--dt-row-selected));
 | 
			
		||||
  animation-timing-function: cubic-bezier(0, 1, 1, 0);
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_processing > div:last-child > div:nth-child(1) {
 | 
			
		||||
  left: 8px;
 | 
			
		||||
  animation: datatables-loader-1 0.6s infinite;
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_processing > div:last-child > div:nth-child(2) {
 | 
			
		||||
  left: 8px;
 | 
			
		||||
  animation: datatables-loader-2 0.6s infinite;
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_processing > div:last-child > div:nth-child(3) {
 | 
			
		||||
  left: 32px;
 | 
			
		||||
  animation: datatables-loader-2 0.6s infinite;
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_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.dt-left,
 | 
			
		||||
table.dataTable td.dt-left {
 | 
			
		||||
  text-align: left;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable th.dt-center,
 | 
			
		||||
table.dataTable td.dt-center,
 | 
			
		||||
table.dataTable td.dataTables_empty {
 | 
			
		||||
  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 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.dataTable {
 | 
			
		||||
  clear: both;
 | 
			
		||||
  margin: 0.5em 0 !important;
 | 
			
		||||
  max-width: none !important;
 | 
			
		||||
  width: 100%;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable td,
 | 
			
		||||
table.dataTable th {
 | 
			
		||||
  -webkit-box-sizing: content-box;
 | 
			
		||||
  box-sizing: content-box;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable td.dataTables_empty,
 | 
			
		||||
table.dataTable th.dataTables_empty {
 | 
			
		||||
  text-align: center;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable.nowrap th, table.dataTable.nowrap td {
 | 
			
		||||
  white-space: nowrap;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable tr:nth-child(2n) {
 | 
			
		||||
  background-color: transparent;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable > tbody > tr {
 | 
			
		||||
  background-color: transparent;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable > tbody > tr.selected > * {
 | 
			
		||||
  box-shadow: inset 0 0 0 9999px rgb(0, 137, 182);
 | 
			
		||||
  box-shadow: inset 0 0 0 9999px rgb(var(--dt-row-selected));
 | 
			
		||||
  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.even > * {
 | 
			
		||||
  box-shadow: inset 0 0 0 9999px rgba(0, 0, 0, 0.054);
 | 
			
		||||
}
 | 
			
		||||
table.dataTable > tbody > tr.even.selected > * {
 | 
			
		||||
  box-shadow: inset 0 0 0 9999px rgba(0, 137, 182, 0.954);
 | 
			
		||||
  box-shadow: inset 0 0 0 9999px rgba(var(--dt-row-selected), 0.954);
 | 
			
		||||
}
 | 
			
		||||
table.dataTable.hover > tbody > tr:hover > * {
 | 
			
		||||
  box-shadow: inset 0 0 0 9999px rgba(0, 0, 0, 0.074);
 | 
			
		||||
}
 | 
			
		||||
table.dataTable.hover > tbody > tr.selected:hover > * {
 | 
			
		||||
  box-shadow: inset 0 0 0 9999px rgba(0, 137, 182, 0.974);
 | 
			
		||||
  box-shadow: inset 0 0 0 9999px rgba(var(--dt-row-selected), 0.974);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
div.dataTables_wrapper {
 | 
			
		||||
  position: relative;
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_wrapper div.dataTables_length label {
 | 
			
		||||
  float: left;
 | 
			
		||||
  text-align: left;
 | 
			
		||||
  margin-bottom: 0;
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_wrapper div.dataTables_length select {
 | 
			
		||||
  width: 75px;
 | 
			
		||||
  margin-bottom: 0;
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_wrapper div.dataTables_filter label {
 | 
			
		||||
  float: right;
 | 
			
		||||
  margin-bottom: 0;
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_wrapper div.dataTables_filter input {
 | 
			
		||||
  display: inline-block !important;
 | 
			
		||||
  width: auto !important;
 | 
			
		||||
  margin-bottom: 0;
 | 
			
		||||
  margin-left: 0.5em;
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_wrapper div.dataTables_info {
 | 
			
		||||
  padding-top: 2px;
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_wrapper div.dataTables_paginate {
 | 
			
		||||
  float: right;
 | 
			
		||||
  margin: 0;
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_wrapper div.dataTables_processing {
 | 
			
		||||
  position: absolute;
 | 
			
		||||
  top: 50%;
 | 
			
		||||
  left: 50%;
 | 
			
		||||
  width: 200px;
 | 
			
		||||
  margin-left: -100px;
 | 
			
		||||
  margin-top: -26px;
 | 
			
		||||
  text-align: center;
 | 
			
		||||
  padding: 1rem 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
div.dataTables_scrollHead table {
 | 
			
		||||
  margin-bottom: 0 !important;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
div.dataTables_scrollBody table {
 | 
			
		||||
  border-top: none;
 | 
			
		||||
  margin-top: 0 !important;
 | 
			
		||||
  margin-bottom: 0 !important;
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_scrollBody table tbody tr:first-child th,
 | 
			
		||||
div.dataTables_scrollBody table tbody tr:first-child td {
 | 
			
		||||
  border-top: none;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
div.dataTables_scrollFoot table {
 | 
			
		||||
  margin-top: 0 !important;
 | 
			
		||||
  border-top: none;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										1
									
								
								Frontend/lib/dataTables/DataTables-1.13.4/css/dataTables.foundation.min.css
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,673 @@
 | 
			
		||||
@charset "UTF-8";
 | 
			
		||||
:root {
 | 
			
		||||
  --dt-row-selected: 13, 110, 253;
 | 
			
		||||
  --dt-row-selected-text: 255, 255, 255;
 | 
			
		||||
  --dt-row-selected-link: 9, 10, 11;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
table.dataTable td.dt-control {
 | 
			
		||||
  text-align: center;
 | 
			
		||||
  cursor: pointer;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable td.dt-control:before {
 | 
			
		||||
  height: 1em;
 | 
			
		||||
  width: 1em;
 | 
			
		||||
  margin-top: -9px;
 | 
			
		||||
  display: inline-block;
 | 
			
		||||
  color: white;
 | 
			
		||||
  border: 0.15em solid white;
 | 
			
		||||
  border-radius: 1em;
 | 
			
		||||
  box-shadow: 0 0 0.2em #444;
 | 
			
		||||
  box-sizing: content-box;
 | 
			
		||||
  text-align: center;
 | 
			
		||||
  text-indent: 0 !important;
 | 
			
		||||
  font-family: "Courier New", Courier, monospace;
 | 
			
		||||
  line-height: 1em;
 | 
			
		||||
  content: "+";
 | 
			
		||||
  background-color: #31b131;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable tr.dt-hasChild td.dt-control:before {
 | 
			
		||||
  content: "-";
 | 
			
		||||
  background-color: #d33333;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
:root {
 | 
			
		||||
  --dt-row-selected: 13, 110, 253;
 | 
			
		||||
  --dt-row-selected-text: 255, 255, 255;
 | 
			
		||||
  --dt-row-selected-link: 9, 10, 11;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
table.dataTable td.dt-control {
 | 
			
		||||
  text-align: center;
 | 
			
		||||
  cursor: pointer;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable td.dt-control:before {
 | 
			
		||||
  height: 1em;
 | 
			
		||||
  width: 1em;
 | 
			
		||||
  margin-top: -9px;
 | 
			
		||||
  display: inline-block;
 | 
			
		||||
  color: white;
 | 
			
		||||
  border: 0.15em solid white;
 | 
			
		||||
  border-radius: 1em;
 | 
			
		||||
  box-shadow: 0 0 0.2em #444;
 | 
			
		||||
  box-sizing: content-box;
 | 
			
		||||
  text-align: center;
 | 
			
		||||
  text-indent: 0 !important;
 | 
			
		||||
  font-family: "Courier New", Courier, monospace;
 | 
			
		||||
  line-height: 1em;
 | 
			
		||||
  content: "+";
 | 
			
		||||
  background-color: #31b131;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable tr.dt-hasChild td.dt-control:before {
 | 
			
		||||
  content: "-";
 | 
			
		||||
  background-color: #d33333;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
table.dataTable thead > tr > th.sorting, table.dataTable thead > tr > th.sorting_asc, table.dataTable thead > tr > th.sorting_desc, table.dataTable thead > tr > th.sorting_asc_disabled, table.dataTable thead > tr > th.sorting_desc_disabled,
 | 
			
		||||
table.dataTable thead > tr > td.sorting,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_asc,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_desc,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_asc_disabled,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_desc_disabled {
 | 
			
		||||
  cursor: pointer;
 | 
			
		||||
  position: relative;
 | 
			
		||||
  padding-right: 26px;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable thead > tr > th.sorting:before, table.dataTable thead > tr > th.sorting:after, table.dataTable thead > tr > th.sorting_asc:before, table.dataTable thead > tr > th.sorting_asc:after, table.dataTable thead > tr > th.sorting_desc:before, table.dataTable thead > tr > th.sorting_desc:after, table.dataTable thead > tr > th.sorting_asc_disabled:before, table.dataTable thead > tr > th.sorting_asc_disabled:after, table.dataTable thead > tr > th.sorting_desc_disabled:before, table.dataTable thead > tr > th.sorting_desc_disabled:after,
 | 
			
		||||
table.dataTable thead > tr > td.sorting:before,
 | 
			
		||||
table.dataTable thead > tr > td.sorting:after,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_asc:before,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_asc:after,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_desc:before,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_desc:after,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_asc_disabled:before,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_asc_disabled:after,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_desc_disabled:before,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_desc_disabled:after {
 | 
			
		||||
  position: absolute;
 | 
			
		||||
  display: block;
 | 
			
		||||
  opacity: 0.125;
 | 
			
		||||
  right: 10px;
 | 
			
		||||
  line-height: 9px;
 | 
			
		||||
  font-size: 0.8em;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable thead > tr > th.sorting:before, table.dataTable thead > tr > th.sorting_asc:before, table.dataTable thead > tr > th.sorting_desc:before, table.dataTable thead > tr > th.sorting_asc_disabled:before, table.dataTable thead > tr > th.sorting_desc_disabled:before,
 | 
			
		||||
table.dataTable thead > tr > td.sorting:before,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_asc:before,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_desc:before,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_asc_disabled:before,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_desc_disabled:before {
 | 
			
		||||
  bottom: 50%;
 | 
			
		||||
  content: "▲";
 | 
			
		||||
  content: "▲"/"";
 | 
			
		||||
}
 | 
			
		||||
table.dataTable thead > tr > th.sorting:after, table.dataTable thead > tr > th.sorting_asc:after, table.dataTable thead > tr > th.sorting_desc:after, table.dataTable thead > tr > th.sorting_asc_disabled:after, table.dataTable thead > tr > th.sorting_desc_disabled:after,
 | 
			
		||||
table.dataTable thead > tr > td.sorting:after,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_asc:after,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_desc:after,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_asc_disabled:after,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_desc_disabled:after {
 | 
			
		||||
  top: 50%;
 | 
			
		||||
  content: "▼";
 | 
			
		||||
  content: "▼"/"";
 | 
			
		||||
}
 | 
			
		||||
table.dataTable thead > tr > th.sorting_asc:before, table.dataTable thead > tr > th.sorting_desc:after,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_asc:before,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_desc:after {
 | 
			
		||||
  opacity: 0.6;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable thead > tr > th.sorting_desc_disabled:after, table.dataTable thead > tr > th.sorting_asc_disabled:before,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_desc_disabled:after,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_asc_disabled:before {
 | 
			
		||||
  display: none;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable thead > tr > th:active,
 | 
			
		||||
table.dataTable thead > tr > td:active {
 | 
			
		||||
  outline: none;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
div.dataTables_scrollBody > table.dataTable > thead > tr > th:before, div.dataTables_scrollBody > table.dataTable > thead > tr > th:after,
 | 
			
		||||
div.dataTables_scrollBody > table.dataTable > thead > tr > td:before,
 | 
			
		||||
div.dataTables_scrollBody > table.dataTable > thead > tr > td:after {
 | 
			
		||||
  display: none;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
div.dataTables_processing {
 | 
			
		||||
  position: absolute;
 | 
			
		||||
  top: 50%;
 | 
			
		||||
  left: 50%;
 | 
			
		||||
  width: 200px;
 | 
			
		||||
  margin-left: -100px;
 | 
			
		||||
  margin-top: -26px;
 | 
			
		||||
  text-align: center;
 | 
			
		||||
  padding: 2px;
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_processing > div:last-child {
 | 
			
		||||
  position: relative;
 | 
			
		||||
  width: 80px;
 | 
			
		||||
  height: 15px;
 | 
			
		||||
  margin: 1em auto;
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_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.dataTables_processing > div:last-child > div:nth-child(1) {
 | 
			
		||||
  left: 8px;
 | 
			
		||||
  animation: datatables-loader-1 0.6s infinite;
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_processing > div:last-child > div:nth-child(2) {
 | 
			
		||||
  left: 8px;
 | 
			
		||||
  animation: datatables-loader-2 0.6s infinite;
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_processing > div:last-child > div:nth-child(3) {
 | 
			
		||||
  left: 32px;
 | 
			
		||||
  animation: datatables-loader-2 0.6s infinite;
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_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.dt-left,
 | 
			
		||||
table.dataTable td.dt-left {
 | 
			
		||||
  text-align: left;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable th.dt-center,
 | 
			
		||||
table.dataTable td.dt-center,
 | 
			
		||||
table.dataTable td.dataTables_empty {
 | 
			
		||||
  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 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;
 | 
			
		||||
  clear: both;
 | 
			
		||||
  border-collapse: separate;
 | 
			
		||||
  border-spacing: 0;
 | 
			
		||||
  /*
 | 
			
		||||
   * Header and footer styles
 | 
			
		||||
   */
 | 
			
		||||
  /*
 | 
			
		||||
   * Body styles
 | 
			
		||||
   */
 | 
			
		||||
}
 | 
			
		||||
table.dataTable thead th,
 | 
			
		||||
table.dataTable tfoot th {
 | 
			
		||||
  font-weight: bold;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable thead th,
 | 
			
		||||
table.dataTable thead td {
 | 
			
		||||
  padding: 10px;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable thead th:active,
 | 
			
		||||
table.dataTable thead td:active {
 | 
			
		||||
  outline: none;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable tfoot th,
 | 
			
		||||
table.dataTable tfoot td {
 | 
			
		||||
  padding: 10px 10px 6px 10px;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable tbody tr {
 | 
			
		||||
  background-color: transparent;
 | 
			
		||||
}
 | 
			
		||||
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 th,
 | 
			
		||||
table.dataTable tbody td {
 | 
			
		||||
  padding: 8px 10px;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable.row-border tbody th, table.dataTable.row-border tbody td, table.dataTable.display tbody th, table.dataTable.display tbody td {
 | 
			
		||||
  border-top: 1px solid rgba(0, 0, 0, 0.15);
 | 
			
		||||
}
 | 
			
		||||
table.dataTable.row-border tbody tr:first-child th,
 | 
			
		||||
table.dataTable.row-border tbody tr:first-child td, table.dataTable.display tbody tr:first-child th,
 | 
			
		||||
table.dataTable.display tbody tr:first-child td {
 | 
			
		||||
  border-top: none;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable.cell-border tbody th, table.dataTable.cell-border tbody td {
 | 
			
		||||
  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 th:first-child,
 | 
			
		||||
table.dataTable.cell-border tbody tr td:first-child {
 | 
			
		||||
  border-left: 1px solid rgba(0, 0, 0, 0.15);
 | 
			
		||||
}
 | 
			
		||||
table.dataTable.cell-border tbody tr:first-child th,
 | 
			
		||||
table.dataTable.cell-border tbody tr:first-child td {
 | 
			
		||||
  border-top: none;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable.stripe > tbody > tr.odd > *, table.dataTable.display > tbody > tr.odd > * {
 | 
			
		||||
  box-shadow: inset 0 0 0 9999px rgba(0, 0, 0, 0.023);
 | 
			
		||||
}
 | 
			
		||||
table.dataTable.stripe > tbody > tr.odd.selected > *, table.dataTable.display > tbody > tr.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);
 | 
			
		||||
}
 | 
			
		||||
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);
 | 
			
		||||
}
 | 
			
		||||
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.odd > .sorting_1, table.dataTable.order-column.stripe > tbody > tr.odd > .sorting_1 {
 | 
			
		||||
  box-shadow: inset 0 0 0 9999px rgba(0, 0, 0, 0.054);
 | 
			
		||||
}
 | 
			
		||||
table.dataTable.display > tbody > tr.odd > .sorting_2, table.dataTable.order-column.stripe > tbody > tr.odd > .sorting_2 {
 | 
			
		||||
  box-shadow: inset 0 0 0 9999px rgba(0, 0, 0, 0.047);
 | 
			
		||||
}
 | 
			
		||||
table.dataTable.display > tbody > tr.odd > .sorting_3, table.dataTable.order-column.stripe > tbody > tr.odd > .sorting_3 {
 | 
			
		||||
  box-shadow: inset 0 0 0 9999px rgba(0, 0, 0, 0.039);
 | 
			
		||||
}
 | 
			
		||||
table.dataTable.display > tbody > tr.odd.selected > .sorting_1, table.dataTable.order-column.stripe > tbody > tr.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.odd.selected > .sorting_2, table.dataTable.order-column.stripe > tbody > tr.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.odd.selected > .sorting_3, table.dataTable.order-column.stripe > tbody > tr.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);
 | 
			
		||||
}
 | 
			
		||||
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);
 | 
			
		||||
}
 | 
			
		||||
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);
 | 
			
		||||
}
 | 
			
		||||
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);
 | 
			
		||||
}
 | 
			
		||||
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);
 | 
			
		||||
}
 | 
			
		||||
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);
 | 
			
		||||
}
 | 
			
		||||
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.no-footer {
 | 
			
		||||
  border-bottom: 1px solid rgba(0, 0, 0, 0.3);
 | 
			
		||||
}
 | 
			
		||||
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;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
table.dataTable th,
 | 
			
		||||
table.dataTable td {
 | 
			
		||||
  box-sizing: content-box;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Control feature layout
 | 
			
		||||
 */
 | 
			
		||||
.dataTables_wrapper {
 | 
			
		||||
  position: relative;
 | 
			
		||||
  clear: both;
 | 
			
		||||
}
 | 
			
		||||
.dataTables_wrapper .dataTables_length {
 | 
			
		||||
  float: left;
 | 
			
		||||
}
 | 
			
		||||
.dataTables_wrapper .dataTables_length select {
 | 
			
		||||
  border: 1px solid #aaa;
 | 
			
		||||
  border-radius: 3px;
 | 
			
		||||
  padding: 5px;
 | 
			
		||||
  background-color: transparent;
 | 
			
		||||
  padding: 4px;
 | 
			
		||||
}
 | 
			
		||||
.dataTables_wrapper .dataTables_filter {
 | 
			
		||||
  float: right;
 | 
			
		||||
  text-align: right;
 | 
			
		||||
}
 | 
			
		||||
.dataTables_wrapper .dataTables_filter input {
 | 
			
		||||
  border: 1px solid #aaa;
 | 
			
		||||
  border-radius: 3px;
 | 
			
		||||
  padding: 5px;
 | 
			
		||||
  background-color: transparent;
 | 
			
		||||
  margin-left: 3px;
 | 
			
		||||
}
 | 
			
		||||
.dataTables_wrapper .dataTables_info {
 | 
			
		||||
  clear: both;
 | 
			
		||||
  float: left;
 | 
			
		||||
  padding-top: 0.755em;
 | 
			
		||||
}
 | 
			
		||||
.dataTables_wrapper .dataTables_paginate {
 | 
			
		||||
  float: right;
 | 
			
		||||
  text-align: right;
 | 
			
		||||
  padding-top: 0.25em;
 | 
			
		||||
}
 | 
			
		||||
.dataTables_wrapper .dataTables_paginate .paginate_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;
 | 
			
		||||
}
 | 
			
		||||
.dataTables_wrapper .dataTables_paginate .paginate_button.current, .dataTables_wrapper .dataTables_paginate .paginate_button.current:hover {
 | 
			
		||||
  color: inherit !important;
 | 
			
		||||
  border: 1px solid rgba(0, 0, 0, 0.3);
 | 
			
		||||
  background-color: rgba(230, 230, 230, 0.1);
 | 
			
		||||
  background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, rgba(230, 230, 230, 0.1)), color-stop(100%, rgba(0, 0, 0, 0.1))); /* Chrome,Safari4+ */
 | 
			
		||||
  background: -webkit-linear-gradient(top, rgba(230, 230, 230, 0.1) 0%, rgba(0, 0, 0, 0.1) 100%); /* Chrome10+,Safari5.1+ */
 | 
			
		||||
  background: -moz-linear-gradient(top, rgba(230, 230, 230, 0.1) 0%, rgba(0, 0, 0, 0.1) 100%); /* FF3.6+ */
 | 
			
		||||
  background: -ms-linear-gradient(top, rgba(230, 230, 230, 0.1) 0%, rgba(0, 0, 0, 0.1) 100%); /* IE10+ */
 | 
			
		||||
  background: -o-linear-gradient(top, rgba(230, 230, 230, 0.1) 0%, rgba(0, 0, 0, 0.1) 100%); /* Opera 11.10+ */
 | 
			
		||||
  background: linear-gradient(to bottom, rgba(230, 230, 230, 0.1) 0%, rgba(0, 0, 0, 0.1) 100%); /* W3C */
 | 
			
		||||
}
 | 
			
		||||
.dataTables_wrapper .dataTables_paginate .paginate_button.disabled, .dataTables_wrapper .dataTables_paginate .paginate_button.disabled:hover, .dataTables_wrapper .dataTables_paginate .paginate_button.disabled:active {
 | 
			
		||||
  cursor: default;
 | 
			
		||||
  color: #666 !important;
 | 
			
		||||
  border: 1px solid transparent;
 | 
			
		||||
  background: transparent;
 | 
			
		||||
  box-shadow: none;
 | 
			
		||||
}
 | 
			
		||||
.dataTables_wrapper .dataTables_paginate .paginate_button:hover {
 | 
			
		||||
  color: white !important;
 | 
			
		||||
  border: 1px solid #111;
 | 
			
		||||
  background-color: #585858;
 | 
			
		||||
  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 */
 | 
			
		||||
}
 | 
			
		||||
.dataTables_wrapper .dataTables_paginate .paginate_button:active {
 | 
			
		||||
  outline: none;
 | 
			
		||||
  background-color: #2b2b2b;
 | 
			
		||||
  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;
 | 
			
		||||
}
 | 
			
		||||
.dataTables_wrapper .dataTables_paginate .ellipsis {
 | 
			
		||||
  padding: 0 1em;
 | 
			
		||||
}
 | 
			
		||||
.dataTables_wrapper .dataTables_length,
 | 
			
		||||
.dataTables_wrapper .dataTables_filter,
 | 
			
		||||
.dataTables_wrapper .dataTables_info,
 | 
			
		||||
.dataTables_wrapper .dataTables_processing,
 | 
			
		||||
.dataTables_wrapper .dataTables_paginate {
 | 
			
		||||
  color: inherit;
 | 
			
		||||
}
 | 
			
		||||
.dataTables_wrapper .dataTables_scroll {
 | 
			
		||||
  clear: both;
 | 
			
		||||
}
 | 
			
		||||
.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody {
 | 
			
		||||
  -webkit-overflow-scrolling: touch;
 | 
			
		||||
}
 | 
			
		||||
.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > thead > tr > th, .dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > thead > tr > td, .dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > tbody > tr > th, .dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > tbody > tr > td {
 | 
			
		||||
  vertical-align: middle;
 | 
			
		||||
}
 | 
			
		||||
.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > thead > tr > th > div.dataTables_sizing,
 | 
			
		||||
.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > thead > tr > td > div.dataTables_sizing, .dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > tbody > tr > th > div.dataTables_sizing,
 | 
			
		||||
.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > tbody > tr > td > div.dataTables_sizing {
 | 
			
		||||
  height: 0;
 | 
			
		||||
  overflow: hidden;
 | 
			
		||||
  margin: 0 !important;
 | 
			
		||||
  padding: 0 !important;
 | 
			
		||||
}
 | 
			
		||||
.dataTables_wrapper.no-footer .dataTables_scrollBody {
 | 
			
		||||
  border-bottom: 1px solid rgba(0, 0, 0, 0.3);
 | 
			
		||||
}
 | 
			
		||||
.dataTables_wrapper.no-footer div.dataTables_scrollHead table.dataTable,
 | 
			
		||||
.dataTables_wrapper.no-footer div.dataTables_scrollBody > table {
 | 
			
		||||
  border-bottom: none;
 | 
			
		||||
}
 | 
			
		||||
.dataTables_wrapper:after {
 | 
			
		||||
  visibility: hidden;
 | 
			
		||||
  display: block;
 | 
			
		||||
  content: "";
 | 
			
		||||
  clear: both;
 | 
			
		||||
  height: 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@media screen and (max-width: 767px) {
 | 
			
		||||
  .dataTables_wrapper .dataTables_info,
 | 
			
		||||
  .dataTables_wrapper .dataTables_paginate {
 | 
			
		||||
    float: none;
 | 
			
		||||
    text-align: center;
 | 
			
		||||
  }
 | 
			
		||||
  .dataTables_wrapper .dataTables_paginate {
 | 
			
		||||
    margin-top: 0.5em;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@media screen and (max-width: 640px) {
 | 
			
		||||
  .dataTables_wrapper .dataTables_length,
 | 
			
		||||
  .dataTables_wrapper .dataTables_filter {
 | 
			
		||||
    float: none;
 | 
			
		||||
    text-align: center;
 | 
			
		||||
  }
 | 
			
		||||
  .dataTables_wrapper .dataTables_filter {
 | 
			
		||||
    margin-top: 0.5em;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
table.dataTable thead th div.DataTables_sort_wrapper {
 | 
			
		||||
  position: relative;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable thead th div.DataTables_sort_wrapper span {
 | 
			
		||||
  position: absolute;
 | 
			
		||||
  top: 50%;
 | 
			
		||||
  margin-top: -8px;
 | 
			
		||||
  right: -18px;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable thead th.ui-state-default,
 | 
			
		||||
table.dataTable tfoot th.ui-state-default {
 | 
			
		||||
  border-left-width: 0;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable thead th.ui-state-default:first-child,
 | 
			
		||||
table.dataTable tfoot th.ui-state-default:first-child {
 | 
			
		||||
  border-left-width: 1px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Control feature layout
 | 
			
		||||
 */
 | 
			
		||||
.dataTables_wrapper .dataTables_paginate .fg-button {
 | 
			
		||||
  box-sizing: border-box;
 | 
			
		||||
  display: inline-block;
 | 
			
		||||
  min-width: 1.5em;
 | 
			
		||||
  padding: 0.5em;
 | 
			
		||||
  margin-left: 2px;
 | 
			
		||||
  text-align: center;
 | 
			
		||||
  text-decoration: none !important;
 | 
			
		||||
  cursor: pointer;
 | 
			
		||||
  border: 1px solid transparent;
 | 
			
		||||
}
 | 
			
		||||
.dataTables_wrapper .dataTables_paginate .fg-button:active {
 | 
			
		||||
  outline: none;
 | 
			
		||||
}
 | 
			
		||||
.dataTables_wrapper .dataTables_paginate .fg-button:first-child {
 | 
			
		||||
  border-top-left-radius: 3px;
 | 
			
		||||
  border-bottom-left-radius: 3px;
 | 
			
		||||
}
 | 
			
		||||
.dataTables_wrapper .dataTables_paginate .fg-button:last-child {
 | 
			
		||||
  border-top-right-radius: 3px;
 | 
			
		||||
  border-bottom-right-radius: 3px;
 | 
			
		||||
}
 | 
			
		||||
.dataTables_wrapper .ui-widget-header {
 | 
			
		||||
  font-weight: normal;
 | 
			
		||||
}
 | 
			
		||||
.dataTables_wrapper .ui-toolbar {
 | 
			
		||||
  padding: 8px;
 | 
			
		||||
}
 | 
			
		||||
.dataTables_wrapper.no-footer .dataTables_scrollBody {
 | 
			
		||||
  border-bottom: none;
 | 
			
		||||
}
 | 
			
		||||
.dataTables_wrapper .dataTables_length,
 | 
			
		||||
.dataTables_wrapper .dataTables_filter,
 | 
			
		||||
.dataTables_wrapper .dataTables_info,
 | 
			
		||||
.dataTables_wrapper .dataTables_processing,
 | 
			
		||||
.dataTables_wrapper .dataTables_paginate {
 | 
			
		||||
  color: inherit;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										1
									
								
								Frontend/lib/dataTables/DataTables-1.13.4/css/dataTables.jqueryui.min.css
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,348 @@
 | 
			
		||||
@charset "UTF-8";
 | 
			
		||||
:root {
 | 
			
		||||
  --dt-row-selected: 224, 224, 224;
 | 
			
		||||
  --dt-row-selected-text: 0, 0, 0;
 | 
			
		||||
  --dt-row-selected-link: 9, 10, 11;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
table.dataTable td.dt-control {
 | 
			
		||||
  text-align: center;
 | 
			
		||||
  cursor: pointer;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable td.dt-control:before {
 | 
			
		||||
  height: 1em;
 | 
			
		||||
  width: 1em;
 | 
			
		||||
  margin-top: -9px;
 | 
			
		||||
  display: inline-block;
 | 
			
		||||
  color: white;
 | 
			
		||||
  border: 0.15em solid white;
 | 
			
		||||
  border-radius: 1em;
 | 
			
		||||
  box-shadow: 0 0 0.2em #444;
 | 
			
		||||
  box-sizing: content-box;
 | 
			
		||||
  text-align: center;
 | 
			
		||||
  text-indent: 0 !important;
 | 
			
		||||
  font-family: "Courier New", Courier, monospace;
 | 
			
		||||
  line-height: 1em;
 | 
			
		||||
  content: "+";
 | 
			
		||||
  background-color: #31b131;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable tr.dt-hasChild td.dt-control:before {
 | 
			
		||||
  content: "-";
 | 
			
		||||
  background-color: #d33333;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
table.dataTable thead > tr > th.sorting, table.dataTable thead > tr > th.sorting_asc, table.dataTable thead > tr > th.sorting_desc, table.dataTable thead > tr > th.sorting_asc_disabled, table.dataTable thead > tr > th.sorting_desc_disabled,
 | 
			
		||||
table.dataTable thead > tr > td.sorting,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_asc,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_desc,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_asc_disabled,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_desc_disabled {
 | 
			
		||||
  cursor: pointer;
 | 
			
		||||
  position: relative;
 | 
			
		||||
  padding-right: 26px;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable thead > tr > th.sorting:before, table.dataTable thead > tr > th.sorting:after, table.dataTable thead > tr > th.sorting_asc:before, table.dataTable thead > tr > th.sorting_asc:after, table.dataTable thead > tr > th.sorting_desc:before, table.dataTable thead > tr > th.sorting_desc:after, table.dataTable thead > tr > th.sorting_asc_disabled:before, table.dataTable thead > tr > th.sorting_asc_disabled:after, table.dataTable thead > tr > th.sorting_desc_disabled:before, table.dataTable thead > tr > th.sorting_desc_disabled:after,
 | 
			
		||||
table.dataTable thead > tr > td.sorting:before,
 | 
			
		||||
table.dataTable thead > tr > td.sorting:after,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_asc:before,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_asc:after,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_desc:before,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_desc:after,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_asc_disabled:before,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_asc_disabled:after,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_desc_disabled:before,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_desc_disabled:after {
 | 
			
		||||
  position: absolute;
 | 
			
		||||
  display: block;
 | 
			
		||||
  opacity: 0.125;
 | 
			
		||||
  right: 10px;
 | 
			
		||||
  line-height: 9px;
 | 
			
		||||
  font-size: 0.8em;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable thead > tr > th.sorting:before, table.dataTable thead > tr > th.sorting_asc:before, table.dataTable thead > tr > th.sorting_desc:before, table.dataTable thead > tr > th.sorting_asc_disabled:before, table.dataTable thead > tr > th.sorting_desc_disabled:before,
 | 
			
		||||
table.dataTable thead > tr > td.sorting:before,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_asc:before,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_desc:before,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_asc_disabled:before,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_desc_disabled:before {
 | 
			
		||||
  bottom: 50%;
 | 
			
		||||
  content: "▲";
 | 
			
		||||
  content: "▲"/"";
 | 
			
		||||
}
 | 
			
		||||
table.dataTable thead > tr > th.sorting:after, table.dataTable thead > tr > th.sorting_asc:after, table.dataTable thead > tr > th.sorting_desc:after, table.dataTable thead > tr > th.sorting_asc_disabled:after, table.dataTable thead > tr > th.sorting_desc_disabled:after,
 | 
			
		||||
table.dataTable thead > tr > td.sorting:after,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_asc:after,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_desc:after,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_asc_disabled:after,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_desc_disabled:after {
 | 
			
		||||
  top: 50%;
 | 
			
		||||
  content: "▼";
 | 
			
		||||
  content: "▼"/"";
 | 
			
		||||
}
 | 
			
		||||
table.dataTable thead > tr > th.sorting_asc:before, table.dataTable thead > tr > th.sorting_desc:after,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_asc:before,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_desc:after {
 | 
			
		||||
  opacity: 0.6;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable thead > tr > th.sorting_desc_disabled:after, table.dataTable thead > tr > th.sorting_asc_disabled:before,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_desc_disabled:after,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_asc_disabled:before {
 | 
			
		||||
  display: none;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable thead > tr > th:active,
 | 
			
		||||
table.dataTable thead > tr > td:active {
 | 
			
		||||
  outline: none;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
div.dataTables_scrollBody > table.dataTable > thead > tr > th:before, div.dataTables_scrollBody > table.dataTable > thead > tr > th:after,
 | 
			
		||||
div.dataTables_scrollBody > table.dataTable > thead > tr > td:before,
 | 
			
		||||
div.dataTables_scrollBody > table.dataTable > thead > tr > td:after {
 | 
			
		||||
  display: none;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
div.dataTables_processing {
 | 
			
		||||
  position: absolute;
 | 
			
		||||
  top: 50%;
 | 
			
		||||
  left: 50%;
 | 
			
		||||
  width: 200px;
 | 
			
		||||
  margin-left: -100px;
 | 
			
		||||
  margin-top: -26px;
 | 
			
		||||
  text-align: center;
 | 
			
		||||
  padding: 2px;
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_processing > div:last-child {
 | 
			
		||||
  position: relative;
 | 
			
		||||
  width: 80px;
 | 
			
		||||
  height: 15px;
 | 
			
		||||
  margin: 1em auto;
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_processing > div:last-child > div {
 | 
			
		||||
  position: absolute;
 | 
			
		||||
  top: 0;
 | 
			
		||||
  width: 13px;
 | 
			
		||||
  height: 13px;
 | 
			
		||||
  border-radius: 50%;
 | 
			
		||||
  background: rgb(224, 224, 224);
 | 
			
		||||
  background: rgb(var(--dt-row-selected));
 | 
			
		||||
  animation-timing-function: cubic-bezier(0, 1, 1, 0);
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_processing > div:last-child > div:nth-child(1) {
 | 
			
		||||
  left: 8px;
 | 
			
		||||
  animation: datatables-loader-1 0.6s infinite;
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_processing > div:last-child > div:nth-child(2) {
 | 
			
		||||
  left: 8px;
 | 
			
		||||
  animation: datatables-loader-2 0.6s infinite;
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_processing > div:last-child > div:nth-child(3) {
 | 
			
		||||
  left: 32px;
 | 
			
		||||
  animation: datatables-loader-2 0.6s infinite;
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_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.dt-left,
 | 
			
		||||
table.dataTable td.dt-left {
 | 
			
		||||
  text-align: left;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable th.dt-center,
 | 
			
		||||
table.dataTable td.dt-center,
 | 
			
		||||
table.dataTable td.dataTables_empty {
 | 
			
		||||
  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 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;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Styling for DataTables with Semantic UI
 | 
			
		||||
 */
 | 
			
		||||
table.dataTable.table {
 | 
			
		||||
  margin: 0;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable.table td,
 | 
			
		||||
table.dataTable.table th {
 | 
			
		||||
  -webkit-box-sizing: content-box;
 | 
			
		||||
  box-sizing: content-box;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable.table td.dataTables_empty,
 | 
			
		||||
table.dataTable.table th.dataTables_empty {
 | 
			
		||||
  text-align: center;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable.table.nowrap th,
 | 
			
		||||
table.dataTable.table.nowrap td {
 | 
			
		||||
  white-space: nowrap;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable.table.ui.striped > tbody > tr:nth-child(2n) {
 | 
			
		||||
  background-color: transparent;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable.table > tbody > tr {
 | 
			
		||||
  background-color: transparent;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable.table > tbody > tr.selected > * {
 | 
			
		||||
  box-shadow: inset 0 0 0 9999px rgb(224, 224, 224);
 | 
			
		||||
  box-shadow: inset 0 0 0 9999px rgb(var(--dt-row-selected));
 | 
			
		||||
  color: rgb(0, 0, 0);
 | 
			
		||||
  color: rgb(var(--dt-row-selected-text));
 | 
			
		||||
}
 | 
			
		||||
table.dataTable.table > tbody > tr.selected a {
 | 
			
		||||
  color: rgb(9, 10, 11);
 | 
			
		||||
  color: rgb(var(--dt-row-selected-link));
 | 
			
		||||
}
 | 
			
		||||
table.dataTable.table.striped > tbody > tr.odd > * {
 | 
			
		||||
  box-shadow: inset 0 0 0 9999px rgba(0, 0, 0, 0.02);
 | 
			
		||||
}
 | 
			
		||||
table.dataTable.table.striped > tbody > tr.odd.selected > * {
 | 
			
		||||
  box-shadow: inset 0 0 0 9999px rgba(224, 224, 224, 0.92);
 | 
			
		||||
  box-shadow: inset 0 0 0 9999px rgba(var(--dt-row-selected), 0.92);
 | 
			
		||||
}
 | 
			
		||||
table.dataTable.table.hover > tbody > tr:hover > * {
 | 
			
		||||
  box-shadow: inset 0 0 0 9999px rgba(0, 0, 0, 0.075);
 | 
			
		||||
}
 | 
			
		||||
table.dataTable.table.hover > tbody > tr.selected:hover > * {
 | 
			
		||||
  box-shadow: inset 0 0 0 9999px rgba(224, 224, 224, 0.975);
 | 
			
		||||
  box-shadow: inset 0 0 0 9999px rgba(var(--dt-row-selected), 0.975);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
div.dataTables_wrapper div.dataTables_length select {
 | 
			
		||||
  vertical-align: middle;
 | 
			
		||||
  min-height: 2.7142em;
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_wrapper div.dataTables_length .ui.selection.dropdown {
 | 
			
		||||
  min-width: 0;
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_wrapper div.dataTables_filter span.input {
 | 
			
		||||
  margin-left: 0.5em;
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_wrapper div.dataTables_info {
 | 
			
		||||
  padding-top: 13px;
 | 
			
		||||
  white-space: nowrap;
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_wrapper div.dataTables_processing {
 | 
			
		||||
  position: absolute;
 | 
			
		||||
  top: 50%;
 | 
			
		||||
  left: 50%;
 | 
			
		||||
  width: 200px;
 | 
			
		||||
  margin-left: -100px;
 | 
			
		||||
  text-align: center;
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_wrapper div.row.dt-table {
 | 
			
		||||
  padding: 0;
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_wrapper div.dataTables_scrollHead table.dataTable {
 | 
			
		||||
  border-bottom-right-radius: 0;
 | 
			
		||||
  border-bottom-left-radius: 0;
 | 
			
		||||
  border-bottom: none;
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_wrapper div.dataTables_scrollBody thead .sorting:after,
 | 
			
		||||
div.dataTables_wrapper div.dataTables_scrollBody thead .sorting_asc:after,
 | 
			
		||||
div.dataTables_wrapper div.dataTables_scrollBody thead .sorting_desc:after {
 | 
			
		||||
  display: none;
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_wrapper div.dataTables_scrollBody table.dataTable {
 | 
			
		||||
  border-radius: 0;
 | 
			
		||||
  border-top: none;
 | 
			
		||||
  border-bottom-width: 0;
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_wrapper div.dataTables_scrollBody table.dataTable.no-footer {
 | 
			
		||||
  border-bottom-width: 1px;
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_wrapper div.dataTables_scrollFoot table.dataTable {
 | 
			
		||||
  border-top-right-radius: 0;
 | 
			
		||||
  border-top-left-radius: 0;
 | 
			
		||||
  border-top: none;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										1
									
								
								Frontend/lib/dataTables/DataTables-1.13.4/css/dataTables.semanticui.min.css
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,584 @@
 | 
			
		||||
@charset "UTF-8";
 | 
			
		||||
:root {
 | 
			
		||||
  --dt-row-selected: 13, 110, 253;
 | 
			
		||||
  --dt-row-selected-text: 255, 255, 255;
 | 
			
		||||
  --dt-row-selected-link: 9, 10, 11;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
table.dataTable td.dt-control {
 | 
			
		||||
  text-align: center;
 | 
			
		||||
  cursor: pointer;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable td.dt-control:before {
 | 
			
		||||
  height: 1em;
 | 
			
		||||
  width: 1em;
 | 
			
		||||
  margin-top: -9px;
 | 
			
		||||
  display: inline-block;
 | 
			
		||||
  color: white;
 | 
			
		||||
  border: 0.15em solid white;
 | 
			
		||||
  border-radius: 1em;
 | 
			
		||||
  box-shadow: 0 0 0.2em #444;
 | 
			
		||||
  box-sizing: content-box;
 | 
			
		||||
  text-align: center;
 | 
			
		||||
  text-indent: 0 !important;
 | 
			
		||||
  font-family: "Courier New", Courier, monospace;
 | 
			
		||||
  line-height: 1em;
 | 
			
		||||
  content: "+";
 | 
			
		||||
  background-color: #31b131;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable tr.dt-hasChild td.dt-control:before {
 | 
			
		||||
  content: "-";
 | 
			
		||||
  background-color: #d33333;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
table.dataTable thead > tr > th.sorting, table.dataTable thead > tr > th.sorting_asc, table.dataTable thead > tr > th.sorting_desc, table.dataTable thead > tr > th.sorting_asc_disabled, table.dataTable thead > tr > th.sorting_desc_disabled,
 | 
			
		||||
table.dataTable thead > tr > td.sorting,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_asc,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_desc,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_asc_disabled,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_desc_disabled {
 | 
			
		||||
  cursor: pointer;
 | 
			
		||||
  position: relative;
 | 
			
		||||
  padding-right: 26px;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable thead > tr > th.sorting:before, table.dataTable thead > tr > th.sorting:after, table.dataTable thead > tr > th.sorting_asc:before, table.dataTable thead > tr > th.sorting_asc:after, table.dataTable thead > tr > th.sorting_desc:before, table.dataTable thead > tr > th.sorting_desc:after, table.dataTable thead > tr > th.sorting_asc_disabled:before, table.dataTable thead > tr > th.sorting_asc_disabled:after, table.dataTable thead > tr > th.sorting_desc_disabled:before, table.dataTable thead > tr > th.sorting_desc_disabled:after,
 | 
			
		||||
table.dataTable thead > tr > td.sorting:before,
 | 
			
		||||
table.dataTable thead > tr > td.sorting:after,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_asc:before,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_asc:after,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_desc:before,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_desc:after,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_asc_disabled:before,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_asc_disabled:after,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_desc_disabled:before,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_desc_disabled:after {
 | 
			
		||||
  position: absolute;
 | 
			
		||||
  display: block;
 | 
			
		||||
  opacity: 0.125;
 | 
			
		||||
  right: 10px;
 | 
			
		||||
  line-height: 9px;
 | 
			
		||||
  font-size: 0.8em;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable thead > tr > th.sorting:before, table.dataTable thead > tr > th.sorting_asc:before, table.dataTable thead > tr > th.sorting_desc:before, table.dataTable thead > tr > th.sorting_asc_disabled:before, table.dataTable thead > tr > th.sorting_desc_disabled:before,
 | 
			
		||||
table.dataTable thead > tr > td.sorting:before,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_asc:before,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_desc:before,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_asc_disabled:before,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_desc_disabled:before {
 | 
			
		||||
  bottom: 50%;
 | 
			
		||||
  content: "▲";
 | 
			
		||||
  content: "▲"/"";
 | 
			
		||||
}
 | 
			
		||||
table.dataTable thead > tr > th.sorting:after, table.dataTable thead > tr > th.sorting_asc:after, table.dataTable thead > tr > th.sorting_desc:after, table.dataTable thead > tr > th.sorting_asc_disabled:after, table.dataTable thead > tr > th.sorting_desc_disabled:after,
 | 
			
		||||
table.dataTable thead > tr > td.sorting:after,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_asc:after,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_desc:after,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_asc_disabled:after,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_desc_disabled:after {
 | 
			
		||||
  top: 50%;
 | 
			
		||||
  content: "▼";
 | 
			
		||||
  content: "▼"/"";
 | 
			
		||||
}
 | 
			
		||||
table.dataTable thead > tr > th.sorting_asc:before, table.dataTable thead > tr > th.sorting_desc:after,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_asc:before,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_desc:after {
 | 
			
		||||
  opacity: 0.6;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable thead > tr > th.sorting_desc_disabled:after, table.dataTable thead > tr > th.sorting_asc_disabled:before,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_desc_disabled:after,
 | 
			
		||||
table.dataTable thead > tr > td.sorting_asc_disabled:before {
 | 
			
		||||
  display: none;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable thead > tr > th:active,
 | 
			
		||||
table.dataTable thead > tr > td:active {
 | 
			
		||||
  outline: none;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
div.dataTables_scrollBody > table.dataTable > thead > tr > th:before, div.dataTables_scrollBody > table.dataTable > thead > tr > th:after,
 | 
			
		||||
div.dataTables_scrollBody > table.dataTable > thead > tr > td:before,
 | 
			
		||||
div.dataTables_scrollBody > table.dataTable > thead > tr > td:after {
 | 
			
		||||
  display: none;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
div.dataTables_processing {
 | 
			
		||||
  position: absolute;
 | 
			
		||||
  top: 50%;
 | 
			
		||||
  left: 50%;
 | 
			
		||||
  width: 200px;
 | 
			
		||||
  margin-left: -100px;
 | 
			
		||||
  margin-top: -26px;
 | 
			
		||||
  text-align: center;
 | 
			
		||||
  padding: 2px;
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_processing > div:last-child {
 | 
			
		||||
  position: relative;
 | 
			
		||||
  width: 80px;
 | 
			
		||||
  height: 15px;
 | 
			
		||||
  margin: 1em auto;
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_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.dataTables_processing > div:last-child > div:nth-child(1) {
 | 
			
		||||
  left: 8px;
 | 
			
		||||
  animation: datatables-loader-1 0.6s infinite;
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_processing > div:last-child > div:nth-child(2) {
 | 
			
		||||
  left: 8px;
 | 
			
		||||
  animation: datatables-loader-2 0.6s infinite;
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_processing > div:last-child > div:nth-child(3) {
 | 
			
		||||
  left: 32px;
 | 
			
		||||
  animation: datatables-loader-2 0.6s infinite;
 | 
			
		||||
}
 | 
			
		||||
div.dataTables_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.dt-left,
 | 
			
		||||
table.dataTable td.dt-left {
 | 
			
		||||
  text-align: left;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable th.dt-center,
 | 
			
		||||
table.dataTable td.dt-center,
 | 
			
		||||
table.dataTable td.dataTables_empty {
 | 
			
		||||
  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 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;
 | 
			
		||||
  clear: both;
 | 
			
		||||
  border-collapse: separate;
 | 
			
		||||
  border-spacing: 0;
 | 
			
		||||
  /*
 | 
			
		||||
   * Header and footer styles
 | 
			
		||||
   */
 | 
			
		||||
  /*
 | 
			
		||||
   * Body styles
 | 
			
		||||
   */
 | 
			
		||||
}
 | 
			
		||||
table.dataTable thead th,
 | 
			
		||||
table.dataTable tfoot th {
 | 
			
		||||
  font-weight: bold;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable thead th,
 | 
			
		||||
table.dataTable thead td {
 | 
			
		||||
  padding: 10px;
 | 
			
		||||
  border-bottom: 1px solid rgba(0, 0, 0, 0.3);
 | 
			
		||||
}
 | 
			
		||||
table.dataTable thead th:active,
 | 
			
		||||
table.dataTable thead td:active {
 | 
			
		||||
  outline: none;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable tfoot th,
 | 
			
		||||
table.dataTable tfoot td {
 | 
			
		||||
  padding: 10px 10px 6px 10px;
 | 
			
		||||
  border-top: 1px solid rgba(0, 0, 0, 0.3);
 | 
			
		||||
}
 | 
			
		||||
table.dataTable tbody tr {
 | 
			
		||||
  background-color: transparent;
 | 
			
		||||
}
 | 
			
		||||
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 th,
 | 
			
		||||
table.dataTable tbody td {
 | 
			
		||||
  padding: 8px 10px;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable.row-border tbody th, table.dataTable.row-border tbody td, table.dataTable.display tbody th, table.dataTable.display tbody td {
 | 
			
		||||
  border-top: 1px solid rgba(0, 0, 0, 0.15);
 | 
			
		||||
}
 | 
			
		||||
table.dataTable.row-border tbody tr:first-child th,
 | 
			
		||||
table.dataTable.row-border tbody tr:first-child td, table.dataTable.display tbody tr:first-child th,
 | 
			
		||||
table.dataTable.display tbody tr:first-child td {
 | 
			
		||||
  border-top: none;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable.cell-border tbody th, table.dataTable.cell-border tbody td {
 | 
			
		||||
  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 th:first-child,
 | 
			
		||||
table.dataTable.cell-border tbody tr td:first-child {
 | 
			
		||||
  border-left: 1px solid rgba(0, 0, 0, 0.15);
 | 
			
		||||
}
 | 
			
		||||
table.dataTable.cell-border tbody tr:first-child th,
 | 
			
		||||
table.dataTable.cell-border tbody tr:first-child td {
 | 
			
		||||
  border-top: none;
 | 
			
		||||
}
 | 
			
		||||
table.dataTable.stripe > tbody > tr.odd > *, table.dataTable.display > tbody > tr.odd > * {
 | 
			
		||||
  box-shadow: inset 0 0 0 9999px rgba(0, 0, 0, 0.023);
 | 
			
		||||
}
 | 
			
		||||
table.dataTable.stripe > tbody > tr.odd.selected > *, table.dataTable.display > tbody > tr.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);
 | 
			
		||||
}
 | 
			
		||||
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);
 | 
			
		||||
}
 | 
			
		||||
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.odd > .sorting_1, table.dataTable.order-column.stripe > tbody > tr.odd > .sorting_1 {
 | 
			
		||||
  box-shadow: inset 0 0 0 9999px rgba(0, 0, 0, 0.054);
 | 
			
		||||
}
 | 
			
		||||
table.dataTable.display > tbody > tr.odd > .sorting_2, table.dataTable.order-column.stripe > tbody > tr.odd > .sorting_2 {
 | 
			
		||||
  box-shadow: inset 0 0 0 9999px rgba(0, 0, 0, 0.047);
 | 
			
		||||
}
 | 
			
		||||
table.dataTable.display > tbody > tr.odd > .sorting_3, table.dataTable.order-column.stripe > tbody > tr.odd > .sorting_3 {
 | 
			
		||||
  box-shadow: inset 0 0 0 9999px rgba(0, 0, 0, 0.039);
 | 
			
		||||
}
 | 
			
		||||
table.dataTable.display > tbody > tr.odd.selected > .sorting_1, table.dataTable.order-column.stripe > tbody > tr.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.odd.selected > .sorting_2, table.dataTable.order-column.stripe > tbody > tr.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.odd.selected > .sorting_3, table.dataTable.order-column.stripe > tbody > tr.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);
 | 
			
		||||
}
 | 
			
		||||
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);
 | 
			
		||||
}
 | 
			
		||||
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);
 | 
			
		||||
}
 | 
			
		||||
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);
 | 
			
		||||
}
 | 
			
		||||
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);
 | 
			
		||||
}
 | 
			
		||||
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);
 | 
			
		||||
}
 | 
			
		||||
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.no-footer {
 | 
			
		||||
  border-bottom: 1px solid rgba(0, 0, 0, 0.3);
 | 
			
		||||
}
 | 
			
		||||
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;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
table.dataTable th,
 | 
			
		||||
table.dataTable td {
 | 
			
		||||
  box-sizing: content-box;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Control feature layout
 | 
			
		||||
 */
 | 
			
		||||
.dataTables_wrapper {
 | 
			
		||||
  position: relative;
 | 
			
		||||
  clear: both;
 | 
			
		||||
}
 | 
			
		||||
.dataTables_wrapper .dataTables_length {
 | 
			
		||||
  float: left;
 | 
			
		||||
}
 | 
			
		||||
.dataTables_wrapper .dataTables_length select {
 | 
			
		||||
  border: 1px solid #aaa;
 | 
			
		||||
  border-radius: 3px;
 | 
			
		||||
  padding: 5px;
 | 
			
		||||
  background-color: transparent;
 | 
			
		||||
  padding: 4px;
 | 
			
		||||
}
 | 
			
		||||
.dataTables_wrapper .dataTables_filter {
 | 
			
		||||
  float: right;
 | 
			
		||||
  text-align: right;
 | 
			
		||||
}
 | 
			
		||||
.dataTables_wrapper .dataTables_filter input {
 | 
			
		||||
  border: 1px solid #aaa;
 | 
			
		||||
  border-radius: 3px;
 | 
			
		||||
  padding: 5px;
 | 
			
		||||
  background-color: transparent;
 | 
			
		||||
  margin-left: 3px;
 | 
			
		||||
}
 | 
			
		||||
.dataTables_wrapper .dataTables_info {
 | 
			
		||||
  clear: both;
 | 
			
		||||
  float: left;
 | 
			
		||||
  padding-top: 0.755em;
 | 
			
		||||
}
 | 
			
		||||
.dataTables_wrapper .dataTables_paginate {
 | 
			
		||||
  float: right;
 | 
			
		||||
  text-align: right;
 | 
			
		||||
  padding-top: 0.25em;
 | 
			
		||||
}
 | 
			
		||||
.dataTables_wrapper .dataTables_paginate .paginate_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;
 | 
			
		||||
}
 | 
			
		||||
.dataTables_wrapper .dataTables_paginate .paginate_button.current, .dataTables_wrapper .dataTables_paginate .paginate_button.current:hover {
 | 
			
		||||
  color: inherit !important;
 | 
			
		||||
  border: 1px solid rgba(0, 0, 0, 0.3);
 | 
			
		||||
  background-color: rgba(230, 230, 230, 0.1);
 | 
			
		||||
  background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, rgba(230, 230, 230, 0.1)), color-stop(100%, rgba(0, 0, 0, 0.1))); /* Chrome,Safari4+ */
 | 
			
		||||
  background: -webkit-linear-gradient(top, rgba(230, 230, 230, 0.1) 0%, rgba(0, 0, 0, 0.1) 100%); /* Chrome10+,Safari5.1+ */
 | 
			
		||||
  background: -moz-linear-gradient(top, rgba(230, 230, 230, 0.1) 0%, rgba(0, 0, 0, 0.1) 100%); /* FF3.6+ */
 | 
			
		||||
  background: -ms-linear-gradient(top, rgba(230, 230, 230, 0.1) 0%, rgba(0, 0, 0, 0.1) 100%); /* IE10+ */
 | 
			
		||||
  background: -o-linear-gradient(top, rgba(230, 230, 230, 0.1) 0%, rgba(0, 0, 0, 0.1) 100%); /* Opera 11.10+ */
 | 
			
		||||
  background: linear-gradient(to bottom, rgba(230, 230, 230, 0.1) 0%, rgba(0, 0, 0, 0.1) 100%); /* W3C */
 | 
			
		||||
}
 | 
			
		||||
.dataTables_wrapper .dataTables_paginate .paginate_button.disabled, .dataTables_wrapper .dataTables_paginate .paginate_button.disabled:hover, .dataTables_wrapper .dataTables_paginate .paginate_button.disabled:active {
 | 
			
		||||
  cursor: default;
 | 
			
		||||
  color: #666 !important;
 | 
			
		||||
  border: 1px solid transparent;
 | 
			
		||||
  background: transparent;
 | 
			
		||||
  box-shadow: none;
 | 
			
		||||
}
 | 
			
		||||
.dataTables_wrapper .dataTables_paginate .paginate_button:hover {
 | 
			
		||||
  color: white !important;
 | 
			
		||||
  border: 1px solid #111;
 | 
			
		||||
  background-color: #585858;
 | 
			
		||||
  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 */
 | 
			
		||||
}
 | 
			
		||||
.dataTables_wrapper .dataTables_paginate .paginate_button:active {
 | 
			
		||||
  outline: none;
 | 
			
		||||
  background-color: #2b2b2b;
 | 
			
		||||
  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;
 | 
			
		||||
}
 | 
			
		||||
.dataTables_wrapper .dataTables_paginate .ellipsis {
 | 
			
		||||
  padding: 0 1em;
 | 
			
		||||
}
 | 
			
		||||
.dataTables_wrapper .dataTables_length,
 | 
			
		||||
.dataTables_wrapper .dataTables_filter,
 | 
			
		||||
.dataTables_wrapper .dataTables_info,
 | 
			
		||||
.dataTables_wrapper .dataTables_processing,
 | 
			
		||||
.dataTables_wrapper .dataTables_paginate {
 | 
			
		||||
  color: inherit;
 | 
			
		||||
}
 | 
			
		||||
.dataTables_wrapper .dataTables_scroll {
 | 
			
		||||
  clear: both;
 | 
			
		||||
}
 | 
			
		||||
.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody {
 | 
			
		||||
  -webkit-overflow-scrolling: touch;
 | 
			
		||||
}
 | 
			
		||||
.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > thead > tr > th, .dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > thead > tr > td, .dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > tbody > tr > th, .dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > tbody > tr > td {
 | 
			
		||||
  vertical-align: middle;
 | 
			
		||||
}
 | 
			
		||||
.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > thead > tr > th > div.dataTables_sizing,
 | 
			
		||||
.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > thead > tr > td > div.dataTables_sizing, .dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > tbody > tr > th > div.dataTables_sizing,
 | 
			
		||||
.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > tbody > tr > td > div.dataTables_sizing {
 | 
			
		||||
  height: 0;
 | 
			
		||||
  overflow: hidden;
 | 
			
		||||
  margin: 0 !important;
 | 
			
		||||
  padding: 0 !important;
 | 
			
		||||
}
 | 
			
		||||
.dataTables_wrapper.no-footer .dataTables_scrollBody {
 | 
			
		||||
  border-bottom: 1px solid rgba(0, 0, 0, 0.3);
 | 
			
		||||
}
 | 
			
		||||
.dataTables_wrapper.no-footer div.dataTables_scrollHead table.dataTable,
 | 
			
		||||
.dataTables_wrapper.no-footer div.dataTables_scrollBody > table {
 | 
			
		||||
  border-bottom: none;
 | 
			
		||||
}
 | 
			
		||||
.dataTables_wrapper:after {
 | 
			
		||||
  visibility: hidden;
 | 
			
		||||
  display: block;
 | 
			
		||||
  content: "";
 | 
			
		||||
  clear: both;
 | 
			
		||||
  height: 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@media screen and (max-width: 767px) {
 | 
			
		||||
  .dataTables_wrapper .dataTables_info,
 | 
			
		||||
  .dataTables_wrapper .dataTables_paginate {
 | 
			
		||||
    float: none;
 | 
			
		||||
    text-align: center;
 | 
			
		||||
  }
 | 
			
		||||
  .dataTables_wrapper .dataTables_paginate {
 | 
			
		||||
    margin-top: 0.5em;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@media screen and (max-width: 640px) {
 | 
			
		||||
  .dataTables_wrapper .dataTables_length,
 | 
			
		||||
  .dataTables_wrapper .dataTables_filter {
 | 
			
		||||
    float: none;
 | 
			
		||||
    text-align: center;
 | 
			
		||||
  }
 | 
			
		||||
  .dataTables_wrapper .dataTables_filter {
 | 
			
		||||
    margin-top: 0.5em;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										1
									
								
								Frontend/lib/dataTables/DataTables-1.13.4/css/jquery.dataTables.min.css
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								Frontend/lib/dataTables/DataTables-1.13.4/images/sort_asc.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 160 B  | 
| 
		 After Width: | Height: | Size: 148 B  | 
							
								
								
									
										
											BIN
										
									
								
								Frontend/lib/dataTables/DataTables-1.13.4/images/sort_both.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 201 B  | 
							
								
								
									
										
											BIN
										
									
								
								Frontend/lib/dataTables/DataTables-1.13.4/images/sort_desc.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 158 B  | 
| 
		 After Width: | Height: | Size: 146 B  | 
@ -0,0 +1,200 @@
 | 
			
		||||
/*! DataTables Bootstrap 3 integration
 | 
			
		||||
 * ©2011-2015 SpryMedia Ltd - datatables.net/license
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
(function( factory ){
 | 
			
		||||
	if ( typeof define === 'function' && define.amd ) {
 | 
			
		||||
		// AMD
 | 
			
		||||
		define( ['jquery', 'datatables.net'], function ( $ ) {
 | 
			
		||||
			return factory( $, window, document );
 | 
			
		||||
		} );
 | 
			
		||||
	}
 | 
			
		||||
	else if ( typeof exports === 'object' ) {
 | 
			
		||||
		// CommonJS
 | 
			
		||||
		var jq = require('jquery');
 | 
			
		||||
		var cjsRequires = function (root, $) {
 | 
			
		||||
			if ( ! $.fn.dataTable ) {
 | 
			
		||||
				require('datatables.net')(root, $);
 | 
			
		||||
			}
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		if (typeof window !== 'undefined') {
 | 
			
		||||
			module.exports = function (root, $) {
 | 
			
		||||
				if ( ! root ) {
 | 
			
		||||
					// CommonJS environments without a window global must pass a
 | 
			
		||||
					// root. This will give an error otherwise
 | 
			
		||||
					root = window;
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
				if ( ! $ ) {
 | 
			
		||||
					$ = jq( root );
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
				cjsRequires( root, $ );
 | 
			
		||||
				return factory( $, root, root.document );
 | 
			
		||||
			};
 | 
			
		||||
		}
 | 
			
		||||
		else {
 | 
			
		||||
			cjsRequires( window, jq );
 | 
			
		||||
			module.exports = factory( jq, window, window.document );
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	else {
 | 
			
		||||
		// Browser
 | 
			
		||||
		factory( jQuery, window, document );
 | 
			
		||||
	}
 | 
			
		||||
}(function( $, window, document, undefined ) {
 | 
			
		||||
'use strict';
 | 
			
		||||
var DataTable = $.fn.dataTable;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * DataTables integration for Bootstrap 3. This requires Bootstrap 3 and
 | 
			
		||||
 * DataTables 1.10 or newer.
 | 
			
		||||
 *
 | 
			
		||||
 * This file sets the defaults and adds options to DataTables to style its
 | 
			
		||||
 * controls using Bootstrap. See http://datatables.net/manual/styling/bootstrap
 | 
			
		||||
 * for further information.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/* Set the defaults for DataTables initialisation */
 | 
			
		||||
$.extend( true, DataTable.defaults, {
 | 
			
		||||
	dom:
 | 
			
		||||
		"<'row'<'col-sm-6'l><'col-sm-6'f>>" +
 | 
			
		||||
		"<'row'<'col-sm-12'tr>>" +
 | 
			
		||||
		"<'row'<'col-sm-5'i><'col-sm-7'p>>",
 | 
			
		||||
	renderer: 'bootstrap'
 | 
			
		||||
} );
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* Default class modification */
 | 
			
		||||
$.extend( DataTable.ext.classes, {
 | 
			
		||||
	sWrapper:      "dataTables_wrapper form-inline dt-bootstrap",
 | 
			
		||||
	sFilterInput:  "form-control input-sm",
 | 
			
		||||
	sLengthSelect: "form-control input-sm",
 | 
			
		||||
	sProcessing:   "dataTables_processing panel panel-default"
 | 
			
		||||
} );
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* Bootstrap paging button renderer */
 | 
			
		||||
DataTable.ext.renderer.pageButton.bootstrap = function ( settings, host, idx, buttons, page, pages ) {
 | 
			
		||||
	var api     = new DataTable.Api( settings );
 | 
			
		||||
	var classes = settings.oClasses;
 | 
			
		||||
	var lang    = settings.oLanguage.oPaginate;
 | 
			
		||||
	var aria = settings.oLanguage.oAria.paginate || {};
 | 
			
		||||
	var btnDisplay, btnClass;
 | 
			
		||||
 | 
			
		||||
	var attach = function( container, buttons ) {
 | 
			
		||||
		var i, ien, node, button;
 | 
			
		||||
		var clickHandler = function ( e ) {
 | 
			
		||||
			e.preventDefault();
 | 
			
		||||
			if ( !$(e.currentTarget).hasClass('disabled') && api.page() != e.data.action ) {
 | 
			
		||||
				api.page( e.data.action ).draw( 'page' );
 | 
			
		||||
			}
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		for ( i=0, ien=buttons.length ; i<ien ; i++ ) {
 | 
			
		||||
			button = buttons[i];
 | 
			
		||||
 | 
			
		||||
			if ( Array.isArray( button ) ) {
 | 
			
		||||
				attach( container, button );
 | 
			
		||||
			}
 | 
			
		||||
			else {
 | 
			
		||||
				btnDisplay = '';
 | 
			
		||||
				btnClass = '';
 | 
			
		||||
 | 
			
		||||
				switch ( button ) {
 | 
			
		||||
					case 'ellipsis':
 | 
			
		||||
						btnDisplay = '…';
 | 
			
		||||
						btnClass = 'disabled';
 | 
			
		||||
						break;
 | 
			
		||||
 | 
			
		||||
					case 'first':
 | 
			
		||||
						btnDisplay = lang.sFirst;
 | 
			
		||||
						btnClass = button + (page > 0 ?
 | 
			
		||||
							'' : ' disabled');
 | 
			
		||||
						break;
 | 
			
		||||
 | 
			
		||||
					case 'previous':
 | 
			
		||||
						btnDisplay = lang.sPrevious;
 | 
			
		||||
						btnClass = button + (page > 0 ?
 | 
			
		||||
							'' : ' disabled');
 | 
			
		||||
						break;
 | 
			
		||||
 | 
			
		||||
					case 'next':
 | 
			
		||||
						btnDisplay = lang.sNext;
 | 
			
		||||
						btnClass = button + (page < pages-1 ?
 | 
			
		||||
							'' : ' disabled');
 | 
			
		||||
						break;
 | 
			
		||||
 | 
			
		||||
					case 'last':
 | 
			
		||||
						btnDisplay = lang.sLast;
 | 
			
		||||
						btnClass = button + (page < pages-1 ?
 | 
			
		||||
							'' : ' disabled');
 | 
			
		||||
						break;
 | 
			
		||||
 | 
			
		||||
					default:
 | 
			
		||||
						btnDisplay = button + 1;
 | 
			
		||||
						btnClass = page === button ?
 | 
			
		||||
							'active' : '';
 | 
			
		||||
						break;
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
				if ( btnDisplay ) {
 | 
			
		||||
					var disabled = btnClass.indexOf('disabled') !== -1;
 | 
			
		||||
 | 
			
		||||
					node = $('<li>', {
 | 
			
		||||
							'class': classes.sPageButton+' '+btnClass,
 | 
			
		||||
							'id': idx === 0 && typeof button === 'string' ?
 | 
			
		||||
								settings.sTableId +'_'+ button :
 | 
			
		||||
								null
 | 
			
		||||
						} )
 | 
			
		||||
						.append( $('<a>', {
 | 
			
		||||
								'href': disabled ? null : '#',
 | 
			
		||||
								'aria-controls': settings.sTableId,
 | 
			
		||||
								'aria-disabled': disabled ? 'true' : null,
 | 
			
		||||
								'aria-label': aria[ button ],
 | 
			
		||||
								'aria-role': 'link',
 | 
			
		||||
								'aria-current': btnClass === 'active' ? 'page' : null,
 | 
			
		||||
								'data-dt-idx': button,
 | 
			
		||||
								'tabindex': settings.iTabIndex
 | 
			
		||||
							} )
 | 
			
		||||
							.html( btnDisplay )
 | 
			
		||||
						)
 | 
			
		||||
						.appendTo( container );
 | 
			
		||||
 | 
			
		||||
					settings.oApi._fnBindAction(
 | 
			
		||||
						node, {action: button}, clickHandler
 | 
			
		||||
					);
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	// IE9 throws an 'unknown error' if document.activeElement is used
 | 
			
		||||
	// inside an iframe or frame. 
 | 
			
		||||
	var activeEl;
 | 
			
		||||
 | 
			
		||||
	try {
 | 
			
		||||
		// Because this approach is destroying and recreating the paging
 | 
			
		||||
		// elements, focus is lost on the select button which is bad for
 | 
			
		||||
		// accessibility. So we want to restore focus once the draw has
 | 
			
		||||
		// completed
 | 
			
		||||
		activeEl = $(host).find(document.activeElement).data('dt-idx');
 | 
			
		||||
	}
 | 
			
		||||
	catch (e) {}
 | 
			
		||||
 | 
			
		||||
	attach(
 | 
			
		||||
		$(host).empty().html('<ul class="pagination"/>').children('ul'),
 | 
			
		||||
		buttons
 | 
			
		||||
	);
 | 
			
		||||
 | 
			
		||||
	if ( activeEl !== undefined ) {
 | 
			
		||||
		$(host).find( '[data-dt-idx='+activeEl+']' ).trigger('focus');
 | 
			
		||||
	}
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
return DataTable;
 | 
			
		||||
}));
 | 
			
		||||
							
								
								
									
										4
									
								
								Frontend/lib/dataTables/DataTables-1.13.4/js/dataTables.bootstrap.min.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,4 @@
 | 
			
		||||
/*! DataTables Bootstrap 3 integration
 | 
			
		||||
 * ©2011-2015 SpryMedia Ltd - datatables.net/license
 | 
			
		||||
 */
 | 
			
		||||
!function(t){var n,i;"function"==typeof define&&define.amd?define(["jquery","datatables.net"],function(e){return t(e,window,document)}):"object"==typeof exports?(n=require("jquery"),i=function(e,a){a.fn.dataTable||require("datatables.net")(e,a)},"undefined"!=typeof window?module.exports=function(e,a){return e=e||window,a=a||n(e),i(e,a),t(a,0,e.document)}:(i(window,n),module.exports=t(n,window,window.document))):t(jQuery,window,document)}(function(x,e,n,i){"use strict";var r=x.fn.dataTable;return x.extend(!0,r.defaults,{dom:"<'row'<'col-sm-6'l><'col-sm-6'f>><'row'<'col-sm-12'tr>><'row'<'col-sm-5'i><'col-sm-7'p>>",renderer:"bootstrap"}),x.extend(r.ext.classes,{sWrapper:"dataTables_wrapper form-inline dt-bootstrap",sFilterInput:"form-control input-sm",sLengthSelect:"form-control input-sm",sProcessing:"dataTables_processing panel panel-default"}),r.ext.renderer.pageButton.bootstrap=function(s,e,d,a,l,c){function u(e,a){for(var t,n,i=function(e){e.preventDefault(),x(e.currentTarget).hasClass("disabled")||b.page()==e.data.action||b.page(e.data.action).draw("page")},r=0,o=a.length;r<o;r++)if(t=a[r],Array.isArray(t))u(e,t);else{switch(f=p="",t){case"ellipsis":p="…",f="disabled";break;case"first":p=g.sFirst,f=t+(0<l?"":" disabled");break;case"previous":p=g.sPrevious,f=t+(0<l?"":" disabled");break;case"next":p=g.sNext,f=t+(l<c-1?"":" disabled");break;case"last":p=g.sLast,f=t+(l<c-1?"":" disabled");break;default:p=t+1,f=l===t?"active":""}p&&(n=-1!==f.indexOf("disabled"),n=x("<li>",{class:m.sPageButton+" "+f,id:0===d&&"string"==typeof t?s.sTableId+"_"+t:null}).append(x("<a>",{href:n?null:"#","aria-controls":s.sTableId,"aria-disabled":n?"true":null,"aria-label":w[t],"aria-role":"link","aria-current":"active"===f?"page":null,"data-dt-idx":t,tabindex:s.iTabIndex}).html(p)).appendTo(e),s.oApi._fnBindAction(n,{action:t},i))}}var p,f,t,b=new r.Api(s),m=s.oClasses,g=s.oLanguage.oPaginate,w=s.oLanguage.oAria.paginate||{};try{t=x(e).find(n.activeElement).data("dt-idx")}catch(e){}u(x(e).empty().html('<ul class="pagination"/>').children("ul"),a),t!==i&&x(e).find("[data-dt-idx="+t+"]").trigger("focus")},r});
 | 
			
		||||
@ -0,0 +1,202 @@
 | 
			
		||||
/*! DataTables Bootstrap 4 integration
 | 
			
		||||
 * ©2011-2017 SpryMedia Ltd - datatables.net/license
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
(function( factory ){
 | 
			
		||||
	if ( typeof define === 'function' && define.amd ) {
 | 
			
		||||
		// AMD
 | 
			
		||||
		define( ['jquery', 'datatables.net'], function ( $ ) {
 | 
			
		||||
			return factory( $, window, document );
 | 
			
		||||
		} );
 | 
			
		||||
	}
 | 
			
		||||
	else if ( typeof exports === 'object' ) {
 | 
			
		||||
		// CommonJS
 | 
			
		||||
		var jq = require('jquery');
 | 
			
		||||
		var cjsRequires = function (root, $) {
 | 
			
		||||
			if ( ! $.fn.dataTable ) {
 | 
			
		||||
				require('datatables.net')(root, $);
 | 
			
		||||
			}
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		if (typeof window !== 'undefined') {
 | 
			
		||||
			module.exports = function (root, $) {
 | 
			
		||||
				if ( ! root ) {
 | 
			
		||||
					// CommonJS environments without a window global must pass a
 | 
			
		||||
					// root. This will give an error otherwise
 | 
			
		||||
					root = window;
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
				if ( ! $ ) {
 | 
			
		||||
					$ = jq( root );
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
				cjsRequires( root, $ );
 | 
			
		||||
				return factory( $, root, root.document );
 | 
			
		||||
			};
 | 
			
		||||
		}
 | 
			
		||||
		else {
 | 
			
		||||
			cjsRequires( window, jq );
 | 
			
		||||
			module.exports = factory( jq, window, window.document );
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	else {
 | 
			
		||||
		// Browser
 | 
			
		||||
		factory( jQuery, window, document );
 | 
			
		||||
	}
 | 
			
		||||
}(function( $, window, document, undefined ) {
 | 
			
		||||
'use strict';
 | 
			
		||||
var DataTable = $.fn.dataTable;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * DataTables integration for Bootstrap 4. This requires Bootstrap 4 and
 | 
			
		||||
 * DataTables 1.10 or newer.
 | 
			
		||||
 *
 | 
			
		||||
 * This file sets the defaults and adds options to DataTables to style its
 | 
			
		||||
 * controls using Bootstrap. See http://datatables.net/manual/styling/bootstrap
 | 
			
		||||
 * for further information.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/* Set the defaults for DataTables initialisation */
 | 
			
		||||
$.extend( true, DataTable.defaults, {
 | 
			
		||||
	dom:
 | 
			
		||||
		"<'row'<'col-sm-12 col-md-6'l><'col-sm-12 col-md-6'f>>" +
 | 
			
		||||
		"<'row'<'col-sm-12'tr>>" +
 | 
			
		||||
		"<'row'<'col-sm-12 col-md-5'i><'col-sm-12 col-md-7'p>>",
 | 
			
		||||
	renderer: 'bootstrap'
 | 
			
		||||
} );
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* Default class modification */
 | 
			
		||||
$.extend( DataTable.ext.classes, {
 | 
			
		||||
	sWrapper:      "dataTables_wrapper dt-bootstrap4",
 | 
			
		||||
	sFilterInput:  "form-control form-control-sm",
 | 
			
		||||
	sLengthSelect: "custom-select custom-select-sm form-control form-control-sm",
 | 
			
		||||
	sProcessing:   "dataTables_processing card",
 | 
			
		||||
	sPageButton:   "paginate_button page-item"
 | 
			
		||||
} );
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* Bootstrap paging button renderer */
 | 
			
		||||
DataTable.ext.renderer.pageButton.bootstrap = function ( settings, host, idx, buttons, page, pages ) {
 | 
			
		||||
	var api     = new DataTable.Api( settings );
 | 
			
		||||
	var classes = settings.oClasses;
 | 
			
		||||
	var lang    = settings.oLanguage.oPaginate;
 | 
			
		||||
	var aria = settings.oLanguage.oAria.paginate || {};
 | 
			
		||||
	var btnDisplay, btnClass;
 | 
			
		||||
 | 
			
		||||
	var attach = function( container, buttons ) {
 | 
			
		||||
		var i, ien, node, button;
 | 
			
		||||
		var clickHandler = function ( e ) {
 | 
			
		||||
			e.preventDefault();
 | 
			
		||||
			if ( !$(e.currentTarget).hasClass('disabled') && api.page() != e.data.action ) {
 | 
			
		||||
				api.page( e.data.action ).draw( 'page' );
 | 
			
		||||
			}
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		for ( i=0, ien=buttons.length ; i<ien ; i++ ) {
 | 
			
		||||
			button = buttons[i];
 | 
			
		||||
 | 
			
		||||
			if ( Array.isArray( button ) ) {
 | 
			
		||||
				attach( container, button );
 | 
			
		||||
			}
 | 
			
		||||
			else {
 | 
			
		||||
				btnDisplay = '';
 | 
			
		||||
				btnClass = '';
 | 
			
		||||
 | 
			
		||||
				switch ( button ) {
 | 
			
		||||
					case 'ellipsis':
 | 
			
		||||
						btnDisplay = '…';
 | 
			
		||||
						btnClass = 'disabled';
 | 
			
		||||
						break;
 | 
			
		||||
 | 
			
		||||
					case 'first':
 | 
			
		||||
						btnDisplay = lang.sFirst;
 | 
			
		||||
						btnClass = button + (page > 0 ?
 | 
			
		||||
							'' : ' disabled');
 | 
			
		||||
						break;
 | 
			
		||||
 | 
			
		||||
					case 'previous':
 | 
			
		||||
						btnDisplay = lang.sPrevious;
 | 
			
		||||
						btnClass = button + (page > 0 ?
 | 
			
		||||
							'' : ' disabled');
 | 
			
		||||
						break;
 | 
			
		||||
 | 
			
		||||
					case 'next':
 | 
			
		||||
						btnDisplay = lang.sNext;
 | 
			
		||||
						btnClass = button + (page < pages-1 ?
 | 
			
		||||
							'' : ' disabled');
 | 
			
		||||
						break;
 | 
			
		||||
 | 
			
		||||
					case 'last':
 | 
			
		||||
						btnDisplay = lang.sLast;
 | 
			
		||||
						btnClass = button + (page < pages-1 ?
 | 
			
		||||
							'' : ' disabled');
 | 
			
		||||
						break;
 | 
			
		||||
 | 
			
		||||
					default:
 | 
			
		||||
						btnDisplay = button + 1;
 | 
			
		||||
						btnClass = page === button ?
 | 
			
		||||
							'active' : '';
 | 
			
		||||
						break;
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
				if ( btnDisplay ) {
 | 
			
		||||
					var disabled = btnClass.indexOf('disabled') !== -1;
 | 
			
		||||
 | 
			
		||||
					node = $('<li>', {
 | 
			
		||||
							'class': classes.sPageButton+' '+btnClass,
 | 
			
		||||
							'id': idx === 0 && typeof button === 'string' ?
 | 
			
		||||
								settings.sTableId +'_'+ button :
 | 
			
		||||
								null
 | 
			
		||||
						} )
 | 
			
		||||
						.append( $('<a>', {
 | 
			
		||||
								'href': disabled ? null : '#',
 | 
			
		||||
								'aria-controls': settings.sTableId,
 | 
			
		||||
								'aria-disabled': disabled ? 'true' : null,
 | 
			
		||||
								'aria-label': aria[ button ],
 | 
			
		||||
								'aria-role': 'link',
 | 
			
		||||
								'aria-current': btnClass === 'active' ? 'page' : null,
 | 
			
		||||
								'data-dt-idx': button,
 | 
			
		||||
								'tabindex': settings.iTabIndex,
 | 
			
		||||
								'class': 'page-link'
 | 
			
		||||
							} )
 | 
			
		||||
							.html( btnDisplay )
 | 
			
		||||
						)
 | 
			
		||||
						.appendTo( container );
 | 
			
		||||
 | 
			
		||||
					settings.oApi._fnBindAction(
 | 
			
		||||
						node, {action: button}, clickHandler
 | 
			
		||||
					);
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	// IE9 throws an 'unknown error' if document.activeElement is used
 | 
			
		||||
	// inside an iframe or frame. 
 | 
			
		||||
	var activeEl;
 | 
			
		||||
 | 
			
		||||
	try {
 | 
			
		||||
		// Because this approach is destroying and recreating the paging
 | 
			
		||||
		// elements, focus is lost on the select button which is bad for
 | 
			
		||||
		// accessibility. So we want to restore focus once the draw has
 | 
			
		||||
		// completed
 | 
			
		||||
		activeEl = $(host).find(document.activeElement).data('dt-idx');
 | 
			
		||||
	}
 | 
			
		||||
	catch (e) {}
 | 
			
		||||
 | 
			
		||||
	attach(
 | 
			
		||||
		$(host).empty().html('<ul class="pagination"/>').children('ul'),
 | 
			
		||||
		buttons
 | 
			
		||||
	);
 | 
			
		||||
 | 
			
		||||
	if ( activeEl !== undefined ) {
 | 
			
		||||
		$(host).find( '[data-dt-idx='+activeEl+']' ).trigger('focus');
 | 
			
		||||
	}
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
return DataTable;
 | 
			
		||||
}));
 | 
			
		||||
							
								
								
									
										4
									
								
								Frontend/lib/dataTables/DataTables-1.13.4/js/dataTables.bootstrap4.min.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,4 @@
 | 
			
		||||
/*! DataTables Bootstrap 4 integration
 | 
			
		||||
 * ©2011-2017 SpryMedia Ltd - datatables.net/license
 | 
			
		||||
 */
 | 
			
		||||
!function(t){var n,o;"function"==typeof define&&define.amd?define(["jquery","datatables.net"],function(e){return t(e,window,document)}):"object"==typeof exports?(n=require("jquery"),o=function(e,a){a.fn.dataTable||require("datatables.net")(e,a)},"undefined"!=typeof window?module.exports=function(e,a){return e=e||window,a=a||n(e),o(e,a),t(a,0,e.document)}:(o(window,n),module.exports=t(n,window,window.document))):t(jQuery,window,document)}(function(x,e,n,o){"use strict";var r=x.fn.dataTable;return x.extend(!0,r.defaults,{dom:"<'row'<'col-sm-12 col-md-6'l><'col-sm-12 col-md-6'f>><'row'<'col-sm-12'tr>><'row'<'col-sm-12 col-md-5'i><'col-sm-12 col-md-7'p>>",renderer:"bootstrap"}),x.extend(r.ext.classes,{sWrapper:"dataTables_wrapper dt-bootstrap4",sFilterInput:"form-control form-control-sm",sLengthSelect:"custom-select custom-select-sm form-control form-control-sm",sProcessing:"dataTables_processing card",sPageButton:"paginate_button page-item"}),r.ext.renderer.pageButton.bootstrap=function(i,e,d,a,l,c){function u(e,a){for(var t,n,o=function(e){e.preventDefault(),x(e.currentTarget).hasClass("disabled")||m.page()==e.data.action||m.page(e.data.action).draw("page")},r=0,s=a.length;r<s;r++)if(t=a[r],Array.isArray(t))u(e,t);else{switch(f=p="",t){case"ellipsis":p="…",f="disabled";break;case"first":p=g.sFirst,f=t+(0<l?"":" disabled");break;case"previous":p=g.sPrevious,f=t+(0<l?"":" disabled");break;case"next":p=g.sNext,f=t+(l<c-1?"":" disabled");break;case"last":p=g.sLast,f=t+(l<c-1?"":" disabled");break;default:p=t+1,f=l===t?"active":""}p&&(n=-1!==f.indexOf("disabled"),n=x("<li>",{class:b.sPageButton+" "+f,id:0===d&&"string"==typeof t?i.sTableId+"_"+t:null}).append(x("<a>",{href:n?null:"#","aria-controls":i.sTableId,"aria-disabled":n?"true":null,"aria-label":w[t],"aria-role":"link","aria-current":"active"===f?"page":null,"data-dt-idx":t,tabindex:i.iTabIndex,class:"page-link"}).html(p)).appendTo(e),i.oApi._fnBindAction(n,{action:t},o))}}var p,f,t,m=new r.Api(i),b=i.oClasses,g=i.oLanguage.oPaginate,w=i.oLanguage.oAria.paginate||{};try{t=x(e).find(n.activeElement).data("dt-idx")}catch(e){}u(x(e).empty().html('<ul class="pagination"/>').children("ul"),a),t!==o&&x(e).find("[data-dt-idx="+t+"]").trigger("focus")},r});
 | 
			
		||||
@ -0,0 +1,212 @@
 | 
			
		||||
/*! DataTables Bootstrap 5 integration
 | 
			
		||||
 * 2020 SpryMedia Ltd - datatables.net/license
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
(function( factory ){
 | 
			
		||||
	if ( typeof define === 'function' && define.amd ) {
 | 
			
		||||
		// AMD
 | 
			
		||||
		define( ['jquery', 'datatables.net'], function ( $ ) {
 | 
			
		||||
			return factory( $, window, document );
 | 
			
		||||
		} );
 | 
			
		||||
	}
 | 
			
		||||
	else if ( typeof exports === 'object' ) {
 | 
			
		||||
		// CommonJS
 | 
			
		||||
		var jq = require('jquery');
 | 
			
		||||
		var cjsRequires = function (root, $) {
 | 
			
		||||
			if ( ! $.fn.dataTable ) {
 | 
			
		||||
				require('datatables.net')(root, $);
 | 
			
		||||
			}
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		if (typeof window !== 'undefined') {
 | 
			
		||||
			module.exports = function (root, $) {
 | 
			
		||||
				if ( ! root ) {
 | 
			
		||||
					// CommonJS environments without a window global must pass a
 | 
			
		||||
					// root. This will give an error otherwise
 | 
			
		||||
					root = window;
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
				if ( ! $ ) {
 | 
			
		||||
					$ = jq( root );
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
				cjsRequires( root, $ );
 | 
			
		||||
				return factory( $, root, root.document );
 | 
			
		||||
			};
 | 
			
		||||
		}
 | 
			
		||||
		else {
 | 
			
		||||
			cjsRequires( window, jq );
 | 
			
		||||
			module.exports = factory( jq, window, window.document );
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	else {
 | 
			
		||||
		// Browser
 | 
			
		||||
		factory( jQuery, window, document );
 | 
			
		||||
	}
 | 
			
		||||
}(function( $, window, document, undefined ) {
 | 
			
		||||
'use strict';
 | 
			
		||||
var DataTable = $.fn.dataTable;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * DataTables integration for Bootstrap 5. This requires Bootstrap 5 and
 | 
			
		||||
 * DataTables 1.10 or newer.
 | 
			
		||||
 *
 | 
			
		||||
 * This file sets the defaults and adds options to DataTables to style its
 | 
			
		||||
 * controls using Bootstrap. See http://datatables.net/manual/styling/bootstrap
 | 
			
		||||
 * for further information.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/* Set the defaults for DataTables initialisation */
 | 
			
		||||
$.extend( true, DataTable.defaults, {
 | 
			
		||||
	dom:
 | 
			
		||||
		"<'row'<'col-sm-12 col-md-6'l><'col-sm-12 col-md-6'f>>" +
 | 
			
		||||
		"<'row dt-row'<'col-sm-12'tr>>" +
 | 
			
		||||
		"<'row'<'col-sm-12 col-md-5'i><'col-sm-12 col-md-7'p>>",
 | 
			
		||||
	renderer: 'bootstrap'
 | 
			
		||||
} );
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* Default class modification */
 | 
			
		||||
$.extend( DataTable.ext.classes, {
 | 
			
		||||
	sWrapper:      "dataTables_wrapper dt-bootstrap5",
 | 
			
		||||
	sFilterInput:  "form-control form-control-sm",
 | 
			
		||||
	sLengthSelect: "form-select form-select-sm",
 | 
			
		||||
	sProcessing:   "dataTables_processing card",
 | 
			
		||||
	sPageButton:   "paginate_button page-item"
 | 
			
		||||
} );
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* Bootstrap paging button renderer */
 | 
			
		||||
DataTable.ext.renderer.pageButton.bootstrap = function ( settings, host, idx, buttons, page, pages ) {
 | 
			
		||||
	var api     = new DataTable.Api( settings );
 | 
			
		||||
	var classes = settings.oClasses;
 | 
			
		||||
	var lang    = settings.oLanguage.oPaginate;
 | 
			
		||||
	var aria = settings.oLanguage.oAria.paginate || {};
 | 
			
		||||
	var btnDisplay, btnClass;
 | 
			
		||||
 | 
			
		||||
	var attach = function( container, buttons ) {
 | 
			
		||||
		var i, ien, node, button;
 | 
			
		||||
		var clickHandler = function ( e ) {
 | 
			
		||||
			e.preventDefault();
 | 
			
		||||
			if ( !$(e.currentTarget).hasClass('disabled') && api.page() != e.data.action ) {
 | 
			
		||||
				api.page( e.data.action ).draw( 'page' );
 | 
			
		||||
			}
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		for ( i=0, ien=buttons.length ; i<ien ; i++ ) {
 | 
			
		||||
			button = buttons[i];
 | 
			
		||||
 | 
			
		||||
			if ( Array.isArray( button ) ) {
 | 
			
		||||
				attach( container, button );
 | 
			
		||||
			}
 | 
			
		||||
			else {
 | 
			
		||||
				btnDisplay = '';
 | 
			
		||||
				btnClass = '';
 | 
			
		||||
 | 
			
		||||
				switch ( button ) {
 | 
			
		||||
					case 'ellipsis':
 | 
			
		||||
						btnDisplay = '…';
 | 
			
		||||
						btnClass = 'disabled';
 | 
			
		||||
						break;
 | 
			
		||||
 | 
			
		||||
					case 'first':
 | 
			
		||||
						btnDisplay = lang.sFirst;
 | 
			
		||||
						btnClass = button + (page > 0 ?
 | 
			
		||||
							'' : ' disabled');
 | 
			
		||||
						break;
 | 
			
		||||
 | 
			
		||||
					case 'previous':
 | 
			
		||||
						btnDisplay = lang.sPrevious;
 | 
			
		||||
						btnClass = button + (page > 0 ?
 | 
			
		||||
							'' : ' disabled');
 | 
			
		||||
						break;
 | 
			
		||||
 | 
			
		||||
					case 'next':
 | 
			
		||||
						btnDisplay = lang.sNext;
 | 
			
		||||
						btnClass = button + (page < pages-1 ?
 | 
			
		||||
							'' : ' disabled');
 | 
			
		||||
						break;
 | 
			
		||||
 | 
			
		||||
					case 'last':
 | 
			
		||||
						btnDisplay = lang.sLast;
 | 
			
		||||
						btnClass = button + (page < pages-1 ?
 | 
			
		||||
							'' : ' disabled');
 | 
			
		||||
						break;
 | 
			
		||||
 | 
			
		||||
					default:
 | 
			
		||||
						btnDisplay = button + 1;
 | 
			
		||||
						btnClass = page === button ?
 | 
			
		||||
							'active' : '';
 | 
			
		||||
						break;
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
				if ( btnDisplay ) {
 | 
			
		||||
					var disabled = btnClass.indexOf('disabled') !== -1;
 | 
			
		||||
 | 
			
		||||
					node = $('<li>', {
 | 
			
		||||
							'class': classes.sPageButton+' '+btnClass,
 | 
			
		||||
							'id': idx === 0 && typeof button === 'string' ?
 | 
			
		||||
								settings.sTableId +'_'+ button :
 | 
			
		||||
								null
 | 
			
		||||
						} )
 | 
			
		||||
						.append( $('<a>', {
 | 
			
		||||
								'href': disabled ? null : '#',
 | 
			
		||||
								'aria-controls': settings.sTableId,
 | 
			
		||||
								'aria-disabled': disabled ? 'true' : null,
 | 
			
		||||
								'aria-label': aria[ button ],
 | 
			
		||||
								'aria-role': 'link',
 | 
			
		||||
								'aria-current': btnClass === 'active' ? 'page' : null,
 | 
			
		||||
								'data-dt-idx': button,
 | 
			
		||||
								'tabindex': settings.iTabIndex,
 | 
			
		||||
								'class': 'page-link'
 | 
			
		||||
							} )
 | 
			
		||||
							.html( btnDisplay )
 | 
			
		||||
						)
 | 
			
		||||
						.appendTo( container );
 | 
			
		||||
 | 
			
		||||
					settings.oApi._fnBindAction(
 | 
			
		||||
						node, {action: button}, clickHandler
 | 
			
		||||
					);
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	var hostEl = $(host);
 | 
			
		||||
	// IE9 throws an 'unknown error' if document.activeElement is used
 | 
			
		||||
	// inside an iframe or frame. 
 | 
			
		||||
	var activeEl;
 | 
			
		||||
 | 
			
		||||
	try {
 | 
			
		||||
		// Because this approach is destroying and recreating the paging
 | 
			
		||||
		// elements, focus is lost on the select button which is bad for
 | 
			
		||||
		// accessibility. So we want to restore focus once the draw has
 | 
			
		||||
		// completed
 | 
			
		||||
		activeEl = hostEl.find(document.activeElement).data('dt-idx');
 | 
			
		||||
	}
 | 
			
		||||
	catch (e) {}
 | 
			
		||||
 | 
			
		||||
	var paginationEl = hostEl.children('ul.pagination');
 | 
			
		||||
 | 
			
		||||
	if (paginationEl.length) {
 | 
			
		||||
		paginationEl.empty();
 | 
			
		||||
	}
 | 
			
		||||
	else {
 | 
			
		||||
		paginationEl = hostEl.html('<ul/>').children('ul').addClass('pagination');
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	attach(
 | 
			
		||||
		paginationEl,
 | 
			
		||||
		buttons
 | 
			
		||||
	);
 | 
			
		||||
 | 
			
		||||
	if ( activeEl !== undefined ) {
 | 
			
		||||
		hostEl.find('[data-dt-idx='+activeEl+']').trigger('focus');
 | 
			
		||||
	}
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
return DataTable;
 | 
			
		||||
}));
 | 
			
		||||
							
								
								
									
										4
									
								
								Frontend/lib/dataTables/DataTables-1.13.4/js/dataTables.bootstrap5.min.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,4 @@
 | 
			
		||||
/*! DataTables Bootstrap 5 integration
 | 
			
		||||
 * 2020 SpryMedia Ltd - datatables.net/license
 | 
			
		||||
 */
 | 
			
		||||
!function(t){var n,r;"function"==typeof define&&define.amd?define(["jquery","datatables.net"],function(e){return t(e,window,document)}):"object"==typeof exports?(n=require("jquery"),r=function(e,a){a.fn.dataTable||require("datatables.net")(e,a)},"undefined"!=typeof window?module.exports=function(e,a){return e=e||window,a=a||n(e),r(e,a),t(a,0,e.document)}:(r(window,n),module.exports=t(n,window,window.document))):t(jQuery,window,document)}(function(x,e,r,i){"use strict";var o=x.fn.dataTable;return x.extend(!0,o.defaults,{dom:"<'row'<'col-sm-12 col-md-6'l><'col-sm-12 col-md-6'f>><'row dt-row'<'col-sm-12'tr>><'row'<'col-sm-12 col-md-5'i><'col-sm-12 col-md-7'p>>",renderer:"bootstrap"}),x.extend(o.ext.classes,{sWrapper:"dataTables_wrapper dt-bootstrap5",sFilterInput:"form-control form-control-sm",sLengthSelect:"form-select form-select-sm",sProcessing:"dataTables_processing card",sPageButton:"paginate_button page-item"}),o.ext.renderer.pageButton.bootstrap=function(d,e,s,a,l,c){function u(e,a){for(var t,n,r=function(e){e.preventDefault(),x(e.currentTarget).hasClass("disabled")||b.page()==e.data.action||b.page(e.data.action).draw("page")},i=0,o=a.length;i<o;i++)if(t=a[i],Array.isArray(t))u(e,t);else{switch(f=p="",t){case"ellipsis":p="…",f="disabled";break;case"first":p=g.sFirst,f=t+(0<l?"":" disabled");break;case"previous":p=g.sPrevious,f=t+(0<l?"":" disabled");break;case"next":p=g.sNext,f=t+(l<c-1?"":" disabled");break;case"last":p=g.sLast,f=t+(l<c-1?"":" disabled");break;default:p=t+1,f=l===t?"active":""}p&&(n=-1!==f.indexOf("disabled"),n=x("<li>",{class:m.sPageButton+" "+f,id:0===s&&"string"==typeof t?d.sTableId+"_"+t:null}).append(x("<a>",{href:n?null:"#","aria-controls":d.sTableId,"aria-disabled":n?"true":null,"aria-label":w[t],"aria-role":"link","aria-current":"active"===f?"page":null,"data-dt-idx":t,tabindex:d.iTabIndex,class:"page-link"}).html(p)).appendTo(e),d.oApi._fnBindAction(n,{action:t},r))}}var p,f,t,b=new o.Api(d),m=d.oClasses,g=d.oLanguage.oPaginate,w=d.oLanguage.oAria.paginate||{},e=x(e);try{t=e.find(r.activeElement).data("dt-idx")}catch(e){}var n=e.children("ul.pagination");n.length?n.empty():n=e.html("<ul/>").children("ul").addClass("pagination"),u(n,a),t!==i&&e.find("[data-dt-idx="+t+"]").trigger("focus")},o});
 | 
			
		||||
							
								
								
									
										214
									
								
								Frontend/lib/dataTables/DataTables-1.13.4/js/dataTables.bulma.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,214 @@
 | 
			
		||||
/*! DataTables Bulma integration
 | 
			
		||||
 * ©2020 SpryMedia Ltd - datatables.net/license
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
(function( factory ){
 | 
			
		||||
	if ( typeof define === 'function' && define.amd ) {
 | 
			
		||||
		// AMD
 | 
			
		||||
		define( ['jquery', 'datatables.net'], function ( $ ) {
 | 
			
		||||
			return factory( $, window, document );
 | 
			
		||||
		} );
 | 
			
		||||
	}
 | 
			
		||||
	else if ( typeof exports === 'object' ) {
 | 
			
		||||
		// CommonJS
 | 
			
		||||
		var jq = require('jquery');
 | 
			
		||||
		var cjsRequires = function (root, $) {
 | 
			
		||||
			if ( ! $.fn.dataTable ) {
 | 
			
		||||
				require('datatables.net')(root, $);
 | 
			
		||||
			}
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		if (typeof window !== 'undefined') {
 | 
			
		||||
			module.exports = function (root, $) {
 | 
			
		||||
				if ( ! root ) {
 | 
			
		||||
					// CommonJS environments without a window global must pass a
 | 
			
		||||
					// root. This will give an error otherwise
 | 
			
		||||
					root = window;
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
				if ( ! $ ) {
 | 
			
		||||
					$ = jq( root );
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
				cjsRequires( root, $ );
 | 
			
		||||
				return factory( $, root, root.document );
 | 
			
		||||
			};
 | 
			
		||||
		}
 | 
			
		||||
		else {
 | 
			
		||||
			cjsRequires( window, jq );
 | 
			
		||||
			module.exports = factory( jq, window, window.document );
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	else {
 | 
			
		||||
		// Browser
 | 
			
		||||
		factory( jQuery, window, document );
 | 
			
		||||
	}
 | 
			
		||||
}(function( $, window, document, undefined ) {
 | 
			
		||||
'use strict';
 | 
			
		||||
var DataTable = $.fn.dataTable;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* Set the defaults for DataTables initialisation */
 | 
			
		||||
$.extend( true, DataTable.defaults, {
 | 
			
		||||
	dom:
 | 
			
		||||
		"<'columns is-gapless is-multiline'" +
 | 
			
		||||
			"<'column is-half'l>" +
 | 
			
		||||
			"<'column is-half'f>" +
 | 
			
		||||
			"<'column is-full'tr>" +
 | 
			
		||||
			"<'column is-half'i>" +
 | 
			
		||||
			"<'column is-half'p>" +
 | 
			
		||||
		">",
 | 
			
		||||
	renderer: 'bulma'
 | 
			
		||||
} );
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* Default class modification */
 | 
			
		||||
$.extend( DataTable.ext.classes, {
 | 
			
		||||
	sWrapper:      "dataTables_wrapper dt-bulma",
 | 
			
		||||
	sFilterInput:  "input",
 | 
			
		||||
	sLengthSelect: "custom-select custom-select-sm form-control form-control-sm",
 | 
			
		||||
	sProcessing:   "dataTables_processing card"
 | 
			
		||||
} );
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* Bulma paging button renderer */
 | 
			
		||||
DataTable.ext.renderer.pageButton.bulma = function ( settings, host, idx, buttons, page, pages ) {
 | 
			
		||||
	var api     = new DataTable.Api( settings );
 | 
			
		||||
	var classes = settings.oClasses;
 | 
			
		||||
	var lang    = settings.oLanguage.oPaginate;
 | 
			
		||||
	var aria = settings.oLanguage.oAria.paginate || {};
 | 
			
		||||
	var btnDisplay, btnClass;
 | 
			
		||||
 | 
			
		||||
	var attach = function( container, buttons ) {
 | 
			
		||||
		var i, ien, node, button, tag, disabled;
 | 
			
		||||
		var clickHandler = function ( e ) {
 | 
			
		||||
			e.preventDefault();
 | 
			
		||||
			if ( ! $(e.currentTarget.firstChild).attr('disabled') && api.page() != e.data.action ) {
 | 
			
		||||
				api.page( e.data.action ).draw( 'page' );
 | 
			
		||||
			}
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		for ( i=0, ien=buttons.length ; i<ien ; i++ ) {
 | 
			
		||||
			button = buttons[i];
 | 
			
		||||
 | 
			
		||||
			if ( Array.isArray( button ) ) {
 | 
			
		||||
				attach( container, button );
 | 
			
		||||
			}
 | 
			
		||||
			else {
 | 
			
		||||
				btnDisplay = '';
 | 
			
		||||
				btnClass = '';
 | 
			
		||||
				tag = 'a';
 | 
			
		||||
				disabled = false;
 | 
			
		||||
 | 
			
		||||
				switch ( button ) {
 | 
			
		||||
					case 'ellipsis':
 | 
			
		||||
						btnDisplay = '…';
 | 
			
		||||
						btnClass = 'pagination-link';
 | 
			
		||||
						disabled = true;
 | 
			
		||||
						tag = 'span';
 | 
			
		||||
						break;
 | 
			
		||||
 | 
			
		||||
					case 'first':
 | 
			
		||||
						btnDisplay = lang.sFirst;
 | 
			
		||||
						btnClass = button;
 | 
			
		||||
						disabled = page <= 0;
 | 
			
		||||
						break;
 | 
			
		||||
 | 
			
		||||
					case 'previous':
 | 
			
		||||
						btnDisplay = lang.sPrevious;
 | 
			
		||||
						btnClass = button;
 | 
			
		||||
						disabled = page <= 0;
 | 
			
		||||
						break;
 | 
			
		||||
 | 
			
		||||
					case 'next':
 | 
			
		||||
						btnDisplay = lang.sNext;
 | 
			
		||||
						btnClass = button;
 | 
			
		||||
						disabled = page >= pages - 1;
 | 
			
		||||
						break;
 | 
			
		||||
 | 
			
		||||
					case 'last':
 | 
			
		||||
						btnDisplay = lang.sLast;
 | 
			
		||||
						btnClass = button;
 | 
			
		||||
						disabled = page >= pages - 1;
 | 
			
		||||
						break;
 | 
			
		||||
 | 
			
		||||
					default:
 | 
			
		||||
						btnDisplay = button + 1;
 | 
			
		||||
						btnClass = page === button ?
 | 
			
		||||
							'is-current' : '';
 | 
			
		||||
						break;
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
				if ( btnDisplay ) {
 | 
			
		||||
					node = $('<li>', {
 | 
			
		||||
							'id': idx === 0 && typeof button === 'string' ?
 | 
			
		||||
								settings.sTableId +'_'+ button :
 | 
			
		||||
								null
 | 
			
		||||
						} )
 | 
			
		||||
						.append( $('<' + tag + '>', {
 | 
			
		||||
								'href': disabled ? null : '#',
 | 
			
		||||
								'aria-controls': settings.sTableId,
 | 
			
		||||
								'aria-disabled': disabled ? 'true' : null,
 | 
			
		||||
								'aria-label': aria[ button ],
 | 
			
		||||
								'aria-role': 'link',
 | 
			
		||||
								'aria-current': btnClass === 'is-current' ? 'page' : null,
 | 
			
		||||
								'data-dt-idx': button,
 | 
			
		||||
								'tabindex': settings.iTabIndex,
 | 
			
		||||
								'class': 'pagination-link ' + btnClass,
 | 
			
		||||
								'disabled': disabled
 | 
			
		||||
							} )
 | 
			
		||||
							.html( btnDisplay )
 | 
			
		||||
						)
 | 
			
		||||
						.appendTo( container );
 | 
			
		||||
 | 
			
		||||
					settings.oApi._fnBindAction(
 | 
			
		||||
						node, {action: button}, clickHandler
 | 
			
		||||
					);
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	// IE9 throws an 'unknown error' if document.activeElement is used
 | 
			
		||||
	// inside an iframe or frame. 
 | 
			
		||||
	var activeEl;
 | 
			
		||||
 | 
			
		||||
	try {
 | 
			
		||||
		// Because this approach is destroying and recreating the paging
 | 
			
		||||
		// elements, focus is lost on the select button which is bad for
 | 
			
		||||
		// accessibility. So we want to restore focus once the draw has
 | 
			
		||||
		// completed
 | 
			
		||||
		activeEl = $(host).find(document.activeElement).data('dt-idx');
 | 
			
		||||
	}
 | 
			
		||||
	catch (e) {}
 | 
			
		||||
 | 
			
		||||
	var nav = $('<nav class="pagination" role="navigation" aria-label="pagination"><ul class="pagination-list"></ul></nav>');
 | 
			
		||||
	$(host).empty().append(nav);
 | 
			
		||||
 | 
			
		||||
	attach(nav.find('ul'), buttons);
 | 
			
		||||
 | 
			
		||||
	if ( activeEl !== undefined ) {
 | 
			
		||||
		$(host).find( '[data-dt-idx='+activeEl+']' ).trigger('focus');
 | 
			
		||||
	}
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
// Javascript enhancements on table initialisation
 | 
			
		||||
$(document).on( 'init.dt', function (e, ctx) {
 | 
			
		||||
	if ( e.namespace !== 'dt' ) {
 | 
			
		||||
		return;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	var api = new $.fn.dataTable.Api( ctx );
 | 
			
		||||
 | 
			
		||||
	// Length menu drop down - needs to be wrapped with a div
 | 
			
		||||
	$( 'div.dataTables_length select', api.table().container() ).wrap('<div class="select">');
 | 
			
		||||
 | 
			
		||||
	// Filtering input
 | 
			
		||||
	// $( 'div.dataTables_filter.ui.input', api.table().container() ).removeClass('input').addClass('form');
 | 
			
		||||
	// $( 'div.dataTables_filter input', api.table().container() ).wrap( '<span class="ui input" />' );
 | 
			
		||||
} );
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
return DataTable;
 | 
			
		||||
}));
 | 
			
		||||
							
								
								
									
										4
									
								
								Frontend/lib/dataTables/DataTables-1.13.4/js/dataTables.bulma.min.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,4 @@
 | 
			
		||||
/*! DataTables Bulma integration
 | 
			
		||||
 * ©2020 SpryMedia Ltd - datatables.net/license
 | 
			
		||||
 */
 | 
			
		||||
!function(n){var t,i;"function"==typeof define&&define.amd?define(["jquery","datatables.net"],function(a){return n(a,window,document)}):"object"==typeof exports?(t=require("jquery"),i=function(a,e){e.fn.dataTable||require("datatables.net")(a,e)},"undefined"!=typeof window?module.exports=function(a,e){return a=a||window,e=e||t(a),i(a,e),n(e,0,a.document)}:(i(window,t),module.exports=n(t,window,window.document))):n(jQuery,window,document)}(function(v,a,i,r){"use strict";var s=v.fn.dataTable;return v.extend(!0,s.defaults,{dom:"<'columns is-gapless is-multiline'<'column is-half'l><'column is-half'f><'column is-full'tr><'column is-half'i><'column is-half'p>>",renderer:"bulma"}),v.extend(s.ext.classes,{sWrapper:"dataTables_wrapper dt-bulma",sFilterInput:"input",sLengthSelect:"custom-select custom-select-sm form-control form-control-sm",sProcessing:"dataTables_processing card"}),s.ext.renderer.pageButton.bulma=function(d,a,u,e,c,p){function f(a,e){for(var n,t,i,r,s=function(a){a.preventDefault(),v(a.currentTarget.firstChild).attr("disabled")||g.page()==a.data.action||g.page(a.data.action).draw("page")},l=0,o=e.length;l<o;l++)if(t=e[l],Array.isArray(t))f(a,t);else{switch(b=m="",r=!(i="a"),t){case"ellipsis":m="…",b="pagination-link",r=!0,i="span";break;case"first":m=w.sFirst,b=t,r=c<=0;break;case"previous":m=w.sPrevious,b=t,r=c<=0;break;case"next":m=w.sNext,b=t,r=p-1<=c;break;case"last":m=w.sLast,b=t,r=p-1<=c;break;default:m=t+1,b=c===t?"is-current":""}m&&(n=v("<li>",{id:0===u&&"string"==typeof t?d.sTableId+"_"+t:null}).append(v("<"+i+">",{href:r?null:"#","aria-controls":d.sTableId,"aria-disabled":r?"true":null,"aria-label":x[t],"aria-role":"link","aria-current":"is-current"===b?"page":null,"data-dt-idx":t,tabindex:d.iTabIndex,class:"pagination-link "+b,disabled:r}).html(m)).appendTo(a),d.oApi._fnBindAction(n,{action:t},s))}}var m,b,n,g=new s.Api(d),w=(d.oClasses,d.oLanguage.oPaginate),x=d.oLanguage.oAria.paginate||{};try{n=v(a).find(i.activeElement).data("dt-idx")}catch(a){}var t=v('<nav class="pagination" role="navigation" aria-label="pagination"><ul class="pagination-list"></ul></nav>');v(a).empty().append(t),f(t.find("ul"),e),n!==r&&v(a).find("[data-dt-idx="+n+"]").trigger("focus")},v(i).on("init.dt",function(a,e){"dt"===a.namespace&&(a=new v.fn.dataTable.Api(e),v("div.dataTables_length select",a.table().container()).wrap('<div class="select">'))}),s});
 | 
			
		||||
@ -0,0 +1,55 @@
 | 
			
		||||
/*! DataTables styling integration
 | 
			
		||||
 * ©2018 SpryMedia Ltd - datatables.net/license
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
(function( factory ){
 | 
			
		||||
	if ( typeof define === 'function' && define.amd ) {
 | 
			
		||||
		// AMD
 | 
			
		||||
		define( ['jquery', 'datatables.net'], function ( $ ) {
 | 
			
		||||
			return factory( $, window, document );
 | 
			
		||||
		} );
 | 
			
		||||
	}
 | 
			
		||||
	else if ( typeof exports === 'object' ) {
 | 
			
		||||
		// CommonJS
 | 
			
		||||
		var jq = require('jquery');
 | 
			
		||||
		var cjsRequires = function (root, $) {
 | 
			
		||||
			if ( ! $.fn.dataTable ) {
 | 
			
		||||
				require('datatables.net')(root, $);
 | 
			
		||||
			}
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		if (typeof window !== 'undefined') {
 | 
			
		||||
			module.exports = function (root, $) {
 | 
			
		||||
				if ( ! root ) {
 | 
			
		||||
					// CommonJS environments without a window global must pass a
 | 
			
		||||
					// root. This will give an error otherwise
 | 
			
		||||
					root = window;
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
				if ( ! $ ) {
 | 
			
		||||
					$ = jq( root );
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
				cjsRequires( root, $ );
 | 
			
		||||
				return factory( $, root, root.document );
 | 
			
		||||
			};
 | 
			
		||||
		}
 | 
			
		||||
		else {
 | 
			
		||||
			cjsRequires( window, jq );
 | 
			
		||||
			module.exports = factory( jq, window, window.document );
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	else {
 | 
			
		||||
		// Browser
 | 
			
		||||
		factory( jQuery, window, document );
 | 
			
		||||
	}
 | 
			
		||||
}(function( $, window, document, undefined ) {
 | 
			
		||||
'use strict';
 | 
			
		||||
var DataTable = $.fn.dataTable;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
return DataTable;
 | 
			
		||||
}));
 | 
			
		||||
							
								
								
									
										4
									
								
								Frontend/lib/dataTables/DataTables-1.13.4/js/dataTables.dataTables.min.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,4 @@
 | 
			
		||||
/*! DataTables styling integration
 | 
			
		||||
 * ©2018 SpryMedia Ltd - datatables.net/license
 | 
			
		||||
 */
 | 
			
		||||
!function(t){var o,d;"function"==typeof define&&define.amd?define(["jquery","datatables.net"],function(e){return t(e,window,document)}):"object"==typeof exports?(o=require("jquery"),d=function(e,n){n.fn.dataTable||require("datatables.net")(e,n)},"undefined"!=typeof window?module.exports=function(e,n){return e=e||window,n=n||o(e),d(e,n),t(n,0,e.document)}:(d(window,o),module.exports=t(o,window,window.document))):t(jQuery,window,document)}(function(e,n,t,o){"use strict";return e.fn.dataTable});
 | 
			
		||||
@ -0,0 +1,200 @@
 | 
			
		||||
/*! DataTables Foundation integration
 | 
			
		||||
 * ©2011-2015 SpryMedia Ltd - datatables.net/license
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
(function( factory ){
 | 
			
		||||
	if ( typeof define === 'function' && define.amd ) {
 | 
			
		||||
		// AMD
 | 
			
		||||
		define( ['jquery', 'datatables.net'], function ( $ ) {
 | 
			
		||||
			return factory( $, window, document );
 | 
			
		||||
		} );
 | 
			
		||||
	}
 | 
			
		||||
	else if ( typeof exports === 'object' ) {
 | 
			
		||||
		// CommonJS
 | 
			
		||||
		var jq = require('jquery');
 | 
			
		||||
		var cjsRequires = function (root, $) {
 | 
			
		||||
			if ( ! $.fn.dataTable ) {
 | 
			
		||||
				require('datatables.net')(root, $);
 | 
			
		||||
			}
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		if (typeof window !== 'undefined') {
 | 
			
		||||
			module.exports = function (root, $) {
 | 
			
		||||
				if ( ! root ) {
 | 
			
		||||
					// CommonJS environments without a window global must pass a
 | 
			
		||||
					// root. This will give an error otherwise
 | 
			
		||||
					root = window;
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
				if ( ! $ ) {
 | 
			
		||||
					$ = jq( root );
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
				cjsRequires( root, $ );
 | 
			
		||||
				return factory( $, root, root.document );
 | 
			
		||||
			};
 | 
			
		||||
		}
 | 
			
		||||
		else {
 | 
			
		||||
			cjsRequires( window, jq );
 | 
			
		||||
			module.exports = factory( jq, window, window.document );
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	else {
 | 
			
		||||
		// Browser
 | 
			
		||||
		factory( jQuery, window, document );
 | 
			
		||||
	}
 | 
			
		||||
}(function( $, window, document, undefined ) {
 | 
			
		||||
'use strict';
 | 
			
		||||
var DataTable = $.fn.dataTable;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * DataTables integration for Foundation. This requires Foundation 5 and
 | 
			
		||||
 * DataTables 1.10 or newer.
 | 
			
		||||
 *
 | 
			
		||||
 * This file sets the defaults and adds options to DataTables to style its
 | 
			
		||||
 * controls using Foundation. See http://datatables.net/manual/styling/foundation
 | 
			
		||||
 * for further information.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
// Detect Foundation 5 / 6 as they have different element and class requirements
 | 
			
		||||
var meta = $('<meta class="foundation-mq"/>').appendTo('head');
 | 
			
		||||
DataTable.ext.foundationVersion = meta.css('font-family').match(/small|medium|large/) ? 6 : 5;
 | 
			
		||||
meta.remove();
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
$.extend( DataTable.ext.classes, {
 | 
			
		||||
	sWrapper:    "dataTables_wrapper dt-foundation",
 | 
			
		||||
	sProcessing: "dataTables_processing panel callout"
 | 
			
		||||
} );
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* Set the defaults for DataTables initialisation */
 | 
			
		||||
$.extend( true, DataTable.defaults, {
 | 
			
		||||
	dom:
 | 
			
		||||
		"<'row grid-x'<'small-6 columns cell'l><'small-6 columns cell'f>r>"+
 | 
			
		||||
		"t"+
 | 
			
		||||
		"<'row grid-x'<'small-6 columns cell'i><'small-6 columns cell'p>>",
 | 
			
		||||
	renderer: 'foundation'
 | 
			
		||||
} );
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* Page button renderer */
 | 
			
		||||
DataTable.ext.renderer.pageButton.foundation = function ( settings, host, idx, buttons, page, pages ) {
 | 
			
		||||
	var api = new DataTable.Api( settings );
 | 
			
		||||
	var classes = settings.oClasses;
 | 
			
		||||
	var lang = settings.oLanguage.oPaginate;
 | 
			
		||||
	var aria = settings.oLanguage.oAria.paginate || {};
 | 
			
		||||
	var btnDisplay, btnClass;
 | 
			
		||||
	var tag;
 | 
			
		||||
	var v5 = DataTable.ext.foundationVersion === 5;
 | 
			
		||||
 | 
			
		||||
	var attach = function( container, buttons ) {
 | 
			
		||||
		var i, ien, node, button;
 | 
			
		||||
		var clickHandler = function ( e ) {
 | 
			
		||||
			e.preventDefault();
 | 
			
		||||
			if ( !$(e.currentTarget).hasClass('unavailable') && api.page() != e.data.action ) {
 | 
			
		||||
				api.page( e.data.action ).draw( 'page' );
 | 
			
		||||
			}
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		for ( i=0, ien=buttons.length ; i<ien ; i++ ) {
 | 
			
		||||
			button = buttons[i];
 | 
			
		||||
 | 
			
		||||
			if ( Array.isArray( button ) ) {
 | 
			
		||||
				attach( container, button );
 | 
			
		||||
			}
 | 
			
		||||
			else {
 | 
			
		||||
				btnDisplay = '';
 | 
			
		||||
				btnClass = '';
 | 
			
		||||
				tag = null;
 | 
			
		||||
 | 
			
		||||
				switch ( button ) {
 | 
			
		||||
					case 'ellipsis':
 | 
			
		||||
						btnDisplay = '…';
 | 
			
		||||
						btnClass = 'unavailable disabled';
 | 
			
		||||
						tag = null;
 | 
			
		||||
						break;
 | 
			
		||||
 | 
			
		||||
					case 'first':
 | 
			
		||||
						btnDisplay = lang.sFirst;
 | 
			
		||||
						btnClass = button + (page > 0 ?
 | 
			
		||||
							'' : ' unavailable disabled');
 | 
			
		||||
						tag = page > 0 ? 'a' : null;
 | 
			
		||||
						break;
 | 
			
		||||
 | 
			
		||||
					case 'previous':
 | 
			
		||||
						btnDisplay = lang.sPrevious;
 | 
			
		||||
						btnClass = button + (page > 0 ?
 | 
			
		||||
							'' : ' unavailable disabled');
 | 
			
		||||
						tag = page > 0 ? 'a' : null;
 | 
			
		||||
						break;
 | 
			
		||||
 | 
			
		||||
					case 'next':
 | 
			
		||||
						btnDisplay = lang.sNext;
 | 
			
		||||
						btnClass = button + (page < pages-1 ?
 | 
			
		||||
							'' : ' unavailable disabled');
 | 
			
		||||
						tag = page < pages-1 ? 'a' : null;
 | 
			
		||||
						break;
 | 
			
		||||
 | 
			
		||||
					case 'last':
 | 
			
		||||
						btnDisplay = lang.sLast;
 | 
			
		||||
						btnClass = button + (page < pages-1 ?
 | 
			
		||||
							'' : ' unavailable disabled');
 | 
			
		||||
						tag = page < pages-1 ? 'a' : null;
 | 
			
		||||
						break;
 | 
			
		||||
 | 
			
		||||
					default:
 | 
			
		||||
						btnDisplay = button + 1;
 | 
			
		||||
						btnClass = page === button ?
 | 
			
		||||
							'current' : '';
 | 
			
		||||
						tag = page === button ?
 | 
			
		||||
							null : 'a';
 | 
			
		||||
						break;
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
				if ( v5 ) {
 | 
			
		||||
					tag = 'a';
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
				if ( btnDisplay ) {
 | 
			
		||||
					var disabled = btnClass.indexOf('disabled') !== -1;
 | 
			
		||||
 | 
			
		||||
					node = $('<li>', {
 | 
			
		||||
							'class': classes.sPageButton+' '+btnClass,
 | 
			
		||||
							'id': idx === 0 && typeof button === 'string' ?
 | 
			
		||||
								settings.sTableId +'_'+ button :
 | 
			
		||||
								null
 | 
			
		||||
						} )
 | 
			
		||||
						.append( tag ?
 | 
			
		||||
							$('<'+tag+'/>', {
 | 
			
		||||
								'href': disabled ? null : '#',
 | 
			
		||||
								'aria-controls': settings.sTableId,
 | 
			
		||||
								'aria-disabled': disabled ? 'true' : null,
 | 
			
		||||
								'aria-label': aria[ button ],
 | 
			
		||||
								'aria-role': 'link',
 | 
			
		||||
								'aria-current': btnClass === 'current' ? 'page' : null,
 | 
			
		||||
								'tabindex': settings.iTabIndex,
 | 
			
		||||
							} ).html( btnDisplay ) :
 | 
			
		||||
							btnDisplay
 | 
			
		||||
						)
 | 
			
		||||
						.appendTo( container );
 | 
			
		||||
 | 
			
		||||
					settings.oApi._fnBindAction(
 | 
			
		||||
						node, {action: button}, clickHandler
 | 
			
		||||
					);
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	attach(
 | 
			
		||||
		$(host).empty().html('<ul class="pagination"/>').children('ul'),
 | 
			
		||||
		buttons
 | 
			
		||||
	);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
return DataTable;
 | 
			
		||||
}));
 | 
			
		||||
							
								
								
									
										4
									
								
								Frontend/lib/dataTables/DataTables-1.13.4/js/dataTables.foundation.min.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,4 @@
 | 
			
		||||
/*! DataTables Foundation integration
 | 
			
		||||
 * ©2011-2015 SpryMedia Ltd - datatables.net/license
 | 
			
		||||
 */
 | 
			
		||||
!function(n){var l,t;"function"==typeof define&&define.amd?define(["jquery","datatables.net"],function(a){return n(a,window,document)}):"object"==typeof exports?(l=require("jquery"),t=function(a,e){e.fn.dataTable||require("datatables.net")(a,e)},"undefined"!=typeof window?module.exports=function(a,e){return a=a||window,e=e||l(a),t(a,e),n(e,0,a.document)}:(t(window,l),module.exports=n(l,window,window.document))):n(jQuery,window,document)}(function(y,a,e,n){"use strict";var l=y.fn.dataTable,t=y('<meta class="foundation-mq"/>').appendTo("head");return l.ext.foundationVersion=t.css("font-family").match(/small|medium|large/)?6:5,t.remove(),y.extend(l.ext.classes,{sWrapper:"dataTables_wrapper dt-foundation",sProcessing:"dataTables_processing panel callout"}),y.extend(!0,l.defaults,{dom:"<'row grid-x'<'small-6 columns cell'l><'small-6 columns cell'f>r>t<'row grid-x'<'small-6 columns cell'i><'small-6 columns cell'p>>",renderer:"foundation"}),l.ext.renderer.pageButton.foundation=function(o,a,s,e,d,u){function c(a,e){for(var n,l,t=function(a){a.preventDefault(),y(a.currentTarget).hasClass("unavailable")||m.page()==a.data.action||m.page(a.data.action).draw("page")},i=0,r=e.length;i<r;i++)if(n=e[i],Array.isArray(n))c(a,n);else{switch(p=f="",b=null,n){case"ellipsis":f="…",p="unavailable disabled",b=null;break;case"first":f=w.sFirst,p=n+(0<d?"":" unavailable disabled"),b=0<d?"a":null;break;case"previous":f=w.sPrevious,p=n+(0<d?"":" unavailable disabled"),b=0<d?"a":null;break;case"next":f=w.sNext,p=n+(d<u-1?"":" unavailable disabled"),b=d<u-1?"a":null;break;case"last":f=w.sLast,p=n+(d<u-1?"":" unavailable disabled"),b=d<u-1?"a":null;break;default:f=n+1,p=d===n?"current":"",b=d===n?null:"a"}v&&(b="a"),f&&(l=-1!==p.indexOf("disabled"),l=y("<li>",{class:g.sPageButton+" "+p,id:0===s&&"string"==typeof n?o.sTableId+"_"+n:null}).append(b?y("<"+b+"/>",{href:l?null:"#","aria-controls":o.sTableId,"aria-disabled":l?"true":null,"aria-label":x[n],"aria-role":"link","aria-current":"current"===p?"page":null,tabindex:o.iTabIndex}).html(f):f).appendTo(a),o.oApi._fnBindAction(l,{action:n},t))}}var f,p,b,m=new l.Api(o),g=o.oClasses,w=o.oLanguage.oPaginate,x=o.oLanguage.oAria.paginate||{},v=5===l.ext.foundationVersion;c(y(a).empty().html('<ul class="pagination"/>').children("ul"),e)},l});
 | 
			
		||||
@ -0,0 +1,95 @@
 | 
			
		||||
/*! DataTables jQuery UI integration
 | 
			
		||||
 * ©2011-2014 SpryMedia Ltd - datatables.net/license
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
(function( factory ){
 | 
			
		||||
	if ( typeof define === 'function' && define.amd ) {
 | 
			
		||||
		// AMD
 | 
			
		||||
		define( ['jquery', 'datatables.net'], function ( $ ) {
 | 
			
		||||
			return factory( $, window, document );
 | 
			
		||||
		} );
 | 
			
		||||
	}
 | 
			
		||||
	else if ( typeof exports === 'object' ) {
 | 
			
		||||
		// CommonJS
 | 
			
		||||
		var jq = require('jquery');
 | 
			
		||||
		var cjsRequires = function (root, $) {
 | 
			
		||||
			if ( ! $.fn.dataTable ) {
 | 
			
		||||
				require('datatables.net')(root, $);
 | 
			
		||||
			}
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		if (typeof window !== 'undefined') {
 | 
			
		||||
			module.exports = function (root, $) {
 | 
			
		||||
				if ( ! root ) {
 | 
			
		||||
					// CommonJS environments without a window global must pass a
 | 
			
		||||
					// root. This will give an error otherwise
 | 
			
		||||
					root = window;
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
				if ( ! $ ) {
 | 
			
		||||
					$ = jq( root );
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
				cjsRequires( root, $ );
 | 
			
		||||
				return factory( $, root, root.document );
 | 
			
		||||
			};
 | 
			
		||||
		}
 | 
			
		||||
		else {
 | 
			
		||||
			cjsRequires( window, jq );
 | 
			
		||||
			module.exports = factory( jq, window, window.document );
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	else {
 | 
			
		||||
		// Browser
 | 
			
		||||
		factory( jQuery, window, document );
 | 
			
		||||
	}
 | 
			
		||||
}(function( $, window, document, undefined ) {
 | 
			
		||||
'use strict';
 | 
			
		||||
var DataTable = $.fn.dataTable;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * DataTables integration for jQuery UI. This requires jQuery UI and
 | 
			
		||||
 * DataTables 1.10 or newer.
 | 
			
		||||
 *
 | 
			
		||||
 * This file sets the defaults and adds options to DataTables to style its
 | 
			
		||||
 * controls using jQuery UI. See http://datatables.net/manual/styling/jqueryui
 | 
			
		||||
 * for further information.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
var toolbar_prefix = 'fg-toolbar ui-toolbar ui-widget-header ui-helper-clearfix ui-corner-';
 | 
			
		||||
 | 
			
		||||
/* Set the defaults for DataTables initialisation */
 | 
			
		||||
$.extend( true, DataTable.defaults, {
 | 
			
		||||
	dom:
 | 
			
		||||
		'<"'+toolbar_prefix+'tl ui-corner-tr"lfr>'+
 | 
			
		||||
		't'+
 | 
			
		||||
		'<"'+toolbar_prefix+'bl ui-corner-br"ip>'
 | 
			
		||||
} );
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
$.extend( DataTable.ext.classes, {
 | 
			
		||||
	"sWrapper":            "dataTables_wrapper dt-jqueryui",
 | 
			
		||||
 | 
			
		||||
	/* Full numbers paging buttons */
 | 
			
		||||
	"sPageButton":         "fg-button ui-button ui-state-default",
 | 
			
		||||
	"sPageButtonActive":   "ui-state-disabled",
 | 
			
		||||
	"sPageButtonDisabled": "ui-state-disabled",
 | 
			
		||||
 | 
			
		||||
	/* Features */
 | 
			
		||||
	"sPaging": "dataTables_paginate fg-buttonset ui-buttonset fg-buttonset-multi "+
 | 
			
		||||
		"ui-buttonset-multi paging_", /* Note that the type is postfixed */
 | 
			
		||||
 | 
			
		||||
	/* Scrolling */
 | 
			
		||||
	"sScrollHead": "dataTables_scrollHead "+"ui-state-default",
 | 
			
		||||
	"sScrollFoot": "dataTables_scrollFoot "+"ui-state-default",
 | 
			
		||||
 | 
			
		||||
	/* Misc */
 | 
			
		||||
	"sHeaderTH":  "ui-state-default",
 | 
			
		||||
	"sFooterTH":  "ui-state-default"
 | 
			
		||||
} );
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
return DataTable;
 | 
			
		||||
}));
 | 
			
		||||
							
								
								
									
										4
									
								
								Frontend/lib/dataTables/DataTables-1.13.4/js/dataTables.jqueryui.min.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,4 @@
 | 
			
		||||
/*! DataTables jQuery UI integration
 | 
			
		||||
 * ©2011-2014 SpryMedia Ltd - datatables.net/license
 | 
			
		||||
 */
 | 
			
		||||
!function(a){var u,o;"function"==typeof define&&define.amd?define(["jquery","datatables.net"],function(t){return a(t,window,document)}):"object"==typeof exports?(u=require("jquery"),o=function(t,e){e.fn.dataTable||require("datatables.net")(t,e)},"undefined"!=typeof window?module.exports=function(t,e){return t=t||window,e=e||u(t),o(t,e),a(e,0,t.document)}:(o(window,u),module.exports=a(u,window,window.document))):a(jQuery,window,document)}(function(t,e,a,u){"use strict";var o=t.fn.dataTable,n="fg-toolbar ui-toolbar ui-widget-header ui-helper-clearfix ui-corner-";return t.extend(!0,o.defaults,{dom:'<"'+n+'tl ui-corner-tr"lfr>t<"'+n+'bl ui-corner-br"ip>'}),t.extend(o.ext.classes,{sWrapper:"dataTables_wrapper dt-jqueryui",sPageButton:"fg-button ui-button ui-state-default",sPageButtonActive:"ui-state-disabled",sPageButtonDisabled:"ui-state-disabled",sPaging:"dataTables_paginate fg-buttonset ui-buttonset fg-buttonset-multi ui-buttonset-multi paging_",sScrollHead:"dataTables_scrollHead ui-state-default",sScrollFoot:"dataTables_scrollFoot ui-state-default",sHeaderTH:"ui-state-default",sFooterTH:"ui-state-default"}),o});
 | 
			
		||||