Skip to content

Releases: sinequa/sba-angular

SBA Framework 11.12.0

28 Aug 08:04
eec62c2
Compare
Choose a tag to compare

See on Github

General changes

Note

SBA Framework is compatible with Angular 17 and dependencies are up to date

New component

  • The my-search components removed in 11.10 has been updated to work with the new filters introduced in 11.10.

Chore

Ticket Description
📦 ES-22530 Angular 17 migration
📦 ES-22899 update npm dependencies to latest versions
💄 ES-22767 New Sinequa Branding colors

Applications

Ticket Description
🐛 ES-23117 (vanilla-search) Remove autoSAMLProvider from environment.prod.ts
ES-22743 (vanilla-search/search-component) manage results with a virtual scroll list

Core

Ticket Description
🐛 ES-23165 (core/query) Update deserializeFilter method to handle both array and non-array data types
🐛 ES-22212 (app service) Fix getColumnDefaultAlias method to use lowercase for the first letter of the first alias
🐛 ES-22801 (core/web-service) Do not send app information in audit payload
🐛 ES-20767 (core/base) fielded search: add parentheses around field expressions

Components

Ticket Description
🐛 ES-23662 (facet) Add display property to facet item in facet service
ES-23643 (facet/my-search) New "my-search" component
🐛 ES-22415 (search-service) Remove queryId when filters are undefined in search service
💄 ES-22924 (machine learning/top passage) remove unnecessary padding in top-passages.component.scss
🐛 ES-18964 (facet-list) Fix issue with facet list node opening logic
🐛 ES-20938 (advanced) advanced search form not filtered
🐛 ES-21804 (search-form) strict refine, remove queryid on clear text
🐛 ES-21965 (preview) preview failed while loading highlights prefs
🐛 ES-21312 (action) Issue in main search bar facet container on "All data" checkbox selection
🐛 ES-21334 (preview) extracts do not display automatically when retrieved
🐛 ES-20781 (filters) should generate a query with "contains" operator when filtering on a facet
🐛 ES-20768 (preview) Add support for displaying Excel previews without sandbox

Analytics

Ticket Description
💄 ES-21538 (timeline) Refactor facet-date component to use pure css collapse behavior
🐛 ES-22049 (googlemaps) GoogleMapsModule disappears after expanding a preview result

What's Changed

New Contributors

Full Changelog: 11.11.0...11.12.0

SBA Framework 11.11.0

05 Jun 11:53
58b6def
Compare
Choose a tag to compare

See on Github

General changes

Note

No breaking changes

Chore

Ticket Description
🎨 Add anonymous type T to dataset web service
🎨 extract all types in their own file and improve typings
SBA-818 Improve the autocomplete navigation behavior by preselecting automatically the values selected via keyboard
ES−20677 🚨 migrate to fontawesome 6
ES-20713 🚨 Migrate Bootstrap to 5.3

Applications

Ticket Description
SBA-824 ✨ (pepper) Always display the result selector for better clarity
ES-20703 ✨ (vanilla) Add alert when no result
SBA-710 ✨ (vanilla) help button to search tips and trick always visible
ES-20727 ✨ (vanilla) display recent queries when clicking on empty search bar like Google
💄 (vanilla/css) move root.scss file to sinequa.scss
💄 (vanilla/css) remove css extension from sass import
💄 (vanilla/css) remove the deprecated sass "~" operator

Documentation

Ticket Description
🐛 (component-docs) Fix loading advanced form in SBA website
🐛 (component-docs) fix search form suggestions
SBA-845 📝 (docs) update advanced search form documentation
SBA-828 📝 (docs) add some details to the tutorial
🚨 (docs) fix links in the documentation

Core

Ticket Description
ES-20728 HTTP interceptor handle authentication for API v2 routes

Components

Ticket Description
✨ (preview) New custom highlights functionality in the preview
ES- 20762 🐛 (preview/extracts) remove empty extracts
✨ (ml/passage) Select passage in the preview upon click on top passage
ES-20942 ✨ (ml/similar-documents) display similar document relative to a specifc record using the new doc similarity API
SBA-897 🐛 (alert) add options: respect tab selection and combine
SBA-876 ✨ (search-form) Add new search form toggle for filters persistance
SBA-861 ✨ (search-form) trigger a new search on brain icon click
ES-20726 ✨ (search) trigger a query syntax error message on get results error
SBA-877 ✨ (filters) add the possibility to override filters classes
SBA-693 🐛 (modal/cdk−drag−n−drop) force top position to 0
SBA-840 🐛 (advanced) set input value on changes
ES-20784 🐛 (facet) filter on label of an entity
ES-20740 ✨ (facet) save facet collapse status in preferences
ES-20697 ✨ (metadata) add new valueClicked output to metadata values

