croco-html 3.0.3 → 3.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. package/esm2022/lib/components/add-files-btn/add-files-btn.component.mjs +2 -2
  2. package/esm2022/lib/components/editor/button-editor/button-editor.component.mjs +2 -2
  3. package/esm2022/lib/components/editor/custom-widget-editor/custom-widget-editor.component.mjs +2 -2
  4. package/esm2022/lib/components/editor/external-video-editor/embedded-video/code-video.component.mjs +9 -3
  5. package/esm2022/lib/components/editor/external-video-editor/external-video-editor.component.mjs +18 -7
  6. package/esm2022/lib/components/editor/external-video-editor/vk-video-player/vk-video-player.component.mjs +3 -3
  7. package/esm2022/lib/components/editor/external-video-editor/youtube-video-player/youtube-video-player.component.mjs +3 -3
  8. package/esm2022/lib/components/editor/html-raw-editor/html-raw-editor.component.mjs +16 -8
  9. package/esm2022/lib/components/editor/image-editor/image-editor.component.mjs +2 -10
  10. package/esm2022/lib/components/editor/main-editor-block/main-editor-block.component.mjs +3 -3
  11. package/esm2022/lib/components/editor/text-editor/text-editor.component.mjs +2 -2
  12. package/esm2022/lib/components/editor/visual-editor/DefaultTags.mjs +1 -1
  13. package/esm2022/lib/components/editor/visual-editor/visual-editor.component.mjs +20 -6
  14. package/esm2022/lib/components/xml-tags/html-raw-view/html-raw-view.component.mjs +3 -3
  15. package/esm2022/lib/components/xml-tags/xml-tag-external-video/xml-tag-external-video.component.mjs +6 -4
  16. package/esm2022/lib/extensions/BodyTagsExtensions.mjs +7 -3
  17. package/esm2022/lib/extensions/VideoMethods.mjs +3 -1
  18. package/esm2022/lib/options/index.mjs +1 -1
  19. package/esm2022/sprites-ids.type.mjs +1 -1
  20. package/fesm2022/croco-html.mjs +97 -59
  21. package/fesm2022/croco-html.mjs.map +1 -1
  22. package/lib/components/editor/external-video-editor/embedded-video/code-video.component.d.ts +3 -1
  23. package/lib/components/editor/external-video-editor/external-video-editor.component.d.ts +1 -0
  24. package/lib/components/editor/html-raw-editor/html-raw-editor.component.d.ts +8 -4
  25. package/lib/components/editor/visual-editor/visual-editor.component.d.ts +5 -0
  26. package/lib/extensions/VideoMethods.d.ts +2 -0
  27. package/lib/index.d.ts +10 -8
  28. package/lib/options/index.d.ts +9 -0
  29. package/package.json +1 -1
  30. package/sprites-ids.type.d.ts +1 -1
  31. package/src/assets/sprites/symbol/croco-html-svg-sprite.svg +1 -1
@@ -4,9 +4,11 @@ import * as i0 from "@angular/core";
4
4
  export declare class CodeVideoComponent implements OnChanges {
5
5
  private readonly _sanitizer;
6
6
  code: string;
7
+ set _useResponsiveWrapper(useResponsiveWrapper: boolean);
8
+ useResponsiveWrapper: boolean;
7
9
  safeHtml: SafeHtml;
8
10
  constructor(_sanitizer: DomSanitizer);
9
11
  ngOnChanges(changes: SimpleChanges): void;
10
12
  static ɵfac: i0.ɵɵFactoryDeclaration<CodeVideoComponent, never>;
11
- static ɵcmp: i0.ɵɵComponentDeclaration<CodeVideoComponent, "code-video", never, { "code": { "alias": "code"; "required": false; }; }, {}, never, never, true, never>;
13
+ static ɵcmp: i0.ɵɵComponentDeclaration<CodeVideoComponent, "code-video", never, { "code": { "alias": "code"; "required": false; }; "_useResponsiveWrapper": { "alias": "_useResponsiveWrapper"; "required": false; }; }, {}, never, never, true, never>;
12
14
  }
