@oneteme/jquery-organizer 0.0.4 → 0.0.6

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.
@@ -1,9 +1,10 @@
1
+ import { OrganizerTemplate } from './organizer-config.interface';
1
2
  import { OrganizerChartItem, OrganizerChartSection } from './organizer-chart-adapter';
2
3
  export interface OrganizerChartConfig {
3
4
  groups?: OrganizerChartSection;
4
5
  indicators?: OrganizerChartSection;
5
6
  filters?: OrganizerChartSection;
6
- templates?: any[];
7
+ templates?: OrganizerTemplate[];
7
8
  }
8
9
  export declare enum SyntheticItemKeys {
9
10
  EMPTY = "__empty__",
@@ -24,6 +25,7 @@ export declare enum OrganizerButtonEventType {
24
25
  GROUP_BY_SELECTED = "groupBySelected",
25
26
  TEMPLATE_SELECTED = "templateSelected",
26
27
  SLICE_SELECTED = "sliceSelected",
28
+ CHART_TYPE_SELECTED = "chartTypeSelected",
27
29
  VIEW_SWITCHED = "viewSwitched"
28
30
  }
29
31
  export declare function getGroupItems(config: OrganizerChartConfig | null | undefined): OrganizerChartItem[];
@@ -34,9 +34,16 @@ export interface OrganizerViewSlice {
34
34
  label: string;
35
35
  icon?: string;
36
36
  }
37
+ export interface OrganizerChartType {
38
+ id: string;
39
+ label: string;
40
+ icon?: string;
41
+ disabled?: boolean;
42
+ }
37
43
  export interface OrganizerTemplate {
38
44
  id: string;
39
45
  label: string;
46
+ description?: string;
40
47
  icon?: string;
41
48
  xField?: string;
42
49
  yField?: string;
@@ -61,6 +68,7 @@ export interface OrganizerConfig {
61
68
  groups?: OrganizerViewGroup[];
62
69
  slices?: OrganizerViewSlice[];
63
70
  templates?: OrganizerTemplate[];
71
+ chartTypes?: OrganizerChartType[];
64
72
  onFetchFieldData?: (fieldId: string) => Promise<string[] | Record<string, any>[]>;
65
73
  onFetchSliceData?: (filterKey: string) => Observable<any[]> | Promise<any[]>;
66
74
  onSliceClick?: () => void;
@@ -98,6 +106,7 @@ export interface OrganizerSliceState {
98
106
  export interface OrganizerState {
99
107
  viewMode?: 'chart' | 'table';
100
108
  visibleFields?: string[];
109
+ selectedChartType?: string;
101
110
  selectedX?: string;
102
111
  selectedY?: string;
103
112
  selectedYAggregate?: string;
@@ -106,7 +115,7 @@ export interface OrganizerState {
106
115
  selectedTemplate?: string;
107
116
  }
108
117
  export interface OrganizerButtonEvent {
109
- type: 'fieldToggled' | 'xSelected' | 'ySelected' | 'groupBySelected' | 'templateSelected' | 'sliceSelected' | 'reset' | 'viewSwitched';
118
+ type: 'fieldToggled' | 'xSelected' | 'ySelected' | 'groupBySelected' | 'templateSelected' | 'sliceSelected' | 'chartTypeSelected' | 'reset' | 'viewSwitched';
110
119
  state: OrganizerState;
111
120
  source?: 'user' | 'api';
112
121
  resolvedYUnit?: string | UnitConfig;
@@ -1,4 +1,5 @@
1
1
  import { OrganizerConfig, OrganizerState, OrganizerTemplate, OrganizerYField } from './organizer-config.interface';
2
+ type OrganizerStateConfig = Pick<OrganizerConfig, 'xFields' | 'yFields' | 'groups' | 'slices' | 'templates' | 'chartTypes'>;
2
3
  export interface OrganizerYIndicator {
3
4
  id: string;
4
5
  label: string;
@@ -6,6 +7,7 @@ export interface OrganizerYIndicator {
6
7
  }
7
8
  export declare function buildYFields(indicators: OrganizerYIndicator[]): OrganizerYField[];
8
9
  export declare function resolveYKey(selectedY: string | undefined, selectedYAggregate: string | undefined): string | undefined;
9
- export declare function normalizeOrganizerState(state: OrganizerState | undefined, config: Pick<OrganizerConfig, 'xFields' | 'yFields' | 'groups' | 'slices' | 'templates'>): OrganizerState;
10
- export declare function normalizeTemplateToState(template: OrganizerTemplate, currentState: OrganizerState | undefined, config: Pick<OrganizerConfig, 'xFields' | 'yFields' | 'groups' | 'slices' | 'templates'>): OrganizerState;
11
- export declare function resolveMatchingTemplateId(templates: OrganizerTemplate[] | undefined, state: OrganizerState | undefined, config: Pick<OrganizerConfig, 'xFields' | 'yFields' | 'groups' | 'slices' | 'templates'>): string | undefined;
10
+ export declare function normalizeOrganizerState(state: OrganizerState | undefined, config: OrganizerStateConfig): OrganizerState;
11
+ export declare function normalizeTemplateToState(template: OrganizerTemplate, currentState: OrganizerState | undefined, config: OrganizerStateConfig): OrganizerState;
12
+ export declare function resolveMatchingTemplateId(templates: OrganizerTemplate[] | undefined, state: OrganizerState | undefined, config: OrganizerStateConfig): string | undefined;
13
+ export {};
@@ -12,6 +12,7 @@ export declare class OrganizerButtonComponent implements OnInit, OnDestroy {
12
12
  loadingFieldId?: string;
13
13
  private fieldDataCache;
14
14
  private destroy$;
15
+ private destroyed;
15
16
  mainMenuTrigger?: MatMenuTrigger;
16
17
  constructor(cdr: ChangeDetectorRef);
17
18
  ngOnInit(): void;
@@ -23,6 +24,7 @@ export declare class OrganizerButtonComponent implements OnInit, OnDestroy {
23
24
  onYFieldSelect(fieldId: string): void;
24
25
  onYAggregateSelect(yFieldId: string, aggregateId: string): void;
25
26
  onGroupBySelect(groupId: string): void;
27
+ onChartTypeSelect(chartType: string): void;
26
28
  onTemplateSelect(templateId: string): void;
27
29
  onSliceClick(sliceId?: string): void;
28
30
  private syncSliceState;
@@ -48,12 +50,15 @@ export declare class OrganizerButtonComponent implements OnInit, OnDestroy {
48
50
  activeXLabel(): string;
49
51
  activeYLabel(): string;
50
52
  activeGroupByLabel(): string;
53
+ activeChartTypeLabel(): string;
51
54
  activeSlicesLabel(): string;
52
55
  activeTemplateLabel(): string;
53
56
  hasChartFields(): boolean;
57
+ hasChartTypes(): boolean;
54
58
  hasTableFields(): boolean;
55
59
  isYActive(yFieldId: string): boolean;
56
60
  isYAggregateActive(yFieldId: string, aggregateId: string): boolean;
61
+ isChartTypeActive(chartType: string): boolean;
57
62
  private emitChange;
58
63
  static ɵfac: i0.ɵɵFactoryDeclaration<OrganizerButtonComponent, never>;
59
64
  static ɵcmp: i0.ɵɵComponentDeclaration<OrganizerButtonComponent, "organizer-button", never, { "config": { "alias": "config"; "required": false; }; "state": { "alias": "state"; "required": false; }; "hideMenuValues": { "alias": "hideMenuValues"; "required": false; }; }, { "viewChange": "viewChange"; "sliceStateChange": "sliceStateChange"; }, never, never, true, never>;
@@ -1,6 +1,7 @@
1
1
  import { ElementRef, EventEmitter, OnChanges, OnInit, SimpleChanges } from '@angular/core';
2
2
  import { SliceColumnDef, SliceConfig } from './slice-panel.model';
3
3
  import * as i0 from "@angular/core";
4
+ export type SlicePanelFilters = Record<string, string[]>;
4
5
  export declare class SlicePanelComponent<T = any> implements OnChanges, OnInit {
5
6
  sliceConfigs: SliceConfig<T>[];
6
7
  columns: SliceColumnDef<T>[];
@@ -60,13 +61,14 @@ export declare class SlicePanelComponent<T = any> implements OnChanges, OnInit {
60
61
  isSliceEmpty(sliceIndex: number): boolean;
61
62
  onSliceCategorySelected(sliceIndex: number, categoryKey: string): void;
62
63
  onSliceAllSelected(sliceIndex: number): void;
63
- getActiveFilters(): Record<number, string[]>;
64
- restoreFilters(filters: Record<number, string[]>): void;
64
+ getActiveFilters(): SlicePanelFilters;
65
+ restoreFilters(filters: SlicePanelFilters): void;
65
66
  addDynamicSlice(column: SliceColumnDef<T>): void;
66
67
  removeDynamicSlice(sliceIndex: number): void;
67
68
  removeDynamicSliceByKey(key: string): void;
68
69
  private _emitFilter;
69
70
  private _getDynamicSliceColumnKey;
71
+ private _getPersistentSliceKey;
70
72
  private _getSliceIdentity;
71
73
  private _materializeSlice;
72
74
  private _buildCategoryFromValue;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oneteme/jquery-organizer",
3
- "version": "0.0.4",
3
+ "version": "0.0.6",
4
4
  "description": "Independent Organizer Button component library - decentralized organizer management for charts, tables",
5
5
  "homepage": "https://github.com/oneteme/jquery-charts",
6
6
  "bugs": "https://github.com/oneteme/jquery-charts/issues",
@@ -13,7 +13,7 @@
13
13
  "@angular/core": ">=16.1.0",
14
14
  "@angular/material": "^16.1.0",
15
15
  "@angular/cdk": "^16.1.0",
16
- "@oneteme/jquery-core": "^0.0.35"
16
+ "@oneteme/jquery-core": "^0.0.37"
17
17
  },
18
18
  "dependencies": {
19
19
  "tslib": "^2.3.0"
package/public-api.d.ts CHANGED
@@ -4,6 +4,7 @@ export * from './lib/slice-panel/slice-panel.component';
4
4
  export * from './lib/slice-panel/slice-panel.model';
5
5
  export * from './lib/models/organizer-config.interface';
6
6
  export * from './lib/models/organizer-menu.model';
7
+ export { OrganizerButtonEventType } from './lib/models/organizer-chart-config';
7
8
  export { buildYFields, resolveYKey, OrganizerYIndicator } from './lib/models/organizer-utils';
8
9
  export { buildOrganizerChartBinding, chartConfigToOrganizer, chartConfigToState, chartConfigToUnifiedState, applyOrganizerEventToChart, handleOrganizerChartEvent, resolveYUnit, OrganizerChartItem, OrganizerChartSection, OrganizerChartConfig, OrganizerChartBridgeOptions, OrganizerChartBinding, OrganizerChartEventResult, } from './lib/models/organizer-chart-adapter';
9
10
  export { OrganizerFacade, humanizeKey } from './lib/organizer-facade/organizer-facade';