| // Copyright 2020 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| /** |
| * To use images in markdown, add key in markdownImages with the image data and |
| * use the added key in markdown. |
| * @example markdown |
| * Give feedback by clicking  |
| */ |
| export interface ImageData { |
| src: string; |
| isIcon: boolean; |
| color?: string; |
| width?: string; |
| height?: string; |
| } |
| |
| /** |
| * src for image is relative url for image location. |
| * @example icon |
| * [ |
| * 'feedbackIcon', |
| * { |
| * src: 'Images/review.svg', |
| * isIcon: true, |
| * width: '20px', |
| * height: '20px', |
| * color: 'var(--icon-disabled)', |
| * }, |
| * ] |
| * |
| */ |
| |
| /** |
| * NOTE: This is only exported for tests, and it should not be |
| * imported in any component, instead add image data in map and |
| * use getMarkdownImage to get the appropriate image data. |
| **/ |
| export const markdownImages = new Map<string, ImageData>([]); |
| |
| export const getMarkdownImage = (key: string): ImageData => { |
| const image = markdownImages.get(key); |
| if (!image) { |
| throw new Error(`Markdown image with key '${key}' is not available, please check MarkdownImagesMap.ts`); |
| } |
| return image; |
| }; |