@sumaris-net/ngx-components 21.4.2 → 21.4.4

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/AGENTS.md CHANGED
@@ -44,7 +44,7 @@ npm run e2e # Tests end-to-end (Playwright)
44
44
  npm run e2e:install # Installation du navigateur Playwright (Chromium)
45
45
  ```
46
46
 
47
- > L'app de démo/test tourne sur **http://localhost:4201** (voir `testing.md` pour les tests Playwright).
47
+ > L'app de démo/test tourne sur **http://localhost:4201** (voir la skill `lib-testing` pour les tests Playwright).
48
48
 
49
49
  ## Key directories
50
50
 
@@ -62,17 +62,28 @@ npm run e2e:install # Installation du navigateur Playwright (Chromium)
62
62
 
63
63
  Ce tableau référence l'ensemble des règles de développement du projet. Chaque règle est détaillée dans un fichier dédié du dossier `.agents/rules/`.
64
64
 
65
- | Fichier | Description |
66
- |--------------------------------------------------------|-----------------------------------------------------------------------------------------------|
67
- | [common.md](.agents/rules/common.md) | Règles communes : conventions de nommage, suffixes de fichiers, frameworks |
68
- | [component.md](.agents/rules/component.md) | Écriture d'un composant Angular : RxState, template HTML, modals, ngx-translate |
69
- | [entities.md](.agents/rules/entities.md) | Modèle d'entité TypeScript : `@EntityClass`, `asObject()`, `fromObject()` |
70
- | [service.md](.agents/rules/service.md) | Écriture d'un service : `BaseEntityService`, GraphQL, CRUD, pattern de sauvegarde |
71
- | [service-offline.md](.agents/rules/service-offline.md) | Gestion offline : `RootDataSynchroService`, `EntityStorage`, synchronisation |
72
- | [service-quality.md](.agents/rules/service-quality.md) | Qualité des données : control, terminaison, validation, délégation aux services fils |
73
- | [validator.md](.agents/rules/validator.md) | Écriture d'un validateur : `AppValidatorService`, Reactive Forms, options typées, FormArray |
74
- | [table.md](.agents/rules/table.md) | Écriture d'un tableau : `AppTable`, validateur, colonnes, template HTML |
75
- | [gitlab.md](.agents/rules/gitlab.md) | Workflow GitLab : branches, merge requests, revues de code, conventions |
76
- | [configuration.md](.agents/rules/configuration.md) | Options de configuration par module : `FormFieldDefinition`, `ConfigService`, settings locaux |
77
- | [testing.md](.agents/rules/testing.md) | Tests de l'application : unit test (Jasmine), reproduction de bugs, tests e2e via Playwright |
78
- | [theming.md](.agents/rules/theming.md) | Thème et styles : rôle de chaque fichier de `src/theme`, SCSS/CSS (Ionic / Material) |
65
+ Pour limiter le contexte, les règles sont chargées **à la demande** : seule `common.md` est toujours chargée. Les autres déclarent des `paths:` (front-matter),
66
+ et l'agent ne les charge que lorsqu'il lit ou modifie un fichier correspondant. **Avant de créer un nouveau fichier** (tableau, service, validateur...), lire la règle correspondante.
67
+
68
+ | Fichier | Chargée pour | Description |
69
+ |----------------------------------------------------|-----------------------------------------------|-----------------------------------------------------------------------------------------------|
70
+ | [common.md](.agents/rules/common.md) | toujours | Règles communes : conventions de nommage, suffixes de fichiers, frameworks |
71
+ | [component.md](.agents/rules/component.md) | `src/app/**/*.{ts,html,scss}` | Écriture d'un composant Angular : RxState, template HTML, modals, ngx-translate |
72
+ | [entities.md](.agents/rules/entities.md) | `*.model.ts`, `core/services/model/**` | Modèle d'entité TypeScript : `@EntityClass`, `asObject()`, `fromObject()` |
73
+ | [service.md](.agents/rules/service.md) | `*.service.ts` | Écriture d'un service : `BaseEntityService`, GraphQL, CRUD, pattern de sauvegarde |
74
+ | [validator.md](.agents/rules/validator.md) | `*.validator.ts` | Écriture d'un validateur : `AppValidatorService`, Reactive Forms, options typées, FormArray |
75
+ | [table.md](.agents/rules/table.md) | `*.table.ts`, `*.table.html`, `core/table/**` | Écriture d'un tableau : `AppTable`, validateur, colonnes, template HTML |
76
+ | [configuration.md](.agents/rules/configuration.md) | `*.config.ts`, `app.module.ts`, environments | Options de configuration par module : `FormFieldDefinition`, `ConfigService`, settings locaux |
77
+ | [theming.md](.agents/rules/theming.md) | `src/**/*.scss`, `src/**/*.css` | Thème et styles : rôle de chaque fichier de `src/theme`, SCSS/CSS (Ionic / Material) |
78
+
79
+ > Les règles propres aux données métier (offline, qualité des données...) sont dans le dépôt `sumaris-app`.
80
+
81
+ ## Skills
82
+
83
+ Les procédures ponctuelles sont des **skills** (`.agents/skills/<nom>/SKILL.md`) : seule leur description est chargée, le contenu est lu quand la tâche le demande.
84
+
85
+ | Skill | Description |
86
+ |----------------------------------------------------|-------------------------------------------------------------------------------------|
87
+ | [release](.agents/skills/release/SKILL.md) | Publier une release npm de la librairie (build, publish, gitflow) |
88
+ | [gitlab](.agents/skills/gitlab/SKILL.md) | Workflow GitLab : tickets, branches, merge requests, revues de code, conventions |
89
+ | [lib-testing](.agents/skills/lib-testing/SKILL.md) | Tests de l'app de démo : reproduction de bugs, tests e2e via Playwright |
package/doc/changelog.md CHANGED
@@ -2486,7 +2486,27 @@ The library now uses the Ionic **standalone** build (`@ionic/angular/standalone`
2486
2486
  - enh(upload-file): tertiary "Browse" button
2487
2487
 
2488
2488
  ## 21.4.1
2489
- - feat(shared): introduce `FileAttachmentComponent` for reusable file attachment badges
2489
+ - enh(shared): introduce `FileAttachmentComponent` for reusable file attachment badges
2490
2490
 
2491
2491
  ## 21.4.2
2492
+ - enh(message): `MessageAttachmentUtils.toFileAttachment()` + fixes for feed attachment tests
2492
2493
  - fix(async-table): inverse logic of `askConfirmation` in `cancelExistingRow()`
2494
+
2495
+ ## 21.4.3
2496
+ - enh(upload-file): add `showOkButton` input to UploadFilePopover, to make the import button optional (auto-validates once all files are uploaded)
2497
+ - fix(AutoTooltipDirective): toggle tooltip functionality using `appAutoTooltip` and add fallback text `appTooltipText`.
2498
+ - deps: Updated dependencies including `@e-is/ngx-material-table` to version 21.0.2.
2499
+
2500
+ ## 21.4.4
2501
+ - enh(message): add a markdown toolbar to the message form (bold, underline, strikethrough, highlight, headings, bullet list, hyperlink, attachment, preview)
2502
+ - enh(graphql): new environment option `enableGraphqlDefer` (default: `false`, so the current behaviour is unchanged), to support the GraphQL `@defer` directive (incremental delivery)
2503
+ * `false`: `@defer` directives are removed from the queries (all fields are fetched in a single response). Apps can always write `@defer`
2504
+ * `true`: queries with `@defer` are sent with the Apollo fetch `HttpLink` (streamed `multipart/mixed` response, `deferSpec=20220824`); other queries keep the apollo-angular `HttpLink`. Requires a pod that supports `@defer` (sumaris-pod!373)
2505
+ * New utils: `hasDeferDirective()`, `removeDeferDirectives()`, `isDeferredOperation()`, `httpHeadersToRecordLink`. New getter `GraphqlService.deferEnabled`
2506
+ - fix(graphql): `GraphqlService.watchQuery()` now emits the partial results of a `@defer` query (`NetworkStatus.streaming`)
2507
+ - fix(autocomplete): fix fetchMore when open/close the panel many times
2508
+ - enh(testing): tests page (`/testing/shared`): add a search bar, in the header (toggled by a search button)
2509
+ * Multi-word, case and accent insensitive filter on the page label, path and section; matches are highlighted
2510
+ * Result count under the search bar (`COMMON.RESULT_COUNT` / `COMMON.NO_RESULT`), hidden when the filter is empty
2511
+ * Keyboard: `/` or `Ctrl+K` to open the search bar, `↑`/`↓` + `Enter` to open a page, `Esc` to clear (then close)
2512
+ * Search text kept in the URL (`?q=`), restored when going back from a test page