{"id":1235,"date":"2026-11-02T18:46:58","date_gmt":"2026-11-02T18:46:58","guid":{"rendered":"https:\/\/je-me-lance.be\/index.php\/padel-binomes\/"},"modified":"2026-11-02T18:46:58","modified_gmt":"2026-11-02T18:46:58","slug":"padel-binomes","status":"publish","type":"page","link":"https:\/\/je-me-lance.be\/index.php\/padel-binomes\/","title":{"rendered":"Padel Bin\u00f4mes"},"content":{"rendered":"<div class=\"padel-app\" id=\"padel-app\">\n<div class=\"wrap\">\n  <header class=\"top\">\n    <div class=\"brand\">\n      <svg class=\"ballicon\" viewBox=\"0 0 48 48\" aria-hidden=\"true\">\n        <circle cx=\"24\" cy=\"24\" r=\"22\" fill=\"#d7ff1f\"\/>\n        <path d=\"M6 14c8 4 10 16 4 26M42 10c-8 4-10 18-2 28\" fill=\"none\" stroke=\"#ffffff\" stroke-width=\"3\" stroke-linecap=\"round\"\/>\n      <\/svg>\n      <div>\n        <h1>Padel <span>Team<\/span><\/h1>\n      <\/div>\n    <\/div>\n    <span class=\"sync-chip wait\" id=\"syncChip\">Connexion\u2026<\/span>\n  <\/header>\n\n  <div class=\"sync-banner\" id=\"syncBanner\" role=\"status\" hidden><\/div>\n\n  <nav class=\"tabs\" role=\"tablist\" aria-label=\"Sections\">\n    <button type=\"button\" role=\"tab\" class=\"tab\" id=\"tab-jour\" data-tab=\"jour\">Matchs du jour<\/button>\n    <button type=\"button\" role=\"tab\" class=\"tab\" id=\"tab-calendrier\" data-tab=\"calendrier\">Calendrier<\/button>\n    <button type=\"button\" role=\"tab\" class=\"tab\" id=\"tab-joueurs\" data-tab=\"joueurs\">Joueurs<\/button>\n    <button type=\"button\" role=\"tab\" class=\"tab\" id=\"tab-stats\" data-tab=\"stats\">Statistiques<\/button>\n  <\/nav>\n\n  <div class=\"panel\" id=\"panel-jour\" role=\"tabpanel\">\n  <nav class=\"steps\" aria-label=\"\u00c9tapes\">\n      <span class=\"step-chip\" id=\"chip1\">1 \u00b7 Joueurs<\/span>\n      <span class=\"step-chip\" id=\"chip2\">2 \u00b7 Bin\u00f4mes<\/span>\n      <span class=\"step-chip\" id=\"chip3\">3 \u00b7 Matchs<\/span>\n    <\/nav>\n\n  <!-- \u00c9TAPE 1 -->\n  <section class=\"card\" id=\"s-players\">\n    <div class=\"sec-head\">\n      <h2><span class=\"n\">1<\/span>Les joueurs<\/h2>\n      <span class=\"count\" id=\"playerCount\"><\/span>\n    <\/div>\n    <form class=\"addrow\" id=\"addForm\" autocomplete=\"off\">\n      <input type=\"text\" id=\"playerName\" placeholder=\"Nom du joueur\" aria-label=\"Nom du joueur\" maxlength=\"40\">\n      <button type=\"submit\" class=\"btn-ball\">Enregistrer<\/button>\n    <\/form>\n    <div>\n      <button type=\"button\" class=\"linkbtn\" id=\"toggleBulk\">Coller une liste de noms<\/button>\n    <\/div>\n    <div id=\"bulkBox\" hidden>\n      <textarea id=\"bulkText\" placeholder=\"Un nom par ligne (ou s\u00e9par\u00e9s par des virgules)\"><\/textarea>\n      <div class=\"actions\" style=\"margin-top:8px\">\n        <button type=\"button\" class=\"btn-ball\" id=\"bulkAdd\">Ajouter la liste<\/button>\n      <\/div>\n    <\/div>\n    <div class=\"roster-bar\">\n      <p class=\"hint\">Touche un joueur pour l'ajouter \u00e0 la partie du jour ou l'en retirer.<\/p>\n      <div class=\"actions\">\n        <button type=\"button\" class=\"btn-ghost sm\" id=\"selAll\">Tous<\/button>\n        <button type=\"button\" class=\"btn-ghost sm\" id=\"selNone\">Aucun<\/button>\n        <button type=\"button\" class=\"btn-ghost sm\" id=\"goRoster\">G\u00e9rer les joueurs<\/button>\n      <\/div>\n    <\/div>\n    <ul class=\"players\" id=\"playerList\"><\/ul>\n    <p class=\"hint\" id=\"sampleHint\" hidden>Exemple de liste pour tester. D\u00e8s que tu enregistres ton premier joueur, ces noms disparaissent.<\/p>\n    <div class=\"pair-mode\">\n      <button type=\"button\" class=\"btn-ball big\" id=\"drawBtn\">Bin\u00f4mes automatiques<\/button>\n      <button type=\"button\" class=\"btn-ghost big\" id=\"manualBtn\">Je fais les bin\u00f4mes<\/button>\n    <\/div>\n  <\/section>\n\n  <!-- \u00c9TAPE 2 -->\n  <section class=\"card\" id=\"s-pairs\" hidden>\n    <div class=\"sec-head\">\n      <h2><span class=\"n\">2<\/span>Les bin\u00f4mes<\/h2>\n      <span class=\"count\" id=\"pairCount\"><\/span>\n    <\/div>\n    <div id=\"poolBox\"><\/div>\n    <div class=\"pairs\" id=\"pairList\"><\/div>\n    <div id=\"benchBox\"><\/div>\n    <div class=\"settings\">\n      <label for=\"courts\">Terrains dispo<\/label>\n      <input type=\"number\" id=\"courts\" min=\"1\" max=\"20\" value=\"2\">\n    <\/div>\n    <div class=\"actions\">\n      <button type=\"button\" class=\"btn-ghost\" id=\"redrawBtn\">Tirage automatique<\/button>\n      <button type=\"button\" class=\"btn-ghost\" id=\"manualRedo\">Refaire \u00e0 la main<\/button>\n      <button type=\"button\" class=\"btn-ball big\" id=\"matchBtn\">Lancer les matchs<\/button>\n    <\/div>\n  <\/section>\n\n  <!-- \u00c9TAPE 3 -->\n  <section class=\"card\" id=\"s-matches\" hidden>\n    <div class=\"sec-head\">\n      <h2><span class=\"n\">3<\/span>Les matchs<\/h2>\n      <span class=\"count\" id=\"matchCount\"><\/span>\n    <\/div>\n    <div id=\"current\" style=\"display:flex;flex-direction:column;gap:16px\"><\/div>\n    <div id=\"nextBox\"><\/div>\n    <details class=\"history\" id=\"historyBox\" hidden>\n      <summary id=\"historySum\">Tours pr\u00e9c\u00e9dents<\/summary>\n      <div class=\"hist-list\" id=\"historyList\"><\/div>\n    <\/details>\n  <\/section>\n\n\n  <div class=\"danger-zone\" id=\"resetZone\">\n    <button type=\"button\" class=\"btn-hot big\" id=\"resetBtn\">Remettre \u00e0 z\u00e9ro<\/button>\n  <\/div>\n  <\/div>\n\n  <div class=\"panel\" id=\"panel-calendrier\" role=\"tabpanel\" hidden>\n  <section class=\"card\" id=\"s-cal\">\n    <div class=\"sec-head\">\n      <h2>R\u00e9server un terrain<\/h2>\n      <span class=\"count\" id=\"calCount\"><\/span>\n    <\/div>\n    <div class=\"me-row\">\n      <label for=\"meSel\">Je suis<\/label>\n      <select id=\"meSel\"><\/select>\n    <\/div>\n    <div id=\"myMatches\"><\/div>\n    <div class=\"days\" id=\"calDays\"><\/div>\n    <div class=\"gridwrap\"><div class=\"slots\" id=\"calGrid\"><\/div><\/div>\n    <p class=\"hint\" id=\"calLegend\"><\/p>\n    <div id=\"calPanel\"><\/div>\n  <\/section>\n  <section class=\"card\" id=\"s-calset\" hidden>\n    <div class=\"sec-head\"><h2>R\u00e9glages du calendrier<\/h2><\/div>\n    <div id=\"calSettings\"><\/div>\n  <\/section>\n  <\/div>\n\n  <div class=\"panel\" id=\"panel-joueurs\" role=\"tabpanel\" hidden>\n  <section class=\"card\" id=\"s-roster\">\n    <div class=\"sec-head\">\n      <h2>Joueurs enregistr\u00e9s<\/h2>\n      <span class=\"count\" id=\"rosterCount\"><\/span>\n    <\/div>\n    <form class=\"roster-form\" id=\"rosterForm\" autocomplete=\"off\">\n      <input type=\"text\" id=\"rfName\" placeholder=\"Nom du joueur\" aria-label=\"Nom du joueur\" maxlength=\"40\">\n      <input type=\"email\" id=\"rfEmail\" class=\"ct\" placeholder=\"E-mail (facultatif)\" aria-label=\"E-mail\">\n      <input type=\"tel\" id=\"rfPhone\" class=\"ct\" placeholder=\"GSM (facultatif)\" aria-label=\"Num\u00e9ro de GSM\">\n      <button type=\"submit\" class=\"btn-ball\">Enregistrer<\/button>\n    <\/form>\n    <p class=\"hint\" id=\"contactHint\"><\/p>\n    <ul class=\"rlist\" id=\"rosterList\"><\/ul>\n  <\/section>\n  <\/div>\n\n  <div class=\"panel\" id=\"panel-stats\" role=\"tabpanel\" hidden>\n  <section class=\"card\" id=\"s-stats\">\n    <div class=\"sec-head\">\n      <h2><span class=\"n\">\u2605<\/span>Statistiques joueurs<\/h2>\n      <span class=\"count\" id=\"statsCount\"><\/span>\n    <\/div>\n    <div class=\"stats-bar\">\n      <div class=\"seg\" role=\"group\" aria-label=\"P\u00e9riode\">\n        <button type=\"button\" id=\"scopeAll\" data-scope=\"all\">Tout l'historique<\/button>\n        <button type=\"button\" id=\"scopeSession\" data-scope=\"session\">Session en cours<\/button>\n      <\/div>\n      <div class=\"settings\">\n        <label for=\"sortBy\">Trier par<\/label>\n        <select id=\"sortBy\">\n          <option value=\"v\">Victoires<\/option>\n          <option value=\"pct\">% de victoires<\/option>\n          <option value=\"diff\">Diff\u00e9rence de jeux<\/option>\n          <option value=\"j\">Matchs jou\u00e9s<\/option>\n        <\/select>\n      <\/div>\n    <\/div>\n    <div id=\"statsEmpty\" class=\"pending\" hidden>Aucun match enregistr\u00e9 pour l'instant. Chaque score encod\u00e9 est sauvegard\u00e9 ici, m\u00eame apr\u00e8s une remise \u00e0 z\u00e9ro.<\/div>\n    <div class=\"tablewrap\" id=\"statsTableWrap\">\n      <table>\n        <thead><tr><th>#<\/th><th style=\"text-align:left\">Joueur<\/th><th>J<\/th><th>V<\/th><th>D<\/th><th>% V<\/th><th>Jeux +<\/th><th>Jeux \u2212<\/th><th>Diff<\/th><th>Forme<\/th><\/tr><\/thead>\n        <tbody id=\"statsBody\"><\/tbody>\n      <\/table>\n    <\/div>\n    <p class=\"hint\" id=\"statsHint\">Touche un joueur pour voir le d\u00e9tail : partenaires, adversaires, s\u00e9ries et tous ses matchs.<\/p>\n    <div id=\"playerDetail\"><\/div>\n    <div class=\"hist-actions\" id=\"histZone\"><\/div>\n  <\/section>\n  <\/div>\n<\/div>\n\n<div class=\"toast\" id=\"toast\" role=\"status\" aria-live=\"polite\"><\/div>\n<\/div>\n\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-1235","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/je-me-lance.be\/index.php\/wp-json\/wp\/v2\/pages\/1235","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/je-me-lance.be\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/je-me-lance.be\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/je-me-lance.be\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/je-me-lance.be\/index.php\/wp-json\/wp\/v2\/comments?post=1235"}],"version-history":[{"count":0,"href":"https:\/\/je-me-lance.be\/index.php\/wp-json\/wp\/v2\/pages\/1235\/revisions"}],"wp:attachment":[{"href":"https:\/\/je-me-lance.be\/index.php\/wp-json\/wp\/v2\/media?parent=1235"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}