diff --git a/automate.php b/automate.php index 0aa39d3..f6d9b1b 100755 --- a/automate.php +++ b/automate.php @@ -10,7 +10,7 @@ use \api\client; - + debug(); /* PARSAGE DE JOURNAUX D'APPEL @@ -18,16 +18,11 @@ * */ function parseCallLog(){ - - /* [1] On recupere le journal d'appel - =========================================================*/ - $file_content = file_get_contents('calllog.xml'); - - var_dump( $file_content ); return; - /* [2] On cree la requete =========================================================*/ - $request = new ModuleRequest('call_log/unserialize', array('filecontent'=>$file_content)); + $request = new ModuleRequest('call_log/unserialize', array( + 'phone_number' => '01 02 03 04 05' + )); $answer = $request->dispatch(); // on l'execute /* [3] Si erreur @@ -42,36 +37,15 @@ /* [4] Sinon on recupere le resultat =========================================================*/ - $sms = $answer->get('sms'); - $call = $answer->get('call'); - $contact = $answer->get('contact'); + $directory = $answer->get('directory'); + $logs = $answer->get('logs'); - /* [5] On debug les donnees recues - =========================================================*/ - var_dump( "Il y a ".count($contact)." personnes :" ); - var_dump( "- ".count($sms)." par SMS/MMS" ); - var_dump( "- ".count($call)." par telephone" ); - echo "
"; - echo "TOP 10 DES APPELS
"; - echo "=================
"; - foreach($call as $v) - var_dump( $v[0] ." (".$contact[$v[0]].") \t\t\t". $v[1] ." appels"); - - echo "TOP 10 DES MMS/SMS
"; - echo "==================
"; - foreach($sms as $v) - var_dump( $v[0] ." (".$contact[$v[0]].") \t\t\t". $v[1] ." appels"); - - - var_dump("\n\n\nOBJET COMPLET"); - var_dump( $sms ); - var_dump( $call ); - var_dump( $contact ); + foreach($directory as $num=>$name) + echo $num.' <> '.$name.'
'; } - // parseCallLog(); + parseCallLog(); - debug(); /* () Test du client de l'API generique */ @@ -83,4 +57,10 @@ // var_dump($response); + // var_dump( Database::delNumeric( Database::getPDO()->query("SHOW COLUMNS FROM users")->fetchAll() ) ); + + // var_dump( \manager\repo\user::getById(1) ); + // // var_dump( \manager\repo\user::getByLogin('xdrm') ); + // // var_dump( \manager\repo\subject::getById(1) ); + ?> diff --git a/config/database.json b/config/database.json index 8859117..e18d45e 100755 --- a/config/database.json +++ b/config/database.json @@ -3,4 +3,4 @@ "dbname" : "socioview", "user" : "php", "password" : "QbzjZACndQM6NmuD" -} \ No newline at end of file +} diff --git a/config/menu.json b/config/menu.json index 1063eef..c5b352c 100644 --- a/config/menu.json +++ b/config/menu.json @@ -16,13 +16,13 @@ "attributes": { "data-link": "input" }, "children": [ - { "permissions": [], "text": "Questionnaire", + { "permissions": ["admin"], "text": "Questionnaire", "attributes": { "data-sublink": "survey" } }, - { "permissions": [], "text": "Facebook", + { "permissions": ["admin"], "text": "Facebook", "attributes": { "data-sublink": "facebook" } }, - { "permissions": [], "text": "Téléphone", + { "permissions": ["admin"], "text": "Téléphone", "attributes": { "data-sublink": "phone" } }, - { "permissions": [], "text": "Messenger", + { "permissions": ["admin"], "text": "Messenger", "attributes": { "data-sublink": "messenger" } } ] }, diff --git a/config/modules.json b/config/modules.json index c341857..c2bb684 100755 --- a/config/modules.json +++ b/config/modules.json @@ -15,6 +15,16 @@ } }, + "phpunitOptionalParams": { + "description": "Méthode utile à phpunit pour le test des paramètres optionnels.", + "permissions": [], + "parameters": { + "p1": { "description": "Texte", "type": "text" }, + "p2": { "description": "Texte", "type": "text", "optional": false }, + "p3": { "description": "Entier positif (optionnel)", "type": "id", "optional": true } + } + }, + "phpunitPermissions": { "description": "Méthode utile à phpunit pour le test des permissions.", "permissions": ["a", "b"], @@ -42,7 +52,7 @@ "getById": { "description": "Retourne les informations d'un utilisateur.", "permissions": ["admin"], - "parameters": { + "parameters": { "id_user": { "description": "UID de l'utilisateur recherche.", "type": "id" } } }, @@ -59,11 +69,11 @@ "description": "Creation d'un nouvel utilisateur.", "permissions": ["admin"], "parameters": { - "login" : { "description": "Login de l'utilisateur, 30 caracteres maximum.", "type": "varchar(3,30)" }, - "password" : { "description": "Mot de passe de l'utilisateur.", "type": "text" }, - "mail" : { "description": "Adresse mail de l'utilisateur.", "type": "mail" }, - "reference" : { "description": "UID d'une personne d'un sondage, peut etre vide.", "type": "text" }, - "permissions": { "description": "Liste des permissions de l'utilisateur.", "type": "text" } + "login": { "description": "Login de l'utilisateur, 30 caracteres maximum.", "type": "varchar(3,30)" }, + "password": { "description": "Mot de passe de l'utilisateur.", "type": "text" }, + "mail": { "description": "Adresse mail de l'utilisateur.", "type": "mail" }, + "reference": { "description": "UID d'une personne d'un sondage, peut etre vide.", "type": "text" }, + "permission": { "description": "Permissions de l'utilisateur : 'admin' ou 'subject'", "type": "varchar(5,7)" } } }, @@ -77,13 +87,12 @@ } }, - "call_log": { "unserialize": { - "description": "Recupere le contenu d'un fichier XML de journal d'appel.", - "permissions": ["admin"], + "description": "Recupere le contenu d'un fichier XML de journal d'appel s'il a été importé au préalable.", + "permissions": [], "parameters": { - "filecontent": { "description": "Contenu du fichier XML", "type": "text" } + "phone_number": { "description": "Numéro de téléphone de l'interrogé.", "type": "phone_number" } } } }, @@ -118,13 +127,66 @@ "generate": { - "description": "Creation d'un token de nom et de duree donnee", + "description": "Création d'un token de nom et de durée donnée", "permissions": ["admin"], "parameters": { - "name" : { "description": "Nom attribue au token", "type": "varchar(3,50)" }, - "duration": { "description": "Duree du token en nombre de jours", "type": "numeric" } + "name": { "description": "Nom attribué au token", "type": "varchar(3,50)" }, + "duration": { "description": "Durée du token en nombre de jours", "type": "id" } } } - } + }, + "subject": { + + "getById": { + "description": "Retourne les informations d'un sujet.", + "permissions": ["admin"], + "parameters": { + "id_subject": { "description": "UID du sujet recherche.", "type": "id" } + } + }, + + + "getAll": { + "description": "Retourne les informations de tous les sujets.", + "permissions": ["admin"], + "parameters": {} + }, + + + "create": { + "description": "Creation d'un nouveau sujet.", + "permissions": ["admin"], + "parameters": { + "username" : { "description": "Pseudo du sujet, 30 caracteres maximum.", "type": "varchar(0,30)" }, + "firstname" : { "description": "Prénom du sujet, 30 caracteres maximum.", "type": "varchar(0,30)" }, + "lastname" : { "description": "Nom du sujet, 30 caracteres maximum.", "type": "varchar(0,30)" }, + "id_facebook": { "description": "Id facebook du sujet (optionnel).", "type": "id", "optional": true }, + "number" : { "description": "Numéro de téléphone du sujet (optionnel).", "type": "number", "optional": true } + } + }, + + + "merge": { + "description": "Fusion de 2 sujets qui sont en fait la même personne.", + "permissions": ["admin"], + "parameters": { + "id_source": { "description": "UID de l'utilisateur doublon", "type": "id" }, + "id_target": { "description": "UID de l'utilisateur déjà existant", "type": "id" } + } + } + + }, + + "upload": { + + "call_log": { + "description": "Upload d'un journal d'appel au format .xml.", + "permissions": ["admin"], + "parameters": { + "file": { "description": "Fichier du journal d'appel", "type": "FILE" } + } + } + + } } diff --git a/config/repositories.json b/config/repositories.json index 1ea2122..4d0ea8f 100755 --- a/config/repositories.json +++ b/config/repositories.json @@ -9,6 +9,13 @@ "remove" ], + "subject": [ + "getById", + "getAll", + "create", + "merge" + ], + "Personnes": [ "getById" ], diff --git a/config/upload-auth.json b/config/upload-auth.json new file mode 100644 index 0000000..ed0c54d --- /dev/null +++ b/config/upload-auth.json @@ -0,0 +1,8 @@ +{ + "root": "/src/upload", + "directories": [ + "call_log", + "spss", + "pspp" + ] +} diff --git a/css/constants.css b/css/constants.css deleted file mode 100755 index 0feab84..0000000 --- a/css/constants.css +++ /dev/null @@ -1,2 +0,0 @@ - -/*# sourceMappingURL=constants.css.map */ diff --git a/css/constants.css.map b/css/constants.css.map deleted file mode 100755 index 07360f3..0000000 --- a/css/constants.css.map +++ /dev/null @@ -1,7 +0,0 @@ -{ -"version": 3, -"mappings": "", -"sources": [], -"names": [], -"file": "constants.css" -} \ No newline at end of file diff --git a/css/constants/compact.css b/css/constants/compact.css new file mode 100644 index 0000000..6221b97 --- /dev/null +++ b/css/constants/compact.css @@ -0,0 +1,9 @@ +/* [1] COULEURS +=========================================================*/ +/* (1) COULEURS DU THEME $DEFAULT */ +/* (2) COULEURS DE THEME $DARK */ +/* [2] DIMENSIONS +=========================================================*/ +/* (1) Layout de base */ + +/*# sourceMappingURL=data:application/json;base64,ewoJInZlcnNpb24iOiAzLAoJImZpbGUiOiAiY29tcGFjdC5jc3MiLAoJInNvdXJjZXMiOiBbCgkJIi4uL2NvbnN0YW50cy5zY3NzIgoJXSwKCSJzb3VyY2VzQ29udGVudCI6IFsKCQkiLyogWzFdIENPVUxFVVJTXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xuLyogKDEpIENPVUxFVVJTIERVIFRIRU1FICRERUZBVUxUICovXG4kdGhlbWUtYmc6ICAgICAgICAgI2U4ZThlODtcbiR0aGVtZS1iZy1wcmltYXJ5OiAjZmZmZmZmO1xuJHRoZW1lLWZnOiAgICAgICAgICM1MTUxNTE7XG4kdGhlbWUtZmctcHJpbWFyeTogIzM5OWNlZDtcblxuLyogKDIpIENPVUxFVVJTIERFIFRIRU1FICREQVJLICovXG4kZGFyay1iZzogICAgICAgICAjMzEzNTQxO1xuJGRhcmstYmctcHJpbWFyeTogIzI5MjgyZTtcbiRkYXJrLWZnOiAgICAgICAgICM5MzkzOTM7XG4kZGFyay1mZy1wcmltYXJ5OiAjZmZmZmZmO1xuXG5cbi8qIFsyXSBESU1FTlNJT05TXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xuLyogKDEpIExheW91dCBkZSBiYXNlICovXG4kbWVudS1zaWRlLXdpZHRoOiAxNWVtO1xuJGhlYWRlci1oZWlnaHQ6ICAgNGVtO1xuIgoJXSwKCSJtYXBwaW5ncyI6ICJBQUFBOzJEQUMyRDtBQUMzRCxvQ0FBb0M7QUFNcEMsaUNBQWlDO0FBT2pDOzJEQUMyRDtBQUMzRCx3QkFBd0IiLAoJIm5hbWVzIjogW10KfQ== */ \ No newline at end of file diff --git a/css/constants/compact.css.map b/css/constants/compact.css.map new file mode 100644 index 0000000..1ad1279 --- /dev/null +++ b/css/constants/compact.css.map @@ -0,0 +1,12 @@ +{ + "version": 3, + "file": "compact.css", + "sources": [ + "../constants.scss" + ], + "sourcesContent": [ + "/* [1] COULEURS\n=========================================================*/\n/* (1) COULEURS DU THEME $DEFAULT */\n$theme-bg: #e8e8e8;\n$theme-bg-primary: #ffffff;\n$theme-fg: #515151;\n$theme-fg-primary: #399ced;\n\n/* (2) COULEURS DE THEME $DARK */\n$dark-bg: #313541;\n$dark-bg-primary: #29282e;\n$dark-fg: #939393;\n$dark-fg-primary: #ffffff;\n\n\n/* [2] DIMENSIONS\n=========================================================*/\n/* (1) Layout de base */\n$menu-side-width: 15em;\n$header-height: 4em;\n" + ], + "mappings": "AAAA;2DAC2D;AAC3D,oCAAoC;AAMpC,iCAAiC;AAOjC;2DAC2D;AAC3D,wBAAwB", + "names": [] +} \ No newline at end of file diff --git a/css/constants/expanded.css b/css/constants/expanded.css new file mode 100644 index 0000000..2f96967 --- /dev/null +++ b/css/constants/expanded.css @@ -0,0 +1,9 @@ +/* [1] COULEURS +=========================================================*/ +/* (1) COULEURS DU THEME $DEFAULT */ +/* (2) COULEURS DE THEME $DARK */ +/* [2] DIMENSIONS +=========================================================*/ +/* (1) Layout de base */ + +/*# sourceMappingURL=data:application/json;base64,ewoJInZlcnNpb24iOiAzLAoJImZpbGUiOiAiZXhwYW5kZWQuY3NzIiwKCSJzb3VyY2VzIjogWwoJCSIuLi9jb25zdGFudHMuc2NzcyIKCV0sCgkic291cmNlc0NvbnRlbnQiOiBbCgkJIi8qIFsxXSBDT1VMRVVSU1xuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cbi8qICgxKSBDT1VMRVVSUyBEVSBUSEVNRSAkREVGQVVMVCAqL1xuJHRoZW1lLWJnOiAgICAgICAgICNlOGU4ZTg7XG4kdGhlbWUtYmctcHJpbWFyeTogI2ZmZmZmZjtcbiR0aGVtZS1mZzogICAgICAgICAjNTE1MTUxO1xuJHRoZW1lLWZnLXByaW1hcnk6ICMzOTljZWQ7XG5cbi8qICgyKSBDT1VMRVVSUyBERSBUSEVNRSAkREFSSyAqL1xuJGRhcmstYmc6ICAgICAgICAgIzMxMzU0MTtcbiRkYXJrLWJnLXByaW1hcnk6ICMyOTI4MmU7XG4kZGFyay1mZzogICAgICAgICAjOTM5MzkzO1xuJGRhcmstZmctcHJpbWFyeTogI2ZmZmZmZjtcblxuXG4vKiBbMl0gRElNRU5TSU9OU1xuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cbi8qICgxKSBMYXlvdXQgZGUgYmFzZSAqL1xuJG1lbnUtc2lkZS13aWR0aDogMTVlbTtcbiRoZWFkZXItaGVpZ2h0OiAgIDRlbTtcbiIKCV0sCgkibWFwcGluZ3MiOiAiQUFBQTsyREFDMkQ7QUFDM0Qsb0NBQW9DO0FBTXBDLGlDQUFpQztBQU9qQzsyREFDMkQ7QUFDM0Qsd0JBQXdCIiwKCSJuYW1lcyI6IFtdCn0= */ \ No newline at end of file diff --git a/css/constants/expanded.css.map b/css/constants/expanded.css.map new file mode 100644 index 0000000..a047dff --- /dev/null +++ b/css/constants/expanded.css.map @@ -0,0 +1,12 @@ +{ + "version": 3, + "file": "expanded.css", + "sources": [ + "../constants.scss" + ], + "sourcesContent": [ + "/* [1] COULEURS\n=========================================================*/\n/* (1) COULEURS DU THEME $DEFAULT */\n$theme-bg: #e8e8e8;\n$theme-bg-primary: #ffffff;\n$theme-fg: #515151;\n$theme-fg-primary: #399ced;\n\n/* (2) COULEURS DE THEME $DARK */\n$dark-bg: #313541;\n$dark-bg-primary: #29282e;\n$dark-fg: #939393;\n$dark-fg-primary: #ffffff;\n\n\n/* [2] DIMENSIONS\n=========================================================*/\n/* (1) Layout de base */\n$menu-side-width: 15em;\n$header-height: 4em;\n" + ], + "mappings": "AAAA;2DAC2D;AAC3D,oCAAoC;AAMpC,iCAAiC;AAOjC;2DAC2D;AAC3D,wBAAwB", + "names": [] +} \ No newline at end of file diff --git a/css/constants/min.css b/css/constants/min.css new file mode 100644 index 0000000..1d90cfb --- /dev/null +++ b/css/constants/min.css @@ -0,0 +1,2 @@ + +/*# sourceMappingURL=data:application/json;base64,ewoJInZlcnNpb24iOiAzLAoJImZpbGUiOiAibWluLmNzcyIsCgkic291cmNlcyI6IFsKCQkiLi4vY29uc3RhbnRzLnNjc3MiCgldLAoJInNvdXJjZXNDb250ZW50IjogWwoJCSIvKiBbMV0gQ09VTEVVUlNcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXG4vKiAoMSkgQ09VTEVVUlMgRFUgVEhFTUUgJERFRkFVTFQgKi9cbiR0aGVtZS1iZzogICAgICAgICAjZThlOGU4O1xuJHRoZW1lLWJnLXByaW1hcnk6ICNmZmZmZmY7XG4kdGhlbWUtZmc6ICAgICAgICAgIzUxNTE1MTtcbiR0aGVtZS1mZy1wcmltYXJ5OiAjMzk5Y2VkO1xuXG4vKiAoMikgQ09VTEVVUlMgREUgVEhFTUUgJERBUksgKi9cbiRkYXJrLWJnOiAgICAgICAgICMzMTM1NDE7XG4kZGFyay1iZy1wcmltYXJ5OiAjMjkyODJlO1xuJGRhcmstZmc6ICAgICAgICAgIzkzOTM5MztcbiRkYXJrLWZnLXByaW1hcnk6ICNmZmZmZmY7XG5cblxuLyogWzJdIERJTUVOU0lPTlNcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXG4vKiAoMSkgTGF5b3V0IGRlIGJhc2UgKi9cbiRtZW51LXNpZGUtd2lkdGg6IDE1ZW07XG4kaGVhZGVyLWhlaWdodDogICA0ZW07XG4iCgldLAoJIm1hcHBpbmdzIjogIiIsCgkibmFtZXMiOiBbXQp9 */ \ No newline at end of file diff --git a/css/constants/min.css.map b/css/constants/min.css.map new file mode 100644 index 0000000..03a0cd4 --- /dev/null +++ b/css/constants/min.css.map @@ -0,0 +1,12 @@ +{ + "version": 3, + "file": "min.css", + "sources": [ + "../constants.scss" + ], + "sourcesContent": [ + "/* [1] COULEURS\n=========================================================*/\n/* (1) COULEURS DU THEME $DEFAULT */\n$theme-bg: #e8e8e8;\n$theme-bg-primary: #ffffff;\n$theme-fg: #515151;\n$theme-fg-primary: #399ced;\n\n/* (2) COULEURS DE THEME $DARK */\n$dark-bg: #313541;\n$dark-bg-primary: #29282e;\n$dark-fg: #939393;\n$dark-fg-primary: #ffffff;\n\n\n/* [2] DIMENSIONS\n=========================================================*/\n/* (1) Layout de base */\n$menu-side-width: 15em;\n$header-height: 4em;\n" + ], + "mappings": "", + "names": [] +} \ No newline at end of file diff --git a/css/constants/nested.css b/css/constants/nested.css new file mode 100644 index 0000000..de05563 --- /dev/null +++ b/css/constants/nested.css @@ -0,0 +1,9 @@ +/* [1] COULEURS +=========================================================*/ +/* (1) COULEURS DU THEME $DEFAULT */ +/* (2) COULEURS DE THEME $DARK */ +/* [2] DIMENSIONS +=========================================================*/ +/* (1) Layout de base */ + +/*# sourceMappingURL=data:application/json;base64,ewoJInZlcnNpb24iOiAzLAoJImZpbGUiOiAibmVzdGVkLmNzcyIsCgkic291cmNlcyI6IFsKCQkiLi4vY29uc3RhbnRzLnNjc3MiCgldLAoJInNvdXJjZXNDb250ZW50IjogWwoJCSIvKiBbMV0gQ09VTEVVUlNcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXG4vKiAoMSkgQ09VTEVVUlMgRFUgVEhFTUUgJERFRkFVTFQgKi9cbiR0aGVtZS1iZzogICAgICAgICAjZThlOGU4O1xuJHRoZW1lLWJnLXByaW1hcnk6ICNmZmZmZmY7XG4kdGhlbWUtZmc6ICAgICAgICAgIzUxNTE1MTtcbiR0aGVtZS1mZy1wcmltYXJ5OiAjMzk5Y2VkO1xuXG4vKiAoMikgQ09VTEVVUlMgREUgVEhFTUUgJERBUksgKi9cbiRkYXJrLWJnOiAgICAgICAgICMzMTM1NDE7XG4kZGFyay1iZy1wcmltYXJ5OiAjMjkyODJlO1xuJGRhcmstZmc6ICAgICAgICAgIzkzOTM5MztcbiRkYXJrLWZnLXByaW1hcnk6ICNmZmZmZmY7XG5cblxuLyogWzJdIERJTUVOU0lPTlNcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXG4vKiAoMSkgTGF5b3V0IGRlIGJhc2UgKi9cbiRtZW51LXNpZGUtd2lkdGg6IDE1ZW07XG4kaGVhZGVyLWhlaWdodDogICA0ZW07XG4iCgldLAoJIm1hcHBpbmdzIjogIkFBQUE7MkRBQzJEO0FBQzNELG9DQUFvQztBQU1wQyxpQ0FBaUM7QUFPakM7MkRBQzJEO0FBQzNELHdCQUF3QiIsCgkibmFtZXMiOiBbXQp9 */ \ No newline at end of file diff --git a/css/constants/nested.css.map b/css/constants/nested.css.map new file mode 100644 index 0000000..d83e84a --- /dev/null +++ b/css/constants/nested.css.map @@ -0,0 +1,12 @@ +{ + "version": 3, + "file": "nested.css", + "sources": [ + "../constants.scss" + ], + "sourcesContent": [ + "/* [1] COULEURS\n=========================================================*/\n/* (1) COULEURS DU THEME $DEFAULT */\n$theme-bg: #e8e8e8;\n$theme-bg-primary: #ffffff;\n$theme-fg: #515151;\n$theme-fg-primary: #399ced;\n\n/* (2) COULEURS DE THEME $DARK */\n$dark-bg: #313541;\n$dark-bg-primary: #29282e;\n$dark-fg: #939393;\n$dark-fg-primary: #ffffff;\n\n\n/* [2] DIMENSIONS\n=========================================================*/\n/* (1) Layout de base */\n$menu-side-width: 15em;\n$header-height: 4em;\n" + ], + "mappings": "AAAA;2DAC2D;AAC3D,oCAAoC;AAMpC,iCAAiC;AAOjC;2DAC2D;AAC3D,wBAAwB", + "names": [] +} \ No newline at end of file diff --git a/css/container.css b/css/container.css deleted file mode 100755 index b1ed8cf..0000000 --- a/css/container.css +++ /dev/null @@ -1,2 +0,0 @@ -#WRAPPER>#CONTAINER>section{display:none;position:relative;flex-grow:1;padding:1em;border-radius:3px;background-color:#fff;color:#000;font-size:1em;border:1px solid #ddd}#WRAPPER>#CONTAINER>section.active{display:block}#WRAPPER>#CONTAINER>section.charts{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-around}#WRAPPER>#CONTAINER>section h6{color:#848484;font-size:1.2em;text-transform:uppercase;font-weight:300;letter-spacing:.2em;margin:0;padding:0}#WRAPPER>#CONTAINER>section h6:before{content:'- '}#WRAPPER>#CONTAINER>section h6:after{content:' -'}#WRAPPER>#CONTAINER>section h6.center{text-align:center}#WRAPPER>#CONTAINER>section input[type="radio"],#WRAPPER>#CONTAINER>section input[type="checkbox"]{display:none}#WRAPPER>#CONTAINER>section input[type="radio"]+label[for],#WRAPPER>#CONTAINER>section input[type="checkbox"]+label[for]{padding-left:.8em;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}#WRAPPER>#CONTAINER>section input[type="radio"]+label[for]:before,#WRAPPER>#CONTAINER>section input[type="checkbox"]+label[for]:before{content:'';display:inline-block;position:relative;top:.1em;left:-.8em;width:calc( 1em - 2*.15em );height:calc( 1em - 2*.15em );border-radius:50% / 50%;border:0.15em solid #399ced;background:#fff center center no-repeat;background-image:none;background-size:70% auto;transition:background .2s ease-in-out;cursor:pointer}#WRAPPER>#CONTAINER>section input[type="radio"]:checked+label[for]:before,#WRAPPER>#CONTAINER>section input[type="checkbox"]:checked+label[for]:before{background-color:#399ced;background-image:url("/f/svg/checked/st/container")}#WRAPPER>#CONTAINER>section input[type="checkbox"]+label[for]:before{border-radius:3px}#WRAPPER>#CONTAINER>section input[type="submit"],#WRAPPER>#CONTAINER>section input[type="button"]{margin:.5em 0;padding:.3em .5em;border-radius:3px;border:1px solid #515151;color:#515151;background-color:#fff;transition:background .1s ease-in-out, color .1s ease-in-out}#WRAPPER>#CONTAINER>section input[type="submit"]:hover,#WRAPPER>#CONTAINER>section input[type="button"]:hover{background-color:#515151;color:#fff}#WRAPPER>#CONTAINER>section input[type="submit"].primary,#WRAPPER>#CONTAINER>section input[type="button"].primary{border-color:#399ced;color:#399ced;background-color:#fff}#WRAPPER>#CONTAINER>section input[type="submit"].primary:hover,#WRAPPER>#CONTAINER>section input[type="button"].primary:hover{background-color:#399ced;color:#fff}#WRAPPER>#CONTAINER>section img{margin:1em;height:3em}#WRAPPER>#CONTAINER>section .flag{margin:0 .8em;padding:.2em .8em;border-radius:5px;border:1px solid #b5b5b5;color:#555;font-family:'Inconsolata'} -/*# sourceMappingURL=container.css.map */ diff --git a/css/container.css.map b/css/container.css.map deleted file mode 100755 index 5c77dec..0000000 --- a/css/container.css.map +++ /dev/null @@ -1,7 +0,0 @@ -{ -"version": 3, -"mappings": "AAMC,2BAAW,CACV,OAAO,CAAE,IAAI,CAcb,QAAQ,CAAE,QAAQ,CAClB,SAAS,CAAE,CAAC,CAEZ,OAAO,CAAE,GAAG,CAEZ,aAAa,CAAE,GAAG,CAElB,gBAAgB,CAAE,IAAI,CAEtB,KAAK,CAAE,IAAI,CACX,SAAS,CAAE,GAAG,CAEd,MAAM,CAAE,cAAc,CAvBtB,kCAAQ,CAAE,OAAO,CAAE,KAAK,CAGxB,kCAAQ,CACP,OAAO,CAAE,IAAI,CAEb,cAAc,CAAE,GAAG,CACnB,SAAS,CAAE,IAAI,CACf,eAAe,CAAE,YAAY,CAqB9B,8BAAI,CACH,KAAK,CAAE,OAAsB,CAC7B,SAAS,CAAE,KAAK,CAChB,cAAc,CAAE,SAAS,CACzB,WAAW,CAAE,GAAG,CAChB,cAAc,CAAE,IAAI,CAEpB,MAAM,CAAE,CAAC,CACT,OAAO,CAAE,CAAC,CAEV,qCAAQ,CAAC,OAAO,CAAC,IAAI,CACrB,oCAAO,CAAC,OAAO,CAAC,IAAI,CAGpB,qCAAQ,CACP,UAAU,CAAE,MAAM,CAUpB,kGACwB,CACvB,OAAO,CAAE,IAAI,CAId,wHACqC,CACpC,YAAY,CAAE,IAAI,CAGlB,qBAAqB,CAAE,IAAI,CAC3B,mBAAmB,CAAI,IAAI,CAC3B,kBAAkB,CAAK,IAAI,CAC3B,gBAAgB,CAAO,IAAI,CAC3B,eAAe,CAAQ,IAAI,CAC3B,WAAW,CAAY,IAAI,CAI3B,sIAAQ,CACP,OAAO,CAAE,EAAE,CACX,OAAO,CAAE,YAAY,CACrB,QAAQ,CAAE,QAAQ,CACjB,GAAG,CAAE,IAAI,CACT,IAAI,CAAE,KAAK,CACX,KAAK,CAAE,qBAAqB,CAC5B,MAAM,CAAE,qBAAqB,CAE9B,aAAa,CAAE,SAAS,CACxB,MAAM,CAAE,oBAA6B,CAErC,UAAU,CAAE,4BAA4B,CACxC,gBAAgB,CAAE,IAAI,CACtB,eAAe,CAAE,QAAQ,CAEzB,UAAU,CAAE,0BAA0B,CAEtC,MAAM,CAAE,OAAO,CAKjB,sJACoD,CACnD,gBAAgB,CCvGA,OAAO,CDwGvB,gBAAgB,CAAE,kCAAkC,CAKrD,oEAA4C,CAC3C,aAAa,CAAE,GAAG,CASnB,iGACsB,CACrB,MAAM,CAAE,MAAM,CACd,OAAO,CAAE,SAAS,CAElB,aAAa,CAAE,GAAG,CAClB,MAAM,CAAE,iBAAmB,CAE3B,KAAK,CChIW,OAAO,CDkIvB,gBAAgB,CAAE,IAAI,CAEtB,UAAU,CAAE,iDAAiD,CAG7D,6GAAO,CACN,gBAAgB,CCxID,OAAO,CDyItB,KAAK,CAAE,IAAI,CAKZ,iHAAS,CACR,YAAY,CC9IG,OAAO,CD+ItB,KAAK,CC/IU,OAAO,CDgJtB,gBAAgB,CAAE,IAAI,CAItB,6HAAO,CACN,gBAAgB,CCrJF,OAAO,CDsJrB,KAAK,CAAE,IAAI,CASd,+BAAK,CACJ,MAAM,CAAE,GAAG,CACX,MAAM,CAAE,GAAG,CAKZ,iCAAO,CACN,MAAM,CAAE,MAAM,CACd,OAAO,CAAE,SAAS,CAElB,aAAa,CAAE,GAAG,CAClB,MAAM,CAAE,iBAAiB,CAEzB,KAAK,CAAE,IAAI,CACX,WAAW,CAAE,aAAa", -"sources": ["container.scss","constants.scss"], -"names": [], -"file": "container.css" -} \ No newline at end of file diff --git a/css/container.scss b/css/container.scss index a588459..52bba74 100755 --- a/css/container.scss +++ b/css/container.scss @@ -1,4 +1,4 @@ -@import 'constants'; +@import 'constants.scss'; #WRAPPER > #CONTAINER{ @@ -7,9 +7,11 @@ & > section{ display: none; + margin: 1em; + // Gestion de l'activation des sous-parties &.active{ display: block; } - + // Gestion d'une section contenant des graphiques &.charts{ display: flex; @@ -30,7 +32,7 @@ color: #000; font-size: 1em; - + border: 1px solid #ddd; @@ -58,20 +60,20 @@ - - /* [3][4] Boutons radio + Checkboxes + + /* [3][4] Boutons radio + Checkboxes =========================================================*/ & input[type="radio"], & input[type="checkbox"]{ display: none; } - + // Label & input[type="radio"] + label[for], & input[type="checkbox"] + label[for]{ padding-left: .8em; - + // Pas de selection -webkit-touch-callout: none; /* iOS Safari */ -webkit-user-select: none; /* Chrome/Safari/Opera */ @@ -111,7 +113,7 @@ background-image: url('/f/svg/checked/st/container'); } - + // Specifique a checkbox & input[type="checkbox"] + label[for]:before{ border-radius: 3px; @@ -127,14 +129,14 @@ & input[type="button"]{ margin: .5em 0; padding: .3em .5em; - + border-radius: 3px; border: 1px solid $theme-fg; color: $theme-fg; background-color: #fff; - + transition: background .1s ease-in-out, color .1s ease-in-out; /* (1) Animation de @hover */ @@ -150,7 +152,7 @@ color: $theme-fg-primary; background-color: #fff; - + /* (3) Animation de @hover pour bouton primaire */ &:hover{ background-color: $theme-fg-primary; @@ -177,11 +179,11 @@ border-radius: 5px; border: 1px solid #b5b5b5; - color: #555; + color: #555; font-family: 'Inconsolata'; } } -} \ No newline at end of file +} diff --git a/css/container/compact.css b/css/container/compact.css new file mode 100644 index 0000000..aa02882 --- /dev/null +++ b/css/container/compact.css @@ -0,0 +1,46 @@ +/* [1] COULEURS +=========================================================*/ +/* (1) COULEURS DU THEME $DEFAULT */ +/* (2) COULEURS DE THEME $DARK */ +/* [2] DIMENSIONS +=========================================================*/ +/* (1) Layout de base */ +#WRAPPER > #CONTAINER { /* [1] Section (contenu) =========================================================*/ } + +#WRAPPER > #CONTAINER > section { display: none; margin: 1em; position: relative; flex-grow: 1; padding: 1em; border-radius: 3px; background-color: #fff; color: #000; font-size: 1em; border: 1px solid #ddd; /* [2] Titres =========================================================*/ /* [3][4] Boutons radio + Checkboxes =========================================================*/ /* [5] Boutons de submit =========================================================*/ /* [6] Images inline =========================================================*/ /* [7] Contour flags =========================================================*/ } + +#WRAPPER > #CONTAINER > section.active { display: block; } + +#WRAPPER > #CONTAINER > section.charts { display: flex; flex-direction: row; flex-wrap: wrap; justify-content: space-around; } + +#WRAPPER > #CONTAINER > section h6 { color: #848484; font-size: 1.2em; text-transform: uppercase; font-weight: 300; letter-spacing: .2em; margin: 0; padding: 0; } + +#WRAPPER > #CONTAINER > section h6:before { content: '- '; } + +#WRAPPER > #CONTAINER > section h6:after { content: ' -'; } + +#WRAPPER > #CONTAINER > section h6.center { text-align: center; } + +#WRAPPER > #CONTAINER > section input[type="radio"], #WRAPPER > #CONTAINER > section input[type="checkbox"] { display: none; } + +#WRAPPER > #CONTAINER > section input[type="radio"] + label[for], #WRAPPER > #CONTAINER > section input[type="checkbox"] + label[for] { padding-left: .8em; -webkit-touch-callout: none; /* iOS Safari */ -webkit-user-select: none; /* Chrome/Safari/Opera */ -khtml-user-select: none; /* Konqueror */ -moz-user-select: none; /* Firefox */ -ms-user-select: none; /* IE/Edge */ user-select: none; /* non-prefixed */ } + +#WRAPPER > #CONTAINER > section input[type="radio"] + label[for]:before, #WRAPPER > #CONTAINER > section input[type="checkbox"] + label[for]:before { content: ''; display: inline-block; position: relative; top: .1em; left: -.8em; width: calc( 1em - 2*.15em); height: calc( 1em - 2*.15em); border-radius: 50% / 50%; border: 0.15em solid #399ced; background: #fff center center no-repeat; background-image: none; background-size: 70% auto; transition: background .2s ease-in-out; cursor: pointer; } + +#WRAPPER > #CONTAINER > section input[type="radio"]:checked + label[for]:before, #WRAPPER > #CONTAINER > section input[type="checkbox"]:checked + label[for]:before { background-color: #399ced; background-image: url("/f/svg/checked/st/container"); } + +#WRAPPER > #CONTAINER > section input[type="checkbox"] + label[for]:before { border-radius: 3px; } + +#WRAPPER > #CONTAINER > section input[type="submit"], #WRAPPER > #CONTAINER > section input[type="button"] { margin: .5em 0; padding: .3em .5em; border-radius: 3px; border: 1px solid #515151; color: #515151; background-color: #fff; transition: background .1s ease-in-out, color .1s ease-in-out; /* (1) Animation de @hover */ /* (2) Bouton primaire */ } + +#WRAPPER > #CONTAINER > section input[type="submit"]:hover, #WRAPPER > #CONTAINER > section input[type="button"]:hover { background-color: #515151; color: #fff; } + +#WRAPPER > #CONTAINER > section input[type="submit"].primary, #WRAPPER > #CONTAINER > section input[type="button"].primary { border-color: #399ced; color: #399ced; background-color: #fff; /* (3) Animation de @hover pour bouton primaire */ } + +#WRAPPER > #CONTAINER > section input[type="submit"].primary:hover, #WRAPPER > #CONTAINER > section input[type="button"].primary:hover { background-color: #399ced; color: #fff; } + +#WRAPPER > #CONTAINER > section img { margin: 1em; height: 3em; } + +#WRAPPER > #CONTAINER > section .flag { margin: 0 .8em; padding: .2em .8em; border-radius: 5px; border: 1px solid #b5b5b5; color: #555; font-family: 'Inconsolata'; } + +/*# sourceMappingURL=data:application/json;base64,ewoJInZlcnNpb24iOiAzLAoJImZpbGUiOiAiY29tcGFjdC5jc3MiLAoJInNvdXJjZXMiOiBbCgkJIi4uL2NvbnRhaW5lci5zY3NzIiwKCQkiLi4vY29uc3RhbnRzLnNjc3MiCgldLAoJInNvdXJjZXNDb250ZW50IjogWwoJCSJAaW1wb3J0ICdjb25zdGFudHMuc2Nzcyc7XG5cbiNXUkFQUEVSID4gI0NPTlRBSU5FUntcblxuXHQvKiBbMV0gU2VjdGlvbiAoY29udGVudSlcblx0PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cblx0JiA+IHNlY3Rpb257XG5cdFx0ZGlzcGxheTogbm9uZTtcblxuXHRcdG1hcmdpbjogMWVtO1xuXG5cdFx0Ly8gR2VzdGlvbiBkZSBsJ2FjdGl2YXRpb24gZGVzIHNvdXMtcGFydGllc1xuXHRcdCYuYWN0aXZleyBkaXNwbGF5OiBibG9jazsgfVxuXG5cdFx0Ly8gR2VzdGlvbiBkJ3VuZSBzZWN0aW9uIGNvbnRlbmFudCBkZXMgZ3JhcGhpcXVlc1xuXHRcdCYuY2hhcnRze1xuXHRcdFx0ZGlzcGxheTogZmxleDtcblxuXHRcdFx0ZmxleC1kaXJlY3Rpb246IHJvdztcblx0XHRcdGZsZXgtd3JhcDogd3JhcDtcblx0XHRcdGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xuXHRcdH1cblxuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRmbGV4LWdyb3c6IDE7XG5cblx0XHRwYWRkaW5nOiAxZW07XG5cblx0XHRib3JkZXItcmFkaXVzOiAzcHg7XG5cblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuXG5cdFx0Y29sb3I6ICMwMDA7XG5cdFx0Zm9udC1zaXplOiAxZW07XG5cblx0XHRib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuXG5cblxuXHRcdC8qIFsyXSBUaXRyZXNcblx0XHQ9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xuXHRcdCYgaDZ7XG5cdFx0XHRjb2xvcjogbGlnaHRlbigkdGhlbWUtZmcsIDIwKTtcblx0XHRcdGZvbnQtc2l6ZTogMS4yZW07XG5cdFx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHRcdFx0Zm9udC13ZWlnaHQ6IDMwMDtcblx0XHRcdGxldHRlci1zcGFjaW5nOiAuMmVtO1xuXG5cdFx0XHRtYXJnaW46IDA7XG5cdFx0XHRwYWRkaW5nOiAwO1xuXG5cdFx0XHQmOmJlZm9yZXtjb250ZW50OictICc7fVxuXHRcdFx0JjphZnRlcntjb250ZW50OicgLSc7fVxuXG5cdFx0XHQvLyBxdWFuZCBjZW50csOpXG5cdFx0XHQmLmNlbnRlcntcblx0XHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdFx0fVxuXHRcdH1cblxuXG5cblxuXG5cdFx0LyogWzNdWzRdIEJvdXRvbnMgcmFkaW8gKyBDaGVja2JveGVzXG5cdFx0PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cblx0XHQmIGlucHV0W3R5cGU9XCJyYWRpb1wiXSxcblx0XHQmIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXXtcblx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0fVxuXG5cdFx0Ly8gTGFiZWxcblx0XHQmIGlucHV0W3R5cGU9XCJyYWRpb1wiXSArIGxhYmVsW2Zvcl0sXG5cdFx0JiBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0gKyBsYWJlbFtmb3Jde1xuXHRcdFx0cGFkZGluZy1sZWZ0OiAuOGVtO1xuXG5cdFx0XHQvLyBQYXMgZGUgc2VsZWN0aW9uXG5cdFx0XHQtd2Via2l0LXRvdWNoLWNhbGxvdXQ6IG5vbmU7IC8qIGlPUyBTYWZhcmkgICAgICAgICAgKi9cblx0XHRcdC13ZWJraXQtdXNlci1zZWxlY3Q6ICAgbm9uZTsgLyogQ2hyb21lL1NhZmFyaS9PcGVyYSAqL1xuXHRcdFx0LWtodG1sLXVzZXItc2VsZWN0OiAgICBub25lOyAvKiBLb25xdWVyb3IgICAgICAgICAgICovXG5cdFx0XHQtbW96LXVzZXItc2VsZWN0OiAgICAgIG5vbmU7IC8qIEZpcmVmb3ggICAgICAgICAgICAgKi9cblx0XHRcdC1tcy11c2VyLXNlbGVjdDogICAgICAgbm9uZTsgLyogSUUvRWRnZSAgICAgICAgICAgICAqL1xuXHRcdFx0dXNlci1zZWxlY3Q6ICAgICAgICAgICBub25lOyAvKiBub24tcHJlZml4ZWQgICAgICAgICovXG5cblxuXHRcdFx0Ly8gUmVjZXB0YWNsZVxuXHRcdFx0JjpiZWZvcmV7XG5cdFx0XHRcdGNvbnRlbnQ6ICcnO1xuXHRcdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdFx0XHR0b3A6IC4xZW07XG5cdFx0XHRcdFx0bGVmdDogLS44ZW07XG5cdFx0XHRcdFx0d2lkdGg6IGNhbGMoIDFlbSAtIDIqLjE1ZW0gKTtcblx0XHRcdFx0XHRoZWlnaHQ6IGNhbGMoIDFlbSAtIDIqLjE1ZW0gKTtcblxuXHRcdFx0XHRib3JkZXItcmFkaXVzOiA1MCUgLyA1MCU7XG5cdFx0XHRcdGJvcmRlcjogLjE1ZW0gc29saWQgJHRoZW1lLWZnLXByaW1hcnk7XG5cblx0XHRcdFx0YmFja2dyb3VuZDogI2ZmZiBjZW50ZXIgY2VudGVyIG5vLXJlcGVhdDtcblx0XHRcdFx0YmFja2dyb3VuZC1pbWFnZTogbm9uZTtcblx0XHRcdFx0YmFja2dyb3VuZC1zaXplOiA3MCUgYXV0bztcblxuXHRcdFx0XHR0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIC4ycyBlYXNlLWluLW91dDtcblxuXHRcdFx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ly8gUXVhbmQgYWN0aWZcblx0XHQmIGlucHV0W3R5cGU9XCJyYWRpb1wiXTpjaGVja2VkICsgbGFiZWxbZm9yXTpiZWZvcmUsXG5cdFx0JiBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl06Y2hlY2tlZCArIGxhYmVsW2Zvcl06YmVmb3Jle1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogJHRoZW1lLWZnLXByaW1hcnk7XG5cdFx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy9mL3N2Zy9jaGVja2VkL3N0L2NvbnRhaW5lcicpO1xuXHRcdH1cblxuXG5cdFx0Ly8gU3BlY2lmaXF1ZSBhIGNoZWNrYm94XG5cdFx0JiBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0gKyBsYWJlbFtmb3JdOmJlZm9yZXtcblx0XHRcdGJvcmRlci1yYWRpdXM6IDNweDtcblx0XHR9XG5cblxuXG5cblxuXHRcdC8qIFs1XSBCb3V0b25zIGRlIHN1Ym1pdFxuXHRcdD09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXG5cdFx0JiBpbnB1dFt0eXBlPVwic3VibWl0XCJdLFxuXHRcdCYgaW5wdXRbdHlwZT1cImJ1dHRvblwiXXtcblx0XHRcdG1hcmdpbjogLjVlbSAwO1xuXHRcdFx0cGFkZGluZzogLjNlbSAuNWVtO1xuXG5cdFx0XHRib3JkZXItcmFkaXVzOiAzcHg7XG5cdFx0XHRib3JkZXI6IDFweCBzb2xpZCAkdGhlbWUtZmc7XG5cblx0XHRcdGNvbG9yOiAkdGhlbWUtZmc7XG5cblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG5cblx0XHRcdHRyYW5zaXRpb246IGJhY2tncm91bmQgLjFzIGVhc2UtaW4tb3V0LCBjb2xvciAuMXMgZWFzZS1pbi1vdXQ7XG5cblx0XHRcdC8qICgxKSBBbmltYXRpb24gZGUgQGhvdmVyICovXG5cdFx0XHQmOmhvdmVye1xuXHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkdGhlbWUtZmc7XG5cdFx0XHRcdGNvbG9yOiAjZmZmO1xuXHRcdFx0fVxuXG5cblx0XHRcdC8qICgyKSBCb3V0b24gcHJpbWFpcmUgKi9cblx0XHRcdCYucHJpbWFyeXtcblx0XHRcdFx0Ym9yZGVyLWNvbG9yOiAkdGhlbWUtZmctcHJpbWFyeTtcblx0XHRcdFx0Y29sb3I6ICR0aGVtZS1mZy1wcmltYXJ5O1xuXHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuXG5cblx0XHRcdFx0LyogKDMpIEFuaW1hdGlvbiBkZSBAaG92ZXIgcG91ciBib3V0b24gcHJpbWFpcmUgKi9cblx0XHRcdFx0Jjpob3Zlcntcblx0XHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkdGhlbWUtZmctcHJpbWFyeTtcblx0XHRcdFx0XHRjb2xvcjogI2ZmZjtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cblx0XHR9XG5cblx0XHQvKiBbNl0gSW1hZ2VzIGlubGluZVxuXHRcdD09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXG5cdFx0JiBpbWd7XG5cdFx0XHRtYXJnaW46IDFlbTtcblx0XHRcdGhlaWdodDogM2VtO1xuXHRcdH1cblxuXHRcdC8qIFs3XSBDb250b3VyIGZsYWdzXG5cdFx0PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cblx0XHQmIC5mbGFne1xuXHRcdFx0bWFyZ2luOiAwIC44ZW07XG5cdFx0XHRwYWRkaW5nOiAuMmVtIC44ZW07XG5cblx0XHRcdGJvcmRlci1yYWRpdXM6IDVweDtcblx0XHRcdGJvcmRlcjogMXB4IHNvbGlkICNiNWI1YjU7XG5cblx0XHRcdGNvbG9yOiAjNTU1O1xuXHRcdFx0Zm9udC1mYW1pbHk6ICdJbmNvbnNvbGF0YSc7XG5cdFx0fVxuXG5cblx0fVxuXG59XG4iLAoJCSIvKiBbMV0gQ09VTEVVUlNcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXG4vKiAoMSkgQ09VTEVVUlMgRFUgVEhFTUUgJERFRkFVTFQgKi9cbiR0aGVtZS1iZzogICAgICAgICAjZThlOGU4O1xuJHRoZW1lLWJnLXByaW1hcnk6ICNmZmZmZmY7XG4kdGhlbWUtZmc6ICAgICAgICAgIzUxNTE1MTtcbiR0aGVtZS1mZy1wcmltYXJ5OiAjMzk5Y2VkO1xuXG4vKiAoMikgQ09VTEVVUlMgREUgVEhFTUUgJERBUksgKi9cbiRkYXJrLWJnOiAgICAgICAgICMzMTM1NDE7XG4kZGFyay1iZy1wcmltYXJ5OiAjMjkyODJlO1xuJGRhcmstZmc6ICAgICAgICAgIzkzOTM5MztcbiRkYXJrLWZnLXByaW1hcnk6ICNmZmZmZmY7XG5cblxuLyogWzJdIERJTUVOU0lPTlNcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXG4vKiAoMSkgTGF5b3V0IGRlIGJhc2UgKi9cbiRtZW51LXNpZGUtd2lkdGg6IDE1ZW07XG4kaGVhZGVyLWhlaWdodDogICA0ZW07XG4iCgldLAoJIm1hcHBpbmdzIjogIkFDQUE7MkRBQzJEO0FBQzNELG9DQUFvQztBQU1wQyxpQ0FBaUM7QUFPakM7MkRBQzJEO0FBQzNELHdCQUF3QjtBRGZ4QixRQUFRLEdBQUcsVUFBVSxDQUFBLEVBRXBCLG9GQUMyRCxFQXVMM0Q7O0FBMUxELFFBQVEsR0FBRyxVQUFVLEdBSWhCLE9BQU8sQ0FBQSxFQUNWLE9BQU8sRUFBRSxJQUFLLEVBRWQsTUFBTSxFQUFFLEdBQUksRUFjWixRQUFRLEVBQUUsUUFBUyxFQUNuQixTQUFTLEVBQUUsQ0FBRSxFQUViLE9BQU8sRUFBRSxHQUFJLEVBRWIsYUFBYSxFQUFFLEdBQUksRUFFbkIsZ0JBQWdCLEVBQUUsSUFBSyxFQUV2QixLQUFLLEVBQUUsSUFBSyxFQUNaLFNBQVMsRUFBRSxHQUFJLEVBRWYsTUFBTSxFQUFFLGNBQWUsRUFJdkIseUVBQzJELENBd0IzRCxnR0FDMkQsQ0E0RDNELG9GQUMyRCxDQXVDM0QsZ0ZBQzJELENBTTNELGdGQUMyRCxFQWEzRDs7QUF4TEYsUUFBUSxHQUFHLFVBQVUsR0FJaEIsT0FBTyxBQU1ULE9BQU8sQ0FBQSxFQUFFLE9BQU8sRUFBRSxLQUFNLEdBQUk7O0FBVi9CLFFBQVEsR0FBRyxVQUFVLEdBSWhCLE9BQU8sQUFTVCxPQUFPLENBQUEsRUFDUCxPQUFPLEVBQUUsSUFBSyxFQUVkLGNBQWMs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 */ \ No newline at end of file diff --git a/css/container/compact.css.map b/css/container/compact.css.map new file mode 100644 index 0000000..4b834cb --- /dev/null +++ b/css/container/compact.css.map @@ -0,0 +1,14 @@ +{ + "version": 3, + "file": "compact.css", + "sources": [ + "../container.scss", + "../constants.scss" + ], + "sourcesContent": [ + "@import 'constants.scss';\n\n#WRAPPER > #CONTAINER{\n\n\t/* [1] Section (contenu)\n\t=========================================================*/\n\t& > section{\n\t\tdisplay: none;\n\n\t\tmargin: 1em;\n\n\t\t// Gestion de l'activation des sous-parties\n\t\t&.active{ display: block; }\n\n\t\t// Gestion d'une section contenant des graphiques\n\t\t&.charts{\n\t\t\tdisplay: flex;\n\n\t\t\tflex-direction: row;\n\t\t\tflex-wrap: wrap;\n\t\t\tjustify-content: space-around;\n\t\t}\n\n\t\tposition: relative;\n\t\tflex-grow: 1;\n\n\t\tpadding: 1em;\n\n\t\tborder-radius: 3px;\n\n\t\tbackground-color: #fff;\n\n\t\tcolor: #000;\n\t\tfont-size: 1em;\n\n\t\tborder: 1px solid #ddd;\n\n\n\n\t\t/* [2] Titres\n\t\t=========================================================*/\n\t\t& h6{\n\t\t\tcolor: lighten($theme-fg, 20);\n\t\t\tfont-size: 1.2em;\n\t\t\ttext-transform: uppercase;\n\t\t\tfont-weight: 300;\n\t\t\tletter-spacing: .2em;\n\n\t\t\tmargin: 0;\n\t\t\tpadding: 0;\n\n\t\t\t&:before{content:'- ';}\n\t\t\t&:after{content:' -';}\n\n\t\t\t// quand centré\n\t\t\t&.center{\n\t\t\t\ttext-align: center;\n\t\t\t}\n\t\t}\n\n\n\n\n\n\t\t/* [3][4] Boutons radio + Checkboxes\n\t\t=========================================================*/\n\t\t& input[type=\"radio\"],\n\t\t& input[type=\"checkbox\"]{\n\t\t\tdisplay: none;\n\t\t}\n\n\t\t// Label\n\t\t& input[type=\"radio\"] + label[for],\n\t\t& input[type=\"checkbox\"] + label[for]{\n\t\t\tpadding-left: .8em;\n\n\t\t\t// Pas de selection\n\t\t\t-webkit-touch-callout: none; /* iOS Safari */\n\t\t\t-webkit-user-select: none; /* Chrome/Safari/Opera */\n\t\t\t-khtml-user-select: none; /* Konqueror */\n\t\t\t-moz-user-select: none; /* Firefox */\n\t\t\t-ms-user-select: none; /* IE/Edge */\n\t\t\tuser-select: none; /* non-prefixed */\n\n\n\t\t\t// Receptacle\n\t\t\t&:before{\n\t\t\t\tcontent: '';\n\t\t\t\tdisplay: inline-block;\n\t\t\t\tposition: relative;\n\t\t\t\t\ttop: .1em;\n\t\t\t\t\tleft: -.8em;\n\t\t\t\t\twidth: calc( 1em - 2*.15em );\n\t\t\t\t\theight: calc( 1em - 2*.15em );\n\n\t\t\t\tborder-radius: 50% / 50%;\n\t\t\t\tborder: .15em solid $theme-fg-primary;\n\n\t\t\t\tbackground: #fff center center no-repeat;\n\t\t\t\tbackground-image: none;\n\t\t\t\tbackground-size: 70% auto;\n\n\t\t\t\ttransition: background .2s ease-in-out;\n\n\t\t\t\tcursor: pointer;\n\t\t\t}\n\t\t}\n\n\t\t// Quand actif\n\t\t& input[type=\"radio\"]:checked + label[for]:before,\n\t\t& input[type=\"checkbox\"]:checked + label[for]:before{\n\t\t\tbackground-color: $theme-fg-primary;\n\t\t\tbackground-image: url('/f/svg/checked/st/container');\n\t\t}\n\n\n\t\t// Specifique a checkbox\n\t\t& input[type=\"checkbox\"] + label[for]:before{\n\t\t\tborder-radius: 3px;\n\t\t}\n\n\n\n\n\n\t\t/* [5] Boutons de submit\n\t\t=========================================================*/\n\t\t& input[type=\"submit\"],\n\t\t& input[type=\"button\"]{\n\t\t\tmargin: .5em 0;\n\t\t\tpadding: .3em .5em;\n\n\t\t\tborder-radius: 3px;\n\t\t\tborder: 1px solid $theme-fg;\n\n\t\t\tcolor: $theme-fg;\n\n\t\t\tbackground-color: #fff;\n\n\t\t\ttransition: background .1s ease-in-out, color .1s ease-in-out;\n\n\t\t\t/* (1) Animation de @hover */\n\t\t\t&:hover{\n\t\t\t\tbackground-color: $theme-fg;\n\t\t\t\tcolor: #fff;\n\t\t\t}\n\n\n\t\t\t/* (2) Bouton primaire */\n\t\t\t&.primary{\n\t\t\t\tborder-color: $theme-fg-primary;\n\t\t\t\tcolor: $theme-fg-primary;\n\t\t\t\tbackground-color: #fff;\n\n\n\t\t\t\t/* (3) Animation de @hover pour bouton primaire */\n\t\t\t\t&:hover{\n\t\t\t\t\tbackground-color: $theme-fg-primary;\n\t\t\t\t\tcolor: #fff;\n\t\t\t\t}\n\t\t\t}\n\n\n\t\t}\n\n\t\t/* [6] Images inline\n\t\t=========================================================*/\n\t\t& img{\n\t\t\tmargin: 1em;\n\t\t\theight: 3em;\n\t\t}\n\n\t\t/* [7] Contour flags\n\t\t=========================================================*/\n\t\t& .flag{\n\t\t\tmargin: 0 .8em;\n\t\t\tpadding: .2em .8em;\n\n\t\t\tborder-radius: 5px;\n\t\t\tborder: 1px solid #b5b5b5;\n\n\t\t\tcolor: #555;\n\t\t\tfont-family: 'Inconsolata';\n\t\t}\n\n\n\t}\n\n}\n", + "/* [1] COULEURS\n=========================================================*/\n/* (1) COULEURS DU THEME $DEFAULT */\n$theme-bg: #e8e8e8;\n$theme-bg-primary: #ffffff;\n$theme-fg: #515151;\n$theme-fg-primary: #399ced;\n\n/* (2) COULEURS DE THEME $DARK */\n$dark-bg: #313541;\n$dark-bg-primary: #29282e;\n$dark-fg: #939393;\n$dark-fg-primary: #ffffff;\n\n\n/* [2] DIMENSIONS\n=========================================================*/\n/* (1) Layout de base */\n$menu-side-width: 15em;\n$header-height: 4em;\n" + ], + "mappings": "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", + "names": [] +} \ No newline at end of file diff --git a/css/container/expanded.css b/css/container/expanded.css new file mode 100644 index 0000000..40e3641 --- /dev/null +++ b/css/container/expanded.css @@ -0,0 +1,166 @@ +/* [1] COULEURS +=========================================================*/ +/* (1) COULEURS DU THEME $DEFAULT */ +/* (2) COULEURS DE THEME $DARK */ +/* [2] DIMENSIONS +=========================================================*/ +/* (1) Layout de base */ +#WRAPPER > #CONTAINER { + /* [1] Section (contenu) + =========================================================*/ +} + +#WRAPPER > #CONTAINER > section { + display: none; + margin: 1em; + position: relative; + flex-grow: 1; + padding: 1em; + border-radius: 3px; + background-color: #fff; + color: #000; + font-size: 1em; + border: 1px solid #ddd; + /* [2] Titres + =========================================================*/ + /* [3][4] Boutons radio + Checkboxes + =========================================================*/ + /* [5] Boutons de submit + =========================================================*/ + /* [6] Images inline + =========================================================*/ + /* [7] Contour flags + =========================================================*/ +} + +#WRAPPER > #CONTAINER > section.active { + display: block; +} + +#WRAPPER > #CONTAINER > section.charts { + display: flex; + flex-direction: row; + flex-wrap: wrap; + justify-content: space-around; +} + +#WRAPPER > #CONTAINER > section h6 { + color: #848484; + font-size: 1.2em; + text-transform: uppercase; + font-weight: 300; + letter-spacing: .2em; + margin: 0; + padding: 0; +} + +#WRAPPER > #CONTAINER > section h6:before { + content: '- '; +} + +#WRAPPER > #CONTAINER > section h6:after { + content: ' -'; +} + +#WRAPPER > #CONTAINER > section h6.center { + text-align: center; +} + +#WRAPPER > #CONTAINER > section input[type="radio"], +#WRAPPER > #CONTAINER > section input[type="checkbox"] { + display: none; +} + +#WRAPPER > #CONTAINER > section input[type="radio"] + label[for], +#WRAPPER > #CONTAINER > section input[type="checkbox"] + label[for] { + padding-left: .8em; + -webkit-touch-callout: none; + /* iOS Safari */ + -webkit-user-select: none; + /* Chrome/Safari/Opera */ + -khtml-user-select: none; + /* Konqueror */ + -moz-user-select: none; + /* Firefox */ + -ms-user-select: none; + /* IE/Edge */ + user-select: none; + /* non-prefixed */ +} + +#WRAPPER > #CONTAINER > section input[type="radio"] + label[for]:before, +#WRAPPER > #CONTAINER > section input[type="checkbox"] + label[for]:before { + content: ''; + display: inline-block; + position: relative; + top: .1em; + left: -.8em; + width: calc( 1em - 2*.15em); + height: calc( 1em - 2*.15em); + border-radius: 50% / 50%; + border: 0.15em solid #399ced; + background: #fff center center no-repeat; + background-image: none; + background-size: 70% auto; + transition: background .2s ease-in-out; + cursor: pointer; +} + +#WRAPPER > #CONTAINER > section input[type="radio"]:checked + label[for]:before, +#WRAPPER > #CONTAINER > section input[type="checkbox"]:checked + label[for]:before { + background-color: #399ced; + background-image: url("/f/svg/checked/st/container"); +} + +#WRAPPER > #CONTAINER > section input[type="checkbox"] + label[for]:before { + border-radius: 3px; +} + +#WRAPPER > #CONTAINER > section input[type="submit"], +#WRAPPER > #CONTAINER > section input[type="button"] { + margin: .5em 0; + padding: .3em .5em; + border-radius: 3px; + border: 1px solid #515151; + color: #515151; + background-color: #fff; + transition: background .1s ease-in-out, color .1s ease-in-out; + /* (1) Animation de @hover */ + /* (2) Bouton primaire */ +} + +#WRAPPER > #CONTAINER > section input[type="submit"]:hover, +#WRAPPER > #CONTAINER > section input[type="button"]:hover { + background-color: #515151; + color: #fff; +} + +#WRAPPER > #CONTAINER > section input[type="submit"].primary, +#WRAPPER > #CONTAINER > section input[type="button"].primary { + border-color: #399ced; + color: #399ced; + background-color: #fff; + /* (3) Animation de @hover pour bouton primaire */ +} + +#WRAPPER > #CONTAINER > section input[type="submit"].primary:hover, +#WRAPPER > #CONTAINER > section input[type="button"].primary:hover { + background-color: #399ced; + color: #fff; +} + +#WRAPPER > #CONTAINER > section img { + margin: 1em; + height: 3em; +} + +#WRAPPER > #CONTAINER > section .flag { + margin: 0 .8em; + padding: .2em .8em; + border-radius: 5px; + border: 1px solid #b5b5b5; + color: #555; + font-family: 'Inconsolata'; +} + +/*# sourceMappingURL=data:application/json;base64,ewoJInZlcnNpb24iOiAzLAoJImZpbGUiOiAiZXhwYW5kZWQuY3NzIiwKCSJzb3VyY2VzIjogWwoJCSIuLi9jb250YWluZXIuc2NzcyIsCgkJIi4uL2NvbnN0YW50cy5zY3NzIgoJXSwKCSJzb3VyY2VzQ29udGVudCI6IFsKCQkiQGltcG9ydCAnY29uc3RhbnRzLnNjc3MnO1xuXG4jV1JBUFBFUiA+ICNDT05UQUlORVJ7XG5cblx0LyogWzFdIFNlY3Rpb24gKGNvbnRlbnUpXG5cdD09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXG5cdCYgPiBzZWN0aW9ue1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cblx0XHRtYXJnaW46IDFlbTtcblxuXHRcdC8vIEdlc3Rpb24gZGUgbCdhY3RpdmF0aW9uIGRlcyBzb3VzLXBhcnRpZXNcblx0XHQmLmFjdGl2ZXsgZGlzcGxheTogYmxvY2s7IH1cblxuXHRcdC8vIEdlc3Rpb24gZCd1bmUgc2VjdGlvbiBjb250ZW5hbnQgZGVzIGdyYXBoaXF1ZXNcblx0XHQmLmNoYXJ0c3tcblx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cblx0XHRcdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdFx0XHRmbGV4LXdyYXA6IHdyYXA7XG5cdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcblx0XHR9XG5cblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0ZmxleC1ncm93OiAxO1xuXG5cdFx0cGFkZGluZzogMWVtO1xuXG5cdFx0Ym9yZGVyLXJhZGl1czogM3B4O1xuXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcblxuXHRcdGNvbG9yOiAjMDAwO1xuXHRcdGZvbnQtc2l6ZTogMWVtO1xuXG5cdFx0Ym9yZGVyOiAxcHggc29saWQgI2RkZDtcblxuXG5cblx0XHQvKiBbMl0gVGl0cmVzXG5cdFx0PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cblx0XHQmIGg2e1xuXHRcdFx0Y29sb3I6IGxpZ2h0ZW4oJHRoZW1lLWZnLCAyMCk7XG5cdFx0XHRmb250LXNpemU6IDEuMmVtO1xuXHRcdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0XHRcdGZvbnQtd2VpZ2h0OiAzMDA7XG5cdFx0XHRsZXR0ZXItc3BhY2luZzogLjJlbTtcblxuXHRcdFx0bWFyZ2luOiAwO1xuXHRcdFx0cGFkZGluZzogMDtcblxuXHRcdFx0JjpiZWZvcmV7Y29udGVudDonLSAnO31cblx0XHRcdCY6YWZ0ZXJ7Y29udGVudDonIC0nO31cblxuXHRcdFx0Ly8gcXVhbmQgY2VudHLDqVxuXHRcdFx0Ji5jZW50ZXJ7XG5cdFx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRcdH1cblx0XHR9XG5cblxuXG5cblxuXHRcdC8qIFszXVs0XSBCb3V0b25zIHJhZGlvICsgQ2hlY2tib3hlc1xuXHRcdD09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXG5cdFx0JiBpbnB1dFt0eXBlPVwicmFkaW9cIl0sXG5cdFx0JiBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl17XG5cdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdH1cblxuXHRcdC8vIExhYmVsXG5cdFx0JiBpbnB1dFt0eXBlPVwicmFkaW9cIl0gKyBsYWJlbFtmb3JdLFxuXHRcdCYgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdICsgbGFiZWxbZm9yXXtcblx0XHRcdHBhZGRpbmctbGVmdDogLjhlbTtcblxuXHRcdFx0Ly8gUGFzIGRlIHNlbGVjdGlvblxuXHRcdFx0LXdlYmtpdC10b3VjaC1jYWxsb3V0OiBub25lOyAvKiBpT1MgU2FmYXJpICAgICAgICAgICovXG5cdFx0XHQtd2Via2l0LXVzZXItc2VsZWN0OiAgIG5vbmU7IC8qIENocm9tZS9TYWZhcmkvT3BlcmEgKi9cblx0XHRcdC1raHRtbC11c2VyLXNlbGVjdDogICAgbm9uZTsgLyogS29ucXVlcm9yICAgICAgICAgICAqL1xuXHRcdFx0LW1vei11c2VyLXNlbGVjdDogICAgICBub25lOyAvKiBGaXJlZm94ICAgICAgICAgICAgICovXG5cdFx0XHQtbXMtdXNlci1zZWxlY3Q6ICAgICAgIG5vbmU7IC8qIElFL0VkZ2UgICAgICAgICAgICAgKi9cblx0XHRcdHVzZXItc2VsZWN0OiAgICAgICAgICAgbm9uZTsgLyogbm9uLXByZWZpeGVkICAgICAgICAqL1xuXG5cblx0XHRcdC8vIFJlY2VwdGFjbGVcblx0XHRcdCY6YmVmb3Jle1xuXHRcdFx0XHRjb250ZW50OiAnJztcblx0XHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHRcdFx0dG9wOiAuMWVtO1xuXHRcdFx0XHRcdGxlZnQ6IC0uOGVtO1xuXHRcdFx0XHRcdHdpZHRoOiBjYWxjKCAxZW0gLSAyKi4xNWVtICk7XG5cdFx0XHRcdFx0aGVpZ2h0OiBjYWxjKCAxZW0gLSAyKi4xNWVtICk7XG5cblx0XHRcdFx0Ym9yZGVyLXJhZGl1czogNTAlIC8gNTAlO1xuXHRcdFx0XHRib3JkZXI6IC4xNWVtIHNvbGlkICR0aGVtZS1mZy1wcmltYXJ5O1xuXG5cdFx0XHRcdGJhY2tncm91bmQ6ICNmZmYgY2VudGVyIGNlbnRlciBuby1yZXBlYXQ7XG5cdFx0XHRcdGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG5cdFx0XHRcdGJhY2tncm91bmQtc2l6ZTogNzAlIGF1dG87XG5cblx0XHRcdFx0dHJhbnNpdGlvbjogYmFja2dyb3VuZCAuMnMgZWFzZS1pbi1vdXQ7XG5cblx0XHRcdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC8vIFF1YW5kIGFjdGlmXG5cdFx0JiBpbnB1dFt0eXBlPVwicmFkaW9cIl06Y2hlY2tlZCArIGxhYmVsW2Zvcl06YmVmb3JlLFxuXHRcdCYgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdOmNoZWNrZWQgKyBsYWJlbFtmb3JdOmJlZm9yZXtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICR0aGVtZS1mZy1wcmltYXJ5O1xuXHRcdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKCcvZi9zdmcvY2hlY2tlZC9zdC9jb250YWluZXInKTtcblx0XHR9XG5cblxuXHRcdC8vIFNwZWNpZmlxdWUgYSBjaGVja2JveFxuXHRcdCYgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdICsgbGFiZWxbZm9yXTpiZWZvcmV7XG5cdFx0XHRib3JkZXItcmFkaXVzOiAzcHg7XG5cdFx0fVxuXG5cblxuXG5cblx0XHQvKiBbNV0gQm91dG9ucyBkZSBzdWJtaXRcblx0XHQ9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xuXHRcdCYgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSxcblx0XHQmIGlucHV0W3R5cGU9XCJidXR0b25cIl17XG5cdFx0XHRtYXJnaW46IC41ZW0gMDtcblx0XHRcdHBhZGRpbmc6IC4zZW0gLjVlbTtcblxuXHRcdFx0Ym9yZGVyLXJhZGl1czogM3B4O1xuXHRcdFx0Ym9yZGVyOiAxcHggc29saWQgJHRoZW1lLWZnO1xuXG5cdFx0XHRjb2xvcjogJHRoZW1lLWZnO1xuXG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuXG5cdFx0XHR0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIC4xcyBlYXNlLWluLW91dCwgY29sb3IgLjFzIGVhc2UtaW4tb3V0O1xuXG5cdFx0XHQvKiAoMSkgQW5pbWF0aW9uIGRlIEBob3ZlciAqL1xuXHRcdFx0Jjpob3Zlcntcblx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogJHRoZW1lLWZnO1xuXHRcdFx0XHRjb2xvcjogI2ZmZjtcblx0XHRcdH1cblxuXG5cdFx0XHQvKiAoMikgQm91dG9uIHByaW1haXJlICovXG5cdFx0XHQmLnByaW1hcnl7XG5cdFx0XHRcdGJvcmRlci1jb2xvcjogJHRoZW1lLWZnLXByaW1hcnk7XG5cdFx0XHRcdGNvbG9yOiAkdGhlbWUtZmctcHJpbWFyeTtcblx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcblxuXG5cdFx0XHRcdC8qICgzKSBBbmltYXRpb24gZGUgQGhvdmVyIHBvdXIgYm91dG9uIHByaW1haXJlICovXG5cdFx0XHRcdCY6aG92ZXJ7XG5cdFx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogJHRoZW1lLWZnLXByaW1hcnk7XG5cdFx0XHRcdFx0Y29sb3I6ICNmZmY7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXG5cdFx0fVxuXG5cdFx0LyogWzZdIEltYWdlcyBpbmxpbmVcblx0XHQ9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xuXHRcdCYgaW1ne1xuXHRcdFx0bWFyZ2luOiAxZW07XG5cdFx0XHRoZWlnaHQ6IDNlbTtcblx0XHR9XG5cblx0XHQvKiBbN10gQ29udG91ciBmbGFnc1xuXHRcdD09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXG5cdFx0JiAuZmxhZ3tcblx0XHRcdG1hcmdpbjogMCAuOGVtO1xuXHRcdFx0cGFkZGluZzogLjJlbSAuOGVtO1xuXG5cdFx0XHRib3JkZXItcmFkaXVzOiA1cHg7XG5cdFx0XHRib3JkZXI6IDFweCBzb2xpZCAjYjViNWI1O1xuXG5cdFx0XHRjb2xvcjogIzU1NTtcblx0XHRcdGZvbnQtZmFtaWx5OiAnSW5jb25zb2xhdGEnO1xuXHRcdH1cblxuXG5cdH1cblxufVxuIiwKCQkiLyogWzFdIENPVUxFVVJTXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xuLyogKDEpIENPVUxFVVJTIERVIFRIRU1FICRERUZBVUxUICovXG4kdGhlbWUtYmc6ICAgICAgICAgI2U4ZThlODtcbiR0aGVtZS1iZy1wcmltYXJ5OiAjZmZmZmZmO1xuJHRoZW1lLWZnOiAgICAgICAgICM1MTUxNTE7XG4kdGhlbWUtZmctcHJpbWFyeTogIzM5OWNlZDtcblxuLyogKDIpIENPVUxFVVJTIERFIFRIRU1FICREQVJLICovXG4kZGFyay1iZzogICAgICAgICAjMzEzNTQxO1xuJGRhcmstYmctcHJpbWFyeTogIzI5MjgyZTtcbiRkYXJrLWZnOiAgICAgICAgICM5MzkzOTM7XG4kZGFyay1mZy1wcmltYXJ5OiAjZmZmZmZmO1xuXG5cbi8qIFsyXSBESU1FTlNJT05TXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xuLyogKDEpIExheW91dCBkZSBiYXNlICovXG4kbWVudS1zaWRlLXdpZHRoOiAxNWVtO1xuJGhlYWRlci1oZWlnaHQ6ICAgNGVtO1xuIgoJXSwKCSJtYXBwaW5ncyI6ICJBQ0FBOzJEQUMyRDtBQUMzRCxvQ0FBb0M7QUFNcEMsaUNBQWlDO0FBT2pDOzJEQUMyRDtBQUMzRCx3QkFBd0I7QURmeEIsUUFBUSxHQUFHLFVBQVUsQ0FBQTtFQUVwQjs0REFDMkQ7Q0F1TDNEOztBQTFMRCxRQUFRLEdBQUcsVUFBVSxHQUloQixPQUFPLENBQUE7RUFDVixPQUFPLEVBQUUsSUFBSztFQUVkLE1BQU0sRUFBRSxHQUFJO0VBY1osUUFBUSxFQUFFLFFBQVM7RUFDbkIsU0FBUyxFQUFFLENBQUU7RUFFYixPQUFPLEVBQUUsR0FBSTtFQUViLGFBQWEsRUFBRSxHQUFJO0VBRW5CLGdCQUFnQixFQUFFLElBQUs7RUFFdkIsS0FBSyxFQUFFLElBQUs7RUFDWixTQUFTLEVBQUUsR0FBSTtFQUVmLE1BQU0sRUFBRSxjQUFlO0VBSXZCOzZEQUMyRDtFQXdCM0Q7NkRBQzJEO0VBNEQzRDs2REFDMkQ7RUF1QzNEOzZEQUMyRDtFQU0zRDs2REFDMkQ7Q0FhM0Q7O0FBeExGLFFBQVEsR0FBRyxVQUFVLEdBSWhCLE9BQU8sQUFNVCxPQUFPLENBQUE7RUFBRSxPQUFPLEVBQUUsS0FBTTtDQUFJOztBQVYvQixRQUFRLEdBQUcsVUFBVSxHQUloQixPQUFPLEFBU1QsT0FBTyxDQUFBO0VBQ1AsT0FBTyxFQUFFLElBQUs7RUFFZCxjQUFj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 */ \ No newline at end of file diff --git a/css/container/expanded.css.map b/css/container/expanded.css.map new file mode 100644 index 0000000..ece63bc --- /dev/null +++ b/css/container/expanded.css.map @@ -0,0 +1,14 @@ +{ + "version": 3, + "file": "expanded.css", + "sources": [ + "../container.scss", + "../constants.scss" + ], + "sourcesContent": [ + "@import 'constants.scss';\n\n#WRAPPER > #CONTAINER{\n\n\t/* [1] Section (contenu)\n\t=========================================================*/\n\t& > section{\n\t\tdisplay: none;\n\n\t\tmargin: 1em;\n\n\t\t// Gestion de l'activation des sous-parties\n\t\t&.active{ display: block; }\n\n\t\t// Gestion d'une section contenant des graphiques\n\t\t&.charts{\n\t\t\tdisplay: flex;\n\n\t\t\tflex-direction: row;\n\t\t\tflex-wrap: wrap;\n\t\t\tjustify-content: space-around;\n\t\t}\n\n\t\tposition: relative;\n\t\tflex-grow: 1;\n\n\t\tpadding: 1em;\n\n\t\tborder-radius: 3px;\n\n\t\tbackground-color: #fff;\n\n\t\tcolor: #000;\n\t\tfont-size: 1em;\n\n\t\tborder: 1px solid #ddd;\n\n\n\n\t\t/* [2] Titres\n\t\t=========================================================*/\n\t\t& h6{\n\t\t\tcolor: lighten($theme-fg, 20);\n\t\t\tfont-size: 1.2em;\n\t\t\ttext-transform: uppercase;\n\t\t\tfont-weight: 300;\n\t\t\tletter-spacing: .2em;\n\n\t\t\tmargin: 0;\n\t\t\tpadding: 0;\n\n\t\t\t&:before{content:'- ';}\n\t\t\t&:after{content:' -';}\n\n\t\t\t// quand centré\n\t\t\t&.center{\n\t\t\t\ttext-align: center;\n\t\t\t}\n\t\t}\n\n\n\n\n\n\t\t/* [3][4] Boutons radio + Checkboxes\n\t\t=========================================================*/\n\t\t& input[type=\"radio\"],\n\t\t& input[type=\"checkbox\"]{\n\t\t\tdisplay: none;\n\t\t}\n\n\t\t// Label\n\t\t& input[type=\"radio\"] + label[for],\n\t\t& input[type=\"checkbox\"] + label[for]{\n\t\t\tpadding-left: .8em;\n\n\t\t\t// Pas de selection\n\t\t\t-webkit-touch-callout: none; /* iOS Safari */\n\t\t\t-webkit-user-select: none; /* Chrome/Safari/Opera */\n\t\t\t-khtml-user-select: none; /* Konqueror */\n\t\t\t-moz-user-select: none; /* Firefox */\n\t\t\t-ms-user-select: none; /* IE/Edge */\n\t\t\tuser-select: none; /* non-prefixed */\n\n\n\t\t\t// Receptacle\n\t\t\t&:before{\n\t\t\t\tcontent: '';\n\t\t\t\tdisplay: inline-block;\n\t\t\t\tposition: relative;\n\t\t\t\t\ttop: .1em;\n\t\t\t\t\tleft: -.8em;\n\t\t\t\t\twidth: calc( 1em - 2*.15em );\n\t\t\t\t\theight: calc( 1em - 2*.15em );\n\n\t\t\t\tborder-radius: 50% / 50%;\n\t\t\t\tborder: .15em solid $theme-fg-primary;\n\n\t\t\t\tbackground: #fff center center no-repeat;\n\t\t\t\tbackground-image: none;\n\t\t\t\tbackground-size: 70% auto;\n\n\t\t\t\ttransition: background .2s ease-in-out;\n\n\t\t\t\tcursor: pointer;\n\t\t\t}\n\t\t}\n\n\t\t// Quand actif\n\t\t& input[type=\"radio\"]:checked + label[for]:before,\n\t\t& input[type=\"checkbox\"]:checked + label[for]:before{\n\t\t\tbackground-color: $theme-fg-primary;\n\t\t\tbackground-image: url('/f/svg/checked/st/container');\n\t\t}\n\n\n\t\t// Specifique a checkbox\n\t\t& input[type=\"checkbox\"] + label[for]:before{\n\t\t\tborder-radius: 3px;\n\t\t}\n\n\n\n\n\n\t\t/* [5] Boutons de submit\n\t\t=========================================================*/\n\t\t& input[type=\"submit\"],\n\t\t& input[type=\"button\"]{\n\t\t\tmargin: .5em 0;\n\t\t\tpadding: .3em .5em;\n\n\t\t\tborder-radius: 3px;\n\t\t\tborder: 1px solid $theme-fg;\n\n\t\t\tcolor: $theme-fg;\n\n\t\t\tbackground-color: #fff;\n\n\t\t\ttransition: background .1s ease-in-out, color .1s ease-in-out;\n\n\t\t\t/* (1) Animation de @hover */\n\t\t\t&:hover{\n\t\t\t\tbackground-color: $theme-fg;\n\t\t\t\tcolor: #fff;\n\t\t\t}\n\n\n\t\t\t/* (2) Bouton primaire */\n\t\t\t&.primary{\n\t\t\t\tborder-color: $theme-fg-primary;\n\t\t\t\tcolor: $theme-fg-primary;\n\t\t\t\tbackground-color: #fff;\n\n\n\t\t\t\t/* (3) Animation de @hover pour bouton primaire */\n\t\t\t\t&:hover{\n\t\t\t\t\tbackground-color: $theme-fg-primary;\n\t\t\t\t\tcolor: #fff;\n\t\t\t\t}\n\t\t\t}\n\n\n\t\t}\n\n\t\t/* [6] Images inline\n\t\t=========================================================*/\n\t\t& img{\n\t\t\tmargin: 1em;\n\t\t\theight: 3em;\n\t\t}\n\n\t\t/* [7] Contour flags\n\t\t=========================================================*/\n\t\t& .flag{\n\t\t\tmargin: 0 .8em;\n\t\t\tpadding: .2em .8em;\n\n\t\t\tborder-radius: 5px;\n\t\t\tborder: 1px solid #b5b5b5;\n\n\t\t\tcolor: #555;\n\t\t\tfont-family: 'Inconsolata';\n\t\t}\n\n\n\t}\n\n}\n", + "/* [1] COULEURS\n=========================================================*/\n/* (1) COULEURS DU THEME $DEFAULT */\n$theme-bg: #e8e8e8;\n$theme-bg-primary: #ffffff;\n$theme-fg: #515151;\n$theme-fg-primary: #399ced;\n\n/* (2) COULEURS DE THEME $DARK */\n$dark-bg: #313541;\n$dark-bg-primary: #29282e;\n$dark-fg: #939393;\n$dark-fg-primary: #ffffff;\n\n\n/* [2] DIMENSIONS\n=========================================================*/\n/* (1) Layout de base */\n$menu-side-width: 15em;\n$header-height: 4em;\n" + ], + "mappings": "ACAA;2DAC2D;AAC3D,oCAAoC;AAMpC,iCAAiC;AAOjC;2DAC2D;AAC3D,wBAAwB;ADfxB,QAAQ,GAAG,UAAU,CAAA;EAEpB;4DAC2D;CAuL3D;;AA1LD,QAAQ,GAAG,UAAU,GAIhB,OAAO,CAAA;EACV,OAAO,EAAE,IAAK;EAEd,MAAM,EAAE,GAAI;EAcZ,QAAQ,EAAE,QAAS;EACnB,SAAS,EAAE,CAAE;EAEb,OAAO,EAAE,GAAI;EAEb,aAAa,EAAE,GAAI;EAEnB,gBAAgB,EAAE,IAAK;EAEvB,KAAK,EAAE,IAAK;EACZ,SAAS,EAAE,GAAI;EAEf,MAAM,EAAE,cAAe;EAIvB;6DAC2D;EAwB3D;6DAC2D;EA4D3D;6DAC2D;EAuC3D;6DAC2D;EAM3D;6DAC2D;CAa3D;;AAxLF,QAAQ,GAAG,UAAU,GAIhB,OAAO,AAMT,OAAO,CAAA;EAAE,OAAO,EAAE,KAAM;CAAI;;AAV/B,QAAQ,GAAG,UAAU,GAIhB,OAAO,AAST,OAAO,CAAA;EACP,OAAO,EAAE,IAAK;EAEd,cAAc,EAAE,GAAI;EACpB,SAAS,EAAE,IAAK;EAChB,eAAe,EAAE,YAAa;CAC9B;;AAnBH,QAAQ,GAAG,UAAU,GAIhB,OAAO,CAmCR,EAAE,CAAA;EACH,KAAK,EAAE,OAAO;EACd,SAAS,EAAE,KAAM;EACjB,cAAc,EAAE,SAAU;EAC1B,WAAW,EAAE,GAAI;EACjB,cAAc,EAAE,IAAK;EAErB,MAAM,EAAE,CAAE;EACV,OAAO,EAAE,CAAE;CASX;;AAxDH,QAAQ,GAAG,UAAU,GAIhB,OAAO,CAmCR,EAAE,AAUF,OAAO,CAAA;EAAC,OAAO,EAAC,IAAK;CAAG;;AAjD5B,QAAQ,GAAG,UAAU,GAIhB,OAAO,CAmCR,EAAE,AAWF,MAAM,CAAA;EAAC,OAAO,EAAC,IAAK;CAAG;;AAlD3B,QAAQ,GAAG,UAAU,GAIhB,OAAO,CAmCR,EAAE,AAcF,OAAO,CAAA;EACP,UAAU,EAAE,MAAO;CACnB;;AAvDJ,QAAQ,GAAG,UAAU,GAIhB,OAAO,CA4DR,KAAK,CAAA,AAAA,IAAC,CAAK,OAAO,AAAZ;AAhEV,QAAQ,GAAG,UAAU,GAIhB,OAAO,CA6DR,KAAK,CAAA,AAAA,IAAC,CAAK,UAAU,AAAf,EAAgB;EACvB,OAAO,EAAE,IAAK;CACd;;AAnEH,QAAQ,GAAG,UAAU,GAIhB,OAAO,CAkER,KAAK,CAAA,AAAA,IAAC,CAAK,OAAO,AAAZ,IAAgB,KAAK,CAAA,AAAA,GAAC,AAAA;AAtEhC,QAAQ,GAAG,UAAU,GAIhB,OAAO,CAmER,KAAK,CAAA,AAAA,IAAC,CAAK,UAAU,AAAf,IAAmB,KAAK,CAAA,AAAA,GAAC,AAAA,EAAI;EACpC,YAAY,EAAE,IAAK;EAGnB,qBAAqB,EAAE,IAAK;EAAE,yBAAyB;EACvD,mBAAmB,EAAI,IAAK;EAAE,yBAAyB;EACvD,kBAAkB,EAAK,IAAK;EAAE,yBAAyB;EACvD,gBAAgB,EAAO,IAAK;EAAE,yBAAyB;EACvD,eAAe,EAAQ,IAAK;EAAE,yBAAyB;EACvD,WAAW,EAAY,IAAK;EAAE,yBAAyB;CAwBvD;;AAxGH,QAAQ,GAAG,UAAU,GAIhB,OAAO,CAkER,KAAK,CAAA,AAAA,IAAC,CAAK,OAAO,AAAZ,IAAgB,KAAK,CAAA,AAAA,GAAC,AAAA,CAc5B,OAAO;AApFX,QAAQ,GAAG,UAAU,GAIhB,OAAO,CAmER,KAAK,CAAA,AAAA,IAAC,CAAK,UAAU,AAAf,IAAmB,KAAK,CAAA,AAAA,GAAC,AAAA,CAa/B,OAAO,CAAA;EACP,OAAO,EAAE,EAAG;EACZ,OAAO,EAAE,YAAa;EACtB,QAAQ,EAAE,QAAS;EAClB,GAAG,EAAE,IAAK;EACV,IAAI,EAAE,KAAM;EACZ,KAAK,EAAE,oBAAI;EACX,MAAM,EAAE,oBAAI;EAEb,aAAa,EAAE,SAAU;EACzB,MAAM,EAAE,MAAK,CAAC,KAAK,CC1FJ,OAAO;ED4FtB,UAAU,EAAE,4BAA6B;EACzC,gBAAgB,EAAE,IAAK;EACvB,eAAe,EAAE,QAAS;EAE1B,UAAU,EAAE,0BAA2B;EAEvC,MAAM,EAAE,OAAQ;CAChB;;AAvGJ,QAAQ,GAAG,UAAU,GAIhB,OAAO,CAuGR,KAAK,CAAA,AAAA,IAAC,CAAK,OAAO,AAAZ,CAAa,QAAQ,GAAG,KAAK,CAAA,AAAA,GAAC,AAAA,CAAI,OAAO;AA3GnD,QAAQ,GAAG,UAAU,GAIhB,OAAO,CAwGR,KAAK,CAAA,AAAA,IAAC,CAAK,UAAU,AAAf,CAAgB,QAAQ,GAAG,KAAK,CAAA,AAAA,GAAC,AAAA,CAAI,OAAO,CAAA;EACnD,gBAAgB,ECzGA,OAAO;ED0GvB,gBAAgB,EAAE,kCAAG;CACrB;;AA/GH,QAAQ,GAAG,UAAU,GAIhB,OAAO,CA+GR,KAAK,CAAA,AAAA,IAAC,CAAK,UAAU,AAAf,IAAmB,KAAK,CAAA,AAAA,GAAC,AAAA,CAAI,OAAO,CAAA;EAC3C,aAAa,EAAE,GAAI;CACnB;;AArHH,QAAQ,GAAG,UAAU,GAIhB,OAAO,CAyHR,KAAK,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb;AA7HV,QAAQ,GAAG,UAAU,GAIhB,OAAO,CA0HR,KAAK,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,EAAc;EACrB,MAAM,EAAE,MAAO;EACf,OAAO,EAAE,SAAU;EAEnB,aAAa,EAAE,GAAI;EACnB,MAAM,EAAE,GAAG,CAAC,KAAK,CChID,OAAO;EDkIvB,KAAK,EClIW,OAAO;EDoIvB,gBAAgB,EAAE,IAAK;EAEvB,UAAU,EAAE,iDAAkD;EAE9D,6BAA6B;EAO7B,yBAAyB;CAezB;;AAjKH,QAAQ,GAAG,UAAU,GAIhB,OAAO,CAyHR,KAAK,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CAeN,MAAM;AA5IV,QAAQ,GAAG,UAAU,GAIhB,OAAO,CA0HR,KAAK,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CAcN,MAAM,CAAA;EACN,gBAAgB,EC1ID,OAAO;ED2ItB,KAAK,EAAE,IAAK;CACZ;;AA/IJ,QAAQ,GAAG,UAAU,GAIhB,OAAO,CAyHR,KAAK,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CAsBN,QAAQ;AAnJZ,QAAQ,GAAG,UAAU,GAIhB,OAAO,CA0HR,KAAK,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CAqBN,QAAQ,CAAA;EACR,YAAY,EChJG,OAAO;EDiJtB,KAAK,ECjJU,OAAO;EDkJtB,gBAAgB,EAAE,IAAK;EAGvB,kDAAkD;CAKlD;;AA9JJ,QAAQ,GAAG,UAAU,GAIhB,OAAO,CAyHR,KAAK,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CAsBN,QAAQ,AAOP,MAAM;AA1JX,QAAQ,GAAG,UAAU,GAIhB,OAAO,CA0HR,KAAK,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CAqBN,QAAQ,AAOP,MAAM,CAAA;EACN,gBAAgB,ECvJF,OAAO;EDwJrB,KAAK,EAAE,IAAK;CACZ;;AA7JL,QAAQ,GAAG,UAAU,GAIhB,OAAO,CAiKR,GAAG,CAAA;EACJ,MAAM,EAAE,GAAI;EACZ,MAAM,EAAE,GAAI;CACZ;;AAxKH,QAAQ,GAAG,UAAU,GAIhB,OAAO,CAwKR,KAAK,CAAA;EACN,MAAM,EAAE,MAAO;EACf,OAAO,EAAE,SAAU;EAEnB,aAAa,EAAE,GAAI;EACnB,MAAM,EAAE,iBAAkB;EAE1B,KAAK,EAAE,IAAK;EACZ,WAAW,EAAE,aAAc;CAC3B", + "names": [] +} \ No newline at end of file diff --git a/css/container/min.css b/css/container/min.css new file mode 100644 index 0000000..2ab6a2e --- /dev/null +++ b/css/container/min.css @@ -0,0 +1,3 @@ +#WRAPPER>#CONTAINER>section{display:none;margin:1em;position:relative;flex-grow:1;padding:1em;border-radius:3px;background-color:#fff;color:#000;font-size:1em;border:1px solid #ddd}#WRAPPER>#CONTAINER>section.active{display:block}#WRAPPER>#CONTAINER>section.charts{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-around}#WRAPPER>#CONTAINER>section h6{color:#848484;font-size:1.2em;text-transform:uppercase;font-weight:300;letter-spacing:.2em;margin:0;padding:0}#WRAPPER>#CONTAINER>section h6:before{content:'- '}#WRAPPER>#CONTAINER>section h6:after{content:' -'}#WRAPPER>#CONTAINER>section h6.center{text-align:center}#WRAPPER>#CONTAINER>section input[type="radio"],#WRAPPER>#CONTAINER>section input[type="checkbox"]{display:none}#WRAPPER>#CONTAINER>section input[type="radio"]+label[for],#WRAPPER>#CONTAINER>section input[type="checkbox"]+label[for]{padding-left:.8em;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}#WRAPPER>#CONTAINER>section input[type="radio"]+label[for]:before,#WRAPPER>#CONTAINER>section input[type="checkbox"]+label[for]:before{content:'';display:inline-block;position:relative;top:.1em;left:-.8em;width:calc( 1em - 2*.15em);height:calc( 1em - 2*.15em);border-radius:50% / 50%;border:0.15em solid #399ced;background:#fff center center no-repeat;background-image:none;background-size:70% auto;transition:background .2s ease-in-out;cursor:pointer}#WRAPPER>#CONTAINER>section input[type="radio"]:checked+label[for]:before,#WRAPPER>#CONTAINER>section input[type="checkbox"]:checked+label[for]:before{background-color:#399ced;background-image:url("/f/svg/checked/st/container")}#WRAPPER>#CONTAINER>section input[type="checkbox"]+label[for]:before{border-radius:3px}#WRAPPER>#CONTAINER>section input[type="submit"],#WRAPPER>#CONTAINER>section input[type="button"]{margin:.5em 0;padding:.3em .5em;border-radius:3px;border:1px solid #515151;color:#515151;background-color:#fff;transition:background .1s ease-in-out, color .1s ease-in-out}#WRAPPER>#CONTAINER>section input[type="submit"]:hover,#WRAPPER>#CONTAINER>section input[type="button"]:hover{background-color:#515151;color:#fff}#WRAPPER>#CONTAINER>section input[type="submit"].primary,#WRAPPER>#CONTAINER>section input[type="button"].primary{border-color:#399ced;color:#399ced;background-color:#fff}#WRAPPER>#CONTAINER>section input[type="submit"].primary:hover,#WRAPPER>#CONTAINER>section input[type="button"].primary:hover{background-color:#399ced;color:#fff}#WRAPPER>#CONTAINER>section img{margin:1em;height:3em}#WRAPPER>#CONTAINER>section .flag{margin:0 .8em;padding:.2em .8em;border-radius:5px;border:1px solid #b5b5b5;color:#555;font-family:'Inconsolata'} + +/*# sourceMappingURL=data:application/json;base64,ewoJInZlcnNpb24iOiAzLAoJImZpbGUiOiAibWluLmNzcyIsCgkic291cmNlcyI6IFsKCQkiLi4vY29udGFpbmVyLnNjc3MiLAoJCSIuLi9jb25zdGFudHMuc2NzcyIKCV0sCgkic291cmNlc0NvbnRlbnQiOiBbCgkJIkBpbXBvcnQgJ2NvbnN0YW50cy5zY3NzJztcblxuI1dSQVBQRVIgPiAjQ09OVEFJTkVSe1xuXG5cdC8qIFsxXSBTZWN0aW9uIChjb250ZW51KVxuXHQ9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xuXHQmID4gc2VjdGlvbntcblx0XHRkaXNwbGF5OiBub25lO1xuXG5cdFx0bWFyZ2luOiAxZW07XG5cblx0XHQvLyBHZXN0aW9uIGRlIGwnYWN0aXZhdGlvbiBkZXMgc291cy1wYXJ0aWVzXG5cdFx0Ji5hY3RpdmV7IGRpc3BsYXk6IGJsb2NrOyB9XG5cblx0XHQvLyBHZXN0aW9uIGQndW5lIHNlY3Rpb24gY29udGVuYW50IGRlcyBncmFwaGlxdWVzXG5cdFx0Ji5jaGFydHN7XG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xuXG5cdFx0XHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHRcdFx0ZmxleC13cmFwOiB3cmFwO1xuXHRcdFx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XG5cdFx0fVxuXG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdGZsZXgtZ3JvdzogMTtcblxuXHRcdHBhZGRpbmc6IDFlbTtcblxuXHRcdGJvcmRlci1yYWRpdXM6IDNweDtcblxuXHRcdGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG5cblx0XHRjb2xvcjogIzAwMDtcblx0XHRmb250LXNpemU6IDFlbTtcblxuXHRcdGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XG5cblxuXG5cdFx0LyogWzJdIFRpdHJlc1xuXHRcdD09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXG5cdFx0JiBoNntcblx0XHRcdGNvbG9yOiBsaWdodGVuKCR0aGVtZS1mZywgMjApO1xuXHRcdFx0Zm9udC1zaXplOiAxLjJlbTtcblx0XHRcdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdFx0XHRmb250LXdlaWdodDogMzAwO1xuXHRcdFx0bGV0dGVyLXNwYWNpbmc6IC4yZW07XG5cblx0XHRcdG1hcmdpbjogMDtcblx0XHRcdHBhZGRpbmc6IDA7XG5cblx0XHRcdCY6YmVmb3Jle2NvbnRlbnQ6Jy0gJzt9XG5cdFx0XHQmOmFmdGVye2NvbnRlbnQ6JyAtJzt9XG5cblx0XHRcdC8vIHF1YW5kIGNlbnRyw6lcblx0XHRcdCYuY2VudGVye1xuXHRcdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0XHR9XG5cdFx0fVxuXG5cblxuXG5cblx0XHQvKiBbM11bNF0gQm91dG9ucyByYWRpbyArIENoZWNrYm94ZXNcblx0XHQ9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xuXHRcdCYgaW5wdXRbdHlwZT1cInJhZGlvXCJdLFxuXHRcdCYgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJde1xuXHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHR9XG5cblx0XHQvLyBMYWJlbFxuXHRcdCYgaW5wdXRbdHlwZT1cInJhZGlvXCJdICsgbGFiZWxbZm9yXSxcblx0XHQmIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSArIGxhYmVsW2Zvcl17XG5cdFx0XHRwYWRkaW5nLWxlZnQ6IC44ZW07XG5cblx0XHRcdC8vIFBhcyBkZSBzZWxlY3Rpb25cblx0XHRcdC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZTsgLyogaU9TIFNhZmFyaSAgICAgICAgICAqL1xuXHRcdFx0LXdlYmtpdC11c2VyLXNlbGVjdDogICBub25lOyAvKiBDaHJvbWUvU2FmYXJpL09wZXJhICovXG5cdFx0XHQta2h0bWwtdXNlci1zZWxlY3Q6ICAgIG5vbmU7IC8qIEtvbnF1ZXJvciAgICAgICAgICAgKi9cblx0XHRcdC1tb3otdXNlci1zZWxlY3Q6ICAgICAgbm9uZTsgLyogRmlyZWZveCAgICAgICAgICAgICAqL1xuXHRcdFx0LW1zLXVzZXItc2VsZWN0OiAgICAgICBub25lOyAvKiBJRS9FZGdlICAgICAgICAgICAgICovXG5cdFx0XHR1c2VyLXNlbGVjdDogICAgICAgICAgIG5vbmU7IC8qIG5vbi1wcmVmaXhlZCAgICAgICAgKi9cblxuXG5cdFx0XHQvLyBSZWNlcHRhY2xlXG5cdFx0XHQmOmJlZm9yZXtcblx0XHRcdFx0Y29udGVudDogJyc7XG5cdFx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0XHRcdHRvcDogLjFlbTtcblx0XHRcdFx0XHRsZWZ0OiAtLjhlbTtcblx0XHRcdFx0XHR3aWR0aDogY2FsYyggMWVtIC0gMiouMTVlbSApO1xuXHRcdFx0XHRcdGhlaWdodDogY2FsYyggMWVtIC0gMiouMTVlbSApO1xuXG5cdFx0XHRcdGJvcmRlci1yYWRpdXM6IDUwJSAvIDUwJTtcblx0XHRcdFx0Ym9yZGVyOiAuMTVlbSBzb2xpZCAkdGhlbWUtZmctcHJpbWFyeTtcblxuXHRcdFx0XHRiYWNrZ3JvdW5kOiAjZmZmIGNlbnRlciBjZW50ZXIgbm8tcmVwZWF0O1xuXHRcdFx0XHRiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuXHRcdFx0XHRiYWNrZ3JvdW5kLXNpemU6IDcwJSBhdXRvO1xuXG5cdFx0XHRcdHRyYW5zaXRpb246IGJhY2tncm91bmQgLjJzIGVhc2UtaW4tb3V0O1xuXG5cdFx0XHRcdGN1cnNvcjogcG9pbnRlcjtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQvLyBRdWFuZCBhY3RpZlxuXHRcdCYgaW5wdXRbdHlwZT1cInJhZGlvXCJdOmNoZWNrZWQgKyBsYWJlbFtmb3JdOmJlZm9yZSxcblx0XHQmIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXTpjaGVja2VkICsgbGFiZWxbZm9yXTpiZWZvcmV7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkdGhlbWUtZmctcHJpbWFyeTtcblx0XHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybCgnL2Yvc3ZnL2NoZWNrZWQvc3QvY29udGFpbmVyJyk7XG5cdFx0fVxuXG5cblx0XHQvLyBTcGVjaWZpcXVlIGEgY2hlY2tib3hcblx0XHQmIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSArIGxhYmVsW2Zvcl06YmVmb3Jle1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogM3B4O1xuXHRcdH1cblxuXG5cblxuXG5cdFx0LyogWzVdIEJvdXRvbnMgZGUgc3VibWl0XG5cdFx0PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cblx0XHQmIGlucHV0W3R5cGU9XCJzdWJtaXRcIl0sXG5cdFx0JiBpbnB1dFt0eXBlPVwiYnV0dG9uXCJde1xuXHRcdFx0bWFyZ2luOiAuNWVtIDA7XG5cdFx0XHRwYWRkaW5nOiAuM2VtIC41ZW07XG5cblx0XHRcdGJvcmRlci1yYWRpdXM6IDNweDtcblx0XHRcdGJvcmRlcjogMXB4IHNvbGlkICR0aGVtZS1mZztcblxuXHRcdFx0Y29sb3I6ICR0aGVtZS1mZztcblxuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcblxuXHRcdFx0dHJhbnNpdGlvbjogYmFja2dyb3VuZCAuMXMgZWFzZS1pbi1vdXQsIGNvbG9yIC4xcyBlYXNlLWluLW91dDtcblxuXHRcdFx0LyogKDEpIEFuaW1hdGlvbiBkZSBAaG92ZXIgKi9cblx0XHRcdCY6aG92ZXJ7XG5cdFx0XHRcdGJhY2tncm91bmQtY29sb3I6ICR0aGVtZS1mZztcblx0XHRcdFx0Y29sb3I6ICNmZmY7XG5cdFx0XHR9XG5cblxuXHRcdFx0LyogKDIpIEJvdXRvbiBwcmltYWlyZSAqL1xuXHRcdFx0Ji5wcmltYXJ5e1xuXHRcdFx0XHRib3JkZXItY29sb3I6ICR0aGVtZS1mZy1wcmltYXJ5O1xuXHRcdFx0XHRjb2xvcjogJHRoZW1lLWZnLXByaW1hcnk7XG5cdFx0XHRcdGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG5cblxuXHRcdFx0XHQvKiAoMykgQW5pbWF0aW9uIGRlIEBob3ZlciBwb3VyIGJvdXRvbiBwcmltYWlyZSAqL1xuXHRcdFx0XHQmOmhvdmVye1xuXHRcdFx0XHRcdGJhY2tncm91bmQtY29sb3I6ICR0aGVtZS1mZy1wcmltYXJ5O1xuXHRcdFx0XHRcdGNvbG9yOiAjZmZmO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblxuXHRcdH1cblxuXHRcdC8qIFs2XSBJbWFnZXMgaW5saW5lXG5cdFx0PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cblx0XHQmIGltZ3tcblx0XHRcdG1hcmdpbjogMWVtO1xuXHRcdFx0aGVpZ2h0OiAzZW07XG5cdFx0fVxuXG5cdFx0LyogWzddIENvbnRvdXIgZmxhZ3Ncblx0XHQ9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xuXHRcdCYgLmZsYWd7XG5cdFx0XHRtYXJnaW46IDAgLjhlbTtcblx0XHRcdHBhZGRpbmc6IC4yZW0gLjhlbTtcblxuXHRcdFx0Ym9yZGVyLXJhZGl1czogNXB4O1xuXHRcdFx0Ym9yZGVyOiAxcHggc29saWQgI2I1YjViNTtcblxuXHRcdFx0Y29sb3I6ICM1NTU7XG5cdFx0XHRmb250LWZhbWlseTogJ0luY29uc29sYXRhJztcblx0XHR9XG5cblxuXHR9XG5cbn1cbiIsCgkJIi8qIFsxXSBDT1VMRVVSU1xuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cbi8qICgxKSBDT1VMRVVSUyBEVSBUSEVNRSAkREVGQVVMVCAqL1xuJHRoZW1lLWJnOiAgICAgICAgICNlOGU4ZTg7XG4kdGhlbWUtYmctcHJpbWFyeTogI2ZmZmZmZjtcbiR0aGVtZS1mZzogICAgICAgICAjNTE1MTUxO1xuJHRoZW1lLWZnLXByaW1hcnk6ICMzOTljZWQ7XG5cbi8qICgyKSBDT1VMRVVSUyBERSBUSEVNRSAkREFSSyAqL1xuJGRhcmstYmc6ICAgICAgICAgIzMxMzU0MTtcbiRkYXJrLWJnLXByaW1hcnk6ICMyOTI4MmU7XG4kZGFyay1mZzogICAgICAgICAjOTM5MzkzO1xuJGRhcmstZmctcHJpbWFyeTogI2ZmZmZmZjtcblxuXG4vKiBbMl0gRElNRU5TSU9OU1xuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cbi8qICgxKSBMYXlvdXQgZGUgYmFzZSAqL1xuJG1lbnUtc2lkZS13aWR0aDogMTVlbTtcbiRoZWFkZXItaGVpZ2h0OiAgIDRlbTtcbiIKCV0sCgkibWFwcGluZ3MiOiAiQUFFQSxRQUFRLENBQUcsVUFBVSxDQUloQixPQUFPLEFBQUEsQ0FDVixPQUFPLENBQUUsSUFBSyxDQUVkLE1BQU0sQ0FBRSxHQUFJLENBY1osUUFBUSxDQUFFLFFBQVMsQ0FDbkIsU0FBUyxDQUFFLENBQUUsQ0FFYixPQUFPLENBQUUsR0FBSSxDQUViLGFBQWEsQ0FBRSxHQUFJLENBRW5CLGdCQUFnQixDQUFFLElBQUssQ0FFdkIsS0FBSyxDQUFFLElBQUssQ0FDWixTQUFTLENBQUUsR0FBSSxDQUVmLE1BQU0sQ0FBRSxjQUFlLENBdUp2QixBQXhMRixRQUFRLENBQUcsVUFBVSxDQUloQixPQUFPLEFBTVQsT0FBTyxBQUFBLENBQUUsT0FBTyxDQUFFLEtBQU0sQ0FBSSxBQVYvQixRQUFRLENBQUcsVUFBVSxDQUloQixPQUFPLEFBU1QsT0FBTyxBQUFBLENBQ1AsT0FBTyxDQUFFLElBQUssQ0FFZCxjQUFjLENBQUUsR0FBSSxDQUNwQixTQUFTLENBQUUsSUFBSyxDQUNoQixlQUFlLENBQUUsWUFBYSxDQUM5QixBQW5CSCxRQUFRLENBQUcsVUFBVSxDQUloQixPQUFPLENBbUNSLEVBQUUsQUFBQSxDQUNILEtBQUssQ0FBRSxPQUFPLENBQ2QsU0FBUyxDQUFFLEtBQU0sQ0FDakIsY0FBYyxDQUFFLFNBQVUsQ0FDMUIsV0FBVyxDQUFFLEdB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 */ \ No newline at end of file diff --git a/css/container/min.css.map b/css/container/min.css.map new file mode 100644 index 0000000..0ad81fb --- /dev/null +++ b/css/container/min.css.map @@ -0,0 +1,14 @@ +{ + "version": 3, + "file": "min.css", + "sources": [ + "../container.scss", + "../constants.scss" + ], + "sourcesContent": [ + "@import 'constants.scss';\n\n#WRAPPER > #CONTAINER{\n\n\t/* [1] Section (contenu)\n\t=========================================================*/\n\t& > section{\n\t\tdisplay: none;\n\n\t\tmargin: 1em;\n\n\t\t// Gestion de l'activation des sous-parties\n\t\t&.active{ display: block; }\n\n\t\t// Gestion d'une section contenant des graphiques\n\t\t&.charts{\n\t\t\tdisplay: flex;\n\n\t\t\tflex-direction: row;\n\t\t\tflex-wrap: wrap;\n\t\t\tjustify-content: space-around;\n\t\t}\n\n\t\tposition: relative;\n\t\tflex-grow: 1;\n\n\t\tpadding: 1em;\n\n\t\tborder-radius: 3px;\n\n\t\tbackground-color: #fff;\n\n\t\tcolor: #000;\n\t\tfont-size: 1em;\n\n\t\tborder: 1px solid #ddd;\n\n\n\n\t\t/* [2] Titres\n\t\t=========================================================*/\n\t\t& h6{\n\t\t\tcolor: lighten($theme-fg, 20);\n\t\t\tfont-size: 1.2em;\n\t\t\ttext-transform: uppercase;\n\t\t\tfont-weight: 300;\n\t\t\tletter-spacing: .2em;\n\n\t\t\tmargin: 0;\n\t\t\tpadding: 0;\n\n\t\t\t&:before{content:'- ';}\n\t\t\t&:after{content:' -';}\n\n\t\t\t// quand centré\n\t\t\t&.center{\n\t\t\t\ttext-align: center;\n\t\t\t}\n\t\t}\n\n\n\n\n\n\t\t/* [3][4] Boutons radio + Checkboxes\n\t\t=========================================================*/\n\t\t& input[type=\"radio\"],\n\t\t& input[type=\"checkbox\"]{\n\t\t\tdisplay: none;\n\t\t}\n\n\t\t// Label\n\t\t& input[type=\"radio\"] + label[for],\n\t\t& input[type=\"checkbox\"] + label[for]{\n\t\t\tpadding-left: .8em;\n\n\t\t\t// Pas de selection\n\t\t\t-webkit-touch-callout: none; /* iOS Safari */\n\t\t\t-webkit-user-select: none; /* Chrome/Safari/Opera */\n\t\t\t-khtml-user-select: none; /* Konqueror */\n\t\t\t-moz-user-select: none; /* Firefox */\n\t\t\t-ms-user-select: none; /* IE/Edge */\n\t\t\tuser-select: none; /* non-prefixed */\n\n\n\t\t\t// Receptacle\n\t\t\t&:before{\n\t\t\t\tcontent: '';\n\t\t\t\tdisplay: inline-block;\n\t\t\t\tposition: relative;\n\t\t\t\t\ttop: .1em;\n\t\t\t\t\tleft: -.8em;\n\t\t\t\t\twidth: calc( 1em - 2*.15em );\n\t\t\t\t\theight: calc( 1em - 2*.15em );\n\n\t\t\t\tborder-radius: 50% / 50%;\n\t\t\t\tborder: .15em solid $theme-fg-primary;\n\n\t\t\t\tbackground: #fff center center no-repeat;\n\t\t\t\tbackground-image: none;\n\t\t\t\tbackground-size: 70% auto;\n\n\t\t\t\ttransition: background .2s ease-in-out;\n\n\t\t\t\tcursor: pointer;\n\t\t\t}\n\t\t}\n\n\t\t// Quand actif\n\t\t& input[type=\"radio\"]:checked + label[for]:before,\n\t\t& input[type=\"checkbox\"]:checked + label[for]:before{\n\t\t\tbackground-color: $theme-fg-primary;\n\t\t\tbackground-image: url('/f/svg/checked/st/container');\n\t\t}\n\n\n\t\t// Specifique a checkbox\n\t\t& input[type=\"checkbox\"] + label[for]:before{\n\t\t\tborder-radius: 3px;\n\t\t}\n\n\n\n\n\n\t\t/* [5] Boutons de submit\n\t\t=========================================================*/\n\t\t& input[type=\"submit\"],\n\t\t& input[type=\"button\"]{\n\t\t\tmargin: .5em 0;\n\t\t\tpadding: .3em .5em;\n\n\t\t\tborder-radius: 3px;\n\t\t\tborder: 1px solid $theme-fg;\n\n\t\t\tcolor: $theme-fg;\n\n\t\t\tbackground-color: #fff;\n\n\t\t\ttransition: background .1s ease-in-out, color .1s ease-in-out;\n\n\t\t\t/* (1) Animation de @hover */\n\t\t\t&:hover{\n\t\t\t\tbackground-color: $theme-fg;\n\t\t\t\tcolor: #fff;\n\t\t\t}\n\n\n\t\t\t/* (2) Bouton primaire */\n\t\t\t&.primary{\n\t\t\t\tborder-color: $theme-fg-primary;\n\t\t\t\tcolor: $theme-fg-primary;\n\t\t\t\tbackground-color: #fff;\n\n\n\t\t\t\t/* (3) Animation de @hover pour bouton primaire */\n\t\t\t\t&:hover{\n\t\t\t\t\tbackground-color: $theme-fg-primary;\n\t\t\t\t\tcolor: #fff;\n\t\t\t\t}\n\t\t\t}\n\n\n\t\t}\n\n\t\t/* [6] Images inline\n\t\t=========================================================*/\n\t\t& img{\n\t\t\tmargin: 1em;\n\t\t\theight: 3em;\n\t\t}\n\n\t\t/* [7] Contour flags\n\t\t=========================================================*/\n\t\t& .flag{\n\t\t\tmargin: 0 .8em;\n\t\t\tpadding: .2em .8em;\n\n\t\t\tborder-radius: 5px;\n\t\t\tborder: 1px solid #b5b5b5;\n\n\t\t\tcolor: #555;\n\t\t\tfont-family: 'Inconsolata';\n\t\t}\n\n\n\t}\n\n}\n", + "/* [1] COULEURS\n=========================================================*/\n/* (1) COULEURS DU THEME $DEFAULT */\n$theme-bg: #e8e8e8;\n$theme-bg-primary: #ffffff;\n$theme-fg: #515151;\n$theme-fg-primary: #399ced;\n\n/* (2) COULEURS DE THEME $DARK */\n$dark-bg: #313541;\n$dark-bg-primary: #29282e;\n$dark-fg: #939393;\n$dark-fg-primary: #ffffff;\n\n\n/* [2] DIMENSIONS\n=========================================================*/\n/* (1) Layout de base */\n$menu-side-width: 15em;\n$header-height: 4em;\n" + ], + "mappings": "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", + "names": [] +} \ No newline at end of file diff --git a/css/container/nested.css b/css/container/nested.css new file mode 100644 index 0000000..cb331eb --- /dev/null +++ b/css/container/nested.css @@ -0,0 +1,129 @@ +/* [1] COULEURS +=========================================================*/ +/* (1) COULEURS DU THEME $DEFAULT */ +/* (2) COULEURS DE THEME $DARK */ +/* [2] DIMENSIONS +=========================================================*/ +/* (1) Layout de base */ +#WRAPPER > #CONTAINER { + /* [1] Section (contenu) + =========================================================*/ } + #WRAPPER > #CONTAINER > section { + display: none; + margin: 1em; + position: relative; + flex-grow: 1; + padding: 1em; + border-radius: 3px; + background-color: #fff; + color: #000; + font-size: 1em; + border: 1px solid #ddd; + /* [2] Titres + =========================================================*/ + /* [3][4] Boutons radio + Checkboxes + =========================================================*/ + /* [5] Boutons de submit + =========================================================*/ + /* [6] Images inline + =========================================================*/ + /* [7] Contour flags + =========================================================*/ } + #WRAPPER > #CONTAINER > section.active { + display: block; } + #WRAPPER > #CONTAINER > section.charts { + display: flex; + flex-direction: row; + flex-wrap: wrap; + justify-content: space-around; } + #WRAPPER > #CONTAINER > section h6 { + color: #848484; + font-size: 1.2em; + text-transform: uppercase; + font-weight: 300; + letter-spacing: .2em; + margin: 0; + padding: 0; } + #WRAPPER > #CONTAINER > section h6:before { + content: '- '; } + #WRAPPER > #CONTAINER > section h6:after { + content: ' -'; } + #WRAPPER > #CONTAINER > section h6.center { + text-align: center; } + #WRAPPER > #CONTAINER > section input[type="radio"], + #WRAPPER > #CONTAINER > section input[type="checkbox"] { + display: none; } + #WRAPPER > #CONTAINER > section input[type="radio"] + label[for], + #WRAPPER > #CONTAINER > section input[type="checkbox"] + label[for] { + padding-left: .8em; + -webkit-touch-callout: none; + /* iOS Safari */ + -webkit-user-select: none; + /* Chrome/Safari/Opera */ + -khtml-user-select: none; + /* Konqueror */ + -moz-user-select: none; + /* Firefox */ + -ms-user-select: none; + /* IE/Edge */ + user-select: none; + /* non-prefixed */ } + #WRAPPER > #CONTAINER > section input[type="radio"] + label[for]:before, + #WRAPPER > #CONTAINER > section input[type="checkbox"] + label[for]:before { + content: ''; + display: inline-block; + position: relative; + top: .1em; + left: -.8em; + width: calc( 1em - 2*.15em); + height: calc( 1em - 2*.15em); + border-radius: 50% / 50%; + border: 0.15em solid #399ced; + background: #fff center center no-repeat; + background-image: none; + background-size: 70% auto; + transition: background .2s ease-in-out; + cursor: pointer; } + #WRAPPER > #CONTAINER > section input[type="radio"]:checked + label[for]:before, + #WRAPPER > #CONTAINER > section input[type="checkbox"]:checked + label[for]:before { + background-color: #399ced; + background-image: url("/f/svg/checked/st/container"); } + #WRAPPER > #CONTAINER > section input[type="checkbox"] + label[for]:before { + border-radius: 3px; } + #WRAPPER > #CONTAINER > section input[type="submit"], + #WRAPPER > #CONTAINER > section input[type="button"] { + margin: .5em 0; + padding: .3em .5em; + border-radius: 3px; + border: 1px solid #515151; + color: #515151; + background-color: #fff; + transition: background .1s ease-in-out, color .1s ease-in-out; + /* (1) Animation de @hover */ + /* (2) Bouton primaire */ } + #WRAPPER > #CONTAINER > section input[type="submit"]:hover, + #WRAPPER > #CONTAINER > section input[type="button"]:hover { + background-color: #515151; + color: #fff; } + #WRAPPER > #CONTAINER > section input[type="submit"].primary, + #WRAPPER > #CONTAINER > section input[type="button"].primary { + border-color: #399ced; + color: #399ced; + background-color: #fff; + /* (3) Animation de @hover pour bouton primaire */ } + #WRAPPER > #CONTAINER > section input[type="submit"].primary:hover, + #WRAPPER > #CONTAINER > section input[type="button"].primary:hover { + background-color: #399ced; + color: #fff; } + #WRAPPER > #CONTAINER > section img { + margin: 1em; + height: 3em; } + #WRAPPER > #CONTAINER > section .flag { + margin: 0 .8em; + padding: .2em .8em; + border-radius: 5px; + border: 1px solid #b5b5b5; + color: #555; + font-family: 'Inconsolata'; } + +/*# sourceMappingURL=data:application/json;base64,ewoJInZlcnNpb24iOiAzLAoJImZpbGUiOiAibmVzdGVkLmNzcyIsCgkic291cmNlcyI6IFsKCQkiLi4vY29udGFpbmVyLnNjc3MiLAoJCSIuLi9jb25zdGFudHMuc2NzcyIKCV0sCgkic291cmNlc0NvbnRlbnQiOiBbCgkJIkBpbXBvcnQgJ2NvbnN0YW50cy5zY3NzJztcblxuI1dSQVBQRVIgPiAjQ09OVEFJTkVSe1xuXG5cdC8qIFsxXSBTZWN0aW9uIChjb250ZW51KVxuXHQ9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xuXHQmID4gc2VjdGlvbntcblx0XHRkaXNwbGF5OiBub25lO1xuXG5cdFx0bWFyZ2luOiAxZW07XG5cblx0XHQvLyBHZXN0aW9uIGRlIGwnYWN0aXZhdGlvbiBkZXMgc291cy1wYXJ0aWVzXG5cdFx0Ji5hY3RpdmV7IGRpc3BsYXk6IGJsb2NrOyB9XG5cblx0XHQvLyBHZXN0aW9uIGQndW5lIHNlY3Rpb24gY29udGVuYW50IGRlcyBncmFwaGlxdWVzXG5cdFx0Ji5jaGFydHN7XG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xuXG5cdFx0XHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHRcdFx0ZmxleC13cmFwOiB3cmFwO1xuXHRcdFx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XG5cdFx0fVxuXG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdGZsZXgtZ3JvdzogMTtcblxuXHRcdHBhZGRpbmc6IDFlbTtcblxuXHRcdGJvcmRlci1yYWRpdXM6IDNweDtcblxuXHRcdGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG5cblx0XHRjb2xvcjogIzAwMDtcblx0XHRmb250LXNpemU6IDFlbTtcblxuXHRcdGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XG5cblxuXG5cdFx0LyogWzJdIFRpdHJlc1xuXHRcdD09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXG5cdFx0JiBoNntcblx0XHRcdGNvbG9yOiBsaWdodGVuKCR0aGVtZS1mZywgMjApO1xuXHRcdFx0Zm9udC1zaXplOiAxLjJlbTtcblx0XHRcdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdFx0XHRmb250LXdlaWdodDogMzAwO1xuXHRcdFx0bGV0dGVyLXNwYWNpbmc6IC4yZW07XG5cblx0XHRcdG1hcmdpbjogMDtcblx0XHRcdHBhZGRpbmc6IDA7XG5cblx0XHRcdCY6YmVmb3Jle2NvbnRlbnQ6Jy0gJzt9XG5cdFx0XHQmOmFmdGVye2NvbnRlbnQ6JyAtJzt9XG5cblx0XHRcdC8vIHF1YW5kIGNlbnRyw6lcblx0XHRcdCYuY2VudGVye1xuXHRcdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0XHR9XG5cdFx0fVxuXG5cblxuXG5cblx0XHQvKiBbM11bNF0gQm91dG9ucyByYWRpbyArIENoZWNrYm94ZXNcblx0XHQ9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xuXHRcdCYgaW5wdXRbdHlwZT1cInJhZGlvXCJdLFxuXHRcdCYgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJde1xuXHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHR9XG5cblx0XHQvLyBMYWJlbFxuXHRcdCYgaW5wdXRbdHlwZT1cInJhZGlvXCJdICsgbGFiZWxbZm9yXSxcblx0XHQmIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSArIGxhYmVsW2Zvcl17XG5cdFx0XHRwYWRkaW5nLWxlZnQ6IC44ZW07XG5cblx0XHRcdC8vIFBhcyBkZSBzZWxlY3Rpb25cblx0XHRcdC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZTsgLyogaU9TIFNhZmFyaSAgICAgICAgICAqL1xuXHRcdFx0LXdlYmtpdC11c2VyLXNlbGVjdDogICBub25lOyAvKiBDaHJvbWUvU2FmYXJpL09wZXJhICovXG5cdFx0XHQta2h0bWwtdXNlci1zZWxlY3Q6ICAgIG5vbmU7IC8qIEtvbnF1ZXJvciAgICAgICAgICAgKi9cblx0XHRcdC1tb3otdXNlci1zZWxlY3Q6ICAgICAgbm9uZTsgLyogRmlyZWZveCAgICAgICAgICAgICAqL1xuXHRcdFx0LW1zLXVzZXItc2VsZWN0OiAgICAgICBub25lOyAvKiBJRS9FZGdlICAgICAgICAgICAgICovXG5cdFx0XHR1c2VyLXNlbGVjdDogICAgICAgICAgIG5vbmU7IC8qIG5vbi1wcmVmaXhlZCAgICAgICAgKi9cblxuXG5cdFx0XHQvLyBSZWNlcHRhY2xlXG5cdFx0XHQmOmJlZm9yZXtcblx0XHRcdFx0Y29udGVudDogJyc7XG5cdFx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0XHRcdHRvcDogLjFlbTtcblx0XHRcdFx0XHRsZWZ0OiAtLjhlbTtcblx0XHRcdFx0XHR3aWR0aDogY2FsYyggMWVtIC0gMiouMTVlbSApO1xuXHRcdFx0XHRcdGhlaWdodDogY2FsYyggMWVtIC0gMiouMTVlbSApO1xuXG5cdFx0XHRcdGJvcmRlci1yYWRpdXM6IDUwJSAvIDUwJTtcblx0XHRcdFx0Ym9yZGVyOiAuMTVlbSBzb2xpZCAkdGhlbWUtZmctcHJpbWFyeTtcblxuXHRcdFx0XHRiYWNrZ3JvdW5kOiAjZmZmIGNlbnRlciBjZW50ZXIgbm8tcmVwZWF0O1xuXHRcdFx0XHRiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuXHRcdFx0XHRiYWNrZ3JvdW5kLXNpemU6IDcwJSBhdXRvO1xuXG5cdFx0XHRcdHRyYW5zaXRpb246IGJhY2tncm91bmQgLjJzIGVhc2UtaW4tb3V0O1xuXG5cdFx0XHRcdGN1cnNvcjogcG9pbnRlcjtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQvLyBRdWFuZCBhY3RpZlxuXHRcdCYgaW5wdXRbdHlwZT1cInJhZGlvXCJdOmNoZWNrZWQgKyBsYWJlbFtmb3JdOmJlZm9yZSxcblx0XHQmIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXTpjaGVja2VkICsgbGFiZWxbZm9yXTpiZWZvcmV7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkdGhlbWUtZmctcHJpbWFyeTtcblx0XHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybCgnL2Yvc3ZnL2NoZWNrZWQvc3QvY29udGFpbmVyJyk7XG5cdFx0fVxuXG5cblx0XHQvLyBTcGVjaWZpcXVlIGEgY2hlY2tib3hcblx0XHQmIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSArIGxhYmVsW2Zvcl06YmVmb3Jle1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogM3B4O1xuXHRcdH1cblxuXG5cblxuXG5cdFx0LyogWzVdIEJvdXRvbnMgZGUgc3VibWl0XG5cdFx0PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cblx0XHQmIGlucHV0W3R5cGU9XCJzdWJtaXRcIl0sXG5cdFx0JiBpbnB1dFt0eXBlPVwiYnV0dG9uXCJde1xuXHRcdFx0bWFyZ2luOiAuNWVtIDA7XG5cdFx0XHRwYWRkaW5nOiAuM2VtIC41ZW07XG5cblx0XHRcdGJvcmRlci1yYWRpdXM6IDNweDtcblx0XHRcdGJvcmRlcjogMXB4IHNvbGlkICR0aGVtZS1mZztcblxuXHRcdFx0Y29sb3I6ICR0aGVtZS1mZztcblxuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcblxuXHRcdFx0dHJhbnNpdGlvbjogYmFja2dyb3VuZCAuMXMgZWFzZS1pbi1vdXQsIGNvbG9yIC4xcyBlYXNlLWluLW91dDtcblxuXHRcdFx0LyogKDEpIEFuaW1hdGlvbiBkZSBAaG92ZXIgKi9cblx0XHRcdCY6aG92ZXJ7XG5cdFx0XHRcdGJhY2tncm91bmQtY29sb3I6ICR0aGVtZS1mZztcblx0XHRcdFx0Y29sb3I6ICNmZmY7XG5cdFx0XHR9XG5cblxuXHRcdFx0LyogKDIpIEJvdXRvbiBwcmltYWlyZSAqL1xuXHRcdFx0Ji5wcmltYXJ5e1xuXHRcdFx0XHRib3JkZXItY29sb3I6ICR0aGVtZS1mZy1wcmltYXJ5O1xuXHRcdFx0XHRjb2xvcjogJHRoZW1lLWZnLXByaW1hcnk7XG5cdFx0XHRcdGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG5cblxuXHRcdFx0XHQvKiAoMykgQW5pbWF0aW9uIGRlIEBob3ZlciBwb3VyIGJvdXRvbiBwcmltYWlyZSAqL1xuXHRcdFx0XHQmOmhvdmVye1xuXHRcdFx0XHRcdGJhY2tncm91bmQtY29sb3I6ICR0aGVtZS1mZy1wcmltYXJ5O1xuXHRcdFx0XHRcdGNvbG9yOiAjZmZmO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblxuXHRcdH1cblxuXHRcdC8qIFs2XSBJbWFnZXMgaW5saW5lXG5cdFx0PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cblx0XHQmIGltZ3tcblx0XHRcdG1hcmdpbjogMWVtO1xuXHRcdFx0aGVpZ2h0OiAzZW07XG5cdFx0fVxuXG5cdFx0LyogWzddIENvbnRvdXIgZmxhZ3Ncblx0XHQ9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xuXHRcdCYgLmZsYWd7XG5cdFx0XHRtYXJnaW46IDAgLjhlbTtcblx0XHRcdHBhZGRpbmc6IC4yZW0gLjhlbTtcblxuXHRcdFx0Ym9yZGVyLXJhZGl1czogNXB4O1xuXHRcdFx0Ym9yZGVyOiAxcHggc29saWQgI2I1YjViNTtcblxuXHRcdFx0Y29sb3I6ICM1NTU7XG5cdFx0XHRmb250LWZhbWlseTogJ0luY29uc29sYXRhJztcblx0XHR9XG5cblxuXHR9XG5cbn1cbiIsCgkJIi8qIFsxXSBDT1VMRVVSU1xuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cbi8qICgxKSBDT1VMRVVSUyBEVSBUSEVNRSAkREVGQVVMVCAqL1xuJHRoZW1lLWJnOiAgICAgICAgICNlOGU4ZTg7XG4kdGhlbWUtYmctcHJpbWFyeTogI2ZmZmZmZjtcbiR0aGVtZS1mZzogICAgICAgICAjNTE1MTUxO1xuJHRoZW1lLWZnLXByaW1hcnk6ICMzOTljZWQ7XG5cbi8qICgyKSBDT1VMRVVSUyBERSBUSEVNRSAkREFSSyAqL1xuJGRhcmstYmc6ICAgICAgICAgIzMxMzU0MTtcbiRkYXJrLWJnLXByaW1hcnk6ICMyOTI4MmU7XG4kZGFyay1mZzogICAgICAgICAjOTM5MzkzO1xuJGRhcmstZmctcHJpbWFyeTogI2ZmZmZmZjtcblxuXG4vKiBbMl0gRElNRU5TSU9OU1xuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cbi8qICgxKSBMYXlvdXQgZGUgYmFzZSAqL1xuJG1lbnUtc2lkZS13aWR0aDogMTVlbTtcbiRoZWFkZXItaGVpZ2h0OiAgIDRlbTtcbiIKCV0sCgkibWFwcGluZ3MiOiAiQUNBQTsyREFDMkQ7QUFDM0Qsb0NBQW9DO0FBTXBDLGlDQUFpQztBQU9qQzsyREFDMkQ7QUFDM0Qsd0JBQXdCO0FEZnhCLFFBQVEsR0FBRyxVQUFVLENBQUE7RUFFcEI7NERBQzJELEVBdUwzRDtFQTFMRCxRQUFRLEdBQUcsVUFBVSxHQUloQixPQUFPLENBQUE7SUFDVixPQUFPLEVBQUUsSUFBSztJQUVkLE1BQU0sRUFBRSxHQUFJO0lBY1osUUFBUSxFQUFFLFFBQVM7SUFDbkIsU0FBUyxFQUFFLENBQUU7SUFFYixPQUFPLEVBQUUsR0FBSTtJQUViLGFBQWEsRUFBRSxHQUFJO0lBRW5CLGdCQUFnQixFQUFFLElBQUs7SUFFdkIsS0FBSyxFQUFFLElBQUs7SUFDWixTQUFTLEVBQUUsR0FBSTtJQUVmLE1BQU0sRUFBRSxjQUFlO0lBSXZCOzZEQUMyRDtJQXdCM0Q7NkRBQzJEO0lBNEQzRDs2REFDMkQ7SUF1QzNEOzZEQUMyRDtJQU0zRDs2REFDMkQsRUFhM0Q7SUF4TEYsUUFBUSxHQUFHLFVBQVUsR0FJaEIsT0FBTyxBQU1ULE9BQU8sQ0FBQTtNQUFFLE9BQU8sRUFBRSxLQUFNLEdBQUk7SUFWL0IsUUFBUSxHQUFHLFVBQVUsR0FJaEIsT0FBTyxBQVNULE9BQU8sQ0FBQTtNQUNQLE9BQU8sRUFBRSxJQUFLO01BRWQsY0FBYyxFQUFF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 */ \ No newline at end of file diff --git a/css/container/nested.css.map b/css/container/nested.css.map new file mode 100644 index 0000000..7f83eb3 --- /dev/null +++ b/css/container/nested.css.map @@ -0,0 +1,14 @@ +{ + "version": 3, + "file": "nested.css", + "sources": [ + "../container.scss", + "../constants.scss" + ], + "sourcesContent": [ + "@import 'constants.scss';\n\n#WRAPPER > #CONTAINER{\n\n\t/* [1] Section (contenu)\n\t=========================================================*/\n\t& > section{\n\t\tdisplay: none;\n\n\t\tmargin: 1em;\n\n\t\t// Gestion de l'activation des sous-parties\n\t\t&.active{ display: block; }\n\n\t\t// Gestion d'une section contenant des graphiques\n\t\t&.charts{\n\t\t\tdisplay: flex;\n\n\t\t\tflex-direction: row;\n\t\t\tflex-wrap: wrap;\n\t\t\tjustify-content: space-around;\n\t\t}\n\n\t\tposition: relative;\n\t\tflex-grow: 1;\n\n\t\tpadding: 1em;\n\n\t\tborder-radius: 3px;\n\n\t\tbackground-color: #fff;\n\n\t\tcolor: #000;\n\t\tfont-size: 1em;\n\n\t\tborder: 1px solid #ddd;\n\n\n\n\t\t/* [2] Titres\n\t\t=========================================================*/\n\t\t& h6{\n\t\t\tcolor: lighten($theme-fg, 20);\n\t\t\tfont-size: 1.2em;\n\t\t\ttext-transform: uppercase;\n\t\t\tfont-weight: 300;\n\t\t\tletter-spacing: .2em;\n\n\t\t\tmargin: 0;\n\t\t\tpadding: 0;\n\n\t\t\t&:before{content:'- ';}\n\t\t\t&:after{content:' -';}\n\n\t\t\t// quand centré\n\t\t\t&.center{\n\t\t\t\ttext-align: center;\n\t\t\t}\n\t\t}\n\n\n\n\n\n\t\t/* [3][4] Boutons radio + Checkboxes\n\t\t=========================================================*/\n\t\t& input[type=\"radio\"],\n\t\t& input[type=\"checkbox\"]{\n\t\t\tdisplay: none;\n\t\t}\n\n\t\t// Label\n\t\t& input[type=\"radio\"] + label[for],\n\t\t& input[type=\"checkbox\"] + label[for]{\n\t\t\tpadding-left: .8em;\n\n\t\t\t// Pas de selection\n\t\t\t-webkit-touch-callout: none; /* iOS Safari */\n\t\t\t-webkit-user-select: none; /* Chrome/Safari/Opera */\n\t\t\t-khtml-user-select: none; /* Konqueror */\n\t\t\t-moz-user-select: none; /* Firefox */\n\t\t\t-ms-user-select: none; /* IE/Edge */\n\t\t\tuser-select: none; /* non-prefixed */\n\n\n\t\t\t// Receptacle\n\t\t\t&:before{\n\t\t\t\tcontent: '';\n\t\t\t\tdisplay: inline-block;\n\t\t\t\tposition: relative;\n\t\t\t\t\ttop: .1em;\n\t\t\t\t\tleft: -.8em;\n\t\t\t\t\twidth: calc( 1em - 2*.15em );\n\t\t\t\t\theight: calc( 1em - 2*.15em );\n\n\t\t\t\tborder-radius: 50% / 50%;\n\t\t\t\tborder: .15em solid $theme-fg-primary;\n\n\t\t\t\tbackground: #fff center center no-repeat;\n\t\t\t\tbackground-image: none;\n\t\t\t\tbackground-size: 70% auto;\n\n\t\t\t\ttransition: background .2s ease-in-out;\n\n\t\t\t\tcursor: pointer;\n\t\t\t}\n\t\t}\n\n\t\t// Quand actif\n\t\t& input[type=\"radio\"]:checked + label[for]:before,\n\t\t& input[type=\"checkbox\"]:checked + label[for]:before{\n\t\t\tbackground-color: $theme-fg-primary;\n\t\t\tbackground-image: url('/f/svg/checked/st/container');\n\t\t}\n\n\n\t\t// Specifique a checkbox\n\t\t& input[type=\"checkbox\"] + label[for]:before{\n\t\t\tborder-radius: 3px;\n\t\t}\n\n\n\n\n\n\t\t/* [5] Boutons de submit\n\t\t=========================================================*/\n\t\t& input[type=\"submit\"],\n\t\t& input[type=\"button\"]{\n\t\t\tmargin: .5em 0;\n\t\t\tpadding: .3em .5em;\n\n\t\t\tborder-radius: 3px;\n\t\t\tborder: 1px solid $theme-fg;\n\n\t\t\tcolor: $theme-fg;\n\n\t\t\tbackground-color: #fff;\n\n\t\t\ttransition: background .1s ease-in-out, color .1s ease-in-out;\n\n\t\t\t/* (1) Animation de @hover */\n\t\t\t&:hover{\n\t\t\t\tbackground-color: $theme-fg;\n\t\t\t\tcolor: #fff;\n\t\t\t}\n\n\n\t\t\t/* (2) Bouton primaire */\n\t\t\t&.primary{\n\t\t\t\tborder-color: $theme-fg-primary;\n\t\t\t\tcolor: $theme-fg-primary;\n\t\t\t\tbackground-color: #fff;\n\n\n\t\t\t\t/* (3) Animation de @hover pour bouton primaire */\n\t\t\t\t&:hover{\n\t\t\t\t\tbackground-color: $theme-fg-primary;\n\t\t\t\t\tcolor: #fff;\n\t\t\t\t}\n\t\t\t}\n\n\n\t\t}\n\n\t\t/* [6] Images inline\n\t\t=========================================================*/\n\t\t& img{\n\t\t\tmargin: 1em;\n\t\t\theight: 3em;\n\t\t}\n\n\t\t/* [7] Contour flags\n\t\t=========================================================*/\n\t\t& .flag{\n\t\t\tmargin: 0 .8em;\n\t\t\tpadding: .2em .8em;\n\n\t\t\tborder-radius: 5px;\n\t\t\tborder: 1px solid #b5b5b5;\n\n\t\t\tcolor: #555;\n\t\t\tfont-family: 'Inconsolata';\n\t\t}\n\n\n\t}\n\n}\n", + "/* [1] COULEURS\n=========================================================*/\n/* (1) COULEURS DU THEME $DEFAULT */\n$theme-bg: #e8e8e8;\n$theme-bg-primary: #ffffff;\n$theme-fg: #515151;\n$theme-fg-primary: #399ced;\n\n/* (2) COULEURS DE THEME $DARK */\n$dark-bg: #313541;\n$dark-bg-primary: #29282e;\n$dark-fg: #939393;\n$dark-fg-primary: #ffffff;\n\n\n/* [2] DIMENSIONS\n=========================================================*/\n/* (1) Layout de base */\n$menu-side-width: 15em;\n$header-height: 4em;\n" + ], + "mappings": "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", + "names": [] +} \ No newline at end of file diff --git a/css/font.css b/css/font.scss similarity index 96% rename from css/font.css rename to css/font.scss index af130f3..539954c 100755 --- a/css/font.css +++ b/css/font.scss @@ -4,7 +4,7 @@ font-weight: 100; src: url("/css/fonts/proxima-nova/thin.eot"); - src: url(/css/fonts/proxima-nova/thin#iefix.eot) format("embedded-opentype"), + src: url(/css/fonts/proxima-nova/thin#iefix.eot) format("embedded-opentype"), url(/css/fonts/proxima-nova/thin.woff) format("woff"), url(/css/fonts/proxima-nova/thin.ttf) format("truetype"); } @@ -18,4 +18,4 @@ src: url(/css/fonts/proxima-nova/regular#iefix.eot) format("embedded-opentype"), url(/css/fonts/proxima-nova/regular.woff) format("woff"), url(/css/fonts/proxima-nova/regular.ttf) format("truetype"); -} \ No newline at end of file +} diff --git a/css/font/compact.css b/css/font/compact.css new file mode 100644 index 0000000..a482819 --- /dev/null +++ b/css/font/compact.css @@ -0,0 +1,5 @@ +@font-face { font-family: 'Proxima Nova'; font-style: normal; font-weight: 100; src: url("/css/fonts/proxima-nova/thin.eot"); src: url(/css/fonts/proxima-nova/thin#iefix.eot) format("embedded-opentype"), url(/css/fonts/proxima-nova/thin.woff) format("woff"), url(/css/fonts/proxima-nova/thin.ttf) format("truetype"); } + +@font-face { font-family: 'Proxima Nova'; font-style: normal; font-weight: normal; src: url("/css/fonts/proxima-nova/regular.eot"); src: url(/css/fonts/proxima-nova/regular#iefix.eot) format("embedded-opentype"), url(/css/fonts/proxima-nova/regular.woff) format("woff"), url(/css/fonts/proxima-nova/regular.ttf) format("truetype"); } + +/*# sourceMappingURL=data:application/json;base64,ewoJInZlcnNpb24iOiAzLAoJImZpbGUiOiAiY29tcGFjdC5jc3MiLAoJInNvdXJjZXMiOiBbCgkJIi4uL2ZvbnQuc2NzcyIKCV0sCgkic291cmNlc0NvbnRlbnQiOiBbCgkJIkBmb250LWZhY2Uge1xuICAgIGZvbnQtZmFtaWx5OiAnUHJveGltYSBOb3ZhJztcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgZm9udC13ZWlnaHQ6IDEwMDtcblxuICAgIHNyYzogdXJsKFwiL2Nzcy9mb250cy9wcm94aW1hLW5vdmEvdGhpbi5lb3RcIik7XG4gICAgc3JjOiAgICB1cmwoL2Nzcy9mb250cy9wcm94aW1hLW5vdmEvdGhpbiNpZWZpeC5lb3QpICBmb3JtYXQoXCJlbWJlZGRlZC1vcGVudHlwZVwiKSxcbiAgICAgICAgICAgIHVybCgvY3NzL2ZvbnRzL3Byb3hpbWEtbm92YS90aGluLndvZmYpICAgICAgIGZvcm1hdChcIndvZmZcIiksXG4gICAgICAgICAgICB1cmwoL2Nzcy9mb250cy9wcm94aW1hLW5vdmEvdGhpbi50dGYpICAgICAgICBmb3JtYXQoXCJ0cnVldHlwZVwiKTtcbn1cblxuQGZvbnQtZmFjZSB7XG4gICAgZm9udC1mYW1pbHk6ICdQcm94aW1hIE5vdmEnO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuXG4gICAgc3JjOiB1cmwoXCIvY3NzL2ZvbnRzL3Byb3hpbWEtbm92YS9yZWd1bGFyLmVvdFwiKTtcbiAgICBzcmM6ICAgIHVybCgvY3NzL2ZvbnRzL3Byb3hpbWEtbm92YS9yZWd1bGFyI2llZml4LmVvdCkgIGZvcm1hdChcImVtYmVkZGVkLW9wZW50eXBlXCIpLFxuICAgICAgICAgICAgdXJsKC9jc3MvZm9udHMvcHJveGltYS1ub3ZhL3JlZ3VsYXIud29mZikgICAgICAgZm9ybWF0KFwid29mZlwiKSxcbiAgICAgICAgICAgIHVybCgvY3NzL2ZvbnRzL3Byb3hpbWEtbm92YS9yZWd1bGFyLnR0ZikgICAgICAgIGZvcm1hdChcInRydWV0eXBlXCIpO1xufVxuIgoJXSwKCSJtYXBwaW5ncyI6ICJBQUFBLFVBQVUsR0FDTixXQUFXLEVBQUUsY0FBZSxFQUM1QixVQUFVLEVBQUUsTUFBTyxFQUNuQixXQUFXLEVBQUUsR0FBSSxFQUVqQixHQUFHLEVBQUUsdUNBQUcsRUFDUixHQUFHLEVBQStDLDJDQUFDLENBQUUsMkJBQU0sRUFDZCxzQ0FBQyxDQUFPLGNBQU0sRUFDZixxQ0FBQyxDQUFRLGtCQUFNOztBQUcvRCxVQUFVLEdBQ04sV0FBVyxFQUFFLGNBQWUsRUFDNUIsVUFBVSxFQUFFLE1BQU8sRUFDbkIsV0FBVyxFQUFFLE1BQU8sRUFFcEIsR0FBRyxFQUFFLDBDQUFHLEVBQ1IsR0FBRyxFQUFrRCw4Q0FBQyxDQUFFLDJCQUFNLEVBQ2QseUNBQUMsQ0FBTyxjQUFNLEVBQ2Ysd0NBQUMsQ0FBUSxrQkFBTSIsCgkibmFtZXMiOiBbXQp9 */ \ No newline at end of file diff --git a/css/font/compact.css.map b/css/font/compact.css.map new file mode 100644 index 0000000..bb3ba0d --- /dev/null +++ b/css/font/compact.css.map @@ -0,0 +1,12 @@ +{ + "version": 3, + "file": "compact.css", + "sources": [ + "../font.scss" + ], + "sourcesContent": [ + "@font-face {\n font-family: 'Proxima Nova';\n font-style: normal;\n font-weight: 100;\n\n src: url(\"/css/fonts/proxima-nova/thin.eot\");\n src: url(/css/fonts/proxima-nova/thin#iefix.eot) format(\"embedded-opentype\"),\n url(/css/fonts/proxima-nova/thin.woff) format(\"woff\"),\n url(/css/fonts/proxima-nova/thin.ttf) format(\"truetype\");\n}\n\n@font-face {\n font-family: 'Proxima Nova';\n font-style: normal;\n font-weight: normal;\n\n src: url(\"/css/fonts/proxima-nova/regular.eot\");\n src: url(/css/fonts/proxima-nova/regular#iefix.eot) format(\"embedded-opentype\"),\n url(/css/fonts/proxima-nova/regular.woff) format(\"woff\"),\n url(/css/fonts/proxima-nova/regular.ttf) format(\"truetype\");\n}\n" + ], + "mappings": "AAAA,UAAU,GACN,WAAW,EAAE,cAAe,EAC5B,UAAU,EAAE,MAAO,EACnB,WAAW,EAAE,GAAI,EAEjB,GAAG,EAAE,uCAAG,EACR,GAAG,EAA+C,2CAAC,CAAE,2BAAM,EACd,sCAAC,CAAO,cAAM,EACf,qCAAC,CAAQ,kBAAM;;AAG/D,UAAU,GACN,WAAW,EAAE,cAAe,EAC5B,UAAU,EAAE,MAAO,EACnB,WAAW,EAAE,MAAO,EAEpB,GAAG,EAAE,0CAAG,EACR,GAAG,EAAkD,8CAAC,CAAE,2BAAM,EACd,yCAAC,CAAO,cAAM,EACf,wCAAC,CAAQ,kBAAM", + "names": [] +} \ No newline at end of file diff --git a/css/font/expanded.css b/css/font/expanded.css new file mode 100644 index 0000000..919b6a4 --- /dev/null +++ b/css/font/expanded.css @@ -0,0 +1,17 @@ +@font-face { + font-family: 'Proxima Nova'; + font-style: normal; + font-weight: 100; + src: url("/css/fonts/proxima-nova/thin.eot"); + src: url(/css/fonts/proxima-nova/thin#iefix.eot) format("embedded-opentype"), url(/css/fonts/proxima-nova/thin.woff) format("woff"), url(/css/fonts/proxima-nova/thin.ttf) format("truetype"); +} + +@font-face { + font-family: 'Proxima Nova'; + font-style: normal; + font-weight: normal; + src: url("/css/fonts/proxima-nova/regular.eot"); + src: url(/css/fonts/proxima-nova/regular#iefix.eot) format("embedded-opentype"), url(/css/fonts/proxima-nova/regular.woff) format("woff"), url(/css/fonts/proxima-nova/regular.ttf) format("truetype"); +} + +/*# sourceMappingURL=data:application/json;base64,ewoJInZlcnNpb24iOiAzLAoJImZpbGUiOiAiZXhwYW5kZWQuY3NzIiwKCSJzb3VyY2VzIjogWwoJCSIuLi9mb250LnNjc3MiCgldLAoJInNvdXJjZXNDb250ZW50IjogWwoJCSJAZm9udC1mYWNlIHtcbiAgICBmb250LWZhbWlseTogJ1Byb3hpbWEgTm92YSc7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIGZvbnQtd2VpZ2h0OiAxMDA7XG5cbiAgICBzcmM6IHVybChcIi9jc3MvZm9udHMvcHJveGltYS1ub3ZhL3RoaW4uZW90XCIpO1xuICAgIHNyYzogICAgdXJsKC9jc3MvZm9udHMvcHJveGltYS1ub3ZhL3RoaW4jaWVmaXguZW90KSAgZm9ybWF0KFwiZW1iZWRkZWQtb3BlbnR5cGVcIiksXG4gICAgICAgICAgICB1cmwoL2Nzcy9mb250cy9wcm94aW1hLW5vdmEvdGhpbi53b2ZmKSAgICAgICBmb3JtYXQoXCJ3b2ZmXCIpLFxuICAgICAgICAgICAgdXJsKC9jc3MvZm9udHMvcHJveGltYS1ub3ZhL3RoaW4udHRmKSAgICAgICAgZm9ybWF0KFwidHJ1ZXR5cGVcIik7XG59XG5cbkBmb250LWZhY2Uge1xuICAgIGZvbnQtZmFtaWx5OiAnUHJveGltYSBOb3ZhJztcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcblxuICAgIHNyYzogdXJsKFwiL2Nzcy9mb250cy9wcm94aW1hLW5vdmEvcmVndWxhci5lb3RcIik7XG4gICAgc3JjOiAgICB1cmwoL2Nzcy9mb250cy9wcm94aW1hLW5vdmEvcmVndWxhciNpZWZpeC5lb3QpICBmb3JtYXQoXCJlbWJlZGRlZC1vcGVudHlwZVwiKSxcbiAgICAgICAgICAgIHVybCgvY3NzL2ZvbnRzL3Byb3hpbWEtbm92YS9yZWd1bGFyLndvZmYpICAgICAgIGZvcm1hdChcIndvZmZcIiksXG4gICAgICAgICAgICB1cmwoL2Nzcy9mb250cy9wcm94aW1hLW5vdmEvcmVndWxhci50dGYpICAgICAgICBmb3JtYXQoXCJ0cnVldHlwZVwiKTtcbn1cbiIKCV0sCgkibWFwcGluZ3MiOiAiQUFBQSxVQUFVO0VBQ04sV0FBVyxFQUFFLGNBQWU7RUFDNUIsVUFBVSxFQUFFLE1BQU87RUFDbkIsV0FBVyxFQUFFLEdBQUk7RUFFakIsR0FBRyxFQUFFLHVDQUFHO0VBQ1IsR0FBRyxFQUErQywyQ0FBQyxDQUFFLDJCQUFNLEVBQ2Qsc0NBQUMsQ0FBTyxjQUFNLEVBQ2YscUNBQUMsQ0FBUSxrQkFBTTs7O0FBRy9ELFVBQVU7RUFDTixXQUFXLEVBQUUsY0FBZTtFQUM1QixVQUFVLEVBQUUsTUFBTztFQUNuQixXQUFXLEVBQUUsTUFBTztFQUVwQixHQUFHLEVBQUUsMENBQUc7RUFDUixHQUFHLEVBQWtELDhDQUFDLENBQUUsMkJBQU0sRUFDZCx5Q0FBQyxDQUFPLGNBQU0sRUFDZix3Q0FBQyxDQUFRLGtCQUFNIiwKCSJuYW1lcyI6IFtdCn0= */ \ No newline at end of file diff --git a/css/font/expanded.css.map b/css/font/expanded.css.map new file mode 100644 index 0000000..8fd5f24 --- /dev/null +++ b/css/font/expanded.css.map @@ -0,0 +1,12 @@ +{ + "version": 3, + "file": "expanded.css", + "sources": [ + "../font.scss" + ], + "sourcesContent": [ + "@font-face {\n font-family: 'Proxima Nova';\n font-style: normal;\n font-weight: 100;\n\n src: url(\"/css/fonts/proxima-nova/thin.eot\");\n src: url(/css/fonts/proxima-nova/thin#iefix.eot) format(\"embedded-opentype\"),\n url(/css/fonts/proxima-nova/thin.woff) format(\"woff\"),\n url(/css/fonts/proxima-nova/thin.ttf) format(\"truetype\");\n}\n\n@font-face {\n font-family: 'Proxima Nova';\n font-style: normal;\n font-weight: normal;\n\n src: url(\"/css/fonts/proxima-nova/regular.eot\");\n src: url(/css/fonts/proxima-nova/regular#iefix.eot) format(\"embedded-opentype\"),\n url(/css/fonts/proxima-nova/regular.woff) format(\"woff\"),\n url(/css/fonts/proxima-nova/regular.ttf) format(\"truetype\");\n}\n" + ], + "mappings": "AAAA,UAAU;EACN,WAAW,EAAE,cAAe;EAC5B,UAAU,EAAE,MAAO;EACnB,WAAW,EAAE,GAAI;EAEjB,GAAG,EAAE,uCAAG;EACR,GAAG,EAA+C,2CAAC,CAAE,2BAAM,EACd,sCAAC,CAAO,cAAM,EACf,qCAAC,CAAQ,kBAAM;;;AAG/D,UAAU;EACN,WAAW,EAAE,cAAe;EAC5B,UAAU,EAAE,MAAO;EACnB,WAAW,EAAE,MAAO;EAEpB,GAAG,EAAE,0CAAG;EACR,GAAG,EAAkD,8CAAC,CAAE,2BAAM,EACd,yCAAC,CAAO,cAAM,EACf,wCAAC,CAAQ,kBAAM", + "names": [] +} \ No newline at end of file diff --git a/css/font/min.css b/css/font/min.css new file mode 100644 index 0000000..cb39cb3 --- /dev/null +++ b/css/font/min.css @@ -0,0 +1,3 @@ +@font-face{font-family:'Proxima Nova';font-style:normal;font-weight:100;src:url("/css/fonts/proxima-nova/thin.eot");src:url(/css/fonts/proxima-nova/thin#iefix.eot) format("embedded-opentype"),url(/css/fonts/proxima-nova/thin.woff) format("woff"),url(/css/fonts/proxima-nova/thin.ttf) format("truetype")}@font-face{font-family:'Proxima Nova';font-style:normal;font-weight:normal;src:url("/css/fonts/proxima-nova/regular.eot");src:url(/css/fonts/proxima-nova/regular#iefix.eot) format("embedded-opentype"),url(/css/fonts/proxima-nova/regular.woff) format("woff"),url(/css/fonts/proxima-nova/regular.ttf) format("truetype")} + +/*# sourceMappingURL=data:application/json;base64,ewoJInZlcnNpb24iOiAzLAoJImZpbGUiOiAibWluLmNzcyIsCgkic291cmNlcyI6IFsKCQkiLi4vZm9udC5zY3NzIgoJXSwKCSJzb3VyY2VzQ29udGVudCI6IFsKCQkiQGZvbnQtZmFjZSB7XG4gICAgZm9udC1mYW1pbHk6ICdQcm94aW1hIE5vdmEnO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBmb250LXdlaWdodDogMTAwO1xuXG4gICAgc3JjOiB1cmwoXCIvY3NzL2ZvbnRzL3Byb3hpbWEtbm92YS90aGluLmVvdFwiKTtcbiAgICBzcmM6ICAgIHVybCgvY3NzL2ZvbnRzL3Byb3hpbWEtbm92YS90aGluI2llZml4LmVvdCkgIGZvcm1hdChcImVtYmVkZGVkLW9wZW50eXBlXCIpLFxuICAgICAgICAgICAgdXJsKC9jc3MvZm9udHMvcHJveGltYS1ub3ZhL3RoaW4ud29mZikgICAgICAgZm9ybWF0KFwid29mZlwiKSxcbiAgICAgICAgICAgIHVybCgvY3NzL2ZvbnRzL3Byb3hpbWEtbm92YS90aGluLnR0ZikgICAgICAgIGZvcm1hdChcInRydWV0eXBlXCIpO1xufVxuXG5AZm9udC1mYWNlIHtcbiAgICBmb250LWZhbWlseTogJ1Byb3hpbWEgTm92YSc7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG5cbiAgICBzcmM6IHVybChcIi9jc3MvZm9udHMvcHJveGltYS1ub3ZhL3JlZ3VsYXIuZW90XCIpO1xuICAgIHNyYzogICAgdXJsKC9jc3MvZm9udHMvcHJveGltYS1ub3ZhL3JlZ3VsYXIjaWVmaXguZW90KSAgZm9ybWF0KFwiZW1iZWRkZWQtb3BlbnR5cGVcIiksXG4gICAgICAgICAgICB1cmwoL2Nzcy9mb250cy9wcm94aW1hLW5vdmEvcmVndWxhci53b2ZmKSAgICAgICBmb3JtYXQoXCJ3b2ZmXCIpLFxuICAgICAgICAgICAgdXJsKC9jc3MvZm9udHMvcHJveGltYS1ub3ZhL3JlZ3VsYXIudHRmKSAgICAgICAgZm9ybWF0KFwidHJ1ZXR5cGVcIik7XG59XG4iCgldLAoJIm1hcHBpbmdzIjogIkFBQUEsVUFBVSxDQUNOLFdBQVcsQ0FBRSxjQUFlLENBQzVCLFVBQVUsQ0FBRSxNQUFPLENBQ25CLFdBQVcsQ0FBRSxHQUFJLENBRWpCLEdBQUcsQ0FBRSx1Q0FBRyxDQUNSLEdBQUcsQ0FBK0MsMkNBQUMsQ0FBRSwyQkFBTSxDQUNkLHNDQUFDLENBQU8sY0FBTSxDQUNmLHFDQUFDLENBQVEsa0JBQU0sQ0FHL0QsVUFBVSxDQUNOLFdBQVcsQ0FBRSxjQUFlLENBQzVCLFVBQVUsQ0FBRSxNQUFPLENBQ25CLFdBQVcsQ0FBRSxNQUFPLENBRXBCLEdBQUcsQ0FBRSwwQ0FBRyxDQUNSLEdBQUcsQ0FBa0QsOENBQUMsQ0FBRSwyQkFBTSxDQUNkLHlDQUFDLENBQU8sY0FBTSxDQUNmLHdDQUFDLENBQVEsa0JBQU0iLAoJIm5hbWVzIjogW10KfQ== */ \ No newline at end of file diff --git a/css/font/min.css.map b/css/font/min.css.map new file mode 100644 index 0000000..e12b3ee --- /dev/null +++ b/css/font/min.css.map @@ -0,0 +1,12 @@ +{ + "version": 3, + "file": "min.css", + "sources": [ + "../font.scss" + ], + "sourcesContent": [ + "@font-face {\n font-family: 'Proxima Nova';\n font-style: normal;\n font-weight: 100;\n\n src: url(\"/css/fonts/proxima-nova/thin.eot\");\n src: url(/css/fonts/proxima-nova/thin#iefix.eot) format(\"embedded-opentype\"),\n url(/css/fonts/proxima-nova/thin.woff) format(\"woff\"),\n url(/css/fonts/proxima-nova/thin.ttf) format(\"truetype\");\n}\n\n@font-face {\n font-family: 'Proxima Nova';\n font-style: normal;\n font-weight: normal;\n\n src: url(\"/css/fonts/proxima-nova/regular.eot\");\n src: url(/css/fonts/proxima-nova/regular#iefix.eot) format(\"embedded-opentype\"),\n url(/css/fonts/proxima-nova/regular.woff) format(\"woff\"),\n url(/css/fonts/proxima-nova/regular.ttf) format(\"truetype\");\n}\n" + ], + "mappings": "AAAA,UAAU,CACN,WAAW,CAAE,cAAe,CAC5B,UAAU,CAAE,MAAO,CACnB,WAAW,CAAE,GAAI,CAEjB,GAAG,CAAE,uCAAG,CACR,GAAG,CAA+C,2CAAC,CAAE,2BAAM,CACd,sCAAC,CAAO,cAAM,CACf,qCAAC,CAAQ,kBAAM,CAG/D,UAAU,CACN,WAAW,CAAE,cAAe,CAC5B,UAAU,CAAE,MAAO,CACnB,WAAW,CAAE,MAAO,CAEpB,GAAG,CAAE,0CAAG,CACR,GAAG,CAAkD,8CAAC,CAAE,2BAAM,CACd,yCAAC,CAAO,cAAM,CACf,wCAAC,CAAQ,kBAAM", + "names": [] +} \ No newline at end of file diff --git a/css/font/nested.css b/css/font/nested.css new file mode 100644 index 0000000..d4de1db --- /dev/null +++ b/css/font/nested.css @@ -0,0 +1,15 @@ +@font-face { + font-family: 'Proxima Nova'; + font-style: normal; + font-weight: 100; + src: url("/css/fonts/proxima-nova/thin.eot"); + src: url(/css/fonts/proxima-nova/thin#iefix.eot) format("embedded-opentype"), url(/css/fonts/proxima-nova/thin.woff) format("woff"), url(/css/fonts/proxima-nova/thin.ttf) format("truetype"); } + +@font-face { + font-family: 'Proxima Nova'; + font-style: normal; + font-weight: normal; + src: url("/css/fonts/proxima-nova/regular.eot"); + src: url(/css/fonts/proxima-nova/regular#iefix.eot) format("embedded-opentype"), url(/css/fonts/proxima-nova/regular.woff) format("woff"), url(/css/fonts/proxima-nova/regular.ttf) format("truetype"); } + +/*# sourceMappingURL=data:application/json;base64,ewoJInZlcnNpb24iOiAzLAoJImZpbGUiOiAibmVzdGVkLmNzcyIsCgkic291cmNlcyI6IFsKCQkiLi4vZm9udC5zY3NzIgoJXSwKCSJzb3VyY2VzQ29udGVudCI6IFsKCQkiQGZvbnQtZmFjZSB7XG4gICAgZm9udC1mYW1pbHk6ICdQcm94aW1hIE5vdmEnO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBmb250LXdlaWdodDogMTAwO1xuXG4gICAgc3JjOiB1cmwoXCIvY3NzL2ZvbnRzL3Byb3hpbWEtbm92YS90aGluLmVvdFwiKTtcbiAgICBzcmM6ICAgIHVybCgvY3NzL2ZvbnRzL3Byb3hpbWEtbm92YS90aGluI2llZml4LmVvdCkgIGZvcm1hdChcImVtYmVkZGVkLW9wZW50eXBlXCIpLFxuICAgICAgICAgICAgdXJsKC9jc3MvZm9udHMvcHJveGltYS1ub3ZhL3RoaW4ud29mZikgICAgICAgZm9ybWF0KFwid29mZlwiKSxcbiAgICAgICAgICAgIHVybCgvY3NzL2ZvbnRzL3Byb3hpbWEtbm92YS90aGluLnR0ZikgICAgICAgIGZvcm1hdChcInRydWV0eXBlXCIpO1xufVxuXG5AZm9udC1mYWNlIHtcbiAgICBmb250LWZhbWlseTogJ1Byb3hpbWEgTm92YSc7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG5cbiAgICBzcmM6IHVybChcIi9jc3MvZm9udHMvcHJveGltYS1ub3ZhL3JlZ3VsYXIuZW90XCIpO1xuICAgIHNyYzogICAgdXJsKC9jc3MvZm9udHMvcHJveGltYS1ub3ZhL3JlZ3VsYXIjaWVmaXguZW90KSAgZm9ybWF0KFwiZW1iZWRkZWQtb3BlbnR5cGVcIiksXG4gICAgICAgICAgICB1cmwoL2Nzcy9mb250cy9wcm94aW1hLW5vdmEvcmVndWxhci53b2ZmKSAgICAgICBmb3JtYXQoXCJ3b2ZmXCIpLFxuICAgICAgICAgICAgdXJsKC9jc3MvZm9udHMvcHJveGltYS1ub3ZhL3JlZ3VsYXIudHRmKSAgICAgICAgZm9ybWF0KFwidHJ1ZXR5cGVcIik7XG59XG4iCgldLAoJIm1hcHBpbmdzIjogIkFBQUEsVUFBVTtFQUNOLFdBQVcsRUFBRSxjQUFlO0VBQzVCLFVBQVUsRUFBRSxNQUFPO0VBQ25CLFdBQVcsRUFBRSxHQUFJO0VBRWpCLEdBQUcsRUFBRSx1Q0FBRztFQUNSLEdBQUcsRUFBK0MsMkNBQUMsQ0FBRSwyQkFBTSxFQUNkLHNDQUFDLENBQU8sY0FBTSxFQUNmLHFDQUFDLENBQVEsa0JBQU07O0FBRy9ELFVBQVU7RUFDTixXQUFXLEVBQUUsY0FBZTtFQUM1QixVQUFVLEVBQUUsTUFBTztFQUNuQixXQUFXLEVBQUUsTUFBTztFQUVwQixHQUFHLEVBQUUsMENBQUc7RUFDUixHQUFHLEVBQWtELDhDQUFDLENBQUUsMkJBQU0sRUFDZCx5Q0FBQyxDQUFPLGNBQU0sRUFDZix3Q0FBQyxDQUFRLGtCQUFNIiwKCSJuYW1lcyI6IFtdCn0= */ \ No newline at end of file diff --git a/css/font/nested.css.map b/css/font/nested.css.map new file mode 100644 index 0000000..849dd8c --- /dev/null +++ b/css/font/nested.css.map @@ -0,0 +1,12 @@ +{ + "version": 3, + "file": "nested.css", + "sources": [ + "../font.scss" + ], + "sourcesContent": [ + "@font-face {\n font-family: 'Proxima Nova';\n font-style: normal;\n font-weight: 100;\n\n src: url(\"/css/fonts/proxima-nova/thin.eot\");\n src: url(/css/fonts/proxima-nova/thin#iefix.eot) format(\"embedded-opentype\"),\n url(/css/fonts/proxima-nova/thin.woff) format(\"woff\"),\n url(/css/fonts/proxima-nova/thin.ttf) format(\"truetype\");\n}\n\n@font-face {\n font-family: 'Proxima Nova';\n font-style: normal;\n font-weight: normal;\n\n src: url(\"/css/fonts/proxima-nova/regular.eot\");\n src: url(/css/fonts/proxima-nova/regular#iefix.eot) format(\"embedded-opentype\"),\n url(/css/fonts/proxima-nova/regular.woff) format(\"woff\"),\n url(/css/fonts/proxima-nova/regular.ttf) format(\"truetype\");\n}\n" + ], + "mappings": "AAAA,UAAU;EACN,WAAW,EAAE,cAAe;EAC5B,UAAU,EAAE,MAAO;EACnB,WAAW,EAAE,GAAI;EAEjB,GAAG,EAAE,uCAAG;EACR,GAAG,EAA+C,2CAAC,CAAE,2BAAM,EACd,sCAAC,CAAO,cAAM,EACf,qCAAC,CAAQ,kBAAM;;AAG/D,UAAU;EACN,WAAW,EAAE,cAAe;EAC5B,UAAU,EAAE,MAAO;EACnB,WAAW,EAAE,MAAO;EAEpB,GAAG,EAAE,0CAAG;EACR,GAAG,EAAkD,8CAAC,CAAE,2BAAM,EACd,yCAAC,CAAO,cAAM,EACf,wCAAC,CAAQ,kBAAM", + "names": [] +} \ No newline at end of file diff --git a/css/global.css b/css/global.css deleted file mode 100755 index 3be91e5..0000000 --- a/css/global.css +++ /dev/null @@ -1,2 +0,0 @@ -#WRAPPER>#CONTAINER section[data-panel-list]{display:block;position:relative;border-radius:3px;border:1px solid #ccc;background-color:#fff;font-size:.9em;color:#000}#WRAPPER>#CONTAINER section[data-panel-list]>div[data-header]{display:flex;position:relative;flex-direction:row;flex-wrap:nowrap;justify-content:space-between;align-items:center;padding:.5em .7em;border-radius:3px 3px 0 0;border-bottom:1px solid #ccc;background-color:#f5f5f5;box-shadow:inset 0 0 5px #eee}#WRAPPER>#CONTAINER section[data-panel-list]>div[data-header]>span,#WRAPPER>#CONTAINER section[data-panel-list]>div[data-header]>button{color:#333;font-weight:bold;line-height:2em}#WRAPPER>#CONTAINER section[data-panel-list]>div[data-header]>button{padding:.1em .7em;border-radius:3px;border:1px solid #777;background:#ecf0f1;transition:all .1s ease-in-out;color:#777}#WRAPPER>#CONTAINER section[data-panel-list]>div[data-header]>button:hover{background:#399ced;border-color:#1484df;color:#fff}#WRAPPER>#CONTAINER section[data-panel-list]>div[data-description]{display:block;position:relative;border-bottom:1px solid #ccc;padding:.7em .7em;color:#555}#WRAPPER>#CONTAINER section[data-panel-list]>ul[data-list]{display:flex;position:relative;flex-direction:column;justify-content:flex-start;flex-wrap:nowrap;margin:0;padding:0;list-style:none}#WRAPPER>#CONTAINER section[data-panel-list]>ul[data-list]>li[data-element]{display:flex;flex-direction:row;justify-content:space-between;align-items:center;flex-wrap:nowrap;padding:1em}#WRAPPER>#CONTAINER section[data-panel-list]>ul[data-list]>li[data-element]:not(:last-child){border-bottom:1px solid #ccc}#WRAPPER>#CONTAINER section[data-panel-list]>ul[data-list]>li[data-element]>div:nth-child(1){display:flex;width:10em;height:6em;flex-direction:column;justify-content:flex-end;align-items:center;background-size:auto 50%}#WRAPPER>#CONTAINER section[data-panel-list]>ul[data-list]>li[data-element]>div:nth-child(1)[data-token]{background:url("/f/svg/token/st/container/666666") center 1em no-repeat}#WRAPPER>#CONTAINER section[data-panel-list]>ul[data-list]>li[data-element]>div:nth-child(1)[data-token].active{background-image:url("/f/svg/token/st/container/399ced")}#WRAPPER>#CONTAINER section[data-panel-list]>ul[data-list]>li[data-element]>div:nth-child(1)[data-user]{background:url("/f/svg/user/st/container/666666") center 1em no-repeat}#WRAPPER>#CONTAINER section[data-panel-list]>ul[data-list]>li[data-element]>div:nth-child(1)[data-user].active{background-image:url("/f/svg/user/st/container/399ced")}#WRAPPER>#CONTAINER section[data-panel-list]>ul[data-list]>li[data-element]>div:nth-child(1)>span{display:block;padding:0 .4em;border-radius:3px;border:1px solid #ddd;font-size:.8em;color:#555;text-transform:uppercase;font-weight:bold}#WRAPPER>#CONTAINER section[data-panel-list]>ul[data-list]>li[data-element]>div:nth-child(n+2){display:flex;position:relative;flex:10em;padding:1em;flex-direction:column;justify-content:flex-start;align-items:flex-start;font-size:1em;color:#000;font-weight:bold}#WRAPPER>#CONTAINER section[data-panel-list]>ul[data-list]>li[data-element]>div:nth-child(n+2)>span[data-prefix]:before{content:attr(data-prefix) ": ";font-weight:normal}#WRAPPER>#CONTAINER section[data-panel-list]>ul[data-list]>li[data-element]>button{padding:.1em .7em;height:2em;border-radius:3px;border:1px solid #de2b08;background:#fff;color:#de2b08;font-weight:bold;transition:all .2s ease-in-out}#WRAPPER>#CONTAINER section[data-panel-list]>ul[data-list]>li[data-element]>button:hover{background:#de2b08;color:#fff}#WRAPPER>#CONTAINER section[data-panel-list]>div[data-add]{display:none;position:relative;padding:1em;border-bottom:1px solid #ccc;background-color:#ecf0f1}#WRAPPER>#CONTAINER section[data-panel-list]>div[data-add].active{display:block}#WRAPPER>#CONTAINER section[data-panel-list]>div[data-add]>.label{display:inline-block;width:18em;padding-right:2em;text-align:right;color:#3b494c}#WRAPPER>#CONTAINER section[data-panel-list]>div[data-add]>input[type='text'],#WRAPPER>#CONTAINER section[data-panel-list]>div[data-add]>input[type='email'],#WRAPPER>#CONTAINER section[data-panel-list]>div[data-add]>input[type='password']{margin:1em 0;padding:.5em .7em;border-radius:3px;border:1px solid #ddd;background-color:#fff;color:#000;font-weight:normal}#WRAPPER>#CONTAINER section[data-panel-list]>div[data-add]>input[type='text']:focus,#WRAPPER>#CONTAINER section[data-panel-list]>div[data-add]>input[type='email']:focus,#WRAPPER>#CONTAINER section[data-panel-list]>div[data-add]>input[type='password']:focus{border-color:#399ced;box-shadow:inset 0 0 2px #ddd}#WRAPPER>#CONTAINER section[data-panel-list]>div[data-add]>input[type='submit']:hover{background:#399ced;border-color:#1484df;color:#fff} -/*# sourceMappingURL=global.css.map */ diff --git a/css/global.css.map b/css/global.css.map deleted file mode 100755 index 00de1c8..0000000 --- a/css/global.css.map +++ /dev/null @@ -1,7 +0,0 @@ -{ -"version": 3, -"mappings": "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", -"sources": ["global.scss","constants.scss"], -"names": [], -"file": "global.css" -} \ No newline at end of file diff --git a/css/global.scss b/css/global.scss index d583c1e..97a0583 100755 --- a/css/global.scss +++ b/css/global.scss @@ -28,7 +28,7 @@ align-items: center; padding: .5em .7em; - + border-radius: 3px 3px 0 0; border-bottom: 1px solid #ccc; @@ -46,7 +46,7 @@ // Bouton ajouter & > button{ padding: .1em .7em; - + border-radius: 3px; border: 1px solid #777; @@ -113,7 +113,7 @@ &:not(:last-child){ border-bottom: 1px solid #ccc; } - + /* (4.1) Logo et type d'element */ & > div:nth-child(1){ display: flex; @@ -124,7 +124,7 @@ flex-direction: column; justify-content: flex-end; align-items: center; - + // Image pour token &[data-token]{ background: url('/f/svg/token/st/container/666666') center 1em no-repeat; @@ -143,7 +143,17 @@ background-image: url('/f/svg/user/st/container/399ced'); } } - + + + // Image pour utilisateur + &[data-number]{ + background: url('/f/svg/phone_number/st/container/666666') center 1em no-repeat; + // Si le token est actif + &.active{ + background-image: url('/f/svg/phone_number/st/container/399ced'); + } + } + background-size: auto 50%; @@ -151,12 +161,12 @@ // Texte pour le type d'element & > span{ display: block; - + padding: 0 .4em; border-radius: 3px; border: 1px solid #ddd; - + font-size: .8em; color: #555; text-transform: uppercase; @@ -164,14 +174,14 @@ } } - + /* (4.2) Donnees descriptives */ & > div:nth-child(n+2){ display: flex; position: relative; flex: 10em; - + padding: 1em; // flex properties @@ -211,7 +221,7 @@ color: #fff; } } - + } } @@ -238,12 +248,12 @@ /* (5.1) Description du champ de texte */ & > .label{ display: inline-block; - width: 18em; + width: 18em; padding-right: 2em; text-align: right; color: #3b494c; } - + /* (5.2) Champs de texte */ & > input[type='text'], @@ -259,14 +269,14 @@ color: #000; font-weight: normal; - + // Animation de @focus &:focus{ border-color: $theme-fg-primary; box-shadow: inset 0 0 2px #ddd; } } - + /* (5.3) Bouton de creation animation de @hover*/ & > input[type='submit']:hover{ @@ -276,4 +286,4 @@ } } -} \ No newline at end of file +} diff --git a/css/global/compact.css b/css/global/compact.css new file mode 100644 index 0000000..0d08379 --- /dev/null +++ b/css/global/compact.css @@ -0,0 +1,64 @@ +/* [1] COULEURS +=========================================================*/ +/* (1) COULEURS DU THEME $DEFAULT */ +/* (2) COULEURS DE THEME $DARK */ +/* [2] DIMENSIONS +=========================================================*/ +/* (1) Layout de base */ +/* [1] Panneau d'ajout/suppression d'elements +=========================================================*/ +#WRAPPER > #CONTAINER section[data-panel-list] { display: block; position: relative; border-radius: 3px; border: 1px solid #ccc; background-color: #fff; font-size: .9em; color: #000; /* (1) Header (titre + ajout) */ /* (2) Description (sous le header) */ /* (3) Liste des elements */ /* (5) Formulaire d'ajout d'un nouvel element */ } + +#WRAPPER > #CONTAINER section[data-panel-list] > div[data-header] { display: flex; position: relative; flex-direction: row; flex-wrap: nowrap; justify-content: space-between; align-items: center; padding: .5em .7em; border-radius: 3px 3px 0 0; border-bottom: 1px solid #ccc; background-color: #f5f5f5; box-shadow: inset 0 0 5px #eee; } + +#WRAPPER > #CONTAINER section[data-panel-list] > div[data-header] > span, #WRAPPER > #CONTAINER section[data-panel-list] > div[data-header] > button { color: #333; font-weight: bold; line-height: 2em; } + +#WRAPPER > #CONTAINER section[data-panel-list] > div[data-header] > button { padding: .1em .7em; border-radius: 3px; border: 1px solid #777; background: #ecf0f1; transition: all .1s ease-in-out; color: #777; } + +#WRAPPER > #CONTAINER section[data-panel-list] > div[data-header] > button:hover { background: #399ced; border-color: #1484df; color: #fff; } + +#WRAPPER > #CONTAINER section[data-panel-list] > div[data-description] { display: block; position: relative; border-bottom: 1px solid #ccc; padding: .7em .7em; color: #555; } + +#WRAPPER > #CONTAINER section[data-panel-list] > ul[data-list] { display: flex; position: relative; flex-direction: column; justify-content: flex-start; flex-wrap: nowrap; margin: 0; padding: 0; list-style: none; /* (4) Chaque element de la liste */ } + +#WRAPPER > #CONTAINER section[data-panel-list] > ul[data-list] > li[data-element] { display: flex; flex-direction: row; justify-content: space-between; align-items: center; flex-wrap: nowrap; padding: 1em; /* (4.1) Logo et type d'element */ /* (4.2) Donnees descriptives */ /* (4.3) Bouton de suppression */ } + +#WRAPPER > #CONTAINER section[data-panel-list] > ul[data-list] > li[data-element]:not(:last-child) { border-bottom: 1px solid #ccc; } + +#WRAPPER > #CONTAINER section[data-panel-list] > ul[data-list] > li[data-element] > div:nth-child(1) { display: flex; width: 10em; height: 6em; flex-direction: column; justify-content: flex-end; align-items: center; background-size: auto 50%; } + +#WRAPPER > #CONTAINER section[data-panel-list] > ul[data-list] > li[data-element] > div:nth-child(1)[data-token] { background: url("/f/svg/token/st/container/666666") center 1em no-repeat; } + +#WRAPPER > #CONTAINER section[data-panel-list] > ul[data-list] > li[data-element] > div:nth-child(1)[data-token].active { background-image: url("/f/svg/token/st/container/399ced"); } + +#WRAPPER > #CONTAINER section[data-panel-list] > ul[data-list] > li[data-element] > div:nth-child(1)[data-user] { background: url("/f/svg/user/st/container/666666") center 1em no-repeat; } + +#WRAPPER > #CONTAINER section[data-panel-list] > ul[data-list] > li[data-element] > div:nth-child(1)[data-user].active { background-image: url("/f/svg/user/st/container/399ced"); } + +#WRAPPER > #CONTAINER section[data-panel-list] > ul[data-list] > li[data-element] > div:nth-child(1)[data-number] { background: url("/f/svg/phone_number/st/container/666666") center 1em no-repeat; } + +#WRAPPER > #CONTAINER section[data-panel-list] > ul[data-list] > li[data-element] > div:nth-child(1)[data-number].active { background-image: url("/f/svg/phone_number/st/container/399ced"); } + +#WRAPPER > #CONTAINER section[data-panel-list] > ul[data-list] > li[data-element] > div:nth-child(1) > span { display: block; padding: 0 .4em; border-radius: 3px; border: 1px solid #ddd; font-size: .8em; color: #555; text-transform: uppercase; font-weight: bold; } + +#WRAPPER > #CONTAINER section[data-panel-list] > ul[data-list] > li[data-element] > div:nth-child(n+2) { display: flex; position: relative; flex: 10em; padding: 1em; flex-direction: column; justify-content: flex-start; align-items: flex-start; font-size: 1em; color: #000; font-weight: bold; } + +#WRAPPER > #CONTAINER section[data-panel-list] > ul[data-list] > li[data-element] > div:nth-child(n+2) > span[data-prefix]:before { content: attr(data-prefix) ": "; font-weight: normal; } + +#WRAPPER > #CONTAINER section[data-panel-list] > ul[data-list] > li[data-element] > button { padding: .1em .7em; height: 2em; border-radius: 3px; border: 1px solid #de2b08; background: #fff; color: #de2b08; font-weight: bold; transition: all .2s ease-in-out; } + +#WRAPPER > #CONTAINER section[data-panel-list] > ul[data-list] > li[data-element] > button:hover { background: #de2b08; color: #fff; } + +#WRAPPER > #CONTAINER section[data-panel-list] > div[data-add] { display: none; position: relative; padding: 1em; border-bottom: 1px solid #ccc; background-color: #ecf0f1; /* (5.1) Description du champ de texte */ /* (5.2) Champs de texte */ /* (5.3) Bouton de creation animation de @hover*/ } + +#WRAPPER > #CONTAINER section[data-panel-list] > div[data-add].active { display: block; } + +#WRAPPER > #CONTAINER section[data-panel-list] > div[data-add] > .label { display: inline-block; width: 18em; padding-right: 2em; text-align: right; color: #3b494c; } + +#WRAPPER > #CONTAINER section[data-panel-list] > div[data-add] > input[type='text'], #WRAPPER > #CONTAINER section[data-panel-list] > div[data-add] > input[type='email'], #WRAPPER > #CONTAINER section[data-panel-list] > div[data-add] > input[type='password'] { margin: 1em 0; padding: .5em .7em; border-radius: 3px; border: 1px solid #ddd; background-color: #fff; color: #000; font-weight: normal; } + +#WRAPPER > #CONTAINER section[data-panel-list] > div[data-add] > input[type='text']:focus, #WRAPPER > #CONTAINER section[data-panel-list] > div[data-add] > input[type='email']:focus, #WRAPPER > #CONTAINER section[data-panel-list] > div[data-add] > input[type='password']:focus { border-color: #399ced; box-shadow: inset 0 0 2px #ddd; } + +#WRAPPER > #CONTAINER section[data-panel-list] > div[data-add] > input[type='submit']:hover { background: #399ced; border-color: #1484df; color: #fff; } + +/*# sourceMappingURL=data:application/json;base64,ewoJInZlcnNpb24iOiAzLAoJImZpbGUiOiAiY29tcGFjdC5jc3MiLAoJInNvdXJjZXMiOiBbCgkJIi4uL2dsb2JhbC5zY3NzIiwKCQkiLi4vY29uc3RhbnRzLnNjc3MiCgldLAoJInNvdXJjZXNDb250ZW50IjogWwoJCSJAaW1wb3J0ICdjb25zdGFudHMnO1xuXG5cbi8qIFsxXSBQYW5uZWF1IGQnYWpvdXQvc3VwcHJlc3Npb24gZCdlbGVtZW50c1xuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cbiNXUkFQUEVSID4gI0NPTlRBSU5FUiBzZWN0aW9uW2RhdGEtcGFuZWwtbGlzdF17XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cblx0Ym9yZGVyLXJhZGl1czogM3B4O1xuXHRib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xuXG5cdGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG5cblx0Zm9udC1zaXplOiAuOWVtO1xuXHRjb2xvcjogIzAwMDtcblxuXG5cdC8qICgxKSBIZWFkZXIgKHRpdHJlICsgYWpvdXQpICovXG5cdCYgPiBkaXZbZGF0YS1oZWFkZXJde1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdFx0Ly8gZmxleCBwcm9wZXJ0aWVzXG5cdFx0ZmxleC1kaXJlY3Rpb246IHJvdztcblx0XHRmbGV4LXdyYXA6IG5vd3JhcDtcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblxuXHRcdHBhZGRpbmc6IC41ZW0gLjdlbTtcblxuXHRcdGJvcmRlci1yYWRpdXM6IDNweCAzcHggMCAwO1xuXHRcdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjO1xuXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogI2Y1ZjVmNTtcblx0XHRib3gtc2hhZG93OiBpbnNldCAwIDAgNXB4ICNlZWU7XG5cblx0XHQvLyBMaWJlbGxlIGR1IHBhbmVsXG5cdFx0JiA+IHNwYW4sXG5cdFx0JiA+IGJ1dHRvbntcblx0XHRcdGNvbG9yOiAjMzMzO1xuXHRcdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdFx0XHRsaW5lLWhlaWdodDogMmVtO1xuXHRcdH1cblxuXHRcdC8vIEJvdXRvbiBham91dGVyXG5cdFx0JiA+IGJ1dHRvbntcblx0XHRcdHBhZGRpbmc6IC4xZW0gLjdlbTtcblxuXHRcdFx0Ym9yZGVyLXJhZGl1czogM3B4O1xuXHRcdFx0Ym9yZGVyOiAxcHggc29saWQgIzc3NztcblxuXHRcdFx0YmFja2dyb3VuZDogI2VjZjBmMTtcblxuXHRcdFx0dHJhbnNpdGlvbjogYWxsIC4xcyBlYXNlLWluLW91dDtcblxuXHRcdFx0Y29sb3I6ICM3Nzc7XG5cblx0XHRcdC8vIEFuaW1hdGlvbiBkZSBAaG92ZXJcblx0XHRcdCY6aG92ZXJ7XG5cdFx0XHRcdGJhY2tncm91bmQ6ICR0aGVtZS1mZy1wcmltYXJ5O1xuXHRcdFx0XHRib3JkZXItY29sb3I6IGRhcmtlbigkdGhlbWUtZmctcHJpbWFyeSwgMTApO1xuXHRcdFx0XHRjb2xvcjogI2ZmZjtcblx0XHRcdH1cblx0XHR9XG5cblx0fVxuXG5cblx0LyogKDIpIERlc2NyaXB0aW9uIChzb3VzIGxlIGhlYWRlcikgKi9cblx0JiA+IGRpdltkYXRhLWRlc2NyaXB0aW9uXXtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cblx0XHRib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYztcblxuXHRcdHBhZGRpbmc6IC43ZW0gLjdlbTtcblxuXHRcdGNvbG9yOiAjNTU1O1xuXHR9XG5cblxuXG5cdC8qICgzKSBMaXN0ZSBkZXMgZWxlbWVudHMgKi9cblx0JiA+IHVsW2RhdGEtbGlzdF17XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cblx0XHQvLyBmbGV4IHByb3BlcnRpZXNcblx0XHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXHRcdGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcblx0XHRmbGV4LXdyYXA6IG5vd3JhcDtcblxuXHRcdG1hcmdpbjogMDtcblx0XHRwYWRkaW5nOiAwO1xuXG5cdFx0bGlzdC1zdHlsZTogbm9uZTtcblxuXG5cdFx0LyogKDQpIENoYXF1ZSBlbGVtZW50IGRlIGxhIGxpc3RlICovXG5cdFx0JiA+IGxpW2RhdGEtZWxlbWVudF17XG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xuXG5cdFx0XHQvLyBmbGV4IHByb3BlcnRpZXNcblx0XHRcdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cdFx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdFx0ZmxleC13cmFwOiBub3dyYXA7XG5cblx0XHRcdHBhZGRpbmc6IDFlbTtcblxuXHRcdFx0Ly8gcmVib3JkIGVuIGJhcyBzYXVmIGRlcm5pZXJcblx0XHRcdCY6bm90KDpsYXN0LWNoaWxkKXtcblx0XHRcdFx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7XG5cdFx0XHR9XG5cblx0XHRcdC8qICg0LjEpIExvZ28gZXQgdHlwZSBkJ2VsZW1lbnQgKi9cblx0XHRcdCYgPiBkaXY6bnRoLWNoaWxkKDEpe1xuXHRcdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0XHRcdHdpZHRoOiAxMGVtO1xuXHRcdFx0XHRcdGhlaWdodDogNmVtO1xuXG5cdFx0XHRcdC8vIGZsZXggcHJvcGVydGllc1xuXHRcdFx0XHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXHRcdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXHRcdFx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXG5cdFx0XHRcdC8vIEltYWdlIHBvdXIgdG9rZW5cblx0XHRcdFx0JltkYXRhLXRva2VuXXtcblx0XHRcdFx0XHRiYWNrZ3JvdW5kOiB1cmwoJy9mL3N2Zy90b2tlbi9zdC9jb250YWluZXIvNjY2NjY2JykgY2VudGVyIDFlbSBuby1yZXBlYXQ7XG5cdFx0XHRcdFx0Ly8gU2kgbGUgdG9rZW4gZXN0IGFjdGlmXG5cdFx0XHRcdFx0Ji5hY3RpdmV7XG5cdFx0XHRcdFx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy9mL3N2Zy90b2tlbi9zdC9jb250YWluZXIvMzk5Y2VkJyk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cblxuXHRcdFx0XHQvLyBJbWFnZSBwb3VyIHV0aWxpc2F0ZXVyXG5cdFx0XHRcdCZbZGF0YS11c2VyXXtcblx0XHRcdFx0XHRiYWNrZ3JvdW5kOiB1cmwoJy9mL3N2Zy91c2VyL3N0L2NvbnRhaW5lci82NjY2NjYnKSBjZW50ZXIgMWVtIG5vLXJlcGVhdDtcblx0XHRcdFx0XHQvLyBTaSBsZSB0b2tlbiBlc3QgYWN0aWZcblx0XHRcdFx0XHQmLmFjdGl2ZXtcblx0XHRcdFx0XHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybCgnL2Yvc3ZnL3VzZXIvc3QvY29udGFpbmVyLzM5OWNlZCcpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cblx0XHRcdFx0Ly8gSW1hZ2UgcG91ciB1dGlsaXNhdGV1clxuXHRcdFx0XHQmW2RhdGEtbnVtYmVyXXtcblx0XHRcdFx0XHRiYWNrZ3JvdW5kOiB1cmwoJy9mL3N2Zy9waG9uZV9udW1iZXIvc3QvY29udGFpbmVyLzY2NjY2NicpIGNlbnRlciAxZW0gbm8tcmVwZWF0O1xuXHRcdFx0XHRcdC8vIFNpIGxlIHRva2VuIGVzdCBhY3RpZlxuXHRcdFx0XHRcdCYuYWN0aXZle1xuXHRcdFx0XHRcdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKCcvZi9zdmcvcGhvbmVfbnVtYmVyL3N0L2NvbnRhaW5lci8zOTljZWQnKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRiYWNrZ3JvdW5kLXNpemU6IGF1dG8gNTAlO1xuXG5cblxuXHRcdFx0XHQvLyBUZXh0ZSBwb3VyIGxlIHR5cGUgZCdlbGVtZW50XG5cdFx0XHRcdCYgPiBzcGFue1xuXHRcdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXG5cdFx0XHRcdFx0cGFkZGluZzogMCAuNGVtO1xuXG5cdFx0XHRcdFx0Ym9yZGVyLXJhZGl1czogM3B4O1xuXHRcdFx0XHRcdGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XG5cblx0XHRcdFx0XHRmb250LXNpemU6IC44ZW07XG5cdFx0XHRcdFx0Y29sb3I6ICM1NTU7XG5cdFx0XHRcdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0XHRcdFx0XHRmb250LXdlaWdodDogYm9sZDtcblx0XHRcdFx0fVxuXG5cdFx0XHR9XG5cblx0XHRcdC8qICg0LjIpIERvbm5lZXMgZGVzY3JpcHRpdmVzICovXG5cdFx0XHQmID4gZGl2Om50aC1jaGlsZChuKzIpe1xuXHRcdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cblx0XHRcdFx0ZmxleDogMTBlbTtcblxuXHRcdFx0XHRwYWRkaW5nOiAxZW07XG5cblx0XHRcdFx0Ly8gZmxleCBwcm9wZXJ0aWVzXG5cdFx0XHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdFx0XHRcdGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcblx0XHRcdFx0YWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG5cblx0XHRcdFx0Zm9udC1zaXplOiAxZW07XG5cdFx0XHRcdGNvbG9yOiAjMDAwO1xuXHRcdFx0XHRmb250LXdlaWdodDogYm9sZDtcblxuXHRcdFx0XHQvLyBPbiBwcmVmaXhlIGNoYXF1ZSBkb25uZWVcblx0XHRcdFx0JiA+IHNwYW5bZGF0YS1wcmVmaXhdOmJlZm9yZXtcblx0XHRcdFx0XHRjb250ZW50OiBhdHRyKGRhdGEtcHJlZml4KSBcIjogXCI7XG5cdFx0XHRcdFx0Zm9udC13ZWlnaHQ6IG5vcm1hbDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHQvKiAoNC4zKSBCb3V0b24gZGUgc3VwcHJlc3Npb24gKi9cblx0XHRcdCYgPiBidXR0b257XG5cdFx0XHRcdHBhZGRpbmc6IC4xZW0gLjdlbTtcblx0XHRcdFx0XHRoZWlnaHQ6IDJlbTtcblxuXHRcdFx0XHRib3JkZXItcmFkaXVzOiAzcHg7XG5cdFx0XHRcdGJvcmRlcjogMXB4IHNvbGlkICNkZTJiMDg7XG5cblx0XHRcdFx0YmFja2dyb3VuZDogI2ZmZjtcblxuXHRcdFx0XHRjb2xvcjogI2RlMmIwODtcblx0XHRcdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cblx0XHRcdFx0dHJhbnNpdGlvbjogYWxsIC4ycyBlYXNlLWluLW91dDtcblxuXHRcdFx0XHQvLyBBbmltYXRpb24gZGUgQGhvdmVyXG5cdFx0XHRcdCY6aG92ZXJ7XG5cdFx0XHRcdFx0YmFja2dyb3VuZDogI2RlMmIwODtcblx0XHRcdFx0XHRjb2xvcjogI2ZmZjtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0fVxuXHR9XG5cblxuXHQvKiAoNSkgRm9ybXVsYWlyZSBkJ2Fqb3V0IGQndW4gbm91dmVsIGVsZW1lbnQgKi9cblx0JiA+IGRpdltkYXRhLWFkZF17XG5cdFx0ZGlzcGxheTogbm9uZTtcblxuXHRcdC8vIEFmZmljaGFnZSBxdWFuZCAuYWN0aXZlXG5cdFx0Ji5hY3RpdmV7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHR9XG5cblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cblx0XHRwYWRkaW5nOiAxZW07XG5cblx0XHRib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYztcblxuXHRcdGJhY2tncm91bmQtY29sb3I6ICNlY2YwZjE7XG5cblx0XHQvLyBmb250LXdlaWdodDogYm9sZDtcblxuXHRcdC8qICg1LjEpIERlc2NyaXB0aW9uIGR1IGNoYW1wIGRlIHRleHRlICovXG5cdFx0JiA+IC5sYWJlbHtcblx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdHdpZHRoOiAxOGVtO1xuXHRcdFx0cGFkZGluZy1yaWdodDogMmVtO1xuXHRcdFx0dGV4dC1hbGlnbjogcmlnaHQ7XG5cdFx0XHRjb2xvcjogIzNiNDk0Yztcblx0XHR9XG5cblxuXHRcdC8qICg1LjIpIENoYW1wcyBkZSB0ZXh0ZSAqL1xuXHRcdCYgPiBpbnB1dFt0eXBlPSd0ZXh0J10sXG5cdFx0JiA+IGlucHV0W3R5cGU9J2VtYWlsJ10sXG5cdFx0JiA+IGlucHV0W3R5cGU9J3Bhc3N3b3JkJ117XG5cdFx0XHRtYXJnaW46IDFlbSAwO1xuXHRcdFx0cGFkZGluZzogLjVlbSAuN2VtO1xuXG5cdFx0XHRib3JkZXItcmFkaXVzOiAzcHg7XG5cdFx0XHRib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuXG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuXG5cdFx0XHRjb2xvcjogIzAwMDtcblx0XHRcdGZvbnQtd2VpZ2h0OiBub3JtYWw7XG5cblx0XHRcdC8vIEFuaW1hdGlvbiBkZSBAZm9jdXNcblx0XHRcdCY6Zm9jdXN7XG5cdFx0XHRcdGJvcmRlci1jb2xvcjogJHRoZW1lLWZnLXByaW1hcnk7XG5cdFx0XHRcdGJveC1zaGFkb3c6IGluc2V0IDAgMCAycHggI2RkZDtcblx0XHRcdH1cblx0XHR9XG5cblxuXHRcdC8qICg1LjMpIEJvdXRvbiBkZSBjcmVhdGlvbiBhbmltYXRpb24gZGUgQGhvdmVyKi9cblx0XHQmID4gaW5wdXRbdHlwZT0nc3VibWl0J106aG92ZXJ7XG5cdFx0XHRiYWNrZ3JvdW5kOiAkdGhlbWUtZmctcHJpbWFyeTtcblx0XHRcdGJvcmRlci1jb2xvcjogZGFya2VuKCR0aGVtZS1mZy1wcmltYXJ5LCAxMCk7XG5cdFx0XHRjb2xvcjogI2ZmZjtcblx0XHR9XG5cdH1cblxufVxuIiwKCQkiLyogWzFdIENPVUxFVVJTXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xuLyogKDEpIENPVUxFVVJTIERVIFRIRU1FICRERUZBVUxUICovXG4kdGhlbWUtYmc6ICAgICAgICAgI2U4ZThlODtcbiR0aGVtZS1iZy1wcmltYXJ5OiAjZmZmZmZmO1xuJHRoZW1lLWZnOiAgICAgICAgICM1MTUxNTE7XG4kdGhlbWUtZmctcHJpbWFyeTogIzM5OWNlZDtcblxuLyogKDIpIENPVUxFVVJTIERFIFRIRU1FICREQVJLICovXG4kZGFyay1iZzogICAgICAgICAjMzEzNTQxO1xuJGRhcmstYmctcHJpbWFyeTogIzI5MjgyZTtcbiRkYXJrLWZnOiAgICAgICAgICM5MzkzOTM7XG4kZGFyay1mZy1wcmltYXJ5OiAjZmZmZmZmO1xuXG5cbi8qIFsyXSBESU1FTlNJT05TXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xuLyogKDEpIExheW91dCBkZSBiYXNlICovXG4kbWVudS1zaWRlLXdpZHRoOiAxNWVtO1xuJGhlYWRlci1oZWlnaHQ6ICAgNGVtO1xuIgoJXSwKCSJtYXBwaW5ncyI6ICJBQ0FBOzJEQUMyRDtBQUMzRCxvQ0FBb0M7QUFNcEMsaUNBQWlDO0FBT2pDOzJEQUMyRDtBQUMzRCx3QkFBd0I7QURkeEI7MkRBQzJEO0FBQzNELFFBQVEsR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFBLEFBQUEsZUFBQyxBQUFBLEVBQWdCLEVBQzdDLE9BQU8sRUFBRSxLQUFNLEVBQ2YsUUFBUSxFQUFFLFFBQVMsRUFFbkIsYUFBYSxFQUFFLEdBQUksRUFDbkIsTUFBTSxFQUFFLGNBQWUsRUFFdkIsZ0JBQWdCLEVBQUUsSUFBSyxFQUV2QixTQUFTLEVBQUUsSUFBSyxFQUNoQixLQUFLLEVBQUUsSUFBSyxFQUdaLGdDQUFnQyxDQW1EaEMsc0NBQXNDLENBY3RDLDRCQUE0QixDQWlKNUIsZ0RBQWdELEVBNERoRDs7QUEzUkQsUUFBUSxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUEsQUFBQSxlQUFDLEFBQUEsSUFjekIsR0FBRyxDQUFBLEFBQUEsV0FBQyxBQUFBLEVBQVksRUFDbkIsT0FBTyxFQUFFLElBQUssRUFDZCxRQUFRLEVBQUUsUUFBUyxFQUduQixjQUFjLEVBQUUsR0FBSSxFQUNwQixTQUFTLEVBQUUsTUFBTyxFQUNsQixlQUFlLEVBQUUsYUFBYyxFQUMvQixXQUFX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 */ \ No newline at end of file diff --git a/css/global/compact.css.map b/css/global/compact.css.map new file mode 100644 index 0000000..532ebe8 --- /dev/null +++ b/css/global/compact.css.map @@ -0,0 +1,14 @@ +{ + "version": 3, + "file": "compact.css", + "sources": [ + "../global.scss", + "../constants.scss" + ], + "sourcesContent": [ + "@import 'constants';\n\n\n/* [1] Panneau d'ajout/suppression d'elements\n=========================================================*/\n#WRAPPER > #CONTAINER section[data-panel-list]{\n\tdisplay: block;\n\tposition: relative;\n\n\tborder-radius: 3px;\n\tborder: 1px solid #ccc;\n\n\tbackground-color: #fff;\n\n\tfont-size: .9em;\n\tcolor: #000;\n\n\n\t/* (1) Header (titre + ajout) */\n\t& > div[data-header]{\n\t\tdisplay: flex;\n\t\tposition: relative;\n\n\t\t// flex properties\n\t\tflex-direction: row;\n\t\tflex-wrap: nowrap;\n\t\tjustify-content: space-between;\n\t\talign-items: center;\n\n\t\tpadding: .5em .7em;\n\n\t\tborder-radius: 3px 3px 0 0;\n\t\tborder-bottom: 1px solid #ccc;\n\n\t\tbackground-color: #f5f5f5;\n\t\tbox-shadow: inset 0 0 5px #eee;\n\n\t\t// Libelle du panel\n\t\t& > span,\n\t\t& > button{\n\t\t\tcolor: #333;\n\t\t\tfont-weight: bold;\n\t\t\tline-height: 2em;\n\t\t}\n\n\t\t// Bouton ajouter\n\t\t& > button{\n\t\t\tpadding: .1em .7em;\n\n\t\t\tborder-radius: 3px;\n\t\t\tborder: 1px solid #777;\n\n\t\t\tbackground: #ecf0f1;\n\n\t\t\ttransition: all .1s ease-in-out;\n\n\t\t\tcolor: #777;\n\n\t\t\t// Animation de @hover\n\t\t\t&:hover{\n\t\t\t\tbackground: $theme-fg-primary;\n\t\t\t\tborder-color: darken($theme-fg-primary, 10);\n\t\t\t\tcolor: #fff;\n\t\t\t}\n\t\t}\n\n\t}\n\n\n\t/* (2) Description (sous le header) */\n\t& > div[data-description]{\n\t\tdisplay: block;\n\t\tposition: relative;\n\n\t\tborder-bottom: 1px solid #ccc;\n\n\t\tpadding: .7em .7em;\n\n\t\tcolor: #555;\n\t}\n\n\n\n\t/* (3) Liste des elements */\n\t& > ul[data-list]{\n\t\tdisplay: flex;\n\t\tposition: relative;\n\n\t\t// flex properties\n\t\tflex-direction: column;\n\t\tjustify-content: flex-start;\n\t\tflex-wrap: nowrap;\n\n\t\tmargin: 0;\n\t\tpadding: 0;\n\n\t\tlist-style: none;\n\n\n\t\t/* (4) Chaque element de la liste */\n\t\t& > li[data-element]{\n\t\t\tdisplay: flex;\n\n\t\t\t// flex properties\n\t\t\tflex-direction: row;\n\t\t\tjustify-content: space-between;\n\t\t\talign-items: center;\n\t\t\tflex-wrap: nowrap;\n\n\t\t\tpadding: 1em;\n\n\t\t\t// rebord en bas sauf dernier\n\t\t\t&:not(:last-child){\n\t\t\t\tborder-bottom: 1px solid #ccc;\n\t\t\t}\n\n\t\t\t/* (4.1) Logo et type d'element */\n\t\t\t& > div:nth-child(1){\n\t\t\t\tdisplay: flex;\n\t\t\t\t\twidth: 10em;\n\t\t\t\t\theight: 6em;\n\n\t\t\t\t// flex properties\n\t\t\t\tflex-direction: column;\n\t\t\t\tjustify-content: flex-end;\n\t\t\t\talign-items: center;\n\n\t\t\t\t// Image pour token\n\t\t\t\t&[data-token]{\n\t\t\t\t\tbackground: url('/f/svg/token/st/container/666666') center 1em no-repeat;\n\t\t\t\t\t// Si le token est actif\n\t\t\t\t\t&.active{\n\t\t\t\t\t\tbackground-image: url('/f/svg/token/st/container/399ced');\n\t\t\t\t\t}\n\t\t\t\t}\n\n\n\t\t\t\t// Image pour utilisateur\n\t\t\t\t&[data-user]{\n\t\t\t\t\tbackground: url('/f/svg/user/st/container/666666') center 1em no-repeat;\n\t\t\t\t\t// Si le token est actif\n\t\t\t\t\t&.active{\n\t\t\t\t\t\tbackground-image: url('/f/svg/user/st/container/399ced');\n\t\t\t\t\t}\n\t\t\t\t}\n\n\n\t\t\t\t// Image pour utilisateur\n\t\t\t\t&[data-number]{\n\t\t\t\t\tbackground: url('/f/svg/phone_number/st/container/666666') center 1em no-repeat;\n\t\t\t\t\t// Si le token est actif\n\t\t\t\t\t&.active{\n\t\t\t\t\t\tbackground-image: url('/f/svg/phone_number/st/container/399ced');\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tbackground-size: auto 50%;\n\n\n\n\t\t\t\t// Texte pour le type d'element\n\t\t\t\t& > span{\n\t\t\t\t\tdisplay: block;\n\n\t\t\t\t\tpadding: 0 .4em;\n\n\t\t\t\t\tborder-radius: 3px;\n\t\t\t\t\tborder: 1px solid #ddd;\n\n\t\t\t\t\tfont-size: .8em;\n\t\t\t\t\tcolor: #555;\n\t\t\t\t\ttext-transform: uppercase;\n\t\t\t\t\tfont-weight: bold;\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t/* (4.2) Donnees descriptives */\n\t\t\t& > div:nth-child(n+2){\n\t\t\t\tdisplay: flex;\n\t\t\t\tposition: relative;\n\n\t\t\t\tflex: 10em;\n\n\t\t\t\tpadding: 1em;\n\n\t\t\t\t// flex properties\n\t\t\t\tflex-direction: column;\n\t\t\t\tjustify-content: flex-start;\n\t\t\t\talign-items: flex-start;\n\n\t\t\t\tfont-size: 1em;\n\t\t\t\tcolor: #000;\n\t\t\t\tfont-weight: bold;\n\n\t\t\t\t// On prefixe chaque donnee\n\t\t\t\t& > span[data-prefix]:before{\n\t\t\t\t\tcontent: attr(data-prefix) \": \";\n\t\t\t\t\tfont-weight: normal;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t/* (4.3) Bouton de suppression */\n\t\t\t& > button{\n\t\t\t\tpadding: .1em .7em;\n\t\t\t\t\theight: 2em;\n\n\t\t\t\tborder-radius: 3px;\n\t\t\t\tborder: 1px solid #de2b08;\n\n\t\t\t\tbackground: #fff;\n\n\t\t\t\tcolor: #de2b08;\n\t\t\t\tfont-weight: bold;\n\n\t\t\t\ttransition: all .2s ease-in-out;\n\n\t\t\t\t// Animation de @hover\n\t\t\t\t&:hover{\n\t\t\t\t\tbackground: #de2b08;\n\t\t\t\t\tcolor: #fff;\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\t}\n\n\n\t/* (5) Formulaire d'ajout d'un nouvel element */\n\t& > div[data-add]{\n\t\tdisplay: none;\n\n\t\t// Affichage quand .active\n\t\t&.active{\n\t\t\tdisplay: block;\n\t\t}\n\n\t\tposition: relative;\n\n\t\tpadding: 1em;\n\n\t\tborder-bottom: 1px solid #ccc;\n\n\t\tbackground-color: #ecf0f1;\n\n\t\t// font-weight: bold;\n\n\t\t/* (5.1) Description du champ de texte */\n\t\t& > .label{\n\t\t\tdisplay: inline-block;\n\t\t\twidth: 18em;\n\t\t\tpadding-right: 2em;\n\t\t\ttext-align: right;\n\t\t\tcolor: #3b494c;\n\t\t}\n\n\n\t\t/* (5.2) Champs de texte */\n\t\t& > input[type='text'],\n\t\t& > input[type='email'],\n\t\t& > input[type='password']{\n\t\t\tmargin: 1em 0;\n\t\t\tpadding: .5em .7em;\n\n\t\t\tborder-radius: 3px;\n\t\t\tborder: 1px solid #ddd;\n\n\t\t\tbackground-color: #fff;\n\n\t\t\tcolor: #000;\n\t\t\tfont-weight: normal;\n\n\t\t\t// Animation de @focus\n\t\t\t&:focus{\n\t\t\t\tborder-color: $theme-fg-primary;\n\t\t\t\tbox-shadow: inset 0 0 2px #ddd;\n\t\t\t}\n\t\t}\n\n\n\t\t/* (5.3) Bouton de creation animation de @hover*/\n\t\t& > input[type='submit']:hover{\n\t\t\tbackground: $theme-fg-primary;\n\t\t\tborder-color: darken($theme-fg-primary, 10);\n\t\t\tcolor: #fff;\n\t\t}\n\t}\n\n}\n", + "/* [1] COULEURS\n=========================================================*/\n/* (1) COULEURS DU THEME $DEFAULT */\n$theme-bg: #e8e8e8;\n$theme-bg-primary: #ffffff;\n$theme-fg: #515151;\n$theme-fg-primary: #399ced;\n\n/* (2) COULEURS DE THEME $DARK */\n$dark-bg: #313541;\n$dark-bg-primary: #29282e;\n$dark-fg: #939393;\n$dark-fg-primary: #ffffff;\n\n\n/* [2] DIMENSIONS\n=========================================================*/\n/* (1) Layout de base */\n$menu-side-width: 15em;\n$header-height: 4em;\n" + ], + "mappings": "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", + "names": [] +} \ No newline at end of file diff --git a/css/global/expanded.css b/css/global/expanded.css new file mode 100644 index 0000000..2c6c1a2 --- /dev/null +++ b/css/global/expanded.css @@ -0,0 +1,223 @@ +/* [1] COULEURS +=========================================================*/ +/* (1) COULEURS DU THEME $DEFAULT */ +/* (2) COULEURS DE THEME $DARK */ +/* [2] DIMENSIONS +=========================================================*/ +/* (1) Layout de base */ +/* [1] Panneau d'ajout/suppression d'elements +=========================================================*/ +#WRAPPER > #CONTAINER section[data-panel-list] { + display: block; + position: relative; + border-radius: 3px; + border: 1px solid #ccc; + background-color: #fff; + font-size: .9em; + color: #000; + /* (1) Header (titre + ajout) */ + /* (2) Description (sous le header) */ + /* (3) Liste des elements */ + /* (5) Formulaire d'ajout d'un nouvel element */ +} + +#WRAPPER > #CONTAINER section[data-panel-list] > div[data-header] { + display: flex; + position: relative; + flex-direction: row; + flex-wrap: nowrap; + justify-content: space-between; + align-items: center; + padding: .5em .7em; + border-radius: 3px 3px 0 0; + border-bottom: 1px solid #ccc; + background-color: #f5f5f5; + box-shadow: inset 0 0 5px #eee; +} + +#WRAPPER > #CONTAINER section[data-panel-list] > div[data-header] > span, +#WRAPPER > #CONTAINER section[data-panel-list] > div[data-header] > button { + color: #333; + font-weight: bold; + line-height: 2em; +} + +#WRAPPER > #CONTAINER section[data-panel-list] > div[data-header] > button { + padding: .1em .7em; + border-radius: 3px; + border: 1px solid #777; + background: #ecf0f1; + transition: all .1s ease-in-out; + color: #777; +} + +#WRAPPER > #CONTAINER section[data-panel-list] > div[data-header] > button:hover { + background: #399ced; + border-color: #1484df; + color: #fff; +} + +#WRAPPER > #CONTAINER section[data-panel-list] > div[data-description] { + display: block; + position: relative; + border-bottom: 1px solid #ccc; + padding: .7em .7em; + color: #555; +} + +#WRAPPER > #CONTAINER section[data-panel-list] > ul[data-list] { + display: flex; + position: relative; + flex-direction: column; + justify-content: flex-start; + flex-wrap: nowrap; + margin: 0; + padding: 0; + list-style: none; + /* (4) Chaque element de la liste */ +} + +#WRAPPER > #CONTAINER section[data-panel-list] > ul[data-list] > li[data-element] { + display: flex; + flex-direction: row; + justify-content: space-between; + align-items: center; + flex-wrap: nowrap; + padding: 1em; + /* (4.1) Logo et type d'element */ + /* (4.2) Donnees descriptives */ + /* (4.3) Bouton de suppression */ +} + +#WRAPPER > #CONTAINER section[data-panel-list] > ul[data-list] > li[data-element]:not(:last-child) { + border-bottom: 1px solid #ccc; +} + +#WRAPPER > #CONTAINER section[data-panel-list] > ul[data-list] > li[data-element] > div:nth-child(1) { + display: flex; + width: 10em; + height: 6em; + flex-direction: column; + justify-content: flex-end; + align-items: center; + background-size: auto 50%; +} + +#WRAPPER > #CONTAINER section[data-panel-list] > ul[data-list] > li[data-element] > div:nth-child(1)[data-token] { + background: url("/f/svg/token/st/container/666666") center 1em no-repeat; +} + +#WRAPPER > #CONTAINER section[data-panel-list] > ul[data-list] > li[data-element] > div:nth-child(1)[data-token].active { + background-image: url("/f/svg/token/st/container/399ced"); +} + +#WRAPPER > #CONTAINER section[data-panel-list] > ul[data-list] > li[data-element] > div:nth-child(1)[data-user] { + background: url("/f/svg/user/st/container/666666") center 1em no-repeat; +} + +#WRAPPER > #CONTAINER section[data-panel-list] > ul[data-list] > li[data-element] > div:nth-child(1)[data-user].active { + background-image: url("/f/svg/user/st/container/399ced"); +} + +#WRAPPER > #CONTAINER section[data-panel-list] > ul[data-list] > li[data-element] > div:nth-child(1)[data-number] { + background: url("/f/svg/phone_number/st/container/666666") center 1em no-repeat; +} + +#WRAPPER > #CONTAINER section[data-panel-list] > ul[data-list] > li[data-element] > div:nth-child(1)[data-number].active { + background-image: url("/f/svg/phone_number/st/container/399ced"); +} + +#WRAPPER > #CONTAINER section[data-panel-list] > ul[data-list] > li[data-element] > div:nth-child(1) > span { + display: block; + padding: 0 .4em; + border-radius: 3px; + border: 1px solid #ddd; + font-size: .8em; + color: #555; + text-transform: uppercase; + font-weight: bold; +} + +#WRAPPER > #CONTAINER section[data-panel-list] > ul[data-list] > li[data-element] > div:nth-child(n+2) { + display: flex; + position: relative; + flex: 10em; + padding: 1em; + flex-direction: column; + justify-content: flex-start; + align-items: flex-start; + font-size: 1em; + color: #000; + font-weight: bold; +} + +#WRAPPER > #CONTAINER section[data-panel-list] > ul[data-list] > li[data-element] > div:nth-child(n+2) > span[data-prefix]:before { + content: attr(data-prefix) ": "; + font-weight: normal; +} + +#WRAPPER > #CONTAINER section[data-panel-list] > ul[data-list] > li[data-element] > button { + padding: .1em .7em; + height: 2em; + border-radius: 3px; + border: 1px solid #de2b08; + background: #fff; + color: #de2b08; + font-weight: bold; + transition: all .2s ease-in-out; +} + +#WRAPPER > #CONTAINER section[data-panel-list] > ul[data-list] > li[data-element] > button:hover { + background: #de2b08; + color: #fff; +} + +#WRAPPER > #CONTAINER section[data-panel-list] > div[data-add] { + display: none; + position: relative; + padding: 1em; + border-bottom: 1px solid #ccc; + background-color: #ecf0f1; + /* (5.1) Description du champ de texte */ + /* (5.2) Champs de texte */ + /* (5.3) Bouton de creation animation de @hover*/ +} + +#WRAPPER > #CONTAINER section[data-panel-list] > div[data-add].active { + display: block; +} + +#WRAPPER > #CONTAINER section[data-panel-list] > div[data-add] > .label { + display: inline-block; + width: 18em; + padding-right: 2em; + text-align: right; + color: #3b494c; +} + +#WRAPPER > #CONTAINER section[data-panel-list] > div[data-add] > input[type='text'], +#WRAPPER > #CONTAINER section[data-panel-list] > div[data-add] > input[type='email'], +#WRAPPER > #CONTAINER section[data-panel-list] > div[data-add] > input[type='password'] { + margin: 1em 0; + padding: .5em .7em; + border-radius: 3px; + border: 1px solid #ddd; + background-color: #fff; + color: #000; + font-weight: normal; +} + +#WRAPPER > #CONTAINER section[data-panel-list] > div[data-add] > input[type='text']:focus, +#WRAPPER > #CONTAINER section[data-panel-list] > div[data-add] > input[type='email']:focus, +#WRAPPER > #CONTAINER section[data-panel-list] > div[data-add] > input[type='password']:focus { + border-color: #399ced; + box-shadow: inset 0 0 2px #ddd; +} + +#WRAPPER > #CONTAINER section[data-panel-list] > div[data-add] > input[type='submit']:hover { + background: #399ced; + border-color: #1484df; + color: #fff; +} + +/*# sourceMappingURL=data:application/json;base64,ewoJInZlcnNpb24iOiAzLAoJImZpbGUiOiAiZXhwYW5kZWQuY3NzIiwKCSJzb3VyY2VzIjogWwoJCSIuLi9nbG9iYWwuc2NzcyIsCgkJIi4uL2NvbnN0YW50cy5zY3NzIgoJXSwKCSJzb3VyY2VzQ29udGVudCI6IFsKCQkiQGltcG9ydCAnY29uc3RhbnRzJztcblxuXG4vKiBbMV0gUGFubmVhdSBkJ2Fqb3V0L3N1cHByZXNzaW9uIGQnZWxlbWVudHNcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXG4jV1JBUFBFUiA+ICNDT05UQUlORVIgc2VjdGlvbltkYXRhLXBhbmVsLWxpc3Rde1xuXHRkaXNwbGF5OiBibG9jaztcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdGJvcmRlci1yYWRpdXM6IDNweDtcblx0Ym9yZGVyOiAxcHggc29saWQgI2NjYztcblxuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuXG5cdGZvbnQtc2l6ZTogLjllbTtcblx0Y29sb3I6ICMwMDA7XG5cblxuXHQvKiAoMSkgSGVhZGVyICh0aXRyZSArIGFqb3V0KSAqL1xuXHQmID4gZGl2W2RhdGEtaGVhZGVyXXtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuXHRcdC8vIGZsZXggcHJvcGVydGllc1xuXHRcdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdFx0ZmxleC13cmFwOiBub3dyYXA7XG5cdFx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cblx0XHRwYWRkaW5nOiAuNWVtIC43ZW07XG5cblx0XHRib3JkZXItcmFkaXVzOiAzcHggM3B4IDAgMDtcblx0XHRib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYztcblxuXHRcdGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7XG5cdFx0Ym94LXNoYWRvdzogaW5zZXQgMCAwIDVweCAjZWVlO1xuXG5cdFx0Ly8gTGliZWxsZSBkdSBwYW5lbFxuXHRcdCYgPiBzcGFuLFxuXHRcdCYgPiBidXR0b257XG5cdFx0XHRjb2xvcjogIzMzMztcblx0XHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRcdFx0bGluZS1oZWlnaHQ6IDJlbTtcblx0XHR9XG5cblx0XHQvLyBCb3V0b24gYWpvdXRlclxuXHRcdCYgPiBidXR0b257XG5cdFx0XHRwYWRkaW5nOiAuMWVtIC43ZW07XG5cblx0XHRcdGJvcmRlci1yYWRpdXM6IDNweDtcblx0XHRcdGJvcmRlcjogMXB4IHNvbGlkICM3Nzc7XG5cblx0XHRcdGJhY2tncm91bmQ6ICNlY2YwZjE7XG5cblx0XHRcdHRyYW5zaXRpb246IGFsbCAuMXMgZWFzZS1pbi1vdXQ7XG5cblx0XHRcdGNvbG9yOiAjNzc3O1xuXG5cdFx0XHQvLyBBbmltYXRpb24gZGUgQGhvdmVyXG5cdFx0XHQmOmhvdmVye1xuXHRcdFx0XHRiYWNrZ3JvdW5kOiAkdGhlbWUtZmctcHJpbWFyeTtcblx0XHRcdFx0Ym9yZGVyLWNvbG9yOiBkYXJrZW4oJHRoZW1lLWZnLXByaW1hcnksIDEwKTtcblx0XHRcdFx0Y29sb3I6ICNmZmY7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdH1cblxuXG5cdC8qICgyKSBEZXNjcmlwdGlvbiAoc291cyBsZSBoZWFkZXIpICovXG5cdCYgPiBkaXZbZGF0YS1kZXNjcmlwdGlvbl17XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdFx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7XG5cblx0XHRwYWRkaW5nOiAuN2VtIC43ZW07XG5cblx0XHRjb2xvcjogIzU1NTtcblx0fVxuXG5cblxuXHQvKiAoMykgTGlzdGUgZGVzIGVsZW1lbnRzICovXG5cdCYgPiB1bFtkYXRhLWxpc3Rde1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdFx0Ly8gZmxleCBwcm9wZXJ0aWVzXG5cdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG5cdFx0ZmxleC13cmFwOiBub3dyYXA7XG5cblx0XHRtYXJnaW46IDA7XG5cdFx0cGFkZGluZzogMDtcblxuXHRcdGxpc3Qtc3R5bGU6IG5vbmU7XG5cblxuXHRcdC8qICg0KSBDaGFxdWUgZWxlbWVudCBkZSBsYSBsaXN0ZSAqL1xuXHRcdCYgPiBsaVtkYXRhLWVsZW1lbnRde1xuXHRcdFx0ZGlzcGxheTogZmxleDtcblxuXHRcdFx0Ly8gZmxleCBwcm9wZXJ0aWVzXG5cdFx0XHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHRcdFx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRcdGZsZXgtd3JhcDogbm93cmFwO1xuXG5cdFx0XHRwYWRkaW5nOiAxZW07XG5cblx0XHRcdC8vIHJlYm9yZCBlbiBiYXMgc2F1ZiBkZXJuaWVyXG5cdFx0XHQmOm5vdCg6bGFzdC1jaGlsZCl7XG5cdFx0XHRcdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjO1xuXHRcdFx0fVxuXG5cdFx0XHQvKiAoNC4xKSBMb2dvIGV0IHR5cGUgZCdlbGVtZW50ICovXG5cdFx0XHQmID4gZGl2Om50aC1jaGlsZCgxKXtcblx0XHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdFx0XHR3aWR0aDogMTBlbTtcblx0XHRcdFx0XHRoZWlnaHQ6IDZlbTtcblxuXHRcdFx0XHQvLyBmbGV4IHByb3BlcnRpZXNcblx0XHRcdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0XHRcdFx0anVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblx0XHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblxuXHRcdFx0XHQvLyBJbWFnZSBwb3VyIHRva2VuXG5cdFx0XHRcdCZbZGF0YS10b2tlbl17XG5cdFx0XHRcdFx0YmFja2dyb3VuZDogdXJsKCcvZi9zdmcvdG9rZW4vc3QvY29udGFpbmVyLzY2NjY2NicpIGNlbnRlciAxZW0gbm8tcmVwZWF0O1xuXHRcdFx0XHRcdC8vIFNpIGxlIHRva2VuIGVzdCBhY3RpZlxuXHRcdFx0XHRcdCYuYWN0aXZle1xuXHRcdFx0XHRcdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKCcvZi9zdmcvdG9rZW4vc3QvY29udGFpbmVyLzM5OWNlZCcpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cblx0XHRcdFx0Ly8gSW1hZ2UgcG91ciB1dGlsaXNhdGV1clxuXHRcdFx0XHQmW2RhdGEtdXNlcl17XG5cdFx0XHRcdFx0YmFja2dyb3VuZDogdXJsKCcvZi9zdmcvdXNlci9zdC9jb250YWluZXIvNjY2NjY2JykgY2VudGVyIDFlbSBuby1yZXBlYXQ7XG5cdFx0XHRcdFx0Ly8gU2kgbGUgdG9rZW4gZXN0IGFjdGlmXG5cdFx0XHRcdFx0Ji5hY3RpdmV7XG5cdFx0XHRcdFx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy9mL3N2Zy91c2VyL3N0L2NvbnRhaW5lci8zOTljZWQnKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblxuXG5cdFx0XHRcdC8vIEltYWdlIHBvdXIgdXRpbGlzYXRldXJcblx0XHRcdFx0JltkYXRhLW51bWJlcl17XG5cdFx0XHRcdFx0YmFja2dyb3VuZDogdXJsKCcvZi9zdmcvcGhvbmVfbnVtYmVyL3N0L2NvbnRhaW5lci82NjY2NjYnKSBjZW50ZXIgMWVtIG5vLXJlcGVhdDtcblx0XHRcdFx0XHQvLyBTaSBsZSB0b2tlbiBlc3QgYWN0aWZcblx0XHRcdFx0XHQmLmFjdGl2ZXtcblx0XHRcdFx0XHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybCgnL2Yvc3ZnL3Bob25lX251bWJlci9zdC9jb250YWluZXIvMzk5Y2VkJyk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cblx0XHRcdFx0YmFja2dyb3VuZC1zaXplOiBhdXRvIDUwJTtcblxuXG5cblx0XHRcdFx0Ly8gVGV4dGUgcG91ciBsZSB0eXBlIGQnZWxlbWVudFxuXHRcdFx0XHQmID4gc3Bhbntcblx0XHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblxuXHRcdFx0XHRcdHBhZGRpbmc6IDAgLjRlbTtcblxuXHRcdFx0XHRcdGJvcmRlci1yYWRpdXM6IDNweDtcblx0XHRcdFx0XHRib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuXG5cdFx0XHRcdFx0Zm9udC1zaXplOiAuOGVtO1xuXHRcdFx0XHRcdGNvbG9yOiAjNTU1O1xuXHRcdFx0XHRcdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdFx0XHRcdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdFx0XHRcdH1cblxuXHRcdFx0fVxuXG5cdFx0XHQvKiAoNC4yKSBEb25uZWVzIGRlc2NyaXB0aXZlcyAqL1xuXHRcdFx0JiA+IGRpdjpudGgtY2hpbGQobisyKXtcblx0XHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdFx0XHRcdGZsZXg6IDEwZW07XG5cblx0XHRcdFx0cGFkZGluZzogMWVtO1xuXG5cdFx0XHRcdC8vIGZsZXggcHJvcGVydGllc1xuXHRcdFx0XHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXHRcdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG5cdFx0XHRcdGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuXG5cdFx0XHRcdGZvbnQtc2l6ZTogMWVtO1xuXHRcdFx0XHRjb2xvcjogIzAwMDtcblx0XHRcdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cblx0XHRcdFx0Ly8gT24gcHJlZml4ZSBjaGFxdWUgZG9ubmVlXG5cdFx0XHRcdCYgPiBzcGFuW2RhdGEtcHJlZml4XTpiZWZvcmV7XG5cdFx0XHRcdFx0Y29udGVudDogYXR0cihkYXRhLXByZWZpeCkgXCI6IFwiO1xuXHRcdFx0XHRcdGZvbnQtd2VpZ2h0OiBub3JtYWw7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0LyogKDQuMykgQm91dG9uIGRlIHN1cHByZXNzaW9uICovXG5cdFx0XHQmID4gYnV0dG9ue1xuXHRcdFx0XHRwYWRkaW5nOiAuMWVtIC43ZW07XG5cdFx0XHRcdFx0aGVpZ2h0OiAyZW07XG5cblx0XHRcdFx0Ym9yZGVyLXJhZGl1czogM3B4O1xuXHRcdFx0XHRib3JkZXI6IDFweCBzb2xpZCAjZGUyYjA4O1xuXG5cdFx0XHRcdGJhY2tncm91bmQ6ICNmZmY7XG5cblx0XHRcdFx0Y29sb3I6ICNkZTJiMDg7XG5cdFx0XHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xuXG5cdFx0XHRcdHRyYW5zaXRpb246IGFsbCAuMnMgZWFzZS1pbi1vdXQ7XG5cblx0XHRcdFx0Ly8gQW5pbWF0aW9uIGRlIEBob3ZlclxuXHRcdFx0XHQmOmhvdmVye1xuXHRcdFx0XHRcdGJhY2tncm91bmQ6ICNkZTJiMDg7XG5cdFx0XHRcdFx0Y29sb3I6ICNmZmY7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdH1cblx0fVxuXG5cblx0LyogKDUpIEZvcm11bGFpcmUgZCdham91dCBkJ3VuIG5vdXZlbCBlbGVtZW50ICovXG5cdCYgPiBkaXZbZGF0YS1hZGRde1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cblx0XHQvLyBBZmZpY2hhZ2UgcXVhbmQgLmFjdGl2ZVxuXHRcdCYuYWN0aXZle1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0fVxuXG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdFx0cGFkZGluZzogMWVtO1xuXG5cdFx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7XG5cblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZWNmMGYxO1xuXG5cdFx0Ly8gZm9udC13ZWlnaHQ6IGJvbGQ7XG5cblx0XHQvKiAoNS4xKSBEZXNjcmlwdGlvbiBkdSBjaGFtcCBkZSB0ZXh0ZSAqL1xuXHRcdCYgPiAubGFiZWx7XG5cdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0XHR3aWR0aDogMThlbTtcblx0XHRcdHBhZGRpbmctcmlnaHQ6IDJlbTtcblx0XHRcdHRleHQtYWxpZ246IHJpZ2h0O1xuXHRcdFx0Y29sb3I6ICMzYjQ5NGM7XG5cdFx0fVxuXG5cblx0XHQvKiAoNS4yKSBDaGFtcHMgZGUgdGV4dGUgKi9cblx0XHQmID4gaW5wdXRbdHlwZT0ndGV4dCddLFxuXHRcdCYgPiBpbnB1dFt0eXBlPSdlbWFpbCddLFxuXHRcdCYgPiBpbnB1dFt0eXBlPSdwYXNzd29yZCdde1xuXHRcdFx0bWFyZ2luOiAxZW0gMDtcblx0XHRcdHBhZGRpbmc6IC41ZW0gLjdlbTtcblxuXHRcdFx0Ym9yZGVyLXJhZGl1czogM3B4O1xuXHRcdFx0Ym9yZGVyOiAxcHggc29saWQgI2RkZDtcblxuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcblxuXHRcdFx0Y29sb3I6ICMwMDA7XG5cdFx0XHRmb250LXdlaWdodDogbm9ybWFsO1xuXG5cdFx0XHQvLyBBbmltYXRpb24gZGUgQGZvY3VzXG5cdFx0XHQmOmZvY3Vze1xuXHRcdFx0XHRib3JkZXItY29sb3I6ICR0aGVtZS1mZy1wcmltYXJ5O1xuXHRcdFx0XHRib3gtc2hhZG93OiBpbnNldCAwIDAgMnB4ICNkZGQ7XG5cdFx0XHR9XG5cdFx0fVxuXG5cblx0XHQvKiAoNS4zKSBCb3V0b24gZGUgY3JlYXRpb24gYW5pbWF0aW9uIGRlIEBob3ZlciovXG5cdFx0JiA+IGlucHV0W3R5cGU9J3N1Ym1pdCddOmhvdmVye1xuXHRcdFx0YmFja2dyb3VuZDogJHRoZW1lLWZnLXByaW1hcnk7XG5cdFx0XHRib3JkZXItY29sb3I6IGRhcmtlbigkdGhlbWUtZmctcHJpbWFyeSwgMTApO1xuXHRcdFx0Y29sb3I6ICNmZmY7XG5cdFx0fVxuXHR9XG5cbn1cbiIsCgkJIi8qIFsxXSBDT1VMRVVSU1xuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cbi8qICgxKSBDT1VMRVVSUyBEVSBUSEVNRSAkREVGQVVMVCAqL1xuJHRoZW1lLWJnOiAgICAgICAgICNlOGU4ZTg7XG4kdGhlbWUtYmctcHJpbWFyeTogI2ZmZmZmZjtcbiR0aGVtZS1mZzogICAgICAgICAjNTE1MTUxO1xuJHRoZW1lLWZnLXByaW1hcnk6ICMzOTljZWQ7XG5cbi8qICgyKSBDT1VMRVVSUyBERSBUSEVNRSAkREFSSyAqL1xuJGRhcmstYmc6ICAgICAgICAgIzMxMzU0MTtcbiRkYXJrLWJnLXByaW1hcnk6ICMyOTI4MmU7XG4kZGFyay1mZzogICAgICAgICAjOTM5MzkzO1xuJGRhcmstZmctcHJpbWFyeTogI2ZmZmZmZjtcblxuXG4vKiBbMl0gRElNRU5TSU9OU1xuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cbi8qICgxKSBMYXlvdXQgZGUgYmFzZSAqL1xuJG1lbnUtc2lkZS13aWR0aDogMTVlbTtcbiRoZWFkZXItaGVpZ2h0OiAgIDRlbTtcbiIKCV0sCgkibWFwcGluZ3MiOiAiQUNBQTsyREFDMkQ7QUFDM0Qsb0NBQW9DO0FBTXBDLGlDQUFpQztBQU9qQzsyREFDMkQ7QUFDM0Qsd0JBQXdCO0FEZHhCOzJEQUMyRDtBQUMzRCxRQUFRLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQSxBQUFBLGVBQUMsQUFBQSxFQUFnQjtFQUM3QyxPQUFPLEVBQUUsS0FBTTtFQUNmLFFBQVEsRUFBRSxRQUFTO0VBRW5CLGFBQWEsRUFBRSxHQUFJO0VBQ25CLE1BQU0sRUFBRSxjQUFlO0VBRXZCLGdCQUFnQixFQUFFLElBQUs7RUFFdkIsU0FBUyxFQUFFLElBQUs7RUFDaEIsS0FBSyxFQUFFLElBQUs7RUFHWixnQ0FBZ0M7RUFtRGhDLHNDQUFzQztFQWN0Qyw0QkFBNEI7RUFpSjVCLGdEQUFnRDtDQTREaEQ7O0FBM1JELFFBQVEsR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFBLEFBQUEsZUFBQyxBQUFBLElBY3pCLEdBQUcsQ0FBQSxBQUFBLFdBQUMsQUFBQSxFQUFZO0VBQ25CLE9BQU8sRUFBRSxJQUFLO0VBQ2QsUUFBUSxFQUFFLFFBQVM7RUFHbkIsY0FBYyxFQUFFLEdBQUk7RUFDcEIsU0FBUyxFQUFFLE1BQU87RUFDbEIsZUFBZSxFQUFFLGFBQWM7RUFDL0IsV0FB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 */ \ No newline at end of file diff --git a/css/global/expanded.css.map b/css/global/expanded.css.map new file mode 100644 index 0000000..14df5e7 --- /dev/null +++ b/css/global/expanded.css.map @@ -0,0 +1,14 @@ +{ + "version": 3, + "file": "expanded.css", + "sources": [ + "../global.scss", + "../constants.scss" + ], + "sourcesContent": [ + "@import 'constants';\n\n\n/* [1] Panneau d'ajout/suppression d'elements\n=========================================================*/\n#WRAPPER > #CONTAINER section[data-panel-list]{\n\tdisplay: block;\n\tposition: relative;\n\n\tborder-radius: 3px;\n\tborder: 1px solid #ccc;\n\n\tbackground-color: #fff;\n\n\tfont-size: .9em;\n\tcolor: #000;\n\n\n\t/* (1) Header (titre + ajout) */\n\t& > div[data-header]{\n\t\tdisplay: flex;\n\t\tposition: relative;\n\n\t\t// flex properties\n\t\tflex-direction: row;\n\t\tflex-wrap: nowrap;\n\t\tjustify-content: space-between;\n\t\talign-items: center;\n\n\t\tpadding: .5em .7em;\n\n\t\tborder-radius: 3px 3px 0 0;\n\t\tborder-bottom: 1px solid #ccc;\n\n\t\tbackground-color: #f5f5f5;\n\t\tbox-shadow: inset 0 0 5px #eee;\n\n\t\t// Libelle du panel\n\t\t& > span,\n\t\t& > button{\n\t\t\tcolor: #333;\n\t\t\tfont-weight: bold;\n\t\t\tline-height: 2em;\n\t\t}\n\n\t\t// Bouton ajouter\n\t\t& > button{\n\t\t\tpadding: .1em .7em;\n\n\t\t\tborder-radius: 3px;\n\t\t\tborder: 1px solid #777;\n\n\t\t\tbackground: #ecf0f1;\n\n\t\t\ttransition: all .1s ease-in-out;\n\n\t\t\tcolor: #777;\n\n\t\t\t// Animation de @hover\n\t\t\t&:hover{\n\t\t\t\tbackground: $theme-fg-primary;\n\t\t\t\tborder-color: darken($theme-fg-primary, 10);\n\t\t\t\tcolor: #fff;\n\t\t\t}\n\t\t}\n\n\t}\n\n\n\t/* (2) Description (sous le header) */\n\t& > div[data-description]{\n\t\tdisplay: block;\n\t\tposition: relative;\n\n\t\tborder-bottom: 1px solid #ccc;\n\n\t\tpadding: .7em .7em;\n\n\t\tcolor: #555;\n\t}\n\n\n\n\t/* (3) Liste des elements */\n\t& > ul[data-list]{\n\t\tdisplay: flex;\n\t\tposition: relative;\n\n\t\t// flex properties\n\t\tflex-direction: column;\n\t\tjustify-content: flex-start;\n\t\tflex-wrap: nowrap;\n\n\t\tmargin: 0;\n\t\tpadding: 0;\n\n\t\tlist-style: none;\n\n\n\t\t/* (4) Chaque element de la liste */\n\t\t& > li[data-element]{\n\t\t\tdisplay: flex;\n\n\t\t\t// flex properties\n\t\t\tflex-direction: row;\n\t\t\tjustify-content: space-between;\n\t\t\talign-items: center;\n\t\t\tflex-wrap: nowrap;\n\n\t\t\tpadding: 1em;\n\n\t\t\t// rebord en bas sauf dernier\n\t\t\t&:not(:last-child){\n\t\t\t\tborder-bottom: 1px solid #ccc;\n\t\t\t}\n\n\t\t\t/* (4.1) Logo et type d'element */\n\t\t\t& > div:nth-child(1){\n\t\t\t\tdisplay: flex;\n\t\t\t\t\twidth: 10em;\n\t\t\t\t\theight: 6em;\n\n\t\t\t\t// flex properties\n\t\t\t\tflex-direction: column;\n\t\t\t\tjustify-content: flex-end;\n\t\t\t\talign-items: center;\n\n\t\t\t\t// Image pour token\n\t\t\t\t&[data-token]{\n\t\t\t\t\tbackground: url('/f/svg/token/st/container/666666') center 1em no-repeat;\n\t\t\t\t\t// Si le token est actif\n\t\t\t\t\t&.active{\n\t\t\t\t\t\tbackground-image: url('/f/svg/token/st/container/399ced');\n\t\t\t\t\t}\n\t\t\t\t}\n\n\n\t\t\t\t// Image pour utilisateur\n\t\t\t\t&[data-user]{\n\t\t\t\t\tbackground: url('/f/svg/user/st/container/666666') center 1em no-repeat;\n\t\t\t\t\t// Si le token est actif\n\t\t\t\t\t&.active{\n\t\t\t\t\t\tbackground-image: url('/f/svg/user/st/container/399ced');\n\t\t\t\t\t}\n\t\t\t\t}\n\n\n\t\t\t\t// Image pour utilisateur\n\t\t\t\t&[data-number]{\n\t\t\t\t\tbackground: url('/f/svg/phone_number/st/container/666666') center 1em no-repeat;\n\t\t\t\t\t// Si le token est actif\n\t\t\t\t\t&.active{\n\t\t\t\t\t\tbackground-image: url('/f/svg/phone_number/st/container/399ced');\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tbackground-size: auto 50%;\n\n\n\n\t\t\t\t// Texte pour le type d'element\n\t\t\t\t& > span{\n\t\t\t\t\tdisplay: block;\n\n\t\t\t\t\tpadding: 0 .4em;\n\n\t\t\t\t\tborder-radius: 3px;\n\t\t\t\t\tborder: 1px solid #ddd;\n\n\t\t\t\t\tfont-size: .8em;\n\t\t\t\t\tcolor: #555;\n\t\t\t\t\ttext-transform: uppercase;\n\t\t\t\t\tfont-weight: bold;\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t/* (4.2) Donnees descriptives */\n\t\t\t& > div:nth-child(n+2){\n\t\t\t\tdisplay: flex;\n\t\t\t\tposition: relative;\n\n\t\t\t\tflex: 10em;\n\n\t\t\t\tpadding: 1em;\n\n\t\t\t\t// flex properties\n\t\t\t\tflex-direction: column;\n\t\t\t\tjustify-content: flex-start;\n\t\t\t\talign-items: flex-start;\n\n\t\t\t\tfont-size: 1em;\n\t\t\t\tcolor: #000;\n\t\t\t\tfont-weight: bold;\n\n\t\t\t\t// On prefixe chaque donnee\n\t\t\t\t& > span[data-prefix]:before{\n\t\t\t\t\tcontent: attr(data-prefix) \": \";\n\t\t\t\t\tfont-weight: normal;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t/* (4.3) Bouton de suppression */\n\t\t\t& > button{\n\t\t\t\tpadding: .1em .7em;\n\t\t\t\t\theight: 2em;\n\n\t\t\t\tborder-radius: 3px;\n\t\t\t\tborder: 1px solid #de2b08;\n\n\t\t\t\tbackground: #fff;\n\n\t\t\t\tcolor: #de2b08;\n\t\t\t\tfont-weight: bold;\n\n\t\t\t\ttransition: all .2s ease-in-out;\n\n\t\t\t\t// Animation de @hover\n\t\t\t\t&:hover{\n\t\t\t\t\tbackground: #de2b08;\n\t\t\t\t\tcolor: #fff;\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\t}\n\n\n\t/* (5) Formulaire d'ajout d'un nouvel element */\n\t& > div[data-add]{\n\t\tdisplay: none;\n\n\t\t// Affichage quand .active\n\t\t&.active{\n\t\t\tdisplay: block;\n\t\t}\n\n\t\tposition: relative;\n\n\t\tpadding: 1em;\n\n\t\tborder-bottom: 1px solid #ccc;\n\n\t\tbackground-color: #ecf0f1;\n\n\t\t// font-weight: bold;\n\n\t\t/* (5.1) Description du champ de texte */\n\t\t& > .label{\n\t\t\tdisplay: inline-block;\n\t\t\twidth: 18em;\n\t\t\tpadding-right: 2em;\n\t\t\ttext-align: right;\n\t\t\tcolor: #3b494c;\n\t\t}\n\n\n\t\t/* (5.2) Champs de texte */\n\t\t& > input[type='text'],\n\t\t& > input[type='email'],\n\t\t& > input[type='password']{\n\t\t\tmargin: 1em 0;\n\t\t\tpadding: .5em .7em;\n\n\t\t\tborder-radius: 3px;\n\t\t\tborder: 1px solid #ddd;\n\n\t\t\tbackground-color: #fff;\n\n\t\t\tcolor: #000;\n\t\t\tfont-weight: normal;\n\n\t\t\t// Animation de @focus\n\t\t\t&:focus{\n\t\t\t\tborder-color: $theme-fg-primary;\n\t\t\t\tbox-shadow: inset 0 0 2px #ddd;\n\t\t\t}\n\t\t}\n\n\n\t\t/* (5.3) Bouton de creation animation de @hover*/\n\t\t& > input[type='submit']:hover{\n\t\t\tbackground: $theme-fg-primary;\n\t\t\tborder-color: darken($theme-fg-primary, 10);\n\t\t\tcolor: #fff;\n\t\t}\n\t}\n\n}\n", + "/* [1] COULEURS\n=========================================================*/\n/* (1) COULEURS DU THEME $DEFAULT */\n$theme-bg: #e8e8e8;\n$theme-bg-primary: #ffffff;\n$theme-fg: #515151;\n$theme-fg-primary: #399ced;\n\n/* (2) COULEURS DE THEME $DARK */\n$dark-bg: #313541;\n$dark-bg-primary: #29282e;\n$dark-fg: #939393;\n$dark-fg-primary: #ffffff;\n\n\n/* [2] DIMENSIONS\n=========================================================*/\n/* (1) Layout de base */\n$menu-side-width: 15em;\n$header-height: 4em;\n" + ], + "mappings": "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", + "names": [] +} \ No newline at end of file diff --git a/css/global/min.css b/css/global/min.css new file mode 100644 index 0000000..011326a --- /dev/null +++ b/css/global/min.css @@ -0,0 +1,3 @@ +#WRAPPER>#CONTAINER section[data-panel-list]{display:block;position:relative;border-radius:3px;border:1px solid #ccc;background-color:#fff;font-size:.9em;color:#000}#WRAPPER>#CONTAINER section[data-panel-list]>div[data-header]{display:flex;position:relative;flex-direction:row;flex-wrap:nowrap;justify-content:space-between;align-items:center;padding:.5em .7em;border-radius:3px 3px 0 0;border-bottom:1px solid #ccc;background-color:#f5f5f5;box-shadow:inset 0 0 5px #eee}#WRAPPER>#CONTAINER section[data-panel-list]>div[data-header]>span,#WRAPPER>#CONTAINER section[data-panel-list]>div[data-header]>button{color:#333;font-weight:bold;line-height:2em}#WRAPPER>#CONTAINER section[data-panel-list]>div[data-header]>button{padding:.1em .7em;border-radius:3px;border:1px solid #777;background:#ecf0f1;transition:all .1s ease-in-out;color:#777}#WRAPPER>#CONTAINER section[data-panel-list]>div[data-header]>button:hover{background:#399ced;border-color:#1484df;color:#fff}#WRAPPER>#CONTAINER section[data-panel-list]>div[data-description]{display:block;position:relative;border-bottom:1px solid #ccc;padding:.7em .7em;color:#555}#WRAPPER>#CONTAINER section[data-panel-list]>ul[data-list]{display:flex;position:relative;flex-direction:column;justify-content:flex-start;flex-wrap:nowrap;margin:0;padding:0;list-style:none}#WRAPPER>#CONTAINER section[data-panel-list]>ul[data-list]>li[data-element]{display:flex;flex-direction:row;justify-content:space-between;align-items:center;flex-wrap:nowrap;padding:1em}#WRAPPER>#CONTAINER section[data-panel-list]>ul[data-list]>li[data-element]:not(:last-child){border-bottom:1px solid #ccc}#WRAPPER>#CONTAINER section[data-panel-list]>ul[data-list]>li[data-element]>div:nth-child(1){display:flex;width:10em;height:6em;flex-direction:column;justify-content:flex-end;align-items:center;background-size:auto 50%}#WRAPPER>#CONTAINER section[data-panel-list]>ul[data-list]>li[data-element]>div:nth-child(1)[data-token]{background:url("/f/svg/token/st/container/666666") center 1em no-repeat}#WRAPPER>#CONTAINER section[data-panel-list]>ul[data-list]>li[data-element]>div:nth-child(1)[data-token].active{background-image:url("/f/svg/token/st/container/399ced")}#WRAPPER>#CONTAINER section[data-panel-list]>ul[data-list]>li[data-element]>div:nth-child(1)[data-user]{background:url("/f/svg/user/st/container/666666") center 1em no-repeat}#WRAPPER>#CONTAINER section[data-panel-list]>ul[data-list]>li[data-element]>div:nth-child(1)[data-user].active{background-image:url("/f/svg/user/st/container/399ced")}#WRAPPER>#CONTAINER section[data-panel-list]>ul[data-list]>li[data-element]>div:nth-child(1)[data-number]{background:url("/f/svg/phone_number/st/container/666666") center 1em no-repeat}#WRAPPER>#CONTAINER section[data-panel-list]>ul[data-list]>li[data-element]>div:nth-child(1)[data-number].active{background-image:url("/f/svg/phone_number/st/container/399ced")}#WRAPPER>#CONTAINER section[data-panel-list]>ul[data-list]>li[data-element]>div:nth-child(1)>span{display:block;padding:0 .4em;border-radius:3px;border:1px solid #ddd;font-size:.8em;color:#555;text-transform:uppercase;font-weight:bold}#WRAPPER>#CONTAINER section[data-panel-list]>ul[data-list]>li[data-element]>div:nth-child(n+2){display:flex;position:relative;flex:10em;padding:1em;flex-direction:column;justify-content:flex-start;align-items:flex-start;font-size:1em;color:#000;font-weight:bold}#WRAPPER>#CONTAINER section[data-panel-list]>ul[data-list]>li[data-element]>div:nth-child(n+2)>span[data-prefix]:before{content:attr(data-prefix) ": ";font-weight:normal}#WRAPPER>#CONTAINER section[data-panel-list]>ul[data-list]>li[data-element]>button{padding:.1em .7em;height:2em;border-radius:3px;border:1px solid #de2b08;background:#fff;color:#de2b08;font-weight:bold;transition:all .2s ease-in-out}#WRAPPER>#CONTAINER section[data-panel-list]>ul[data-list]>li[data-element]>button:hover{background:#de2b08;color:#fff}#WRAPPER>#CONTAINER section[data-panel-list]>div[data-add]{display:none;position:relative;padding:1em;border-bottom:1px solid #ccc;background-color:#ecf0f1}#WRAPPER>#CONTAINER section[data-panel-list]>div[data-add].active{display:block}#WRAPPER>#CONTAINER section[data-panel-list]>div[data-add]>.label{display:inline-block;width:18em;padding-right:2em;text-align:right;color:#3b494c}#WRAPPER>#CONTAINER section[data-panel-list]>div[data-add]>input[type='text'],#WRAPPER>#CONTAINER section[data-panel-list]>div[data-add]>input[type='email'],#WRAPPER>#CONTAINER section[data-panel-list]>div[data-add]>input[type='password']{margin:1em 0;padding:.5em .7em;border-radius:3px;border:1px solid #ddd;background-color:#fff;color:#000;font-weight:normal}#WRAPPER>#CONTAINER section[data-panel-list]>div[data-add]>input[type='text']:focus,#WRAPPER>#CONTAINER section[data-panel-list]>div[data-add]>input[type='email']:focus,#WRAPPER>#CONTAINER section[data-panel-list]>div[data-add]>input[type='password']:focus{border-color:#399ced;box-shadow:inset 0 0 2px #ddd}#WRAPPER>#CONTAINER section[data-panel-list]>div[data-add]>input[type='submit']:hover{background:#399ced;border-color:#1484df;color:#fff} + +/*# sourceMappingURL=data:application/json;base64,ewoJInZlcnNpb24iOiAzLAoJImZpbGUiOiAibWluLmNzcyIsCgkic291cmNlcyI6IFsKCQkiLi4vZ2xvYmFsLnNjc3MiLAoJCSIuLi9jb25zdGFudHMuc2NzcyIKCV0sCgkic291cmNlc0NvbnRlbnQiOiBbCgkJIkBpbXBvcnQgJ2NvbnN0YW50cyc7XG5cblxuLyogWzFdIFBhbm5lYXUgZCdham91dC9zdXBwcmVzc2lvbiBkJ2VsZW1lbnRzXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xuI1dSQVBQRVIgPiAjQ09OVEFJTkVSIHNlY3Rpb25bZGF0YS1wYW5lbC1saXN0XXtcblx0ZGlzcGxheTogYmxvY2s7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuXHRib3JkZXItcmFkaXVzOiAzcHg7XG5cdGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG5cblx0YmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcblxuXHRmb250LXNpemU6IC45ZW07XG5cdGNvbG9yOiAjMDAwO1xuXG5cblx0LyogKDEpIEhlYWRlciAodGl0cmUgKyBham91dCkgKi9cblx0JiA+IGRpdltkYXRhLWhlYWRlcl17XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cblx0XHQvLyBmbGV4IHByb3BlcnRpZXNcblx0XHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHRcdGZsZXgtd3JhcDogbm93cmFwO1xuXHRcdGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXG5cdFx0cGFkZGluZzogLjVlbSAuN2VtO1xuXG5cdFx0Ym9yZGVyLXJhZGl1czogM3B4IDNweCAwIDA7XG5cdFx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7XG5cblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1O1xuXHRcdGJveC1zaGFkb3c6IGluc2V0IDAgMCA1cHggI2VlZTtcblxuXHRcdC8vIExpYmVsbGUgZHUgcGFuZWxcblx0XHQmID4gc3Bhbixcblx0XHQmID4gYnV0dG9ue1xuXHRcdFx0Y29sb3I6ICMzMzM7XG5cdFx0XHRmb250LXdlaWdodDogYm9sZDtcblx0XHRcdGxpbmUtaGVpZ2h0OiAyZW07XG5cdFx0fVxuXG5cdFx0Ly8gQm91dG9uIGFqb3V0ZXJcblx0XHQmID4gYnV0dG9ue1xuXHRcdFx0cGFkZGluZzogLjFlbSAuN2VtO1xuXG5cdFx0XHRib3JkZXItcmFkaXVzOiAzcHg7XG5cdFx0XHRib3JkZXI6IDFweCBzb2xpZCAjNzc3O1xuXG5cdFx0XHRiYWNrZ3JvdW5kOiAjZWNmMGYxO1xuXG5cdFx0XHR0cmFuc2l0aW9uOiBhbGwgLjFzIGVhc2UtaW4tb3V0O1xuXG5cdFx0XHRjb2xvcjogIzc3NztcblxuXHRcdFx0Ly8gQW5pbWF0aW9uIGRlIEBob3ZlclxuXHRcdFx0Jjpob3Zlcntcblx0XHRcdFx0YmFja2dyb3VuZDogJHRoZW1lLWZnLXByaW1hcnk7XG5cdFx0XHRcdGJvcmRlci1jb2xvcjogZGFya2VuKCR0aGVtZS1mZy1wcmltYXJ5LCAxMCk7XG5cdFx0XHRcdGNvbG9yOiAjZmZmO1xuXHRcdFx0fVxuXHRcdH1cblxuXHR9XG5cblxuXHQvKiAoMikgRGVzY3JpcHRpb24gKHNvdXMgbGUgaGVhZGVyKSAqL1xuXHQmID4gZGl2W2RhdGEtZGVzY3JpcHRpb25de1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuXHRcdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjO1xuXG5cdFx0cGFkZGluZzogLjdlbSAuN2VtO1xuXG5cdFx0Y29sb3I6ICM1NTU7XG5cdH1cblxuXG5cblx0LyogKDMpIExpc3RlIGRlcyBlbGVtZW50cyAqL1xuXHQmID4gdWxbZGF0YS1saXN0XXtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuXHRcdC8vIGZsZXggcHJvcGVydGllc1xuXHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdFx0anVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuXHRcdGZsZXgtd3JhcDogbm93cmFwO1xuXG5cdFx0bWFyZ2luOiAwO1xuXHRcdHBhZGRpbmc6IDA7XG5cblx0XHRsaXN0LXN0eWxlOiBub25lO1xuXG5cblx0XHQvKiAoNCkgQ2hhcXVlIGVsZW1lbnQgZGUgbGEgbGlzdGUgKi9cblx0XHQmID4gbGlbZGF0YS1lbGVtZW50XXtcblx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cblx0XHRcdC8vIGZsZXggcHJvcGVydGllc1xuXHRcdFx0ZmxleC1kaXJlY3Rpb246IHJvdztcblx0XHRcdGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcblx0XHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0XHRmbGV4LXdyYXA6IG5vd3JhcDtcblxuXHRcdFx0cGFkZGluZzogMWVtO1xuXG5cdFx0XHQvLyByZWJvcmQgZW4gYmFzIHNhdWYgZGVybmllclxuXHRcdFx0Jjpub3QoOmxhc3QtY2hpbGQpe1xuXHRcdFx0XHRib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYztcblx0XHRcdH1cblxuXHRcdFx0LyogKDQuMSkgTG9nbyBldCB0eXBlIGQnZWxlbWVudCAqL1xuXHRcdFx0JiA+IGRpdjpudGgtY2hpbGQoMSl7XG5cdFx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHRcdFx0d2lkdGg6IDEwZW07XG5cdFx0XHRcdFx0aGVpZ2h0OiA2ZW07XG5cblx0XHRcdFx0Ly8gZmxleCBwcm9wZXJ0aWVzXG5cdFx0XHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdFx0XHRcdGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cdFx0XHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cblx0XHRcdFx0Ly8gSW1hZ2UgcG91ciB0b2tlblxuXHRcdFx0XHQmW2RhdGEtdG9rZW5de1xuXHRcdFx0XHRcdGJhY2tncm91bmQ6IHVybCgnL2Yvc3ZnL3Rva2VuL3N0L2NvbnRhaW5lci82NjY2NjYnKSBjZW50ZXIgMWVtIG5vLXJlcGVhdDtcblx0XHRcdFx0XHQvLyBTaSBsZSB0b2tlbiBlc3QgYWN0aWZcblx0XHRcdFx0XHQmLmFjdGl2ZXtcblx0XHRcdFx0XHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybCgnL2Yvc3ZnL3Rva2VuL3N0L2NvbnRhaW5lci8zOTljZWQnKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblxuXG5cdFx0XHRcdC8vIEltYWdlIHBvdXIgdXRpbGlzYXRldXJcblx0XHRcdFx0JltkYXRhLXVzZXJde1xuXHRcdFx0XHRcdGJhY2tncm91bmQ6IHVybCgnL2Yvc3ZnL3VzZXIvc3QvY29udGFpbmVyLzY2NjY2NicpIGNlbnRlciAxZW0gbm8tcmVwZWF0O1xuXHRcdFx0XHRcdC8vIFNpIGxlIHRva2VuIGVzdCBhY3RpZlxuXHRcdFx0XHRcdCYuYWN0aXZle1xuXHRcdFx0XHRcdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKCcvZi9zdmcvdXNlci9zdC9jb250YWluZXIvMzk5Y2VkJyk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cblxuXHRcdFx0XHQvLyBJbWFnZSBwb3VyIHV0aWxpc2F0ZXVyXG5cdFx0XHRcdCZbZGF0YS1udW1iZXJde1xuXHRcdFx0XHRcdGJhY2tncm91bmQ6IHVybCgnL2Yvc3ZnL3Bob25lX251bWJlci9zdC9jb250YWluZXIvNjY2NjY2JykgY2VudGVyIDFlbSBuby1yZXBlYXQ7XG5cdFx0XHRcdFx0Ly8gU2kgbGUgdG9rZW4gZXN0IGFjdGlmXG5cdFx0XHRcdFx0Ji5hY3RpdmV7XG5cdFx0XHRcdFx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy9mL3N2Zy9waG9uZV9udW1iZXIvc3QvY29udGFpbmVyLzM5OWNlZCcpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdGJhY2tncm91bmQtc2l6ZTogYXV0byA1MCU7XG5cblxuXG5cdFx0XHRcdC8vIFRleHRlIHBvdXIgbGUgdHlwZSBkJ2VsZW1lbnRcblx0XHRcdFx0JiA+IHNwYW57XG5cdFx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cblx0XHRcdFx0XHRwYWRkaW5nOiAwIC40ZW07XG5cblx0XHRcdFx0XHRib3JkZXItcmFkaXVzOiAzcHg7XG5cdFx0XHRcdFx0Ym9yZGVyOiAxcHggc29saWQgI2RkZDtcblxuXHRcdFx0XHRcdGZvbnQtc2l6ZTogLjhlbTtcblx0XHRcdFx0XHRjb2xvcjogIzU1NTtcblx0XHRcdFx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHRcdFx0XHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRcdFx0XHR9XG5cblx0XHRcdH1cblxuXHRcdFx0LyogKDQuMikgRG9ubmVlcyBkZXNjcmlwdGl2ZXMgKi9cblx0XHRcdCYgPiBkaXY6bnRoLWNoaWxkKG4rMil7XG5cdFx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuXHRcdFx0XHRmbGV4OiAxMGVtO1xuXG5cdFx0XHRcdHBhZGRpbmc6IDFlbTtcblxuXHRcdFx0XHQvLyBmbGV4IHByb3BlcnRpZXNcblx0XHRcdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0XHRcdFx0anVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuXHRcdFx0XHRhbGlnbi1pdGVtczogZmxleC1zdGFydDtcblxuXHRcdFx0XHRmb250LXNpemU6IDFlbTtcblx0XHRcdFx0Y29sb3I6ICMwMDA7XG5cdFx0XHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xuXG5cdFx0XHRcdC8vIE9uIHByZWZpeGUgY2hhcXVlIGRvbm5lZVxuXHRcdFx0XHQmID4gc3BhbltkYXRhLXByZWZpeF06YmVmb3Jle1xuXHRcdFx0XHRcdGNvbnRlbnQ6IGF0dHIoZGF0YS1wcmVmaXgpIFwiOiBcIjtcblx0XHRcdFx0XHRmb250LXdlaWdodDogbm9ybWFsO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdC8qICg0LjMpIEJvdXRvbiBkZSBzdXBwcmVzc2lvbiAqL1xuXHRcdFx0JiA+IGJ1dHRvbntcblx0XHRcdFx0cGFkZGluZzogLjFlbSAuN2VtO1xuXHRcdFx0XHRcdGhlaWdodDogMmVtO1xuXG5cdFx0XHRcdGJvcmRlci1yYWRpdXM6IDNweDtcblx0XHRcdFx0Ym9yZGVyOiAxcHggc29saWQgI2RlMmIwODtcblxuXHRcdFx0XHRiYWNrZ3JvdW5kOiAjZmZmO1xuXG5cdFx0XHRcdGNvbG9yOiAjZGUyYjA4O1xuXHRcdFx0XHRmb250LXdlaWdodDogYm9sZDtcblxuXHRcdFx0XHR0cmFuc2l0aW9uOiBhbGwgLjJzIGVhc2UtaW4tb3V0O1xuXG5cdFx0XHRcdC8vIEFuaW1hdGlvbiBkZSBAaG92ZXJcblx0XHRcdFx0Jjpob3Zlcntcblx0XHRcdFx0XHRiYWNrZ3JvdW5kOiAjZGUyYjA4O1xuXHRcdFx0XHRcdGNvbG9yOiAjZmZmO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHR9XG5cdH1cblxuXG5cdC8qICg1KSBGb3JtdWxhaXJlIGQnYWpvdXQgZCd1biBub3V2ZWwgZWxlbWVudCAqL1xuXHQmID4gZGl2W2RhdGEtYWRkXXtcblx0XHRkaXNwbGF5OiBub25lO1xuXG5cdFx0Ly8gQWZmaWNoYWdlIHF1YW5kIC5hY3RpdmVcblx0XHQmLmFjdGl2ZXtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdH1cblxuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuXHRcdHBhZGRpbmc6IDFlbTtcblxuXHRcdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjO1xuXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogI2VjZjBmMTtcblxuXHRcdC8vIGZvbnQtd2VpZ2h0OiBib2xkO1xuXG5cdFx0LyogKDUuMSkgRGVzY3JpcHRpb24gZHUgY2hhbXAgZGUgdGV4dGUgKi9cblx0XHQmID4gLmxhYmVse1xuXHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdFx0d2lkdGg6IDE4ZW07XG5cdFx0XHRwYWRkaW5nLXJpZ2h0OiAyZW07XG5cdFx0XHR0ZXh0LWFsaWduOiByaWdodDtcblx0XHRcdGNvbG9yOiAjM2I0OTRjO1xuXHRcdH1cblxuXG5cdFx0LyogKDUuMikgQ2hhbXBzIGRlIHRleHRlICovXG5cdFx0JiA+IGlucHV0W3R5cGU9J3RleHQnXSxcblx0XHQmID4gaW5wdXRbdHlwZT0nZW1haWwnXSxcblx0XHQmID4gaW5wdXRbdHlwZT0ncGFzc3dvcmQnXXtcblx0XHRcdG1hcmdpbjogMWVtIDA7XG5cdFx0XHRwYWRkaW5nOiAuNWVtIC43ZW07XG5cblx0XHRcdGJvcmRlci1yYWRpdXM6IDNweDtcblx0XHRcdGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XG5cblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG5cblx0XHRcdGNvbG9yOiAjMDAwO1xuXHRcdFx0Zm9udC13ZWlnaHQ6IG5vcm1hbDtcblxuXHRcdFx0Ly8gQW5pbWF0aW9uIGRlIEBmb2N1c1xuXHRcdFx0Jjpmb2N1c3tcblx0XHRcdFx0Ym9yZGVyLWNvbG9yOiAkdGhlbWUtZmctcHJpbWFyeTtcblx0XHRcdFx0Ym94LXNoYWRvdzogaW5zZXQgMCAwIDJweCAjZGRkO1xuXHRcdFx0fVxuXHRcdH1cblxuXG5cdFx0LyogKDUuMykgQm91dG9uIGRlIGNyZWF0aW9uIGFuaW1hdGlvbiBkZSBAaG92ZXIqL1xuXHRcdCYgPiBpbnB1dFt0eXBlPSdzdWJtaXQnXTpob3Zlcntcblx0XHRcdGJhY2tncm91bmQ6ICR0aGVtZS1mZy1wcmltYXJ5O1xuXHRcdFx0Ym9yZGVyLWNvbG9yOiBkYXJrZW4oJHRoZW1lLWZnLXByaW1hcnksIDEwKTtcblx0XHRcdGNvbG9yOiAjZmZmO1xuXHRcdH1cblx0fVxuXG59XG4iLAoJCSIvKiBbMV0gQ09VTEVVUlNcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXG4vKiAoMSkgQ09VTEVVUlMgRFUgVEhFTUUgJERFRkFVTFQgKi9cbiR0aGVtZS1iZzogICAgICAgICAjZThlOGU4O1xuJHRoZW1lLWJnLXByaW1hcnk6ICNmZmZmZmY7XG4kdGhlbWUtZmc6ICAgICAgICAgIzUxNTE1MTtcbiR0aGVtZS1mZy1wcmltYXJ5OiAjMzk5Y2VkO1xuXG4vKiAoMikgQ09VTEVVUlMgREUgVEhFTUUgJERBUksgKi9cbiRkYXJrLWJnOiAgICAgICAgICMzMTM1NDE7XG4kZGFyay1iZy1wcmltYXJ5OiAjMjkyODJlO1xuJGRhcmstZmc6ICAgICAgICAgIzkzOTM5MztcbiRkYXJrLWZnLXByaW1hcnk6ICNmZmZmZmY7XG5cblxuLyogWzJdIERJTUVOU0lPTlNcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXG4vKiAoMSkgTGF5b3V0IGRlIGJhc2UgKi9cbiRtZW51LXNpZGUtd2lkdGg6IDE1ZW07XG4kaGVhZGVyLWhlaWdodDogICA0ZW07XG4iCgldLAoJIm1hcHBpbmdzIjogIkFBS0EsUUFBUSxDQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUEsQUFBQSxlQUFDLEFBQUEsQ0FBZ0IsQ0FDN0MsT0FBTyxDQUFFLEtBQU0sQ0FDZixRQUFRLENBQUUsUUFBUyxDQUVuQixhQUFhLENBQUUsR0FBSSxDQUNuQixNQUFNLENBQUUsY0FBZSxDQUV2QixnQkFBZ0IsQ0FBRSxJQUFLLENBRXZCLFNBQVMsQ0FBRSxJQUFLLENBQ2hCLEtBQUssQ0FBRSxJQUFLLENBaVJaLEFBM1JELFFBQVEsQ0FBRyxVQUFVLENBQUMsT0FBTyxDQUFBLEFBQUEsZUFBQyxBQUFBLEVBY3pCLEdBQUcsQ0FBQSxBQUFBLFdBQUMsQUFBQSxDQUFZLENBQ25CLE9BQU8sQ0FBRSxJQUFLLENBQ2QsUUFBUSxDQUFFLFFBQVMsQ0FHbkIsY0FBYyxDQUFFLEdBQUksQ0FDcEIsU0FBUyxDQUFFLE1BQU8sQ0FDbEIsZUFBZSxDQUFFLGFBQWMsQ0FDL0IsV0FBVyxDQUFFLE1BQU8sQ0FFcEIsT0FBTyxDQUFFLFNBQVUsQ0FFbkIsYUFBYSxDQUFFLFdBQVksQ0FDM0IsYUFBYSxDQUFFLGNBQWUsQ0FFOUIsZ0JBQWdCLENBQUUsT0FBUSxDQUMxQixVQUFVLENBQUUsa0JBQW1CLENBK0IvQixBQTdERixRQUFR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 */ \ No newline at end of file diff --git a/css/global/min.css.map b/css/global/min.css.map new file mode 100644 index 0000000..2b32fa8 --- /dev/null +++ b/css/global/min.css.map @@ -0,0 +1,14 @@ +{ + "version": 3, + "file": "min.css", + "sources": [ + "../global.scss", + "../constants.scss" + ], + "sourcesContent": [ + "@import 'constants';\n\n\n/* [1] Panneau d'ajout/suppression d'elements\n=========================================================*/\n#WRAPPER > #CONTAINER section[data-panel-list]{\n\tdisplay: block;\n\tposition: relative;\n\n\tborder-radius: 3px;\n\tborder: 1px solid #ccc;\n\n\tbackground-color: #fff;\n\n\tfont-size: .9em;\n\tcolor: #000;\n\n\n\t/* (1) Header (titre + ajout) */\n\t& > div[data-header]{\n\t\tdisplay: flex;\n\t\tposition: relative;\n\n\t\t// flex properties\n\t\tflex-direction: row;\n\t\tflex-wrap: nowrap;\n\t\tjustify-content: space-between;\n\t\talign-items: center;\n\n\t\tpadding: .5em .7em;\n\n\t\tborder-radius: 3px 3px 0 0;\n\t\tborder-bottom: 1px solid #ccc;\n\n\t\tbackground-color: #f5f5f5;\n\t\tbox-shadow: inset 0 0 5px #eee;\n\n\t\t// Libelle du panel\n\t\t& > span,\n\t\t& > button{\n\t\t\tcolor: #333;\n\t\t\tfont-weight: bold;\n\t\t\tline-height: 2em;\n\t\t}\n\n\t\t// Bouton ajouter\n\t\t& > button{\n\t\t\tpadding: .1em .7em;\n\n\t\t\tborder-radius: 3px;\n\t\t\tborder: 1px solid #777;\n\n\t\t\tbackground: #ecf0f1;\n\n\t\t\ttransition: all .1s ease-in-out;\n\n\t\t\tcolor: #777;\n\n\t\t\t// Animation de @hover\n\t\t\t&:hover{\n\t\t\t\tbackground: $theme-fg-primary;\n\t\t\t\tborder-color: darken($theme-fg-primary, 10);\n\t\t\t\tcolor: #fff;\n\t\t\t}\n\t\t}\n\n\t}\n\n\n\t/* (2) Description (sous le header) */\n\t& > div[data-description]{\n\t\tdisplay: block;\n\t\tposition: relative;\n\n\t\tborder-bottom: 1px solid #ccc;\n\n\t\tpadding: .7em .7em;\n\n\t\tcolor: #555;\n\t}\n\n\n\n\t/* (3) Liste des elements */\n\t& > ul[data-list]{\n\t\tdisplay: flex;\n\t\tposition: relative;\n\n\t\t// flex properties\n\t\tflex-direction: column;\n\t\tjustify-content: flex-start;\n\t\tflex-wrap: nowrap;\n\n\t\tmargin: 0;\n\t\tpadding: 0;\n\n\t\tlist-style: none;\n\n\n\t\t/* (4) Chaque element de la liste */\n\t\t& > li[data-element]{\n\t\t\tdisplay: flex;\n\n\t\t\t// flex properties\n\t\t\tflex-direction: row;\n\t\t\tjustify-content: space-between;\n\t\t\talign-items: center;\n\t\t\tflex-wrap: nowrap;\n\n\t\t\tpadding: 1em;\n\n\t\t\t// rebord en bas sauf dernier\n\t\t\t&:not(:last-child){\n\t\t\t\tborder-bottom: 1px solid #ccc;\n\t\t\t}\n\n\t\t\t/* (4.1) Logo et type d'element */\n\t\t\t& > div:nth-child(1){\n\t\t\t\tdisplay: flex;\n\t\t\t\t\twidth: 10em;\n\t\t\t\t\theight: 6em;\n\n\t\t\t\t// flex properties\n\t\t\t\tflex-direction: column;\n\t\t\t\tjustify-content: flex-end;\n\t\t\t\talign-items: center;\n\n\t\t\t\t// Image pour token\n\t\t\t\t&[data-token]{\n\t\t\t\t\tbackground: url('/f/svg/token/st/container/666666') center 1em no-repeat;\n\t\t\t\t\t// Si le token est actif\n\t\t\t\t\t&.active{\n\t\t\t\t\t\tbackground-image: url('/f/svg/token/st/container/399ced');\n\t\t\t\t\t}\n\t\t\t\t}\n\n\n\t\t\t\t// Image pour utilisateur\n\t\t\t\t&[data-user]{\n\t\t\t\t\tbackground: url('/f/svg/user/st/container/666666') center 1em no-repeat;\n\t\t\t\t\t// Si le token est actif\n\t\t\t\t\t&.active{\n\t\t\t\t\t\tbackground-image: url('/f/svg/user/st/container/399ced');\n\t\t\t\t\t}\n\t\t\t\t}\n\n\n\t\t\t\t// Image pour utilisateur\n\t\t\t\t&[data-number]{\n\t\t\t\t\tbackground: url('/f/svg/phone_number/st/container/666666') center 1em no-repeat;\n\t\t\t\t\t// Si le token est actif\n\t\t\t\t\t&.active{\n\t\t\t\t\t\tbackground-image: url('/f/svg/phone_number/st/container/399ced');\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tbackground-size: auto 50%;\n\n\n\n\t\t\t\t// Texte pour le type d'element\n\t\t\t\t& > span{\n\t\t\t\t\tdisplay: block;\n\n\t\t\t\t\tpadding: 0 .4em;\n\n\t\t\t\t\tborder-radius: 3px;\n\t\t\t\t\tborder: 1px solid #ddd;\n\n\t\t\t\t\tfont-size: .8em;\n\t\t\t\t\tcolor: #555;\n\t\t\t\t\ttext-transform: uppercase;\n\t\t\t\t\tfont-weight: bold;\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t/* (4.2) Donnees descriptives */\n\t\t\t& > div:nth-child(n+2){\n\t\t\t\tdisplay: flex;\n\t\t\t\tposition: relative;\n\n\t\t\t\tflex: 10em;\n\n\t\t\t\tpadding: 1em;\n\n\t\t\t\t// flex properties\n\t\t\t\tflex-direction: column;\n\t\t\t\tjustify-content: flex-start;\n\t\t\t\talign-items: flex-start;\n\n\t\t\t\tfont-size: 1em;\n\t\t\t\tcolor: #000;\n\t\t\t\tfont-weight: bold;\n\n\t\t\t\t// On prefixe chaque donnee\n\t\t\t\t& > span[data-prefix]:before{\n\t\t\t\t\tcontent: attr(data-prefix) \": \";\n\t\t\t\t\tfont-weight: normal;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t/* (4.3) Bouton de suppression */\n\t\t\t& > button{\n\t\t\t\tpadding: .1em .7em;\n\t\t\t\t\theight: 2em;\n\n\t\t\t\tborder-radius: 3px;\n\t\t\t\tborder: 1px solid #de2b08;\n\n\t\t\t\tbackground: #fff;\n\n\t\t\t\tcolor: #de2b08;\n\t\t\t\tfont-weight: bold;\n\n\t\t\t\ttransition: all .2s ease-in-out;\n\n\t\t\t\t// Animation de @hover\n\t\t\t\t&:hover{\n\t\t\t\t\tbackground: #de2b08;\n\t\t\t\t\tcolor: #fff;\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\t}\n\n\n\t/* (5) Formulaire d'ajout d'un nouvel element */\n\t& > div[data-add]{\n\t\tdisplay: none;\n\n\t\t// Affichage quand .active\n\t\t&.active{\n\t\t\tdisplay: block;\n\t\t}\n\n\t\tposition: relative;\n\n\t\tpadding: 1em;\n\n\t\tborder-bottom: 1px solid #ccc;\n\n\t\tbackground-color: #ecf0f1;\n\n\t\t// font-weight: bold;\n\n\t\t/* (5.1) Description du champ de texte */\n\t\t& > .label{\n\t\t\tdisplay: inline-block;\n\t\t\twidth: 18em;\n\t\t\tpadding-right: 2em;\n\t\t\ttext-align: right;\n\t\t\tcolor: #3b494c;\n\t\t}\n\n\n\t\t/* (5.2) Champs de texte */\n\t\t& > input[type='text'],\n\t\t& > input[type='email'],\n\t\t& > input[type='password']{\n\t\t\tmargin: 1em 0;\n\t\t\tpadding: .5em .7em;\n\n\t\t\tborder-radius: 3px;\n\t\t\tborder: 1px solid #ddd;\n\n\t\t\tbackground-color: #fff;\n\n\t\t\tcolor: #000;\n\t\t\tfont-weight: normal;\n\n\t\t\t// Animation de @focus\n\t\t\t&:focus{\n\t\t\t\tborder-color: $theme-fg-primary;\n\t\t\t\tbox-shadow: inset 0 0 2px #ddd;\n\t\t\t}\n\t\t}\n\n\n\t\t/* (5.3) Bouton de creation animation de @hover*/\n\t\t& > input[type='submit']:hover{\n\t\t\tbackground: $theme-fg-primary;\n\t\t\tborder-color: darken($theme-fg-primary, 10);\n\t\t\tcolor: #fff;\n\t\t}\n\t}\n\n}\n", + "/* [1] COULEURS\n=========================================================*/\n/* (1) COULEURS DU THEME $DEFAULT */\n$theme-bg: #e8e8e8;\n$theme-bg-primary: #ffffff;\n$theme-fg: #515151;\n$theme-fg-primary: #399ced;\n\n/* (2) COULEURS DE THEME $DARK */\n$dark-bg: #313541;\n$dark-bg-primary: #29282e;\n$dark-fg: #939393;\n$dark-fg-primary: #ffffff;\n\n\n/* [2] DIMENSIONS\n=========================================================*/\n/* (1) Layout de base */\n$menu-side-width: 15em;\n$header-height: 4em;\n" + ], + "mappings": "AAKA,QAAQ,CAAG,UAAU,CAAC,OAAO,CAAA,AAAA,eAAC,AAAA,CAAgB,CAC7C,OAAO,CAAE,KAAM,CACf,QAAQ,CAAE,QAAS,CAEnB,aAAa,CAAE,GAAI,CACnB,MAAM,CAAE,cAAe,CAEvB,gBAAgB,CAAE,IAAK,CAEvB,SAAS,CAAE,IAAK,CAChB,KAAK,CAAE,IAAK,CAiRZ,AA3RD,QAAQ,CAAG,UAAU,CAAC,OAAO,CAAA,AAAA,eAAC,AAAA,EAczB,GAAG,CAAA,AAAA,WAAC,AAAA,CAAY,CACnB,OAAO,CAAE,IAAK,CACd,QAAQ,CAAE,QAAS,CAGnB,cAAc,CAAE,GAAI,CACpB,SAAS,CAAE,MAAO,CAClB,eAAe,CAAE,aAAc,CAC/B,WAAW,CAAE,MAAO,CAEpB,OAAO,CAAE,SAAU,CAEnB,aAAa,CAAE,WAAY,CAC3B,aAAa,CAAE,cAAe,CAE9B,gBAAgB,CAAE,OAAQ,CAC1B,UAAU,CAAE,kBAAmB,CA+B/B,AA7DF,QAAQ,CAAG,UAAU,CAAC,OAAO,CAAA,AAAA,eAAC,AAAA,EAczB,GAAG,CAAA,AAAA,WAAC,AAAA,EAmBH,IAAI,CAjCV,QAAQ,CAAG,UAAU,CAAC,OAAO,CAAA,AAAA,eAAC,AAAA,EAczB,GAAG,CAAA,AAAA,WAAC,AAAA,EAoBH,MAAM,AAAA,CACT,KAAK,CAAE,IAAK,CACZ,WAAW,CAAE,IAAK,CAClB,WAAW,CAAE,GAAI,CACjB,AAtCH,QAAQ,CAAG,UAAU,CAAC,OAAO,CAAA,AAAA,eAAC,AAAA,EAczB,GAAG,CAAA,AAAA,WAAC,AAAA,EA2BH,MAAM,AAAA,CACT,OAAO,CAAE,SAAU,CAEnB,aAAa,CAAE,GAAI,CACnB,MAAM,CAAE,cAAe,CAEvB,UAAU,CAAE,OAAQ,CAEpB,UAAU,CAAE,mBAAoB,CAEhC,KAAK,CAAE,IAAK,CAQZ,AA3DH,QAAQ,CAAG,UAAU,CAAC,OAAO,CAAA,AAAA,eAAC,AAAA,EAczB,GAAG,CAAA,AAAA,WAAC,AAAA,EA2BH,MAAM,AAaR,MAAM,AAAA,CACN,UAAU,CCtDK,OAAO,CDuDtB,YAAY,CAAE,OAAM,CACpB,KAAK,CAAE,IAAK,CACZ,AA1DJ,QAAQ,CAAG,UAAU,CAAC,OAAO,CAAA,AAAA,eAAC,AAAA,EAiEzB,GAAG,CAAA,AAAA,gBAAC,AAAA,CAAiB,CACxB,OAAO,CAAE,KAAM,CACf,QAAQ,CAAE,QAAS,CAEnB,aAAa,CAAE,cAAe,CAE9B,OAAO,CAAE,SAAU,CAEnB,KAAK,CAAE,IAAK,CACZ,AA1EF,QAAQ,CAAG,UAAU,CAAC,OAAO,CAAA,AAAA,eAAC,AAAA,EA+EzB,EAAE,CAAA,AAAA,SAAC,AAAA,CAAU,CAChB,OAAO,CAAE,IAAK,CACd,QAAQ,CAAE,QAAS,CAGnB,cAAc,CAAE,MAAO,CACvB,eAAe,CAAE,UAAW,CAC5B,SAAS,CAAE,MAAO,CAElB,MAAM,CAAE,CAAE,CACV,OAAO,CAAE,CAAE,CAEX,UAAU,CAAE,IAAK,CAiIjB,AA5NF,QAAQ,CAAG,UAAU,CAAC,OAAO,CAAA,AAAA,eAAC,AAAA,EA+EzB,EAAE,CAAA,AAAA,SAAC,AAAA,EAgBF,EAAE,CAAA,AAAA,YAAC,AAAA,CAAa,CACnB,OAAO,CAAE,IAAK,CAGd,cAAc,CAAE,GAAI,CACpB,eAAe,CAAE,aAAc,CAC/B,WAAW,CAAE,MAAO,CACpB,SAAS,CAAE,MAAO,CAElB,OAAO,CAAE,GAAI,CAmHb,AA3NH,QAAQ,CAAG,UAAU,CAAC,OAAO,CAAA,AAAA,eAAC,AAAA,EA+EzB,EAAE,CAAA,AAAA,SAAC,AAAA,EAgBF,EAAE,CAAA,AAAA,YAAC,AAAA,CAYL,IAAK,CAAA,WAAW,CAAC,CACjB,aAAa,CAAE,cAAe,CAC9B,AA7GJ,QAAQ,CAAG,UAAU,CAAC,OAAO,CAAA,AAAA,eAAC,AAAA,EA+EzB,EAAE,CAAA,AAAA,SAAC,AAAA,EAgBF,EAAE,CAAA,AAAA,YAAC,AAAA,EAiBF,GAAG,AAAA,UAAW,CAAA,CAAC,CAAC,CACnB,OAAO,CAAE,IAAK,CACb,KAAK,CAAE,IAAK,CACZ,MAAM,CAAE,GAAI,CAGb,cAAc,CAAE,MAAO,CACvB,eAAe,CAAE,QAAS,CAC1B,WAAW,CAAE,MAAO,CA+BpB,eAAe,CAAE,QAAS,CAmB1B,AA1KJ,QAAQ,CAAG,UAAU,CAAC,OAAO,CAAA,AAAA,eAAC,AAAA,EA+EzB,EAAE,CAAA,AAAA,SAAC,AAAA,EAgBF,EAAE,CAAA,AAAA,YAAC,AAAA,EAiBF,GAAG,AAAA,UAAW,CAAA,CAAC,EAWjB,AAAA,UAAC,AAAA,CAAW,CACZ,UAAU,CAAE,uCAAG,CAAqC,MAAM,CAAC,GAAG,CAAC,SAAS,CAKxE,AAjIL,QAAQ,CAAG,UAAU,CAAC,OAAO,CAAA,AAAA,eAAC,AAAA,EA+EzB,EAAE,CAAA,AAAA,SAAC,AAAA,EAgBF,EAAE,CAAA,AAAA,YAAC,AAAA,EAiBF,GAAG,AAAA,UAAW,CAAA,CAAC,EAWjB,AAAA,UAAC,AAAA,CAGA,OAAO,AAAA,CACP,gBAAgB,CAAE,uCAAG,CACrB,AAhIN,QAAQ,CAAG,UAAU,CAAC,OAAO,CAAA,AAAA,eAAC,AAAA,EA+EzB,EAAE,CAAA,AAAA,SAAC,AAAA,EAgBF,EAAE,CAAA,AAAA,YAAC,AAAA,EAiBF,GAAG,AAAA,UAAW,CAAA,CAAC,EAqBjB,AAAA,SAAC,AAAA,CAAU,CACX,UAAU,CAAE,sCAAG,CAAoC,MAAM,CAAC,GAAG,CAAC,SAAS,CAKvE,AA3IL,QAAQ,CAAG,UAAU,CAAC,OAAO,CAAA,AAAA,eAAC,AAAA,EA+EzB,EAAE,CAAA,AAAA,SAAC,AAAA,EAgBF,EAAE,CAAA,AAAA,YAAC,AAAA,EAiBF,GAAG,AAAA,UAAW,CAAA,CAAC,EAqBjB,AAAA,SAAC,AAAA,CAGA,OAAO,AAAA,CACP,gBAAgB,CAAE,sCAAG,CACrB,AA1IN,QAAQ,CAAG,UAAU,CAAC,OAAO,CAAA,AAAA,eAAC,AAAA,EA+EzB,EAAE,CAAA,AAAA,SAAC,AAAA,EAgBF,EAAE,CAAA,AAAA,YAAC,AAAA,EAiBF,GAAG,AAAA,UAAW,CAAA,CAAC,EA+BjB,AAAA,WAAC,AAAA,CAAY,CACb,UAAU,CAAE,8CAAG,CAA4C,MAAM,CAAC,GAAG,CAAC,SAAS,CAK/E,AArJL,QAAQ,CAAG,UAAU,CAAC,OAAO,CAAA,AAAA,eAAC,AAAA,EA+EzB,EAAE,CAAA,AAAA,SAAC,AAAA,EAgBF,EAAE,CAAA,AAAA,YAAC,AAAA,EAiBF,GAAG,AAAA,UAAW,CAAA,CAAC,EA+BjB,AAAA,WAAC,AAAA,CAGA,OAAO,AAAA,CACP,gBAAgB,CAAE,8CAAG,CACrB,AApJN,QAAQ,CAAG,UAAU,CAAC,OAAO,CAAA,AAAA,eAAC,AAAA,EA+EzB,EAAE,CAAA,AAAA,SAAC,AAAA,EAgBF,EAAE,CAAA,AAAA,YAAC,AAAA,EAiBF,GAAG,AAAA,UAAW,CAAA,CAAC,EA4Cd,IAAI,AAAA,CACP,OAAO,CAAE,KAAM,CAEf,OAAO,CAAE,MAAO,CAEhB,aAAa,CAAE,GAAI,CACnB,MAAM,CAAE,cAAe,CAEvB,SAAS,CAAE,IAAK,CAChB,KAAK,CAAE,IAAK,CACZ,cAAc,CAAE,SAAU,CAC1B,WAAW,CAAE,IAAK,CAClB,AAxKL,QAAQ,CAAG,UAAU,CAAC,OAAO,CAAA,AAAA,eAAC,AAAA,EA+EzB,EAAE,CAAA,AAAA,SAAC,AAAA,EAgBF,EAAE,CAAA,AAAA,YAAC,AAAA,EA8EF,GAAG,AAAA,UAAW,CAAA,GAAG,CAAC,CACrB,OAAO,CAAE,IAAK,CACd,QAAQ,CAAE,QAAS,CAEnB,IAAI,CAAE,IAAK,CAEX,OAAO,CAAE,GAAI,CAGb,cAAc,CAAE,MAAO,CACvB,eAAe,CAAE,UAAW,CAC5B,WAAW,CAAE,UAAW,CAExB,SAAS,CAAE,GAAI,CACf,KAAK,CAAE,IAAK,CACZ,WAAW,CAAE,IAAK,CAOlB,AAnMJ,QAAQ,CAAG,UAAU,CAAC,OAAO,CAAA,AAAA,eAAC,AAAA,EA+EzB,EAAE,CAAA,AAAA,SAAC,AAAA,EAgBF,EAAE,CAAA,AAAA,YAAC,AAAA,EA8EF,GAAG,AAAA,UAAW,CAAA,GAAG,EAkBhB,IAAI,CAAA,AAAA,WAAC,AAAA,CAAY,OAAO,AAAA,CAC3B,OAAO,CAAE,iBAAI,CAAc,IAAI,CAC/B,WAAW,CAAE,MAAO,CACpB,AAlML,QAAQ,CAAG,UAAU,CAAC,OAAO,CAAA,AAAA,eAAC,AAAA,EA+EzB,EAAE,CAAA,AAAA,SAAC,AAAA,EAgBF,EAAE,CAAA,AAAA,YAAC,AAAA,EAuGF,MAAM,AAAA,CACT,OAAO,CAAE,SAAU,CAClB,MAAM,CAAE,GAAI,CAEb,aAAa,CAAE,GAAI,CACnB,MAAM,CAAE,iBAAkB,CAE1B,UAAU,CAAE,IAAK,CAEjB,KAAK,CAAE,OAAQ,CACf,WAAW,CAAE,IAAK,CAElB,UAAU,CAAE,mBAAoB,CAOhC,AAzNJ,QAAQ,CAAG,UAAU,CAAC,OAAO,CAAA,AAAA,eAAC,AAAA,EA+EzB,EAAE,CAAA,AAAA,SAAC,AAAA,EAgBF,EAAE,CAAA,AAAA,YAAC,AAAA,EAuGF,MAAM,AAeR,MAAM,AAAA,CACN,UAAU,CAAE,OAAQ,CACpB,KAAK,CAAE,IAAK,CACZ,AAxNL,QAAQ,CAAG,UAAU,CAAC,OAAO,CAAA,AAAA,eAAC,AAAA,EAgOzB,GAAG,CAAA,AAAA,QAAC,AAAA,CAAS,CAChB,OAAO,CAAE,IAAK,CAOd,QAAQ,CAAE,QAAS,CAEnB,OAAO,CAAE,GAAI,CAEb,aAAa,CAAE,cAAe,CAE9B,gBAAgB,CAAE,OAAQ,CA2C1B,AAzRF,QAAQ,CAAG,UAAU,CAAC,OAAO,CAAA,AAAA,eAAC,AAAA,EAgOzB,GAAG,CAAA,AAAA,QAAC,AAAA,CAIN,OAAO,AAAA,CACP,OAAO,CAAE,KAAM,CACf,AAtOH,QAAQ,CAAG,UAAU,CAAC,OAAO,CAAA,AAAA,eAAC,AAAA,EAgOzB,GAAG,CAAA,AAAA,QAAC,AAAA,EAmBH,MAAM,AAAA,CACT,OAAO,CAAE,YAAa,CACtB,KAAK,CAAE,IAAK,CACZ,aAAa,CAAE,GAAI,CACnB,UAAU,CAAE,KAAM,CAClB,KAAK,CAAE,OAAQ,CACf,AAzPH,QAAQ,CAAG,UAAU,CAAC,OAAO,CAAA,AAAA,eAAC,AAAA,EAgOzB,GAAG,CAAA,AAAA,QAAC,AAAA,EA6BH,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX,EA7PZ,QAAQ,CAAG,UAAU,CAAC,OAAO,CAAA,AAAA,eAAC,AAAA,EAgOzB,GAAG,CAAA,AAAA,QAAC,AAAA,EA8BH,KAAK,CAAA,AAAA,IAAC,CAAK,OAAO,AAAZ,EA9PZ,QAAQ,CAAG,UAAU,CAAC,OAAO,CAAA,AAAA,eAAC,AAAA,EAgOzB,GAAG,CAAA,AAAA,QAAC,AAAA,EA+BH,KAAK,CAAA,AAAA,IAAC,CAAK,UAAU,AAAf,CAAgB,CACzB,MAAM,CAAE,KAAM,CACd,OAAO,CAAE,SAAU,CAEnB,aAAa,CAAE,GAAI,CACnB,MAAM,CAAE,cAAe,CAEvB,gBAAgB,CAAE,IAAK,CAEvB,KAAK,CAAE,IAAK,CACZ,WAAW,CAAE,MAAO,CAOpB,AAhRH,QAAQ,CAAG,UAAU,CAAC,OAAO,CAAA,AAAA,eAAC,AAAA,EAgOzB,GAAG,CAAA,AAAA,QAAC,AAAA,EA6BH,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX,CAeR,MAAM,CA5QV,QAAQ,CAAG,UAAU,CAAC,OAAO,CAAA,AAAA,eAAC,AAAA,EAgOzB,GAAG,CAAA,AAAA,QAAC,AAAA,EA8BH,KAAK,CAAA,AAAA,IAAC,CAAK,OAAO,AAAZ,CAcR,MAAM,CA5QV,QAAQ,CAAG,UAAU,CAAC,OAAO,CAAA,AAAA,eAAC,AAAA,EAgOzB,GAAG,CAAA,AAAA,QAAC,AAAA,EA+BH,KAAK,CAAA,AAAA,IAAC,CAAK,UAAU,AAAf,CAaR,MAAM,AAAA,CACN,YAAY,CC5QG,OAAO,CD6QtB,UAAU,CAAE,kBAAmB,CAC/B,AA/QJ,QAAQ,CAAG,UAAU,CAAC,OAAO,CAAA,AAAA,eAAC,AAAA,EAgOzB,GAAG,CAAA,AAAA,QAAC,AAAA,EAoDH,KAAK,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CAAc,MAAM,AAAA,CAC7B,UAAU,CCpRM,OAAO,CDqRvB,YAAY,CAAE,OAAM,CACpB,KAAK,CAAE,IAAK,CACZ", + "names": [] +} \ No newline at end of file diff --git a/css/global/nested.css b/css/global/nested.css new file mode 100644 index 0000000..a7c6ea0 --- /dev/null +++ b/css/global/nested.css @@ -0,0 +1,170 @@ +/* [1] COULEURS +=========================================================*/ +/* (1) COULEURS DU THEME $DEFAULT */ +/* (2) COULEURS DE THEME $DARK */ +/* [2] DIMENSIONS +=========================================================*/ +/* (1) Layout de base */ +/* [1] Panneau d'ajout/suppression d'elements +=========================================================*/ +#WRAPPER > #CONTAINER section[data-panel-list] { + display: block; + position: relative; + border-radius: 3px; + border: 1px solid #ccc; + background-color: #fff; + font-size: .9em; + color: #000; + /* (1) Header (titre + ajout) */ + /* (2) Description (sous le header) */ + /* (3) Liste des elements */ + /* (5) Formulaire d'ajout d'un nouvel element */ } + #WRAPPER > #CONTAINER section[data-panel-list] > div[data-header] { + display: flex; + position: relative; + flex-direction: row; + flex-wrap: nowrap; + justify-content: space-between; + align-items: center; + padding: .5em .7em; + border-radius: 3px 3px 0 0; + border-bottom: 1px solid #ccc; + background-color: #f5f5f5; + box-shadow: inset 0 0 5px #eee; } + #WRAPPER > #CONTAINER section[data-panel-list] > div[data-header] > span, + #WRAPPER > #CONTAINER section[data-panel-list] > div[data-header] > button { + color: #333; + font-weight: bold; + line-height: 2em; } + #WRAPPER > #CONTAINER section[data-panel-list] > div[data-header] > button { + padding: .1em .7em; + border-radius: 3px; + border: 1px solid #777; + background: #ecf0f1; + transition: all .1s ease-in-out; + color: #777; } + #WRAPPER > #CONTAINER section[data-panel-list] > div[data-header] > button:hover { + background: #399ced; + border-color: #1484df; + color: #fff; } + #WRAPPER > #CONTAINER section[data-panel-list] > div[data-description] { + display: block; + position: relative; + border-bottom: 1px solid #ccc; + padding: .7em .7em; + color: #555; } + #WRAPPER > #CONTAINER section[data-panel-list] > ul[data-list] { + display: flex; + position: relative; + flex-direction: column; + justify-content: flex-start; + flex-wrap: nowrap; + margin: 0; + padding: 0; + list-style: none; + /* (4) Chaque element de la liste */ } + #WRAPPER > #CONTAINER section[data-panel-list] > ul[data-list] > li[data-element] { + display: flex; + flex-direction: row; + justify-content: space-between; + align-items: center; + flex-wrap: nowrap; + padding: 1em; + /* (4.1) Logo et type d'element */ + /* (4.2) Donnees descriptives */ + /* (4.3) Bouton de suppression */ } + #WRAPPER > #CONTAINER section[data-panel-list] > ul[data-list] > li[data-element]:not(:last-child) { + border-bottom: 1px solid #ccc; } + #WRAPPER > #CONTAINER section[data-panel-list] > ul[data-list] > li[data-element] > div:nth-child(1) { + display: flex; + width: 10em; + height: 6em; + flex-direction: column; + justify-content: flex-end; + align-items: center; + background-size: auto 50%; } + #WRAPPER > #CONTAINER section[data-panel-list] > ul[data-list] > li[data-element] > div:nth-child(1)[data-token] { + background: url("/f/svg/token/st/container/666666") center 1em no-repeat; } + #WRAPPER > #CONTAINER section[data-panel-list] > ul[data-list] > li[data-element] > div:nth-child(1)[data-token].active { + background-image: url("/f/svg/token/st/container/399ced"); } + #WRAPPER > #CONTAINER section[data-panel-list] > ul[data-list] > li[data-element] > div:nth-child(1)[data-user] { + background: url("/f/svg/user/st/container/666666") center 1em no-repeat; } + #WRAPPER > #CONTAINER section[data-panel-list] > ul[data-list] > li[data-element] > div:nth-child(1)[data-user].active { + background-image: url("/f/svg/user/st/container/399ced"); } + #WRAPPER > #CONTAINER section[data-panel-list] > ul[data-list] > li[data-element] > div:nth-child(1)[data-number] { + background: url("/f/svg/phone_number/st/container/666666") center 1em no-repeat; } + #WRAPPER > #CONTAINER section[data-panel-list] > ul[data-list] > li[data-element] > div:nth-child(1)[data-number].active { + background-image: url("/f/svg/phone_number/st/container/399ced"); } + #WRAPPER > #CONTAINER section[data-panel-list] > ul[data-list] > li[data-element] > div:nth-child(1) > span { + display: block; + padding: 0 .4em; + border-radius: 3px; + border: 1px solid #ddd; + font-size: .8em; + color: #555; + text-transform: uppercase; + font-weight: bold; } + #WRAPPER > #CONTAINER section[data-panel-list] > ul[data-list] > li[data-element] > div:nth-child(n+2) { + display: flex; + position: relative; + flex: 10em; + padding: 1em; + flex-direction: column; + justify-content: flex-start; + align-items: flex-start; + font-size: 1em; + color: #000; + font-weight: bold; } + #WRAPPER > #CONTAINER section[data-panel-list] > ul[data-list] > li[data-element] > div:nth-child(n+2) > span[data-prefix]:before { + content: attr(data-prefix) ": "; + font-weight: normal; } + #WRAPPER > #CONTAINER section[data-panel-list] > ul[data-list] > li[data-element] > button { + padding: .1em .7em; + height: 2em; + border-radius: 3px; + border: 1px solid #de2b08; + background: #fff; + color: #de2b08; + font-weight: bold; + transition: all .2s ease-in-out; } + #WRAPPER > #CONTAINER section[data-panel-list] > ul[data-list] > li[data-element] > button:hover { + background: #de2b08; + color: #fff; } + #WRAPPER > #CONTAINER section[data-panel-list] > div[data-add] { + display: none; + position: relative; + padding: 1em; + border-bottom: 1px solid #ccc; + background-color: #ecf0f1; + /* (5.1) Description du champ de texte */ + /* (5.2) Champs de texte */ + /* (5.3) Bouton de creation animation de @hover*/ } + #WRAPPER > #CONTAINER section[data-panel-list] > div[data-add].active { + display: block; } + #WRAPPER > #CONTAINER section[data-panel-list] > div[data-add] > .label { + display: inline-block; + width: 18em; + padding-right: 2em; + text-align: right; + color: #3b494c; } + #WRAPPER > #CONTAINER section[data-panel-list] > div[data-add] > input[type='text'], + #WRAPPER > #CONTAINER section[data-panel-list] > div[data-add] > input[type='email'], + #WRAPPER > #CONTAINER section[data-panel-list] > div[data-add] > input[type='password'] { + margin: 1em 0; + padding: .5em .7em; + border-radius: 3px; + border: 1px solid #ddd; + background-color: #fff; + color: #000; + font-weight: normal; } + #WRAPPER > #CONTAINER section[data-panel-list] > div[data-add] > input[type='text']:focus, + #WRAPPER > #CONTAINER section[data-panel-list] > div[data-add] > input[type='email']:focus, + #WRAPPER > #CONTAINER section[data-panel-list] > div[data-add] > input[type='password']:focus { + border-color: #399ced; + box-shadow: inset 0 0 2px #ddd; } + #WRAPPER > #CONTAINER section[data-panel-list] > div[data-add] > input[type='submit']:hover { + background: #399ced; + border-color: #1484df; + color: #fff; } + +/*# sourceMappingURL=data:application/json;base64,ewoJInZlcnNpb24iOiAzLAoJImZpbGUiOiAibmVzdGVkLmNzcyIsCgkic291cmNlcyI6IFsKCQkiLi4vZ2xvYmFsLnNjc3MiLAoJCSIuLi9jb25zdGFudHMuc2NzcyIKCV0sCgkic291cmNlc0NvbnRlbnQiOiBbCgkJIkBpbXBvcnQgJ2NvbnN0YW50cyc7XG5cblxuLyogWzFdIFBhbm5lYXUgZCdham91dC9zdXBwcmVzc2lvbiBkJ2VsZW1lbnRzXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xuI1dSQVBQRVIgPiAjQ09OVEFJTkVSIHNlY3Rpb25bZGF0YS1wYW5lbC1saXN0XXtcblx0ZGlzcGxheTogYmxvY2s7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuXHRib3JkZXItcmFkaXVzOiAzcHg7XG5cdGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG5cblx0YmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcblxuXHRmb250LXNpemU6IC45ZW07XG5cdGNvbG9yOiAjMDAwO1xuXG5cblx0LyogKDEpIEhlYWRlciAodGl0cmUgKyBham91dCkgKi9cblx0JiA+IGRpdltkYXRhLWhlYWRlcl17XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cblx0XHQvLyBmbGV4IHByb3BlcnRpZXNcblx0XHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHRcdGZsZXgtd3JhcDogbm93cmFwO1xuXHRcdGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXG5cdFx0cGFkZGluZzogLjVlbSAuN2VtO1xuXG5cdFx0Ym9yZGVyLXJhZGl1czogM3B4IDNweCAwIDA7XG5cdFx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7XG5cblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1O1xuXHRcdGJveC1zaGFkb3c6IGluc2V0IDAgMCA1cHggI2VlZTtcblxuXHRcdC8vIExpYmVsbGUgZHUgcGFuZWxcblx0XHQmID4gc3Bhbixcblx0XHQmID4gYnV0dG9ue1xuXHRcdFx0Y29sb3I6ICMzMzM7XG5cdFx0XHRmb250LXdlaWdodDogYm9sZDtcblx0XHRcdGxpbmUtaGVpZ2h0OiAyZW07XG5cdFx0fVxuXG5cdFx0Ly8gQm91dG9uIGFqb3V0ZXJcblx0XHQmID4gYnV0dG9ue1xuXHRcdFx0cGFkZGluZzogLjFlbSAuN2VtO1xuXG5cdFx0XHRib3JkZXItcmFkaXVzOiAzcHg7XG5cdFx0XHRib3JkZXI6IDFweCBzb2xpZCAjNzc3O1xuXG5cdFx0XHRiYWNrZ3JvdW5kOiAjZWNmMGYxO1xuXG5cdFx0XHR0cmFuc2l0aW9uOiBhbGwgLjFzIGVhc2UtaW4tb3V0O1xuXG5cdFx0XHRjb2xvcjogIzc3NztcblxuXHRcdFx0Ly8gQW5pbWF0aW9uIGRlIEBob3ZlclxuXHRcdFx0Jjpob3Zlcntcblx0XHRcdFx0YmFja2dyb3VuZDogJHRoZW1lLWZnLXByaW1hcnk7XG5cdFx0XHRcdGJvcmRlci1jb2xvcjogZGFya2VuKCR0aGVtZS1mZy1wcmltYXJ5LCAxMCk7XG5cdFx0XHRcdGNvbG9yOiAjZmZmO1xuXHRcdFx0fVxuXHRcdH1cblxuXHR9XG5cblxuXHQvKiAoMikgRGVzY3JpcHRpb24gKHNvdXMgbGUgaGVhZGVyKSAqL1xuXHQmID4gZGl2W2RhdGEtZGVzY3JpcHRpb25de1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuXHRcdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjO1xuXG5cdFx0cGFkZGluZzogLjdlbSAuN2VtO1xuXG5cdFx0Y29sb3I6ICM1NTU7XG5cdH1cblxuXG5cblx0LyogKDMpIExpc3RlIGRlcyBlbGVtZW50cyAqL1xuXHQmID4gdWxbZGF0YS1saXN0XXtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuXHRcdC8vIGZsZXggcHJvcGVydGllc1xuXHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdFx0anVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuXHRcdGZsZXgtd3JhcDogbm93cmFwO1xuXG5cdFx0bWFyZ2luOiAwO1xuXHRcdHBhZGRpbmc6IDA7XG5cblx0XHRsaXN0LXN0eWxlOiBub25lO1xuXG5cblx0XHQvKiAoNCkgQ2hhcXVlIGVsZW1lbnQgZGUgbGEgbGlzdGUgKi9cblx0XHQmID4gbGlbZGF0YS1lbGVtZW50XXtcblx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cblx0XHRcdC8vIGZsZXggcHJvcGVydGllc1xuXHRcdFx0ZmxleC1kaXJlY3Rpb246IHJvdztcblx0XHRcdGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcblx0XHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0XHRmbGV4LXdyYXA6IG5vd3JhcDtcblxuXHRcdFx0cGFkZGluZzogMWVtO1xuXG5cdFx0XHQvLyByZWJvcmQgZW4gYmFzIHNhdWYgZGVybmllclxuXHRcdFx0Jjpub3QoOmxhc3QtY2hpbGQpe1xuXHRcdFx0XHRib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYztcblx0XHRcdH1cblxuXHRcdFx0LyogKDQuMSkgTG9nbyBldCB0eXBlIGQnZWxlbWVudCAqL1xuXHRcdFx0JiA+IGRpdjpudGgtY2hpbGQoMSl7XG5cdFx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHRcdFx0d2lkdGg6IDEwZW07XG5cdFx0XHRcdFx0aGVpZ2h0OiA2ZW07XG5cblx0XHRcdFx0Ly8gZmxleCBwcm9wZXJ0aWVzXG5cdFx0XHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdFx0XHRcdGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cdFx0XHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cblx0XHRcdFx0Ly8gSW1hZ2UgcG91ciB0b2tlblxuXHRcdFx0XHQmW2RhdGEtdG9rZW5de1xuXHRcdFx0XHRcdGJhY2tncm91bmQ6IHVybCgnL2Yvc3ZnL3Rva2VuL3N0L2NvbnRhaW5lci82NjY2NjYnKSBjZW50ZXIgMWVtIG5vLXJlcGVhdDtcblx0XHRcdFx0XHQvLyBTaSBsZSB0b2tlbiBlc3QgYWN0aWZcblx0XHRcdFx0XHQmLmFjdGl2ZXtcblx0XHRcdFx0XHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybCgnL2Yvc3ZnL3Rva2VuL3N0L2NvbnRhaW5lci8zOTljZWQnKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblxuXG5cdFx0XHRcdC8vIEltYWdlIHBvdXIgdXRpbGlzYXRldXJcblx0XHRcdFx0JltkYXRhLXVzZXJde1xuXHRcdFx0XHRcdGJhY2tncm91bmQ6IHVybCgnL2Yvc3ZnL3VzZXIvc3QvY29udGFpbmVyLzY2NjY2NicpIGNlbnRlciAxZW0gbm8tcmVwZWF0O1xuXHRcdFx0XHRcdC8vIFNpIGxlIHRva2VuIGVzdCBhY3RpZlxuXHRcdFx0XHRcdCYuYWN0aXZle1xuXHRcdFx0XHRcdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKCcvZi9zdmcvdXNlci9zdC9jb250YWluZXIvMzk5Y2VkJyk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cblxuXHRcdFx0XHQvLyBJbWFnZSBwb3VyIHV0aWxpc2F0ZXVyXG5cdFx0XHRcdCZbZGF0YS1udW1iZXJde1xuXHRcdFx0XHRcdGJhY2tncm91bmQ6IHVybCgnL2Yvc3ZnL3Bob25lX251bWJlci9zdC9jb250YWluZXIvNjY2NjY2JykgY2VudGVyIDFlbSBuby1yZXBlYXQ7XG5cdFx0XHRcdFx0Ly8gU2kgbGUgdG9rZW4gZXN0IGFjdGlmXG5cdFx0XHRcdFx0Ji5hY3RpdmV7XG5cdFx0XHRcdFx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy9mL3N2Zy9waG9uZV9udW1iZXIvc3QvY29udGFpbmVyLzM5OWNlZCcpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdGJhY2tncm91bmQtc2l6ZTogYXV0byA1MCU7XG5cblxuXG5cdFx0XHRcdC8vIFRleHRlIHBvdXIgbGUgdHlwZSBkJ2VsZW1lbnRcblx0XHRcdFx0JiA+IHNwYW57XG5cdFx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cblx0XHRcdFx0XHRwYWRkaW5nOiAwIC40ZW07XG5cblx0XHRcdFx0XHRib3JkZXItcmFkaXVzOiAzcHg7XG5cdFx0XHRcdFx0Ym9yZGVyOiAxcHggc29saWQgI2RkZDtcblxuXHRcdFx0XHRcdGZvbnQtc2l6ZTogLjhlbTtcblx0XHRcdFx0XHRjb2xvcjogIzU1NTtcblx0XHRcdFx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHRcdFx0XHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRcdFx0XHR9XG5cblx0XHRcdH1cblxuXHRcdFx0LyogKDQuMikgRG9ubmVlcyBkZXNjcmlwdGl2ZXMgKi9cblx0XHRcdCYgPiBkaXY6bnRoLWNoaWxkKG4rMil7XG5cdFx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuXHRcdFx0XHRmbGV4OiAxMGVtO1xuXG5cdFx0XHRcdHBhZGRpbmc6IDFlbTtcblxuXHRcdFx0XHQvLyBmbGV4IHByb3BlcnRpZXNcblx0XHRcdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0XHRcdFx0anVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuXHRcdFx0XHRhbGlnbi1pdGVtczogZmxleC1zdGFydDtcblxuXHRcdFx0XHRmb250LXNpemU6IDFlbTtcblx0XHRcdFx0Y29sb3I6ICMwMDA7XG5cdFx0XHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xuXG5cdFx0XHRcdC8vIE9uIHByZWZpeGUgY2hhcXVlIGRvbm5lZVxuXHRcdFx0XHQmID4gc3BhbltkYXRhLXByZWZpeF06YmVmb3Jle1xuXHRcdFx0XHRcdGNvbnRlbnQ6IGF0dHIoZGF0YS1wcmVmaXgpIFwiOiBcIjtcblx0XHRcdFx0XHRmb250LXdlaWdodDogbm9ybWFsO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdC8qICg0LjMpIEJvdXRvbiBkZSBzdXBwcmVzc2lvbiAqL1xuXHRcdFx0JiA+IGJ1dHRvbntcblx0XHRcdFx0cGFkZGluZzogLjFlbSAuN2VtO1xuXHRcdFx0XHRcdGhlaWdodDogMmVtO1xuXG5cdFx0XHRcdGJvcmRlci1yYWRpdXM6IDNweDtcblx0XHRcdFx0Ym9yZGVyOiAxcHggc29saWQgI2RlMmIwODtcblxuXHRcdFx0XHRiYWNrZ3JvdW5kOiAjZmZmO1xuXG5cdFx0XHRcdGNvbG9yOiAjZGUyYjA4O1xuXHRcdFx0XHRmb250LXdlaWdodDogYm9sZDtcblxuXHRcdFx0XHR0cmFuc2l0aW9uOiBhbGwgLjJzIGVhc2UtaW4tb3V0O1xuXG5cdFx0XHRcdC8vIEFuaW1hdGlvbiBkZSBAaG92ZXJcblx0XHRcdFx0Jjpob3Zlcntcblx0XHRcdFx0XHRiYWNrZ3JvdW5kOiAjZGUyYjA4O1xuXHRcdFx0XHRcdGNvbG9yOiAjZmZmO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHR9XG5cdH1cblxuXG5cdC8qICg1KSBGb3JtdWxhaXJlIGQnYWpvdXQgZCd1biBub3V2ZWwgZWxlbWVudCAqL1xuXHQmID4gZGl2W2RhdGEtYWRkXXtcblx0XHRkaXNwbGF5OiBub25lO1xuXG5cdFx0Ly8gQWZmaWNoYWdlIHF1YW5kIC5hY3RpdmVcblx0XHQmLmFjdGl2ZXtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdH1cblxuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuXHRcdHBhZGRpbmc6IDFlbTtcblxuXHRcdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjO1xuXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogI2VjZjBmMTtcblxuXHRcdC8vIGZvbnQtd2VpZ2h0OiBib2xkO1xuXG5cdFx0LyogKDUuMSkgRGVzY3JpcHRpb24gZHUgY2hhbXAgZGUgdGV4dGUgKi9cblx0XHQmID4gLmxhYmVse1xuXHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdFx0d2lkdGg6IDE4ZW07XG5cdFx0XHRwYWRkaW5nLXJpZ2h0OiAyZW07XG5cdFx0XHR0ZXh0LWFsaWduOiByaWdodDtcblx0XHRcdGNvbG9yOiAjM2I0OTRjO1xuXHRcdH1cblxuXG5cdFx0LyogKDUuMikgQ2hhbXBzIGRlIHRleHRlICovXG5cdFx0JiA+IGlucHV0W3R5cGU9J3RleHQnXSxcblx0XHQmID4gaW5wdXRbdHlwZT0nZW1haWwnXSxcblx0XHQmID4gaW5wdXRbdHlwZT0ncGFzc3dvcmQnXXtcblx0XHRcdG1hcmdpbjogMWVtIDA7XG5cdFx0XHRwYWRkaW5nOiAuNWVtIC43ZW07XG5cblx0XHRcdGJvcmRlci1yYWRpdXM6IDNweDtcblx0XHRcdGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XG5cblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG5cblx0XHRcdGNvbG9yOiAjMDAwO1xuXHRcdFx0Zm9udC13ZWlnaHQ6IG5vcm1hbDtcblxuXHRcdFx0Ly8gQW5pbWF0aW9uIGRlIEBmb2N1c1xuXHRcdFx0Jjpmb2N1c3tcblx0XHRcdFx0Ym9yZGVyLWNvbG9yOiAkdGhlbWUtZmctcHJpbWFyeTtcblx0XHRcdFx0Ym94LXNoYWRvdzogaW5zZXQgMCAwIDJweCAjZGRkO1xuXHRcdFx0fVxuXHRcdH1cblxuXG5cdFx0LyogKDUuMykgQm91dG9uIGRlIGNyZWF0aW9uIGFuaW1hdGlvbiBkZSBAaG92ZXIqL1xuXHRcdCYgPiBpbnB1dFt0eXBlPSdzdWJtaXQnXTpob3Zlcntcblx0XHRcdGJhY2tncm91bmQ6ICR0aGVtZS1mZy1wcmltYXJ5O1xuXHRcdFx0Ym9yZGVyLWNvbG9yOiBkYXJrZW4oJHRoZW1lLWZnLXByaW1hcnksIDEwKTtcblx0XHRcdGNvbG9yOiAjZmZmO1xuXHRcdH1cblx0fVxuXG59XG4iLAoJCSIvKiBbMV0gQ09VTEVVUlNcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXG4vKiAoMSkgQ09VTEVVUlMgRFUgVEhFTUUgJERFRkFVTFQgKi9cbiR0aGVtZS1iZzogICAgICAgICAjZThlOGU4O1xuJHRoZW1lLWJnLXByaW1hcnk6ICNmZmZmZmY7XG4kdGhlbWUtZmc6ICAgICAgICAgIzUxNTE1MTtcbiR0aGVtZS1mZy1wcmltYXJ5OiAjMzk5Y2VkO1xuXG4vKiAoMikgQ09VTEVVUlMgREUgVEhFTUUgJERBUksgKi9cbiRkYXJrLWJnOiAgICAgICAgICMzMTM1NDE7XG4kZGFyay1iZy1wcmltYXJ5OiAjMjkyODJlO1xuJGRhcmstZmc6ICAgICAgICAgIzkzOTM5MztcbiRkYXJrLWZnLXByaW1hcnk6ICNmZmZmZmY7XG5cblxuLyogWzJdIERJTUVOU0lPTlNcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXG4vKiAoMSkgTGF5b3V0IGRlIGJhc2UgKi9cbiRtZW51LXNpZGUtd2lkdGg6IDE1ZW07XG4kaGVhZGVyLWhlaWdodDogICA0ZW07XG4iCgldLAoJIm1hcHBpbmdzIjogIkFDQUE7MkRBQzJEO0FBQzNELG9DQUFvQztBQU1wQyxpQ0FBaUM7QUFPakM7MkRBQzJEO0FBQzNELHdCQUF3QjtBRGR4QjsyREFDMkQ7QUFDM0QsUUFBUSxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUEsQUFBQSxlQUFDLEFBQUEsRUFBZ0I7RUFDN0MsT0FBTyxFQUFFLEtBQU07RUFDZixRQUFRLEVBQUUsUUFBUztFQUVuQixhQUFhLEVBQUUsR0FBSTtFQUNuQixNQUFNLEVBQUUsY0FBZTtFQUV2QixnQkFBZ0IsRUFBRSxJQUFLO0VBRXZCLFNBQVMsRUFBRSxJQUFLO0VBQ2hCLEtBQUssRUFBRSxJQUFLO0VBR1osZ0NBQWdDO0VBbURoQyxzQ0FBc0M7RUFjdEMsNEJBQTRCO0VBaUo1QixnREFBZ0QsRUE0RGhEO0VBM1JELFFBQVEsR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFBLEFBQUEsZUFBQyxBQUFBLElBY3pCLEdBQUcsQ0FBQSxBQUFBLFdBQUMsQUFBQSxFQUFZO0lBQ25CLE9BQU8sRUFBRSxJQUFLO0lBQ2QsUUFBUSxFQUFFLFFBQVM7SUFHbkIsY0FBYyxFQUFFLEdBQUk7SUFDcEIsU0FBUyxFQUFFLE1BQU87SUFDbEIsZUFBZSxFQUFFLGFBQWM7SUFDL0IsV0FBVyxF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 */ \ No newline at end of file diff --git a/css/global/nested.css.map b/css/global/nested.css.map new file mode 100644 index 0000000..a2420e1 --- /dev/null +++ b/css/global/nested.css.map @@ -0,0 +1,14 @@ +{ + "version": 3, + "file": "nested.css", + "sources": [ + "../global.scss", + "../constants.scss" + ], + "sourcesContent": [ + "@import 'constants';\n\n\n/* [1] Panneau d'ajout/suppression d'elements\n=========================================================*/\n#WRAPPER > #CONTAINER section[data-panel-list]{\n\tdisplay: block;\n\tposition: relative;\n\n\tborder-radius: 3px;\n\tborder: 1px solid #ccc;\n\n\tbackground-color: #fff;\n\n\tfont-size: .9em;\n\tcolor: #000;\n\n\n\t/* (1) Header (titre + ajout) */\n\t& > div[data-header]{\n\t\tdisplay: flex;\n\t\tposition: relative;\n\n\t\t// flex properties\n\t\tflex-direction: row;\n\t\tflex-wrap: nowrap;\n\t\tjustify-content: space-between;\n\t\talign-items: center;\n\n\t\tpadding: .5em .7em;\n\n\t\tborder-radius: 3px 3px 0 0;\n\t\tborder-bottom: 1px solid #ccc;\n\n\t\tbackground-color: #f5f5f5;\n\t\tbox-shadow: inset 0 0 5px #eee;\n\n\t\t// Libelle du panel\n\t\t& > span,\n\t\t& > button{\n\t\t\tcolor: #333;\n\t\t\tfont-weight: bold;\n\t\t\tline-height: 2em;\n\t\t}\n\n\t\t// Bouton ajouter\n\t\t& > button{\n\t\t\tpadding: .1em .7em;\n\n\t\t\tborder-radius: 3px;\n\t\t\tborder: 1px solid #777;\n\n\t\t\tbackground: #ecf0f1;\n\n\t\t\ttransition: all .1s ease-in-out;\n\n\t\t\tcolor: #777;\n\n\t\t\t// Animation de @hover\n\t\t\t&:hover{\n\t\t\t\tbackground: $theme-fg-primary;\n\t\t\t\tborder-color: darken($theme-fg-primary, 10);\n\t\t\t\tcolor: #fff;\n\t\t\t}\n\t\t}\n\n\t}\n\n\n\t/* (2) Description (sous le header) */\n\t& > div[data-description]{\n\t\tdisplay: block;\n\t\tposition: relative;\n\n\t\tborder-bottom: 1px solid #ccc;\n\n\t\tpadding: .7em .7em;\n\n\t\tcolor: #555;\n\t}\n\n\n\n\t/* (3) Liste des elements */\n\t& > ul[data-list]{\n\t\tdisplay: flex;\n\t\tposition: relative;\n\n\t\t// flex properties\n\t\tflex-direction: column;\n\t\tjustify-content: flex-start;\n\t\tflex-wrap: nowrap;\n\n\t\tmargin: 0;\n\t\tpadding: 0;\n\n\t\tlist-style: none;\n\n\n\t\t/* (4) Chaque element de la liste */\n\t\t& > li[data-element]{\n\t\t\tdisplay: flex;\n\n\t\t\t// flex properties\n\t\t\tflex-direction: row;\n\t\t\tjustify-content: space-between;\n\t\t\talign-items: center;\n\t\t\tflex-wrap: nowrap;\n\n\t\t\tpadding: 1em;\n\n\t\t\t// rebord en bas sauf dernier\n\t\t\t&:not(:last-child){\n\t\t\t\tborder-bottom: 1px solid #ccc;\n\t\t\t}\n\n\t\t\t/* (4.1) Logo et type d'element */\n\t\t\t& > div:nth-child(1){\n\t\t\t\tdisplay: flex;\n\t\t\t\t\twidth: 10em;\n\t\t\t\t\theight: 6em;\n\n\t\t\t\t// flex properties\n\t\t\t\tflex-direction: column;\n\t\t\t\tjustify-content: flex-end;\n\t\t\t\talign-items: center;\n\n\t\t\t\t// Image pour token\n\t\t\t\t&[data-token]{\n\t\t\t\t\tbackground: url('/f/svg/token/st/container/666666') center 1em no-repeat;\n\t\t\t\t\t// Si le token est actif\n\t\t\t\t\t&.active{\n\t\t\t\t\t\tbackground-image: url('/f/svg/token/st/container/399ced');\n\t\t\t\t\t}\n\t\t\t\t}\n\n\n\t\t\t\t// Image pour utilisateur\n\t\t\t\t&[data-user]{\n\t\t\t\t\tbackground: url('/f/svg/user/st/container/666666') center 1em no-repeat;\n\t\t\t\t\t// Si le token est actif\n\t\t\t\t\t&.active{\n\t\t\t\t\t\tbackground-image: url('/f/svg/user/st/container/399ced');\n\t\t\t\t\t}\n\t\t\t\t}\n\n\n\t\t\t\t// Image pour utilisateur\n\t\t\t\t&[data-number]{\n\t\t\t\t\tbackground: url('/f/svg/phone_number/st/container/666666') center 1em no-repeat;\n\t\t\t\t\t// Si le token est actif\n\t\t\t\t\t&.active{\n\t\t\t\t\t\tbackground-image: url('/f/svg/phone_number/st/container/399ced');\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tbackground-size: auto 50%;\n\n\n\n\t\t\t\t// Texte pour le type d'element\n\t\t\t\t& > span{\n\t\t\t\t\tdisplay: block;\n\n\t\t\t\t\tpadding: 0 .4em;\n\n\t\t\t\t\tborder-radius: 3px;\n\t\t\t\t\tborder: 1px solid #ddd;\n\n\t\t\t\t\tfont-size: .8em;\n\t\t\t\t\tcolor: #555;\n\t\t\t\t\ttext-transform: uppercase;\n\t\t\t\t\tfont-weight: bold;\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t/* (4.2) Donnees descriptives */\n\t\t\t& > div:nth-child(n+2){\n\t\t\t\tdisplay: flex;\n\t\t\t\tposition: relative;\n\n\t\t\t\tflex: 10em;\n\n\t\t\t\tpadding: 1em;\n\n\t\t\t\t// flex properties\n\t\t\t\tflex-direction: column;\n\t\t\t\tjustify-content: flex-start;\n\t\t\t\talign-items: flex-start;\n\n\t\t\t\tfont-size: 1em;\n\t\t\t\tcolor: #000;\n\t\t\t\tfont-weight: bold;\n\n\t\t\t\t// On prefixe chaque donnee\n\t\t\t\t& > span[data-prefix]:before{\n\t\t\t\t\tcontent: attr(data-prefix) \": \";\n\t\t\t\t\tfont-weight: normal;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t/* (4.3) Bouton de suppression */\n\t\t\t& > button{\n\t\t\t\tpadding: .1em .7em;\n\t\t\t\t\theight: 2em;\n\n\t\t\t\tborder-radius: 3px;\n\t\t\t\tborder: 1px solid #de2b08;\n\n\t\t\t\tbackground: #fff;\n\n\t\t\t\tcolor: #de2b08;\n\t\t\t\tfont-weight: bold;\n\n\t\t\t\ttransition: all .2s ease-in-out;\n\n\t\t\t\t// Animation de @hover\n\t\t\t\t&:hover{\n\t\t\t\t\tbackground: #de2b08;\n\t\t\t\t\tcolor: #fff;\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\t}\n\n\n\t/* (5) Formulaire d'ajout d'un nouvel element */\n\t& > div[data-add]{\n\t\tdisplay: none;\n\n\t\t// Affichage quand .active\n\t\t&.active{\n\t\t\tdisplay: block;\n\t\t}\n\n\t\tposition: relative;\n\n\t\tpadding: 1em;\n\n\t\tborder-bottom: 1px solid #ccc;\n\n\t\tbackground-color: #ecf0f1;\n\n\t\t// font-weight: bold;\n\n\t\t/* (5.1) Description du champ de texte */\n\t\t& > .label{\n\t\t\tdisplay: inline-block;\n\t\t\twidth: 18em;\n\t\t\tpadding-right: 2em;\n\t\t\ttext-align: right;\n\t\t\tcolor: #3b494c;\n\t\t}\n\n\n\t\t/* (5.2) Champs de texte */\n\t\t& > input[type='text'],\n\t\t& > input[type='email'],\n\t\t& > input[type='password']{\n\t\t\tmargin: 1em 0;\n\t\t\tpadding: .5em .7em;\n\n\t\t\tborder-radius: 3px;\n\t\t\tborder: 1px solid #ddd;\n\n\t\t\tbackground-color: #fff;\n\n\t\t\tcolor: #000;\n\t\t\tfont-weight: normal;\n\n\t\t\t// Animation de @focus\n\t\t\t&:focus{\n\t\t\t\tborder-color: $theme-fg-primary;\n\t\t\t\tbox-shadow: inset 0 0 2px #ddd;\n\t\t\t}\n\t\t}\n\n\n\t\t/* (5.3) Bouton de creation animation de @hover*/\n\t\t& > input[type='submit']:hover{\n\t\t\tbackground: $theme-fg-primary;\n\t\t\tborder-color: darken($theme-fg-primary, 10);\n\t\t\tcolor: #fff;\n\t\t}\n\t}\n\n}\n", + "/* [1] COULEURS\n=========================================================*/\n/* (1) COULEURS DU THEME $DEFAULT */\n$theme-bg: #e8e8e8;\n$theme-bg-primary: #ffffff;\n$theme-fg: #515151;\n$theme-fg-primary: #399ced;\n\n/* (2) COULEURS DE THEME $DARK */\n$dark-bg: #313541;\n$dark-bg-primary: #29282e;\n$dark-fg: #939393;\n$dark-fg-primary: #ffffff;\n\n\n/* [2] DIMENSIONS\n=========================================================*/\n/* (1) Layout de base */\n$menu-side-width: 15em;\n$header-height: 4em;\n" + ], + "mappings": "ACAA;2DAC2D;AAC3D,oCAAoC;AAMpC,iCAAiC;AAOjC;2DAC2D;AAC3D,wBAAwB;ADdxB;2DAC2D;AAC3D,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAA,AAAA,eAAC,AAAA,EAAgB;EAC7C,OAAO,EAAE,KAAM;EACf,QAAQ,EAAE,QAAS;EAEnB,aAAa,EAAE,GAAI;EACnB,MAAM,EAAE,cAAe;EAEvB,gBAAgB,EAAE,IAAK;EAEvB,SAAS,EAAE,IAAK;EAChB,KAAK,EAAE,IAAK;EAGZ,gCAAgC;EAmDhC,sCAAsC;EActC,4BAA4B;EAiJ5B,gDAAgD,EA4DhD;EA3RD,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAA,AAAA,eAAC,AAAA,IAczB,GAAG,CAAA,AAAA,WAAC,AAAA,EAAY;IACnB,OAAO,EAAE,IAAK;IACd,QAAQ,EAAE,QAAS;IAGnB,cAAc,EAAE,GAAI;IACpB,SAAS,EAAE,MAAO;IAClB,eAAe,EAAE,aAAc;IAC/B,WAAW,EAAE,MAAO;IAEpB,OAAO,EAAE,SAAU;IAEnB,aAAa,EAAE,WAAY;IAC3B,aAAa,EAAE,cAAe;IAE9B,gBAAgB,EAAE,OAAQ;IAC1B,UAAU,EAAE,kBAAmB,GA+B/B;IA7DF,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAA,AAAA,eAAC,AAAA,IAczB,GAAG,CAAA,AAAA,WAAC,AAAA,IAmBH,IAAI;IAjCV,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAA,AAAA,eAAC,AAAA,IAczB,GAAG,CAAA,AAAA,WAAC,AAAA,IAoBH,MAAM,CAAA;MACT,KAAK,EAAE,IAAK;MACZ,WAAW,EAAE,IAAK;MAClB,WAAW,EAAE,GAAI,GACjB;IAtCH,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAA,AAAA,eAAC,AAAA,IAczB,GAAG,CAAA,AAAA,WAAC,AAAA,IA2BH,MAAM,CAAA;MACT,OAAO,EAAE,SAAU;MAEnB,aAAa,EAAE,GAAI;MACnB,MAAM,EAAE,cAAe;MAEvB,UAAU,EAAE,OAAQ;MAEpB,UAAU,EAAE,mBAAoB;MAEhC,KAAK,EAAE,IAAK,GAQZ;MA3DH,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAA,AAAA,eAAC,AAAA,IAczB,GAAG,CAAA,AAAA,WAAC,AAAA,IA2BH,MAAM,AAaR,MAAM,CAAA;QACN,UAAU,ECtDK,OAAO;QDuDtB,YAAY,EAAE,OAAM;QACpB,KAAK,EAAE,IAAK,GACZ;EA1DJ,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAA,AAAA,eAAC,AAAA,IAiEzB,GAAG,CAAA,AAAA,gBAAC,AAAA,EAAiB;IACxB,OAAO,EAAE,KAAM;IACf,QAAQ,EAAE,QAAS;IAEnB,aAAa,EAAE,cAAe;IAE9B,OAAO,EAAE,SAAU;IAEnB,KAAK,EAAE,IAAK,GACZ;EA1EF,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAA,AAAA,eAAC,AAAA,IA+EzB,EAAE,CAAA,AAAA,SAAC,AAAA,EAAU;IAChB,OAAO,EAAE,IAAK;IACd,QAAQ,EAAE,QAAS;IAGnB,cAAc,EAAE,MAAO;IACvB,eAAe,EAAE,UAAW;IAC5B,SAAS,EAAE,MAAO;IAElB,MAAM,EAAE,CAAE;IACV,OAAO,EAAE,CAAE;IAEX,UAAU,EAAE,IAAK;IAGjB,oCAAoC,EA8HpC;IA5NF,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAA,AAAA,eAAC,AAAA,IA+EzB,EAAE,CAAA,AAAA,SAAC,AAAA,IAgBF,EAAE,CAAA,AAAA,YAAC,AAAA,EAAa;MACnB,OAAO,EAAE,IAAK;MAGd,cAAc,EAAE,GAAI;MACpB,eAAe,EAAE,aAAc;MAC/B,WAAW,EAAE,MAAO;MACpB,SAAS,EAAE,MAAO;MAElB,OAAO,EAAE,GAAI;MAOb,kCAAkC;MA6DlC,gCAAgC;MAyBhC,iCAAiC,EAsBjC;MA3NH,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAA,AAAA,eAAC,AAAA,IA+EzB,EAAE,CAAA,AAAA,SAAC,AAAA,IAgBF,EAAE,CAAA,AAAA,YAAC,AAAA,CAYL,IAAK,CAAA,WAAW,EAAC;QACjB,aAAa,EAAE,cAAe,GAC9B;MA7GJ,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAA,AAAA,eAAC,AAAA,IA+EzB,EAAE,CAAA,AAAA,SAAC,AAAA,IAgBF,EAAE,CAAA,AAAA,YAAC,AAAA,IAiBF,GAAG,AAAA,UAAW,CAAA,CAAC,EAAC;QACnB,OAAO,EAAE,IAAK;QACb,KAAK,EAAE,IAAK;QACZ,MAAM,EAAE,GAAI;QAGb,cAAc,EAAE,MAAO;QACvB,eAAe,EAAE,QAAS;QAC1B,WAAW,EAAE,MAAO;QA+BpB,eAAe,EAAE,QAAS,GAmB1B;QA1KJ,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAA,AAAA,eAAC,AAAA,IA+EzB,EAAE,CAAA,AAAA,SAAC,AAAA,IAgBF,EAAE,CAAA,AAAA,YAAC,AAAA,IAiBF,GAAG,AAAA,UAAW,CAAA,CAAC,EAWjB,AAAA,UAAC,AAAA,EAAW;UACZ,UAAU,EAAE,uCAAG,CAAqC,MAAM,CAAC,GAAG,CAAC,SAAS,GAKxE;UAjIL,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAA,AAAA,eAAC,AAAA,IA+EzB,EAAE,CAAA,AAAA,SAAC,AAAA,IAgBF,EAAE,CAAA,AAAA,YAAC,AAAA,IAiBF,GAAG,AAAA,UAAW,CAAA,CAAC,EAWjB,AAAA,UAAC,AAAA,CAGA,OAAO,CAAA;YACP,gBAAgB,EAAE,uCAAG,GACrB;QAhIN,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAA,AAAA,eAAC,AAAA,IA+EzB,EAAE,CAAA,AAAA,SAAC,AAAA,IAgBF,EAAE,CAAA,AAAA,YAAC,AAAA,IAiBF,GAAG,AAAA,UAAW,CAAA,CAAC,EAqBjB,AAAA,SAAC,AAAA,EAAU;UACX,UAAU,EAAE,sCAAG,CAAoC,MAAM,CAAC,GAAG,CAAC,SAAS,GAKvE;UA3IL,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAA,AAAA,eAAC,AAAA,IA+EzB,EAAE,CAAA,AAAA,SAAC,AAAA,IAgBF,EAAE,CAAA,AAAA,YAAC,AAAA,IAiBF,GAAG,AAAA,UAAW,CAAA,CAAC,EAqBjB,AAAA,SAAC,AAAA,CAGA,OAAO,CAAA;YACP,gBAAgB,EAAE,sCAAG,GACrB;QA1IN,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAA,AAAA,eAAC,AAAA,IA+EzB,EAAE,CAAA,AAAA,SAAC,AAAA,IAgBF,EAAE,CAAA,AAAA,YAAC,AAAA,IAiBF,GAAG,AAAA,UAAW,CAAA,CAAC,EA+BjB,AAAA,WAAC,AAAA,EAAY;UACb,UAAU,EAAE,8CAAG,CAA4C,MAAM,CAAC,GAAG,CAAC,SAAS,GAK/E;UArJL,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAA,AAAA,eAAC,AAAA,IA+EzB,EAAE,CAAA,AAAA,SAAC,AAAA,IAgBF,EAAE,CAAA,AAAA,YAAC,AAAA,IAiBF,GAAG,AAAA,UAAW,CAAA,CAAC,EA+BjB,AAAA,WAAC,AAAA,CAGA,OAAO,CAAA;YACP,gBAAgB,EAAE,8CAAG,GACrB;QApJN,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAA,AAAA,eAAC,AAAA,IA+EzB,EAAE,CAAA,AAAA,SAAC,AAAA,IAgBF,EAAE,CAAA,AAAA,YAAC,AAAA,IAiBF,GAAG,AAAA,UAAW,CAAA,CAAC,IA4Cd,IAAI,CAAA;UACP,OAAO,EAAE,KAAM;UAEf,OAAO,EAAE,MAAO;UAEhB,aAAa,EAAE,GAAI;UACnB,MAAM,EAAE,cAAe;UAEvB,SAAS,EAAE,IAAK;UAChB,KAAK,EAAE,IAAK;UACZ,cAAc,EAAE,SAAU;UAC1B,WAAW,EAAE,IAAK,GAClB;MAxKL,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAA,AAAA,eAAC,AAAA,IA+EzB,EAAE,CAAA,AAAA,SAAC,AAAA,IAgBF,EAAE,CAAA,AAAA,YAAC,AAAA,IA8EF,GAAG,AAAA,UAAW,CAAA,GAAG,EAAC;QACrB,OAAO,EAAE,IAAK;QACd,QAAQ,EAAE,QAAS;QAEnB,IAAI,EAAE,IAAK;QAEX,OAAO,EAAE,GAAI;QAGb,cAAc,EAAE,MAAO;QACvB,eAAe,EAAE,UAAW;QAC5B,WAAW,EAAE,UAAW;QAExB,SAAS,EAAE,GAAI;QACf,KAAK,EAAE,IAAK;QACZ,WAAW,EAAE,IAAK,GAOlB;QAnMJ,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAA,AAAA,eAAC,AAAA,IA+EzB,EAAE,CAAA,AAAA,SAAC,AAAA,IAgBF,EAAE,CAAA,AAAA,YAAC,AAAA,IA8EF,GAAG,AAAA,UAAW,CAAA,GAAG,IAkBhB,IAAI,CAAA,AAAA,WAAC,AAAA,CAAY,OAAO,CAAA;UAC3B,OAAO,EAAE,iBAAI,CAAc,IAAI;UAC/B,WAAW,EAAE,MAAO,GACpB;MAlML,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAA,AAAA,eAAC,AAAA,IA+EzB,EAAE,CAAA,AAAA,SAAC,AAAA,IAgBF,EAAE,CAAA,AAAA,YAAC,AAAA,IAuGF,MAAM,CAAA;QACT,OAAO,EAAE,SAAU;QAClB,MAAM,EAAE,GAAI;QAEb,aAAa,EAAE,GAAI;QACnB,MAAM,EAAE,iBAAkB;QAE1B,UAAU,EAAE,IAAK;QAEjB,KAAK,EAAE,OAAQ;QACf,WAAW,EAAE,IAAK;QAElB,UAAU,EAAE,mBAAoB,GAOhC;QAzNJ,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAA,AAAA,eAAC,AAAA,IA+EzB,EAAE,CAAA,AAAA,SAAC,AAAA,IAgBF,EAAE,CAAA,AAAA,YAAC,AAAA,IAuGF,MAAM,AAeR,MAAM,CAAA;UACN,UAAU,EAAE,OAAQ;UACpB,KAAK,EAAE,IAAK,GACZ;EAxNL,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAA,AAAA,eAAC,AAAA,IAgOzB,GAAG,CAAA,AAAA,QAAC,AAAA,EAAS;IAChB,OAAO,EAAE,IAAK;IAOd,QAAQ,EAAE,QAAS;IAEnB,OAAO,EAAE,GAAI;IAEb,aAAa,EAAE,cAAe;IAE9B,gBAAgB,EAAE,OAAQ;IAI1B,yCAAyC;IAUzC,2BAA2B;IAuB3B,iDAAiD,EAMjD;IAzRF,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAA,AAAA,eAAC,AAAA,IAgOzB,GAAG,CAAA,AAAA,QAAC,AAAA,CAIN,OAAO,CAAA;MACP,OAAO,EAAE,KAAM,GACf;IAtOH,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAA,AAAA,eAAC,AAAA,IAgOzB,GAAG,CAAA,AAAA,QAAC,AAAA,IAmBH,MAAM,CAAA;MACT,OAAO,EAAE,YAAa;MACtB,KAAK,EAAE,IAAK;MACZ,aAAa,EAAE,GAAI;MACnB,UAAU,EAAE,KAAM;MAClB,KAAK,EAAE,OAAQ,GACf;IAzPH,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAA,AAAA,eAAC,AAAA,IAgOzB,GAAG,CAAA,AAAA,QAAC,AAAA,IA6BH,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX;IA7PZ,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAA,AAAA,eAAC,AAAA,IAgOzB,GAAG,CAAA,AAAA,QAAC,AAAA,IA8BH,KAAK,CAAA,AAAA,IAAC,CAAK,OAAO,AAAZ;IA9PZ,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAA,AAAA,eAAC,AAAA,IAgOzB,GAAG,CAAA,AAAA,QAAC,AAAA,IA+BH,KAAK,CAAA,AAAA,IAAC,CAAK,UAAU,AAAf,EAAgB;MACzB,MAAM,EAAE,KAAM;MACd,OAAO,EAAE,SAAU;MAEnB,aAAa,EAAE,GAAI;MACnB,MAAM,EAAE,cAAe;MAEvB,gBAAgB,EAAE,IAAK;MAEvB,KAAK,EAAE,IAAK;MACZ,WAAW,EAAE,MAAO,GAOpB;MAhRH,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAA,AAAA,eAAC,AAAA,IAgOzB,GAAG,CAAA,AAAA,QAAC,AAAA,IA6BH,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX,CAeR,MAAM;MA5QV,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAA,AAAA,eAAC,AAAA,IAgOzB,GAAG,CAAA,AAAA,QAAC,AAAA,IA8BH,KAAK,CAAA,AAAA,IAAC,CAAK,OAAO,AAAZ,CAcR,MAAM;MA5QV,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAA,AAAA,eAAC,AAAA,IAgOzB,GAAG,CAAA,AAAA,QAAC,AAAA,IA+BH,KAAK,CAAA,AAAA,IAAC,CAAK,UAAU,AAAf,CAaR,MAAM,CAAA;QACN,YAAY,EC5QG,OAAO;QD6QtB,UAAU,EAAE,kBAAmB,GAC/B;IA/QJ,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAA,AAAA,eAAC,AAAA,IAgOzB,GAAG,CAAA,AAAA,QAAC,AAAA,IAoDH,KAAK,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CAAc,MAAM,CAAA;MAC7B,UAAU,ECpRM,OAAO;MDqRvB,YAAY,EAAE,OAAM;MACpB,KAAK,EAAE,IAAK,GACZ", + "names": [] +} \ No newline at end of file diff --git a/css/header.css b/css/header.css deleted file mode 100755 index 19339c7..0000000 --- a/css/header.css +++ /dev/null @@ -1,2 +0,0 @@ -#WRAPPER>#HEADER>#searchbar{display:inline-block;position:absolute;top:.8em;left:1em;width:20em;height:2em;padding:.2em 1em;border:0;border-radius:3px;background-color:#e8e8e8}#WRAPPER>#HEADER>#user-data{display:inline-block;position:absolute;top:0;right:0;height:calc( 100% - 2*1em )}#WRAPPER>#HEADER>#user-data>#user-name{display:block;position:absolute;top:0;right:calc( 4em*2 - 1em );height:4em;padding:0 1em;color:#fff;line-height:4em;white-space:nowrap;font-weight:bold;cursor:pointer}#WRAPPER>#HEADER>#user-data>#user-picture{display:block;position:absolute;top:1em;right:4em;width:calc( 4em - 2*1em );height:calc( 4em - 2*1em );border-radius:50% / 50%;background:#e8e8e8 url("/f/svg/nopic/st/header") center center no-repeat;background-size:auto 80%;cursor:default;align-self:center}#WRAPPER>#HEADER>#user-data>#user-picture.active{background-image:url("/f/svg/sample/dy/profile");background-size:auto 100%}#WRAPPER>#HEADER>#user-data:before{content:'';display:block;position:absolute;top:0;right:0;width:4em;height:4em;background:url("/f/svg/expand/st/header/ffffff") center center no-repeat;background-size:1em 1em;cursor:pointer}#WRAPPER>#HEADER>.user-panel{display:block;position:absolute;top:calc( 4em - 1em );right:0;margin:.5em;border-radius:5px;border:1px solid #cfcfcf;background-color:#fff;transition:left .3s ease-in-out}#WRAPPER>#HEADER>.user-panel>span{display:block;position:relative;color:#000;padding:.5em 1em;padding-left:2em;cursor:pointer}#WRAPPER>#HEADER>.user-panel>span:not(:last-child){border-bottom:1px solid #ddd}#WRAPPER>#HEADER>.user-panel>span:hover{background-color:#eee}#WRAPPER>#HEADER>#toggle-user-panel{display:none}#WRAPPER>#HEADER>#toggle-user-panel+.user-panel{left:100%}#WRAPPER>#HEADER>#toggle-user-panel:checked+.user-panel{left:auto}#WRAPPER>#HEADER>#toggle-user-panel:checked+.user-panel:before{left:7em} -/*# sourceMappingURL=header.css.map */ diff --git a/css/header.css.map b/css/header.css.map deleted file mode 100755 index f3fe11c..0000000 --- a/css/header.css.map +++ /dev/null @@ -1,7 +0,0 @@ -{ -"version": 3, -"mappings": "AAOC,2BAAc,CACb,OAAO,CAAE,YAAY,CACrB,QAAQ,CAAE,QAAQ,CACjB,GAAG,CAAE,IAAI,CACT,IAAI,CAAE,GAAG,CACT,KAAK,CAAE,IAAI,CACX,MAAM,CAAE,GAAG,CAEZ,OAAO,CAAE,QAAQ,CAEjB,MAAM,CAAE,CAAC,CACT,aAAa,CAAE,GAAG,CAElB,gBAAgB,CCjBC,OAAO,CDwBzB,2BAAc,CACb,OAAO,CAAE,YAAY,CACrB,QAAQ,CAAE,QAAQ,CACjB,GAAG,CAAE,CAAC,CACN,KAAK,CAAE,CAAC,CACR,MAAM,CAAE,oBAAoB,CAI7B,sCAAc,CACV,OAAO,CAAE,KAAK,CACd,QAAQ,CAAE,QAAQ,CACjB,GAAG,CAAE,CAAC,CACN,KAAK,CAAE,mBAAiC,CACxC,MAAM,CCtBK,GAAG,CDwBf,OAAO,CAAE,KAAK,CAEjB,KAAK,CAAE,IAAI,CACX,WAAW,CC3BI,GAAG,CD4BlB,WAAW,CAAE,MAAM,CACnB,WAAW,CAAE,IAAI,CAEjB,MAAM,CAAE,OAAO,CAMhB,yCAAiB,CAChB,OAAO,CAAE,KAAK,CACd,QAAQ,CAAE,QAAQ,CACjB,GAAG,CAAE,GAAG,CACR,KAAK,CCzCS,GAAG,CD0CjB,KAAK,CAAE,mBAAiC,CACxC,MAAM,CAAE,mBAAiC,CAG1C,aAAa,CAAE,SAAS,CAExB,UAAU,CAAE,6DAA+D,CAC3E,eAAe,CAAE,QAAQ,CAKzB,MAAM,CAAE,OAAO,CAEf,UAAU,CAAE,MAAM,CAJlB,gDAAQ,CAAE,gBAAgB,CAAE,+BAA+B,CAAE,eAAe,CAAE,SAAS,CAUxF,kCAAQ,CACP,OAAO,CAAE,EAAE,CACX,OAAO,CAAE,KAAK,CACd,QAAQ,CAAE,QAAQ,CACjB,GAAG,CAAE,CAAC,CACN,KAAK,CAAE,CAAC,CACR,KAAK,CCpES,GAAG,CDqEjB,MAAM,CCrEQ,GAAG,CDuElB,UAAU,CAAE,6DAA6D,CACzE,eAAe,CAAE,OAAO,CAExB,MAAM,CAAE,OAAO,CAWjB,4BAAe,CACX,OAAO,CAAE,KAAK,CACd,QAAQ,CAAE,QAAQ,CACd,GAAG,CAAE,iBAA+B,CACpC,KAAK,CAAE,CAAC,CAET,MAAM,CAAE,IAAI,CAElB,aAAa,CAAE,GAAG,CAClB,MAAM,CAAE,iBAA+B,CAEjC,gBAAgB,CAAE,IAAI,CAEtB,UAAU,CAAE,oBAAoB,CAIhC,iCAAQ,CACP,OAAO,CAAE,KAAK,CACd,QAAQ,CAAE,QAAQ,CAOxB,KAAK,CAAE,IAAI,CACX,OAAO,CAAE,QAAQ,CACjB,YAAY,CAAE,GAAG,CAEjB,MAAM,CAAE,OAAO,CARf,kDAAkB,CACjB,aAAa,CAAE,cAAc,CAU9B,uCAAO,CACN,gBAAgB,CAAE,IAAI,CAUzB,mCAAsB,CAAE,OAAO,CAAE,IAAI,CACrC,+CAAoC,CAAE,IAAI,CAAE,IAAI,CAChD,uDAA4C,CAAE,IAAI,CAAE,IAAI,CACxD,8DAAmD,CAAE,IAAI,CAAE,GAAG", -"sources": ["header.scss","constants.scss"], -"names": [], -"file": "header.css" -} \ No newline at end of file diff --git a/css/header.scss b/css/header.scss index 318749d..5562efc 100755 --- a/css/header.scss +++ b/css/header.scss @@ -2,7 +2,7 @@ #WRAPPER > #HEADER{ - + /* [1] Barre de recherche =========================================================*/ & > #searchbar{ @@ -12,14 +12,14 @@ left: 1em; width: 20em; height: 2em; - + padding: .2em 1em; border: 0; border-radius: 3px; background-color: $theme-bg; - + } /* [2] Informations utilisateur @@ -51,7 +51,7 @@ cursor: pointer; } - + /* (2) Image du profil */ & > #user-picture{ @@ -62,7 +62,7 @@ width: calc( #{$header-height} - 2*1em ); height: calc( #{$header-height} - 2*1em ); - + border-radius: 50% / 50%; background: $theme-bg url('/f/svg/nopic/st/header') center center no-repeat; @@ -98,7 +98,7 @@ } - + /* [3] Menu deroulant pour l'administration du profil =========================================================*/ @@ -109,7 +109,7 @@ right: 0; margin: .5em; - + border-radius: 5px; border: 1px solid darken($theme-bg, 10); @@ -122,7 +122,7 @@ & > span{ display: block; position: relative; - + // On ajoute une ligne en dessous sauf pour le dernier &:not(:last-child){ border-bottom: 1px solid #ddd; @@ -140,8 +140,8 @@ } } - - + + } diff --git a/css/header/compact.css b/css/header/compact.css new file mode 100644 index 0000000..c862527 --- /dev/null +++ b/css/header/compact.css @@ -0,0 +1,38 @@ +/* [1] COULEURS +=========================================================*/ +/* (1) COULEURS DU THEME $DEFAULT */ +/* (2) COULEURS DE THEME $DARK */ +/* [2] DIMENSIONS +=========================================================*/ +/* (1) Layout de base */ +#WRAPPER > #HEADER { /* [1] Barre de recherche =========================================================*/ /* [2] Informations utilisateur =========================================================*/ /* (0) Conteneur */ /* [3] Menu deroulant pour l'administration du profil =========================================================*/ /* (3) Gestion de l'activation ou non de l'user panel */ } + +#WRAPPER > #HEADER > #searchbar { display: inline-block; position: absolute; top: .8em; left: 1em; width: 20em; height: 2em; padding: .2em 1em; border: 0; border-radius: 3px; background-color: #e8e8e8; } + +#WRAPPER > #HEADER > #user-data { display: inline-block; position: absolute; top: 0; right: 0; height: calc( 100% - 2*1em); /* (1) Username de l'utilisateur */ /* (2) Image du profil */ /* (3) Icone d'activation */ } + +#WRAPPER > #HEADER > #user-data > #user-name { display: block; position: absolute; top: 0; right: calc( 4em*2 - 1em); height: 4em; padding: 0 1em; color: #fff; line-height: 4em; white-space: nowrap; font-weight: bold; cursor: pointer; } + +#WRAPPER > #HEADER > #user-data > #user-picture { display: block; position: absolute; top: 1em; right: 4em; width: calc( 4em - 2*1em); height: calc( 4em - 2*1em); border-radius: 50% / 50%; background: #e8e8e8 url("/f/svg/nopic/st/header") center center no-repeat; background-size: auto 80%; cursor: default; align-self: center; } + +#WRAPPER > #HEADER > #user-data > #user-picture.active { background-image: url("/f/svg/sample/dy/profile"); background-size: auto 100%; } + +#WRAPPER > #HEADER > #user-data:before { content: ''; display: block; position: absolute; top: 0; right: 0; width: 4em; height: 4em; background: url("/f/svg/expand/st/header/ffffff") center center no-repeat; background-size: 1em 1em; cursor: pointer; } + +#WRAPPER > #HEADER > .user-panel { display: block; position: absolute; top: calc( 4em - 1em); right: 0; margin: .5em; border-radius: 5px; border: 1px solid #cfcfcf; background-color: #fff; transition: left .3s ease-in-out; /* (1) Pour chaque element du menu */ } + +#WRAPPER > #HEADER > .user-panel > span { display: block; position: relative; color: #000; padding: .5em 1em; padding-left: 2em; cursor: pointer; } + +#WRAPPER > #HEADER > .user-panel > span:not(:last-child) { border-bottom: 1px solid #ddd; } + +#WRAPPER > #HEADER > .user-panel > span:hover { background-color: #eee; } + +#WRAPPER > #HEADER > #toggle-user-panel { display: none; } + +#WRAPPER > #HEADER > #toggle-user-panel + .user-panel { left: 100%; } + +#WRAPPER > #HEADER > #toggle-user-panel:checked + .user-panel { left: auto; } + +#WRAPPER > #HEADER > #toggle-user-panel:checked + .user-panel:before { left: 7em; } + +/*# sourceMappingURL=data:application/json;base64,ewoJInZlcnNpb24iOiAzLAoJImZpbGUiOiAiY29tcGFjdC5jc3MiLAoJInNvdXJjZXMiOiBbCgkJIi4uL2hlYWRlci5zY3NzIiwKCQkiLi4vY29uc3RhbnRzLnNjc3MiCgldLAoJInNvdXJjZXNDb250ZW50IjogWwoJCSJAaW1wb3J0ICdjb25zdGFudHMnO1xuXG5cbiNXUkFQUEVSID4gI0hFQURFUntcblxuXHQvKiBbMV0gQmFycmUgZGUgcmVjaGVyY2hlXG5cdD09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXG5cdCYgPiAjc2VhcmNoYmFye1xuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHR0b3A6IC44ZW07XG5cdFx0XHRsZWZ0OiAxZW07XG5cdFx0XHR3aWR0aDogMjBlbTtcblx0XHRcdGhlaWdodDogMmVtO1xuXG5cdFx0cGFkZGluZzogLjJlbSAxZW07XG5cblx0XHRib3JkZXI6IDA7XG5cdFx0Ym9yZGVyLXJhZGl1czogM3B4O1xuXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogJHRoZW1lLWJnO1xuXG5cdH1cblxuXHQvKiBbMl0gSW5mb3JtYXRpb25zIHV0aWxpc2F0ZXVyXG5cdD09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXG5cdC8qICgwKSBDb250ZW5ldXIgKi9cblx0JiA+ICN1c2VyLWRhdGF7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdHRvcDogMDtcblx0XHRcdHJpZ2h0OiAwO1xuXHRcdFx0aGVpZ2h0OiBjYWxjKCAxMDAlIC0gMioxZW0gKTtcblxuXG5cdFx0LyogKDEpIFVzZXJuYW1lIGRlIGwndXRpbGlzYXRldXIgKi9cblx0XHQmID4gI3VzZXItbmFtZXtcblx0ICAgIFx0ZGlzcGxheTogYmxvY2s7XG5cdCAgICBcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0ICAgIFx0XHR0b3A6IDA7XG5cdCAgICBcdFx0cmlnaHQ6IGNhbGMoICN7JGhlYWRlci1oZWlnaHR9KjIgLSAxZW0gKTtcblx0ICAgIFx0XHRoZWlnaHQ6ICRoZWFkZXItaGVpZ2h0O1xuXG5cdCAgICBcdHBhZGRpbmc6IDAgMWVtO1xuXG5cdFx0XHRjb2xvcjogI2ZmZjtcblx0XHRcdGxpbmUtaGVpZ2h0OiAkaGVhZGVyLWhlaWdodDtcblx0XHRcdHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cdFx0XHRmb250LXdlaWdodDogYm9sZDtcblxuXHRcdFx0Y3Vyc29yOiBwb2ludGVyO1xuXG5cdFx0fVxuXG5cblx0XHQvKiAoMikgSW1hZ2UgZHUgcHJvZmlsICovXG5cdFx0JiA+ICN1c2VyLXBpY3R1cmV7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdFx0dG9wOiAxZW07XG5cdFx0XHRcdHJpZ2h0OiAkaGVhZGVyLWhlaWdodDtcblx0XHRcdFx0d2lkdGg6IGNhbGMoICN7JGhlYWRlci1oZWlnaHR9IC0gMioxZW0gKTtcblx0XHRcdFx0aGVpZ2h0OiBjYWxjKCAjeyRoZWFkZXItaGVpZ2h0fSAtIDIqMWVtICk7XG5cblxuXHRcdFx0Ym9yZGVyLXJhZGl1czogNTAlIC8gNTAlO1xuXG5cdFx0XHRiYWNrZ3JvdW5kOiAkdGhlbWUtYmcgdXJsKCcvZi9zdmcvbm9waWMvc3QvaGVhZGVyJykgY2VudGVyIGNlbnRlciBuby1yZXBlYXQ7XG5cdFx0XHRiYWNrZ3JvdW5kLXNpemU6IGF1dG8gODAlO1xuXG5cdFx0XHQvLyBTaSBvbiBlc3QgY29ubmVjdGVcblx0XHRcdCYuYWN0aXZleyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy9mL3N2Zy9zYW1wbGUvZHkvcHJvZmlsZScpOyBiYWNrZ3JvdW5kLXNpemU6IGF1dG8gMTAwJTsgfVxuXG5cdFx0XHRjdXJzb3I6IGRlZmF1bHQ7XG5cblx0XHRcdGFsaWduLXNlbGY6IGNlbnRlcjtcblx0XHR9XG5cblxuXG5cdFx0LyogKDMpIEljb25lIGQnYWN0aXZhdGlvbiAqL1xuXHRcdCY6YmVmb3Jle1xuXHRcdFx0Y29udGVudDogJyc7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdFx0dG9wOiAwO1xuXHRcdFx0XHRyaWdodDogMDtcblx0XHRcdFx0d2lkdGg6ICRoZWFkZXItaGVpZ2h0O1xuXHRcdFx0XHRoZWlnaHQ6ICRoZWFkZXItaGVpZ2h0O1xuXG5cdFx0XHRiYWNrZ3JvdW5kOiB1cmwoJy9mL3N2Zy9leHBhbmQvc3QvaGVhZGVyL2ZmZmZmZicpIGNlbnRlciBjZW50ZXIgbm8tcmVwZWF0O1xuXHRcdFx0YmFja2dyb3VuZC1zaXplOiAxZW0gMWVtO1xuXG5cdFx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cblx0XHR9XG5cblxuXHR9XG5cblxuXG5cdC8qIFszXSBNZW51IGRlcm91bGFudCBwb3VyIGwnYWRtaW5pc3RyYXRpb24gZHUgcHJvZmlsXG5cdD09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXG5cdCYgPiAudXNlci1wYW5lbHtcbiAgICBcdGRpc3BsYXk6IGJsb2NrO1xuICAgIFx0cG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBcdHRvcDogY2FsYyggI3skaGVhZGVyLWhlaWdodH0gLSAxZW0gKTtcbiAgICAgICAgXHRyaWdodDogMDtcblxuICAgICAgICBtYXJnaW46IC41ZW07XG5cblx0XHRib3JkZXItcmFkaXVzOiA1cHg7XG5cdFx0Ym9yZGVyOiAxcHggc29saWQgZGFya2VuKCR0aGVtZS1iZywgMTApO1xuXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG5cbiAgICAgICAgdHJhbnNpdGlvbjogbGVmdCAuM3MgZWFzZS1pbi1vdXQ7XG5cblxuICAgICAgICAvKiAoMSkgUG91ciBjaGFxdWUgZWxlbWVudCBkdSBtZW51ICovXG4gICAgICAgICYgPiBzcGFue1xuICAgICAgICBcdGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuXHRcdFx0Ly8gT24gYWpvdXRlIHVuZSBsaWduZSBlbiBkZXNzb3VzIHNhdWYgcG91ciBsZSBkZXJuaWVyXG5cdFx0XHQmOm5vdCg6bGFzdC1jaGlsZCl7XG5cdFx0XHRcdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGRkO1xuXHRcdFx0fVxuXG5cdFx0XHRjb2xvcjogIzAwMDtcblx0XHRcdHBhZGRpbmc6IC41ZW0gMWVtO1xuXHRcdFx0cGFkZGluZy1sZWZ0OiAyZW07XG5cblx0XHRcdGN1cnNvcjogcG9pbnRlcjtcblxuXHRcdFx0Ly8gQGhvdmVyXG5cdFx0XHQmOmhvdmVye1xuXHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlO1xuXHRcdFx0fVxuICAgICAgICB9XG5cblxuXG5cbiAgICB9XG5cbiAgICAvKiAoMykgR2VzdGlvbiBkZSBsJ2FjdGl2YXRpb24gb3Ugbm9uIGRlIGwndXNlciBwYW5lbCAqL1xuXHQmID4gI3RvZ2dsZS11c2VyLXBhbmVseyBkaXNwbGF5OiBub25lOyB9XG5cdCYgPiAjdG9nZ2xlLXVzZXItcGFuZWwgKyAudXNlci1wYW5lbHsgbGVmdDogMTAwJTsgfVxuXHQmID4gI3RvZ2dsZS11c2VyLXBhbmVsOmNoZWNrZWQgKyAudXNlci1wYW5lbHsgbGVmdDogYXV0bzsgfVxuXHQmID4gI3RvZ2dsZS11c2VyLXBhbmVsOmNoZWNrZWQgKyAudXNlci1wYW5lbDpiZWZvcmV7IGxlZnQ6IDdlbTsgfVxuXG5cblxuXG5cblxufVxuIiwKCQkiLyogWzFdIENPVUxFVVJTXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xuLyogKDEpIENPVUxFVVJTIERVIFRIRU1FICRERUZBVUxUICovXG4kdGhlbWUtYmc6ICAgICAgICAgI2U4ZThlODtcbiR0aGVtZS1iZy1wcmltYXJ5OiAjZmZmZmZmO1xuJHRoZW1lLWZnOiAgICAgICAgICM1MTUxNTE7XG4kdGhlbWUtZmctcHJpbWFyeTogIzM5OWNlZDtcblxuLyogKDIpIENPVUxFVVJTIERFIFRIRU1FICREQVJLICovXG4kZGFyay1iZzogICAgICAgICAjMzEzNTQxO1xuJGRhcmstYmctcHJpbWFyeTogIzI5MjgyZTtcbiRkYXJrLWZnOiAgICAgICAgICM5MzkzOTM7XG4kZGFyay1mZy1wcmltYXJ5OiAjZmZmZmZmO1xuXG5cbi8qIFsyXSBESU1FTlNJT05TXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xuLyogKDEpIExheW91dCBkZSBiYXNlICovXG4kbWVudS1zaWRlLXdpZHRoOiAxNWVtO1xuJGhlYWRlci1oZWlnaHQ6ICAgNGVtO1xuIgoJXSwKCSJtYXBwaW5ncyI6ICJBQ0FBOzJEQUMyRDtBQUMzRCxvQ0FBb0M7QUFNcEMsaUNBQWlDO0FBT2pDOzJEQUMyRDtBQUMzRCx3QkFBd0I7QURkeEIsUUFBUSxHQUFHLE9BQU8sQ0FBQSxFQUVqQixxRkFDMkQsQ0FrQjNELDJGQUMyRCxDQUMzRCxtQkFBbUIsQ0E0RW5CLGlIQUMyRCxDQTRDeEQsd0RBQXdELEVBVzNEOztBQTNKRCxRQUFRLEdBQUcsT0FBTyxHQUliLFVBQVUsQ0FBQSxFQUNiLE9BQU8sRUFBRSxZQUFhLEVBQ3RCLFFBQVEsRUFBRSxRQUFTLEVBQ2xCLEdBQUcsRUFBRSxJQUFLLEVBQ1YsSUFBSSxFQUFFLEdBQUksRUFDVixLQUFLLEVBQUUsSUFBSyxFQUNaLE1BQU0sRUFBRSxHQUFJLEVBRWIsT0FBTyxFQUFFLFFBQVMsRUFFbEIsTUFBTSxFQUFFLENBQUUsRUFDVixhQUFhLEVBQUUsR0FBSSxFQUVuQixnQkFBZ0IsRUNqQkMsT0FBTyxHRG1CeEI7O0FBbkJGLFFBQVEsR0FBRyxPQUFPLEdBd0JiLFVBQVUsQ0FBQSxFQUNiLE9BQU8sRUFBRSxZQUFhLEVBQ3RCLFFBQVEsRUFBRSxRQUFTLEVBQ2xCLEdBQUcsRUFBRSxDQUFFLEVBQ1As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 */ \ No newline at end of file diff --git a/css/header/compact.css.map b/css/header/compact.css.map new file mode 100644 index 0000000..438120c --- /dev/null +++ b/css/header/compact.css.map @@ -0,0 +1,14 @@ +{ + "version": 3, + "file": "compact.css", + "sources": [ + "../header.scss", + "../constants.scss" + ], + "sourcesContent": [ + "@import 'constants';\n\n\n#WRAPPER > #HEADER{\n\n\t/* [1] Barre de recherche\n\t=========================================================*/\n\t& > #searchbar{\n\t\tdisplay: inline-block;\n\t\tposition: absolute;\n\t\t\ttop: .8em;\n\t\t\tleft: 1em;\n\t\t\twidth: 20em;\n\t\t\theight: 2em;\n\n\t\tpadding: .2em 1em;\n\n\t\tborder: 0;\n\t\tborder-radius: 3px;\n\n\t\tbackground-color: $theme-bg;\n\n\t}\n\n\t/* [2] Informations utilisateur\n\t=========================================================*/\n\t/* (0) Conteneur */\n\t& > #user-data{\n\t\tdisplay: inline-block;\n\t\tposition: absolute;\n\t\t\ttop: 0;\n\t\t\tright: 0;\n\t\t\theight: calc( 100% - 2*1em );\n\n\n\t\t/* (1) Username de l'utilisateur */\n\t\t& > #user-name{\n\t \tdisplay: block;\n\t \tposition: absolute;\n\t \t\ttop: 0;\n\t \t\tright: calc( #{$header-height}*2 - 1em );\n\t \t\theight: $header-height;\n\n\t \tpadding: 0 1em;\n\n\t\t\tcolor: #fff;\n\t\t\tline-height: $header-height;\n\t\t\twhite-space: nowrap;\n\t\t\tfont-weight: bold;\n\n\t\t\tcursor: pointer;\n\n\t\t}\n\n\n\t\t/* (2) Image du profil */\n\t\t& > #user-picture{\n\t\t\tdisplay: block;\n\t\t\tposition: absolute;\n\t\t\t\ttop: 1em;\n\t\t\t\tright: $header-height;\n\t\t\t\twidth: calc( #{$header-height} - 2*1em );\n\t\t\t\theight: calc( #{$header-height} - 2*1em );\n\n\n\t\t\tborder-radius: 50% / 50%;\n\n\t\t\tbackground: $theme-bg url('/f/svg/nopic/st/header') center center no-repeat;\n\t\t\tbackground-size: auto 80%;\n\n\t\t\t// Si on est connecte\n\t\t\t&.active{ background-image: url('/f/svg/sample/dy/profile'); background-size: auto 100%; }\n\n\t\t\tcursor: default;\n\n\t\t\talign-self: center;\n\t\t}\n\n\n\n\t\t/* (3) Icone d'activation */\n\t\t&:before{\n\t\t\tcontent: '';\n\t\t\tdisplay: block;\n\t\t\tposition: absolute;\n\t\t\t\ttop: 0;\n\t\t\t\tright: 0;\n\t\t\t\twidth: $header-height;\n\t\t\t\theight: $header-height;\n\n\t\t\tbackground: url('/f/svg/expand/st/header/ffffff') center center no-repeat;\n\t\t\tbackground-size: 1em 1em;\n\n\t\t\tcursor: pointer;\n\n\t\t}\n\n\n\t}\n\n\n\n\t/* [3] Menu deroulant pour l'administration du profil\n\t=========================================================*/\n\t& > .user-panel{\n \tdisplay: block;\n \tposition: absolute;\n \ttop: calc( #{$header-height} - 1em );\n \tright: 0;\n\n margin: .5em;\n\n\t\tborder-radius: 5px;\n\t\tborder: 1px solid darken($theme-bg, 10);\n\n background-color: #fff;\n\n transition: left .3s ease-in-out;\n\n\n /* (1) Pour chaque element du menu */\n & > span{\n \tdisplay: block;\n \tposition: relative;\n\n\t\t\t// On ajoute une ligne en dessous sauf pour le dernier\n\t\t\t&:not(:last-child){\n\t\t\t\tborder-bottom: 1px solid #ddd;\n\t\t\t}\n\n\t\t\tcolor: #000;\n\t\t\tpadding: .5em 1em;\n\t\t\tpadding-left: 2em;\n\n\t\t\tcursor: pointer;\n\n\t\t\t// @hover\n\t\t\t&:hover{\n\t\t\t\tbackground-color: #eee;\n\t\t\t}\n }\n\n\n\n\n }\n\n /* (3) Gestion de l'activation ou non de l'user panel */\n\t& > #toggle-user-panel{ display: none; }\n\t& > #toggle-user-panel + .user-panel{ left: 100%; }\n\t& > #toggle-user-panel:checked + .user-panel{ left: auto; }\n\t& > #toggle-user-panel:checked + .user-panel:before{ left: 7em; }\n\n\n\n\n\n\n}\n", + "/* [1] COULEURS\n=========================================================*/\n/* (1) COULEURS DU THEME $DEFAULT */\n$theme-bg: #e8e8e8;\n$theme-bg-primary: #ffffff;\n$theme-fg: #515151;\n$theme-fg-primary: #399ced;\n\n/* (2) COULEURS DE THEME $DARK */\n$dark-bg: #313541;\n$dark-bg-primary: #29282e;\n$dark-fg: #939393;\n$dark-fg-primary: #ffffff;\n\n\n/* [2] DIMENSIONS\n=========================================================*/\n/* (1) Layout de base */\n$menu-side-width: 15em;\n$header-height: 4em;\n" + ], + "mappings": "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", + "names": [] +} \ No newline at end of file diff --git a/css/header/expanded.css b/css/header/expanded.css new file mode 100644 index 0000000..c2f439b --- /dev/null +++ b/css/header/expanded.css @@ -0,0 +1,135 @@ +/* [1] COULEURS +=========================================================*/ +/* (1) COULEURS DU THEME $DEFAULT */ +/* (2) COULEURS DE THEME $DARK */ +/* [2] DIMENSIONS +=========================================================*/ +/* (1) Layout de base */ +#WRAPPER > #HEADER { + /* [1] Barre de recherche + =========================================================*/ + /* [2] Informations utilisateur + =========================================================*/ + /* (0) Conteneur */ + /* [3] Menu deroulant pour l'administration du profil + =========================================================*/ + /* (3) Gestion de l'activation ou non de l'user panel */ +} + +#WRAPPER > #HEADER > #searchbar { + display: inline-block; + position: absolute; + top: .8em; + left: 1em; + width: 20em; + height: 2em; + padding: .2em 1em; + border: 0; + border-radius: 3px; + background-color: #e8e8e8; +} + +#WRAPPER > #HEADER > #user-data { + display: inline-block; + position: absolute; + top: 0; + right: 0; + height: calc( 100% - 2*1em); + /* (1) Username de l'utilisateur */ + /* (2) Image du profil */ + /* (3) Icone d'activation */ +} + +#WRAPPER > #HEADER > #user-data > #user-name { + display: block; + position: absolute; + top: 0; + right: calc( 4em*2 - 1em); + height: 4em; + padding: 0 1em; + color: #fff; + line-height: 4em; + white-space: nowrap; + font-weight: bold; + cursor: pointer; +} + +#WRAPPER > #HEADER > #user-data > #user-picture { + display: block; + position: absolute; + top: 1em; + right: 4em; + width: calc( 4em - 2*1em); + height: calc( 4em - 2*1em); + border-radius: 50% / 50%; + background: #e8e8e8 url("/f/svg/nopic/st/header") center center no-repeat; + background-size: auto 80%; + cursor: default; + align-self: center; +} + +#WRAPPER > #HEADER > #user-data > #user-picture.active { + background-image: url("/f/svg/sample/dy/profile"); + background-size: auto 100%; +} + +#WRAPPER > #HEADER > #user-data:before { + content: ''; + display: block; + position: absolute; + top: 0; + right: 0; + width: 4em; + height: 4em; + background: url("/f/svg/expand/st/header/ffffff") center center no-repeat; + background-size: 1em 1em; + cursor: pointer; +} + +#WRAPPER > #HEADER > .user-panel { + display: block; + position: absolute; + top: calc( 4em - 1em); + right: 0; + margin: .5em; + border-radius: 5px; + border: 1px solid #cfcfcf; + background-color: #fff; + transition: left .3s ease-in-out; + /* (1) Pour chaque element du menu */ +} + +#WRAPPER > #HEADER > .user-panel > span { + display: block; + position: relative; + color: #000; + padding: .5em 1em; + padding-left: 2em; + cursor: pointer; +} + +#WRAPPER > #HEADER > .user-panel > span:not(:last-child) { + border-bottom: 1px solid #ddd; +} + +#WRAPPER > #HEADER > .user-panel > span:hover { + background-color: #eee; +} + +#WRAPPER > #HEADER > #toggle-user-panel { + display: none; +} + +#WRAPPER > #HEADER > #toggle-user-panel + .user-panel { + left: 100%; +} + +#WRAPPER > #HEADER > #toggle-user-panel:checked + .user-panel { + left: auto; +} + +#WRAPPER > #HEADER > #toggle-user-panel:checked + .user-panel:before { + left: 7em; +} + +/*# sourceMappingURL=data:application/json;base64,ewoJInZlcnNpb24iOiAzLAoJImZpbGUiOiAiZXhwYW5kZWQuY3NzIiwKCSJzb3VyY2VzIjogWwoJCSIuLi9oZWFkZXIuc2NzcyIsCgkJIi4uL2NvbnN0YW50cy5zY3NzIgoJXSwKCSJzb3VyY2VzQ29udGVudCI6IFsKCQkiQGltcG9ydCAnY29uc3RhbnRzJztcblxuXG4jV1JBUFBFUiA+ICNIRUFERVJ7XG5cblx0LyogWzFdIEJhcnJlIGRlIHJlY2hlcmNoZVxuXHQ9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xuXHQmID4gI3NlYXJjaGJhcntcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0dG9wOiAuOGVtO1xuXHRcdFx0bGVmdDogMWVtO1xuXHRcdFx0d2lkdGg6IDIwZW07XG5cdFx0XHRoZWlnaHQ6IDJlbTtcblxuXHRcdHBhZGRpbmc6IC4yZW0gMWVtO1xuXG5cdFx0Ym9yZGVyOiAwO1xuXHRcdGJvcmRlci1yYWRpdXM6IDNweDtcblxuXHRcdGJhY2tncm91bmQtY29sb3I6ICR0aGVtZS1iZztcblxuXHR9XG5cblx0LyogWzJdIEluZm9ybWF0aW9ucyB1dGlsaXNhdGV1clxuXHQ9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xuXHQvKiAoMCkgQ29udGVuZXVyICovXG5cdCYgPiAjdXNlci1kYXRhe1xuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHR0b3A6IDA7XG5cdFx0XHRyaWdodDogMDtcblx0XHRcdGhlaWdodDogY2FsYyggMTAwJSAtIDIqMWVtICk7XG5cblxuXHRcdC8qICgxKSBVc2VybmFtZSBkZSBsJ3V0aWxpc2F0ZXVyICovXG5cdFx0JiA+ICN1c2VyLW5hbWV7XG5cdCAgICBcdGRpc3BsYXk6IGJsb2NrO1xuXHQgICAgXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdCAgICBcdFx0dG9wOiAwO1xuXHQgICAgXHRcdHJpZ2h0OiBjYWxjKCAjeyRoZWFkZXItaGVpZ2h0fSoyIC0gMWVtICk7XG5cdCAgICBcdFx0aGVpZ2h0OiAkaGVhZGVyLWhlaWdodDtcblxuXHQgICAgXHRwYWRkaW5nOiAwIDFlbTtcblxuXHRcdFx0Y29sb3I6ICNmZmY7XG5cdFx0XHRsaW5lLWhlaWdodDogJGhlYWRlci1oZWlnaHQ7XG5cdFx0XHR3aGl0ZS1zcGFjZTogbm93cmFwO1xuXHRcdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cblx0XHRcdGN1cnNvcjogcG9pbnRlcjtcblxuXHRcdH1cblxuXG5cdFx0LyogKDIpIEltYWdlIGR1IHByb2ZpbCAqL1xuXHRcdCYgPiAjdXNlci1waWN0dXJle1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRcdHRvcDogMWVtO1xuXHRcdFx0XHRyaWdodDogJGhlYWRlci1oZWlnaHQ7XG5cdFx0XHRcdHdpZHRoOiBjYWxjKCAjeyRoZWFkZXItaGVpZ2h0fSAtIDIqMWVtICk7XG5cdFx0XHRcdGhlaWdodDogY2FsYyggI3skaGVhZGVyLWhlaWdodH0gLSAyKjFlbSApO1xuXG5cblx0XHRcdGJvcmRlci1yYWRpdXM6IDUwJSAvIDUwJTtcblxuXHRcdFx0YmFja2dyb3VuZDogJHRoZW1lLWJnIHVybCgnL2Yvc3ZnL25vcGljL3N0L2hlYWRlcicpIGNlbnRlciBjZW50ZXIgbm8tcmVwZWF0O1xuXHRcdFx0YmFja2dyb3VuZC1zaXplOiBhdXRvIDgwJTtcblxuXHRcdFx0Ly8gU2kgb24gZXN0IGNvbm5lY3RlXG5cdFx0XHQmLmFjdGl2ZXsgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcvZi9zdmcvc2FtcGxlL2R5L3Byb2ZpbGUnKTsgYmFja2dyb3VuZC1zaXplOiBhdXRvIDEwMCU7IH1cblxuXHRcdFx0Y3Vyc29yOiBkZWZhdWx0O1xuXG5cdFx0XHRhbGlnbi1zZWxmOiBjZW50ZXI7XG5cdFx0fVxuXG5cblxuXHRcdC8qICgzKSBJY29uZSBkJ2FjdGl2YXRpb24gKi9cblx0XHQmOmJlZm9yZXtcblx0XHRcdGNvbnRlbnQ6ICcnO1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRcdHRvcDogMDtcblx0XHRcdFx0cmlnaHQ6IDA7XG5cdFx0XHRcdHdpZHRoOiAkaGVhZGVyLWhlaWdodDtcblx0XHRcdFx0aGVpZ2h0OiAkaGVhZGVyLWhlaWdodDtcblxuXHRcdFx0YmFja2dyb3VuZDogdXJsKCcvZi9zdmcvZXhwYW5kL3N0L2hlYWRlci9mZmZmZmYnKSBjZW50ZXIgY2VudGVyIG5vLXJlcGVhdDtcblx0XHRcdGJhY2tncm91bmQtc2l6ZTogMWVtIDFlbTtcblxuXHRcdFx0Y3Vyc29yOiBwb2ludGVyO1xuXG5cdFx0fVxuXG5cblx0fVxuXG5cblxuXHQvKiBbM10gTWVudSBkZXJvdWxhbnQgcG91ciBsJ2FkbWluaXN0cmF0aW9uIGR1IHByb2ZpbFxuXHQ9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xuXHQmID4gLnVzZXItcGFuZWx7XG4gICAgXHRkaXNwbGF5OiBibG9jaztcbiAgICBcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgXHR0b3A6IGNhbGMoICN7JGhlYWRlci1oZWlnaHR9IC0gMWVtICk7XG4gICAgICAgIFx0cmlnaHQ6IDA7XG5cbiAgICAgICAgbWFyZ2luOiAuNWVtO1xuXG5cdFx0Ym9yZGVyLXJhZGl1czogNXB4O1xuXHRcdGJvcmRlcjogMXB4IHNvbGlkIGRhcmtlbigkdGhlbWUtYmcsIDEwKTtcblxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuXG4gICAgICAgIHRyYW5zaXRpb246IGxlZnQgLjNzIGVhc2UtaW4tb3V0O1xuXG5cbiAgICAgICAgLyogKDEpIFBvdXIgY2hhcXVlIGVsZW1lbnQgZHUgbWVudSAqL1xuICAgICAgICAmID4gc3BhbntcbiAgICAgICAgXHRkaXNwbGF5OiBibG9jaztcbiAgICAgICAgXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cblx0XHRcdC8vIE9uIGFqb3V0ZSB1bmUgbGlnbmUgZW4gZGVzc291cyBzYXVmIHBvdXIgbGUgZGVybmllclxuXHRcdFx0Jjpub3QoOmxhc3QtY2hpbGQpe1xuXHRcdFx0XHRib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RkZDtcblx0XHRcdH1cblxuXHRcdFx0Y29sb3I6ICMwMDA7XG5cdFx0XHRwYWRkaW5nOiAuNWVtIDFlbTtcblx0XHRcdHBhZGRpbmctbGVmdDogMmVtO1xuXG5cdFx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cblx0XHRcdC8vIEBob3ZlclxuXHRcdFx0Jjpob3Zlcntcblx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogI2VlZTtcblx0XHRcdH1cbiAgICAgICAgfVxuXG5cblxuXG4gICAgfVxuXG4gICAgLyogKDMpIEdlc3Rpb24gZGUgbCdhY3RpdmF0aW9uIG91IG5vbiBkZSBsJ3VzZXIgcGFuZWwgKi9cblx0JiA+ICN0b2dnbGUtdXNlci1wYW5lbHsgZGlzcGxheTogbm9uZTsgfVxuXHQmID4gI3RvZ2dsZS11c2VyLXBhbmVsICsgLnVzZXItcGFuZWx7IGxlZnQ6IDEwMCU7IH1cblx0JiA+ICN0b2dnbGUtdXNlci1wYW5lbDpjaGVja2VkICsgLnVzZXItcGFuZWx7IGxlZnQ6IGF1dG87IH1cblx0JiA+ICN0b2dnbGUtdXNlci1wYW5lbDpjaGVja2VkICsgLnVzZXItcGFuZWw6YmVmb3JleyBsZWZ0OiA3ZW07IH1cblxuXG5cblxuXG5cbn1cbiIsCgkJIi8qIFsxXSBDT1VMRVVSU1xuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cbi8qICgxKSBDT1VMRVVSUyBEVSBUSEVNRSAkREVGQVVMVCAqL1xuJHRoZW1lLWJnOiAgICAgICAgICNlOGU4ZTg7XG4kdGhlbWUtYmctcHJpbWFyeTogI2ZmZmZmZjtcbiR0aGVtZS1mZzogICAgICAgICAjNTE1MTUxO1xuJHRoZW1lLWZnLXByaW1hcnk6ICMzOTljZWQ7XG5cbi8qICgyKSBDT1VMRVVSUyBERSBUSEVNRSAkREFSSyAqL1xuJGRhcmstYmc6ICAgICAgICAgIzMxMzU0MTtcbiRkYXJrLWJnLXByaW1hcnk6ICMyOTI4MmU7XG4kZGFyay1mZzogICAgICAgICAjOTM5MzkzO1xuJGRhcmstZmctcHJpbWFyeTogI2ZmZmZmZjtcblxuXG4vKiBbMl0gRElNRU5TSU9OU1xuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cbi8qICgxKSBMYXlvdXQgZGUgYmFzZSAqL1xuJG1lbnUtc2lkZS13aWR0aDogMTVlbTtcbiRoZWFkZXItaGVpZ2h0OiAgIDRlbTtcbiIKCV0sCgkibWFwcGluZ3MiOiAiQUNBQTsyREFDMkQ7QUFDM0Qsb0NBQW9DO0FBTXBDLGlDQUFpQztBQU9qQzsyREFDMkQ7QUFDM0Qsd0JBQXdCO0FEZHhCLFFBQVEsR0FBRyxPQUFPLENBQUE7RUFFakI7NERBQzJEO0VBa0IzRDs0REFDMkQ7RUFDM0QsbUJBQW1CO0VBNEVuQjs0REFDMkQ7RUE0Q3hELHdEQUF3RDtDQVczRDs7QUEzSkQsUUFBUSxHQUFHLE9BQU8sR0FJYixVQUFVLENBQUE7RUFDYixPQUFPLEVBQUUsWUFBYTtFQUN0QixRQUFRLEVBQUUsUUFBUztFQUNsQixHQUFHLEVBQUUsSUFBSztFQUNWLElBQUksRUFBRSxHQUFJO0VBQ1YsS0FBSyxFQUFFLElBQUs7RUFDWixNQUFNLEVBQUUsR0FBSTtFQUViLE9BQU8sRUFBRSxRQUFTO0VBRWxCLE1BQU0sRUFBRSxDQUFFO0VBQ1YsYUFBYSxFQUFFLEdBQUk7RUFFbkIsZ0JBQWdCLEVDakJDLE9BQU87Q0RtQnhCOztBQW5CRixRQUFRLEdBQUcsT0FBTyxHQXdCYixVQUFVLENBQUE7RUFDYixPQUFPLEVBQUUsWUFBYTtFQUN0QixRQUFRLEVBQUUsUUFBUztFQUNsQixHQUFHLEVBQUUsQ0FBRTtFQUNQLEtBQUssRUFBRSxDQUFFO0VBQ1QsTUFBTSxFQUFFLG1CQUFJO0VBR2IsbUNBQW1DO0VBb0JuQyx5QkFBeUI7RUF5QnpCLDRCQUE0QjtDQWtCNUI7O0FBL0ZGLFFBQVEsR0FBRyxPQUFPLEdBd0JiLFVBQVUsR0FTVCxVQUFVLENBQUE7RUFDVixPQUFPLEVBQUUsS0FBTTtFQUNmLFFBQVEsRUFBRSxRQUFTO0VBQ2xCLEdBQUcsRUFBRSxDQUFFO0VBQ1AsS0FBSyxFQUFFLGtCQUFJO0VBQ1gsTUFBTSxFQ3RCSyxHQUFHO0VEd0JmLE9BQU8sRUFBRSxLQUFNO0VBRWxCLEtBQUssRUFBRSxJQUFLO0VBQ1osV0FBVyxFQzNCSSxHQUFHO0VENEJsQixXQUFXLEVBQUUsTUFBTztFQUNwQixXQUFXLEVBQUUsSUFBSztFQUVsQixNQUFNLEVBQUUsT0FBUTtDQUVoQjs7QUFqREgsUUFBUSxHQUFHLE9BQU8sR0F3QmIsVUFBVSxHQTZCVCxhQUFhLENBQUE7RUFDaEIsT0FBTyxFQUFFLEtBQU07RUFDZixRQUFRLEVBQUUsUUFBUztFQUNsQixHQUFHLEVBQUUsR0FBSTtFQUNULEtBQUssRUN6Q1MsR0FBRztFRDBDakIsS0FBSyxFQUFFLGtCQUFJO0VBQ1gsTUFBTSxFQUFFLGtCQUFJO0VBR2IsYUFBYSxFQUFFLFNBQVU7RUFFekIsVUFBVSxFQ2hFTSxPQUFPLENEZ0VELDZCQUFHLENBQTJCLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUztFQUMzRSxlQUFlLEVBQUUsUUFBUztFQUsxQixNQUFNLEVBQUUsT0FBUTtFQUVoQixVQUFVLEVBQUUsTUFBTztDQUNuQjs7QUF6RUgsUUFBUSxHQUFHLE9BQU8sR0F3QmIsVUFBVSxHQTZCVCxhQUFhLEFBZWYsT0FBTyxDQUFBO0VBQUUsZ0JBQWdCLEVBQUUsK0JBQUc7RUFBOEIsZUFBZSxFQUFFLFNBQVU7Q0FBSTs7QUFwRS9GLFFBQVEsR0FBRyxPQUFPLEdBd0JiLFVBQVUsQUFzRFosT0FBTyxDQUFBO0VBQ1AsT0FBTyxFQUFFLEVBQUc7RUFDWixPQUFPLEVBQUUsS0FBTTtFQUNmLFFBQVEsRUFBRSxRQUFTO0VBQ2xCLEdBQUcsRUFBRSxDQUFFO0VBQ1AsS0FBSyxFQUFFLENBQUU7RUFDVCxLQUFLLEVDcEVTLEdBQUc7RURxRWpCLE1BQU0sRUNyRVEsR0FBRztFRHVFbEIsVUFBVSxFQUFFLHFDQUFHLENBQW1DLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUztFQUN6RSxlQUFlLEVBQUUsT0FBUTtFQUV6QixNQUFNLEVBQUUsT0FBUTtDQUVoQjs7QUE1RkgsUUFBUSxHQUFHLE9BQU8sR0FxR2IsV0FBVyxDQUFBO0VBQ1gsT0FBTyxFQUFFLEtBQU07RUFDZixRQUFRLEVBQUUsUUFBUztFQUNmLEdBQUcsRUFBRSxnQkFBSTtFQUNULEtBQUssRUFBRSxDQUFFO0VBRVYsTUFBTSxFQUFFLElBQUs7RUFFbkIsYUFBYSxFQUFFLEdBQUk7RUFDbkIsTUFBTSxFQUFFLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTTtFQUVsQixnQkFBZ0IsRUFBRSxJQUFLO0VBRXZCLFVBQVUsRUFBRSxvQkFBcUI7RUFHakMscUNBQXFDO0NBeUJ4Qzs7QUE5SUwsUUFBUSxHQUFHLE9BQU8sR0FxR2IsV0FBVyxHQWlCSixJQUFJLENBQUE7RUFDUCxPQUFPLEVBQUUsS0FBTTtFQUNmLFFBQVEsRUFBRSxRQUFTO0VBT3pCLEtBQUssRUFBRSxJQUFLO0VBQ1osT0FBTyxFQUFFLFFBQVM7RUFDbEIsWUFBWSxFQUFFLEdBQUk7RUFFbEIsTUFBTSxFQUFFLE9BQVE7Q0FNVjs7QUF6SVQsUUFBUSxHQUFHLE9BQU8sR0FxR2IsV0FBVyxHQWlCSixJQUFJLEFBS1osSUFBSyxDQUFBLFdBQVcsRUFBQztFQUNqQixhQUFhLEVBQUUsY0FBZTtDQUM5Qjs7QUE3SEosUUFBUSxHQUFHLE9BQU8sR0FxR2IsV0FBVyxHQWlCSixJQUFJLEFBZ0JaLE1BQU0sQ0FBQTtFQUNOLGdCQUFnQixFQUFFLElBQUs7Q0FDdkI7O0FBeElKLFFBQVEsR0FBRyxPQUFPLEdBaUpiLGtCQUFrQixDQUFBO0VBQUUsT0FBTyxFQUFFLElBQUs7Q0FBSTs7QUFqSjNDLFFBQVEsR0FBRyxPQUFPLEdBa0piLGtCQUFrQixHQUFHLFdBQVcsQ0FBQTtFQUFFLElBQUksRUFBRSxJQUFLO0NBQUk7O0FBbEp0RCxRQUFRLEdBQUcsT0FBTyxHQW1KYixrQkFBa0IsQUFBQSxRQUFRLEdBQUcsV0FBVyxDQUFBO0VBQUUsSUFBSSxFQUFFLElBQUs7Q0FBSTs7QUFuSjlELFFBQVEsR0FBRyxPQUFPLEdBb0piLGtCQUFrQixBQUFBLFFBQVEsR0FBRyxXQUFXLEFBQUEsT0FBTyxDQUFBO0VBQUUsSUFBSSxFQUFFLEdBQUk7Q0FBSSIsCgkibmFtZXMiOiBbXQp9 */ \ No newline at end of file diff --git a/css/header/expanded.css.map b/css/header/expanded.css.map new file mode 100644 index 0000000..bb1f4e3 --- /dev/null +++ b/css/header/expanded.css.map @@ -0,0 +1,14 @@ +{ + "version": 3, + "file": "expanded.css", + "sources": [ + "../header.scss", + "../constants.scss" + ], + "sourcesContent": [ + "@import 'constants';\n\n\n#WRAPPER > #HEADER{\n\n\t/* [1] Barre de recherche\n\t=========================================================*/\n\t& > #searchbar{\n\t\tdisplay: inline-block;\n\t\tposition: absolute;\n\t\t\ttop: .8em;\n\t\t\tleft: 1em;\n\t\t\twidth: 20em;\n\t\t\theight: 2em;\n\n\t\tpadding: .2em 1em;\n\n\t\tborder: 0;\n\t\tborder-radius: 3px;\n\n\t\tbackground-color: $theme-bg;\n\n\t}\n\n\t/* [2] Informations utilisateur\n\t=========================================================*/\n\t/* (0) Conteneur */\n\t& > #user-data{\n\t\tdisplay: inline-block;\n\t\tposition: absolute;\n\t\t\ttop: 0;\n\t\t\tright: 0;\n\t\t\theight: calc( 100% - 2*1em );\n\n\n\t\t/* (1) Username de l'utilisateur */\n\t\t& > #user-name{\n\t \tdisplay: block;\n\t \tposition: absolute;\n\t \t\ttop: 0;\n\t \t\tright: calc( #{$header-height}*2 - 1em );\n\t \t\theight: $header-height;\n\n\t \tpadding: 0 1em;\n\n\t\t\tcolor: #fff;\n\t\t\tline-height: $header-height;\n\t\t\twhite-space: nowrap;\n\t\t\tfont-weight: bold;\n\n\t\t\tcursor: pointer;\n\n\t\t}\n\n\n\t\t/* (2) Image du profil */\n\t\t& > #user-picture{\n\t\t\tdisplay: block;\n\t\t\tposition: absolute;\n\t\t\t\ttop: 1em;\n\t\t\t\tright: $header-height;\n\t\t\t\twidth: calc( #{$header-height} - 2*1em );\n\t\t\t\theight: calc( #{$header-height} - 2*1em );\n\n\n\t\t\tborder-radius: 50% / 50%;\n\n\t\t\tbackground: $theme-bg url('/f/svg/nopic/st/header') center center no-repeat;\n\t\t\tbackground-size: auto 80%;\n\n\t\t\t// Si on est connecte\n\t\t\t&.active{ background-image: url('/f/svg/sample/dy/profile'); background-size: auto 100%; }\n\n\t\t\tcursor: default;\n\n\t\t\talign-self: center;\n\t\t}\n\n\n\n\t\t/* (3) Icone d'activation */\n\t\t&:before{\n\t\t\tcontent: '';\n\t\t\tdisplay: block;\n\t\t\tposition: absolute;\n\t\t\t\ttop: 0;\n\t\t\t\tright: 0;\n\t\t\t\twidth: $header-height;\n\t\t\t\theight: $header-height;\n\n\t\t\tbackground: url('/f/svg/expand/st/header/ffffff') center center no-repeat;\n\t\t\tbackground-size: 1em 1em;\n\n\t\t\tcursor: pointer;\n\n\t\t}\n\n\n\t}\n\n\n\n\t/* [3] Menu deroulant pour l'administration du profil\n\t=========================================================*/\n\t& > .user-panel{\n \tdisplay: block;\n \tposition: absolute;\n \ttop: calc( #{$header-height} - 1em );\n \tright: 0;\n\n margin: .5em;\n\n\t\tborder-radius: 5px;\n\t\tborder: 1px solid darken($theme-bg, 10);\n\n background-color: #fff;\n\n transition: left .3s ease-in-out;\n\n\n /* (1) Pour chaque element du menu */\n & > span{\n \tdisplay: block;\n \tposition: relative;\n\n\t\t\t// On ajoute une ligne en dessous sauf pour le dernier\n\t\t\t&:not(:last-child){\n\t\t\t\tborder-bottom: 1px solid #ddd;\n\t\t\t}\n\n\t\t\tcolor: #000;\n\t\t\tpadding: .5em 1em;\n\t\t\tpadding-left: 2em;\n\n\t\t\tcursor: pointer;\n\n\t\t\t// @hover\n\t\t\t&:hover{\n\t\t\t\tbackground-color: #eee;\n\t\t\t}\n }\n\n\n\n\n }\n\n /* (3) Gestion de l'activation ou non de l'user panel */\n\t& > #toggle-user-panel{ display: none; }\n\t& > #toggle-user-panel + .user-panel{ left: 100%; }\n\t& > #toggle-user-panel:checked + .user-panel{ left: auto; }\n\t& > #toggle-user-panel:checked + .user-panel:before{ left: 7em; }\n\n\n\n\n\n\n}\n", + "/* [1] COULEURS\n=========================================================*/\n/* (1) COULEURS DU THEME $DEFAULT */\n$theme-bg: #e8e8e8;\n$theme-bg-primary: #ffffff;\n$theme-fg: #515151;\n$theme-fg-primary: #399ced;\n\n/* (2) COULEURS DE THEME $DARK */\n$dark-bg: #313541;\n$dark-bg-primary: #29282e;\n$dark-fg: #939393;\n$dark-fg-primary: #ffffff;\n\n\n/* [2] DIMENSIONS\n=========================================================*/\n/* (1) Layout de base */\n$menu-side-width: 15em;\n$header-height: 4em;\n" + ], + "mappings": "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", + "names": [] +} \ No newline at end of file diff --git a/css/header/min.css b/css/header/min.css new file mode 100644 index 0000000..02d2e5d --- /dev/null +++ b/css/header/min.css @@ -0,0 +1,3 @@ +#WRAPPER>#HEADER>#searchbar{display:inline-block;position:absolute;top:.8em;left:1em;width:20em;height:2em;padding:.2em 1em;border:0;border-radius:3px;background-color:#e8e8e8}#WRAPPER>#HEADER>#user-data{display:inline-block;position:absolute;top:0;right:0;height:calc( 100% - 2*1em)}#WRAPPER>#HEADER>#user-data>#user-name{display:block;position:absolute;top:0;right:calc( 4em*2 - 1em);height:4em;padding:0 1em;color:#fff;line-height:4em;white-space:nowrap;font-weight:bold;cursor:pointer}#WRAPPER>#HEADER>#user-data>#user-picture{display:block;position:absolute;top:1em;right:4em;width:calc( 4em - 2*1em);height:calc( 4em - 2*1em);border-radius:50% / 50%;background:#e8e8e8 url("/f/svg/nopic/st/header") center center no-repeat;background-size:auto 80%;cursor:default;align-self:center}#WRAPPER>#HEADER>#user-data>#user-picture.active{background-image:url("/f/svg/sample/dy/profile");background-size:auto 100%}#WRAPPER>#HEADER>#user-data:before{content:'';display:block;position:absolute;top:0;right:0;width:4em;height:4em;background:url("/f/svg/expand/st/header/ffffff") center center no-repeat;background-size:1em 1em;cursor:pointer}#WRAPPER>#HEADER>.user-panel{display:block;position:absolute;top:calc( 4em - 1em);right:0;margin:.5em;border-radius:5px;border:1px solid #cfcfcf;background-color:#fff;transition:left .3s ease-in-out}#WRAPPER>#HEADER>.user-panel>span{display:block;position:relative;color:#000;padding:.5em 1em;padding-left:2em;cursor:pointer}#WRAPPER>#HEADER>.user-panel>span:not(:last-child){border-bottom:1px solid #ddd}#WRAPPER>#HEADER>.user-panel>span:hover{background-color:#eee}#WRAPPER>#HEADER>#toggle-user-panel{display:none}#WRAPPER>#HEADER>#toggle-user-panel+.user-panel{left:100%}#WRAPPER>#HEADER>#toggle-user-panel:checked+.user-panel{left:auto}#WRAPPER>#HEADER>#toggle-user-panel:checked+.user-panel:before{left:7em} + +/*# sourceMappingURL=data:application/json;base64,ewoJInZlcnNpb24iOiAzLAoJImZpbGUiOiAibWluLmNzcyIsCgkic291cmNlcyI6IFsKCQkiLi4vaGVhZGVyLnNjc3MiLAoJCSIuLi9jb25zdGFudHMuc2NzcyIKCV0sCgkic291cmNlc0NvbnRlbnQiOiBbCgkJIkBpbXBvcnQgJ2NvbnN0YW50cyc7XG5cblxuI1dSQVBQRVIgPiAjSEVBREVSe1xuXG5cdC8qIFsxXSBCYXJyZSBkZSByZWNoZXJjaGVcblx0PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cblx0JiA+ICNzZWFyY2hiYXJ7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdHRvcDogLjhlbTtcblx0XHRcdGxlZnQ6IDFlbTtcblx0XHRcdHdpZHRoOiAyMGVtO1xuXHRcdFx0aGVpZ2h0OiAyZW07XG5cblx0XHRwYWRkaW5nOiAuMmVtIDFlbTtcblxuXHRcdGJvcmRlcjogMDtcblx0XHRib3JkZXItcmFkaXVzOiAzcHg7XG5cblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkdGhlbWUtYmc7XG5cblx0fVxuXG5cdC8qIFsyXSBJbmZvcm1hdGlvbnMgdXRpbGlzYXRldXJcblx0PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cblx0LyogKDApIENvbnRlbmV1ciAqL1xuXHQmID4gI3VzZXItZGF0YXtcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0dG9wOiAwO1xuXHRcdFx0cmlnaHQ6IDA7XG5cdFx0XHRoZWlnaHQ6IGNhbGMoIDEwMCUgLSAyKjFlbSApO1xuXG5cblx0XHQvKiAoMSkgVXNlcm5hbWUgZGUgbCd1dGlsaXNhdGV1ciAqL1xuXHRcdCYgPiAjdXNlci1uYW1le1xuXHQgICAgXHRkaXNwbGF5OiBibG9jaztcblx0ICAgIFx0cG9zaXRpb246IGFic29sdXRlO1xuXHQgICAgXHRcdHRvcDogMDtcblx0ICAgIFx0XHRyaWdodDogY2FsYyggI3skaGVhZGVyLWhlaWdodH0qMiAtIDFlbSApO1xuXHQgICAgXHRcdGhlaWdodDogJGhlYWRlci1oZWlnaHQ7XG5cblx0ICAgIFx0cGFkZGluZzogMCAxZW07XG5cblx0XHRcdGNvbG9yOiAjZmZmO1xuXHRcdFx0bGluZS1oZWlnaHQ6ICRoZWFkZXItaGVpZ2h0O1xuXHRcdFx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0XHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xuXG5cdFx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cblx0XHR9XG5cblxuXHRcdC8qICgyKSBJbWFnZSBkdSBwcm9maWwgKi9cblx0XHQmID4gI3VzZXItcGljdHVyZXtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHR0b3A6IDFlbTtcblx0XHRcdFx0cmlnaHQ6ICRoZWFkZXItaGVpZ2h0O1xuXHRcdFx0XHR3aWR0aDogY2FsYyggI3skaGVhZGVyLWhlaWdodH0gLSAyKjFlbSApO1xuXHRcdFx0XHRoZWlnaHQ6IGNhbGMoICN7JGhlYWRlci1oZWlnaHR9IC0gMioxZW0gKTtcblxuXG5cdFx0XHRib3JkZXItcmFkaXVzOiA1MCUgLyA1MCU7XG5cblx0XHRcdGJhY2tncm91bmQ6ICR0aGVtZS1iZyB1cmwoJy9mL3N2Zy9ub3BpYy9zdC9oZWFkZXInKSBjZW50ZXIgY2VudGVyIG5vLXJlcGVhdDtcblx0XHRcdGJhY2tncm91bmQtc2l6ZTogYXV0byA4MCU7XG5cblx0XHRcdC8vIFNpIG9uIGVzdCBjb25uZWN0ZVxuXHRcdFx0Ji5hY3RpdmV7IGJhY2tncm91bmQtaW1hZ2U6IHVybCgnL2Yvc3ZnL3NhbXBsZS9keS9wcm9maWxlJyk7IGJhY2tncm91bmQtc2l6ZTogYXV0byAxMDAlOyB9XG5cblx0XHRcdGN1cnNvcjogZGVmYXVsdDtcblxuXHRcdFx0YWxpZ24tc2VsZjogY2VudGVyO1xuXHRcdH1cblxuXG5cblx0XHQvKiAoMykgSWNvbmUgZCdhY3RpdmF0aW9uICovXG5cdFx0JjpiZWZvcmV7XG5cdFx0XHRjb250ZW50OiAnJztcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHR0b3A6IDA7XG5cdFx0XHRcdHJpZ2h0OiAwO1xuXHRcdFx0XHR3aWR0aDogJGhlYWRlci1oZWlnaHQ7XG5cdFx0XHRcdGhlaWdodDogJGhlYWRlci1oZWlnaHQ7XG5cblx0XHRcdGJhY2tncm91bmQ6IHVybCgnL2Yvc3ZnL2V4cGFuZC9zdC9oZWFkZXIvZmZmZmZmJykgY2VudGVyIGNlbnRlciBuby1yZXBlYXQ7XG5cdFx0XHRiYWNrZ3JvdW5kLXNpemU6IDFlbSAxZW07XG5cblx0XHRcdGN1cnNvcjogcG9pbnRlcjtcblxuXHRcdH1cblxuXG5cdH1cblxuXG5cblx0LyogWzNdIE1lbnUgZGVyb3VsYW50IHBvdXIgbCdhZG1pbmlzdHJhdGlvbiBkdSBwcm9maWxcblx0PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cblx0JiA+IC51c2VyLXBhbmVse1xuICAgIFx0ZGlzcGxheTogYmxvY2s7XG4gICAgXHRwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIFx0dG9wOiBjYWxjKCAjeyRoZWFkZXItaGVpZ2h0fSAtIDFlbSApO1xuICAgICAgICBcdHJpZ2h0OiAwO1xuXG4gICAgICAgIG1hcmdpbjogLjVlbTtcblxuXHRcdGJvcmRlci1yYWRpdXM6IDVweDtcblx0XHRib3JkZXI6IDFweCBzb2xpZCBkYXJrZW4oJHRoZW1lLWJnLCAxMCk7XG5cbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcblxuICAgICAgICB0cmFuc2l0aW9uOiBsZWZ0IC4zcyBlYXNlLWluLW91dDtcblxuXG4gICAgICAgIC8qICgxKSBQb3VyIGNoYXF1ZSBlbGVtZW50IGR1IG1lbnUgKi9cbiAgICAgICAgJiA+IHNwYW57XG4gICAgICAgIFx0ZGlzcGxheTogYmxvY2s7XG4gICAgICAgIFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdFx0XHQvLyBPbiBham91dGUgdW5lIGxpZ25lIGVuIGRlc3NvdXMgc2F1ZiBwb3VyIGxlIGRlcm5pZXJcblx0XHRcdCY6bm90KDpsYXN0LWNoaWxkKXtcblx0XHRcdFx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkZGQ7XG5cdFx0XHR9XG5cblx0XHRcdGNvbG9yOiAjMDAwO1xuXHRcdFx0cGFkZGluZzogLjVlbSAxZW07XG5cdFx0XHRwYWRkaW5nLWxlZnQ6IDJlbTtcblxuXHRcdFx0Y3Vyc29yOiBwb2ludGVyO1xuXG5cdFx0XHQvLyBAaG92ZXJcblx0XHRcdCY6aG92ZXJ7XG5cdFx0XHRcdGJhY2tncm91bmQtY29sb3I6ICNlZWU7XG5cdFx0XHR9XG4gICAgICAgIH1cblxuXG5cblxuICAgIH1cblxuICAgIC8qICgzKSBHZXN0aW9uIGRlIGwnYWN0aXZhdGlvbiBvdSBub24gZGUgbCd1c2VyIHBhbmVsICovXG5cdCYgPiAjdG9nZ2xlLXVzZXItcGFuZWx7IGRpc3BsYXk6IG5vbmU7IH1cblx0JiA+ICN0b2dnbGUtdXNlci1wYW5lbCArIC51c2VyLXBhbmVseyBsZWZ0OiAxMDAlOyB9XG5cdCYgPiAjdG9nZ2xlLXVzZXItcGFuZWw6Y2hlY2tlZCArIC51c2VyLXBhbmVseyBsZWZ0OiBhdXRvOyB9XG5cdCYgPiAjdG9nZ2xlLXVzZXItcGFuZWw6Y2hlY2tlZCArIC51c2VyLXBhbmVsOmJlZm9yZXsgbGVmdDogN2VtOyB9XG5cblxuXG5cblxuXG59XG4iLAoJCSIvKiBbMV0gQ09VTEVVUlNcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXG4vKiAoMSkgQ09VTEVVUlMgRFUgVEhFTUUgJERFRkFVTFQgKi9cbiR0aGVtZS1iZzogICAgICAgICAjZThlOGU4O1xuJHRoZW1lLWJnLXByaW1hcnk6ICNmZmZmZmY7XG4kdGhlbWUtZmc6ICAgICAgICAgIzUxNTE1MTtcbiR0aGVtZS1mZy1wcmltYXJ5OiAjMzk5Y2VkO1xuXG4vKiAoMikgQ09VTEVVUlMgREUgVEhFTUUgJERBUksgKi9cbiRkYXJrLWJnOiAgICAgICAgICMzMTM1NDE7XG4kZGFyay1iZy1wcmltYXJ5OiAjMjkyODJlO1xuJGRhcmstZmc6ICAgICAgICAgIzkzOTM5MztcbiRkYXJrLWZnLXByaW1hcnk6ICNmZmZmZmY7XG5cblxuLyogWzJdIERJTUVOU0lPTlNcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXG4vKiAoMSkgTGF5b3V0IGRlIGJhc2UgKi9cbiRtZW51LXNpZGUtd2lkdGg6IDE1ZW07XG4kaGVhZGVyLWhlaWdodDogICA0ZW07XG4iCgldLAoJIm1hcHBpbmdzIjogIkFBR0EsUUFBUSxDQUFHLE9BQU8sQ0FJYixVQUFVLEFBQUEsQ0FDYixPQUFPLENBQUUsWUFBYSxDQUN0QixRQUFRLENBQUUsUUFBUyxDQUNsQixHQUFHLENBQUUsSUFBSyxDQUNWLElBQUksQ0FBRSxHQUFJLENBQ1YsS0FBSyxDQUFFLElBQUssQ0FDWixNQUFNLENBQUUsR0FBSSxDQUViLE9BQU8sQ0FBRSxRQUFTLENBRWxCLE1BQU0sQ0FBRSxDQUFFLENBQ1YsYUFBYSxDQUFFLEdBQUksQ0FFbkIsZ0JBQWdCLENDakJDLE9BQU8sQ0RtQnhCLEFBbkJGLFFBQVEsQ0FBRyxPQUFPLENBd0JiLFVBQVUsQUFBQSxDQUNiLE9BQU8sQ0FBRSxZQUFhLENBQ3RCLFFBQVEsQ0FBRSxRQUFTLENBQ2xCLEdBQUcsQ0FBRSxDQUFFLENBQ1AsS0FBSyxDQUFFLENBQUUsQ0FDVCxNQUFNLENBQUUsbUJBQUksQ0FrRWIsQUEvRkYsUUFBUSxDQUFHLE9BQU8sQ0F3QmIsVUFBVSxDQVNULFVBQVUsQUFBQSxDQUNWLE9BQU8sQ0FBRSxLQUFNLENBQ2YsUUFBUSxDQUFFLFFBQVMsQ0FDbEIsR0FBRyxDQUFFLENBQUUsQ0FDUCxLQUFLLENBQUUsa0JBQUks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 */ \ No newline at end of file diff --git a/css/header/min.css.map b/css/header/min.css.map new file mode 100644 index 0000000..569c862 --- /dev/null +++ b/css/header/min.css.map @@ -0,0 +1,14 @@ +{ + "version": 3, + "file": "min.css", + "sources": [ + "../header.scss", + "../constants.scss" + ], + "sourcesContent": [ + "@import 'constants';\n\n\n#WRAPPER > #HEADER{\n\n\t/* [1] Barre de recherche\n\t=========================================================*/\n\t& > #searchbar{\n\t\tdisplay: inline-block;\n\t\tposition: absolute;\n\t\t\ttop: .8em;\n\t\t\tleft: 1em;\n\t\t\twidth: 20em;\n\t\t\theight: 2em;\n\n\t\tpadding: .2em 1em;\n\n\t\tborder: 0;\n\t\tborder-radius: 3px;\n\n\t\tbackground-color: $theme-bg;\n\n\t}\n\n\t/* [2] Informations utilisateur\n\t=========================================================*/\n\t/* (0) Conteneur */\n\t& > #user-data{\n\t\tdisplay: inline-block;\n\t\tposition: absolute;\n\t\t\ttop: 0;\n\t\t\tright: 0;\n\t\t\theight: calc( 100% - 2*1em );\n\n\n\t\t/* (1) Username de l'utilisateur */\n\t\t& > #user-name{\n\t \tdisplay: block;\n\t \tposition: absolute;\n\t \t\ttop: 0;\n\t \t\tright: calc( #{$header-height}*2 - 1em );\n\t \t\theight: $header-height;\n\n\t \tpadding: 0 1em;\n\n\t\t\tcolor: #fff;\n\t\t\tline-height: $header-height;\n\t\t\twhite-space: nowrap;\n\t\t\tfont-weight: bold;\n\n\t\t\tcursor: pointer;\n\n\t\t}\n\n\n\t\t/* (2) Image du profil */\n\t\t& > #user-picture{\n\t\t\tdisplay: block;\n\t\t\tposition: absolute;\n\t\t\t\ttop: 1em;\n\t\t\t\tright: $header-height;\n\t\t\t\twidth: calc( #{$header-height} - 2*1em );\n\t\t\t\theight: calc( #{$header-height} - 2*1em );\n\n\n\t\t\tborder-radius: 50% / 50%;\n\n\t\t\tbackground: $theme-bg url('/f/svg/nopic/st/header') center center no-repeat;\n\t\t\tbackground-size: auto 80%;\n\n\t\t\t// Si on est connecte\n\t\t\t&.active{ background-image: url('/f/svg/sample/dy/profile'); background-size: auto 100%; }\n\n\t\t\tcursor: default;\n\n\t\t\talign-self: center;\n\t\t}\n\n\n\n\t\t/* (3) Icone d'activation */\n\t\t&:before{\n\t\t\tcontent: '';\n\t\t\tdisplay: block;\n\t\t\tposition: absolute;\n\t\t\t\ttop: 0;\n\t\t\t\tright: 0;\n\t\t\t\twidth: $header-height;\n\t\t\t\theight: $header-height;\n\n\t\t\tbackground: url('/f/svg/expand/st/header/ffffff') center center no-repeat;\n\t\t\tbackground-size: 1em 1em;\n\n\t\t\tcursor: pointer;\n\n\t\t}\n\n\n\t}\n\n\n\n\t/* [3] Menu deroulant pour l'administration du profil\n\t=========================================================*/\n\t& > .user-panel{\n \tdisplay: block;\n \tposition: absolute;\n \ttop: calc( #{$header-height} - 1em );\n \tright: 0;\n\n margin: .5em;\n\n\t\tborder-radius: 5px;\n\t\tborder: 1px solid darken($theme-bg, 10);\n\n background-color: #fff;\n\n transition: left .3s ease-in-out;\n\n\n /* (1) Pour chaque element du menu */\n & > span{\n \tdisplay: block;\n \tposition: relative;\n\n\t\t\t// On ajoute une ligne en dessous sauf pour le dernier\n\t\t\t&:not(:last-child){\n\t\t\t\tborder-bottom: 1px solid #ddd;\n\t\t\t}\n\n\t\t\tcolor: #000;\n\t\t\tpadding: .5em 1em;\n\t\t\tpadding-left: 2em;\n\n\t\t\tcursor: pointer;\n\n\t\t\t// @hover\n\t\t\t&:hover{\n\t\t\t\tbackground-color: #eee;\n\t\t\t}\n }\n\n\n\n\n }\n\n /* (3) Gestion de l'activation ou non de l'user panel */\n\t& > #toggle-user-panel{ display: none; }\n\t& > #toggle-user-panel + .user-panel{ left: 100%; }\n\t& > #toggle-user-panel:checked + .user-panel{ left: auto; }\n\t& > #toggle-user-panel:checked + .user-panel:before{ left: 7em; }\n\n\n\n\n\n\n}\n", + "/* [1] COULEURS\n=========================================================*/\n/* (1) COULEURS DU THEME $DEFAULT */\n$theme-bg: #e8e8e8;\n$theme-bg-primary: #ffffff;\n$theme-fg: #515151;\n$theme-fg-primary: #399ced;\n\n/* (2) COULEURS DE THEME $DARK */\n$dark-bg: #313541;\n$dark-bg-primary: #29282e;\n$dark-fg: #939393;\n$dark-fg-primary: #ffffff;\n\n\n/* [2] DIMENSIONS\n=========================================================*/\n/* (1) Layout de base */\n$menu-side-width: 15em;\n$header-height: 4em;\n" + ], + "mappings": "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", + "names": [] +} \ No newline at end of file diff --git a/css/header/nested.css b/css/header/nested.css new file mode 100644 index 0000000..d06aec4 --- /dev/null +++ b/css/header/nested.css @@ -0,0 +1,106 @@ +/* [1] COULEURS +=========================================================*/ +/* (1) COULEURS DU THEME $DEFAULT */ +/* (2) COULEURS DE THEME $DARK */ +/* [2] DIMENSIONS +=========================================================*/ +/* (1) Layout de base */ +#WRAPPER > #HEADER { + /* [1] Barre de recherche + =========================================================*/ + /* [2] Informations utilisateur + =========================================================*/ + /* (0) Conteneur */ + /* [3] Menu deroulant pour l'administration du profil + =========================================================*/ + /* (3) Gestion de l'activation ou non de l'user panel */ } + #WRAPPER > #HEADER > #searchbar { + display: inline-block; + position: absolute; + top: .8em; + left: 1em; + width: 20em; + height: 2em; + padding: .2em 1em; + border: 0; + border-radius: 3px; + background-color: #e8e8e8; } + #WRAPPER > #HEADER > #user-data { + display: inline-block; + position: absolute; + top: 0; + right: 0; + height: calc( 100% - 2*1em); + /* (1) Username de l'utilisateur */ + /* (2) Image du profil */ + /* (3) Icone d'activation */ } + #WRAPPER > #HEADER > #user-data > #user-name { + display: block; + position: absolute; + top: 0; + right: calc( 4em*2 - 1em); + height: 4em; + padding: 0 1em; + color: #fff; + line-height: 4em; + white-space: nowrap; + font-weight: bold; + cursor: pointer; } + #WRAPPER > #HEADER > #user-data > #user-picture { + display: block; + position: absolute; + top: 1em; + right: 4em; + width: calc( 4em - 2*1em); + height: calc( 4em - 2*1em); + border-radius: 50% / 50%; + background: #e8e8e8 url("/f/svg/nopic/st/header") center center no-repeat; + background-size: auto 80%; + cursor: default; + align-self: center; } + #WRAPPER > #HEADER > #user-data > #user-picture.active { + background-image: url("/f/svg/sample/dy/profile"); + background-size: auto 100%; } + #WRAPPER > #HEADER > #user-data:before { + content: ''; + display: block; + position: absolute; + top: 0; + right: 0; + width: 4em; + height: 4em; + background: url("/f/svg/expand/st/header/ffffff") center center no-repeat; + background-size: 1em 1em; + cursor: pointer; } + #WRAPPER > #HEADER > .user-panel { + display: block; + position: absolute; + top: calc( 4em - 1em); + right: 0; + margin: .5em; + border-radius: 5px; + border: 1px solid #cfcfcf; + background-color: #fff; + transition: left .3s ease-in-out; + /* (1) Pour chaque element du menu */ } + #WRAPPER > #HEADER > .user-panel > span { + display: block; + position: relative; + color: #000; + padding: .5em 1em; + padding-left: 2em; + cursor: pointer; } + #WRAPPER > #HEADER > .user-panel > span:not(:last-child) { + border-bottom: 1px solid #ddd; } + #WRAPPER > #HEADER > .user-panel > span:hover { + background-color: #eee; } + #WRAPPER > #HEADER > #toggle-user-panel { + display: none; } + #WRAPPER > #HEADER > #toggle-user-panel + .user-panel { + left: 100%; } + #WRAPPER > #HEADER > #toggle-user-panel:checked + .user-panel { + left: auto; } + #WRAPPER > #HEADER > #toggle-user-panel:checked + .user-panel:before { + left: 7em; } + +/*# sourceMappingURL=data:application/json;base64,ewoJInZlcnNpb24iOiAzLAoJImZpbGUiOiAibmVzdGVkLmNzcyIsCgkic291cmNlcyI6IFsKCQkiLi4vaGVhZGVyLnNjc3MiLAoJCSIuLi9jb25zdGFudHMuc2NzcyIKCV0sCgkic291cmNlc0NvbnRlbnQiOiBbCgkJIkBpbXBvcnQgJ2NvbnN0YW50cyc7XG5cblxuI1dSQVBQRVIgPiAjSEVBREVSe1xuXG5cdC8qIFsxXSBCYXJyZSBkZSByZWNoZXJjaGVcblx0PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cblx0JiA+ICNzZWFyY2hiYXJ7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdHRvcDogLjhlbTtcblx0XHRcdGxlZnQ6IDFlbTtcblx0XHRcdHdpZHRoOiAyMGVtO1xuXHRcdFx0aGVpZ2h0OiAyZW07XG5cblx0XHRwYWRkaW5nOiAuMmVtIDFlbTtcblxuXHRcdGJvcmRlcjogMDtcblx0XHRib3JkZXItcmFkaXVzOiAzcHg7XG5cblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkdGhlbWUtYmc7XG5cblx0fVxuXG5cdC8qIFsyXSBJbmZvcm1hdGlvbnMgdXRpbGlzYXRldXJcblx0PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cblx0LyogKDApIENvbnRlbmV1ciAqL1xuXHQmID4gI3VzZXItZGF0YXtcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0dG9wOiAwO1xuXHRcdFx0cmlnaHQ6IDA7XG5cdFx0XHRoZWlnaHQ6IGNhbGMoIDEwMCUgLSAyKjFlbSApO1xuXG5cblx0XHQvKiAoMSkgVXNlcm5hbWUgZGUgbCd1dGlsaXNhdGV1ciAqL1xuXHRcdCYgPiAjdXNlci1uYW1le1xuXHQgICAgXHRkaXNwbGF5OiBibG9jaztcblx0ICAgIFx0cG9zaXRpb246IGFic29sdXRlO1xuXHQgICAgXHRcdHRvcDogMDtcblx0ICAgIFx0XHRyaWdodDogY2FsYyggI3skaGVhZGVyLWhlaWdodH0qMiAtIDFlbSApO1xuXHQgICAgXHRcdGhlaWdodDogJGhlYWRlci1oZWlnaHQ7XG5cblx0ICAgIFx0cGFkZGluZzogMCAxZW07XG5cblx0XHRcdGNvbG9yOiAjZmZmO1xuXHRcdFx0bGluZS1oZWlnaHQ6ICRoZWFkZXItaGVpZ2h0O1xuXHRcdFx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0XHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xuXG5cdFx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cblx0XHR9XG5cblxuXHRcdC8qICgyKSBJbWFnZSBkdSBwcm9maWwgKi9cblx0XHQmID4gI3VzZXItcGljdHVyZXtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHR0b3A6IDFlbTtcblx0XHRcdFx0cmlnaHQ6ICRoZWFkZXItaGVpZ2h0O1xuXHRcdFx0XHR3aWR0aDogY2FsYyggI3skaGVhZGVyLWhlaWdodH0gLSAyKjFlbSApO1xuXHRcdFx0XHRoZWlnaHQ6IGNhbGMoICN7JGhlYWRlci1oZWlnaHR9IC0gMioxZW0gKTtcblxuXG5cdFx0XHRib3JkZXItcmFkaXVzOiA1MCUgLyA1MCU7XG5cblx0XHRcdGJhY2tncm91bmQ6ICR0aGVtZS1iZyB1cmwoJy9mL3N2Zy9ub3BpYy9zdC9oZWFkZXInKSBjZW50ZXIgY2VudGVyIG5vLXJlcGVhdDtcblx0XHRcdGJhY2tncm91bmQtc2l6ZTogYXV0byA4MCU7XG5cblx0XHRcdC8vIFNpIG9uIGVzdCBjb25uZWN0ZVxuXHRcdFx0Ji5hY3RpdmV7IGJhY2tncm91bmQtaW1hZ2U6IHVybCgnL2Yvc3ZnL3NhbXBsZS9keS9wcm9maWxlJyk7IGJhY2tncm91bmQtc2l6ZTogYXV0byAxMDAlOyB9XG5cblx0XHRcdGN1cnNvcjogZGVmYXVsdDtcblxuXHRcdFx0YWxpZ24tc2VsZjogY2VudGVyO1xuXHRcdH1cblxuXG5cblx0XHQvKiAoMykgSWNvbmUgZCdhY3RpdmF0aW9uICovXG5cdFx0JjpiZWZvcmV7XG5cdFx0XHRjb250ZW50OiAnJztcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHR0b3A6IDA7XG5cdFx0XHRcdHJpZ2h0OiAwO1xuXHRcdFx0XHR3aWR0aDogJGhlYWRlci1oZWlnaHQ7XG5cdFx0XHRcdGhlaWdodDogJGhlYWRlci1oZWlnaHQ7XG5cblx0XHRcdGJhY2tncm91bmQ6IHVybCgnL2Yvc3ZnL2V4cGFuZC9zdC9oZWFkZXIvZmZmZmZmJykgY2VudGVyIGNlbnRlciBuby1yZXBlYXQ7XG5cdFx0XHRiYWNrZ3JvdW5kLXNpemU6IDFlbSAxZW07XG5cblx0XHRcdGN1cnNvcjogcG9pbnRlcjtcblxuXHRcdH1cblxuXG5cdH1cblxuXG5cblx0LyogWzNdIE1lbnUgZGVyb3VsYW50IHBvdXIgbCdhZG1pbmlzdHJhdGlvbiBkdSBwcm9maWxcblx0PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cblx0JiA+IC51c2VyLXBhbmVse1xuICAgIFx0ZGlzcGxheTogYmxvY2s7XG4gICAgXHRwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIFx0dG9wOiBjYWxjKCAjeyRoZWFkZXItaGVpZ2h0fSAtIDFlbSApO1xuICAgICAgICBcdHJpZ2h0OiAwO1xuXG4gICAgICAgIG1hcmdpbjogLjVlbTtcblxuXHRcdGJvcmRlci1yYWRpdXM6IDVweDtcblx0XHRib3JkZXI6IDFweCBzb2xpZCBkYXJrZW4oJHRoZW1lLWJnLCAxMCk7XG5cbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcblxuICAgICAgICB0cmFuc2l0aW9uOiBsZWZ0IC4zcyBlYXNlLWluLW91dDtcblxuXG4gICAgICAgIC8qICgxKSBQb3VyIGNoYXF1ZSBlbGVtZW50IGR1IG1lbnUgKi9cbiAgICAgICAgJiA+IHNwYW57XG4gICAgICAgIFx0ZGlzcGxheTogYmxvY2s7XG4gICAgICAgIFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdFx0XHQvLyBPbiBham91dGUgdW5lIGxpZ25lIGVuIGRlc3NvdXMgc2F1ZiBwb3VyIGxlIGRlcm5pZXJcblx0XHRcdCY6bm90KDpsYXN0LWNoaWxkKXtcblx0XHRcdFx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkZGQ7XG5cdFx0XHR9XG5cblx0XHRcdGNvbG9yOiAjMDAwO1xuXHRcdFx0cGFkZGluZzogLjVlbSAxZW07XG5cdFx0XHRwYWRkaW5nLWxlZnQ6IDJlbTtcblxuXHRcdFx0Y3Vyc29yOiBwb2ludGVyO1xuXG5cdFx0XHQvLyBAaG92ZXJcblx0XHRcdCY6aG92ZXJ7XG5cdFx0XHRcdGJhY2tncm91bmQtY29sb3I6ICNlZWU7XG5cdFx0XHR9XG4gICAgICAgIH1cblxuXG5cblxuICAgIH1cblxuICAgIC8qICgzKSBHZXN0aW9uIGRlIGwnYWN0aXZhdGlvbiBvdSBub24gZGUgbCd1c2VyIHBhbmVsICovXG5cdCYgPiAjdG9nZ2xlLXVzZXItcGFuZWx7IGRpc3BsYXk6IG5vbmU7IH1cblx0JiA+ICN0b2dnbGUtdXNlci1wYW5lbCArIC51c2VyLXBhbmVseyBsZWZ0OiAxMDAlOyB9XG5cdCYgPiAjdG9nZ2xlLXVzZXItcGFuZWw6Y2hlY2tlZCArIC51c2VyLXBhbmVseyBsZWZ0OiBhdXRvOyB9XG5cdCYgPiAjdG9nZ2xlLXVzZXItcGFuZWw6Y2hlY2tlZCArIC51c2VyLXBhbmVsOmJlZm9yZXsgbGVmdDogN2VtOyB9XG5cblxuXG5cblxuXG59XG4iLAoJCSIvKiBbMV0gQ09VTEVVUlNcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXG4vKiAoMSkgQ09VTEVVUlMgRFUgVEhFTUUgJERFRkFVTFQgKi9cbiR0aGVtZS1iZzogICAgICAgICAjZThlOGU4O1xuJHRoZW1lLWJnLXByaW1hcnk6ICNmZmZmZmY7XG4kdGhlbWUtZmc6ICAgICAgICAgIzUxNTE1MTtcbiR0aGVtZS1mZy1wcmltYXJ5OiAjMzk5Y2VkO1xuXG4vKiAoMikgQ09VTEVVUlMgREUgVEhFTUUgJERBUksgKi9cbiRkYXJrLWJnOiAgICAgICAgICMzMTM1NDE7XG4kZGFyay1iZy1wcmltYXJ5OiAjMjkyODJlO1xuJGRhcmstZmc6ICAgICAgICAgIzkzOTM5MztcbiRkYXJrLWZnLXByaW1hcnk6ICNmZmZmZmY7XG5cblxuLyogWzJdIERJTUVOU0lPTlNcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXG4vKiAoMSkgTGF5b3V0IGRlIGJhc2UgKi9cbiRtZW51LXNpZGUtd2lkdGg6IDE1ZW07XG4kaGVhZGVyLWhlaWdodDogICA0ZW07XG4iCgldLAoJIm1hcHBpbmdzIjogIkFDQUE7MkRBQzJEO0FBQzNELG9DQUFvQztBQU1wQyxpQ0FBaUM7QUFPakM7MkRBQzJEO0FBQzNELHdCQUF3QjtBRGR4QixRQUFRLEdBQUcsT0FBTyxDQUFBO0VBRWpCOzREQUMyRDtFQWtCM0Q7NERBQzJEO0VBQzNELG1CQUFtQjtFQTRFbkI7NERBQzJEO0VBNEN4RCx3REFBd0QsRUFXM0Q7RUEzSkQsUUFBUSxHQUFHLE9BQU8sR0FJYixVQUFVLENBQUE7SUFDYixPQUFPLEVBQUUsWUFBYTtJQUN0QixRQUFRLEVBQUUsUUFBUztJQUNsQixHQUFHLEVBQUUsSUFBSztJQUNWLElBQUksRUFBRSxHQUFJO0lBQ1YsS0FBSyxFQUFFLElBQUs7SUFDWixNQUFNLEVBQUUsR0FBSTtJQUViLE9BQU8sRUFBRSxRQUFTO0lBRWxCLE1BQU0sRUFBRSxDQUFFO0lBQ1YsYUFBYSxFQUFFLEdBQUk7SUFFbkIsZ0JBQWdCLEVDakJDLE9BQU8sR0RtQnhCO0VBbkJGLFFBQVEsR0FBRyxPQUFPLEdBd0JiLFVBQVUsQ0FBQTtJQUNiLE9BQU8sRUFBRSxZQUFhO0lBQ3RCLFFBQVEsRUFBRSxRQUFTO0lBQ2xCLEdBQUcsRUFBRSxDQUFFO0lBQ1AsS0FB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 */ \ No newline at end of file diff --git a/css/header/nested.css.map b/css/header/nested.css.map new file mode 100644 index 0000000..bd49967 --- /dev/null +++ b/css/header/nested.css.map @@ -0,0 +1,14 @@ +{ + "version": 3, + "file": "nested.css", + "sources": [ + "../header.scss", + "../constants.scss" + ], + "sourcesContent": [ + "@import 'constants';\n\n\n#WRAPPER > #HEADER{\n\n\t/* [1] Barre de recherche\n\t=========================================================*/\n\t& > #searchbar{\n\t\tdisplay: inline-block;\n\t\tposition: absolute;\n\t\t\ttop: .8em;\n\t\t\tleft: 1em;\n\t\t\twidth: 20em;\n\t\t\theight: 2em;\n\n\t\tpadding: .2em 1em;\n\n\t\tborder: 0;\n\t\tborder-radius: 3px;\n\n\t\tbackground-color: $theme-bg;\n\n\t}\n\n\t/* [2] Informations utilisateur\n\t=========================================================*/\n\t/* (0) Conteneur */\n\t& > #user-data{\n\t\tdisplay: inline-block;\n\t\tposition: absolute;\n\t\t\ttop: 0;\n\t\t\tright: 0;\n\t\t\theight: calc( 100% - 2*1em );\n\n\n\t\t/* (1) Username de l'utilisateur */\n\t\t& > #user-name{\n\t \tdisplay: block;\n\t \tposition: absolute;\n\t \t\ttop: 0;\n\t \t\tright: calc( #{$header-height}*2 - 1em );\n\t \t\theight: $header-height;\n\n\t \tpadding: 0 1em;\n\n\t\t\tcolor: #fff;\n\t\t\tline-height: $header-height;\n\t\t\twhite-space: nowrap;\n\t\t\tfont-weight: bold;\n\n\t\t\tcursor: pointer;\n\n\t\t}\n\n\n\t\t/* (2) Image du profil */\n\t\t& > #user-picture{\n\t\t\tdisplay: block;\n\t\t\tposition: absolute;\n\t\t\t\ttop: 1em;\n\t\t\t\tright: $header-height;\n\t\t\t\twidth: calc( #{$header-height} - 2*1em );\n\t\t\t\theight: calc( #{$header-height} - 2*1em );\n\n\n\t\t\tborder-radius: 50% / 50%;\n\n\t\t\tbackground: $theme-bg url('/f/svg/nopic/st/header') center center no-repeat;\n\t\t\tbackground-size: auto 80%;\n\n\t\t\t// Si on est connecte\n\t\t\t&.active{ background-image: url('/f/svg/sample/dy/profile'); background-size: auto 100%; }\n\n\t\t\tcursor: default;\n\n\t\t\talign-self: center;\n\t\t}\n\n\n\n\t\t/* (3) Icone d'activation */\n\t\t&:before{\n\t\t\tcontent: '';\n\t\t\tdisplay: block;\n\t\t\tposition: absolute;\n\t\t\t\ttop: 0;\n\t\t\t\tright: 0;\n\t\t\t\twidth: $header-height;\n\t\t\t\theight: $header-height;\n\n\t\t\tbackground: url('/f/svg/expand/st/header/ffffff') center center no-repeat;\n\t\t\tbackground-size: 1em 1em;\n\n\t\t\tcursor: pointer;\n\n\t\t}\n\n\n\t}\n\n\n\n\t/* [3] Menu deroulant pour l'administration du profil\n\t=========================================================*/\n\t& > .user-panel{\n \tdisplay: block;\n \tposition: absolute;\n \ttop: calc( #{$header-height} - 1em );\n \tright: 0;\n\n margin: .5em;\n\n\t\tborder-radius: 5px;\n\t\tborder: 1px solid darken($theme-bg, 10);\n\n background-color: #fff;\n\n transition: left .3s ease-in-out;\n\n\n /* (1) Pour chaque element du menu */\n & > span{\n \tdisplay: block;\n \tposition: relative;\n\n\t\t\t// On ajoute une ligne en dessous sauf pour le dernier\n\t\t\t&:not(:last-child){\n\t\t\t\tborder-bottom: 1px solid #ddd;\n\t\t\t}\n\n\t\t\tcolor: #000;\n\t\t\tpadding: .5em 1em;\n\t\t\tpadding-left: 2em;\n\n\t\t\tcursor: pointer;\n\n\t\t\t// @hover\n\t\t\t&:hover{\n\t\t\t\tbackground-color: #eee;\n\t\t\t}\n }\n\n\n\n\n }\n\n /* (3) Gestion de l'activation ou non de l'user panel */\n\t& > #toggle-user-panel{ display: none; }\n\t& > #toggle-user-panel + .user-panel{ left: 100%; }\n\t& > #toggle-user-panel:checked + .user-panel{ left: auto; }\n\t& > #toggle-user-panel:checked + .user-panel:before{ left: 7em; }\n\n\n\n\n\n\n}\n", + "/* [1] COULEURS\n=========================================================*/\n/* (1) COULEURS DU THEME $DEFAULT */\n$theme-bg: #e8e8e8;\n$theme-bg-primary: #ffffff;\n$theme-fg: #515151;\n$theme-fg-primary: #399ced;\n\n/* (2) COULEURS DE THEME $DARK */\n$dark-bg: #313541;\n$dark-bg-primary: #29282e;\n$dark-fg: #939393;\n$dark-fg-primary: #ffffff;\n\n\n/* [2] DIMENSIONS\n=========================================================*/\n/* (1) Layout de base */\n$menu-side-width: 15em;\n$header-height: 4em;\n" + ], + "mappings": "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", + "names": [] +} \ No newline at end of file diff --git a/css/layout.css b/css/layout.css deleted file mode 100755 index 4385ecd..0000000 --- a/css/layout.css +++ /dev/null @@ -1,2 +0,0 @@ -body{font-family:'Open Sans';font-size:15px}#WRAPPER{display:block;position:fixed;top:0;left:0;width:100%;height:100%;background-color:#e8e8e8;overflow-x:hidden;overflow-y:auto;z-index:1}#WRAPPER>#HEADER{display:block;position:fixed;top:0;left:0;width:100%;height:calc( 4em - 1px );border-bottom:1px solid #1484df;background-color:#399ced;z-index:9}#WRAPPER>#MENU-SIDE{display:block;position:fixed;top:4em;left:0;width:15em;height:calc( 100% - 4em );box-shadow:2px 1px 3px #ddd;background-color:#fff;transition:all .3s;z-index:10}#WRAPPER>#CONTAINER{display:flex;position:absolute;top:4em;left:15em;width:calc( 100% - 15em - 2*1em );min-height:calc( 100% - 4em - 2*1em );padding:1em;flex-direction:row;justify-content:space-between;overflow-x:none;overflow-y:auto}#LOGIN{display:flex;position:fixed;top:0;left:-100%;width:100%;height:100%;flex-direction:row;flex-wrap:nowrap;justify-content:space-around;align-items:center;background-color:#313541;transition:left .3s ease-in-out;z-index:101}#LOGIN.active{left:0}#LOGIN>#login-icon{width:35em;height:10em;background:url("/f/svg/icon/st") center center no-repeat;background-size:auto 100%}#LOGIN>#login-form{display:block}#LOGIN>#login-form>input[type='text'],#LOGIN>#login-form>input[type='password'],#LOGIN>#login-form>input[type='submit']{display:flex;width:20em;margin:2em 0;padding:1em 2em;flex-direction:column;justify-content:space-around;flex-wrap:nowrap;align-items:middle;border-radius:5px;border:1px solid #6b6b6b;background-color:#313541;color:#fff;font-weight:bold;letter-spacing:.07em;transition:border .2s ease-in-out;cursor:default}#LOGIN>#login-form>input[type='text']:hover,#LOGIN>#login-form>input[type='text']:focus,#LOGIN>#login-form>input[type='password']:hover,#LOGIN>#login-form>input[type='password']:focus,#LOGIN>#login-form>input[type='submit']:hover,#LOGIN>#login-form>input[type='submit']:focus{border-color:#399ced}#LOGIN>#login-form>input[type='submit']{width:100%;margin:2em 0;border:0;background-color:#399ced;color:#fff;font-weight:bold;text-align:left;cursor:pointer}#LOGIN>#login-form>input[type='submit']:hover{background-color:#1484df;box-shadow:0 0 1em #1b1d24}#LOGIN>#login-form>#lost-password{color:#939393;cursor:pointer}#LOGIN>#login-form>#lost-password:hover{color:#399ced;text-decoration:underline}#LOGIN>#login-close{display:block;position:absolute;top:2em;right:2em;min-width:2em;height:2em;background:url("/f/svg/back/st/container/ffffff") right center no-repeat;background-size:1em;color:#fff;padding-right:2em;line-height:2em;font-weight:bold;cursor:pointer} -/*# sourceMappingURL=layout.css.map */ diff --git a/css/layout.css.map b/css/layout.css.map deleted file mode 100755 index 9ca908c..0000000 --- a/css/layout.css.map +++ /dev/null @@ -1,7 +0,0 @@ -{ -"version": 3, -"mappings": "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", -"sources": ["layout.scss","constants.scss"], -"names": [], -"file": "layout.css" -} \ No newline at end of file diff --git a/css/layout.scss b/css/layout.scss index 27ae001..fade6fb 100755 --- a/css/layout.scss +++ b/css/layout.scss @@ -71,13 +71,14 @@ body{ position: absolute; top: $header-height; left: $menu-side-width; - width: calc( 100% - #{$menu-side-width} - 2*1em ); - min-height: calc( 100% - #{$header-height} - 2*1em ); - padding: 1em; + width: calc( 100% - #{$menu-side-width} ); + min-height: calc( 100% - #{$header-height} ); + // margin: 1em; // Flex properties flex-direction: row; justify-content: space-between; + flex-wrap: wrap; overflow-x: none; overflow-y: auto; diff --git a/css/layout/compact.css b/css/layout/compact.css new file mode 100644 index 0000000..41e0b1c --- /dev/null +++ b/css/layout/compact.css @@ -0,0 +1,42 @@ +/* [1] COULEURS +=========================================================*/ +/* (1) COULEURS DU THEME $DEFAULT */ +/* (2) COULEURS DE THEME $DARK */ +/* [2] DIMENSIONS +=========================================================*/ +/* (1) Layout de base */ +body { font-family: 'Open Sans'; font-size: 15px; } + +#WRAPPER { display: block; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: #e8e8e8; overflow-x: hidden; overflow-y: auto; z-index: 1; /* [1] Header de la page ==========================================*/ /* [2] Side-Menu de la page ==========================================*/ /* [3] Container de la page ==========================================*/ } + +#WRAPPER > #HEADER { display: block; position: fixed; top: 0; left: 0; width: 100%; height: calc( 4em - 1px); border-bottom: 1px solid #1484df; background-color: #399ced; z-index: 9; } + +#WRAPPER > #MENU-SIDE { display: block; position: fixed; top: 4em; left: 0; width: 15em; height: calc( 100% - 4em); box-shadow: 2px 1px 3px #ddd; background-color: #fff; transition: all .3s; z-index: 10; } + +#WRAPPER > #CONTAINER { display: flex; position: absolute; top: 4em; left: 15em; width: calc( 100% - 15em); min-height: calc( 100% - 4em); flex-direction: row; justify-content: space-between; flex-wrap: wrap; overflow-x: none; overflow-y: auto; } + +/* [4] Page de login +=========================================================*/ +#LOGIN { display: flex; position: fixed; top: 0; left: -100%; width: 100%; height: 100%; flex-direction: row; flex-wrap: nowrap; justify-content: space-around; align-items: center; background-color: #313541; transition: left .3s ease-in-out; z-index: 101; /* (1) Logo et nom du site */ /* (2) Formulaire de connexion */ /* (4) Gestion de la fermeture */ } + +#LOGIN.active { left: 0; } + +#LOGIN > #login-icon { width: 35em; height: 10em; background: url("/f/svg/icon/st") center center no-repeat; background-size: auto 100%; } + +#LOGIN > #login-form { display: block; /* (2.1) Champs de texte (login/password) */ /* (2.2) Bouton de connexion */ /* (3) Mot de passe oublie */ } + +#LOGIN > #login-form > input[type='text'], #LOGIN > #login-form > input[type='password'], #LOGIN > #login-form > input[type='submit'] { display: flex; width: 20em; margin: 2em 0; padding: 1em 2em; flex-direction: column; justify-content: space-around; flex-wrap: nowrap; align-items: middle; border-radius: 5px; border: 1px solid #6b6b6b; background-color: #313541; color: #ffffff; font-weight: bold; letter-spacing: .07em; transition: border .2s ease-in-out; cursor: default; } + +#LOGIN > #login-form > input[type='text']:hover, #LOGIN > #login-form > input[type='text']:focus, #LOGIN > #login-form > input[type='password']:hover, #LOGIN > #login-form > input[type='password']:focus, #LOGIN > #login-form > input[type='submit']:hover, #LOGIN > #login-form > input[type='submit']:focus { border-color: #399ced; } + +#LOGIN > #login-form > input[type='submit'] { width: 100%; margin: 2em 0; border: 0; background-color: #399ced; color: #ffffff; font-weight: bold; text-align: left; cursor: pointer; } + +#LOGIN > #login-form > input[type='submit']:hover { background-color: #1484df; box-shadow: 0 0 1em #1b1d24; } + +#LOGIN > #login-form > #lost-password { color: #939393; cursor: pointer; } + +#LOGIN > #login-form > #lost-password:hover { color: #399ced; text-decoration: underline; } + +#LOGIN > #login-close { display: block; position: absolute; top: 2em; right: 2em; min-width: 2em; height: 2em; background: url("/f/svg/back/st/container/ffffff") right center no-repeat; background-size: 1em; color: #fff; padding-right: 2em; line-height: 2em; font-weight: bold; cursor: pointer; } + +/*# sourceMappingURL=data:application/json;base64,ewoJInZlcnNpb24iOiAzLAoJImZpbGUiOiAiY29tcGFjdC5jc3MiLAoJInNvdXJjZXMiOiBbCgkJIi4uL2xheW91dC5zY3NzIiwKCQkiLi4vY29uc3RhbnRzLnNjc3MiCgldLAoJInNvdXJjZXNDb250ZW50IjogWwoJCSJAaW1wb3J0ICdjb25zdGFudHMnO1xuXG5ib2R5e1xuXG5cdGZvbnQtZmFtaWx5OiAnT3BlbiBTYW5zJztcblx0Zm9udC1zaXplOiAxNXB4O1xufVxuXG5cblxuI1dSQVBQRVJ7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRwb3NpdGlvbjogZml4ZWQ7XG5cdFx0dG9wOiAwO1xuXHRcdGxlZnQ6IDA7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0aGVpZ2h0OiAxMDAlO1xuXG5cdGJhY2tncm91bmQtY29sb3I6ICR0aGVtZS1iZztcblxuXHRvdmVyZmxvdy14OiBoaWRkZW47XG5cdG92ZXJmbG93LXk6IGF1dG87XG5cblx0ei1pbmRleDogMTtcblxuXG5cdC8qIFsxXSBIZWFkZXIgZGUgbGEgcGFnZVxuXHQ9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xuXHQmID4gI0hFQURFUntcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRwb3NpdGlvbjogZml4ZWQ7XG5cdFx0XHR0b3A6IDA7XG5cdFx0XHRsZWZ0OiAwO1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRoZWlnaHQ6IGNhbGMoICN7JGhlYWRlci1oZWlnaHR9IC0gMXB4ICk7XG5cblx0XHRib3JkZXItYm90dG9tOiAxcHggc29saWQgZGFya2VuKCR0aGVtZS1mZy1wcmltYXJ5LCAxMCk7XG5cblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkdGhlbWUtZmctcHJpbWFyeTtcblxuXHRcdHotaW5kZXg6IDk7XG5cblx0fVxuXG5cblx0LyogWzJdIFNpZGUtTWVudSBkZSBsYSBwYWdlXG5cdD09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXG5cdC8vIEdlc3Rpb24gZHUgbWVudVxuXHQmID4gI01FTlUtU0lERXtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRwb3NpdGlvbjogZml4ZWQ7XG5cdFx0XHR0b3A6ICRoZWFkZXItaGVpZ2h0O1xuXHRcdFx0bGVmdDogMDtcblx0XHRcdHdpZHRoOiAkbWVudS1zaWRlLXdpZHRoO1xuXHRcdFx0aGVpZ2h0OiBjYWxjKCAxMDAlIC0gI3skaGVhZGVyLWhlaWdodH0gKTtcblxuXHRcdGJveC1zaGFkb3c6IDJweCAxcHggM3B4ICNkZGQ7XG5cblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuXG5cdFx0dHJhbnNpdGlvbjogYWxsIC4zcztcblxuXHRcdHotaW5kZXg6IDEwO1xuXHR9XG5cblxuXHQvKiBbM10gQ29udGFpbmVyIGRlIGxhIHBhZ2Vcblx0PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cblx0JiA+ICNDT05UQUlORVJ7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHR0b3A6ICRoZWFkZXItaGVpZ2h0O1xuXHRcdFx0bGVmdDogJG1lbnUtc2lkZS13aWR0aDtcblx0XHRcdHdpZHRoOiBjYWxjKCAxMDAlIC0gI3skbWVudS1zaWRlLXdpZHRofSApO1xuXHRcdFx0bWluLWhlaWdodDogY2FsYyggMTAwJSAtICN7JGhlYWRlci1oZWlnaHR9ICk7XG5cdFx0Ly8gIG1hcmdpbjogMWVtO1xuXG5cdFx0Ly8gRmxleCBwcm9wZXJ0aWVzXG5cdFx0ZmxleC1kaXJlY3Rpb246IHJvdztcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cdFx0ZmxleC13cmFwOiB3cmFwO1xuXG5cdFx0b3ZlcmZsb3cteDogbm9uZTtcblx0XHRvdmVyZmxvdy15OiBhdXRvO1xuXHR9XG59XG5cblxuXG5cbi8qIFs0XSBQYWdlIGRlIGxvZ2luXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xuI0xPR0lOe1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRwb3NpdGlvbjogZml4ZWQ7XG5cdFx0dG9wOiAwO1xuXHRcdGxlZnQ6IC0xMDAlO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdGhlaWdodDogMTAwJTtcblxuXHQvLyBRdWFuZCBsYSBwYWdlIGRlIGxvZ2luIGVzdCB2aXNpYmxlXG5cdCYuYWN0aXZle1xuXHRcdGxlZnQ6IDA7XG5cdH1cblxuXHQvLyBmbGV4IHByb3BlcnRpZXNcblx0ZmxleC1kaXJlY3Rpb246IHJvdztcblx0ZmxleC13cmFwOiBub3dyYXA7XG5cdGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xuXHRhbGlnbi1pdGVtczogY2VudGVyO1xuXG5cblx0YmFja2dyb3VuZC1jb2xvcjogJGRhcmstYmc7XG5cblx0dHJhbnNpdGlvbjogbGVmdCAuM3MgZWFzZS1pbi1vdXQ7XG5cblx0ei1pbmRleDogMTAxO1xuXG5cblxuXG5cdC8qICgxKSBMb2dvIGV0IG5vbSBkdSBzaXRlICovXG5cdCYgPiAjbG9naW4taWNvbntcblx0XHR3aWR0aDogMzVlbTtcblx0XHRoZWlnaHQ6IDEwZW07XG5cblx0XHRiYWNrZ3JvdW5kOiB1cmwoJy9mL3N2Zy9pY29uL3N0JykgY2VudGVyIGNlbnRlciBuby1yZXBlYXQ7XG5cdFx0YmFja2dyb3VuZC1zaXplOiBhdXRvIDEwMCU7XG5cdH1cblxuXG5cdC8qICgyKSBGb3JtdWxhaXJlIGRlIGNvbm5leGlvbiAqL1xuXHQmID4gI2xvZ2luLWZvcm17XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cblxuXHRcdC8qICgyLjEpIENoYW1wcyBkZSB0ZXh0ZSAobG9naW4vcGFzc3dvcmQpICovXG5cdFx0JiA+IGlucHV0W3R5cGU9J3RleHQnXSxcblx0XHQmID4gaW5wdXRbdHlwZT0ncGFzc3dvcmQnXSxcblx0XHQmID4gaW5wdXRbdHlwZT0nc3VibWl0J117XG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0XHR3aWR0aDogMjBlbTtcblxuXHRcdFx0bWFyZ2luOiAyZW0gMDtcblx0XHRcdHBhZGRpbmc6IDFlbSAyZW07XG5cblx0XHRcdC8vIGZsZXggcHJvcGVydGllc1xuXHRcdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0XHRcdGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xuXHRcdFx0ZmxleC13cmFwOiBub3dyYXA7XG5cdFx0XHRhbGlnbi1pdGVtczogbWlkZGxlO1xuXG5cblx0XHRcdGJvcmRlci1yYWRpdXM6IDVweDtcblx0XHRcdGJvcmRlcjogMXB4IHNvbGlkIGxpZ2h0ZW4oJHRoZW1lLWZnLCAxMCk7XG5cblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRkYXJrLWJnO1xuXG5cdFx0XHRjb2xvcjogJGRhcmstZmctcHJpbWFyeTtcblx0XHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRcdFx0bGV0dGVyLXNwYWNpbmc6IC4wN2VtO1xuXG5cdFx0XHR0cmFuc2l0aW9uOiBib3JkZXIgLjJzIGVhc2UtaW4tb3V0O1xuXG5cdFx0XHRjdXJzb3I6IGRlZmF1bHQ7XG5cblx0XHRcdC8vIEFuaW1hdGlvbiBkZSBAaG92ZXIvQGZvY3VzXG5cdFx0XHQmOmhvdmVyLFxuXHRcdFx0Jjpmb2N1c3tcblx0XHRcdFx0Ym9yZGVyLWNvbG9yOiAkdGhlbWUtZmctcHJpbWFyeTtcblx0XHRcdH1cblxuXHRcdH1cblxuXG5cdFx0LyogKDIuMikgQm91dG9uIGRlIGNvbm5leGlvbiAqL1xuXHRcdCYgPiBpbnB1dFt0eXBlPSdzdWJtaXQnXXtcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0bWFyZ2luOiAyZW0gMDtcblxuXHRcdFx0Ym9yZGVyOiAwO1xuXG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkdGhlbWUtZmctcHJpbWFyeTtcblxuXHRcdFx0Y29sb3I6ICRkYXJrLWZnLXByaW1hcnk7XG5cdFx0XHRmb250LXdlaWdodDogYm9sZDtcblx0XHRcdHRleHQtYWxpZ246IGxlZnQ7XG5cblx0XHRcdGN1cnNvcjogcG9pbnRlcjtcblxuXHRcdFx0Ly8gQW5pbWF0aW9uIGRlIEBob3ZlclxuXHRcdFx0Jjpob3Zlcntcblx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCR0aGVtZS1mZy1wcmltYXJ5LCAxMCk7XG5cdFx0XHRcdGJveC1zaGFkb3c6IDAgMCAxZW0gZGFya2VuKCRkYXJrLWJnLCAxMCk7XG5cdFx0XHR9XG5cblx0XHR9XG5cblxuXG5cblxuXHRcdC8qICgzKSBNb3QgZGUgcGFzc2Ugb3VibGllICovXG5cdFx0JiA+ICNsb3N0LXBhc3N3b3Jke1xuXHRcdFx0Y29sb3I6ICRkYXJrLWZnO1xuXG5cdFx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cblx0XHRcdC8vIEFuaW1hdGlvbiBkZSBAaG92ZXJcblx0XHRcdCY6aG92ZXJ7XG5cdFx0XHRcdGNvbG9yOiAkdGhlbWUtZmctcHJpbWFyeTtcblx0XHRcdFx0dGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdH1cblxuXHQvKiAoNCkgR2VzdGlvbiBkZSBsYSBmZXJtZXR1cmUgKi9cblx0JiA+ICNsb2dpbi1jbG9zZXtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHR0b3A6IDJlbTtcblx0XHRcdHJpZ2h0OiAyZW07XG5cdFx0XHRtaW4td2lkdGg6IDJlbTtcblx0XHRcdGhlaWdodDogMmVtO1xuXG5cdFx0YmFja2dyb3VuZDogdXJsKCcvZi9zdmcvYmFjay9zdC9jb250YWluZXIvZmZmZmZmJykgcmlnaHQgY2VudGVyIG5vLXJlcGVhdDtcblx0XHRiYWNrZ3JvdW5kLXNpemU6IDFlbTtcblxuXHRcdGNvbG9yOiAjZmZmO1xuXHRcdHBhZGRpbmctcmlnaHQ6IDJlbTtcblx0XHRsaW5lLWhlaWdodDogMmVtO1xuXHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xuXG5cdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHR9XG59XG4iLAoJCSIvKiBbMV0gQ09VTEVVUlNcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXG4vKiAoMSkgQ09VTEVVUlMgRFUgVEhFTUUgJERFRkFVTFQgKi9cbiR0aGVtZS1iZzogICAgICAgICAjZThlOGU4O1xuJHRoZW1lLWJnLXByaW1hcnk6ICNmZmZmZmY7XG4kdGhlbWUtZmc6ICAgICAgICAgIzUxNTE1MTtcbiR0aGVtZS1mZy1wcmltYXJ5OiAjMzk5Y2VkO1xuXG4vKiAoMikgQ09VTEVVUlMgREUgVEhFTUUgJERBUksgKi9cbiRkYXJrLWJnOiAgICAgICAgICMzMTM1NDE7XG4kZGFyay1iZy1wcmltYXJ5OiAjMjkyODJlO1xuJGRhcmstZmc6ICAgICAgICAgIzkzOTM5MztcbiRkYXJrLWZnLXByaW1hcnk6ICNmZmZmZmY7XG5cblxuLyogWzJdIERJTUVOU0lPTlNcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXG4vKiAoMSkgTGF5b3V0IGRlIGJhc2UgKi9cbiRtZW51LXNpZGUtd2lkdGg6IDE1ZW07XG4kaGVhZGVyLWhlaWdodDogICA0ZW07XG4iCgldLAoJIm1hcHBpbmdzIjogIkFDQUE7MkRBQzJEO0FBQzNELG9DQUFvQztBQU1wQyxpQ0FBaUM7QUFPakM7MkRBQzJEO0FBQzNELHdCQUF3QjtBRGZ4QixJQUFJLENBQUEsRUFFSCxXQUFXLEVBQUUsV0FBWSxFQUN6QixTQUFTLEVBQUUsSUFBSyxHQUNoQjs7QUFJRCxRQUFRLENBQUEsRUFDUCxPQUFPLEVBQUUsS0FBTSxFQUNmLFFBQVEsRUFBRSxLQUFNLEVBQ2YsR0FBRyxFQUFFLENBQUUsRUFDUCxJQUFJLEVBQUUsQ0FBRSxFQUNSLEtBQUssRUFBRSxJQUFLLEVBQ1osTUFBTSxFQUFFLElBQUssRUFFZCxnQkFBZ0IsRUNmRSxPQUFPLEVEaUJ6QixVQUFVLEVBQUUsTUFBTyxFQUNuQixVQUFVLEVBQUUsSUFBSyxFQUVqQixPQUFPLEVBQUUsQ0FBRSxFQUdYLHFFQUM0QyxDQWtCNUMsd0VBQzRDLENBb0I1Qyx3RUFDNEMsRUFr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 */ \ No newline at end of file diff --git a/css/layout/compact.css.map b/css/layout/compact.css.map new file mode 100644 index 0000000..3a0b2b7 --- /dev/null +++ b/css/layout/compact.css.map @@ -0,0 +1,14 @@ +{ + "version": 3, + "file": "compact.css", + "sources": [ + "../layout.scss", + "../constants.scss" + ], + "sourcesContent": [ + "@import 'constants';\n\nbody{\n\n\tfont-family: 'Open Sans';\n\tfont-size: 15px;\n}\n\n\n\n#WRAPPER{\n\tdisplay: block;\n\tposition: fixed;\n\t\ttop: 0;\n\t\tleft: 0;\n\t\twidth: 100%;\n\t\theight: 100%;\n\n\tbackground-color: $theme-bg;\n\n\toverflow-x: hidden;\n\toverflow-y: auto;\n\n\tz-index: 1;\n\n\n\t/* [1] Header de la page\n\t==========================================*/\n\t& > #HEADER{\n\t\tdisplay: block;\n\t\tposition: fixed;\n\t\t\ttop: 0;\n\t\t\tleft: 0;\n\t\t\twidth: 100%;\n\t\t\theight: calc( #{$header-height} - 1px );\n\n\t\tborder-bottom: 1px solid darken($theme-fg-primary, 10);\n\n\t\tbackground-color: $theme-fg-primary;\n\n\t\tz-index: 9;\n\n\t}\n\n\n\t/* [2] Side-Menu de la page\n\t==========================================*/\n\t// Gestion du menu\n\t& > #MENU-SIDE{\n\t\tdisplay: block;\n\t\tposition: fixed;\n\t\t\ttop: $header-height;\n\t\t\tleft: 0;\n\t\t\twidth: $menu-side-width;\n\t\t\theight: calc( 100% - #{$header-height} );\n\n\t\tbox-shadow: 2px 1px 3px #ddd;\n\n\t\tbackground-color: #fff;\n\n\t\ttransition: all .3s;\n\n\t\tz-index: 10;\n\t}\n\n\n\t/* [3] Container de la page\n\t==========================================*/\n\t& > #CONTAINER{\n\t\tdisplay: flex;\n\t\tposition: absolute;\n\t\t\ttop: $header-height;\n\t\t\tleft: $menu-side-width;\n\t\t\twidth: calc( 100% - #{$menu-side-width} );\n\t\t\tmin-height: calc( 100% - #{$header-height} );\n\t\t// margin: 1em;\n\n\t\t// Flex properties\n\t\tflex-direction: row;\n\t\tjustify-content: space-between;\n\t\tflex-wrap: wrap;\n\n\t\toverflow-x: none;\n\t\toverflow-y: auto;\n\t}\n}\n\n\n\n\n/* [4] Page de login\n=========================================================*/\n#LOGIN{\n\tdisplay: flex;\n\tposition: fixed;\n\t\ttop: 0;\n\t\tleft: -100%;\n\t\twidth: 100%;\n\t\theight: 100%;\n\n\t// Quand la page de login est visible\n\t&.active{\n\t\tleft: 0;\n\t}\n\n\t// flex properties\n\tflex-direction: row;\n\tflex-wrap: nowrap;\n\tjustify-content: space-around;\n\talign-items: center;\n\n\n\tbackground-color: $dark-bg;\n\n\ttransition: left .3s ease-in-out;\n\n\tz-index: 101;\n\n\n\n\n\t/* (1) Logo et nom du site */\n\t& > #login-icon{\n\t\twidth: 35em;\n\t\theight: 10em;\n\n\t\tbackground: url('/f/svg/icon/st') center center no-repeat;\n\t\tbackground-size: auto 100%;\n\t}\n\n\n\t/* (2) Formulaire de connexion */\n\t& > #login-form{\n\t\tdisplay: block;\n\n\n\t\t/* (2.1) Champs de texte (login/password) */\n\t\t& > input[type='text'],\n\t\t& > input[type='password'],\n\t\t& > input[type='submit']{\n\t\t\tdisplay: flex;\n\t\t\t\twidth: 20em;\n\n\t\t\tmargin: 2em 0;\n\t\t\tpadding: 1em 2em;\n\n\t\t\t// flex properties\n\t\t\tflex-direction: column;\n\t\t\tjustify-content: space-around;\n\t\t\tflex-wrap: nowrap;\n\t\t\talign-items: middle;\n\n\n\t\t\tborder-radius: 5px;\n\t\t\tborder: 1px solid lighten($theme-fg, 10);\n\n\t\t\tbackground-color: $dark-bg;\n\n\t\t\tcolor: $dark-fg-primary;\n\t\t\tfont-weight: bold;\n\t\t\tletter-spacing: .07em;\n\n\t\t\ttransition: border .2s ease-in-out;\n\n\t\t\tcursor: default;\n\n\t\t\t// Animation de @hover/@focus\n\t\t\t&:hover,\n\t\t\t&:focus{\n\t\t\t\tborder-color: $theme-fg-primary;\n\t\t\t}\n\n\t\t}\n\n\n\t\t/* (2.2) Bouton de connexion */\n\t\t& > input[type='submit']{\n\t\t\twidth: 100%;\n\t\t\tmargin: 2em 0;\n\n\t\t\tborder: 0;\n\n\t\t\tbackground-color: $theme-fg-primary;\n\n\t\t\tcolor: $dark-fg-primary;\n\t\t\tfont-weight: bold;\n\t\t\ttext-align: left;\n\n\t\t\tcursor: pointer;\n\n\t\t\t// Animation de @hover\n\t\t\t&:hover{\n\t\t\t\tbackground-color: darken($theme-fg-primary, 10);\n\t\t\t\tbox-shadow: 0 0 1em darken($dark-bg, 10);\n\t\t\t}\n\n\t\t}\n\n\n\n\n\n\t\t/* (3) Mot de passe oublie */\n\t\t& > #lost-password{\n\t\t\tcolor: $dark-fg;\n\n\t\t\tcursor: pointer;\n\n\t\t\t// Animation de @hover\n\t\t\t&:hover{\n\t\t\t\tcolor: $theme-fg-primary;\n\t\t\t\ttext-decoration: underline;\n\t\t\t}\n\t\t}\n\n\t}\n\n\t/* (4) Gestion de la fermeture */\n\t& > #login-close{\n\t\tdisplay: block;\n\t\tposition: absolute;\n\t\t\ttop: 2em;\n\t\t\tright: 2em;\n\t\t\tmin-width: 2em;\n\t\t\theight: 2em;\n\n\t\tbackground: url('/f/svg/back/st/container/ffffff') right center no-repeat;\n\t\tbackground-size: 1em;\n\n\t\tcolor: #fff;\n\t\tpadding-right: 2em;\n\t\tline-height: 2em;\n\t\tfont-weight: bold;\n\n\t\tcursor: pointer;\n\t}\n}\n", + "/* [1] COULEURS\n=========================================================*/\n/* (1) COULEURS DU THEME $DEFAULT */\n$theme-bg: #e8e8e8;\n$theme-bg-primary: #ffffff;\n$theme-fg: #515151;\n$theme-fg-primary: #399ced;\n\n/* (2) COULEURS DE THEME $DARK */\n$dark-bg: #313541;\n$dark-bg-primary: #29282e;\n$dark-fg: #939393;\n$dark-fg-primary: #ffffff;\n\n\n/* [2] DIMENSIONS\n=========================================================*/\n/* (1) Layout de base */\n$menu-side-width: 15em;\n$header-height: 4em;\n" + ], + "mappings": "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", + "names": [] +} \ No newline at end of file diff --git a/css/layout/expanded.css b/css/layout/expanded.css new file mode 100644 index 0000000..e124908 --- /dev/null +++ b/css/layout/expanded.css @@ -0,0 +1,181 @@ +/* [1] COULEURS +=========================================================*/ +/* (1) COULEURS DU THEME $DEFAULT */ +/* (2) COULEURS DE THEME $DARK */ +/* [2] DIMENSIONS +=========================================================*/ +/* (1) Layout de base */ +body { + font-family: 'Open Sans'; + font-size: 15px; +} + +#WRAPPER { + display: block; + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + background-color: #e8e8e8; + overflow-x: hidden; + overflow-y: auto; + z-index: 1; + /* [1] Header de la page + ==========================================*/ + /* [2] Side-Menu de la page + ==========================================*/ + /* [3] Container de la page + ==========================================*/ +} + +#WRAPPER > #HEADER { + display: block; + position: fixed; + top: 0; + left: 0; + width: 100%; + height: calc( 4em - 1px); + border-bottom: 1px solid #1484df; + background-color: #399ced; + z-index: 9; +} + +#WRAPPER > #MENU-SIDE { + display: block; + position: fixed; + top: 4em; + left: 0; + width: 15em; + height: calc( 100% - 4em); + box-shadow: 2px 1px 3px #ddd; + background-color: #fff; + transition: all .3s; + z-index: 10; +} + +#WRAPPER > #CONTAINER { + display: flex; + position: absolute; + top: 4em; + left: 15em; + width: calc( 100% - 15em); + min-height: calc( 100% - 4em); + flex-direction: row; + justify-content: space-between; + flex-wrap: wrap; + overflow-x: none; + overflow-y: auto; +} + +/* [4] Page de login +=========================================================*/ +#LOGIN { + display: flex; + position: fixed; + top: 0; + left: -100%; + width: 100%; + height: 100%; + flex-direction: row; + flex-wrap: nowrap; + justify-content: space-around; + align-items: center; + background-color: #313541; + transition: left .3s ease-in-out; + z-index: 101; + /* (1) Logo et nom du site */ + /* (2) Formulaire de connexion */ + /* (4) Gestion de la fermeture */ +} + +#LOGIN.active { + left: 0; +} + +#LOGIN > #login-icon { + width: 35em; + height: 10em; + background: url("/f/svg/icon/st") center center no-repeat; + background-size: auto 100%; +} + +#LOGIN > #login-form { + display: block; + /* (2.1) Champs de texte (login/password) */ + /* (2.2) Bouton de connexion */ + /* (3) Mot de passe oublie */ +} + +#LOGIN > #login-form > input[type='text'], +#LOGIN > #login-form > input[type='password'], +#LOGIN > #login-form > input[type='submit'] { + display: flex; + width: 20em; + margin: 2em 0; + padding: 1em 2em; + flex-direction: column; + justify-content: space-around; + flex-wrap: nowrap; + align-items: middle; + border-radius: 5px; + border: 1px solid #6b6b6b; + background-color: #313541; + color: #ffffff; + font-weight: bold; + letter-spacing: .07em; + transition: border .2s ease-in-out; + cursor: default; +} + +#LOGIN > #login-form > input[type='text']:hover, #LOGIN > #login-form > input[type='text']:focus, +#LOGIN > #login-form > input[type='password']:hover, +#LOGIN > #login-form > input[type='password']:focus, +#LOGIN > #login-form > input[type='submit']:hover, +#LOGIN > #login-form > input[type='submit']:focus { + border-color: #399ced; +} + +#LOGIN > #login-form > input[type='submit'] { + width: 100%; + margin: 2em 0; + border: 0; + background-color: #399ced; + color: #ffffff; + font-weight: bold; + text-align: left; + cursor: pointer; +} + +#LOGIN > #login-form > input[type='submit']:hover { + background-color: #1484df; + box-shadow: 0 0 1em #1b1d24; +} + +#LOGIN > #login-form > #lost-password { + color: #939393; + cursor: pointer; +} + +#LOGIN > #login-form > #lost-password:hover { + color: #399ced; + text-decoration: underline; +} + +#LOGIN > #login-close { + display: block; + position: absolute; + top: 2em; + right: 2em; + min-width: 2em; + height: 2em; + background: url("/f/svg/back/st/container/ffffff") right center no-repeat; + background-size: 1em; + color: #fff; + padding-right: 2em; + line-height: 2em; + font-weight: bold; + cursor: pointer; +} + +/*# sourceMappingURL=data:application/json;base64,ewoJInZlcnNpb24iOiAzLAoJImZpbGUiOiAiZXhwYW5kZWQuY3NzIiwKCSJzb3VyY2VzIjogWwoJCSIuLi9sYXlvdXQuc2NzcyIsCgkJIi4uL2NvbnN0YW50cy5zY3NzIgoJXSwKCSJzb3VyY2VzQ29udGVudCI6IFsKCQkiQGltcG9ydCAnY29uc3RhbnRzJztcblxuYm9keXtcblxuXHRmb250LWZhbWlseTogJ09wZW4gU2Fucyc7XG5cdGZvbnQtc2l6ZTogMTVweDtcbn1cblxuXG5cbiNXUkFQUEVSe1xuXHRkaXNwbGF5OiBibG9jaztcblx0cG9zaXRpb246IGZpeGVkO1xuXHRcdHRvcDogMDtcblx0XHRsZWZ0OiAwO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdGhlaWdodDogMTAwJTtcblxuXHRiYWNrZ3JvdW5kLWNvbG9yOiAkdGhlbWUtYmc7XG5cblx0b3ZlcmZsb3cteDogaGlkZGVuO1xuXHRvdmVyZmxvdy15OiBhdXRvO1xuXG5cdHotaW5kZXg6IDE7XG5cblxuXHQvKiBbMV0gSGVhZGVyIGRlIGxhIHBhZ2Vcblx0PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cblx0JiA+ICNIRUFERVJ7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0cG9zaXRpb246IGZpeGVkO1xuXHRcdFx0dG9wOiAwO1xuXHRcdFx0bGVmdDogMDtcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0aGVpZ2h0OiBjYWxjKCAjeyRoZWFkZXItaGVpZ2h0fSAtIDFweCApO1xuXG5cdFx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGRhcmtlbigkdGhlbWUtZmctcHJpbWFyeSwgMTApO1xuXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogJHRoZW1lLWZnLXByaW1hcnk7XG5cblx0XHR6LWluZGV4OiA5O1xuXG5cdH1cblxuXG5cdC8qIFsyXSBTaWRlLU1lbnUgZGUgbGEgcGFnZVxuXHQ9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xuXHQvLyBHZXN0aW9uIGR1IG1lbnVcblx0JiA+ICNNRU5VLVNJREV7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0cG9zaXRpb246IGZpeGVkO1xuXHRcdFx0dG9wOiAkaGVhZGVyLWhlaWdodDtcblx0XHRcdGxlZnQ6IDA7XG5cdFx0XHR3aWR0aDogJG1lbnUtc2lkZS13aWR0aDtcblx0XHRcdGhlaWdodDogY2FsYyggMTAwJSAtICN7JGhlYWRlci1oZWlnaHR9ICk7XG5cblx0XHRib3gtc2hhZG93OiAycHggMXB4IDNweCAjZGRkO1xuXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcblxuXHRcdHRyYW5zaXRpb246IGFsbCAuM3M7XG5cblx0XHR6LWluZGV4OiAxMDtcblx0fVxuXG5cblx0LyogWzNdIENvbnRhaW5lciBkZSBsYSBwYWdlXG5cdD09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXG5cdCYgPiAjQ09OVEFJTkVSe1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0dG9wOiAkaGVhZGVyLWhlaWdodDtcblx0XHRcdGxlZnQ6ICRtZW51LXNpZGUtd2lkdGg7XG5cdFx0XHR3aWR0aDogY2FsYyggMTAwJSAtICN7JG1lbnUtc2lkZS13aWR0aH0gKTtcblx0XHRcdG1pbi1oZWlnaHQ6IGNhbGMoIDEwMCUgLSAjeyRoZWFkZXItaGVpZ2h0fSApO1xuXHRcdC8vICBtYXJnaW46IDFlbTtcblxuXHRcdC8vIEZsZXggcHJvcGVydGllc1xuXHRcdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdFx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXHRcdGZsZXgtd3JhcDogd3JhcDtcblxuXHRcdG92ZXJmbG93LXg6IG5vbmU7XG5cdFx0b3ZlcmZsb3cteTogYXV0bztcblx0fVxufVxuXG5cblxuXG4vKiBbNF0gUGFnZSBkZSBsb2dpblxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cbiNMT0dJTntcblx0ZGlzcGxheTogZmxleDtcblx0cG9zaXRpb246IGZpeGVkO1xuXHRcdHRvcDogMDtcblx0XHRsZWZ0OiAtMTAwJTtcblx0XHR3aWR0aDogMTAwJTtcblx0XHRoZWlnaHQ6IDEwMCU7XG5cblx0Ly8gUXVhbmQgbGEgcGFnZSBkZSBsb2dpbiBlc3QgdmlzaWJsZVxuXHQmLmFjdGl2ZXtcblx0XHRsZWZ0OiAwO1xuXHR9XG5cblx0Ly8gZmxleCBwcm9wZXJ0aWVzXG5cdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdGZsZXgtd3JhcDogbm93cmFwO1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblxuXG5cdGJhY2tncm91bmQtY29sb3I6ICRkYXJrLWJnO1xuXG5cdHRyYW5zaXRpb246IGxlZnQgLjNzIGVhc2UtaW4tb3V0O1xuXG5cdHotaW5kZXg6IDEwMTtcblxuXG5cblxuXHQvKiAoMSkgTG9nbyBldCBub20gZHUgc2l0ZSAqL1xuXHQmID4gI2xvZ2luLWljb257XG5cdFx0d2lkdGg6IDM1ZW07XG5cdFx0aGVpZ2h0OiAxMGVtO1xuXG5cdFx0YmFja2dyb3VuZDogdXJsKCcvZi9zdmcvaWNvbi9zdCcpIGNlbnRlciBjZW50ZXIgbm8tcmVwZWF0O1xuXHRcdGJhY2tncm91bmQtc2l6ZTogYXV0byAxMDAlO1xuXHR9XG5cblxuXHQvKiAoMikgRm9ybXVsYWlyZSBkZSBjb25uZXhpb24gKi9cblx0JiA+ICNsb2dpbi1mb3Jte1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXG5cblx0XHQvKiAoMi4xKSBDaGFtcHMgZGUgdGV4dGUgKGxvZ2luL3Bhc3N3b3JkKSAqL1xuXHRcdCYgPiBpbnB1dFt0eXBlPSd0ZXh0J10sXG5cdFx0JiA+IGlucHV0W3R5cGU9J3Bhc3N3b3JkJ10sXG5cdFx0JiA+IGlucHV0W3R5cGU9J3N1Ym1pdCdde1xuXHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdFx0d2lkdGg6IDIwZW07XG5cblx0XHRcdG1hcmdpbjogMmVtIDA7XG5cdFx0XHRwYWRkaW5nOiAxZW0gMmVtO1xuXG5cdFx0XHQvLyBmbGV4IHByb3BlcnRpZXNcblx0XHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcblx0XHRcdGZsZXgtd3JhcDogbm93cmFwO1xuXHRcdFx0YWxpZ24taXRlbXM6IG1pZGRsZTtcblxuXG5cdFx0XHRib3JkZXItcmFkaXVzOiA1cHg7XG5cdFx0XHRib3JkZXI6IDFweCBzb2xpZCBsaWdodGVuKCR0aGVtZS1mZywgMTApO1xuXG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkZGFyay1iZztcblxuXHRcdFx0Y29sb3I6ICRkYXJrLWZnLXByaW1hcnk7XG5cdFx0XHRmb250LXdlaWdodDogYm9sZDtcblx0XHRcdGxldHRlci1zcGFjaW5nOiAuMDdlbTtcblxuXHRcdFx0dHJhbnNpdGlvbjogYm9yZGVyIC4ycyBlYXNlLWluLW91dDtcblxuXHRcdFx0Y3Vyc29yOiBkZWZhdWx0O1xuXG5cdFx0XHQvLyBBbmltYXRpb24gZGUgQGhvdmVyL0Bmb2N1c1xuXHRcdFx0Jjpob3Zlcixcblx0XHRcdCY6Zm9jdXN7XG5cdFx0XHRcdGJvcmRlci1jb2xvcjogJHRoZW1lLWZnLXByaW1hcnk7XG5cdFx0XHR9XG5cblx0XHR9XG5cblxuXHRcdC8qICgyLjIpIEJvdXRvbiBkZSBjb25uZXhpb24gKi9cblx0XHQmID4gaW5wdXRbdHlwZT0nc3VibWl0J117XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdG1hcmdpbjogMmVtIDA7XG5cblx0XHRcdGJvcmRlcjogMDtcblxuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogJHRoZW1lLWZnLXByaW1hcnk7XG5cblx0XHRcdGNvbG9yOiAkZGFyay1mZy1wcmltYXJ5O1xuXHRcdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdFx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xuXG5cdFx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cblx0XHRcdC8vIEFuaW1hdGlvbiBkZSBAaG92ZXJcblx0XHRcdCY6aG92ZXJ7XG5cdFx0XHRcdGJhY2tncm91bmQtY29sb3I6IGRhcmtlbigkdGhlbWUtZmctcHJpbWFyeSwgMTApO1xuXHRcdFx0XHRib3gtc2hhZG93OiAwIDAgMWVtIGRhcmtlbigkZGFyay1iZywgMTApO1xuXHRcdFx0fVxuXG5cdFx0fVxuXG5cblxuXG5cblx0XHQvKiAoMykgTW90IGRlIHBhc3NlIG91YmxpZSAqL1xuXHRcdCYgPiAjbG9zdC1wYXNzd29yZHtcblx0XHRcdGNvbG9yOiAkZGFyay1mZztcblxuXHRcdFx0Y3Vyc29yOiBwb2ludGVyO1xuXG5cdFx0XHQvLyBBbmltYXRpb24gZGUgQGhvdmVyXG5cdFx0XHQmOmhvdmVye1xuXHRcdFx0XHRjb2xvcjogJHRoZW1lLWZnLXByaW1hcnk7XG5cdFx0XHRcdHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuXHRcdFx0fVxuXHRcdH1cblxuXHR9XG5cblx0LyogKDQpIEdlc3Rpb24gZGUgbGEgZmVybWV0dXJlICovXG5cdCYgPiAjbG9naW4tY2xvc2V7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0dG9wOiAyZW07XG5cdFx0XHRyaWdodDogMmVtO1xuXHRcdFx0bWluLXdpZHRoOiAyZW07XG5cdFx0XHRoZWlnaHQ6IDJlbTtcblxuXHRcdGJhY2tncm91bmQ6IHVybCgnL2Yvc3ZnL2JhY2svc3QvY29udGFpbmVyL2ZmZmZmZicpIHJpZ2h0IGNlbnRlciBuby1yZXBlYXQ7XG5cdFx0YmFja2dyb3VuZC1zaXplOiAxZW07XG5cblx0XHRjb2xvcjogI2ZmZjtcblx0XHRwYWRkaW5nLXJpZ2h0OiAyZW07XG5cdFx0bGluZS1oZWlnaHQ6IDJlbTtcblx0XHRmb250LXdlaWdodDogYm9sZDtcblxuXHRcdGN1cnNvcjogcG9pbnRlcjtcblx0fVxufVxuIiwKCQkiLyogWzFdIENPVUxFVVJTXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xuLyogKDEpIENPVUxFVVJTIERVIFRIRU1FICRERUZBVUxUICovXG4kdGhlbWUtYmc6ICAgICAgICAgI2U4ZThlODtcbiR0aGVtZS1iZy1wcmltYXJ5OiAjZmZmZmZmO1xuJHRoZW1lLWZnOiAgICAgICAgICM1MTUxNTE7XG4kdGhlbWUtZmctcHJpbWFyeTogIzM5OWNlZDtcblxuLyogKDIpIENPVUxFVVJTIERFIFRIRU1FICREQVJLICovXG4kZGFyay1iZzogICAgICAgICAjMzEzNTQxO1xuJGRhcmstYmctcHJpbWFyeTogIzI5MjgyZTtcbiRkYXJrLWZnOiAgICAgICAgICM5MzkzOTM7XG4kZGFyay1mZy1wcmltYXJ5OiAjZmZmZmZmO1xuXG5cbi8qIFsyXSBESU1FTlNJT05TXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xuLyogKDEpIExheW91dCBkZSBiYXNlICovXG4kbWVudS1zaWRlLXdpZHRoOiAxNWVtO1xuJGhlYWRlci1oZWlnaHQ6ICAgNGVtO1xuIgoJXSwKCSJtYXBwaW5ncyI6ICJBQ0FBOzJEQUMyRDtBQUMzRCxvQ0FBb0M7QUFNcEMsaUNBQWlDO0FBT2pDOzJEQUMyRDtBQUMzRCx3QkFBd0I7QURmeEIsSUFBSSxDQUFBO0VBRUgsV0FBVyxFQUFFLFdBQVk7RUFDekIsU0FBUyxFQUFFLElBQUs7Q0FDaEI7O0FBSUQsUUFBUSxDQUFBO0VBQ1AsT0FBTyxFQUFFLEtBQU07RUFDZixRQUFRLEVBQUUsS0FBTTtFQUNmLEdBQUcsRUFBRSxDQUFFO0VBQ1AsSUFBSSxFQUFFLENBQUU7RUFDUixLQUFLLEVBQUUsSUFBSztFQUNaLE1BQU0sRUFBRSxJQUFLO0VBRWQsZ0JBQWdCLEVDZkUsT0FBTztFRGlCekIsVUFBVSxFQUFFLE1BQU87RUFDbkIsVUFBVSxFQUFFLElBQUs7RUFFakIsT0FBTyxFQUFFLENBQUU7RUFHWDs2Q0FDNEM7RUFrQjVDOzZDQUM0QztFQW9CNUM7NkNBQzRDO0NB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 */ \ No newline at end of file diff --git a/css/layout/expanded.css.map b/css/layout/expanded.css.map new file mode 100644 index 0000000..055b30e --- /dev/null +++ b/css/layout/expanded.css.map @@ -0,0 +1,14 @@ +{ + "version": 3, + "file": "expanded.css", + "sources": [ + "../layout.scss", + "../constants.scss" + ], + "sourcesContent": [ + "@import 'constants';\n\nbody{\n\n\tfont-family: 'Open Sans';\n\tfont-size: 15px;\n}\n\n\n\n#WRAPPER{\n\tdisplay: block;\n\tposition: fixed;\n\t\ttop: 0;\n\t\tleft: 0;\n\t\twidth: 100%;\n\t\theight: 100%;\n\n\tbackground-color: $theme-bg;\n\n\toverflow-x: hidden;\n\toverflow-y: auto;\n\n\tz-index: 1;\n\n\n\t/* [1] Header de la page\n\t==========================================*/\n\t& > #HEADER{\n\t\tdisplay: block;\n\t\tposition: fixed;\n\t\t\ttop: 0;\n\t\t\tleft: 0;\n\t\t\twidth: 100%;\n\t\t\theight: calc( #{$header-height} - 1px );\n\n\t\tborder-bottom: 1px solid darken($theme-fg-primary, 10);\n\n\t\tbackground-color: $theme-fg-primary;\n\n\t\tz-index: 9;\n\n\t}\n\n\n\t/* [2] Side-Menu de la page\n\t==========================================*/\n\t// Gestion du menu\n\t& > #MENU-SIDE{\n\t\tdisplay: block;\n\t\tposition: fixed;\n\t\t\ttop: $header-height;\n\t\t\tleft: 0;\n\t\t\twidth: $menu-side-width;\n\t\t\theight: calc( 100% - #{$header-height} );\n\n\t\tbox-shadow: 2px 1px 3px #ddd;\n\n\t\tbackground-color: #fff;\n\n\t\ttransition: all .3s;\n\n\t\tz-index: 10;\n\t}\n\n\n\t/* [3] Container de la page\n\t==========================================*/\n\t& > #CONTAINER{\n\t\tdisplay: flex;\n\t\tposition: absolute;\n\t\t\ttop: $header-height;\n\t\t\tleft: $menu-side-width;\n\t\t\twidth: calc( 100% - #{$menu-side-width} );\n\t\t\tmin-height: calc( 100% - #{$header-height} );\n\t\t// margin: 1em;\n\n\t\t// Flex properties\n\t\tflex-direction: row;\n\t\tjustify-content: space-between;\n\t\tflex-wrap: wrap;\n\n\t\toverflow-x: none;\n\t\toverflow-y: auto;\n\t}\n}\n\n\n\n\n/* [4] Page de login\n=========================================================*/\n#LOGIN{\n\tdisplay: flex;\n\tposition: fixed;\n\t\ttop: 0;\n\t\tleft: -100%;\n\t\twidth: 100%;\n\t\theight: 100%;\n\n\t// Quand la page de login est visible\n\t&.active{\n\t\tleft: 0;\n\t}\n\n\t// flex properties\n\tflex-direction: row;\n\tflex-wrap: nowrap;\n\tjustify-content: space-around;\n\talign-items: center;\n\n\n\tbackground-color: $dark-bg;\n\n\ttransition: left .3s ease-in-out;\n\n\tz-index: 101;\n\n\n\n\n\t/* (1) Logo et nom du site */\n\t& > #login-icon{\n\t\twidth: 35em;\n\t\theight: 10em;\n\n\t\tbackground: url('/f/svg/icon/st') center center no-repeat;\n\t\tbackground-size: auto 100%;\n\t}\n\n\n\t/* (2) Formulaire de connexion */\n\t& > #login-form{\n\t\tdisplay: block;\n\n\n\t\t/* (2.1) Champs de texte (login/password) */\n\t\t& > input[type='text'],\n\t\t& > input[type='password'],\n\t\t& > input[type='submit']{\n\t\t\tdisplay: flex;\n\t\t\t\twidth: 20em;\n\n\t\t\tmargin: 2em 0;\n\t\t\tpadding: 1em 2em;\n\n\t\t\t// flex properties\n\t\t\tflex-direction: column;\n\t\t\tjustify-content: space-around;\n\t\t\tflex-wrap: nowrap;\n\t\t\talign-items: middle;\n\n\n\t\t\tborder-radius: 5px;\n\t\t\tborder: 1px solid lighten($theme-fg, 10);\n\n\t\t\tbackground-color: $dark-bg;\n\n\t\t\tcolor: $dark-fg-primary;\n\t\t\tfont-weight: bold;\n\t\t\tletter-spacing: .07em;\n\n\t\t\ttransition: border .2s ease-in-out;\n\n\t\t\tcursor: default;\n\n\t\t\t// Animation de @hover/@focus\n\t\t\t&:hover,\n\t\t\t&:focus{\n\t\t\t\tborder-color: $theme-fg-primary;\n\t\t\t}\n\n\t\t}\n\n\n\t\t/* (2.2) Bouton de connexion */\n\t\t& > input[type='submit']{\n\t\t\twidth: 100%;\n\t\t\tmargin: 2em 0;\n\n\t\t\tborder: 0;\n\n\t\t\tbackground-color: $theme-fg-primary;\n\n\t\t\tcolor: $dark-fg-primary;\n\t\t\tfont-weight: bold;\n\t\t\ttext-align: left;\n\n\t\t\tcursor: pointer;\n\n\t\t\t// Animation de @hover\n\t\t\t&:hover{\n\t\t\t\tbackground-color: darken($theme-fg-primary, 10);\n\t\t\t\tbox-shadow: 0 0 1em darken($dark-bg, 10);\n\t\t\t}\n\n\t\t}\n\n\n\n\n\n\t\t/* (3) Mot de passe oublie */\n\t\t& > #lost-password{\n\t\t\tcolor: $dark-fg;\n\n\t\t\tcursor: pointer;\n\n\t\t\t// Animation de @hover\n\t\t\t&:hover{\n\t\t\t\tcolor: $theme-fg-primary;\n\t\t\t\ttext-decoration: underline;\n\t\t\t}\n\t\t}\n\n\t}\n\n\t/* (4) Gestion de la fermeture */\n\t& > #login-close{\n\t\tdisplay: block;\n\t\tposition: absolute;\n\t\t\ttop: 2em;\n\t\t\tright: 2em;\n\t\t\tmin-width: 2em;\n\t\t\theight: 2em;\n\n\t\tbackground: url('/f/svg/back/st/container/ffffff') right center no-repeat;\n\t\tbackground-size: 1em;\n\n\t\tcolor: #fff;\n\t\tpadding-right: 2em;\n\t\tline-height: 2em;\n\t\tfont-weight: bold;\n\n\t\tcursor: pointer;\n\t}\n}\n", + "/* [1] COULEURS\n=========================================================*/\n/* (1) COULEURS DU THEME $DEFAULT */\n$theme-bg: #e8e8e8;\n$theme-bg-primary: #ffffff;\n$theme-fg: #515151;\n$theme-fg-primary: #399ced;\n\n/* (2) COULEURS DE THEME $DARK */\n$dark-bg: #313541;\n$dark-bg-primary: #29282e;\n$dark-fg: #939393;\n$dark-fg-primary: #ffffff;\n\n\n/* [2] DIMENSIONS\n=========================================================*/\n/* (1) Layout de base */\n$menu-side-width: 15em;\n$header-height: 4em;\n" + ], + "mappings": "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", + "names": [] +} \ No newline at end of file diff --git a/css/layout/min.css b/css/layout/min.css new file mode 100644 index 0000000..1fbe122 --- /dev/null +++ b/css/layout/min.css @@ -0,0 +1,3 @@ +body{font-family:'Open Sans';font-size:15px}#WRAPPER{display:block;position:fixed;top:0;left:0;width:100%;height:100%;background-color:#e8e8e8;overflow-x:hidden;overflow-y:auto;z-index:1}#WRAPPER>#HEADER{display:block;position:fixed;top:0;left:0;width:100%;height:calc( 4em - 1px);border-bottom:1px solid #1484df;background-color:#399ced;z-index:9}#WRAPPER>#MENU-SIDE{display:block;position:fixed;top:4em;left:0;width:15em;height:calc( 100% - 4em);box-shadow:2px 1px 3px #ddd;background-color:#fff;transition:all .3s;z-index:10}#WRAPPER>#CONTAINER{display:flex;position:absolute;top:4em;left:15em;width:calc( 100% - 15em);min-height:calc( 100% - 4em);flex-direction:row;justify-content:space-between;flex-wrap:wrap;overflow-x:none;overflow-y:auto}#LOGIN{display:flex;position:fixed;top:0;left:-100%;width:100%;height:100%;flex-direction:row;flex-wrap:nowrap;justify-content:space-around;align-items:center;background-color:#313541;transition:left .3s ease-in-out;z-index:101}#LOGIN.active{left:0}#LOGIN>#login-icon{width:35em;height:10em;background:url("/f/svg/icon/st") center center no-repeat;background-size:auto 100%}#LOGIN>#login-form{display:block}#LOGIN>#login-form>input[type='text'],#LOGIN>#login-form>input[type='password'],#LOGIN>#login-form>input[type='submit']{display:flex;width:20em;margin:2em 0;padding:1em 2em;flex-direction:column;justify-content:space-around;flex-wrap:nowrap;align-items:middle;border-radius:5px;border:1px solid #6b6b6b;background-color:#313541;color:#fff;font-weight:bold;letter-spacing:.07em;transition:border .2s ease-in-out;cursor:default}#LOGIN>#login-form>input[type='text']:hover,#LOGIN>#login-form>input[type='text']:focus,#LOGIN>#login-form>input[type='password']:hover,#LOGIN>#login-form>input[type='password']:focus,#LOGIN>#login-form>input[type='submit']:hover,#LOGIN>#login-form>input[type='submit']:focus{border-color:#399ced}#LOGIN>#login-form>input[type='submit']{width:100%;margin:2em 0;border:0;background-color:#399ced;color:#fff;font-weight:bold;text-align:left;cursor:pointer}#LOGIN>#login-form>input[type='submit']:hover{background-color:#1484df;box-shadow:0 0 1em #1b1d24}#LOGIN>#login-form>#lost-password{color:#939393;cursor:pointer}#LOGIN>#login-form>#lost-password:hover{color:#399ced;text-decoration:underline}#LOGIN>#login-close{display:block;position:absolute;top:2em;right:2em;min-width:2em;height:2em;background:url("/f/svg/back/st/container/ffffff") right center no-repeat;background-size:1em;color:#fff;padding-right:2em;line-height:2em;font-weight:bold;cursor:pointer} + +/*# sourceMappingURL=data:application/json;base64,ewoJInZlcnNpb24iOiAzLAoJImZpbGUiOiAibWluLmNzcyIsCgkic291cmNlcyI6IFsKCQkiLi4vbGF5b3V0LnNjc3MiLAoJCSIuLi9jb25zdGFudHMuc2NzcyIKCV0sCgkic291cmNlc0NvbnRlbnQiOiBbCgkJIkBpbXBvcnQgJ2NvbnN0YW50cyc7XG5cbmJvZHl7XG5cblx0Zm9udC1mYW1pbHk6ICdPcGVuIFNhbnMnO1xuXHRmb250LXNpemU6IDE1cHg7XG59XG5cblxuXG4jV1JBUFBFUntcblx0ZGlzcGxheTogYmxvY2s7XG5cdHBvc2l0aW9uOiBmaXhlZDtcblx0XHR0b3A6IDA7XG5cdFx0bGVmdDogMDtcblx0XHR3aWR0aDogMTAwJTtcblx0XHRoZWlnaHQ6IDEwMCU7XG5cblx0YmFja2dyb3VuZC1jb2xvcjogJHRoZW1lLWJnO1xuXG5cdG92ZXJmbG93LXg6IGhpZGRlbjtcblx0b3ZlcmZsb3cteTogYXV0bztcblxuXHR6LWluZGV4OiAxO1xuXG5cblx0LyogWzFdIEhlYWRlciBkZSBsYSBwYWdlXG5cdD09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXG5cdCYgPiAjSEVBREVSe1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdHBvc2l0aW9uOiBmaXhlZDtcblx0XHRcdHRvcDogMDtcblx0XHRcdGxlZnQ6IDA7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdGhlaWdodDogY2FsYyggI3skaGVhZGVyLWhlaWdodH0gLSAxcHggKTtcblxuXHRcdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBkYXJrZW4oJHRoZW1lLWZnLXByaW1hcnksIDEwKTtcblxuXHRcdGJhY2tncm91bmQtY29sb3I6ICR0aGVtZS1mZy1wcmltYXJ5O1xuXG5cdFx0ei1pbmRleDogOTtcblxuXHR9XG5cblxuXHQvKiBbMl0gU2lkZS1NZW51IGRlIGxhIHBhZ2Vcblx0PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cblx0Ly8gR2VzdGlvbiBkdSBtZW51XG5cdCYgPiAjTUVOVS1TSURFe1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdHBvc2l0aW9uOiBmaXhlZDtcblx0XHRcdHRvcDogJGhlYWRlci1oZWlnaHQ7XG5cdFx0XHRsZWZ0OiAwO1xuXHRcdFx0d2lkdGg6ICRtZW51LXNpZGUtd2lkdGg7XG5cdFx0XHRoZWlnaHQ6IGNhbGMoIDEwMCUgLSAjeyRoZWFkZXItaGVpZ2h0fSApO1xuXG5cdFx0Ym94LXNoYWRvdzogMnB4IDFweCAzcHggI2RkZDtcblxuXHRcdGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG5cblx0XHR0cmFuc2l0aW9uOiBhbGwgLjNzO1xuXG5cdFx0ei1pbmRleDogMTA7XG5cdH1cblxuXG5cdC8qIFszXSBDb250YWluZXIgZGUgbGEgcGFnZVxuXHQ9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xuXHQmID4gI0NPTlRBSU5FUntcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdHRvcDogJGhlYWRlci1oZWlnaHQ7XG5cdFx0XHRsZWZ0OiAkbWVudS1zaWRlLXdpZHRoO1xuXHRcdFx0d2lkdGg6IGNhbGMoIDEwMCUgLSAjeyRtZW51LXNpZGUtd2lkdGh9ICk7XG5cdFx0XHRtaW4taGVpZ2h0OiBjYWxjKCAxMDAlIC0gI3skaGVhZGVyLWhlaWdodH0gKTtcblx0XHQvLyAgbWFyZ2luOiAxZW07XG5cblx0XHQvLyBGbGV4IHByb3BlcnRpZXNcblx0XHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHRcdGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcblx0XHRmbGV4LXdyYXA6IHdyYXA7XG5cblx0XHRvdmVyZmxvdy14OiBub25lO1xuXHRcdG92ZXJmbG93LXk6IGF1dG87XG5cdH1cbn1cblxuXG5cblxuLyogWzRdIFBhZ2UgZGUgbG9naW5cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXG4jTE9HSU57XG5cdGRpc3BsYXk6IGZsZXg7XG5cdHBvc2l0aW9uOiBmaXhlZDtcblx0XHR0b3A6IDA7XG5cdFx0bGVmdDogLTEwMCU7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0aGVpZ2h0OiAxMDAlO1xuXG5cdC8vIFF1YW5kIGxhIHBhZ2UgZGUgbG9naW4gZXN0IHZpc2libGVcblx0Ji5hY3RpdmV7XG5cdFx0bGVmdDogMDtcblx0fVxuXG5cdC8vIGZsZXggcHJvcGVydGllc1xuXHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHRmbGV4LXdyYXA6IG5vd3JhcDtcblx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cblxuXHRiYWNrZ3JvdW5kLWNvbG9yOiAkZGFyay1iZztcblxuXHR0cmFuc2l0aW9uOiBsZWZ0IC4zcyBlYXNlLWluLW91dDtcblxuXHR6LWluZGV4OiAxMDE7XG5cblxuXG5cblx0LyogKDEpIExvZ28gZXQgbm9tIGR1IHNpdGUgKi9cblx0JiA+ICNsb2dpbi1pY29ue1xuXHRcdHdpZHRoOiAzNWVtO1xuXHRcdGhlaWdodDogMTBlbTtcblxuXHRcdGJhY2tncm91bmQ6IHVybCgnL2Yvc3ZnL2ljb24vc3QnKSBjZW50ZXIgY2VudGVyIG5vLXJlcGVhdDtcblx0XHRiYWNrZ3JvdW5kLXNpemU6IGF1dG8gMTAwJTtcblx0fVxuXG5cblx0LyogKDIpIEZvcm11bGFpcmUgZGUgY29ubmV4aW9uICovXG5cdCYgPiAjbG9naW4tZm9ybXtcblx0XHRkaXNwbGF5OiBibG9jaztcblxuXG5cdFx0LyogKDIuMSkgQ2hhbXBzIGRlIHRleHRlIChsb2dpbi9wYXNzd29yZCkgKi9cblx0XHQmID4gaW5wdXRbdHlwZT0ndGV4dCddLFxuXHRcdCYgPiBpbnB1dFt0eXBlPSdwYXNzd29yZCddLFxuXHRcdCYgPiBpbnB1dFt0eXBlPSdzdWJtaXQnXXtcblx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHRcdHdpZHRoOiAyMGVtO1xuXG5cdFx0XHRtYXJnaW46IDJlbSAwO1xuXHRcdFx0cGFkZGluZzogMWVtIDJlbTtcblxuXHRcdFx0Ly8gZmxleCBwcm9wZXJ0aWVzXG5cdFx0XHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXHRcdFx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XG5cdFx0XHRmbGV4LXdyYXA6IG5vd3JhcDtcblx0XHRcdGFsaWduLWl0ZW1zOiBtaWRkbGU7XG5cblxuXHRcdFx0Ym9yZGVyLXJhZGl1czogNXB4O1xuXHRcdFx0Ym9yZGVyOiAxcHggc29saWQgbGlnaHRlbigkdGhlbWUtZmcsIDEwKTtcblxuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogJGRhcmstYmc7XG5cblx0XHRcdGNvbG9yOiAkZGFyay1mZy1wcmltYXJ5O1xuXHRcdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdFx0XHRsZXR0ZXItc3BhY2luZzogLjA3ZW07XG5cblx0XHRcdHRyYW5zaXRpb246IGJvcmRlciAuMnMgZWFzZS1pbi1vdXQ7XG5cblx0XHRcdGN1cnNvcjogZGVmYXVsdDtcblxuXHRcdFx0Ly8gQW5pbWF0aW9uIGRlIEBob3Zlci9AZm9jdXNcblx0XHRcdCY6aG92ZXIsXG5cdFx0XHQmOmZvY3Vze1xuXHRcdFx0XHRib3JkZXItY29sb3I6ICR0aGVtZS1mZy1wcmltYXJ5O1xuXHRcdFx0fVxuXG5cdFx0fVxuXG5cblx0XHQvKiAoMi4yKSBCb3V0b24gZGUgY29ubmV4aW9uICovXG5cdFx0JiA+IGlucHV0W3R5cGU9J3N1Ym1pdCdde1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRtYXJnaW46IDJlbSAwO1xuXG5cdFx0XHRib3JkZXI6IDA7XG5cblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICR0aGVtZS1mZy1wcmltYXJ5O1xuXG5cdFx0XHRjb2xvcjogJGRhcmstZmctcHJpbWFyeTtcblx0XHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRcdFx0dGV4dC1hbGlnbjogbGVmdDtcblxuXHRcdFx0Y3Vyc29yOiBwb2ludGVyO1xuXG5cdFx0XHQvLyBBbmltYXRpb24gZGUgQGhvdmVyXG5cdFx0XHQmOmhvdmVye1xuXHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oJHRoZW1lLWZnLXByaW1hcnksIDEwKTtcblx0XHRcdFx0Ym94LXNoYWRvdzogMCAwIDFlbSBkYXJrZW4oJGRhcmstYmcsIDEwKTtcblx0XHRcdH1cblxuXHRcdH1cblxuXG5cblxuXG5cdFx0LyogKDMpIE1vdCBkZSBwYXNzZSBvdWJsaWUgKi9cblx0XHQmID4gI2xvc3QtcGFzc3dvcmR7XG5cdFx0XHRjb2xvcjogJGRhcmstZmc7XG5cblx0XHRcdGN1cnNvcjogcG9pbnRlcjtcblxuXHRcdFx0Ly8gQW5pbWF0aW9uIGRlIEBob3ZlclxuXHRcdFx0Jjpob3Zlcntcblx0XHRcdFx0Y29sb3I6ICR0aGVtZS1mZy1wcmltYXJ5O1xuXHRcdFx0XHR0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcblx0XHRcdH1cblx0XHR9XG5cblx0fVxuXG5cdC8qICg0KSBHZXN0aW9uIGRlIGxhIGZlcm1ldHVyZSAqL1xuXHQmID4gI2xvZ2luLWNsb3Nle1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdHRvcDogMmVtO1xuXHRcdFx0cmlnaHQ6IDJlbTtcblx0XHRcdG1pbi13aWR0aDogMmVtO1xuXHRcdFx0aGVpZ2h0OiAyZW07XG5cblx0XHRiYWNrZ3JvdW5kOiB1cmwoJy9mL3N2Zy9iYWNrL3N0L2NvbnRhaW5lci9mZmZmZmYnKSByaWdodCBjZW50ZXIgbm8tcmVwZWF0O1xuXHRcdGJhY2tncm91bmQtc2l6ZTogMWVtO1xuXG5cdFx0Y29sb3I6ICNmZmY7XG5cdFx0cGFkZGluZy1yaWdodDogMmVtO1xuXHRcdGxpbmUtaGVpZ2h0OiAyZW07XG5cdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cblx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdH1cbn1cbiIsCgkJIi8qIFsxXSBDT1VMRVVSU1xuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cbi8qICgxKSBDT1VMRVVSUyBEVSBUSEVNRSAkREVGQVVMVCAqL1xuJHRoZW1lLWJnOiAgICAgICAgICNlOGU4ZTg7XG4kdGhlbWUtYmctcHJpbWFyeTogI2ZmZmZmZjtcbiR0aGVtZS1mZzogICAgICAgICAjNTE1MTUxO1xuJHRoZW1lLWZnLXByaW1hcnk6ICMzOTljZWQ7XG5cbi8qICgyKSBDT1VMRVVSUyBERSBUSEVNRSAkREFSSyAqL1xuJGRhcmstYmc6ICAgICAgICAgIzMxMzU0MTtcbiRkYXJrLWJnLXByaW1hcnk6ICMyOTI4MmU7XG4kZGFyay1mZzogICAgICAgICAjOTM5MzkzO1xuJGRhcmstZmctcHJpbWFyeTogI2ZmZmZmZjtcblxuXG4vKiBbMl0gRElNRU5TSU9OU1xuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cbi8qICgxKSBMYXlvdXQgZGUgYmFzZSAqL1xuJG1lbnUtc2lkZS13aWR0aDogMTVlbTtcbiRoZWFkZXItaGVpZ2h0OiAgIDRlbTtcbiIKCV0sCgkibWFwcGluZ3MiOiAiQUFFQSxJQUFJLEFBQUEsQ0FFSCxXQUFXLENBQUUsV0FBWSxDQUN6QixTQUFTLENBQUUsSUFBSyxDQUNoQixBQUlELFFBQVEsQUFBQSxDQUNQLE9BQU8sQ0FBRSxLQUFNLENBQ2YsUUFBUSxDQUFFLEtBQU0sQ0FDZixHQUFHLENBQUUsQ0FBRSxDQUNQLElBQUksQ0FBRSxDQUFFLENBQ1IsS0FBSyxDQUFFLElBQUssQ0FDWixNQUFNLENBQUUsSUFBSyxDQUVkLGdCQUFnQixDQ2ZFLE9BQU8sQ0RpQnpCLFVBQVUsQ0FBRSxNQUFPLENBQ25CLFVBQVUsQ0FBRSxJQUFLLENBRWpCLE9BQU8sQ0FBRSxDQUFFLENBOERYLEFBM0VELFFBQVEsQ0FrQkgsT0FBTyxBQUFBLENBQ1YsT0FBTyxDQUFFLEtBQU0sQ0FDZixRQUFRLENBQUUsS0FBTSxDQUNmLEdBQUcsQ0FBRSxDQUFFLENBQ1AsSUFBSSxDQUFFLENBQUUs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 */ \ No newline at end of file diff --git a/css/layout/min.css.map b/css/layout/min.css.map new file mode 100644 index 0000000..b926400 --- /dev/null +++ b/css/layout/min.css.map @@ -0,0 +1,14 @@ +{ + "version": 3, + "file": "min.css", + "sources": [ + "../layout.scss", + "../constants.scss" + ], + "sourcesContent": [ + "@import 'constants';\n\nbody{\n\n\tfont-family: 'Open Sans';\n\tfont-size: 15px;\n}\n\n\n\n#WRAPPER{\n\tdisplay: block;\n\tposition: fixed;\n\t\ttop: 0;\n\t\tleft: 0;\n\t\twidth: 100%;\n\t\theight: 100%;\n\n\tbackground-color: $theme-bg;\n\n\toverflow-x: hidden;\n\toverflow-y: auto;\n\n\tz-index: 1;\n\n\n\t/* [1] Header de la page\n\t==========================================*/\n\t& > #HEADER{\n\t\tdisplay: block;\n\t\tposition: fixed;\n\t\t\ttop: 0;\n\t\t\tleft: 0;\n\t\t\twidth: 100%;\n\t\t\theight: calc( #{$header-height} - 1px );\n\n\t\tborder-bottom: 1px solid darken($theme-fg-primary, 10);\n\n\t\tbackground-color: $theme-fg-primary;\n\n\t\tz-index: 9;\n\n\t}\n\n\n\t/* [2] Side-Menu de la page\n\t==========================================*/\n\t// Gestion du menu\n\t& > #MENU-SIDE{\n\t\tdisplay: block;\n\t\tposition: fixed;\n\t\t\ttop: $header-height;\n\t\t\tleft: 0;\n\t\t\twidth: $menu-side-width;\n\t\t\theight: calc( 100% - #{$header-height} );\n\n\t\tbox-shadow: 2px 1px 3px #ddd;\n\n\t\tbackground-color: #fff;\n\n\t\ttransition: all .3s;\n\n\t\tz-index: 10;\n\t}\n\n\n\t/* [3] Container de la page\n\t==========================================*/\n\t& > #CONTAINER{\n\t\tdisplay: flex;\n\t\tposition: absolute;\n\t\t\ttop: $header-height;\n\t\t\tleft: $menu-side-width;\n\t\t\twidth: calc( 100% - #{$menu-side-width} );\n\t\t\tmin-height: calc( 100% - #{$header-height} );\n\t\t// margin: 1em;\n\n\t\t// Flex properties\n\t\tflex-direction: row;\n\t\tjustify-content: space-between;\n\t\tflex-wrap: wrap;\n\n\t\toverflow-x: none;\n\t\toverflow-y: auto;\n\t}\n}\n\n\n\n\n/* [4] Page de login\n=========================================================*/\n#LOGIN{\n\tdisplay: flex;\n\tposition: fixed;\n\t\ttop: 0;\n\t\tleft: -100%;\n\t\twidth: 100%;\n\t\theight: 100%;\n\n\t// Quand la page de login est visible\n\t&.active{\n\t\tleft: 0;\n\t}\n\n\t// flex properties\n\tflex-direction: row;\n\tflex-wrap: nowrap;\n\tjustify-content: space-around;\n\talign-items: center;\n\n\n\tbackground-color: $dark-bg;\n\n\ttransition: left .3s ease-in-out;\n\n\tz-index: 101;\n\n\n\n\n\t/* (1) Logo et nom du site */\n\t& > #login-icon{\n\t\twidth: 35em;\n\t\theight: 10em;\n\n\t\tbackground: url('/f/svg/icon/st') center center no-repeat;\n\t\tbackground-size: auto 100%;\n\t}\n\n\n\t/* (2) Formulaire de connexion */\n\t& > #login-form{\n\t\tdisplay: block;\n\n\n\t\t/* (2.1) Champs de texte (login/password) */\n\t\t& > input[type='text'],\n\t\t& > input[type='password'],\n\t\t& > input[type='submit']{\n\t\t\tdisplay: flex;\n\t\t\t\twidth: 20em;\n\n\t\t\tmargin: 2em 0;\n\t\t\tpadding: 1em 2em;\n\n\t\t\t// flex properties\n\t\t\tflex-direction: column;\n\t\t\tjustify-content: space-around;\n\t\t\tflex-wrap: nowrap;\n\t\t\talign-items: middle;\n\n\n\t\t\tborder-radius: 5px;\n\t\t\tborder: 1px solid lighten($theme-fg, 10);\n\n\t\t\tbackground-color: $dark-bg;\n\n\t\t\tcolor: $dark-fg-primary;\n\t\t\tfont-weight: bold;\n\t\t\tletter-spacing: .07em;\n\n\t\t\ttransition: border .2s ease-in-out;\n\n\t\t\tcursor: default;\n\n\t\t\t// Animation de @hover/@focus\n\t\t\t&:hover,\n\t\t\t&:focus{\n\t\t\t\tborder-color: $theme-fg-primary;\n\t\t\t}\n\n\t\t}\n\n\n\t\t/* (2.2) Bouton de connexion */\n\t\t& > input[type='submit']{\n\t\t\twidth: 100%;\n\t\t\tmargin: 2em 0;\n\n\t\t\tborder: 0;\n\n\t\t\tbackground-color: $theme-fg-primary;\n\n\t\t\tcolor: $dark-fg-primary;\n\t\t\tfont-weight: bold;\n\t\t\ttext-align: left;\n\n\t\t\tcursor: pointer;\n\n\t\t\t// Animation de @hover\n\t\t\t&:hover{\n\t\t\t\tbackground-color: darken($theme-fg-primary, 10);\n\t\t\t\tbox-shadow: 0 0 1em darken($dark-bg, 10);\n\t\t\t}\n\n\t\t}\n\n\n\n\n\n\t\t/* (3) Mot de passe oublie */\n\t\t& > #lost-password{\n\t\t\tcolor: $dark-fg;\n\n\t\t\tcursor: pointer;\n\n\t\t\t// Animation de @hover\n\t\t\t&:hover{\n\t\t\t\tcolor: $theme-fg-primary;\n\t\t\t\ttext-decoration: underline;\n\t\t\t}\n\t\t}\n\n\t}\n\n\t/* (4) Gestion de la fermeture */\n\t& > #login-close{\n\t\tdisplay: block;\n\t\tposition: absolute;\n\t\t\ttop: 2em;\n\t\t\tright: 2em;\n\t\t\tmin-width: 2em;\n\t\t\theight: 2em;\n\n\t\tbackground: url('/f/svg/back/st/container/ffffff') right center no-repeat;\n\t\tbackground-size: 1em;\n\n\t\tcolor: #fff;\n\t\tpadding-right: 2em;\n\t\tline-height: 2em;\n\t\tfont-weight: bold;\n\n\t\tcursor: pointer;\n\t}\n}\n", + "/* [1] COULEURS\n=========================================================*/\n/* (1) COULEURS DU THEME $DEFAULT */\n$theme-bg: #e8e8e8;\n$theme-bg-primary: #ffffff;\n$theme-fg: #515151;\n$theme-fg-primary: #399ced;\n\n/* (2) COULEURS DE THEME $DARK */\n$dark-bg: #313541;\n$dark-bg-primary: #29282e;\n$dark-fg: #939393;\n$dark-fg-primary: #ffffff;\n\n\n/* [2] DIMENSIONS\n=========================================================*/\n/* (1) Layout de base */\n$menu-side-width: 15em;\n$header-height: 4em;\n" + ], + "mappings": "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", + "names": [] +} \ No newline at end of file diff --git a/css/layout/nested.css b/css/layout/nested.css new file mode 100644 index 0000000..05ac55e --- /dev/null +++ b/css/layout/nested.css @@ -0,0 +1,152 @@ +/* [1] COULEURS +=========================================================*/ +/* (1) COULEURS DU THEME $DEFAULT */ +/* (2) COULEURS DE THEME $DARK */ +/* [2] DIMENSIONS +=========================================================*/ +/* (1) Layout de base */ +body { + font-family: 'Open Sans'; + font-size: 15px; } + +#WRAPPER { + display: block; + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + background-color: #e8e8e8; + overflow-x: hidden; + overflow-y: auto; + z-index: 1; + /* [1] Header de la page + ==========================================*/ + /* [2] Side-Menu de la page + ==========================================*/ + /* [3] Container de la page + ==========================================*/ } + #WRAPPER > #HEADER { + display: block; + position: fixed; + top: 0; + left: 0; + width: 100%; + height: calc( 4em - 1px); + border-bottom: 1px solid #1484df; + background-color: #399ced; + z-index: 9; } + #WRAPPER > #MENU-SIDE { + display: block; + position: fixed; + top: 4em; + left: 0; + width: 15em; + height: calc( 100% - 4em); + box-shadow: 2px 1px 3px #ddd; + background-color: #fff; + transition: all .3s; + z-index: 10; } + #WRAPPER > #CONTAINER { + display: flex; + position: absolute; + top: 4em; + left: 15em; + width: calc( 100% - 15em); + min-height: calc( 100% - 4em); + flex-direction: row; + justify-content: space-between; + flex-wrap: wrap; + overflow-x: none; + overflow-y: auto; } + +/* [4] Page de login +=========================================================*/ +#LOGIN { + display: flex; + position: fixed; + top: 0; + left: -100%; + width: 100%; + height: 100%; + flex-direction: row; + flex-wrap: nowrap; + justify-content: space-around; + align-items: center; + background-color: #313541; + transition: left .3s ease-in-out; + z-index: 101; + /* (1) Logo et nom du site */ + /* (2) Formulaire de connexion */ + /* (4) Gestion de la fermeture */ } + #LOGIN.active { + left: 0; } + #LOGIN > #login-icon { + width: 35em; + height: 10em; + background: url("/f/svg/icon/st") center center no-repeat; + background-size: auto 100%; } + #LOGIN > #login-form { + display: block; + /* (2.1) Champs de texte (login/password) */ + /* (2.2) Bouton de connexion */ + /* (3) Mot de passe oublie */ } + #LOGIN > #login-form > input[type='text'], + #LOGIN > #login-form > input[type='password'], + #LOGIN > #login-form > input[type='submit'] { + display: flex; + width: 20em; + margin: 2em 0; + padding: 1em 2em; + flex-direction: column; + justify-content: space-around; + flex-wrap: nowrap; + align-items: middle; + border-radius: 5px; + border: 1px solid #6b6b6b; + background-color: #313541; + color: #ffffff; + font-weight: bold; + letter-spacing: .07em; + transition: border .2s ease-in-out; + cursor: default; } + #LOGIN > #login-form > input[type='text']:hover, #LOGIN > #login-form > input[type='text']:focus, + #LOGIN > #login-form > input[type='password']:hover, + #LOGIN > #login-form > input[type='password']:focus, + #LOGIN > #login-form > input[type='submit']:hover, + #LOGIN > #login-form > input[type='submit']:focus { + border-color: #399ced; } + #LOGIN > #login-form > input[type='submit'] { + width: 100%; + margin: 2em 0; + border: 0; + background-color: #399ced; + color: #ffffff; + font-weight: bold; + text-align: left; + cursor: pointer; } + #LOGIN > #login-form > input[type='submit']:hover { + background-color: #1484df; + box-shadow: 0 0 1em #1b1d24; } + #LOGIN > #login-form > #lost-password { + color: #939393; + cursor: pointer; } + #LOGIN > #login-form > #lost-password:hover { + color: #399ced; + text-decoration: underline; } + #LOGIN > #login-close { + display: block; + position: absolute; + top: 2em; + right: 2em; + min-width: 2em; + height: 2em; + background: url("/f/svg/back/st/container/ffffff") right center no-repeat; + background-size: 1em; + color: #fff; + padding-right: 2em; + line-height: 2em; + font-weight: bold; + cursor: pointer; } + +/*# sourceMappingURL=data:application/json;base64,ewoJInZlcnNpb24iOiAzLAoJImZpbGUiOiAibmVzdGVkLmNzcyIsCgkic291cmNlcyI6IFsKCQkiLi4vbGF5b3V0LnNjc3MiLAoJCSIuLi9jb25zdGFudHMuc2NzcyIKCV0sCgkic291cmNlc0NvbnRlbnQiOiBbCgkJIkBpbXBvcnQgJ2NvbnN0YW50cyc7XG5cbmJvZHl7XG5cblx0Zm9udC1mYW1pbHk6ICdPcGVuIFNhbnMnO1xuXHRmb250LXNpemU6IDE1cHg7XG59XG5cblxuXG4jV1JBUFBFUntcblx0ZGlzcGxheTogYmxvY2s7XG5cdHBvc2l0aW9uOiBmaXhlZDtcblx0XHR0b3A6IDA7XG5cdFx0bGVmdDogMDtcblx0XHR3aWR0aDogMTAwJTtcblx0XHRoZWlnaHQ6IDEwMCU7XG5cblx0YmFja2dyb3VuZC1jb2xvcjogJHRoZW1lLWJnO1xuXG5cdG92ZXJmbG93LXg6IGhpZGRlbjtcblx0b3ZlcmZsb3cteTogYXV0bztcblxuXHR6LWluZGV4OiAxO1xuXG5cblx0LyogWzFdIEhlYWRlciBkZSBsYSBwYWdlXG5cdD09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXG5cdCYgPiAjSEVBREVSe1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdHBvc2l0aW9uOiBmaXhlZDtcblx0XHRcdHRvcDogMDtcblx0XHRcdGxlZnQ6IDA7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdGhlaWdodDogY2FsYyggI3skaGVhZGVyLWhlaWdodH0gLSAxcHggKTtcblxuXHRcdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBkYXJrZW4oJHRoZW1lLWZnLXByaW1hcnksIDEwKTtcblxuXHRcdGJhY2tncm91bmQtY29sb3I6ICR0aGVtZS1mZy1wcmltYXJ5O1xuXG5cdFx0ei1pbmRleDogOTtcblxuXHR9XG5cblxuXHQvKiBbMl0gU2lkZS1NZW51IGRlIGxhIHBhZ2Vcblx0PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cblx0Ly8gR2VzdGlvbiBkdSBtZW51XG5cdCYgPiAjTUVOVS1TSURFe1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdHBvc2l0aW9uOiBmaXhlZDtcblx0XHRcdHRvcDogJGhlYWRlci1oZWlnaHQ7XG5cdFx0XHRsZWZ0OiAwO1xuXHRcdFx0d2lkdGg6ICRtZW51LXNpZGUtd2lkdGg7XG5cdFx0XHRoZWlnaHQ6IGNhbGMoIDEwMCUgLSAjeyRoZWFkZXItaGVpZ2h0fSApO1xuXG5cdFx0Ym94LXNoYWRvdzogMnB4IDFweCAzcHggI2RkZDtcblxuXHRcdGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG5cblx0XHR0cmFuc2l0aW9uOiBhbGwgLjNzO1xuXG5cdFx0ei1pbmRleDogMTA7XG5cdH1cblxuXG5cdC8qIFszXSBDb250YWluZXIgZGUgbGEgcGFnZVxuXHQ9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xuXHQmID4gI0NPTlRBSU5FUntcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdHRvcDogJGhlYWRlci1oZWlnaHQ7XG5cdFx0XHRsZWZ0OiAkbWVudS1zaWRlLXdpZHRoO1xuXHRcdFx0d2lkdGg6IGNhbGMoIDEwMCUgLSAjeyRtZW51LXNpZGUtd2lkdGh9ICk7XG5cdFx0XHRtaW4taGVpZ2h0OiBjYWxjKCAxMDAlIC0gI3skaGVhZGVyLWhlaWdodH0gKTtcblx0XHQvLyAgbWFyZ2luOiAxZW07XG5cblx0XHQvLyBGbGV4IHByb3BlcnRpZXNcblx0XHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHRcdGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcblx0XHRmbGV4LXdyYXA6IHdyYXA7XG5cblx0XHRvdmVyZmxvdy14OiBub25lO1xuXHRcdG92ZXJmbG93LXk6IGF1dG87XG5cdH1cbn1cblxuXG5cblxuLyogWzRdIFBhZ2UgZGUgbG9naW5cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXG4jTE9HSU57XG5cdGRpc3BsYXk6IGZsZXg7XG5cdHBvc2l0aW9uOiBmaXhlZDtcblx0XHR0b3A6IDA7XG5cdFx0bGVmdDogLTEwMCU7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0aGVpZ2h0OiAxMDAlO1xuXG5cdC8vIFF1YW5kIGxhIHBhZ2UgZGUgbG9naW4gZXN0IHZpc2libGVcblx0Ji5hY3RpdmV7XG5cdFx0bGVmdDogMDtcblx0fVxuXG5cdC8vIGZsZXggcHJvcGVydGllc1xuXHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHRmbGV4LXdyYXA6IG5vd3JhcDtcblx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cblxuXHRiYWNrZ3JvdW5kLWNvbG9yOiAkZGFyay1iZztcblxuXHR0cmFuc2l0aW9uOiBsZWZ0IC4zcyBlYXNlLWluLW91dDtcblxuXHR6LWluZGV4OiAxMDE7XG5cblxuXG5cblx0LyogKDEpIExvZ28gZXQgbm9tIGR1IHNpdGUgKi9cblx0JiA+ICNsb2dpbi1pY29ue1xuXHRcdHdpZHRoOiAzNWVtO1xuXHRcdGhlaWdodDogMTBlbTtcblxuXHRcdGJhY2tncm91bmQ6IHVybCgnL2Yvc3ZnL2ljb24vc3QnKSBjZW50ZXIgY2VudGVyIG5vLXJlcGVhdDtcblx0XHRiYWNrZ3JvdW5kLXNpemU6IGF1dG8gMTAwJTtcblx0fVxuXG5cblx0LyogKDIpIEZvcm11bGFpcmUgZGUgY29ubmV4aW9uICovXG5cdCYgPiAjbG9naW4tZm9ybXtcblx0XHRkaXNwbGF5OiBibG9jaztcblxuXG5cdFx0LyogKDIuMSkgQ2hhbXBzIGRlIHRleHRlIChsb2dpbi9wYXNzd29yZCkgKi9cblx0XHQmID4gaW5wdXRbdHlwZT0ndGV4dCddLFxuXHRcdCYgPiBpbnB1dFt0eXBlPSdwYXNzd29yZCddLFxuXHRcdCYgPiBpbnB1dFt0eXBlPSdzdWJtaXQnXXtcblx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHRcdHdpZHRoOiAyMGVtO1xuXG5cdFx0XHRtYXJnaW46IDJlbSAwO1xuXHRcdFx0cGFkZGluZzogMWVtIDJlbTtcblxuXHRcdFx0Ly8gZmxleCBwcm9wZXJ0aWVzXG5cdFx0XHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXHRcdFx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XG5cdFx0XHRmbGV4LXdyYXA6IG5vd3JhcDtcblx0XHRcdGFsaWduLWl0ZW1zOiBtaWRkbGU7XG5cblxuXHRcdFx0Ym9yZGVyLXJhZGl1czogNXB4O1xuXHRcdFx0Ym9yZGVyOiAxcHggc29saWQgbGlnaHRlbigkdGhlbWUtZmcsIDEwKTtcblxuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogJGRhcmstYmc7XG5cblx0XHRcdGNvbG9yOiAkZGFyay1mZy1wcmltYXJ5O1xuXHRcdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdFx0XHRsZXR0ZXItc3BhY2luZzogLjA3ZW07XG5cblx0XHRcdHRyYW5zaXRpb246IGJvcmRlciAuMnMgZWFzZS1pbi1vdXQ7XG5cblx0XHRcdGN1cnNvcjogZGVmYXVsdDtcblxuXHRcdFx0Ly8gQW5pbWF0aW9uIGRlIEBob3Zlci9AZm9jdXNcblx0XHRcdCY6aG92ZXIsXG5cdFx0XHQmOmZvY3Vze1xuXHRcdFx0XHRib3JkZXItY29sb3I6ICR0aGVtZS1mZy1wcmltYXJ5O1xuXHRcdFx0fVxuXG5cdFx0fVxuXG5cblx0XHQvKiAoMi4yKSBCb3V0b24gZGUgY29ubmV4aW9uICovXG5cdFx0JiA+IGlucHV0W3R5cGU9J3N1Ym1pdCdde1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRtYXJnaW46IDJlbSAwO1xuXG5cdFx0XHRib3JkZXI6IDA7XG5cblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICR0aGVtZS1mZy1wcmltYXJ5O1xuXG5cdFx0XHRjb2xvcjogJGRhcmstZmctcHJpbWFyeTtcblx0XHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRcdFx0dGV4dC1hbGlnbjogbGVmdDtcblxuXHRcdFx0Y3Vyc29yOiBwb2ludGVyO1xuXG5cdFx0XHQvLyBBbmltYXRpb24gZGUgQGhvdmVyXG5cdFx0XHQmOmhvdmVye1xuXHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oJHRoZW1lLWZnLXByaW1hcnksIDEwKTtcblx0XHRcdFx0Ym94LXNoYWRvdzogMCAwIDFlbSBkYXJrZW4oJGRhcmstYmcsIDEwKTtcblx0XHRcdH1cblxuXHRcdH1cblxuXG5cblxuXG5cdFx0LyogKDMpIE1vdCBkZSBwYXNzZSBvdWJsaWUgKi9cblx0XHQmID4gI2xvc3QtcGFzc3dvcmR7XG5cdFx0XHRjb2xvcjogJGRhcmstZmc7XG5cblx0XHRcdGN1cnNvcjogcG9pbnRlcjtcblxuXHRcdFx0Ly8gQW5pbWF0aW9uIGRlIEBob3ZlclxuXHRcdFx0Jjpob3Zlcntcblx0XHRcdFx0Y29sb3I6ICR0aGVtZS1mZy1wcmltYXJ5O1xuXHRcdFx0XHR0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcblx0XHRcdH1cblx0XHR9XG5cblx0fVxuXG5cdC8qICg0KSBHZXN0aW9uIGRlIGxhIGZlcm1ldHVyZSAqL1xuXHQmID4gI2xvZ2luLWNsb3Nle1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdHRvcDogMmVtO1xuXHRcdFx0cmlnaHQ6IDJlbTtcblx0XHRcdG1pbi13aWR0aDogMmVtO1xuXHRcdFx0aGVpZ2h0OiAyZW07XG5cblx0XHRiYWNrZ3JvdW5kOiB1cmwoJy9mL3N2Zy9iYWNrL3N0L2NvbnRhaW5lci9mZmZmZmYnKSByaWdodCBjZW50ZXIgbm8tcmVwZWF0O1xuXHRcdGJhY2tncm91bmQtc2l6ZTogMWVtO1xuXG5cdFx0Y29sb3I6ICNmZmY7XG5cdFx0cGFkZGluZy1yaWdodDogMmVtO1xuXHRcdGxpbmUtaGVpZ2h0OiAyZW07XG5cdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cblx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdH1cbn1cbiIsCgkJIi8qIFsxXSBDT1VMRVVSU1xuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cbi8qICgxKSBDT1VMRVVSUyBEVSBUSEVNRSAkREVGQVVMVCAqL1xuJHRoZW1lLWJnOiAgICAgICAgICNlOGU4ZTg7XG4kdGhlbWUtYmctcHJpbWFyeTogI2ZmZmZmZjtcbiR0aGVtZS1mZzogICAgICAgICAjNTE1MTUxO1xuJHRoZW1lLWZnLXByaW1hcnk6ICMzOTljZWQ7XG5cbi8qICgyKSBDT1VMRVVSUyBERSBUSEVNRSAkREFSSyAqL1xuJGRhcmstYmc6ICAgICAgICAgIzMxMzU0MTtcbiRkYXJrLWJnLXByaW1hcnk6ICMyOTI4MmU7XG4kZGFyay1mZzogICAgICAgICAjOTM5MzkzO1xuJGRhcmstZmctcHJpbWFyeTogI2ZmZmZmZjtcblxuXG4vKiBbMl0gRElNRU5TSU9OU1xuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cbi8qICgxKSBMYXlvdXQgZGUgYmFzZSAqL1xuJG1lbnUtc2lkZS13aWR0aDogMTVlbTtcbiRoZWFkZXItaGVpZ2h0OiAgIDRlbTtcbiIKCV0sCgkibWFwcGluZ3MiOiAiQUNBQTsyREFDMkQ7QUFDM0Qsb0NBQW9DO0FBTXBDLGlDQUFpQztBQU9qQzsyREFDMkQ7QUFDM0Qsd0JBQXdCO0FEZnhCLElBQUksQ0FBQTtFQUVILFdBQVcsRUFBRSxXQUFZO0VBQ3pCLFNBQVMsRUFBRSxJQUFLLEdBQ2hCOztBQUlELFFBQVEsQ0FBQTtFQUNQLE9BQU8sRUFBRSxLQUFNO0VBQ2YsUUFBUSxFQUFFLEtBQU07RUFDZixHQUFHLEVBQUUsQ0FBRTtFQUNQLElBQUksRUFBRSxDQUFFO0VBQ1IsS0FBSyxFQUFFLElBQUs7RUFDWixNQUFNLEVBQUUsSUFBSztFQUVkLGdCQUFnQixFQ2ZFLE9BQU87RURpQnpCLFVBQVUsRUFBRSxNQUFPO0VBQ25CLFVBQVUsRUFBRSxJQUFLO0VBRWpCLE9BQU8sRUFBRSxDQUFFO0VBR1g7NkNBQzRDO0VBa0I1Qzs2Q0FDNEM7RUFvQjVDOzZDQUM0QyxFQWtC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 */ \ No newline at end of file diff --git a/css/layout/nested.css.map b/css/layout/nested.css.map new file mode 100644 index 0000000..db88bff --- /dev/null +++ b/css/layout/nested.css.map @@ -0,0 +1,14 @@ +{ + "version": 3, + "file": "nested.css", + "sources": [ + "../layout.scss", + "../constants.scss" + ], + "sourcesContent": [ + "@import 'constants';\n\nbody{\n\n\tfont-family: 'Open Sans';\n\tfont-size: 15px;\n}\n\n\n\n#WRAPPER{\n\tdisplay: block;\n\tposition: fixed;\n\t\ttop: 0;\n\t\tleft: 0;\n\t\twidth: 100%;\n\t\theight: 100%;\n\n\tbackground-color: $theme-bg;\n\n\toverflow-x: hidden;\n\toverflow-y: auto;\n\n\tz-index: 1;\n\n\n\t/* [1] Header de la page\n\t==========================================*/\n\t& > #HEADER{\n\t\tdisplay: block;\n\t\tposition: fixed;\n\t\t\ttop: 0;\n\t\t\tleft: 0;\n\t\t\twidth: 100%;\n\t\t\theight: calc( #{$header-height} - 1px );\n\n\t\tborder-bottom: 1px solid darken($theme-fg-primary, 10);\n\n\t\tbackground-color: $theme-fg-primary;\n\n\t\tz-index: 9;\n\n\t}\n\n\n\t/* [2] Side-Menu de la page\n\t==========================================*/\n\t// Gestion du menu\n\t& > #MENU-SIDE{\n\t\tdisplay: block;\n\t\tposition: fixed;\n\t\t\ttop: $header-height;\n\t\t\tleft: 0;\n\t\t\twidth: $menu-side-width;\n\t\t\theight: calc( 100% - #{$header-height} );\n\n\t\tbox-shadow: 2px 1px 3px #ddd;\n\n\t\tbackground-color: #fff;\n\n\t\ttransition: all .3s;\n\n\t\tz-index: 10;\n\t}\n\n\n\t/* [3] Container de la page\n\t==========================================*/\n\t& > #CONTAINER{\n\t\tdisplay: flex;\n\t\tposition: absolute;\n\t\t\ttop: $header-height;\n\t\t\tleft: $menu-side-width;\n\t\t\twidth: calc( 100% - #{$menu-side-width} );\n\t\t\tmin-height: calc( 100% - #{$header-height} );\n\t\t// margin: 1em;\n\n\t\t// Flex properties\n\t\tflex-direction: row;\n\t\tjustify-content: space-between;\n\t\tflex-wrap: wrap;\n\n\t\toverflow-x: none;\n\t\toverflow-y: auto;\n\t}\n}\n\n\n\n\n/* [4] Page de login\n=========================================================*/\n#LOGIN{\n\tdisplay: flex;\n\tposition: fixed;\n\t\ttop: 0;\n\t\tleft: -100%;\n\t\twidth: 100%;\n\t\theight: 100%;\n\n\t// Quand la page de login est visible\n\t&.active{\n\t\tleft: 0;\n\t}\n\n\t// flex properties\n\tflex-direction: row;\n\tflex-wrap: nowrap;\n\tjustify-content: space-around;\n\talign-items: center;\n\n\n\tbackground-color: $dark-bg;\n\n\ttransition: left .3s ease-in-out;\n\n\tz-index: 101;\n\n\n\n\n\t/* (1) Logo et nom du site */\n\t& > #login-icon{\n\t\twidth: 35em;\n\t\theight: 10em;\n\n\t\tbackground: url('/f/svg/icon/st') center center no-repeat;\n\t\tbackground-size: auto 100%;\n\t}\n\n\n\t/* (2) Formulaire de connexion */\n\t& > #login-form{\n\t\tdisplay: block;\n\n\n\t\t/* (2.1) Champs de texte (login/password) */\n\t\t& > input[type='text'],\n\t\t& > input[type='password'],\n\t\t& > input[type='submit']{\n\t\t\tdisplay: flex;\n\t\t\t\twidth: 20em;\n\n\t\t\tmargin: 2em 0;\n\t\t\tpadding: 1em 2em;\n\n\t\t\t// flex properties\n\t\t\tflex-direction: column;\n\t\t\tjustify-content: space-around;\n\t\t\tflex-wrap: nowrap;\n\t\t\talign-items: middle;\n\n\n\t\t\tborder-radius: 5px;\n\t\t\tborder: 1px solid lighten($theme-fg, 10);\n\n\t\t\tbackground-color: $dark-bg;\n\n\t\t\tcolor: $dark-fg-primary;\n\t\t\tfont-weight: bold;\n\t\t\tletter-spacing: .07em;\n\n\t\t\ttransition: border .2s ease-in-out;\n\n\t\t\tcursor: default;\n\n\t\t\t// Animation de @hover/@focus\n\t\t\t&:hover,\n\t\t\t&:focus{\n\t\t\t\tborder-color: $theme-fg-primary;\n\t\t\t}\n\n\t\t}\n\n\n\t\t/* (2.2) Bouton de connexion */\n\t\t& > input[type='submit']{\n\t\t\twidth: 100%;\n\t\t\tmargin: 2em 0;\n\n\t\t\tborder: 0;\n\n\t\t\tbackground-color: $theme-fg-primary;\n\n\t\t\tcolor: $dark-fg-primary;\n\t\t\tfont-weight: bold;\n\t\t\ttext-align: left;\n\n\t\t\tcursor: pointer;\n\n\t\t\t// Animation de @hover\n\t\t\t&:hover{\n\t\t\t\tbackground-color: darken($theme-fg-primary, 10);\n\t\t\t\tbox-shadow: 0 0 1em darken($dark-bg, 10);\n\t\t\t}\n\n\t\t}\n\n\n\n\n\n\t\t/* (3) Mot de passe oublie */\n\t\t& > #lost-password{\n\t\t\tcolor: $dark-fg;\n\n\t\t\tcursor: pointer;\n\n\t\t\t// Animation de @hover\n\t\t\t&:hover{\n\t\t\t\tcolor: $theme-fg-primary;\n\t\t\t\ttext-decoration: underline;\n\t\t\t}\n\t\t}\n\n\t}\n\n\t/* (4) Gestion de la fermeture */\n\t& > #login-close{\n\t\tdisplay: block;\n\t\tposition: absolute;\n\t\t\ttop: 2em;\n\t\t\tright: 2em;\n\t\t\tmin-width: 2em;\n\t\t\theight: 2em;\n\n\t\tbackground: url('/f/svg/back/st/container/ffffff') right center no-repeat;\n\t\tbackground-size: 1em;\n\n\t\tcolor: #fff;\n\t\tpadding-right: 2em;\n\t\tline-height: 2em;\n\t\tfont-weight: bold;\n\n\t\tcursor: pointer;\n\t}\n}\n", + "/* [1] COULEURS\n=========================================================*/\n/* (1) COULEURS DU THEME $DEFAULT */\n$theme-bg: #e8e8e8;\n$theme-bg-primary: #ffffff;\n$theme-fg: #515151;\n$theme-fg-primary: #399ced;\n\n/* (2) COULEURS DE THEME $DARK */\n$dark-bg: #313541;\n$dark-bg-primary: #29282e;\n$dark-fg: #939393;\n$dark-fg-primary: #ffffff;\n\n\n/* [2] DIMENSIONS\n=========================================================*/\n/* (1) Layout de base */\n$menu-side-width: 15em;\n$header-height: 4em;\n" + ], + "mappings": "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", + "names": [] +} \ No newline at end of file diff --git a/css/menu-side.css b/css/menu-side.css deleted file mode 100755 index c75e07a..0000000 --- a/css/menu-side.css +++ /dev/null @@ -1,2 +0,0 @@ -#WRAPPER>#MENU-SIDE>span{display:block;position:relative;width:calc( 100% - 2*1em - 2*1.5em );padding:.8em 1.5em;padding-left:calc( 1.5em + 2*1em );border-bottom:1px solid transparent;background:url("/f/svg/sub/st/menu-side/aaaaaa") right 1.5em center no-repeat;background-size:.5em .5em;color:#666;font-size:.85em;transition:color .2s ease-in-out, background .2s ease-in-out, box-shadow .2s ease-in-out, border .2s ease-in-out;cursor:pointer}#WRAPPER>#MENU-SIDE>span>svg,#WRAPPER>#MENU-SIDE>span>svg *{position:absolute;top:calc( 50% - 1em/2 );left:1.5em;width:1em;height:1em;fill:#939393 !important;transition:fill .2s ease-in-out}#WRAPPER>#MENU-SIDE>span:not(.active):hover{background-image:url("/f/svg/sub/st/menu-side/000000");color:#000}#WRAPPER>#MENU-SIDE>span:not(.active):hover>svg,#WRAPPER>#MENU-SIDE>span:not(.active):hover>svg *{fill:#000 !important}#WRAPPER>#MENU-SIDE>span.active{border-bottom-color:#2290eb;background-color:#399ced;background-image:url("/f/svg/sub-active/st/menu-side/ffffff");color:#fff}#WRAPPER>#MENU-SIDE>span.active>svg,#WRAPPER>#MENU-SIDE>span.active>svg *{fill:#fff !important}#WRAPPER>#MENU-SIDE>span:not(.icon)+div.sub>span{display:block;position:relative;width:calc( 100% - 1.5em - 2.5em );padding:.5em 1.5em;padding-left:2.5em;background:#313541 url("/f/svg/sub/st/menu-side/888888") 1.5em center no-repeat;background-size:.5em;color:#7a7a7a;font-size:.85em;cursor:pointer;transition:color .2s ease-in-out}#WRAPPER>#MENU-SIDE>span:not(.icon)+div.sub>span:hover,#WRAPPER>#MENU-SIDE>span:not(.icon)+div.sub>span.active{color:#fff;background-image:url("/f/svg/sub/st/menu-side/ffffff")}#WRAPPER>#MENU-SIDE>span:not(.icon):not(.active)+div.sub>span{display:none} -/*# sourceMappingURL=menu-side.css.map */ diff --git a/css/menu-side.css.map b/css/menu-side.css.map deleted file mode 100755 index 29f0c20..0000000 --- a/css/menu-side.css.map +++ /dev/null @@ -1,7 +0,0 @@ -{ -"version": 3, -"mappings": "AAMC,wBAAQ,CACP,OAAO,CAAE,KAAK,CACd,QAAQ,CAAE,QAAQ,CACjB,KAAK,CAAE,8BAA8B,CAEtC,OAAO,CAAE,UAAU,CACnB,YAAY,CAAE,qBAAqB,CAEnC,aAAa,CAAE,qBAAqB,CAEpC,UAAU,CAAE,kEAAkE,CAC9E,eAAe,CAAE,SAAS,CAG1B,KAAK,CAAE,IAAI,CACX,SAAS,CAAE,KAAK,CAEhB,UAAU,CAAE,qGAAqG,CAEjH,MAAM,CAAE,OAAO,CAGf,2DAAkB,CACjB,QAAQ,CAAE,QAAQ,CACjB,GAAG,CAAE,mBAAmB,CACxB,IAAI,CAAE,KAAK,CACX,KAAK,CAAE,GAAG,CACV,MAAM,CAAE,GAAG,CAEZ,IAAI,CAAE,kBAAmB,CACzB,UAAU,CAAE,oBAAoB,CAKjC,2CAAoB,CACnB,gBAAgB,CAAE,qCAAqC,CACvD,KAAK,CAAE,IAAI,CAEX,iGAAkB,CACjB,IAAI,CAAE,eAAe,CAKvB,+BAAQ,CACP,mBAAmB,CAAE,OAA4B,CAGjD,gBAAgB,CCjDA,OAAO,CDkDvB,gBAAgB,CAAE,4CAA4C,CAC9D,KAAK,CC7CU,IAAO,CD+CtB,yEAAkB,CACjB,IAAI,CAAE,eAAe,CAYxB,gDAAkC,CACjC,OAAO,CAAE,KAAK,CACd,QAAQ,CAAE,QAAQ,CACjB,KAAK,CAAE,4BAA4B,CAEpC,OAAO,CAAE,UAAU,CACnB,YAAY,CAAE,KAAK,CAEnB,UAAU,CAAE,oEAAqE,CACjF,eAAe,CAAE,IAAI,CAErB,KAAK,CAAE,OAAoB,CAC3B,SAAS,CAAE,KAAK,CAEhB,MAAM,CAAE,OAAO,CAEf,UAAU,CAAE,qBAAqB,CAGjC,8GACQ,CACP,KAAK,CCjFU,IAAO,CDkFtB,gBAAgB,CAAE,qCAAqC,CAKzD,6DAA+C,CAC9C,OAAO,CAAE,IAAI", -"sources": ["menu-side.scss","constants.scss"], -"names": [], -"file": "menu-side.css" -} \ No newline at end of file diff --git a/css/menu-side.scss b/css/menu-side.scss index 768f87f..452bd9c 100755 --- a/css/menu-side.scss +++ b/css/menu-side.scss @@ -1,7 +1,7 @@ @import 'constants'; #WRAPPER > #MENU-SIDE{ - + /* [1] Elements du menu =========================================================*/ & > span{ @@ -24,7 +24,7 @@ transition: color .2s ease-in-out, background .2s ease-in-out, box-shadow .2s ease-in-out, border .2s ease-in-out; cursor: pointer; - + /* (1) Icone svg */ & > svg, & > svg *{ position: absolute; @@ -87,7 +87,7 @@ cursor: pointer; transition: color .2s ease-in-out; - + // Animation de @hover ou .active &:hover, &.active{ diff --git a/css/menu-side/compact.css b/css/menu-side/compact.css new file mode 100644 index 0000000..64455fc --- /dev/null +++ b/css/menu-side/compact.css @@ -0,0 +1,28 @@ +/* [1] COULEURS +=========================================================*/ +/* (1) COULEURS DU THEME $DEFAULT */ +/* (2) COULEURS DE THEME $DARK */ +/* [2] DIMENSIONS +=========================================================*/ +/* (1) Layout de base */ +#WRAPPER > #MENU-SIDE { /* [1] Elements du menu =========================================================*/ /* [2] Gestion du menu deroulant =========================================================*/ /* (1) Quand le menu est deroule */ } + +#WRAPPER > #MENU-SIDE > span { display: block; position: relative; width: calc( 100% - 2*1em - 2*1.5em); padding: .8em 1.5em; padding-left: calc( 1.5em + 2*1em); border-bottom: 1px solid transparent; background: url("/f/svg/sub/st/menu-side/aaaaaa") right 1.5em center no-repeat; background-size: .5em .5em; color: #666; font-size: .85em; transition: color .2s ease-in-out, background .2s ease-in-out, box-shadow .2s ease-in-out, border .2s ease-in-out; cursor: pointer; /* (1) Icone svg */ /* (2) Animation de @hover */ /* (3) Animation quand .active */ } + +#WRAPPER > #MENU-SIDE > span > svg, #WRAPPER > #MENU-SIDE > span > svg * { position: absolute; top: calc( 50% - 1em/2); left: 1.5em; width: 1em; height: 1em; fill: #939393 !important; transition: fill .2s ease-in-out; } + +#WRAPPER > #MENU-SIDE > span:not(.active):hover { background-image: url("/f/svg/sub/st/menu-side/000000"); color: #000; } + +#WRAPPER > #MENU-SIDE > span:not(.active):hover > svg, #WRAPPER > #MENU-SIDE > span:not(.active):hover > svg * { fill: #000 !important; } + +#WRAPPER > #MENU-SIDE > span.active { border-bottom-color: #2290eb; background-color: #399ced; background-image: url("/f/svg/sub-active/st/menu-side/ffffff"); color: #ffffff; } + +#WRAPPER > #MENU-SIDE > span.active > svg, #WRAPPER > #MENU-SIDE > span.active > svg * { fill: #fff !important; } + +#WRAPPER > #MENU-SIDE > span:not(.icon) + div.sub > span { display: block; position: relative; width: calc( 100% - 1.5em - 2.5em); padding: .5em 1.5em; padding-left: 2.5em; background: #313541 url("/f/svg/sub/st/menu-side/888888") 1.5em center no-repeat; background-size: .5em; color: #7a7a7a; font-size: .85em; cursor: pointer; transition: color .2s ease-in-out; } + +#WRAPPER > #MENU-SIDE > span:not(.icon) + div.sub > span:hover, #WRAPPER > #MENU-SIDE > span:not(.icon) + div.sub > span.active { color: #ffffff; background-image: url("/f/svg/sub/st/menu-side/ffffff"); } + +#WRAPPER > #MENU-SIDE > span:not(.icon):not(.active) + div.sub > span { display: none; } + +/*# sourceMappingURL=data:application/json;base64,ewoJInZlcnNpb24iOiAzLAoJImZpbGUiOiAiY29tcGFjdC5jc3MiLAoJInNvdXJjZXMiOiBbCgkJIi4uL21lbnUtc2lkZS5zY3NzIiwKCQkiLi4vY29uc3RhbnRzLnNjc3MiCgldLAoJInNvdXJjZXNDb250ZW50IjogWwoJCSJAaW1wb3J0ICdjb25zdGFudHMnO1xuXG4jV1JBUFBFUiA+ICNNRU5VLVNJREV7XG5cblx0LyogWzFdIEVsZW1lbnRzIGR1IG1lbnVcblx0PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cblx0JiA+IHNwYW57XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0d2lkdGg6IGNhbGMoIDEwMCUgLSAyKjFlbSAtIDIqMS41ZW0gKTtcblxuXHRcdHBhZGRpbmc6IC44ZW0gMS41ZW07XG5cdFx0cGFkZGluZy1sZWZ0OiBjYWxjKCAxLjVlbSArIDIqMWVtICk7XG5cblx0XHRib3JkZXItYm90dG9tOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG5cblx0XHRiYWNrZ3JvdW5kOiB1cmwoJy9mL3N2Zy9zdWIvc3QvbWVudS1zaWRlL2FhYWFhYScpIHJpZ2h0IDEuNWVtIGNlbnRlciBuby1yZXBlYXQ7XG5cdFx0YmFja2dyb3VuZC1zaXplOiAuNWVtIC41ZW07XG5cblxuXHRcdGNvbG9yOiAjNjY2O1xuXHRcdGZvbnQtc2l6ZTogLjg1ZW07XG5cblx0XHR0cmFuc2l0aW9uOiBjb2xvciAuMnMgZWFzZS1pbi1vdXQsIGJhY2tncm91bmQgLjJzIGVhc2UtaW4tb3V0LCBib3gtc2hhZG93IC4ycyBlYXNlLWluLW91dCwgYm9yZGVyIC4ycyBlYXNlLWluLW91dDtcblxuXHRcdGN1cnNvcjogcG9pbnRlcjtcblxuXHRcdC8qICgxKSBJY29uZSBzdmcgKi9cblx0XHQmID4gc3ZnLCAmID4gc3ZnICp7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRcdHRvcDogY2FsYyggNTAlIC0gMWVtLzIgKTtcblx0XHRcdFx0bGVmdDogMS41ZW07XG5cdFx0XHRcdHdpZHRoOiAxZW07XG5cdFx0XHRcdGhlaWdodDogMWVtO1xuXG5cdFx0XHRmaWxsOiAkZGFyay1mZyAhaW1wb3J0YW50O1xuXHRcdFx0dHJhbnNpdGlvbjogZmlsbCAuMnMgZWFzZS1pbi1vdXQ7XG5cdFx0fVxuXG5cblx0XHQvKiAoMikgQW5pbWF0aW9uIGRlIEBob3ZlciAqL1xuXHRcdCY6bm90KC5hY3RpdmUpOmhvdmVye1xuXHRcdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKCcvZi9zdmcvc3ViL3N0L21lbnUtc2lkZS8wMDAwMDAnKTtcblx0XHRcdGNvbG9yOiAjMDAwO1xuXG5cdFx0XHQmID4gc3ZnLCAmID4gc3ZnICp7XG5cdFx0XHRcdGZpbGw6ICMwMDAgIWltcG9ydGFudDtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQvKiAoMykgQW5pbWF0aW9uIHF1YW5kIC5hY3RpdmUgKi9cblx0XHQmLmFjdGl2ZXtcblx0XHRcdGJvcmRlci1ib3R0b20tY29sb3I6IGRhcmtlbigkdGhlbWUtZmctcHJpbWFyeSwgNSk7XG5cdFx0XHQvLyBib3gtc2hhZG93OiBpbnNldCAwIDAgMWVtIGRhcmtlbigkZGFyay1iZy1wcmltYXJ5LCAxKTtcblxuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogJHRoZW1lLWZnLXByaW1hcnk7XG5cdFx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy9mL3N2Zy9zdWItYWN0aXZlL3N0L21lbnUtc2lkZS9mZmZmZmYnKTtcblx0XHRcdGNvbG9yOiAkZGFyay1mZy1wcmltYXJ5O1xuXG5cdFx0XHQmID4gc3ZnLCAmID4gc3ZnICp7XG5cdFx0XHRcdGZpbGw6ICNmZmYgIWltcG9ydGFudDtcblx0XHRcdH1cblx0XHR9XG5cblxuXHR9XG5cblxuXG5cdC8qIFsyXSBHZXN0aW9uIGR1IG1lbnUgZGVyb3VsYW50XG5cdD09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXG5cdC8qICgxKSBRdWFuZCBsZSBtZW51IGVzdCBkZXJvdWxlICovXG5cdCYgPiBzcGFuOm5vdCguaWNvbikgKyBkaXYuc3ViPnNwYW57XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0d2lkdGg6IGNhbGMoIDEwMCUgLSAxLjVlbSAtIDIuNWVtICk7XG5cblx0XHRwYWRkaW5nOiAuNWVtIDEuNWVtO1xuXHRcdHBhZGRpbmctbGVmdDogMi41ZW07XG5cblx0XHRiYWNrZ3JvdW5kOiAkZGFyay1iZyB1cmwoJy9mL3N2Zy9zdWIvc3QvbWVudS1zaWRlLzg4ODg4OCcpIDEuNWVtIGNlbnRlciBuby1yZXBlYXQ7O1xuXHRcdGJhY2tncm91bmQtc2l6ZTogLjVlbTtcblxuXHRcdGNvbG9yOiBkYXJrZW4oJGRhcmstZmcsIDEwKTtcblx0XHRmb250LXNpemU6IC44NWVtO1xuXG5cdFx0Y3Vyc29yOiBwb2ludGVyO1xuXG5cdFx0dHJhbnNpdGlvbjogY29sb3IgLjJzIGVhc2UtaW4tb3V0O1xuXG5cdFx0Ly8gQW5pbWF0aW9uIGRlIEBob3ZlciBvdSAuYWN0aXZlXG5cdFx0Jjpob3Zlcixcblx0XHQmLmFjdGl2ZXtcblx0XHRcdGNvbG9yOiAkZGFyay1mZy1wcmltYXJ5O1xuXHRcdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKCcvZi9zdmcvc3ViL3N0L21lbnUtc2lkZS9mZmZmZmYnKTtcblx0XHR9XG5cdH1cblxuXG5cdCYgPiBzcGFuOm5vdCguaWNvbik6bm90KC5hY3RpdmUpICsgZGl2LnN1Yj5zcGFue1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cbn1cbiIsCgkJIi8qIFsxXSBDT1VMRVVSU1xuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cbi8qICgxKSBDT1VMRVVSUyBEVSBUSEVNRSAkREVGQVVMVCAqL1xuJHRoZW1lLWJnOiAgICAgICAgICNlOGU4ZTg7XG4kdGhlbWUtYmctcHJpbWFyeTogI2ZmZmZmZjtcbiR0aGVtZS1mZzogICAgICAgICAjNTE1MTUxO1xuJHRoZW1lLWZnLXByaW1hcnk6ICMzOTljZWQ7XG5cbi8qICgyKSBDT1VMRVVSUyBERSBUSEVNRSAkREFSSyAqL1xuJGRhcmstYmc6ICAgICAgICAgIzMxMzU0MTtcbiRkYXJrLWJnLXByaW1hcnk6ICMyOTI4MmU7XG4kZGFyay1mZzogICAgICAgICAjOTM5MzkzO1xuJGRhcmstZmctcHJpbWFyeTogI2ZmZmZmZjtcblxuXG4vKiBbMl0gRElNRU5TSU9OU1xuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cbi8qICgxKSBMYXlvdXQgZGUgYmFzZSAqL1xuJG1lbnUtc2lkZS13aWR0aDogMTVlbTtcbiRoZWFkZXItaGVpZ2h0OiAgIDRlbTtcbiIKCV0sCgkibWFwcGluZ3MiOiAiQUNBQTsyREFDMkQ7QUFDM0Qsb0NBQW9DO0FBTXBDLGlDQUFpQztBQU9qQzsyREFDMkQ7QUFDM0Qsd0JBQXdCO0FEZnhCLFFBQVEsR0FBRyxVQUFVLENBQUEsRUFFcEIsbUZBQzJELENBZ0UzRCw0RkFDMkQsQ0FDM0QsbUNBQW1DLEVBK0JuQzs7QUFwR0QsUUFBUSxHQUFHLFVBQVUsR0FJaEIsSUFBSSxDQUFBLEVBQ1AsT0FBTyxFQUFFLEtBQU0sRUFDZixRQUFRLEVBQUUsUUFBUyxFQUNsQixLQUFLLEVBQUUsNkJBQUksRUFFWixPQUFPLEVBQUUsVUFBVyxFQUNwQixZQUFZLEVBQUUsb0JBQUksRUFFbEIsYUFBYSxFQUFFLHFCQUFzQixFQUVyQyxVQUFVLEVBQUUscUNBQUcsQ0FBbUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUM5RSxlQUFlLEVBQUUsU0FBVSxFQUczQixLQUFLLEVBQUUsSUFBSyxFQUNaLFNBQVMsRUFBRSxLQUFNLEVBRWpCLFVBQVUsRUFBRSxxR0FBc0csRUFFbEgsTUFBTSxFQUFFLE9BQVEsRUFFaEIsbUJBQW1CLENBYW5CLDZCQUE2QixD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 */ \ No newline at end of file diff --git a/css/menu-side/compact.css.map b/css/menu-side/compact.css.map new file mode 100644 index 0000000..9cb3077 --- /dev/null +++ b/css/menu-side/compact.css.map @@ -0,0 +1,14 @@ +{ + "version": 3, + "file": "compact.css", + "sources": [ + "../menu-side.scss", + "../constants.scss" + ], + "sourcesContent": [ + "@import 'constants';\n\n#WRAPPER > #MENU-SIDE{\n\n\t/* [1] Elements du menu\n\t=========================================================*/\n\t& > span{\n\t\tdisplay: block;\n\t\tposition: relative;\n\t\t\twidth: calc( 100% - 2*1em - 2*1.5em );\n\n\t\tpadding: .8em 1.5em;\n\t\tpadding-left: calc( 1.5em + 2*1em );\n\n\t\tborder-bottom: 1px solid transparent;\n\n\t\tbackground: url('/f/svg/sub/st/menu-side/aaaaaa') right 1.5em center no-repeat;\n\t\tbackground-size: .5em .5em;\n\n\n\t\tcolor: #666;\n\t\tfont-size: .85em;\n\n\t\ttransition: color .2s ease-in-out, background .2s ease-in-out, box-shadow .2s ease-in-out, border .2s ease-in-out;\n\n\t\tcursor: pointer;\n\n\t\t/* (1) Icone svg */\n\t\t& > svg, & > svg *{\n\t\t\tposition: absolute;\n\t\t\t\ttop: calc( 50% - 1em/2 );\n\t\t\t\tleft: 1.5em;\n\t\t\t\twidth: 1em;\n\t\t\t\theight: 1em;\n\n\t\t\tfill: $dark-fg !important;\n\t\t\ttransition: fill .2s ease-in-out;\n\t\t}\n\n\n\t\t/* (2) Animation de @hover */\n\t\t&:not(.active):hover{\n\t\t\tbackground-image: url('/f/svg/sub/st/menu-side/000000');\n\t\t\tcolor: #000;\n\n\t\t\t& > svg, & > svg *{\n\t\t\t\tfill: #000 !important;\n\t\t\t}\n\t\t}\n\n\t\t/* (3) Animation quand .active */\n\t\t&.active{\n\t\t\tborder-bottom-color: darken($theme-fg-primary, 5);\n\t\t\t// box-shadow: inset 0 0 1em darken($dark-bg-primary, 1);\n\n\t\t\tbackground-color: $theme-fg-primary;\n\t\t\tbackground-image: url('/f/svg/sub-active/st/menu-side/ffffff');\n\t\t\tcolor: $dark-fg-primary;\n\n\t\t\t& > svg, & > svg *{\n\t\t\t\tfill: #fff !important;\n\t\t\t}\n\t\t}\n\n\n\t}\n\n\n\n\t/* [2] Gestion du menu deroulant\n\t=========================================================*/\n\t/* (1) Quand le menu est deroule */\n\t& > span:not(.icon) + div.sub>span{\n\t\tdisplay: block;\n\t\tposition: relative;\n\t\t\twidth: calc( 100% - 1.5em - 2.5em );\n\n\t\tpadding: .5em 1.5em;\n\t\tpadding-left: 2.5em;\n\n\t\tbackground: $dark-bg url('/f/svg/sub/st/menu-side/888888') 1.5em center no-repeat;;\n\t\tbackground-size: .5em;\n\n\t\tcolor: darken($dark-fg, 10);\n\t\tfont-size: .85em;\n\n\t\tcursor: pointer;\n\n\t\ttransition: color .2s ease-in-out;\n\n\t\t// Animation de @hover ou .active\n\t\t&:hover,\n\t\t&.active{\n\t\t\tcolor: $dark-fg-primary;\n\t\t\tbackground-image: url('/f/svg/sub/st/menu-side/ffffff');\n\t\t}\n\t}\n\n\n\t& > span:not(.icon):not(.active) + div.sub>span{\n\t\tdisplay: none;\n\t}\n}\n", + "/* [1] COULEURS\n=========================================================*/\n/* (1) COULEURS DU THEME $DEFAULT */\n$theme-bg: #e8e8e8;\n$theme-bg-primary: #ffffff;\n$theme-fg: #515151;\n$theme-fg-primary: #399ced;\n\n/* (2) COULEURS DE THEME $DARK */\n$dark-bg: #313541;\n$dark-bg-primary: #29282e;\n$dark-fg: #939393;\n$dark-fg-primary: #ffffff;\n\n\n/* [2] DIMENSIONS\n=========================================================*/\n/* (1) Layout de base */\n$menu-side-width: 15em;\n$header-height: 4em;\n" + ], + "mappings": "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", + "names": [] +} \ No newline at end of file diff --git a/css/menu-side/expanded.css b/css/menu-side/expanded.css new file mode 100644 index 0000000..d444c14 --- /dev/null +++ b/css/menu-side/expanded.css @@ -0,0 +1,87 @@ +/* [1] COULEURS +=========================================================*/ +/* (1) COULEURS DU THEME $DEFAULT */ +/* (2) COULEURS DE THEME $DARK */ +/* [2] DIMENSIONS +=========================================================*/ +/* (1) Layout de base */ +#WRAPPER > #MENU-SIDE { + /* [1] Elements du menu + =========================================================*/ + /* [2] Gestion du menu deroulant + =========================================================*/ + /* (1) Quand le menu est deroule */ +} + +#WRAPPER > #MENU-SIDE > span { + display: block; + position: relative; + width: calc( 100% - 2*1em - 2*1.5em); + padding: .8em 1.5em; + padding-left: calc( 1.5em + 2*1em); + border-bottom: 1px solid transparent; + background: url("/f/svg/sub/st/menu-side/aaaaaa") right 1.5em center no-repeat; + background-size: .5em .5em; + color: #666; + font-size: .85em; + transition: color .2s ease-in-out, background .2s ease-in-out, box-shadow .2s ease-in-out, border .2s ease-in-out; + cursor: pointer; + /* (1) Icone svg */ + /* (2) Animation de @hover */ + /* (3) Animation quand .active */ +} + +#WRAPPER > #MENU-SIDE > span > svg, #WRAPPER > #MENU-SIDE > span > svg * { + position: absolute; + top: calc( 50% - 1em/2); + left: 1.5em; + width: 1em; + height: 1em; + fill: #939393 !important; + transition: fill .2s ease-in-out; +} + +#WRAPPER > #MENU-SIDE > span:not(.active):hover { + background-image: url("/f/svg/sub/st/menu-side/000000"); + color: #000; +} + +#WRAPPER > #MENU-SIDE > span:not(.active):hover > svg, #WRAPPER > #MENU-SIDE > span:not(.active):hover > svg * { + fill: #000 !important; +} + +#WRAPPER > #MENU-SIDE > span.active { + border-bottom-color: #2290eb; + background-color: #399ced; + background-image: url("/f/svg/sub-active/st/menu-side/ffffff"); + color: #ffffff; +} + +#WRAPPER > #MENU-SIDE > span.active > svg, #WRAPPER > #MENU-SIDE > span.active > svg * { + fill: #fff !important; +} + +#WRAPPER > #MENU-SIDE > span:not(.icon) + div.sub > span { + display: block; + position: relative; + width: calc( 100% - 1.5em - 2.5em); + padding: .5em 1.5em; + padding-left: 2.5em; + background: #313541 url("/f/svg/sub/st/menu-side/888888") 1.5em center no-repeat; + background-size: .5em; + color: #7a7a7a; + font-size: .85em; + cursor: pointer; + transition: color .2s ease-in-out; +} + +#WRAPPER > #MENU-SIDE > span:not(.icon) + div.sub > span:hover, #WRAPPER > #MENU-SIDE > span:not(.icon) + div.sub > span.active { + color: #ffffff; + background-image: url("/f/svg/sub/st/menu-side/ffffff"); +} + +#WRAPPER > #MENU-SIDE > span:not(.icon):not(.active) + div.sub > span { + display: none; +} + +/*# sourceMappingURL=data:application/json;base64,ewoJInZlcnNpb24iOiAzLAoJImZpbGUiOiAiZXhwYW5kZWQuY3NzIiwKCSJzb3VyY2VzIjogWwoJCSIuLi9tZW51LXNpZGUuc2NzcyIsCgkJIi4uL2NvbnN0YW50cy5zY3NzIgoJXSwKCSJzb3VyY2VzQ29udGVudCI6IFsKCQkiQGltcG9ydCAnY29uc3RhbnRzJztcblxuI1dSQVBQRVIgPiAjTUVOVS1TSURFe1xuXG5cdC8qIFsxXSBFbGVtZW50cyBkdSBtZW51XG5cdD09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXG5cdCYgPiBzcGFue1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdHdpZHRoOiBjYWxjKCAxMDAlIC0gMioxZW0gLSAyKjEuNWVtICk7XG5cblx0XHRwYWRkaW5nOiAuOGVtIDEuNWVtO1xuXHRcdHBhZGRpbmctbGVmdDogY2FsYyggMS41ZW0gKyAyKjFlbSApO1xuXG5cdFx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuXG5cdFx0YmFja2dyb3VuZDogdXJsKCcvZi9zdmcvc3ViL3N0L21lbnUtc2lkZS9hYWFhYWEnKSByaWdodCAxLjVlbSBjZW50ZXIgbm8tcmVwZWF0O1xuXHRcdGJhY2tncm91bmQtc2l6ZTogLjVlbSAuNWVtO1xuXG5cblx0XHRjb2xvcjogIzY2Njtcblx0XHRmb250LXNpemU6IC44NWVtO1xuXG5cdFx0dHJhbnNpdGlvbjogY29sb3IgLjJzIGVhc2UtaW4tb3V0LCBiYWNrZ3JvdW5kIC4ycyBlYXNlLWluLW91dCwgYm94LXNoYWRvdyAuMnMgZWFzZS1pbi1vdXQsIGJvcmRlciAuMnMgZWFzZS1pbi1vdXQ7XG5cblx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cblx0XHQvKiAoMSkgSWNvbmUgc3ZnICovXG5cdFx0JiA+IHN2ZywgJiA+IHN2ZyAqe1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHR0b3A6IGNhbGMoIDUwJSAtIDFlbS8yICk7XG5cdFx0XHRcdGxlZnQ6IDEuNWVtO1xuXHRcdFx0XHR3aWR0aDogMWVtO1xuXHRcdFx0XHRoZWlnaHQ6IDFlbTtcblxuXHRcdFx0ZmlsbDogJGRhcmstZmcgIWltcG9ydGFudDtcblx0XHRcdHRyYW5zaXRpb246IGZpbGwgLjJzIGVhc2UtaW4tb3V0O1xuXHRcdH1cblxuXG5cdFx0LyogKDIpIEFuaW1hdGlvbiBkZSBAaG92ZXIgKi9cblx0XHQmOm5vdCguYWN0aXZlKTpob3Zlcntcblx0XHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybCgnL2Yvc3ZnL3N1Yi9zdC9tZW51LXNpZGUvMDAwMDAwJyk7XG5cdFx0XHRjb2xvcjogIzAwMDtcblxuXHRcdFx0JiA+IHN2ZywgJiA+IHN2ZyAqe1xuXHRcdFx0XHRmaWxsOiAjMDAwICFpbXBvcnRhbnQ7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0LyogKDMpIEFuaW1hdGlvbiBxdWFuZCAuYWN0aXZlICovXG5cdFx0Ji5hY3RpdmV7XG5cdFx0XHRib3JkZXItYm90dG9tLWNvbG9yOiBkYXJrZW4oJHRoZW1lLWZnLXByaW1hcnksIDUpO1xuXHRcdFx0Ly8gYm94LXNoYWRvdzogaW5zZXQgMCAwIDFlbSBkYXJrZW4oJGRhcmstYmctcHJpbWFyeSwgMSk7XG5cblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICR0aGVtZS1mZy1wcmltYXJ5O1xuXHRcdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKCcvZi9zdmcvc3ViLWFjdGl2ZS9zdC9tZW51LXNpZGUvZmZmZmZmJyk7XG5cdFx0XHRjb2xvcjogJGRhcmstZmctcHJpbWFyeTtcblxuXHRcdFx0JiA+IHN2ZywgJiA+IHN2ZyAqe1xuXHRcdFx0XHRmaWxsOiAjZmZmICFpbXBvcnRhbnQ7XG5cdFx0XHR9XG5cdFx0fVxuXG5cblx0fVxuXG5cblxuXHQvKiBbMl0gR2VzdGlvbiBkdSBtZW51IGRlcm91bGFudFxuXHQ9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xuXHQvKiAoMSkgUXVhbmQgbGUgbWVudSBlc3QgZGVyb3VsZSAqL1xuXHQmID4gc3Bhbjpub3QoLmljb24pICsgZGl2LnN1Yj5zcGFue1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdHdpZHRoOiBjYWxjKCAxMDAlIC0gMS41ZW0gLSAyLjVlbSApO1xuXG5cdFx0cGFkZGluZzogLjVlbSAxLjVlbTtcblx0XHRwYWRkaW5nLWxlZnQ6IDIuNWVtO1xuXG5cdFx0YmFja2dyb3VuZDogJGRhcmstYmcgdXJsKCcvZi9zdmcvc3ViL3N0L21lbnUtc2lkZS84ODg4ODgnKSAxLjVlbSBjZW50ZXIgbm8tcmVwZWF0Oztcblx0XHRiYWNrZ3JvdW5kLXNpemU6IC41ZW07XG5cblx0XHRjb2xvcjogZGFya2VuKCRkYXJrLWZnLCAxMCk7XG5cdFx0Zm9udC1zaXplOiAuODVlbTtcblxuXHRcdGN1cnNvcjogcG9pbnRlcjtcblxuXHRcdHRyYW5zaXRpb246IGNvbG9yIC4ycyBlYXNlLWluLW91dDtcblxuXHRcdC8vIEFuaW1hdGlvbiBkZSBAaG92ZXIgb3UgLmFjdGl2ZVxuXHRcdCY6aG92ZXIsXG5cdFx0Ji5hY3RpdmV7XG5cdFx0XHRjb2xvcjogJGRhcmstZmctcHJpbWFyeTtcblx0XHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybCgnL2Yvc3ZnL3N1Yi9zdC9tZW51LXNpZGUvZmZmZmZmJyk7XG5cdFx0fVxuXHR9XG5cblxuXHQmID4gc3Bhbjpub3QoLmljb24pOm5vdCguYWN0aXZlKSArIGRpdi5zdWI+c3Bhbntcblx0XHRkaXNwbGF5OiBub25lO1xuXHR9XG59XG4iLAoJCSIvKiBbMV0gQ09VTEVVUlNcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXG4vKiAoMSkgQ09VTEVVUlMgRFUgVEhFTUUgJERFRkFVTFQgKi9cbiR0aGVtZS1iZzogICAgICAgICAjZThlOGU4O1xuJHRoZW1lLWJnLXByaW1hcnk6ICNmZmZmZmY7XG4kdGhlbWUtZmc6ICAgICAgICAgIzUxNTE1MTtcbiR0aGVtZS1mZy1wcmltYXJ5OiAjMzk5Y2VkO1xuXG4vKiAoMikgQ09VTEVVUlMgREUgVEhFTUUgJERBUksgKi9cbiRkYXJrLWJnOiAgICAgICAgICMzMTM1NDE7XG4kZGFyay1iZy1wcmltYXJ5OiAjMjkyODJlO1xuJGRhcmstZmc6ICAgICAgICAgIzkzOTM5MztcbiRkYXJrLWZnLXByaW1hcnk6ICNmZmZmZmY7XG5cblxuLyogWzJdIERJTUVOU0lPTlNcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXG4vKiAoMSkgTGF5b3V0IGRlIGJhc2UgKi9cbiRtZW51LXNpZGUtd2lkdGg6IDE1ZW07XG4kaGVhZGVyLWhlaWdodDogICA0ZW07XG4iCgldLAoJIm1hcHBpbmdzIjogIkFDQUE7MkRBQzJEO0FBQzNELG9DQUFvQztBQU1wQyxpQ0FBaUM7QUFPakM7MkRBQzJEO0FBQzNELHdCQUF3QjtBRGZ4QixRQUFRLEdBQUcsVUFBVSxDQUFBO0VBRXBCOzREQUMyRDtFQWdFM0Q7NERBQzJEO0VBQzNELG1DQUFtQztDQStCbkM7O0FBcEdELFFBQVEsR0FBRyxVQUFVLEdBSWhCLElBQUksQ0FBQTtFQUNQLE9BQU8sRUFBRSxLQUFNO0VBQ2YsUUFBUSxFQUFFLFFBQVM7RUFDbEIsS0FBSyxFQUFFLDZCQUFJO0VBRVosT0FBTyxFQUFFLFVBQVc7RUFDcEIsWUFBWSxFQUFFLG9CQUFJO0VBRWxCLGFBQWEsRUFBRSxxQkFBc0I7RUFFckMsVUFBVSxFQUFFLHFDQUFHLENBQW1DLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFNBQVM7RUFDOUUsZUFBZSxFQUFFLFNBQVU7RUFHM0IsS0FBSyxFQUFFLElBQUs7RUFDWixTQUFTLEVBQUUsS0FBTTtFQUVqQixVQUFVLEVBQUUscUdBQXNHO0VBRWxILE1BQU0sRUFBRSxPQUFRO0VBRWhCLG1CQUFtQjtFQWFuQiw2QkFBNkI7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 */ \ No newline at end of file diff --git a/css/menu-side/expanded.css.map b/css/menu-side/expanded.css.map new file mode 100644 index 0000000..4d38a95 --- /dev/null +++ b/css/menu-side/expanded.css.map @@ -0,0 +1,14 @@ +{ + "version": 3, + "file": "expanded.css", + "sources": [ + "../menu-side.scss", + "../constants.scss" + ], + "sourcesContent": [ + "@import 'constants';\n\n#WRAPPER > #MENU-SIDE{\n\n\t/* [1] Elements du menu\n\t=========================================================*/\n\t& > span{\n\t\tdisplay: block;\n\t\tposition: relative;\n\t\t\twidth: calc( 100% - 2*1em - 2*1.5em );\n\n\t\tpadding: .8em 1.5em;\n\t\tpadding-left: calc( 1.5em + 2*1em );\n\n\t\tborder-bottom: 1px solid transparent;\n\n\t\tbackground: url('/f/svg/sub/st/menu-side/aaaaaa') right 1.5em center no-repeat;\n\t\tbackground-size: .5em .5em;\n\n\n\t\tcolor: #666;\n\t\tfont-size: .85em;\n\n\t\ttransition: color .2s ease-in-out, background .2s ease-in-out, box-shadow .2s ease-in-out, border .2s ease-in-out;\n\n\t\tcursor: pointer;\n\n\t\t/* (1) Icone svg */\n\t\t& > svg, & > svg *{\n\t\t\tposition: absolute;\n\t\t\t\ttop: calc( 50% - 1em/2 );\n\t\t\t\tleft: 1.5em;\n\t\t\t\twidth: 1em;\n\t\t\t\theight: 1em;\n\n\t\t\tfill: $dark-fg !important;\n\t\t\ttransition: fill .2s ease-in-out;\n\t\t}\n\n\n\t\t/* (2) Animation de @hover */\n\t\t&:not(.active):hover{\n\t\t\tbackground-image: url('/f/svg/sub/st/menu-side/000000');\n\t\t\tcolor: #000;\n\n\t\t\t& > svg, & > svg *{\n\t\t\t\tfill: #000 !important;\n\t\t\t}\n\t\t}\n\n\t\t/* (3) Animation quand .active */\n\t\t&.active{\n\t\t\tborder-bottom-color: darken($theme-fg-primary, 5);\n\t\t\t// box-shadow: inset 0 0 1em darken($dark-bg-primary, 1);\n\n\t\t\tbackground-color: $theme-fg-primary;\n\t\t\tbackground-image: url('/f/svg/sub-active/st/menu-side/ffffff');\n\t\t\tcolor: $dark-fg-primary;\n\n\t\t\t& > svg, & > svg *{\n\t\t\t\tfill: #fff !important;\n\t\t\t}\n\t\t}\n\n\n\t}\n\n\n\n\t/* [2] Gestion du menu deroulant\n\t=========================================================*/\n\t/* (1) Quand le menu est deroule */\n\t& > span:not(.icon) + div.sub>span{\n\t\tdisplay: block;\n\t\tposition: relative;\n\t\t\twidth: calc( 100% - 1.5em - 2.5em );\n\n\t\tpadding: .5em 1.5em;\n\t\tpadding-left: 2.5em;\n\n\t\tbackground: $dark-bg url('/f/svg/sub/st/menu-side/888888') 1.5em center no-repeat;;\n\t\tbackground-size: .5em;\n\n\t\tcolor: darken($dark-fg, 10);\n\t\tfont-size: .85em;\n\n\t\tcursor: pointer;\n\n\t\ttransition: color .2s ease-in-out;\n\n\t\t// Animation de @hover ou .active\n\t\t&:hover,\n\t\t&.active{\n\t\t\tcolor: $dark-fg-primary;\n\t\t\tbackground-image: url('/f/svg/sub/st/menu-side/ffffff');\n\t\t}\n\t}\n\n\n\t& > span:not(.icon):not(.active) + div.sub>span{\n\t\tdisplay: none;\n\t}\n}\n", + "/* [1] COULEURS\n=========================================================*/\n/* (1) COULEURS DU THEME $DEFAULT */\n$theme-bg: #e8e8e8;\n$theme-bg-primary: #ffffff;\n$theme-fg: #515151;\n$theme-fg-primary: #399ced;\n\n/* (2) COULEURS DE THEME $DARK */\n$dark-bg: #313541;\n$dark-bg-primary: #29282e;\n$dark-fg: #939393;\n$dark-fg-primary: #ffffff;\n\n\n/* [2] DIMENSIONS\n=========================================================*/\n/* (1) Layout de base */\n$menu-side-width: 15em;\n$header-height: 4em;\n" + ], + "mappings": "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", + "names": [] +} \ No newline at end of file diff --git a/css/menu-side/min.css b/css/menu-side/min.css new file mode 100644 index 0000000..3fa5171 --- /dev/null +++ b/css/menu-side/min.css @@ -0,0 +1,3 @@ +#WRAPPER>#MENU-SIDE>span{display:block;position:relative;width:calc( 100% - 2*1em - 2*1.5em);padding:.8em 1.5em;padding-left:calc( 1.5em + 2*1em);border-bottom:1px solid transparent;background:url("/f/svg/sub/st/menu-side/aaaaaa") right 1.5em center no-repeat;background-size:.5em .5em;color:#666;font-size:.85em;transition:color .2s ease-in-out, background .2s ease-in-out, box-shadow .2s ease-in-out, border .2s ease-in-out;cursor:pointer}#WRAPPER>#MENU-SIDE>span>svg,#WRAPPER>#MENU-SIDE>span>svg *{position:absolute;top:calc( 50% - 1em/2);left:1.5em;width:1em;height:1em;fill:#939393 !important;transition:fill .2s ease-in-out}#WRAPPER>#MENU-SIDE>span:not(.active):hover{background-image:url("/f/svg/sub/st/menu-side/000000");color:#000}#WRAPPER>#MENU-SIDE>span:not(.active):hover>svg,#WRAPPER>#MENU-SIDE>span:not(.active):hover>svg *{fill:#000 !important}#WRAPPER>#MENU-SIDE>span.active{border-bottom-color:#2290eb;background-color:#399ced;background-image:url("/f/svg/sub-active/st/menu-side/ffffff");color:#fff}#WRAPPER>#MENU-SIDE>span.active>svg,#WRAPPER>#MENU-SIDE>span.active>svg *{fill:#fff !important}#WRAPPER>#MENU-SIDE>span:not(.icon)+div.sub>span{display:block;position:relative;width:calc( 100% - 1.5em - 2.5em);padding:.5em 1.5em;padding-left:2.5em;background:#313541 url("/f/svg/sub/st/menu-side/888888") 1.5em center no-repeat;background-size:.5em;color:#7a7a7a;font-size:.85em;cursor:pointer;transition:color .2s ease-in-out}#WRAPPER>#MENU-SIDE>span:not(.icon)+div.sub>span:hover,#WRAPPER>#MENU-SIDE>span:not(.icon)+div.sub>span.active{color:#fff;background-image:url("/f/svg/sub/st/menu-side/ffffff")}#WRAPPER>#MENU-SIDE>span:not(.icon):not(.active)+div.sub>span{display:none} + +/*# sourceMappingURL=data:application/json;base64,ewoJInZlcnNpb24iOiAzLAoJImZpbGUiOiAibWluLmNzcyIsCgkic291cmNlcyI6IFsKCQkiLi4vbWVudS1zaWRlLnNjc3MiLAoJCSIuLi9jb25zdGFudHMuc2NzcyIKCV0sCgkic291cmNlc0NvbnRlbnQiOiBbCgkJIkBpbXBvcnQgJ2NvbnN0YW50cyc7XG5cbiNXUkFQUEVSID4gI01FTlUtU0lERXtcblxuXHQvKiBbMV0gRWxlbWVudHMgZHUgbWVudVxuXHQ9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xuXHQmID4gc3Bhbntcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHR3aWR0aDogY2FsYyggMTAwJSAtIDIqMWVtIC0gMioxLjVlbSApO1xuXG5cdFx0cGFkZGluZzogLjhlbSAxLjVlbTtcblx0XHRwYWRkaW5nLWxlZnQ6IGNhbGMoIDEuNWVtICsgMioxZW0gKTtcblxuXHRcdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcblxuXHRcdGJhY2tncm91bmQ6IHVybCgnL2Yvc3ZnL3N1Yi9zdC9tZW51LXNpZGUvYWFhYWFhJykgcmlnaHQgMS41ZW0gY2VudGVyIG5vLXJlcGVhdDtcblx0XHRiYWNrZ3JvdW5kLXNpemU6IC41ZW0gLjVlbTtcblxuXG5cdFx0Y29sb3I6ICM2NjY7XG5cdFx0Zm9udC1zaXplOiAuODVlbTtcblxuXHRcdHRyYW5zaXRpb246IGNvbG9yIC4ycyBlYXNlLWluLW91dCwgYmFja2dyb3VuZCAuMnMgZWFzZS1pbi1vdXQsIGJveC1zaGFkb3cgLjJzIGVhc2UtaW4tb3V0LCBib3JkZXIgLjJzIGVhc2UtaW4tb3V0O1xuXG5cdFx0Y3Vyc29yOiBwb2ludGVyO1xuXG5cdFx0LyogKDEpIEljb25lIHN2ZyAqL1xuXHRcdCYgPiBzdmcsICYgPiBzdmcgKntcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdFx0dG9wOiBjYWxjKCA1MCUgLSAxZW0vMiApO1xuXHRcdFx0XHRsZWZ0OiAxLjVlbTtcblx0XHRcdFx0d2lkdGg6IDFlbTtcblx0XHRcdFx0aGVpZ2h0OiAxZW07XG5cblx0XHRcdGZpbGw6ICRkYXJrLWZnICFpbXBvcnRhbnQ7XG5cdFx0XHR0cmFuc2l0aW9uOiBmaWxsIC4ycyBlYXNlLWluLW91dDtcblx0XHR9XG5cblxuXHRcdC8qICgyKSBBbmltYXRpb24gZGUgQGhvdmVyICovXG5cdFx0Jjpub3QoLmFjdGl2ZSk6aG92ZXJ7XG5cdFx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy9mL3N2Zy9zdWIvc3QvbWVudS1zaWRlLzAwMDAwMCcpO1xuXHRcdFx0Y29sb3I6ICMwMDA7XG5cblx0XHRcdCYgPiBzdmcsICYgPiBzdmcgKntcblx0XHRcdFx0ZmlsbDogIzAwMCAhaW1wb3J0YW50O1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC8qICgzKSBBbmltYXRpb24gcXVhbmQgLmFjdGl2ZSAqL1xuXHRcdCYuYWN0aXZle1xuXHRcdFx0Ym9yZGVyLWJvdHRvbS1jb2xvcjogZGFya2VuKCR0aGVtZS1mZy1wcmltYXJ5LCA1KTtcblx0XHRcdC8vIGJveC1zaGFkb3c6IGluc2V0IDAgMCAxZW0gZGFya2VuKCRkYXJrLWJnLXByaW1hcnksIDEpO1xuXG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkdGhlbWUtZmctcHJpbWFyeTtcblx0XHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybCgnL2Yvc3ZnL3N1Yi1hY3RpdmUvc3QvbWVudS1zaWRlL2ZmZmZmZicpO1xuXHRcdFx0Y29sb3I6ICRkYXJrLWZnLXByaW1hcnk7XG5cblx0XHRcdCYgPiBzdmcsICYgPiBzdmcgKntcblx0XHRcdFx0ZmlsbDogI2ZmZiAhaW1wb3J0YW50O1xuXHRcdFx0fVxuXHRcdH1cblxuXG5cdH1cblxuXG5cblx0LyogWzJdIEdlc3Rpb24gZHUgbWVudSBkZXJvdWxhbnRcblx0PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cblx0LyogKDEpIFF1YW5kIGxlIG1lbnUgZXN0IGRlcm91bGUgKi9cblx0JiA+IHNwYW46bm90KC5pY29uKSArIGRpdi5zdWI+c3Bhbntcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHR3aWR0aDogY2FsYyggMTAwJSAtIDEuNWVtIC0gMi41ZW0gKTtcblxuXHRcdHBhZGRpbmc6IC41ZW0gMS41ZW07XG5cdFx0cGFkZGluZy1sZWZ0OiAyLjVlbTtcblxuXHRcdGJhY2tncm91bmQ6ICRkYXJrLWJnIHVybCgnL2Yvc3ZnL3N1Yi9zdC9tZW51LXNpZGUvODg4ODg4JykgMS41ZW0gY2VudGVyIG5vLXJlcGVhdDs7XG5cdFx0YmFja2dyb3VuZC1zaXplOiAuNWVtO1xuXG5cdFx0Y29sb3I6IGRhcmtlbigkZGFyay1mZywgMTApO1xuXHRcdGZvbnQtc2l6ZTogLjg1ZW07XG5cblx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cblx0XHR0cmFuc2l0aW9uOiBjb2xvciAuMnMgZWFzZS1pbi1vdXQ7XG5cblx0XHQvLyBBbmltYXRpb24gZGUgQGhvdmVyIG91IC5hY3RpdmVcblx0XHQmOmhvdmVyLFxuXHRcdCYuYWN0aXZle1xuXHRcdFx0Y29sb3I6ICRkYXJrLWZnLXByaW1hcnk7XG5cdFx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy9mL3N2Zy9zdWIvc3QvbWVudS1zaWRlL2ZmZmZmZicpO1xuXHRcdH1cblx0fVxuXG5cblx0JiA+IHNwYW46bm90KC5pY29uKTpub3QoLmFjdGl2ZSkgKyBkaXYuc3ViPnNwYW57XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxufVxuIiwKCQkiLyogWzFdIENPVUxFVVJTXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xuLyogKDEpIENPVUxFVVJTIERVIFRIRU1FICRERUZBVUxUICovXG4kdGhlbWUtYmc6ICAgICAgICAgI2U4ZThlODtcbiR0aGVtZS1iZy1wcmltYXJ5OiAjZmZmZmZmO1xuJHRoZW1lLWZnOiAgICAgICAgICM1MTUxNTE7XG4kdGhlbWUtZmctcHJpbWFyeTogIzM5OWNlZDtcblxuLyogKDIpIENPVUxFVVJTIERFIFRIRU1FICREQVJLICovXG4kZGFyay1iZzogICAgICAgICAjMzEzNTQxO1xuJGRhcmstYmctcHJpbWFyeTogIzI5MjgyZTtcbiRkYXJrLWZnOiAgICAgICAgICM5MzkzOTM7XG4kZGFyay1mZy1wcmltYXJ5OiAjZmZmZmZmO1xuXG5cbi8qIFsyXSBESU1FTlNJT05TXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xuLyogKDEpIExheW91dCBkZSBiYXNlICovXG4kbWVudS1zaWRlLXdpZHRoOiAxNWVtO1xuJGhlYWRlci1oZWlnaHQ6ICAgNGVtO1xuIgoJXSwKCSJtYXBwaW5ncyI6ICJBQUVBLFFBQVEsQ0FBRyxVQUFVLENBSWhCLElBQUksQUFBQSxDQUNQLE9BQU8sQ0FBRSxLQUFNLENBQ2YsUUFBUSxDQUFFLFFBQVMsQ0FDbEIsS0FBSyxDQUFFLDZCQUFJLENBRVosT0FBTyxDQUFFLFVBQVcsQ0FDcEIsWUFBWSxDQUFFLG9CQUFJLENBRWxCLGFBQWEsQ0FBRSxxQkFBc0IsQ0FFckMsVUFBVSxDQUFFLHFDQUFHLENBQW1DLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FDOUUsZUFBZSxDQUFFLFNBQVUsQ0FHM0IsS0FBSyxDQUFFLElBQUssQ0FDWixTQUFTLENBQUUsS0FBTSxDQUVqQixVQUFVLENBQUUscUdBQXNHLENBRWxILE1BQU0sQ0FBRSxPQUFRLENBd0NoQixBQS9ERixRQUFRLENBQUcsVUFBVSxDQUloQixJQUFJLENBc0JILEdBQUcsQ0ExQlQsUUFBUSxDQUFHLFVBQVUsQ0FJaEIsSUFBSSxDQXNCTSxHQUFHLENBQUMsQ0FBQyxBQUFBLENBQ2pCLFFBQVEsQ0FBRSxRQUFTLENBQ2xCLEdBQUcsQ0FBRSxrQkFBSSxDQUNULElBQUksQ0FBRSxLQUFNLENBQ1osS0FBSyxDQUFFLEdBQUksQ0FDWCxNQUFNLENBQUUsR0FBSSxDQUViLElBQUksQ0N4QlcsT0FBTyxDRHdCUCxVQUFVLENBQ3pCLFVBQVUsQ0FBRSxvQkFBcUIsQ0FDakMsQUFuQ0gsUUFBUSxDQUFHLFVBQVUsQ0FJaEIsSUFBSSxBQW1DTixJQUFLLENBQUEsT0FBTyxDQUFDLE1BQU0sQUFBQSxDQUNuQixnQkFBZ0IsQ0FBRSxxQ0FBRyxDQUNyQixLQUFLLENBQUUsSUFBSyxDQUtaLEFBOUNILFFBQVEsQ0FBRyxVQUFVLENBSWhCLElBQUksQUFtQ04sSUFBSyxDQUFBLE9BQU8sQ0FBQyxNQUFNLENBSWYsR0FBRyxDQTNDVixRQUFRLENBQUcsVUFBVSxDQUloQixJQUFJLEFBbUNOLElBQUssQ0FBQSxPQUFPLENBQUMsTUFBTSxDQUlOLEdBQUcsQ0FBQyxDQUFDLEFBQUEsQ0FDakIsSUFBSSxDQUFFLGVBQWdCLENBQ3RCLEFBN0NKLFFBQVEsQ0FBRyxVQUFVLENBSWhCLElBQUksQUE2Q04sT0FBTyxBQUFBLENBQ1AsbUJBQW1CLENBQUUsT0FBTSxDQUczQixnQkFBZ0IsQ0NqREEsT0FBTyxDRGtEdkIsZ0JBQWdCLENBQUUsNENBQUcsQ0FDckIsS0FBSyxDQzdDVSxJQUFPLENEa0R0QixBQTVESCxRQUFRLENBQUcsVUFBVSxDQUloQixJQUFJLEFBNkNOLE9BQU8sQ0FRSCxHQUFHLENBekRWLFFBQVEsQ0FBRyxVQUFVLENBSWhCLElBQUksQUE2Q04sT0FBTyxDQVFNLEdBQUcsQ0FBQyxDQUFDLEFBQUEsQ0FDakIsSUFBSSxDQUFFLGVBQWdCLENBQ3RCLEFBM0RKLFFBQVEsQ0FBRyxVQUFVLENBc0VoQixJQUFJLEFBQUEsSUFBSyxDQUFBLEtBQUssRUFBSSxHQUFHLEFBQUEsSUFBSSxDQUFDLElBQUksQUFBQSxDQUNqQyxPQUFPLENBQUUsS0FBTSxDQUNmLFFBQVEsQ0FBRSxRQUFTLENBQ2xCLEtBQUssQ0FBRSwyQkFBSSxDQUVaLE9BQU8sQ0FBRSxVQUFXLENBQ3BCLFlBQVksQ0FBRSxLQUFNLENBRXBCLFVBQVUsQ0N2RU0sT0FBTyxDRHVFRixxQ0FBRyxDQUFtQyxLQUFLLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FDakYsZUFBZSxDQUFFLElBQUssQ0FFdEIsS0FBSyxDQUFFLE9BQU0sQ0FDYixTQUFTLENBQUUsS0FBTSxDQUVqQixNQUFNLENBQUUsT0FBUSxDQUVoQixVQUFVLENBQUUscUJBQXNCLENBUWxDLEFBOUZGLFFBQVEsQ0FBRyxVQUFVLENBc0VoQixJQUFJLEFBQUEsSUFBSyxDQUFBLEtBQUssRUFBSSxHQUFHLEFBQUEsSUFBSSxDQUFDLElBQUksQUFtQmhDLE1BQU0sQ0F6RlQsUUFBUSxDQUFHLFVBQVUsQ0FzRWhCLElBQUksQUFBQSxJQUFLLENBQUEsS0FBSyxFQUFJLEdBQUcsQUFBQSxJQUFJLENBQUMsSUFBSSxBQW9CaEMsT0FBTyxBQUFBLENBQ1AsS0FBSyxDQ2pGVSxJQUFPLENEa0Z0QixnQkFBZ0IsQ0FBRSxxQ0FBRyxDQUNyQixBQTdGSCxRQUFRLENBQUcsVUFBVSxDQWlHaEIsSUFBSSxBQUFBLElBQUssQ0FBQSxLQUFLLENBQUMsSUFBSyxDQUFBLE9BQU8sRUFBSSxHQUFHLEFBQUEsSUFBSSxDQUFDLElBQUksQUFBQSxDQUM5QyxPQUFPLENBQUUsSUFBSyxDQUNkIiwKCSJuYW1lcyI6IFtdCn0= */ \ No newline at end of file diff --git a/css/menu-side/min.css.map b/css/menu-side/min.css.map new file mode 100644 index 0000000..8bfd5d6 --- /dev/null +++ b/css/menu-side/min.css.map @@ -0,0 +1,14 @@ +{ + "version": 3, + "file": "min.css", + "sources": [ + "../menu-side.scss", + "../constants.scss" + ], + "sourcesContent": [ + "@import 'constants';\n\n#WRAPPER > #MENU-SIDE{\n\n\t/* [1] Elements du menu\n\t=========================================================*/\n\t& > span{\n\t\tdisplay: block;\n\t\tposition: relative;\n\t\t\twidth: calc( 100% - 2*1em - 2*1.5em );\n\n\t\tpadding: .8em 1.5em;\n\t\tpadding-left: calc( 1.5em + 2*1em );\n\n\t\tborder-bottom: 1px solid transparent;\n\n\t\tbackground: url('/f/svg/sub/st/menu-side/aaaaaa') right 1.5em center no-repeat;\n\t\tbackground-size: .5em .5em;\n\n\n\t\tcolor: #666;\n\t\tfont-size: .85em;\n\n\t\ttransition: color .2s ease-in-out, background .2s ease-in-out, box-shadow .2s ease-in-out, border .2s ease-in-out;\n\n\t\tcursor: pointer;\n\n\t\t/* (1) Icone svg */\n\t\t& > svg, & > svg *{\n\t\t\tposition: absolute;\n\t\t\t\ttop: calc( 50% - 1em/2 );\n\t\t\t\tleft: 1.5em;\n\t\t\t\twidth: 1em;\n\t\t\t\theight: 1em;\n\n\t\t\tfill: $dark-fg !important;\n\t\t\ttransition: fill .2s ease-in-out;\n\t\t}\n\n\n\t\t/* (2) Animation de @hover */\n\t\t&:not(.active):hover{\n\t\t\tbackground-image: url('/f/svg/sub/st/menu-side/000000');\n\t\t\tcolor: #000;\n\n\t\t\t& > svg, & > svg *{\n\t\t\t\tfill: #000 !important;\n\t\t\t}\n\t\t}\n\n\t\t/* (3) Animation quand .active */\n\t\t&.active{\n\t\t\tborder-bottom-color: darken($theme-fg-primary, 5);\n\t\t\t// box-shadow: inset 0 0 1em darken($dark-bg-primary, 1);\n\n\t\t\tbackground-color: $theme-fg-primary;\n\t\t\tbackground-image: url('/f/svg/sub-active/st/menu-side/ffffff');\n\t\t\tcolor: $dark-fg-primary;\n\n\t\t\t& > svg, & > svg *{\n\t\t\t\tfill: #fff !important;\n\t\t\t}\n\t\t}\n\n\n\t}\n\n\n\n\t/* [2] Gestion du menu deroulant\n\t=========================================================*/\n\t/* (1) Quand le menu est deroule */\n\t& > span:not(.icon) + div.sub>span{\n\t\tdisplay: block;\n\t\tposition: relative;\n\t\t\twidth: calc( 100% - 1.5em - 2.5em );\n\n\t\tpadding: .5em 1.5em;\n\t\tpadding-left: 2.5em;\n\n\t\tbackground: $dark-bg url('/f/svg/sub/st/menu-side/888888') 1.5em center no-repeat;;\n\t\tbackground-size: .5em;\n\n\t\tcolor: darken($dark-fg, 10);\n\t\tfont-size: .85em;\n\n\t\tcursor: pointer;\n\n\t\ttransition: color .2s ease-in-out;\n\n\t\t// Animation de @hover ou .active\n\t\t&:hover,\n\t\t&.active{\n\t\t\tcolor: $dark-fg-primary;\n\t\t\tbackground-image: url('/f/svg/sub/st/menu-side/ffffff');\n\t\t}\n\t}\n\n\n\t& > span:not(.icon):not(.active) + div.sub>span{\n\t\tdisplay: none;\n\t}\n}\n", + "/* [1] COULEURS\n=========================================================*/\n/* (1) COULEURS DU THEME $DEFAULT */\n$theme-bg: #e8e8e8;\n$theme-bg-primary: #ffffff;\n$theme-fg: #515151;\n$theme-fg-primary: #399ced;\n\n/* (2) COULEURS DE THEME $DARK */\n$dark-bg: #313541;\n$dark-bg-primary: #29282e;\n$dark-fg: #939393;\n$dark-fg-primary: #ffffff;\n\n\n/* [2] DIMENSIONS\n=========================================================*/\n/* (1) Layout de base */\n$menu-side-width: 15em;\n$header-height: 4em;\n" + ], + "mappings": "AAEA,QAAQ,CAAG,UAAU,CAIhB,IAAI,AAAA,CACP,OAAO,CAAE,KAAM,CACf,QAAQ,CAAE,QAAS,CAClB,KAAK,CAAE,6BAAI,CAEZ,OAAO,CAAE,UAAW,CACpB,YAAY,CAAE,oBAAI,CAElB,aAAa,CAAE,qBAAsB,CAErC,UAAU,CAAE,qCAAG,CAAmC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAC9E,eAAe,CAAE,SAAU,CAG3B,KAAK,CAAE,IAAK,CACZ,SAAS,CAAE,KAAM,CAEjB,UAAU,CAAE,qGAAsG,CAElH,MAAM,CAAE,OAAQ,CAwChB,AA/DF,QAAQ,CAAG,UAAU,CAIhB,IAAI,CAsBH,GAAG,CA1BT,QAAQ,CAAG,UAAU,CAIhB,IAAI,CAsBM,GAAG,CAAC,CAAC,AAAA,CACjB,QAAQ,CAAE,QAAS,CAClB,GAAG,CAAE,kBAAI,CACT,IAAI,CAAE,KAAM,CACZ,KAAK,CAAE,GAAI,CACX,MAAM,CAAE,GAAI,CAEb,IAAI,CCxBW,OAAO,CDwBP,UAAU,CACzB,UAAU,CAAE,oBAAqB,CACjC,AAnCH,QAAQ,CAAG,UAAU,CAIhB,IAAI,AAmCN,IAAK,CAAA,OAAO,CAAC,MAAM,AAAA,CACnB,gBAAgB,CAAE,qCAAG,CACrB,KAAK,CAAE,IAAK,CAKZ,AA9CH,QAAQ,CAAG,UAAU,CAIhB,IAAI,AAmCN,IAAK,CAAA,OAAO,CAAC,MAAM,CAIf,GAAG,CA3CV,QAAQ,CAAG,UAAU,CAIhB,IAAI,AAmCN,IAAK,CAAA,OAAO,CAAC,MAAM,CAIN,GAAG,CAAC,CAAC,AAAA,CACjB,IAAI,CAAE,eAAgB,CACtB,AA7CJ,QAAQ,CAAG,UAAU,CAIhB,IAAI,AA6CN,OAAO,AAAA,CACP,mBAAmB,CAAE,OAAM,CAG3B,gBAAgB,CCjDA,OAAO,CDkDvB,gBAAgB,CAAE,4CAAG,CACrB,KAAK,CC7CU,IAAO,CDkDtB,AA5DH,QAAQ,CAAG,UAAU,CAIhB,IAAI,AA6CN,OAAO,CAQH,GAAG,CAzDV,QAAQ,CAAG,UAAU,CAIhB,IAAI,AA6CN,OAAO,CAQM,GAAG,CAAC,CAAC,AAAA,CACjB,IAAI,CAAE,eAAgB,CACtB,AA3DJ,QAAQ,CAAG,UAAU,CAsEhB,IAAI,AAAA,IAAK,CAAA,KAAK,EAAI,GAAG,AAAA,IAAI,CAAC,IAAI,AAAA,CACjC,OAAO,CAAE,KAAM,CACf,QAAQ,CAAE,QAAS,CAClB,KAAK,CAAE,2BAAI,CAEZ,OAAO,CAAE,UAAW,CACpB,YAAY,CAAE,KAAM,CAEpB,UAAU,CCvEM,OAAO,CDuEF,qCAAG,CAAmC,KAAK,CAAC,MAAM,CAAC,SAAS,CACjF,eAAe,CAAE,IAAK,CAEtB,KAAK,CAAE,OAAM,CACb,SAAS,CAAE,KAAM,CAEjB,MAAM,CAAE,OAAQ,CAEhB,UAAU,CAAE,qBAAsB,CAQlC,AA9FF,QAAQ,CAAG,UAAU,CAsEhB,IAAI,AAAA,IAAK,CAAA,KAAK,EAAI,GAAG,AAAA,IAAI,CAAC,IAAI,AAmBhC,MAAM,CAzFT,QAAQ,CAAG,UAAU,CAsEhB,IAAI,AAAA,IAAK,CAAA,KAAK,EAAI,GAAG,AAAA,IAAI,CAAC,IAAI,AAoBhC,OAAO,AAAA,CACP,KAAK,CCjFU,IAAO,CDkFtB,gBAAgB,CAAE,qCAAG,CACrB,AA7FH,QAAQ,CAAG,UAAU,CAiGhB,IAAI,AAAA,IAAK,CAAA,KAAK,CAAC,IAAK,CAAA,OAAO,EAAI,GAAG,AAAA,IAAI,CAAC,IAAI,AAAA,CAC9C,OAAO,CAAE,IAAK,CACd", + "names": [] +} \ No newline at end of file diff --git a/css/menu-side/nested.css b/css/menu-side/nested.css new file mode 100644 index 0000000..2740b58 --- /dev/null +++ b/css/menu-side/nested.css @@ -0,0 +1,68 @@ +/* [1] COULEURS +=========================================================*/ +/* (1) COULEURS DU THEME $DEFAULT */ +/* (2) COULEURS DE THEME $DARK */ +/* [2] DIMENSIONS +=========================================================*/ +/* (1) Layout de base */ +#WRAPPER > #MENU-SIDE { + /* [1] Elements du menu + =========================================================*/ + /* [2] Gestion du menu deroulant + =========================================================*/ + /* (1) Quand le menu est deroule */ } + #WRAPPER > #MENU-SIDE > span { + display: block; + position: relative; + width: calc( 100% - 2*1em - 2*1.5em); + padding: .8em 1.5em; + padding-left: calc( 1.5em + 2*1em); + border-bottom: 1px solid transparent; + background: url("/f/svg/sub/st/menu-side/aaaaaa") right 1.5em center no-repeat; + background-size: .5em .5em; + color: #666; + font-size: .85em; + transition: color .2s ease-in-out, background .2s ease-in-out, box-shadow .2s ease-in-out, border .2s ease-in-out; + cursor: pointer; + /* (1) Icone svg */ + /* (2) Animation de @hover */ + /* (3) Animation quand .active */ } + #WRAPPER > #MENU-SIDE > span > svg, #WRAPPER > #MENU-SIDE > span > svg * { + position: absolute; + top: calc( 50% - 1em/2); + left: 1.5em; + width: 1em; + height: 1em; + fill: #939393 !important; + transition: fill .2s ease-in-out; } + #WRAPPER > #MENU-SIDE > span:not(.active):hover { + background-image: url("/f/svg/sub/st/menu-side/000000"); + color: #000; } + #WRAPPER > #MENU-SIDE > span:not(.active):hover > svg, #WRAPPER > #MENU-SIDE > span:not(.active):hover > svg * { + fill: #000 !important; } + #WRAPPER > #MENU-SIDE > span.active { + border-bottom-color: #2290eb; + background-color: #399ced; + background-image: url("/f/svg/sub-active/st/menu-side/ffffff"); + color: #ffffff; } + #WRAPPER > #MENU-SIDE > span.active > svg, #WRAPPER > #MENU-SIDE > span.active > svg * { + fill: #fff !important; } + #WRAPPER > #MENU-SIDE > span:not(.icon) + div.sub > span { + display: block; + position: relative; + width: calc( 100% - 1.5em - 2.5em); + padding: .5em 1.5em; + padding-left: 2.5em; + background: #313541 url("/f/svg/sub/st/menu-side/888888") 1.5em center no-repeat; + background-size: .5em; + color: #7a7a7a; + font-size: .85em; + cursor: pointer; + transition: color .2s ease-in-out; } + #WRAPPER > #MENU-SIDE > span:not(.icon) + div.sub > span:hover, #WRAPPER > #MENU-SIDE > span:not(.icon) + div.sub > span.active { + color: #ffffff; + background-image: url("/f/svg/sub/st/menu-side/ffffff"); } + #WRAPPER > #MENU-SIDE > span:not(.icon):not(.active) + div.sub > span { + display: none; } + +/*# sourceMappingURL=data:application/json;base64,ewoJInZlcnNpb24iOiAzLAoJImZpbGUiOiAibmVzdGVkLmNzcyIsCgkic291cmNlcyI6IFsKCQkiLi4vbWVudS1zaWRlLnNjc3MiLAoJCSIuLi9jb25zdGFudHMuc2NzcyIKCV0sCgkic291cmNlc0NvbnRlbnQiOiBbCgkJIkBpbXBvcnQgJ2NvbnN0YW50cyc7XG5cbiNXUkFQUEVSID4gI01FTlUtU0lERXtcblxuXHQvKiBbMV0gRWxlbWVudHMgZHUgbWVudVxuXHQ9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xuXHQmID4gc3Bhbntcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHR3aWR0aDogY2FsYyggMTAwJSAtIDIqMWVtIC0gMioxLjVlbSApO1xuXG5cdFx0cGFkZGluZzogLjhlbSAxLjVlbTtcblx0XHRwYWRkaW5nLWxlZnQ6IGNhbGMoIDEuNWVtICsgMioxZW0gKTtcblxuXHRcdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcblxuXHRcdGJhY2tncm91bmQ6IHVybCgnL2Yvc3ZnL3N1Yi9zdC9tZW51LXNpZGUvYWFhYWFhJykgcmlnaHQgMS41ZW0gY2VudGVyIG5vLXJlcGVhdDtcblx0XHRiYWNrZ3JvdW5kLXNpemU6IC41ZW0gLjVlbTtcblxuXG5cdFx0Y29sb3I6ICM2NjY7XG5cdFx0Zm9udC1zaXplOiAuODVlbTtcblxuXHRcdHRyYW5zaXRpb246IGNvbG9yIC4ycyBlYXNlLWluLW91dCwgYmFja2dyb3VuZCAuMnMgZWFzZS1pbi1vdXQsIGJveC1zaGFkb3cgLjJzIGVhc2UtaW4tb3V0LCBib3JkZXIgLjJzIGVhc2UtaW4tb3V0O1xuXG5cdFx0Y3Vyc29yOiBwb2ludGVyO1xuXG5cdFx0LyogKDEpIEljb25lIHN2ZyAqL1xuXHRcdCYgPiBzdmcsICYgPiBzdmcgKntcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdFx0dG9wOiBjYWxjKCA1MCUgLSAxZW0vMiApO1xuXHRcdFx0XHRsZWZ0OiAxLjVlbTtcblx0XHRcdFx0d2lkdGg6IDFlbTtcblx0XHRcdFx0aGVpZ2h0OiAxZW07XG5cblx0XHRcdGZpbGw6ICRkYXJrLWZnICFpbXBvcnRhbnQ7XG5cdFx0XHR0cmFuc2l0aW9uOiBmaWxsIC4ycyBlYXNlLWluLW91dDtcblx0XHR9XG5cblxuXHRcdC8qICgyKSBBbmltYXRpb24gZGUgQGhvdmVyICovXG5cdFx0Jjpub3QoLmFjdGl2ZSk6aG92ZXJ7XG5cdFx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy9mL3N2Zy9zdWIvc3QvbWVudS1zaWRlLzAwMDAwMCcpO1xuXHRcdFx0Y29sb3I6ICMwMDA7XG5cblx0XHRcdCYgPiBzdmcsICYgPiBzdmcgKntcblx0XHRcdFx0ZmlsbDogIzAwMCAhaW1wb3J0YW50O1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC8qICgzKSBBbmltYXRpb24gcXVhbmQgLmFjdGl2ZSAqL1xuXHRcdCYuYWN0aXZle1xuXHRcdFx0Ym9yZGVyLWJvdHRvbS1jb2xvcjogZGFya2VuKCR0aGVtZS1mZy1wcmltYXJ5LCA1KTtcblx0XHRcdC8vIGJveC1zaGFkb3c6IGluc2V0IDAgMCAxZW0gZGFya2VuKCRkYXJrLWJnLXByaW1hcnksIDEpO1xuXG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkdGhlbWUtZmctcHJpbWFyeTtcblx0XHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybCgnL2Yvc3ZnL3N1Yi1hY3RpdmUvc3QvbWVudS1zaWRlL2ZmZmZmZicpO1xuXHRcdFx0Y29sb3I6ICRkYXJrLWZnLXByaW1hcnk7XG5cblx0XHRcdCYgPiBzdmcsICYgPiBzdmcgKntcblx0XHRcdFx0ZmlsbDogI2ZmZiAhaW1wb3J0YW50O1xuXHRcdFx0fVxuXHRcdH1cblxuXG5cdH1cblxuXG5cblx0LyogWzJdIEdlc3Rpb24gZHUgbWVudSBkZXJvdWxhbnRcblx0PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cblx0LyogKDEpIFF1YW5kIGxlIG1lbnUgZXN0IGRlcm91bGUgKi9cblx0JiA+IHNwYW46bm90KC5pY29uKSArIGRpdi5zdWI+c3Bhbntcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHR3aWR0aDogY2FsYyggMTAwJSAtIDEuNWVtIC0gMi41ZW0gKTtcblxuXHRcdHBhZGRpbmc6IC41ZW0gMS41ZW07XG5cdFx0cGFkZGluZy1sZWZ0OiAyLjVlbTtcblxuXHRcdGJhY2tncm91bmQ6ICRkYXJrLWJnIHVybCgnL2Yvc3ZnL3N1Yi9zdC9tZW51LXNpZGUvODg4ODg4JykgMS41ZW0gY2VudGVyIG5vLXJlcGVhdDs7XG5cdFx0YmFja2dyb3VuZC1zaXplOiAuNWVtO1xuXG5cdFx0Y29sb3I6IGRhcmtlbigkZGFyay1mZywgMTApO1xuXHRcdGZvbnQtc2l6ZTogLjg1ZW07XG5cblx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cblx0XHR0cmFuc2l0aW9uOiBjb2xvciAuMnMgZWFzZS1pbi1vdXQ7XG5cblx0XHQvLyBBbmltYXRpb24gZGUgQGhvdmVyIG91IC5hY3RpdmVcblx0XHQmOmhvdmVyLFxuXHRcdCYuYWN0aXZle1xuXHRcdFx0Y29sb3I6ICRkYXJrLWZnLXByaW1hcnk7XG5cdFx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy9mL3N2Zy9zdWIvc3QvbWVudS1zaWRlL2ZmZmZmZicpO1xuXHRcdH1cblx0fVxuXG5cblx0JiA+IHNwYW46bm90KC5pY29uKTpub3QoLmFjdGl2ZSkgKyBkaXYuc3ViPnNwYW57XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxufVxuIiwKCQkiLyogWzFdIENPVUxFVVJTXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xuLyogKDEpIENPVUxFVVJTIERVIFRIRU1FICRERUZBVUxUICovXG4kdGhlbWUtYmc6ICAgICAgICAgI2U4ZThlODtcbiR0aGVtZS1iZy1wcmltYXJ5OiAjZmZmZmZmO1xuJHRoZW1lLWZnOiAgICAgICAgICM1MTUxNTE7XG4kdGhlbWUtZmctcHJpbWFyeTogIzM5OWNlZDtcblxuLyogKDIpIENPVUxFVVJTIERFIFRIRU1FICREQVJLICovXG4kZGFyay1iZzogICAgICAgICAjMzEzNTQxO1xuJGRhcmstYmctcHJpbWFyeTogIzI5MjgyZTtcbiRkYXJrLWZnOiAgICAgICAgICM5MzkzOTM7XG4kZGFyay1mZy1wcmltYXJ5OiAjZmZmZmZmO1xuXG5cbi8qIFsyXSBESU1FTlNJT05TXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xuLyogKDEpIExheW91dCBkZSBiYXNlICovXG4kbWVudS1zaWRlLXdpZHRoOiAxNWVtO1xuJGhlYWRlci1oZWlnaHQ6ICAgNGVtO1xuIgoJXSwKCSJtYXBwaW5ncyI6ICJBQ0FBOzJEQUMyRDtBQUMzRCxvQ0FBb0M7QUFNcEMsaUNBQWlDO0FBT2pDOzJEQUMyRDtBQUMzRCx3QkFBd0I7QURmeEIsUUFBUSxHQUFHLFVBQVUsQ0FBQTtFQUVwQjs0REFDMkQ7RUFnRTNEOzREQUMyRDtFQUMzRCxtQ0FBbUMsRUErQm5DO0VBcEdELFFBQVEsR0FBRyxVQUFVLEdBSWhCLElBQUksQ0FBQTtJQUNQLE9BQU8sRUFBRSxLQUFNO0lBQ2YsUUFBUSxFQUFFLFFBQVM7SUFDbEIsS0FBSyxFQUFFLDZCQUFJO0lBRVosT0FBTyxFQUFFLFVBQVc7SUFDcEIsWUFBWSxFQUFFLG9CQUFJO0lBRWxCLGFBQWEsRUFBRSxxQkFBc0I7SUFFckMsVUFBVSxFQUFFLHFDQUFHLENBQW1DLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFNBQVM7SUFDOUUsZUFBZSxFQUFFLFNBQVU7SUFHM0IsS0FBSyxFQUFFLElBQUs7SUFDWixTQUFTLEVBQUUsS0FBTTtJQUVqQixVQUFVLEVBQUUscUdBQXNHO0lBRWxILE1BQU0sRUFBRSxPQUFRO0lBRWhCLG1CQUFtQjtJQWFuQiw2QkFBNkI7SUFV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 */ \ No newline at end of file diff --git a/css/menu-side/nested.css.map b/css/menu-side/nested.css.map new file mode 100644 index 0000000..892d661 --- /dev/null +++ b/css/menu-side/nested.css.map @@ -0,0 +1,14 @@ +{ + "version": 3, + "file": "nested.css", + "sources": [ + "../menu-side.scss", + "../constants.scss" + ], + "sourcesContent": [ + "@import 'constants';\n\n#WRAPPER > #MENU-SIDE{\n\n\t/* [1] Elements du menu\n\t=========================================================*/\n\t& > span{\n\t\tdisplay: block;\n\t\tposition: relative;\n\t\t\twidth: calc( 100% - 2*1em - 2*1.5em );\n\n\t\tpadding: .8em 1.5em;\n\t\tpadding-left: calc( 1.5em + 2*1em );\n\n\t\tborder-bottom: 1px solid transparent;\n\n\t\tbackground: url('/f/svg/sub/st/menu-side/aaaaaa') right 1.5em center no-repeat;\n\t\tbackground-size: .5em .5em;\n\n\n\t\tcolor: #666;\n\t\tfont-size: .85em;\n\n\t\ttransition: color .2s ease-in-out, background .2s ease-in-out, box-shadow .2s ease-in-out, border .2s ease-in-out;\n\n\t\tcursor: pointer;\n\n\t\t/* (1) Icone svg */\n\t\t& > svg, & > svg *{\n\t\t\tposition: absolute;\n\t\t\t\ttop: calc( 50% - 1em/2 );\n\t\t\t\tleft: 1.5em;\n\t\t\t\twidth: 1em;\n\t\t\t\theight: 1em;\n\n\t\t\tfill: $dark-fg !important;\n\t\t\ttransition: fill .2s ease-in-out;\n\t\t}\n\n\n\t\t/* (2) Animation de @hover */\n\t\t&:not(.active):hover{\n\t\t\tbackground-image: url('/f/svg/sub/st/menu-side/000000');\n\t\t\tcolor: #000;\n\n\t\t\t& > svg, & > svg *{\n\t\t\t\tfill: #000 !important;\n\t\t\t}\n\t\t}\n\n\t\t/* (3) Animation quand .active */\n\t\t&.active{\n\t\t\tborder-bottom-color: darken($theme-fg-primary, 5);\n\t\t\t// box-shadow: inset 0 0 1em darken($dark-bg-primary, 1);\n\n\t\t\tbackground-color: $theme-fg-primary;\n\t\t\tbackground-image: url('/f/svg/sub-active/st/menu-side/ffffff');\n\t\t\tcolor: $dark-fg-primary;\n\n\t\t\t& > svg, & > svg *{\n\t\t\t\tfill: #fff !important;\n\t\t\t}\n\t\t}\n\n\n\t}\n\n\n\n\t/* [2] Gestion du menu deroulant\n\t=========================================================*/\n\t/* (1) Quand le menu est deroule */\n\t& > span:not(.icon) + div.sub>span{\n\t\tdisplay: block;\n\t\tposition: relative;\n\t\t\twidth: calc( 100% - 1.5em - 2.5em );\n\n\t\tpadding: .5em 1.5em;\n\t\tpadding-left: 2.5em;\n\n\t\tbackground: $dark-bg url('/f/svg/sub/st/menu-side/888888') 1.5em center no-repeat;;\n\t\tbackground-size: .5em;\n\n\t\tcolor: darken($dark-fg, 10);\n\t\tfont-size: .85em;\n\n\t\tcursor: pointer;\n\n\t\ttransition: color .2s ease-in-out;\n\n\t\t// Animation de @hover ou .active\n\t\t&:hover,\n\t\t&.active{\n\t\t\tcolor: $dark-fg-primary;\n\t\t\tbackground-image: url('/f/svg/sub/st/menu-side/ffffff');\n\t\t}\n\t}\n\n\n\t& > span:not(.icon):not(.active) + div.sub>span{\n\t\tdisplay: none;\n\t}\n}\n", + "/* [1] COULEURS\n=========================================================*/\n/* (1) COULEURS DU THEME $DEFAULT */\n$theme-bg: #e8e8e8;\n$theme-bg-primary: #ffffff;\n$theme-fg: #515151;\n$theme-fg-primary: #399ced;\n\n/* (2) COULEURS DE THEME $DARK */\n$dark-bg: #313541;\n$dark-bg-primary: #29282e;\n$dark-fg: #939393;\n$dark-fg-primary: #ffffff;\n\n\n/* [2] DIMENSIONS\n=========================================================*/\n/* (1) Layout de base */\n$menu-side-width: 15em;\n$header-height: 4em;\n" + ], + "mappings": "ACAA;2DAC2D;AAC3D,oCAAoC;AAMpC,iCAAiC;AAOjC;2DAC2D;AAC3D,wBAAwB;ADfxB,QAAQ,GAAG,UAAU,CAAA;EAEpB;4DAC2D;EAgE3D;4DAC2D;EAC3D,mCAAmC,EA+BnC;EApGD,QAAQ,GAAG,UAAU,GAIhB,IAAI,CAAA;IACP,OAAO,EAAE,KAAM;IACf,QAAQ,EAAE,QAAS;IAClB,KAAK,EAAE,6BAAI;IAEZ,OAAO,EAAE,UAAW;IACpB,YAAY,EAAE,oBAAI;IAElB,aAAa,EAAE,qBAAsB;IAErC,UAAU,EAAE,qCAAG,CAAmC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS;IAC9E,eAAe,EAAE,SAAU;IAG3B,KAAK,EAAE,IAAK;IACZ,SAAS,EAAE,KAAM;IAEjB,UAAU,EAAE,qGAAsG;IAElH,MAAM,EAAE,OAAQ;IAEhB,mBAAmB;IAanB,6BAA6B;IAU7B,iCAAiC,EAejC;IA/DF,QAAQ,GAAG,UAAU,GAIhB,IAAI,GAsBH,GAAG,EA1BT,QAAQ,GAAG,UAAU,GAIhB,IAAI,GAsBM,GAAG,CAAC,CAAC,CAAA;MACjB,QAAQ,EAAE,QAAS;MAClB,GAAG,EAAE,kBAAI;MACT,IAAI,EAAE,KAAM;MACZ,KAAK,EAAE,GAAI;MACX,MAAM,EAAE,GAAI;MAEb,IAAI,ECxBW,OAAO,CDwBP,UAAU;MACzB,UAAU,EAAE,oBAAqB,GACjC;IAnCH,QAAQ,GAAG,UAAU,GAIhB,IAAI,AAmCN,IAAK,CAAA,OAAO,CAAC,MAAM,CAAA;MACnB,gBAAgB,EAAE,qCAAG;MACrB,KAAK,EAAE,IAAK,GAKZ;MA9CH,QAAQ,GAAG,UAAU,GAIhB,IAAI,AAmCN,IAAK,CAAA,OAAO,CAAC,MAAM,GAIf,GAAG,EA3CV,QAAQ,GAAG,UAAU,GAIhB,IAAI,AAmCN,IAAK,CAAA,OAAO,CAAC,MAAM,GAIN,GAAG,CAAC,CAAC,CAAA;QACjB,IAAI,EAAE,eAAgB,GACtB;IA7CJ,QAAQ,GAAG,UAAU,GAIhB,IAAI,AA6CN,OAAO,CAAA;MACP,mBAAmB,EAAE,OAAM;MAG3B,gBAAgB,ECjDA,OAAO;MDkDvB,gBAAgB,EAAE,4CAAG;MACrB,KAAK,EC7CU,OAAO,GDkDtB;MA5DH,QAAQ,GAAG,UAAU,GAIhB,IAAI,AA6CN,OAAO,GAQH,GAAG,EAzDV,QAAQ,GAAG,UAAU,GAIhB,IAAI,AA6CN,OAAO,GAQM,GAAG,CAAC,CAAC,CAAA;QACjB,IAAI,EAAE,eAAgB,GACtB;EA3DJ,QAAQ,GAAG,UAAU,GAsEhB,IAAI,AAAA,IAAK,CAAA,KAAK,IAAI,GAAG,AAAA,IAAI,GAAC,IAAI,CAAA;IACjC,OAAO,EAAE,KAAM;IACf,QAAQ,EAAE,QAAS;IAClB,KAAK,EAAE,2BAAI;IAEZ,OAAO,EAAE,UAAW;IACpB,YAAY,EAAE,KAAM;IAEpB,UAAU,ECvEM,OAAO,CDuEF,qCAAG,CAAmC,KAAK,CAAC,MAAM,CAAC,SAAS;IACjF,eAAe,EAAE,IAAK;IAEtB,KAAK,EAAE,OAAM;IACb,SAAS,EAAE,KAAM;IAEjB,MAAM,EAAE,OAAQ;IAEhB,UAAU,EAAE,qBAAsB,GAQlC;IA9FF,QAAQ,GAAG,UAAU,GAsEhB,IAAI,AAAA,IAAK,CAAA,KAAK,IAAI,GAAG,AAAA,IAAI,GAAC,IAAI,AAmBhC,MAAM,EAzFT,QAAQ,GAAG,UAAU,GAsEhB,IAAI,AAAA,IAAK,CAAA,KAAK,IAAI,GAAG,AAAA,IAAI,GAAC,IAAI,AAoBhC,OAAO,CAAA;MACP,KAAK,ECjFU,OAAO;MDkFtB,gBAAgB,EAAE,qCAAG,GACrB;EA7FH,QAAQ,GAAG,UAAU,GAiGhB,IAAI,AAAA,IAAK,CAAA,KAAK,CAAC,IAAK,CAAA,OAAO,IAAI,GAAG,AAAA,IAAI,GAAC,IAAI,CAAA;IAC9C,OAAO,EAAE,IAAK,GACd", + "names": [] +} \ No newline at end of file diff --git a/css/reset.css b/css/reset.css deleted file mode 100755 index dec7d72..0000000 --- a/css/reset.css +++ /dev/null @@ -1,2 +0,0 @@ -/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:inherit}b,strong{font-weight:bolder}dfn{font-style:italic}h1{font-size:2em;margin:0.67em 0}mark{background-color:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{box-sizing:content-box;height:0;overflow:visible}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace, monospace;font-size:1em}button,input,optgroup,select,textarea{font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0} -/*# sourceMappingURL=reset.css.map */ diff --git a/css/reset.css.map b/css/reset.css.map deleted file mode 100755 index 909921b..0000000 --- a/css/reset.css.map +++ /dev/null @@ -1,7 +0,0 @@ -{ -"version": 3, -"mappings": "AAAA,4EAA4E,AAQ5E,IAAK,CACH,WAAW,CAAE,UAAU,CACvB,oBAAoB,CAAE,IAAI,CAC1B,wBAAwB,CAAE,IAAI,CAOhC,IAAK,CACH,MAAM,CAAE,CAAC,CAcX,mFAWQ,CACN,OAAO,CAAE,KAAK,CAQhB,2BAGM,CACJ,OAAO,CAAE,YAAY,CACrB,cAAc,CAAE,QAAQ,CAQ1B,qBAAsB,CACpB,OAAO,CAAE,IAAI,CACb,MAAM,CAAE,CAAC,CAQX,iBACS,CACP,OAAO,CAAE,IAAI,CAUf,CAAE,CACA,gBAAgB,CAAE,WAAW,CAQ/B,gBACQ,CACN,OAAO,CAAE,CAAC,CAYZ,WAAY,CACV,aAAa,CAAE,IAAI,CACnB,eAAe,CAAE,SAAS,CAC1B,eAAe,CAAE,gBAAgB,CASnC,QACO,CACL,WAAW,CAAE,OAAO,CAGtB,QACO,CACL,WAAW,CAAE,MAAM,CAOrB,GAAI,CACF,UAAU,CAAE,MAAM,CAQpB,EAAG,CACD,SAAS,CAAE,GAAG,CACd,MAAM,CAAE,QAAQ,CAOlB,IAAK,CACH,gBAAgB,CAAE,IAAI,CACtB,KAAK,CAAE,IAAI,CAOb,KAAM,CACJ,SAAS,CAAE,GAAG,CAOhB,OACI,CACF,SAAS,CAAE,GAAG,CACd,WAAW,CAAE,CAAC,CACd,QAAQ,CAAE,QAAQ,CAClB,cAAc,CAAE,QAAQ,CAG1B,GAAI,CACF,GAAG,CAAE,MAAM,CAGb,GAAI,CACF,MAAM,CAAE,OAAO,CAUjB,GAAI,CACF,MAAM,CAAE,CAAC,CAOX,cAAe,CACb,QAAQ,CAAE,MAAM,CAUlB,MAAO,CACL,MAAM,CAAE,QAAQ,CASlB,EAAG,CACD,UAAU,CAAE,WAAW,CACvB,MAAM,CAAE,CAAC,CACT,QAAQ,CAAE,OAAO,CAOnB,GAAI,CACF,QAAQ,CAAE,IAAI,CAQhB,iBAGK,CACH,WAAW,CAAE,oBAAoB,CACjC,SAAS,CAAE,GAAG,CAgBhB,qCAIS,CACP,IAAI,CAAE,OAAO,CACb,MAAM,CAAE,CAAC,CAOX,MAAO,CACL,QAAQ,CAAE,OAAO,CAUnB,aACO,CACL,cAAc,CAAE,IAAI,CAWtB,yEAGqB,CACnB,kBAAkB,CAAE,MAAM,CAC1B,MAAM,CAAE,OAAO,CAOjB,qCACqB,CACnB,MAAM,CAAE,OAAO,CAOjB,gDACwB,CACtB,MAAM,CAAE,CAAC,CACT,OAAO,CAAE,CAAC,CAQZ,KAAM,CACJ,WAAW,CAAE,MAAM,CAWrB,0CACoB,CAClB,UAAU,CAAE,UAAU,CACtB,OAAO,CAAE,CAAC,CASZ,+FACgD,CAC9C,MAAM,CAAE,IAAI,CAOd,oBAAqB,CACnB,kBAAkB,CAAE,SAAS,CAS/B,kGACgD,CAC9C,kBAAkB,CAAE,IAAI,CAO1B,QAAS,CACP,MAAM,CAAE,iBAAiB,CACzB,MAAM,CAAE,KAAK,CACb,OAAO,CAAE,qBAAqB,CAQhC,MAAO,CACL,MAAM,CAAE,CAAC,CACT,OAAO,CAAE,CAAC,CAOZ,QAAS,CACP,QAAQ,CAAE,IAAI,CAQhB,QAAS,CACP,WAAW,CAAE,IAAI,CAUnB,KAAM,CACJ,eAAe,CAAE,QAAQ,CACzB,cAAc,CAAE,CAAC,CAGnB,KACG,CACD,OAAO,CAAE,CAAC", -"sources": ["reset.scss"], -"names": [], -"file": "reset.css" -} \ No newline at end of file diff --git a/css/reset.scss b/css/reset.scss index 6675ec8..eebc0aa 100755 --- a/css/reset.scss +++ b/css/reset.scss @@ -409,7 +409,7 @@ textarea { /** * Don't inherit the `font-weight` (applied by a rule above). - * NOTE: the default cannot safely be changed in Chrome and Safari on OS X. + * the default cannot safely be changed in Chrome and Safari on OS X. */ optgroup { @@ -431,4 +431,4 @@ table { td, th { padding: 0; -} \ No newline at end of file +} diff --git a/css/reset/compact.css b/css/reset/compact.css new file mode 100644 index 0000000..641163c --- /dev/null +++ b/css/reset/compact.css @@ -0,0 +1,129 @@ +/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */ +/** 1. Set default font family to sans-serif. 2. Prevent iOS and IE text size adjust after device orientation change, without disabling user zoom. */ +html { font-family: sans-serif; /* 1 */ -ms-text-size-adjust: 100%; /* 2 */ -webkit-text-size-adjust: 100%; /* 2 */ } + +/** Remove default margin. */ +body { margin: 0; } + +/* HTML5 display definitions ========================================================================== */ +/** Correct `block` display not defined for any HTML5 element in IE 8/9. Correct `block` display not defined for `details` or `summary` in IE 10/11 and Firefox. Correct `block` display not defined for `main` in IE 11. */ +article, aside, details, figcaption, figure, footer, header, main, menu, nav, section, summary { display: block; } + +/** 1. Correct `inline-block` display not defined in IE 8/9. 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. */ +audio, canvas, progress, video { display: inline-block; /* 1 */ vertical-align: baseline; /* 2 */ } + +/** Prevent modern browsers from displaying `audio` without controls. Remove excess height in iOS 5 devices. */ +audio:not([controls]) { display: none; height: 0; } + +/** Address `[hidden]` styling not present in IE 8/9/10. Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22. */ +[hidden], template { display: none; } + +/* Links ========================================================================== */ +/** Remove the gray background color from active links in IE 10. */ +a { background-color: transparent; } + +/** Improve readability of focused elements when they are also in an active/hover state. */ +a:active, a:hover { outline: 0; } + +/* Text-level semantics ========================================================================== */ +/** Address inconsistent styling of `abbr[title]`. 1. Correct styling in Firefox 39 and Opera 12. 2. Correct missing styling in Chrome, Edge, IE, Opera, and Safari. */ +abbr[title] { border-bottom: none; /* 1 */ text-decoration: underline; /* 2 */ text-decoration: underline dotted; /* 2 */ } + +/** Address inconsistent styling of b and strong. 1. Correct duplicate application of `bolder` in Safari 6.0.2. 2. Correct style set to `bold` in Edge 12+, Safari 6.2+, and Chrome 18+. */ +b, strong { font-weight: inherit; /* 1 */ } + +b, strong { font-weight: bolder; /* 2 */ } + +/** Address styling not present in Safari and Chrome. */ +dfn { font-style: italic; } + +/** Address variable `h1` font-size and margin within `section` and `article` contexts in Firefox 4+, Safari, and Chrome. */ +h1 { font-size: 2em; margin: 0.67em 0; } + +/** Address styling not present in IE 8/9. */ +mark { background-color: #ff0; color: #000; } + +/** Address inconsistent and variable font size in all browsers. */ +small { font-size: 80%; } + +/** Prevent `sub` and `sup` affecting `line-height` in all browsers. */ +sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; } + +sup { top: -0.5em; } + +sub { bottom: -0.25em; } + +/* Embedded content ========================================================================== */ +/** Remove border when inside `a` element in IE 8/9/10. */ +img { border: 0; } + +/** Correct overflow not hidden in IE 9/10/11. */ +svg:not(:root) { overflow: hidden; } + +/* Grouping content ========================================================================== */ +/** Address margin not present in IE 8/9 and Safari. */ +figure { margin: 1em 40px; } + +/** Address inconsistent styling of `hr`. 1. Correct `box-sizing` set to `border-box` in Firefox. 2. Correct `overflow` set to `hidden` in IE 8/9/10/11 and Edge 12. */ +hr { box-sizing: content-box; /* 1 */ height: 0; /* 1 */ overflow: visible; /* 2 */ } + +/** Contain overflow in all browsers. */ +pre { overflow: auto; } + +/** 1. Correct inheritance and scaling of font-size for preformatted text. 2. Address odd `em`-unit font size rendering in all browsers. */ +code, kbd, pre, samp { font-family: monospace, monospace; /* 1 */ font-size: 1em; /* 2 */ } + +/* Forms ========================================================================== */ +/** Known limitation: by default, Chrome and Safari on OS X allow very limited styling of `select`, unless a `border` property is set. */ +/** 1. Correct font properties not being inherited. 2. Address margins set differently in Firefox 4+, Safari, and Chrome. */ +button, input, optgroup, select, textarea { font: inherit; /* 1 */ margin: 0; /* 2 */ } + +/** Address `overflow` set to `hidden` in IE 8/9/10/11. */ +button { overflow: visible; } + +/** Address inconsistent `text-transform` inheritance for `button` and `select`. All other form control elements do not inherit `text-transform` values. Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera. Correct `select` style inheritance in Firefox. */ +button, select { text-transform: none; } + +/** 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` and `video` controls. 2. Correct inability to style clickable `input` types in iOS. 3. Improve usability and consistency of cursor style between image-type `input` and others. */ +button, html input[type="button"], input[type="reset"], input[type="submit"] { -webkit-appearance: button; /* 2 */ cursor: pointer; /* 3 */ } + +/** Re-set default cursor for disabled elements. */ +button[disabled], html input[disabled] { cursor: default; } + +/** Remove inner padding and border in Firefox 4+. */ +button::-moz-focus-inner, input::-moz-focus-inner { border: 0; padding: 0; } + +/** Address Firefox 4+ setting `line-height` on `input` using `!important` in the UA stylesheet. */ +input { line-height: normal; } + +/** It's recommended that you don't attempt to style these elements. Firefox's implementation doesn't respect box-sizing, padding, or width. 1. Address box sizing set to `content-box` in IE 8/9/10. 2. Remove excess padding in IE 8/9/10. */ +input[type="checkbox"], input[type="radio"] { box-sizing: border-box; /* 1 */ padding: 0; /* 2 */ } + +/** Fix the cursor style for Chrome's increment/decrement buttons. For certain `font-size` values of the `input`, it causes the cursor style of the decrement button to change from `default` to `text`. */ +input[type="number"]::-webkit-inner-spin-button, input[type="number"]::-webkit-outer-spin-button { height: auto; } + +/** Address `appearance` set to `searchfield` in Safari and Chrome. */ +input[type="search"] { -webkit-appearance: textfield; } + +/** Remove inner padding and search cancel button in Safari and Chrome on OS X. Safari (but not Chrome) clips the cancel button when the search input has padding (and `textfield` appearance). */ +input[type="search"]::-webkit-search-cancel-button, input[type="search"]::-webkit-search-decoration { -webkit-appearance: none; } + +/** Define consistent border, margin, and padding. */ +fieldset { border: 1px solid #c0c0c0; margin: 0 2px; padding: 0.35em 0.625em 0.75em; } + +/** 1. Correct `color` not being inherited in IE 8/9/10/11. 2. Remove padding so people aren't caught out if they zero out fieldsets. */ +legend { border: 0; /* 1 */ padding: 0; /* 2 */ } + +/** Remove default vertical scrollbar in IE 8/9/10/11. */ +textarea { overflow: auto; } + +/** Don't inherit the `font-weight` (applied by a rule above). the default cannot safely be changed in Chrome and Safari on OS X. */ +optgroup { font-weight: bold; } + +/* Tables ========================================================================== */ +/** Remove most spacing between table cells. */ +table { border-collapse: collapse; border-spacing: 0; } + +td, th { padding: 0; } + +/*# sourceMappingURL=data:application/json;base64,ewoJInZlcnNpb24iOiAzLAoJImZpbGUiOiAiY29tcGFjdC5jc3MiLAoJInNvdXJjZXMiOiBbCgkJIi4uL3Jlc2V0LnNjc3MiCgldLAoJInNvdXJjZXNDb250ZW50IjogWwoJCSIvKiEgbm9ybWFsaXplLmNzcyB2My4wLjMgfCBNSVQgTGljZW5zZSB8IGdpdGh1Yi5jb20vbmVjb2xhcy9ub3JtYWxpemUuY3NzICovXG5cbi8qKlxuICogMS4gU2V0IGRlZmF1bHQgZm9udCBmYW1pbHkgdG8gc2Fucy1zZXJpZi5cbiAqIDIuIFByZXZlbnQgaU9TIGFuZCBJRSB0ZXh0IHNpemUgYWRqdXN0IGFmdGVyIGRldmljZSBvcmllbnRhdGlvbiBjaGFuZ2UsXG4gKiAgICB3aXRob3V0IGRpc2FibGluZyB1c2VyIHpvb20uXG4gKi9cblxuaHRtbCB7XG4gIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmOyAvKiAxICovXG4gIC1tcy10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAyICovXG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMiAqL1xufVxuXG4vKipcbiAqIFJlbW92ZSBkZWZhdWx0IG1hcmdpbi5cbiAqL1xuXG5ib2R5IHtcbiAgbWFyZ2luOiAwO1xuICAvLyBmb250LXNpemU6IDEycHg7XG59XG5cbi8qIEhUTUw1IGRpc3BsYXkgZGVmaW5pdGlvbnNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGFueSBIVE1MNSBlbGVtZW50IGluIElFIDgvOS5cbiAqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBgZGV0YWlsc2Agb3IgYHN1bW1hcnlgIGluIElFIDEwLzExXG4gKiBhbmQgRmlyZWZveC5cbiAqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBgbWFpbmAgaW4gSUUgMTEuXG4gKi9cblxuYXJ0aWNsZSxcbmFzaWRlLFxuZGV0YWlscyxcbmZpZ2NhcHRpb24sXG5maWd1cmUsXG5mb290ZXIsXG5oZWFkZXIsXG5tYWluLFxubWVudSxcbm5hdixcbnNlY3Rpb24sXG5zdW1tYXJ5IHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCBgaW5saW5lLWJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGluIElFIDgvOS5cbiAqIDIuIE5vcm1hbGl6ZSB2ZXJ0aWNhbCBhbGlnbm1lbnQgb2YgYHByb2dyZXNzYCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cbiAqL1xuXG5hdWRpbyxcbmNhbnZhcyxcbnByb2dyZXNzLFxudmlkZW8ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IC8qIDEgKi9cbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lOyAvKiAyICovXG59XG5cbi8qKlxuICogUHJldmVudCBtb2Rlcm4gYnJvd3NlcnMgZnJvbSBkaXNwbGF5aW5nIGBhdWRpb2Agd2l0aG91dCBjb250cm9scy5cbiAqIFJlbW92ZSBleGNlc3MgaGVpZ2h0IGluIGlPUyA1IGRldmljZXMuXG4gKi9cblxuYXVkaW86bm90KFtjb250cm9sc10pIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgaGVpZ2h0OiAwO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgYFtoaWRkZW5dYCBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS8xMC5cbiAqIEhpZGUgdGhlIGB0ZW1wbGF0ZWAgZWxlbWVudCBpbiBJRSA4LzkvMTAvMTEsIFNhZmFyaSwgYW5kIEZpcmVmb3ggPCAyMi5cbiAqL1xuXG5baGlkZGVuXSxcbnRlbXBsYXRlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLyogTGlua3NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogUmVtb3ZlIHRoZSBncmF5IGJhY2tncm91bmQgY29sb3IgZnJvbSBhY3RpdmUgbGlua3MgaW4gSUUgMTAuXG4gKi9cblxuYSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4vKipcbiAqIEltcHJvdmUgcmVhZGFiaWxpdHkgb2YgZm9jdXNlZCBlbGVtZW50cyB3aGVuIHRoZXkgYXJlIGFsc28gaW4gYW5cbiAqIGFjdGl2ZS9ob3ZlciBzdGF0ZS5cbiAqL1xuXG5hOmFjdGl2ZSxcbmE6aG92ZXIge1xuICBvdXRsaW5lOiAwO1xufVxuXG4vKiBUZXh0LWxldmVsIHNlbWFudGljc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBBZGRyZXNzIGluY29uc2lzdGVudCBzdHlsaW5nIG9mIGBhYmJyW3RpdGxlXWAuXG4gKiAxLiBDb3JyZWN0IHN0eWxpbmcgaW4gRmlyZWZveCAzOSBhbmQgT3BlcmEgMTIuXG4gKiAyLiBDb3JyZWN0IG1pc3Npbmcgc3R5bGluZyBpbiBDaHJvbWUsIEVkZ2UsIElFLCBPcGVyYSwgYW5kIFNhZmFyaS5cbiAqL1xuXG5hYmJyW3RpdGxlXSB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7IC8qIDEgKi9cbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IC8qIDIgKi9cbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkOyAvKiAyICovXG59XG5cbi8qKlxuICogQWRkcmVzcyBpbmNvbnNpc3RlbnQgc3R5bGluZyBvZiBiIGFuZCBzdHJvbmcuXG4gKiAxLiBDb3JyZWN0IGR1cGxpY2F0ZSBhcHBsaWNhdGlvbiBvZiBgYm9sZGVyYCBpbiBTYWZhcmkgNi4wLjIuXG4gKiAyLiBDb3JyZWN0IHN0eWxlIHNldCB0byBgYm9sZGAgaW4gRWRnZSAxMissIFNhZmFyaSA2LjIrLCBhbmQgQ2hyb21lIDE4Ky5cbiAqL1xuXG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7IC8qIDEgKi9cbn1cblxuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkZXI7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gU2FmYXJpIGFuZCBDaHJvbWUuXG4gKi9cblxuZGZuIHtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgdmFyaWFibGUgYGgxYCBmb250LXNpemUgYW5kIG1hcmdpbiB3aXRoaW4gYHNlY3Rpb25gIGFuZCBgYXJ0aWNsZWBcbiAqIGNvbnRleHRzIGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbiAqL1xuXG5oMSB7XG4gIGZvbnQtc2l6ZTogMmVtO1xuICBtYXJnaW46IDAuNjdlbSAwO1xufVxuXG4vKipcbiAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkuXG4gKi9cblxubWFyayB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjA7XG4gIGNvbG9yOiAjMDAwO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgaW5jb25zaXN0ZW50IGFuZCB2YXJpYWJsZSBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7XG59XG5cbi8qKlxuICogUHJldmVudCBgc3ViYCBhbmQgYHN1cGAgYWZmZWN0aW5nIGBsaW5lLWhlaWdodGAgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnN1YixcbnN1cCB7XG4gIGZvbnQtc2l6ZTogNzUlO1xuICBsaW5lLWhlaWdodDogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbnN1cCB7XG4gIHRvcDogLTAuNWVtO1xufVxuXG5zdWIge1xuICBib3R0b206IC0wLjI1ZW07XG59XG5cbi8qIEVtYmVkZGVkIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogUmVtb3ZlIGJvcmRlciB3aGVuIGluc2lkZSBgYWAgZWxlbWVudCBpbiBJRSA4LzkvMTAuXG4gKi9cblxuaW1nIHtcbiAgYm9yZGVyOiAwO1xufVxuXG4vKipcbiAqIENvcnJlY3Qgb3ZlcmZsb3cgbm90IGhpZGRlbiBpbiBJRSA5LzEwLzExLlxuICovXG5cbnN2Zzpub3QoOnJvb3QpIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLyogR3JvdXBpbmcgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBBZGRyZXNzIG1hcmdpbiBub3QgcHJlc2VudCBpbiBJRSA4LzkgYW5kIFNhZmFyaS5cbiAqL1xuXG5maWd1cmUge1xuICBtYXJnaW46IDFlbSA0MHB4O1xufVxuXG4vKipcbiAqIEFkZHJlc3MgaW5jb25zaXN0ZW50IHN0eWxpbmcgb2YgYGhyYC5cbiAqIDEuIENvcnJlY3QgYGJveC1zaXppbmdgIHNldCB0byBgYm9yZGVyLWJveGAgaW4gRmlyZWZveC5cbiAqIDIuIENvcnJlY3QgYG92ZXJmbG93YCBzZXQgdG8gYGhpZGRlbmAgaW4gSUUgOC85LzEwLzExIGFuZCBFZGdlIDEyLlxuICovXG5cbmhyIHtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7IC8qIDEgKi9cbiAgaGVpZ2h0OiAwOyAvKiAxICovXG4gIG92ZXJmbG93OiB2aXNpYmxlOyAvKiAyICovXG59XG5cbi8qKlxuICogQ29udGFpbiBvdmVyZmxvdyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxucHJlIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250LXNpemUgZm9yIHByZWZvcm1hdHRlZCB0ZXh0LlxuICogMi4gQWRkcmVzcyBvZGQgYGVtYC11bml0IGZvbnQgc2l6ZSByZW5kZXJpbmcgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbmNvZGUsXG5rYmQsXG5wcmUsXG5zYW1wIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlOyAvKiAxICovXG4gIGZvbnQtc2l6ZTogMWVtOyAvKiAyICovXG59XG5cbi8qIEZvcm1zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIEtub3duIGxpbWl0YXRpb246IGJ5IGRlZmF1bHQsIENocm9tZSBhbmQgU2FmYXJpIG9uIE9TIFggYWxsb3cgdmVyeSBsaW1pdGVkXG4gKiBzdHlsaW5nIG9mIGBzZWxlY3RgLCB1bmxlc3MgYSBgYm9yZGVyYCBwcm9wZXJ0eSBpcyBzZXQuXG4gKi9cblxuLyoqXG4gKiAxLiBDb3JyZWN0IGZvbnQgcHJvcGVydGllcyBub3QgYmVpbmcgaW5oZXJpdGVkLlxuICogMi4gQWRkcmVzcyBtYXJnaW5zIHNldCBkaWZmZXJlbnRseSBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4gKi9cblxuYnV0dG9uLFxuaW5wdXQsXG5vcHRncm91cCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgZm9udDogaW5oZXJpdDsgLyogMSAqL1xuICBtYXJnaW46IDA7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBBZGRyZXNzIGBvdmVyZmxvd2Agc2V0IHRvIGBoaWRkZW5gIGluIElFIDgvOS8xMC8xMS5cbiAqL1xuXG5idXR0b24ge1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIGluY29uc2lzdGVudCBgdGV4dC10cmFuc2Zvcm1gIGluaGVyaXRhbmNlIGZvciBgYnV0dG9uYCBhbmQgYHNlbGVjdGAuXG4gKiBBbGwgb3RoZXIgZm9ybSBjb250cm9sIGVsZW1lbnRzIGRvIG5vdCBpbmhlcml0IGB0ZXh0LXRyYW5zZm9ybWAgdmFsdWVzLlxuICogQ29ycmVjdCBgYnV0dG9uYCBzdHlsZSBpbmhlcml0YW5jZSBpbiBGaXJlZm94LCBJRSA4LzkvMTAvMTEsIGFuZCBPcGVyYS5cbiAqIENvcnJlY3QgYHNlbGVjdGAgc3R5bGUgaW5oZXJpdGFuY2UgaW4gRmlyZWZveC5cbiAqL1xuXG5idXR0b24sXG5zZWxlY3Qge1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLyoqXG4gKiAxLiBBdm9pZCB0aGUgV2ViS2l0IGJ1ZyBpbiBBbmRyb2lkIDQuMC4qIHdoZXJlICgyKSBkZXN0cm95cyBuYXRpdmUgYGF1ZGlvYFxuICogICAgYW5kIGB2aWRlb2AgY29udHJvbHMuXG4gKiAyLiBDb3JyZWN0IGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgYGlucHV0YCB0eXBlcyBpbiBpT1MuXG4gKiAzLiBJbXByb3ZlIHVzYWJpbGl0eSBhbmQgY29uc2lzdGVuY3kgb2YgY3Vyc29yIHN0eWxlIGJldHdlZW4gaW1hZ2UtdHlwZVxuICogICAgYGlucHV0YCBhbmQgb3RoZXJzLlxuICovXG5cbmJ1dHRvbixcbmh0bWwgaW5wdXRbdHlwZT1cImJ1dHRvblwiXSwgLyogMSAqL1xuaW5wdXRbdHlwZT1cInJlc2V0XCJdLFxuaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyAvKiAyICovXG4gIGN1cnNvcjogcG9pbnRlcjsgLyogMyAqL1xufVxuXG4vKipcbiAqIFJlLXNldCBkZWZhdWx0IGN1cnNvciBmb3IgZGlzYWJsZWQgZWxlbWVudHMuXG4gKi9cblxuYnV0dG9uW2Rpc2FibGVkXSxcbmh0bWwgaW5wdXRbZGlzYWJsZWRdIHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4vKipcbiAqIFJlbW92ZSBpbm5lciBwYWRkaW5nIGFuZCBib3JkZXIgaW4gRmlyZWZveCA0Ky5cbiAqL1xuXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG5pbnB1dDo6LW1vei1mb2N1cy1pbm5lciB7XG4gIGJvcmRlcjogMDtcbiAgcGFkZGluZzogMDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIEZpcmVmb3ggNCsgc2V0dGluZyBgbGluZS1oZWlnaHRgIG9uIGBpbnB1dGAgdXNpbmcgYCFpbXBvcnRhbnRgIGluXG4gKiB0aGUgVUEgc3R5bGVzaGVldC5cbiAqL1xuXG5pbnB1dCB7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG59XG5cbi8qKlxuICogSXQncyByZWNvbW1lbmRlZCB0aGF0IHlvdSBkb24ndCBhdHRlbXB0IHRvIHN0eWxlIHRoZXNlIGVsZW1lbnRzLlxuICogRmlyZWZveCdzIGltcGxlbWVudGF0aW9uIGRvZXNuJ3QgcmVzcGVjdCBib3gtc2l6aW5nLCBwYWRkaW5nLCBvciB3aWR0aC5cbiAqXG4gKiAxLiBBZGRyZXNzIGJveCBzaXppbmcgc2V0IHRvIGBjb250ZW50LWJveGAgaW4gSUUgOC85LzEwLlxuICogMi4gUmVtb3ZlIGV4Y2VzcyBwYWRkaW5nIGluIElFIDgvOS8xMC5cbiAqL1xuXG5pbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0sXG5pbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiAxICovXG4gIHBhZGRpbmc6IDA7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBGaXggdGhlIGN1cnNvciBzdHlsZSBmb3IgQ2hyb21lJ3MgaW5jcmVtZW50L2RlY3JlbWVudCBidXR0b25zLiBGb3IgY2VydGFpblxuICogYGZvbnQtc2l6ZWAgdmFsdWVzIG9mIHRoZSBgaW5wdXRgLCBpdCBjYXVzZXMgdGhlIGN1cnNvciBzdHlsZSBvZiB0aGVcbiAqIGRlY3JlbWVudCBidXR0b24gdG8gY2hhbmdlIGZyb20gYGRlZmF1bHRgIHRvIGB0ZXh0YC5cbiAqL1xuXG5pbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gIGhlaWdodDogYXV0bztcbn1cblxuLyoqXG4gKiBBZGRyZXNzIGBhcHBlYXJhbmNlYCBzZXQgdG8gYHNlYXJjaGZpZWxkYCBpbiBTYWZhcmkgYW5kIENocm9tZS5cbiAqL1xuXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7XG59XG5cbi8qKlxuICogUmVtb3ZlIGlubmVyIHBhZGRpbmcgYW5kIHNlYXJjaCBjYW5jZWwgYnV0dG9uIGluIFNhZmFyaSBhbmQgQ2hyb21lIG9uIE9TIFguXG4gKiBTYWZhcmkgKGJ1dCBub3QgQ2hyb21lKSBjbGlwcyB0aGUgY2FuY2VsIGJ1dHRvbiB3aGVuIHRoZSBzZWFyY2ggaW5wdXQgaGFzXG4gKiBwYWRkaW5nIChhbmQgYHRleHRmaWVsZGAgYXBwZWFyYW5jZSkuXG4gKi9cblxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbi8qKlxuICogRGVmaW5lIGNvbnNpc3RlbnQgYm9yZGVyLCBtYXJnaW4sIGFuZCBwYWRkaW5nLlxuICovXG5cbmZpZWxkc2V0IHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2MwYzBjMDtcbiAgbWFyZ2luOiAwIDJweDtcbiAgcGFkZGluZzogMC4zNWVtIDAuNjI1ZW0gMC43NWVtO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgYGNvbG9yYCBub3QgYmVpbmcgaW5oZXJpdGVkIGluIElFIDgvOS8xMC8xMS5cbiAqIDIuIFJlbW92ZSBwYWRkaW5nIHNvIHBlb3BsZSBhcmVuJ3QgY2F1Z2h0IG91dCBpZiB0aGV5IHplcm8gb3V0IGZpZWxkc2V0cy5cbiAqL1xuXG5sZWdlbmQge1xuICBib3JkZXI6IDA7IC8qIDEgKi9cbiAgcGFkZGluZzogMDsgLyogMiAqL1xufVxuXG4vKipcbiAqIFJlbW92ZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRSA4LzkvMTAvMTEuXG4gKi9cblxudGV4dGFyZWEge1xuICBvdmVyZmxvdzogYXV0bztcbn1cblxuLyoqXG4gKiBEb24ndCBpbmhlcml0IHRoZSBgZm9udC13ZWlnaHRgIChhcHBsaWVkIGJ5IGEgcnVsZSBhYm92ZSkuXG4gKiB0aGUgZGVmYXVsdCBjYW5ub3Qgc2FmZWx5IGJlIGNoYW5nZWQgaW4gQ2hyb21lIGFuZCBTYWZhcmkgb24gT1MgWC5cbiAqL1xuXG5vcHRncm91cCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4vKiBUYWJsZXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogUmVtb3ZlIG1vc3Qgc3BhY2luZyBiZXR3ZWVuIHRhYmxlIGNlbGxzLlxuICovXG5cbnRhYmxlIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgYm9yZGVyLXNwYWNpbmc6IDA7XG59XG5cbnRkLFxudGgge1xuICBwYWRkaW5nOiAwO1xufVxuIgoJXSwKCSJtYXBwaW5ncyI6ICJBQUFBLDRFQUE0RTtBQUU1RSxxSkFJRztBQUVILElBQUksQ0FBQyxFQUNILFdBQVcsRUFBRSxVQUFXLEVBQUUsT0FBTyxDQUNqQyxvQkFBb0IsRUFBRSxJQUFLLEVBQUUsT0FBTyxDQUNwQyx3QkFBd0IsRUFBRSxJQUFLLEVBQUUsT0FBTyxFQUN6Qzs7QUFFRCw2QkFFRztBQUVILElBQUksQ0FBQyxFQUNILE1BQU0sRUFBRSxDQUFFLEdBRVg7O0FBRUQsMEdBQ2dGO0FBRWhGLDROQUtHO0FBRUgsT0FBTyxFQUNQLEtBQUssRUFDTCxPQUFPLEVBQ1AsVUFBVSxFQUNWLE1BQU0sRUFDTixNQUFNLEVBQ04sTUFBTSxFQUNOLElBQUksRUFDSixJQUFJLEVBQ0osR0FBRyxFQUNILE9B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 */ \ No newline at end of file diff --git a/css/reset/compact.css.map b/css/reset/compact.css.map new file mode 100644 index 0000000..65f75bb --- /dev/null +++ b/css/reset/compact.css.map @@ -0,0 +1,12 @@ +{ + "version": 3, + "file": "compact.css", + "sources": [ + "../reset.scss" + ], + "sourcesContent": [ + "/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */\n\n/**\n * 1. Set default font family to sans-serif.\n * 2. Prevent iOS and IE text size adjust after device orientation change,\n * without disabling user zoom.\n */\n\nhtml {\n font-family: sans-serif; /* 1 */\n -ms-text-size-adjust: 100%; /* 2 */\n -webkit-text-size-adjust: 100%; /* 2 */\n}\n\n/**\n * Remove default margin.\n */\n\nbody {\n margin: 0;\n // font-size: 12px;\n}\n\n/* HTML5 display definitions\n ========================================================================== */\n\n/**\n * Correct `block` display not defined for any HTML5 element in IE 8/9.\n * Correct `block` display not defined for `details` or `summary` in IE 10/11\n * and Firefox.\n * Correct `block` display not defined for `main` in IE 11.\n */\n\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nmain,\nmenu,\nnav,\nsection,\nsummary {\n display: block;\n}\n\n/**\n * 1. Correct `inline-block` display not defined in IE 8/9.\n * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.\n */\n\naudio,\ncanvas,\nprogress,\nvideo {\n display: inline-block; /* 1 */\n vertical-align: baseline; /* 2 */\n}\n\n/**\n * Prevent modern browsers from displaying `audio` without controls.\n * Remove excess height in iOS 5 devices.\n */\n\naudio:not([controls]) {\n display: none;\n height: 0;\n}\n\n/**\n * Address `[hidden]` styling not present in IE 8/9/10.\n * Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22.\n */\n\n[hidden],\ntemplate {\n display: none;\n}\n\n/* Links\n ========================================================================== */\n\n/**\n * Remove the gray background color from active links in IE 10.\n */\n\na {\n background-color: transparent;\n}\n\n/**\n * Improve readability of focused elements when they are also in an\n * active/hover state.\n */\n\na:active,\na:hover {\n outline: 0;\n}\n\n/* Text-level semantics\n ========================================================================== */\n\n/**\n * Address inconsistent styling of `abbr[title]`.\n * 1. Correct styling in Firefox 39 and Opera 12.\n * 2. Correct missing styling in Chrome, Edge, IE, Opera, and Safari.\n */\n\nabbr[title] {\n border-bottom: none; /* 1 */\n text-decoration: underline; /* 2 */\n text-decoration: underline dotted; /* 2 */\n}\n\n/**\n * Address inconsistent styling of b and strong.\n * 1. Correct duplicate application of `bolder` in Safari 6.0.2.\n * 2. Correct style set to `bold` in Edge 12+, Safari 6.2+, and Chrome 18+.\n */\n\nb,\nstrong {\n font-weight: inherit; /* 1 */\n}\n\nb,\nstrong {\n font-weight: bolder; /* 2 */\n}\n\n/**\n * Address styling not present in Safari and Chrome.\n */\n\ndfn {\n font-style: italic;\n}\n\n/**\n * Address variable `h1` font-size and margin within `section` and `article`\n * contexts in Firefox 4+, Safari, and Chrome.\n */\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n/**\n * Address styling not present in IE 8/9.\n */\n\nmark {\n background-color: #ff0;\n color: #000;\n}\n\n/**\n * Address inconsistent and variable font size in all browsers.\n */\n\nsmall {\n font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` affecting `line-height` in all browsers.\n */\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsup {\n top: -0.5em;\n}\n\nsub {\n bottom: -0.25em;\n}\n\n/* Embedded content\n ========================================================================== */\n\n/**\n * Remove border when inside `a` element in IE 8/9/10.\n */\n\nimg {\n border: 0;\n}\n\n/**\n * Correct overflow not hidden in IE 9/10/11.\n */\n\nsvg:not(:root) {\n overflow: hidden;\n}\n\n/* Grouping content\n ========================================================================== */\n\n/**\n * Address margin not present in IE 8/9 and Safari.\n */\n\nfigure {\n margin: 1em 40px;\n}\n\n/**\n * Address inconsistent styling of `hr`.\n * 1. Correct `box-sizing` set to `border-box` in Firefox.\n * 2. Correct `overflow` set to `hidden` in IE 8/9/10/11 and Edge 12.\n */\n\nhr {\n box-sizing: content-box; /* 1 */\n height: 0; /* 1 */\n overflow: visible; /* 2 */\n}\n\n/**\n * Contain overflow in all browsers.\n */\n\npre {\n overflow: auto;\n}\n\n/**\n * 1. Correct inheritance and scaling of font-size for preformatted text.\n * 2. Address odd `em`-unit font size rendering in all browsers.\n */\n\ncode,\nkbd,\npre,\nsamp {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/* Forms\n ========================================================================== */\n\n/**\n * Known limitation: by default, Chrome and Safari on OS X allow very limited\n * styling of `select`, unless a `border` property is set.\n */\n\n/**\n * 1. Correct font properties not being inherited.\n * 2. Address margins set differently in Firefox 4+, Safari, and Chrome.\n */\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font: inherit; /* 1 */\n margin: 0; /* 2 */\n}\n\n/**\n * Address `overflow` set to `hidden` in IE 8/9/10/11.\n */\n\nbutton {\n overflow: visible;\n}\n\n/**\n * Address inconsistent `text-transform` inheritance for `button` and `select`.\n * All other form control elements do not inherit `text-transform` values.\n * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.\n * Correct `select` style inheritance in Firefox.\n */\n\nbutton,\nselect {\n text-transform: none;\n}\n\n/**\n * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`\n * and `video` controls.\n * 2. Correct inability to style clickable `input` types in iOS.\n * 3. Improve usability and consistency of cursor style between image-type\n * `input` and others.\n */\n\nbutton,\nhtml input[type=\"button\"], /* 1 */\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n -webkit-appearance: button; /* 2 */\n cursor: pointer; /* 3 */\n}\n\n/**\n * Re-set default cursor for disabled elements.\n */\n\nbutton[disabled],\nhtml input[disabled] {\n cursor: default;\n}\n\n/**\n * Remove inner padding and border in Firefox 4+.\n */\n\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n border: 0;\n padding: 0;\n}\n\n/**\n * Address Firefox 4+ setting `line-height` on `input` using `!important` in\n * the UA stylesheet.\n */\n\ninput {\n line-height: normal;\n}\n\n/**\n * It's recommended that you don't attempt to style these elements.\n * Firefox's implementation doesn't respect box-sizing, padding, or width.\n *\n * 1. Address box sizing set to `content-box` in IE 8/9/10.\n * 2. Remove excess padding in IE 8/9/10.\n */\n\ninput[type=\"checkbox\"],\ninput[type=\"radio\"] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Fix the cursor style for Chrome's increment/decrement buttons. For certain\n * `font-size` values of the `input`, it causes the cursor style of the\n * decrement button to change from `default` to `text`.\n */\n\ninput[type=\"number\"]::-webkit-inner-spin-button,\ninput[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n * Address `appearance` set to `searchfield` in Safari and Chrome.\n */\n\ninput[type=\"search\"] {\n -webkit-appearance: textfield;\n}\n\n/**\n * Remove inner padding and search cancel button in Safari and Chrome on OS X.\n * Safari (but not Chrome) clips the cancel button when the search input has\n * padding (and `textfield` appearance).\n */\n\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/**\n * Define consistent border, margin, and padding.\n */\n\nfieldset {\n border: 1px solid #c0c0c0;\n margin: 0 2px;\n padding: 0.35em 0.625em 0.75em;\n}\n\n/**\n * 1. Correct `color` not being inherited in IE 8/9/10/11.\n * 2. Remove padding so people aren't caught out if they zero out fieldsets.\n */\n\nlegend {\n border: 0; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Remove default vertical scrollbar in IE 8/9/10/11.\n */\n\ntextarea {\n overflow: auto;\n}\n\n/**\n * Don't inherit the `font-weight` (applied by a rule above).\n * the default cannot safely be changed in Chrome and Safari on OS X.\n */\n\noptgroup {\n font-weight: bold;\n}\n\n/* Tables\n ========================================================================== */\n\n/**\n * Remove most spacing between table cells.\n */\n\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\n\ntd,\nth {\n padding: 0;\n}\n" + ], + "mappings": "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", + "names": [] +} \ No newline at end of file diff --git a/css/reset/expanded.css b/css/reset/expanded.css new file mode 100644 index 0000000..a62ec4d --- /dev/null +++ b/css/reset/expanded.css @@ -0,0 +1,412 @@ +/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */ +/** + * 1. Set default font family to sans-serif. + * 2. Prevent iOS and IE text size adjust after device orientation change, + * without disabling user zoom. + */ +html { + font-family: sans-serif; + /* 1 */ + -ms-text-size-adjust: 100%; + /* 2 */ + -webkit-text-size-adjust: 100%; + /* 2 */ +} + +/** + * Remove default margin. + */ +body { + margin: 0; +} + +/* HTML5 display definitions + ========================================================================== */ +/** + * Correct `block` display not defined for any HTML5 element in IE 8/9. + * Correct `block` display not defined for `details` or `summary` in IE 10/11 + * and Firefox. + * Correct `block` display not defined for `main` in IE 11. + */ +article, +aside, +details, +figcaption, +figure, +footer, +header, +main, +menu, +nav, +section, +summary { + display: block; +} + +/** + * 1. Correct `inline-block` display not defined in IE 8/9. + * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. + */ +audio, +canvas, +progress, +video { + display: inline-block; + /* 1 */ + vertical-align: baseline; + /* 2 */ +} + +/** + * Prevent modern browsers from displaying `audio` without controls. + * Remove excess height in iOS 5 devices. + */ +audio:not([controls]) { + display: none; + height: 0; +} + +/** + * Address `[hidden]` styling not present in IE 8/9/10. + * Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22. + */ +[hidden], +template { + display: none; +} + +/* Links + ========================================================================== */ +/** + * Remove the gray background color from active links in IE 10. + */ +a { + background-color: transparent; +} + +/** + * Improve readability of focused elements when they are also in an + * active/hover state. + */ +a:active, +a:hover { + outline: 0; +} + +/* Text-level semantics + ========================================================================== */ +/** + * Address inconsistent styling of `abbr[title]`. + * 1. Correct styling in Firefox 39 and Opera 12. + * 2. Correct missing styling in Chrome, Edge, IE, Opera, and Safari. + */ +abbr[title] { + border-bottom: none; + /* 1 */ + text-decoration: underline; + /* 2 */ + text-decoration: underline dotted; + /* 2 */ +} + +/** + * Address inconsistent styling of b and strong. + * 1. Correct duplicate application of `bolder` in Safari 6.0.2. + * 2. Correct style set to `bold` in Edge 12+, Safari 6.2+, and Chrome 18+. + */ +b, +strong { + font-weight: inherit; + /* 1 */ +} + +b, +strong { + font-weight: bolder; + /* 2 */ +} + +/** + * Address styling not present in Safari and Chrome. + */ +dfn { + font-style: italic; +} + +/** + * Address variable `h1` font-size and margin within `section` and `article` + * contexts in Firefox 4+, Safari, and Chrome. + */ +h1 { + font-size: 2em; + margin: 0.67em 0; +} + +/** + * Address styling not present in IE 8/9. + */ +mark { + background-color: #ff0; + color: #000; +} + +/** + * Address inconsistent and variable font size in all browsers. + */ +small { + font-size: 80%; +} + +/** + * Prevent `sub` and `sup` affecting `line-height` in all browsers. + */ +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sup { + top: -0.5em; +} + +sub { + bottom: -0.25em; +} + +/* Embedded content + ========================================================================== */ +/** + * Remove border when inside `a` element in IE 8/9/10. + */ +img { + border: 0; +} + +/** + * Correct overflow not hidden in IE 9/10/11. + */ +svg:not(:root) { + overflow: hidden; +} + +/* Grouping content + ========================================================================== */ +/** + * Address margin not present in IE 8/9 and Safari. + */ +figure { + margin: 1em 40px; +} + +/** + * Address inconsistent styling of `hr`. + * 1. Correct `box-sizing` set to `border-box` in Firefox. + * 2. Correct `overflow` set to `hidden` in IE 8/9/10/11 and Edge 12. + */ +hr { + box-sizing: content-box; + /* 1 */ + height: 0; + /* 1 */ + overflow: visible; + /* 2 */ +} + +/** + * Contain overflow in all browsers. + */ +pre { + overflow: auto; +} + +/** + * 1. Correct inheritance and scaling of font-size for preformatted text. + * 2. Address odd `em`-unit font size rendering in all browsers. + */ +code, +kbd, +pre, +samp { + font-family: monospace, monospace; + /* 1 */ + font-size: 1em; + /* 2 */ +} + +/* Forms + ========================================================================== */ +/** + * Known limitation: by default, Chrome and Safari on OS X allow very limited + * styling of `select`, unless a `border` property is set. + */ +/** + * 1. Correct font properties not being inherited. + * 2. Address margins set differently in Firefox 4+, Safari, and Chrome. + */ +button, +input, +optgroup, +select, +textarea { + font: inherit; + /* 1 */ + margin: 0; + /* 2 */ +} + +/** + * Address `overflow` set to `hidden` in IE 8/9/10/11. + */ +button { + overflow: visible; +} + +/** + * Address inconsistent `text-transform` inheritance for `button` and `select`. + * All other form control elements do not inherit `text-transform` values. + * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera. + * Correct `select` style inheritance in Firefox. + */ +button, +select { + text-transform: none; +} + +/** + * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` + * and `video` controls. + * 2. Correct inability to style clickable `input` types in iOS. + * 3. Improve usability and consistency of cursor style between image-type + * `input` and others. + */ +button, +html input[type="button"], +input[type="reset"], +input[type="submit"] { + -webkit-appearance: button; + /* 2 */ + cursor: pointer; + /* 3 */ +} + +/** + * Re-set default cursor for disabled elements. + */ +button[disabled], +html input[disabled] { + cursor: default; +} + +/** + * Remove inner padding and border in Firefox 4+. + */ +button::-moz-focus-inner, +input::-moz-focus-inner { + border: 0; + padding: 0; +} + +/** + * Address Firefox 4+ setting `line-height` on `input` using `!important` in + * the UA stylesheet. + */ +input { + line-height: normal; +} + +/** + * It's recommended that you don't attempt to style these elements. + * Firefox's implementation doesn't respect box-sizing, padding, or width. + * + * 1. Address box sizing set to `content-box` in IE 8/9/10. + * 2. Remove excess padding in IE 8/9/10. + */ +input[type="checkbox"], +input[type="radio"] { + box-sizing: border-box; + /* 1 */ + padding: 0; + /* 2 */ +} + +/** + * Fix the cursor style for Chrome's increment/decrement buttons. For certain + * `font-size` values of the `input`, it causes the cursor style of the + * decrement button to change from `default` to `text`. + */ +input[type="number"]::-webkit-inner-spin-button, +input[type="number"]::-webkit-outer-spin-button { + height: auto; +} + +/** + * Address `appearance` set to `searchfield` in Safari and Chrome. + */ +input[type="search"] { + -webkit-appearance: textfield; +} + +/** + * Remove inner padding and search cancel button in Safari and Chrome on OS X. + * Safari (but not Chrome) clips the cancel button when the search input has + * padding (and `textfield` appearance). + */ +input[type="search"]::-webkit-search-cancel-button, +input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} + +/** + * Define consistent border, margin, and padding. + */ +fieldset { + border: 1px solid #c0c0c0; + margin: 0 2px; + padding: 0.35em 0.625em 0.75em; +} + +/** + * 1. Correct `color` not being inherited in IE 8/9/10/11. + * 2. Remove padding so people aren't caught out if they zero out fieldsets. + */ +legend { + border: 0; + /* 1 */ + padding: 0; + /* 2 */ +} + +/** + * Remove default vertical scrollbar in IE 8/9/10/11. + */ +textarea { + overflow: auto; +} + +/** + * Don't inherit the `font-weight` (applied by a rule above). + * the default cannot safely be changed in Chrome and Safari on OS X. + */ +optgroup { + font-weight: bold; +} + +/* Tables + ========================================================================== */ +/** + * Remove most spacing between table cells. + */ +table { + border-collapse: collapse; + border-spacing: 0; +} + +td, +th { + padding: 0; +} + +/*# sourceMappingURL=data:application/json;base64,ewoJInZlcnNpb24iOiAzLAoJImZpbGUiOiAiZXhwYW5kZWQuY3NzIiwKCSJzb3VyY2VzIjogWwoJCSIuLi9yZXNldC5zY3NzIgoJXSwKCSJzb3VyY2VzQ29udGVudCI6IFsKCQkiLyohIG5vcm1hbGl6ZS5jc3MgdjMuMC4zIHwgTUlUIExpY2Vuc2UgfCBnaXRodWIuY29tL25lY29sYXMvbm9ybWFsaXplLmNzcyAqL1xuXG4vKipcbiAqIDEuIFNldCBkZWZhdWx0IGZvbnQgZmFtaWx5IHRvIHNhbnMtc2VyaWYuXG4gKiAyLiBQcmV2ZW50IGlPUyBhbmQgSUUgdGV4dCBzaXplIGFkanVzdCBhZnRlciBkZXZpY2Ugb3JpZW50YXRpb24gY2hhbmdlLFxuICogICAgd2l0aG91dCBkaXNhYmxpbmcgdXNlciB6b29tLlxuICovXG5cbmh0bWwge1xuICBmb250LWZhbWlseTogc2Fucy1zZXJpZjsgLyogMSAqL1xuICAtbXMtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMiAqL1xuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBSZW1vdmUgZGVmYXVsdCBtYXJnaW4uXG4gKi9cblxuYm9keSB7XG4gIG1hcmdpbjogMDtcbiAgLy8gZm9udC1zaXplOiAxMnB4O1xufVxuXG4vKiBIVE1MNSBkaXNwbGF5IGRlZmluaXRpb25zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBhbnkgSFRNTDUgZWxlbWVudCBpbiBJRSA4LzkuXG4gKiBDb3JyZWN0IGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBmb3IgYGRldGFpbHNgIG9yIGBzdW1tYXJ5YCBpbiBJRSAxMC8xMVxuICogYW5kIEZpcmVmb3guXG4gKiBDb3JyZWN0IGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBmb3IgYG1haW5gIGluIElFIDExLlxuICovXG5cbmFydGljbGUsXG5hc2lkZSxcbmRldGFpbHMsXG5maWdjYXB0aW9uLFxuZmlndXJlLFxuZm9vdGVyLFxuaGVhZGVyLFxubWFpbixcbm1lbnUsXG5uYXYsXG5zZWN0aW9uLFxuc3VtbWFyeSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgYGlubGluZS1ibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBpbiBJRSA4LzkuXG4gKiAyLiBOb3JtYWxpemUgdmVydGljYWwgYWxpZ25tZW50IG9mIGBwcm9ncmVzc2AgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgT3BlcmEuXG4gKi9cblxuYXVkaW8sXG5jYW52YXMsXG5wcm9ncmVzcyxcbnZpZGVvIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrOyAvKiAxICovXG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsgLyogMiAqL1xufVxuXG4vKipcbiAqIFByZXZlbnQgbW9kZXJuIGJyb3dzZXJzIGZyb20gZGlzcGxheWluZyBgYXVkaW9gIHdpdGhvdXQgY29udHJvbHMuXG4gKiBSZW1vdmUgZXhjZXNzIGhlaWdodCBpbiBpT1MgNSBkZXZpY2VzLlxuICovXG5cbmF1ZGlvOm5vdChbY29udHJvbHNdKSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGhlaWdodDogMDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIGBbaGlkZGVuXWAgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkvMTAuXG4gKiBIaWRlIHRoZSBgdGVtcGxhdGVgIGVsZW1lbnQgaW4gSUUgOC85LzEwLzExLCBTYWZhcmksIGFuZCBGaXJlZm94IDwgMjIuXG4gKi9cblxuW2hpZGRlbl0sXG50ZW1wbGF0ZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qIExpbmtzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSB0aGUgZ3JheSBiYWNrZ3JvdW5kIGNvbG9yIGZyb20gYWN0aXZlIGxpbmtzIGluIElFIDEwLlxuICovXG5cbmEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLyoqXG4gKiBJbXByb3ZlIHJlYWRhYmlsaXR5IG9mIGZvY3VzZWQgZWxlbWVudHMgd2hlbiB0aGV5IGFyZSBhbHNvIGluIGFuXG4gKiBhY3RpdmUvaG92ZXIgc3RhdGUuXG4gKi9cblxuYTphY3RpdmUsXG5hOmhvdmVyIHtcbiAgb3V0bGluZTogMDtcbn1cblxuLyogVGV4dC1sZXZlbCBzZW1hbnRpY3NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQWRkcmVzcyBpbmNvbnNpc3RlbnQgc3R5bGluZyBvZiBgYWJiclt0aXRsZV1gLlxuICogMS4gQ29ycmVjdCBzdHlsaW5nIGluIEZpcmVmb3ggMzkgYW5kIE9wZXJhIDEyLlxuICogMi4gQ29ycmVjdCBtaXNzaW5nIHN0eWxpbmcgaW4gQ2hyb21lLCBFZGdlLCBJRSwgT3BlcmEsIGFuZCBTYWZhcmkuXG4gKi9cblxuYWJiclt0aXRsZV0ge1xuICBib3JkZXItYm90dG9tOiBub25lOyAvKiAxICovXG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyAvKiAyICovXG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDsgLyogMiAqL1xufVxuXG4vKipcbiAqIEFkZHJlc3MgaW5jb25zaXN0ZW50IHN0eWxpbmcgb2YgYiBhbmQgc3Ryb25nLlxuICogMS4gQ29ycmVjdCBkdXBsaWNhdGUgYXBwbGljYXRpb24gb2YgYGJvbGRlcmAgaW4gU2FmYXJpIDYuMC4yLlxuICogMi4gQ29ycmVjdCBzdHlsZSBzZXQgdG8gYGJvbGRgIGluIEVkZ2UgMTIrLCBTYWZhcmkgNi4yKywgYW5kIENocm9tZSAxOCsuXG4gKi9cblxuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBpbmhlcml0OyAvKiAxICovXG59XG5cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogYm9sZGVyOyAvKiAyICovXG59XG5cbi8qKlxuICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIFNhZmFyaSBhbmQgQ2hyb21lLlxuICovXG5cbmRmbiB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuLyoqXG4gKiBBZGRyZXNzIHZhcmlhYmxlIGBoMWAgZm9udC1zaXplIGFuZCBtYXJnaW4gd2l0aGluIGBzZWN0aW9uYCBhbmQgYGFydGljbGVgXG4gKiBjb250ZXh0cyBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4gKi9cblxuaDEge1xuICBmb250LXNpemU6IDJlbTtcbiAgbWFyZ2luOiAwLjY3ZW0gMDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LlxuICovXG5cbm1hcmsge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmYwO1xuICBjb2xvcjogIzAwMDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIGluY29uc2lzdGVudCBhbmQgdmFyaWFibGUgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogODAlO1xufVxuXG4vKipcbiAqIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGFmZmVjdGluZyBgbGluZS1oZWlnaHRgIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5zdWIsXG5zdXAge1xuICBmb250LXNpemU6IDc1JTtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG5zdXAge1xuICB0b3A6IC0wLjVlbTtcbn1cblxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtO1xufVxuXG4vKiBFbWJlZGRlZCBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSBib3JkZXIgd2hlbiBpbnNpZGUgYGFgIGVsZW1lbnQgaW4gSUUgOC85LzEwLlxuICovXG5cbmltZyB7XG4gIGJvcmRlcjogMDtcbn1cblxuLyoqXG4gKiBDb3JyZWN0IG92ZXJmbG93IG5vdCBoaWRkZW4gaW4gSUUgOS8xMC8xMS5cbiAqL1xuXG5zdmc6bm90KDpyb290KSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi8qIEdyb3VwaW5nIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQWRkcmVzcyBtYXJnaW4gbm90IHByZXNlbnQgaW4gSUUgOC85IGFuZCBTYWZhcmkuXG4gKi9cblxuZmlndXJlIHtcbiAgbWFyZ2luOiAxZW0gNDBweDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIGluY29uc2lzdGVudCBzdHlsaW5nIG9mIGBocmAuXG4gKiAxLiBDb3JyZWN0IGBib3gtc2l6aW5nYCBzZXQgdG8gYGJvcmRlci1ib3hgIGluIEZpcmVmb3guXG4gKiAyLiBDb3JyZWN0IGBvdmVyZmxvd2Agc2V0IHRvIGBoaWRkZW5gIGluIElFIDgvOS8xMC8xMSBhbmQgRWRnZSAxMi5cbiAqL1xuXG5ociB7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94OyAvKiAxICovXG4gIGhlaWdodDogMDsgLyogMSAqL1xuICBvdmVyZmxvdzogdmlzaWJsZTsgLyogMiAqL1xufVxuXG4vKipcbiAqIENvbnRhaW4gb3ZlcmZsb3cgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnByZSB7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udC1zaXplIGZvciBwcmVmb3JtYXR0ZWQgdGV4dC5cbiAqIDIuIEFkZHJlc3Mgb2RkIGBlbWAtdW5pdCBmb250IHNpemUgcmVuZGVyaW5nIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5jb2RlLFxua2JkLFxucHJlLFxuc2FtcCB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTsgLyogMSAqL1xuICBmb250LXNpemU6IDFlbTsgLyogMiAqL1xufVxuXG4vKiBGb3Jtc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBLbm93biBsaW1pdGF0aW9uOiBieSBkZWZhdWx0LCBDaHJvbWUgYW5kIFNhZmFyaSBvbiBPUyBYIGFsbG93IHZlcnkgbGltaXRlZFxuICogc3R5bGluZyBvZiBgc2VsZWN0YCwgdW5sZXNzIGEgYGJvcmRlcmAgcHJvcGVydHkgaXMgc2V0LlxuICovXG5cbi8qKlxuICogMS4gQ29ycmVjdCBmb250IHByb3BlcnRpZXMgbm90IGJlaW5nIGluaGVyaXRlZC5cbiAqIDIuIEFkZHJlc3MgbWFyZ2lucyBzZXQgZGlmZmVyZW50bHkgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxuICovXG5cbmJ1dHRvbixcbmlucHV0LFxub3B0Z3JvdXAsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gIGZvbnQ6IGluaGVyaXQ7IC8qIDEgKi9cbiAgbWFyZ2luOiAwOyAvKiAyICovXG59XG5cbi8qKlxuICogQWRkcmVzcyBgb3ZlcmZsb3dgIHNldCB0byBgaGlkZGVuYCBpbiBJRSA4LzkvMTAvMTEuXG4gKi9cblxuYnV0dG9uIHtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG5cbi8qKlxuICogQWRkcmVzcyBpbmNvbnNpc3RlbnQgYHRleHQtdHJhbnNmb3JtYCBpbmhlcml0YW5jZSBmb3IgYGJ1dHRvbmAgYW5kIGBzZWxlY3RgLlxuICogQWxsIG90aGVyIGZvcm0gY29udHJvbCBlbGVtZW50cyBkbyBub3QgaW5oZXJpdCBgdGV4dC10cmFuc2Zvcm1gIHZhbHVlcy5cbiAqIENvcnJlY3QgYGJ1dHRvbmAgc3R5bGUgaW5oZXJpdGFuY2UgaW4gRmlyZWZveCwgSUUgOC85LzEwLzExLCBhbmQgT3BlcmEuXG4gKiBDb3JyZWN0IGBzZWxlY3RgIHN0eWxlIGluaGVyaXRhbmNlIGluIEZpcmVmb3guXG4gKi9cblxuYnV0dG9uLFxuc2VsZWN0IHtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbi8qKlxuICogMS4gQXZvaWQgdGhlIFdlYktpdCBidWcgaW4gQW5kcm9pZCA0LjAuKiB3aGVyZSAoMikgZGVzdHJveXMgbmF0aXZlIGBhdWRpb2BcbiAqICAgIGFuZCBgdmlkZW9gIGNvbnRyb2xzLlxuICogMi4gQ29ycmVjdCBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIGBpbnB1dGAgdHlwZXMgaW4gaU9TLlxuICogMy4gSW1wcm92ZSB1c2FiaWxpdHkgYW5kIGNvbnNpc3RlbmN5IG9mIGN1cnNvciBzdHlsZSBiZXR3ZWVuIGltYWdlLXR5cGVcbiAqICAgIGBpbnB1dGAgYW5kIG90aGVycy5cbiAqL1xuXG5idXR0b24sXG5odG1sIGlucHV0W3R5cGU9XCJidXR0b25cIl0sIC8qIDEgKi9cbmlucHV0W3R5cGU9XCJyZXNldFwiXSxcbmlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjsgLyogMiAqL1xuICBjdXJzb3I6IHBvaW50ZXI7IC8qIDMgKi9cbn1cblxuLyoqXG4gKiBSZS1zZXQgZGVmYXVsdCBjdXJzb3IgZm9yIGRpc2FibGVkIGVsZW1lbnRzLlxuICovXG5cbmJ1dHRvbltkaXNhYmxlZF0sXG5odG1sIGlucHV0W2Rpc2FibGVkXSB7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cblxuLyoqXG4gKiBSZW1vdmUgaW5uZXIgcGFkZGluZyBhbmQgYm9yZGVyIGluIEZpcmVmb3ggNCsuXG4gKi9cblxuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuaW5wdXQ6Oi1tb3otZm9jdXMtaW5uZXIge1xuICBib3JkZXI6IDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi8qKlxuICogQWRkcmVzcyBGaXJlZm94IDQrIHNldHRpbmcgYGxpbmUtaGVpZ2h0YCBvbiBgaW5wdXRgIHVzaW5nIGAhaW1wb3J0YW50YCBpblxuICogdGhlIFVBIHN0eWxlc2hlZXQuXG4gKi9cblxuaW5wdXQge1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xufVxuXG4vKipcbiAqIEl0J3MgcmVjb21tZW5kZWQgdGhhdCB5b3UgZG9uJ3QgYXR0ZW1wdCB0byBzdHlsZSB0aGVzZSBlbGVtZW50cy5cbiAqIEZpcmVmb3gncyBpbXBsZW1lbnRhdGlvbiBkb2Vzbid0IHJlc3BlY3QgYm94LXNpemluZywgcGFkZGluZywgb3Igd2lkdGguXG4gKlxuICogMS4gQWRkcmVzcyBib3ggc2l6aW5nIHNldCB0byBgY29udGVudC1ib3hgIGluIElFIDgvOS8xMC5cbiAqIDIuIFJlbW92ZSBleGNlc3MgcGFkZGluZyBpbiBJRSA4LzkvMTAuXG4gKi9cblxuaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdLFxuaW5wdXRbdHlwZT1cInJhZGlvXCJdIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogMSAqL1xuICBwYWRkaW5nOiAwOyAvKiAyICovXG59XG5cbi8qKlxuICogRml4IHRoZSBjdXJzb3Igc3R5bGUgZm9yIENocm9tZSdzIGluY3JlbWVudC9kZWNyZW1lbnQgYnV0dG9ucy4gRm9yIGNlcnRhaW5cbiAqIGBmb250LXNpemVgIHZhbHVlcyBvZiB0aGUgYGlucHV0YCwgaXQgY2F1c2VzIHRoZSBjdXJzb3Igc3R5bGUgb2YgdGhlXG4gKiBkZWNyZW1lbnQgYnV0dG9uIHRvIGNoYW5nZSBmcm9tIGBkZWZhdWx0YCB0byBgdGV4dGAuXG4gKi9cblxuaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcbmlucHV0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbi8qKlxuICogQWRkcmVzcyBgYXBwZWFyYW5jZWAgc2V0IHRvIGBzZWFyY2hmaWVsZGAgaW4gU2FmYXJpIGFuZCBDaHJvbWUuXG4gKi9cblxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xufVxuXG4vKipcbiAqIFJlbW92ZSBpbm5lciBwYWRkaW5nIGFuZCBzZWFyY2ggY2FuY2VsIGJ1dHRvbiBpbiBTYWZhcmkgYW5kIENocm9tZSBvbiBPUyBYLlxuICogU2FmYXJpIChidXQgbm90IENocm9tZSkgY2xpcHMgdGhlIGNhbmNlbCBidXR0b24gd2hlbiB0aGUgc2VhcmNoIGlucHV0IGhhc1xuICogcGFkZGluZyAoYW5kIGB0ZXh0ZmllbGRgIGFwcGVhcmFuY2UpLlxuICovXG5cbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xufVxuXG4vKipcbiAqIERlZmluZSBjb25zaXN0ZW50IGJvcmRlciwgbWFyZ2luLCBhbmQgcGFkZGluZy5cbiAqL1xuXG5maWVsZHNldCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjMGMwYzA7XG4gIG1hcmdpbjogMCAycHg7XG4gIHBhZGRpbmc6IDAuMzVlbSAwLjYyNWVtIDAuNzVlbTtcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IGBjb2xvcmAgbm90IGJlaW5nIGluaGVyaXRlZCBpbiBJRSA4LzkvMTAvMTEuXG4gKiAyLiBSZW1vdmUgcGFkZGluZyBzbyBwZW9wbGUgYXJlbid0IGNhdWdodCBvdXQgaWYgdGhleSB6ZXJvIG91dCBmaWVsZHNldHMuXG4gKi9cblxubGVnZW5kIHtcbiAgYm9yZGVyOiAwOyAvKiAxICovXG4gIHBhZGRpbmc6IDA7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBSZW1vdmUgZGVmYXVsdCB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUUgOC85LzEwLzExLlxuICovXG5cbnRleHRhcmVhIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi8qKlxuICogRG9uJ3QgaW5oZXJpdCB0aGUgYGZvbnQtd2VpZ2h0YCAoYXBwbGllZCBieSBhIHJ1bGUgYWJvdmUpLlxuICogdGhlIGRlZmF1bHQgY2Fubm90IHNhZmVseSBiZSBjaGFuZ2VkIGluIENocm9tZSBhbmQgU2FmYXJpIG9uIE9TIFguXG4gKi9cblxub3B0Z3JvdXAge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLyogVGFibGVzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSBtb3N0IHNwYWNpbmcgYmV0d2VlbiB0YWJsZSBjZWxscy5cbiAqL1xuXG50YWJsZSB7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIGJvcmRlci1zcGFjaW5nOiAwO1xufVxuXG50ZCxcbnRoIHtcbiAgcGFkZGluZzogMDtcbn1cbiIKCV0sCgkibWFwcGluZ3MiOiAiQUFBQSw0RUFBNEU7QUFFNUU7Ozs7R0FJRztBQUVILElBQUksQ0FBQztFQUNILFdBQVcsRUFBRSxVQUFXO0VBQUUsT0FBTztFQUNqQyxvQkFBb0IsRUFBRSxJQUFLO0VBQUUsT0FBTztFQUNwQyx3QkFBd0IsRUFBRSxJQUFLO0VBQUUsT0FBTztDQUN6Qzs7QUFFRDs7R0FFRztBQUVILElBQUksQ0FBQztFQUNILE1BQU0sRUFBRSxDQUFFO0NBRVg7O0FBRUQ7Z0ZBQ2dGO0FBRWhGOzs7OztHQUtHO0FBRUgsT0FBTztBQUNQLEtBQUs7QUFDTCxPQUFPO0FBQ1AsVUFBVTtBQUNWLE1BQU07QUFDTixNQUFNO0FBQ04sTUFBTTtBQUNOLElBQUk7QUFDSixJQUFJO0FBQ0osR0FBRztB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 */ \ No newline at end of file diff --git a/css/reset/expanded.css.map b/css/reset/expanded.css.map new file mode 100644 index 0000000..67f00a3 --- /dev/null +++ b/css/reset/expanded.css.map @@ -0,0 +1,12 @@ +{ + "version": 3, + "file": "expanded.css", + "sources": [ + "../reset.scss" + ], + "sourcesContent": [ + "/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */\n\n/**\n * 1. Set default font family to sans-serif.\n * 2. Prevent iOS and IE text size adjust after device orientation change,\n * without disabling user zoom.\n */\n\nhtml {\n font-family: sans-serif; /* 1 */\n -ms-text-size-adjust: 100%; /* 2 */\n -webkit-text-size-adjust: 100%; /* 2 */\n}\n\n/**\n * Remove default margin.\n */\n\nbody {\n margin: 0;\n // font-size: 12px;\n}\n\n/* HTML5 display definitions\n ========================================================================== */\n\n/**\n * Correct `block` display not defined for any HTML5 element in IE 8/9.\n * Correct `block` display not defined for `details` or `summary` in IE 10/11\n * and Firefox.\n * Correct `block` display not defined for `main` in IE 11.\n */\n\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nmain,\nmenu,\nnav,\nsection,\nsummary {\n display: block;\n}\n\n/**\n * 1. Correct `inline-block` display not defined in IE 8/9.\n * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.\n */\n\naudio,\ncanvas,\nprogress,\nvideo {\n display: inline-block; /* 1 */\n vertical-align: baseline; /* 2 */\n}\n\n/**\n * Prevent modern browsers from displaying `audio` without controls.\n * Remove excess height in iOS 5 devices.\n */\n\naudio:not([controls]) {\n display: none;\n height: 0;\n}\n\n/**\n * Address `[hidden]` styling not present in IE 8/9/10.\n * Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22.\n */\n\n[hidden],\ntemplate {\n display: none;\n}\n\n/* Links\n ========================================================================== */\n\n/**\n * Remove the gray background color from active links in IE 10.\n */\n\na {\n background-color: transparent;\n}\n\n/**\n * Improve readability of focused elements when they are also in an\n * active/hover state.\n */\n\na:active,\na:hover {\n outline: 0;\n}\n\n/* Text-level semantics\n ========================================================================== */\n\n/**\n * Address inconsistent styling of `abbr[title]`.\n * 1. Correct styling in Firefox 39 and Opera 12.\n * 2. Correct missing styling in Chrome, Edge, IE, Opera, and Safari.\n */\n\nabbr[title] {\n border-bottom: none; /* 1 */\n text-decoration: underline; /* 2 */\n text-decoration: underline dotted; /* 2 */\n}\n\n/**\n * Address inconsistent styling of b and strong.\n * 1. Correct duplicate application of `bolder` in Safari 6.0.2.\n * 2. Correct style set to `bold` in Edge 12+, Safari 6.2+, and Chrome 18+.\n */\n\nb,\nstrong {\n font-weight: inherit; /* 1 */\n}\n\nb,\nstrong {\n font-weight: bolder; /* 2 */\n}\n\n/**\n * Address styling not present in Safari and Chrome.\n */\n\ndfn {\n font-style: italic;\n}\n\n/**\n * Address variable `h1` font-size and margin within `section` and `article`\n * contexts in Firefox 4+, Safari, and Chrome.\n */\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n/**\n * Address styling not present in IE 8/9.\n */\n\nmark {\n background-color: #ff0;\n color: #000;\n}\n\n/**\n * Address inconsistent and variable font size in all browsers.\n */\n\nsmall {\n font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` affecting `line-height` in all browsers.\n */\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsup {\n top: -0.5em;\n}\n\nsub {\n bottom: -0.25em;\n}\n\n/* Embedded content\n ========================================================================== */\n\n/**\n * Remove border when inside `a` element in IE 8/9/10.\n */\n\nimg {\n border: 0;\n}\n\n/**\n * Correct overflow not hidden in IE 9/10/11.\n */\n\nsvg:not(:root) {\n overflow: hidden;\n}\n\n/* Grouping content\n ========================================================================== */\n\n/**\n * Address margin not present in IE 8/9 and Safari.\n */\n\nfigure {\n margin: 1em 40px;\n}\n\n/**\n * Address inconsistent styling of `hr`.\n * 1. Correct `box-sizing` set to `border-box` in Firefox.\n * 2. Correct `overflow` set to `hidden` in IE 8/9/10/11 and Edge 12.\n */\n\nhr {\n box-sizing: content-box; /* 1 */\n height: 0; /* 1 */\n overflow: visible; /* 2 */\n}\n\n/**\n * Contain overflow in all browsers.\n */\n\npre {\n overflow: auto;\n}\n\n/**\n * 1. Correct inheritance and scaling of font-size for preformatted text.\n * 2. Address odd `em`-unit font size rendering in all browsers.\n */\n\ncode,\nkbd,\npre,\nsamp {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/* Forms\n ========================================================================== */\n\n/**\n * Known limitation: by default, Chrome and Safari on OS X allow very limited\n * styling of `select`, unless a `border` property is set.\n */\n\n/**\n * 1. Correct font properties not being inherited.\n * 2. Address margins set differently in Firefox 4+, Safari, and Chrome.\n */\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font: inherit; /* 1 */\n margin: 0; /* 2 */\n}\n\n/**\n * Address `overflow` set to `hidden` in IE 8/9/10/11.\n */\n\nbutton {\n overflow: visible;\n}\n\n/**\n * Address inconsistent `text-transform` inheritance for `button` and `select`.\n * All other form control elements do not inherit `text-transform` values.\n * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.\n * Correct `select` style inheritance in Firefox.\n */\n\nbutton,\nselect {\n text-transform: none;\n}\n\n/**\n * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`\n * and `video` controls.\n * 2. Correct inability to style clickable `input` types in iOS.\n * 3. Improve usability and consistency of cursor style between image-type\n * `input` and others.\n */\n\nbutton,\nhtml input[type=\"button\"], /* 1 */\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n -webkit-appearance: button; /* 2 */\n cursor: pointer; /* 3 */\n}\n\n/**\n * Re-set default cursor for disabled elements.\n */\n\nbutton[disabled],\nhtml input[disabled] {\n cursor: default;\n}\n\n/**\n * Remove inner padding and border in Firefox 4+.\n */\n\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n border: 0;\n padding: 0;\n}\n\n/**\n * Address Firefox 4+ setting `line-height` on `input` using `!important` in\n * the UA stylesheet.\n */\n\ninput {\n line-height: normal;\n}\n\n/**\n * It's recommended that you don't attempt to style these elements.\n * Firefox's implementation doesn't respect box-sizing, padding, or width.\n *\n * 1. Address box sizing set to `content-box` in IE 8/9/10.\n * 2. Remove excess padding in IE 8/9/10.\n */\n\ninput[type=\"checkbox\"],\ninput[type=\"radio\"] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Fix the cursor style for Chrome's increment/decrement buttons. For certain\n * `font-size` values of the `input`, it causes the cursor style of the\n * decrement button to change from `default` to `text`.\n */\n\ninput[type=\"number\"]::-webkit-inner-spin-button,\ninput[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n * Address `appearance` set to `searchfield` in Safari and Chrome.\n */\n\ninput[type=\"search\"] {\n -webkit-appearance: textfield;\n}\n\n/**\n * Remove inner padding and search cancel button in Safari and Chrome on OS X.\n * Safari (but not Chrome) clips the cancel button when the search input has\n * padding (and `textfield` appearance).\n */\n\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/**\n * Define consistent border, margin, and padding.\n */\n\nfieldset {\n border: 1px solid #c0c0c0;\n margin: 0 2px;\n padding: 0.35em 0.625em 0.75em;\n}\n\n/**\n * 1. Correct `color` not being inherited in IE 8/9/10/11.\n * 2. Remove padding so people aren't caught out if they zero out fieldsets.\n */\n\nlegend {\n border: 0; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Remove default vertical scrollbar in IE 8/9/10/11.\n */\n\ntextarea {\n overflow: auto;\n}\n\n/**\n * Don't inherit the `font-weight` (applied by a rule above).\n * the default cannot safely be changed in Chrome and Safari on OS X.\n */\n\noptgroup {\n font-weight: bold;\n}\n\n/* Tables\n ========================================================================== */\n\n/**\n * Remove most spacing between table cells.\n */\n\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\n\ntd,\nth {\n padding: 0;\n}\n" + ], + "mappings": "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", + "names": [] +} \ No newline at end of file diff --git a/css/reset/min.css b/css/reset/min.css new file mode 100644 index 0000000..7580a52 --- /dev/null +++ b/css/reset/min.css @@ -0,0 +1,3 @@ +/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:inherit}b,strong{font-weight:bolder}dfn{font-style:italic}h1{font-size:2em;margin:0.67em 0}mark{background-color:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{box-sizing:content-box;height:0;overflow:visible}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace, monospace;font-size:1em}button,input,optgroup,select,textarea{font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0} + +/*# sourceMappingURL=data:application/json;base64,ewoJInZlcnNpb24iOiAzLAoJImZpbGUiOiAibWluLmNzcyIsCgkic291cmNlcyI6IFsKCQkiLi4vcmVzZXQuc2NzcyIKCV0sCgkic291cmNlc0NvbnRlbnQiOiBbCgkJIi8qISBub3JtYWxpemUuY3NzIHYzLjAuMyB8IE1JVCBMaWNlbnNlIHwgZ2l0aHViLmNvbS9uZWNvbGFzL25vcm1hbGl6ZS5jc3MgKi9cblxuLyoqXG4gKiAxLiBTZXQgZGVmYXVsdCBmb250IGZhbWlseSB0byBzYW5zLXNlcmlmLlxuICogMi4gUHJldmVudCBpT1MgYW5kIElFIHRleHQgc2l6ZSBhZGp1c3QgYWZ0ZXIgZGV2aWNlIG9yaWVudGF0aW9uIGNoYW5nZSxcbiAqICAgIHdpdGhvdXQgZGlzYWJsaW5nIHVzZXIgem9vbS5cbiAqL1xuXG5odG1sIHtcbiAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7IC8qIDEgKi9cbiAgLW1zLXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDIgKi9cbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAyICovXG59XG5cbi8qKlxuICogUmVtb3ZlIGRlZmF1bHQgbWFyZ2luLlxuICovXG5cbmJvZHkge1xuICBtYXJnaW46IDA7XG4gIC8vIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLyogSFRNTDUgZGlzcGxheSBkZWZpbml0aW9uc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBDb3JyZWN0IGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBmb3IgYW55IEhUTUw1IGVsZW1lbnQgaW4gSUUgOC85LlxuICogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGBkZXRhaWxzYCBvciBgc3VtbWFyeWAgaW4gSUUgMTAvMTFcbiAqIGFuZCBGaXJlZm94LlxuICogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGBtYWluYCBpbiBJRSAxMS5cbiAqL1xuXG5hcnRpY2xlLFxuYXNpZGUsXG5kZXRhaWxzLFxuZmlnY2FwdGlvbixcbmZpZ3VyZSxcbmZvb3RlcixcbmhlYWRlcixcbm1haW4sXG5tZW51LFxubmF2LFxuc2VjdGlvbixcbnN1bW1hcnkge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IGBpbmxpbmUtYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgaW4gSUUgOC85LlxuICogMi4gTm9ybWFsaXplIHZlcnRpY2FsIGFsaWdubWVudCBvZiBgcHJvZ3Jlc3NgIGluIENocm9tZSwgRmlyZWZveCwgYW5kIE9wZXJhLlxuICovXG5cbmF1ZGlvLFxuY2FudmFzLFxucHJvZ3Jlc3MsXG52aWRlbyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jazsgLyogMSAqL1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBQcmV2ZW50IG1vZGVybiBicm93c2VycyBmcm9tIGRpc3BsYXlpbmcgYGF1ZGlvYCB3aXRob3V0IGNvbnRyb2xzLlxuICogUmVtb3ZlIGV4Y2VzcyBoZWlnaHQgaW4gaU9TIDUgZGV2aWNlcy5cbiAqL1xuXG5hdWRpbzpub3QoW2NvbnRyb2xzXSkge1xuICBkaXNwbGF5OiBub25lO1xuICBoZWlnaHQ6IDA7XG59XG5cbi8qKlxuICogQWRkcmVzcyBgW2hpZGRlbl1gIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LzEwLlxuICogSGlkZSB0aGUgYHRlbXBsYXRlYCBlbGVtZW50IGluIElFIDgvOS8xMC8xMSwgU2FmYXJpLCBhbmQgRmlyZWZveCA8IDIyLlxuICovXG5cbltoaWRkZW5dLFxudGVtcGxhdGUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4vKiBMaW5rc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGdyYXkgYmFja2dyb3VuZCBjb2xvciBmcm9tIGFjdGl2ZSBsaW5rcyBpbiBJRSAxMC5cbiAqL1xuXG5hIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi8qKlxuICogSW1wcm92ZSByZWFkYWJpbGl0eSBvZiBmb2N1c2VkIGVsZW1lbnRzIHdoZW4gdGhleSBhcmUgYWxzbyBpbiBhblxuICogYWN0aXZlL2hvdmVyIHN0YXRlLlxuICovXG5cbmE6YWN0aXZlLFxuYTpob3ZlciB7XG4gIG91dGxpbmU6IDA7XG59XG5cbi8qIFRleHQtbGV2ZWwgc2VtYW50aWNzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIEFkZHJlc3MgaW5jb25zaXN0ZW50IHN0eWxpbmcgb2YgYGFiYnJbdGl0bGVdYC5cbiAqIDEuIENvcnJlY3Qgc3R5bGluZyBpbiBGaXJlZm94IDM5IGFuZCBPcGVyYSAxMi5cbiAqIDIuIENvcnJlY3QgbWlzc2luZyBzdHlsaW5nIGluIENocm9tZSwgRWRnZSwgSUUsIE9wZXJhLCBhbmQgU2FmYXJpLlxuICovXG5cbmFiYnJbdGl0bGVdIHtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTsgLyogMSAqL1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgLyogMiAqL1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBBZGRyZXNzIGluY29uc2lzdGVudCBzdHlsaW5nIG9mIGIgYW5kIHN0cm9uZy5cbiAqIDEuIENvcnJlY3QgZHVwbGljYXRlIGFwcGxpY2F0aW9uIG9mIGBib2xkZXJgIGluIFNhZmFyaSA2LjAuMi5cbiAqIDIuIENvcnJlY3Qgc3R5bGUgc2V0IHRvIGBib2xkYCBpbiBFZGdlIDEyKywgU2FmYXJpIDYuMissIGFuZCBDaHJvbWUgMTgrLlxuICovXG5cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogaW5oZXJpdDsgLyogMSAqL1xufVxuXG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGRlcjsgLyogMiAqL1xufVxuXG4vKipcbiAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBTYWZhcmkgYW5kIENocm9tZS5cbiAqL1xuXG5kZm4ge1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbi8qKlxuICogQWRkcmVzcyB2YXJpYWJsZSBgaDFgIGZvbnQtc2l6ZSBhbmQgbWFyZ2luIHdpdGhpbiBgc2VjdGlvbmAgYW5kIGBhcnRpY2xlYFxuICogY29udGV4dHMgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxuICovXG5cbmgxIHtcbiAgZm9udC1zaXplOiAyZW07XG4gIG1hcmdpbjogMC42N2VtIDA7XG59XG5cbi8qKlxuICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS5cbiAqL1xuXG5tYXJrIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmMDtcbiAgY29sb3I6ICMwMDA7XG59XG5cbi8qKlxuICogQWRkcmVzcyBpbmNvbnNpc3RlbnQgYW5kIHZhcmlhYmxlIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc21hbGwge1xuICBmb250LXNpemU6IDgwJTtcbn1cblxuLyoqXG4gKiBQcmV2ZW50IGBzdWJgIGFuZCBgc3VwYCBhZmZlY3RpbmcgYGxpbmUtaGVpZ2h0YCBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc3ViLFxuc3VwIHtcbiAgZm9udC1zaXplOiA3NSU7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuc3VwIHtcbiAgdG9wOiAtMC41ZW07XG59XG5cbnN1YiB7XG4gIGJvdHRvbTogLTAuMjVlbTtcbn1cblxuLyogRW1iZWRkZWQgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgYm9yZGVyIHdoZW4gaW5zaWRlIGBhYCBlbGVtZW50IGluIElFIDgvOS8xMC5cbiAqL1xuXG5pbWcge1xuICBib3JkZXI6IDA7XG59XG5cbi8qKlxuICogQ29ycmVjdCBvdmVyZmxvdyBub3QgaGlkZGVuIGluIElFIDkvMTAvMTEuXG4gKi9cblxuc3ZnOm5vdCg6cm9vdCkge1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4vKiBHcm91cGluZyBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIEFkZHJlc3MgbWFyZ2luIG5vdCBwcmVzZW50IGluIElFIDgvOSBhbmQgU2FmYXJpLlxuICovXG5cbmZpZ3VyZSB7XG4gIG1hcmdpbjogMWVtIDQwcHg7XG59XG5cbi8qKlxuICogQWRkcmVzcyBpbmNvbnNpc3RlbnQgc3R5bGluZyBvZiBgaHJgLlxuICogMS4gQ29ycmVjdCBgYm94LXNpemluZ2Agc2V0IHRvIGBib3JkZXItYm94YCBpbiBGaXJlZm94LlxuICogMi4gQ29ycmVjdCBgb3ZlcmZsb3dgIHNldCB0byBgaGlkZGVuYCBpbiBJRSA4LzkvMTAvMTEgYW5kIEVkZ2UgMTIuXG4gKi9cblxuaHIge1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDsgLyogMSAqL1xuICBoZWlnaHQ6IDA7IC8qIDEgKi9cbiAgb3ZlcmZsb3c6IHZpc2libGU7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBDb250YWluIG92ZXJmbG93IGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5wcmUge1xuICBvdmVyZmxvdzogYXV0bztcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQtc2l6ZSBmb3IgcHJlZm9ybWF0dGVkIHRleHQuXG4gKiAyLiBBZGRyZXNzIG9kZCBgZW1gLXVuaXQgZm9udCBzaXplIHJlbmRlcmluZyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuY29kZSxcbmtiZCxcbnByZSxcbnNhbXAge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7IC8qIDEgKi9cbiAgZm9udC1zaXplOiAxZW07IC8qIDIgKi9cbn1cblxuLyogRm9ybXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogS25vd24gbGltaXRhdGlvbjogYnkgZGVmYXVsdCwgQ2hyb21lIGFuZCBTYWZhcmkgb24gT1MgWCBhbGxvdyB2ZXJ5IGxpbWl0ZWRcbiAqIHN0eWxpbmcgb2YgYHNlbGVjdGAsIHVubGVzcyBhIGBib3JkZXJgIHByb3BlcnR5IGlzIHNldC5cbiAqL1xuXG4vKipcbiAqIDEuIENvcnJlY3QgZm9udCBwcm9wZXJ0aWVzIG5vdCBiZWluZyBpbmhlcml0ZWQuXG4gKiAyLiBBZGRyZXNzIG1hcmdpbnMgc2V0IGRpZmZlcmVudGx5IGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbiAqL1xuXG5idXR0b24sXG5pbnB1dCxcbm9wdGdyb3VwLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBmb250OiBpbmhlcml0OyAvKiAxICovXG4gIG1hcmdpbjogMDsgLyogMiAqL1xufVxuXG4vKipcbiAqIEFkZHJlc3MgYG92ZXJmbG93YCBzZXQgdG8gYGhpZGRlbmAgaW4gSUUgOC85LzEwLzExLlxuICovXG5cbmJ1dHRvbiB7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgaW5jb25zaXN0ZW50IGB0ZXh0LXRyYW5zZm9ybWAgaW5oZXJpdGFuY2UgZm9yIGBidXR0b25gIGFuZCBgc2VsZWN0YC5cbiAqIEFsbCBvdGhlciBmb3JtIGNvbnRyb2wgZWxlbWVudHMgZG8gbm90IGluaGVyaXQgYHRleHQtdHJhbnNmb3JtYCB2YWx1ZXMuXG4gKiBDb3JyZWN0IGBidXR0b25gIHN0eWxlIGluaGVyaXRhbmNlIGluIEZpcmVmb3gsIElFIDgvOS8xMC8xMSwgYW5kIE9wZXJhLlxuICogQ29ycmVjdCBgc2VsZWN0YCBzdHlsZSBpbmhlcml0YW5jZSBpbiBGaXJlZm94LlxuICovXG5cbmJ1dHRvbixcbnNlbGVjdCB7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4vKipcbiAqIDEuIEF2b2lkIHRoZSBXZWJLaXQgYnVnIGluIEFuZHJvaWQgNC4wLiogd2hlcmUgKDIpIGRlc3Ryb3lzIG5hdGl2ZSBgYXVkaW9gXG4gKiAgICBhbmQgYHZpZGVvYCBjb250cm9scy5cbiAqIDIuIENvcnJlY3QgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSBgaW5wdXRgIHR5cGVzIGluIGlPUy5cbiAqIDMuIEltcHJvdmUgdXNhYmlsaXR5IGFuZCBjb25zaXN0ZW5jeSBvZiBjdXJzb3Igc3R5bGUgYmV0d2VlbiBpbWFnZS10eXBlXG4gKiAgICBgaW5wdXRgIGFuZCBvdGhlcnMuXG4gKi9cblxuYnV0dG9uLFxuaHRtbCBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdLCAvKiAxICovXG5pbnB1dFt0eXBlPVwicmVzZXRcIl0sXG5pbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8qIDIgKi9cbiAgY3Vyc29yOiBwb2ludGVyOyAvKiAzICovXG59XG5cbi8qKlxuICogUmUtc2V0IGRlZmF1bHQgY3Vyc29yIGZvciBkaXNhYmxlZCBlbGVtZW50cy5cbiAqL1xuXG5idXR0b25bZGlzYWJsZWRdLFxuaHRtbCBpbnB1dFtkaXNhYmxlZF0ge1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi8qKlxuICogUmVtb3ZlIGlubmVyIHBhZGRpbmcgYW5kIGJvcmRlciBpbiBGaXJlZm94IDQrLlxuICovXG5cbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcbmlucHV0OjotbW96LWZvY3VzLWlubmVyIHtcbiAgYm9yZGVyOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgRmlyZWZveCA0KyBzZXR0aW5nIGBsaW5lLWhlaWdodGAgb24gYGlucHV0YCB1c2luZyBgIWltcG9ydGFudGAgaW5cbiAqIHRoZSBVQSBzdHlsZXNoZWV0LlxuICovXG5cbmlucHV0IHtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbn1cblxuLyoqXG4gKiBJdCdzIHJlY29tbWVuZGVkIHRoYXQgeW91IGRvbid0IGF0dGVtcHQgdG8gc3R5bGUgdGhlc2UgZWxlbWVudHMuXG4gKiBGaXJlZm94J3MgaW1wbGVtZW50YXRpb24gZG9lc24ndCByZXNwZWN0IGJveC1zaXppbmcsIHBhZGRpbmcsIG9yIHdpZHRoLlxuICpcbiAqIDEuIEFkZHJlc3MgYm94IHNpemluZyBzZXQgdG8gYGNvbnRlbnQtYm94YCBpbiBJRSA4LzkvMTAuXG4gKiAyLiBSZW1vdmUgZXhjZXNzIHBhZGRpbmcgaW4gSUUgOC85LzEwLlxuICovXG5cbmlucHV0W3R5cGU9XCJjaGVja2JveFwiXSxcbmlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8qIDEgKi9cbiAgcGFkZGluZzogMDsgLyogMiAqL1xufVxuXG4vKipcbiAqIEZpeCB0aGUgY3Vyc29yIHN0eWxlIGZvciBDaHJvbWUncyBpbmNyZW1lbnQvZGVjcmVtZW50IGJ1dHRvbnMuIEZvciBjZXJ0YWluXG4gKiBgZm9udC1zaXplYCB2YWx1ZXMgb2YgdGhlIGBpbnB1dGAsIGl0IGNhdXNlcyB0aGUgY3Vyc29yIHN0eWxlIG9mIHRoZVxuICogZGVjcmVtZW50IGJ1dHRvbiB0byBjaGFuZ2UgZnJvbSBgZGVmYXVsdGAgdG8gYHRleHRgLlxuICovXG5cbmlucHV0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG5pbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgYGFwcGVhcmFuY2VgIHNldCB0byBgc2VhcmNoZmllbGRgIGluIFNhZmFyaSBhbmQgQ2hyb21lLlxuICovXG5cbmlucHV0W3R5cGU9XCJzZWFyY2hcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDtcbn1cblxuLyoqXG4gKiBSZW1vdmUgaW5uZXIgcGFkZGluZyBhbmQgc2VhcmNoIGNhbmNlbCBidXR0b24gaW4gU2FmYXJpIGFuZCBDaHJvbWUgb24gT1MgWC5cbiAqIFNhZmFyaSAoYnV0IG5vdCBDaHJvbWUpIGNsaXBzIHRoZSBjYW5jZWwgYnV0dG9uIHdoZW4gdGhlIHNlYXJjaCBpbnB1dCBoYXNcbiAqIHBhZGRpbmcgKGFuZCBgdGV4dGZpZWxkYCBhcHBlYXJhbmNlKS5cbiAqL1xuXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLFxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuLyoqXG4gKiBEZWZpbmUgY29uc2lzdGVudCBib3JkZXIsIG1hcmdpbiwgYW5kIHBhZGRpbmcuXG4gKi9cblxuZmllbGRzZXQge1xuICBib3JkZXI6IDFweCBzb2xpZCAjYzBjMGMwO1xuICBtYXJnaW46IDAgMnB4O1xuICBwYWRkaW5nOiAwLjM1ZW0gMC42MjVlbSAwLjc1ZW07XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCBgY29sb3JgIG5vdCBiZWluZyBpbmhlcml0ZWQgaW4gSUUgOC85LzEwLzExLlxuICogMi4gUmVtb3ZlIHBhZGRpbmcgc28gcGVvcGxlIGFyZW4ndCBjYXVnaHQgb3V0IGlmIHRoZXkgemVybyBvdXQgZmllbGRzZXRzLlxuICovXG5cbmxlZ2VuZCB7XG4gIGJvcmRlcjogMDsgLyogMSAqL1xuICBwYWRkaW5nOiAwOyAvKiAyICovXG59XG5cbi8qKlxuICogUmVtb3ZlIGRlZmF1bHQgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFIDgvOS8xMC8xMS5cbiAqL1xuXG50ZXh0YXJlYSB7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuXG4vKipcbiAqIERvbid0IGluaGVyaXQgdGhlIGBmb250LXdlaWdodGAgKGFwcGxpZWQgYnkgYSBydWxlIGFib3ZlKS5cbiAqIHRoZSBkZWZhdWx0IGNhbm5vdCBzYWZlbHkgYmUgY2hhbmdlZCBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBPUyBYLlxuICovXG5cbm9wdGdyb3VwIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi8qIFRhYmxlc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgbW9zdCBzcGFjaW5nIGJldHdlZW4gdGFibGUgY2VsbHMuXG4gKi9cblxudGFibGUge1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICBib3JkZXItc3BhY2luZzogMDtcbn1cblxudGQsXG50aCB7XG4gIHBhZGRpbmc6IDA7XG59XG4iCgldLAoJIm1hcHBpbmdzIjogIkFBQUEsNEVBQTRFLEFBUTVFLElBQUksQUFBQyxDQUNILFdBQVcsQ0FBRSxVQUFXLENBQ3hCLG9CQUFvQixDQUFFLElBQUssQ0FDM0Isd0JBQXdCLENBQUUsSUFBSyxDQUNoQyxBQU1ELElBQUksQUFBQyxDQUNILE1BQU0sQ0FBRSxDQUFFLENBRVgsQUFZRCxPQUFPLENBQ1AsS0FBSyxDQUNMLE9BQU8sQ0FDUCxVQUFVLENBQ1YsTUFBTSxDQUNOLE1BQU0sQ0FDTixNQUFNLENBQ04sSUFBSSxDQUNKLElBQUksQ0FDSixHQUFHLENBQ0gsT0FBTyxDQUNQLE9BQU8sQUFBQyxDQUNOLE9BQU8sQ0FBRSxLQUFNLENBQ2hCLEFBT0QsS0FBSyxDQUNMLE1BQU0sQ0FDTixRQUFRLENBQ1IsS0FB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 */ \ No newline at end of file diff --git a/css/reset/min.css.map b/css/reset/min.css.map new file mode 100644 index 0000000..25a631d --- /dev/null +++ b/css/reset/min.css.map @@ -0,0 +1,12 @@ +{ + "version": 3, + "file": "min.css", + "sources": [ + "../reset.scss" + ], + "sourcesContent": [ + "/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */\n\n/**\n * 1. Set default font family to sans-serif.\n * 2. Prevent iOS and IE text size adjust after device orientation change,\n * without disabling user zoom.\n */\n\nhtml {\n font-family: sans-serif; /* 1 */\n -ms-text-size-adjust: 100%; /* 2 */\n -webkit-text-size-adjust: 100%; /* 2 */\n}\n\n/**\n * Remove default margin.\n */\n\nbody {\n margin: 0;\n // font-size: 12px;\n}\n\n/* HTML5 display definitions\n ========================================================================== */\n\n/**\n * Correct `block` display not defined for any HTML5 element in IE 8/9.\n * Correct `block` display not defined for `details` or `summary` in IE 10/11\n * and Firefox.\n * Correct `block` display not defined for `main` in IE 11.\n */\n\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nmain,\nmenu,\nnav,\nsection,\nsummary {\n display: block;\n}\n\n/**\n * 1. Correct `inline-block` display not defined in IE 8/9.\n * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.\n */\n\naudio,\ncanvas,\nprogress,\nvideo {\n display: inline-block; /* 1 */\n vertical-align: baseline; /* 2 */\n}\n\n/**\n * Prevent modern browsers from displaying `audio` without controls.\n * Remove excess height in iOS 5 devices.\n */\n\naudio:not([controls]) {\n display: none;\n height: 0;\n}\n\n/**\n * Address `[hidden]` styling not present in IE 8/9/10.\n * Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22.\n */\n\n[hidden],\ntemplate {\n display: none;\n}\n\n/* Links\n ========================================================================== */\n\n/**\n * Remove the gray background color from active links in IE 10.\n */\n\na {\n background-color: transparent;\n}\n\n/**\n * Improve readability of focused elements when they are also in an\n * active/hover state.\n */\n\na:active,\na:hover {\n outline: 0;\n}\n\n/* Text-level semantics\n ========================================================================== */\n\n/**\n * Address inconsistent styling of `abbr[title]`.\n * 1. Correct styling in Firefox 39 and Opera 12.\n * 2. Correct missing styling in Chrome, Edge, IE, Opera, and Safari.\n */\n\nabbr[title] {\n border-bottom: none; /* 1 */\n text-decoration: underline; /* 2 */\n text-decoration: underline dotted; /* 2 */\n}\n\n/**\n * Address inconsistent styling of b and strong.\n * 1. Correct duplicate application of `bolder` in Safari 6.0.2.\n * 2. Correct style set to `bold` in Edge 12+, Safari 6.2+, and Chrome 18+.\n */\n\nb,\nstrong {\n font-weight: inherit; /* 1 */\n}\n\nb,\nstrong {\n font-weight: bolder; /* 2 */\n}\n\n/**\n * Address styling not present in Safari and Chrome.\n */\n\ndfn {\n font-style: italic;\n}\n\n/**\n * Address variable `h1` font-size and margin within `section` and `article`\n * contexts in Firefox 4+, Safari, and Chrome.\n */\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n/**\n * Address styling not present in IE 8/9.\n */\n\nmark {\n background-color: #ff0;\n color: #000;\n}\n\n/**\n * Address inconsistent and variable font size in all browsers.\n */\n\nsmall {\n font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` affecting `line-height` in all browsers.\n */\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsup {\n top: -0.5em;\n}\n\nsub {\n bottom: -0.25em;\n}\n\n/* Embedded content\n ========================================================================== */\n\n/**\n * Remove border when inside `a` element in IE 8/9/10.\n */\n\nimg {\n border: 0;\n}\n\n/**\n * Correct overflow not hidden in IE 9/10/11.\n */\n\nsvg:not(:root) {\n overflow: hidden;\n}\n\n/* Grouping content\n ========================================================================== */\n\n/**\n * Address margin not present in IE 8/9 and Safari.\n */\n\nfigure {\n margin: 1em 40px;\n}\n\n/**\n * Address inconsistent styling of `hr`.\n * 1. Correct `box-sizing` set to `border-box` in Firefox.\n * 2. Correct `overflow` set to `hidden` in IE 8/9/10/11 and Edge 12.\n */\n\nhr {\n box-sizing: content-box; /* 1 */\n height: 0; /* 1 */\n overflow: visible; /* 2 */\n}\n\n/**\n * Contain overflow in all browsers.\n */\n\npre {\n overflow: auto;\n}\n\n/**\n * 1. Correct inheritance and scaling of font-size for preformatted text.\n * 2. Address odd `em`-unit font size rendering in all browsers.\n */\n\ncode,\nkbd,\npre,\nsamp {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/* Forms\n ========================================================================== */\n\n/**\n * Known limitation: by default, Chrome and Safari on OS X allow very limited\n * styling of `select`, unless a `border` property is set.\n */\n\n/**\n * 1. Correct font properties not being inherited.\n * 2. Address margins set differently in Firefox 4+, Safari, and Chrome.\n */\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font: inherit; /* 1 */\n margin: 0; /* 2 */\n}\n\n/**\n * Address `overflow` set to `hidden` in IE 8/9/10/11.\n */\n\nbutton {\n overflow: visible;\n}\n\n/**\n * Address inconsistent `text-transform` inheritance for `button` and `select`.\n * All other form control elements do not inherit `text-transform` values.\n * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.\n * Correct `select` style inheritance in Firefox.\n */\n\nbutton,\nselect {\n text-transform: none;\n}\n\n/**\n * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`\n * and `video` controls.\n * 2. Correct inability to style clickable `input` types in iOS.\n * 3. Improve usability and consistency of cursor style between image-type\n * `input` and others.\n */\n\nbutton,\nhtml input[type=\"button\"], /* 1 */\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n -webkit-appearance: button; /* 2 */\n cursor: pointer; /* 3 */\n}\n\n/**\n * Re-set default cursor for disabled elements.\n */\n\nbutton[disabled],\nhtml input[disabled] {\n cursor: default;\n}\n\n/**\n * Remove inner padding and border in Firefox 4+.\n */\n\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n border: 0;\n padding: 0;\n}\n\n/**\n * Address Firefox 4+ setting `line-height` on `input` using `!important` in\n * the UA stylesheet.\n */\n\ninput {\n line-height: normal;\n}\n\n/**\n * It's recommended that you don't attempt to style these elements.\n * Firefox's implementation doesn't respect box-sizing, padding, or width.\n *\n * 1. Address box sizing set to `content-box` in IE 8/9/10.\n * 2. Remove excess padding in IE 8/9/10.\n */\n\ninput[type=\"checkbox\"],\ninput[type=\"radio\"] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Fix the cursor style for Chrome's increment/decrement buttons. For certain\n * `font-size` values of the `input`, it causes the cursor style of the\n * decrement button to change from `default` to `text`.\n */\n\ninput[type=\"number\"]::-webkit-inner-spin-button,\ninput[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n * Address `appearance` set to `searchfield` in Safari and Chrome.\n */\n\ninput[type=\"search\"] {\n -webkit-appearance: textfield;\n}\n\n/**\n * Remove inner padding and search cancel button in Safari and Chrome on OS X.\n * Safari (but not Chrome) clips the cancel button when the search input has\n * padding (and `textfield` appearance).\n */\n\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/**\n * Define consistent border, margin, and padding.\n */\n\nfieldset {\n border: 1px solid #c0c0c0;\n margin: 0 2px;\n padding: 0.35em 0.625em 0.75em;\n}\n\n/**\n * 1. Correct `color` not being inherited in IE 8/9/10/11.\n * 2. Remove padding so people aren't caught out if they zero out fieldsets.\n */\n\nlegend {\n border: 0; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Remove default vertical scrollbar in IE 8/9/10/11.\n */\n\ntextarea {\n overflow: auto;\n}\n\n/**\n * Don't inherit the `font-weight` (applied by a rule above).\n * the default cannot safely be changed in Chrome and Safari on OS X.\n */\n\noptgroup {\n font-weight: bold;\n}\n\n/* Tables\n ========================================================================== */\n\n/**\n * Remove most spacing between table cells.\n */\n\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\n\ntd,\nth {\n padding: 0;\n}\n" + ], + "mappings": "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", + "names": [] +} \ No newline at end of file diff --git a/css/reset/nested.css b/css/reset/nested.css new file mode 100644 index 0000000..3160eda --- /dev/null +++ b/css/reset/nested.css @@ -0,0 +1,371 @@ +/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */ +/** + * 1. Set default font family to sans-serif. + * 2. Prevent iOS and IE text size adjust after device orientation change, + * without disabling user zoom. + */ +html { + font-family: sans-serif; + /* 1 */ + -ms-text-size-adjust: 100%; + /* 2 */ + -webkit-text-size-adjust: 100%; + /* 2 */ } + +/** + * Remove default margin. + */ +body { + margin: 0; } + +/* HTML5 display definitions + ========================================================================== */ +/** + * Correct `block` display not defined for any HTML5 element in IE 8/9. + * Correct `block` display not defined for `details` or `summary` in IE 10/11 + * and Firefox. + * Correct `block` display not defined for `main` in IE 11. + */ +article, +aside, +details, +figcaption, +figure, +footer, +header, +main, +menu, +nav, +section, +summary { + display: block; } + +/** + * 1. Correct `inline-block` display not defined in IE 8/9. + * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. + */ +audio, +canvas, +progress, +video { + display: inline-block; + /* 1 */ + vertical-align: baseline; + /* 2 */ } + +/** + * Prevent modern browsers from displaying `audio` without controls. + * Remove excess height in iOS 5 devices. + */ +audio:not([controls]) { + display: none; + height: 0; } + +/** + * Address `[hidden]` styling not present in IE 8/9/10. + * Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22. + */ +[hidden], +template { + display: none; } + +/* Links + ========================================================================== */ +/** + * Remove the gray background color from active links in IE 10. + */ +a { + background-color: transparent; } + +/** + * Improve readability of focused elements when they are also in an + * active/hover state. + */ +a:active, +a:hover { + outline: 0; } + +/* Text-level semantics + ========================================================================== */ +/** + * Address inconsistent styling of `abbr[title]`. + * 1. Correct styling in Firefox 39 and Opera 12. + * 2. Correct missing styling in Chrome, Edge, IE, Opera, and Safari. + */ +abbr[title] { + border-bottom: none; + /* 1 */ + text-decoration: underline; + /* 2 */ + text-decoration: underline dotted; + /* 2 */ } + +/** + * Address inconsistent styling of b and strong. + * 1. Correct duplicate application of `bolder` in Safari 6.0.2. + * 2. Correct style set to `bold` in Edge 12+, Safari 6.2+, and Chrome 18+. + */ +b, +strong { + font-weight: inherit; + /* 1 */ } + +b, +strong { + font-weight: bolder; + /* 2 */ } + +/** + * Address styling not present in Safari and Chrome. + */ +dfn { + font-style: italic; } + +/** + * Address variable `h1` font-size and margin within `section` and `article` + * contexts in Firefox 4+, Safari, and Chrome. + */ +h1 { + font-size: 2em; + margin: 0.67em 0; } + +/** + * Address styling not present in IE 8/9. + */ +mark { + background-color: #ff0; + color: #000; } + +/** + * Address inconsistent and variable font size in all browsers. + */ +small { + font-size: 80%; } + +/** + * Prevent `sub` and `sup` affecting `line-height` in all browsers. + */ +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; } + +sup { + top: -0.5em; } + +sub { + bottom: -0.25em; } + +/* Embedded content + ========================================================================== */ +/** + * Remove border when inside `a` element in IE 8/9/10. + */ +img { + border: 0; } + +/** + * Correct overflow not hidden in IE 9/10/11. + */ +svg:not(:root) { + overflow: hidden; } + +/* Grouping content + ========================================================================== */ +/** + * Address margin not present in IE 8/9 and Safari. + */ +figure { + margin: 1em 40px; } + +/** + * Address inconsistent styling of `hr`. + * 1. Correct `box-sizing` set to `border-box` in Firefox. + * 2. Correct `overflow` set to `hidden` in IE 8/9/10/11 and Edge 12. + */ +hr { + box-sizing: content-box; + /* 1 */ + height: 0; + /* 1 */ + overflow: visible; + /* 2 */ } + +/** + * Contain overflow in all browsers. + */ +pre { + overflow: auto; } + +/** + * 1. Correct inheritance and scaling of font-size for preformatted text. + * 2. Address odd `em`-unit font size rendering in all browsers. + */ +code, +kbd, +pre, +samp { + font-family: monospace, monospace; + /* 1 */ + font-size: 1em; + /* 2 */ } + +/* Forms + ========================================================================== */ +/** + * Known limitation: by default, Chrome and Safari on OS X allow very limited + * styling of `select`, unless a `border` property is set. + */ +/** + * 1. Correct font properties not being inherited. + * 2. Address margins set differently in Firefox 4+, Safari, and Chrome. + */ +button, +input, +optgroup, +select, +textarea { + font: inherit; + /* 1 */ + margin: 0; + /* 2 */ } + +/** + * Address `overflow` set to `hidden` in IE 8/9/10/11. + */ +button { + overflow: visible; } + +/** + * Address inconsistent `text-transform` inheritance for `button` and `select`. + * All other form control elements do not inherit `text-transform` values. + * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera. + * Correct `select` style inheritance in Firefox. + */ +button, +select { + text-transform: none; } + +/** + * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` + * and `video` controls. + * 2. Correct inability to style clickable `input` types in iOS. + * 3. Improve usability and consistency of cursor style between image-type + * `input` and others. + */ +button, +html input[type="button"], +input[type="reset"], +input[type="submit"] { + -webkit-appearance: button; + /* 2 */ + cursor: pointer; + /* 3 */ } + +/** + * Re-set default cursor for disabled elements. + */ +button[disabled], +html input[disabled] { + cursor: default; } + +/** + * Remove inner padding and border in Firefox 4+. + */ +button::-moz-focus-inner, +input::-moz-focus-inner { + border: 0; + padding: 0; } + +/** + * Address Firefox 4+ setting `line-height` on `input` using `!important` in + * the UA stylesheet. + */ +input { + line-height: normal; } + +/** + * It's recommended that you don't attempt to style these elements. + * Firefox's implementation doesn't respect box-sizing, padding, or width. + * + * 1. Address box sizing set to `content-box` in IE 8/9/10. + * 2. Remove excess padding in IE 8/9/10. + */ +input[type="checkbox"], +input[type="radio"] { + box-sizing: border-box; + /* 1 */ + padding: 0; + /* 2 */ } + +/** + * Fix the cursor style for Chrome's increment/decrement buttons. For certain + * `font-size` values of the `input`, it causes the cursor style of the + * decrement button to change from `default` to `text`. + */ +input[type="number"]::-webkit-inner-spin-button, +input[type="number"]::-webkit-outer-spin-button { + height: auto; } + +/** + * Address `appearance` set to `searchfield` in Safari and Chrome. + */ +input[type="search"] { + -webkit-appearance: textfield; } + +/** + * Remove inner padding and search cancel button in Safari and Chrome on OS X. + * Safari (but not Chrome) clips the cancel button when the search input has + * padding (and `textfield` appearance). + */ +input[type="search"]::-webkit-search-cancel-button, +input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; } + +/** + * Define consistent border, margin, and padding. + */ +fieldset { + border: 1px solid #c0c0c0; + margin: 0 2px; + padding: 0.35em 0.625em 0.75em; } + +/** + * 1. Correct `color` not being inherited in IE 8/9/10/11. + * 2. Remove padding so people aren't caught out if they zero out fieldsets. + */ +legend { + border: 0; + /* 1 */ + padding: 0; + /* 2 */ } + +/** + * Remove default vertical scrollbar in IE 8/9/10/11. + */ +textarea { + overflow: auto; } + +/** + * Don't inherit the `font-weight` (applied by a rule above). + * the default cannot safely be changed in Chrome and Safari on OS X. + */ +optgroup { + font-weight: bold; } + +/* Tables + ========================================================================== */ +/** + * Remove most spacing between table cells. + */ +table { + border-collapse: collapse; + border-spacing: 0; } + +td, +th { + padding: 0; } + +/*# sourceMappingURL=data:application/json;base64,ewoJInZlcnNpb24iOiAzLAoJImZpbGUiOiAibmVzdGVkLmNzcyIsCgkic291cmNlcyI6IFsKCQkiLi4vcmVzZXQuc2NzcyIKCV0sCgkic291cmNlc0NvbnRlbnQiOiBbCgkJIi8qISBub3JtYWxpemUuY3NzIHYzLjAuMyB8IE1JVCBMaWNlbnNlIHwgZ2l0aHViLmNvbS9uZWNvbGFzL25vcm1hbGl6ZS5jc3MgKi9cblxuLyoqXG4gKiAxLiBTZXQgZGVmYXVsdCBmb250IGZhbWlseSB0byBzYW5zLXNlcmlmLlxuICogMi4gUHJldmVudCBpT1MgYW5kIElFIHRleHQgc2l6ZSBhZGp1c3QgYWZ0ZXIgZGV2aWNlIG9yaWVudGF0aW9uIGNoYW5nZSxcbiAqICAgIHdpdGhvdXQgZGlzYWJsaW5nIHVzZXIgem9vbS5cbiAqL1xuXG5odG1sIHtcbiAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7IC8qIDEgKi9cbiAgLW1zLXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDIgKi9cbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAyICovXG59XG5cbi8qKlxuICogUmVtb3ZlIGRlZmF1bHQgbWFyZ2luLlxuICovXG5cbmJvZHkge1xuICBtYXJnaW46IDA7XG4gIC8vIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLyogSFRNTDUgZGlzcGxheSBkZWZpbml0aW9uc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBDb3JyZWN0IGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBmb3IgYW55IEhUTUw1IGVsZW1lbnQgaW4gSUUgOC85LlxuICogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGBkZXRhaWxzYCBvciBgc3VtbWFyeWAgaW4gSUUgMTAvMTFcbiAqIGFuZCBGaXJlZm94LlxuICogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGBtYWluYCBpbiBJRSAxMS5cbiAqL1xuXG5hcnRpY2xlLFxuYXNpZGUsXG5kZXRhaWxzLFxuZmlnY2FwdGlvbixcbmZpZ3VyZSxcbmZvb3RlcixcbmhlYWRlcixcbm1haW4sXG5tZW51LFxubmF2LFxuc2VjdGlvbixcbnN1bW1hcnkge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IGBpbmxpbmUtYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgaW4gSUUgOC85LlxuICogMi4gTm9ybWFsaXplIHZlcnRpY2FsIGFsaWdubWVudCBvZiBgcHJvZ3Jlc3NgIGluIENocm9tZSwgRmlyZWZveCwgYW5kIE9wZXJhLlxuICovXG5cbmF1ZGlvLFxuY2FudmFzLFxucHJvZ3Jlc3MsXG52aWRlbyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jazsgLyogMSAqL1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBQcmV2ZW50IG1vZGVybiBicm93c2VycyBmcm9tIGRpc3BsYXlpbmcgYGF1ZGlvYCB3aXRob3V0IGNvbnRyb2xzLlxuICogUmVtb3ZlIGV4Y2VzcyBoZWlnaHQgaW4gaU9TIDUgZGV2aWNlcy5cbiAqL1xuXG5hdWRpbzpub3QoW2NvbnRyb2xzXSkge1xuICBkaXNwbGF5OiBub25lO1xuICBoZWlnaHQ6IDA7XG59XG5cbi8qKlxuICogQWRkcmVzcyBgW2hpZGRlbl1gIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LzEwLlxuICogSGlkZSB0aGUgYHRlbXBsYXRlYCBlbGVtZW50IGluIElFIDgvOS8xMC8xMSwgU2FmYXJpLCBhbmQgRmlyZWZveCA8IDIyLlxuICovXG5cbltoaWRkZW5dLFxudGVtcGxhdGUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4vKiBMaW5rc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGdyYXkgYmFja2dyb3VuZCBjb2xvciBmcm9tIGFjdGl2ZSBsaW5rcyBpbiBJRSAxMC5cbiAqL1xuXG5hIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi8qKlxuICogSW1wcm92ZSByZWFkYWJpbGl0eSBvZiBmb2N1c2VkIGVsZW1lbnRzIHdoZW4gdGhleSBhcmUgYWxzbyBpbiBhblxuICogYWN0aXZlL2hvdmVyIHN0YXRlLlxuICovXG5cbmE6YWN0aXZlLFxuYTpob3ZlciB7XG4gIG91dGxpbmU6IDA7XG59XG5cbi8qIFRleHQtbGV2ZWwgc2VtYW50aWNzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIEFkZHJlc3MgaW5jb25zaXN0ZW50IHN0eWxpbmcgb2YgYGFiYnJbdGl0bGVdYC5cbiAqIDEuIENvcnJlY3Qgc3R5bGluZyBpbiBGaXJlZm94IDM5IGFuZCBPcGVyYSAxMi5cbiAqIDIuIENvcnJlY3QgbWlzc2luZyBzdHlsaW5nIGluIENocm9tZSwgRWRnZSwgSUUsIE9wZXJhLCBhbmQgU2FmYXJpLlxuICovXG5cbmFiYnJbdGl0bGVdIHtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTsgLyogMSAqL1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgLyogMiAqL1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBBZGRyZXNzIGluY29uc2lzdGVudCBzdHlsaW5nIG9mIGIgYW5kIHN0cm9uZy5cbiAqIDEuIENvcnJlY3QgZHVwbGljYXRlIGFwcGxpY2F0aW9uIG9mIGBib2xkZXJgIGluIFNhZmFyaSA2LjAuMi5cbiAqIDIuIENvcnJlY3Qgc3R5bGUgc2V0IHRvIGBib2xkYCBpbiBFZGdlIDEyKywgU2FmYXJpIDYuMissIGFuZCBDaHJvbWUgMTgrLlxuICovXG5cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogaW5oZXJpdDsgLyogMSAqL1xufVxuXG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGRlcjsgLyogMiAqL1xufVxuXG4vKipcbiAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBTYWZhcmkgYW5kIENocm9tZS5cbiAqL1xuXG5kZm4ge1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbi8qKlxuICogQWRkcmVzcyB2YXJpYWJsZSBgaDFgIGZvbnQtc2l6ZSBhbmQgbWFyZ2luIHdpdGhpbiBgc2VjdGlvbmAgYW5kIGBhcnRpY2xlYFxuICogY29udGV4dHMgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxuICovXG5cbmgxIHtcbiAgZm9udC1zaXplOiAyZW07XG4gIG1hcmdpbjogMC42N2VtIDA7XG59XG5cbi8qKlxuICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS5cbiAqL1xuXG5tYXJrIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmMDtcbiAgY29sb3I6ICMwMDA7XG59XG5cbi8qKlxuICogQWRkcmVzcyBpbmNvbnNpc3RlbnQgYW5kIHZhcmlhYmxlIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc21hbGwge1xuICBmb250LXNpemU6IDgwJTtcbn1cblxuLyoqXG4gKiBQcmV2ZW50IGBzdWJgIGFuZCBgc3VwYCBhZmZlY3RpbmcgYGxpbmUtaGVpZ2h0YCBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc3ViLFxuc3VwIHtcbiAgZm9udC1zaXplOiA3NSU7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuc3VwIHtcbiAgdG9wOiAtMC41ZW07XG59XG5cbnN1YiB7XG4gIGJvdHRvbTogLTAuMjVlbTtcbn1cblxuLyogRW1iZWRkZWQgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgYm9yZGVyIHdoZW4gaW5zaWRlIGBhYCBlbGVtZW50IGluIElFIDgvOS8xMC5cbiAqL1xuXG5pbWcge1xuICBib3JkZXI6IDA7XG59XG5cbi8qKlxuICogQ29ycmVjdCBvdmVyZmxvdyBub3QgaGlkZGVuIGluIElFIDkvMTAvMTEuXG4gKi9cblxuc3ZnOm5vdCg6cm9vdCkge1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4vKiBHcm91cGluZyBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIEFkZHJlc3MgbWFyZ2luIG5vdCBwcmVzZW50IGluIElFIDgvOSBhbmQgU2FmYXJpLlxuICovXG5cbmZpZ3VyZSB7XG4gIG1hcmdpbjogMWVtIDQwcHg7XG59XG5cbi8qKlxuICogQWRkcmVzcyBpbmNvbnNpc3RlbnQgc3R5bGluZyBvZiBgaHJgLlxuICogMS4gQ29ycmVjdCBgYm94LXNpemluZ2Agc2V0IHRvIGBib3JkZXItYm94YCBpbiBGaXJlZm94LlxuICogMi4gQ29ycmVjdCBgb3ZlcmZsb3dgIHNldCB0byBgaGlkZGVuYCBpbiBJRSA4LzkvMTAvMTEgYW5kIEVkZ2UgMTIuXG4gKi9cblxuaHIge1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDsgLyogMSAqL1xuICBoZWlnaHQ6IDA7IC8qIDEgKi9cbiAgb3ZlcmZsb3c6IHZpc2libGU7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBDb250YWluIG92ZXJmbG93IGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5wcmUge1xuICBvdmVyZmxvdzogYXV0bztcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQtc2l6ZSBmb3IgcHJlZm9ybWF0dGVkIHRleHQuXG4gKiAyLiBBZGRyZXNzIG9kZCBgZW1gLXVuaXQgZm9udCBzaXplIHJlbmRlcmluZyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuY29kZSxcbmtiZCxcbnByZSxcbnNhbXAge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7IC8qIDEgKi9cbiAgZm9udC1zaXplOiAxZW07IC8qIDIgKi9cbn1cblxuLyogRm9ybXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogS25vd24gbGltaXRhdGlvbjogYnkgZGVmYXVsdCwgQ2hyb21lIGFuZCBTYWZhcmkgb24gT1MgWCBhbGxvdyB2ZXJ5IGxpbWl0ZWRcbiAqIHN0eWxpbmcgb2YgYHNlbGVjdGAsIHVubGVzcyBhIGBib3JkZXJgIHByb3BlcnR5IGlzIHNldC5cbiAqL1xuXG4vKipcbiAqIDEuIENvcnJlY3QgZm9udCBwcm9wZXJ0aWVzIG5vdCBiZWluZyBpbmhlcml0ZWQuXG4gKiAyLiBBZGRyZXNzIG1hcmdpbnMgc2V0IGRpZmZlcmVudGx5IGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbiAqL1xuXG5idXR0b24sXG5pbnB1dCxcbm9wdGdyb3VwLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBmb250OiBpbmhlcml0OyAvKiAxICovXG4gIG1hcmdpbjogMDsgLyogMiAqL1xufVxuXG4vKipcbiAqIEFkZHJlc3MgYG92ZXJmbG93YCBzZXQgdG8gYGhpZGRlbmAgaW4gSUUgOC85LzEwLzExLlxuICovXG5cbmJ1dHRvbiB7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgaW5jb25zaXN0ZW50IGB0ZXh0LXRyYW5zZm9ybWAgaW5oZXJpdGFuY2UgZm9yIGBidXR0b25gIGFuZCBgc2VsZWN0YC5cbiAqIEFsbCBvdGhlciBmb3JtIGNvbnRyb2wgZWxlbWVudHMgZG8gbm90IGluaGVyaXQgYHRleHQtdHJhbnNmb3JtYCB2YWx1ZXMuXG4gKiBDb3JyZWN0IGBidXR0b25gIHN0eWxlIGluaGVyaXRhbmNlIGluIEZpcmVmb3gsIElFIDgvOS8xMC8xMSwgYW5kIE9wZXJhLlxuICogQ29ycmVjdCBgc2VsZWN0YCBzdHlsZSBpbmhlcml0YW5jZSBpbiBGaXJlZm94LlxuICovXG5cbmJ1dHRvbixcbnNlbGVjdCB7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4vKipcbiAqIDEuIEF2b2lkIHRoZSBXZWJLaXQgYnVnIGluIEFuZHJvaWQgNC4wLiogd2hlcmUgKDIpIGRlc3Ryb3lzIG5hdGl2ZSBgYXVkaW9gXG4gKiAgICBhbmQgYHZpZGVvYCBjb250cm9scy5cbiAqIDIuIENvcnJlY3QgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSBgaW5wdXRgIHR5cGVzIGluIGlPUy5cbiAqIDMuIEltcHJvdmUgdXNhYmlsaXR5IGFuZCBjb25zaXN0ZW5jeSBvZiBjdXJzb3Igc3R5bGUgYmV0d2VlbiBpbWFnZS10eXBlXG4gKiAgICBgaW5wdXRgIGFuZCBvdGhlcnMuXG4gKi9cblxuYnV0dG9uLFxuaHRtbCBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdLCAvKiAxICovXG5pbnB1dFt0eXBlPVwicmVzZXRcIl0sXG5pbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8qIDIgKi9cbiAgY3Vyc29yOiBwb2ludGVyOyAvKiAzICovXG59XG5cbi8qKlxuICogUmUtc2V0IGRlZmF1bHQgY3Vyc29yIGZvciBkaXNhYmxlZCBlbGVtZW50cy5cbiAqL1xuXG5idXR0b25bZGlzYWJsZWRdLFxuaHRtbCBpbnB1dFtkaXNhYmxlZF0ge1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi8qKlxuICogUmVtb3ZlIGlubmVyIHBhZGRpbmcgYW5kIGJvcmRlciBpbiBGaXJlZm94IDQrLlxuICovXG5cbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcbmlucHV0OjotbW96LWZvY3VzLWlubmVyIHtcbiAgYm9yZGVyOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgRmlyZWZveCA0KyBzZXR0aW5nIGBsaW5lLWhlaWdodGAgb24gYGlucHV0YCB1c2luZyBgIWltcG9ydGFudGAgaW5cbiAqIHRoZSBVQSBzdHlsZXNoZWV0LlxuICovXG5cbmlucHV0IHtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbn1cblxuLyoqXG4gKiBJdCdzIHJlY29tbWVuZGVkIHRoYXQgeW91IGRvbid0IGF0dGVtcHQgdG8gc3R5bGUgdGhlc2UgZWxlbWVudHMuXG4gKiBGaXJlZm94J3MgaW1wbGVtZW50YXRpb24gZG9lc24ndCByZXNwZWN0IGJveC1zaXppbmcsIHBhZGRpbmcsIG9yIHdpZHRoLlxuICpcbiAqIDEuIEFkZHJlc3MgYm94IHNpemluZyBzZXQgdG8gYGNvbnRlbnQtYm94YCBpbiBJRSA4LzkvMTAuXG4gKiAyLiBSZW1vdmUgZXhjZXNzIHBhZGRpbmcgaW4gSUUgOC85LzEwLlxuICovXG5cbmlucHV0W3R5cGU9XCJjaGVja2JveFwiXSxcbmlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8qIDEgKi9cbiAgcGFkZGluZzogMDsgLyogMiAqL1xufVxuXG4vKipcbiAqIEZpeCB0aGUgY3Vyc29yIHN0eWxlIGZvciBDaHJvbWUncyBpbmNyZW1lbnQvZGVjcmVtZW50IGJ1dHRvbnMuIEZvciBjZXJ0YWluXG4gKiBgZm9udC1zaXplYCB2YWx1ZXMgb2YgdGhlIGBpbnB1dGAsIGl0IGNhdXNlcyB0aGUgY3Vyc29yIHN0eWxlIG9mIHRoZVxuICogZGVjcmVtZW50IGJ1dHRvbiB0byBjaGFuZ2UgZnJvbSBgZGVmYXVsdGAgdG8gYHRleHRgLlxuICovXG5cbmlucHV0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG5pbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgYGFwcGVhcmFuY2VgIHNldCB0byBgc2VhcmNoZmllbGRgIGluIFNhZmFyaSBhbmQgQ2hyb21lLlxuICovXG5cbmlucHV0W3R5cGU9XCJzZWFyY2hcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDtcbn1cblxuLyoqXG4gKiBSZW1vdmUgaW5uZXIgcGFkZGluZyBhbmQgc2VhcmNoIGNhbmNlbCBidXR0b24gaW4gU2FmYXJpIGFuZCBDaHJvbWUgb24gT1MgWC5cbiAqIFNhZmFyaSAoYnV0IG5vdCBDaHJvbWUpIGNsaXBzIHRoZSBjYW5jZWwgYnV0dG9uIHdoZW4gdGhlIHNlYXJjaCBpbnB1dCBoYXNcbiAqIHBhZGRpbmcgKGFuZCBgdGV4dGZpZWxkYCBhcHBlYXJhbmNlKS5cbiAqL1xuXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLFxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuLyoqXG4gKiBEZWZpbmUgY29uc2lzdGVudCBib3JkZXIsIG1hcmdpbiwgYW5kIHBhZGRpbmcuXG4gKi9cblxuZmllbGRzZXQge1xuICBib3JkZXI6IDFweCBzb2xpZCAjYzBjMGMwO1xuICBtYXJnaW46IDAgMnB4O1xuICBwYWRkaW5nOiAwLjM1ZW0gMC42MjVlbSAwLjc1ZW07XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCBgY29sb3JgIG5vdCBiZWluZyBpbmhlcml0ZWQgaW4gSUUgOC85LzEwLzExLlxuICogMi4gUmVtb3ZlIHBhZGRpbmcgc28gcGVvcGxlIGFyZW4ndCBjYXVnaHQgb3V0IGlmIHRoZXkgemVybyBvdXQgZmllbGRzZXRzLlxuICovXG5cbmxlZ2VuZCB7XG4gIGJvcmRlcjogMDsgLyogMSAqL1xuICBwYWRkaW5nOiAwOyAvKiAyICovXG59XG5cbi8qKlxuICogUmVtb3ZlIGRlZmF1bHQgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFIDgvOS8xMC8xMS5cbiAqL1xuXG50ZXh0YXJlYSB7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuXG4vKipcbiAqIERvbid0IGluaGVyaXQgdGhlIGBmb250LXdlaWdodGAgKGFwcGxpZWQgYnkgYSBydWxlIGFib3ZlKS5cbiAqIHRoZSBkZWZhdWx0IGNhbm5vdCBzYWZlbHkgYmUgY2hhbmdlZCBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBPUyBYLlxuICovXG5cbm9wdGdyb3VwIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi8qIFRhYmxlc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgbW9zdCBzcGFjaW5nIGJldHdlZW4gdGFibGUgY2VsbHMuXG4gKi9cblxudGFibGUge1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICBib3JkZXItc3BhY2luZzogMDtcbn1cblxudGQsXG50aCB7XG4gIHBhZGRpbmc6IDA7XG59XG4iCgldLAoJIm1hcHBpbmdzIjogIkFBQUEsNEVBQTRFO0FBRTVFOzs7O0dBSUc7QUFFSCxJQUFJLENBQUM7RUFDSCxXQUFXLEVBQUUsVUFBVztFQUFFLE9BQU87RUFDakMsb0JBQW9CLEVBQUUsSUFBSztFQUFFLE9BQU87RUFDcEMsd0JBQXdCLEVBQUUsSUFBSztFQUFFLE9BQU8sRUFDekM7O0FBRUQ7O0dBRUc7QUFFSCxJQUFJLENBQUM7RUFDSCxNQUFNLEVBQUUsQ0FBRSxHQUVYOztBQUVEO2dGQUNnRjtBQUVoRjs7Ozs7R0FLRztBQUVILE9BQU87QUFDUCxLQUFLO0FBQ0wsT0FBTztBQUNQLFVBQVU7QUFDVixNQUFNO0FBQ04sTUFBTTtBQUNOLE1BQU07QUFDTixJQUFJO0FBQ0osSUFBSTtBQUNKLEdBQUc7QUFD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 */ \ No newline at end of file diff --git a/css/reset/nested.css.map b/css/reset/nested.css.map new file mode 100644 index 0000000..36178a9 --- /dev/null +++ b/css/reset/nested.css.map @@ -0,0 +1,12 @@ +{ + "version": 3, + "file": "nested.css", + "sources": [ + "../reset.scss" + ], + "sourcesContent": [ + "/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */\n\n/**\n * 1. Set default font family to sans-serif.\n * 2. Prevent iOS and IE text size adjust after device orientation change,\n * without disabling user zoom.\n */\n\nhtml {\n font-family: sans-serif; /* 1 */\n -ms-text-size-adjust: 100%; /* 2 */\n -webkit-text-size-adjust: 100%; /* 2 */\n}\n\n/**\n * Remove default margin.\n */\n\nbody {\n margin: 0;\n // font-size: 12px;\n}\n\n/* HTML5 display definitions\n ========================================================================== */\n\n/**\n * Correct `block` display not defined for any HTML5 element in IE 8/9.\n * Correct `block` display not defined for `details` or `summary` in IE 10/11\n * and Firefox.\n * Correct `block` display not defined for `main` in IE 11.\n */\n\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nmain,\nmenu,\nnav,\nsection,\nsummary {\n display: block;\n}\n\n/**\n * 1. Correct `inline-block` display not defined in IE 8/9.\n * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.\n */\n\naudio,\ncanvas,\nprogress,\nvideo {\n display: inline-block; /* 1 */\n vertical-align: baseline; /* 2 */\n}\n\n/**\n * Prevent modern browsers from displaying `audio` without controls.\n * Remove excess height in iOS 5 devices.\n */\n\naudio:not([controls]) {\n display: none;\n height: 0;\n}\n\n/**\n * Address `[hidden]` styling not present in IE 8/9/10.\n * Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22.\n */\n\n[hidden],\ntemplate {\n display: none;\n}\n\n/* Links\n ========================================================================== */\n\n/**\n * Remove the gray background color from active links in IE 10.\n */\n\na {\n background-color: transparent;\n}\n\n/**\n * Improve readability of focused elements when they are also in an\n * active/hover state.\n */\n\na:active,\na:hover {\n outline: 0;\n}\n\n/* Text-level semantics\n ========================================================================== */\n\n/**\n * Address inconsistent styling of `abbr[title]`.\n * 1. Correct styling in Firefox 39 and Opera 12.\n * 2. Correct missing styling in Chrome, Edge, IE, Opera, and Safari.\n */\n\nabbr[title] {\n border-bottom: none; /* 1 */\n text-decoration: underline; /* 2 */\n text-decoration: underline dotted; /* 2 */\n}\n\n/**\n * Address inconsistent styling of b and strong.\n * 1. Correct duplicate application of `bolder` in Safari 6.0.2.\n * 2. Correct style set to `bold` in Edge 12+, Safari 6.2+, and Chrome 18+.\n */\n\nb,\nstrong {\n font-weight: inherit; /* 1 */\n}\n\nb,\nstrong {\n font-weight: bolder; /* 2 */\n}\n\n/**\n * Address styling not present in Safari and Chrome.\n */\n\ndfn {\n font-style: italic;\n}\n\n/**\n * Address variable `h1` font-size and margin within `section` and `article`\n * contexts in Firefox 4+, Safari, and Chrome.\n */\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n/**\n * Address styling not present in IE 8/9.\n */\n\nmark {\n background-color: #ff0;\n color: #000;\n}\n\n/**\n * Address inconsistent and variable font size in all browsers.\n */\n\nsmall {\n font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` affecting `line-height` in all browsers.\n */\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsup {\n top: -0.5em;\n}\n\nsub {\n bottom: -0.25em;\n}\n\n/* Embedded content\n ========================================================================== */\n\n/**\n * Remove border when inside `a` element in IE 8/9/10.\n */\n\nimg {\n border: 0;\n}\n\n/**\n * Correct overflow not hidden in IE 9/10/11.\n */\n\nsvg:not(:root) {\n overflow: hidden;\n}\n\n/* Grouping content\n ========================================================================== */\n\n/**\n * Address margin not present in IE 8/9 and Safari.\n */\n\nfigure {\n margin: 1em 40px;\n}\n\n/**\n * Address inconsistent styling of `hr`.\n * 1. Correct `box-sizing` set to `border-box` in Firefox.\n * 2. Correct `overflow` set to `hidden` in IE 8/9/10/11 and Edge 12.\n */\n\nhr {\n box-sizing: content-box; /* 1 */\n height: 0; /* 1 */\n overflow: visible; /* 2 */\n}\n\n/**\n * Contain overflow in all browsers.\n */\n\npre {\n overflow: auto;\n}\n\n/**\n * 1. Correct inheritance and scaling of font-size for preformatted text.\n * 2. Address odd `em`-unit font size rendering in all browsers.\n */\n\ncode,\nkbd,\npre,\nsamp {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/* Forms\n ========================================================================== */\n\n/**\n * Known limitation: by default, Chrome and Safari on OS X allow very limited\n * styling of `select`, unless a `border` property is set.\n */\n\n/**\n * 1. Correct font properties not being inherited.\n * 2. Address margins set differently in Firefox 4+, Safari, and Chrome.\n */\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font: inherit; /* 1 */\n margin: 0; /* 2 */\n}\n\n/**\n * Address `overflow` set to `hidden` in IE 8/9/10/11.\n */\n\nbutton {\n overflow: visible;\n}\n\n/**\n * Address inconsistent `text-transform` inheritance for `button` and `select`.\n * All other form control elements do not inherit `text-transform` values.\n * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.\n * Correct `select` style inheritance in Firefox.\n */\n\nbutton,\nselect {\n text-transform: none;\n}\n\n/**\n * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`\n * and `video` controls.\n * 2. Correct inability to style clickable `input` types in iOS.\n * 3. Improve usability and consistency of cursor style between image-type\n * `input` and others.\n */\n\nbutton,\nhtml input[type=\"button\"], /* 1 */\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n -webkit-appearance: button; /* 2 */\n cursor: pointer; /* 3 */\n}\n\n/**\n * Re-set default cursor for disabled elements.\n */\n\nbutton[disabled],\nhtml input[disabled] {\n cursor: default;\n}\n\n/**\n * Remove inner padding and border in Firefox 4+.\n */\n\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n border: 0;\n padding: 0;\n}\n\n/**\n * Address Firefox 4+ setting `line-height` on `input` using `!important` in\n * the UA stylesheet.\n */\n\ninput {\n line-height: normal;\n}\n\n/**\n * It's recommended that you don't attempt to style these elements.\n * Firefox's implementation doesn't respect box-sizing, padding, or width.\n *\n * 1. Address box sizing set to `content-box` in IE 8/9/10.\n * 2. Remove excess padding in IE 8/9/10.\n */\n\ninput[type=\"checkbox\"],\ninput[type=\"radio\"] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Fix the cursor style for Chrome's increment/decrement buttons. For certain\n * `font-size` values of the `input`, it causes the cursor style of the\n * decrement button to change from `default` to `text`.\n */\n\ninput[type=\"number\"]::-webkit-inner-spin-button,\ninput[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n * Address `appearance` set to `searchfield` in Safari and Chrome.\n */\n\ninput[type=\"search\"] {\n -webkit-appearance: textfield;\n}\n\n/**\n * Remove inner padding and search cancel button in Safari and Chrome on OS X.\n * Safari (but not Chrome) clips the cancel button when the search input has\n * padding (and `textfield` appearance).\n */\n\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/**\n * Define consistent border, margin, and padding.\n */\n\nfieldset {\n border: 1px solid #c0c0c0;\n margin: 0 2px;\n padding: 0.35em 0.625em 0.75em;\n}\n\n/**\n * 1. Correct `color` not being inherited in IE 8/9/10/11.\n * 2. Remove padding so people aren't caught out if they zero out fieldsets.\n */\n\nlegend {\n border: 0; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Remove default vertical scrollbar in IE 8/9/10/11.\n */\n\ntextarea {\n overflow: auto;\n}\n\n/**\n * Don't inherit the `font-weight` (applied by a rule above).\n * the default cannot safely be changed in Chrome and Safari on OS X.\n */\n\noptgroup {\n font-weight: bold;\n}\n\n/* Tables\n ========================================================================== */\n\n/**\n * Remove most spacing between table cells.\n */\n\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\n\ntd,\nth {\n padding: 0;\n}\n" + ], + "mappings": "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", + "names": [] +} \ No newline at end of file diff --git a/doc/bdd.sql b/doc/bdd.sql index 309fe74..2574259 100644 --- a/doc/bdd.sql +++ b/doc/bdd.sql @@ -3,7 +3,7 @@ -- http://www.phpmyadmin.net -- -- Host: localhost --- Generation Time: Apr 13, 2016 at 02:54 PM +-- Generation Time: Apr 19, 2016 at 03:36 PM -- Server version: 5.6.28-0ubuntu0.15.10.1 -- PHP Version: 5.6.11-1ubuntu3.1 @@ -32,7 +32,7 @@ CREATE TABLE IF NOT EXISTS `api_token` ( `name` varchar(50) NOT NULL, `expires` date NOT NULL, `permission` text NOT NULL -) ENGINE=InnoDB AUTO_INCREMENT=50 DEFAULT CHARSET=latin1; +) ENGINE=InnoDB AUTO_INCREMENT=61 DEFAULT CHARSET=latin1; -- -- Dumping data for table `api_token` @@ -40,26 +40,52 @@ CREATE TABLE IF NOT EXISTS `api_token` ( INSERT INTO `api_token` (`id_token`, `token`, `name`, `expires`, `permission`) VALUES (38, '48e701d4e72e4e35bc37c9a800b49d5400734d7b', 'test', '2016-04-11', 'admin,token'), -(39, '935fe104d0e64d36e466c7a0a1c9773e3d7521c5', 'user#1', '2016-04-22', 'admin,token'), -(48, 'bba06e9b01f5ac00798d6cf241d8bf105da0f25a', 'user#2', '2016-05-02', 'admin,token'), -(49, '5ac2c74474ea4b1279b4dacb538da8a0bd1e2adb', 'acces romain', '2016-07-22', ''); +(51, '52945efbed43b50c12413f2f0e9519bfd9e98ce8', 'API', '2016-04-24', 'token,admin'); -- -------------------------------------------------------- -- --- Table structure for table `Categories` +-- Table structure for table `call_directory` -- -CREATE TABLE IF NOT EXISTS `Categories` ( +CREATE TABLE IF NOT EXISTS `call_directory` ( + `id_call_directory` int(11) NOT NULL, + `id_owner` int(11) NOT NULL, + `number` varchar(10) NOT NULL, + `name` varchar(30) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=latin1; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `call_logs` +-- + +CREATE TABLE IF NOT EXISTS `call_logs` ( + `id_call_log` int(11) NOT NULL, + `source` varchar(10) NOT NULL, + `target` varchar(10) NOT NULL, + `type` varchar(5) NOT NULL, + `date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + `duration` int(11) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=latin1; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `categories` +-- + +CREATE TABLE IF NOT EXISTS `categories` ( `idCategorie` int(11) NOT NULL, `intitule` varchar(40) NOT NULL ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=latin1; -- --- Dumping data for table `Categories` +-- Dumping data for table `categories` -- -INSERT INTO `Categories` (`idCategorie`, `intitule`) VALUES +INSERT INTO `categories` (`idCategorie`, `intitule`) VALUES (1, '_CALL'), (2, '_SMS'), (3, '_FACEBOOK'), @@ -68,10 +94,10 @@ INSERT INTO `Categories` (`idCategorie`, `intitule`) VALUES -- -------------------------------------------------------- -- --- Table structure for table `Etudes` +-- Table structure for table `etudes` -- -CREATE TABLE IF NOT EXISTS `Etudes` ( +CREATE TABLE IF NOT EXISTS `etudes` ( `idEtude` int(11) NOT NULL, `intitule` int(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1; @@ -79,10 +105,10 @@ CREATE TABLE IF NOT EXISTS `Etudes` ( -- -------------------------------------------------------- -- --- Table structure for table `Etude_Personnes` +-- Table structure for table `etude_personnes` -- -CREATE TABLE IF NOT EXISTS `Etude_Personnes` ( +CREATE TABLE IF NOT EXISTS `etude_personnes` ( `idEtude` int(11) NOT NULL DEFAULT '0', `idPersonne` int(11) NOT NULL DEFAULT '0' ) ENGINE=InnoDB DEFAULT CHARSET=latin1; @@ -90,32 +116,10 @@ CREATE TABLE IF NOT EXISTS `Etude_Personnes` ( -- -------------------------------------------------------- -- --- Table structure for table `Personnes` +-- Table structure for table `questions` -- -CREATE TABLE IF NOT EXISTS `Personnes` ( - `idPersonne` int(11) NOT NULL, - `pseudo` varchar(255) DEFAULT NULL, - `nom` varchar(255) DEFAULT NULL, - `prenom` varchar(255) DEFAULT NULL, - `id_facebook` int(11) DEFAULT NULL, - `telephone` varchar(10) DEFAULT NULL -) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1; - --- --- Dumping data for table `Personnes` --- - -INSERT INTO `Personnes` (`idPersonne`, `pseudo`, `nom`, `prenom`, `id_facebook`, `telephone`) VALUES -(1, 'Jeannot', '', 'Jean', NULL, NULL); - --- -------------------------------------------------------- - --- --- Table structure for table `Questions` --- - -CREATE TABLE IF NOT EXISTS `Questions` ( +CREATE TABLE IF NOT EXISTS `questions` ( `idQuestion` int(11) NOT NULL, `intitule` text NOT NULL, `qualification` varchar(255) NOT NULL, @@ -126,10 +130,10 @@ CREATE TABLE IF NOT EXISTS `Questions` ( -- -------------------------------------------------------- -- --- Table structure for table `Relations` +-- Table structure for table `relations` -- -CREATE TABLE IF NOT EXISTS `Relations` ( +CREATE TABLE IF NOT EXISTS `relations` ( `idPersonneA` int(11) NOT NULL, `idPersonneB` int(11) NOT NULL, `idCategorie` int(11) DEFAULT NULL @@ -138,10 +142,10 @@ CREATE TABLE IF NOT EXISTS `Relations` ( -- -------------------------------------------------------- -- --- Table structure for table `ReponsesAttendues` +-- Table structure for table `reponsesAttendues` -- -CREATE TABLE IF NOT EXISTS `ReponsesAttendues` ( +CREATE TABLE IF NOT EXISTS `reponsesAttendues` ( `idReponseAttendue` int(11) NOT NULL, `intitule` varchar(255) NOT NULL, `idQuestion` int(11) NOT NULL @@ -150,10 +154,10 @@ CREATE TABLE IF NOT EXISTS `ReponsesAttendues` ( -- -------------------------------------------------------- -- --- Table structure for table `ReponsesUtilisateurs` +-- Table structure for table `reponsesUtilisateurs` -- -CREATE TABLE IF NOT EXISTS `ReponsesUtilisateurs` ( +CREATE TABLE IF NOT EXISTS `reponsesUtilisateurs` ( `idReponseUtilisateur` int(11) NOT NULL, `intitule` varchar(255) NOT NULL, `idQuestion` int(11) NOT NULL, @@ -162,6 +166,28 @@ CREATE TABLE IF NOT EXISTS `ReponsesUtilisateurs` ( -- -------------------------------------------------------- +-- +-- Table structure for table `sujets` +-- + +CREATE TABLE IF NOT EXISTS `sujets` ( + `idSujet` int(11) NOT NULL, + `pseudo` varchar(255) DEFAULT NULL, + `nom` varchar(255) DEFAULT NULL, + `prenom` varchar(255) DEFAULT NULL, + `id_facebook` int(11) DEFAULT NULL, + `telephone` varchar(10) DEFAULT NULL +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1; + +-- +-- Dumping data for table `sujets` +-- + +INSERT INTO `sujets` (`idSujet`, `pseudo`, `nom`, `prenom`, `id_facebook`, `telephone`) VALUES +(1, 'Jeannot', '', 'Jean', NULL, NULL); + +-- -------------------------------------------------------- + -- -- Table structure for table `users` -- @@ -170,18 +196,19 @@ CREATE TABLE IF NOT EXISTS `users` ( `id_user` int(11) NOT NULL, `login` varchar(30) NOT NULL, `password` varchar(40) NOT NULL, - `mail` varchar(255) NOT NULL, + `mail` varchar(50) NOT NULL, `reference` int(11) DEFAULT NULL, `permission` text NOT NULL -) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1; +) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=latin1; -- -- Dumping data for table `users` -- INSERT INTO `users` (`id_user`, `login`, `password`, `mail`, `reference`, `permission`) VALUES -(1, 'xdrm', '5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8', 'xdrm@xdrm.io', NULL, 'admin,user'), -(3, 'test', 'a94a8fe5ccb19ba61c4c0873d391e987982fbbd3', 'test', NULL, 'user'); +(1, 'xdrm', 'fa80b2513864bbc9edd3ef52a9b6f29af3993768', 'xdrm@xdrm.io', NULL, 'admin'), +(11, 'julien.figeac', 'b5f2c48f299dabcf32e044ea6f2243abce812c55', 'julien.figeac@gmail.com', NULL, 'admin'), +(12, 'Buser', 'fa80b2513864bbc9edd3ef52a9b6f29af3993768', 'B@gmail.com', NULL, 'subject'); -- -- Indexes for dumped tables @@ -194,71 +221,80 @@ ALTER TABLE `api_token` ADD PRIMARY KEY (`id_token`); -- --- Indexes for table `Categories` +-- Indexes for table `call_logs` -- -ALTER TABLE `Categories` +ALTER TABLE `call_logs` + ADD PRIMARY KEY (`id_call_log`); + +-- +-- Indexes for table `categories` +-- +ALTER TABLE `categories` ADD PRIMARY KEY (`idCategorie`), ADD UNIQUE KEY `uindex_Catégories_idCatégorie` (`idCategorie`); -- --- Indexes for table `Etudes` +-- Indexes for table `etudes` -- -ALTER TABLE `Etudes` +ALTER TABLE `etudes` ADD PRIMARY KEY (`idEtude`), ADD UNIQUE KEY `uindex_Etudes_idEtude` (`idEtude`); -- --- Indexes for table `Etude_Personnes` +-- Indexes for table `etude_personnes` -- -ALTER TABLE `Etude_Personnes` +ALTER TABLE `etude_personnes` ADD PRIMARY KEY (`idEtude`,`idPersonne`), ADD KEY `index_EP_idPersonne` (`idPersonne`); -- --- Indexes for table `Personnes` +-- Indexes for table `questions` -- -ALTER TABLE `Personnes` - ADD PRIMARY KEY (`idPersonne`), - ADD UNIQUE KEY `uindex_Personnes_idPersonne` (`idPersonne`); - --- --- Indexes for table `Questions` --- -ALTER TABLE `Questions` +ALTER TABLE `questions` ADD PRIMARY KEY (`idQuestion`), ADD UNIQUE KEY `uindex_Questions_idQuestion` (`idQuestion`), ADD KEY `index_Question_idEtude` (`idEtude`); -- --- Indexes for table `Relations` +-- Indexes for table `relations` -- -ALTER TABLE `Relations` +ALTER TABLE `relations` ADD PRIMARY KEY (`idPersonneA`,`idPersonneB`), ADD KEY `index_Relations_idCategorie` (`idCategorie`), ADD KEY `index_Relations_idUtilsateurB` (`idPersonneB`); -- --- Indexes for table `ReponsesAttendues` +-- Indexes for table `reponsesAttendues` -- -ALTER TABLE `ReponsesAttendues` +ALTER TABLE `reponsesAttendues` ADD PRIMARY KEY (`idReponseAttendue`), ADD UNIQUE KEY `uindex_ReponsesAttendues_idReponseAttendue` (`idReponseAttendue`), ADD KEY `index_ReponsesAttendues_idQuestion` (`idQuestion`); -- --- Indexes for table `ReponsesUtilisateurs` +-- Indexes for table `reponsesUtilisateurs` -- -ALTER TABLE `ReponsesUtilisateurs` +ALTER TABLE `reponsesUtilisateurs` ADD PRIMARY KEY (`idReponseUtilisateur`), ADD UNIQUE KEY `uindex_ReponsesUtilisateurs_idReponseUtilisateur` (`idReponseUtilisateur`), ADD KEY `index_ReponsesUtilisateurs` (`idQuestion`), ADD KEY `index_ReponsesUtilisateurs_idPersonne` (`idUtilisateur`); +-- +-- Indexes for table `sujets` +-- +ALTER TABLE `sujets` + ADD PRIMARY KEY (`idSujet`), + ADD UNIQUE KEY `uindex_Personnes_idPersonne` (`idSujet`); + -- -- Indexes for table `users` -- ALTER TABLE `users` - ADD PRIMARY KEY (`id_user`); + ADD PRIMARY KEY (`id_user`), + ADD UNIQUE KEY `login` (`login`), + ADD UNIQUE KEY `mail` (`mail`), + ADD UNIQUE KEY `reference` (`reference`); -- -- AUTO_INCREMENT for dumped tables @@ -268,80 +304,85 @@ ALTER TABLE `users` -- AUTO_INCREMENT for table `api_token` -- ALTER TABLE `api_token` - MODIFY `id_token` int(11) NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=50; + MODIFY `id_token` int(11) NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=61; -- --- AUTO_INCREMENT for table `Categories` +-- AUTO_INCREMENT for table `call_logs` -- -ALTER TABLE `Categories` +ALTER TABLE `call_logs` + MODIFY `id_call_log` int(11) NOT NULL AUTO_INCREMENT; +-- +-- AUTO_INCREMENT for table `categories` +-- +ALTER TABLE `categories` MODIFY `idCategorie` int(11) NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=5; -- --- AUTO_INCREMENT for table `Etudes` +-- AUTO_INCREMENT for table `etudes` -- -ALTER TABLE `Etudes` +ALTER TABLE `etudes` MODIFY `idEtude` int(11) NOT NULL AUTO_INCREMENT; -- --- AUTO_INCREMENT for table `Personnes` +-- AUTO_INCREMENT for table `questions` -- -ALTER TABLE `Personnes` - MODIFY `idPersonne` int(11) NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=2; --- --- AUTO_INCREMENT for table `Questions` --- -ALTER TABLE `Questions` +ALTER TABLE `questions` MODIFY `idQuestion` int(11) NOT NULL AUTO_INCREMENT; -- --- AUTO_INCREMENT for table `ReponsesAttendues` +-- AUTO_INCREMENT for table `reponsesAttendues` -- -ALTER TABLE `ReponsesAttendues` +ALTER TABLE `reponsesAttendues` MODIFY `idReponseAttendue` int(11) NOT NULL AUTO_INCREMENT; -- --- AUTO_INCREMENT for table `ReponsesUtilisateurs` +-- AUTO_INCREMENT for table `reponsesUtilisateurs` -- -ALTER TABLE `ReponsesUtilisateurs` +ALTER TABLE `reponsesUtilisateurs` MODIFY `idReponseUtilisateur` int(11) NOT NULL AUTO_INCREMENT; -- +-- AUTO_INCREMENT for table `sujets` +-- +ALTER TABLE `sujets` + MODIFY `idSujet` int(11) NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=2; +-- -- AUTO_INCREMENT for table `users` -- ALTER TABLE `users` - MODIFY `id_user` int(11) NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=4; + MODIFY `id_user` int(11) NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=17; -- -- Constraints for dumped tables -- -- --- Constraints for table `Etude_Personnes` +-- Constraints for table `etude_personnes` -- -ALTER TABLE `Etude_Personnes` - ADD CONSTRAINT `fk_EP_idEtude` FOREIGN KEY (`idEtude`) REFERENCES `Etudes` (`idEtude`), - ADD CONSTRAINT `fk_EP_idPersonne` FOREIGN KEY (`idPersonne`) REFERENCES `Personnes` (`idPersonne`); +ALTER TABLE `etude_personnes` + ADD CONSTRAINT `fk_EP_idEtude` FOREIGN KEY (`idEtude`) REFERENCES `etudes` (`idEtude`), + ADD CONSTRAINT `fk_EP_idPersonne` FOREIGN KEY (`idPersonne`) REFERENCES `sujets` (`idSujet`); -- --- Constraints for table `Questions` +-- Constraints for table `questions` -- -ALTER TABLE `Questions` - ADD CONSTRAINT `uindex_Question_idEtude` FOREIGN KEY (`idEtude`) REFERENCES `Etudes` (`idEtude`); +ALTER TABLE `questions` + ADD CONSTRAINT `uindex_Question_idEtude` FOREIGN KEY (`idEtude`) REFERENCES `etudes` (`idEtude`); -- --- Constraints for table `Relations` +-- Constraints for table `relations` -- -ALTER TABLE `Relations` - ADD CONSTRAINT `fk_Relations_idCategorie` FOREIGN KEY (`idCategorie`) REFERENCES `Categories` (`idCategorie`), - ADD CONSTRAINT `fk_Relations_idUtilsateurA` FOREIGN KEY (`idPersonneA`) REFERENCES `Personnes` (`idPersonne`), - ADD CONSTRAINT `fk_Relations_idUtilsateurB` FOREIGN KEY (`idPersonneB`) REFERENCES `Personnes` (`idPersonne`); +ALTER TABLE `relations` + ADD CONSTRAINT `fk_Relations_idCategorie` FOREIGN KEY (`idCategorie`) REFERENCES `categories` (`idCategorie`), + ADD CONSTRAINT `fk_Relations_idUtilsateurA` FOREIGN KEY (`idPersonneA`) REFERENCES `sujets` (`idSujet`), + ADD CONSTRAINT `fk_Relations_idUtilsateurB` FOREIGN KEY (`idPersonneB`) REFERENCES `sujets` (`idSujet`); -- --- Constraints for table `ReponsesAttendues` +-- Constraints for table `reponsesAttendues` -- -ALTER TABLE `ReponsesAttendues` - ADD CONSTRAINT `fk_ReponsesAttendues_idQuestion` FOREIGN KEY (`idQuestion`) REFERENCES `Questions` (`idQuestion`); +ALTER TABLE `reponsesAttendues` + ADD CONSTRAINT `fk_ReponsesAttendues_idQuestion` FOREIGN KEY (`idQuestion`) REFERENCES `questions` (`idQuestion`); -- --- Constraints for table `ReponsesUtilisateurs` +-- Constraints for table `reponsesUtilisateurs` -- -ALTER TABLE `ReponsesUtilisateurs` - ADD CONSTRAINT `fk_ReponsesUtilisateurs` FOREIGN KEY (`idQuestion`) REFERENCES `Questions` (`idQuestion`), - ADD CONSTRAINT `fk_ReponsesUtilisateurs_idPersonne` FOREIGN KEY (`idUtilisateur`) REFERENCES `Personnes` (`idPersonne`); +ALTER TABLE `reponsesUtilisateurs` + ADD CONSTRAINT `fk_ReponsesUtilisateurs` FOREIGN KEY (`idQuestion`) REFERENCES `questions` (`idQuestion`), + ADD CONSTRAINT `fk_ReponsesUtilisateurs_idPersonne` FOREIGN KEY (`idUtilisateur`) REFERENCES `sujets` (`idSujet`); /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; -/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; \ No newline at end of file +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; diff --git a/doc/sample.xml b/doc/sample.xml new file mode 100644 index 0000000..8757312 --- /dev/null +++ b/doc/sample.xml @@ -0,0 +1,1001 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/js/action-script-min.js b/js/action-script-min.js new file mode 100644 index 0000000..5084f20 --- /dev/null +++ b/js/action-script-min.js @@ -0,0 +1,7 @@ +var DOM={WRAPPER:$("WRAPPER"),HEADER:$("HEADER"),MENUSIDE:$("MENU-SIDE"),CONTAINER:$("CONTAINER")},pageManager;api=new APIClass("/api/"); +function navSubMenu(a){var c=document.querySelector("#MENU-SIDE > span[data-link="+pageManager.page+'] + div.sub > span[data-sublink="'+pageManager.vars[0]+'"]'),b=null,b=a instanceof Element?a:null,b="string"==typeof a?document.querySelector("#MENU-SIDE > span[data-link="+pageManager.page+'] + div.sub > span[data-sublink="'+a+'"]'):b,b=null==b?document.querySelector("#MENU-SIDE > span[data-link="+pageManager.page+"] + div.sub > span[data-sublink]"):b;if(null==b)return!1;null!=c&&c.remClass("active"); +c=document.querySelectorAll("#CONTAINER > section[data-sublink].active");for(a=0;a section[data-sublink="'+b.getData("sublink")+'"]'),a=0;a #MENU-SIDE > span[data-link="'+pageManager.page+'"]'),b=null,b=a instanceof Element?a:null,b="string"==typeof a?document.querySelector('#WRAPPER > #MENU-SIDE > span[data-link="'+a+'"]'):b,b=null==b?document.querySelector('#WRAPPER > #MENU-SIDE > span[data-link="'+pageManager.pagelist[0]+'"]'):b;if(null==b)return!1;null!=c&&c.remClass("active");null!=b&&b.addClass("active");b.getData("link")&&(DOM.HEADER.addClass("loading"),pageManager.setPage(b.getData("link")), +pageManager.activeXHR.addEventListener("loadend",function(){1<=pageManager.vars.length&&null!=document.querySelector('#CONTAINER > section[data-sublink="'+pageManager.vars[0]+'"]')?navSubMenu(pageManager.vars[0]):navSubMenu(null);var a=document.querySelector("#MENU-SIDE > span[data-link="+pageManager.page+"] + div.sub");null!=a&&a.addEventListener("click",function(a){for(a=a.target;a!=document.body&&!a.getData("sublink");)a=a.parentNode;a.getData("sublink")&&navSubMenu(a)},!1);DOM.HEADER.remClass("loading")}, +!1))}DOM.MENUSIDE.addEventListener("click",function(a){for(a=a.target;a!=document.body&&!a.getData("link");)a=a.parentNode;a.getData("link")&&navMenu(a.getData("link"))},!1);function reload(){navMenu(pageManager.page)}var LOGIN={show:document.getElementById("user-data"),hide:document.getElementById("login-close"),page:document.getElementById("LOGIN")};LOGIN.show.addEventListener("click",function(a){LOGIN.page.className="active"},!1); +LOGIN.hide.addEventListener("click",function(a){LOGIN.page.className=""},!1);pageManagerClass.prototype.ajax("/f/json/menu/conf",function(a){var c=[];a=JSON.parse(a);for(var b=0;b section[data-sublink="'+target.getData('sublink')+'"]'); - if( targetSection != null ) - targetSection.addClass('active'); + // On affiche les sections associées + var targetSections = document.querySelectorAll('#CONTAINER > section[data-sublink="'+target.getData('sublink')+'"]'); + for( var i = 0 ; i < targetSections.length ; i++ ) + targetSections[i].addClass('active'); } diff --git a/js/includes/sociogram-min.js b/js/includes/sociogram-min.js new file mode 100644 index 0000000..388647b --- /dev/null +++ b/js/includes/sociogram-min.js @@ -0,0 +1,10 @@ +function sociogramClass(a){this.container=a;this.log("sociogram created")} +sociogramClass.prototype={container:this.container,sigma:null,request:{path:"charts/network_data"},response:null,nodes:[],edges:[],rad:500,nodeDistance:100,overloadGraph:function(){},load:function(){},nodeAt:function(a,b){},arrange:function(a,b,d){},extractNodesFromResponse:function(){},extractEdgesFromResponse:function(){},renderNodes:function(){},renderEdges:function(){},overload:{nodeNeighbors:function(a){},nodeDirectNeighbors:function(a){}},bindings:{clickNode:function(a,b){},clickStage:function(a, +b){}},log:function(a){console.log("--[SOCIOGRAM]--");console.warn(a);console.log("--[/SOCIOGRAM]--")}};sociogramClass.prototype.overloadGraph=function(){sigma.classes.graph.addMethod("nodeNeighbors",this.overload.nodeNeighbors);sigma.classes.graph.addMethod("nodeDirectNeighbors",this.overload.nodeDirectNeighbors);this.log("graph overloaded")}; +sociogramClass.prototype.load=function(){this.sigma=new sigma({renderer:{container:this.container,type:"canvas"}});var a=this;api.send(this.request,function(b){a.log(b);0==b.ModuleError&&(a.response=b,a.sigma.settings({defaultNodeColor:"#348ed8",defaultLabelSize:14,defaultLabelBGColor:"#ddd",defaultHoverLabelBGColor:"#002147",defaultLabelHoverColor:"#fff",labelThreshold:10,defaultEdgeType:"line"}),a.extractNodesFromResponse(),a.extractEdgesFromResponse(),a.addNodes(),a.addEdges(),a.sigma.bind("clickNode", +function(b){a.bindings.clickNode(a,b)}),a.sigma.bind("clickStage",function(b){a.bindings.clickStage(a,b)}),a.sigma.graph.nodes().forEach(function(b){a.arrange(b.id,null,!0)}),a.sigma.camera.ratio=1.2,a.sigma.refresh())})};sociogramClass.prototype.nodeAt=function(a,b){var d=this.sigma.graph.nodes(),c=null,e;for(e in d){var f=Math.sqrt(Math.pow(a-d[e].x,2)+Math.pow(b-d[e].y,2));if(null==c||fMath.PI/10){e=!0;break}}while(e);a.x=b.x+this.nodeDistance*Math.cos(d);a.y=b.y+this.nodeDistance*Math.sin(d);this.arrange(a.id)}this.sigma.refresh()}};sociogramClass.prototype.overload.nodeNeighbors=function(a){a=this.allNeighborsIndex[a];var b=[],d;for(d in a)b.push(d);for(;0 Ajout de méthodes +* +*/ +sociogramClass.prototype.overloadGraph = function(){ + sigma.classes.graph.addMethod('nodeNeighbors', this.overload.nodeNeighbors); + sigma.classes.graph.addMethod('nodeDirectNeighbors', this.overload.nodeDirectNeighbors); + this.log('graph overloaded'); +}; + + + + + + + + + + + + + + + +/* (1) Point d'amorçage */ +sociogramClass.prototype.load = function(){ + // {1} On instancie SIGMA // + this.sigma = new sigma({ renderer: { container: this.container, 'type': 'canvas' } }); + + var thisPtr = this; + + // {2} On récupère les données via l'API // + api.send(this.request, function(response){ + thisPtr.log(response); + + // Si erreur, on quitte + if( response.ModuleError != 0 ) return; + + // On enregistre la réponse + thisPtr.response = response; + + + // {3} On paramètre SIGMA // + thisPtr.sigma.settings({ + defaultNodeColor: '#348ed8', + defaultLabelSize: 14, + defaultLabelBGColor: "#ddd", + defaultHoverLabelBGColor: "#002147", + defaultLabelHoverColor: "#fff", + labelThreshold: 10, + defaultEdgeType: "line" + }); + + // {4} On recupere les noeuds et les liens // + thisPtr.extractNodesFromResponse(); + thisPtr.extractEdgesFromResponse(); + + // {5} On ajoute les noeuds et les liens au rendu // + thisPtr.addNodes(); + thisPtr.addEdges(); + + + // {6} On définit les évènements // + // On affiche que les voisins d'un noeud quand on clique sur lui + thisPtr.sigma.bind('clickNode', function(e){ + thisPtr.bindings.clickNode(thisPtr, e); + }); + + // On affiche tous les noeuds quand on clique dans le vide + thisPtr.sigma.bind('clickStage', function(e){ + thisPtr.bindings.clickStage(thisPtr, e); + }); + + // {7} On positionne spatialement les noeuds // + thisPtr.sigma.graph.nodes().forEach(function(n){ thisPtr.arrange(n.id, null, true); }); + + // {8} On affiche le rendu // + thisPtr.sigma.camera.ratio = 1.2; + thisPtr.sigma.refresh(); + }); +}; + + + + + + + + + + + + + + + + + + + + + + + + + + +/* RETOURNE LA DISTANCE AVEC LE NOEUD LE PLUS PRES +* +* @x Abscisse du point +* @y Ordonnees du point +* +* @return distance Retourne la distance du noeud le plus proche +* +*/ +sociogramClass.prototype.nodeAt = function(x, y){ + var nodes = this.sigma.graph.nodes(); + var minDistance = null; + for( var nodeId in nodes ){ + var distance = Math.sqrt( Math.pow(x-nodes[nodeId].x, 2) + Math.pow(y-nodes[nodeId].y, 2) ); + if( minDistance == null || distance < minDistance ) + minDistance = distance; + } + + return minDistance; +}; + + + + + + + + + +/* POSITIONNE LES VOISINS AUTOUR DU NOEUD COURANT +* +* @nodeId Id du noeud courant +* @pos Contient {x, y} position initiale, sinon la position actuelle du noeud +* +*/ +sociogramClass.prototype.arrange = function(nodeId, pos, alone){ + var node = this.sigma.graph.nodes(nodeId); + + // Si le noeud est deja place, on ne fais rien + if( node.x != 0 || node.y != 0 ) return; + + pos = (pos==null) ? {x: node.x, y: node.y} : pos; // On recupere la position + + // Tant que le noeud est trop proche d'un autre, on l'eloigne + // UNIQUEMENT si alone n'est pas NULL + if( alone ){ + while( this.nodeAt(pos.x, pos.y) < 2*this.nodeDistance ){ + pos = { + x: pos.x + 2*this.nodeDistance*Math.cos(Math.random()*2*Math.PI), + y: pos.y + 2*this.nodeDistance*Math.sin(Math.random()*2*Math.PI) + }; + + + + + + + } + } + + // On recupere les voisins directs + var neighborsId = this.sigma.graph.nodeDirectNeighbors(nodeId); + var neighbors = {}; + + + + + + + var neighborsCount = 0; + for( var neighborId in neighborsId ){ + neighbors[neighborId] = this.sigma.graph.nodes(neighborId); + neighborsCount++; + } + + + // On positionne le noeud + node.x = pos.x; + node.y = pos.y; + + var angles = []; + + // On positionne chaque voisin si c'est pas deja fait + for( neighborId in neighbors ){ + var current = this.sigma.graph.nodes(neighborId); + // Si n'est pas deja positionne + if( current.x == 0 && current.y == 0 ){ + // On cherche un angle tant qu'il est pas trop pres d'un deja pris + var angle, alreadyUsed = false; + do{ + angle = Math.random()*2*Math.PI; + for( var i = 0 ; i < angles.length ; i++ ) + if( Math.abs(angle-angles[i]) > Math.PI/10 ){ + alreadyUsed = true; + break; + } + + }while( alreadyUsed ); + + current.x = pos.x + this.nodeDistance*Math.cos(angle); + current.y = pos.y + this.nodeDistance*Math.sin(angle); + this.arrange(current.id); + } + } + + this.sigma.refresh(); +}; + + + + + + + + + + +/* RENVOIE LA LISTE DES VOISINS (DIRECTS & INDIRECTS) D'UN NOEUD DONNÉ +* +* @nodeId Id du noeud en question +* +* @return neighbors Liste des voisins directs+indirects +* +*/ +sociogramClass.prototype.overload.nodeNeighbors = function(nodeId){ + var neighbors = this.allNeighborsIndex[nodeId]; + + // Pile des voisins pour lesquels il faut chercher leurs voisins + var stack = []; + for( var neighborId in neighbors ) stack.push(neighborId); + + // Tant qu'il reste des voisins a trouver + while( stack.length > 0 ){ + var subneighbors = this.allNeighborsIndex[stack[0]]; + for( var subId in subneighbors ) + // Si le voisin est pas deja dans la liste/pile, on l'ajoute a la liste des voisins + if( neighbors[subId] == null ){ + stack.push(subId); // On ajoute a la pile + neighbors[subId] = subneighbors[subId]; // On ajoute a la liste complete + } + + stack.shift(); + } + + + // On retourne le resultat + return neighbors; +}; + + + + + + + + + +/* RENVOIE LA LISTE DES VOISINS DIRECTS D'UN NOEUD DONNÉ +* +* @nodeId Id du noeud en question +* +* @return neighbors Liste des voisins directs +* +*/ +sociogramClass.prototype.overload.nodeDirectNeighbors = function(nodeId){ + return this.allNeighborsIndex[nodeId]; +}; + + + + + + + + + +/* EXTRAIT LES NOEUDS DE LA RÉPONSE DE L'API +* +*/ +sociogramClass.prototype.extractNodesFromResponse = function(){ + this.nodes = []; + + // Pour chaque alter + for( var i = 0 ; i < this.response.data.alter.length ; i++ ) + this.nodes.push({ + 'id': 'n-'+this.response.data.alter[i][0], + 'label': this.response.data.alter[i][1], + 'x': 0, + 'y': 0, + 'size': this.response.data.alter[i][2] + }); + +}; + + + + + + + + + +/* EXTRAIT LES NOEUDS DE LA RÉPONSE DE L'API +* +*/ +sociogramClass.prototype.extractEdgesFromResponse = function(){ + this.edges = []; + + // Pour chaque inter + for( var i = 0 ; i < this.response.data.inter.length ; i++ ) + this.edges.push({ + 'id': 'e-'+this.response.data.inter[i][0]+'-'+this.response.data.inter[i][1], + 'source': 'n-'+this.response.data.inter[i][0], + 'target': 'n-'+this.response.data.inter[i][1] + }); +}; + + + + + + + + + +/* AJOUTE LES NOEUDS AU RENDU (SIGMA GRAPH) +* +*/ +sociogramClass.prototype.addNodes = function(){ + /* (5) On ajoute nos noeuds */ + for( var i = 0 ; i < this.nodes.length ; i++) + this.sigma.graph.addNode(this.nodes[i]); +}; + + + + + + + + +/* AJOUTE LES LIENS AU RENDU (SIGMA GRAPH) +* +*/ +sociogramClass.prototype.addEdges = function(){ + /* (6) On ajoute nos liens */ + for( var i = 0 ; i < this.edges.length ; i++) + this.sigma.graph.addEdge(this.edges[i]); +}; + + + +/* FONCTION ACTIVÉE LORS DU CLIC SUR UN NOEUD +* +*/ +sociogramClass.prototype.bindings.clickNode = function(thisPtr, e){ + console.log( thisPtr ); + var nodeId = e.data.node.id; + // On recupere les voisins + var neighborNodes = thisPtr.sigma.graph.nodeNeighbors(nodeId); + neighborNodes[nodeId] = e.data.node; // on ajoute le noeud clique + + thisPtr.sigma.graph.nodes().forEach(function(n) { + if( neighborNodes[n.id] != null ) n.color = n.originalColor; + else n.color = '#888'; + }); + + thisPtr.sigma.refresh(); +}; + + + + +/* FONCTION ACTIVÉE LORS DU CLIC DANS LE VIDE +* +*/ +sociogramClass.prototype.bindings.clickStage = function(thisPtr, e){ + thisPtr.sigma.graph.nodes().forEach(function(n){ n.color = n.originalColor; }); + thisPtr.sigma.refresh(); +}; + + + + + + + + + + + + + + + + + +// var i, +// s, +// o, +// L = 10, +// N = 100, +// E = 500, +// g = { +// nodes: [], +// edges: [] +// }, +// step = 0; +// // Generate a random graph: +// for (i = 0; i < N; i++) { +// o = { +// id: 'n' + i, +// label: 'Node ' + i, +// circular_x: L * Math.cos(Math.PI * 2 * i / N - Math.PI / 2), +// circular_y: L * Math.sin(Math.PI * 2 * i / N - Math.PI / 2), +// circular_size: Math.random(), +// circular_color: '#' + ( +// Math.floor(Math.random() * 16777215).toString(16) + '000000' +// ).substr(0, 6), +// grid_x: i % L, +// grid_y: Math.floor(i / L), +// grid_size: 1, +// grid_color: '#ccc' +// }; + + + + + + + + +// ['x', 'y', 'size', 'color'].forEach(function(val) { +// o[val] = o['grid_' + val]; +// }); +// g.nodes.push(o); +// } +// for (i = 0; i < E; i++) +// g.edges.push({ +// id: 'e' + i, +// source: 'n' + (Math.random() * N | 0), +// target: 'n' + (Math.random() * N | 0), +// }); +// // Instantiate sigma: +// s = new sigma({ +// graph: g, +// renderer: { container: document.getElementById('graph-container'), 'type': 'canvas' }, +// settings: { +// animationsTime: 1000 +// } +// }); + +// setInterval(function(){ +// var prefix = ['grid_', 'circular_'][step = +!step]; +// sigma.plugins.animate( +// s, +// { +// x: prefix + 'x', +// y: prefix + 'y', +// size: prefix + 'size', +// color: prefix + 'color' +// } +// ); +// }, 10000); diff --git a/js/includes/test.js b/js/includes/test.js deleted file mode 100644 index 84d02ea..0000000 --- a/js/includes/test.js +++ /dev/null @@ -1 +0,0 @@ -var a = 'Hello World!'; diff --git a/js/lib/api-min.js b/js/lib/api-min.js new file mode 100644 index 0000000..daa0b69 --- /dev/null +++ b/js/lib/api-min.js @@ -0,0 +1,3 @@ +function APIClass(b){this.target=b} +APIClass.prototype={xhr:[],send:function(b,c,f){b.hasOwnProperty("path")||c({ModuleError:4});for(var a=0;a l'objet passé en JSON à http://host/api/ + * @param pRequest l'objet passé en POST (attribut->postfield) à http://host/api/ * @param pHandler fonction qui s'éxécutera lors de la réponse (1 argument -> réponse) * @param pToken si donne, token d'auth pour l'api * @@ -68,7 +68,7 @@ APIClass.prototype = { pHandler({ModuleError:3}); } - } + }; // on créé un formulaire POST (virtuel) var form = new FormData(); diff --git a/js/lib/highcharts/js/modules/canvas-tools.src.js b/js/lib/highcharts/js/modules/canvas-tools.src.js index 0a839e3..9c4eb3b 100755 --- a/js/lib/highcharts/js/modules/canvas-tools.src.js +++ b/js/lib/highcharts/js/modules/canvas-tools.src.js @@ -289,7 +289,7 @@ function RGBColor(color_string) /** * @license canvg.js - Javascript SVG parser and renderer on Canvas - * MIT Licensed + * MIT Licensed * Gabe Lerner (gabelerner@gmail.com) * http://code.google.com/p/canvg/ * @@ -345,13 +345,13 @@ if(!Array.prototype.indexOf){ canvg(c, div.innerHTML); } return; - } + } opts = opts || {}; - + if (typeof target == 'string') { target = document.getElementById(target); } - + // reuse class per canvas var svg; if (target.svg == null) { @@ -363,7 +363,7 @@ if(!Array.prototype.indexOf){ svg.stop(); } svg.opts = opts; - + var ctx = target.getContext('2d'); if (typeof(s.documentElement) != 'undefined') { // load from xml doc @@ -381,10 +381,10 @@ if(!Array.prototype.indexOf){ function build() { var svg = { }; - + svg.FRAMERATE = 30; svg.MAX_VIRTUAL_PIXELS = 30000; - + // globals svg.init = function(ctx) { svg.Definitions = {}; @@ -404,14 +404,14 @@ if(!Array.prototype.indexOf){ if (d != null && typeof(d) == 'number') return d; if (d == 'x') return this.width(); if (d == 'y') return this.height(); - return Math.sqrt(Math.pow(this.width(), 2) + Math.pow(this.height(), 2)) / Math.sqrt(2); + return Math.sqrt(Math.pow(this.width(), 2) + Math.pow(this.height(), 2)) / Math.sqrt(2); } }); } svg.init(); - + // images loaded - svg.ImagesLoaded = function() { + svg.ImagesLoaded = function() { for (var i=0; i]*>/, ''); var xmlDoc = new ActiveXObject('Microsoft.XMLDOM'); xmlDoc.async = 'false'; - xmlDoc.loadXML(xml); + xmlDoc.loadXML(xml); return xmlDoc; - } + } } - + svg.Property = function(name, value) { this.name = name; this.value = value; - + this.hasValue = function() { return (this.value != null && this.value !== ''); } - + // return the numerical value of the property this.numValue = function() { if (!this.hasValue()) return 0; - + var n = parseFloat(this.value); if ((this.value + '').match(/%$/)) { n = n / 100.0; } return n; } - + this.valueOrDefault = function(def) { if (this.hasValue()) return this.value; return def; } - + this.numValueOrDefault = function(def) { if (this.hasValue()) return this.numValue(); return def; } - + /* EXTENSIONS */ var that = this; - + // color extensions this.Color = { // augment the current color value with the opacity @@ -500,7 +500,7 @@ if(!Array.prototype.indexOf){ return new svg.Property(that.name, newValue); } } - + // definition extensions this.Definition = { // get the definition from the definitions table @@ -508,43 +508,43 @@ if(!Array.prototype.indexOf){ var name = that.value.replace(/^(url\()?#([^\)]+)\)?$/, '$2'); return svg.Definitions[name]; }, - + isUrl: function() { return that.value.indexOf('url(') == 0 }, - + getFillStyle: function(e) { var def = this.getDefinition(); - + // gradient if (def != null && def.createGradient) { return def.createGradient(svg.ctx, e); } - + // pattern if (def != null && def.createPattern) { return def.createPattern(svg.ctx, e); } - + return null; } } - + // length extensions this.Length = { DPI: function(viewPort) { return 96.0; // TODO: compute? }, - + EM: function(viewPort) { var em = 12; - + var fontSize = new svg.Property('fontSize', svg.Font.Parse(svg.ctx.font).fontSize); if (fontSize.hasValue()) em = fontSize.Length.toPixels(viewPort); - + return em; }, - + // get the length as pixels toPixels: function(viewPort) { if (!that.hasValue()) return 0; @@ -561,7 +561,7 @@ if(!Array.prototype.indexOf){ return that.numValue(); } } - + // time extensions this.Time = { // get the time as milliseconds @@ -573,7 +573,7 @@ if(!Array.prototype.indexOf){ return that.numValue(); } } - + // angle extensions this.Angle = { // get the angle as radians @@ -587,25 +587,25 @@ if(!Array.prototype.indexOf){ } } } - + // fonts svg.Font = new (function() { this.Styles = ['normal','italic','oblique','inherit']; this.Variants = ['normal','small-caps','inherit']; this.Weights = ['normal','bold','bolder','lighter','100','200','300','400','500','600','700','800','900','inherit']; - - this.CreateFont = function(fontStyle, fontVariant, fontWeight, fontSize, fontFamily, inherit) { + + this.CreateFont = function(fontStyle, fontVariant, fontWeight, fontSize, fontFamily, inherit) { var f = inherit != null ? this.Parse(inherit) : this.CreateFont('', '', '', '', '', svg.ctx.font); - return { - fontFamily: fontFamily || f.fontFamily, - fontSize: fontSize || f.fontSize, - fontStyle: fontStyle || f.fontStyle, - fontWeight: fontWeight || f.fontWeight, + return { + fontFamily: fontFamily || f.fontFamily, + fontSize: fontSize || f.fontSize, + fontStyle: fontStyle || f.fontStyle, + fontWeight: fontWeight || f.fontWeight, fontVariant: fontVariant || f.fontVariant, - toString: function () { return [this.fontStyle, this.fontVariant, this.fontWeight, this.fontSize, this.fontFamily].join(' ') } - } + toString: function () { return [this.fontStyle, this.fontVariant, this.fontWeight, this.fontSize, this.fontFamily].join(' ') } + } } - + var that = this; this.Parse = function(s) { var f = {}; @@ -622,7 +622,7 @@ if(!Array.prototype.indexOf){ return f; } }); - + // points and paths svg.ToNumberArray = function(s) { var a = svg.trim(svg.compressSpaces((s || '').replace(/,/g, ' '))).split(' '); @@ -630,15 +630,15 @@ if(!Array.prototype.indexOf){ a[i] = parseFloat(a[i]); } return a; - } + } svg.Point = function(x, y) { this.x = x; this.y = y; - + this.angleTo = function(p) { return Math.atan2(p.y - this.y, p.x - this.x); } - + this.applyTransform = function(v) { var xp = this.x * v[0] + this.y * v[2] + v[4]; var yp = this.x * v[1] + this.y * v[3] + v[5]; @@ -658,20 +658,20 @@ if(!Array.prototype.indexOf){ } return path; } - + // bounding box svg.BoundingBox = function(x1, y1, x2, y2) { // pass in initial points if you want this.x1 = Number.NaN; this.y1 = Number.NaN; this.x2 = Number.NaN; this.y2 = Number.NaN; - + this.x = function() { return this.x1; } this.y = function() { return this.y1; } this.width = function() { return this.x2 - this.x1; } this.height = function() { return this.y2 - this.y1; } - - this.addPoint = function(x, y) { + + this.addPoint = function(x, y) { if (x != null) { if (isNaN(this.x1) || isNaN(this.x2)) { this.x1 = x; @@ -680,7 +680,7 @@ if(!Array.prototype.indexOf){ if (x < this.x1) this.x1 = x; if (x > this.x2) this.x2 = x; } - + if (y != null) { if (isNaN(this.y1) || isNaN(this.y2)) { this.y1 = y; @@ -689,15 +689,15 @@ if(!Array.prototype.indexOf){ if (y < this.y1) this.y1 = y; if (y > this.y2) this.y2 = y; } - } + } this.addX = function(x) { this.addPoint(x, null); } this.addY = function(y) { this.addPoint(null, y); } - + this.addBoundingBox = function(bb) { this.addPoint(bb.x1, bb.y1); this.addPoint(bb.x2, bb.y2); } - + this.addQuadraticCurve = function(p0x, p0y, p1x, p1y, p2x, p2y) { var cp1x = p0x + 2/3 * (p1x - p0x); // CP1 = QP0 + 2/3 *(QP1-QP0) var cp1y = p0y + 2/3 * (p1y - p0y); // CP1 = QP0 + 2/3 *(QP1-QP0) @@ -705,25 +705,25 @@ if(!Array.prototype.indexOf){ var cp2y = cp1y + 1/3 * (p2y - p0y); // CP2 = CP1 + 1/3 *(QP2-QP0) this.addBezierCurve(p0x, p0y, cp1x, cp2x, cp1y, cp2y, p2x, p2y); } - + this.addBezierCurve = function(p0x, p0y, p1x, p1y, p2x, p2y, p3x, p3y) { // from http://blog.hackers-cafe.net/2009/06/how-to-calculate-bezier-curves-bounding.html var p0 = [p0x, p0y], p1 = [p1x, p1y], p2 = [p2x, p2y], p3 = [p3x, p3y]; this.addPoint(p0[0], p0[1]); this.addPoint(p3[0], p3[1]); - + for (i=0; i<=1; i++) { - var f = function(t) { + var f = function(t) { return Math.pow(1-t, 3) * p0[i] + 3 * Math.pow(1-t, 2) * t * p1[i] + 3 * (1-t) * Math.pow(t, 2) * p2[i] + Math.pow(t, 3) * p3[i]; } - + var b = 6 * p0[i] - 12 * p1[i] + 6 * p2[i]; var a = -3 * p0[i] + 9 * p1[i] - 9 * p2[i] + 3 * p3[i]; var c = 3 * p1[i] - 3 * p0[i]; - + if (a == 0) { if (b == 0) continue; var t = -c / b; @@ -733,7 +733,7 @@ if(!Array.prototype.indexOf){ } continue; } - + var b2ac = Math.pow(b, 2) - 4 * c * a; if (b2ac < 0) continue; var t1 = (-b + Math.sqrt(b2ac)) / (2 * a); @@ -748,23 +748,23 @@ if(!Array.prototype.indexOf){ } } } - + this.isPointInBox = function(x, y) { return (this.x1 <= x && x <= this.x2 && this.y1 <= y && y <= this.y2); } - + this.addPoint(x1, y1); this.addPoint(x2, y2); } - + // transforms - svg.Transform = function(v) { + svg.Transform = function(v) { var that = this; this.Type = {} - + // translate this.Type.translate = function(s) { - this.p = svg.CreatePoint(s); + this.p = svg.CreatePoint(s); this.apply = function(ctx) { ctx.translate(this.p.x || 0.0, this.p.y || 0.0); } @@ -772,7 +772,7 @@ if(!Array.prototype.indexOf){ p.applyTransform([1, 0, 0, 1, this.p.x || 0.0, this.p.y || 0.0]); } } - + // rotate this.Type.rotate = function(s) { var a = svg.ToNumberArray(s); @@ -789,9 +789,9 @@ if(!Array.prototype.indexOf){ p.applyTransform([1, 0, 0, 1, this.p.x || 0.0, this.p.y || 0.0]); p.applyTransform([Math.cos(a), Math.sin(a), -Math.sin(a), Math.cos(a), 0, 0]); p.applyTransform([1, 0, 0, 1, -this.p.x || 0.0, -this.p.y || 0.0]); - } + } } - + this.Type.scale = function(s) { this.p = svg.CreatePoint(s); this.apply = function(ctx) { @@ -799,9 +799,9 @@ if(!Array.prototype.indexOf){ } this.applyToPoint = function(p) { p.applyTransform([this.p.x || 0.0, 0, 0, this.p.y || 0.0, 0, 0]); - } + } } - + this.Type.matrix = function(s) { this.m = svg.ToNumberArray(s); this.apply = function(ctx) { @@ -809,44 +809,44 @@ if(!Array.prototype.indexOf){ } this.applyToPoint = function(p) { p.applyTransform(this.m); - } + } } - + this.Type.SkewBase = function(s) { this.base = that.Type.matrix; this.base(s); this.angle = new svg.Property('angle', s); } this.Type.SkewBase.prototype = new this.Type.matrix; - + this.Type.skewX = function(s) { this.base = that.Type.SkewBase; this.base(s); this.m = [1, 0, Math.tan(this.angle.Angle.toRadians()), 1, 0, 0]; } this.Type.skewX.prototype = new this.Type.SkewBase; - + this.Type.skewY = function(s) { this.base = that.Type.SkewBase; this.base(s); this.m = [1, Math.tan(this.angle.Angle.toRadians()), 0, 1, 0, 0]; } this.Type.skewY.prototype = new this.Type.SkewBase; - + this.transforms = []; - + this.apply = function(ctx) { for (var i=0; i= this.tokens.length - 1; } - + this.isCommandOrEnd = function() { if (this.isEnd()) return true; return this.tokens[this.i + 1].match(/^[A-Za-z]$/) != null; } - + this.isRelativeCommand = function() { return this.command == this.command.toLowerCase(); } - + this.getToken = function() { this.i = this.i + 1; return this.tokens[this.i]; } - + this.getScalar = function() { return parseFloat(this.getToken()); } - + this.nextCommand = function() { this.previousCommand = this.command; this.command = this.getToken(); - } - + } + this.getPoint = function() { var p = new svg.Point(this.getScalar(), this.getScalar()); return this.makeAbsolute(p); } - + this.getAsControlPoint = function() { var p = this.getPoint(); this.control = p; return p; } - + this.getAsCurrentPoint = function() { var p = this.getPoint(); this.current = p; - return p; + return p; } - + this.getReflectedControlPoint = function() { if (this.previousCommand.toLowerCase() != 'c' && this.previousCommand.toLowerCase() != 's') { return this.current; } - + // reflect point - var p = new svg.Point(2 * this.current.x - this.control.x, 2 * this.current.y - this.control.y); + var p = new svg.Point(2 * this.current.x - this.control.x, 2 * this.current.y - this.control.y); return p; } - + this.makeAbsolute = function(p) { if (this.isRelativeCommand()) { p.x = this.current.x + p.x; @@ -1477,7 +1477,7 @@ if(!Array.prototype.indexOf){ } return p; } - + this.addMarker = function(p, from, priorTo) { // if the last angle isn't filled in because we didn't have this point yet ... if (priorTo != null && this.angles.length > 0 && this.angles[this.angles.length-1] == null) { @@ -1485,12 +1485,12 @@ if(!Array.prototype.indexOf){ } this.addMarkerAngle(p, from == null ? null : from.angleTo(p)); } - + this.addMarkerAngle = function(p, a) { this.points.push(p); this.angles.push(a); - } - + } + this.getMarkerPoints = function() { return this.points; } this.getMarkerAngles = function() { for (var i=0; i this.maxDuration) { // loop for indefinitely repeating animations @@ -1953,49 +1953,49 @@ if(!Array.prototype.indexOf){ else { return false; // no updates made } - } + } this.duration = this.duration + delta; - + // if we're past the begin time var updated = false; if (this.begin < this.duration) { var newValue = this.calcValue(); // tween - + if (this.attribute('type').hasValue()) { // for transform, etc. var type = this.attribute('type').value; newValue = type + '(' + newValue + ')'; } - + this.getProperty().value = newValue; updated = true; } - + return updated; } - + // fraction of duration we've covered this.progress = function() { return ((this.duration - this.begin) / (this.maxDuration - this.begin)); - } + } } svg.Element.AnimateBase.prototype = new svg.Element.ElementBase; - + // animate element svg.Element.animate = function(node) { this.base = svg.Element.AnimateBase; this.base(node); - + this.calcValue = function() { var from = this.attribute('from').numValue(); var to = this.attribute('to').numValue(); - + // tween value linearly - return from + (to - from) * this.progress(); + return from + (to - from) * this.progress(); }; } svg.Element.animate.prototype = new svg.Element.AnimateBase; - + // animate color element svg.Element.animateColor = function(node) { this.base = svg.Element.AnimateBase; @@ -2004,7 +2004,7 @@ if(!Array.prototype.indexOf){ this.calcValue = function() { var from = new RGBColor(this.attribute('from').value); var to = new RGBColor(this.attribute('to').value); - + if (from.ok && to.ok) { // tween color linearly var r = from.r + (to.r - from.r) * this.progress(); @@ -2016,26 +2016,26 @@ if(!Array.prototype.indexOf){ }; } svg.Element.animateColor.prototype = new svg.Element.AnimateBase; - + // animate transform element svg.Element.animateTransform = function(node) { this.base = svg.Element.animate; this.base(node); } svg.Element.animateTransform.prototype = new svg.Element.animate; - + // font element svg.Element.font = function(node) { this.base = svg.Element.ElementBase; this.base(node); - this.horizAdvX = this.attribute('horiz-adv-x').numValue(); - + this.horizAdvX = this.attribute('horiz-adv-x').numValue(); + this.isRTL = false; this.isArabic = false; this.fontFace = null; this.missingGlyph = null; - this.glyphs = []; + this.glyphs = []; for (var i=0; i0 && text[i-1]!=' ' && i0 && text[i-1]!=' ' && (i == text.length-1 || text[i+1]==' ')) arabicForm = 'initial'; if (typeof(font.glyphs[c]) != 'undefined') { @@ -2184,7 +2184,7 @@ if(!Array.prototype.indexOf){ if (glyph == null) glyph = font.missingGlyph; return glyph; } - + this.renderChildren = function(ctx) { var customFont = this.parent.style('font-family').Definition.getDefinition(); if (customFont != null) { @@ -2192,7 +2192,7 @@ if(!Array.prototype.indexOf){ var fontStyle = this.parent.style('font-style').valueOrDefault(svg.Font.Parse(svg.ctx.font).fontStyle); var text = this.getText(); if (customFont.isRTL) text = text.split("").reverse().join(""); - + var dx = svg.ToNumberArray(this.parent.attribute('dx').value); for (var i=0; i 0 ? node.childNodes[0].nodeValue : // element node.text; @@ -2267,34 +2267,34 @@ if(!Array.prototype.indexOf){ } } svg.Element.tspan.prototype = new svg.Element.TextElementBase; - + // tref svg.Element.tref = function(node) { this.base = svg.Element.TextElementBase; this.base(node); - + this.getText = function() { var element = this.attribute('xlink:href').Definition.getDefinition(); if (element != null) return element.children[0].getText(); } } - svg.Element.tref.prototype = new svg.Element.TextElementBase; - + svg.Element.tref.prototype = new svg.Element.TextElementBase; + // a element svg.Element.a = function(node) { this.base = svg.Element.TextElementBase; this.base(node); - + this.hasText = true; for (var i=0; i 1 ? node.childNodes[1].nodeValue : ''); css = css.replace(/(\/\*([^*]|[\r\n]|(\*+([^*\/]|[\r\n])))*\*+\/)|(^[\s]*\/\/.*)/gm, ''); // remove comments @@ -2457,60 +2457,60 @@ if(!Array.prototype.indexOf){ } } svg.Element.style.prototype = new svg.Element.ElementBase; - - // use element + + // use element svg.Element.use = function(node) { this.base = svg.Element.RenderedElementBase; this.base(node); - + this.baseSetContext = this.setContext; this.setContext = function(ctx) { this.baseSetContext(ctx); if (this.attribute('x').hasValue()) ctx.translate(this.attribute('x').Length.toPixels('x'), 0); if (this.attribute('y').hasValue()) ctx.translate(0, this.attribute('y').Length.toPixels('y')); } - + this.getDefinition = function() { var element = this.attribute('xlink:href').Definition.getDefinition(); if (this.attribute('width').hasValue()) element.attribute('width', true).value = this.attribute('width').value; if (this.attribute('height').hasValue()) element.attribute('height', true).value = this.attribute('height').value; return element; } - + this.path = function(ctx) { var element = this.getDefinition(); if (element != null) element.path(ctx); } - + this.renderChildren = function(ctx) { var element = this.getDefinition(); if (element != null) element.render(ctx); } } svg.Element.use.prototype = new svg.Element.RenderedElementBase; - + // mask element svg.Element.mask = function(node) { this.base = svg.Element.ElementBase; this.base(node); - + this.apply = function(ctx, element) { - // render as temp svg + // render as temp svg var x = this.attribute('x').Length.toPixels('x'); var y = this.attribute('y').Length.toPixels('y'); var width = this.attribute('width').Length.toPixels('x'); var height = this.attribute('height').Length.toPixels('y'); - + // temporarily remove mask to avoid recursion var mask = element.attribute('mask').value; element.attribute('mask').value = ''; - + var cMask = document.createElement('canvas'); cMask.width = x + width; cMask.height = y + height; var maskCtx = cMask.getContext('2d'); this.renderChildren(maskCtx); - + var c = document.createElement('canvas'); c.width = x + width; c.height = y + height; @@ -2519,25 +2519,25 @@ if(!Array.prototype.indexOf){ tempCtx.globalCompositeOperation = 'destination-in'; tempCtx.fillStyle = maskCtx.createPattern(cMask, 'no-repeat'); tempCtx.fillRect(0, 0, x + width, y + height); - + ctx.fillStyle = tempCtx.createPattern(c, 'no-repeat'); ctx.fillRect(0, 0, x + width, y + height); - + // reassign mask - element.attribute('mask').value = mask; + element.attribute('mask').value = mask; } - + this.render = function(ctx) { // NO RENDER } } svg.Element.mask.prototype = new svg.Element.ElementBase; - + // clip element svg.Element.clipPath = function(node) { this.base = svg.Element.ElementBase; this.base(node); - + this.apply = function(ctx) { for (var i=0; ia)return!1;this.checker[a].value=this.input[a].value;return this.checker[a].check()},checkAll:function(){for(var a=!0,c=0;c(index=this.input.indexOf(a)))return null;c=1=this.input[index].value.length));e++){var f=new RegExp("^"+b[e]+"$");0==d.length||null==d[e]?d=d.slice(0,e).concat(this.defval[index][e]).concat(d.slice(e)):null==d[e].match(f)&&(d=null!=d[e].match(new RegExp("^"+ +b[e+1]+"$"))?d.slice(0,e).concat(this.defval[index][e]).concat(d.slice(e)):d.slice(0,e).concat(this.defval[index][e]).concat(d.slice(e+1)))}d=d.slice(0,b.length);this.input[index].value=d}}}; diff --git a/js/lib/input-checker.js b/js/lib/input-checker.js index f025c3e..baff462 100755 --- a/js/lib/input-checker.js +++ b/js/lib/input-checker.js @@ -1,8 +1,8 @@ // __ _ _ _ -// / _| ___ _ __ _ __ ___ __ _| |_ ___| |__ ___ ___| | _____ _ __ +// / _| ___ _ __ _ __ ___ __ _| |_ ___| |__ ___ ___| | _____ _ __ // | |_ / _ \| '__| '_ ` _ \ / _` | __|____ / __| '_ \ / _ \/ __| |/ / _ \ '__| -// | _| (_) | | | | | | | | (_| | ||_____| (__| | | | __/ (__| < __/ | -// |_| \___/|_| |_| |_| |_|\__,_|\__| \___|_| |_|\___|\___|_|\_\___|_| +// | _| (_) | | | | | | | | (_| | ||_____| (__| | | | __/ (__| < __/ | +// |_| \___/|_| |_| |_| |_|\__,_|\__| \___|_| |_|\___|\___|_|\_\___|_| // function formatChecker(pValue, pPattern, pRules){ this.value = pValue; @@ -64,7 +64,7 @@ formatChecker.prototype = { /* [1] On génère la RegExp si ce n'est pas déjà fait ====================================================*/ if( this.regexp == null ) this.compile(); - + /* [2] Gestion de la plaque à trous ====================================================*/ @@ -96,7 +96,7 @@ formatChecker.prototype = { } } - + // on retourne TRUE si c'est bon, FALSE sinon return this.value.match( this.regexp ) != null; @@ -131,11 +131,11 @@ formatChecker.prototype = { -// _ _ _ _ -// (_)_ __ _ __ _ _| |_ ___| |__ ___ ___| | _____ _ __ +// _ _ _ _ +// (_)_ __ _ __ _ _| |_ ___| |__ ___ ___| | _____ _ __ // | | '_ \| '_ \| | | | __|____ / __| '_ \ / _ \/ __| |/ / _ \ '__| -// | | | | | |_) | |_| | ||_____| (__| | | | __/ (__| < __/ | -// |_|_| |_| .__/ \__,_|\__| \___|_| |_|\___|\___|_|\_\___|_| +// | | | | | |_) | |_| | ||_____| (__| | | | __/ (__| < __/ | +// |_|_| |_| .__/ \__,_|\__| \___|_| |_|\___|\___|_|\_\___|_| // function inputChecker(){}; @@ -220,7 +220,7 @@ inputChecker.prototype = { * @pInputElement l'élément concerné * @pToEnd si on doit corriger jusqu'à la fin ou uniquement jusqu'à l'avancéé actuelle * - * + * * @return correctValue retourne la valeur corrigée * retourne NULL si erreur */ @@ -265,12 +265,12 @@ inputChecker.prototype = { -----------------------------------------------------------*/ if( tmpValue.length == 0 || tmpValue[i] == null ) tmpValue = tmpValue.slice(0, i).concat( this.defval[index][i] ).concat( tmpValue.slice(i) ); - + /* (2) Valeur ne correspond pas au schéma du caractère -----------------------------------------------------------*/ else if( tmpValue[i].match(tmpRegExp) == null ){ // si le caractère suivant match, on décale d'une position - if( tmpValue[i].match(new RegExp( '^'+RegExpByChar[i+1]+'$' )) != null ) + if( tmpValue[i].match(new RegExp( '^'+RegExpByChar[i+1]+'$' )) != null ) tmpValue = tmpValue.slice(0, i).concat( this.defval[index][i] ).concat( tmpValue.slice(i) ); // sinon on remplace else @@ -283,11 +283,11 @@ inputChecker.prototype = { tmpValue = tmpValue.slice(0, RegExpByChar.length); // on met à jour la valeur de l'élément input - this.input[index].value = tmpValue; + this.input[index].value = tmpValue; } } -}; \ No newline at end of file +}; diff --git a/js/lib/page-manager-min.js b/js/lib/page-manager-min.js new file mode 100644 index 0000000..8925234 --- /dev/null +++ b/js/lib/page-manager-min.js @@ -0,0 +1,9 @@ +function pageManagerClass(){}var ptrPageManagerClass; +pageManagerClass.prototype={depJS:null,depCSS:null,xhr:[],activeXHR:null,page:null,vars:[],path:"",jsPath:"js",cssPath:"css",pagelist:null,container:null,ajax:function(b,c,f,a){for(var d=0;d -1 ){ @@ -219,15 +219,15 @@ pageManagerClass.prototype = { var fd = new FormData(); for( var i = 0 ; i < this.vars.length ; i++ ) fd.append(this.vars[i], null); - + this.ajax(this.path+'/'+this.page+'.php', function(e){ ptrPageManagerClass.container.innerHTML = e; - ptrPageManagerClass.loadDependencies(); + ptrPageManagerClass.loadDependencies(); }, 'POST', fd); // change l'URL en conséquences(stateObj, titre, url) this.updateURL(); - + }else{ // si la page n'est pas spécifiée ou qu'elle n'est pas dans la liste des pages var urlGet = this.explodeURL(); @@ -248,12 +248,12 @@ pageManagerClass.prototype = { this.ajax(this.path+'/'+this.page+'.php', function(e){ ptrThis.container.innerHTML = e; - ptrThis.loadDependencies(); + ptrThis.loadDependencies(); }, 'POST', fd); // change l'URL en conséquences(stateObj, titre, url) this.updateURL(); - + }else // si l'url ne contient rien, on charge la page par défaut this.setPage(this.pagelist[0]); } @@ -276,4 +276,4 @@ pageManagerClass.prototype = { return this; } -} \ No newline at end of file +}; diff --git a/js/lib/reset-min.js b/js/lib/reset-min.js new file mode 100644 index 0000000..51124de --- /dev/null +++ b/js/lib/reset-min.js @@ -0,0 +1,4 @@ +function $(a){var b=document.querySelectorAll("#"+a);a=document.querySelectorAll("."+a);return 0 EXCLUSION, SINON -> INCLUSION + /* (0) On formatte les arguments */ + jsResource = typeof jsResource === 'string' ? jsResource : null; + callback = typeof callback === 'function' ? callback : function(){ console.log('[x] '+jsResource+' loaded'); }; + action = typeof action === 'boolean' ? action : false; - document.head.appendChild( tag ); + // Si la ressource n'est pas donnée + if( jsResource == null ) return false; - tag.onload = callback; + + /* (1) Gestion de l'inclusion */ + if( !action ){ + // Si le fichier est déja inclus, on lance le callback + if( includes.indexOf(jsResource) > -1 ){ + callback(); + return true; + } + + // On crée l'élément dans le tag + var tag = document.createElement('script'); + tag.type = 'text/javascript'; + tag.src = jsResource; + document.head.appendChild( tag ); + + // On ajoute la ressource et le tag à la liste + includes.push(jsResource); + includeTags.push(tag); + + // On définit le callback + tag.onload = callback; + + return true; + /* (2) Gestion de l'exclusion */ + }else{ + var index = includes.indexOf(jsResource); + + // On vérifie que le fichier est déja inclus + if( index == -1 ) return false; + + // On supprime l'élément + document.head.removeChild( includeTags[index] ); + + // On dé-indexe l'élément + includes.splice(index, 1); + includeTags.splice(index, 1); + + return true; + } } diff --git a/manager/Database.php b/manager/Database.php index df26985..ef75100 100755 --- a/manager/Database.php +++ b/manager/Database.php @@ -1,10 +1,10 @@ 'f/json/database-local/conf', @@ -29,8 +29,8 @@ $this->dbname = $dbname; $this->username = $username; $this->password = $password; - - try{ + + try{ self::$pdo = new \PDO('mysql:host='.$this->host.';dbname='.$this->dbname, $this->username, $this->password); // On signale que tout s'est bien passe @@ -57,7 +57,7 @@ self::$instance = new DataBase($conf['host'], $conf['dbname'], $conf['user'], $conf['password']); } - + return self::$instance; } @@ -104,7 +104,7 @@ * @fetchData le résultat d'une $requeteSQL->fetchAll() * @oneDimension FAUX <=> fetchAll ; VRAI <=> fetch * - * @return newFetchData retourne le tableau donné en paramètre mais sans les valeurs à clés numériques + * @return newFetchData retourne le tableau donné en paramètre mais sans les valeurs à clés numériques * */ public static function delNumeric($fetchData, $oneDimension=false){ @@ -121,19 +121,19 @@ // on supprime les doublons des entrées (indice numérique) for( $i = 0 ; $i < count($fetchData) ; $i++ ) // pour tout les utilisateurs foreach($fetchData[$i] as $col => $val){ // pour toutes les entrées - + if( !mb_detect_encoding($val, 'UTF-8') ) $fetchData[$i][$col] = utf8_encode($val); - + if( is_int($col) ){ // Si indice numerique if( $nextEquivalent ) // Si suit un indice textuel unset( $fetchData[$i][$col] ); // on supprime l'indice - + $nextEquivalent = false; // Dans tous les cas, on dit que le prochain ne pourra pas etre supprime si numerique }else // Si l'indice n'est pas un entier $nextEquivalent = true; // On signale qu'il y aura peut etre un indice numerique suivant - + } /* [2] 1 dimensions @@ -142,14 +142,14 @@ // on supprime les doublons des entrées (indice numérique) foreach($fetchData as $i=>$val){ // pour toutes les entrées - + if( !mb_detect_encoding($val, 'UTF-8') ) $fetchData[$i] = utf8_encode($val); if( is_int($i) ){ // Si indice numerique if( $nextEquivalent ) // Si suit un indice textuel unset( $fetchData[$i] ); // on supprime l'indice - + $nextEquivalent = false; // Dans tous les cas, on dit que le prochain ne pourra pas etre supprime si numerique }else // Si l'indice n'est pas un entier @@ -165,8 +165,8 @@ //////////////////////////////////////////////////////////////// - // _ __ _ _ _ - // __ _____ _ __(_)/ _(_) ___ __ _| |_(_) ___ _ __ ___ + // _ __ _ _ _ + // __ _____ _ __(_)/ _(_) ___ __ _| |_(_) ___ _ __ ___ // \ \ / / _ \ '__| | |_| |/ __/ _` | __| |/ _ \| '_ \/ __| // \ V / __/ | | | _| | (_| (_| | |_| | (_) | | | \__ \ // \_/ \___|_| |_|_| |_|\___\__,_|\__|_|\___/|_| |_|___/ @@ -223,9 +223,9 @@ return true; } - + /* [n] Sinon, tous les autres types definis - =========================================================*/ + =========================================================*/ switch($type){ // Entier positif (id dans BDD) case 'id': @@ -240,12 +240,18 @@ case 'mail': return $checker && is_string($value) && strlen($value) <= 50 && preg_match('/^[\w\.-]+@[\w\.-]+\.[a-z]{2,4}$/i', $value); break; - + // Hash sha1 case 'sha1': return $checker && is_string($value) && preg_match('/^[\da-f]{40}$/i', $value); break; - + break; + + // Numéro de téléphone + case 'phone_number': + return $checker && is_string($value) && preg_match('/^(?:0|\+33 ?|0?0?33 ?|)([1-9] ?(?:[0-9] ?){8})$/i', $value); + break; + default: return false; break; @@ -256,9 +262,47 @@ } + + + + /* FONCTION QUI FORMATTE UN NUMÉRO DE TÉLÉPHONE + * + * @number Numéro de téléphone en +336/336/06/0336/00336 + * + * @return formatted Numéro formatté (06), on FALSE si erreur + * + */ + public static function formatNumber($number){ + // On met en quel que soit le type + $number = (string) $number; + + // On supprime tous les espaces + $number = str_replace(' ', '', $number); + + // On formatte le numéro + if( preg_match("/^(?:\+33|0?0?33|0)(.+)/", $number, $m) ) + $number = '0'.$m[1]; + + // On retourne le numéro formatté + return $number; + } + + + public static function readableNumber($number){ + /* (1) On formatte le numéro si c'est pas fait */ + $formatted = self::formatNumber($number); + + for( $i = 1 ; $i < strlen($formatted) ; $i++ ) + if( ($i-2) % 3 == 0 ) + $formatted = substr($formatted, 0, $i).' '.substr($formatted, $i); + + return $formatted; + } + + //////////////////////////////////// - // _ _ - // __| | __ _| |_ ___ ___ + // _ _ + // __| | __ _| |_ ___ ___ // / _` |/ _` | __/ _ \/ __| // | (_| | (_| | || __/\__ \ // \__,_|\__,_|\__\___||___/ diff --git a/manager/ManagerError.php b/manager/ManagerError.php index 509fa59..13c3c4e 100755 --- a/manager/ManagerError.php +++ b/manager/ManagerError.php @@ -66,6 +66,9 @@ const PermissionError = 16; + /* Erreur d'UPLOAD */ + const UploadError = 17; + /* EXPLICITE UN CODE D'ERREUR * @@ -76,28 +79,29 @@ */ public static function explicit($error){ switch($error){ - case self::Success: return "Tout s'est bien deroule"; break; + case self::Success: return "Tout s'est bien deroulé."; break; - case self::ParsingFailed: return "La lecture du fichier JSON ou XML a echoue"; break; + case self::ParsingFailed: return "La lecture du fichier JSON ou XML a echouée."; break; - case self::InvalidFlags: return "Les specifications (drapeaux) sont incorrects"; break; - case self::UnreachableResource: return "La ressource n'existe pas (404)"; break; - case self::MissingPath: return "Le chemin de delegation n'a pas ete renseigne"; break; - case self::WrongPathModule: return "Le chemin de delegation est incorrect ('nomModule/nomMethode')"; break; - case self::WrongPathRepo: return "Le chemin de delegation est incorrect ('nomRepo/nomMethode')"; break; - case self::UnknownModule: return "Le module n'existe pas"; break; - case self::UnknownRepo: return "Le repo n'existe pas"; break; - case self::UnknownMethod: return "Le methode n'existe pas"; break; - case self::UncallableMethod: return "Le methode n'est pas amorcable"; break; + case self::InvalidFlags: return "Les spécifications (drapeaux) sont incorrects."; break; + case self::UnreachableResource: return "La ressource n'existe pas (404)."; break; + case self::MissingPath: return "Le chemin de délégation n'a pas été renseigné."; break; + case self::WrongPathModule: return "Le chemin de délégation est incorrect ('nomModule/nomMethode')."; break; + case self::WrongPathRepo: return "Le chemin de délégation est incorrect ('nomRepo/nomMethode')."; break; + case self::UnknownModule: return "Le module n'existe pas."; break; + case self::UnknownRepo: return "Le repo n'existe pas."; break; + case self::UnknownMethod: return "Le methode n'existe pas."; break; + case self::UncallableMethod: return "Le methode n'est pas amorçable."; break; - case self::ParamError: return "Un ou plusieurs parametres sont manquants ou incorrects"; break; - case self::ModuleError: return "Erreur lors du traitement du module"; break; - case self::RepoError: return "Erreur lors du traitement du repo"; break; + case self::ParamError: return "Un ou plusieurs paramètres sont manquants ou incorrects."; break; + case self::ModuleError: return "Erreur lors du traitement du module."; break; + case self::RepoError: return "Erreur lors du traitement du repo."; break; - case self::PDOConnection: return "La connexion avec la base de donnees a echoue"; break; + case self::PDOConnection: return "La connexion avec la base de données a echouée."; break; - case self::TokenError: return "Le token de connection est absent ou errone"; break; - case self::PermissionError: return "Vous n'avez pas la permission d'effectuer cette action"; break; + case self::TokenError: return "Le token de connection est absent, érroné ou expiré."; break; + case self::PermissionError: return "Vous n'avez pas la permission d'effectuer cette action."; break; + case self::UploadError: return "Une erreur d'upload est survenue."; break; // default: return "Erreur inconnue..."; break; } diff --git a/manager/ModuleRequest.php b/manager/ModuleRequest.php index 26b8f25..9dc9dba 100755 --- a/manager/ModuleRequest.php +++ b/manager/ModuleRequest.php @@ -324,11 +324,12 @@ /* VERIFICATION DU TYPE DES PARAMETRES ENVOYES * * @params Tableau associatif contenant les parametres + * @params peut se voir rajouter les paramètres optionnels s'ils ne sont pas renseignés (initialisés à NULL) * * @return correct Retourne si oui ou non les parametres ont le bon type * */ - private function checkParams($params){ + private function checkParams(&$params){ /* [1] On verifie qu'il ne manque aucun parametre =========================================================*/ // Si @params n'est pas un tableau @@ -336,22 +337,38 @@ $method = $this->modules[$this->path['module']][$this->path['method']]; - // Si le nombre de parametre en entree est insuffisant - if( count($method['parameters']) > count($params) ) return false; - - /* [2] Si le type est defini, pour chaque param, on teste =========================================================*/ foreach($method['parameters'] as $name=>$paramsdata){ - // Si le parametre n'existe pas dans le tableau recu - if( !isset($params[$name]) ) return false; + /* (1) On récupère si le paramètre est optionnel ou pas */ + $optional = isset($paramsdata['optional']) && $paramsdata['optional'] === true; - // Si le type n'est pas defini, on reboucle + /* (2) Récupère si le paramètre est un fichier et définit comme de type 'FILE' */ + $isFile = isset($paramsdata['type']) && $paramsdata['type'] == 'FILE' && isset($_FILES[$name]); + + /* (3) Si le paramètre est obligatoire et qu'il n'est pas donné -> erreur */ + if( !isset($params[$name]) && !$optional && !$isFile ) return false; + + /* (4) Si le type n'est pas defini, on a pas besoin de le vérifier */ if( !isset($paramsdata['type']) ) continue; - // Si la verification est fausse, on retourne faux - if( !Database::check($paramsdata['type'], $params[$name]) ) return false; + /* (5) Si le paramètre est optionnel et n'est pas donné */ + if( $isFile || $optional && (!isset($params[$name]) || is_null($params[$name])) ){ + // On le crée le param optionnel avec la valeur NULL + $params[$name] = null; + + // On donne une référence vers le fichier, si c'en est un + if( $isFile ) + $params[$name] = &$_FILES[$name]; + + continue; // On passe au paramètre suivant + + + /* (6) Si le paramètre est renseigné */ + }else + // Si la verification est fausse, on retourne faux + if( !Database::check($paramsdata['type'], $params[$name]) ) return false; } /* [3] Gestion du retour, si tout s'est bien passe diff --git a/manager/Repo.php b/manager/Repo.php index 3d54c0b..a87edd8 100755 --- a/manager/Repo.php +++ b/manager/Repo.php @@ -1,18 +1,18 @@ -repositories = json_decode( ResourceDispatcher::getResource(self::$config_path), true ); - + // Gestion de l'erreur de parsage if( $this->repositories == null ){ $this->error = ManagerError::ParsingFailed; @@ -72,7 +72,7 @@ } // Type de @data (optionnel) - $data = (is_array($data)) ? $data : array(); + $data = (is_array($data)) ? $data : array(); /* [2] Verification du chemin (existence repo+methode) @@ -165,7 +165,7 @@ $this->error = ManagerError::UnknownMethod; return false; // On retourne FALSE, si erreur } - + /* [4] Enregistrement du chemin et renvoi de SUCCESS @@ -194,4 +194,4 @@ } -?> \ No newline at end of file +?> diff --git a/manager/ResourceDispatcher.php b/manager/ResourceDispatcher.php index d245296..e6b897d 100755 --- a/manager/ResourceDispatcher.php +++ b/manager/ResourceDispatcher.php @@ -1,9 +1,9 @@ -error = ManagerError::ParsingFailed; @@ -83,7 +83,7 @@ if( $view ) // Appel externe $this->view(); - + return true; } @@ -140,7 +140,7 @@ if( !$correct ) return false; - + /* [2] Creation (non serialisee) des flags ======================================================*/ // Si tout se deroule bien, on cree les flags @@ -213,14 +213,14 @@ $this->stylesheet .= "\t}\n"; $this->stylesheet .= ""; } - + /* [5] On definit le header ==========================================================*/ $this->header = $header; - /* [6] On construit le chemin + /* [6] On construit le chemin ==========================================================*/ $this->path = __ROOT__.$parent.'/'.$opt_subParent.$this->flags['filename'].'.'.$this->flags['extension']; @@ -273,4 +273,4 @@ } -?> \ No newline at end of file +?> diff --git a/manager/module/call_log.php b/manager/module/call_log.php index 5aad1d9..a929361 100644 --- a/manager/module/call_log.php +++ b/manager/module/call_log.php @@ -3,6 +3,7 @@ namespace manager\module; use \manager\Database; use \manager\sessionManager; + use \manager\ResourceDispatcher; use \manager\ManagerError; use \manager\Repo; @@ -11,101 +12,77 @@ /* DESERIALISATION D'UN JOURNAL D'APPEL * - * @content Le contenu du journal d'appel a deserialiser + * @number Numéro de téléphone du propriétaire du journal d'appel * - * @return sms Retourne un tableau associatif contenant les sms triees - * @return call Retourne un tableau associatif contenant les appels triees - * @return contact Retourne un tableau associatif contenant les correspondances numero/nom de contact + * @return logs Retourne un tableau associatif les logs + * @return directory Retourne un tableau associatif contenant l'annuaire des contacts * */ public static function unserialize($params){ - $content = null; extract($params); - /* [2] On recupere le xml + // On formatte le numéro de téléphone + $phone_number = Database::formatNumber($phone_number); + + /* [0] On récupère dans la config le chemin du fichier =========================================================*/ - $xml = simplexml_load_string($content); + /* (1) On récupère le fichier */ + $uploadAuth = ResourceDispatcher::getResource('f/json/upload-auth/conf'); + + /* (2) Si une erreur pour le fichier de conf */ + if( $uploadAuth === false ) + return ManagerError::UnreachableResource; + + /* (3) On récupère la config sous forme de tableau */ + $uploadAuth = json_decode( $uploadAuth, true ); + + /* (4) Si erreur de PARSAGE */ + if( !is_array($uploadAuth) ) + return ManagerError::ParsingFailed; + + /* (5) On construit le chemin du fichier */ + $prefix = 'call_log'; $extension = 'xml'; + $path = __ROOT__.$uploadAuth['root']."/$prefix/".$_SESSION['username'].".$extension"; + + /* [1] On parse/récupère le xml + =========================================================*/ + // Si le fichier n'existe pas, on quitte + if( !file_exists($path) ) + return array('ModuleError' => ManagerError::UnreachableResource); + + $file_content = file_get_contents($path); + + if( $file_content === false ) + return array('ModuleError' => ManagerError::UnreachableResource); + + $xml = simplexml_load_string( $file_content ); // Si le format XML n'est pas bon, on retourne une erreur if( $xml === false ) return array('ModuleError' => ManagerError::ParsingFailed); - - /* [3] Initialisation des variables + /* [2] On lit chaque élément =========================================================*/ - $names = array(); // Contiendra les correspondances numero/contact - $msms = array(); // Contiendra les personnes utilisant SMS/MMS - $call = array(); // Contiendra les personnes utilisant CALL + $phone_directory = array(); // Contiendra les correspondances num->Nom + $phone_logs = array(); // Contiendra nos logs (appels/sms) - - /* [4] On traite les donnees pour chaque champ du xml - =========================================================*/ foreach($xml->Item as $log){ - // On recupere le numero en string - $num = (string) $log['Number']; + /* (1) On formatte le numéro */ + $number = Database::formatNumber($log['Number']); - // On formatte le numero - if( preg_match("/^(?:\+33|33|0)(.+)/", $num, $m) ) - $num = '0'.$m[1]; - // Si pas un numero, on sort de la boucle - else - continue; + /* (2) On enregistre le contact dans l'annuaire s'il y est pas déjà */ + if( !isset($phone_directory[$number]) ) + $phone_directory[$number] = strlen($log['Name']) ? (string) $log['Name'] : null; - - /* (1) Si le type est MMS ou SMS */ - if( $log['Type'] == 'SMS' || $log['Type'] == 'MMS' ){ - - // Si la personne n'est pas referencee, on l'ajoute - // Sinon on incremente son nombre d'apparition - if( isset($msms[$num]) ) - $msms[$num]+= 1; - else - $msms[$num] = 1; - - // On enregistre le nom si c'est pas fait - if( !isset($names[$num]) ) $names[$num] = $log['Name']; - - - /* (2) Si le type est PHONE */ - }else if( $log['Type'] == 'PHONE' ){ - - // Si la personne n'est pas referencee, on l'ajoute - // Sinon on incremente son nombre d'apparition - if( isset($call[$num]) ) - $call[$num]+= 1; - else - $call[$num] = 1; - - // On enregistre le nom si c'est pas fait - if( !isset($names[$num]) ) $names[$num] = $log['Name']; - - } - } - - - /* [4] On trie par nombre d'interactions (sms/appel) - =========================================================*/ - $tmp = $msms; - /* (1) Tri des SMS/MMS */ - $sortedMSMS = array(); - // On fait le tri pour les 10 premiers elements sauf s'il en a moins - for( $i = 0 ; $i < 10 && $i < count($tmp) ; $i++ ){ - $maxval = max($tmp); - $maxkey = array_search($maxval, $tmp); - array_push( $sortedMSMS, array($maxkey, $maxval) ); - unset($tmp[$maxkey]); - } - - - $tmp = $call; - /* (2) Tri des appels */ - $sortedCALL = array(); - // On fait le tri pour les 10 premiers elements sauf s'il en a moins - for( $i = 0 ; $i < 10 && $i < count($tmp) ; $i++ ){ - $maxval = max($tmp); - $maxkey = array_search($maxval, $tmp); - array_push( $sortedCALL, array($maxkey, $maxval) ); - unset($tmp[$maxkey]); + /* (3) On complète le log */ + $phone_log = array( + 'source' => ($log['Direction']=='INCOMING') ? $number : Database::formatNumber($phone_number), + 'target' => ($log['Direction']=='INCOMING') ? Database::formatNumber($phone_number) : $number, + 'type' => strtolower($log['Type']), + 'date' => strtotime($log['Date']), + 'duration' => (int) $log['Duration'] + ); + array_push($phone_logs, $phone_log); } @@ -113,15 +90,144 @@ =========================================================*/ return array( 'ModuleError' => ManagerError::Success, - 'sms' => $sortedMSMS, - 'call' => $sortedCALL, - 'contact' => $names + 'directory' => $phone_directory, + 'logs' => $phone_logs ); } + + + + + + + + + + + + + + + + /* DESERIALISATION D'UN JOURNAL D'APPEL + * + * @content Le contenu du journal d'appel a deserialiser + * + * @return sms Retourne un tableau associatif contenant les sms triees + * @return call Retourne un tableau associatif contenant les appels triees + * @return contact Retourne un tableau associatif contenant les correspondances numero/nom de contact + * + */ + private static function unserializeOld($params){ + $filecontent = null; + extract($params); + + /* [2] On recupere le xml + =========================================================*/ + $xml = simplexml_load_string($filecontent); + + // Si le format XML n'est pas bon, on retourne une erreur + if( $xml === false ) + return array('ModuleError' => ManagerError::ParsingFailed); + + return array( 'ModuleError' => ManagerError::Success, 'xml' => $xml ); + + + /* [3] Initialisation des variables + =========================================================*/ + $names = array(); // Contiendra les correspondances numero/contact + $msms = array(); // Contiendra les personnes utilisant SMS/MMS + $call = array(); // Contiendra les personnes utilisant CALL + + + /* [4] On traite les donnees pour chaque champ du xml + =========================================================*/ + foreach($xml->Item as $log){ + // On recupere le numero en string + $num = (string) $log['Number']; + + // On formatte le numero + if( preg_match("/^(?:\+33|33|0)(.+)/", $num, $m) ) + $num = '0'.$m[1]; + // Si pas un numero, on sort de la boucle + else + continue; + + + /* (1) Si le type est MMS ou SMS */ + if( $log['Type'] == 'SMS' || $log['Type'] == 'MMS' ){ + + // Si la personne n'est pas referencee, on l'ajoute + // Sinon on incremente son nombre d'apparition + if( isset($msms[$num]) ) + $msms[$num]+= 1; + else + $msms[$num] = 1; + + // On enregistre le nom si c'est pas fait + if( !isset($names[$num]) ) $names[$num] = $log['Name']; + + + /* (2) Si le type est PHONE */ + }else if( $log['Type'] == 'PHONE' ){ + + // Si la personne n'est pas referencee, on l'ajoute + // Sinon on incremente son nombre d'apparition + if( isset($call[$num]) ) + $call[$num]+= 1; + else + $call[$num] = 1; + + // On enregistre le nom si c'est pas fait + if( !isset($names[$num]) ) $names[$num] = $log['Name']; + + } + } + + + /* [4] On trie par nombre d'interactions (sms/appel) + =========================================================*/ + $tmp = $msms; + /* (1) Tri des SMS/MMS */ + $sortedMSMS = array(); + // On fait le tri pour les 10 premiers elements sauf s'il en a moins + for( $i = 0 ; $i < 10 && $i < count($tmp) ; $i++ ){ + $maxval = max($tmp); + $maxkey = array_search($maxval, $tmp); + array_push( $sortedMSMS, array($maxkey, $maxval) ); + unset($tmp[$maxkey]); + } + + + $tmp = $call; + /* (2) Tri des appels */ + $sortedCALL = array(); + // On fait le tri pour les 10 premiers elements sauf s'il en a moins + for( $i = 0 ; $i < 10 && $i < count($tmp) ; $i++ ){ + $maxval = max($tmp); + $maxkey = array_search($maxval, $tmp); + array_push( $sortedCALL, array($maxkey, $maxval) ); + unset($tmp[$maxkey]); + } + + + /* [5] Gestion du retour + =========================================================*/ + return array( + 'ModuleError' => ManagerError::Success, + 'sms' => $sortedMSMS, + 'call' => $sortedCALL, + 'contact' => $names + ); + } + + + + } diff --git a/manager/module/subject.php b/manager/module/subject.php new file mode 100644 index 0000000..ce94c1a --- /dev/null +++ b/manager/module/subject.php @@ -0,0 +1,154 @@ + UID du sujet en question + * + * @return subject Tableau contenant les informations du sujet + * + */ + public static function getById($params){ + extract($params); + + /* [1] On recupere les donnees du sujet + =========================================================*/ + $getUser = new Repo('subject/getById', array($id_subject)); + $subject_data = $getUser->answer(); + + // Si aucun utilisateur n'est trouve + if( $subject_data === false ) return array('ModuleError' => ManagerError::ModuleError); + + + /* [2] Gestion du retour + =========================================================*/ + return array( + 'ModuleError' => ManagerError::Success, + 'subject' => $subject_data + ); + } + + + + + /* RETOURNE LA LISTE DE TOUS LES SUJETS + * + * @return subjects Tableau contenant les informations de tous les utilisateurs + * + */ + public static function getAll(){ + /* [1] On recupere les donnees des utilisateurs + =========================================================*/ + $getUsers = new Repo('subject/getAll'); + $subjects_data = $getUsers->answer(); + + // Si aucun utilisateur n'est trouve + if( $subjects_data === false ) return array('ModuleError' => ManagerError::ModuleError); + + /* [2] Gestion du retour + =========================================================*/ + return array( + 'ModuleError' => ManagerError::Success, + 'subjects' => $subjects_data + ); + } + + + + + + /* CREATION D'UN SUJET + * + * @username Pseudo du sujet + * @firstname Prénom du sujet + * @lastname Nom du sujet + * @id_facebook Id facebook du sujet (optionnel) + * @number Numéro de téléphone du sujet (optionnel) + * + * @return id_subject Renvoie l'id du sujet cree + * + */ + public static function create($params){ + extract($params); + + /* [0] Verification et formattage des INPUT + =========================================================*/ + $id_facebook = !is_null($id_facebook) ? (int) $id_facebook : null; + $number = !is_null($number) ? Database::formatNumber($number) : null; + + /* [1] Creation du sujet + =========================================================*/ + $create = new Repo('subject/create', array($username, $firstname, $lastname, $id_facebook, $number)); + $created_id = $create->answer(); + + // Si erreur de creation, on retourne une erreur + if( $created_id === false ) return array( 'ModuleError' => ManagerError::ModuleError ); + + /* [2] Gestion du retour + =========================================================*/ + return array( + 'ModuleError' => ManagerError::Success, + 'id_subject' => $created_id + ); + } + + + + + + /* SUPPRESSION D'UN SUJET + * + * @id_subject UID du sujet en question + * + */ + public static function remove($params){ + extract($params); + + /* [1] On verifie que le sujet existe + =========================================================*/ + $exists = new Repo('subject/getById', array($id_subject)); + $exists_status = $exists->answer(); + + // Si le sujet n'existe pas, on retourne une erreur + if( $exists_status === false ) return array( 'ModuleError' => ManagerError::ModuleError ); + + /* [2] Suppression du sujet + =========================================================*/ + $remove = new Repo('subject/remove', array($id_subject)); + $remove_status = $remove->answer(); + + + /* [3] On verifie que le sujet est bien supprime + =========================================================*/ + $removed = new Repo('subject/getById', array($id_subject)); + $removed_status = $removed->answer(); + + // Si le sujet n'existe pas, on retourne une erreur + if( $removed_status !== false ) return array( 'ModuleError' => ManagerError::ModuleError ); + + + /* [4] Gestion du retour + =========================================================*/ + return array( 'ModuleError' => ManagerError::Success ); + } + + // [x] "login", + // [x] "logout", + // [x] "getById", + // [x] "getAll", + // [x] "create", + // [ ] "remove", + + } + + +?> diff --git a/manager/module/token.php b/manager/module/token.php index 6ddbcfa..8fdfa0e 100755 --- a/manager/module/token.php +++ b/manager/module/token.php @@ -14,7 +14,7 @@ /* SUPPRIME UN TOKEN D'ID DONNE * - * @id_token UID du token en question + * @token_id UID du token en question * */ public static function remove($params){ @@ -22,9 +22,10 @@ /* [1] Suppression du token =========================================================*/ - $remove = new Repo('token/remove', array($id_token)); + $remove = new Repo('token/remove', array($token_id)); + // On renvoie une erreur si une erreur intervient pendant la suppression - if( !$remove->answer() ) return array('ModuleError' => ManagerError::ModuleError); + if( $remove->answer() === false ) return array('ModuleError' => ManagerError::ModuleError); /* [n] Gestion du retour quand tout est normal @@ -48,10 +49,10 @@ */ public static function generate($params){ extract($params); - + /* [0] Verification des INPUT =========================================================*/ - if( !Database::check('varchar(50)', $name) || !Database::check('numeric', $duration) ) + if( !Database::check('varchar(4,50)', $name) || !Database::check('id', $duration) ) return array('ModuleError' => ManagerError::ParamError); // erreur de parametre diff --git a/manager/module/upload.php b/manager/module/upload.php new file mode 100644 index 0000000..863ccd5 --- /dev/null +++ b/manager/module/upload.php @@ -0,0 +1,102 @@ + Préfixe (dossier parent) du fichier + * @extension Extension du fichier + * @file Pointeur vers $_FILES[''] + * + * @return error Retourne l'erreur attestant de l'état de l'upload + * + */ + private static function simpleFile($prefix, $extension, $file){ + /* [0] On formatte les entrées + =========================================================*/ + $prefix = htmlspecialchars($prefix); + + // Si $prefix n'est pas au bon format + if( !preg_match('/^[a-z0-9_-]+$/', $prefix) ) + return ManagerError::UploadError; + + + /* [1] Chargement du fichier de config + =========================================================*/ + /* (1) On récupère le fichier */ + $uploadAuth = ResourceDispatcher::getResource('f/json/upload-auth/conf'); + + /* (2) Si une erreur pour le fichier de conf */ + if( $uploadAuth === false ) + return ManagerError::UnreachableResource; + + /* (3) On récupère la config sous forme de tableau */ + $uploadAuth = json_decode( $uploadAuth, true ); + + /* (4) Si erreur de PARSAGE */ + if( !is_array($uploadAuth) ) + return ManagerError::ParsingFailed; + + /* [2] Vérification du préfixe + =========================================================*/ + // Si le préfixe n'est pas dans la config -> erreur + if( !in_array($prefix, $uploadAuth['directories']) ) + returnManagerError::UploadError; + + + /* [3] Construction du chemin + =========================================================*/ + /* (1) On construit le chemin */ + $path = __ROOT__.$uploadAuth['root'].'/'.$prefix.'/'; + + /* (2) On crée le dossier s'il n'existe pas */ + if ( !file_exists($path) ) mkdir($path, 0775, true); + + /* (3) On construit le nom du fichier */ + $fileName = $_SESSION['username'].'.'.$extension; + + /* (4) On se place dans le dossier */ + chdir( $path ); + + /* [4] Création du fichier (temporaire->permanent) + =========================================================*/ + if( move_uploaded_file($file['tmp_name'], $path.$fileName) ){ + // on modifie les droits du fichier + chmod($path.$fileName, 0774); + + return ManagerError::Success; + + }else + return ManagerError::UploadError; + } + + + + + + + /* IMPORT D'UN JOURNAL D'APPEL + * + * @file Pointeur vers $_FILES[''] + * + */ + public static function call_log($params){ + extract($params); + + return array( + 'ModuleError' => self::simpleFile('call_log', 'xml', $file) + ); + } + + + } + + +?> diff --git a/manager/module/user.php b/manager/module/user.php index 9daa673..81c3273 100755 --- a/manager/module/user.php +++ b/manager/module/user.php @@ -71,22 +71,22 @@ /* [1] On recupere les donnees de l'utilisateur =========================================================*/ - $getUser = new Repo('user/getById', array($user_id)); + $getUser = new Repo('user/getById', array($id_user)); $user_data = $getUser->answer(); // Si aucun utilisateur n'est trouve - if( $user_data === false ) return array('ModuleError' => ManagerError::ModuleError); + if( count($user_data) == 0 ) return array('ModuleError' => ManagerError::ModuleError); /* [2] On met les permissions au bon format (string -> array) =========================================================*/ - $user_data['permission'] = explode( ',', str_replace(' ', '', $user_data['permission']) ); + $user_data[0]['permission'] = explode( ',', str_replace(' ', '', $user_data[0]['permission']) ); /* [3] Gestion du retour =========================================================*/ return array( 'ModuleError' => ManagerError::Success, - 'user' => $user_data + 'user' => $user_data[0] ); } @@ -142,11 +142,12 @@ =========================================================*/ $password = sessionManager::sha1($password); $reference = (is_numeric($reference)) ? (int) $reference : null; - $permissions = explode( ',', str_replace(' ', '', $permissions) ); + $permission = ($permission=='admin') ? 'admin' : 'subject'; + /* [1] Creation de l'utilisateur =========================================================*/ - $create = new Repo('user/create', array($login, $password, $mail, $reference, $permissions)); + $create = new Repo('user/create', array($login, $password, $mail, $reference, $permission)); $created_id = $create->answer(); // Si erreur de creation, on retourne une erreur @@ -171,14 +172,14 @@ */ public static function remove($params){ extract($params); - + /* [1] On verifie que l'utilisateur existe =========================================================*/ $exists = new Repo('user/getById', array($id_user)); $exists_status = $exists->answer(); // Si l'utilisateur n'existe pas, on retourne une erreur - if( $exists_status === false ) return array( 'ModuleError' => ManagerError::ModuleError ); + if( count($exists_status) == 0 ) return array( 'ModuleError' => ManagerError::ModuleError ); /* [2] Suppression de l'utilisateur =========================================================*/ @@ -192,7 +193,7 @@ $removed_status = $removed->answer(); // Si l'utilisateur n'existe pas, on retourne une erreur - if( $removed_status !== false ) return array( 'ModuleError' => ManagerError::ModuleError ); + if( count($removed_status) > 0 ) return array( 'ModuleError' => ManagerError::ModuleError ); /* [4] Gestion du retour diff --git a/manager/repo/Personnes.php b/manager/repo/Personnes.php deleted file mode 100755 index a47fa6c..0000000 --- a/manager/repo/Personnes.php +++ /dev/null @@ -1,69 +0,0 @@ - portage des donnees) - * - merge(idA, idB) - * - * 4. Gestion de creation - * - create(pseudo, nom, prenom, facebook, telephone) - * - * - */ - - - /* RENVOIE LES DONNEES D'UN UTILISATEUR D'UID DONNE - * - * @id_personne UID de la personne en question - * - * @return personne Tableau associatif contenant les informations utiles de la personne - * @return FALSE Si une erreur occure ou qu'aucune personne n'est trouvee, retourne FALSE - * - */ - public static function getById($id_personne=null){ - /* [0] Verification des INPUT - =========================================================*/ - if( !Database::check('id', $id_personne) ) return false; - - /* [1] On prepare et execute la requete - =========================================================*/ - $request = Database::getPDO()->prepare("SELECT idPersonne as id, pseudo, nom, prenom, id_facebook, telephone - FROM Personnes - WHERE idPersonne = :uid"); - $request->execute(array( - ':uid' => $id_personne - )); - - - /* [2] On recupere le resultat - =========================================================*/ - // si aucun resultat, on retourne FALSE - if( ($personne=$request->fetch()) === false ) return false; - - - /* [3] On retourne les donnees - =========================================================*/ - return Database::delNumeric( $personne, true ); - } - - - - - - - } - - -?> \ No newline at end of file diff --git a/manager/repo/machine.php b/manager/repo/machine.php deleted file mode 100755 index 2255185..0000000 --- a/manager/repo/machine.php +++ /dev/null @@ -1,337 +0,0 @@ - Code de la machine - * @name Nom de la machine - * - * @return id_machine Renvoie l'UID de la machine cree - * Renvoie FALSE si une erreur occure - * - */ - public static function create($code, $name){ - /* [1] Verification de l'unicite de code+name - =========================================================*/ - $check_unique = ( self::getByCode($code) === false ); - $check_unique = $check_unique && ( self::getByName($name) === false ); - - // Si une machine a deja ce code/nom, on renvoie une erreur - if( !$check_unique ) - return false; - - - /* [2] Creation de la machine - =========================================================*/ - $insert_machine = Database::getPDO()->prepare("INSERT INTO machine(id_machine, code, name) - VALUES(DEFAULT, :code, :name)"); - $insert_machine->execute(array( - ':code' => $code, - ':name' => $name - )); - - /* [3] On retourne l'id_machine ou FALSE si erreur - =========================================================*/ - $check_machine = self::getByCode($code); - - // Si n'existe pas on retourne FALSE - if( $check_machine === false ) - return false; - - // Sinon, on retourne son id - return $check_machine['id_machine']; - - } - - - - - - /* RENVOIE UNE LISTE DE MACHINE EN FONCTION D'UN MOT CLE - * - * @keyword Element de recherche - * - * @return machines Retourne les machines trouvees - * - */ - public static function search($keyword){ - // On recupere les donnees - $searchmachines = Database::getPDO()->query("SELECT * FROM machine - WHERE code LIKE '%".$keyword."%' - OR name LIKE '%".$keyword."%' - "); - - return Database::delNumeric( $searchmachines->fetchAll() ); - } - - - - - - - - /* RENVOIE LA LISTE DE TOUTES LES MACHINES - * - * @return machine Liste des machines de la BDD - * - */ - public static function getAll(){ - // On ecrit la requete - $request = Database::getPDO()->query("SELECT * FROM machine ORDER BY name"); - - // On recupere le resultat - $answer = $request->fetchAll(); - - // On retourne en supprimant les indices numeriques - return Database::delNumeric( $answer ); - } - - - - - - - - - /* RENVOIE LA MACHINE D'ID DONNE - * - * @id Id de la machine en question - * - * @return machine Renvoie la machine d'id donne si existe - * @return error Retourne FALSE si aucun resultat - * - */ - public static function getById($id){ - // On ecrit la requete - $request = Database::getPDO()->prepare("SELECT * FROM machine - WHERE id_machine = :id"); - - // On execute la requete - $request->execute(array( - ':id' => $id - )); - - // On recupere 1 seule machine - $answer = $request->fetch(); - - // Gestion d'erreur -> aucun resultat - if( $answer === false ) - return false; - - // On retourne en supprimant les indices numeriques - return Database::delNumeric( $answer, true ); - } - - - - - - - - - /* RENVOIE LA MACHINE DE CODE DONNE - * - * @code Code de la machine en question - * - * @return machine Renvoie la machine de code donne si existe - * @return error Retourne FALSE si aucun resultat - * - */ - public static function getByCode($code){ - // On ecrit la requete - $request = Database::getPDO()->prepare("SELECT * FROM machine - WHERE code = :code"); - - - // On execute la requete - $request->execute(array( - ':code' => $code - )); - - // On recupere 1 seule machine - $answer = $request->fetch(); - - // Gestion d'erreur -> aucun resultat - if( $answer === false ) - return false; - - // On retourne en supprimant les indices numeriques - return Database::delNumeric( $answer, true ); - - } - - - - - - - - - /* RENVOIE LA MACHINE DE NOM DONNE - * - * @name Nom de la machine en question - * - * @return machine Renvoie la machine de nom donne si existe - * @return error Retourne FALSE si aucun resultat - * - */ - public static function getByName($name){ - // On ecrit la requete - $request = Database::getPDO()->prepare("SELECT * FROM machine - WHERE name = :name"); - - - // On execute la requete - $request->execute(array( - ':name' => $name - )); - - // On recupere 1 seule machine - $answer = $request->fetch(); - - // Gestion d'erreur -> aucun resultat - if( $answer === false ) - return false; - - // On retourne en supprimant les indices numeriques - return Database::delNumeric( $answer, true ); - - } - - - - - - - - - /* RENVOIE LES GROUPES AUQUEL APPARTIENT UNE MACHINE DONNEE - * - * @id_machine UID de la machine en question - * - * @return clusters Retourne la liste des groupes auquel appartient la machine - * - */ - public static function getClusters($id_machine){ - /* [1] On redige/execute la requete - =========================================================*/ - $get_clusters = Database::getPDO()->prepare("SELECT c.* FROM cluster as c, cluster_merge as cm - WHERE cm.id_cluster = c.id_cluster - AND cm.id_entity = :id_machine - AND cm.class = :class - ORDER BY c.id_cluster"); - $get_clusters->execute(array( - ':id_machine' => $id_machine, - ':class' => clusterRepo::MACHINE_CLASS - )); - - /* [2] On retourne la liste des groupes - =========================================================*/ - return Database::delNumeric( $get_clusters->fetchAll() ); - } - - - - - - - - - /* MODIFICATION D'UNE MACHINE DONNEE - * - * @id_machine UID de la machine - * @code Code RFID de la machine - * @name Identifiant l'utilisateur - * - * @return status Renvoie si oui ou non tout s'est bien passe - * - */ - public static function edit($id_machine=null, $code=null, $name=null){ - /* [1] Verification de l'unicite de code+name (si differents) - =========================================================*/ - // On recupere les machine ayant le meme code ou name (si existent) - $getbycode = self::getByCode($code); - $getbyname = self::getByName($name); - - $check_unique = is_array($getbycode) && $getbycode['id_machine'] == $id_machine || !is_array($getbycode); - $check_unique = $check_unique && is_array($getbyname) && $getbyname['id_machine'] == $id_machine || !is_array($getbyname); - - // Si un utilisateur a deja ce code ou ce name (sauf lui), on renvoie une erreur - if( !$check_unique ) - return false; - - /* [2] Modification de la machine - =========================================================*/ - $edit_machine = Database::getPDO()->prepare("UPDATE machine - SET code = :code, - name = :name - WHERE id_machine = :id_machine"); - $edit_machine->execute(array( - ':code' => $code, - ':name' => $name, - ':id_machine' => $id_machine - )); - - - - /* [3] On retourne si tout a ete modifie, si erreur - =========================================================*/ - $check_machine = self::getById($id_machine); - - $checker = $check_machine['id_machine'] == $id_machine; - $checker = $checker && $check_machine['code'] == $code; - $checker = $checker && $check_machine['name'] == $name; - - // On retourne l'etat de la modification - return $checker; - } - - - - - - - - - /* SUPPRIME UNE MACHINE DONNE - * - * @id_machine UID de la machine en question - * - * @return status Retourne si oui ou non la machine a bien ete supprime - * - */ - public static function delete($id_machine){ - /* [1] On redige/execute la requete - =========================================================*/ - $delete_machine = Database::getPDO()->prepare("DELETE FROM machine WHERE id_machine = :id_machine"); - $delete_machine->execute(array( - ':id_machine' => $id_machine - )); - - - /* [2] On verifie que la machine n'existe plus - =========================================================*/ - return ( self::getById($id_machine) === false ); - } - - - - - - - - - - - - - - } - - -?> \ No newline at end of file diff --git a/manager/repo/parentRepo.php b/manager/repo/parentRepo.php new file mode 100644 index 0000000..01fcf5a --- /dev/null +++ b/manager/repo/parentRepo.php @@ -0,0 +1,93 @@ + Nom du getter du type 'getAll' ou 'getX' avec 'X' une colonne de la table en question + * @args Liste des arguments, $args[0] est la valeur du getter (sauf pour 'getAll') + * + * @return lines Retourne le résultat du fetchAll() + * + */ + public static function __callStatic($method, $args){ + // Si static::table_name() NULL + if( is_null(static::table_name()) ) return false; + + /* [1] On vérifie que la méthode est 'getX', avec X une chaine + =========================================================*/ + // Si c'est pas le bon format, on retourne une erreur + if( !preg_match('/^get(?:By(\w+)|(All))$/', $method, $matches) ) return false; + + /* [2] On charge la liste des colonnes de la table + =========================================================*/ + $getColumns = Database::getPDO()->query('SHOW COLUMNS FROM '.static::table_name()); + $cols = Database::delNumeric( $getColumns->fetchAll() ); + + $table_columns = array( + '_PRIMARY_' => array() // Contiendra les champs de la clé primaire + ); + + // On ajoute la liste des colonnes + foreach($cols as $column){ + // On enregistre la clé primaire (si elle l'est) + if( $column['Key'] == 'PRI' ) array_push($table_columns['_PRIMARY_'], $column['Field']); + + array_push($table_columns, $column['Field']); + } + + /* [3] On vérifie que la valeur après 'get' est dans $table_columns + =========================================================*/ + $columnName = strtolower($matches[1]); + + $getAll = count($matches) > 2; // Si 'getAll' + $getById = $columnName == 'id'; + $getSomething = count($args) > 0 && in_array($columnName, $table_columns); // Si 'getX', et 'X' dans la liste des colonnes + + // Si ni 'getAll' ni 'getSomething' -> erreur + if( !$getById && !$getAll && !$getSomething ) return false; + + /* [4] On rédige la requête + =========================================================*/ + $getRequestString = 'SELECT * FROM '.static::table_name(); + + // Si c'est 'getById', on ajoute une condition (clé primaire) + if( $getById ){ + $getRequestString .= ' WHERE '.$table_columns['_PRIMARY_'][0].' = :value'; + + // TODO: Gestion d'une clé primaire composée (plusieurs arguments) + + // Si c'est 'getSomething', on ajoute une condition + }else if( $getSomething ) + $getRequestString .= ' WHERE '.$columnName.' = :value'; + + $getRequestString .= ' ORDER BY 1 ASC'; + + // On prépare la requête + $getRequest = Database::getPDO()->prepare($getRequestString); + + /* [5] On exécute la requête + =========================================================*/ + // Si 'getSomething', on ajoute le champ + $getRequest->execute(array( + ':value' => ($getSomething||$getById) ? $args[0] : null + )); + + /* [6] On récupère le résultat + =========================================================*/ + return Database::delNumeric( $getRequest->fetchAll() ); + } + + } + + +?> diff --git a/manager/repo/subject.php b/manager/repo/subject.php new file mode 100644 index 0000000..fe732b9 --- /dev/null +++ b/manager/repo/subject.php @@ -0,0 +1,190 @@ + UID du sujet en question + * + * @return subject Tableau contenant les donnees du sujet s'il existe sinon retourne FALSE + * + */ + public static function getById($id_subject){ + /* [1] On effectue la requete + =========================================================*/ + $getSubject = Database::getPDO()->prepare("SELECT idSujet, pseudo, prenom, nom, id_facebook, telephone + FROM sujets + WHERE idSujet = :id_subject"); + $getSubject->execute(array( ':id_subject' => $id_subject )); + + + /* [2] On recupere le resultat de la requete + =========================================================*/ + $subjectData = $getSubject->fetch(); + + // Si l'utilisateur n'existe pas, on retourne FALSE + if( $subjectData === false ) return false; + + /* [3] Gestion du retour + =========================================================*/ + return Database::delNumeric( $subjectData, true ); + } + + + + + + /* RETOURNE LES DONNEES DE TOUS LES SUJETS + * + * @return subjects Tableau contenant les donnees des sujets, retourne FALSE si erreur + * + */ + public static function getAll(){ + /* [1] On effectue la requete + =========================================================*/ + $getSubjects = Database::getPDO()->query("SELECT idSujet, pseudo, prenom, nom, id_facebook, telephone + FROM sujets + ORDER BY idSujet ASC"); + + + /* [2] On recupere le resultat de la requete + =========================================================*/ + $subjectsData = $getSubjects->fetchAll(); + + // Si l'utilisateur n'existe pas, on retourne FALSE + if( $subjectsData === false ) return false; + + /* [3] Gestion du retour + =========================================================*/ + return Database::delNumeric( $subjectsData ); + } + + + + + /* CREE UN SUJET + * + * @username Pseudo du sujet + * @firstname Prénom du sujet + * @lastname Nom du sujet + * @id_facebook Id facebook du sujet (optionnel) + * @number Numéro de téléphone du sujet (optionnel) + * + * @return id_subject Renvoie l'id du sujet cree ou FALSE si erreur + * + */ + public static function create($username, $firstname, $lastname, $id_facebook, $number){ + /* [0] Verification et formattage des INPUT + =========================================================*/ + $checkInput = Database::check('varchar(0,30)', $username); + $checkInput = $checkInput && Database::check('varchar(0,30)', $firstname); + $checkInput = $checkInput && Database::check('varchar(0,30)', $lastname); + $checkInput = $checkInput && !!strlen($username.$firstname.$lastname); // Pseudo, prénom, ou nom, au moins un n'est pas vide + $checkInput = $checkInput && ( Database::check('id', $id_facebook) || is_null($id_facebook) ); + $checkInput = $checkInput && ( Database::check('number', $number) || is_null($number) ); + + // Si erreur en entree, on retourne FAUX + if( !$checkInput ) return false; + + /* [1] On écrit la requête + =========================================================*/ + $request_create = 'INSERT INTO sujets(idSujet, pseudo, nom, prenom, id_facebook, telephone) '; + $request_create .= 'VALUES ('; + $request_create .= 'DEFAULT, '; // idPersone + $request_create .= strlen($username) ? ':pseudo, ' : 'NULL, '; // pseudo + $request_create .= strlen($lastname) ? ':nom, ' : 'NULL, '; // nom + $request_create .= strlen($firstname) ? ':prenom, ' : 'NULL, '; // prenom + $request_create .= !is_null($id_facebook) ? ':id_facebook, ' : 'NULL, '; // Id facebook + $request_create .= !is_null($number) ? ':number, ' : 'NULL, '; // Numéro de tél + $request_create .= ')'; + + /* (1) Si id_facebook NULL */ + if( $reference == null ){ + + // TODO: Finir l'implémentation + $create = Database::getPDO()->prepare("INSERT INTO subjects(id_subject, login, password, mail, reference, permission) + VALUES(DEFAULT, :login, :password, :mail, NULL, :permission)"); + $create->execute(array( + ':login' => $login, + ':password' => $password, + ':mail' => $mail, + ':permission' => $permission + )); + + /* (2) Si reference est defini */ + }else{ + + $create = Database::getPDO()->prepare("INSERT INTO subjects(id_subject, login, password, mail, reference, permission) + VALUES(DEFAULT, :login, :password, :mail, :reference, :permission)"); + $create->execute(array( + ':login' => $login, + ':password' => $password, + ':mail' => $mail, + ':reference' => (int) $reference, + ':permission' => $permission + )); + + } + + /* [3] Verification de la creation + recuperation id + =========================================================*/ + $checkCreate = Database::getPDO()->prepare("SELECT id_subject + FROM subjects + WHERE login = :login + AND password = :password + AND mail = :mail + AND ( reference = :reference OR reference is NULL ) + AND permission = :permission"); + $checkCreate->execute(array( + ':login' => $login, + ':password' => $password, + ':mail' => $mail, + ':reference' => (int) $reference, + ':permission' => $permission + )); + + // On recupere l'id du sujet + $id_subject = $checkCreate->fetch(); + + // Si erreur, on retourne FALSE + if( $id_subject === false ) return false; + + /* [4] Gestion du retour + =========================================================*/ + return $id_subject['id_subject']; + } + + + + + + + + + + /* SUPRESSION D'UN SUJET D'ID DONNE + * + * @id_subject UID du sujet en question + * + */ + // TODO: Finir l'implémentation + public static function remove($id_subject){ + /* [1] On effectue la suppression + =========================================================*/ + $getSubject = Database::getPDO()->prepare("DELETE FROM subjects WHERE id_subject = :id_subject"); + $getSubject->execute(array( ':id_subject' => $id_subject )); + } + + } + + +?> diff --git a/manager/repo/token.php b/manager/repo/token.php index d622b37..d1883c1 100644 --- a/manager/repo/token.php +++ b/manager/repo/token.php @@ -4,8 +4,10 @@ use \manager\sessionManager; use \manager\Database; - class token{ - + class token extends parentRepo{ + + protected static function table_name(){ static $table_name = 'api_token'; return $table_name; } + /* Gestion de la table Token (pour secu) et des derivations * * 1. Gestion des access @@ -33,11 +35,11 @@ public static function getAll(){ /* [1] On prepare et execute la requete =========================================================*/ - $request = Database::getPDO()->query("SELECT id_token as id, name, token, expires, (CURDATE() > expires) as expired + $request = Database::getPDO()->query("SELECT id_token, name, token, expires, (CURDATE() > expires) as expired FROM api_token ORDER BY expires DESC"); - + /* [3] On retourne les donnees =========================================================*/ return Database::delNumeric( $request->fetchAll() ); @@ -45,32 +47,6 @@ - /* RETOURNE LE TOKEN D'ID SPECIFIE OU FALSE - * - * @id_token UID du token en question - * - * @return token Retourne les donnees du token ou FALSE si erreur - * - */ - public static function getById($id_token){ - /* [0] Verification des INPUT - =========================================================*/ - if( !Database::check('id', $id_token) ) return false; - - - /* [1] On cherche dans la bdd - =========================================================*/ - $get_token = Database::getPDO()->prepare("SELECT id_token FROM api_token WHERE id_token = :id_token"); - $get_token->execute( array( ':id_token' => $id_token ) ); - - - /* [2] On renvoie la valeur ou FALSE - =========================================================*/ - return $get_token->fetch(); - } - - - /* VERIFIE SI UN TOKEN EST VALIDE * * @token Token en question @@ -119,9 +95,9 @@ public static function generate($name, $duration){ /* [0] Verification des INPUT =========================================================*/ - if( !Database::check('varchar(3, 50)', $name) || !Database::check('id', $duration) ) return false; + if( !Database::check('varchar(3,50)', $name) || !Database::check('id', $duration) ) return false; + - // On definit la date d'expiration du token $expiration = date('Y-m-d', time()+$duration*3600*24); @@ -191,7 +167,7 @@ /* [1] On verifie l'existance du token =========================================================*/ - if( !self::getById($id_token) ) return false; + if( count(self::getById($id_token)) == 0 ) return false; /* [2] Suppression du token @@ -203,10 +179,10 @@ /* [3] On retourne VRAI si le token est bien supprime =========================================================*/ - return self::getById($id_token) === false; + return count(self::getById($id_token)) == 0; } } -?> \ No newline at end of file +?> diff --git a/manager/repo/user.php b/manager/repo/user.php index 6697a57..356e99c 100755 --- a/manager/repo/user.php +++ b/manager/repo/user.php @@ -3,10 +3,14 @@ namespace manager\repo; use \manager\Database; use \manager\sessionManager; + use \manager\repo\parentRepo; + + class user extends parentRepo{ + + protected static function table_name(){ static $table_name = 'users'; return $table_name; } + - class user{ - /* VERIFICATION DU LOGIN/PASSWORD D'UN UTILISATEUR * * @login Username ou Adresse mail de l'utilisateur @@ -51,65 +55,6 @@ - /* RETOURNE LES DONNEES D'UN UTILISATEUR D'ID DONNE - * - * @id_user UID de l'utilisateur en question - * - * @return user Tableau contenant les donnees de l'utilisateur s'il existe sinon retourne FALSE - * - */ - public static function getById($id_user){ - /* [1] On effectue la requete - =========================================================*/ - $getUser = Database::getPDO()->prepare("SELECT id_user, login, mail, permission - FROM users - WHERE id_user = :id_user"); - $getUser->execute(array( ':id_user' => $id_user )); - - - /* [2] On recupere le resultat de la requete - =========================================================*/ - $userData = $getUser->fetch(); - - // Si l'utilisateur n'existe pas, on retourne FALSE - if( $userData === false ) return false; - - /* [3] Gestion du retour - =========================================================*/ - return Database::delNumeric( $userData, true ); - } - - - - - - /* RETOURNE LES DONNEES DE TOUS LES UTILISATEURS - * - * @return users Tableau contenant les donnees des utilisateurs, retourne FALSE si erreur - * - */ - public static function getAll(){ - /* [1] On effectue la requete - =========================================================*/ - $getUsers = Database::getPDO()->query("SELECT id_user, login, mail, permission - FROM users - ORDER BY login ASC"); - - - /* [2] On recupere le resultat de la requete - =========================================================*/ - $usersData = $getUsers->fetchAll(); - - // Si l'utilisateur n'existe pas, on retourne FALSE - if( $usersData === false ) return false; - - /* [3] Gestion du retour - =========================================================*/ - return Database::delNumeric( $usersData ); - } - - - /* CREE UN UTILISATEUR * @@ -122,19 +67,18 @@ * @return id_user Renvoie l'id de l'utilisateur cree ou FALSE si erreur * */ - public static function create($login, $password, $mail, $reference, $permissions){ + public static function create($login, $password, $mail, $reference, $permission){ /* [0] Verification et formattage des INPUT =========================================================*/ $checkInput = Database::check('sha1', $password); - $checkInput = $checkInput && ( Database::check('id', $reference) || $reference === null ); - $checkInput = $checkInput && Database::check('array', $permissions); + $checkInput = $checkInput && Database::check('varchar(3, 30)', $login); + $checkInput = $checkInput && Database::check('mail', $mail); + $checkInput = $checkInput && ( Database::check('id', $reference) || is_null($reference) ); + $checkInput = $checkInput && in_array($permission, array('admin', 'subject')); // Si erreur en entree, on retourne FAUX if( !$checkInput ) return false; - // On formatte les permissions (array -> string) - $permissions = implode(',', $permissions); - /* [1] On verifie que le login/mail et reference sont uniques =========================================================*/ @@ -148,10 +92,9 @@ ':mail' => $mail, ':reference' => $reference )); - $unique = $checkUnique->fetch() === false; - // Si un utilisateur a le meme LOGIN/MAIL ou REFERENCE, on retourne une erreur - if( !$unique ) return false; + // Si un utilisateur a le meme LOGIN/MAIL ou REFERENCE qu'un autre, on retourne une erreur + if( $checkUnique->fetch() !== false ) return false; /* [2] Creation de l'utilisateur @@ -165,8 +108,8 @@ ':login' => $login, ':password' => $password, ':mail' => $mail, - ':permission' => $permissions - )); + ':permission' => $permission + )); /* (2) Si reference est defini */ }else{ @@ -178,8 +121,8 @@ ':password' => $password, ':mail' => $mail, ':reference' => (int) $reference, - ':permission' => $permissions - )); + ':permission' => $permission + )); } @@ -197,7 +140,7 @@ ':password' => $password, ':mail' => $mail, ':reference' => (int) $reference, - ':permission' => $permissions + ':permission' => $permission )); // On recupere l'id de l'utilisateur @@ -234,4 +177,4 @@ } -?> \ No newline at end of file +?> diff --git a/phpunit/coverage/Database.php.html b/phpunit/coverage/Database.php.html index e50b2c3..9e875c5 100755 --- a/phpunit/coverage/Database.php.html +++ b/phpunit/coverage/Database.php.html @@ -51,22 +51,22 @@
0.00%
0 / 1
-
- 57.14% covered (warning) +
+ 55.56% covered (warning)
-
57.14%
-
4 / 7
+
55.56%
+
5 / 9
CRAP
-
- 84.15% covered (warning) +
+ 85.11% covered (warning)
-
84.15%
-
69 / 82
+
85.11%
+
80 / 94
@@ -80,22 +80,22 @@
0.00%
0 / 1
-
- 57.14% covered (warning) +
+ 55.56% covered (warning)
-
57.14%
-
4 / 7
- 57.18 +
55.56%
+
5 / 9
+ 66.36
-
- 84.15% covered (warning) +
+ 85.11% covered (warning)
-
84.15%
-
69 / 82
+
85.11%
+
80 / 94
@@ -204,7 +204,28 @@ -  check +  check +
+
+ 0.00% covered (danger) +
+
+ +
0.00%
+
0 / 1
+ 26 +
+
+ 96.30% covered (success) +
+
+ +
96.30%
+
26 / 27
+ + + +  formatNumber
100.00% covered (success) @@ -213,7 +234,7 @@
100.00%
1 / 1
- 23 + 2
100.00% covered (success) @@ -221,11 +242,32 @@
100.00%
-
25 / 25
+
5 / 5
-  frDate +  readableNumber +
+
+ 100.00% covered (success) +
+
+ +
100.00%
+
1 / 1
+ 3 +
+
+ 100.00% covered (success) +
+
+ +
100.00%
+
5 / 5
+ + + +  frDate
0.00% covered (danger) @@ -251,12 +293,12 @@ - + - + @@ -281,8 +323,8 @@ - - + + @@ -309,7 +351,7 @@ - + @@ -356,7 +398,7 @@ - + @@ -373,19 +415,19 @@ - + - + - + - + @@ -394,14 +436,14 @@ - + - + @@ -417,8 +459,8 @@ - - + + @@ -435,17 +477,17 @@ - + - + - + @@ -458,7 +500,7 @@ - + @@ -475,78 +517,122 @@ - + - + - - + + - - + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
<?php
    
    namespace manager;
    class DataBase{
        
        /* ATTRIBUTS STATIQUES */
        public static $config_path = array(
            'local'   => 'f/json/database-local/conf',
            $this->dbname   = $dbname;
            $this->username = $username;
            $this->password = $password;
            
            try{            
            try{
                self::$pdo = new \PDO('mysql:host='.$this->host.';dbname='.$this->dbname, $this->username, $this->password);
                // On signale que tout s'est bien passe
                self::$instance = new DataBase($conf['host'], $conf['dbname'], $conf['user'], $conf['password']);
            }
            
            return self::$instance;
        }
        * @fetchData<Array>                    le résultat d'une $requeteSQL->fetchAll()
        * @oneDimension<Boolean>            FAUX <=> fetchAll ; VRAI <=> fetch
        *
        * @return newFetchData<Array>        retourne le tableau donné en paramètre mais sans les valeurs à clés numériques    
        * @return newFetchData<Array>        retourne le tableau donné en paramètre mais sans les valeurs à clés numériques
        *
        */
        public static function delNumeric($fetchData, $oneDimension=false){
                // on supprime les doublons des entrées (indice numérique)
                for( $i = 0 ; $i < count($fetchData) ; $i++ ) // pour tout les utilisateurs
                    foreach($fetchData[$i] as $col => $val){  // pour toutes les entrées
                        
                        if( !mb_detect_encoding($val, 'UTF-8') )
                            $fetchData[$i][$col] = utf8_encode($val);
                        
                        if( is_int($col) ){ // Si indice numerique
                            if( $nextEquivalent ) // Si suit un indice textuel
                                unset( $fetchData[$i][$col] ); // on supprime l'indice
                            
                            $nextEquivalent = false; // Dans tous les cas, on dit que le prochain ne pourra pas etre supprime si numerique
                        }else // Si l'indice n'est pas un entier
                            $nextEquivalent = true; // On signale qu'il y aura peut etre un indice numerique suivant
                            
                        }
            /* [2] 1 dimensions
                // on supprime les doublons des entrées (indice numérique)
                foreach($fetchData as $i=>$val){  // pour toutes les entrées
                    
                    if( !mb_detect_encoding($val, 'UTF-8') )
                        $fetchData[$i] = utf8_encode($val);
                    if( is_int($i) ){ // Si indice numerique
                        if( $nextEquivalent ) // Si suit un indice textuel
                            unset( $fetchData[$i] ); // on supprime l'indice
                        
                        $nextEquivalent = false; // Dans tous les cas, on dit que le prochain ne pourra pas etre supprime si numerique
                    }else // Si l'indice n'est pas un entier
        ////////////////////////////////////////////////////////////////
        //                 _  __ _           _   _                 
        // __   _____ _ __(_)/ _(_) ___ __ _| |_(_) ___  _ __  ___ 
        //                 _  __ _           _   _
        // __   _____ _ __(_)/ _(_) ___ __ _| |_(_) ___  _ __  ___
        // \ \ / / _ \ '__| | |_| |/ __/ _` | __| |/ _ \| '_ \/ __|
        //  \ V /  __/ |  | |  _| | (_| (_| | |_| | (_) | | | \__ \
        //   \_/ \___|_|  |_|_| |_|\___\__,_|\__|_|\___/|_| |_|___/
        *
        */
        public static function check($type, $value){
            $checker = true;
            $checker = true;
            /* [0] On verifie que $value n'est pas nul
            =========================================================*/
            if( is_null($value) ) return false;
            if( is_null($value) ) return false;
            /* [1] Si de type VARCHAR(min, max)
            =========================================================*/
            if( preg_match('/^varchar\((\d+), ?(\d+)\)$/', $type, $match) ){
            if( preg_match('/^varchar\((\d+), ?(\d+)\)$/', $type, $match) ){
                // On recupere la taille min
                $min = (int) $match[1];
                // On recupere la taille max
            /* [2] Si de type ARRAY(type_elements)
            =========================================================*/
            if( preg_match('/^array<(.+)>$/', $type, $match) ){
            if( preg_match('/^array<(.+)>$/', $type, $match) ){
                // Si c'est pas un tableau on retourne une erreur
                if( !is_array($value) )
                    return false;
                return true;
            }
            
            /* [n] Sinon, tous les autres types definis
            =========================================================*/            
            =========================================================*/
            switch($type){
                // Entier positif (id dans BDD)
                case 'id':
                    return $checker && is_numeric($value) && $value <= 2147483647 && $value >= 0;
                case 'id':
                    return $checker && is_numeric($value) && $value <= 2147483647 && $value >= 0;
                    break;
                // String quelconque (peut etre vide)
                case 'text':
                    return $checker && is_string($value);
                case 'text':
                    return $checker && is_string($value);
                // Adresse mail (255 caracteres max)
                case 'mail':
                    return $checker && is_string($value) && strlen($value) <= 50 && preg_match('/^[\w\.-]+@[\w\.-]+\.[a-z]{2,4}$/i', $value);
                    break;
                
                // Hash sha1
                case 'sha1':
                    return $checker && is_string($value) && preg_match('/^[\da-f]{40}$/i', $value);
                    break;
                
                default:
                    return false;
                    break;
            }
            return $checker;
        }
        ////////////////////////////////////
        //      _       _            
        //   __| | __ _| |_ ___  ___ 
        //  / _` |/ _` | __/ _ \/ __|
        // | (_| | (_| | ||  __/\__ \
        //  \__,_|\__,_|\__\___||___/
        //
        ////////////////////////////////////
        // 1) Convertis une date en en francais explicite
        public static function frDate($date){
            /* [1] On definit les traductions
            =========================================================*/
            // Jours de la semaine
            $days   = array("Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi", "Dimanche");
            // Mois de l'annee
            $months = array("Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre");
            /* [2] On recupere le timestamp et les indices
            =========================================================*/
            $time = strtotime($date); // timestamp
            $daynum = intval( date('N', $time)-1 ); // jour dans la semaine
            $monthnum = intval( date('n', $time)-1 ); // numero du mois dans l'annee
                    break;
                // Numéro de téléphone
                case 'phone_number':
                    return $checker && is_string($value) && preg_match('/^(?:0|\+33 ?|0?0?33 ?|)([1-9] ?(?:[0-9] ?){8})$/i', $value);
                    break;
                default:
                    return false;
                    break;
            }
            return $checker;
        }
        /* FONCTION QUI FORMATTE UN NUMÉRO DE TÉLÉPHONE
        *
        * @number<String>                                         Numéro de téléphone en +336/336/06/0336/00336
        *
        * @return formatted<String>                             Numéro formatté (06), on FALSE si erreur
        *
        */
        public static function formatNumber($number){
            // On met en <string> quel que soit le type
            $number = (string) $number;
            // On supprime tous les espaces
            $number = str_replace(' ', '', $number);
            /* [3] On recupere les infos independemment
            =========================================================*/
            $result = array(
                $days[$daynum],     // nom de jour
                date('j', $time),   // jour du mois
                $months[$monthnum], // nom du mois
                date('Y', $time),   // annee
            );
            return implode(" ", $result);
        }
    }
?>
            // On formatte le numéro
            if( preg_match("/^(?:\+33|0?0?33|0)(.+)/", $number, $m) )
                $number = '0'.$m[1];
            // On retourne le numéro formatté
            return $number;
        }
        public static function readableNumber($number){
            /* (1) On formatte le numéro si c'est pas fait */
            $formatted = self::formatNumber($number);
            for( $i = 1 ; $i < strlen($formatted) ; $i++ )
                if( ($i-2) % 3 == 0 )
                    $formatted = substr($formatted, 0, $i).' '.substr($formatted, $i);
            return $formatted;
        }
        ////////////////////////////////////
        //      _       _
        //   __| | __ _| |_ ___  ___
        //  / _` |/ _` | __/ _ \/ __|
        // | (_| | (_| | ||  __/\__ \
        //  \__,_|\__,_|\__\___||___/
        //
        ////////////////////////////////////
        // 1) Convertis une date en en francais explicite
        public static function frDate($date){
            /* [1] On definit les traductions
            =========================================================*/
            // Jours de la semaine
            $days   = array("Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi", "Dimanche");
            // Mois de l'annee
            $months = array("Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre");
            /* [2] On recupere le timestamp et les indices
            =========================================================*/
            $time = strtotime($date); // timestamp
            $daynum = intval( date('N', $time)-1 ); // jour dans la semaine
            $monthnum = intval( date('n', $time)-1 ); // numero du mois dans l'annee
            /* [3] On recupere les infos independemment
            =========================================================*/
            $result = array(
                $days[$daynum],     // nom de jour
                date('j', $time),   // jour du mois
                $months[$monthnum], // nom du mois
                date('Y', $time),   // annee
            );
            return implode(" ", $result);
        }
    }
?>
@@ -559,7 +645,7 @@ Dead Code

- Generated by PHP_CodeCoverage 2.1.7 using PHP 5.6.11-1ubuntu3.1 and PHPUnit 4.7.6 at Mon Apr 18 9:37:55 UTC 2016. + Generated by PHP_CodeCoverage 2.1.7 using PHP 5.6.11-1ubuntu3.1 and PHPUnit 4.7.6 at Wed Apr 20 13:45:11 UTC 2016.

diff --git a/phpunit/coverage/ManagerError.php.html b/phpunit/coverage/ManagerError.php.html index 7e86598..0ff813d 100755 --- a/phpunit/coverage/ManagerError.php.html +++ b/phpunit/coverage/ManagerError.php.html @@ -66,7 +66,7 @@
100.00%
-
18 / 18
+
19 / 19
@@ -87,7 +87,7 @@
100.00%
1 / 1
- 18 + 19
100.00% covered (success) @@ -95,11 +95,11 @@
100.00%
-
18 / 18
+
19 / 19
-  explicit +  explicit
100.00% covered (success) @@ -108,7 +108,7 @@
100.00%
1 / 1
- 18 + 19
100.00% covered (success) @@ -116,7 +116,7 @@
100.00%
-
18 / 18
+
19 / 19
@@ -192,49 +192,53 @@             const PermissionError     = 16; - -         /* EXPLICITE UN CODE D'ERREUR -         * -         * @error<Integer>                                     Code d'erreur -         * -         * @return explicit<String>                             Description explicite du code d'erreur -         * -         */ -         public static function explicit($error){ -             switch($error){ -                 case self::Success:             return "Tout s'est bien deroule";                                             break; - -                 case self::ParsingFailed:       return "La lecture du fichier JSON ou XML a echoue";                          break; - -                 case self::InvalidFlags:        return "Les specifications (drapeaux) sont incorrects";                       break; -                 case self::UnreachableResource: return "La ressource n'existe pas (404)";                                     break; -                 case self::MissingPath:         return "Le chemin de delegation n'a pas ete renseigne";                       break; -                 case self::WrongPathModule:     return "Le chemin de delegation est incorrect ('nomModule/nomMethode')";      break; -                 case self::WrongPathRepo:       return "Le chemin de delegation est incorrect ('nomRepo/nomMethode')";        break; -                 case self::UnknownModule:       return "Le module n'existe pas";                                              break; -                 case self::UnknownRepo:         return "Le repo n'existe pas";                                                break; -                 case self::UnknownMethod:       return "Le methode n'existe pas";                                             break; -                 case self::UncallableMethod:    return "Le methode n'est pas amorcable";                                      break; - -                 case self::ParamError:          return "Un ou plusieurs parametres sont manquants ou incorrects";             break; -                 case self::ModuleError:         return "Erreur lors du traitement du module";                                 break; -                 case self::RepoError:           return "Erreur lors du traitement du repo";                                   break; - -                 case self::PDOConnection:       return "La connexion avec la base de donnees a echoue";                       break; - -                 case self::TokenError:          return "Le token de connection est absent ou errone";                         break; -                 case self::PermissionError:     return "Vous n'avez pas la permission d'effectuer cette action";              break; +         /* Erreur d'UPLOAD */ +             const UploadError         = 17; + + +         /* EXPLICITE UN CODE D'ERREUR +         * +         * @error<Integer>                                     Code d'erreur +         * +         * @return explicit<String>                             Description explicite du code d'erreur +         * +         */ +         public static function explicit($error){ +             switch($error){ +                 case self::Success:             return "Tout s'est bien deroulé.";                                             break; + +                 case self::ParsingFailed:       return "La lecture du fichier JSON ou XML a echouée.";                         break; + +                 case self::InvalidFlags:        return "Les spécifications (drapeaux) sont incorrects.";                       break; +                 case self::UnreachableResource: return "La ressource n'existe pas (404).";                                     break; +                 case self::MissingPath:         return "Le chemin de délégation n'a pas été renseigné.";                       break; +                 case self::WrongPathModule:     return "Le chemin de délégation est incorrect ('nomModule/nomMethode').";      break; +                 case self::WrongPathRepo:       return "Le chemin de délégation est incorrect ('nomRepo/nomMethode').";        break; +                 case self::UnknownModule:       return "Le module n'existe pas.";                                              break; +                 case self::UnknownRepo:         return "Le repo n'existe pas.";                                                break; +                 case self::UnknownMethod:       return "Le methode n'existe pas.";                                             break; +                 case self::UncallableMethod:    return "Le methode n'est pas amorçable.";                                      break; + +                 case self::ParamError:          return "Un ou plusieurs paramètres sont manquants ou incorrects.";             break; +                 case self::ModuleError:         return "Erreur lors du traitement du module.";                                 break; +                 case self::RepoError:           return "Erreur lors du traitement du repo.";                                   break; + +                 case self::PDOConnection:       return "La connexion avec la base de données a echouée.";                      break; -                 // default:                        return "Erreur inconnue...";                                                  break; -             } - -             // Erreur inconnue -             return null; -         } +                 case self::TokenError:          return "Le token de connection est absent, érroné ou expiré.";                 break; +                 case self::PermissionError:     return "Vous n'avez pas la permission d'effectuer cette action.";              break; +                 case self::UploadError:         return "Une erreur d'upload est survenue.";                                   break; + +                 // default:                        return "Erreur inconnue...";                                                  break; +             } -     } - - ?> +             // Erreur inconnue +             return null; +         } + +     } + + ?> @@ -247,7 +251,7 @@ Dead Code

- Generated by PHP_CodeCoverage 2.1.7 using PHP 5.6.11-1ubuntu3.1 and PHPUnit 4.7.6 at Mon Apr 18 9:37:55 UTC 2016. + Generated by PHP_CodeCoverage 2.1.7 using PHP 5.6.11-1ubuntu3.1 and PHPUnit 4.7.6 at Wed Apr 20 13:45:11 UTC 2016.

diff --git a/phpunit/coverage/ResourceDispatcher.php.html b/phpunit/coverage/ResourceDispatcher.php.html index 328077e..286a147 100755 --- a/phpunit/coverage/ResourceDispatcher.php.html +++ b/phpunit/coverage/ResourceDispatcher.php.html @@ -229,12 +229,12 @@ - + - + @@ -262,49 +262,49 @@ - + - + - + - + - - + + - + - + - + - + - + @@ -312,10 +312,10 @@ - + - - + + @@ -328,8 +328,8 @@ - - + + @@ -345,51 +345,51 @@ - + - + - + - + - + - + - + - + - - + + - + - - - - - + + + + + - + - + - + @@ -408,10 +408,10 @@ - + - + @@ -420,23 +420,23 @@ - + - + - + - + - + @@ -444,20 +444,20 @@ - + - + - + - + - + @@ -489,15 +489,15 @@ - - + + - + - + @@ -517,7 +517,7 @@ Dead Code

- Generated by PHP_CodeCoverage 2.1.7 using PHP 5.6.11-1ubuntu3.1 and PHPUnit 4.7.6 at Mon Apr 18 9:37:55 UTC 2016. + Generated by PHP_CodeCoverage 2.1.7 using PHP 5.6.11-1ubuntu3.1 and PHPUnit 4.7.6 at Wed Apr 20 13:45:11 UTC 2016.

diff --git a/phpunit/coverage/autoloader.php.html b/phpunit/coverage/autoloader.php.html index 0b66a5f..5daa646 100755 --- a/phpunit/coverage/autoloader.php.html +++ b/phpunit/coverage/autoloader.php.html @@ -214,7 +214,7 @@ Dead Code

- Generated by PHP_CodeCoverage 2.1.7 using PHP 5.6.11-1ubuntu3.1 and PHPUnit 4.7.6 at Mon Apr 18 9:37:55 UTC 2016. + Generated by PHP_CodeCoverage 2.1.7 using PHP 5.6.11-1ubuntu3.1 and PHPUnit 4.7.6 at Wed Apr 20 13:45:11 UTC 2016.

diff --git a/phpunit/coverage/index.html b/phpunit/coverage/index.html index c7effcf..2af40fd 100755 --- a/phpunit/coverage/index.html +++ b/phpunit/coverage/index.html @@ -43,29 +43,29 @@ - - + + - - + + - - + + @@ -99,13 +99,13 @@ - - + + - + - - + + - - + + - + - - + +
<?php 
<?php
    namespace manager;
    use \manager\Repo;
    use \manager\sessionManager;
    
    class ResourceDispatcher{
        *
        */
        public function __construct($url, $view=false){
            $this->error = ManagerError::Success;
            $this->error = ManagerError::Success;
            /* [0] On met a jour la configuration
            =====================================================*/
            // Extensions supportees
            $extensions_conf = json_decode( file_get_contents(__ROOT__.self::$extension_config_path), true );
            $extensions_conf = json_decode( file_get_contents(__ROOT__.self::$extension_config_path), true );
            // Gestion de l'erreur de parsage
            if( $extensions_conf == null ){
            if( $extensions_conf == null ){
                $this->error = ManagerError::ParsingFailed;
                return false;
            }
            self::$supported_extensions = $extensions_conf;
            self::$supported_extensions = $extensions_conf;
            // Dossiers supportes
            $parents_conf = json_decode( file_get_contents(__ROOT__.self::$parents_config_path), true );
            
            $parents_conf = json_decode( file_get_contents(__ROOT__.self::$parents_config_path), true );
            // Gestion de l'erreur de parsage
            if( $parents_conf == null ){
            if( $parents_conf == null ){
                $this->error = ManagerError::ParsingFailed;
                return false;
            }
            self::$supported_parents = $parents_conf;
            self::$supported_parents = $parents_conf;
            /* [1] On recupere les donnees de l'URL
            ==================================================*/
            $serialFlags = array_slice( explode('/',$url), 1 );
            $serialFlags = array_slice( explode('/',$url), 1 );
            /* [2] On check/cree les drapeaux avec ces donnees
            ==================================================*/
            if( !$this->createFlags($serialFlags) ){ // Creation des drapeaux
            if( !$this->createFlags($serialFlags) ){ // Creation des drapeaux
                $this->error = ManagerError::InvalidFlags;
                return false;
            }
            /* [3] On construit le chemin a partir des tags
            ==================================================*/
            if( !$this->buildPath() ){ // Construction du chemin
            if( !$this->buildPath() ){ // Construction du chemin
                $this->error = ManagerError::UnreachableResource;
                return false;
            }
            /* [4] On gere l'affichage pour l'appel externe/interne
            ==================================================*/
            if( $view ) // Appel externe
                $this->view();
                $this->view();
            
            return true;
            return true;
        }
        *
        */
        public static function getResource($route){
            $instance = new ResourceDispatcher($route);
            return $instance->getContent();
            $instance = new ResourceDispatcher($route);
            return $instance->getContent();
        }
            /* [1] Verification des flags (version serialisee)
            ======================================================*/
            $correct = true;
            $correct = true;
            // Verification du nombre de drapeaux () au moins 3
            $correct = $correct && count($serialFlags) >= 3;
            $correct = $correct && count($serialFlags) >= 3;
            // Verification que l'extension est correcte
            $correct = $correct && array_key_exists($serialFlags[0], self::$supported_extensions);
            $correct = $correct && array_key_exists($serialFlags[0], self::$supported_extensions);
            // Verification du filename
            $correct = $correct && preg_match('/^[\w_\.-]+$/i', $serialFlags[1]);
            $correct = $correct && preg_match('/^[\w_\.-]+$/i', $serialFlags[1]);
            // Verification du parent
            $correct = $correct && array_key_exists($serialFlags[2], self::$supported_parents);
            $correct = $correct && array_key_exists($serialFlags[2], self::$supported_parents);
            // Verification du sous-parent (optionnel)
            $opt_subParent = count($serialFlags) >= 4;
            $opt_subParent = count($serialFlags) >= 4;
            if( $opt_subParent )
                $correct = $correct && preg_match('/^[\w_-]+$/i', $serialFlags[3]);
                $correct = $correct && preg_match('/^[\w_-]+$/i', $serialFlags[3]);
            // Verification de la couleur (optionnel)
            $opt_color = count($serialFlags) >= 5 && preg_match('/^[\da-f]{6,8}+$/i', $serialFlags[4]);
            $opt_color = count($serialFlags) >= 5 && preg_match('/^[\da-f]{6,8}+$/i', $serialFlags[4]);
            if( !$correct )
                return false;
            if( !$correct )
                return false;
                
            /* [2] Creation (non serialisee) des flags
            ======================================================*/
            // Si tout se deroule bien, on cree les flags
            $this->flags = array(
                'extension' => $serialFlags[0],
                'filename'  => $serialFlags[1],
                'parent'    => $serialFlags[2]
            );
            $this->flags = array(
                'extension' => $serialFlags[0],
                'filename'  => $serialFlags[1],
                'parent'    => $serialFlags[2]
            );
            // Ajout du sous-parent optionnel
            if( $opt_subParent )
                $this->flags['subparent'] = $serialFlags[3];
                $this->flags['subparent'] = $serialFlags[3];
            // Ajout du color optionnel
            if( $opt_color )
                $this->flags['color'] = '#'.$serialFlags[4];
                $this->flags['color'] = '#'.$serialFlags[4];
            return true;
            return true;
        }
            /* [1] On recupere le HEADER associe a l'extension
            ==========================================================*/
            // Si aucun header pour cet cle, on retourne une erreur
            if( !isset(self::$supported_extensions[$this->flags['extension']]) ) return false;
            if( !isset(self::$supported_extensions[$this->flags['extension']]) ) return false;
            // On recupere le header associe
            $header = self::$supported_extensions[$this->flags['extension']];
            $header = self::$supported_extensions[$this->flags['extension']];
            /* [2] On recupere le chemin associe au parent
            ==========================================================*/
            // Si aucun dossier pour cet indice, on retourne une erreur
            if( !isset(self::$supported_parents[$this->flags['parent']]) ) return false;
            if( !isset(self::$supported_parents[$this->flags['parent']]) ) return false;
            // On recupere le dossier associe
            $parent = self::$supported_parents[$this->flags['parent']];
            $parent = self::$supported_parents[$this->flags['parent']];
            /* [3] Gestion du sous-parent optionnel
            ==========================================================*/
            $opt_subParent = (isset($this->flags['subparent'])) ? $this->flags['subparent'].'/' : '';
            $opt_subParent = (isset($this->flags['subparent'])) ? $this->flags['subparent'].'/' : '';
            /* [4] Gestion du color optionnel
            =========================================================*/
            $this->stylesheet = "";
            $this->stylesheet = "";
            // si le color est defini
            if( isset($this->flags['color']) ){
            if( isset($this->flags['color']) ){
                $this->stylesheet = "\n<style type='text/css'>\n";
                    $this->stylesheet .= "\t#stylisable{\n";
                        $this->stylesheet .= "\t\tfill: ".$this->flags['color']." !important;\n";
                    $this->stylesheet .= "\t}\n";
                $this->stylesheet .= "</style>";
            }
            
            /* [5] On definit le header
            ==========================================================*/
            $this->header = $header;
            $this->header = $header;
            /* [6] On construit le chemin 
            /* [6] On construit le chemin
            ==========================================================*/
            $this->path = __ROOT__.$parent.'/'.$opt_subParent.$this->flags['filename'].'.'.$this->flags['extension'];
            $this->path = __ROOT__.$parent.'/'.$opt_subParent.$this->flags['filename'].'.'.$this->flags['extension'];
            /* [7] On retourne si le fichier existe ou non
            ==========================================================*/
            return @file_get_contents( $this->path ) != false;
            return @file_get_contents( $this->path ) != false;
        }
        */
        public function getContent(){
            // S'il y a eu une erreur en amont
            if( $this->error != ManagerError::Success )
                return false; // on retourne faux
            if( $this->error != ManagerError::Success )
                return false; // on retourne faux
            // On inclut le contenu
            $content = file_get_contents($this->path);
            $content = file_get_contents($this->path);
            // On retourne tout
            return str_replace( '</svg>', $this->stylesheet.'</svg>', $content );
            return str_replace( '</svg>', $this->stylesheet.'</svg>', $content );
        }
Total
-
- 67.51% covered (warning) +
+ 65.21% covered (warning)
67.51%
266 / 394
65.21%
283 / 434
-
- 47.73% covered (danger) +
+ 47.83% covered (danger)
47.73%
21 / 44
47.83%
22 / 46
-
- 11.11% covered (danger) +
+ 10.00% covered (danger)
11.11%
1 / 9
10.00%
1 / 10
repo
-
- 16.28% covered (danger) +
+ 10.77% covered (danger)
16.28%
7 / 43
10.77%
7 / 65
20.00% covered (danger) @@ -121,27 +121,27 @@
0.00%
0 / 1
0 / 2
Database.php
-
- 84.15% covered (warning) +
+ 85.11% covered (warning)
84.15%
69 / 82
85.11%
80 / 94
-
- 57.14% covered (warning) +
+ 55.56% covered (warning)
57.14%
4 / 7
55.56%
5 / 9
0.00% covered (danger) @@ -161,7 +161,7 @@
100.00%
18 / 18
19 / 19
100.00% covered (success) @@ -183,13 +183,13 @@
ModuleRequest.php
-
- 86.36% covered (warning) +
+ 87.10% covered (warning)
86.36%
76 / 88
87.10%
81 / 93
62.50% covered (warning) @@ -350,7 +350,7 @@ High: 90% to 100%

- Generated by PHP_CodeCoverage 2.1.7 using PHP 5.6.11-1ubuntu3.1 and PHPUnit 4.7.6 at Mon Apr 18 9:37:55 UTC 2016. + Generated by PHP_CodeCoverage 2.1.7 using PHP 5.6.11-1ubuntu3.1 and PHPUnit 4.7.6 at Wed Apr 20 13:45:11 UTC 2016.

diff --git a/phpunit/coverage/sessionManager.php.html b/phpunit/coverage/sessionManager.php.html index 1c8f21b..7e2bd09 100755 --- a/phpunit/coverage/sessionManager.php.html +++ b/phpunit/coverage/sessionManager.php.html @@ -315,7 +315,7 @@ Dead Code

- Generated by PHP_CodeCoverage 2.1.7 using PHP 5.6.11-1ubuntu3.1 and PHPUnit 4.7.6 at Mon Apr 18 9:37:55 UTC 2016. + Generated by PHP_CodeCoverage 2.1.7 using PHP 5.6.11-1ubuntu3.1 and PHPUnit 4.7.6 at Wed Apr 20 13:45:11 UTC 2016.

diff --git a/phpunit/tests/Database_readableNumber.php b/phpunit/tests/Database_readableNumber.php new file mode 100644 index 0000000..18309c6 --- /dev/null +++ b/phpunit/tests/Database_readableNumber.php @@ -0,0 +1,54 @@ +assertEquals( Database::readableNumber('0102030405'), $this->formatted ); + $this->assertEquals( Database::readableNumber('01 02 03 04 05'), $this->formatted ); + } + public function testB(){ + $this->assertEquals( Database::readableNumber('+33102030405'), $this->formatted ); + $this->assertEquals( Database::readableNumber('+331 02 03 04 05'), $this->formatted ); + } + + public function testC(){ + $this->assertEquals( Database::readableNumber('33102030405'), $this->formatted ); + $this->assertEquals( Database::readableNumber('331 02 03 04 05'), $this->formatted ); + } + + public function testCbis(){ + $this->assertEquals( Database::readableNumber('033102030405'), $this->formatted ); + $this->assertEquals( Database::readableNumber('0331 02 03 04 05'), $this->formatted ); + } + + public function testBter(){ + $this->assertEquals( Database::readableNumber('0033102030405'), $this->formatted ); + $this->assertEquals( Database::readableNumber('00331 02 03 04 05'), $this->formatted ); + } + + public function testFirstSpace(){ + $this->assertEquals( Database::readableNumber('0 102030405'), $this->formatted ); + $this->assertEquals( Database::readableNumber('+33 102030405'), $this->formatted ); + $this->assertEquals( Database::readableNumber('33 102030405'), $this->formatted ); + $this->assertEquals( Database::readableNumber('033 102030405'), $this->formatted ); + $this->assertEquals( Database::readableNumber('0033 102030405'), $this->formatted ); + } + + public function testAllSpaces(){ + $this->assertEquals( Database::readableNumber('0 1 02 03 04 05'), $this->formatted ); + $this->assertEquals( Database::readableNumber('+33 1 02 03 04 05'), $this->formatted ); + $this->assertEquals( Database::readableNumber('33 1 02 03 04 05'), $this->formatted ); + $this->assertEquals( Database::readableNumber('033 1 02 03 04 05'), $this->formatted ); + $this->assertEquals( Database::readableNumber('0033 1 02 03 04 05'), $this->formatted ); + } + + + } + +?> diff --git a/phpunit/tests/ModuleRequest.php b/phpunit/tests/ModuleRequest.php index f7c5b31..2ee2515 100644 --- a/phpunit/tests/ModuleRequest.php +++ b/phpunit/tests/ModuleRequest.php @@ -165,6 +165,41 @@ $this->assertEquals( $ans->get('p1'), $params['p1'] ); $this->assertEquals( $ans->get('p2'), $params['p2'] ); } + + /* (4) Gestion des paramètres optionnels */ + public function testConstructOptionalParamGivenIncorrectType(){ + $_SESSION['permission'] = array(); + + $params = array( 'p1' => 'sometext', 'p2' => 'sometexttoo', 'p3' => -10 ); + + $req = new \manager\ModuleRequest( 'module/phpunitOptionalParams', $params ); + $this->assertEquals( $req->error, \manager\ManagerError::ParamError ); + } + public function testConstructOptionalParamGiven(){ + $_SESSION['permission'] = array(); + + $params = array( 'p1' => 'sometext', 'p2' => 'sometexttoo', 'p3' => 10 ); + + $req = new \manager\ModuleRequest( 'module/phpunitOptionalParams', $params ); + $this->assertEquals( $req->error, \manager\ManagerError::Success ); + } + public function testConstructOptionalParamNotGiven(){ + $_SESSION['permission'] = array(); + + $params = array( 'p1' => 'sometext', 'p2' => 'sometexttoo' ); + + $req = new \manager\ModuleRequest( 'module/phpunitOptionalParams', $params ); + $this->assertEquals( $req->error, \manager\ManagerError::Success ); + } + public function testConstructOptionalParamButRequiredMissing(){ + $_SESSION['permission'] = array(); + + $params = array( 'p1' => 'sometext', 'p3' => 10 ); + + $req = new \manager\ModuleRequest( 'module/phpunitOptionalParams', $params ); + $this->assertEquals( $req->error, \manager\ManagerError::ParamError ); + } + } diff --git a/phpunit/tests/config.php b/phpunit/tests/config.php index 5d6f383..ab1f475 100644 --- a/phpunit/tests/config.php +++ b/phpunit/tests/config.php @@ -13,8 +13,9 @@ 'dispatcher-tree' => '../config/dispatcher-tree.json', 'menu' => '../config/menu.json', 'modules' => '../config/modules.json', - 'repositories' => '../config/repositories.json', - 'views' => '../config/views.json' + 'repositories' =>'../config/repositories.json', + 'upload-auth' =>'../config/upload-auth.json', + 'views' =>'../config/views.json' ); /* [1] config/database-local.json @@ -208,7 +209,26 @@ } } - /* [6] config/views.json + /* [6] config/upload-auth.json + =========================================================*/ + public function testUploadAuth(){ + /* (1) Lecture du fichier */ + $file_content = file_get_contents( self::$config['upload-auth'] ); + $this->assertNotFalse( $file_content ); + + /* (2) Parsage en JSON */ + $json_content = json_decode( $file_content, true ); + $this->assertNotNull( $json_content ); + + /* (3) Racine des uploads */ + $this->assertTrue( isset($json_content['root']) ); + + /* (4) Liste des répertoires autorisés */ + foreach($json_content['directories'] as $dir) + $this->assertTrue( preg_match('/^[a-z0-9_-]+$/', $dir) == true ); + } + + /* [7] config/views.json =========================================================*/ public function testViews(){ /* (1) Lecture du fichier */ diff --git a/src/static/container/phone_number.svg b/src/static/container/phone_number.svg new file mode 100644 index 0000000..fb073b8 --- /dev/null +++ b/src/static/container/phone_number.svg @@ -0,0 +1,49 @@ + +image/svg+xml diff --git a/src/upload/call_log/xdrm.xml b/src/upload/call_log/xdrm.xml new file mode 100755 index 0000000..8757312 --- /dev/null +++ b/src/upload/call_log/xdrm.xml @@ -0,0 +1,1001 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tags b/tags deleted file mode 100644 index bec0ac6..0000000 --- a/tags +++ /dev/null @@ -1,4352 +0,0 @@ -!_TAG_FILE_FORMAT 2 /extended format; --format=1 will not append ;" to lines/ -!_TAG_FILE_SORTED 1 /0=unsorted, 1=sorted, 2=foldcase/ -!_TAG_PROGRAM_AUTHOR Darren Hiebert /dhiebert@users.sourceforge.net/ -!_TAG_PROGRAM_NAME Exuberant Ctags // -!_TAG_PROGRAM_URL http://ctags.sourceforge.net /official site/ -!_TAG_PROGRAM_VERSION 5.9~svn20110310 // -$ js/lib/reset.js /^function $(idOrClass){$/;" f -$.$.$.$ phpunit/coverage/js/bootstrap.min.js /^if(typeof jQuery==="undefined"){throw new Error("Bootstrap's JavaScript requires jQuery")}+function($){"use strict";var version=$.fn.jquery.split(" ")[0].split(".");if(version[0]<2&&version[1]<9||version[0]==1&&version[1]==9&&version[2]<1){throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher")}}(jQuery);+function($){"use strict";function transitionEnd(){var el=document.createElement("bootstrap");var transEndEventNames={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var name in transEndEventNames){if(el.style[name]!==undefined){return{end:transEndEventNames[name]}}}return false}$.fn.emulateTransitionEnd=function(duration){var called=false;var $el=this;$(this).one("bsTransitionEnd",function(){called=true});var callback=function(){if(!called)$($el).trigger($.support.transition.end)};setTimeout(callback,duration);return this};$(function(){$.support.transition=transitionEnd();if(!$.support.transition)return;$.event.special.bsTransitionEnd={bindType:$.support.transition.end,delegateType:$.support.transition.end,handle:function(e){if($(e.target).is(this))return e.handleObj.handler.apply(this,arguments)}}})}(jQuery);+function($){"use strict";var dismiss='[data-dismiss="alert"]';var Alert=function(el){$(el).on("click",dismiss,this.close)};Alert.VERSION="3.3.5";Alert.TRANSITION_DURATION=150;Alert.prototype.close=function(e){var $this=$(this);var selector=$this.attr("data-target");if(!selector){selector=$this.attr("href");selector=selector&&selector.replace(\/.*(?=#[^\\s]*$)\/,"")}var $parent=$(selector);if(e)e.preventDefault();if(!$parent.length){$parent=$this.closest(".alert")}$parent.trigger(e=$.Event("close.bs.alert"));if(e.isDefaultPrevented())return;$parent.removeClass("in");function removeElement(){$parent.detach().trigger("closed.bs.alert").remove()}$.support.transition&&$parent.hasClass("fade")?$parent.one("bsTransitionEnd",removeElement).emulateTransitionEnd(Alert.TRANSITION_DURATION):removeElement()};function Plugin(option){return this.each(function(){var $this=$(this);var data=$this.data("bs.alert");if(!data)$this.data("bs.alert",data=new Alert(this));if(typeof option=="string")data[option].call($this)})}var old=$.fn.alert;$.fn.alert=Plugin;$.fn.alert.Constructor=Alert;$.fn.alert.noConflict=function(){$.fn.alert=old;return this};$(document).on("click.bs.alert.data-api",dismiss,Alert.prototype.close)}(jQuery);+function($){"use strict";var Button=function(element,options){this.$element=$(element);this.options=$.extend({},Button.DEFAULTS,options);this.isLoading=false};Button.VERSION="3.3.5";Button.DEFAULTS={loadingText:"loading..."};Button.prototype.setState=function(state){var d="disabled";var $el=this.$element;var val=$el.is("input")?"val":"html";var data=$el.data();state+="Text";if(data.resetText==null)$el.data("resetText",$el[val]());setTimeout($.proxy(function(){$el[val](data[state]==null?this.options[state]:data[state]);if(state=="loadingText"){this.isLoading=true;$el.addClass(d).attr(d,d)}else if(this.isLoading){this.isLoading=false;$el.removeClass(d).removeAttr(d)}},this),0)};Button.prototype.toggle=function(){var changed=true;var $parent=this.$element.closest('[data-toggle="buttons"]');if($parent.length){var $input=this.$element.find("input");if($input.prop("type")=="radio"){if($input.prop("checked"))changed=false;$parent.find(".active").removeClass("active");this.$element.addClass("active")}else if($input.prop("type")=="checkbox"){if($input.prop("checked")!==this.$element.hasClass("active"))changed=false;this.$element.toggleClass("active")}$input.prop("checked",this.$element.hasClass("active"));if(changed)$input.trigger("change")}else{this.$element.attr("aria-pressed",!this.$element.hasClass("active"));this.$element.toggleClass("active")}};function Plugin(option){return this.each(function(){var $this=$(this);var data=$this.data("bs.button");var options=typeof option=="object"&&option;if(!data)$this.data("bs.button",data=new Button(this,options));if(option=="toggle")data.toggle();else if(option)data.setState(option)})}var old=$.fn.button;$.fn.button=Plugin;$.fn.button.Constructor=Button;$.fn.button.noConflict=function(){$.fn.button=old;return this};$(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(e){var $btn=$(e.target);if(!$btn.hasClass("btn"))$btn=$btn.closest(".btn");Plugin.call($btn,"toggle");if(!($(e.target).is('input[type="radio"]')||$(e.target).is('input[type="checkbox"]')))e.preventDefault()}).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',function(e){$(e.target).closest(".btn").toggleClass("focus",\/^focus(in)?$\/.test(e.type))})}(jQuery);+function($){"use strict";var Carousel=function(element,options){this.$element=$(element);this.$indicators=this.$element.find(".carousel-indicators");this.options=options;this.paused=null;this.sliding=null;this.interval=null;this.$active=null;this.$items=null;this.options.keyboard&&this.$element.on("keydown.bs.carousel",$.proxy(this.keydown,this));this.options.pause=="hover"&&!("ontouchstart"in document.documentElement)&&this.$element.on("mouseenter.bs.carousel",$.proxy(this.pause,this)).on("mouseleave.bs.carousel",$.proxy(this.cycle,this))};Carousel.VERSION="3.3.5";Carousel.TRANSITION_DURATION=600;Carousel.DEFAULTS={interval:5e3,pause:"hover",wrap:true,keyboard:true};Carousel.prototype.keydown=function(e){if(\/input|textarea\/i.test(e.target.tagName))return;switch(e.which){case 37:this.prev();break;case 39:this.next();break;default:return}e.preventDefault()};Carousel.prototype.cycle=function(e){e||(this.paused=false);this.interval&&clearInterval(this.interval);this.options.interval&&!this.paused&&(this.interval=setInterval($.proxy(this.next,this),this.options.interval));return this};Carousel.prototype.getItemIndex=function(item){this.$items=item.parent().children(".item");return this.$items.index(item||this.$active)};Carousel.prototype.getItemForDirection=function(direction,active){var activeIndex=this.getItemIndex(active);var willWrap=direction=="prev"&&activeIndex===0||direction=="next"&&activeIndex==this.$items.length-1;if(willWrap&&!this.options.wrap)return active;var delta=direction=="prev"?-1:1;var itemIndex=(activeIndex+delta)%this.$items.length;return this.$items.eq(itemIndex)};Carousel.prototype.to=function(pos){var that=this;var activeIndex=this.getItemIndex(this.$active=this.$element.find(".item.active"));if(pos>this.$items.length-1||pos<0)return;if(this.sliding)return this.$element.one("slid.bs.carousel",function(){that.to(pos)});if(activeIndex==pos)return this.pause().cycle();return this.slide(pos>activeIndex?"next":"prev",this.$items.eq(pos))};Carousel.prototype.pause=function(e){e||(this.paused=true);if(this.$element.find(".next, .prev").length&&$.support.transition){this.$element.trigger($.support.transition.end);this.cycle(true)}this.interval=clearInterval(this.interval);return this};Carousel.prototype.next=function(){if(this.sliding)return;return this.slide("next")};Carousel.prototype.prev=function(){if(this.sliding)return;return this.slide("prev")};Carousel.prototype.slide=function(type,next){var $active=this.$element.find(".item.active");var $next=next||this.getItemForDirection(type,$active);var isCycling=this.interval;var direction=type=="next"?"left":"right";var that=this;if($next.hasClass("active"))return this.sliding=false;var relatedTarget=$next[0];var slideEvent=$.Event("slide.bs.carousel",{relatedTarget:relatedTarget,direction:direction});this.$element.trigger(slideEvent);if(slideEvent.isDefaultPrevented())return;this.sliding=true;isCycling&&this.pause();if(this.$indicators.length){this.$indicators.find(".active").removeClass("active");var $nextIndicator=$(this.$indicators.children()[this.getItemIndex($next)]);$nextIndicator&&$nextIndicator.addClass("active")}var slidEvent=$.Event("slid.bs.carousel",{relatedTarget:relatedTarget,direction:direction});if($.support.transition&&this.$element.hasClass("slide")){$next.addClass(type);$next[0].offsetWidth;$active.addClass(direction);$next.addClass(direction);$active.one("bsTransitionEnd",function(){$next.removeClass([type,direction].join(" ")).addClass("active");$active.removeClass(["active",direction].join(" "));that.sliding=false;setTimeout(function(){that.$element.trigger(slidEvent)},0)}).emulateTransitionEnd(Carousel.TRANSITION_DURATION)}else{$active.removeClass("active");$next.addClass("active");this.sliding=false;this.$element.trigger(slidEvent)}isCycling&&this.cycle();return this};function Plugin(option){return this.each(function(){var $this=$(this);var data=$this.data("bs.carousel");var options=$.extend({},Carousel.DEFAULTS,$this.data(),typeof option=="object"&&option);var action=typeof option=="string"?option:options.slide;if(!data)$this.data("bs.carousel",data=new Carousel(this,options));if(typeof option=="number")data.to(option);else if(action)data[action]();else if(options.interval)data.pause().cycle()})}var old=$.fn.carousel;$.fn.carousel=Plugin;$.fn.carousel.Constructor=Carousel;$.fn.carousel.noConflict=function(){$.fn.carousel=old;return this};var clickHandler=function(e){var href;var $this=$(this);var $target=$($this.attr("data-target")||(href=$this.attr("href"))&&href.replace(\/.*(?=#[^\\s]+$)\/,""));if(!$target.hasClass("carousel"))return;var options=$.extend({},$target.data(),$this.data());var slideIndex=$this.attr("data-slide-to");if(slideIndex)options.interval=false;Plugin.call($target,options);if(slideIndex){$target.data("bs.carousel").to(slideIndex)}e.preventDefault()};$(document).on("click.bs.carousel.data-api","[data-slide]",clickHandler).on("click.bs.carousel.data-api","[data-slide-to]",clickHandler);$(window).on("load",function(){$('[data-ride="carousel"]').each(function(){var $carousel=$(this);Plugin.call($carousel,$carousel.data())})})}(jQuery);+function($){"use strict";var Collapse=function(element,options){this.$element=$(element);this.options=$.extend({},Collapse.DEFAULTS,options);this.$trigger=$('[data-toggle="collapse"][href="#'+element.id+'"],'+'[data-toggle="collapse"][data-target="#'+element.id+'"]');this.transitioning=null;if(this.options.parent){this.$parent=this.getParent()}else{this.addAriaAndCollapsedClass(this.$element,this.$trigger)}if(this.options.toggle)this.toggle()};Collapse.VERSION="3.3.5";Collapse.TRANSITION_DURATION=350;Collapse.DEFAULTS={toggle:true};Collapse.prototype.dimension=function(){var hasWidth=this.$element.hasClass("width");return hasWidth?"width":"height"};Collapse.prototype.show=function(){if(this.transitioning||this.$element.hasClass("in"))return;var activesData;var actives=this.$parent&&this.$parent.children(".panel").children(".in, .collapsing");if(actives&&actives.length){activesData=actives.data("bs.collapse");if(activesData&&activesData.transitioning)return}var startEvent=$.Event("show.bs.collapse");this.$element.trigger(startEvent);if(startEvent.isDefaultPrevented())return;if(actives&&actives.length){Plugin.call(actives,"hide");activesData||actives.data("bs.collapse",null)}var dimension=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[dimension](0).attr("aria-expanded",true);this.$trigger.removeClass("collapsed").attr("aria-expanded",true);this.transitioning=1;var complete=function(){this.$element.removeClass("collapsing").addClass("collapse in")[dimension]("");this.transitioning=0;this.$element.trigger("shown.bs.collapse")};if(!$.support.transition)return complete.call(this);var scrollSize=$.camelCase(["scroll",dimension].join("-"));this.$element.one("bsTransitionEnd",$.proxy(complete,this)).emulateTransitionEnd(Collapse.TRANSITION_DURATION)[dimension](this.$element[0][scrollSize])};Collapse.prototype.hide=function(){if(this.transitioning||!this.$element.hasClass("in"))return;var startEvent=$.Event("hide.bs.collapse");this.$element.trigger(startEvent);if(startEvent.isDefaultPrevented())return;var dimension=this.dimension();this.$element[dimension](this.$element[dimension]())[0].offsetHeight;this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded",false);this.$trigger.addClass("collapsed").attr("aria-expanded",false);this.transitioning=1;var complete=function(){this.transitioning=0;this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};if(!$.support.transition)return complete.call(this);this.$element[dimension](0).one("bsTransitionEnd",$.proxy(complete,this)).emulateTransitionEnd(Collapse.TRANSITION_DURATION)};Collapse.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()};Collapse.prototype.getParent=function(){return $(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each($.proxy(function(i,element){var $element=$(element);this.addAriaAndCollapsedClass(getTargetFromTrigger($element),$element)},this)).end()};Collapse.prototype.addAriaAndCollapsedClass=function($element,$trigger){var isOpen=$element.hasClass("in");$element.attr("aria-expanded",isOpen);$trigger.toggleClass("collapsed",!isOpen).attr("aria-expanded",isOpen)};function getTargetFromTrigger($trigger){var href;var target=$trigger.attr("data-target")||(href=$trigger.attr("href"))&&href.replace(\/.*(?=#[^\\s]+$)\/,"");return $(target)}function Plugin(option){return this.each(function(){var $this=$(this);var data=$this.data("bs.collapse");var options=$.extend({},Collapse.DEFAULTS,$this.data(),typeof option=="object"&&option);if(!data&&options.toggle&&\/show|hide\/.test(option))options.toggle=false;if(!data)$this.data("bs.collapse",data=new Collapse(this,options));if(typeof option=="string")data[option]()})}var old=$.fn.collapse;$.fn.collapse=Plugin;$.fn.collapse.Constructor=Collapse;$.fn.collapse.noConflict=function(){$.fn.collapse=old;return this};$(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(e){var $this=$(this);if(!$this.attr("data-target"))e.preventDefault();var $target=getTargetFromTrigger($this);var data=$target.data("bs.collapse");var option=data?"toggle":$this.data();Plugin.call($target,option)})}(jQuery);+function($){"use strict";var backdrop=".dropdown-backdrop";var toggle='[data-toggle="dropdown"]';var Dropdown=function(element){$(element).on("click.bs.dropdown",this.toggle)};Dropdown.VERSION="3.3.5";function getParent($this){var selector=$this.attr("data-target");if(!selector){selector=$this.attr("href");selector=selector&&\/#[A-Za-z]\/.test(selector)&&selector.replace(\/.*(?=#[^\\s]*$)\/,"")}var $parent=selector&&$(selector);return $parent&&$parent.length?$parent:$this.parent()}function clearMenus(e){if(e&&e.which===3)return;$(backdrop).remove();$(toggle).each(function(){var $this=$(this);var $parent=getParent($this);var relatedTarget={relatedTarget:this};if(!$parent.hasClass("open"))return;if(e&&e.type=="click"&&\/input|textarea\/i.test(e.target.tagName)&&$.contains($parent[0],e.target))return;$parent.trigger(e=$.Event("hide.bs.dropdown",relatedTarget));if(e.isDefaultPrevented())return;$this.attr("aria-expanded","false");$parent.removeClass("open").trigger("hidden.bs.dropdown",relatedTarget)})}Dropdown.prototype.toggle=function(e){var $this=$(this);if($this.is(".disabled, :disabled"))return;var $parent=getParent($this);var isActive=$parent.hasClass("open");clearMenus();if(!isActive){if("ontouchstart"in document.documentElement&&!$parent.closest(".navbar-nav").length){$(document.createElement("div")).addClass("dropdown-backdrop").insertAfter($(this)).on("click",clearMenus)}var relatedTarget={relatedTarget:this};$parent.trigger(e=$.Event("show.bs.dropdown",relatedTarget));if(e.isDefaultPrevented())return;$this.trigger("focus").attr("aria-expanded","true");$parent.toggleClass("open").trigger("shown.bs.dropdown",relatedTarget)}return false};Dropdown.prototype.keydown=function(e){if(!\/(38|40|27|32)\/.test(e.which)||\/input|textarea\/i.test(e.target.tagName))return;var $this=$(this);e.preventDefault();e.stopPropagation();if($this.is(".disabled, :disabled"))return;var $parent=getParent($this);var isActive=$parent.hasClass("open");if(!isActive&&e.which!=27||isActive&&e.which==27){if(e.which==27)$parent.find(toggle).trigger("focus");return $this.trigger("click")}var desc=" li:not(.disabled):visible a";var $items=$parent.find(".dropdown-menu"+desc);if(!$items.length)return;var index=$items.index(e.target);if(e.which==38&&index>0)index--;if(e.which==40&&index<$items.length-1)index++;if(!~index)index=0;$items.eq(index).trigger("focus")};function Plugin(option){return this.each(function(){var $this=$(this);var data=$this.data("bs.dropdown");if(!data)$this.data("bs.dropdown",data=new Dropdown(this));if(typeof option=="string")data[option].call($this)})}var old=$.fn.dropdown;$.fn.dropdown=Plugin;$.fn.dropdown.Constructor=Dropdown;$.fn.dropdown.noConflict=function(){$.fn.dropdown=old;return this};$(document).on("click.bs.dropdown.data-api",clearMenus).on("click.bs.dropdown.data-api",".dropdown form",function(e){e.stopPropagation()}).on("click.bs.dropdown.data-api",toggle,Dropdown.prototype.toggle).on("keydown.bs.dropdown.data-api",toggle,Dropdown.prototype.keydown).on("keydown.bs.dropdown.data-api",".dropdown-menu",Dropdown.prototype.keydown)}(jQuery);+function($){"use strict";var Modal=function(element,options){this.options=options;this.$body=$(document.body);this.$element=$(element);this.$dialog=this.$element.find(".modal-dialog");this.$backdrop=null;this.isShown=null;this.originalBodyPad=null;this.scrollbarWidth=0;this.ignoreBackdropClick=false;if(this.options.remote){this.$element.find(".modal-content").load(this.options.remote,$.proxy(function(){this.$element.trigger("loaded.bs.modal")},this))}};Modal.VERSION="3.3.5";Modal.TRANSITION_DURATION=300;Modal.BACKDROP_TRANSITION_DURATION=150;Modal.DEFAULTS={backdrop:true,keyboard:true,show:true};Modal.prototype.toggle=function(_relatedTarget){return this.isShown?this.hide():this.show(_relatedTarget)};Modal.prototype.show=function(_relatedTarget){var that=this;var e=$.Event("show.bs.modal",{relatedTarget:_relatedTarget});this.$element.trigger(e);if(this.isShown||e.isDefaultPrevented())return;this.isShown=true;this.checkScrollbar();this.setScrollbar();this.$body.addClass("modal-open");this.escape();this.resize();this.$element.on("click.dismiss.bs.modal",'[data-dismiss="modal"]',$.proxy(this.hide,this));this.$dialog.on("mousedown.dismiss.bs.modal",function(){that.$element.one("mouseup.dismiss.bs.modal",function(e){if($(e.target).is(that.$element))that.ignoreBackdropClick=true})});this.backdrop(function(){var transition=$.support.transition&&that.$element.hasClass("fade");if(!that.$element.parent().length){that.$element.appendTo(that.$body)}that.$element.show().scrollTop(0);that.adjustDialog();if(transition){that.$element[0].offsetWidth}that.$element.addClass("in");that.enforceFocus();var e=$.Event("shown.bs.modal",{relatedTarget:_relatedTarget});transition?that.$dialog.one("bsTransitionEnd",function(){that.$element.trigger("focus").trigger(e)}).emulateTransitionEnd(Modal.TRANSITION_DURATION):that.$element.trigger("focus").trigger(e)})};Modal.prototype.hide=function(e){if(e)e.preventDefault();e=$.Event("hide.bs.modal");this.$element.trigger(e);if(!this.isShown||e.isDefaultPrevented())return;this.isShown=false;this.escape();this.resize();$(document).off("focusin.bs.modal");this.$element.removeClass("in").off("click.dismiss.bs.modal").off("mouseup.dismiss.bs.modal");this.$dialog.off("mousedown.dismiss.bs.modal");$.support.transition&&this.$element.hasClass("fade")?this.$element.one("bsTransitionEnd",$.proxy(this.hideModal,this)).emulateTransitionEnd(Modal.TRANSITION_DURATION):this.hideModal()};Modal.prototype.enforceFocus=function(){$(document).off("focusin.bs.modal").on("focusin.bs.modal",$.proxy(function(e){if(this.$element[0]!==e.target&&!this.$element.has(e.target).length){this.$element.trigger("focus")}},this))};Modal.prototype.escape=function(){if(this.isShown&&this.options.keyboard){this.$element.on("keydown.dismiss.bs.modal",$.proxy(function(e){e.which==27&&this.hide()},this))}else if(!this.isShown){this.$element.off("keydown.dismiss.bs.modal")}};Modal.prototype.resize=function(){if(this.isShown){$(window).on("resize.bs.modal",$.proxy(this.handleUpdate,this))}else{$(window).off("resize.bs.modal")}};Modal.prototype.hideModal=function(){var that=this;this.$element.hide();this.backdrop(function(){that.$body.removeClass("modal-open");that.resetAdjustments();that.resetScrollbar();that.$element.trigger("hidden.bs.modal")})};Modal.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.remove();this.$backdrop=null};Modal.prototype.backdrop=function(callback){var that=this;var animate=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var doAnimate=$.support.transition&&animate;this.$backdrop=$(document.createElement("div")).addClass("modal-backdrop "+animate).appendTo(this.$body);this.$element.on("click.dismiss.bs.modal",$.proxy(function(e){if(this.ignoreBackdropClick){this.ignoreBackdropClick=false;return}if(e.target!==e.currentTarget)return;this.options.backdrop=="static"?this.$element[0].focus():this.hide()},this));if(doAnimate)this.$backdrop[0].offsetWidth;this.$backdrop.addClass("in");if(!callback)return;doAnimate?this.$backdrop.one("bsTransitionEnd",callback).emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION):callback()}else if(!this.isShown&&this.$backdrop){this.$backdrop.removeClass("in");var callbackRemove=function(){that.removeBackdrop();callback&&callback()};$.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one("bsTransitionEnd",callbackRemove).emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION):callbackRemove()}else if(callback){callback()}};Modal.prototype.handleUpdate=function(){this.adjustDialog()};Modal.prototype.adjustDialog=function(){var modalIsOverflowing=this.$element[0].scrollHeight>document.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&modalIsOverflowing?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!modalIsOverflowing?this.scrollbarWidth:""})};Modal.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})};Modal.prototype.checkScrollbar=function(){var fullWindowWidth=window.innerWidth;if(!fullWindowWidth){var documentElementRect=document.documentElement.getBoundingClientRect();fullWindowWidth=documentElementRect.right-Math.abs(documentElementRect.left)}this.bodyIsOverflowing=document.body.clientWidth
<\/div>
<\/div><\/div>',trigger:"hover focus",title:"",delay:0,html:false,container:false,viewport:{selector:"body",padding:0}};Tooltip.prototype.init=function(type,element,options){this.enabled=true;this.type=type;this.$element=$(element);this.options=this.getOptions(options);this.$viewport=this.options.viewport&&$($.isFunction(this.options.viewport)?this.options.viewport.call(this,this.$element):this.options.viewport.selector||this.options.viewport);this.inState={click:false,hover:false,focus:false};if(this.$element[0]instanceof document.constructor&&!this.options.selector){throw new Error("`selector` option must be specified when initializing "+this.type+" on the window.document object!")}var triggers=this.options.trigger.split(" ");for(var i=triggers.length;i--;){var trigger=triggers[i];if(trigger=="click"){this.$element.on("click."+this.type,this.options.selector,$.proxy(this.toggle,this))}else if(trigger!="manual"){var eventIn=trigger=="hover"?"mouseenter":"focusin";var eventOut=trigger=="hover"?"mouseleave":"focusout";this.$element.on(eventIn+"."+this.type,this.options.selector,$.proxy(this.enter,this));this.$element.on(eventOut+"."+this.type,this.options.selector,$.proxy(this.leave,this))}}this.options.selector?this._options=$.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()};Tooltip.prototype.getDefaults=function(){return Tooltip.DEFAULTS};Tooltip.prototype.getOptions=function(options){options=$.extend({},this.getDefaults(),this.$element.data(),options);if(options.delay&&typeof options.delay=="number"){options.delay={show:options.delay,hide:options.delay}}return options};Tooltip.prototype.getDelegateOptions=function(){var options={};var defaults=this.getDefaults();this._options&&$.each(this._options,function(key,value){if(defaults[key]!=value)options[key]=value});return options};Tooltip.prototype.enter=function(obj){var self=obj instanceof this.constructor?obj:$(obj.currentTarget).data("bs."+this.type);if(!self){self=new this.constructor(obj.currentTarget,this.getDelegateOptions());$(obj.currentTarget).data("bs."+this.type,self)}if(obj instanceof $.Event){self.inState[obj.type=="focusin"?"focus":"hover"]=true}if(self.tip().hasClass("in")||self.hoverState=="in"){self.hoverState="in";return}clearTimeout(self.timeout);self.hoverState="in";if(!self.options.delay||!self.options.delay.show)return self.show();self.timeout=setTimeout(function(){if(self.hoverState=="in")self.show()},self.options.delay.show)};Tooltip.prototype.isInStateTrue=function(){for(var key in this.inState){if(this.inState[key])return true}return false};Tooltip.prototype.leave=function(obj){var self=obj instanceof this.constructor?obj:$(obj.currentTarget).data("bs."+this.type);if(!self){self=new this.constructor(obj.currentTarget,this.getDelegateOptions());$(obj.currentTarget).data("bs."+this.type,self)}if(obj instanceof $.Event){self.inState[obj.type=="focusout"?"focus":"hover"]=false}if(self.isInStateTrue())return;clearTimeout(self.timeout);self.hoverState="out";if(!self.options.delay||!self.options.delay.hide)return self.hide();self.timeout=setTimeout(function(){if(self.hoverState=="out")self.hide()},self.options.delay.hide)};Tooltip.prototype.show=function(){var e=$.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(e);var inDom=$.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(e.isDefaultPrevented()||!inDom)return;var that=this;var $tip=this.tip();var tipId=this.getUID(this.type);this.setContent();$tip.attr("id",tipId);this.$element.attr("aria-describedby",tipId);if(this.options.animation)$tip.addClass("fade");var placement=typeof this.options.placement=="function"?this.options.placement.call(this,$tip[0],this.$element[0]):this.options.placement;var autoToken=\/\\s?auto?\\s?\/i;var autoPlace=autoToken.test(placement);if(autoPlace)placement=placement.replace(autoToken,"")||"top";$tip.detach().css({top:0,left:0,display:"block"}).addClass(placement).data("bs."+this.type,this);this.options.container?$tip.appendTo(this.options.container):$tip.insertAfter(this.$element);this.$element.trigger("inserted.bs."+this.type);var pos=this.getPosition();var actualWidth=$tip[0].offsetWidth;var actualHeight=$tip[0].offsetHeight;if(autoPlace){var orgPlacement=placement;var viewportDim=this.getPosition(this.$viewport);placement=placement=="bottom"&&pos.bottom+actualHeight>viewportDim.bottom?"top":placement=="top"&&pos.top-actualHeightviewportDim.width?"left":placement=="left"&&pos.left-actualWidthviewportDimensions.top+viewportDimensions.height){delta.top=viewportDimensions.top+viewportDimensions.height-bottomEdgeOffset}}else{var leftEdgeOffset=pos.left-viewportPadding;var rightEdgeOffset=pos.left+viewportPadding+actualWidth;if(leftEdgeOffsetviewportDimensions.right){delta.left=viewportDimensions.left+viewportDimensions.width-rightEdgeOffset}}return delta};Tooltip.prototype.getTitle=function(){var title;var $e=this.$element;var o=this.options;title=$e.attr("data-original-title")||(typeof o.title=="function"?o.title.call($e[0]):o.title);return title};Tooltip.prototype.getUID=function(prefix){do prefix+=~~(Math.random()*1e6);while(document.getElementById(prefix));return prefix};Tooltip.prototype.tip=function(){if(!this.$tip){this.$tip=$(this.options.template);if(this.$tip.length!=1){throw new Error(this.type+" `template` option must consist of exactly 1 top-level element!")}}return this.$tip};Tooltip.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")};Tooltip.prototype.enable=function(){this.enabled=true};Tooltip.prototype.disable=function(){this.enabled=false};Tooltip.prototype.toggleEnabled=function(){this.enabled=!this.enabled};Tooltip.prototype.toggle=function(e){var self=this;if(e){self=$(e.currentTarget).data("bs."+this.type);if(!self){self=new this.constructor(e.currentTarget,this.getDelegateOptions());$(e.currentTarget).data("bs."+this.type,self)}}if(e){self.inState.click=!self.inState.click;if(self.isInStateTrue())self.enter(self);else self.leave(self)}else{self.tip().hasClass("in")?self.leave(self):self.enter(self)}};Tooltip.prototype.destroy=function(){var that=this;clearTimeout(this.timeout);this.hide(function(){that.$element.off("."+that.type).removeData("bs."+that.type);if(that.$tip){that.$tip.detach()}that.$tip=null;that.$arrow=null;that.$viewport=null})};function Plugin(option){return this.each(function(){var $this=$(this);var data=$this.data("bs.tooltip");var options=typeof option=="object"&&option;if(!data&&\/destroy|hide\/.test(option))return;if(!data)$this.data("bs.tooltip",data=new Tooltip(this,options));if(typeof option=="string")data[option]()})}var old=$.fn.tooltip;$.fn.tooltip=Plugin;$.fn.tooltip.Constructor=Tooltip;$.fn.tooltip.noConflict=function(){$.fn.tooltip=old;return this}}(jQuery);+function($){"use strict";var Popover=function(element,options){this.init("popover",element,options)};if(!$.fn.tooltip)throw new Error("Popover requires tooltip.js");Popover.VERSION="3.3.5";Popover.DEFAULTS=$.extend({},$.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:'
<?php<\/span><\/td><\/tr>$/;" a -1 phpunit/coverage/ManagerError.php.html /^
<?php<\/span><\/td><\/tr>$/;" a -1 phpunit/coverage/ModuleAnswer.php.html /^
<?php <\/span><\/td><\/tr>$/;" a -1 phpunit/coverage/ModuleRequest.php.html /^
<?php<\/span><\/td><\/tr>$/;" a -1 phpunit/coverage/ModuleResponse.php.html /^
<?php<\/span><\/td><\/tr>$/;" a -1 phpunit/coverage/Repo.php.html /^
<?php <\/span><\/td><\/tr>$/;" a -1 phpunit/coverage/ResourceDispatcher.php.html /^
<?php <\/span><\/td><\/tr>$/;" a -1 phpunit/coverage/autoloader.php.html /^
<?php<\/span><\/td><\/tr>$/;" a -1 phpunit/coverage/module/module.php.html /^
<?php<\/span><\/td><\/tr>$/;" a -1 phpunit/coverage/repo/token.php.html /^
<?php<\/span><\/td><\/tr>$/;" a -1 phpunit/coverage/sessionManager.php.html /^
<?php<\/span><\/td><\/tr>$/;" a -10 phpunit/coverage/Database.php.html /^
            <\/span>'local'<\/span>   <\/span>=><\/span> <\/span>'f\/json\/database-local\/conf'<\/span>,<\/span><\/td><\/tr>$/;" a -10 phpunit/coverage/ManagerError.php.html /^
            <\/span>const<\/span> <\/span>Success<\/span>             <\/span>=<\/span> <\/span>0<\/span>;<\/span><\/td><\/tr>$/;" a -10 phpunit/coverage/ModuleAnswer.php.html /^
    <\/span>\/\/ data2: {donnee2}<\/span><\/td><\/tr>$/;" a -10 phpunit/coverage/ModuleRequest.php.html /^
        <\/span>public<\/span> <\/span>static<\/span> <\/span>$config_path<\/span> <\/span>=<\/span> <\/span>'f\/json\/modules\/conf'<\/span>;<\/span><\/td><\/tr>$/;" a -10 phpunit/coverage/ModuleResponse.php.html /^
    <\/span>\/\/ data2: {donnee2}<\/span><\/td><\/tr>$/;" a -10 phpunit/coverage/Repo.php.html /^
    <\/span>\/\/ data2: {donnee2}<\/span><\/td><\/tr>$/;" a -10 phpunit/coverage/ResourceDispatcher.php.html /^
        <\/span>\/\/ Constantes<\/span><\/td><\/tr>$/;" a -10 phpunit/coverage/autoloader.php.html /^
<\/td><\/tr>$/;" a -10 phpunit/coverage/module/module.php.html /^
            <\/span>return<\/span> <\/span>array<\/span>(<\/span><\/td><\/tr>$/;" a -10 phpunit/coverage/repo/token.php.html /^
        *<\/span><\/td><\/tr>$/;" a -10 phpunit/coverage/sessionManager.php.html /^
<\/td><\/tr>$/;" a -100 phpunit/coverage/Database.php.html /^
    <\/span>\/*************************************************************\/<\/span><\/td><\/tr>$/;" a -100 phpunit/coverage/ManagerError.php.html /^
                <\/span>case<\/span> <\/span>self<\/span>::<\/span>PermissionError<\/span>:<\/span>     <\/span>return<\/span> <\/span>"Vous n'avez pas la permission d'effectuer cette action"<\/span>;<\/span>              <\/span>break<\/span>;<\/span><\/td><\/tr>$/;" a -100 phpunit/coverage/ModuleAnswer.php.html /^
        *\/<\/span><\/td><\/tr>$/;" a -100 phpunit/coverage/ModuleRequest.php.html /^
        *<\/span><\/td><\/tr>$/;" a -100 phpunit/coverage/ModuleResponse.php.html /^
        *\/<\/span><\/td><\/tr>$/;" a -100 phpunit/coverage/Repo.php.html /^
<\/td><\/tr>$/;" a -100 phpunit/coverage/ResourceDispatcher.php.html /^
            <\/span>$instance<\/span> <\/span>=<\/span> <\/span>new<\/span> <\/span>ResourceDispatcher<\/span>(<\/span>$route<\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -100 phpunit/coverage/repo/token.php.html /^
<\/td><\/tr>$/;" a -100 phpunit/coverage/sessionManager.php.html /^
            <\/span>$valid_token<\/span> <\/span>=<\/span> <\/span>$valid_token<\/span> <\/span>&&<\/span> <\/span>$_SESSION<\/span>[<\/span>'session_token'<\/span>]<\/span> <\/span>==<\/span> <\/span>$_COOKIE<\/span>[<\/span>'session_token'<\/span>]<\/span>;<\/span> <\/span>\/\/ verification que la session est coherente<\/span><\/td><\/tr>$/;" a -101 phpunit/coverage/Database.php.html /^
<\/td><\/tr>$/;" a -101 phpunit/coverage/ManagerError.php.html /^
<\/td><\/tr>$/;" a -101 phpunit/coverage/ModuleAnswer.php.html /^
        <\/span>public<\/span> <\/span>function<\/span> <\/span>get<\/span>(<\/span>$key<\/span>)<\/span>{<\/span><\/td><\/tr>$/;" a -101 phpunit/coverage/ModuleRequest.php.html /^
        * @return answer<ModuleResponse>                                 Retourne une reponse de type <ModuleResponse> si tout s'est bien passe<\/span><\/td><\/tr>$/;" a -101 phpunit/coverage/ModuleResponse.php.html /^
        <\/span>public<\/span> <\/span>function<\/span> <\/span>get<\/span>(<\/span>$key<\/span>)<\/span>{<\/span><\/td><\/tr>$/;" a -101 phpunit/coverage/Repo.php.html /^
<\/td><\/tr>$/;" a -101 phpunit/coverage/ResourceDispatcher.php.html /^
            <\/span>return<\/span> <\/span>$instance<\/span>-><\/span>getContent<\/span>(<\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -101 phpunit/coverage/repo/token.php.html /^
<\/td><\/tr>$/;" a -101 phpunit/coverage/sessionManager.php.html /^
<\/td><\/tr>$/;" a -102 phpunit/coverage/Database.php.html /^
        <\/span>\/* SUPPRIME LES VALEURS À CLÉS NUMÉRIQUES DANS UN FETCH D'UNE TABLE DE LA BDD<\/span><\/td><\/tr>$/;" a -102 phpunit/coverage/ManagerError.php.html /^
                <\/span>\/\/ default:                        return "Erreur inconnue...";                                                  break;<\/span><\/td><\/tr>$/;" a -102 phpunit/coverage/ModuleAnswer.php.html /^
            <\/span>\/\/ Si la valeur de cle @key n'existe pas, on retourne NULL<\/span><\/td><\/tr>$/;" a -102 phpunit/coverage/ModuleRequest.php.html /^
        *<\/span><\/td><\/tr>$/;" a -102 phpunit/coverage/ModuleResponse.php.html /^
            <\/span>\/\/ Si la valeur de cle @key n'existe pas, on retourne NULL<\/span><\/td><\/tr>$/;" a -102 phpunit/coverage/Repo.php.html /^
<\/td><\/tr>$/;" a -102 phpunit/coverage/ResourceDispatcher.php.html /^
        <\/span>}<\/span><\/td><\/tr>$/;" a -102 phpunit/coverage/repo/token.php.html /^
            <\/span>\/* [2] On retourne le resultat (les permissions du token)<\/span><\/td><\/tr>$/;" a -102 phpunit/coverage/sessionManager.php.html /^
            <\/span>\/* [4] Si token inexistant<\/span><\/td><\/tr>$/;" a -103 phpunit/coverage/Database.php.html /^
        *<\/span><\/td><\/tr>$/;" a -103 phpunit/coverage/ManagerError.php.html /^
            <\/span>}<\/span><\/td><\/tr>$/;" a -103 phpunit/coverage/ModuleAnswer.php.html /^
            <\/span>if<\/span>(<\/span> <\/span>!<\/span>isset<\/span>(<\/span>$this<\/span>-><\/span>data<\/span>[<\/span>$key<\/span>]<\/span>)<\/span> <\/span>)<\/span><\/td><\/tr>$/;" a -103 phpunit/coverage/ModuleRequest.php.html /^
        *\/<\/span><\/td><\/tr>$/;" a -103 phpunit/coverage/ModuleResponse.php.html /^
            <\/span>if<\/span>(<\/span> <\/span>!<\/span>isset<\/span>(<\/span>$this<\/span>-><\/span>data<\/span>[<\/span>$key<\/span>]<\/span>)<\/span> <\/span>)<\/span><\/td><\/tr>$/;" a -103 phpunit/coverage/Repo.php.html /^
        <\/span>public<\/span> <\/span>function<\/span> <\/span>answer<\/span>(<\/span>)<\/span>{<\/span><\/td><\/tr>$/;" a -103 phpunit/coverage/ResourceDispatcher.php.html /^
<\/td><\/tr>$/;" a -103 phpunit/coverage/repo/token.php.html /^
            =========================================================*\/<\/span><\/td><\/tr>$/;" a -103 phpunit/coverage/sessionManager.php.html /^
            ==============================================================*\/<\/span><\/td><\/tr>$/;" a -104 phpunit/coverage/Database.php.html /^
        * @fetchData<Array>                    le résultat d'une $requeteSQL->fetchAll()<\/span><\/td><\/tr>$/;" a -104 phpunit/coverage/ManagerError.php.html /^
<\/td><\/tr>$/;" a -104 phpunit/coverage/ModuleAnswer.php.html /^
                <\/span>return<\/span> <\/span>null<\/span>;<\/span><\/td><\/tr>$/;" a -104 phpunit/coverage/ModuleRequest.php.html /^
        <\/span>public<\/span> <\/span>function<\/span> <\/span>dispatch<\/span>(<\/span>)<\/span>{<\/span><\/td><\/tr>$/;" a -104 phpunit/coverage/ModuleResponse.php.html /^
                <\/span>return<\/span> <\/span>null<\/span>;<\/span><\/td><\/tr>$/;" a -104 phpunit/coverage/Repo.php.html /^
            <\/span>return<\/span> <\/span>$this<\/span>-><\/span>answer<\/span>;<\/span><\/td><\/tr>$/;" a -104 phpunit/coverage/ResourceDispatcher.php.html /^
<\/td><\/tr>$/;" a -104 phpunit/coverage/repo/token.php.html /^
            <\/span>return<\/span> <\/span>explode<\/span>(<\/span> <\/span>','<\/span>,<\/span> <\/span>str_replace<\/span>(<\/span>' '<\/span>,<\/span> <\/span>''<\/span>,<\/span> <\/span>$token_info<\/span>[<\/span>'permission'<\/span>]<\/span>)<\/span> <\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -104 phpunit/coverage/sessionManager.php.html /^
            <\/span>if<\/span>(<\/span> <\/span>!<\/span>$valid_token<\/span> <\/span>)<\/span><\/td><\/tr>$/;" a -105 phpunit/coverage/Database.php.html /^
        * @oneDimension<Boolean>            FAUX <=> fetchAll ; VRAI <=> fetch<\/span><\/td><\/tr>$/;" a -105 phpunit/coverage/ManagerError.php.html /^
            <\/span>\/\/ Erreur inconnue<\/span><\/td><\/tr>$/;" a -105 phpunit/coverage/ModuleAnswer.php.html /^
<\/td><\/tr>$/;" a -105 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>\/* [1] On verifie qu'aucune erreur n'a ete signalee<\/span><\/td><\/tr>$/;" a -105 phpunit/coverage/ModuleResponse.php.html /^
<\/td><\/tr>$/;" a -105 phpunit/coverage/Repo.php.html /^
        <\/span>}<\/span><\/td><\/tr>$/;" a -105 phpunit/coverage/ResourceDispatcher.php.html /^
<\/td><\/tr>$/;" a -105 phpunit/coverage/repo/token.php.html /^
        <\/span>}<\/span><\/td><\/tr>$/;" a -105 phpunit/coverage/sessionManager.php.html /^
                <\/span>self<\/span>::<\/span>reset_session<\/span>(<\/span>$sessid<\/span>)<\/span>;<\/span> <\/span>\/\/ On initialise la session<\/span><\/td><\/tr>$/;" a -106 phpunit/coverage/Database.php.html /^
        *<\/span><\/td><\/tr>$/;" a -106 phpunit/coverage/ManagerError.php.html /^
            <\/span>return<\/span> <\/span>null<\/span>;<\/span><\/td><\/tr>$/;" a -106 phpunit/coverage/ModuleAnswer.php.html /^
            <\/span>\/\/ Sinon, on retourne la valeur associee<\/span><\/td><\/tr>$/;" a -106 phpunit/coverage/ModuleRequest.php.html /^
            =========================================================*\/<\/span><\/td><\/tr>$/;" a -106 phpunit/coverage/ModuleResponse.php.html /^
            <\/span>\/\/ Sinon, on retourne la valeur associee<\/span><\/td><\/tr>$/;" a -106 phpunit/coverage/Repo.php.html /^
<\/td><\/tr>$/;" a -106 phpunit/coverage/ResourceDispatcher.php.html /^
        <\/span>\/* FONCTION QUI VERIFIE LES DRAPEAUX<\/span><\/td><\/tr>$/;" a -106 phpunit/coverage/repo/token.php.html /^
<\/td><\/tr>$/;" a -106 phpunit/coverage/sessionManager.php.html /^
            <\/span>else<\/span><\/td><\/tr>$/;" a -107 phpunit/coverage/Database.php.html /^
        * @return newFetchData<Array>        retourne le tableau donné en paramètre mais sans les valeurs à clés numériques    <\/span><\/td><\/tr>$/;" a -107 phpunit/coverage/ManagerError.php.html /^
        <\/span>}<\/span><\/td><\/tr>$/;" a -107 phpunit/coverage/ModuleAnswer.php.html /^
            <\/span>return<\/span> <\/span>$this<\/span>-><\/span>data<\/span>[<\/span>$key<\/span>]<\/span>;<\/span><\/td><\/tr>$/;" a -107 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>if<\/span>(<\/span> <\/span>$this<\/span>-><\/span>error<\/span> <\/span>!=<\/span> <\/span>ManagerError<\/span>::<\/span>Success<\/span> <\/span>)<\/span> <\/span>\/\/ si il y a une erreur<\/span><\/td><\/tr>$/;" a -107 phpunit/coverage/ModuleResponse.php.html /^
            <\/span>return<\/span> <\/span>$this<\/span>-><\/span>data<\/span>[<\/span>$key<\/span>]<\/span>;<\/span><\/td><\/tr>$/;" a -107 phpunit/coverage/Repo.php.html /^
<\/td><\/tr>$/;" a -107 phpunit/coverage/ResourceDispatcher.php.html /^
        *<\/span><\/td><\/tr>$/;" a -107 phpunit/coverage/repo/token.php.html /^
<\/td><\/tr>$/;" a -107 phpunit/coverage/sessionManager.php.html /^
                <\/span>self<\/span>::<\/span>update_token<\/span>(<\/span>)<\/span>;<\/span>         <\/span>\/\/ Dans tous les cas, on cree un nouveau token<\/span><\/td><\/tr>$/;" a -108 phpunit/coverage/Database.php.html /^
        *<\/span><\/td><\/tr>$/;" a -108 phpunit/coverage/ManagerError.php.html /^
<\/td><\/tr>$/;" a -108 phpunit/coverage/ModuleAnswer.php.html /^
        <\/span>}<\/span><\/td><\/tr>$/;" a -108 phpunit/coverage/ModuleRequest.php.html /^
                <\/span>return<\/span> <\/span>new<\/span> <\/span>ModuleResponse<\/span>(<\/span>$this<\/span>-><\/span>error<\/span>)<\/span>;<\/span>  <\/span>\/\/ on la passe a la reponse<\/span><\/td><\/tr>$/;" a -108 phpunit/coverage/ModuleResponse.php.html /^
        <\/span>}<\/span><\/td><\/tr>$/;" a -108 phpunit/coverage/Repo.php.html /^
<\/td><\/tr>$/;" a -108 phpunit/coverage/ResourceDispatcher.php.html /^
        * @serialFlags<Array>                    Tableau a indice numerique<\/span><\/td><\/tr>$/;" a -108 phpunit/coverage/repo/token.php.html /^
<\/td><\/tr>$/;" a -108 phpunit/coverage/sessionManager.php.html /^
<\/td><\/tr>$/;" a -109 phpunit/coverage/Database.php.html /^
        *\/<\/span><\/td><\/tr>$/;" a -109 phpunit/coverage/ManagerError.php.html /^
    <\/span>}<\/span><\/td><\/tr>$/;" a -109 phpunit/coverage/ModuleAnswer.php.html /^
<\/td><\/tr>$/;" a -109 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -109 phpunit/coverage/ModuleResponse.php.html /^
<\/td><\/tr>$/;" a -109 phpunit/coverage/Repo.php.html /^
        <\/span>\/* EXECUTE LE TRAITEMENT ASSOCIE ET REMPLIE LA REPONSE<\/span><\/td><\/tr>$/;" a -109 phpunit/coverage/ResourceDispatcher.php.html /^
        *<\/span><\/td><\/tr>$/;" a -109 phpunit/coverage/repo/token.php.html /^
<\/td><\/tr>$/;" a -109 phpunit/coverage/sessionManager.php.html /^
<\/td><\/tr>$/;" a -11 phpunit/coverage/Database.php.html /^
            <\/span>'remote'<\/span>  <\/span>=><\/span> <\/span>'f\/json\/database\/conf'<\/span><\/td><\/tr>$/;" a -11 phpunit/coverage/ManagerError.php.html /^
<\/td><\/tr>$/;" a -11 phpunit/coverage/ModuleAnswer.php.html /^
    <\/span>\/\/ ...<\/span><\/td><\/tr>$/;" a -11 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -11 phpunit/coverage/ModuleResponse.php.html /^
    <\/span>\/\/ ...<\/span><\/td><\/tr>$/;" a -11 phpunit/coverage/Repo.php.html /^
    <\/span>\/\/ ...<\/span><\/td><\/tr>$/;" a -11 phpunit/coverage/ResourceDispatcher.php.html /^
        <\/span>public<\/span> <\/span>static<\/span> <\/span>$extension_config_path<\/span>       <\/span>=<\/span> <\/span>'\/config\/dispatcher-extensions.json'<\/span>;<\/span><\/td><\/tr>$/;" a -11 phpunit/coverage/autoloader.php.html /^
<\/td><\/tr>$/;" a -11 phpunit/coverage/module/module.php.html /^
                <\/span>'ModuleError'<\/span>       <\/span>=><\/span> <\/span>ManagerError<\/span>::<\/span>Success<\/span>,<\/span><\/td><\/tr>$/;" a -11 phpunit/coverage/repo/token.php.html /^
        * 1. Gestion des access<\/span><\/td><\/tr>$/;" a -11 phpunit/coverage/sessionManager.php.html /^
        <\/span>\/*************************\/<\/span><\/td><\/tr>$/;" a -110 phpunit/coverage/Database.php.html /^
        <\/span>public<\/span> <\/span>static<\/span> <\/span>function<\/span> <\/span>delNumeric<\/span>(<\/span>$fetchData<\/span>,<\/span> <\/span>$oneDimension<\/span>=<\/span>false<\/span>)<\/span>{<\/span><\/td><\/tr>$/;" a -110 phpunit/coverage/ManagerError.php.html /^
<\/td><\/tr>$/;" a -110 phpunit/coverage/ModuleAnswer.php.html /^
<\/td><\/tr>$/;" a -110 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -110 phpunit/coverage/ModuleResponse.php.html /^
<\/td><\/tr>$/;" a -110 phpunit/coverage/Repo.php.html /^
        *<\/span><\/td><\/tr>$/;" a -110 phpunit/coverage/ResourceDispatcher.php.html /^
        * @return correct<Boolean>                Retourne si oui ou non les drapeaux sont corrects<\/span><\/td><\/tr>$/;" a -110 phpunit/coverage/repo/token.php.html /^
        <\/span>\/* GENERE UN NOUVEAU TOKEN DE NOM ET EXPIRATION SPECIFIEE<\/span><\/td><\/tr>$/;" a -110 phpunit/coverage/sessionManager.php.html /^
        <\/span>}<\/span><\/td><\/tr>$/;" a -111 phpunit/coverage/Database.php.html /^
            <\/span>\/\/ On quitte si ce n'est pas un tableau<\/span><\/td><\/tr>$/;" a -111 phpunit/coverage/ManagerError.php.html /^
?><\/span><\/td><\/tr>$/;" a -111 phpunit/coverage/ModuleAnswer.php.html /^
<\/td><\/tr>$/;" a -111 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>\/* [2] On verifie que la methode est amorcable<\/span><\/td><\/tr>$/;" a -111 phpunit/coverage/ModuleResponse.php.html /^
<\/td><\/tr>$/;" a -111 phpunit/coverage/Repo.php.html /^
        * @return answer<mixed*>                                 Retourne une reponse, si tout s'est bien passe<\/span><\/td><\/tr>$/;" a -111 phpunit/coverage/ResourceDispatcher.php.html /^
        *<\/span><\/td><\/tr>$/;" a -111 phpunit/coverage/repo/token.php.html /^
        *<\/span><\/td><\/tr>$/;" a -111 phpunit/coverage/sessionManager.php.html /^
<\/td><\/tr>$/;" a -112 phpunit/coverage/Database.php.html /^
            <\/span>if<\/span>(<\/span> <\/span>!<\/span>is_array<\/span>(<\/span>$fetchData<\/span>)<\/span> <\/span>)<\/span><\/td><\/tr>$/;" a -112 phpunit/coverage/ModuleAnswer.php.html /^
<\/td><\/tr>$/;" a -112 phpunit/coverage/ModuleRequest.php.html /^
            =========================================================*\/<\/span><\/td><\/tr>$/;" a -112 phpunit/coverage/ModuleResponse.php.html /^
<\/td><\/tr>$/;" a -112 phpunit/coverage/Repo.php.html /^
        *<\/span><\/td><\/tr>$/;" a -112 phpunit/coverage/ResourceDispatcher.php.html /^
        *\/<\/span><\/td><\/tr>$/;" a -112 phpunit/coverage/repo/token.php.html /^
        * @name<String>                                 Nom attribue au token<\/span><\/td><\/tr>$/;" a -112 phpunit/coverage/sessionManager.php.html /^
<\/td><\/tr>$/;" a -113 phpunit/coverage/Database.php.html /^
                <\/span>return<\/span> <\/span>array<\/span>(<\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -113 phpunit/coverage/ModuleAnswer.php.html /^
<\/td><\/tr>$/;" a -113 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>if<\/span>(<\/span> <\/span>!<\/span>is_callable<\/span>(<\/span>$this<\/span>-><\/span>getFunctionCaller<\/span>(<\/span>)<\/span>)<\/span> <\/span>)<\/span>{<\/span><\/td><\/tr>$/;" a -113 phpunit/coverage/ModuleResponse.php.html /^
<\/td><\/tr>$/;" a -113 phpunit/coverage/Repo.php.html /^
        *\/<\/span><\/td><\/tr>$/;" a -113 phpunit/coverage/ResourceDispatcher.php.html /^
        <\/span>private<\/span> <\/span>function<\/span> <\/span>createFlags<\/span>(<\/span>$serialFlags<\/span>)<\/span>{<\/span><\/td><\/tr>$/;" a -113 phpunit/coverage/repo/token.php.html /^
        * @duration<int>                                 Duree du token en jours<\/span><\/td><\/tr>$/;" a -113 phpunit/coverage/sessionManager.php.html /^
    <\/span>}<\/span><\/td><\/tr>$/;" a -114 phpunit/coverage/Database.php.html /^
<\/td><\/tr>$/;" a -114 phpunit/coverage/ModuleAnswer.php.html /^
<\/td><\/tr>$/;" a -114 phpunit/coverage/ModuleRequest.php.html /^
                <\/span>$this<\/span>-><\/span>error<\/span> <\/span>=<\/span> <\/span>ManagerError<\/span>::<\/span>UncallableMethod<\/span>;<\/span><\/td><\/tr>$/;" a -114 phpunit/coverage/ModuleResponse.php.html /^
<\/td><\/tr>$/;" a -114 phpunit/coverage/Repo.php.html /^
        <\/span>public<\/span> <\/span>function<\/span> <\/span>dispatch<\/span>(<\/span>)<\/span>{<\/span><\/td><\/tr>$/;" a -114 phpunit/coverage/ResourceDispatcher.php.html /^
            <\/span>\/* [1] Verification des flags (version serialisee)<\/span><\/td><\/tr>$/;" a -114 phpunit/coverage/repo/token.php.html /^
        *<\/span><\/td><\/tr>$/;" a -114 phpunit/coverage/sessionManager.php.html /^
<\/td><\/tr>$/;" a -115 phpunit/coverage/Database.php.html /^
            <\/span>$nextEquivalent<\/span> <\/span>=<\/span> <\/span>false<\/span>;<\/span> <\/span>\/\/ Vaut VRAI si le prochain est peut-etre un equivalent numerique<\/span><\/td><\/tr>$/;" a -115 phpunit/coverage/ModuleAnswer.php.html /^
<\/td><\/tr>$/;" a -115 phpunit/coverage/ModuleRequest.php.html /^
                <\/span>return<\/span> <\/span>new<\/span> <\/span>ModuleResponse<\/span>(<\/span>$this<\/span>-><\/span>error<\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -115 phpunit/coverage/ModuleResponse.php.html /^
<\/td><\/tr>$/;" a -115 phpunit/coverage/Repo.php.html /^
            <\/span>\/* [1] On verifie qu'aucune erreur n'a ete signalee<\/span><\/td><\/tr>$/;" a -115 phpunit/coverage/ResourceDispatcher.php.html /^
            ======================================================*\/<\/span><\/td><\/tr>$/;" a -115 phpunit/coverage/repo/token.php.html /^
        * @return id_token<int>                         Renvoie l'id du token cree<\/span><\/td><\/tr>$/;" a -115 phpunit/coverage/sessionManager.php.html /^
<\/td><\/tr>$/;" a -116 phpunit/coverage/Database.php.html /^
<\/td><\/tr>$/;" a -116 phpunit/coverage/ModuleAnswer.php.html /^
<\/td><\/tr>$/;" a -116 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>}<\/span><\/td><\/tr>$/;" a -116 phpunit/coverage/ModuleResponse.php.html /^
<\/td><\/tr>$/;" a -116 phpunit/coverage/Repo.php.html /^
            =========================================================*\/<\/span><\/td><\/tr>$/;" a -116 phpunit/coverage/ResourceDispatcher.php.html /^
<\/td><\/tr>$/;" a -116 phpunit/coverage/repo/token.php.html /^
        * @return FALSE                                 Renvoie FALSE si erreur<\/span><\/td><\/tr>$/;" a -116 phpunit/coverage/sessionManager.php.html /^
?><\/span><\/td><\/tr>$/;" a -117 phpunit/coverage/Database.php.html /^
            <\/span>\/* [1] 2 dimensions<\/span><\/td><\/tr>$/;" a -117 phpunit/coverage/ModuleAnswer.php.html /^
        <\/span>\/* RECUPERE TOUTES LES DONNEES DE LA REPONSE<\/span><\/td><\/tr>$/;" a -117 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -117 phpunit/coverage/ModuleResponse.php.html /^
        <\/span>\/* RECUPERE TOUTES LES DONNEES DE LA REPONSE<\/span><\/td><\/tr>$/;" a -117 phpunit/coverage/Repo.php.html /^
            <\/span>if<\/span>(<\/span> <\/span>$this<\/span>-><\/span>error<\/span> <\/span>!=<\/span> <\/span>ManagerError<\/span>::<\/span>Success<\/span> <\/span>)<\/span> <\/span>\/\/ si il y a une erreur<\/span><\/td><\/tr>$/;" a -117 phpunit/coverage/ResourceDispatcher.php.html /^
            <\/span>$correct<\/span> <\/span>=<\/span> <\/span>true<\/span>;<\/span><\/td><\/tr>$/;" a -117 phpunit/coverage/repo/token.php.html /^
        *<\/span><\/td><\/tr>$/;" a -118 phpunit/coverage/Database.php.html /^
            ===============================================*\/<\/span><\/td><\/tr>$/;" a -118 phpunit/coverage/ModuleAnswer.php.html /^
        *<\/span><\/td><\/tr>$/;" a -118 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -118 phpunit/coverage/ModuleResponse.php.html /^
        *<\/span><\/td><\/tr>$/;" a -118 phpunit/coverage/Repo.php.html /^
                <\/span>return<\/span> <\/span>false<\/span>;<\/span>  <\/span>\/\/ on la passe a la reponse<\/span><\/td><\/tr>$/;" a -118 phpunit/coverage/ResourceDispatcher.php.html /^
<\/td><\/tr>$/;" a -118 phpunit/coverage/repo/token.php.html /^
        *\/<\/span><\/td><\/tr>$/;" a -119 phpunit/coverage/Database.php.html /^
            <\/span>if<\/span>(<\/span> <\/span>!<\/span>$oneDimension<\/span> <\/span>&&<\/span> <\/span>isset<\/span>(<\/span>$fetchData<\/span>[<\/span>0<\/span>]<\/span>)<\/span> <\/span>&&<\/span> <\/span>is_array<\/span>(<\/span>$fetchData<\/span>[<\/span>0<\/span>]<\/span>)<\/span> <\/span>)<\/span>{<\/span><\/td><\/tr>$/;" a -119 phpunit/coverage/ModuleAnswer.php.html /^
        * @return data<Array>                             Les donnees de la reponse<\/span><\/td><\/tr>$/;" a -119 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>\/* [3] On amorce la methode<\/span><\/td><\/tr>$/;" a -119 phpunit/coverage/ModuleResponse.php.html /^
        * @return data<Array>                             Les donnees de la reponse<\/span><\/td><\/tr>$/;" a -119 phpunit/coverage/Repo.php.html /^
<\/td><\/tr>$/;" a -119 phpunit/coverage/ResourceDispatcher.php.html /^
            <\/span>\/\/ Verification du nombre de drapeaux () au moins 3<\/span><\/td><\/tr>$/;" a -119 phpunit/coverage/repo/token.php.html /^
        <\/span>public<\/span> <\/span>static<\/span> <\/span>function<\/span> <\/span>generate<\/span>(<\/span>$name<\/span>,<\/span> <\/span>$duration<\/span>)<\/span>{<\/span><\/td><\/tr>$/;" a -12 phpunit/coverage/Database.php.html /^
        <\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -12 phpunit/coverage/ManagerError.php.html /^
        <\/span>\/* Parsage json *\/<\/span><\/td><\/tr>$/;" a -12 phpunit/coverage/ModuleAnswer.php.html /^
    <\/span>\/\/ <\/span><\/td><\/tr>$/;" a -12 phpunit/coverage/ModuleRequest.php.html /^
        <\/span>\/\/ Attributs prives utiles (initialisation)<\/span><\/td><\/tr>$/;" a -12 phpunit/coverage/ModuleResponse.php.html /^
    <\/span>\/\/<\/span><\/td><\/tr>$/;" a -12 phpunit/coverage/Repo.php.html /^
    <\/span>\/\/ <\/span><\/td><\/tr>$/;" a -12 phpunit/coverage/ResourceDispatcher.php.html /^
        <\/span>public<\/span> <\/span>static<\/span> <\/span>$parents_config_path<\/span>         <\/span>=<\/span> <\/span>'\/config\/dispatcher-tree.json'<\/span>;<\/span><\/td><\/tr>$/;" a -12 phpunit/coverage/autoloader.php.html /^
    <\/span>\/* ACTIVE LE DEBUGGAGE (WARNING + EXCEPTION)<\/span><\/td><\/tr>$/;" a -12 phpunit/coverage/module/module.php.html /^
                <\/span>'ReceivedArguments'<\/span> <\/span>=><\/span> <\/span>func_get_args<\/span>(<\/span>)<\/span><\/td><\/tr>$/;" a -12 phpunit/coverage/repo/token.php.html /^
        *     - getAll()<\/span><\/td><\/tr>$/;" a -12 phpunit/coverage/sessionManager.php.html /^
        <\/span>\/* SECURE SHA1 ALGORITHM *\/<\/span><\/td><\/tr>$/;" a -120 phpunit/coverage/Database.php.html /^
<\/td><\/tr>$/;" a -120 phpunit/coverage/ModuleAnswer.php.html /^
        *<\/span><\/td><\/tr>$/;" a -120 phpunit/coverage/ModuleRequest.php.html /^
            =========================================================*\/<\/span><\/td><\/tr>$/;" a -120 phpunit/coverage/ModuleResponse.php.html /^
        *<\/span><\/td><\/tr>$/;" a -120 phpunit/coverage/Repo.php.html /^
<\/td><\/tr>$/;" a -120 phpunit/coverage/ResourceDispatcher.php.html /^
            <\/span>$correct<\/span> <\/span>=<\/span> <\/span>$correct<\/span> <\/span>&&<\/span> <\/span>count<\/span>(<\/span>$serialFlags<\/span>)<\/span> <\/span>>=<\/span> <\/span>3<\/span>;<\/span><\/td><\/tr>$/;" a -120 phpunit/coverage/repo/token.php.html /^
            <\/span>\/* [0] Verification des INPUT<\/span><\/td><\/tr>$/;" a -121 phpunit/coverage/Database.php.html /^
                <\/span>\/\/ on supprime les doublons des entrées (indice numérique)<\/span><\/td><\/tr>$/;" a -121 phpunit/coverage/ModuleAnswer.php.html /^
        *\/<\/span><\/td><\/tr>$/;" a -121 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>$returned<\/span> <\/span>=<\/span> <\/span>call_user_func<\/span>(<\/span> <\/span>$this<\/span>-><\/span>getFunctionCaller<\/span>(<\/span>)<\/span>,<\/span> <\/span>$this<\/span>-><\/span>params<\/span> <\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -121 phpunit/coverage/ModuleResponse.php.html /^
        *\/<\/span><\/td><\/tr>$/;" a -121 phpunit/coverage/Repo.php.html /^
            <\/span>\/* [2] On verifie que la methode est amorcable<\/span><\/td><\/tr>$/;" a -121 phpunit/coverage/ResourceDispatcher.php.html /^
<\/td><\/tr>$/;" a -121 phpunit/coverage/repo/token.php.html /^
            =========================================================*\/<\/span><\/td><\/tr>$/;" a -122 phpunit/coverage/Database.php.html /^
                <\/span>for<\/span>(<\/span> <\/span>$i<\/span> <\/span>=<\/span> <\/span>0<\/span> <\/span>;<\/span> <\/span>$i<\/span> <\/span><<\/span> <\/span>count<\/span>(<\/span>$fetchData<\/span>)<\/span> <\/span>;<\/span> <\/span>$i<\/span>++<\/span> <\/span>)<\/span> <\/span>\/\/ pour tout les utilisateurs<\/span><\/td><\/tr>$/;" a -122 phpunit/coverage/ModuleAnswer.php.html /^
        <\/span>public<\/span> <\/span>function<\/span> <\/span>getAll<\/span>(<\/span>)<\/span>{<\/span><\/td><\/tr>$/;" a -122 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -122 phpunit/coverage/ModuleResponse.php.html /^
        <\/span>public<\/span> <\/span>function<\/span> <\/span>getAll<\/span>(<\/span>)<\/span>{<\/span><\/td><\/tr>$/;" a -122 phpunit/coverage/Repo.php.html /^
            =========================================================*\/<\/span><\/td><\/tr>$/;" a -122 phpunit/coverage/ResourceDispatcher.php.html /^
            <\/span>\/\/ Verification que l'extension est correcte<\/span><\/td><\/tr>$/;" a -122 phpunit/coverage/repo/token.php.html /^
            <\/span>if<\/span>(<\/span> <\/span>!<\/span>Database<\/span>::<\/span>check<\/span>(<\/span>'varchar(3, 50)'<\/span>,<\/span> <\/span>$name<\/span>)<\/span> <\/span>||<\/span> <\/span>!<\/span>Database<\/span>::<\/span>check<\/span>(<\/span>'id'<\/span>,<\/span> <\/span>$duration<\/span>)<\/span> <\/span>)<\/span> <\/span>return<\/span> <\/span>false<\/span>;<\/span><\/td><\/tr>$/;" a -123 phpunit/coverage/Database.php.html /^
                    <\/span>foreach<\/span>(<\/span>$fetchData<\/span>[<\/span>$i<\/span>]<\/span> <\/span>as<\/span> <\/span>$col<\/span> <\/span>=><\/span> <\/span>$val<\/span>)<\/span>{<\/span>  <\/span>\/\/ pour toutes les entrées<\/span><\/td><\/tr>$/;" a -123 phpunit/coverage/ModuleAnswer.php.html /^
            <\/span>\/\/ Sinon, on retourne la valeur associee<\/span><\/td><\/tr>$/;" a -123 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -123 phpunit/coverage/ModuleResponse.php.html /^
            <\/span>\/\/ Sinon, on retourne la valeur associee<\/span><\/td><\/tr>$/;" a -123 phpunit/coverage/Repo.php.html /^
            <\/span>if<\/span>(<\/span> <\/span>!<\/span>is_callable<\/span>(<\/span>$this<\/span>-><\/span>getFunctionCaller<\/span>(<\/span>)<\/span>)<\/span> <\/span>)<\/span>{<\/span><\/td><\/tr>$/;" a -123 phpunit/coverage/ResourceDispatcher.php.html /^
            <\/span>$correct<\/span> <\/span>=<\/span> <\/span>$correct<\/span> <\/span>&&<\/span> <\/span>array_key_exists<\/span>(<\/span>$serialFlags<\/span>[<\/span>0<\/span>]<\/span>,<\/span> <\/span>self<\/span>::<\/span>$supported_extensions<\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -123 phpunit/coverage/repo/token.php.html /^
<\/td><\/tr>$/;" a -124 phpunit/coverage/Database.php.html /^
                        <\/span><\/td><\/tr>$/;" a -124 phpunit/coverage/ModuleAnswer.php.html /^
            <\/span>return<\/span> <\/span>$this<\/span>-><\/span>data<\/span>;<\/span><\/td><\/tr>$/;" a -124 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>\/* [4] Gestion de la reponse<\/span><\/td><\/tr>$/;" a -124 phpunit/coverage/ModuleResponse.php.html /^
            <\/span>return<\/span> <\/span>$this<\/span>-><\/span>data<\/span>;<\/span><\/td><\/tr>$/;" a -124 phpunit/coverage/Repo.php.html /^
                <\/span>$this<\/span>-><\/span>error<\/span> <\/span>=<\/span> <\/span>ManagerError<\/span>::<\/span>UncallableMethod<\/span>;<\/span><\/td><\/tr>$/;" a -124 phpunit/coverage/ResourceDispatcher.php.html /^
<\/td><\/tr>$/;" a -124 phpunit/coverage/repo/token.php.html /^
            <\/span><\/td><\/tr>$/;" a -125 phpunit/coverage/Database.php.html /^
                        <\/span>if<\/span>(<\/span> <\/span>!<\/span>mb_detect_encoding<\/span>(<\/span>$val<\/span>,<\/span> <\/span>'UTF-8'<\/span>)<\/span> <\/span>)<\/span><\/td><\/tr>$/;" a -125 phpunit/coverage/ModuleAnswer.php.html /^
        <\/span>}<\/span><\/td><\/tr>$/;" a -125 phpunit/coverage/ModuleRequest.php.html /^
            =========================================================*\/<\/span><\/td><\/tr>$/;" a -125 phpunit/coverage/ModuleResponse.php.html /^
        <\/span>}<\/span><\/td><\/tr>$/;" a -125 phpunit/coverage/Repo.php.html /^
                <\/span>return<\/span> <\/span>false<\/span>;<\/span><\/td><\/tr>$/;" a -125 phpunit/coverage/ResourceDispatcher.php.html /^
            <\/span>\/\/ Verification du filename<\/span><\/td><\/tr>$/;" a -125 phpunit/coverage/repo/token.php.html /^
            <\/span>\/\/ On definit la date d'expiration du token<\/span><\/td><\/tr>$/;" a -126 phpunit/coverage/Database.php.html /^
                            <\/span>$fetchData<\/span>[<\/span>$i<\/span>]<\/span>[<\/span>$col<\/span>]<\/span> <\/span>=<\/span> <\/span>utf8_encode<\/span>(<\/span>$val<\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -126 phpunit/coverage/ModuleAnswer.php.html /^
<\/td><\/tr>$/;" a -126 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>$answer<\/span> <\/span>=<\/span> <\/span>new<\/span> <\/span>ModuleResponse<\/span>(<\/span>$this<\/span>-><\/span>error<\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -126 phpunit/coverage/ModuleResponse.php.html /^
<\/td><\/tr>$/;" a -126 phpunit/coverage/Repo.php.html /^
            <\/span>}<\/span><\/td><\/tr>$/;" a -126 phpunit/coverage/ResourceDispatcher.php.html /^
            <\/span>$correct<\/span> <\/span>=<\/span> <\/span>$correct<\/span> <\/span>&&<\/span> <\/span>preg_match<\/span>(<\/span>'\/^[\\w_\\.-]+$\/i'<\/span>,<\/span> <\/span>$serialFlags<\/span>[<\/span>1<\/span>]<\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -126 phpunit/coverage/repo/token.php.html /^
            <\/span>$expiration<\/span> <\/span>=<\/span> <\/span>date<\/span>(<\/span>'Y-m-d'<\/span>,<\/span> <\/span>time<\/span>(<\/span>)<\/span>+<\/span>$duration<\/span>*<\/span>3600<\/span>*<\/span>24<\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -127 phpunit/coverage/Database.php.html /^
                        <\/span><\/td><\/tr>$/;" a -127 phpunit/coverage/ModuleAnswer.php.html /^
<\/td><\/tr>$/;" a -127 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>$answer<\/span>-><\/span>appendAll<\/span>(<\/span>$returned<\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -127 phpunit/coverage/ModuleResponse.php.html /^
<\/td><\/tr>$/;" a -127 phpunit/coverage/Repo.php.html /^
<\/td><\/tr>$/;" a -127 phpunit/coverage/ResourceDispatcher.php.html /^
<\/td><\/tr>$/;" a -127 phpunit/coverage/repo/token.php.html /^
<\/td><\/tr>$/;" a -128 phpunit/coverage/Database.php.html /^
                        <\/span>if<\/span>(<\/span> <\/span>is_int<\/span>(<\/span>$col<\/span>)<\/span> <\/span>)<\/span>{<\/span> <\/span>\/\/ Si indice numerique<\/span><\/td><\/tr>$/;" a -128 phpunit/coverage/ModuleAnswer.php.html /^
<\/td><\/tr>$/;" a -128 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -128 phpunit/coverage/ModuleResponse.php.html /^
<\/td><\/tr>$/;" a -128 phpunit/coverage/Repo.php.html /^
<\/td><\/tr>$/;" a -128 phpunit/coverage/ResourceDispatcher.php.html /^
            <\/span>\/\/ Verification du parent<\/span><\/td><\/tr>$/;" a -128 phpunit/coverage/repo/token.php.html /^
            <\/span>\/* [1] Generation d'un token si pas deja dans la BDD<\/span><\/td><\/tr>$/;" a -129 phpunit/coverage/Database.php.html /^
                            <\/span>if<\/span>(<\/span> <\/span>$nextEquivalent<\/span> <\/span>)<\/span> <\/span>\/\/ Si suit un indice textuel<\/span><\/td><\/tr>$/;" a -129 phpunit/coverage/ModuleAnswer.php.html /^
<\/td><\/tr>$/;" a -129 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>return<\/span> <\/span>$answer<\/span>;<\/span><\/td><\/tr>$/;" a -129 phpunit/coverage/ModuleResponse.php.html /^
<\/td><\/tr>$/;" a -129 phpunit/coverage/Repo.php.html /^
            <\/span>\/* [3] On amorce la methode<\/span><\/td><\/tr>$/;" a -129 phpunit/coverage/ResourceDispatcher.php.html /^
            <\/span>$correct<\/span> <\/span>=<\/span> <\/span>$correct<\/span> <\/span>&&<\/span> <\/span>array_key_exists<\/span>(<\/span>$serialFlags<\/span>[<\/span>2<\/span>]<\/span>,<\/span> <\/span>self<\/span>::<\/span>$supported_parents<\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -129 phpunit/coverage/repo/token.php.html /^
            =========================================================*\/<\/span><\/td><\/tr>$/;" a -13 phpunit/coverage/Database.php.html /^
<\/td><\/tr>$/;" a -13 phpunit/coverage/ManagerError.php.html /^
            <\/span>const<\/span> <\/span>ParsingFailed<\/span>       <\/span>=<\/span> <\/span>1<\/span>;<\/span><\/td><\/tr>$/;" a -13 phpunit/coverage/ModuleAnswer.php.html /^
    <\/span>\/\/ <\/span><\/td><\/tr>$/;" a -13 phpunit/coverage/ModuleRequest.php.html /^
        <\/span>private<\/span> <\/span>$path<\/span>;<\/span><\/td><\/tr>$/;" a -13 phpunit/coverage/ModuleResponse.php.html /^
    <\/span>\/\/<\/span><\/td><\/tr>$/;" a -13 phpunit/coverage/Repo.php.html /^
    <\/span>\/\/ <\/span><\/td><\/tr>$/;" a -13 phpunit/coverage/ResourceDispatcher.php.html /^
<\/td><\/tr>$/;" a -13 phpunit/coverage/autoloader.php.html /^
    *<\/span><\/td><\/tr>$/;" a -13 phpunit/coverage/module/module.php.html /^
            <\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -13 phpunit/coverage/repo/token.php.html /^
        *     - getById(id_token)<\/span><\/td><\/tr>$/;" a -13 phpunit/coverage/sessionManager.php.html /^
        <\/span>\/*************************\/<\/span><\/td><\/tr>$/;" a -130 phpunit/coverage/Database.php.html /^
                                <\/span>unset<\/span>(<\/span> <\/span>$fetchData<\/span>[<\/span>$i<\/span>]<\/span>[<\/span>$col<\/span>]<\/span> <\/span>)<\/span>;<\/span> <\/span>\/\/ on supprime l'indice<\/span><\/td><\/tr>$/;" a -130 phpunit/coverage/ModuleAnswer.php.html /^
<\/td><\/tr>$/;" a -130 phpunit/coverage/ModuleRequest.php.html /^
        <\/span>}<\/span><\/td><\/tr>$/;" a -130 phpunit/coverage/ModuleResponse.php.html /^
<\/td><\/tr>$/;" a -130 phpunit/coverage/Repo.php.html /^
            =========================================================*\/<\/span><\/td><\/tr>$/;" a -130 phpunit/coverage/ResourceDispatcher.php.html /^
<\/td><\/tr>$/;" a -130 phpunit/coverage/repo/token.php.html /^
            <\/span>$token_used<\/span> <\/span>=<\/span> <\/span>true<\/span>;<\/span><\/td><\/tr>$/;" a -131 phpunit/coverage/Database.php.html /^
                            <\/span><\/td><\/tr>$/;" a -131 phpunit/coverage/ModuleAnswer.php.html /^
<\/td><\/tr>$/;" a -131 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -131 phpunit/coverage/ModuleResponse.php.html /^
<\/td><\/tr>$/;" a -131 phpunit/coverage/Repo.php.html /^
            <\/span>return<\/span> <\/span>call_user_func_array<\/span>(<\/span> <\/span>$this<\/span>-><\/span>getFunctionCaller<\/span>(<\/span>)<\/span>,<\/span> <\/span>$this<\/span>-><\/span>data<\/span> <\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -131 phpunit/coverage/ResourceDispatcher.php.html /^
            <\/span>\/\/ Verification du sous-parent (optionnel)<\/span><\/td><\/tr>$/;" a -131 phpunit/coverage/repo/token.php.html /^
            <\/span>\/\/ tant qu'un token a deja la meme valeur<\/span><\/td><\/tr>$/;" a -132 phpunit/coverage/Database.php.html /^
                            <\/span>$nextEquivalent<\/span> <\/span>=<\/span> <\/span>false<\/span>;<\/span> <\/span>\/\/ Dans tous les cas, on dit que le prochain ne pourra pas etre supprime si numerique<\/span><\/td><\/tr>$/;" a -132 phpunit/coverage/ModuleAnswer.php.html /^
        <\/span>\/* SERIALISATION A PARTIR DES DONNEES<\/span><\/td><\/tr>$/;" a -132 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -132 phpunit/coverage/ModuleResponse.php.html /^
        <\/span>\/* SERIALISATION A PARTIR DES DONNEES<\/span><\/td><\/tr>$/;" a -132 phpunit/coverage/Repo.php.html /^
        <\/span>}<\/span><\/td><\/tr>$/;" a -132 phpunit/coverage/ResourceDispatcher.php.html /^
            <\/span>$opt_subParent<\/span> <\/span>=<\/span> <\/span>count<\/span>(<\/span>$serialFlags<\/span>)<\/span> <\/span>>=<\/span> <\/span>4<\/span>;<\/span><\/td><\/tr>$/;" a -132 phpunit/coverage/repo/token.php.html /^
            <\/span>while<\/span>(<\/span> <\/span>$token_used<\/span> <\/span>)<\/span>{<\/span><\/td><\/tr>$/;" a -133 phpunit/coverage/Database.php.html /^
<\/td><\/tr>$/;" a -133 phpunit/coverage/ModuleAnswer.php.html /^
        *<\/span><\/td><\/tr>$/;" a -133 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -133 phpunit/coverage/ModuleResponse.php.html /^
        *<\/span><\/td><\/tr>$/;" a -133 phpunit/coverage/Repo.php.html /^
<\/td><\/tr>$/;" a -133 phpunit/coverage/ResourceDispatcher.php.html /^
<\/td><\/tr>$/;" a -133 phpunit/coverage/repo/token.php.html /^
                <\/span>$token<\/span> <\/span>=<\/span> <\/span>sessionManager<\/span>::<\/span>sha1<\/span>(<\/span>uniqid<\/span>(<\/span>)<\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -134 phpunit/coverage/Database.php.html /^
                        <\/span>}<\/span>else<\/span> <\/span>\/\/ Si l'indice n'est pas un entier<\/span><\/td><\/tr>$/;" a -134 phpunit/coverage/ModuleAnswer.php.html /^
        * @return json<String>                         Retourne les donnees serialisees<\/span><\/td><\/tr>$/;" a -134 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -134 phpunit/coverage/ModuleResponse.php.html /^
        * @return json<String>                         Retourne les donnees serialisees<\/span><\/td><\/tr>$/;" a -134 phpunit/coverage/Repo.php.html /^
<\/td><\/tr>$/;" a -134 phpunit/coverage/ResourceDispatcher.php.html /^
            <\/span>if<\/span>(<\/span> <\/span>$opt_subParent<\/span> <\/span>)<\/span><\/td><\/tr>$/;" a -134 phpunit/coverage/repo/token.php.html /^
<\/td><\/tr>$/;" a -135 phpunit/coverage/Database.php.html /^
                            <\/span>$nextEquivalent<\/span> <\/span>=<\/span> <\/span>true<\/span>;<\/span> <\/span>\/\/ On signale qu'il y aura peut etre un indice numerique suivant<\/span><\/td><\/tr>$/;" a -135 phpunit/coverage/ModuleAnswer.php.html /^
        *<\/span><\/td><\/tr>$/;" a -135 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -135 phpunit/coverage/ModuleResponse.php.html /^
        *<\/span><\/td><\/tr>$/;" a -135 phpunit/coverage/Repo.php.html /^
<\/td><\/tr>$/;" a -135 phpunit/coverage/ResourceDispatcher.php.html /^
                <\/span>$correct<\/span> <\/span>=<\/span> <\/span>$correct<\/span> <\/span>&&<\/span> <\/span>preg_match<\/span>(<\/span>'\/^[\\w_-]+$\/i'<\/span>,<\/span> <\/span>$serialFlags<\/span>[<\/span>3<\/span>]<\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -135 phpunit/coverage/repo/token.php.html /^
                <\/span>\/\/ Verification dans la BDD<\/span><\/td><\/tr>$/;" a -136 phpunit/coverage/Database.php.html /^
                            <\/span><\/td><\/tr>$/;" a -136 phpunit/coverage/ModuleAnswer.php.html /^
        *\/<\/span><\/td><\/tr>$/;" a -136 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -136 phpunit/coverage/ModuleResponse.php.html /^
        *\/<\/span><\/td><\/tr>$/;" a -136 phpunit/coverage/Repo.php.html /^
        <\/span>\/* VERIFICATION DU FORMAT ET DE LA COHERENCE DU CHEMIN SPECIFIE<\/span><\/td><\/tr>$/;" a -136 phpunit/coverage/ResourceDispatcher.php.html /^
<\/td><\/tr>$/;" a -136 phpunit/coverage/repo/token.php.html /^
                <\/span>$check<\/span> <\/span>=<\/span> <\/span>Database<\/span>::<\/span>getPDO<\/span>(<\/span>)<\/span>-><\/span>prepare<\/span>(<\/span>"SELECT id_token FROM api_token WHERE token = :token"<\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -137 phpunit/coverage/Database.php.html /^
                        <\/span>}<\/span><\/td><\/tr>$/;" a -137 phpunit/coverage/ModuleAnswer.php.html /^
        <\/span>public<\/span> <\/span>function<\/span> <\/span>serialize<\/span>(<\/span>)<\/span>{<\/span><\/td><\/tr>$/;" a -137 phpunit/coverage/ModuleRequest.php.html /^
        <\/span>\/* DESERIALISATION ET CREATION D'UN OBJET<\/span><\/td><\/tr>$/;" a -137 phpunit/coverage/ModuleResponse.php.html /^
        <\/span>public<\/span> <\/span>function<\/span> <\/span>serialize<\/span>(<\/span>)<\/span>{<\/span><\/td><\/tr>$/;" a -137 phpunit/coverage/Repo.php.html /^
        *<\/span><\/td><\/tr>$/;" a -137 phpunit/coverage/ResourceDispatcher.php.html /^
            <\/span>\/\/ Verification de la couleur (optionnel)<\/span><\/td><\/tr>$/;" a -137 phpunit/coverage/repo/token.php.html /^
                <\/span>$check<\/span>-><\/span>execute<\/span>(<\/span> <\/span>array<\/span>(<\/span> <\/span>':token'<\/span> <\/span>=><\/span> <\/span>$token<\/span> <\/span>)<\/span> <\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -138 phpunit/coverage/Database.php.html /^
<\/td><\/tr>$/;" a -138 phpunit/coverage/ModuleAnswer.php.html /^
<\/td><\/tr>$/;" a -138 phpunit/coverage/ModuleRequest.php.html /^
        *<\/span><\/td><\/tr>$/;" a -138 phpunit/coverage/ModuleResponse.php.html /^
<\/td><\/tr>$/;" a -138 phpunit/coverage/Repo.php.html /^
        * @path<String>                                     String correspondant au chemin de delegation ("repo\/methode")<\/span><\/td><\/tr>$/;" a -138 phpunit/coverage/ResourceDispatcher.php.html /^
            <\/span>$opt_color<\/span> <\/span>=<\/span> <\/span>count<\/span>(<\/span>$serialFlags<\/span>)<\/span> <\/span>>=<\/span> <\/span>5<\/span> <\/span>&&<\/span> <\/span>preg_match<\/span>(<\/span>'\/^[\\da-f]{6,8}+$\/i'<\/span>,<\/span> <\/span>$serialFlags<\/span>[<\/span>4<\/span>]<\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -138 phpunit/coverage/repo/token.php.html /^
<\/td><\/tr>$/;" a -139 phpunit/coverage/Database.php.html /^
            <\/span>\/* [2] 1 dimensions<\/span><\/td><\/tr>$/;" a -139 phpunit/coverage/ModuleAnswer.php.html /^
            <\/span>\/\/ On rajoute l'erreur au message<\/span><\/td><\/tr>$/;" a -139 phpunit/coverage/ModuleRequest.php.html /^
        * @jsonString<String>                                     Json au format string contenant les donnees<\/span><\/td><\/tr>$/;" a -139 phpunit/coverage/ModuleResponse.php.html /^
            <\/span>\/\/ On rajoute l'erreur au message<\/span><\/td><\/tr>$/;" a -139 phpunit/coverage/Repo.php.html /^
        *<\/span><\/td><\/tr>$/;" a -139 phpunit/coverage/ResourceDispatcher.php.html /^
<\/td><\/tr>$/;" a -139 phpunit/coverage/repo/token.php.html /^
                <\/span>\/\/ VRAI un token est identique<\/span><\/td><\/tr>$/;" a -14 phpunit/coverage/Database.php.html /^
        <\/span>private<\/span> <\/span>static<\/span> <\/span>$pdo<\/span>;<\/span><\/td><\/tr>$/;" a -14 phpunit/coverage/ManagerError.php.html /^
<\/td><\/tr>$/;" a -14 phpunit/coverage/ModuleAnswer.php.html /^
    <\/span>\/\/ <\/span><\/td><\/tr>$/;" a -14 phpunit/coverage/ModuleRequest.php.html /^
        <\/span>private<\/span> <\/span>$params<\/span>;<\/span><\/td><\/tr>$/;" a -14 phpunit/coverage/ModuleResponse.php.html /^
    <\/span>\/\/<\/span><\/td><\/tr>$/;" a -14 phpunit/coverage/Repo.php.html /^
    <\/span>\/\/ <\/span><\/td><\/tr>$/;" a -14 phpunit/coverage/ResourceDispatcher.php.html /^
        <\/span>public<\/span> <\/span>static<\/span> <\/span>$supported_extensions<\/span>;<\/span><\/td><\/tr>$/;" a -14 phpunit/coverage/autoloader.php.html /^
    *\/<\/span><\/td><\/tr>$/;" a -14 phpunit/coverage/module/module.php.html /^
<\/td><\/tr>$/;" a -14 phpunit/coverage/repo/token.php.html /^
        *<\/span><\/td><\/tr>$/;" a -14 phpunit/coverage/sessionManager.php.html /^
        <\/span>public<\/span> <\/span>static<\/span> <\/span>function<\/span> <\/span>sha1<\/span>(<\/span>$data<\/span>)<\/span>{<\/span><\/td><\/tr>$/;" a -140 phpunit/coverage/Database.php.html /^
            ===============================================*\/<\/span><\/td><\/tr>$/;" a -140 phpunit/coverage/ModuleAnswer.php.html /^
            <\/span>$returnData<\/span> <\/span>=<\/span> <\/span>array_merge<\/span>(<\/span> <\/span><\/td><\/tr>$/;" a -140 phpunit/coverage/ModuleRequest.php.html /^
        *<\/span><\/td><\/tr>$/;" a -140 phpunit/coverage/ModuleResponse.php.html /^
            <\/span>$returnData<\/span> <\/span>=<\/span> <\/span>array_merge<\/span>(<\/span><\/td><\/tr>$/;" a -140 phpunit/coverage/Repo.php.html /^
        * @return validity<Boolean>                         Retourne si oui ou non l'objet est correct<\/span><\/td><\/tr>$/;" a -140 phpunit/coverage/ResourceDispatcher.php.html /^
            <\/span>if<\/span>(<\/span> <\/span>!<\/span>$correct<\/span> <\/span>)<\/span><\/td><\/tr>$/;" a -140 phpunit/coverage/repo/token.php.html /^
                <\/span>$token_used<\/span> <\/span>=<\/span> <\/span>$check<\/span>-><\/span>fetch<\/span>(<\/span>)<\/span> <\/span>!==<\/span> <\/span>false<\/span>;<\/span><\/td><\/tr>$/;" a -141 phpunit/coverage/Database.php.html /^
            <\/span>}<\/span>else<\/span>{<\/span><\/td><\/tr>$/;" a -141 phpunit/coverage/ModuleAnswer.php.html /^
                <\/span>array<\/span>(<\/span><\/td><\/tr>$/;" a -141 phpunit/coverage/ModuleRequest.php.html /^
        * @return instance<ModuleRequest>                         Retourne un objet de type <ModuleRequest><\/span><\/td><\/tr>$/;" a -141 phpunit/coverage/ModuleResponse.php.html /^
                <\/span>array<\/span>(<\/span><\/td><\/tr>$/;" a -141 phpunit/coverage/Repo.php.html /^
        *<\/span><\/td><\/tr>$/;" a -141 phpunit/coverage/ResourceDispatcher.php.html /^
                <\/span>return<\/span> <\/span>false<\/span>;<\/span><\/td><\/tr>$/;" a -141 phpunit/coverage/repo/token.php.html /^
            <\/span>}<\/span><\/td><\/tr>$/;" a -142 phpunit/coverage/Database.php.html /^
<\/td><\/tr>$/;" a -142 phpunit/coverage/ModuleAnswer.php.html /^
                    <\/span>'ModuleError'<\/span> <\/span>=><\/span> <\/span>$this<\/span>-><\/span>error<\/span>,<\/span><\/td><\/tr>$/;" a -142 phpunit/coverage/ModuleRequest.php.html /^
        *<\/span><\/td><\/tr>$/;" a -142 phpunit/coverage/ModuleResponse.php.html /^
                    <\/span>'ModuleError'<\/span> <\/span>=><\/span> <\/span>$this<\/span>-><\/span>error<\/span>,<\/span><\/td><\/tr>$/;" a -142 phpunit/coverage/Repo.php.html /^
        *\/<\/span><\/td><\/tr>$/;" a -142 phpunit/coverage/ResourceDispatcher.php.html /^
<\/td><\/tr>$/;" a -142 phpunit/coverage/repo/token.php.html /^
<\/td><\/tr>$/;" a -143 phpunit/coverage/Database.php.html /^
                <\/span>\/\/ on supprime les doublons des entrées (indice numérique)<\/span><\/td><\/tr>$/;" a -143 phpunit/coverage/ModuleAnswer.php.html /^
                    <\/span>'ErrorDescription'<\/span> <\/span>=><\/span> <\/span>ManagerError<\/span>::<\/span>explicit<\/span>(<\/span>$this<\/span>-><\/span>error<\/span>)<\/span><\/td><\/tr>$/;" a -143 phpunit/coverage/ModuleRequest.php.html /^
        *\/<\/span><\/td><\/tr>$/;" a -143 phpunit/coverage/ModuleResponse.php.html /^
                    <\/span>'ErrorDescription'<\/span> <\/span>=><\/span> <\/span>ManagerError<\/span>::<\/span>explicit<\/span>(<\/span>$this<\/span>-><\/span>error<\/span>)<\/span><\/td><\/tr>$/;" a -143 phpunit/coverage/Repo.php.html /^
        <\/span>private<\/span> <\/span>function<\/span> <\/span>checkPath<\/span>(<\/span>$path<\/span>)<\/span>{<\/span><\/td><\/tr>$/;" a -143 phpunit/coverage/ResourceDispatcher.php.html /^
                <\/span><\/td><\/tr>$/;" a -143 phpunit/coverage/repo/token.php.html /^
<\/td><\/tr>$/;" a -144 phpunit/coverage/Database.php.html /^
                <\/span>foreach<\/span>(<\/span>$fetchData<\/span> <\/span>as<\/span> <\/span>$i<\/span>=><\/span>$val<\/span>)<\/span>{<\/span>  <\/span>\/\/ pour toutes les entrées<\/span><\/td><\/tr>$/;" a -144 phpunit/coverage/ModuleAnswer.php.html /^
                <\/span>)<\/span>,<\/span><\/td><\/tr>$/;" a -144 phpunit/coverage/ModuleRequest.php.html /^
        <\/span>public<\/span> <\/span>static<\/span> <\/span>function<\/span> <\/span>fromString<\/span>(<\/span>$jsonString<\/span>)<\/span>{<\/span><\/td><\/tr>$/;" a -144 phpunit/coverage/ModuleResponse.php.html /^
                <\/span>)<\/span>,<\/span><\/td><\/tr>$/;" a -144 phpunit/coverage/Repo.php.html /^
            <\/span>\/* [1] Verification format general<\/span><\/td><\/tr>$/;" a -144 phpunit/coverage/ResourceDispatcher.php.html /^
            <\/span>\/* [2] Creation (non serialisee) des flags<\/span><\/td><\/tr>$/;" a -144 phpunit/coverage/repo/token.php.html /^
            <\/span>\/* [2] On cree le token<\/span><\/td><\/tr>$/;" a -145 phpunit/coverage/Database.php.html /^
                    <\/span><\/td><\/tr>$/;" a -145 phpunit/coverage/ModuleAnswer.php.html /^
                <\/span>$this<\/span>-><\/span>data<\/span><\/td><\/tr>$/;" a -145 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>$json<\/span> <\/span>=<\/span> <\/span>json_decode<\/span>(<\/span> <\/span>$jsonString<\/span>,<\/span> <\/span>true<\/span> <\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -145 phpunit/coverage/ModuleResponse.php.html /^
                <\/span>$this<\/span>-><\/span>data<\/span><\/td><\/tr>$/;" a -145 phpunit/coverage/Repo.php.html /^
            =========================================================*\/<\/span><\/td><\/tr>$/;" a -145 phpunit/coverage/ResourceDispatcher.php.html /^
            ======================================================*\/<\/span><\/td><\/tr>$/;" a -145 phpunit/coverage/repo/token.php.html /^
            =========================================================*\/<\/span><\/td><\/tr>$/;" a -146 phpunit/coverage/Database.php.html /^
                    <\/span>if<\/span>(<\/span> <\/span>!<\/span>mb_detect_encoding<\/span>(<\/span>$val<\/span>,<\/span> <\/span>'UTF-8'<\/span>)<\/span> <\/span>)<\/span><\/td><\/tr>$/;" a -146 phpunit/coverage/ModuleAnswer.php.html /^
            <\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -146 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -146 phpunit/coverage/ModuleResponse.php.html /^
            <\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -146 phpunit/coverage/Repo.php.html /^
            <\/span>if<\/span>(<\/span> <\/span>!<\/span>preg_match<\/span>(<\/span>'#^([\\w_-]+)\/([\\w_-]+)$#i'<\/span>,<\/span> <\/span>$path<\/span>,<\/span> <\/span>$matches<\/span>)<\/span> <\/span>)<\/span>{<\/span> <\/span>\/\/ Si mauvais format<\/span><\/td><\/tr>$/;" a -146 phpunit/coverage/ResourceDispatcher.php.html /^
            <\/span>\/\/ Si tout se deroule bien, on cree les flags<\/span><\/td><\/tr>$/;" a -146 phpunit/coverage/repo/token.php.html /^
            <\/span>$create<\/span> <\/span>=<\/span> <\/span>Database<\/span>::<\/span>getPDO<\/span>(<\/span>)<\/span>-><\/span>prepare<\/span>(<\/span>"INSERT INTO api_token(id_token, token, name, expires)<\/span><\/td><\/tr>$/;" a -147 phpunit/coverage/Database.php.html /^
                        <\/span>$fetchData<\/span>[<\/span>$i<\/span>]<\/span> <\/span>=<\/span> <\/span>utf8_encode<\/span>(<\/span>$val<\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -147 phpunit/coverage/ModuleAnswer.php.html /^
<\/td><\/tr>$/;" a -147 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>\/\/ Verification du parsage<\/span><\/td><\/tr>$/;" a -147 phpunit/coverage/ModuleResponse.php.html /^
<\/td><\/tr>$/;" a -147 phpunit/coverage/Repo.php.html /^
                <\/span>$this<\/span>-><\/span>error<\/span> <\/span>=<\/span> <\/span>ManagerError<\/span>::<\/span>WrongPathRepo<\/span>;<\/span><\/td><\/tr>$/;" a -147 phpunit/coverage/ResourceDispatcher.php.html /^
            <\/span>$this<\/span>-><\/span>flags<\/span> <\/span>=<\/span> <\/span>array<\/span>(<\/span><\/td><\/tr>$/;" a -147 phpunit/coverage/repo/token.php.html /^
                VALUES(DEFAULT, :token, :name, :expiration)"<\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -148 phpunit/coverage/Database.php.html /^
<\/td><\/tr>$/;" a -148 phpunit/coverage/ModuleAnswer.php.html /^
            <\/span>return<\/span> <\/span>json_encode<\/span>(<\/span>$returnData<\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -148 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>if<\/span>(<\/span> <\/span>$json<\/span> <\/span>==<\/span> <\/span>null<\/span> <\/span>)<\/span><\/td><\/tr>$/;" a -148 phpunit/coverage/ModuleResponse.php.html /^
            <\/span>return<\/span> <\/span>json_encode<\/span>(<\/span>$returnData<\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -148 phpunit/coverage/Repo.php.html /^
                <\/span>return<\/span> <\/span>false<\/span>;<\/span><\/td><\/tr>$/;" a -148 phpunit/coverage/ResourceDispatcher.php.html /^
                <\/span>'extension'<\/span> <\/span>=><\/span> <\/span>$serialFlags<\/span>[<\/span>0<\/span>]<\/span>,<\/span><\/td><\/tr>$/;" a -148 phpunit/coverage/repo/token.php.html /^
            <\/span>$create<\/span>-><\/span>execute<\/span>(<\/span>array<\/span>(<\/span><\/td><\/tr>$/;" a -149 phpunit/coverage/Database.php.html /^
                    <\/span>if<\/span>(<\/span> <\/span>is_int<\/span>(<\/span>$i<\/span>)<\/span> <\/span>)<\/span>{<\/span> <\/span>\/\/ Si indice numerique<\/span><\/td><\/tr>$/;" a -149 phpunit/coverage/ModuleAnswer.php.html /^
<\/td><\/tr>$/;" a -149 phpunit/coverage/ModuleRequest.php.html /^
                <\/span>return<\/span> <\/span>new<\/span> <\/span>ModuleRequest<\/span>(<\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -149 phpunit/coverage/ModuleResponse.php.html /^
<\/td><\/tr>$/;" a -149 phpunit/coverage/Repo.php.html /^
            <\/span>}<\/span><\/td><\/tr>$/;" a -149 phpunit/coverage/ResourceDispatcher.php.html /^
                <\/span>'filename'<\/span>  <\/span>=><\/span> <\/span>$serialFlags<\/span>[<\/span>1<\/span>]<\/span>,<\/span><\/td><\/tr>$/;" a -149 phpunit/coverage/repo/token.php.html /^
                <\/span>':token'<\/span>      <\/span>=><\/span> <\/span>$token<\/span>,<\/span><\/td><\/tr>$/;" a -15 phpunit/coverage/Database.php.html /^
        <\/span>private<\/span> <\/span>static<\/span> <\/span>$instance<\/span>;<\/span><\/td><\/tr>$/;" a -15 phpunit/coverage/ManagerError.php.html /^
        <\/span>\/* ResourceDispatcher *\/<\/span><\/td><\/tr>$/;" a -15 phpunit/coverage/ModuleAnswer.php.html /^
    <\/span>\/\/ <\/span><\/td><\/tr>$/;" a -15 phpunit/coverage/ModuleRequest.php.html /^
        <\/span>private<\/span> <\/span>$modules<\/span>;<\/span><\/td><\/tr>$/;" a -15 phpunit/coverage/ModuleResponse.php.html /^
    <\/span>\/\/<\/span><\/td><\/tr>$/;" a -15 phpunit/coverage/Repo.php.html /^
    <\/span>\/\/ <\/span><\/td><\/tr>$/;" a -15 phpunit/coverage/ResourceDispatcher.php.html /^
        <\/span>public<\/span> <\/span>static<\/span> <\/span>$supported_parents<\/span>;<\/span><\/td><\/tr>$/;" a -15 phpunit/coverage/autoloader.php.html /^
    <\/span>function<\/span> <\/span>debug<\/span>(<\/span>)<\/span>{<\/span><\/td><\/tr>$/;" a -15 phpunit/coverage/module/module.php.html /^
        <\/span>}<\/span><\/td><\/tr>$/;" a -15 phpunit/coverage/repo/token.php.html /^
        * 2. Gestion de la verification<\/span><\/td><\/tr>$/;" a -15 phpunit/coverage/sessionManager.php.html /^
            <\/span>return<\/span> <\/span>sha1<\/span>(<\/span> <\/span>'">\\[..|{@#))'<\/span>.<\/span>sha1<\/span>(<\/span>$data<\/span>.<\/span>'_)Q@#((%*_$%(@#'<\/span>)<\/span> <\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -150 phpunit/coverage/Database.php.html /^
                        <\/span>if<\/span>(<\/span> <\/span>$nextEquivalent<\/span> <\/span>)<\/span> <\/span>\/\/ Si suit un indice textuel<\/span><\/td><\/tr>$/;" a -150 phpunit/coverage/ModuleAnswer.php.html /^
        <\/span>}<\/span><\/td><\/tr>$/;" a -150 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -150 phpunit/coverage/ModuleResponse.php.html /^
        <\/span>}<\/span><\/td><\/tr>$/;" a -150 phpunit/coverage/Repo.php.html /^
<\/td><\/tr>$/;" a -150 phpunit/coverage/ResourceDispatcher.php.html /^
                <\/span>'parent'<\/span>    <\/span>=><\/span> <\/span>$serialFlags<\/span>[<\/span>2<\/span>]<\/span><\/td><\/tr>$/;" a -150 phpunit/coverage/repo/token.php.html /^
                <\/span>':name'<\/span>       <\/span>=><\/span> <\/span>$name<\/span>,<\/span><\/td><\/tr>$/;" a -151 phpunit/coverage/Database.php.html /^
                            <\/span>unset<\/span>(<\/span> <\/span>$fetchData<\/span>[<\/span>$i<\/span>]<\/span> <\/span>)<\/span>;<\/span> <\/span>\/\/ on supprime l'indice<\/span><\/td><\/tr>$/;" a -151 phpunit/coverage/ModuleAnswer.php.html /^
<\/td><\/tr>$/;" a -151 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>\/\/ Verification des parametres<\/span><\/td><\/tr>$/;" a -151 phpunit/coverage/ModuleResponse.php.html /^
<\/td><\/tr>$/;" a -151 phpunit/coverage/Repo.php.html /^
            <\/span>\/\/ On recupere les donnes de la regex<\/span><\/td><\/tr>$/;" a -151 phpunit/coverage/ResourceDispatcher.php.html /^
            <\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -151 phpunit/coverage/repo/token.php.html /^
                <\/span>':expiration'<\/span> <\/span>=><\/span> <\/span>$expiration<\/span><\/td><\/tr>$/;" a -152 phpunit/coverage/Database.php.html /^
                        <\/span><\/td><\/tr>$/;" a -152 phpunit/coverage/ModuleAnswer.php.html /^
<\/td><\/tr>$/;" a -152 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>if<\/span>(<\/span> <\/span>!<\/span>isset<\/span>(<\/span>$json<\/span>[<\/span>'path'<\/span>]<\/span>)<\/span> <\/span>)<\/span><\/td><\/tr>$/;" a -152 phpunit/coverage/ModuleResponse.php.html /^
<\/td><\/tr>$/;" a -152 phpunit/coverage/Repo.php.html /^
            <\/span>$repository<\/span> <\/span>=<\/span> <\/span>$matches<\/span>[<\/span>1<\/span>]<\/span>;<\/span><\/td><\/tr>$/;" a -152 phpunit/coverage/ResourceDispatcher.php.html /^
<\/td><\/tr>$/;" a -152 phpunit/coverage/repo/token.php.html /^
            <\/span>)<\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -153 phpunit/coverage/Database.php.html /^
                        <\/span>$nextEquivalent<\/span> <\/span>=<\/span> <\/span>false<\/span>;<\/span> <\/span>\/\/ Dans tous les cas, on dit que le prochain ne pourra pas etre supprime si numerique<\/span><\/td><\/tr>$/;" a -153 phpunit/coverage/ModuleAnswer.php.html /^
<\/td><\/tr>$/;" a -153 phpunit/coverage/ModuleRequest.php.html /^
                <\/span>return<\/span> <\/span>new<\/span> <\/span>ModuleRequest<\/span>(<\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -153 phpunit/coverage/ModuleResponse.php.html /^
<\/td><\/tr>$/;" a -153 phpunit/coverage/Repo.php.html /^
            <\/span>$method<\/span> <\/span>=<\/span> <\/span>$matches<\/span>[<\/span>2<\/span>]<\/span>;<\/span><\/td><\/tr>$/;" a -153 phpunit/coverage/ResourceDispatcher.php.html /^
            <\/span>\/\/ Ajout du sous-parent optionnel<\/span><\/td><\/tr>$/;" a -153 phpunit/coverage/repo/token.php.html /^
<\/td><\/tr>$/;" a -154 phpunit/coverage/Database.php.html /^
<\/td><\/tr>$/;" a -154 phpunit/coverage/ModuleAnswer.php.html /^
    <\/span>}<\/span><\/td><\/tr>$/;" a -154 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -154 phpunit/coverage/ModuleResponse.php.html /^
    <\/span>}<\/span><\/td><\/tr>$/;" a -154 phpunit/coverage/Repo.php.html /^
<\/td><\/tr>$/;" a -154 phpunit/coverage/ResourceDispatcher.php.html /^
            <\/span>if<\/span>(<\/span> <\/span>$opt_subParent<\/span> <\/span>)<\/span><\/td><\/tr>$/;" a -154 phpunit/coverage/repo/token.php.html /^
            <\/span>\/* [3] On verifie qu'il a bien ete cree<\/span><\/td><\/tr>$/;" a -155 phpunit/coverage/Database.php.html /^
                    <\/span>}<\/span>else<\/span> <\/span>\/\/ Si l'indice n'est pas un entier<\/span><\/td><\/tr>$/;" a -155 phpunit/coverage/ModuleAnswer.php.html /^
<\/td><\/tr>$/;" a -155 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>\/\/ On definit $params au cas ou il soit vide<\/span><\/td><\/tr>$/;" a -155 phpunit/coverage/ModuleResponse.php.html /^
<\/td><\/tr>$/;" a -155 phpunit/coverage/Repo.php.html /^
            <\/span>\/* [2] Verification de l'existence du repo (conf)<\/span><\/td><\/tr>$/;" a -155 phpunit/coverage/ResourceDispatcher.php.html /^
                <\/span>$this<\/span>-><\/span>flags<\/span>[<\/span>'subparent'<\/span>]<\/span> <\/span>=<\/span> <\/span>$serialFlags<\/span>[<\/span>3<\/span>]<\/span>;<\/span><\/td><\/tr>$/;" a -155 phpunit/coverage/repo/token.php.html /^
            =========================================================*\/<\/span><\/td><\/tr>$/;" a -156 phpunit/coverage/Database.php.html /^
                        <\/span>$nextEquivalent<\/span> <\/span>=<\/span> <\/span>true<\/span>;<\/span> <\/span>\/\/ On signale qu'il y aura peut etre un indice numerique suivant<\/span><\/td><\/tr>$/;" a -156 phpunit/coverage/ModuleAnswer.php.html /^
?><\/span><\/td><\/tr>$/;" a -156 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>$params<\/span> <\/span>=<\/span> <\/span>$json<\/span>;<\/span><\/td><\/tr>$/;" a -156 phpunit/coverage/ModuleResponse.php.html /^
?><\/span><\/td><\/tr>$/;" a -156 phpunit/coverage/Repo.php.html /^
            =========================================================*\/<\/span><\/td><\/tr>$/;" a -156 phpunit/coverage/ResourceDispatcher.php.html /^
<\/td><\/tr>$/;" a -156 phpunit/coverage/repo/token.php.html /^
            <\/span>$created<\/span> <\/span>=<\/span> <\/span>Database<\/span>::<\/span>getPDO<\/span>(<\/span>)<\/span>-><\/span>prepare<\/span>(<\/span>"SELECT id_token FROM api_token<\/span><\/td><\/tr>$/;" a -157 phpunit/coverage/Database.php.html /^
<\/td><\/tr>$/;" a -157 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>\/\/ On retire le @path de @params<\/span><\/td><\/tr>$/;" a -157 phpunit/coverage/Repo.php.html /^
            <\/span>if<\/span>(<\/span> <\/span>!<\/span>array_key_exists<\/span>(<\/span>$repository<\/span>,<\/span> <\/span>$this<\/span>-><\/span>repositories<\/span>)<\/span> <\/span>)<\/span>{<\/span> <\/span>\/\/ Si le repo n'est pas specifie dans la conf<\/span><\/td><\/tr>$/;" a -157 phpunit/coverage/ResourceDispatcher.php.html /^
            <\/span>\/\/ Ajout du color optionnel<\/span><\/td><\/tr>$/;" a -157 phpunit/coverage/repo/token.php.html /^
                WHERE token = :token<\/span><\/td><\/tr>$/;" a -158 phpunit/coverage/Database.php.html /^
                <\/span>}<\/span><\/td><\/tr>$/;" a -158 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>unset<\/span>(<\/span>$params<\/span>[<\/span>'path'<\/span>]<\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -158 phpunit/coverage/Repo.php.html /^
                <\/span>$this<\/span>-><\/span>error<\/span> <\/span>=<\/span> <\/span>ManagerError<\/span>::<\/span>UnknownRepo<\/span>;<\/span><\/td><\/tr>$/;" a -158 phpunit/coverage/ResourceDispatcher.php.html /^
            <\/span>if<\/span>(<\/span> <\/span>$opt_color<\/span> <\/span>)<\/span><\/td><\/tr>$/;" a -158 phpunit/coverage/repo/token.php.html /^
                AND   name  = :name"<\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -159 phpunit/coverage/Database.php.html /^
<\/td><\/tr>$/;" a -159 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -159 phpunit/coverage/Repo.php.html /^
                <\/span>return<\/span> <\/span>false<\/span>;<\/span> <\/span>\/\/ On retourne FALSE, si erreur<\/span><\/td><\/tr>$/;" a -159 phpunit/coverage/ResourceDispatcher.php.html /^
                <\/span>$this<\/span>-><\/span>flags<\/span>[<\/span>'color'<\/span>]<\/span> <\/span>=<\/span> <\/span>'#'<\/span>.<\/span>$serialFlags<\/span>[<\/span>4<\/span>]<\/span>;<\/span><\/td><\/tr>$/;" a -159 phpunit/coverage/repo/token.php.html /^
            <\/span>$created<\/span>-><\/span>execute<\/span>(<\/span>array<\/span>(<\/span><\/td><\/tr>$/;" a -16 phpunit/coverage/Database.php.html /^
<\/td><\/tr>$/;" a -16 phpunit/coverage/ManagerError.php.html /^
<\/td><\/tr>$/;" a -16 phpunit/coverage/ModuleAnswer.php.html /^
<\/td><\/tr>$/;" a -16 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -16 phpunit/coverage/ModuleResponse.php.html /^
<\/td><\/tr>$/;" a -16 phpunit/coverage/Repo.php.html /^
<\/td><\/tr>$/;" a -16 phpunit/coverage/ResourceDispatcher.php.html /^
<\/td><\/tr>$/;" a -16 phpunit/coverage/autoloader.php.html /^
        <\/span>ini_set<\/span>(<\/span>'display_errors'<\/span>,<\/span>1<\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -16 phpunit/coverage/module/module.php.html /^
<\/td><\/tr>$/;" a -16 phpunit/coverage/repo/token.php.html /^
        *     - check(token, id_personne)<\/span><\/td><\/tr>$/;" a -16 phpunit/coverage/sessionManager.php.html /^
        <\/span>}<\/span><\/td><\/tr>$/;" a -160 phpunit/coverage/Database.php.html /^
            <\/span>}<\/span><\/td><\/tr>$/;" a -160 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>return<\/span> <\/span>new<\/span> <\/span>ModuleRequest<\/span>(<\/span>$json<\/span>[<\/span>'path'<\/span>]<\/span>,<\/span> <\/span>$params<\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -160 phpunit/coverage/Repo.php.html /^
            <\/span>}<\/span><\/td><\/tr>$/;" a -160 phpunit/coverage/ResourceDispatcher.php.html /^
<\/td><\/tr>$/;" a -160 phpunit/coverage/repo/token.php.html /^
                <\/span>':token'<\/span> <\/span>=><\/span> <\/span>$token<\/span>,<\/span><\/td><\/tr>$/;" a -161 phpunit/coverage/Database.php.html /^
<\/td><\/tr>$/;" a -161 phpunit/coverage/ModuleRequest.php.html /^
        <\/span>}<\/span><\/td><\/tr>$/;" a -161 phpunit/coverage/Repo.php.html /^
<\/td><\/tr>$/;" a -161 phpunit/coverage/ResourceDispatcher.php.html /^
            <\/span>return<\/span> <\/span>true<\/span>;<\/span><\/td><\/tr>$/;" a -161 phpunit/coverage/repo/token.php.html /^
                <\/span>':name'<\/span>  <\/span>=><\/span> <\/span>$name<\/span><\/td><\/tr>$/;" a -162 phpunit/coverage/Database.php.html /^
            <\/span>return<\/span> <\/span>$fetchData<\/span>;<\/span><\/td><\/tr>$/;" a -162 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -162 phpunit/coverage/Repo.php.html /^
            <\/span>\/* [3] Verification de l'existence de la methode (conf)<\/span><\/td><\/tr>$/;" a -162 phpunit/coverage/ResourceDispatcher.php.html /^
<\/td><\/tr>$/;" a -162 phpunit/coverage/repo/token.php.html /^
            <\/span>)<\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -163 phpunit/coverage/Database.php.html /^
        <\/span>}<\/span><\/td><\/tr>$/;" a -163 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -163 phpunit/coverage/Repo.php.html /^
            =========================================================*\/<\/span><\/td><\/tr>$/;" a -163 phpunit/coverage/ResourceDispatcher.php.html /^
<\/td><\/tr>$/;" a -163 phpunit/coverage/repo/token.php.html /^
<\/td><\/tr>$/;" a -164 phpunit/coverage/Database.php.html /^
<\/td><\/tr>$/;" a -164 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -164 phpunit/coverage/Repo.php.html /^
            <\/span>if<\/span>(<\/span> <\/span>array_search<\/span>(<\/span>$method<\/span>,<\/span> <\/span>$this<\/span>-><\/span>repositories<\/span>[<\/span>$repository<\/span>]<\/span>)<\/span> <\/span>===<\/span> <\/span>false<\/span> <\/span>)<\/span>{<\/span> <\/span>\/\/ Si la methode n'est pas specifie dans la conf<\/span><\/td><\/tr>$/;" a -164 phpunit/coverage/ResourceDispatcher.php.html /^
        <\/span>}<\/span><\/td><\/tr>$/;" a -164 phpunit/coverage/repo/token.php.html /^
            <\/span>$created_data<\/span> <\/span>=<\/span> <\/span>$created<\/span>-><\/span>fetch<\/span>(<\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -165 phpunit/coverage/Database.php.html /^
<\/td><\/tr>$/;" a -165 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -165 phpunit/coverage/Repo.php.html /^
                <\/span>$this<\/span>-><\/span>error<\/span> <\/span>=<\/span> <\/span>ManagerError<\/span>::<\/span>UnknownMethod<\/span>;<\/span><\/td><\/tr>$/;" a -165 phpunit/coverage/ResourceDispatcher.php.html /^
<\/td><\/tr>$/;" a -165 phpunit/coverage/repo/token.php.html /^
<\/td><\/tr>$/;" a -166 phpunit/coverage/Database.php.html /^
<\/td><\/tr>$/;" a -166 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -166 phpunit/coverage/Repo.php.html /^
                <\/span>return<\/span> <\/span>false<\/span>;<\/span> <\/span>\/\/ On retourne FALSE, si erreur<\/span><\/td><\/tr>$/;" a -166 phpunit/coverage/ResourceDispatcher.php.html /^
<\/td><\/tr>$/;" a -166 phpunit/coverage/repo/token.php.html /^
            <\/span>\/\/ Si pas cree, on retourne une erreur<\/span><\/td><\/tr>$/;" a -167 phpunit/coverage/Database.php.html /^
        <\/span>\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/<\/span><\/td><\/tr>$/;" a -167 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -167 phpunit/coverage/Repo.php.html /^
            <\/span>}<\/span><\/td><\/tr>$/;" a -167 phpunit/coverage/ResourceDispatcher.php.html /^
        <\/span>\/* FONCTION QUI CONSTRUIT LE CHEMIN A PARTIR DU PATH<\/span><\/td><\/tr>$/;" a -167 phpunit/coverage/repo/token.php.html /^
            <\/span>if<\/span>(<\/span> <\/span>$created_data<\/span> <\/span>===<\/span> <\/span>false<\/span> <\/span>)<\/span> <\/span>return<\/span> <\/span>false<\/span>;<\/span><\/td><\/tr>$/;" a -168 phpunit/coverage/Database.php.html /^
        <\/span>\/\/                 _  __ _           _   _                 <\/span><\/td><\/tr>$/;" a -168 phpunit/coverage/ModuleRequest.php.html /^
        <\/span>\/* DESERIALISATION A PARTIR DES DONNEES POST<\/span><\/td><\/tr>$/;" a -168 phpunit/coverage/Repo.php.html /^
            <\/span><\/td><\/tr>$/;" a -168 phpunit/coverage/ResourceDispatcher.php.html /^
        *<\/span><\/td><\/tr>$/;" a -168 phpunit/coverage/repo/token.php.html /^
<\/td><\/tr>$/;" a -169 phpunit/coverage/Database.php.html /^
        <\/span>\/\/ __   _____ _ __(_)\/ _(_) ___ __ _| |_(_) ___  _ __  ___ <\/span><\/td><\/tr>$/;" a -169 phpunit/coverage/ModuleRequest.php.html /^
        *<\/span><\/td><\/tr>$/;" a -169 phpunit/coverage/Repo.php.html /^
<\/td><\/tr>$/;" a -169 phpunit/coverage/ResourceDispatcher.php.html /^
        * @return fileExists<Boolean>                        Retourne si oui ou non le fichier cible existe<\/span><\/td><\/tr>$/;" a -169 phpunit/coverage/repo/token.php.html /^
<\/td><\/tr>$/;" a -17 phpunit/coverage/Database.php.html /^
<\/td><\/tr>$/;" a -17 phpunit/coverage/ManagerError.php.html /^
            <\/span>\/\/ Drapeaux invalides<\/span><\/td><\/tr>$/;" a -17 phpunit/coverage/ModuleAnswer.php.html /^
    <\/span>class<\/span> <\/span>ModuleAnswer<\/span>{<\/span><\/td><\/tr>$/;" a -17 phpunit/coverage/ModuleRequest.php.html /^
        <\/span>\/\/ Contiendra la reponse a la requete<\/span><\/td><\/tr>$/;" a -17 phpunit/coverage/ModuleResponse.php.html /^
    <\/span>class<\/span> <\/span>ModuleResponse<\/span>{<\/span><\/td><\/tr>$/;" a -17 phpunit/coverage/Repo.php.html /^
    <\/span>class<\/span> <\/span>Repo<\/span>{<\/span><\/td><\/tr>$/;" a -17 phpunit/coverage/ResourceDispatcher.php.html /^
        <\/span>\/\/ Attributs prives utiles (initialisation)<\/span><\/td><\/tr>$/;" a -17 phpunit/coverage/autoloader.php.html /^
        <\/span>ini_set<\/span>(<\/span>'display_startup_errors'<\/span>,<\/span>1<\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -17 phpunit/coverage/module/module.php.html /^
<\/td><\/tr>$/;" a -17 phpunit/coverage/repo/token.php.html /^
        *<\/span><\/td><\/tr>$/;" a -17 phpunit/coverage/sessionManager.php.html /^
<\/td><\/tr>$/;" a -170 phpunit/coverage/Database.php.html /^
        <\/span>\/\/ \\ \\ \/ \/ _ \\ '__| | |_| |\/ __\/ _` | __| |\/ _ \\| '_ \\\/ __|<\/span><\/td><\/tr>$/;" a -170 phpunit/coverage/ModuleRequest.php.html /^
        * @post<Array>                                             Tableau des donnes $_POST => @path + @data (opt)<\/span><\/td><\/tr>$/;" a -170 phpunit/coverage/Repo.php.html /^
<\/td><\/tr>$/;" a -170 phpunit/coverage/ResourceDispatcher.php.html /^
        *<\/span><\/td><\/tr>$/;" a -170 phpunit/coverage/repo/token.php.html /^
            <\/span>\/* [4] On retourne l'id du token cree<\/span><\/td><\/tr>$/;" a -171 phpunit/coverage/Database.php.html /^
        <\/span>\/\/  \\ V \/  __\/ |  | |  _| | (_| (_| | |_| | (_) | | | \\__ \\<\/span><\/td><\/tr>$/;" a -171 phpunit/coverage/ModuleRequest.php.html /^
        *<\/span><\/td><\/tr>$/;" a -171 phpunit/coverage/Repo.php.html /^
            <\/span>\/* [4] Enregistrement du chemin et renvoi de SUCCESS<\/span><\/td><\/tr>$/;" a -171 phpunit/coverage/ResourceDispatcher.php.html /^
        * @format<\/span><\/td><\/tr>$/;" a -171 phpunit/coverage/repo/token.php.html /^
            =========================================================*\/<\/span><\/td><\/tr>$/;" a -172 phpunit/coverage/Database.php.html /^
        <\/span>\/\/   \\_\/ \\___|_|  |_|_| |_|\\___\\__,_|\\__|_|\\___\/|_| |_|___\/<\/span><\/td><\/tr>$/;" a -172 phpunit/coverage/ModuleRequest.php.html /^
        * @return instance<ModuleRequest>                         Retourne un objet de type <ModuleRequest><\/span><\/td><\/tr>$/;" a -172 phpunit/coverage/Repo.php.html /^
            =========================================================*\/<\/span><\/td><\/tr>$/;" a -172 phpunit/coverage/ResourceDispatcher.php.html /^
        *<\/span><\/td><\/tr>$/;" a -172 phpunit/coverage/repo/token.php.html /^
            <\/span>return<\/span> <\/span>$created_data<\/span>[<\/span>'id_token'<\/span>]<\/span>;<\/span><\/td><\/tr>$/;" a -173 phpunit/coverage/Database.php.html /^
        <\/span>\/\/<\/span><\/td><\/tr>$/;" a -173 phpunit/coverage/ModuleRequest.php.html /^
        *<\/span><\/td><\/tr>$/;" a -173 phpunit/coverage/Repo.php.html /^
            <\/span>$this<\/span>-><\/span>path<\/span> <\/span>=<\/span> <\/span>array<\/span>(<\/span><\/td><\/tr>$/;" a -173 phpunit/coverage/ResourceDispatcher.php.html /^
        *  f\/extension\/filename\/parent\/:subparent:\/            (:OPT:)<\/span><\/td><\/tr>$/;" a -173 phpunit/coverage/repo/token.php.html /^
<\/td><\/tr>$/;" a -174 phpunit/coverage/Database.php.html /^
        <\/span>\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/<\/span><\/td><\/tr>$/;" a -174 phpunit/coverage/ModuleRequest.php.html /^
        *\/<\/span><\/td><\/tr>$/;" a -174 phpunit/coverage/Repo.php.html /^
                <\/span>'repo'<\/span> <\/span>=><\/span> <\/span>$repository<\/span>,<\/span><\/td><\/tr>$/;" a -174 phpunit/coverage/ResourceDispatcher.php.html /^
        *<\/span><\/td><\/tr>$/;" a -174 phpunit/coverage/repo/token.php.html /^
        <\/span>}<\/span><\/td><\/tr>$/;" a -175 phpunit/coverage/Database.php.html /^
<\/td><\/tr>$/;" a -175 phpunit/coverage/ModuleRequest.php.html /^
        <\/span>public<\/span> <\/span>static<\/span> <\/span>function<\/span> <\/span>fromPost<\/span>(<\/span>$post<\/span>)<\/span>{<\/span><\/td><\/tr>$/;" a -175 phpunit/coverage/Repo.php.html /^
                <\/span>'method'<\/span> <\/span>=><\/span> <\/span>$method<\/span><\/td><\/tr>$/;" a -175 phpunit/coverage/ResourceDispatcher.php.html /^
        *\/<\/span><\/td><\/tr>$/;" a -175 phpunit/coverage/repo/token.php.html /^
<\/td><\/tr>$/;" a -176 phpunit/coverage/Database.php.html /^
<\/td><\/tr>$/;" a -176 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>\/* [0] Verification de l'authentification<\/span><\/td><\/tr>$/;" a -176 phpunit/coverage/Repo.php.html /^
            <\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -176 phpunit/coverage/ResourceDispatcher.php.html /^
        <\/span>private<\/span> <\/span>function<\/span> <\/span>buildPath<\/span>(<\/span>)<\/span>{<\/span><\/td><\/tr>$/;" a -176 phpunit/coverage/repo/token.php.html /^
<\/td><\/tr>$/;" a -177 phpunit/coverage/Database.php.html /^
        <\/span>\/* VERIFICATIONS DES TYPES UTILES GENERIQUES<\/span><\/td><\/tr>$/;" a -177 phpunit/coverage/ModuleRequest.php.html /^
            =========================================================*\/<\/span><\/td><\/tr>$/;" a -177 phpunit/coverage/Repo.php.html /^
<\/td><\/tr>$/;" a -177 phpunit/coverage/ResourceDispatcher.php.html /^
            <\/span>\/* [1] On recupere le HEADER associe a l'extension<\/span><\/td><\/tr>$/;" a -177 phpunit/coverage/repo/token.php.html /^
<\/td><\/tr>$/;" a -178 phpunit/coverage/Database.php.html /^
        *<\/span><\/td><\/tr>$/;" a -178 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>\/\/ On definit le token<\/span><\/td><\/tr>$/;" a -178 phpunit/coverage/Repo.php.html /^
            <\/span>return<\/span> <\/span>true<\/span>;<\/span><\/td><\/tr>$/;" a -178 phpunit/coverage/ResourceDispatcher.php.html /^
            ==========================================================*\/<\/span><\/td><\/tr>$/;" a -178 phpunit/coverage/repo/token.php.html /^
<\/td><\/tr>$/;" a -179 phpunit/coverage/Database.php.html /^
        * @type<String>                                             Type que l'on veut verifier<\/span><\/td><\/tr>$/;" a -179 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>$token<\/span> <\/span>=<\/span> <\/span>isset<\/span>(<\/span>$_SERVER<\/span>[<\/span>'PHP_AUTH_DIGEST'<\/span>]<\/span>)<\/span> <\/span>?<\/span> <\/span>$_SERVER<\/span>[<\/span>'PHP_AUTH_DIGEST'<\/span>]<\/span> <\/span>:<\/span> <\/span>null<\/span>;<\/span><\/td><\/tr>$/;" a -179 phpunit/coverage/Repo.php.html /^
        <\/span>}<\/span><\/td><\/tr>$/;" a -179 phpunit/coverage/ResourceDispatcher.php.html /^
            <\/span>\/\/ Si aucun header pour cet cle, on retourne une erreur<\/span><\/td><\/tr>$/;" a -179 phpunit/coverage/repo/token.php.html /^
        <\/span>\/* SUPPRIME UN TOKEN D'ID SPECIFIE<\/span><\/td><\/tr>$/;" a -18 phpunit/coverage/Database.php.html /^
        <\/span>\/* ATTRIBUTS *\/<\/span><\/td><\/tr>$/;" a -18 phpunit/coverage/ManagerError.php.html /^
            <\/span>const<\/span> <\/span>InvalidFlags<\/span>        <\/span>=<\/span> <\/span>2<\/span>;<\/span><\/td><\/tr>$/;" a -18 phpunit/coverage/ModuleAnswer.php.html /^
<\/td><\/tr>$/;" a -18 phpunit/coverage/ModuleRequest.php.html /^
        <\/span>public<\/span> <\/span>$answer<\/span>;<\/span><\/td><\/tr>$/;" a -18 phpunit/coverage/ModuleResponse.php.html /^
<\/td><\/tr>$/;" a -18 phpunit/coverage/Repo.php.html /^
<\/td><\/tr>$/;" a -18 phpunit/coverage/ResourceDispatcher.php.html /^
        <\/span>private<\/span> <\/span>$header<\/span>;<\/span><\/td><\/tr>$/;" a -18 phpunit/coverage/autoloader.php.html /^
        <\/span>error_reporting<\/span>(<\/span>-<\/span>1<\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -18 phpunit/coverage/module/module.php.html /^
        <\/span>public<\/span> <\/span>static<\/span> <\/span>function<\/span> <\/span>phpunitParams<\/span>(<\/span>$params<\/span>)<\/span>{<\/span><\/td><\/tr>$/;" a -18 phpunit/coverage/repo/token.php.html /^
        * 4. Gestion de creation<\/span><\/td><\/tr>$/;" a -18 phpunit/coverage/sessionManager.php.html /^
<\/td><\/tr>$/;" a -180 phpunit/coverage/Database.php.html /^
        * @value<mixed*>                                         Valeur a verifier<\/span><\/td><\/tr>$/;" a -180 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -180 phpunit/coverage/Repo.php.html /^
<\/td><\/tr>$/;" a -180 phpunit/coverage/ResourceDispatcher.php.html /^
            <\/span>if<\/span>(<\/span> <\/span>!<\/span>isset<\/span>(<\/span>self<\/span>::<\/span>$supported_extensions<\/span>[<\/span>$this<\/span>-><\/span>flags<\/span>[<\/span>'extension'<\/span>]<\/span>]<\/span>)<\/span> <\/span>)<\/span> <\/span>return<\/span> <\/span>false<\/span>;<\/span><\/td><\/tr>$/;" a -180 phpunit/coverage/repo/token.php.html /^
        *<\/span><\/td><\/tr>$/;" a -181 phpunit/coverage/Database.php.html /^
        *<\/span><\/td><\/tr>$/;" a -181 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -181 phpunit/coverage/Repo.php.html /^
<\/td><\/tr>$/;" a -181 phpunit/coverage/ResourceDispatcher.php.html /^
<\/td><\/tr>$/;" a -181 phpunit/coverage/repo/token.php.html /^
        * @id_token<int>                                     UID du token en question<\/span><\/td><\/tr>$/;" a -182 phpunit/coverage/Database.php.html /^
        * @return match<Boolean>                                 Retourne si oui ou non la valeur @value est du bon type @type<\/span><\/td><\/tr>$/;" a -182 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>\/* [1] On verifie que le @path est renseigne<\/span><\/td><\/tr>$/;" a -182 phpunit/coverage/Repo.php.html /^
<\/td><\/tr>$/;" a -182 phpunit/coverage/ResourceDispatcher.php.html /^
            <\/span>\/\/ On recupere le header associe<\/span><\/td><\/tr>$/;" a -182 phpunit/coverage/repo/token.php.html /^
        *<\/span><\/td><\/tr>$/;" a -183 phpunit/coverage/Database.php.html /^
        *<\/span><\/td><\/tr>$/;" a -183 phpunit/coverage/ModuleRequest.php.html /^
            =========================================================*\/<\/span><\/td><\/tr>$/;" a -183 phpunit/coverage/Repo.php.html /^
<\/td><\/tr>$/;" a -183 phpunit/coverage/ResourceDispatcher.php.html /^
            <\/span>$header<\/span> <\/span>=<\/span> <\/span>self<\/span>::<\/span>$supported_extensions<\/span>[<\/span>$this<\/span>-><\/span>flags<\/span>[<\/span>'extension'<\/span>]<\/span>]<\/span>;<\/span><\/td><\/tr>$/;" a -183 phpunit/coverage/repo/token.php.html /^
        * @return status<bool>                                 VRAI si le token est bien cree sinon FALSE<\/span><\/td><\/tr>$/;" a -184 phpunit/coverage/Database.php.html /^
        *\/<\/span><\/td><\/tr>$/;" a -184 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>if<\/span>(<\/span> <\/span>!<\/span>isset<\/span>(<\/span>$post<\/span>[<\/span>'path'<\/span>]<\/span>)<\/span> <\/span>)<\/span><\/td><\/tr>$/;" a -184 phpunit/coverage/Repo.php.html /^
<\/td><\/tr>$/;" a -184 phpunit/coverage/ResourceDispatcher.php.html /^
<\/td><\/tr>$/;" a -184 phpunit/coverage/repo/token.php.html /^
        *<\/span><\/td><\/tr>$/;" a -185 phpunit/coverage/Database.php.html /^
        <\/span>public<\/span> <\/span>static<\/span> <\/span>function<\/span> <\/span>check<\/span>(<\/span>$type<\/span>,<\/span> <\/span>$value<\/span>)<\/span>{<\/span><\/td><\/tr>$/;" a -185 phpunit/coverage/ModuleRequest.php.html /^
                <\/span>return<\/span> <\/span>new<\/span> <\/span>ModuleRequest<\/span>(<\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -185 phpunit/coverage/Repo.php.html /^
        <\/span>\/* RENVOI LE CHEMIN D'AMORCAGE DE LA METHODE<\/span><\/td><\/tr>$/;" a -185 phpunit/coverage/ResourceDispatcher.php.html /^
<\/td><\/tr>$/;" a -185 phpunit/coverage/repo/token.php.html /^
        *\/<\/span><\/td><\/tr>$/;" a -186 phpunit/coverage/Database.php.html /^
            <\/span>$checker<\/span> <\/span>=<\/span> <\/span>true<\/span>;<\/span><\/td><\/tr>$/;" a -186 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -186 phpunit/coverage/Repo.php.html /^
        *<\/span><\/td><\/tr>$/;" a -186 phpunit/coverage/ResourceDispatcher.php.html /^
<\/td><\/tr>$/;" a -186 phpunit/coverage/repo/token.php.html /^
        <\/span>public<\/span> <\/span>static<\/span> <\/span>function<\/span> <\/span>remove<\/span>(<\/span>$id_token<\/span>)<\/span>{<\/span><\/td><\/tr>$/;" a -187 phpunit/coverage/Database.php.html /^
<\/td><\/tr>$/;" a -187 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>\/* [2] On verifie que @data est renseigne<\/span><\/td><\/tr>$/;" a -187 phpunit/coverage/Repo.php.html /^
        * @return path<Array>                                     Retourne le chemin d'amorcage de la requete<\/span><\/td><\/tr>$/;" a -187 phpunit/coverage/ResourceDispatcher.php.html /^
<\/td><\/tr>$/;" a -187 phpunit/coverage/repo/token.php.html /^
            <\/span>\/* [0] Verification des INPUT<\/span><\/td><\/tr>$/;" a -188 phpunit/coverage/Database.php.html /^
            <\/span>\/* [0] On verifie que $value n'est pas nul<\/span><\/td><\/tr>$/;" a -188 phpunit/coverage/ModuleRequest.php.html /^
            =========================================================*\/<\/span><\/td><\/tr>$/;" a -188 phpunit/coverage/Repo.php.html /^
        *<\/span><\/td><\/tr>$/;" a -188 phpunit/coverage/ResourceDispatcher.php.html /^
<\/td><\/tr>$/;" a -188 phpunit/coverage/repo/token.php.html /^
            =========================================================*\/<\/span><\/td><\/tr>$/;" a -189 phpunit/coverage/Database.php.html /^
            =========================================================*\/<\/span><\/td><\/tr>$/;" a -189 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>\/\/ Si variable n'existe pas, on cree un tableau vide<\/span><\/td><\/tr>$/;" a -189 phpunit/coverage/Repo.php.html /^
        *\/<\/span><\/td><\/tr>$/;" a -189 phpunit/coverage/ResourceDispatcher.php.html /^
            <\/span>\/* [2] On recupere le chemin associe au parent<\/span><\/td><\/tr>$/;" a -189 phpunit/coverage/repo/token.php.html /^
            <\/span>if<\/span>(<\/span> <\/span>!<\/span>Database<\/span>::<\/span>check<\/span>(<\/span>'id'<\/span>,<\/span> <\/span>$id_token<\/span>)<\/span> <\/span>)<\/span> <\/span>return<\/span> <\/span>false<\/span>;<\/span><\/td><\/tr>$/;" a -19 phpunit/coverage/Database.php.html /^
        <\/span>private<\/span> <\/span>$host<\/span>;<\/span><\/td><\/tr>$/;" a -19 phpunit/coverage/ManagerError.php.html /^
<\/td><\/tr>$/;" a -19 phpunit/coverage/ModuleAnswer.php.html /^
        <\/span>\/\/ Attributs prives utiles (initialisation)<\/span><\/td><\/tr>$/;" a -19 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -19 phpunit/coverage/ModuleResponse.php.html /^
        <\/span>\/\/ Attributs prives utiles (initialisation)<\/span><\/td><\/tr>$/;" a -19 phpunit/coverage/Repo.php.html /^
        <\/span>\/\/ Constantes<\/span><\/td><\/tr>$/;" a -19 phpunit/coverage/ResourceDispatcher.php.html /^
        <\/span>private<\/span> <\/span>$path<\/span>;<\/span><\/td><\/tr>$/;" a -19 phpunit/coverage/autoloader.php.html /^
    <\/span>}<\/span><\/td><\/tr>$/;" a -19 phpunit/coverage/module/module.php.html /^
            <\/span>extract<\/span>(<\/span>$params<\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -19 phpunit/coverage/repo/token.php.html /^
        *     - generate(name, duration)<\/span><\/td><\/tr>$/;" a -19 phpunit/coverage/sessionManager.php.html /^
        <\/span>\/*****************************\/<\/span><\/td><\/tr>$/;" a -190 phpunit/coverage/Database.php.html /^
            <\/span>if<\/span>(<\/span> <\/span>is_null<\/span>(<\/span>$value<\/span>)<\/span> <\/span>)<\/span> <\/span>return<\/span> <\/span>false<\/span>;<\/span><\/td><\/tr>$/;" a -190 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>$params<\/span> <\/span>=<\/span> <\/span>$post<\/span>;<\/span><\/td><\/tr>$/;" a -190 phpunit/coverage/Repo.php.html /^
        <\/span>private<\/span> <\/span>function<\/span> <\/span>getFunctionCaller<\/span>(<\/span>)<\/span>{<\/span><\/td><\/tr>$/;" a -190 phpunit/coverage/ResourceDispatcher.php.html /^
            ==========================================================*\/<\/span><\/td><\/tr>$/;" a -190 phpunit/coverage/repo/token.php.html /^
<\/td><\/tr>$/;" a -191 phpunit/coverage/Database.php.html /^
<\/td><\/tr>$/;" a -191 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -191 phpunit/coverage/Repo.php.html /^
            <\/span>return<\/span> <\/span>array<\/span>(<\/span> <\/span>'\\\\manager\\\\repo\\\\'<\/span>.<\/span>$this<\/span>-><\/span>path<\/span>[<\/span>'repo'<\/span>]<\/span>,<\/span> <\/span>$this<\/span>-><\/span>path<\/span>[<\/span>'method'<\/span>]<\/span> <\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -191 phpunit/coverage/ResourceDispatcher.php.html /^
            <\/span>\/\/ Si aucun dossier pour cet indice, on retourne une erreur<\/span><\/td><\/tr>$/;" a -191 phpunit/coverage/repo/token.php.html /^
<\/td><\/tr>$/;" a -192 phpunit/coverage/Database.php.html /^
<\/td><\/tr>$/;" a -192 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>\/\/ On retire le @path de @params<\/span><\/td><\/tr>$/;" a -192 phpunit/coverage/Repo.php.html /^
        <\/span>}<\/span><\/td><\/tr>$/;" a -192 phpunit/coverage/ResourceDispatcher.php.html /^
            <\/span>if<\/span>(<\/span> <\/span>!<\/span>isset<\/span>(<\/span>self<\/span>::<\/span>$supported_parents<\/span>[<\/span>$this<\/span>-><\/span>flags<\/span>[<\/span>'parent'<\/span>]<\/span>]<\/span>)<\/span> <\/span>)<\/span> <\/span>return<\/span> <\/span>false<\/span>;<\/span><\/td><\/tr>$/;" a -192 phpunit/coverage/repo/token.php.html /^
            <\/span>\/* [1] On verifie l'existance du token<\/span><\/td><\/tr>$/;" a -193 phpunit/coverage/Database.php.html /^
<\/td><\/tr>$/;" a -193 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>unset<\/span>(<\/span>$params<\/span>[<\/span>'path'<\/span>]<\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -193 phpunit/coverage/Repo.php.html /^
<\/td><\/tr>$/;" a -193 phpunit/coverage/ResourceDispatcher.php.html /^
<\/td><\/tr>$/;" a -193 phpunit/coverage/repo/token.php.html /^
            =========================================================*\/<\/span><\/td><\/tr>$/;" a -194 phpunit/coverage/Database.php.html /^
            <\/span>\/* [1] Si de type VARCHAR(min, max)<\/span><\/td><\/tr>$/;" a -194 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -194 phpunit/coverage/Repo.php.html /^
<\/td><\/tr>$/;" a -194 phpunit/coverage/ResourceDispatcher.php.html /^
            <\/span>\/\/ On recupere le dossier associe<\/span><\/td><\/tr>$/;" a -194 phpunit/coverage/repo/token.php.html /^
            <\/span>if<\/span>(<\/span> <\/span>!<\/span>self<\/span>::<\/span>getById<\/span>(<\/span>$id_token<\/span>)<\/span> <\/span>)<\/span> <\/span>return<\/span> <\/span>false<\/span>;<\/span><\/td><\/tr>$/;" a -195 phpunit/coverage/Database.php.html /^
            =========================================================*\/<\/span><\/td><\/tr>$/;" a -195 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -195 phpunit/coverage/Repo.php.html /^
    <\/span>}<\/span><\/td><\/tr>$/;" a -195 phpunit/coverage/ResourceDispatcher.php.html /^
            <\/span>$parent<\/span> <\/span>=<\/span> <\/span>self<\/span>::<\/span>$supported_parents<\/span>[<\/span>$this<\/span>-><\/span>flags<\/span>[<\/span>'parent'<\/span>]<\/span>]<\/span>;<\/span><\/td><\/tr>$/;" a -195 phpunit/coverage/repo/token.php.html /^
<\/td><\/tr>$/;" a -196 phpunit/coverage/Database.php.html /^
            <\/span>if<\/span>(<\/span> <\/span>preg_match<\/span>(<\/span>'\/^varchar\\((\\d+), ?(\\d+)\\)$\/'<\/span>,<\/span> <\/span>$type<\/span>,<\/span> <\/span>$match<\/span>)<\/span> <\/span>)<\/span>{<\/span><\/td><\/tr>$/;" a -196 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>\/* [3] On retourne une instance de <ModuleRequest><\/span><\/td><\/tr>$/;" a -196 phpunit/coverage/Repo.php.html /^
<\/td><\/tr>$/;" a -196 phpunit/coverage/ResourceDispatcher.php.html /^
<\/td><\/tr>$/;" a -196 phpunit/coverage/repo/token.php.html /^
<\/td><\/tr>$/;" a -197 phpunit/coverage/Database.php.html /^
                <\/span>\/\/ On recupere la taille min<\/span><\/td><\/tr>$/;" a -197 phpunit/coverage/ModuleRequest.php.html /^
            =========================================================*\/<\/span><\/td><\/tr>$/;" a -197 phpunit/coverage/Repo.php.html /^
?><\/span><\/td><\/tr>$/;" a -197 phpunit/coverage/ResourceDispatcher.php.html /^
<\/td><\/tr>$/;" a -197 phpunit/coverage/repo/token.php.html /^
            <\/span>\/* [2] Suppression du token<\/span><\/td><\/tr>$/;" a -198 phpunit/coverage/Database.php.html /^
                <\/span>$min<\/span> <\/span>=<\/span> <\/span>(int)<\/span> <\/span>$match<\/span>[<\/span>1<\/span>]<\/span>;<\/span><\/td><\/tr>$/;" a -198 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>\/\/ On cree notre requete avec le token<\/span><\/td><\/tr>$/;" a -198 phpunit/coverage/ResourceDispatcher.php.html /^
            <\/span>\/* [3] Gestion du sous-parent optionnel<\/span><\/td><\/tr>$/;" a -198 phpunit/coverage/repo/token.php.html /^
            =========================================================*\/<\/span><\/td><\/tr>$/;" a -199 phpunit/coverage/Database.php.html /^
                <\/span>\/\/ On recupere la taille max<\/span><\/td><\/tr>$/;" a -199 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>return<\/span> <\/span>new<\/span> <\/span>ModuleRequest<\/span>(<\/span>$post<\/span>[<\/span>'path'<\/span>]<\/span>,<\/span> <\/span>$params<\/span>,<\/span> <\/span>$token<\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -199 phpunit/coverage/ResourceDispatcher.php.html /^
            ==========================================================*\/<\/span><\/td><\/tr>$/;" a -199 phpunit/coverage/repo/token.php.html /^
            <\/span>$remove<\/span> <\/span>=<\/span> <\/span>Database<\/span>::<\/span>getPDO<\/span>(<\/span>)<\/span>-><\/span>prepare<\/span>(<\/span>"DELETE FROM api_token<\/span><\/td><\/tr>$/;" a -2 phpunit/coverage/Database.php.html /^
    <\/span><\/td><\/tr>$/;" a -2 phpunit/coverage/ManagerError.php.html /^
<\/td><\/tr>$/;" a -2 phpunit/coverage/ModuleAnswer.php.html /^
<\/td><\/tr>$/;" a -2 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -2 phpunit/coverage/ModuleResponse.php.html /^
<\/td><\/tr>$/;" a -2 phpunit/coverage/Repo.php.html /^
<\/td><\/tr>$/;" a -2 phpunit/coverage/ResourceDispatcher.php.html /^
<\/td><\/tr>$/;" a -2 phpunit/coverage/autoloader.php.html /^
<\/td><\/tr>$/;" a -2 phpunit/coverage/module/module.php.html /^
<\/td><\/tr>$/;" a -2 phpunit/coverage/repo/token.php.html /^
<\/td><\/tr>$/;" a -2 phpunit/coverage/sessionManager.php.html /^
<\/td><\/tr>$/;" a -20 phpunit/coverage/Database.php.html /^
        <\/span>private<\/span> <\/span>$dbname<\/span>;<\/span><\/td><\/tr>$/;" a -20 phpunit/coverage/ManagerError.php.html /^
            <\/span>\/\/ Fichier inexistant<\/span><\/td><\/tr>$/;" a -20 phpunit/coverage/ModuleAnswer.php.html /^
        <\/span>private<\/span> <\/span>$data<\/span>;<\/span><\/td><\/tr>$/;" a -20 phpunit/coverage/ModuleRequest.php.html /^
        <\/span>\/\/ Contiendra l'etat de la requete<\/span><\/td><\/tr>$/;" a -20 phpunit/coverage/ModuleResponse.php.html /^
        <\/span>private<\/span> <\/span>$data<\/span>;<\/span><\/td><\/tr>$/;" a -20 phpunit/coverage/Repo.php.html /^
        <\/span>public<\/span> <\/span>static<\/span> <\/span>$config_path<\/span> <\/span>=<\/span> <\/span>'f\/json\/repositories\/conf'<\/span>;<\/span><\/td><\/tr>$/;" a -20 phpunit/coverage/ResourceDispatcher.php.html /^
        <\/span>private<\/span> <\/span>$flags<\/span>;<\/span><\/td><\/tr>$/;" a -20 phpunit/coverage/autoloader.php.html /^
<\/td><\/tr>$/;" a -20 phpunit/coverage/module/module.php.html /^
<\/td><\/tr>$/;" a -20 phpunit/coverage/repo/token.php.html /^
        *<\/span><\/td><\/tr>$/;" a -20 phpunit/coverage/sessionManager.php.html /^
        <\/span>\/* INITIALISATION DE SESSION *\/<\/span><\/td><\/tr>$/;" a -200 phpunit/coverage/Database.php.html /^
                <\/span>$max<\/span> <\/span>=<\/span> <\/span>(int)<\/span> <\/span>$match<\/span>[<\/span>2<\/span>]<\/span>;<\/span><\/td><\/tr>$/;" a -200 phpunit/coverage/ModuleRequest.php.html /^
        <\/span>}<\/span><\/td><\/tr>$/;" a -200 phpunit/coverage/ResourceDispatcher.php.html /^
            <\/span>$opt_subParent<\/span> <\/span>=<\/span> <\/span>(<\/span>isset<\/span>(<\/span>$this<\/span>-><\/span>flags<\/span>[<\/span>'subparent'<\/span>]<\/span>)<\/span>)<\/span> <\/span>?<\/span> <\/span>$this<\/span>-><\/span>flags<\/span>[<\/span>'subparent'<\/span>]<\/span>.<\/span>'\/'<\/span> <\/span>:<\/span> <\/span>''<\/span>;<\/span><\/td><\/tr>$/;" a -200 phpunit/coverage/repo/token.php.html /^
                WHERE id_token = :id_token"<\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -201 phpunit/coverage/Database.php.html /^
<\/td><\/tr>$/;" a -201 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -201 phpunit/coverage/ResourceDispatcher.php.html /^
<\/td><\/tr>$/;" a -201 phpunit/coverage/repo/token.php.html /^
            <\/span>$remove<\/span>-><\/span>execute<\/span>(<\/span>array<\/span>(<\/span> <\/span>':id_token'<\/span> <\/span>=><\/span> <\/span>$id_token<\/span> <\/span>)<\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -202 phpunit/coverage/Database.php.html /^
                <\/span>\/\/ On effectue la verification<\/span><\/td><\/tr>$/;" a -202 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -202 phpunit/coverage/ResourceDispatcher.php.html /^
<\/td><\/tr>$/;" a -202 phpunit/coverage/repo/token.php.html /^
<\/td><\/tr>$/;" a -203 phpunit/coverage/Database.php.html /^
                <\/span>return<\/span> <\/span>$checker<\/span> <\/span>&&<\/span> <\/span>is_string<\/span>(<\/span>$value<\/span>)<\/span> <\/span>&&<\/span> <\/span>strlen<\/span>(<\/span>$value<\/span>)<\/span> <\/span><=<\/span> <\/span>$max<\/span> <\/span>&&<\/span> <\/span>strlen<\/span>(<\/span>$value<\/span>)<\/span> <\/span>>=<\/span> <\/span>$min<\/span>;<\/span><\/td><\/tr>$/;" a -203 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -203 phpunit/coverage/ResourceDispatcher.php.html /^
            <\/span>\/* [4] Gestion du color optionnel<\/span><\/td><\/tr>$/;" a -203 phpunit/coverage/repo/token.php.html /^
<\/td><\/tr>$/;" a -204 phpunit/coverage/Database.php.html /^
            <\/span>}<\/span><\/td><\/tr>$/;" a -204 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -204 phpunit/coverage/ResourceDispatcher.php.html /^
            =========================================================*\/<\/span><\/td><\/tr>$/;" a -204 phpunit/coverage/repo/token.php.html /^
            <\/span>\/* [3] On retourne VRAI si le token est bien supprime<\/span><\/td><\/tr>$/;" a -205 phpunit/coverage/Database.php.html /^
<\/td><\/tr>$/;" a -205 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -205 phpunit/coverage/ResourceDispatcher.php.html /^
            <\/span>$this<\/span>-><\/span>stylesheet<\/span> <\/span>=<\/span> <\/span>""<\/span>;<\/span><\/td><\/tr>$/;" a -205 phpunit/coverage/repo/token.php.html /^
            =========================================================*\/<\/span><\/td><\/tr>$/;" a -206 phpunit/coverage/Database.php.html /^
<\/td><\/tr>$/;" a -206 phpunit/coverage/ModuleRequest.php.html /^
        <\/span>\/* VERIFICATION DU FORMAT ET DE LA COHERENCE DU CHEMIN SPECIFIE<\/span><\/td><\/tr>$/;" a -206 phpunit/coverage/ResourceDispatcher.php.html /^
<\/td><\/tr>$/;" a -206 phpunit/coverage/repo/token.php.html /^
            <\/span>return<\/span> <\/span>self<\/span>::<\/span>getById<\/span>(<\/span>$id_token<\/span>)<\/span> <\/span>===<\/span> <\/span>false<\/span>;<\/span><\/td><\/tr>$/;" a -207 phpunit/coverage/Database.php.html /^
            <\/span>\/* [2] Si de type ARRAY(type_elements)<\/span><\/td><\/tr>$/;" a -207 phpunit/coverage/ModuleRequest.php.html /^
        *<\/span><\/td><\/tr>$/;" a -207 phpunit/coverage/ResourceDispatcher.php.html /^
            <\/span>\/\/ si le color est defini<\/span><\/td><\/tr>$/;" a -207 phpunit/coverage/repo/token.php.html /^
        <\/span>}<\/span><\/td><\/tr>$/;" a -208 phpunit/coverage/Database.php.html /^
            =========================================================*\/<\/span><\/td><\/tr>$/;" a -208 phpunit/coverage/ModuleRequest.php.html /^
        * @path<String>                                     String correspondant au chemin de delegation ("module\/methode")<\/span><\/td><\/tr>$/;" a -208 phpunit/coverage/ResourceDispatcher.php.html /^
            <\/span>if<\/span>(<\/span> <\/span>isset<\/span>(<\/span>$this<\/span>-><\/span>flags<\/span>[<\/span>'color'<\/span>]<\/span>)<\/span> <\/span>)<\/span>{<\/span><\/td><\/tr>$/;" a -208 phpunit/coverage/repo/token.php.html /^
<\/td><\/tr>$/;" a -209 phpunit/coverage/Database.php.html /^
            <\/span>if<\/span>(<\/span> <\/span>preg_match<\/span>(<\/span>'\/^array<(.+)>$\/'<\/span>,<\/span> <\/span>$type<\/span>,<\/span> <\/span>$match<\/span>)<\/span> <\/span>)<\/span>{<\/span><\/td><\/tr>$/;" a -209 phpunit/coverage/ModuleRequest.php.html /^
        *<\/span><\/td><\/tr>$/;" a -209 phpunit/coverage/ResourceDispatcher.php.html /^
                <\/span>$this<\/span>-><\/span>stylesheet<\/span> <\/span>=<\/span> <\/span>"\\n<style type='text\/css'>\\n"<\/span>;<\/span><\/td><\/tr>$/;" a -209 phpunit/coverage/repo/token.php.html /^
    <\/span>}<\/span><\/td><\/tr>$/;" a -21 phpunit/coverage/Database.php.html /^
        <\/span>private<\/span> <\/span>$username<\/span>;<\/span><\/td><\/tr>$/;" a -21 phpunit/coverage/ManagerError.php.html /^
            <\/span>const<\/span> <\/span>UnreachableResource<\/span> <\/span>=<\/span> <\/span>3<\/span>;<\/span><\/td><\/tr>$/;" a -21 phpunit/coverage/ModuleAnswer.php.html /^
        <\/span>public<\/span> <\/span>$error<\/span>;<\/span><\/td><\/tr>$/;" a -21 phpunit/coverage/ModuleRequest.php.html /^
        <\/span>public<\/span> <\/span>$error<\/span>;<\/span><\/td><\/tr>$/;" a -21 phpunit/coverage/ModuleResponse.php.html /^
        <\/span>public<\/span> <\/span>$error<\/span>;<\/span><\/td><\/tr>$/;" a -21 phpunit/coverage/Repo.php.html /^
<\/td><\/tr>$/;" a -21 phpunit/coverage/ResourceDispatcher.php.html /^
        <\/span>private<\/span> <\/span>$stylesheet<\/span>;<\/span><\/td><\/tr>$/;" a -21 phpunit/coverage/autoloader.php.html /^
<\/td><\/tr>$/;" a -21 phpunit/coverage/module/module.php.html /^
            <\/span>return<\/span> <\/span>array<\/span>(<\/span><\/td><\/tr>$/;" a -21 phpunit/coverage/repo/token.php.html /^
        * 4. Gestion de creation<\/span><\/td><\/tr>$/;" a -21 phpunit/coverage/sessionManager.php.html /^
        <\/span>\/*****************************\/<\/span><\/td><\/tr>$/;" a -210 phpunit/coverage/Database.php.html /^
                <\/span>\/\/ Si c'est pas un tableau on retourne une erreur<\/span><\/td><\/tr>$/;" a -210 phpunit/coverage/ModuleRequest.php.html /^
        * @return validity<Boolean>                         Retourne si oui ou non l'objet est correct<\/span><\/td><\/tr>$/;" a -210 phpunit/coverage/ResourceDispatcher.php.html /^
                    <\/span>$this<\/span>-><\/span>stylesheet<\/span> <\/span>.=<\/span> <\/span>"\\t#stylisable{\\n"<\/span>;<\/span><\/td><\/tr>$/;" a -210 phpunit/coverage/repo/token.php.html /^
<\/td><\/tr>$/;" a -211 phpunit/coverage/Database.php.html /^
                <\/span>if<\/span>(<\/span> <\/span>!<\/span>is_array<\/span>(<\/span>$value<\/span>)<\/span> <\/span>)<\/span><\/td><\/tr>$/;" a -211 phpunit/coverage/ModuleRequest.php.html /^
        *<\/span><\/td><\/tr>$/;" a -211 phpunit/coverage/ResourceDispatcher.php.html /^
                        <\/span>$this<\/span>-><\/span>stylesheet<\/span> <\/span>.=<\/span> <\/span>"\\t\\tfill: "<\/span>.<\/span>$this<\/span>-><\/span>flags<\/span>[<\/span>'color'<\/span>]<\/span>.<\/span>" !important;\\n"<\/span>;<\/span><\/td><\/tr>$/;" a -211 phpunit/coverage/repo/token.php.html /^
<\/td><\/tr>$/;" a -212 phpunit/coverage/Database.php.html /^
                    <\/span>return<\/span> <\/span>false<\/span>;<\/span><\/td><\/tr>$/;" a -212 phpunit/coverage/ModuleRequest.php.html /^
        *\/<\/span><\/td><\/tr>$/;" a -212 phpunit/coverage/ResourceDispatcher.php.html /^
                        <\/span>$this<\/span>-><\/span>stylesheet<\/span> <\/span>.=<\/span> <\/span>"\\t\\tfill-opacity: 1 !important;\\n"<\/span>;<\/span><\/td><\/tr>$/;" a -212 phpunit/coverage/repo/token.php.html /^
?><\/span><\/td><\/tr>$/;" a -213 phpunit/coverage/Database.php.html /^
<\/td><\/tr>$/;" a -213 phpunit/coverage/ModuleRequest.php.html /^
        <\/span>private<\/span> <\/span>function<\/span> <\/span>checkPath<\/span>(<\/span>$path<\/span>)<\/span>{<\/span><\/td><\/tr>$/;" a -213 phpunit/coverage/ResourceDispatcher.php.html /^
                    <\/span>$this<\/span>-><\/span>stylesheet<\/span> <\/span>.=<\/span> <\/span>"\\t}\\n"<\/span>;<\/span><\/td><\/tr>$/;" a -214 phpunit/coverage/Database.php.html /^
                <\/span>$elements_type<\/span> <\/span>=<\/span> <\/span>$match<\/span>[<\/span>1<\/span>]<\/span>;<\/span><\/td><\/tr>$/;" a -214 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>\/* [1] Verification format general<\/span><\/td><\/tr>$/;" a -214 phpunit/coverage/ResourceDispatcher.php.html /^
                <\/span>$this<\/span>-><\/span>stylesheet<\/span> <\/span>.=<\/span> <\/span>"<\/style>"<\/span>;<\/span><\/td><\/tr>$/;" a -215 phpunit/coverage/Database.php.html /^
<\/td><\/tr>$/;" a -215 phpunit/coverage/ModuleRequest.php.html /^
            =========================================================*\/<\/span><\/td><\/tr>$/;" a -215 phpunit/coverage/ResourceDispatcher.php.html /^
            <\/span>}<\/span><\/td><\/tr>$/;" a -216 phpunit/coverage/Database.php.html /^
                <\/span>\/\/ On verifie le type pour chaque element<\/span><\/td><\/tr>$/;" a -216 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>if<\/span>(<\/span> <\/span>!<\/span>preg_match<\/span>(<\/span>'#^([\\w_-]+)\/([\\w_-]+)$#i'<\/span>,<\/span> <\/span>$path<\/span>,<\/span> <\/span>$matches<\/span>)<\/span> <\/span>)<\/span>{<\/span> <\/span>\/\/ Si mauvais format<\/span><\/td><\/tr>$/;" a -216 phpunit/coverage/ResourceDispatcher.php.html /^
            <\/span><\/td><\/tr>$/;" a -217 phpunit/coverage/Database.php.html /^
                <\/span>foreach<\/span>(<\/span>$value<\/span> <\/span>as<\/span> <\/span>$element<\/span>)<\/span><\/td><\/tr>$/;" a -217 phpunit/coverage/ModuleRequest.php.html /^
                <\/span>$this<\/span>-><\/span>error<\/span> <\/span>=<\/span> <\/span>ManagerError<\/span>::<\/span>WrongPathModule<\/span>;<\/span><\/td><\/tr>$/;" a -217 phpunit/coverage/ResourceDispatcher.php.html /^
<\/td><\/tr>$/;" a -218 phpunit/coverage/Database.php.html /^
                    <\/span>\/\/ Si erreur dans au moins 1 element, on retourne que c'est incorrect<\/span><\/td><\/tr>$/;" a -218 phpunit/coverage/ModuleRequest.php.html /^
                <\/span>return<\/span> <\/span>false<\/span>;<\/span><\/td><\/tr>$/;" a -218 phpunit/coverage/ResourceDispatcher.php.html /^
<\/td><\/tr>$/;" a -219 phpunit/coverage/Database.php.html /^
                    <\/span>if<\/span>(<\/span> <\/span>!<\/span>self<\/span>::<\/span>check<\/span>(<\/span>$elements_type<\/span>,<\/span> <\/span>$element<\/span>)<\/span> <\/span>)<\/span><\/td><\/tr>$/;" a -219 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>}<\/span><\/td><\/tr>$/;" a -219 phpunit/coverage/ResourceDispatcher.php.html /^
            <\/span>\/* [5] On definit le header<\/span><\/td><\/tr>$/;" a -22 phpunit/coverage/Database.php.html /^
        <\/span>private<\/span> <\/span>$password<\/span>;<\/span><\/td><\/tr>$/;" a -22 phpunit/coverage/ManagerError.php.html /^
<\/td><\/tr>$/;" a -22 phpunit/coverage/ModuleAnswer.php.html /^
<\/td><\/tr>$/;" a -22 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -22 phpunit/coverage/ModuleResponse.php.html /^
<\/td><\/tr>$/;" a -22 phpunit/coverage/Repo.php.html /^
<\/td><\/tr>$/;" a -22 phpunit/coverage/ResourceDispatcher.php.html /^
        <\/span>public<\/span> <\/span>$error<\/span>;<\/span><\/td><\/tr>$/;" a -22 phpunit/coverage/autoloader.php.html /^
<\/td><\/tr>$/;" a -22 phpunit/coverage/module/module.php.html /^
                <\/span>'ModuleError'<\/span> <\/span>=><\/span> <\/span>ManagerError<\/span>::<\/span>Success<\/span>,<\/span><\/td><\/tr>$/;" a -22 phpunit/coverage/repo/token.php.html /^
        *     - create(pseudo, nom, prenom, facebook, telephone)<\/span><\/td><\/tr>$/;" a -22 phpunit/coverage/sessionManager.php.html /^
        <\/span>private<\/span> <\/span>static<\/span> <\/span>function<\/span> <\/span>reset_session<\/span>(<\/span>$session_id<\/span>=<\/span>null<\/span>)<\/span>{<\/span><\/td><\/tr>$/;" a -220 phpunit/coverage/Database.php.html /^
                        <\/span>return<\/span> <\/span>false<\/span>;<\/span><\/td><\/tr>$/;" a -220 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -220 phpunit/coverage/ResourceDispatcher.php.html /^
            ==========================================================*\/<\/span><\/td><\/tr>$/;" a -221 phpunit/coverage/Database.php.html /^
<\/td><\/tr>$/;" a -221 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>\/\/ On recupere les donnes de la regex<\/span><\/td><\/tr>$/;" a -221 phpunit/coverage/ResourceDispatcher.php.html /^
            <\/span>$this<\/span>-><\/span>header<\/span> <\/span>=<\/span> <\/span>$header<\/span>;<\/span><\/td><\/tr>$/;" a -222 phpunit/coverage/Database.php.html /^
                <\/span>\/\/ Si aucune erreur, on retourne que tout est bon<\/span><\/td><\/tr>$/;" a -222 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>$module<\/span> <\/span>=<\/span> <\/span>$matches<\/span>[<\/span>1<\/span>]<\/span>;<\/span><\/td><\/tr>$/;" a -222 phpunit/coverage/ResourceDispatcher.php.html /^
<\/td><\/tr>$/;" a -223 phpunit/coverage/Database.php.html /^
                <\/span>return<\/span> <\/span>true<\/span>;<\/span><\/td><\/tr>$/;" a -223 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>$method<\/span> <\/span>=<\/span> <\/span>$matches<\/span>[<\/span>2<\/span>]<\/span>;<\/span><\/td><\/tr>$/;" a -223 phpunit/coverage/ResourceDispatcher.php.html /^
            <\/span>\/* [6] On construit le chemin <\/span><\/td><\/tr>$/;" a -224 phpunit/coverage/Database.php.html /^
            <\/span>}<\/span><\/td><\/tr>$/;" a -224 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -224 phpunit/coverage/ResourceDispatcher.php.html /^
            ==========================================================*\/<\/span><\/td><\/tr>$/;" a -225 phpunit/coverage/Database.php.html /^
<\/td><\/tr>$/;" a -225 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -225 phpunit/coverage/ResourceDispatcher.php.html /^
            <\/span>$this<\/span>-><\/span>path<\/span> <\/span>=<\/span> <\/span>__ROOT__<\/span>.<\/span>$parent<\/span>.<\/span>'\/'<\/span>.<\/span>$opt_subParent<\/span>.<\/span>$this<\/span>-><\/span>flags<\/span>[<\/span>'filename'<\/span>]<\/span>.<\/span>'.'<\/span>.<\/span>$this<\/span>-><\/span>flags<\/span>[<\/span>'extension'<\/span>]<\/span>;<\/span><\/td><\/tr>$/;" a -226 phpunit/coverage/Database.php.html /^
            <\/span><\/td><\/tr>$/;" a -226 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>\/* [2] Verification de l'existence du module (conf)<\/span><\/td><\/tr>$/;" a -226 phpunit/coverage/ResourceDispatcher.php.html /^
<\/td><\/tr>$/;" a -227 phpunit/coverage/Database.php.html /^
            <\/span>\/* [n] Sinon, tous les autres types definis<\/span><\/td><\/tr>$/;" a -227 phpunit/coverage/ModuleRequest.php.html /^
            =========================================================*\/<\/span><\/td><\/tr>$/;" a -227 phpunit/coverage/ResourceDispatcher.php.html /^
            <\/span>\/* [7] On retourne si le fichier existe ou non<\/span><\/td><\/tr>$/;" a -228 phpunit/coverage/Database.php.html /^
            =========================================================*\/<\/span>            <\/span><\/td><\/tr>$/;" a -228 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>if<\/span>(<\/span> <\/span>!<\/span>array_key_exists<\/span>(<\/span>$module<\/span>,<\/span> <\/span>$this<\/span>-><\/span>modules<\/span>)<\/span> <\/span>)<\/span>{<\/span> <\/span>\/\/ Si le module n'est pas specifie dans la conf<\/span><\/td><\/tr>$/;" a -228 phpunit/coverage/ResourceDispatcher.php.html /^
            ==========================================================*\/<\/span><\/td><\/tr>$/;" a -229 phpunit/coverage/Database.php.html /^
            <\/span>switch<\/span>(<\/span>$type<\/span>)<\/span>{<\/span><\/td><\/tr>$/;" a -229 phpunit/coverage/ModuleRequest.php.html /^
                <\/span>$this<\/span>-><\/span>error<\/span> <\/span>=<\/span> <\/span>ManagerError<\/span>::<\/span>UnknownModule<\/span>;<\/span><\/td><\/tr>$/;" a -229 phpunit/coverage/ResourceDispatcher.php.html /^
            <\/span>return<\/span> <\/span>@<\/span>file_get_contents<\/span>(<\/span> <\/span>$this<\/span>-><\/span>path<\/span> <\/span>)<\/span> <\/span>!=<\/span> <\/span>false<\/span>;<\/span><\/td><\/tr>$/;" a -23 phpunit/coverage/Database.php.html /^
<\/td><\/tr>$/;" a -23 phpunit/coverage/ManagerError.php.html /^
<\/td><\/tr>$/;" a -23 phpunit/coverage/ModuleAnswer.php.html /^
<\/td><\/tr>$/;" a -23 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -23 phpunit/coverage/ModuleResponse.php.html /^
<\/td><\/tr>$/;" a -23 phpunit/coverage/Repo.php.html /^
        <\/span>\/\/ Attributs prives utiles (initialisation)<\/span><\/td><\/tr>$/;" a -23 phpunit/coverage/ResourceDispatcher.php.html /^
<\/td><\/tr>$/;" a -23 phpunit/coverage/autoloader.php.html /^
    <\/span><\/td><\/tr>$/;" a -23 phpunit/coverage/module/module.php.html /^
                <\/span>'p1'<\/span>          <\/span>=><\/span> <\/span>$p1<\/span>,<\/span><\/td><\/tr>$/;" a -23 phpunit/coverage/repo/token.php.html /^
        *<\/span><\/td><\/tr>$/;" a -23 phpunit/coverage/sessionManager.php.html /^
<\/td><\/tr>$/;" a -230 phpunit/coverage/Database.php.html /^
                <\/span>\/\/ Entier positif (id dans BDD)<\/span><\/td><\/tr>$/;" a -230 phpunit/coverage/ModuleRequest.php.html /^
                <\/span>return<\/span> <\/span>false<\/span>;<\/span> <\/span>\/\/ On retourne FALSE, si erreur<\/span><\/td><\/tr>$/;" a -230 phpunit/coverage/ResourceDispatcher.php.html /^
<\/td><\/tr>$/;" a -231 phpunit/coverage/Database.php.html /^
                <\/span>case<\/span> <\/span>'id'<\/span>:<\/span><\/td><\/tr>$/;" a -231 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>}<\/span><\/td><\/tr>$/;" a -231 phpunit/coverage/ResourceDispatcher.php.html /^
        <\/span>}<\/span><\/td><\/tr>$/;" a -232 phpunit/coverage/Database.php.html /^
                    <\/span>return<\/span> <\/span>$checker<\/span> <\/span>&&<\/span> <\/span>is_numeric<\/span>(<\/span>$value<\/span>)<\/span> <\/span>&&<\/span> <\/span>$value<\/span> <\/span><=<\/span> <\/span>2147483647<\/span> <\/span>&&<\/span> <\/span>$value<\/span> <\/span>>=<\/span> <\/span>0<\/span>;<\/span><\/td><\/tr>$/;" a -232 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -232 phpunit/coverage/ResourceDispatcher.php.html /^
<\/td><\/tr>$/;" a -233 phpunit/coverage/Database.php.html /^
                    <\/span>break<\/span>;<\/span><\/td><\/tr>$/;" a -233 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>\/* [3] Verification de l'existence de la methode (conf)<\/span><\/td><\/tr>$/;" a -233 phpunit/coverage/ResourceDispatcher.php.html /^
<\/td><\/tr>$/;" a -234 phpunit/coverage/Database.php.html /^
<\/td><\/tr>$/;" a -234 phpunit/coverage/ModuleRequest.php.html /^
            =========================================================*\/<\/span><\/td><\/tr>$/;" a -234 phpunit/coverage/ResourceDispatcher.php.html /^
<\/td><\/tr>$/;" a -235 phpunit/coverage/Database.php.html /^
                <\/span>\/\/ String quelconque (peut etre vide)<\/span><\/td><\/tr>$/;" a -235 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>if<\/span>(<\/span> <\/span>array_key_exists<\/span>(<\/span>$method<\/span>,<\/span> <\/span>$this<\/span>-><\/span>modules<\/span>[<\/span>$module<\/span>]<\/span>)<\/span> <\/span>===<\/span> <\/span>false<\/span> <\/span>)<\/span>{<\/span> <\/span>\/\/ Si la methode n'est pas specifie dans la conf<\/span><\/td><\/tr>$/;" a -235 phpunit/coverage/ResourceDispatcher.php.html /^
<\/td><\/tr>$/;" a -236 phpunit/coverage/Database.php.html /^
                <\/span>case<\/span> <\/span>'text'<\/span>:<\/span><\/td><\/tr>$/;" a -236 phpunit/coverage/ModuleRequest.php.html /^
                <\/span>$this<\/span>-><\/span>error<\/span> <\/span>=<\/span> <\/span>ManagerError<\/span>::<\/span>UnknownMethod<\/span>;<\/span><\/td><\/tr>$/;" a -236 phpunit/coverage/ResourceDispatcher.php.html /^
        <\/span>\/* FUNCTION QUI AFFICHE LA RESSOURCE EN QUESTION<\/span><\/td><\/tr>$/;" a -237 phpunit/coverage/Database.php.html /^
                    <\/span>return<\/span> <\/span>$checker<\/span> <\/span>&&<\/span> <\/span>is_string<\/span>(<\/span>$value<\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -237 phpunit/coverage/ModuleRequest.php.html /^
                <\/span>return<\/span> <\/span>false<\/span>;<\/span> <\/span>\/\/ On retourne FALSE, si erreur<\/span><\/td><\/tr>$/;" a -237 phpunit/coverage/ResourceDispatcher.php.html /^
        *<\/span><\/td><\/tr>$/;" a -238 phpunit/coverage/Database.php.html /^
<\/td><\/tr>$/;" a -238 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>}<\/span><\/td><\/tr>$/;" a -238 phpunit/coverage/ResourceDispatcher.php.html /^
        *\/<\/span><\/td><\/tr>$/;" a -239 phpunit/coverage/Database.php.html /^
                <\/span>\/\/ Adresse mail (255 caracteres max)<\/span><\/td><\/tr>$/;" a -239 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -239 phpunit/coverage/ResourceDispatcher.php.html /^
        <\/span>public<\/span> <\/span>function<\/span> <\/span>view<\/span>(<\/span>)<\/span>{<\/span><\/td><\/tr>$/;" a -24 phpunit/coverage/Database.php.html /^
        <\/span>public<\/span> <\/span>static<\/span> <\/span>$error<\/span>;<\/span><\/td><\/tr>$/;" a -24 phpunit/coverage/ManagerError.php.html /^
        <\/span>\/* ModuleRequest *\/<\/span><\/td><\/tr>$/;" a -24 phpunit/coverage/ModuleAnswer.php.html /^
<\/td><\/tr>$/;" a -24 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -24 phpunit/coverage/ModuleResponse.php.html /^
<\/td><\/tr>$/;" a -24 phpunit/coverage/Repo.php.html /^
        <\/span>private<\/span> <\/span>$path<\/span>;<\/span><\/td><\/tr>$/;" a -24 phpunit/coverage/ResourceDispatcher.php.html /^
<\/td><\/tr>$/;" a -24 phpunit/coverage/autoloader.php.html /^
    <\/span>\/* AUTOLOADER<\/span><\/td><\/tr>$/;" a -24 phpunit/coverage/module/module.php.html /^
                <\/span>'p2'<\/span>          <\/span>=><\/span> <\/span>$p2<\/span><\/td><\/tr>$/;" a -24 phpunit/coverage/repo/token.php.html /^
        *<\/span><\/td><\/tr>$/;" a -24 phpunit/coverage/sessionManager.php.html /^
            <\/span>\/\/ On ferme la session<\/span><\/td><\/tr>$/;" a -240 phpunit/coverage/Database.php.html /^
                <\/span>case<\/span> <\/span>'mail'<\/span>:<\/span><\/td><\/tr>$/;" a -240 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -240 phpunit/coverage/ResourceDispatcher.php.html /^
            <\/span>\/\/ S'il y a eu une erreur en amont<\/span><\/td><\/tr>$/;" a -241 phpunit/coverage/Database.php.html /^
                    <\/span>return<\/span> <\/span>$checker<\/span> <\/span>&&<\/span> <\/span>is_string<\/span>(<\/span>$value<\/span>)<\/span> <\/span>&&<\/span> <\/span>strlen<\/span>(<\/span>$value<\/span>)<\/span> <\/span><=<\/span> <\/span>50<\/span> <\/span>&&<\/span> <\/span>preg_match<\/span>(<\/span>'\/^[\\w\\.-]+@[\\w\\.-]+\\.[a-z]{2,4}$\/i'<\/span>,<\/span> <\/span>$value<\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -241 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -241 phpunit/coverage/ResourceDispatcher.php.html /^
            <\/span>if<\/span>(<\/span> <\/span>$this<\/span>-><\/span>error<\/span> <\/span>!=<\/span> <\/span>ManagerError<\/span>::<\/span>Success<\/span> <\/span>)<\/span><\/td><\/tr>$/;" a -242 phpunit/coverage/Database.php.html /^
                    <\/span>break<\/span>;<\/span><\/td><\/tr>$/;" a -242 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>\/* [4] Enregistrement du chemin et renvoi de SUCCESS<\/span><\/td><\/tr>$/;" a -242 phpunit/coverage/ResourceDispatcher.php.html /^
                <\/span>return<\/span> <\/span>false<\/span>;<\/span> <\/span>\/\/ on retourne faux<\/span><\/td><\/tr>$/;" a -243 phpunit/coverage/Database.php.html /^
                <\/span><\/td><\/tr>$/;" a -243 phpunit/coverage/ModuleRequest.php.html /^
            =========================================================*\/<\/span><\/td><\/tr>$/;" a -243 phpunit/coverage/ResourceDispatcher.php.html /^
<\/td><\/tr>$/;" a -244 phpunit/coverage/Database.php.html /^
                <\/span>\/\/ Hash sha1<\/span><\/td><\/tr>$/;" a -244 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>$this<\/span>-><\/span>path<\/span> <\/span>=<\/span> <\/span>array<\/span>(<\/span><\/td><\/tr>$/;" a -244 phpunit/coverage/ResourceDispatcher.php.html /^
            <\/span>\/\/ On definit le header<\/span><\/td><\/tr>$/;" a -245 phpunit/coverage/Database.php.html /^
                <\/span>case<\/span> <\/span>'sha1'<\/span>:<\/span><\/td><\/tr>$/;" a -245 phpunit/coverage/ModuleRequest.php.html /^
                <\/span>'module'<\/span> <\/span>=><\/span> <\/span>$module<\/span>,<\/span><\/td><\/tr>$/;" a -245 phpunit/coverage/ResourceDispatcher.php.html /^
            <\/span>header<\/span>(<\/span>'Content-Type: '<\/span>.<\/span>$this<\/span>-><\/span>header<\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -246 phpunit/coverage/Database.php.html /^
                    <\/span>return<\/span> <\/span>$checker<\/span> <\/span>&&<\/span> <\/span>is_string<\/span>(<\/span>$value<\/span>)<\/span> <\/span>&&<\/span> <\/span>preg_match<\/span>(<\/span>'\/^[\\da-f]{40}$\/i'<\/span>,<\/span> <\/span>$value<\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -246 phpunit/coverage/ModuleRequest.php.html /^
                <\/span>'method'<\/span> <\/span>=><\/span> <\/span>$method<\/span><\/td><\/tr>$/;" a -246 phpunit/coverage/ResourceDispatcher.php.html /^
<\/td><\/tr>$/;" a -247 phpunit/coverage/Database.php.html /^
                    <\/span>break<\/span>;<\/span><\/td><\/tr>$/;" a -247 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -247 phpunit/coverage/ResourceDispatcher.php.html /^
            <\/span>\/\/ On recupere le contenu<\/span><\/td><\/tr>$/;" a -248 phpunit/coverage/Database.php.html /^
                <\/span><\/td><\/tr>$/;" a -248 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -248 phpunit/coverage/ResourceDispatcher.php.html /^
            <\/span>$content<\/span> <\/span>=<\/span> <\/span>file_get_contents<\/span>(<\/span>$this<\/span>-><\/span>path<\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -249 phpunit/coverage/Database.php.html /^
                <\/span>default<\/span>:<\/span><\/td><\/tr>$/;" a -249 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>return<\/span> <\/span>true<\/span>;<\/span><\/td><\/tr>$/;" a -249 phpunit/coverage/ResourceDispatcher.php.html /^
<\/td><\/tr>$/;" a -25 phpunit/coverage/Database.php.html /^
<\/td><\/tr>$/;" a -25 phpunit/coverage/ManagerError.php.html /^
<\/td><\/tr>$/;" a -25 phpunit/coverage/ModuleAnswer.php.html /^
<\/td><\/tr>$/;" a -25 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -25 phpunit/coverage/ModuleResponse.php.html /^
<\/td><\/tr>$/;" a -25 phpunit/coverage/Repo.php.html /^
        <\/span>private<\/span> <\/span>$data<\/span>;<\/span><\/td><\/tr>$/;" a -25 phpunit/coverage/ResourceDispatcher.php.html /^
        <\/span>\/* CONSTRUCTEUR & AMORCAGE DU DISPATCHER<\/span><\/td><\/tr>$/;" a -25 phpunit/coverage/autoloader.php.html /^
    *<\/span><\/td><\/tr>$/;" a -25 phpunit/coverage/module/module.php.html /^
            <\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -25 phpunit/coverage/repo/token.php.html /^
        *\/<\/span><\/td><\/tr>$/;" a -25 phpunit/coverage/sessionManager.php.html /^
            <\/span>session_destroy<\/span>(<\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -250 phpunit/coverage/Database.php.html /^
                    <\/span>return<\/span> <\/span>false<\/span>;<\/span><\/td><\/tr>$/;" a -250 phpunit/coverage/ModuleRequest.php.html /^
        <\/span>}<\/span><\/td><\/tr>$/;" a -250 phpunit/coverage/ResourceDispatcher.php.html /^
            <\/span>\/\/ On affiche tout<\/span><\/td><\/tr>$/;" a -251 phpunit/coverage/Database.php.html /^
                    <\/span>break<\/span>;<\/span><\/td><\/tr>$/;" a -251 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -251 phpunit/coverage/ResourceDispatcher.php.html /^
            <\/span>echo<\/span> <\/span>str_replace<\/span>(<\/span> <\/span>'<\/svg>'<\/span>,<\/span> <\/span>$this<\/span>-><\/span>stylesheet<\/span>.<\/span>'<\/svg>'<\/span>,<\/span> <\/span>$content<\/span> <\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -252 phpunit/coverage/Database.php.html /^
            <\/span>}<\/span><\/td><\/tr>$/;" a -252 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -252 phpunit/coverage/ResourceDispatcher.php.html /^
        <\/span>}<\/span><\/td><\/tr>$/;" a -253 phpunit/coverage/Database.php.html /^
<\/td><\/tr>$/;" a -253 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -253 phpunit/coverage/ResourceDispatcher.php.html /^
<\/td><\/tr>$/;" a -254 phpunit/coverage/Database.php.html /^
            <\/span>return<\/span> <\/span>$checker<\/span>;<\/span><\/td><\/tr>$/;" a -254 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -254 phpunit/coverage/ResourceDispatcher.php.html /^
<\/td><\/tr>$/;" a -255 phpunit/coverage/Database.php.html /^
<\/td><\/tr>$/;" a -255 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -255 phpunit/coverage/ResourceDispatcher.php.html /^
<\/td><\/tr>$/;" a -256 phpunit/coverage/Database.php.html /^
        <\/span>}<\/span><\/td><\/tr>$/;" a -256 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -256 phpunit/coverage/ResourceDispatcher.php.html /^
        <\/span>\/* FUNCTION QUI RETOURNE LE CONTENU DE LA RESSOURCE EN QUESTION<\/span><\/td><\/tr>$/;" a -257 phpunit/coverage/Database.php.html /^
<\/td><\/tr>$/;" a -257 phpunit/coverage/ModuleRequest.php.html /^
        <\/span>\/* RETOURNE SI ON A LA PERMISSION D'EXECUTER CETTE METHODE<\/span><\/td><\/tr>$/;" a -257 phpunit/coverage/ResourceDispatcher.php.html /^
        *<\/span><\/td><\/tr>$/;" a -258 phpunit/coverage/Database.php.html /^
<\/td><\/tr>$/;" a -258 phpunit/coverage/ModuleRequest.php.html /^
        *<\/span><\/td><\/tr>$/;" a -258 phpunit/coverage/ResourceDispatcher.php.html /^
        *\/<\/span><\/td><\/tr>$/;" a -259 phpunit/coverage/Database.php.html /^
        <\/span>\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/<\/span><\/td><\/tr>$/;" a -259 phpunit/coverage/ModuleRequest.php.html /^
        * @token<String>                                        Token d'acces a l'API (OPTIONNEL)<\/span><\/td><\/tr>$/;" a -259 phpunit/coverage/ResourceDispatcher.php.html /^
        <\/span>public<\/span> <\/span>function<\/span> <\/span>getContent<\/span>(<\/span>)<\/span>{<\/span><\/td><\/tr>$/;" a -26 phpunit/coverage/Database.php.html /^
<\/td><\/tr>$/;" a -26 phpunit/coverage/ManagerError.php.html /^
            <\/span>\/\/ Le @path n'est pas renseigne<\/span><\/td><\/tr>$/;" a -26 phpunit/coverage/ModuleAnswer.php.html /^
<\/td><\/tr>$/;" a -26 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -26 phpunit/coverage/ModuleResponse.php.html /^
<\/td><\/tr>$/;" a -26 phpunit/coverage/Repo.php.html /^
        <\/span>private<\/span> <\/span>$repositories<\/span>;<\/span><\/td><\/tr>$/;" a -26 phpunit/coverage/ResourceDispatcher.php.html /^
        *<\/span><\/td><\/tr>$/;" a -26 phpunit/coverage/autoloader.php.html /^
    * @className<String>                                     Nom de la classe appelee<\/span><\/td><\/tr>$/;" a -26 phpunit/coverage/module/module.php.html /^
        <\/span>}<\/span><\/td><\/tr>$/;" a -26 phpunit/coverage/repo/token.php.html /^
<\/td><\/tr>$/;" a -26 phpunit/coverage/sessionManager.php.html /^
<\/td><\/tr>$/;" a -260 phpunit/coverage/Database.php.html /^
        <\/span>\/\/      _       _            <\/span><\/td><\/tr>$/;" a -260 phpunit/coverage/ModuleRequest.php.html /^
        *<\/span><\/td><\/tr>$/;" a -260 phpunit/coverage/ResourceDispatcher.php.html /^
            <\/span>\/\/ S'il y a eu une erreur en amont<\/span><\/td><\/tr>$/;" a -261 phpunit/coverage/Database.php.html /^
        <\/span>\/\/   __| | __ _| |_ ___  ___ <\/span><\/td><\/tr>$/;" a -261 phpunit/coverage/ModuleRequest.php.html /^
        * @return permission<bool>                                 Retourne si on a les droits ou pas pour executer cette methode<\/span><\/td><\/tr>$/;" a -261 phpunit/coverage/ResourceDispatcher.php.html /^
            <\/span>if<\/span>(<\/span> <\/span>$this<\/span>-><\/span>error<\/span> <\/span>!=<\/span> <\/span>ManagerError<\/span>::<\/span>Success<\/span> <\/span>)<\/span><\/td><\/tr>$/;" a -262 phpunit/coverage/Database.php.html /^
        <\/span>\/\/  \/ _` |\/ _` | __\/ _ \\\/ __|<\/span><\/td><\/tr>$/;" a -262 phpunit/coverage/ModuleRequest.php.html /^
        *<\/span><\/td><\/tr>$/;" a -262 phpunit/coverage/ResourceDispatcher.php.html /^
                <\/span>return<\/span> <\/span>false<\/span>;<\/span> <\/span>\/\/ on retourne faux<\/span><\/td><\/tr>$/;" a -263 phpunit/coverage/Database.php.html /^
        <\/span>\/\/ | (_| | (_| | ||  __\/\\__ \\<\/span><\/td><\/tr>$/;" a -263 phpunit/coverage/ModuleRequest.php.html /^
        *\/<\/span><\/td><\/tr>$/;" a -263 phpunit/coverage/ResourceDispatcher.php.html /^
<\/td><\/tr>$/;" a -264 phpunit/coverage/Database.php.html /^
        <\/span>\/\/  \\__,_|\\__,_|\\__\\___||___\/<\/span><\/td><\/tr>$/;" a -264 phpunit/coverage/ModuleRequest.php.html /^
        <\/span>private<\/span> <\/span>function<\/span> <\/span>checkPermission<\/span>(<\/span>$token<\/span>=<\/span>null<\/span>)<\/span>{<\/span><\/td><\/tr>$/;" a -264 phpunit/coverage/ResourceDispatcher.php.html /^
<\/td><\/tr>$/;" a -265 phpunit/coverage/Database.php.html /^
        <\/span>\/\/<\/span><\/td><\/tr>$/;" a -265 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>\/* [1] On recupere les informations utiles<\/span><\/td><\/tr>$/;" a -265 phpunit/coverage/ResourceDispatcher.php.html /^
            <\/span>\/\/ On inclut le contenu<\/span><\/td><\/tr>$/;" a -266 phpunit/coverage/Database.php.html /^
        <\/span>\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/<\/span><\/td><\/tr>$/;" a -266 phpunit/coverage/ModuleRequest.php.html /^
            =========================================================*\/<\/span><\/td><\/tr>$/;" a -266 phpunit/coverage/ResourceDispatcher.php.html /^
            <\/span>$content<\/span> <\/span>=<\/span> <\/span>file_get_contents<\/span>(<\/span>$this<\/span>-><\/span>path<\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -267 phpunit/coverage/Database.php.html /^
        <\/span>\/\/ 1) Convertis une date en en francais explicite<\/span><\/td><\/tr>$/;" a -267 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>\/\/ On recupere le nom de la methode<\/span><\/td><\/tr>$/;" a -267 phpunit/coverage/ResourceDispatcher.php.html /^
<\/td><\/tr>$/;" a -268 phpunit/coverage/Database.php.html /^
        <\/span>public<\/span> <\/span>static<\/span> <\/span>function<\/span> <\/span>frDate<\/span>(<\/span>$date<\/span>)<\/span>{<\/span><\/td><\/tr>$/;" a -268 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>$method<\/span> <\/span>=<\/span> <\/span>$this<\/span>-><\/span>modules<\/span>[<\/span>$this<\/span>-><\/span>path<\/span>[<\/span>'module'<\/span>]<\/span>]<\/span>[<\/span>$this<\/span>-><\/span>path<\/span>[<\/span>'method'<\/span>]<\/span>]<\/span>;<\/span><\/td><\/tr>$/;" a -268 phpunit/coverage/ResourceDispatcher.php.html /^
            <\/span>\/\/ On retourne tout<\/span><\/td><\/tr>$/;" a -269 phpunit/coverage/Database.php.html /^
            <\/span>\/* [1] On definit les traductions<\/span><\/td><\/tr>$/;" a -269 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -269 phpunit/coverage/ResourceDispatcher.php.html /^
            <\/span>return<\/span> <\/span>str_replace<\/span>(<\/span> <\/span>'<\/svg>'<\/span>,<\/span> <\/span>$this<\/span>-><\/span>stylesheet<\/span>.<\/span>'<\/svg>'<\/span>,<\/span> <\/span>$content<\/span> <\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -27 phpunit/coverage/Database.php.html /^
        <\/span>public<\/span> <\/span>function<\/span> <\/span>__construct<\/span>(<\/span>$host<\/span>,<\/span> <\/span>$dbname<\/span>,<\/span> <\/span>$username<\/span>,<\/span> <\/span>$password<\/span>)<\/span>{<\/span><\/td><\/tr>$/;" a -27 phpunit/coverage/ManagerError.php.html /^
            <\/span>const<\/span> <\/span>MissingPath<\/span>         <\/span>=<\/span> <\/span>4<\/span>;<\/span><\/td><\/tr>$/;" a -27 phpunit/coverage/ModuleAnswer.php.html /^
<\/td><\/tr>$/;" a -27 phpunit/coverage/ModuleRequest.php.html /^
        <\/span>\/* CONSTRUCTEUR D'UNE REQUETE DE MODULE<\/span><\/td><\/tr>$/;" a -27 phpunit/coverage/ModuleResponse.php.html /^
<\/td><\/tr>$/;" a -27 phpunit/coverage/Repo.php.html /^
<\/td><\/tr>$/;" a -27 phpunit/coverage/ResourceDispatcher.php.html /^
        * @url<String>                L'url courante<\/span><\/td><\/tr>$/;" a -27 phpunit/coverage/autoloader.php.html /^
    *<\/span><\/td><\/tr>$/;" a -27 phpunit/coverage/module/module.php.html /^
<\/td><\/tr>$/;" a -27 phpunit/coverage/repo/token.php.html /^
<\/td><\/tr>$/;" a -27 phpunit/coverage/sessionManager.php.html /^
            <\/span>\/\/ On definit l'id session si donne en argument<\/span><\/td><\/tr>$/;" a -270 phpunit/coverage/Database.php.html /^
            =========================================================*\/<\/span><\/td><\/tr>$/;" a -270 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>\/\/ Si aucune permission n'est definie<\/span><\/td><\/tr>$/;" a -270 phpunit/coverage/ResourceDispatcher.php.html /^
        <\/span>}<\/span><\/td><\/tr>$/;" a -271 phpunit/coverage/Database.php.html /^
            <\/span>\/\/ Jours de la semaine<\/span><\/td><\/tr>$/;" a -271 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>if<\/span>(<\/span> <\/span>!<\/span>isset<\/span>(<\/span>$method<\/span>[<\/span>'permissions'<\/span>]<\/span>)<\/span> <\/span>)<\/span> <\/span>return<\/span> <\/span>true<\/span>;<\/span><\/td><\/tr>$/;" a -271 phpunit/coverage/ResourceDispatcher.php.html /^
<\/td><\/tr>$/;" a -272 phpunit/coverage/Database.php.html /^
            <\/span>$days<\/span>   <\/span>=<\/span> <\/span>array<\/span>(<\/span>"Lundi"<\/span>,<\/span> <\/span>"Mardi"<\/span>,<\/span> <\/span>"Mercredi"<\/span>,<\/span> <\/span>"Jeudi"<\/span>,<\/span> <\/span>"Vendredi"<\/span>,<\/span> <\/span>"Samedi"<\/span>,<\/span> <\/span>"Dimanche"<\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -272 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -272 phpunit/coverage/ResourceDispatcher.php.html /^
<\/td><\/tr>$/;" a -273 phpunit/coverage/Database.php.html /^
            <\/span>\/\/ Mois de l'annee<\/span><\/td><\/tr>$/;" a -273 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>\/* [2] Gestion si un @token est defini<\/span><\/td><\/tr>$/;" a -273 phpunit/coverage/ResourceDispatcher.php.html /^
<\/td><\/tr>$/;" a -274 phpunit/coverage/Database.php.html /^
            <\/span>$months<\/span> <\/span>=<\/span> <\/span>array<\/span>(<\/span>"Janvier"<\/span>,<\/span> <\/span>"Février"<\/span>,<\/span> <\/span>"Mars"<\/span>,<\/span> <\/span>"Avril"<\/span>,<\/span> <\/span>"Mai"<\/span>,<\/span> <\/span>"Juin"<\/span>,<\/span> <\/span>"Juillet"<\/span>,<\/span> <\/span>"Août"<\/span>,<\/span> <\/span>"Septembre"<\/span>,<\/span> <\/span>"Octobre"<\/span>,<\/span> <\/span>"Novembre"<\/span>,<\/span> <\/span>"Décembre"<\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -274 phpunit/coverage/ModuleRequest.php.html /^
            =========================================================*\/<\/span><\/td><\/tr>$/;" a -274 phpunit/coverage/ResourceDispatcher.php.html /^
    <\/span>}<\/span><\/td><\/tr>$/;" a -275 phpunit/coverage/Database.php.html /^
<\/td><\/tr>$/;" a -275 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>if<\/span>(<\/span> <\/span>Database<\/span>::<\/span>check<\/span>(<\/span>'sha1'<\/span>,<\/span> <\/span>$token<\/span>)<\/span> <\/span>)<\/span>{<\/span><\/td><\/tr>$/;" a -275 phpunit/coverage/ResourceDispatcher.php.html /^
<\/td><\/tr>$/;" a -276 phpunit/coverage/Database.php.html /^
            <\/span>\/* [2] On recupere le timestamp et les indices<\/span><\/td><\/tr>$/;" a -276 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -276 phpunit/coverage/ResourceDispatcher.php.html /^
?><\/span><\/td><\/tr>$/;" a -277 phpunit/coverage/Database.php.html /^
            =========================================================*\/<\/span><\/td><\/tr>$/;" a -277 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -278 phpunit/coverage/Database.php.html /^
            <\/span>$time<\/span> <\/span>=<\/span> <\/span>strtotime<\/span>(<\/span>$date<\/span>)<\/span>;<\/span> <\/span>\/\/ timestamp<\/span><\/td><\/tr>$/;" a -278 phpunit/coverage/ModuleRequest.php.html /^
                <\/span>\/* (1) On verifie que le token est valide *\/<\/span><\/td><\/tr>$/;" a -279 phpunit/coverage/Database.php.html /^
            <\/span>$daynum<\/span> <\/span>=<\/span> <\/span>intval<\/span>(<\/span> <\/span>date<\/span>(<\/span>'N'<\/span>,<\/span> <\/span>$time<\/span>)<\/span>-<\/span>1<\/span> <\/span>)<\/span>;<\/span> <\/span>\/\/ jour dans la semaine<\/span><\/td><\/tr>$/;" a -279 phpunit/coverage/ModuleRequest.php.html /^
                <\/span>$checkToken<\/span> <\/span>=<\/span> <\/span>new<\/span> <\/span>Repo<\/span>(<\/span>'token\/check'<\/span>,<\/span> <\/span>array<\/span>(<\/span>$token<\/span>)<\/span> <\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -28 phpunit/coverage/Database.php.html /^
            <\/span>$this<\/span>-><\/span>host<\/span>     <\/span>=<\/span> <\/span>$host<\/span>;<\/span><\/td><\/tr>$/;" a -28 phpunit/coverage/ManagerError.php.html /^
<\/td><\/tr>$/;" a -28 phpunit/coverage/ModuleAnswer.php.html /^
        <\/span>\/* CONSTRUCTEUR D'UNE REPONSE DE MODULE<\/span><\/td><\/tr>$/;" a -28 phpunit/coverage/ModuleRequest.php.html /^
        *<\/span><\/td><\/tr>$/;" a -28 phpunit/coverage/ModuleResponse.php.html /^
        <\/span>\/* CONSTRUCTEUR D'UNE REPONSE DE MODULE<\/span><\/td><\/tr>$/;" a -28 phpunit/coverage/Repo.php.html /^
        <\/span>\/\/ Contiendra la reponse a la requete<\/span><\/td><\/tr>$/;" a -28 phpunit/coverage/ResourceDispatcher.php.html /^
        * @view<Boolean>            Si VRAI, retourne header+contenu, sinon cree juste l'objet<\/span><\/td><\/tr>$/;" a -28 phpunit/coverage/autoloader.php.html /^
    *\/<\/span><\/td><\/tr>$/;" a -28 phpunit/coverage/module/module.php.html /^
<\/td><\/tr>$/;" a -28 phpunit/coverage/repo/token.php.html /^
        <\/span>\/* RETOURNE LA LISTE DE TOUS LES TOKENS<\/span><\/td><\/tr>$/;" a -28 phpunit/coverage/sessionManager.php.html /^
            <\/span>if<\/span>(<\/span> <\/span>$session_id<\/span> <\/span>!=<\/span> <\/span>null<\/span> <\/span>)<\/span><\/td><\/tr>$/;" a -280 phpunit/coverage/Database.php.html /^
            <\/span>$monthnum<\/span> <\/span>=<\/span> <\/span>intval<\/span>(<\/span> <\/span>date<\/span>(<\/span>'n'<\/span>,<\/span> <\/span>$time<\/span>)<\/span>-<\/span>1<\/span> <\/span>)<\/span>;<\/span> <\/span>\/\/ numero du mois dans l'annee<\/span><\/td><\/tr>$/;" a -280 phpunit/coverage/ModuleRequest.php.html /^
                <\/span>$token_permissions<\/span> <\/span>=<\/span> <\/span>$checkToken<\/span>-><\/span>answer<\/span>(<\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -281 phpunit/coverage/Database.php.html /^
<\/td><\/tr>$/;" a -281 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -282 phpunit/coverage/Database.php.html /^
<\/td><\/tr>$/;" a -282 phpunit/coverage/ModuleRequest.php.html /^
                <\/span>\/\/ Si le token est invalide, on retourne une erreur -> FAUX<\/span><\/td><\/tr>$/;" a -283 phpunit/coverage/Database.php.html /^
            <\/span>\/* [3] On recupere les infos independemment<\/span><\/td><\/tr>$/;" a -283 phpunit/coverage/ModuleRequest.php.html /^
                <\/span>if<\/span>(<\/span> <\/span>$token_permissions<\/span> <\/span>===<\/span> <\/span>false<\/span> <\/span>)<\/span>{<\/span><\/td><\/tr>$/;" a -284 phpunit/coverage/Database.php.html /^
            =========================================================*\/<\/span><\/td><\/tr>$/;" a -284 phpunit/coverage/ModuleRequest.php.html /^
                    <\/span>$this<\/span>-><\/span>error<\/span> <\/span>=<\/span> <\/span>ManagerError<\/span>::<\/span>TokenError<\/span>;<\/span><\/td><\/tr>$/;" a -285 phpunit/coverage/Database.php.html /^
            <\/span>$result<\/span> <\/span>=<\/span> <\/span>array<\/span>(<\/span><\/td><\/tr>$/;" a -285 phpunit/coverage/ModuleRequest.php.html /^
                    <\/span>return<\/span> <\/span>false<\/span>;<\/span><\/td><\/tr>$/;" a -286 phpunit/coverage/Database.php.html /^
                <\/span>$days<\/span>[<\/span>$daynum<\/span>]<\/span>,<\/span>     <\/span>\/\/ nom de jour<\/span><\/td><\/tr>$/;" a -286 phpunit/coverage/ModuleRequest.php.html /^
                <\/span>}<\/span><\/td><\/tr>$/;" a -287 phpunit/coverage/Database.php.html /^
                <\/span>date<\/span>(<\/span>'j'<\/span>,<\/span> <\/span>$time<\/span>)<\/span>,<\/span>   <\/span>\/\/ jour du mois<\/span><\/td><\/tr>$/;" a -287 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -288 phpunit/coverage/Database.php.html /^
                <\/span>$months<\/span>[<\/span>$monthnum<\/span>]<\/span>,<\/span> <\/span>\/\/ nom du mois<\/span><\/td><\/tr>$/;" a -288 phpunit/coverage/ModuleRequest.php.html /^
                <\/span>$local_permissions<\/span> <\/span>=<\/span> <\/span>$token_permissions<\/span>;<\/span><\/td><\/tr>$/;" a -289 phpunit/coverage/Database.php.html /^
                <\/span>date<\/span>(<\/span>'Y'<\/span>,<\/span> <\/span>$time<\/span>)<\/span>,<\/span>   <\/span>\/\/ annee<\/span><\/td><\/tr>$/;" a -289 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -29 phpunit/coverage/Database.php.html /^
            <\/span>$this<\/span>-><\/span>dbname<\/span>   <\/span>=<\/span> <\/span>$dbname<\/span>;<\/span><\/td><\/tr>$/;" a -29 phpunit/coverage/ManagerError.php.html /^
            <\/span>\/\/ Verification de la coherence du chemin (existe dans la conf)<\/span><\/td><\/tr>$/;" a -29 phpunit/coverage/ModuleAnswer.php.html /^
        *<\/span><\/td><\/tr>$/;" a -29 phpunit/coverage/ModuleRequest.php.html /^
        * @path<String>                Chemin de delegation ("module\/methode")<\/span><\/td><\/tr>$/;" a -29 phpunit/coverage/ModuleResponse.php.html /^
        *<\/span><\/td><\/tr>$/;" a -29 phpunit/coverage/Repo.php.html /^
        <\/span>private<\/span> <\/span>$answer<\/span>;<\/span><\/td><\/tr>$/;" a -29 phpunit/coverage/ResourceDispatcher.php.html /^
        *<\/span><\/td><\/tr>$/;" a -29 phpunit/coverage/autoloader.php.html /^
    <\/span>function<\/span> <\/span>autoloader<\/span>(<\/span>$className<\/span>)<\/span>{<\/span><\/td><\/tr>$/;" a -29 phpunit/coverage/module/module.php.html /^
<\/td><\/tr>$/;" a -29 phpunit/coverage/repo/token.php.html /^
        *<\/span><\/td><\/tr>$/;" a -29 phpunit/coverage/sessionManager.php.html /^
                <\/span>session_id<\/span>(<\/span> <\/span>$session_id<\/span> <\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -290 phpunit/coverage/Database.php.html /^
            <\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -290 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -291 phpunit/coverage/Database.php.html /^
<\/td><\/tr>$/;" a -291 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>\/* [3] Gestion si aucun token, avec utilisateur connecté<\/span><\/td><\/tr>$/;" a -292 phpunit/coverage/Database.php.html /^
<\/td><\/tr>$/;" a -292 phpunit/coverage/ModuleRequest.php.html /^
            =========================================================*\/<\/span><\/td><\/tr>$/;" a -293 phpunit/coverage/Database.php.html /^
            <\/span>return<\/span> <\/span>implode<\/span>(<\/span>" "<\/span>,<\/span> <\/span>$result<\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -293 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>}<\/span>else<\/span> <\/span>if<\/span>(<\/span> <\/span>isset<\/span>(<\/span>$_SESSION<\/span>[<\/span>'permission'<\/span>]<\/span>)<\/span> <\/span>)<\/span><\/td><\/tr>$/;" a -294 phpunit/coverage/Database.php.html /^
        <\/span>}<\/span><\/td><\/tr>$/;" a -294 phpunit/coverage/ModuleRequest.php.html /^
                <\/span>$local_permissions<\/span> <\/span>=<\/span> <\/span>$_SESSION<\/span>[<\/span>'permission'<\/span>]<\/span>;<\/span><\/td><\/tr>$/;" a -295 phpunit/coverage/Database.php.html /^
<\/td><\/tr>$/;" a -295 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>\/\/ Si ni token, ni SESSION, erreur<\/span><\/td><\/tr>$/;" a -296 phpunit/coverage/Database.php.html /^
    <\/span>}<\/span><\/td><\/tr>$/;" a -296 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>else<\/span>{<\/span><\/td><\/tr>$/;" a -297 phpunit/coverage/Database.php.html /^
?><\/span><\/td><\/tr>$/;" a -297 phpunit/coverage/ModuleRequest.php.html /^
                <\/span>$this<\/span>-><\/span>error<\/span> <\/span>=<\/span> <\/span>ManagerError<\/span>::<\/span>PermissionError<\/span>;<\/span><\/td><\/tr>$/;" a -298 phpunit/coverage/ModuleRequest.php.html /^
                <\/span>return<\/span> <\/span>false<\/span>;<\/span><\/td><\/tr>$/;" a -299 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>}<\/span><\/td><\/tr>$/;" a -3 phpunit/coverage/Database.php.html /^
    <\/span>namespace<\/span> <\/span>manager<\/span>;<\/span><\/td><\/tr>$/;" a -3 phpunit/coverage/ManagerError.php.html /^
<\/td><\/tr>$/;" a -3 phpunit/coverage/ModuleAnswer.php.html /^
    <\/span>namespace<\/span> <\/span>manager<\/span>;<\/span><\/td><\/tr>$/;" a -3 phpunit/coverage/ModuleRequest.php.html /^
    <\/span>namespace<\/span> <\/span>manager<\/span>;<\/span><\/td><\/tr>$/;" a -3 phpunit/coverage/ModuleResponse.php.html /^
    <\/span>namespace<\/span> <\/span>manager<\/span>;<\/span><\/td><\/tr>$/;" a -3 phpunit/coverage/Repo.php.html /^
    <\/span>namespace<\/span> <\/span>manager<\/span>;<\/span><\/td><\/tr>$/;" a -3 phpunit/coverage/ResourceDispatcher.php.html /^
    <\/span>namespace<\/span> <\/span>manager<\/span>;<\/span><\/td><\/tr>$/;" a -3 phpunit/coverage/autoloader.php.html /^
    <\/span>\/\/ On definit la racine __ROOT__ si c'est pas deja fait<\/span><\/td><\/tr>$/;" a -3 phpunit/coverage/module/module.php.html /^
    <\/span>namespace<\/span> <\/span>manager<\/span>\\<\/span>module<\/span>;<\/span><\/td><\/tr>$/;" a -3 phpunit/coverage/repo/token.php.html /^
    <\/span>namespace<\/span> <\/span>manager<\/span>\\<\/span>repo<\/span>;<\/span><\/td><\/tr>$/;" a -3 phpunit/coverage/sessionManager.php.html /^
    <\/span>namespace<\/span> <\/span>manager<\/span>;<\/span><\/td><\/tr>$/;" a -30 phpunit/coverage/Database.php.html /^
            <\/span>$this<\/span>-><\/span>username<\/span> <\/span>=<\/span> <\/span>$username<\/span>;<\/span><\/td><\/tr>$/;" a -30 phpunit/coverage/ManagerError.php.html /^
            <\/span>const<\/span> <\/span>WrongPathModule<\/span>     <\/span>=<\/span> <\/span>5<\/span>;<\/span><\/td><\/tr>$/;" a -30 phpunit/coverage/ModuleAnswer.php.html /^
        * @error<ModuleError>                    Erreur passee par la requete (si existe)<\/span><\/td><\/tr>$/;" a -30 phpunit/coverage/ModuleRequest.php.html /^
        * @param<Array>                Tableau associatif contenant les parametres utiles au traitement<\/span><\/td><\/tr>$/;" a -30 phpunit/coverage/ModuleResponse.php.html /^
        * @error<ModuleError>                    Erreur passee par la requete (si existe)<\/span><\/td><\/tr>$/;" a -30 phpunit/coverage/Repo.php.html /^
<\/td><\/tr>$/;" a -30 phpunit/coverage/ResourceDispatcher.php.html /^
        * @return status<Boolean>    Retourne si oui ou non tout s'est bien passe<\/span><\/td><\/tr>$/;" a -30 phpunit/coverage/autoloader.php.html /^
        <\/span>$path<\/span> <\/span>=<\/span> <\/span>''<\/span>;<\/span><\/td><\/tr>$/;" a -30 phpunit/coverage/module/module.php.html /^
<\/td><\/tr>$/;" a -30 phpunit/coverage/repo/token.php.html /^
        * @return tokens<Array>                                 Liste de tous les tokens<\/span><\/td><\/tr>$/;" a -30 phpunit/coverage/sessionManager.php.html /^
            <\/span><\/td><\/tr>$/;" a -300 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -301 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -302 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>\/* [4] Verification des droits parmi les permissions donnees<\/span><\/td><\/tr>$/;" a -303 phpunit/coverage/ModuleRequest.php.html /^
            =========================================================*\/<\/span><\/td><\/tr>$/;" a -304 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>\/* (1) On recupere la liste des permissions possibles *\/<\/span><\/td><\/tr>$/;" a -305 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>$permissions<\/span> <\/span>=<\/span> <\/span>$method<\/span>[<\/span>'permissions'<\/span>]<\/span>;<\/span><\/td><\/tr>$/;" a -306 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -307 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>\/* (2) Si aucune permission n'est definie, on laisse l'acces *\/<\/span><\/td><\/tr>$/;" a -308 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>if<\/span>(<\/span> <\/span>count<\/span>(<\/span>$permissions<\/span>)<\/span> <\/span>==<\/span> <\/span>0<\/span> <\/span>)<\/span> <\/span>return<\/span> <\/span>true<\/span>;<\/span><\/td><\/tr>$/;" a -309 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -31 phpunit/coverage/Database.php.html /^
            <\/span>$this<\/span>-><\/span>password<\/span> <\/span>=<\/span> <\/span>$password<\/span>;<\/span><\/td><\/tr>$/;" a -31 phpunit/coverage/ManagerError.php.html /^
<\/td><\/tr>$/;" a -31 phpunit/coverage/ModuleAnswer.php.html /^
        *<\/span><\/td><\/tr>$/;" a -31 phpunit/coverage/ModuleRequest.php.html /^
        * @token<String>            Token d'acces a l'api (OPTIONNEL)<\/span><\/td><\/tr>$/;" a -31 phpunit/coverage/ModuleResponse.php.html /^
        *<\/span><\/td><\/tr>$/;" a -31 phpunit/coverage/Repo.php.html /^
        <\/span>\/\/ Contiendra l'etat de la requete<\/span><\/td><\/tr>$/;" a -31 phpunit/coverage/ResourceDispatcher.php.html /^
        *<\/span><\/td><\/tr>$/;" a -31 phpunit/coverage/autoloader.php.html /^
<\/td><\/tr>$/;" a -31 phpunit/coverage/module/module.php.html /^
    <\/span>}<\/span><\/td><\/tr>$/;" a -31 phpunit/coverage/repo/token.php.html /^
        *<\/span><\/td><\/tr>$/;" a -31 phpunit/coverage/sessionManager.php.html /^
            <\/span>\/\/ Precaution: on met a jour le cookie<\/span><\/td><\/tr>$/;" a -310 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>\/* (3) On verifie qu'il y a au moins une permission ok *\/<\/span><\/td><\/tr>$/;" a -311 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>foreach<\/span>(<\/span>$permissions<\/span> <\/span>as<\/span> <\/span>$permission<\/span>)<\/span><\/td><\/tr>$/;" a -312 phpunit/coverage/ModuleRequest.php.html /^
                <\/span>if<\/span>(<\/span> <\/span>in_array<\/span>(<\/span>$permission<\/span>,<\/span> <\/span>$local_permissions<\/span>)<\/span> <\/span>)<\/span> <\/span>return<\/span> <\/span>true<\/span>;<\/span><\/td><\/tr>$/;" a -313 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -314 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -315 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>\/* [5] On retourne FAUX si aucun droit n'a ete trouve<\/span><\/td><\/tr>$/;" a -316 phpunit/coverage/ModuleRequest.php.html /^
            =========================================================*\/<\/span><\/td><\/tr>$/;" a -317 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>$this<\/span>-><\/span>error<\/span> <\/span>=<\/span> <\/span>ManagerError<\/span>::<\/span>PermissionError<\/span>;<\/span><\/td><\/tr>$/;" a -318 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>return<\/span> <\/span>false<\/span>;<\/span><\/td><\/tr>$/;" a -319 phpunit/coverage/ModuleRequest.php.html /^
        <\/span>}<\/span><\/td><\/tr>$/;" a -32 phpunit/coverage/Database.php.html /^
            <\/span><\/td><\/tr>$/;" a -32 phpunit/coverage/ManagerError.php.html /^
            <\/span>\/\/ Module non specifie dans la conf<\/span><\/td><\/tr>$/;" a -32 phpunit/coverage/ModuleAnswer.php.html /^
        *\/<\/span><\/td><\/tr>$/;" a -32 phpunit/coverage/ModuleRequest.php.html /^
        *<\/span><\/td><\/tr>$/;" a -32 phpunit/coverage/ModuleResponse.php.html /^
        *\/<\/span><\/td><\/tr>$/;" a -32 phpunit/coverage/Repo.php.html /^
        <\/span>public<\/span> <\/span>$error<\/span>;<\/span><\/td><\/tr>$/;" a -32 phpunit/coverage/ResourceDispatcher.php.html /^
        *\/<\/span><\/td><\/tr>$/;" a -32 phpunit/coverage/autoloader.php.html /^
        <\/span>\/* [1] On utilise le namespace pour localiser<\/span><\/td><\/tr>$/;" a -32 phpunit/coverage/module/module.php.html /^
<\/td><\/tr>$/;" a -32 phpunit/coverage/repo/token.php.html /^
        *\/<\/span><\/td><\/tr>$/;" a -32 phpunit/coverage/sessionManager.php.html /^
            <\/span>setcookie<\/span>(<\/span> <\/span>'PHPSESSID'<\/span>,<\/span> <\/span>session_id<\/span>(<\/span>)<\/span>,<\/span> <\/span>time<\/span>(<\/span>)<\/span>+<\/span>60<\/span>*<\/span>30<\/span>,<\/span> <\/span>'\/'<\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -320 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -321 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -322 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -323 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -324 phpunit/coverage/ModuleRequest.php.html /^
        <\/span>\/* VERIFICATION DU TYPE DES PARAMETRES ENVOYES<\/span><\/td><\/tr>$/;" a -325 phpunit/coverage/ModuleRequest.php.html /^
        *<\/span><\/td><\/tr>$/;" a -326 phpunit/coverage/ModuleRequest.php.html /^
        * @params<Array>                                     Tableau associatif contenant les parametres<\/span><\/td><\/tr>$/;" a -327 phpunit/coverage/ModuleRequest.php.html /^
        *<\/span><\/td><\/tr>$/;" a -328 phpunit/coverage/ModuleRequest.php.html /^
        * @return correct<bool>                             Retourne si oui ou non les parametres ont le bon type<\/span><\/td><\/tr>$/;" a -329 phpunit/coverage/ModuleRequest.php.html /^
        *<\/span><\/td><\/tr>$/;" a -33 phpunit/coverage/Database.php.html /^
            <\/span>try<\/span>{<\/span>            <\/span><\/td><\/tr>$/;" a -33 phpunit/coverage/ManagerError.php.html /^
            <\/span>const<\/span> <\/span>UnknownModule<\/span>       <\/span>=<\/span> <\/span>6<\/span>;<\/span><\/td><\/tr>$/;" a -33 phpunit/coverage/ModuleAnswer.php.html /^
        <\/span>public<\/span> <\/span>function<\/span> <\/span>__construct<\/span>(<\/span>$error<\/span>=<\/span>ManagerError<\/span>::<\/span>Success<\/span>)<\/span>{<\/span><\/td><\/tr>$/;" a -33 phpunit/coverage/ModuleRequest.php.html /^
        * @return status<Boolean>    Retourne si oui ou non tout s'est bien passe<\/span><\/td><\/tr>$/;" a -33 phpunit/coverage/ModuleResponse.php.html /^
        <\/span>public<\/span> <\/span>function<\/span> <\/span>__construct<\/span>(<\/span>$error<\/span>=<\/span>ManagerError<\/span>::<\/span>Success<\/span>)<\/span>{<\/span><\/td><\/tr>$/;" a -33 phpunit/coverage/Repo.php.html /^
<\/td><\/tr>$/;" a -33 phpunit/coverage/ResourceDispatcher.php.html /^
        <\/span>public<\/span> <\/span>function<\/span> <\/span>__construct<\/span>(<\/span>$url<\/span>,<\/span> <\/span>$view<\/span>=<\/span>false<\/span>)<\/span>{<\/span><\/td><\/tr>$/;" a -33 phpunit/coverage/autoloader.php.html /^
        ===============================================*\/<\/span><\/td><\/tr>$/;" a -33 phpunit/coverage/module/module.php.html /^
<\/td><\/tr>$/;" a -33 phpunit/coverage/repo/token.php.html /^
        <\/span>public<\/span> <\/span>static<\/span> <\/span>function<\/span> <\/span>getAll<\/span>(<\/span>)<\/span>{<\/span><\/td><\/tr>$/;" a -33 phpunit/coverage/sessionManager.php.html /^
<\/td><\/tr>$/;" a -330 phpunit/coverage/ModuleRequest.php.html /^
        *\/<\/span><\/td><\/tr>$/;" a -331 phpunit/coverage/ModuleRequest.php.html /^
        <\/span>private<\/span> <\/span>function<\/span> <\/span>checkParams<\/span>(<\/span>$params<\/span>)<\/span>{<\/span><\/td><\/tr>$/;" a -332 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>\/* [1] On verifie qu'il ne manque aucun parametre<\/span><\/td><\/tr>$/;" a -333 phpunit/coverage/ModuleRequest.php.html /^
            =========================================================*\/<\/span><\/td><\/tr>$/;" a -334 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>\/\/ Si @params n'est pas un tableau<\/span><\/td><\/tr>$/;" a -335 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>if<\/span>(<\/span> <\/span>!<\/span>is_array<\/span>(<\/span>$params<\/span>)<\/span> <\/span>)<\/span> <\/span>return<\/span> <\/span>false<\/span>;<\/span><\/td><\/tr>$/;" a -336 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -337 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>$method<\/span> <\/span>=<\/span> <\/span>$this<\/span>-><\/span>modules<\/span>[<\/span>$this<\/span>-><\/span>path<\/span>[<\/span>'module'<\/span>]<\/span>]<\/span>[<\/span>$this<\/span>-><\/span>path<\/span>[<\/span>'method'<\/span>]<\/span>]<\/span>;<\/span><\/td><\/tr>$/;" a -338 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -339 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>\/\/ Si le nombre de parametre en entree est insuffisant<\/span><\/td><\/tr>$/;" a -34 phpunit/coverage/Database.php.html /^
                <\/span>self<\/span>::<\/span>$pdo<\/span> <\/span>=<\/span> <\/span>new<\/span> <\/span>\\<\/span>PDO<\/span>(<\/span>'mysql:host='<\/span>.<\/span>$this<\/span>-><\/span>host<\/span>.<\/span>';dbname='<\/span>.<\/span>$this<\/span>-><\/span>dbname<\/span>,<\/span> <\/span>$this<\/span>-><\/span>username<\/span>,<\/span> <\/span>$this<\/span>-><\/span>password<\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -34 phpunit/coverage/ManagerError.php.html /^
<\/td><\/tr>$/;" a -34 phpunit/coverage/ModuleAnswer.php.html /^
            <\/span>$this<\/span>-><\/span>data<\/span> <\/span>=<\/span> <\/span>array<\/span>(<\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -34 phpunit/coverage/ModuleRequest.php.html /^
        *<\/span><\/td><\/tr>$/;" a -34 phpunit/coverage/ModuleResponse.php.html /^
            <\/span>$this<\/span>-><\/span>data<\/span> <\/span>=<\/span> <\/span>array<\/span>(<\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -34 phpunit/coverage/Repo.php.html /^
<\/td><\/tr>$/;" a -34 phpunit/coverage/ResourceDispatcher.php.html /^
            <\/span>$this<\/span>-><\/span>error<\/span> <\/span>=<\/span> <\/span>ManagerError<\/span>::<\/span>Success<\/span>;<\/span><\/td><\/tr>$/;" a -34 phpunit/coverage/autoloader.php.html /^
        <\/span>\/\/ On remplace les '\\' par des '\/'<\/span><\/td><\/tr>$/;" a -34 phpunit/coverage/module/module.php.html /^
?><\/span><\/td><\/tr>$/;" a -34 phpunit/coverage/repo/token.php.html /^
            <\/span>\/* [1] On prepare et execute la requete<\/span><\/td><\/tr>$/;" a -34 phpunit/coverage/sessionManager.php.html /^
            <\/span>\/\/ On redemarre la session avec le bon id session<\/span><\/td><\/tr>$/;" a -340 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>if<\/span>(<\/span> <\/span>count<\/span>(<\/span>$method<\/span>[<\/span>'parameters'<\/span>]<\/span>)<\/span> <\/span>><\/span> <\/span>count<\/span>(<\/span>$params<\/span>)<\/span> <\/span>)<\/span> <\/span>return<\/span> <\/span>false<\/span>;<\/span><\/td><\/tr>$/;" a -341 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -342 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -343 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -344 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>\/* [2] Si le type est defini, pour chaque param, on teste<\/span><\/td><\/tr>$/;" a -345 phpunit/coverage/ModuleRequest.php.html /^
            =========================================================*\/<\/span><\/td><\/tr>$/;" a -346 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>foreach<\/span>(<\/span>$method<\/span>[<\/span>'parameters'<\/span>]<\/span> <\/span>as<\/span> <\/span>$name<\/span>=><\/span>$paramsdata<\/span>)<\/span>{<\/span><\/td><\/tr>$/;" a -347 phpunit/coverage/ModuleRequest.php.html /^
                <\/span>\/\/ Si le parametre n'existe pas dans le tableau recu<\/span><\/td><\/tr>$/;" a -348 phpunit/coverage/ModuleRequest.php.html /^
                <\/span>if<\/span>(<\/span> <\/span>!<\/span>isset<\/span>(<\/span>$params<\/span>[<\/span>$name<\/span>]<\/span>)<\/span> <\/span>)<\/span> <\/span>return<\/span> <\/span>false<\/span>;<\/span><\/td><\/tr>$/;" a -349 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -35 phpunit/coverage/Database.php.html /^
<\/td><\/tr>$/;" a -35 phpunit/coverage/ManagerError.php.html /^
            <\/span>\/\/ Methode non specifie pour ce Module dans la conf<\/span><\/td><\/tr>$/;" a -35 phpunit/coverage/ModuleAnswer.php.html /^
            <\/span>$this<\/span>-><\/span>error<\/span> <\/span>=<\/span> <\/span>$error<\/span>;<\/span><\/td><\/tr>$/;" a -35 phpunit/coverage/ModuleRequest.php.html /^
        *\/<\/span><\/td><\/tr>$/;" a -35 phpunit/coverage/ModuleResponse.php.html /^
            <\/span>$this<\/span>-><\/span>error<\/span> <\/span>=<\/span> <\/span>$error<\/span>;<\/span><\/td><\/tr>$/;" a -35 phpunit/coverage/Repo.php.html /^
<\/td><\/tr>$/;" a -35 phpunit/coverage/ResourceDispatcher.php.html /^
<\/td><\/tr>$/;" a -35 phpunit/coverage/autoloader.php.html /^
        <\/span>$path<\/span> <\/span>=<\/span> <\/span>str_replace<\/span>(<\/span>'\\\\'<\/span>,<\/span> <\/span>'\/'<\/span>,<\/span> <\/span>$className<\/span>)<\/span> <\/span>.<\/span> <\/span>'.php'<\/span>;<\/span><\/td><\/tr>$/;" a -35 phpunit/coverage/repo/token.php.html /^
            =========================================================*\/<\/span><\/td><\/tr>$/;" a -35 phpunit/coverage/sessionManager.php.html /^
            <\/span>\\<\/span>session_start<\/span>(<\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -350 phpunit/coverage/ModuleRequest.php.html /^
                <\/span>\/\/ Si le type n'est pas defini, on reboucle<\/span><\/td><\/tr>$/;" a -351 phpunit/coverage/ModuleRequest.php.html /^
                <\/span>if<\/span>(<\/span> <\/span>!<\/span>isset<\/span>(<\/span>$paramsdata<\/span>[<\/span>'type'<\/span>]<\/span>)<\/span> <\/span>)<\/span> <\/span>continue<\/span>;<\/span><\/td><\/tr>$/;" a -352 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -353 phpunit/coverage/ModuleRequest.php.html /^
                <\/span>\/\/ Si la verification est fausse, on retourne faux<\/span><\/td><\/tr>$/;" a -354 phpunit/coverage/ModuleRequest.php.html /^
                <\/span>if<\/span>(<\/span> <\/span>!<\/span>Database<\/span>::<\/span>check<\/span>(<\/span>$paramsdata<\/span>[<\/span>'type'<\/span>]<\/span>,<\/span> <\/span>$params<\/span>[<\/span>$name<\/span>]<\/span>)<\/span> <\/span>)<\/span> <\/span>return<\/span> <\/span>false<\/span>;<\/span><\/td><\/tr>$/;" a -355 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>}<\/span><\/td><\/tr>$/;" a -356 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -357 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>\/* [3] Gestion du retour, si tout s'est bien passe<\/span><\/td><\/tr>$/;" a -358 phpunit/coverage/ModuleRequest.php.html /^
            =========================================================*\/<\/span><\/td><\/tr>$/;" a -359 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>return<\/span> <\/span>true<\/span>;<\/span><\/td><\/tr>$/;" a -36 phpunit/coverage/Database.php.html /^
                <\/span>\/\/ On signale que tout s'est bien passe<\/span><\/td><\/tr>$/;" a -36 phpunit/coverage/ManagerError.php.html /^
            <\/span>const<\/span> <\/span>UnknownMethod<\/span>       <\/span>=<\/span> <\/span>7<\/span>;<\/span><\/td><\/tr>$/;" a -36 phpunit/coverage/ModuleAnswer.php.html /^
        <\/span>}<\/span><\/td><\/tr>$/;" a -36 phpunit/coverage/ModuleRequest.php.html /^
        <\/span>public<\/span> <\/span>function<\/span> <\/span>__construct<\/span>(<\/span>$path<\/span>=<\/span>null<\/span>,<\/span> <\/span>$params<\/span>=<\/span>null<\/span>,<\/span> <\/span>$token<\/span>=<\/span>null<\/span>)<\/span>{<\/span><\/td><\/tr>$/;" a -36 phpunit/coverage/ModuleResponse.php.html /^
        <\/span>}<\/span><\/td><\/tr>$/;" a -36 phpunit/coverage/Repo.php.html /^
<\/td><\/tr>$/;" a -36 phpunit/coverage/ResourceDispatcher.php.html /^
<\/td><\/tr>$/;" a -36 phpunit/coverage/autoloader.php.html /^
        <\/span>$path<\/span> <\/span>=<\/span> <\/span>__ROOT__<\/span>.<\/span>'\/'<\/span>.<\/span>$path<\/span>;<\/span><\/td><\/tr>$/;" a -36 phpunit/coverage/repo/token.php.html /^
            <\/span>$request<\/span> <\/span>=<\/span> <\/span>Database<\/span>::<\/span>getPDO<\/span>(<\/span>)<\/span>-><\/span>query<\/span>(<\/span>"SELECT id_token as id, name, token, expires, (CURDATE() > expires) as expired<\/span><\/td><\/tr>$/;" a -36 phpunit/coverage/sessionManager.php.html /^
<\/td><\/tr>$/;" a -360 phpunit/coverage/ModuleRequest.php.html /^
        <\/span>}<\/span><\/td><\/tr>$/;" a -361 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -362 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -363 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -364 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -365 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -366 phpunit/coverage/ModuleRequest.php.html /^
        <\/span>\/* RENVOI LE CHEMIN D'AMORCAGE DE LA METHODE<\/span><\/td><\/tr>$/;" a -367 phpunit/coverage/ModuleRequest.php.html /^
        *<\/span><\/td><\/tr>$/;" a -368 phpunit/coverage/ModuleRequest.php.html /^
        * @return path<Array>                                     Retourne le chemin d'amorcage de la requete<\/span><\/td><\/tr>$/;" a -369 phpunit/coverage/ModuleRequest.php.html /^
        *<\/span><\/td><\/tr>$/;" a -37 phpunit/coverage/Database.php.html /^
                <\/span>self<\/span>::<\/span>$error<\/span> <\/span>=<\/span> <\/span>ManagerError<\/span>::<\/span>Success<\/span>;<\/span><\/td><\/tr>$/;" a -37 phpunit/coverage/ManagerError.php.html /^
<\/td><\/tr>$/;" a -37 phpunit/coverage/ModuleAnswer.php.html /^
<\/td><\/tr>$/;" a -37 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>\/\/ Si pas parametre manquant, on quitte<\/span><\/td><\/tr>$/;" a -37 phpunit/coverage/ModuleResponse.php.html /^
<\/td><\/tr>$/;" a -37 phpunit/coverage/Repo.php.html /^
<\/td><\/tr>$/;" a -37 phpunit/coverage/ResourceDispatcher.php.html /^
            <\/span>\/* [0] On met a jour la configuration<\/span><\/td><\/tr>$/;" a -37 phpunit/coverage/autoloader.php.html /^
<\/td><\/tr>$/;" a -37 phpunit/coverage/repo/token.php.html /^
                FROM api_token<\/span><\/td><\/tr>$/;" a -37 phpunit/coverage/sessionManager.php.html /^
            <\/span>\/\/ On met a jour le token<\/span><\/td><\/tr>$/;" a -370 phpunit/coverage/ModuleRequest.php.html /^
        *\/<\/span><\/td><\/tr>$/;" a -371 phpunit/coverage/ModuleRequest.php.html /^
        <\/span>private<\/span> <\/span>function<\/span> <\/span>getFunctionCaller<\/span>(<\/span>)<\/span>{<\/span><\/td><\/tr>$/;" a -372 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>return<\/span> <\/span>array<\/span>(<\/span> <\/span>'\\\\manager\\\\module\\\\'<\/span>.<\/span>$this<\/span>-><\/span>path<\/span>[<\/span>'module'<\/span>]<\/span>,<\/span> <\/span>$this<\/span>-><\/span>path<\/span>[<\/span>'method'<\/span>]<\/span> <\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -373 phpunit/coverage/ModuleRequest.php.html /^
        <\/span>}<\/span><\/td><\/tr>$/;" a -374 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -375 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -376 phpunit/coverage/ModuleRequest.php.html /^
    <\/span>}<\/span><\/td><\/tr>$/;" a -377 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -378 phpunit/coverage/ModuleRequest.php.html /^
?><\/span><\/td><\/tr>$/;" a -38 phpunit/coverage/Database.php.html /^
<\/td><\/tr>$/;" a -38 phpunit/coverage/ManagerError.php.html /^
            <\/span>\/\/ Methode inamorcable<\/span><\/td><\/tr>$/;" a -38 phpunit/coverage/ModuleAnswer.php.html /^
<\/td><\/tr>$/;" a -38 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>if<\/span>(<\/span> <\/span>$path<\/span> <\/span>==<\/span> <\/span>null<\/span> <\/span>)<\/span>{<\/span><\/td><\/tr>$/;" a -38 phpunit/coverage/ModuleResponse.php.html /^
<\/td><\/tr>$/;" a -38 phpunit/coverage/Repo.php.html /^
        <\/span>\/* CONSTRUCTEUR D'UNE REQUETE DE MODULE<\/span><\/td><\/tr>$/;" a -38 phpunit/coverage/ResourceDispatcher.php.html /^
            =====================================================*\/<\/span><\/td><\/tr>$/;" a -38 phpunit/coverage/autoloader.php.html /^
        <\/span>\/\/ Si le fichier existe<\/span><\/td><\/tr>$/;" a -38 phpunit/coverage/repo/token.php.html /^
                ORDER BY expires DESC"<\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -38 phpunit/coverage/sessionManager.php.html /^
            <\/span>self<\/span>::<\/span>update_token<\/span>(<\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -39 phpunit/coverage/Database.php.html /^
            <\/span>}<\/span>catch<\/span>(<\/span>Exception<\/span> <\/span>$e<\/span>)<\/span>{<\/span><\/td><\/tr>$/;" a -39 phpunit/coverage/ManagerError.php.html /^
            <\/span>const<\/span> <\/span>UncallableMethod<\/span>    <\/span>=<\/span> <\/span>8<\/span>;<\/span><\/td><\/tr>$/;" a -39 phpunit/coverage/ModuleAnswer.php.html /^
<\/td><\/tr>$/;" a -39 phpunit/coverage/ModuleRequest.php.html /^
                <\/span>$this<\/span>-><\/span>error<\/span> <\/span>=<\/span> <\/span>ManagerError<\/span>::<\/span>MissingPath<\/span>;<\/span><\/td><\/tr>$/;" a -39 phpunit/coverage/ModuleResponse.php.html /^
<\/td><\/tr>$/;" a -39 phpunit/coverage/Repo.php.html /^
        *<\/span><\/td><\/tr>$/;" a -39 phpunit/coverage/ResourceDispatcher.php.html /^
            <\/span>\/\/ Extensions supportees<\/span><\/td><\/tr>$/;" a -39 phpunit/coverage/autoloader.php.html /^
        <\/span>if<\/span>(<\/span> <\/span>file_exists<\/span>(<\/span>$path<\/span>)<\/span> <\/span>)<\/span><\/td><\/tr>$/;" a -39 phpunit/coverage/repo/token.php.html /^
<\/td><\/tr>$/;" a -39 phpunit/coverage/sessionManager.php.html /^
<\/td><\/tr>$/;" a -4 phpunit/coverage/Database.php.html /^
<\/td><\/tr>$/;" a -4 phpunit/coverage/ManagerError.php.html /^
    <\/span>namespace<\/span> <\/span>manager<\/span>;<\/span><\/td><\/tr>$/;" a -4 phpunit/coverage/ModuleAnswer.php.html /^
    <\/span><\/td><\/tr>$/;" a -4 phpunit/coverage/ModuleRequest.php.html /^
    <\/span>use<\/span> <\/span>\\<\/span>manager<\/span>\\<\/span>Database<\/span>;<\/span><\/td><\/tr>$/;" a -4 phpunit/coverage/ModuleResponse.php.html /^
<\/td><\/tr>$/;" a -4 phpunit/coverage/Repo.php.html /^
    <\/span><\/td><\/tr>$/;" a -4 phpunit/coverage/ResourceDispatcher.php.html /^
    <\/span>use<\/span> <\/span>\\<\/span>manager<\/span>\\<\/span>Repo<\/span>;<\/span><\/td><\/tr>$/;" a -4 phpunit/coverage/autoloader.php.html /^
    <\/span>if<\/span>(<\/span> <\/span>!<\/span>defined<\/span>(<\/span>'__ROOT__'<\/span>)<\/span> <\/span>)<\/span> <\/span>define<\/span>(<\/span>'__ROOT__'<\/span>,<\/span> <\/span>dirname<\/span>(<\/span>dirname<\/span>(<\/span>__FILE__<\/span>)<\/span>)<\/span> <\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -4 phpunit/coverage/module/module.php.html /^
    <\/span>use<\/span> <\/span>\\<\/span>manager<\/span>\\<\/span>ManagerError<\/span>;<\/span><\/td><\/tr>$/;" a -4 phpunit/coverage/repo/token.php.html /^
    <\/span>use<\/span> <\/span>\\<\/span>manager<\/span>\\<\/span>sessionManager<\/span>;<\/span><\/td><\/tr>$/;" a -4 phpunit/coverage/sessionManager.php.html /^
<\/td><\/tr>$/;" a -40 phpunit/coverage/Database.php.html /^
                <\/span>\/\/ On signale qu'il y a une erreur<\/span><\/td><\/tr>$/;" a -40 phpunit/coverage/ManagerError.php.html /^
<\/td><\/tr>$/;" a -40 phpunit/coverage/ModuleAnswer.php.html /^
<\/td><\/tr>$/;" a -40 phpunit/coverage/ModuleRequest.php.html /^
                <\/span>return<\/span> <\/span>false<\/span>;<\/span><\/td><\/tr>$/;" a -40 phpunit/coverage/ModuleResponse.php.html /^
<\/td><\/tr>$/;" a -40 phpunit/coverage/Repo.php.html /^
        * @path<String>                Chemin de delegation ("repo\/methode")<\/span><\/td><\/tr>$/;" a -40 phpunit/coverage/ResourceDispatcher.php.html /^
            <\/span>$extensions_conf<\/span> <\/span>=<\/span> <\/span>json_decode<\/span>(<\/span> <\/span>file_get_contents<\/span>(<\/span>__ROOT__<\/span>.<\/span>self<\/span>::<\/span>$extension_config_path<\/span>)<\/span>,<\/span> <\/span>true<\/span> <\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -40 phpunit/coverage/autoloader.php.html /^
            <\/span>require_once<\/span> <\/span>$path<\/span>;<\/span> <\/span>\/\/ on inclue le fichier<\/span><\/td><\/tr>$/;" a -40 phpunit/coverage/repo/token.php.html /^
    <\/span><\/td><\/tr>$/;" a -40 phpunit/coverage/sessionManager.php.html /^
            <\/span>header<\/span>(<\/span>'Refresh: 0'<\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -41 phpunit/coverage/Database.php.html /^
                <\/span>self<\/span>::<\/span>$error<\/span> <\/span>=<\/span> <\/span>ManagerError<\/span>::<\/span>PDOConnection<\/span>;<\/span><\/td><\/tr>$/;" a -41 phpunit/coverage/ManagerError.php.html /^
            <\/span>\/\/ Erreur de parametre(s)<\/span><\/td><\/tr>$/;" a -41 phpunit/coverage/ModuleAnswer.php.html /^
<\/td><\/tr>$/;" a -41 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>}<\/span><\/td><\/tr>$/;" a -41 phpunit/coverage/ModuleResponse.php.html /^
<\/td><\/tr>$/;" a -41 phpunit/coverage/Repo.php.html /^
        * @data<Array>                Tableau contenant les parametres utiles au traitement<\/span><\/td><\/tr>$/;" a -41 phpunit/coverage/ResourceDispatcher.php.html /^
<\/td><\/tr>$/;" a -41 phpunit/coverage/autoloader.php.html /^
<\/td><\/tr>$/;" a -41 phpunit/coverage/repo/token.php.html /^
            <\/span>\/* [3] On retourne les donnees<\/span><\/td><\/tr>$/;" a -41 phpunit/coverage/sessionManager.php.html /^
        <\/span>}<\/span><\/td><\/tr>$/;" a -42 phpunit/coverage/Database.php.html /^
            <\/span>}<\/span><\/td><\/tr>$/;" a -42 phpunit/coverage/ManagerError.php.html /^
            <\/span>const<\/span> <\/span>ParamError<\/span>          <\/span>=<\/span> <\/span>9<\/span>;<\/span><\/td><\/tr>$/;" a -42 phpunit/coverage/ModuleAnswer.php.html /^
<\/td><\/tr>$/;" a -42 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -42 phpunit/coverage/ModuleResponse.php.html /^
<\/td><\/tr>$/;" a -42 phpunit/coverage/Repo.php.html /^
        *<\/span><\/td><\/tr>$/;" a -42 phpunit/coverage/ResourceDispatcher.php.html /^
            <\/span>\/\/ Gestion de l'erreur de parsage<\/span><\/td><\/tr>$/;" a -42 phpunit/coverage/autoloader.php.html /^
    <\/span>}<\/span><\/td><\/tr>$/;" a -42 phpunit/coverage/repo/token.php.html /^
            =========================================================*\/<\/span><\/td><\/tr>$/;" a -42 phpunit/coverage/sessionManager.php.html /^
<\/td><\/tr>$/;" a -43 phpunit/coverage/Database.php.html /^
        <\/span>}<\/span><\/td><\/tr>$/;" a -43 phpunit/coverage/ManagerError.php.html /^
<\/td><\/tr>$/;" a -43 phpunit/coverage/ModuleAnswer.php.html /^
<\/td><\/tr>$/;" a -43 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>\/* [0] On met a jour la configuration<\/span><\/td><\/tr>$/;" a -43 phpunit/coverage/ModuleResponse.php.html /^
<\/td><\/tr>$/;" a -43 phpunit/coverage/Repo.php.html /^
        * @return status<Boolean>    Retourne si oui ou non tout s'est bien passe<\/span><\/td><\/tr>$/;" a -43 phpunit/coverage/ResourceDispatcher.php.html /^
            <\/span>if<\/span>(<\/span> <\/span>$extensions_conf<\/span> <\/span>==<\/span> <\/span>null<\/span> <\/span>)<\/span>{<\/span><\/td><\/tr>$/;" a -43 phpunit/coverage/autoloader.php.html /^
    <\/span><\/td><\/tr>$/;" a -43 phpunit/coverage/repo/token.php.html /^
            <\/span>return<\/span> <\/span>Database<\/span>::<\/span>delNumeric<\/span>(<\/span> <\/span>$request<\/span>-><\/span>fetchAll<\/span>(<\/span>)<\/span> <\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -43 phpunit/coverage/sessionManager.php.html /^
        <\/span>\/*******************\/<\/span><\/td><\/tr>$/;" a -44 phpunit/coverage/Database.php.html /^
<\/td><\/tr>$/;" a -44 phpunit/coverage/ManagerError.php.html /^
            <\/span>\/\/ Erreur dans le traitement<\/span><\/td><\/tr>$/;" a -44 phpunit/coverage/ModuleAnswer.php.html /^
        <\/span>\/* AJOUTE UNE DONNEE A LA REPONSE<\/span><\/td><\/tr>$/;" a -44 phpunit/coverage/ModuleRequest.php.html /^
            =========================================================*\/<\/span><\/td><\/tr>$/;" a -44 phpunit/coverage/ModuleResponse.php.html /^
        <\/span>\/* AJOUTE UNE DONNEE A LA REPONSE<\/span><\/td><\/tr>$/;" a -44 phpunit/coverage/Repo.php.html /^
        *<\/span><\/td><\/tr>$/;" a -44 phpunit/coverage/ResourceDispatcher.php.html /^
                <\/span>$this<\/span>-><\/span>error<\/span> <\/span>=<\/span> <\/span>ManagerError<\/span>::<\/span>ParsingFailed<\/span>;<\/span><\/td><\/tr>$/;" a -44 phpunit/coverage/autoloader.php.html /^
    <\/span>\/\/ On definit l'autoloader comme autoloader (obvious)<\/span><\/td><\/tr>$/;" a -44 phpunit/coverage/repo/token.php.html /^
        <\/span>}<\/span><\/td><\/tr>$/;" a -44 phpunit/coverage/sessionManager.php.html /^
        <\/span>\/* GENERE UN TOKEN *\/<\/span><\/td><\/tr>$/;" a -45 phpunit/coverage/Database.php.html /^
<\/td><\/tr>$/;" a -45 phpunit/coverage/ManagerError.php.html /^
            <\/span>const<\/span> <\/span>ModuleError<\/span>         <\/span>=<\/span> <\/span>10<\/span>;<\/span><\/td><\/tr>$/;" a -45 phpunit/coverage/ModuleAnswer.php.html /^
        *<\/span><\/td><\/tr>$/;" a -45 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>\/\/ Modules specifies<\/span><\/td><\/tr>$/;" a -45 phpunit/coverage/ModuleResponse.php.html /^
        *<\/span><\/td><\/tr>$/;" a -45 phpunit/coverage/Repo.php.html /^
        *\/<\/span><\/td><\/tr>$/;" a -45 phpunit/coverage/ResourceDispatcher.php.html /^
                <\/span>return<\/span> <\/span>false<\/span>;<\/span><\/td><\/tr>$/;" a -45 phpunit/coverage/autoloader.php.html /^
    <\/span>spl_autoload_register<\/span>(<\/span>'autoloader'<\/span>,<\/span> <\/span>false<\/span>,<\/span> <\/span>true<\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -45 phpunit/coverage/repo/token.php.html /^
<\/td><\/tr>$/;" a -45 phpunit/coverage/sessionManager.php.html /^
        <\/span>\/*******************\/<\/span><\/td><\/tr>$/;" a -46 phpunit/coverage/Database.php.html /^
        <\/span>\/* retourne une instance de la classe *\/<\/span><\/td><\/tr>$/;" a -46 phpunit/coverage/ManagerError.php.html /^
<\/td><\/tr>$/;" a -46 phpunit/coverage/ModuleAnswer.php.html /^
        * @key<String>                                         Le nom de la valeur a ajouter<\/span><\/td><\/tr>$/;" a -46 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>$this<\/span>-><\/span>modules<\/span> <\/span>=<\/span> <\/span>json_decode<\/span>(<\/span> <\/span>ResourceDispatcher<\/span>::<\/span>getResource<\/span>(<\/span>self<\/span>::<\/span>$config_path<\/span>)<\/span>,<\/span> <\/span>true<\/span> <\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -46 phpunit/coverage/ModuleResponse.php.html /^
        * @key<String>                                         Le nom de la valeur a ajouter<\/span><\/td><\/tr>$/;" a -46 phpunit/coverage/Repo.php.html /^
        <\/span>public<\/span> <\/span>function<\/span> <\/span>__construct<\/span>(<\/span>$path<\/span>=<\/span>null<\/span>,<\/span> <\/span>$data<\/span>=<\/span>null<\/span>)<\/span>{<\/span><\/td><\/tr>$/;" a -46 phpunit/coverage/ResourceDispatcher.php.html /^
            <\/span>}<\/span><\/td><\/tr>$/;" a -46 phpunit/coverage/autoloader.php.html /^
<\/td><\/tr>$/;" a -46 phpunit/coverage/repo/token.php.html /^
<\/td><\/tr>$/;" a -46 phpunit/coverage/sessionManager.php.html /^
        <\/span>private<\/span> <\/span>static<\/span> <\/span>function<\/span> <\/span>update_token<\/span>(<\/span>)<\/span>{<\/span><\/td><\/tr>$/;" a -47 phpunit/coverage/Database.php.html /^
        <\/span>public<\/span> <\/span>static<\/span> <\/span>function<\/span> <\/span>getInstance<\/span>(<\/span>)<\/span>{<\/span><\/td><\/tr>$/;" a -47 phpunit/coverage/ManagerError.php.html /^
        <\/span>\/* Repo *\/<\/span><\/td><\/tr>$/;" a -47 phpunit/coverage/ModuleAnswer.php.html /^
        * @value<mixed*>                                     La valeur a ajouter<\/span><\/td><\/tr>$/;" a -47 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -47 phpunit/coverage/ModuleResponse.php.html /^
        * @value<mixed*>                                     La valeur a ajouter<\/span><\/td><\/tr>$/;" a -47 phpunit/coverage/Repo.php.html /^
            <\/span>\/\/ Si pas parametre manquant, on quitte<\/span><\/td><\/tr>$/;" a -47 phpunit/coverage/ResourceDispatcher.php.html /^
<\/td><\/tr>$/;" a -47 phpunit/coverage/autoloader.php.html /^
<\/td><\/tr>$/;" a -47 phpunit/coverage/repo/token.php.html /^
<\/td><\/tr>$/;" a -47 phpunit/coverage/sessionManager.php.html /^
            <\/span>$token<\/span> <\/span>=<\/span> <\/span>self<\/span>::<\/span>$prefix<\/span>.<\/span>self<\/span>::<\/span>sha1<\/span>(<\/span>uniqid<\/span>(<\/span>)<\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -48 phpunit/coverage/Database.php.html /^
            <\/span>if<\/span>(<\/span> <\/span>self<\/span>::<\/span>$instance<\/span> <\/span>==<\/span> <\/span>null<\/span> <\/span>||<\/span> <\/span>self<\/span>::<\/span>$error<\/span> <\/span>!=<\/span> <\/span>ManagerError<\/span>::<\/span>Success<\/span> <\/span>)<\/span>{<\/span> <\/span>\/\/ Si aucune instance existante OU erreur de connection<\/span><\/td><\/tr>$/;" a -48 phpunit/coverage/ManagerError.php.html /^
<\/td><\/tr>$/;" a -48 phpunit/coverage/ModuleAnswer.php.html /^
        *<\/span><\/td><\/tr>$/;" a -48 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>\/\/ Gestion de l'erreur de parsage<\/span><\/td><\/tr>$/;" a -48 phpunit/coverage/ModuleResponse.php.html /^
        *<\/span><\/td><\/tr>$/;" a -48 phpunit/coverage/Repo.php.html /^
            <\/span>if<\/span>(<\/span> <\/span>$path<\/span> <\/span>==<\/span> <\/span>null<\/span> <\/span>)<\/span>{<\/span><\/td><\/tr>$/;" a -48 phpunit/coverage/ResourceDispatcher.php.html /^
            <\/span>self<\/span>::<\/span>$supported_extensions<\/span> <\/span>=<\/span> <\/span>$extensions_conf<\/span>;<\/span><\/td><\/tr>$/;" a -48 phpunit/coverage/autoloader.php.html /^
<\/td><\/tr>$/;" a -48 phpunit/coverage/repo/token.php.html /^
        <\/span>\/* RETOURNE LE TOKEN D'ID SPECIFIE OU FALSE<\/span><\/td><\/tr>$/;" a -48 phpunit/coverage/sessionManager.php.html /^
        <\/span><\/td><\/tr>$/;" a -49 phpunit/coverage/Database.php.html /^
<\/td><\/tr>$/;" a -49 phpunit/coverage/ManagerError.php.html /^
            <\/span>\/\/ Verification de la coherence du chemin (existe dans la conf)<\/span><\/td><\/tr>$/;" a -49 phpunit/coverage/ModuleAnswer.php.html /^
        *\/<\/span><\/td><\/tr>$/;" a -49 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>if<\/span>(<\/span> <\/span>$this<\/span>-><\/span>modules<\/span> <\/span>==<\/span> <\/span>null<\/span> <\/span>)<\/span>{<\/span><\/td><\/tr>$/;" a -49 phpunit/coverage/ModuleResponse.php.html /^
        *\/<\/span><\/td><\/tr>$/;" a -49 phpunit/coverage/Repo.php.html /^
                <\/span>$this<\/span>-><\/span>error<\/span> <\/span>=<\/span> <\/span>ManagerError<\/span>::<\/span>MissingPath<\/span>;<\/span><\/td><\/tr>$/;" a -49 phpunit/coverage/ResourceDispatcher.php.html /^
<\/td><\/tr>$/;" a -49 phpunit/coverage/autoloader.php.html /^
<\/td><\/tr>$/;" a -49 phpunit/coverage/repo/token.php.html /^
        *<\/span><\/td><\/tr>$/;" a -49 phpunit/coverage/sessionManager.php.html /^
            <\/span>\/\/ On definit le token en session<\/span><\/td><\/tr>$/;" a -5 phpunit/coverage/Database.php.html /^
<\/td><\/tr>$/;" a -5 phpunit/coverage/ManagerError.php.html /^
<\/td><\/tr>$/;" a -5 phpunit/coverage/ModuleAnswer.php.html /^
<\/td><\/tr>$/;" a -5 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -5 phpunit/coverage/ModuleResponse.php.html /^
<\/td><\/tr>$/;" a -5 phpunit/coverage/Repo.php.html /^
<\/td><\/tr>$/;" a -5 phpunit/coverage/ResourceDispatcher.php.html /^
    <\/span>use<\/span> <\/span>\\<\/span>manager<\/span>\\<\/span>sessionManager<\/span>;<\/span><\/td><\/tr>$/;" a -5 phpunit/coverage/autoloader.php.html /^
<\/td><\/tr>$/;" a -5 phpunit/coverage/module/module.php.html /^
<\/td><\/tr>$/;" a -5 phpunit/coverage/repo/token.php.html /^
    <\/span>use<\/span> <\/span>\\<\/span>manager<\/span>\\<\/span>Database<\/span>;<\/span><\/td><\/tr>$/;" a -5 phpunit/coverage/sessionManager.php.html /^
<\/td><\/tr>$/;" a -50 phpunit/coverage/Database.php.html /^
                <\/span>\/\/ chargement de la configuration du server SQL<\/span><\/td><\/tr>$/;" a -50 phpunit/coverage/ManagerError.php.html /^
            <\/span>const<\/span> <\/span>WrongPathRepo<\/span>       <\/span>=<\/span> <\/span>11<\/span>;<\/span><\/td><\/tr>$/;" a -50 phpunit/coverage/ModuleAnswer.php.html /^
        <\/span>public<\/span> <\/span>function<\/span> <\/span>append<\/span>(<\/span>$key<\/span>,<\/span> <\/span>$value<\/span>)<\/span>{<\/span><\/td><\/tr>$/;" a -50 phpunit/coverage/ModuleRequest.php.html /^
                <\/span>$this<\/span>-><\/span>error<\/span> <\/span>=<\/span> <\/span>ManagerError<\/span>::<\/span>ParsingFailed<\/span>;<\/span><\/td><\/tr>$/;" a -50 phpunit/coverage/ModuleResponse.php.html /^
        <\/span>public<\/span> <\/span>function<\/span> <\/span>append<\/span>(<\/span>$key<\/span>,<\/span> <\/span>$value<\/span>)<\/span>{<\/span><\/td><\/tr>$/;" a -50 phpunit/coverage/Repo.php.html /^
                <\/span>return<\/span> <\/span>false<\/span>;<\/span><\/td><\/tr>$/;" a -50 phpunit/coverage/ResourceDispatcher.php.html /^
            <\/span>\/\/ Dossiers supportes<\/span><\/td><\/tr>$/;" a -50 phpunit/coverage/autoloader.php.html /^
    <\/span>\/* On demarre la session securisee PHP<\/span><\/td><\/tr>$/;" a -50 phpunit/coverage/repo/token.php.html /^
        * @id_token<int>                                     UID du token en question<\/span><\/td><\/tr>$/;" a -50 phpunit/coverage/sessionManager.php.html /^
            <\/span>$_SESSION<\/span>[<\/span>'session_token'<\/span>]<\/span> <\/span>=<\/span> <\/span>$token<\/span>;<\/span><\/td><\/tr>$/;" a -51 phpunit/coverage/Database.php.html /^
                <\/span>if<\/span>(<\/span> <\/span>!<\/span>isset<\/span>(<\/span>$_SERVER<\/span>[<\/span>'HTTP_HOST'<\/span>]<\/span>)<\/span> <\/span>||<\/span> <\/span>isset<\/span>(<\/span>$_SERVER<\/span>[<\/span>'HTTP_HOST'<\/span>]<\/span>)<\/span> <\/span>&&<\/span> <\/span>$_SERVER<\/span>[<\/span>'HTTP_HOST'<\/span>]<\/span> <\/span>==<\/span> <\/span>'socioview'<\/span> <\/span>)<\/span><\/td><\/tr>$/;" a -51 phpunit/coverage/ManagerError.php.html /^
<\/td><\/tr>$/;" a -51 phpunit/coverage/ModuleAnswer.php.html /^
            <\/span>\/\/ Ajoute une entree pour la cle @key et de valeur @value<\/span><\/td><\/tr>$/;" a -51 phpunit/coverage/ModuleRequest.php.html /^
                <\/span>return<\/span> <\/span>false<\/span>;<\/span><\/td><\/tr>$/;" a -51 phpunit/coverage/ModuleResponse.php.html /^
            <\/span>\/\/ Ajoute une entree pour la cle @key et de valeur @value<\/span><\/td><\/tr>$/;" a -51 phpunit/coverage/Repo.php.html /^
            <\/span>}<\/span><\/td><\/tr>$/;" a -51 phpunit/coverage/ResourceDispatcher.php.html /^
            <\/span>$parents_conf<\/span> <\/span>=<\/span> <\/span>json_decode<\/span>(<\/span> <\/span>file_get_contents<\/span>(<\/span>__ROOT__<\/span>.<\/span>self<\/span>::<\/span>$parents_config_path<\/span>)<\/span>,<\/span> <\/span>true<\/span> <\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -51 phpunit/coverage/autoloader.php.html /^
    =========================================================*\/<\/span><\/td><\/tr>$/;" a -51 phpunit/coverage/repo/token.php.html /^
        *<\/span><\/td><\/tr>$/;" a -51 phpunit/coverage/sessionManager.php.html /^
<\/td><\/tr>$/;" a -52 phpunit/coverage/Database.php.html /^
                    <\/span>$conf<\/span> <\/span>=<\/span> <\/span>json_decode<\/span>(<\/span> <\/span>ResourceDispatcher<\/span>::<\/span>getResource<\/span>(<\/span>self<\/span>::<\/span>$config_path<\/span>[<\/span>'local'<\/span>]<\/span>)<\/span>,<\/span> <\/span>true<\/span> <\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -52 phpunit/coverage/ManagerError.php.html /^
            <\/span>\/\/ Module non specifie dans la conf<\/span><\/td><\/tr>$/;" a -52 phpunit/coverage/ModuleAnswer.php.html /^
            <\/span>$this<\/span>-><\/span>data<\/span>[<\/span>$key<\/span>]<\/span> <\/span>=<\/span> <\/span>$value<\/span>;<\/span><\/td><\/tr>$/;" a -52 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>}<\/span><\/td><\/tr>$/;" a -52 phpunit/coverage/ModuleResponse.php.html /^
            <\/span>$this<\/span>-><\/span>data<\/span>[<\/span>$key<\/span>]<\/span> <\/span>=<\/span> <\/span>$value<\/span>;<\/span><\/td><\/tr>$/;" a -52 phpunit/coverage/Repo.php.html /^
<\/td><\/tr>$/;" a -52 phpunit/coverage/ResourceDispatcher.php.html /^
            <\/span><\/td><\/tr>$/;" a -52 phpunit/coverage/autoloader.php.html /^
    <\/span>\\<\/span>manager<\/span>\\<\/span>sessionManager<\/span>::<\/span>session_start<\/span>(<\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -52 phpunit/coverage/repo/token.php.html /^
        * @return token<Array>                                 Retourne les donnees du token ou FALSE si erreur<\/span><\/td><\/tr>$/;" a -52 phpunit/coverage/sessionManager.php.html /^
            <\/span>\/\/ On definit le token en cookie<\/span><\/td><\/tr>$/;" a -53 phpunit/coverage/Database.php.html /^
                <\/span>else<\/span><\/td><\/tr>$/;" a -53 phpunit/coverage/ManagerError.php.html /^
            <\/span>const<\/span> <\/span>UnknownRepo<\/span>         <\/span>=<\/span> <\/span>12<\/span>;<\/span><\/td><\/tr>$/;" a -53 phpunit/coverage/ModuleAnswer.php.html /^
<\/td><\/tr>$/;" a -53 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -53 phpunit/coverage/ModuleResponse.php.html /^
<\/td><\/tr>$/;" a -53 phpunit/coverage/Repo.php.html /^
            <\/span>\/* [0] On met a jour la configuration<\/span><\/td><\/tr>$/;" a -53 phpunit/coverage/ResourceDispatcher.php.html /^
            <\/span>\/\/ Gestion de l'erreur de parsage<\/span><\/td><\/tr>$/;" a -53 phpunit/coverage/autoloader.php.html /^
<\/td><\/tr>$/;" a -53 phpunit/coverage/repo/token.php.html /^
        *<\/span><\/td><\/tr>$/;" a -53 phpunit/coverage/sessionManager.php.html /^
            <\/span>$_COOKIE<\/span>[<\/span>'session_token'<\/span>]<\/span> <\/span>=<\/span> <\/span>$_SESSION<\/span>[<\/span>'session_token'<\/span>]<\/span>;<\/span><\/td><\/tr>$/;" a -54 phpunit/coverage/Database.php.html /^
                    <\/span>$conf<\/span> <\/span>=<\/span> <\/span>json_decode<\/span>(<\/span> <\/span>ResourceDispatcher<\/span>::<\/span>getResource<\/span>(<\/span>self<\/span>::<\/span>$config_path<\/span>[<\/span>'remote'<\/span>]<\/span>)<\/span>,<\/span> <\/span>true<\/span> <\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -54 phpunit/coverage/ManagerError.php.html /^
<\/td><\/tr>$/;" a -54 phpunit/coverage/ModuleAnswer.php.html /^
            <\/span>return<\/span> <\/span>$this<\/span>;<\/span><\/td><\/tr>$/;" a -54 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -54 phpunit/coverage/ModuleResponse.php.html /^
            <\/span>return<\/span> <\/span>$this<\/span>;<\/span><\/td><\/tr>$/;" a -54 phpunit/coverage/Repo.php.html /^
            =========================================================*\/<\/span><\/td><\/tr>$/;" a -54 phpunit/coverage/ResourceDispatcher.php.html /^
            <\/span>if<\/span>(<\/span> <\/span>$parents_conf<\/span> <\/span>==<\/span> <\/span>null<\/span> <\/span>)<\/span>{<\/span><\/td><\/tr>$/;" a -54 phpunit/coverage/autoloader.php.html /^
<\/td><\/tr>$/;" a -54 phpunit/coverage/repo/token.php.html /^
        *\/<\/span><\/td><\/tr>$/;" a -54 phpunit/coverage/sessionManager.php.html /^
            <\/span>setcookie<\/span>(<\/span> <\/span>'session_token'<\/span>,<\/span> <\/span>$_COOKIE<\/span>[<\/span>'session_token'<\/span>]<\/span>,<\/span> <\/span>time<\/span>(<\/span>)<\/span>+<\/span>60<\/span>*<\/span>30<\/span>,<\/span> <\/span>'\/'<\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -55 phpunit/coverage/Database.php.html /^
<\/td><\/tr>$/;" a -55 phpunit/coverage/ManagerError.php.html /^
            <\/span>\/\/ Erreur dans le traitement<\/span><\/td><\/tr>$/;" a -55 phpunit/coverage/ModuleAnswer.php.html /^
        <\/span>}<\/span><\/td><\/tr>$/;" a -55 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -55 phpunit/coverage/ModuleResponse.php.html /^
        <\/span>}<\/span><\/td><\/tr>$/;" a -55 phpunit/coverage/Repo.php.html /^
            <\/span>\/\/ Modules specifies<\/span><\/td><\/tr>$/;" a -55 phpunit/coverage/ResourceDispatcher.php.html /^
                <\/span>$this<\/span>-><\/span>error<\/span> <\/span>=<\/span> <\/span>ManagerError<\/span>::<\/span>ParsingFailed<\/span>;<\/span><\/td><\/tr>$/;" a -55 phpunit/coverage/autoloader.php.html /^
<\/td><\/tr>$/;" a -55 phpunit/coverage/repo/token.php.html /^
        <\/span>public<\/span> <\/span>static<\/span> <\/span>function<\/span> <\/span>getById<\/span>(<\/span>$id_token<\/span>)<\/span>{<\/span><\/td><\/tr>$/;" a -55 phpunit/coverage/sessionManager.php.html /^
        <\/span>}<\/span><\/td><\/tr>$/;" a -56 phpunit/coverage/Database.php.html /^
                <\/span>\/\/ creation de l'instance en fonction des parametres<\/span><\/td><\/tr>$/;" a -56 phpunit/coverage/ManagerError.php.html /^
            <\/span>const<\/span> <\/span>RepoError<\/span>           <\/span>=<\/span> <\/span>13<\/span>;<\/span><\/td><\/tr>$/;" a -56 phpunit/coverage/ModuleAnswer.php.html /^
<\/td><\/tr>$/;" a -56 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>\/* [1] Verification des types des parametres<\/span><\/td><\/tr>$/;" a -56 phpunit/coverage/ModuleResponse.php.html /^
<\/td><\/tr>$/;" a -56 phpunit/coverage/Repo.php.html /^
            <\/span>$this<\/span>-><\/span>repositories<\/span> <\/span>=<\/span> <\/span>json_decode<\/span>(<\/span> <\/span>ResourceDispatcher<\/span>::<\/span>getResource<\/span>(<\/span>self<\/span>::<\/span>$config_path<\/span>)<\/span>,<\/span> <\/span>true<\/span> <\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -56 phpunit/coverage/ResourceDispatcher.php.html /^
                <\/span>return<\/span> <\/span>false<\/span>;<\/span><\/td><\/tr>$/;" a -56 phpunit/coverage/autoloader.php.html /^
    <\/span>\/* [1] Gestion des droits des utilisateurs<\/span><\/td><\/tr>$/;" a -56 phpunit/coverage/repo/token.php.html /^
            <\/span>\/* [0] Verification des INPUT<\/span><\/td><\/tr>$/;" a -56 phpunit/coverage/sessionManager.php.html /^
        <\/span><\/td><\/tr>$/;" a -57 phpunit/coverage/Database.php.html /^
                <\/span>self<\/span>::<\/span>$instance<\/span> <\/span>=<\/span> <\/span>new<\/span> <\/span>DataBase<\/span>(<\/span>$conf<\/span>[<\/span>'host'<\/span>]<\/span>,<\/span> <\/span>$conf<\/span>[<\/span>'dbname'<\/span>]<\/span>,<\/span> <\/span>$conf<\/span>[<\/span>'user'<\/span>]<\/span>,<\/span> <\/span>$conf<\/span>[<\/span>'password'<\/span>]<\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -57 phpunit/coverage/ManagerError.php.html /^
<\/td><\/tr>$/;" a -57 phpunit/coverage/ModuleAnswer.php.html /^
<\/td><\/tr>$/;" a -57 phpunit/coverage/ModuleRequest.php.html /^
            =========================================================*\/<\/span><\/td><\/tr>$/;" a -57 phpunit/coverage/ModuleResponse.php.html /^
<\/td><\/tr>$/;" a -57 phpunit/coverage/Repo.php.html /^
            <\/span><\/td><\/tr>$/;" a -57 phpunit/coverage/ResourceDispatcher.php.html /^
            <\/span>}<\/span><\/td><\/tr>$/;" a -57 phpunit/coverage/autoloader.php.html /^
    =========================================================*\/<\/span><\/td><\/tr>$/;" a -57 phpunit/coverage/repo/token.php.html /^
            =========================================================*\/<\/span><\/td><\/tr>$/;" a -57 phpunit/coverage/sessionManager.php.html /^
        <\/span>\/************\/<\/span><\/td><\/tr>$/;" a -58 phpunit/coverage/Database.php.html /^
<\/td><\/tr>$/;" a -58 phpunit/coverage/ManagerError.php.html /^
        <\/span>\/* Database *\/<\/span><\/td><\/tr>$/;" a -58 phpunit/coverage/ModuleAnswer.php.html /^
<\/td><\/tr>$/;" a -58 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>\/\/ Type de @path<\/span><\/td><\/tr>$/;" a -58 phpunit/coverage/ModuleResponse.php.html /^
<\/td><\/tr>$/;" a -58 phpunit/coverage/Repo.php.html /^
            <\/span>\/\/ Gestion de l'erreur de parsage<\/span><\/td><\/tr>$/;" a -58 phpunit/coverage/ResourceDispatcher.php.html /^
<\/td><\/tr>$/;" a -58 phpunit/coverage/autoloader.php.html /^
    <\/span>\/* (1) Retourne si l'utilisateur est connecte ou non *\/<\/span><\/td><\/tr>$/;" a -58 phpunit/coverage/repo/token.php.html /^
            <\/span>if<\/span>(<\/span> <\/span>!<\/span>Database<\/span>::<\/span>check<\/span>(<\/span>'id'<\/span>,<\/span> <\/span>$id_token<\/span>)<\/span> <\/span>)<\/span> <\/span>return<\/span> <\/span>false<\/span>;<\/span><\/td><\/tr>$/;" a -58 phpunit/coverage/sessionManager.php.html /^
        <\/span>\/* AMORCEUR *\/<\/span><\/td><\/tr>$/;" a -59 phpunit/coverage/Database.php.html /^
            <\/span>}<\/span><\/td><\/tr>$/;" a -59 phpunit/coverage/ManagerError.php.html /^
<\/td><\/tr>$/;" a -59 phpunit/coverage/ModuleAnswer.php.html /^
<\/td><\/tr>$/;" a -59 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>if<\/span>(<\/span> <\/span>!<\/span>is_string<\/span>(<\/span>$path<\/span>)<\/span> <\/span>)<\/span>{<\/span> <\/span>\/\/ Si le type est incorrect<\/span><\/td><\/tr>$/;" a -59 phpunit/coverage/ModuleResponse.php.html /^
<\/td><\/tr>$/;" a -59 phpunit/coverage/Repo.php.html /^
            <\/span>if<\/span>(<\/span> <\/span>$this<\/span>-><\/span>repositories<\/span> <\/span>==<\/span> <\/span>null<\/span> <\/span>)<\/span>{<\/span><\/td><\/tr>$/;" a -59 phpunit/coverage/ResourceDispatcher.php.html /^
            <\/span>self<\/span>::<\/span>$supported_parents<\/span> <\/span>=<\/span> <\/span>$parents_conf<\/span>;<\/span><\/td><\/tr>$/;" a -59 phpunit/coverage/autoloader.php.html /^
    <\/span>function<\/span> <\/span>connected<\/span>(<\/span>)<\/span>{<\/span> <\/span>return<\/span> <\/span>isset<\/span>(<\/span>$_SESSION<\/span>[<\/span>'permission'<\/span>]<\/span>)<\/span> <\/span>&&<\/span> <\/span>count<\/span>(<\/span>$_SESSION<\/span>[<\/span>'permission'<\/span>]<\/span>)<\/span> <\/span>><\/span> <\/span>0<\/span>;<\/span> <\/span>}<\/span><\/td><\/tr>$/;" a -59 phpunit/coverage/repo/token.php.html /^
<\/td><\/tr>$/;" a -59 phpunit/coverage/sessionManager.php.html /^
        <\/span>\/************\/<\/span><\/td><\/tr>$/;" a -6 phpunit/coverage/Database.php.html /^
    <\/span>class<\/span> <\/span>DataBase<\/span>{<\/span><\/td><\/tr>$/;" a -6 phpunit/coverage/ManagerError.php.html /^
<\/td><\/tr>$/;" a -6 phpunit/coverage/ModuleAnswer.php.html /^
    <\/span>\/\/ FORMAT: <\/span><\/td><\/tr>$/;" a -6 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -6 phpunit/coverage/ModuleResponse.php.html /^
    <\/span>\/\/ FORMAT:<\/span><\/td><\/tr>$/;" a -6 phpunit/coverage/Repo.php.html /^
    <\/span>\/\/ FORMAT: <\/span><\/td><\/tr>$/;" a -6 phpunit/coverage/ResourceDispatcher.php.html /^
    <\/span><\/td><\/tr>$/;" a -6 phpunit/coverage/autoloader.php.html /^
<\/td><\/tr>$/;" a -6 phpunit/coverage/module/module.php.html /^
    <\/span>class<\/span> <\/span>module<\/span>{<\/span><\/td><\/tr>$/;" a -6 phpunit/coverage/repo/token.php.html /^
<\/td><\/tr>$/;" a -6 phpunit/coverage/sessionManager.php.html /^
    <\/span>class<\/span> <\/span>sessionManager<\/span>{<\/span><\/td><\/tr>$/;" a -60 phpunit/coverage/Database.php.html /^
            <\/span><\/td><\/tr>$/;" a -60 phpunit/coverage/ManagerError.php.html /^
            <\/span>\/\/ Erreur lors de la creation d'un objet PDO (connection)<\/span><\/td><\/tr>$/;" a -60 phpunit/coverage/ModuleAnswer.php.html /^
<\/td><\/tr>$/;" a -60 phpunit/coverage/ModuleRequest.php.html /^
                <\/span>$this<\/span>-><\/span>error<\/span> <\/span>=<\/span> <\/span>ManagerError<\/span>::<\/span>WrongPathModule<\/span>;<\/span><\/td><\/tr>$/;" a -60 phpunit/coverage/ModuleResponse.php.html /^
<\/td><\/tr>$/;" a -60 phpunit/coverage/Repo.php.html /^
                <\/span>$this<\/span>-><\/span>error<\/span> <\/span>=<\/span> <\/span>ManagerError<\/span>::<\/span>ParsingFailed<\/span>;<\/span><\/td><\/tr>$/;" a -60 phpunit/coverage/ResourceDispatcher.php.html /^
<\/td><\/tr>$/;" a -60 phpunit/coverage/autoloader.php.html /^
<\/td><\/tr>$/;" a -60 phpunit/coverage/repo/token.php.html /^
<\/td><\/tr>$/;" a -60 phpunit/coverage/sessionManager.php.html /^
        <\/span>public<\/span> <\/span>static<\/span> <\/span>function<\/span> <\/span>session_start<\/span>(<\/span>)<\/span>{<\/span><\/td><\/tr>$/;" a -61 phpunit/coverage/Database.php.html /^
            <\/span>return<\/span> <\/span>self<\/span>::<\/span>$instance<\/span>;<\/span><\/td><\/tr>$/;" a -61 phpunit/coverage/ManagerError.php.html /^
            <\/span>const<\/span> <\/span>PDOConnection<\/span>       <\/span>=<\/span> <\/span>14<\/span>;<\/span><\/td><\/tr>$/;" a -61 phpunit/coverage/ModuleAnswer.php.html /^
<\/td><\/tr>$/;" a -61 phpunit/coverage/ModuleRequest.php.html /^
                <\/span>return<\/span> <\/span>false<\/span>;<\/span> <\/span>\/\/ On retourne FALSE, si erreur<\/span><\/td><\/tr>$/;" a -61 phpunit/coverage/ModuleResponse.php.html /^
<\/td><\/tr>$/;" a -61 phpunit/coverage/Repo.php.html /^
                <\/span>return<\/span> <\/span>false<\/span>;<\/span><\/td><\/tr>$/;" a -61 phpunit/coverage/ResourceDispatcher.php.html /^
<\/td><\/tr>$/;" a -61 phpunit/coverage/autoloader.php.html /^
    <\/span>\/* (2) Retourne si l'utilisateur a le status en question *\/<\/span><\/td><\/tr>$/;" a -61 phpunit/coverage/repo/token.php.html /^
            <\/span>\/* [1] On cherche dans la bdd<\/span><\/td><\/tr>$/;" a -61 phpunit/coverage/sessionManager.php.html /^
            <\/span>\\<\/span>session_start<\/span>(<\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -62 phpunit/coverage/Database.php.html /^
        <\/span>}<\/span><\/td><\/tr>$/;" a -62 phpunit/coverage/ManagerError.php.html /^
<\/td><\/tr>$/;" a -62 phpunit/coverage/ModuleAnswer.php.html /^
<\/td><\/tr>$/;" a -62 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>}<\/span><\/td><\/tr>$/;" a -62 phpunit/coverage/ModuleResponse.php.html /^
<\/td><\/tr>$/;" a -62 phpunit/coverage/Repo.php.html /^
            <\/span>}<\/span><\/td><\/tr>$/;" a -62 phpunit/coverage/ResourceDispatcher.php.html /^
<\/td><\/tr>$/;" a -62 phpunit/coverage/autoloader.php.html /^
    <\/span>function<\/span> <\/span>permission<\/span>(<\/span>$type<\/span>)<\/span>{<\/span> <\/span>return<\/span> <\/span>connected<\/span>(<\/span>)<\/span> <\/span>&&<\/span> <\/span>in_array<\/span>(<\/span>$type<\/span>,<\/span> <\/span>$_SESSION<\/span>[<\/span>'permission'<\/span>]<\/span>)<\/span>;<\/span> <\/span>}<\/span><\/td><\/tr>$/;" a -62 phpunit/coverage/repo/token.php.html /^
            =========================================================*\/<\/span><\/td><\/tr>$/;" a -62 phpunit/coverage/sessionManager.php.html /^
            <\/span>return<\/span>;<\/span><\/td><\/tr>$/;" a -63 phpunit/coverage/Database.php.html /^
<\/td><\/tr>$/;" a -63 phpunit/coverage/ManagerError.php.html /^
        <\/span>\/* API token *\/<\/span><\/td><\/tr>$/;" a -63 phpunit/coverage/ModuleAnswer.php.html /^
<\/td><\/tr>$/;" a -63 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -63 phpunit/coverage/ModuleResponse.php.html /^
<\/td><\/tr>$/;" a -63 phpunit/coverage/Repo.php.html /^
<\/td><\/tr>$/;" a -63 phpunit/coverage/ResourceDispatcher.php.html /^
            <\/span>\/* [1] On recupere les donnees de l'URL<\/span><\/td><\/tr>$/;" a -63 phpunit/coverage/autoloader.php.html /^
<\/td><\/tr>$/;" a -63 phpunit/coverage/repo/token.php.html /^
            <\/span>$get_token<\/span> <\/span>=<\/span> <\/span>Database<\/span>::<\/span>getPDO<\/span>(<\/span>)<\/span>-><\/span>prepare<\/span>(<\/span>"SELECT id_token FROM api_token WHERE id_token = :id_token"<\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -63 phpunit/coverage/sessionManager.php.html /^
<\/td><\/tr>$/;" a -64 phpunit/coverage/Database.php.html /^
        <\/span>\/* retourne la connection statique *\/<\/span><\/td><\/tr>$/;" a -64 phpunit/coverage/ManagerError.php.html /^
            <\/span>\/\/ Token inexistant ou faux<\/span><\/td><\/tr>$/;" a -64 phpunit/coverage/ModuleAnswer.php.html /^
        <\/span>\/* AJOUTE TOUTES LES DONNEES A LA REPONSE<\/span><\/td><\/tr>$/;" a -64 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>\/\/ Type de @data (optionnel)<\/span><\/td><\/tr>$/;" a -64 phpunit/coverage/ModuleResponse.php.html /^
        <\/span>\/* AJOUTE TOUTES LES DONNEES A LA REPONSE<\/span><\/td><\/tr>$/;" a -64 phpunit/coverage/Repo.php.html /^
<\/td><\/tr>$/;" a -64 phpunit/coverage/ResourceDispatcher.php.html /^
            ==================================================*\/<\/span><\/td><\/tr>$/;" a -64 phpunit/coverage/autoloader.php.html /^
?><\/span><\/td><\/tr>$/;" a -64 phpunit/coverage/repo/token.php.html /^
            <\/span>$get_token<\/span>-><\/span>execute<\/span>(<\/span> <\/span>array<\/span>(<\/span> <\/span>':id_token'<\/span> <\/span>=><\/span> <\/span>$id_token<\/span> <\/span>)<\/span> <\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -64 phpunit/coverage/sessionManager.php.html /^
<\/td><\/tr>$/;" a -65 phpunit/coverage/Database.php.html /^
        <\/span>public<\/span> <\/span>static<\/span> <\/span>function<\/span> <\/span>getPDO<\/span>(<\/span>)<\/span>{<\/span><\/td><\/tr>$/;" a -65 phpunit/coverage/ManagerError.php.html /^
            <\/span>const<\/span> <\/span>TokenError<\/span>          <\/span>=<\/span> <\/span>15<\/span>;<\/span><\/td><\/tr>$/;" a -65 phpunit/coverage/ModuleAnswer.php.html /^
        *<\/span><\/td><\/tr>$/;" a -65 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>$params<\/span> <\/span>=<\/span> <\/span>(<\/span>is_array<\/span>(<\/span>$params<\/span>)<\/span>)<\/span> <\/span>?<\/span> <\/span>$params<\/span> <\/span>:<\/span> <\/span>array<\/span>(<\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -65 phpunit/coverage/ModuleResponse.php.html /^
        *<\/span><\/td><\/tr>$/;" a -65 phpunit/coverage/Repo.php.html /^
<\/td><\/tr>$/;" a -65 phpunit/coverage/ResourceDispatcher.php.html /^
            <\/span>$serialFlags<\/span> <\/span>=<\/span> <\/span>array_slice<\/span>(<\/span> <\/span>explode<\/span>(<\/span>'\/'<\/span>,<\/span>$url<\/span>)<\/span>,<\/span> <\/span>1<\/span> <\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -65 phpunit/coverage/repo/token.php.html /^
<\/td><\/tr>$/;" a -65 phpunit/coverage/sessionManager.php.html /^
            <\/span>\/* [1] Génération et Gestion des donnees a utiliser<\/span><\/td><\/tr>$/;" a -66 phpunit/coverage/Database.php.html /^
            <\/span>$instance<\/span> <\/span>=<\/span> <\/span>self<\/span>::<\/span>getInstance<\/span>(<\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -66 phpunit/coverage/ManagerError.php.html /^
<\/td><\/tr>$/;" a -66 phpunit/coverage/ModuleAnswer.php.html /^
        * @dataset<Array>                                     Le tableau associatif correspondant a la reponse<\/span><\/td><\/tr>$/;" a -66 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -66 phpunit/coverage/ModuleResponse.php.html /^
        * @dataset<Array>                                     Le tableau associatif correspondant a la reponse<\/span><\/td><\/tr>$/;" a -66 phpunit/coverage/Repo.php.html /^
            <\/span>\/* [1] Verification des types des parametres<\/span><\/td><\/tr>$/;" a -66 phpunit/coverage/ResourceDispatcher.php.html /^
<\/td><\/tr>$/;" a -66 phpunit/coverage/repo/token.php.html /^
<\/td><\/tr>$/;" a -66 phpunit/coverage/sessionManager.php.html /^
            ==============================================================*\/<\/span><\/td><\/tr>$/;" a -67 phpunit/coverage/Database.php.html /^
<\/td><\/tr>$/;" a -67 phpunit/coverage/ManagerError.php.html /^
            <\/span>const<\/span> <\/span>PermissionError<\/span>     <\/span>=<\/span> <\/span>16<\/span>;<\/span><\/td><\/tr>$/;" a -67 phpunit/coverage/ModuleAnswer.php.html /^
        *<\/span><\/td><\/tr>$/;" a -67 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -67 phpunit/coverage/ModuleResponse.php.html /^
        *<\/span><\/td><\/tr>$/;" a -67 phpunit/coverage/Repo.php.html /^
            =========================================================*\/<\/span><\/td><\/tr>$/;" a -67 phpunit/coverage/ResourceDispatcher.php.html /^
            <\/span>\/* [2] On check\/cree les drapeaux avec ces donnees<\/span><\/td><\/tr>$/;" a -67 phpunit/coverage/repo/token.php.html /^
            <\/span>\/* [2] On renvoie la valeur ou FALSE<\/span><\/td><\/tr>$/;" a -67 phpunit/coverage/sessionManager.php.html /^
            <\/span>\/\/ On genere le hash a partir des donnees personnelles<\/span><\/td><\/tr>$/;" a -68 phpunit/coverage/Database.php.html /^
            <\/span>return<\/span> <\/span>self<\/span>::<\/span>$pdo<\/span>;<\/span><\/td><\/tr>$/;" a -68 phpunit/coverage/ManagerError.php.html /^
<\/td><\/tr>$/;" a -68 phpunit/coverage/ModuleAnswer.php.html /^
        *\/<\/span><\/td><\/tr>$/;" a -68 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>\/* [2] Verification du chemin (existence module+methode)<\/span><\/td><\/tr>$/;" a -68 phpunit/coverage/ModuleResponse.php.html /^
        *\/<\/span><\/td><\/tr>$/;" a -68 phpunit/coverage/Repo.php.html /^
            <\/span>\/\/ Type de @path<\/span><\/td><\/tr>$/;" a -68 phpunit/coverage/ResourceDispatcher.php.html /^
            ==================================================*\/<\/span><\/td><\/tr>$/;" a -68 phpunit/coverage/repo/token.php.html /^
            =========================================================*\/<\/span><\/td><\/tr>$/;" a -68 phpunit/coverage/sessionManager.php.html /^
            <\/span>self<\/span>::<\/span>$prefix<\/span> <\/span>=<\/span> <\/span>self<\/span>::<\/span>sha1<\/span>(<\/span> <\/span>$_SERVER<\/span>[<\/span>'REMOTE_ADDR'<\/span>]<\/span>.<\/span>$_SERVER<\/span>[<\/span>'HTTP_USER_AGENT'<\/span>]<\/span> <\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -69 phpunit/coverage/Database.php.html /^
        <\/span>}<\/span><\/td><\/tr>$/;" a -69 phpunit/coverage/ManagerError.php.html /^
<\/td><\/tr>$/;" a -69 phpunit/coverage/ModuleAnswer.php.html /^
        <\/span>public<\/span> <\/span>function<\/span> <\/span>appendAll<\/span>(<\/span>$dataset<\/span>)<\/span>{<\/span><\/td><\/tr>$/;" a -69 phpunit/coverage/ModuleRequest.php.html /^
            =========================================================*\/<\/span><\/td><\/tr>$/;" a -69 phpunit/coverage/ModuleResponse.php.html /^
        <\/span>public<\/span> <\/span>function<\/span> <\/span>appendAll<\/span>(<\/span>$dataset<\/span>)<\/span>{<\/span><\/td><\/tr>$/;" a -69 phpunit/coverage/Repo.php.html /^
            <\/span>if<\/span>(<\/span> <\/span>!<\/span>is_string<\/span>(<\/span>$path<\/span>)<\/span> <\/span>)<\/span>{<\/span> <\/span>\/\/ Si le type est incorrect<\/span><\/td><\/tr>$/;" a -69 phpunit/coverage/ResourceDispatcher.php.html /^
            <\/span>if<\/span>(<\/span> <\/span>!<\/span>$this<\/span>-><\/span>createFlags<\/span>(<\/span>$serialFlags<\/span>)<\/span> <\/span>)<\/span>{<\/span> <\/span>\/\/ Creation des drapeaux<\/span><\/td><\/tr>$/;" a -69 phpunit/coverage/repo/token.php.html /^
            <\/span>return<\/span> <\/span>$get_token<\/span>-><\/span>fetch<\/span>(<\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -69 phpunit/coverage/sessionManager.php.html /^
<\/td><\/tr>$/;" a -7 phpunit/coverage/Database.php.html /^
        <\/span><\/td><\/tr>$/;" a -7 phpunit/coverage/ManagerError.php.html /^
    <\/span>class<\/span> <\/span>ManagerError<\/span>{<\/span><\/td><\/tr>$/;" a -7 phpunit/coverage/ModuleAnswer.php.html /^
    <\/span>\/\/ <\/span><\/td><\/tr>$/;" a -7 phpunit/coverage/ModuleRequest.php.html /^
    <\/span>class<\/span> <\/span>ModuleRequest<\/span>{<\/span><\/td><\/tr>$/;" a -7 phpunit/coverage/ModuleResponse.php.html /^
    <\/span>\/\/<\/span><\/td><\/tr>$/;" a -7 phpunit/coverage/Repo.php.html /^
    <\/span>\/\/ <\/span><\/td><\/tr>$/;" a -7 phpunit/coverage/ResourceDispatcher.php.html /^
<\/td><\/tr>$/;" a -7 phpunit/coverage/autoloader.php.html /^
<\/td><\/tr>$/;" a -7 phpunit/coverage/module/module.php.html /^
<\/td><\/tr>$/;" a -7 phpunit/coverage/repo/token.php.html /^
    <\/span>class<\/span> <\/span>token<\/span>{<\/span><\/td><\/tr>$/;" a -7 phpunit/coverage/sessionManager.php.html /^
<\/td><\/tr>$/;" a -70 phpunit/coverage/Database.php.html /^
<\/td><\/tr>$/;" a -70 phpunit/coverage/ManagerError.php.html /^
        <\/span>\/* EXPLICITE UN CODE D'ERREUR<\/span><\/td><\/tr>$/;" a -70 phpunit/coverage/ModuleAnswer.php.html /^
            <\/span>\/\/ Si ce n'est pas un tableau, on ne fais rien<\/span><\/td><\/tr>$/;" a -70 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>if<\/span>(<\/span> <\/span>!<\/span>$this<\/span>-><\/span>checkPath<\/span>(<\/span>$path<\/span>)<\/span> <\/span>)<\/span> <\/span>\/\/ Verification de la coherence du chemin + attribution<\/span><\/td><\/tr>$/;" a -70 phpunit/coverage/ModuleResponse.php.html /^
            <\/span>\/\/ Si ce n'est pas un tableau, on ne fais rien<\/span><\/td><\/tr>$/;" a -70 phpunit/coverage/Repo.php.html /^
                <\/span>$this<\/span>-><\/span>error<\/span> <\/span>=<\/span> <\/span>ManagerError<\/span>::<\/span>WrongPathRepo<\/span>;<\/span><\/td><\/tr>$/;" a -70 phpunit/coverage/ResourceDispatcher.php.html /^
                <\/span>$this<\/span>-><\/span>error<\/span> <\/span>=<\/span> <\/span>ManagerError<\/span>::<\/span>InvalidFlags<\/span>;<\/span><\/td><\/tr>$/;" a -70 phpunit/coverage/repo/token.php.html /^
        <\/span>}<\/span><\/td><\/tr>$/;" a -70 phpunit/coverage/sessionManager.php.html /^
            <\/span>\/\/ On cree un id session associe aux donnees personnelles<\/span><\/td><\/tr>$/;" a -71 phpunit/coverage/Database.php.html /^
<\/td><\/tr>$/;" a -71 phpunit/coverage/ManagerError.php.html /^
        *<\/span><\/td><\/tr>$/;" a -71 phpunit/coverage/ModuleAnswer.php.html /^
            <\/span>if<\/span>(<\/span> <\/span>!<\/span>is_array<\/span>(<\/span>$dataset<\/span>)<\/span> <\/span>)<\/span> <\/span>return<\/span> <\/span>$this<\/span>;<\/span><\/td><\/tr>$/;" a -71 phpunit/coverage/ModuleRequest.php.html /^
                <\/span>return<\/span> <\/span>false<\/span>;<\/span><\/td><\/tr>$/;" a -71 phpunit/coverage/ModuleResponse.php.html /^
            <\/span>if<\/span>(<\/span> <\/span>!<\/span>is_array<\/span>(<\/span>$dataset<\/span>)<\/span> <\/span>)<\/span> <\/span>return<\/span> <\/span>$this<\/span>;<\/span><\/td><\/tr>$/;" a -71 phpunit/coverage/Repo.php.html /^
                <\/span>return<\/span> <\/span>false<\/span>;<\/span> <\/span>\/\/ On retourne FALSE, si erreur<\/span><\/td><\/tr>$/;" a -71 phpunit/coverage/ResourceDispatcher.php.html /^
                <\/span>return<\/span> <\/span>false<\/span>;<\/span><\/td><\/tr>$/;" a -71 phpunit/coverage/repo/token.php.html /^
<\/td><\/tr>$/;" a -71 phpunit/coverage/sessionManager.php.html /^
            <\/span>$sessid<\/span> <\/span>=<\/span> <\/span>substr<\/span>(<\/span>self<\/span>::<\/span>$prefix<\/span>,<\/span>0<\/span>,<\/span>5<\/span>)<\/span> <\/span>.<\/span> <\/span>substr<\/span>(<\/span>self<\/span>::<\/span>sha1<\/span>(<\/span>uniqid<\/span>(<\/span>)<\/span>)<\/span>,<\/span>0<\/span>,<\/span>24<\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -72 phpunit/coverage/Database.php.html /^
<\/td><\/tr>$/;" a -72 phpunit/coverage/ManagerError.php.html /^
        * @error<Integer>                                     Code d'erreur<\/span><\/td><\/tr>$/;" a -72 phpunit/coverage/ModuleAnswer.php.html /^
<\/td><\/tr>$/;" a -72 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -72 phpunit/coverage/ModuleResponse.php.html /^
<\/td><\/tr>$/;" a -72 phpunit/coverage/Repo.php.html /^
            <\/span>}<\/span><\/td><\/tr>$/;" a -72 phpunit/coverage/ResourceDispatcher.php.html /^
            <\/span>}<\/span><\/td><\/tr>$/;" a -72 phpunit/coverage/repo/token.php.html /^
<\/td><\/tr>$/;" a -72 phpunit/coverage/sessionManager.php.html /^
<\/td><\/tr>$/;" a -73 phpunit/coverage/Database.php.html /^
<\/td><\/tr>$/;" a -73 phpunit/coverage/ManagerError.php.html /^
        *<\/span><\/td><\/tr>$/;" a -73 phpunit/coverage/ModuleAnswer.php.html /^
            <\/span>\/\/ Si une valeur contient une erreur<\/span><\/td><\/tr>$/;" a -73 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -73 phpunit/coverage/ModuleResponse.php.html /^
            <\/span>\/\/ Si une valeur contient une erreur<\/span><\/td><\/tr>$/;" a -73 phpunit/coverage/Repo.php.html /^
<\/td><\/tr>$/;" a -73 phpunit/coverage/ResourceDispatcher.php.html /^
<\/td><\/tr>$/;" a -73 phpunit/coverage/repo/token.php.html /^
<\/td><\/tr>$/;" a -73 phpunit/coverage/sessionManager.php.html /^
            <\/span>\/\/ On genere un token pour l'execution suivante<\/span><\/td><\/tr>$/;" a -74 phpunit/coverage/Database.php.html /^
<\/td><\/tr>$/;" a -74 phpunit/coverage/ManagerError.php.html /^
        * @return explicit<String>                             Description explicite du code d'erreur<\/span><\/td><\/tr>$/;" a -74 phpunit/coverage/ModuleAnswer.php.html /^
            <\/span>if<\/span>(<\/span> <\/span>array_key_exists<\/span>(<\/span>'ModuleError'<\/span>,<\/span> <\/span>$dataset<\/span>)<\/span> <\/span>)<\/span>{<\/span><\/td><\/tr>$/;" a -74 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -74 phpunit/coverage/ModuleResponse.php.html /^
            <\/span>if<\/span>(<\/span> <\/span>array_key_exists<\/span>(<\/span>'ModuleError'<\/span>,<\/span> <\/span>$dataset<\/span>)<\/span> <\/span>)<\/span>{<\/span><\/td><\/tr>$/;" a -74 phpunit/coverage/Repo.php.html /^
            <\/span>\/\/ Type de @data (optionnel)<\/span><\/td><\/tr>$/;" a -74 phpunit/coverage/ResourceDispatcher.php.html /^
            <\/span>\/* [3] On construit le chemin a partir des tags<\/span><\/td><\/tr>$/;" a -74 phpunit/coverage/repo/token.php.html /^
        <\/span>\/* VERIFIE SI UN TOKEN EST VALIDE<\/span><\/td><\/tr>$/;" a -74 phpunit/coverage/sessionManager.php.html /^
            <\/span>$token<\/span> <\/span>=<\/span> <\/span>self<\/span>::<\/span>$prefix<\/span>.<\/span>self<\/span>::<\/span>sha1<\/span>(<\/span>uniqid<\/span>(<\/span>)<\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -75 phpunit/coverage/Database.php.html /^
<\/td><\/tr>$/;" a -75 phpunit/coverage/ManagerError.php.html /^
        *<\/span><\/td><\/tr>$/;" a -75 phpunit/coverage/ModuleAnswer.php.html /^
                <\/span>\/\/ On definit cette erreur<\/span><\/td><\/tr>$/;" a -75 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>\/* [3] Verification des droits<\/span><\/td><\/tr>$/;" a -75 phpunit/coverage/ModuleResponse.php.html /^
                <\/span>\/\/ On definit cette erreur<\/span><\/td><\/tr>$/;" a -75 phpunit/coverage/Repo.php.html /^
            <\/span>$data<\/span> <\/span>=<\/span> <\/span>(<\/span>is_array<\/span>(<\/span>$data<\/span>)<\/span>)<\/span> <\/span>?<\/span> <\/span>$data<\/span> <\/span>:<\/span> <\/span>array<\/span>(<\/span>)<\/span>;<\/span> <\/span><\/td><\/tr>$/;" a -75 phpunit/coverage/ResourceDispatcher.php.html /^
            ==================================================*\/<\/span><\/td><\/tr>$/;" a -75 phpunit/coverage/repo/token.php.html /^
        *<\/span><\/td><\/tr>$/;" a -75 phpunit/coverage/sessionManager.php.html /^
<\/td><\/tr>$/;" a -76 phpunit/coverage/Database.php.html /^
<\/td><\/tr>$/;" a -76 phpunit/coverage/ManagerError.php.html /^
        *\/<\/span><\/td><\/tr>$/;" a -76 phpunit/coverage/ModuleAnswer.php.html /^
                <\/span>$this<\/span>-><\/span>error<\/span> <\/span>=<\/span> <\/span>$dataset<\/span>[<\/span>'ModuleError'<\/span>]<\/span>;<\/span><\/td><\/tr>$/;" a -76 phpunit/coverage/ModuleRequest.php.html /^
            =========================================================*\/<\/span><\/td><\/tr>$/;" a -76 phpunit/coverage/ModuleResponse.php.html /^
                <\/span>$this<\/span>-><\/span>error<\/span> <\/span>=<\/span> <\/span>$dataset<\/span>[<\/span>'ModuleError'<\/span>]<\/span>;<\/span><\/td><\/tr>$/;" a -76 phpunit/coverage/Repo.php.html /^
<\/td><\/tr>$/;" a -76 phpunit/coverage/ResourceDispatcher.php.html /^
            <\/span>if<\/span>(<\/span> <\/span>!<\/span>$this<\/span>-><\/span>buildPath<\/span>(<\/span>)<\/span> <\/span>)<\/span>{<\/span> <\/span>\/\/ Construction du chemin<\/span><\/td><\/tr>$/;" a -76 phpunit/coverage/repo/token.php.html /^
        * @token<String>                                     Token en question<\/span><\/td><\/tr>$/;" a -76 phpunit/coverage/sessionManager.php.html /^
            <\/span>\/\/ On definit\/recupere le token<\/span><\/td><\/tr>$/;" a -77 phpunit/coverage/Database.php.html /^
<\/td><\/tr>$/;" a -77 phpunit/coverage/ManagerError.php.html /^
        <\/span>public<\/span> <\/span>static<\/span> <\/span>function<\/span> <\/span>explicit<\/span>(<\/span>$error<\/span>)<\/span>{<\/span><\/td><\/tr>$/;" a -77 phpunit/coverage/ModuleAnswer.php.html /^
                <\/span>\/\/ On enleve cette entree des donnees<\/span><\/td><\/tr>$/;" a -77 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>if<\/span>(<\/span> <\/span>!<\/span>$this<\/span>-><\/span>checkPermission<\/span>(<\/span>$token<\/span>)<\/span> <\/span>)<\/span> <\/span>\/\/ Si on a pas les droits<\/span><\/td><\/tr>$/;" a -77 phpunit/coverage/ModuleResponse.php.html /^
                <\/span>\/\/ On enleve cette entree des donnees<\/span><\/td><\/tr>$/;" a -77 phpunit/coverage/Repo.php.html /^
<\/td><\/tr>$/;" a -77 phpunit/coverage/ResourceDispatcher.php.html /^
                <\/span>$this<\/span>-><\/span>error<\/span> <\/span>=<\/span> <\/span>ManagerError<\/span>::<\/span>UnreachableResource<\/span>;<\/span><\/td><\/tr>$/;" a -77 phpunit/coverage/repo/token.php.html /^
        *<\/span><\/td><\/tr>$/;" a -77 phpunit/coverage/sessionManager.php.html /^
            <\/span>$session_token<\/span> <\/span>=<\/span> <\/span>(<\/span>isset<\/span>(<\/span>$_COOKIE<\/span>[<\/span>'session_token'<\/span>]<\/span>)<\/span>)<\/span> <\/span>?<\/span> <\/span>$_COOKIE<\/span>[<\/span>'session_token'<\/span>]<\/span>  <\/span>:<\/span> <\/span>null<\/span>;<\/span><\/td><\/tr>$/;" a -78 phpunit/coverage/Database.php.html /^
<\/td><\/tr>$/;" a -78 phpunit/coverage/ManagerError.php.html /^
            <\/span>switch<\/span>(<\/span>$error<\/span>)<\/span>{<\/span><\/td><\/tr>$/;" a -78 phpunit/coverage/ModuleAnswer.php.html /^
                <\/span>unset<\/span>(<\/span>$dataset<\/span>[<\/span>'ModuleError'<\/span>]<\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -78 phpunit/coverage/ModuleRequest.php.html /^
                <\/span>return<\/span> <\/span>false<\/span>;<\/span><\/td><\/tr>$/;" a -78 phpunit/coverage/ModuleResponse.php.html /^
                <\/span>unset<\/span>(<\/span>$dataset<\/span>[<\/span>'ModuleError'<\/span>]<\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -78 phpunit/coverage/Repo.php.html /^
            <\/span>\/* [2] Verification du chemin (existence repo+methode)<\/span><\/td><\/tr>$/;" a -78 phpunit/coverage/ResourceDispatcher.php.html /^
                <\/span>return<\/span> <\/span>false<\/span>;<\/span><\/td><\/tr>$/;" a -78 phpunit/coverage/repo/token.php.html /^
        * @return permissions<Array>                         Retourne les permissions (droits) du token s'il est valide sinon retourne FAUX<\/span><\/td><\/tr>$/;" a -78 phpunit/coverage/sessionManager.php.html /^
<\/td><\/tr>$/;" a -79 phpunit/coverage/Database.php.html /^
        <\/span>public<\/span> <\/span>function<\/span> <\/span>getConfig<\/span>(<\/span>)<\/span>{<\/span><\/td><\/tr>$/;" a -79 phpunit/coverage/ManagerError.php.html /^
                <\/span>case<\/span> <\/span>self<\/span>::<\/span>Success<\/span>:<\/span>             <\/span>return<\/span> <\/span>"Tout s'est bien deroule"<\/span>;<\/span>                                             <\/span>break<\/span>;<\/span><\/td><\/tr>$/;" a -79 phpunit/coverage/ModuleAnswer.php.html /^
            <\/span>}<\/span><\/td><\/tr>$/;" a -79 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -79 phpunit/coverage/ModuleResponse.php.html /^
            <\/span>}<\/span><\/td><\/tr>$/;" a -79 phpunit/coverage/Repo.php.html /^
            =========================================================*\/<\/span><\/td><\/tr>$/;" a -79 phpunit/coverage/ResourceDispatcher.php.html /^
            <\/span>}<\/span><\/td><\/tr>$/;" a -79 phpunit/coverage/repo/token.php.html /^
        *<\/span><\/td><\/tr>$/;" a -79 phpunit/coverage/sessionManager.php.html /^
<\/td><\/tr>$/;" a -8 phpunit/coverage/Database.php.html /^
        <\/span>\/* ATTRIBUTS STATIQUES *\/<\/span><\/td><\/tr>$/;" a -8 phpunit/coverage/ManagerError.php.html /^
<\/td><\/tr>$/;" a -8 phpunit/coverage/ModuleAnswer.php.html /^
    <\/span>\/\/ path:  "nomModule\/nomMethode"<\/span><\/td><\/tr>$/;" a -8 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -8 phpunit/coverage/ModuleResponse.php.html /^
    <\/span>\/\/ path:  "nomModule\/nomMethode"<\/span><\/td><\/tr>$/;" a -8 phpunit/coverage/Repo.php.html /^
    <\/span>\/\/ path:  "nomModule\/nomMethode"<\/span><\/td><\/tr>$/;" a -8 phpunit/coverage/ResourceDispatcher.php.html /^
    <\/span>class<\/span> <\/span>ResourceDispatcher<\/span>{<\/span><\/td><\/tr>$/;" a -8 phpunit/coverage/autoloader.php.html /^
<\/td><\/tr>$/;" a -8 phpunit/coverage/module/module.php.html /^
        <\/span>public<\/span> <\/span>static<\/span> <\/span>function<\/span> <\/span>method<\/span>(<\/span>)<\/span>{<\/span><\/td><\/tr>$/;" a -8 phpunit/coverage/repo/token.php.html /^
        <\/span><\/td><\/tr>$/;" a -8 phpunit/coverage/sessionManager.php.html /^
        <\/span>private<\/span> <\/span>static<\/span> <\/span>$prefix<\/span>;<\/span><\/td><\/tr>$/;" a -80 phpunit/coverage/Database.php.html /^
            <\/span>return<\/span> <\/span>array<\/span>(<\/span><\/td><\/tr>$/;" a -80 phpunit/coverage/ManagerError.php.html /^
<\/td><\/tr>$/;" a -80 phpunit/coverage/ModuleAnswer.php.html /^
<\/td><\/tr>$/;" a -80 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -80 phpunit/coverage/ModuleResponse.php.html /^
<\/td><\/tr>$/;" a -80 phpunit/coverage/Repo.php.html /^
            <\/span>if<\/span>(<\/span> <\/span>!<\/span>$this<\/span>-><\/span>checkPath<\/span>(<\/span>$path<\/span>)<\/span> <\/span>)<\/span> <\/span>\/\/ Verification de la coherence du chemin + attribution<\/span><\/td><\/tr>$/;" a -80 phpunit/coverage/ResourceDispatcher.php.html /^
<\/td><\/tr>$/;" a -80 phpunit/coverage/repo/token.php.html /^
        *\/<\/span><\/td><\/tr>$/;" a -80 phpunit/coverage/sessionManager.php.html /^
<\/td><\/tr>$/;" a -81 phpunit/coverage/Database.php.html /^
                <\/span>'host'<\/span> <\/span>=><\/span> <\/span>$this<\/span>-><\/span>host<\/span>,<\/span><\/td><\/tr>$/;" a -81 phpunit/coverage/ManagerError.php.html /^
                <\/span>case<\/span> <\/span>self<\/span>::<\/span>ParsingFailed<\/span>:<\/span>       <\/span>return<\/span> <\/span>"La lecture du fichier JSON ou XML a echoue"<\/span>;<\/span>                          <\/span>break<\/span>;<\/span><\/td><\/tr>$/;" a -81 phpunit/coverage/ModuleAnswer.php.html /^
            <\/span>\/\/ Ajoute une entree pour la cle @key et de valeur @value<\/span><\/td><\/tr>$/;" a -81 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>\/* [4] Verification des parametres (si @type est defini)<\/span><\/td><\/tr>$/;" a -81 phpunit/coverage/ModuleResponse.php.html /^
            <\/span>\/\/ Ajoute une entree pour la cle @key et de valeur @value<\/span><\/td><\/tr>$/;" a -81 phpunit/coverage/Repo.php.html /^
                <\/span>return<\/span> <\/span>false<\/span>;<\/span><\/td><\/tr>$/;" a -81 phpunit/coverage/ResourceDispatcher.php.html /^
            <\/span>\/* [4] On gere l'affichage pour l'appel externe\/interne<\/span><\/td><\/tr>$/;" a -81 phpunit/coverage/repo/token.php.html /^
        <\/span>public<\/span> <\/span>static<\/span> <\/span>function<\/span> <\/span>check<\/span>(<\/span>$token<\/span>)<\/span>{<\/span><\/td><\/tr>$/;" a -81 phpunit/coverage/sessionManager.php.html /^
            <\/span>\/* [2] Verification de l'id session<\/span><\/td><\/tr>$/;" a -82 phpunit/coverage/Database.php.html /^
                <\/span>'username'<\/span> <\/span>=><\/span> <\/span>$this<\/span>-><\/span>username<\/span><\/td><\/tr>$/;" a -82 phpunit/coverage/ManagerError.php.html /^
<\/td><\/tr>$/;" a -82 phpunit/coverage/ModuleAnswer.php.html /^
            <\/span>$this<\/span>-><\/span>data<\/span> <\/span>=<\/span> <\/span>$dataset<\/span>;<\/span><\/td><\/tr>$/;" a -82 phpunit/coverage/ModuleRequest.php.html /^
            =========================================================*\/<\/span><\/td><\/tr>$/;" a -82 phpunit/coverage/ModuleResponse.php.html /^
            <\/span>$this<\/span>-><\/span>data<\/span> <\/span>=<\/span> <\/span>$dataset<\/span>;<\/span><\/td><\/tr>$/;" a -82 phpunit/coverage/Repo.php.html /^
                <\/span>\/\/ Gestion d'erreur interne<\/span><\/td><\/tr>$/;" a -82 phpunit/coverage/ResourceDispatcher.php.html /^
            ==================================================*\/<\/span><\/td><\/tr>$/;" a -82 phpunit/coverage/repo/token.php.html /^
            <\/span>\/* [0] Verification des INPUT<\/span><\/td><\/tr>$/;" a -82 phpunit/coverage/sessionManager.php.html /^
            ==============================================================*\/<\/span><\/td><\/tr>$/;" a -83 phpunit/coverage/Database.php.html /^
            <\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -83 phpunit/coverage/ManagerError.php.html /^
                <\/span>case<\/span> <\/span>self<\/span>::<\/span>InvalidFlags<\/span>:<\/span>        <\/span>return<\/span> <\/span>"Les specifications (drapeaux) sont incorrects"<\/span>;<\/span>                       <\/span>break<\/span>;<\/span><\/td><\/tr>$/;" a -83 phpunit/coverage/ModuleAnswer.php.html /^
<\/td><\/tr>$/;" a -83 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>if<\/span>(<\/span> <\/span>!<\/span>$this<\/span>-><\/span>checkParams<\/span>(<\/span>$params<\/span>)<\/span> <\/span>)<\/span>{<\/span> <\/span>\/\/ Verification de tous les types<\/span><\/td><\/tr>$/;" a -83 phpunit/coverage/ModuleResponse.php.html /^
<\/td><\/tr>$/;" a -83 phpunit/coverage/Repo.php.html /^
<\/td><\/tr>$/;" a -83 phpunit/coverage/ResourceDispatcher.php.html /^
            <\/span>if<\/span>(<\/span> <\/span>$view<\/span> <\/span>)<\/span> <\/span>\/\/ Appel externe<\/span><\/td><\/tr>$/;" a -83 phpunit/coverage/repo/token.php.html /^
            =========================================================*\/<\/span><\/td><\/tr>$/;" a -83 phpunit/coverage/sessionManager.php.html /^
            <\/span>\\<\/span>session_start<\/span>(<\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -84 phpunit/coverage/Database.php.html /^
        <\/span>}<\/span><\/td><\/tr>$/;" a -84 phpunit/coverage/ManagerError.php.html /^
                <\/span>case<\/span> <\/span>self<\/span>::<\/span>UnreachableResource<\/span>:<\/span> <\/span>return<\/span> <\/span>"La ressource n'existe pas (404)"<\/span>;<\/span>                                     <\/span>break<\/span>;<\/span><\/td><\/tr>$/;" a -84 phpunit/coverage/ModuleAnswer.php.html /^
            <\/span>return<\/span> <\/span>$this<\/span>;<\/span><\/td><\/tr>$/;" a -84 phpunit/coverage/ModuleRequest.php.html /^
                <\/span>$this<\/span>-><\/span>error<\/span> <\/span>=<\/span> <\/span>ManagerError<\/span>::<\/span>ParamError<\/span>;<\/span><\/td><\/tr>$/;" a -84 phpunit/coverage/ModuleResponse.php.html /^
            <\/span>return<\/span> <\/span>$this<\/span>;<\/span><\/td><\/tr>$/;" a -84 phpunit/coverage/Repo.php.html /^
<\/td><\/tr>$/;" a -84 phpunit/coverage/ResourceDispatcher.php.html /^
                <\/span>$this<\/span>-><\/span>view<\/span>(<\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -84 phpunit/coverage/repo/token.php.html /^
            <\/span>\/\/ si le format est incorrect, on retourne FAUX<\/span><\/td><\/tr>$/;" a -84 phpunit/coverage/sessionManager.php.html /^
<\/td><\/tr>$/;" a -85 phpunit/coverage/Database.php.html /^
<\/td><\/tr>$/;" a -85 phpunit/coverage/ManagerError.php.html /^
                <\/span>case<\/span> <\/span>self<\/span>::<\/span>MissingPath<\/span>:<\/span>         <\/span>return<\/span> <\/span>"Le chemin de delegation n'a pas ete renseigne"<\/span>;<\/span>                       <\/span>break<\/span>;<\/span><\/td><\/tr>$/;" a -85 phpunit/coverage/ModuleAnswer.php.html /^
        <\/span>}<\/span><\/td><\/tr>$/;" a -85 phpunit/coverage/ModuleRequest.php.html /^
                <\/span>return<\/span> <\/span>false<\/span>;<\/span><\/td><\/tr>$/;" a -85 phpunit/coverage/ModuleResponse.php.html /^
        <\/span>}<\/span><\/td><\/tr>$/;" a -85 phpunit/coverage/Repo.php.html /^
            <\/span>\/* [3] Construction de l'objet<\/span><\/td><\/tr>$/;" a -85 phpunit/coverage/ResourceDispatcher.php.html /^
<\/td><\/tr>$/;" a -85 phpunit/coverage/repo/token.php.html /^
            <\/span>if<\/span>(<\/span> <\/span>!<\/span>Database<\/span>::<\/span>check<\/span>(<\/span>'sha1'<\/span>,<\/span> <\/span>$token<\/span>)<\/span> <\/span>)<\/span> <\/span>return<\/span> <\/span>false<\/span>;<\/span><\/td><\/tr>$/;" a -85 phpunit/coverage/sessionManager.php.html /^
            <\/span>\/\/ On verifie l'id session (5 premiers chars du hash des donnees perso)<\/span><\/td><\/tr>$/;" a -86 phpunit/coverage/Database.php.html /^
<\/td><\/tr>$/;" a -86 phpunit/coverage/ManagerError.php.html /^
                <\/span>case<\/span> <\/span>self<\/span>::<\/span>WrongPathModule<\/span>:<\/span>     <\/span>return<\/span> <\/span>"Le chemin de delegation est incorrect ('nomModule\/nomMethode')"<\/span>;<\/span>      <\/span>break<\/span>;<\/span><\/td><\/tr>$/;" a -86 phpunit/coverage/ModuleAnswer.php.html /^
<\/td><\/tr>$/;" a -86 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>}<\/span><\/td><\/tr>$/;" a -86 phpunit/coverage/ModuleResponse.php.html /^
<\/td><\/tr>$/;" a -86 phpunit/coverage/Repo.php.html /^
            =========================================================*\/<\/span><\/td><\/tr>$/;" a -86 phpunit/coverage/ResourceDispatcher.php.html /^
            <\/span><\/td><\/tr>$/;" a -86 phpunit/coverage/repo/token.php.html /^
<\/td><\/tr>$/;" a -86 phpunit/coverage/sessionManager.php.html /^
            <\/span>$valid_sessid<\/span> <\/span>=<\/span> <\/span>strpos<\/span>(<\/span> <\/span>session_id<\/span>(<\/span>)<\/span>,<\/span> <\/span>substr<\/span>(<\/span>self<\/span>::<\/span>$prefix<\/span>,<\/span>0<\/span>,<\/span>5<\/span>)<\/span> <\/span>)<\/span> <\/span>===<\/span> <\/span>0<\/span>;<\/span><\/td><\/tr>$/;" a -87 phpunit/coverage/Database.php.html /^
<\/td><\/tr>$/;" a -87 phpunit/coverage/ManagerError.php.html /^
                <\/span>case<\/span> <\/span>self<\/span>::<\/span>WrongPathRepo<\/span>:<\/span>       <\/span>return<\/span> <\/span>"Le chemin de delegation est incorrect ('nomRepo\/nomMethode')"<\/span>;<\/span>        <\/span>break<\/span>;<\/span><\/td><\/tr>$/;" a -87 phpunit/coverage/ModuleAnswer.php.html /^
<\/td><\/tr>$/;" a -87 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -87 phpunit/coverage/ModuleResponse.php.html /^
<\/td><\/tr>$/;" a -87 phpunit/coverage/Repo.php.html /^
            <\/span>$this<\/span>-><\/span>data<\/span> <\/span>=<\/span> <\/span>$data<\/span>;<\/span><\/td><\/tr>$/;" a -87 phpunit/coverage/ResourceDispatcher.php.html /^
            <\/span>return<\/span> <\/span>true<\/span>;<\/span><\/td><\/tr>$/;" a -87 phpunit/coverage/repo/token.php.html /^
<\/td><\/tr>$/;" a -87 phpunit/coverage/sessionManager.php.html /^
<\/td><\/tr>$/;" a -88 phpunit/coverage/Database.php.html /^
<\/td><\/tr>$/;" a -88 phpunit/coverage/ManagerError.php.html /^
                <\/span>case<\/span> <\/span>self<\/span>::<\/span>UnknownModule<\/span>:<\/span>       <\/span>return<\/span> <\/span>"Le module n'existe pas"<\/span>;<\/span>                                              <\/span>break<\/span>;<\/span><\/td><\/tr>$/;" a -88 phpunit/coverage/ModuleAnswer.php.html /^
<\/td><\/tr>$/;" a -88 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>\/* [5] Construction de l'objet<\/span><\/td><\/tr>$/;" a -88 phpunit/coverage/ModuleResponse.php.html /^
<\/td><\/tr>$/;" a -88 phpunit/coverage/Repo.php.html /^
            <\/span>$this<\/span>-><\/span>error<\/span> <\/span>=<\/span> <\/span>ManagerError<\/span>::<\/span>Success<\/span>;<\/span><\/td><\/tr>$/;" a -88 phpunit/coverage/ResourceDispatcher.php.html /^
<\/td><\/tr>$/;" a -88 phpunit/coverage/repo/token.php.html /^
            <\/span>\/* [1] Verification dans la base de donnees<\/span><\/td><\/tr>$/;" a -88 phpunit/coverage/sessionManager.php.html /^
            <\/span>\/\/ Si id session incorrect ou pas de token            <\/span><\/td><\/tr>$/;" a -89 phpunit/coverage/Database.php.html /^
<\/td><\/tr>$/;" a -89 phpunit/coverage/ManagerError.php.html /^
                <\/span>case<\/span> <\/span>self<\/span>::<\/span>UnknownRepo<\/span>:<\/span>         <\/span>return<\/span> <\/span>"Le repo n'existe pas"<\/span>;<\/span>                                                <\/span>break<\/span>;<\/span><\/td><\/tr>$/;" a -89 phpunit/coverage/ModuleAnswer.php.html /^
<\/td><\/tr>$/;" a -89 phpunit/coverage/ModuleRequest.php.html /^
            =========================================================*\/<\/span><\/td><\/tr>$/;" a -89 phpunit/coverage/ModuleResponse.php.html /^
<\/td><\/tr>$/;" a -89 phpunit/coverage/Repo.php.html /^
<\/td><\/tr>$/;" a -89 phpunit/coverage/ResourceDispatcher.php.html /^
        <\/span>}<\/span><\/td><\/tr>$/;" a -89 phpunit/coverage/repo/token.php.html /^
            =========================================================*\/<\/span><\/td><\/tr>$/;" a -89 phpunit/coverage/sessionManager.php.html /^
            <\/span>if<\/span>(<\/span> <\/span>!<\/span>$valid_sessid<\/span>  <\/span>)<\/span><\/td><\/tr>$/;" a -9 phpunit/coverage/Database.php.html /^
        <\/span>public<\/span> <\/span>static<\/span> <\/span>$config_path<\/span> <\/span>=<\/span> <\/span>array<\/span>(<\/span><\/td><\/tr>$/;" a -9 phpunit/coverage/ManagerError.php.html /^
        <\/span>\/* SUCCESS *\/<\/span><\/td><\/tr>$/;" a -9 phpunit/coverage/ModuleAnswer.php.html /^
    <\/span>\/\/ data1: {donnee1}<\/span><\/td><\/tr>$/;" a -9 phpunit/coverage/ModuleRequest.php.html /^
        <\/span>\/\/ Constantes<\/span><\/td><\/tr>$/;" a -9 phpunit/coverage/ModuleResponse.php.html /^
    <\/span>\/\/ data1: {donnee1}<\/span><\/td><\/tr>$/;" a -9 phpunit/coverage/Repo.php.html /^
    <\/span>\/\/ data1: {donnee1}<\/span><\/td><\/tr>$/;" a -9 phpunit/coverage/ResourceDispatcher.php.html /^
<\/td><\/tr>$/;" a -9 phpunit/coverage/autoloader.php.html /^
<\/td><\/tr>$/;" a -9 phpunit/coverage/module/module.php.html /^
<\/td><\/tr>$/;" a -9 phpunit/coverage/repo/token.php.html /^
        <\/span>\/* Gestion de la table Token (pour secu) et des derivations<\/span><\/td><\/tr>$/;" a -9 phpunit/coverage/sessionManager.php.html /^
<\/td><\/tr>$/;" a -90 phpunit/coverage/Database.php.html /^
<\/td><\/tr>$/;" a -90 phpunit/coverage/ManagerError.php.html /^
                <\/span>case<\/span> <\/span>self<\/span>::<\/span>UnknownMethod<\/span>:<\/span>       <\/span>return<\/span> <\/span>"Le methode n'existe pas"<\/span>;<\/span>                                             <\/span>break<\/span>;<\/span><\/td><\/tr>$/;" a -90 phpunit/coverage/ModuleAnswer.php.html /^
<\/td><\/tr>$/;" a -90 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>$this<\/span>-><\/span>params<\/span> <\/span>=<\/span> <\/span>$params<\/span>;<\/span><\/td><\/tr>$/;" a -90 phpunit/coverage/ModuleResponse.php.html /^
<\/td><\/tr>$/;" a -90 phpunit/coverage/Repo.php.html /^
            <\/span>\/* [4] Enregistrement de la reponse<\/span><\/td><\/tr>$/;" a -90 phpunit/coverage/ResourceDispatcher.php.html /^
<\/td><\/tr>$/;" a -90 phpunit/coverage/repo/token.php.html /^
            <\/span>$check<\/span> <\/span>=<\/span> <\/span>Database<\/span>::<\/span>getPDO<\/span>(<\/span>)<\/span>-><\/span>prepare<\/span>(<\/span>"SELECT id_token, permission<\/span><\/td><\/tr>$/;" a -90 phpunit/coverage/sessionManager.php.html /^
                <\/span>self<\/span>::<\/span>reset_session<\/span>(<\/span> <\/span>$sessid<\/span> <\/span>)<\/span>;<\/span> <\/span>\/\/ On initialise la session (bon id session)<\/span><\/td><\/tr>$/;" a -91 phpunit/coverage/Database.php.html /^
<\/td><\/tr>$/;" a -91 phpunit/coverage/ManagerError.php.html /^
                <\/span>case<\/span> <\/span>self<\/span>::<\/span>UncallableMethod<\/span>:<\/span>    <\/span>return<\/span> <\/span>"Le methode n'est pas amorcable"<\/span>;<\/span>                                      <\/span>break<\/span>;<\/span><\/td><\/tr>$/;" a -91 phpunit/coverage/ModuleAnswer.php.html /^
<\/td><\/tr>$/;" a -91 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>$this<\/span>-><\/span>error<\/span> <\/span>=<\/span> <\/span>ManagerError<\/span>::<\/span>Success<\/span>;<\/span><\/td><\/tr>$/;" a -91 phpunit/coverage/ModuleResponse.php.html /^
<\/td><\/tr>$/;" a -91 phpunit/coverage/Repo.php.html /^
            =========================================================*\/<\/span><\/td><\/tr>$/;" a -91 phpunit/coverage/ResourceDispatcher.php.html /^
<\/td><\/tr>$/;" a -91 phpunit/coverage/repo/token.php.html /^
                FROM api_token<\/span><\/td><\/tr>$/;" a -91 phpunit/coverage/sessionManager.php.html /^
            <\/span><\/td><\/tr>$/;" a -92 phpunit/coverage/Database.php.html /^
    <\/span>\/*************************************************************\/<\/span><\/td><\/tr>$/;" a -92 phpunit/coverage/ManagerError.php.html /^
<\/td><\/tr>$/;" a -92 phpunit/coverage/ModuleAnswer.php.html /^
<\/td><\/tr>$/;" a -92 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -92 phpunit/coverage/ModuleResponse.php.html /^
<\/td><\/tr>$/;" a -92 phpunit/coverage/Repo.php.html /^
            <\/span>$this<\/span>-><\/span>answer<\/span> <\/span>=<\/span> <\/span>$this<\/span>-><\/span>dispatch<\/span>(<\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -92 phpunit/coverage/ResourceDispatcher.php.html /^
        <\/span>\/* INCLUSION PHP D'UNE RESSOURCE UTILISANT LE DISPATCHER<\/span><\/td><\/tr>$/;" a -92 phpunit/coverage/repo/token.php.html /^
                WHERE CURDATE() <= expires<\/span><\/td><\/tr>$/;" a -92 phpunit/coverage/sessionManager.php.html /^
                <\/span><\/td><\/tr>$/;" a -93 phpunit/coverage/Database.php.html /^
    <\/span>\/*      _____ ______ _   _ ______ _____            _         *\/<\/span><\/td><\/tr>$/;" a -93 phpunit/coverage/ManagerError.php.html /^
                <\/span>case<\/span> <\/span>self<\/span>::<\/span>ParamError<\/span>:<\/span>          <\/span>return<\/span> <\/span>"Un ou plusieurs parametres sont manquants ou incorrects"<\/span>;<\/span>             <\/span>break<\/span>;<\/span><\/td><\/tr>$/;" a -93 phpunit/coverage/ModuleAnswer.php.html /^
        <\/span>\/* RECUPERE UNE DONNEE DE LA REPONSE<\/span><\/td><\/tr>$/;" a -93 phpunit/coverage/ModuleRequest.php.html /^
            <\/span>return<\/span> <\/span>true<\/span>;<\/span> <\/span>\/\/ On retourne que tout s'est bien passe<\/span><\/td><\/tr>$/;" a -93 phpunit/coverage/ModuleResponse.php.html /^
        <\/span>\/* RECUPERE UNE DONNEE DE LA REPONSE<\/span><\/td><\/tr>$/;" a -93 phpunit/coverage/Repo.php.html /^
<\/td><\/tr>$/;" a -93 phpunit/coverage/ResourceDispatcher.php.html /^
        *<\/span><\/td><\/tr>$/;" a -93 phpunit/coverage/repo/token.php.html /^
                AND token = :token"<\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -93 phpunit/coverage/sessionManager.php.html /^
            <\/span><\/td><\/tr>$/;" a -94 phpunit/coverage/Database.php.html /^
    <\/span>\/*     \/ ____|  ____| \\ | |  ____|  __ \\     \/\\   | |        *\/<\/span><\/td><\/tr>$/;" a -94 phpunit/coverage/ManagerError.php.html /^
                <\/span>case<\/span> <\/span>self<\/span>::<\/span>ModuleError<\/span>:<\/span>         <\/span>return<\/span> <\/span>"Erreur lors du traitement du module"<\/span>;<\/span>                                 <\/span>break<\/span>;<\/span><\/td><\/tr>$/;" a -94 phpunit/coverage/ModuleAnswer.php.html /^
        *<\/span><\/td><\/tr>$/;" a -94 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -94 phpunit/coverage/ModuleResponse.php.html /^
        *<\/span><\/td><\/tr>$/;" a -94 phpunit/coverage/Repo.php.html /^
<\/td><\/tr>$/;" a -94 phpunit/coverage/ResourceDispatcher.php.html /^
        * @route<String>                                     Route associee a une ressource<\/span><\/td><\/tr>$/;" a -94 phpunit/coverage/repo/token.php.html /^
            <\/span>$check<\/span>-><\/span>execute<\/span>(<\/span>array<\/span>(<\/span> <\/span>':token'<\/span> <\/span>=><\/span> <\/span>$token<\/span> <\/span>)<\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -94 phpunit/coverage/sessionManager.php.html /^
            <\/span>\/* [3] Verification du token<\/span><\/td><\/tr>$/;" a -95 phpunit/coverage/Database.php.html /^
    <\/span>\/*    | |  __| |__  |  \\| | |__  | |__) |   \/  \\  | |        *\/<\/span><\/td><\/tr>$/;" a -95 phpunit/coverage/ManagerError.php.html /^
                <\/span>case<\/span> <\/span>self<\/span>::<\/span>RepoError<\/span>:<\/span>           <\/span>return<\/span> <\/span>"Erreur lors du traitement du repo"<\/span>;<\/span>                                   <\/span>break<\/span>;<\/span><\/td><\/tr>$/;" a -95 phpunit/coverage/ModuleAnswer.php.html /^
        * @key<String>                                         Le nom de la valeur a recuperer<\/span><\/td><\/tr>$/;" a -95 phpunit/coverage/ModuleRequest.php.html /^
        <\/span>}<\/span><\/td><\/tr>$/;" a -95 phpunit/coverage/ModuleResponse.php.html /^
        * @key<String>                                         Le nom de la valeur a recuperer<\/span><\/td><\/tr>$/;" a -95 phpunit/coverage/Repo.php.html /^
<\/td><\/tr>$/;" a -95 phpunit/coverage/ResourceDispatcher.php.html /^
        *<\/span><\/td><\/tr>$/;" a -95 phpunit/coverage/repo/token.php.html /^
<\/td><\/tr>$/;" a -95 phpunit/coverage/sessionManager.php.html /^
            ==============================================================*\/<\/span><\/td><\/tr>$/;" a -96 phpunit/coverage/Database.php.html /^
    <\/span>\/*    | | |_ |  __| | . ` |  __| |  _  \/   \/ \/\\ \\ | |        *\/<\/span><\/td><\/tr>$/;" a -96 phpunit/coverage/ManagerError.php.html /^
<\/td><\/tr>$/;" a -96 phpunit/coverage/ModuleAnswer.php.html /^
        *<\/span><\/td><\/tr>$/;" a -96 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -96 phpunit/coverage/ModuleResponse.php.html /^
        *<\/span><\/td><\/tr>$/;" a -96 phpunit/coverage/Repo.php.html /^
            <\/span>return<\/span> <\/span>true<\/span>;<\/span> <\/span>\/\/ On retourne que tout s'est bien passe<\/span><\/td><\/tr>$/;" a -96 phpunit/coverage/ResourceDispatcher.php.html /^
        * @return content<*>                                 Retourne le contenu de la ressource<\/span><\/td><\/tr>$/;" a -96 phpunit/coverage/repo/token.php.html /^
            <\/span>$token_info<\/span> <\/span>=<\/span> <\/span>$check<\/span>-><\/span>fetch<\/span>(<\/span>)<\/span>;<\/span><\/td><\/tr>$/;" a -96 phpunit/coverage/sessionManager.php.html /^
            <\/span>\/\/ On verifie que le token est valide<\/span><\/td><\/tr>$/;" a -97 phpunit/coverage/Database.php.html /^
    <\/span>\/*    | |__| | |____| |\\  | |____| | \\ \\  \/ ____ \\| |____    *\/<\/span><\/td><\/tr>$/;" a -97 phpunit/coverage/ManagerError.php.html /^
                <\/span>case<\/span> <\/span>self<\/span>::<\/span>PDOConnection<\/span>:<\/span>       <\/span>return<\/span> <\/span>"La connexion avec la base de donnees a echoue"<\/span>;<\/span>                       <\/span>break<\/span>;<\/span><\/td><\/tr>$/;" a -97 phpunit/coverage/ModuleAnswer.php.html /^
        * @return value<mixed*>                             La valeur a cette cle<\/span><\/td><\/tr>$/;" a -97 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -97 phpunit/coverage/ModuleResponse.php.html /^
        * @return value<mixed*>                             La valeur a cette cle<\/span><\/td><\/tr>$/;" a -97 phpunit/coverage/Repo.php.html /^
<\/td><\/tr>$/;" a -97 phpunit/coverage/ResourceDispatcher.php.html /^
        *<\/span><\/td><\/tr>$/;" a -97 phpunit/coverage/repo/token.php.html /^
<\/td><\/tr>$/;" a -97 phpunit/coverage/sessionManager.php.html /^
            <\/span>$valid_token<\/span> <\/span>=<\/span> <\/span>$session_token<\/span> <\/span>!=<\/span> <\/span>null<\/span>;<\/span>                                                  <\/span>\/\/ verification de l'existence du cookie<\/span><\/td><\/tr>$/;" a -98 phpunit/coverage/Database.php.html /^
    <\/span>\/*     \\_____|______|_| \\_|______|_|  \\_\\\/_\/    \\_\\______|   *\/<\/span><\/td><\/tr>$/;" a -98 phpunit/coverage/ManagerError.php.html /^
<\/td><\/tr>$/;" a -98 phpunit/coverage/ModuleAnswer.php.html /^
        * @return error<null>                                 Retourne NULL si aucune valeur pour cette cle<\/span><\/td><\/tr>$/;" a -98 phpunit/coverage/ModuleRequest.php.html /^
<\/td><\/tr>$/;" a -98 phpunit/coverage/ModuleResponse.php.html /^
        * @return error<null>                                 Retourne NULL si aucune valeur pour cette cle<\/span><\/td><\/tr>$/;" a -98 phpunit/coverage/Repo.php.html /^
        <\/span>}<\/span><\/td><\/tr>$/;" a -98 phpunit/coverage/ResourceDispatcher.php.html /^
        *\/<\/span><\/td><\/tr>$/;" a -98 phpunit/coverage/repo/token.php.html /^
            <\/span>\/\/ Si le token est inactif, on retourne FALSE<\/span><\/td><\/tr>$/;" a -98 phpunit/coverage/sessionManager.php.html /^
            <\/span>$valid_token<\/span> <\/span>=<\/span> <\/span>$valid_token<\/span> <\/span>&&<\/span> <\/span>strpos<\/span>(<\/span>$session_token<\/span>,<\/span> <\/span>self<\/span>::<\/span>$prefix<\/span>)<\/span> <\/span>===<\/span> <\/span>0<\/span>;<\/span>             <\/span>\/\/ verification des donnes personnelles<\/span><\/td><\/tr>$/;" a -99 phpunit/coverage/Database.php.html /^
    <\/span>\/*                                                           *\/<\/span><\/td><\/tr>$/;" a -99 phpunit/coverage/ManagerError.php.html /^
                <\/span>case<\/span> <\/span>self<\/span>::<\/span>TokenError<\/span>:<\/span>          <\/span>return<\/span> <\/span>"Le token de connection est absent ou errone"<\/span>;<\/span>                         <\/span>break<\/span>;<\/span><\/td><\/tr>$/;" a -99 phpunit/coverage/ModuleAnswer.php.html /^
        *<\/span><\/td><\/tr>$/;" a -99 phpunit/coverage/ModuleRequest.php.html /^
        <\/span>\/* EXECUTE LE TRAITEMENT ASSOCIE ET REMPLIE LA REPONSE<\/span><\/td><\/tr>$/;" a -99 phpunit/coverage/ModuleResponse.php.html /^
        *<\/span><\/td><\/tr>$/;" a -99 phpunit/coverage/Repo.php.html /^
<\/td><\/tr>$/;" a -99 phpunit/coverage/ResourceDispatcher.php.html /^
        <\/span>public<\/span> <\/span>static<\/span> <\/span>function<\/span> <\/span>getResource<\/span>(<\/span>$route<\/span>)<\/span>{<\/span><\/td><\/tr>$/;" a -99 phpunit/coverage/repo/token.php.html /^
            <\/span>if<\/span>(<\/span> <\/span>$token_info<\/span> <\/span>===<\/span> <\/span>false<\/span> <\/span>)<\/span> <\/span>return<\/span> <\/span>false<\/span>;<\/span><\/td><\/tr>$/;" a -99 phpunit/coverage/sessionManager.php.html /^
            <\/span>$valid_token<\/span> <\/span>=<\/span> <\/span>$valid_token<\/span> <\/span>&&<\/span> <\/span>isset<\/span>(<\/span>$_SESSION<\/span>[<\/span>'session_token'<\/span>]<\/span>)<\/span>;<\/span>                       <\/span>\/\/ verification que la variable session associee existe<\/span><\/td><\/tr>$/;" a -@header_name_1 api/manifest.default.json /^ "@header_name_1": "@header_value_1",$/;" f -@header_name_2 api/manifest.default.json /^ "@header_name_2": "@header_value_2",$/;" f -@input_variable..._name api/manifest.default.json /^ "@input_variable..._name": "<@input_variable..._type>",$/;" f -@input_variable..._name api/manifest.default.json /^ "@input_variable..._name": "@input_default..._value",$/;" f -@input_variable1_name api/manifest.default.json /^ "@input_variable1_name" : "@input_default1_value",$/;" f -@input_variable2_name api/manifest.default.json /^ "@input_variable2_name" : "@input_default2_value",$/;" f -@input_variableA_name api/manifest.default.json /^ "@input_variableA_name" : "<@input_variableA_type>",$/;" f -@input_variableB_name api/manifest.default.json /^ "@input_variableB_name" : "<@input_variableB_type>",$/;" f -@output_variable..._name api/manifest.default.json /^ "@output_variable..._name": "<@output_variable..._type>",$/;" f -@output_variable1_name api/manifest.default.json /^ "@output_variable1_name" : "<@output_variable1_type>",$/;" f -@output_variable2_name api/manifest.default.json /^ "@output_variable2_name" : "<@output_variable2_type>",$/;" f -@request_name api/manifest.default.json /^ "@request_name":{$/;" f -APIClass js/lib/api.js /^function APIClass(target){ this.target = target; };$/;" c -Affix phpunit/coverage/js/bootstrap.min.js /^};Tooltip.prototype.getPosition=function($element){$element=$element||this.$element;var el=$element[0];var isBody=el.tagName=="BODY";var elRect=el.getBoundingClientRect();if(elRect.width==null){elRect=$.extend({},elRect,{width:elRect.right-elRect.left,height:elRect.bottom-elRect.top})}var elOffset=isBody?{top:0,left:0}:$element.offset();var scroll={scroll:isBody?document.documentElement.scrollTop||document.body.scrollTop:$element.scrollTop()};var outerDims=isBody?{width:$(window).width(),height:$(window).height()}:null;return $.extend({},elRect,scroll,outerDims,elOffset)};Tooltip.prototype.getCalculatedOffset=function(placement,pos,actualWidth,actualHeight){return placement=="bottom"?{top:pos.top+pos.height,left:pos.left+pos.width\/2-actualWidth\/2}:placement=="top"?{top:pos.top-actualHeight,left:pos.left+pos.width\/2-actualWidth\/2}:placement=="left"?{top:pos.top+pos.height\/2-actualHeight\/2,left:pos.left-actualWidth}:{top:pos.top+pos.height\/2-actualHeight\/2,left:pos.left+pos.width}};Tooltip.prototype.getViewportAdjustedDelta=function(placement,pos,actualWidth,actualHeight){var delta={top:0,left:0};if(!this.$viewport)return delta;var viewportPadding=this.options.viewport&&this.options.viewport.padding||0;var viewportDimensions=this.getPosition(this.$viewport);if(\/right|left\/.test(placement)){var topEdgeOffset=pos.top-viewportPadding-viewportDimensions.scroll;var bottomEdgeOffset=pos.top+viewportPadding-viewportDimensions.scroll+actualHeight;if(topEdgeOffsetviewportDimensions.top+viewportDimensions.height){delta.top=viewportDimensions.top+viewportDimensions.height-bottomEdgeOffset}}else{var leftEdgeOffset=pos.left-viewportPadding;var rightEdgeOffset=pos.left+viewportPadding+actualWidth;if(leftEdgeOffsetviewportDimensions.right){delta.left=viewportDimensions.left+viewportDimensions.width-rightEdgeOffset}}return delta};Tooltip.prototype.getTitle=function(){var title;var $e=this.$element;var o=this.options;title=$e.attr("data-original-title")||(typeof o.title=="function"?o.title.call($e[0]):o.title);return title};Tooltip.prototype.getUID=function(prefix){do prefix+=~~(Math.random()*1e6);while(document.getElementById(prefix));return prefix};Tooltip.prototype.tip=function(){if(!this.$tip){this.$tip=$(this.options.template);if(this.$tip.length!=1){throw new Error(this.type+" `template` option must consist of exactly 1 top-level element!")}}return this.$tip};Tooltip.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")};Tooltip.prototype.enable=function(){this.enabled=true};Tooltip.prototype.disable=function(){this.enabled=false};Tooltip.prototype.toggleEnabled=function(){this.enabled=!this.enabled};Tooltip.prototype.toggle=function(e){var self=this;if(e){self=$(e.currentTarget).data("bs."+this.type);if(!self){self=new this.constructor(e.currentTarget,this.getDelegateOptions());$(e.currentTarget).data("bs."+this.type,self)}}if(e){self.inState.click=!self.inState.click;if(self.isInStateTrue())self.enter(self);else self.leave(self)}else{self.tip().hasClass("in")?self.leave(self):self.enter(self)}};Tooltip.prototype.destroy=function(){var that=this;clearTimeout(this.timeout);this.hide(function(){that.$element.off("."+that.type).removeData("bs."+that.type);if(that.$tip){that.$tip.detach()}that.$tip=null;that.$arrow=null;that.$viewport=null})};function Plugin(option){return this.each(function(){var $this=$(this);var data=$this.data("bs.tooltip");var options=typeof option=="object"&&option;if(!data&&\/destroy|hide\/.test(option))return;if(!data)$this.data("bs.tooltip",data=new Tooltip(this,options));if(typeof option=="string")data[option]()})}var old=$.fn.tooltip;$.fn.tooltip=Plugin;$.fn.tooltip.Constructor=Tooltip;$.fn.tooltip.noConflict=function(){$.fn.tooltip=old;return this}}(jQuery);+function($){"use strict";var Popover=function(element,options){this.init("popover",element,options)};if(!$.fn.tooltip)throw new Error("Popover requires tooltip.js");Popover.VERSION="3.3.5";Popover.DEFAULTS=$.extend({},$.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:'