mirror of
https://github.com/niklasvh/html2canvas.git
synced 2023-08-10 21:13:10 +03:00

* initial typescript conversion * test: update overflow+transform ref test * fix: correctly render pseudo element content * fix: testrunner build * fix: karma test urls * test: update underline tests with <u> elements * test: update to es6-promise polyfill * test: remove watch from server * test: remove flow * format: update prettier for typescript * test: update eslint to use typescript parser * test: update linear gradient reftest * test: update test runner * test: update testrunner promise polyfill * fix: handle display: -webkit-flex correctly (fix #1817) * fix: correctly render gradients with clip & repeat (fix #1773) * fix: webkit-gradient function support * fix: implement radial gradients * fix: text-decoration rendering * fix: missing scroll positions for elements * ci: fix ios 11 tests * fix: ie logging * ci: improve device availability logging * fix: lint errors * ci: update to ios 12 * fix: check for console availability * ci: fix build dependency * test: update text reftests * fix: window reference for unit tests * feat: add hsl/hsla color support * fix: render options * fix: CSSKeyframesRule cssText Permission Denied on Internet Explorer 11 (#1830) * fix: option lint * fix: list type rendering * test: fix platform import * fix: ie css parsing for numbers * ci: add minified build * fix: form element rendering * fix: iframe rendering * fix: re-introduce experimental foreignobject renderer * fix: text-shadow rendering * feat: improve logging * fix: unit test logging * fix: cleanup resources * test: update overflow scrolling to work with ie * build: update build to include typings * fix: do not parse select element children * test: fix onclone test to work with older IEs * test: reduce reftest canvas sizes * test: remove dynamic setUp from list tests * test: update linear-gradient tests * build: remove old source files * build: update docs dependencies * build: fix typescript definition path * ci: include test.js on docs website
44 lines
1.3 KiB
TypeScript
44 lines
1.3 KiB
TypeScript
import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';
|
|
import {CSSValue, isIdentToken, parseFunctionArgs} from '../syntax/parser';
|
|
export type BackgroundRepeat = BACKGROUND_REPEAT[];
|
|
|
|
export enum BACKGROUND_REPEAT {
|
|
REPEAT = 0,
|
|
NO_REPEAT = 1,
|
|
REPEAT_X = 2,
|
|
REPEAT_Y = 3
|
|
}
|
|
|
|
export const backgroundRepeat: IPropertyListDescriptor<BackgroundRepeat> = {
|
|
name: 'background-repeat',
|
|
initialValue: 'repeat',
|
|
prefix: false,
|
|
type: PropertyDescriptorParsingType.LIST,
|
|
parse: (tokens: CSSValue[]): BackgroundRepeat => {
|
|
return parseFunctionArgs(tokens)
|
|
.map(values =>
|
|
values
|
|
.filter(isIdentToken)
|
|
.map(token => token.value)
|
|
.join(' ')
|
|
)
|
|
.map(parseBackgroundRepeat);
|
|
}
|
|
};
|
|
|
|
const parseBackgroundRepeat = (value: string): BACKGROUND_REPEAT => {
|
|
switch (value) {
|
|
case 'no-repeat':
|
|
return BACKGROUND_REPEAT.NO_REPEAT;
|
|
case 'repeat-x':
|
|
case 'repeat no-repeat':
|
|
return BACKGROUND_REPEAT.REPEAT_X;
|
|
case 'repeat-y':
|
|
case 'no-repeat repeat':
|
|
return BACKGROUND_REPEAT.REPEAT_Y;
|
|
case 'repeat':
|
|
default:
|
|
return BACKGROUND_REPEAT.REPEAT;
|
|
}
|
|
};
|