Assistant

Ticket Description
ES-20721 raise event on assistant error
ES-20694 allow assistant edition and regeneration
Improve display of references in tooltips and allow to open the preview
Render code blocks with syntax highlighting and custom card
Include model name in audit events
Implement the placeholder in new assistant message component
ES-20692 add a stop generating button in the assistant
New rendering of assistant messages, allowing to customize the references
ES-20690 change the input focus to be triggered at the end of streaming messages
ES-20701 make the settings update to not reload the assistant

Analytics

Ticket Description
ES-20676 🐛 (googlemaps) refresh points when loading more results

SBA Framework 11.10.0

12 Jul 07:46
Compare
Choose a tag to compare

Read this release note on the SBA documentation site

General changes

⚠️ Platform breaking changes

Unlike previous versions of the SBA Framework, the 11.10.0 release is not compatible with older versions of Sinequa ES (11.9.0 and below). This is due to various new functionalities in the platform's REST API (see below).

Documentation updates

The SBA documentation has been significantly enriched, rewritten and reorganized. In particular:

  • Rewritten Introduction and Getting Started sections
  • New Guides section with guidance on SBA architecture, development environment, versioning, etc.
  • Reorganized the Components documentation and introduced interactive examples to replace the previous static screenshots and code snippets.
  • New Applications section including not only the core framework (vanilla, pepper) but also the Usage Analytics and Vanilla Builder applications.
  • New Releases section with a list of all SBA releases and their main changes (mirroring the Github releases).
  • Auto-generated documentation (compodoc) was removed. Instead, we automatically link class names and interfaces found in the documentation to the matching source code in the Github repository.

End-to-end tests

This release introduces end-to-end (e2e) tests for the SBA components. These tests are written with Cypress and defined in the cypress folder of the repository. These tests cover the (new) projects/components-docs application which centralizes all of Sinequa components from projects/analytics and projects/components (see below). These tests consist primarily in rendering each component and comparing its visual appearance with a reference screenshot. The reference screenshots are stored in the cypress/snapshots folder.

Library updates

Core

Web services

  • Removed support of fielded search expressions (Expr, ExprParser, ExprBuilder classes). Expressions are replaced with a new "filter" syntax documented in the Core library. Note that the fielded search syntax used in the search form is still interpreted by the platform as before (but the SBA is unaware of it).

    ⚠️ Any usage of Expr in a custom application must be migrated to the new filter syntax. The new syntax essentially provides the same level of functionality:

    Before:

    expr = this.exprBuilder.concatAndExpr([
      this.exprBuilder.makeExpr("docformat", "pdf"),
      this.exprBuilder.concatOrExpr([
        this.exprBuilder.makeExpr("authors", "John"),
        this.exprBuilder.makeNumericalExpr("size", "<", 1024)
      ])
    ]);
    query.addSelect(expr);

    After:

    filter = {
      operator: "and",
      filters: [
        { field: "docformat", value: "pdf" },
        {
          operator: "or",
          filters: [
            { field: "authors", value: "John" },
            { field: "size", operator: "<", value: 1024 }
          ]
        }
      ]
    };
    query.addFilter(filter);
  • Dataset web service:

    • New isDatasetError(result) method to easily test whether a result returned by the dataset web service is valid.
    • The get(webService, dataset) now throws an error if the result is not a valid dataset, and its return signature has therefore been changed to Observable<Results>.
    • The getAll() method is removed. Use getBulk() without specifying any dataset instead.
  • The Json Method web service now has proper typing for the options argument, enables typing the return type and does not log the response to the console anymore.

  • The Query web service Results object is more accurately typed and was updated to match the latest platform changes (especially around the Neural Search data structures).

  • The download service now allows specifying a file name for the downloaded file (rather than the default one sent by the server).

Login

  • ⚠️ Removed support for login in a popup window using ng2-ui-auth (unmaintained library).

  • The Login interceptor now sends the UI language to the platform (via headers and/or body).

  • The Login interceptor now intercepts network errors (eg. 0, 503, 504) and automatically performs retries (progressively spaced in time, as in gmail) while displaying a special notification to the user.

  • The Login service now supports hard-coded credentials for development or CI purposes. Credentials can be injected in an app module's providers:

    {provide: CREDENTIALS, useValue: {username: "admin", password: "admin"}}

