build(deps-dev): bump eslint from 8.57.1 to 9.13.0 (#2792)
* build(deps-dev): bump eslint from 8.57.1 to 9.13.0 Bumps [eslint](https://github.com/eslint/eslint) from 8.57.1 to 9.13.0. - [Release notes](https://github.com/eslint/eslint/releases) - [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md) - [Commits](https://github.com/eslint/eslint/compare/v8.57.1...v9.13.0) --- updated-dependencies: - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> * Upgrade EsLint * Fix all new lint errors --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Dolan Miu <dolan_miu@hotmail.com>
This commit is contained in:
3
.vscode/settings.json
vendored
3
.vscode/settings.json
vendored
@ -5,5 +5,6 @@
|
|||||||
"editor.formatOnSave": false,
|
"editor.formatOnSave": false,
|
||||||
"prettier.tabWidth": 4,
|
"prettier.tabWidth": 4,
|
||||||
"prettier.arrowParens": "always",
|
"prettier.arrowParens": "always",
|
||||||
"prettier.bracketSpacing": true
|
"prettier.bracketSpacing": true,
|
||||||
|
"eslint.useFlatConfig": true
|
||||||
}
|
}
|
||||||
|
370
eslint.config.ts
Normal file
370
eslint.config.ts
Normal file
@ -0,0 +1,370 @@
|
|||||||
|
import eslint from "@eslint/js";
|
||||||
|
import type { Linter } from "eslint";
|
||||||
|
import importPlugin from "eslint-plugin-import";
|
||||||
|
import unicorn from "eslint-plugin-unicorn";
|
||||||
|
import jsdoc from "eslint-plugin-jsdoc";
|
||||||
|
import preferArrow from "eslint-plugin-prefer-arrow";
|
||||||
|
import functional from "eslint-plugin-functional";
|
||||||
|
import globals from "globals";
|
||||||
|
import tsEslint from "typescript-eslint";
|
||||||
|
|
||||||
|
const config: Linter.Config<Linter.RulesRecord>[] = [
|
||||||
|
{
|
||||||
|
ignores: ["**/vite.config.ts", "**/build/**", "**/coverage/**", "**/*.js", "eslint.config.ts", "**/demo/**", "**/scripts/**"],
|
||||||
|
},
|
||||||
|
eslint.configs.recommended,
|
||||||
|
importPlugin.flatConfigs.recommended,
|
||||||
|
...tsEslint.configs.recommended,
|
||||||
|
...tsEslint.configs.stylistic,
|
||||||
|
{
|
||||||
|
files: ["**/src/**/*.ts"],
|
||||||
|
plugins: {
|
||||||
|
unicorn,
|
||||||
|
jsdoc,
|
||||||
|
"prefer-arrow": preferArrow,
|
||||||
|
functional,
|
||||||
|
},
|
||||||
|
|
||||||
|
languageOptions: {
|
||||||
|
parserOptions: {
|
||||||
|
projectService: true,
|
||||||
|
tsconfigRootDir: import.meta.dirname,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
settings: {
|
||||||
|
"import/resolver": {
|
||||||
|
typescript: true,
|
||||||
|
node: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
rules: {
|
||||||
|
"no-undef": "off",
|
||||||
|
"no-extra-boolean-cast": "off",
|
||||||
|
"no-alert": "error",
|
||||||
|
"no-self-compare": "error",
|
||||||
|
"no-unreachable-loop": "error",
|
||||||
|
"no-template-curly-in-string": "error",
|
||||||
|
"no-unused-private-class-members": "error",
|
||||||
|
"no-extend-native": "error",
|
||||||
|
"no-floating-decimal": "error",
|
||||||
|
"no-implied-eval": "error",
|
||||||
|
"no-iterator": "error",
|
||||||
|
"no-lone-blocks": "error",
|
||||||
|
"no-loop-func": "error",
|
||||||
|
"no-new-object": "error",
|
||||||
|
"no-proto": "error",
|
||||||
|
"no-useless-catch": "error",
|
||||||
|
"one-var-declaration-per-line": "error",
|
||||||
|
"prefer-arrow-callback": "error",
|
||||||
|
"prefer-destructuring": "error",
|
||||||
|
"prefer-exponentiation-operator": "error",
|
||||||
|
"prefer-promise-reject-errors": "error",
|
||||||
|
"prefer-regex-literals": "error",
|
||||||
|
"prefer-spread": "error",
|
||||||
|
"prefer-template": "error",
|
||||||
|
"require-await": "error",
|
||||||
|
"@typescript-eslint/adjacent-overload-signatures": "error",
|
||||||
|
|
||||||
|
"@typescript-eslint/array-type": [
|
||||||
|
"error",
|
||||||
|
{
|
||||||
|
default: "array",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
|
||||||
|
"@typescript-eslint/no-restricted-types": [
|
||||||
|
"error",
|
||||||
|
{
|
||||||
|
types: {
|
||||||
|
Object: {
|
||||||
|
message: "Avoid using the `Object` type. Did you mean `object`?",
|
||||||
|
fixWith: "object",
|
||||||
|
},
|
||||||
|
|
||||||
|
Function: {
|
||||||
|
message: "Avoid using the `Function` type. Prefer a specific function type, like `() => void`.",
|
||||||
|
},
|
||||||
|
|
||||||
|
Boolean: {
|
||||||
|
message: "Avoid using the `Boolean` type. Did you mean `boolean`?",
|
||||||
|
fixWith: "boolean",
|
||||||
|
},
|
||||||
|
|
||||||
|
Number: {
|
||||||
|
message: "Avoid using the `Number` type. Did you mean `number`?",
|
||||||
|
fixWith: "number",
|
||||||
|
},
|
||||||
|
|
||||||
|
String: {
|
||||||
|
message: "Avoid using the `String` type. Did you mean `string`?",
|
||||||
|
fixWith: "string",
|
||||||
|
},
|
||||||
|
|
||||||
|
Symbol: {
|
||||||
|
message: "Avoid using the `Symbol` type. Did you mean `symbol`?",
|
||||||
|
fixWith: "symbol",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
|
||||||
|
"@typescript-eslint/consistent-type-assertions": "error",
|
||||||
|
"@typescript-eslint/dot-notation": "error",
|
||||||
|
|
||||||
|
"@typescript-eslint/explicit-function-return-type": [
|
||||||
|
"error",
|
||||||
|
{
|
||||||
|
allowExpressions: true,
|
||||||
|
allowTypedFunctionExpressions: true,
|
||||||
|
allowHigherOrderFunctions: false,
|
||||||
|
allowDirectConstAssertionInArrowFunctions: true,
|
||||||
|
allowConciseArrowFunctionExpressionsStartingWithVoid: true,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
|
||||||
|
"@typescript-eslint/explicit-member-accessibility": [
|
||||||
|
"error",
|
||||||
|
{
|
||||||
|
accessibility: "explicit",
|
||||||
|
|
||||||
|
overrides: {
|
||||||
|
accessors: "explicit",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
|
||||||
|
"@typescript-eslint/explicit-module-boundary-types": [
|
||||||
|
"error",
|
||||||
|
{
|
||||||
|
allowArgumentsExplicitlyTypedAsAny: true,
|
||||||
|
allowDirectConstAssertionInArrowFunctions: true,
|
||||||
|
allowHigherOrderFunctions: false,
|
||||||
|
allowTypedFunctionExpressions: false,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
|
||||||
|
"@typescript-eslint/naming-convention": [
|
||||||
|
"error",
|
||||||
|
{
|
||||||
|
selector: ["objectLiteralProperty"],
|
||||||
|
leadingUnderscore: "allow",
|
||||||
|
format: ["camelCase", "PascalCase", "UPPER_CASE"],
|
||||||
|
|
||||||
|
filter: {
|
||||||
|
regex: "(^[a-z]+:.+)|_attr|[0-9]",
|
||||||
|
match: false,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
|
||||||
|
"@typescript-eslint/no-empty-function": "error",
|
||||||
|
"@typescript-eslint/no-empty-interface": "error",
|
||||||
|
"@typescript-eslint/no-explicit-any": "error",
|
||||||
|
"@typescript-eslint/no-misused-new": "error",
|
||||||
|
"@typescript-eslint/no-namespace": "error",
|
||||||
|
"@typescript-eslint/no-parameter-properties": "off",
|
||||||
|
"@typescript-eslint/no-require-imports": "error",
|
||||||
|
|
||||||
|
"@typescript-eslint/no-shadow": [
|
||||||
|
"error",
|
||||||
|
{
|
||||||
|
hoist: "all",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
|
||||||
|
"@typescript-eslint/consistent-type-definitions": ["error", "type"],
|
||||||
|
|
||||||
|
"@typescript-eslint/no-this-alias": "error",
|
||||||
|
"@typescript-eslint/no-unused-expressions": "error",
|
||||||
|
"@typescript-eslint/no-use-before-define": "off",
|
||||||
|
"@typescript-eslint/no-var-requires": "error",
|
||||||
|
"@typescript-eslint/prefer-for-of": "error",
|
||||||
|
"@typescript-eslint/prefer-function-type": "error",
|
||||||
|
"@typescript-eslint/prefer-namespace-keyword": "error",
|
||||||
|
"@typescript-eslint/prefer-readonly": "error",
|
||||||
|
|
||||||
|
"@typescript-eslint/triple-slash-reference": [
|
||||||
|
"error",
|
||||||
|
{
|
||||||
|
path: "always",
|
||||||
|
types: "prefer-import",
|
||||||
|
lib: "always",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
|
||||||
|
"@typescript-eslint/typedef": [
|
||||||
|
"error",
|
||||||
|
{
|
||||||
|
parameter: true,
|
||||||
|
propertyDeclaration: true,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
|
||||||
|
"@typescript-eslint/no-inferrable-types": "off",
|
||||||
|
|
||||||
|
"@typescript-eslint/unified-signatures": "error",
|
||||||
|
"arrow-body-style": "error",
|
||||||
|
complexity: "off",
|
||||||
|
"consistent-return": "error",
|
||||||
|
"constructor-super": "error",
|
||||||
|
curly: "error",
|
||||||
|
"dot-notation": "off",
|
||||||
|
eqeqeq: ["error", "smart"],
|
||||||
|
"guard-for-in": "error",
|
||||||
|
|
||||||
|
"id-denylist": ["error", "any", "Number", "number", "String", "string", "Boolean", "boolean", "Undefined", "undefined"],
|
||||||
|
|
||||||
|
"id-match": "error",
|
||||||
|
"import/no-default-export": "error",
|
||||||
|
"import/no-extraneous-dependencies": "off",
|
||||||
|
"import/no-internal-modules": "off",
|
||||||
|
"sort-imports": [
|
||||||
|
"error",
|
||||||
|
{
|
||||||
|
allowSeparatedGroups: true,
|
||||||
|
ignoreDeclarationSort: true,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
"import/order": [
|
||||||
|
"error",
|
||||||
|
{
|
||||||
|
groups: [["external", "builtin"], "internal", ["sibling", "parent", "index"]],
|
||||||
|
"newlines-between": "always",
|
||||||
|
pathGroups: [
|
||||||
|
{ pattern: "@file/**/*", group: "internal" },
|
||||||
|
{ pattern: "@file/**", group: "internal" },
|
||||||
|
{ pattern: "@export/**", group: "internal" },
|
||||||
|
],
|
||||||
|
pathGroupsExcludedImportTypes: ["internal"],
|
||||||
|
alphabetize: {
|
||||||
|
order: "asc",
|
||||||
|
caseInsensitive: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
indent: "off",
|
||||||
|
"jsdoc/check-alignment": "error",
|
||||||
|
"jsdoc/check-indentation": "off",
|
||||||
|
"max-classes-per-file": "off",
|
||||||
|
"max-len": "off",
|
||||||
|
"new-parens": "error",
|
||||||
|
"no-bitwise": "error",
|
||||||
|
"no-caller": "error",
|
||||||
|
"no-cond-assign": "error",
|
||||||
|
"no-console": "error",
|
||||||
|
"no-debugger": "error",
|
||||||
|
"no-duplicate-case": "error",
|
||||||
|
"no-duplicate-imports": "error",
|
||||||
|
"no-empty": "error",
|
||||||
|
"no-empty-function": "off",
|
||||||
|
"no-eval": "error",
|
||||||
|
"no-extra-bind": "error",
|
||||||
|
"no-fallthrough": "off",
|
||||||
|
"no-invalid-this": "off",
|
||||||
|
"no-multiple-empty-lines": "error",
|
||||||
|
"no-new-func": "error",
|
||||||
|
"no-new-wrappers": "error",
|
||||||
|
"no-param-reassign": "error",
|
||||||
|
"no-redeclare": "error",
|
||||||
|
"no-return-await": "error",
|
||||||
|
"no-sequences": "error",
|
||||||
|
"no-shadow": "off",
|
||||||
|
"no-sparse-arrays": "error",
|
||||||
|
"no-throw-literal": "error",
|
||||||
|
"no-trailing-spaces": "error",
|
||||||
|
"no-undef-init": "error",
|
||||||
|
|
||||||
|
"no-underscore-dangle": [
|
||||||
|
"error",
|
||||||
|
{
|
||||||
|
allow: ["_attr"],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
|
||||||
|
"no-unsafe-finally": "error",
|
||||||
|
"no-unused-expressions": "off",
|
||||||
|
"no-unused-labels": "error",
|
||||||
|
"no-use-before-define": "off",
|
||||||
|
"no-useless-constructor": "error",
|
||||||
|
"no-var": "error",
|
||||||
|
"object-shorthand": "off",
|
||||||
|
"one-var": ["error", "never"],
|
||||||
|
"prefer-arrow/prefer-arrow-functions": "error",
|
||||||
|
"prefer-const": "error",
|
||||||
|
"prefer-object-spread": "error",
|
||||||
|
radix: "error",
|
||||||
|
"space-in-parens": ["error", "never"],
|
||||||
|
|
||||||
|
"spaced-comment": [
|
||||||
|
"error",
|
||||||
|
"always",
|
||||||
|
{
|
||||||
|
markers: ["/"],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
|
||||||
|
"unicorn/filename-case": "error",
|
||||||
|
"unicorn/prefer-ternary": "error",
|
||||||
|
"use-isnan": "error",
|
||||||
|
"valid-typeof": "off",
|
||||||
|
|
||||||
|
"functional/immutable-data": [
|
||||||
|
"error",
|
||||||
|
{
|
||||||
|
ignoreImmediateMutation: true,
|
||||||
|
ignoreAccessorPattern: ["**.root*", "**.numberingReferences*", "**.sections*", "**.properties*"],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
|
||||||
|
"functional/prefer-property-signatures": "error",
|
||||||
|
"functional/no-mixed-types": "error",
|
||||||
|
"functional/prefer-readonly-type": "error",
|
||||||
|
|
||||||
|
"@typescript-eslint/no-unused-vars": [
|
||||||
|
"error",
|
||||||
|
{
|
||||||
|
argsIgnorePattern: "^[_]+$",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
files: ["**/*.spec.ts"],
|
||||||
|
plugins: {
|
||||||
|
unicorn,
|
||||||
|
jsdoc,
|
||||||
|
"prefer-arrow": preferArrow,
|
||||||
|
functional,
|
||||||
|
},
|
||||||
|
languageOptions: {
|
||||||
|
globals: {
|
||||||
|
...globals.browser,
|
||||||
|
...globals.node,
|
||||||
|
},
|
||||||
|
|
||||||
|
sourceType: "module",
|
||||||
|
|
||||||
|
parserOptions: {
|
||||||
|
projectService: true,
|
||||||
|
tsconfigRootDir: import.meta.dirname,
|
||||||
|
project: ["tsconfig.json"],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
rules: {
|
||||||
|
"@typescript-eslint/no-unused-expressions": "off",
|
||||||
|
"@typescript-eslint/dot-notation": "off",
|
||||||
|
"prefer-destructuring": "off",
|
||||||
|
"@typescript-eslint/explicit-function-return-type": "off",
|
||||||
|
"no-unused-vars": [
|
||||||
|
"error",
|
||||||
|
{
|
||||||
|
argsIgnorePattern: "^[_]+$",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
export default config;
|
1935
package-lock.json
generated
1935
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
11
package.json
11
package.json
@ -22,7 +22,7 @@
|
|||||||
"test": "vitest --ui --coverage",
|
"test": "vitest --ui --coverage",
|
||||||
"test:ci": "vitest run --coverage",
|
"test:ci": "vitest run --coverage",
|
||||||
"prepublishOnly": "npm run build --omit=dev",
|
"prepublishOnly": "npm run build --omit=dev",
|
||||||
"lint": "eslint --ext .ts src",
|
"lint": "eslint --flag unstable_ts_config --config eslint.config.ts",
|
||||||
"predemo": "npm run build",
|
"predemo": "npm run build",
|
||||||
"demo": "tsx ./demo/index.ts",
|
"demo": "tsx ./demo/index.ts",
|
||||||
"typedoc": "typedoc src/index.ts --tsconfig tsconfig.typedoc.json",
|
"typedoc": "typedoc src/index.ts --tsconfig tsconfig.typedoc.json",
|
||||||
@ -68,6 +68,8 @@
|
|||||||
},
|
},
|
||||||
"homepage": "https://docx.js.org",
|
"homepage": "https://docx.js.org",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
"@eslint/compat": "^1.2.1",
|
||||||
|
"@types/eslint__js": "^8.42.3",
|
||||||
"@types/inquirer": "^9.0.3",
|
"@types/inquirer": "^9.0.3",
|
||||||
"@types/prompt": "^1.1.1",
|
"@types/prompt": "^1.1.1",
|
||||||
"@types/unzipper": "^0.10.4",
|
"@types/unzipper": "^0.10.4",
|
||||||
@ -78,8 +80,9 @@
|
|||||||
"@vitest/ui": "^2.1.2",
|
"@vitest/ui": "^2.1.2",
|
||||||
"cspell": "^8.2.3",
|
"cspell": "^8.2.3",
|
||||||
"docsify-cli": "^4.3.0",
|
"docsify-cli": "^4.3.0",
|
||||||
"eslint": "^8.23.0",
|
"eslint": "^9.13.0",
|
||||||
"eslint-plugin-functional": "^6.0.0",
|
"eslint-import-resolver-typescript": "^3.6.3",
|
||||||
|
"eslint-plugin-functional": "^7.0.2",
|
||||||
"eslint-plugin-import": "^2.26.0",
|
"eslint-plugin-import": "^2.26.0",
|
||||||
"eslint-plugin-jsdoc": "^50.3.1",
|
"eslint-plugin-jsdoc": "^50.3.1",
|
||||||
"eslint-plugin-no-null": "^1.0.2",
|
"eslint-plugin-no-null": "^1.0.2",
|
||||||
@ -88,6 +91,7 @@
|
|||||||
"execa": "^9.4.0",
|
"execa": "^9.4.0",
|
||||||
"glob": "^11.0.0",
|
"glob": "^11.0.0",
|
||||||
"inquirer": "^12.0.0",
|
"inquirer": "^12.0.0",
|
||||||
|
"jiti": "^2.3.3",
|
||||||
"jsdom": "^25.0.1",
|
"jsdom": "^25.0.1",
|
||||||
"pre-commit": "^1.2.2",
|
"pre-commit": "^1.2.2",
|
||||||
"prettier": "^3.1.1",
|
"prettier": "^3.1.1",
|
||||||
@ -95,6 +99,7 @@
|
|||||||
"tsx": "^4.7.0",
|
"tsx": "^4.7.0",
|
||||||
"typedoc": "^0.26.9",
|
"typedoc": "^0.26.9",
|
||||||
"typescript": "5.3.3",
|
"typescript": "5.3.3",
|
||||||
|
"typescript-eslint": "^8.10.0",
|
||||||
"unzipper": "^0.12.3",
|
"unzipper": "^0.12.3",
|
||||||
"vite": "^5.0.10",
|
"vite": "^5.0.10",
|
||||||
"vite-plugin-dts": "^4.2.4",
|
"vite-plugin-dts": "^4.2.4",
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
import { BaseXmlComponent, IContext, IXmlableObject } from "@file/xml-components";
|
import { BaseXmlComponent, IContext, IXmlableObject } from "@file/xml-components";
|
||||||
|
|
||||||
export class Formatter {
|
export class Formatter {
|
||||||
// tslint:disable-next-line: no-object-literal-type-assertion
|
|
||||||
public format(input: BaseXmlComponent, context: IContext = { stack: [] } as unknown as IContext): IXmlableObject {
|
public format(input: BaseXmlComponent, context: IContext = { stack: [] } as unknown as IContext): IXmlableObject {
|
||||||
const output = input.prepForXml(context);
|
const output = input.prepForXml(context);
|
||||||
|
|
||||||
|
@ -125,7 +125,6 @@ describe("Compiler", () => {
|
|||||||
],
|
],
|
||||||
});
|
});
|
||||||
|
|
||||||
// tslint:disable-next-line: no-string-literal
|
|
||||||
const spy = vi.spyOn(compiler["formatter"], "format");
|
const spy = vi.spyOn(compiler["formatter"], "format");
|
||||||
|
|
||||||
compiler.compile(file);
|
compiler.compile(file);
|
||||||
|
@ -9,12 +9,12 @@ import { ImageReplacer } from "./image-replacer";
|
|||||||
import { NumberingReplacer } from "./numbering-replacer";
|
import { NumberingReplacer } from "./numbering-replacer";
|
||||||
import { PrettifyType } from "./packer";
|
import { PrettifyType } from "./packer";
|
||||||
|
|
||||||
interface IXmlifyedFile {
|
type IXmlifyedFile = {
|
||||||
readonly data: string;
|
readonly data: string;
|
||||||
readonly path: string;
|
readonly path: string;
|
||||||
}
|
};
|
||||||
|
|
||||||
interface IXmlifyedFileMapping {
|
type IXmlifyedFileMapping = {
|
||||||
readonly Document: IXmlifyedFile;
|
readonly Document: IXmlifyedFile;
|
||||||
readonly Styles: IXmlifyedFile;
|
readonly Styles: IXmlifyedFile;
|
||||||
readonly Properties: IXmlifyedFile;
|
readonly Properties: IXmlifyedFile;
|
||||||
@ -34,7 +34,7 @@ interface IXmlifyedFileMapping {
|
|||||||
readonly Comments?: IXmlifyedFile;
|
readonly Comments?: IXmlifyedFile;
|
||||||
readonly FontTable?: IXmlifyedFile;
|
readonly FontTable?: IXmlifyedFile;
|
||||||
readonly FontTableRelationships?: IXmlifyedFile;
|
readonly FontTableRelationships?: IXmlifyedFile;
|
||||||
}
|
};
|
||||||
|
|
||||||
export class Compiler {
|
export class Compiler {
|
||||||
private readonly formatter: Formatter;
|
private readonly formatter: Formatter;
|
||||||
|
@ -139,7 +139,6 @@ describe("Packer", () => {
|
|||||||
it("should create a standard docx file", async () => {
|
it("should create a standard docx file", async () => {
|
||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||||
vi.spyOn((Packer as any).compiler, "compile").mockReturnValue({
|
vi.spyOn((Packer as any).compiler, "compile").mockReturnValue({
|
||||||
// tslint:disable-next-line: no-empty
|
|
||||||
generateAsync: () => vi.fn(),
|
generateAsync: () => vi.fn(),
|
||||||
});
|
});
|
||||||
const str = await Packer.toBlob(file);
|
const str = await Packer.toBlob(file);
|
||||||
@ -167,7 +166,6 @@ describe("Packer", () => {
|
|||||||
it("should create a standard docx file", async () => {
|
it("should create a standard docx file", async () => {
|
||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||||
vi.spyOn((Packer as any).compiler, "compile").mockReturnValue({
|
vi.spyOn((Packer as any).compiler, "compile").mockReturnValue({
|
||||||
// tslint:disable-next-line: no-empty
|
|
||||||
generateAsync: () => Promise.resolve(vi.fn()),
|
generateAsync: () => Promise.resolve(vi.fn()),
|
||||||
});
|
});
|
||||||
const stream = Packer.toStream(file);
|
const stream = Packer.toStream(file);
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import { Stream } from "stream";
|
import { Stream } from "stream";
|
||||||
|
|
||||||
import { File } from "@file/file";
|
import { File } from "@file/file";
|
||||||
|
|
||||||
import { Compiler } from "./next-compiler";
|
import { Compiler } from "./next-compiler";
|
||||||
@ -10,7 +11,7 @@ export const PrettifyType = {
|
|||||||
NONE: "",
|
NONE: "",
|
||||||
WITH_2_BLANKS: " ",
|
WITH_2_BLANKS: " ",
|
||||||
WITH_4_BLANKS: " ",
|
WITH_4_BLANKS: " ",
|
||||||
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
||||||
WITH_TAB: "\t",
|
WITH_TAB: "\t",
|
||||||
} as const;
|
} as const;
|
||||||
|
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import { XmlComponent } from "@file/xml-components";
|
import { XmlComponent } from "@file/xml-components";
|
||||||
|
|
||||||
import { AppPropertiesAttributes } from "./app-properties-attributes";
|
import { AppPropertiesAttributes } from "./app-properties-attributes";
|
||||||
|
|
||||||
export class AppProperties extends XmlComponent {
|
export class AppProperties extends XmlComponent {
|
||||||
|
@ -22,7 +22,7 @@
|
|||||||
import { XmlAttributeComponent, XmlComponent } from "@file/xml-components";
|
import { XmlAttributeComponent, XmlComponent } from "@file/xml-components";
|
||||||
import { eighthPointMeasureValue, hexColorValue, pointMeasureValue } from "@util/values";
|
import { eighthPointMeasureValue, hexColorValue, pointMeasureValue } from "@util/values";
|
||||||
|
|
||||||
export interface IBorderOptions {
|
export type IBorderOptions = {
|
||||||
readonly style: (typeof BorderStyle)[keyof typeof BorderStyle];
|
readonly style: (typeof BorderStyle)[keyof typeof BorderStyle];
|
||||||
/** Border color, in hex (eg 'FF00AA') */
|
/** Border color, in hex (eg 'FF00AA') */
|
||||||
readonly color?: string;
|
readonly color?: string;
|
||||||
@ -30,7 +30,7 @@ export interface IBorderOptions {
|
|||||||
readonly size?: number;
|
readonly size?: number;
|
||||||
/** Spacing offset. Values are specified in pt */
|
/** Spacing offset. Values are specified in pt */
|
||||||
readonly space?: number;
|
readonly space?: number;
|
||||||
}
|
};
|
||||||
|
|
||||||
export class BorderElement extends XmlComponent {
|
export class BorderElement extends XmlComponent {
|
||||||
public constructor(elementName: string, { color, size, space, style }: IBorderOptions) {
|
public constructor(elementName: string, { color, size, space, style }: IBorderOptions) {
|
||||||
@ -55,7 +55,6 @@ class BordersAttributes extends XmlAttributeComponent<IBorderOptions> {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
/* eslint-disable @typescript-eslint/naming-convention */
|
|
||||||
export const BorderStyle = {
|
export const BorderStyle = {
|
||||||
SINGLE: "single",
|
SINGLE: "single",
|
||||||
DASH_DOT_STROKED: "dashDotStroked",
|
DASH_DOT_STROKED: "dashDotStroked",
|
||||||
@ -85,4 +84,3 @@ export const BorderStyle = {
|
|||||||
TRIPLE: "triple",
|
TRIPLE: "triple",
|
||||||
WAVE: "wave",
|
WAVE: "wave",
|
||||||
} as const;
|
} as const;
|
||||||
/* eslint-enable */
|
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
import { describe, expect, it } from "vitest";
|
import { describe, expect, it } from "vitest";
|
||||||
|
|
||||||
import { Formatter } from "@export/formatter";
|
import { Formatter } from "@export/formatter";
|
||||||
|
|
||||||
import { CheckBoxUtil } from ".";
|
import { CheckBoxUtil } from ".";
|
||||||
|
|
||||||
describe("CheckBoxUtil", () => {
|
describe("CheckBoxUtil", () => {
|
||||||
|
@ -7,20 +7,20 @@
|
|||||||
// </xsd:complexType>
|
// </xsd:complexType>
|
||||||
// <xsd:element name="checkbox" type="CT_SdtCheckbox"/>
|
// <xsd:element name="checkbox" type="CT_SdtCheckbox"/>
|
||||||
|
|
||||||
import { XmlComponent } from "@file/xml-components";
|
|
||||||
import { CheckBoxSymbolElement } from "@file/checkbox/checkbox-symbol";
|
import { CheckBoxSymbolElement } from "@file/checkbox/checkbox-symbol";
|
||||||
|
import { XmlComponent } from "@file/xml-components";
|
||||||
|
|
||||||
export interface ICheckboxSymbolProperties {
|
export type ICheckboxSymbolProperties = {
|
||||||
readonly value?: string;
|
readonly value?: string;
|
||||||
readonly font?: string;
|
readonly font?: string;
|
||||||
}
|
};
|
||||||
|
|
||||||
export interface ICheckboxSymbolOptions {
|
export type ICheckboxSymbolOptions = {
|
||||||
readonly alias?: string;
|
readonly alias?: string;
|
||||||
readonly checked?: boolean;
|
readonly checked?: boolean;
|
||||||
readonly checkedState?: ICheckboxSymbolProperties;
|
readonly checkedState?: ICheckboxSymbolProperties;
|
||||||
readonly uncheckedState?: ICheckboxSymbolProperties;
|
readonly uncheckedState?: ICheckboxSymbolProperties;
|
||||||
}
|
};
|
||||||
|
|
||||||
export class CheckBoxUtil extends XmlComponent {
|
export class CheckBoxUtil extends XmlComponent {
|
||||||
private readonly DEFAULT_UNCHECKED_SYMBOL: string = "2610";
|
private readonly DEFAULT_UNCHECKED_SYMBOL: string = "2610";
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import { describe, expect, it } from "vitest";
|
import { describe, expect, it } from "vitest";
|
||||||
|
|
||||||
import { Formatter } from "@export/formatter";
|
import { Formatter } from "@export/formatter";
|
||||||
|
|
||||||
import { CheckBox } from "./checkbox";
|
import { CheckBox } from "./checkbox";
|
||||||
|
@ -1,7 +1,8 @@
|
|||||||
import { SymbolRun } from "@file/paragraph/run/symbol-run";
|
import { SymbolRun } from "@file/paragraph/run/symbol-run";
|
||||||
import { StructuredDocumentTagProperties } from "@file/table-of-contents/sdt-properties";
|
|
||||||
import { StructuredDocumentTagContent } from "@file/table-of-contents/sdt-content";
|
import { StructuredDocumentTagContent } from "@file/table-of-contents/sdt-content";
|
||||||
|
import { StructuredDocumentTagProperties } from "@file/table-of-contents/sdt-properties";
|
||||||
import { XmlComponent } from "@file/xml-components";
|
import { XmlComponent } from "@file/xml-components";
|
||||||
|
|
||||||
import { CheckBoxUtil, ICheckboxSymbolOptions } from "./checkbox-util";
|
import { CheckBoxUtil, ICheckboxSymbolOptions } from "./checkbox-util";
|
||||||
|
|
||||||
export class CheckBox extends XmlComponent {
|
export class CheckBox extends XmlComponent {
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
// tslint:disable:no-string-literal
|
|
||||||
|
|
||||||
import { beforeEach, describe, expect, it } from "vitest";
|
import { beforeEach, describe, expect, it } from "vitest";
|
||||||
|
|
||||||
import { Formatter } from "@export/formatter";
|
import { Formatter } from "@export/formatter";
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import { XmlComponent } from "@file/xml-components";
|
import { XmlComponent } from "@file/xml-components";
|
||||||
|
|
||||||
import { ContentTypeAttributes } from "./content-types-attributes";
|
import { ContentTypeAttributes } from "./content-types-attributes";
|
||||||
import { Default } from "./default/default";
|
import { Default } from "./default/default";
|
||||||
import { Override } from "./override/override";
|
import { Override } from "./override/override";
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import { XmlComponent } from "@file/xml-components";
|
import { XmlComponent } from "@file/xml-components";
|
||||||
|
|
||||||
import { DefaultAttributes } from "./default-attributes";
|
import { DefaultAttributes } from "./default-attributes";
|
||||||
|
|
||||||
export class Default extends XmlComponent {
|
export class Default extends XmlComponent {
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import { XmlComponent } from "@file/xml-components";
|
import { XmlComponent } from "@file/xml-components";
|
||||||
|
|
||||||
import { OverrideAttributes } from "./override-attributes";
|
import { OverrideAttributes } from "./override-attributes";
|
||||||
|
|
||||||
export class Override extends XmlComponent {
|
export class Override extends XmlComponent {
|
||||||
|
@ -45,7 +45,7 @@ describe("Properties", () => {
|
|||||||
expect(tree["cp:coreProperties"]).to.be.an.instanceof(Array);
|
expect(tree["cp:coreProperties"]).to.be.an.instanceof(Array);
|
||||||
|
|
||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||||
const key = (obj: { readonly [key: string]: any }) => Object.keys(obj)[0];
|
const key = (obj: Readonly<Record<string, any>>) => Object.keys(obj)[0];
|
||||||
expect(tree["cp:coreProperties"].map(key)).to.include.members([
|
expect(tree["cp:coreProperties"].map(key)).to.include.members([
|
||||||
"_attr",
|
"_attr",
|
||||||
"cp:keywords",
|
"cp:keywords",
|
||||||
|
@ -1,19 +1,18 @@
|
|||||||
|
import { FontOptions } from "@file/fonts/font-table";
|
||||||
import { ICommentsOptions } from "@file/paragraph/run/comment-run";
|
import { ICommentsOptions } from "@file/paragraph/run/comment-run";
|
||||||
import { ICompatibilityOptions } from "@file/settings/compatibility";
|
import { ICompatibilityOptions } from "@file/settings/compatibility";
|
||||||
import { FontOptions } from "@file/fonts/font-table";
|
|
||||||
import { StringContainer, XmlComponent } from "@file/xml-components";
|
import { StringContainer, XmlComponent } from "@file/xml-components";
|
||||||
import { dateTimeValue } from "@util/values";
|
import { dateTimeValue } from "@util/values";
|
||||||
|
|
||||||
import { ICustomPropertyOptions } from "../custom-properties";
|
import { ICustomPropertyOptions } from "../custom-properties";
|
||||||
import { IDocumentBackgroundOptions } from "../document";
|
import { IDocumentBackgroundOptions } from "../document";
|
||||||
|
|
||||||
import { DocumentAttributes } from "../document/document-attributes";
|
import { DocumentAttributes } from "../document/document-attributes";
|
||||||
import { ISectionOptions } from "../file";
|
import { ISectionOptions } from "../file";
|
||||||
import { INumberingOptions } from "../numbering";
|
import { INumberingOptions } from "../numbering";
|
||||||
import { Paragraph } from "../paragraph";
|
import { Paragraph } from "../paragraph";
|
||||||
import { IStylesOptions } from "../styles";
|
import { IStylesOptions } from "../styles";
|
||||||
|
|
||||||
export interface IPropertiesOptions {
|
export type IPropertiesOptions = {
|
||||||
readonly sections: readonly ISectionOptions[];
|
readonly sections: readonly ISectionOptions[];
|
||||||
readonly title?: string;
|
readonly title?: string;
|
||||||
readonly subject?: string;
|
readonly subject?: string;
|
||||||
@ -26,11 +25,14 @@ export interface IPropertiesOptions {
|
|||||||
readonly styles?: IStylesOptions;
|
readonly styles?: IStylesOptions;
|
||||||
readonly numbering?: INumberingOptions;
|
readonly numbering?: INumberingOptions;
|
||||||
readonly comments?: ICommentsOptions;
|
readonly comments?: ICommentsOptions;
|
||||||
readonly footnotes?: {
|
readonly footnotes?: Readonly<
|
||||||
readonly [key: string]: {
|
Record<
|
||||||
readonly children: readonly Paragraph[];
|
string,
|
||||||
};
|
{
|
||||||
};
|
readonly children: readonly Paragraph[];
|
||||||
|
}
|
||||||
|
>
|
||||||
|
>;
|
||||||
readonly background?: IDocumentBackgroundOptions;
|
readonly background?: IDocumentBackgroundOptions;
|
||||||
readonly features?: {
|
readonly features?: {
|
||||||
readonly trackRevisions?: boolean;
|
readonly trackRevisions?: boolean;
|
||||||
@ -42,7 +44,7 @@ export interface IPropertiesOptions {
|
|||||||
readonly evenAndOddHeaderAndFooters?: boolean;
|
readonly evenAndOddHeaderAndFooters?: boolean;
|
||||||
readonly defaultTabStop?: number;
|
readonly defaultTabStop?: number;
|
||||||
readonly fonts?: readonly FontOptions[];
|
readonly fonts?: readonly FontOptions[];
|
||||||
}
|
};
|
||||||
|
|
||||||
// <xs:element name="coreProperties" type="CT_CoreProperties"/>
|
// <xs:element name="coreProperties" type="CT_CoreProperties"/>
|
||||||
|
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import { IContext, IXmlableObject, XmlComponent } from "@file/xml-components";
|
import { IContext, IXmlableObject, XmlComponent } from "@file/xml-components";
|
||||||
|
|
||||||
import { CustomPropertiesAttributes } from "./custom-properties-attributes";
|
import { CustomPropertiesAttributes } from "./custom-properties-attributes";
|
||||||
import { CustomProperty, ICustomPropertyOptions } from "./custom-property";
|
import { CustomProperty, ICustomPropertyOptions } from "./custom-property";
|
||||||
|
|
||||||
|
@ -1,10 +1,11 @@
|
|||||||
import { XmlComponent } from "@file/xml-components";
|
import { XmlComponent } from "@file/xml-components";
|
||||||
|
|
||||||
import { CustomPropertyAttributes } from "./custom-property-attributes";
|
import { CustomPropertyAttributes } from "./custom-property-attributes";
|
||||||
|
|
||||||
export interface ICustomPropertyOptions {
|
export type ICustomPropertyOptions = {
|
||||||
readonly name: string;
|
readonly name: string;
|
||||||
readonly value: string;
|
readonly value: string;
|
||||||
}
|
};
|
||||||
|
|
||||||
export class CustomProperty extends XmlComponent {
|
export class CustomProperty extends XmlComponent {
|
||||||
public constructor(id: number, properties: ICustomPropertyOptions) {
|
public constructor(id: number, properties: ICustomPropertyOptions) {
|
||||||
|
@ -1,14 +1,14 @@
|
|||||||
import { XmlComponent } from "./xml-components";
|
|
||||||
import { Document, IDocumentOptions } from "./document";
|
import { Document, IDocumentOptions } from "./document";
|
||||||
import { Footer } from "./footer/footer";
|
import { Footer } from "./footer/footer";
|
||||||
import { FootNotes } from "./footnotes";
|
import { FootNotes } from "./footnotes";
|
||||||
import { Header } from "./header/header";
|
import { Header } from "./header/header";
|
||||||
import { Relationships } from "./relationships";
|
import { Relationships } from "./relationships";
|
||||||
|
import { XmlComponent } from "./xml-components";
|
||||||
|
|
||||||
export interface IViewWrapper {
|
export type IViewWrapper = {
|
||||||
readonly View: Document | Footer | Header | FootNotes | XmlComponent;
|
readonly View: Document | Footer | Header | FootNotes | XmlComponent;
|
||||||
readonly Relationships: Relationships;
|
readonly Relationships: Relationships;
|
||||||
}
|
};
|
||||||
|
|
||||||
export class DocumentWrapper implements IViewWrapper {
|
export class DocumentWrapper implements IViewWrapper {
|
||||||
private readonly document: Document;
|
private readonly document: Document;
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import { NextAttributeComponent, XmlComponent } from "@file/xml-components";
|
import { NextAttributeComponent, XmlComponent } from "@file/xml-components";
|
||||||
import { decimalNumber, PositiveUniversalMeasure, twipsMeasureValue } from "@util/values";
|
import { PositiveUniversalMeasure, decimalNumber, twipsMeasureValue } from "@util/values";
|
||||||
|
|
||||||
import { Column } from "./column";
|
import { Column } from "./column";
|
||||||
|
|
||||||
|
@ -17,7 +17,6 @@ import { decimalNumber } from "@util/values";
|
|||||||
// <xsd:attribute name="charSpace" type="ST_DecimalNumber"/>
|
// <xsd:attribute name="charSpace" type="ST_DecimalNumber"/>
|
||||||
// </xsd:complexType>
|
// </xsd:complexType>
|
||||||
|
|
||||||
/* eslint-disable @typescript-eslint/naming-convention */
|
|
||||||
export const DocumentGridType = {
|
export const DocumentGridType = {
|
||||||
DEFAULT: "default",
|
DEFAULT: "default",
|
||||||
LINES: "lines",
|
LINES: "lines",
|
||||||
@ -25,12 +24,11 @@ export const DocumentGridType = {
|
|||||||
SNAP_TO_CHARS: "snapToChars",
|
SNAP_TO_CHARS: "snapToChars",
|
||||||
} as const;
|
} as const;
|
||||||
|
|
||||||
/* eslint-enable */
|
export type IDocGridAttributesProperties = {
|
||||||
export interface IDocGridAttributesProperties {
|
|
||||||
readonly type?: (typeof DocumentGridType)[keyof typeof DocumentGridType];
|
readonly type?: (typeof DocumentGridType)[keyof typeof DocumentGridType];
|
||||||
readonly linePitch?: number;
|
readonly linePitch?: number;
|
||||||
readonly charSpace?: number;
|
readonly charSpace?: number;
|
||||||
}
|
};
|
||||||
|
|
||||||
export class DocGridAttributes extends XmlAttributeComponent<IDocGridAttributesProperties> {
|
export class DocGridAttributes extends XmlAttributeComponent<IDocGridAttributesProperties> {
|
||||||
protected readonly xmlKeys = {
|
protected readonly xmlKeys = {
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
import { describe, expect, it } from "vitest";
|
import { describe, expect, it } from "vitest";
|
||||||
|
|
||||||
import { Formatter } from "@export/formatter";
|
import { Formatter } from "@export/formatter";
|
||||||
|
|
||||||
import { HeaderFooterReference, HeaderFooterReferenceType, HeaderFooterType } from "./header-footer-reference";
|
import { HeaderFooterReference, HeaderFooterReferenceType, HeaderFooterType } from "./header-footer-reference";
|
||||||
|
|
||||||
describe("HeaderFooterReference", () => {
|
describe("HeaderFooterReference", () => {
|
||||||
|
@ -32,10 +32,10 @@ export const HeaderFooterReferenceType = {
|
|||||||
// <xsd:attribute ref="r:id" use="required"/>
|
// <xsd:attribute ref="r:id" use="required"/>
|
||||||
// </xsd:complexType>
|
// </xsd:complexType>
|
||||||
|
|
||||||
export interface IHeaderFooterOptions {
|
export type IHeaderFooterOptions = {
|
||||||
readonly type?: (typeof HeaderFooterReferenceType)[keyof typeof HeaderFooterReferenceType];
|
readonly type?: (typeof HeaderFooterReferenceType)[keyof typeof HeaderFooterReferenceType];
|
||||||
readonly id?: number;
|
readonly id?: number;
|
||||||
}
|
};
|
||||||
|
|
||||||
class FooterReferenceAttributes extends XmlAttributeComponent<{
|
class FooterReferenceAttributes extends XmlAttributeComponent<{
|
||||||
readonly type: (typeof HeaderFooterReferenceType)[keyof typeof HeaderFooterReferenceType];
|
readonly type: (typeof HeaderFooterReferenceType)[keyof typeof HeaderFooterReferenceType];
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
// http://officeopenxml.com/WPsectionLineNumbering.php
|
// http://officeopenxml.com/WPsectionLineNumbering.php
|
||||||
import { BuilderElement, XmlComponent } from "@file/xml-components";
|
import { BuilderElement, XmlComponent } from "@file/xml-components";
|
||||||
import { decimalNumber, PositiveUniversalMeasure, twipsMeasureValue } from "@util/values";
|
import { PositiveUniversalMeasure, decimalNumber, twipsMeasureValue } from "@util/values";
|
||||||
|
|
||||||
// <xsd:simpleType name="ST_LineNumberRestart">
|
// <xsd:simpleType name="ST_LineNumberRestart">
|
||||||
// <xsd:restriction base="xsd:string">
|
// <xsd:restriction base="xsd:string">
|
||||||
@ -10,13 +10,11 @@ import { decimalNumber, PositiveUniversalMeasure, twipsMeasureValue } from "@uti
|
|||||||
// </xsd:restriction>
|
// </xsd:restriction>
|
||||||
// </xsd:simpleType>
|
// </xsd:simpleType>
|
||||||
|
|
||||||
/* eslint-disable @typescript-eslint/naming-convention */
|
|
||||||
export const LineNumberRestartFormat = {
|
export const LineNumberRestartFormat = {
|
||||||
NEW_PAGE: "newPage",
|
NEW_PAGE: "newPage",
|
||||||
NEW_SECTION: "newSection",
|
NEW_SECTION: "newSection",
|
||||||
CONTINUOUS: "continuous",
|
CONTINUOUS: "continuous",
|
||||||
} as const;
|
} as const;
|
||||||
/* eslint-enable */
|
|
||||||
|
|
||||||
// <xsd:complexType name="CT_LineNumber">
|
// <xsd:complexType name="CT_LineNumber">
|
||||||
// <xsd:attribute name="countBy" type="ST_DecimalNumber" use="optional"/>
|
// <xsd:attribute name="countBy" type="ST_DecimalNumber" use="optional"/>
|
||||||
|
@ -3,7 +3,7 @@ import { describe, expect, it } from "vitest";
|
|||||||
import { Formatter } from "@export/formatter";
|
import { Formatter } from "@export/formatter";
|
||||||
import { BorderStyle } from "@file/border";
|
import { BorderStyle } from "@file/border";
|
||||||
|
|
||||||
import { PageBorderDisplay, PageBorders, PageBorderZOrder } from "./page-borders";
|
import { PageBorderDisplay, PageBorderZOrder, PageBorders } from "./page-borders";
|
||||||
|
|
||||||
describe("PageBorders", () => {
|
describe("PageBorders", () => {
|
||||||
describe("#constructor()", () => {
|
describe("#constructor()", () => {
|
||||||
|
@ -10,13 +10,11 @@ import { IgnoreIfEmptyXmlComponent, XmlAttributeComponent } from "@file/xml-comp
|
|||||||
// </xsd:restriction>
|
// </xsd:restriction>
|
||||||
// </xsd:simpleType>
|
// </xsd:simpleType>
|
||||||
|
|
||||||
/* eslint-disable @typescript-eslint/naming-convention */
|
|
||||||
export const PageBorderDisplay = {
|
export const PageBorderDisplay = {
|
||||||
ALL_PAGES: "allPages",
|
ALL_PAGES: "allPages",
|
||||||
FIRST_PAGE: "firstPage",
|
FIRST_PAGE: "firstPage",
|
||||||
NOT_FIRST_PAGE: "notFirstPage",
|
NOT_FIRST_PAGE: "notFirstPage",
|
||||||
} as const;
|
} as const;
|
||||||
/* eslint-enable */
|
|
||||||
|
|
||||||
// <xsd:simpleType name="ST_PageBorderOffset">
|
// <xsd:simpleType name="ST_PageBorderOffset">
|
||||||
// <xsd:restriction base="xsd:string">
|
// <xsd:restriction base="xsd:string">
|
||||||
@ -40,19 +38,19 @@ export const PageBorderZOrder = {
|
|||||||
FRONT: "front",
|
FRONT: "front",
|
||||||
} as const;
|
} as const;
|
||||||
|
|
||||||
export interface IPageBorderAttributes {
|
export type IPageBorderAttributes = {
|
||||||
readonly display?: (typeof PageBorderDisplay)[keyof typeof PageBorderDisplay];
|
readonly display?: (typeof PageBorderDisplay)[keyof typeof PageBorderDisplay];
|
||||||
readonly offsetFrom?: (typeof PageBorderOffsetFrom)[keyof typeof PageBorderOffsetFrom];
|
readonly offsetFrom?: (typeof PageBorderOffsetFrom)[keyof typeof PageBorderOffsetFrom];
|
||||||
readonly zOrder?: (typeof PageBorderZOrder)[keyof typeof PageBorderZOrder];
|
readonly zOrder?: (typeof PageBorderZOrder)[keyof typeof PageBorderZOrder];
|
||||||
}
|
};
|
||||||
|
|
||||||
export interface IPageBordersOptions {
|
export type IPageBordersOptions = {
|
||||||
readonly pageBorders?: IPageBorderAttributes;
|
readonly pageBorders?: IPageBorderAttributes;
|
||||||
readonly pageBorderTop?: IBorderOptions;
|
readonly pageBorderTop?: IBorderOptions;
|
||||||
readonly pageBorderRight?: IBorderOptions;
|
readonly pageBorderRight?: IBorderOptions;
|
||||||
readonly pageBorderBottom?: IBorderOptions;
|
readonly pageBorderBottom?: IBorderOptions;
|
||||||
readonly pageBorderLeft?: IBorderOptions;
|
readonly pageBorderLeft?: IBorderOptions;
|
||||||
}
|
};
|
||||||
|
|
||||||
class PageBordersAttributes extends XmlAttributeComponent<IPageBorderAttributes> {
|
class PageBordersAttributes extends XmlAttributeComponent<IPageBorderAttributes> {
|
||||||
protected readonly xmlKeys = {
|
protected readonly xmlKeys = {
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import { NextAttributeComponent, XmlComponent } from "@file/xml-components";
|
import { NextAttributeComponent, XmlComponent } from "@file/xml-components";
|
||||||
import { PositiveUniversalMeasure, signedTwipsMeasureValue, twipsMeasureValue, UniversalMeasure } from "@util/values";
|
import { PositiveUniversalMeasure, UniversalMeasure, signedTwipsMeasureValue, twipsMeasureValue } from "@util/values";
|
||||||
|
|
||||||
// <xsd:complexType name="CT_PageMar">
|
// <xsd:complexType name="CT_PageMar">
|
||||||
// <xsd:attribute name="top" type="ST_SignedTwipsMeasure" use="required"/>
|
// <xsd:attribute name="top" type="ST_SignedTwipsMeasure" use="required"/>
|
||||||
|
@ -13,7 +13,6 @@ import { decimalNumber } from "@util/values";
|
|||||||
// </xsd:restriction>
|
// </xsd:restriction>
|
||||||
// </xsd:simpleType>
|
// </xsd:simpleType>
|
||||||
|
|
||||||
/* eslint-disable @typescript-eslint/naming-convention */
|
|
||||||
export const PageNumberSeparator = {
|
export const PageNumberSeparator = {
|
||||||
HYPHEN: "hyphen",
|
HYPHEN: "hyphen",
|
||||||
PERIOD: "period",
|
PERIOD: "period",
|
||||||
@ -22,13 +21,11 @@ export const PageNumberSeparator = {
|
|||||||
EN_DASH: "endash",
|
EN_DASH: "endash",
|
||||||
} as const;
|
} as const;
|
||||||
|
|
||||||
/* eslint-enable */
|
export type IPageNumberTypeAttributes = {
|
||||||
|
|
||||||
export interface IPageNumberTypeAttributes {
|
|
||||||
readonly start?: number;
|
readonly start?: number;
|
||||||
readonly formatType?: (typeof NumberFormat)[keyof typeof NumberFormat];
|
readonly formatType?: (typeof NumberFormat)[keyof typeof NumberFormat];
|
||||||
readonly separator?: (typeof PageNumberSeparator)[keyof typeof PageNumberSeparator];
|
readonly separator?: (typeof PageNumberSeparator)[keyof typeof PageNumberSeparator];
|
||||||
}
|
};
|
||||||
|
|
||||||
// <xsd:complexType name="CT_PageNumber">
|
// <xsd:complexType name="CT_PageNumber">
|
||||||
// <xsd:attribute name="fmt" type="ST_NumberFormat" use="optional" default="decimal"/>
|
// <xsd:attribute name="fmt" type="ST_NumberFormat" use="optional" default="decimal"/>
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
import { describe, expect, it } from "vitest";
|
import { describe, expect, it } from "vitest";
|
||||||
|
|
||||||
import { Formatter } from "@export/formatter";
|
import { Formatter } from "@export/formatter";
|
||||||
|
|
||||||
import { PageTextDirection, PageTextDirectionType } from "./page-text-direction";
|
import { PageTextDirection, PageTextDirectionType } from "./page-text-direction";
|
||||||
|
|
||||||
describe("PageTextDirection", () => {
|
describe("PageTextDirection", () => {
|
||||||
|
@ -1,13 +1,10 @@
|
|||||||
import { XmlAttributeComponent, XmlComponent } from "@file/xml-components";
|
import { XmlAttributeComponent, XmlComponent } from "@file/xml-components";
|
||||||
|
|
||||||
/* eslint-disable @typescript-eslint/naming-convention */
|
|
||||||
export const PageTextDirectionType = {
|
export const PageTextDirectionType = {
|
||||||
LEFT_TO_RIGHT_TOP_TO_BOTTOM: "lrTb",
|
LEFT_TO_RIGHT_TOP_TO_BOTTOM: "lrTb",
|
||||||
TOP_TO_BOTTOM_RIGHT_TO_LEFT: "tbRl",
|
TOP_TO_BOTTOM_RIGHT_TO_LEFT: "tbRl",
|
||||||
} as const;
|
} as const;
|
||||||
|
|
||||||
/* eslint-enable */
|
|
||||||
|
|
||||||
class PageTextDirectionAttributes extends XmlAttributeComponent<{
|
class PageTextDirectionAttributes extends XmlAttributeComponent<{
|
||||||
readonly val: (typeof PageTextDirectionType)[keyof typeof PageTextDirectionType];
|
readonly val: (typeof PageTextDirectionType)[keyof typeof PageTextDirectionType];
|
||||||
}> {
|
}> {
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
import { describe, expect, it } from "vitest";
|
import { describe, expect, it } from "vitest";
|
||||||
|
|
||||||
import { Formatter } from "@export/formatter";
|
import { Formatter } from "@export/formatter";
|
||||||
|
|
||||||
import { SectionType, Type } from "./section-type";
|
import { SectionType, Type } from "./section-type";
|
||||||
|
|
||||||
describe("Type", () => {
|
describe("Type", () => {
|
||||||
|
@ -11,7 +11,6 @@ import { XmlAttributeComponent, XmlComponent } from "@file/xml-components";
|
|||||||
// </xsd:restriction>
|
// </xsd:restriction>
|
||||||
// </xsd:simpleType>
|
// </xsd:simpleType>
|
||||||
|
|
||||||
/* eslint-disable @typescript-eslint/naming-convention */
|
|
||||||
export const SectionType = {
|
export const SectionType = {
|
||||||
NEXT_PAGE: "nextPage",
|
NEXT_PAGE: "nextPage",
|
||||||
NEXT_COLUMN: "nextColumn",
|
NEXT_COLUMN: "nextColumn",
|
||||||
@ -19,7 +18,6 @@ export const SectionType = {
|
|||||||
EVEN_PAGE: "evenPage",
|
EVEN_PAGE: "evenPage",
|
||||||
ODD_PAGE: "oddPage",
|
ODD_PAGE: "oddPage",
|
||||||
} as const;
|
} as const;
|
||||||
/* eslint-enable */
|
|
||||||
|
|
||||||
// <xsd:complexType name="CT_SectType">
|
// <xsd:complexType name="CT_SectType">
|
||||||
// <xsd:attribute name="val" type="ST_SectionMark"/>
|
// <xsd:attribute name="val" type="ST_SectionMark"/>
|
||||||
|
@ -15,7 +15,7 @@ import { LineNumberRestartFormat } from "./properties/line-number";
|
|||||||
import { PageBorderOffsetFrom } from "./properties/page-borders";
|
import { PageBorderOffsetFrom } from "./properties/page-borders";
|
||||||
import { PageTextDirectionType } from "./properties/page-text-direction";
|
import { PageTextDirectionType } from "./properties/page-text-direction";
|
||||||
import { SectionType } from "./properties/section-type";
|
import { SectionType } from "./properties/section-type";
|
||||||
import { sectionMarginDefaults, sectionPageSizeDefaults, SectionProperties } from "./section-properties";
|
import { SectionProperties, sectionMarginDefaults, sectionPageSizeDefaults } from "./section-properties";
|
||||||
|
|
||||||
const DEFAULT_MARGINS = {
|
const DEFAULT_MARGINS = {
|
||||||
"w:bottom": sectionMarginDefaults.BOTTOM,
|
"w:bottom": sectionMarginDefaults.BOTTOM,
|
||||||
|
@ -1,14 +1,13 @@
|
|||||||
// http://officeopenxml.com/WPsection.php
|
// http://officeopenxml.com/WPsection.php
|
||||||
// tslint:disable: no-unnecessary-initializer
|
|
||||||
|
|
||||||
import { FooterWrapper } from "@file/footer-wrapper";
|
import { FooterWrapper } from "@file/footer-wrapper";
|
||||||
import { HeaderWrapper } from "@file/header-wrapper";
|
import { HeaderWrapper } from "@file/header-wrapper";
|
||||||
import { VerticalAlign, VerticalAlignElement } from "@file/vertical-align";
|
import { VerticalAlign, VerticalAlignElement } from "@file/vertical-align";
|
||||||
import { OnOffElement, XmlComponent } from "@file/xml-components";
|
import { OnOffElement, XmlComponent } from "@file/xml-components";
|
||||||
|
|
||||||
import { HeaderFooterReference, HeaderFooterReferenceType, HeaderFooterType } from "./properties/header-footer-reference";
|
|
||||||
import { Columns, IColumnsAttributes } from "./properties/columns";
|
import { Columns, IColumnsAttributes } from "./properties/columns";
|
||||||
import { DocumentGrid, IDocGridAttributesProperties } from "./properties/doc-grid";
|
import { DocumentGrid, IDocGridAttributesProperties } from "./properties/doc-grid";
|
||||||
|
import { HeaderFooterReference, HeaderFooterReferenceType, HeaderFooterType } from "./properties/header-footer-reference";
|
||||||
import { ILineNumberAttributes, createLineNumberType } from "./properties/line-number";
|
import { ILineNumberAttributes, createLineNumberType } from "./properties/line-number";
|
||||||
import { IPageBordersOptions, PageBorders } from "./properties/page-borders";
|
import { IPageBordersOptions, PageBorders } from "./properties/page-borders";
|
||||||
import { IPageMarginAttributes, PageMargin } from "./properties/page-margin";
|
import { IPageMarginAttributes, PageMargin } from "./properties/page-margin";
|
||||||
@ -17,13 +16,13 @@ import { IPageSizeAttributes, PageOrientation, PageSize } from "./properties/pag
|
|||||||
import { PageTextDirection, PageTextDirectionType } from "./properties/page-text-direction";
|
import { PageTextDirection, PageTextDirectionType } from "./properties/page-text-direction";
|
||||||
import { SectionType, Type } from "./properties/section-type";
|
import { SectionType, Type } from "./properties/section-type";
|
||||||
|
|
||||||
export interface IHeaderFooterGroup<T> {
|
export type IHeaderFooterGroup<T> = {
|
||||||
readonly default?: T;
|
readonly default?: T;
|
||||||
readonly first?: T;
|
readonly first?: T;
|
||||||
readonly even?: T;
|
readonly even?: T;
|
||||||
}
|
};
|
||||||
|
|
||||||
export interface ISectionPropertiesOptions {
|
export type ISectionPropertiesOptions = {
|
||||||
readonly page?: {
|
readonly page?: {
|
||||||
readonly size?: IPageSizeAttributes;
|
readonly size?: IPageSizeAttributes;
|
||||||
readonly margin?: IPageMarginAttributes;
|
readonly margin?: IPageMarginAttributes;
|
||||||
@ -39,7 +38,7 @@ export interface ISectionPropertiesOptions {
|
|||||||
readonly verticalAlign?: (typeof VerticalAlign)[keyof typeof VerticalAlign];
|
readonly verticalAlign?: (typeof VerticalAlign)[keyof typeof VerticalAlign];
|
||||||
readonly column?: IColumnsAttributes;
|
readonly column?: IColumnsAttributes;
|
||||||
readonly type?: (typeof SectionType)[keyof typeof SectionType];
|
readonly type?: (typeof SectionType)[keyof typeof SectionType];
|
||||||
}
|
};
|
||||||
|
|
||||||
// <xsd:complexType name="CT_SectPr">
|
// <xsd:complexType name="CT_SectPr">
|
||||||
// <xsd:sequence>
|
// <xsd:sequence>
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import { XmlAttributeComponent } from "@file/xml-components";
|
import { XmlAttributeComponent } from "@file/xml-components";
|
||||||
|
|
||||||
/* cSpell:disable */
|
/* cSpell:disable */
|
||||||
export interface IDocumentAttributesProperties {
|
export type IDocumentAttributesProperties = {
|
||||||
readonly wpc?: string;
|
readonly wpc?: string;
|
||||||
readonly mc?: string;
|
readonly mc?: string;
|
||||||
readonly o?: string;
|
readonly o?: string;
|
||||||
@ -41,7 +41,7 @@ export interface IDocumentAttributesProperties {
|
|||||||
readonly w16?: string;
|
readonly w16?: string;
|
||||||
readonly w16sdtdh?: string;
|
readonly w16sdtdh?: string;
|
||||||
readonly w16se?: string;
|
readonly w16se?: string;
|
||||||
}
|
};
|
||||||
/* cSpell:enable */
|
/* cSpell:enable */
|
||||||
|
|
||||||
export class DocumentAttributes extends XmlAttributeComponent<IDocumentAttributesProperties> {
|
export class DocumentAttributes extends XmlAttributeComponent<IDocumentAttributesProperties> {
|
||||||
|
@ -39,12 +39,12 @@ export class DocumentBackgroundAttributes extends XmlAttributeComponent<{
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface IDocumentBackgroundOptions {
|
export type IDocumentBackgroundOptions = {
|
||||||
readonly color?: string;
|
readonly color?: string;
|
||||||
readonly themeColor?: string;
|
readonly themeColor?: string;
|
||||||
readonly themeShade?: string;
|
readonly themeShade?: string;
|
||||||
readonly themeTint?: string;
|
readonly themeTint?: string;
|
||||||
}
|
};
|
||||||
|
|
||||||
// <xsd:complexType name="CT_Background">
|
// <xsd:complexType name="CT_Background">
|
||||||
// <xsd:sequence>
|
// <xsd:sequence>
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
// http://officeopenxml.com/WPdocument.php
|
// http://officeopenxml.com/WPdocument.php
|
||||||
import { XmlComponent } from "@file/xml-components";
|
import { XmlComponent } from "@file/xml-components";
|
||||||
|
|
||||||
import { ConcreteHyperlink, Paragraph } from "../paragraph";
|
import { ConcreteHyperlink, Paragraph } from "../paragraph";
|
||||||
import { Table } from "../table";
|
import { Table } from "../table";
|
||||||
import { TableOfContents } from "../table-of-contents";
|
import { TableOfContents } from "../table-of-contents";
|
||||||
@ -7,9 +8,9 @@ import { Body } from "./body";
|
|||||||
import { DocumentAttributes } from "./document-attributes";
|
import { DocumentAttributes } from "./document-attributes";
|
||||||
import { DocumentBackground, IDocumentBackgroundOptions } from "./document-background";
|
import { DocumentBackground, IDocumentBackgroundOptions } from "./document-background";
|
||||||
|
|
||||||
export interface IDocumentOptions {
|
export type IDocumentOptions = {
|
||||||
readonly background?: IDocumentBackgroundOptions;
|
readonly background?: IDocumentBackgroundOptions;
|
||||||
}
|
};
|
||||||
|
|
||||||
// <xsd:element name="document" type="CT_Document"/>
|
// <xsd:element name="document" type="CT_Document"/>
|
||||||
//
|
//
|
||||||
@ -80,7 +81,6 @@ export class Document extends XmlComponent {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public add(item: Paragraph | Table | TableOfContents | ConcreteHyperlink): Document {
|
public add(item: Paragraph | Table | TableOfContents | ConcreteHyperlink): Document {
|
||||||
// eslint-disable-next-line functional/immutable-data
|
|
||||||
this.body.push(item);
|
this.body.push(item);
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
@ -1,14 +1,15 @@
|
|||||||
import { XmlAttributeComponent } from "@file/xml-components";
|
import { XmlAttributeComponent } from "@file/xml-components";
|
||||||
|
|
||||||
import { IDistance } from "../drawing";
|
import { IDistance } from "../drawing";
|
||||||
|
|
||||||
export interface IAnchorAttributes extends IDistance {
|
export type IAnchorAttributes = {
|
||||||
readonly allowOverlap?: "0" | "1";
|
readonly allowOverlap?: "0" | "1";
|
||||||
readonly behindDoc?: "0" | "1";
|
readonly behindDoc?: "0" | "1";
|
||||||
readonly layoutInCell?: "0" | "1";
|
readonly layoutInCell?: "0" | "1";
|
||||||
readonly locked?: "0" | "1";
|
readonly locked?: "0" | "1";
|
||||||
readonly relativeHeight?: number;
|
readonly relativeHeight?: number;
|
||||||
readonly simplePos?: "0" | "1";
|
readonly simplePos?: "0" | "1";
|
||||||
}
|
} & IDistance;
|
||||||
|
|
||||||
export class AnchorAttributes extends XmlAttributeComponent<IAnchorAttributes> {
|
export class AnchorAttributes extends XmlAttributeComponent<IAnchorAttributes> {
|
||||||
protected readonly xmlKeys = {
|
protected readonly xmlKeys = {
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
import { assert, describe, expect, it } from "vitest";
|
import { assert, describe, expect, it } from "vitest";
|
||||||
|
|
||||||
import { Formatter } from "@export/formatter";
|
import { Formatter } from "@export/formatter";
|
||||||
|
|
||||||
import { Utility } from "tests/utility";
|
import { Utility } from "tests/utility";
|
||||||
|
|
||||||
import { IDrawingOptions } from "../drawing";
|
import { IDrawingOptions } from "../drawing";
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
// http://officeopenxml.com/drwPicFloating.php
|
// http://officeopenxml.com/drwPicFloating.php
|
||||||
import { IMediaData, IMediaDataTransformation } from "@file/media";
|
import { IMediaData, IMediaDataTransformation } from "@file/media";
|
||||||
import { XmlComponent } from "@file/xml-components";
|
import { XmlComponent } from "@file/xml-components";
|
||||||
|
|
||||||
import { IDrawingOptions } from "../drawing";
|
import { IDrawingOptions } from "../drawing";
|
||||||
import { HorizontalPosition, IFloating, SimplePos, VerticalPosition } from "../floating";
|
import { HorizontalPosition, IFloating, SimplePos, VerticalPosition } from "../floating";
|
||||||
import { Graphic } from "../inline/graphic";
|
import { Graphic } from "../inline/graphic";
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
// https://c-rex.net/projects/samples/ooxml/e1/Part4/OOXML_P4_DOCX_docPr_topic_ID0ES32OB.html
|
// https://c-rex.net/projects/samples/ooxml/e1/Part4/OOXML_P4_DOCX_docPr_topic_ID0ES32OB.html
|
||||||
import { IContext, IXmlableObject, NextAttributeComponent, XmlComponent } from "@file/xml-components";
|
|
||||||
import { ConcreteHyperlink } from "@file/paragraph";
|
import { ConcreteHyperlink } from "@file/paragraph";
|
||||||
|
import { IContext, IXmlableObject, NextAttributeComponent, XmlComponent } from "@file/xml-components";
|
||||||
import { docPropertiesUniqueNumericIdGen } from "@util/convenience-functions";
|
import { docPropertiesUniqueNumericIdGen } from "@util/convenience-functions";
|
||||||
|
|
||||||
import { createHyperlinkClick } from "./doc-properties-children";
|
import { createHyperlinkClick } from "./doc-properties-children";
|
||||||
@ -18,11 +17,11 @@ import { createHyperlinkClick } from "./doc-properties-children";
|
|||||||
// <attribute name="hidden" type="xsd:boolean" use="optional" default="false" />
|
// <attribute name="hidden" type="xsd:boolean" use="optional" default="false" />
|
||||||
// </complexType>
|
// </complexType>
|
||||||
|
|
||||||
export interface DocPropertiesOptions {
|
export type DocPropertiesOptions = {
|
||||||
readonly name: string;
|
readonly name: string;
|
||||||
readonly description: string;
|
readonly description: string;
|
||||||
readonly title: string;
|
readonly title: string;
|
||||||
}
|
};
|
||||||
|
|
||||||
export class DocProperties extends XmlComponent {
|
export class DocProperties extends XmlComponent {
|
||||||
private readonly docPropertiesUniqueNumericId = docPropertiesUniqueNumericIdGen();
|
private readonly docPropertiesUniqueNumericId = docPropertiesUniqueNumericIdGen();
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import { describe, expect, it } from "vitest";
|
import { describe, expect, it } from "vitest";
|
||||||
|
|
||||||
import { IContext } from "@file/xml-components";
|
|
||||||
import { Formatter } from "@export/formatter";
|
import { Formatter } from "@export/formatter";
|
||||||
|
import { IContext } from "@file/xml-components";
|
||||||
|
|
||||||
import { ConcreteHyperlink, TextRun } from "../";
|
import { ConcreteHyperlink, TextRun } from "../";
|
||||||
import { Drawing, IDrawingOptions } from "./drawing";
|
import { Drawing, IDrawingOptions } from "./drawing";
|
||||||
@ -80,7 +80,6 @@ describe("Drawing", () => {
|
|||||||
{
|
{
|
||||||
"a:graphicFrameLocks": {
|
"a:graphicFrameLocks": {
|
||||||
_attr: {
|
_attr: {
|
||||||
// tslint:disable-next-line:object-literal-key-quotes
|
|
||||||
noChangeAspect: 1,
|
noChangeAspect: 1,
|
||||||
"xmlns:a": "http://schemas.openxmlformats.org/drawingml/2006/main",
|
"xmlns:a": "http://schemas.openxmlformats.org/drawingml/2006/main",
|
||||||
},
|
},
|
||||||
@ -139,7 +138,6 @@ describe("Drawing", () => {
|
|||||||
{
|
{
|
||||||
"a:blip": {
|
"a:blip": {
|
||||||
_attr: {
|
_attr: {
|
||||||
// tslint:disable-next-line:object-literal-key-quotes
|
|
||||||
cstate: "none",
|
cstate: "none",
|
||||||
"r:embed": "rId{test.jpg}",
|
"r:embed": "rId{test.jpg}",
|
||||||
},
|
},
|
||||||
@ -311,7 +309,6 @@ describe("Drawing", () => {
|
|||||||
{
|
{
|
||||||
"a:graphicFrameLocks": {
|
"a:graphicFrameLocks": {
|
||||||
_attr: {
|
_attr: {
|
||||||
// tslint:disable-next-line:object-literal-key-quotes
|
|
||||||
noChangeAspect: 1,
|
noChangeAspect: 1,
|
||||||
"xmlns:a": "http://schemas.openxmlformats.org/drawingml/2006/main",
|
"xmlns:a": "http://schemas.openxmlformats.org/drawingml/2006/main",
|
||||||
},
|
},
|
||||||
@ -370,7 +367,6 @@ describe("Drawing", () => {
|
|||||||
{
|
{
|
||||||
"a:blip": {
|
"a:blip": {
|
||||||
_attr: {
|
_attr: {
|
||||||
// tslint:disable-next-line:object-literal-key-quotes
|
|
||||||
cstate: "none",
|
cstate: "none",
|
||||||
"r:embed": "rId{test.jpg}",
|
"r:embed": "rId{test.jpg}",
|
||||||
},
|
},
|
||||||
@ -554,7 +550,6 @@ describe("Drawing", () => {
|
|||||||
{
|
{
|
||||||
"a:graphicFrameLocks": {
|
"a:graphicFrameLocks": {
|
||||||
_attr: {
|
_attr: {
|
||||||
// tslint:disable-next-line:object-literal-key-quotes
|
|
||||||
noChangeAspect: 1,
|
noChangeAspect: 1,
|
||||||
"xmlns:a": "http://schemas.openxmlformats.org/drawingml/2006/main",
|
"xmlns:a": "http://schemas.openxmlformats.org/drawingml/2006/main",
|
||||||
},
|
},
|
||||||
@ -622,7 +617,6 @@ describe("Drawing", () => {
|
|||||||
{
|
{
|
||||||
"a:blip": {
|
"a:blip": {
|
||||||
_attr: {
|
_attr: {
|
||||||
// tslint:disable-next-line:object-literal-key-quotes
|
|
||||||
cstate: "none",
|
cstate: "none",
|
||||||
"r:embed": "rId{test.jpg}",
|
"r:embed": "rId{test.jpg}",
|
||||||
},
|
},
|
||||||
|
@ -14,11 +14,11 @@ export type IDistance = {
|
|||||||
readonly distR?: number;
|
readonly distR?: number;
|
||||||
};
|
};
|
||||||
|
|
||||||
export interface IDrawingOptions {
|
export type IDrawingOptions = {
|
||||||
readonly floating?: IFloating;
|
readonly floating?: IFloating;
|
||||||
readonly docProperties?: DocPropertiesOptions;
|
readonly docProperties?: DocPropertiesOptions;
|
||||||
readonly outline?: OutlineOptions;
|
readonly outline?: OutlineOptions;
|
||||||
}
|
};
|
||||||
|
|
||||||
// <xsd:complexType name="CT_Drawing">
|
// <xsd:complexType name="CT_Drawing">
|
||||||
// <xsd:choice minOccurs="1" maxOccurs="unbounded">
|
// <xsd:choice minOccurs="1" maxOccurs="unbounded">
|
||||||
|
@ -4,7 +4,6 @@ import { HorizontalPositionAlign, VerticalPositionAlign } from "@file/shared/ali
|
|||||||
|
|
||||||
import { ITextWrapping } from "../text-wrap";
|
import { ITextWrapping } from "../text-wrap";
|
||||||
|
|
||||||
/* eslint-disable @typescript-eslint/naming-convention */
|
|
||||||
export const HorizontalPositionRelativeFrom = {
|
export const HorizontalPositionRelativeFrom = {
|
||||||
CHARACTER: "character",
|
CHARACTER: "character",
|
||||||
COLUMN: "column",
|
COLUMN: "column",
|
||||||
@ -27,27 +26,26 @@ export const VerticalPositionRelativeFrom = {
|
|||||||
TOP_MARGIN: "topMargin",
|
TOP_MARGIN: "topMargin",
|
||||||
} as const;
|
} as const;
|
||||||
|
|
||||||
/* eslint-enable */
|
export type IHorizontalPositionOptions = {
|
||||||
export interface IHorizontalPositionOptions {
|
|
||||||
readonly relative?: (typeof HorizontalPositionRelativeFrom)[keyof typeof HorizontalPositionRelativeFrom];
|
readonly relative?: (typeof HorizontalPositionRelativeFrom)[keyof typeof HorizontalPositionRelativeFrom];
|
||||||
readonly align?: (typeof HorizontalPositionAlign)[keyof typeof HorizontalPositionAlign];
|
readonly align?: (typeof HorizontalPositionAlign)[keyof typeof HorizontalPositionAlign];
|
||||||
readonly offset?: number;
|
readonly offset?: number;
|
||||||
}
|
};
|
||||||
|
|
||||||
export interface IVerticalPositionOptions {
|
export type IVerticalPositionOptions = {
|
||||||
readonly relative?: (typeof VerticalPositionRelativeFrom)[keyof typeof VerticalPositionRelativeFrom];
|
readonly relative?: (typeof VerticalPositionRelativeFrom)[keyof typeof VerticalPositionRelativeFrom];
|
||||||
readonly align?: (typeof VerticalPositionAlign)[keyof typeof VerticalPositionAlign];
|
readonly align?: (typeof VerticalPositionAlign)[keyof typeof VerticalPositionAlign];
|
||||||
readonly offset?: number;
|
readonly offset?: number;
|
||||||
}
|
};
|
||||||
|
|
||||||
export interface IMargins {
|
export type IMargins = {
|
||||||
readonly left?: number;
|
readonly left?: number;
|
||||||
readonly bottom?: number;
|
readonly bottom?: number;
|
||||||
readonly top?: number;
|
readonly top?: number;
|
||||||
readonly right?: number;
|
readonly right?: number;
|
||||||
}
|
};
|
||||||
|
|
||||||
export interface IFloating {
|
export type IFloating = {
|
||||||
readonly horizontalPosition: IHorizontalPositionOptions;
|
readonly horizontalPosition: IHorizontalPositionOptions;
|
||||||
readonly verticalPosition: IVerticalPositionOptions;
|
readonly verticalPosition: IVerticalPositionOptions;
|
||||||
readonly allowOverlap?: boolean;
|
readonly allowOverlap?: boolean;
|
||||||
@ -57,4 +55,4 @@ export interface IFloating {
|
|||||||
readonly margins?: IMargins;
|
readonly margins?: IMargins;
|
||||||
readonly wrap?: ITextWrapping;
|
readonly wrap?: ITextWrapping;
|
||||||
readonly zIndex?: number;
|
readonly zIndex?: number;
|
||||||
}
|
};
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
// http://officeopenxml.com/drwPicFloating-position.php
|
// http://officeopenxml.com/drwPicFloating-position.php
|
||||||
import { XmlAttributeComponent, XmlComponent } from "@file/xml-components";
|
import { XmlAttributeComponent, XmlComponent } from "@file/xml-components";
|
||||||
|
|
||||||
import { Align } from "./align";
|
import { Align } from "./align";
|
||||||
import { HorizontalPositionRelativeFrom, IHorizontalPositionOptions } from "./floating-position";
|
import { HorizontalPositionRelativeFrom, IHorizontalPositionOptions } from "./floating-position";
|
||||||
import { PositionOffset } from "./position-offset";
|
import { PositionOffset } from "./position-offset";
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
// http://officeopenxml.com/drwPicFloating-position.php
|
// http://officeopenxml.com/drwPicFloating-position.php
|
||||||
import { XmlAttributeComponent, XmlComponent } from "@file/xml-components";
|
import { XmlAttributeComponent, XmlComponent } from "@file/xml-components";
|
||||||
|
|
||||||
import { Align } from "./align";
|
import { Align } from "./align";
|
||||||
import { IVerticalPositionOptions, VerticalPositionRelativeFrom } from "./floating-position";
|
import { IVerticalPositionOptions, VerticalPositionRelativeFrom } from "./floating-position";
|
||||||
import { PositionOffset } from "./position-offset";
|
import { PositionOffset } from "./position-offset";
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import { XmlComponent } from "@file/xml-components";
|
import { XmlComponent } from "@file/xml-components";
|
||||||
|
|
||||||
import { GraphicFrameLockAttributes } from "./graphic-frame-lock-attributes";
|
import { GraphicFrameLockAttributes } from "./graphic-frame-lock-attributes";
|
||||||
|
|
||||||
export class GraphicFrameLocks extends XmlComponent {
|
export class GraphicFrameLocks extends XmlComponent {
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import { XmlComponent } from "@file/xml-components";
|
import { XmlComponent } from "@file/xml-components";
|
||||||
|
|
||||||
import { GraphicFrameLocks } from "./graphic-frame-locks/graphic-frame-locks";
|
import { GraphicFrameLocks } from "./graphic-frame-locks/graphic-frame-locks";
|
||||||
|
|
||||||
export class GraphicFrameProperties extends XmlComponent {
|
export class GraphicFrameProperties extends XmlComponent {
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import { BuilderElement, XmlComponent } from "@file/xml-components";
|
|
||||||
import { IMediaData } from "@file/media";
|
import { IMediaData } from "@file/media";
|
||||||
|
import { BuilderElement, XmlComponent } from "@file/xml-components";
|
||||||
|
|
||||||
const createSvgBlip = (mediaData: IMediaData): XmlComponent =>
|
const createSvgBlip = (mediaData: IMediaData): XmlComponent =>
|
||||||
new BuilderElement({
|
new BuilderElement({
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
import { IMediaData } from "@file/media";
|
import { IMediaData } from "@file/media";
|
||||||
import { BuilderElement, XmlComponent } from "@file/xml-components";
|
import { BuilderElement, XmlComponent } from "@file/xml-components";
|
||||||
|
|
||||||
import { createExtentionList } from "./blip-extentions";
|
import { createExtentionList } from "./blip-extentions";
|
||||||
|
|
||||||
type BlipAttributes = {
|
type BlipAttributes = {
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import { XmlComponent } from "@file/xml-components";
|
import { XmlComponent } from "@file/xml-components";
|
||||||
|
|
||||||
import { PicLocks } from "./pic-locks/pic-locks";
|
import { PicLocks } from "./pic-locks/pic-locks";
|
||||||
|
|
||||||
export class ChildNonVisualProperties extends XmlComponent {
|
export class ChildNonVisualProperties extends XmlComponent {
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import { XmlComponent } from "@file/xml-components";
|
import { XmlComponent } from "@file/xml-components";
|
||||||
|
|
||||||
import { PicLocksAttributes } from "./pic-locks-attributes";
|
import { PicLocksAttributes } from "./pic-locks-attributes";
|
||||||
|
|
||||||
export class PicLocks extends XmlComponent {
|
export class PicLocks extends XmlComponent {
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import { XmlComponent } from "@file/xml-components";
|
import { XmlComponent } from "@file/xml-components";
|
||||||
|
|
||||||
import { ChildNonVisualProperties } from "./child-non-visual-pic-properties/child-non-visual-pic-properties";
|
import { ChildNonVisualProperties } from "./child-non-visual-pic-properties/child-non-visual-pic-properties";
|
||||||
import { NonVisualProperties } from "./non-visual-properties/non-visual-properties";
|
import { NonVisualProperties } from "./non-visual-properties/non-visual-properties";
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import { IContext, IXmlableObject, XmlComponent } from "@file/xml-components";
|
|
||||||
import { createHyperlinkClick } from "@file/drawing/doc-properties/doc-properties-children";
|
import { createHyperlinkClick } from "@file/drawing/doc-properties/doc-properties-children";
|
||||||
import { ConcreteHyperlink } from "@file/paragraph";
|
import { ConcreteHyperlink } from "@file/paragraph";
|
||||||
|
import { IContext, IXmlableObject, XmlComponent } from "@file/xml-components";
|
||||||
|
|
||||||
import { NonVisualPropertiesAttributes } from "./non-visual-properties-attributes";
|
import { NonVisualPropertiesAttributes } from "./non-visual-properties-attributes";
|
||||||
|
|
||||||
|
@ -5,8 +5,8 @@ import { XmlComponent } from "@file/xml-components";
|
|||||||
import { BlipFill } from "./blip/blip-fill";
|
import { BlipFill } from "./blip/blip-fill";
|
||||||
import { NonVisualPicProperties } from "./non-visual-pic-properties/non-visual-pic-properties";
|
import { NonVisualPicProperties } from "./non-visual-pic-properties/non-visual-pic-properties";
|
||||||
import { PicAttributes } from "./pic-attributes";
|
import { PicAttributes } from "./pic-attributes";
|
||||||
import { ShapeProperties } from "./shape-properties/shape-properties";
|
|
||||||
import { OutlineOptions } from "./shape-properties/outline/outline";
|
import { OutlineOptions } from "./shape-properties/outline/outline";
|
||||||
|
import { ShapeProperties } from "./shape-properties/shape-properties";
|
||||||
|
|
||||||
export class Pic extends XmlComponent {
|
export class Pic extends XmlComponent {
|
||||||
public constructor({
|
public constructor({
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
import { describe, expect, it } from "vitest";
|
import { describe, expect, it } from "vitest";
|
||||||
|
|
||||||
import { Formatter } from "@export/formatter";
|
import { Formatter } from "@export/formatter";
|
||||||
|
|
||||||
import { Form } from "./form/form";
|
import { Form } from "./form/form";
|
||||||
|
|
||||||
describe("Form", () => {
|
describe("Form", () => {
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
// http://officeopenxml.com/drwSp-size.php
|
// http://officeopenxml.com/drwSp-size.php
|
||||||
import { XmlComponent } from "@file/xml-components";
|
import { XmlComponent } from "@file/xml-components";
|
||||||
|
|
||||||
import { ExtentsAttributes } from "./extents-attributes";
|
import { ExtentsAttributes } from "./extents-attributes";
|
||||||
|
|
||||||
export class Extents extends XmlComponent {
|
export class Extents extends XmlComponent {
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
// http://officeopenxml.com/drwSp-size.php
|
// http://officeopenxml.com/drwSp-size.php
|
||||||
import { XmlComponent } from "@file/xml-components";
|
import { XmlComponent } from "@file/xml-components";
|
||||||
|
|
||||||
import { OffsetAttributes } from "./off-attributes";
|
import { OffsetAttributes } from "./off-attributes";
|
||||||
|
|
||||||
export class Offset extends XmlComponent {
|
export class Offset extends XmlComponent {
|
||||||
|
@ -1,8 +1,9 @@
|
|||||||
// http://officeopenxml.com/drwSp-outline.php
|
// http://officeopenxml.com/drwSp-outline.php
|
||||||
import { BuilderElement, XmlComponent } from "@file/xml-components";
|
import { BuilderElement, XmlComponent } from "@file/xml-components";
|
||||||
|
|
||||||
import { createNoFill } from "./no-fill";
|
import { createNoFill } from "./no-fill";
|
||||||
import { createSolidFill } from "./solid-fill";
|
|
||||||
import { SchemeColor } from "./scheme-color";
|
import { SchemeColor } from "./scheme-color";
|
||||||
|
import { createSolidFill } from "./solid-fill";
|
||||||
|
|
||||||
// <xsd:complexType name="CT_TextOutlineEffect">
|
// <xsd:complexType name="CT_TextOutlineEffect">
|
||||||
// <xsd:sequence>
|
// <xsd:sequence>
|
||||||
|
@ -2,8 +2,8 @@ import { describe, expect, it } from "vitest";
|
|||||||
|
|
||||||
import { Formatter } from "@export/formatter";
|
import { Formatter } from "@export/formatter";
|
||||||
|
|
||||||
import { createSolidFill } from "./solid-fill";
|
|
||||||
import { SchemeColor } from "./scheme-color";
|
import { SchemeColor } from "./scheme-color";
|
||||||
|
import { createSolidFill } from "./solid-fill";
|
||||||
|
|
||||||
describe("createSolidFill", () => {
|
describe("createSolidFill", () => {
|
||||||
it("should create of rgb", () => {
|
it("should create of rgb", () => {
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import { BuilderElement, XmlComponent } from "@file/xml-components";
|
import { BuilderElement, XmlComponent } from "@file/xml-components";
|
||||||
|
|
||||||
import { createSchemeColor, SchemeColor } from "./scheme-color";
|
|
||||||
import { createSolidRgbColor } from "./rgb-color";
|
import { createSolidRgbColor } from "./rgb-color";
|
||||||
|
import { SchemeColor, createSchemeColor } from "./scheme-color";
|
||||||
|
|
||||||
export type RgbColorOptions = {
|
export type RgbColorOptions = {
|
||||||
readonly type: "rgb";
|
readonly type: "rgb";
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
// http://officeopenxml.com/drwSp-prstGeom.php
|
// http://officeopenxml.com/drwSp-prstGeom.php
|
||||||
import { XmlComponent } from "@file/xml-components";
|
import { XmlComponent } from "@file/xml-components";
|
||||||
|
|
||||||
import { AdjustmentValues } from "./adjustment-values/adjustment-values";
|
import { AdjustmentValues } from "./adjustment-values/adjustment-values";
|
||||||
import { PresetGeometryAttributes } from "./preset-geometry-attributes";
|
import { PresetGeometryAttributes } from "./preset-geometry-attributes";
|
||||||
|
|
||||||
|
@ -1,11 +1,12 @@
|
|||||||
// http://officeopenxml.com/drwSp-SpPr.php
|
// http://officeopenxml.com/drwSp-SpPr.php
|
||||||
import { IMediaDataTransformation } from "@file/media";
|
import { IMediaDataTransformation } from "@file/media";
|
||||||
import { XmlComponent } from "@file/xml-components";
|
import { XmlComponent } from "@file/xml-components";
|
||||||
|
|
||||||
import { Form } from "./form";
|
import { Form } from "./form";
|
||||||
|
import { createNoFill } from "./outline/no-fill";
|
||||||
import { OutlineOptions, createOutline } from "./outline/outline";
|
import { OutlineOptions, createOutline } from "./outline/outline";
|
||||||
import { PresetGeometry } from "./preset-geometry/preset-geometry";
|
import { PresetGeometry } from "./preset-geometry/preset-geometry";
|
||||||
import { ShapePropertiesAttributes } from "./shape-properties-attributes";
|
import { ShapePropertiesAttributes } from "./shape-properties-attributes";
|
||||||
import { createNoFill } from "./outline/no-fill";
|
|
||||||
|
|
||||||
export class ShapeProperties extends XmlComponent {
|
export class ShapeProperties extends XmlComponent {
|
||||||
private readonly form: Form;
|
private readonly form: Form;
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
import { describe, expect, it } from "vitest";
|
import { describe, expect, it } from "vitest";
|
||||||
|
|
||||||
import { Formatter } from "@export/formatter";
|
import { Formatter } from "@export/formatter";
|
||||||
|
|
||||||
import { createInline } from "./inline";
|
import { createInline } from "./inline";
|
||||||
|
|
||||||
describe("Inline", () => {
|
describe("Inline", () => {
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
// http://officeopenxml.com/drwPicInline.php
|
// http://officeopenxml.com/drwPicInline.php
|
||||||
import { IMediaData, IMediaDataTransformation } from "@file/media";
|
import { IMediaData, IMediaDataTransformation } from "@file/media";
|
||||||
import { BuilderElement, XmlComponent } from "@file/xml-components";
|
import { BuilderElement, XmlComponent } from "@file/xml-components";
|
||||||
|
|
||||||
import { DocProperties, DocPropertiesOptions } from "./../doc-properties/doc-properties";
|
import { DocProperties, DocPropertiesOptions } from "./../doc-properties/doc-properties";
|
||||||
import { createEffectExtent } from "./../effect-extent/effect-extent";
|
import { createEffectExtent } from "./../effect-extent/effect-extent";
|
||||||
import { Extent } from "./../extent/extent";
|
import { Extent } from "./../extent/extent";
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
// http://officeopenxml.com/drwPicFloating-textWrap.php
|
// http://officeopenxml.com/drwPicFloating-textWrap.php
|
||||||
import { IDistance } from "../drawing";
|
import { IDistance } from "../drawing";
|
||||||
|
|
||||||
/* eslint-disable @typescript-eslint/naming-convention */
|
|
||||||
export const TextWrappingType = {
|
export const TextWrappingType = {
|
||||||
NONE: 0,
|
NONE: 0,
|
||||||
SQUARE: 1,
|
SQUARE: 1,
|
||||||
@ -16,10 +15,8 @@ export const TextWrappingSide = {
|
|||||||
LARGEST: "largest",
|
LARGEST: "largest",
|
||||||
} as const;
|
} as const;
|
||||||
|
|
||||||
/* eslint-enable */
|
export type ITextWrapping = {
|
||||||
|
|
||||||
export interface ITextWrapping {
|
|
||||||
readonly type: (typeof TextWrappingType)[keyof typeof TextWrappingType];
|
readonly type: (typeof TextWrappingType)[keyof typeof TextWrappingType];
|
||||||
readonly side?: (typeof TextWrappingSide)[keyof typeof TextWrappingSide];
|
readonly side?: (typeof TextWrappingSide)[keyof typeof TextWrappingSide];
|
||||||
readonly margins?: IDistance;
|
readonly margins?: IDistance;
|
||||||
}
|
};
|
||||||
|
@ -5,9 +5,9 @@ import { IDistance } from "../drawing";
|
|||||||
import { IMargins } from "../floating";
|
import { IMargins } from "../floating";
|
||||||
import { ITextWrapping, TextWrappingSide } from "./text-wrapping";
|
import { ITextWrapping, TextWrappingSide } from "./text-wrapping";
|
||||||
|
|
||||||
interface IWrapSquareAttributes extends IDistance {
|
type IWrapSquareAttributes = {
|
||||||
readonly wrapText?: (typeof TextWrappingSide)[keyof typeof TextWrappingSide];
|
readonly wrapText?: (typeof TextWrappingSide)[keyof typeof TextWrappingSide];
|
||||||
}
|
} & IDistance;
|
||||||
|
|
||||||
class WrapSquareAttributes extends XmlAttributeComponent<IWrapSquareAttributes> {
|
class WrapSquareAttributes extends XmlAttributeComponent<IWrapSquareAttributes> {
|
||||||
protected readonly xmlKeys = {
|
protected readonly xmlKeys = {
|
||||||
|
@ -2,8 +2,10 @@ import { AppProperties } from "./app-properties/app-properties";
|
|||||||
import { ContentTypes } from "./content-types/content-types";
|
import { ContentTypes } from "./content-types/content-types";
|
||||||
import { CoreProperties, IPropertiesOptions } from "./core-properties";
|
import { CoreProperties, IPropertiesOptions } from "./core-properties";
|
||||||
import { CustomProperties } from "./custom-properties";
|
import { CustomProperties } from "./custom-properties";
|
||||||
import { DocumentWrapper } from "./document-wrapper";
|
|
||||||
import { HeaderFooterReferenceType, ISectionPropertiesOptions } from "./document/body/section-properties";
|
import { HeaderFooterReferenceType, ISectionPropertiesOptions } from "./document/body/section-properties";
|
||||||
|
import { DocumentWrapper } from "./document-wrapper";
|
||||||
|
import { FileChild } from "./file-child";
|
||||||
|
import { FontWrapper } from "./fonts/font-wrapper";
|
||||||
import { FooterWrapper, IDocumentFooter } from "./footer-wrapper";
|
import { FooterWrapper, IDocumentFooter } from "./footer-wrapper";
|
||||||
import { FootnotesWrapper } from "./footnotes-wrapper";
|
import { FootnotesWrapper } from "./footnotes-wrapper";
|
||||||
import { Footer, Header } from "./header";
|
import { Footer, Header } from "./header";
|
||||||
@ -16,10 +18,8 @@ import { Settings } from "./settings";
|
|||||||
import { Styles } from "./styles";
|
import { Styles } from "./styles";
|
||||||
import { ExternalStylesFactory } from "./styles/external-styles-factory";
|
import { ExternalStylesFactory } from "./styles/external-styles-factory";
|
||||||
import { DefaultStylesFactory } from "./styles/factory";
|
import { DefaultStylesFactory } from "./styles/factory";
|
||||||
import { FileChild } from "./file-child";
|
|
||||||
import { FontWrapper } from "./fonts/font-wrapper";
|
|
||||||
|
|
||||||
export interface ISectionOptions {
|
export type ISectionOptions = {
|
||||||
readonly headers?: {
|
readonly headers?: {
|
||||||
readonly default?: Header;
|
readonly default?: Header;
|
||||||
readonly first?: Header;
|
readonly first?: Header;
|
||||||
@ -32,7 +32,7 @@ export interface ISectionOptions {
|
|||||||
};
|
};
|
||||||
readonly properties?: ISectionPropertiesOptions;
|
readonly properties?: ISectionPropertiesOptions;
|
||||||
readonly children: readonly FileChild[];
|
readonly children: readonly FileChild[];
|
||||||
}
|
};
|
||||||
|
|
||||||
export class File {
|
export class File {
|
||||||
// eslint-disable-next-line functional/prefer-readonly-type
|
// eslint-disable-next-line functional/prefer-readonly-type
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
import { BuilderElement, XmlComponent } from "@file/xml-components";
|
import { BuilderElement, XmlComponent } from "@file/xml-components";
|
||||||
|
|
||||||
import { createRegularFont } from "./create-regular-font";
|
import { createRegularFont } from "./create-regular-font";
|
||||||
import { FontOptionsWithKey } from "./font-wrapper";
|
|
||||||
import { CharacterSet } from "./font";
|
import { CharacterSet } from "./font";
|
||||||
|
import { FontOptionsWithKey } from "./font-wrapper";
|
||||||
|
|
||||||
// <xsd:complexType name="CT_FontsList">
|
// <xsd:complexType name="CT_FontsList">
|
||||||
// <xsd:sequence>
|
// <xsd:sequence>
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
import { BuilderElement, createStringElement, OnOffElement, XmlComponent } from "@file/xml-components";
|
import { BuilderElement, OnOffElement, XmlComponent, createStringElement } from "@file/xml-components";
|
||||||
|
|
||||||
// <xsd:complexType name="CT_Font">
|
// <xsd:complexType name="CT_Font">
|
||||||
// <xsd:sequence>
|
// <xsd:sequence>
|
||||||
@ -27,7 +27,7 @@ import { BuilderElement, createStringElement, OnOffElement, XmlComponent } from
|
|||||||
// </xsd:complexType>
|
// </xsd:complexType>
|
||||||
|
|
||||||
// http://www.datypic.com/sc/ooxml/e-w_embedRegular-1.html
|
// http://www.datypic.com/sc/ooxml/e-w_embedRegular-1.html
|
||||||
export interface IFontRelationshipOptions {
|
export type IFontRelationshipOptions = {
|
||||||
/**
|
/**
|
||||||
* Relationship to Part
|
* Relationship to Part
|
||||||
*/
|
*/
|
||||||
@ -40,7 +40,7 @@ export interface IFontRelationshipOptions {
|
|||||||
* Embedded Font Is Subsetted
|
* Embedded Font Is Subsetted
|
||||||
*/
|
*/
|
||||||
readonly subsetted?: boolean;
|
readonly subsetted?: boolean;
|
||||||
}
|
};
|
||||||
|
|
||||||
export const CharacterSet = {
|
export const CharacterSet = {
|
||||||
ANSI: "00",
|
ANSI: "00",
|
||||||
|
@ -8,10 +8,10 @@ import { Paragraph } from "./paragraph";
|
|||||||
import { Relationships } from "./relationships";
|
import { Relationships } from "./relationships";
|
||||||
import { Table } from "./table";
|
import { Table } from "./table";
|
||||||
|
|
||||||
export interface IDocumentFooter {
|
export type IDocumentFooter = {
|
||||||
readonly footer: FooterWrapper;
|
readonly footer: FooterWrapper;
|
||||||
readonly type: (typeof HeaderFooterReferenceType)[keyof typeof HeaderFooterReferenceType];
|
readonly type: (typeof HeaderFooterReferenceType)[keyof typeof HeaderFooterReferenceType];
|
||||||
}
|
};
|
||||||
|
|
||||||
export class FooterWrapper implements IViewWrapper {
|
export class FooterWrapper implements IViewWrapper {
|
||||||
private readonly footer: Footer;
|
private readonly footer: Footer;
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
// http://officeopenxml.com/WPfooters.php
|
// http://officeopenxml.com/WPfooters.php
|
||||||
import { InitializableXmlComponent, XmlComponent } from "@file/xml-components";
|
import { InitializableXmlComponent, XmlComponent } from "@file/xml-components";
|
||||||
|
|
||||||
import { Paragraph } from "../paragraph";
|
import { Paragraph } from "../paragraph";
|
||||||
import { Table } from "../table";
|
import { Table } from "../table";
|
||||||
import { FooterAttributes } from "./footer-attributes";
|
import { FooterAttributes } from "./footer-attributes";
|
||||||
|
@ -6,15 +6,15 @@ import { FootnoteRefRun } from "./run/footnote-ref-run";
|
|||||||
|
|
||||||
export const FootnoteType = {
|
export const FootnoteType = {
|
||||||
SEPERATOR: "separator",
|
SEPERATOR: "separator",
|
||||||
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
||||||
CONTINUATION_SEPERATOR: "continuationSeparator",
|
CONTINUATION_SEPERATOR: "continuationSeparator",
|
||||||
} as const;
|
} as const;
|
||||||
|
|
||||||
export interface IFootnoteOptions {
|
export type IFootnoteOptions = {
|
||||||
readonly id: number;
|
readonly id: number;
|
||||||
readonly type?: (typeof FootnoteType)[keyof typeof FootnoteType];
|
readonly type?: (typeof FootnoteType)[keyof typeof FootnoteType];
|
||||||
readonly children: readonly Paragraph[];
|
readonly children: readonly Paragraph[];
|
||||||
}
|
};
|
||||||
|
|
||||||
export class Footnote extends XmlComponent {
|
export class Footnote extends XmlComponent {
|
||||||
public constructor(options: IFootnoteOptions) {
|
public constructor(options: IFootnoteOptions) {
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import { Run } from "@file/paragraph";
|
import { Run } from "@file/paragraph";
|
||||||
|
|
||||||
import { ContinuationSeperator } from "./continuation-seperator";
|
import { ContinuationSeperator } from "./continuation-seperator";
|
||||||
|
|
||||||
export class ContinuationSeperatorRun extends Run {
|
export class ContinuationSeperatorRun extends Run {
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import { Run } from "@file/paragraph";
|
import { Run } from "@file/paragraph";
|
||||||
|
|
||||||
import { Seperator } from "./seperator";
|
import { Seperator } from "./seperator";
|
||||||
|
|
||||||
export class SeperatorRun extends Run {
|
export class SeperatorRun extends Run {
|
||||||
|
@ -8,10 +8,10 @@ import { Paragraph } from "./paragraph";
|
|||||||
import { Relationships } from "./relationships";
|
import { Relationships } from "./relationships";
|
||||||
import { Table } from "./table";
|
import { Table } from "./table";
|
||||||
|
|
||||||
export interface IDocumentHeader {
|
export type IDocumentHeader = {
|
||||||
readonly header: HeaderWrapper;
|
readonly header: HeaderWrapper;
|
||||||
readonly type: (typeof HeaderFooterReferenceType)[keyof typeof HeaderFooterReferenceType];
|
readonly type: (typeof HeaderFooterReferenceType)[keyof typeof HeaderFooterReferenceType];
|
||||||
}
|
};
|
||||||
|
|
||||||
export class HeaderWrapper implements IViewWrapper {
|
export class HeaderWrapper implements IViewWrapper {
|
||||||
private readonly header: Header;
|
private readonly header: Header;
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
import { Paragraph } from "./paragraph";
|
import { Paragraph } from "./paragraph";
|
||||||
import { Table } from "./table";
|
import { Table } from "./table";
|
||||||
|
|
||||||
export interface IHeaderOptions {
|
export type IHeaderOptions = {
|
||||||
readonly children: readonly (Paragraph | Table)[];
|
readonly children: readonly (Paragraph | Table)[];
|
||||||
}
|
};
|
||||||
|
|
||||||
export class Header {
|
export class Header {
|
||||||
public readonly options: IHeaderOptions;
|
public readonly options: IHeaderOptions;
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
// http://officeopenxml.com/WPheaders.php
|
// http://officeopenxml.com/WPheaders.php
|
||||||
import { InitializableXmlComponent, XmlComponent } from "@file/xml-components";
|
import { InitializableXmlComponent, XmlComponent } from "@file/xml-components";
|
||||||
|
|
||||||
import { Paragraph } from "../paragraph";
|
import { Paragraph } from "../paragraph";
|
||||||
import { Table } from "../table";
|
import { Table } from "../table";
|
||||||
import { HeaderAttributes } from "./header-attributes";
|
import { HeaderAttributes } from "./header-attributes";
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
export interface IMediaDataTransformation {
|
export type IMediaDataTransformation = {
|
||||||
readonly pixels: {
|
readonly pixels: {
|
||||||
readonly x: number;
|
readonly x: number;
|
||||||
readonly y: number;
|
readonly y: number;
|
||||||
@ -12,7 +12,7 @@ export interface IMediaDataTransformation {
|
|||||||
readonly horizontal?: boolean;
|
readonly horizontal?: boolean;
|
||||||
};
|
};
|
||||||
readonly rotation?: number;
|
readonly rotation?: number;
|
||||||
}
|
};
|
||||||
|
|
||||||
type CoreMediaData = {
|
type CoreMediaData = {
|
||||||
readonly fileName: string;
|
readonly fileName: string;
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
// tslint:disable:object-literal-key-quotes
|
|
||||||
import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
|
import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
|
||||||
|
|
||||||
import * as convenienceFunctions from "@util/convenience-functions";
|
import * as convenienceFunctions from "@util/convenience-functions";
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import { IMediaData } from "./data";
|
import { IMediaData } from "./data";
|
||||||
|
|
||||||
export interface IMediaTransformation {
|
export type IMediaTransformation = {
|
||||||
readonly width: number;
|
readonly width: number;
|
||||||
readonly height: number;
|
readonly height: number;
|
||||||
readonly flip?: {
|
readonly flip?: {
|
||||||
@ -8,7 +8,7 @@ export interface IMediaTransformation {
|
|||||||
readonly horizontal?: boolean;
|
readonly horizontal?: boolean;
|
||||||
};
|
};
|
||||||
readonly rotation?: number;
|
readonly rotation?: number;
|
||||||
}
|
};
|
||||||
|
|
||||||
export class Media {
|
export class Media {
|
||||||
// eslint-disable-next-line functional/prefer-readonly-type
|
// eslint-disable-next-line functional/prefer-readonly-type
|
||||||
|
@ -3,8 +3,8 @@ import { describe, expect, it } from "vitest";
|
|||||||
import { Formatter } from "@export/formatter";
|
import { Formatter } from "@export/formatter";
|
||||||
|
|
||||||
import { AlignmentType, EmphasisMarkType, TabStopPosition } from "../paragraph";
|
import { AlignmentType, EmphasisMarkType, TabStopPosition } from "../paragraph";
|
||||||
import { UnderlineType } from "../paragraph/run/underline";
|
|
||||||
import { HighlightColor } from "../paragraph/run/properties";
|
import { HighlightColor } from "../paragraph/run/properties";
|
||||||
|
import { UnderlineType } from "../paragraph/run/underline";
|
||||||
import { ShadingType } from "../shading";
|
import { ShadingType } from "../shading";
|
||||||
import { AbstractNumbering } from "./abstract-numbering";
|
import { AbstractNumbering } from "./abstract-numbering";
|
||||||
import { LevelFormat, LevelSuffix } from "./level";
|
import { LevelFormat, LevelSuffix } from "./level";
|
||||||
|
@ -202,7 +202,7 @@ export const LevelSuffix = {
|
|||||||
TAB: "tab",
|
TAB: "tab",
|
||||||
} as const;
|
} as const;
|
||||||
|
|
||||||
export interface ILevelsOptions {
|
export type ILevelsOptions = {
|
||||||
readonly level: number;
|
readonly level: number;
|
||||||
readonly format?: (typeof LevelFormat)[keyof typeof LevelFormat];
|
readonly format?: (typeof LevelFormat)[keyof typeof LevelFormat];
|
||||||
readonly text?: string;
|
readonly text?: string;
|
||||||
@ -214,7 +214,7 @@ export interface ILevelsOptions {
|
|||||||
readonly run?: IRunStylePropertiesOptions;
|
readonly run?: IRunStylePropertiesOptions;
|
||||||
readonly paragraph?: ILevelParagraphStylePropertiesOptions;
|
readonly paragraph?: ILevelParagraphStylePropertiesOptions;
|
||||||
};
|
};
|
||||||
}
|
};
|
||||||
|
|
||||||
// <xsd:complexType name="CT_LevelSuffix">
|
// <xsd:complexType name="CT_LevelSuffix">
|
||||||
// <xsd:attribute name="val" type="ST_LevelSuffix" use="required"/>
|
// <xsd:attribute name="val" type="ST_LevelSuffix" use="required"/>
|
||||||
|
@ -18,18 +18,18 @@ class NumAttributes extends XmlAttributeComponent<{
|
|||||||
protected readonly xmlKeys = { numId: "w:numId" };
|
protected readonly xmlKeys = { numId: "w:numId" };
|
||||||
}
|
}
|
||||||
|
|
||||||
interface IOverrideLevel {
|
type IOverrideLevel = {
|
||||||
readonly num: number;
|
readonly num: number;
|
||||||
readonly start?: number;
|
readonly start?: number;
|
||||||
}
|
};
|
||||||
|
|
||||||
export interface IConcreteNumberingOptions {
|
export type IConcreteNumberingOptions = {
|
||||||
readonly numId: number;
|
readonly numId: number;
|
||||||
readonly abstractNumId: number;
|
readonly abstractNumId: number;
|
||||||
readonly reference: string;
|
readonly reference: string;
|
||||||
readonly instance: number;
|
readonly instance: number;
|
||||||
readonly overrideLevels?: readonly IOverrideLevel[];
|
readonly overrideLevels?: readonly IOverrideLevel[];
|
||||||
}
|
};
|
||||||
|
|
||||||
// <xsd:complexType name="CT_Numbering">
|
// <xsd:complexType name="CT_Numbering">
|
||||||
// ...
|
// ...
|
||||||
|
@ -4,17 +4,17 @@ import { AlignmentType } from "@file/paragraph";
|
|||||||
import { IContext, IXmlableObject, XmlComponent } from "@file/xml-components";
|
import { IContext, IXmlableObject, XmlComponent } from "@file/xml-components";
|
||||||
import { abstractNumUniqueNumericIdGen, concreteNumUniqueNumericIdGen, convertInchesToTwip } from "@util/convenience-functions";
|
import { abstractNumUniqueNumericIdGen, concreteNumUniqueNumericIdGen, convertInchesToTwip } from "@util/convenience-functions";
|
||||||
|
|
||||||
import { DocumentAttributes } from "../document/document-attributes";
|
|
||||||
import { AbstractNumbering } from "./abstract-numbering";
|
import { AbstractNumbering } from "./abstract-numbering";
|
||||||
import { ILevelsOptions, LevelFormat } from "./level";
|
import { ILevelsOptions, LevelFormat } from "./level";
|
||||||
import { ConcreteNumbering } from "./num";
|
import { ConcreteNumbering } from "./num";
|
||||||
|
import { DocumentAttributes } from "../document/document-attributes";
|
||||||
|
|
||||||
export interface INumberingOptions {
|
export type INumberingOptions = {
|
||||||
readonly config: readonly {
|
readonly config: readonly {
|
||||||
readonly levels: readonly ILevelsOptions[];
|
readonly levels: readonly ILevelsOptions[];
|
||||||
readonly reference: string;
|
readonly reference: string;
|
||||||
}[];
|
}[];
|
||||||
}
|
};
|
||||||
|
|
||||||
// <xsd:element name="numbering" type="CT_Numbering"/>
|
// <xsd:element name="numbering" type="CT_Numbering"/>
|
||||||
//
|
//
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
import { describe, expect, it } from "vitest";
|
import { describe, expect, it } from "vitest";
|
||||||
|
|
||||||
import { Formatter } from "@export/formatter";
|
import { Formatter } from "@export/formatter";
|
||||||
|
|
||||||
import { Alignment, AlignmentType } from "./alignment";
|
import { Alignment, AlignmentType } from "./alignment";
|
||||||
|
|
||||||
describe("Alignment", () => {
|
describe("Alignment", () => {
|
||||||
|
@ -20,7 +20,6 @@ import { XmlAttributeComponent, XmlComponent } from "@file/xml-components";
|
|||||||
// </xsd:restriction>
|
// </xsd:restriction>
|
||||||
// </xsd:simpleType>
|
// </xsd:simpleType>
|
||||||
|
|
||||||
/* eslint-disable @typescript-eslint/naming-convention */
|
|
||||||
export const AlignmentType = {
|
export const AlignmentType = {
|
||||||
/** Align Start */
|
/** Align Start */
|
||||||
START: "start",
|
START: "start",
|
||||||
@ -50,8 +49,6 @@ export const AlignmentType = {
|
|||||||
JUSTIFIED: "both",
|
JUSTIFIED: "both",
|
||||||
} as const;
|
} as const;
|
||||||
|
|
||||||
/* eslint-enable */
|
|
||||||
|
|
||||||
export class AlignmentAttributes extends XmlAttributeComponent<{
|
export class AlignmentAttributes extends XmlAttributeComponent<{
|
||||||
readonly val: (typeof AlignmentType)[keyof typeof AlignmentType];
|
readonly val: (typeof AlignmentType)[keyof typeof AlignmentType];
|
||||||
}> {
|
}> {
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
import { beforeEach, describe, expect, it } from "vitest";
|
import { beforeEach, describe, expect, it } from "vitest";
|
||||||
|
|
||||||
import { Formatter } from "@export/formatter";
|
import { Formatter } from "@export/formatter";
|
||||||
|
|
||||||
import { BorderStyle } from "@file/border";
|
import { BorderStyle } from "@file/border";
|
||||||
|
|
||||||
import { Border, ThematicBreak } from "./border";
|
import { Border, ThematicBreak } from "./border";
|
||||||
|
|
||||||
describe("Border", () => {
|
describe("Border", () => {
|
||||||
|
@ -2,12 +2,12 @@
|
|||||||
import { BorderElement, BorderStyle, IBorderOptions } from "@file/border";
|
import { BorderElement, BorderStyle, IBorderOptions } from "@file/border";
|
||||||
import { IgnoreIfEmptyXmlComponent, XmlComponent } from "@file/xml-components";
|
import { IgnoreIfEmptyXmlComponent, XmlComponent } from "@file/xml-components";
|
||||||
|
|
||||||
export interface IBordersOptions {
|
export type IBordersOptions = {
|
||||||
readonly top?: IBorderOptions;
|
readonly top?: IBorderOptions;
|
||||||
readonly bottom?: IBorderOptions;
|
readonly bottom?: IBorderOptions;
|
||||||
readonly left?: IBorderOptions;
|
readonly left?: IBorderOptions;
|
||||||
readonly right?: IBorderOptions;
|
readonly right?: IBorderOptions;
|
||||||
}
|
};
|
||||||
|
|
||||||
export class Border extends IgnoreIfEmptyXmlComponent {
|
export class Border extends IgnoreIfEmptyXmlComponent {
|
||||||
public constructor(options: IBordersOptions) {
|
public constructor(options: IBordersOptions) {
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
// http://officeopenxml.com/WPtextSpecialContent-break.php
|
// http://officeopenxml.com/WPtextSpecialContent-break.php
|
||||||
import { Attributes, XmlComponent } from "@file/xml-components";
|
import { Attributes, XmlComponent } from "@file/xml-components";
|
||||||
|
|
||||||
import { Run } from "../run";
|
import { Run } from "../run";
|
||||||
|
|
||||||
const BreakType = {
|
const BreakType = {
|
||||||
|
@ -1,15 +1,15 @@
|
|||||||
// http://officeopenxml.com/WPindentation.php
|
// http://officeopenxml.com/WPindentation.php
|
||||||
import { NextAttributeComponent, XmlComponent } from "@file/xml-components";
|
import { NextAttributeComponent, XmlComponent } from "@file/xml-components";
|
||||||
import { PositiveUniversalMeasure, signedTwipsMeasureValue, twipsMeasureValue, UniversalMeasure } from "@util/values";
|
import { PositiveUniversalMeasure, UniversalMeasure, signedTwipsMeasureValue, twipsMeasureValue } from "@util/values";
|
||||||
|
|
||||||
export interface IIndentAttributesProperties {
|
export type IIndentAttributesProperties = {
|
||||||
readonly start?: number | UniversalMeasure;
|
readonly start?: number | UniversalMeasure;
|
||||||
readonly end?: number | UniversalMeasure;
|
readonly end?: number | UniversalMeasure;
|
||||||
readonly left?: number | UniversalMeasure;
|
readonly left?: number | UniversalMeasure;
|
||||||
readonly right?: number | UniversalMeasure;
|
readonly right?: number | UniversalMeasure;
|
||||||
readonly hanging?: number | PositiveUniversalMeasure;
|
readonly hanging?: number | PositiveUniversalMeasure;
|
||||||
readonly firstLine?: number | PositiveUniversalMeasure;
|
readonly firstLine?: number | PositiveUniversalMeasure;
|
||||||
}
|
};
|
||||||
|
|
||||||
// <xsd:complexType name="CT_PPrBase">
|
// <xsd:complexType name="CT_PPrBase">
|
||||||
// <xsd:sequence>
|
// <xsd:sequence>
|
||||||
|
@ -2,21 +2,20 @@
|
|||||||
import { XmlAttributeComponent, XmlComponent } from "@file/xml-components";
|
import { XmlAttributeComponent, XmlComponent } from "@file/xml-components";
|
||||||
|
|
||||||
export const LineRuleType = {
|
export const LineRuleType = {
|
||||||
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
||||||
AT_LEAST: "atLeast",
|
AT_LEAST: "atLeast",
|
||||||
EXACTLY: "exactly",
|
EXACTLY: "exactly",
|
||||||
EXACT: "exact",
|
EXACT: "exact",
|
||||||
AUTO: "auto",
|
AUTO: "auto",
|
||||||
} as const;
|
} as const;
|
||||||
|
|
||||||
export interface ISpacingProperties {
|
export type ISpacingProperties = {
|
||||||
readonly after?: number;
|
readonly after?: number;
|
||||||
readonly before?: number;
|
readonly before?: number;
|
||||||
readonly line?: number;
|
readonly line?: number;
|
||||||
readonly lineRule?: (typeof LineRuleType)[keyof typeof LineRuleType];
|
readonly lineRule?: (typeof LineRuleType)[keyof typeof LineRuleType];
|
||||||
readonly beforeAutoSpacing?: boolean;
|
readonly beforeAutoSpacing?: boolean;
|
||||||
readonly afterAutoSpacing?: boolean;
|
readonly afterAutoSpacing?: boolean;
|
||||||
}
|
};
|
||||||
|
|
||||||
class SpacingAttributes extends XmlAttributeComponent<ISpacingProperties> {
|
class SpacingAttributes extends XmlAttributeComponent<ISpacingProperties> {
|
||||||
protected readonly xmlKeys = {
|
protected readonly xmlKeys = {
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
// http://officeopenxml.com/WPtab.php
|
// http://officeopenxml.com/WPtab.php
|
||||||
import { XmlAttributeComponent, XmlComponent } from "@file/xml-components";
|
import { XmlAttributeComponent, XmlComponent } from "@file/xml-components";
|
||||||
|
|
||||||
export interface TabStopDefinition {
|
export type TabStopDefinition = {
|
||||||
readonly type: (typeof TabStopType)[keyof typeof TabStopType];
|
readonly type: (typeof TabStopType)[keyof typeof TabStopType];
|
||||||
readonly position: number | (typeof TabStopPosition)[keyof typeof TabStopPosition];
|
readonly position: number | (typeof TabStopPosition)[keyof typeof TabStopPosition];
|
||||||
readonly leader?: (typeof LeaderType)[keyof typeof LeaderType];
|
readonly leader?: (typeof LeaderType)[keyof typeof LeaderType];
|
||||||
}
|
};
|
||||||
|
|
||||||
export class TabStop extends XmlComponent {
|
export class TabStop extends XmlComponent {
|
||||||
public constructor(tabDefinitions: readonly TabStopDefinition[]) {
|
public constructor(tabDefinitions: readonly TabStopDefinition[]) {
|
||||||
@ -32,7 +32,7 @@ export const TabStopType = {
|
|||||||
export const LeaderType = {
|
export const LeaderType = {
|
||||||
DOT: "dot",
|
DOT: "dot",
|
||||||
HYPHEN: "hyphen",
|
HYPHEN: "hyphen",
|
||||||
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
||||||
MIDDLE_DOT: "middleDot",
|
MIDDLE_DOT: "middleDot",
|
||||||
NONE: "none",
|
NONE: "none",
|
||||||
UNDERSCORE: "underscore",
|
UNDERSCORE: "underscore",
|
||||||
|
@ -19,13 +19,13 @@ export const FrameWrap = {
|
|||||||
AROUND: "around",
|
AROUND: "around",
|
||||||
AUTO: "auto",
|
AUTO: "auto",
|
||||||
NONE: "none",
|
NONE: "none",
|
||||||
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
||||||
NOT_BESIDE: "notBeside",
|
NOT_BESIDE: "notBeside",
|
||||||
THROUGH: "through",
|
THROUGH: "through",
|
||||||
TIGHT: "tight",
|
TIGHT: "tight",
|
||||||
} as const;
|
} as const;
|
||||||
|
|
||||||
interface IBaseFrameOptions {
|
type IBaseFrameOptions = {
|
||||||
readonly anchorLock?: boolean;
|
readonly anchorLock?: boolean;
|
||||||
readonly dropCap?: (typeof DropCapType)[keyof typeof DropCapType];
|
readonly dropCap?: (typeof DropCapType)[keyof typeof DropCapType];
|
||||||
readonly width: number;
|
readonly width: number;
|
||||||
@ -41,23 +41,23 @@ interface IBaseFrameOptions {
|
|||||||
readonly vertical: number;
|
readonly vertical: number;
|
||||||
};
|
};
|
||||||
readonly rule?: (typeof HeightRule)[keyof typeof HeightRule];
|
readonly rule?: (typeof HeightRule)[keyof typeof HeightRule];
|
||||||
}
|
};
|
||||||
|
|
||||||
export interface IXYFrameOptions extends IBaseFrameOptions {
|
export type IXYFrameOptions = {
|
||||||
readonly type: "absolute";
|
readonly type: "absolute";
|
||||||
readonly position: {
|
readonly position: {
|
||||||
readonly x: number;
|
readonly x: number;
|
||||||
readonly y: number;
|
readonly y: number;
|
||||||
};
|
};
|
||||||
}
|
} & IBaseFrameOptions;
|
||||||
|
|
||||||
export interface IAlignmentFrameOptions extends IBaseFrameOptions {
|
export type IAlignmentFrameOptions = {
|
||||||
readonly type: "alignment";
|
readonly type: "alignment";
|
||||||
readonly alignment: {
|
readonly alignment: {
|
||||||
readonly x: (typeof HorizontalPositionAlign)[keyof typeof HorizontalPositionAlign];
|
readonly x: (typeof HorizontalPositionAlign)[keyof typeof HorizontalPositionAlign];
|
||||||
readonly y: (typeof VerticalPositionAlign)[keyof typeof VerticalPositionAlign];
|
readonly y: (typeof VerticalPositionAlign)[keyof typeof VerticalPositionAlign];
|
||||||
};
|
};
|
||||||
}
|
} & IBaseFrameOptions;
|
||||||
|
|
||||||
// Be wary of Typescript's Open types:
|
// Be wary of Typescript's Open types:
|
||||||
// https://stackoverflow.com/q/46370222/3481582
|
// https://stackoverflow.com/q/46370222/3481582
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
import { XmlAttributeComponent } from "@file/xml-components";
|
import { XmlAttributeComponent } from "@file/xml-components";
|
||||||
|
|
||||||
export interface IHyperlinkAttributesProperties {
|
export type IHyperlinkAttributesProperties = {
|
||||||
readonly id?: string;
|
readonly id?: string;
|
||||||
readonly anchor?: string;
|
readonly anchor?: string;
|
||||||
readonly history: number;
|
readonly history: number;
|
||||||
}
|
};
|
||||||
|
|
||||||
export class HyperlinkAttributes extends XmlAttributeComponent<IHyperlinkAttributesProperties> {
|
export class HyperlinkAttributes extends XmlAttributeComponent<IHyperlinkAttributesProperties> {
|
||||||
protected readonly xmlKeys = {
|
protected readonly xmlKeys = {
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user