refac: separate front assets into esbuild bundles

Sort ~50 Mo de libs tierces hors du repo et regroupe le code
front en 6 bundles thématiques + 2 assets statiques.

Bundles produits par esbuild :
- core.bundle.min.js   : jQuery + jQuery UI + Bootstrap 4 + validation
                          + tout le code applicatif 'core'
                          (site, signout, signin, input-lib, md-helpers,
                          audiovideoinput, parallax, google.geocode,
                          google-geoloc). Chargé par _Layout.cshtml.
- chat.bundle.min.js   : core subset (sans Bootstrap) + chat.js + comment.js
                          (SignalR client chargé séparément, voir plus bas)
- dropzone.bundle.min.js : jQuery + dropzone + yavsc-remote-fs
- datetime.bundle.min.js : jQuery + jQuery UI + eonasdan datetimepicker
                          + jquery-timepicker
- timepicker.bundle.min.js : jQuery + jQuery UI + jquery-timepicker
- quill.bundle.min.js  : Quill rich text editor

Assets statiques (non bundlés, copiés depuis node_modules) :
- signalr.min.js       : client SignalR 2.x (legacy server)
- moment-with-locales.min.js : moment + 137 locales (require dynamique
                               non résolvable statiquement par esbuild)

CSS vendor copiées comme assets statiques vers wwwroot/css/ :
bootstrap.min.css, jquery-ui.min.css, dropzone.min.css,
dropzone-basic.min.css, bootstrap-datetimepicker.min.css,
jquery.timepicker.css

Exception gitignore : jonthornton-Datepair/jquery.datepair.min.js
n'est pas sur npm, conservé comme asset statique sous
wwwroot/lib/jonthornton-Datepair/ (téléchargé depuis upstream).

Vues Razor mises à jour (15 fichiers) pour pointer vers les bundles
et les CSS vendor. Suppression de la majorité de wwwroot/lib/ (1300+
fichiers). Suppression des jquery*.js, quill.js, showdown.js,
to-markdown.js, jquery.signalR-2.2.1.js, dropzone.js et de leurs
.min.js associés.

'jquery-datepair' et 'jquery-ui-map' non publiés sur npm :
- jquery-ui-map n'est utilisé nulle part dans le repo (vérifié),
  la dépendance est purement historique.
- datepair reste en static sous wwwroot/lib/jonthornton-Datepair/.
This commit is contained in:
Paul Schneider 2026-06-14 14:11:33 +01:00
commit 952d263b9f
1091 changed files with 295 additions and 333043 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1 @@
.dropzone,.dropzone *{box-sizing:border-box}.dropzone{position:relative}.dropzone .dz-preview{position:relative;display:inline-block;width:120px;margin:.5em}.dropzone .dz-preview .dz-progress{display:block;height:15px;border:1px solid #aaa}.dropzone .dz-preview .dz-progress .dz-upload{display:block;height:100%;width:0;background:green}.dropzone .dz-preview .dz-error-message{color:red;display:none}.dropzone .dz-preview.dz-error .dz-error-message,.dropzone .dz-preview.dz-error .dz-error-mark{display:block}.dropzone .dz-preview.dz-success .dz-success-mark{display:block}.dropzone .dz-preview .dz-error-mark,.dropzone .dz-preview .dz-success-mark{position:absolute;display:none;left:30px;top:30px;width:54px;height:58px;left:50%;margin-left:-27px}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,84 @@
/**
* jQuery Timepicker
* http://timepicker.co
*
* Enhances standard form input fields helping users to select (or type) times.
*
* Copyright (c) 2016 Willington Vega; Licensed MIT, GPL
*/
.ui-timepicker-container {
position: absolute;
overflow: hidden;
box-sizing: border-box;
}
.ui-timepicker {
box-sizing: content-box;
display: block;
height: 205px;
list-style: none outside none;
margin: 0;
padding: 0 1px;
text-align: center;
}
.ui-timepicker-viewport {
box-sizing: content-box;
display: block;
height: 205px;
margin: 0;
padding: 0;
overflow: auto;
overflow-x: hidden; /* IE */
}
.ui-timepicker-standard {
/* overwrites .ui-widget */
font-family: Verdana,Arial,sans-serif;
font-size: 1.1em;
/* overwrites .ui-widget-content */
background-color: #FFF;
border: 1px solid #AAA;
color: #222;
/* overwrites .ui-menu */
margin: 0;
padding: 2px;
}
.ui-timepicker-standard a {
border: 1px solid transparent;
color: #222;
display: block;
padding: 0.2em 0.4em;
text-decoration: none;
}
.ui-timepicker-standard .ui-state-hover {
/* overwrites .ui-state-hover */
background-color: #DADADA;
border: 1px solid #999;
font-weight: normal;
color: #212121;
}
.ui-timepicker-standard .ui-menu-item {
/* overwrites .ui-menu and .ui-menu-item */
/*clear: left;
float: left;*/
margin: 0;
padding: 0;
}
.ui-timepicker-corners,
.ui-timepicker-corners .ui-corner-all {
-moz-border-radius: 4px;
-webkit-border-radius: 4px;
border-radius: 4px;
}
.ui-timepicker-hidden {
/* overwrites .ui-helper-hidden */
display: none;
}
.ui-timepicker-no-scrollbar .ui-timepicker {
border: none;
}