origam 2.33.0 → 2.34.0
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.
package/CHANGELOG.md
CHANGED
|
@@ -18,6 +18,14 @@ This project follows [Semantic Versioning](https://semver.org).
|
|
|
18
18
|
|
|
19
19
|
## [Unreleased]
|
|
20
20
|
|
|
21
|
+
## [2.34.0] - 2026-10-19
|
|
22
|
+
|
|
23
|
+
### Added — `OrigamCommandPalette` : prop `filter` pour afficher des résultats classés en externe (#1184)
|
|
24
|
+
|
|
25
|
+
- Nouvelle prop `filter` : `true` (défaut, comportement inchangé : correspondance floue intégrée et tri par score), `false` (les `commands` sont affichées telles quelles, dans l'ordre fourni) ou une fonction `(commands, query) => commands` dont le résultat est affiché dans son ordre.
|
|
26
|
+
- Destinée à la recherche serveur ou plein texte alimentée par l'événement `query` : un résultat trouvé dans le corps d'un document n'est plus masqué parce que la requête n'est pas une sous-séquence de son libellé, et le classement du moteur est conservé.
|
|
27
|
+
- Avec `filter=false` ou une fonction, une liste `commands` vide reste vide : elle ne retombe plus sur le registre `useCommand()` (le repli est conservé avec `filter=true`).
|
|
28
|
+
|
|
21
29
|
## [2.33.0] - 2026-10-18
|
|
22
30
|
|
|
23
31
|
### Added — `OrigamCommandPalette` : icônes de recherche et de chargement personnalisables (#1183)
|
|
@@ -191,6 +191,7 @@ const props = defineProps({
|
|
|
191
191
|
modelValue: { type: Boolean, required: false, default: false },
|
|
192
192
|
hotkey: { type: [Array, null], required: false, default: () => COMMAND_PALETTE_DEFAULT_HOTKEY },
|
|
193
193
|
commands: { type: Array, required: false },
|
|
194
|
+
filter: { type: [Boolean, Function], required: false, default: true },
|
|
194
195
|
placeholder: { type: String, required: false, default: "origam.command_palette.placeholder" },
|
|
195
196
|
emptyText: { type: String, required: false, default: "origam.command_palette.empty_text" },
|
|
196
197
|
maxHeight: { type: [Number, String], required: false, default: COMMAND_PALETTE_DEFAULT_MAX_HEIGHT },
|
|
@@ -260,11 +261,17 @@ if (IN_BROWSER) {
|
|
|
260
261
|
}, { immediate: true });
|
|
261
262
|
}
|
|
262
263
|
const sourceCommands = computed(() => {
|
|
263
|
-
if (props.commands && props.commands.length > 0) return props.commands;
|
|
264
|
+
if (props.commands && (props.commands.length > 0 || props.filter !== true)) return props.commands;
|
|
264
265
|
return registryCommands.value;
|
|
265
266
|
});
|
|
266
267
|
const query = ref("");
|
|
267
268
|
const filtered = computed(() => {
|
|
269
|
+
if (typeof props.filter === "function") {
|
|
270
|
+
return props.filter(sourceCommands.value, query.value).map((item) => ({ item, score: 0 }));
|
|
271
|
+
}
|
|
272
|
+
if (props.filter === false) {
|
|
273
|
+
return sourceCommands.value.map((item) => ({ item, score: 0 }));
|
|
274
|
+
}
|
|
268
275
|
return fuzzyMatch(sourceCommands.value, query.value, (cmd) => ({
|
|
269
276
|
label: cmd.label,
|
|
270
277
|
haystack: [
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { ICommand } from './command.interface';
|
|
2
|
+
import type { TCommandPaletteFilter } from '../../types/CommandPalette/command-palette.type';
|
|
2
3
|
import type { IAttachProps } from '../Commons/attach.interface';
|
|
3
4
|
import type { ICommonsComponentProps } from '../Commons/commons.interface';
|
|
4
5
|
import type { ITypographyProps } from '../Commons/typography.interface';
|
|
@@ -27,6 +28,17 @@ export interface ICommandPaletteProps extends ICommonsComponentProps, Pick<ITypo
|
|
|
27
28
|
* registered via the `useCommand()` global registry instead.
|
|
28
29
|
*/
|
|
29
30
|
commands?: ReadonlyArray<ICommand>;
|
|
31
|
+
/*********************************************************
|
|
32
|
+
* filter (#1184)
|
|
33
|
+
*
|
|
34
|
+
* @description
|
|
35
|
+
* Comment `commands` est filtré selon la requête. `true` (défaut) : fuzzy match intégré, qui garde les sous-séquences et re-trie par score.
|
|
36
|
+
* @description
|
|
37
|
+
* `false` : `commands` affichées telles quelles, dans l'ordre fourni (liste déjà filtrée/classée par un serveur ou un moteur plein-texte, alimentée via l'event `query`).
|
|
38
|
+
* @description
|
|
39
|
+
* Fonction `(commands, query) => commands` : affiche ce qu'elle renvoie, dans son ordre. Dans les deux modes non défaut, la liste est plate (sans en-tête de groupe) tant que la requête est non vide, aucun match n'est surligné, et `commands` est honorée même vide (pas de repli sur le registre `useCommand()`).
|
|
40
|
+
********************************************************/
|
|
41
|
+
filter?: TCommandPaletteFilter;
|
|
30
42
|
/** Placeholder of the search input (already-translated string). */
|
|
31
43
|
placeholder?: string;
|
|
32
44
|
/** Empty-state message when no command matches the query. */
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { ICommand } from '../../interfaces/CommandPalette/command.interface';
|
|
1
2
|
import OrigamCommandPalette from '../../components/CommandPalette/OrigamCommandPalette.vue';
|
|
2
3
|
export type TOrigamCommandPalette = InstanceType<typeof OrigamCommandPalette>;
|
|
3
4
|
/**
|
|
@@ -5,3 +6,13 @@ export type TOrigamCommandPalette = InstanceType<typeof OrigamCommandPalette>;
|
|
|
5
6
|
* accepted by `useHotkey` (e.g. `['meta', 'k']`).
|
|
6
7
|
*/
|
|
7
8
|
export type TCommandPaletteHotkeyCombination = ReadonlyArray<string>;
|
|
9
|
+
/*********************************************************
|
|
10
|
+
* Filter de OrigamCommandPalette (#1184)
|
|
11
|
+
*
|
|
12
|
+
* @description
|
|
13
|
+
* `TCommandPaletteFilterFn` : reçoit les commandes et la requête brute (non trimée), renvoie les commandes à afficher, dans l'ordre d'affichage.
|
|
14
|
+
* @description
|
|
15
|
+
* `TCommandPaletteFilter` (prop `filter`) : `true` = fuzzy match intégré (filtre par sous-séquence + tri par score), `false` = `commands` affichées telles quelles et dans l'ordre fourni, fonction = son résultat est affiché dans son ordre.
|
|
16
|
+
********************************************************/
|
|
17
|
+
export type TCommandPaletteFilterFn = (commands: ReadonlyArray<ICommand>, query: string) => ReadonlyArray<ICommand>;
|
|
18
|
+
export type TCommandPaletteFilter = boolean | TCommandPaletteFilterFn;
|