@sarasanalytics-com/design-system 0.0.136 → 0.0.138

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/interfaces/button-interface.mjs +1 -1
  2. package/esm2022/interfaces/chip-interface.mjs +1 -1
  3. package/esm2022/interfaces/form-layout.interface.mjs +2 -0
  4. package/esm2022/interfaces/grid-interface.mjs +1 -1
  5. package/esm2022/lib/avatar/avatar.component.mjs +3 -3
  6. package/esm2022/lib/categories-nav/categories-nav.component.mjs +27 -0
  7. package/esm2022/lib/chips/chips.component.mjs +3 -3
  8. package/esm2022/lib/data-grid/data-grid.component.mjs +135 -0
  9. package/esm2022/lib/dialog/dialog.component.mjs +43 -3
  10. package/esm2022/lib/filter/filter.component.mjs +232 -0
  11. package/esm2022/lib/form-input/form-input.component.mjs +71 -7
  12. package/esm2022/lib/form-select/form-select.component.mjs +187 -5
  13. package/esm2022/lib/grid-cell/grid-cell.component.mjs +173 -25
  14. package/esm2022/lib/menu/menu-list/menu-item.component.mjs +3 -3
  15. package/esm2022/lib/menu/menu.component.mjs +3 -3
  16. package/esm2022/lib/message-banner-v2/message-banner-v2.component.mjs +256 -7
  17. package/esm2022/lib/query-builder/query-builder-demo.component.mjs +134 -0
  18. package/esm2022/lib/query-builder/query-builder.component.mjs +275 -0
  19. package/esm2022/lib/query-builder/query-builder.service.mjs +107 -0
  20. package/esm2022/lib/query-builder-textarea/query-builder-textarea-demo.component.mjs +130 -0
  21. package/esm2022/lib/query-builder-textarea/query-builder-textarea.component.mjs +805 -0
  22. package/esm2022/lib/tool-tip/tool-tip.component.mjs +8 -3
  23. package/esm2022/public-api.mjs +10 -1
  24. package/fesm2022/sarasanalytics-com-design-system.mjs +3042 -587
  25. package/fesm2022/sarasanalytics-com-design-system.mjs.map +1 -1
  26. package/interfaces/button-interface.d.ts +1 -0
  27. package/interfaces/form-layout.interface.d.ts +59 -0
  28. package/interfaces/grid-interface.d.ts +11 -4
  29. package/lib/categories-nav/categories-nav.component.d.ts +15 -0
  30. package/lib/data-grid/data-grid.component.d.ts +33 -0
  31. package/lib/dialog/dialog.component.d.ts +13 -0
  32. package/lib/filter/filter.component.d.ts +83 -0
  33. package/lib/form-input/form-input.component.d.ts +11 -1
  34. package/lib/form-select/form-select.component.d.ts +8 -0
  35. package/lib/grid-cell/grid-cell.component.d.ts +51 -10
  36. package/lib/message-banner-v2/message-banner-v2.component.d.ts +34 -2
  37. package/lib/query-builder/query-builder-demo.component.d.ts +14 -0
  38. package/lib/query-builder/query-builder.component.d.ts +90 -0
  39. package/lib/query-builder/query-builder.service.d.ts +39 -0
  40. package/lib/query-builder-textarea/query-builder-textarea-demo.component.d.ts +9 -0
  41. package/lib/query-builder-textarea/query-builder-textarea.component.d.ts +143 -0
  42. package/lib/tool-tip/tool-tip.component.d.ts +2 -1
  43. package/package.json +1 -1
  44. package/public-api.d.ts +9 -0
