@rt-tools/ui-kit-v2 0.29.1 → 0.31.0
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/fesm2022/rt-tools-ui-kit-v2-autocomplete.mjs +23 -29
- package/fesm2022/rt-tools-ui-kit-v2-autocomplete.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-calendar.mjs +2 -2
- package/fesm2022/rt-tools-ui-kit-v2-calendar.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-core.mjs +223 -3
- package/fesm2022/rt-tools-ui-kit-v2-core.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-data-list.mjs +2 -2
- package/fesm2022/rt-tools-ui-kit-v2-data-list.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-draggable-tree.mjs +1 -2
- package/fesm2022/rt-tools-ui-kit-v2-draggable-tree.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-dynamic-list.mjs +2 -2
- package/fesm2022/rt-tools-ui-kit-v2-dynamic-list.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-dynamic-selector.mjs +277 -904
- package/fesm2022/rt-tools-ui-kit-v2-dynamic-selector.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-filter-control.mjs +2 -2
- package/fesm2022/rt-tools-ui-kit-v2-filter-control.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-hybrid-tree.mjs +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-hybrid-tree.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-multiselect.mjs +35 -48
- package/fesm2022/rt-tools-ui-kit-v2-multiselect.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-page-header.mjs +2 -2
- package/fesm2022/rt-tools-ui-kit-v2-pdf-viewer.mjs +2 -2
- package/fesm2022/rt-tools-ui-kit-v2-pdf-viewer.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-rich-editor.mjs +4 -4
- package/fesm2022/rt-tools-ui-kit-v2-rich-editor.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-select.mjs +37 -181
- package/fesm2022/rt-tools-ui-kit-v2-select.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-service-block.mjs +131 -0
- package/fesm2022/rt-tools-ui-kit-v2-service-block.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-side-menu.mjs +5 -36
- package/fesm2022/rt-tools-ui-kit-v2-side-menu.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-tag.mjs +2 -3
- package/fesm2022/rt-tools-ui-kit-v2-tag.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-toolbar.mjs +2 -2
- package/fesm2022/rt-tools-ui-kit-v2-toolbar.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-tree-selector.mjs +8 -13
- package/fesm2022/rt-tools-ui-kit-v2-tree-selector.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-tree.mjs +12 -7
- package/fesm2022/rt-tools-ui-kit-v2-tree.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-workspace.mjs +2 -2
- package/fesm2022/rt-tools-ui-kit-v2-workspace.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2.mjs +1 -0
- package/package.json +5 -1
- package/src/lib/components/dynamic-selector/stories/component/test-dynamic-selector-popup-frame.component.scss +6 -0
- package/src/lib/components/page-header/rt-page-header.component.scss +4 -2
- package/src/lib/components/service-block/CONTEXT.md +37 -0
- package/src/lib/components/service-block/rt-service-block.component.scss +61 -0
- package/src/lib/components/tree/CONTEXT.md +1 -1
- package/src/rich-editor/lib/components/ai-chat/CONTEXT.md +1 -1
- package/src/styles/_breakpoints.scss +37 -4
- package/src/styles/_index.scss +0 -4
- package/styles/tokens.css +0 -8
- package/types/rt-tools-ui-kit-v2-autocomplete.d.ts +4 -3
- package/types/rt-tools-ui-kit-v2-core.d.ts +155 -1
- package/types/rt-tools-ui-kit-v2-dynamic-selector.d.ts +51 -269
- package/types/rt-tools-ui-kit-v2-multiselect.d.ts +4 -3
- package/types/rt-tools-ui-kit-v2-select.d.ts +12 -74
- package/types/rt-tools-ui-kit-v2-service-block.d.ts +34 -0
- package/types/rt-tools-ui-kit-v2-side-menu.d.ts +5 -20
- package/types/rt-tools-ui-kit-v2-tag.d.ts +2 -3
- package/types/rt-tools-ui-kit-v2-tree-selector.d.ts +0 -2
- package/types/rt-tools-ui-kit-v2-tree.d.ts +7 -9
- package/types/rt-tools-ui-kit-v2.d.ts +1 -0
- package/src/styles/_place.scss +0 -7
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
import { ChangeDetectionStrategy, Component, ViewEncapsulation, input } from "@angular/core";
|
|
3
|
+
import { BlockDirective, ElemDirective } from "@rt-tools/core";
|
|
4
|
+
import { RtServiceLogoComponent } from "@rt-tools/ui-kit-v2/service-logo";
|
|
5
|
+
const BEM_BLOCK = "rt-service-block";
|
|
6
|
+
var RtServiceBlockComponent = class RtServiceBlockComponent {
|
|
7
|
+
constructor() {
|
|
8
|
+
this.logos = input.required(...ngDevMode ? [{ debugName: "logos" }] : /* istanbul ignore next */ []);
|
|
9
|
+
this.name = input.required(...ngDevMode ? [{ debugName: "name" }] : /* istanbul ignore next */ []);
|
|
10
|
+
this.description = input("", ...ngDevMode ? [{ debugName: "description" }] : /* istanbul ignore next */ []);
|
|
11
|
+
}
|
|
12
|
+
static {
|
|
13
|
+
this.ɵfac = i0.ɵɵngDeclareFactory({
|
|
14
|
+
minVersion: "12.0.0",
|
|
15
|
+
version: "22.2.2",
|
|
16
|
+
ngImport: i0,
|
|
17
|
+
type: RtServiceBlockComponent,
|
|
18
|
+
deps: [],
|
|
19
|
+
target: i0.ɵɵFactoryTarget.Component
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
static {
|
|
23
|
+
this.ɵcmp = i0.ɵɵngDeclareComponent({
|
|
24
|
+
minVersion: "17.0.0",
|
|
25
|
+
version: "22.2.2",
|
|
26
|
+
type: RtServiceBlockComponent,
|
|
27
|
+
isStandalone: true,
|
|
28
|
+
selector: "rt-service-block",
|
|
29
|
+
inputs: {
|
|
30
|
+
logos: {
|
|
31
|
+
classPropertyName: "logos",
|
|
32
|
+
publicName: "logos",
|
|
33
|
+
isSignal: true,
|
|
34
|
+
isRequired: true,
|
|
35
|
+
transformFunction: null
|
|
36
|
+
},
|
|
37
|
+
name: {
|
|
38
|
+
classPropertyName: "name",
|
|
39
|
+
publicName: "name",
|
|
40
|
+
isSignal: true,
|
|
41
|
+
isRequired: true,
|
|
42
|
+
transformFunction: null
|
|
43
|
+
},
|
|
44
|
+
description: {
|
|
45
|
+
classPropertyName: "description",
|
|
46
|
+
publicName: "description",
|
|
47
|
+
isSignal: true,
|
|
48
|
+
isRequired: false,
|
|
49
|
+
transformFunction: null
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
host: { classAttribute: "rt-service-block" },
|
|
53
|
+
ngImport: i0,
|
|
54
|
+
template: "<ng-container rtBlock=\"rt-service-block\">\n <rt-service-logo rtElem=\"logo\" qa-dataid=\"service-block-logo\" [logos]=\"logos()\" />\n\n <div rtElem=\"text\">\n <p rtElem=\"name\" qa-dataid=\"service-block-name\">{{ name() }}</p>\n\n @if (description(); as text) {\n <p rtElem=\"description\" qa-dataid=\"service-block-description\">{{ text }}</p>\n }\n </div>\n</ng-container>\n",
|
|
55
|
+
styles: ["@charset \"UTF-8\";@layer rt-kit.components{.rt-service-block{--rt-service-block-gap: var(--rt-space-4);--rt-service-block-text-gap: var(--rt-space-0-5);--rt-service-block-padding-bottom: var(--rt-space-5);--rt-service-block-divider: var(--rt-border-width-thin) solid var(--rt-color-border-subtle);--rt-service-block-name-size: var(--rt-text-xl);--rt-service-block-name-weight: var(--rt-font-weight-semibold);--rt-service-block-name-line-height: var(--rt-leading-snug);--rt-service-block-name-color: var(--rt-color-text-primary);--rt-service-block-description-size: var(--rt-text-sm);--rt-service-block-description-weight: var(--rt-font-weight-regular);--rt-service-block-description-line-height: var(--rt-leading-normal);--rt-service-block-description-color: var(--rt-color-text-muted);display:flex;width:100%;align-items:center;padding-bottom:var(--rt-service-block-padding-bottom);border-bottom:var(--rt-service-block-divider);gap:var(--rt-service-block-gap)}.rt-service-block__logo{flex:none}.rt-service-block__text{display:flex;min-width:0;flex:1 1 0;flex-direction:column;gap:var(--rt-service-block-text-gap);overflow-wrap:anywhere}.rt-service-block__name{margin:0;color:var(--rt-service-block-name-color);font-size:var(--rt-service-block-name-size);font-weight:var(--rt-service-block-name-weight);line-height:var(--rt-service-block-name-line-height)}.rt-service-block__description{margin:0;color:var(--rt-service-block-description-color);font-size:var(--rt-service-block-description-size);font-weight:var(--rt-service-block-description-weight);line-height:var(--rt-service-block-description-line-height)}}\n"],
|
|
56
|
+
dependencies: [
|
|
57
|
+
{
|
|
58
|
+
kind: "directive",
|
|
59
|
+
type: BlockDirective,
|
|
60
|
+
selector: "[rtBlock]",
|
|
61
|
+
inputs: ["rtMod"]
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
kind: "directive",
|
|
65
|
+
type: ElemDirective,
|
|
66
|
+
selector: "[rtElem]",
|
|
67
|
+
inputs: ["rtMod"]
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
kind: "component",
|
|
71
|
+
type: RtServiceLogoComponent,
|
|
72
|
+
selector: "rt-service-logo",
|
|
73
|
+
inputs: ["logos", "size"]
|
|
74
|
+
}
|
|
75
|
+
],
|
|
76
|
+
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
77
|
+
encapsulation: i0.ViewEncapsulation.None
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
i0.ɵɵngDeclareClassMetadata({
|
|
82
|
+
minVersion: "12.0.0",
|
|
83
|
+
version: "22.2.2",
|
|
84
|
+
ngImport: i0,
|
|
85
|
+
type: RtServiceBlockComponent,
|
|
86
|
+
decorators: [{
|
|
87
|
+
type: Component,
|
|
88
|
+
args: [{
|
|
89
|
+
selector: "rt-service-block",
|
|
90
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
91
|
+
encapsulation: ViewEncapsulation.None,
|
|
92
|
+
imports: [
|
|
93
|
+
BlockDirective,
|
|
94
|
+
ElemDirective,
|
|
95
|
+
RtServiceLogoComponent
|
|
96
|
+
],
|
|
97
|
+
host: { class: BEM_BLOCK },
|
|
98
|
+
template: "<ng-container rtBlock=\"rt-service-block\">\n <rt-service-logo rtElem=\"logo\" qa-dataid=\"service-block-logo\" [logos]=\"logos()\" />\n\n <div rtElem=\"text\">\n <p rtElem=\"name\" qa-dataid=\"service-block-name\">{{ name() }}</p>\n\n @if (description(); as text) {\n <p rtElem=\"description\" qa-dataid=\"service-block-description\">{{ text }}</p>\n }\n </div>\n</ng-container>\n",
|
|
99
|
+
styles: ["@charset \"UTF-8\";@layer rt-kit.components{.rt-service-block{--rt-service-block-gap: var(--rt-space-4);--rt-service-block-text-gap: var(--rt-space-0-5);--rt-service-block-padding-bottom: var(--rt-space-5);--rt-service-block-divider: var(--rt-border-width-thin) solid var(--rt-color-border-subtle);--rt-service-block-name-size: var(--rt-text-xl);--rt-service-block-name-weight: var(--rt-font-weight-semibold);--rt-service-block-name-line-height: var(--rt-leading-snug);--rt-service-block-name-color: var(--rt-color-text-primary);--rt-service-block-description-size: var(--rt-text-sm);--rt-service-block-description-weight: var(--rt-font-weight-regular);--rt-service-block-description-line-height: var(--rt-leading-normal);--rt-service-block-description-color: var(--rt-color-text-muted);display:flex;width:100%;align-items:center;padding-bottom:var(--rt-service-block-padding-bottom);border-bottom:var(--rt-service-block-divider);gap:var(--rt-service-block-gap)}.rt-service-block__logo{flex:none}.rt-service-block__text{display:flex;min-width:0;flex:1 1 0;flex-direction:column;gap:var(--rt-service-block-text-gap);overflow-wrap:anywhere}.rt-service-block__name{margin:0;color:var(--rt-service-block-name-color);font-size:var(--rt-service-block-name-size);font-weight:var(--rt-service-block-name-weight);line-height:var(--rt-service-block-name-line-height)}.rt-service-block__description{margin:0;color:var(--rt-service-block-description-color);font-size:var(--rt-service-block-description-size);font-weight:var(--rt-service-block-description-weight);line-height:var(--rt-service-block-description-line-height)}}\n"]
|
|
100
|
+
}]
|
|
101
|
+
}],
|
|
102
|
+
propDecorators: {
|
|
103
|
+
logos: [{
|
|
104
|
+
type: i0.Input,
|
|
105
|
+
args: [{
|
|
106
|
+
isSignal: true,
|
|
107
|
+
alias: "logos",
|
|
108
|
+
required: true
|
|
109
|
+
}]
|
|
110
|
+
}],
|
|
111
|
+
name: [{
|
|
112
|
+
type: i0.Input,
|
|
113
|
+
args: [{
|
|
114
|
+
isSignal: true,
|
|
115
|
+
alias: "name",
|
|
116
|
+
required: true
|
|
117
|
+
}]
|
|
118
|
+
}],
|
|
119
|
+
description: [{
|
|
120
|
+
type: i0.Input,
|
|
121
|
+
args: [{
|
|
122
|
+
isSignal: true,
|
|
123
|
+
alias: "description",
|
|
124
|
+
required: false
|
|
125
|
+
}]
|
|
126
|
+
}]
|
|
127
|
+
}
|
|
128
|
+
});
|
|
129
|
+
export { RtServiceBlockComponent };
|
|
130
|
+
|
|
131
|
+
//# sourceMappingURL=rt-tools-ui-kit-v2-service-block.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rt-tools-ui-kit-v2-service-block.mjs","names":[],"sources":["../../../projects/ui-kit-v2/src/lib/components/service-block/rt-service-block.component.ts","../../../projects/ui-kit-v2/src/lib/components/service-block/rt-service-block.component.html"],"sourcesContent":["import { ChangeDetectionStrategy, Component, input, InputSignal, ViewEncapsulation } from '@angular/core';\n\nimport { BlockDirective, ElemDirective } from '@rt-tools/core';\n\nimport { IRtServiceLogo, RtServiceLogoComponent } from '@rt-tools/ui-kit-v2/service-logo';\n\nconst BEM_BLOCK: string = 'rt-service-block';\n\n/**\n * Блок службы — первый блок тела панели настройки подключения: знак службы размера `md`, справа\n * имя службы и строка-описание, под блоком черта. Одна разметка на интеграции, способы оплаты и\n * мессенджеры. Своих текстов блок не несёт: имя, описание и подписи знаков даёт приложение.\n */\n@Component({\n selector: 'rt-service-block',\n templateUrl: './rt-service-block.component.html',\n styleUrl: './rt-service-block.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [\n // standalone components / directives\n BlockDirective,\n ElemDirective,\n RtServiceLogoComponent,\n ],\n host: {\n class: BEM_BLOCK,\n },\n})\nexport class RtServiceBlockComponent {\n /** Знаки службы — те же, что принимает `rt-service-logo`; несколько ложатся внахлёст. */\n public readonly logos: InputSignal<readonly IRtServiceLogo.Item[]> = input.required<readonly IRtServiceLogo.Item[]>();\n\n /** Имя службы — жирная строка справа от знака. */\n public readonly name: InputSignal<string> = input.required<string>();\n\n /** Строка-описание под именем. Пустая строка не рисуется. */\n public readonly description: InputSignal<string> = input<string>('');\n}\n","<ng-container rtBlock=\"rt-service-block\">\n <rt-service-logo rtElem=\"logo\" qa-dataid=\"service-block-logo\" [logos]=\"logos()\" />\n\n <div rtElem=\"text\">\n <p rtElem=\"name\" qa-dataid=\"service-block-name\">{{ name() }}</p>\n\n @if (description(); as text) {\n <p rtElem=\"description\" qa-dataid=\"service-block-description\">{{ text }}</p>\n }\n </div>\n</ng-container>\n"],"mappings":";;;;AAMA,MAAM,YAAoB;AAuB1B,IAAa,0BAAb,MAAa,wBAAuB;CAhBpC,cAAA;EAkBoB,KAAA,QAAqD,MAAM,SAA0C,GAAA,YAAA,CAAA,EAAA,WAAA,QAAA,CAAA,+BAAA,CAAA,CAAA;EAGrG,KAAA,OAA4B,MAAM,SAAkB,GAAA,YAAA,CAAA,EAAA,WAAA,OAAA,CAAA,+BAAA,CAAA,CAAA;EAGpD,KAAA,cAAmC,MAAc,IAAG,GAAA,YAAA,CAAA,EAAA,WAAA,cAAA,CAAA,+BAAA,CAAA,CAAA;CACvE;CATY;EAAA,KAAA,OAAA,GAAA,mBAAA;GAAA,YAAA;GAAA,SAAA;GAAA,UAAA;GAAA,MAAA;GAAuB,MAAA,CAAA;GAAA,QAAA,GAAA,gBAAA;EAAA,CAAA;CAAA;CAAvB;EAAA,KAAA,OAAA,GAAA,qBAAA;GAAA,YAAA;GAAA,SAAA;GAAA,MAAA;GAAuB,cAAA;GAAA,UAAA;GAAA,QAAA;IAAA,OAAA;KAAA,mBAAA;KAAA,YAAA;KAAA,UAAA;KAAA,YAAA;KAAA,mBAAA;IAAA;IAAA,MAAA;KAAA,mBAAA;KAAA,YAAA;KAAA,UAAA;KAAA,YAAA;KAAA,mBAAA;IAAA;IAAA,aAAA;KAAA,mBAAA;KAAA,YAAA;KAAA,UAAA;KAAA,YAAA;KAAA,mBAAA;IAAA;GAAA;GAAA,MAAA,EAAA,gBAAA,mBAAA;GAAA,UAAA;GAAA,UC7BpC;GAWA,QAAA,CAAA,glDAAA;GAAA,cAAA;IAAA;KAAA,MAAA;KAAA,MDUQ;KAAc,UAAA;KAAA,QAAA,CAAA,OAAA;IAAA;IAAA;KAAA,MAAA;KAAA,MACd;KAAa,UAAA;KAAA,QAAA,CAAA,OAAA;IAAA;IAAA;KAAA,MAAA;KAAA,MACb;KAAsB,UAAA;KAAA,QAAA,CAAA,SAAA,MAAA;IAAA;GAAA;GAAA,iBAAA,GAAA,wBAAA;GAAA,eAAA,GAAA,kBAAA;EAAA,CAAA;CAAA;;AAMjB,GAAA,yBAAA;CAAA,YAAA;CAAA,SAAA;CAAA,UAAA;CAAA,MAAA;CAAuB,YAAA,CAAA;EAhBnC,MAAA;EACa,MAAA,CAAA;GAAA,UAAA;GAAkB,iBAGX,wBAAwB;GAAM,eAChC,kBAAkB;GAAI,SAC5B;IAEL;IACA;IACA;GACH;GAAA,MACK,EACF,OAAO,UACV;GAAA,UAAA;GAAA,QAAA,CAAA,glDAAA;EAAA,CAAA"}
|
|
@@ -6,7 +6,7 @@ import { FormControl, ReactiveFormsModule } from "@angular/forms";
|
|
|
6
6
|
import { takeUntilDestroyed } from "@angular/core/rxjs-interop";
|
|
7
7
|
import { ActivatedRoute, Router, RouterLink } from "@angular/router";
|
|
8
8
|
import { BlockDirective, ElemDirective, LOCAL_STORAGE, ModDirective, PlatformService, WINDOW } from "@rt-tools/core";
|
|
9
|
-
import { BreakpointsService, ERtStorageKeys, rtKitLabel } from "@rt-tools/ui-kit-v2/core";
|
|
9
|
+
import { BreakpointsService, ERtStorageKeys, rtKitLabel, rtMatchParts, rtSearchMatches, rtSearchWords } from "@rt-tools/ui-kit-v2/core";
|
|
10
10
|
import { RtIconComponent, isKitIconName, materialPairOf } from "@rt-tools/ui-kit-v2/icon";
|
|
11
11
|
import { RtIconButtonComponent } from "@rt-tools/ui-kit-v2/icon-button";
|
|
12
12
|
import { RtInputComponent } from "@rt-tools/ui-kit-v2/input";
|
|
@@ -69,8 +69,7 @@ function isSideMenuDropOutside(panel, point) {
|
|
|
69
69
|
return point.x < panel.left || point.x > panel.right || point.y < panel.top || point.y > panel.bottom;
|
|
70
70
|
}
|
|
71
71
|
function filterSideMenuItems(items, query) {
|
|
72
|
-
|
|
73
|
-
if (needle === "") return [...items];
|
|
72
|
+
if (rtSearchWords(query).length === 0) return [...items];
|
|
74
73
|
return items.reduce((kept, item) => {
|
|
75
74
|
const isFolder = Boolean(item.submenu?.length);
|
|
76
75
|
const inside = isFolder ? filterSideMenuItems(item.submenu ?? [], query) : [];
|
|
@@ -81,7 +80,7 @@ function filterSideMenuItems(items, query) {
|
|
|
81
80
|
});
|
|
82
81
|
return kept;
|
|
83
82
|
}
|
|
84
|
-
if (item.name
|
|
83
|
+
if (rtSearchMatches(item.name ?? "", query)) kept.push(isFolder ? {
|
|
85
84
|
...item,
|
|
86
85
|
submenu: []
|
|
87
86
|
} : item);
|
|
@@ -100,36 +99,6 @@ const RT_SIDE_MENU_WIDTH_STEP = 16;
|
|
|
100
99
|
function clampSideMenuWidth(width) {
|
|
101
100
|
return Math.min(480, Math.max(120, width));
|
|
102
101
|
}
|
|
103
|
-
function splitSideMenuTitle(name, query) {
|
|
104
|
-
if (name === "") return [];
|
|
105
|
-
const needle = query.trim().toLowerCase();
|
|
106
|
-
if (needle === "") return [{
|
|
107
|
-
text: name,
|
|
108
|
-
matched: false
|
|
109
|
-
}];
|
|
110
|
-
const haystack = name.toLowerCase();
|
|
111
|
-
const parts = [];
|
|
112
|
-
let from = 0;
|
|
113
|
-
for (let at = haystack.indexOf(needle, from); at !== -1; at = haystack.indexOf(needle, from)) {
|
|
114
|
-
if (at > from) parts.push({
|
|
115
|
-
text: name.slice(from, at),
|
|
116
|
-
matched: false
|
|
117
|
-
});
|
|
118
|
-
parts.push({
|
|
119
|
-
text: name.slice(at, at + needle.length),
|
|
120
|
-
matched: true
|
|
121
|
-
});
|
|
122
|
-
from = at + needle.length;
|
|
123
|
-
}
|
|
124
|
-
if (from < name.length) parts.push({
|
|
125
|
-
text: name.slice(from),
|
|
126
|
-
matched: false
|
|
127
|
-
});
|
|
128
|
-
return parts;
|
|
129
|
-
}
|
|
130
|
-
function splitTitleByWords(name, query) {
|
|
131
|
-
return query.split(/\s+/).filter((word) => word !== "").reduce((parts, word) => parts.flatMap((part) => part.matched ? [part] : splitSideMenuTitle(part.text, word)), splitSideMenuTitle(name, ""));
|
|
132
|
-
}
|
|
133
102
|
function walkSideMenuItems(items, expandedIds) {
|
|
134
103
|
return items.reduce((walk, item) => {
|
|
135
104
|
walk.push(item);
|
|
@@ -506,7 +475,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
506
475
|
});
|
|
507
476
|
var RtSideMenuTitlePartsPipe = class RtSideMenuTitlePartsPipe {
|
|
508
477
|
transform(name, query) {
|
|
509
|
-
return
|
|
478
|
+
return rtMatchParts(name ?? "", query);
|
|
510
479
|
}
|
|
511
480
|
static {
|
|
512
481
|
this.ɵfac = i0.ɵɵngDeclareFactory({
|
|
@@ -2260,6 +2229,6 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
2260
2229
|
}]
|
|
2261
2230
|
}
|
|
2262
2231
|
});
|
|
2263
|
-
export { RT_SIDE_MENU_DEFAULT_ID, RT_SIDE_MENU_SETTINGS_CONFIG, RT_SIDE_MENU_WIDTH_MAX, RT_SIDE_MENU_WIDTH_MIN, RT_SIDE_MENU_WIDTH_STEP, RtSideMenuComponent, RtSideMenuFooterDirective, RtSideMenuHeaderDirective, RtSideMenuIconDirective, RtSideMenuSettingsService, RtSideMenuSubItemComponent, clampSideMenuWidth, drawnSideMenuWidth, filterSideMenuItems, normalizeSideMenuId, normalizeSideMenuSettings, omitSideMenuSettings, parseSideMenuSettingsRecord, patchSideMenuSettings, pinnedSideMenuItems, provideRtSideMenuSettings, readSideMenuSettings, reportedSideMenuWidth, sideMenuIconName, sideMenuIdsToExpand, sideMenuPressOpensInBrowser, sideMenuWidthByKey,
|
|
2232
|
+
export { RT_SIDE_MENU_DEFAULT_ID, RT_SIDE_MENU_SETTINGS_CONFIG, RT_SIDE_MENU_WIDTH_MAX, RT_SIDE_MENU_WIDTH_MIN, RT_SIDE_MENU_WIDTH_STEP, RtSideMenuComponent, RtSideMenuFooterDirective, RtSideMenuHeaderDirective, RtSideMenuIconDirective, RtSideMenuSettingsService, RtSideMenuSubItemComponent, clampSideMenuWidth, drawnSideMenuWidth, filterSideMenuItems, normalizeSideMenuId, normalizeSideMenuSettings, omitSideMenuSettings, parseSideMenuSettingsRecord, patchSideMenuSettings, pinnedSideMenuItems, provideRtSideMenuSettings, readSideMenuSettings, reportedSideMenuWidth, sideMenuIconName, sideMenuIdsToExpand, sideMenuPressOpensInBrowser, sideMenuWidthByKey, startSideMenuWidthDrag, stepSideMenuHighlight, unpairedSideMenuIcons, walkSideMenuItems, warnUnpairedSideMenuIcons };
|
|
2264
2233
|
|
|
2265
2234
|
//# sourceMappingURL=rt-tools-ui-kit-v2-side-menu.mjs.map
|