Gazebo_simulation-Frontend/node_modules/jss/src/plugins/fontFaceRule.js
2020-12-21 10:29:31 -05:00

48 lines
1.1 KiB
JavaScript

/* @flow */
import toCss from '../utils/toCss'
import type {CSSFontFaceRule, RuleOptions, JssStyle, ToCssOptions, BaseRule} from '../types'
export class FontFaceRule implements BaseRule {
type = 'font-face'
at: string = '@font-face'
key: string
style: JssStyle
options: RuleOptions
isProcessed: boolean = false
renderable: ?CSSFontFaceRule
constructor(key: string, style: JssStyle, options: RuleOptions) {
this.key = key
this.style = style
this.options = options
}
/**
* Generates a CSS string.
*/
toString(options?: ToCssOptions): string {
if (Array.isArray(this.style)) {
let str = ''
for (let index = 0; index < this.style.length; index++) {
str += toCss(this.key, this.style[index])
if (this.style[index + 1]) str += '\n'
}
return str
}
return toCss(this.key, this.style, options)
}
}
export default {
onCreateRule(key: string, style: JssStyle, options: RuleOptions): FontFaceRule | null {
return key === '@font-face' ? new FontFaceRule(key, style, options) : null
}
}