123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149 |
- /*
- * <<
- * Davinci
- * ==
- * Copyright (C) 2016 - 2017 EDP
- * ==
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * >>
- */
- export enum HeadingElementTypes {
- HeadingOne = 'heading-one',
- HeadingTwo = 'heading-two',
- HeadingThree = 'heading-three',
- HeadingFour = 'heading-four',
- HeadingFive = 'heading-five',
- HeadingSix = 'heading-six',
- HeadingNone = 'heading-none'
- }
- export enum ListElementTypes {
- BulletedList = 'bulleted-list',
- NumberedList = 'numbered-list',
- ListItem = 'list-item'
- }
- export enum MediaElementTypes {
- Image = 'image'
- }
- export enum AnimationElementTypes {
- Marquee = 'marquee'
- }
- export enum TableElementTypes {
- Table = 'table',
- TableRow = 'table-row',
- TableCell = 'table-cell'
- }
- export enum BaseElementTypes {
- Paragraph = 'paragraph',
- Code = 'code',
- BlockQuote = 'block-quote',
- Link = 'link'
- }
- export const ElementTypes = {
- ...BaseElementTypes,
- ...HeadingElementTypes,
- ...MediaElementTypes,
- ...AnimationElementTypes,
- ...TableElementTypes,
- ...ListElementTypes
- }
- export type ElementType =
- | BaseElementTypes
- | HeadingElementTypes
- | MediaElementTypes
- | AnimationElementTypes
- | TableElementTypes
- | ListElementTypes
- export enum TextStyles {
- Bold = 'bold',
- Italic = 'italic',
- Underline = 'underline',
- StrikeThrough = 'strike-through',
- Code = 'code'
- }
- export enum BlockAlignments {
- AlignLeft = 'left',
- AlignCenter = 'center',
- AlignRight = 'right'
- }
- export enum BlockProperties {
- TextAlign = 'textAlign'
- }
- export enum TextProperties {
- FontFamily = 'fontFamily',
- FontSize = 'fontSize',
- Color = 'color',
- BackgroundColor = 'backgroundColor'
- }
- export const ElementTags: {
- [key: string]: (
- el: HTMLElement
- ) => {
- type: ElementType
- url?: string
- textAlign?: string
- }
- } = {
- A: (el) => ({ type: ElementTypes.Link, url: el.getAttribute('href') }),
- BLOCKQUOTE: () => ({ type: ElementTypes.BlockQuote }),
- H1: () => ({ type: ElementTypes.HeadingOne }),
- H2: () => ({ type: ElementTypes.HeadingTwo }),
- H3: () => ({ type: ElementTypes.HeadingThree }),
- H4: () => ({ type: ElementTypes.HeadingFour }),
- H5: () => ({ type: ElementTypes.HeadingFive }),
- H6: () => ({ type: ElementTypes.HeadingSix }),
- IMG: (el) => ({
- type: ElementTypes.Image,
- url: el.getAttribute('src'),
- width: el.getAttribute('width')
- }),
- LI: () => ({ type: ElementTypes.ListItem }),
- OL: () => ({ type: ElementTypes.NumberedList }),
- UL: () => ({ type: ElementTypes.BulletedList }),
- P: () => {
- return { type: ElementTypes.Paragraph }
- },
- PRE: () => ({ type: ElementTypes.Code }),
- TABLE: () => ({ type: ElementTypes.Table }),
- TR: () => ({ type: ElementTypes.TableRow }),
- TD: () => ({ type: ElementTypes.TableCell })
- }
- export const TextTags: {
- [key: string]: () => { [key in TextStyles]?: boolean } & {
- fontSize?: number
- color?: string
- backgroundColor?: string
- }
- } = {
- CODE: () => ({ [TextStyles.Code]: true }),
- DEL: () => ({ [TextStyles.StrikeThrough]: true }),
- EM: () => ({ [TextStyles.Italic]: true }),
- I: () => ({ [TextStyles.Italic]: true }),
- S: () => ({ [TextStyles.StrikeThrough]: true }),
- STRONG: () => ({ [TextStyles.Bold]: true }),
- U: () => ({ [TextStyles.Underline]: true }),
- SPAN: () => ({})
- }
|