Limit the list of supported highlight colors (#2522)
* Limit the list of supported highlight colors * Fix tests: use fixed highlight color values --------- Co-authored-by: ilyasogonov <sogonov.ilya@customscard.ru>
This commit is contained in:
@ -4,6 +4,7 @@ import { Formatter } from "@export/formatter";
|
|||||||
|
|
||||||
import { AlignmentType, EmphasisMarkType, TabStopPosition } from "../paragraph";
|
import { AlignmentType, EmphasisMarkType, TabStopPosition } from "../paragraph";
|
||||||
import { UnderlineType } from "../paragraph/run/underline";
|
import { UnderlineType } from "../paragraph/run/underline";
|
||||||
|
import { HighlightColor } from "../paragraph/run/properties";
|
||||||
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";
|
||||||
@ -2048,23 +2049,23 @@ describe("AbstractNumbering", () => {
|
|||||||
|
|
||||||
const highlightTests = [
|
const highlightTests = [
|
||||||
{
|
{
|
||||||
highlight: "005599",
|
highlight: HighlightColor.YELLOW,
|
||||||
expected: [{ "w:highlight": { _attr: { "w:val": "005599" } } }, { "w:highlightCs": { _attr: { "w:val": "005599" } } }],
|
expected: [{ "w:highlight": { _attr: { "w:val": "yellow" } } }, { "w:highlightCs": { _attr: { "w:val": "yellow" } } }],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
highlight: "005599",
|
highlight: HighlightColor.YELLOW,
|
||||||
highlightComplexScript: true,
|
highlightComplexScript: true,
|
||||||
expected: [{ "w:highlight": { _attr: { "w:val": "005599" } } }, { "w:highlightCs": { _attr: { "w:val": "005599" } } }],
|
expected: [{ "w:highlight": { _attr: { "w:val": "yellow" } } }, { "w:highlightCs": { _attr: { "w:val": "yellow" } } }],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
highlight: "005599",
|
highlight: HighlightColor.YELLOW,
|
||||||
highlightComplexScript: false,
|
highlightComplexScript: false,
|
||||||
expected: [{ "w:highlight": { _attr: { "w:val": "005599" } } }],
|
expected: [{ "w:highlight": { _attr: { "w:val": "yellow" } } }],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
highlight: "005599",
|
highlight: HighlightColor.YELLOW,
|
||||||
highlightComplexScript: "550099",
|
highlightComplexScript: "550099",
|
||||||
expected: [{ "w:highlight": { _attr: { "w:val": "005599" } } }, { "w:highlightCs": { _attr: { "w:val": "550099" } } }],
|
expected: [{ "w:highlight": { _attr: { "w:val": "yellow" } } }, { "w:highlightCs": { _attr: { "w:val": "550099" } } }],
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
highlightTests.forEach(({ highlight, highlightComplexScript, expected }) => {
|
highlightTests.forEach(({ highlight, highlightComplexScript, expected }) => {
|
||||||
|
@ -36,6 +36,33 @@ export const TextEffect = {
|
|||||||
NONE: "none",
|
NONE: "none",
|
||||||
} as const;
|
} as const;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* http://officeopenxml.com/WPtextShading.php
|
||||||
|
*
|
||||||
|
* Limit the list of supported highlight colors
|
||||||
|
*
|
||||||
|
* */
|
||||||
|
|
||||||
|
export const HighlightColor = {
|
||||||
|
BLACK: "black",
|
||||||
|
BLUE: "blue",
|
||||||
|
CYAN: "cyan",
|
||||||
|
DARK_BLUE: "darkBlue",
|
||||||
|
DARK_CYAN: "darkCyan",
|
||||||
|
DARK_GRAY: "darkGray",
|
||||||
|
DARK_GREEN: "darkGreen",
|
||||||
|
DARK_MAGENTA: "darkMagenta",
|
||||||
|
DARK_RED: "darkRed",
|
||||||
|
DARK_YELLOW: "darkYellow",
|
||||||
|
GREEN: "green",
|
||||||
|
LIGHT_GRAY: "lightGray",
|
||||||
|
MAGENTA: "magenta",
|
||||||
|
NONE: "none",
|
||||||
|
RED: "red",
|
||||||
|
WHITE: "white",
|
||||||
|
YELLOW: "yellow",
|
||||||
|
} as const;
|
||||||
|
|
||||||
/* eslint-enable */
|
/* eslint-enable */
|
||||||
|
|
||||||
export interface IRunStylePropertiesOptions {
|
export interface IRunStylePropertiesOptions {
|
||||||
@ -65,7 +92,7 @@ export interface IRunStylePropertiesOptions {
|
|||||||
readonly subScript?: boolean;
|
readonly subScript?: boolean;
|
||||||
readonly superScript?: boolean;
|
readonly superScript?: boolean;
|
||||||
readonly font?: string | IFontOptions | IFontAttributesProperties;
|
readonly font?: string | IFontOptions | IFontAttributesProperties;
|
||||||
readonly highlight?: string;
|
readonly highlight?: (typeof HighlightColor)[keyof typeof HighlightColor];
|
||||||
readonly highlightComplexScript?: boolean | string;
|
readonly highlightComplexScript?: boolean | string;
|
||||||
readonly characterSpacing?: number;
|
readonly characterSpacing?: number;
|
||||||
readonly shading?: IShadingAttributesProperties;
|
readonly shading?: IShadingAttributesProperties;
|
||||||
|
@ -7,7 +7,7 @@ import { ShadingType } from "@file/shading";
|
|||||||
import { EmphasisMarkType } from "./emphasis-mark";
|
import { EmphasisMarkType } from "./emphasis-mark";
|
||||||
import { PageNumber, Run } from "./run";
|
import { PageNumber, Run } from "./run";
|
||||||
import { UnderlineType } from "./underline";
|
import { UnderlineType } from "./underline";
|
||||||
import { TextEffect } from "./properties";
|
import { HighlightColor, TextEffect } from "./properties";
|
||||||
describe("Run", () => {
|
describe("Run", () => {
|
||||||
describe("#noProof()", () => {
|
describe("#noProof()", () => {
|
||||||
it("turns off spelling and grammar checkers for a run", () => {
|
it("turns off spelling and grammar checkers for a run", () => {
|
||||||
@ -215,18 +215,18 @@ describe("Run", () => {
|
|||||||
describe("#highlight()", () => {
|
describe("#highlight()", () => {
|
||||||
it("it should add highlight to the properties", () => {
|
it("it should add highlight to the properties", () => {
|
||||||
const run = new Run({
|
const run = new Run({
|
||||||
highlight: "005599",
|
highlight: HighlightColor.YELLOW,
|
||||||
});
|
});
|
||||||
const tree = new Formatter().format(run);
|
const tree = new Formatter().format(run);
|
||||||
expect(tree).to.deep.equal({
|
expect(tree).to.deep.equal({
|
||||||
"w:r": [
|
"w:r": [
|
||||||
{
|
{
|
||||||
"w:rPr": [
|
"w:rPr": [
|
||||||
{ "w:highlight": { _attr: { "w:val": "005599" } } },
|
{ "w:highlight": { _attr: { "w:val": "yellow" } } },
|
||||||
{
|
{
|
||||||
"w:highlightCs": {
|
"w:highlightCs": {
|
||||||
_attr: {
|
_attr: {
|
||||||
"w:val": "005599",
|
"w:val": "yellow",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -3,6 +3,7 @@ import { describe, expect, it } from "vitest";
|
|||||||
import { Formatter } from "@export/formatter";
|
import { Formatter } from "@export/formatter";
|
||||||
import { EmphasisMarkType } from "@file/paragraph/run/emphasis-mark";
|
import { EmphasisMarkType } from "@file/paragraph/run/emphasis-mark";
|
||||||
import { UnderlineType } from "@file/paragraph/run/underline";
|
import { UnderlineType } from "@file/paragraph/run/underline";
|
||||||
|
import { HighlightColor } from "@file/paragraph/run/properties";
|
||||||
import { ShadingType } from "@file/shading";
|
import { ShadingType } from "@file/shading";
|
||||||
import { EMPTY_OBJECT } from "@file/xml-components";
|
import { EMPTY_OBJECT } from "@file/xml-components";
|
||||||
|
|
||||||
@ -728,23 +729,23 @@ describe("CharacterStyle", () => {
|
|||||||
|
|
||||||
const highlightTests = [
|
const highlightTests = [
|
||||||
{
|
{
|
||||||
highlight: "005599",
|
highlight: HighlightColor.YELLOW,
|
||||||
expected: [{ "w:highlight": { _attr: { "w:val": "005599" } } }, { "w:highlightCs": { _attr: { "w:val": "005599" } } }],
|
expected: [{ "w:highlight": { _attr: { "w:val": "yellow" } } }, { "w:highlightCs": { _attr: { "w:val": "yellow" } } }],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
highlight: "005599",
|
highlight: HighlightColor.YELLOW,
|
||||||
highlightComplexScript: true,
|
highlightComplexScript: true,
|
||||||
expected: [{ "w:highlight": { _attr: { "w:val": "005599" } } }, { "w:highlightCs": { _attr: { "w:val": "005599" } } }],
|
expected: [{ "w:highlight": { _attr: { "w:val": "yellow" } } }, { "w:highlightCs": { _attr: { "w:val": "yellow" } } }],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
highlight: "005599",
|
highlight: HighlightColor.YELLOW,
|
||||||
highlightComplexScript: false,
|
highlightComplexScript: false,
|
||||||
expected: [{ "w:highlight": { _attr: { "w:val": "005599" } } }],
|
expected: [{ "w:highlight": { _attr: { "w:val": "yellow" } } }],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
highlight: "005599",
|
highlight: HighlightColor.YELLOW,
|
||||||
highlightComplexScript: "550099",
|
highlightComplexScript: "550099",
|
||||||
expected: [{ "w:highlight": { _attr: { "w:val": "005599" } } }, { "w:highlightCs": { _attr: { "w:val": "550099" } } }],
|
expected: [{ "w:highlight": { _attr: { "w:val": "yellow" } } }, { "w:highlightCs": { _attr: { "w:val": "550099" } } }],
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
highlightTests.forEach(({ highlight, highlightComplexScript, expected }) => {
|
highlightTests.forEach(({ highlight, highlightComplexScript, expected }) => {
|
||||||
|
@ -3,6 +3,7 @@ import { describe, expect, it } from "vitest";
|
|||||||
import { Formatter } from "@export/formatter";
|
import { Formatter } from "@export/formatter";
|
||||||
import { AlignmentType, EmphasisMarkType, TabStopPosition } from "@file/paragraph";
|
import { AlignmentType, EmphasisMarkType, TabStopPosition } from "@file/paragraph";
|
||||||
import { UnderlineType } from "@file/paragraph/run/underline";
|
import { UnderlineType } from "@file/paragraph/run/underline";
|
||||||
|
import { HighlightColor } from "@file/paragraph/run";
|
||||||
import { ShadingType } from "@file/shading";
|
import { ShadingType } from "@file/shading";
|
||||||
import { EMPTY_OBJECT } from "@file/xml-components";
|
import { EMPTY_OBJECT } from "@file/xml-components";
|
||||||
|
|
||||||
@ -615,23 +616,23 @@ describe("ParagraphStyle", () => {
|
|||||||
|
|
||||||
const highlightTests = [
|
const highlightTests = [
|
||||||
{
|
{
|
||||||
highlight: "005599",
|
highlight: HighlightColor.YELLOW,
|
||||||
expected: [{ "w:highlight": { _attr: { "w:val": "005599" } } }, { "w:highlightCs": { _attr: { "w:val": "005599" } } }],
|
expected: [{ "w:highlight": { _attr: { "w:val": "yellow" } } }, { "w:highlightCs": { _attr: { "w:val": "yellow" } } }],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
highlight: "005599",
|
highlight: HighlightColor.YELLOW,
|
||||||
highlightComplexScript: true,
|
highlightComplexScript: true,
|
||||||
expected: [{ "w:highlight": { _attr: { "w:val": "005599" } } }, { "w:highlightCs": { _attr: { "w:val": "005599" } } }],
|
expected: [{ "w:highlight": { _attr: { "w:val": "yellow" } } }, { "w:highlightCs": { _attr: { "w:val": "yellow" } } }],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
highlight: "005599",
|
highlight: HighlightColor.YELLOW,
|
||||||
highlightComplexScript: false,
|
highlightComplexScript: false,
|
||||||
expected: [{ "w:highlight": { _attr: { "w:val": "005599" } } }],
|
expected: [{ "w:highlight": { _attr: { "w:val": "yellow" } } }],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
highlight: "005599",
|
highlight: HighlightColor.YELLOW,
|
||||||
highlightComplexScript: "550099",
|
highlightComplexScript: "550099",
|
||||||
expected: [{ "w:highlight": { _attr: { "w:val": "005599" } } }, { "w:highlightCs": { _attr: { "w:val": "550099" } } }],
|
expected: [{ "w:highlight": { _attr: { "w:val": "yellow" } } }, { "w:highlightCs": { _attr: { "w:val": "550099" } } }],
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
highlightTests.forEach(({ highlight, highlightComplexScript, expected }) => {
|
highlightTests.forEach(({ highlight, highlightComplexScript, expected }) => {
|
||||||
|
Reference in New Issue
Block a user