@smartnet360/svelte-components 0.0.133 → 0.0.135

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 (40) hide show
  1. package/dist/core/CellHistory/CellHistoryPanel.svelte +178 -0
  2. package/dist/core/CellHistory/CellHistoryPanel.svelte.d.ts +4 -0
  3. package/dist/core/CellHistory/column-config.d.ts +26 -0
  4. package/dist/core/CellHistory/column-config.js +120 -0
  5. package/dist/core/CellHistory/index.d.ts +9 -0
  6. package/dist/core/CellHistory/index.js +10 -0
  7. package/dist/core/CellHistory/transformers.d.ts +16 -0
  8. package/dist/core/CellHistory/transformers.js +76 -0
  9. package/dist/core/CellHistory/types.d.ts +54 -0
  10. package/dist/core/CellHistory/types.js +6 -0
  11. package/dist/core/CellTable/CellHistoryDemo.svelte +1 -0
  12. package/dist/core/CellTable/CellTable.svelte +7 -5
  13. package/dist/core/CellTable/CellTablePanel.svelte +82 -14
  14. package/dist/core/CellTable/CellTablePanel.svelte.d.ts +2 -0
  15. package/dist/core/CellTable/column-config.js +46 -58
  16. package/dist/core/CellTableV2/CellTable.svelte +601 -0
  17. package/dist/core/CellTableV2/CellTable.svelte.d.ts +43 -0
  18. package/dist/core/CellTableV2/CellTablePanel.svelte +685 -0
  19. package/dist/core/CellTableV2/CellTablePanel.svelte.d.ts +98 -0
  20. package/dist/core/CellTableV2/CellTableToolbar.svelte +322 -0
  21. package/dist/core/CellTableV2/CellTableToolbar.svelte.d.ts +59 -0
  22. package/dist/core/CellTableV2/ColumnPicker.svelte +214 -0
  23. package/dist/core/CellTableV2/ColumnPicker.svelte.d.ts +26 -0
  24. package/dist/core/CellTableV2/column-config.d.ts +120 -0
  25. package/dist/core/CellTableV2/column-config.js +671 -0
  26. package/dist/core/CellTableV2/composables/index.d.ts +12 -0
  27. package/dist/core/CellTableV2/composables/index.js +9 -0
  28. package/dist/core/CellTableV2/composables/useColumnVisibility.svelte.d.ts +45 -0
  29. package/dist/core/CellTableV2/composables/useColumnVisibility.svelte.js +98 -0
  30. package/dist/core/CellTableV2/composables/usePersistence.svelte.d.ts +28 -0
  31. package/dist/core/CellTableV2/composables/usePersistence.svelte.js +101 -0
  32. package/dist/core/CellTableV2/composables/useScrollSpy.svelte.d.ts +44 -0
  33. package/dist/core/CellTableV2/composables/useScrollSpy.svelte.js +91 -0
  34. package/dist/core/CellTableV2/index.d.ts +12 -0
  35. package/dist/core/CellTableV2/index.js +14 -0
  36. package/dist/core/CellTableV2/types.d.ts +172 -0
  37. package/dist/core/CellTableV2/types.js +6 -0
  38. package/dist/core/index.d.ts +2 -0
  39. package/dist/core/index.js +5 -0
  40. package/package.json +1 -1
