@talrace/ngx-noder 19.0.54 → 19.0.56
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.
- package/assets/i18n/noder.en.json +2 -4
- package/assets/i18n/noder.es.json +2 -4
- package/assets/i18n/noder.ru.json +2 -4
- package/fesm2022/talrace-ngx-noder.mjs +50 -21
- package/fesm2022/talrace-ngx-noder.mjs.map +1 -1
- package/lib/apart-components/editor-search-bar/editor-search-bar.component.d.ts +2 -2
- package/lib/editor/operations/helpers/contents-operations.helper.d.ts +3 -2
- package/lib/editor/operations/helpers/numbering-operations.helper.d.ts +2 -0
- package/lib/editor/operations/operations-helper.helper.d.ts +1 -1
- package/lib/models/generated/contents.model.d.ts +2 -0
- package/package.json +1 -1
- package/src/assets/fonts/nc-iconfont.eot +0 -0
- package/src/assets/fonts/nc-iconfont.scss +9 -0
- package/src/assets/fonts/nc-iconfont.svg +4 -1
- package/src/assets/fonts/nc-iconfont.ttf +0 -0
- package/src/assets/fonts/nc-iconfont.woff +0 -0
- package/src/lib/apart-components/editor-search-bar/_theme.scss +10 -1
|
@@ -5,7 +5,6 @@
|
|
|
5
5
|
"INSERT_COLUMNS_TO_THE_RIGHT": "Insert {{ count }} columns to the right",
|
|
6
6
|
"INSERT_ROWS_ABOVE": "Insert {{ count }} rows above",
|
|
7
7
|
"INSERT_ROWS_BELOW": "Insert {{ count }} rows below",
|
|
8
|
-
"OF_COUNTER": "{{ current }} of {{ total }}",
|
|
9
8
|
"REMOVE_COLUMNS": "Remove {{ count }} columns",
|
|
10
9
|
"REMOVE_ROWS": "Remove {{ count }} rows"
|
|
11
10
|
},
|
|
@@ -78,7 +77,6 @@
|
|
|
78
77
|
"NEW": "New",
|
|
79
78
|
"NONE": "None",
|
|
80
79
|
"NO_BORDER": "No border",
|
|
81
|
-
"NO_RESULTS": "No Results",
|
|
82
80
|
"NUMBERED_LIST_MENU": "Numbered List Menu",
|
|
83
81
|
"ODD_PAGES_FOOTER": "Odd Pages Footer",
|
|
84
82
|
"ODD_PAGES_HEADER": "Odd Pages Header",
|
|
@@ -102,14 +100,14 @@
|
|
|
102
100
|
"REMOVE_TABLE": "Remove table",
|
|
103
101
|
"RENAME": "Rename",
|
|
104
102
|
"REPLACE": "Replace",
|
|
105
|
-
"REPLACE_WITH": "Replace with",
|
|
106
103
|
"RIGHT": "Right",
|
|
107
104
|
"RIGHT_BORDER": "Right border",
|
|
108
105
|
"ROWS": "Rows",
|
|
109
106
|
"SAVE": "Save",
|
|
110
107
|
"SAVE_AS": "Save As",
|
|
111
108
|
"SAVE_AS_TEMPLATE": "Save As Template",
|
|
112
|
-
"
|
|
109
|
+
"SEARCH": "Search",
|
|
110
|
+
"SEARCH_AND_REPLACE": "Search & Replace",
|
|
113
111
|
"SELECTED_TEXT": "Selected Text",
|
|
114
112
|
"SELECT_ALL": "Select All",
|
|
115
113
|
"SET_DEFAULT_VALUE": "Setting the initial value",
|
|
@@ -5,7 +5,6 @@
|
|
|
5
5
|
"INSERT_COLUMNS_TO_THE_RIGHT": "Inserte {{ count }} columnas a la derecha",
|
|
6
6
|
"INSERT_ROWS_ABOVE": "Inserte {{ count }} filas arriba",
|
|
7
7
|
"INSERT_ROWS_BELOW": "Inserte {{ count }} filas debajo",
|
|
8
|
-
"OF_COUNTER": "{{ current }} de {{ total }}",
|
|
9
8
|
"REMOVE_COLUMNS": "Eliminar columnas {{ count }} ",
|
|
10
9
|
"REMOVE_ROWS": "Eliminar {{ count }} filas"
|
|
11
10
|
},
|
|
@@ -78,7 +77,6 @@
|
|
|
78
77
|
"NEW": "Nuevo",
|
|
79
78
|
"NONE": "Ninguna",
|
|
80
79
|
"NO_BORDER": "Sin fronteras",
|
|
81
|
-
"NO_RESULTS": "No hay resultados",
|
|
82
80
|
"NUMBERED_LIST_MENU": "Menú de Lista Numerada",
|
|
83
81
|
"ODD_PAGES_FOOTER": "Pie de Página de Páginas Impares",
|
|
84
82
|
"ODD_PAGES_HEADER": "Encabezado de Páginas Impares",
|
|
@@ -102,14 +100,14 @@
|
|
|
102
100
|
"REMOVE_TABLE": "Eliminar tabla",
|
|
103
101
|
"RENAME": "Renombrar",
|
|
104
102
|
"REPLACE": "Reemplazar",
|
|
105
|
-
"REPLACE_WITH": "Reemplazar con",
|
|
106
103
|
"RIGHT": "Correcto",
|
|
107
104
|
"RIGHT_BORDER": "Borde derecho",
|
|
108
105
|
"ROWS": "Filas",
|
|
109
106
|
"SAVE": "Guardar",
|
|
110
107
|
"SAVE_AS": "Guardar Como",
|
|
111
108
|
"SAVE_AS_TEMPLATE": "Guardar Como Plantilla",
|
|
112
|
-
"
|
|
109
|
+
"SEARCH": "Buscar",
|
|
110
|
+
"SEARCH_AND_REPLACE": "Buscar y Reemplazar",
|
|
113
111
|
"SELECTED_TEXT": "Texto seleccionado",
|
|
114
112
|
"SELECT_ALL": "Seleccionar Todo",
|
|
115
113
|
"SET_DEFAULT_VALUE": "Valor inicial",
|
|
@@ -5,7 +5,6 @@
|
|
|
5
5
|
"INSERT_COLUMNS_TO_THE_RIGHT": "Вставить {{ count }} столбцов справа",
|
|
6
6
|
"INSERT_ROWS_ABOVE": "Вставить {{ count }} строк выше",
|
|
7
7
|
"INSERT_ROWS_BELOW": "Вставить {{ count }} строк ниже",
|
|
8
|
-
"OF_COUNTER": "{{ current }} из {{ total }}",
|
|
9
8
|
"REMOVE_COLUMNS": "Удалить {{ count }} столбцов",
|
|
10
9
|
"REMOVE_ROWS": "Удалить {{ count }} строк"
|
|
11
10
|
},
|
|
@@ -78,7 +77,6 @@
|
|
|
78
77
|
"NEW": "Новый",
|
|
79
78
|
"NONE": "Нет",
|
|
80
79
|
"NO_BORDER": "Нет границы",
|
|
81
|
-
"NO_RESULTS": "Нет Результатов",
|
|
82
80
|
"NUMBERED_LIST_MENU": "Меню нумерованного списка",
|
|
83
81
|
"ODD_PAGES_FOOTER": "Нижний колонтитул нечетных страниц",
|
|
84
82
|
"ODD_PAGES_HEADER": "Верхний колонтитул нечетных страниц",
|
|
@@ -102,14 +100,14 @@
|
|
|
102
100
|
"REMOVE_TABLE": "Удалить таблицу",
|
|
103
101
|
"RENAME": "Переименовать",
|
|
104
102
|
"REPLACE": "Заменить",
|
|
105
|
-
"REPLACE_WITH": "Заменить на",
|
|
106
103
|
"RIGHT": "По правому краю",
|
|
107
104
|
"RIGHT_BORDER": "Правая граница",
|
|
108
105
|
"ROWS": "Строки",
|
|
109
106
|
"SAVE": "Сохранить",
|
|
110
107
|
"SAVE_AS": "Сохранить как",
|
|
111
108
|
"SAVE_AS_TEMPLATE": "Сохранить как шаблон",
|
|
112
|
-
"
|
|
109
|
+
"SEARCH": "Поиск",
|
|
110
|
+
"SEARCH_AND_REPLACE": "Найти и заменить",
|
|
113
111
|
"SELECTED_TEXT": "Выбранный текст",
|
|
114
112
|
"SELECT_ALL": "Выбрать все",
|
|
115
113
|
"SET_DEFAULT_VALUE": "Задание начального значения",
|
|
@@ -2112,6 +2112,14 @@ class ContentOperationsHelper {
|
|
|
2112
2112
|
}
|
|
2113
2113
|
}
|
|
2114
2114
|
|
|
2115
|
+
class ContentsModel {
|
|
2116
|
+
constructor(fields) {
|
|
2117
|
+
if (fields) {
|
|
2118
|
+
Object.assign(this, fields);
|
|
2119
|
+
}
|
|
2120
|
+
}
|
|
2121
|
+
}
|
|
2122
|
+
|
|
2115
2123
|
class ElementModel {
|
|
2116
2124
|
constructor(fields) {
|
|
2117
2125
|
if (fields) {
|
|
@@ -2342,14 +2350,6 @@ class RestoreModel {
|
|
|
2342
2350
|
}
|
|
2343
2351
|
}
|
|
2344
2352
|
|
|
2345
|
-
class ContentsModel {
|
|
2346
|
-
constructor(fields) {
|
|
2347
|
-
if (fields) {
|
|
2348
|
-
Object.assign(this, fields);
|
|
2349
|
-
}
|
|
2350
|
-
}
|
|
2351
|
-
}
|
|
2352
|
-
|
|
2353
2353
|
class TableModel {
|
|
2354
2354
|
constructor(fields) {
|
|
2355
2355
|
if (fields) {
|
|
@@ -2398,7 +2398,7 @@ class ContentsOperationsHelper {
|
|
|
2398
2398
|
comments
|
|
2399
2399
|
});
|
|
2400
2400
|
}
|
|
2401
|
-
static GetRelativeContentSlice(contents, startIndex, count) {
|
|
2401
|
+
static GetRelativeContentSlice(contents, documentNumberings, startIndex, count) {
|
|
2402
2402
|
const content = ContentOperationsHelper.sliceContent(contents.content, startIndex, count);
|
|
2403
2403
|
const endIndex = startIndex + count - 1;
|
|
2404
2404
|
const formats = FormatHelper.sliceSection(contents.formats, startIndex, endIndex).map(x => new FormatModel(x));
|
|
@@ -2419,6 +2419,8 @@ class ContentsOperationsHelper {
|
|
|
2419
2419
|
IndexedElementHelper.shiftIndexes(tabs, -startIndex);
|
|
2420
2420
|
RangeElementHelper.shiftIndexes(comments, -startIndex);
|
|
2421
2421
|
LinkHelper.shiftIndexes(links, -startIndex);
|
|
2422
|
+
const paragraphNumberingIds = new Set(paragraphs.map(x => x.paragraphStyle.numberingId).filter(id => id != null));
|
|
2423
|
+
const numberings = documentNumberings.filter(x => paragraphNumberingIds.has(x.numberingId));
|
|
2422
2424
|
return new ContentsModel({
|
|
2423
2425
|
content,
|
|
2424
2426
|
formats,
|
|
@@ -2429,7 +2431,8 @@ class ContentsOperationsHelper {
|
|
|
2429
2431
|
breaks,
|
|
2430
2432
|
tabs,
|
|
2431
2433
|
links,
|
|
2432
|
-
comments
|
|
2434
|
+
comments,
|
|
2435
|
+
numberings
|
|
2433
2436
|
});
|
|
2434
2437
|
}
|
|
2435
2438
|
}
|
|
@@ -3751,6 +3754,16 @@ class NumberingOperationsHelper {
|
|
|
3751
3754
|
numberings.splice(index, 1);
|
|
3752
3755
|
}
|
|
3753
3756
|
}
|
|
3757
|
+
static insertRelative(numberings, insertNumberingId, insertNumberings, paragraphs) {
|
|
3758
|
+
const oldToNewIds = new Map();
|
|
3759
|
+
for (const insertNumbering of insertNumberings) {
|
|
3760
|
+
oldToNewIds.set(insertNumbering.numberingId, insertNumberingId);
|
|
3761
|
+
insertNumbering.numberingId = insertNumberingId;
|
|
3762
|
+
numberings.push(insertNumbering);
|
|
3763
|
+
insertNumberingId++;
|
|
3764
|
+
}
|
|
3765
|
+
this.updateParagraphNumberings(paragraphs, oldToNewIds);
|
|
3766
|
+
}
|
|
3754
3767
|
static filterUnusedIds(paragraphs, numberingIds) {
|
|
3755
3768
|
const unusedNumberingIds = [...numberingIds];
|
|
3756
3769
|
let index = 0;
|
|
@@ -3764,6 +3777,17 @@ class NumberingOperationsHelper {
|
|
|
3764
3777
|
}
|
|
3765
3778
|
return unusedNumberingIds;
|
|
3766
3779
|
}
|
|
3780
|
+
static updateParagraphNumberings(paragraphs, oldToNewIds) {
|
|
3781
|
+
for (const paragraphStyle of paragraphs.map(x => x.paragraphStyle)) {
|
|
3782
|
+
if (paragraphStyle.numberingId == null) {
|
|
3783
|
+
continue;
|
|
3784
|
+
}
|
|
3785
|
+
const newId = oldToNewIds.get(paragraphStyle.numberingId);
|
|
3786
|
+
if (newId !== undefined) {
|
|
3787
|
+
paragraphStyle.numberingId = newId;
|
|
3788
|
+
}
|
|
3789
|
+
}
|
|
3790
|
+
}
|
|
3767
3791
|
}
|
|
3768
3792
|
|
|
3769
3793
|
var Alignment;
|
|
@@ -6027,13 +6051,13 @@ class OperationsHelper {
|
|
|
6027
6051
|
}
|
|
6028
6052
|
case CommandType.InsertContents: {
|
|
6029
6053
|
const model = command.insertContents;
|
|
6030
|
-
this.insertContents(contents, model.insertIndex, model.contents);
|
|
6054
|
+
this.insertContents(contents, document.numberings, model.insertIndex, model.contents);
|
|
6031
6055
|
break;
|
|
6032
6056
|
}
|
|
6033
6057
|
case CommandType.ReplaceByContents: {
|
|
6034
6058
|
const model = command.replaceByContents;
|
|
6035
6059
|
this.delete(contents, model.startIndex, model.count);
|
|
6036
|
-
this.insertContents(contents, model.startIndex, model.contents);
|
|
6060
|
+
this.insertContents(contents, document.numberings, model.startIndex, model.contents);
|
|
6037
6061
|
break;
|
|
6038
6062
|
}
|
|
6039
6063
|
}
|
|
@@ -6291,9 +6315,11 @@ class OperationsHelper {
|
|
|
6291
6315
|
document.comments = document.comments.filter(x => x.commentId !== commentId);
|
|
6292
6316
|
return comment;
|
|
6293
6317
|
}
|
|
6294
|
-
static insertContents(contents, insertIndex, insertContents) {
|
|
6318
|
+
static insertContents(contents, numberings, insertIndex, insertContents) {
|
|
6295
6319
|
const contentLength = insertContents.content.length;
|
|
6296
6320
|
contents.content = ContentOperationsHelper.insertContent(contents.content, insertContents.content, insertIndex);
|
|
6321
|
+
const insertNumberingId = NumberingOperationsHelper.generateNumberingId(numberings);
|
|
6322
|
+
NumberingOperationsHelper.insertRelative(numberings, insertNumberingId, insertContents.numberings, insertContents.paragraphs);
|
|
6297
6323
|
IndexedElementOperationsHelper.insertRelative(contents.paragraphs, insertIndex, contentLength, insertContents.paragraphs);
|
|
6298
6324
|
IndexedElementOperationsHelper.insertRelative(contents.images, insertIndex, contentLength, insertContents.images);
|
|
6299
6325
|
IndexedElementOperationsHelper.insertRelative(contents.tables, insertIndex, contentLength, insertContents.tables);
|
|
@@ -9728,7 +9754,7 @@ class EditSession {
|
|
|
9728
9754
|
table.instance.updateTable();
|
|
9729
9755
|
}
|
|
9730
9756
|
insertContents(insertIndex, contents) {
|
|
9731
|
-
OperationsHelper.insertContents(this.model, insertIndex, contents);
|
|
9757
|
+
OperationsHelper.insertContents(this.model, this.generalProperties.numberings, insertIndex, contents);
|
|
9732
9758
|
const endIndex = insertIndex + contents.content.length - 1;
|
|
9733
9759
|
this.insertComponents(this.model.tables, this.customComponents.tables, NoderTableComponent, insertIndex, endIndex);
|
|
9734
9760
|
this.insertComponents(this.model.images, this.customComponents.images, NoderImageComponent, insertIndex, endIndex);
|
|
@@ -9786,7 +9812,7 @@ class EditSession {
|
|
|
9786
9812
|
const startIndex = ContentHelper.paragraphPositionToDocumentIndex(this.displayData.paragraphs, start);
|
|
9787
9813
|
const endIndex = ContentHelper.paragraphPositionToDocumentIndex(this.displayData.paragraphs, end) - 1;
|
|
9788
9814
|
const count = endIndex - startIndex + 1;
|
|
9789
|
-
return ContentsOperationsHelper.GetRelativeContentSlice(this.model, startIndex, count);
|
|
9815
|
+
return ContentsOperationsHelper.GetRelativeContentSlice(this.model, this.generalProperties.numberings, startIndex, count);
|
|
9790
9816
|
}
|
|
9791
9817
|
createRestoreFromSlice(start, end) {
|
|
9792
9818
|
const startIndex = ContentHelper.paragraphToDocumentIndex(this.displayData.paragraphs, start.row, start.column);
|
|
@@ -13678,6 +13704,7 @@ class RenderingHelper {
|
|
|
13678
13704
|
const components = customContentService.getComponents(customComponents, fragmentStartIndex, fragmentEndIndex);
|
|
13679
13705
|
for (const component of components) {
|
|
13680
13706
|
const instance = component.instance;
|
|
13707
|
+
const relativeIndex = instance.insertIndex - paragraphStartIndex;
|
|
13681
13708
|
const textBeforeElement = fragmentText.substring(0, instance.insertIndex - fragmentStartIndex);
|
|
13682
13709
|
fragmentText = fragmentText.substring(textBeforeElement.length + 1, fragmentText.length);
|
|
13683
13710
|
this.renderText(fragment, textStyle, textBeforeElement, wordSpacing);
|
|
@@ -13692,7 +13719,7 @@ class RenderingHelper {
|
|
|
13692
13719
|
renderedIndexes++;
|
|
13693
13720
|
}
|
|
13694
13721
|
}
|
|
13695
|
-
else if (instance instanceof ExternalComponent && line.customTexts?.some(x => x.index ===
|
|
13722
|
+
else if (instance instanceof ExternalComponent && line.customTexts?.some(x => x.index === relativeIndex)) {
|
|
13696
13723
|
const tokens = renderedTokensInLine + renderedIndexes + additionalTokens;
|
|
13697
13724
|
const rendered = this.renderExternalText(fragment, textStyle, wordSpacing, instance, line, tokens, paragraphStartIndex);
|
|
13698
13725
|
renderedIndexes += rendered.renderedIndexes;
|
|
@@ -16133,7 +16160,7 @@ class Editor {
|
|
|
16133
16160
|
this.commandsService.createCommand(SaveCommandsHelper.getInsertContentsCommand(redoModel, this.targets));
|
|
16134
16161
|
}
|
|
16135
16162
|
saveReplaceByContentsToHistory(redoModel) {
|
|
16136
|
-
const undoSlice = ContentsOperationsHelper.GetRelativeContentSlice(this.session.model, redoModel.startIndex, redoModel.count);
|
|
16163
|
+
const undoSlice = ContentsOperationsHelper.GetRelativeContentSlice(this.session.model, this.session.generalProperties.numberings, redoModel.startIndex, redoModel.count);
|
|
16137
16164
|
const undoModel = new ReplaceByContentsModel({
|
|
16138
16165
|
startIndex: redoModel.startIndex,
|
|
16139
16166
|
contents: undoSlice,
|
|
@@ -17430,10 +17457,12 @@ class EditorSearchBarComponent {
|
|
|
17430
17457
|
this.searchInput?.nativeElement?.select();
|
|
17431
17458
|
});
|
|
17432
17459
|
}
|
|
17433
|
-
findNext() {
|
|
17460
|
+
findNext(event) {
|
|
17461
|
+
event?.stopPropagation();
|
|
17434
17462
|
this.editorService.goNextSearchResult();
|
|
17435
17463
|
}
|
|
17436
|
-
findPrev() {
|
|
17464
|
+
findPrev(event) {
|
|
17465
|
+
event.stopPropagation();
|
|
17437
17466
|
this.editorService.goPreviousSearchResult();
|
|
17438
17467
|
}
|
|
17439
17468
|
setReplace() {
|
|
@@ -17443,7 +17472,7 @@ class EditorSearchBarComponent {
|
|
|
17443
17472
|
this.editorService.replaceCurrentSearchResult();
|
|
17444
17473
|
}
|
|
17445
17474
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: EditorSearchBarComponent, deps: [{ token: EditorService }, { token: i0.DestroyRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
17446
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.5", type: EditorSearchBarComponent, isStandalone: true, selector: "app-nod-editor-search-bar", providers: [ExternalElementService], viewQueries: [{ propertyName: "searchInput", first: true, predicate: ["searchInput"], descendants: true }], ngImport: i0, template: "@let searchResultCount = searchResultCount$ | async;\n@let searchResultIndex = searchResultIndex$ | async;\n@let isViewOnly = isViewOnly$ | async;\n<div class=\"line search-form\">\n <mat-form-field\n color=\"accent\"\n floatLabel=\"auto\"\n appearance=\"outline\">\n <mat-label>{{ 'NODER.LABEL.
|
|
17475
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.5", type: EditorSearchBarComponent, isStandalone: true, selector: "app-nod-editor-search-bar", providers: [ExternalElementService], viewQueries: [{ propertyName: "searchInput", first: true, predicate: ["searchInput"], descendants: true }], ngImport: i0, template: "@let searchResultCount = searchResultCount$ | async;\n@let searchResultIndex = searchResultIndex$ | async;\n@let isViewOnly = isViewOnly$ | async;\n<div class=\"header\">\n <span>\n {{ 'NODER.LABEL.SEARCH_AND_REPLACE' | translate }}\n </span>\n <button\n class=\"navigate-button close-button\"\n mat-icon-button\n [matTooltip]=\"'NODER.LABEL.CLOSE' | translate\"\n (click)=\"onClose()\">\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"icon-cancel-thin\"></mat-icon>\n </button>\n</div>\n<div class=\"line search-form\">\n <button\n [disabled]=\"isViewOnly\"\n class=\"navigate-button\"\n mat-icon-button\n matTooltip=\"Toggle Replace Mode\"\n (click)=\"setReplace()\">\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"{{ isReplace ? 'icon-arrow-down' : 'icon-arrow-big' }}\"></mat-icon>\n </button>\n <mat-form-field\n color=\"accent\"\n floatLabel=\"auto\"\n appearance=\"outline\">\n <mat-label>{{ 'NODER.LABEL.SEARCH' | translate }}</mat-label>\n <input\n matInput\n #searchInput\n [formControl]=\"searchControl\"\n (keydown.enter)=\"findNext()\" />\n <div\n matSuffix\n class=\"input-suffix\">\n <span>{{ searchResultCount ? searchResultIndex : 0 }} / {{ searchResultCount ?? 0 }}</span>\n <div class=\"divider\"></div>\n <div>\n <button\n mat-icon-button\n class=\"navigate-button\"\n (click)=\"findPrev($event)\">\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"icon-arrow-up\"></mat-icon>\n </button>\n <button\n mat-icon-button\n class=\"navigate-button\"\n (click)=\"findNext($event)\">\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"icon-arrow-down\"></mat-icon>\n </button>\n </div>\n </div>\n </mat-form-field>\n</div>\n@if (isReplace) {\n <div class=\"replace-form\">\n <div class=\"replace-padding\"></div>\n <mat-form-field\n color=\"accent\"\n floatLabel=\"auto\"\n appearance=\"outline\">\n <mat-label>{{ 'NODER.LABEL.REPLACE' | translate }}</mat-label>\n <input\n matInput\n [formControl]=\"replaceControl\"\n spellcheck=\"false\"\n autocomplete=\"off\"\n (keydown.enter)=\"replace()\" />\n </mat-form-field>\n </div>\n <div class=\"action-buttons\">\n <button\n mat-button\n class=\"action-button\"\n (click)=\"replace()\">\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"icon-replace\"></mat-icon>\n {{ 'NODER.LABEL.REPLACE' | translate }}\n </button>\n </div>\n}\n", styles: [":host{min-height:56px;width:388px;display:flex;flex-direction:column;gap:8px;font-size:10px;border-radius:0 0 8px 8px;border-top:none;padding:16px}:host ::ng-deep .mat-mdc-form-field-subscript-wrapper{display:none}:host ::ng-deep .mat-mdc-form-field-flex{height:32px}:host ::ng-deep .mat-mdc-form-field-flex .mat-mdc-form-field-infix{min-height:unset;height:32px;display:flex}:host ::ng-deep .mat-mdc-form-field-flex .mat-mdc-form-field-infix input{font-size:12px;letter-spacing:0}:host ::ng-deep .mat-mdc-form-field-flex .mdc-floating-label.mat-mdc-floating-label:not(.mdc-floating-label--float-above){font-size:14px;top:15px}:host ::ng-deep .mat-mdc-button-persistent-ripple,:host ::ng-deep .mat-mdc-button-ripple,:host ::ng-deep .mat-focus-indicator,:host ::ng-deep .mat-mdc-button-touch-target{width:100%;height:100%}.header{display:flex;justify-content:space-between;align-items:center;font-size:12px}.navigate-button,.replace-padding{width:26px;height:26px;display:flex;justify-content:center;align-items:center;padding:0;font-size:12px;min-width:unset}.navigate-button.close-button,.replace-padding.close-button{width:20px;height:20px}.divider{height:16px;width:1px}.input-suffix{display:flex;align-items:center;gap:6px;margin-right:4px}.input-suffix span{font-size:12px;letter-spacing:0}.input-suffix div{display:flex;align-items:center}.action-buttons{display:flex;justify-content:flex-end;margin-top:8px}.action-button{font-size:12px;font-weight:400;letter-spacing:0;height:32px}.search-form,.replace-form{margin-top:8px;display:flex;align-items:center;gap:8px}mat-form-field{flex:1}.mat-mdc-input-element{font-size:10px}.replace-form .mdc-button{width:80px}mat-icon{font-size:18px;width:18px;height:18px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i6$1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "component", type: i5$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5$2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i5$2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i5$1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
17447
17476
|
}
|
|
17448
17477
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: EditorSearchBarComponent, decorators: [{
|
|
17449
17478
|
type: Component,
|
|
@@ -17456,7 +17485,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
|
|
|
17456
17485
|
MatTooltipModule,
|
|
17457
17486
|
ReactiveFormsModule,
|
|
17458
17487
|
TranslateModule
|
|
17459
|
-
], providers: [ExternalElementService], changeDetection: ChangeDetectionStrategy.OnPush, selector: 'app-nod-editor-search-bar', template: "@let searchResultCount = searchResultCount$ | async;\n@let searchResultIndex = searchResultIndex$ | async;\n@let isViewOnly = isViewOnly$ | async;\n<div class=\"line search-form\">\n <mat-form-field\n color=\"accent\"\n floatLabel=\"auto\"\n appearance=\"outline\">\n <mat-label>{{ 'NODER.LABEL.
|
|
17488
|
+
], providers: [ExternalElementService], changeDetection: ChangeDetectionStrategy.OnPush, selector: 'app-nod-editor-search-bar', template: "@let searchResultCount = searchResultCount$ | async;\n@let searchResultIndex = searchResultIndex$ | async;\n@let isViewOnly = isViewOnly$ | async;\n<div class=\"header\">\n <span>\n {{ 'NODER.LABEL.SEARCH_AND_REPLACE' | translate }}\n </span>\n <button\n class=\"navigate-button close-button\"\n mat-icon-button\n [matTooltip]=\"'NODER.LABEL.CLOSE' | translate\"\n (click)=\"onClose()\">\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"icon-cancel-thin\"></mat-icon>\n </button>\n</div>\n<div class=\"line search-form\">\n <button\n [disabled]=\"isViewOnly\"\n class=\"navigate-button\"\n mat-icon-button\n matTooltip=\"Toggle Replace Mode\"\n (click)=\"setReplace()\">\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"{{ isReplace ? 'icon-arrow-down' : 'icon-arrow-big' }}\"></mat-icon>\n </button>\n <mat-form-field\n color=\"accent\"\n floatLabel=\"auto\"\n appearance=\"outline\">\n <mat-label>{{ 'NODER.LABEL.SEARCH' | translate }}</mat-label>\n <input\n matInput\n #searchInput\n [formControl]=\"searchControl\"\n (keydown.enter)=\"findNext()\" />\n <div\n matSuffix\n class=\"input-suffix\">\n <span>{{ searchResultCount ? searchResultIndex : 0 }} / {{ searchResultCount ?? 0 }}</span>\n <div class=\"divider\"></div>\n <div>\n <button\n mat-icon-button\n class=\"navigate-button\"\n (click)=\"findPrev($event)\">\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"icon-arrow-up\"></mat-icon>\n </button>\n <button\n mat-icon-button\n class=\"navigate-button\"\n (click)=\"findNext($event)\">\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"icon-arrow-down\"></mat-icon>\n </button>\n </div>\n </div>\n </mat-form-field>\n</div>\n@if (isReplace) {\n <div class=\"replace-form\">\n <div class=\"replace-padding\"></div>\n <mat-form-field\n color=\"accent\"\n floatLabel=\"auto\"\n appearance=\"outline\">\n <mat-label>{{ 'NODER.LABEL.REPLACE' | translate }}</mat-label>\n <input\n matInput\n [formControl]=\"replaceControl\"\n spellcheck=\"false\"\n autocomplete=\"off\"\n (keydown.enter)=\"replace()\" />\n </mat-form-field>\n </div>\n <div class=\"action-buttons\">\n <button\n mat-button\n class=\"action-button\"\n (click)=\"replace()\">\n <mat-icon\n fontSet=\"noder-icon\"\n fontIcon=\"icon-replace\"></mat-icon>\n {{ 'NODER.LABEL.REPLACE' | translate }}\n </button>\n </div>\n}\n", styles: [":host{min-height:56px;width:388px;display:flex;flex-direction:column;gap:8px;font-size:10px;border-radius:0 0 8px 8px;border-top:none;padding:16px}:host ::ng-deep .mat-mdc-form-field-subscript-wrapper{display:none}:host ::ng-deep .mat-mdc-form-field-flex{height:32px}:host ::ng-deep .mat-mdc-form-field-flex .mat-mdc-form-field-infix{min-height:unset;height:32px;display:flex}:host ::ng-deep .mat-mdc-form-field-flex .mat-mdc-form-field-infix input{font-size:12px;letter-spacing:0}:host ::ng-deep .mat-mdc-form-field-flex .mdc-floating-label.mat-mdc-floating-label:not(.mdc-floating-label--float-above){font-size:14px;top:15px}:host ::ng-deep .mat-mdc-button-persistent-ripple,:host ::ng-deep .mat-mdc-button-ripple,:host ::ng-deep .mat-focus-indicator,:host ::ng-deep .mat-mdc-button-touch-target{width:100%;height:100%}.header{display:flex;justify-content:space-between;align-items:center;font-size:12px}.navigate-button,.replace-padding{width:26px;height:26px;display:flex;justify-content:center;align-items:center;padding:0;font-size:12px;min-width:unset}.navigate-button.close-button,.replace-padding.close-button{width:20px;height:20px}.divider{height:16px;width:1px}.input-suffix{display:flex;align-items:center;gap:6px;margin-right:4px}.input-suffix span{font-size:12px;letter-spacing:0}.input-suffix div{display:flex;align-items:center}.action-buttons{display:flex;justify-content:flex-end;margin-top:8px}.action-button{font-size:12px;font-weight:400;letter-spacing:0;height:32px}.search-form,.replace-form{margin-top:8px;display:flex;align-items:center;gap:8px}mat-form-field{flex:1}.mat-mdc-input-element{font-size:10px}.replace-form .mdc-button{width:80px}mat-icon{font-size:18px;width:18px;height:18px}\n"] }]
|
|
17460
17489
|
}], ctorParameters: () => [{ type: EditorService }, { type: i0.DestroyRef }], propDecorators: { searchInput: [{
|
|
17461
17490
|
type: ViewChild,
|
|
17462
17491
|
args: ['searchInput']
|