Package Name | UMD Namespace | Version | License | Downloads | Contains CSS | Contains i18n locales |
---|---|---|---|---|---|---|
@univerjs/uniscript |
UniveUniscript |
⭕️ | ⭕️ |
@univerjs/uniscript
uses the DSL (Domain-Specific Language) provided by @univerjs/facade
and creates a code editor for Users to write code for operating Univer's data structures and business logic.
Users can write business logic in the code editor to meet more flexible business requirements. For instance, as shown in the illustration, users can write a Uniscript to read identity card numbers from a selected area and validate their legality, and mark the background of invalid identity card numbers with red.
[!CAUTION] The Uniscript is currently in the experimental stage, and it is not recommended to use it in production environments. You can refer to the Roadmap to understand the iteration plan of Uniscript.
[!TIP] Indeed, Uniscript's Domain-Specific Language (DSL) is a set of Facade APIs that encapsulate the internal implementation details of Univer. This API is defined here.
# Using npm
npm install @univerjs/uniscript
# Using pnpm
pnpm add @univerjs/uniscript
The @univerjs/uniscript
uses Monaco Editor as its code editor. You can obtain an instance of the editor through the following method:
const editor = univer.__getInjector().get(ScriptEditorService).getEditorInstance();
Or inject ScriptEditorService
into your module to obtain the editor instance.
export class YourModule {
constructor(
@Inject(ScriptEditorService) private readonly _scriptEditorService
) {}
private _getEditor() {
return this._scriptEditorService.getEditorInstance();
}
}