@@ -0,0 +1,45 @@
1
+ /**
2
+ * useColumnVisibility - Column visibility management composable
3
+ *
4
+ * Manages column preset selection and per-preset column visibility customization.
5
+ * Uses Svelte 5 runes for reactive state.
6
+ */
7
+ import type { ColumnPreset } from '../types';
8
+ import type { ColumnMeta } from '../column-config';
9
+ export interface UseColumnVisibilityOptions {
10
+ /** Base storage key for persistence */
11
+ storageKey: string;
12
+ /** Column metadata for the column picker */
13
+ columnMeta: ColumnMeta[];
14
+ /** Initial column preset */
15
+ initialPreset?: ColumnPreset;
16
+ /** Whether to persist settings to localStorage */
17
+ persistSettings?: boolean;
18
+ }
19
+ export interface UseColumnVisibilityReturn {
20
+ /** Current column preset (reactive) */
21
+ readonly columnPreset: ColumnPreset;
22
+ /** Currently visible column fields (reactive) */
23
+ readonly visibleColumns: string[];
24
+ /** Column metadata */
25
+ readonly columnMeta: ColumnMeta[];
26
+ /** Load saved columns for a preset (or default if none saved) */
27
+ loadColumnsForPreset: (preset: ColumnPreset) => string[];
28
+ /** Set the column preset and load its columns */
29
+ setPreset: (preset: ColumnPreset) => void;
30
+ /** Toggle a single column's visibility */
31
+ toggleColumn: (field: string, visible: boolean) => void;
32
+ /** Reset current preset to its default columns */
33
+ resetToDefaults: () => void;
34
+ /** Apply column visibility to a CellTable instance */
35
+ applyToTable: (table: {
36
+ showColumn: (f: string) => void;
37
+ hideColumn: (f: string) => void;
38
+ } | undefined) => void;
39
+ /** Save current visibility state */
40
+ saveVisibility: () => void;
41
+ }
42
+ /**
43
+ * Create column visibility management for a cell table
44
+ */
45
+ export declare function useColumnVisibility(options: UseColumnVisibilityOptions): UseColumnVisibilityReturn;
@@ -0,0 +1,98 @@
1
+ /**
2
+ * useColumnVisibility - Column visibility management composable
3
+ *
4
+ * Manages column preset selection and per-preset column visibility customization.
5
+ * Uses Svelte 5 runes for reactive state.
6
+ */
7
+ import { getPresetVisibleFields } from '../column-config';
8
+ import { usePersistence } from './usePersistence.svelte';
9
+ /**
10
+ * Create column visibility management for a cell table
11
+ */
12
+ export function useColumnVisibility(options) {
13
+ const { storageKey, columnMeta, initialPreset = 'default', persistSettings = true } = options;
14
+ // Persistence utilities
15
+ const persistence = usePersistence({ storageKey, enabled: persistSettings });
16
+ // Storage key for per-preset column visibility
17
+ function getColumnsKey(preset) {
18
+ return `visibleColumns-${preset}`;
19
+ }
20
+ /**
21
+ * Load saved columns for a preset (or default if none saved)
22
+ */
23
+ function loadColumnsForPreset(preset) {
24
+ const saved = persistence.load(getColumnsKey(preset), null);
25
+ if (saved && Array.isArray(saved)) {
26
+ return saved;
27
+ }
28
+ return getPresetVisibleFields(preset);
29
+ }
30
+ // Load initial preset from storage
31
+ const savedPreset = persistence.loadString('columnPreset', initialPreset);
32
+ // Reactive state
33
+ let _columnPreset = $state(savedPreset);
34
+ let _visibleColumns = $state(loadColumnsForPreset(savedPreset));
35
+ /**
36
+ * Save current column visibility for current preset
37
+ */
38
+ function saveVisibility() {
39
+ persistence.save(getColumnsKey(_columnPreset), _visibleColumns);
40
+ }
41
+ /**
42
+ * Set the column preset and load its saved columns
43
+ */
44
+ function setPreset(preset) {
45
+ _columnPreset = preset;
46
+ _visibleColumns = loadColumnsForPreset(preset);
47
+ persistence.saveString('columnPreset', preset);
48
+ }
49
+ /**
50
+ * Toggle a single column's visibility
51
+ */
52
+ function toggleColumn(field, visible) {
53
+ if (visible) {
54
+ if (!_visibleColumns.includes(field)) {
55
+ _visibleColumns = [..._visibleColumns, field];
56
+ }
57
+ }
58
+ else {
59
+ _visibleColumns = _visibleColumns.filter(f => f !== field);
60
+ }
61
+ saveVisibility();
62
+ }
63
+ /**
64
+ * Reset current preset to its default columns
65
+ */
66
+ function resetToDefaults() {
67
+ _visibleColumns = getPresetVisibleFields(_columnPreset);
68
+ // Remove saved customization
69
+ persistence.remove(getColumnsKey(_columnPreset));
70
+ }
71
+ /**
72
+ * Apply column visibility to a CellTable instance
73
+ */
74
+ function applyToTable(table) {
75
+ if (!table)
76
+ return;
77
+ columnMeta.forEach(col => {
78
+ if (_visibleColumns.includes(col.field)) {
79
+ table.showColumn(col.field);
80
+ }
81
+ else {
82
+ table.hideColumn(col.field);
83
+ }
84
+ });
85
+ }
86
+ // Return with getters for reactivity
87
+ return {
88
+ get columnPreset() { return _columnPreset; },
89
+ get visibleColumns() { return _visibleColumns; },
90
+ columnMeta,
91
+ loadColumnsForPreset,
92
+ setPreset,
93
+ toggleColumn,
94
+ resetToDefaults,
95
+ applyToTable,
96
+ saveVisibility
97
+ };
98
+ }
@@ -0,0 +1,28 @@
1
+ /**
2
+ * usePersistence - localStorage persistence utility
3
+ *
4
+ * Provides namespaced read/write/remove functions for persisting UI state.
5
+ * Does not use reactive state - just utility functions.
6
+ */
7
+ export interface UsePersistenceOptions {
8
+ /** Base storage key prefix for namespacing */
9
+ storageKey: string;
10
+ /** Whether persistence is enabled */
11
+ enabled?: boolean;
12
+ }
13
+ export interface UsePersistenceReturn {
14
+ /** Load a value from localStorage */
15
+ load: <T>(key: string, defaultValue: T) => T;
16
+ /** Save a value to localStorage */
17
+ save: <T>(key: string, value: T) => void;
18
+ /** Remove a value from localStorage */
19
+ remove: (key: string) => void;
20
+ /** Load a string value (no JSON parsing) */
21
+ loadString: (key: string, defaultValue: string) => string;
22
+ /** Save a string value (no JSON stringifying) */
23
+ saveString: (key: string, value: string) => void;
24
+ }
25
+ /**
26
+ * Create persistence utilities for a given storage namespace
27
+ */
28
+ export declare function usePersistence(options: UsePersistenceOptions): UsePersistenceReturn;
@@ -0,0 +1,101 @@
1
+ /**
2
+ * usePersistence - localStorage persistence utility
3
+ *
4
+ * Provides namespaced read/write/remove functions for persisting UI state.
5
+ * Does not use reactive state - just utility functions.
6
+ */
7
+ /**
8
+ * Create persistence utilities for a given storage namespace
9
+ */
10
+ export function usePersistence(options) {
11
+ const { storageKey, enabled = true } = options;
12
+ /**
13
+ * Get full storage key with namespace
14
+ */
15
+ function getKey(key) {
16
+ return `${storageKey}-${key}`;
17
+ }
18
+ /**
19
+ * Load a JSON value from localStorage
20
+ */
21
+ function load(key, defaultValue) {
22
+ if (!enabled || typeof localStorage === 'undefined') {
23
+ return defaultValue;
24
+ }
25
+ try {
26
+ const saved = localStorage.getItem(getKey(key));
27
+ if (saved !== null) {
28
+ return JSON.parse(saved);
29
+ }
30
+ }
31
+ catch (e) {
32
+ console.warn(`Failed to load ${key}:`, e);
33
+ }
34
+ return defaultValue;
35
+ }
36
+ /**
37
+ * Save a JSON value to localStorage
38
+ */
39
+ function save(key, value) {
40
+ if (!enabled || typeof localStorage === 'undefined') {
41
+ return;
42
+ }
43
+ try {
44
+ localStorage.setItem(getKey(key), JSON.stringify(value));
45
+ }
46
+ catch (e) {
47
+ console.warn(`Failed to save ${key}:`, e);
48
+ }
49
+ }
50
+ /**
51
+ * Remove a value from localStorage
52
+ */
53
+ function remove(key) {
54
+ if (!enabled || typeof localStorage === 'undefined') {
55
+ return;
56
+ }
57
+ try {
58
+ localStorage.removeItem(getKey(key));
59
+ }
60
+ catch (e) {
61
+ console.warn(`Failed to remove ${key}:`, e);
62
+ }
63
+ }
64
+ /**
65
+ * Load a string value (no JSON parsing)
66
+ */
67
+ function loadString(key, defaultValue) {
68
+ if (!enabled || typeof localStorage === 'undefined') {
69
+ return defaultValue;
70
+ }
71
+ try {
72
+ const saved = localStorage.getItem(getKey(key));
73
+ return saved ?? defaultValue;
74
+ }
75
+ catch (e) {
76
+ console.warn(`Failed to load string ${key}:`, e);
77
+ return defaultValue;
78
+ }
79
+ }
80
+ /**
81
+ * Save a string value (no JSON stringifying)
82
+ */
83
+ function saveString(key, value) {
84
+ if (!enabled || typeof localStorage === 'undefined') {
85
+ return;
86
+ }
87
+ try {
88
+ localStorage.setItem(getKey(key), value);
89
+ }
90
+ catch (e) {
91
+ console.warn(`Failed to save string ${key}:`, e);
92
+ }
93
+ }
94
+ return {
95
+ load,
96
+ save,
97
+ remove,
98
+ loadString,
99
+ saveString
100
+ };
101
+ }
@@ -0,0 +1,44 @@
1
+ /**
2
+ * useScrollSpy - ScrollSpy navigation composable
3
+ *
4
+ * Manages group-based scroll navigation for grouped tables.
5
+ * Uses Svelte 5 runes for reactive state.
6
+ */
7
+ export interface ScrollSpyGroup {
8
+ key: string;
9
+ count: number;
10
+ }
11
+ export interface CellTableRef {
12
+ getGroups: () => ScrollSpyGroup[];
13
+ scrollToGroup: (key: string) => void;
14
+ }
15
+ export interface UseScrollSpyOptions {
16
+ /** Base storage key for persistence */
17
+ storageKey: string;
18
+ /** Initial enabled state */
19
+ initialEnabled?: boolean;
20
+ /** Whether to persist settings */
21
+ persistSettings?: boolean;
22
+ }
23
+ export interface UseScrollSpyReturn {
24
+ /** ScrollSpy groups (reactive) */
25
+ readonly groups: ScrollSpyGroup[];
26
+ /** Whether scrollspy is enabled (reactive) */
27
+ readonly enabled: boolean;
28
+ /** Toggle scrollspy on/off */
29
+ toggle: () => void;
30
+ /** Enable scrollspy */
31
+ enable: () => void;
32
+ /** Disable scrollspy */
33
+ disable: () => void;
34
+ /** Update groups from table data */
35
+ updateGroups: (table: CellTableRef | undefined) => void;
36
+ /** Scroll to a specific group */
37
+ scrollToGroup: (table: CellTableRef | undefined, key: string) => void;
38
+ /** Clear groups */
39
+ clearGroups: () => void;
40
+ }
41
+ /**
42
+ * Create scrollspy navigation for a grouped table
43
+ */
44
+ export declare function useScrollSpy(options: UseScrollSpyOptions): UseScrollSpyReturn;
@@ -0,0 +1,91 @@
1
+ /**
2
+ * useScrollSpy - ScrollSpy navigation composable
3
+ *
4
+ * Manages group-based scroll navigation for grouped tables.
5
+ * Uses Svelte 5 runes for reactive state.
6
+ */
7
+ import { usePersistence } from './usePersistence.svelte';
8
+ /**
9
+ * Create scrollspy navigation for a grouped table
10
+ */
11
+ export function useScrollSpy(options) {
12
+ const { storageKey, initialEnabled = false, persistSettings = true } = options;
13
+ // Persistence utilities
14
+ const persistence = usePersistence({ storageKey, enabled: persistSettings });
15
+ // Load initial state
16
+ const savedEnabled = persistence.loadString('scrollSpyEnabled', String(initialEnabled)) === 'true';
17
+ // Reactive state
18
+ let _groups = $state([]);
19
+ let _enabled = $state(savedEnabled);
20
+ /**
21
+ * Toggle scrollspy on/off
22
+ */
23
+ function toggle() {
24
+ _enabled = !_enabled;
25
+ persistence.saveString('scrollSpyEnabled', String(_enabled));
26
+ if (!_enabled) {
27
+ _groups = [];
28
+ }
29
+ }
30
+ /**
31
+ * Enable scrollspy
32
+ */
33
+ function enable() {
34
+ _enabled = true;
35
+ persistence.saveString('scrollSpyEnabled', 'true');
36
+ }
37
+ /**
38
+ * Disable scrollspy
39
+ */
40
+ function disable() {
41
+ _enabled = false;
42
+ persistence.saveString('scrollSpyEnabled', 'false');
43
+ _groups = [];
44
+ }
45
+ /**
46
+ * Update groups from table data
47
+ */
48
+ function updateGroups(table) {
49
+ if (!table || !_enabled) {
50
+ _groups = [];
51
+ return;
52
+ }
53
+ try {
54
+ _groups = table.getGroups();
55
+ }
56
+ catch (e) {
57
+ console.warn('Failed to get groups:', e);
58
+ _groups = [];
59
+ }
60
+ }
61
+ /**
62
+ * Scroll to a specific group
63
+ */
64
+ function scrollToGroup(table, key) {
65
+ if (!table)
66
+ return;
67
+ try {
68
+ table.scrollToGroup(key);
69
+ }
70
+ catch (e) {
71
+ console.warn('Failed to scroll to group:', e);
72
+ }
73
+ }
74
+ /**
75
+ * Clear groups
76
+ */
77
+ function clearGroups() {
78
+ _groups = [];
79
+ }
80
+ // Return with getters for reactivity
81
+ return {
82
+ get groups() { return _groups; },
83
+ get enabled() { return _enabled; },
84
+ toggle,
85
+ enable,
86
+ disable,
87
+ updateGroups,
88
+ scrollToGroup,
89
+ clearGroups
90
+ };
91
+ }
@@ -0,0 +1,12 @@
1
+ /**
2
+ * CellTableV2 - Main Exports
3
+ *
4
+ * Composable-based cell table components with reusable logic hooks.
5
+ */
6
+ export { default as CellTable } from './CellTable.svelte';
7
+ export { default as CellTablePanel } from './CellTablePanel.svelte';
8
+ export { default as CellTableToolbar } from './CellTableToolbar.svelte';
9
+ export { default as ColumnPicker } from './ColumnPicker.svelte';
10
+ export * from './composables';
11
+ export { DEFAULT_TECH_COLORS, DEFAULT_STATUS_COLORS, FBAND_COLORS, COLUMN_GROUPS, getColumnMetadata, getColumnsForPreset, getPresetVisibleFields, getAllColumns, } from './column-config';
12
+ export type { CellData, CellTableColumn, CellTableGroupField, CellTableProps, ColumnPreset, GroupOption, RowSelectionEvent, RowClickEvent, RowDblClickEvent, RowContextMenuEvent, DataChangeEvent, TechColorMap, StatusColorMap, } from './types';
@@ -0,0 +1,14 @@
1
+ /**
2
+ * CellTableV2 - Main Exports
3
+ *
4
+ * Composable-based cell table components with reusable logic hooks.
5
+ */
6
+ // Core components
7
+ export { default as CellTable } from './CellTable.svelte';
8
+ export { default as CellTablePanel } from './CellTablePanel.svelte';
9
+ export { default as CellTableToolbar } from './CellTableToolbar.svelte';
10
+ export { default as ColumnPicker } from './ColumnPicker.svelte';
11
+ // Composables
12
+ export * from './composables';
13
+ // Column configuration
14
+ export { DEFAULT_TECH_COLORS, DEFAULT_STATUS_COLORS, FBAND_COLORS, COLUMN_GROUPS, getColumnMetadata, getColumnsForPreset, getPresetVisibleFields, getAllColumns, } from './column-config';
@@ -0,0 +1,172 @@
1
+ /**
2
+ * CellTable Component - Type Definitions
3
+ *
4
+ * Types for the Tabulator-based cell data table component
5
+ */
6
+ import type { ColumnDefinition, Options } from 'tabulator-tables';
7
+ import type { Cell, CellGroupingField } from '../../shared/demo';
8
+ /**
9
+ * Cell data model - re-exported from shared for convenience
10
+ */
11
+ export type CellData = Cell;
12
+ /**
13
+ * Available grouping fields for the table - extends shared type with 'none' option
14
+ */
15
+ export type CellTableGroupField = CellGroupingField | 'none';
16
+ /**
17
+ * Column preset configurations
18
+ * Note: 'history' and 'kpi' presets moved to separate modules (CellHistory, CellKPI)
19
+ */
20
+ export type ColumnPreset = 'default' | 'compact' | 'full' | 'physical' | 'network' | 'planning' | 'compare';
21
+ /**
22
+ * Column visibility configuration
23
+ */
24
+ export interface ColumnVisibility {
25
+ [key: string]: boolean;
26
+ }
27
+ /**
28
+ * Grouping option for toolbar dropdown
29
+ */
30
+ export interface GroupOption {
31
+ /** Field name to group by (or 'none') */
32
+ value: string;
33
+ /** Display label in dropdown */
34
+ label: string;
35
+ }
36
+ /**
37
+ * Technology color mapping
38
+ */
39
+ export interface TechColorMap {
40
+ [tech: string]: string;
41
+ }
42
+ /**
43
+ * Status color mapping
44
+ */
45
+ export interface StatusColorMap {
46
+ [status: string]: string;
47
+ }
48
+ /**
49
+ * CellTable component props
50
+ */
51
+ export interface CellTableProps {
52
+ /** Cell data array to display */
53
+ cells: CellData[];
54
+ /** Field to group rows by */
55
+ groupBy?: CellTableGroupField;
56
+ /** Initial column preset */
57
+ columnPreset?: ColumnPreset;
58
+ /** Custom column visibility overrides */
59
+ columnVisibility?: ColumnVisibility;
60
+ /** Enable row selection */
61
+ selectable?: boolean;
62
+ /** Enable multi-row selection */
63
+ multiSelect?: boolean;
64
+ /** Table height (CSS value) */
65
+ height?: string;
66
+ /** Enable virtual DOM for large datasets */
67
+ virtualDom?: boolean;
68
+ /** Custom Tabulator options override */
69
+ tabulatorOptions?: Partial<Options>;
70
+ /** Technology color mapping */
71
+ techColors?: TechColorMap;
72
+ /** Status color mapping */
73
+ statusColors?: StatusColorMap;
74
+ /** Enable header filters */
75
+ headerFilters?: boolean;
76
+ /** Enable column resizing */
77
+ resizableColumns?: boolean;
78
+ /** Enable movable columns */
79
+ movableColumns?: boolean;
80
+ /** Persist column layout to localStorage */
81
+ persistLayout?: boolean;
82
+ /** Storage key for persisted layout */
83
+ storageKey?: string;
84
+ }
85
+ /**
86
+ * Row selection event data
87
+ */
88
+ export interface RowSelectionEvent {
89
+ rows: CellData[];
90
+ ids: string[];
91
+ }
92
+ /**
93
+ * Row click event data
94
+ */
95
+ export interface RowClickEvent {
96
+ row: CellData;
97
+ event: MouseEvent;
98
+ }
99
+ /**
100
+ * Row double-click event data
101
+ */
102
+ export interface RowDblClickEvent {
103
+ row: CellData;
104
+ event: MouseEvent;
105
+ }
106
+ /**
107
+ * Row context menu (right-click) event data
108
+ */
109
+ export interface RowContextMenuEvent {
110
+ row: CellData;
111
+ event: MouseEvent;
112
+ }
113
+ /**
114
+ * Data change event data
115
+ */
116
+ export interface DataChangeEvent {
117
+ type: 'load' | 'update' | 'filter' | 'sort' | 'group';
118
+ rowCount: number;
119
+ filteredCount: number;
120
+ }
121
+ /**
122
+ * Column definition with Bootstrap styling helpers
123
+ */
124
+ export interface CellTableColumn extends ColumnDefinition {
125
+ /** Bootstrap badge variant for cell rendering */
126
+ badgeVariant?: 'primary' | 'secondary' | 'success' | 'danger' | 'warning' | 'info' | 'light' | 'dark';
127
+ /** Use technology-based coloring */
128
+ techColored?: boolean;
129
+ /** Use status-based coloring */
130
+ statusColored?: boolean;
131
+ }
132
+ /**
133
+ * Predefined column groups for presets
134
+ * Note: 'kpi' and 'history' groups moved to separate modules
135
+ */
136
+ export interface ColumnGroups {
137
+ core: string[];
138
+ physical: string[];
139
+ network: string[];
140
+ planning: string[];
141
+ atoll: string[];
142
+ position: string[];
143
+ compare: string[];
144
+ }
145
+ /**
146
+ * Cell configuration history record
147
+ * Each record represents a point in time where a cell's configuration changed
148
+ */
149
+ export interface CellHistoryData {
150
+ /** Cell name identifier */
151
+ CELLNAME: string;
152
+ /** Frequency in MHz (e.g., 1800, 2100, 3500) */
153
+ FREQUENCY: number;
154
+ /** Date of configuration change (ISO 8601 format) */
155
+ CONFIG_DATE: string;
156
+ /** Current antenna type at this config date */
157
+ ANTENNA_TYPE: string;
158
+ /** Previous antenna type before this change */
159
+ PREV_ANTENNA_TYPE: string;
160
+ /** Current antenna output power (dBm) */
161
+ ANTOUTPUTPWR: number;
162
+ /** Previous antenna output power */
163
+ PREV_ANTOUTPUTPWR: number;
164
+ /** Current mechanical tilt (degrees) */
165
+ MECHANIC_TILT: number;
166
+ /** Previous mechanical tilt */
167
+ PREV_MECHANIC_TILT: number;
168
+ /** Current electrical tilt (degrees) */
169
+ ELECTRONIC_TILT: number;
170
+ /** Previous electrical tilt */
171
+ PREV_ELECTRONIC_TILT: number;
172
+ }
@@ -0,0 +1,6 @@
1
+ /**
2
+ * CellTable Component - Type Definitions
3
+ *
4
+ * Types for the Tabulator-based cell data table component
5
+ */
6
+ export {};
@@ -4,6 +4,8 @@ export * from './TreeView/index.js';
4
4
  export * from './Settings/index.js';
