This repository contains TypeScript code that wraps Wijmo FlexGrid for OutSystems Reactive Web applications, along with a .NET extension for server-side data preparation.
- Node.js 12 or higher (see
enginesinpackage.json) - Visual Studio Code (recommended) with extensions listed in
.vscode/extensions.json - For .NET extension work: Visual Studio with .NET Framework 4.7.2
npm run setupThis installs dependencies and starts development mode with browser-sync on port 3000.
Create branches from dev using the JIRA ticket identifier:
git checkout dev && git pull
git checkout -b ROU-12345Branch names follow the pattern <JIRA-ID> (e.g., ROU-12345, RGRIDT-1051).
Include the JIRA ticket ID and a brief description:
ROU-12345: Add new feature for data export
Must match the regex ^([A-Z][A-Z0-9]*-\d+(:)?\s\w) -- for example, ROU-12345: Add CSV export support. Release and merge branches are exempt from this check.
At least one required: feature, bug, bugfix, dependencies, dependency, chore.
Must NOT have the do not merge label.
Use the template (.github/pull_request_template.md) which asks for:
- Link to a sample page demonstrating the change
- What was happening (issue description)
- What was done (solution description)
- Test steps and screenshots (animated GIFs preferred)
- Checklist confirmation (local testing, documentation, ESLint clean)
Requires approval from a UI Components team member. Code ownership is defined in .github/CODEOWNERS (@OutSystems/rd-ui-components).
PRs targeting dev trigger an automated build (npm install then npm run build). PR title and label validations also run automatically.
| Command | Description |
|---|---|
npm run setup |
Install dependencies and start dev mode |
npm run build |
Production build + lintfix + lint |
npm run dev |
Start dev server (browser-sync, port 3000) |
npm run lint |
Check TypeScript code style (ESLint) |
npm run lintfix |
Auto-fix ESLint issues |
npm run prettier |
Format all JS/TS/CSS files |
npm run docs |
Generate TypeDoc documentation |
npm run build must pass without errors or warnings before submitting a PR.
For changes to the DataGridUtils extension (extension/DataGridUtils/Source/NET/):
- Open
extension/DataGridUtils/Source/NET/DataGridUtils.slnin Visual Studio - Build targeting .NET Framework 4.7.2
- Run console tests in
extension/tests/DataGridUtils.Tests.csproj
Do not modify files under extension/DataGridUtils/Templates/NET/ -- those are auto-generated by Integration Studio.
Browser-based integration tests live in a separate private repository (WebDriverIO + Cucumber).
Enforced by .eslintrc.json and .prettierrc.json. Run npm run lintfix before committing.
Naming conventions (enforced by @typescript-eslint/naming-convention):
| Selector | Format | Underscore |
|---|---|---|
| Exported functions | StrictPascalCase |
-- |
| Classes | StrictPascalCase |
-- |
| Interfaces | IStrictPascalCase |
prefix with I |
| Private properties | _strictCamelCase |
leading required |
| Public/protected props | strictCamelCase |
leading forbidden |
| Private methods | _strictCamelCase |
leading required |
| Public/protected methods | strictCamelCase |
leading forbidden |
Member ordering (enforced by @typescript-eslint/member-ordering):
Classes: signature, private fields, protected fields, public fields, constructor, private methods, protected methods, public methods, abstract methods -- alphabetically within each group.
Formatting (Prettier): tabs (width 4), single quotes, semicolons required, 120-char line width, ES5 trailing commas.
Documentation: Use JSDoc comments on all public APIs. The "Document This" VS Code extension generates stubs when you type /** above a function.
- Keep changes scoped to the relevant JIRA ticket
- Do not modify vendored Wijmo type definitions in
src/@types/ - Do not expose sensitive information (server URLs, credentials)
- Forge Discussions: Component support page
- Internal Slack:
#rd-uicomponents-contributors(OutSystems employees) - Trusted Committers: Available on Slack business days 2PM-3PM PT
- Support Email: rd.uicomponents.team@outsystems.com
- Living Documentation
- Forge Component - O11
- Forge Component - ODC
- Sample Application
- Tutorial: Data Grid in less than 4 minutes
This repository belongs to OutSystems. All rights reserved. See LICENSE for details.