@sinequa/atomic-angular 2.3.0 → 2.4.1
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/README.md +299 -139
- package/fesm2022/sinequa-atomic-angular-document-workspaces.mjs +10 -80
- package/fesm2022/sinequa-atomic-angular-document-workspaces.mjs.map +1 -1
- package/fesm2022/sinequa-atomic-angular.mjs +105 -72
- package/fesm2022/sinequa-atomic-angular.mjs.map +1 -1
- package/package.json +2 -2
- package/types/sinequa-atomic-angular-document-workspaces.d.ts +15 -16
- package/types/sinequa-atomic-angular.d.ts +176 -17
package/README.md
CHANGED
|
@@ -1,37 +1,45 @@
|
|
|
1
1
|
# @sinequa/atomic-angular
|
|
2
2
|
|
|
3
|
-
[](https://
|
|
3
|
+
[](https://www.npmjs.com/package/@sinequa/atomic-angular)
|
|
4
4
|
[](https://angular.dev)
|
|
5
|
-
[](https://www.typescriptlang.org/)
|
|
6
6
|
|
|
7
|
-
>
|
|
7
|
+
> Angular components, features and services for building modern Sinequa search applications.
|
|
8
8
|
|
|
9
9
|
## Overview
|
|
10
10
|
|
|
11
|
-
**@sinequa/atomic-angular** provides
|
|
11
|
+
**@sinequa/atomic-angular** provides the business layer of a Sinequa search application: sign-in
|
|
12
|
+
flows, the filter system, search results, document preview, alerts, bookmarks, saved searches and
|
|
13
|
+
more. Built with Angular 22, standalone components and signals, it is accessible, themeable and
|
|
14
|
+
tree-shakeable. UI primitives come from [`@sinequa/galactik`](https://www.npmjs.com/package/@sinequa/galactik)
|
|
15
|
+
and backend access from [`@sinequa/atomic`](https://www.npmjs.com/package/@sinequa/atomic).
|
|
12
16
|
|
|
13
17
|
## Installation
|
|
14
18
|
|
|
15
19
|
```bash
|
|
16
|
-
npm install @sinequa/atomic-angular
|
|
20
|
+
npm install @sinequa/atomic-angular @sinequa/galactik @sinequa/atomic
|
|
17
21
|
```
|
|
18
22
|
|
|
19
|
-
### Peer
|
|
23
|
+
### Peer dependencies
|
|
20
24
|
|
|
21
25
|
```json
|
|
22
26
|
{
|
|
23
27
|
"@angular/core": "^22.0.0",
|
|
24
|
-
"@angular/aria": "^22.
|
|
25
|
-
"@sinequa/galactik": "^2.0.0
|
|
26
|
-
"@sinequa/atomic": ">=2.
|
|
28
|
+
"@angular/aria": "^22.2.0",
|
|
29
|
+
"@sinequa/galactik": "^2.0.0",
|
|
30
|
+
"@sinequa/atomic": ">=2.10.0",
|
|
31
|
+
"vanilla-calendar-pro": "^3.4.0"
|
|
27
32
|
}
|
|
28
33
|
```
|
|
29
34
|
|
|
30
|
-
|
|
31
|
-
|
|
35
|
+
`vanilla-calendar-pro` powers the date facet's range picker (import
|
|
36
|
+
`@sinequa/atomic-angular/styles/calendar.css` once in your global stylesheet). Some entry points need
|
|
37
|
+
extra packages, all optional: `chart.js` (`/charts`), `chartjs-chart-matrix` (`/charts/heatmap`),
|
|
38
|
+
`markdown-it` and `@angular/elements` (`/workspace-elements`). Install them only if you use the
|
|
39
|
+
matching feature.
|
|
32
40
|
|
|
33
|
-
>
|
|
34
|
-
>
|
|
41
|
+
> ℹ️ These peer dependencies target the **2.x** line (Angular 22). For the Angular 20 line (1.x /
|
|
42
|
+
> 1.0.x), see the compatibility table below.
|
|
35
43
|
|
|
36
44
|
## Versioning & Compatibility
|
|
37
45
|
|
|
@@ -42,188 +50,340 @@ matches the Angular version embedded in your product.
|
|
|
42
50
|
| Library line | Angular | Product release | Status | Install |
|
|
43
51
|
| ------------ | ------- | ---------------- | ------------------------------------------ | ------------------------------------ |
|
|
44
52
|
| **1.0.x** | 20 | 11.13.0 | 🩹 Maintenance — critical & bug fixes only | `npm i @sinequa/atomic-angular@~1.0` |
|
|
45
|
-
| **1.x** | 20 | 11.14.0 |
|
|
46
|
-
| **2.x** | 22 | _future release_ |
|
|
53
|
+
| **1.x** | 20 | 11.14.0 | 🩹 Maintenance — fixes (`lts` dist-tag) | `npm i @sinequa/atomic-angular@lts` |
|
|
54
|
+
| **2.x** | 22 | _future release_ | ✅ Current (`latest` dist-tag) | `npm i @sinequa/atomic-angular` |
|
|
47
55
|
|
|
48
56
|
**How the lines work**
|
|
49
57
|
|
|
50
58
|
- **Each line is an independent version range.** A `1.0.x` patch and a `1.x` minor are
|
|
51
59
|
unrelated number spaces — upgrading within a line never crosses an Angular major.
|
|
52
60
|
- **`~1.0`** keeps you on patch releases of the 11.13 line (no minor jumps).
|
|
53
|
-
**`^1`** follows the
|
|
54
|
-
|
|
61
|
+
**`^1`** follows the 1.x line (still Angular 20).
|
|
62
|
+
**`lts`** follows the 1.x line. **`latest` / `^2`** is the Angular 22 line, for the upcoming product release.
|
|
55
63
|
- A fix relevant to several lines is applied to each supported line independently, so you
|
|
56
64
|
receive it on whichever line you track — without being forced onto a new Angular major.
|
|
57
65
|
|
|
58
66
|
## Features
|
|
59
67
|
|
|
60
|
-
###
|
|
68
|
+
### Authentication & authorization
|
|
61
69
|
|
|
62
|
-
-
|
|
63
|
-
-
|
|
64
|
-
-
|
|
70
|
+
- Sign-in, forgot-password, change-password and signed-out views behind a single `AuthPageComponent`
|
|
71
|
+
- SSO support and a route guard (`AuthGuard()`)
|
|
72
|
+
- Session-expiry warning (`provideSessionExpiry()`)
|
|
65
73
|
- Multi-language support (EN, FR, DE)
|
|
66
74
|
|
|
67
|
-
###
|
|
75
|
+
### Search
|
|
68
76
|
|
|
69
|
-
-
|
|
70
|
-
- "Did
|
|
71
|
-
-
|
|
72
|
-
-
|
|
77
|
+
- Filter system: aggregation list, tree and date facets, filters bar, applied filters, aside filters
|
|
78
|
+
- "Did you mean" suggestions and autocomplete
|
|
79
|
+
- Advanced search and advanced filters
|
|
80
|
+
- Recent and saved searches, bookmarks, collections, labels, alerts
|
|
73
81
|
- Document preview and navigation
|
|
74
|
-
- Export
|
|
82
|
+
- Export, feedback, user settings and profile
|
|
75
83
|
|
|
76
|
-
###
|
|
84
|
+
### Data visualisation and workspaces
|
|
77
85
|
|
|
78
|
-
-
|
|
79
|
-
-
|
|
80
|
-
- **Signal-based reactivity** for better performance
|
|
81
|
-
- **Modern syntax**: @if, @for, @switch control flow
|
|
82
|
-
- **Tree-shakeable** for optimal bundle size
|
|
86
|
+
- Heatmap, tag cloud, word cloud, aggregation charts and timeline (`/charts`)
|
|
87
|
+
- Document workspaces and their custom elements (`/document-workspaces`, `/workspace-elements`)
|
|
83
88
|
|
|
84
|
-
|
|
89
|
+
### Developer experience
|
|
85
90
|
|
|
86
|
-
|
|
91
|
+
- **TypeScript-first**, with full type safety
|
|
92
|
+
- **Standalone components** (no NgModules)
|
|
93
|
+
- **Signal-based** reactivity and **Signal Forms**
|
|
94
|
+
- **Injectable client**: serve several Sinequa backends from one application
|
|
95
|
+
(`provideAtomicClient()`, `provideAtomicScope()`)
|
|
96
|
+
- **Keyboard shortcut engine** (`KeyboardShortcutsService`, `[keyShortcut]`)
|
|
97
|
+
- **Tree-shakeable** secondary entry points
|
|
87
98
|
|
|
88
|
-
|
|
89
|
-
components/ # Reusable UI components
|
|
90
|
-
├── backdrop/
|
|
91
|
-
├── document-locator/
|
|
92
|
-
├── navbar-tabs/
|
|
93
|
-
├── pagination/
|
|
94
|
-
└── ...
|
|
95
|
-
|
|
96
|
-
features/ # Feature modules
|
|
97
|
-
├── auth/ # Authentication flows
|
|
98
|
-
├── filters/ # Filter system
|
|
99
|
-
├── bookmarks/ # Bookmark management
|
|
100
|
-
├── collections/
|
|
101
|
-
└── ...
|
|
102
|
-
|
|
103
|
-
services/ # Business logic services
|
|
104
|
-
stores/ # State management
|
|
105
|
-
guards/ # Route guards
|
|
106
|
-
pipes/ # Custom pipes
|
|
107
|
-
utils/ # Utility functions
|
|
108
|
-
```
|
|
109
|
-
|
|
110
|
-
## Available Components
|
|
99
|
+
## Entry points
|
|
111
100
|
|
|
112
|
-
|
|
101
|
+
| Entry point | Content |
|
|
102
|
+
| --------------------------------------------- | ----------------------------------------------------- |
|
|
103
|
+
| `@sinequa/atomic-angular` | components, features, services, stores, guards, pipes |
|
|
104
|
+
| `@sinequa/atomic-angular/charts` | `<AggregationChart>`, `<AggregationTimeline>` |
|
|
105
|
+
| `@sinequa/atomic-angular/charts/heatmap` | canvas `<AggregationHeatmap>` |
|
|
106
|
+
| `@sinequa/atomic-angular/document-workspaces` | document workspaces components, store and services |
|
|
107
|
+
| `@sinequa/atomic-angular/workspace-elements` | the workspaces view as custom elements |
|
|
113
108
|
|
|
114
|
-
|
|
115
|
-
- `FiltersComponent` - Dynamic filter system
|
|
116
|
-
- `PaginationComponent` - Result pagination
|
|
117
|
-
- `DocumentLocatorComponent` - Document navigation
|
|
118
|
-
- `PreviewComponent` - Document preview
|
|
119
|
-
- `BackdropComponent` - Backdrop overlay
|
|
120
|
-
- `NavbarTabsComponent` - Navigation tabs
|
|
121
|
-
- `NoResultComponent` - No results display
|
|
122
|
-
- `SortSelectorComponent` - Sort options selector
|
|
123
|
-
|
|
124
|
-
### Authentication
|
|
109
|
+
## Main building blocks
|
|
125
110
|
|
|
126
|
-
|
|
127
|
-
- `SignInComponent` - User sign-in
|
|
128
|
-
- `ChangePasswordComponent` - Password change
|
|
129
|
-
- `ForgotPasswordComponent` - Password recovery
|
|
130
|
-
- `SignedOutComponent` - Post-logout confirmation
|
|
131
|
-
- `AuthGuard` - Route protection
|
|
132
|
-
- `PasswordExpiryGuard` - Password expiry detection
|
|
111
|
+
### Components
|
|
133
112
|
|
|
134
|
-
|
|
113
|
+
- `NavbarTabsComponent` — navigation tabs
|
|
114
|
+
- `SortSelectorComponent` — sort options selector
|
|
115
|
+
- `NoResultComponent` — no-results display
|
|
116
|
+
- `DocumentLocatorComponent` — document navigation
|
|
117
|
+
- `BackdropComponent` — backdrop overlay
|
|
118
|
+
- `PreviewContentComponent`, `PreviewHeaderComponent`, `PreviewActionsComponent` — document preview
|
|
119
|
+
- `FiltersBarComponent`, `AsideFiltersComponent`, `AppliedFiltersComponent`, `AggregationComponent`
|
|
120
|
+
— filters
|
|
135
121
|
|
|
136
|
-
|
|
137
|
-
- Bookmarks system
|
|
138
|
-
- Collections management
|
|
139
|
-
- Advanced search
|
|
140
|
-
- Export functionality
|
|
141
|
-
- Feedback system
|
|
142
|
-
- Labels management
|
|
143
|
-
- Recent searches
|
|
144
|
-
- Saved searches
|
|
122
|
+
### Authentication
|
|
145
123
|
|
|
146
|
-
|
|
124
|
+
- `AuthPageComponent` — switches between the views below; route `/login` and `/logout` to it
|
|
125
|
+
- `SignInComponent`, `ChangePasswordComponent`, `ForgotPasswordComponent`, `SignedOutComponent`
|
|
126
|
+
- `AuthGuard()` — route protection
|
|
147
127
|
|
|
148
|
-
### Services
|
|
128
|
+
### Services and stores
|
|
149
129
|
|
|
150
130
|
```typescript
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
// AuthService - Authentication
|
|
158
|
-
import { AuthService } from '@sinequa/atomic-angular';
|
|
131
|
+
import {
|
|
132
|
+
AggregationsService,
|
|
133
|
+
ApplicationService,
|
|
134
|
+
QueryService,
|
|
135
|
+
} from "@sinequa/atomic-angular";
|
|
159
136
|
```
|
|
160
137
|
|
|
161
|
-
###
|
|
138
|
+
### Route guard
|
|
162
139
|
|
|
163
140
|
```typescript
|
|
164
|
-
import { AuthGuard
|
|
141
|
+
import { AuthGuard } from "@sinequa/atomic-angular";
|
|
165
142
|
|
|
166
143
|
const routes: Routes = [
|
|
167
|
-
{
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
component: SearchComponent
|
|
171
|
-
},
|
|
172
|
-
{
|
|
173
|
-
path: 'profile',
|
|
174
|
-
canActivate: [AuthGuard, PasswordExpiryGuard],
|
|
175
|
-
component: ProfileComponent
|
|
176
|
-
}
|
|
144
|
+
{ path: "search", canActivate: [AuthGuard()], component: SearchComponent },
|
|
145
|
+
{ path: "login", component: AuthPageComponent },
|
|
146
|
+
{ path: "logout", component: AuthPageComponent },
|
|
177
147
|
];
|
|
178
148
|
```
|
|
179
149
|
|
|
180
|
-
##
|
|
150
|
+
## Releases
|
|
151
|
+
|
|
152
|
+
A summary of the changes published on each version line. Versioning follows [SemVer](https://semver.org/): a **major** version may break the API, a **minor** version
|
|
153
|
+
adds backward-compatible features, a **patch** fixes bugs.
|
|
154
|
+
|
|
155
|
+
### 2.x line — from 2.0.0 (Angular 22, dist-tag `latest`)
|
|
156
|
+
|
|
157
|
+
**2.4.0**
|
|
158
|
+
|
|
159
|
+
- Date facet: the selected radio stays checked when the options change (for example once the
|
|
160
|
+
aggregation is reloaded with the applied filter); a committed two-bound preset (`gte` / `lt`) is
|
|
161
|
+
no longer read back as a custom range; `lt` is accepted as well as `lte` for the upper bound.
|
|
162
|
+
- Date facet: support for masked dates (`YYYY`, `YYYY-MM`), labelled in the active language and sent
|
|
163
|
+
with the matching `aggregation_overrides` (new `aggregationOverridesChange` output in controlled
|
|
164
|
+
mode). Requires `@sinequa/atomic` 2.10.0.
|
|
165
|
+
|
|
166
|
+
**2.3.0**
|
|
167
|
+
|
|
168
|
+
- New `Settings` dialog (`Settings.call({ panel })`): a side-navigation shell with three panels —
|
|
169
|
+
Account (profile, reset / override user), Appearance (theme and language) and Keyboard shortcuts.
|
|
170
|
+
- ⚠️ The language picker leaves `UserProfileFormComponent` (`currentLanguage`, `changeLanguage()`
|
|
171
|
+
and the `userProfile.language` key are removed) and the standalone `UserProfile` dialog is
|
|
172
|
+
removed: use `Settings.call({ panel: "account" })`.
|
|
173
|
+
|
|
174
|
+
**2.2.0**
|
|
175
|
+
|
|
176
|
+
- Move to `@sinequa/atomic` 2.9.0, which renames the document-upload API to _Agent Workspace_: the
|
|
177
|
+
peer dependency becomes `@sinequa/atomic >=2.9.0` and the backend must expose
|
|
178
|
+
`api/v2/agent-workspace/*`.
|
|
179
|
+
- ⚠️ The `ContainerRole` type exported by `@sinequa/atomic-angular/elements` is renamed
|
|
180
|
+
`WorkspaceRole`, and the mappers `mapContainerDocumentToWorkspaceDocument` /
|
|
181
|
+
`mapContainerToWorkspace` become `mapWireDocumentToWorkspaceDocument` /
|
|
182
|
+
`mapWireWorkspaceToWorkspace`.
|
|
183
|
+
|
|
184
|
+
**2.1.0**
|
|
185
|
+
|
|
186
|
+
- New optional `provideSessionExpiry()`: warns the user shortly before their session expires, then
|
|
187
|
+
notifies them once it has, with a "Sign in again" action. Texts provided in en/fr/de. Requires
|
|
188
|
+
`@sinequa/atomic` 2.8.0 or later.
|
|
189
|
+
- _Document workspaces_: the workspace mention menu (`<workspace-mention>`) can be assembled from
|
|
190
|
+
pieces (search, "select all", "new workspace", tabs), in controlled mode or ready-made; new
|
|
191
|
+
attributes on `<lexiq-workspace-mention-list>`.
|
|
192
|
+
|
|
193
|
+
**2.0.0** — major version, Angular 22
|
|
194
|
+
|
|
195
|
+
- ⚠️ **Breaking changes**
|
|
196
|
+
- Angular 22 and `@angular/aria` `^22.2.0` are required.
|
|
197
|
+
- The native `@sinequa/atomic-angular/elements` entry point is no longer published: use
|
|
198
|
+
`@sinequa/atomic-angular/workspace-elements`.
|
|
199
|
+
- The _drawer_ family (`DrawerComponent`, `DrawerService`, `DrawerStackService`,
|
|
200
|
+
`SelectArticleOnClickDirective`, `SelectionHistoryService`…) and the `"stack"` value of
|
|
201
|
+
`SelectionStrategy` are removed: use `[selectArticle]` and
|
|
202
|
+
`SelectionService.setCurrentArticle()`.
|
|
203
|
+
- The date facet's custom-range dialog follows the `createCallable` pattern:
|
|
204
|
+
`await AggregationDateRange.call({ min, max, lang })` replaces
|
|
205
|
+
`<aggregation-date-range-dialog>`. It is now built on `vanilla-calendar-pro` (peer dependency
|
|
206
|
+
`^3.4.0`, stylesheet `@sinequa/atomic-angular/styles/calendar.css` to import).
|
|
207
|
+
- `AlertDialog` is rebuilt on Signal Forms (the `Alert.Days` bitfield becomes seven booleans); its
|
|
208
|
+
public API changes.
|
|
209
|
+
- `@sinequa/galactik` icons are re-exported from the main barrel (`@sinequa/galactik/icons` no
|
|
210
|
+
longer exists).
|
|
211
|
+
- **New**
|
|
212
|
+
- Data visualisation: `<Heatmap>`, `<TagCloud>`, `<WordCloud>` and, from
|
|
213
|
+
`@sinequa/atomic-angular/charts`, `<AggregationChart>` and `<AggregationTimeline>` (`chart.js`
|
|
214
|
+
as an optional peer dependency); canvas `<AggregationHeatmap>` from
|
|
215
|
+
`@sinequa/atomic-angular/charts/heatmap`.
|
|
216
|
+
- Document workspaces: `@sinequa/atomic-angular/document-workspaces` and `workspace-elements`
|
|
217
|
+
entry points (custom elements `<lexiq-workspaces>`, `<lexiq-workspace-picker>`,
|
|
218
|
+
`<lexiq-workspace-mention-list>`, ready-to-use stylesheet).
|
|
219
|
+
- Keyboard shortcut engine: `KeyboardShortcutsService`, the `[keyShortcut]` directive and a help
|
|
220
|
+
dialog, independent of the keyboard layout.
|
|
221
|
+
- `AdvancedSearchTabs`: an accessible tabbed alternative to `AdvancedSearch`.
|
|
222
|
+
- Injectable client: `ATOMIC_CLIENT`, `provideAtomicClient()`, `provideAtomicScope()` — serve
|
|
223
|
+
several Sinequa backends from one application. Services and stores go through this client;
|
|
224
|
+
`provideAtomicNotifications()` replaces `toastInterceptorFn`. The five HTTP interceptors stay
|
|
225
|
+
functional but are **deprecated**.
|
|
226
|
+
- `ui-language` follows the language the user picked, on every request.
|
|
227
|
+
- Facets: `itemDescription` input, `hideWhenEmpty` (`<Aggregation>`, `<aside-filters>`, `<more>`,
|
|
228
|
+
`<more-button>`), `collapsible` / `collapsed` on `<aside-filters>`.
|
|
229
|
+
- `ConverterSelectComponent`, `FaIconComponent`, `focusWhenReady()`, `tabIndex` on
|
|
230
|
+
`bookmark-button`.
|
|
231
|
+
- Accessibility: keyboard-usable filter bar and lists, named lists, named date-filter radio
|
|
232
|
+
group, translated labels (fr/de), `ArticleEntitiesTab` as a real accessible tree
|
|
233
|
+
(`@angular/aria/tree`), keyboard navigation across facet headers.
|
|
234
|
+
- Authentication views rebuilt as real forms (password-manager support, per-field validation).
|
|
235
|
+
- `SearchBar` / `SearchInput` no longer claim a global shortcut by default (`hotkey` is
|
|
236
|
+
undefined).
|
|
237
|
+
|
|
238
|
+
### 1.x line — from 1.1.x to 1.18.0 (Angular 20, dist-tag `lts`)
|
|
239
|
+
|
|
240
|
+
Last published version: **`@sinequa/atomic-angular` 1.18.0**. The 1.x line follows bug fixes and
|
|
241
|
+
backward-compatible improvements; major new features are developed on 2.x.
|
|
242
|
+
|
|
243
|
+
**1.18.0**
|
|
244
|
+
|
|
245
|
+
- Date facet: the selected radio stays checked when the options change, a committed two-bound
|
|
246
|
+
preset (`gte` / `lt`) is recognised, `lt` is accepted as well as `lte`. Blank labels for masked
|
|
247
|
+
date values are fixed in `@sinequa/atomic`.
|
|
248
|
+
- ⚠️ The _workspace documents_ / _upload documents_ components
|
|
249
|
+
(`@sinequa/atomic-angular/document-workspaces`) and the `elements` and `workspace-elements` entry
|
|
250
|
+
points are removed from the 1.x line. They remain available in 2.x. The optional
|
|
251
|
+
`@angular/elements` peer dependency and the `tus-js-client` dependency are dropped with them.
|
|
252
|
+
|
|
253
|
+
**1.17.0**
|
|
254
|
+
|
|
255
|
+
- The native `@sinequa/atomic-angular/elements` entry point is no longer published.
|
|
256
|
+
- _Document workspaces_: a workspace's file list reflects the index only; the upload status popup
|
|
257
|
+
also shows uploads started by other users and stays visible for two minutes after the end of an
|
|
258
|
+
upload; reworded texts (en, fr, de, ja).
|
|
259
|
+
|
|
260
|
+
**1.16.0**
|
|
261
|
+
|
|
262
|
+
- _Document workspaces_: the workspace list and a workspace's document list refresh themselves in
|
|
263
|
+
the background (additions, renames, access changes, a workspace deleted by another user).
|
|
264
|
+
|
|
265
|
+
**1.15.1** (bug fixes)
|
|
266
|
+
|
|
267
|
+
- The buttons rendered by the aggregation components have `type="button"`, so they no longer
|
|
268
|
+
submit a surrounding `<form>` by accident.
|
|
269
|
+
- _Document workspaces_: pagination ("Load more") of the workspace list, fixes to "Load more" after
|
|
270
|
+
deletions.
|
|
271
|
+
|
|
272
|
+
**1.15.0**
|
|
273
|
+
|
|
274
|
+
- New `@sinequa/atomic-angular/document-workspaces` entry point: the "collections" view rewritten
|
|
275
|
+
as Angular components (list, detail, sharing, upload, preview, workspace picker, chat mention
|
|
276
|
+
list) and `@sinequa/atomic-angular/workspace-elements` (custom elements). "Collection" becomes
|
|
277
|
+
"workspace".
|
|
278
|
+
- `lexiq-collections` elements synchronised (document preview, principal picker, upload status
|
|
279
|
+
polling, session recovery, i18n en/fr/de/ja). Requires `@sinequa/atomic >= 2.7.0`.
|
|
280
|
+
- Fixes: height of buttons with no explicit `variant`, selecting a collection with
|
|
281
|
+
`allowEmptySearch: false`, the result being updated when an empty search is skipped, alignment of
|
|
282
|
+
the custom date range fields, redundant tab tooltip, `allowSignalWrites` warning from
|
|
283
|
+
`@tanstack/angular-virtual` (updated to v6).
|
|
284
|
+
|
|
285
|
+
**1.14.1** (bug fixes)
|
|
286
|
+
|
|
287
|
+
- The user profile is shared between consumers (one request, updates visible everywhere).
|
|
288
|
+
- A distribution facet ("Sizes", "Dates") keeps its selected state after the query reruns. Requires
|
|
289
|
+
`@sinequa/atomic` ^2.6.0.
|
|
290
|
+
|
|
291
|
+
**1.14.0**
|
|
292
|
+
|
|
293
|
+
- `<more-button>` adapts to its context: a bottom sheet on mobile, a modal dialog above a threshold
|
|
294
|
+
(`enrichedThreshold`), a facet search box above six filters; the popover height adapts to the
|
|
295
|
+
available space (facets scroll correctly).
|
|
296
|
+
- New `lockPosition` input to pin a popover's placement.
|
|
297
|
+
- Per-facet height variable fixed (`--scroll-height`).
|
|
298
|
+
|
|
299
|
+
**1.13.0**
|
|
300
|
+
|
|
301
|
+
- `<Aggregation>`, `<aggregation-list>`, `<aggregation-tree>`: a missing aggregation removes itself
|
|
302
|
+
from the layout; new `hideWhenEmpty` input to also hide an aggregation with no items (also on
|
|
303
|
+
`<aside-filters>`, `<more>`, `<more-button>`).
|
|
304
|
+
- `<aside-filters>`: `collapsible` and `collapsed` inputs.
|
|
305
|
+
- "Did you mean" relies on each term's correction action (`correction`, `expansion`, `suggestion`);
|
|
306
|
+
moved to `@sinequa/atomic` 2.5.0.
|
|
307
|
+
- Fixes: the date facet's Apply / Clear buttons now match the list and tree; a `homepage: true`
|
|
308
|
+
filter always shows in the homepage filter bar; race between app bootstrap and the OAuth/SAML
|
|
309
|
+
redirect (moved to `@sinequa/atomic` 2.4.0).
|
|
310
|
+
|
|
311
|
+
**1.12.0**
|
|
181
312
|
|
|
182
|
-
|
|
313
|
+
- New `applyOnSelect` input on `<aggregation-list>`, `<aggregation-tree>` and `<Aggregation>`.
|
|
314
|
+
- Fix: a late `401` after a logout no longer sends the user back to the sign-in form.
|
|
183
315
|
|
|
184
|
-
**
|
|
316
|
+
**1.11.0**
|
|
185
317
|
|
|
186
|
-
-
|
|
187
|
-
|
|
318
|
+
- New `@sinequa/atomic-angular/elements` entry point: `lexiq-collections` custom elements (requires
|
|
319
|
+
`@sinequa/atomic >= 2.2.0`).
|
|
188
320
|
|
|
189
|
-
**
|
|
321
|
+
**1.10.0**
|
|
190
322
|
|
|
191
|
-
-
|
|
192
|
-
|
|
323
|
+
- Date facet: `emitOn` input (`"selection"` by default, `"apply"` to defer emission to the Apply
|
|
324
|
+
button in controlled mode).
|
|
325
|
+
- Fix: the delete button of the collections list is always visible.
|
|
193
326
|
|
|
194
|
-
**
|
|
327
|
+
**1.9.x** (1.9.0 → 1.9.9)
|
|
195
328
|
|
|
196
|
-
-
|
|
197
|
-
-
|
|
329
|
+
- 1.9.0: `<aside-filters>`, a standalone facet list.
|
|
330
|
+
- Fixes: aggregation tree selection with Enter behaves like a click, the query store is reset on
|
|
331
|
+
init (ends a leak of one user's search text to the next), navigation tabs disabled when their
|
|
332
|
+
count is zero, display and label of controlled aggregations, backend error message when a user
|
|
333
|
+
override fails, preview highlight restoration, auth guard, navigation and bootstrap race
|
|
334
|
+
conditions, long user-profile values.
|
|
198
335
|
|
|
199
|
-
**
|
|
336
|
+
**1.8.0**
|
|
200
337
|
|
|
201
|
-
-
|
|
202
|
-
|
|
338
|
+
- Controlled mode for `<Aggregation>` (the facet neither reads nor writes the URL): a structured
|
|
339
|
+
`Filter` is emitted alongside `selectionChange`, live emission on the date facet, an
|
|
340
|
+
`aggregationItem` template to customise a row's content, a "load more" example.
|
|
203
341
|
|
|
204
|
-
**
|
|
342
|
+
**1.7.x** (1.7.0 → 1.7.2)
|
|
205
343
|
|
|
206
|
-
-
|
|
207
|
-
-
|
|
208
|
-
|
|
209
|
-
|
|
344
|
+
- `syncUrl` input to opt out of URL synchronisation of filters.
|
|
345
|
+
- Fixes: `position: 'left'` filters only show in the left aside; fall back to native FontAwesome
|
|
346
|
+
markup in `FaIcon`; reach the last entity occurrence in the preview; sign-in driven by the
|
|
347
|
+
outcome of `login()`.
|
|
210
348
|
|
|
211
|
-
|
|
349
|
+
**1.6.x** (1.6.0 → 1.6.5)
|
|
212
350
|
|
|
213
|
-
|
|
351
|
+
- Feedback: dynamic visibility and configuration.
|
|
352
|
+
- Dialog to toggle feature flags live.
|
|
353
|
+
- Filters persist across tabs (`navbar-tabs`).
|
|
354
|
+
- Migration to the `AuthMode` authentication model, bootstrap race fixed.
|
|
355
|
+
- Fixes: a signed-out view on `/logout` instead of the re-authentication loader, selecting items of
|
|
356
|
+
a multi-value filter, `basePath` prefix for the static search index.
|
|
214
357
|
|
|
215
|
-
|
|
358
|
+
**1.5.x** (1.5.0 → 1.5.7)
|
|
216
359
|
|
|
217
|
-
|
|
360
|
+
- Filter bar: the "more" button stays visible when filters exceed `filtersCount`, overflow is
|
|
361
|
+
recounted when item sizes or applied filters change; tabs (`navbar-tabs`) no longer truncate by
|
|
362
|
+
default, with a minimum width and an icon-only collapse; `homepage` input for the homepage filter
|
|
363
|
+
bar.
|
|
364
|
+
- Fixes: alerts' `Query.filters` typing, `AppStore.getColumn` / `getColumnAlias` with non-string
|
|
365
|
+
input, source icon.
|
|
218
366
|
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
367
|
+
**1.4.x** (1.4.0 → 1.4.2)
|
|
368
|
+
|
|
369
|
+
- Navigation tabs react to dynamic router configuration.
|
|
370
|
+
- ARIA attributes on the aggregation components.
|
|
371
|
+
|
|
372
|
+
**1.3.x** (1.3.0)
|
|
373
|
+
|
|
374
|
+
- New `SidebarNavComponent` (tooltip showing the tab label) and `injectRouteNavigation`.
|
|
375
|
+
|
|
376
|
+
**1.2.x** (1.2.0 → 1.2.8)
|
|
377
|
+
|
|
378
|
+
- New icons and improved accessibility; circular dependency fix.
|
|
379
|
+
- Fixes: session storage clearing and date handling in the aggregation components, logout URL taken
|
|
380
|
+
from the challenge action, feedback translation pipe.
|
|
381
|
+
|
|
382
|
+
**1.1.x** (1.1.0)
|
|
383
|
+
|
|
384
|
+
- Icons in components updated to the new icon components.
|
|
225
385
|
|
|
226
|
-
## Browser
|
|
386
|
+
## Browser support
|
|
227
387
|
|
|
228
388
|
- Chrome (latest)
|
|
229
389
|
- Firefox (latest)
|