@talrace/ngx-noder 0.0.9 → 0.0.11

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 (44) hide show
  1. package/esm2022/lib/apart-components/add-link-dialog/add-link-dialog.component.mjs +7 -1
  2. package/esm2022/lib/apart-components/editor-title/editor-title.component.mjs +6 -3
  3. package/esm2022/lib/apart-components/editor-title-mobile/editor-title-mobile.component.mjs +3 -3
  4. package/esm2022/lib/apart-components/editor-toolbar/components/menu-dropdowns/menu-dropdowns.component.mjs +20 -5
  5. package/esm2022/lib/apart-components/editor-toolbar/editor-mobile-toolbar/editor-mobile-toolbar.component.mjs +2 -2
  6. package/esm2022/lib/apart-components/editor-toolbar/editor-toolbar/editor-toolbar.component.mjs +1 -1
  7. package/esm2022/lib/apart-components/editor-toolbar/editor-toolbar.module.mjs +13 -3
  8. package/esm2022/lib/editor/components/shared/abstract/base.component.mjs +3 -3
  9. package/esm2022/lib/editor/content/helpers/link.helper.mjs +6 -0
  10. package/esm2022/lib/editor/display/layers/text.layer.mjs +10 -10
  11. package/esm2022/lib/editor/execution/edit.session.mjs +18 -5
  12. package/esm2022/lib/editor/execution/editor.mjs +37 -5
  13. package/esm2022/lib/editor/execution/helpers/format-style.helper.mjs +42 -1
  14. package/esm2022/lib/editor/execution/regulator.service.mjs +6 -5
  15. package/esm2022/lib/editor/interaction/editor.service.mjs +8 -1
  16. package/esm2022/lib/editor/operations/helpers/link-operations.helper.mjs +38 -20
  17. package/esm2022/lib/editor/operations/operations-helper.helper.mjs +16 -8
  18. package/esm2022/lib/models/generated/link-data.model.mjs +1 -1
  19. package/esm2022/lib/models/generated/link.model.mjs +1 -1
  20. package/esm2022/public-api.mjs +5 -1
  21. package/fesm2022/talrace-ngx-noder.mjs +436 -281
  22. package/fesm2022/talrace-ngx-noder.mjs.map +1 -1
  23. package/lib/apart-components/editor-title/editor-title.component.d.ts +2 -1
  24. package/lib/apart-components/editor-toolbar/components/menu-dropdowns/menu-dropdowns.component.d.ts +6 -1
  25. package/lib/apart-components/editor-toolbar/editor-toolbar.module.d.ts +1 -1
  26. package/lib/editor/content/helpers/link.helper.d.ts +4 -0
  27. package/lib/editor/display/layers/text.layer.d.ts +1 -1
  28. package/lib/editor/execution/edit.session.d.ts +1 -0
  29. package/lib/editor/execution/editor.d.ts +2 -0
  30. package/lib/editor/execution/helpers/format-style.helper.d.ts +2 -0
  31. package/lib/editor/interaction/editor.service.d.ts +3 -0
  32. package/lib/editor/operations/helpers/link-operations.helper.d.ts +2 -1
  33. package/lib/models/generated/link-data.model.d.ts +2 -0
  34. package/lib/models/generated/link.model.d.ts +3 -1
  35. package/package.json +8 -8
  36. package/public-api.d.ts +4 -0
  37. package/src/assets/fonts/nc-iconfont.eot +0 -0
  38. package/src/assets/fonts/nc-iconfont.scss +183 -0
  39. package/src/assets/fonts/nc-iconfont.svg +1 -53
  40. package/src/assets/fonts/nc-iconfont.ttf +0 -0
  41. package/src/assets/fonts/nc-iconfont.woff +0 -0
  42. package/src/styles.scss +0 -1
  43. package/src/assets/fonts/nc-iconfont.css +0 -339
  44. package/src/scss/_fonts.scss +0 -3
