From 30024517d6575d957a9696c0e463b97cf44df57c Mon Sep 17 00:00:00 2001 From: "florian.azizian" <florian.azizian@maarch.org> Date: Mon, 1 Apr 2019 10:14:41 +0100 Subject: [PATCH] FIX #9575 fileplan security --- modules/fileplan/fileplan.php | 6 +- modules/fileplan/fileplan_ajax_script.php | 2473 ++++++++++----------- modules/fileplan/fileplan_managment.php | 133 +- package.json | 2 +- src/frontend/css/maarch-material.css | 2 +- 5 files changed, 1290 insertions(+), 1326 deletions(-) diff --git a/modules/fileplan/fileplan.php b/modules/fileplan/fileplan.php index 2ef6a111bbc..8bf95db3d99 100755 --- a/modules/fileplan/fileplan.php +++ b/modules/fileplan/fileplan.php @@ -125,17 +125,17 @@ if (count($fileplans_array) > 0) { var struct_<?php functions::xecho($fileplans_array[$i]['ID']); ?> = [ { 'id':'<?php functions::xecho($fileplans_array[$i]['ID']); ?>', - 'txt':' <?php echo empty($fileplans_array[$i]['LABEL']) ? _FILEPLAN : $fileplans_array[$i]['LABEL']; ?>', + 'txt':' <?php echo empty($fileplans_array[$i]['LABEL']) ? _FILEPLAN : functions::xssafe($fileplans_array[$i]['LABEL']); ?>', 'items':[ <?php for ($ii = 0; $ii < count($level_1); ++$ii) { ?> { 'id' : '<?php functions::xecho($fileplans_array[$i]['ID'].'@@'.$level_1[$ii]['id']);?>', - 'title' : '<?php functions::xecho($level_1[$ii]['tooltip_value']);?>', + 'title' : '<?php functions::xecho($level_1[$ii]['tooltip_value']); ?>', 'canhavechildren' : true, 'onclick' : 'view_document_list', - 'txt' : '<?php echo " "; functions::xecho($level_1[$ii]['label_value']);?>', + 'txt' : '<?php echo ' '.functions::xssafe($level_1[$ii]['label_value']); ?>', 'style': 'tree_branch' }, diff --git a/modules/fileplan/fileplan_ajax_script.php b/modules/fileplan/fileplan_ajax_script.php index 38a34505daa..2fe6a188c53 100755 --- a/modules/fileplan/fileplan_ajax_script.php +++ b/modules/fileplan/fileplan_ajax_script.php @@ -58,16 +58,24 @@ if (isset($_REQUEST['mode']) && !empty($_REQUEST['mode'])) { $parameters = ''; if (isset($_REQUEST['order']) && !empty($_REQUEST['order'])) { $parameters .= '&order='.$_REQUEST['order']; - if (isset($_REQUEST['order_field']) && !empty($_REQUEST['order_field'])) $parameters - .= '&order_field='.$_REQUEST['order_field']; + if (isset($_REQUEST['order_field']) && !empty($_REQUEST['order_field'])) { + $parameters + .= '&order_field='.$_REQUEST['order_field']; + } +} +if (isset($_REQUEST['what']) && !empty($_REQUEST['what'])) { + $parameters .= '&what='.$_REQUEST['what']; +} +if (isset($_REQUEST['template']) && !empty($_REQUEST['template'])) { + $parameters .= '&template='.$_REQUEST['template']; +} +if (isset($_REQUEST['start']) && !empty($_REQUEST['start'])) { + $parameters .= '&start='.$_REQUEST['start']; } -if (isset($_REQUEST['what']) && !empty($_REQUEST['what'])) $parameters .= '&what='.$_REQUEST['what']; -if (isset($_REQUEST['template']) && !empty($_REQUEST['template'])) $parameters .= '&template='.$_REQUEST['template']; -if (isset($_REQUEST['start']) && !empty($_REQUEST['start'])) $parameters .= '&start='.$_REQUEST['start']; //Path to actual script $path_to_script = $_SESSION['config']['businessappurl'] - ."index.php?display=true&module=fileplan&page=fileplan_ajax_script".$parameters; + ."index.php?display=true&module=fileplan&page=fileplan_ajax_script".$parameters; //Keep the origin to reload the origin list $list_origin = $refresh = $origin = ''; @@ -75,7 +83,7 @@ if (isset($_REQUEST['origin']) && !empty($_REQUEST['origin'])) { // $origin = $_REQUEST['origin']; - if ($origin == "search") { + if ($origin == "search") { //From search result $list_origin = "loadList('".$_SESSION['config']['businessappurl'] ."index.php?page=documents_list_mlb_search_adv&dir=indexing_searching&display=true&load" @@ -83,7 +91,7 @@ if (isset($_REQUEST['origin']) && !empty($_REQUEST['origin'])) { } elseif ($origin == "basket") { //From basket $list_origin = "loadList('".$_SESSION['current_basket']['page_no_frame'] - ."&display=true".$parameters."', 'divList', true);"; + ."&display=true".$parameters."', 'divList', true);"; } elseif ($origin == "fileplan") { //From fileplan menu $old_id = ''; @@ -98,296 +106,241 @@ if (isset($_REQUEST['origin']) && !empty($_REQUEST['origin'])) { } switch ($mode) { - case 'addFileplan': - //Form - $content .= '<form name="formFileplan" id="formFileplan" ' - .'method="post" action="#" class="forms">'; - $content .= '<input type="hidden" name="fileplan_id" value="'.$fileplan_id.'" />'; - $content .= '<h2>'._ADD_FILEPLAN.'</h2>'; - $content .= '<div style="height:135px; overflow-x:hidden; overflow-y:auto;">'; - //Name - $content .='<p>'; - $content .='<label nowrap>'._FILEPLAN_NAME.': </label>'; - $content .='<input name="fileplan_label" type="text" ' - .'id="fileplan_label" class="fileplan_position" value="' - .'" /><span class="red_asterisk"><i class="fa fa-star"></i></span>'; - $content .='</p>'; - //Entity if needed - /* - if ($core_tools->test_service('admin_fileplan', 'fileplan', false)) { - //If entities module - if ($core_tools->is_module_loaded('entities')) { - require_once 'modules' . DIRECTORY_SEPARATOR . 'entities' - . DIRECTORY_SEPARATOR . 'class' . DIRECTORY_SEPARATOR - . 'class_manage_entities.php'; - $ent = new entity(); - $allEntitiesTree= array(); - $allEntitiesTree = $ent->getShortEntityTreeAdvanced($allEntitiesTree, 'all'); - // print_r($allEntitiesTree); - $content .='<p>'; - $content .='<label >'._ENTITY.': </label>'; - $content .='<select name="entity_id" id="entity_id" class="fileplan_position">'; - $content .= '<option value="">' . _CHOOSE_DEPARTMENT . '</option>'; - for($i=0; $i < count($allEntitiesTree); $i++) { - //Is keyword - if (!$allEntitiesTree[$i]['KEYWORD']) { - $content .='<option value="'.$allEntitiesTree[$i]['ID'].'"'; - //Is disable ? - if($allEntitiesTree[$i]['DISABLED']) - $content .= ' disabled="disabled" class="disabled_entity"'; + case 'addFileplan': + //Form + $content .= '<form name="formFileplan" id="formFileplan" ' + .'method="post" action="#" class="forms">'; + $content .= '<input type="hidden" name="fileplan_id" value="'.$fileplan_id.'" />'; + $content .= '<h2>'._ADD_FILEPLAN.'</h2>'; + $content .= '<div style="height:135px; overflow-x:hidden; overflow-y:auto;">'; + //Name + $content .='<p>'; + $content .='<label nowrap>'._FILEPLAN_NAME.': </label>'; + $content .='<input name="fileplan_label" type="text" ' + .'id="fileplan_label" class="fileplan_position" value="' + .'" /><span class="red_asterisk"><i class="fa fa-star"></i></span>'; + $content .='</p>'; + $content .='<br/><p>'; + $content .='<label >'._IS_SERIAL_ID.': </label>'; + $content .='<input name="is_serial" type="radio" id="is_serial" value="Y" checked="ckecked" />'._YES; + $content .='<input name="is_serial" type="radio" id="is_serial" value="N" />'._NO; + $content .='<span class="red_asterisk">*</span>'; + $content .='</p>'; + $content .= '</div>'; + //Buttons + $content .='<hr />'; + $content .='<div align="center">'; + $content .=' <input type="button" name="valid" value=" '._VALIDATE + .' " id="valid" class="button" onclick="validFileplanForm(\'' + .$path_to_script.'&origin=admin&mode=saveFileplan\', \'formFileplan\');" /> '; + $content .='<input type="button" name="cancel" id="cancel" class="button" value="' + ._CANCEL.'" onclick="destroyModal(\'modal_fileplan\');"/>'; + $content .='</div">'; + $content .= '</form>'; + break; + case 'saveFileplan': + if (strlen(trim($_REQUEST['fileplan_label'])) > 0) { + //Init + $user_id = null; + $entity_id = null; - $content .='>'.$db->show_string($allEntitiesTree[$i]['SHORT_LABEL']).'</option>'; - } - } - $content .='</select><span class="red_asterisk">*</span>'; - $content .='</p>'; - } - }*/ - // - $content .='<br/><p>'; - $content .='<label >'._IS_SERIAL_ID.': </label>'; - $content .='<input name="is_serial" type="radio" id="is_serial" value="Y" checked="ckecked" />'._YES; - $content .='<input name="is_serial" type="radio" id="is_serial" value="N" />'._NO; - $content .='<span class="red_asterisk">*</span>'; - $content .='</p>'; - $content .= '</div>'; - //Buttons - $content .='<hr />'; - $content .='<div align="center">'; - $content .=' <input type="button" name="valid" value=" '._VALIDATE - .' " id="valid" class="button" onclick="validFileplanForm(\'' - .$path_to_script.'&origin=admin&mode=saveFileplan\', \'formFileplan\');" /> '; - $content .='<input type="button" name="cancel" id="cancel" class="button" value="' - ._CANCEL.'" onclick="destroyModal(\'modal_fileplan\');"/>'; - $content .='</div">'; - $content .= '</form>'; - break; - case 'saveFileplan': - if (strlen(trim($_REQUEST['fileplan_label'])) > 0) { - //Init - $user_id = NULL; - $entity_id = NULL; - - //Get fileplan scope - if ($origin == "admin" - && $core_tools->test_service('admin_fileplan', 'fileplan', false) - ) { - /* - if (isset($_REQUEST['entity_id']) && !empty($_REQUEST['entity_id'])) { - $entity_id = "'".$_REQUEST['entity_id']."'"; - } else { - $error = functions::wash_html(_ENTITY.' '._IS_EMPTY.'!','NONE'); - $status = 1; - }*/ - } elseif ($origin == "manage") { - $user_id = $_SESSION['user']['UserId']; - } - - if ($status <> 1) { - //Insert data - $fileplan_label = $_REQUEST['fileplan_label']; - $stmt = $db->query("INSERT INTO ".FILEPLAN_TABLE - . " (fileplan_label, user_id, entity_id, is_serial_id, enabled)" - . " VALUES (?,?,?,?,?)" - ,array($fileplan_label,$user_id,$entity_id,$_REQUEST['is_serial'],'Y')); - - //History - if ($_SESSION['history']['fileplanadd']) { - //Last insert ID from sequence - $id = $db->lastInsertId('fp_fileplan_fileplan_id_seq'); - //Add to history - $hist->add( - FILEPLAN_TABLE, $id, "ADD", 'fileplanadd', _FILEPLAN_ADDED - . ": ".$fileplan_label." (" . $id . ")", - $_SESSION['config']['databasetype'], 'fileplan' - ); - } - - //Return javascript - if ($origin == "admin") { - //From admin - $js .= "destroyModal('modal_fileplan');"; - $js .= "loadList('" - .$_SESSION['config']['businessappurl'] - ."index.php?page=fileplan_admin&module=fileplan&display=true" - .$parameters."');"; - } elseif ($origin == "manage") { - //From manage - $js .= "window.top.location.href='" - .$_SESSION['config']['businessappurl'] - ."index.php?page=fileplan_managment&module=fileplan&reinit=true&load';"; - } - } - } else { - $error = functions::wash_html(_FILEPLAN_NAME.' '._IS_EMPTY.'!','NONE'); + //Get fileplan scope + if ($origin == "admin" + && $core_tools->test_service('admin_fileplan', 'fileplan', false) + ) { + /* + if (isset($_REQUEST['entity_id']) && !empty($_REQUEST['entity_id'])) { + $entity_id = "'".$_REQUEST['entity_id']."'"; + } else { + $error = functions::wash_html(_ENTITY.' '._IS_EMPTY.'!','NONE'); + $status = 1; + }*/ + } elseif ($origin == "manage") { + $user_id = $_SESSION['user']['UserId']; + } + + if ($status <> 1) { + //Insert data + $fileplan_label = $_REQUEST['fileplan_label']; + $stmt = $db->query("INSERT INTO ".FILEPLAN_TABLE + . " (fileplan_label, user_id, entity_id, is_serial_id, enabled)" + . " VALUES (?,?,?,?,?)", array($fileplan_label,$user_id,$entity_id,$_REQUEST['is_serial'],'Y')); + + //History + if ($_SESSION['history']['fileplanadd']) { + //Last insert ID from sequence + $id = $db->lastInsertId('fp_fileplan_fileplan_id_seq'); + //Add to history + $hist->add( + FILEPLAN_TABLE, + $id, + "ADD", + 'fileplanadd', + _FILEPLAN_ADDED + . ": ".$fileplan_label." (" . $id . ")", + $_SESSION['config']['databasetype'], + 'fileplan' + ); + } + + //Return javascript + if ($origin == "admin") { + //From admin + $js .= "destroyModal('modal_fileplan');"; + $js .= "loadList('" + .$_SESSION['config']['businessappurl'] + ."index.php?page=fileplan_admin&module=fileplan&display=true" + .$parameters."');"; + } elseif ($origin == "manage") { + //From manage + $js .= "window.top.location.href='" + .$_SESSION['config']['businessappurl'] + ."index.php?page=fileplan_managment&module=fileplan&reinit=true&load';"; + } + } + } else { + $error = functions::wash_html(_FILEPLAN_NAME.' '._IS_EMPTY.'!', 'NONE'); $status = 1; } - break; - case 'upFileplan': - if (isset($_REQUEST['fileplan_id']) && !empty($_REQUEST['fileplan_id'])) { - //Get fileplan ID - $fileplan_id = $_REQUEST['fileplan_id']; - $fileplan_array = $fileplan->getFileplan($fileplan_id, false); - // - $content .= '<form name="formFileplan" id="formFileplan" ' - .'method="post" action="#" class="forms">'; - $content .= '<input type="hidden" name="fileplan_id" value="'.$fileplan_array['ID'].'" />'; - $content .= '<h2>'._EDIT_FILEPLAN.'</h2>'; - $content .= '<div style="height:135px; overflow-x:hidden; overflow-y:auto;">'; - //Name - $content .='<p>'; - $content .='<label nowrap>'._FILEPLAN_NAME.': </label>'; - $content .='<input name="fileplan_label" type="text" ' - .'id="fileplan_label" class="fileplan_position" value="' - . functions::xssafe($fileplan_array['LABEL']) - .'" /><span class="red_asterisk"><i class="fa fa-star"></i></span>'; - $content .='</p>'; - //Entity if needed - /* - if ($core_tools->test_service('admin_fileplan', 'fileplan', false)) { - //If entities module - if ($core_tools->is_module_loaded('entities')) { - require_once 'modules' . DIRECTORY_SEPARATOR . 'entities' - . DIRECTORY_SEPARATOR . 'class' . DIRECTORY_SEPARATOR - . 'class_manage_entities.php'; - $ent = new entity(); - $allEntitiesTree= array(); - $allEntitiesTree = $ent->getShortEntityTreeAdvanced($allEntitiesTree, 'all'); - $content .='<p>'; - $content .='<label >'._ENTITY.': </label>'; - $content .='<select name="entity_id" id="entity_id" class="fileplan_position">'; - $content .= '<option value="">' . _CHOOSE_DEPARTMENT . '</option>'; - for($i=0; $i < count($allEntitiesTree); $i++) { - //Is keyword? - if (!$allEntitiesTree[$i]['KEYWORD']) { - $content .='<option value="'.$allEntitiesTree[$i]['ID'].'"'; - //Is disable? - if($allEntitiesTree[$i]['DISABLED']) - $content .= ' disabled="disabled" class="disabled_entity"'; - //Is Selected? - if ($fileplan_array['ENTITY'] == $allEntitiesTree[$i]['ID']) - $content .= ' selected="selected"'; - $content .='>'.$db->show_string($allEntitiesTree[$i]['SHORT_LABEL']).'</option>'; - } - } - $content .='</select><span class="red_asterisk">*</span>'; - $content .='</p>'; - } - }*/ - //If fileplan has position no possibility to change type - if ($fileplan->fileplanHasPositions($fileplan_array['ID']) === false){ - $checkedYes = $checkedNo = ''; - if($fileplan_array['IS_SERIAL'] == 'Y') { - $checkedYes = 'checked="ckecked"'; - } else { - $checkedNo = 'checked="ckecked"'; - } - $content .='<br/><p>'; - $content .='<label >'._IS_SERIAL_ID.': </label>'; - $content .='<input name="is_serial" type="radio" id="is_serial" value="Y" '.$checkedYes.' />'._YES; - $content .='<input name="is_serial" type="radio" id="is_serial" value="N" '.$checkedNo.' />'._NO; - $content .='<span class="red_asterisk"><i class="fa fa-star"></i></span>'; - $content .='</p>'; - } else { + break; + case 'upFileplan': + if (isset($_REQUEST['fileplan_id']) && !empty($_REQUEST['fileplan_id'])) { + //Get fileplan ID + $fileplan_id = $_REQUEST['fileplan_id']; + $fileplan_array = $fileplan->getFileplan($fileplan_id, false); + // + $content .= '<form name="formFileplan" id="formFileplan" ' + .'method="post" action="#" class="forms">'; + $content .= '<input type="hidden" name="fileplan_id" value="'.$fileplan_array['ID'].'" />'; + $content .= '<h2>'._EDIT_FILEPLAN.'</h2>'; + $content .= '<div style="height:135px; overflow-x:hidden; overflow-y:auto;">'; + //Name + $content .='<p>'; + $content .='<label nowrap>'._FILEPLAN_NAME.': </label>'; + $content .='<input name="fileplan_label" type="text" ' + .'id="fileplan_label" class="fileplan_position" value="' + . functions::xssafe($fileplan_array['LABEL']) + .'" /><span class="red_asterisk"><i class="fa fa-star"></i></span>'; + $content .='</p>'; + //If fileplan has position no possibility to change type + if ($fileplan->fileplanHasPositions($fileplan_array['ID']) === false) { + $checkedYes = $checkedNo = ''; + if ($fileplan_array['IS_SERIAL'] == 'Y') { + $checkedYes = 'checked="ckecked"'; + } else { + $checkedNo = 'checked="ckecked"'; + } + $content .='<br/><p>'; + $content .='<label >'._IS_SERIAL_ID.': </label>'; + $content .='<input name="is_serial" type="radio" id="is_serial" value="Y" '.$checkedYes.' />'._YES; + $content .='<input name="is_serial" type="radio" id="is_serial" value="N" '.$checkedNo.' />'._NO; + $content .='<span class="red_asterisk"><i class="fa fa-star"></i></span>'; + $content .='</p>'; + } else { $content .= '<input type="hidden" value="'.$fileplan_array['IS_SERIAL'].'" name="is_serial"/>'; } - $content .= '</div>'; - //Buttons - $content .='<hr />'; - $content .='<div align="center">'; - $content .=' <input type="button" name="valid" value=" '._VALIDATE - .' " id="valid" class="button" onclick="validFileplanForm(\'' - .$path_to_script.'&origin='.$origin.'&mode=updateFileplan\', \'formFileplan\');" /> '; - $content .='<input type="button" name="cancel" id="cancel" class="button" value="' - ._CANCEL.'" onclick="destroyModal(\'modal_fileplan\');"/>'; - $content .='</div">'; - $content .= '</form>'; - } else { - $error = functions::wash_html(_FILEPLAN_ID.' '._IS_EMPTY.'!','NONE'); + $content .= '</div>'; + //Buttons + $content .='<hr />'; + $content .='<div align="center">'; + $content .=' <input type="button" name="valid" value=" '._VALIDATE + .' " id="valid" class="button" onclick="validFileplanForm(\'' + .$path_to_script.'&origin='.$origin.'&mode=updateFileplan\', \'formFileplan\');" /> '; + $content .='<input type="button" name="cancel" id="cancel" class="button" value="' + ._CANCEL.'" onclick="destroyModal(\'modal_fileplan\');"/>'; + $content .='</div">'; + $content .= '</form>'; + } else { + $error = functions::wash_html(_FILEPLAN_ID.' '._IS_EMPTY.'!', 'NONE'); $status = 1; } - break; - case 'updateFileplan': - if (isset($_REQUEST['fileplan_id']) && !empty($_REQUEST['fileplan_id'])) { - //Get fileplan ID - $fileplan_id = $_REQUEST['fileplan_id']; - //Get fileplan name - if (strlen(trim($_REQUEST['fileplan_label'])) > 0) { - //Init - $user_id = ''; - $entity_id = ''; - - //Get fileplan scope - if ($origin == "admin" - && $core_tools->test_service('admin_fileplan', 'fileplan', false) - ) { - /* - if (isset($_REQUEST['entity_id']) && !empty($_REQUEST['entity_id'])) { - $entity_id = "'".$_REQUEST['entity_id']."'"; - } else { - $error = functions::wash_html(_ENTITY.' '._IS_EMPTY.'!','NONE'); - $status = 1; - }*/ - } elseif ($origin == "manage") { - $user_id = "'".$_SESSION['user']['UserId']."'"; - } - - if ($status <> 1) { - //Update data - $fileplan_label = $_REQUEST['fileplan_label']; - $stmt = $db->query( - "UPDATE ".FILEPLAN_TABLE . " SET fileplan_label = ?" - . ", user_id = ?" - . ", entity_id = ?" - . ", is_serial_id = ?" - . " WHERE fileplan_id = ?" - ,array($fileplan_label,$user_id,$entity_id,$_REQUEST['is_serial'],$fileplan_id)); + break; + case 'updateFileplan': + if (isset($_REQUEST['fileplan_id']) && !empty($_REQUEST['fileplan_id'])) { + //Get fileplan ID + $fileplan_id = $_REQUEST['fileplan_id']; + //Get fileplan name + if (strlen(trim($_REQUEST['fileplan_label'])) > 0) { + //Init + $user_id = ''; + $entity_id = ''; + + //Get fileplan scope + if ($origin == "admin" + && $core_tools->test_service('admin_fileplan', 'fileplan', false) + ) { + /* + if (isset($_REQUEST['entity_id']) && !empty($_REQUEST['entity_id'])) { + $entity_id = "'".$_REQUEST['entity_id']."'"; + } else { + $error = functions::wash_html(_ENTITY.' '._IS_EMPTY.'!','NONE'); + $status = 1; + }*/ + } elseif ($origin == "manage") { + $user_id = "'".$_SESSION['user']['UserId']."'"; + } + + if ($status <> 1) { + //Update data + $fileplan_label = $_REQUEST['fileplan_label']; + $stmt = $db->query( + "UPDATE ".FILEPLAN_TABLE . " SET fileplan_label = ?" + . ", user_id = ?" + . ", entity_id = ?" + . ", is_serial_id = ?" + . " WHERE fileplan_id = ?", + array($fileplan_label,$user_id,$entity_id,$_REQUEST['is_serial'],$fileplan_id) + ); - //History - if ($_SESSION['history']['fileplanup']) { - //Add to history - $hist->add( - FILEPLAN_TABLE, $fileplan_id, "UP", 'fileplanup', - _FILEPLAN_UPDATED . ": ".$fileplan_label." (" . $fileplan_id . ")", - $_SESSION['config']['databasetype'], 'fileplan' - ); - } - - //Return javascript - $js .= "destroyModal('modal_fileplan');"; - if ($origin == "admin") { - //From admin - $js .= "loadList('" - .$_SESSION['config']['businessappurl'] - ."index.php?page=fileplan_admin&module=fileplan&display=true" - .$parameters."');"; - } elseif ($origin == "manage") { - //From manage - $js .= "window.top.location.href='" - .$_SESSION['config']['businessappurl'] - ."index.php?page=fileplan_managment&module=fileplan&reinit=true&load';"; - } - } - } else { - $error = functions::wash_html(_FILEPLAN_NAME.' '._IS_EMPTY.'!','NONE'); - $status = 1; - } - } else { - $error = functions::wash_html(_FILEPLAN_ID.' '._IS_EMPTY.'!','NONE'); + //History + if ($_SESSION['history']['fileplanup']) { + //Add to history + $hist->add( + FILEPLAN_TABLE, + $fileplan_id, + "UP", + 'fileplanup', + _FILEPLAN_UPDATED . ": ".$fileplan_label." (" . $fileplan_id . ")", + $_SESSION['config']['databasetype'], + 'fileplan' + ); + } + + //Return javascript + $js .= "destroyModal('modal_fileplan');"; + if ($origin == "admin") { + //From admin + $js .= "loadList('" + .$_SESSION['config']['businessappurl'] + ."index.php?page=fileplan_admin&module=fileplan&display=true" + .$parameters."');"; + } elseif ($origin == "manage") { + //From manage + $js .= "window.top.location.href='" + .$_SESSION['config']['businessappurl'] + ."index.php?page=fileplan_managment&module=fileplan&reinit=true&load';"; + } + } + } else { + $error = functions::wash_html(_FILEPLAN_NAME.' '._IS_EMPTY.'!', 'NONE'); + $status = 1; + } + } else { + $error = functions::wash_html(_FILEPLAN_ID.' '._IS_EMPTY.'!', 'NONE'); $status = 1; } - break; - case 'delFileplan': - if (isset($_REQUEST['fileplan_id']) && !empty($_REQUEST['fileplan_id'])) { - //Get fileplan ID - $fileplan_id = $_REQUEST['fileplan_id']; - // - $fileplan_array = $fileplan->getFileplan($fileplan_id, false); - - $content .= '<form name="formFileplan" id="formFileplan" ' - .'method="post" action="#" class="forms">'; - $content .= '<input type="hidden" name="fileplan_id" value="'.$fileplan_array['ID'].'" />'; - $content .= '<h2>'._DELETE_FILEPLAN.'</h2>'; + break; + case 'delFileplan': + if (isset($_REQUEST['fileplan_id']) && !empty($_REQUEST['fileplan_id'])) { + //Get fileplan ID + $fileplan_id = $_REQUEST['fileplan_id']; + // + $fileplan_array = $fileplan->getFileplan($fileplan_id, false); + + $content .= '<form name="formFileplan" id="formFileplan" ' + .'method="post" action="#" class="forms">'; + $content .= '<input type="hidden" name="fileplan_id" value="'.$fileplan_array['ID'].'" />'; + $content .= '<h2>'._DELETE_FILEPLAN.'</h2>'; $content .= _REMOVE_FILEPLAN_INFOS_1; $content .= '<br/>'; $content .= _REMOVE_FILEPLAN_INFOS_2; @@ -395,899 +348,940 @@ switch ($mode) { $content .= '<div style="height:225px; overflow-x:hidden; overflow-y:auto; border:1px solid #CCCCCC;">'; //Position tree array - $content .='<b>'.$fileplan_array['LABEL'].'</b><br/>';//Init with fileplan - //Get positions tree - $positions_array = $fileplan->getPositionsTree($fileplan_array['ID'], $positions_array); - for($i=0; $i < count($positions_array); $i++) { - //Is enable ? - if ($fileplan->isEnable($fileplan_array['ID'], $positions_array[$i]['ID'])) { - $content .='<b>'.$positions_array[$i]['LABEL'] - .'</b> <em>('.$positions_array[$i]['COUNT_DOCUMENT'] - .' '._DOC_IN_FILEPLAN.')</em><br/>'; - } - } + $content .='<b>'.functions::xssafe($fileplan_array['LABEL']).'</b><br/>';//Init with fileplan + //Get positions tree + $positions_array = $fileplan->getPositionsTree($fileplan_array['ID'], $positions_array); + for ($i=0; $i < count($positions_array); $i++) { + //Is enable ? + if ($fileplan->isEnable($fileplan_array['ID'], $positions_array[$i]['ID'])) { + $content .='<b>'.str_replace("---", " ", functions::xssafe(str_replace(" ", "---", $positions_array[$i]['LABEL']))) + .'</b> <em>('.$positions_array[$i]['COUNT_DOCUMENT'] + .' '._DOC_IN_FILEPLAN.')</em><br/>'; + } + } $content .= '</div>'; - //Buttons - // $content .='<hr />'; - $content .='<div align="center">'; - $content .=' <input type="button" name="valid" value=" '._DELETE - .' " id="valid" class="button" onclick="validFileplanForm(\'' - .$path_to_script.'&origin='.$origin.'&mode=deleteFileplan\', \'formFileplan\');" /> '; - $content .='<input type="button" name="cancel" id="cancel" class="button" value="' - ._CANCEL.'" onclick="destroyModal(\'modal_fileplan\');"/>'; - $content .='</div">'; - $content .= '</form>'; - } else { - $error = functions::wash_html(_FILEPLAN_ID.' '._IS_EMPTY.'!','NONE'); + //Buttons + // $content .='<hr />'; + $content .='<div align="center">'; + $content .=' <input type="button" name="valid" value=" '._DELETE + .' " id="valid" class="button" onclick="validFileplanForm(\'' + .$path_to_script.'&origin='.$origin.'&mode=deleteFileplan\', \'formFileplan\');" /> '; + $content .='<input type="button" name="cancel" id="cancel" class="button" value="' + ._CANCEL.'" onclick="destroyModal(\'modal_fileplan\');"/>'; + $content .='</div">'; + $content .= '</form>'; + } else { + $error = functions::wash_html(_FILEPLAN_ID.' '._IS_EMPTY.'!', 'NONE'); $status = 1; } - break; - case 'deleteFileplan': - if (isset($_REQUEST['fileplan_id']) && !empty($_REQUEST['fileplan_id'])) { - - $fileplan_id = $_REQUEST['fileplan_id']; - //Get fipeplan - $fileplan_array = $fileplan->getFileplan($fileplan_id, false); + break; + case 'deleteFileplan': + if (isset($_REQUEST['fileplan_id']) && !empty($_REQUEST['fileplan_id'])) { + $fileplan_id = $_REQUEST['fileplan_id']; + //Get fipeplan + $fileplan_array = $fileplan->getFileplan($fileplan_id, false); - //Check ID + //Check ID if (isset($fileplan_array['ID']) && $fileplan_id == $fileplan_array['ID']) { - //Delete linked documents + //Delete linked documents $stmt = $db->query( - "DELETE FROM " - . FILEPLAN_RES_POSITIONS_TABLE . " WHERE fileplan_id = ?" - ,array($fileplan_array['ID'])); + "DELETE FROM " + . FILEPLAN_RES_POSITIONS_TABLE . " WHERE fileplan_id = ?", + array($fileplan_array['ID']) + ); //Delete position $stmt = $db->query( - "DELETE FROM " - . FILEPLAN_POSITIONS_TABLE . " WHERE fileplan_id = ?" - ,array($fileplan_array['ID'])); - //Delete fileplan + "DELETE FROM " + . FILEPLAN_POSITIONS_TABLE . " WHERE fileplan_id = ?", + array($fileplan_array['ID']) + ); + //Delete fileplan $stmt = $db->query( - "DELETE FROM " - . FILEPLAN_TABLE . " WHERE fileplan_id = ?" - ,array($fileplan_array['ID'])); - - //History - if ($_SESSION['history']['fileplandel']) { - //Add to history - $hist->add( - FILEPLAN_TABLE, $fileplan_array['ID'], "DEL", 'fileplandel', _FILEPLAN_DELETED - . ': '.functions::wash_html($fileplan_array['LABEL']).' (' . $fileplan_array['ID'] . ')', - $_SESSION['config']['databasetype'], 'fileplan' - ); - } + "DELETE FROM " + . FILEPLAN_TABLE . " WHERE fileplan_id = ?", + array($fileplan_array['ID']) + ); + + //History + if ($_SESSION['history']['fileplandel']) { + //Add to history + $hist->add( + FILEPLAN_TABLE, + $fileplan_array['ID'], + "DEL", + 'fileplandel', + _FILEPLAN_DELETED + . ': '.functions::wash_html($fileplan_array['LABEL']).' (' . $fileplan_array['ID'] . ')', + $_SESSION['config']['databasetype'], + 'fileplan' + ); + } } else { - $error = functions::wash_html($fileplan_id.': '._FILEPLAN_NOT_EXISTS.'!','NONE'); + $error = functions::wash_html($fileplan_id.': '._FILEPLAN_NOT_EXISTS.'!', 'NONE'); $status = 1; } - //Return javascript - $js .= "destroyModal('modal_fileplan');"; - if ($origin == "admin") { - //From admin - $js .= "loadList('" - .$_SESSION['config']['businessappurl'] - ."index.php?page=fileplan_admin&module=fileplan&display=true" - .$parameters."');"; - } elseif ($origin == "manage") { - //From manage - $js .= "window.top.location.href='" - .$_SESSION['config']['businessappurl'] - ."index.php?page=fileplan&module=fileplan&reinit=true&load';"; - } - } else { - $error = functions::wash_html(_FILEPLAN_ID.' '._IS_EMPTY.'!','NONE'); + //Return javascript + $js .= "destroyModal('modal_fileplan');"; + if ($origin == "admin") { + //From admin + $js .= "loadList('" + .$_SESSION['config']['businessappurl'] + ."index.php?page=fileplan_admin&module=fileplan&display=true" + .$parameters."');"; + } elseif ($origin == "manage") { + //From manage + $js .= "window.top.location.href='" + .$_SESSION['config']['businessappurl'] + ."index.php?page=fileplan&module=fileplan&reinit=true&load';"; + } + } else { + $error = functions::wash_html(_FILEPLAN_ID.' '._IS_EMPTY.'!', 'NONE'); $status = 1; } - break; - case 'disFileplan': - if (isset($_REQUEST['fileplan_id']) && !empty($_REQUEST['fileplan_id'])) { - //Get fileplan ID - $fileplan_id = $_REQUEST['fileplan_id']; - - //Get fipeplan - $fileplan_array = $fileplan->getFileplan($fileplan_id, false); + break; + case 'disFileplan': + if (isset($_REQUEST['fileplan_id']) && !empty($_REQUEST['fileplan_id'])) { + //Get fileplan ID + $fileplan_id = $_REQUEST['fileplan_id']; + + //Get fipeplan + $fileplan_array = $fileplan->getFileplan($fileplan_id, false); - //Check ID + //Check ID if (isset($fileplan_array['ID']) && $fileplan_id == $fileplan_array['ID']) { - //Disable fileplan positions - $stmt = $db->query( - "UPDATE ".FILEPLAN_POSITIONS_TABLE - . " SET enabled = ? WHERE fileplan_id = ?" - . " AND enabled = ?" - ,array('N',$fileplan_id,'Y')); - - //Disable fileplan + //Disable fileplan positions + $stmt = $db->query( + "UPDATE ".FILEPLAN_POSITIONS_TABLE + . " SET enabled = ? WHERE fileplan_id = ?" + . " AND enabled = ?", + array('N',$fileplan_id,'Y') + ); + + //Disable fileplan $stmt = $db->query( - "UPDATE " . FILEPLAN_TABLE - . " SET enabled = ? WHERE fileplan_id = ?" - . " AND enabled = ?" - ,array('N',$fileplan_array['ID'],'Y')); - - //History - if ($_SESSION['history']['fileplandis']) { - //Add to history - $hist->add( - FILEPLAN_TABLE, $fileplan_array['ID'], "UP", 'fileplandis', - _FILEPLAN_DISABLED .': '.$fileplan_array['LABEL'] - .' (' . $fileplan_array['ID'] . ')', - $_SESSION['config']['databasetype'], 'fileplan' - ); - } + "UPDATE " . FILEPLAN_TABLE + . " SET enabled = ? WHERE fileplan_id = ?" + . " AND enabled = ?", + array('N',$fileplan_array['ID'],'Y') + ); + + //History + if ($_SESSION['history']['fileplandis']) { + //Add to history + $hist->add( + FILEPLAN_TABLE, + $fileplan_array['ID'], + "UP", + 'fileplandis', + _FILEPLAN_DISABLED .': '.$fileplan_array['LABEL'] + .' (' . $fileplan_array['ID'] . ')', + $_SESSION['config']['databasetype'], + 'fileplan' + ); + } - //Reload list - if ($origin == "admin") { - //From admin - $js .= "loadList('" - .$_SESSION['config']['businessappurl'] - ."index.php?page=fileplan_admin&module=fileplan&display=true" - .$parameters."');"; - } elseif ($origin == "manage") { - //From manage - $js .= "window.top.location.href='" - .$_SESSION['config']['businessappurl'] - ."index.php?page=fileplan_managment&module=fileplan&reinit=true&load';"; - } - } else { - $error = functions::wash_html($fileplan_id.': '._FILEPLAN_NOT_EXISTS.'!','NONE'); + //Reload list + if ($origin == "admin") { + //From admin + $js .= "loadList('" + .$_SESSION['config']['businessappurl'] + ."index.php?page=fileplan_admin&module=fileplan&display=true" + .$parameters."');"; + } elseif ($origin == "manage") { + //From manage + $js .= "window.top.location.href='" + .$_SESSION['config']['businessappurl'] + ."index.php?page=fileplan_managment&module=fileplan&reinit=true&load';"; + } + } else { + $error = functions::wash_html($fileplan_id.': '._FILEPLAN_NOT_EXISTS.'!', 'NONE'); $status = 1; } - } else { - $error = functions::wash_html(_FILEPLAN_ID.' '._IS_EMPTY.'!','NONE'); + } else { + $error = functions::wash_html(_FILEPLAN_ID.' '._IS_EMPTY.'!', 'NONE'); $status = 1; } - + break; case 'enaFileplan': - if (isset($_REQUEST['fileplan_id']) && !empty($_REQUEST['fileplan_id'])) { - //Get fileplan ID - $fileplan_id = $_REQUEST['fileplan_id']; - - //Get fipeplan - $fileplan_array = $fileplan->getFileplan($fileplan_id, false); + if (isset($_REQUEST['fileplan_id']) && !empty($_REQUEST['fileplan_id'])) { + //Get fileplan ID + $fileplan_id = $_REQUEST['fileplan_id']; + + //Get fipeplan + $fileplan_array = $fileplan->getFileplan($fileplan_id, false); - //Check ID + //Check ID if (isset($fileplan_array['ID']) && $fileplan_id == $fileplan_array['ID']) { - //Disable fileplan positions - $stmt = $db->query( - "UPDATE ".FILEPLAN_POSITIONS_TABLE - . " SET enabled = ? WHERE fileplan_id = ?" - . " AND enabled = ?" - ,array('N',$fileplan_id,'Y')); - - //Disable fileplan + //Disable fileplan positions $stmt = $db->query( - "UPDATE " . FILEPLAN_TABLE - . " SET enabled = ? WHERE fileplan_id = ?" - . " AND enabled = ?" - ,array('Y',$fileplan_array['ID'],'N')); - - //History - if ($_SESSION['history']['fileplanena']) { - //Add to history - $hist->add( - FILEPLAN_TABLE, $fileplan_array['ID'], "UP", 'fileplanena', - _FILEPLAN_ENABLED .': '.$fileplan_array['LABEL'] - .' (' . $fileplan_array['ID'] . ')', - $_SESSION['config']['databasetype'], 'fileplan' - ); - } + "UPDATE ".FILEPLAN_POSITIONS_TABLE + . " SET enabled = ? WHERE fileplan_id = ?" + . " AND enabled = ?", + array('N',$fileplan_id,'Y') + ); + + //Disable fileplan + $stmt = $db->query( + "UPDATE " . FILEPLAN_TABLE + . " SET enabled = ? WHERE fileplan_id = ?" + . " AND enabled = ?", + array('Y',$fileplan_array['ID'],'N') + ); + + //History + if ($_SESSION['history']['fileplanena']) { + //Add to history + $hist->add( + FILEPLAN_TABLE, + $fileplan_array['ID'], + "UP", + 'fileplanena', + _FILEPLAN_ENABLED .': '.$fileplan_array['LABEL'] + .' (' . $fileplan_array['ID'] . ')', + $_SESSION['config']['databasetype'], + 'fileplan' + ); + } - //Reload list - if ($origin == "admin") { - //From admin - $js .= "loadList('" - .$_SESSION['config']['businessappurl'] - ."index.php?page=fileplan_admin&module=fileplan&display=true" - .$parameters."');"; - } elseif ($origin == "manage") { - //From manage - $js .= "window.top.location.href='" - .$_SESSION['config']['businessappurl'] - ."index.php?page=fileplan_managment&module=fileplan&reinit=true&load';"; - } - } else { - $error = functions::wash_html($fileplan_id.': '._FILEPLAN_NOT_EXISTS.'!','NONE'); + //Reload list + if ($origin == "admin") { + //From admin + $js .= "loadList('" + .$_SESSION['config']['businessappurl'] + ."index.php?page=fileplan_admin&module=fileplan&display=true" + .$parameters."');"; + } elseif ($origin == "manage") { + //From manage + $js .= "window.top.location.href='" + .$_SESSION['config']['businessappurl'] + ."index.php?page=fileplan_managment&module=fileplan&reinit=true&load';"; + } + } else { + $error = functions::wash_html($fileplan_id.': '._FILEPLAN_NOT_EXISTS.'!', 'NONE'); $status = 1; } - } else { - $error = functions::wash_html(_FILEPLAN_ID.' '._IS_EMPTY.'!','NONE'); + } else { + $error = functions::wash_html(_FILEPLAN_ID.' '._IS_EMPTY.'!', 'NONE'); $status = 1; } break; case 'addPosition': - if (isset($_REQUEST['fileplan_id']) && !empty($_REQUEST['fileplan_id'])) { - //Get fileplan ID - $fileplan_id = $_REQUEST['fileplan_id']; - - //Build form position - $content .= '<form name="formPosition" id="formPosition" method="post" action="#" class="forms">'; - $content .= '<input type="hidden" name="fileplan_id" value="'.$fileplan_id.'" />'; - $content .= '<h2>'._NEW_POSITION.'</h2>'; - //If fileplan is not serial, show position ID field - if ($fileplan->isSerialFileplan($fileplan_id) === false){ - $content .= '<label>'._POSITION_ID.' : </label><br/>'; - $content .= '<input type="text" name="position_id" id="position_id" ' - .'value="" class="medium" /><br/><br/>'; - } - //Position label - $content .= '<label>'._POSITION_NAME.': </label><br/>'; - $content .= '<input type="text" name="position_label" id="position_label" ' - .'value="" class="fileplan_position" /><br/><br/>'; - //Nest position under parent - $content .= _NEST_POSITION_UNDER.' : <br/>'; - $content .='<select name="parent_id" id="parent_id" class="fileplan_position">'; - $content .='<option value="">'._CHOOSE_PARENT_POSITION.'</option>'; - //Get positions tree - $positions_array = $fileplan->getPositionsTree($fileplan_id, $positions_array); - //Init with fileplan - (count($positions_array) == 0)? $rootSelected = ' selected="selected"' : $rootSelected = ''; - $fileplan_array = $fileplan->getFileplan($fileplan_id); - $content .='<option value="'.$fileplan_array['ID'].'"'.$rootSelected.'>' - . functions::xssafe($fileplan_array['LABEL']).'</option>'; - //Show positions - for($i=0; $i < count($positions_array); $i++) { - //Is enable ? - if ($fileplan->isEnable($fileplan_id, $positions_array[$i]['ID'])) { - $content .='<option value="'.$positions_array[$i]['ID'].'" >' - . str_replace("---", " ", functions::xssafe(str_replace(" ", "---", $positions_array[$i]['LABEL']))).'</option>'; - } - } - $content .='</select>'; - //Buttons - $content .='<hr />'; - $content .='<div align="center">'; - $content .=' <input type="button" name="valid" value=" '._ADD_POSITION - .' " id="valid" class="button" onclick="validFileplanForm(\'' - .$path_to_script.'&origin='.$origin.'&mode=addedPosition\', \'formPosition\');" /> '; - $content .='<input type="button" name="cancel" id="cancel" class="button" value="' - ._CANCEL.'" onclick="destroyModal(\'modal_fileplan\');"/>'; - $content .='</div">'; - $content .= '</form>'; + if (isset($_REQUEST['fileplan_id']) && !empty($_REQUEST['fileplan_id'])) { + //Get fileplan ID + $fileplan_id = $_REQUEST['fileplan_id']; + + //Build form position + $content .= '<form name="formPosition" id="formPosition" method="post" action="#" class="forms">'; + $content .= '<input type="hidden" name="fileplan_id" value="'.$fileplan_id.'" />'; + $content .= '<h2>'._NEW_POSITION.'</h2>'; + //If fileplan is not serial, show position ID field + if ($fileplan->isSerialFileplan($fileplan_id) === false) { + $content .= '<label>'._POSITION_ID.' : </label><br/>'; + $content .= '<input type="text" name="position_id" id="position_id" ' + .'value="" class="medium" /><br/><br/>'; + } + //Position label + $content .= '<label>'._POSITION_NAME.': </label><br/>'; + $content .= '<input type="text" name="position_label" id="position_label" ' + .'value="" class="fileplan_position" /><br/><br/>'; + //Nest position under parent + $content .= _NEST_POSITION_UNDER.' : <br/>'; + $content .='<select name="parent_id" id="parent_id" class="fileplan_position">'; + $content .='<option value="">'._CHOOSE_PARENT_POSITION.'</option>'; + //Get positions tree + $positions_array = $fileplan->getPositionsTree($fileplan_id, $positions_array); + //Init with fileplan + (count($positions_array) == 0)? $rootSelected = ' selected="selected"' : $rootSelected = ''; + $fileplan_array = $fileplan->getFileplan($fileplan_id); + $content .='<option value="'.$fileplan_array['ID'].'"'.$rootSelected.'>' + . functions::xssafe($fileplan_array['LABEL']).'</option>'; + //Show positions + for ($i=0; $i < count($positions_array); $i++) { + //Is enable ? + if ($fileplan->isEnable($fileplan_id, $positions_array[$i]['ID'])) { + $content .='<option value="'.$positions_array[$i]['ID'].'" >' + . str_replace("---", " ", functions::xssafe(str_replace(" ", "---", $positions_array[$i]['LABEL']))).'</option>'; + } + } + $content .='</select>'; + //Buttons + $content .='<hr />'; + $content .='<div align="center">'; + $content .=' <input type="button" name="valid" value=" '._ADD_POSITION + .' " id="valid" class="button" onclick="validFileplanForm(\'' + .$path_to_script.'&origin='.$origin.'&mode=addedPosition\', \'formPosition\');" /> '; + $content .='<input type="button" name="cancel" id="cancel" class="button" value="' + ._CANCEL.'" onclick="destroyModal(\'modal_fileplan\');"/>'; + $content .='</div">'; + $content .= '</form>'; } else { - $error = functions::wash_html(_FILEPLAN_ID.' '._IS_EMPTY.'!','NONE'); + $error = functions::wash_html(_FILEPLAN_ID.' '._IS_EMPTY.'!', 'NONE'); $status = 1; } break; case 'addedPosition': - if (isset($_REQUEST['fileplan_id']) && !empty($_REQUEST['fileplan_id'])) { - //Get fileplan ID - $fileplan_id = $_REQUEST['fileplan_id']; - //Get position label - if (strlen(trim($_REQUEST['position_label'])) > 0) { - //If is not serial fileplan - if ($fileplan->isSerialFileplan($fileplan_id) === false){ - if (empty($_REQUEST['position_id'])) { - $error = functions::wash_html(_POSITION_ID.' '._IS_EMPTY.'!','NONE'); - $status = 1; - } else { - $position_id = $_REQUEST['position_id']; - } - } else { - - $position_id = $db->lastInsertId('fp_fileplan_positions_position_id_seq'); - $position_id = $position_id +1; + if (isset($_REQUEST['fileplan_id']) && !empty($_REQUEST['fileplan_id'])) { + //Get fileplan ID + $fileplan_id = $_REQUEST['fileplan_id']; + //Get position label + if (strlen(trim($_REQUEST['position_label'])) > 0) { + //If is not serial fileplan + if ($fileplan->isSerialFileplan($fileplan_id) === false) { + if (empty($_REQUEST['position_id'])) { + $error = functions::wash_html(_POSITION_ID.' '._IS_EMPTY.'!', 'NONE'); + $status = 1; + } else { + $position_id = $_REQUEST['position_id']; + } + } else { + $position_id = $db->lastInsertId('fp_fileplan_positions_position_id_seq'); + $position_id = $position_id +1; - if (empty($position_id)) { - $error = functions::wash_html(_ERROR_DURING_POSITION_ID_GENERATION.'!','NONE'); - $status = 1; - } - } - //Nested? - if (empty($_REQUEST['parent_id'])) { - $error .= functions::wash_html(_CHOOSE_PARENT_POSITION.'!','NONE'); - $status = 1; - } else { - ($_REQUEST['parent_id'] == '##ROOT##')? - $parent_id = NULL : $parent_id = $_REQUEST['parent_id']; - } + if (empty($position_id)) { + $error = functions::wash_html(_ERROR_DURING_POSITION_ID_GENERATION.'!', 'NONE'); + $status = 1; + } + } + //Nested? + if (empty($_REQUEST['parent_id'])) { + $error .= functions::wash_html(_CHOOSE_PARENT_POSITION.'!', 'NONE'); + $status = 1; + } else { + ($_REQUEST['parent_id'] == '##ROOT##')? + $parent_id = null : $parent_id = $_REQUEST['parent_id']; + } - //Add position - if ( $status <> 1) { - //If position id already exists - if($fileplan->positionAlreadyExists($fileplan_id, $position_id) === true) { - $error = functions::wash_html(_POSITION_ALREADY_EXISTS.': '.$position_id.'!','NONE'); - $status = 1; - } else { - $position_label = $_REQUEST['position_label']; - $stmt = $db->query( - "INSERT INTO ".FILEPLAN_POSITIONS_TABLE - . " (position_label, parent_id, fileplan_id, enabled) VALUES (?,?,?,?)" - ,array($position_label,$parent_id,$fileplan_id,'Y')); - - //History - if ($_SESSION['history']['fileplanadd']) { - //Add to history - $hist->add( - FILEPLAN_POSITIONS_TABLE, $position_id, "ADD", 'fileplanadd', - _POSITION_ADDED . ': '.$position_label.' (' . $position_id . ')', - $_SESSION['config']['databasetype'], 'fileplan' - ); - } - //Reload and show message - $js .= "destroyModal('modal_fileplan');"; - if ($origin == "admin") { - //From admin - $js .= "loadList('" - .$_SESSION['config']['businessappurl'] - ."index.php?page=fileplan_admin_managment&module=fileplan&" - ."fileplan_id=".$fileplan_id."&display=true".$parameters."');"; - } elseif ($origin == "manage") { - //From manage - $js .= "loadList('".$_SESSION['config']['businessappurl'] - ."index.php?display=true&page=fileplan_managment" - ."&module=fileplan".$parameters."');"; - } - $js .= "window.top.$('main_info').innerHTML = '"._POSITION_ADDED.': ' - .addslashes($_REQUEST['position_label'])."';"; - } - } - } else { - $error = functions::wash_html(_POSITION_NAME.' '._IS_EMPTY.'!','NONE'); - $status = 1; - } - } else { - $error = functions::wash_html(_FILEPLAN_ID.' '._IS_EMPTY.'!','NONE'); + //Add position + if ($status <> 1) { + //If position id already exists + if ($fileplan->positionAlreadyExists($fileplan_id, $position_id) === true) { + $error = functions::wash_html(_POSITION_ALREADY_EXISTS.': '.$position_id.'!', 'NONE'); + $status = 1; + } else { + $position_label = $_REQUEST['position_label']; + $stmt = $db->query( + "INSERT INTO ".FILEPLAN_POSITIONS_TABLE + . " (position_label, parent_id, fileplan_id, enabled) VALUES (?,?,?,?)", + array($position_label,$parent_id,$fileplan_id,'Y') + ); + + //History + if ($_SESSION['history']['fileplanadd']) { + //Add to history + $hist->add( + FILEPLAN_POSITIONS_TABLE, + $position_id, + "ADD", + 'fileplanadd', + _POSITION_ADDED . ': '.$position_label.' (' . $position_id . ')', + $_SESSION['config']['databasetype'], + 'fileplan' + ); + } + //Reload and show message + $js .= "destroyModal('modal_fileplan');"; + if ($origin == "admin") { + //From admin + $js .= "loadList('" + .$_SESSION['config']['businessappurl'] + ."index.php?page=fileplan_admin_managment&module=fileplan&" + ."fileplan_id=".$fileplan_id."&display=true".$parameters."');"; + } elseif ($origin == "manage") { + //From manage + $js .= "loadList('".$_SESSION['config']['businessappurl'] + ."index.php?display=true&page=fileplan_managment" + ."&module=fileplan".$parameters."');"; + } + $js .= "window.top.$('main_info').innerHTML = '"._POSITION_ADDED.': ' + .addslashes($_REQUEST['position_label'])."';"; + } + } + } else { + $error = functions::wash_html(_POSITION_NAME.' '._IS_EMPTY.'!', 'NONE'); + $status = 1; + } + } else { + $error = functions::wash_html(_FILEPLAN_ID.' '._IS_EMPTY.'!', 'NONE'); $status = 1; } break; case 'upPosition': - if (isset($_REQUEST['fileplan_id']) && !empty($_REQUEST['fileplan_id'])) { - //Get fileplan ID - $fileplan_id = $_REQUEST['fileplan_id']; - - //Get position ID - if (isset($_REQUEST['id']) && !empty($_REQUEST['id'])) { - $position_id = $_REQUEST['id']; - - //Check if position ID exists - if($fileplan->positionAlreadyExists($fileplan_id, $position_id)) { - - //Get array of actual position - $positionArray = $fileplan->getPosition($fileplan_id, $position_id); - - //Form position - $content .= '<form name="formPosition" id="formPosition" method="post" action="#" class="forms">'; - $content .= '<input type="hidden" name="fileplan_id" value="'.$fileplan_id.'" />'; - $content .= '<input type="hidden" name="id" value="'.$position_id.'" />'; - $content .= '<h2>'._EDIT_POSITION.'</h2>'; - //If fileplan is not serial, show position ID field - if ($fileplan->isSerialFileplan($fileplan_id) === false){ - $content .= '<label>'._POSITION_ID.' : </label><br/>'; - $content .= '<input type="text" name="position_id" id="position_id" ' - .'value="'.$positionArray[0]['ID'].'" class="medium" /><br/><br/>'; - } - //Position label - $content .= '<label>'._POSITION_NAME.': </label><br/>'; - $content .= '<input type="text" name="position_label" id="position_label" ' - .'value="'.functions::xssafe($positionArray[0]['LABEL']).'" class="fileplan_position" /><br/><br/>'; - //Nest position under parent - $content .= _NEST_POSITION_UNDER.' : <br/>'; - $content .='<select name="parent_id" id="parent_id" class="fileplan_position">'; - $content .='<option value="">'._CHOOSE_PARENT_POSITION.'</option>'; - //Init with fileplan - $fileplan_array = $fileplan->getFileplan($fileplan_id); - //Selected? - (empty($positionArray[0]['PARENT_ID']))? $rootSelected = ' selected="selected"' : $rootSelected = ''; - $content .='<option value="'.$fileplan_array['ID'].'" '.$rootSelected.'>' - .functions::xssafe($fileplan_array['LABEL']).'</option>'; - //Get positions tree - $positions_array = $fileplan->getPositionsTree($fileplan_id, $positions_array); - for($i=0; $i < count($positions_array); $i++) { - //Is enable ? - if ($fileplan->isEnable($fileplan_id, $positions_array[$i]['ID'])) { - //Is Selected? - ($positionArray[0]['PARENT_ID'] == $positions_array[$i]['ID'])? - $selected = ' selected="selected"' : $selected = ''; - $content .='<option value="'.$positions_array[$i]['ID'].'" '.$selected.'>' - .str_replace("---", " ", functions::xssafe(str_replace(" ", "---", $positions_array[$i]['LABEL']))).'</option>'; - } - } - $content .='</select>'; - //Buttons - $content .='<hr />'; - $content .='<div align="center">'; - $content .=' <input type="button" name="valid" value=" '._EDIT_POSITION_SHORT - .' " id="valid" class="button" onclick="validFileplanForm(\'' - .$path_to_script.'&origin='.$origin.'&mode=updatePosition\', \'formPosition\');" /> '; - $content .='<input type="button" name="cancel" id="cancel" class="button" value="' - ._CANCEL.'" onclick="destroyModal(\'modal_fileplan\');"/>'; - $content .='</div">'; - $content .= '</form>'; - - } else { - $error = functions::wash_html($position_id.': '._POSITION_NOT_EXISTS.'!','NONE'); - $status = 1; - } - } else { - $error = functions::wash_html(_POSITION_ID.' '._IS_EMPTY.'!','NONE'); - $status = 1; - } - } else { - $error = functions::wash_html(_FILEPLAN_ID.' '._IS_EMPTY.'!','NONE'); + if (isset($_REQUEST['fileplan_id']) && !empty($_REQUEST['fileplan_id'])) { + //Get fileplan ID + $fileplan_id = $_REQUEST['fileplan_id']; + + //Get position ID + if (isset($_REQUEST['id']) && !empty($_REQUEST['id'])) { + $position_id = $_REQUEST['id']; + + //Check if position ID exists + if ($fileplan->positionAlreadyExists($fileplan_id, $position_id)) { + + //Get array of actual position + $positionArray = $fileplan->getPosition($fileplan_id, $position_id); + + //Form position + $content .= '<form name="formPosition" id="formPosition" method="post" action="#" class="forms">'; + $content .= '<input type="hidden" name="fileplan_id" value="'.$fileplan_id.'" />'; + $content .= '<input type="hidden" name="id" value="'.$position_id.'" />'; + $content .= '<h2>'._EDIT_POSITION.'</h2>'; + //If fileplan is not serial, show position ID field + if ($fileplan->isSerialFileplan($fileplan_id) === false) { + $content .= '<label>'._POSITION_ID.' : </label><br/>'; + $content .= '<input type="text" name="position_id" id="position_id" ' + .'value="'.$positionArray[0]['ID'].'" class="medium" /><br/><br/>'; + } + //Position label + $content .= '<label>'._POSITION_NAME.': </label><br/>'; + $content .= '<input type="text" name="position_label" id="position_label" ' + .'value="'.functions::xssafe($positionArray[0]['LABEL']).'" class="fileplan_position" /><br/><br/>'; + //Nest position under parent + $content .= _NEST_POSITION_UNDER.' : <br/>'; + $content .='<select name="parent_id" id="parent_id" class="fileplan_position">'; + $content .='<option value="">'._CHOOSE_PARENT_POSITION.'</option>'; + //Init with fileplan + $fileplan_array = $fileplan->getFileplan($fileplan_id); + //Selected? + (empty($positionArray[0]['PARENT_ID']))? $rootSelected = ' selected="selected"' : $rootSelected = ''; + $content .='<option value="'.$fileplan_array['ID'].'" '.$rootSelected.'>' + .functions::xssafe($fileplan_array['LABEL']).'</option>'; + //Get positions tree + $positions_array = $fileplan->getPositionsTree($fileplan_id, $positions_array); + for ($i=0; $i < count($positions_array); $i++) { + //Is enable ? + if ($fileplan->isEnable($fileplan_id, $positions_array[$i]['ID'])) { + //Is Selected? + ($positionArray[0]['PARENT_ID'] == $positions_array[$i]['ID'])? + $selected = ' selected="selected"' : $selected = ''; + $content .='<option value="'.$positions_array[$i]['ID'].'" '.$selected.'>' + .str_replace("---", " ", functions::xssafe(str_replace(" ", "---", $positions_array[$i]['LABEL']))).'</option>'; + } + } + $content .='</select>'; + //Buttons + $content .='<hr />'; + $content .='<div align="center">'; + $content .=' <input type="button" name="valid" value=" '._EDIT_POSITION_SHORT + .' " id="valid" class="button" onclick="validFileplanForm(\'' + .$path_to_script.'&origin='.$origin.'&mode=updatePosition\', \'formPosition\');" /> '; + $content .='<input type="button" name="cancel" id="cancel" class="button" value="' + ._CANCEL.'" onclick="destroyModal(\'modal_fileplan\');"/>'; + $content .='</div">'; + $content .= '</form>'; + } else { + $error = functions::wash_html($position_id.': '._POSITION_NOT_EXISTS.'!', 'NONE'); + $status = 1; + } + } else { + $error = functions::wash_html(_POSITION_ID.' '._IS_EMPTY.'!', 'NONE'); + $status = 1; + } + } else { + $error = functions::wash_html(_FILEPLAN_ID.' '._IS_EMPTY.'!', 'NONE'); $status = 1; } break; case 'updatePosition': - if (isset($_REQUEST['fileplan_id']) && !empty($_REQUEST['fileplan_id'])) { - //Get fileplan ID - $fileplan_id = $_REQUEST['fileplan_id']; - - //Get position ID - if (isset($_REQUEST['id']) && !empty($_REQUEST['id'])) { - $old_position_id = $_REQUEST['id']; - - //Get position label - if (strlen(trim($_REQUEST['position_label'])) > 0) { - - //If is not serial fileplan - if ($fileplan->isSerialFileplan($fileplan_id) === false){ - if (empty($_REQUEST['position_id'])) { - $error = functions::wash_html(_POSITION_ID.' '._IS_EMPTY.'!','NONE'); - $status = 1; - } else { - $position_id = $_REQUEST['position_id']; - } - } else { - $position_id = $old_position_id; - } - - //Nested? - if (empty($_REQUEST['parent_id'])) { - $error .= functions::wash_html(_CHOOSE_PARENT_POSITION.'!','NONE'); - $status = 1; - } else { - ($_REQUEST['parent_id'] == '##ROOT##')? - $parent_id = NULL : $parent_id = $_REQUEST['parent_id']; - } - - //Update position - if ( $status != 1) { - - //Check if old position ID exists - if($fileplan->positionAlreadyExists($fileplan_id, $old_position_id)) { + if (isset($_REQUEST['fileplan_id']) && !empty($_REQUEST['fileplan_id'])) { + //Get fileplan ID + $fileplan_id = $_REQUEST['fileplan_id']; + + //Get position ID + if (isset($_REQUEST['id']) && !empty($_REQUEST['id'])) { + $old_position_id = $_REQUEST['id']; + + //Get position label + if (strlen(trim($_REQUEST['position_label'])) > 0) { + + //If is not serial fileplan + if ($fileplan->isSerialFileplan($fileplan_id) === false) { + if (empty($_REQUEST['position_id'])) { + $error = functions::wash_html(_POSITION_ID.' '._IS_EMPTY.'!', 'NONE'); + $status = 1; + } else { + $position_id = $_REQUEST['position_id']; + } + } else { + $position_id = $old_position_id; + } + + //Nested? + if (empty($_REQUEST['parent_id'])) { + $error .= functions::wash_html(_CHOOSE_PARENT_POSITION.'!', 'NONE'); + $status = 1; + } else { + ($_REQUEST['parent_id'] == '##ROOT##')? + $parent_id = null : $parent_id = $_REQUEST['parent_id']; + } + + //Update position + if ($status != 1) { + + //Check if old position ID exists + if ($fileplan->positionAlreadyExists($fileplan_id, $old_position_id)) { - //If new position id already exists - if($fileplan->positionAlreadyExists($fileplan_id, $position_id) && ($old_position_id <> $position_id)) { - $error = functions::wash_html(_POSITION_ALREADY_EXISTS.': '.$position_id.'!','NONE'); - $status = 1; - } else { - $position_label = $_REQUEST['position_label']; - $stmt = $db->query( - "UPDATE ".FILEPLAN_POSITIONS_TABLE - . " SET position_id = ?" - . ", position_label = ?" - . ", parent_id = ?" - . " WHERE fileplan_id = ?" - . " AND position_id = ?" - ,array($position_id,$position_label,$parent_id,$fileplan_id,$old_position_id)); - - //History - if ($_SESSION['history']['fileplanup']) { - //Add to history - ($position_id <> $old_position_id)? $info_hist = $position_label.' (' . _POSITION_ID . ': ' - . $old_position_id . ' '._TO.': '.$position_id - . ')' : $info_hist = $position_label.' (' . $position_id . ')'; - $hist->add( - FILEPLAN_POSITIONS_TABLE, $position_id, "UP", 'fileplanup', - _POSITION_UPDATED . ': '.$info_hist, - $_SESSION['config']['databasetype'], 'fileplan' - ); - } - //Reload and show message - $js .= "destroyModal('modal_fileplan');"; - if ($origin == "admin") { - //From admin - $js .= "loadList('" - .$_SESSION['config']['businessappurl'] - ."index.php?page=fileplan_admin_managment&module=fileplan&" - ."fileplan_id=".$fileplan_id."&display=true".$parameters."');"; - } elseif ($origin == "manage") { - //From manage - $js .= "loadList('".$_SESSION['config']['businessappurl'] - ."index.php?display=true&page=fileplan_managment" - ."&module=fileplan".$parameters."');"; - } - $js .= "window.top.$('main_info').innerHTML = '"._POSITION_UPDATED.': ' - .addslashes($_REQUEST['position_label'])."';"; - } - } else { - $error = functions::wash_html($old_position_id.': '._POSITION_NOT_EXISTS.'!','NONE'); - $status = 1; - } - } - } else { - $error = functions::wash_html(_POSITION_NAME.' '._IS_EMPTY.'!','NONE'); - $status = 1; - } - } else { - $error = functions::wash_html(_POSITION_ID.' '._IS_EMPTY.'!','NONE'); - $status = 1; - } - } else { - $error = functions::wash_html(_FILEPLAN_ID.' '._IS_EMPTY.'!','NONE'); + //If new position id already exists + if ($fileplan->positionAlreadyExists($fileplan_id, $position_id) && ($old_position_id <> $position_id)) { + $error = functions::wash_html(_POSITION_ALREADY_EXISTS.': '.$position_id.'!', 'NONE'); + $status = 1; + } else { + $position_label = $_REQUEST['position_label']; + $stmt = $db->query( + "UPDATE ".FILEPLAN_POSITIONS_TABLE + . " SET position_id = ?" + . ", position_label = ?" + . ", parent_id = ?" + . " WHERE fileplan_id = ?" + . " AND position_id = ?", + array($position_id,$position_label,$parent_id,$fileplan_id,$old_position_id) + ); + + //History + if ($_SESSION['history']['fileplanup']) { + //Add to history + ($position_id <> $old_position_id)? $info_hist = $position_label.' (' . _POSITION_ID . ': ' + . $old_position_id . ' '._TO.': '.$position_id + . ')' : $info_hist = $position_label.' (' . $position_id . ')'; + $hist->add( + FILEPLAN_POSITIONS_TABLE, + $position_id, + "UP", + 'fileplanup', + _POSITION_UPDATED . ': '.$info_hist, + $_SESSION['config']['databasetype'], + 'fileplan' + ); + } + //Reload and show message + $js .= "destroyModal('modal_fileplan');"; + if ($origin == "admin") { + //From admin + $js .= "loadList('" + .$_SESSION['config']['businessappurl'] + ."index.php?page=fileplan_admin_managment&module=fileplan&" + ."fileplan_id=".$fileplan_id."&display=true".$parameters."');"; + } elseif ($origin == "manage") { + //From manage + $js .= "loadList('".$_SESSION['config']['businessappurl'] + ."index.php?display=true&page=fileplan_managment" + ."&module=fileplan".$parameters."');"; + } + $js .= "window.top.$('main_info').innerHTML = '"._POSITION_UPDATED.': ' + .addslashes($_REQUEST['position_label'])."';"; + } + } else { + $error = functions::wash_html($old_position_id.': '._POSITION_NOT_EXISTS.'!', 'NONE'); + $status = 1; + } + } + } else { + $error = functions::wash_html(_POSITION_NAME.' '._IS_EMPTY.'!', 'NONE'); + $status = 1; + } + } else { + $error = functions::wash_html(_POSITION_ID.' '._IS_EMPTY.'!', 'NONE'); + $status = 1; + } + } else { + $error = functions::wash_html(_FILEPLAN_ID.' '._IS_EMPTY.'!', 'NONE'); $status = 1; } break; case 'delPosition': - if (isset($_REQUEST['fileplan_id']) && !empty($_REQUEST['fileplan_id'])) { - //Get fileplan ID - $fileplan_id = $_REQUEST['fileplan_id']; - - //Get position ID - if (isset($_REQUEST['id']) && !empty($_REQUEST['id'])) { - $position_id = $_REQUEST['id']; - - //Check if position ID exists - if($fileplan->positionAlreadyExists($fileplan_id, $position_id)) { - - //Delete window - $content .= '<form name="formPosition" id="formPosition" method="post" action="#" class="forms">'; - $content .= '<input type="hidden" name="fileplan_id" value="'.$fileplan_id.'" />'; - $content .= '<input type="hidden" name="id" value="'.$position_id.'" />'; - $content .= '<h2>'._REMOVE_POSITION.'</h2>'; - $content .= _REMOVE_POSITIONS_INFOS_1; - $content .= '<br/>'; - $content .= _REMOVE_POSITIONS_INFOS_2; - $content .= '<br/><br/>'; - $content .= '<div style="height:290px; overflow-x:hidden; overflow-y:auto; border:1px solid #CCCCCC;">'; - - //Get array position - $this_position_array = $fileplan->getPosition($fileplan_id, $position_id); - //Get position tree - $positions_array = $fileplan->getPositionsTree($fileplan_id, $positions_array, $this_position_array); - for($i=0; $i < count($positions_array); $i++) { - //Is enable ? - if ($fileplan->isEnable($fileplan_id, $positions_array[$i]['ID'])) { - $content .='<b>'.$positions_array[$i]['LABEL'] - .'</b> <em>('.$positions_array[$i]['COUNT_DOCUMENT'] - .' '._DOC_IN_FILEPLAN.')</em><br/>'; - } - } - $content .= '</div>'; - - //Buttons - // $content .='<hr />'; - $content .='<div align="center">'; - $content .=' <input type="button" name="valid" value=" '._DELETE_POSITION - .' " id="valid" class="button" onclick="validFileplanForm(\'' - .$path_to_script.'&origin='.$origin.'&mode=deletePosition\', \'formPosition\');" /> '; - $content .='<input type="button" name="cancel" id="cancel" class="button" value="' - ._CANCEL.'" onclick="destroyModal(\'modal_fileplan\');"/>'; - $content .='</div">'; - $content .= '</form>'; - - } else { - $error = functions::wash_html($position_id.': '._POSITION_NOT_EXISTS.'!','NONE'); - $status = 1; - } - } else { - $error = functions::wash_html(_POSITION_ID.' '._IS_EMPTY.'!','NONE'); - $status = 1; - } - } else { - $error = functions::wash_html(_FILEPLAN_ID.' '._IS_EMPTY.'!','NONE'); + if (isset($_REQUEST['fileplan_id']) && !empty($_REQUEST['fileplan_id'])) { + //Get fileplan ID + $fileplan_id = $_REQUEST['fileplan_id']; + + //Get position ID + if (isset($_REQUEST['id']) && !empty($_REQUEST['id'])) { + $position_id = $_REQUEST['id']; + + //Check if position ID exists + if ($fileplan->positionAlreadyExists($fileplan_id, $position_id)) { + + //Delete window + $content .= '<form name="formPosition" id="formPosition" method="post" action="#" class="forms">'; + $content .= '<input type="hidden" name="fileplan_id" value="'.$fileplan_id.'" />'; + $content .= '<input type="hidden" name="id" value="'.$position_id.'" />'; + $content .= '<h2>'._REMOVE_POSITION.'</h2>'; + $content .= _REMOVE_POSITIONS_INFOS_1; + $content .= '<br/>'; + $content .= _REMOVE_POSITIONS_INFOS_2; + $content .= '<br/><br/>'; + $content .= '<div style="height:290px; overflow-x:hidden; overflow-y:auto; border:1px solid #CCCCCC;">'; + + //Get array position + $this_position_array = $fileplan->getPosition($fileplan_id, $position_id); + //Get position tree + $positions_array = $fileplan->getPositionsTree($fileplan_id, $positions_array, $this_position_array); + for ($i=0; $i < count($positions_array); $i++) { + //Is enable ? + if ($fileplan->isEnable($fileplan_id, $positions_array[$i]['ID'])) { + $content .='<b>'.str_replace("---", " ", functions::xssafe(str_replace(" ", "---", $positions_array[$i]['LABEL']))) + .'</b> <em>('.$positions_array[$i]['COUNT_DOCUMENT'] + .' '._DOC_IN_FILEPLAN.')</em><br/>'; + } + } + $content .= '</div>'; + + //Buttons + // $content .='<hr />'; + $content .='<div align="center">'; + $content .=' <input type="button" name="valid" value=" '._DELETE_POSITION + .' " id="valid" class="button" onclick="validFileplanForm(\'' + .$path_to_script.'&origin='.$origin.'&mode=deletePosition\', \'formPosition\');" /> '; + $content .='<input type="button" name="cancel" id="cancel" class="button" value="' + ._CANCEL.'" onclick="destroyModal(\'modal_fileplan\');"/>'; + $content .='</div">'; + $content .= '</form>'; + } else { + $error = functions::wash_html($position_id.': '._POSITION_NOT_EXISTS.'!', 'NONE'); + $status = 1; + } + } else { + $error = functions::wash_html(_POSITION_ID.' '._IS_EMPTY.'!', 'NONE'); + $status = 1; + } + } else { + $error = functions::wash_html(_FILEPLAN_ID.' '._IS_EMPTY.'!', 'NONE'); $status = 1; } break; case 'deletePosition': - if (isset($_REQUEST['fileplan_id']) && !empty($_REQUEST['fileplan_id'])) { - //Get fileplan ID - $fileplan_id = $_REQUEST['fileplan_id']; - - //Get position ID - if (isset($_REQUEST['id']) && !empty($_REQUEST['id'])) { - $position_id = $_REQUEST['id']; - - //Check if position ID exists - if($fileplan->positionAlreadyExists($fileplan_id, $position_id)) { - - //Get array position - $this_position_array = $fileplan->getPosition($fileplan_id, $position_id); - //Get position tree - $positions_array = $fileplan->getPositionsTree($fileplan_id, $positions_array, $this_position_array); - - $position_label = ''; - for($i=0; $i < count($positions_array); $i++) { - //Kepp label - $position_label .= functions::wash_html($positions_array[$i]['LABEL']) .'<br/>'; - - //Delete linked documents - $stmt = $db->query( - "DELETE FROM " - . FILEPLAN_RES_POSITIONS_TABLE . " WHERE fileplan_id = ?" - . " AND position_id = ?" - ,array($fileplan_id,$positions_array[$i]['ID'])); - //Delete position - $stmt = $db->query( - "DELETE FROM " - . FILEPLAN_POSITIONS_TABLE . " WHERE fileplan_id = ?" - . " AND position_id = ?" - ,array($fileplan_id,$positions_array[$i]['ID'])); - - //History - if ($_SESSION['history']['fileplandel']) { - //Add to history - $hist->add( - FILEPLAN_POSITIONS_TABLE, $positions_array[$i]['ID'], - "DEL", 'fileplandel', _POSITION_REMOVED - . ': '.trim(str_replace(' ', '', $positions_array[$i]['LABEL'])) - .' (' . $positions_array[$i]['ID'] . ')', - $_SESSION['config']['databasetype'], 'fileplan' - ); - } - } - - //Reload and show message - $js .= "destroyModal('modal_fileplan');"; - if ($origin == "admin") { - //From admin - $js .= "loadList('" - .$_SESSION['config']['businessappurl'] - ."index.php?page=fileplan_admin_managment&module=fileplan&" - ."fileplan_id=".$fileplan_id."&display=true".$parameters."');"; - } elseif ($origin == "manage") { - //From manage - $js .= "loadList('".$_SESSION['config']['businessappurl'] - ."index.php?display=true&page=fileplan_managment" - ."&module=fileplan".$parameters."');"; - } - $js .= "window.top.$('main_info').innerHTML = '"._POSITION_REMOVED.': ' - .addslashes($position_label)."';"; - } else { - $error = functions::wash_html($position_id.': '._POSITION_NOT_EXISTS.'!','NONE'); - $status = 1; - } - } else { - $error = functions::wash_html(_POSITION_ID.' '._IS_EMPTY.'!','NONE'); - $status = 1; - } - } else { - $error = functions::wash_html(_FILEPLAN_ID.' '._IS_EMPTY.'!','NONE'); + if (isset($_REQUEST['fileplan_id']) && !empty($_REQUEST['fileplan_id'])) { + //Get fileplan ID + $fileplan_id = $_REQUEST['fileplan_id']; + + //Get position ID + if (isset($_REQUEST['id']) && !empty($_REQUEST['id'])) { + $position_id = $_REQUEST['id']; + + //Check if position ID exists + if ($fileplan->positionAlreadyExists($fileplan_id, $position_id)) { + + //Get array position + $this_position_array = $fileplan->getPosition($fileplan_id, $position_id); + //Get position tree + $positions_array = $fileplan->getPositionsTree($fileplan_id, $positions_array, $this_position_array); + + $position_label = ''; + for ($i=0; $i < count($positions_array); $i++) { + //Kepp label + $position_label .= functions::wash_html($positions_array[$i]['LABEL']) .'<br/>'; + + //Delete linked documents + $stmt = $db->query( + "DELETE FROM " + . FILEPLAN_RES_POSITIONS_TABLE . " WHERE fileplan_id = ?" + . " AND position_id = ?", + array($fileplan_id,$positions_array[$i]['ID']) + ); + //Delete position + $stmt = $db->query( + "DELETE FROM " + . FILEPLAN_POSITIONS_TABLE . " WHERE fileplan_id = ?" + . " AND position_id = ?", + array($fileplan_id,$positions_array[$i]['ID']) + ); + + //History + if ($_SESSION['history']['fileplandel']) { + //Add to history + $hist->add( + FILEPLAN_POSITIONS_TABLE, + $positions_array[$i]['ID'], + "DEL", + 'fileplandel', + _POSITION_REMOVED + . ': '.trim(str_replace(' ', '', $positions_array[$i]['LABEL'])) + .' (' . $positions_array[$i]['ID'] . ')', + $_SESSION['config']['databasetype'], + 'fileplan' + ); + } + } + + //Reload and show message + $js .= "destroyModal('modal_fileplan');"; + if ($origin == "admin") { + //From admin + $js .= "loadList('" + .$_SESSION['config']['businessappurl'] + ."index.php?page=fileplan_admin_managment&module=fileplan&" + ."fileplan_id=".$fileplan_id."&display=true".$parameters."');"; + } elseif ($origin == "manage") { + //From manage + $js .= "loadList('".$_SESSION['config']['businessappurl'] + ."index.php?display=true&page=fileplan_managment" + ."&module=fileplan".$parameters."');"; + } + $js .= "window.top.$('main_info').innerHTML = '"._POSITION_REMOVED.': ' + .addslashes($position_label)."';"; + } else { + $error = functions::wash_html($position_id.': '._POSITION_NOT_EXISTS.'!', 'NONE'); + $status = 1; + } + } else { + $error = functions::wash_html(_POSITION_ID.' '._IS_EMPTY.'!', 'NONE'); + $status = 1; + } + } else { + $error = functions::wash_html(_FILEPLAN_ID.' '._IS_EMPTY.'!', 'NONE'); $status = 1; } break; case 'disPosition': - if (isset($_REQUEST['fileplan_id']) && !empty($_REQUEST['fileplan_id'])) { - //Get fileplan ID - $fileplan_id = $_REQUEST['fileplan_id']; - - //Get position ID - if (isset($_REQUEST['id']) && !empty($_REQUEST['id'])) { - $position_id = $_REQUEST['id']; - - //Check if position ID exists - if($fileplan->positionAlreadyExists($fileplan_id, $position_id)) { - - //Get array position - $this_position_array = $fileplan->getPosition($fileplan_id, $position_id); - //Get position tree - $positions_array = $fileplan->getPositionsTree($fileplan_id, $positions_array, $this_position_array); - //Init label - $position_label = ''; - - for($i=0; $i < count($positions_array); $i++) { - //Only if enable - if ($fileplan->isEnable($fileplan_id, $positions_array[$i]['ID'])) { - - $position_label .= $positions_array[$i]['LABEL'] .'<br/>'; - //Query - $stmt = $db->query( - "UPDATE ".FILEPLAN_POSITIONS_TABLE - . " SET enabled = ? WHERE fileplan_id = ?" - . " AND position_id = ?" - . " AND enabled = ?" - ,array('N',$fileplan_id,$positions_array[$i]['ID'],'Y')); - - //History - if ($_SESSION['history']['fileplanup']) { - //Add to history - $hist->add( - FILEPLAN_POSITIONS_TABLE, $positions_array[$i]['ID'], "UP", 'fileplanup', - _POSITION_DISABLED .': '.trim(str_replace(' ', '', $positions_array[$i]['LABEL'])) - .' (' . $positions_array[$i]['ID'] . ')', - $_SESSION['config']['databasetype'], 'fileplan' - ); - } - } - } - - //Reload and show message - if ($origin == "admin") { - //From admin - $js .= "loadList('" - .$_SESSION['config']['businessappurl'] - ."index.php?page=fileplan_admin_managment&module=fileplan&" - ."fileplan_id=".$fileplan_id."&display=true".$parameters."');"; - } elseif ($origin == "manage") { - //From manage - $js .= "loadList('".$_SESSION['config']['businessappurl'] - ."index.php?display=true&page=fileplan_managment" - ."&module=fileplan".$parameters."');"; - } - $js .= "window.top.$('main_info').innerHTML = '"._POSITION_DISABLED.': ' - .$position_label."';"; - } else { - $error = functions::wash_html($position_id.': '._POSITION_NOT_EXISTS.'!','NONE'); - $status = 1; - } - } else { - $error = functions::wash_html(_POSITION_ID.' '._IS_EMPTY.'!','NONE'); - $status = 1; - } - } else { - $error = functions::wash_html(_FILEPLAN_ID.' '._IS_EMPTY.'!','NONE'); + if (isset($_REQUEST['fileplan_id']) && !empty($_REQUEST['fileplan_id'])) { + //Get fileplan ID + $fileplan_id = $_REQUEST['fileplan_id']; + + //Get position ID + if (isset($_REQUEST['id']) && !empty($_REQUEST['id'])) { + $position_id = $_REQUEST['id']; + + //Check if position ID exists + if ($fileplan->positionAlreadyExists($fileplan_id, $position_id)) { + + //Get array position + $this_position_array = $fileplan->getPosition($fileplan_id, $position_id); + //Get position tree + $positions_array = $fileplan->getPositionsTree($fileplan_id, $positions_array, $this_position_array); + //Init label + $position_label = ''; + + for ($i=0; $i < count($positions_array); $i++) { + //Only if enable + if ($fileplan->isEnable($fileplan_id, $positions_array[$i]['ID'])) { + $position_label .= $positions_array[$i]['LABEL'] .'<br/>'; + //Query + $stmt = $db->query( + "UPDATE ".FILEPLAN_POSITIONS_TABLE + . " SET enabled = ? WHERE fileplan_id = ?" + . " AND position_id = ?" + . " AND enabled = ?", + array('N',$fileplan_id,$positions_array[$i]['ID'],'Y') + ); + + //History + if ($_SESSION['history']['fileplanup']) { + //Add to history + $hist->add( + FILEPLAN_POSITIONS_TABLE, + $positions_array[$i]['ID'], + "UP", + 'fileplanup', + _POSITION_DISABLED .': '.trim(str_replace(' ', '', $positions_array[$i]['LABEL'])) + .' (' . $positions_array[$i]['ID'] . ')', + $_SESSION['config']['databasetype'], + 'fileplan' + ); + } + } + } + + //Reload and show message + if ($origin == "admin") { + //From admin + $js .= "loadList('" + .$_SESSION['config']['businessappurl'] + ."index.php?page=fileplan_admin_managment&module=fileplan&" + ."fileplan_id=".$fileplan_id."&display=true".$parameters."');"; + } elseif ($origin == "manage") { + //From manage + $js .= "loadList('".$_SESSION['config']['businessappurl'] + ."index.php?display=true&page=fileplan_managment" + ."&module=fileplan".$parameters."');"; + } + $js .= "window.top.$('main_info').innerHTML = '"._POSITION_DISABLED.': ' + .$position_label."';"; + } else { + $error = functions::wash_html($position_id.': '._POSITION_NOT_EXISTS.'!', 'NONE'); + $status = 1; + } + } else { + $error = functions::wash_html(_POSITION_ID.' '._IS_EMPTY.'!', 'NONE'); + $status = 1; + } + } else { + $error = functions::wash_html(_FILEPLAN_ID.' '._IS_EMPTY.'!', 'NONE'); $status = 1; } - + break; case 'enaPosition': - if (isset($_REQUEST['fileplan_id']) && !empty($_REQUEST['fileplan_id'])) { - //Get fileplan ID - $fileplan_id = $_REQUEST['fileplan_id']; - - //Get position ID - if (isset($_REQUEST['id']) && !empty($_REQUEST['id'])) { - $position_id = $_REQUEST['id']; - - //Check if position ID exists - if($fileplan->positionAlreadyExists($fileplan_id, $position_id)) { - - //Get array position - $this_position_array = $fileplan->getPosition($fileplan_id, $position_id); - //Get position tree - $positions_array = $fileplan->getPositionsTree($fileplan_id, $positions_array, $this_position_array); - - //Get parents (enable parent when children is enable) - $parents_array = array(); - $parents_array = $fileplan->getParents($parents_array, $fileplan_id, $position_id); - //Merge all - $positions_array = array_merge($positions_array, $parents_array); - //Init label - $position_label = ''; - - for($i=0; $i < count($positions_array); $i++) { - //Only if disable - if ($fileplan->isEnable($fileplan_id, $positions_array[$i]['ID']) === false) { - $position_label .= functions::wash_html($positions_array[$i]['LABEL']).'<br/>'; - //Query - $stmt = $db->query( - "UPDATE ".FILEPLAN_POSITIONS_TABLE - . " SET enabled = ? WHERE fileplan_id = ?" - . " AND position_id = ?" - . " AND enabled = ?" - ,array('Y',$fileplan_id,$positions_array[$i]['ID'],'N')); - - //History - if ($_SESSION['history']['fileplanup']) { - //Add to history - $hist->add( - FILEPLAN_POSITIONS_TABLE, $positions_array[$i]['ID'], "UP", 'fileplanup', - _POSITION_ENABLED .': '.functions::wash_html($positions_array[$i]['LABEL']) - .' (' . $positions_array[$i]['ID'] . ')', - $_SESSION['config']['databasetype'], 'fileplan' - ); - } - } - } - - //Reload and show message - if ($origin == "admin") { - //From admin - $js .= "loadList('" - .$_SESSION['config']['businessappurl'] - ."index.php?page=fileplan_admin_managment&module=fileplan&" - ."fileplan_id=".$fileplan_id."&display=true".$parameters."');"; - } elseif ($origin == "manage") { - //From manage - $js .= "loadList('".$_SESSION['config']['businessappurl'] - ."index.php?display=true&page=fileplan_managment" - ."&module=fileplan".$parameters."');"; - } - $js .= "window.top.$('main_info').innerHTML = '"._POSITION_ENABLED.': ' - .$position_label."';"; - } else { - $error = functions::wash_html($position_id.': '._POSITION_NOT_EXISTS.'!','NONE'); - $status = 1; - } - } else { - $error = functions::wash_html(_POSITION_ID.' '._IS_EMPTY.'!','NONE'); - $status = 1; - } - } else { - $error = functions::wash_html(_FILEPLAN_ID.' '._IS_EMPTY.'!','NONE'); + if (isset($_REQUEST['fileplan_id']) && !empty($_REQUEST['fileplan_id'])) { + //Get fileplan ID + $fileplan_id = $_REQUEST['fileplan_id']; + + //Get position ID + if (isset($_REQUEST['id']) && !empty($_REQUEST['id'])) { + $position_id = $_REQUEST['id']; + + //Check if position ID exists + if ($fileplan->positionAlreadyExists($fileplan_id, $position_id)) { + + //Get array position + $this_position_array = $fileplan->getPosition($fileplan_id, $position_id); + //Get position tree + $positions_array = $fileplan->getPositionsTree($fileplan_id, $positions_array, $this_position_array); + + //Get parents (enable parent when children is enable) + $parents_array = array(); + $parents_array = $fileplan->getParents($parents_array, $fileplan_id, $position_id); + //Merge all + $positions_array = array_merge($positions_array, $parents_array); + //Init label + $position_label = ''; + + for ($i=0; $i < count($positions_array); $i++) { + //Only if disable + if ($fileplan->isEnable($fileplan_id, $positions_array[$i]['ID']) === false) { + $position_label .= functions::wash_html($positions_array[$i]['LABEL']).'<br/>'; + //Query + $stmt = $db->query( + "UPDATE ".FILEPLAN_POSITIONS_TABLE + . " SET enabled = ? WHERE fileplan_id = ?" + . " AND position_id = ?" + . " AND enabled = ?", + array('Y',$fileplan_id,$positions_array[$i]['ID'],'N') + ); + + //History + if ($_SESSION['history']['fileplanup']) { + //Add to history + $hist->add( + FILEPLAN_POSITIONS_TABLE, + $positions_array[$i]['ID'], + "UP", + 'fileplanup', + _POSITION_ENABLED .': '.functions::wash_html($positions_array[$i]['LABEL']) + .' (' . $positions_array[$i]['ID'] . ')', + $_SESSION['config']['databasetype'], + 'fileplan' + ); + } + } + } + + //Reload and show message + if ($origin == "admin") { + //From admin + $js .= "loadList('" + .$_SESSION['config']['businessappurl'] + ."index.php?page=fileplan_admin_managment&module=fileplan&" + ."fileplan_id=".$fileplan_id."&display=true".$parameters."');"; + } elseif ($origin == "manage") { + //From manage + $js .= "loadList('".$_SESSION['config']['businessappurl'] + ."index.php?display=true&page=fileplan_managment" + ."&module=fileplan".$parameters."');"; + } + $js .= "window.top.$('main_info').innerHTML = '"._POSITION_ENABLED.': ' + .$position_label."';"; + } else { + $error = functions::wash_html($position_id.': '._POSITION_NOT_EXISTS.'!', 'NONE'); + $status = 1; + } + } else { + $error = functions::wash_html(_POSITION_ID.' '._IS_EMPTY.'!', 'NONE'); + $status = 1; + } + } else { + $error = functions::wash_html(_FILEPLAN_ID.' '._IS_EMPTY.'!', 'NONE'); $status = 1; } break; case 'setPosition': - //Reset checked positions array - unset($_SESSION['checked_positions']); + //Reset checked positions array + unset($_SESSION['checked_positions']); $_SESSION['checked_positions'] = array(); - - $fileplan_id =''; + + $fileplan_id =''; if (isset($_REQUEST['values']) && count($_REQUEST['values']) > 0) { - //Selected ressources - $selected_values = array(); - $selected_values = $_REQUEST['values']; - + //Selected ressources + $selected_values = array(); + $selected_values = $_REQUEST['values']; + //IF Collection - if (isset($_REQUEST['coll_id'])) { + if (isset($_REQUEST['coll_id'])) { $coll_id = $_REQUEST['coll_id']; - $extraContent .= '<input type="hidden" name="coll_id" value="'.$coll_id.'" />'; - //Merge coll_id and res_id - for($i = 0; $i < count($selected_values); $i++) { - $selected_values[$i] = $coll_id.'@@'.$selected_values[$i]; - } + $extraContent .= '<input type="hidden" name="coll_id" value="'.$coll_id.'" />'; + //Merge coll_id and res_id + for ($i = 0; $i < count($selected_values); $i++) { + $selected_values[$i] = $coll_id.'@@'.$selected_values[$i]; + } } //Get selected res_id $values_array = array(); //Filter empty and double $values_array = array_unique(array_filter($selected_values)); $values = join(',', $values_array); - //Add to url - $extraUrl .="&res_id=".$values; + //Add to url + $extraUrl .="&res_id=".$values; // $content .='AVANT: '.join(',', $selected_values) .'<br/>APRES: '.$values ; //DEBUG //Selected label (update mode) if (isset($_REQUEST['actual_position_id']) && !empty($_REQUEST['actual_position_id'])) { - if (isset($_REQUEST['fileplan_id']) && !empty($_REQUEST['fileplan_id'])) { - //fileplan ID - $fileplan_id = $_REQUEST['fileplan_id']; - //Preselect actual position - $_SESSION['checked_positions'][$fileplan_id][$_REQUEST['actual_position_id']] = 'true'; - //Add it to next url step... - $extraUrl .="&actual_position_id=".$_REQUEST['actual_position_id']; - //...and to hidden field - $extraContent .= '<input type="hidden" name="actual_position_id" value="'.$_REQUEST['actual_position_id'].'" />'; - } else { - $error = functions::wash_html(_FILEPLAN_ID.' '._IS_EMPTY.'!','NONE'); - $status = 1; - } + if (isset($_REQUEST['fileplan_id']) && !empty($_REQUEST['fileplan_id'])) { + //fileplan ID + $fileplan_id = $_REQUEST['fileplan_id']; + //Preselect actual position + $_SESSION['checked_positions'][$fileplan_id][$_REQUEST['actual_position_id']] = 'true'; + //Add it to next url step... + $extraUrl .="&actual_position_id=".$_REQUEST['actual_position_id']; + //...and to hidden field + $extraContent .= '<input type="hidden" name="actual_position_id" value="'.$_REQUEST['actual_position_id'].'" />'; + } else { + $error = functions::wash_html(_FILEPLAN_ID.' '._IS_EMPTY.'!', 'NONE'); + $status = 1; + } } //Form $content .= '<form name="formFileplan" id="formFileplan" method="post" action="#" class="forms">'; $content .= $extraContent; $content .= '<input type="hidden" name="res_id" value="'.$values.'" />'; - $content .= '<h2>'._SET_DOC_TO_POSITION.' : </h2>'; - $content .= '<label>'._FILEPLAN.': </label><br/>'; - $content .='<select name="fileplan_id" id="fileplan_id" class="fileplan_position" ' - .'onChange="loadFileplanList(\'selectedPosition\', \'positionsList\', \'' + $content .= '<h2>'._SET_DOC_TO_POSITION.' : </h2>'; + $content .= '<label>'._FILEPLAN.': </label><br/>'; + $content .='<select name="fileplan_id" id="fileplan_id" class="fileplan_position" ' + .'onChange="loadFileplanList(\'selectedPosition\', \'positionsList\', \'' .$_SESSION['config']['businessappurl'].'index.php?display=true&module=' .'fileplan&page=positions_checked_list_autocompletion'.$extraUrl - .'&fileplan_id=\' + document.formFileplan.fileplan_id.value);">'; - $content .='<option value="">'._CHOOSE_FILEPLAN.'</option>'; - //User personnal fileplan - $userFileplanArray = $fileplan->getUserFileplan(); - //Entities fileplan - $entitiesFileplanArray = array(); - if ($core_tools->test_service('put_doc_in_fileplan', 'fileplan', false)) { - $entitiesFileplanArray = $fileplan->getEntitiesFileplan(); - } - //Merge all - $fileplan_array = array_merge ($userFileplanArray, $entitiesFileplanArray); - for($i=0; $i < count($fileplan_array); $i++) { - //Is enable ? - if ($fileplan_array[$i]['ENABLED'] == 'Y') { - //Selected? - ($fileplan_id == $fileplan_array[$i]['ID'] || count($fileplan_array) == 1)? $selected = ' selected="selected"' : $selected = ''; - $content .='<option value="'.$fileplan_array[$i]['ID'].'"'.$selected.' >' - .functions::xssafe($fileplan_array[$i]['LABEL']).'</option>'; - } - } - - $content .='</select><br/><br/>'; - //Autocompletion - $content .= '<label>'._SEARCH.': </label><br/>'; + .'&fileplan_id=\' + document.formFileplan.fileplan_id.value);">'; + $content .='<option value="">'._CHOOSE_FILEPLAN.'</option>'; + //User personnal fileplan + $userFileplanArray = $fileplan->getUserFileplan(); + //Entities fileplan + $entitiesFileplanArray = array(); + if ($core_tools->test_service('put_doc_in_fileplan', 'fileplan', false)) { + $entitiesFileplanArray = $fileplan->getEntitiesFileplan(); + } + //Merge all + $fileplan_array = array_merge($userFileplanArray, $entitiesFileplanArray); + for ($i=0; $i < count($fileplan_array); $i++) { + //Is enable ? + if ($fileplan_array[$i]['ENABLED'] == 'Y') { + //Selected? + ($fileplan_id == $fileplan_array[$i]['ID'] || count($fileplan_array) == 1)? $selected = ' selected="selected"' : $selected = ''; + $content .='<option value="'.$fileplan_array[$i]['ID'].'"'.$selected.' >' + .functions::xssafe($fileplan_array[$i]['LABEL']).'</option>'; + } + } + + $content .='</select><br/><br/>'; + //Autocompletion + $content .= '<label>'._SEARCH.': </label><br/>'; $content .= '<input type="text" name="selectedPosition" id="selectedPosition"' .' value="" class="fileplan_position" onKeyUp="loadFileplanList(\'selectedPosition\', \'positionsList\', \'' .$_SESSION['config']['businessappurl'].'index.php?display=true&module=' .'fileplan&page=positions_checked_list_autocompletion'.$extraUrl - .'&fileplan_id=\' + document.formFileplan.fileplan_id.value);" /><br/><br/>'; - //Content - $content .= '<div style="width:585px; height:300px; border:1px solid; overflow-x:hidden; overflow-y:auto; padding:5px;">'; + .'&fileplan_id=\' + document.formFileplan.fileplan_id.value);" /><br/><br/>'; + //Content + $content .= '<div style="width:585px; height:300px; border:1px solid; overflow-x:hidden; overflow-y:auto; padding:5px;">'; $content .= '<div id="loadingFileplan" style="display:none;"><i class="fa fa-spinner fa-2x"></i></div>'; $content .= '<div id="positionsList"></div>'; $content .='</div>'; @@ -1305,9 +1299,9 @@ switch ($mode) { $content .='<script type="text/javascript">loadFileplanList(\'selectedPosition\', \'positionsList\', \'' .$_SESSION['config']['businessappurl'].'index.php?display=true&module=' .'fileplan&page=positions_checked_list_autocompletion'.$extraUrl - .'&fileplan_id=\' + document.formFileplan.fileplan_id.value);</script>'; + .'&fileplan_id=\' + document.formFileplan.fileplan_id.value);</script>'; } else { - $error = functions::wash_html(_CHOOSE_ONE_DOC.'!','NONE'); + $error = functions::wash_html(_CHOOSE_ONE_DOC.'!', 'NONE'); $status = 1; } break; @@ -1315,201 +1309,168 @@ switch ($mode) { //Get RES_ID if (isset($_REQUEST['res_id']) && !empty($_REQUEST['res_id'])) { - //Build res_array - $res_array = $fileplan->buildResArray($_REQUEST['res_id']); - - //Fileplan ID - if (isset($_REQUEST['fileplan_id']) && !empty($_REQUEST['fileplan_id'])) { - - $fileplan_id = $_REQUEST['fileplan_id']; - //Selected position (update mode) - $actual_position_id = ''; - - if(!$_REQUEST['position']){ - if (!empty($_SESSION['origin_positions'])) { - foreach ($_SESSION['origin_positions'] as $key => $value) { - $fileplan->remove($fileplan_id, $value, $res_array); - } - } else { - $error = functions::wash_html(_POSITION . ' ' . _IS_EMPTY . '!','NONE'); + //Build res_array + $res_array = $fileplan->buildResArray($_REQUEST['res_id']); + + //Fileplan ID + if (isset($_REQUEST['fileplan_id']) && !empty($_REQUEST['fileplan_id'])) { + $fileplan_id = $_REQUEST['fileplan_id']; + //Selected position (update mode) + $actual_position_id = ''; + + if (!$_REQUEST['position']) { + if (!empty($_SESSION['origin_positions'])) { + foreach ($_SESSION['origin_positions'] as $key => $value) { + $fileplan->remove($fileplan_id, $value, $res_array); + } + } else { + $error = functions::wash_html(_POSITION . ' ' . _IS_EMPTY . '!', 'NONE'); $status = 1; - } - }else{ - if(!$_SESSION['origin_positions']){ - $_SESSION['origin_positions']=array(); - } - $fileplan_diff=array_diff($_SESSION['origin_positions'],$_REQUEST['position']); + } + } else { + if (!$_SESSION['origin_positions']) { + $_SESSION['origin_positions']=array(); + } + $fileplan_diff=array_diff($_SESSION['origin_positions'], $_REQUEST['position']); - foreach ($fileplan_diff as $key => $value) { - $fileplan->remove($fileplan_id, $value, $res_array); - } - } - - //if (isset($_REQUEST['actual_position_id']) && !empty($_REQUEST['actual_position_id'])) { - // $actual_position_id = $_REQUEST['actual_position_id']; - //Remove Actual position if not selected - /*if ( - !isset($_REQUEST['position']) - || (count($_REQUEST['position']) == 0) - || !in_array($actual_position_id, $_REQUEST['position']) - ) {*/ - //$fileplan->remove($fileplan_id, '14', $res_array); - //} - //} - //Check POSITIONS - //I : Mode SET, position required - //II : Mode DELETE, remove the actual position from document(s) - //III: Mode MOVE, move document(s) in another position - /*if ( - (isset($_REQUEST['position']) && count($_REQUEST['position']) > 0 && empty($actual_position_id)) //I - || (!isset($_REQUEST['position']) && count($_REQUEST['position']) == 0 && !empty($actual_position_id)) //II - || (isset($_REQUEST['position']) && count($_REQUEST['position']) > 0 && !empty($actual_position_id)) //III - ) - {*/ - //DEBUG - // print_r($_REQUEST['position']); - // print_r($res_array); - // exit; - - //Process! - for($i = 0; $i < count($_REQUEST['position']); $i++) { - + foreach ($fileplan_diff as $key => $value) { + $fileplan->remove($fileplan_id, $value, $res_array); + } + } + //Process! + for ($i = 0; $i < count($_REQUEST['position']); $i++) { + //Position to treat - $position_id = $_REQUEST['position'][$i]; - - //Check if position exists - if($fileplan->positionAlreadyExists($fileplan_id, $position_id)) { - //For each res_id - for($j = 0; $j < count($res_array); $j++) { - - $res_id = $res_array[$j]['RES_ID']; - $coll_id = $res_array[$j]['COLL_ID']; - - //Set position - $fileplan->set($fileplan_id, $position_id, $res_id, $coll_id); - - //Unset checked positions array - unset($_SESSION['checked_positions']); - } - } else { - $error = functions::wash_html($position_id.': '._POSITION_NOT_EXISTS.'!','NONE'); - $status = 1; - break; + $position_id = $_REQUEST['position'][$i]; + + //Check if position exists + if ($fileplan->positionAlreadyExists($fileplan_id, $position_id)) { + //For each res_id + for ($j = 0; $j < count($res_array); $j++) { + $res_id = $res_array[$j]['RES_ID']; + $coll_id = $res_array[$j]['COLL_ID']; + + //Set position + $fileplan->set($fileplan_id, $position_id, $res_id, $coll_id); + + //Unset checked positions array + unset($_SESSION['checked_positions']); } - - //History - if ($_SESSION['history']['fileplanup']) { - //Add to history - $hist->add( - FILEPLAN_RES_POSITIONS_TABLE, $fileplan_id, "UP", 'fileplanup', - _DOC_ADDED_TO_POSITION .': '.$position_id - .' (' . $coll_id.'/'.$res_id . ')', - $_SESSION['config']['databasetype'], 'fileplan' - ); - } + } else { + $error = functions::wash_html($position_id.': '._POSITION_NOT_EXISTS.'!', 'NONE'); + $status = 1; + break; + } + + //History + if ($_SESSION['history']['fileplanup']) { + //Add to history + $hist->add( + FILEPLAN_RES_POSITIONS_TABLE, + $fileplan_id, + "UP", + 'fileplanup', + _DOC_ADDED_TO_POSITION .': '.$position_id + .' (' . $coll_id.'/'.$res_id . ')', + $_SESSION['config']['databasetype'], + 'fileplan' + ); } + } - //Reload list and show message - $js .= "destroyModal('modal_fileplan');unCheckAll();"; - $js .= $list_origin; - $js .= "window.top.$('main_info').innerHTML = '"._DOC_ADDED_TO_POSITION."';main_info.style.display = 'table-cell';Element.hide.delay(10, 'main_info');"; + //Reload list and show message + $js .= "destroyModal('modal_fileplan');unCheckAll();"; + $js .= $list_origin; + $js .= "window.top.$('main_info').innerHTML = '"._DOC_ADDED_TO_POSITION."';main_info.style.display = 'table-cell';Element.hide.delay(10, 'main_info');"; - /*} else { - $error = functions::wash_html(_CHOOSE_ONE_POSITION.'!','NONE'); - $status = 1; - }*/ - } else { - $error = functions::wash_html(_CHOOSE_FILEPLAN.'!','NONE'); - $status = 1; - } + $error = functions::wash_html(_CHOOSE_FILEPLAN.'!', 'NONE'); + $status = 1; + } } else { - $error = functions::wash_html(_CHOOSE_ONE_DOC.'!','NONE'); + $error = functions::wash_html(_CHOOSE_ONE_DOC.'!', 'NONE'); $status = 1; } break; case 'remove': - if (isset($_REQUEST['fileplan_id']) && !empty($_REQUEST['fileplan_id'])) { - //Get fileplan ID - $fileplan_id = $_REQUEST['fileplan_id']; - - if (isset($_REQUEST['actual_position_id']) && !empty($_REQUEST['actual_position_id'])) { - //Get POSITION - $position_id = $_REQUEST['actual_position_id']; - - if (isset($_REQUEST['res_id']) && !empty($_REQUEST['res_id'])) { - //Get RES_ID - $res_id = $_REQUEST['res_id']; - - if (isset($_REQUEST['coll_id']) && !empty($_REQUEST['coll_id'])) { - //Get COLL_ID - $coll_id = $_REQUEST['coll_id']; + if (isset($_REQUEST['fileplan_id']) && !empty($_REQUEST['fileplan_id'])) { + //Get fileplan ID + $fileplan_id = $_REQUEST['fileplan_id']; + + if (isset($_REQUEST['actual_position_id']) && !empty($_REQUEST['actual_position_id'])) { + //Get POSITION + $position_id = $_REQUEST['actual_position_id']; + + if (isset($_REQUEST['res_id']) && !empty($_REQUEST['res_id'])) { + //Get RES_ID + $res_id = $_REQUEST['res_id']; + + if (isset($_REQUEST['coll_id']) && !empty($_REQUEST['coll_id'])) { + //Get COLL_ID + $coll_id = $_REQUEST['coll_id']; - //Build res_array - $res_array = $fileplan->buildResArray($coll_id.'@@'.$res_id); - - //Remove doc from position - $fileplan->remove($fileplan_id, $position_id, $res_array); - - //History - if ($_SESSION['history']['fileplandel']) { - //Add to history - $hist->add( - FILEPLAN_RES_POSITIONS_TABLE, $fileplan_id, "UP", 'fileplandel', - _DOC_REMOVED_FROM_POSITION .': '.$position_id - .' (' . $coll_id.'/'.$res_id . ')', - $_SESSION['config']['databasetype'], 'fileplan' - ); - } - } else { - $_SESSION['error'] = _COLLECTION." "._IS_EMPTY; - $js = "window.top.location.href='".$_SESSION['config']['businessappurl']."index.php?reinit=true';"; - } - //Reload list and show message - $js .= $list_origin; - $js .= "window.top.$('main_info').innerHTML = '"._DOC_REMOVED_FROM_POSITION."';"; - - } else { - $error = functions::wash_html(_DOC.' '._IS_EMPTY.'!','NONE'); - $status = 1; - } - } else { - $error = functions::wash_html(_POSITION_ID.' '._IS_EMPTY.'!','NONE'); - $status = 1; - } - } else { - $error = functions::wash_html(_FILEPLAN_ID.' '._IS_EMPTY.'!','NONE'); + //Build res_array + $res_array = $fileplan->buildResArray($coll_id.'@@'.$res_id); + + //Remove doc from position + $fileplan->remove($fileplan_id, $position_id, $res_array); + + //History + if ($_SESSION['history']['fileplandel']) { + //Add to history + $hist->add( + FILEPLAN_RES_POSITIONS_TABLE, + $fileplan_id, + "UP", + 'fileplandel', + _DOC_REMOVED_FROM_POSITION .': '.$position_id + .' (' . $coll_id.'/'.$res_id . ')', + $_SESSION['config']['databasetype'], + 'fileplan' + ); + } + } else { + $_SESSION['error'] = _COLLECTION." "._IS_EMPTY; + $js = "window.top.location.href='".$_SESSION['config']['businessappurl']."index.php?reinit=true';"; + } + //Reload list and show message + $js .= $list_origin; + $js .= "window.top.$('main_info').innerHTML = '"._DOC_REMOVED_FROM_POSITION."';"; + } else { + $error = functions::wash_html(_DOC.' '._IS_EMPTY.'!', 'NONE'); + $status = 1; + } + } else { + $error = functions::wash_html(_POSITION_ID.' '._IS_EMPTY.'!', 'NONE'); + $status = 1; + } + } else { + $error = functions::wash_html(_FILEPLAN_ID.' '._IS_EMPTY.'!', 'NONE'); $status = 1; } break; case 'checkPosition': - //Checked value + //Checked value if (isset($_REQUEST['checked']) && isset($_REQUEST['value'])) { - //Fileplan ID - if (isset($_REQUEST['fileplan_id']) && !empty($_REQUEST['fileplan_id'])) { - // - $fileplan_id = $_REQUEST['fileplan_id']; - - if ($_REQUEST['checked'] == 'true') { - $_SESSION['checked_positions'][$fileplan_id][$_REQUEST['value']] = $_REQUEST['checked']; - } else if ($_REQUEST['checked'] == 'false') { - unset($_SESSION['checked_positions'][$fileplan_id][$_REQUEST['value']]); - } - /*$js = 'loadFileplanList(\'selectedPosition\', \'positionsList\', \'' - .$_SESSION['config']['businessappurl'].'index.php?display=true&module=' - .'fileplan&page=positions_checked_list_autocompletion'.$extraUrl - .'&fileplan_id='.$_REQUEST['fileplan_id'].'\');';*/ - } else { - $error = functions::wash_html(_FILEPLAN_ID.' '._IS_EMPTY.'!','NONE'); - $status = 1; - } + //Fileplan ID + if (isset($_REQUEST['fileplan_id']) && !empty($_REQUEST['fileplan_id'])) { + $fileplan_id = $_REQUEST['fileplan_id']; + + if ($_REQUEST['checked'] == 'true') { + $_SESSION['checked_positions'][$fileplan_id][$_REQUEST['value']] = $_REQUEST['checked']; + } elseif ($_REQUEST['checked'] == 'false') { + unset($_SESSION['checked_positions'][$fileplan_id][$_REQUEST['value']]); + } + } else { + $error = functions::wash_html(_FILEPLAN_ID.' '._IS_EMPTY.'!', 'NONE'); + $status = 1; + } } else { - $error = functions::wash_html(_UNKNOW_ERROR.'!','NONE'); + $error = functions::wash_html(_UNKNOW_ERROR.'!', 'NONE'); $status = 1; } break; } echo "{status : " . $status . ", content : '" . addslashes($debug.$content) . "', error : '" . addslashes($error) . "', exec_js : '".addslashes($js)."'}"; -exit (); -?> +exit(); diff --git a/modules/fileplan/fileplan_managment.php b/modules/fileplan/fileplan_managment.php index a9a262d8e78..cd0e0c75752 100755 --- a/modules/fileplan/fileplan_managment.php +++ b/modules/fileplan/fileplan_managment.php @@ -48,10 +48,6 @@ $fileplan_id = $fileplanArray[0]['ID']; $fileplan_label = $fileplanArray[0]['LABEL']; if (empty($fileplan_id)) { - // echo '<script type="text/javascript">window.top.location.href=\'' - // . $_SESSION['config']['businessappurl'] - // . 'index.php?page=fileplan&module=fileplan' - // . '&reinit=true\';</script>'; /****************Management of the location bar ************/ $init = false; if (isset($_REQUEST['reinit']) && $_REQUEST['reinit'] == 'true') { @@ -72,37 +68,39 @@ if (empty($fileplan_id)) { //Path to ajax script $path_to_script = $_SESSION['config']['businessappurl'] .'index.php?display=true&module=fileplan&page=fileplan_ajax_script'.$parameters; ?> - <div id="inner_content"> - <h1><i class="fa fa-copy fa-2x" title="<?php - echo _ADD_FILEPLAN; ?>"></i><?php echo _ADD_FILEPLAN; ?></h1> - <h3> <?php echo _CREATE_YOUR_PERSONNAL_FILEPLAN.'.<br/><br/>'._ASKED_ONLY_ONCE.'.'; ?> </h3> - <div class="blank_space"> </div> - - <form name="formFileplan" id="formFileplan" method="post" action="#"> - <em><?php echo _CHANGE_DEFAULT_FILEPLAN_NAME; ?></em><br /><br /> - <p> - <label ><?php echo _FILEPLAN_NAME; ?> : </label> - <input name="fileplan_label" type="text" id="fileplan_label" class="fileplan_position" value="<?php +<div id="inner_content"> + <h1><i class="fa fa-copy fa-2x" title="<?php + echo _ADD_FILEPLAN; ?>"></i><?php echo _ADD_FILEPLAN; ?> + </h1> + <h3> <?php echo _CREATE_YOUR_PERSONNAL_FILEPLAN.'.<br/><br/>'._ASKED_ONLY_ONCE.'.'; ?> + </h3> + <div class="blank_space"> </div> + + <form name="formFileplan" id="formFileplan" method="post" action="#"> + <em><?php echo _CHANGE_DEFAULT_FILEPLAN_NAME; ?></em><br /><br /> + <p> + <label><?php echo _FILEPLAN_NAME; ?> : </label> + <input name="fileplan_label" type="text" id="fileplan_label" class="fileplan_position" value="<?php echo _PERSONNAL_FILEPLAN.' ('.$userInfo['FirstName'].' '.$userInfo['LastName'] .')'; ?>" /><span class="red_asterisk"><i class="fa fa-star"></i></span> - </p> - <p> - <label ><?php echo _IS_SERIAL_ID; ?> : </label> - <input name="is_serial" type="radio" id="is_serial" value="Y" checked="ckecked" /><?php echo _YES; ?> - <input name="is_serial" type="radio" id="is_serial" value="N" /><?php echo _NO; ?> - <span class="red_asterisk"><i class="fa fa-star"></i></span> - </p> - <p class="buttons"> - <input type="button" name="valid" value="<?php - echo _VALIDATE; ?>" class="button" onClick="validFileplanForm('<?php + </p> + <p> + <label><?php echo _IS_SERIAL_ID; ?> : </label> + <input name="is_serial" type="radio" id="is_serial" value="Y" checked="ckecked" /><?php echo _YES; ?> + <input name="is_serial" type="radio" id="is_serial" value="N" /><?php echo _NO; ?> + <span class="red_asterisk"><i class="fa fa-star"></i></span> + </p> + <p class="buttons"> + <input type="button" name="valid" value="<?php + echo _VALIDATE; ?>" class="button" onClick="validFileplanForm('<?php echo $path_to_script.'&origin=manage&mode=saveFileplan'; ?>', 'formFileplan');" /> - <input type="button" name="cancel" value="<?php echo - _CANCEL; ?>" class="button" onclick="window.top.location.href='<?php + <input type="button" name="cancel" value="<?php echo + _CANCEL; ?>" class="button" onclick="window.top.location.href='<?php echo $_SESSION['config']['businessappurl']; ?>index.php?module=fileplan&page=fileplan'" /> - </p> - </form> - </div> - <?php + </p> + </form> +</div> +<?php exit(); } else { $pathArray = array(); @@ -124,43 +122,46 @@ if (empty($fileplan_id)) { $page_id = 'fileplan_managment'; $core_tools->manage_location_bar($page_path, $page_label, $page_id, $init, $level); /***********************************************************/ ?> - <h1><!-- i class="fa fa-copy fa-2x" title=""></i--> - <?php //echo _FILEPLAN;?></h1> - <div id="inner_content"> - <div class="block"> - <b> - <p id="back_list"> - <a href="<?php echo $_SESSION['config']['businessappurl']; ?>index.php?page=fileplan&module=fileplan&reinit=true" class="back"><?php +<h1> + <!-- i class="fa fa-copy fa-2x" title=""></i--> + <?php //echo _FILEPLAN;?> +</h1> +<div id="inner_content"> + <div class="block"> + <b> + <p id="back_list"> + <a href="<?php echo $_SESSION['config']['businessappurl']; ?>index.php?page=fileplan&module=fileplan&reinit=true" class="back"><?php echo _VIEW_FILEPLAN; ?></a> / - <span class="selected_link"><?php echo _MANAGE_PERSONNAL_FILEPLAN; ?></span> - </p> - </b> - </div> - <br /> - <table cellspacing="0" cellpadding="5" border="0" width="100%"> - <tr> - <td nowrap><b><?php echo _FILEPLAN_NAME; ?> : </b></td> - <td nowrap><?php functions::xecho($fileplan_label); ?></td> - <td><a href="javascript://" onClick="showFileplanForm('<?php + <span class="selected_link"><?php echo _MANAGE_PERSONNAL_FILEPLAN; ?></span> + </p> + </b> + </div> + <br /> + <table cellspacing="0" cellpadding="5" border="0" width="100%"> + <tr> + <td nowrap><b><?php echo _FILEPLAN_NAME; ?> : </b></td> + <td nowrap><?php functions::xecho($fileplan_label); ?> + </td> + <td><a href="javascript://" onClick="showFileplanForm('<?php echo $_SESSION['config']['businessappurl'] .'index.php?display=true&module=fileplan&page=fileplan_ajax_script' - .'&origin=manage&mode=upFileplan&fileplan_id='.$fileplan_id; ?>');" class="change"title="<?php echo _EDIT_FILEPLAN; ?>"></a></td> - <!--<td><a href="javascript://" onClick="showFileplanForm('<?php + .'&origin=manage&mode=upFileplan&fileplan_id='.$fileplan_id; ?>');" class="change" title="<?php echo _EDIT_FILEPLAN; ?>"></a></td> + <!--<td><a href="javascript://" onClick="showFileplanForm('<?php echo $_SESSION['config']['businessappurl'] .'index.php?display=true&module=fileplan&page=fileplan_ajax_script' - .'&origin=manage&mode=disFileplan&fileplan_id='.$fileplan_id; ?>', false, '500px', '350px');" class="suspend" title="<?php + .'&origin=manage&mode=disFileplan&fileplan_id='.$fileplan_id; ?>', false, '500px', '350px');" class="suspend" title="<?php echo _DISABLE_FILEPLAN; ?>"></a></td>--> - <td><a href="javascript://" onClick="showFileplanForm('<?php + <td><a href="javascript://" onClick="showFileplanForm('<?php echo $_SESSION['config']['businessappurl'] .'index.php?display=true&module=fileplan&page=fileplan_ajax_script' - .'&origin=manage&mode=delFileplan&fileplan_id='.$fileplan_id; ?>', false, '500px', '350px');" class="delete" title="<?php + .'&origin=manage&mode=delFileplan&fileplan_id='.$fileplan_id; ?>', false, '500px', '350px');" class="delete" title="<?php echo _DELETE_FILEPLAN; ?>"></a></td> - <td width="50%"></td> - - </tr> - </table> - <hr /> - <?php + <td width="50%"></td> + + </tr> + </table> + <hr /> + <?php $parameters = ''; if (isset($_REQUEST['order']) && !empty($_REQUEST['order'])) { $parameters .= '&order='.$_REQUEST['order']; @@ -182,15 +183,16 @@ if (empty($fileplan_id)) { //Reset error $_SESSION['error'] = ''; ?> - </div> - <?php +</div> +<?php } else { //Table $table = FILEPLAN_VIEW; $select[$table] = array(); //Fields - array_push($select[$table], + array_push( + $select[$table], 'position_id', 'fileplan_id', 'fileplan_label', @@ -200,7 +202,8 @@ if (empty($fileplan_id)) { 'parent_id', 'position_id as position_path', 'position_enabled', - 'count_document'); + 'count_document' + ); //Where clause $where_tab = array(); $array_what = array(); @@ -277,7 +280,7 @@ if (empty($fileplan_id)) { $tab[$i][$j]['order'] = 'position_label'; } if ($tab[$i][$j][$value] == 'parent_id') { - $tab[$i][$j]['value'] = $fileplan->getPosition($fileplan_id, $tab[$i][$j]['value'], 'position_label'); + $tab[$i][$j]['value'] = functions::xssafe($fileplan->getPosition($fileplan_id, $tab[$i][$j]['value'], 'position_label')); $tab[$i][$j]['label'] = _POSITION_PARENT; $tab[$i][$j]['size'] = '25'; $tab[$i][$j]['label_align'] = 'left'; @@ -287,7 +290,7 @@ if (empty($fileplan_id)) { $tab[$i][$j]['order'] = 'parent_position_id'; } if ($tab[$i][$j][$value] == 'position_path') { - $tab[$i][$j]['value'] = $fileplan->getPositionPath($fileplan_id, $tab[$i][$j]['value']); + $tab[$i][$j]['value'] = functions::xssafe($fileplan->getPositionPath($fileplan_id, $tab[$i][$j]['value'])); $tab[$i][$j]['label'] = _POSITION_PATH; $tab[$i][$j]['size'] = '50'; $tab[$i][$j]['label_align'] = 'left'; diff --git a/package.json b/package.json index 5aa106e436e..08f65875712 100755 --- a/package.json +++ b/package.json @@ -21,7 +21,7 @@ "jquery-typeahead": "^2.10.6", "jquery.nicescroll": "~3.6.8", "jstree-bootstrap-theme": "^1.0.1", - "ng2-pdf-viewer": "^5.2.3", + "ng2-pdf-viewer": "^5.2.4", "ngx-cookie-service": "^2.1.0", "ngx-pipes": "^2.4.6", "pdfjs-dist": "^2.0.943", diff --git a/src/frontend/css/maarch-material.css b/src/frontend/css/maarch-material.css index c1795d489ed..e5adefb1a79 100755 --- a/src/frontend/css/maarch-material.css +++ b/src/frontend/css/maarch-material.css @@ -1 +1 @@ -.mat-badge-content{font-weight:600;font-size:12px;font-family:Roboto, "Helvetica Neue", sans-serif}.mat-badge-small .mat-badge-content{font-size:6px}.mat-badge-large .mat-badge-content{font-size:24px}.mat-h1,.mat-headline,.mat-typography h1{font:400 24px/32px Roboto, "Helvetica Neue", sans-serif;margin:0 0 16px}.mat-h2,.mat-title,.mat-typography h2{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;margin:0 0 16px}.mat-h3,.mat-subheading-2,.mat-typography h3{font:400 16px/28px Roboto, "Helvetica Neue", sans-serif;margin:0 0 16px}.mat-h4,.mat-subheading-1,.mat-typography h4{font:400 15px/24px Roboto, "Helvetica Neue", sans-serif;margin:0 0 16px}.mat-h5,.mat-typography h5{font:400 11.62px/20px Roboto, "Helvetica Neue", sans-serif;margin:0 0 12px}.mat-h6,.mat-typography h6{font:400 9.38px/20px Roboto, "Helvetica Neue", sans-serif;margin:0 0 12px}.mat-body-strong,.mat-body-2{font:500 14px/24px Roboto, "Helvetica Neue", sans-serif}.mat-body,.mat-body-1,.mat-typography{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif}.mat-body p,.mat-body-1 p,.mat-typography p{margin:0 0 12px}.mat-small,.mat-caption{font:400 12px/20px Roboto, "Helvetica Neue", sans-serif}.mat-display-4,.mat-typography .mat-display-4{font:300 112px/112px Roboto, "Helvetica Neue", sans-serif;margin:0 0 56px;letter-spacing:-0.05em}.mat-display-3,.mat-typography .mat-display-3{font:400 56px/56px Roboto, "Helvetica Neue", sans-serif;margin:0 0 64px;letter-spacing:-0.02em}.mat-display-2,.mat-typography .mat-display-2{font:400 45px/48px Roboto, "Helvetica Neue", sans-serif;margin:0 0 64px;letter-spacing:-0.005em}.mat-display-1,.mat-typography .mat-display-1{font:400 34px/40px Roboto, "Helvetica Neue", sans-serif;margin:0 0 64px}.mat-bottom-sheet-container{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif}.mat-button,.mat-raised-button,.mat-icon-button,.mat-stroked-button,.mat-flat-button,.mat-fab,.mat-mini-fab{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-button-toggle{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-card{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-card-title{font-size:24px;font-weight:500}.mat-card-header .mat-card-title{font-size:20px}.mat-card-subtitle,.mat-card-content{font-size:14px}.mat-checkbox{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-checkbox-layout .mat-checkbox-label{line-height:24px}.mat-chip{font-size:14px;font-weight:500}.mat-chip .mat-chip-trailing-icon.mat-icon,.mat-chip .mat-chip-remove.mat-icon{font-size:18px}.mat-table{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-header-cell{font-size:12px;font-weight:500}.mat-cell,.mat-footer-cell{font-size:14px}.mat-calendar{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-calendar-body{font-size:13px}.mat-calendar-body-label,.mat-calendar-period-button{font-size:14px;font-weight:500}.mat-calendar-table-header th{font-size:11px;font-weight:400}.mat-dialog-title{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif}.mat-expansion-panel-header{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:15px;font-weight:400}.mat-expansion-panel-content{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif}.mat-form-field{font-size:inherit;font-weight:400;line-height:1.125;font-family:Roboto, "Helvetica Neue", sans-serif}.mat-form-field-wrapper{padding-bottom:1.34375em}.mat-form-field-prefix .mat-icon,.mat-form-field-suffix .mat-icon{font-size:150%;line-height:1.125}.mat-form-field-prefix .mat-icon-button,.mat-form-field-suffix .mat-icon-button{height:1.5em;width:1.5em}.mat-form-field-prefix .mat-icon-button .mat-icon,.mat-form-field-suffix .mat-icon-button .mat-icon{height:1.125em;line-height:1.125}.mat-form-field-infix{padding:.5em 0;border-top:.84375em solid transparent}.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,.mat-form-field-can-float .mat-input-server:focus+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.34375em) scale(.75);width:133.33333%}.mat-form-field-can-float .mat-input-server[label]:not(:label-shown)+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.34374em) scale(.75);width:133.33334%}.mat-form-field-label-wrapper{top:-.84375em;padding-top:.84375em}.mat-form-field-label{top:1.34375em}.mat-form-field-underline{bottom:1.34375em}.mat-form-field-subscript-wrapper{font-size:75%;margin-top:.66667em;top:calc(100% - 1.79167em)}.mat-form-field-appearance-legacy .mat-form-field-wrapper{padding-bottom:1.25em}.mat-form-field-appearance-legacy .mat-form-field-infix{padding:.4375em 0}.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server:focus+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.28125em) scale(.75) perspective(100px) translateZ(0.001px);-ms-transform:translateY(-1.28125em) scale(.75);width:133.33333%}.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-form-field-autofill-control:-webkit-autofill+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.28125em) scale(.75) perspective(100px) translateZ(0.00101px);-ms-transform:translateY(-1.28124em) scale(.75);width:133.33334%}.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server[label]:not(:label-shown)+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.28125em) scale(.75) perspective(100px) translateZ(0.00102px);-ms-transform:translateY(-1.28123em) scale(.75);width:133.33335%}.mat-form-field-appearance-legacy .mat-form-field-label{top:1.28125em}.mat-form-field-appearance-legacy .mat-form-field-underline{bottom:1.25em}.mat-form-field-appearance-legacy .mat-form-field-subscript-wrapper{margin-top:.54167em;top:calc(100% - 1.66667em)}@media print{.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server:focus+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.28122em) scale(.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-form-field-autofill-control:-webkit-autofill+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.28121em) scale(.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server[label]:not(:label-shown)+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.2812em) scale(.75)}}.mat-form-field-appearance-fill .mat-form-field-infix{padding:.25em 0 .75em 0}.mat-form-field-appearance-fill .mat-form-field-label{top:1.09375em;margin-top:-.5em}.mat-form-field-appearance-fill.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,.mat-form-field-appearance-fill.mat-form-field-can-float .mat-input-server:focus+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-.59375em) scale(.75);width:133.33333%}.mat-form-field-appearance-fill.mat-form-field-can-float .mat-input-server[label]:not(:label-shown)+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-.59374em) scale(.75);width:133.33334%}.mat-form-field-appearance-outline .mat-form-field-infix{padding:1em 0 1em 0}.mat-form-field-appearance-outline .mat-form-field-label{top:1.84375em;margin-top:-.25em}.mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,.mat-form-field-appearance-outline.mat-form-field-can-float .mat-input-server:focus+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.59375em) scale(.75);width:133.33333%}.mat-form-field-appearance-outline.mat-form-field-can-float .mat-input-server[label]:not(:label-shown)+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.59374em) scale(.75);width:133.33334%}.mat-grid-tile-header,.mat-grid-tile-footer{font-size:14px}.mat-grid-tile-header .mat-line,.mat-grid-tile-footer .mat-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-grid-tile-header .mat-line:nth-child(n+2),.mat-grid-tile-footer .mat-line:nth-child(n+2){font-size:12px}input.mat-input-element{margin-top:-.0625em}.mat-menu-item{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:400}.mat-paginator,.mat-paginator-page-size .mat-select-trigger{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px}.mat-radio-button{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-select{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-select-trigger{height:1.125em}.mat-slide-toggle-content{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-slider-thumb-label-text{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px;font-weight:500}.mat-stepper-vertical,.mat-stepper-horizontal{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-step-label{font-size:14px;font-weight:400}.mat-step-sub-label-error{font-weight:normal}.mat-step-label-error{font-size:14px}.mat-step-label-selected{font-size:14px;font-weight:500}.mat-tab-group{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-tab-label,.mat-tab-link{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-toolbar,.mat-toolbar h1,.mat-toolbar h2,.mat-toolbar h3,.mat-toolbar h4,.mat-toolbar h5,.mat-toolbar h6{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;margin:0}.mat-tooltip{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:10px;padding-top:6px;padding-bottom:6px}.mat-tooltip-handset{font-size:14px;padding-top:8px;padding-bottom:8px}.mat-list-item{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-list-option{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-list-base .mat-list-item{font-size:16px}.mat-list-base .mat-list-item .mat-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base .mat-list-item .mat-line:nth-child(n+2){font-size:14px}.mat-list-base .mat-list-option{font-size:16px}.mat-list-base .mat-list-option .mat-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base .mat-list-option .mat-line:nth-child(n+2){font-size:14px}.mat-list-base .mat-subheader{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-list-base[dense] .mat-list-item{font-size:12px}.mat-list-base[dense] .mat-list-item .mat-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense] .mat-list-item .mat-line:nth-child(n+2){font-size:12px}.mat-list-base[dense] .mat-list-option{font-size:12px}.mat-list-base[dense] .mat-list-option .mat-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense] .mat-list-option .mat-line:nth-child(n+2){font-size:12px}.mat-list-base[dense] .mat-subheader{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px;font-weight:500}.mat-option{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:16px}.mat-optgroup-label{font:500 14px/24px Roboto, "Helvetica Neue", sans-serif}.mat-simple-snackbar{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px}.mat-simple-snackbar-action{line-height:1;font-family:inherit;font-size:inherit;font-weight:500}.mat-tree{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-tree-node,.mat-nested-tree-node{font-weight:400;font-size:14px}.mat-ripple{overflow:hidden;position:relative}.mat-ripple.mat-ripple-unbounded{overflow:visible}.mat-ripple-element{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0ms cubic-bezier(0, 0, 0.2, 1);transform:scale(0)}@media (-ms-high-contrast: active){.mat-ripple-element{display:none}}.cdk-visually-hidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;outline:0;-webkit-appearance:none;-moz-appearance:none}.cdk-overlay-container,.cdk-global-overlay-wrapper{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed;z-index:1000}.cdk-overlay-container:empty{display:none}.cdk-global-overlay-wrapper{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop{position:absolute;top:0;bottom:0;left:0;right:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:transparent;transition:opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:1}@media screen and (-ms-high-contrast: active){.cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:0.6}}.cdk-overlay-dark-backdrop{background:rgba(0,0,0,0.32)}.cdk-overlay-transparent-backdrop,.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing{opacity:0}.cdk-overlay-connected-position-bounding-box{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}@keyframes cdk-text-field-autofill-start{/*!*/}@keyframes cdk-text-field-autofill-end{/*!*/}.cdk-text-field-autofill-monitored:-webkit-autofill{animation-name:cdk-text-field-autofill-start}.cdk-text-field-autofill-monitored:not(:-webkit-autofill){animation-name:cdk-text-field-autofill-end}textarea.cdk-textarea-autosize{resize:none}textarea.cdk-textarea-autosize-measuring{height:auto !important;overflow:hidden !important;padding:2px 0 !important;box-sizing:content-box !important}.mat-ripple-element{background-color:rgba(0,0,0,0.1)}.mat-option{color:rgba(0,0,0,0.87)}.mat-option:hover:not(.mat-option-disabled),.mat-option:focus:not(.mat-option-disabled){background:rgba(0,0,0,0.04)}.mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){background:rgba(0,0,0,0.04)}.mat-option.mat-active{background:rgba(0,0,0,0.04);color:rgba(0,0,0,0.87)}.mat-option.mat-option-disabled{color:rgba(0,0,0,0.38)}.mat-primary .mat-option.mat-selected:not(.mat-option-disabled){color:#135f7f}.mat-accent .mat-option.mat-selected:not(.mat-option-disabled){color:#006841}.mat-warn .mat-option.mat-selected:not(.mat-option-disabled){color:#8e3e52}.mat-optgroup-label{color:rgba(0,0,0,0.54)}.mat-optgroup-disabled .mat-optgroup-label{color:rgba(0,0,0,0.38)}.mat-pseudo-checkbox{color:rgba(0,0,0,0.54)}.mat-pseudo-checkbox::after{color:#fafafa}.mat-pseudo-checkbox-checked,.mat-pseudo-checkbox-indeterminate,.mat-accent .mat-pseudo-checkbox-checked,.mat-accent .mat-pseudo-checkbox-indeterminate{background:#006841}.mat-primary .mat-pseudo-checkbox-checked,.mat-primary .mat-pseudo-checkbox-indeterminate{background:#135f7f}.mat-warn .mat-pseudo-checkbox-checked,.mat-warn .mat-pseudo-checkbox-indeterminate{background:#8e3e52}.mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled,.mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled{background:#b0b0b0}.mat-elevation-z0{box-shadow:0px 0px 0px 0px rgba(0,0,0,0.2),0px 0px 0px 0px rgba(0,0,0,0.14),0px 0px 0px 0px rgba(0,0,0,0.12)}.mat-elevation-z1{box-shadow:0px 2px 1px -1px rgba(0,0,0,0.2),0px 1px 1px 0px rgba(0,0,0,0.14),0px 1px 3px 0px rgba(0,0,0,0.12)}.mat-elevation-z2{box-shadow:0px 3px 1px -2px rgba(0,0,0,0.2),0px 2px 2px 0px rgba(0,0,0,0.14),0px 1px 5px 0px rgba(0,0,0,0.12)}.mat-elevation-z3{box-shadow:0px 3px 3px -2px rgba(0,0,0,0.2),0px 3px 4px 0px rgba(0,0,0,0.14),0px 1px 8px 0px rgba(0,0,0,0.12)}.mat-elevation-z4{box-shadow:0px 2px 4px -1px rgba(0,0,0,0.2),0px 4px 5px 0px rgba(0,0,0,0.14),0px 1px 10px 0px rgba(0,0,0,0.12)}.mat-elevation-z5{box-shadow:0px 3px 5px -1px rgba(0,0,0,0.2),0px 5px 8px 0px rgba(0,0,0,0.14),0px 1px 14px 0px rgba(0,0,0,0.12)}.mat-elevation-z6{box-shadow:0px 3px 5px -1px rgba(0,0,0,0.2),0px 6px 10px 0px rgba(0,0,0,0.14),0px 1px 18px 0px rgba(0,0,0,0.12)}.mat-elevation-z7{box-shadow:0px 4px 5px -2px rgba(0,0,0,0.2),0px 7px 10px 1px rgba(0,0,0,0.14),0px 2px 16px 1px rgba(0,0,0,0.12)}.mat-elevation-z8{box-shadow:0px 5px 5px -3px rgba(0,0,0,0.2),0px 8px 10px 1px rgba(0,0,0,0.14),0px 3px 14px 2px rgba(0,0,0,0.12)}.mat-elevation-z9{box-shadow:0px 5px 6px -3px rgba(0,0,0,0.2),0px 9px 12px 1px rgba(0,0,0,0.14),0px 3px 16px 2px rgba(0,0,0,0.12)}.mat-elevation-z10{box-shadow:0px 6px 6px -3px rgba(0,0,0,0.2),0px 10px 14px 1px rgba(0,0,0,0.14),0px 4px 18px 3px rgba(0,0,0,0.12)}.mat-elevation-z11{box-shadow:0px 6px 7px -4px rgba(0,0,0,0.2),0px 11px 15px 1px rgba(0,0,0,0.14),0px 4px 20px 3px rgba(0,0,0,0.12)}.mat-elevation-z12{box-shadow:0px 7px 8px -4px rgba(0,0,0,0.2),0px 12px 17px 2px rgba(0,0,0,0.14),0px 5px 22px 4px rgba(0,0,0,0.12)}.mat-elevation-z13{box-shadow:0px 7px 8px -4px rgba(0,0,0,0.2),0px 13px 19px 2px rgba(0,0,0,0.14),0px 5px 24px 4px rgba(0,0,0,0.12)}.mat-elevation-z14{box-shadow:0px 7px 9px -4px rgba(0,0,0,0.2),0px 14px 21px 2px rgba(0,0,0,0.14),0px 5px 26px 4px rgba(0,0,0,0.12)}.mat-elevation-z15{box-shadow:0px 8px 9px -5px rgba(0,0,0,0.2),0px 15px 22px 2px rgba(0,0,0,0.14),0px 6px 28px 5px rgba(0,0,0,0.12)}.mat-elevation-z16{box-shadow:0px 8px 10px -5px rgba(0,0,0,0.2),0px 16px 24px 2px rgba(0,0,0,0.14),0px 6px 30px 5px rgba(0,0,0,0.12)}.mat-elevation-z17{box-shadow:0px 8px 11px -5px rgba(0,0,0,0.2),0px 17px 26px 2px rgba(0,0,0,0.14),0px 6px 32px 5px rgba(0,0,0,0.12)}.mat-elevation-z18{box-shadow:0px 9px 11px -5px rgba(0,0,0,0.2),0px 18px 28px 2px rgba(0,0,0,0.14),0px 7px 34px 6px rgba(0,0,0,0.12)}.mat-elevation-z19{box-shadow:0px 9px 12px -6px rgba(0,0,0,0.2),0px 19px 29px 2px rgba(0,0,0,0.14),0px 7px 36px 6px rgba(0,0,0,0.12)}.mat-elevation-z20{box-shadow:0px 10px 13px -6px rgba(0,0,0,0.2),0px 20px 31px 3px rgba(0,0,0,0.14),0px 8px 38px 7px rgba(0,0,0,0.12)}.mat-elevation-z21{box-shadow:0px 10px 13px -6px rgba(0,0,0,0.2),0px 21px 33px 3px rgba(0,0,0,0.14),0px 8px 40px 7px rgba(0,0,0,0.12)}.mat-elevation-z22{box-shadow:0px 10px 14px -6px rgba(0,0,0,0.2),0px 22px 35px 3px rgba(0,0,0,0.14),0px 8px 42px 7px rgba(0,0,0,0.12)}.mat-elevation-z23{box-shadow:0px 11px 14px -7px rgba(0,0,0,0.2),0px 23px 36px 3px rgba(0,0,0,0.14),0px 9px 44px 8px rgba(0,0,0,0.12)}.mat-elevation-z24{box-shadow:0px 11px 15px -7px rgba(0,0,0,0.2),0px 24px 38px 3px rgba(0,0,0,0.14),0px 9px 46px 8px rgba(0,0,0,0.12)}.mat-app-background{background-color:#fafafa;color:rgba(0,0,0,0.87)}.mat-theme-loaded-marker{display:none}.mat-autocomplete-panel{background:#fff;color:rgba(0,0,0,0.87)}.mat-autocomplete-panel:not([class*='mat-elevation-z']){box-shadow:0px 2px 4px -1px rgba(0,0,0,0.2),0px 4px 5px 0px rgba(0,0,0,0.14),0px 1px 10px 0px rgba(0,0,0,0.12)}.mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover){background:#fff}.mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover):not(.mat-option-disabled){color:rgba(0,0,0,0.87)}.mat-badge-content{color:#fff;background:#135f7f}@media (-ms-high-contrast: active){.mat-badge-content{outline:solid 1px;border-radius:0}}.mat-badge-accent .mat-badge-content{background:#006841;color:#fff}.mat-badge-warn .mat-badge-content{color:#fff;background:#8e3e52}.mat-badge{position:relative}.mat-badge-hidden .mat-badge-content{display:none}.mat-badge-disabled .mat-badge-content{background:#b9b9b9;color:rgba(0,0,0,0.38)}.mat-badge-content{position:absolute;text-align:center;display:inline-block;border-radius:50%;transition:transform 200ms ease-in-out;transform:scale(0.6);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;pointer-events:none}.mat-badge-content.mat-badge-active{transform:none}.mat-badge-small .mat-badge-content{width:16px;height:16px;line-height:16px}.mat-badge-small.mat-badge-above .mat-badge-content{top:-8px}.mat-badge-small.mat-badge-below .mat-badge-content{bottom:-8px}.mat-badge-small.mat-badge-before .mat-badge-content{left:-16px}[dir='rtl'] .mat-badge-small.mat-badge-before .mat-badge-content{left:auto;right:-16px}.mat-badge-small.mat-badge-after .mat-badge-content{right:-16px}[dir='rtl'] .mat-badge-small.mat-badge-after .mat-badge-content{right:auto;left:-16px}.mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-8px}[dir='rtl'] .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-8px}.mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-8px}[dir='rtl'] .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-8px}.mat-badge-medium .mat-badge-content{width:22px;height:22px;line-height:22px}.mat-badge-medium.mat-badge-above .mat-badge-content{top:-11px}.mat-badge-medium.mat-badge-below .mat-badge-content{bottom:-11px}.mat-badge-medium.mat-badge-before .mat-badge-content{left:-22px}[dir='rtl'] .mat-badge-medium.mat-badge-before .mat-badge-content{left:auto;right:-22px}.mat-badge-medium.mat-badge-after .mat-badge-content{right:-22px}[dir='rtl'] .mat-badge-medium.mat-badge-after .mat-badge-content{right:auto;left:-22px}.mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-11px}[dir='rtl'] .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-11px}.mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-11px}[dir='rtl'] .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-11px}.mat-badge-large .mat-badge-content{width:28px;height:28px;line-height:28px}.mat-badge-large.mat-badge-above .mat-badge-content{top:-14px}.mat-badge-large.mat-badge-below .mat-badge-content{bottom:-14px}.mat-badge-large.mat-badge-before .mat-badge-content{left:-28px}[dir='rtl'] .mat-badge-large.mat-badge-before .mat-badge-content{left:auto;right:-28px}.mat-badge-large.mat-badge-after .mat-badge-content{right:-28px}[dir='rtl'] .mat-badge-large.mat-badge-after .mat-badge-content{right:auto;left:-28px}.mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-14px}[dir='rtl'] .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-14px}.mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-14px}[dir='rtl'] .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-14px}.mat-bottom-sheet-container{box-shadow:0px 8px 10px -5px rgba(0,0,0,0.2),0px 16px 24px 2px rgba(0,0,0,0.14),0px 6px 30px 5px rgba(0,0,0,0.12);background:#fff;color:rgba(0,0,0,0.87)}.mat-button,.mat-icon-button,.mat-stroked-button{color:inherit;background:transparent}.mat-button.mat-primary,.mat-icon-button.mat-primary,.mat-stroked-button.mat-primary{color:#135f7f}.mat-button.mat-accent,.mat-icon-button.mat-accent,.mat-stroked-button.mat-accent{color:#006841}.mat-button.mat-warn,.mat-icon-button.mat-warn,.mat-stroked-button.mat-warn{color:#8e3e52}.mat-button.mat-primary[disabled],.mat-button.mat-accent[disabled],.mat-button.mat-warn[disabled],.mat-button[disabled][disabled],.mat-icon-button.mat-primary[disabled],.mat-icon-button.mat-accent[disabled],.mat-icon-button.mat-warn[disabled],.mat-icon-button[disabled][disabled],.mat-stroked-button.mat-primary[disabled],.mat-stroked-button.mat-accent[disabled],.mat-stroked-button.mat-warn[disabled],.mat-stroked-button[disabled][disabled]{color:rgba(0,0,0,0.26)}.mat-button.mat-primary .mat-button-focus-overlay,.mat-icon-button.mat-primary .mat-button-focus-overlay,.mat-stroked-button.mat-primary .mat-button-focus-overlay{background-color:#135f7f}.mat-button.mat-accent .mat-button-focus-overlay,.mat-icon-button.mat-accent .mat-button-focus-overlay,.mat-stroked-button.mat-accent .mat-button-focus-overlay{background-color:#006841}.mat-button.mat-warn .mat-button-focus-overlay,.mat-icon-button.mat-warn .mat-button-focus-overlay,.mat-stroked-button.mat-warn .mat-button-focus-overlay{background-color:#8e3e52}.mat-button[disabled] .mat-button-focus-overlay,.mat-icon-button[disabled] .mat-button-focus-overlay,.mat-stroked-button[disabled] .mat-button-focus-overlay{background-color:transparent}.mat-button .mat-ripple-element,.mat-icon-button .mat-ripple-element,.mat-stroked-button .mat-ripple-element{opacity:.1;background-color:currentColor}.mat-button-focus-overlay{background:#000}.mat-stroked-button:not([disabled]){border-color:rgba(0,0,0,0.12)}.mat-flat-button,.mat-raised-button,.mat-fab,.mat-mini-fab{color:rgba(0,0,0,0.87);background-color:#fff}.mat-flat-button.mat-primary,.mat-raised-button.mat-primary,.mat-fab.mat-primary,.mat-mini-fab.mat-primary{color:#fff}.mat-flat-button.mat-accent,.mat-raised-button.mat-accent,.mat-fab.mat-accent,.mat-mini-fab.mat-accent{color:#fff}.mat-flat-button.mat-warn,.mat-raised-button.mat-warn,.mat-fab.mat-warn,.mat-mini-fab.mat-warn{color:#fff}.mat-flat-button.mat-primary[disabled],.mat-flat-button.mat-accent[disabled],.mat-flat-button.mat-warn[disabled],.mat-flat-button[disabled][disabled],.mat-raised-button.mat-primary[disabled],.mat-raised-button.mat-accent[disabled],.mat-raised-button.mat-warn[disabled],.mat-raised-button[disabled][disabled],.mat-fab.mat-primary[disabled],.mat-fab.mat-accent[disabled],.mat-fab.mat-warn[disabled],.mat-fab[disabled][disabled],.mat-mini-fab.mat-primary[disabled],.mat-mini-fab.mat-accent[disabled],.mat-mini-fab.mat-warn[disabled],.mat-mini-fab[disabled][disabled]{color:rgba(0,0,0,0.26)}.mat-flat-button.mat-primary,.mat-raised-button.mat-primary,.mat-fab.mat-primary,.mat-mini-fab.mat-primary{background-color:#135f7f}.mat-flat-button.mat-accent,.mat-raised-button.mat-accent,.mat-fab.mat-accent,.mat-mini-fab.mat-accent{background-color:#006841}.mat-flat-button.mat-warn,.mat-raised-button.mat-warn,.mat-fab.mat-warn,.mat-mini-fab.mat-warn{background-color:#8e3e52}.mat-flat-button.mat-primary[disabled],.mat-flat-button.mat-accent[disabled],.mat-flat-button.mat-warn[disabled],.mat-flat-button[disabled][disabled],.mat-raised-button.mat-primary[disabled],.mat-raised-button.mat-accent[disabled],.mat-raised-button.mat-warn[disabled],.mat-raised-button[disabled][disabled],.mat-fab.mat-primary[disabled],.mat-fab.mat-accent[disabled],.mat-fab.mat-warn[disabled],.mat-fab[disabled][disabled],.mat-mini-fab.mat-primary[disabled],.mat-mini-fab.mat-accent[disabled],.mat-mini-fab.mat-warn[disabled],.mat-mini-fab[disabled][disabled]{background-color:rgba(0,0,0,0.12)}.mat-flat-button.mat-primary .mat-ripple-element,.mat-raised-button.mat-primary .mat-ripple-element,.mat-fab.mat-primary .mat-ripple-element,.mat-mini-fab.mat-primary .mat-ripple-element{background-color:rgba(255,255,255,0.1)}.mat-flat-button.mat-accent .mat-ripple-element,.mat-raised-button.mat-accent .mat-ripple-element,.mat-fab.mat-accent .mat-ripple-element,.mat-mini-fab.mat-accent .mat-ripple-element{background-color:rgba(255,255,255,0.1)}.mat-flat-button.mat-warn .mat-ripple-element,.mat-raised-button.mat-warn .mat-ripple-element,.mat-fab.mat-warn .mat-ripple-element,.mat-mini-fab.mat-warn .mat-ripple-element{background-color:rgba(255,255,255,0.1)}.mat-stroked-button:not([class*='mat-elevation-z']),.mat-flat-button:not([class*='mat-elevation-z']){box-shadow:0px 0px 0px 0px rgba(0,0,0,0.2),0px 0px 0px 0px rgba(0,0,0,0.14),0px 0px 0px 0px rgba(0,0,0,0.12)}.mat-raised-button:not([class*='mat-elevation-z']){box-shadow:0px 3px 1px -2px rgba(0,0,0,0.2),0px 2px 2px 0px rgba(0,0,0,0.14),0px 1px 5px 0px rgba(0,0,0,0.12)}.mat-raised-button:not([disabled]):active:not([class*='mat-elevation-z']){box-shadow:0px 5px 5px -3px rgba(0,0,0,0.2),0px 8px 10px 1px rgba(0,0,0,0.14),0px 3px 14px 2px rgba(0,0,0,0.12)}.mat-raised-button[disabled]:not([class*='mat-elevation-z']){box-shadow:0px 0px 0px 0px rgba(0,0,0,0.2),0px 0px 0px 0px rgba(0,0,0,0.14),0px 0px 0px 0px rgba(0,0,0,0.12)}.mat-fab:not([class*='mat-elevation-z']),.mat-mini-fab:not([class*='mat-elevation-z']){box-shadow:0px 3px 5px -1px rgba(0,0,0,0.2),0px 6px 10px 0px rgba(0,0,0,0.14),0px 1px 18px 0px rgba(0,0,0,0.12)}.mat-fab:not([disabled]):active:not([class*='mat-elevation-z']),.mat-mini-fab:not([disabled]):active:not([class*='mat-elevation-z']){box-shadow:0px 7px 8px -4px rgba(0,0,0,0.2),0px 12px 17px 2px rgba(0,0,0,0.14),0px 5px 22px 4px rgba(0,0,0,0.12)}.mat-fab[disabled]:not([class*='mat-elevation-z']),.mat-mini-fab[disabled]:not([class*='mat-elevation-z']){box-shadow:0px 0px 0px 0px rgba(0,0,0,0.2),0px 0px 0px 0px rgba(0,0,0,0.14),0px 0px 0px 0px rgba(0,0,0,0.12)}.mat-button-toggle-standalone,.mat-button-toggle-group{box-shadow:0px 3px 1px -2px rgba(0,0,0,0.2),0px 2px 2px 0px rgba(0,0,0,0.14),0px 1px 5px 0px rgba(0,0,0,0.12)}.mat-button-toggle-standalone.mat-button-toggle-appearance-standard,.mat-button-toggle-group-appearance-standard{box-shadow:none}.mat-button-toggle{color:rgba(0,0,0,0.38)}.mat-button-toggle .mat-button-toggle-focus-overlay{background-color:rgba(0,0,0,0.12)}.mat-button-toggle-appearance-standard{color:rgba(0,0,0,0.87);background:#fff}.mat-button-toggle-appearance-standard .mat-button-toggle-focus-overlay{background-color:#000}.mat-button-toggle-group-appearance-standard .mat-button-toggle+.mat-button-toggle{border-left:solid 1px rgba(0,0,0,0.12)}[dir='rtl'] .mat-button-toggle-group-appearance-standard .mat-button-toggle+.mat-button-toggle{border-left:none;border-right:solid 1px rgba(0,0,0,0.12)}.mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle+.mat-button-toggle{border-left:none;border-right:none;border-top:solid 1px rgba(0,0,0,0.12)}.mat-button-toggle-checked{background-color:#e0e0e0;color:rgba(0,0,0,0.54)}.mat-button-toggle-checked.mat-button-toggle-appearance-standard{color:rgba(0,0,0,0.87)}.mat-button-toggle-disabled{color:rgba(0,0,0,0.26);background-color:#eee}.mat-button-toggle-disabled.mat-button-toggle-appearance-standard{background:#fff}.mat-button-toggle-disabled.mat-button-toggle-checked{background-color:#bdbdbd}.mat-button-toggle-standalone.mat-button-toggle-appearance-standard,.mat-button-toggle-group-appearance-standard{border:solid 1px rgba(0,0,0,0.12)}.mat-card{background:#fff;color:rgba(0,0,0,0.87)}.mat-card:not([class*='mat-elevation-z']){box-shadow:0px 2px 1px -1px rgba(0,0,0,0.2),0px 1px 1px 0px rgba(0,0,0,0.14),0px 1px 3px 0px rgba(0,0,0,0.12)}.mat-card.mat-card-flat:not([class*='mat-elevation-z']){box-shadow:0px 0px 0px 0px rgba(0,0,0,0.2),0px 0px 0px 0px rgba(0,0,0,0.14),0px 0px 0px 0px rgba(0,0,0,0.12)}.mat-card-subtitle{color:rgba(0,0,0,0.54)}.mat-checkbox-frame{border-color:rgba(0,0,0,0.54)}.mat-checkbox-checkmark{fill:#fafafa}.mat-checkbox-checkmark-path{stroke:#fafafa !important}@media (-ms-high-contrast: black-on-white){.mat-checkbox-checkmark-path{stroke:#000 !important}}.mat-checkbox-mixedmark{background-color:#fafafa}.mat-checkbox-indeterminate.mat-primary .mat-checkbox-background,.mat-checkbox-checked.mat-primary .mat-checkbox-background{background-color:#135f7f}.mat-checkbox-indeterminate.mat-accent .mat-checkbox-background,.mat-checkbox-checked.mat-accent .mat-checkbox-background{background-color:#006841}.mat-checkbox-indeterminate.mat-warn .mat-checkbox-background,.mat-checkbox-checked.mat-warn .mat-checkbox-background{background-color:#8e3e52}.mat-checkbox-disabled.mat-checkbox-checked .mat-checkbox-background,.mat-checkbox-disabled.mat-checkbox-indeterminate .mat-checkbox-background{background-color:#b0b0b0}.mat-checkbox-disabled:not(.mat-checkbox-checked) .mat-checkbox-frame{border-color:#b0b0b0}.mat-checkbox-disabled .mat-checkbox-label{color:rgba(0,0,0,0.54)}@media (-ms-high-contrast: active){.mat-checkbox-disabled{opacity:0.5}}@media (-ms-high-contrast: active){.mat-checkbox-background{background:none}}.mat-checkbox:not(.mat-checkbox-disabled).mat-primary .mat-checkbox-ripple .mat-ripple-element{background-color:#135f7f}.mat-checkbox:not(.mat-checkbox-disabled).mat-accent .mat-checkbox-ripple .mat-ripple-element{background-color:#006841}.mat-checkbox:not(.mat-checkbox-disabled).mat-warn .mat-checkbox-ripple .mat-ripple-element{background-color:#8e3e52}.mat-chip.mat-standard-chip{background-color:#e0e0e0;color:rgba(0,0,0,0.87)}.mat-chip.mat-standard-chip .mat-chip-remove{color:rgba(0,0,0,0.87);opacity:0.4}.mat-chip.mat-standard-chip:not(.mat-chip-disabled):active{box-shadow:0px 3px 3px -2px rgba(0,0,0,0.2),0px 3px 4px 0px rgba(0,0,0,0.14),0px 1px 8px 0px rgba(0,0,0,0.12)}.mat-chip.mat-standard-chip:not(.mat-chip-disabled) .mat-chip-remove:hover{opacity:0.54}.mat-chip.mat-standard-chip.mat-chip-disabled{opacity:0.4}.mat-chip.mat-standard-chip::after{background:#000}.mat-chip.mat-standard-chip.mat-chip-selected.mat-primary{background-color:#135f7f;color:#fff}.mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-chip-remove{color:#fff;opacity:0.4}.mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-ripple-element{background:rgba(255,255,255,0.1)}.mat-chip.mat-standard-chip.mat-chip-selected.mat-warn{background-color:#8e3e52;color:#fff}.mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-chip-remove{color:#fff;opacity:0.4}.mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-ripple-element{background:rgba(255,255,255,0.1)}.mat-chip.mat-standard-chip.mat-chip-selected.mat-accent{background-color:#006841;color:#fff}.mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-chip-remove{color:#fff;opacity:0.4}.mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-ripple-element{background:rgba(255,255,255,0.1)}.mat-table{background:#fff}.mat-table thead,.mat-table tbody,.mat-table tfoot,mat-header-row,mat-row,mat-footer-row,[mat-header-row],[mat-row],[mat-footer-row],.mat-table-sticky{background:inherit}mat-row,mat-header-row,mat-footer-row,th.mat-header-cell,td.mat-cell,td.mat-footer-cell{border-bottom-color:rgba(0,0,0,0.12)}.mat-header-cell{color:rgba(0,0,0,0.54)}.mat-cell,.mat-footer-cell{color:rgba(0,0,0,0.87)}.mat-calendar-arrow{border-top-color:rgba(0,0,0,0.54)}.mat-datepicker-toggle,.mat-datepicker-content .mat-calendar-next-button,.mat-datepicker-content .mat-calendar-previous-button{color:rgba(0,0,0,0.54)}.mat-calendar-table-header{color:rgba(0,0,0,0.38)}.mat-calendar-table-header-divider::after{background:rgba(0,0,0,0.12)}.mat-calendar-body-label{color:rgba(0,0,0,0.54)}.mat-calendar-body-cell-content{color:rgba(0,0,0,0.87);border-color:transparent}.mat-calendar-body-disabled>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected){color:rgba(0,0,0,0.38)}.mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected),.cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected),.cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected){background-color:rgba(0,0,0,0.04)}.mat-calendar-body-today:not(.mat-calendar-body-selected){border-color:rgba(0,0,0,0.38)}.mat-calendar-body-disabled>.mat-calendar-body-today:not(.mat-calendar-body-selected){border-color:rgba(0,0,0,0.18)}.mat-calendar-body-selected{background-color:#135f7f;color:#fff}.mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:rgba(19,95,127,0.4)}.mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #fff}.mat-datepicker-content{box-shadow:0px 2px 4px -1px rgba(0,0,0,0.2),0px 4px 5px 0px rgba(0,0,0,0.14),0px 1px 10px 0px rgba(0,0,0,0.12);background-color:#fff;color:rgba(0,0,0,0.87)}.mat-datepicker-content.mat-accent .mat-calendar-body-selected{background-color:#006841;color:#fff}.mat-datepicker-content.mat-accent .mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:rgba(0,104,65,0.4)}.mat-datepicker-content.mat-accent .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #fff}.mat-datepicker-content.mat-warn .mat-calendar-body-selected{background-color:#8e3e52;color:#fff}.mat-datepicker-content.mat-warn .mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:rgba(142,62,82,0.4)}.mat-datepicker-content.mat-warn .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #fff}.mat-datepicker-content-touch{box-shadow:0px 0px 0px 0px rgba(0,0,0,0.2),0px 0px 0px 0px rgba(0,0,0,0.14),0px 0px 0px 0px rgba(0,0,0,0.12)}.mat-datepicker-toggle-active{color:#135f7f}.mat-datepicker-toggle-active.mat-accent{color:#006841}.mat-datepicker-toggle-active.mat-warn{color:#8e3e52}.mat-dialog-container{box-shadow:0px 11px 15px -7px rgba(0,0,0,0.2),0px 24px 38px 3px rgba(0,0,0,0.14),0px 9px 46px 8px rgba(0,0,0,0.12);background:#fff;color:rgba(0,0,0,0.87)}.mat-divider{border-top-color:rgba(0,0,0,0.12)}.mat-divider-vertical{border-right-color:rgba(0,0,0,0.12)}.mat-expansion-panel{background:#fff;color:rgba(0,0,0,0.87)}.mat-expansion-panel:not([class*='mat-elevation-z']){box-shadow:0px 3px 1px -2px rgba(0,0,0,0.2),0px 2px 2px 0px rgba(0,0,0,0.14),0px 1px 5px 0px rgba(0,0,0,0.12)}.mat-action-row{border-top-color:rgba(0,0,0,0.12)}.mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled='true']).cdk-keyboard-focused,.mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled='true']).cdk-program-focused,.mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled='true']):hover{background:rgba(0,0,0,0.04)}@media (hover: none){.mat-expansion-panel:not(.mat-expanded):not([aria-disabled='true']) .mat-expansion-panel-header:hover{background:#fff}}.mat-expansion-panel-header-title{color:rgba(0,0,0,0.87)}.mat-expansion-panel-header-description,.mat-expansion-indicator::after{color:rgba(0,0,0,0.54)}.mat-expansion-panel-header[aria-disabled='true']{color:rgba(0,0,0,0.26)}.mat-expansion-panel-header[aria-disabled='true'] .mat-expansion-panel-header-title,.mat-expansion-panel-header[aria-disabled='true'] .mat-expansion-panel-header-description{color:inherit}.mat-form-field-label{color:rgba(0,0,0,0.6)}.mat-hint{color:rgba(0,0,0,0.6)}.mat-form-field.mat-focused .mat-form-field-label{color:#135f7f}.mat-form-field.mat-focused .mat-form-field-label.mat-accent{color:#006841}.mat-form-field.mat-focused .mat-form-field-label.mat-warn{color:#8e3e52}.mat-focused .mat-form-field-required-marker{color:#006841}.mat-form-field-ripple{background-color:rgba(0,0,0,0.87)}.mat-form-field.mat-focused .mat-form-field-ripple{background-color:#135f7f}.mat-form-field.mat-focused .mat-form-field-ripple.mat-accent{background-color:#006841}.mat-form-field.mat-focused .mat-form-field-ripple.mat-warn{background-color:#8e3e52}.mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid) .mat-form-field-infix::after{color:#135f7f}.mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-accent .mat-form-field-infix::after{color:#006841}.mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-warn .mat-form-field-infix::after{color:#8e3e52}.mat-form-field.mat-form-field-invalid .mat-form-field-label{color:#8e3e52}.mat-form-field.mat-form-field-invalid .mat-form-field-label.mat-accent,.mat-form-field.mat-form-field-invalid .mat-form-field-label .mat-form-field-required-marker{color:#8e3e52}.mat-form-field.mat-form-field-invalid .mat-form-field-ripple,.mat-form-field.mat-form-field-invalid .mat-form-field-ripple.mat-accent{background-color:#8e3e52}.mat-error{color:#8e3e52}.mat-form-field-appearance-legacy .mat-form-field-label{color:rgba(0,0,0,0.54)}.mat-form-field-appearance-legacy .mat-hint{color:rgba(0,0,0,0.54)}.mat-form-field-appearance-legacy .mat-form-field-underline{background-color:rgba(0,0,0,0.42)}.mat-form-field-appearance-legacy.mat-form-field-disabled .mat-form-field-underline{background-image:linear-gradient(to right, rgba(0,0,0,0.42) 0%, rgba(0,0,0,0.42) 33%, transparent 0%);background-size:4px 100%;background-repeat:repeat-x}.mat-form-field-appearance-standard .mat-form-field-underline{background-color:rgba(0,0,0,0.42)}.mat-form-field-appearance-standard.mat-form-field-disabled .mat-form-field-underline{background-image:linear-gradient(to right, rgba(0,0,0,0.42) 0%, rgba(0,0,0,0.42) 33%, transparent 0%);background-size:4px 100%;background-repeat:repeat-x}.mat-form-field-appearance-fill .mat-form-field-flex{background-color:rgba(0,0,0,0.04)}.mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-flex{background-color:rgba(0,0,0,0.02)}.mat-form-field-appearance-fill .mat-form-field-underline::before{background-color:rgba(0,0,0,0.42)}.mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-label{color:rgba(0,0,0,0.38)}.mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-underline::before{background-color:transparent}.mat-form-field-appearance-outline .mat-form-field-outline{color:rgba(0,0,0,0.12)}.mat-form-field-appearance-outline .mat-form-field-outline-thick{color:rgba(0,0,0,0.87)}.mat-form-field-appearance-outline.mat-focused .mat-form-field-outline-thick{color:#135f7f}.mat-form-field-appearance-outline.mat-focused.mat-accent .mat-form-field-outline-thick{color:#006841}.mat-form-field-appearance-outline.mat-focused.mat-warn .mat-form-field-outline-thick{color:#8e3e52}.mat-form-field-appearance-outline.mat-form-field-invalid.mat-form-field-invalid .mat-form-field-outline-thick{color:#8e3e52}.mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-label{color:rgba(0,0,0,0.38)}.mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-outline{color:rgba(0,0,0,0.06)}.mat-icon.mat-primary{color:#135f7f}.mat-icon.mat-accent{color:#006841}.mat-icon.mat-warn{color:#8e3e52}.mat-form-field-type-mat-native-select .mat-form-field-infix::after{color:rgba(0,0,0,0.54)}.mat-input-element:disabled,.mat-form-field-type-mat-native-select.mat-form-field-disabled .mat-form-field-infix::after{color:rgba(0,0,0,0.38)}.mat-input-element{caret-color:#135f7f}.mat-input-element::placeholder{color:rgba(0,0,0,0.42)}.mat-input-element::-moz-placeholder{color:rgba(0,0,0,0.42)}.mat-input-element::-webkit-input-placeholder{color:rgba(0,0,0,0.42)}.mat-input-element:-ms-input-placeholder{color:rgba(0,0,0,0.42)}.mat-accent .mat-input-element{caret-color:#006841}.mat-warn .mat-input-element,.mat-form-field-invalid .mat-input-element{caret-color:#8e3e52}.mat-form-field-type-mat-native-select.mat-form-field-invalid .mat-form-field-infix::after{color:#8e3e52}.mat-list-base .mat-list-item{color:rgba(0,0,0,0.87)}.mat-list-base .mat-list-option{color:rgba(0,0,0,0.87)}.mat-list-base .mat-subheader{color:rgba(0,0,0,0.54)}.mat-list-item-disabled{background-color:#eee}.mat-list-option:hover,.mat-list-option:focus,.mat-nav-list .mat-list-item:hover,.mat-nav-list .mat-list-item:focus{background:rgba(0,0,0,0.04)}.mat-menu-panel{background:#fff}.mat-menu-panel:not([class*='mat-elevation-z']){box-shadow:0px 2px 4px -1px rgba(0,0,0,0.2),0px 4px 5px 0px rgba(0,0,0,0.14),0px 1px 10px 0px rgba(0,0,0,0.12)}.mat-menu-item{background:transparent;color:rgba(0,0,0,0.87)}.mat-menu-item[disabled],.mat-menu-item[disabled]::after{color:rgba(0,0,0,0.38)}.mat-menu-item .mat-icon-no-color,.mat-menu-item-submenu-trigger::after{color:rgba(0,0,0,0.54)}.mat-menu-item:hover:not([disabled]),.mat-menu-item.cdk-program-focused:not([disabled]),.mat-menu-item.cdk-keyboard-focused:not([disabled]),.mat-menu-item-highlighted:not([disabled]){background:rgba(0,0,0,0.04)}.mat-paginator{background:#fff}.mat-paginator,.mat-paginator-page-size .mat-select-trigger{color:rgba(0,0,0,0.54)}.mat-paginator-decrement,.mat-paginator-increment{border-top:2px solid rgba(0,0,0,0.54);border-right:2px solid rgba(0,0,0,0.54)}.mat-paginator-first,.mat-paginator-last{border-top:2px solid rgba(0,0,0,0.54)}.mat-icon-button[disabled] .mat-paginator-decrement,.mat-icon-button[disabled] .mat-paginator-increment,.mat-icon-button[disabled] .mat-paginator-first,.mat-icon-button[disabled] .mat-paginator-last{border-color:rgba(0,0,0,0.38)}.mat-progress-bar-background{fill:#1a80ab}.mat-progress-bar-buffer{background-color:#1a80ab}.mat-progress-bar-fill::after{background-color:#135f7f}.mat-progress-bar.mat-accent .mat-progress-bar-background{fill:#009b61}.mat-progress-bar.mat-accent .mat-progress-bar-buffer{background-color:#009b61}.mat-progress-bar.mat-accent .mat-progress-bar-fill::after{background-color:#006841}.mat-progress-bar.mat-warn .mat-progress-bar-background{fill:#b24e67}.mat-progress-bar.mat-warn .mat-progress-bar-buffer{background-color:#b24e67}.mat-progress-bar.mat-warn .mat-progress-bar-fill::after{background-color:#8e3e52}.mat-progress-spinner circle,.mat-spinner circle{stroke:#135f7f}.mat-progress-spinner.mat-accent circle,.mat-spinner.mat-accent circle{stroke:#006841}.mat-progress-spinner.mat-warn circle,.mat-spinner.mat-warn circle{stroke:#8e3e52}.mat-radio-outer-circle{border-color:rgba(0,0,0,0.54)}.mat-radio-button.mat-primary.mat-radio-checked .mat-radio-outer-circle{border-color:#135f7f}.mat-radio-button.mat-primary .mat-radio-inner-circle,.mat-radio-button.mat-primary .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.mat-radio-button.mat-primary.mat-radio-checked .mat-radio-persistent-ripple,.mat-radio-button.mat-primary:active .mat-radio-persistent-ripple{background-color:#135f7f}.mat-radio-button.mat-accent.mat-radio-checked .mat-radio-outer-circle{border-color:#006841}.mat-radio-button.mat-accent .mat-radio-inner-circle,.mat-radio-button.mat-accent .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.mat-radio-button.mat-accent.mat-radio-checked .mat-radio-persistent-ripple,.mat-radio-button.mat-accent:active .mat-radio-persistent-ripple{background-color:#006841}.mat-radio-button.mat-warn.mat-radio-checked .mat-radio-outer-circle{border-color:#8e3e52}.mat-radio-button.mat-warn .mat-radio-inner-circle,.mat-radio-button.mat-warn .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.mat-radio-button.mat-warn.mat-radio-checked .mat-radio-persistent-ripple,.mat-radio-button.mat-warn:active .mat-radio-persistent-ripple{background-color:#8e3e52}.mat-radio-button.mat-radio-disabled.mat-radio-checked .mat-radio-outer-circle,.mat-radio-button.mat-radio-disabled .mat-radio-outer-circle{border-color:rgba(0,0,0,0.38)}.mat-radio-button.mat-radio-disabled .mat-radio-ripple .mat-ripple-element,.mat-radio-button.mat-radio-disabled .mat-radio-inner-circle{background-color:rgba(0,0,0,0.38)}.mat-radio-button.mat-radio-disabled .mat-radio-label-content{color:rgba(0,0,0,0.38)}.mat-radio-button .mat-ripple-element{background-color:#000}.mat-select-value{color:rgba(0,0,0,0.87)}.mat-select-placeholder{color:rgba(0,0,0,0.42)}.mat-select-disabled .mat-select-value{color:rgba(0,0,0,0.38)}.mat-select-arrow{color:rgba(0,0,0,0.54)}.mat-select-panel{background:#fff}.mat-select-panel:not([class*='mat-elevation-z']){box-shadow:0px 2px 4px -1px rgba(0,0,0,0.2),0px 4px 5px 0px rgba(0,0,0,0.14),0px 1px 10px 0px rgba(0,0,0,0.12)}.mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){background:rgba(0,0,0,0.12)}.mat-form-field.mat-focused.mat-primary .mat-select-arrow{color:#135f7f}.mat-form-field.mat-focused.mat-accent .mat-select-arrow{color:#006841}.mat-form-field.mat-focused.mat-warn .mat-select-arrow{color:#8e3e52}.mat-form-field .mat-select.mat-select-invalid .mat-select-arrow{color:#8e3e52}.mat-form-field .mat-select.mat-select-disabled .mat-select-arrow{color:rgba(0,0,0,0.38)}.mat-drawer-container{background-color:#fafafa;color:rgba(0,0,0,0.87)}.mat-drawer{background-color:#fff;color:rgba(0,0,0,0.87)}.mat-drawer.mat-drawer-push{background-color:#fff}.mat-drawer:not(.mat-drawer-side){box-shadow:0px 8px 10px -5px rgba(0,0,0,0.2),0px 16px 24px 2px rgba(0,0,0,0.14),0px 6px 30px 5px rgba(0,0,0,0.12)}.mat-drawer-side{border-right:solid 1px rgba(0,0,0,0.12)}.mat-drawer-side.mat-drawer-end{border-left:solid 1px rgba(0,0,0,0.12);border-right:none}[dir='rtl'] .mat-drawer-side{border-left:solid 1px rgba(0,0,0,0.12);border-right:none}[dir='rtl'] .mat-drawer-side.mat-drawer-end{border-left:none;border-right:solid 1px rgba(0,0,0,0.12)}.mat-drawer-backdrop.mat-drawer-shown{background-color:rgba(0,0,0,0.6)}.mat-slide-toggle.mat-checked .mat-slide-toggle-thumb{background-color:#006841}.mat-slide-toggle.mat-checked .mat-slide-toggle-bar{background-color:rgba(0,104,65,0.54)}.mat-slide-toggle.mat-checked .mat-ripple-element{background-color:#006841}.mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-thumb{background-color:#135f7f}.mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-bar{background-color:rgba(19,95,127,0.54)}.mat-slide-toggle.mat-primary.mat-checked .mat-ripple-element{background-color:#135f7f}.mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-thumb{background-color:#8e3e52}.mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-bar{background-color:rgba(142,62,82,0.54)}.mat-slide-toggle.mat-warn.mat-checked .mat-ripple-element{background-color:#8e3e52}.mat-slide-toggle:not(.mat-checked) .mat-ripple-element{background-color:#000}.mat-slide-toggle-thumb{box-shadow:0px 2px 1px -1px rgba(0,0,0,0.2),0px 1px 1px 0px rgba(0,0,0,0.14),0px 1px 3px 0px rgba(0,0,0,0.12);background-color:#fafafa}.mat-slide-toggle-bar{background-color:rgba(0,0,0,0.38)}.mat-slider-track-background{background-color:rgba(0,0,0,0.26)}.mat-primary .mat-slider-track-fill,.mat-primary .mat-slider-thumb,.mat-primary .mat-slider-thumb-label{background-color:#135f7f}.mat-primary .mat-slider-thumb-label-text{color:#fff}.mat-accent .mat-slider-track-fill,.mat-accent .mat-slider-thumb,.mat-accent .mat-slider-thumb-label{background-color:#006841}.mat-accent .mat-slider-thumb-label-text{color:#fff}.mat-warn .mat-slider-track-fill,.mat-warn .mat-slider-thumb,.mat-warn .mat-slider-thumb-label{background-color:#8e3e52}.mat-warn .mat-slider-thumb-label-text{color:#fff}.mat-slider-focus-ring{background-color:rgba(0,104,65,0.2)}.mat-slider:hover .mat-slider-track-background,.cdk-focused .mat-slider-track-background{background-color:rgba(0,0,0,0.38)}.mat-slider-disabled .mat-slider-track-background,.mat-slider-disabled .mat-slider-track-fill,.mat-slider-disabled .mat-slider-thumb{background-color:rgba(0,0,0,0.26)}.mat-slider-disabled:hover .mat-slider-track-background{background-color:rgba(0,0,0,0.26)}.mat-slider-min-value .mat-slider-focus-ring{background-color:rgba(0,0,0,0.12)}.mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb,.mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb-label{background-color:rgba(0,0,0,0.87)}.mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb,.mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb-label{background-color:rgba(0,0,0,0.26)}.mat-slider-min-value:not(.mat-slider-thumb-label-showing) .mat-slider-thumb{border-color:rgba(0,0,0,0.26);background-color:transparent}.mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover .mat-slider-thumb,.mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused .mat-slider-thumb{border-color:rgba(0,0,0,0.38)}.mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover.mat-slider-disabled .mat-slider-thumb,.mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused.mat-slider-disabled .mat-slider-thumb{border-color:rgba(0,0,0,0.26)}.mat-slider-has-ticks .mat-slider-wrapper::after{border-color:rgba(0,0,0,0.7)}.mat-slider-horizontal .mat-slider-ticks{background-image:repeating-linear-gradient(to right, rgba(0,0,0,0.7), rgba(0,0,0,0.7) 2px, transparent 0, transparent);background-image:-moz-repeating-linear-gradient(0.0001deg, rgba(0,0,0,0.7), rgba(0,0,0,0.7) 2px, transparent 0, transparent)}.mat-slider-vertical .mat-slider-ticks{background-image:repeating-linear-gradient(to bottom, rgba(0,0,0,0.7), rgba(0,0,0,0.7) 2px, transparent 0, transparent)}.mat-step-header.cdk-keyboard-focused,.mat-step-header.cdk-program-focused,.mat-step-header:hover{background-color:rgba(0,0,0,0.04)}@media (hover: none){.mat-step-header:hover{background:none}}.mat-step-header .mat-step-label,.mat-step-header .mat-step-optional{color:rgba(0,0,0,0.54)}.mat-step-header .mat-step-icon{background-color:rgba(0,0,0,0.54);color:#fff}.mat-step-header .mat-step-icon-selected,.mat-step-header .mat-step-icon-state-done,.mat-step-header .mat-step-icon-state-edit{background-color:#135f7f;color:#fff}.mat-step-header .mat-step-icon-state-error{background-color:transparent;color:#8e3e52}.mat-step-header .mat-step-label.mat-step-label-active{color:rgba(0,0,0,0.87)}.mat-step-header .mat-step-label.mat-step-label-error{color:#8e3e52}.mat-stepper-horizontal,.mat-stepper-vertical{background-color:#fff}.mat-stepper-vertical-line::before{border-left-color:rgba(0,0,0,0.12)}.mat-horizontal-stepper-header::before,.mat-horizontal-stepper-header::after,.mat-stepper-horizontal-line{border-top-color:rgba(0,0,0,0.12)}.mat-sort-header-arrow{color:#757575}.mat-tab-nav-bar,.mat-tab-header{border-bottom:1px solid rgba(0,0,0,0.12)}.mat-tab-group-inverted-header .mat-tab-nav-bar,.mat-tab-group-inverted-header .mat-tab-header{border-top:1px solid rgba(0,0,0,0.12);border-bottom:none}.mat-tab-label,.mat-tab-link{color:rgba(0,0,0,0.87)}.mat-tab-label.mat-tab-disabled,.mat-tab-link.mat-tab-disabled{color:rgba(0,0,0,0.38)}.mat-tab-header-pagination-chevron{border-color:rgba(0,0,0,0.87)}.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:rgba(0,0,0,0.38)}.mat-tab-group[class*='mat-background-'] .mat-tab-header,.mat-tab-nav-bar[class*='mat-background-']{border-bottom:none;border-top:none}.mat-tab-group.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-group.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-group.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-group.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:rgba(26,128,171,0.3)}.mat-tab-group.mat-primary .mat-ink-bar,.mat-tab-nav-bar.mat-primary .mat-ink-bar{background-color:#135f7f}.mat-tab-group.mat-primary.mat-background-primary .mat-ink-bar,.mat-tab-nav-bar.mat-primary.mat-background-primary .mat-ink-bar{background-color:#fff}.mat-tab-group.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-group.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-group.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-group.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:rgba(0,155,97,0.3)}.mat-tab-group.mat-accent .mat-ink-bar,.mat-tab-nav-bar.mat-accent .mat-ink-bar{background-color:#006841}.mat-tab-group.mat-accent.mat-background-accent .mat-ink-bar,.mat-tab-nav-bar.mat-accent.mat-background-accent .mat-ink-bar{background-color:#fff}.mat-tab-group.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-group.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-group.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-group.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:rgba(178,78,103,0.3)}.mat-tab-group.mat-warn .mat-ink-bar,.mat-tab-nav-bar.mat-warn .mat-ink-bar{background-color:#8e3e52}.mat-tab-group.mat-warn.mat-background-warn .mat-ink-bar,.mat-tab-nav-bar.mat-warn.mat-background-warn .mat-ink-bar{background-color:#fff}.mat-tab-group.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-group.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-group.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-group.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:rgba(26,128,171,0.3)}.mat-tab-group.mat-background-primary .mat-tab-header,.mat-tab-group.mat-background-primary .mat-tab-links,.mat-tab-nav-bar.mat-background-primary .mat-tab-header,.mat-tab-nav-bar.mat-background-primary .mat-tab-links{background-color:#135f7f}.mat-tab-group.mat-background-primary .mat-tab-label,.mat-tab-group.mat-background-primary .mat-tab-link,.mat-tab-nav-bar.mat-background-primary .mat-tab-label,.mat-tab-nav-bar.mat-background-primary .mat-tab-link{color:#fff}.mat-tab-group.mat-background-primary .mat-tab-label.mat-tab-disabled,.mat-tab-group.mat-background-primary .mat-tab-link.mat-tab-disabled,.mat-tab-nav-bar.mat-background-primary .mat-tab-label.mat-tab-disabled,.mat-tab-nav-bar.mat-background-primary .mat-tab-link.mat-tab-disabled{color:rgba(255,255,255,0.4)}.mat-tab-group.mat-background-primary .mat-tab-header-pagination-chevron,.mat-tab-nav-bar.mat-background-primary .mat-tab-header-pagination-chevron{border-color:#fff}.mat-tab-group.mat-background-primary .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.mat-tab-nav-bar.mat-background-primary .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:rgba(255,255,255,0.4)}.mat-tab-group.mat-background-primary .mat-ripple-element,.mat-tab-nav-bar.mat-background-primary .mat-ripple-element{background-color:rgba(255,255,255,0.12)}.mat-tab-group.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-group.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-group.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-group.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:rgba(0,155,97,0.3)}.mat-tab-group.mat-background-accent .mat-tab-header,.mat-tab-group.mat-background-accent .mat-tab-links,.mat-tab-nav-bar.mat-background-accent .mat-tab-header,.mat-tab-nav-bar.mat-background-accent .mat-tab-links{background-color:#006841}.mat-tab-group.mat-background-accent .mat-tab-label,.mat-tab-group.mat-background-accent .mat-tab-link,.mat-tab-nav-bar.mat-background-accent .mat-tab-label,.mat-tab-nav-bar.mat-background-accent .mat-tab-link{color:#fff}.mat-tab-group.mat-background-accent .mat-tab-label.mat-tab-disabled,.mat-tab-group.mat-background-accent .mat-tab-link.mat-tab-disabled,.mat-tab-nav-bar.mat-background-accent .mat-tab-label.mat-tab-disabled,.mat-tab-nav-bar.mat-background-accent .mat-tab-link.mat-tab-disabled{color:rgba(255,255,255,0.4)}.mat-tab-group.mat-background-accent .mat-tab-header-pagination-chevron,.mat-tab-nav-bar.mat-background-accent .mat-tab-header-pagination-chevron{border-color:#fff}.mat-tab-group.mat-background-accent .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.mat-tab-nav-bar.mat-background-accent .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:rgba(255,255,255,0.4)}.mat-tab-group.mat-background-accent .mat-ripple-element,.mat-tab-nav-bar.mat-background-accent .mat-ripple-element{background-color:rgba(255,255,255,0.12)}.mat-tab-group.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-group.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-group.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-group.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:rgba(178,78,103,0.3)}.mat-tab-group.mat-background-warn .mat-tab-header,.mat-tab-group.mat-background-warn .mat-tab-links,.mat-tab-nav-bar.mat-background-warn .mat-tab-header,.mat-tab-nav-bar.mat-background-warn .mat-tab-links{background-color:#8e3e52}.mat-tab-group.mat-background-warn .mat-tab-label,.mat-tab-group.mat-background-warn .mat-tab-link,.mat-tab-nav-bar.mat-background-warn .mat-tab-label,.mat-tab-nav-bar.mat-background-warn .mat-tab-link{color:#fff}.mat-tab-group.mat-background-warn .mat-tab-label.mat-tab-disabled,.mat-tab-group.mat-background-warn .mat-tab-link.mat-tab-disabled,.mat-tab-nav-bar.mat-background-warn .mat-tab-label.mat-tab-disabled,.mat-tab-nav-bar.mat-background-warn .mat-tab-link.mat-tab-disabled{color:rgba(255,255,255,0.4)}.mat-tab-group.mat-background-warn .mat-tab-header-pagination-chevron,.mat-tab-nav-bar.mat-background-warn .mat-tab-header-pagination-chevron{border-color:#fff}.mat-tab-group.mat-background-warn .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.mat-tab-nav-bar.mat-background-warn .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:rgba(255,255,255,0.4)}.mat-tab-group.mat-background-warn .mat-ripple-element,.mat-tab-nav-bar.mat-background-warn .mat-ripple-element{background-color:rgba(255,255,255,0.12)}.mat-toolbar{background:#f5f5f5;color:rgba(0,0,0,0.87)}.mat-toolbar.mat-primary{background:#135f7f;color:#fff}.mat-toolbar.mat-accent{background:#006841;color:#fff}.mat-toolbar.mat-warn{background:#8e3e52;color:#fff}.mat-toolbar .mat-form-field-underline,.mat-toolbar .mat-form-field-ripple,.mat-toolbar .mat-focused .mat-form-field-ripple{background-color:currentColor}.mat-toolbar .mat-form-field-label,.mat-toolbar .mat-focused .mat-form-field-label,.mat-toolbar .mat-select-value,.mat-toolbar .mat-select-arrow,.mat-toolbar .mat-form-field.mat-focused .mat-select-arrow{color:inherit}.mat-toolbar .mat-input-element{caret-color:currentColor}.mat-tooltip{background:rgba(97,97,97,0.9)}.mat-tree{background:#fff}.mat-tree-node,.mat-nested-tree-node{color:rgba(0,0,0,0.87)}.mat-snack-bar-container{color:rgba(255,255,255,0.7);background:#323232;box-shadow:0px 3px 5px -1px rgba(0,0,0,0.2),0px 6px 10px 0px rgba(0,0,0,0.14),0px 1px 18px 0px rgba(0,0,0,0.12)}.mat-simple-snackbar-action{color:#006841}[color=primary]{color:#135f7f}[color=warn]{color:#8e3e52}[color=accent]{color:#006841}[bgcolor=primary]{background-color:#135f7f}[bgcolor=warn]{background-color:#8e3e52}[bgcolor=accent]{background-color:#006841}.jstree-proton .jstree-clicked{background:#1a80ab !important}.jstree-proton :not(.jstree-disabled).jstree-hovered{background:#1a80ab !important;box-shadow:inset 0 0 1px #135f7f !important}.jstree-proton .jstree-disabled:hover{cursor:not-allowed}.adminArea{display:flex;flex-flow:row wrap}.adminArea_1{flex:1;overflow:hidden;padding:20px}.adminArea_2{overflow:hidden;padding:20px}.adminArea_3{overflow:hidden;padding:20px}.adminArea_4{overflow:hidden;padding:20px}.dndFile{border:dashed 5px grey;padding:10px;text-align:center;opacity:0.5;font-size:15px;font-weight:bolder;margin:20px}.dndFileHighlighted{opacity:1 !important;border:dashed 5px #135f7f !important;color:#135f7f} +.mat-badge-content{font-weight:600;font-size:12px;font-family:Roboto, "Helvetica Neue", sans-serif}.mat-badge-small .mat-badge-content{font-size:6px}.mat-badge-large .mat-badge-content{font-size:24px}.mat-h1,.mat-headline,.mat-typography h1{font:400 24px/32px Roboto, "Helvetica Neue", sans-serif;margin:0 0 16px}.mat-h2,.mat-title,.mat-typography h2{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;margin:0 0 16px}.mat-h3,.mat-subheading-2,.mat-typography h3{font:400 16px/28px Roboto, "Helvetica Neue", sans-serif;margin:0 0 16px}.mat-h4,.mat-subheading-1,.mat-typography h4{font:400 15px/24px Roboto, "Helvetica Neue", sans-serif;margin:0 0 16px}.mat-h5,.mat-typography h5{font:400 11.62px/20px Roboto, "Helvetica Neue", sans-serif;margin:0 0 12px}.mat-h6,.mat-typography h6{font:400 9.38px/20px Roboto, "Helvetica Neue", sans-serif;margin:0 0 12px}.mat-body-strong,.mat-body-2{font:500 14px/24px Roboto, "Helvetica Neue", sans-serif}.mat-body,.mat-body-1,.mat-typography{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif}.mat-body p,.mat-body-1 p,.mat-typography p{margin:0 0 12px}.mat-small,.mat-caption{font:400 12px/20px Roboto, "Helvetica Neue", sans-serif}.mat-display-4,.mat-typography .mat-display-4{font:300 112px/112px Roboto, "Helvetica Neue", sans-serif;margin:0 0 56px;letter-spacing:-0.05em}.mat-display-3,.mat-typography .mat-display-3{font:400 56px/56px Roboto, "Helvetica Neue", sans-serif;margin:0 0 64px;letter-spacing:-0.02em}.mat-display-2,.mat-typography .mat-display-2{font:400 45px/48px Roboto, "Helvetica Neue", sans-serif;margin:0 0 64px;letter-spacing:-0.005em}.mat-display-1,.mat-typography .mat-display-1{font:400 34px/40px Roboto, "Helvetica Neue", sans-serif;margin:0 0 64px}.mat-bottom-sheet-container{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif}.mat-button,.mat-raised-button,.mat-icon-button,.mat-stroked-button,.mat-flat-button,.mat-fab,.mat-mini-fab{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-button-toggle{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-card{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-card-title{font-size:24px;font-weight:500}.mat-card-header .mat-card-title{font-size:20px}.mat-card-subtitle,.mat-card-content{font-size:14px}.mat-checkbox{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-checkbox-layout .mat-checkbox-label{line-height:24px}.mat-chip{font-size:14px;font-weight:500}.mat-chip .mat-chip-trailing-icon.mat-icon,.mat-chip .mat-chip-remove.mat-icon{font-size:18px}.mat-table{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-header-cell{font-size:12px;font-weight:500}.mat-cell,.mat-footer-cell{font-size:14px}.mat-calendar{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-calendar-body{font-size:13px}.mat-calendar-body-label,.mat-calendar-period-button{font-size:14px;font-weight:500}.mat-calendar-table-header th{font-size:11px;font-weight:400}.mat-dialog-title{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif}.mat-expansion-panel-header{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:15px;font-weight:400}.mat-expansion-panel-content{font:400 14px/20px Roboto, "Helvetica Neue", sans-serif}.mat-form-field{font-size:inherit;font-weight:400;line-height:1.125;font-family:Roboto, "Helvetica Neue", sans-serif}.mat-form-field-wrapper{padding-bottom:1.34375em}.mat-form-field-prefix .mat-icon,.mat-form-field-suffix .mat-icon{font-size:150%;line-height:1.125}.mat-form-field-prefix .mat-icon-button,.mat-form-field-suffix .mat-icon-button{height:1.5em;width:1.5em}.mat-form-field-prefix .mat-icon-button .mat-icon,.mat-form-field-suffix .mat-icon-button .mat-icon{height:1.125em;line-height:1.125}.mat-form-field-infix{padding:.5em 0;border-top:.84375em solid transparent}.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,.mat-form-field-can-float .mat-input-server:focus+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.34375em) scale(.75);width:133.33333%}.mat-form-field-can-float .mat-input-server[label]:not(:label-shown)+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.34374em) scale(.75);width:133.33334%}.mat-form-field-label-wrapper{top:-.84375em;padding-top:.84375em}.mat-form-field-label{top:1.34375em}.mat-form-field-underline{bottom:1.34375em}.mat-form-field-subscript-wrapper{font-size:75%;margin-top:.66667em;top:calc(100% - 1.79167em)}.mat-form-field-appearance-legacy .mat-form-field-wrapper{padding-bottom:1.25em}.mat-form-field-appearance-legacy .mat-form-field-infix{padding:.4375em 0}.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server:focus+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.28125em) scale(.75) perspective(100px) translateZ(0.001px);-ms-transform:translateY(-1.28125em) scale(.75);width:133.33333%}.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-form-field-autofill-control:-webkit-autofill+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.28125em) scale(.75) perspective(100px) translateZ(0.00101px);-ms-transform:translateY(-1.28124em) scale(.75);width:133.33334%}.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server[label]:not(:label-shown)+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.28125em) scale(.75) perspective(100px) translateZ(0.00102px);-ms-transform:translateY(-1.28123em) scale(.75);width:133.33335%}.mat-form-field-appearance-legacy .mat-form-field-label{top:1.28125em}.mat-form-field-appearance-legacy .mat-form-field-underline{bottom:1.25em}.mat-form-field-appearance-legacy .mat-form-field-subscript-wrapper{margin-top:.54167em;top:calc(100% - 1.66667em)}@media print{.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server:focus+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.28122em) scale(.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-form-field-autofill-control:-webkit-autofill+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.28121em) scale(.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server[label]:not(:label-shown)+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.2812em) scale(.75)}}.mat-form-field-appearance-fill .mat-form-field-infix{padding:.25em 0 .75em 0}.mat-form-field-appearance-fill .mat-form-field-label{top:1.09375em;margin-top:-.5em}.mat-form-field-appearance-fill.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,.mat-form-field-appearance-fill.mat-form-field-can-float .mat-input-server:focus+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-.59375em) scale(.75);width:133.33333%}.mat-form-field-appearance-fill.mat-form-field-can-float .mat-input-server[label]:not(:label-shown)+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-.59374em) scale(.75);width:133.33334%}.mat-form-field-appearance-outline .mat-form-field-infix{padding:1em 0 1em 0}.mat-form-field-appearance-outline .mat-form-field-label{top:1.84375em;margin-top:-.25em}.mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,.mat-form-field-appearance-outline.mat-form-field-can-float .mat-input-server:focus+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.59375em) scale(.75);width:133.33333%}.mat-form-field-appearance-outline.mat-form-field-can-float .mat-input-server[label]:not(:label-shown)+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.59374em) scale(.75);width:133.33334%}.mat-grid-tile-header,.mat-grid-tile-footer{font-size:14px}.mat-grid-tile-header .mat-line,.mat-grid-tile-footer .mat-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-grid-tile-header .mat-line:nth-child(n+2),.mat-grid-tile-footer .mat-line:nth-child(n+2){font-size:12px}input.mat-input-element{margin-top:-.0625em}.mat-menu-item{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:400}.mat-paginator,.mat-paginator-page-size .mat-select-trigger{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px}.mat-radio-button{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-select{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-select-trigger{height:1.125em}.mat-slide-toggle-content{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-slider-thumb-label-text{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px;font-weight:500}.mat-stepper-vertical,.mat-stepper-horizontal{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-step-label{font-size:14px;font-weight:400}.mat-step-sub-label-error{font-weight:normal}.mat-step-label-error{font-size:14px}.mat-step-label-selected{font-size:14px;font-weight:500}.mat-tab-group{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-tab-label,.mat-tab-link{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-toolbar,.mat-toolbar h1,.mat-toolbar h2,.mat-toolbar h3,.mat-toolbar h4,.mat-toolbar h5,.mat-toolbar h6{font:500 20px/32px Roboto, "Helvetica Neue", sans-serif;margin:0}.mat-tooltip{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:10px;padding-top:6px;padding-bottom:6px}.mat-tooltip-handset{font-size:14px;padding-top:8px;padding-bottom:8px}.mat-list-item{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-list-option{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-list-base .mat-list-item{font-size:16px}.mat-list-base .mat-list-item .mat-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base .mat-list-item .mat-line:nth-child(n+2){font-size:14px}.mat-list-base .mat-list-option{font-size:16px}.mat-list-base .mat-list-option .mat-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base .mat-list-option .mat-line:nth-child(n+2){font-size:14px}.mat-list-base .mat-subheader{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px;font-weight:500}.mat-list-base[dense] .mat-list-item{font-size:12px}.mat-list-base[dense] .mat-list-item .mat-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense] .mat-list-item .mat-line:nth-child(n+2){font-size:12px}.mat-list-base[dense] .mat-list-option{font-size:12px}.mat-list-base[dense] .mat-list-option .mat-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense] .mat-list-option .mat-line:nth-child(n+2){font-size:12px}.mat-list-base[dense] .mat-subheader{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:12px;font-weight:500}.mat-option{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:16px}.mat-optgroup-label{font:500 14px/24px Roboto, "Helvetica Neue", sans-serif}.mat-simple-snackbar{font-family:Roboto, "Helvetica Neue", sans-serif;font-size:14px}.mat-simple-snackbar-action{line-height:1;font-family:inherit;font-size:inherit;font-weight:500}.mat-tree{font-family:Roboto, "Helvetica Neue", sans-serif}.mat-tree-node,.mat-nested-tree-node{font-weight:400;font-size:14px}.mat-ripple{overflow:hidden;position:relative}.mat-ripple.mat-ripple-unbounded{overflow:visible}.mat-ripple-element{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0ms cubic-bezier(0, 0, 0.2, 1);transform:scale(0)}@media (-ms-high-contrast: active){.mat-ripple-element{display:none}}.cdk-visually-hidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;outline:0;-webkit-appearance:none;-moz-appearance:none}.cdk-overlay-container,.cdk-global-overlay-wrapper{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed;z-index:1000}.cdk-overlay-container:empty{display:none}.cdk-global-overlay-wrapper{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop{position:absolute;top:0;bottom:0;left:0;right:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:transparent;transition:opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:1}@media screen and (-ms-high-contrast: active){.cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:0.6}}.cdk-overlay-dark-backdrop{background:rgba(0,0,0,0.32)}.cdk-overlay-transparent-backdrop,.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing{opacity:0}.cdk-overlay-connected-position-bounding-box{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}@keyframes cdk-text-field-autofill-start{/*!*/}@keyframes cdk-text-field-autofill-end{/*!*/}.cdk-text-field-autofill-monitored:-webkit-autofill{animation-name:cdk-text-field-autofill-start}.cdk-text-field-autofill-monitored:not(:-webkit-autofill){animation-name:cdk-text-field-autofill-end}textarea.cdk-textarea-autosize{resize:none}textarea.cdk-textarea-autosize-measuring{height:auto !important;overflow:hidden !important;padding:2px 0 !important;box-sizing:content-box !important}.mat-ripple-element{background-color:rgba(0,0,0,0.1)}.mat-option{color:rgba(0,0,0,0.87)}.mat-option:hover:not(.mat-option-disabled),.mat-option:focus:not(.mat-option-disabled){background:rgba(0,0,0,0.04)}.mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){background:rgba(0,0,0,0.04)}.mat-option.mat-active{background:rgba(0,0,0,0.04);color:rgba(0,0,0,0.87)}.mat-option.mat-option-disabled{color:rgba(0,0,0,0.38)}.mat-primary .mat-option.mat-selected:not(.mat-option-disabled){color:#135f7f}.mat-accent .mat-option.mat-selected:not(.mat-option-disabled){color:#006841}.mat-warn .mat-option.mat-selected:not(.mat-option-disabled){color:#8e3e52}.mat-optgroup-label{color:rgba(0,0,0,0.54)}.mat-optgroup-disabled .mat-optgroup-label{color:rgba(0,0,0,0.38)}.mat-pseudo-checkbox{color:rgba(0,0,0,0.54)}.mat-pseudo-checkbox::after{color:#fafafa}.mat-pseudo-checkbox-disabled{color:#b0b0b0}.mat-pseudo-checkbox-checked,.mat-pseudo-checkbox-indeterminate,.mat-accent .mat-pseudo-checkbox-checked,.mat-accent .mat-pseudo-checkbox-indeterminate{background:#006841}.mat-primary .mat-pseudo-checkbox-checked,.mat-primary .mat-pseudo-checkbox-indeterminate{background:#135f7f}.mat-warn .mat-pseudo-checkbox-checked,.mat-warn .mat-pseudo-checkbox-indeterminate{background:#8e3e52}.mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled,.mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled{background:#b0b0b0}.mat-elevation-z0{box-shadow:0px 0px 0px 0px rgba(0,0,0,0.2),0px 0px 0px 0px rgba(0,0,0,0.14),0px 0px 0px 0px rgba(0,0,0,0.12)}.mat-elevation-z1{box-shadow:0px 2px 1px -1px rgba(0,0,0,0.2),0px 1px 1px 0px rgba(0,0,0,0.14),0px 1px 3px 0px rgba(0,0,0,0.12)}.mat-elevation-z2{box-shadow:0px 3px 1px -2px rgba(0,0,0,0.2),0px 2px 2px 0px rgba(0,0,0,0.14),0px 1px 5px 0px rgba(0,0,0,0.12)}.mat-elevation-z3{box-shadow:0px 3px 3px -2px rgba(0,0,0,0.2),0px 3px 4px 0px rgba(0,0,0,0.14),0px 1px 8px 0px rgba(0,0,0,0.12)}.mat-elevation-z4{box-shadow:0px 2px 4px -1px rgba(0,0,0,0.2),0px 4px 5px 0px rgba(0,0,0,0.14),0px 1px 10px 0px rgba(0,0,0,0.12)}.mat-elevation-z5{box-shadow:0px 3px 5px -1px rgba(0,0,0,0.2),0px 5px 8px 0px rgba(0,0,0,0.14),0px 1px 14px 0px rgba(0,0,0,0.12)}.mat-elevation-z6{box-shadow:0px 3px 5px -1px rgba(0,0,0,0.2),0px 6px 10px 0px rgba(0,0,0,0.14),0px 1px 18px 0px rgba(0,0,0,0.12)}.mat-elevation-z7{box-shadow:0px 4px 5px -2px rgba(0,0,0,0.2),0px 7px 10px 1px rgba(0,0,0,0.14),0px 2px 16px 1px rgba(0,0,0,0.12)}.mat-elevation-z8{box-shadow:0px 5px 5px -3px rgba(0,0,0,0.2),0px 8px 10px 1px rgba(0,0,0,0.14),0px 3px 14px 2px rgba(0,0,0,0.12)}.mat-elevation-z9{box-shadow:0px 5px 6px -3px rgba(0,0,0,0.2),0px 9px 12px 1px rgba(0,0,0,0.14),0px 3px 16px 2px rgba(0,0,0,0.12)}.mat-elevation-z10{box-shadow:0px 6px 6px -3px rgba(0,0,0,0.2),0px 10px 14px 1px rgba(0,0,0,0.14),0px 4px 18px 3px rgba(0,0,0,0.12)}.mat-elevation-z11{box-shadow:0px 6px 7px -4px rgba(0,0,0,0.2),0px 11px 15px 1px rgba(0,0,0,0.14),0px 4px 20px 3px rgba(0,0,0,0.12)}.mat-elevation-z12{box-shadow:0px 7px 8px -4px rgba(0,0,0,0.2),0px 12px 17px 2px rgba(0,0,0,0.14),0px 5px 22px 4px rgba(0,0,0,0.12)}.mat-elevation-z13{box-shadow:0px 7px 8px -4px rgba(0,0,0,0.2),0px 13px 19px 2px rgba(0,0,0,0.14),0px 5px 24px 4px rgba(0,0,0,0.12)}.mat-elevation-z14{box-shadow:0px 7px 9px -4px rgba(0,0,0,0.2),0px 14px 21px 2px rgba(0,0,0,0.14),0px 5px 26px 4px rgba(0,0,0,0.12)}.mat-elevation-z15{box-shadow:0px 8px 9px -5px rgba(0,0,0,0.2),0px 15px 22px 2px rgba(0,0,0,0.14),0px 6px 28px 5px rgba(0,0,0,0.12)}.mat-elevation-z16{box-shadow:0px 8px 10px -5px rgba(0,0,0,0.2),0px 16px 24px 2px rgba(0,0,0,0.14),0px 6px 30px 5px rgba(0,0,0,0.12)}.mat-elevation-z17{box-shadow:0px 8px 11px -5px rgba(0,0,0,0.2),0px 17px 26px 2px rgba(0,0,0,0.14),0px 6px 32px 5px rgba(0,0,0,0.12)}.mat-elevation-z18{box-shadow:0px 9px 11px -5px rgba(0,0,0,0.2),0px 18px 28px 2px rgba(0,0,0,0.14),0px 7px 34px 6px rgba(0,0,0,0.12)}.mat-elevation-z19{box-shadow:0px 9px 12px -6px rgba(0,0,0,0.2),0px 19px 29px 2px rgba(0,0,0,0.14),0px 7px 36px 6px rgba(0,0,0,0.12)}.mat-elevation-z20{box-shadow:0px 10px 13px -6px rgba(0,0,0,0.2),0px 20px 31px 3px rgba(0,0,0,0.14),0px 8px 38px 7px rgba(0,0,0,0.12)}.mat-elevation-z21{box-shadow:0px 10px 13px -6px rgba(0,0,0,0.2),0px 21px 33px 3px rgba(0,0,0,0.14),0px 8px 40px 7px rgba(0,0,0,0.12)}.mat-elevation-z22{box-shadow:0px 10px 14px -6px rgba(0,0,0,0.2),0px 22px 35px 3px rgba(0,0,0,0.14),0px 8px 42px 7px rgba(0,0,0,0.12)}.mat-elevation-z23{box-shadow:0px 11px 14px -7px rgba(0,0,0,0.2),0px 23px 36px 3px rgba(0,0,0,0.14),0px 9px 44px 8px rgba(0,0,0,0.12)}.mat-elevation-z24{box-shadow:0px 11px 15px -7px rgba(0,0,0,0.2),0px 24px 38px 3px rgba(0,0,0,0.14),0px 9px 46px 8px rgba(0,0,0,0.12)}.mat-app-background{background-color:#fafafa;color:rgba(0,0,0,0.87)}.mat-theme-loaded-marker{display:none}.mat-autocomplete-panel{background:#fff;color:rgba(0,0,0,0.87)}.mat-autocomplete-panel:not([class*='mat-elevation-z']){box-shadow:0px 2px 4px -1px rgba(0,0,0,0.2),0px 4px 5px 0px rgba(0,0,0,0.14),0px 1px 10px 0px rgba(0,0,0,0.12)}.mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover){background:#fff}.mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover):not(.mat-option-disabled){color:rgba(0,0,0,0.87)}.mat-badge-content{color:#fff;background:#135f7f}@media (-ms-high-contrast: active){.mat-badge-content{outline:solid 1px;border-radius:0}}.mat-badge-accent .mat-badge-content{background:#006841;color:#fff}.mat-badge-warn .mat-badge-content{color:#fff;background:#8e3e52}.mat-badge{position:relative}.mat-badge-hidden .mat-badge-content{display:none}.mat-badge-disabled .mat-badge-content{background:#b9b9b9;color:rgba(0,0,0,0.38)}.mat-badge-content{position:absolute;text-align:center;display:inline-block;border-radius:50%;transition:transform 200ms ease-in-out;transform:scale(0.6);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;pointer-events:none}.mat-badge-content.mat-badge-active{transform:none}.mat-badge-small .mat-badge-content{width:16px;height:16px;line-height:16px}.mat-badge-small.mat-badge-above .mat-badge-content{top:-8px}.mat-badge-small.mat-badge-below .mat-badge-content{bottom:-8px}.mat-badge-small.mat-badge-before .mat-badge-content{left:-16px}[dir='rtl'] .mat-badge-small.mat-badge-before .mat-badge-content{left:auto;right:-16px}.mat-badge-small.mat-badge-after .mat-badge-content{right:-16px}[dir='rtl'] .mat-badge-small.mat-badge-after .mat-badge-content{right:auto;left:-16px}.mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-8px}[dir='rtl'] .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-8px}.mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-8px}[dir='rtl'] .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-8px}.mat-badge-medium .mat-badge-content{width:22px;height:22px;line-height:22px}.mat-badge-medium.mat-badge-above .mat-badge-content{top:-11px}.mat-badge-medium.mat-badge-below .mat-badge-content{bottom:-11px}.mat-badge-medium.mat-badge-before .mat-badge-content{left:-22px}[dir='rtl'] .mat-badge-medium.mat-badge-before .mat-badge-content{left:auto;right:-22px}.mat-badge-medium.mat-badge-after .mat-badge-content{right:-22px}[dir='rtl'] .mat-badge-medium.mat-badge-after .mat-badge-content{right:auto;left:-22px}.mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-11px}[dir='rtl'] .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-11px}.mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-11px}[dir='rtl'] .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-11px}.mat-badge-large .mat-badge-content{width:28px;height:28px;line-height:28px}.mat-badge-large.mat-badge-above .mat-badge-content{top:-14px}.mat-badge-large.mat-badge-below .mat-badge-content{bottom:-14px}.mat-badge-large.mat-badge-before .mat-badge-content{left:-28px}[dir='rtl'] .mat-badge-large.mat-badge-before .mat-badge-content{left:auto;right:-28px}.mat-badge-large.mat-badge-after .mat-badge-content{right:-28px}[dir='rtl'] .mat-badge-large.mat-badge-after .mat-badge-content{right:auto;left:-28px}.mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-14px}[dir='rtl'] .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-14px}.mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-14px}[dir='rtl'] .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-14px}.mat-bottom-sheet-container{box-shadow:0px 8px 10px -5px rgba(0,0,0,0.2),0px 16px 24px 2px rgba(0,0,0,0.14),0px 6px 30px 5px rgba(0,0,0,0.12);background:#fff;color:rgba(0,0,0,0.87)}.mat-button,.mat-icon-button,.mat-stroked-button{color:inherit;background:transparent}.mat-button.mat-primary,.mat-icon-button.mat-primary,.mat-stroked-button.mat-primary{color:#135f7f}.mat-button.mat-accent,.mat-icon-button.mat-accent,.mat-stroked-button.mat-accent{color:#006841}.mat-button.mat-warn,.mat-icon-button.mat-warn,.mat-stroked-button.mat-warn{color:#8e3e52}.mat-button.mat-primary[disabled],.mat-button.mat-accent[disabled],.mat-button.mat-warn[disabled],.mat-button[disabled][disabled],.mat-icon-button.mat-primary[disabled],.mat-icon-button.mat-accent[disabled],.mat-icon-button.mat-warn[disabled],.mat-icon-button[disabled][disabled],.mat-stroked-button.mat-primary[disabled],.mat-stroked-button.mat-accent[disabled],.mat-stroked-button.mat-warn[disabled],.mat-stroked-button[disabled][disabled]{color:rgba(0,0,0,0.26)}.mat-button.mat-primary .mat-button-focus-overlay,.mat-icon-button.mat-primary .mat-button-focus-overlay,.mat-stroked-button.mat-primary .mat-button-focus-overlay{background-color:#135f7f}.mat-button.mat-accent .mat-button-focus-overlay,.mat-icon-button.mat-accent .mat-button-focus-overlay,.mat-stroked-button.mat-accent .mat-button-focus-overlay{background-color:#006841}.mat-button.mat-warn .mat-button-focus-overlay,.mat-icon-button.mat-warn .mat-button-focus-overlay,.mat-stroked-button.mat-warn .mat-button-focus-overlay{background-color:#8e3e52}.mat-button[disabled] .mat-button-focus-overlay,.mat-icon-button[disabled] .mat-button-focus-overlay,.mat-stroked-button[disabled] .mat-button-focus-overlay{background-color:transparent}.mat-button .mat-ripple-element,.mat-icon-button .mat-ripple-element,.mat-stroked-button .mat-ripple-element{opacity:.1;background-color:currentColor}.mat-button-focus-overlay{background:#000}.mat-stroked-button:not([disabled]){border-color:rgba(0,0,0,0.12)}.mat-flat-button,.mat-raised-button,.mat-fab,.mat-mini-fab{color:rgba(0,0,0,0.87);background-color:#fff}.mat-flat-button.mat-primary,.mat-raised-button.mat-primary,.mat-fab.mat-primary,.mat-mini-fab.mat-primary{color:#fff}.mat-flat-button.mat-accent,.mat-raised-button.mat-accent,.mat-fab.mat-accent,.mat-mini-fab.mat-accent{color:#fff}.mat-flat-button.mat-warn,.mat-raised-button.mat-warn,.mat-fab.mat-warn,.mat-mini-fab.mat-warn{color:#fff}.mat-flat-button.mat-primary[disabled],.mat-flat-button.mat-accent[disabled],.mat-flat-button.mat-warn[disabled],.mat-flat-button[disabled][disabled],.mat-raised-button.mat-primary[disabled],.mat-raised-button.mat-accent[disabled],.mat-raised-button.mat-warn[disabled],.mat-raised-button[disabled][disabled],.mat-fab.mat-primary[disabled],.mat-fab.mat-accent[disabled],.mat-fab.mat-warn[disabled],.mat-fab[disabled][disabled],.mat-mini-fab.mat-primary[disabled],.mat-mini-fab.mat-accent[disabled],.mat-mini-fab.mat-warn[disabled],.mat-mini-fab[disabled][disabled]{color:rgba(0,0,0,0.26)}.mat-flat-button.mat-primary,.mat-raised-button.mat-primary,.mat-fab.mat-primary,.mat-mini-fab.mat-primary{background-color:#135f7f}.mat-flat-button.mat-accent,.mat-raised-button.mat-accent,.mat-fab.mat-accent,.mat-mini-fab.mat-accent{background-color:#006841}.mat-flat-button.mat-warn,.mat-raised-button.mat-warn,.mat-fab.mat-warn,.mat-mini-fab.mat-warn{background-color:#8e3e52}.mat-flat-button.mat-primary[disabled],.mat-flat-button.mat-accent[disabled],.mat-flat-button.mat-warn[disabled],.mat-flat-button[disabled][disabled],.mat-raised-button.mat-primary[disabled],.mat-raised-button.mat-accent[disabled],.mat-raised-button.mat-warn[disabled],.mat-raised-button[disabled][disabled],.mat-fab.mat-primary[disabled],.mat-fab.mat-accent[disabled],.mat-fab.mat-warn[disabled],.mat-fab[disabled][disabled],.mat-mini-fab.mat-primary[disabled],.mat-mini-fab.mat-accent[disabled],.mat-mini-fab.mat-warn[disabled],.mat-mini-fab[disabled][disabled]{background-color:rgba(0,0,0,0.12)}.mat-flat-button.mat-primary .mat-ripple-element,.mat-raised-button.mat-primary .mat-ripple-element,.mat-fab.mat-primary .mat-ripple-element,.mat-mini-fab.mat-primary .mat-ripple-element{background-color:rgba(255,255,255,0.1)}.mat-flat-button.mat-accent .mat-ripple-element,.mat-raised-button.mat-accent .mat-ripple-element,.mat-fab.mat-accent .mat-ripple-element,.mat-mini-fab.mat-accent .mat-ripple-element{background-color:rgba(255,255,255,0.1)}.mat-flat-button.mat-warn .mat-ripple-element,.mat-raised-button.mat-warn .mat-ripple-element,.mat-fab.mat-warn .mat-ripple-element,.mat-mini-fab.mat-warn .mat-ripple-element{background-color:rgba(255,255,255,0.1)}.mat-stroked-button:not([class*='mat-elevation-z']),.mat-flat-button:not([class*='mat-elevation-z']){box-shadow:0px 0px 0px 0px rgba(0,0,0,0.2),0px 0px 0px 0px rgba(0,0,0,0.14),0px 0px 0px 0px rgba(0,0,0,0.12)}.mat-raised-button:not([class*='mat-elevation-z']){box-shadow:0px 3px 1px -2px rgba(0,0,0,0.2),0px 2px 2px 0px rgba(0,0,0,0.14),0px 1px 5px 0px rgba(0,0,0,0.12)}.mat-raised-button:not([disabled]):active:not([class*='mat-elevation-z']){box-shadow:0px 5px 5px -3px rgba(0,0,0,0.2),0px 8px 10px 1px rgba(0,0,0,0.14),0px 3px 14px 2px rgba(0,0,0,0.12)}.mat-raised-button[disabled]:not([class*='mat-elevation-z']){box-shadow:0px 0px 0px 0px rgba(0,0,0,0.2),0px 0px 0px 0px rgba(0,0,0,0.14),0px 0px 0px 0px rgba(0,0,0,0.12)}.mat-fab:not([class*='mat-elevation-z']),.mat-mini-fab:not([class*='mat-elevation-z']){box-shadow:0px 3px 5px -1px rgba(0,0,0,0.2),0px 6px 10px 0px rgba(0,0,0,0.14),0px 1px 18px 0px rgba(0,0,0,0.12)}.mat-fab:not([disabled]):active:not([class*='mat-elevation-z']),.mat-mini-fab:not([disabled]):active:not([class*='mat-elevation-z']){box-shadow:0px 7px 8px -4px rgba(0,0,0,0.2),0px 12px 17px 2px rgba(0,0,0,0.14),0px 5px 22px 4px rgba(0,0,0,0.12)}.mat-fab[disabled]:not([class*='mat-elevation-z']),.mat-mini-fab[disabled]:not([class*='mat-elevation-z']){box-shadow:0px 0px 0px 0px rgba(0,0,0,0.2),0px 0px 0px 0px rgba(0,0,0,0.14),0px 0px 0px 0px rgba(0,0,0,0.12)}.mat-button-toggle-standalone,.mat-button-toggle-group{box-shadow:0px 3px 1px -2px rgba(0,0,0,0.2),0px 2px 2px 0px rgba(0,0,0,0.14),0px 1px 5px 0px rgba(0,0,0,0.12)}.mat-button-toggle-standalone.mat-button-toggle-appearance-standard,.mat-button-toggle-group-appearance-standard{box-shadow:none}.mat-button-toggle{color:rgba(0,0,0,0.38)}.mat-button-toggle .mat-button-toggle-focus-overlay{background-color:rgba(0,0,0,0.12)}.mat-button-toggle-appearance-standard{color:rgba(0,0,0,0.87);background:#fff}.mat-button-toggle-appearance-standard .mat-button-toggle-focus-overlay{background-color:#000}.mat-button-toggle-group-appearance-standard .mat-button-toggle+.mat-button-toggle{border-left:solid 1px rgba(0,0,0,0.12)}[dir='rtl'] .mat-button-toggle-group-appearance-standard .mat-button-toggle+.mat-button-toggle{border-left:none;border-right:solid 1px rgba(0,0,0,0.12)}.mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle+.mat-button-toggle{border-left:none;border-right:none;border-top:solid 1px rgba(0,0,0,0.12)}.mat-button-toggle-checked{background-color:#e0e0e0;color:rgba(0,0,0,0.54)}.mat-button-toggle-checked.mat-button-toggle-appearance-standard{color:rgba(0,0,0,0.87)}.mat-button-toggle-disabled{color:rgba(0,0,0,0.26);background-color:#eee}.mat-button-toggle-disabled.mat-button-toggle-appearance-standard{background:#fff}.mat-button-toggle-disabled.mat-button-toggle-checked{background-color:#bdbdbd}.mat-button-toggle-standalone.mat-button-toggle-appearance-standard,.mat-button-toggle-group-appearance-standard{border:solid 1px rgba(0,0,0,0.12)}.mat-card{background:#fff;color:rgba(0,0,0,0.87)}.mat-card:not([class*='mat-elevation-z']){box-shadow:0px 2px 1px -1px rgba(0,0,0,0.2),0px 1px 1px 0px rgba(0,0,0,0.14),0px 1px 3px 0px rgba(0,0,0,0.12)}.mat-card.mat-card-flat:not([class*='mat-elevation-z']){box-shadow:0px 0px 0px 0px rgba(0,0,0,0.2),0px 0px 0px 0px rgba(0,0,0,0.14),0px 0px 0px 0px rgba(0,0,0,0.12)}.mat-card-subtitle{color:rgba(0,0,0,0.54)}.mat-checkbox-frame{border-color:rgba(0,0,0,0.54)}.mat-checkbox-checkmark{fill:#fafafa}.mat-checkbox-checkmark-path{stroke:#fafafa !important}@media (-ms-high-contrast: black-on-white){.mat-checkbox-checkmark-path{stroke:#000 !important}}.mat-checkbox-mixedmark{background-color:#fafafa}.mat-checkbox-indeterminate.mat-primary .mat-checkbox-background,.mat-checkbox-checked.mat-primary .mat-checkbox-background{background-color:#135f7f}.mat-checkbox-indeterminate.mat-accent .mat-checkbox-background,.mat-checkbox-checked.mat-accent .mat-checkbox-background{background-color:#006841}.mat-checkbox-indeterminate.mat-warn .mat-checkbox-background,.mat-checkbox-checked.mat-warn .mat-checkbox-background{background-color:#8e3e52}.mat-checkbox-disabled.mat-checkbox-checked .mat-checkbox-background,.mat-checkbox-disabled.mat-checkbox-indeterminate .mat-checkbox-background{background-color:#b0b0b0}.mat-checkbox-disabled:not(.mat-checkbox-checked) .mat-checkbox-frame{border-color:#b0b0b0}.mat-checkbox-disabled .mat-checkbox-label{color:rgba(0,0,0,0.54)}@media (-ms-high-contrast: active){.mat-checkbox-disabled{opacity:0.5}}@media (-ms-high-contrast: active){.mat-checkbox-background{background:none}}.mat-checkbox:not(.mat-checkbox-disabled).mat-primary .mat-checkbox-ripple .mat-ripple-element{background-color:#135f7f}.mat-checkbox:not(.mat-checkbox-disabled).mat-accent .mat-checkbox-ripple .mat-ripple-element{background-color:#006841}.mat-checkbox:not(.mat-checkbox-disabled).mat-warn .mat-checkbox-ripple .mat-ripple-element{background-color:#8e3e52}.mat-chip.mat-standard-chip{background-color:#e0e0e0;color:rgba(0,0,0,0.87)}.mat-chip.mat-standard-chip .mat-chip-remove{color:rgba(0,0,0,0.87);opacity:0.4}.mat-chip.mat-standard-chip:not(.mat-chip-disabled):active{box-shadow:0px 3px 3px -2px rgba(0,0,0,0.2),0px 3px 4px 0px rgba(0,0,0,0.14),0px 1px 8px 0px rgba(0,0,0,0.12)}.mat-chip.mat-standard-chip:not(.mat-chip-disabled) .mat-chip-remove:hover{opacity:0.54}.mat-chip.mat-standard-chip.mat-chip-disabled{opacity:0.4}.mat-chip.mat-standard-chip::after{background:#000}.mat-chip.mat-standard-chip.mat-chip-selected.mat-primary{background-color:#135f7f;color:#fff}.mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-chip-remove{color:#fff;opacity:0.4}.mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-ripple-element{background:rgba(255,255,255,0.1)}.mat-chip.mat-standard-chip.mat-chip-selected.mat-warn{background-color:#8e3e52;color:#fff}.mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-chip-remove{color:#fff;opacity:0.4}.mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-ripple-element{background:rgba(255,255,255,0.1)}.mat-chip.mat-standard-chip.mat-chip-selected.mat-accent{background-color:#006841;color:#fff}.mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-chip-remove{color:#fff;opacity:0.4}.mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-ripple-element{background:rgba(255,255,255,0.1)}.mat-table{background:#fff}.mat-table thead,.mat-table tbody,.mat-table tfoot,mat-header-row,mat-row,mat-footer-row,[mat-header-row],[mat-row],[mat-footer-row],.mat-table-sticky{background:inherit}mat-row,mat-header-row,mat-footer-row,th.mat-header-cell,td.mat-cell,td.mat-footer-cell{border-bottom-color:rgba(0,0,0,0.12)}.mat-header-cell{color:rgba(0,0,0,0.54)}.mat-cell,.mat-footer-cell{color:rgba(0,0,0,0.87)}.mat-calendar-arrow{border-top-color:rgba(0,0,0,0.54)}.mat-datepicker-toggle,.mat-datepicker-content .mat-calendar-next-button,.mat-datepicker-content .mat-calendar-previous-button{color:rgba(0,0,0,0.54)}.mat-calendar-table-header{color:rgba(0,0,0,0.38)}.mat-calendar-table-header-divider::after{background:rgba(0,0,0,0.12)}.mat-calendar-body-label{color:rgba(0,0,0,0.54)}.mat-calendar-body-cell-content{color:rgba(0,0,0,0.87);border-color:transparent}.mat-calendar-body-disabled>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected){color:rgba(0,0,0,0.38)}.mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected),.cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected),.cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected){background-color:rgba(0,0,0,0.04)}.mat-calendar-body-today:not(.mat-calendar-body-selected){border-color:rgba(0,0,0,0.38)}.mat-calendar-body-disabled>.mat-calendar-body-today:not(.mat-calendar-body-selected){border-color:rgba(0,0,0,0.18)}.mat-calendar-body-selected{background-color:#135f7f;color:#fff}.mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:rgba(19,95,127,0.4)}.mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #fff}.mat-datepicker-content{box-shadow:0px 2px 4px -1px rgba(0,0,0,0.2),0px 4px 5px 0px rgba(0,0,0,0.14),0px 1px 10px 0px rgba(0,0,0,0.12);background-color:#fff;color:rgba(0,0,0,0.87)}.mat-datepicker-content.mat-accent .mat-calendar-body-selected{background-color:#006841;color:#fff}.mat-datepicker-content.mat-accent .mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:rgba(0,104,65,0.4)}.mat-datepicker-content.mat-accent .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #fff}.mat-datepicker-content.mat-warn .mat-calendar-body-selected{background-color:#8e3e52;color:#fff}.mat-datepicker-content.mat-warn .mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:rgba(142,62,82,0.4)}.mat-datepicker-content.mat-warn .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #fff}.mat-datepicker-content-touch{box-shadow:0px 0px 0px 0px rgba(0,0,0,0.2),0px 0px 0px 0px rgba(0,0,0,0.14),0px 0px 0px 0px rgba(0,0,0,0.12)}.mat-datepicker-toggle-active{color:#135f7f}.mat-datepicker-toggle-active.mat-accent{color:#006841}.mat-datepicker-toggle-active.mat-warn{color:#8e3e52}.mat-dialog-container{box-shadow:0px 11px 15px -7px rgba(0,0,0,0.2),0px 24px 38px 3px rgba(0,0,0,0.14),0px 9px 46px 8px rgba(0,0,0,0.12);background:#fff;color:rgba(0,0,0,0.87)}.mat-divider{border-top-color:rgba(0,0,0,0.12)}.mat-divider-vertical{border-right-color:rgba(0,0,0,0.12)}.mat-expansion-panel{background:#fff;color:rgba(0,0,0,0.87)}.mat-expansion-panel:not([class*='mat-elevation-z']){box-shadow:0px 3px 1px -2px rgba(0,0,0,0.2),0px 2px 2px 0px rgba(0,0,0,0.14),0px 1px 5px 0px rgba(0,0,0,0.12)}.mat-action-row{border-top-color:rgba(0,0,0,0.12)}.mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled='true']).cdk-keyboard-focused,.mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled='true']).cdk-program-focused,.mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled='true']):hover{background:rgba(0,0,0,0.04)}@media (hover: none){.mat-expansion-panel:not(.mat-expanded):not([aria-disabled='true']) .mat-expansion-panel-header:hover{background:#fff}}.mat-expansion-panel-header-title{color:rgba(0,0,0,0.87)}.mat-expansion-panel-header-description,.mat-expansion-indicator::after{color:rgba(0,0,0,0.54)}.mat-expansion-panel-header[aria-disabled='true']{color:rgba(0,0,0,0.26)}.mat-expansion-panel-header[aria-disabled='true'] .mat-expansion-panel-header-title,.mat-expansion-panel-header[aria-disabled='true'] .mat-expansion-panel-header-description{color:inherit}.mat-form-field-label{color:rgba(0,0,0,0.6)}.mat-hint{color:rgba(0,0,0,0.6)}.mat-form-field.mat-focused .mat-form-field-label{color:#135f7f}.mat-form-field.mat-focused .mat-form-field-label.mat-accent{color:#006841}.mat-form-field.mat-focused .mat-form-field-label.mat-warn{color:#8e3e52}.mat-focused .mat-form-field-required-marker{color:#006841}.mat-form-field-ripple{background-color:rgba(0,0,0,0.87)}.mat-form-field.mat-focused .mat-form-field-ripple{background-color:#135f7f}.mat-form-field.mat-focused .mat-form-field-ripple.mat-accent{background-color:#006841}.mat-form-field.mat-focused .mat-form-field-ripple.mat-warn{background-color:#8e3e52}.mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid) .mat-form-field-infix::after{color:#135f7f}.mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-accent .mat-form-field-infix::after{color:#006841}.mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-warn .mat-form-field-infix::after{color:#8e3e52}.mat-form-field.mat-form-field-invalid .mat-form-field-label{color:#8e3e52}.mat-form-field.mat-form-field-invalid .mat-form-field-label.mat-accent,.mat-form-field.mat-form-field-invalid .mat-form-field-label .mat-form-field-required-marker{color:#8e3e52}.mat-form-field.mat-form-field-invalid .mat-form-field-ripple,.mat-form-field.mat-form-field-invalid .mat-form-field-ripple.mat-accent{background-color:#8e3e52}.mat-error{color:#8e3e52}.mat-form-field-appearance-legacy .mat-form-field-label{color:rgba(0,0,0,0.54)}.mat-form-field-appearance-legacy .mat-hint{color:rgba(0,0,0,0.54)}.mat-form-field-appearance-legacy .mat-form-field-underline{background-color:rgba(0,0,0,0.42)}.mat-form-field-appearance-legacy.mat-form-field-disabled .mat-form-field-underline{background-image:linear-gradient(to right, rgba(0,0,0,0.42) 0%, rgba(0,0,0,0.42) 33%, transparent 0%);background-size:4px 100%;background-repeat:repeat-x}.mat-form-field-appearance-standard .mat-form-field-underline{background-color:rgba(0,0,0,0.42)}.mat-form-field-appearance-standard.mat-form-field-disabled .mat-form-field-underline{background-image:linear-gradient(to right, rgba(0,0,0,0.42) 0%, rgba(0,0,0,0.42) 33%, transparent 0%);background-size:4px 100%;background-repeat:repeat-x}.mat-form-field-appearance-fill .mat-form-field-flex{background-color:rgba(0,0,0,0.04)}.mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-flex{background-color:rgba(0,0,0,0.02)}.mat-form-field-appearance-fill .mat-form-field-underline::before{background-color:rgba(0,0,0,0.42)}.mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-label{color:rgba(0,0,0,0.38)}.mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-underline::before{background-color:transparent}.mat-form-field-appearance-outline .mat-form-field-outline{color:rgba(0,0,0,0.12)}.mat-form-field-appearance-outline .mat-form-field-outline-thick{color:rgba(0,0,0,0.87)}.mat-form-field-appearance-outline.mat-focused .mat-form-field-outline-thick{color:#135f7f}.mat-form-field-appearance-outline.mat-focused.mat-accent .mat-form-field-outline-thick{color:#006841}.mat-form-field-appearance-outline.mat-focused.mat-warn .mat-form-field-outline-thick{color:#8e3e52}.mat-form-field-appearance-outline.mat-form-field-invalid.mat-form-field-invalid .mat-form-field-outline-thick{color:#8e3e52}.mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-label{color:rgba(0,0,0,0.38)}.mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-outline{color:rgba(0,0,0,0.06)}.mat-icon.mat-primary{color:#135f7f}.mat-icon.mat-accent{color:#006841}.mat-icon.mat-warn{color:#8e3e52}.mat-form-field-type-mat-native-select .mat-form-field-infix::after{color:rgba(0,0,0,0.54)}.mat-input-element:disabled,.mat-form-field-type-mat-native-select.mat-form-field-disabled .mat-form-field-infix::after{color:rgba(0,0,0,0.38)}.mat-input-element{caret-color:#135f7f}.mat-input-element::placeholder{color:rgba(0,0,0,0.42)}.mat-input-element::-moz-placeholder{color:rgba(0,0,0,0.42)}.mat-input-element::-webkit-input-placeholder{color:rgba(0,0,0,0.42)}.mat-input-element:-ms-input-placeholder{color:rgba(0,0,0,0.42)}.mat-accent .mat-input-element{caret-color:#006841}.mat-warn .mat-input-element,.mat-form-field-invalid .mat-input-element{caret-color:#8e3e52}.mat-form-field-type-mat-native-select.mat-form-field-invalid .mat-form-field-infix::after{color:#8e3e52}.mat-list-base .mat-list-item{color:rgba(0,0,0,0.87)}.mat-list-base .mat-list-option{color:rgba(0,0,0,0.87)}.mat-list-base .mat-subheader{color:rgba(0,0,0,0.54)}.mat-list-item-disabled{background-color:#eee}.mat-list-option:hover,.mat-list-option:focus,.mat-nav-list .mat-list-item:hover,.mat-nav-list .mat-list-item:focus,.mat-action-list .mat-list-item:hover,.mat-action-list .mat-list-item:focus{background:rgba(0,0,0,0.04)}.mat-menu-panel{background:#fff}.mat-menu-panel:not([class*='mat-elevation-z']){box-shadow:0px 2px 4px -1px rgba(0,0,0,0.2),0px 4px 5px 0px rgba(0,0,0,0.14),0px 1px 10px 0px rgba(0,0,0,0.12)}.mat-menu-item{background:transparent;color:rgba(0,0,0,0.87)}.mat-menu-item[disabled],.mat-menu-item[disabled]::after{color:rgba(0,0,0,0.38)}.mat-menu-item .mat-icon-no-color,.mat-menu-item-submenu-trigger::after{color:rgba(0,0,0,0.54)}.mat-menu-item:hover:not([disabled]),.mat-menu-item.cdk-program-focused:not([disabled]),.mat-menu-item.cdk-keyboard-focused:not([disabled]),.mat-menu-item-highlighted:not([disabled]){background:rgba(0,0,0,0.04)}.mat-paginator{background:#fff}.mat-paginator,.mat-paginator-page-size .mat-select-trigger{color:rgba(0,0,0,0.54)}.mat-paginator-decrement,.mat-paginator-increment{border-top:2px solid rgba(0,0,0,0.54);border-right:2px solid rgba(0,0,0,0.54)}.mat-paginator-first,.mat-paginator-last{border-top:2px solid rgba(0,0,0,0.54)}.mat-icon-button[disabled] .mat-paginator-decrement,.mat-icon-button[disabled] .mat-paginator-increment,.mat-icon-button[disabled] .mat-paginator-first,.mat-icon-button[disabled] .mat-paginator-last{border-color:rgba(0,0,0,0.38)}.mat-progress-bar-background{fill:#1a80ab}.mat-progress-bar-buffer{background-color:#1a80ab}.mat-progress-bar-fill::after{background-color:#135f7f}.mat-progress-bar.mat-accent .mat-progress-bar-background{fill:#009b61}.mat-progress-bar.mat-accent .mat-progress-bar-buffer{background-color:#009b61}.mat-progress-bar.mat-accent .mat-progress-bar-fill::after{background-color:#006841}.mat-progress-bar.mat-warn .mat-progress-bar-background{fill:#b24e67}.mat-progress-bar.mat-warn .mat-progress-bar-buffer{background-color:#b24e67}.mat-progress-bar.mat-warn .mat-progress-bar-fill::after{background-color:#8e3e52}.mat-progress-spinner circle,.mat-spinner circle{stroke:#135f7f}.mat-progress-spinner.mat-accent circle,.mat-spinner.mat-accent circle{stroke:#006841}.mat-progress-spinner.mat-warn circle,.mat-spinner.mat-warn circle{stroke:#8e3e52}.mat-radio-outer-circle{border-color:rgba(0,0,0,0.54)}.mat-radio-button.mat-primary.mat-radio-checked .mat-radio-outer-circle{border-color:#135f7f}.mat-radio-button.mat-primary .mat-radio-inner-circle,.mat-radio-button.mat-primary .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.mat-radio-button.mat-primary.mat-radio-checked .mat-radio-persistent-ripple,.mat-radio-button.mat-primary:active .mat-radio-persistent-ripple{background-color:#135f7f}.mat-radio-button.mat-accent.mat-radio-checked .mat-radio-outer-circle{border-color:#006841}.mat-radio-button.mat-accent .mat-radio-inner-circle,.mat-radio-button.mat-accent .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.mat-radio-button.mat-accent.mat-radio-checked .mat-radio-persistent-ripple,.mat-radio-button.mat-accent:active .mat-radio-persistent-ripple{background-color:#006841}.mat-radio-button.mat-warn.mat-radio-checked .mat-radio-outer-circle{border-color:#8e3e52}.mat-radio-button.mat-warn .mat-radio-inner-circle,.mat-radio-button.mat-warn .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.mat-radio-button.mat-warn.mat-radio-checked .mat-radio-persistent-ripple,.mat-radio-button.mat-warn:active .mat-radio-persistent-ripple{background-color:#8e3e52}.mat-radio-button.mat-radio-disabled.mat-radio-checked .mat-radio-outer-circle,.mat-radio-button.mat-radio-disabled .mat-radio-outer-circle{border-color:rgba(0,0,0,0.38)}.mat-radio-button.mat-radio-disabled .mat-radio-ripple .mat-ripple-element,.mat-radio-button.mat-radio-disabled .mat-radio-inner-circle{background-color:rgba(0,0,0,0.38)}.mat-radio-button.mat-radio-disabled .mat-radio-label-content{color:rgba(0,0,0,0.38)}.mat-radio-button .mat-ripple-element{background-color:#000}.mat-select-value{color:rgba(0,0,0,0.87)}.mat-select-placeholder{color:rgba(0,0,0,0.42)}.mat-select-disabled .mat-select-value{color:rgba(0,0,0,0.38)}.mat-select-arrow{color:rgba(0,0,0,0.54)}.mat-select-panel{background:#fff}.mat-select-panel:not([class*='mat-elevation-z']){box-shadow:0px 2px 4px -1px rgba(0,0,0,0.2),0px 4px 5px 0px rgba(0,0,0,0.14),0px 1px 10px 0px rgba(0,0,0,0.12)}.mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){background:rgba(0,0,0,0.12)}.mat-form-field.mat-focused.mat-primary .mat-select-arrow{color:#135f7f}.mat-form-field.mat-focused.mat-accent .mat-select-arrow{color:#006841}.mat-form-field.mat-focused.mat-warn .mat-select-arrow{color:#8e3e52}.mat-form-field .mat-select.mat-select-invalid .mat-select-arrow{color:#8e3e52}.mat-form-field .mat-select.mat-select-disabled .mat-select-arrow{color:rgba(0,0,0,0.38)}.mat-drawer-container{background-color:#fafafa;color:rgba(0,0,0,0.87)}.mat-drawer{background-color:#fff;color:rgba(0,0,0,0.87)}.mat-drawer.mat-drawer-push{background-color:#fff}.mat-drawer:not(.mat-drawer-side){box-shadow:0px 8px 10px -5px rgba(0,0,0,0.2),0px 16px 24px 2px rgba(0,0,0,0.14),0px 6px 30px 5px rgba(0,0,0,0.12)}.mat-drawer-side{border-right:solid 1px rgba(0,0,0,0.12)}.mat-drawer-side.mat-drawer-end{border-left:solid 1px rgba(0,0,0,0.12);border-right:none}[dir='rtl'] .mat-drawer-side{border-left:solid 1px rgba(0,0,0,0.12);border-right:none}[dir='rtl'] .mat-drawer-side.mat-drawer-end{border-left:none;border-right:solid 1px rgba(0,0,0,0.12)}.mat-drawer-backdrop.mat-drawer-shown{background-color:rgba(0,0,0,0.6)}.mat-slide-toggle.mat-checked .mat-slide-toggle-thumb{background-color:#006841}.mat-slide-toggle.mat-checked .mat-slide-toggle-bar{background-color:rgba(0,104,65,0.54)}.mat-slide-toggle.mat-checked .mat-ripple-element{background-color:#006841}.mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-thumb{background-color:#135f7f}.mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-bar{background-color:rgba(19,95,127,0.54)}.mat-slide-toggle.mat-primary.mat-checked .mat-ripple-element{background-color:#135f7f}.mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-thumb{background-color:#8e3e52}.mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-bar{background-color:rgba(142,62,82,0.54)}.mat-slide-toggle.mat-warn.mat-checked .mat-ripple-element{background-color:#8e3e52}.mat-slide-toggle:not(.mat-checked) .mat-ripple-element{background-color:#000}.mat-slide-toggle-thumb{box-shadow:0px 2px 1px -1px rgba(0,0,0,0.2),0px 1px 1px 0px rgba(0,0,0,0.14),0px 1px 3px 0px rgba(0,0,0,0.12);background-color:#fafafa}.mat-slide-toggle-bar{background-color:rgba(0,0,0,0.38)}.mat-slider-track-background{background-color:rgba(0,0,0,0.26)}.mat-primary .mat-slider-track-fill,.mat-primary .mat-slider-thumb,.mat-primary .mat-slider-thumb-label{background-color:#135f7f}.mat-primary .mat-slider-thumb-label-text{color:#fff}.mat-accent .mat-slider-track-fill,.mat-accent .mat-slider-thumb,.mat-accent .mat-slider-thumb-label{background-color:#006841}.mat-accent .mat-slider-thumb-label-text{color:#fff}.mat-warn .mat-slider-track-fill,.mat-warn .mat-slider-thumb,.mat-warn .mat-slider-thumb-label{background-color:#8e3e52}.mat-warn .mat-slider-thumb-label-text{color:#fff}.mat-slider-focus-ring{background-color:rgba(0,104,65,0.2)}.mat-slider:hover .mat-slider-track-background,.cdk-focused .mat-slider-track-background{background-color:rgba(0,0,0,0.38)}.mat-slider-disabled .mat-slider-track-background,.mat-slider-disabled .mat-slider-track-fill,.mat-slider-disabled .mat-slider-thumb{background-color:rgba(0,0,0,0.26)}.mat-slider-disabled:hover .mat-slider-track-background{background-color:rgba(0,0,0,0.26)}.mat-slider-min-value .mat-slider-focus-ring{background-color:rgba(0,0,0,0.12)}.mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb,.mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb-label{background-color:rgba(0,0,0,0.87)}.mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb,.mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb-label{background-color:rgba(0,0,0,0.26)}.mat-slider-min-value:not(.mat-slider-thumb-label-showing) .mat-slider-thumb{border-color:rgba(0,0,0,0.26);background-color:transparent}.mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover .mat-slider-thumb,.mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused .mat-slider-thumb{border-color:rgba(0,0,0,0.38)}.mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover.mat-slider-disabled .mat-slider-thumb,.mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused.mat-slider-disabled .mat-slider-thumb{border-color:rgba(0,0,0,0.26)}.mat-slider-has-ticks .mat-slider-wrapper::after{border-color:rgba(0,0,0,0.7)}.mat-slider-horizontal .mat-slider-ticks{background-image:repeating-linear-gradient(to right, rgba(0,0,0,0.7), rgba(0,0,0,0.7) 2px, transparent 0, transparent);background-image:-moz-repeating-linear-gradient(0.0001deg, rgba(0,0,0,0.7), rgba(0,0,0,0.7) 2px, transparent 0, transparent)}.mat-slider-vertical .mat-slider-ticks{background-image:repeating-linear-gradient(to bottom, rgba(0,0,0,0.7), rgba(0,0,0,0.7) 2px, transparent 0, transparent)}.mat-step-header.cdk-keyboard-focused,.mat-step-header.cdk-program-focused,.mat-step-header:hover{background-color:rgba(0,0,0,0.04)}@media (hover: none){.mat-step-header:hover{background:none}}.mat-step-header .mat-step-label,.mat-step-header .mat-step-optional{color:rgba(0,0,0,0.54)}.mat-step-header .mat-step-icon{background-color:rgba(0,0,0,0.54);color:#fff}.mat-step-header .mat-step-icon-selected,.mat-step-header .mat-step-icon-state-done,.mat-step-header .mat-step-icon-state-edit{background-color:#135f7f;color:#fff}.mat-step-header .mat-step-icon-state-error{background-color:transparent;color:#8e3e52}.mat-step-header .mat-step-label.mat-step-label-active{color:rgba(0,0,0,0.87)}.mat-step-header .mat-step-label.mat-step-label-error{color:#8e3e52}.mat-stepper-horizontal,.mat-stepper-vertical{background-color:#fff}.mat-stepper-vertical-line::before{border-left-color:rgba(0,0,0,0.12)}.mat-horizontal-stepper-header::before,.mat-horizontal-stepper-header::after,.mat-stepper-horizontal-line{border-top-color:rgba(0,0,0,0.12)}.mat-sort-header-arrow{color:#757575}.mat-tab-nav-bar,.mat-tab-header{border-bottom:1px solid rgba(0,0,0,0.12)}.mat-tab-group-inverted-header .mat-tab-nav-bar,.mat-tab-group-inverted-header .mat-tab-header{border-top:1px solid rgba(0,0,0,0.12);border-bottom:none}.mat-tab-label,.mat-tab-link{color:rgba(0,0,0,0.87)}.mat-tab-label.mat-tab-disabled,.mat-tab-link.mat-tab-disabled{color:rgba(0,0,0,0.38)}.mat-tab-header-pagination-chevron{border-color:rgba(0,0,0,0.87)}.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:rgba(0,0,0,0.38)}.mat-tab-group[class*='mat-background-'] .mat-tab-header,.mat-tab-nav-bar[class*='mat-background-']{border-bottom:none;border-top:none}.mat-tab-group.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-group.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-group.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-group.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:rgba(26,128,171,0.3)}.mat-tab-group.mat-primary .mat-ink-bar,.mat-tab-nav-bar.mat-primary .mat-ink-bar{background-color:#135f7f}.mat-tab-group.mat-primary.mat-background-primary .mat-ink-bar,.mat-tab-nav-bar.mat-primary.mat-background-primary .mat-ink-bar{background-color:#fff}.mat-tab-group.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-group.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-group.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-group.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:rgba(0,155,97,0.3)}.mat-tab-group.mat-accent .mat-ink-bar,.mat-tab-nav-bar.mat-accent .mat-ink-bar{background-color:#006841}.mat-tab-group.mat-accent.mat-background-accent .mat-ink-bar,.mat-tab-nav-bar.mat-accent.mat-background-accent .mat-ink-bar{background-color:#fff}.mat-tab-group.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-group.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-group.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-group.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:rgba(178,78,103,0.3)}.mat-tab-group.mat-warn .mat-ink-bar,.mat-tab-nav-bar.mat-warn .mat-ink-bar{background-color:#8e3e52}.mat-tab-group.mat-warn.mat-background-warn .mat-ink-bar,.mat-tab-nav-bar.mat-warn.mat-background-warn .mat-ink-bar{background-color:#fff}.mat-tab-group.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-group.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-group.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-group.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:rgba(26,128,171,0.3)}.mat-tab-group.mat-background-primary .mat-tab-header,.mat-tab-group.mat-background-primary .mat-tab-links,.mat-tab-nav-bar.mat-background-primary .mat-tab-header,.mat-tab-nav-bar.mat-background-primary .mat-tab-links{background-color:#135f7f}.mat-tab-group.mat-background-primary .mat-tab-label,.mat-tab-group.mat-background-primary .mat-tab-link,.mat-tab-nav-bar.mat-background-primary .mat-tab-label,.mat-tab-nav-bar.mat-background-primary .mat-tab-link{color:#fff}.mat-tab-group.mat-background-primary .mat-tab-label.mat-tab-disabled,.mat-tab-group.mat-background-primary .mat-tab-link.mat-tab-disabled,.mat-tab-nav-bar.mat-background-primary .mat-tab-label.mat-tab-disabled,.mat-tab-nav-bar.mat-background-primary .mat-tab-link.mat-tab-disabled{color:rgba(255,255,255,0.4)}.mat-tab-group.mat-background-primary .mat-tab-header-pagination-chevron,.mat-tab-nav-bar.mat-background-primary .mat-tab-header-pagination-chevron{border-color:#fff}.mat-tab-group.mat-background-primary .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.mat-tab-nav-bar.mat-background-primary .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:rgba(255,255,255,0.4)}.mat-tab-group.mat-background-primary .mat-ripple-element,.mat-tab-nav-bar.mat-background-primary .mat-ripple-element{background-color:rgba(255,255,255,0.12)}.mat-tab-group.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-group.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-group.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-group.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:rgba(0,155,97,0.3)}.mat-tab-group.mat-background-accent .mat-tab-header,.mat-tab-group.mat-background-accent .mat-tab-links,.mat-tab-nav-bar.mat-background-accent .mat-tab-header,.mat-tab-nav-bar.mat-background-accent .mat-tab-links{background-color:#006841}.mat-tab-group.mat-background-accent .mat-tab-label,.mat-tab-group.mat-background-accent .mat-tab-link,.mat-tab-nav-bar.mat-background-accent .mat-tab-label,.mat-tab-nav-bar.mat-background-accent .mat-tab-link{color:#fff}.mat-tab-group.mat-background-accent .mat-tab-label.mat-tab-disabled,.mat-tab-group.mat-background-accent .mat-tab-link.mat-tab-disabled,.mat-tab-nav-bar.mat-background-accent .mat-tab-label.mat-tab-disabled,.mat-tab-nav-bar.mat-background-accent .mat-tab-link.mat-tab-disabled{color:rgba(255,255,255,0.4)}.mat-tab-group.mat-background-accent .mat-tab-header-pagination-chevron,.mat-tab-nav-bar.mat-background-accent .mat-tab-header-pagination-chevron{border-color:#fff}.mat-tab-group.mat-background-accent .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.mat-tab-nav-bar.mat-background-accent .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:rgba(255,255,255,0.4)}.mat-tab-group.mat-background-accent .mat-ripple-element,.mat-tab-nav-bar.mat-background-accent .mat-ripple-element{background-color:rgba(255,255,255,0.12)}.mat-tab-group.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-group.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-group.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-group.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:rgba(178,78,103,0.3)}.mat-tab-group.mat-background-warn .mat-tab-header,.mat-tab-group.mat-background-warn .mat-tab-links,.mat-tab-nav-bar.mat-background-warn .mat-tab-header,.mat-tab-nav-bar.mat-background-warn .mat-tab-links{background-color:#8e3e52}.mat-tab-group.mat-background-warn .mat-tab-label,.mat-tab-group.mat-background-warn .mat-tab-link,.mat-tab-nav-bar.mat-background-warn .mat-tab-label,.mat-tab-nav-bar.mat-background-warn .mat-tab-link{color:#fff}.mat-tab-group.mat-background-warn .mat-tab-label.mat-tab-disabled,.mat-tab-group.mat-background-warn .mat-tab-link.mat-tab-disabled,.mat-tab-nav-bar.mat-background-warn .mat-tab-label.mat-tab-disabled,.mat-tab-nav-bar.mat-background-warn .mat-tab-link.mat-tab-disabled{color:rgba(255,255,255,0.4)}.mat-tab-group.mat-background-warn .mat-tab-header-pagination-chevron,.mat-tab-nav-bar.mat-background-warn .mat-tab-header-pagination-chevron{border-color:#fff}.mat-tab-group.mat-background-warn .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.mat-tab-nav-bar.mat-background-warn .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:rgba(255,255,255,0.4)}.mat-tab-group.mat-background-warn .mat-ripple-element,.mat-tab-nav-bar.mat-background-warn .mat-ripple-element{background-color:rgba(255,255,255,0.12)}.mat-toolbar{background:#f5f5f5;color:rgba(0,0,0,0.87)}.mat-toolbar.mat-primary{background:#135f7f;color:#fff}.mat-toolbar.mat-accent{background:#006841;color:#fff}.mat-toolbar.mat-warn{background:#8e3e52;color:#fff}.mat-toolbar .mat-form-field-underline,.mat-toolbar .mat-form-field-ripple,.mat-toolbar .mat-focused .mat-form-field-ripple{background-color:currentColor}.mat-toolbar .mat-form-field-label,.mat-toolbar .mat-focused .mat-form-field-label,.mat-toolbar .mat-select-value,.mat-toolbar .mat-select-arrow,.mat-toolbar .mat-form-field.mat-focused .mat-select-arrow{color:inherit}.mat-toolbar .mat-input-element{caret-color:currentColor}.mat-tooltip{background:rgba(97,97,97,0.9)}.mat-tree{background:#fff}.mat-tree-node,.mat-nested-tree-node{color:rgba(0,0,0,0.87)}.mat-snack-bar-container{color:rgba(255,255,255,0.7);background:#323232;box-shadow:0px 3px 5px -1px rgba(0,0,0,0.2),0px 6px 10px 0px rgba(0,0,0,0.14),0px 1px 18px 0px rgba(0,0,0,0.12)}.mat-simple-snackbar-action{color:#006841}[color=primary]{color:#135f7f}[color=warn]{color:#8e3e52}[color=accent]{color:#006841}[bgcolor=primary]{background-color:#135f7f}[bgcolor=warn]{background-color:#8e3e52}[bgcolor=accent]{background-color:#006841}.jstree-proton .jstree-clicked{background:#1a80ab !important}.jstree-proton :not(.jstree-disabled).jstree-hovered{background:#1a80ab !important;box-shadow:inset 0 0 1px #135f7f !important}.jstree-proton .jstree-disabled:hover{cursor:not-allowed}.adminArea{display:flex;flex-flow:row wrap}.adminArea_1{flex:1;overflow:hidden;padding:20px}.adminArea_2{overflow:hidden;padding:20px}.adminArea_3{overflow:hidden;padding:20px}.adminArea_4{overflow:hidden;padding:20px}.dndFile{border:dashed 5px grey;padding:10px;text-align:center;opacity:0.5;font-size:15px;font-weight:bolder;margin:20px}.dndFileHighlighted{opacity:1 !important;border:dashed 5px #135f7f !important;color:#135f7f} -- GitLab