@bebranded/bb-contents 1.0.127 → 1.0.129

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/bb-contents.js +32 -15
  2. package/package.json +1 -1
package/bb-contents.js CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * BeBranded Contents
3
3
  * Contenus additionnels français pour Webflow
4
- * @version 1.0.127
4
+ * @version 1.0.129
5
5
  * @author BeBranded
6
6
  * @license MIT
7
7
  * @website https://www.bebranded.xyz
@@ -32,11 +32,11 @@
32
32
  window._bbContentsInitialized = true;
33
33
 
34
34
  // Log de démarrage simple (une seule fois)
35
- console.log('bb-contents | v1.0.127');
35
+ console.log('bb-contents | v1.0.129');
36
36
 
37
37
  // Configuration
38
38
  const config = {
39
- version: '1.0.127',
39
+ version: '1.0.129',
40
40
  debug: false, // Debug désactivé pour rendu propre
41
41
  prefix: 'bb-', // utilisé pour générer les sélecteurs (data-bb-*)
42
42
  youtubeEndpoint: null, // URL du worker YouTube (à définir par l'utilisateur)
@@ -1288,6 +1288,23 @@
1288
1288
  defaultCountry = self.findCountry(element.value);
1289
1289
  }
1290
1290
 
1291
+ // Si un pays par défaut est défini, mettre à jour le select natif immédiatement
1292
+ if (defaultCountry) {
1293
+ const countryName = defaultCountry.name[language];
1294
+ // Créer l'option si elle n'existe pas
1295
+ const existingOption = Array.from(element.options).find(function(opt) {
1296
+ return opt.value === countryName;
1297
+ });
1298
+ if (!existingOption) {
1299
+ const newOption = document.createElement('option');
1300
+ newOption.value = countryName;
1301
+ newOption.textContent = countryName;
1302
+ element.appendChild(newOption);
1303
+ }
1304
+ // Définir la valeur du select
1305
+ element.value = countryName;
1306
+ }
1307
+
1291
1308
  // Trier les pays : préférés en haut dans l'ordre exact spécifié, puis les autres par ordre alphabétique
1292
1309
  let sortedCountries = self.countries.slice();
1293
1310
  if (preferredCountries.length > 0) {
@@ -1300,26 +1317,26 @@
1300
1317
  return c !== undefined;
1301
1318
  });
1302
1319
 
1303
- // Pays non-préférés triés par ordre alphabétique
1320
+ // Pays non-préférés triés par ordre alphabétique (avec gestion des accents)
1304
1321
  const others = sortedCountries.filter(function(c) {
1305
1322
  return preferredCountries.indexOf(c.alpha2) === -1;
1306
1323
  }).sort(function(a, b) {
1307
- const nameA = a.name[language].toLowerCase();
1308
- const nameB = b.name[language].toLowerCase();
1309
- if (nameA < nameB) return -1;
1310
- if (nameA > nameB) return 1;
1311
- return 0;
1324
+ return a.name[language].localeCompare(b.name[language], language === 'fr' ? 'fr' : 'en', {
1325
+ sensitivity: 'base',
1326
+ ignorePunctuation: true,
1327
+ numeric: true
1328
+ });
1312
1329
  });
1313
1330
 
1314
1331
  sortedCountries = preferred.concat(others);
1315
1332
  } else {
1316
- // Tous les pays par ordre alphabétique si pas de préférés
1333
+ // Tous les pays par ordre alphabétique si pas de préférés (avec gestion des accents)
1317
1334
  sortedCountries = sortedCountries.sort(function(a, b) {
1318
- const nameA = a.name[language].toLowerCase();
1319
- const nameB = b.name[language].toLowerCase();
1320
- if (nameA < nameB) return -1;
1321
- if (nameA > nameB) return 1;
1322
- return 0;
1335
+ return a.name[language].localeCompare(b.name[language], language === 'fr' ? 'fr' : 'en', {
1336
+ sensitivity: 'base',
1337
+ ignorePunctuation: true,
1338
+ numeric: true
1339
+ });
1323
1340
  });
1324
1341
  }
1325
1342
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bebranded/bb-contents",
3
- "version": "1.0.127",
3
+ "version": "1.0.129",
4
4
  "description": "Contenus additionnels français pour Webflow",
5
5
  "main": "bb-contents.js",
6
6
  "scripts": {