@@ -0,0 +1,143 @@
1
+ import { EventEmitter, OnInit, ElementRef, AfterViewInit, OnDestroy } from '@angular/core';
2
+ import { FormBuilder, FormGroup } from '@angular/forms';
3
+ import * as i0 from "@angular/core";
4
+ export interface TextareaQueryConfig {
5
+ fields: TextareaQueryField[];
6
+ operators: TextareaQueryOperator[];
7
+ defaultCondition?: 'and' | 'or';
8
+ }
9
+ export interface TextareaQueryField {
10
+ key: string;
11
+ label: string;
12
+ type: string;
13
+ description?: string;
14
+ unit?: string;
15
+ options?: {
16
+ label: string;
17
+ value: any;
18
+ }[];
19
+ operators?: string[];
20
+ }
21
+ export interface TextareaQueryOperator {
22
+ value: string;
23
+ label: string;
24
+ description?: string;
25
+ types?: string[];
26
+ }
27
+ export interface TextareaQueryGroup {
28
+ condition: 'and' | 'or';
29
+ rules: (TextareaQueryRule | TextareaQueryGroup)[];
30
+ }
31
+ export interface TextareaQueryRule {
32
+ field: string;
33
+ operator: string;
34
+ value: any;
35
+ condition?: 'and' | 'or';
36
+ }
37
+ export interface SuggestionItem {
38
+ id: string;
39
+ name: string;
40
+ label: string;
41
+ description?: string;
42
+ unit?: string;
43
+ value: string;
44
+ type: 'field' | 'operator' | 'value' | 'condition';
45
+ }
46
+ export interface DropdownPosition {
47
+ top: number;
48
+ left: number;
49
+ }
50
+ export declare class QueryBuilderTextareaComponent implements OnInit, AfterViewInit, OnDestroy {
51
+ private fb;
52
+ config: TextareaQueryConfig;
53
+ queryChange: EventEmitter<TextareaQueryGroup>;
54
+ suggestionSelected: EventEmitter<SuggestionItem>;
55
+ queryTextarea: ElementRef<HTMLTextAreaElement>;
56
+ dropdown: ElementRef<HTMLDivElement>;
57
+ form: FormGroup;
58
+ suggestions: SuggestionItem[];
59
+ filteredSuggestions: SuggestionItem[];
60
+ isDropdownVisible: boolean;
61
+ selectedIndex: number;
62
+ dropdownPosition: DropdownPosition;
63
+ selectedSuggestion: SuggestionItem | null;
64
+ isDatePickerVisible: boolean;
65
+ datePickerPosition: DropdownPosition;
66
+ currentDateField: string | null;
67
+ currentDateOperator: string | null;
68
+ showDualDatePicker: boolean;
69
+ firstDateSelected: Date | null;
70
+ secondDateSelected: Date | null;
71
+ private destroy$;
72
+ private searchSubject;
73
+ private cursorPosition;
74
+ private currentContext;
75
+ private lastSelectedField;
76
+ private readonly DEBOUNCE_DELAY;
77
+ private readonly MAX_SUGGESTIONS;
78
+ constructor(fb: FormBuilder);
79
+ onDocumentClick(event: Event): void;
80
+ ngOnInit(): void;
81
+ ngAfterViewInit(): void;
82
+ ngOnDestroy(): void;
83
+ private setupSearchStream;
84
+ private setupTextareaEvents;
85
+ private initSuggestions;
86
+ private updateCursorPosition;
87
+ /**
88
+ * Gets text up to the cursor position
89
+ */
90
+ getTillCursor(): string;
91
+ /**
92
+ * Gets the last word before cursor position
93
+ */
94
+ getLastWordBeforeCursor(): string;
95
+ /**
96
+ * Inserts text at the position of the current word
97
+ */
98
+ insertWord(text: string, appendOnly?: boolean): void;
99
+ private insertSuggestion;
100
+ onApply(): void;
101
+ onReset(): void;
102
+ private onTextareaInput;
103
+ private onTextareaBlur;
104
+ private updateContext;
105
+ private filterSuggestionsByContext;
106
+ private getContextSuggestions;
107
+ private getOperatorSuggestions;
108
+ private getValueSuggestions;
109
+ private calculateRelevanceScore;
110
+ private parseQuery;
111
+ private parseAndEmitQuery;
112
+ private onKeyDown;
113
+ private getCurrentWord;
114
+ private getCurrentWordBounds;
115
+ private getPreviousTokens;
116
+ private isAfterOperator;
117
+ private isAfterField;
118
+ private isAfterValue;
119
+ private getLastField;
120
+ onSuggestionClick(suggestion: SuggestionItem): void;
121
+ private selectSuggestion;
122
+ onOptionSelected(event: any): void;
123
+ private searchSuggestions;
124
+ private hideDropdown;
125
+ private showOperatorSuggestions;
126
+ private showValueSuggestions;
127
+ private updateDropdownPosition;
128
+ private showDatePicker;
129
+ private updateDatePickerPosition;
130
+ private getCurrentOperator;
131
+ onFirstDateSelected(date: Date): void;
132
+ onSecondDateSelected(date: Date): void;
133
+ private insertDateValue;
134
+ private insertDateRangeValue;
135
+ private formatDate;
136
+ private insertTextAtCursor;
137
+ hideDatePicker(): void;
138
+ private getCursorCoordinates;
139
+ private scrollToSelected;
140
+ private parseRule;
141
+ static ɵfac: i0.ɵɵFactoryDeclaration<QueryBuilderTextareaComponent, never>;
142
+ static ɵcmp: i0.ɵɵComponentDeclaration<QueryBuilderTextareaComponent, "sa-query-builder-textarea", never, { "config": { "alias": "config"; "required": false; }; }, { "queryChange": "queryChange"; "suggestionSelected": "suggestionSelected"; }, never, never, true, never>;
143
+ }
@@ -3,6 +3,7 @@ import * as i0 from "@angular/core";
3
3
  export declare class ToolTipComponent {
4
4
  messages: string[];
5
5
  pointerPosition: string;
6
+ simpleMode: boolean;
6
7
  toolTipSkipped: EventEmitter<any>;
7
8
  toolTipSeen: EventEmitter<any>;
8
9
  arrowIcon: string;
@@ -11,5 +12,5 @@ export declare class ToolTipComponent {
11
12
  updateMsgInd(k: number): void;
12
13
  skipToolTip(): void;
13
14
  static ɵfac: i0.ɵɵFactoryDeclaration<ToolTipComponent, never>;
14
- static ɵcmp: i0.ɵɵComponentDeclaration<ToolTipComponent, "sa-tool-tip", never, { "messages": { "alias": "messages"; "required": false; }; "pointerPosition": { "alias": "pointerPosition"; "required": false; }; }, { "toolTipSkipped": "toolTipSkipped"; "toolTipSeen": "toolTipSeen"; }, never, never, true, never>;
15
+ static ɵcmp: i0.ɵɵComponentDeclaration<ToolTipComponent, "sa-tool-tip", never, { "messages": { "alias": "messages"; "required": false; }; "pointerPosition": { "alias": "pointerPosition"; "required": false; }; "simpleMode": { "alias": "simpleMode"; "required": false; }; }, { "toolTipSkipped": "toolTipSkipped"; "toolTipSeen": "toolTipSeen"; }, never, never, true, never>;
15
16
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sarasanalytics-com/design-system",
3
- "version": "0.0.136",
3
+ "version": "0.0.138",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^17.2.0",
6
6
  "@angular/core": "^17.2.0"
package/public-api.d.ts CHANGED
@@ -13,12 +13,15 @@ export * from './lib/card/guide-card/guide-card.component';
13
13
  export * from './lib/card/menu-card/menu-card.component';
14
14
  export * from './lib/card/thumbnail-card/thumbnail-card.component';
15
15
  export * from './lib/card-carousel/card-carousel.component';
16
+ export * from './lib/categories-nav/categories-nav.component';
16
17
  export * from './lib/checkbox/checkbox.component';
17
18
  export * from './lib/chips/chips.component';
18
19
  export * from './lib/component-library.component';
19
20
  export * from './lib/dashboard-loader/dashboard-loader.component';
21
+ export * from './lib/data-grid/data-grid.component';
20
22
  export * from './lib/datepicker/datepicker.component';
21
23
  export * from './lib/dialog/dialog.component';
24
+ export * from './lib/filter/filter.component';
22
25
  export * from './lib/form-input/form-input.component';
23
26
  export * from './lib/form-select/form-select.component';
24
27
  export * from './lib/grid-cell/grid-cell.component';
@@ -34,6 +37,10 @@ export * from './lib/message-banner-v2/message-banner-v2.component';
34
37
  export * from './lib/mini-card/mini-card.component';
35
38
  export * from './lib/page-layout/page-layout.component';
36
39
  export * from './lib/progress-bar/progress-bar.component';
40
+ export * from './lib/query-builder/query-builder-demo.component';
41
+ export * from './lib/query-builder/query-builder.component';
42
+ export * from './lib/query-builder-textarea/query-builder-textarea-demo.component';
43
+ export * from './lib/query-builder-textarea/query-builder-textarea.component';
37
44
  export * from './lib/radio-button/radio-button.component';
38
45
  export * from './lib/scrolling-cards/scrolling-cards.component';
39
46
  export * from './lib/skeleton/skeleton-base.component';
@@ -49,10 +56,12 @@ export * from './lib/tool-tip/tool-tip.component';
49
56
  export * from './lib/typography-animation/typography-animation.component';
50
57
  export * from './lib/component-library.service';
51
58
  export * from './lib/icon/icon.service';
59
+ export * from './lib/query-builder/query-builder.service';
52
60
  export * from './interfaces/avatar-interface';
53
61
  export * from './interfaces/button-interface';
54
62
  export * from './interfaces/card-carousel-interface';
55
63
  export * from './interfaces/chip-interface';
64
+ export * from './interfaces/form-layout.interface';
56
65
  export * from './interfaces/grid-interface';
57
66
  export * from './interfaces/guide-card-interface';
58
67
  export * from './interfaces/header-interface';