[{"data":1,"prerenderedAt":2865},["ShallowReactive",2],{"\u002Fnext\u002Fdodock\u002Fdeveloppeurs\u002Fcomposants-ui\u002Fcomposants-ui-espresso":3,"section:\u002Fnext\u002Fdodock\u002Fdeveloppeurs\u002Fcomposants-ui\u002Fcomposants-ui-espresso":2864},{"id":4,"title":5,"body":6,"description":2848,"extension":446,"meta":2849,"navigation":1802,"path":2860,"seo":2861,"stem":2862,"__hash__":2863},"docs\u002F2.next\u002F3.dodock\u002F10.developpeurs\u002F03.composants-ui\u002Fcomposants-ui-espresso.md","Composants UI Espresso",{"type":7,"value":8,"toc":2829},"minimark",[9,13,26,29,82,108,116,144,161,169,349,355,588,594,601,671,812,819,825,1017,1027,1163,1314,1332,1337,1467,1473,1476,1483,1488,1663,1724,1731,1738,1885,2030,2039,2045,2048,2051,2221,2233,2351,2354,2448,2451,2611,2646,2653,2715,2741,2745,2775,2825],[10,11,5],"h1",{"id":12},"composants-ui-espresso",[14,15,16,17,21,22,25],"p",{},"Espresso est le système de composants du desk. Chaque composant est une fonction de ",[18,19,20],"code",{},"frappe.ui",". Le code se trouve dans ",[18,23,24],{},"frappe\u002Fpublic\u002Fjs\u002Ffrappe\u002Fui\u002Fcomponents\u002F",".",[14,27,28],{},"La plupart des composants existent sous deux formes :",[30,31,32,48],"table",{},[33,34,35],"thead",{},[36,37,38,42,45],"tr",{},[39,40,41],"th",{},"Forme",[39,43,44],{},"Exemple",[39,46,47],{},"Résultat",[49,50,51,69],"tbody",{},[36,52,53,57,62],{},[54,55,56],"td",{},"Élément",[54,58,59],{},[18,60,61],{},"frappe.ui.button({...})",[54,63,64,65,68],{},"Élément jQuery, avec ses gestionnaires d'événements (",[18,66,67],{},"onclick",", info-bulle).",[36,70,71,74,79],{},[54,72,73],{},"Balisage",[54,75,76],{},[18,77,78],{},"frappe.ui.button.html({...})",[54,80,81],{},"Chaîne HTML, sans gestionnaire. Utile dans une vue de liste construite en chaînes.",[14,83,84,85,92,93,96,97,96,100,103,104,107],{},"Les icônes sont des noms d'icônes ",[86,87,91],"a",{"href":88,"rel":89},"https:\u002F\u002Flucide.dev\u002Ficons\u002F",[90],"nofollow","Lucide"," : ",[18,94,95],{},"\"check\"",", ",[18,98,99],{},"\"trash-2\"",[18,101,102],{},"\"printer\"",". Les libellés sont affichés comme texte, jamais comme HTML : traduisez-les avec ",[18,105,106],{},"__()"," avant de les passer.",[14,109,110,111,115],{},"L'",[86,112,114],{"href":113},"\u002Fnext\u002Fdodock\u002Fdeveloppeurs\u002Fcomposants-ui\u002Futiliser_component_explorer","Explorateur de composants"," montre chaque composant avec des exemples.",[14,117,118,119,96,123,96,127,96,131,96,135,139,140,25],{},"D'autres composants Espresso ont leur propre page : ",[86,120,122],{"href":121},"\u002Fnext\u002Fdodock\u002Fdeveloppeurs\u002Fcomposant-stepper","Stepper",[86,124,126],{"href":125},"\u002Fnext\u002Fdodock\u002Fdeveloppeurs\u002Fsections-optionnelles","Sections optionnelles",[86,128,130],{"href":129},"\u002Fnext\u002Fdodock\u002Fdeveloppeurs\u002Fcomposants-ui\u002Favatar-group","Groupe d'avatars",[86,132,134],{"href":133},"\u002Fnext\u002Fdodock\u002Fdeveloppeurs\u002Fcomposants-ui\u002Futiliser-les-composants-skeleton-et-divider","Skeleton et Divider",[86,136,138],{"href":137},"\u002Fnext\u002Fdodock\u002Fdeveloppeurs\u002Fcomposants-ui\u002Fmenus-deroulants-espresso","Menus déroulants"," et ",[86,141,143],{"href":142},"\u002Fnext\u002Fdodock\u002Fdeveloppeurs\u002Fcomposants-ui\u002Finfo-bulles","Info-bulles intelligentes",[14,145,146,147,150,151,156,157,25],{},"Les composants Vue des applications (paquet ",[18,148,149],{},"@framework\u002Fui",", construit sur ",[86,152,155],{"href":153,"rel":154},"https:\u002F\u002Fui.frappe.io",[90],"frappe-ui",") sont décrits à part : voir ",[86,158,160],{"href":159},"\u002Fnext\u002Fdodock\u002Fdeveloppeurs\u002Fframework-ui","Package @framework\u002Fui",[162,163,165,166],"h2",{"id":164},"bouton-frappeuibutton","Bouton : ",[18,167,168],{},"frappe.ui.button",[170,171,176],"pre",{"className":172,"code":173,"language":174,"meta":175,"style":175},"language-js shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","const $btn = frappe.ui.button({\n    label: __(\"Save\"),\n    variant: \"solid\",\n    icon: \"check\",\n    onclick: () => frm.save(),\n});\n$btn.appendTo(frm.fields_dict.actions_html.$wrapper);\n","js","",[18,177,178,215,245,263,280,307,318],{"__ignoreMap":175},[179,180,183,187,191,195,198,200,203,205,209,212],"span",{"class":181,"line":182},"line",1,[179,184,186],{"class":185},"spNyl","const",[179,188,190],{"class":189},"sTEyZ"," $btn ",[179,192,194],{"class":193},"sMK4o","=",[179,196,197],{"class":189}," frappe",[179,199,25],{"class":193},[179,201,202],{"class":189},"ui",[179,204,25],{"class":193},[179,206,208],{"class":207},"s2Zo4","button",[179,210,211],{"class":189},"(",[179,213,214],{"class":193},"{\n",[179,216,218,222,225,228,230,233,237,239,242],{"class":181,"line":217},2,[179,219,221],{"class":220},"swJcz","    label",[179,223,224],{"class":193},":",[179,226,227],{"class":207}," __",[179,229,211],{"class":189},[179,231,232],{"class":193},"\"",[179,234,236],{"class":235},"sfazB","Save",[179,238,232],{"class":193},[179,240,241],{"class":189},")",[179,243,244],{"class":193},",\n",[179,246,248,251,253,256,259,261],{"class":181,"line":247},3,[179,249,250],{"class":220},"    variant",[179,252,224],{"class":193},[179,254,255],{"class":193}," \"",[179,257,258],{"class":235},"solid",[179,260,232],{"class":193},[179,262,244],{"class":193},[179,264,266,269,271,273,276,278],{"class":181,"line":265},4,[179,267,268],{"class":220},"    icon",[179,270,224],{"class":193},[179,272,255],{"class":193},[179,274,275],{"class":235},"check",[179,277,232],{"class":193},[179,279,244],{"class":193},[179,281,283,286,288,291,294,297,299,302,305],{"class":181,"line":282},5,[179,284,285],{"class":207},"    onclick",[179,287,224],{"class":193},[179,289,290],{"class":193}," ()",[179,292,293],{"class":185}," =>",[179,295,296],{"class":189}," frm",[179,298,25],{"class":193},[179,300,301],{"class":207},"save",[179,303,304],{"class":189},"()",[179,306,244],{"class":193},[179,308,310,313,315],{"class":181,"line":309},6,[179,311,312],{"class":193},"}",[179,314,241],{"class":189},[179,316,317],{"class":193},";\n",[179,319,321,324,326,329,332,334,337,339,342,344,347],{"class":181,"line":320},7,[179,322,323],{"class":189},"$btn",[179,325,25],{"class":193},[179,327,328],{"class":207},"appendTo",[179,330,331],{"class":189},"(frm",[179,333,25],{"class":193},[179,335,336],{"class":189},"fields_dict",[179,338,25],{"class":193},[179,340,341],{"class":189},"actions_html",[179,343,25],{"class":193},[179,345,346],{"class":189},"$wrapper)",[179,348,317],{"class":193},[14,350,351,352,354],{},"Si ",[18,353,67],{}," renvoie une promesse, le bouton affiche un indicateur de chargement jusqu'à la fin de la promesse.",[30,356,357,370],{},[33,358,359],{},[36,360,361,364,367],{},[39,362,363],{},"Option",[39,365,366],{},"Valeurs",[39,368,369],{},"Rôle",[49,371,372,385,409,429,453,480,492,512,528,540,560,576],{},[36,373,374,379,382],{},[54,375,376],{},[18,377,378],{},"label",[54,380,381],{},"texte",[54,383,384],{},"Texte du bouton.",[36,386,387,392,406],{},[54,388,389],{},[18,390,391],{},"variant",[54,393,394,96,396,399,400,96,403],{},[18,395,258],{},[18,397,398],{},"subtle"," (défaut), ",[18,401,402],{},"outline",[18,404,405],{},"ghost",[54,407,408],{},"Style du bouton.",[36,410,411,416,424],{},[54,412,413],{},[18,414,415],{},"theme",[54,417,418,399,421],{},[18,419,420],{},"gray",[18,422,423],{},"red",[54,425,426,428],{},[18,427,423],{}," pour une action destructive.",[36,430,431,436,450],{},[54,432,433],{},[18,434,435],{},"size",[54,437,438,96,441,399,444,96,447],{},[18,439,440],{},"xs",[18,442,443],{},"sm",[18,445,446],{},"md",[18,448,449],{},"lg",[54,451,452],{},"Taille.",[36,454,455,467,470],{},[54,456,457,460,461,96,464],{},[18,458,459],{},"icon"," \u002F ",[18,462,463],{},"icon_left",[18,465,466],{},"icon_right",[54,468,469],{},"nom Lucide",[54,471,472,473,476,477,25],{},"Icône avant ou après le libellé. Une icône sans libellé donne un bouton carré : ajoutez alors ",[18,474,475],{},"tooltip"," ou ",[18,478,479],{},"title",[36,481,482,486,489],{},[54,483,484],{},[18,485,475],{},[54,487,488],{},"texte ou options d'info-bulle",[54,490,491],{},"Info-bulle Espresso au survol et au focus.",[36,493,494,499,502],{},[54,495,496],{},[18,497,498],{},"href",[54,500,501],{},"URL",[54,503,504,505,508,509,25],{},"Affiche un lien ",[18,506,507],{},"\u003Ca>"," à la place d'un ",[18,510,511],{},"\u003Cbutton>",[36,513,514,522,525],{},[54,515,516,96,519],{},[18,517,518],{},"disabled",[18,520,521],{},"loading",[54,523,524],{},"booléen",[54,526,527],{},"Désactive le bouton ou affiche l'indicateur de chargement.",[36,529,530,535,537],{},[54,531,532],{},[18,533,534],{},"loading_label",[54,536,381],{},[54,538,539],{},"Texte pendant le chargement. « Save », « Delete » et « Submit » ont un texte par défaut.",[36,541,542,547,557],{},[54,543,544],{},[18,545,546],{},"type",[54,548,549,399,551,96,554],{},[18,550,208],{},[18,552,553],{},"submit",[18,555,556],{},"reset",[54,558,559],{},"Type HTML.",[36,561,562,570,573],{},[54,563,564,96,567],{},[18,565,566],{},"css_class",[18,568,569],{},"attrs",[54,571,572],{},"texte, objet",[54,574,575],{},"Classes et attributs HTML supplémentaires.",[36,577,578,582,585],{},[54,579,580],{},[18,581,67],{},[54,583,584],{},"fonction",[54,586,587],{},"Action au clic (forme élément seulement).",[14,589,590,593],{},[18,591,592],{},"frappe.ui.button.dress(el, opts)"," applique le style Espresso à un bouton qui existe déjà.",[162,595,597,598],{"id":596},"badge-frappeuibadge","Badge : ",[18,599,600],{},"frappe.ui.badge",[170,602,604],{"className":172,"code":603,"language":174,"meta":175,"style":175},"frappe.ui.badge({ label: __(\"Overdue\"), theme: \"red\" }).appendTo($row);\n",[18,605,606],{"__ignoreMap":175},[179,607,608,611,613,615,617,620,622,625,628,630,632,634,636,639,641,643,646,649,651,653,655,657,660,662,664,666,669],{"class":181,"line":182},[179,609,610],{"class":189},"frappe",[179,612,25],{"class":193},[179,614,202],{"class":189},[179,616,25],{"class":193},[179,618,619],{"class":207},"badge",[179,621,211],{"class":189},[179,623,624],{"class":193},"{",[179,626,627],{"class":220}," label",[179,629,224],{"class":193},[179,631,227],{"class":207},[179,633,211],{"class":189},[179,635,232],{"class":193},[179,637,638],{"class":235},"Overdue",[179,640,232],{"class":193},[179,642,241],{"class":189},[179,644,645],{"class":193},",",[179,647,648],{"class":220}," theme",[179,650,224],{"class":193},[179,652,255],{"class":193},[179,654,423],{"class":235},[179,656,232],{"class":193},[179,658,659],{"class":193}," }",[179,661,241],{"class":189},[179,663,25],{"class":193},[179,665,328],{"class":207},[179,667,668],{"class":189},"($row)",[179,670,317],{"class":193},[30,672,673,683],{},[33,674,675],{},[36,676,677,679,681],{},[39,678,363],{},[39,680,366],{},[39,682,369],{},[49,684,685,696,731,750,766,781,796],{},[36,686,687,691,693],{},[54,688,689],{},[18,690,378],{},[54,692,381],{},[54,694,695],{},"Texte du badge.",[36,697,698,702,723],{},[54,699,700],{},[18,701,415],{},[54,703,704,399,706,96,709,96,712,96,715,96,717,96,720],{},[18,705,420],{},[18,707,708],{},"blue",[18,710,711],{},"green",[18,713,714],{},"amber",[18,716,423],{},[18,718,719],{},"violet",[18,721,722],{},"orange",[54,724,725,726,728,729,25],{},"Couleur. ",[18,727,722],{}," donne la même couleur que ",[18,730,714],{},[36,732,733,737,747],{},[54,734,735],{},[18,736,391],{},[54,738,739,96,741,399,743,96,745],{},[18,740,258],{},[18,742,398],{},[18,744,402],{},[18,746,405],{},[54,748,749],{},"Style.",[36,751,752,756,764],{},[54,753,754],{},[18,755,435],{},[54,757,758,96,760,399,762],{},[18,759,443],{},[18,761,446],{},[18,763,449],{},[54,765,452],{},[36,767,768,776,778],{},[54,769,770,460,772,96,774],{},[18,771,459],{},[18,773,463],{},[18,775,466],{},[54,777,469],{},[54,779,780],{},"Icône avant ou après le libellé.",[36,782,783,787,789],{},[54,784,785],{},[18,786,479],{},[54,788,381],{},[54,790,791,792,795],{},"Info-bulle native. Sert aussi d'",[18,793,794],{},"aria-label"," sans libellé visible.",[36,797,798,807,809],{},[54,799,800,96,802,96,805],{},[18,801,566],{},[18,803,804],{},"label_class",[18,806,569],{},[54,808],{},[54,810,811],{},"Classes de l'élément, classes du libellé, attributs HTML.",[162,813,815,816],{"id":814},"menu-déroulant-frappeuidropdown","Menu déroulant : ",[18,817,818],{},"frappe.ui.Dropdown",[14,820,821,822,25],{},"Le menu s'ouvre sur un élément déclencheur. Il remplace l'attribut Bootstrap ",[18,823,824],{},"data-toggle=\"dropdown\"",[170,826,828],{"className":172,"code":827,"language":174,"meta":175,"style":175},"new frappe.ui.Dropdown({\n    trigger: $(\".menu-btn\"),\n    options: [\n        { label: __(\"Edit\"), icon: \"pen\", onclick: () => edit() },\n        { label: __(\"Delete\"), icon: \"trash\", theme: \"red\", onclick: () => remove() },\n    ],\n});\n",[18,829,830,850,873,883,939,1002,1009],{"__ignoreMap":175},[179,831,832,835,837,839,841,843,846,848],{"class":181,"line":182},[179,833,834],{"class":193},"new",[179,836,197],{"class":189},[179,838,25],{"class":193},[179,840,202],{"class":189},[179,842,25],{"class":193},[179,844,845],{"class":207},"Dropdown",[179,847,211],{"class":189},[179,849,214],{"class":193},[179,851,852,855,857,860,862,864,867,869,871],{"class":181,"line":217},[179,853,854],{"class":220},"    trigger",[179,856,224],{"class":193},[179,858,859],{"class":207}," $",[179,861,211],{"class":189},[179,863,232],{"class":193},[179,865,866],{"class":235},".menu-btn",[179,868,232],{"class":193},[179,870,241],{"class":189},[179,872,244],{"class":193},[179,874,875,878,880],{"class":181,"line":247},[179,876,877],{"class":220},"    options",[179,879,224],{"class":193},[179,881,882],{"class":189}," [\n",[179,884,885,888,890,892,894,896,898,901,903,905,907,910,912,914,917,919,921,924,926,928,930,933,936],{"class":181,"line":265},[179,886,887],{"class":193},"        {",[179,889,627],{"class":220},[179,891,224],{"class":193},[179,893,227],{"class":207},[179,895,211],{"class":189},[179,897,232],{"class":193},[179,899,900],{"class":235},"Edit",[179,902,232],{"class":193},[179,904,241],{"class":189},[179,906,645],{"class":193},[179,908,909],{"class":220}," icon",[179,911,224],{"class":193},[179,913,255],{"class":193},[179,915,916],{"class":235},"pen",[179,918,232],{"class":193},[179,920,645],{"class":193},[179,922,923],{"class":207}," onclick",[179,925,224],{"class":193},[179,927,290],{"class":193},[179,929,293],{"class":185},[179,931,932],{"class":207}," edit",[179,934,935],{"class":189},"() ",[179,937,938],{"class":193},"},\n",[179,940,941,943,945,947,949,951,953,956,958,960,962,964,966,968,971,973,975,977,979,981,983,985,987,989,991,993,995,998,1000],{"class":181,"line":282},[179,942,887],{"class":193},[179,944,627],{"class":220},[179,946,224],{"class":193},[179,948,227],{"class":207},[179,950,211],{"class":189},[179,952,232],{"class":193},[179,954,955],{"class":235},"Delete",[179,957,232],{"class":193},[179,959,241],{"class":189},[179,961,645],{"class":193},[179,963,909],{"class":220},[179,965,224],{"class":193},[179,967,255],{"class":193},[179,969,970],{"class":235},"trash",[179,972,232],{"class":193},[179,974,645],{"class":193},[179,976,648],{"class":220},[179,978,224],{"class":193},[179,980,255],{"class":193},[179,982,423],{"class":235},[179,984,232],{"class":193},[179,986,645],{"class":193},[179,988,923],{"class":207},[179,990,224],{"class":193},[179,992,290],{"class":193},[179,994,293],{"class":185},[179,996,997],{"class":207}," remove",[179,999,935],{"class":189},[179,1001,938],{"class":193},[179,1003,1004,1007],{"class":181,"line":309},[179,1005,1006],{"class":189},"    ]",[179,1008,244],{"class":193},[179,1010,1011,1013,1015],{"class":181,"line":320},[179,1012,312],{"class":193},[179,1014,241],{"class":189},[179,1016,317],{"class":193},[14,1018,1019,1020,1023,1024,25],{},"La forme courte ",[18,1021,1022],{},"frappe.ui.dropdown(opts)"," crée aussi le bouton déclencheur et le renvoie. L'instance est dans ",[18,1025,1026],{},".data(\"es-dropdown\")",[170,1028,1030],{"className":172,"code":1029,"language":174,"meta":175,"style":175},"page.body.append(\n    frappe.ui.dropdown({\n        button: { label: __(\"Actions\") },\n        options: [{ label: __(\"Duplicate\"), onclick: () => duplicate() }],\n    })\n);\n",[18,1031,1032,1050,1068,1098,1149,1157],{"__ignoreMap":175},[179,1033,1034,1037,1039,1042,1044,1047],{"class":181,"line":182},[179,1035,1036],{"class":189},"page",[179,1038,25],{"class":193},[179,1040,1041],{"class":189},"body",[179,1043,25],{"class":193},[179,1045,1046],{"class":207},"append",[179,1048,1049],{"class":189},"(\n",[179,1051,1052,1055,1057,1059,1061,1064,1066],{"class":181,"line":217},[179,1053,1054],{"class":189},"    frappe",[179,1056,25],{"class":193},[179,1058,202],{"class":189},[179,1060,25],{"class":193},[179,1062,1063],{"class":207},"dropdown",[179,1065,211],{"class":189},[179,1067,214],{"class":193},[179,1069,1070,1073,1075,1078,1080,1082,1084,1086,1088,1091,1093,1096],{"class":181,"line":247},[179,1071,1072],{"class":220},"        button",[179,1074,224],{"class":193},[179,1076,1077],{"class":193}," {",[179,1079,627],{"class":220},[179,1081,224],{"class":193},[179,1083,227],{"class":207},[179,1085,211],{"class":189},[179,1087,232],{"class":193},[179,1089,1090],{"class":235},"Actions",[179,1092,232],{"class":193},[179,1094,1095],{"class":189},") ",[179,1097,938],{"class":193},[179,1099,1100,1103,1105,1108,1110,1112,1114,1116,1118,1120,1123,1125,1127,1129,1131,1133,1135,1137,1140,1142,1144,1147],{"class":181,"line":265},[179,1101,1102],{"class":220},"        options",[179,1104,224],{"class":193},[179,1106,1107],{"class":189}," [",[179,1109,624],{"class":193},[179,1111,627],{"class":220},[179,1113,224],{"class":193},[179,1115,227],{"class":207},[179,1117,211],{"class":189},[179,1119,232],{"class":193},[179,1121,1122],{"class":235},"Duplicate",[179,1124,232],{"class":193},[179,1126,241],{"class":189},[179,1128,645],{"class":193},[179,1130,923],{"class":207},[179,1132,224],{"class":193},[179,1134,290],{"class":193},[179,1136,293],{"class":185},[179,1138,1139],{"class":207}," duplicate",[179,1141,935],{"class":189},[179,1143,312],{"class":193},[179,1145,1146],{"class":189},"]",[179,1148,244],{"class":193},[179,1150,1151,1154],{"class":181,"line":282},[179,1152,1153],{"class":193},"    }",[179,1155,1156],{"class":189},")\n",[179,1158,1159,1161],{"class":181,"line":309},[179,1160,241],{"class":189},[179,1162,317],{"class":193},[30,1164,1165,1173],{},[33,1166,1167],{},[36,1168,1169,1171],{},[39,1170,363],{},[39,1172,369],{},[49,1174,1175,1190,1202,1212,1254,1264,1298],{},[36,1176,1177,1182],{},[54,1178,1179],{},[18,1180,1181],{},"trigger",[54,1183,1184,1185,1187,1188,25],{},"Élément qui ouvre le menu. Sans ",[18,1186,1181],{},", le composant crée un bouton à partir de ",[18,1189,208],{},[36,1191,1192,1196],{},[54,1193,1194],{},[18,1195,208],{},[54,1197,1198,1199,1201],{},"Options du bouton déclencheur (voir ",[18,1200,168],{},").",[36,1203,1204,1209],{},[54,1205,1206],{},[18,1207,1208],{},"options",[54,1210,1211],{},"Tableau d'éléments ou de groupes. Une fonction est appelée à chaque ouverture et peut renvoyer une promesse : le menu affiche une ligne de chargement en attendant.",[36,1213,1214,1225],{},[54,1215,1216,96,1219,96,1222],{},[18,1217,1218],{},"side",[18,1220,1221],{},"align",[18,1223,1224],{},"offset",[54,1226,1227,1228,399,1231,96,1234,96,1237,1240,1241,399,1244,96,1247,1250,1251,1201],{},"Position par rapport au déclencheur : ",[18,1229,1230],{},"bottom",[18,1232,1233],{},"top",[18,1235,1236],{},"left",[18,1238,1239],{},"right",", puis ",[18,1242,1243],{},"start",[18,1245,1246],{},"center",[18,1248,1249],{},"end",", puis l'écart en pixels (",[18,1252,1253],{},"4",[36,1255,1256,1261],{},[54,1257,1258],{},[18,1259,1260],{},"empty_text",[54,1262,1263],{},"Texte affiché quand aucun élément n'est visible.",[36,1265,1266,1274],{},[54,1267,1268,96,1271],{},[18,1269,1270],{},"on_open",[18,1272,1273],{},"on_close",[54,1275,1276,1277,1279,1280,96,1283,96,1286,96,1289,96,1292,476,1295,25],{},"Fonctions appelées à l'ouverture et à la fermeture. ",[18,1278,1273],{}," reçoit la raison : ",[18,1281,1282],{},"activate",[18,1284,1285],{},"escape",[18,1287,1288],{},"outside",[18,1290,1291],{},"tab",[18,1293,1294],{},"navigate",[18,1296,1297],{},"owner",[36,1299,1300,1308],{},[54,1301,1302,96,1305],{},[18,1303,1304],{},"sheet_on_mobile",[18,1306,1307],{},"sheet_title",[54,1309,1310,1311,25],{},"Sur téléphone, ouvre les éléments dans un panneau ",[18,1312,1313],{},"frappe.ui.BottomSheet",[14,1315,1316,1317,96,1320,96,1323,96,1326,96,1329,25],{},"Méthodes de l'instance : ",[18,1318,1319],{},"open()",[18,1321,1322],{},"close()",[18,1324,1325],{},"toggle()",[18,1327,1328],{},"set_options(options)",[18,1330,1331],{},"destroy()",[1333,1334,1336],"h3",{"id":1335},"éléments-de-menu","Éléments de menu",[30,1338,1339,1348],{},[33,1340,1341],{},[36,1342,1343,1346],{},[39,1344,1345],{},"Clé",[39,1347,369],{},[49,1349,1350,1359,1373,1383,1393,1405,1422,1431,1443,1457],{},[36,1351,1352,1356],{},[54,1353,1354],{},[18,1355,378],{},[54,1357,1358],{},"Texte de la ligne.",[36,1360,1361,1370],{},[54,1362,1363,96,1365,96,1367],{},[18,1364,459],{},[18,1366,466],{},[18,1368,1369],{},"image",[54,1371,1372],{},"Icône avant, icône après, ou image (logo d'application).",[36,1374,1375,1380],{},[54,1376,1377],{},[18,1378,1379],{},"description",[54,1381,1382],{},"Deuxième ligne, plus petite.",[36,1384,1385,1389],{},[54,1386,1387],{},[18,1388,415],{},[54,1390,1391,428],{},[18,1392,423],{},[36,1394,1395,1402],{},[54,1396,1397,96,1400],{},[18,1398,1399],{},"selected",[18,1401,518],{},[54,1403,1404],{},"Choix courant (visuel), ligne inactive.",[36,1406,1407,1412],{},[54,1408,1409],{},[18,1410,1411],{},"shortcut",[54,1413,1414,1415,1418,1419,25],{},"Raccourci affiché, par exemple ",[18,1416,1417],{},"\"ctrl+p\"",". L'affichage seul : liez la touche avec ",[18,1420,1421],{},"frappe.ui.keys.add_shortcut",[36,1423,1424,1428],{},[54,1425,1426],{},[18,1427,67],{},[54,1429,1430],{},"Action au clic. Le menu se ferme ensuite.",[36,1432,1433,1440],{},[54,1434,1435,96,1437],{},[18,1436,498],{},[18,1438,1439],{},"target",[54,1441,1442],{},"Transforme la ligne en lien.",[36,1444,1445,1450],{},[54,1446,1447],{},[18,1448,1449],{},"condition",[54,1451,1452,1453,1456],{},"Fonction vérifiée à chaque ouverture. Renvoyez ",[18,1454,1455],{},"false"," pour masquer la ligne.",[36,1458,1459,1464],{},[54,1460,1461],{},[18,1462,1463],{},"submenu",[54,1465,1466],{},"Sous-menu : tableau, ou fonction qui renvoie les éléments ou une promesse.",[14,1468,1469,1470,25],{},"Pour un groupe, passez ",[18,1471,1472],{},"{ group: \"Titre\", hide_label: false, options: [...] }",[14,1474,1475],{},"Le clavier fonctionne dans tous les menus : flèches pour se déplacer, droite et gauche pour les sous-menus, Entrée ou Espace pour choisir, Échap pour fermer. Une lettre saisie va à la ligne qui commence par cette lettre. Maintenir Alt souligne une lettre par ligne : Alt + cette lettre choisit la ligne.",[162,1477,1479,1480],{"id":1478},"menu-contextuel-frappeuicontextmenu","Menu contextuel : ",[18,1481,1482],{},"frappe.ui.ContextMenu",[14,1484,1485,1486,25],{},"Le menu s'ouvre au clic droit sur un élément, à la position du pointeur. Il accepte les mêmes éléments que ",[18,1487,818],{},[170,1489,1491],{"className":172,"code":1490,"language":174,"meta":175,"style":175},"new frappe.ui.ContextMenu({\n    target: row_el,\n    options: () => [\n        { label: __(\"Open\"), icon: \"external-link\", onclick: () => open_row() },\n        { label: __(\"Delete\"), icon: \"trash-2\", theme: \"red\", onclick: () => delete_row() },\n    ],\n});\n",[18,1492,1493,1512,1524,1536,1587,1649,1655],{"__ignoreMap":175},[179,1494,1495,1497,1499,1501,1503,1505,1508,1510],{"class":181,"line":182},[179,1496,834],{"class":193},[179,1498,197],{"class":189},[179,1500,25],{"class":193},[179,1502,202],{"class":189},[179,1504,25],{"class":193},[179,1506,1507],{"class":207},"ContextMenu",[179,1509,211],{"class":189},[179,1511,214],{"class":193},[179,1513,1514,1517,1519,1522],{"class":181,"line":217},[179,1515,1516],{"class":220},"    target",[179,1518,224],{"class":193},[179,1520,1521],{"class":189}," row_el",[179,1523,244],{"class":193},[179,1525,1526,1528,1530,1532,1534],{"class":181,"line":247},[179,1527,877],{"class":207},[179,1529,224],{"class":193},[179,1531,290],{"class":193},[179,1533,293],{"class":185},[179,1535,882],{"class":189},[179,1537,1538,1540,1542,1544,1546,1548,1550,1553,1555,1557,1559,1561,1563,1565,1568,1570,1572,1574,1576,1578,1580,1583,1585],{"class":181,"line":265},[179,1539,887],{"class":193},[179,1541,627],{"class":220},[179,1543,224],{"class":193},[179,1545,227],{"class":207},[179,1547,211],{"class":189},[179,1549,232],{"class":193},[179,1551,1552],{"class":235},"Open",[179,1554,232],{"class":193},[179,1556,241],{"class":189},[179,1558,645],{"class":193},[179,1560,909],{"class":220},[179,1562,224],{"class":193},[179,1564,255],{"class":193},[179,1566,1567],{"class":235},"external-link",[179,1569,232],{"class":193},[179,1571,645],{"class":193},[179,1573,923],{"class":207},[179,1575,224],{"class":193},[179,1577,290],{"class":193},[179,1579,293],{"class":185},[179,1581,1582],{"class":207}," open_row",[179,1584,935],{"class":189},[179,1586,938],{"class":193},[179,1588,1589,1591,1593,1595,1597,1599,1601,1603,1605,1607,1609,1611,1613,1615,1618,1620,1622,1624,1626,1628,1630,1632,1634,1636,1638,1640,1642,1645,1647],{"class":181,"line":282},[179,1590,887],{"class":193},[179,1592,627],{"class":220},[179,1594,224],{"class":193},[179,1596,227],{"class":207},[179,1598,211],{"class":189},[179,1600,232],{"class":193},[179,1602,955],{"class":235},[179,1604,232],{"class":193},[179,1606,241],{"class":189},[179,1608,645],{"class":193},[179,1610,909],{"class":220},[179,1612,224],{"class":193},[179,1614,255],{"class":193},[179,1616,1617],{"class":235},"trash-2",[179,1619,232],{"class":193},[179,1621,645],{"class":193},[179,1623,648],{"class":220},[179,1625,224],{"class":193},[179,1627,255],{"class":193},[179,1629,423],{"class":235},[179,1631,232],{"class":193},[179,1633,645],{"class":193},[179,1635,923],{"class":207},[179,1637,224],{"class":193},[179,1639,290],{"class":193},[179,1641,293],{"class":185},[179,1643,1644],{"class":207}," delete_row",[179,1646,935],{"class":189},[179,1648,938],{"class":193},[179,1650,1651,1653],{"class":181,"line":309},[179,1652,1006],{"class":189},[179,1654,244],{"class":193},[179,1656,1657,1659,1661],{"class":181,"line":320},[179,1658,312],{"class":193},[179,1660,241],{"class":189},[179,1662,317],{"class":193},[30,1664,1665,1673],{},[33,1666,1667],{},[36,1668,1669,1671],{},[39,1670,363],{},[39,1672,369],{},[49,1674,1675,1684,1693,1702,1715],{},[36,1676,1677,1681],{},[54,1678,1679],{},[18,1680,1439],{},[54,1682,1683],{},"Élément qui reçoit le clic droit. Obligatoire.",[36,1685,1686,1690],{},[54,1687,1688],{},[18,1689,1208],{},[54,1691,1692],{},"Éléments, ou fonction appelée à chaque ouverture (elle peut renvoyer une promesse).",[36,1694,1695,1699],{},[54,1696,1697],{},[18,1698,1260],{},[54,1700,1701],{},"Texte quand aucun élément n'est visible.",[36,1703,1704,1708],{},[54,1705,1706],{},[18,1707,1270],{},[54,1709,1710,1711,1714],{},"Appelée avec l'événement ",[18,1712,1713],{},"contextmenu",", avant l'affichage.",[36,1716,1717,1721],{},[54,1718,1719],{},[18,1720,1273],{},[54,1722,1723],{},"Appelée avec la raison de fermeture.",[14,1725,1726,1727,1730],{},"Pendant l'ouverture, la cible porte l'attribut ",[18,1728,1729],{},"data-state=\"open\"",". Utilisez-le pour mettre en évidence la ligne concernée.",[162,1732,1734,1735],{"id":1733},"notification-frappeuitoast","Notification : ",[18,1736,1737],{},"frappe.ui.toast",[170,1739,1741],{"className":172,"code":1740,"language":174,"meta":175,"style":175},"frappe.ui.toast({ message: __(\"Saved\"), type: \"success\" });\n\nfrappe.ui.toast.promise(frm.save(), {\n    loading: __(\"Saving...\"),\n    success: __(\"Saved\"),\n});\n",[18,1742,1743,1798,1804,1834,1856,1877],{"__ignoreMap":175},[179,1744,1745,1747,1749,1751,1753,1756,1758,1760,1763,1765,1767,1769,1771,1774,1776,1778,1780,1783,1785,1787,1790,1792,1794,1796],{"class":181,"line":182},[179,1746,610],{"class":189},[179,1748,25],{"class":193},[179,1750,202],{"class":189},[179,1752,25],{"class":193},[179,1754,1755],{"class":207},"toast",[179,1757,211],{"class":189},[179,1759,624],{"class":193},[179,1761,1762],{"class":220}," message",[179,1764,224],{"class":193},[179,1766,227],{"class":207},[179,1768,211],{"class":189},[179,1770,232],{"class":193},[179,1772,1773],{"class":235},"Saved",[179,1775,232],{"class":193},[179,1777,241],{"class":189},[179,1779,645],{"class":193},[179,1781,1782],{"class":220}," type",[179,1784,224],{"class":193},[179,1786,255],{"class":193},[179,1788,1789],{"class":235},"success",[179,1791,232],{"class":193},[179,1793,659],{"class":193},[179,1795,241],{"class":189},[179,1797,317],{"class":193},[179,1799,1800],{"class":181,"line":217},[179,1801,1803],{"emptyLinePlaceholder":1802},true,"\n",[179,1805,1806,1808,1810,1812,1814,1816,1818,1821,1823,1825,1827,1829,1831],{"class":181,"line":247},[179,1807,610],{"class":189},[179,1809,25],{"class":193},[179,1811,202],{"class":189},[179,1813,25],{"class":193},[179,1815,1755],{"class":189},[179,1817,25],{"class":193},[179,1819,1820],{"class":207},"promise",[179,1822,331],{"class":189},[179,1824,25],{"class":193},[179,1826,301],{"class":207},[179,1828,304],{"class":189},[179,1830,645],{"class":193},[179,1832,1833],{"class":193}," {\n",[179,1835,1836,1839,1841,1843,1845,1847,1850,1852,1854],{"class":181,"line":265},[179,1837,1838],{"class":220},"    loading",[179,1840,224],{"class":193},[179,1842,227],{"class":207},[179,1844,211],{"class":189},[179,1846,232],{"class":193},[179,1848,1849],{"class":235},"Saving...",[179,1851,232],{"class":193},[179,1853,241],{"class":189},[179,1855,244],{"class":193},[179,1857,1858,1861,1863,1865,1867,1869,1871,1873,1875],{"class":181,"line":282},[179,1859,1860],{"class":220},"    success",[179,1862,224],{"class":193},[179,1864,227],{"class":207},[179,1866,211],{"class":189},[179,1868,232],{"class":193},[179,1870,1773],{"class":235},[179,1872,232],{"class":193},[179,1874,241],{"class":189},[179,1876,244],{"class":193},[179,1878,1879,1881,1883],{"class":181,"line":309},[179,1880,312],{"class":193},[179,1882,241],{"class":189},[179,1884,317],{"class":193},[30,1886,1887,1897],{},[33,1888,1889],{},[36,1890,1891,1893,1895],{},[39,1892,363],{},[39,1894,366],{},[39,1896,369],{},[49,1898,1899,1911,1922,1949,1969,1984,2000,2015],{},[36,1900,1901,1906,1908],{},[54,1902,1903],{},[18,1904,1905],{},"message",[54,1907,381],{},[54,1909,1910],{},"Texte principal.",[36,1912,1913,1917,1919],{},[54,1914,1915],{},[18,1916,1379],{},[54,1918,381],{},[54,1920,1921],{},"Deuxième ligne.",[36,1923,1924,1928,1943],{},[54,1925,1926],{},[18,1927,546],{},[54,1929,1930,399,1932,96,1935,96,1937,96,1940],{},[18,1931,1905],{},[18,1933,1934],{},"info",[18,1936,1789],{},[18,1938,1939],{},"warning",[18,1941,1942],{},"error",[54,1944,1945,1946,1948],{},"Icône et couleur. ",[18,1947,1905],{}," n'a pas d'icône.",[36,1950,1951,1956,1963],{},[54,1952,1953],{},[18,1954,1955],{},"duration",[54,1957,1958,1959,1962],{},"millisecondes, ",[18,1960,1961],{},"5000"," par défaut",[54,1964,1965,1968],{},[18,1966,1967],{},"0"," garde la notification jusqu'à sa fermeture.",[36,1970,1971,1978,1981],{},[54,1972,1973,96,1975],{},[18,1974,459],{},[18,1976,1977],{},"icon_class",[54,1979,1980],{},"nom Lucide, classes",[54,1982,1983],{},"Remplace l'icône du type.",[36,1985,1986,1991,1997],{},[54,1987,1988],{},[18,1989,1990],{},"closable",[54,1992,1993,1994,1962],{},"booléen, ",[18,1995,1996],{},"true",[54,1998,1999],{},"Affiche le bouton de fermeture.",[36,2001,2002,2007,2012],{},[54,2003,2004],{},[18,2005,2006],{},"action",[54,2008,2009],{},[18,2010,2011],{},"{ label, onclick }",[54,2013,2014],{},"Bouton à droite.",[36,2016,2017,2022,2024],{},[54,2018,2019],{},[18,2020,2021],{},"id",[54,2023,381],{},[54,2025,2026,2027,2029],{},"Une deuxième notification avec le même ",[18,2028,2021],{}," met à jour la première.",[14,2031,2032,2035,2036,25],{},[18,2033,2034],{},"frappe.ui.toast()"," renvoie ",[18,2037,2038],{},"{ id, $el, dismiss, update }",[162,2040,2042,2043],{"id":2041},"panneau-inférieur-frappeuibottomsheet","Panneau inférieur : ",[18,2044,1313],{},[14,2046,2047],{},"Le panneau inférieur monte depuis le bas de l'écran. Il sert aux choix, aux formulaires courts et aux confirmations sur téléphone. La page derrière est assombrie et le focus reste dans le panneau jusqu'à sa fermeture.",[14,2049,2050],{},"Le composant ne fait pas partie des bundles du desk. Chargez son script et ses styles avant la première utilisation :",[170,2052,2054],{"className":172,"code":2053,"language":174,"meta":175,"style":175},"await frappe.require([\"bottom_sheet.bundle.js\", \"bottom_sheet.bundle.css\"]);\n\nnew frappe.ui.BottomSheet({\n    title: __(\"Sort by\"),\n    options: [{ label: __(\"Created On\"), selected: true, onclick: () => sort(\"creation\") }],\n}).open();\n",[18,2055,2056,2093,2097,2116,2138,2206],{"__ignoreMap":175},[179,2057,2058,2062,2064,2066,2069,2072,2074,2077,2079,2081,2083,2086,2088,2091],{"class":181,"line":182},[179,2059,2061],{"class":2060},"s7zQu","await",[179,2063,197],{"class":189},[179,2065,25],{"class":193},[179,2067,2068],{"class":207},"require",[179,2070,2071],{"class":189},"([",[179,2073,232],{"class":193},[179,2075,2076],{"class":235},"bottom_sheet.bundle.js",[179,2078,232],{"class":193},[179,2080,645],{"class":193},[179,2082,255],{"class":193},[179,2084,2085],{"class":235},"bottom_sheet.bundle.css",[179,2087,232],{"class":193},[179,2089,2090],{"class":189},"])",[179,2092,317],{"class":193},[179,2094,2095],{"class":181,"line":217},[179,2096,1803],{"emptyLinePlaceholder":1802},[179,2098,2099,2101,2103,2105,2107,2109,2112,2114],{"class":181,"line":247},[179,2100,834],{"class":193},[179,2102,197],{"class":189},[179,2104,25],{"class":193},[179,2106,202],{"class":189},[179,2108,25],{"class":193},[179,2110,2111],{"class":207},"BottomSheet",[179,2113,211],{"class":189},[179,2115,214],{"class":193},[179,2117,2118,2121,2123,2125,2127,2129,2132,2134,2136],{"class":181,"line":265},[179,2119,2120],{"class":220},"    title",[179,2122,224],{"class":193},[179,2124,227],{"class":207},[179,2126,211],{"class":189},[179,2128,232],{"class":193},[179,2130,2131],{"class":235},"Sort by",[179,2133,232],{"class":193},[179,2135,241],{"class":189},[179,2137,244],{"class":193},[179,2139,2140,2142,2144,2146,2148,2150,2152,2154,2156,2158,2161,2163,2165,2167,2170,2172,2176,2178,2180,2182,2184,2186,2189,2191,2193,2196,2198,2200,2202,2204],{"class":181,"line":282},[179,2141,877],{"class":220},[179,2143,224],{"class":193},[179,2145,1107],{"class":189},[179,2147,624],{"class":193},[179,2149,627],{"class":220},[179,2151,224],{"class":193},[179,2153,227],{"class":207},[179,2155,211],{"class":189},[179,2157,232],{"class":193},[179,2159,2160],{"class":235},"Created On",[179,2162,232],{"class":193},[179,2164,241],{"class":189},[179,2166,645],{"class":193},[179,2168,2169],{"class":220}," selected",[179,2171,224],{"class":193},[179,2173,2175],{"class":2174},"sfNiH"," true",[179,2177,645],{"class":193},[179,2179,923],{"class":207},[179,2181,224],{"class":193},[179,2183,290],{"class":193},[179,2185,293],{"class":185},[179,2187,2188],{"class":207}," sort",[179,2190,211],{"class":189},[179,2192,232],{"class":193},[179,2194,2195],{"class":235},"creation",[179,2197,232],{"class":193},[179,2199,1095],{"class":189},[179,2201,312],{"class":193},[179,2203,1146],{"class":189},[179,2205,244],{"class":193},[179,2207,2208,2210,2212,2214,2217,2219],{"class":181,"line":309},[179,2209,312],{"class":193},[179,2211,241],{"class":189},[179,2213,25],{"class":193},[179,2215,2216],{"class":207},"open",[179,2218,304],{"class":189},[179,2220,317],{"class":193},[14,2222,1019,2223,2226,2227,2229,2230,25],{},[18,2224,2225],{},"frappe.ui.bottom_sheet(opts)"," crée un bouton déclencheur (option ",[18,2228,208],{},") et le renvoie, sans ouvrir le panneau. Ajoutez ce bouton dans la page. L'instance est dans ",[18,2231,2232],{},".data(\"es-bottom-sheet\")",[170,2234,2236],{"className":172,"code":2235,"language":174,"meta":175,"style":175},"toolbar.append(\n    frappe.ui.bottom_sheet({\n        button: { label: __(\"Sort\"), icon: \"arrow-down-wide-narrow\" },\n        title: __(\"Sort by\"),\n        options: sort_options,\n    })\n);\n",[18,2237,2238,2249,2266,2307,2328,2339,2345],{"__ignoreMap":175},[179,2239,2240,2243,2245,2247],{"class":181,"line":182},[179,2241,2242],{"class":189},"toolbar",[179,2244,25],{"class":193},[179,2246,1046],{"class":207},[179,2248,1049],{"class":189},[179,2250,2251,2253,2255,2257,2259,2262,2264],{"class":181,"line":217},[179,2252,1054],{"class":189},[179,2254,25],{"class":193},[179,2256,202],{"class":189},[179,2258,25],{"class":193},[179,2260,2261],{"class":207},"bottom_sheet",[179,2263,211],{"class":189},[179,2265,214],{"class":193},[179,2267,2268,2270,2272,2274,2276,2278,2280,2282,2284,2287,2289,2291,2293,2295,2297,2299,2302,2304],{"class":181,"line":247},[179,2269,1072],{"class":220},[179,2271,224],{"class":193},[179,2273,1077],{"class":193},[179,2275,627],{"class":220},[179,2277,224],{"class":193},[179,2279,227],{"class":207},[179,2281,211],{"class":189},[179,2283,232],{"class":193},[179,2285,2286],{"class":235},"Sort",[179,2288,232],{"class":193},[179,2290,241],{"class":189},[179,2292,645],{"class":193},[179,2294,909],{"class":220},[179,2296,224],{"class":193},[179,2298,255],{"class":193},[179,2300,2301],{"class":235},"arrow-down-wide-narrow",[179,2303,232],{"class":193},[179,2305,2306],{"class":193}," },\n",[179,2308,2309,2312,2314,2316,2318,2320,2322,2324,2326],{"class":181,"line":265},[179,2310,2311],{"class":220},"        title",[179,2313,224],{"class":193},[179,2315,227],{"class":207},[179,2317,211],{"class":189},[179,2319,232],{"class":193},[179,2321,2131],{"class":235},[179,2323,232],{"class":193},[179,2325,241],{"class":189},[179,2327,244],{"class":193},[179,2329,2330,2332,2334,2337],{"class":181,"line":282},[179,2331,1102],{"class":220},[179,2333,224],{"class":193},[179,2335,2336],{"class":189}," sort_options",[179,2338,244],{"class":193},[179,2340,2341,2343],{"class":181,"line":309},[179,2342,1153],{"class":193},[179,2344,1156],{"class":189},[179,2346,2347,2349],{"class":181,"line":320},[179,2348,241],{"class":189},[179,2350,317],{"class":193},[14,2352,2353],{},"Options d'une étape :",[30,2355,2356,2364],{},[33,2357,2358],{},[36,2359,2360,2362],{},[39,2361,363],{},[39,2363,369],{},[49,2365,2366,2378,2388,2398,2422,2438],{},[36,2367,2368,2375],{},[54,2369,2370,96,2372],{},[18,2371,479],{},[18,2373,2374],{},"subtitle",[54,2376,2377],{},"Titre en texte simple, et ligne grisée sous le titre.",[36,2379,2380,2385],{},[54,2381,2382],{},[18,2383,2384],{},"header",[54,2386,2387],{},"Contenu fixé en haut : champ de recherche, onglets. Un élément, un tableau d'éléments, une chaîne ou une fonction qui reçoit le panneau.",[36,2389,2390,2395],{},[54,2391,2392],{},[18,2393,2394],{},"content",[54,2396,2397],{},"Corps qui défile. Un élément ou une fonction appelée à la première ouverture de l'étape. Une chaîne est affichée comme texte.",[36,2399,2400,2404],{},[54,2401,2402],{},[18,2403,1208],{},[54,2405,2406,2407,2410,2411,2414,2415,2417,2418,2035,2420,25],{},"Lignes cliquables, sous le contenu : ",[18,2408,2409],{},"{ label, icon, description, theme, selected, disabled, onclick(e, sheet) }"," et groupes ",[18,2412,2413],{},"{ group, options }",". Un clic exécute ",[18,2416,67],{}," puis ferme le panneau, sauf si ",[18,2419,67],{},[18,2421,1455],{},[36,2423,2424,2429],{},[54,2425,2426],{},[18,2427,2428],{},"footer",[54,2430,2431,2432,2434,2435,25],{},"Contenu fixé en bas, par exemple des boutons ",[18,2433,168],{},". Le panneau ne se ferme pas tout seul : appelez ",[18,2436,2437],{},"sheet.close()",[36,2439,2440,2445],{},[54,2441,2442],{},[18,2443,2444],{},"on_show",[54,2446,2447],{},"Fonction appelée chaque fois que l'étape s'affiche.",[14,2449,2450],{},"Options du panneau :",[30,2452,2453,2463],{},[33,2454,2455],{},[36,2456,2457,2459,2461],{},[39,2458,363],{},[39,2460,366],{},[39,2462,369],{},[49,2464,2465,2477,2493,2505,2528,2545,2559,2573],{},[36,2466,2467,2471,2474],{},[54,2468,2469],{},[18,2470,1181],{},[54,2472,2473],{},"élément",[54,2475,2476],{},"Élément existant qui ouvre le panneau.",[36,2478,2479,2483,2488],{},[54,2480,2481],{},[18,2482,208],{},[54,2484,2485,2486],{},"options de ",[18,2487,168],{},[54,2489,2490,2491,1201],{},"Bouton déclencheur créé par le composant (ignoré avec ",[18,2492,1181],{},[36,2494,2495,2500,2502],{},[54,2496,2497],{},[18,2498,2499],{},"anchor",[54,2501,2473],{},[54,2503,2504],{},"Élément concerné, par exemple une carte. Sur un écran plus large qu'un téléphone, le panneau s'ouvre en fenêtre contextuelle à côté de lui.",[36,2506,2507,2512,2523],{},[54,2508,2509],{},[18,2510,2511],{},"height",[54,2513,2514,399,2517,96,2520],{},[18,2515,2516],{},"auto",[18,2518,2519],{},"half",[18,2521,2522],{},"full",[54,2524,2525,2527],{},[18,2526,2516],{}," s'adapte au contenu, jusqu'à 90 % de l'écran.",[36,2529,2530,2535,2542],{},[54,2531,2532],{},[18,2533,2534],{},"snap_points",[54,2536,2537,2538,96,2540],{},"tableau de ",[18,2539,2519],{},[18,2541,2522],{},[54,2543,2544],{},"Hauteurs entre lesquelles l'utilisateur fait glisser la poignée. Le panneau s'ouvre à la première.",[36,2546,2547,2552,2556],{},[54,2548,2549],{},[18,2550,2551],{},"show_close",[54,2553,1993,2554,1962],{},[18,2555,1455],{},[54,2557,2558],{},"Bouton de fermeture dans l'en-tête.",[36,2560,2561,2566,2570],{},[54,2562,2563],{},[18,2564,2565],{},"dismissible",[54,2567,1993,2568,1962],{},[18,2569,1996],{},[54,2571,2572],{},"Un clic sur le fond, un glissement vers le bas et la touche Échap ferment le panneau.",[36,2574,2575,2581,2584],{},[54,2576,2577,96,2579],{},[18,2578,1270],{},[18,2580,1273],{},[54,2582,2583],{},"fonctions",[54,2585,2586,1279,2588,96,2591,96,2594,96,2596,96,2599,96,2602,96,2605,2607,2608,25],{},[18,2587,1273],{},[18,2589,2590],{},"scrim",[18,2592,2593],{},"swipe",[18,2595,1285],{},[18,2597,2598],{},"close",[18,2600,2601],{},"option",[18,2603,2604],{},"route",[18,2606,1297],{}," ou la valeur passée à ",[18,2609,2610],{},"sheet.close(reason)",[14,2612,2613,2614,96,2616,96,2619,96,2621,2624,2625,2629,2630,96,2633,96,2636,139,2638,2641,2642,2645],{},"Méthodes : ",[18,2615,1319],{},[18,2617,2618],{},"close(reason)",[18,2620,1325],{},[18,2622,2623],{},"push(step)"," (ajoute une étape et affiche le bouton ",[2626,2627,2628],"strong",{},"Retour","), ",[18,2631,2632],{},"pop()",[18,2634,2635],{},"set_title(title, subtitle)",[18,2637,1328],{},[18,2639,2640],{},"set_height(height)",". Un choix qui en appelle un autre est une étape ajoutée avec ",[18,2643,2644],{},"push()",", pas un deuxième panneau. Un changement de page ferme le panneau.",[162,2647,2649,2650],{"id":2648},"info-bulle-frappeuitooltip","Info-bulle : ",[18,2651,2652],{},"frappe.ui.tooltip",[170,2654,2656],{"className":172,"code":2655,"language":174,"meta":175,"style":175},"frappe.ui.tooltip($btn, { text: __(\"Refresh\"), shortcut: \"ctrl+r\" });\n",[18,2657,2658],{"__ignoreMap":175},[179,2659,2660,2662,2664,2666,2668,2670,2673,2675,2677,2680,2682,2684,2686,2688,2691,2693,2695,2697,2700,2702,2704,2707,2709,2711,2713],{"class":181,"line":182},[179,2661,610],{"class":189},[179,2663,25],{"class":193},[179,2665,202],{"class":189},[179,2667,25],{"class":193},[179,2669,475],{"class":207},[179,2671,2672],{"class":189},"($btn",[179,2674,645],{"class":193},[179,2676,1077],{"class":193},[179,2678,2679],{"class":220}," text",[179,2681,224],{"class":193},[179,2683,227],{"class":207},[179,2685,211],{"class":189},[179,2687,232],{"class":193},[179,2689,2690],{"class":235},"Refresh",[179,2692,232],{"class":193},[179,2694,241],{"class":189},[179,2696,645],{"class":193},[179,2698,2699],{"class":220}," shortcut",[179,2701,224],{"class":193},[179,2703,255],{"class":193},[179,2705,2706],{"class":235},"ctrl+r",[179,2708,232],{"class":193},[179,2710,659],{"class":193},[179,2712,241],{"class":189},[179,2714,317],{"class":193},[14,2716,2717,2718,96,2721,96,2723,96,2725,2728,2729,2732,2733,139,2735,2738,2739,25],{},"Les options principales sont ",[18,2719,2720],{},"text",[18,2722,1218],{},[18,2724,1221],{},[18,2726,2727],{},"delay"," (",[18,2730,2731],{},"500"," ms par défaut), ",[18,2734,1411],{},[18,2736,2737],{},"only_on_overflow",". Voir ",[86,2740,143],{"href":142},[162,2742,2744],{"id":2743},"personnaliser-les-styles","Personnaliser les styles",[14,2746,2747,2748,2728,2751,96,2754,96,2757,2760,2761,96,2764,96,2767,2770,2771,2774],{},"Les composants portent des classes ",[18,2749,2750],{},"es-*",[18,2752,2753],{},"es-button",[18,2755,2756],{},"es-badge",[18,2758,2759],{},"es-avatar-group","…) et des attributs ",[18,2762,2763],{},"data-variant",[18,2765,2766],{},"data-size",[18,2768,2769],{},"data-theme",". Les styles se trouvent dans ",[18,2772,2773],{},"frappe\u002Fpublic\u002Fcss\u002Fespresso\u002F",". Pour adapter un composant, ciblez ces classes et attributs dans le CSS de votre application.",[170,2776,2780],{"className":2777,"code":2778,"language":2779,"meta":175,"style":175},"language-css shiki shiki-themes material-theme-lighter material-theme material-theme-palenight",".es-button[data-variant=\"solid\"] {\n    font-weight: 600;\n}\n","css",[18,2781,2782,2806,2820],{"__ignoreMap":175},[179,2783,2784,2786,2789,2792,2794,2796,2798,2800,2802,2804],{"class":181,"line":182},[179,2785,25],{"class":193},[179,2787,2753],{"class":2788},"sBMFI",[179,2790,2791],{"class":193},"[",[179,2793,2763],{"class":185},[179,2795,194],{"class":193},[179,2797,232],{"class":193},[179,2799,258],{"class":235},[179,2801,232],{"class":193},[179,2803,1146],{"class":193},[179,2805,1833],{"class":193},[179,2807,2808,2812,2814,2818],{"class":181,"line":217},[179,2809,2811],{"class":2810},"sqsOY","    font-weight",[179,2813,224],{"class":193},[179,2815,2817],{"class":2816},"sbssI"," 600",[179,2819,317],{"class":193},[179,2821,2822],{"class":181,"line":247},[179,2823,2824],{"class":193},"}\n",[2826,2827,2828],"style",{},"html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .sfNiH, html code.shiki .sfNiH{--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sqsOY, html code.shiki .sqsOY{--shiki-light:#8796B0;--shiki-default:#B2CCD6;--shiki-dark:#B2CCD6}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}",{"title":175,"searchDepth":182,"depth":217,"links":2830},[2831,2833,2835,2839,2841,2843,2845,2847],{"id":164,"depth":217,"text":2832},"Bouton : frappe.ui.button",{"id":596,"depth":217,"text":2834},"Badge : frappe.ui.badge",{"id":814,"depth":217,"text":2836,"children":2837},"Menu déroulant : frappe.ui.Dropdown",[2838],{"id":1335,"depth":247,"text":1336},{"id":1478,"depth":217,"text":2840},"Menu contextuel : frappe.ui.ContextMenu",{"id":1733,"depth":217,"text":2842},"Notification : frappe.ui.toast",{"id":2041,"depth":217,"text":2844},"Panneau inférieur : frappe.ui.BottomSheet",{"id":2648,"depth":217,"text":2846},"Info-bulle : frappe.ui.tooltip",{"id":2743,"depth":217,"text":2744},"Référence des composants JavaScript Espresso du desk (bouton, badge, menu déroulant, menu contextuel, notification, panneau inférieur) et de leurs options.",{"reviewed":1802,"last_verified":2850,"sources":2851},"2026-11-04",[2852,2853,2854,2855,2856,2857,2858,2859],"dodock@develop:frappe\u002Fpublic\u002Fjs\u002Ffrappe\u002Fui\u002Fcomponents\u002Fbutton.js","dodock@develop:frappe\u002Fpublic\u002Fjs\u002Ffrappe\u002Fui\u002Fcomponents\u002Fbadge.js","dodock@develop:frappe\u002Fpublic\u002Fjs\u002Ffrappe\u002Fui\u002Fcomponents\u002Fdropdown.js","dodock@develop:frappe\u002Fpublic\u002Fjs\u002Ffrappe\u002Fui\u002Fcomponents\u002Fmenu.js","dodock@develop:frappe\u002Fpublic\u002Fjs\u002Ffrappe\u002Fui\u002Fcomponents\u002Fcontext_menu.js","dodock@develop:frappe\u002Fpublic\u002Fjs\u002Ffrappe\u002Fui\u002Fcomponents\u002Ftoast.js","dodock@develop:frappe\u002Fpublic\u002Fjs\u002Ffrappe\u002Fui\u002Fcomponents\u002Ftooltip.js","dodock@develop:frappe\u002Fpublic\u002Fjs\u002Ffrappe\u002Fui\u002Fcomponents\u002Fbottom_sheet.js","\u002Fnext\u002Fdodock\u002Fdeveloppeurs\u002Fcomposants-ui\u002Fcomposants-ui-espresso",{"title":5,"description":2848},"2.next\u002F3.dodock\u002F10.developpeurs\u002F03.composants-ui\u002Fcomposants-ui-espresso","feVqN2anCVBUYN7POeAhQk3GOJvE6J8Nm1zmFsj-r2w",{},1793871737110]