@@ -10,6 +10,7 @@ export declare class ExternalVideoEditorComponent implements OnInit {
10
10
  linkText: string;
11
11
  ngOnInit(): void;
12
12
  linkChanged(): void;
13
+ onCheck(checked: boolean): void;
13
14
  createLinkByIFrame(): void;
14
15
  static ɵfac: i0.ɵɵFactoryDeclaration<ExternalVideoEditorComponent, never>;
15
16
  static ɵcmp: i0.ɵɵComponentDeclaration<ExternalVideoEditorComponent, "croco-html-external-video-editor", never, { "tag": { "alias": "tag"; "required": false; }; }, { "onTagUpdated": "onTagUpdated"; }, never, never, true, never>;
@@ -1,11 +1,15 @@
1
- import { EventEmitter, OnInit } from '@angular/core';
1
+ import { EventEmitter, OnChanges, SimpleChanges } from '@angular/core';
2
2
  import { HtmlBodyTag } from '../../../models/models';
3
+ import { DomSanitizer, SafeHtml } from "@angular/platform-browser";
3
4
  import * as i0 from "@angular/core";
4
- export declare class HtmlRawEditorComponent implements OnInit {
5
+ export declare class HtmlRawEditorComponent implements OnChanges {
6
+ private readonly _sanitizer;
5
7
  tag: HtmlBodyTag;
6
8
  onTagUpdated: EventEmitter<HtmlBodyTag>;
7
- constructor();
8
- ngOnInit(): void;
9
+ safeHtml: SafeHtml;
10
+ constructor(_sanitizer: DomSanitizer);
11
+ ngOnChanges(changes: SimpleChanges): void;
12
+ onSafeHtmlChange(): void;
9
13
  static ɵfac: i0.ɵɵFactoryDeclaration<HtmlRawEditorComponent, never>;
10
14
  static ɵcmp: i0.ɵɵComponentDeclaration<HtmlRawEditorComponent, "croco-html-html-raw-editor", never, { "tag": { "alias": "tag"; "required": false; }; }, { "onTagUpdated": "onTagUpdated"; }, never, never, true, never>;
11
15
  }
@@ -1,11 +1,13 @@
1
1
  import { CdkDragDrop } from '@angular/cdk/drag-drop';
2
2
  import { AfterViewInit, ChangeDetectorRef, ElementRef, EventEmitter, OnInit } from '@angular/core';
3
+ import { ExternalVideoSupportedTypes } from '../../../extensions';
3
4
  import { ExternalVideoTagDataConsts } from '../../../extensions';
4
5
  import { TagItem, HtmlBodyTag } from '../../../models/models';
5
6
  import { FilePostingStarted } from '../../upload-files-btn/upload-files-btn.component';
6
7
  import { EAlignments } from "./DefaultAligments";
7
8
  import { CrocoHtmlOptions } from '../../../options';
8
9
  import { HtmlRawTagDataConsts } from "../../../extensions/HtmlRawTagDataConsts";
10
+ import { SpriteIdsType } from "../../../../sprites-ids.type";
9
11
  import * as i0 from "@angular/core";
10
12
  export declare const defaultLinkYouTube = "https://www.youtube.com/embed/4CtSAnJDfsI?si=scyBNJa0Hs2t5aLE";
11
13
  export declare const defaultLinkVk = "https://vk.com/video_ext.php?oid=-22822305&id=456241864&hd=2";
@@ -35,6 +37,7 @@ export declare class VisualEditorComponent implements OnInit, AfterViewInit {
35
37
  selectedVideoPlayer: string;
36
38
  protected readonly ExternalVideoTagDataConsts: typeof ExternalVideoTagDataConsts;
37
39
  protected readonly HtmlRawTagDataConsts: typeof HtmlRawTagDataConsts;
40
+ protected readonly ExternalVideoSupportedTypes: typeof ExternalVideoSupportedTypes;
38
41
  useHtmlRaw: boolean;
39
42
  html: string;
40
43
  isHtmlSet(): boolean;
@@ -61,6 +64,8 @@ export declare class VisualEditorComponent implements OnInit, AfterViewInit {
61
64
  recalculateBodyTags(): void;
62
65
  selectTag(data: TagItem): void;
63
66
  ngOnInit(): void;
67
+ setTagButton(type: string): SpriteIdsType;
68
+ setAlignButton(type: string): SpriteIdsType;
64
69
  static ɵfac: i0.ɵɵFactoryDeclaration<VisualEditorComponent, never>;
65
70
  static ɵcmp: i0.ɵɵComponentDeclaration<VisualEditorComponent, "croco-visual-editor", never, { "showMarkUp": { "alias": "showMarkUp"; "required": false; }; "useHtmlRaw": { "alias": "useHtmlRaw"; "required": false; }; "html": { "alias": "html"; "required": false; }; }, { "html": "html"; "onHtmlChanged": "onHtmlChanged"; "rendered": "rendered"; }, never, never, true, never>;
66
71
  }
@@ -2,6 +2,7 @@ export declare class ExternalVideoTagDataConsts {
2
2
  static TagName: string;
3
3
  static VideoTypeAttrName: string;
4
4
  static LinkAttrName: string;
5
+ static UseResponsiveWrapperAttrName: string;
5
6
  static IframeAttrName: string;
6
7
  }
7
8
  export declare class ExternalVideoSupportedTypes {
@@ -21,6 +22,7 @@ export interface ExternalVideoTagData {
21
22
  type: string;
22
23
  link: string;
23
24
  innerHtml: string;
25
+ useResponsiveWrapper: boolean;
24
26
  }
25
27
  export declare class VideoMethods {
26
28
  static ExtractExternalVideoTag(elem: HTMLElement): ExternalVideoTag;
package/lib/index.d.ts CHANGED
@@ -1,23 +1,25 @@
1
1
  import { ImageEditorComponent } from "./components";
2
2
  import { MainEditorBlockComponent } from "./components";
3
3
  import { MainEditorComponent } from "./components";
4
+ import { TextEditorComponent } from "./components";
4
5
  import { FileIdSelectComponent } from "./components";
5
- import { XmlTagHeaderTextViewComponent } from "./components";
6
+ import { XmlTagHeaderInnerTextViewComponent } from "./components";
7
+ import { XmlTagHtmlViewComponent } from "./components";
6
8
  import { XmlTagRichTextViewComponent } from "./components";
7
9
  import { XmlTagTableViewComponent } from "./components";
8
10
  import { XmlTagViewComponent } from "./components";
11
+ import { CustomWidgetEditorComponent } from "./components";
9
12
  import { VisualEditorComponent } from './components';
10
13
  import { AddFilesBtnComponent } from './components';
11
14
  import { XmlTagExternalVideoComponent } from "./components";
12
15
  import { HtmlRawEditorComponent } from "./components";
13
- import { MatTabsModule } from '@angular/material/tabs';
16
+ import { MatFormFieldModule } from '@angular/material/form-field';
14
17
  import { RichTextToHtmlPipe, TagToSpanPipe, ToHtmlBodyTagsPipe, ToPreviewHtmlPipe, ToPreviewPipe } from "./pipes";
15
18
  import { FileImageTagViewComponent, UploadFilesBtnComponent } from "./components";
16
19
  import { HtmlRawViewComponent } from "./components";
17
- import { HtmlViewComponent } from "./components";
18
20
  import { XmlTagCustomWidgetComponent } from "./components";
19
- export declare const EditorComponents: (typeof AddFilesBtnComponent | typeof MainEditorBlockComponent | typeof VisualEditorComponent | typeof MainEditorComponent | typeof HtmlRawEditorComponent | typeof FileIdSelectComponent | typeof ImageEditorComponent)[];
20
- export declare const XmlComponents: (typeof XmlTagViewComponent | typeof HtmlViewComponent | typeof XmlTagExternalVideoComponent | typeof HtmlRawViewComponent | typeof XmlTagHeaderTextViewComponent | typeof FileImageTagViewComponent | typeof XmlTagCustomWidgetComponent | typeof XmlTagRichTextViewComponent | typeof XmlTagTableViewComponent)[];
21
- export declare const CrocoPipes: (typeof ToPreviewHtmlPipe | typeof ToPreviewPipe | typeof RichTextToHtmlPipe | typeof TagToSpanPipe | typeof ToHtmlBodyTagsPipe)[];
22
- export declare const CrocoHtmlDeclarations: (typeof ToPreviewHtmlPipe | typeof ToPreviewPipe | typeof AddFilesBtnComponent | typeof MainEditorBlockComponent | typeof VisualEditorComponent | typeof XmlTagViewComponent | typeof HtmlViewComponent | typeof MainEditorComponent | typeof XmlTagExternalVideoComponent | typeof HtmlRawViewComponent | typeof XmlTagHeaderTextViewComponent | typeof FileImageTagViewComponent | typeof XmlTagCustomWidgetComponent | typeof UploadFilesBtnComponent | typeof RichTextToHtmlPipe | typeof XmlTagRichTextViewComponent | typeof XmlTagTableViewComponent | typeof HtmlRawEditorComponent | typeof FileIdSelectComponent | typeof ImageEditorComponent | typeof TagToSpanPipe | typeof ToHtmlBodyTagsPipe)[];
23
- export declare const MaterialModules: (typeof MatTabsModule)[];
21
+ export declare const EditorComponents: (typeof AddFilesBtnComponent | typeof MainEditorBlockComponent | typeof VisualEditorComponent | typeof FileIdSelectComponent | typeof ImageEditorComponent | typeof HtmlRawEditorComponent | typeof TextEditorComponent | typeof CustomWidgetEditorComponent | typeof MainEditorComponent)[];
22
+ export declare const XmlComponents: (typeof XmlTagCustomWidgetComponent | typeof FileImageTagViewComponent | typeof XmlTagExternalVideoComponent | typeof XmlTagHeaderInnerTextViewComponent | typeof XmlTagHtmlViewComponent | typeof XmlTagRichTextViewComponent | typeof XmlTagTableViewComponent | typeof HtmlRawViewComponent | typeof XmlTagViewComponent)[];
23
+ export declare const CrocoPipes: (typeof ToPreviewHtmlPipe | typeof ToHtmlBodyTagsPipe | typeof ToPreviewPipe | typeof RichTextToHtmlPipe | typeof TagToSpanPipe)[];
24
+ export declare const CrocoHtmlDeclarations: (typeof ToPreviewHtmlPipe | typeof ToHtmlBodyTagsPipe | typeof ToPreviewPipe | typeof AddFilesBtnComponent | typeof MainEditorBlockComponent | typeof VisualEditorComponent | typeof FileIdSelectComponent | typeof ImageEditorComponent | typeof XmlTagCustomWidgetComponent | typeof FileImageTagViewComponent | typeof UploadFilesBtnComponent | typeof XmlTagExternalVideoComponent | typeof XmlTagHeaderInnerTextViewComponent | typeof XmlTagHtmlViewComponent | typeof RichTextToHtmlPipe | typeof XmlTagRichTextViewComponent | typeof XmlTagTableViewComponent | typeof HtmlRawViewComponent | typeof XmlTagViewComponent | typeof HtmlRawEditorComponent | typeof TextEditorComponent | typeof CustomWidgetEditorComponent | typeof MainEditorComponent | typeof TagToSpanPipe)[];
25
+ export declare const MaterialModules: (typeof MatFormFieldModule)[];
@@ -1,7 +1,16 @@
1
1
  import { IMediaRequest } from "../extensions";
2
2
  import { Type } from "@angular/core";
3
3
  export interface CrocoHtmlOptions {
4
+ /**
5
+ * Формат сслыки для показа изображений из публичных файлов.
6
+ * Содержит переменные: {sizeType} - тип размера, {fileId} - идентификатор изображения.
7
+ */
4
8
  publicImageResizedUrlFormat: string;
9
+ /**
10
+ * Формат сслыки для показа изображений из приватный файлов.
11
+ * Содержит переменные: {sizeType} - тип размера, {fileId} - идентификатор изображения.
12
+ */
13
+ privateImageResizedUrlFormat: string;
5
14
  globalMediaRequests?: IMediaRequest[];
6
15
  /**
7
16
  * Компонент для рендера кастомных виджетов
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "croco-html",
3
- "version": "3.0.3",
3
+ "version": "3.0.5",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^18.2.13",
6
6
  "@angular/core": "^18.2.13",
@@ -1 +1 @@
1
- export type SpriteIdsType = 'source-code-tab' | 'viewer-tab' | 'visual-editor-tab';
1
+ export type SpriteIdsType = 'align-center' | 'align-left' | 'align-right' | 'move-icon' | 'source-code-tab' | 'tag-button-button' | 'tag-button-custom-widget' | 'tag-button-download-file-button' | 'tag-button-external-video' | 'tag-button-file-image' | 'tag-button-html-raw' | 'tag-button-text' | 'viewer-tab' | 'visual-editor-tab';
@@ -1 +1 @@
1
- <?xml version="1.0" encoding="utf-8"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><symbol viewBox="0 0 30 24" id="source-code-tab" xmlns="http://www.w3.org/2000/svg"><path d="m13.075 23.976-2.86-.83a.563.563 0 0 1-.384-.698L16.229.407a.563.563 0 0 1 .699-.384l2.86.83c.3.084.468.398.384.698l-6.399 22.04a.562.562 0 0 1-.698.385Zm-5.344-5.26 2.039-2.175a.563.563 0 0 0-.038-.806L5.486 12l4.246-3.736a.559.559 0 0 0 .038-.806L7.73 5.282a.563.563 0 0 0-.796-.023L.179 11.587c-.239.22-.239.6 0 .82l6.755 6.333c.23.215.586.206.797-.024Zm15.337.028 6.755-6.332c.24-.22.24-.6 0-.82l-6.755-6.338a.568.568 0 0 0-.797.023l-2.039 2.175a.563.563 0 0 0 .038.807l4.247 3.74-4.247 3.736a.559.559 0 0 0-.038.806l2.04 2.175c.21.23.567.24.796.028Z"/></symbol><symbol viewBox="0 0 32 30" id="viewer-tab" xmlns="http://www.w3.org/2000/svg"><path d="M31.808 14.189C28.797 8.31 22.83 4.333 16.003 4.333 9.175 4.333 3.208 8.311.197 14.19a1.8 1.8 0 0 0 0 1.622c3.011 5.878 8.978 9.856 15.806 9.856 6.827 0 12.794-3.978 15.805-9.856a1.8 1.8 0 0 0 0-1.622ZM16.003 23a8 8 0 1 1 0-16 8 8 0 0 1 0 16Zm0-13.333a5.294 5.294 0 0 0-1.406.21 2.661 2.661 0 0 1-3.717 3.717 5.323 5.323 0 1 0 5.123-3.927Z"/><path fill="none" d="M0 0h32v28.444H0z"/></symbol><symbol viewBox="0 0 32 26" id="visual-editor-tab" xmlns="http://www.w3.org/2000/svg"><path d="M12.75 13.285a.794.794 0 0 0 1.13 0l.565-.565a.794.794 0 0 0 0-1.13l-1.78-1.79 1.785-1.785a.794.794 0 0 0 0-1.13l-.565-.565a.794.794 0 0 0-1.13 0L9.84 9.235a.794.794 0 0 0 0 1.13l2.92 2.915-.01.005Zm4.8-.565.565.565a.794.794 0 0 0 1.13 0l2.915-2.915a.794.794 0 0 0 0-1.13l-2.915-2.915a.794.794 0 0 0-1.13 0l-.565.565a.794.794 0 0 0 0 1.13l1.79 1.78-1.785 1.785a.794.794 0 0 0 0 1.13l-.005.005ZM31.2 21H19.075c-.035.99-.735 1.6-1.635 1.6H14.4c-.935 0-1.65-.875-1.64-1.6H.8c-.44 0-.8.36-.8.8v.8c0 1.76 1.44 3.2 3.2 3.2h25.6c1.76 0 3.2-1.44 3.2-3.2v-.8c0-.44-.36-.8-.8-.8ZM28.8 2.6c0-1.32-1.08-2.4-2.4-2.4H5.6C4.28.2 3.2 1.28 3.2 2.6v16.8h25.6V2.6Zm-3.2 13.6H6.4V3.4h19.2v12.8Z"/><path fill="none" d="M0 0h32v25.6H0z"/></symbol></svg>
1
+ <?xml version="1.0" encoding="utf-8"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><symbol fill="none" viewBox="0 0 20 20" id="align-center" xmlns="http://www.w3.org/2000/svg"><path d="M5 14.688h10M3.125 11.562h13.75M5 8.438h10M3.125 5.312h13.75" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" stroke="currentColor"/></symbol><symbol fill="none" viewBox="0 0 20 20" id="align-left" xmlns="http://www.w3.org/2000/svg"><path d="M3.125 14.688h10m-10-3.126h13.75M3.125 8.438h10m-10-3.126h13.75" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" stroke="currentColor"/></symbol><symbol fill="currentColor" viewBox="0 0 20 20" id="align-right" xmlns="http://www.w3.org/2000/svg"><path d="M6.875 14.688h10m-13.75-3.126h13.75m-10-3.124h10M3.125 5.312h13.75" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" stroke="currentColor"/></symbol><symbol fill="none" viewBox="0 0 24 24" id="move-icon" xmlns="http://www.w3.org/2000/svg"><path d="M14.652 19.098 12 21.75m0 0-2.652-2.652M12 21.75V15m-7.098-.348L2.25 12m0 0 2.652-2.652M2.25 12H9m10.098-2.652L21.75 12m0 0-2.652 2.652M21.75 12H15M9.348 4.902 12 2.25m0 0 2.652 2.652M12 2.25V9" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"/></symbol><symbol viewBox="0 0 30 24" id="source-code-tab" xmlns="http://www.w3.org/2000/svg"><path d="m13.075 23.976-2.86-.83a.563.563 0 0 1-.384-.698L16.229.407a.563.563 0 0 1 .699-.384l2.86.83c.3.084.468.398.384.698l-6.399 22.04a.562.562 0 0 1-.698.385Zm-5.344-5.26 2.039-2.175a.563.563 0 0 0-.038-.806L5.486 12l4.246-3.736a.559.559 0 0 0 .038-.806L7.73 5.282a.563.563 0 0 0-.796-.023L.179 11.587c-.239.22-.239.6 0 .82l6.755 6.333c.23.215.586.206.797-.024Zm15.337.028 6.755-6.332c.24-.22.24-.6 0-.82l-6.755-6.338a.568.568 0 0 0-.797.023l-2.039 2.175a.563.563 0 0 0 .038.807l4.247 3.74-4.247 3.736a.559.559 0 0 0-.038.806l2.04 2.175c.21.23.567.24.796.028Z"/></symbol><symbol fill="none" viewBox="0 0 20 20" id="tag-button-button" xmlns="http://www.w3.org/2000/svg"><path stroke="currentColor" d="M10 3.75v5.938m3.75-5.451a6.875 6.875 0 1 1-7.5 0" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></symbol><symbol fill="none" viewBox="0 0 20 20" id="tag-button-custom-widget" xmlns="http://www.w3.org/2000/svg"><path stroke="currentColor" d="M16.25 15v1.25m-2.5-3.75h2.5m-5 3.75h2.5v-5m-2.5 0v2.5m-6.875-2.5h3.75c.345 0 .625.28.625.625v3.75c0 .345-.28.625-.625.625h-3.75a.625.625 0 0 1-.625-.625v-3.75c0-.345.28-.625.625-.625Zm7.5-7.5h3.75c.345 0 .625.28.625.625v3.75c0 .345-.28.625-.625.625h-3.75a.625.625 0 0 1-.625-.625v-3.75c0-.345.28-.625.625-.625Zm-7.5 0h3.75c.345 0 .625.28.625.625v3.75c0 .345-.28.625-.625.625h-3.75a.625.625 0 0 1-.625-.625v-3.75c0-.345.28-.625.625-.625Z" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></symbol><symbol fill="none" viewBox="0 0 24 24" id="tag-button-download-file-button" xmlns="http://www.w3.org/2000/svg"><path stroke="currentColor" clip-rule="evenodd" d="M4.424 9.417c-.924 0-1.674.75-1.674 1.674v8.485c0 .924.75 1.674 1.674 1.674h15.152c.924 0 1.674-.75 1.674-1.674V11.09c0-.925-.75-1.674-1.674-1.674h-3.637a.75.75 0 0 1 0-1.5h3.637a3.174 3.174 0 0 1 3.174 3.174v8.485a3.174 3.174 0 0 1-3.174 3.174H4.424a3.174 3.174 0 0 1-3.174-3.174V11.09a3.174 3.174 0 0 1 3.174-3.174h3.637a.75.75 0 1 1 0 1.5H4.424Z"/><path stroke="currentColor" clip-rule="evenodd" d="M12 1.25a.75.75 0 0 1 .75.75v13.94a.75.75 0 0 1-1.5 0V2a.75.75 0 0 1 .75-.75Z"/><path stroke="currentColor" clip-rule="evenodd" d="M7.833 12.985a.75.75 0 0 1 1.061 0L12 16.09l3.106-3.106a.75.75 0 0 1 1.06 1.06l-3.636 3.637a.75.75 0 0 1-1.06 0l-3.637-3.636a.75.75 0 0 1 0-1.061Z"/></symbol><symbol fill="none" viewBox="0 0 20 20" id="tag-button-external-video" xmlns="http://www.w3.org/2000/svg"><path stroke="currentColor" d="m14.375 8.75 4.375-2.5v7.5l-4.375-2.5m-12.5-6.563h10a2.5 2.5 0 0 1 2.5 2.5v7.5a.624.624 0 0 1-.625.626h-10a2.5 2.5 0 0 1-2.5-2.5v-7.5a.625.625 0 0 1 .625-.625Z" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></symbol><symbol fill="none" viewBox="0 0 20 20" id="tag-button-file-image" xmlns="http://www.w3.org/2000/svg"><path d="m2.5 13.125 3.933-3.933a.625.625 0 0 1 .884 0l3.491 3.491a.626.626 0 0 0 .884 0l1.616-1.616a.626.626 0 0 1 .884 0l3.308 3.308M3.125 3.75h13.75c.345 0 .625.28.625.625v11.25c0 .345-.28.625-.625.625H3.125a.625.625 0 0 1-.625-.625V4.375c0-.345.28-.625.625-.625Zm10 4.063a.937.937 0 1 1-1.875 0 .937.937 0 0 1 1.875 0Z" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" stroke="currentColor"/></symbol><symbol fill="none" viewBox="0 0 20 20" id="tag-button-html-raw" xmlns="http://www.w3.org/2000/svg"><path d="M15 6.875 18.75 10 15 13.125M5 6.875 1.25 10 5 13.125m7.5-10-5 13.75" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></symbol><symbol fill="none" viewBox="0 0 20 20" id="tag-button-text" xmlns="http://www.w3.org/2000/svg"><path d="M7.5 15.625h5M10 4.375v11.25m-6.25-8.75v-2.5h12.5v2.5" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></symbol><symbol viewBox="0 0 32 30" id="viewer-tab" xmlns="http://www.w3.org/2000/svg"><path d="M31.808 14.189C28.797 8.31 22.83 4.333 16.003 4.333 9.175 4.333 3.208 8.311.197 14.19a1.8 1.8 0 0 0 0 1.622c3.011 5.878 8.978 9.856 15.806 9.856 6.827 0 12.794-3.978 15.805-9.856a1.8 1.8 0 0 0 0-1.622ZM16.003 23a8 8 0 1 1 0-16 8 8 0 0 1 0 16Zm0-13.333a5.294 5.294 0 0 0-1.406.21 2.661 2.661 0 0 1-3.717 3.717 5.323 5.323 0 1 0 5.123-3.927Z"/><path fill="none" d="M0 0h32v28.444H0z"/></symbol><symbol viewBox="0 0 32 26" id="visual-editor-tab" xmlns="http://www.w3.org/2000/svg"><path d="M12.75 13.285a.794.794 0 0 0 1.13 0l.565-.565a.794.794 0 0 0 0-1.13l-1.78-1.79 1.785-1.785a.794.794 0 0 0 0-1.13l-.565-.565a.794.794 0 0 0-1.13 0L9.84 9.235a.794.794 0 0 0 0 1.13l2.92 2.915-.01.005Zm4.8-.565.565.565a.794.794 0 0 0 1.13 0l2.915-2.915a.794.794 0 0 0 0-1.13l-2.915-2.915a.794.794 0 0 0-1.13 0l-.565.565a.794.794 0 0 0 0 1.13l1.79 1.78-1.785 1.785a.794.794 0 0 0 0 1.13l-.005.005ZM31.2 21H19.075c-.035.99-.735 1.6-1.635 1.6H14.4c-.935 0-1.65-.875-1.64-1.6H.8c-.44 0-.8.36-.8.8v.8c0 1.76 1.44 3.2 3.2 3.2h25.6c1.76 0 3.2-1.44 3.2-3.2v-.8c0-.44-.36-.8-.8-.8ZM28.8 2.6c0-1.32-1.08-2.4-2.4-2.4H5.6C4.28.2 3.2 1.28 3.2 2.6v16.8h25.6V2.6Zm-3.2 13.6H6.4V3.4h19.2v12.8Z"/><path fill="none" d="M0 0h32v25.6H0z"/></symbol></svg>