Audit

  • All events now include the current browser URL so the current route & query are always available in the logs.
  • Logging of route change events is now a core feature as opposed to an app-by-app implementation.
  • Logging of exit/return events is now a core feature as opposed to an app-by-app implementation. Now only the Navigation_Return events are captured, following a click on a document link (as opposed to tracking any kind of navigation, or alt-tabbing).

Miscellaneous

  • Fixed the escaping of html elements passed to formatjs (https://github.com/sinequa/sba-angular/issues/108).
  • IntlService.formatRelativeTime() now behaves consistently whether given a string/Date (delay relative to now) or a number (delay) and always auto-determines the display unit (min, hour, day, week, etc.).

Components

All components that apply filters to the Query have been migrated to the new filter syntax (see above)

Autocomplete module

  • ⚠️ Removed the sqAutocompleteFieldSearch directive and sq-field-search-items component (following the removal of the fielded search syntax).
  • New SuggestService features:
    • When no suggestion is returned, attempt a new strategy of autocompleting only the last token of the query (eg. "Sinequa Sea" -> "Sinequa Search Engine").
    • Deduplication, highlighting and scoring of suggest results.
    • Better protection against HTML injection in the suggest results.

Collapse module

  • ⚠️ Removed sq-collapse-link (unused and redundant with sq-collapse-button).

Facet module

  • ⚠️ Major refactoring of the sq-facet-list component:

    • Removal of the sq-facet-tree component. sq-facet-list now handles both list and tree aggregations.
    • A click on the checkbox displays an "Apply" button that lets user check other items before applying the selection.
    • A click anywhere else on an item applies the selection immediately.
    • Advanced selection options (AND / OR / NOT operators) are nested under a dropdown menu.
    • New icon for "removing a filter".
    • Changes in options:
      • Added focusSearch (default: false): Automatically focus the search bar when the facet is expanded.
      • Added expandedLevel (default: 2): The number of levels expanded by default (for tree aggregations).
      • Removed showCheckbox (determined automatically)
      • Removed displayActions (not useful anymore)
      • Removed showProgressBar (unused)
      • Removed alwaysShowSearch (the search bar is always shown when searchable is true)
      • allowAnd is false by default
  • ⚠️ Removed sq-facet-mysearch (Replaced by the Filters module).

  • Change of behavior in the sq-facet-refine component: Rather than adding a special select property to the query and letting the server modify the fulltext search query accordinly, this component now directly modifies the fulltext query via query.addRefine().

  • Refactoring of the sq-facet-multi component. The component now displays a custom header template. The icon and title of the facet should be passed as input to this component rather than to the parent sq-facet-card.

  • New sq-facet-container component to display a list of facets as a toolbar, where one facet can be expanded at a time. This component is documented in the Facet library. This component is used in the new integrated search form (packaged in Pepper).

  • Refactoring of the sq-facet-filters component to properly display the actions and custom templates of the facet components in the dropdown panels.

  • Facet card:

New Filters module

This new module is documented in the Components library. It allows displaying and editing the filters of a Query object. The component is meant to replace the sq-facet-mysearch and sq-breadcrumbs components.

Machine Learning module

  • New sq-chat component and ChatService service to display a chatbot interface. This component allows to chat with a Large Language Model such as GPT-4 (the model powering ChatGPT). This component is documented in the Machine Learning library.

  • Refactored the sq-top-passages component: No more pagination, passage truncation or custom facet card header. The text of the answer (predicted by the answer finder model is highlighted within the text of the passage). The component also auto-hides if no passages are found.

Metadata module

⚠️ Major refactoring of the module:

  • Removal of the sq-metadata-access-list component (unused).
  • Redesign of the sq-metadata and sq-metadata-item components. Metadata is now displayed according to a configuration (incl. icon, label, filterable, etc.), similar to how the facets and facet con...
Read more

SBA Framework 11.9.0

05 Dec 09:05
Compare
Choose a tag to compare

General changes

Library updates

We upgraded most of our libraries to their latest version and adressed all known vulnerabilities, (except those for which we are blocked by a third-party library that cannot be upgraded).

These library updates also bring improved performance and often a reduction in bundle size.

These updates introduce various breaking changes and may require additional migrations in customer-maintained source code (particularly Angular, Bootstrap, RxJS and Moment).

  • Migration to Angular 14 (from 12)
  • Migration to RxJs 7.5 (from 6.6)
  • Migration to Bootstrap 5.2 (from 5.1)
  • Migration to D3 v7 (from v5) and optimized import to reduce bundle size
  • Replaced the deprecated moment library and jstz to date-fns and date-fns-tz across all components and services processing dates and datetimes.
  • Updated the Intl, FormatJS, jssha, lodash libraries (and others) to latest versions
  • Updated the ngx-charts, vis-network and vis-timeline libraries (used in the analytics library) to the latest versions
  • Replaced the (poorly-maintained) ngx-vis and angular-fusioncharts libraries with in-house wrappers to improve performance and fix bugs
  • Replaced the deprecated @agm library with @angular/google-maps

Compatibility with Safari

We adressed different issues specific to Safari:

  • Broken timeline Zooming
  • Timeline Events not displayed
  • Dates displayed as "Invalid" (Sinequa's standard format was not properly parsed by new Date())

Project structure

We reorganized our tsconfig files across the workspace, along with other configuration files (ng-package, secondary-entry-point-config, tslint/eslint, karma, etc.)

Core library

  • Integration in Teams: We added a TeamsInitializer (APP_INITIALIZER) in the application startup. Its role is to ensure that when the SBA is loaded within a Microsoft Teams tab, the user is automatically authenticated, without the need for additional authentication and/or redirection to an identity provider.
  • Login: Fixed a bug where the browser would attempt multiple redirects on 401 errors, causing errors with specific Identity Providers.
  • Fixed a syntax error thrown by the fielded search parser when a "-" symbol was in the query.
  • Audit (breaking change): we harmonized our standard audit events across components and applications to be consistent with the events expected by the latest Usage Analytics application.

Components

  • New Sinequa Theme packaged under @sinequa/components/theme. The theme is a set of modular stylesheets that can be imported indidividually or as a whole in an application's global stylesheet. The theme modifies the appearance of standard Bootstrap components and specific Sinequa components. See https://sinequa.github.io/sba-angular/modules/components/theme.html
  • We refactored the components in the @sinequa/components/machine-learning library, following new Neural Search features and modified web services (breaking change). These components (showing answers, top passages, and matching passages per document) are all integrated by default in Vanilla Search. See https://sinequa.github.io/sba-angular/modules/components/machine-learning.html
  • Preview library:
    • Simplification of the sq-facet-preview-2 component (breaking change): This component now only manages the preview itself, and does not display the document metadata or document title. (In Vanilla Search the metadata and title are now displayed via the facet-card itself)
    • Fixed navigation issues (eg. 2 clicks required to go back to the search view)
    • Fixed SVG highlights in documents generated by certain converters
  • Facet library:
    • Facet card: Various additions to the sq-facet-card API (See https://sinequa.github.io/sba-angular/modules/components/facet.html). These new features are used in the new "Mini-Preview" of Vanilla Search and should be used more generally for displaying complex components with multiple views, actions and options.
      • Natively support multiple views. These views are injected within ng-template elements decorated with a directive sqFacetView. The facet-card displays a list of actions to toggle between the views, in the bottom-left corner of the facet card header.
      • Support primary actions (shown in the header top-right corner) and secondary actions (shown in the header bottom-right corner).
      • The 3 action groups (views, primary, secondary) can be completely and independently customized (size, styles, positioning, etc.)
      • The custom ng-templates (for the header, sub-header, footer and settings) that a facet component could already declare in its own template, can now be injected into the sq-facet-card directly (thus removing complexity from child components and opening more possibilities for the parent components).
    • Facet-list and facet-tree: Refreshed look & feel and checkboxes to make multiple selection more intuitive. We also added the option to display the search bar permanently.
    • Facet-range: The min/max inputs now accept given number and Date inputs
  • Metadata library: We removed the separator in "inline" mode (as opposed to "tabular").
  • Result source component: We changed the treepath separator to a prettier one (❯) and made it easier to customize the component styles.
  • Result counter: Prevent text wrapping
  • User menu: We now show the user's full name if available, but it is only visible as a tooltip and within the dropdown menu's header. It is possible to display the user name as before, by passing [showText]="true" to the component.
  • Modal component: Modals now respect the height/width/fullscreen settings available in the modal service.
  • New sq-scope component (packaged in @sinequa/components/search) to toggle between "search scopes" defined in the query web service. The component is integrated in the default search-form component packaged in Vanilla-Search (but it is visible only if scopes are actually configured).
  • SearchService: We made this service (along with the QueryWebService and Breadcrumbs) generic with respect to the Results type, so that it can be easily customized for a custom index schema. (eg. inject SearchService<MyResults> in your component, where MyResults includes all your custom metadata).
  • Sponsored links: handle link URL when it contains %PREVIEW_URL%
  • Fixed broken ClickOutside directive

Analytics

  • New multi-level pie chart component to display tree-typed metadata. See https://sinequa.github.io/sba-angular/modules/analytics/fusioncharts.html
  • Improved the API of the Tooltip component used in the analytics views (heatmap, timeline, money charts...), resulting in simplified and consistent usage across these components. The tooltip is now in its own library: @sinequa/analytics/tooltip
  • Made the timeline tooltip scroll vertically, when too many values.
  • Fixed the heatmap component in cooccurrence mode
  • Fixed the ngx-chart legend in dark mode

Vanilla Search

  • The new Sinequa Theme is used by default in Vanilla-Search.
  • The "mini-preview" (displayed along the results) uses the simplified version of the facet-preview component and improved facet-card API, supporting multiple views (see above).
  • When Neural Search is active, the mini-preview displays two views: Preview and Passages (from the machine learning package). This list of views can be easily customized by adding/removing ng-templates in the facet card.
  • The metadata component is displayed with [tabular]="false" by default, to save space in the mini preview header.
  • A placeholder card is displayed on the right side when no preview is opened, to encourage a click on a document from the user.
  • Refactored the application navbar to match the grid layout of the main app content.
  • Fixed scrolling to bottom when returning to the home page

SBA Framework 11.8.1

23 Aug 09:33
0a405fe
Compare
Choose a tag to compare

Components

  • Machine Learning module: New "Top passages" component for Neural Search displayed by default in Vanilla Search

Bug fixes:

  • Fix compatibility issues with Safari (date format not managed)
  • Stop loading animation when an exception occurs
  • Fix light button color that was to clear from Bootstrap 5 migration
  • Fix bug with facet collapse button
  • Sync first-page service on login changes
  • Fix exception when facet autocomplete term contains special characters
  • Fix neural search deactivated when "keep filters" is on

SBA Framework 11.8.0

20 Jun 11:51
Compare
Choose a tag to compare

General changes

  • Removed support for Internet Explorer from browserslist file
  • Upgrade to ngx-bootstrap v8
  • Migration from ng5-slider to angular-slider
  • Refactoring of proxy config files to group all the endpoints together
  • Added "override" keyword from typescript 4.3 to improve type checking
  • Fixed Bootstrap btn-light class (hover and active effects invisible when the button is on a bg-light background)
  • Fixed some remaining Bootstrap v5 utilities (font-style -> fst, font-weight -> fw...)

Vanilla Search

  • New Help menu available within the User menu
  • Added the new sq-facet-date (featuring the timeline) as a replacement to the sq-facet-list for the "modified" metadata
  • Added the new Neural Search components, when Neural Search is activated:
    • Neural Search On/Off button in search form
    • Answer card at top of results list
    • Passages displayed instead of relevant extracts
    • List of relevant passages available within the preview UI
    • Passages highlighted in the HTML preview

Pepper

  • Fixed broken view when a widget is added while another is maximized

Core library

  • Fixed infinite loops upon 401 errors

Components library

  • Facets library (@sinequa/components/facet):
    • ⚠️ Major refactoring of the "facet containers" (sq-facet-multi, sq-facet-filters and sq-facet-bar). Previously, these components were limited to predefined facet types, namely sq-facet-list and sq-facet-tree and predefined parameter names. Now, these containers can display any type of facet components, including custom ones. This change requires a migration of the facet configuration objects (defined by default in the config.ts files): The FacetConfig<T> is now parametric, requiring developers to specify what kind of configuration they contain (eg. FacetConfig<FacetListParams> for an sq-facet-list component. Please refer to the documentation of this module for more information.
    • allowAnd option added to the sq-facet-tree (same usage as for sq-facet-list)
    • Prevent sequential clicks in the sq-facet-tree to be merged with OR
    • Proper wrapping of the list of filters in the sq-facet-filters components, when there are too many filters to display on one line.
    • Fixed wrong number of items in facets (by default 11 instead of 10)
    • Fixed bug with null value selection in distributions
  • Search library (@sinequa/components/search):
    • When an http search request fails, stop the loading animation
    • Tabs (sq-tabs): Made the display of counters optional (showCounts parameter)
  • Preview library (@sinequa/components/preview):
    • Display the link to the PDF version of the file, when available
    • Fixed issue with the navigation history (requiring double clicks of the back button)
    • FIxed issue with minimap when there are no extract to display
  • Utils library (@sinequa/components/utils): Added fallback positions (fallbackPlacements) to the sq-tooltip directive
  • Saved queries library (@sinequa/components/saved-queries): Prevent app from breaking if multiple query exports are defined
  • Autocomplete library (@sinequa/components/autocomplete): Removed parsing of the query when fielded search if off
  • Recent documents & Recent queries: Fixed conversion of dates to/from UTC to avoid displaying wrong dates.
  • Action library (@sinequa/components/action): Fixed menus left open when nested within another dropdown menu
  • Result and Metadata libraries:
    • Better support of change detection (primarily to enhance the User Experience in UI Builder)
    • sq-result-title: Use the original document URL ("store original" option) when it exists and url1 is not available
  • Machine Learning library (@sinequa/components/machine-learning): 2 new components dedicated to the Neural Search user interface (sq-answer-card for displaying answers found by the "Answer Finder" model, and sq-passage-list for displaying the list of passages found by the "Passage Ranking" model)

Analytics library

  • Timeline library:
    • UI improvements to the sq-facet-date component (which is now used by default in Vanilla and Pepper)
    • New option to display a tooltip when hovering the datapoints of the timeline
  • Network component: Display real labels instead of aggregation names in network menus

SBA Framework 11.7.1

22 Mar 10:42
Compare
Choose a tag to compare

General changes:

⚠️ Migration to Bootstrap v5 and Popper.js v2: This migration introduces breaking changes! When migrating an existing app to this new version of the framework, please follow the official guide from Bootstrap.

Among the most impacting changes are the spacing classes used throughout the framework:

  • ml-* becomes ms-* ("s" stands for start)
  • mr-* becomes me-* ("e" stands for end)
  • same for padding: pl-* and pr-*

Why this new notation? For LTR/RTL language purpose (Left to Right/Right To Left)

  • If we are in LTR: "start" is "left" and "end" is "right" ("s" and "e" in the new notation)
  • If we are in RTL: "start" is "right" and "end" is "left", this is done automatically, no need to update UI for RTL language with this new notation.

Vanilla & Pepper

  • Refactored search template to use a results$ observable, making customization easier, and removing the need for a subscription.
  • Deactivate Gridster overflow when dropdown is shown (fixing cropped dropdown menus in Pepper)

Core library

  • Added a ccquery parameter to the function getColumn() to allow the use with other cc queries, default has been in case no value is set

Components library:

  • Action module: Allowed objects in dropdown-menu to get custom classes
  • Facet module: Support distributions with null values

Analytics library

  • New Date facet component (in timeline module), combining (optionally): a timeline, date pickers (from/to) and predefined facet items ("since 1 year")
  • Added clientSide option to sq-ag-grid if all data is already loaded and infinite scrolling is not required
  • Added cell renderer framework to column definitions for AG Grid
  • Fixed heatmap breadcrumbs bad selection
  • Added a loading flag to show the user when the heatmap's data is loading

SBA Framework 11.7.0

30 Nov 09:45
Compare
Choose a tag to compare

General changes

Migration from Angular 11 to 12.2: The migration has little impact on the source code of your application. See the official migration guide.
⚠️ However, you may encounter difficulties with your dependencies. We recommend completely deleting your node_modules folder, running npm clean cache and reinstalling it from scratch (npm install). If possible, use our provided package.json and package-lock.json as is. If you have modified these files (to install libraries), make sure to update your versions to reflect the changes we have made (like removing d3-format or setting specific versions of certain libraries).

⚠️ Code duplications: To minimize duplication of code between Vanilla and Pepper, we modified Pepper to reference files in the Vanilla project (like the search form, autocomplete and various stylesheets). Files are typically referenced with "@sinequa/vanilla" (an alias added in pepper/tsconfig.json). If you use the Pepper sample application you may either use this new structure (modify files in the Vanilla Search project), or use the legacy structure. A drawback of using the legacy structure is that your application will not be updated when we release new versions (only the Vanilla Search code will be updated).

Icons and logos: We updated Sinequa icons and logos across our applications and documentation.

The loading screens (defined in index.html) now use inline styles rather than Bootstrap to avoid a positioning glitch on start-up.

A new documentation page (Speed and Performance) explains how to use module lazy loading to speed-up complex applications (typically with multiple routes and "heavy" components).

Compilation errors on UNC paths (due to CSS stylesheet extensions) have been fixed.

@sinequa/core library:

New web service "Doc Builder": DocBuilderWebService allows to merge documents split by pages (PDF, Words, Powerpoints...). This is the service powering the new "Presentation Builder" module (see below).

New web service "Text Chunks": TextChunksWebService allows to fetch text from specific documents at specific locations. This is the service powering the new "entity tooltip" functionality (see below).

⚠️ Following a change in the query web service, the list of relevant extracts for each record has a new harmonized structure. This may affect your application if it makes use of this data (which is not the case in the standard Vanilla Search and Pepper application samples).

⚠️ Minor change in the Dataset web service: The get() method returns a Dataset type instead of a Results type.

@sinequa/components library:

New module: Slide Builder 🎉

New module to display a list of slide and a selection arranger to create a custom slide deck and export it. See documentation.

Search module:

  • Integration of Query Intent web service in the SearchService. See documentation to leverage Query intents in your SBA.
  • Infinite scroll: Added a visual indicator that more results are being loaded
  • Sort selector: Fixed error in the sort selector (with no sort action).

Facets module:

  • Facet tree/list:

    • Give the possibility to customize the list of facets for each tab (includedTabs, excludedTabs properties of FacetConfig)
    • Filters can be removed using the checkbox
    • Fixed facet list with integer values
  • Facet Filters:

    • New option to let users personalize their list of filters (enableCustomization). Developers must provide the complete list of facets and the default ones (See configuration of the facet bar)
    • Fixed tree facet closing unintentionally when clicking on the tree items
    • Set a minimum and maximum width for the dropdown facets
    • Made facet filters special states (filtered, disabled) more visible
  • Tag Cloud:

    • Fixed a tagcloud bug where the clear all filters wouldn't work when the Input aggregations was a string
    • Use column's alias instead of column's name to have consistent styles (defined in the metadata stylesheet).
  • Facet Card:

    • Add option collapseOnClickOutside so that it collapses once clicking outside (for dropdown behavior)

Preview module

  • New minimap component displaying the position of extracts in the document
  • Add a preview loading indicator
  • Jump to most relevant extract when preview opens
  • In entity facet (preview), i18n entity labels (like "Xxx[fr]Yyy") are properly displayed and formatted.
  • Fix extracts panel sort tooltip missing text

Metadata module

Metadata component: New option showEntityTooltip to display text surrounding entities in a tooltip. To enable this functionality, set this input to true and check "Include locations in the results" in the Query web service > Advanced > Entities section.

Results view module

When 'view' query params is missing, the default view is displayed

Result module

  • Results source component propagates clicks (to open the preview in Vanilla/Pepper)
  • Sponsored results: Tooltips are properly displayed

Utils module:

  • Fixed tooltip remaining visible in the top left of the screen
  • Tooltips can now display HTML asynchronously

User settings:

Refactored the user menu (integrated the dark mode button)

Baskets (aka collections):

Made baskets exportable (from "manage baskets" popup)

Autocomplete module:

Added a function to know if the field-search-items components has items or not.

@sinequa/analytics library:

AG Grid:

  • Integrated Sinequa facets and search service in ag-grid module for optimal search experience.
  • Fixed lost selection of records when filtering.

Heatmap:

Fixed ResultsHeatmapView selectView causing search to fail (make sure that searches complete before component is destroyed)

Charts:

  • Display aggregation labels instead of name in charts dropdown menus

Advanced form

  • Fixed styling of metadata in multi-input forms.

Pepper App:

  • Replaced pager by infinite scroll
  • Gave widgets specific default sizes (when adding from the "add widget" modal)
  • Added the treepath facet to Pepper's facet filters by default

SBA Framework 11.6.1

12 Jul 13:11
Compare
Choose a tag to compare
  • Multiple optimizations and bug fixes of the document navigator and preview module:
    • Improved navigation in the list of extracts
    • Better performance with large files
    • Fixed issues with Excel spreadsheets (eg. refresh the list of extracts when changing tabs)
    • Improved embedded tooltip positioning and display (fixed cropped tooltip on the sides and bottom of the preview)
    • Support entity formatting and internationalization (featured developed by Sword)
  • Tree facets are now searchable ([searchable]="true") by default. For an optimal experience, please check "Match the search terms anywhere in field values" in the autocomplete web service configuration (available as of Sinequa 11.6.0).
  • New option in facet filters (Pepper's horizontal facet bar) to let users customize the list of facets with [enableCustomization]="true" (feature developed by CTC).
  • New "comments" module in the @sinequa/components library to display a thread of comments attached to a document. Comments must be stored in a custom index, and accessed via a server-side plugin (which is provided along with the front-end code). Refer to the online documentation.
  • New "ag-grid" module in the @sinequa/analytics library to display a list of search results as a grid component powered by the AG Grid library. The module contains one component which is a sample integration of the AG Grid library (which can be used in many other ways). We implemented the "Infinite row model" supported by the library, which offers a great user experience compared to alternatives. We use the free version of the library ("Community"), but many additional options are available with the Enterprise version. Refer to the online documentation.
  • Improvements of the metadata module (documentation):
    • Display entity counts within a document (returned by the server as of Sinequa 11.6.1)
    • Collapse multi-valued metadata by default
    • Fixed inline display mode and general look & feel
    • Removed the "spacing" parameter
    • Simplified styling of the library
    • Removed entity-summary component and result-metadata (now redundant)
  • Optimization and bug fixes in the timeline module (selection boundaries hidden out of viewport, fixed behavior when series are reduced to a single point) and new "legend" component which can be displayed with [showLegend]="true" (Refer to the documentation).
  • Refactoring and optimization of the action module.
  • Refactoring of module dependencies to enable lazy loading of routes (See Angular documentation), which is now supported (but not implemented by default) in Vanilla Search.
  • New option to reset all user settings in the user top-right menu.
  • Fixed cropped drop-down/drop-up menus in Pepper.
  • Fixed a breaking change in the "user ratings" component.
  • Multiple improvements of audit events (to support the new Usage Analytics SBA released in Sinequa 11.6.1).
  • Added a warning when editing but not saving an alert.
  • Fixed the behavior of the app for 403 errors (forbidden access).

SBA Framework 11.6.0

19 May 08:05
451fe6d
Compare
Choose a tag to compare
  • General refactoring of the SBA libraries:
    • The @sinequa/components library has been refactored as 2 libraries (@sinequa/components and @sinequa/analytics). The new analytics library contains the most advanced components from the former library (charts, heatmap, network, map, timeline), and we will keep developing new modules featuring similar advanced integrations.
    • References to the material design library have been removed. Only the components based on the Bootstrap library remain.
    • The tslint configuration has been replaced with eslint configuration.
    • Our 3 libraries are now published to npm (we will publish them every time we release a new version of the code on Github).
  • Preview optimization & improvements:
    • General performance optimization to speed up the loading time of the preview, particularly with large number of pages
    • Optimization of the extract panel on the left, to handle a large number of extracts
    • Display of the document title & original URL at the top of the document navigator
    • Improvement of the preview tooltip look & feel (dynamic scale & positioning)
    • Custom user interface for documents split by pages with document splitter
    • The preview facet (visible in Vanilla & Pepper) now has action buttons to toggle the visibility of entities & extracts highlights
    • We added the possibility to remove the sandbox attribute of the preview iframe (by passing null, which can be required in some situations)
  • Facets:
    • New tag cloud facet component. Documentation available here. This component was added to Pepper's palette of components.
    • Refactored my-search facet component with new options & styling. Documentation available here. Note that this component replaces the breadcrumbs component in both Vanilla & Pepper (the component is not displayed with a facet card, but simply above the list of results).
    • Handling of excluded items in list facets
    • List facets now have an option to display a visual bar proportional to the number of items
  • New functionalities added to the main search form of Vanilla & Pepper (which are now fully identical):
    • Inline button to clear the form
    • Inline button to keep current filters (eg. facets) active for a new search (false by default)
    • Inline button to search by speaking (the button is not shown by default, as it relies on querying Google's servers)
    • Inline button to display an advanced form (not shown on Pepper by default)
    • The above options can all be turned on or off by commenting or uncommenting the features in config.ts (or alternatively by passing these options via the "Customization (JSON)" tab of the application's configuration - See configuration).
    • The search form now handles a long list of fielded search "badges" by scrolling horizontally (with additional left/right buttons)
  • New web services added to the @sinequa/core library:
    • DatasetWebService: allows to fetch data from the new Dataset web service (currently in beta) as an alternative to the query web service.
    • QueryIntentWebService: allows to analyze a user's query to infer its intent, using the latest query intent integration on the Sinequa server (currently in beta).
  • New audit events added:
    • Navigation events: We now record navigation between routes of the applications, as well as leaving the app and returning (navigation.home, navigation.exit, etc.)
    • Timeline filtering (from, to)
    • Autocomplete selection
    • Application logout
  • The analytics library contains a new "finance" module containing 2 components for displaying amounts of money extracted from documents. Documentation available here. These components have been added to Pepper's palette of components.
  • Minor improvements to the network component's performance & API
  • New options/behaviors added to the sq-result-title component
  • The user ratings component does not display empty messages any more
  • Delegated admins can now navigate to the administration from the user menu
  • New documentation page on the SBA startup lifecycle available here.