5
5
  export * from './logger/index.js';
6
6
  export * from './CellTable/index.js';
7
+ export * as CellTableV2 from './CellTableV2/index.js';
8
+ export * from './CellHistory/index.js';
7
9
  export * from './FeatureRegistry/index.js';
8
10
  export * from './Benchmark/index.js';
9
11
  export * from './Auth/index.js';
@@ -12,6 +12,11 @@ export * from './Settings/index.js';
12
12
  export * from './logger/index.js';
13
13
  // CellTable - Tabulator-based cell data table with Bootstrap theming
14
14
  export * from './CellTable/index.js';
15
+ // CellTableV2 - Refactored with composables architecture
16
+ // Use namespaced import to avoid conflicts with V1: import { CellTableV2 } from './'
17
+ export * as CellTableV2 from './CellTableV2/index.js';
18
+ // CellHistory - Cell configuration history feature (uses CellTableV2)
19
+ export * from './CellHistory/index.js';
15
20
  // Map component - Mapbox GL + Deck.GL integration
16
21
  // TODO: Moved to top-level src/lib/map module
17
22
  // export * from './Map/index.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@smartnet360/svelte-components",
3
- "version": "0.0.133",
3
+ "version": "0.0.135",
4
4
  "scripts": {
5
5
  "dev": "vite dev",
6
6
  "build": "vite build && npm run prepack",