@@ -5,6 +5,7 @@ import * as i0 from "@angular/core";
5
5
  export declare class EditorTitleComponent {
6
6
  private cdr;
7
7
  selectedMode: Mode;
8
+ showTitle: boolean;
8
9
  title: string;
9
10
  defaultFileName: string;
10
11
  set rename$(value: Observable<void>);
@@ -21,5 +22,5 @@ export declare class EditorTitleComponent {
21
22
  onFocus(event: MouseEvent): void;
22
23
  private setTitleActive;
23
24
  static ɵfac: i0.ɵɵFactoryDeclaration<EditorTitleComponent, never>;
24
- static ɵcmp: i0.ɵɵComponentDeclaration<EditorTitleComponent, "app-nod-editor-title", never, { "selectedMode": { "alias": "selectedMode"; "required": false; }; "title": { "alias": "title"; "required": false; }; "defaultFileName": { "alias": "defaultFileName"; "required": false; }; "rename$": { "alias": "rename$"; "required": false; }; }, { "changeMode": "changeMode"; "renameDocumentTitle": "renameDocumentTitle"; }, never, never, true, never>;
25
+ static ɵcmp: i0.ɵɵComponentDeclaration<EditorTitleComponent, "app-nod-editor-title", never, { "selectedMode": { "alias": "selectedMode"; "required": false; }; "showTitle": { "alias": "showTitle"; "required": false; }; "title": { "alias": "title"; "required": false; }; "defaultFileName": { "alias": "defaultFileName"; "required": false; }; "rename$": { "alias": "rename$"; "required": false; }; }, { "changeMode": "changeMode"; "renameDocumentTitle": "renameDocumentTitle"; }, never, never, true, never>;
25
26
  }
@@ -10,6 +10,11 @@ import * as i0 from "@angular/core";
10
10
  export declare class MenuDropdownsComponent extends BaseToolbarComponent {
11
11
  protected cdr: ChangeDetectorRef;
12
12
  editorService: EditorService;
13
+ showFile: boolean;
14
+ showEdit: boolean;
15
+ showInsert: boolean;
16
+ showLayout: boolean;
17
+ showFormat: boolean;
13
18
  openFileFromDisk: EventEmitter<void>;
14
19
  addCustomElement: EventEmitter<ElementDataModel>;
15
20
  saveAs: EventEmitter<void>;
@@ -32,5 +37,5 @@ export declare class MenuDropdownsComponent extends BaseToolbarComponent {
32
37
  onSelectNumberingTemplate(numberingTemplateType: NumberingTemplateType): void;
33
38
  onTableInsertMenuClosed(): void;
34
39
  static ɵfac: i0.ɵɵFactoryDeclaration<MenuDropdownsComponent, never>;
35
- static ɵcmp: i0.ɵɵComponentDeclaration<MenuDropdownsComponent, "app-nod-menu-dropdowns", never, {}, { "openFileFromDisk": "openFileFromDisk"; "addCustomElement": "addCustomElement"; "saveAs": "saveAs"; "insertPageBreak": "insertPageBreak"; "createDocument": "createDocument"; "rename": "rename"; "delete": "delete"; "openEditMenu": "openEditMenu"; "cutSelected": "cutSelected"; "copySelected": "copySelected"; "pasteClipboardData": "pasteClipboardData"; "selectAll": "selectAll"; "removeSelected": "removeSelected"; }, never, never, false, never>;
40
+ static ɵcmp: i0.ɵɵComponentDeclaration<MenuDropdownsComponent, "app-nod-menu-dropdowns", never, { "showFile": { "alias": "showFile"; "required": false; }; "showEdit": { "alias": "showEdit"; "required": false; }; "showInsert": { "alias": "showInsert"; "required": false; }; "showLayout": { "alias": "showLayout"; "required": false; }; "showFormat": { "alias": "showFormat"; "required": false; }; }, { "openFileFromDisk": "openFileFromDisk"; "addCustomElement": "addCustomElement"; "saveAs": "saveAs"; "insertPageBreak": "insertPageBreak"; "createDocument": "createDocument"; "rename": "rename"; "delete": "delete"; "openEditMenu": "openEditMenu"; "cutSelected": "cutSelected"; "copySelected": "copySelected"; "pasteClipboardData": "pasteClipboardData"; "selectAll": "selectAll"; "removeSelected": "removeSelected"; }, never, never, false, never>;
36
41
  }
@@ -27,6 +27,6 @@ import * as i25 from "@angular/forms";
27
27
  import * as i26 from "../text-format-mobile/text-format-mobile.component";
28
28
  export declare class EditorToolbarModule {
29
29
  static ɵfac: i0.ɵɵFactoryDeclaration<EditorToolbarModule, never>;
30
- static ɵmod: i0.ɵɵNgModuleDeclaration<EditorToolbarModule, [typeof i1.EditorMobileToolbarComponent, typeof i2.EditorToolbarComponent, typeof i3.FontStyleComponent, typeof i3.FontStyleComponent, typeof i4.FormatComponent, typeof i4.FormatComponent, typeof i5.HeadingComponent, typeof i5.HeadingComponent, typeof i6.MenuDropdownsComponent, typeof i7.MenuDropdownsMobileComponent, typeof i8.NumberingComponent, typeof i9.PrintComponent, typeof i10.ToolbarActionsComponent, typeof i11.UndoRedoComponent, typeof i12.ZoomComponent], [typeof i13.ColorPickerComponent, typeof i14.CommonModule, typeof i15.FontComponent, typeof i16.FontSizeComponent, typeof i17.InsertTableComponent, typeof i18.InsertTableMobileComponent, typeof i19.MatAutocompleteModule, typeof i20.MatButtonModule, typeof i21.MatButtonToggleModule, typeof i22.MatExpansionModule, typeof i23.MatIconModule, typeof i24.MatMenuModule, typeof i25.ReactiveFormsModule, typeof i26.TextFormatMobileComponent], [typeof i1.EditorMobileToolbarComponent, typeof i2.EditorToolbarComponent]>;
30
+ static ɵmod: i0.ɵɵNgModuleDeclaration<EditorToolbarModule, [typeof i1.EditorMobileToolbarComponent, typeof i2.EditorToolbarComponent, typeof i3.FontStyleComponent, typeof i3.FontStyleComponent, typeof i4.FormatComponent, typeof i4.FormatComponent, typeof i5.HeadingComponent, typeof i5.HeadingComponent, typeof i6.MenuDropdownsComponent, typeof i7.MenuDropdownsMobileComponent, typeof i8.NumberingComponent, typeof i9.PrintComponent, typeof i10.ToolbarActionsComponent, typeof i11.UndoRedoComponent, typeof i12.ZoomComponent], [typeof i13.ColorPickerComponent, typeof i14.CommonModule, typeof i15.FontComponent, typeof i16.FontSizeComponent, typeof i17.InsertTableComponent, typeof i18.InsertTableMobileComponent, typeof i19.MatAutocompleteModule, typeof i20.MatButtonModule, typeof i21.MatButtonToggleModule, typeof i22.MatExpansionModule, typeof i23.MatIconModule, typeof i24.MatMenuModule, typeof i25.ReactiveFormsModule, typeof i26.TextFormatMobileComponent], [typeof i1.EditorMobileToolbarComponent, typeof i2.EditorToolbarComponent, typeof i6.MenuDropdownsComponent, typeof i7.MenuDropdownsMobileComponent, typeof i10.ToolbarActionsComponent]>;
31
31
  static ɵinj: i0.ɵɵInjectorDeclaration<EditorToolbarModule>;
32
32
  }
@@ -0,0 +1,4 @@
1
+ import { LinkModel } from '../../../models/generated/link.model';
2
+ export declare class LinkHelper {
3
+ static sliceSection(links: LinkModel[], startIndex: number, endIndex: number): LinkModel[];
4
+ }
@@ -1,6 +1,6 @@
1
1
  import { EdgeElementModel } from '../../components/edges/edge-element.model';
2
- import { EditSession } from '../../execution/edit.session';
3
2
  import { EditorService } from '../../interaction/editor.service';
3
+ import { EditSession } from '../../execution/edit.session';
4
4
  import { ILayerConfig } from './layer.config';
5
5
  import { Lines } from '../../content/display-data/lines';
6
6
  import { PageType } from '../../components/edges/page-type.enum';
@@ -100,6 +100,7 @@ export declare class EditSession {
100
100
  insertParagraph(position: CursorParagraph, paragraphModel: InsertParagraphModel): CursorParagraph;
101
101
  addComponent<T extends BaseNoderComponent>(customElements: ComponentRef<T>[], model: CustomContent, componentType: Type<T>): void;
102
102
  applyToolbarStyles(): void;
103
+ getStyleForCursor(index: number): TextStyleModel[];
103
104
  restore(model: RestoreModel): void;
104
105
  restoreComponents<T extends BaseNoderComponent>(models: CustomContent[], components: ComponentRef<BaseNoderComponent>[], componentType: Type<T>, restoreIndex: number, restoreEndIndex: number): void;
105
106
  restoreElementComponents(elements: ElementModel[], restoreIndex: number, restoreEndIndex: number): void;
@@ -131,6 +131,7 @@ export declare class Editor {
131
131
  private createRestoreFromSlice;
132
132
  createCustomElement(data: ElementDataModel): void;
133
133
  removeSelected(): void;
134
+ removeCustomElementsData(): void;
134
135
  onInput(): void;
135
136
  onCut(event: ClipboardEvent): void;
136
137
  onCopy(event: ClipboardEvent): void;
@@ -163,6 +164,7 @@ export declare class Editor {
163
164
  private onDocumentChange;
164
165
  private focusCustomComponent;
165
166
  private blurCustomComponent;
167
+ private blurEdgeCustomComponents;
166
168
  private isEmptyNumberingParagraph;
167
169
  scrollCursorIntoMainView(offset?: number): void;
168
170
  changedTableSize(insertIndex: number, sessionId: number): void;
@@ -1,7 +1,9 @@
1
1
  import { FormatModel } from '../../../models/generated/format.model';
2
+ import { LinkModel } from '../../../models/generated/link.model';
2
3
  export declare class FormatStyleHelper {
3
4
  static getFormatsAtRange(formats: FormatModel[], startIndex: number, endIndex: number): FormatModel[];
4
5
  static getFormatAtIndex(formats: FormatModel[], index: number): FormatModel;
5
6
  static mergeFormats(formats: FormatModel[], startIndex: number, endIndex: number): void;
6
7
  static getPrevFormatAtIndex(formats: FormatModel[], index: number): FormatModel | null;
8
+ static combineSection(formats: FormatModel[], links: LinkModel[], startIndex: number, endIndex: number): FormatModel[];
7
9
  }
@@ -160,6 +160,8 @@ export declare class EditorService {
160
160
  private _insertText$;
161
161
  get blurCustomComponent$(): Observable<void>;
162
162
  private _blurCustomComponent$;
163
+ get removeCustomElementsData$(): Observable<ElementModel[]>;
164
+ private _removeCustomElementsData$;
163
165
  setIsViewOnly(value: boolean): void;
164
166
  setHasSelection(value: boolean): void;
165
167
  setClipboardData(value: string): void;
@@ -204,6 +206,7 @@ export declare class EditorService {
204
206
  updateEdges(sessionId: number): void;
205
207
  insertText(text: string): void;
206
208
  blurCustomComponent(): void;
209
+ removeCustomElementsData(elements: ElementModel[]): void;
207
210
  static ɵfac: i0.ɵɵFactoryDeclaration<EditorService, never>;
208
211
  static ɵprov: i0.ɵɵInjectableDeclaration<EditorService>;
209
212
  }
@@ -1,6 +1,7 @@
1
1
  import { LinkModel } from '../../../models/generated/link.model';
2
+ import { TextStyleModel } from '../../../models/generated/text-style.model';
2
3
  export declare class LinkOperationsHelper {
3
- static insert(links: LinkModel[], link: string, insertIndex: number, endIndex: number): void;
4
+ static insert(links: LinkModel[], link: string, startIndex: number, endIndex: number, textStyle: TextStyleModel): void;
4
5
  static insertContent(links: LinkModel[], insertIndex: number, textLength: number): void;
5
6
  static removeContent(links: LinkModel[], startIndex: number, endIndex: number): void;
6
7
  static restore(links: LinkModel[], startIndex: number, contentLength: number, newlinks: LinkModel[]): void;
@@ -1,4 +1,6 @@
1
+ import { FormatModel } from './format.model';
1
2
  export declare class LinkDataModel {
3
+ formats: FormatModel[];
2
4
  link: string;
3
5
  text: string;
4
6
  constructor(fields?: Partial<LinkDataModel>);
@@ -1,7 +1,9 @@
1
+ import { FormatModel } from './format.model';
1
2
  export declare class LinkModel {
2
3
  endIndex: number;
3
- insertIndex: number;
4
+ formats: FormatModel[];
4
5
  link: string;
5
6
  sourceId: string;
7
+ startIndex: number;
6
8
  constructor(fields?: Partial<LinkModel>);
7
9
  }
package/package.json CHANGED
@@ -1,22 +1,22 @@
1
1
  {
2
2
  "name": "@talrace/ngx-noder",
3
- "version": "0.0.9",
3
+ "version": "0.0.11",
4
4
  "license": "MIT",
5
5
  "peerDependencies": {
6
- "@angular/common": "^17.0.4",
7
- "@angular/core": "^17.0.4",
8
- "@angular/forms": "^17.0.4",
9
- "@angular/material": "^17.0.1",
10
- "@angular/router": "^17.0.4",
6
+ "@angular/common": "^17.3.12",
7
+ "@angular/core": "^17.3.12",
8
+ "@angular/forms": "^17.3.12",
9
+ "@angular/material": "^17.3.6",
10
+ "@angular/router": "^17.3.12",
11
11
  "@ngxs/router-plugin": "^3.8.2",
12
12
  "@ngxs/store": "^3.8.2",
13
13
  "material-icons": "^1.13.12",
14
- "ngx-colors": "^3.5.2",
14
+ "ngx-colors": "^3.6.0",
15
15
  "ngx-toastr": "^18.0.0",
16
16
  "roboto-fontface": "0.10.0"
17
17
  },
18
18
  "dependencies": {
19
- "tslib": "^2.3.0"
19
+ "tslib": "^2.6.3"
20
20
  },
21
21
  "sideEffects": false,
22
22
  "module": "fesm2022/talrace-ngx-noder.mjs",
package/public-api.d.ts CHANGED
@@ -21,12 +21,16 @@ export * from './lib/editor/editor.module';
21
21
  export * from './lib/apart-components/editor-title-mobile/editor-title-mobile.component';
22
22
  export * from './lib/apart-components/editor-title/editor-title.component';
23
23
  export * from './lib/apart-components/editor-search/editor-search-dialog.component';
24
+ export * from './lib/apart-components/editor-toolbar/components/menu-dropdowns-mobile/menu-dropdowns-mobile.component';
25
+ export * from './lib/apart-components/editor-toolbar/components/menu-dropdowns/menu-dropdowns.component';
26
+ export * from './lib/apart-components/editor-toolbar/components/toolbar-actions/toolbar-actions.component';
24
27
  export * from './lib/apart-components/editor-toolbar/editor-mobile-toolbar/editor-mobile-toolbar.component';
25
28
  export * from './lib/apart-components/editor-toolbar/editor-toolbar.module';
26
29
  export * from './lib/apart-components/editor-toolbar/editor-toolbar/editor-toolbar.component';
27
30
  export * from './lib/apart-components/editor-toolbar/shared/enums/alignment.enum';
28
31
  export * from './lib/apart-components/editor-toolbar/shared/enums/editor-toolbar-mode.enum';
29
32
  export * from './lib/apart-components/editor-toolbar/shared/services/editor-toolbar.service';
33
+ export * from './lib/apart-components/text-format-mobile/text-format-mobile.component';
30
34
  export * from './lib/editor/interaction/mode.enum';
31
35
  export * from './lib/editor/revision.helper';
32
36
  export * from './lib/apart-components/add-link-dialog/add-link-dialog.component';
Binary file
@@ -0,0 +1,183 @@
1
+ /* stylelint-disable font-family-name-quotes */
2
+ /* stylelint-disable selector-pseudo-element-colon-notation */
3
+ /* stylelint-disable rule-empty-line-before */
4
+
5
+ @font-face {
6
+ font-family: 'nc-iconfont';
7
+ src: url('nc-iconfont.eot');
8
+ src: url('nc-iconfont.eot') format('embedded-opentype'), url('nc-iconfont.ttf') format('truetype'),
9
+ url('nc-iconfont.woff') format('woff'), url('nc-iconfont.svg') format('svg');
10
+ font-weight: normal;
11
+ font-style: normal;
12
+ font-display: block;
13
+ }
14
+
15
+ .noder-icon {
16
+ /* use !important to prevent issues with browser extensions that change fonts */
17
+ font-family: 'nc-iconfont', sans-serif !important;
18
+ speak: never;
19
+ font-size: 24px;
20
+ font-style: normal;
21
+ font-weight: normal;
22
+ font-variant: normal;
23
+ text-transform: none;
24
+ line-height: 1;
25
+
26
+ /* Better Font Rendering =========== */
27
+ -webkit-font-smoothing: antialiased;
28
+ -moz-osx-font-smoothing: grayscale;
29
+
30
+ &.icon-table-rows:before {
31
+ content: '\e966';
32
+ }
33
+ &.icon-table-columns:before {
34
+ content: '\e965';
35
+ }
36
+ &.icon-format-combined:before {
37
+ content: '\e964';
38
+ }
39
+ &.icon-arrow-up:before {
40
+ content: '\e95a';
41
+ }
42
+ &.icon-arrow-onright:before {
43
+ content: '\e95b';
44
+ }
45
+ &.icon-arrow-onleft:before {
46
+ content: '\e95c';
47
+ }
48
+ &.icon-arrow-down:before {
49
+ content: '\e95e';
50
+ }
51
+ &.icon-text:before {
52
+ content: '\e958';
53
+ }
54
+ &.icon-add-new:before {
55
+ content: '\e901';
56
+ }
57
+ &.icon-add:before {
58
+ content: '\e902';
59
+ }
60
+ &.icon-arrow-dropdown:before {
61
+ content: '\e903';
62
+ }
63
+ &.icon-back:before {
64
+ content: '\e908';
65
+ }
66
+ &.icon-bottom:before {
67
+ content: '\e909';
68
+ }
69
+ &.icon-cancel-thin:before {
70
+ content: '\e90b';
71
+ }
72
+ &.icon-content-cut:before {
73
+ content: '\e90e';
74
+ }
75
+ &.icon-content-paste:before {
76
+ content: '\e90f';
77
+ }
78
+ &.icon-datepicker:before {
79
+ content: '\e910';
80
+ }
81
+ &.icon-delete:before {
82
+ content: '\e911';
83
+ }
84
+ &.icon-done-thin:before {
85
+ content: '\e912';
86
+ }
87
+ &.icon-edit-mode:before {
88
+ content: '\e914';
89
+ }
90
+ &.icon-file-copy:before {
91
+ content: '\e916';
92
+ }
93
+ &.icon-fill-done:before {
94
+ content: '\e91a';
95
+ }
96
+ &.icon-format-align:before {
97
+ content: '\e91f';
98
+ }
99
+ &.icon-format-aligncenter:before {
100
+ content: '\e920';
101
+ }
102
+ &.icon-format-alignleft:before {
103
+ content: '\e921';
104
+ }
105
+ &.icon-format-alignright:before {
106
+ content: '\e922';
107
+ }
108
+ &.icon-format-bold:before {
109
+ content: '\e923';
110
+ }
111
+ &.icon-format-bulleted:before {
112
+ content: '\e924';
113
+ }
114
+ &.icon-format-colortext:before {
115
+ content: '\e925';
116
+ }
117
+ &.icon-format-italic:before {
118
+ content: '\e926';
119
+ }
120
+ &.icon-format-numbered:before {
121
+ content: '\e927';
122
+ }
123
+ &.icon-format-underlined:before {
124
+ content: '\e928';
125
+ }
126
+ &.icon-header:before {
127
+ content: '\e929';
128
+ }
129
+ &.icon-headers-footers:before {
130
+ content: '\e92a';
131
+ }
132
+ &.icon-image:before {
133
+ content: '\e92b';
134
+ }
135
+ &.icon-input:before {
136
+ content: '\e92c';
137
+ }
138
+ &.icon-link-highlighter:before {
139
+ content: '\e930';
140
+ }
141
+ &.icon-link-on:before {
142
+ content: '\e932';
143
+ }
144
+ &.icon-open-from:before {
145
+ content: '\e935';
146
+ }
147
+ &.icon-page-break:before {
148
+ content: '\e936';
149
+ }
150
+ &.icon-print:before {
151
+ content: '\e937';
152
+ }
153
+ &.icon-redo:before {
154
+ content: '\e93a';
155
+ }
156
+ &.icon-remove:before {
157
+ content: '\e93b';
158
+ }
159
+ &.icon-rename:before {
160
+ content: '\e93c';
161
+ }
162
+ &.icon-sandwich:before {
163
+ content: '\e93d';
164
+ }
165
+ &.icon-save:before {
166
+ content: '\e93e';
167
+ }
168
+ &.icon-select-all:before {
169
+ content: '\e940';
170
+ }
171
+ &.icon-signature:before {
172
+ content: '\e941';
173
+ }
174
+ &.icon-table:before {
175
+ content: '\e943';
176
+ }
177
+ &.icon-undo:before {
178
+ content: '\e945';
179
+ }
180
+ &.icon-view:before {
181
+ content: '\e946';
182
+ }
183
+ }