@databrainhq/plugin 0.15.13 → 0.15.15-uat

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/README.md CHANGED
@@ -1,233 +1,233 @@
1
- # @databrainhq/plugin
2
-
3
- > Databrain app ui web component plugin.
4
-
5
- [![NPM](https://img.shields.io/npm/v/@databrainhq/plugin.svg)](https://www.npmjs.com/package/@databrainhq/plugin) [![JavaScript Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](https://standardjs.com)
6
-
7
- ## Install
8
-
9
- ```bash
10
- npm install @databrainhq/plugin
11
- ```
12
-
13
- ## Usage
14
-
15
- React/Solidjs
16
-
17
- Import in main/index/App
18
- ```tsx
19
- import '@databrainhq/plugin/web';
20
- ```
21
- Then use it anywhere in your app
22
-
23
- Integrating Dashboard
24
-
25
- ```tsx
26
- const Example = () => {
27
- return (
28
- <dbn-dashboard
29
- token="Your Guest Token"
30
- dashboardId="Your Dashboard Id"
31
- options={{
32
- disableMetricCreation: false,
33
- disableMetricUpdation: false,
34
- disableMetricDeletion: false,
35
- disableLayoutCustomization: false,
36
- chartColors: [
37
- 'violet',
38
- 'indigo',
39
- 'blue',
40
- 'green',
41
- 'yellow',
42
- 'orange',
43
- 'red',
44
- 'pink',
45
- 'gray',
46
- ],
47
- }}
48
- theme={YOUR_THEME}
49
- />
50
- );
51
- };
52
- ```
53
-
54
- Integrating Metric
55
-
56
- ```tsx
57
- const Example = () => {
58
- return (
59
- <Metric
60
- token="Your Guest Token"
61
- metricId="Your Metric Id"
62
- width="500px"
63
- height="300px"
64
- chartRendererType="canvas"
65
- chartColors={[
66
- 'violet',
67
- 'indigo',
68
- 'blue',
69
- 'green',
70
- 'yellow',
71
- 'orange',
72
- 'red',
73
- 'pink',
74
- 'gray',
75
- ]}
76
- theme={YOUR_THEME}
77
- />
78
- );
79
- };
80
- ```
81
-
82
- Vue
83
-
84
- Import in main/index/App
85
- ```vue
86
- <script setup lang="ts">
87
- import '@databrainhq/plugin/web';
88
- </script>
89
- ```
90
- Then use it anywhere in your app
91
-
92
- Integrating Dashboard
93
-
94
- ```vue
95
- <script setup lang="ts">
96
- // your component logic
97
- </script>
98
- <template>
99
- <dbn-dashboard
100
- :token="/*YOUR GUEST TOKEN*/"
101
- :options="/*YOUR ACCESS PERMISSION OPTIONS*/"
102
- :theme="/*YOUR THEME*/"
103
- :dashboardId="/*YOUR DASHBORD ID*/"
104
- ></dbn-dashboard>
105
- </template>
106
- ```
107
-
108
- Integrating Metric
109
-
110
- ```vue
111
- <script setup lang="ts">
112
- // your component logic
113
- </script>
114
- <template>
115
- <dbn-metric
116
- :token="/*YOUR GUEST TOKEN*/"
117
- chartRendererType="canvas"
118
- :theme="/*YOUR THEME*/"
119
- :dashboardId="/*YOUR DASHBORD ID*/"
120
- width="500"
121
- height="400"
122
- :style="/* YOUR STYLEs */"
123
- className="YOUR CLASS"
124
- ></dbn-metric>
125
- </template>
126
- ```
127
-
128
- Svelte
129
-
130
- Import in main/index/App
131
-
132
- ```svelte
133
- <script lang="ts">
134
- import '@databrainhq/plugin/web';
135
- </script>
136
- ```
137
-
138
- Then use it anywhere in your app
139
-
140
- Integrating Dashboard
141
-
142
- ```svelte
143
- <script lang="ts">
144
- // your component logic
145
- </script>
146
- <main>
147
- <dbn-dashboard
148
- token={/*YOUR GUEST TOKEN*/}
149
- options={/*YOUR ACCESS PERMISSION OPTIONS*/}
150
- theme={/*YOUR THEME*/}
151
- dashboardId={/*YOUR DASHBORD ID*/}
152
- ></dbn-dashboard>
153
- </main>
154
- ```
155
-
156
- Integrating Metric
157
-
158
- ```svelte
159
- <script lang="ts">
160
- // your component logic
161
- </script>
162
- <main>
163
- <dbn-metric
164
- token={/*YOUR GUEST TOKEN*/}
165
- chartRendererType="canvas"
166
- theme={/*YOUR THEME*/}
167
- dashboardId="/*YOUR DASHBORD ID*/"
168
- width="500"
169
- height="400"
170
- style={/* YOUR STYLEs */}
171
- className="YOUR CLASS"
172
- ></dbn-metric>
173
- </main>
174
- ```
175
-
176
- Angular
177
-
178
- Add suport for custom elements/web components in app.module.ts
179
-
180
- ```ts
181
- // app.module.ts
182
- import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
183
- import { BrowserModule } from '@angular/platform-browser';
184
-
185
- import { AppComponent } from './app.component';
186
-
187
- @NgModule({
188
- declarations: [AppComponent],
189
- imports: [BrowserModule],
190
- providers: [],
191
- bootstrap: [AppComponent],
192
- schemas: [CUSTOM_ELEMENTS_SCHEMA],
193
- })
194
-
195
- export class AppModule {}
196
- ```
197
- Import in app.component.ts
198
-
199
- ```ts
200
- import '@databrainhq/plugin/web';
201
- ```
202
-
203
- Then use it anywhere in your app
204
-
205
- Integrating Dashboard
206
-
207
- ```html
208
- <dbn-dashboard
209
- token="YOUR GUEST TOKEN"
210
- options="YOUR ACCESS PERMISSION OPTIONS"
211
- theme="YOUR THEME"
212
- dashboardId="YOUR DASHBORD ID"
213
- ></dbn-dashboard>
214
- ```
215
-
216
- Integrating Metric
217
-
218
- ```html
219
- <dbn-metric
220
- token="YOUR GUEST TOKEN"
221
- chartRendererType="canvas"
222
- theme="YOUR THEME"
223
- dashboardId="YOUR DASHBORD ID"
224
- width="500"
225
- height="400"
226
- style="YOUR STYLE"
227
- className="YOUR CLASS"
228
- ></dbn-metric>
229
- ```
230
-
231
- ## License
232
-
233
- MIT © [databrainhq](https://github.com/databrainhq)
1
+ # @databrainhq/plugin
2
+
3
+ > Databrain app ui web component plugin.
4
+
5
+ [![NPM](https://img.shields.io/npm/v/@databrainhq/plugin.svg)](https://www.npmjs.com/package/@databrainhq/plugin) [![JavaScript Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](https://standardjs.com)
6
+
7
+ ## Install
8
+
9
+ ```bash
10
+ npm install @databrainhq/plugin
11
+ ```
12
+
13
+ ## Usage
14
+
15
+ React/Solidjs
16
+
17
+ Import in main/index/App
18
+ ```tsx
19
+ import '@databrainhq/plugin/web';
20
+ ```
21
+ Then use it anywhere in your app
22
+
23
+ Integrating Dashboard
24
+
25
+ ```tsx
26
+ const Example = () => {
27
+ return (
28
+ <dbn-dashboard
29
+ token="Your Guest Token"
30
+ dashboardId="Your Dashboard Id"
31
+ options={{
32
+ disableMetricCreation: false,
33
+ disableMetricUpdation: false,
34
+ disableMetricDeletion: false,
35
+ disableLayoutCustomization: false,
36
+ chartColors: [
37
+ 'violet',
38
+ 'indigo',
39
+ 'blue',
40
+ 'green',
41
+ 'yellow',
42
+ 'orange',
43
+ 'red',
44
+ 'pink',
45
+ 'gray',
46
+ ],
47
+ }}
48
+ theme={YOUR_THEME}
49
+ />
50
+ );
51
+ };
52
+ ```
53
+
54
+ Integrating Metric
55
+
56
+ ```tsx
57
+ const Example = () => {
58
+ return (
59
+ <Metric
60
+ token="Your Guest Token"
61
+ metricId="Your Metric Id"
62
+ width="500px"
63
+ height="300px"
64
+ chartRendererType="canvas"
65
+ chartColors={[
66
+ 'violet',
67
+ 'indigo',
68
+ 'blue',
69
+ 'green',
70
+ 'yellow',
71
+ 'orange',
72
+ 'red',
73
+ 'pink',
74
+ 'gray',
75
+ ]}
76
+ theme={YOUR_THEME}
77
+ />
78
+ );
79
+ };
80
+ ```
81
+
82
+ Vue
83
+
84
+ Import in main/index/App
85
+ ```vue
86
+ <script setup lang="ts">
87
+ import '@databrainhq/plugin/web';
88
+ </script>
89
+ ```
90
+ Then use it anywhere in your app
91
+
92
+ Integrating Dashboard
93
+
94
+ ```vue
95
+ <script setup lang="ts">
96
+ // your component logic
97
+ </script>
98
+ <template>
99
+ <dbn-dashboard
100
+ :token="/*YOUR GUEST TOKEN*/"
101
+ :options="/*YOUR ACCESS PERMISSION OPTIONS*/"
102
+ :theme="/*YOUR THEME*/"
103
+ :dashboardId="/*YOUR DASHBORD ID*/"
104
+ ></dbn-dashboard>
105
+ </template>
106
+ ```
107
+
108
+ Integrating Metric
109
+
110
+ ```vue
111
+ <script setup lang="ts">
112
+ // your component logic
113
+ </script>
114
+ <template>
115
+ <dbn-metric
116
+ :token="/*YOUR GUEST TOKEN*/"
117
+ chartRendererType="canvas"
118
+ :theme="/*YOUR THEME*/"
119
+ :dashboardId="/*YOUR DASHBORD ID*/"
120
+ width="500"
121
+ height="400"
122
+ :style="/* YOUR STYLEs */"
123
+ className="YOUR CLASS"
124
+ ></dbn-metric>
125
+ </template>
126
+ ```
127
+
128
+ Svelte
129
+
130
+ Import in main/index/App
131
+
132
+ ```svelte
133
+ <script lang="ts">
134
+ import '@databrainhq/plugin/web';
135
+ </script>
136
+ ```
137
+
138
+ Then use it anywhere in your app
139
+
140
+ Integrating Dashboard
141
+
142
+ ```svelte
143
+ <script lang="ts">
144
+ // your component logic
145
+ </script>
146
+ <main>
147
+ <dbn-dashboard
148
+ token={/*YOUR GUEST TOKEN*/}
149
+ options={/*YOUR ACCESS PERMISSION OPTIONS*/}
150
+ theme={/*YOUR THEME*/}
151
+ dashboardId={/*YOUR DASHBORD ID*/}
152
+ ></dbn-dashboard>
153
+ </main>
154
+ ```
155
+
156
+ Integrating Metric
157
+
158
+ ```svelte
159
+ <script lang="ts">
160
+ // your component logic
161
+ </script>
162
+ <main>
163
+ <dbn-metric
164
+ token={/*YOUR GUEST TOKEN*/}
165
+ chartRendererType="canvas"
166
+ theme={/*YOUR THEME*/}
167
+ dashboardId="/*YOUR DASHBORD ID*/"
168
+ width="500"
169
+ height="400"
170
+ style={/* YOUR STYLEs */}
171
+ className="YOUR CLASS"
172
+ ></dbn-metric>
173
+ </main>
174
+ ```
175
+
176
+ Angular
177
+
178
+ Add suport for custom elements/web components in app.module.ts
179
+
180
+ ```ts
181
+ // app.module.ts
182
+ import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
183
+ import { BrowserModule } from '@angular/platform-browser';
184
+
185
+ import { AppComponent } from './app.component';
186
+
187
+ @NgModule({
188
+ declarations: [AppComponent],
189
+ imports: [BrowserModule],
190
+ providers: [],
191
+ bootstrap: [AppComponent],
192
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
193
+ })
194
+
195
+ export class AppModule {}
196
+ ```
197
+ Import in app.component.ts
198
+
199
+ ```ts
200
+ import '@databrainhq/plugin/web';
201
+ ```
202
+
203
+ Then use it anywhere in your app
204
+
205
+ Integrating Dashboard
206
+
207
+ ```html
208
+ <dbn-dashboard
209
+ token="YOUR GUEST TOKEN"
210
+ options="YOUR ACCESS PERMISSION OPTIONS"
211
+ theme="YOUR THEME"
212
+ dashboardId="YOUR DASHBORD ID"
213
+ ></dbn-dashboard>
214
+ ```
215
+
216
+ Integrating Metric
217
+
218
+ ```html
219
+ <dbn-metric
220
+ token="YOUR GUEST TOKEN"
221
+ chartRendererType="canvas"
222
+ theme="YOUR THEME"
223
+ dashboardId="YOUR DASHBORD ID"
224
+ width="500"
225
+ height="400"
226
+ style="YOUR STYLE"
227
+ className="YOUR CLASS"
228
+ ></dbn-metric>
229
+ ```
230
+
231
+ ## License
232
+
233
+ MIT © [databrainhq](https://github.com/databrainhq)
@@ -20,6 +20,8 @@ export type SingleValueChartProps = {
20
20
  }[];
21
21
  isEnableTruncate?: boolean;
22
22
  truncateValue?: number;
23
+ upVariant?: string;
24
+ downVariant?: string;
23
25
  };
24
26
  value: string | number;
25
27
  hideBorder?: boolean;
@@ -6,6 +6,7 @@ export type ComparisonLagProps = {
6
6
  comparisonLagSettings: ComparisonLagSettings;
7
7
  dateTimeColumnList: FloatingDropDownOption[];
8
8
  onSaveComparisonLag: () => void;
9
+ onDisableComparisonSettings?: () => void;
9
10
  } | undefined;
10
11
  type Props = {
11
12
  chartSettings: ChartSettingsType;
@@ -24,5 +24,7 @@ export type MultiFilterDropDownProps = Pick<FilterDropDownProps, 'autoSelected'
24
24
  isDisablelabel?: boolean;
25
25
  radius?: string;
26
26
  isFilter?: boolean;
27
+ isSelectAllEnabled?: boolean;
28
+ isSelectAllOn?: boolean;
27
29
  };
28
30
  export declare const MultiFilterDropdown: React.FC<MultiFilterDropDownProps>;
@@ -32,6 +32,7 @@ export type FloatingDropDownProps = {
32
32
  isLoadingData?: boolean;
33
33
  hasOnlyColumnName?: boolean;
34
34
  error?: string;
35
+ menuZIndex?: number;
35
36
  };
36
- export declare const FloatingDropDown: ({ id, label, labelVariant, selectedOption, onChange, button, options, isDisabled, customButton, icon, buttonWidth, buttonHeight, menuWidth, size, isSearchEnabled, searchPlaceholder, placeholder, children, radius, isFilter, disableAutoClose, isClearEnabled, className, menuMaxHeight, isImportant, dataTestTitle, isAutoSelectOption, onSearch, isLoadingData, error, }: FloatingDropDownProps) => React.JSX.Element;
37
+ export declare const FloatingDropDown: ({ id, label, labelVariant, selectedOption, onChange, button, options, isDisabled, customButton, icon, buttonWidth, buttonHeight, menuWidth, size, isSearchEnabled, searchPlaceholder, placeholder, children, radius, isFilter, disableAutoClose, isClearEnabled, className, menuMaxHeight, isImportant, dataTestTitle, isAutoSelectOption, onSearch, isLoadingData, error, menuZIndex, }: FloatingDropDownProps) => React.JSX.Element;
37
38
  export declare const FloatingDropDownWithSubValues: ({ label, labelVariant, selectedOption, onChange, button, options, isDisabled, customButton, icon, buttonWidth, menuWidth, isSearchEnabled, searchPlaceholder, placeholder, children, radius, isFilter, disableAutoClose, isClearEnabled, isImportant, hasOnlyColumnName, }: FloatingDropDownProps) => React.JSX.Element;
@@ -22,6 +22,7 @@ type FiltersProps = {
22
22
  tenancyLevel: string;
23
23
  clientColumnType: ClientColumnType;
24
24
  hideDatePickerOptions?: string[];
25
+ isEndUserApp?: boolean;
25
26
  };
26
27
  export declare const Filters: React.FC<FiltersProps>;
27
28
  export {};
@@ -29,6 +29,7 @@ type HorizontalFiltersProps = {
29
29
  };
30
30
  isEditLayoutEnabled: boolean;
31
31
  hideDatePickerOptions?: string[];
32
+ isEndUserApp?: boolean;
32
33
  };
33
34
  export declare const HorizontalFilters: React.FC<HorizontalFiltersProps>;
34
35
  export {};
@@ -39,6 +39,7 @@ type GlobalFiltersProps = {
39
39
  hideDatePickerOptions?: string[];
40
40
  filterIconColor?: string;
41
41
  filterButtonBgColor?: string;
42
+ isEndUserApp?: boolean;
42
43
  };
43
44
  export declare const getFormattedFilterValue: (obj: {
44
45
  operator: string;
@@ -72,6 +73,7 @@ type FilterPopupProps = {
72
73
  hideDatePickerOptions?: string[];
73
74
  filterIconColor?: string;
74
75
  filterButtonBgColor?: string;
76
+ isEndUserApp?: boolean;
75
77
  };
76
78
  export declare const FilterPopup: React.FC<FilterPopupProps>;
77
79
  export {};
@@ -0,0 +1,12 @@
1
+ import React from 'react';
2
+ import { ChartSettingsType } from '@/types';
3
+ type Props = {
4
+ isOpen: boolean;
5
+ onClose: () => void;
6
+ zIndex: number;
7
+ chartSettings: ChartSettingsType;
8
+ columnList: string[];
9
+ setChartSettings: React.Dispatch<React.SetStateAction<ChartSettingsType>>;
10
+ };
11
+ declare const ChartPropertiesPanel: ({ isOpen, onClose, zIndex, chartSettings, setChartSettings, columnList, }: Props) => React.JSX.Element;
12
+ export default ChartPropertiesPanel;
@@ -31,6 +31,9 @@ export type MultiSelectDropdownProps = Omit<MultiSelectAccordianDropdownProps, '
31
31
  isAutoSelectOption?: boolean;
32
32
  isLoadingData?: boolean;
33
33
  error?: string;
34
+ menuZIndex?: number;
35
+ isSelectAllEnabled?: boolean;
36
+ isSelectAllOn?: boolean;
34
37
  };
35
38
  export declare const MultiSelectAccordianDropdown: ({ label, labelVariant, selectedOption, onChange, button, options, isDisabled, icon, buttonWidth, menuWidth, isSearchEnabled, searchIcon, closeControl, searchPlaceholder, radius, }: MultiSelectAccordianDropdownProps) => React.JSX.Element;
36
- export declare const MultiSelectDropdown: ({ id, label, labelVariant, selectedOption, onChange, button, options, isDisabled, icon, buttonWidth, menuWidth, isSearchEnabled, searchIcon, closeControl, searchPlaceholder, isShowSelectedOptions, radius, isFilter, dataTestTitle, isAutoSelectOption, isLoadingData, error, }: MultiSelectDropdownProps) => React.JSX.Element;
39
+ export declare const MultiSelectDropdown: ({ id, label, labelVariant, selectedOption: selectedOption_temp, onChange, button, options, isDisabled, icon, buttonWidth, menuWidth, isSearchEnabled, searchIcon, closeControl, searchPlaceholder, isShowSelectedOptions, radius, isFilter, dataTestTitle, isAutoSelectOption, isLoadingData, error, menuZIndex, isSelectAllEnabled, isSelectAllOn, }: MultiSelectDropdownProps) => React.JSX.Element;
@@ -29,6 +29,8 @@ export type PopoverMenuProps = React.PropsWithChildren & {
29
29
  isMenuOpen?: boolean;
30
30
  setMenuOpen?: React.Dispatch<React.SetStateAction<boolean>>;
31
31
  dataTestTitle?: string;
32
+ menuZIndex?: number;
33
+ popoverButtonId?: string;
32
34
  };
33
35
  export declare const PopoverMenu: React.FC<PopoverMenuProps>;
34
36
  export {};
@@ -44,6 +44,8 @@ export declare const DEFAULT_COMPARISON_LAG_SETTINGS: {
44
44
  value: string;
45
45
  label: string;
46
46
  };
47
+ differenceType: "PERCENTAGE_DIFFERENCE" | "DIFFERENCE";
48
+ timeColumnLabel: string;
47
49
  periodLag: number;
48
50
  };
49
51
  export declare const DEFAULT_FORECAST_VALUES: {
@@ -50,6 +50,8 @@ export declare const getChartDimensions: (columns: SqlColumns, chartType: string
50
50
  xAxis: string;
51
51
  singleValue: string;
52
52
  progressData: string;
53
+ progressMaxData: string;
54
+ progressMinData: string;
53
55
  };
54
56
  export declare const getEnabledCharts: (data: Record<string, any>[], columns: SqlColumns) => string[];
55
57
  export declare const getColumns: ({ columns, data, dbName, }: {
@@ -14,3 +14,5 @@ export declare const isDateStringValid: (dateString: string) => boolean;
14
14
  export declare const getSavedChartFields: (optionList: string[], newData?: any[]) => string[];
15
15
  export declare const setChartFields: ({ chartType, chartDimensions, chartMetrics, chartAggregateColumns, resultData, configAggregates, pivotHeaderColumns, chartTimeColumns, setChartSettings, chartSettings, configuration, }: SetChartFieldParams) => void;
16
16
  export declare const getDatabaseName: (name: string) => "bigquery" | "mysql" | "postgresql";
17
+ export declare const getWordCount: (text: string) => number;
18
+ export declare const generateRandomId: (length?: number) => string;
@@ -13,6 +13,7 @@ interface DashboardContextType {
13
13
  externalDashboard: any;
14
14
  rlsSettings: any | undefined;
15
15
  appFilters: any | undefined;
16
+ dashboardAppFilters: any | undefined;
16
17
  companyTenancyType: any;
17
18
  isAllowedToCreateMetrics: boolean | undefined;
18
19
  isAllowedToDeleteMetrics: boolean | undefined;
@@ -100,5 +100,9 @@ export declare const useMetricCard: ({ metric, globalFilters, rlsFilters, client
100
100
  setSummary: import("react").Dispatch<import("react").SetStateAction<ChartReportStateType>>;
101
101
  dataMartRelationships: any;
102
102
  onChartChange: (chartType: ChartSettingsType['chartType']) => void;
103
+ isCompareValue: boolean;
104
+ isShowChartPropertyPanel: boolean;
105
+ setShowChartPropertyPanel: import("react").Dispatch<import("react").SetStateAction<boolean>>;
106
+ columnList: string[];
103
107
  };
104
108
  export {};
@@ -29,6 +29,7 @@ declare const useNewEmbeddedDashboard: ({ token, dashboardId, }: {
29
29
  isAllClient: boolean;
30
30
  metricCreationMode: string;
31
31
  isAllowedManageMetrics: boolean;
32
+ dashboardAppFilters: any;
32
33
  };
33
34
  };
34
35
  export default useNewEmbeddedDashboard;