Front end add-on library
[Plotter Component]
- Resolve inconsistent line styles.
- Changed input properties
lineColorDeterminer: 'code' | 'name' | 'test'
lineStyleDeterminer: 'code' | 'name' | 'test'
Removed options
auto
andsolid
(leave empty to use default (auto) behaviour).
[ReportPlotter Component] new optional input properties
lineColorDeterminer: 'code' | 'name' | 'test'
lineStyleDeterminer: 'code' | 'name' | 'test'
- Requires and supports Angular 16 and Angular Material 16
- Requires scale-chart@^7.2.3
- [Plotter Component] Fix saving chart templates, Fix handling of deleted plots in templates
- [Plotter Component] Upgrading scale-chart to version 7.2.3
- Replace REST API endpoints with GraphQL endpoints
- [Report Video Group Component] - video duration timeline correction
- [Addon Runner] - Support input archive (file upload) for customtool task which allows to pass frontend params as a json file
- [Test Selection Component] - added a component to select tests along with some basic configurations required for reports
- [Report Output Format Component] - added a component to select different report output formats e.g. pdf, pptx, a4db
- [Report Plotter Component] - convert test UUID to relay ID required by plotting to use templates
- [Custom Tool Wrapper Component] - CSS fix
- [Selection Tree Component] - fixes form-fields style
- [Plotter Component] - share/unshare/update template
- [Selection Tree Component] - fixed height tree style fix
- [Selection Tree Component] - style fix
- Requires and supports Angular 15 and Angular Material 15
- Requires scale-chart@>=7.0.0
- [Plotter Component] / [Report Plotter Component]:
- Option to restrict loading of attachments
- More uniform curve styling
- Support of multiple y-axes in plot templates.
- 35: replace TestAttribute property iso-code with isoCode
- [Report Plotter Component] - null object in report plotter fixed
- scale.result version >= 0.56 is now required
[w3syse-addon-library] Folder structure has been changed as per logical requirements of a module
- Removed extra nesting folders like frontend and lib
- Removed app folder and its components
- [addon-base] folder can now be accessed as a secondary import like
@scale/w3syse-addon-library/addon-base
- this folder now does not contain selection tree , spinner component
- [report] folder can now be accessed as a secondary import like
@scale/w3syse-addon-library/report
- [plotting] folder can now be accessed as a secondary import like
@scale/w3syse-addon-library/plotting
- [intersection-observer] folder can now be accessed as a secondary import like
@scale/w3syse-addon-library/intersection-observer
- [models] folder can now be accessed as a secondary import like
@scale/w3syse-addon-library/models
- [selection-tree] folder can now be accessed as a secondary import like
@scale/w3syse-addon-library/selection-tree
- [spinner] folder can now be accessed as a secondary import like
@scale/w3syse-addon-library/spinner
- [utils] folder can now be accessed as a secondary import like
@scale/w3syse-addon-library/utils
- [units] folder can now be accessed as a secondary import like
@scale/w3syse-addon-library/units
- this folder contains all unit pipe
- [client-state] folder can now be accessed as a secondary import like
@scale/w3syse-addon-library/client-state
- [graphqlTypes] folder can now be accessed as a secondary import like
@scale/w3syse-addon-library/graphql-types
All stories are now aligned with their respective components
All REST endpoints has been changed to Graphql endpoints
Error will be shown as Typescript check has been enabled for unused imports and variables
- [Plotter Component] Implementation of the template feature
- [Plotter Component] Upgrading scale-chart to version 5.0.0
- [Plotter Component] Channels regex inputs are accepted and will return all channels after matching regex
- [Apollo-Cache] Fixed field policies of apollo client cache
- [Selection Tree Component] Pre-selected nodes propagate the correct selection state to its parents
- [Plotter Component] Plot data which has to be fetched from an external backend is now show after it is downloaded
- [Plotter Component] Upgrading to latest scale-chart version
- [Plotter Component] Implementation of one main plotter component which is also used in reports
- [Plotter Component] Restructuring of the plotting module with regard to the upcoming implementation of the template feature
- [Plotter Component] Reloading channels based on user-defined conditions
- Fetching add-ons works again with the latest API schema
- [Selection Tree Component] Remove the possibility to specify selected nodes via a node attribute.
Selected nodes have to be specified via the component input
selected
.
- Add Client State Service to cope with client states
- [Selection Tree Component] The tree header is responsive now
- [Selection Tree Component] Deselecting a node where all child nodes have been selected updates the selection state correctly now.
- [Selection Tree Component] Implements the
ControlValueAccessor
interface and can be used in forms - [Report Plotter Component] Update scale-chart to version 2.0.4
- [Convert Unit Pipe] No error is thrown if missing units are provided as empty string.
- [Report Plotter Component] Replace plotly with new Plotter Component
- needs @scale-dev/scale-chart@1.2.1, @scale-dev/sui-elements@2.0.6, @scale-dev/curves@0.7.1
- deprecated and ignored input properties: “multiYAxis”, “layoutConfig”
- [API] API calls (getPlotData) have been updated. scale.result version > 0.49 is now required
- [API] API calls (runCustomTool) have been updated to include comment. scale.result version > 0.49 is now required
- [Convert Unit Pipe] Changed interface to the ConvertUnitPipe. Now takes an option object instead of the from and to parameters.
- When not defining from unit the pipe now assumes the unit is in SI format
- Added support for %, ‰ symbols as units
- [Plotter Component] New component which is wrapper around the scale-chart element.
- Removed dependency on
ngOnDestroyMixin
- Fix initialization of IntersectionObserverDirective (conditional start of observing depending on input property)
- Add babel to transform es-modules before testing.
- Mock IntersectionObserver and ResizeObserver globally in jest setup.
- [Selection Tree Component] Selection of parent nodes no longer selects disabled nodes
- [Selection Tree Component] Fix selection warning messages
- [Selection Tree Component] Add disabled and warning icons
- Query to fetch all add-ons is updated to fetch the uploader’s display name instead of first and last name (requires scale.result version of at least 0.48)
- Fix regression from 8.2.0: Add-ons that are added via the custom-tool-wrapper component are not displayed
- Add unit definition for Jy to
ConvertUnitPipe
- Add plotting - Channel loader service
- Add intersection observer directive
- Remove add-on status updates via custom websockets. Instead, GraphQL subscriptions are used (requires scale.result version of at least 0.46)
- Remove deprecated angular flex-layout package
- Automatic resizing of photos and videos in reports
- Update video slider when videos are playing in report video groups
- Add video slider to video group to simultaneously step through videos
- Remove height and width on custom tool wrapper which prevented sticky elements with the add-on
- Requires and supports Angular 14 and Angular Material 14
- ng2-pdfjs-viewer requires v14
- apollo-angular requires a version greater than 4.2.0
- the graphql packages requires v16
- plotly.js requires a version greater than 2.0.0
- Fix infinite loading animation in report bar chart plotter
- Fix display of images in report photo group
- Fix report plotter component is not able to initialize expression parser
- Update node to v16.19.0
- The expression parser is not a separate project any more but included directly in the library
- Add GraphQL mocks for report plotter stories
- Fix different webpack versions between angular and storybook
Package is now published to https://npm.service.scale. You need to adjust your registry settings accordingly:
- .yarnrc.yaml
npmScopes: scale: npmRegistryServer: "https://npm.service.scale"
- .npmrc
@scale:registry=https://npm.service.scale
- Requires Angular 13+ and Angular Material 13+
- ng2-pdfjs-viewer requires v13+
- Use yarn as package manager for the project
- Adjust add-on models to use the new add-on types with versions (requires Scale.result v0.40.0 or higher)
- Load add-ons via GraphQL request
- Fix ESLint config
Remove the
HttpClientModule
import and the provider for the CSRF interceptor from the Add-on Base Module.If you import
HttpClientModule
multiple times across different modules, each import creates a new copy of theHttpClientModule
, which overwrites the interceptors provided in the root module. You need to importHttpClientModule
and provide the CSRF interceptor in the main application:import { HTTP_INTERCEPTORS, HttpClientModule } from '@angular/common/http'; import { DoBootstrap, NgModule } from '@angular/core'; import { AddonBaseModule, CsrfInterceptor } from '@scale/w3syse-addon-library'; @NgModule({ imports: [ AddonBaseModule, HttpClientModule ], providers: [ { provide: HTTP_INTERCEPTORS, useClass: CsrfInterceptor, multi: true }, ] }) export class AppModule implements DoBootstrap {}
- Fix: Toggle button in selection tree submitted the form
- Remove BrowserAnimationModule from AddonBaseModule as this might clash with the application’s imports. The application is responsible for importing the appropriate module.
- Add expand/collapse buttons, reset button, and select/unselect all buttons to the selection-tree component
- Add text filter and a filter for selected/unselected nodes to selection-tree component
- Add GraphQL support
- Add GraphQL subscriptions for test attachments in order to get notified if the files become available on the server
- Remove the dependency on the material icon font and use SVG images instead
- Add bar plots
- The test attribute component now supports colorization depending on thresholds
- The test attributes component now supports regex to select attributes
- Video component has a new input to set the width of the video.
- Fix: Video component uses the web video derivative of a video attachment instead of the original file
- Performance Improvements:
- Lazy loading of images
- Lazy loading of channel plots
- Do not preload movies
- Add input
expandedLevels
to selection tree that allows to set the level of tree nodes which are expanded by default
- Report Plotter component supports expressions on channel codes
- Report Plotter component supports regular expressions for channel codes
- Report Plotter component supports unit conversion
- Support for Angular 12 and Angular Material 12
Fix: Channels get added multiple times when selection changes in report plotter
Note: The input attributes for the report plotter have changed.
channels
has been renamed totestAttachments
andtests
has been added. This follows the same pattern as for all other report components.
- Report Plotter component supports multiple y-axes in one plot
- Report Plotter component takes an array of channel codes instead of a single channel code as input
- Add selection input for selection tree
- Re-structure into several modules.
- Update math.js to version greater 8.0.0
- Update peer dependencies to include angular 11
- Switch from tslint to eslint
- Added table of contents component
- Added reporting components
- Added unit pipe and math.js dependency
The add-on service is no longer provided in the root injector, instead you should provide it in your add-on component. Otherwise, add-ons are conflicting with each other and are not properly scoped.
@Component({ providers: [W3syseAddonService], }) export class MainComponent { }
Added
math.js
Added
plotly.js
andangular-plotly.js
Note: plotly.js needs to be available as global object. Therefore, add it in angular.json as a build option
{ "architect": { "build": { "builder": "@angular-devkit/build-angular:browser", "options": { "scripts": ["node_modules/plotly.js/dist/plotly.min.js"] } } } }
and import
angular-plotly.js
viaimport { PlotlyViaWindowModule } from 'angular-plotly.js';
- Pre-select only leaf nodes in selection tree to fix wrong checkbox state
- Add selection tree
- Add extra params to addon-runner
- Switch from Token Authentication to Session Authentication via Session Cookies
- Add CSRF interceptor for all AJAX requests
Initial version with frontend components for reports:
- Angular component to trigger a backend task
- Angular component to show a list of files within an task artifact archive