Initial commit
							
								
								
									
										1
									
								
								aemo/static/css/autocomplete.min.css
									
										
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
.autocomplete{background:#fff;z-index:1000;font:14px/22px "-apple-system",BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;overflow:auto;box-sizing:border-box;border:1px solid rgba(50,50,50,.6)}.autocomplete *{font:inherit}.autocomplete>div{padding:0 4px}.autocomplete .group{background:#eee}.autocomplete>div.selected,.autocomplete>div:hover:not(.group){background:#FFF3F3;cursor:pointer}
 | 
			
		||||
							
								
								
									
										359
									
								
								aemo/static/css/main.css
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
						 | 
				
			
			@ -0,0 +1,359 @@
 | 
			
		|||
header { background-color: #fff3f3; }
 | 
			
		||||
 | 
			
		||||
a { text-decoration: none; }
 | 
			
		||||
a:hover:not(.btn) {text-decoration: underline; }
 | 
			
		||||
 | 
			
		||||
#logo-cr { display: block; height: 70px; margin: 4px; }
 | 
			
		||||
#bandeau-cr { display: block; width: 100%; height: 15px; }
 | 
			
		||||
#menu_crne { font-size: 80%; }
 | 
			
		||||
 | 
			
		||||
/* This CSS allows the footer to be always at bottom */
 | 
			
		||||
div.top-container { display: flex; min-height: 100vh; flex-direction: column; }
 | 
			
		||||
.main-content { flex: 1; }
 | 
			
		||||
 | 
			
		||||
.hidden { display: none; }
 | 
			
		||||
.red { color: red; }
 | 
			
		||||
.green { color: green; }
 | 
			
		||||
.orange { color: orange; }
 | 
			
		||||
.footer {
 | 
			
		||||
    font-size: 80%;
 | 
			
		||||
    background-color: #f8f9fa;
 | 
			
		||||
    color: #9a1629;
 | 
			
		||||
    margin-top: 2rem;
 | 
			
		||||
}
 | 
			
		||||
.spaceabovetr > td { padding-top: 0.7em; }
 | 
			
		||||
 | 
			
		||||
#bg_home {
 | 
			
		||||
    background: url(../img/SRK_DL_Portal.jpg) no-repeat center fixed;
 | 
			
		||||
    background-size: cover;
 | 
			
		||||
}
 | 
			
		||||
#home-app-line { position:absolute; bottom:112px; left:5%; }
 | 
			
		||||
 | 
			
		||||
.small { font-size: 0.9rem; }
 | 
			
		||||
.nowrap { white-space: nowrap; }
 | 
			
		||||
.icon-ui { display: inline-block; width: 1rem; height: 1rem; }
 | 
			
		||||
img.ficon { height: 1.5em; width: 1.5em; vertical-align: bottom; }
 | 
			
		||||
input[readonly] { background-color: #eee; }
 | 
			
		||||
#search-button, #reset-button { height: 2rem; min-width: 2.7rem; }
 | 
			
		||||
#reset-button img { height: 18px; }
 | 
			
		||||
 | 
			
		||||
td.zero { color: #ccc; }
 | 
			
		||||
#user-bar { position:absolute; top:40px; right:5vw; font-size:80%; }
 | 
			
		||||
#user-bar a, #user-bar button { color: #9c1717; font-weight: bold; }
 | 
			
		||||
#user-bar button { font-size: inherit; text-decoration: none; }
 | 
			
		||||
#user-bar button:hover { text-decoration: underline; }
 | 
			
		||||
#user-tools * { vertical-align: middle; }
 | 
			
		||||
 | 
			
		||||
/* For usage inside bs modal */
 | 
			
		||||
.select2-dropdown { z-index: 1100 !important; }
 | 
			
		||||
 | 
			
		||||
ul.errorlist, ul.nobullets { list-style-type: none; padding-left: 0; }
 | 
			
		||||
ul.errorlist li {
 | 
			
		||||
    background-color: #f8d7da;
 | 
			
		||||
    color: #721c24;
 | 
			
		||||
    font-weight: bold;
 | 
			
		||||
    padding: .75rem 1.25rem;
 | 
			
		||||
    margin-bottom: 1rem;
 | 
			
		||||
    border: 1px solid #ebcccc;
 | 
			
		||||
    border-radius: .25rem;
 | 
			
		||||
}
 | 
			
		||||
form.inline { display: inline-block; }
 | 
			
		||||
form label { font-weight: bold; }
 | 
			
		||||
.custom-file-label::after { content: 'Choisir'; }
 | 
			
		||||
form[name=LoginForm] input[type=text], form[name=LoginForm] input[type=password] { width: 20em; }
 | 
			
		||||
input[type=text], input[type=email] { width: 100%; }
 | 
			
		||||
#id_auth-username { width: auto; }
 | 
			
		||||
#id_mois, #id_annee { width: auto; display: inline-block; }
 | 
			
		||||
input:disabled + span.datetimeshortcuts { display: none; }
 | 
			
		||||
input:disabled + label { color: #999; font-style: italic }
 | 
			
		||||
input.card-text { width: 4em; }
 | 
			
		||||
 | 
			
		||||
textarea { min-height: 3em; }
 | 
			
		||||
textarea#id_note { width: 35em; height: 2em; }
 | 
			
		||||
textarea#id_scolarite, textarea#id_loisirs, textarea#id_activite{ width: 100%; height: 4em; }
 | 
			
		||||
textarea#id_referent_note, textarea#id_allergies, textarea#id_remarque, textarea#id_remarque_privee,
 | 
			
		||||
textarea#id_remarques {
 | 
			
		||||
  width: 100%; height: 2em;
 | 
			
		||||
}
 | 
			
		||||
textarea#id_projet, textarea#id_texte { width: 100%; height: 15em; }
 | 
			
		||||
select#id_motif_fin_suivi { width: 100%; }
 | 
			
		||||
#id_niveau_interv { width: 5em; }
 | 
			
		||||
 | 
			
		||||
#id_equipe.immediate-submit { width: auto; display: inline-block; }
 | 
			
		||||
 | 
			
		||||
form[name=DemandeForm] th { width: 25%; }
 | 
			
		||||
form[name=DemandeForm] input[type=text] { width: 100% }
 | 
			
		||||
form[name=DemandeForm] textarea#id_remarque { width: 100%; height: 2em; }
 | 
			
		||||
form[name=DemandeForm] textarea#id_autres_contacts { width: 100%; height:2em; }
 | 
			
		||||
 | 
			
		||||
form[name=PrestationForm] textarea#id_texte { width: 100%; }
 | 
			
		||||
form[name=PrestationForm] th { width: 12em; }
 | 
			
		||||
 | 
			
		||||
form[name=Suivi] input#id_service_annonceur { width: 80%; }
 | 
			
		||||
form[name=Suivi] textarea { width: 100%; height: 2em;}
 | 
			
		||||
 | 
			
		||||
form[name=JournalForm] textarea#id_texte { width: 100%; }
 | 
			
		||||
form[name=FamilleForm] textarea#id_motif_detail { width: 100%; height: 5em; }
 | 
			
		||||
input.vDateField { width: 7em; display: inline-block; }
 | 
			
		||||
input.TimeField { width: 4em; margin-left: 0.5em; }
 | 
			
		||||
input#id_duree { width: 6em; }
 | 
			
		||||
input#id_username { width: none; }
 | 
			
		||||
input#id_npa, input#id_npa_actuelle { width: 4em; }
 | 
			
		||||
input#id_sigle { width: 8em; }
 | 
			
		||||
#id_groups label, .choicearray label, .filter-form label, #id_lib_prestation label,
 | 
			
		||||
#id_membres label, #id_sig_interv label, #id_pres_interv label, #id_roles label { font-weight: normal; }
 | 
			
		||||
#id_roles { column-count: 2; }
 | 
			
		||||
 | 
			
		||||
tr.decedee td:first-child:before {
 | 
			
		||||
  content: '† ';
 | 
			
		||||
}
 | 
			
		||||
tr.decedee td {
 | 
			
		||||
  font-style: italic;
 | 
			
		||||
  opacity: 0.8;
 | 
			
		||||
}
 | 
			
		||||
span.date_theorique { color:#FF8000; font-style: italic; }
 | 
			
		||||
span.hoverimage { visibility: hidden; }
 | 
			
		||||
span.hoverimage img { cursor: pointer; }
 | 
			
		||||
div:hover > span.hoverimage, summary:hover > span.hoverimage { visibility: visible; }
 | 
			
		||||
 | 
			
		||||
#benef_table > tbody > tr > td { padding: 2px 0.3em; line-height: 1.2em; }
 | 
			
		||||
 | 
			
		||||
table.statut_suivi td {
 | 
			
		||||
    min-width: 35px;
 | 
			
		||||
    padding: 0;
 | 
			
		||||
    font-size: 10px;
 | 
			
		||||
    background-color: #eee;
 | 
			
		||||
    border: 1px solid #ccc;
 | 
			
		||||
    text-align: center;
 | 
			
		||||
}
 | 
			
		||||
table.statut_suivi { margin-top: 4px;}
 | 
			
		||||
table.statut_suivi td.filled { background-color: #AACDAA; }
 | 
			
		||||
table.statut_suivi td.current { background-color: #FFDB78; }
 | 
			
		||||
 | 
			
		||||
table.statut_suivi td div.filled { background-color: #AACDAA; }
 | 
			
		||||
table.statut_suivi td div.next { background-color: #F2F5A9; }
 | 
			
		||||
table.statut_suivi td div.urgent { background-color: #FF8000; }
 | 
			
		||||
table.statut_suivi td div.depasse { background-color: #FF0000; }
 | 
			
		||||
 | 
			
		||||
.stat_table th { padding-top: 1.5em; text-align: right; }
 | 
			
		||||
.stat_table th.month { text-align: right; width: 90px; }
 | 
			
		||||
.stat_table th.total { text-align: right; width: 90px; }
 | 
			
		||||
.stat_table th.left { text-align: left; }
 | 
			
		||||
.stat_table .app_line { background-color: #eee; }
 | 
			
		||||
.stat_table td.num { text-align: right; }
 | 
			
		||||
.stat_table tr.first td { border-top: 1px solid #999; }
 | 
			
		||||
.stat_table .subdiv2 td { background-color: beige; font-style: italic; }
 | 
			
		||||
 | 
			
		||||
p.app_line { background-color: #eee; padding: 0.2em 0 0.6em 0.2em; }
 | 
			
		||||
 | 
			
		||||
#id_mandat_ope, #id_motif_demande, #id_demarche {
 | 
			
		||||
  display: flex; flex-wrap: wrap;
 | 
			
		||||
}
 | 
			
		||||
#id_mandat_ope > div, #id_motif_demande > div, #id_demarche > div {
 | 
			
		||||
  padding-right: 1.5em;
 | 
			
		||||
}
 | 
			
		||||
#id_mandat_ope label, #id_motif_demande label, #id_demarche label {
 | 
			
		||||
  font-weight: normal; padding-right: 2em;
 | 
			
		||||
}
 | 
			
		||||
/* padding needed for bootstrap style */
 | 
			
		||||
#id_motif_demande { padding-left: 2rem; }
 | 
			
		||||
 | 
			
		||||
#id_demande_prioritaire label { padding-left: 2rem; }
 | 
			
		||||
 | 
			
		||||
table-condensed td{ padding:1px; }
 | 
			
		||||
 | 
			
		||||
.btn-mini {
 | 
			
		||||
    line-height:14px;
 | 
			
		||||
    font-weight:800;
 | 
			
		||||
}
 | 
			
		||||
.btn-xs {
 | 
			
		||||
  padding: .2rem .2rem;
 | 
			
		||||
  font-size: .750rem;
 | 
			
		||||
  line-height: 1;
 | 
			
		||||
  border-radius: .2rem;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.modal-lg input[type=text] { margin-bottom: 1em; }
 | 
			
		||||
.modal-lg input[name=theme] { width: 160%; }
 | 
			
		||||
.modal-lg textarea { width: 160%; }
 | 
			
		||||
th {
 | 
			
		||||
    vertical-align: top;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
a[role=button] { margin-left: 0.4em; }
 | 
			
		||||
 | 
			
		||||
.topnav-right {font-size: 95%;}
 | 
			
		||||
.selection_form { display: flex; justify-content: flex-end; flex-wrap: wrap; }
 | 
			
		||||
.select-container { margin-left: 0.5em; }
 | 
			
		||||
select#id_interv { max-width: 12em; }
 | 
			
		||||
input#id_letter { width:10em; }
 | 
			
		||||
 | 
			
		||||
ul.nav-prestations .nav-link.active {
 | 
			
		||||
  font-weight: bold;
 | 
			
		||||
  font-size: 110%;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.left-label { width: 15em; }
 | 
			
		||||
 | 
			
		||||
.icon { width:20px; height:20px; }
 | 
			
		||||
.icon-xs {width:15px; height:15px; }
 | 
			
		||||
 | 
			
		||||
.table-absence {
 | 
			
		||||
    display: block;
 | 
			
		||||
    overflow-y: scroll;
 | 
			
		||||
    max-height:300px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.table-fixed tbody {
 | 
			
		||||
    height: 300px;
 | 
			
		||||
    overflow-y: auto;
 | 
			
		||||
    width: 100%;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
.table-fixed thead,
 | 
			
		||||
.table-fixed tbody,
 | 
			
		||||
.table-fixed tr,
 | 
			
		||||
.table-fixed td,
 | 
			
		||||
.table-fixed th {
 | 
			
		||||
    display: block;
 | 
			
		||||
    background-color: white;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.table-fixed tbody td,
 | 
			
		||||
.table-fixed tbody th,
 | 
			
		||||
.table-fixed thead > tr > th {
 | 
			
		||||
    float: left;
 | 
			
		||||
    position: relative;
 | 
			
		||||
 | 
			
		||||
    &::after {
 | 
			
		||||
        content: '';
 | 
			
		||||
        clear: both;
 | 
			
		||||
        display: block;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.bg-success-2 { background-color: #d3ffd0;}
 | 
			
		||||
.bg-warning-2 { background-color: #FAF1B8; }
 | 
			
		||||
.bg-primary-2 { background-color: #B8C3FA; }
 | 
			
		||||
.bg-danger-2 { background-color: #F7E4E3 }
 | 
			
		||||
 | 
			
		||||
.bg-danger-3 { background-color: #fff5f5; }
 | 
			
		||||
.bg-success-3 { background-color: #edfced; }
 | 
			
		||||
 | 
			
		||||
.calendarbox { z-index:1100; background: white; }
 | 
			
		||||
/* Needed because of bootstrap reboot */
 | 
			
		||||
.calendar caption { caption-side: top; background: #fff3f3; }
 | 
			
		||||
 | 
			
		||||
.popup textarea#id_texte { width:100%; height:2em; }
 | 
			
		||||
 | 
			
		||||
.table-ext-bordered {
 | 
			
		||||
  border-width:1px;
 | 
			
		||||
  border-style:solid;
 | 
			
		||||
  border-color:lightgray;
 | 
			
		||||
  padding:2px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.table-wrapper { display: block; position: relative; overflow: auto; }
 | 
			
		||||
 | 
			
		||||
.prestation_titre { background-color: #fcf0c6; font-weight: bold; }
 | 
			
		||||
table.prestations th { position: sticky; top: 0; }
 | 
			
		||||
table.prestations td.total { font-weight: 600; background-color: #eee; text-align: center; }
 | 
			
		||||
table.prestations th.mesprest, table.prestations td.mesprest { text-align: right; }
 | 
			
		||||
table.prestations th.action, table.prestations td.action { text-align: right; }
 | 
			
		||||
 | 
			
		||||
p.secret {
 | 
			
		||||
  background-color: #eee;
 | 
			
		||||
  border-radius: 0.5em;
 | 
			
		||||
  padding: 0.5rem;
 | 
			
		||||
  font-style: italic;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* Image modal styles */
 | 
			
		||||
div.modal-image {
 | 
			
		||||
  display: none; position: fixed; z-index: 100; padding-top: 100px;
 | 
			
		||||
  left: 0; top: 0; width: 100%; height: 100%; overflow: auto;
 | 
			
		||||
  background-color: rgba(0,0,0,0.6);
 | 
			
		||||
}
 | 
			
		||||
img.modal-content {
 | 
			
		||||
  margin: auto;
 | 
			
		||||
  display: block;
 | 
			
		||||
  width: 80%;
 | 
			
		||||
  max-width: 700px;
 | 
			
		||||
}
 | 
			
		||||
#modalClose {
 | 
			
		||||
  position: absolute;
 | 
			
		||||
  top: 15px;
 | 
			
		||||
  right: 35px;
 | 
			
		||||
  color: #f1f1f1;
 | 
			
		||||
  font-size: 40px;
 | 
			
		||||
  font-weight: bold;
 | 
			
		||||
  transition: 0.3s;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#modalClose:hover, #modalClose:focus {
 | 
			
		||||
  color: #bbb;
 | 
			
		||||
  text-decoration: none;
 | 
			
		||||
  cursor: pointer;
 | 
			
		||||
}
 | 
			
		||||
/* End of Image modal styles */
 | 
			
		||||
 | 
			
		||||
#id_rythme { width: 100%; height:4em; }
 | 
			
		||||
 | 
			
		||||
.red {color: red;}
 | 
			
		||||
 | 
			
		||||
.table-sortable > thead > tr > th[data-col] {
 | 
			
		||||
    cursor: pointer;
 | 
			
		||||
    position: relative;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.table-sortable > thead > tr > th[data-col]:after,
 | 
			
		||||
.table-sortable > thead > tr > th[data-col]:after,
 | 
			
		||||
.table-sortable > thead > tr > th[data-col]:after {
 | 
			
		||||
    content: ' ';
 | 
			
		||||
    position: absolute;
 | 
			
		||||
    height: 0;
 | 
			
		||||
    width: 0;
 | 
			
		||||
    right: 10px;
 | 
			
		||||
    top: 16px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.table-sortable > thead > tr > th[data-col]:after {
 | 
			
		||||
    border-left: 5px solid transparent;
 | 
			
		||||
    border-right: 5px solid transparent;
 | 
			
		||||
    border-top: 5px solid #ccc;
 | 
			
		||||
    border-bottom: 0px solid transparent;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.table-sortable > thead > tr > th[data-col]:hover:after {
 | 
			
		||||
    border-top: 5px solid #888;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.table-sortable > thead > tr > th.desc:after {
 | 
			
		||||
    border-left: 5px solid transparent;
 | 
			
		||||
    border-right: 5px solid transparent;
 | 
			
		||||
    border-top: 0px solid transparent;
 | 
			
		||||
    border-bottom: 5px solid #333;
 | 
			
		||||
}
 | 
			
		||||
.table-sortable > thead > tr > th.desc:hover:after {
 | 
			
		||||
    border-bottom: 5px solid #888;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.table-sortable > thead > tr > th.asc:after {
 | 
			
		||||
    border-left: 5px solid transparent;
 | 
			
		||||
    border-right: 5px solid transparent;
 | 
			
		||||
    border-top: 5px solid #333;
 | 
			
		||||
    border-bottom: 5px solid transparent;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.vDateField-rounded {
 | 
			
		||||
    padding: 0.375rem 0.75rem;
 | 
			
		||||
    line-height: 1.5;
 | 
			
		||||
    border-radius: 0.375rem;
 | 
			
		||||
    border: 1px solid #ced4da;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.search-form-fields {
 | 
			
		||||
    width: 200px !important;
 | 
			
		||||
    margin-bottom: 5px;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										33
									
								
								aemo/static/css/tablesort.css
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
						 | 
				
			
			@ -0,0 +1,33 @@
 | 
			
		|||
th[role=columnheader]:not(.no-sort) {
 | 
			
		||||
	cursor: pointer;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
th[role=columnheader]:not(.no-sort):after {
 | 
			
		||||
	content: '';
 | 
			
		||||
	float: right;
 | 
			
		||||
	margin-top: 7px;
 | 
			
		||||
	border-width: 0 4px 4px;
 | 
			
		||||
	border-style: solid;
 | 
			
		||||
	border-color: #404040 transparent;
 | 
			
		||||
	visibility: hidden;
 | 
			
		||||
	opacity: 0;
 | 
			
		||||
	-ms-user-select: none;
 | 
			
		||||
	-webkit-user-select: none;
 | 
			
		||||
	-moz-user-select: none;
 | 
			
		||||
	user-select: none;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
th[aria-sort=ascending]:not(.no-sort):after {
 | 
			
		||||
	border-bottom: none;
 | 
			
		||||
	border-width: 4px 4px 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
th[aria-sort]:not(.no-sort):after {
 | 
			
		||||
	visibility: visible;
 | 
			
		||||
	opacity: 0.4;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
th[role=columnheader]:not(.no-sort):hover:after {
 | 
			
		||||
	visibility: visible;
 | 
			
		||||
	opacity: 1;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								aemo/static/docs/sifp_agenda_hebdo.doc
									
										
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								aemo/static/favicon.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 592 B  | 
							
								
								
									
										2
									
								
								aemo/static/ficons/README
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
						 | 
				
			
			@ -0,0 +1,2 @@
 | 
			
		|||
Many thanks to Daniel M. Hendricks, http://daniel.hn
 | 
			
		||||
https://github.com/dmhendricks/file-icon-vectors/
 | 
			
		||||
							
								
								
									
										1
									
								
								aemo/static/ficons/docx.svg
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><style>.st1{fill:#2372ba}</style><path fill="#fff" d="M0 0h100v100H0z"/><path class="st1" d="M100 100H0V0h100v100zM9.7 90h80.7V10H9.7"/><path class="st1" d="M27.6 27l7.9 29.7L45.2 27h9.5l9.8 29.7L72.4 27H85L71.2 73H59l-9-26.7L41 73H28.8L15 27h12.6z"/></svg>
 | 
			
		||||
| 
		 After Width: | Height: | Size: 319 B  | 
							
								
								
									
										1
									
								
								aemo/static/ficons/image.svg
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><style>.st1{fill:#5b2d8d}</style><path fill="#fff" d="M0 0h100v100H0z"/><path class="st1" d="M100 100H0V0h100v100zM9.7 90h80.7V10H9.7"/><circle class="st1" cx="32.4" cy="35" r="8"/><path class="st1" d="M78.9 47.3l-9.7-9.6L50 57l-9.6-9.7-19.3 19.3V73h57.8z"/></svg>
 | 
			
		||||
| 
		 After Width: | Height: | Size: 326 B  | 
							
								
								
									
										1
									
								
								aemo/static/ficons/master.svg
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><path fill="#fff" d="M0 0h100v100H0z"/><path d="M100 100H0V0h100v100zM9.7 90h80.7V10H9.7" fill="#bababa"/><path d="M71 36.3L57.8 23.1c-.4-.4-.9-.6-1.4-.6h-26c-1.1 0-2 .9-2 2v51.1c0 1.1.9 2 2 2h39.3c1.1 0 2-.9 2-2V37.7c-.1-.5-.3-1-.7-1.4zm-3.9 2.3H55.5V27l11.6 11.6zm.1 34.5H32.8V26.9h18.5v13.3c0 1.4 1.2 2.6 2.6 2.6h13.3v30.3z" fill="#bababa" stroke="#bababa" stroke-miterlimit="10"/></svg>
 | 
			
		||||
| 
		 After Width: | Height: | Size: 452 B  | 
							
								
								
									
										1
									
								
								aemo/static/ficons/pdf.svg
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><path fill="#fff" d="M0 0h100v100H0z"/><path d="M100 100H0V0h100v100zM9.7 90h80.7V10H9.7" fill="#c11e07"/><path d="M46.2 21.8c-3.5 0-6.3 2.9-6.3 6.3 0 4.3 2.4 9.6 4.9 14.7-2 6.1-4.1 12.7-7 18.2-5.8 2.3-11 4-14 6.6l-.2.2c-1.1 1.2-1.8 2.7-1.8 4.4 0 3.5 2.9 6.3 6.3 6.3 1.7 0 3.4-.6 4.4-1.8 0 0 .2 0 .2-.2 2.3-2.7 5-7.8 7.5-12.2 5.5-2.1 11.5-4.4 16.9-5.8 4.1 3.4 10.1 5.5 15 5.5 3.5 0 6.3-2.9 6.3-6.3 0-3.5-2.9-6.3-6.3-6.3-4 0-9.6 1.4-13.9 2.9-3.5-3.4-6.7-7.5-9.2-11.9C50.6 37 52.6 32 52.6 28c-.2-3.5-2.9-6.2-6.4-6.2zm0 3.6c1.4 0 2.4 1.1 2.4 2.4 0 1.8-1.1 5.3-2.1 9-1.5-3.7-2.9-7.2-2.9-9 .1-1.2 1.2-2.4 2.6-2.4zm1.1 21.5c1.8 3.1 4.1 5.8 6.6 8.2-3.7 1.1-7.3 2.3-11 3.7 1.8-3.8 3.1-7.9 4.4-11.9zM72 55c1.4 0 2.4 1.1 2.4 2.4 0 1.4-1.1 2.4-2.4 2.4-2.9 0-6.9-1.2-10.1-3.1C65.6 56 69.7 55 72 55zM34.6 66.2c-1.8 3.2-3.5 6.1-4.7 7.6-.5.5-.9.6-1.7.6-1.4 0-2.4-1.1-2.4-2.4 0-.6.3-1.4.6-1.7 1.3-1.2 4.5-2.6 8.2-4.1z" fill="#c11e07" stroke="#c11e07" stroke-width="1.25" stroke-miterlimit="10"/></svg>
 | 
			
		||||
| 
		 After Width: | Height: | Size: 1 KiB  | 
							
								
								
									
										1
									
								
								aemo/static/ficons/xlsx.svg
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><style>.st1{fill:#30723f}</style><path fill="#fff" d="M0 0h100v100H0z"/><path class="st1" d="M100 100H0V0h100v100zM9.7 90h80.7V10H9.7"/><path class="st1" d="M41.8 48.5L23.9 27h18.5l7.8 11.9L59.8 27h18.5l-19 21.5L80.7 73H62.4L50.9 58 37.4 73H19.3l22.5-24.5z"/></svg>
 | 
			
		||||
| 
		 After Width: | Height: | Size: 327 B  | 
							
								
								
									
										
											BIN
										
									
								
								aemo/static/img/SRK_DL_Portal.jpg
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 135 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								aemo/static/img/bandeau_rouge.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 466 B  | 
							
								
								
									
										
											BIN
										
									
								
								aemo/static/img/bandeau_vert.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 255 B  | 
							
								
								
									
										
											BIN
										
									
								
								aemo/static/img/coordonnees.gif
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 3.5 KiB  | 
							
								
								
									
										8
									
								
								aemo/static/img/edit.svg
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
						 | 
				
			
			@ -0,0 +1,8 @@
 | 
			
		|||
<?xml version="1.0" encoding="utf-8"?>
 | 
			
		||||
<!-- Generator: Adobe Illustrator 22.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
 | 
			
		||||
<svg version="1.1" id="Layer" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
 | 
			
		||||
	 viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve">
 | 
			
		||||
<polygon points="128,448 32,448 32,352 "/>
 | 
			
		||||
<rect x="45.7" y="140.1" transform="matrix(0.7071 -0.7071 0.7071 0.7071 -67.4113 253.2548)" width="452.5" height="135.8"/>
 | 
			
		||||
<path d="M32,512v-32h352v32H32z"/>
 | 
			
		||||
</svg>
 | 
			
		||||
| 
		 After Width: | Height: | Size: 555 B  | 
							
								
								
									
										
											BIN
										
									
								
								aemo/static/img/eduqua.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 3.1 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								aemo/static/img/family.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 23 KiB  | 
							
								
								
									
										76
									
								
								aemo/static/img/filter_off.svg
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
						 | 
				
			
			@ -0,0 +1,76 @@
 | 
			
		|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
 | 
			
		||||
<svg
 | 
			
		||||
   xmlns:dc="http://purl.org/dc/elements/1.1/"
 | 
			
		||||
   xmlns:cc="http://creativecommons.org/ns#"
 | 
			
		||||
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
 | 
			
		||||
   xmlns:svg="http://www.w3.org/2000/svg"
 | 
			
		||||
   xmlns="http://www.w3.org/2000/svg"
 | 
			
		||||
   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
 | 
			
		||||
   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
 | 
			
		||||
   enable-background="new 0 0 24 24"
 | 
			
		||||
   height="24px"
 | 
			
		||||
   viewBox="0 0 24 24"
 | 
			
		||||
   width="24px"
 | 
			
		||||
   fill="#000000"
 | 
			
		||||
   version="1.1"
 | 
			
		||||
   id="svg14"
 | 
			
		||||
   sodipodi:docname="filter_off.svg"
 | 
			
		||||
   inkscape:version="1.0.2 (e86c870879, 2021-01-15)">
 | 
			
		||||
  <metadata
 | 
			
		||||
     id="metadata20">
 | 
			
		||||
    <rdf:RDF>
 | 
			
		||||
      <cc:Work
 | 
			
		||||
         rdf:about="">
 | 
			
		||||
        <dc:format>image/svg+xml</dc:format>
 | 
			
		||||
        <dc:type
 | 
			
		||||
           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
 | 
			
		||||
      </cc:Work>
 | 
			
		||||
    </rdf:RDF>
 | 
			
		||||
  </metadata>
 | 
			
		||||
  <defs
 | 
			
		||||
     id="defs18" />
 | 
			
		||||
  <sodipodi:namedview
 | 
			
		||||
     pagecolor="#ffffff"
 | 
			
		||||
     bordercolor="#666666"
 | 
			
		||||
     borderopacity="1"
 | 
			
		||||
     objecttolerance="10"
 | 
			
		||||
     gridtolerance="10"
 | 
			
		||||
     guidetolerance="10"
 | 
			
		||||
     inkscape:pageopacity="0"
 | 
			
		||||
     inkscape:pageshadow="2"
 | 
			
		||||
     inkscape:window-width="1296"
 | 
			
		||||
     inkscape:window-height="894"
 | 
			
		||||
     id="namedview16"
 | 
			
		||||
     showgrid="false"
 | 
			
		||||
     inkscape:zoom="30.625"
 | 
			
		||||
     inkscape:cx="12"
 | 
			
		||||
     inkscape:cy="12"
 | 
			
		||||
     inkscape:window-x="26"
 | 
			
		||||
     inkscape:window-y="23"
 | 
			
		||||
     inkscape:window-maximized="0"
 | 
			
		||||
     inkscape:current-layer="svg14" />
 | 
			
		||||
  <g
 | 
			
		||||
     id="g4">
 | 
			
		||||
    <rect
 | 
			
		||||
       fill="none"
 | 
			
		||||
       height="24"
 | 
			
		||||
       width="24"
 | 
			
		||||
       id="rect2" />
 | 
			
		||||
  </g>
 | 
			
		||||
  <g
 | 
			
		||||
     id="g12"
 | 
			
		||||
     style="fill:#666666">
 | 
			
		||||
    <g
 | 
			
		||||
       id="g10"
 | 
			
		||||
       style="fill:#666666">
 | 
			
		||||
      <path
 | 
			
		||||
         d="M19.79,5.61C20.3,4.95,19.83,4,19,4H6.83l7.97,7.97L19.79,5.61z"
 | 
			
		||||
         id="path6"
 | 
			
		||||
         style="fill:#666666" />
 | 
			
		||||
      <path
 | 
			
		||||
         d="M2.81,2.81L1.39,4.22L10,13v6c0,0.55,0.45,1,1,1h2c0.55,0,1-0.45,1-1v-2.17l5.78,5.78l1.41-1.41L2.81,2.81z"
 | 
			
		||||
         id="path8"
 | 
			
		||||
         style="fill:#666666" />
 | 
			
		||||
    </g>
 | 
			
		||||
  </g>
 | 
			
		||||
</svg>
 | 
			
		||||
| 
		 After Width: | Height: | Size: 2 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								aemo/static/img/formation.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 5.7 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								aemo/static/img/help.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 543 B  | 
							
								
								
									
										
											BIN
										
									
								
								aemo/static/img/icon_add.jpeg
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 6.1 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								aemo/static/img/journal.jpg
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 85 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								aemo/static/img/logo-cr.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 41 KiB  | 
							
								
								
									
										219
									
								
								aemo/static/img/logo-cr.svg
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
						 | 
				
			
			@ -0,0 +1,219 @@
 | 
			
		|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
 | 
			
		||||
<svg
 | 
			
		||||
   xmlns:dc="http://purl.org/dc/elements/1.1/"
 | 
			
		||||
   xmlns:cc="http://creativecommons.org/ns#"
 | 
			
		||||
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
 | 
			
		||||
   xmlns:svg="http://www.w3.org/2000/svg"
 | 
			
		||||
   xmlns="http://www.w3.org/2000/svg"
 | 
			
		||||
   viewBox="0 0 1238.1333 262.01334"
 | 
			
		||||
   height="262.01334"
 | 
			
		||||
   width="1238.1333"
 | 
			
		||||
   xml:space="preserve"
 | 
			
		||||
   id="svg2"
 | 
			
		||||
   version="1.1"><metadata
 | 
			
		||||
     id="metadata8"><rdf:RDF><cc:Work
 | 
			
		||||
         rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
 | 
			
		||||
           rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
 | 
			
		||||
     id="defs6" /><g
 | 
			
		||||
     transform="matrix(1.3333333,0,0,-1.3333333,0,262.01333)"
 | 
			
		||||
     id="g10"><g
 | 
			
		||||
       transform="scale(0.1)"
 | 
			
		||||
       id="g12"><path
 | 
			
		||||
         id="path14"
 | 
			
		||||
         style="fill:#d92838;fill-opacity:1;fill-rule:nonzero;stroke:none"
 | 
			
		||||
         d="m 9286.04,1310.05 h -655.02 v 655.02 H 7976 V 1310.05 H 7320.97 V 655.031 H 7976 V 0 h 655.02 v 655.031 h 655.02 v 655.019" /><path
 | 
			
		||||
         id="path16"
 | 
			
		||||
         style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
 | 
			
		||||
         d="m 282.129,1211.91 c -13.301,3.5 -25.902,5.6 -39.203,5.6 -91.707,0 -131.617,-83.3 -131.617,-164.51 0,-78.41 39.91,-175.02 130.914,-175.02 13.304,0 26.605,3.489 39.906,7.7 v -98.711 c -15.399,-6.309 -31.5,-9.098 -48.305,-9.098 C 83.3086,777.871 0,913.68 0,1052.29 c 0,130.92 86.8086,265.34 228.922,265.34 18.203,0 35.703,-3.51 53.207,-9.81 v -95.91" /><path
 | 
			
		||||
         id="path18"
 | 
			
		||||
         style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
 | 
			
		||||
         d="m 424.207,1137 v -42.7 h 1.398 c 18.2,30.81 42.004,52.5 80.508,56 v -95.91 c -4.902,0.71 -9.797,1.41 -15.398,1.41 -65.813,0 -66.508,-43.41 -66.508,-95.921 V 783.469 H 325.496 V 1137 h 98.711" /><path
 | 
			
		||||
         id="path20"
 | 
			
		||||
         style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
 | 
			
		||||
         d="m 627.203,959.879 c 0,-20.289 1.399,-95.199 35.703,-95.199 34.305,0 35.703,74.91 35.703,95.199 0,20.305 -1.398,95.221 -35.703,95.221 -34.304,0 -35.703,-74.916 -35.703,-95.221 z m 170.117,0 c 0,-90.297 -28.707,-183.418 -134.414,-183.418 -105.711,0 -134.414,93.121 -134.414,183.418 0,90.321 28.703,184.121 134.414,184.121 105.707,0 134.414,-93.8 134.414,-184.121" /><path
 | 
			
		||||
         id="path22"
 | 
			
		||||
         style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
 | 
			
		||||
         d="M 940.793,1137 V 783.469 H 842.082 V 1137 Z m -112.012,105.71 c 0,35.71 28.699,62.31 64.403,62.31 34.304,0 60.91,-30.1 60.91,-63.7 0,-33.61 -28.707,-62.31 -63.008,-62.31 -34.301,0 -62.305,28.7 -62.305,63.7" /><path
 | 
			
		||||
         id="path24"
 | 
			
		||||
         style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
 | 
			
		||||
         d="m 1098.99,1137 28.01,-53.91 10.5,-21.7 39.9,75.61 h 102.21 L 1189.3,973.887 1293.61,783.469 H 1189.3 l -51.8,97.312 -52.51,-97.312 H 983.484 L 1084.99,973.887 996.785,1137 h 102.205" /><path
 | 
			
		||||
         id="path26"
 | 
			
		||||
         style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
 | 
			
		||||
         d="m 1511.3,1041.39 v -93.101 h -175.02 v 93.101 h 175.02" /><path
 | 
			
		||||
         id="path28"
 | 
			
		||||
         style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
 | 
			
		||||
         d="m 1693.29,1084.5 18.2,-0.7 c 47.61,0 66.51,32.2 66.51,75.6 0,37.81 -18.2,68.62 -70.71,65.81 h -14 z M 1588.98,783.469 v 527.861 h 105.01 c 66.51,0 185.52,-7.01 185.52,-151.22 0,-58.11 -23.1,-107.82 -74.91,-136.52 l 91.72,-240.121 H 1786.4 l -91.71,243.621 h -1.4 V 783.469 h -104.31" /><path
 | 
			
		||||
         id="path30"
 | 
			
		||||
         style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
 | 
			
		||||
         d="m 2014.59,959.879 c 0,-20.289 1.4,-95.199 35.7,-95.199 34.31,0 35.71,74.91 35.71,95.199 0,20.305 -1.4,95.221 -35.71,95.221 -34.3,0 -35.7,-74.916 -35.7,-95.221 z m 170.12,0 c 0,-90.297 -28.71,-183.418 -134.42,-183.418 -105.71,0 -134.41,93.121 -134.41,183.418 0,90.321 28.7,184.121 134.41,184.121 105.71,0 134.42,-93.8 134.42,-184.121" /><path
 | 
			
		||||
         id="path32"
 | 
			
		||||
         style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
 | 
			
		||||
         d="M 2342.88,1137 V 943.082 c 0,-19.602 -7.7,-74.203 25.2,-74.203 26.61,0 24.51,35 24.51,52.512 l 0.7,215.609 h 98.01 V 911.582 c 0,-81.902 -38.51,-135.121 -126.02,-135.121 -112.01,0 -121.11,84.019 -121.11,148.418 V 1137 h 98.71" /><path
 | 
			
		||||
         id="path34"
 | 
			
		||||
         style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
 | 
			
		||||
         d="m 2706.18,961.988 c 0,19.602 -1.4,94.502 -35,94.502 -33.61,0 -35.7,-74.205 -35.7,-94.502 0,-22.398 1.39,-95.207 37.09,-95.207 31.51,0 33.61,76.301 33.61,95.207 z m -78.41,-225.429 c 1.4,-22.399 7.71,-50.399 35.71,-50.399 44.1,0 37.8,66.5 37.8,96.61 v 44.812 h -1.4 c -6.3,-12.613 -14,-25.91 -23.8,-35.012 -9.8,-9.8 -22.41,-16.109 -39.91,-16.109 -36.4,0 -60.9,28.711 -76.31,58.809 -17.5,35 -23.1,80.511 -23.1,119.718 0,61.602 11.21,189.012 95.21,189.012 32.9,0 56.71,-21.7 67.91,-49.7 h 1.4 v 42.7 h 98.71 V 752.66 c 0,-103.609 -46.2,-144.91 -132.31,-144.91 -84.01,0 -122.52,48.301 -127.41,128.809 h 87.5" /><path
 | 
			
		||||
         id="path36"
 | 
			
		||||
         style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
 | 
			
		||||
         d="m 3027.48,1003.29 c 0,23.1 -4.9,65.11 -35.7,65.11 -30.1,0 -36.41,-40.61 -36.41,-63.01 v -10.499 h 72.11 z m 83.31,-69.31 h -156.12 c 0.7,-25.898 -0.7,-81.898 37.11,-81.898 25.2,0 31.5,19.598 31.5,40.59 h 84.01 c -4.2,-32.192 -14,-61.602 -32.21,-82.602 -17.5,-21 -43.4,-33.609 -79.8,-33.609 -100.11,0 -135.82,88.918 -135.82,176.43 0,84.709 30.81,191.109 133.72,191.109 65.1,0 125.31,-58.1 119.71,-169.41 l -2.1,-40.61" /><path
 | 
			
		||||
         id="path38"
 | 
			
		||||
         style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
 | 
			
		||||
         d="m 3431.35,1082.4 h 1.41 c 13.3,33.6 43.4,61.6 81.9,61.6 72.82,0 66.52,-81.2 66.52,-132.31 V 783.469 h -98.71 v 193.922 c 0,18.203 7,67.209 -24.5,67.209 -22.41,0 -26.62,-23.11 -26.62,-40.61 V 783.469 h -98.7 V 1137 h 98.7 v -54.6" /><path
 | 
			
		||||
         id="path40"
 | 
			
		||||
         style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
 | 
			
		||||
         d="m 3793.96,1003.29 c 0,23.1 -4.9,65.11 -35.7,65.11 -30.11,0 -36.41,-40.61 -36.41,-63.01 v -10.499 h 72.11 z m 83.31,-69.31 h -156.12 c 0.7,-25.898 -0.69,-81.898 37.11,-81.898 25.2,0 31.5,19.598 31.5,40.59 h 84.01 c -4.2,-32.192 -14,-61.602 -32.2,-82.602 -17.51,-21 -43.41,-33.609 -79.82,-33.609 -100.1,0 -135.81,88.918 -135.81,176.43 0,84.709 30.8,191.109 133.71,191.109 65.11,0 125.32,-58.1 119.72,-169.41 l -2.1,-40.61" /><path
 | 
			
		||||
         id="path42"
 | 
			
		||||
         style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
 | 
			
		||||
         d="M 4023.55,1137 V 943.082 c 0,-19.602 -7.7,-74.203 25.21,-74.203 26.6,0 24.5,35 24.5,52.512 l 0.69,215.609 h 98.02 V 911.582 c 0,-81.902 -38.51,-135.121 -126.02,-135.121 -112.01,0 -121.11,84.019 -121.11,148.418 V 1137 h 98.71" /><path
 | 
			
		||||
         id="path44"
 | 
			
		||||
         style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
 | 
			
		||||
         d="m 4403.65,789.07 c -18.2,-8.41 -36.41,-12.609 -56.71,-12.609 -95.91,0 -129.51,100.809 -129.51,181.32 0,88.919 35,186.219 137.22,186.219 17.5,0 32.9,-3.49 49,-10.5 v -86.8 c -9.1,8.4 -16.81,11.2 -28.7,11.2 -48.31,0 -58.81,-58.107 -58.81,-94.509 0,-37.809 7.69,-94.512 57.4,-94.512 11.2,0 21.01,4.191 30.11,10.492 V 789.07" /><path
 | 
			
		||||
         id="path46"
 | 
			
		||||
         style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
 | 
			
		||||
         d="M 4545.73,1348.43 V 1082.4 h 1.4 c 13.3,33.6 43.4,61.6 81.91,61.6 72.8,0 66.5,-81.2 66.5,-132.31 V 783.469 h -98.71 v 193.922 c 0,18.203 7,67.209 -24.5,67.209 -22.4,0 -26.6,-23.11 -26.6,-40.61 V 783.469 h -98.71 v 564.961 h 98.71" /><path
 | 
			
		||||
         id="path48"
 | 
			
		||||
         style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
 | 
			
		||||
         d="m 4909.73,961.988 c 0,19.602 -2.1,94.502 -35.7,94.502 -32.9,0 -35,-74.205 -35,-94.502 0,-22.398 1.4,-95.207 36.41,-95.207 31.5,0 34.29,76.301 34.29,95.207 z m 72.81,260.422 -42.7,-43.4 -59.51,49.01 -61.6,-49.01 -38.51,49.01 100.11,79.1 z m -79.81,-399.039 h -1.4 c -13.3,-26.601 -33.6,-46.91 -65.1,-46.91 -79.81,0 -95.91,127.418 -95.91,184.121 0,60.908 11.9,183.418 94.51,183.418 32.9,0 55.3,-21.7 66.5,-50.4 h 1.4 v 43.4 h 98.71 V 783.469 h -98.71 v 39.902" /><path
 | 
			
		||||
         id="path50"
 | 
			
		||||
         style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
 | 
			
		||||
         d="M 5182.02,1235.02 V 1137 h 40.61 v -81.2 h -40.61 V 783.469 h -98.71 V 1055.8 h -34.29 v 81.2 h 34.29 v 98.02 h 98.71" /><path
 | 
			
		||||
         id="path52"
 | 
			
		||||
         style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
 | 
			
		||||
         d="m 5415.57,1003.29 c 0,23.1 -4.9,65.11 -35.7,65.11 -30.11,0 -36.41,-40.61 -36.41,-63.01 v -10.499 h 72.11 z m 83.31,-69.31 h -156.12 c 0.7,-25.898 -0.69,-81.898 37.11,-81.898 25.2,0 31.5,19.598 31.5,40.59 h 84.01 c -4.2,-32.192 -14.01,-61.602 -32.2,-82.602 -17.51,-21 -43.41,-33.609 -79.81,-33.609 -100.11,0 -135.81,88.918 -135.81,176.43 0,84.709 30.8,191.109 133.71,191.109 65.1,0 125.31,-58.1 119.71,-169.41 l -2.1,-40.61" /><path
 | 
			
		||||
         id="path54"
 | 
			
		||||
         style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
 | 
			
		||||
         d="M 5645.16,1348.43 V 783.469 h -98.71 v 564.961 h 98.71" /><path
 | 
			
		||||
         id="path56"
 | 
			
		||||
         style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
 | 
			
		||||
         d="m 5788.66,959.879 c 0,-20.289 1.39,-95.199 35.7,-95.199 34.31,0 35.7,74.91 35.7,95.199 0,20.305 -1.39,95.221 -35.7,95.221 -34.31,0 -35.7,-74.916 -35.7,-95.221 z m 170.12,0 c 0,-90.297 -28.71,-183.418 -134.42,-183.418 -105.71,0 -134.41,93.121 -134.41,183.418 0,90.321 28.7,184.121 134.41,184.121 105.71,0 134.42,-93.8 134.42,-184.121" /><path
 | 
			
		||||
         id="path58"
 | 
			
		||||
         style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
 | 
			
		||||
         d="M 6102.25,1137 V 783.469 h -98.71 V 1137 Z m -112.01,105.71 c 0,35.71 28.71,62.31 64.41,62.31 34.3,0 60.9,-30.1 60.9,-63.7 0,-33.61 -28.7,-62.31 -63,-62.31 -34.3,0 -62.31,28.7 -62.31,63.7" /><path
 | 
			
		||||
         id="path60"
 | 
			
		||||
         style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
 | 
			
		||||
         d="m 6331.16,1041.8 c -14.01,12.59 -27.31,23.1 -47.61,23.1 -17.5,0 -26.6,-10.51 -26.6,-25.91 1.4,-41.295 112.7,-32.9 112.7,-138.611 0,-70.008 -40.59,-123.918 -113.4,-123.918 -37.81,0 -77.01,16.109 -106.41,40.609 l 43.4,70.012 c 14.71,-12.602 29.4,-23.113 49,-23.113 15.4,0 28.71,11.203 28.71,29.41 1.4,46.902 -112.71,35.012 -112.71,147.021 0,67.21 56,103.6 118.31,103.6 35.7,0 65.81,-9.1 94.51,-30.09 l -39.9,-72.11" /><path
 | 
			
		||||
         id="path62"
 | 
			
		||||
         style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
 | 
			
		||||
         d="m 6581.05,1003.29 c 0,23.1 -4.9,65.11 -35.7,65.11 -30.11,0 -36.41,-40.61 -36.41,-63.01 v -10.499 h 72.11 z m 83.31,-69.31 h -156.12 c 0.7,-25.898 -0.69,-81.898 37.11,-81.898 25.2,0 31.5,19.598 31.5,40.59 h 84.01 c -4.2,-32.192 -14,-61.602 -32.2,-82.602 -17.51,-21 -43.41,-33.609 -79.82,-33.609 -100.1,0 -135.81,88.918 -135.81,176.43 0,84.709 30.8,191.109 133.71,191.109 65.11,0 125.32,-58.1 119.72,-169.41 l -2.1,-40.61" /><path
 | 
			
		||||
         id="path64"
 | 
			
		||||
         style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
 | 
			
		||||
         d="m 1120.11,225.961 -21.5,124.258 c -3.87,21.929 -5.59,44.293 -8.17,66.222 h -1.72 c -3.01,-21.929 -5.16,-44.293 -8.6,-66.222 L 1061.2,225.961 Z m 49.02,-92.891 h -32.25 l -12.04,66.66 h -68.8 l -11.6,-66.66 h -32.26 l 63.64,324.219 h 28.38 l 64.93,-324.219" /><path
 | 
			
		||||
         id="path66"
 | 
			
		||||
         style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
 | 
			
		||||
         d="m 1272.76,308.512 h -0.86 c -8.17,11.617 -21.07,22.359 -36.55,22.359 -16.77,0 -27.52,-12.902 -27.52,-29.242 0,-21.07 18.06,-33.969 35.69,-48.578 18.06,-15.051 35.69,-31.403 35.69,-60.211 0,-35.25 -23.65,-63.199 -60.2,-63.199 -13.76,0 -29.24,6.441 -39.99,15.05 v 32.668 c 10.75,-11.179 22.36,-21.488 39.13,-21.488 19.35,0 32.25,15.051 32.25,33.527 0,21.942 -17.63,36.563 -35.69,52.461 -17.63,15.481 -35.69,32.68 -35.69,58.911 0,33.121 21.93,56.332 55.04,56.332 14.19,0 27.52,-5.59 38.7,-14.192 v -34.398" /><path
 | 
			
		||||
         id="path68"
 | 
			
		||||
         style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
 | 
			
		||||
         d="m 1392.31,308.512 h -0.87 c -8.17,11.617 -21.07,22.359 -36.55,22.359 -16.77,0 -27.52,-12.902 -27.52,-29.242 0,-21.07 18.06,-33.969 35.69,-48.578 18.06,-15.051 35.69,-31.403 35.69,-60.211 0,-35.25 -23.65,-63.199 -60.2,-63.199 -13.76,0 -29.24,6.441 -39.99,15.05 v 32.668 c 10.75,-11.179 22.36,-21.488 39.13,-21.488 19.35,0 32.25,15.051 32.25,33.527 0,21.942 -17.63,36.563 -35.69,52.461 -17.63,15.481 -35.69,32.68 -35.69,58.911 0,33.121 21.93,56.332 55.04,56.332 14.19,0 27.52,-5.59 38.71,-14.192 v -34.398" /><path
 | 
			
		||||
         id="path70"
 | 
			
		||||
         style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
 | 
			
		||||
         d="m 1449.92,243.582 c 0,-21.5 0.86,-87.711 34.41,-87.711 33.53,0 34.39,66.211 34.39,87.711 0,21.078 -0.86,87.289 -34.39,87.289 -33.55,0 -34.41,-66.211 -34.41,-87.289 z m 97.61,0 c 0,-41.711 -5.16,-113.941 -63.2,-113.941 -58.06,0 -63.22,72.23 -63.22,113.941 0,41.277 5.16,113.52 63.22,113.52 58.04,0 63.2,-72.243 63.2,-113.52" /><path
 | 
			
		||||
         id="path72"
 | 
			
		||||
         style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
 | 
			
		||||
         d="m 1668.79,316.25 c -6.88,7.309 -15.91,14.621 -26.66,14.621 -36.12,0 -39.56,-62.781 -39.56,-88.152 0,-21.93 4.73,-86.848 37.84,-86.848 12.9,0 21.07,9.879 27.52,19.77 h 0.86 V 140.82 c -8.17,-6.89 -21.07,-11.179 -31.82,-11.179 -50.74,0 -63.21,71.371 -63.21,109.218 0,41.7 8.6,118.243 64.5,118.243 10.32,0 21.5,-3.012 30.53,-8.602 v -32.25" /><path
 | 
			
		||||
         id="path74"
 | 
			
		||||
         style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
 | 
			
		||||
         d="m 1727.7,133.07 h -27.95 v 220.59 h 27.95 z m -13.76,264.879 c -11.6,0 -21.07,9.461 -21.07,21.071 0,11.179 9.47,20.64 21.07,20.64 11.18,0 20.64,-9.461 20.64,-20.64 0,-11.61 -9.46,-21.071 -20.64,-21.071" /><path
 | 
			
		||||
         id="path76"
 | 
			
		||||
         style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
 | 
			
		||||
         d="m 1821.44,334.309 c -30.96,0 -32.68,-49.02 -32.68,-86.43 0,-91.149 15.05,-95.457 31.39,-95.457 27.09,0 32.25,25.367 32.25,94.598 0,47.73 -3.44,87.289 -30.96,87.289 z m 56.33,-201.239 h -27.95 v 17.2 h -0.86 c -8.17,-12.469 -20.64,-20.629 -36.55,-20.629 -35.26,0 -52.46,19.769 -52.46,116.089 0,49.45 1.72,111.372 55.04,111.372 15.48,0 25.37,-6.454 33.97,-18.493 h 0.86 v 15.051 h 27.95 V 133.07" /><path
 | 
			
		||||
         id="path78"
 | 
			
		||||
         style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
 | 
			
		||||
         d="m 1992.58,327.859 h -36.55 V 133.07 h -27.95 v 194.789 h -23.64 v 25.801 h 23.64 v 60.199 h 27.95 V 353.66 h 36.55 v -25.801" /><path
 | 
			
		||||
         id="path80"
 | 
			
		||||
         style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
 | 
			
		||||
         d="m 2034.71,133.07 h -27.95 v 220.59 h 27.95 z m -13.76,264.879 c -11.6,0 -21.07,9.461 -21.07,21.071 0,11.179 9.47,20.64 21.07,20.64 11.18,0 20.64,-9.461 20.64,-20.64 0,-11.61 -9.46,-21.071 -20.64,-21.071" /><path
 | 
			
		||||
         id="path82"
 | 
			
		||||
         style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
 | 
			
		||||
         d="m 2095.77,243.582 c 0,-21.5 0.86,-87.711 34.41,-87.711 33.53,0 34.39,66.211 34.39,87.711 0,21.078 -0.86,87.289 -34.39,87.289 -33.55,0 -34.41,-66.211 -34.41,-87.289 z m 97.61,0 c 0,-41.711 -5.16,-113.941 -63.2,-113.941 -58.06,0 -63.22,72.23 -63.22,113.941 0,41.277 5.16,113.52 63.22,113.52 58.04,0 63.2,-72.243 63.2,-113.52" /><path
 | 
			
		||||
         id="path84"
 | 
			
		||||
         style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
 | 
			
		||||
         d="m 2254.01,336.031 c 11.18,12.899 26.23,21.071 43.43,21.071 39.12,0 42.57,-36.122 42.57,-66.223 V 133.07 h -27.95 v 154.801 c 0,26.231 -1.72,46.438 -24.94,46.438 -31.82,0 -33.11,-34.829 -33.11,-58.047 V 133.07 h -27.95 v 220.59 h 27.95 v -17.629" /><path
 | 
			
		||||
         id="path86"
 | 
			
		||||
         style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
 | 
			
		||||
         d="m 2556.72,316.25 c -6.88,7.309 -15.91,14.621 -26.66,14.621 -36.12,0 -39.56,-62.781 -39.56,-88.152 0,-21.93 4.73,-86.848 37.84,-86.848 12.9,0 21.07,9.879 27.52,19.77 h 0.86 V 140.82 c -8.17,-6.89 -21.07,-11.179 -31.82,-11.179 -50.74,0 -63.21,71.371 -63.21,109.218 0,41.7 8.6,118.243 64.5,118.243 10.32,0 21.5,-3.012 30.53,-8.602 v -32.25" /><path
 | 
			
		||||
         id="path88"
 | 
			
		||||
         style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
 | 
			
		||||
         d="m 2642.72,334.309 c -30.96,0 -32.68,-49.02 -32.68,-86.43 0,-91.149 15.05,-95.457 31.39,-95.457 27.09,0 32.25,25.367 32.25,94.598 0,47.73 -3.44,87.289 -30.96,87.289 z m 56.32,-201.239 h -27.94 v 17.2 h -0.86 c -8.17,-12.469 -20.64,-20.629 -36.55,-20.629 -35.26,0 -52.46,19.769 -52.46,116.089 0,49.45 1.72,111.372 55.04,111.372 15.48,0 25.37,-6.454 33.97,-18.493 h 0.86 v 15.051 h 27.94 V 133.07" /><path
 | 
			
		||||
         id="path90"
 | 
			
		||||
         style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
 | 
			
		||||
         d="m 2765.69,336.031 c 11.19,12.899 26.24,21.071 43.44,21.071 39.12,0 42.57,-36.122 42.57,-66.223 V 133.07 h -27.95 v 154.801 c 0,26.231 -1.72,46.438 -24.94,46.438 -31.82,0 -33.12,-34.829 -33.12,-58.047 V 133.07 h -27.94 v 220.59 h 27.94 v -17.629" /><path
 | 
			
		||||
         id="path92"
 | 
			
		||||
         style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
 | 
			
		||||
         d="m 2966.51,327.859 h -36.56 V 133.07 H 2902 v 194.789 h -23.64 V 353.66 H 2902 v 60.199 h 27.95 V 353.66 h 36.56 v -25.801" /><path
 | 
			
		||||
         id="path94"
 | 
			
		||||
         style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
 | 
			
		||||
         d="m 3003.05,243.582 c 0,-21.5 0.86,-87.711 34.4,-87.711 33.54,0 34.4,66.211 34.4,87.711 0,21.078 -0.86,87.289 -34.4,87.289 -33.54,0 -34.4,-66.211 -34.4,-87.289 z m 97.61,0 c 0,-41.711 -5.16,-113.941 -63.21,-113.941 -58.05,0 -63.21,72.23 -63.21,113.941 0,41.277 5.16,113.52 63.21,113.52 58.05,0 63.21,-72.243 63.21,-113.52" /><path
 | 
			
		||||
         id="path96"
 | 
			
		||||
         style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
 | 
			
		||||
         d="m 3161.28,336.031 c 11.18,12.899 26.23,21.071 43.44,21.071 39.12,0 42.57,-36.122 42.57,-66.223 V 133.07 h -27.95 v 154.801 c 0,26.231 -1.72,46.438 -24.94,46.438 -31.82,0 -33.12,-34.829 -33.12,-58.047 V 133.07 h -27.95 v 220.59 h 27.95 v -17.629" /><path
 | 
			
		||||
         id="path98"
 | 
			
		||||
         style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
 | 
			
		||||
         d="m 3341.02,334.309 c -30.96,0 -32.68,-49.02 -32.68,-86.43 0,-91.149 15.05,-95.457 31.39,-95.457 27.09,0 32.25,25.367 32.25,94.598 0,47.73 -3.44,87.289 -30.96,87.289 z m 56.33,-201.239 h -27.95 v 17.2 h -0.86 c -8.17,-12.469 -20.64,-20.629 -36.55,-20.629 -35.26,0 -52.46,19.769 -52.46,116.089 0,49.45 1.72,111.372 55.04,111.372 15.48,0 25.37,-6.454 33.97,-18.493 h 0.86 v 15.051 h 27.95 V 133.07" /><path
 | 
			
		||||
         id="path100"
 | 
			
		||||
         style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
 | 
			
		||||
         d="m 3464,133.07 h -27.95 v 344 H 3464 v -344" /><path
 | 
			
		||||
         id="path102"
 | 
			
		||||
         style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
 | 
			
		||||
         d="m 3589.56,261.211 -0.43,3.879 c -0.86,21.058 -1.72,65.781 -30.96,65.781 -26.66,0 -32.68,-49.883 -32.68,-69.66 z m -64.5,-23.641 v -6.461 c 0,-21.918 3.87,-75.238 34.4,-75.238 24.51,0 27.95,34.391 27.95,52.02 h 28.81 c -0.43,-33.539 -13.33,-78.25 -54.18,-78.25 -58.05,0 -65.79,68.8 -65.79,113.078 0,39.562 8.61,114.383 61.92,114.383 51.6,0 59.77,-67.512 59.77,-106.204 V 237.57 h -92.88" /><path
 | 
			
		||||
         id="path104"
 | 
			
		||||
         style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
 | 
			
		||||
         d="m 3794.65,334.309 c -31.39,0 -32.68,-55.028 -32.68,-86.43 0,-20.641 -4.29,-95.457 31.39,-95.457 29.67,0 32.26,36.547 32.26,94.598 0,50.312 -5.17,87.289 -30.97,87.289 z m 28.38,-184.039 h -0.86 c -8.16,-12.469 -20.64,-20.629 -36.54,-20.629 -46.02,0 -52.46,55.898 -52.46,116.089 0,60.211 6.01,111.372 55.03,111.372 15.48,0 25.38,-6.454 33.97,-18.493 h 0.86 V 477.07 h 27.95 v -344 h -27.95 v 17.2" /><path
 | 
			
		||||
         id="path106"
 | 
			
		||||
         style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
 | 
			
		||||
         d="m 3976.54,261.211 -0.43,3.879 c -0.85,21.058 -1.71,65.781 -30.96,65.781 -26.65,0 -32.68,-49.883 -32.68,-69.66 z m -64.5,-23.641 v -6.461 c 0,-21.918 3.87,-75.238 34.41,-75.238 24.5,0 27.95,34.391 27.95,52.02 h 28.8 c -0.43,-33.539 -13.33,-78.25 -54.18,-78.25 -58.04,0 -65.79,68.8 -65.79,113.078 0,39.562 8.61,114.383 61.92,114.383 51.6,0 59.77,-67.512 59.77,-106.204 V 237.57 h -92.88" /><path
 | 
			
		||||
         id="path108"
 | 
			
		||||
         style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
 | 
			
		||||
         d="m 4154.54,133.07 h -27.95 v 344 h 27.95 v -344" /><path
 | 
			
		||||
         id="path110"
 | 
			
		||||
         style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
 | 
			
		||||
         d="m 4248.28,334.309 c -30.95,0 -32.67,-49.02 -32.67,-86.43 0,-91.149 15.05,-95.457 31.38,-95.457 27.09,0 32.26,25.367 32.26,94.598 0,47.73 -3.45,87.289 -30.97,87.289 z m 56.33,-201.239 h -27.95 v 17.2 h -0.86 c -8.16,-12.469 -20.63,-20.629 -36.54,-20.629 -35.26,0 -52.46,19.769 -52.46,116.089 0,49.45 1.72,111.372 55.04,111.372 15.48,0 25.37,-6.454 33.96,-18.493 h 0.86 v 15.051 h 27.95 V 133.07" /><path
 | 
			
		||||
         id="path112"
 | 
			
		||||
         style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
 | 
			
		||||
         d="m 4558.31,142.109 c -11.18,-7.75 -27.09,-13.328 -41.28,-13.328 -76.11,0 -87.29,99.321 -87.29,154.789 0,52.461 1.72,178.02 90.3,178.02 12.04,0 28.38,-3.008 38.27,-10.32 v -33.11 c -12.04,8.172 -22.79,14.192 -37.84,14.192 -52.46,0 -59.78,-76.114 -59.78,-136.313 0,-37.84 0,-138.019 57.63,-138.019 14.62,0 28.38,6.441 39.99,14.621 v -30.532" /><path
 | 
			
		||||
         id="path114"
 | 
			
		||||
         style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
 | 
			
		||||
         d="m 4618.5,324.422 h 0.86 c 6.02,15.476 18.06,33.109 36.55,32.68 v -32.68 l -5.59,0.43 c -28.8,0 -31.82,-27.954 -31.82,-63.211 V 133.07 h -27.95 v 220.59 h 27.95 v -29.238" /><path
 | 
			
		||||
         id="path116"
 | 
			
		||||
         style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
 | 
			
		||||
         d="m 4701.06,243.582 c 0,-21.5 0.86,-87.711 34.4,-87.711 33.54,0 34.4,66.211 34.4,87.711 0,21.078 -0.86,87.289 -34.4,87.289 -33.54,0 -34.4,-66.211 -34.4,-87.289 z m 97.6,0 c 0,-41.711 -5.15,-113.941 -63.2,-113.941 -58.06,0 -63.21,72.23 -63.21,113.941 0,41.277 5.15,113.52 63.21,113.52 58.05,0 63.2,-72.243 63.2,-113.52" /><path
 | 
			
		||||
         id="path118"
 | 
			
		||||
         style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
 | 
			
		||||
         d="m 4859.29,133.07 h -27.95 v 220.59 h 27.95 z m -13.76,264.879 c -11.6,0 -21.07,9.461 -21.07,21.071 0,11.179 9.47,20.64 21.07,20.64 11.18,0 20.64,-9.461 20.64,-20.64 0,-11.61 -9.46,-21.071 -20.64,-21.071" /><path
 | 
			
		||||
         id="path120"
 | 
			
		||||
         style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
 | 
			
		||||
         d="m 4966.79,245.73 49.45,-112.66 h -30.96 l -22.79,58.051 c -4.72,12.039 -9.46,24.078 -11.61,36.981 h -1.72 c -1.72,-12.903 -6.01,-25.372 -10.75,-37.411 l -21.92,-57.621 h -31.4 l 50.74,112.66 -45.57,107.93 h 30.95 l 18.06,-49.019 c 5.17,-14.621 9.89,-29.243 12.9,-44.719 h 1.72 c 3.88,15.476 6.88,30.957 12.9,46.019 l 18.49,47.719 h 30.96 l -49.45,-107.93" /><path
 | 
			
		||||
         id="path122"
 | 
			
		||||
         style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
 | 
			
		||||
         d="m 5022.69,287.441 h 67.08 V 253.48 h -67.08 v 33.961" /><path
 | 
			
		||||
         id="path124"
 | 
			
		||||
         style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
 | 
			
		||||
         d="m 5145.67,316.25 h 10.75 c 42.14,0 49.01,14.621 49.01,57.191 0,51.168 -15.48,56.329 -53.75,56.329 h -6.01 z m -30.1,-183.18 v 324.219 h 32.24 c 45.16,0 88.59,-3.437 88.59,-82.559 0,-41.269 -9.04,-81.691 -61.07,-83.421 l 71.81,-158.239 h -31.82 l -68.8,158.68 h -0.85 V 133.07 h -30.1" /><path
 | 
			
		||||
         id="path126"
 | 
			
		||||
         style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
 | 
			
		||||
         d="m 5295.3,243.582 c 0,-21.5 0.86,-87.711 34.41,-87.711 33.54,0 34.4,66.211 34.4,87.711 0,21.078 -0.86,87.289 -34.4,87.289 -33.55,0 -34.41,-66.211 -34.41,-87.289 z m 97.62,0 c 0,-41.711 -5.16,-113.941 -63.21,-113.941 -58.06,0 -63.22,72.23 -63.22,113.941 0,41.277 5.16,113.52 63.22,113.52 58.05,0 63.21,-72.243 63.21,-113.52" /><path
 | 
			
		||||
         id="path128"
 | 
			
		||||
         style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
 | 
			
		||||
         d="M 5451.82,353.66 V 215.199 c 0,-30.09 1.72,-59.328 29.24,-59.328 28.38,0 29.67,29.238 30.1,59.328 V 353.66 h 27.95 V 191.551 c 0,-36.969 -18.07,-61.91 -57.62,-61.91 -39.12,0 -57.62,24.507 -57.62,61.91 V 353.66 h 27.95" /><path
 | 
			
		||||
         id="path130"
 | 
			
		||||
         style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
 | 
			
		||||
         d="m 5633.29,155.871 c 29.67,0 30.95,43.43 30.95,91.578 0,40.422 -2.57,86.86 -33.12,86.86 -20.2,0 -32.68,-13.75 -32.68,-94.59 0,-24.09 -0.43,-83.848 34.85,-83.848 z m 56.33,-30.973 c 0,-41.2769 -1.72,-79.5386 -57.64,-79.5386 -38.69,0 -56.76,23.2109 -56.76,61.0506 v 8.18 h 27.52 v -3.879 c 0,-20.629 5.61,-39.1212 29.69,-39.1212 31.38,0 28.81,27.5196 28.81,51.1602 v 25.801 c -9.48,-10.75 -21.08,-15.481 -35.71,-15.481 -55.04,0 -55.89,76.121 -55.89,115.239 0,36.98 4.29,108.793 55.46,108.793 15.06,0 27.52,-6.883 35.71,-18.493 h 0.86 v 15.051 h 27.95 V 124.898" /><path
 | 
			
		||||
         id="path132"
 | 
			
		||||
         style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
 | 
			
		||||
         d="m 5815.16,261.211 -0.43,3.879 c -0.86,21.058 -1.72,65.781 -30.95,65.781 -26.66,0 -32.68,-49.883 -32.68,-69.66 z m -64.49,-23.641 v -6.461 c 0,-21.918 3.87,-75.238 34.39,-75.238 24.52,0 27.95,34.391 27.95,52.02 h 28.81 c -0.43,-33.539 -13.32,-78.25 -54.18,-78.25 -58.04,0 -65.78,68.8 -65.78,113.078 0,39.562 8.6,114.383 61.92,114.383 51.6,0 59.76,-67.512 59.76,-106.204 V 237.57 h -92.87" /><path
 | 
			
		||||
         id="path134"
 | 
			
		||||
         style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
 | 
			
		||||
         d="m 6049.5,308.512 h -0.86 c -8.17,11.617 -21.08,22.359 -36.54,22.359 -16.78,0 -27.52,-12.902 -27.52,-29.242 0,-21.07 18.04,-33.969 35.68,-48.578 18.07,-15.051 35.68,-31.403 35.68,-60.211 0,-35.25 -23.65,-63.199 -60.19,-63.199 -13.75,0 -29.24,6.441 -39.98,15.05 v 32.668 c 10.74,-11.179 22.34,-21.488 39.12,-21.488 19.35,0 32.25,15.051 32.25,33.527 0,21.942 -17.62,36.563 -35.69,52.461 -17.64,15.481 -35.68,32.68 -35.68,58.911 0,33.121 21.91,56.332 55.04,56.332 14.18,0 27.52,-5.59 38.69,-14.192 v -34.398" /><path
 | 
			
		||||
         id="path136"
 | 
			
		||||
         style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
 | 
			
		||||
         d="M 6110.98,353.66 V 215.199 c 0,-30.09 1.72,-59.328 29.24,-59.328 28.4,0 29.69,29.238 30.12,59.328 V 353.66 h 27.95 V 191.551 c 0,-36.969 -18.07,-61.91 -57.64,-61.91 -39.12,0 -57.62,24.507 -57.62,61.91 V 353.66 h 27.95" /><path
 | 
			
		||||
         id="path138"
 | 
			
		||||
         style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
 | 
			
		||||
         d="m 6263.21,133.07 h -27.95 v 220.59 h 27.95 z m -13.77,264.879 c -11.6,0 -21.05,9.461 -21.05,21.071 0,11.179 9.45,20.64 21.05,20.64 11.19,0 20.64,-9.461 20.64,-20.64 0,-11.61 -9.45,-21.071 -20.64,-21.071" /><path
 | 
			
		||||
         id="path140"
 | 
			
		||||
         style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
 | 
			
		||||
         d="m 6386.2,308.512 h -0.88 c -8.17,11.617 -21.06,22.359 -36.54,22.359 -16.76,0 -27.52,-12.902 -27.52,-29.242 0,-21.07 18.06,-33.969 35.68,-48.578 18.07,-15.051 35.7,-31.403 35.7,-60.211 0,-35.25 -23.65,-63.199 -60.19,-63.199 -13.77,0 -29.24,6.441 -40,15.05 v 32.668 c 10.76,-11.179 22.36,-21.488 39.14,-21.488 19.33,0 32.24,15.051 32.24,33.527 0,21.942 -17.63,36.563 -35.7,52.461 -17.62,15.481 -35.68,32.68 -35.68,58.911 0,33.121 21.93,56.332 55.04,56.332 14.2,0 27.52,-5.59 38.71,-14.192 v -34.398" /><path
 | 
			
		||||
         id="path142"
 | 
			
		||||
         style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
 | 
			
		||||
         d="m 6505.73,308.512 h -0.86 c -8.16,11.617 -21.07,22.359 -36.54,22.359 -16.78,0 -27.52,-12.902 -27.52,-29.242 0,-21.07 18.04,-33.969 35.68,-48.578 18.07,-15.051 35.68,-31.403 35.68,-60.211 0,-35.25 -23.65,-63.199 -60.19,-63.199 -13.75,0 -29.24,6.441 -39.98,15.05 v 32.668 c 10.74,-11.179 22.34,-21.488 39.12,-21.488 19.35,0 32.25,15.051 32.25,33.527 0,21.942 -17.62,36.563 -35.69,52.461 -17.63,15.481 -35.68,32.68 -35.68,58.911 0,33.121 21.91,56.332 55.04,56.332 14.18,0 27.52,-5.59 38.69,-14.192 v -34.398" /><path
 | 
			
		||||
         id="path144"
 | 
			
		||||
         style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
 | 
			
		||||
         d="m 6627.86,261.211 -0.43,3.879 c -0.86,21.058 -1.72,65.781 -30.98,65.781 -26.64,0 -32.67,-49.883 -32.67,-69.66 z m -64.51,-23.641 v -6.461 c 0,-21.918 3.86,-75.238 34.41,-75.238 24.49,0 27.95,34.391 27.95,52.02 h 28.81 c -0.43,-33.539 -13.34,-78.25 -54.18,-78.25 -58.05,0 -65.8,68.8 -65.8,113.078 0,39.562 8.61,114.383 61.91,114.383 51.6,0 59.79,-67.512 59.79,-106.204 V 237.57 h -92.89" /></g></g></svg>
 | 
			
		||||
| 
		 After Width: | Height: | Size: 28 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								aemo/static/img/logo-zewo.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 22 KiB  | 
							
								
								
									
										1
									
								
								aemo/static/img/logo-zewo.svg
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 8.9 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								aemo/static/img/printer.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 10 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								aemo/static/img/reseau.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 3.8 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								aemo/static/img/stat.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 2.2 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								aemo/static/img/telephone.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 117 KiB  | 
							
								
								
									
										3
									
								
								aemo/static/img/warning.svg
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
						 | 
				
			
			@ -0,0 +1,3 @@
 | 
			
		|||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="currentColor" class="bi bi-exclamation-triangle-fill flex-shrink-0 me-2" viewBox="0 0 16 16" role="img" aria-label="Warning:">
 | 
			
		||||
    <path d="M8.982 1.566a1.13 1.13 0 0 0-1.96 0L.165 13.233c-.457.778.091 1.767.98 1.767h13.713c.889 0 1.438-.99.98-1.767L8.982 1.566zM8 5c.535 0 .954.462.9.995l-.35 3.507a.552.552 0 0 1-1.1 0L7.1 5.995A.905.905 0 0 1 8 5zm.002 6a1 1 0 1 1 0 2 1 1 0 0 1 0-2z"/>
 | 
			
		||||
</svg>
 | 
			
		||||
| 
		 After Width: | Height: | Size: 466 B  | 
							
								
								
									
										424
									
								
								aemo/static/js/DateTimeShortcuts.js
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
						 | 
				
			
			@ -0,0 +1,424 @@
 | 
			
		|||
/*global Calendar, findPosX, findPosY, get_format, gettext, gettext_noop, interpolate, ngettext, quickElement*/
 | 
			
		||||
// Inserts shortcut buttons after all of the following:
 | 
			
		||||
//     <input type="text" class="vDateField">
 | 
			
		||||
//     <input type="text" class="vTimeField">
 | 
			
		||||
'use strict';
 | 
			
		||||
{
 | 
			
		||||
    const DateTimeShortcuts = {
 | 
			
		||||
        calendars: [],
 | 
			
		||||
        calendarInputs: [],
 | 
			
		||||
        clockInputs: [],
 | 
			
		||||
        clockHours: {
 | 
			
		||||
            default_: [
 | 
			
		||||
                [gettext_noop('Now'), -1],
 | 
			
		||||
                [gettext_noop('Midnight'), 0],
 | 
			
		||||
                [gettext_noop('6 a.m.'), 6],
 | 
			
		||||
                [gettext_noop('Noon'), 12],
 | 
			
		||||
                [gettext_noop('6 p.m.'), 18]
 | 
			
		||||
            ]
 | 
			
		||||
        },
 | 
			
		||||
        dismissClockFunc: [],
 | 
			
		||||
        dismissCalendarFunc: [],
 | 
			
		||||
        calendarDivName1: 'calendarbox', // name of calendar <div> that gets toggled
 | 
			
		||||
        calendarDivName2: 'calendarin', // name of <div> that contains calendar
 | 
			
		||||
        calendarLinkName: 'calendarlink', // name of the link that is used to toggle
 | 
			
		||||
        clockDivName: 'clockbox', // name of clock <div> that gets toggled
 | 
			
		||||
        clockLinkName: 'clocklink', // name of the link that is used to toggle
 | 
			
		||||
        shortCutsClass: 'datetimeshortcuts', // class of the clock and cal shortcuts
 | 
			
		||||
        timezoneWarningClass: 'timezonewarning', // class of the warning for timezone mismatch
 | 
			
		||||
        timezoneOffset: 0,
 | 
			
		||||
        init: function(selector) {
 | 
			
		||||
            selector = selector || document;
 | 
			
		||||
            const serverOffset = document.body.dataset.adminUtcOffset;
 | 
			
		||||
            if (serverOffset) {
 | 
			
		||||
                const localOffset = new Date().getTimezoneOffset() * -60;
 | 
			
		||||
                DateTimeShortcuts.timezoneOffset = localOffset - serverOffset;
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            for (const inp of selector.getElementsByTagName('input')) {
 | 
			
		||||
                if (inp.type === 'text' && inp.classList.contains('vTimeField')) {
 | 
			
		||||
                    DateTimeShortcuts.addClock(inp);
 | 
			
		||||
                    DateTimeShortcuts.addTimezoneWarning(inp);
 | 
			
		||||
                }
 | 
			
		||||
                else if (inp.type === 'text' && inp.classList.contains('vDateField')) {
 | 
			
		||||
                    DateTimeShortcuts.addCalendar(inp);
 | 
			
		||||
                    DateTimeShortcuts.addTimezoneWarning(inp);
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        },
 | 
			
		||||
        // Return the current time while accounting for the server timezone.
 | 
			
		||||
        now: function() {
 | 
			
		||||
            const serverOffset = document.body.dataset.adminUtcOffset;
 | 
			
		||||
            if (serverOffset) {
 | 
			
		||||
                const localNow = new Date();
 | 
			
		||||
                const localOffset = localNow.getTimezoneOffset() * -60;
 | 
			
		||||
                localNow.setTime(localNow.getTime() + 1000 * (serverOffset - localOffset));
 | 
			
		||||
                return localNow;
 | 
			
		||||
            } else {
 | 
			
		||||
                return new Date();
 | 
			
		||||
            }
 | 
			
		||||
        },
 | 
			
		||||
        // Add a warning when the time zone in the browser and backend do not match.
 | 
			
		||||
        addTimezoneWarning: function(inp) {
 | 
			
		||||
            const warningClass = DateTimeShortcuts.timezoneWarningClass;
 | 
			
		||||
            let timezoneOffset = DateTimeShortcuts.timezoneOffset / 3600;
 | 
			
		||||
 | 
			
		||||
            // Only warn if there is a time zone mismatch.
 | 
			
		||||
            if (!timezoneOffset) {
 | 
			
		||||
                return;
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            // Check if warning is already there.
 | 
			
		||||
            if (inp.parentNode.querySelectorAll('.' + warningClass).length) {
 | 
			
		||||
                return;
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            let message;
 | 
			
		||||
            if (timezoneOffset > 0) {
 | 
			
		||||
                message = ngettext(
 | 
			
		||||
                    'Note: You are %s hour ahead of server time.',
 | 
			
		||||
                    'Note: You are %s hours ahead of server time.',
 | 
			
		||||
                    timezoneOffset
 | 
			
		||||
                );
 | 
			
		||||
            }
 | 
			
		||||
            else {
 | 
			
		||||
                timezoneOffset *= -1;
 | 
			
		||||
                message = ngettext(
 | 
			
		||||
                    'Note: You are %s hour behind server time.',
 | 
			
		||||
                    'Note: You are %s hours behind server time.',
 | 
			
		||||
                    timezoneOffset
 | 
			
		||||
                );
 | 
			
		||||
            }
 | 
			
		||||
            message = interpolate(message, [timezoneOffset]);
 | 
			
		||||
 | 
			
		||||
            const warning = document.createElement('span');
 | 
			
		||||
            warning.className = warningClass;
 | 
			
		||||
            warning.textContent = message;
 | 
			
		||||
            inp.parentNode.appendChild(document.createElement('br'));
 | 
			
		||||
            inp.parentNode.appendChild(warning);
 | 
			
		||||
        },
 | 
			
		||||
        // Add clock widget to a given field
 | 
			
		||||
        addClock: function(inp) {
 | 
			
		||||
            const num = DateTimeShortcuts.clockInputs.length;
 | 
			
		||||
            DateTimeShortcuts.clockInputs[num] = inp;
 | 
			
		||||
            DateTimeShortcuts.dismissClockFunc[num] = function() { DateTimeShortcuts.dismissClock(num); return true; };
 | 
			
		||||
 | 
			
		||||
            // Shortcut links (clock icon and "Now" link)
 | 
			
		||||
            const shortcuts_span = document.createElement('span');
 | 
			
		||||
            shortcuts_span.className = DateTimeShortcuts.shortCutsClass;
 | 
			
		||||
            inp.parentNode.insertBefore(shortcuts_span, inp.nextSibling);
 | 
			
		||||
            const now_link = document.createElement('a');
 | 
			
		||||
            now_link.href = "#";
 | 
			
		||||
            now_link.textContent = gettext('Now');
 | 
			
		||||
            now_link.addEventListener('click', function(e) {
 | 
			
		||||
                e.preventDefault();
 | 
			
		||||
                DateTimeShortcuts.handleClockQuicklink(num, -1);
 | 
			
		||||
            });
 | 
			
		||||
            const clock_link = document.createElement('a');
 | 
			
		||||
            clock_link.href = '#';
 | 
			
		||||
            clock_link.id = DateTimeShortcuts.clockLinkName + num;
 | 
			
		||||
            clock_link.addEventListener('click', function(e) {
 | 
			
		||||
                e.preventDefault();
 | 
			
		||||
                // avoid triggering the document click handler to dismiss the clock
 | 
			
		||||
                e.stopPropagation();
 | 
			
		||||
                DateTimeShortcuts.openClock(num);
 | 
			
		||||
            });
 | 
			
		||||
 | 
			
		||||
            quickElement(
 | 
			
		||||
                'span', clock_link, '',
 | 
			
		||||
                'class', 'clock-icon',
 | 
			
		||||
                'title', gettext('Choose a Time')
 | 
			
		||||
            );
 | 
			
		||||
            shortcuts_span.appendChild(document.createTextNode('\u00A0'));
 | 
			
		||||
            shortcuts_span.appendChild(now_link);
 | 
			
		||||
            shortcuts_span.appendChild(document.createTextNode('\u00A0|\u00A0'));
 | 
			
		||||
            shortcuts_span.appendChild(clock_link);
 | 
			
		||||
 | 
			
		||||
            // Create clock link div
 | 
			
		||||
            //
 | 
			
		||||
            // Markup looks like:
 | 
			
		||||
            // <div id="clockbox1" class="clockbox module">
 | 
			
		||||
            //     <h2>Choose a time</h2>
 | 
			
		||||
            //     <ul class="timelist">
 | 
			
		||||
            //         <li><a href="#">Now</a></li>
 | 
			
		||||
            //         <li><a href="#">Midnight</a></li>
 | 
			
		||||
            //         <li><a href="#">6 a.m.</a></li>
 | 
			
		||||
            //         <li><a href="#">Noon</a></li>
 | 
			
		||||
            //         <li><a href="#">6 p.m.</a></li>
 | 
			
		||||
            //     </ul>
 | 
			
		||||
            //     <p class="calendar-cancel"><a href="#">Cancel</a></p>
 | 
			
		||||
            // </div>
 | 
			
		||||
 | 
			
		||||
            const clock_box = document.createElement('div');
 | 
			
		||||
            clock_box.style.display = 'none';
 | 
			
		||||
            clock_box.className = 'clockbox module';
 | 
			
		||||
            clock_box.id = DateTimeShortcuts.clockDivName + num;
 | 
			
		||||
            document.body.appendChild(clock_box);
 | 
			
		||||
            // cpa: Make it work with bootstrap
 | 
			
		||||
            clock_box.style.position = clock_box.closest('body').classList.contains('modal-open') ? 'fixed' : 'absolute';
 | 
			
		||||
            clock_box.addEventListener('click', function(e) { e.stopPropagation(); });
 | 
			
		||||
 | 
			
		||||
            quickElement('h2', clock_box, gettext('Choose a time'));
 | 
			
		||||
            const time_list = quickElement('ul', clock_box);
 | 
			
		||||
            time_list.className = 'timelist';
 | 
			
		||||
            // The list of choices can be overridden in JavaScript like this:
 | 
			
		||||
            // DateTimeShortcuts.clockHours.name = [['3 a.m.', 3]];
 | 
			
		||||
            // where name is the name attribute of the <input>.
 | 
			
		||||
            const name = typeof DateTimeShortcuts.clockHours[inp.name] === 'undefined' ? 'default_' : inp.name;
 | 
			
		||||
            DateTimeShortcuts.clockHours[name].forEach(function(element) {
 | 
			
		||||
                const time_link = quickElement('a', quickElement('li', time_list), gettext(element[0]), 'href', '#');
 | 
			
		||||
                time_link.addEventListener('click', function(e) {
 | 
			
		||||
                    e.preventDefault();
 | 
			
		||||
                    DateTimeShortcuts.handleClockQuicklink(num, element[1]);
 | 
			
		||||
                });
 | 
			
		||||
            });
 | 
			
		||||
 | 
			
		||||
            const cancel_p = quickElement('p', clock_box);
 | 
			
		||||
            cancel_p.className = 'calendar-cancel';
 | 
			
		||||
            const cancel_link = quickElement('a', cancel_p, gettext('Cancel'), 'href', '#');
 | 
			
		||||
            cancel_link.addEventListener('click', function(e) {
 | 
			
		||||
                e.preventDefault();
 | 
			
		||||
                DateTimeShortcuts.dismissClock(num);
 | 
			
		||||
            });
 | 
			
		||||
 | 
			
		||||
            document.addEventListener('keyup', function(event) {
 | 
			
		||||
                if (event.which === 27) {
 | 
			
		||||
                    // ESC key closes popup
 | 
			
		||||
                    DateTimeShortcuts.dismissClock(num);
 | 
			
		||||
                    event.preventDefault();
 | 
			
		||||
                }
 | 
			
		||||
            });
 | 
			
		||||
        },
 | 
			
		||||
        openClock: function(num) {
 | 
			
		||||
            const clock_box = document.getElementById(DateTimeShortcuts.clockDivName + num);
 | 
			
		||||
            const clock_link = document.getElementById(DateTimeShortcuts.clockLinkName + num);
 | 
			
		||||
 | 
			
		||||
            // Recalculate the clockbox position
 | 
			
		||||
            // is it left-to-right or right-to-left layout ?
 | 
			
		||||
            if (window.getComputedStyle(document.body).direction !== 'rtl') {
 | 
			
		||||
                clock_box.style.left = findPosX(clock_link) + 17 + 'px';
 | 
			
		||||
            }
 | 
			
		||||
            else {
 | 
			
		||||
                // since style's width is in em, it'd be tough to calculate
 | 
			
		||||
                // px value of it. let's use an estimated px for now
 | 
			
		||||
                clock_box.style.left = findPosX(clock_link) - 110 + 'px';
 | 
			
		||||
            }
 | 
			
		||||
            clock_box.style.top = Math.max(0, findPosY(clock_link) - 30) + 'px';
 | 
			
		||||
 | 
			
		||||
            // Show the clock box
 | 
			
		||||
            clock_box.style.display = 'block';
 | 
			
		||||
            document.addEventListener('click', DateTimeShortcuts.dismissClockFunc[num]);
 | 
			
		||||
        },
 | 
			
		||||
        dismissClock: function(num) {
 | 
			
		||||
            document.getElementById(DateTimeShortcuts.clockDivName + num).style.display = 'none';
 | 
			
		||||
            document.removeEventListener('click', DateTimeShortcuts.dismissClockFunc[num]);
 | 
			
		||||
        },
 | 
			
		||||
        handleClockQuicklink: function(num, val) {
 | 
			
		||||
            let d;
 | 
			
		||||
            if (val === -1) {
 | 
			
		||||
                d = DateTimeShortcuts.now();
 | 
			
		||||
            }
 | 
			
		||||
            else {
 | 
			
		||||
                d = new Date(1970, 1, 1, val, 0, 0, 0);
 | 
			
		||||
            }
 | 
			
		||||
            DateTimeShortcuts.clockInputs[num].value = d.strftime(get_format('TIME_INPUT_FORMATS')[0]);
 | 
			
		||||
            DateTimeShortcuts.clockInputs[num].focus();
 | 
			
		||||
            DateTimeShortcuts.dismissClock(num);
 | 
			
		||||
            // Added by cpa:
 | 
			
		||||
            DateTimeShortcuts.clockInputs[num].dispatchEvent(new Event('change'));
 | 
			
		||||
        },
 | 
			
		||||
        // Add calendar widget to a given field.
 | 
			
		||||
        addCalendar: function(inp) {
 | 
			
		||||
            const num = DateTimeShortcuts.calendars.length;
 | 
			
		||||
 | 
			
		||||
            DateTimeShortcuts.calendarInputs[num] = inp;
 | 
			
		||||
            DateTimeShortcuts.dismissCalendarFunc[num] = function() { DateTimeShortcuts.dismissCalendar(num); return true; };
 | 
			
		||||
 | 
			
		||||
            // Shortcut links (calendar icon and "Today" link)
 | 
			
		||||
            const shortcuts_span = document.createElement('span');
 | 
			
		||||
            shortcuts_span.className = DateTimeShortcuts.shortCutsClass;
 | 
			
		||||
            inp.parentNode.insertBefore(shortcuts_span, inp.nextSibling);
 | 
			
		||||
            const today_link = document.createElement('a');
 | 
			
		||||
            today_link.href = '#';
 | 
			
		||||
            today_link.appendChild(document.createTextNode(gettext('Today')));
 | 
			
		||||
            today_link.addEventListener('click', function(e) {
 | 
			
		||||
                e.preventDefault();
 | 
			
		||||
                DateTimeShortcuts.handleCalendarQuickLink(num, 0);
 | 
			
		||||
            });
 | 
			
		||||
            const cal_link = document.createElement('a');
 | 
			
		||||
            cal_link.href = '#';
 | 
			
		||||
            cal_link.id = DateTimeShortcuts.calendarLinkName + num;
 | 
			
		||||
            cal_link.addEventListener('click', function(e) {
 | 
			
		||||
                e.preventDefault();
 | 
			
		||||
                // avoid triggering the document click handler to dismiss the calendar
 | 
			
		||||
                e.stopPropagation();
 | 
			
		||||
                DateTimeShortcuts.openCalendar(num);
 | 
			
		||||
            });
 | 
			
		||||
            quickElement(
 | 
			
		||||
                'span', cal_link, '',
 | 
			
		||||
                'class', 'date-icon',
 | 
			
		||||
                'title', gettext('Choose a Date')
 | 
			
		||||
            );
 | 
			
		||||
            shortcuts_span.appendChild(document.createTextNode('\u00A0'));
 | 
			
		||||
            // CUSTOMIZED: Today link removed.
 | 
			
		||||
            //shortcuts_span.appendChild(today_link);
 | 
			
		||||
            //shortcuts_span.appendChild(document.createTextNode('\u00A0|\u00A0'));
 | 
			
		||||
            shortcuts_span.appendChild(cal_link);
 | 
			
		||||
 | 
			
		||||
            // Create calendarbox div.
 | 
			
		||||
            //
 | 
			
		||||
            // Markup looks like:
 | 
			
		||||
            //
 | 
			
		||||
            // <div id="calendarbox3" class="calendarbox module">
 | 
			
		||||
            //     <h2>
 | 
			
		||||
            //           <a href="#" class="link-previous">‹</a>
 | 
			
		||||
            //           <a href="#" class="link-next">›</a> February 2003
 | 
			
		||||
            //     </h2>
 | 
			
		||||
            //     <div class="calendar" id="calendarin3">
 | 
			
		||||
            //         <!-- (cal) -->
 | 
			
		||||
            //     </div>
 | 
			
		||||
            //     <div class="calendar-shortcuts">
 | 
			
		||||
            //          <a href="#">Yesterday</a> | <a href="#">Today</a> | <a href="#">Tomorrow</a>
 | 
			
		||||
            //     </div>
 | 
			
		||||
            //     <p class="calendar-cancel"><a href="#">Cancel</a></p>
 | 
			
		||||
            // </div>
 | 
			
		||||
            const cal_box = document.createElement('div');
 | 
			
		||||
            cal_box.style.display = 'none';
 | 
			
		||||
            cal_box.className = 'calendarbox module';
 | 
			
		||||
            cal_box.id = DateTimeShortcuts.calendarDivName1 + num;
 | 
			
		||||
            document.body.appendChild(cal_box);
 | 
			
		||||
            // cpa: Make it work with bootstrap
 | 
			
		||||
            cal_box.style.position = cal_box.closest('body').classList.contains('modal-open') ? 'fixed' : 'absolute';
 | 
			
		||||
            cal_box.addEventListener('click', function(e) { e.stopPropagation(); });
 | 
			
		||||
 | 
			
		||||
            // next-prev links
 | 
			
		||||
            const cal_nav = quickElement('div', cal_box);
 | 
			
		||||
            const cal_nav_prev = quickElement('a', cal_nav, '<', 'href', '#');
 | 
			
		||||
            cal_nav_prev.className = 'calendarnav-previous';
 | 
			
		||||
            cal_nav_prev.addEventListener('click', function(e) {
 | 
			
		||||
                e.preventDefault();
 | 
			
		||||
                DateTimeShortcuts.drawPrev(num);
 | 
			
		||||
            });
 | 
			
		||||
 | 
			
		||||
            const cal_nav_next = quickElement('a', cal_nav, '>', 'href', '#');
 | 
			
		||||
            cal_nav_next.className = 'calendarnav-next';
 | 
			
		||||
            cal_nav_next.addEventListener('click', function(e) {
 | 
			
		||||
                e.preventDefault();
 | 
			
		||||
                DateTimeShortcuts.drawNext(num);
 | 
			
		||||
            });
 | 
			
		||||
 | 
			
		||||
            // main box
 | 
			
		||||
            const cal_main = quickElement('div', cal_box, '', 'id', DateTimeShortcuts.calendarDivName2 + num);
 | 
			
		||||
            cal_main.className = 'calendar';
 | 
			
		||||
            DateTimeShortcuts.calendars[num] = new Calendar(DateTimeShortcuts.calendarDivName2 + num, DateTimeShortcuts.handleCalendarCallback(num));
 | 
			
		||||
            DateTimeShortcuts.calendars[num].drawCurrent();
 | 
			
		||||
 | 
			
		||||
            // calendar shortcuts
 | 
			
		||||
            const shortcuts = quickElement('div', cal_box);
 | 
			
		||||
            shortcuts.className = 'calendar-shortcuts';
 | 
			
		||||
            let day_link = quickElement('a', shortcuts, gettext('Yesterday'), 'href', '#');
 | 
			
		||||
            day_link.addEventListener('click', function(e) {
 | 
			
		||||
                e.preventDefault();
 | 
			
		||||
                DateTimeShortcuts.handleCalendarQuickLink(num, -1);
 | 
			
		||||
            });
 | 
			
		||||
            shortcuts.appendChild(document.createTextNode('\u00A0|\u00A0'));
 | 
			
		||||
            day_link = quickElement('a', shortcuts, gettext('Today'), 'href', '#');
 | 
			
		||||
            day_link.addEventListener('click', function(e) {
 | 
			
		||||
                e.preventDefault();
 | 
			
		||||
                DateTimeShortcuts.handleCalendarQuickLink(num, 0);
 | 
			
		||||
            });
 | 
			
		||||
            shortcuts.appendChild(document.createTextNode('\u00A0|\u00A0'));
 | 
			
		||||
            day_link = quickElement('a', shortcuts, gettext('Tomorrow'), 'href', '#');
 | 
			
		||||
            day_link.addEventListener('click', function(e) {
 | 
			
		||||
                e.preventDefault();
 | 
			
		||||
                DateTimeShortcuts.handleCalendarQuickLink(num, +1);
 | 
			
		||||
            });
 | 
			
		||||
 | 
			
		||||
            // cancel bar
 | 
			
		||||
            const cancel_p = quickElement('p', cal_box);
 | 
			
		||||
            cancel_p.className = 'calendar-cancel';
 | 
			
		||||
            const cancel_link = quickElement('a', cancel_p, gettext('Cancel'), 'href', '#');
 | 
			
		||||
            cancel_link.addEventListener('click', function(e) {
 | 
			
		||||
                e.preventDefault();
 | 
			
		||||
                DateTimeShortcuts.dismissCalendar(num);
 | 
			
		||||
            });
 | 
			
		||||
            document.addEventListener('keyup', function(event) {
 | 
			
		||||
                if (event.which === 27) {
 | 
			
		||||
                    // ESC key closes popup
 | 
			
		||||
                    DateTimeShortcuts.dismissCalendar(num);
 | 
			
		||||
                    event.preventDefault();
 | 
			
		||||
                }
 | 
			
		||||
            });
 | 
			
		||||
        },
 | 
			
		||||
        openCalendar: function(num) {
 | 
			
		||||
            const cal_box = document.getElementById(DateTimeShortcuts.calendarDivName1 + num);
 | 
			
		||||
            const cal_link = document.getElementById(DateTimeShortcuts.calendarLinkName + num);
 | 
			
		||||
            const inp = DateTimeShortcuts.calendarInputs[num];
 | 
			
		||||
 | 
			
		||||
            // Determine if the current value in the input has a valid date.
 | 
			
		||||
            // If so, draw the calendar with that date's year and month.
 | 
			
		||||
            if (inp.value) {
 | 
			
		||||
                const format = get_format('DATE_INPUT_FORMATS')[0];
 | 
			
		||||
                const selected = inp.value.strptime(format);
 | 
			
		||||
                const year = selected.getUTCFullYear();
 | 
			
		||||
                const month = selected.getUTCMonth() + 1;
 | 
			
		||||
                const re = /\d{4}/;
 | 
			
		||||
                if (re.test(year.toString()) && month >= 1 && month <= 12) {
 | 
			
		||||
                    DateTimeShortcuts.calendars[num].drawDate(month, year, selected);
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            // Recalculate the clockbox position
 | 
			
		||||
            // is it left-to-right or right-to-left layout ?
 | 
			
		||||
            if (window.getComputedStyle(document.body).direction !== 'rtl') {
 | 
			
		||||
                cal_box.style.left = findPosX(cal_link) + 17 + 'px';
 | 
			
		||||
            }
 | 
			
		||||
            else {
 | 
			
		||||
                // since style's width is in em, it'd be tough to calculate
 | 
			
		||||
                // px value of it. let's use an estimated px for now
 | 
			
		||||
                cal_box.style.left = findPosX(cal_link) - 180 + 'px';
 | 
			
		||||
            }
 | 
			
		||||
            cal_box.style.top = Math.max(0, findPosY(cal_link) - 75) + 'px';
 | 
			
		||||
 | 
			
		||||
            cal_box.style.display = 'block';
 | 
			
		||||
            document.addEventListener('click', DateTimeShortcuts.dismissCalendarFunc[num]);
 | 
			
		||||
        },
 | 
			
		||||
        dismissCalendar: function(num) {
 | 
			
		||||
            document.getElementById(DateTimeShortcuts.calendarDivName1 + num).style.display = 'none';
 | 
			
		||||
            document.removeEventListener('click', DateTimeShortcuts.dismissCalendarFunc[num]);
 | 
			
		||||
        },
 | 
			
		||||
        drawPrev: function(num) {
 | 
			
		||||
            DateTimeShortcuts.calendars[num].drawPreviousMonth();
 | 
			
		||||
        },
 | 
			
		||||
        drawNext: function(num) {
 | 
			
		||||
            DateTimeShortcuts.calendars[num].drawNextMonth();
 | 
			
		||||
        },
 | 
			
		||||
        handleCalendarCallback: function(num) {
 | 
			
		||||
            let format = get_format('DATE_INPUT_FORMATS')[0];
 | 
			
		||||
            // the format needs to be escaped a little
 | 
			
		||||
            format = format.replace('\\', '\\\\')
 | 
			
		||||
                .replace('\r', '\\r')
 | 
			
		||||
                .replace('\n', '\\n')
 | 
			
		||||
                .replace('\t', '\\t')
 | 
			
		||||
                .replace("'", "\\'");
 | 
			
		||||
            return function(y, m, d) {
 | 
			
		||||
                DateTimeShortcuts.calendarInputs[num].value = new Date(y, m - 1, d).strftime(format);
 | 
			
		||||
                DateTimeShortcuts.calendarInputs[num].focus();
 | 
			
		||||
                document.getElementById(DateTimeShortcuts.calendarDivName1 + num).style.display = 'none';
 | 
			
		||||
                // Added by cpa:
 | 
			
		||||
                DateTimeShortcuts.calendarInputs[num].dispatchEvent(new Event('change'));
 | 
			
		||||
            };
 | 
			
		||||
        },
 | 
			
		||||
        handleCalendarQuickLink: function(num, offset) {
 | 
			
		||||
            const d = DateTimeShortcuts.now();
 | 
			
		||||
            d.setDate(d.getDate() + offset);
 | 
			
		||||
            DateTimeShortcuts.calendarInputs[num].value = d.strftime(get_format('DATE_INPUT_FORMATS')[0]);
 | 
			
		||||
            DateTimeShortcuts.calendarInputs[num].focus();
 | 
			
		||||
            DateTimeShortcuts.dismissCalendar(num);
 | 
			
		||||
        }
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    // CUSTOMIZED: We call it ourselves.
 | 
			
		||||
    //window.addEventListener('load', DateTimeShortcuts.init);
 | 
			
		||||
    window.DateTimeShortcuts = DateTimeShortcuts;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										1
									
								
								aemo/static/js/autocomplete.min.js
									
										
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).autocomplete=t()}(this,(function(){"use strict";return function(e){var t,n,o=document,i=o.createElement("div"),r=i.style,f=navigator.userAgent,l=-1!==f.indexOf("Firefox")&&-1!==f.indexOf("Mobile"),u=e.debounceWaitMs||0,a=e.preventSubmit||!1,s=e.disableAutoSelect||!1,d=l?"input":"keyup",c=[],p="",v=2,m=e.showOnFocus,g=0;if(void 0!==e.minLength&&(v=e.minLength),!e.input)throw new Error("input undefined");var h=e.input;function E(){n&&window.clearTimeout(n)}function w(){return!!i.parentNode}function L(){var e;g++,c=[],p="",t=void 0,(e=i.parentNode)&&e.removeChild(i)}function b(){for(;i.firstChild;)i.removeChild(i.firstChild);var n=function(e,t){var n=o.createElement("div");return n.textContent=e.label||"",n};e.render&&(n=e.render);var f=function(e,t){var n=o.createElement("div");return n.textContent=e,n};e.renderGroup&&(f=e.renderGroup);var l=o.createDocumentFragment(),u="#9?$";if(c.forEach((function(o){if(o.group&&o.group!==u){u=o.group;var i=f(o.group,p);i&&(i.className+=" group",l.appendChild(i))}var r=n(o,p);r&&(r.addEventListener("click",(function(t){e.onSelect(o,h),L(),t.preventDefault(),t.stopPropagation()})),o===t&&(r.className+=" selected"),l.appendChild(r))})),i.appendChild(l),c.length<1){if(!e.emptyMsg)return void L();var a=o.createElement("div");a.className="empty",a.textContent=e.emptyMsg,i.appendChild(a)}i.parentNode||o.body.appendChild(i),function(){if(w()){r.height="auto",r.width=h.offsetWidth+"px";var t,n=0;f(),f(),e.customize&&t&&e.customize(h,t,i,n)}function f(){var e=o.documentElement,i=e.clientTop||o.body.clientTop||0,f=e.clientLeft||o.body.clientLeft||0,l=window.pageYOffset||e.scrollTop,u=window.pageXOffset||e.scrollLeft,a=(t=h.getBoundingClientRect()).top+h.offsetHeight+l-i,s=t.left+u-f;r.top=a+"px",r.left=s+"px",(n=window.innerHeight-(t.top+h.offsetHeight))<0&&(n=0),r.top=a+"px",r.bottom="",r.left=s+"px",r.maxHeight=n+"px"}}(),function(){var e=i.getElementsByClassName("selected");if(e.length>0){var t=e[0],n=t.previousElementSibling;if(n&&-1!==n.className.indexOf("group")&&!n.previousElementSibling&&(t=n),t.offsetTop<i.scrollTop)i.scrollTop=t.offsetTop;else{var o=t.offsetTop+t.offsetHeight,r=i.scrollTop+i.offsetHeight;o>r&&(i.scrollTop+=o-r)}}}()}function y(){w()&&b()}function x(){y()}function C(e){e.target!==i?y():e.preventDefault()}function T(e){for(var t=e.which||e.keyCode||0,n=0,o=[38,13,27,39,37,16,17,18,20,91,9];n<o.length;n++){if(t===o[n])return}t>=112&&t<=123||40===t&&w()||D(0)}function N(n){var o=n.which||n.keyCode||0;if(38===o||40===o||27===o){var i=w();if(27===o)L();else{if(!i||c.length<1)return;38===o?function(){if(c.length<1)t=void 0;else if(t===c[0])t=c[c.length-1];else for(var e=c.length-1;e>0;e--)if(t===c[e]||1===e){t=c[e-1];break}}():function(){if(c.length<1&&(t=void 0),t&&t!==c[c.length-1]){for(var e=0;e<c.length-1;e++)if(t===c[e]){t=c[e+1];break}}else t=c[0]}(),b()}return n.preventDefault(),void(i&&n.stopPropagation())}13===o&&(t&&(e.onSelect(t,h),L()),a&&n.preventDefault())}function k(){m&&D(1)}function D(o){var i=++g,r=h.value;r.length>=v||1===o?(E(),n=window.setTimeout((function(){e.fetch(r,(function(e){g===i&&e&&(p=r,t=(c=e).length<1||s?void 0:c[0],b())}),o)}),0===o?u:0)):L()}function H(){setTimeout((function(){o.activeElement!==h&&L()}),200)}return i.className="autocomplete "+(e.className||""),r.position="absolute",i.addEventListener("mousedown",(function(e){e.stopPropagation(),e.preventDefault()})),i.addEventListener("focus",(function(){return h.focus()})),h.addEventListener("keydown",N),h.addEventListener(d,T),h.addEventListener("blur",H),h.addEventListener("focus",k),window.addEventListener("resize",x),o.addEventListener("scroll",C,!0),{destroy:function(){h.removeEventListener("focus",k),h.removeEventListener("keydown",N),h.removeEventListener(d,T),h.removeEventListener("blur",H),window.removeEventListener("resize",x),o.removeEventListener("scroll",C,!0),E(),L()}}}}));
 | 
			
		||||
							
								
								
									
										6
									
								
								aemo/static/js/autosize.min.js
									
										
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						| 
						 | 
				
			
			@ -0,0 +1,6 @@
 | 
			
		|||
/*!
 | 
			
		||||
	autosize 4.0.2
 | 
			
		||||
	license: MIT
 | 
			
		||||
	http://www.jacklmoore.com/autosize
 | 
			
		||||
*/
 | 
			
		||||
!function(e,t){if("function"==typeof define&&define.amd)define(["module","exports"],t);else if("undefined"!=typeof exports)t(module,exports);else{var n={exports:{}};t(n,n.exports),e.autosize=n.exports}}(this,function(e,t){"use strict";var n,o,p="function"==typeof Map?new Map:(n=[],o=[],{has:function(e){return-1<n.indexOf(e)},get:function(e){return o[n.indexOf(e)]},set:function(e,t){-1===n.indexOf(e)&&(n.push(e),o.push(t))},delete:function(e){var t=n.indexOf(e);-1<t&&(n.splice(t,1),o.splice(t,1))}}),c=function(e){return new Event(e,{bubbles:!0})};try{new Event("test")}catch(e){c=function(e){var t=document.createEvent("Event");return t.initEvent(e,!0,!1),t}}function r(r){if(r&&r.nodeName&&"TEXTAREA"===r.nodeName&&!p.has(r)){var e,n=null,o=null,i=null,d=function(){r.clientWidth!==o&&a()},l=function(t){window.removeEventListener("resize",d,!1),r.removeEventListener("input",a,!1),r.removeEventListener("keyup",a,!1),r.removeEventListener("autosize:destroy",l,!1),r.removeEventListener("autosize:update",a,!1),Object.keys(t).forEach(function(e){r.style[e]=t[e]}),p.delete(r)}.bind(r,{height:r.style.height,resize:r.style.resize,overflowY:r.style.overflowY,overflowX:r.style.overflowX,wordWrap:r.style.wordWrap});r.addEventListener("autosize:destroy",l,!1),"onpropertychange"in r&&"oninput"in r&&r.addEventListener("keyup",a,!1),window.addEventListener("resize",d,!1),r.addEventListener("input",a,!1),r.addEventListener("autosize:update",a,!1),r.style.overflowX="hidden",r.style.wordWrap="break-word",p.set(r,{destroy:l,update:a}),"vertical"===(e=window.getComputedStyle(r,null)).resize?r.style.resize="none":"both"===e.resize&&(r.style.resize="horizontal"),n="content-box"===e.boxSizing?-(parseFloat(e.paddingTop)+parseFloat(e.paddingBottom)):parseFloat(e.borderTopWidth)+parseFloat(e.borderBottomWidth),isNaN(n)&&(n=0),a()}function s(e){var t=r.style.width;r.style.width="0px",r.offsetWidth,r.style.width=t,r.style.overflowY=e}function u(){if(0!==r.scrollHeight){var e=function(e){for(var t=[];e&&e.parentNode&&e.parentNode instanceof Element;)e.parentNode.scrollTop&&t.push({node:e.parentNode,scrollTop:e.parentNode.scrollTop}),e=e.parentNode;return t}(r),t=document.documentElement&&document.documentElement.scrollTop;r.style.height="",r.style.height=r.scrollHeight+n+"px",o=r.clientWidth,e.forEach(function(e){e.node.scrollTop=e.scrollTop}),t&&(document.documentElement.scrollTop=t)}}function a(){u();var e=Math.round(parseFloat(r.style.height)),t=window.getComputedStyle(r,null),n="content-box"===t.boxSizing?Math.round(parseFloat(t.height)):r.offsetHeight;if(n<e?"hidden"===t.overflowY&&(s("scroll"),u(),n="content-box"===t.boxSizing?Math.round(parseFloat(window.getComputedStyle(r,null).height)):r.offsetHeight):"hidden"!==t.overflowY&&(s("hidden"),u(),n="content-box"===t.boxSizing?Math.round(parseFloat(window.getComputedStyle(r,null).height)):r.offsetHeight),i!==n){i=n;var o=c("autosize:resized");try{r.dispatchEvent(o)}catch(e){}}}}function i(e){var t=p.get(e);t&&t.destroy()}function d(e){var t=p.get(e);t&&t.update()}var l=null;"undefined"==typeof window||"function"!=typeof window.getComputedStyle?((l=function(e){return e}).destroy=function(e){return e},l.update=function(e){return e}):((l=function(e,t){return e&&Array.prototype.forEach.call(e.length?e:[e],function(e){return r(e)}),e}).destroy=function(e){return e&&Array.prototype.forEach.call(e.length?e:[e],i),e},l.update=function(e){return e&&Array.prototype.forEach.call(e.length?e:[e],d),e}),t.default=l,e.exports=t.default});
 | 
			
		||||
							
								
								
									
										241
									
								
								aemo/static/js/main.js
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
						 | 
				
			
			@ -0,0 +1,241 @@
 | 
			
		|||
function htmlToElem(html) {
 | 
			
		||||
    let temp = document.createElement('template');
 | 
			
		||||
    html = html.trim(); // Never return a space text node as a result
 | 
			
		||||
    temp.innerHTML = html;
 | 
			
		||||
    return temp.content.firstChild;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function dateFormat(input) {
 | 
			
		||||
    if (input) {
 | 
			
		||||
        var dt = new Date(input);
 | 
			
		||||
        return dt.toLocaleDateString("fr-CH");
 | 
			
		||||
    }
 | 
			
		||||
    return '-';
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var changed = false;
 | 
			
		||||
 | 
			
		||||
function check_changed(ev) {
 | 
			
		||||
    if (changed) {
 | 
			
		||||
        alert("Vos données n'ont pas été sauvegardées !");
 | 
			
		||||
        ev.preventDefault();
 | 
			
		||||
        return false;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function toggle_read_more(ev) {
 | 
			
		||||
    ev.preventDefault();
 | 
			
		||||
    const link = ev.target;
 | 
			
		||||
    link.innerHTML = (link.innerHTML == 'Afficher la suite') ? 'Réduire' : 'Afficher la suite';
 | 
			
		||||
    link.parentNode.querySelector('.long').classList.toggle('hidden');
 | 
			
		||||
    link.parentNode.querySelector('.short').classList.toggle('hidden');
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function showImage(ev) {
 | 
			
		||||
    var modal = document.getElementById('imgModal'); /* Present in base.html */
 | 
			
		||||
    var imgTag = document.getElementById("img01");
 | 
			
		||||
    var captionText = document.getElementById("caption");
 | 
			
		||||
    ev.preventDefault();
 | 
			
		||||
    modal.style.display = "block";
 | 
			
		||||
    imgTag.src = this.href;
 | 
			
		||||
    captionText.innerHTML = this.textContent;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function setConfirmHandlers(section) {
 | 
			
		||||
    if (typeof section === 'undefined') section = document;
 | 
			
		||||
    const selector = section.querySelectorAll(".btn-danger, .confirm");
 | 
			
		||||
    selector.forEach(button => {
 | 
			
		||||
        button.addEventListener('click', ev => {
 | 
			
		||||
            if (button.dataset.confirm) {
 | 
			
		||||
                ev.preventDefault();
 | 
			
		||||
                if (!confirm(button.dataset.confirm)) {
 | 
			
		||||
                    return false;
 | 
			
		||||
                } else {
 | 
			
		||||
                    if (button.getAttribute('formaction')) button.form.action = button.formAction;
 | 
			
		||||
                    button.form.submit();
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        });
 | 
			
		||||
    });
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function openFormInModal(url) {
 | 
			
		||||
    const popup = document.querySelector('#popup0');
 | 
			
		||||
 | 
			
		||||
    function setupForm() {
 | 
			
		||||
        DateTimeShortcuts.init(popup);
 | 
			
		||||
        setConfirmHandlers(popup);
 | 
			
		||||
        document.querySelectorAll("#popup0 form").forEach((form) => {
 | 
			
		||||
            form.addEventListener('submit', (ev) => {
 | 
			
		||||
                ev.preventDefault();
 | 
			
		||||
                const form = ev.target;
 | 
			
		||||
                const formData = new FormData(form);
 | 
			
		||||
                // GET/POST with fetch
 | 
			
		||||
                let url = form.action;
 | 
			
		||||
                let params = {method: form.method};
 | 
			
		||||
                if (form.method == 'post') {
 | 
			
		||||
                    params['body'] = formData;
 | 
			
		||||
                }
 | 
			
		||||
                fetch(url, params).then(res => {
 | 
			
		||||
                    if (res.redirected) {
 | 
			
		||||
                        window.location.reload(true);
 | 
			
		||||
                        return '';
 | 
			
		||||
                    }
 | 
			
		||||
                    return res.text();
 | 
			
		||||
                }).then(html => {
 | 
			
		||||
                    if (html) {
 | 
			
		||||
                        // Redisplay form with errors or display confirm page
 | 
			
		||||
                        popup.querySelector('.modal-body').innerHTML = html;
 | 
			
		||||
                        setupForm();
 | 
			
		||||
                    }
 | 
			
		||||
                }).catch((err) => {
 | 
			
		||||
                    console.log(err);
 | 
			
		||||
                    alert("Désolé, une erreur s'est produite");
 | 
			
		||||
                });
 | 
			
		||||
            });
 | 
			
		||||
        });
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    return fetch(url).then(res => res.text()).then(html => {
 | 
			
		||||
        const modal = new bootstrap.Modal(popup);
 | 
			
		||||
        popup.querySelector('.modal-body').innerHTML = html;
 | 
			
		||||
        modal.show();
 | 
			
		||||
        setupForm();
 | 
			
		||||
        return popup;
 | 
			
		||||
    });
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function resetForm(ev) {
 | 
			
		||||
    const form = ev.target.closest('form');
 | 
			
		||||
    Array.from(form.elements).forEach(el => { el.value = ''; });
 | 
			
		||||
    form.submit();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function submitFilterForm(form) {
 | 
			
		||||
    let action = form.action || '.';
 | 
			
		||||
    const formData = new FormData(form);
 | 
			
		||||
    action += '?' + new URLSearchParams(formData).toString();
 | 
			
		||||
    fetch(action, {
 | 
			
		||||
        method: 'get',
 | 
			
		||||
        headers: {'X-Requested-With': 'Fetch'}
 | 
			
		||||
    }).then(response => { return response.text(); }).then(output => {
 | 
			
		||||
        const parser = new DOMParser();
 | 
			
		||||
        const doc = parser.parseFromString(output, "text/html");
 | 
			
		||||
        const tableBody = doc.querySelector('.table-sortable tbody');
 | 
			
		||||
        document.querySelector('.table-sortable tbody').replaceWith(tableBody);
 | 
			
		||||
        const pagination = doc.querySelector('#pagination');
 | 
			
		||||
        document.querySelector('#pagination').replaceWith(pagination);
 | 
			
		||||
    });
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function sortColumn(ev) {
 | 
			
		||||
    const header = ev.target;
 | 
			
		||||
    const form = document.querySelector('.selection_form');
 | 
			
		||||
    const desc = header.classList.contains('asc');
 | 
			
		||||
    form.elements['sort_by'].value = (desc ? '-' : '') + header.dataset.col;
 | 
			
		||||
    submitFilterForm(form);
 | 
			
		||||
    // Reset colums classes
 | 
			
		||||
    Array.from(header.parentNode.children).forEach(head => {
 | 
			
		||||
        head.classList.remove('desc');
 | 
			
		||||
        head.classList.remove('asc');
 | 
			
		||||
    });
 | 
			
		||||
    header.classList.add(desc ? 'desc': 'asc');
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
document.addEventListener("DOMContentLoaded", () => {
 | 
			
		||||
    if (typeof DateTimeShortcuts !== 'undefined') {
 | 
			
		||||
        DateTimeShortcuts.init();
 | 
			
		||||
    }
 | 
			
		||||
    autosize(document.querySelectorAll('textarea'));
 | 
			
		||||
    $("form").not(".selection_form").not("[method='get']").change(function() {
 | 
			
		||||
        changed = true;
 | 
			
		||||
    });
 | 
			
		||||
    $("#menu_crne, #aemo_buttons, #aemo_print_buttons").click
 | 
			
		||||
    (check_changed);
 | 
			
		||||
    setConfirmHandlers();
 | 
			
		||||
    $("table.sortable").each(function(idx) {
 | 
			
		||||
        new Tablesort(this);
 | 
			
		||||
    });
 | 
			
		||||
    $(".table-sortable th").click(sortColumn);
 | 
			
		||||
    $('a.read_more').click(toggle_read_more);
 | 
			
		||||
 | 
			
		||||
    // Attachment images
 | 
			
		||||
    $('a.image').click(showImage);
 | 
			
		||||
    $('#modalClose').click(function(ev) {$(this).closest('div').hide(); });
 | 
			
		||||
 | 
			
		||||
    $('input[name=dh_debut_1]').change(function(){
 | 
			
		||||
        var dateFin = $('input[name=dh_fin_0]');
 | 
			
		||||
        if (dateFin.val() == '') {
 | 
			
		||||
            // Copier date de début vers date de fin
 | 
			
		||||
            dateFin.val($('input[name=dh_debut_0]').val());
 | 
			
		||||
        }
 | 
			
		||||
        var heureFin = $('input[name=dh_fin_1]');
 | 
			
		||||
        if (heureFin.val() == '') {
 | 
			
		||||
            // Mettre heure de fin 1 heure après heure de début
 | 
			
		||||
            var dh = $('input[name=dh_debut_1]').val().split(":");
 | 
			
		||||
            h = parseInt(dh[0]) + 1;
 | 
			
		||||
            heureFin.val(h.toString() + ":" + dh[1]);
 | 
			
		||||
        }
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    document.querySelectorAll('.immediate-submit').forEach(immediate => {
 | 
			
		||||
        //immediate.addEventListener('click', immediateSubmit);
 | 
			
		||||
        // With screen readers, users don't click but change the radio value
 | 
			
		||||
        immediate.addEventListener('change', (ev) => {
 | 
			
		||||
            ev.target.form.submit()
 | 
			
		||||
        });
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    $(".js-add, .js-edit").click(function(e) {
 | 
			
		||||
        const url = this.dataset.url || this.href;
 | 
			
		||||
        e.preventDefault();
 | 
			
		||||
        openFormInModal(url);
 | 
			
		||||
        return false;
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    // Activation des tooltips
 | 
			
		||||
    const tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]'))
 | 
			
		||||
    tooltipTriggerList.map((el) => new bootstrap.Tooltip(el));
 | 
			
		||||
 | 
			
		||||
    $('#reset-button').click(resetForm);
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
function debounce(func, timeout=300) {
 | 
			
		||||
  let timer;
 | 
			
		||||
  return (...args) => {
 | 
			
		||||
    if (timeout <= 0) func.apply(this, args);
 | 
			
		||||
    else {
 | 
			
		||||
      clearTimeout(timer);
 | 
			
		||||
      timer = setTimeout(() => { func.apply(this, args); }, timeout);
 | 
			
		||||
    }
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
async function archiveFamilies(ev) {
 | 
			
		||||
    const btn = ev.target;
 | 
			
		||||
    const archiveUrl = btn.dataset.archiveurl;
 | 
			
		||||
    const counterSpan = document.querySelector('#archive-counter');
 | 
			
		||||
    const totalSpan = document.querySelector('#archive-total');
 | 
			
		||||
 | 
			
		||||
    bootstrap.Modal.getInstance(document.getElementById('archiveModal')).hide();
 | 
			
		||||
    document.getElementById('archive-message').removeAttribute('hidden');
 | 
			
		||||
    const resp = await fetch(btn.dataset.getarchivableurl);
 | 
			
		||||
    const data = await resp.json();
 | 
			
		||||
    let compteur = 0;
 | 
			
		||||
    totalSpan.textContent = data.length;
 | 
			
		||||
    const formData = new FormData();
 | 
			
		||||
    formData.append('csrfmiddlewaretoken', document.querySelector('[name=csrfmiddlewaretoken]').value);
 | 
			
		||||
    for (let i = 0; i < data.length; i++) {
 | 
			
		||||
        const archResp = await fetch(
 | 
			
		||||
            archiveUrl.replace('999', data[i]),
 | 
			
		||||
            {method: 'POST', headers: {'X-Requested-With': 'Fetch'}, body: formData}
 | 
			
		||||
        );
 | 
			
		||||
        const jsonResp = await archResp.json();
 | 
			
		||||
        compteur += 1;
 | 
			
		||||
        counterSpan.textContent = compteur;
 | 
			
		||||
    }
 | 
			
		||||
    const messageP = document.querySelector("#archive-message p");
 | 
			
		||||
    messageP.textContent = `${compteur} dossiers ont été archivés avec succès.`;
 | 
			
		||||
    messageP.classList.remove('alert-danger');
 | 
			
		||||
    messageP.classList.add('alert-success');
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										6
									
								
								aemo/static/js/sorts/tablesort.date.min.js
									
										
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						| 
						 | 
				
			
			@ -0,0 +1,6 @@
 | 
			
		|||
/*!
 | 
			
		||||
 * tablesort v5.1.0 (2020-01-22)
 | 
			
		||||
 * http://tristen.ca/tablesort/demo/
 | 
			
		||||
 * Copyright (c) 2020 ; Licensed MIT
 | 
			
		||||
*/
 | 
			
		||||
!function(){var a=function(a){return a=a.replace(/\-/g,"/"),a=a.replace(/(\d{1,2})[\/\-](\d{1,2})[\/\-](\d{2,4})/,"$3-$2-$1"),new Date(a).getTime()||-1};Tablesort.extend("date",function(b){return(-1!==b.search(/(Mon|Tue|Wed|Thu|Fri|Sat|Sun)\.?\,?\s*/i)||-1!==b.search(/\d{1,2}[\/\-]\d{1,2}[\/\-]\d{2,4}/)||-1!==b.search(/(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)/i))&&!isNaN(a(b))},function(b,c){return b=b.toLowerCase(),c=c.toLowerCase(),a(c)-a(b)})}();
 | 
			
		||||
							
								
								
									
										6
									
								
								aemo/static/js/sorts/tablesort.number.min.js
									
										
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						| 
						 | 
				
			
			@ -0,0 +1,6 @@
 | 
			
		|||
/*!
 | 
			
		||||
 * tablesort v5.1.0 (2020-01-22)
 | 
			
		||||
 * http://tristen.ca/tablesort/demo/
 | 
			
		||||
 * Copyright (c) 2020 ; Licensed MIT
 | 
			
		||||
*/
 | 
			
		||||
!function(){var a=function(a){return a.replace(/[^\-?0-9.]/g,"")},b=function(a,b){return a=parseFloat(a),b=parseFloat(b),a=isNaN(a)?0:a,b=isNaN(b)?0:b,a-b};Tablesort.extend("number",function(a){return a.match(/^[-+]?[£\x24Û¢´€]?\d+\s*([,\.]\d{0,2})/)||a.match(/^[-+]?\d+\s*([,\.]\d{0,2})?[£\x24Û¢´€]/)||a.match(/^[-+]?(\d)*-?([,\.]){0,1}-?(\d)+([E,e][\-+][\d]+)?%?$/)},function(c,d){return c=a(c),d=a(d),b(d,c)})}();
 | 
			
		||||
							
								
								
									
										6
									
								
								aemo/static/js/tablesort.min.js
									
										
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						| 
						 | 
				
			
			@ -0,0 +1,6 @@
 | 
			
		|||
/*!
 | 
			
		||||
 * tablesort v5.1.0 (2020-01-22)
 | 
			
		||||
 * http://tristen.ca/tablesort/demo/
 | 
			
		||||
 * Copyright (c) 2020 ; Licensed MIT
 | 
			
		||||
*/
 | 
			
		||||
!function(){function a(b,c){if(!(this instanceof a))return new a(b,c);if(!b||"TABLE"!==b.tagName)throw new Error("Element must be a table");this.init(b,c||{})}var b=[],c=function(a){var b;return window.CustomEvent&&"function"==typeof window.CustomEvent?b=new CustomEvent(a):(b=document.createEvent("CustomEvent"),b.initCustomEvent(a,!1,!1,void 0)),b},d=function(a){return a.getAttribute("data-sort")||a.textContent||a.innerText||""},e=function(a,b){return a=a.trim().toLowerCase(),b=b.trim().toLowerCase(),a===b?0:a<b?1:-1},f=function(a,b){return[].slice.call(a).find(function(a){return a.getAttribute("data-sort-column-key")===b})},g=function(a,b){return function(c,d){var e=a(c.td,d.td);return 0===e?b?d.index-c.index:c.index-d.index:e}};a.extend=function(a,c,d){if("function"!=typeof c||"function"!=typeof d)throw new Error("Pattern and sort must be a function");b.push({name:a,pattern:c,sort:d})},a.prototype={init:function(a,b){var c,d,e,f,g=this;if(g.table=a,g.thead=!1,g.options=b,a.rows&&a.rows.length>0)if(a.tHead&&a.tHead.rows.length>0){for(e=0;e<a.tHead.rows.length;e++)if("thead"===a.tHead.rows[e].getAttribute("data-sort-method")){c=a.tHead.rows[e];break}c||(c=a.tHead.rows[a.tHead.rows.length-1]),g.thead=!0}else c=a.rows[0];if(c){var h=function(){g.current&&g.current!==this&&g.current.removeAttribute("aria-sort"),g.current=this,g.sortTable(this)};for(e=0;e<c.cells.length;e++)f=c.cells[e],f.setAttribute("role","columnheader"),"none"!==f.getAttribute("data-sort-method")&&(f.tabindex=0,f.addEventListener("click",h,!1),null!==f.getAttribute("data-sort-default")&&(d=f));d&&(g.current=d,g.sortTable(d))}},sortTable:function(a,h){var i=this,j=a.getAttribute("data-sort-column-key"),k=a.cellIndex,l=e,m="",n=[],o=i.thead?0:1,p=a.getAttribute("data-sort-method"),q=a.getAttribute("aria-sort");if(i.table.dispatchEvent(c("beforeSort")),h||(q="ascending"===q?"descending":"descending"===q?"ascending":i.options.descending?"descending":"ascending",a.setAttribute("aria-sort",q)),!(i.table.rows.length<2)){if(!p){for(var r;n.length<3&&o<i.table.tBodies[0].rows.length;)r=j?f(i.table.tBodies[0].rows[o].cells,j):i.table.tBodies[0].rows[o].cells[k],m=r?d(r):"",m=m.trim(),m.length>0&&n.push(m),o++;if(!n)return}for(o=0;o<b.length;o++)if(m=b[o],p){if(m.name===p){l=m.sort;break}}else if(n.every(m.pattern)){l=m.sort;break}for(i.col=k,o=0;o<i.table.tBodies.length;o++){var s,t=[],u={},v=0,w=0;if(!(i.table.tBodies[o].rows.length<2)){for(s=0;s<i.table.tBodies[o].rows.length;s++){var r;m=i.table.tBodies[o].rows[s],"none"===m.getAttribute("data-sort-method")?u[v]=m:(r=j?f(m.cells,j):m.cells[i.col],t.push({tr:m,td:r?d(r):"",index:v})),v++}for("descending"===q?t.sort(g(l,!0)):(t.sort(g(l,!1)),t.reverse()),s=0;s<v;s++)u[s]?(m=u[s],w++):m=t[s-w].tr,i.table.tBodies[o].appendChild(m)}}i.table.dispatchEvent(c("afterSort"))}},refresh:function(){void 0!==this.current&&this.sortTable(this.current,!0)}},"undefined"!=typeof module&&module.exports?module.exports=a:window.Tablesort=a}();
 | 
			
		||||